From 8573b30239cdff1aa8267cd3a14b951b91ea8243 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Sun, 21 May 2023 16:20:44 +0100 Subject: [PATCH 001/788] Swift: Add test cases. --- .../Security/CWE-022/testPathInjection.swift | 237 ++++++++++++------ 1 file changed, 154 insertions(+), 83 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift index aff4c20a959..db74bb95a7a 100644 --- a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift @@ -33,17 +33,29 @@ extension String { } class NSString { + init() { } + init(string aString: String) { } convenience init(contentsOfFile path: String, encoding enc: UInt) throws { self.init() } convenience init(contentsOfFile path: String, usedEncoding enc: UnsafeMutablePointer?) throws { self.init() } func write(toFile: String, atomically: Bool, encoding: UInt) {} func write(to: URL, atomically: Bool, encoding: UInt) {} + + var utf8String: UnsafePointer? { get { return nil } } } class Data { + struct ReadingOptions : OptionSet { let rawValue: Int } struct WritingOptions : OptionSet { let rawValue: Int } - init(_ elements: S) {} + + init(_ elements: S) { count = 0 } + init(contentsOf: URL, options: ReadingOptions) { count = 0 } + + func copyBytes(to: UnsafeMutablePointer, count: Int) {} + func write(to: URL, options: Data.WritingOptions = []) {} + + var count: Int } class NSData { @@ -202,124 +214,183 @@ extension Realm { } } +// sqlite3 + +func sqlite3_open( + _ filename: UnsafePointer?, + _ ppDb: UnsafeMutablePointer?) -> Int32 { return 0 } + +func sqlite3_open16( + _ filename: UnsafeRawPointer?, + _ ppDb: UnsafeMutablePointer?) -> Int32 { return 0 } + +func sqlite3_open_v2( + _ filename: UnsafePointer?, + _ ppDb: UnsafeMutablePointer?, + _ flags: Int32, + _ zVfs: UnsafePointer?) -> Int32 { return 0 } + +var sqlite3_temp_directory: UnsafeMutablePointer? + +// SQLite.swift + +enum URIQueryParameter { +} + +class Connection { + enum Location { + case inMemory + case uri(String, parameters: [URIQueryParameter] = []) + } + + init(_ location: Location = .inMemory, readonly: Bool = false) throws { } + convenience init(_ filename: String, readonly: Bool = false) throws { try self.init() } +} + // --- tests --- -func test() { +func test(buffer1: UnsafeMutablePointer, buffer2: UnsafeMutablePointer) { let remoteString = String(contentsOf: URL(string: "http://example.com/")!) let remoteUrl = URL(string: remoteString)! let remoteNsUrl = NSURL(string: remoteString)! let safeUrl = URL(string: "")! let safeNsUrl = NSURL(string: "")! - Data("").write(to: remoteUrl, options: []) // $ hasPathInjection=208 + Data("").write(to: remoteUrl, options: []) // $ hasPathInjection=253 let nsData = NSData() - let _ = nsData.write(to: remoteUrl, atomically: false) // $ hasPathInjection=208 - nsData.write(to: remoteUrl, options: []) // $ hasPathInjection=208 - let _ = nsData.write(toFile: remoteString, atomically: false) // $ hasPathInjection=208 - nsData.write(toFile: remoteString, options: []) // $ hasPathInjection=208 + let _ = nsData.write(to: remoteUrl, atomically: false) // $ hasPathInjection=253 + nsData.write(to: remoteUrl, options: []) // $ hasPathInjection=253 + let _ = nsData.write(toFile: remoteString, atomically: false) // $ hasPathInjection=253 + nsData.write(toFile: remoteString, options: []) // $ hasPathInjection=253 let fm = FileManager() - let _ = fm.contentsOfDirectory(at: remoteUrl, includingPropertiesForKeys: [], options: []) // $ hasPathInjection=208 - let _ = fm.contentsOfDirectory(atPath: remoteString) // $ hasPathInjection=208 - let _ = fm.enumerator(at: remoteUrl, includingPropertiesForKeys: [], options: [], errorHandler: nil) // $ hasPathInjection=208 - let _ = fm.enumerator(atPath: remoteString) // $ hasPathInjection=208 - let _ = fm.subpathsOfDirectory(atPath: remoteString) // $ hasPathInjection=208 - let _ = fm.subpaths(atPath: remoteString) // $ hasPathInjection=208 - fm.createDirectory(at: remoteUrl, withIntermediateDirectories: false, attributes: [:]) // $ hasPathInjection=208 - let _ = fm.createDirectory(atPath: remoteString, attributes: [:]) // $ hasPathInjection=208 - let _ = fm.createFile(atPath: remoteString, contents: nil, attributes: [:]) // $ hasPathInjection=208 - fm.removeItem(at: remoteUrl) // $ hasPathInjection=208 - fm.removeItem(atPath: remoteString) // $ hasPathInjection=208 - fm.trashItem(at: remoteUrl, resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ hasPathInjection=208 - let _ = fm.replaceItemAt(remoteUrl, withItemAt: safeUrl, backupItemName: nil, options: []) // $ hasPathInjection=208 - let _ = fm.replaceItemAt(safeUrl, withItemAt: remoteUrl, backupItemName: nil, options: []) // $ hasPathInjection=208 - fm.replaceItem(at: remoteUrl, withItemAt: safeUrl, backupItemName: nil, options: [], resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ hasPathInjection=208 - fm.replaceItem(at: safeUrl, withItemAt: remoteUrl, backupItemName: nil, options: [], resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ hasPathInjection=208 - fm.copyItem(at: remoteUrl, to: safeUrl) // $ hasPathInjection=208 - fm.copyItem(at: safeUrl, to: remoteUrl) // $ hasPathInjection=208 - fm.copyItem(atPath: remoteString, toPath: "") // $ hasPathInjection=208 - fm.copyItem(atPath: "", toPath: remoteString) // $ hasPathInjection=208 - fm.moveItem(at: remoteUrl, to: safeUrl) // $ hasPathInjection=208 - fm.moveItem(at: safeUrl, to: remoteUrl) // $ hasPathInjection=208 - fm.moveItem(atPath: remoteString, toPath: "") // $ hasPathInjection=208 - fm.moveItem(atPath: "", toPath: remoteString) // $ hasPathInjection=208 - fm.createSymbolicLink(at: remoteUrl, withDestinationURL: safeUrl) // $ hasPathInjection=208 - fm.createSymbolicLink(at: safeUrl, withDestinationURL: remoteUrl) // $ hasPathInjection=208 - fm.createSymbolicLink(atPath: remoteString, withDestinationPath: "") // $ hasPathInjection=208 - fm.createSymbolicLink(atPath: "", withDestinationPath: remoteString) // $ hasPathInjection=208 - fm.linkItem(at: remoteUrl, to: safeUrl) // $ hasPathInjection=208 - fm.linkItem(at: safeUrl, to: remoteUrl) // $ hasPathInjection=208 - fm.linkItem(atPath: remoteString, toPath: "") // $ hasPathInjection=208 - fm.linkItem(atPath: "", toPath: remoteString) // $ hasPathInjection=208 - let _ = fm.destinationOfSymbolicLink(atPath: remoteString) // $ hasPathInjection=208 - let _ = fm.fileExists(atPath: remoteString) // $ hasPathInjection=208 - let _ = fm.fileExists(atPath: remoteString, isDirectory: UnsafeMutablePointer.init(bitPattern: 0)) // $ hasPathInjection=208 - fm.setAttributes([:], ofItemAtPath: remoteString) // $ hasPathInjection=208 - let _ = fm.contents(atPath: remoteString) // $ hasPathInjection=208 - let _ = fm.contentsEqual(atPath: remoteString, andPath: "") // $ hasPathInjection=208 - let _ = fm.contentsEqual(atPath: "", andPath: remoteString) // $ hasPathInjection=208 - let _ = fm.changeCurrentDirectoryPath(remoteString) // $ hasPathInjection=208 - let _ = fm.unmountVolume(at: remoteUrl, options: [], completionHandler: { _ in }) // $ hasPathInjection=208 + let _ = fm.contentsOfDirectory(at: remoteUrl, includingPropertiesForKeys: [], options: []) // $ hasPathInjection=253 + let _ = fm.contentsOfDirectory(atPath: remoteString) // $ hasPathInjection=253 + let _ = fm.enumerator(at: remoteUrl, includingPropertiesForKeys: [], options: [], errorHandler: nil) // $ hasPathInjection=253 + let _ = fm.enumerator(atPath: remoteString) // $ hasPathInjection=253 + let _ = fm.subpathsOfDirectory(atPath: remoteString) // $ hasPathInjection=253 + let _ = fm.subpaths(atPath: remoteString) // $ hasPathInjection=253 + fm.createDirectory(at: remoteUrl, withIntermediateDirectories: false, attributes: [:]) // $ hasPathInjection=253 + let _ = fm.createDirectory(atPath: remoteString, attributes: [:]) // $ hasPathInjection=253 + let _ = fm.createFile(atPath: remoteString, contents: nil, attributes: [:]) // $ hasPathInjection=253 + fm.removeItem(at: remoteUrl) // $ hasPathInjection=253 + fm.removeItem(atPath: remoteString) // $ hasPathInjection=253 + fm.trashItem(at: remoteUrl, resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ hasPathInjection=253 + let _ = fm.replaceItemAt(remoteUrl, withItemAt: safeUrl, backupItemName: nil, options: []) // $ hasPathInjection=253 + let _ = fm.replaceItemAt(safeUrl, withItemAt: remoteUrl, backupItemName: nil, options: []) // $ hasPathInjection=253 + fm.replaceItem(at: remoteUrl, withItemAt: safeUrl, backupItemName: nil, options: [], resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ hasPathInjection=253 + fm.replaceItem(at: safeUrl, withItemAt: remoteUrl, backupItemName: nil, options: [], resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ hasPathInjection=253 + fm.copyItem(at: remoteUrl, to: safeUrl) // $ hasPathInjection=253 + fm.copyItem(at: safeUrl, to: remoteUrl) // $ hasPathInjection=253 + fm.copyItem(atPath: remoteString, toPath: "") // $ hasPathInjection=253 + fm.copyItem(atPath: "", toPath: remoteString) // $ hasPathInjection=253 + fm.moveItem(at: remoteUrl, to: safeUrl) // $ hasPathInjection=253 + fm.moveItem(at: safeUrl, to: remoteUrl) // $ hasPathInjection=253 + fm.moveItem(atPath: remoteString, toPath: "") // $ hasPathInjection=253 + fm.moveItem(atPath: "", toPath: remoteString) // $ hasPathInjection=253 + fm.createSymbolicLink(at: remoteUrl, withDestinationURL: safeUrl) // $ hasPathInjection=253 + fm.createSymbolicLink(at: safeUrl, withDestinationURL: remoteUrl) // $ hasPathInjection=253 + fm.createSymbolicLink(atPath: remoteString, withDestinationPath: "") // $ hasPathInjection=253 + fm.createSymbolicLink(atPath: "", withDestinationPath: remoteString) // $ hasPathInjection=253 + fm.linkItem(at: remoteUrl, to: safeUrl) // $ hasPathInjection=253 + fm.linkItem(at: safeUrl, to: remoteUrl) // $ hasPathInjection=253 + fm.linkItem(atPath: remoteString, toPath: "") // $ hasPathInjection=253 + fm.linkItem(atPath: "", toPath: remoteString) // $ hasPathInjection=253 + let _ = fm.destinationOfSymbolicLink(atPath: remoteString) // $ hasPathInjection=253 + let _ = fm.fileExists(atPath: remoteString) // $ hasPathInjection=253 + let _ = fm.fileExists(atPath: remoteString, isDirectory: UnsafeMutablePointer.init(bitPattern: 0)) // $ hasPathInjection=253 + fm.setAttributes([:], ofItemAtPath: remoteString) // $ hasPathInjection=253 + let _ = fm.contents(atPath: remoteString) // $ hasPathInjection=253 + let _ = fm.contentsEqual(atPath: remoteString, andPath: "") // $ hasPathInjection=253 + let _ = fm.contentsEqual(atPath: "", andPath: remoteString) // $ hasPathInjection=253 + let _ = fm.changeCurrentDirectoryPath(remoteString) // $ hasPathInjection=253 + let _ = fm.unmountVolume(at: remoteUrl, options: [], completionHandler: { _ in }) // $ hasPathInjection=253 // Deprecated methods - let _ = fm.changeFileAttributes([:], atPath: remoteString) // $ hasPathInjection=208 - let _ = fm.directoryContents(atPath: remoteString) // $ hasPathInjection=208 - let _ = fm.createDirectory(atPath: remoteString, attributes: [:]) // $ hasPathInjection=208 - let _ = fm.createSymbolicLink(atPath: remoteString, pathContent: "") // $ hasPathInjection=208 - let _ = fm.createSymbolicLink(atPath: "", pathContent: remoteString) // $ hasPathInjection=208 - let _ = fm.pathContentOfSymbolicLink(atPath: remoteString) // $ hasPathInjection=208 - let _ = fm.replaceItemAtURL(originalItemURL: remoteNsUrl, withItemAtURL: safeNsUrl, backupItemName: nil, options: []) // $ hasPathInjection=208 - let _ = fm.replaceItemAtURL(originalItemURL: safeNsUrl, withItemAtURL: remoteNsUrl, backupItemName: nil, options: []) // $ hasPathInjection=208 + let _ = fm.changeFileAttributes([:], atPath: remoteString) // $ hasPathInjection=253 + let _ = fm.directoryContents(atPath: remoteString) // $ hasPathInjection=253 + let _ = fm.createDirectory(atPath: remoteString, attributes: [:]) // $ hasPathInjection=253 + let _ = fm.createSymbolicLink(atPath: remoteString, pathContent: "") // $ hasPathInjection=253 + let _ = fm.createSymbolicLink(atPath: "", pathContent: remoteString) // $ hasPathInjection=253 + let _ = fm.pathContentOfSymbolicLink(atPath: remoteString) // $ hasPathInjection=253 + let _ = fm.replaceItemAtURL(originalItemURL: remoteNsUrl, withItemAtURL: safeNsUrl, backupItemName: nil, options: []) // $ hasPathInjection=253 + let _ = fm.replaceItemAtURL(originalItemURL: safeNsUrl, withItemAtURL: remoteNsUrl, backupItemName: nil, options: []) // $ hasPathInjection=253 var encoding = String.Encoding.utf8 - let _ = try! String(contentsOfFile: remoteString) // $ hasPathInjection=208 - let _ = try! String(contentsOfFile: remoteString, encoding: String.Encoding.utf8) // $ hasPathInjection=208 - let _ = try! String(contentsOfFile: remoteString, usedEncoding: &encoding) // $ hasPathInjection=208 + let _ = try! String(contentsOfFile: remoteString) // $ hasPathInjection=253 + let _ = try! String(contentsOfFile: remoteString, encoding: String.Encoding.utf8) // $ hasPathInjection=253 + let _ = try! String(contentsOfFile: remoteString, usedEncoding: &encoding) // $ hasPathInjection=253 - let _ = try! NSString(contentsOfFile: remoteString, encoding: 0) // $ hasPathInjection=208 - let _ = try! NSString(contentsOfFile: remoteString, usedEncoding: nil) // $ hasPathInjection=208 - NSString().write(to: remoteUrl, atomically: true, encoding: 0) // $ hasPathInjection=208 - NSString().write(toFile: remoteString, atomically: true, encoding: 0) // $ hasPathInjection=208 + let _ = try! NSString(contentsOfFile: remoteString, encoding: 0) // $ hasPathInjection=253 + let _ = try! NSString(contentsOfFile: remoteString, usedEncoding: nil) // $ hasPathInjection=253 + NSString().write(to: remoteUrl, atomically: true, encoding: 0) // $ hasPathInjection=253 + NSString().write(toFile: remoteString, atomically: true, encoding: 0) // $ hasPathInjection=253 - let _ = NSKeyedUnarchiver().unarchiveObject(withFile: remoteString) // $ hasPathInjection=208 - let _ = ArchiveByteStream.fileStream(fd: remoteString as! FileDescriptor, automaticClose: true) // $ hasPathInjection=208 - ArchiveByteStream.withFileStream(fd: remoteString as! FileDescriptor, automaticClose: true) { _ in } // $ hasPathInjection=208 - let _ = ArchiveByteStream.fileStream(path: FilePath(stringLiteral: remoteString), mode: .readOnly, options: .append, permissions: .ownerRead) // $ hasPathInjection=208 - ArchiveByteStream.withFileStream(path: FilePath(stringLiteral: remoteString), mode: .readOnly, options: .append, permissions: .ownerRead) { _ in } // $ hasPathInjection=208 - let _ = Bundle(url: remoteUrl) // $ hasPathInjection=208 - let _ = Bundle(path: remoteString) // $ hasPathInjection=208 + let _ = NSKeyedUnarchiver().unarchiveObject(withFile: remoteString) // $ hasPathInjection=253 + let _ = ArchiveByteStream.fileStream(fd: remoteString as! FileDescriptor, automaticClose: true) // $ hasPathInjection=253 + ArchiveByteStream.withFileStream(fd: remoteString as! FileDescriptor, automaticClose: true) { _ in } // $ hasPathInjection=253 + let _ = ArchiveByteStream.fileStream(path: FilePath(stringLiteral: remoteString), mode: .readOnly, options: .append, permissions: .ownerRead) // $ hasPathInjection=253 + ArchiveByteStream.withFileStream(path: FilePath(stringLiteral: remoteString), mode: .readOnly, options: .append, permissions: .ownerRead) { _ in } // $ hasPathInjection=253 + let _ = Bundle(url: remoteUrl) // $ hasPathInjection=253 + let _ = Bundle(path: remoteString) // $ hasPathInjection=253 // GRDB - let _ = Database(path: remoteString, description: "", configuration: Configuration()) // $ hasPathInjection=208 + let _ = Database(path: remoteString, description: "", configuration: Configuration()) // $ hasPathInjection=253 let _ = Database(path: "", description: "", configuration: Configuration()) // Safe - let _ = DatabasePool(path: remoteString, configuration: Configuration()) // $ hasPathInjection=208 + let _ = DatabasePool(path: remoteString, configuration: Configuration()) // $ hasPathInjection=253 let _ = DatabasePool(path: "", configuration: Configuration()) // Safe - let _ = DatabaseQueue(path: remoteString, configuration: Configuration()) // $ hasPathInjection=208 + let _ = DatabaseQueue(path: remoteString, configuration: Configuration()) // $ hasPathInjection=253 let _ = DatabaseQueue(path: "", configuration: Configuration()) // Safe - let _ = DatabaseSnapshotPool(path: remoteString, configuration: Configuration()) // $ hasPathInjection=208 + let _ = DatabaseSnapshotPool(path: remoteString, configuration: Configuration()) // $ hasPathInjection=253 let _ = DatabaseSnapshotPool(path: "", configuration: Configuration()) // Safe - let _ = SerializedDatabase(path: remoteString, defaultLabel: "") // $ hasPathInjection=208 + let _ = SerializedDatabase(path: remoteString, defaultLabel: "") // $ hasPathInjection=253 let _ = SerializedDatabase(path: "", defaultLabel: "") // Safe - let _ = SerializedDatabase(path: remoteString, defaultLabel: "", purpose: nil) // $ hasPathInjection=208 + let _ = SerializedDatabase(path: remoteString, defaultLabel: "", purpose: nil) // $ hasPathInjection=253 let _ = SerializedDatabase(path: "", defaultLabel: "", purpose: nil) // Safe - let _ = SerializedDatabase(path: remoteString, configuration: Configuration(), defaultLabel: "") // $ hasPathInjection=208 + let _ = SerializedDatabase(path: remoteString, configuration: Configuration(), defaultLabel: "") // $ hasPathInjection=253 let _ = SerializedDatabase(path: "", configuration: Configuration(), defaultLabel: "") // Safe - let _ = SerializedDatabase(path: remoteString, configuration: Configuration(), defaultLabel: "", purpose: nil) // $ hasPathInjection=208 + let _ = SerializedDatabase(path: remoteString, configuration: Configuration(), defaultLabel: "", purpose: nil) // $ hasPathInjection=253 let _ = SerializedDatabase(path: "", configuration: Configuration(), defaultLabel: "", purpose: nil) // Safe // Realm _ = Realm.Configuration(fileURL: safeUrl) // GOOD - _ = Realm.Configuration(fileURL: remoteUrl) // $ hasPathInjection=208 + _ = Realm.Configuration(fileURL: remoteUrl) // $ hasPathInjection=253 _ = Realm.Configuration(seedFilePath: safeUrl) // GOOD - _ = Realm.Configuration(seedFilePath: remoteUrl) // $ hasPathInjection=208 + _ = Realm.Configuration(seedFilePath: remoteUrl) // $ hasPathInjection=253 var config = Realm.Configuration() // GOOD config.fileURL = safeUrl // GOOD - config.fileURL = remoteUrl // $ hasPathInjection=208 + config.fileURL = remoteUrl // $ hasPathInjection=253 config.seedFilePath = safeUrl // GOOD - config.seedFilePath = remoteUrl // $ hasPathInjection=208 + config.seedFilePath = remoteUrl // $ hasPathInjection=253 + + // sqlite3 + + var db: OpaquePointer? + let localData = Data(0) + let remoteData = Data(contentsOf: URL(string: "http://example.com/")!, options: []) + localData.copyBytes(to: buffer1, count: localData.count) + remoteData.copyBytes(to: buffer2, count: remoteData.count) + + _ = sqlite3_open("myFile.sqlite3", &db) // GOOD + _ = sqlite3_open(remoteString, &db) // $ MISSING: hasPathInjection=253 + _ = sqlite3_open16(buffer1, &db) // GOOD + _ = sqlite3_open16(buffer2, &db) // $ MISSING: hasPathInjection=253 + _ = sqlite3_open_v2("myFile.sqlite3", &db, 0, nil) // GOOD + _ = sqlite3_open_v2(remoteString, &db, 0, nil) // $ MISSING: hasPathInjection=253 + + sqlite3_temp_directory = UnsafeMutablePointer(mutating: NSString(string: "myFile.sqlite3").utf8String) // GOOD + sqlite3_temp_directory = UnsafeMutablePointer(mutating: NSString(string: remoteString).utf8String) // $ MISSING: hasPathInjection=253 + + // SQLite.swift + + try! _ = Connection() + try! _ = Connection(Connection.Location.uri("myFile.sqlite3")) // GOOD + try! _ = Connection(Connection.Location.uri(remoteString)) // $ MISSING: hasPathInjection=253 + try! _ = Connection("myFile.sqlite3") // GOOD + try! _ = Connection(remoteString) // $ MISSING: hasPathInjection=253 } func testBarriers() { @@ -331,5 +402,5 @@ func testBarriers() { if (filePath.lexicallyNormalized().starts(with: "/safe")) { let _ = fm.contents(atPath: remoteString) // Safe } - let _ = fm.contents(atPath: remoteString) // $ hasPathInjection=326 + let _ = fm.contents(atPath: remoteString) // $ hasPathInjection=397 } From 2c5202018d95ad1d37f88b8e53db0f9a1bf833d4 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 23 May 2023 15:45:59 +0100 Subject: [PATCH 002/788] Swift: Add sinks. --- .../swift/security/PathInjectionExtensions.qll | 13 +++++++++++++ .../Security/CWE-022/testPathInjection.swift | 8 ++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll index f2277325276..0459eb2fc68 100644 --- a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll @@ -130,6 +130,19 @@ private class PathInjectionSinks extends SinkModelCsv { ";Realm.Configuration;true;init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:);;;Argument[10];path-injection", ";Realm.Configuration;true;fileURL;;;PostUpdate;path-injection", ";Realm.Configuration;true;seedFilePath;;;PostUpdate;path-injection", + // sqlite3 + ";;false;sqlite3_open(_:_:);;;Argument[0];path-injection", + ";;false;sqlite3_open16(_:_:);;;Argument[0];path-injection", + ";;false;sqlite3_open_v2(_:_:_:_:);;;Argument[0];path-injection", + ";;false;sqlite3_database_file_object(_:);;;Argument[0];path-injection", + ";;false;sqlite3_filename_database(_:);;;Argument[0];path-injection", + ";;false;sqlite3_filename_journal(_:);;;Argument[0];path-injection", + ";;false;sqlite3_filename_wal(_:);;;Argument[0];path-injection", + ";;false;sqlite3_free_filename(_:);;;Argument[0];path-injection", + ";;false;sqlite3_temp_directory;;;PostUpdate;path-injection", + // SQLite.swift + ";Connection.Location.uri;true;init(_:parameters:);;;Argument[0];path-injection", + ";Connection;true;init(_:readonly:);;;Argument[0];path-injection", ] } } diff --git a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift index db74bb95a7a..878fc8809fc 100644 --- a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift @@ -375,11 +375,11 @@ func test(buffer1: UnsafeMutablePointer, buffer2: UnsafeMutablePointer(mutating: NSString(string: "myFile.sqlite3").utf8String) // GOOD sqlite3_temp_directory = UnsafeMutablePointer(mutating: NSString(string: remoteString).utf8String) // $ MISSING: hasPathInjection=253 @@ -390,7 +390,7 @@ func test(buffer1: UnsafeMutablePointer, buffer2: UnsafeMutablePointer Date: Wed, 24 May 2023 18:32:04 +0100 Subject: [PATCH 003/788] Swift: Add change note. --- swift/ql/lib/change-notes/2023-05-23-path-injection-sinks.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-05-23-path-injection-sinks.md diff --git a/swift/ql/lib/change-notes/2023-05-23-path-injection-sinks.md b/swift/ql/lib/change-notes/2023-05-23-path-injection-sinks.md new file mode 100644 index 00000000000..609041d2e75 --- /dev/null +++ b/swift/ql/lib/change-notes/2023-05-23-path-injection-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added sqlite3 and SQLite.swift path injection sinks for the `swift/path-injection` query. \ No newline at end of file From d8cc8bd5209d24ab56c3f0aef2f59805417f5987 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 24 May 2023 18:43:48 +0100 Subject: [PATCH 004/788] Swift: Fix indentation. --- .../Security/CWE-022/testPathInjection.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift index 878fc8809fc..dd6225231e8 100644 --- a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift @@ -45,7 +45,7 @@ class NSString { } class Data { - struct ReadingOptions : OptionSet { let rawValue: Int } + struct ReadingOptions : OptionSet { let rawValue: Int } struct WritingOptions : OptionSet { let rawValue: Int } init(_ elements: S) { count = 0 } @@ -369,10 +369,10 @@ func test(buffer1: UnsafeMutablePointer, buffer2: UnsafeMutablePointer, buffer2: UnsafeMutablePointer Date: Fri, 26 May 2023 11:10:29 +0100 Subject: [PATCH 005/788] Swift: Move change note. --- .../{lib => src}/change-notes/2023-05-23-path-injection-sinks.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename swift/ql/{lib => src}/change-notes/2023-05-23-path-injection-sinks.md (100%) diff --git a/swift/ql/lib/change-notes/2023-05-23-path-injection-sinks.md b/swift/ql/src/change-notes/2023-05-23-path-injection-sinks.md similarity index 100% rename from swift/ql/lib/change-notes/2023-05-23-path-injection-sinks.md rename to swift/ql/src/change-notes/2023-05-23-path-injection-sinks.md From 32c113bc38d5d8b30bdf89c74c567bc8fc412136 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 26 May 2023 14:36:06 +0100 Subject: [PATCH 006/788] Swift: Fix following merge with main. --- .../test/query-tests/Security/CWE-022/testPathInjection.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift index dd6225231e8..64c435bb0ae 100644 --- a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift @@ -43,8 +43,8 @@ class NSString { var utf8String: UnsafePointer? { get { return nil } } } - -class Data { +protocol DataProtocol { } +class Data : DataProtocol { struct ReadingOptions : OptionSet { let rawValue: Int } struct WritingOptions : OptionSet { let rawValue: Int } From 0973fb33b9baded56492ca95f52346eb829110dd Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:06:37 +0100 Subject: [PATCH 007/788] Swift: Model UnsafeMutablePointer.init(mutating:). --- .../frameworks/StandardLibrary/PointerTypes.qll | 14 ++++++++++++++ .../frameworks/StandardLibrary/StandardLibrary.qll | 1 + 2 files changed, 15 insertions(+) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/PointerTypes.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/PointerTypes.qll index 8d84145c4fa..46e18f786a6 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/PointerTypes.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/PointerTypes.qll @@ -4,6 +4,7 @@ */ import swift +private import codeql.swift.dataflow.ExternalFlow /** * A Swift unsafe typed pointer type such as `UnsafePointer`, @@ -57,3 +58,16 @@ class CVaListPointerType extends NominalType { class ManagedBufferPointerType extends BoundGenericType { ManagedBufferPointerType() { this.getName().matches("ManagedBufferPointer<%") } } + + +/** + * A model for pointer members that permit taint flow. + */ +private class PointerSummaries extends SummaryModelCsv { + override predicate row(string row) { + row = + [ + ";UnsafeMutablePointer;true;init(mutating:);;;Argument[0];ReturnValue;taint", + ] + } +} diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll index fd037d2f466..b825ac89ba4 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll @@ -12,6 +12,7 @@ private import NsData private import NsObject private import NsString private import NsUrl +private import PointerTypes private import Sequence private import String private import Url From a60478ba8a699029af87300436228e424cd85e5a Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Sat, 1 Jul 2023 18:14:52 +0200 Subject: [PATCH 008/788] write qhelp for js/incomplete-multi-character-sanitization --- ...IncompleteMultiCharacterSanitization.qhelp | 122 +++++++++++++++++- ...IncompleteMultiCharacterSanitization.qhelp | 122 +++++++++++++++++- 2 files changed, 238 insertions(+), 6 deletions(-) diff --git a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp index d1e955fefea..3be9c378002 100644 --- a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp +++ b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp @@ -1,8 +1,124 @@ + "-//Semmle//qhelp//EN" + "qhelp.dtd"> - + +

+Sanitizing untrusted input is a common technique for preventing injection attacks and other security +vulnerabilities. Regular expressions are often used to perform this sanitization. However, when the +regex matches multiple consecutive characters, applying a regular expression replacement just once +can result in the unsafe text re-appearing in the sanitized input. +

+

+Attackers can exploit this issue by crafting inputs that, when sanitized with an ineffective regular +expression, still contain malicious code or content. This can lead to code execution, data exposure, +or other vulnerabilities. +

+
+ +

+To prevent this issue, it is highly recommended to use a well-tested sanitization library whenever +possible. These libraries are more likely to handle corner cases and ensure effective sanitization. +

+ +

+If a library is not an option, you can consider alternative strategies to fix the issue. For example, +applying the regular expression replacement recursively until a fixpoint is reached or to rewrite the regular +expression to match single characters instead of the entire unsafe text. +

+
+ + +

+Consider the following JavaScript code that aims to remove all HTML comment start and end tags: +

+ + +str.replace(/<!--|--!?>/g, ""); + + +

+Given the input string "<!<!--- comment --->>", the output will be "<!-- comment -->", +which still contains an HTML comment. +

+ +

+One possible fix for this issue is to apply the regular expression replacement recursively until a fixpoint +is reached. This ensures that the unsafe text does not re-appear in the sanitized input, effectively +removing all instances of the targeted pattern: +

+ + +function removeHtmlComments(input) { + let previous; + do { + previous = input; + input = input.replace(/<!--|--!?>/g, ""); + } while (input !== previous); + return input; +} + +
+ + +

+Another example is the following regular expression intended to remove script tags: +

+ + +str.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/g, ""); + + +

+If the input string is "<scrip<script>is removed</script>t>alert(123)</script>", +the output will be "<script>alert(123)</script>", which still contains a script tag. +

+

+A fix for this issue is to rewrite the regular expression to match single characters +("<" and ">") instead of the entire unsafe text. This simplifies the sanitization process +and ensures that all potentially unsafe characters are removed: +

+ +function removeAllHtmlTags(input) { + return input.replace(/<|>/g, ""); +} + + +
+ + +

+Lastly, consider a path sanitizer using the regex /\.\.\//: +

+ + +str.replace(/\.\.\//g, ""); + + +

+This can result in an unsafe path being generated if only a single replacement is done. +

+ +

+A possible fix for this issue is to use the "sanitize-filename" npm library for path sanitization. +This library is specifically designed to handle path sanitization, and should handle all corner cases +and ensure effective sanitization: +

+ + +const sanitize = require("sanitize-filename"); + +function sanitizePath(input) { + return sanitize(input); +} + + +
+ + +
  • OWASP Top 10: A1 Injection.
  • +
  • Stackoverflow: Removing all script tags from HTML with JS regular expression.
  • +
    diff --git a/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp b/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp index d1e955fefea..64a971baf1f 100644 --- a/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp +++ b/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp @@ -1,8 +1,124 @@ + "-//Semmle//qhelp//EN" + "qhelp.dtd"> - + +

    +Sanitizing untrusted input is a common technique for preventing injection attacks and other security +vulnerabilities. Regular expressions are often used to perform this sanitization. However, when the +regex matches multiple consecutive characters, applying a regular expression replacement just once +can result in the unsafe text re-appearing in the sanitized input. +

    +

    +Attackers can exploit this issue by crafting inputs that, when sanitized with an ineffective regular +expression, still contain malicious code or content. This can lead to code execution, data exposure, +or other vulnerabilities. +

    +
    + +

    +To prevent this issue, it is highly recommended to use a well-tested sanitization library whenever +possible. These libraries are more likely to handle corner cases and ensure effective sanitization. +

    + +

    +If a library is not an option, you can consider alternative strategies to fix the issue. For example, +applying the regular expression replacement recursively until a fixpoint is reached or to rewrite the regular +expression to match single characters instead of the entire unsafe text. +

    +
    + + +

    +Consider the following Ruby code that aims to remove all HTML comment start and end tags: +

    + + +str.gsub(/<!--|--!?>/, "") + + +

    +Given the input string "<!<!--- comment --->>", the output will be "<!-- comment -->", +which still contains an HTML comment. +

    + +

    +One possible fix for this issue is to apply the regular expression replacement recursively until a fixpoint +is reached. This ensures that the unsafe text does not re-appear in the sanitized input, effectively +removing all instances of the targeted pattern: +

    + + +def remove_html_comments(input) + previous = nil + while input != previous + previous = input + input = input.gsub(/<!--|--!?>/, "") + end + input +end + +
    + + +

    +Another example is the following regular expression intended to remove script tags: +

    + + +str.gsub(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/, "") + + +

    +If the input string is "<scrip<script>is removed</script>t>alert(123)</script>", +the output will be "<script>alert(123)</script>", which still contains a script tag. +

    +

    +A fix for this issue is to rewrite the regular expression to match single characters +("<" and ">") instead of the entire unsafe text. This simplifies the sanitization process +and ensures that all potentially unsafe characters are removed: +

    + +def remove_all_html_tags(input) + input.gsub(/<|>/, "") +end + + +
    + + +

    +Lastly, consider a path sanitizer using the regex /\.\.\//: +

    + + +str.gsub(/\.\.\//, "") + + +

    +This can result in an unsafe path being generated if only a single replacement is done. +

    + +

    +A possible fix for this issue is to use the File.sanitize function from the Ruby Facets gem. +This library is specifically designed to handle path sanitization, and should handle all corner cases +and ensure effective sanitization: +

    + + +require 'facets' + +def sanitize_path(input) + File.sanitize(input) +end + + +
    + + +
  • OWASP Top 10: A1 Injection.
  • +
  • Stackoverflow: Removing all script tags from HTML with JS regular expression.
  • +
    From bea41627365e6483a6717d6b8a6d831713cf7905 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Mon, 3 Jul 2023 08:41:01 +0200 Subject: [PATCH 009/788] delete multi-char note from the `incomplete-sanitization` qhelp --- .../Security/CWE-116/IncompleteSanitization.qhelp | 12 ------------ .../security/cwe-116/IncompleteSanitization.qhelp | 12 ------------ 2 files changed, 24 deletions(-) diff --git a/javascript/ql/src/Security/CWE-116/IncompleteSanitization.qhelp b/javascript/ql/src/Security/CWE-116/IncompleteSanitization.qhelp index 0ea141309f4..12f93eb1116 100644 --- a/javascript/ql/src/Security/CWE-116/IncompleteSanitization.qhelp +++ b/javascript/ql/src/Security/CWE-116/IncompleteSanitization.qhelp @@ -43,18 +43,6 @@ needed, for instance by using prepared statements for SQL queries. Otherwise, make sure to use a regular expression with the g flag to ensure that all occurrences are replaced, and remember to escape backslashes if applicable.

    -

    -Note, however, that this is generally not sufficient for replacing multi-character strings: -the String.prototype.replace method only performs one pass over the input string, -and will not replace further instances of the string that result from earlier replacements. -

    -

    -For example, consider the code snippet s.replace(/\/\.\.\//g, ""), which attempts -to strip out all occurences of /../ from s. This will not work as -expected: for the string /./.././, for example, it will remove the single -occurrence of /../ in the middle, but the remainder of the string then becomes -/../, which is another instance of the substring we were trying to remove. -

    diff --git a/ruby/ql/src/queries/security/cwe-116/IncompleteSanitization.qhelp b/ruby/ql/src/queries/security/cwe-116/IncompleteSanitization.qhelp index 70fb90666f1..1af20214965 100644 --- a/ruby/ql/src/queries/security/cwe-116/IncompleteSanitization.qhelp +++ b/ruby/ql/src/queries/security/cwe-116/IncompleteSanitization.qhelp @@ -37,18 +37,6 @@ An even safer alternative is to design the application so that sanitization is n Otherwise, make sure to use String#gsub rather than String#sub, to ensure that all occurrences are replaced, and remember to escape backslashes if applicable.

    -

    -Note, however, that this is generally not sufficient for replacing multi-character strings: -the String#gsub method performs only one pass over the input string, and will not -replace further instances of the string that result from earlier replacements. -

    -

    -For example, consider the code snippet s.gsub /\/\.\.\//, "", which attempts to strip -out all occurrences of /../ from s. This will not work as expected: for the -string /./.././, for example, it will remove the single occurrence of /../ -in the middle, but the remainder of the string then becomes /../, which is another -instance of the substring we were trying to remove. -

    From 3e2b8124c91d48a1544574258b7c6055bd045d31 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Mon, 3 Jul 2023 10:03:45 +0200 Subject: [PATCH 010/788] apply suggestions from review --- .../IncompleteMultiCharacterSanitization.qhelp | 12 ++++++------ .../IncompleteMultiCharacterSanitization.qhelp | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp index 3be9c378002..4187736e58f 100644 --- a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp +++ b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp @@ -7,7 +7,7 @@

    Sanitizing untrusted input is a common technique for preventing injection attacks and other security vulnerabilities. Regular expressions are often used to perform this sanitization. However, when the -regex matches multiple consecutive characters, applying a regular expression replacement just once +regular expression matches multiple consecutive characters, replacing it just once can result in the unsafe text re-appearing in the sanitized input.

    @@ -25,7 +25,7 @@ possible. These libraries are more likely to handle corner cases and ensure effe

    If a library is not an option, you can consider alternative strategies to fix the issue. For example, -applying the regular expression replacement recursively until a fixpoint is reached or to rewrite the regular +applying the regular expression replacement repeatedly until no more replacements can be performed or to rewrite the regular expression to match single characters instead of the entire unsafe text.

    @@ -45,8 +45,8 @@ which still contains an HTML comment.

    -One possible fix for this issue is to apply the regular expression replacement recursively until a fixpoint -is reached. This ensures that the unsafe text does not re-appear in the sanitized input, effectively +One possible fix for this issue is to apply the regular expression replacement recursively until no +more replacements can be performed. This ensures that the unsafe text does not re-appear in the sanitized input, effectively removing all instances of the targeted pattern:

    @@ -90,7 +90,7 @@ function removeAllHtmlTags(input) {

    -Lastly, consider a path sanitizer using the regex /\.\.\//: +Lastly, consider a path sanitizer using the regular expression /\.\.\//:

    @@ -119,6 +119,6 @@ function sanitizePath(input) {
  • OWASP Top 10: A1 Injection.
  • -
  • Stackoverflow: Removing all script tags from HTML with JS regular expression.
  • +
  • Stack Overflow: Removing all script tags from HTML with JS regular expression.
  • diff --git a/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp b/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp index 64a971baf1f..62293522476 100644 --- a/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp +++ b/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp @@ -7,7 +7,7 @@

    Sanitizing untrusted input is a common technique for preventing injection attacks and other security vulnerabilities. Regular expressions are often used to perform this sanitization. However, when the -regex matches multiple consecutive characters, applying a regular expression replacement just once +regular expression matches multiple consecutive characters, replacing it just once can result in the unsafe text re-appearing in the sanitized input.

    @@ -25,7 +25,7 @@ possible. These libraries are more likely to handle corner cases and ensure effe

    If a library is not an option, you can consider alternative strategies to fix the issue. For example, -applying the regular expression replacement recursively until a fixpoint is reached or to rewrite the regular +applying the regular expression replacement repeatedly until no more replacements can be performed or to rewrite the regular expression to match single characters instead of the entire unsafe text.

    @@ -45,8 +45,8 @@ which still contains an HTML comment.

    -One possible fix for this issue is to apply the regular expression replacement recursively until a fixpoint -is reached. This ensures that the unsafe text does not re-appear in the sanitized input, effectively +One possible fix for this issue is to apply the regular expression replacement recursively until no +more replacements can be performed. This ensures that the unsafe text does not re-appear in the sanitized input, effectively removing all instances of the targeted pattern:

    @@ -90,7 +90,7 @@ end

    -Lastly, consider a path sanitizer using the regex /\.\.\//: +Lastly, consider a path sanitizer using the regular expression /\.\.\//:

    @@ -119,6 +119,6 @@ end
  • OWASP Top 10: A1 Injection.
  • -
  • Stackoverflow: Removing all script tags from HTML with JS regular expression.
  • +
  • Stack Overflow: Removing all script tags from HTML with JS regular expression.
  • From 8676516cb9176e55019d3438b20235cca9d8a4b7 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Mon, 3 Jul 2023 13:17:13 +0200 Subject: [PATCH 011/788] recursively -> repeatedly Co-authored-by: Asger F --- .../Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp | 2 +- .../security/cwe-116/IncompleteMultiCharacterSanitization.qhelp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp index 4187736e58f..23ea040d1e1 100644 --- a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp +++ b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp @@ -45,7 +45,7 @@ which still contains an HTML comment.

    -One possible fix for this issue is to apply the regular expression replacement recursively until no +One possible fix for this issue is to apply the regular expression replacement repeatedly until no more replacements can be performed. This ensures that the unsafe text does not re-appear in the sanitized input, effectively removing all instances of the targeted pattern:

    diff --git a/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp b/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp index 62293522476..4792530ecfb 100644 --- a/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp +++ b/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp @@ -45,7 +45,7 @@ which still contains an HTML comment.

    -One possible fix for this issue is to apply the regular expression replacement recursively until no +One possible fix for this issue is to apply the regular expression replacement repeatedly until no more replacements can be performed. This ensures that the unsafe text does not re-appear in the sanitized input, effectively removing all instances of the targeted pattern:

    From ebb379f08c53a25e7b6e55e407173ce37eaaab35 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 11 Jul 2023 16:13:53 +0100 Subject: [PATCH 012/788] Swift: Fix sqlite3_temp_directory sink. --- .../swift/security/PathInjectionExtensions.qll | 15 ++++++++++++++- .../Security/CWE-022/testPathInjection.swift | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll index f39dcc27677..bbf52273dc1 100644 --- a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll @@ -33,6 +33,20 @@ private class DefaultPathInjectionSink extends PathInjectionSink { DefaultPathInjectionSink() { sinkNode(this, "path-injection") } } +/** + * A sink that is a write to a global variable. + */ +private class GlobalVariablePathInjectionSink extends PathInjectionSink { + GlobalVariablePathInjectionSink() { + // value assigned to global variable `sqlite3_temp_directory` + // the sink should be the `DeclRefExpr` itself, but we don't currently have taint flow to globals. + exists(AssignExpr ae | + ae.getDest().(DeclRefExpr).getDecl().(VarDecl).getName() = "sqlite3_temp_directory" and + ae.getSource() = this.asExpr() + ) + } +} + private class DefaultPathInjectionBarrier extends PathInjectionBarrier { DefaultPathInjectionBarrier() { // This is a simplified implementation. @@ -139,7 +153,6 @@ private class PathInjectionSinks extends SinkModelCsv { ";;false;sqlite3_filename_journal(_:);;;Argument[0];path-injection", ";;false;sqlite3_filename_wal(_:);;;Argument[0];path-injection", ";;false;sqlite3_free_filename(_:);;;Argument[0];path-injection", - ";;false;sqlite3_temp_directory;;;PostUpdate;path-injection", // SQLite.swift ";Connection.Location.uri;true;init(_:parameters:);;;Argument[0];path-injection", ";Connection;true;init(_:readonly:);;;Argument[0];path-injection", diff --git a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift index 64c435bb0ae..420c995cec5 100644 --- a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift @@ -382,7 +382,7 @@ func test(buffer1: UnsafeMutablePointer, buffer2: UnsafeMutablePointer(mutating: NSString(string: "myFile.sqlite3").utf8String) // GOOD - sqlite3_temp_directory = UnsafeMutablePointer(mutating: NSString(string: remoteString).utf8String) // $ MISSING: hasPathInjection=253 + sqlite3_temp_directory = UnsafeMutablePointer(mutating: NSString(string: remoteString).utf8String) // $ hasPathInjection=253 // SQLite.swift From 5f8f1b64c66c7077157c8386f373f2a584732c62 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 11 Jul 2023 17:14:25 +0100 Subject: [PATCH 013/788] Swift: Model Connection.Location.uri sink. --- .../swift/security/PathInjectionExtensions.qll | 18 +++++++++++++++++- .../Security/CWE-022/testPathInjection.swift | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll index bbf52273dc1..48c4d86619d 100644 --- a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll @@ -47,6 +47,23 @@ private class GlobalVariablePathInjectionSink extends PathInjectionSink { } } +/** + * A sink that is a write to a global variable. + */ +private class EnumConstructorPathInjectionSink extends PathInjectionSink { + EnumConstructorPathInjectionSink() { + // first argument to `Connection.Location.uri(_:parameters:)` + exists(ApplyExpr ae, EnumElementDecl decl, NominalTypeDecl parent | + ae.getFunction().(MethodLookupExpr).getMember() = decl and + decl.getName() = "uri" and + decl.getDeclaringDecl() = parent and + parent.getName() = "Location" and + parent.getDeclaringDecl().(NominalTypeDecl).(NominalTypeDecl).getName() = "Connection" and + this.asExpr() = ae.getArgument(0).getExpr() + ) + } +} + private class DefaultPathInjectionBarrier extends PathInjectionBarrier { DefaultPathInjectionBarrier() { // This is a simplified implementation. @@ -154,7 +171,6 @@ private class PathInjectionSinks extends SinkModelCsv { ";;false;sqlite3_filename_wal(_:);;;Argument[0];path-injection", ";;false;sqlite3_free_filename(_:);;;Argument[0];path-injection", // SQLite.swift - ";Connection.Location.uri;true;init(_:parameters:);;;Argument[0];path-injection", ";Connection;true;init(_:readonly:);;;Argument[0];path-injection", ] } diff --git a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift index 420c995cec5..a618aafd174 100644 --- a/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-022/testPathInjection.swift @@ -388,7 +388,7 @@ func test(buffer1: UnsafeMutablePointer, buffer2: UnsafeMutablePointer Date: Tue, 11 Jul 2023 18:13:46 +0100 Subject: [PATCH 014/788] Swift: Introduce EnumElmentDecl.hasQualifiedName and use it to clean up the code. --- .../swift/elements/decl/EnumElementDecl.qll | 33 +++++++++++++++++++ .../swift/elements/expr/EnumElementExpr.qll | 9 ++++- .../security/PathInjectionExtensions.qll | 7 ++-- 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/swift/ql/lib/codeql/swift/elements/decl/EnumElementDecl.qll b/swift/ql/lib/codeql/swift/elements/decl/EnumElementDecl.qll index 4d99dc4726f..83e3d94efe9 100644 --- a/swift/ql/lib/codeql/swift/elements/decl/EnumElementDecl.qll +++ b/swift/ql/lib/codeql/swift/elements/decl/EnumElementDecl.qll @@ -1,5 +1,38 @@ private import codeql.swift.generated.decl.EnumElementDecl +private import codeql.swift.elements.decl.Decl +/** + * An enum element declaration, for example `enumElement` and `anotherEnumElement` in: + * ``` + * enum MyEnum { + * case enumElement + * case anotherEnumElement(Int) + * } + * ``` + */ class EnumElementDecl extends Generated::EnumElementDecl { override string toString() { result = this.getName() } + + /** + * Holds if this function is called `funcName` and is a member of a + * class, struct, extension, enum or protocol called `typeName`. + */ + cached + predicate hasQualifiedName(string typeName, string enumElementName) { + this.getName() = enumElementName and + exists(Decl d | + d.asNominalTypeDecl().getFullName() = typeName and + d.getAMember() = this + ) + } + + /** + * Holds if this function is called `funcName` and is a member of a + * class, struct, extension, enum or protocol called `typeName` in a module + * called `moduleName`. + */ + predicate hasQualifiedName(string moduleName, string typeName, string enumElementName) { + this.hasQualifiedName(typeName, enumElementName) and + this.getModule().getFullName() = moduleName + } } diff --git a/swift/ql/lib/codeql/swift/elements/expr/EnumElementExpr.qll b/swift/ql/lib/codeql/swift/elements/expr/EnumElementExpr.qll index 4da1297820b..70432ccae45 100644 --- a/swift/ql/lib/codeql/swift/elements/expr/EnumElementExpr.qll +++ b/swift/ql/lib/codeql/swift/elements/expr/EnumElementExpr.qll @@ -10,7 +10,14 @@ private import codeql.swift.elements.expr.MethodLookupExpr private import codeql.swift.elements.decl.EnumElementDecl /** - * An expression that constructs a case of an enum. + * An expression that references a case of an enum. For example both `enumElement` in: + * ``` + * let value = MyEnum.enumElement + * ... + * switch (anotherValue) { + * case .enumElement: + * ... + * ``` */ class EnumElementExpr extends Expr { EnumElementDecl decl; diff --git a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll index 48c4d86619d..fdcb3860e5b 100644 --- a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll @@ -53,12 +53,9 @@ private class GlobalVariablePathInjectionSink extends PathInjectionSink { private class EnumConstructorPathInjectionSink extends PathInjectionSink { EnumConstructorPathInjectionSink() { // first argument to `Connection.Location.uri(_:parameters:)` - exists(ApplyExpr ae, EnumElementDecl decl, NominalTypeDecl parent | + exists(ApplyExpr ae, EnumElementDecl decl | ae.getFunction().(MethodLookupExpr).getMember() = decl and - decl.getName() = "uri" and - decl.getDeclaringDecl() = parent and - parent.getName() = "Location" and - parent.getDeclaringDecl().(NominalTypeDecl).(NominalTypeDecl).getName() = "Connection" and + decl.hasQualifiedName("Connection.Location", "uri") and this.asExpr() = ae.getArgument(0).getExpr() ) } From 02ddcab77332a37d9c14be063d837b5702a502ad Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 12 Jul 2023 18:25:23 +0100 Subject: [PATCH 015/788] Swift: Cleanup / corrections. --- .../swift/elements/decl/EnumElementDecl.qll | 21 +++++++++---------- .../security/PathInjectionExtensions.qll | 6 +++--- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/swift/ql/lib/codeql/swift/elements/decl/EnumElementDecl.qll b/swift/ql/lib/codeql/swift/elements/decl/EnumElementDecl.qll index 83e3d94efe9..8dfc2200162 100644 --- a/swift/ql/lib/codeql/swift/elements/decl/EnumElementDecl.qll +++ b/swift/ql/lib/codeql/swift/elements/decl/EnumElementDecl.qll @@ -1,5 +1,5 @@ private import codeql.swift.generated.decl.EnumElementDecl -private import codeql.swift.elements.decl.Decl +private import codeql.swift.elements.decl.EnumDecl /** * An enum element declaration, for example `enumElement` and `anotherEnumElement` in: @@ -14,25 +14,24 @@ class EnumElementDecl extends Generated::EnumElementDecl { override string toString() { result = this.getName() } /** - * Holds if this function is called `funcName` and is a member of a - * class, struct, extension, enum or protocol called `typeName`. + * Holds if this enum element declaration is called `enumElementName` and is a member of an + * enum called `enumName`. */ cached - predicate hasQualifiedName(string typeName, string enumElementName) { + predicate hasQualifiedName(string enumName, string enumElementName) { this.getName() = enumElementName and - exists(Decl d | - d.asNominalTypeDecl().getFullName() = typeName and + exists(EnumDecl d | + d.getFullName() = enumName and d.getAMember() = this ) } /** - * Holds if this function is called `funcName` and is a member of a - * class, struct, extension, enum or protocol called `typeName` in a module - * called `moduleName`. + * Holds if this enum element declaration is called `enumElementName` and is a member of an + * enumcalled `enumName` in a module called `moduleName`. */ - predicate hasQualifiedName(string moduleName, string typeName, string enumElementName) { - this.hasQualifiedName(typeName, enumElementName) and + predicate hasQualifiedName(string moduleName, string enumName, string enumElementName) { + this.hasQualifiedName(enumName, enumElementName) and this.getModule().getFullName() = moduleName } } diff --git a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll index fdcb3860e5b..b57dfcdf957 100644 --- a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll @@ -38,7 +38,7 @@ private class DefaultPathInjectionSink extends PathInjectionSink { */ private class GlobalVariablePathInjectionSink extends PathInjectionSink { GlobalVariablePathInjectionSink() { - // value assigned to global variable `sqlite3_temp_directory` + // value assigned to the sqlite3 global variable `sqlite3_temp_directory` // the sink should be the `DeclRefExpr` itself, but we don't currently have taint flow to globals. exists(AssignExpr ae | ae.getDest().(DeclRefExpr).getDecl().(VarDecl).getName() = "sqlite3_temp_directory" and @@ -48,11 +48,11 @@ private class GlobalVariablePathInjectionSink extends PathInjectionSink { } /** - * A sink that is a write to a global variable. + * A sink that is an argument to an enum element. */ private class EnumConstructorPathInjectionSink extends PathInjectionSink { EnumConstructorPathInjectionSink() { - // first argument to `Connection.Location.uri(_:parameters:)` + // first argument to SQLite.swift's `Connection.Location.uri(_:parameters:)` exists(ApplyExpr ae, EnumElementDecl decl | ae.getFunction().(MethodLookupExpr).getMember() = decl and decl.hasQualifiedName("Connection.Location", "uri") and From 9db970f0553ded2dba23e2c998c87bcf4b9dd2f5 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 13 Jul 2023 14:17:33 +0200 Subject: [PATCH 016/788] apply suggestion from review Co-authored-by: Max Schaefer <54907921+max-schaefer@users.noreply.github.com> --- .../Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp index 23ea040d1e1..f0c5a2fcf3f 100644 --- a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp +++ b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp @@ -25,7 +25,7 @@ possible. These libraries are more likely to handle corner cases and ensure effe

    If a library is not an option, you can consider alternative strategies to fix the issue. For example, -applying the regular expression replacement repeatedly until no more replacements can be performed or to rewrite the regular +applying the regular expression replacement repeatedly until no more replacements can be performed, or rewriting the regular expression to match single characters instead of the entire unsafe text.

    From 1fe66232c6d83775ebcb11ea76eb0725a0e714a9 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Thu, 13 Jul 2023 14:27:42 +0200 Subject: [PATCH 017/788] suggestions based on review: add a popular library example for HTML-sanitization, and use the old text about ../ replacements --- .../IncompleteMultiCharacterSanitization.qhelp | 15 ++++++++++++++- .../IncompleteMultiCharacterSanitization.qhelp | 17 ++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp index f0c5a2fcf3f..0e0b25b5f6c 100644 --- a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp +++ b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp @@ -85,6 +85,16 @@ function removeAllHtmlTags(input) { return input.replace(/<|>/g, ""); }
    +

    +Another potential fix is to use the popular sanitize-html npm library. +It keeps most of the safe HTML tags while removing all unsafe tags and attributes. +

    + +const sanitizeHtml = require("sanitize-html"); +function removeAllHtmlTags(input) { + return sanitizeHtml(input); +} +
    @@ -98,7 +108,10 @@ str.replace(/\.\.\//g, "");

    -This can result in an unsafe path being generated if only a single replacement is done. +The regular expression attempts to strip out all occurences of /../ from str. +This will not work as expected: for the string /./.././, for example, it will remove the single +occurrence of /../ in the middle, but the remainder of the string then becomes +/../, which is another instance of the substring we were trying to remove.

    diff --git a/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp b/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp index 4792530ecfb..380a771083e 100644 --- a/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp +++ b/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp @@ -86,6 +86,18 @@ def remove_all_html_tags(input) end +

    +Another potential fix is to use the popular sanitize gem. +It keeps most of the safe HTML tags while removing all unsafe tags and attributes. +

    + +require 'sanitize' + +def sanitize_html(input) + Sanitize.fragment(input) +end + +
    @@ -98,7 +110,10 @@ str.gsub(/\.\.\//, "")

    -This can result in an unsafe path being generated if only a single replacement is done. +The regular expression attempts to strip out all occurences of /../ from str. +This will not work as expected: for the string /./.././, for example, it will remove the single +occurrence of /../ in the middle, but the remainder of the string then becomes +/../, which is another instance of the substring we were trying to remove.

    From 4f1c12e9dc1e2b6263c7d1aab94cb16f5b7c9d6b Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 13 Jul 2023 14:49:25 +0200 Subject: [PATCH 018/788] apply suggestion from review Co-authored-by: Max Schaefer <54907921+max-schaefer@users.noreply.github.com> --- .../security/cwe-116/IncompleteMultiCharacterSanitization.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp b/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp index 380a771083e..5afb23e1ec2 100644 --- a/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp +++ b/ruby/ql/src/queries/security/cwe-116/IncompleteMultiCharacterSanitization.qhelp @@ -25,7 +25,7 @@ possible. These libraries are more likely to handle corner cases and ensure effe

    If a library is not an option, you can consider alternative strategies to fix the issue. For example, -applying the regular expression replacement repeatedly until no more replacements can be performed or to rewrite the regular +applying the regular expression replacement repeatedly until no more replacements can be performed, or rewriting the regular expression to match single characters instead of the entire unsafe text.

    From 7823ff968c252f581a3234a4802624fedddb7a95 Mon Sep 17 00:00:00 2001 From: Max Schaefer Date: Tue, 18 Jul 2023 15:55:11 +0100 Subject: [PATCH 019/788] JavaScript: Improve query help for `js/server-side-unvalidated-url-redirection`. --- .../Security/CWE-601/ServerSideUrlRedirect.qhelp | 11 +++++++++++ .../CWE-601/examples/ServerSideUrlRedirect.js | 4 ++-- .../CWE-601/examples/ServerSideUrlRedirectGood.js | 9 ++++++--- .../examples/ServerSideUrlRedirectGood2.js | 15 +++++++++++++++ .../ServerSideUrlRedirect.expected | 5 +++++ .../ServerSideUrlRedirect.js | 6 ++++++ .../ServerSideUrlRedirectGood.js | 13 +++++++++++++ .../ServerSideUrlRedirectGood2.js | 15 +++++++++++++++ 8 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js create mode 100644 javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.js create mode 100644 javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood.js create mode 100644 javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js diff --git a/javascript/ql/src/Security/CWE-601/ServerSideUrlRedirect.qhelp b/javascript/ql/src/Security/CWE-601/ServerSideUrlRedirect.qhelp index 2052f16146b..2faa5f8f9d7 100644 --- a/javascript/ql/src/Security/CWE-601/ServerSideUrlRedirect.qhelp +++ b/javascript/ql/src/Security/CWE-601/ServerSideUrlRedirect.qhelp @@ -16,6 +16,10 @@ To guard against untrusted URL redirection, it is advisable to avoid putting use directly into a redirect URL. Instead, maintain a list of authorized redirects on the server; then choose from that list based on the user input provided.

    +

    +If this is not possible, then the user input should be validated in some other way, +for example by verifying that the target URL is on the same host as the current page. +

    @@ -32,6 +36,13 @@ before doing the redirection:

    + +

    +Alternatively, we can check that the target URL does not redirect to a different host: +

    + + +
    diff --git a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirect.js b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirect.js index 0aa4eff9a8f..d2ae7511c93 100644 --- a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirect.js +++ b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirect.js @@ -1,6 +1,6 @@ const app = require("express")(); -app.get('/some/path', function(req, res) { +app.get('/redirect', function(req, res) { // BAD: a request parameter is incorporated without validation into a URL redirect - res.redirect(req.param("target")); + res.redirect(req.params["target"]); }); diff --git a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood.js b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood.js index d2f2a95ef68..8903ddf09fa 100644 --- a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood.js +++ b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood.js @@ -2,9 +2,12 @@ const app = require("express")(); const VALID_REDIRECT = "http://cwe.mitre.org/data/definitions/601.html"; -app.get('/some/path', function(req, res) { +app.get('/redirect', function(req, res) { // GOOD: the request parameter is validated against a known fixed string - let target = req.param("target"); - if (VALID_REDIRECT === target) + let target = req.params["target"] + if (VALID_REDIRECT === target) { res.redirect(target); + } else { + res.redirect("/"); + } }); diff --git a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js new file mode 100644 index 00000000000..5eaedd0aac5 --- /dev/null +++ b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js @@ -0,0 +1,15 @@ +const app = require("express")(); + +function isLocalUrl(url) { + return url.startsWith("/") && !url.startsWith("//") && !url.startsWith("/\\"); +} + +app.get('/redirect', function(req, res) { + // GOOD: check that we don't redirect to a different host + let target = req.params["target"]; + if (isLocalUrl(target)) { + res.redirect(target); + } else { + res.redirect("/"); + } +}); \ No newline at end of file diff --git a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.expected b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.expected index e0ef0bfaae8..2883cd3fdac 100644 --- a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.expected +++ b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.expected @@ -1,4 +1,7 @@ nodes +| ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | +| ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | +| ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | | express.js:7:16:7:34 | req.param("target") | | express.js:7:16:7:34 | req.param("target") | | express.js:7:16:7:34 | req.param("target") | @@ -114,6 +117,7 @@ nodes | react-native.js:9:26:9:32 | tainted | | react-native.js:9:26:9:32 | tainted | edges +| ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | | express.js:7:16:7:34 | req.param("target") | express.js:7:16:7:34 | req.param("target") | | express.js:12:26:12:44 | req.param("target") | express.js:12:26:12:44 | req.param("target") | | express.js:27:7:27:34 | target | express.js:33:18:33:23 | target | @@ -211,6 +215,7 @@ edges | react-native.js:7:17:7:33 | req.param("code") | react-native.js:7:7:7:33 | tainted | | react-native.js:7:17:7:33 | req.param("code") | react-native.js:7:7:7:33 | tainted | #select +| ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | Untrusted URL redirection depends on a $@. | ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | user-provided value | | express.js:7:16:7:34 | req.param("target") | express.js:7:16:7:34 | req.param("target") | express.js:7:16:7:34 | req.param("target") | Untrusted URL redirection depends on a $@. | express.js:7:16:7:34 | req.param("target") | user-provided value | | express.js:12:26:12:44 | req.param("target") | express.js:12:26:12:44 | req.param("target") | express.js:12:26:12:44 | req.param("target") | Untrusted URL redirection depends on a $@. | express.js:12:26:12:44 | req.param("target") | user-provided value | | express.js:33:18:33:23 | target | express.js:27:16:27:34 | req.param("target") | express.js:33:18:33:23 | target | Untrusted URL redirection depends on a $@. | express.js:27:16:27:34 | req.param("target") | user-provided value | diff --git a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.js b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.js new file mode 100644 index 00000000000..d2ae7511c93 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.js @@ -0,0 +1,6 @@ +const app = require("express")(); + +app.get('/redirect', function(req, res) { + // BAD: a request parameter is incorporated without validation into a URL redirect + res.redirect(req.params["target"]); +}); diff --git a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood.js b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood.js new file mode 100644 index 00000000000..8903ddf09fa --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood.js @@ -0,0 +1,13 @@ +const app = require("express")(); + +const VALID_REDIRECT = "http://cwe.mitre.org/data/definitions/601.html"; + +app.get('/redirect', function(req, res) { + // GOOD: the request parameter is validated against a known fixed string + let target = req.params["target"] + if (VALID_REDIRECT === target) { + res.redirect(target); + } else { + res.redirect("/"); + } +}); diff --git a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js new file mode 100644 index 00000000000..5eaedd0aac5 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js @@ -0,0 +1,15 @@ +const app = require("express")(); + +function isLocalUrl(url) { + return url.startsWith("/") && !url.startsWith("//") && !url.startsWith("/\\"); +} + +app.get('/redirect', function(req, res) { + // GOOD: check that we don't redirect to a different host + let target = req.params["target"]; + if (isLocalUrl(target)) { + res.redirect(target); + } else { + res.redirect("/"); + } +}); \ No newline at end of file From 32c10885d491242dac2018f7ab8f4ba13e7f10c6 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 20 Jul 2023 11:43:11 +0100 Subject: [PATCH 020/788] Java: Add test case. --- java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java b/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java index e7e876cb696..51eec6e74e7 100644 --- a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java +++ b/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java @@ -86,6 +86,9 @@ class ExpRedosTest { // NOT GOOD; attack: "\n".repeat(100) + "." "(?s)(.|\\n)*!", // $ hasExpRedos + // NOT GOOD; attack: "\n".repeat(100) + "." + "(?is)(.|\\n)*!", // $ MISSING: hasExpRedos + // GOOD "([\\w.]+)*", @@ -120,7 +123,7 @@ class ExpRedosTest { "\"((?:\\\\[\\x00-\\x7f]|[^\\x00-\\x08\\x0a-\\x1f\\x7f\"])*)\"", // $ MISSING: hasExpRedos // GOOD - "\"((?:\\\\[\\x00-\\x7f]|[^\\x00-\\x08\\x0a-\\x1f\\x7f\"\\\\])*)\"", + "\"((?:\\\\[\\x00-\\x7f]|[^\\x00-\\x08\\x0a-\\x1f\\x7f\"\\\\])*)\"", // NOT GOOD "(([a-z]|[d-h])*)\"", // $ hasExpRedos From 369f88beda15c5b8f201e75cfc804118bb8487d6 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 20 Jul 2023 11:41:10 +0100 Subject: [PATCH 021/788] Java: Fix for multiple parse mode flags. --- java/ql/lib/semmle/code/java/regex/regex.qll | 19 +++++++++++++------ .../security/CWE-730/ExpRedosTest.java | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/java/ql/lib/semmle/code/java/regex/regex.qll b/java/ql/lib/semmle/code/java/regex/regex.qll index aca51b74a03..7c24892ff2e 100644 --- a/java/ql/lib/semmle/code/java/regex/regex.qll +++ b/java/ql/lib/semmle/code/java/regex/regex.qll @@ -472,12 +472,19 @@ abstract class RegexString extends StringLiteral { ) } - private predicate flagGroupStart(int start, int end, string c) { + private predicate flagGroupStart(int start, int end) { this.isGroupStart(start) and this.getChar(start + 1) = "?" and - end = start + 3 and - c = this.getChar(start + 2) and - c in ["i", "m", "s", "u", "x", "U"] + this.getChar(start + 2) in ["i", "m", "s", "u", "x", "U"] and + end = start + 2 + } + + private predicate flagGroup(int start, int end, string c) { + exists(int inStart, int inEnd | + this.flagGroupStart(start, inStart) and + this.groupContents(start, end, inStart, inEnd) and + this.getChar([inStart .. inEnd - 1]) = c + ) } /** @@ -485,7 +492,7 @@ abstract class RegexString extends StringLiteral { * it is defined by a prefix. */ string getModeFromPrefix() { - exists(string c | this.flagGroupStart(_, _, c) | + exists(string c | this.flagGroup(_, _, c) | c = "i" and result = "IGNORECASE" or c = "m" and result = "MULTILINE" @@ -540,7 +547,7 @@ abstract class RegexString extends StringLiteral { private predicate groupStart(int start, int end) { this.nonCapturingGroupStart(start, end) or - this.flagGroupStart(start, end, _) + this.flagGroupStart(start, end) or this.namedGroupStart(start, end) or diff --git a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java b/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java index 51eec6e74e7..4a31060850b 100644 --- a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java +++ b/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java @@ -87,7 +87,7 @@ class ExpRedosTest { "(?s)(.|\\n)*!", // $ hasExpRedos // NOT GOOD; attack: "\n".repeat(100) + "." - "(?is)(.|\\n)*!", // $ MISSING: hasExpRedos + "(?is)(.|\\n)*!", // $ hasExpRedos // GOOD "([\\w.]+)*", From 80cb386ffd43e4ef3e20323282ee5dc4f1b90fff Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 20 Jul 2023 11:52:04 +0100 Subject: [PATCH 022/788] Java: Change note. --- java/ql/lib/change-notes/2023-07-20-regex-parse-modes.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2023-07-20-regex-parse-modes.md diff --git a/java/ql/lib/change-notes/2023-07-20-regex-parse-modes.md b/java/ql/lib/change-notes/2023-07-20-regex-parse-modes.md new file mode 100644 index 00000000000..2d676227491 --- /dev/null +++ b/java/ql/lib/change-notes/2023-07-20-regex-parse-modes.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Regular expressions containing multiple parse mode flags are now interpretted correctly. For example `"(?is)abc.*"` with both the `i` and `s` flags. From 45a9d5bc7d834fe1026e227101971bfc8791c02b Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 20 Jul 2023 11:53:52 +0100 Subject: [PATCH 023/788] Java: QLDoc. --- java/ql/lib/semmle/code/java/regex/regex.qll | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/java/ql/lib/semmle/code/java/regex/regex.qll b/java/ql/lib/semmle/code/java/regex/regex.qll index 7c24892ff2e..1533f549f89 100644 --- a/java/ql/lib/semmle/code/java/regex/regex.qll +++ b/java/ql/lib/semmle/code/java/regex/regex.qll @@ -472,6 +472,9 @@ abstract class RegexString extends StringLiteral { ) } + /** + * Holds if a parse mode starts between `start` and `end`. + */ private predicate flagGroupStart(int start, int end) { this.isGroupStart(start) and this.getChar(start + 1) = "?" and @@ -479,6 +482,13 @@ abstract class RegexString extends StringLiteral { end = start + 2 } + /** + * Holds if a parse mode group is between `start` and `end`, and includes the + * mode flag `c`. For example the following span, with mode flag `i`: + * ``` + * (?i) + * ``` + */ private predicate flagGroup(int start, int end, string c) { exists(int inStart, int inEnd | this.flagGroupStart(start, inStart) and From 494e7d9a3f16321a4764074d5bd96774c5d0fa35 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Wed, 26 Jul 2023 17:28:22 +0000 Subject: [PATCH 024/788] add unsafe HMAC comparison query and qlhelp file --- .../cwe-208/UnsafeHMACComparison.ql | 73 +++++++++++++++++++ .../cwe-208/UnsafeHMACComparison.qlhelp | 21 ++++++ .../examples/unsafe_hmac_comparison.rb | 11 +++ 3 files changed, 105 insertions(+) create mode 100644 ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.ql create mode 100644 ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.qlhelp create mode 100644 ruby/ql/src/experimental/cwe-208/examples/unsafe_hmac_comparison.rb diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.ql new file mode 100644 index 00000000000..27562174f0a --- /dev/null +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.ql @@ -0,0 +1,73 @@ +private import codeql.ruby.AST +import codeql.ruby.AST +import codeql.ruby.DataFlow +import codeql.ruby.ApiGraphs +import codeql.ruby.dataflow.RemoteFlowSources +import codeql.ruby.ast.Operation +import codeql.ruby.TaintTracking +import ruby + +/** + * @kind problem + */ + +// A call to OpenSSL::HMAC.hexdigest +class OpenSSLHMACHexdigest extends DataFlow::Node { + OpenSSLHMACHexdigest() { + this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("hexdigest") + } +} + +// A call to OpenSSL::HMAC.to_s (which is an alias for OpenSSL::HMAC.hexdigest) +class OpenSSLHMACtos extends DataFlow::Node { + OpenSSLHMACtos() { + this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("to_s") + } +} + +// A call to OpenSSL::HMAC.digest +class OpenSSLHMACdigest extends DataFlow::Node { + OpenSSLHMACdigest() { + this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("digest") + } +} + +// A call to OpenSSL::HMAC.new +class OpenSSLnewHMAC extends DataFlow::Node { + OpenSSLnewHMAC() { + this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAnInstantiation() + } +} + +// A call to OpenSSL::HMAC.base64digest +class OpenSSLHmacbase64digest extends DataFlow::Node { + OpenSSLHmacbase64digest() { + this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("base64digest") + } +} + +class Configuration extends DataFlow::Configuration { + Configuration() { this = "UnsafeHMACComparison" } + + override predicate isSource(DataFlow::Node source) { + source instanceof OpenSSLHMACHexdigest or + source instanceof OpenSSLnewHMAC or + source instanceof OpenSSLHmacbase64digest or + source instanceof OpenSSLHMACdigest or + source instanceof OpenSSLHMACtos + } + + // Holds if a given sink is an Equality Operation (== or !=) + override predicate isSink(DataFlow::Node sink) { + exists(EqualityOperation eqOp | + eqOp.getLeftOperand() = sink.asExpr().getExpr() + or + eqOp.getRightOperand() = sink.asExpr().getExpr() + ) + } +} + +from DataFlow::Node source, DataFlow::Node sink, Configuration config +where config.hasFlow(source, sink) +select sink, + "An HMAC is being compared using the equality operator. This may be vulnerable to a cryptographic timing attack because the equality operation does not occur in constant time." diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.qlhelp b/ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.qlhelp new file mode 100644 index 00000000000..5c589466cc1 --- /dev/null +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.qlhelp @@ -0,0 +1,21 @@ + + + +

    + Using the `==` or `!=` operator to compare a known valid HMAC with a user-supplied HMAC digest could lead to a timing attack, as these operations do not occur in constant time. +

    +
    + +

    + Instead of using `==` or `!=` to compare a known valid HMAC with a user-supplied HMAC digest use Rack::Utils#secure_compare, ActiveSupport::SecurityUtils#secure_compare or OpenSSL.secure_compare +

    +
    + +

    + In this example, the HMAC is validated using the `==` operation. +

    + +
    +
    diff --git a/ruby/ql/src/experimental/cwe-208/examples/unsafe_hmac_comparison.rb b/ruby/ql/src/experimental/cwe-208/examples/unsafe_hmac_comparison.rb new file mode 100644 index 00000000000..b3b07012a37 --- /dev/null +++ b/ruby/ql/src/experimental/cwe-208/examples/unsafe_hmac_comparison.rb @@ -0,0 +1,11 @@ +class UnsafeHmacComparison + def verify_hmac(host, hmac, salt) + sha1 = OpenSSL::Digest.new('sha1') + if OpenSSL::HMAC.digest(sha1, salt, host) == hmac + puts "HMAC verified" + else + puts "HMAC not verified" + end + end + end + \ No newline at end of file From adddc58b6126de7d0f1d34cbaec3977e643dea98 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Wed, 26 Jul 2023 17:38:06 +0000 Subject: [PATCH 025/788] address linter --- ...CComparison.ql => UnsafeHmacComparison.ql} | 29 ++++++++----------- ...son.qlhelp => UnsafeHmacComparison.qlhelp} | 0 2 files changed, 12 insertions(+), 17 deletions(-) rename ruby/ql/src/experimental/cwe-208/{UnsafeHMACComparison.ql => UnsafeHmacComparison.ql} (76%) rename ruby/ql/src/experimental/cwe-208/{UnsafeHMACComparison.qlhelp => UnsafeHmacComparison.qlhelp} (100%) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql similarity index 76% rename from ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.ql rename to ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index 27562174f0a..e8749159d28 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -3,31 +3,26 @@ import codeql.ruby.AST import codeql.ruby.DataFlow import codeql.ruby.ApiGraphs import codeql.ruby.dataflow.RemoteFlowSources -import codeql.ruby.ast.Operation import codeql.ruby.TaintTracking import ruby -/** - * @kind problem - */ - // A call to OpenSSL::HMAC.hexdigest -class OpenSSLHMACHexdigest extends DataFlow::Node { - OpenSSLHMACHexdigest() { +class OpenSslHmacHexdigest extends DataFlow::Node { + OpenSslHmacHexdigest() { this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("hexdigest") } } // A call to OpenSSL::HMAC.to_s (which is an alias for OpenSSL::HMAC.hexdigest) -class OpenSSLHMACtos extends DataFlow::Node { - OpenSSLHMACtos() { +class OpenSslHmactos extends DataFlow::Node { + OpenSslHmactos() { this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("to_s") } } // A call to OpenSSL::HMAC.digest -class OpenSSLHMACdigest extends DataFlow::Node { - OpenSSLHMACdigest() { +class OpenSslHmacdigest extends DataFlow::Node { + OpenSslHmacdigest() { this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("digest") } } @@ -40,8 +35,8 @@ class OpenSSLnewHMAC extends DataFlow::Node { } // A call to OpenSSL::HMAC.base64digest -class OpenSSLHmacbase64digest extends DataFlow::Node { - OpenSSLHmacbase64digest() { +class OpenSslHmacbase64digest extends DataFlow::Node { + OpenSslHmacbase64digest() { this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("base64digest") } } @@ -50,11 +45,11 @@ class Configuration extends DataFlow::Configuration { Configuration() { this = "UnsafeHMACComparison" } override predicate isSource(DataFlow::Node source) { - source instanceof OpenSSLHMACHexdigest or + source instanceof OpenSslHmacHexdigest or source instanceof OpenSSLnewHMAC or - source instanceof OpenSSLHmacbase64digest or - source instanceof OpenSSLHMACdigest or - source instanceof OpenSSLHMACtos + source instanceof OpenSslHmacbase64digest or + source instanceof OpenSslHmacdigest or + source instanceof OpenSslHmactos } // Holds if a given sink is an Equality Operation (== or !=) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.qlhelp b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.qlhelp similarity index 100% rename from ruby/ql/src/experimental/cwe-208/UnsafeHMACComparison.qlhelp rename to ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.qlhelp From 42adbe0cd4f2749941dfedce6305e9852df26506 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Wed, 26 Jul 2023 17:43:34 +0000 Subject: [PATCH 026/788] address linter --- ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index e8749159d28..4192b617863 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -28,8 +28,8 @@ class OpenSslHmacdigest extends DataFlow::Node { } // A call to OpenSSL::HMAC.new -class OpenSSLnewHMAC extends DataFlow::Node { - OpenSSLnewHMAC() { +class OpenSsslnewHmac extends DataFlow::Node { + OpenSsslnewHmac() { this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAnInstantiation() } } @@ -46,7 +46,7 @@ class Configuration extends DataFlow::Configuration { override predicate isSource(DataFlow::Node source) { source instanceof OpenSslHmacHexdigest or - source instanceof OpenSSLnewHMAC or + source instanceof OpenSsslnewHmac or source instanceof OpenSslHmacbase64digest or source instanceof OpenSslHmacdigest or source instanceof OpenSslHmactos From 346a2f269eedda90093c19f314dd3af1fd58d1fc Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Wed, 26 Jul 2023 13:48:42 -0400 Subject: [PATCH 027/788] Update UnsafeHmacComparison.ql --- ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index 4192b617863..3efed3580aa 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -28,7 +28,7 @@ class OpenSslHmacdigest extends DataFlow::Node { } // A call to OpenSSL::HMAC.new -class OpenSsslnewHmac extends DataFlow::Node { +class OpenSslnewHmac extends DataFlow::Node { OpenSsslnewHmac() { this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAnInstantiation() } @@ -46,7 +46,7 @@ class Configuration extends DataFlow::Configuration { override predicate isSource(DataFlow::Node source) { source instanceof OpenSslHmacHexdigest or - source instanceof OpenSsslnewHmac or + source instanceof OpenSslnewHmac or source instanceof OpenSslHmacbase64digest or source instanceof OpenSslHmacdigest or source instanceof OpenSslHmactos From 1a83554b0c7d2daec8228da5838342968ff616fe Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Wed, 26 Jul 2023 17:54:42 +0000 Subject: [PATCH 028/788] correct typo --- ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index 3efed3580aa..b84f2f86648 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -29,7 +29,7 @@ class OpenSslHmacdigest extends DataFlow::Node { // A call to OpenSSL::HMAC.new class OpenSslnewHmac extends DataFlow::Node { - OpenSsslnewHmac() { + OpenSslnewHmac() { this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAnInstantiation() } } From f241498cab63d0df79e9f42a67bc9f6892c721e6 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Wed, 26 Jul 2023 17:55:56 +0000 Subject: [PATCH 029/788] correct additional pascalcase issue --- ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index b84f2f86648..253f78840fb 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -42,7 +42,7 @@ class OpenSslHmacbase64digest extends DataFlow::Node { } class Configuration extends DataFlow::Configuration { - Configuration() { this = "UnsafeHMACComparison" } + Configuration() { this = "UnsafeHmacComparison" } override predicate isSource(DataFlow::Node source) { source instanceof OpenSslHmacHexdigest or From 048daa9a57e8c481d77313c25f3ad3c32d489c20 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 31 Jul 2023 10:46:18 +0100 Subject: [PATCH 030/788] Swift: QLDoc comments and metadata. --- .../security/CommandInjectionExtensions.qll | 44 ++++++++++++------- .../swift/security/CommandInjectionQuery.qll | 6 +-- .../Security/CWE-078/CommandInjection.ql | 3 +- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll index 26e8782a799..169656a8f7d 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll @@ -29,26 +29,16 @@ class CommandInjectionAdditionalFlowStep extends Unit { abstract predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo); } -private class ProcessSink2 extends CommandInjectionSink instanceof DataFlow::Node { - ProcessSink2() { - exists(AssignExpr assign, ProcessHost s | - assign.getDest() = s and - this.asExpr() = assign.getSource() - ) - or - exists(AssignExpr assign, ProcessHost s, ArrayExpr a | - assign.getDest() = s and - a = assign.getSource() and - this.asExpr() = a.getAnElement() - ) - } -} - +/** + * A reference to any member of `Process`. + */ private class ProcessHost extends MemberRefExpr { ProcessHost() { this.getBase() instanceof ProcessRef } } -/** An expression of type `Process`. */ +/** + * An expression of type `Process`. + */ private class ProcessRef extends Expr { ProcessRef() { this.getType() instanceof ProcessType or @@ -56,7 +46,9 @@ private class ProcessRef extends Expr { } } -/** The type `Process`. */ +/** + * The type `Process`. + */ private class ProcessType extends NominalType { ProcessType() { this.getFullName() = "Process" } } @@ -77,6 +69,24 @@ private class ProcessSink extends CommandInjectionSink instanceof DataFlow::Node } } +/** + * A `DataFlow::Node` that is written into a field of a `Process` object. + */ +private class ProcessSink2 extends CommandInjectionSink instanceof DataFlow::Node { + ProcessSink2() { + exists(AssignExpr assign, ProcessHost s | + assign.getDest() = s and + this.asExpr() = assign.getSource() + ) + or + exists(AssignExpr assign, ProcessHost s, ArrayExpr a | + assign.getDest() = s and + a = assign.getSource() and + this.asExpr() = a.getAnElement() + ) + } +} + /** * A sink defined in a CSV model. */ diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll index 4b67932209d..10dbc137726 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll @@ -1,6 +1,6 @@ /** * Provides a taint-tracking configuration for reasoning about system - * commands built from user-controlled sources (that is, Command injection + * commands built from user-controlled sources (that is, command injection * vulnerabilities). */ @@ -11,7 +11,7 @@ import codeql.swift.dataflow.FlowSources import codeql.swift.security.CommandInjectionExtensions /** - * A taint configuration for tainted data that reaches a Command Injection sink. + * A taint configuration for tainted data that reaches a command injection sink. */ module CommandInjectionConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node node) { node instanceof FlowSource } @@ -26,6 +26,6 @@ module CommandInjectionConfig implements DataFlow::ConfigSig { } /** - * Detect taint flow of tainted data that reaches a Command Injection sink. + * Detect taint flow of tainted data that reaches a command injection sink. */ module CommandInjectionFlow = TaintTracking::Global; diff --git a/swift/ql/src/experimental/Security/CWE-078/CommandInjection.ql b/swift/ql/src/experimental/Security/CWE-078/CommandInjection.ql index 148676e1ac3..defa939cf68 100644 --- a/swift/ql/src/experimental/Security/CWE-078/CommandInjection.ql +++ b/swift/ql/src/experimental/Security/CWE-078/CommandInjection.ql @@ -1,6 +1,7 @@ /** * @name System command built from user-controlled sources - * @description Building a system command from user-controlled sources is vulnerable to insertion of malicious code by the user. + * @description Building a system command from user-controlled sources may allow a malicious + * user to change the meaning of the command. * @kind path-problem * @problem.severity error * @security-severity 9.8 From 2664c306d33e213738970012a896ec7ce2ff8383 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 31 Jul 2023 11:18:12 +0100 Subject: [PATCH 031/788] Swift: Qhelp / examples. --- .../Security/CWE-078/CommandInjection.qhelp | 6 +++--- .../Security/CWE-078/CommandInjectionGood.swift | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/swift/ql/src/experimental/Security/CWE-078/CommandInjection.qhelp b/swift/ql/src/experimental/Security/CWE-078/CommandInjection.qhelp index ab9562af12c..ed6a27a4222 100644 --- a/swift/ql/src/experimental/Security/CWE-078/CommandInjection.qhelp +++ b/swift/ql/src/experimental/Security/CWE-078/CommandInjection.qhelp @@ -24,14 +24,14 @@ using it.

    -The following examples execute code from user input without +The following example executes code from user input without sanitizing it first:

    If user input is used to construct a command it should be checked first. This ensures that the user cannot insert characters that have special -meanings. +meanings:

    @@ -42,4 +42,4 @@ OWASP: Command Injection.
    - \ No newline at end of file + diff --git a/swift/ql/src/experimental/Security/CWE-078/CommandInjectionGood.swift b/swift/ql/src/experimental/Security/CWE-078/CommandInjectionGood.swift index 3482718eeac..1773d5b187b 100644 --- a/swift/ql/src/experimental/Security/CWE-078/CommandInjectionGood.swift +++ b/swift/ql/src/experimental/Security/CWE-078/CommandInjectionGood.swift @@ -6,8 +6,10 @@ func validateCommand(_ command: String) -> String? { return nil } -var task = Process() -task.launchPath = "/bin/bash" -task.arguments = ["-c", validateCommand(userControlledString)] // GOOD +if let validatedString = validateCommand(userControlledString) { + var task = Process() + task.launchPath = "/bin/bash" + task.arguments = ["-c", validatedString] // GOOD -task.launch() \ No newline at end of file + task.launch() +} From 8c2140b28d80edf17789522c1828d6c1ee85a906 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 31 Jul 2023 15:31:30 +0100 Subject: [PATCH 032/788] Swift: Add tests. --- .../CWE-078/CommandInjection.expected | 82 +++++++++++ .../Security/CWE-078/CommandInjection.qlref | 1 + .../Security/CWE-078/CommandInjection.swift | 128 ++++++++++++++++++ 3 files changed, 211 insertions(+) create mode 100644 swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected create mode 100644 swift/ql/test/query-tests/Security/CWE-078/CommandInjection.qlref create mode 100644 swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected new file mode 100644 index 00000000000..93ece550df6 --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -0,0 +1,82 @@ +edges +| CommandInjection.swift:38:22:38:33 | command | CommandInjection.swift:42:16:42:16 | command | +| CommandInjection.swift:38:22:38:33 | command [some:0] | CommandInjection.swift:42:16:42:16 | command [some:0] | +| CommandInjection.swift:42:16:42:16 | command | CommandInjection.swift:42:16:42:16 | command [some:0] | +| CommandInjection.swift:49:8:49:12 | let ...? [some:0, some:0] | CommandInjection.swift:49:12:49:12 | userControlledString [some:0] | +| CommandInjection.swift:49:8:49:12 | let ...? [some:0] | CommandInjection.swift:49:12:49:12 | userControlledString | +| CommandInjection.swift:49:12:49:12 | userControlledString | CommandInjection.swift:55:27:55:27 | userControlledString | +| CommandInjection.swift:49:12:49:12 | userControlledString | CommandInjection.swift:58:43:58:43 | userControlledString | +| CommandInjection.swift:49:12:49:12 | userControlledString [some:0] | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | +| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | CommandInjection.swift:49:8:49:12 | let ...? [some:0, some:0] | +| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:49:8:49:12 | let ...? [some:0] | +| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | +| CommandInjection.swift:58:5:58:9 | let ...? [some:0] | CommandInjection.swift:58:9:58:9 | validatedString | +| CommandInjection.swift:58:9:58:9 | validatedString | CommandInjection.swift:61:31:61:31 | validatedString | +| CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | CommandInjection.swift:58:5:58:9 | let ...? [some:0] | +| CommandInjection.swift:58:43:58:43 | userControlledString | CommandInjection.swift:38:22:38:33 | command | +| CommandInjection.swift:58:43:58:43 | userControlledString | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:38:22:38:33 | command [some:0] | +| CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:79:8:79:12 | let ...? [some:0] | CommandInjection.swift:79:12:79:12 | userControlledString | +| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:94:36:94:36 | userControlledString | +| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:95:28:95:28 | userControlledString | +| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:99:45:99:45 | userControlledString | +| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | +| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:104:46:104:46 | userControlledString | +| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:105:22:105:22 | userControlledString | +| CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:79:8:79:12 | let ...? [some:0] | +| CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | +| CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | CommandInjection.swift:94:24:94:57 | ...! | +| CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:94:24:94:57 | ...! | +| CommandInjection.swift:94:36:94:36 | userControlledString | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | +| CommandInjection.swift:99:45:99:45 | userControlledString | CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | +| CommandInjection.swift:104:46:104:46 | userControlledString | CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | +nodes +| CommandInjection.swift:38:22:38:33 | command | semmle.label | command | +| CommandInjection.swift:38:22:38:33 | command [some:0] | semmle.label | command [some:0] | +| CommandInjection.swift:42:16:42:16 | command | semmle.label | command | +| CommandInjection.swift:42:16:42:16 | command [some:0] | semmle.label | command [some:0] | +| CommandInjection.swift:42:16:42:16 | command [some:0] | semmle.label | command [some:0] | +| CommandInjection.swift:49:8:49:12 | let ...? [some:0, some:0] | semmle.label | let ...? [some:0, some:0] | +| CommandInjection.swift:49:8:49:12 | let ...? [some:0] | semmle.label | let ...? [some:0] | +| CommandInjection.swift:49:12:49:12 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:49:12:49:12 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | +| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | semmle.label | call to String.init(contentsOf:) [some:0, some:0] | +| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:55:27:55:27 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:58:5:58:9 | let ...? [some:0] | semmle.label | let ...? [some:0] | +| CommandInjection.swift:58:9:58:9 | validatedString | semmle.label | validatedString | +| CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | semmle.label | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:58:43:58:43 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | +| CommandInjection.swift:61:31:61:31 | validatedString | semmle.label | validatedString | +| CommandInjection.swift:79:8:79:12 | let ...? [some:0] | semmle.label | let ...? [some:0] | +| CommandInjection.swift:79:12:79:12 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | semmle.label | call to URL.init(string:) | +| CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | +| CommandInjection.swift:94:24:94:57 | ...! | semmle.label | ...! | +| CommandInjection.swift:94:36:94:36 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:95:28:95:28 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | +| CommandInjection.swift:99:45:99:45 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | +| CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | +| CommandInjection.swift:104:46:104:46 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:105:22:105:22 | userControlledString | semmle.label | userControlledString | +subpaths +| CommandInjection.swift:58:43:58:43 | userControlledString | CommandInjection.swift:38:22:38:33 | command | CommandInjection.swift:42:16:42:16 | command [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:38:22:38:33 | command [some:0] | CommandInjection.swift:42:16:42:16 | command [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | +#select +| CommandInjection.swift:55:27:55:27 | userControlledString | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:55:27:55:27 | userControlledString | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:61:31:61:31 | validatedString | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:61:31:61:31 | validatedString | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:94:24:94:57 | ...! | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:94:24:94:57 | ...! | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:95:28:95:28 | userControlledString | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:105:22:105:22 | userControlledString | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:105:22:105:22 | userControlledString | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.qlref b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.qlref new file mode 100644 index 00000000000..3556b36b185 --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.qlref @@ -0,0 +1 @@ +experimental/Security/CWE-078/CommandInjection.ql \ No newline at end of file diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift new file mode 100644 index 00000000000..85bbda2ee64 --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift @@ -0,0 +1,128 @@ + +// --- stubs --- + +struct URL +{ + init?(string: String) {} + init(fileURLWithPath: String) {} +} + +class NSObject { +} + +class Process : NSObject { + var launchPath: String? { get { nil } set {} } + var arguments: [String]? { get { nil } set {} } + func launch() {} + + var executableURL: URL? { get { nil } set {} } + func run() throws {} + + class func launchedProcess(launchPath path: String, arguments: [String]) -> Process { + return Process() + } + + class func run(_ url: URL, arguments: [String], terminationHandler: (@Sendable (Process) -> Void)? = nil) throws -> Process { + return Process() + } +} + +extension String { + init(contentsOf url: URL) throws { + self.init("") + } +} + +// --- tests --- + +func validateCommand(_ command: String) -> String? { + let allowedCommands = ["ls -l", "pwd", "echo"] + + if allowedCommands.contains(command) { + return command + } + + return nil +} + +func testCommandInjectionQhelpExamples() { + guard let userControlledString = try? String(contentsOf: URL(string: "http://example.com/")!) else { + return + } + + let task1 = Process() + task1.launchPath = "/bin/bash" // GOOD + task1.arguments = ["-c", userControlledString] // BAD + task1.launch() + + if let validatedString = validateCommand(userControlledString) { + let task2 = Process() + task2.launchPath = "/bin/bash" // GOOD + task2.arguments = ["-c", validatedString] // GOOD [FALSE POSITIVE] + task2.launch() + } +} + +func mkProcess() -> Process? { + return Process() +} + +class MyProcess : Process { + var harmlessField: String? + + func setArguments(_ arguments: [String]) { + self.arguments = arguments + } +} + +func testCommandInjectionMore(mySafeString: String) { + guard let userControlledString = try? String(contentsOf: URL(string: "http://example.com/")!) else { + return + } + + let task1 = Process() + task1.executableURL = URL(string: mySafeString)! // GOOD + task1.arguments = ["abc"] // GOOD + try! task1.run() + + let task2 = Process() + task2.executableURL = URL(fileURLWithPath: mySafeString) // GOOD + task2.arguments = ["abc", "def"] // GOOD + try! task2.run() + + let task3 = Process() + task3.executableURL = URL(string: userControlledString)! // BAD + task3.arguments = ["abc", userControlledString] // BAD + try! task3.run() + + let task4 = Process() + task4.executableURL = URL(fileURLWithPath: userControlledString) // BAD + task4.arguments = ["abc", "def" + userControlledString] // BAD + try! task4.run() + + let task5 = mkProcess() + task5?.executableURL = URL(fileURLWithPath: userControlledString) // BAD + task5?.arguments = [userControlledString] // BAD + try! task5?.run() + + let task6 = MyProcess() + task6.executableURL = URL(string: userControlledString)! // BAD [NOT DETECTED] + task6.arguments = [userControlledString] // BAD [NOT DETECTED] + task6.setArguments([userControlledString]) // BAD [NOT DETECTED] + task6.harmlessField = userControlledString // GOOD + try! task6.run() + + let task7 = Process() + task7.executableURL = URL(fileURLWithPath: mySafeString) // GOOD + task7.arguments = ["abc", "def"] + task7.arguments?.append(userControlledString) // BAD [NOT DETECTED] + try! task7.run() + + _ = Process.launchedProcess(launchPath: mySafeString, arguments: ["abc", mySafeString]) // GOOD + _ = Process.launchedProcess(launchPath: userControlledString, arguments: ["abc", mySafeString]) // BAD [NOT DETECTED] + _ = Process.launchedProcess(launchPath: mySafeString, arguments: ["abc", userControlledString]) // BAD [NOT DETECTED] + + _ = try? Process.run(URL(string: mySafeString)!, arguments: ["abc", mySafeString]) // GOOD + _ = try? Process.run(URL(string: userControlledString)!, arguments: ["abc", mySafeString]) // BAD [NOT DETECTED] + _ = try? Process.run(URL(string: mySafeString)!, arguments: ["abc", userControlledString]) // BAD [NOT DETECTED] +} From 7b9b96d65716bc846f600a8529ea48f0b4fc595d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 31 Jul 2023 17:44:22 +0100 Subject: [PATCH 033/788] Swift: Unify the two sink models into one (needs further polish). --- .../security/CommandInjectionExtensions.qll | 50 +--- .../CWE-078/CommandInjection.expected | 223 ++++++++++++++++-- .../Security/CWE-078/CommandInjection.swift | 12 +- 3 files changed, 226 insertions(+), 59 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll index 169656a8f7d..1af0dc629a3 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll @@ -30,29 +30,18 @@ class CommandInjectionAdditionalFlowStep extends Unit { } /** - * A reference to any member of `Process`. + * An additional taint step for command injection vulnerabilities. */ -private class ProcessHost extends MemberRefExpr { - ProcessHost() { this.getBase() instanceof ProcessRef } -} - -/** - * An expression of type `Process`. - */ -private class ProcessRef extends Expr { - ProcessRef() { - this.getType() instanceof ProcessType or - this.getType() = any(OptionalType t | t.getBaseType() instanceof ProcessType) +private class CommandInjectionArrayAdditionalFlowStep extends CommandInjectionAdditionalFlowStep { + override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + // needed until we have proper content flow through arrays. + exists(ArrayExpr arr | + nodeFrom.asExpr() = arr.getAnElement() and + nodeTo.asExpr() = arr + ) } } -/** - * The type `Process`. - */ -private class ProcessType extends NominalType { - ProcessType() { this.getFullName() = "Process" } -} - /** * A `DataFlow::Node` that is written into a `Process` object. */ @@ -63,26 +52,9 @@ private class ProcessSink extends CommandInjectionSink instanceof DataFlow::Node // with `Process.launchPath` is a sink. exists(NominalType t, Expr e | t.getABaseType*().getUnderlyingType().getName() = "Process" and - e.getFullyConverted() = this.asExpr() and - e.getFullyConverted().getType() = t - ) - } -} - -/** - * A `DataFlow::Node` that is written into a field of a `Process` object. - */ -private class ProcessSink2 extends CommandInjectionSink instanceof DataFlow::Node { - ProcessSink2() { - exists(AssignExpr assign, ProcessHost s | - assign.getDest() = s and - this.asExpr() = assign.getSource() - ) - or - exists(AssignExpr assign, ProcessHost s, ArrayExpr a | - assign.getDest() = s and - a = assign.getSource() and - this.asExpr() = a.getAnElement() + this.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr() = e and + e.getFullyConverted().getType() = t and + not e.(DeclRefExpr).getDecl() instanceof SelfParamDecl ) } } diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index 93ece550df6..02e230c9978 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -1,16 +1,35 @@ edges +| CommandInjection.swift:16:7:16:7 | self | CommandInjection.swift:16:2:16:17 | self[return] | +| CommandInjection.swift:16:7:16:7 | self [arguments] | CommandInjection.swift:16:2:16:17 | self[return] [arguments] | +| CommandInjection.swift:19:7:19:7 | self | CommandInjection.swift:19:2:19:21 | self[return] | +| CommandInjection.swift:19:7:19:7 | self [arguments] | CommandInjection.swift:19:2:19:21 | self[return] [arguments] | +| CommandInjection.swift:19:7:19:7 | self [executableURL] | CommandInjection.swift:19:2:19:21 | self[return] [executableURL] | +| CommandInjection.swift:19:7:19:7 | self [harmlessField] | CommandInjection.swift:19:2:19:21 | self[return] [harmlessField] | | CommandInjection.swift:38:22:38:33 | command | CommandInjection.swift:42:16:42:16 | command | | CommandInjection.swift:38:22:38:33 | command [some:0] | CommandInjection.swift:42:16:42:16 | command [some:0] | | CommandInjection.swift:42:16:42:16 | command | CommandInjection.swift:42:16:42:16 | command [some:0] | | CommandInjection.swift:49:8:49:12 | let ...? [some:0, some:0] | CommandInjection.swift:49:12:49:12 | userControlledString [some:0] | | CommandInjection.swift:49:8:49:12 | let ...? [some:0] | CommandInjection.swift:49:12:49:12 | userControlledString | | CommandInjection.swift:49:12:49:12 | userControlledString | CommandInjection.swift:55:27:55:27 | userControlledString | -| CommandInjection.swift:49:12:49:12 | userControlledString | CommandInjection.swift:58:43:58:43 | userControlledString | -| CommandInjection.swift:49:12:49:12 | userControlledString [some:0] | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | +| CommandInjection.swift:49:12:49:12 | userControlledString [some:0] | CommandInjection.swift:55:27:55:27 | userControlledString [some:0] | | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | CommandInjection.swift:49:8:49:12 | let ...? [some:0, some:0] | | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:49:8:49:12 | let ...? [some:0] | | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | +| CommandInjection.swift:55:2:55:2 | [post] task1 | CommandInjection.swift:56:2:56:2 | task1 | +| CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | CommandInjection.swift:55:2:55:2 | [post] task1 | +| CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | CommandInjection.swift:55:2:55:2 | [post] task1 | +| CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | CommandInjection.swift:56:2:56:2 | task1 | +| CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | CommandInjection.swift:56:2:56:2 | task1 [arguments] | +| CommandInjection.swift:55:20:55:47 | [...] | CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | +| CommandInjection.swift:55:27:55:27 | userControlledString | CommandInjection.swift:55:20:55:47 | [...] | +| CommandInjection.swift:55:27:55:27 | userControlledString | CommandInjection.swift:58:43:58:43 | userControlledString | +| CommandInjection.swift:55:27:55:27 | userControlledString [some:0] | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | +| CommandInjection.swift:56:2:56:2 | [post] task1 [arguments] | CommandInjection.swift:56:2:56:2 | [post] task1 | +| CommandInjection.swift:56:2:56:2 | task1 | CommandInjection.swift:16:7:16:7 | self | +| CommandInjection.swift:56:2:56:2 | task1 | CommandInjection.swift:56:2:56:2 | [post] task1 | +| CommandInjection.swift:56:2:56:2 | task1 [arguments] | CommandInjection.swift:16:7:16:7 | self [arguments] | +| CommandInjection.swift:56:2:56:2 | task1 [arguments] | CommandInjection.swift:56:2:56:2 | [post] task1 [arguments] | | CommandInjection.swift:58:5:58:9 | let ...? [some:0] | CommandInjection.swift:58:9:58:9 | validatedString | | CommandInjection.swift:58:9:58:9 | validatedString | CommandInjection.swift:61:31:61:31 | validatedString | | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | CommandInjection.swift:58:5:58:9 | let ...? [some:0] | @@ -18,22 +37,114 @@ edges | CommandInjection.swift:58:43:58:43 | userControlledString | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:38:22:38:33 | command [some:0] | | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:61:6:61:6 | [post] task2 | CommandInjection.swift:62:6:62:6 | task2 | +| CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | CommandInjection.swift:61:6:61:6 | [post] task2 | +| CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | CommandInjection.swift:61:6:61:6 | [post] task2 | +| CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | CommandInjection.swift:62:6:62:6 | task2 | +| CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | CommandInjection.swift:62:6:62:6 | task2 [arguments] | +| CommandInjection.swift:61:24:61:46 | [...] | CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | +| CommandInjection.swift:61:31:61:31 | validatedString | CommandInjection.swift:61:24:61:46 | [...] | +| CommandInjection.swift:62:6:62:6 | [post] task2 [arguments] | CommandInjection.swift:62:6:62:6 | [post] task2 | +| CommandInjection.swift:62:6:62:6 | task2 | CommandInjection.swift:16:7:16:7 | self | +| CommandInjection.swift:62:6:62:6 | task2 | CommandInjection.swift:62:6:62:6 | [post] task2 | +| CommandInjection.swift:62:6:62:6 | task2 [arguments] | CommandInjection.swift:16:7:16:7 | self [arguments] | +| CommandInjection.swift:62:6:62:6 | task2 [arguments] | CommandInjection.swift:62:6:62:6 | [post] task2 [arguments] | +| CommandInjection.swift:71:6:71:6 | value | file://:0:0:0:0 | value | | CommandInjection.swift:79:8:79:12 | let ...? [some:0] | CommandInjection.swift:79:12:79:12 | userControlledString | | CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:94:36:94:36 | userControlledString | | CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:95:28:95:28 | userControlledString | -| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:99:45:99:45 | userControlledString | -| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | -| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:104:46:104:46 | userControlledString | -| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:105:22:105:22 | userControlledString | | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:79:8:79:12 | let ...? [some:0] | +| CommandInjection.swift:94:2:94:2 | [post] task3 | CommandInjection.swift:95:2:95:2 | task3 | +| CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | CommandInjection.swift:94:2:94:2 | [post] task3 | +| CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | CommandInjection.swift:94:2:94:2 | [post] task3 | +| CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | CommandInjection.swift:95:2:95:2 | task3 | +| CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | CommandInjection.swift:95:2:95:2 | task3 [executableURL] | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | CommandInjection.swift:94:24:94:57 | ...! | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:94:24:94:57 | ...! | +| CommandInjection.swift:94:24:94:57 | ...! | CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | | CommandInjection.swift:94:36:94:36 | userControlledString | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | +| CommandInjection.swift:95:2:95:2 | [post] task3 | CommandInjection.swift:96:7:96:7 | task3 | +| CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | CommandInjection.swift:95:2:95:2 | [post] task3 | +| CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | CommandInjection.swift:95:2:95:2 | [post] task3 | +| CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | CommandInjection.swift:96:7:96:7 | task3 | +| CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | CommandInjection.swift:96:7:96:7 | task3 [arguments] | +| CommandInjection.swift:95:2:95:2 | task3 | CommandInjection.swift:96:7:96:7 | task3 | +| CommandInjection.swift:95:2:95:2 | task3 [executableURL] | CommandInjection.swift:96:7:96:7 | task3 [executableURL] | +| CommandInjection.swift:95:20:95:48 | [...] | CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | +| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:95:20:95:48 | [...] | +| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:99:45:99:45 | userControlledString | +| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | +| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:104:46:104:46 | userControlledString | +| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:105:22:105:22 | userControlledString | +| CommandInjection.swift:96:7:96:7 | [post] task3 [arguments] | CommandInjection.swift:96:7:96:7 | [post] task3 | +| CommandInjection.swift:96:7:96:7 | [post] task3 [executableURL] | CommandInjection.swift:96:7:96:7 | [post] task3 | +| CommandInjection.swift:96:7:96:7 | task3 | CommandInjection.swift:19:7:19:7 | self | +| CommandInjection.swift:96:7:96:7 | task3 | CommandInjection.swift:96:7:96:7 | [post] task3 | +| CommandInjection.swift:96:7:96:7 | task3 [arguments] | CommandInjection.swift:19:7:19:7 | self [arguments] | +| CommandInjection.swift:96:7:96:7 | task3 [arguments] | CommandInjection.swift:96:7:96:7 | [post] task3 [arguments] | +| CommandInjection.swift:96:7:96:7 | task3 [executableURL] | CommandInjection.swift:19:7:19:7 | self [executableURL] | +| CommandInjection.swift:96:7:96:7 | task3 [executableURL] | CommandInjection.swift:96:7:96:7 | [post] task3 [executableURL] | +| CommandInjection.swift:99:2:99:2 | [post] task4 | CommandInjection.swift:100:2:100:2 | task4 | +| CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | CommandInjection.swift:99:2:99:2 | [post] task4 | +| CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | CommandInjection.swift:99:2:99:2 | [post] task4 | +| CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | CommandInjection.swift:100:2:100:2 | task4 | +| CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | CommandInjection.swift:100:2:100:2 | task4 [executableURL] | +| CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | | CommandInjection.swift:99:45:99:45 | userControlledString | CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | +| CommandInjection.swift:100:2:100:2 | [post] task4 | CommandInjection.swift:101:7:101:7 | task4 | +| CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | CommandInjection.swift:100:2:100:2 | [post] task4 | +| CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | CommandInjection.swift:100:2:100:2 | [post] task4 | +| CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | CommandInjection.swift:101:7:101:7 | task4 | +| CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | CommandInjection.swift:101:7:101:7 | task4 [arguments] | +| CommandInjection.swift:100:2:100:2 | task4 | CommandInjection.swift:101:7:101:7 | task4 | +| CommandInjection.swift:100:2:100:2 | task4 [executableURL] | CommandInjection.swift:101:7:101:7 | task4 [executableURL] | +| CommandInjection.swift:100:20:100:56 | [...] | CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | +| CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | CommandInjection.swift:100:20:100:56 | [...] | +| CommandInjection.swift:101:7:101:7 | [post] task4 [arguments] | CommandInjection.swift:101:7:101:7 | [post] task4 | +| CommandInjection.swift:101:7:101:7 | [post] task4 [executableURL] | CommandInjection.swift:101:7:101:7 | [post] task4 | +| CommandInjection.swift:101:7:101:7 | task4 | CommandInjection.swift:19:7:19:7 | self | +| CommandInjection.swift:101:7:101:7 | task4 | CommandInjection.swift:101:7:101:7 | [post] task4 | +| CommandInjection.swift:101:7:101:7 | task4 [arguments] | CommandInjection.swift:19:7:19:7 | self [arguments] | +| CommandInjection.swift:101:7:101:7 | task4 [arguments] | CommandInjection.swift:101:7:101:7 | [post] task4 [arguments] | +| CommandInjection.swift:101:7:101:7 | task4 [executableURL] | CommandInjection.swift:19:7:19:7 | self [executableURL] | +| CommandInjection.swift:101:7:101:7 | task4 [executableURL] | CommandInjection.swift:101:7:101:7 | [post] task4 [executableURL] | +| CommandInjection.swift:104:2:104:7 | [post] ...? [executableURL] | CommandInjection.swift:104:2:104:7 | [post] ...? | +| CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:104:2:104:7 | [post] ...? [executableURL] | | CommandInjection.swift:104:46:104:46 | userControlledString | CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | +| CommandInjection.swift:105:2:105:7 | [post] ...? [arguments] | CommandInjection.swift:105:2:105:7 | [post] ...? | +| CommandInjection.swift:105:21:105:42 | [...] | CommandInjection.swift:105:2:105:7 | [post] ...? [arguments] | +| CommandInjection.swift:105:22:105:22 | userControlledString | CommandInjection.swift:105:21:105:42 | [...] | +| CommandInjection.swift:105:22:105:22 | userControlledString | CommandInjection.swift:110:21:110:21 | userControlledString | +| CommandInjection.swift:110:21:110:21 | userControlledString | CommandInjection.swift:111:22:111:22 | userControlledString | +| CommandInjection.swift:111:22:111:22 | userControlledString | CommandInjection.swift:112:24:112:24 | userControlledString | +| CommandInjection.swift:112:2:112:2 | [post] task6 | CommandInjection.swift:113:7:113:7 | task6 | +| CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | CommandInjection.swift:112:2:112:2 | [post] task6 | +| CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | CommandInjection.swift:112:2:112:2 | [post] task6 | +| CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | CommandInjection.swift:113:7:113:7 | task6 | +| CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | CommandInjection.swift:113:7:113:7 | task6 [harmlessField] | +| CommandInjection.swift:112:24:112:24 | userControlledString | CommandInjection.swift:71:6:71:6 | value | +| CommandInjection.swift:112:24:112:24 | userControlledString | CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | +| CommandInjection.swift:113:7:113:7 | [post] task6 [harmlessField] | CommandInjection.swift:113:7:113:7 | [post] task6 | +| CommandInjection.swift:113:7:113:7 | task6 | CommandInjection.swift:19:7:19:7 | self | +| CommandInjection.swift:113:7:113:7 | task6 | CommandInjection.swift:113:7:113:7 | [post] task6 | +| CommandInjection.swift:113:7:113:7 | task6 [harmlessField] | CommandInjection.swift:19:7:19:7 | self [harmlessField] | +| CommandInjection.swift:113:7:113:7 | task6 [harmlessField] | CommandInjection.swift:113:7:113:7 | [post] task6 [harmlessField] | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [harmlessField] | nodes +| CommandInjection.swift:16:2:16:17 | self[return] | semmle.label | self[return] | +| CommandInjection.swift:16:2:16:17 | self[return] [arguments] | semmle.label | self[return] [arguments] | +| CommandInjection.swift:16:7:16:7 | self | semmle.label | self | +| CommandInjection.swift:16:7:16:7 | self [arguments] | semmle.label | self [arguments] | +| CommandInjection.swift:19:2:19:21 | self[return] | semmle.label | self[return] | +| CommandInjection.swift:19:2:19:21 | self[return] [arguments] | semmle.label | self[return] [arguments] | +| CommandInjection.swift:19:2:19:21 | self[return] [executableURL] | semmle.label | self[return] [executableURL] | +| CommandInjection.swift:19:2:19:21 | self[return] [harmlessField] | semmle.label | self[return] [harmlessField] | +| CommandInjection.swift:19:7:19:7 | self | semmle.label | self | +| CommandInjection.swift:19:7:19:7 | self [arguments] | semmle.label | self [arguments] | +| CommandInjection.swift:19:7:19:7 | self [executableURL] | semmle.label | self [executableURL] | +| CommandInjection.swift:19:7:19:7 | self [harmlessField] | semmle.label | self [harmlessField] | | CommandInjection.swift:38:22:38:33 | command | semmle.label | command | | CommandInjection.swift:38:22:38:33 | command [some:0] | semmle.label | command [some:0] | | CommandInjection.swift:42:16:42:16 | command | semmle.label | command | @@ -46,37 +157,121 @@ nodes | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | semmle.label | call to String.init(contentsOf:) [some:0, some:0] | | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:55:2:55:2 | [post] task1 | semmle.label | [post] task1 | +| CommandInjection.swift:55:2:55:2 | [post] task1 | semmle.label | [post] task1 | +| CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | semmle.label | [post] task1 [arguments] | +| CommandInjection.swift:55:20:55:47 | [...] | semmle.label | [...] | | CommandInjection.swift:55:27:55:27 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:55:27:55:27 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | +| CommandInjection.swift:56:2:56:2 | [post] task1 | semmle.label | [post] task1 | +| CommandInjection.swift:56:2:56:2 | [post] task1 [arguments] | semmle.label | [post] task1 [arguments] | +| CommandInjection.swift:56:2:56:2 | task1 | semmle.label | task1 | +| CommandInjection.swift:56:2:56:2 | task1 [arguments] | semmle.label | task1 [arguments] | | CommandInjection.swift:58:5:58:9 | let ...? [some:0] | semmle.label | let ...? [some:0] | | CommandInjection.swift:58:9:58:9 | validatedString | semmle.label | validatedString | | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | semmle.label | call to validateCommand(_:) [some:0] | | CommandInjection.swift:58:43:58:43 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | +| CommandInjection.swift:61:6:61:6 | [post] task2 | semmle.label | [post] task2 | +| CommandInjection.swift:61:6:61:6 | [post] task2 | semmle.label | [post] task2 | +| CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | semmle.label | [post] task2 [arguments] | +| CommandInjection.swift:61:24:61:46 | [...] | semmle.label | [...] | | CommandInjection.swift:61:31:61:31 | validatedString | semmle.label | validatedString | +| CommandInjection.swift:62:6:62:6 | [post] task2 | semmle.label | [post] task2 | +| CommandInjection.swift:62:6:62:6 | [post] task2 [arguments] | semmle.label | [post] task2 [arguments] | +| CommandInjection.swift:62:6:62:6 | task2 | semmle.label | task2 | +| CommandInjection.swift:62:6:62:6 | task2 [arguments] | semmle.label | task2 [arguments] | +| CommandInjection.swift:71:6:71:6 | value | semmle.label | value | | CommandInjection.swift:79:8:79:12 | let ...? [some:0] | semmle.label | let ...? [some:0] | | CommandInjection.swift:79:12:79:12 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:94:2:94:2 | [post] task3 | semmle.label | [post] task3 | +| CommandInjection.swift:94:2:94:2 | [post] task3 | semmle.label | [post] task3 | +| CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | semmle.label | [post] task3 [executableURL] | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | semmle.label | call to URL.init(string:) | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | CommandInjection.swift:94:24:94:57 | ...! | semmle.label | ...! | | CommandInjection.swift:94:36:94:36 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:95:2:95:2 | [post] task3 | semmle.label | [post] task3 | +| CommandInjection.swift:95:2:95:2 | [post] task3 | semmle.label | [post] task3 | +| CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | semmle.label | [post] task3 [arguments] | +| CommandInjection.swift:95:2:95:2 | task3 | semmle.label | task3 | +| CommandInjection.swift:95:2:95:2 | task3 [executableURL] | semmle.label | task3 [executableURL] | +| CommandInjection.swift:95:20:95:48 | [...] | semmle.label | [...] | | CommandInjection.swift:95:28:95:28 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:96:7:96:7 | [post] task3 | semmle.label | [post] task3 | +| CommandInjection.swift:96:7:96:7 | [post] task3 [arguments] | semmle.label | [post] task3 [arguments] | +| CommandInjection.swift:96:7:96:7 | [post] task3 [executableURL] | semmle.label | [post] task3 [executableURL] | +| CommandInjection.swift:96:7:96:7 | task3 | semmle.label | task3 | +| CommandInjection.swift:96:7:96:7 | task3 [arguments] | semmle.label | task3 [arguments] | +| CommandInjection.swift:96:7:96:7 | task3 [executableURL] | semmle.label | task3 [executableURL] | +| CommandInjection.swift:99:2:99:2 | [post] task4 | semmle.label | [post] task4 | +| CommandInjection.swift:99:2:99:2 | [post] task4 | semmle.label | [post] task4 | +| CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | semmle.label | [post] task4 [executableURL] | | CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | | CommandInjection.swift:99:45:99:45 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:100:2:100:2 | [post] task4 | semmle.label | [post] task4 | +| CommandInjection.swift:100:2:100:2 | [post] task4 | semmle.label | [post] task4 | +| CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | semmle.label | [post] task4 [arguments] | +| CommandInjection.swift:100:2:100:2 | task4 | semmle.label | task4 | +| CommandInjection.swift:100:2:100:2 | task4 [executableURL] | semmle.label | task4 [executableURL] | +| CommandInjection.swift:100:20:100:56 | [...] | semmle.label | [...] | | CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | +| CommandInjection.swift:101:7:101:7 | [post] task4 | semmle.label | [post] task4 | +| CommandInjection.swift:101:7:101:7 | [post] task4 [arguments] | semmle.label | [post] task4 [arguments] | +| CommandInjection.swift:101:7:101:7 | [post] task4 [executableURL] | semmle.label | [post] task4 [executableURL] | +| CommandInjection.swift:101:7:101:7 | task4 | semmle.label | task4 | +| CommandInjection.swift:101:7:101:7 | task4 [arguments] | semmle.label | task4 [arguments] | +| CommandInjection.swift:101:7:101:7 | task4 [executableURL] | semmle.label | task4 [executableURL] | +| CommandInjection.swift:104:2:104:7 | [post] ...? | semmle.label | [post] ...? | +| CommandInjection.swift:104:2:104:7 | [post] ...? [executableURL] | semmle.label | [post] ...? [executableURL] | | CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | | CommandInjection.swift:104:46:104:46 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:105:2:105:7 | [post] ...? | semmle.label | [post] ...? | +| CommandInjection.swift:105:2:105:7 | [post] ...? [arguments] | semmle.label | [post] ...? [arguments] | +| CommandInjection.swift:105:21:105:42 | [...] | semmle.label | [...] | | CommandInjection.swift:105:22:105:22 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:110:21:110:21 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:111:22:111:22 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:112:2:112:2 | [post] task6 | semmle.label | [post] task6 | +| CommandInjection.swift:112:2:112:2 | [post] task6 | semmle.label | [post] task6 | +| CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | semmle.label | [post] task6 [harmlessField] | +| CommandInjection.swift:112:24:112:24 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:113:7:113:7 | [post] task6 | semmle.label | [post] task6 | +| CommandInjection.swift:113:7:113:7 | [post] task6 [harmlessField] | semmle.label | [post] task6 [harmlessField] | +| CommandInjection.swift:113:7:113:7 | task6 | semmle.label | task6 | +| CommandInjection.swift:113:7:113:7 | task6 [harmlessField] | semmle.label | task6 [harmlessField] | +| file://:0:0:0:0 | [post] self [harmlessField] | semmle.label | [post] self [harmlessField] | +| file://:0:0:0:0 | value | semmle.label | value | subpaths +| CommandInjection.swift:56:2:56:2 | task1 | CommandInjection.swift:16:7:16:7 | self | CommandInjection.swift:16:2:16:17 | self[return] | CommandInjection.swift:56:2:56:2 | [post] task1 | +| CommandInjection.swift:56:2:56:2 | task1 [arguments] | CommandInjection.swift:16:7:16:7 | self [arguments] | CommandInjection.swift:16:2:16:17 | self[return] [arguments] | CommandInjection.swift:56:2:56:2 | [post] task1 [arguments] | | CommandInjection.swift:58:43:58:43 | userControlledString | CommandInjection.swift:38:22:38:33 | command | CommandInjection.swift:42:16:42:16 | command [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:38:22:38:33 | command [some:0] | CommandInjection.swift:42:16:42:16 | command [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:62:6:62:6 | task2 | CommandInjection.swift:16:7:16:7 | self | CommandInjection.swift:16:2:16:17 | self[return] | CommandInjection.swift:62:6:62:6 | [post] task2 | +| CommandInjection.swift:62:6:62:6 | task2 [arguments] | CommandInjection.swift:16:7:16:7 | self [arguments] | CommandInjection.swift:16:2:16:17 | self[return] [arguments] | CommandInjection.swift:62:6:62:6 | [post] task2 [arguments] | +| CommandInjection.swift:96:7:96:7 | task3 | CommandInjection.swift:19:7:19:7 | self | CommandInjection.swift:19:2:19:21 | self[return] | CommandInjection.swift:96:7:96:7 | [post] task3 | +| CommandInjection.swift:96:7:96:7 | task3 [arguments] | CommandInjection.swift:19:7:19:7 | self [arguments] | CommandInjection.swift:19:2:19:21 | self[return] [arguments] | CommandInjection.swift:96:7:96:7 | [post] task3 [arguments] | +| CommandInjection.swift:96:7:96:7 | task3 [executableURL] | CommandInjection.swift:19:7:19:7 | self [executableURL] | CommandInjection.swift:19:2:19:21 | self[return] [executableURL] | CommandInjection.swift:96:7:96:7 | [post] task3 [executableURL] | +| CommandInjection.swift:101:7:101:7 | task4 | CommandInjection.swift:19:7:19:7 | self | CommandInjection.swift:19:2:19:21 | self[return] | CommandInjection.swift:101:7:101:7 | [post] task4 | +| CommandInjection.swift:101:7:101:7 | task4 [arguments] | CommandInjection.swift:19:7:19:7 | self [arguments] | CommandInjection.swift:19:2:19:21 | self[return] [arguments] | CommandInjection.swift:101:7:101:7 | [post] task4 [arguments] | +| CommandInjection.swift:101:7:101:7 | task4 [executableURL] | CommandInjection.swift:19:7:19:7 | self [executableURL] | CommandInjection.swift:19:2:19:21 | self[return] [executableURL] | CommandInjection.swift:101:7:101:7 | [post] task4 [executableURL] | +| CommandInjection.swift:112:24:112:24 | userControlledString | CommandInjection.swift:71:6:71:6 | value | file://:0:0:0:0 | [post] self [harmlessField] | CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | +| CommandInjection.swift:113:7:113:7 | task6 | CommandInjection.swift:19:7:19:7 | self | CommandInjection.swift:19:2:19:21 | self[return] | CommandInjection.swift:113:7:113:7 | [post] task6 | +| CommandInjection.swift:113:7:113:7 | task6 [harmlessField] | CommandInjection.swift:19:7:19:7 | self [harmlessField] | CommandInjection.swift:19:2:19:21 | self[return] [harmlessField] | CommandInjection.swift:113:7:113:7 | [post] task6 [harmlessField] | #select -| CommandInjection.swift:55:27:55:27 | userControlledString | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:55:27:55:27 | userControlledString | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:61:31:61:31 | validatedString | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:61:31:61:31 | validatedString | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:94:24:94:57 | ...! | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:94:24:94:57 | ...! | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:95:28:95:28 | userControlledString | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:105:22:105:22 | userControlledString | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:105:22:105:22 | userControlledString | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:55:2:55:2 | [post] task1 | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:55:2:55:2 | [post] task1 | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:56:2:56:2 | [post] task1 | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:56:2:56:2 | [post] task1 | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:61:6:61:6 | [post] task2 | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:61:6:61:6 | [post] task2 | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:62:6:62:6 | [post] task2 | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:62:6:62:6 | [post] task2 | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:94:2:94:2 | [post] task3 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:94:2:94:2 | [post] task3 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:95:2:95:2 | [post] task3 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:95:2:95:2 | [post] task3 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:96:7:96:7 | [post] task3 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:96:7:96:7 | [post] task3 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:99:2:99:2 | [post] task4 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:99:2:99:2 | [post] task4 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:100:2:100:2 | [post] task4 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:100:2:100:2 | [post] task4 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:101:7:101:7 | [post] task4 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:101:7:101:7 | [post] task4 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:104:2:104:7 | [post] ...? | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:104:2:104:7 | [post] ...? | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:105:2:105:7 | [post] ...? | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:105:2:105:7 | [post] ...? | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:112:2:112:2 | [post] task6 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:112:2:112:2 | [post] task6 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:113:7:113:7 | [post] task6 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:113:7:113:7 | [post] task6 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift index 85bbda2ee64..ad335d81c19 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift @@ -53,13 +53,13 @@ func testCommandInjectionQhelpExamples() { let task1 = Process() task1.launchPath = "/bin/bash" // GOOD task1.arguments = ["-c", userControlledString] // BAD - task1.launch() + task1.launch() // [FALSE POSITIVE] if let validatedString = validateCommand(userControlledString) { let task2 = Process() task2.launchPath = "/bin/bash" // GOOD task2.arguments = ["-c", validatedString] // GOOD [FALSE POSITIVE] - task2.launch() + task2.launch() // [FALSE POSITIVE] } } @@ -93,12 +93,12 @@ func testCommandInjectionMore(mySafeString: String) { let task3 = Process() task3.executableURL = URL(string: userControlledString)! // BAD task3.arguments = ["abc", userControlledString] // BAD - try! task3.run() + try! task3.run() // [FALSE POSITIVE] let task4 = Process() task4.executableURL = URL(fileURLWithPath: userControlledString) // BAD task4.arguments = ["abc", "def" + userControlledString] // BAD - try! task4.run() + try! task4.run() // [FALSE POSITIVE] let task5 = mkProcess() task5?.executableURL = URL(fileURLWithPath: userControlledString) // BAD @@ -109,8 +109,8 @@ func testCommandInjectionMore(mySafeString: String) { task6.executableURL = URL(string: userControlledString)! // BAD [NOT DETECTED] task6.arguments = [userControlledString] // BAD [NOT DETECTED] task6.setArguments([userControlledString]) // BAD [NOT DETECTED] - task6.harmlessField = userControlledString // GOOD - try! task6.run() + task6.harmlessField = userControlledString // GOOD [FALSE POSITIVE] + try! task6.run() // [FALSE POSITIVE] let task7 = Process() task7.executableURL = URL(fileURLWithPath: mySafeString) // GOOD From 1c7d63a18fe4eb661c6a7a9d25c3fcdef038566c Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 1 Aug 2023 10:20:31 +0100 Subject: [PATCH 034/788] Swift: Model sinks explicitly with models-as-data. --- .../security/CommandInjectionExtensions.qll | 36 ++-- .../CWE-078/CommandInjection.expected | 170 +++--------------- .../Security/CWE-078/CommandInjection.swift | 20 +-- 3 files changed, 52 insertions(+), 174 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll index 1af0dc629a3..a0672bdb187 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll @@ -42,26 +42,28 @@ private class CommandInjectionArrayAdditionalFlowStep extends CommandInjectionAd } } -/** - * A `DataFlow::Node` that is written into a `Process` object. - */ -private class ProcessSink extends CommandInjectionSink instanceof DataFlow::Node { - ProcessSink() { - // any write into a class derived from `Process` is a sink. For - // example in `Process.launchPath = sensitive` the post-update node corresponding - // with `Process.launchPath` is a sink. - exists(NominalType t, Expr e | - t.getABaseType*().getUnderlyingType().getName() = "Process" and - this.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr() = e and - e.getFullyConverted().getType() = t and - not e.(DeclRefExpr).getDecl() instanceof SelfParamDecl - ) - } -} - /** * A sink defined in a CSV model. */ private class DefaultCommandInjectionSink extends CommandInjectionSink { DefaultCommandInjectionSink() { sinkNode(this, "command-injection") } } + +private class CommandInjectionSinks extends SinkModelCsv { + override predicate row(string row) { + row = + [ + ";Process;true;run(_:arguments:terminationHandler:);;;Argument[0..1];command-injection", + ";Process;true;launchedProcess(launchPath:arguments:);;;Argument[0..1];command-injection", + ";Process;true;arguments;;;PostUpdate;command-injection", + ";Process;true;currentDirectory;;;PostUpdate;command-injection", + ";Process;true;environment;;;PostUpdate;command-injection", + ";Process;true;executableURL;;;PostUpdate;command-injection", + ";Process;true;standardError;;;PostUpdate;command-injection", + ";Process;true;standardInput;;;PostUpdate;command-injection", + ";Process;true;standardOutput;;;PostUpdate;command-injection", + ";Process;true;currentDirectoryPath;;;PostUpdate;command-injection", + ";Process;true;launchPath;;;PostUpdate;command-injection", + ] + } +} diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index 02e230c9978..16710c8a23d 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -1,10 +1,4 @@ edges -| CommandInjection.swift:16:7:16:7 | self | CommandInjection.swift:16:2:16:17 | self[return] | -| CommandInjection.swift:16:7:16:7 | self [arguments] | CommandInjection.swift:16:2:16:17 | self[return] [arguments] | -| CommandInjection.swift:19:7:19:7 | self | CommandInjection.swift:19:2:19:21 | self[return] | -| CommandInjection.swift:19:7:19:7 | self [arguments] | CommandInjection.swift:19:2:19:21 | self[return] [arguments] | -| CommandInjection.swift:19:7:19:7 | self [executableURL] | CommandInjection.swift:19:2:19:21 | self[return] [executableURL] | -| CommandInjection.swift:19:7:19:7 | self [harmlessField] | CommandInjection.swift:19:2:19:21 | self[return] [harmlessField] | | CommandInjection.swift:38:22:38:33 | command | CommandInjection.swift:42:16:42:16 | command | | CommandInjection.swift:38:22:38:33 | command [some:0] | CommandInjection.swift:42:16:42:16 | command [some:0] | | CommandInjection.swift:42:16:42:16 | command | CommandInjection.swift:42:16:42:16 | command [some:0] | @@ -16,20 +10,11 @@ edges | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | CommandInjection.swift:49:8:49:12 | let ...? [some:0, some:0] | | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:49:8:49:12 | let ...? [some:0] | | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | -| CommandInjection.swift:55:2:55:2 | [post] task1 | CommandInjection.swift:56:2:56:2 | task1 | | CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | CommandInjection.swift:55:2:55:2 | [post] task1 | -| CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | CommandInjection.swift:55:2:55:2 | [post] task1 | -| CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | CommandInjection.swift:56:2:56:2 | task1 | -| CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | CommandInjection.swift:56:2:56:2 | task1 [arguments] | | CommandInjection.swift:55:20:55:47 | [...] | CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | | CommandInjection.swift:55:27:55:27 | userControlledString | CommandInjection.swift:55:20:55:47 | [...] | | CommandInjection.swift:55:27:55:27 | userControlledString | CommandInjection.swift:58:43:58:43 | userControlledString | | CommandInjection.swift:55:27:55:27 | userControlledString [some:0] | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | -| CommandInjection.swift:56:2:56:2 | [post] task1 [arguments] | CommandInjection.swift:56:2:56:2 | [post] task1 | -| CommandInjection.swift:56:2:56:2 | task1 | CommandInjection.swift:16:7:16:7 | self | -| CommandInjection.swift:56:2:56:2 | task1 | CommandInjection.swift:56:2:56:2 | [post] task1 | -| CommandInjection.swift:56:2:56:2 | task1 [arguments] | CommandInjection.swift:16:7:16:7 | self [arguments] | -| CommandInjection.swift:56:2:56:2 | task1 [arguments] | CommandInjection.swift:56:2:56:2 | [post] task1 [arguments] | | CommandInjection.swift:58:5:58:9 | let ...? [some:0] | CommandInjection.swift:58:9:58:9 | validatedString | | CommandInjection.swift:58:9:58:9 | validatedString | CommandInjection.swift:61:31:61:31 | validatedString | | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | CommandInjection.swift:58:5:58:9 | let ...? [some:0] | @@ -37,79 +22,33 @@ edges | CommandInjection.swift:58:43:58:43 | userControlledString | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:38:22:38:33 | command [some:0] | | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | -| CommandInjection.swift:61:6:61:6 | [post] task2 | CommandInjection.swift:62:6:62:6 | task2 | | CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | CommandInjection.swift:61:6:61:6 | [post] task2 | -| CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | CommandInjection.swift:61:6:61:6 | [post] task2 | -| CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | CommandInjection.swift:62:6:62:6 | task2 | -| CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | CommandInjection.swift:62:6:62:6 | task2 [arguments] | | CommandInjection.swift:61:24:61:46 | [...] | CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | | CommandInjection.swift:61:31:61:31 | validatedString | CommandInjection.swift:61:24:61:46 | [...] | -| CommandInjection.swift:62:6:62:6 | [post] task2 [arguments] | CommandInjection.swift:62:6:62:6 | [post] task2 | -| CommandInjection.swift:62:6:62:6 | task2 | CommandInjection.swift:16:7:16:7 | self | -| CommandInjection.swift:62:6:62:6 | task2 | CommandInjection.swift:62:6:62:6 | [post] task2 | -| CommandInjection.swift:62:6:62:6 | task2 [arguments] | CommandInjection.swift:16:7:16:7 | self [arguments] | -| CommandInjection.swift:62:6:62:6 | task2 [arguments] | CommandInjection.swift:62:6:62:6 | [post] task2 [arguments] | -| CommandInjection.swift:71:6:71:6 | value | file://:0:0:0:0 | value | | CommandInjection.swift:79:8:79:12 | let ...? [some:0] | CommandInjection.swift:79:12:79:12 | userControlledString | | CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:94:36:94:36 | userControlledString | | CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:95:28:95:28 | userControlledString | | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:79:8:79:12 | let ...? [some:0] | -| CommandInjection.swift:94:2:94:2 | [post] task3 | CommandInjection.swift:95:2:95:2 | task3 | | CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | CommandInjection.swift:94:2:94:2 | [post] task3 | -| CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | CommandInjection.swift:94:2:94:2 | [post] task3 | -| CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | CommandInjection.swift:95:2:95:2 | task3 | -| CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | CommandInjection.swift:95:2:95:2 | task3 [executableURL] | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | CommandInjection.swift:94:24:94:57 | ...! | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:94:24:94:57 | ...! | | CommandInjection.swift:94:24:94:57 | ...! | CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | | CommandInjection.swift:94:36:94:36 | userControlledString | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | -| CommandInjection.swift:95:2:95:2 | [post] task3 | CommandInjection.swift:96:7:96:7 | task3 | | CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | CommandInjection.swift:95:2:95:2 | [post] task3 | -| CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | CommandInjection.swift:95:2:95:2 | [post] task3 | -| CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | CommandInjection.swift:96:7:96:7 | task3 | -| CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | CommandInjection.swift:96:7:96:7 | task3 [arguments] | -| CommandInjection.swift:95:2:95:2 | task3 | CommandInjection.swift:96:7:96:7 | task3 | -| CommandInjection.swift:95:2:95:2 | task3 [executableURL] | CommandInjection.swift:96:7:96:7 | task3 [executableURL] | | CommandInjection.swift:95:20:95:48 | [...] | CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | | CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:95:20:95:48 | [...] | | CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:99:45:99:45 | userControlledString | | CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | | CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:104:46:104:46 | userControlledString | | CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:105:22:105:22 | userControlledString | -| CommandInjection.swift:96:7:96:7 | [post] task3 [arguments] | CommandInjection.swift:96:7:96:7 | [post] task3 | -| CommandInjection.swift:96:7:96:7 | [post] task3 [executableURL] | CommandInjection.swift:96:7:96:7 | [post] task3 | -| CommandInjection.swift:96:7:96:7 | task3 | CommandInjection.swift:19:7:19:7 | self | -| CommandInjection.swift:96:7:96:7 | task3 | CommandInjection.swift:96:7:96:7 | [post] task3 | -| CommandInjection.swift:96:7:96:7 | task3 [arguments] | CommandInjection.swift:19:7:19:7 | self [arguments] | -| CommandInjection.swift:96:7:96:7 | task3 [arguments] | CommandInjection.swift:96:7:96:7 | [post] task3 [arguments] | -| CommandInjection.swift:96:7:96:7 | task3 [executableURL] | CommandInjection.swift:19:7:19:7 | self [executableURL] | -| CommandInjection.swift:96:7:96:7 | task3 [executableURL] | CommandInjection.swift:96:7:96:7 | [post] task3 [executableURL] | -| CommandInjection.swift:99:2:99:2 | [post] task4 | CommandInjection.swift:100:2:100:2 | task4 | | CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | CommandInjection.swift:99:2:99:2 | [post] task4 | -| CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | CommandInjection.swift:99:2:99:2 | [post] task4 | -| CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | CommandInjection.swift:100:2:100:2 | task4 | -| CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | CommandInjection.swift:100:2:100:2 | task4 [executableURL] | | CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | | CommandInjection.swift:99:45:99:45 | userControlledString | CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | -| CommandInjection.swift:100:2:100:2 | [post] task4 | CommandInjection.swift:101:7:101:7 | task4 | | CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | CommandInjection.swift:100:2:100:2 | [post] task4 | -| CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | CommandInjection.swift:100:2:100:2 | [post] task4 | -| CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | CommandInjection.swift:101:7:101:7 | task4 | -| CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | CommandInjection.swift:101:7:101:7 | task4 [arguments] | -| CommandInjection.swift:100:2:100:2 | task4 | CommandInjection.swift:101:7:101:7 | task4 | -| CommandInjection.swift:100:2:100:2 | task4 [executableURL] | CommandInjection.swift:101:7:101:7 | task4 [executableURL] | | CommandInjection.swift:100:20:100:56 | [...] | CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | | CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | CommandInjection.swift:100:20:100:56 | [...] | -| CommandInjection.swift:101:7:101:7 | [post] task4 [arguments] | CommandInjection.swift:101:7:101:7 | [post] task4 | -| CommandInjection.swift:101:7:101:7 | [post] task4 [executableURL] | CommandInjection.swift:101:7:101:7 | [post] task4 | -| CommandInjection.swift:101:7:101:7 | task4 | CommandInjection.swift:19:7:19:7 | self | -| CommandInjection.swift:101:7:101:7 | task4 | CommandInjection.swift:101:7:101:7 | [post] task4 | -| CommandInjection.swift:101:7:101:7 | task4 [arguments] | CommandInjection.swift:19:7:19:7 | self [arguments] | -| CommandInjection.swift:101:7:101:7 | task4 [arguments] | CommandInjection.swift:101:7:101:7 | [post] task4 [arguments] | -| CommandInjection.swift:101:7:101:7 | task4 [executableURL] | CommandInjection.swift:19:7:19:7 | self [executableURL] | -| CommandInjection.swift:101:7:101:7 | task4 [executableURL] | CommandInjection.swift:101:7:101:7 | [post] task4 [executableURL] | | CommandInjection.swift:104:2:104:7 | [post] ...? [executableURL] | CommandInjection.swift:104:2:104:7 | [post] ...? | | CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:104:2:104:7 | [post] ...? [executableURL] | | CommandInjection.swift:104:46:104:46 | userControlledString | CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | @@ -118,33 +57,17 @@ edges | CommandInjection.swift:105:22:105:22 | userControlledString | CommandInjection.swift:105:21:105:42 | [...] | | CommandInjection.swift:105:22:105:22 | userControlledString | CommandInjection.swift:110:21:110:21 | userControlledString | | CommandInjection.swift:110:21:110:21 | userControlledString | CommandInjection.swift:111:22:111:22 | userControlledString | -| CommandInjection.swift:111:22:111:22 | userControlledString | CommandInjection.swift:112:24:112:24 | userControlledString | -| CommandInjection.swift:112:2:112:2 | [post] task6 | CommandInjection.swift:113:7:113:7 | task6 | -| CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | CommandInjection.swift:112:2:112:2 | [post] task6 | -| CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | CommandInjection.swift:112:2:112:2 | [post] task6 | -| CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | CommandInjection.swift:113:7:113:7 | task6 | -| CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | CommandInjection.swift:113:7:113:7 | task6 [harmlessField] | -| CommandInjection.swift:112:24:112:24 | userControlledString | CommandInjection.swift:71:6:71:6 | value | -| CommandInjection.swift:112:24:112:24 | userControlledString | CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | -| CommandInjection.swift:113:7:113:7 | [post] task6 [harmlessField] | CommandInjection.swift:113:7:113:7 | [post] task6 | -| CommandInjection.swift:113:7:113:7 | task6 | CommandInjection.swift:19:7:19:7 | self | -| CommandInjection.swift:113:7:113:7 | task6 | CommandInjection.swift:113:7:113:7 | [post] task6 | -| CommandInjection.swift:113:7:113:7 | task6 [harmlessField] | CommandInjection.swift:19:7:19:7 | self [harmlessField] | -| CommandInjection.swift:113:7:113:7 | task6 [harmlessField] | CommandInjection.swift:113:7:113:7 | [post] task6 [harmlessField] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [harmlessField] | +| CommandInjection.swift:111:22:111:22 | userControlledString | CommandInjection.swift:122:42:122:42 | userControlledString | +| CommandInjection.swift:111:22:111:22 | userControlledString | CommandInjection.swift:123:75:123:75 | userControlledString | +| CommandInjection.swift:123:75:123:75 | userControlledString | CommandInjection.swift:123:67:123:95 | [...] | +| CommandInjection.swift:123:75:123:75 | userControlledString | CommandInjection.swift:126:35:126:35 | userControlledString | +| CommandInjection.swift:123:75:123:75 | userControlledString | CommandInjection.swift:127:70:127:70 | userControlledString | +| CommandInjection.swift:126:23:126:55 | call to URL.init(string:) | CommandInjection.swift:126:23:126:55 | call to URL.init(string:) [some:0] | +| CommandInjection.swift:126:23:126:55 | call to URL.init(string:) | CommandInjection.swift:126:23:126:56 | ...! | +| CommandInjection.swift:126:23:126:55 | call to URL.init(string:) [some:0] | CommandInjection.swift:126:23:126:56 | ...! | +| CommandInjection.swift:126:35:126:35 | userControlledString | CommandInjection.swift:126:23:126:55 | call to URL.init(string:) | +| CommandInjection.swift:127:70:127:70 | userControlledString | CommandInjection.swift:127:62:127:90 | [...] | nodes -| CommandInjection.swift:16:2:16:17 | self[return] | semmle.label | self[return] | -| CommandInjection.swift:16:2:16:17 | self[return] [arguments] | semmle.label | self[return] [arguments] | -| CommandInjection.swift:16:7:16:7 | self | semmle.label | self | -| CommandInjection.swift:16:7:16:7 | self [arguments] | semmle.label | self [arguments] | -| CommandInjection.swift:19:2:19:21 | self[return] | semmle.label | self[return] | -| CommandInjection.swift:19:2:19:21 | self[return] [arguments] | semmle.label | self[return] [arguments] | -| CommandInjection.swift:19:2:19:21 | self[return] [executableURL] | semmle.label | self[return] [executableURL] | -| CommandInjection.swift:19:2:19:21 | self[return] [harmlessField] | semmle.label | self[return] [harmlessField] | -| CommandInjection.swift:19:7:19:7 | self | semmle.label | self | -| CommandInjection.swift:19:7:19:7 | self [arguments] | semmle.label | self [arguments] | -| CommandInjection.swift:19:7:19:7 | self [executableURL] | semmle.label | self [executableURL] | -| CommandInjection.swift:19:7:19:7 | self [harmlessField] | semmle.label | self [harmlessField] | | CommandInjection.swift:38:22:38:33 | command | semmle.label | command | | CommandInjection.swift:38:22:38:33 | command [some:0] | semmle.label | command [some:0] | | CommandInjection.swift:42:16:42:16 | command | semmle.label | command | @@ -158,72 +81,41 @@ nodes | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | semmle.label | call to String.init(contentsOf:) [some:0, some:0] | | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:55:2:55:2 | [post] task1 | semmle.label | [post] task1 | -| CommandInjection.swift:55:2:55:2 | [post] task1 | semmle.label | [post] task1 | | CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | semmle.label | [post] task1 [arguments] | | CommandInjection.swift:55:20:55:47 | [...] | semmle.label | [...] | | CommandInjection.swift:55:27:55:27 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:55:27:55:27 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | -| CommandInjection.swift:56:2:56:2 | [post] task1 | semmle.label | [post] task1 | -| CommandInjection.swift:56:2:56:2 | [post] task1 [arguments] | semmle.label | [post] task1 [arguments] | -| CommandInjection.swift:56:2:56:2 | task1 | semmle.label | task1 | -| CommandInjection.swift:56:2:56:2 | task1 [arguments] | semmle.label | task1 [arguments] | | CommandInjection.swift:58:5:58:9 | let ...? [some:0] | semmle.label | let ...? [some:0] | | CommandInjection.swift:58:9:58:9 | validatedString | semmle.label | validatedString | | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | semmle.label | call to validateCommand(_:) [some:0] | | CommandInjection.swift:58:43:58:43 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | | CommandInjection.swift:61:6:61:6 | [post] task2 | semmle.label | [post] task2 | -| CommandInjection.swift:61:6:61:6 | [post] task2 | semmle.label | [post] task2 | | CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | semmle.label | [post] task2 [arguments] | | CommandInjection.swift:61:24:61:46 | [...] | semmle.label | [...] | | CommandInjection.swift:61:31:61:31 | validatedString | semmle.label | validatedString | -| CommandInjection.swift:62:6:62:6 | [post] task2 | semmle.label | [post] task2 | -| CommandInjection.swift:62:6:62:6 | [post] task2 [arguments] | semmle.label | [post] task2 [arguments] | -| CommandInjection.swift:62:6:62:6 | task2 | semmle.label | task2 | -| CommandInjection.swift:62:6:62:6 | task2 [arguments] | semmle.label | task2 [arguments] | -| CommandInjection.swift:71:6:71:6 | value | semmle.label | value | | CommandInjection.swift:79:8:79:12 | let ...? [some:0] | semmle.label | let ...? [some:0] | | CommandInjection.swift:79:12:79:12 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:94:2:94:2 | [post] task3 | semmle.label | [post] task3 | -| CommandInjection.swift:94:2:94:2 | [post] task3 | semmle.label | [post] task3 | | CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | semmle.label | [post] task3 [executableURL] | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | semmle.label | call to URL.init(string:) | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | CommandInjection.swift:94:24:94:57 | ...! | semmle.label | ...! | | CommandInjection.swift:94:36:94:36 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:95:2:95:2 | [post] task3 | semmle.label | [post] task3 | -| CommandInjection.swift:95:2:95:2 | [post] task3 | semmle.label | [post] task3 | | CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | semmle.label | [post] task3 [arguments] | -| CommandInjection.swift:95:2:95:2 | task3 | semmle.label | task3 | -| CommandInjection.swift:95:2:95:2 | task3 [executableURL] | semmle.label | task3 [executableURL] | | CommandInjection.swift:95:20:95:48 | [...] | semmle.label | [...] | | CommandInjection.swift:95:28:95:28 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:96:7:96:7 | [post] task3 | semmle.label | [post] task3 | -| CommandInjection.swift:96:7:96:7 | [post] task3 [arguments] | semmle.label | [post] task3 [arguments] | -| CommandInjection.swift:96:7:96:7 | [post] task3 [executableURL] | semmle.label | [post] task3 [executableURL] | -| CommandInjection.swift:96:7:96:7 | task3 | semmle.label | task3 | -| CommandInjection.swift:96:7:96:7 | task3 [arguments] | semmle.label | task3 [arguments] | -| CommandInjection.swift:96:7:96:7 | task3 [executableURL] | semmle.label | task3 [executableURL] | -| CommandInjection.swift:99:2:99:2 | [post] task4 | semmle.label | [post] task4 | | CommandInjection.swift:99:2:99:2 | [post] task4 | semmle.label | [post] task4 | | CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | semmle.label | [post] task4 [executableURL] | | CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | | CommandInjection.swift:99:45:99:45 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:100:2:100:2 | [post] task4 | semmle.label | [post] task4 | -| CommandInjection.swift:100:2:100:2 | [post] task4 | semmle.label | [post] task4 | | CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | semmle.label | [post] task4 [arguments] | -| CommandInjection.swift:100:2:100:2 | task4 | semmle.label | task4 | -| CommandInjection.swift:100:2:100:2 | task4 [executableURL] | semmle.label | task4 [executableURL] | | CommandInjection.swift:100:20:100:56 | [...] | semmle.label | [...] | | CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | -| CommandInjection.swift:101:7:101:7 | [post] task4 | semmle.label | [post] task4 | -| CommandInjection.swift:101:7:101:7 | [post] task4 [arguments] | semmle.label | [post] task4 [arguments] | -| CommandInjection.swift:101:7:101:7 | [post] task4 [executableURL] | semmle.label | [post] task4 [executableURL] | -| CommandInjection.swift:101:7:101:7 | task4 | semmle.label | task4 | -| CommandInjection.swift:101:7:101:7 | task4 [arguments] | semmle.label | task4 [arguments] | -| CommandInjection.swift:101:7:101:7 | task4 [executableURL] | semmle.label | task4 [executableURL] | | CommandInjection.swift:104:2:104:7 | [post] ...? | semmle.label | [post] ...? | | CommandInjection.swift:104:2:104:7 | [post] ...? [executableURL] | semmle.label | [post] ...? [executableURL] | | CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | @@ -234,44 +126,28 @@ nodes | CommandInjection.swift:105:22:105:22 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:110:21:110:21 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:111:22:111:22 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:112:2:112:2 | [post] task6 | semmle.label | [post] task6 | -| CommandInjection.swift:112:2:112:2 | [post] task6 | semmle.label | [post] task6 | -| CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | semmle.label | [post] task6 [harmlessField] | -| CommandInjection.swift:112:24:112:24 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:113:7:113:7 | [post] task6 | semmle.label | [post] task6 | -| CommandInjection.swift:113:7:113:7 | [post] task6 [harmlessField] | semmle.label | [post] task6 [harmlessField] | -| CommandInjection.swift:113:7:113:7 | task6 | semmle.label | task6 | -| CommandInjection.swift:113:7:113:7 | task6 [harmlessField] | semmle.label | task6 [harmlessField] | -| file://:0:0:0:0 | [post] self [harmlessField] | semmle.label | [post] self [harmlessField] | -| file://:0:0:0:0 | value | semmle.label | value | +| CommandInjection.swift:122:42:122:42 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:123:67:123:95 | [...] | semmle.label | [...] | +| CommandInjection.swift:123:75:123:75 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:126:23:126:55 | call to URL.init(string:) | semmle.label | call to URL.init(string:) | +| CommandInjection.swift:126:23:126:55 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | +| CommandInjection.swift:126:23:126:56 | ...! | semmle.label | ...! | +| CommandInjection.swift:126:35:126:35 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:127:62:127:90 | [...] | semmle.label | [...] | +| CommandInjection.swift:127:70:127:70 | userControlledString | semmle.label | userControlledString | subpaths -| CommandInjection.swift:56:2:56:2 | task1 | CommandInjection.swift:16:7:16:7 | self | CommandInjection.swift:16:2:16:17 | self[return] | CommandInjection.swift:56:2:56:2 | [post] task1 | -| CommandInjection.swift:56:2:56:2 | task1 [arguments] | CommandInjection.swift:16:7:16:7 | self [arguments] | CommandInjection.swift:16:2:16:17 | self[return] [arguments] | CommandInjection.swift:56:2:56:2 | [post] task1 [arguments] | | CommandInjection.swift:58:43:58:43 | userControlledString | CommandInjection.swift:38:22:38:33 | command | CommandInjection.swift:42:16:42:16 | command [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:38:22:38:33 | command [some:0] | CommandInjection.swift:42:16:42:16 | command [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | -| CommandInjection.swift:62:6:62:6 | task2 | CommandInjection.swift:16:7:16:7 | self | CommandInjection.swift:16:2:16:17 | self[return] | CommandInjection.swift:62:6:62:6 | [post] task2 | -| CommandInjection.swift:62:6:62:6 | task2 [arguments] | CommandInjection.swift:16:7:16:7 | self [arguments] | CommandInjection.swift:16:2:16:17 | self[return] [arguments] | CommandInjection.swift:62:6:62:6 | [post] task2 [arguments] | -| CommandInjection.swift:96:7:96:7 | task3 | CommandInjection.swift:19:7:19:7 | self | CommandInjection.swift:19:2:19:21 | self[return] | CommandInjection.swift:96:7:96:7 | [post] task3 | -| CommandInjection.swift:96:7:96:7 | task3 [arguments] | CommandInjection.swift:19:7:19:7 | self [arguments] | CommandInjection.swift:19:2:19:21 | self[return] [arguments] | CommandInjection.swift:96:7:96:7 | [post] task3 [arguments] | -| CommandInjection.swift:96:7:96:7 | task3 [executableURL] | CommandInjection.swift:19:7:19:7 | self [executableURL] | CommandInjection.swift:19:2:19:21 | self[return] [executableURL] | CommandInjection.swift:96:7:96:7 | [post] task3 [executableURL] | -| CommandInjection.swift:101:7:101:7 | task4 | CommandInjection.swift:19:7:19:7 | self | CommandInjection.swift:19:2:19:21 | self[return] | CommandInjection.swift:101:7:101:7 | [post] task4 | -| CommandInjection.swift:101:7:101:7 | task4 [arguments] | CommandInjection.swift:19:7:19:7 | self [arguments] | CommandInjection.swift:19:2:19:21 | self[return] [arguments] | CommandInjection.swift:101:7:101:7 | [post] task4 [arguments] | -| CommandInjection.swift:101:7:101:7 | task4 [executableURL] | CommandInjection.swift:19:7:19:7 | self [executableURL] | CommandInjection.swift:19:2:19:21 | self[return] [executableURL] | CommandInjection.swift:101:7:101:7 | [post] task4 [executableURL] | -| CommandInjection.swift:112:24:112:24 | userControlledString | CommandInjection.swift:71:6:71:6 | value | file://:0:0:0:0 | [post] self [harmlessField] | CommandInjection.swift:112:2:112:2 | [post] task6 [harmlessField] | -| CommandInjection.swift:113:7:113:7 | task6 | CommandInjection.swift:19:7:19:7 | self | CommandInjection.swift:19:2:19:21 | self[return] | CommandInjection.swift:113:7:113:7 | [post] task6 | -| CommandInjection.swift:113:7:113:7 | task6 [harmlessField] | CommandInjection.swift:19:7:19:7 | self [harmlessField] | CommandInjection.swift:19:2:19:21 | self[return] [harmlessField] | CommandInjection.swift:113:7:113:7 | [post] task6 [harmlessField] | #select | CommandInjection.swift:55:2:55:2 | [post] task1 | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:55:2:55:2 | [post] task1 | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:56:2:56:2 | [post] task1 | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:56:2:56:2 | [post] task1 | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:61:6:61:6 | [post] task2 | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:61:6:61:6 | [post] task2 | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:62:6:62:6 | [post] task2 | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:62:6:62:6 | [post] task2 | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:94:2:94:2 | [post] task3 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:94:2:94:2 | [post] task3 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:95:2:95:2 | [post] task3 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:95:2:95:2 | [post] task3 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:96:7:96:7 | [post] task3 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:96:7:96:7 | [post] task3 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:99:2:99:2 | [post] task4 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:99:2:99:2 | [post] task4 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:100:2:100:2 | [post] task4 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:100:2:100:2 | [post] task4 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:101:7:101:7 | [post] task4 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:101:7:101:7 | [post] task4 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:104:2:104:7 | [post] ...? | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:104:2:104:7 | [post] ...? | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:105:2:105:7 | [post] ...? | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:105:2:105:7 | [post] ...? | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:112:2:112:2 | [post] task6 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:112:2:112:2 | [post] task6 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:113:7:113:7 | [post] task6 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:113:7:113:7 | [post] task6 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:122:42:122:42 | userControlledString | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:122:42:122:42 | userControlledString | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:123:67:123:95 | [...] | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:123:67:123:95 | [...] | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:126:23:126:56 | ...! | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:126:23:126:56 | ...! | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:127:62:127:90 | [...] | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:127:62:127:90 | [...] | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift index ad335d81c19..73f7872e3e4 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift @@ -53,13 +53,13 @@ func testCommandInjectionQhelpExamples() { let task1 = Process() task1.launchPath = "/bin/bash" // GOOD task1.arguments = ["-c", userControlledString] // BAD - task1.launch() // [FALSE POSITIVE] + task1.launch() if let validatedString = validateCommand(userControlledString) { let task2 = Process() task2.launchPath = "/bin/bash" // GOOD task2.arguments = ["-c", validatedString] // GOOD [FALSE POSITIVE] - task2.launch() // [FALSE POSITIVE] + task2.launch() } } @@ -93,12 +93,12 @@ func testCommandInjectionMore(mySafeString: String) { let task3 = Process() task3.executableURL = URL(string: userControlledString)! // BAD task3.arguments = ["abc", userControlledString] // BAD - try! task3.run() // [FALSE POSITIVE] + try! task3.run() let task4 = Process() task4.executableURL = URL(fileURLWithPath: userControlledString) // BAD task4.arguments = ["abc", "def" + userControlledString] // BAD - try! task4.run() // [FALSE POSITIVE] + try! task4.run() let task5 = mkProcess() task5?.executableURL = URL(fileURLWithPath: userControlledString) // BAD @@ -109,8 +109,8 @@ func testCommandInjectionMore(mySafeString: String) { task6.executableURL = URL(string: userControlledString)! // BAD [NOT DETECTED] task6.arguments = [userControlledString] // BAD [NOT DETECTED] task6.setArguments([userControlledString]) // BAD [NOT DETECTED] - task6.harmlessField = userControlledString // GOOD [FALSE POSITIVE] - try! task6.run() // [FALSE POSITIVE] + task6.harmlessField = userControlledString // GOOD + try! task6.run() let task7 = Process() task7.executableURL = URL(fileURLWithPath: mySafeString) // GOOD @@ -119,10 +119,10 @@ func testCommandInjectionMore(mySafeString: String) { try! task7.run() _ = Process.launchedProcess(launchPath: mySafeString, arguments: ["abc", mySafeString]) // GOOD - _ = Process.launchedProcess(launchPath: userControlledString, arguments: ["abc", mySafeString]) // BAD [NOT DETECTED] - _ = Process.launchedProcess(launchPath: mySafeString, arguments: ["abc", userControlledString]) // BAD [NOT DETECTED] + _ = Process.launchedProcess(launchPath: userControlledString, arguments: ["abc", mySafeString]) // BAD + _ = Process.launchedProcess(launchPath: mySafeString, arguments: ["abc", userControlledString]) // BAD _ = try? Process.run(URL(string: mySafeString)!, arguments: ["abc", mySafeString]) // GOOD - _ = try? Process.run(URL(string: userControlledString)!, arguments: ["abc", mySafeString]) // BAD [NOT DETECTED] - _ = try? Process.run(URL(string: mySafeString)!, arguments: ["abc", userControlledString]) // BAD [NOT DETECTED] + _ = try? Process.run(URL(string: userControlledString)!, arguments: ["abc", mySafeString]) // BAD + _ = try? Process.run(URL(string: mySafeString)!, arguments: ["abc", userControlledString]) // BAD } From 348c45dff32dc2aee72725ad3afe7cd027ff862a Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 3 Aug 2023 18:07:59 +0100 Subject: [PATCH 035/788] Swift: Use enum content in URL and NSURL models. --- .../codeql/swift/frameworks/StandardLibrary/NsUrl.qll | 2 +- .../codeql/swift/frameworks/StandardLibrary/Url.qll | 8 ++++---- .../Security/CWE-078/CommandInjection.expected | 10 ++-------- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/NsUrl.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/NsUrl.qll index 019bc30cdf3..fb4f8a8516c 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/NsUrl.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/NsUrl.qll @@ -10,6 +10,6 @@ private import codeql.swift.dataflow.ExternalFlow */ private class NsUrlSummaries extends SummaryModelCsv { override predicate row(string row) { - row = ";NSURL;true;init(string:);(String);;Argument[0];ReturnValue;taint" + row = ";NSURL;true;init(string:);(String);;Argument[0];ReturnValue.OptionalSome;taint" } } diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll index 2f03fdd5327..d86c004b1b2 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll @@ -85,8 +85,8 @@ private class UrlSummaries extends SummaryModelCsv { override predicate row(string row) { row = [ - ";URL;true;init(string:);(String);;Argument[0];ReturnValue;taint", - ";URL;true;init(string:relativeTo:);(String,URL?);;Argument[0..1];ReturnValue;taint", + ";URL;true;init(string:);(String);;Argument[0];ReturnValue.OptionalSome;taint", + ";URL;true;init(string:relativeTo:);(String,URL?);;Argument[0..1];ReturnValue.OptionalSome;taint", ";URL;true;init(fileURLWithPath:);;;Argument[0];ReturnValue;taint", ";URL;true;init(fileURLWithPath:isDirectory:);;;Argument[0];ReturnValue;taint", ";URL;true;init(fileURLWithPath:relativeTo:);;;Argument[0..1];ReturnValue;taint", @@ -95,8 +95,8 @@ private class UrlSummaries extends SummaryModelCsv { ";URL;true;init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:);;;Argument[0];ReturnValue;taint", ";URL;true;init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:);;;Argument[2];ReturnValue;taint", ";URL;true;init(fileReferenceLiteralResourceName:);;;Argument[0];ReturnValue;taint", - ";URL;true;init(_:);;;Argument[0];ReturnValue;taint", - ";URL;true;init(_:isDirectory:);;;Argument[0];ReturnValue;taint", + ";URL;true;init(_:);;;Argument[0];ReturnValue.OptionalSome;taint", + ";URL;true;init(_:isDirectory:);;;Argument[0];ReturnValue.OptionalSome;taint", ";URL;true;init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:);;;Argument[0];ReturnValue;taint", ";URL;true;init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:);;;Argument[2];ReturnValue;taint", ";URL;true;init(resolvingAliasFileAt:options:);;;Argument[0];ReturnValue;taint", diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index 16710c8a23d..9bdcc8101f8 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -31,11 +31,9 @@ edges | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:79:8:79:12 | let ...? [some:0] | | CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | CommandInjection.swift:94:2:94:2 | [post] task3 | -| CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | CommandInjection.swift:94:24:94:57 | ...! | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:94:24:94:57 | ...! | | CommandInjection.swift:94:24:94:57 | ...! | CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | -| CommandInjection.swift:94:36:94:36 | userControlledString | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | +| CommandInjection.swift:94:36:94:36 | userControlledString | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | | CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | CommandInjection.swift:95:2:95:2 | [post] task3 | | CommandInjection.swift:95:20:95:48 | [...] | CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | | CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:95:20:95:48 | [...] | @@ -62,10 +60,8 @@ edges | CommandInjection.swift:123:75:123:75 | userControlledString | CommandInjection.swift:123:67:123:95 | [...] | | CommandInjection.swift:123:75:123:75 | userControlledString | CommandInjection.swift:126:35:126:35 | userControlledString | | CommandInjection.swift:123:75:123:75 | userControlledString | CommandInjection.swift:127:70:127:70 | userControlledString | -| CommandInjection.swift:126:23:126:55 | call to URL.init(string:) | CommandInjection.swift:126:23:126:55 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:126:23:126:55 | call to URL.init(string:) | CommandInjection.swift:126:23:126:56 | ...! | | CommandInjection.swift:126:23:126:55 | call to URL.init(string:) [some:0] | CommandInjection.swift:126:23:126:56 | ...! | -| CommandInjection.swift:126:35:126:35 | userControlledString | CommandInjection.swift:126:23:126:55 | call to URL.init(string:) | +| CommandInjection.swift:126:35:126:35 | userControlledString | CommandInjection.swift:126:23:126:55 | call to URL.init(string:) [some:0] | | CommandInjection.swift:127:70:127:70 | userControlledString | CommandInjection.swift:127:62:127:90 | [...] | nodes | CommandInjection.swift:38:22:38:33 | command | semmle.label | command | @@ -100,7 +96,6 @@ nodes | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:94:2:94:2 | [post] task3 | semmle.label | [post] task3 | | CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | semmle.label | [post] task3 [executableURL] | -| CommandInjection.swift:94:24:94:56 | call to URL.init(string:) | semmle.label | call to URL.init(string:) | | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | CommandInjection.swift:94:24:94:57 | ...! | semmle.label | ...! | | CommandInjection.swift:94:36:94:36 | userControlledString | semmle.label | userControlledString | @@ -129,7 +124,6 @@ nodes | CommandInjection.swift:122:42:122:42 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:123:67:123:95 | [...] | semmle.label | [...] | | CommandInjection.swift:123:75:123:75 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:126:23:126:55 | call to URL.init(string:) | semmle.label | call to URL.init(string:) | | CommandInjection.swift:126:23:126:55 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | CommandInjection.swift:126:23:126:56 | ...! | semmle.label | ...! | | CommandInjection.swift:126:35:126:35 | userControlledString | semmle.label | userControlledString | From 71771890a5ccb5823bd684041437f700d09534c5 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 4 Aug 2023 13:56:11 +0100 Subject: [PATCH 036/788] Swift: Add a test with NSUserScriptTask. --- .../CWE-078/CommandInjection.expected | 286 +++++++++--------- .../Security/CWE-078/CommandInjection.swift | 33 ++ 2 files changed, 176 insertions(+), 143 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index 9bdcc8101f8..e79dab71b3a 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -1,147 +1,147 @@ edges -| CommandInjection.swift:38:22:38:33 | command | CommandInjection.swift:42:16:42:16 | command | -| CommandInjection.swift:38:22:38:33 | command [some:0] | CommandInjection.swift:42:16:42:16 | command [some:0] | -| CommandInjection.swift:42:16:42:16 | command | CommandInjection.swift:42:16:42:16 | command [some:0] | -| CommandInjection.swift:49:8:49:12 | let ...? [some:0, some:0] | CommandInjection.swift:49:12:49:12 | userControlledString [some:0] | -| CommandInjection.swift:49:8:49:12 | let ...? [some:0] | CommandInjection.swift:49:12:49:12 | userControlledString | -| CommandInjection.swift:49:12:49:12 | userControlledString | CommandInjection.swift:55:27:55:27 | userControlledString | -| CommandInjection.swift:49:12:49:12 | userControlledString [some:0] | CommandInjection.swift:55:27:55:27 | userControlledString [some:0] | -| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | -| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | CommandInjection.swift:49:8:49:12 | let ...? [some:0, some:0] | -| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:49:8:49:12 | let ...? [some:0] | -| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | -| CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | CommandInjection.swift:55:2:55:2 | [post] task1 | -| CommandInjection.swift:55:20:55:47 | [...] | CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | -| CommandInjection.swift:55:27:55:27 | userControlledString | CommandInjection.swift:55:20:55:47 | [...] | -| CommandInjection.swift:55:27:55:27 | userControlledString | CommandInjection.swift:58:43:58:43 | userControlledString | -| CommandInjection.swift:55:27:55:27 | userControlledString [some:0] | CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | -| CommandInjection.swift:58:5:58:9 | let ...? [some:0] | CommandInjection.swift:58:9:58:9 | validatedString | -| CommandInjection.swift:58:9:58:9 | validatedString | CommandInjection.swift:61:31:61:31 | validatedString | -| CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | CommandInjection.swift:58:5:58:9 | let ...? [some:0] | -| CommandInjection.swift:58:43:58:43 | userControlledString | CommandInjection.swift:38:22:38:33 | command | -| CommandInjection.swift:58:43:58:43 | userControlledString | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | -| CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:38:22:38:33 | command [some:0] | -| CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | -| CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | CommandInjection.swift:61:6:61:6 | [post] task2 | -| CommandInjection.swift:61:24:61:46 | [...] | CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | -| CommandInjection.swift:61:31:61:31 | validatedString | CommandInjection.swift:61:24:61:46 | [...] | -| CommandInjection.swift:79:8:79:12 | let ...? [some:0] | CommandInjection.swift:79:12:79:12 | userControlledString | -| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:94:36:94:36 | userControlledString | -| CommandInjection.swift:79:12:79:12 | userControlledString | CommandInjection.swift:95:28:95:28 | userControlledString | -| CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | -| CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:79:8:79:12 | let ...? [some:0] | -| CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | CommandInjection.swift:94:2:94:2 | [post] task3 | -| CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:94:24:94:57 | ...! | -| CommandInjection.swift:94:24:94:57 | ...! | CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | -| CommandInjection.swift:94:36:94:36 | userControlledString | CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | CommandInjection.swift:95:2:95:2 | [post] task3 | -| CommandInjection.swift:95:20:95:48 | [...] | CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | -| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:95:20:95:48 | [...] | -| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:99:45:99:45 | userControlledString | -| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | -| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:104:46:104:46 | userControlledString | -| CommandInjection.swift:95:28:95:28 | userControlledString | CommandInjection.swift:105:22:105:22 | userControlledString | -| CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | CommandInjection.swift:99:2:99:2 | [post] task4 | -| CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | -| CommandInjection.swift:99:45:99:45 | userControlledString | CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | -| CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | CommandInjection.swift:100:2:100:2 | [post] task4 | -| CommandInjection.swift:100:20:100:56 | [...] | CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | -| CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | CommandInjection.swift:100:20:100:56 | [...] | -| CommandInjection.swift:104:2:104:7 | [post] ...? [executableURL] | CommandInjection.swift:104:2:104:7 | [post] ...? | -| CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:104:2:104:7 | [post] ...? [executableURL] | -| CommandInjection.swift:104:46:104:46 | userControlledString | CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | -| CommandInjection.swift:105:2:105:7 | [post] ...? [arguments] | CommandInjection.swift:105:2:105:7 | [post] ...? | -| CommandInjection.swift:105:21:105:42 | [...] | CommandInjection.swift:105:2:105:7 | [post] ...? [arguments] | -| CommandInjection.swift:105:22:105:22 | userControlledString | CommandInjection.swift:105:21:105:42 | [...] | -| CommandInjection.swift:105:22:105:22 | userControlledString | CommandInjection.swift:110:21:110:21 | userControlledString | -| CommandInjection.swift:110:21:110:21 | userControlledString | CommandInjection.swift:111:22:111:22 | userControlledString | -| CommandInjection.swift:111:22:111:22 | userControlledString | CommandInjection.swift:122:42:122:42 | userControlledString | -| CommandInjection.swift:111:22:111:22 | userControlledString | CommandInjection.swift:123:75:123:75 | userControlledString | -| CommandInjection.swift:123:75:123:75 | userControlledString | CommandInjection.swift:123:67:123:95 | [...] | -| CommandInjection.swift:123:75:123:75 | userControlledString | CommandInjection.swift:126:35:126:35 | userControlledString | -| CommandInjection.swift:123:75:123:75 | userControlledString | CommandInjection.swift:127:70:127:70 | userControlledString | -| CommandInjection.swift:126:23:126:55 | call to URL.init(string:) [some:0] | CommandInjection.swift:126:23:126:56 | ...! | -| CommandInjection.swift:126:35:126:35 | userControlledString | CommandInjection.swift:126:23:126:55 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:127:70:127:70 | userControlledString | CommandInjection.swift:127:62:127:90 | [...] | +| CommandInjection.swift:58:22:58:33 | command | CommandInjection.swift:62:16:62:16 | command | +| CommandInjection.swift:58:22:58:33 | command [some:0] | CommandInjection.swift:62:16:62:16 | command [some:0] | +| CommandInjection.swift:62:16:62:16 | command | CommandInjection.swift:62:16:62:16 | command [some:0] | +| CommandInjection.swift:69:8:69:12 | let ...? [some:0, some:0] | CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | +| CommandInjection.swift:69:8:69:12 | let ...? [some:0] | CommandInjection.swift:69:12:69:12 | userControlledString | +| CommandInjection.swift:69:12:69:12 | userControlledString | CommandInjection.swift:75:27:75:27 | userControlledString | +| CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | CommandInjection.swift:69:8:69:12 | let ...? [some:0, some:0] | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:69:8:69:12 | let ...? [some:0] | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | +| CommandInjection.swift:75:2:75:2 | [post] task1 [arguments] | CommandInjection.swift:75:2:75:2 | [post] task1 | +| CommandInjection.swift:75:20:75:47 | [...] | CommandInjection.swift:75:2:75:2 | [post] task1 [arguments] | +| CommandInjection.swift:75:27:75:27 | userControlledString | CommandInjection.swift:75:20:75:47 | [...] | +| CommandInjection.swift:75:27:75:27 | userControlledString | CommandInjection.swift:78:43:78:43 | userControlledString | +| CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | +| CommandInjection.swift:78:5:78:9 | let ...? [some:0] | CommandInjection.swift:78:9:78:9 | validatedString | +| CommandInjection.swift:78:9:78:9 | validatedString | CommandInjection.swift:81:31:81:31 | validatedString | +| CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | CommandInjection.swift:78:5:78:9 | let ...? [some:0] | +| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:58:22:58:33 | command | +| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:58:22:58:33 | command [some:0] | +| CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:81:6:81:6 | [post] task2 [arguments] | CommandInjection.swift:81:6:81:6 | [post] task2 | +| CommandInjection.swift:81:24:81:46 | [...] | CommandInjection.swift:81:6:81:6 | [post] task2 [arguments] | +| CommandInjection.swift:81:31:81:31 | validatedString | CommandInjection.swift:81:24:81:46 | [...] | +| CommandInjection.swift:99:8:99:12 | let ...? [some:0] | CommandInjection.swift:99:12:99:12 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:114:36:114:36 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:115:28:115:28 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:99:8:99:12 | let ...? [some:0] | +| CommandInjection.swift:114:2:114:2 | [post] task3 [executableURL] | CommandInjection.swift:114:2:114:2 | [post] task3 | +| CommandInjection.swift:114:24:114:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:114:24:114:57 | ...! | +| CommandInjection.swift:114:24:114:57 | ...! | CommandInjection.swift:114:2:114:2 | [post] task3 [executableURL] | +| CommandInjection.swift:114:36:114:36 | userControlledString | CommandInjection.swift:114:24:114:56 | call to URL.init(string:) [some:0] | +| CommandInjection.swift:115:2:115:2 | [post] task3 [arguments] | CommandInjection.swift:115:2:115:2 | [post] task3 | +| CommandInjection.swift:115:20:115:48 | [...] | CommandInjection.swift:115:2:115:2 | [post] task3 [arguments] | +| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:115:20:115:48 | [...] | +| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:119:45:119:45 | userControlledString | +| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:120:28:120:36 | ... .+(_:_:) ... | +| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:124:46:124:46 | userControlledString | +| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:125:22:125:22 | userControlledString | +| CommandInjection.swift:119:2:119:2 | [post] task4 [executableURL] | CommandInjection.swift:119:2:119:2 | [post] task4 | +| CommandInjection.swift:119:24:119:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:119:2:119:2 | [post] task4 [executableURL] | +| CommandInjection.swift:119:45:119:45 | userControlledString | CommandInjection.swift:119:24:119:65 | call to URL.init(fileURLWithPath:) | +| CommandInjection.swift:120:2:120:2 | [post] task4 [arguments] | CommandInjection.swift:120:2:120:2 | [post] task4 | +| CommandInjection.swift:120:20:120:56 | [...] | CommandInjection.swift:120:2:120:2 | [post] task4 [arguments] | +| CommandInjection.swift:120:28:120:36 | ... .+(_:_:) ... | CommandInjection.swift:120:20:120:56 | [...] | +| CommandInjection.swift:124:2:124:7 | [post] ...? [executableURL] | CommandInjection.swift:124:2:124:7 | [post] ...? | +| CommandInjection.swift:124:25:124:66 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:124:2:124:7 | [post] ...? [executableURL] | +| CommandInjection.swift:124:46:124:46 | userControlledString | CommandInjection.swift:124:25:124:66 | call to URL.init(fileURLWithPath:) | +| CommandInjection.swift:125:2:125:7 | [post] ...? [arguments] | CommandInjection.swift:125:2:125:7 | [post] ...? | +| CommandInjection.swift:125:21:125:42 | [...] | CommandInjection.swift:125:2:125:7 | [post] ...? [arguments] | +| CommandInjection.swift:125:22:125:22 | userControlledString | CommandInjection.swift:125:21:125:42 | [...] | +| CommandInjection.swift:125:22:125:22 | userControlledString | CommandInjection.swift:130:21:130:21 | userControlledString | +| CommandInjection.swift:130:21:130:21 | userControlledString | CommandInjection.swift:131:22:131:22 | userControlledString | +| CommandInjection.swift:131:22:131:22 | userControlledString | CommandInjection.swift:142:42:142:42 | userControlledString | +| CommandInjection.swift:131:22:131:22 | userControlledString | CommandInjection.swift:143:75:143:75 | userControlledString | +| CommandInjection.swift:143:75:143:75 | userControlledString | CommandInjection.swift:143:67:143:95 | [...] | +| CommandInjection.swift:143:75:143:75 | userControlledString | CommandInjection.swift:146:35:146:35 | userControlledString | +| CommandInjection.swift:143:75:143:75 | userControlledString | CommandInjection.swift:147:70:147:70 | userControlledString | +| CommandInjection.swift:146:23:146:55 | call to URL.init(string:) [some:0] | CommandInjection.swift:146:23:146:56 | ...! | +| CommandInjection.swift:146:35:146:35 | userControlledString | CommandInjection.swift:146:23:146:55 | call to URL.init(string:) [some:0] | +| CommandInjection.swift:147:70:147:70 | userControlledString | CommandInjection.swift:147:62:147:90 | [...] | nodes -| CommandInjection.swift:38:22:38:33 | command | semmle.label | command | -| CommandInjection.swift:38:22:38:33 | command [some:0] | semmle.label | command [some:0] | -| CommandInjection.swift:42:16:42:16 | command | semmle.label | command | -| CommandInjection.swift:42:16:42:16 | command [some:0] | semmle.label | command [some:0] | -| CommandInjection.swift:42:16:42:16 | command [some:0] | semmle.label | command [some:0] | -| CommandInjection.swift:49:8:49:12 | let ...? [some:0, some:0] | semmle.label | let ...? [some:0, some:0] | -| CommandInjection.swift:49:8:49:12 | let ...? [some:0] | semmle.label | let ...? [some:0] | -| CommandInjection.swift:49:12:49:12 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:49:12:49:12 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | -| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | -| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0, some:0] | semmle.label | call to String.init(contentsOf:) [some:0, some:0] | -| CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | -| CommandInjection.swift:55:2:55:2 | [post] task1 | semmle.label | [post] task1 | -| CommandInjection.swift:55:2:55:2 | [post] task1 [arguments] | semmle.label | [post] task1 [arguments] | -| CommandInjection.swift:55:20:55:47 | [...] | semmle.label | [...] | -| CommandInjection.swift:55:27:55:27 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:55:27:55:27 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | -| CommandInjection.swift:58:5:58:9 | let ...? [some:0] | semmle.label | let ...? [some:0] | -| CommandInjection.swift:58:9:58:9 | validatedString | semmle.label | validatedString | -| CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | semmle.label | call to validateCommand(_:) [some:0] | -| CommandInjection.swift:58:43:58:43 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | -| CommandInjection.swift:61:6:61:6 | [post] task2 | semmle.label | [post] task2 | -| CommandInjection.swift:61:6:61:6 | [post] task2 [arguments] | semmle.label | [post] task2 [arguments] | -| CommandInjection.swift:61:24:61:46 | [...] | semmle.label | [...] | -| CommandInjection.swift:61:31:61:31 | validatedString | semmle.label | validatedString | -| CommandInjection.swift:79:8:79:12 | let ...? [some:0] | semmle.label | let ...? [some:0] | -| CommandInjection.swift:79:12:79:12 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | -| CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | -| CommandInjection.swift:94:2:94:2 | [post] task3 | semmle.label | [post] task3 | -| CommandInjection.swift:94:2:94:2 | [post] task3 [executableURL] | semmle.label | [post] task3 [executableURL] | -| CommandInjection.swift:94:24:94:56 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | -| CommandInjection.swift:94:24:94:57 | ...! | semmle.label | ...! | -| CommandInjection.swift:94:36:94:36 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:95:2:95:2 | [post] task3 | semmle.label | [post] task3 | -| CommandInjection.swift:95:2:95:2 | [post] task3 [arguments] | semmle.label | [post] task3 [arguments] | -| CommandInjection.swift:95:20:95:48 | [...] | semmle.label | [...] | -| CommandInjection.swift:95:28:95:28 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:99:2:99:2 | [post] task4 | semmle.label | [post] task4 | -| CommandInjection.swift:99:2:99:2 | [post] task4 [executableURL] | semmle.label | [post] task4 [executableURL] | -| CommandInjection.swift:99:24:99:65 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | -| CommandInjection.swift:99:45:99:45 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:100:2:100:2 | [post] task4 | semmle.label | [post] task4 | -| CommandInjection.swift:100:2:100:2 | [post] task4 [arguments] | semmle.label | [post] task4 [arguments] | -| CommandInjection.swift:100:20:100:56 | [...] | semmle.label | [...] | -| CommandInjection.swift:100:28:100:36 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | -| CommandInjection.swift:104:2:104:7 | [post] ...? | semmle.label | [post] ...? | -| CommandInjection.swift:104:2:104:7 | [post] ...? [executableURL] | semmle.label | [post] ...? [executableURL] | -| CommandInjection.swift:104:25:104:66 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | -| CommandInjection.swift:104:46:104:46 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:105:2:105:7 | [post] ...? | semmle.label | [post] ...? | -| CommandInjection.swift:105:2:105:7 | [post] ...? [arguments] | semmle.label | [post] ...? [arguments] | -| CommandInjection.swift:105:21:105:42 | [...] | semmle.label | [...] | -| CommandInjection.swift:105:22:105:22 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:110:21:110:21 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:111:22:111:22 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:122:42:122:42 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:123:67:123:95 | [...] | semmle.label | [...] | -| CommandInjection.swift:123:75:123:75 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:126:23:126:55 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | -| CommandInjection.swift:126:23:126:56 | ...! | semmle.label | ...! | -| CommandInjection.swift:126:35:126:35 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:127:62:127:90 | [...] | semmle.label | [...] | -| CommandInjection.swift:127:70:127:70 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:58:22:58:33 | command | semmle.label | command | +| CommandInjection.swift:58:22:58:33 | command [some:0] | semmle.label | command [some:0] | +| CommandInjection.swift:62:16:62:16 | command | semmle.label | command | +| CommandInjection.swift:62:16:62:16 | command [some:0] | semmle.label | command [some:0] | +| CommandInjection.swift:62:16:62:16 | command [some:0] | semmle.label | command [some:0] | +| CommandInjection.swift:69:8:69:12 | let ...? [some:0, some:0] | semmle.label | let ...? [some:0, some:0] | +| CommandInjection.swift:69:8:69:12 | let ...? [some:0] | semmle.label | let ...? [some:0] | +| CommandInjection.swift:69:12:69:12 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | semmle.label | call to String.init(contentsOf:) [some:0, some:0] | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:75:2:75:2 | [post] task1 | semmle.label | [post] task1 | +| CommandInjection.swift:75:2:75:2 | [post] task1 [arguments] | semmle.label | [post] task1 [arguments] | +| CommandInjection.swift:75:20:75:47 | [...] | semmle.label | [...] | +| CommandInjection.swift:75:27:75:27 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | +| CommandInjection.swift:78:5:78:9 | let ...? [some:0] | semmle.label | let ...? [some:0] | +| CommandInjection.swift:78:9:78:9 | validatedString | semmle.label | validatedString | +| CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | semmle.label | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:78:43:78:43 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | +| CommandInjection.swift:81:6:81:6 | [post] task2 | semmle.label | [post] task2 | +| CommandInjection.swift:81:6:81:6 | [post] task2 [arguments] | semmle.label | [post] task2 [arguments] | +| CommandInjection.swift:81:24:81:46 | [...] | semmle.label | [...] | +| CommandInjection.swift:81:31:81:31 | validatedString | semmle.label | validatedString | +| CommandInjection.swift:99:8:99:12 | let ...? [some:0] | semmle.label | let ...? [some:0] | +| CommandInjection.swift:99:12:99:12 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:114:2:114:2 | [post] task3 | semmle.label | [post] task3 | +| CommandInjection.swift:114:2:114:2 | [post] task3 [executableURL] | semmle.label | [post] task3 [executableURL] | +| CommandInjection.swift:114:24:114:56 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | +| CommandInjection.swift:114:24:114:57 | ...! | semmle.label | ...! | +| CommandInjection.swift:114:36:114:36 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:115:2:115:2 | [post] task3 | semmle.label | [post] task3 | +| CommandInjection.swift:115:2:115:2 | [post] task3 [arguments] | semmle.label | [post] task3 [arguments] | +| CommandInjection.swift:115:20:115:48 | [...] | semmle.label | [...] | +| CommandInjection.swift:115:28:115:28 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:119:2:119:2 | [post] task4 | semmle.label | [post] task4 | +| CommandInjection.swift:119:2:119:2 | [post] task4 [executableURL] | semmle.label | [post] task4 [executableURL] | +| CommandInjection.swift:119:24:119:65 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | +| CommandInjection.swift:119:45:119:45 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:120:2:120:2 | [post] task4 | semmle.label | [post] task4 | +| CommandInjection.swift:120:2:120:2 | [post] task4 [arguments] | semmle.label | [post] task4 [arguments] | +| CommandInjection.swift:120:20:120:56 | [...] | semmle.label | [...] | +| CommandInjection.swift:120:28:120:36 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | +| CommandInjection.swift:124:2:124:7 | [post] ...? | semmle.label | [post] ...? | +| CommandInjection.swift:124:2:124:7 | [post] ...? [executableURL] | semmle.label | [post] ...? [executableURL] | +| CommandInjection.swift:124:25:124:66 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | +| CommandInjection.swift:124:46:124:46 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:125:2:125:7 | [post] ...? | semmle.label | [post] ...? | +| CommandInjection.swift:125:2:125:7 | [post] ...? [arguments] | semmle.label | [post] ...? [arguments] | +| CommandInjection.swift:125:21:125:42 | [...] | semmle.label | [...] | +| CommandInjection.swift:125:22:125:22 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:130:21:130:21 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:131:22:131:22 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:142:42:142:42 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:143:67:143:95 | [...] | semmle.label | [...] | +| CommandInjection.swift:143:75:143:75 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:146:23:146:55 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | +| CommandInjection.swift:146:23:146:56 | ...! | semmle.label | ...! | +| CommandInjection.swift:146:35:146:35 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:147:62:147:90 | [...] | semmle.label | [...] | +| CommandInjection.swift:147:70:147:70 | userControlledString | semmle.label | userControlledString | subpaths -| CommandInjection.swift:58:43:58:43 | userControlledString | CommandInjection.swift:38:22:38:33 | command | CommandInjection.swift:42:16:42:16 | command [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | -| CommandInjection.swift:58:43:58:43 | userControlledString [some:0] | CommandInjection.swift:38:22:38:33 | command [some:0] | CommandInjection.swift:42:16:42:16 | command [some:0] | CommandInjection.swift:58:27:58:63 | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:58:22:58:33 | command | CommandInjection.swift:62:16:62:16 | command [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | +| CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:58:22:58:33 | command [some:0] | CommandInjection.swift:62:16:62:16 | command [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | #select -| CommandInjection.swift:55:2:55:2 | [post] task1 | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:55:2:55:2 | [post] task1 | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:61:6:61:6 | [post] task2 | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | CommandInjection.swift:61:6:61:6 | [post] task2 | This command depends on a $@. | CommandInjection.swift:49:40:49:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:94:2:94:2 | [post] task3 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:94:2:94:2 | [post] task3 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:95:2:95:2 | [post] task3 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:95:2:95:2 | [post] task3 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:99:2:99:2 | [post] task4 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:99:2:99:2 | [post] task4 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:100:2:100:2 | [post] task4 | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:100:2:100:2 | [post] task4 | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:104:2:104:7 | [post] ...? | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:104:2:104:7 | [post] ...? | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:105:2:105:7 | [post] ...? | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:105:2:105:7 | [post] ...? | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:122:42:122:42 | userControlledString | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:122:42:122:42 | userControlledString | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:123:67:123:95 | [...] | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:123:67:123:95 | [...] | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:126:23:126:56 | ...! | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:126:23:126:56 | ...! | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | -| CommandInjection.swift:127:62:127:90 | [...] | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | CommandInjection.swift:127:62:127:90 | [...] | This command depends on a $@. | CommandInjection.swift:79:40:79:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:75:2:75:2 | [post] task1 | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:75:2:75:2 | [post] task1 | This command depends on a $@. | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:81:6:81:6 | [post] task2 | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:81:6:81:6 | [post] task2 | This command depends on a $@. | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:114:2:114:2 | [post] task3 | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:114:2:114:2 | [post] task3 | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:115:2:115:2 | [post] task3 | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:115:2:115:2 | [post] task3 | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:119:2:119:2 | [post] task4 | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:119:2:119:2 | [post] task4 | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:120:2:120:2 | [post] task4 | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:120:2:120:2 | [post] task4 | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:124:2:124:7 | [post] ...? | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:124:2:124:7 | [post] ...? | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:125:2:125:7 | [post] ...? | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:125:2:125:7 | [post] ...? | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:142:42:142:42 | userControlledString | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:142:42:142:42 | userControlledString | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:143:67:143:95 | [...] | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:143:67:143:95 | [...] | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:146:23:146:56 | ...! | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:146:23:146:56 | ...! | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:147:62:147:90 | [...] | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:147:62:147:90 | [...] | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift index 73f7872e3e4..0ce7c423034 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift @@ -33,6 +33,26 @@ extension String { } } +class NSUserScriptTask : NSObject { + typealias CompletionHandler = @Sendable (Error?) -> Void + + init(url: URL) throws {} + func execute(completionHandler handler: NSUserScriptTask.CompletionHandler? = nil) { } +} + +class NSUserUnixTask : NSUserScriptTask { + func execute(withArguments arguments: [String]?, completionHandler handler: NSUserScriptTask.CompletionHandler? = nil) { } +} + +protocol NSSecureCoding { +} + +class NSUserAutomatorTask : NSUserScriptTask { + func execute(withInput input: NSSecureCoding?, completionHandler handler: NSUserScriptTask.CompletionHandler? = nil) { } + + var variables: [String: Any]? { get { return nil } set { } } +} + // --- tests --- func validateCommand(_ command: String) -> String? { @@ -125,4 +145,17 @@ func testCommandInjectionMore(mySafeString: String) { _ = try? Process.run(URL(string: mySafeString)!, arguments: ["abc", mySafeString]) // GOOD _ = try? Process.run(URL(string: userControlledString)!, arguments: ["abc", mySafeString]) // BAD _ = try? Process.run(URL(string: mySafeString)!, arguments: ["abc", userControlledString]) // BAD + + let task8 = try! NSUserScriptTask(url: URL(string: mySafeString)!) // GOOD + task8.execute() + + let task9 = try! NSUserScriptTask(url: URL(string: userControlledString)!) // BAD [NOT DETECTED] + task9.execute() + + let task10 = try! NSUserUnixTask(url: URL(string: userControlledString)!) // BAD [NOT DETECTED] + task10.execute(withArguments: [userControlledString]) // BAD [NOT DETECTED] + + let task11 = try! NSUserAutomatorTask(url: URL(string: userControlledString)!) // BAD [NOT DETECTED] + task11.variables = ["abc": userControlledString] // BAD [NOT DETECTED] + task11.execute(withInput: nil) } From 416b731870672f0ffc1358fec6fe48df6e2fff2f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 4 Aug 2023 14:26:00 +0100 Subject: [PATCH 037/788] Swift: Model NSUserScriptTask sinks. --- .../security/CommandInjectionExtensions.qll | 2 + .../CWE-078/CommandInjection.expected | 40 +++++++++++++++++++ .../Security/CWE-078/CommandInjection.swift | 8 ++-- 3 files changed, 46 insertions(+), 4 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll index a0672bdb187..5b1cc065ec2 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll @@ -64,6 +64,8 @@ private class CommandInjectionSinks extends SinkModelCsv { ";Process;true;standardOutput;;;PostUpdate;command-injection", ";Process;true;currentDirectoryPath;;;PostUpdate;command-injection", ";Process;true;launchPath;;;PostUpdate;command-injection", + ";NSUserScriptTask;true;init(url:);;;Argument[0];command-injection", + ";NSUserUnixTask;true;execute(withArguments:completionHandler:);;;Argument[0];command-injection", ] } } diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index e79dab71b3a..8c9bfed2078 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -63,6 +63,23 @@ edges | CommandInjection.swift:146:23:146:55 | call to URL.init(string:) [some:0] | CommandInjection.swift:146:23:146:56 | ...! | | CommandInjection.swift:146:35:146:35 | userControlledString | CommandInjection.swift:146:23:146:55 | call to URL.init(string:) [some:0] | | CommandInjection.swift:147:70:147:70 | userControlledString | CommandInjection.swift:147:62:147:90 | [...] | +| CommandInjection.swift:147:70:147:70 | userControlledString | CommandInjection.swift:152:53:152:53 | userControlledString | +| CommandInjection.swift:147:70:147:70 | userControlledString | CommandInjection.swift:155:52:155:52 | userControlledString | +| CommandInjection.swift:147:70:147:70 | userControlledString | CommandInjection.swift:156:33:156:33 | userControlledString | +| CommandInjection.swift:152:41:152:73 | call to URL.init(string:) [some:0] | CommandInjection.swift:152:41:152:74 | ...! | +| CommandInjection.swift:152:53:152:53 | userControlledString | CommandInjection.swift:152:41:152:73 | call to URL.init(string:) [some:0] | +| CommandInjection.swift:155:40:155:72 | call to URL.init(string:) [some:0] | CommandInjection.swift:155:40:155:73 | ...! | +| CommandInjection.swift:155:40:155:72 | call to URL.init(string:) [some:0] | CommandInjection.swift:155:40:155:73 | ...! | +| CommandInjection.swift:155:40:155:73 | ...! | file://:0:0:0:0 | url | +| CommandInjection.swift:155:52:155:52 | userControlledString | CommandInjection.swift:155:40:155:72 | call to URL.init(string:) [some:0] | +| CommandInjection.swift:156:33:156:33 | userControlledString | CommandInjection.swift:156:32:156:53 | [...] | +| CommandInjection.swift:156:33:156:33 | userControlledString | CommandInjection.swift:158:57:158:57 | userControlledString | +| CommandInjection.swift:158:45:158:77 | call to URL.init(string:) [some:0] | CommandInjection.swift:158:45:158:78 | ...! | +| CommandInjection.swift:158:45:158:77 | call to URL.init(string:) [some:0] | CommandInjection.swift:158:45:158:78 | ...! | +| CommandInjection.swift:158:45:158:78 | ...! | file://:0:0:0:0 | url | +| CommandInjection.swift:158:57:158:57 | userControlledString | CommandInjection.swift:158:45:158:77 | call to URL.init(string:) [some:0] | +| file://:0:0:0:0 | url | file://:0:0:0:0 | url | +| file://:0:0:0:0 | url | file://:0:0:0:0 | url | nodes | CommandInjection.swift:58:22:58:33 | command | semmle.label | command | | CommandInjection.swift:58:22:58:33 | command [some:0] | semmle.label | command [some:0] | @@ -129,6 +146,23 @@ nodes | CommandInjection.swift:146:35:146:35 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:147:62:147:90 | [...] | semmle.label | [...] | | CommandInjection.swift:147:70:147:70 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:152:41:152:73 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | +| CommandInjection.swift:152:41:152:74 | ...! | semmle.label | ...! | +| CommandInjection.swift:152:53:152:53 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:155:40:155:72 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | +| CommandInjection.swift:155:40:155:73 | ...! | semmle.label | ...! | +| CommandInjection.swift:155:40:155:73 | ...! | semmle.label | ...! | +| CommandInjection.swift:155:52:155:52 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:156:32:156:53 | [...] | semmle.label | [...] | +| CommandInjection.swift:156:33:156:33 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:158:45:158:77 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | +| CommandInjection.swift:158:45:158:78 | ...! | semmle.label | ...! | +| CommandInjection.swift:158:45:158:78 | ...! | semmle.label | ...! | +| CommandInjection.swift:158:57:158:57 | userControlledString | semmle.label | userControlledString | +| file://:0:0:0:0 | url | semmle.label | url | +| file://:0:0:0:0 | url | semmle.label | url | +| file://:0:0:0:0 | url | semmle.label | url | +| file://:0:0:0:0 | url | semmle.label | url | subpaths | CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:58:22:58:33 | command | CommandInjection.swift:62:16:62:16 | command [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:58:22:58:33 | command [some:0] | CommandInjection.swift:62:16:62:16 | command [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | @@ -145,3 +179,9 @@ subpaths | CommandInjection.swift:143:67:143:95 | [...] | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:143:67:143:95 | [...] | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:146:23:146:56 | ...! | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:146:23:146:56 | ...! | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:147:62:147:90 | [...] | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:147:62:147:90 | [...] | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:152:41:152:74 | ...! | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:152:41:152:74 | ...! | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:155:40:155:73 | ...! | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:155:40:155:73 | ...! | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:156:32:156:53 | [...] | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:156:32:156:53 | [...] | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:158:45:158:78 | ...! | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:158:45:158:78 | ...! | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| file://:0:0:0:0 | url | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | file://:0:0:0:0 | url | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| file://:0:0:0:0 | url | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | file://:0:0:0:0 | url | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift index 0ce7c423034..9c7827fe009 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift @@ -149,13 +149,13 @@ func testCommandInjectionMore(mySafeString: String) { let task8 = try! NSUserScriptTask(url: URL(string: mySafeString)!) // GOOD task8.execute() - let task9 = try! NSUserScriptTask(url: URL(string: userControlledString)!) // BAD [NOT DETECTED] + let task9 = try! NSUserScriptTask(url: URL(string: userControlledString)!) // BAD task9.execute() - let task10 = try! NSUserUnixTask(url: URL(string: userControlledString)!) // BAD [NOT DETECTED] - task10.execute(withArguments: [userControlledString]) // BAD [NOT DETECTED] + let task10 = try! NSUserUnixTask(url: URL(string: userControlledString)!) // BAD + task10.execute(withArguments: [userControlledString]) // BAD - let task11 = try! NSUserAutomatorTask(url: URL(string: userControlledString)!) // BAD [NOT DETECTED] + let task11 = try! NSUserAutomatorTask(url: URL(string: userControlledString)!) // BAD task11.variables = ["abc": userControlledString] // BAD [NOT DETECTED] task11.execute(withInput: nil) } From 6631e838cfa07d4911b207150f2c943cfb1de1a1 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Mon, 7 Aug 2023 09:57:52 +0200 Subject: [PATCH 038/788] re-appearing -> reappearing Co-authored-by: Matt Pollard --- .../Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp index 0e0b25b5f6c..63f28578ec1 100644 --- a/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp +++ b/javascript/ql/src/Security/CWE-116/IncompleteMultiCharacterSanitization.qhelp @@ -8,7 +8,7 @@ Sanitizing untrusted input is a common technique for preventing injection attacks and other security vulnerabilities. Regular expressions are often used to perform this sanitization. However, when the regular expression matches multiple consecutive characters, replacing it just once -can result in the unsafe text re-appearing in the sanitized input. +can result in the unsafe text reappearing in the sanitized input.

    Attackers can exploit this issue by crafting inputs that, when sanitized with an ineffective regular From 4c8accd5ba24f00d4133221f20a62e6098dd6b08 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 4 Aug 2023 17:13:24 +0100 Subject: [PATCH 039/788] Swift: Add a few more test cases. --- .../CWE-078/CommandInjection.expected | 85 +++++++++++++++++++ .../Security/CWE-078/CommandInjection.swift | 37 ++++++++ 2 files changed, 122 insertions(+) diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index 8c9bfed2078..a015cb69b64 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -78,6 +78,45 @@ edges | CommandInjection.swift:158:45:158:77 | call to URL.init(string:) [some:0] | CommandInjection.swift:158:45:158:78 | ...! | | CommandInjection.swift:158:45:158:78 | ...! | file://:0:0:0:0 | url | | CommandInjection.swift:158:57:158:57 | userControlledString | CommandInjection.swift:158:45:158:77 | call to URL.init(string:) [some:0] | +| CommandInjection.swift:172:3:172:3 | newValue | CommandInjection.swift:173:19:173:19 | newValue | +| CommandInjection.swift:172:3:172:3 | newValue | CommandInjection.swift:174:20:174:20 | newValue | +| CommandInjection.swift:172:3:172:3 | newValue | CommandInjection.swift:175:19:175:19 | newValue | +| CommandInjection.swift:173:4:173:4 | [post] getter for .p1 [arguments] | CommandInjection.swift:173:4:173:4 | [post] getter for .p1 | +| CommandInjection.swift:173:19:173:19 | newValue | CommandInjection.swift:173:4:173:4 | [post] getter for .p1 [arguments] | +| CommandInjection.swift:174:4:174:6 | [post] ...! [arguments] | CommandInjection.swift:174:4:174:6 | [post] ...! | +| CommandInjection.swift:174:20:174:20 | newValue | CommandInjection.swift:174:4:174:6 | [post] ...! [arguments] | +| CommandInjection.swift:175:4:175:4 | [post] ...! [arguments] | CommandInjection.swift:175:4:175:4 | [post] ...! | +| CommandInjection.swift:175:19:175:19 | newValue | CommandInjection.swift:175:4:175:4 | [post] ...! [arguments] | +| CommandInjection.swift:180:9:180:13 | let ...? [some:0] | CommandInjection.swift:180:13:180:13 | userControlledString | +| CommandInjection.swift:180:13:180:13 | userControlledString | CommandInjection.swift:184:19:184:19 | userControlledString | +| CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:180:9:180:13 | let ...? [some:0] | +| CommandInjection.swift:184:18:184:39 | [...] | CommandInjection.swift:186:18:186:18 | tainted1 | +| CommandInjection.swift:184:18:184:39 | [...] | CommandInjection.swift:187:19:187:19 | tainted1 | +| CommandInjection.swift:184:18:184:39 | [...] | CommandInjection.swift:188:18:188:18 | tainted1 | +| CommandInjection.swift:184:19:184:19 | userControlledString | CommandInjection.swift:184:18:184:39 | [...] | +| CommandInjection.swift:184:19:184:19 | userControlledString | CommandInjection.swift:190:31:190:31 | userControlledString | +| CommandInjection.swift:186:3:186:3 | [post] getter for .p1 [arguments] | CommandInjection.swift:186:3:186:3 | [post] getter for .p1 | +| CommandInjection.swift:186:18:186:18 | tainted1 | CommandInjection.swift:186:3:186:3 | [post] getter for .p1 [arguments] | +| CommandInjection.swift:186:18:186:18 | tainted1 | CommandInjection.swift:187:19:187:19 | tainted1 | +| CommandInjection.swift:186:18:186:18 | tainted1 | CommandInjection.swift:188:18:188:18 | tainted1 | +| CommandInjection.swift:187:3:187:5 | [post] ...! [arguments] | CommandInjection.swift:187:3:187:5 | [post] ...! | +| CommandInjection.swift:187:19:187:19 | tainted1 | CommandInjection.swift:187:3:187:5 | [post] ...! [arguments] | +| CommandInjection.swift:187:19:187:19 | tainted1 | CommandInjection.swift:188:18:188:18 | tainted1 | +| CommandInjection.swift:188:3:188:3 | [post] ...! [arguments] | CommandInjection.swift:188:3:188:3 | [post] ...! | +| CommandInjection.swift:188:18:188:18 | tainted1 | CommandInjection.swift:188:3:188:3 | [post] ...! [arguments] | +| CommandInjection.swift:190:30:190:51 | [...] | CommandInjection.swift:192:18:192:18 | tainted2 | +| CommandInjection.swift:190:30:190:51 | [...] | CommandInjection.swift:193:19:193:19 | tainted2 | +| CommandInjection.swift:190:30:190:51 | [...] | CommandInjection.swift:194:18:194:18 | tainted2 | +| CommandInjection.swift:190:30:190:51 | [...] | CommandInjection.swift:196:13:196:13 | tainted2 | +| CommandInjection.swift:190:31:190:31 | userControlledString | CommandInjection.swift:190:30:190:51 | [...] | +| CommandInjection.swift:192:3:192:3 | [post] getter for .p1 [arguments] | CommandInjection.swift:192:3:192:3 | [post] getter for .p1 | +| CommandInjection.swift:192:18:192:18 | tainted2 | CommandInjection.swift:192:3:192:3 | [post] getter for .p1 [arguments] | +| CommandInjection.swift:193:3:193:5 | [post] ...! [arguments] | CommandInjection.swift:193:3:193:5 | [post] ...! | +| CommandInjection.swift:193:19:193:19 | tainted2 | CommandInjection.swift:193:3:193:5 | [post] ...! [arguments] | +| CommandInjection.swift:194:3:194:3 | [post] ...! [arguments] | CommandInjection.swift:194:3:194:3 | [post] ...! | +| CommandInjection.swift:194:18:194:18 | tainted2 | CommandInjection.swift:194:3:194:3 | [post] ...! [arguments] | +| CommandInjection.swift:196:13:196:13 | tainted2 | CommandInjection.swift:172:3:172:3 | newValue | | file://:0:0:0:0 | url | file://:0:0:0:0 | url | | file://:0:0:0:0 | url | file://:0:0:0:0 | url | nodes @@ -159,6 +198,43 @@ nodes | CommandInjection.swift:158:45:158:78 | ...! | semmle.label | ...! | | CommandInjection.swift:158:45:158:78 | ...! | semmle.label | ...! | | CommandInjection.swift:158:57:158:57 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:172:3:172:3 | newValue | semmle.label | newValue | +| CommandInjection.swift:173:4:173:4 | [post] getter for .p1 | semmle.label | [post] getter for .p1 | +| CommandInjection.swift:173:4:173:4 | [post] getter for .p1 [arguments] | semmle.label | [post] getter for .p1 [arguments] | +| CommandInjection.swift:173:19:173:19 | newValue | semmle.label | newValue | +| CommandInjection.swift:174:4:174:6 | [post] ...! | semmle.label | [post] ...! | +| CommandInjection.swift:174:4:174:6 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | +| CommandInjection.swift:174:20:174:20 | newValue | semmle.label | newValue | +| CommandInjection.swift:175:4:175:4 | [post] ...! | semmle.label | [post] ...! | +| CommandInjection.swift:175:4:175:4 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | +| CommandInjection.swift:175:19:175:19 | newValue | semmle.label | newValue | +| CommandInjection.swift:180:9:180:13 | let ...? [some:0] | semmle.label | let ...? [some:0] | +| CommandInjection.swift:180:13:180:13 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:184:18:184:39 | [...] | semmle.label | [...] | +| CommandInjection.swift:184:19:184:19 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:186:3:186:3 | [post] getter for .p1 | semmle.label | [post] getter for .p1 | +| CommandInjection.swift:186:3:186:3 | [post] getter for .p1 [arguments] | semmle.label | [post] getter for .p1 [arguments] | +| CommandInjection.swift:186:18:186:18 | tainted1 | semmle.label | tainted1 | +| CommandInjection.swift:187:3:187:5 | [post] ...! | semmle.label | [post] ...! | +| CommandInjection.swift:187:3:187:5 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | +| CommandInjection.swift:187:19:187:19 | tainted1 | semmle.label | tainted1 | +| CommandInjection.swift:188:3:188:3 | [post] ...! | semmle.label | [post] ...! | +| CommandInjection.swift:188:3:188:3 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | +| CommandInjection.swift:188:18:188:18 | tainted1 | semmle.label | tainted1 | +| CommandInjection.swift:190:30:190:51 | [...] | semmle.label | [...] | +| CommandInjection.swift:190:31:190:31 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:192:3:192:3 | [post] getter for .p1 | semmle.label | [post] getter for .p1 | +| CommandInjection.swift:192:3:192:3 | [post] getter for .p1 [arguments] | semmle.label | [post] getter for .p1 [arguments] | +| CommandInjection.swift:192:18:192:18 | tainted2 | semmle.label | tainted2 | +| CommandInjection.swift:193:3:193:5 | [post] ...! | semmle.label | [post] ...! | +| CommandInjection.swift:193:3:193:5 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | +| CommandInjection.swift:193:19:193:19 | tainted2 | semmle.label | tainted2 | +| CommandInjection.swift:194:3:194:3 | [post] ...! | semmle.label | [post] ...! | +| CommandInjection.swift:194:3:194:3 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | +| CommandInjection.swift:194:18:194:18 | tainted2 | semmle.label | tainted2 | +| CommandInjection.swift:196:13:196:13 | tainted2 | semmle.label | tainted2 | | file://:0:0:0:0 | url | semmle.label | url | | file://:0:0:0:0 | url | semmle.label | url | | file://:0:0:0:0 | url | semmle.label | url | @@ -183,5 +259,14 @@ subpaths | CommandInjection.swift:155:40:155:73 | ...! | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:155:40:155:73 | ...! | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:156:32:156:53 | [...] | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:156:32:156:53 | [...] | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | | CommandInjection.swift:158:45:158:78 | ...! | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:158:45:158:78 | ...! | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:173:4:173:4 | [post] getter for .p1 | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:173:4:173:4 | [post] getter for .p1 | This command depends on a $@. | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:174:4:174:6 | [post] ...! | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:174:4:174:6 | [post] ...! | This command depends on a $@. | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:175:4:175:4 | [post] ...! | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:175:4:175:4 | [post] ...! | This command depends on a $@. | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:186:3:186:3 | [post] getter for .p1 | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:186:3:186:3 | [post] getter for .p1 | This command depends on a $@. | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:187:3:187:5 | [post] ...! | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:187:3:187:5 | [post] ...! | This command depends on a $@. | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:188:3:188:3 | [post] ...! | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:188:3:188:3 | [post] ...! | This command depends on a $@. | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:192:3:192:3 | [post] getter for .p1 | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:192:3:192:3 | [post] getter for .p1 | This command depends on a $@. | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:193:3:193:5 | [post] ...! | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:193:3:193:5 | [post] ...! | This command depends on a $@. | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | user-provided value | +| CommandInjection.swift:194:3:194:3 | [post] ...! | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:194:3:194:3 | [post] ...! | This command depends on a $@. | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | user-provided value | | file://:0:0:0:0 | url | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | file://:0:0:0:0 | url | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | | file://:0:0:0:0 | url | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | file://:0:0:0:0 | url | This command depends on a $@. | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift index 9c7827fe009..c1facad1305 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.swift @@ -159,3 +159,40 @@ func testCommandInjectionMore(mySafeString: String) { task11.variables = ["abc": userControlledString] // BAD [NOT DETECTED] task11.execute(withInput: nil) } + +struct MyClass { + let p1 : Process + let p2 : Process? + let p3 : Process! + + var myValue: [String]? { + get { + return nil + } + set { + p1.arguments = newValue // BAD + p2!.arguments = newValue // BAD + p3.arguments = newValue // BAD + } + } + + mutating func myFunc() { + guard let userControlledString = try? String(contentsOf: URL(string: "http://example.com/")!) else { + return + } + + let tainted1 = [userControlledString] + + p1.arguments = tainted1 // BAD + p2!.arguments = tainted1 // BAD + p3.arguments = tainted1 // BAD + + let tainted2 : [String]? = [userControlledString] + + p1.arguments = tainted2 // BAD + p2!.arguments = tainted2 // BAD + p3.arguments = tainted2 // BAD + + myValue = tainted2 + } +} From a73354d0b3d29a59f1822b9bc789dff5662b3b5c Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 7 Aug 2023 20:14:07 +0100 Subject: [PATCH 040/788] Swift: Accept test failures. --- .../CWE-079/UnsafeWebViewFetch.expected | 50 +------------------ 1 file changed, 2 insertions(+), 48 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected index a4fc0d17312..fb06adf5fb0 100644 --- a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected +++ b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected @@ -17,27 +17,13 @@ edges | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:150:24:150:37 | .utf8 | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:132:52:132:52 | remoteURL | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:138:47:138:56 | ...! | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:139:48:139:57 | ...! | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:153:85:153:94 | ...! | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:154:86:154:95 | ...! | | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:138:47:138:47 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:139:48:139:48 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:153:85:153:85 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:154:86:154:86 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:131:30:131:30 | remoteString | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) | -| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) | UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | -| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) | UnsafeWebViewFetch.swift:140:47:140:57 | ...! | -| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) | UnsafeWebViewFetch.swift:141:48:141:58 | ...! | -| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:140:47:140:47 | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:141:48:141:48 | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:132:52:132:52 | remoteURL | UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) | +| UnsafeWebViewFetch.swift:131:30:131:30 | remoteString | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | | UnsafeWebViewFetch.swift:138:47:138:47 | remoteURL [some:0] | UnsafeWebViewFetch.swift:138:47:138:56 | ...! | | UnsafeWebViewFetch.swift:139:48:139:48 | remoteURL [some:0] | UnsafeWebViewFetch.swift:139:48:139:57 | ...! | -| UnsafeWebViewFetch.swift:140:47:140:47 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:140:47:140:57 | ...! | -| UnsafeWebViewFetch.swift:141:48:141:48 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:141:48:141:58 | ...! | | UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:152:15:152:15 | remoteData | | UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:154:15:154:15 | remoteData | | UnsafeWebViewFetch.swift:150:24:150:37 | .utf8 | UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | @@ -52,27 +38,13 @@ edges | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:197:24:197:37 | .utf8 | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:179:52:179:52 | remoteURL | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:185:47:185:56 | ...! | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:186:48:186:57 | ...! | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:200:90:200:99 | ...! | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) | UnsafeWebViewFetch.swift:201:91:201:100 | ...! | | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:185:47:185:47 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:186:48:186:48 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:200:90:200:90 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:201:91:201:91 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:178:30:178:30 | remoteString | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) | -| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) | UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | -| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) | UnsafeWebViewFetch.swift:187:47:187:57 | ...! | -| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) | UnsafeWebViewFetch.swift:188:48:188:58 | ...! | -| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:187:47:187:47 | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:188:48:188:48 | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:179:52:179:52 | remoteURL | UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) | +| UnsafeWebViewFetch.swift:178:30:178:30 | remoteString | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | | UnsafeWebViewFetch.swift:185:47:185:47 | remoteURL [some:0] | UnsafeWebViewFetch.swift:185:47:185:56 | ...! | | UnsafeWebViewFetch.swift:186:48:186:48 | remoteURL [some:0] | UnsafeWebViewFetch.swift:186:48:186:57 | ...! | -| UnsafeWebViewFetch.swift:187:47:187:47 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:187:47:187:57 | ...! | -| UnsafeWebViewFetch.swift:188:48:188:48 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:188:48:188:58 | ...! | | UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:199:15:199:15 | remoteData | | UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:201:15:201:15 | remoteData | | UnsafeWebViewFetch.swift:197:24:197:37 | .utf8 | UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | @@ -94,12 +66,8 @@ nodes | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:124:25:124:51 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | | UnsafeWebViewFetch.swift:127:25:127:25 | "..." | semmle.label | "..." | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) | semmle.label | call to URL.init(string:) | | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | UnsafeWebViewFetch.swift:131:30:131:30 | remoteString | semmle.label | remoteString | -| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) | semmle.label | call to URL.init(string:relativeTo:) | -| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | semmle.label | call to URL.init(string:relativeTo:) [some:0] | -| UnsafeWebViewFetch.swift:132:52:132:52 | remoteURL | semmle.label | remoteURL | | UnsafeWebViewFetch.swift:135:25:135:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:137:25:137:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:138:47:138:47 | remoteURL [some:0] | semmle.label | remoteURL [some:0] | @@ -107,11 +75,7 @@ nodes | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:139:48:139:48 | remoteURL [some:0] | semmle.label | remoteURL [some:0] | | UnsafeWebViewFetch.swift:139:48:139:57 | ...! | semmle.label | ...! | -| UnsafeWebViewFetch.swift:140:47:140:47 | remoteURL2 [some:0] | semmle.label | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:140:47:140:57 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | semmle.label | remoteString | -| UnsafeWebViewFetch.swift:141:48:141:48 | remoteURL2 [some:0] | semmle.label | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:141:48:141:58 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | UnsafeWebViewFetch.swift:150:24:150:37 | .utf8 | semmle.label | .utf8 | | UnsafeWebViewFetch.swift:152:15:152:15 | remoteData | semmle.label | remoteData | @@ -125,12 +89,8 @@ nodes | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:171:25:171:51 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | | UnsafeWebViewFetch.swift:174:25:174:25 | "..." | semmle.label | "..." | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) | semmle.label | call to URL.init(string:) | | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | UnsafeWebViewFetch.swift:178:30:178:30 | remoteString | semmle.label | remoteString | -| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) | semmle.label | call to URL.init(string:relativeTo:) | -| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | semmle.label | call to URL.init(string:relativeTo:) [some:0] | -| UnsafeWebViewFetch.swift:179:52:179:52 | remoteURL | semmle.label | remoteURL | | UnsafeWebViewFetch.swift:182:25:182:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:184:25:184:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:185:47:185:47 | remoteURL [some:0] | semmle.label | remoteURL [some:0] | @@ -138,11 +98,7 @@ nodes | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:186:48:186:48 | remoteURL [some:0] | semmle.label | remoteURL [some:0] | | UnsafeWebViewFetch.swift:186:48:186:57 | ...! | semmle.label | ...! | -| UnsafeWebViewFetch.swift:187:47:187:47 | remoteURL2 [some:0] | semmle.label | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:187:47:187:57 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | semmle.label | remoteString | -| UnsafeWebViewFetch.swift:188:48:188:48 | remoteURL2 [some:0] | semmle.label | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:188:48:188:58 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | UnsafeWebViewFetch.swift:197:24:197:37 | .utf8 | semmle.label | .utf8 | | UnsafeWebViewFetch.swift:199:15:199:15 | remoteData | semmle.label | remoteData | @@ -164,13 +120,11 @@ subpaths | UnsafeWebViewFetch.swift:124:25:124:51 | ... .+(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:124:25:124:51 | ... .+(_:_:) ... | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:127:25:127:25 | "..." | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:127:25:127:25 | "..." | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | Tainted data is used in a WebView fetch with a tainted base URL. | -| UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | Tainted data is used in a WebView fetch with a tainted base URL. | | UnsafeWebViewFetch.swift:154:15:154:15 | remoteData | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:154:15:154:15 | remoteData | Tainted data is used in a WebView fetch with a tainted base URL. | | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:171:25:171:51 | ... .+(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:171:25:171:51 | ... .+(_:_:) ... | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:174:25:174:25 | "..." | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:174:25:174:25 | "..." | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | Tainted data is used in a WebView fetch with a tainted base URL. | -| UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | Tainted data is used in a WebView fetch with a tainted base URL. | | UnsafeWebViewFetch.swift:201:15:201:15 | remoteData | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:201:15:201:15 | remoteData | Tainted data is used in a WebView fetch with a tainted base URL. | | UnsafeWebViewFetch.swift:210:25:210:25 | htmlData | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:210:25:210:25 | htmlData | Tainted data is used in a WebView fetch without restricting the base URL. | From b2d3d465f06958455979cf658ddd546e79875084 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 7 Aug 2023 15:25:36 +0100 Subject: [PATCH 041/788] Swift: Add more missing details to the URL model (along with a change from the SetContent PR, this fixes the test failures we were getting). --- .../swift/frameworks/StandardLibrary/Url.qll | 27 +++++++++++-------- .../CWE-079/UnsafeWebViewFetch.expected | 26 ++++++++++++++++++ 2 files changed, 42 insertions(+), 11 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll index d86c004b1b2..a24a394dd0f 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll @@ -86,28 +86,32 @@ private class UrlSummaries extends SummaryModelCsv { row = [ ";URL;true;init(string:);(String);;Argument[0];ReturnValue.OptionalSome;taint", - ";URL;true;init(string:relativeTo:);(String,URL?);;Argument[0..1];ReturnValue.OptionalSome;taint", + ";URL;true;init(string:relativeTo:);(String,URL?);;Argument[0];ReturnValue.OptionalSome;taint", + ";URL;true;init(string:relativeTo:);(String,URL?);;Argument[1].OptionalSome;ReturnValue.OptionalSome;taint", ";URL;true;init(fileURLWithPath:);;;Argument[0];ReturnValue;taint", ";URL;true;init(fileURLWithPath:isDirectory:);;;Argument[0];ReturnValue;taint", - ";URL;true;init(fileURLWithPath:relativeTo:);;;Argument[0..1];ReturnValue;taint", + ";URL;true;init(fileURLWithPath:relativeTo:);;;Argument[0];ReturnValue;taint", + ";URL;true;init(fileURLWithPath:relativeTo:);;;Argument[1].OptionalSome;ReturnValue;taint", ";URL;true;init(fileURLWithPath:isDirectory:relativeTo:);;;Argument[0];ReturnValue;taint", - ";URL;true;init(fileURLWithPath:isDirectory:relativeTo:);;;Argument[2];ReturnValue;taint", + ";URL;true;init(fileURLWithPath:isDirectory:relativeTo:);;;Argument[2].OptionalSome;ReturnValue;taint", ";URL;true;init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:);;;Argument[0];ReturnValue;taint", - ";URL;true;init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:);;;Argument[2];ReturnValue;taint", + ";URL;true;init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:);;;Argument[2].OptionalSome;ReturnValue;taint", ";URL;true;init(fileReferenceLiteralResourceName:);;;Argument[0];ReturnValue;taint", ";URL;true;init(_:);;;Argument[0];ReturnValue.OptionalSome;taint", ";URL;true;init(_:isDirectory:);;;Argument[0];ReturnValue.OptionalSome;taint", ";URL;true;init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:);;;Argument[0];ReturnValue;taint", - ";URL;true;init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:);;;Argument[2];ReturnValue;taint", + ";URL;true;init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:);;;Argument[2].OptionalSome;ReturnValue;taint", ";URL;true;init(resolvingAliasFileAt:options:);;;Argument[0];ReturnValue;taint", ";URL;true;init(resource:);;;Argument[0];ReturnValue;taint", - ";URL;true;init(dataRepresentation:relativeTo:isAbsolute:);;;Argument[0..1];ReturnValue;taint", + ";URL;true;init(dataRepresentation:relativeTo:isAbsolute:);;;Argument[0];ReturnValue;taint", + ";URL;true;init(dataRepresentation:relativeTo:isAbsolute:);;;Argument[1].OptionalSome;ReturnValue;taint", ";URL;true;init(_:strategy:);;;Argument[0];ReturnValue;taint", - ";URL;true;init(filePath:directoryHint:);;;Argument[0];ReturnValue;taint", + ";URL;true;init(filePath:directoryHint:);;;Argument[0];ReturnValue.OptionalSome;taint", ";URL;true;init(filePath:directoryHint:relativeTo:);;;Argument[0];ReturnValue;taint", - ";URL;true;init(filePath:directoryHint:relativeTo:);;;Argument[2];ReturnValue;taint", - ";URL;true;init(for:in:appropriateFor:create:);;;Argument[0..2];ReturnValue;taint", - ";URL;true;init(string:encodingInvalidCharacters:);;;Argument[0];ReturnValue;taint", + ";URL;true;init(filePath:directoryHint:relativeTo:);;;Argument[2].OptionalSome;ReturnValue;taint", + ";URL;true;init(for:in:appropriateFor:create:);;;Argument[0..1];ReturnValue;taint", + ";URL;true;init(for:in:appropriateFor:create:);;;Argument[2].OptionalSome;ReturnValue;taint", + ";URL;true;init(string:encodingInvalidCharacters:);;;Argument[0];ReturnValue.OptionalSome;taint", ";URL;true;resourceValues(forKeys:);;;Argument[-1];ReturnValue;taint", ";URL;true;setResourceValues(_:);;;Argument[0];Argument[-1];taint", ";URL;true;setTemporaryResourceValue(_:forKey:);;;Argument[-1..0];Argument[-1];taint", @@ -125,7 +129,8 @@ private class UrlSummaries extends SummaryModelCsv { ";URL;true;deletingLastPathComponent();;;Argument[-1];ReturnValue;taint", ";URL;true;deletingPathExtension();;;Argument[-1];ReturnValue;taint", ";URL;true;bookmarkData(options:includingResourceValuesForKeys:relativeTo:);;;Argument[-1];ReturnValue;taint", - ";URL;true;bookmarkData(options:includingResourceValuesForKeys:relativeTo:);;;Argument[1..2];ReturnValue;taint", + ";URL;true;bookmarkData(options:includingResourceValuesForKeys:relativeTo:);;;Argument[1].OptionalSome.CollectionElement;ReturnValue;taint", + ";URL;true;bookmarkData(options:includingResourceValuesForKeys:relativeTo:);;;Argument[2].OptionalSome;ReturnValue;taint", ";URL;true;bookmarkData(withContentsOf:);;;Argument[0];ReturnValue;taint", ";URL;true;resourceValues(forKeys:fromBookmarkData:);;;Argument[1];ReturnValue;taint", ";URL;true;promisedItemResourceValues(forKeys:);;;Argument[-1];ReturnValue;taint", diff --git a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected index fb06adf5fb0..66356d31349 100644 --- a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected +++ b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected @@ -17,13 +17,19 @@ edges | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:150:24:150:37 | .utf8 | +| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:132:52:132:52 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:138:47:138:47 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:139:48:139:48 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:153:85:153:85 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:154:86:154:86 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:131:30:131:30 | remoteString | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | +| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:140:47:140:47 | remoteURL2 [some:0] | +| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:141:48:141:48 | remoteURL2 [some:0] | +| UnsafeWebViewFetch.swift:132:52:132:52 | remoteURL [some:0] | UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | | UnsafeWebViewFetch.swift:138:47:138:47 | remoteURL [some:0] | UnsafeWebViewFetch.swift:138:47:138:56 | ...! | | UnsafeWebViewFetch.swift:139:48:139:48 | remoteURL [some:0] | UnsafeWebViewFetch.swift:139:48:139:57 | ...! | +| UnsafeWebViewFetch.swift:140:47:140:47 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:140:47:140:57 | ...! | +| UnsafeWebViewFetch.swift:141:48:141:48 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:141:48:141:58 | ...! | | UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:152:15:152:15 | remoteData | | UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:154:15:154:15 | remoteData | | UnsafeWebViewFetch.swift:150:24:150:37 | .utf8 | UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | @@ -38,13 +44,19 @@ edges | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:197:24:197:37 | .utf8 | +| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:179:52:179:52 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:185:47:185:47 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:186:48:186:48 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:200:90:200:90 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:201:91:201:91 | remoteURL [some:0] | | UnsafeWebViewFetch.swift:178:30:178:30 | remoteString | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | +| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:187:47:187:47 | remoteURL2 [some:0] | +| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:188:48:188:48 | remoteURL2 [some:0] | +| UnsafeWebViewFetch.swift:179:52:179:52 | remoteURL [some:0] | UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | | UnsafeWebViewFetch.swift:185:47:185:47 | remoteURL [some:0] | UnsafeWebViewFetch.swift:185:47:185:56 | ...! | | UnsafeWebViewFetch.swift:186:48:186:48 | remoteURL [some:0] | UnsafeWebViewFetch.swift:186:48:186:57 | ...! | +| UnsafeWebViewFetch.swift:187:47:187:47 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:187:47:187:57 | ...! | +| UnsafeWebViewFetch.swift:188:48:188:48 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:188:48:188:58 | ...! | | UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:199:15:199:15 | remoteData | | UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:201:15:201:15 | remoteData | | UnsafeWebViewFetch.swift:197:24:197:37 | .utf8 | UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | @@ -68,6 +80,8 @@ nodes | UnsafeWebViewFetch.swift:127:25:127:25 | "..." | semmle.label | "..." | | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | UnsafeWebViewFetch.swift:131:30:131:30 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | semmle.label | call to URL.init(string:relativeTo:) [some:0] | +| UnsafeWebViewFetch.swift:132:52:132:52 | remoteURL [some:0] | semmle.label | remoteURL [some:0] | | UnsafeWebViewFetch.swift:135:25:135:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:137:25:137:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:138:47:138:47 | remoteURL [some:0] | semmle.label | remoteURL [some:0] | @@ -75,7 +89,11 @@ nodes | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:139:48:139:48 | remoteURL [some:0] | semmle.label | remoteURL [some:0] | | UnsafeWebViewFetch.swift:139:48:139:57 | ...! | semmle.label | ...! | +| UnsafeWebViewFetch.swift:140:47:140:47 | remoteURL2 [some:0] | semmle.label | remoteURL2 [some:0] | +| UnsafeWebViewFetch.swift:140:47:140:57 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:141:48:141:48 | remoteURL2 [some:0] | semmle.label | remoteURL2 [some:0] | +| UnsafeWebViewFetch.swift:141:48:141:58 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | UnsafeWebViewFetch.swift:150:24:150:37 | .utf8 | semmle.label | .utf8 | | UnsafeWebViewFetch.swift:152:15:152:15 | remoteData | semmle.label | remoteData | @@ -91,6 +109,8 @@ nodes | UnsafeWebViewFetch.swift:174:25:174:25 | "..." | semmle.label | "..." | | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | UnsafeWebViewFetch.swift:178:30:178:30 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | semmle.label | call to URL.init(string:relativeTo:) [some:0] | +| UnsafeWebViewFetch.swift:179:52:179:52 | remoteURL [some:0] | semmle.label | remoteURL [some:0] | | UnsafeWebViewFetch.swift:182:25:182:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:184:25:184:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:185:47:185:47 | remoteURL [some:0] | semmle.label | remoteURL [some:0] | @@ -98,7 +118,11 @@ nodes | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:186:48:186:48 | remoteURL [some:0] | semmle.label | remoteURL [some:0] | | UnsafeWebViewFetch.swift:186:48:186:57 | ...! | semmle.label | ...! | +| UnsafeWebViewFetch.swift:187:47:187:47 | remoteURL2 [some:0] | semmle.label | remoteURL2 [some:0] | +| UnsafeWebViewFetch.swift:187:47:187:57 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:188:48:188:48 | remoteURL2 [some:0] | semmle.label | remoteURL2 [some:0] | +| UnsafeWebViewFetch.swift:188:48:188:58 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | UnsafeWebViewFetch.swift:197:24:197:37 | .utf8 | semmle.label | .utf8 | | UnsafeWebViewFetch.swift:199:15:199:15 | remoteData | semmle.label | remoteData | @@ -120,11 +144,13 @@ subpaths | UnsafeWebViewFetch.swift:124:25:124:51 | ... .+(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:124:25:124:51 | ... .+(_:_:) ... | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:127:25:127:25 | "..." | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:127:25:127:25 | "..." | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | Tainted data is used in a WebView fetch with a tainted base URL. | +| UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | Tainted data is used in a WebView fetch with a tainted base URL. | | UnsafeWebViewFetch.swift:154:15:154:15 | remoteData | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:154:15:154:15 | remoteData | Tainted data is used in a WebView fetch with a tainted base URL. | | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:171:25:171:51 | ... .+(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:171:25:171:51 | ... .+(_:_:) ... | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:174:25:174:25 | "..." | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:174:25:174:25 | "..." | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | Tainted data is used in a WebView fetch with a tainted base URL. | +| UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | Tainted data is used in a WebView fetch with a tainted base URL. | | UnsafeWebViewFetch.swift:201:15:201:15 | remoteData | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:201:15:201:15 | remoteData | Tainted data is used in a WebView fetch with a tainted base URL. | | UnsafeWebViewFetch.swift:210:25:210:25 | htmlData | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:210:25:210:25 | htmlData | Tainted data is used in a WebView fetch without restricting the base URL. | From 93dd9d0aa4d6a1d23599e93fe9e3f13e2c0d797d Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Tue, 8 Aug 2023 12:54:54 -0400 Subject: [PATCH 042/788] Update ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql Co-authored-by: Alex Ford --- ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index 253f78840fb..1893eb94ae5 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -54,11 +54,7 @@ class Configuration extends DataFlow::Configuration { // Holds if a given sink is an Equality Operation (== or !=) override predicate isSink(DataFlow::Node sink) { - exists(EqualityOperation eqOp | - eqOp.getLeftOperand() = sink.asExpr().getExpr() - or - eqOp.getRightOperand() = sink.asExpr().getExpr() - ) + any(EqualityOperation eqOp).getAnOperand() = sink.asExpr().getExpr() } } From 26401fec7076cb6556ec9e8a21df09eb493a3b6a Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Wed, 9 Aug 2023 18:44:42 +0000 Subject: [PATCH 043/788] address PR comments --- .../cwe-208/UnsafeHmacComparison.ql | 87 ++++++++----------- 1 file changed, 35 insertions(+), 52 deletions(-) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index 1893eb94ae5..8210eeb3c66 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -1,64 +1,47 @@ -private import codeql.ruby.AST -import codeql.ruby.AST -import codeql.ruby.DataFlow +/** + * @name Unsafe HMAC Comparison + * @description An HMAC is being compared using the equality operator. This may be vulnerable to a cryptographic timing attack + * because the equality operation does not occur in constant time." + + * @kind path-problem + * @problem.severity error + * @security-severity 6.0 + * @precision high + * @id rb/unsafe-hmac-comparison + * @tags security + * external/cwe/cwe-208 + */ + + +private import codeql.ruby.DataFlow import codeql.ruby.ApiGraphs -import codeql.ruby.dataflow.RemoteFlowSources -import codeql.ruby.TaintTracking import ruby -// A call to OpenSSL::HMAC.hexdigest -class OpenSslHmacHexdigest extends DataFlow::Node { - OpenSslHmacHexdigest() { - this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("hexdigest") +private class OpenSslHmacSource extends DataFlow::Node { + OpenSslHmacSource() { + exists(API::Node hmacNode | hmacNode = API::getTopLevelMember("OpenSSL").getMember("HMAC") | + this = hmacNode.getAMethodCall(["hexdigest", "to_s", "digest", "base64digest"]) + or + this = hmacNode.getAnInstantiation() + ) } } -// A call to OpenSSL::HMAC.to_s (which is an alias for OpenSSL::HMAC.hexdigest) -class OpenSslHmactos extends DataFlow::Node { - OpenSslHmactos() { - this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("to_s") - } -} - -// A call to OpenSSL::HMAC.digest -class OpenSslHmacdigest extends DataFlow::Node { - OpenSslHmacdigest() { - this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("digest") - } -} - -// A call to OpenSSL::HMAC.new -class OpenSslnewHmac extends DataFlow::Node { - OpenSslnewHmac() { - this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAnInstantiation() - } -} - -// A call to OpenSSL::HMAC.base64digest -class OpenSslHmacbase64digest extends DataFlow::Node { - OpenSslHmacbase64digest() { - this = API::getTopLevelMember("OpenSSL").getMember("HMAC").getAMethodCall("base64digest") - } -} - -class Configuration extends DataFlow::Configuration { - Configuration() { this = "UnsafeHmacComparison" } - - override predicate isSource(DataFlow::Node source) { - source instanceof OpenSslHmacHexdigest or - source instanceof OpenSslnewHmac or - source instanceof OpenSslHmacbase64digest or - source instanceof OpenSslHmacdigest or - source instanceof OpenSslHmactos - } +private module UnsafeHmacComparison { + private module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source instanceof OpenSslHmacSource + } // Holds if a given sink is an Equality Operation (== or !=) - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { any(EqualityOperation eqOp).getAnOperand() = sink.asExpr().getExpr() } + } + + import DataFlow::Global } -from DataFlow::Node source, DataFlow::Node sink, Configuration config -where config.hasFlow(source, sink) -select sink, - "An HMAC is being compared using the equality operator. This may be vulnerable to a cryptographic timing attack because the equality operation does not occur in constant time." +from UnsafeHmacComparison::PathNode source, UnsafeHmacComparison::PathNode sink +where UnsafeHmacComparison::flowPath(source, sink) +select sink.getNode(), source, sink, "This comparison is potentially vulnerable to a timing attack." \ No newline at end of file From 07d5beca343727db38486fb930d9d018d33f0693 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Wed, 9 Aug 2023 18:51:55 +0000 Subject: [PATCH 044/788] run format document --- .../cwe-208/UnsafeHmacComparison.ql | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index 8210eeb3c66..48f379ddcdc 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -2,7 +2,6 @@ * @name Unsafe HMAC Comparison * @description An HMAC is being compared using the equality operator. This may be vulnerable to a cryptographic timing attack * because the equality operation does not occur in constant time." - * @kind path-problem * @problem.severity error * @security-severity 6.0 @@ -12,7 +11,7 @@ * external/cwe/cwe-208 */ - +private import codeql.ruby.AST private import codeql.ruby.DataFlow import codeql.ruby.ApiGraphs import ruby @@ -29,14 +28,12 @@ private class OpenSslHmacSource extends DataFlow::Node { private module UnsafeHmacComparison { private module Config implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - source instanceof OpenSslHmacSource - } + predicate isSource(DataFlow::Node source) { source instanceof OpenSslHmacSource } - // Holds if a given sink is an Equality Operation (== or !=) - predicate isSink(DataFlow::Node sink) { - any(EqualityOperation eqOp).getAnOperand() = sink.asExpr().getExpr() - } + // Holds if a given sink is an Equality Operation (== or !=) + predicate isSink(DataFlow::Node sink) { + any(EqualityOperation eqOp).getAnOperand() = sink.asExpr().getExpr() + } } import DataFlow::Global @@ -44,4 +41,4 @@ private module UnsafeHmacComparison { from UnsafeHmacComparison::PathNode source, UnsafeHmacComparison::PathNode sink where UnsafeHmacComparison::flowPath(source, sink) -select sink.getNode(), source, sink, "This comparison is potentially vulnerable to a timing attack." \ No newline at end of file +select sink.getNode(), source, sink, "This comparison is potentially vulnerable to a timing attack." From cca4c35cf8326c84fba56ea74a46f578af7e36e9 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Wed, 9 Aug 2023 19:23:21 +0000 Subject: [PATCH 045/788] add pathgraph --- ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql | 1 + 1 file changed, 1 insertion(+) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index 48f379ddcdc..7dace03c671 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -13,6 +13,7 @@ private import codeql.ruby.AST private import codeql.ruby.DataFlow +import DataFlow::PathGraph import codeql.ruby.ApiGraphs import ruby From 74567041a74b3ff0331349a98b5472fbbd7be36c Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Wed, 9 Aug 2023 19:51:07 +0000 Subject: [PATCH 046/788] remove pathgraph --- ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql | 1 - 1 file changed, 1 deletion(-) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index 7dace03c671..48f379ddcdc 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -13,7 +13,6 @@ private import codeql.ruby.AST private import codeql.ruby.DataFlow -import DataFlow::PathGraph import codeql.ruby.ApiGraphs import ruby From e86ccf8498e7ff40e610da1dfe33c33e4676a985 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 9 Aug 2023 17:06:15 +0100 Subject: [PATCH 047/788] Swift: Test flow through various conversions. --- .../dataflow/taint/core/LocalTaint.expected | 79 ++++++++++++++ .../dataflow/taint/core/Taint.expected | 37 +++++++ .../dataflow/taint/core/conversions.swift | 101 ++++++++++++++++++ 3 files changed, 217 insertions(+) create mode 100644 swift/ql/test/library-tests/dataflow/taint/core/conversions.swift diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index b7408d1f57e..65fe7171c3f 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -1,3 +1,82 @@ +| conversions.swift:9:7:9:7 | SSA def(self) | conversions.swift:9:7:9:7 | self[return] | +| conversions.swift:9:7:9:7 | SSA def(self) | conversions.swift:9:7:9:7 | self[return] | +| conversions.swift:9:7:9:7 | self | conversions.swift:9:7:9:7 | SSA def(self) | +| conversions.swift:9:7:9:7 | self | conversions.swift:9:7:9:7 | SSA def(self) | +| conversions.swift:12:7:12:7 | SSA def(self) | conversions.swift:12:7:12:7 | self[return] | +| conversions.swift:12:7:12:7 | self | conversions.swift:12:7:12:7 | SSA def(self) | +| conversions.swift:12:36:12:36 | SSA def(self) | conversions.swift:12:36:12:36 | self[return] | +| conversions.swift:12:36:12:36 | self | conversions.swift:12:36:12:36 | SSA def(self) | +| conversions.swift:15:7:15:7 | SSA def(self) | conversions.swift:15:7:15:7 | self[return] | +| conversions.swift:15:7:15:7 | self | conversions.swift:15:7:15:7 | SSA def(self) | +| conversions.swift:16:11:16:11 | SSA def(self) | conversions.swift:16:11:16:42 | self[return] | +| conversions.swift:16:11:16:11 | self | conversions.swift:16:11:16:11 | SSA def(self) | +| conversions.swift:18:28:18:28 | SSA def(self) | conversions.swift:18:28:18:44 | self[return] | +| conversions.swift:18:28:18:28 | self | conversions.swift:18:28:18:28 | SSA def(self) | +| conversions.swift:19:33:19:33 | SSA def(self) | conversions.swift:19:33:19:49 | self[return] | +| conversions.swift:19:33:19:33 | self | conversions.swift:19:33:19:33 | SSA def(self) | +| conversions.swift:20:22:20:22 | SSA def(self) | conversions.swift:20:22:20:38 | self[return] | +| conversions.swift:20:22:20:22 | self | conversions.swift:20:22:20:22 | SSA def(self) | +| conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | +| conversions.swift:29:12:29:30 | call to String.init(_:) | conversions.swift:29:12:29:32 | .utf8 | +| conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:30 | call to String.init(_:) | +| conversions.swift:30:20:30:33 | call to sourceString() | conversions.swift:30:20:30:35 | .utf8 | +| conversions.swift:32:9:32:9 | SSA def(v) | conversions.swift:33:13:33:13 | v | +| conversions.swift:32:9:32:9 | v | conversions.swift:32:9:32:9 | SSA def(v) | +| conversions.swift:32:13:32:23 | call to sourceInt() | conversions.swift:32:5:32:9 | let ...? | +| conversions.swift:36:6:36:6 | SSA def(v2) | conversions.swift:37:12:37:12 | v2 | +| conversions.swift:36:6:36:6 | v2 | conversions.swift:36:6:36:6 | SSA def(v2) | +| conversions.swift:36:6:36:10 | ... as ... | conversions.swift:36:6:36:6 | v2 | +| conversions.swift:36:18:36:41 | call to numericCast(_:) | conversions.swift:36:6:36:10 | ... as ... | +| conversions.swift:39:6:39:6 | SSA def(v4) | conversions.swift:40:12:40:12 | v4 | +| conversions.swift:39:6:39:6 | v4 | conversions.swift:39:6:39:6 | SSA def(v4) | +| conversions.swift:39:6:39:10 | ... as ... | conversions.swift:39:6:39:6 | v4 | +| conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | conversions.swift:39:6:39:10 | ... as ... | +| conversions.swift:42:6:42:6 | SSA def(v5) | conversions.swift:43:12:43:12 | v5 | +| conversions.swift:42:6:42:6 | v5 | conversions.swift:42:6:42:6 | SSA def(v5) | +| conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:42:6:42:6 | v5 | +| conversions.swift:45:6:45:6 | SSA def(v6) | conversions.swift:46:12:46:12 | v6 | +| conversions.swift:45:6:45:6 | v6 | conversions.swift:45:6:45:6 | SSA def(v6) | +| conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | conversions.swift:45:6:45:6 | v6 | +| conversions.swift:48:12:48:36 | call to Self.init(exactly:) | conversions.swift:48:12:48:37 | ...! | +| conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | conversions.swift:51:12:51:42 | ...! | +| conversions.swift:63:19:63:31 | call to sourceFloat() | conversions.swift:63:12:63:32 | call to String.init(_:) | +| conversions.swift:64:12:64:32 | call to String.init(_:) | conversions.swift:64:12:64:34 | .utf8 | +| conversions.swift:64:19:64:31 | call to sourceFloat() | conversions.swift:64:12:64:32 | call to String.init(_:) | +| conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | +| conversions.swift:80:6:80:6 | SSA def(ms1) | conversions.swift:81:12:81:12 | ms1 | +| conversions.swift:80:6:80:6 | ms1 | conversions.swift:80:6:80:6 | SSA def(ms1) | +| conversions.swift:80:12:80:26 | call to MyString.init(_:) | conversions.swift:80:12:80:27 | ...! | +| conversions.swift:80:12:80:27 | ...! | conversions.swift:80:6:80:6 | ms1 | +| conversions.swift:81:12:81:12 | [post] ms1 | conversions.swift:82:12:82:12 | ms1 | +| conversions.swift:81:12:81:12 | ms1 | conversions.swift:82:12:82:12 | ms1 | +| conversions.swift:82:12:82:12 | [post] ms1 | conversions.swift:83:12:83:12 | ms1 | +| conversions.swift:82:12:82:12 | ms1 | conversions.swift:83:12:83:12 | ms1 | +| conversions.swift:83:12:83:12 | [post] ms1 | conversions.swift:84:12:84:12 | ms1 | +| conversions.swift:83:12:83:12 | ms1 | conversions.swift:84:12:84:12 | ms1 | +| conversions.swift:86:6:86:6 | SSA def(ms2) | conversions.swift:87:12:87:12 | ms2 | +| conversions.swift:86:6:86:6 | ms2 | conversions.swift:86:6:86:6 | SSA def(ms2) | +| conversions.swift:86:12:86:35 | call to MyString.init(_:) | conversions.swift:86:12:86:36 | ...! | +| conversions.swift:86:12:86:36 | ...! | conversions.swift:86:6:86:6 | ms2 | +| conversions.swift:87:12:87:12 | [post] ms2 | conversions.swift:88:12:88:12 | ms2 | +| conversions.swift:87:12:87:12 | ms2 | conversions.swift:88:12:88:12 | ms2 | +| conversions.swift:88:12:88:12 | [post] ms2 | conversions.swift:89:12:89:12 | ms2 | +| conversions.swift:88:12:88:12 | ms2 | conversions.swift:89:12:89:12 | ms2 | +| conversions.swift:89:12:89:12 | [post] ms2 | conversions.swift:90:12:90:12 | ms2 | +| conversions.swift:89:12:89:12 | ms2 | conversions.swift:90:12:90:12 | ms2 | +| conversions.swift:94:6:94:6 | SSA def(parent) | conversions.swift:95:12:95:12 | parent | +| conversions.swift:94:6:94:6 | parent | conversions.swift:94:6:94:6 | SSA def(parent) | +| conversions.swift:94:6:94:15 | ... as ... | conversions.swift:94:6:94:6 | parent | +| conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:94:6:94:15 | ... as ... | +| conversions.swift:95:12:95:12 | [post] parent | conversions.swift:96:12:96:12 | parent | +| conversions.swift:95:12:95:12 | parent | conversions.swift:96:12:96:12 | parent | +| conversions.swift:96:12:96:12 | [post] parent | conversions.swift:98:40:98:40 | parent | +| conversions.swift:96:12:96:12 | parent | conversions.swift:98:40:98:40 | parent | +| conversions.swift:98:6:98:6 | SSA def(v3) | conversions.swift:99:12:99:12 | v3 | +| conversions.swift:98:6:98:6 | v3 | conversions.swift:98:6:98:6 | SSA def(v3) | +| conversions.swift:98:6:98:10 | ... as ... | conversions.swift:98:6:98:6 | v3 | +| conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | conversions.swift:98:6:98:10 | ... as ... | +| conversions.swift:99:12:99:12 | [post] v3 | conversions.swift:100:12:100:12 | v3 | +| conversions.swift:99:12:99:12 | v3 | conversions.swift:100:12:100:12 | v3 | | simple.swift:12:13:12:13 | 1 | simple.swift:12:13:12:24 | ... .+(_:_:) ... | | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | | simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 3438ed3afeb..6923c1e8ec1 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -1,4 +1,13 @@ edges +| conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | +| conversions.swift:29:12:29:30 | call to String.init(_:) | conversions.swift:29:12:29:32 | .utf8 | +| conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:30 | call to String.init(_:) | +| conversions.swift:63:19:63:31 | call to sourceFloat() | conversions.swift:63:12:63:32 | call to String.init(_:) | +| conversions.swift:64:12:64:32 | call to String.init(_:) | conversions.swift:64:12:64:34 | .utf8 | +| conversions.swift:64:19:64:31 | call to sourceFloat() | conversions.swift:64:12:64:32 | call to String.init(_:) | +| conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | +| conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:95:12:95:12 | parent | +| conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:96:12:96:12 | parent | | file://:0:0:0:0 | self [first] | file://:0:0:0:0 | .first | | file://:0:0:0:0 | self [second] | file://:0:0:0:0 | .second | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [first] | @@ -77,6 +86,24 @@ edges | try.swift:18:18:18:25 | call to source() | try.swift:18:18:18:25 | call to source() [some:0] | | try.swift:18:18:18:25 | call to source() [some:0] | try.swift:18:13:18:25 | try? ... [some:0] | nodes +| conversions.swift:24:12:24:22 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:28:12:28:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:28:19:28:29 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:29:12:29:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:29:12:29:32 | .utf8 | semmle.label | .utf8 | +| conversions.swift:29:19:29:29 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:60:12:60:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:63:12:63:32 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:63:19:63:31 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:64:12:64:32 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:64:12:64:34 | .utf8 | semmle.label | .utf8 | +| conversions.swift:64:19:64:31 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:77:12:77:25 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:78:12:78:33 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:78:19:78:32 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:94:31:94:44 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:95:12:95:12 | parent | semmle.label | parent | +| conversions.swift:96:12:96:12 | parent | semmle.label | parent | | file://:0:0:0:0 | .first | semmle.label | .first | | file://:0:0:0:0 | .second | semmle.label | .second | | file://:0:0:0:0 | [post] self [first] | semmle.label | [post] self [first] | @@ -200,6 +227,16 @@ subpaths | stringinterpolation.swift:28:14:28:21 | call to source() | stringinterpolation.swift:7:6:7:6 | value | file://:0:0:0:0 | [post] self [second] | stringinterpolation.swift:28:2:28:2 | [post] p2 [second] | | stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:7:6:7:6 | self [second] | file://:0:0:0:0 | .second | stringinterpolation.swift:31:21:31:24 | .second | #select +| conversions.swift:24:12:24:22 | call to sourceInt() | conversions.swift:24:12:24:22 | call to sourceInt() | conversions.swift:24:12:24:22 | call to sourceInt() | result | +| conversions.swift:28:12:28:30 | call to String.init(_:) | conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | result | +| conversions.swift:29:12:29:32 | .utf8 | conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:32 | .utf8 | result | +| conversions.swift:60:12:60:24 | call to sourceFloat() | conversions.swift:60:12:60:24 | call to sourceFloat() | conversions.swift:60:12:60:24 | call to sourceFloat() | result | +| conversions.swift:63:12:63:32 | call to String.init(_:) | conversions.swift:63:19:63:31 | call to sourceFloat() | conversions.swift:63:12:63:32 | call to String.init(_:) | result | +| conversions.swift:64:12:64:34 | .utf8 | conversions.swift:64:19:64:31 | call to sourceFloat() | conversions.swift:64:12:64:34 | .utf8 | result | +| conversions.swift:77:12:77:25 | call to sourceString() | conversions.swift:77:12:77:25 | call to sourceString() | conversions.swift:77:12:77:25 | call to sourceString() | result | +| conversions.swift:78:12:78:33 | call to String.init(_:) | conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | result | +| conversions.swift:95:12:95:12 | parent | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:95:12:95:12 | parent | result | +| conversions.swift:96:12:96:12 | parent | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:96:12:96:12 | parent | result | | simple.swift:12:13:12:24 | ... .+(_:_:) ... | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | result | | simple.swift:13:13:13:24 | ... .+(_:_:) ... | simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | result | | simple.swift:14:13:14:24 | ... .-(_:_:) ... | simple.swift:14:17:14:24 | call to source() | simple.swift:14:13:14:24 | ... .-(_:_:) ... | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift new file mode 100644 index 00000000000..4789486ad45 --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift @@ -0,0 +1,101 @@ + +func sourceInt() -> Int { 0 } +func sourceFloat() -> Float { 0.0 } +func sourceString() -> String { "" } +func sink(arg: Any) { } + +// --- + +class MyParentClass { +} + +class MyChildClass : MyParentClass { +} + +class MyString : LosslessStringConvertible, CustomStringConvertible, CustomDebugStringConvertible { + required init?(_ description: String) { } + + var description: String { get { return "" } } + var debugDescription: String { get { return "" } } + var clean: String { get { return "" } } +} + +func testConversions() { + sink(arg: sourceInt()) // $ tainted=24 + sink(arg: Int(sourceInt())) // $ MISSING: tainted= + sink(arg: UInt8(sourceInt())) // $ MISSING: tainted= + sink(arg: Float(sourceInt())) // $ MISSING: tainted= + sink(arg: String(sourceInt())) // $ tainted=28 + sink(arg: String(sourceInt()).utf8) // $ tainted=29 + sink(arg: [UInt8](sourceString().utf8)) // $ MISSING: tainted= + + if let v = sourceInt() as? UInt { + sink(arg: v) // $ MISSING: tainted= + } + + let v2: UInt8 = numericCast(sourceInt()) + sink(arg: v2) // $ MISSING: tainted= + + let v4: UInt = unsafeBitCast(sourceInt(), to: UInt.self) + sink(arg: v4) // $ MISSING: tainted= + + let v5 = UInt(truncatingIfNeeded: sourceInt()) + sink(arg: v5) // $ MISSING: tainted= + + let v6 = UInt(bitPattern: sourceInt()) + sink(arg: v6) // $ MISSING: tainted= + + sink(arg: Int(exactly: sourceInt())!) // $ MISSING: tainted= + sink(arg: Int(clamping: sourceInt())) // $ MISSING: tainted= + sink(arg: Int(truncatingIfNeeded: sourceInt())) // $ MISSING: tainted= + sink(arg: Int(sourceString(), radix: 10)!) // $ MISSING: tainted= + + sink(arg: Int(littleEndian: sourceInt())) // $ MISSING: tainted= + sink(arg: Int(bigEndian: sourceInt())) // $ MISSING: tainted= + sink(arg: sourceInt().littleEndian) // $ MISSING: tainted= + sink(arg: sourceInt().bigEndian) // $ MISSING: tainted= + + // --- + + sink(arg: sourceFloat()) // $ tainted=60 + sink(arg: Float(sourceFloat())) // $ MISSING: tainted= + sink(arg: UInt8(sourceFloat())) // $ MISSING: tainted= + sink(arg: String(sourceFloat())) // $ tainted=63 + sink(arg: String(sourceFloat()).utf8) // $ tainted=64 + + sink(arg: Float(sourceFloat())) // MISSING: tainted= + sink(arg: Float(sign: .plus, exponent: sourceInt(), significand: 0.0)) // MISSING: tainted= + sink(arg: Float(sign: .plus, exponent: 0, significand: sourceFloat())) // MISSING: tainted= + sink(arg: Float(signOf: sourceFloat(), magnitudeOf: 0.0)) // (good) + sink(arg: Float(signOf: 0.0, magnitudeOf: sourceFloat())) // MISSING: tainted= + + sink(arg: sourceFloat().exponent) // $ MISSING: tainted= + sink(arg: sourceFloat().significand) // $ MISSING: tainted= + + // --- + + sink(arg: sourceString()) // $ tainted=77 + sink(arg: String(sourceString())) // $ tainted=78 + + let ms1 = MyString("abc")! + sink(arg: ms1) + sink(arg: ms1.description) + sink(arg: ms1.debugDescription) + sink(arg: ms1.clean) + + let ms2 = MyString(sourceString())! + sink(arg: ms2) // $ MISSING: tainted= + sink(arg: ms2.description) // $ MISSING: tainted= + sink(arg: ms2.debugDescription) // $ MISSING: tainted= + sink(arg: ms2.clean) + + // --- + + let parent : MyParentClass = sourceString() as! MyChildClass + sink(arg: parent) // $ tainted=94 + sink(arg: parent as! MyChildClass) // $ tainted=94 + + let v3: MyChildClass = unsafeDowncast(parent, to: MyChildClass.self) + sink(arg: v3) // $ MISSING: tainted= + sink(arg: v3 as! MyParentClass) // $ MISSING: tainted= +} From aa2e79b6da4c1d53efe12c2970703104d9cd99b1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 9 Aug 2023 20:57:43 +0100 Subject: [PATCH 048/788] Swift: Model numeric conversions. --- .../frameworks/StandardLibrary/Numeric.qll | 51 ++++++++ .../StandardLibrary/StandardLibrary.qll | 1 + .../dataflow/taint/core/LocalTaint.expected | 26 ++++ .../dataflow/taint/core/Taint.expected | 114 ++++++++++++++++++ .../dataflow/taint/core/conversions.swift | 50 ++++---- 5 files changed, 217 insertions(+), 25 deletions(-) create mode 100644 swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll new file mode 100644 index 00000000000..a985bb7f0ed --- /dev/null +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll @@ -0,0 +1,51 @@ +/** + * Provides models for `Numeric` and related Swift classes (such as `Int` and `Float`). + */ + +import swift +private import codeql.swift.dataflow.DataFlow +private import codeql.swift.dataflow.ExternalFlow +private import codeql.swift.dataflow.FlowSteps + +/** + * A model for `Numeric` and related class members and functions that permit taint flow. + */ +private class NumericSummaries extends SummaryModelCsv { + override predicate row(string row) { + row = + [ + ";;false;numericCast(_:);;;Argument[0];ReturnValue;taint", + ";;false;unsafeDowncast(_:to:);;;Argument[0];ReturnValue;taint", + ";;false;unsafeBitCast(_:to:);;;Argument[0];ReturnValue;taint", + ";Numeric;true;init(exactly:);;;Argument[0];ReturnValue.OptionalSome;value", + ";Numeric;true;init(bitPattern:);;;Argument[0];ReturnValue;taint", + ";BinaryInteger;true;init(_:);;;Argument[0];ReturnValue;taint", + ";BinaryInteger;true;init(clamping:);;;Argument[0];ReturnValue;taint", + ";BinaryInteger;true;init(truncatingIfNeeded:);;;Argument[0];ReturnValue;taint", + ";BinaryInteger;true;init(_:format:lenient:);;;Argument[0];ReturnValue;taint", + ";BinaryInteger;true;init(_:strategy:);;;Argument[0];ReturnValue;taint", + ";BinaryInteger;true;formatted();;;Argument[-1];ReturnValue;taint", + ";BinaryInteger;true;formatted(_:);;;Argument[-1];ReturnValue;taint", + ";FixedWidthInteger;true;init(_:radix:);;;Argument[0];ReturnValue;taint", + ";FixedWidthInteger;true;init(littleEndian:);;;Argument[0];ReturnValue;taint", + ";FixedWidthInteger;true;init(bigEndian:);;;Argument[0];ReturnValue;taint", + ";FloatingPoint;true;init(_:);;;Argument[0];ReturnValue;taint", + ";FloatingPoint;true;init(sign:exponent:significand:);;;Argument[1..2];ReturnValue;taint", + ";FloatingPoint;true;init(signOf:magnitudeOf:);;;Argument[1];ReturnValue;taint", + ] + } +} + +/** + * A content implying that, if a `Numeric` is tainted, then some of its fields are + * tainted. + */ +private class NumericFieldsInheritTaint extends TaintInheritingContent, + DataFlow::Content::FieldContent +{ + NumericFieldsInheritTaint() { + this.getField().hasQualifiedName("FixedWidthInteger", ["littleEndian", "bigEndian"]) + or + this.getField().hasQualifiedName(["Double", "Float", "Float80", "FloatingPoint"], ["exponent", "significand"]) + } +} diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll index 93d60dba092..775c6afcea0 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll @@ -14,6 +14,7 @@ private import NsData private import NsObject private import NsString private import NsUrl +private import Numeric private import Sequence private import Set private import String diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index 65fe7171c3f..1ff797add87 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -16,6 +16,9 @@ | conversions.swift:19:33:19:33 | self | conversions.swift:19:33:19:33 | SSA def(self) | | conversions.swift:20:22:20:22 | SSA def(self) | conversions.swift:20:22:20:38 | self[return] | | conversions.swift:20:22:20:22 | self | conversions.swift:20:22:20:22 | SSA def(self) | +| conversions.swift:25:16:25:26 | call to sourceInt() | conversions.swift:25:12:25:27 | call to Self.init(_:) | +| conversions.swift:26:18:26:28 | call to sourceInt() | conversions.swift:26:12:26:29 | call to Self.init(_:) | +| conversions.swift:27:18:27:28 | call to sourceInt() | conversions.swift:27:12:27:29 | call to Float.init(_:) | | conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | | conversions.swift:29:12:29:30 | call to String.init(_:) | conversions.swift:29:12:29:32 | .utf8 | | conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:30 | call to String.init(_:) | @@ -27,21 +30,43 @@ | conversions.swift:36:6:36:6 | v2 | conversions.swift:36:6:36:6 | SSA def(v2) | | conversions.swift:36:6:36:10 | ... as ... | conversions.swift:36:6:36:6 | v2 | | conversions.swift:36:18:36:41 | call to numericCast(_:) | conversions.swift:36:6:36:10 | ... as ... | +| conversions.swift:36:30:36:40 | call to sourceInt() | conversions.swift:36:18:36:41 | call to numericCast(_:) | | conversions.swift:39:6:39:6 | SSA def(v4) | conversions.swift:40:12:40:12 | v4 | | conversions.swift:39:6:39:6 | v4 | conversions.swift:39:6:39:6 | SSA def(v4) | | conversions.swift:39:6:39:10 | ... as ... | conversions.swift:39:6:39:6 | v4 | | conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | conversions.swift:39:6:39:10 | ... as ... | +| conversions.swift:39:31:39:41 | call to sourceInt() | conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | | conversions.swift:42:6:42:6 | SSA def(v5) | conversions.swift:43:12:43:12 | v5 | | conversions.swift:42:6:42:6 | v5 | conversions.swift:42:6:42:6 | SSA def(v5) | | conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:42:6:42:6 | v5 | +| conversions.swift:42:36:42:46 | call to sourceInt() | conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | | conversions.swift:45:6:45:6 | SSA def(v6) | conversions.swift:46:12:46:12 | v6 | | conversions.swift:45:6:45:6 | v6 | conversions.swift:45:6:45:6 | SSA def(v6) | | conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | conversions.swift:45:6:45:6 | v6 | +| conversions.swift:45:28:45:38 | call to sourceInt() | conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | | conversions.swift:48:12:48:36 | call to Self.init(exactly:) | conversions.swift:48:12:48:37 | ...! | +| conversions.swift:49:26:49:36 | call to sourceInt() | conversions.swift:49:12:49:37 | call to Self.init(clamping:) | +| conversions.swift:50:36:50:46 | call to sourceInt() | conversions.swift:50:12:50:47 | call to Self.init(truncatingIfNeeded:) | | conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | conversions.swift:51:12:51:42 | ...! | +| conversions.swift:51:16:51:29 | call to sourceString() | conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | +| conversions.swift:53:30:53:40 | call to sourceInt() | conversions.swift:53:12:53:41 | call to Self.init(littleEndian:) | +| conversions.swift:54:27:54:37 | call to sourceInt() | conversions.swift:54:12:54:38 | call to Self.init(bigEndian:) | +| conversions.swift:55:12:55:22 | call to sourceInt() | conversions.swift:55:12:55:24 | .littleEndian | +| conversions.swift:56:12:56:22 | call to sourceInt() | conversions.swift:56:12:56:24 | .bigEndian | +| conversions.swift:61:18:61:30 | call to sourceFloat() | conversions.swift:61:12:61:31 | call to Float.init(_:) | +| conversions.swift:62:18:62:30 | call to sourceFloat() | conversions.swift:62:12:62:31 | call to UInt8.init(_:) | | conversions.swift:63:19:63:31 | call to sourceFloat() | conversions.swift:63:12:63:32 | call to String.init(_:) | | conversions.swift:64:12:64:32 | call to String.init(_:) | conversions.swift:64:12:64:34 | .utf8 | | conversions.swift:64:19:64:31 | call to sourceFloat() | conversions.swift:64:12:64:32 | call to String.init(_:) | +| conversions.swift:66:18:66:30 | call to sourceFloat() | conversions.swift:66:12:66:31 | call to Float.init(_:) | +| conversions.swift:67:41:67:51 | call to sourceInt() | conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:67:67:67:67 | 0.0 | conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:68:41:68:41 | 0 | conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:68:57:68:69 | call to sourceFloat() | conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:69:54:69:54 | 0.0 | conversions.swift:69:12:69:57 | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:70:44:70:56 | call to sourceFloat() | conversions.swift:70:12:70:57 | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:72:12:72:24 | call to sourceFloat() | conversions.swift:72:12:72:26 | .exponent | +| conversions.swift:73:12:73:24 | call to sourceFloat() | conversions.swift:73:12:73:26 | .significand | | conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | | conversions.swift:80:6:80:6 | SSA def(ms1) | conversions.swift:81:12:81:12 | ms1 | | conversions.swift:80:6:80:6 | ms1 | conversions.swift:80:6:80:6 | SSA def(ms1) | @@ -75,6 +100,7 @@ | conversions.swift:98:6:98:6 | v3 | conversions.swift:98:6:98:6 | SSA def(v3) | | conversions.swift:98:6:98:10 | ... as ... | conversions.swift:98:6:98:6 | v3 | | conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | conversions.swift:98:6:98:10 | ... as ... | +| conversions.swift:98:40:98:40 | parent | conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | | conversions.swift:99:12:99:12 | [post] v3 | conversions.swift:100:12:100:12 | v3 | | conversions.swift:99:12:99:12 | v3 | conversions.swift:100:12:100:12 | v3 | | simple.swift:12:13:12:13 | 1 | simple.swift:12:13:12:24 | ... .+(_:_:) ... | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 6923c1e8ec1..48ef4ada925 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -1,13 +1,46 @@ edges +| conversions.swift:25:16:25:26 | call to sourceInt() | conversions.swift:25:12:25:27 | call to Self.init(_:) | +| conversions.swift:26:18:26:28 | call to sourceInt() | conversions.swift:26:12:26:29 | call to Self.init(_:) | +| conversions.swift:27:18:27:28 | call to sourceInt() | conversions.swift:27:12:27:29 | call to Float.init(_:) | | conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | | conversions.swift:29:12:29:30 | call to String.init(_:) | conversions.swift:29:12:29:32 | .utf8 | | conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:30 | call to String.init(_:) | +| conversions.swift:36:18:36:41 | call to numericCast(_:) | conversions.swift:37:12:37:12 | v2 | +| conversions.swift:36:30:36:40 | call to sourceInt() | conversions.swift:36:18:36:41 | call to numericCast(_:) | +| conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | conversions.swift:40:12:40:12 | v4 | +| conversions.swift:39:31:39:41 | call to sourceInt() | conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | +| conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:43:12:43:12 | v5 | +| conversions.swift:42:36:42:46 | call to sourceInt() | conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | conversions.swift:46:12:46:12 | v6 | +| conversions.swift:45:28:45:38 | call to sourceInt() | conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | +| conversions.swift:48:12:48:36 | call to Self.init(exactly:) [some:0] | conversions.swift:48:12:48:37 | ...! | +| conversions.swift:48:25:48:35 | call to sourceInt() | conversions.swift:48:12:48:36 | call to Self.init(exactly:) [some:0] | +| conversions.swift:49:26:49:36 | call to sourceInt() | conversions.swift:49:12:49:37 | call to Self.init(clamping:) | +| conversions.swift:50:36:50:46 | call to sourceInt() | conversions.swift:50:12:50:47 | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | conversions.swift:51:12:51:42 | ...! | +| conversions.swift:51:16:51:29 | call to sourceString() | conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | +| conversions.swift:53:30:53:40 | call to sourceInt() | conversions.swift:53:12:53:41 | call to Self.init(littleEndian:) | +| conversions.swift:54:27:54:37 | call to sourceInt() | conversions.swift:54:12:54:38 | call to Self.init(bigEndian:) | +| conversions.swift:55:12:55:22 | call to sourceInt() | conversions.swift:55:12:55:24 | .littleEndian | +| conversions.swift:56:12:56:22 | call to sourceInt() | conversions.swift:56:12:56:24 | .bigEndian | +| conversions.swift:61:18:61:30 | call to sourceFloat() | conversions.swift:61:12:61:31 | call to Float.init(_:) | +| conversions.swift:62:18:62:30 | call to sourceFloat() | conversions.swift:62:12:62:31 | call to UInt8.init(_:) | | conversions.swift:63:19:63:31 | call to sourceFloat() | conversions.swift:63:12:63:32 | call to String.init(_:) | | conversions.swift:64:12:64:32 | call to String.init(_:) | conversions.swift:64:12:64:34 | .utf8 | | conversions.swift:64:19:64:31 | call to sourceFloat() | conversions.swift:64:12:64:32 | call to String.init(_:) | +| conversions.swift:66:18:66:30 | call to sourceFloat() | conversions.swift:66:12:66:31 | call to Float.init(_:) | +| conversions.swift:67:41:67:51 | call to sourceInt() | conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:68:57:68:69 | call to sourceFloat() | conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:70:44:70:56 | call to sourceFloat() | conversions.swift:70:12:70:57 | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:72:12:72:24 | call to sourceFloat() | conversions.swift:72:12:72:26 | .exponent | +| conversions.swift:73:12:73:24 | call to sourceFloat() | conversions.swift:73:12:73:26 | .significand | | conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:95:12:95:12 | parent | | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:96:12:96:12 | parent | +| conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:98:40:98:40 | parent | +| conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | conversions.swift:99:12:99:12 | v3 | +| conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | conversions.swift:100:12:100:12 | v3 | +| conversions.swift:98:40:98:40 | parent | conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | | file://:0:0:0:0 | self [first] | file://:0:0:0:0 | .first | | file://:0:0:0:0 | self [second] | file://:0:0:0:0 | .second | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [first] | @@ -87,23 +120,79 @@ edges | try.swift:18:18:18:25 | call to source() [some:0] | try.swift:18:13:18:25 | try? ... [some:0] | nodes | conversions.swift:24:12:24:22 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:25:12:25:27 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:25:16:25:26 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:26:12:26:29 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:26:18:26:28 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:27:12:27:29 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:27:18:27:28 | call to sourceInt() | semmle.label | call to sourceInt() | | conversions.swift:28:12:28:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | | conversions.swift:28:19:28:29 | call to sourceInt() | semmle.label | call to sourceInt() | | conversions.swift:29:12:29:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | | conversions.swift:29:12:29:32 | .utf8 | semmle.label | .utf8 | | conversions.swift:29:19:29:29 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:36:18:36:41 | call to numericCast(_:) | semmle.label | call to numericCast(_:) | +| conversions.swift:36:30:36:40 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:37:12:37:12 | v2 | semmle.label | v2 | +| conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | semmle.label | call to unsafeBitCast(_:to:) | +| conversions.swift:39:31:39:41 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:40:12:40:12 | v4 | semmle.label | v4 | +| conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | semmle.label | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:42:36:42:46 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:43:12:43:12 | v5 | semmle.label | v5 | +| conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | semmle.label | call to UInt.init(bitPattern:) | +| conversions.swift:45:28:45:38 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:46:12:46:12 | v6 | semmle.label | v6 | +| conversions.swift:48:12:48:36 | call to Self.init(exactly:) [some:0] | semmle.label | call to Self.init(exactly:) [some:0] | +| conversions.swift:48:12:48:37 | ...! | semmle.label | ...! | +| conversions.swift:48:25:48:35 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:49:12:49:37 | call to Self.init(clamping:) | semmle.label | call to Self.init(clamping:) | +| conversions.swift:49:26:49:36 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:50:12:50:47 | call to Self.init(truncatingIfNeeded:) | semmle.label | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:50:36:50:46 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | semmle.label | call to Self.init(_:radix:) | +| conversions.swift:51:12:51:42 | ...! | semmle.label | ...! | +| conversions.swift:51:16:51:29 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:53:12:53:41 | call to Self.init(littleEndian:) | semmle.label | call to Self.init(littleEndian:) | +| conversions.swift:53:30:53:40 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:54:12:54:38 | call to Self.init(bigEndian:) | semmle.label | call to Self.init(bigEndian:) | +| conversions.swift:54:27:54:37 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:55:12:55:22 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:55:12:55:24 | .littleEndian | semmle.label | .littleEndian | +| conversions.swift:56:12:56:22 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:56:12:56:24 | .bigEndian | semmle.label | .bigEndian | | conversions.swift:60:12:60:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:61:12:61:31 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:61:18:61:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:62:12:62:31 | call to UInt8.init(_:) | semmle.label | call to UInt8.init(_:) | +| conversions.swift:62:18:62:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | | conversions.swift:63:12:63:32 | call to String.init(_:) | semmle.label | call to String.init(_:) | | conversions.swift:63:19:63:31 | call to sourceFloat() | semmle.label | call to sourceFloat() | | conversions.swift:64:12:64:32 | call to String.init(_:) | semmle.label | call to String.init(_:) | | conversions.swift:64:12:64:34 | .utf8 | semmle.label | .utf8 | | conversions.swift:64:19:64:31 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:66:12:66:31 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:66:18:66:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | +| conversions.swift:67:41:67:51 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | +| conversions.swift:68:57:68:69 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:70:12:70:57 | call to Float.init(signOf:magnitudeOf:) | semmle.label | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:70:44:70:56 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:72:12:72:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:72:12:72:26 | .exponent | semmle.label | .exponent | +| conversions.swift:73:12:73:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:73:12:73:26 | .significand | semmle.label | .significand | | conversions.swift:77:12:77:25 | call to sourceString() | semmle.label | call to sourceString() | | conversions.swift:78:12:78:33 | call to String.init(_:) | semmle.label | call to String.init(_:) | | conversions.swift:78:19:78:32 | call to sourceString() | semmle.label | call to sourceString() | | conversions.swift:94:31:94:44 | call to sourceString() | semmle.label | call to sourceString() | | conversions.swift:95:12:95:12 | parent | semmle.label | parent | | conversions.swift:96:12:96:12 | parent | semmle.label | parent | +| conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | semmle.label | call to unsafeDowncast(_:to:) | +| conversions.swift:98:40:98:40 | parent | semmle.label | parent | +| conversions.swift:99:12:99:12 | v3 | semmle.label | v3 | +| conversions.swift:100:12:100:12 | v3 | semmle.label | v3 | | file://:0:0:0:0 | .first | semmle.label | .first | | file://:0:0:0:0 | .second | semmle.label | .second | | file://:0:0:0:0 | [post] self [first] | semmle.label | [post] self [first] | @@ -228,15 +317,40 @@ subpaths | stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:7:6:7:6 | self [second] | file://:0:0:0:0 | .second | stringinterpolation.swift:31:21:31:24 | .second | #select | conversions.swift:24:12:24:22 | call to sourceInt() | conversions.swift:24:12:24:22 | call to sourceInt() | conversions.swift:24:12:24:22 | call to sourceInt() | result | +| conversions.swift:25:12:25:27 | call to Self.init(_:) | conversions.swift:25:16:25:26 | call to sourceInt() | conversions.swift:25:12:25:27 | call to Self.init(_:) | result | +| conversions.swift:26:12:26:29 | call to Self.init(_:) | conversions.swift:26:18:26:28 | call to sourceInt() | conversions.swift:26:12:26:29 | call to Self.init(_:) | result | +| conversions.swift:27:12:27:29 | call to Float.init(_:) | conversions.swift:27:18:27:28 | call to sourceInt() | conversions.swift:27:12:27:29 | call to Float.init(_:) | result | | conversions.swift:28:12:28:30 | call to String.init(_:) | conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | result | | conversions.swift:29:12:29:32 | .utf8 | conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:32 | .utf8 | result | +| conversions.swift:37:12:37:12 | v2 | conversions.swift:36:30:36:40 | call to sourceInt() | conversions.swift:37:12:37:12 | v2 | result | +| conversions.swift:40:12:40:12 | v4 | conversions.swift:39:31:39:41 | call to sourceInt() | conversions.swift:40:12:40:12 | v4 | result | +| conversions.swift:43:12:43:12 | v5 | conversions.swift:42:36:42:46 | call to sourceInt() | conversions.swift:43:12:43:12 | v5 | result | +| conversions.swift:46:12:46:12 | v6 | conversions.swift:45:28:45:38 | call to sourceInt() | conversions.swift:46:12:46:12 | v6 | result | +| conversions.swift:48:12:48:37 | ...! | conversions.swift:48:25:48:35 | call to sourceInt() | conversions.swift:48:12:48:37 | ...! | result | +| conversions.swift:49:12:49:37 | call to Self.init(clamping:) | conversions.swift:49:26:49:36 | call to sourceInt() | conversions.swift:49:12:49:37 | call to Self.init(clamping:) | result | +| conversions.swift:50:12:50:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:50:36:50:46 | call to sourceInt() | conversions.swift:50:12:50:47 | call to Self.init(truncatingIfNeeded:) | result | +| conversions.swift:51:12:51:42 | ...! | conversions.swift:51:16:51:29 | call to sourceString() | conversions.swift:51:12:51:42 | ...! | result | +| conversions.swift:53:12:53:41 | call to Self.init(littleEndian:) | conversions.swift:53:30:53:40 | call to sourceInt() | conversions.swift:53:12:53:41 | call to Self.init(littleEndian:) | result | +| conversions.swift:54:12:54:38 | call to Self.init(bigEndian:) | conversions.swift:54:27:54:37 | call to sourceInt() | conversions.swift:54:12:54:38 | call to Self.init(bigEndian:) | result | +| conversions.swift:55:12:55:24 | .littleEndian | conversions.swift:55:12:55:22 | call to sourceInt() | conversions.swift:55:12:55:24 | .littleEndian | result | +| conversions.swift:56:12:56:24 | .bigEndian | conversions.swift:56:12:56:22 | call to sourceInt() | conversions.swift:56:12:56:24 | .bigEndian | result | | conversions.swift:60:12:60:24 | call to sourceFloat() | conversions.swift:60:12:60:24 | call to sourceFloat() | conversions.swift:60:12:60:24 | call to sourceFloat() | result | +| conversions.swift:61:12:61:31 | call to Float.init(_:) | conversions.swift:61:18:61:30 | call to sourceFloat() | conversions.swift:61:12:61:31 | call to Float.init(_:) | result | +| conversions.swift:62:12:62:31 | call to UInt8.init(_:) | conversions.swift:62:18:62:30 | call to sourceFloat() | conversions.swift:62:12:62:31 | call to UInt8.init(_:) | result | | conversions.swift:63:12:63:32 | call to String.init(_:) | conversions.swift:63:19:63:31 | call to sourceFloat() | conversions.swift:63:12:63:32 | call to String.init(_:) | result | | conversions.swift:64:12:64:34 | .utf8 | conversions.swift:64:19:64:31 | call to sourceFloat() | conversions.swift:64:12:64:34 | .utf8 | result | +| conversions.swift:66:12:66:31 | call to Float.init(_:) | conversions.swift:66:18:66:30 | call to sourceFloat() | conversions.swift:66:12:66:31 | call to Float.init(_:) | result | +| conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | conversions.swift:67:41:67:51 | call to sourceInt() | conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | result | +| conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | conversions.swift:68:57:68:69 | call to sourceFloat() | conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | result | +| conversions.swift:70:12:70:57 | call to Float.init(signOf:magnitudeOf:) | conversions.swift:70:44:70:56 | call to sourceFloat() | conversions.swift:70:12:70:57 | call to Float.init(signOf:magnitudeOf:) | result | +| conversions.swift:72:12:72:26 | .exponent | conversions.swift:72:12:72:24 | call to sourceFloat() | conversions.swift:72:12:72:26 | .exponent | result | +| conversions.swift:73:12:73:26 | .significand | conversions.swift:73:12:73:24 | call to sourceFloat() | conversions.swift:73:12:73:26 | .significand | result | | conversions.swift:77:12:77:25 | call to sourceString() | conversions.swift:77:12:77:25 | call to sourceString() | conversions.swift:77:12:77:25 | call to sourceString() | result | | conversions.swift:78:12:78:33 | call to String.init(_:) | conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | result | | conversions.swift:95:12:95:12 | parent | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:95:12:95:12 | parent | result | | conversions.swift:96:12:96:12 | parent | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:96:12:96:12 | parent | result | +| conversions.swift:99:12:99:12 | v3 | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:99:12:99:12 | v3 | result | +| conversions.swift:100:12:100:12 | v3 | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:100:12:100:12 | v3 | result | | simple.swift:12:13:12:24 | ... .+(_:_:) ... | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | result | | simple.swift:13:13:13:24 | ... .+(_:_:) ... | simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | result | | simple.swift:14:13:14:24 | ... .-(_:_:) ... | simple.swift:14:17:14:24 | call to source() | simple.swift:14:13:14:24 | ... .-(_:_:) ... | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift index 4789486ad45..a4d8956dff1 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift @@ -22,9 +22,9 @@ class MyString : LosslessStringConvertible, CustomStringConvertible, CustomDebug func testConversions() { sink(arg: sourceInt()) // $ tainted=24 - sink(arg: Int(sourceInt())) // $ MISSING: tainted= - sink(arg: UInt8(sourceInt())) // $ MISSING: tainted= - sink(arg: Float(sourceInt())) // $ MISSING: tainted= + sink(arg: Int(sourceInt())) // $ tainted=25 + sink(arg: UInt8(sourceInt())) // $ tainted=26 + sink(arg: Float(sourceInt())) // $ tainted=27 sink(arg: String(sourceInt())) // $ tainted=28 sink(arg: String(sourceInt()).utf8) // $ tainted=29 sink(arg: [UInt8](sourceString().utf8)) // $ MISSING: tainted= @@ -34,43 +34,43 @@ func testConversions() { } let v2: UInt8 = numericCast(sourceInt()) - sink(arg: v2) // $ MISSING: tainted= + sink(arg: v2) // $ tainted=36 let v4: UInt = unsafeBitCast(sourceInt(), to: UInt.self) - sink(arg: v4) // $ MISSING: tainted= + sink(arg: v4) // $ tainted=39 let v5 = UInt(truncatingIfNeeded: sourceInt()) - sink(arg: v5) // $ MISSING: tainted= + sink(arg: v5) // $ tainted=42 let v6 = UInt(bitPattern: sourceInt()) - sink(arg: v6) // $ MISSING: tainted= + sink(arg: v6) // $ tainted=45 - sink(arg: Int(exactly: sourceInt())!) // $ MISSING: tainted= - sink(arg: Int(clamping: sourceInt())) // $ MISSING: tainted= - sink(arg: Int(truncatingIfNeeded: sourceInt())) // $ MISSING: tainted= - sink(arg: Int(sourceString(), radix: 10)!) // $ MISSING: tainted= + sink(arg: Int(exactly: sourceInt())!) // $ tainted=48 + sink(arg: Int(clamping: sourceInt())) // $ tainted=49 + sink(arg: Int(truncatingIfNeeded: sourceInt())) // $ tainted=50 + sink(arg: Int(sourceString(), radix: 10)!) // $ tainted=51 - sink(arg: Int(littleEndian: sourceInt())) // $ MISSING: tainted= - sink(arg: Int(bigEndian: sourceInt())) // $ MISSING: tainted= - sink(arg: sourceInt().littleEndian) // $ MISSING: tainted= - sink(arg: sourceInt().bigEndian) // $ MISSING: tainted= + sink(arg: Int(littleEndian: sourceInt())) // $ tainted=53 + sink(arg: Int(bigEndian: sourceInt())) // $ tainted=54 + sink(arg: sourceInt().littleEndian) // $ tainted=55 + sink(arg: sourceInt().bigEndian) // $ tainted=56 // --- sink(arg: sourceFloat()) // $ tainted=60 - sink(arg: Float(sourceFloat())) // $ MISSING: tainted= - sink(arg: UInt8(sourceFloat())) // $ MISSING: tainted= + sink(arg: Float(sourceFloat())) // $ tainted=61 + sink(arg: UInt8(sourceFloat())) // $ tainted=62 sink(arg: String(sourceFloat())) // $ tainted=63 sink(arg: String(sourceFloat()).utf8) // $ tainted=64 - sink(arg: Float(sourceFloat())) // MISSING: tainted= - sink(arg: Float(sign: .plus, exponent: sourceInt(), significand: 0.0)) // MISSING: tainted= - sink(arg: Float(sign: .plus, exponent: 0, significand: sourceFloat())) // MISSING: tainted= + sink(arg: Float(sourceFloat())) // $ tainted=66 + sink(arg: Float(sign: .plus, exponent: sourceInt(), significand: 0.0)) // $ tainted=67 + sink(arg: Float(sign: .plus, exponent: 0, significand: sourceFloat())) // $ tainted=68 sink(arg: Float(signOf: sourceFloat(), magnitudeOf: 0.0)) // (good) - sink(arg: Float(signOf: 0.0, magnitudeOf: sourceFloat())) // MISSING: tainted= + sink(arg: Float(signOf: 0.0, magnitudeOf: sourceFloat())) // $ tainted=70 - sink(arg: sourceFloat().exponent) // $ MISSING: tainted= - sink(arg: sourceFloat().significand) // $ MISSING: tainted= + sink(arg: sourceFloat().exponent) // $ tainted=72 + sink(arg: sourceFloat().significand) // $ tainted=73 // --- @@ -96,6 +96,6 @@ func testConversions() { sink(arg: parent as! MyChildClass) // $ tainted=94 let v3: MyChildClass = unsafeDowncast(parent, to: MyChildClass.self) - sink(arg: v3) // $ MISSING: tainted= - sink(arg: v3 as! MyParentClass) // $ MISSING: tainted= + sink(arg: v3) // $ tainted=94 + sink(arg: v3 as! MyParentClass) // $ tainted=94 } From effe3762b8cf0cbcd326d742bd885655d0197538 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 9 Aug 2023 17:25:56 +0100 Subject: [PATCH 049/788] Swift: More robust OptionalSomePattern flow. --- .../lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll | 5 +++++ .../library-tests/dataflow/taint/core/LocalTaint.expected | 1 + .../ql/test/library-tests/dataflow/taint/core/Taint.expected | 4 ++++ .../test/library-tests/dataflow/taint/core/conversions.swift | 2 +- 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 145ac20573b..0ddd5728e52 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -182,6 +182,11 @@ private module Cached { // retaining this case increases robustness of flow). nodeFrom.asExpr() = nodeTo.asExpr().(ForceValueExpr).getSubExpr() or + // read of an optional .some member via `let x: T = y: T?` pattern matching + // note: similar to `ForceValueExpr` this is ideally a content `readStep` but + // in practice we sometimes have taint on the optional itself. + nodeTo.asPattern() = nodeFrom.asPattern().(OptionalSomePattern).getSubPattern() + or // flow through `?` and `?.` nodeFrom.asExpr() = nodeTo.asExpr().(BindOptionalExpr).getSubExpr() or diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index 1ff797add87..40862be951d 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -23,6 +23,7 @@ | conversions.swift:29:12:29:30 | call to String.init(_:) | conversions.swift:29:12:29:32 | .utf8 | | conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:30 | call to String.init(_:) | | conversions.swift:30:20:30:33 | call to sourceString() | conversions.swift:30:20:30:35 | .utf8 | +| conversions.swift:32:5:32:9 | let ...? | conversions.swift:32:9:32:9 | v | | conversions.swift:32:9:32:9 | SSA def(v) | conversions.swift:33:13:33:13 | v | | conversions.swift:32:9:32:9 | v | conversions.swift:32:9:32:9 | SSA def(v) | | conversions.swift:32:13:32:23 | call to sourceInt() | conversions.swift:32:5:32:9 | let ...? | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 48ef4ada925..e2c7100da5c 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -5,6 +5,7 @@ edges | conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | | conversions.swift:29:12:29:30 | call to String.init(_:) | conversions.swift:29:12:29:32 | .utf8 | | conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:30 | call to String.init(_:) | +| conversions.swift:32:13:32:23 | call to sourceInt() | conversions.swift:33:13:33:13 | v | | conversions.swift:36:18:36:41 | call to numericCast(_:) | conversions.swift:37:12:37:12 | v2 | | conversions.swift:36:30:36:40 | call to sourceInt() | conversions.swift:36:18:36:41 | call to numericCast(_:) | | conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | conversions.swift:40:12:40:12 | v4 | @@ -131,6 +132,8 @@ nodes | conversions.swift:29:12:29:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | | conversions.swift:29:12:29:32 | .utf8 | semmle.label | .utf8 | | conversions.swift:29:19:29:29 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:32:13:32:23 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:33:13:33:13 | v | semmle.label | v | | conversions.swift:36:18:36:41 | call to numericCast(_:) | semmle.label | call to numericCast(_:) | | conversions.swift:36:30:36:40 | call to sourceInt() | semmle.label | call to sourceInt() | | conversions.swift:37:12:37:12 | v2 | semmle.label | v2 | @@ -322,6 +325,7 @@ subpaths | conversions.swift:27:12:27:29 | call to Float.init(_:) | conversions.swift:27:18:27:28 | call to sourceInt() | conversions.swift:27:12:27:29 | call to Float.init(_:) | result | | conversions.swift:28:12:28:30 | call to String.init(_:) | conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | result | | conversions.swift:29:12:29:32 | .utf8 | conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:32 | .utf8 | result | +| conversions.swift:33:13:33:13 | v | conversions.swift:32:13:32:23 | call to sourceInt() | conversions.swift:33:13:33:13 | v | result | | conversions.swift:37:12:37:12 | v2 | conversions.swift:36:30:36:40 | call to sourceInt() | conversions.swift:37:12:37:12 | v2 | result | | conversions.swift:40:12:40:12 | v4 | conversions.swift:39:31:39:41 | call to sourceInt() | conversions.swift:40:12:40:12 | v4 | result | | conversions.swift:43:12:43:12 | v5 | conversions.swift:42:36:42:46 | call to sourceInt() | conversions.swift:43:12:43:12 | v5 | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift index a4d8956dff1..b9a7ad6ad5c 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift @@ -30,7 +30,7 @@ func testConversions() { sink(arg: [UInt8](sourceString().utf8)) // $ MISSING: tainted= if let v = sourceInt() as? UInt { - sink(arg: v) // $ MISSING: tainted= + sink(arg: v) // $ tainted=32 } let v2: UInt8 = numericCast(sourceInt()) From 376479325de840bb4665994256ccb936fcd3f9ba Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 10 Aug 2023 09:27:05 +0100 Subject: [PATCH 050/788] Swift: Model LosslessStringConvertible. --- .../swift/frameworks/StandardLibrary/String.qll | 5 +++-- .../dataflow/taint/core/LocalTaint.expected | 3 +++ .../library-tests/dataflow/taint/core/Taint.expected | 11 +++++++++++ .../dataflow/taint/core/conversions.swift | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll index 4768521322f..65b1f23ad94 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll @@ -27,7 +27,7 @@ private class StringSource extends SourceModelCsv { } /** - * A model for `String` and `StringProtocol` members that permit taint flow. + * A model for members of `String`, `StringProtocol` and similar classes that permit taint flow. */ private class StringSummaries extends SummaryModelCsv { override predicate row(string row) { @@ -111,7 +111,8 @@ private class StringSummaries extends SummaryModelCsv { ";String;true;randomElement();;;Argument[-1];ReturnValue;taint", ";String;true;randomElement(using:);;;Argument[-1];ReturnValue;taint", ";String;true;enumerated();;;Argument[-1];ReturnValue;taint", - ";String;true;encode(to:);;;Argument[-1];Argument[0];taint" + ";String;true;encode(to:);;;Argument[-1];Argument[0];taint", + ";LosslessStringConvertible;true;init(_:);;;Argument[0];ReturnValue;taint", ] } } diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index 40862be951d..6fd724f31ad 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -10,6 +10,7 @@ | conversions.swift:15:7:15:7 | self | conversions.swift:15:7:15:7 | SSA def(self) | | conversions.swift:16:11:16:11 | SSA def(self) | conversions.swift:16:11:16:42 | self[return] | | conversions.swift:16:11:16:11 | self | conversions.swift:16:11:16:11 | SSA def(self) | +| conversions.swift:16:11:16:42 | [summary param] 0 in MyString.init(_:) | conversions.swift:16:11:16:42 | [summary] to write: ReturnValue in MyString.init(_:) | | conversions.swift:18:28:18:28 | SSA def(self) | conversions.swift:18:28:18:44 | self[return] | | conversions.swift:18:28:18:28 | self | conversions.swift:18:28:18:28 | SSA def(self) | | conversions.swift:19:33:19:33 | SSA def(self) | conversions.swift:19:33:19:49 | self[return] | @@ -73,6 +74,7 @@ | conversions.swift:80:6:80:6 | ms1 | conversions.swift:80:6:80:6 | SSA def(ms1) | | conversions.swift:80:12:80:26 | call to MyString.init(_:) | conversions.swift:80:12:80:27 | ...! | | conversions.swift:80:12:80:27 | ...! | conversions.swift:80:6:80:6 | ms1 | +| conversions.swift:80:21:80:21 | abc | conversions.swift:80:12:80:26 | call to MyString.init(_:) | | conversions.swift:81:12:81:12 | [post] ms1 | conversions.swift:82:12:82:12 | ms1 | | conversions.swift:81:12:81:12 | ms1 | conversions.swift:82:12:82:12 | ms1 | | conversions.swift:82:12:82:12 | [post] ms1 | conversions.swift:83:12:83:12 | ms1 | @@ -83,6 +85,7 @@ | conversions.swift:86:6:86:6 | ms2 | conversions.swift:86:6:86:6 | SSA def(ms2) | | conversions.swift:86:12:86:35 | call to MyString.init(_:) | conversions.swift:86:12:86:36 | ...! | | conversions.swift:86:12:86:36 | ...! | conversions.swift:86:6:86:6 | ms2 | +| conversions.swift:86:21:86:34 | call to sourceString() | conversions.swift:86:12:86:35 | call to MyString.init(_:) | | conversions.swift:87:12:87:12 | [post] ms2 | conversions.swift:88:12:88:12 | ms2 | | conversions.swift:87:12:87:12 | ms2 | conversions.swift:88:12:88:12 | ms2 | | conversions.swift:88:12:88:12 | [post] ms2 | conversions.swift:89:12:89:12 | ms2 | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index e2c7100da5c..25b8d79aa68 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -36,6 +36,11 @@ edges | conversions.swift:72:12:72:24 | call to sourceFloat() | conversions.swift:72:12:72:26 | .exponent | | conversions.swift:73:12:73:24 | call to sourceFloat() | conversions.swift:73:12:73:26 | .significand | | conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | +| conversions.swift:86:12:86:35 | call to MyString.init(_:) | conversions.swift:86:12:86:35 | call to MyString.init(_:) [some:0] | +| conversions.swift:86:12:86:35 | call to MyString.init(_:) | conversions.swift:87:12:87:12 | ms2 | +| conversions.swift:86:12:86:35 | call to MyString.init(_:) [some:0] | conversions.swift:86:12:86:36 | ...! | +| conversions.swift:86:12:86:36 | ...! | conversions.swift:87:12:87:12 | ms2 | +| conversions.swift:86:21:86:34 | call to sourceString() | conversions.swift:86:12:86:35 | call to MyString.init(_:) | | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:95:12:95:12 | parent | | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:96:12:96:12 | parent | | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:98:40:98:40 | parent | @@ -189,6 +194,11 @@ nodes | conversions.swift:77:12:77:25 | call to sourceString() | semmle.label | call to sourceString() | | conversions.swift:78:12:78:33 | call to String.init(_:) | semmle.label | call to String.init(_:) | | conversions.swift:78:19:78:32 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:86:12:86:35 | call to MyString.init(_:) | semmle.label | call to MyString.init(_:) | +| conversions.swift:86:12:86:35 | call to MyString.init(_:) [some:0] | semmle.label | call to MyString.init(_:) [some:0] | +| conversions.swift:86:12:86:36 | ...! | semmle.label | ...! | +| conversions.swift:86:21:86:34 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:87:12:87:12 | ms2 | semmle.label | ms2 | | conversions.swift:94:31:94:44 | call to sourceString() | semmle.label | call to sourceString() | | conversions.swift:95:12:95:12 | parent | semmle.label | parent | | conversions.swift:96:12:96:12 | parent | semmle.label | parent | @@ -351,6 +361,7 @@ subpaths | conversions.swift:73:12:73:26 | .significand | conversions.swift:73:12:73:24 | call to sourceFloat() | conversions.swift:73:12:73:26 | .significand | result | | conversions.swift:77:12:77:25 | call to sourceString() | conversions.swift:77:12:77:25 | call to sourceString() | conversions.swift:77:12:77:25 | call to sourceString() | result | | conversions.swift:78:12:78:33 | call to String.init(_:) | conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | result | +| conversions.swift:87:12:87:12 | ms2 | conversions.swift:86:21:86:34 | call to sourceString() | conversions.swift:87:12:87:12 | ms2 | result | | conversions.swift:95:12:95:12 | parent | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:95:12:95:12 | parent | result | | conversions.swift:96:12:96:12 | parent | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:96:12:96:12 | parent | result | | conversions.swift:99:12:99:12 | v3 | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:99:12:99:12 | v3 | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift index b9a7ad6ad5c..499ec8dcfe2 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift @@ -84,7 +84,7 @@ func testConversions() { sink(arg: ms1.clean) let ms2 = MyString(sourceString())! - sink(arg: ms2) // $ MISSING: tainted= + sink(arg: ms2) // $ tainted=86 sink(arg: ms2.description) // $ MISSING: tainted= sink(arg: ms2.debugDescription) // $ MISSING: tainted= sink(arg: ms2.clean) From 7882cf0bf0e93c99713fe1d8b01324cf5c8e4ca9 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Thu, 10 Aug 2023 09:21:02 -0400 Subject: [PATCH 051/788] Update ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql Co-authored-by: Alex Ford --- ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index 48f379ddcdc..9c7de85ebc8 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -13,8 +13,7 @@ private import codeql.ruby.AST private import codeql.ruby.DataFlow -import codeql.ruby.ApiGraphs -import ruby +private import codeql.ruby.ApiGraphs private class OpenSslHmacSource extends DataFlow::Node { OpenSslHmacSource() { From b899b648e5a24b536d3bedea69c5c37d2977b2dc Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Thu, 10 Aug 2023 09:21:16 -0400 Subject: [PATCH 052/788] Update ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql Co-authored-by: Alex Ford --- ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql | 1 + 1 file changed, 1 insertion(+) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index 9c7de85ebc8..e32c534d213 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -38,6 +38,7 @@ private module UnsafeHmacComparison { import DataFlow::Global } +private import UnsafeHmacComparison::PathGraph from UnsafeHmacComparison::PathNode source, UnsafeHmacComparison::PathNode sink where UnsafeHmacComparison::flowPath(source, sink) select sink.getNode(), source, sink, "This comparison is potentially vulnerable to a timing attack." From 01577dac3221a205ec4e82084fc25c4ec20f4de7 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Thu, 10 Aug 2023 13:59:47 +0000 Subject: [PATCH 053/788] format document --- ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql | 1 + 1 file changed, 1 insertion(+) diff --git a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql index e32c534d213..65907b0f885 100644 --- a/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql +++ b/ruby/ql/src/experimental/cwe-208/UnsafeHmacComparison.ql @@ -39,6 +39,7 @@ private module UnsafeHmacComparison { } private import UnsafeHmacComparison::PathGraph + from UnsafeHmacComparison::PathNode source, UnsafeHmacComparison::PathNode sink where UnsafeHmacComparison::flowPath(source, sink) select sink.getNode(), source, sink, "This comparison is potentially vulnerable to a timing attack." From 936b1ced4d9bbc3c4404e6bbfe0b28d8f9de3102 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 10 Aug 2023 19:24:30 +0100 Subject: [PATCH 054/788] Swift: Add one last test case (and address a .expected change elsewhere). --- .../library-tests/dataflow/taint/core/conversions.swift | 8 ++++++++ .../library-tests/dataflow/taint/libraries/string.swift | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift index 499ec8dcfe2..321c555e0ab 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift @@ -99,3 +99,11 @@ func testConversions() { sink(arg: v3) // $ tainted=94 sink(arg: v3 as! MyParentClass) // $ tainted=94 } + +var myCEnumConst : Int = 0 +typealias MyCEnumType = UInt32 + +func testCEnum() { + sink(arg: MyCEnumType(myCEnumConst)) + sink(arg: MyCEnumType(sourceInt())) // $ tainted=108 +} diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift index 9f684139fd3..919a07b6675 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift @@ -589,7 +589,7 @@ func taintedThroughConversion() { sink(arg: String(describing: source())) // $ tainted=589 sink(arg: Int("123")!) - sink(arg: Int(source2())!) // $ MISSING: tainted=592 + sink(arg: Int(source2())!) // $ tainted=592 } func untaintedFields() { From 4f5d7e1b6f33ca95a2a0a69bbca84a7ac275ccd9 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 10 Aug 2023 19:49:27 +0100 Subject: [PATCH 055/788] Swift: Accept test changes. --- .../dataflow/dataflow/DataFlow.expected | 31 +++++++++++++++++++ .../dataflow/dataflow/LocalFlow.expected | 11 +++++++ .../dataflow/taint/core/LocalTaint.expected | 2 ++ .../dataflow/taint/core/Taint.expected | 4 +++ 4 files changed, 48 insertions(+) diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index b0404de37ec..77530c3af28 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -6,9 +6,11 @@ edges | file://:0:0:0:0 | self [v3] | file://:0:0:0:0 | .v3 | | file://:0:0:0:0 | self [x, some:0] | file://:0:0:0:0 | .x [some:0] | | file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | +| file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v2] | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v3] | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [x] | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [x] | | file://:0:0:0:0 | value [some:0] | file://:0:0:0:0 | [post] self [v2, some:0] | | file://:0:0:0:0 | value [some:0] | file://:0:0:0:0 | [post] self [x, some:0] | | test.swift:6:19:6:26 | call to source() | test.swift:7:15:7:15 | t1 | @@ -109,6 +111,8 @@ edges | test.swift:225:14:225:21 | call to source() | test.swift:238:13:238:15 | .source_value | | test.swift:259:12:259:19 | call to source() | test.swift:259:12:259:19 | call to source() [some:0] | | test.swift:259:12:259:19 | call to source() | test.swift:263:13:263:28 | call to optionalSource() | +| test.swift:259:12:259:19 | call to source() | test.swift:517:13:517:28 | call to optionalSource() | +| test.swift:259:12:259:19 | call to source() | test.swift:544:13:544:28 | call to optionalSource() | | test.swift:259:12:259:19 | call to source() [some:0] | test.swift:263:13:263:28 | call to optionalSource() [some:0] | | test.swift:259:12:259:19 | call to source() [some:0] | test.swift:517:13:517:28 | call to optionalSource() [some:0] | | test.swift:259:12:259:19 | call to source() [some:0] | test.swift:544:13:544:28 | call to optionalSource() [some:0] | @@ -119,7 +123,9 @@ edges | test.swift:263:13:263:28 | call to optionalSource() | test.swift:275:15:275:27 | ... ??(_:_:) ... | | test.swift:263:13:263:28 | call to optionalSource() | test.swift:279:15:279:31 | ... ? ... : ... | | test.swift:263:13:263:28 | call to optionalSource() | test.swift:280:15:280:38 | ... ? ... : ... | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:285:19:285:19 | z | | test.swift:263:13:263:28 | call to optionalSource() | test.swift:291:16:291:17 | ...? | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:300:15:300:15 | z1 | | test.swift:263:13:263:28 | call to optionalSource() | test.swift:303:15:303:16 | ...! | | test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:267:15:267:15 | x [some:0] | | test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:279:26:279:26 | x [some:0] | @@ -147,6 +153,7 @@ edges | test.swift:291:16:291:17 | ...? | test.swift:291:16:291:26 | call to signum() | | test.swift:291:16:291:17 | ...? [some:0] | test.swift:291:16:291:26 | call to signum() [some:0] | | test.swift:291:16:291:26 | call to signum() | test.swift:291:16:291:26 | call to signum() [some:0] | +| test.swift:291:16:291:26 | call to signum() | test.swift:292:19:292:19 | z | | test.swift:291:16:291:26 | call to signum() [some:0] | test.swift:291:8:291:12 | let ...? [some:0] | | test.swift:298:11:298:15 | let ...? [some:0] | test.swift:298:15:298:15 | z1 | | test.swift:298:15:298:15 | z1 | test.swift:300:15:300:15 | z1 | @@ -246,6 +253,7 @@ edges | test.swift:507:15:507:15 | e2 [some:0] | test.swift:507:15:507:17 | ...! | | test.swift:509:15:509:15 | e4 [some:0] | test.swift:509:15:509:17 | ...! | | test.swift:511:15:511:15 | e6 [some:0] | test.swift:511:15:511:17 | ...! | +| test.swift:517:13:517:28 | call to optionalSource() | test.swift:520:19:520:19 | a | | test.swift:517:13:517:28 | call to optionalSource() [some:0] | test.swift:519:8:519:12 | let ...? [some:0] | | test.swift:517:13:517:28 | call to optionalSource() [some:0] | test.swift:524:19:524:19 | x [some:0] | | test.swift:519:8:519:12 | let ...? [some:0] | test.swift:519:12:519:12 | a | @@ -256,15 +264,24 @@ edges | test.swift:526:11:526:22 | .some(...) [some:0] | test.swift:526:21:526:21 | a | | test.swift:526:21:526:21 | a | test.swift:527:19:527:19 | a | | test.swift:540:9:540:9 | self [x, some:0] | file://:0:0:0:0 | self [x, some:0] | +| test.swift:540:9:540:9 | self [x] | file://:0:0:0:0 | self [x] | +| test.swift:540:9:540:9 | value | file://:0:0:0:0 | value | | test.swift:540:9:540:9 | value [some:0] | file://:0:0:0:0 | value [some:0] | +| test.swift:544:13:544:28 | call to optionalSource() | test.swift:546:12:546:12 | x | | test.swift:544:13:544:28 | call to optionalSource() [some:0] | test.swift:546:12:546:12 | x [some:0] | | test.swift:546:5:546:5 | [post] cx [x, some:0] | test.swift:550:20:550:20 | cx [x, some:0] | +| test.swift:546:5:546:5 | [post] cx [x] | test.swift:550:20:550:20 | cx [x] | +| test.swift:546:12:546:12 | x | test.swift:540:9:540:9 | value | +| test.swift:546:12:546:12 | x | test.swift:546:5:546:5 | [post] cx [x] | | test.swift:546:12:546:12 | x [some:0] | test.swift:540:9:540:9 | value [some:0] | | test.swift:546:12:546:12 | x [some:0] | test.swift:546:5:546:5 | [post] cx [x, some:0] | | test.swift:550:11:550:15 | let ...? [some:0] | test.swift:550:15:550:15 | z1 | | test.swift:550:15:550:15 | z1 | test.swift:551:15:551:15 | z1 | | test.swift:550:20:550:20 | cx [x, some:0] | test.swift:540:9:540:9 | self [x, some:0] | | test.swift:550:20:550:20 | cx [x, some:0] | test.swift:550:20:550:23 | .x [some:0] | +| test.swift:550:20:550:20 | cx [x] | test.swift:540:9:540:9 | self [x] | +| test.swift:550:20:550:20 | cx [x] | test.swift:550:20:550:23 | .x | +| test.swift:550:20:550:23 | .x | test.swift:551:15:551:15 | z1 | | test.swift:550:20:550:23 | .x [some:0] | test.swift:550:11:550:15 | let ...? [some:0] | | test.swift:557:14:557:21 | call to source() | test.swift:557:13:557:21 | call to +(_:) | | test.swift:566:9:566:9 | self [str] | file://:0:0:0:0 | self [str] | @@ -396,12 +413,14 @@ nodes | file://:0:0:0:0 | .v2 [some:0] | semmle.label | .v2 [some:0] | | file://:0:0:0:0 | .v3 | semmle.label | .v3 | | file://:0:0:0:0 | .x | semmle.label | .x | +| file://:0:0:0:0 | .x | semmle.label | .x | | file://:0:0:0:0 | .x [some:0] | semmle.label | .x [some:0] | | file://:0:0:0:0 | [post] self [v2, some:0] | semmle.label | [post] self [v2, some:0] | | file://:0:0:0:0 | [post] self [v2] | semmle.label | [post] self [v2] | | file://:0:0:0:0 | [post] self [v3] | semmle.label | [post] self [v3] | | file://:0:0:0:0 | [post] self [x, some:0] | semmle.label | [post] self [x, some:0] | | file://:0:0:0:0 | [post] self [x] | semmle.label | [post] self [x] | +| file://:0:0:0:0 | [post] self [x] | semmle.label | [post] self [x] | | file://:0:0:0:0 | self [a, x] | semmle.label | self [a, x] | | file://:0:0:0:0 | self [str] | semmle.label | self [str] | | file://:0:0:0:0 | self [v2, some:0] | semmle.label | self [v2, some:0] | @@ -409,6 +428,8 @@ nodes | file://:0:0:0:0 | self [v3] | semmle.label | self [v3] | | file://:0:0:0:0 | self [x, some:0] | semmle.label | self [x, some:0] | | file://:0:0:0:0 | self [x] | semmle.label | self [x] | +| file://:0:0:0:0 | self [x] | semmle.label | self [x] | +| file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | @@ -665,6 +686,7 @@ nodes | test.swift:509:15:509:17 | ...! | semmle.label | ...! | | test.swift:511:15:511:15 | e6 [some:0] | semmle.label | e6 [some:0] | | test.swift:511:15:511:17 | ...! | semmle.label | ...! | +| test.swift:517:13:517:28 | call to optionalSource() | semmle.label | call to optionalSource() | | test.swift:517:13:517:28 | call to optionalSource() [some:0] | semmle.label | call to optionalSource() [some:0] | | test.swift:519:8:519:12 | let ...? [some:0] | semmle.label | let ...? [some:0] | | test.swift:519:12:519:12 | a | semmle.label | a | @@ -676,13 +698,20 @@ nodes | test.swift:526:21:526:21 | a | semmle.label | a | | test.swift:527:19:527:19 | a | semmle.label | a | | test.swift:540:9:540:9 | self [x, some:0] | semmle.label | self [x, some:0] | +| test.swift:540:9:540:9 | self [x] | semmle.label | self [x] | +| test.swift:540:9:540:9 | value | semmle.label | value | | test.swift:540:9:540:9 | value [some:0] | semmle.label | value [some:0] | +| test.swift:544:13:544:28 | call to optionalSource() | semmle.label | call to optionalSource() | | test.swift:544:13:544:28 | call to optionalSource() [some:0] | semmle.label | call to optionalSource() [some:0] | | test.swift:546:5:546:5 | [post] cx [x, some:0] | semmle.label | [post] cx [x, some:0] | +| test.swift:546:5:546:5 | [post] cx [x] | semmle.label | [post] cx [x] | +| test.swift:546:12:546:12 | x | semmle.label | x | | test.swift:546:12:546:12 | x [some:0] | semmle.label | x [some:0] | | test.swift:550:11:550:15 | let ...? [some:0] | semmle.label | let ...? [some:0] | | test.swift:550:15:550:15 | z1 | semmle.label | z1 | | test.swift:550:20:550:20 | cx [x, some:0] | semmle.label | cx [x, some:0] | +| test.swift:550:20:550:20 | cx [x] | semmle.label | cx [x] | +| test.swift:550:20:550:23 | .x | semmle.label | .x | | test.swift:550:20:550:23 | .x [some:0] | semmle.label | .x [some:0] | | test.swift:551:15:551:15 | z1 | semmle.label | z1 | | test.swift:557:13:557:21 | call to +(_:) | semmle.label | call to +(_:) | @@ -846,8 +875,10 @@ subpaths | test.swift:219:13:219:15 | .a [x] | test.swift:163:7:163:7 | self [x] | file://:0:0:0:0 | .x | test.swift:219:13:219:17 | .x | | test.swift:490:24:490:31 | call to source() | test.swift:375:16:375:21 | v | test.swift:375:45:375:62 | call to ... [mySingle:0] | test.swift:490:14:490:32 | call to mkMyEnum1(_:) [mySingle:0] | | test.swift:503:26:503:33 | call to source() | test.swift:377:18:377:23 | v | test.swift:377:45:377:60 | call to ... [some:0] | test.swift:503:14:503:34 | call to mkOptional1(_:) [some:0] | +| test.swift:546:12:546:12 | x | test.swift:540:9:540:9 | value | file://:0:0:0:0 | [post] self [x] | test.swift:546:5:546:5 | [post] cx [x] | | test.swift:546:12:546:12 | x [some:0] | test.swift:540:9:540:9 | value [some:0] | file://:0:0:0:0 | [post] self [x, some:0] | test.swift:546:5:546:5 | [post] cx [x, some:0] | | test.swift:550:20:550:20 | cx [x, some:0] | test.swift:540:9:540:9 | self [x, some:0] | file://:0:0:0:0 | .x [some:0] | test.swift:550:20:550:23 | .x [some:0] | +| test.swift:550:20:550:20 | cx [x] | test.swift:540:9:540:9 | self [x] | file://:0:0:0:0 | .x | test.swift:550:20:550:23 | .x | | test.swift:574:20:574:28 | call to source3() | test.swift:567:10:567:13 | s | test.swift:568:7:568:7 | [post] self [str] | test.swift:574:7:574:7 | [post] self [str] | | test.swift:580:13:580:33 | call to MyClass.init(s:) [str] | test.swift:566:9:566:9 | self [str] | file://:0:0:0:0 | .str | test.swift:580:13:580:35 | .str | | test.swift:580:24:580:32 | call to source3() | test.swift:567:10:567:13 | s | test.swift:567:5:569:5 | self[return] [str] | test.swift:580:13:580:33 | call to MyClass.init(s:) [str] | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected index 6058e6e645b..b583c64cdca 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected @@ -281,30 +281,36 @@ | test.swift:282:26:282:26 | y | test.swift:287:16:287:16 | y | | test.swift:282:26:282:27 | ...! | test.swift:282:15:282:38 | ... ? ... : ... | | test.swift:282:31:282:38 | call to source() | test.swift:282:15:282:38 | ... ? ... : ... | +| test.swift:284:8:284:12 | let ...? | test.swift:284:12:284:12 | z | | test.swift:284:12:284:12 | SSA def(z) | test.swift:285:19:285:19 | z | | test.swift:284:12:284:12 | z | test.swift:284:12:284:12 | SSA def(z) | | test.swift:284:16:284:16 | x | test.swift:284:8:284:12 | let ...? | | test.swift:284:16:284:16 | x | test.swift:291:16:291:16 | x | +| test.swift:287:8:287:12 | let ...? | test.swift:287:12:287:12 | z | | test.swift:287:12:287:12 | SSA def(z) | test.swift:288:19:288:19 | z | | test.swift:287:12:287:12 | z | test.swift:287:12:287:12 | SSA def(z) | | test.swift:287:16:287:16 | y | test.swift:287:8:287:12 | let ...? | | test.swift:287:16:287:16 | y | test.swift:294:16:294:16 | y | +| test.swift:291:8:291:12 | let ...? | test.swift:291:12:291:12 | z | | test.swift:291:12:291:12 | SSA def(z) | test.swift:292:19:292:19 | z | | test.swift:291:12:291:12 | z | test.swift:291:12:291:12 | SSA def(z) | | test.swift:291:16:291:16 | x | test.swift:291:16:291:17 | ...? | | test.swift:291:16:291:16 | x | test.swift:298:20:298:20 | x | | test.swift:291:16:291:26 | OptionalEvaluationExpr | test.swift:291:8:291:12 | let ...? | | test.swift:291:16:291:26 | call to signum() | test.swift:291:16:291:26 | OptionalEvaluationExpr | +| test.swift:294:8:294:12 | let ...? | test.swift:294:12:294:12 | z | | test.swift:294:12:294:12 | SSA def(z) | test.swift:295:19:295:19 | z | | test.swift:294:12:294:12 | z | test.swift:294:12:294:12 | SSA def(z) | | test.swift:294:16:294:16 | y | test.swift:294:16:294:17 | ...? | | test.swift:294:16:294:16 | y | test.swift:299:20:299:20 | y | | test.swift:294:16:294:26 | OptionalEvaluationExpr | test.swift:294:8:294:12 | let ...? | | test.swift:294:16:294:26 | call to signum() | test.swift:294:16:294:26 | OptionalEvaluationExpr | +| test.swift:298:11:298:15 | let ...? | test.swift:298:15:298:15 | z1 | | test.swift:298:15:298:15 | SSA def(z1) | test.swift:300:15:300:15 | z1 | | test.swift:298:15:298:15 | z1 | test.swift:298:15:298:15 | SSA def(z1) | | test.swift:298:20:298:20 | x | test.swift:298:11:298:15 | let ...? | | test.swift:298:20:298:20 | x | test.swift:303:15:303:15 | x | +| test.swift:299:11:299:15 | let ...? | test.swift:299:15:299:15 | z2 | | test.swift:299:15:299:15 | SSA def(z2) | test.swift:301:15:301:15 | z2 | | test.swift:299:15:299:15 | z2 | test.swift:299:15:299:15 | SSA def(z2) | | test.swift:299:20:299:20 | y | test.swift:299:11:299:15 | let ...? | @@ -582,10 +588,12 @@ | test.swift:517:9:517:9 | SSA def(x) | test.swift:519:16:519:16 | x | | test.swift:517:9:517:9 | x | test.swift:517:9:517:9 | SSA def(x) | | test.swift:517:13:517:28 | call to optionalSource() | test.swift:517:9:517:9 | x | +| test.swift:519:8:519:12 | let ...? | test.swift:519:12:519:12 | a | | test.swift:519:12:519:12 | SSA def(a) | test.swift:519:27:519:27 | SSA phi(a) | | test.swift:519:12:519:12 | a | test.swift:519:12:519:12 | SSA def(a) | | test.swift:519:16:519:16 | x | test.swift:519:8:519:12 | let ...? | | test.swift:519:16:519:16 | x | test.swift:524:19:524:19 | x | +| test.swift:519:19:519:23 | let ...? | test.swift:519:23:519:23 | b | | test.swift:519:23:519:23 | SSA def(b) | test.swift:521:19:521:19 | b | | test.swift:519:23:519:23 | b | test.swift:519:23:519:23 | SSA def(b) | | test.swift:519:27:519:27 | SSA phi(a) | test.swift:520:19:520:19 | a | @@ -600,6 +608,7 @@ | test.swift:526:21:526:21 | a | test.swift:526:21:526:21 | SSA def(a) | | test.swift:526:35:526:35 | SSA def(b) | test.swift:528:19:528:19 | b | | test.swift:526:35:526:35 | b | test.swift:526:35:526:35 | SSA def(b) | +| test.swift:533:8:533:17 | let ...? | test.swift:533:12:533:17 | (...) | | test.swift:533:13:533:13 | SSA def(x) | test.swift:534:19:534:19 | x | | test.swift:533:13:533:13 | x | test.swift:533:13:533:13 | SSA def(x) | | test.swift:533:16:533:16 | SSA def(y) | test.swift:535:19:535:19 | y | @@ -628,9 +637,11 @@ | test.swift:547:14:547:16 | call to C.init() | test.swift:547:9:547:9 | cy | | test.swift:548:5:548:5 | [post] cy | test.swift:552:20:552:20 | cy | | test.swift:548:5:548:5 | cy | test.swift:552:20:552:20 | cy | +| test.swift:550:11:550:15 | let ...? | test.swift:550:15:550:15 | z1 | | test.swift:550:15:550:15 | SSA def(z1) | test.swift:551:15:551:15 | z1 | | test.swift:550:15:550:15 | z1 | test.swift:550:15:550:15 | SSA def(z1) | | test.swift:550:20:550:23 | .x | test.swift:550:11:550:15 | let ...? | +| test.swift:552:11:552:15 | let ...? | test.swift:552:15:552:15 | z2 | | test.swift:552:15:552:15 | SSA def(z2) | test.swift:553:15:553:15 | z2 | | test.swift:552:15:552:15 | z2 | test.swift:552:15:552:15 | SSA def(z2) | | test.swift:552:20:552:23 | .x | test.swift:552:11:552:15 | let ...? | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index 6fd724f31ad..cb5fc364e9f 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -107,6 +107,8 @@ | conversions.swift:98:40:98:40 | parent | conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | | conversions.swift:99:12:99:12 | [post] v3 | conversions.swift:100:12:100:12 | v3 | | conversions.swift:99:12:99:12 | v3 | conversions.swift:100:12:100:12 | v3 | +| conversions.swift:107:24:107:24 | myCEnumConst | conversions.swift:107:12:107:36 | call to Self.init(_:) | +| conversions.swift:108:24:108:34 | call to sourceInt() | conversions.swift:108:12:108:35 | call to Self.init(_:) | | simple.swift:12:13:12:13 | 1 | simple.swift:12:13:12:24 | ... .+(_:_:) ... | | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | | simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 25b8d79aa68..427040adc40 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -47,6 +47,7 @@ edges | conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | conversions.swift:99:12:99:12 | v3 | | conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | conversions.swift:100:12:100:12 | v3 | | conversions.swift:98:40:98:40 | parent | conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | +| conversions.swift:108:24:108:34 | call to sourceInt() | conversions.swift:108:12:108:35 | call to Self.init(_:) | | file://:0:0:0:0 | self [first] | file://:0:0:0:0 | .first | | file://:0:0:0:0 | self [second] | file://:0:0:0:0 | .second | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [first] | @@ -206,6 +207,8 @@ nodes | conversions.swift:98:40:98:40 | parent | semmle.label | parent | | conversions.swift:99:12:99:12 | v3 | semmle.label | v3 | | conversions.swift:100:12:100:12 | v3 | semmle.label | v3 | +| conversions.swift:108:12:108:35 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:108:24:108:34 | call to sourceInt() | semmle.label | call to sourceInt() | | file://:0:0:0:0 | .first | semmle.label | .first | | file://:0:0:0:0 | .second | semmle.label | .second | | file://:0:0:0:0 | [post] self [first] | semmle.label | [post] self [first] | @@ -366,6 +369,7 @@ subpaths | conversions.swift:96:12:96:12 | parent | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:96:12:96:12 | parent | result | | conversions.swift:99:12:99:12 | v3 | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:99:12:99:12 | v3 | result | | conversions.swift:100:12:100:12 | v3 | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:100:12:100:12 | v3 | result | +| conversions.swift:108:12:108:35 | call to Self.init(_:) | conversions.swift:108:24:108:34 | call to sourceInt() | conversions.swift:108:12:108:35 | call to Self.init(_:) | result | | simple.swift:12:13:12:24 | ... .+(_:_:) ... | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | result | | simple.swift:13:13:13:24 | ... .+(_:_:) ... | simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | result | | simple.swift:14:13:14:24 | ... .-(_:_:) ... | simple.swift:14:17:14:24 | call to source() | simple.swift:14:13:14:24 | ... .-(_:_:) ... | result | From 0a2e4def8e925b5a3c62b429443124982a3c95eb Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 10 Aug 2023 19:53:24 +0100 Subject: [PATCH 056/788] Swift: Change note. --- swift/ql/lib/change-notes/2023-08-10-numeric-models.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-08-10-numeric-models.md diff --git a/swift/ql/lib/change-notes/2023-08-10-numeric-models.md b/swift/ql/lib/change-notes/2023-08-10-numeric-models.md new file mode 100644 index 00000000000..85812d99c10 --- /dev/null +++ b/swift/ql/lib/change-notes/2023-08-10-numeric-models.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- + +* Added taint models for `Numeric` conversions. From 70c2ef599a8ea7adc777336a34abbfafd6c2b555 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 10 Aug 2023 20:24:01 +0000 Subject: [PATCH 057/788] Swift: collection/tuple content for dictionary flow --- .../dataflow/internal/DataFlowPrivate.qll | 62 +++++++++++++++++++ .../frameworks/StandardLibrary/Dictionary.qll | 9 +++ .../dataflow/dataflow/DataFlow.expected | 34 ++++++++++ .../dataflow/dataflow/LocalFlow.expected | 53 ++++++++++++++++ .../dataflow/dataflow/test.swift | 35 +++++++++++ 5 files changed, 193 insertions(+) create mode 100644 swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 145ac20573b..e5ea5ad0034 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -9,6 +9,7 @@ private import codeql.swift.dataflow.FlowSummary as FlowSummary private import codeql.swift.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl private import codeql.swift.frameworks.StandardLibrary.PointerTypes private import codeql.swift.frameworks.StandardLibrary.Array +private import codeql.swift.frameworks.StandardLibrary.Dictionary /** Gets the callable in which this node occurs. */ DataFlowCallable nodeGetEnclosingCallable(Node n) { result = n.(NodeImpl).getEnclosingCallable() } @@ -114,6 +115,9 @@ private module Cached { any(ApplyExpr apply).getQualifier(), any(TupleElementExpr te).getSubExpr(), any(SubscriptExpr se).getBase() ]) + } or + TDictionarySubscriptNode(SubscriptExpr e) { + e.getBase().getType().getCanonicalType() instanceof CanonicalDictionaryType } private predicate localSsaFlowStepUseUse(Ssa::Definition def, Node nodeFrom, Node nodeTo) { @@ -296,6 +300,29 @@ import Cached /** Holds if `n` should be hidden from path explanations. */ predicate nodeIsHidden(Node n) { n instanceof FlowSummaryNode } +private class DictionarySubscriptNode extends NodeImpl, TDictionarySubscriptNode { + SubscriptExpr expr; + DictionarySubscriptNode() { + this = TDictionarySubscriptNode(expr) + } + + override DataFlowCallable getEnclosingCallable() { + result.asSourceCallable() = expr.getEnclosingCallable() + } + + override string toStringImpl() { + result = "DictionarySubscriptNode" + } + + override Location getLocationImpl() { + result = expr.getLocation() + } + + SubscriptExpr getExpr() { + result = expr + } +} + private module ParameterNodes { abstract class ParameterNodeImpl extends NodeImpl { predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { none() } @@ -727,6 +754,30 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { c.isSingleton(any(Content::ArrayContent ac)) ) or + // read of a dictionary value via subscript operator, with intermediate step + exists(AssignExpr assign, SubscriptExpr subscript | + subscript = assign.getDest() and + ( + subscript.getArgument(0).getExpr() = node1.asExpr() and + node2.(DictionarySubscriptNode).getExpr() = subscript and + c.isSingleton(any(Content::TupleContent tc | tc.getIndex() = 1)) + or + assign.getSource() = node1.asExpr() and + node2.(DictionarySubscriptNode).getExpr() = subscript and + c.isSingleton(any(Content::TupleContent tc | tc.getIndex() = 1)) + or + node1.(DictionarySubscriptNode) = node1 and + node2.asExpr() = subscript and + c.isSingleton(any(Content::CollectionContent cc)) + ) + ) + or + exists(DictionaryExpr dict | + node1.asExpr() = dict.getAnElement() and + node2.asExpr() = dict and + c.isSingleton(any(Content::CollectionContent cc)) + ) + or FlowSummaryImpl::Private::Steps::summaryStoreStep(node1.(FlowSummaryNode).getSummaryNode(), c, node2.(FlowSummaryNode).getSummaryNode()) } @@ -807,6 +858,17 @@ predicate readStep(Node node1, ContentSet c, Node node2) { c.isSingleton(any(Content::ArrayContent ac)) ) or + // read of a dictionary value via subscript operator + exists(SubscriptExpr subscript | + subscript.getBase() = node1.asExpr() and + node2.(DictionarySubscriptNode).getExpr() = subscript and + c.isSingleton(any(Content::CollectionContent cc)) + or + subscript = node2.asExpr() and + node1.(DictionarySubscriptNode).getExpr() = subscript and + c.isSingleton(any(Content::TupleContent tc | tc.getIndex() = 1)) + ) + or FlowSummaryImpl::Private::Steps::summaryReadStep(node1.(FlowSummaryNode).getSummaryNode(), c, node2.(FlowSummaryNode).getSummaryNode()) } diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll new file mode 100644 index 00000000000..42d8d8ff55b --- /dev/null +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll @@ -0,0 +1,9 @@ +import swift +private import codeql.swift.dataflow.ExternalFlow + +/** + * An instance of the `Dictionary` type. + */ +class CanonicalDictionaryType extends BoundGenericType { + CanonicalDictionaryType() { this.getName().matches("Dictionary<%") } +} diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index c638ea8e344..fe5b804c71a 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -404,6 +404,20 @@ edges | test.swift:756:15:756:19 | .v2 [some:0] | test.swift:756:15:756:21 | ...! | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:732:9:732:9 | self [v3] | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:757:15:757:19 | .v3 | +| test.swift:767:5:767:5 | [post] dict1 [Array element] | test.swift:769:15:769:15 | dict1 [Array element] | +| test.swift:767:16:767:23 | call to source() | test.swift:767:5:767:5 | [post] dict1 [Array element] | +| test.swift:769:15:769:15 | dict1 [Array element] | test.swift:769:15:769:22 | ...[...] | +| test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | test.swift:780:15:780:15 | dict3 [Collection element, Tuple element at index 1] | +| test.swift:779:18:779:28 | (...) [Tuple element at index 1] | test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | +| test.swift:779:21:779:28 | call to source() | test.swift:779:18:779:28 | (...) [Tuple element at index 1] | +| test.swift:780:15:780:15 | dict3 [Collection element, Tuple element at index 1] | test.swift:780:15:780:22 | DictionarySubscriptNode [Tuple element at index 1] | +| test.swift:780:15:780:22 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:780:15:780:22 | ...[...] | +| test.swift:789:17:789:28 | [...] [Collection element, Tuple element at index 1] | test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | +| test.swift:789:18:789:27 | (...) [Tuple element at index 1] | test.swift:789:17:789:28 | [...] [Collection element, Tuple element at index 1] | +| test.swift:789:20:789:27 | call to source() | test.swift:789:18:789:27 | (...) [Tuple element at index 1] | +| test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:793:15:793:35 | call to randomElement() [some:0, Tuple element at index 1] | +| test.swift:793:15:793:35 | call to randomElement() [some:0, Tuple element at index 1] | test.swift:793:15:793:36 | ...! [Tuple element at index 1] | +| test.swift:793:15:793:36 | ...! [Tuple element at index 1] | test.swift:793:15:793:38 | .1 | nodes | file://:0:0:0:0 | .a [x] | semmle.label | .a [x] | | file://:0:0:0:0 | .str | semmle.label | .str | @@ -849,6 +863,23 @@ nodes | test.swift:756:15:756:21 | ...! | semmle.label | ...! | | test.swift:757:15:757:15 | mo1 [v3] | semmle.label | mo1 [v3] | | test.swift:757:15:757:19 | .v3 | semmle.label | .v3 | +| test.swift:767:5:767:5 | [post] dict1 [Array element] | semmle.label | [post] dict1 [Array element] | +| test.swift:767:16:767:23 | call to source() | semmle.label | call to source() | +| test.swift:769:15:769:15 | dict1 [Array element] | semmle.label | dict1 [Array element] | +| test.swift:769:15:769:22 | ...[...] | semmle.label | ...[...] | +| test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | semmle.label | [...] [Collection element, Tuple element at index 1] | +| test.swift:779:18:779:28 | (...) [Tuple element at index 1] | semmle.label | (...) [Tuple element at index 1] | +| test.swift:779:21:779:28 | call to source() | semmle.label | call to source() | +| test.swift:780:15:780:15 | dict3 [Collection element, Tuple element at index 1] | semmle.label | dict3 [Collection element, Tuple element at index 1] | +| test.swift:780:15:780:22 | ...[...] | semmle.label | ...[...] | +| test.swift:780:15:780:22 | DictionarySubscriptNode [Tuple element at index 1] | semmle.label | DictionarySubscriptNode [Tuple element at index 1] | +| test.swift:789:17:789:28 | [...] [Collection element, Tuple element at index 1] | semmle.label | [...] [Collection element, Tuple element at index 1] | +| test.swift:789:18:789:27 | (...) [Tuple element at index 1] | semmle.label | (...) [Tuple element at index 1] | +| test.swift:789:20:789:27 | call to source() | semmle.label | call to source() | +| test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | semmle.label | dict4 [Collection element, Tuple element at index 1] | +| test.swift:793:15:793:35 | call to randomElement() [some:0, Tuple element at index 1] | semmle.label | call to randomElement() [some:0, Tuple element at index 1] | +| test.swift:793:15:793:36 | ...! [Tuple element at index 1] | semmle.label | ...! [Tuple element at index 1] | +| test.swift:793:15:793:38 | .1 | semmle.label | .1 | subpaths | test.swift:75:22:75:22 | x | test.swift:65:16:65:28 | arg1 | test.swift:65:1:70:1 | arg2[return] | test.swift:75:32:75:32 | [post] y | | test.swift:114:19:114:19 | arg | test.swift:109:9:109:14 | arg | test.swift:110:12:110:12 | arg | test.swift:114:12:114:22 | call to ... | @@ -996,3 +1027,6 @@ subpaths | test.swift:754:15:754:15 | v3 | test.swift:744:10:744:17 | call to source() | test.swift:754:15:754:15 | v3 | result | | test.swift:756:15:756:21 | ...! | test.swift:746:14:746:21 | call to source() | test.swift:756:15:756:21 | ...! | result | | test.swift:757:15:757:19 | .v3 | test.swift:747:14:747:21 | call to source() | test.swift:757:15:757:19 | .v3 | result | +| test.swift:769:15:769:22 | ...[...] | test.swift:767:16:767:23 | call to source() | test.swift:769:15:769:22 | ...[...] | result | +| test.swift:780:15:780:22 | ...[...] | test.swift:779:21:779:28 | call to source() | test.swift:780:15:780:22 | ...[...] | result | +| test.swift:793:15:793:38 | .1 | test.swift:789:20:789:27 | call to source() | test.swift:793:15:793:38 | .1 | result | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected index 18e5d25010d..ff1643d6018 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected @@ -913,3 +913,56 @@ | test.swift:759:15:759:15 | mo2 | test.swift:760:15:760:15 | mo2 | | test.swift:759:15:759:20 | .v2 | test.swift:759:15:759:22 | ...! | | test.swift:760:15:760:15 | mo2 | test.swift:760:15:760:18 | ...! | +| test.swift:764:9:764:9 | SSA def(dict1) | test.swift:765:15:765:15 | dict1 | +| test.swift:764:9:764:9 | dict1 | test.swift:764:9:764:9 | SSA def(dict1) | +| test.swift:764:17:764:31 | [...] | test.swift:764:9:764:9 | dict1 | +| test.swift:765:15:765:15 | &... | test.swift:767:5:767:5 | dict1 | +| test.swift:765:15:765:15 | [post] dict1 | test.swift:765:15:765:15 | &... | +| test.swift:765:15:765:15 | dict1 | test.swift:765:15:765:15 | &... | +| test.swift:767:5:767:5 | &... | test.swift:769:15:769:15 | dict1 | +| test.swift:767:5:767:5 | [post] dict1 | test.swift:767:5:767:5 | &... | +| test.swift:767:5:767:5 | dict1 | test.swift:767:5:767:5 | &... | +| test.swift:769:15:769:15 | [post] dict1 | test.swift:769:15:769:15 | &... | +| test.swift:769:15:769:15 | dict1 | test.swift:769:15:769:15 | &... | +| test.swift:771:9:771:9 | SSA def(dict2) | test.swift:772:15:772:15 | dict2 | +| test.swift:771:9:771:9 | dict2 | test.swift:771:9:771:9 | SSA def(dict2) | +| test.swift:771:17:771:29 | [...] | test.swift:771:9:771:9 | dict2 | +| test.swift:772:15:772:15 | &... | test.swift:774:25:774:25 | dict2 | +| test.swift:772:15:772:15 | [post] dict2 | test.swift:772:15:772:15 | &... | +| test.swift:772:15:772:15 | dict2 | test.swift:772:15:772:15 | &... | +| test.swift:774:10:774:10 | SSA def(key) | test.swift:775:19:775:19 | key | +| test.swift:774:10:774:10 | key | test.swift:774:10:774:10 | SSA def(key) | +| test.swift:774:15:774:15 | SSA def(value) | test.swift:776:19:776:19 | value | +| test.swift:774:15:774:15 | value | test.swift:774:15:774:15 | SSA def(value) | +| test.swift:779:9:779:9 | SSA def(dict3) | test.swift:780:15:780:15 | dict3 | +| test.swift:779:9:779:9 | dict3 | test.swift:779:9:779:9 | SSA def(dict3) | +| test.swift:779:17:779:29 | [...] | test.swift:779:9:779:9 | dict3 | +| test.swift:780:15:780:15 | &... | test.swift:782:5:782:5 | dict3 | +| test.swift:780:15:780:15 | [post] dict3 | test.swift:780:15:780:15 | &... | +| test.swift:780:15:780:15 | dict3 | test.swift:780:15:780:15 | &... | +| test.swift:782:5:782:5 | &... | test.swift:784:25:784:25 | dict3 | +| test.swift:782:5:782:5 | [post] dict3 | test.swift:782:5:782:5 | &... | +| test.swift:782:5:782:5 | dict3 | test.swift:782:5:782:5 | &... | +| test.swift:784:10:784:10 | SSA def(key) | test.swift:785:19:785:19 | key | +| test.swift:784:10:784:10 | key | test.swift:784:10:784:10 | SSA def(key) | +| test.swift:784:15:784:15 | SSA def(value) | test.swift:786:19:786:19 | value | +| test.swift:784:15:784:15 | value | test.swift:784:15:784:15 | SSA def(value) | +| test.swift:789:9:789:9 | SSA def(dict4) | test.swift:790:15:790:15 | dict4 | +| test.swift:789:9:789:9 | dict4 | test.swift:789:9:789:9 | SSA def(dict4) | +| test.swift:789:17:789:28 | [...] | test.swift:789:9:789:9 | dict4 | +| test.swift:790:15:790:15 | &... | test.swift:791:15:791:15 | dict4 | +| test.swift:790:15:790:15 | [post] dict4 | test.swift:790:15:790:15 | &... | +| test.swift:790:15:790:15 | dict4 | test.swift:790:15:790:15 | &... | +| test.swift:790:15:790:52 | call to updateValue(_:forKey:) | test.swift:790:15:790:53 | ...! | +| test.swift:791:15:791:15 | &... | test.swift:792:15:792:15 | dict4 | +| test.swift:791:15:791:15 | [post] dict4 | test.swift:791:15:791:15 | &... | +| test.swift:791:15:791:15 | dict4 | test.swift:791:15:791:15 | &... | +| test.swift:791:15:791:52 | call to updateValue(_:forKey:) | test.swift:791:15:791:53 | ...! | +| test.swift:792:15:792:15 | [post] dict4 | test.swift:793:15:793:15 | dict4 | +| test.swift:792:15:792:15 | dict4 | test.swift:793:15:793:15 | dict4 | +| test.swift:792:15:792:35 | call to randomElement() | test.swift:792:15:792:36 | ...! | +| test.swift:793:15:793:15 | [post] dict4 | test.swift:794:15:794:15 | dict4 | +| test.swift:793:15:793:15 | dict4 | test.swift:794:15:794:15 | dict4 | +| test.swift:793:15:793:35 | call to randomElement() | test.swift:793:15:793:36 | ...! | +| test.swift:794:15:794:15 | [post] dict4 | test.swift:795:15:795:15 | dict4 | +| test.swift:794:15:794:15 | dict4 | test.swift:795:15:795:15 | dict4 | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/test.swift b/swift/ql/test/library-tests/dataflow/dataflow/test.swift index 44001572dbd..2621fa4c4f4 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/test.swift +++ b/swift/ql/test/library-tests/dataflow/dataflow/test.swift @@ -759,3 +759,38 @@ func testWriteOptional() { sink(arg: mo2!.v2!) // $ MISSING:flow=749 sink(arg: mo2!.v3) // $ MISSING:flow=750 } + +func testDictionary() { + var dict1 = [1:2, 3:4, 5:6] + sink(arg: dict1[1]) + + dict1[1] = source() + + sink(arg: dict1[1]) // $ flow=767 + + var dict2 = [source(): 1] + sink(arg: dict2[1]) + + for (key, value) in dict2 { + sink(arg: key) // $ MISSING: flow=771 + sink(arg: value) + } + + var dict3 = [1: source()] + sink(arg: dict3[1]) // $ flow=779 + + dict3[source()] = 2 + + for (key, value) in dict3 { + sink(arg: key) // $ MISSING: flow=782 + sink(arg: value) // $ MISSING: flow=779 + } + + var dict4 = [1:source()] + sink(arg: dict4.updateValue(1, forKey: source())!) + sink(arg: dict4.updateValue(source(), forKey: 2)!) + sink(arg: dict4.randomElement()!.0) // $ MISSING: flow=791 + sink(arg: dict4.randomElement()!.1) // $ flow=789 MISSING: flow=790 + sink(arg: dict4.keys.randomElement()) // $ MISSING: flow=791 + sink(arg: dict4.values.randomElement()) // $ MISSING: flow=789 flow=790 +} \ No newline at end of file From d3c68c773a136105933967c025f015d97f457e6f Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 10 Aug 2023 20:52:04 +0000 Subject: [PATCH 058/788] Swift: Add Dictionary models --- .../frameworks/StandardLibrary/Dictionary.qll | 14 ++++++++++++++ .../dataflow/dataflow/DataFlow.expected | 17 +++++++++++++++++ .../library-tests/dataflow/dataflow/test.swift | 8 ++++---- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll index 42d8d8ff55b..8683faf8fc5 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll @@ -7,3 +7,17 @@ private import codeql.swift.dataflow.ExternalFlow class CanonicalDictionaryType extends BoundGenericType { CanonicalDictionaryType() { this.getName().matches("Dictionary<%") } } + +/** + * A model for `Dictionary` and related class members that permit data flow. + */ +private class DictionarySummaries extends SummaryModelCsv { + override predicate row(string row) { + row = + [ + ";Dictionary;true;updateValue(_:forKey:);;;Argument[0];Argument[-1].CollectionElement.TupleElement[1];value", + ";Dictionary;true;updateValue(_:forKey:);;;Argument[1];Argument[-1].CollectionElement.TupleElement[0];value", + ";Dictionary;true;updateValue(_:forKey:);;;Argument[-1].CollectionElement.TupleElement[1];ReturnValue.OptionalSome;value" + ] + } +} diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index fe5b804c71a..32e532deea9 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -415,6 +415,13 @@ edges | test.swift:789:17:789:28 | [...] [Collection element, Tuple element at index 1] | test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | | test.swift:789:18:789:27 | (...) [Tuple element at index 1] | test.swift:789:17:789:28 | [...] [Collection element, Tuple element at index 1] | | test.swift:789:20:789:27 | call to source() | test.swift:789:18:789:27 | (...) [Tuple element at index 1] | +| test.swift:790:15:790:15 | [post] dict4 [Collection element, Tuple element at index 0] | test.swift:792:15:792:15 | dict4 [Collection element, Tuple element at index 0] | +| test.swift:790:44:790:51 | call to source() | test.swift:790:15:790:15 | [post] dict4 [Collection element, Tuple element at index 0] | +| test.swift:791:15:791:15 | [post] dict4 [Collection element, Tuple element at index 1] | test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | +| test.swift:791:33:791:40 | call to source() | test.swift:791:15:791:15 | [post] dict4 [Collection element, Tuple element at index 1] | +| test.swift:792:15:792:15 | dict4 [Collection element, Tuple element at index 0] | test.swift:792:15:792:35 | call to randomElement() [some:0, Tuple element at index 0] | +| test.swift:792:15:792:35 | call to randomElement() [some:0, Tuple element at index 0] | test.swift:792:15:792:36 | ...! [Tuple element at index 0] | +| test.swift:792:15:792:36 | ...! [Tuple element at index 0] | test.swift:792:15:792:38 | .0 | | test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:793:15:793:35 | call to randomElement() [some:0, Tuple element at index 1] | | test.swift:793:15:793:35 | call to randomElement() [some:0, Tuple element at index 1] | test.swift:793:15:793:36 | ...! [Tuple element at index 1] | | test.swift:793:15:793:36 | ...! [Tuple element at index 1] | test.swift:793:15:793:38 | .1 | @@ -876,6 +883,14 @@ nodes | test.swift:789:17:789:28 | [...] [Collection element, Tuple element at index 1] | semmle.label | [...] [Collection element, Tuple element at index 1] | | test.swift:789:18:789:27 | (...) [Tuple element at index 1] | semmle.label | (...) [Tuple element at index 1] | | test.swift:789:20:789:27 | call to source() | semmle.label | call to source() | +| test.swift:790:15:790:15 | [post] dict4 [Collection element, Tuple element at index 0] | semmle.label | [post] dict4 [Collection element, Tuple element at index 0] | +| test.swift:790:44:790:51 | call to source() | semmle.label | call to source() | +| test.swift:791:15:791:15 | [post] dict4 [Collection element, Tuple element at index 1] | semmle.label | [post] dict4 [Collection element, Tuple element at index 1] | +| test.swift:791:33:791:40 | call to source() | semmle.label | call to source() | +| test.swift:792:15:792:15 | dict4 [Collection element, Tuple element at index 0] | semmle.label | dict4 [Collection element, Tuple element at index 0] | +| test.swift:792:15:792:35 | call to randomElement() [some:0, Tuple element at index 0] | semmle.label | call to randomElement() [some:0, Tuple element at index 0] | +| test.swift:792:15:792:36 | ...! [Tuple element at index 0] | semmle.label | ...! [Tuple element at index 0] | +| test.swift:792:15:792:38 | .0 | semmle.label | .0 | | test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | semmle.label | dict4 [Collection element, Tuple element at index 1] | | test.swift:793:15:793:35 | call to randomElement() [some:0, Tuple element at index 1] | semmle.label | call to randomElement() [some:0, Tuple element at index 1] | | test.swift:793:15:793:36 | ...! [Tuple element at index 1] | semmle.label | ...! [Tuple element at index 1] | @@ -1029,4 +1044,6 @@ subpaths | test.swift:757:15:757:19 | .v3 | test.swift:747:14:747:21 | call to source() | test.swift:757:15:757:19 | .v3 | result | | test.swift:769:15:769:22 | ...[...] | test.swift:767:16:767:23 | call to source() | test.swift:769:15:769:22 | ...[...] | result | | test.swift:780:15:780:22 | ...[...] | test.swift:779:21:779:28 | call to source() | test.swift:780:15:780:22 | ...[...] | result | +| test.swift:792:15:792:38 | .0 | test.swift:790:44:790:51 | call to source() | test.swift:792:15:792:38 | .0 | result | | test.swift:793:15:793:38 | .1 | test.swift:789:20:789:27 | call to source() | test.swift:793:15:793:38 | .1 | result | +| test.swift:793:15:793:38 | .1 | test.swift:791:33:791:40 | call to source() | test.swift:793:15:793:38 | .1 | result | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/test.swift b/swift/ql/test/library-tests/dataflow/dataflow/test.swift index 2621fa4c4f4..4b5d98a2e66 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/test.swift +++ b/swift/ql/test/library-tests/dataflow/dataflow/test.swift @@ -789,8 +789,8 @@ func testDictionary() { var dict4 = [1:source()] sink(arg: dict4.updateValue(1, forKey: source())!) sink(arg: dict4.updateValue(source(), forKey: 2)!) - sink(arg: dict4.randomElement()!.0) // $ MISSING: flow=791 - sink(arg: dict4.randomElement()!.1) // $ flow=789 MISSING: flow=790 - sink(arg: dict4.keys.randomElement()) // $ MISSING: flow=791 - sink(arg: dict4.values.randomElement()) // $ MISSING: flow=789 flow=790 + sink(arg: dict4.randomElement()!.0) // $ flow=790 + sink(arg: dict4.randomElement()!.1) // $ flow=789 flow=791 + sink(arg: dict4.keys.randomElement()) // $ MISSING: flow=790 + sink(arg: dict4.values.randomElement()) // $ MISSING: flow=789 flow=791 } \ No newline at end of file From f5fac66627414b8b828bb588ecbc7b59c1f2f6e0 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Fri, 11 Aug 2023 17:31:39 +0000 Subject: [PATCH 059/788] Swift: autoformat --- .../dataflow/internal/DataFlowPrivate.qll | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index e5ea5ad0034..bdd8c528f07 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -302,25 +302,18 @@ predicate nodeIsHidden(Node n) { n instanceof FlowSummaryNode } private class DictionarySubscriptNode extends NodeImpl, TDictionarySubscriptNode { SubscriptExpr expr; - DictionarySubscriptNode() { - this = TDictionarySubscriptNode(expr) - } + + DictionarySubscriptNode() { this = TDictionarySubscriptNode(expr) } override DataFlowCallable getEnclosingCallable() { result.asSourceCallable() = expr.getEnclosingCallable() } - override string toStringImpl() { - result = "DictionarySubscriptNode" - } + override string toStringImpl() { result = "DictionarySubscriptNode" } - override Location getLocationImpl() { - result = expr.getLocation() - } + override Location getLocationImpl() { result = expr.getLocation() } - SubscriptExpr getExpr() { - result = expr - } + SubscriptExpr getExpr() { result = expr } } private module ParameterNodes { @@ -755,7 +748,7 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { ) or // read of a dictionary value via subscript operator, with intermediate step - exists(AssignExpr assign, SubscriptExpr subscript | + exists(AssignExpr assign, SubscriptExpr subscript | subscript = assign.getDest() and ( subscript.getArgument(0).getExpr() = node1.asExpr() and @@ -859,7 +852,7 @@ predicate readStep(Node node1, ContentSet c, Node node2) { ) or // read of a dictionary value via subscript operator - exists(SubscriptExpr subscript | + exists(SubscriptExpr subscript | subscript.getBase() = node1.asExpr() and node2.(DictionarySubscriptNode).getExpr() = subscript and c.isSingleton(any(Content::CollectionContent cc)) From 653a2294820f281a654285c5cc147bc2f05a9083 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Fri, 11 Aug 2023 17:32:29 +0000 Subject: [PATCH 060/788] Swift: QLDoc for Dicitonary.qll --- .../codeql/swift/frameworks/StandardLibrary/Dictionary.qll | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll index 8683faf8fc5..4fef7052d78 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll @@ -1,3 +1,8 @@ +/** + * Provides models for the Swift `Dictionary` class. + */ + + import swift private import codeql.swift.dataflow.ExternalFlow From f047161741d89ddf92130cf1f6aa6131769c57b7 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Fri, 11 Aug 2023 17:33:45 +0000 Subject: [PATCH 061/788] Swift: Change note for dictionary flow --- swift/ql/lib/change-notes/2023-08-11-dictionary-flow.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-08-11-dictionary-flow.md diff --git a/swift/ql/lib/change-notes/2023-08-11-dictionary-flow.md b/swift/ql/lib/change-notes/2023-08-11-dictionary-flow.md new file mode 100644 index 00000000000..6496777f9e5 --- /dev/null +++ b/swift/ql/lib/change-notes/2023-08-11-dictionary-flow.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added flow steps through `Dictionary` keys and values. From 3f0a249aeae2dadcc6a91a73fc757dd2f04429d0 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Fri, 11 Aug 2023 18:42:37 +0000 Subject: [PATCH 062/788] Swift: Autoformat Dictionary.qll --- .../lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll index 4fef7052d78..6ad2ba09e99 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Dictionary.qll @@ -2,7 +2,6 @@ * Provides models for the Swift `Dictionary` class. */ - import swift private import codeql.swift.dataflow.ExternalFlow From 657642a1228170c61ed5c263332d9de2f2281e0d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 14 Aug 2023 14:12:07 +0100 Subject: [PATCH 063/788] Java: Expose parts of the vquery message in the test. --- .../security/CWE-730/ExpRedosTest.java | 5 +++- .../query-tests/security/CWE-730/ReDoS.ql | 23 ++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java b/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java index 4a31060850b..28742c161e6 100644 --- a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java +++ b/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java @@ -431,7 +431,10 @@ class ExpRedosTest { "(a*)*b", // $ hasExpRedos // BAD - but not detected due to the way possessive quantifiers are approximated - "((aa|a*+)b)*c" // $ MISSING: hasExpRedos + "((aa|a*+)b)*c", // $ MISSING: hasExpRedos + + // BAD - testsing + "(?is)(a|aa?)*b" // $ hasExpRedos hasPrefixMsg="starting with 'is' and " hasPump=a }; void test() { diff --git a/java/ql/test/query-tests/security/CWE-730/ReDoS.ql b/java/ql/test/query-tests/security/CWE-730/ReDoS.ql index 97719364f94..4011946318e 100644 --- a/java/ql/test/query-tests/security/CWE-730/ReDoS.ql +++ b/java/ql/test/query-tests/security/CWE-730/ReDoS.ql @@ -4,8 +4,13 @@ private import semmle.code.java.regex.RegexTreeView::RegexTreeView as TreeView import codeql.regex.nfa.ExponentialBackTracking::Make as ExponentialBackTracking import semmle.code.java.regex.regex +bindingset[s] +string quote(string s) { if s.matches("% %") then result = "\"" + s + "\"" else result = s } + module HasExpRedos implements TestSig { - string getARelevantTag() { result = ["hasExpRedos", "hasParseFailure"] } + string getARelevantTag() { + result = ["hasExpRedos", "hasParseFailure", "hasPump", "hasPrefixMsg"] + } predicate hasActualResult(Location location, string element, string tag, string value) { tag = "hasExpRedos" and @@ -25,6 +30,22 @@ module HasExpRedos implements TestSig { element = r.toString() ) } + + predicate hasOptionalResult(Location location, string element, string tag, string value) { + exists(TreeView::RegExpTerm t, Regex r, string pump, string prefixMsg | + ExponentialBackTracking::hasReDoSResult(t, pump, _, prefixMsg) and + t.occursInRegex(r, _, _) and + ( + tag = "hasPrefixMsg" and + value = quote(prefixMsg) + or + tag = "hasPump" and + value = pump + ) and + location = r.getLocation() and + element = r.toString() + ) + } } import MakeTest From a9f5471e763b36bbe0d0c87a0a39681ecc7a88ff Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Tue, 15 Aug 2023 17:58:21 +0000 Subject: [PATCH 064/788] Swift: add tests for broken dictionary flow case --- .../dataflow/dataflow/DataFlow.expected | 73 +++++++++++-------- .../dataflow/dataflow/LocalFlow.expected | 54 ++++++++------ .../dataflow/dataflow/test.swift | 11 ++- 3 files changed, 79 insertions(+), 59 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index 32e532deea9..b483b2b7099 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -408,23 +408,28 @@ edges | test.swift:767:16:767:23 | call to source() | test.swift:767:5:767:5 | [post] dict1 [Array element] | | test.swift:769:15:769:15 | dict1 [Array element] | test.swift:769:15:769:22 | ...[...] | | test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | test.swift:780:15:780:15 | dict3 [Collection element, Tuple element at index 1] | +| test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | test.swift:782:5:782:5 | dict3 [Collection element, Tuple element at index 1] | | test.swift:779:18:779:28 | (...) [Tuple element at index 1] | test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | | test.swift:779:21:779:28 | call to source() | test.swift:779:18:779:28 | (...) [Tuple element at index 1] | | test.swift:780:15:780:15 | dict3 [Collection element, Tuple element at index 1] | test.swift:780:15:780:22 | DictionarySubscriptNode [Tuple element at index 1] | | test.swift:780:15:780:22 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:780:15:780:22 | ...[...] | -| test.swift:789:17:789:28 | [...] [Collection element, Tuple element at index 1] | test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | -| test.swift:789:18:789:27 | (...) [Tuple element at index 1] | test.swift:789:17:789:28 | [...] [Collection element, Tuple element at index 1] | -| test.swift:789:20:789:27 | call to source() | test.swift:789:18:789:27 | (...) [Tuple element at index 1] | -| test.swift:790:15:790:15 | [post] dict4 [Collection element, Tuple element at index 0] | test.swift:792:15:792:15 | dict4 [Collection element, Tuple element at index 0] | -| test.swift:790:44:790:51 | call to source() | test.swift:790:15:790:15 | [post] dict4 [Collection element, Tuple element at index 0] | -| test.swift:791:15:791:15 | [post] dict4 [Collection element, Tuple element at index 1] | test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | -| test.swift:791:33:791:40 | call to source() | test.swift:791:15:791:15 | [post] dict4 [Collection element, Tuple element at index 1] | -| test.swift:792:15:792:15 | dict4 [Collection element, Tuple element at index 0] | test.swift:792:15:792:35 | call to randomElement() [some:0, Tuple element at index 0] | -| test.swift:792:15:792:35 | call to randomElement() [some:0, Tuple element at index 0] | test.swift:792:15:792:36 | ...! [Tuple element at index 0] | -| test.swift:792:15:792:36 | ...! [Tuple element at index 0] | test.swift:792:15:792:38 | .0 | -| test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:793:15:793:35 | call to randomElement() [some:0, Tuple element at index 1] | -| test.swift:793:15:793:35 | call to randomElement() [some:0, Tuple element at index 1] | test.swift:793:15:793:36 | ...! [Tuple element at index 1] | -| test.swift:793:15:793:36 | ...! [Tuple element at index 1] | test.swift:793:15:793:38 | .1 | +| test.swift:782:5:782:5 | dict3 [Collection element, Tuple element at index 1] | test.swift:785:15:785:15 | dict3 [Collection element, Tuple element at index 1] | +| test.swift:785:15:785:15 | dict3 [Collection element, Tuple element at index 1] | test.swift:785:15:785:35 | call to randomElement() [some:0, Tuple element at index 1] | +| test.swift:785:15:785:35 | call to randomElement() [some:0, Tuple element at index 1] | test.swift:785:15:785:36 | ...! [Tuple element at index 1] | +| test.swift:785:15:785:36 | ...! [Tuple element at index 1] | test.swift:785:15:785:38 | .1 | +| test.swift:792:17:792:28 | [...] [Collection element, Tuple element at index 1] | test.swift:796:15:796:15 | dict4 [Collection element, Tuple element at index 1] | +| test.swift:792:18:792:27 | (...) [Tuple element at index 1] | test.swift:792:17:792:28 | [...] [Collection element, Tuple element at index 1] | +| test.swift:792:20:792:27 | call to source() | test.swift:792:18:792:27 | (...) [Tuple element at index 1] | +| test.swift:793:15:793:15 | [post] dict4 [Collection element, Tuple element at index 0] | test.swift:795:15:795:15 | dict4 [Collection element, Tuple element at index 0] | +| test.swift:793:44:793:51 | call to source() | test.swift:793:15:793:15 | [post] dict4 [Collection element, Tuple element at index 0] | +| test.swift:794:15:794:15 | [post] dict4 [Collection element, Tuple element at index 1] | test.swift:796:15:796:15 | dict4 [Collection element, Tuple element at index 1] | +| test.swift:794:33:794:40 | call to source() | test.swift:794:15:794:15 | [post] dict4 [Collection element, Tuple element at index 1] | +| test.swift:795:15:795:15 | dict4 [Collection element, Tuple element at index 0] | test.swift:795:15:795:35 | call to randomElement() [some:0, Tuple element at index 0] | +| test.swift:795:15:795:35 | call to randomElement() [some:0, Tuple element at index 0] | test.swift:795:15:795:36 | ...! [Tuple element at index 0] | +| test.swift:795:15:795:36 | ...! [Tuple element at index 0] | test.swift:795:15:795:38 | .0 | +| test.swift:796:15:796:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:796:15:796:35 | call to randomElement() [some:0, Tuple element at index 1] | +| test.swift:796:15:796:35 | call to randomElement() [some:0, Tuple element at index 1] | test.swift:796:15:796:36 | ...! [Tuple element at index 1] | +| test.swift:796:15:796:36 | ...! [Tuple element at index 1] | test.swift:796:15:796:38 | .1 | nodes | file://:0:0:0:0 | .a [x] | semmle.label | .a [x] | | file://:0:0:0:0 | .str | semmle.label | .str | @@ -880,21 +885,26 @@ nodes | test.swift:780:15:780:15 | dict3 [Collection element, Tuple element at index 1] | semmle.label | dict3 [Collection element, Tuple element at index 1] | | test.swift:780:15:780:22 | ...[...] | semmle.label | ...[...] | | test.swift:780:15:780:22 | DictionarySubscriptNode [Tuple element at index 1] | semmle.label | DictionarySubscriptNode [Tuple element at index 1] | -| test.swift:789:17:789:28 | [...] [Collection element, Tuple element at index 1] | semmle.label | [...] [Collection element, Tuple element at index 1] | -| test.swift:789:18:789:27 | (...) [Tuple element at index 1] | semmle.label | (...) [Tuple element at index 1] | -| test.swift:789:20:789:27 | call to source() | semmle.label | call to source() | -| test.swift:790:15:790:15 | [post] dict4 [Collection element, Tuple element at index 0] | semmle.label | [post] dict4 [Collection element, Tuple element at index 0] | -| test.swift:790:44:790:51 | call to source() | semmle.label | call to source() | -| test.swift:791:15:791:15 | [post] dict4 [Collection element, Tuple element at index 1] | semmle.label | [post] dict4 [Collection element, Tuple element at index 1] | -| test.swift:791:33:791:40 | call to source() | semmle.label | call to source() | -| test.swift:792:15:792:15 | dict4 [Collection element, Tuple element at index 0] | semmle.label | dict4 [Collection element, Tuple element at index 0] | -| test.swift:792:15:792:35 | call to randomElement() [some:0, Tuple element at index 0] | semmle.label | call to randomElement() [some:0, Tuple element at index 0] | -| test.swift:792:15:792:36 | ...! [Tuple element at index 0] | semmle.label | ...! [Tuple element at index 0] | -| test.swift:792:15:792:38 | .0 | semmle.label | .0 | -| test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | semmle.label | dict4 [Collection element, Tuple element at index 1] | -| test.swift:793:15:793:35 | call to randomElement() [some:0, Tuple element at index 1] | semmle.label | call to randomElement() [some:0, Tuple element at index 1] | -| test.swift:793:15:793:36 | ...! [Tuple element at index 1] | semmle.label | ...! [Tuple element at index 1] | -| test.swift:793:15:793:38 | .1 | semmle.label | .1 | +| test.swift:782:5:782:5 | dict3 [Collection element, Tuple element at index 1] | semmle.label | dict3 [Collection element, Tuple element at index 1] | +| test.swift:785:15:785:15 | dict3 [Collection element, Tuple element at index 1] | semmle.label | dict3 [Collection element, Tuple element at index 1] | +| test.swift:785:15:785:35 | call to randomElement() [some:0, Tuple element at index 1] | semmle.label | call to randomElement() [some:0, Tuple element at index 1] | +| test.swift:785:15:785:36 | ...! [Tuple element at index 1] | semmle.label | ...! [Tuple element at index 1] | +| test.swift:785:15:785:38 | .1 | semmle.label | .1 | +| test.swift:792:17:792:28 | [...] [Collection element, Tuple element at index 1] | semmle.label | [...] [Collection element, Tuple element at index 1] | +| test.swift:792:18:792:27 | (...) [Tuple element at index 1] | semmle.label | (...) [Tuple element at index 1] | +| test.swift:792:20:792:27 | call to source() | semmle.label | call to source() | +| test.swift:793:15:793:15 | [post] dict4 [Collection element, Tuple element at index 0] | semmle.label | [post] dict4 [Collection element, Tuple element at index 0] | +| test.swift:793:44:793:51 | call to source() | semmle.label | call to source() | +| test.swift:794:15:794:15 | [post] dict4 [Collection element, Tuple element at index 1] | semmle.label | [post] dict4 [Collection element, Tuple element at index 1] | +| test.swift:794:33:794:40 | call to source() | semmle.label | call to source() | +| test.swift:795:15:795:15 | dict4 [Collection element, Tuple element at index 0] | semmle.label | dict4 [Collection element, Tuple element at index 0] | +| test.swift:795:15:795:35 | call to randomElement() [some:0, Tuple element at index 0] | semmle.label | call to randomElement() [some:0, Tuple element at index 0] | +| test.swift:795:15:795:36 | ...! [Tuple element at index 0] | semmle.label | ...! [Tuple element at index 0] | +| test.swift:795:15:795:38 | .0 | semmle.label | .0 | +| test.swift:796:15:796:15 | dict4 [Collection element, Tuple element at index 1] | semmle.label | dict4 [Collection element, Tuple element at index 1] | +| test.swift:796:15:796:35 | call to randomElement() [some:0, Tuple element at index 1] | semmle.label | call to randomElement() [some:0, Tuple element at index 1] | +| test.swift:796:15:796:36 | ...! [Tuple element at index 1] | semmle.label | ...! [Tuple element at index 1] | +| test.swift:796:15:796:38 | .1 | semmle.label | .1 | subpaths | test.swift:75:22:75:22 | x | test.swift:65:16:65:28 | arg1 | test.swift:65:1:70:1 | arg2[return] | test.swift:75:32:75:32 | [post] y | | test.swift:114:19:114:19 | arg | test.swift:109:9:109:14 | arg | test.swift:110:12:110:12 | arg | test.swift:114:12:114:22 | call to ... | @@ -1044,6 +1054,7 @@ subpaths | test.swift:757:15:757:19 | .v3 | test.swift:747:14:747:21 | call to source() | test.swift:757:15:757:19 | .v3 | result | | test.swift:769:15:769:22 | ...[...] | test.swift:767:16:767:23 | call to source() | test.swift:769:15:769:22 | ...[...] | result | | test.swift:780:15:780:22 | ...[...] | test.swift:779:21:779:28 | call to source() | test.swift:780:15:780:22 | ...[...] | result | -| test.swift:792:15:792:38 | .0 | test.swift:790:44:790:51 | call to source() | test.swift:792:15:792:38 | .0 | result | -| test.swift:793:15:793:38 | .1 | test.swift:789:20:789:27 | call to source() | test.swift:793:15:793:38 | .1 | result | -| test.swift:793:15:793:38 | .1 | test.swift:791:33:791:40 | call to source() | test.swift:793:15:793:38 | .1 | result | +| test.swift:785:15:785:38 | .1 | test.swift:779:21:779:28 | call to source() | test.swift:785:15:785:38 | .1 | result | +| test.swift:795:15:795:38 | .0 | test.swift:793:44:793:51 | call to source() | test.swift:795:15:795:38 | .0 | result | +| test.swift:796:15:796:38 | .1 | test.swift:792:20:792:27 | call to source() | test.swift:796:15:796:38 | .1 | result | +| test.swift:796:15:796:38 | .1 | test.swift:794:33:794:40 | call to source() | test.swift:796:15:796:38 | .1 | result | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected index ff1643d6018..cd45b14d436 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected @@ -940,29 +940,35 @@ | test.swift:780:15:780:15 | &... | test.swift:782:5:782:5 | dict3 | | test.swift:780:15:780:15 | [post] dict3 | test.swift:780:15:780:15 | &... | | test.swift:780:15:780:15 | dict3 | test.swift:780:15:780:15 | &... | -| test.swift:782:5:782:5 | &... | test.swift:784:25:784:25 | dict3 | +| test.swift:782:5:782:5 | &... | test.swift:784:15:784:15 | dict3 | | test.swift:782:5:782:5 | [post] dict3 | test.swift:782:5:782:5 | &... | | test.swift:782:5:782:5 | dict3 | test.swift:782:5:782:5 | &... | -| test.swift:784:10:784:10 | SSA def(key) | test.swift:785:19:785:19 | key | -| test.swift:784:10:784:10 | key | test.swift:784:10:784:10 | SSA def(key) | -| test.swift:784:15:784:15 | SSA def(value) | test.swift:786:19:786:19 | value | -| test.swift:784:15:784:15 | value | test.swift:784:15:784:15 | SSA def(value) | -| test.swift:789:9:789:9 | SSA def(dict4) | test.swift:790:15:790:15 | dict4 | -| test.swift:789:9:789:9 | dict4 | test.swift:789:9:789:9 | SSA def(dict4) | -| test.swift:789:17:789:28 | [...] | test.swift:789:9:789:9 | dict4 | -| test.swift:790:15:790:15 | &... | test.swift:791:15:791:15 | dict4 | -| test.swift:790:15:790:15 | [post] dict4 | test.swift:790:15:790:15 | &... | -| test.swift:790:15:790:15 | dict4 | test.swift:790:15:790:15 | &... | -| test.swift:790:15:790:52 | call to updateValue(_:forKey:) | test.swift:790:15:790:53 | ...! | -| test.swift:791:15:791:15 | &... | test.swift:792:15:792:15 | dict4 | -| test.swift:791:15:791:15 | [post] dict4 | test.swift:791:15:791:15 | &... | -| test.swift:791:15:791:15 | dict4 | test.swift:791:15:791:15 | &... | -| test.swift:791:15:791:52 | call to updateValue(_:forKey:) | test.swift:791:15:791:53 | ...! | -| test.swift:792:15:792:15 | [post] dict4 | test.swift:793:15:793:15 | dict4 | -| test.swift:792:15:792:15 | dict4 | test.swift:793:15:793:15 | dict4 | -| test.swift:792:15:792:35 | call to randomElement() | test.swift:792:15:792:36 | ...! | -| test.swift:793:15:793:15 | [post] dict4 | test.swift:794:15:794:15 | dict4 | -| test.swift:793:15:793:15 | dict4 | test.swift:794:15:794:15 | dict4 | -| test.swift:793:15:793:35 | call to randomElement() | test.swift:793:15:793:36 | ...! | -| test.swift:794:15:794:15 | [post] dict4 | test.swift:795:15:795:15 | dict4 | -| test.swift:794:15:794:15 | dict4 | test.swift:795:15:795:15 | dict4 | +| test.swift:784:15:784:15 | [post] dict3 | test.swift:785:15:785:15 | dict3 | +| test.swift:784:15:784:15 | dict3 | test.swift:785:15:785:15 | dict3 | +| test.swift:784:15:784:35 | call to randomElement() | test.swift:784:15:784:36 | ...! | +| test.swift:785:15:785:15 | [post] dict3 | test.swift:787:25:787:25 | dict3 | +| test.swift:785:15:785:15 | dict3 | test.swift:787:25:787:25 | dict3 | +| test.swift:785:15:785:35 | call to randomElement() | test.swift:785:15:785:36 | ...! | +| test.swift:787:10:787:10 | SSA def(key) | test.swift:788:19:788:19 | key | +| test.swift:787:10:787:10 | key | test.swift:787:10:787:10 | SSA def(key) | +| test.swift:787:15:787:15 | SSA def(value) | test.swift:789:19:789:19 | value | +| test.swift:787:15:787:15 | value | test.swift:787:15:787:15 | SSA def(value) | +| test.swift:792:9:792:9 | SSA def(dict4) | test.swift:793:15:793:15 | dict4 | +| test.swift:792:9:792:9 | dict4 | test.swift:792:9:792:9 | SSA def(dict4) | +| test.swift:792:17:792:28 | [...] | test.swift:792:9:792:9 | dict4 | +| test.swift:793:15:793:15 | &... | test.swift:794:15:794:15 | dict4 | +| test.swift:793:15:793:15 | [post] dict4 | test.swift:793:15:793:15 | &... | +| test.swift:793:15:793:15 | dict4 | test.swift:793:15:793:15 | &... | +| test.swift:793:15:793:52 | call to updateValue(_:forKey:) | test.swift:793:15:793:53 | ...! | +| test.swift:794:15:794:15 | &... | test.swift:795:15:795:15 | dict4 | +| test.swift:794:15:794:15 | [post] dict4 | test.swift:794:15:794:15 | &... | +| test.swift:794:15:794:15 | dict4 | test.swift:794:15:794:15 | &... | +| test.swift:794:15:794:52 | call to updateValue(_:forKey:) | test.swift:794:15:794:53 | ...! | +| test.swift:795:15:795:15 | [post] dict4 | test.swift:796:15:796:15 | dict4 | +| test.swift:795:15:795:15 | dict4 | test.swift:796:15:796:15 | dict4 | +| test.swift:795:15:795:35 | call to randomElement() | test.swift:795:15:795:36 | ...! | +| test.swift:796:15:796:15 | [post] dict4 | test.swift:797:15:797:15 | dict4 | +| test.swift:796:15:796:15 | dict4 | test.swift:797:15:797:15 | dict4 | +| test.swift:796:15:796:35 | call to randomElement() | test.swift:796:15:796:36 | ...! | +| test.swift:797:15:797:15 | [post] dict4 | test.swift:798:15:798:15 | dict4 | +| test.swift:797:15:797:15 | dict4 | test.swift:798:15:798:15 | dict4 | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/test.swift b/swift/ql/test/library-tests/dataflow/dataflow/test.swift index 4b5d98a2e66..b1d6eae5e53 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/test.swift +++ b/swift/ql/test/library-tests/dataflow/dataflow/test.swift @@ -781,6 +781,9 @@ func testDictionary() { dict3[source()] = 2 + sink(arg: dict3.randomElement()!.0) // $ MISSING: flow=779 + sink(arg: dict3.randomElement()!.1) // $ SPURIOUS: flow=779 MISSING: flow=782 + for (key, value) in dict3 { sink(arg: key) // $ MISSING: flow=782 sink(arg: value) // $ MISSING: flow=779 @@ -789,8 +792,8 @@ func testDictionary() { var dict4 = [1:source()] sink(arg: dict4.updateValue(1, forKey: source())!) sink(arg: dict4.updateValue(source(), forKey: 2)!) - sink(arg: dict4.randomElement()!.0) // $ flow=790 - sink(arg: dict4.randomElement()!.1) // $ flow=789 flow=791 - sink(arg: dict4.keys.randomElement()) // $ MISSING: flow=790 - sink(arg: dict4.values.randomElement()) // $ MISSING: flow=789 flow=791 + sink(arg: dict4.randomElement()!.0) // $ flow=793 + sink(arg: dict4.randomElement()!.1) // $ flow=792 flow=794 + sink(arg: dict4.keys.randomElement()) // $ MISSING: flow=793 + sink(arg: dict4.values.randomElement()) // $ MISSING: flow=792 flow=794 } \ No newline at end of file From 79368c187cb7dc0fc85ee6702363e2405ace529c Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Tue, 15 Aug 2023 19:34:27 +0000 Subject: [PATCH 065/788] Swift: fixes around DictionaryContent --- .../dataflow/internal/DataFlowPrivate.qll | 16 ++++-- .../frameworks/StandardLibrary/Array.qll | 2 +- .../dataflow/dataflow/DataFlow.expected | 49 ++++++++++++++++--- .../dataflow/dataflow/test.swift | 8 +-- 4 files changed, 59 insertions(+), 16 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index bdd8c528f07..998c0dd8627 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -747,24 +747,26 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { c.isSingleton(any(Content::ArrayContent ac)) ) or - // read of a dictionary value via subscript operator, with intermediate step + // assignment to a dictionary value via subscript operator, with intermediate step + // `dict[key] = value` exists(AssignExpr assign, SubscriptExpr subscript | subscript = assign.getDest() and ( subscript.getArgument(0).getExpr() = node1.asExpr() and node2.(DictionarySubscriptNode).getExpr() = subscript and - c.isSingleton(any(Content::TupleContent tc | tc.getIndex() = 1)) + c.isSingleton(any(Content::TupleContent tc | tc.getIndex() = 0)) or assign.getSource() = node1.asExpr() and node2.(DictionarySubscriptNode).getExpr() = subscript and c.isSingleton(any(Content::TupleContent tc | tc.getIndex() = 1)) or - node1.(DictionarySubscriptNode) = node1 and - node2.asExpr() = subscript and + node1.(DictionarySubscriptNode).getExpr() = subscript and + node2.(PostUpdateNode).getPreUpdateNode().asExpr() = subscript.getBase() and c.isSingleton(any(Content::CollectionContent cc)) ) ) or + // creation of a dictionary `[key: value, ...]` exists(DictionaryExpr dict | node1.asExpr() = dict.getAnElement() and node2.asExpr() = dict and @@ -872,7 +874,11 @@ predicate readStep(Node node1, ContentSet c, Node node2) { * in `x.f = newValue`. */ predicate clearsContent(Node n, ContentSet c) { - n = any(PostUpdateNode pun | storeStep(_, c, pun)).getPreUpdateNode() + n = any(PostUpdateNode pun | storeStep(_, c, pun)).getPreUpdateNode() and + ( + c.isSingleton(any(Content::FieldContent fc)) or + c.isSingleton(any(Content::TupleContent tc)) + ) } /** diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll index 207d120e82e..8b7bb5c80e2 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll @@ -9,7 +9,7 @@ private import codeql.swift.dataflow.ExternalFlow * An instance of the `Array` type. */ class ArrayType extends Type { - ArrayType() { this.getName().matches("Array<%") or this.getName().matches("[%]") } + ArrayType() { this.getCanonicalType().getName().matches("Array<%") } } /** diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index b483b2b7099..8dea5ec3f62 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -404,25 +404,42 @@ edges | test.swift:756:15:756:19 | .v2 [some:0] | test.swift:756:15:756:21 | ...! | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:732:9:732:9 | self [v3] | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:757:15:757:19 | .v3 | -| test.swift:767:5:767:5 | [post] dict1 [Array element] | test.swift:769:15:769:15 | dict1 [Array element] | -| test.swift:767:16:767:23 | call to source() | test.swift:767:5:767:5 | [post] dict1 [Array element] | -| test.swift:769:15:769:15 | dict1 [Array element] | test.swift:769:15:769:22 | ...[...] | +| test.swift:767:5:767:5 | [post] dict1 [Collection element, Tuple element at index 1] | test.swift:769:15:769:15 | dict1 [Collection element, Tuple element at index 1] | +| test.swift:767:5:767:12 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:767:5:767:5 | [post] dict1 [Collection element, Tuple element at index 1] | +| test.swift:767:16:767:23 | call to source() | test.swift:767:5:767:12 | DictionarySubscriptNode [Tuple element at index 1] | +| test.swift:769:15:769:15 | dict1 [Collection element, Tuple element at index 1] | test.swift:769:15:769:22 | DictionarySubscriptNode [Tuple element at index 1] | +| test.swift:769:15:769:22 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:769:15:769:22 | ...[...] | | test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | test.swift:780:15:780:15 | dict3 [Collection element, Tuple element at index 1] | | test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | test.swift:782:5:782:5 | dict3 [Collection element, Tuple element at index 1] | +| test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | test.swift:785:15:785:15 | dict3 [Collection element, Tuple element at index 1] | | test.swift:779:18:779:28 | (...) [Tuple element at index 1] | test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | | test.swift:779:21:779:28 | call to source() | test.swift:779:18:779:28 | (...) [Tuple element at index 1] | | test.swift:780:15:780:15 | dict3 [Collection element, Tuple element at index 1] | test.swift:780:15:780:22 | DictionarySubscriptNode [Tuple element at index 1] | | test.swift:780:15:780:22 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:780:15:780:22 | ...[...] | -| test.swift:782:5:782:5 | dict3 [Collection element, Tuple element at index 1] | test.swift:785:15:785:15 | dict3 [Collection element, Tuple element at index 1] | +| test.swift:782:5:782:5 | [post] dict3 [Collection element, Tuple element at index 0] | test.swift:784:15:784:15 | dict3 [Collection element, Tuple element at index 0] | +| test.swift:782:5:782:5 | [post] dict3 [Collection element, Tuple element at index 1] | test.swift:785:15:785:15 | dict3 [Collection element, Tuple element at index 1] | +| test.swift:782:5:782:5 | dict3 [Collection element, Tuple element at index 1] | test.swift:782:5:782:19 | DictionarySubscriptNode [Tuple element at index 1] | +| test.swift:782:5:782:19 | DictionarySubscriptNode [Tuple element at index 0] | test.swift:782:5:782:5 | [post] dict3 [Collection element, Tuple element at index 0] | +| test.swift:782:5:782:19 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:782:5:782:5 | [post] dict3 [Collection element, Tuple element at index 1] | +| test.swift:782:11:782:18 | call to source() | test.swift:782:5:782:19 | DictionarySubscriptNode [Tuple element at index 0] | +| test.swift:784:15:784:15 | dict3 [Collection element, Tuple element at index 0] | test.swift:784:15:784:35 | call to randomElement() [some:0, Tuple element at index 0] | +| test.swift:784:15:784:35 | call to randomElement() [some:0, Tuple element at index 0] | test.swift:784:15:784:36 | ...! [Tuple element at index 0] | +| test.swift:784:15:784:36 | ...! [Tuple element at index 0] | test.swift:784:15:784:38 | .0 | | test.swift:785:15:785:15 | dict3 [Collection element, Tuple element at index 1] | test.swift:785:15:785:35 | call to randomElement() [some:0, Tuple element at index 1] | | test.swift:785:15:785:35 | call to randomElement() [some:0, Tuple element at index 1] | test.swift:785:15:785:36 | ...! [Tuple element at index 1] | | test.swift:785:15:785:36 | ...! [Tuple element at index 1] | test.swift:785:15:785:38 | .1 | +| test.swift:792:17:792:28 | [...] [Collection element, Tuple element at index 1] | test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | +| test.swift:792:17:792:28 | [...] [Collection element, Tuple element at index 1] | test.swift:794:15:794:15 | dict4 [Collection element, Tuple element at index 1] | | test.swift:792:17:792:28 | [...] [Collection element, Tuple element at index 1] | test.swift:796:15:796:15 | dict4 [Collection element, Tuple element at index 1] | | test.swift:792:18:792:27 | (...) [Tuple element at index 1] | test.swift:792:17:792:28 | [...] [Collection element, Tuple element at index 1] | | test.swift:792:20:792:27 | call to source() | test.swift:792:18:792:27 | (...) [Tuple element at index 1] | | test.swift:793:15:793:15 | [post] dict4 [Collection element, Tuple element at index 0] | test.swift:795:15:795:15 | dict4 [Collection element, Tuple element at index 0] | +| test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:793:15:793:52 | call to updateValue(_:forKey:) [some:0] | +| test.swift:793:15:793:52 | call to updateValue(_:forKey:) [some:0] | test.swift:793:15:793:53 | ...! | | test.swift:793:44:793:51 | call to source() | test.swift:793:15:793:15 | [post] dict4 [Collection element, Tuple element at index 0] | | test.swift:794:15:794:15 | [post] dict4 [Collection element, Tuple element at index 1] | test.swift:796:15:796:15 | dict4 [Collection element, Tuple element at index 1] | +| test.swift:794:15:794:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:794:15:794:52 | call to updateValue(_:forKey:) [some:0] | +| test.swift:794:15:794:52 | call to updateValue(_:forKey:) [some:0] | test.swift:794:15:794:53 | ...! | | test.swift:794:33:794:40 | call to source() | test.swift:794:15:794:15 | [post] dict4 [Collection element, Tuple element at index 1] | | test.swift:795:15:795:15 | dict4 [Collection element, Tuple element at index 0] | test.swift:795:15:795:35 | call to randomElement() [some:0, Tuple element at index 0] | | test.swift:795:15:795:35 | call to randomElement() [some:0, Tuple element at index 0] | test.swift:795:15:795:36 | ...! [Tuple element at index 0] | @@ -875,17 +892,28 @@ nodes | test.swift:756:15:756:21 | ...! | semmle.label | ...! | | test.swift:757:15:757:15 | mo1 [v3] | semmle.label | mo1 [v3] | | test.swift:757:15:757:19 | .v3 | semmle.label | .v3 | -| test.swift:767:5:767:5 | [post] dict1 [Array element] | semmle.label | [post] dict1 [Array element] | +| test.swift:767:5:767:5 | [post] dict1 [Collection element, Tuple element at index 1] | semmle.label | [post] dict1 [Collection element, Tuple element at index 1] | +| test.swift:767:5:767:12 | DictionarySubscriptNode [Tuple element at index 1] | semmle.label | DictionarySubscriptNode [Tuple element at index 1] | | test.swift:767:16:767:23 | call to source() | semmle.label | call to source() | -| test.swift:769:15:769:15 | dict1 [Array element] | semmle.label | dict1 [Array element] | +| test.swift:769:15:769:15 | dict1 [Collection element, Tuple element at index 1] | semmle.label | dict1 [Collection element, Tuple element at index 1] | | test.swift:769:15:769:22 | ...[...] | semmle.label | ...[...] | +| test.swift:769:15:769:22 | DictionarySubscriptNode [Tuple element at index 1] | semmle.label | DictionarySubscriptNode [Tuple element at index 1] | | test.swift:779:17:779:29 | [...] [Collection element, Tuple element at index 1] | semmle.label | [...] [Collection element, Tuple element at index 1] | | test.swift:779:18:779:28 | (...) [Tuple element at index 1] | semmle.label | (...) [Tuple element at index 1] | | test.swift:779:21:779:28 | call to source() | semmle.label | call to source() | | test.swift:780:15:780:15 | dict3 [Collection element, Tuple element at index 1] | semmle.label | dict3 [Collection element, Tuple element at index 1] | | test.swift:780:15:780:22 | ...[...] | semmle.label | ...[...] | | test.swift:780:15:780:22 | DictionarySubscriptNode [Tuple element at index 1] | semmle.label | DictionarySubscriptNode [Tuple element at index 1] | +| test.swift:782:5:782:5 | [post] dict3 [Collection element, Tuple element at index 0] | semmle.label | [post] dict3 [Collection element, Tuple element at index 0] | +| test.swift:782:5:782:5 | [post] dict3 [Collection element, Tuple element at index 1] | semmle.label | [post] dict3 [Collection element, Tuple element at index 1] | | test.swift:782:5:782:5 | dict3 [Collection element, Tuple element at index 1] | semmle.label | dict3 [Collection element, Tuple element at index 1] | +| test.swift:782:5:782:19 | DictionarySubscriptNode [Tuple element at index 0] | semmle.label | DictionarySubscriptNode [Tuple element at index 0] | +| test.swift:782:5:782:19 | DictionarySubscriptNode [Tuple element at index 1] | semmle.label | DictionarySubscriptNode [Tuple element at index 1] | +| test.swift:782:11:782:18 | call to source() | semmle.label | call to source() | +| test.swift:784:15:784:15 | dict3 [Collection element, Tuple element at index 0] | semmle.label | dict3 [Collection element, Tuple element at index 0] | +| test.swift:784:15:784:35 | call to randomElement() [some:0, Tuple element at index 0] | semmle.label | call to randomElement() [some:0, Tuple element at index 0] | +| test.swift:784:15:784:36 | ...! [Tuple element at index 0] | semmle.label | ...! [Tuple element at index 0] | +| test.swift:784:15:784:38 | .0 | semmle.label | .0 | | test.swift:785:15:785:15 | dict3 [Collection element, Tuple element at index 1] | semmle.label | dict3 [Collection element, Tuple element at index 1] | | test.swift:785:15:785:35 | call to randomElement() [some:0, Tuple element at index 1] | semmle.label | call to randomElement() [some:0, Tuple element at index 1] | | test.swift:785:15:785:36 | ...! [Tuple element at index 1] | semmle.label | ...! [Tuple element at index 1] | @@ -894,8 +922,14 @@ nodes | test.swift:792:18:792:27 | (...) [Tuple element at index 1] | semmle.label | (...) [Tuple element at index 1] | | test.swift:792:20:792:27 | call to source() | semmle.label | call to source() | | test.swift:793:15:793:15 | [post] dict4 [Collection element, Tuple element at index 0] | semmle.label | [post] dict4 [Collection element, Tuple element at index 0] | +| test.swift:793:15:793:15 | dict4 [Collection element, Tuple element at index 1] | semmle.label | dict4 [Collection element, Tuple element at index 1] | +| test.swift:793:15:793:52 | call to updateValue(_:forKey:) [some:0] | semmle.label | call to updateValue(_:forKey:) [some:0] | +| test.swift:793:15:793:53 | ...! | semmle.label | ...! | | test.swift:793:44:793:51 | call to source() | semmle.label | call to source() | | test.swift:794:15:794:15 | [post] dict4 [Collection element, Tuple element at index 1] | semmle.label | [post] dict4 [Collection element, Tuple element at index 1] | +| test.swift:794:15:794:15 | dict4 [Collection element, Tuple element at index 1] | semmle.label | dict4 [Collection element, Tuple element at index 1] | +| test.swift:794:15:794:52 | call to updateValue(_:forKey:) [some:0] | semmle.label | call to updateValue(_:forKey:) [some:0] | +| test.swift:794:15:794:53 | ...! | semmle.label | ...! | | test.swift:794:33:794:40 | call to source() | semmle.label | call to source() | | test.swift:795:15:795:15 | dict4 [Collection element, Tuple element at index 0] | semmle.label | dict4 [Collection element, Tuple element at index 0] | | test.swift:795:15:795:35 | call to randomElement() [some:0, Tuple element at index 0] | semmle.label | call to randomElement() [some:0, Tuple element at index 0] | @@ -1054,7 +1088,10 @@ subpaths | test.swift:757:15:757:19 | .v3 | test.swift:747:14:747:21 | call to source() | test.swift:757:15:757:19 | .v3 | result | | test.swift:769:15:769:22 | ...[...] | test.swift:767:16:767:23 | call to source() | test.swift:769:15:769:22 | ...[...] | result | | test.swift:780:15:780:22 | ...[...] | test.swift:779:21:779:28 | call to source() | test.swift:780:15:780:22 | ...[...] | result | +| test.swift:784:15:784:38 | .0 | test.swift:782:11:782:18 | call to source() | test.swift:784:15:784:38 | .0 | result | | test.swift:785:15:785:38 | .1 | test.swift:779:21:779:28 | call to source() | test.swift:785:15:785:38 | .1 | result | +| test.swift:793:15:793:53 | ...! | test.swift:792:20:792:27 | call to source() | test.swift:793:15:793:53 | ...! | result | +| test.swift:794:15:794:53 | ...! | test.swift:792:20:792:27 | call to source() | test.swift:794:15:794:53 | ...! | result | | test.swift:795:15:795:38 | .0 | test.swift:793:44:793:51 | call to source() | test.swift:795:15:795:38 | .0 | result | | test.swift:796:15:796:38 | .1 | test.swift:792:20:792:27 | call to source() | test.swift:796:15:796:38 | .1 | result | | test.swift:796:15:796:38 | .1 | test.swift:794:33:794:40 | call to source() | test.swift:796:15:796:38 | .1 | result | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/test.swift b/swift/ql/test/library-tests/dataflow/dataflow/test.swift index b1d6eae5e53..46087bdbb2c 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/test.swift +++ b/swift/ql/test/library-tests/dataflow/dataflow/test.swift @@ -781,8 +781,8 @@ func testDictionary() { dict3[source()] = 2 - sink(arg: dict3.randomElement()!.0) // $ MISSING: flow=779 - sink(arg: dict3.randomElement()!.1) // $ SPURIOUS: flow=779 MISSING: flow=782 + sink(arg: dict3.randomElement()!.0) // $ flow=782 + sink(arg: dict3.randomElement()!.1) // $ flow=779 for (key, value) in dict3 { sink(arg: key) // $ MISSING: flow=782 @@ -790,8 +790,8 @@ func testDictionary() { } var dict4 = [1:source()] - sink(arg: dict4.updateValue(1, forKey: source())!) - sink(arg: dict4.updateValue(source(), forKey: 2)!) + sink(arg: dict4.updateValue(1, forKey: source())!) // $ flow=792 + sink(arg: dict4.updateValue(source(), forKey: 2)!) // $ SPURIOUS: flow=792 sink(arg: dict4.randomElement()!.0) // $ flow=793 sink(arg: dict4.randomElement()!.1) // $ flow=792 flow=794 sink(arg: dict4.keys.randomElement()) // $ MISSING: flow=793 From b4595d8b9289347fa5d08656d8c03332253b1294 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 15 Aug 2023 13:23:19 +0100 Subject: [PATCH 066/788] Swift: Model getVaList, correct NSLogv sink for swift/cleartext-logging. --- .../swift/frameworks/StandardLibrary/CInterop.qll | 12 ++++++++++++ .../frameworks/StandardLibrary/StandardLibrary.qll | 1 + .../swift/security/CleartextLoggingExtensions.qll | 2 +- .../Security/CWE-312/cleartextLoggingTest.swift | 4 ++-- 4 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 swift/ql/lib/codeql/swift/frameworks/StandardLibrary/CInterop.qll diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/CInterop.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/CInterop.qll new file mode 100644 index 00000000000..ac7d5c5b67e --- /dev/null +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/CInterop.qll @@ -0,0 +1,12 @@ +/** + * Provides models for Swift "C Interoperability" functions. + */ + +import swift +private import codeql.swift.dataflow.ExternalFlow + +private class CInteropSummaries extends SummaryModelCsv { + override predicate row(string row) { + row = ";;false;getVaList(_:);;;Argument[0].ArrayElement;ReturnValue;value" + } +} diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll index 93d60dba092..9d29277bc11 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/StandardLibrary.qll @@ -3,6 +3,7 @@ */ private import Array +private import CInterop private import Collection private import CustomUrlSchemes private import Data diff --git a/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll index 21bf855d1fc..a38fdbafbdd 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll @@ -94,7 +94,7 @@ private class LoggingSinks extends SinkModelCsv { ";;false;NSLog(_:_:);;;Argument[0];log-injection", ";;false;NSLog(_:_:);;;Argument[1].ArrayElement;log-injection", ";;false;NSLogv(_:_:);;;Argument[0];log-injection", - ";;false;NSLogv(_:_:);;;Argument[1].ArrayElement;log-injection", + ";;false;NSLogv(_:_:);;;Argument[1];log-injection", ";;false;vfprintf(_:_:_:);;;Agument[1..2];log-injection", ";Logger;true;log(_:);;;Argument[0];log-injection", ";Logger;true;log(level:_:);;;Argument[1];log-injection", diff --git a/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift b/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift index 8f8cd40c7cf..e1dd1a890cb 100644 --- a/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift +++ b/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift @@ -96,8 +96,8 @@ func test1(password: String, passwordHash : String, passphrase: String, pass_phr NSLog("%@", password as! CVarArg) // $ MISSING: hasCleartextLogging=96 NSLog("%@ %@", "" as! CVarArg, password as! CVarArg) // $ MISSING: hasCleartextLogging=97 NSLog("\(password)") // $ hasCleartextLogging=98 - NSLogv("%@", getVaList([password as! CVarArg])) // $ MISSING: hasCleartextLogging=99 - NSLogv("%@ %@", getVaList(["" as! CVarArg, password as! CVarArg])) // $ MISSING: hasCleartextLogging=100 + NSLogv("%@", getVaList([password as! CVarArg])) // $ hasCleartextLogging=99 + NSLogv("%@ %@", getVaList(["" as! CVarArg, password as! CVarArg])) // $ hasCleartextLogging=100 NSLog(passwordHash) // SAfe NSLogv("%@", getVaList([passwordHash as! CVarArg])) // Safe From 3fe8655b6ecfe5f759bf0f449c996fa04b9e2ff8 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 15 Aug 2023 17:57:54 +0100 Subject: [PATCH 067/788] Swift: Test data flow through varargs. --- .../dataflow/dataflow/DataFlow.expected | 6 ++++ .../dataflow/dataflow/LocalFlow.expected | 26 +++++++++++++++ .../dataflow/dataflow/test.swift | 32 +++++++++++++++++++ 3 files changed, 64 insertions(+) diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index c638ea8e344..25dcaf0c574 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -404,6 +404,8 @@ edges | test.swift:756:15:756:19 | .v2 [some:0] | test.swift:756:15:756:21 | ...! | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:732:9:732:9 | self [v3] | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:757:15:757:19 | .v3 | +| test.swift:768:19:768:24 | v | test.swift:769:15:769:15 | v | +| test.swift:791:18:791:25 | call to source() | test.swift:768:19:768:24 | v | nodes | file://:0:0:0:0 | .a [x] | semmle.label | .a [x] | | file://:0:0:0:0 | .str | semmle.label | .str | @@ -849,6 +851,9 @@ nodes | test.swift:756:15:756:21 | ...! | semmle.label | ...! | | test.swift:757:15:757:15 | mo1 [v3] | semmle.label | mo1 [v3] | | test.swift:757:15:757:19 | .v3 | semmle.label | .v3 | +| test.swift:768:19:768:24 | v | semmle.label | v | +| test.swift:769:15:769:15 | v | semmle.label | v | +| test.swift:791:18:791:25 | call to source() | semmle.label | call to source() | subpaths | test.swift:75:22:75:22 | x | test.swift:65:16:65:28 | arg1 | test.swift:65:1:70:1 | arg2[return] | test.swift:75:32:75:32 | [post] y | | test.swift:114:19:114:19 | arg | test.swift:109:9:109:14 | arg | test.swift:110:12:110:12 | arg | test.swift:114:12:114:22 | call to ... | @@ -996,3 +1001,4 @@ subpaths | test.swift:754:15:754:15 | v3 | test.swift:744:10:744:17 | call to source() | test.swift:754:15:754:15 | v3 | result | | test.swift:756:15:756:21 | ...! | test.swift:746:14:746:21 | call to source() | test.swift:756:15:756:21 | ...! | result | | test.swift:757:15:757:19 | .v3 | test.swift:747:14:747:21 | call to source() | test.swift:757:15:757:19 | .v3 | result | +| test.swift:769:15:769:15 | v | test.swift:791:18:791:25 | call to source() | test.swift:769:15:769:15 | v | result | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected index 18e5d25010d..f48269b333e 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected @@ -913,3 +913,29 @@ | test.swift:759:15:759:15 | mo2 | test.swift:760:15:760:15 | mo2 | | test.swift:759:15:759:20 | .v2 | test.swift:759:15:759:22 | ...! | | test.swift:760:15:760:15 | mo2 | test.swift:760:15:760:18 | ...! | +| test.swift:763:19:763:28 | SSA def(args) | test.swift:764:15:764:15 | args | +| test.swift:763:19:763:28 | args | test.swift:763:19:763:28 | SSA def(args) | +| test.swift:764:15:764:15 | args | test.swift:765:15:765:15 | args | +| test.swift:768:19:768:24 | SSA def(v) | test.swift:769:15:769:15 | v | +| test.swift:768:19:768:24 | v | test.swift:768:19:768:24 | SSA def(v) | +| test.swift:768:29:768:40 | SSA def(args) | test.swift:770:15:770:15 | args | +| test.swift:768:29:768:40 | args | test.swift:768:29:768:40 | SSA def(args) | +| test.swift:770:15:770:15 | args | test.swift:771:15:771:15 | args | +| test.swift:771:15:771:15 | [post] args | test.swift:772:15:772:15 | args | +| test.swift:771:15:771:15 | args | test.swift:772:15:772:15 | args | +| test.swift:775:19:775:24 | SSA def(v) | test.swift:776:15:776:15 | v | +| test.swift:775:19:775:24 | v | test.swift:775:19:775:24 | SSA def(v) | +| test.swift:775:29:775:40 | SSA def(args) | test.swift:777:15:777:15 | args | +| test.swift:775:29:775:40 | args | test.swift:775:29:775:40 | SSA def(args) | +| test.swift:777:15:777:15 | args | test.swift:778:15:778:15 | args | +| test.swift:778:15:778:15 | [post] args | test.swift:779:15:779:15 | args | +| test.swift:778:15:778:15 | args | test.swift:779:15:779:15 | args | +| test.swift:779:15:779:15 | [post] args | test.swift:781:16:781:16 | args | +| test.swift:779:15:779:15 | args | test.swift:781:16:781:16 | args | +| test.swift:781:9:781:9 | SSA def(arg) | test.swift:782:19:782:19 | arg | +| test.swift:781:9:781:9 | arg | test.swift:781:9:781:9 | SSA def(arg) | +| test.swift:781:16:781:16 | args | test.swift:786:15:786:15 | args | +| test.swift:785:9:785:9 | SSA def(myKeyPath) | test.swift:786:29:786:29 | myKeyPath | +| test.swift:785:9:785:9 | myKeyPath | test.swift:785:9:785:9 | SSA def(myKeyPath) | +| test.swift:785:21:785:29 | #keyPath(...) | test.swift:785:9:785:9 | myKeyPath | +| test.swift:785:21:785:29 | enter #keyPath(...) | test.swift:785:27:785:29 | KeyPathComponent | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/test.swift b/swift/ql/test/library-tests/dataflow/dataflow/test.swift index 44001572dbd..38e48a53615 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/test.swift +++ b/swift/ql/test/library-tests/dataflow/dataflow/test.swift @@ -759,3 +759,35 @@ func testWriteOptional() { sink(arg: mo2!.v2!) // $ MISSING:flow=749 sink(arg: mo2!.v3) // $ MISSING:flow=750 } + +func testVarargs1(args: Int...) { + sink(arg: args) + sink(arg: args[0]) // $ MISSING: flow=790 +} + +func testVarargs2(_ v: Int, _ args: Int...) { + sink(arg: v) // $ flow=791 + sink(arg: args) + sink(arg: args[0]) + sink(arg: args[1]) +} + +func testVarargs3(_ v: Int, _ args: Int...) { + sink(arg: v) + sink(arg: args) + sink(arg: args[0]) + sink(arg: args[1]) // $ MISSING: flow=792 + + for arg in args { + sink(arg: arg) // $ MISSING: flow=792 + } + + let myKeyPath = \[Int][1] + sink(arg: args[keyPath: myKeyPath]) // $ MISSING: flow=792 +} + +func testVarargsCaller() { + testVarargs1(args: source()) + testVarargs2(source(), 2, 3) + testVarargs3(1, 2, source()) +} From 269f0c6cb1d9052f9c88535fe63762dff08737de Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 15 Aug 2023 18:18:22 +0100 Subject: [PATCH 068/788] Swift: Flow through varargs. --- .../dataflow/internal/DataFlowPrivate.qll | 10 ++++- .../dataflow/dataflow/DataFlow.expected | 41 +++++++++++++++++++ .../dataflow/dataflow/LocalFlow.expected | 3 ++ .../dataflow/dataflow/test.swift | 8 ++-- 4 files changed, 56 insertions(+), 6 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 145ac20573b..09e76d02e32 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -190,6 +190,9 @@ private module Cached { // flow through unary `+` (which does nothing) nodeFrom.asExpr() = nodeTo.asExpr().(UnaryPlusExpr).getOperand() or + // flow through varargs expansions (that wrap an `ArrayExpr` where varargs enter a call) + nodeFrom.asExpr() = nodeTo.asExpr().(VarargExpansionExpr).getSubExpr() + or // flow through nil-coalescing operator `??` exists(BinaryExpr nco | nco.getOperator().(FreeFunction).getName() = "??(_:_:)" and @@ -799,11 +802,14 @@ predicate readStep(Node node1, ContentSet c, Node node2) { node2.(KeyPathReturnNodeImpl).getKeyPathExpr() = component.getKeyPathExpr() ) or - // read of an array member via subscript operator + // read of an array or variadic sequence type member via subscript operator exists(SubscriptExpr subscript | subscript.getBase() = node1.asExpr() and subscript = node2.asExpr() and - subscript.getBase().getType() instanceof ArrayType and + ( + subscript.getBase().getType() instanceof ArrayType or + subscript.getBase().getType() instanceof VariadicSequenceType + ) and c.isSingleton(any(Content::ArrayContent ac)) ) or diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index 25dcaf0c574..cb19ac2df30 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -404,8 +404,25 @@ edges | test.swift:756:15:756:19 | .v2 [some:0] | test.swift:756:15:756:21 | ...! | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:732:9:732:9 | self [v3] | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:757:15:757:19 | .v3 | +| test.swift:763:19:763:28 | args [Array element] | test.swift:765:15:765:15 | args [Array element] | +| test.swift:765:15:765:15 | args [Array element] | test.swift:765:15:765:21 | ...[...] | | test.swift:768:19:768:24 | v | test.swift:769:15:769:15 | v | +| test.swift:775:29:775:40 | args [Array element] | test.swift:778:15:778:15 | args [Array element] | +| test.swift:775:29:775:40 | args [Array element] | test.swift:779:15:779:15 | args [Array element] | +| test.swift:775:29:775:40 | args [Array element] | test.swift:786:15:786:15 | args [Array element] | +| test.swift:778:15:778:15 | args [Array element] | test.swift:778:15:778:21 | ...[...] | +| test.swift:779:15:779:15 | args [Array element] | test.swift:779:15:779:21 | ...[...] | +| test.swift:785:21:785:29 | enter #keyPath(...) [Array element] | test.swift:785:27:785:29 | KeyPathComponent [Array element] | +| test.swift:785:27:785:29 | KeyPathComponent [Array element] | test.swift:785:21:785:29 | exit #keyPath(...) | +| test.swift:786:15:786:15 | args [Array element] | test.swift:785:21:785:29 | enter #keyPath(...) [Array element] | +| test.swift:786:15:786:15 | args [Array element] | test.swift:786:15:786:38 | \\...[...] | +| test.swift:790:24:790:31 | [...] [Array element] | test.swift:763:19:763:28 | args [Array element] | +| test.swift:790:24:790:31 | [...] [Array element] | test.swift:790:24:790:31 | [...] [Array element] | +| test.swift:790:24:790:31 | call to source() | test.swift:790:24:790:31 | [...] [Array element] | | test.swift:791:18:791:25 | call to source() | test.swift:768:19:768:24 | v | +| test.swift:792:21:792:31 | [...] [Array element] | test.swift:775:29:775:40 | args [Array element] | +| test.swift:792:21:792:31 | [...] [Array element] | test.swift:792:21:792:31 | [...] [Array element] | +| test.swift:792:24:792:31 | call to source() | test.swift:792:21:792:31 | [...] [Array element] | nodes | file://:0:0:0:0 | .a [x] | semmle.label | .a [x] | | file://:0:0:0:0 | .str | semmle.label | .str | @@ -851,9 +868,28 @@ nodes | test.swift:756:15:756:21 | ...! | semmle.label | ...! | | test.swift:757:15:757:15 | mo1 [v3] | semmle.label | mo1 [v3] | | test.swift:757:15:757:19 | .v3 | semmle.label | .v3 | +| test.swift:763:19:763:28 | args [Array element] | semmle.label | args [Array element] | +| test.swift:765:15:765:15 | args [Array element] | semmle.label | args [Array element] | +| test.swift:765:15:765:21 | ...[...] | semmle.label | ...[...] | | test.swift:768:19:768:24 | v | semmle.label | v | | test.swift:769:15:769:15 | v | semmle.label | v | +| test.swift:775:29:775:40 | args [Array element] | semmle.label | args [Array element] | +| test.swift:778:15:778:15 | args [Array element] | semmle.label | args [Array element] | +| test.swift:778:15:778:21 | ...[...] | semmle.label | ...[...] | +| test.swift:779:15:779:15 | args [Array element] | semmle.label | args [Array element] | +| test.swift:779:15:779:21 | ...[...] | semmle.label | ...[...] | +| test.swift:785:21:785:29 | enter #keyPath(...) [Array element] | semmle.label | enter #keyPath(...) [Array element] | +| test.swift:785:21:785:29 | exit #keyPath(...) | semmle.label | exit #keyPath(...) | +| test.swift:785:27:785:29 | KeyPathComponent [Array element] | semmle.label | KeyPathComponent [Array element] | +| test.swift:786:15:786:15 | args [Array element] | semmle.label | args [Array element] | +| test.swift:786:15:786:38 | \\...[...] | semmle.label | \\...[...] | +| test.swift:790:24:790:31 | [...] [Array element] | semmle.label | [...] [Array element] | +| test.swift:790:24:790:31 | [...] [Array element] | semmle.label | [...] [Array element] | +| test.swift:790:24:790:31 | call to source() | semmle.label | call to source() | | test.swift:791:18:791:25 | call to source() | semmle.label | call to source() | +| test.swift:792:21:792:31 | [...] [Array element] | semmle.label | [...] [Array element] | +| test.swift:792:21:792:31 | [...] [Array element] | semmle.label | [...] [Array element] | +| test.swift:792:24:792:31 | call to source() | semmle.label | call to source() | subpaths | test.swift:75:22:75:22 | x | test.swift:65:16:65:28 | arg1 | test.swift:65:1:70:1 | arg2[return] | test.swift:75:32:75:32 | [post] y | | test.swift:114:19:114:19 | arg | test.swift:109:9:109:14 | arg | test.swift:110:12:110:12 | arg | test.swift:114:12:114:22 | call to ... | @@ -902,6 +938,7 @@ subpaths | test.swift:756:15:756:15 | mo1 [v2, some:0] | test.swift:731:9:731:9 | self [v2, some:0] | file://:0:0:0:0 | .v2 [some:0] | test.swift:756:15:756:19 | .v2 [some:0] | | test.swift:756:15:756:15 | mo1 [v2] | test.swift:731:9:731:9 | self [v2] | file://:0:0:0:0 | .v2 | test.swift:756:15:756:19 | .v2 | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:732:9:732:9 | self [v3] | file://:0:0:0:0 | .v3 | test.swift:757:15:757:19 | .v3 | +| test.swift:786:15:786:15 | args [Array element] | test.swift:785:21:785:29 | enter #keyPath(...) [Array element] | test.swift:785:21:785:29 | exit #keyPath(...) | test.swift:786:15:786:38 | \\...[...] | #select | test.swift:7:15:7:15 | t1 | test.swift:6:19:6:26 | call to source() | test.swift:7:15:7:15 | t1 | result | | test.swift:9:15:9:15 | t1 | test.swift:6:19:6:26 | call to source() | test.swift:9:15:9:15 | t1 | result | @@ -1001,4 +1038,8 @@ subpaths | test.swift:754:15:754:15 | v3 | test.swift:744:10:744:17 | call to source() | test.swift:754:15:754:15 | v3 | result | | test.swift:756:15:756:21 | ...! | test.swift:746:14:746:21 | call to source() | test.swift:756:15:756:21 | ...! | result | | test.swift:757:15:757:19 | .v3 | test.swift:747:14:747:21 | call to source() | test.swift:757:15:757:19 | .v3 | result | +| test.swift:765:15:765:21 | ...[...] | test.swift:790:24:790:31 | call to source() | test.swift:765:15:765:21 | ...[...] | result | | test.swift:769:15:769:15 | v | test.swift:791:18:791:25 | call to source() | test.swift:769:15:769:15 | v | result | +| test.swift:778:15:778:21 | ...[...] | test.swift:792:24:792:31 | call to source() | test.swift:778:15:778:21 | ...[...] | result | +| test.swift:779:15:779:21 | ...[...] | test.swift:792:24:792:31 | call to source() | test.swift:779:15:779:21 | ...[...] | result | +| test.swift:786:15:786:38 | \\...[...] | test.swift:792:24:792:31 | call to source() | test.swift:786:15:786:38 | \\...[...] | result | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected index f48269b333e..c7773e3313b 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected @@ -939,3 +939,6 @@ | test.swift:785:9:785:9 | myKeyPath | test.swift:785:9:785:9 | SSA def(myKeyPath) | | test.swift:785:21:785:29 | #keyPath(...) | test.swift:785:9:785:9 | myKeyPath | | test.swift:785:21:785:29 | enter #keyPath(...) | test.swift:785:27:785:29 | KeyPathComponent | +| test.swift:790:24:790:31 | [...] | test.swift:790:24:790:31 | [...] | +| test.swift:791:28:791:31 | [...] | test.swift:791:28:791:31 | [...] | +| test.swift:792:21:792:31 | [...] | test.swift:792:21:792:31 | [...] | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/test.swift b/swift/ql/test/library-tests/dataflow/dataflow/test.swift index 38e48a53615..55ec0207a81 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/test.swift +++ b/swift/ql/test/library-tests/dataflow/dataflow/test.swift @@ -762,7 +762,7 @@ func testWriteOptional() { func testVarargs1(args: Int...) { sink(arg: args) - sink(arg: args[0]) // $ MISSING: flow=790 + sink(arg: args[0]) // $ flow=790 } func testVarargs2(_ v: Int, _ args: Int...) { @@ -775,15 +775,15 @@ func testVarargs2(_ v: Int, _ args: Int...) { func testVarargs3(_ v: Int, _ args: Int...) { sink(arg: v) sink(arg: args) - sink(arg: args[0]) - sink(arg: args[1]) // $ MISSING: flow=792 + sink(arg: args[0]) // $ SPURIOUS: flow=792 + sink(arg: args[1]) // $ flow=792 for arg in args { sink(arg: arg) // $ MISSING: flow=792 } let myKeyPath = \[Int][1] - sink(arg: args[keyPath: myKeyPath]) // $ MISSING: flow=792 + sink(arg: args[keyPath: myKeyPath]) // $ flow=792 } func testVarargsCaller() { From 8f2e2a615517b6fae13f0939decb9fa4979c4025 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 15 Aug 2023 18:26:48 +0100 Subject: [PATCH 069/788] Swift: Fix array content sinks for swift/cleartext-logging. --- .../swift/security/CleartextLoggingExtensions.qll | 12 ++++-------- .../codeql/swift/security/CleartextLoggingQuery.qll | 6 ++++++ .../Security/CWE-312/cleartextLoggingTest.swift | 10 +++++----- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll index a38fdbafbdd..77e4079a0ca 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll @@ -87,14 +87,10 @@ private class LoggingSinks extends SinkModelCsv { override predicate row(string row) { row = [ - ";;false;print(_:separator:terminator:);;;Argument[0].ArrayElement;log-injection", - ";;false;print(_:separator:terminator:);;;Argument[1..2];log-injection", - ";;false;print(_:separator:terminator:toStream:);;;Argument[0].ArrayElement;log-injection", - ";;false;print(_:separator:terminator:toStream:);;;Argument[1..2];log-injection", - ";;false;NSLog(_:_:);;;Argument[0];log-injection", - ";;false;NSLog(_:_:);;;Argument[1].ArrayElement;log-injection", - ";;false;NSLogv(_:_:);;;Argument[0];log-injection", - ";;false;NSLogv(_:_:);;;Argument[1];log-injection", + ";;false;print(_:separator:terminator:);;;Argument[0..2];log-injection", + ";;false;print(_:separator:terminator:toStream:);;;Argument[0..2];log-injection", + ";;false;NSLog(_:_:);;;Argument[0..1];log-injection", + ";;false;NSLogv(_:_:);;;Argument[0..1];log-injection", ";;false;vfprintf(_:_:_:);;;Agument[1..2];log-injection", ";Logger;true;log(_:);;;Argument[0];log-injection", ";Logger;true;log(level:_:);;;Argument[1];log-injection", diff --git a/swift/ql/lib/codeql/swift/security/CleartextLoggingQuery.qll b/swift/ql/lib/codeql/swift/security/CleartextLoggingQuery.qll index 740fccefe97..08fed61c7d9 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextLoggingQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextLoggingQuery.qll @@ -25,6 +25,12 @@ module CleartextLoggingConfig implements DataFlow::ConfigSig { predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) { any(CleartextLoggingAdditionalFlowStep s).step(n1, n2) } + + predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c) { + // flow out from array content at the sink. + isSink(node) and + c.getAReadContent() instanceof DataFlow::Content::ArrayContent + } } /** diff --git a/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift b/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift index e1dd1a890cb..4c4a6baf551 100644 --- a/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift +++ b/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift @@ -84,17 +84,17 @@ struct Logger { // --- tests --- func test1(password: String, passwordHash : String, passphrase: String, pass_phrase: String) { - print(password) // $ MISSING: hasCleartextLogging=87 - print(password, separator: "") // $ MISSING: $ hasCleartextLogging=88 + print(password) // $ hasCleartextLogging=87 + print(password, separator: "") // $ $ hasCleartextLogging=88 print("", separator: password) // $ hasCleartextLogging=89 - print(password, separator: "", terminator: "") // $ MISSING: hasCleartextLogging=90 + print(password, separator: "", terminator: "") // $ hasCleartextLogging=90 print("", separator: password, terminator: "") // $ hasCleartextLogging=91 print("", separator: "", terminator: password) // $ hasCleartextLogging=92 print(passwordHash) // Safe NSLog(password) // $ hasCleartextLogging=95 - NSLog("%@", password as! CVarArg) // $ MISSING: hasCleartextLogging=96 - NSLog("%@ %@", "" as! CVarArg, password as! CVarArg) // $ MISSING: hasCleartextLogging=97 + NSLog("%@", password as! CVarArg) // $ hasCleartextLogging=96 + NSLog("%@ %@", "" as! CVarArg, password as! CVarArg) // $ hasCleartextLogging=97 NSLog("\(password)") // $ hasCleartextLogging=98 NSLogv("%@", getVaList([password as! CVarArg])) // $ hasCleartextLogging=99 NSLogv("%@ %@", getVaList(["" as! CVarArg, password as! CVarArg])) // $ hasCleartextLogging=100 From 6a54a8bc62d24e95640317875c302d598ca6bdfa Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 15 Aug 2023 18:21:37 +0100 Subject: [PATCH 070/788] Swift: QLDoc VariadicSequenceType. --- .../swift/elements/type/VariadicSequenceType.qll | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/elements/type/VariadicSequenceType.qll b/swift/ql/lib/codeql/swift/elements/type/VariadicSequenceType.qll index 58845cc2b94..3e64b313c9c 100644 --- a/swift/ql/lib/codeql/swift/elements/type/VariadicSequenceType.qll +++ b/swift/ql/lib/codeql/swift/elements/type/VariadicSequenceType.qll @@ -1,4 +1,12 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file private import codeql.swift.generated.type.VariadicSequenceType +/** + * A variadic sequence type, that is, an array-like type that holds + * variadic arguments. For example the type `Int...` of `args` in: + * ``` + * func myVarargsFunction(args: Int...) { + * ... + * } + * ``` + */ class VariadicSequenceType extends Generated::VariadicSequenceType { } From da6c2b6c31435e9c905d3694c8d94d7817c46164 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 16 Aug 2023 10:33:33 +0100 Subject: [PATCH 071/788] Swift: Add more swift/cleartext-logging sinks. --- .../codeql/swift/security/CleartextLoggingExtensions.qll | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll index 77e4079a0ca..bf8033209bd 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll @@ -89,6 +89,13 @@ private class LoggingSinks extends SinkModelCsv { [ ";;false;print(_:separator:terminator:);;;Argument[0..2];log-injection", ";;false;print(_:separator:terminator:toStream:);;;Argument[0..2];log-injection", + ";;false;print(_:separator:terminator:to:);;;Argument[0..2];log-injection", + ";;false;debugPrint(_:separator:terminator:);;;Argument[0..2];log-injection", + ";;false;debugPrint(_:separator:terminator:to:);;;Argument[0..2];log-injection", + ";;false;dump(_:name:indent:maxDepth:maxItems:);;;Argument[0..1];log-injection", + ";;false;dump(_:to:name:indent:maxDepth:maxItems:);;;Argument[0];log-injection", + ";;false;dump(_:to:name:indent:maxDepth:maxItems:);;;Argument[2];log-injection", + ";;false;fatalError(_:file:line:);;;Argument[0];log-injection", ";;false;NSLog(_:_:);;;Argument[0..1];log-injection", ";;false;NSLogv(_:_:);;;Argument[0..1];log-injection", ";;false;vfprintf(_:_:_:);;;Agument[1..2];log-injection", From c9e26678d053b6813bcf09206aa37f74cbda0d6f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 16 Aug 2023 08:15:04 +0100 Subject: [PATCH 072/788] Swift: Change notes. --- swift/ql/lib/change-notes/2023-08-16-varargs.md | 5 +++++ swift/ql/src/change-notes/2023-08-16-cleartext-logging.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-08-16-varargs.md create mode 100644 swift/ql/src/change-notes/2023-08-16-cleartext-logging.md diff --git a/swift/ql/lib/change-notes/2023-08-16-varargs.md b/swift/ql/lib/change-notes/2023-08-16-varargs.md new file mode 100644 index 00000000000..324c43f3e21 --- /dev/null +++ b/swift/ql/lib/change-notes/2023-08-16-varargs.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- + +* Added flow through variadic arguments, and the `getVaList` function. diff --git a/swift/ql/src/change-notes/2023-08-16-cleartext-logging.md b/swift/ql/src/change-notes/2023-08-16-cleartext-logging.md new file mode 100644 index 00000000000..4462b378dd4 --- /dev/null +++ b/swift/ql/src/change-notes/2023-08-16-cleartext-logging.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- + +* Added new logging sinks to the `swift/cleartext-logging` query. From c123c3a8d829d8065607cec86631800c21be0c75 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:09:39 +0100 Subject: [PATCH 073/788] Swift: Codegen. --- swift/ql/.generated.list | 1 - swift/ql/.gitattributes | 1 - 2 files changed, 2 deletions(-) diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index a9ddc3be39d..8750c1fcb78 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -360,7 +360,6 @@ lib/codeql/swift/elements/type/UnownedStorageType.qll 2a8be26447acc1bcfddc186b95 lib/codeql/swift/elements/type/UnownedStorageTypeConstructor.qll 211c9f3a9d41d1c9e768aa8ece5c48cca37f7811c5daab8bf80fdc2bd663dd86 c4fb8b39d319e1c27175f96ceec9712f473e0df1597e801d5b475b4c5c9c6389 lib/codeql/swift/elements/type/UnresolvedType.qll 9bdb52645208b186cd55dac91cdee50dc33fc49e10e49fadbfd1d21c33996460 680dd2fc64eeec5f81d2c2a05221c56a1ef7004bdcb1a8517640caa5fba0890d lib/codeql/swift/elements/type/UnresolvedTypeConstructor.qll 76c34ca055a017a0fa7cfff93843392d0698657fbf864ac798e1ae98325b3556 d0770637ec9674f9e2a47ad5c59423b91d12bb22a9d35dcfa8afa65da9e6ed93 -lib/codeql/swift/elements/type/VariadicSequenceType.qll 325e4c4481e9ac07acdc6aebbcfef618bcaeb420c026c62978a83cf8db4a2964 3ac870a1d6df1642fae26ccda6274a288524a5cf242fab6fac8705d70e3fca88 lib/codeql/swift/elements/type/VariadicSequenceTypeConstructor.qll 0d1d2328a3b5e503a883e7e6d7efd0ca5e7f2633abead9e4c94a9f98ed3cb223 69bff81c1b9413949eacb9298d2efb718ea808e68364569a1090c9878c4af856 lib/codeql/swift/elements/type/WeakStorageType.qll 7c07739cfc1459f068f24fef74838428128054adf611504d22532e4a156073e7 9c968414d7cc8d672f3754bced5d4f83f43a6d7872d0d263d79ff60483e1f996 lib/codeql/swift/elements/type/WeakStorageTypeConstructor.qll d88b031ef44d6de14b3ddcff2eb47b53dbd11550c37250ff2edb42e5d21ec3e9 26d855c33492cf7a118e439f7baeed0e5425cfaf058b1dcc007eca7ed765c897 diff --git a/swift/ql/.gitattributes b/swift/ql/.gitattributes index 0f00752d7db..6c7b605d35a 100644 --- a/swift/ql/.gitattributes +++ b/swift/ql/.gitattributes @@ -362,7 +362,6 @@ /lib/codeql/swift/elements/type/UnownedStorageTypeConstructor.qll linguist-generated /lib/codeql/swift/elements/type/UnresolvedType.qll linguist-generated /lib/codeql/swift/elements/type/UnresolvedTypeConstructor.qll linguist-generated -/lib/codeql/swift/elements/type/VariadicSequenceType.qll linguist-generated /lib/codeql/swift/elements/type/VariadicSequenceTypeConstructor.qll linguist-generated /lib/codeql/swift/elements/type/WeakStorageType.qll linguist-generated /lib/codeql/swift/elements/type/WeakStorageTypeConstructor.qll linguist-generated From 9a4410d4b764e58e82ee048adc3f6ef0227d4b7f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:53:05 +0100 Subject: [PATCH 074/788] Swift: Additional test cases for array conversions. --- .../dataflow/taint/core/LocalTaint.expected | 195 +++++----- .../dataflow/taint/core/Taint.expected | 348 +++++++++--------- .../dataflow/taint/core/conversions.swift | 87 +++-- 3 files changed, 329 insertions(+), 301 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index cb5fc364e9f..5953d76c22d 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -17,98 +17,109 @@ | conversions.swift:19:33:19:33 | self | conversions.swift:19:33:19:33 | SSA def(self) | | conversions.swift:20:22:20:22 | SSA def(self) | conversions.swift:20:22:20:38 | self[return] | | conversions.swift:20:22:20:22 | self | conversions.swift:20:22:20:22 | SSA def(self) | -| conversions.swift:25:16:25:26 | call to sourceInt() | conversions.swift:25:12:25:27 | call to Self.init(_:) | -| conversions.swift:26:18:26:28 | call to sourceInt() | conversions.swift:26:12:26:29 | call to Self.init(_:) | -| conversions.swift:27:18:27:28 | call to sourceInt() | conversions.swift:27:12:27:29 | call to Float.init(_:) | -| conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | -| conversions.swift:29:12:29:30 | call to String.init(_:) | conversions.swift:29:12:29:32 | .utf8 | -| conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:30 | call to String.init(_:) | -| conversions.swift:30:20:30:33 | call to sourceString() | conversions.swift:30:20:30:35 | .utf8 | -| conversions.swift:32:5:32:9 | let ...? | conversions.swift:32:9:32:9 | v | -| conversions.swift:32:9:32:9 | SSA def(v) | conversions.swift:33:13:33:13 | v | -| conversions.swift:32:9:32:9 | v | conversions.swift:32:9:32:9 | SSA def(v) | -| conversions.swift:32:13:32:23 | call to sourceInt() | conversions.swift:32:5:32:9 | let ...? | -| conversions.swift:36:6:36:6 | SSA def(v2) | conversions.swift:37:12:37:12 | v2 | -| conversions.swift:36:6:36:6 | v2 | conversions.swift:36:6:36:6 | SSA def(v2) | -| conversions.swift:36:6:36:10 | ... as ... | conversions.swift:36:6:36:6 | v2 | -| conversions.swift:36:18:36:41 | call to numericCast(_:) | conversions.swift:36:6:36:10 | ... as ... | -| conversions.swift:36:30:36:40 | call to sourceInt() | conversions.swift:36:18:36:41 | call to numericCast(_:) | -| conversions.swift:39:6:39:6 | SSA def(v4) | conversions.swift:40:12:40:12 | v4 | -| conversions.swift:39:6:39:6 | v4 | conversions.swift:39:6:39:6 | SSA def(v4) | -| conversions.swift:39:6:39:10 | ... as ... | conversions.swift:39:6:39:6 | v4 | -| conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | conversions.swift:39:6:39:10 | ... as ... | -| conversions.swift:39:31:39:41 | call to sourceInt() | conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | -| conversions.swift:42:6:42:6 | SSA def(v5) | conversions.swift:43:12:43:12 | v5 | -| conversions.swift:42:6:42:6 | v5 | conversions.swift:42:6:42:6 | SSA def(v5) | -| conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:42:6:42:6 | v5 | -| conversions.swift:42:36:42:46 | call to sourceInt() | conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | -| conversions.swift:45:6:45:6 | SSA def(v6) | conversions.swift:46:12:46:12 | v6 | -| conversions.swift:45:6:45:6 | v6 | conversions.swift:45:6:45:6 | SSA def(v6) | -| conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | conversions.swift:45:6:45:6 | v6 | -| conversions.swift:45:28:45:38 | call to sourceInt() | conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | -| conversions.swift:48:12:48:36 | call to Self.init(exactly:) | conversions.swift:48:12:48:37 | ...! | -| conversions.swift:49:26:49:36 | call to sourceInt() | conversions.swift:49:12:49:37 | call to Self.init(clamping:) | -| conversions.swift:50:36:50:46 | call to sourceInt() | conversions.swift:50:12:50:47 | call to Self.init(truncatingIfNeeded:) | -| conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | conversions.swift:51:12:51:42 | ...! | -| conversions.swift:51:16:51:29 | call to sourceString() | conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | -| conversions.swift:53:30:53:40 | call to sourceInt() | conversions.swift:53:12:53:41 | call to Self.init(littleEndian:) | -| conversions.swift:54:27:54:37 | call to sourceInt() | conversions.swift:54:12:54:38 | call to Self.init(bigEndian:) | -| conversions.swift:55:12:55:22 | call to sourceInt() | conversions.swift:55:12:55:24 | .littleEndian | -| conversions.swift:56:12:56:22 | call to sourceInt() | conversions.swift:56:12:56:24 | .bigEndian | -| conversions.swift:61:18:61:30 | call to sourceFloat() | conversions.swift:61:12:61:31 | call to Float.init(_:) | -| conversions.swift:62:18:62:30 | call to sourceFloat() | conversions.swift:62:12:62:31 | call to UInt8.init(_:) | -| conversions.swift:63:19:63:31 | call to sourceFloat() | conversions.swift:63:12:63:32 | call to String.init(_:) | -| conversions.swift:64:12:64:32 | call to String.init(_:) | conversions.swift:64:12:64:34 | .utf8 | -| conversions.swift:64:19:64:31 | call to sourceFloat() | conversions.swift:64:12:64:32 | call to String.init(_:) | -| conversions.swift:66:18:66:30 | call to sourceFloat() | conversions.swift:66:12:66:31 | call to Float.init(_:) | -| conversions.swift:67:41:67:51 | call to sourceInt() | conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:67:67:67:67 | 0.0 | conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:68:41:68:41 | 0 | conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:68:57:68:69 | call to sourceFloat() | conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:69:54:69:54 | 0.0 | conversions.swift:69:12:69:57 | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:70:44:70:56 | call to sourceFloat() | conversions.swift:70:12:70:57 | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:72:12:72:24 | call to sourceFloat() | conversions.swift:72:12:72:26 | .exponent | -| conversions.swift:73:12:73:24 | call to sourceFloat() | conversions.swift:73:12:73:26 | .significand | -| conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | -| conversions.swift:80:6:80:6 | SSA def(ms1) | conversions.swift:81:12:81:12 | ms1 | -| conversions.swift:80:6:80:6 | ms1 | conversions.swift:80:6:80:6 | SSA def(ms1) | -| conversions.swift:80:12:80:26 | call to MyString.init(_:) | conversions.swift:80:12:80:27 | ...! | -| conversions.swift:80:12:80:27 | ...! | conversions.swift:80:6:80:6 | ms1 | -| conversions.swift:80:21:80:21 | abc | conversions.swift:80:12:80:26 | call to MyString.init(_:) | -| conversions.swift:81:12:81:12 | [post] ms1 | conversions.swift:82:12:82:12 | ms1 | -| conversions.swift:81:12:81:12 | ms1 | conversions.swift:82:12:82:12 | ms1 | -| conversions.swift:82:12:82:12 | [post] ms1 | conversions.swift:83:12:83:12 | ms1 | -| conversions.swift:82:12:82:12 | ms1 | conversions.swift:83:12:83:12 | ms1 | -| conversions.swift:83:12:83:12 | [post] ms1 | conversions.swift:84:12:84:12 | ms1 | -| conversions.swift:83:12:83:12 | ms1 | conversions.swift:84:12:84:12 | ms1 | -| conversions.swift:86:6:86:6 | SSA def(ms2) | conversions.swift:87:12:87:12 | ms2 | -| conversions.swift:86:6:86:6 | ms2 | conversions.swift:86:6:86:6 | SSA def(ms2) | -| conversions.swift:86:12:86:35 | call to MyString.init(_:) | conversions.swift:86:12:86:36 | ...! | -| conversions.swift:86:12:86:36 | ...! | conversions.swift:86:6:86:6 | ms2 | -| conversions.swift:86:21:86:34 | call to sourceString() | conversions.swift:86:12:86:35 | call to MyString.init(_:) | -| conversions.swift:87:12:87:12 | [post] ms2 | conversions.swift:88:12:88:12 | ms2 | -| conversions.swift:87:12:87:12 | ms2 | conversions.swift:88:12:88:12 | ms2 | -| conversions.swift:88:12:88:12 | [post] ms2 | conversions.swift:89:12:89:12 | ms2 | -| conversions.swift:88:12:88:12 | ms2 | conversions.swift:89:12:89:12 | ms2 | -| conversions.swift:89:12:89:12 | [post] ms2 | conversions.swift:90:12:90:12 | ms2 | -| conversions.swift:89:12:89:12 | ms2 | conversions.swift:90:12:90:12 | ms2 | -| conversions.swift:94:6:94:6 | SSA def(parent) | conversions.swift:95:12:95:12 | parent | -| conversions.swift:94:6:94:6 | parent | conversions.swift:94:6:94:6 | SSA def(parent) | -| conversions.swift:94:6:94:15 | ... as ... | conversions.swift:94:6:94:6 | parent | -| conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:94:6:94:15 | ... as ... | -| conversions.swift:95:12:95:12 | [post] parent | conversions.swift:96:12:96:12 | parent | -| conversions.swift:95:12:95:12 | parent | conversions.swift:96:12:96:12 | parent | -| conversions.swift:96:12:96:12 | [post] parent | conversions.swift:98:40:98:40 | parent | -| conversions.swift:96:12:96:12 | parent | conversions.swift:98:40:98:40 | parent | -| conversions.swift:98:6:98:6 | SSA def(v3) | conversions.swift:99:12:99:12 | v3 | -| conversions.swift:98:6:98:6 | v3 | conversions.swift:98:6:98:6 | SSA def(v3) | -| conversions.swift:98:6:98:10 | ... as ... | conversions.swift:98:6:98:6 | v3 | -| conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | conversions.swift:98:6:98:10 | ... as ... | -| conversions.swift:98:40:98:40 | parent | conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | -| conversions.swift:99:12:99:12 | [post] v3 | conversions.swift:100:12:100:12 | v3 | -| conversions.swift:99:12:99:12 | v3 | conversions.swift:100:12:100:12 | v3 | -| conversions.swift:107:24:107:24 | myCEnumConst | conversions.swift:107:12:107:36 | call to Self.init(_:) | -| conversions.swift:108:24:108:34 | call to sourceInt() | conversions.swift:108:12:108:35 | call to Self.init(_:) | +| conversions.swift:27:16:27:26 | call to sourceInt() | conversions.swift:27:12:27:27 | call to Self.init(_:) | +| conversions.swift:28:18:28:28 | call to sourceInt() | conversions.swift:28:12:28:29 | call to Self.init(_:) | +| conversions.swift:29:18:29:28 | call to sourceInt() | conversions.swift:29:12:29:29 | call to Float.init(_:) | +| conversions.swift:30:19:30:29 | call to sourceInt() | conversions.swift:30:12:30:30 | call to String.init(_:) | +| conversions.swift:31:12:31:30 | call to String.init(_:) | conversions.swift:31:12:31:32 | .utf8 | +| conversions.swift:31:19:31:29 | call to sourceInt() | conversions.swift:31:12:31:30 | call to String.init(_:) | +| conversions.swift:33:6:33:6 | SSA def(arr) | conversions.swift:34:12:34:12 | arr | +| conversions.swift:33:6:33:6 | arr | conversions.swift:33:6:33:6 | SSA def(arr) | +| conversions.swift:33:12:33:30 | [...] | conversions.swift:33:6:33:6 | arr | +| conversions.swift:34:12:34:12 | arr | conversions.swift:35:12:35:12 | arr | +| conversions.swift:35:12:35:12 | [post] arr | conversions.swift:36:20:36:20 | arr | +| conversions.swift:35:12:35:12 | arr | conversions.swift:35:12:35:17 | ...[...] | +| conversions.swift:35:12:35:12 | arr | conversions.swift:36:20:36:20 | arr | +| conversions.swift:36:20:36:20 | arr | conversions.swift:37:20:37:20 | arr | +| conversions.swift:37:12:37:23 | call to Array.init(_:) | conversions.swift:37:12:37:26 | ...[...] | +| conversions.swift:38:20:38:33 | call to sourceString() | conversions.swift:38:20:38:35 | .utf8 | +| conversions.swift:39:12:39:39 | call to Array.init(_:) | conversions.swift:39:12:39:42 | ...[...] | +| conversions.swift:39:20:39:33 | call to sourceString() | conversions.swift:39:20:39:35 | .utf8 | +| conversions.swift:41:5:41:9 | let ...? | conversions.swift:41:9:41:9 | v | +| conversions.swift:41:9:41:9 | SSA def(v) | conversions.swift:42:13:42:13 | v | +| conversions.swift:41:9:41:9 | v | conversions.swift:41:9:41:9 | SSA def(v) | +| conversions.swift:41:13:41:23 | call to sourceInt() | conversions.swift:41:5:41:9 | let ...? | +| conversions.swift:45:6:45:6 | SSA def(v2) | conversions.swift:46:12:46:12 | v2 | +| conversions.swift:45:6:45:6 | v2 | conversions.swift:45:6:45:6 | SSA def(v2) | +| conversions.swift:45:6:45:10 | ... as ... | conversions.swift:45:6:45:6 | v2 | +| conversions.swift:45:18:45:41 | call to numericCast(_:) | conversions.swift:45:6:45:10 | ... as ... | +| conversions.swift:45:30:45:40 | call to sourceInt() | conversions.swift:45:18:45:41 | call to numericCast(_:) | +| conversions.swift:48:6:48:6 | SSA def(v4) | conversions.swift:49:12:49:12 | v4 | +| conversions.swift:48:6:48:6 | v4 | conversions.swift:48:6:48:6 | SSA def(v4) | +| conversions.swift:48:6:48:10 | ... as ... | conversions.swift:48:6:48:6 | v4 | +| conversions.swift:48:17:48:57 | call to unsafeBitCast(_:to:) | conversions.swift:48:6:48:10 | ... as ... | +| conversions.swift:48:31:48:41 | call to sourceInt() | conversions.swift:48:17:48:57 | call to unsafeBitCast(_:to:) | +| conversions.swift:51:6:51:6 | SSA def(v5) | conversions.swift:52:12:52:12 | v5 | +| conversions.swift:51:6:51:6 | v5 | conversions.swift:51:6:51:6 | SSA def(v5) | +| conversions.swift:51:11:51:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:51:6:51:6 | v5 | +| conversions.swift:51:36:51:46 | call to sourceInt() | conversions.swift:51:11:51:47 | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:54:6:54:6 | SSA def(v6) | conversions.swift:55:12:55:12 | v6 | +| conversions.swift:54:6:54:6 | v6 | conversions.swift:54:6:54:6 | SSA def(v6) | +| conversions.swift:54:11:54:39 | call to UInt.init(bitPattern:) | conversions.swift:54:6:54:6 | v6 | +| conversions.swift:54:28:54:38 | call to sourceInt() | conversions.swift:54:11:54:39 | call to UInt.init(bitPattern:) | +| conversions.swift:57:12:57:36 | call to Self.init(exactly:) | conversions.swift:57:12:57:37 | ...! | +| conversions.swift:58:26:58:36 | call to sourceInt() | conversions.swift:58:12:58:37 | call to Self.init(clamping:) | +| conversions.swift:59:36:59:46 | call to sourceInt() | conversions.swift:59:12:59:47 | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:60:12:60:41 | call to Self.init(_:radix:) | conversions.swift:60:12:60:42 | ...! | +| conversions.swift:60:16:60:29 | call to sourceString() | conversions.swift:60:12:60:41 | call to Self.init(_:radix:) | +| conversions.swift:62:30:62:40 | call to sourceInt() | conversions.swift:62:12:62:41 | call to Self.init(littleEndian:) | +| conversions.swift:63:27:63:37 | call to sourceInt() | conversions.swift:63:12:63:38 | call to Self.init(bigEndian:) | +| conversions.swift:64:12:64:22 | call to sourceInt() | conversions.swift:64:12:64:24 | .littleEndian | +| conversions.swift:65:12:65:22 | call to sourceInt() | conversions.swift:65:12:65:24 | .bigEndian | +| conversions.swift:70:18:70:30 | call to sourceFloat() | conversions.swift:70:12:70:31 | call to Float.init(_:) | +| conversions.swift:71:18:71:30 | call to sourceFloat() | conversions.swift:71:12:71:31 | call to UInt8.init(_:) | +| conversions.swift:72:19:72:31 | call to sourceFloat() | conversions.swift:72:12:72:32 | call to String.init(_:) | +| conversions.swift:73:12:73:32 | call to String.init(_:) | conversions.swift:73:12:73:34 | .utf8 | +| conversions.swift:73:19:73:31 | call to sourceFloat() | conversions.swift:73:12:73:32 | call to String.init(_:) | +| conversions.swift:75:18:75:30 | call to sourceFloat() | conversions.swift:75:12:75:31 | call to Float.init(_:) | +| conversions.swift:76:41:76:51 | call to sourceInt() | conversions.swift:76:12:76:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:76:67:76:67 | 0.0 | conversions.swift:76:12:76:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:77:41:77:41 | 0 | conversions.swift:77:12:77:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:77:57:77:69 | call to sourceFloat() | conversions.swift:77:12:77:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:78:54:78:54 | 0.0 | conversions.swift:78:12:78:57 | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:79:44:79:56 | call to sourceFloat() | conversions.swift:79:12:79:57 | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:81:12:81:24 | call to sourceFloat() | conversions.swift:81:12:81:26 | .exponent | +| conversions.swift:82:12:82:24 | call to sourceFloat() | conversions.swift:82:12:82:26 | .significand | +| conversions.swift:87:19:87:32 | call to sourceString() | conversions.swift:87:12:87:33 | call to String.init(_:) | +| conversions.swift:89:6:89:6 | SSA def(ms1) | conversions.swift:90:12:90:12 | ms1 | +| conversions.swift:89:6:89:6 | ms1 | conversions.swift:89:6:89:6 | SSA def(ms1) | +| conversions.swift:89:12:89:26 | call to MyString.init(_:) | conversions.swift:89:12:89:27 | ...! | +| conversions.swift:89:12:89:27 | ...! | conversions.swift:89:6:89:6 | ms1 | +| conversions.swift:89:21:89:21 | abc | conversions.swift:89:12:89:26 | call to MyString.init(_:) | +| conversions.swift:90:12:90:12 | [post] ms1 | conversions.swift:91:12:91:12 | ms1 | +| conversions.swift:90:12:90:12 | ms1 | conversions.swift:91:12:91:12 | ms1 | +| conversions.swift:91:12:91:12 | [post] ms1 | conversions.swift:92:12:92:12 | ms1 | +| conversions.swift:91:12:91:12 | ms1 | conversions.swift:92:12:92:12 | ms1 | +| conversions.swift:92:12:92:12 | [post] ms1 | conversions.swift:93:12:93:12 | ms1 | +| conversions.swift:92:12:92:12 | ms1 | conversions.swift:93:12:93:12 | ms1 | +| conversions.swift:95:6:95:6 | SSA def(ms2) | conversions.swift:96:12:96:12 | ms2 | +| conversions.swift:95:6:95:6 | ms2 | conversions.swift:95:6:95:6 | SSA def(ms2) | +| conversions.swift:95:12:95:35 | call to MyString.init(_:) | conversions.swift:95:12:95:36 | ...! | +| conversions.swift:95:12:95:36 | ...! | conversions.swift:95:6:95:6 | ms2 | +| conversions.swift:95:21:95:34 | call to sourceString() | conversions.swift:95:12:95:35 | call to MyString.init(_:) | +| conversions.swift:96:12:96:12 | [post] ms2 | conversions.swift:97:12:97:12 | ms2 | +| conversions.swift:96:12:96:12 | ms2 | conversions.swift:97:12:97:12 | ms2 | +| conversions.swift:97:12:97:12 | [post] ms2 | conversions.swift:98:12:98:12 | ms2 | +| conversions.swift:97:12:97:12 | ms2 | conversions.swift:98:12:98:12 | ms2 | +| conversions.swift:98:12:98:12 | [post] ms2 | conversions.swift:99:12:99:12 | ms2 | +| conversions.swift:98:12:98:12 | ms2 | conversions.swift:99:12:99:12 | ms2 | +| conversions.swift:103:6:103:6 | SSA def(parent) | conversions.swift:104:12:104:12 | parent | +| conversions.swift:103:6:103:6 | parent | conversions.swift:103:6:103:6 | SSA def(parent) | +| conversions.swift:103:6:103:15 | ... as ... | conversions.swift:103:6:103:6 | parent | +| conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:103:6:103:15 | ... as ... | +| conversions.swift:104:12:104:12 | [post] parent | conversions.swift:105:12:105:12 | parent | +| conversions.swift:104:12:104:12 | parent | conversions.swift:105:12:105:12 | parent | +| conversions.swift:105:12:105:12 | [post] parent | conversions.swift:107:40:107:40 | parent | +| conversions.swift:105:12:105:12 | parent | conversions.swift:107:40:107:40 | parent | +| conversions.swift:107:6:107:6 | SSA def(v3) | conversions.swift:108:12:108:12 | v3 | +| conversions.swift:107:6:107:6 | v3 | conversions.swift:107:6:107:6 | SSA def(v3) | +| conversions.swift:107:6:107:10 | ... as ... | conversions.swift:107:6:107:6 | v3 | +| conversions.swift:107:25:107:69 | call to unsafeDowncast(_:to:) | conversions.swift:107:6:107:10 | ... as ... | +| conversions.swift:107:40:107:40 | parent | conversions.swift:107:25:107:69 | call to unsafeDowncast(_:to:) | +| conversions.swift:108:12:108:12 | [post] v3 | conversions.swift:109:12:109:12 | v3 | +| conversions.swift:108:12:108:12 | v3 | conversions.swift:109:12:109:12 | v3 | +| conversions.swift:116:24:116:24 | myCEnumConst | conversions.swift:116:12:116:36 | call to Self.init(_:) | +| conversions.swift:117:24:117:34 | call to sourceInt() | conversions.swift:117:12:117:35 | call to Self.init(_:) | | simple.swift:12:13:12:13 | 1 | simple.swift:12:13:12:24 | ... .+(_:_:) ... | | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | | simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 427040adc40..4f10e907be3 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -1,53 +1,56 @@ edges -| conversions.swift:25:16:25:26 | call to sourceInt() | conversions.swift:25:12:25:27 | call to Self.init(_:) | -| conversions.swift:26:18:26:28 | call to sourceInt() | conversions.swift:26:12:26:29 | call to Self.init(_:) | -| conversions.swift:27:18:27:28 | call to sourceInt() | conversions.swift:27:12:27:29 | call to Float.init(_:) | -| conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | -| conversions.swift:29:12:29:30 | call to String.init(_:) | conversions.swift:29:12:29:32 | .utf8 | -| conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:30 | call to String.init(_:) | -| conversions.swift:32:13:32:23 | call to sourceInt() | conversions.swift:33:13:33:13 | v | -| conversions.swift:36:18:36:41 | call to numericCast(_:) | conversions.swift:37:12:37:12 | v2 | -| conversions.swift:36:30:36:40 | call to sourceInt() | conversions.swift:36:18:36:41 | call to numericCast(_:) | -| conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | conversions.swift:40:12:40:12 | v4 | -| conversions.swift:39:31:39:41 | call to sourceInt() | conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | -| conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:43:12:43:12 | v5 | -| conversions.swift:42:36:42:46 | call to sourceInt() | conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | -| conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | conversions.swift:46:12:46:12 | v6 | -| conversions.swift:45:28:45:38 | call to sourceInt() | conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | -| conversions.swift:48:12:48:36 | call to Self.init(exactly:) [some:0] | conversions.swift:48:12:48:37 | ...! | -| conversions.swift:48:25:48:35 | call to sourceInt() | conversions.swift:48:12:48:36 | call to Self.init(exactly:) [some:0] | -| conversions.swift:49:26:49:36 | call to sourceInt() | conversions.swift:49:12:49:37 | call to Self.init(clamping:) | -| conversions.swift:50:36:50:46 | call to sourceInt() | conversions.swift:50:12:50:47 | call to Self.init(truncatingIfNeeded:) | -| conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | conversions.swift:51:12:51:42 | ...! | -| conversions.swift:51:16:51:29 | call to sourceString() | conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | -| conversions.swift:53:30:53:40 | call to sourceInt() | conversions.swift:53:12:53:41 | call to Self.init(littleEndian:) | -| conversions.swift:54:27:54:37 | call to sourceInt() | conversions.swift:54:12:54:38 | call to Self.init(bigEndian:) | -| conversions.swift:55:12:55:22 | call to sourceInt() | conversions.swift:55:12:55:24 | .littleEndian | -| conversions.swift:56:12:56:22 | call to sourceInt() | conversions.swift:56:12:56:24 | .bigEndian | -| conversions.swift:61:18:61:30 | call to sourceFloat() | conversions.swift:61:12:61:31 | call to Float.init(_:) | -| conversions.swift:62:18:62:30 | call to sourceFloat() | conversions.swift:62:12:62:31 | call to UInt8.init(_:) | -| conversions.swift:63:19:63:31 | call to sourceFloat() | conversions.swift:63:12:63:32 | call to String.init(_:) | -| conversions.swift:64:12:64:32 | call to String.init(_:) | conversions.swift:64:12:64:34 | .utf8 | -| conversions.swift:64:19:64:31 | call to sourceFloat() | conversions.swift:64:12:64:32 | call to String.init(_:) | -| conversions.swift:66:18:66:30 | call to sourceFloat() | conversions.swift:66:12:66:31 | call to Float.init(_:) | -| conversions.swift:67:41:67:51 | call to sourceInt() | conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:68:57:68:69 | call to sourceFloat() | conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:70:44:70:56 | call to sourceFloat() | conversions.swift:70:12:70:57 | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:72:12:72:24 | call to sourceFloat() | conversions.swift:72:12:72:26 | .exponent | -| conversions.swift:73:12:73:24 | call to sourceFloat() | conversions.swift:73:12:73:26 | .significand | -| conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | -| conversions.swift:86:12:86:35 | call to MyString.init(_:) | conversions.swift:86:12:86:35 | call to MyString.init(_:) [some:0] | -| conversions.swift:86:12:86:35 | call to MyString.init(_:) | conversions.swift:87:12:87:12 | ms2 | -| conversions.swift:86:12:86:35 | call to MyString.init(_:) [some:0] | conversions.swift:86:12:86:36 | ...! | -| conversions.swift:86:12:86:36 | ...! | conversions.swift:87:12:87:12 | ms2 | -| conversions.swift:86:21:86:34 | call to sourceString() | conversions.swift:86:12:86:35 | call to MyString.init(_:) | -| conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:95:12:95:12 | parent | -| conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:96:12:96:12 | parent | -| conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:98:40:98:40 | parent | -| conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | conversions.swift:99:12:99:12 | v3 | -| conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | conversions.swift:100:12:100:12 | v3 | -| conversions.swift:98:40:98:40 | parent | conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | -| conversions.swift:108:24:108:34 | call to sourceInt() | conversions.swift:108:12:108:35 | call to Self.init(_:) | +| conversions.swift:27:16:27:26 | call to sourceInt() | conversions.swift:27:12:27:27 | call to Self.init(_:) | +| conversions.swift:28:18:28:28 | call to sourceInt() | conversions.swift:28:12:28:29 | call to Self.init(_:) | +| conversions.swift:29:18:29:28 | call to sourceInt() | conversions.swift:29:12:29:29 | call to Float.init(_:) | +| conversions.swift:30:19:30:29 | call to sourceInt() | conversions.swift:30:12:30:30 | call to String.init(_:) | +| conversions.swift:31:12:31:30 | call to String.init(_:) | conversions.swift:31:12:31:32 | .utf8 | +| conversions.swift:31:19:31:29 | call to sourceInt() | conversions.swift:31:12:31:30 | call to String.init(_:) | +| conversions.swift:33:12:33:30 | [...] [Array element] | conversions.swift:35:12:35:12 | arr [Array element] | +| conversions.swift:33:19:33:29 | call to sourceInt() | conversions.swift:33:12:33:30 | [...] [Array element] | +| conversions.swift:35:12:35:12 | arr [Array element] | conversions.swift:35:12:35:17 | ...[...] | +| conversions.swift:41:13:41:23 | call to sourceInt() | conversions.swift:42:13:42:13 | v | +| conversions.swift:45:18:45:41 | call to numericCast(_:) | conversions.swift:46:12:46:12 | v2 | +| conversions.swift:45:30:45:40 | call to sourceInt() | conversions.swift:45:18:45:41 | call to numericCast(_:) | +| conversions.swift:48:17:48:57 | call to unsafeBitCast(_:to:) | conversions.swift:49:12:49:12 | v4 | +| conversions.swift:48:31:48:41 | call to sourceInt() | conversions.swift:48:17:48:57 | call to unsafeBitCast(_:to:) | +| conversions.swift:51:11:51:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:52:12:52:12 | v5 | +| conversions.swift:51:36:51:46 | call to sourceInt() | conversions.swift:51:11:51:47 | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:54:11:54:39 | call to UInt.init(bitPattern:) | conversions.swift:55:12:55:12 | v6 | +| conversions.swift:54:28:54:38 | call to sourceInt() | conversions.swift:54:11:54:39 | call to UInt.init(bitPattern:) | +| conversions.swift:57:12:57:36 | call to Self.init(exactly:) [some:0] | conversions.swift:57:12:57:37 | ...! | +| conversions.swift:57:25:57:35 | call to sourceInt() | conversions.swift:57:12:57:36 | call to Self.init(exactly:) [some:0] | +| conversions.swift:58:26:58:36 | call to sourceInt() | conversions.swift:58:12:58:37 | call to Self.init(clamping:) | +| conversions.swift:59:36:59:46 | call to sourceInt() | conversions.swift:59:12:59:47 | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:60:12:60:41 | call to Self.init(_:radix:) | conversions.swift:60:12:60:42 | ...! | +| conversions.swift:60:16:60:29 | call to sourceString() | conversions.swift:60:12:60:41 | call to Self.init(_:radix:) | +| conversions.swift:62:30:62:40 | call to sourceInt() | conversions.swift:62:12:62:41 | call to Self.init(littleEndian:) | +| conversions.swift:63:27:63:37 | call to sourceInt() | conversions.swift:63:12:63:38 | call to Self.init(bigEndian:) | +| conversions.swift:64:12:64:22 | call to sourceInt() | conversions.swift:64:12:64:24 | .littleEndian | +| conversions.swift:65:12:65:22 | call to sourceInt() | conversions.swift:65:12:65:24 | .bigEndian | +| conversions.swift:70:18:70:30 | call to sourceFloat() | conversions.swift:70:12:70:31 | call to Float.init(_:) | +| conversions.swift:71:18:71:30 | call to sourceFloat() | conversions.swift:71:12:71:31 | call to UInt8.init(_:) | +| conversions.swift:72:19:72:31 | call to sourceFloat() | conversions.swift:72:12:72:32 | call to String.init(_:) | +| conversions.swift:73:12:73:32 | call to String.init(_:) | conversions.swift:73:12:73:34 | .utf8 | +| conversions.swift:73:19:73:31 | call to sourceFloat() | conversions.swift:73:12:73:32 | call to String.init(_:) | +| conversions.swift:75:18:75:30 | call to sourceFloat() | conversions.swift:75:12:75:31 | call to Float.init(_:) | +| conversions.swift:76:41:76:51 | call to sourceInt() | conversions.swift:76:12:76:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:77:57:77:69 | call to sourceFloat() | conversions.swift:77:12:77:70 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:79:44:79:56 | call to sourceFloat() | conversions.swift:79:12:79:57 | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:81:12:81:24 | call to sourceFloat() | conversions.swift:81:12:81:26 | .exponent | +| conversions.swift:82:12:82:24 | call to sourceFloat() | conversions.swift:82:12:82:26 | .significand | +| conversions.swift:87:19:87:32 | call to sourceString() | conversions.swift:87:12:87:33 | call to String.init(_:) | +| conversions.swift:95:12:95:35 | call to MyString.init(_:) | conversions.swift:95:12:95:35 | call to MyString.init(_:) [some:0] | +| conversions.swift:95:12:95:35 | call to MyString.init(_:) | conversions.swift:96:12:96:12 | ms2 | +| conversions.swift:95:12:95:35 | call to MyString.init(_:) [some:0] | conversions.swift:95:12:95:36 | ...! | +| conversions.swift:95:12:95:36 | ...! | conversions.swift:96:12:96:12 | ms2 | +| conversions.swift:95:21:95:34 | call to sourceString() | conversions.swift:95:12:95:35 | call to MyString.init(_:) | +| conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:104:12:104:12 | parent | +| conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:105:12:105:12 | parent | +| conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:107:40:107:40 | parent | +| conversions.swift:107:25:107:69 | call to unsafeDowncast(_:to:) | conversions.swift:108:12:108:12 | v3 | +| conversions.swift:107:25:107:69 | call to unsafeDowncast(_:to:) | conversions.swift:109:12:109:12 | v3 | +| conversions.swift:107:40:107:40 | parent | conversions.swift:107:25:107:69 | call to unsafeDowncast(_:to:) | +| conversions.swift:117:24:117:34 | call to sourceInt() | conversions.swift:117:12:117:35 | call to Self.init(_:) | | file://:0:0:0:0 | self [first] | file://:0:0:0:0 | .first | | file://:0:0:0:0 | self [second] | file://:0:0:0:0 | .second | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [first] | @@ -126,89 +129,93 @@ edges | try.swift:18:18:18:25 | call to source() | try.swift:18:18:18:25 | call to source() [some:0] | | try.swift:18:18:18:25 | call to source() [some:0] | try.swift:18:13:18:25 | try? ... [some:0] | nodes -| conversions.swift:24:12:24:22 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:25:12:25:27 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| conversions.swift:25:16:25:26 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:26:12:26:29 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| conversions.swift:26:18:26:28 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:27:12:27:29 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | -| conversions.swift:27:18:27:28 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:28:12:28:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:28:19:28:29 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:29:12:29:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:29:12:29:32 | .utf8 | semmle.label | .utf8 | -| conversions.swift:29:19:29:29 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:32:13:32:23 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:33:13:33:13 | v | semmle.label | v | -| conversions.swift:36:18:36:41 | call to numericCast(_:) | semmle.label | call to numericCast(_:) | -| conversions.swift:36:30:36:40 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:37:12:37:12 | v2 | semmle.label | v2 | -| conversions.swift:39:17:39:57 | call to unsafeBitCast(_:to:) | semmle.label | call to unsafeBitCast(_:to:) | -| conversions.swift:39:31:39:41 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:40:12:40:12 | v4 | semmle.label | v4 | -| conversions.swift:42:11:42:47 | call to Self.init(truncatingIfNeeded:) | semmle.label | call to Self.init(truncatingIfNeeded:) | -| conversions.swift:42:36:42:46 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:43:12:43:12 | v5 | semmle.label | v5 | -| conversions.swift:45:11:45:39 | call to UInt.init(bitPattern:) | semmle.label | call to UInt.init(bitPattern:) | -| conversions.swift:45:28:45:38 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:46:12:46:12 | v6 | semmle.label | v6 | -| conversions.swift:48:12:48:36 | call to Self.init(exactly:) [some:0] | semmle.label | call to Self.init(exactly:) [some:0] | -| conversions.swift:48:12:48:37 | ...! | semmle.label | ...! | -| conversions.swift:48:25:48:35 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:49:12:49:37 | call to Self.init(clamping:) | semmle.label | call to Self.init(clamping:) | -| conversions.swift:49:26:49:36 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:50:12:50:47 | call to Self.init(truncatingIfNeeded:) | semmle.label | call to Self.init(truncatingIfNeeded:) | -| conversions.swift:50:36:50:46 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:51:12:51:41 | call to Self.init(_:radix:) | semmle.label | call to Self.init(_:radix:) | -| conversions.swift:51:12:51:42 | ...! | semmle.label | ...! | -| conversions.swift:51:16:51:29 | call to sourceString() | semmle.label | call to sourceString() | -| conversions.swift:53:12:53:41 | call to Self.init(littleEndian:) | semmle.label | call to Self.init(littleEndian:) | -| conversions.swift:53:30:53:40 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:54:12:54:38 | call to Self.init(bigEndian:) | semmle.label | call to Self.init(bigEndian:) | -| conversions.swift:54:27:54:37 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:55:12:55:22 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:55:12:55:24 | .littleEndian | semmle.label | .littleEndian | -| conversions.swift:56:12:56:22 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:56:12:56:24 | .bigEndian | semmle.label | .bigEndian | -| conversions.swift:60:12:60:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:61:12:61:31 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | -| conversions.swift:61:18:61:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:62:12:62:31 | call to UInt8.init(_:) | semmle.label | call to UInt8.init(_:) | -| conversions.swift:62:18:62:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:63:12:63:32 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:63:19:63:31 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:64:12:64:32 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:64:12:64:34 | .utf8 | semmle.label | .utf8 | -| conversions.swift:64:19:64:31 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:66:12:66:31 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | -| conversions.swift:66:18:66:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | -| conversions.swift:67:41:67:51 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | -| conversions.swift:68:57:68:69 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:70:12:70:57 | call to Float.init(signOf:magnitudeOf:) | semmle.label | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:70:44:70:56 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:72:12:72:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:72:12:72:26 | .exponent | semmle.label | .exponent | -| conversions.swift:73:12:73:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:73:12:73:26 | .significand | semmle.label | .significand | -| conversions.swift:77:12:77:25 | call to sourceString() | semmle.label | call to sourceString() | -| conversions.swift:78:12:78:33 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:78:19:78:32 | call to sourceString() | semmle.label | call to sourceString() | -| conversions.swift:86:12:86:35 | call to MyString.init(_:) | semmle.label | call to MyString.init(_:) | -| conversions.swift:86:12:86:35 | call to MyString.init(_:) [some:0] | semmle.label | call to MyString.init(_:) [some:0] | -| conversions.swift:86:12:86:36 | ...! | semmle.label | ...! | -| conversions.swift:86:21:86:34 | call to sourceString() | semmle.label | call to sourceString() | -| conversions.swift:87:12:87:12 | ms2 | semmle.label | ms2 | -| conversions.swift:94:31:94:44 | call to sourceString() | semmle.label | call to sourceString() | -| conversions.swift:95:12:95:12 | parent | semmle.label | parent | -| conversions.swift:96:12:96:12 | parent | semmle.label | parent | -| conversions.swift:98:25:98:69 | call to unsafeDowncast(_:to:) | semmle.label | call to unsafeDowncast(_:to:) | -| conversions.swift:98:40:98:40 | parent | semmle.label | parent | -| conversions.swift:99:12:99:12 | v3 | semmle.label | v3 | -| conversions.swift:100:12:100:12 | v3 | semmle.label | v3 | -| conversions.swift:108:12:108:35 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| conversions.swift:108:24:108:34 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:26:12:26:22 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:27:12:27:27 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:27:16:27:26 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:28:12:28:29 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:28:18:28:28 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:29:12:29:29 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:29:18:29:28 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:30:12:30:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:30:19:30:29 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:31:12:31:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:31:12:31:32 | .utf8 | semmle.label | .utf8 | +| conversions.swift:31:19:31:29 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:33:12:33:30 | [...] [Array element] | semmle.label | [...] [Array element] | +| conversions.swift:33:19:33:29 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:35:12:35:12 | arr [Array element] | semmle.label | arr [Array element] | +| conversions.swift:35:12:35:17 | ...[...] | semmle.label | ...[...] | +| conversions.swift:41:13:41:23 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:42:13:42:13 | v | semmle.label | v | +| conversions.swift:45:18:45:41 | call to numericCast(_:) | semmle.label | call to numericCast(_:) | +| conversions.swift:45:30:45:40 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:46:12:46:12 | v2 | semmle.label | v2 | +| conversions.swift:48:17:48:57 | call to unsafeBitCast(_:to:) | semmle.label | call to unsafeBitCast(_:to:) | +| conversions.swift:48:31:48:41 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:49:12:49:12 | v4 | semmle.label | v4 | +| conversions.swift:51:11:51:47 | call to Self.init(truncatingIfNeeded:) | semmle.label | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:51:36:51:46 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:52:12:52:12 | v5 | semmle.label | v5 | +| conversions.swift:54:11:54:39 | call to UInt.init(bitPattern:) | semmle.label | call to UInt.init(bitPattern:) | +| conversions.swift:54:28:54:38 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:55:12:55:12 | v6 | semmle.label | v6 | +| conversions.swift:57:12:57:36 | call to Self.init(exactly:) [some:0] | semmle.label | call to Self.init(exactly:) [some:0] | +| conversions.swift:57:12:57:37 | ...! | semmle.label | ...! | +| conversions.swift:57:25:57:35 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:58:12:58:37 | call to Self.init(clamping:) | semmle.label | call to Self.init(clamping:) | +| conversions.swift:58:26:58:36 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:59:12:59:47 | call to Self.init(truncatingIfNeeded:) | semmle.label | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:59:36:59:46 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:60:12:60:41 | call to Self.init(_:radix:) | semmle.label | call to Self.init(_:radix:) | +| conversions.swift:60:12:60:42 | ...! | semmle.label | ...! | +| conversions.swift:60:16:60:29 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:62:12:62:41 | call to Self.init(littleEndian:) | semmle.label | call to Self.init(littleEndian:) | +| conversions.swift:62:30:62:40 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:63:12:63:38 | call to Self.init(bigEndian:) | semmle.label | call to Self.init(bigEndian:) | +| conversions.swift:63:27:63:37 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:64:12:64:22 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:64:12:64:24 | .littleEndian | semmle.label | .littleEndian | +| conversions.swift:65:12:65:22 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:65:12:65:24 | .bigEndian | semmle.label | .bigEndian | +| conversions.swift:69:12:69:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:70:12:70:31 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:70:18:70:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:71:12:71:31 | call to UInt8.init(_:) | semmle.label | call to UInt8.init(_:) | +| conversions.swift:71:18:71:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:72:12:72:32 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:72:19:72:31 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:73:12:73:32 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:73:12:73:34 | .utf8 | semmle.label | .utf8 | +| conversions.swift:73:19:73:31 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:75:12:75:31 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:75:18:75:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:76:12:76:70 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | +| conversions.swift:76:41:76:51 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:77:12:77:70 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | +| conversions.swift:77:57:77:69 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:79:12:79:57 | call to Float.init(signOf:magnitudeOf:) | semmle.label | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:79:44:79:56 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:81:12:81:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:81:12:81:26 | .exponent | semmle.label | .exponent | +| conversions.swift:82:12:82:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | +| conversions.swift:82:12:82:26 | .significand | semmle.label | .significand | +| conversions.swift:86:12:86:25 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:87:12:87:33 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:87:19:87:32 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:95:12:95:35 | call to MyString.init(_:) | semmle.label | call to MyString.init(_:) | +| conversions.swift:95:12:95:35 | call to MyString.init(_:) [some:0] | semmle.label | call to MyString.init(_:) [some:0] | +| conversions.swift:95:12:95:36 | ...! | semmle.label | ...! | +| conversions.swift:95:21:95:34 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:96:12:96:12 | ms2 | semmle.label | ms2 | +| conversions.swift:103:31:103:44 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:104:12:104:12 | parent | semmle.label | parent | +| conversions.swift:105:12:105:12 | parent | semmle.label | parent | +| conversions.swift:107:25:107:69 | call to unsafeDowncast(_:to:) | semmle.label | call to unsafeDowncast(_:to:) | +| conversions.swift:107:40:107:40 | parent | semmle.label | parent | +| conversions.swift:108:12:108:12 | v3 | semmle.label | v3 | +| conversions.swift:109:12:109:12 | v3 | semmle.label | v3 | +| conversions.swift:117:12:117:35 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:117:24:117:34 | call to sourceInt() | semmle.label | call to sourceInt() | | file://:0:0:0:0 | .first | semmle.label | .first | | file://:0:0:0:0 | .second | semmle.label | .second | | file://:0:0:0:0 | [post] self [first] | semmle.label | [post] self [first] | @@ -332,44 +339,45 @@ subpaths | stringinterpolation.swift:28:14:28:21 | call to source() | stringinterpolation.swift:7:6:7:6 | value | file://:0:0:0:0 | [post] self [second] | stringinterpolation.swift:28:2:28:2 | [post] p2 [second] | | stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:7:6:7:6 | self [second] | file://:0:0:0:0 | .second | stringinterpolation.swift:31:21:31:24 | .second | #select -| conversions.swift:24:12:24:22 | call to sourceInt() | conversions.swift:24:12:24:22 | call to sourceInt() | conversions.swift:24:12:24:22 | call to sourceInt() | result | -| conversions.swift:25:12:25:27 | call to Self.init(_:) | conversions.swift:25:16:25:26 | call to sourceInt() | conversions.swift:25:12:25:27 | call to Self.init(_:) | result | -| conversions.swift:26:12:26:29 | call to Self.init(_:) | conversions.swift:26:18:26:28 | call to sourceInt() | conversions.swift:26:12:26:29 | call to Self.init(_:) | result | -| conversions.swift:27:12:27:29 | call to Float.init(_:) | conversions.swift:27:18:27:28 | call to sourceInt() | conversions.swift:27:12:27:29 | call to Float.init(_:) | result | -| conversions.swift:28:12:28:30 | call to String.init(_:) | conversions.swift:28:19:28:29 | call to sourceInt() | conversions.swift:28:12:28:30 | call to String.init(_:) | result | -| conversions.swift:29:12:29:32 | .utf8 | conversions.swift:29:19:29:29 | call to sourceInt() | conversions.swift:29:12:29:32 | .utf8 | result | -| conversions.swift:33:13:33:13 | v | conversions.swift:32:13:32:23 | call to sourceInt() | conversions.swift:33:13:33:13 | v | result | -| conversions.swift:37:12:37:12 | v2 | conversions.swift:36:30:36:40 | call to sourceInt() | conversions.swift:37:12:37:12 | v2 | result | -| conversions.swift:40:12:40:12 | v4 | conversions.swift:39:31:39:41 | call to sourceInt() | conversions.swift:40:12:40:12 | v4 | result | -| conversions.swift:43:12:43:12 | v5 | conversions.swift:42:36:42:46 | call to sourceInt() | conversions.swift:43:12:43:12 | v5 | result | -| conversions.swift:46:12:46:12 | v6 | conversions.swift:45:28:45:38 | call to sourceInt() | conversions.swift:46:12:46:12 | v6 | result | -| conversions.swift:48:12:48:37 | ...! | conversions.swift:48:25:48:35 | call to sourceInt() | conversions.swift:48:12:48:37 | ...! | result | -| conversions.swift:49:12:49:37 | call to Self.init(clamping:) | conversions.swift:49:26:49:36 | call to sourceInt() | conversions.swift:49:12:49:37 | call to Self.init(clamping:) | result | -| conversions.swift:50:12:50:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:50:36:50:46 | call to sourceInt() | conversions.swift:50:12:50:47 | call to Self.init(truncatingIfNeeded:) | result | -| conversions.swift:51:12:51:42 | ...! | conversions.swift:51:16:51:29 | call to sourceString() | conversions.swift:51:12:51:42 | ...! | result | -| conversions.swift:53:12:53:41 | call to Self.init(littleEndian:) | conversions.swift:53:30:53:40 | call to sourceInt() | conversions.swift:53:12:53:41 | call to Self.init(littleEndian:) | result | -| conversions.swift:54:12:54:38 | call to Self.init(bigEndian:) | conversions.swift:54:27:54:37 | call to sourceInt() | conversions.swift:54:12:54:38 | call to Self.init(bigEndian:) | result | -| conversions.swift:55:12:55:24 | .littleEndian | conversions.swift:55:12:55:22 | call to sourceInt() | conversions.swift:55:12:55:24 | .littleEndian | result | -| conversions.swift:56:12:56:24 | .bigEndian | conversions.swift:56:12:56:22 | call to sourceInt() | conversions.swift:56:12:56:24 | .bigEndian | result | -| conversions.swift:60:12:60:24 | call to sourceFloat() | conversions.swift:60:12:60:24 | call to sourceFloat() | conversions.swift:60:12:60:24 | call to sourceFloat() | result | -| conversions.swift:61:12:61:31 | call to Float.init(_:) | conversions.swift:61:18:61:30 | call to sourceFloat() | conversions.swift:61:12:61:31 | call to Float.init(_:) | result | -| conversions.swift:62:12:62:31 | call to UInt8.init(_:) | conversions.swift:62:18:62:30 | call to sourceFloat() | conversions.swift:62:12:62:31 | call to UInt8.init(_:) | result | -| conversions.swift:63:12:63:32 | call to String.init(_:) | conversions.swift:63:19:63:31 | call to sourceFloat() | conversions.swift:63:12:63:32 | call to String.init(_:) | result | -| conversions.swift:64:12:64:34 | .utf8 | conversions.swift:64:19:64:31 | call to sourceFloat() | conversions.swift:64:12:64:34 | .utf8 | result | -| conversions.swift:66:12:66:31 | call to Float.init(_:) | conversions.swift:66:18:66:30 | call to sourceFloat() | conversions.swift:66:12:66:31 | call to Float.init(_:) | result | -| conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | conversions.swift:67:41:67:51 | call to sourceInt() | conversions.swift:67:12:67:70 | call to Float.init(sign:exponent:significand:) | result | -| conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | conversions.swift:68:57:68:69 | call to sourceFloat() | conversions.swift:68:12:68:70 | call to Float.init(sign:exponent:significand:) | result | -| conversions.swift:70:12:70:57 | call to Float.init(signOf:magnitudeOf:) | conversions.swift:70:44:70:56 | call to sourceFloat() | conversions.swift:70:12:70:57 | call to Float.init(signOf:magnitudeOf:) | result | -| conversions.swift:72:12:72:26 | .exponent | conversions.swift:72:12:72:24 | call to sourceFloat() | conversions.swift:72:12:72:26 | .exponent | result | -| conversions.swift:73:12:73:26 | .significand | conversions.swift:73:12:73:24 | call to sourceFloat() | conversions.swift:73:12:73:26 | .significand | result | -| conversions.swift:77:12:77:25 | call to sourceString() | conversions.swift:77:12:77:25 | call to sourceString() | conversions.swift:77:12:77:25 | call to sourceString() | result | -| conversions.swift:78:12:78:33 | call to String.init(_:) | conversions.swift:78:19:78:32 | call to sourceString() | conversions.swift:78:12:78:33 | call to String.init(_:) | result | -| conversions.swift:87:12:87:12 | ms2 | conversions.swift:86:21:86:34 | call to sourceString() | conversions.swift:87:12:87:12 | ms2 | result | -| conversions.swift:95:12:95:12 | parent | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:95:12:95:12 | parent | result | -| conversions.swift:96:12:96:12 | parent | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:96:12:96:12 | parent | result | -| conversions.swift:99:12:99:12 | v3 | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:99:12:99:12 | v3 | result | -| conversions.swift:100:12:100:12 | v3 | conversions.swift:94:31:94:44 | call to sourceString() | conversions.swift:100:12:100:12 | v3 | result | -| conversions.swift:108:12:108:35 | call to Self.init(_:) | conversions.swift:108:24:108:34 | call to sourceInt() | conversions.swift:108:12:108:35 | call to Self.init(_:) | result | +| conversions.swift:26:12:26:22 | call to sourceInt() | conversions.swift:26:12:26:22 | call to sourceInt() | conversions.swift:26:12:26:22 | call to sourceInt() | result | +| conversions.swift:27:12:27:27 | call to Self.init(_:) | conversions.swift:27:16:27:26 | call to sourceInt() | conversions.swift:27:12:27:27 | call to Self.init(_:) | result | +| conversions.swift:28:12:28:29 | call to Self.init(_:) | conversions.swift:28:18:28:28 | call to sourceInt() | conversions.swift:28:12:28:29 | call to Self.init(_:) | result | +| conversions.swift:29:12:29:29 | call to Float.init(_:) | conversions.swift:29:18:29:28 | call to sourceInt() | conversions.swift:29:12:29:29 | call to Float.init(_:) | result | +| conversions.swift:30:12:30:30 | call to String.init(_:) | conversions.swift:30:19:30:29 | call to sourceInt() | conversions.swift:30:12:30:30 | call to String.init(_:) | result | +| conversions.swift:31:12:31:32 | .utf8 | conversions.swift:31:19:31:29 | call to sourceInt() | conversions.swift:31:12:31:32 | .utf8 | result | +| conversions.swift:35:12:35:17 | ...[...] | conversions.swift:33:19:33:29 | call to sourceInt() | conversions.swift:35:12:35:17 | ...[...] | result | +| conversions.swift:42:13:42:13 | v | conversions.swift:41:13:41:23 | call to sourceInt() | conversions.swift:42:13:42:13 | v | result | +| conversions.swift:46:12:46:12 | v2 | conversions.swift:45:30:45:40 | call to sourceInt() | conversions.swift:46:12:46:12 | v2 | result | +| conversions.swift:49:12:49:12 | v4 | conversions.swift:48:31:48:41 | call to sourceInt() | conversions.swift:49:12:49:12 | v4 | result | +| conversions.swift:52:12:52:12 | v5 | conversions.swift:51:36:51:46 | call to sourceInt() | conversions.swift:52:12:52:12 | v5 | result | +| conversions.swift:55:12:55:12 | v6 | conversions.swift:54:28:54:38 | call to sourceInt() | conversions.swift:55:12:55:12 | v6 | result | +| conversions.swift:57:12:57:37 | ...! | conversions.swift:57:25:57:35 | call to sourceInt() | conversions.swift:57:12:57:37 | ...! | result | +| conversions.swift:58:12:58:37 | call to Self.init(clamping:) | conversions.swift:58:26:58:36 | call to sourceInt() | conversions.swift:58:12:58:37 | call to Self.init(clamping:) | result | +| conversions.swift:59:12:59:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:59:36:59:46 | call to sourceInt() | conversions.swift:59:12:59:47 | call to Self.init(truncatingIfNeeded:) | result | +| conversions.swift:60:12:60:42 | ...! | conversions.swift:60:16:60:29 | call to sourceString() | conversions.swift:60:12:60:42 | ...! | result | +| conversions.swift:62:12:62:41 | call to Self.init(littleEndian:) | conversions.swift:62:30:62:40 | call to sourceInt() | conversions.swift:62:12:62:41 | call to Self.init(littleEndian:) | result | +| conversions.swift:63:12:63:38 | call to Self.init(bigEndian:) | conversions.swift:63:27:63:37 | call to sourceInt() | conversions.swift:63:12:63:38 | call to Self.init(bigEndian:) | result | +| conversions.swift:64:12:64:24 | .littleEndian | conversions.swift:64:12:64:22 | call to sourceInt() | conversions.swift:64:12:64:24 | .littleEndian | result | +| conversions.swift:65:12:65:24 | .bigEndian | conversions.swift:65:12:65:22 | call to sourceInt() | conversions.swift:65:12:65:24 | .bigEndian | result | +| conversions.swift:69:12:69:24 | call to sourceFloat() | conversions.swift:69:12:69:24 | call to sourceFloat() | conversions.swift:69:12:69:24 | call to sourceFloat() | result | +| conversions.swift:70:12:70:31 | call to Float.init(_:) | conversions.swift:70:18:70:30 | call to sourceFloat() | conversions.swift:70:12:70:31 | call to Float.init(_:) | result | +| conversions.swift:71:12:71:31 | call to UInt8.init(_:) | conversions.swift:71:18:71:30 | call to sourceFloat() | conversions.swift:71:12:71:31 | call to UInt8.init(_:) | result | +| conversions.swift:72:12:72:32 | call to String.init(_:) | conversions.swift:72:19:72:31 | call to sourceFloat() | conversions.swift:72:12:72:32 | call to String.init(_:) | result | +| conversions.swift:73:12:73:34 | .utf8 | conversions.swift:73:19:73:31 | call to sourceFloat() | conversions.swift:73:12:73:34 | .utf8 | result | +| conversions.swift:75:12:75:31 | call to Float.init(_:) | conversions.swift:75:18:75:30 | call to sourceFloat() | conversions.swift:75:12:75:31 | call to Float.init(_:) | result | +| conversions.swift:76:12:76:70 | call to Float.init(sign:exponent:significand:) | conversions.swift:76:41:76:51 | call to sourceInt() | conversions.swift:76:12:76:70 | call to Float.init(sign:exponent:significand:) | result | +| conversions.swift:77:12:77:70 | call to Float.init(sign:exponent:significand:) | conversions.swift:77:57:77:69 | call to sourceFloat() | conversions.swift:77:12:77:70 | call to Float.init(sign:exponent:significand:) | result | +| conversions.swift:79:12:79:57 | call to Float.init(signOf:magnitudeOf:) | conversions.swift:79:44:79:56 | call to sourceFloat() | conversions.swift:79:12:79:57 | call to Float.init(signOf:magnitudeOf:) | result | +| conversions.swift:81:12:81:26 | .exponent | conversions.swift:81:12:81:24 | call to sourceFloat() | conversions.swift:81:12:81:26 | .exponent | result | +| conversions.swift:82:12:82:26 | .significand | conversions.swift:82:12:82:24 | call to sourceFloat() | conversions.swift:82:12:82:26 | .significand | result | +| conversions.swift:86:12:86:25 | call to sourceString() | conversions.swift:86:12:86:25 | call to sourceString() | conversions.swift:86:12:86:25 | call to sourceString() | result | +| conversions.swift:87:12:87:33 | call to String.init(_:) | conversions.swift:87:19:87:32 | call to sourceString() | conversions.swift:87:12:87:33 | call to String.init(_:) | result | +| conversions.swift:96:12:96:12 | ms2 | conversions.swift:95:21:95:34 | call to sourceString() | conversions.swift:96:12:96:12 | ms2 | result | +| conversions.swift:104:12:104:12 | parent | conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:104:12:104:12 | parent | result | +| conversions.swift:105:12:105:12 | parent | conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:105:12:105:12 | parent | result | +| conversions.swift:108:12:108:12 | v3 | conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:108:12:108:12 | v3 | result | +| conversions.swift:109:12:109:12 | v3 | conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:109:12:109:12 | v3 | result | +| conversions.swift:117:12:117:35 | call to Self.init(_:) | conversions.swift:117:24:117:34 | call to sourceInt() | conversions.swift:117:12:117:35 | call to Self.init(_:) | result | | simple.swift:12:13:12:24 | ... .+(_:_:) ... | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | result | | simple.swift:13:13:13:24 | ... .+(_:_:) ... | simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | result | | simple.swift:14:13:14:24 | ... .-(_:_:) ... | simple.swift:14:17:14:24 | call to source() | simple.swift:14:13:14:24 | ... .-(_:_:) ... | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift index 321c555e0ab..efb0bba4ed2 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift @@ -20,62 +20,71 @@ class MyString : LosslessStringConvertible, CustomStringConvertible, CustomDebug var clean: String { get { return "" } } } +typealias MyInt = Int + func testConversions() { - sink(arg: sourceInt()) // $ tainted=24 - sink(arg: Int(sourceInt())) // $ tainted=25 - sink(arg: UInt8(sourceInt())) // $ tainted=26 - sink(arg: Float(sourceInt())) // $ tainted=27 - sink(arg: String(sourceInt())) // $ tainted=28 - sink(arg: String(sourceInt()).utf8) // $ tainted=29 - sink(arg: [UInt8](sourceString().utf8)) // $ MISSING: tainted= + sink(arg: sourceInt()) // $ tainted=26 + sink(arg: Int(sourceInt())) // $ tainted=27 + sink(arg: UInt8(sourceInt())) // $ tainted=28 + sink(arg: Float(sourceInt())) // $ tainted=29 + sink(arg: String(sourceInt())) // $ tainted=30 + sink(arg: String(sourceInt()).utf8) // $ tainted=31 + + let arr = [1, 2, sourceInt()] + sink(arg: arr) + sink(arg: arr[0]) // $ tainted=33 + sink(arg: [MyInt](arr)) + sink(arg: [MyInt](arr)[0]) // $ MISSING: tainted=33 + sink(arg: [UInt8](sourceString().utf8)) + sink(arg: [UInt8](sourceString().utf8)[0]) // $ MISSING: tainted=33 if let v = sourceInt() as? UInt { - sink(arg: v) // $ tainted=32 + sink(arg: v) // $ tainted=41 } let v2: UInt8 = numericCast(sourceInt()) - sink(arg: v2) // $ tainted=36 + sink(arg: v2) // $ tainted=45 let v4: UInt = unsafeBitCast(sourceInt(), to: UInt.self) - sink(arg: v4) // $ tainted=39 + sink(arg: v4) // $ tainted=48 let v5 = UInt(truncatingIfNeeded: sourceInt()) - sink(arg: v5) // $ tainted=42 + sink(arg: v5) // $ tainted=51 let v6 = UInt(bitPattern: sourceInt()) - sink(arg: v6) // $ tainted=45 + sink(arg: v6) // $ tainted=54 - sink(arg: Int(exactly: sourceInt())!) // $ tainted=48 - sink(arg: Int(clamping: sourceInt())) // $ tainted=49 - sink(arg: Int(truncatingIfNeeded: sourceInt())) // $ tainted=50 - sink(arg: Int(sourceString(), radix: 10)!) // $ tainted=51 + sink(arg: Int(exactly: sourceInt())!) // $ tainted=57 + sink(arg: Int(clamping: sourceInt())) // $ tainted=58 + sink(arg: Int(truncatingIfNeeded: sourceInt())) // $ tainted=59 + sink(arg: Int(sourceString(), radix: 10)!) // $ tainted=60 - sink(arg: Int(littleEndian: sourceInt())) // $ tainted=53 - sink(arg: Int(bigEndian: sourceInt())) // $ tainted=54 - sink(arg: sourceInt().littleEndian) // $ tainted=55 - sink(arg: sourceInt().bigEndian) // $ tainted=56 + sink(arg: Int(littleEndian: sourceInt())) // $ tainted=62 + sink(arg: Int(bigEndian: sourceInt())) // $ tainted=63 + sink(arg: sourceInt().littleEndian) // $ tainted=64 + sink(arg: sourceInt().bigEndian) // $ tainted=65 // --- - sink(arg: sourceFloat()) // $ tainted=60 - sink(arg: Float(sourceFloat())) // $ tainted=61 - sink(arg: UInt8(sourceFloat())) // $ tainted=62 - sink(arg: String(sourceFloat())) // $ tainted=63 - sink(arg: String(sourceFloat()).utf8) // $ tainted=64 + sink(arg: sourceFloat()) // $ tainted=69 + sink(arg: Float(sourceFloat())) // $ tainted=70 + sink(arg: UInt8(sourceFloat())) // $ tainted=71 + sink(arg: String(sourceFloat())) // $ tainted=72 + sink(arg: String(sourceFloat()).utf8) // $ tainted=73 - sink(arg: Float(sourceFloat())) // $ tainted=66 - sink(arg: Float(sign: .plus, exponent: sourceInt(), significand: 0.0)) // $ tainted=67 - sink(arg: Float(sign: .plus, exponent: 0, significand: sourceFloat())) // $ tainted=68 + sink(arg: Float(sourceFloat())) // $ tainted=75 + sink(arg: Float(sign: .plus, exponent: sourceInt(), significand: 0.0)) // $ tainted=76 + sink(arg: Float(sign: .plus, exponent: 0, significand: sourceFloat())) // $ tainted=77 sink(arg: Float(signOf: sourceFloat(), magnitudeOf: 0.0)) // (good) - sink(arg: Float(signOf: 0.0, magnitudeOf: sourceFloat())) // $ tainted=70 + sink(arg: Float(signOf: 0.0, magnitudeOf: sourceFloat())) // $ tainted=79 - sink(arg: sourceFloat().exponent) // $ tainted=72 - sink(arg: sourceFloat().significand) // $ tainted=73 + sink(arg: sourceFloat().exponent) // $ tainted=81 + sink(arg: sourceFloat().significand) // $ tainted=82 // --- - sink(arg: sourceString()) // $ tainted=77 - sink(arg: String(sourceString())) // $ tainted=78 + sink(arg: sourceString()) // $ tainted=86 + sink(arg: String(sourceString())) // $ tainted=87 let ms1 = MyString("abc")! sink(arg: ms1) @@ -84,7 +93,7 @@ func testConversions() { sink(arg: ms1.clean) let ms2 = MyString(sourceString())! - sink(arg: ms2) // $ tainted=86 + sink(arg: ms2) // $ tainted=95 sink(arg: ms2.description) // $ MISSING: tainted= sink(arg: ms2.debugDescription) // $ MISSING: tainted= sink(arg: ms2.clean) @@ -92,12 +101,12 @@ func testConversions() { // --- let parent : MyParentClass = sourceString() as! MyChildClass - sink(arg: parent) // $ tainted=94 - sink(arg: parent as! MyChildClass) // $ tainted=94 + sink(arg: parent) // $ tainted=103 + sink(arg: parent as! MyChildClass) // $ tainted=103 let v3: MyChildClass = unsafeDowncast(parent, to: MyChildClass.self) - sink(arg: v3) // $ tainted=94 - sink(arg: v3 as! MyParentClass) // $ tainted=94 + sink(arg: v3) // $ tainted=103 + sink(arg: v3 as! MyParentClass) // $ tainted=103 } var myCEnumConst : Int = 0 @@ -105,5 +114,5 @@ typealias MyCEnumType = UInt32 func testCEnum() { sink(arg: MyCEnumType(myCEnumConst)) - sink(arg: MyCEnumType(sourceInt())) // $ tainted=108 + sink(arg: MyCEnumType(sourceInt())) // $ tainted=117 } From 4b66bada3d188fc891950b1171ae9b3abb572323 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 16 Aug 2023 12:01:53 +0100 Subject: [PATCH 075/788] Swift: Model array initializers. --- .../swift/frameworks/StandardLibrary/Array.qll | 5 +++++ .../dataflow/taint/core/Taint.expected | 15 +++++++++++++++ .../dataflow/taint/core/conversions.swift | 4 ++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll index 207d120e82e..30d753ae967 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll @@ -19,6 +19,11 @@ private class ArraySummaries extends SummaryModelCsv { override predicate row(string row) { row = [ + ";Array;true;init(_:);;;Argument[0];ReturnValue.ArrayElement;value", + ";Array;true;init(_:);;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value", + ";Array;true;init(_:);;;Argument[0].CollectionElement;ReturnValue.ArrayElement;value", + ";Array;true;init(repeating:count:);;;Argument[0];ReturnValue.ArrayElement;value", + ";Array;true;init(arrayLiteral:);;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value", ";Array;true;insert(_:at:);;;Argument[0];Argument[-1].ArrayElement;value", ";Array;true;insert(_:at:);;;Argument[1];Argument[-1];taint" ] diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 4f10e907be3..440a286dfb9 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -6,8 +6,14 @@ edges | conversions.swift:31:12:31:30 | call to String.init(_:) | conversions.swift:31:12:31:32 | .utf8 | | conversions.swift:31:19:31:29 | call to sourceInt() | conversions.swift:31:12:31:30 | call to String.init(_:) | | conversions.swift:33:12:33:30 | [...] [Array element] | conversions.swift:35:12:35:12 | arr [Array element] | +| conversions.swift:33:12:33:30 | [...] [Array element] | conversions.swift:37:20:37:20 | arr [Array element] | | conversions.swift:33:19:33:29 | call to sourceInt() | conversions.swift:33:12:33:30 | [...] [Array element] | | conversions.swift:35:12:35:12 | arr [Array element] | conversions.swift:35:12:35:17 | ...[...] | +| conversions.swift:37:12:37:23 | call to Array.init(_:) [Array element] | conversions.swift:37:12:37:26 | ...[...] | +| conversions.swift:37:20:37:20 | arr [Array element] | conversions.swift:37:12:37:23 | call to Array.init(_:) [Array element] | +| conversions.swift:39:12:39:39 | call to Array.init(_:) [Array element] | conversions.swift:39:12:39:42 | ...[...] | +| conversions.swift:39:20:39:33 | call to sourceString() | conversions.swift:39:20:39:35 | .utf8 | +| conversions.swift:39:20:39:35 | .utf8 | conversions.swift:39:12:39:39 | call to Array.init(_:) [Array element] | | conversions.swift:41:13:41:23 | call to sourceInt() | conversions.swift:42:13:42:13 | v | | conversions.swift:45:18:45:41 | call to numericCast(_:) | conversions.swift:46:12:46:12 | v2 | | conversions.swift:45:30:45:40 | call to sourceInt() | conversions.swift:45:18:45:41 | call to numericCast(_:) | @@ -145,6 +151,13 @@ nodes | conversions.swift:33:19:33:29 | call to sourceInt() | semmle.label | call to sourceInt() | | conversions.swift:35:12:35:12 | arr [Array element] | semmle.label | arr [Array element] | | conversions.swift:35:12:35:17 | ...[...] | semmle.label | ...[...] | +| conversions.swift:37:12:37:23 | call to Array.init(_:) [Array element] | semmle.label | call to Array.init(_:) [Array element] | +| conversions.swift:37:12:37:26 | ...[...] | semmle.label | ...[...] | +| conversions.swift:37:20:37:20 | arr [Array element] | semmle.label | arr [Array element] | +| conversions.swift:39:12:39:39 | call to Array.init(_:) [Array element] | semmle.label | call to Array.init(_:) [Array element] | +| conversions.swift:39:12:39:42 | ...[...] | semmle.label | ...[...] | +| conversions.swift:39:20:39:33 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:39:20:39:35 | .utf8 | semmle.label | .utf8 | | conversions.swift:41:13:41:23 | call to sourceInt() | semmle.label | call to sourceInt() | | conversions.swift:42:13:42:13 | v | semmle.label | v | | conversions.swift:45:18:45:41 | call to numericCast(_:) | semmle.label | call to numericCast(_:) | @@ -346,6 +359,8 @@ subpaths | conversions.swift:30:12:30:30 | call to String.init(_:) | conversions.swift:30:19:30:29 | call to sourceInt() | conversions.swift:30:12:30:30 | call to String.init(_:) | result | | conversions.swift:31:12:31:32 | .utf8 | conversions.swift:31:19:31:29 | call to sourceInt() | conversions.swift:31:12:31:32 | .utf8 | result | | conversions.swift:35:12:35:17 | ...[...] | conversions.swift:33:19:33:29 | call to sourceInt() | conversions.swift:35:12:35:17 | ...[...] | result | +| conversions.swift:37:12:37:26 | ...[...] | conversions.swift:33:19:33:29 | call to sourceInt() | conversions.swift:37:12:37:26 | ...[...] | result | +| conversions.swift:39:12:39:42 | ...[...] | conversions.swift:39:20:39:33 | call to sourceString() | conversions.swift:39:12:39:42 | ...[...] | result | | conversions.swift:42:13:42:13 | v | conversions.swift:41:13:41:23 | call to sourceInt() | conversions.swift:42:13:42:13 | v | result | | conversions.swift:46:12:46:12 | v2 | conversions.swift:45:30:45:40 | call to sourceInt() | conversions.swift:46:12:46:12 | v2 | result | | conversions.swift:49:12:49:12 | v4 | conversions.swift:48:31:48:41 | call to sourceInt() | conversions.swift:49:12:49:12 | v4 | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift index efb0bba4ed2..e24c8347251 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift @@ -34,9 +34,9 @@ func testConversions() { sink(arg: arr) sink(arg: arr[0]) // $ tainted=33 sink(arg: [MyInt](arr)) - sink(arg: [MyInt](arr)[0]) // $ MISSING: tainted=33 + sink(arg: [MyInt](arr)[0]) // $ tainted=33 sink(arg: [UInt8](sourceString().utf8)) - sink(arg: [UInt8](sourceString().utf8)[0]) // $ MISSING: tainted=33 + sink(arg: [UInt8](sourceString().utf8)[0]) // $ tainted=39 if let v = sourceInt() as? UInt { sink(arg: v) // $ tainted=41 From 3ee3eabd958bb947bc9ed53046e94ee698a7461b Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Wed, 16 Aug 2023 17:52:26 +0000 Subject: [PATCH 076/788] Swift: add EnumContent to clearsContent --- .../ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 998c0dd8627..0aeccaa0eb0 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -877,7 +877,8 @@ predicate clearsContent(Node n, ContentSet c) { n = any(PostUpdateNode pun | storeStep(_, c, pun)).getPreUpdateNode() and ( c.isSingleton(any(Content::FieldContent fc)) or - c.isSingleton(any(Content::TupleContent tc)) + c.isSingleton(any(Content::TupleContent tc)) or + c.isSingleton(any(Content::EnumContent ec)) ) } From d3cc366dc5e3e4cb62f69bbebcfa25fd5e0f3321 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Wed, 16 Aug 2023 17:57:30 +0000 Subject: [PATCH 077/788] Swift: add QLDoc for DictionarySubscriptNode --- .../lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 0aeccaa0eb0..675a450359b 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -300,6 +300,12 @@ import Cached /** Holds if `n` should be hidden from path explanations. */ predicate nodeIsHidden(Node n) { n instanceof FlowSummaryNode } +/** + * The intermediate node for a dictionary subscript operation `dict[key]`. In a write, this is used + * as the destination of the `storeStep`s that add `TupleContent`s and the source of the storeStep + * that adds `CollectionContent`. In a read, this is the destination of the `readStep` that pops + * `CollectionContent` and the source of the `readStep` that pops `TupleContent[0]` + */ private class DictionarySubscriptNode extends NodeImpl, TDictionarySubscriptNode { SubscriptExpr expr; From 87364137df810ab89c2c0dc2173c1d8f99918de5 Mon Sep 17 00:00:00 2001 From: Max Schaefer Date: Fri, 18 Aug 2023 14:43:57 +0100 Subject: [PATCH 078/788] Use more sensible validator in example. --- .../CWE-601/examples/ServerSideUrlRedirect.js | 4 ++-- .../CWE-601/examples/ServerSideUrlRedirectGood.js | 4 ++-- .../CWE-601/examples/ServerSideUrlRedirectGood2.js | 12 ++++++------ .../ServerSideUrlRedirect.expected | 10 +++++----- .../ServerSideUrlRedirect/ServerSideUrlRedirect.js | 4 ++-- .../ServerSideUrlRedirectGood.js | 4 ++-- .../ServerSideUrlRedirectGood2.js | 12 ++++++------ 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirect.js b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirect.js index d2ae7511c93..38538fc0f96 100644 --- a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirect.js +++ b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirect.js @@ -1,6 +1,6 @@ const app = require("express")(); -app.get('/redirect', function(req, res) { +app.get("/redirect", function (req, res) { // BAD: a request parameter is incorporated without validation into a URL redirect - res.redirect(req.params["target"]); + res.redirect(req.query["target"]); }); diff --git a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood.js b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood.js index 8903ddf09fa..179f28ccb0b 100644 --- a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood.js +++ b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood.js @@ -2,9 +2,9 @@ const app = require("express")(); const VALID_REDIRECT = "http://cwe.mitre.org/data/definitions/601.html"; -app.get('/redirect', function(req, res) { +app.get("/redirect", function (req, res) { // GOOD: the request parameter is validated against a known fixed string - let target = req.params["target"] + let target = req.query["target"]; if (VALID_REDIRECT === target) { res.redirect(target); } else { diff --git a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js index 5eaedd0aac5..78b3be6c260 100644 --- a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js +++ b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js @@ -1,15 +1,15 @@ const app = require("express")(); -function isLocalUrl(url) { - return url.startsWith("/") && !url.startsWith("//") && !url.startsWith("/\\"); +function isRelativePath(path) { + return !/^(\w+:)?[/\\]{2}/.test(path); } -app.get('/redirect', function(req, res) { +app.get("/redirect", function (req, res) { // GOOD: check that we don't redirect to a different host - let target = req.params["target"]; - if (isLocalUrl(target)) { + let target = req.query["target"]; + if (isRelativePath(target)) { res.redirect(target); } else { res.redirect("/"); } -}); \ No newline at end of file +}); diff --git a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.expected b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.expected index 2883cd3fdac..c03f57e7dd5 100644 --- a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.expected +++ b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.expected @@ -1,7 +1,7 @@ nodes -| ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | -| ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | -| ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | +| ServerSideUrlRedirect.js:5:16:5:34 | req.query["target"] | +| ServerSideUrlRedirect.js:5:16:5:34 | req.query["target"] | +| ServerSideUrlRedirect.js:5:16:5:34 | req.query["target"] | | express.js:7:16:7:34 | req.param("target") | | express.js:7:16:7:34 | req.param("target") | | express.js:7:16:7:34 | req.param("target") | @@ -117,7 +117,7 @@ nodes | react-native.js:9:26:9:32 | tainted | | react-native.js:9:26:9:32 | tainted | edges -| ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | +| ServerSideUrlRedirect.js:5:16:5:34 | req.query["target"] | ServerSideUrlRedirect.js:5:16:5:34 | req.query["target"] | | express.js:7:16:7:34 | req.param("target") | express.js:7:16:7:34 | req.param("target") | | express.js:12:26:12:44 | req.param("target") | express.js:12:26:12:44 | req.param("target") | | express.js:27:7:27:34 | target | express.js:33:18:33:23 | target | @@ -215,7 +215,7 @@ edges | react-native.js:7:17:7:33 | req.param("code") | react-native.js:7:7:7:33 | tainted | | react-native.js:7:17:7:33 | req.param("code") | react-native.js:7:7:7:33 | tainted | #select -| ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | Untrusted URL redirection depends on a $@. | ServerSideUrlRedirect.js:5:16:5:35 | req.params["target"] | user-provided value | +| ServerSideUrlRedirect.js:5:16:5:34 | req.query["target"] | ServerSideUrlRedirect.js:5:16:5:34 | req.query["target"] | ServerSideUrlRedirect.js:5:16:5:34 | req.query["target"] | Untrusted URL redirection depends on a $@. | ServerSideUrlRedirect.js:5:16:5:34 | req.query["target"] | user-provided value | | express.js:7:16:7:34 | req.param("target") | express.js:7:16:7:34 | req.param("target") | express.js:7:16:7:34 | req.param("target") | Untrusted URL redirection depends on a $@. | express.js:7:16:7:34 | req.param("target") | user-provided value | | express.js:12:26:12:44 | req.param("target") | express.js:12:26:12:44 | req.param("target") | express.js:12:26:12:44 | req.param("target") | Untrusted URL redirection depends on a $@. | express.js:12:26:12:44 | req.param("target") | user-provided value | | express.js:33:18:33:23 | target | express.js:27:16:27:34 | req.param("target") | express.js:33:18:33:23 | target | Untrusted URL redirection depends on a $@. | express.js:27:16:27:34 | req.param("target") | user-provided value | diff --git a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.js b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.js index d2ae7511c93..38538fc0f96 100644 --- a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.js +++ b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirect.js @@ -1,6 +1,6 @@ const app = require("express")(); -app.get('/redirect', function(req, res) { +app.get("/redirect", function (req, res) { // BAD: a request parameter is incorporated without validation into a URL redirect - res.redirect(req.params["target"]); + res.redirect(req.query["target"]); }); diff --git a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood.js b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood.js index 8903ddf09fa..179f28ccb0b 100644 --- a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood.js +++ b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood.js @@ -2,9 +2,9 @@ const app = require("express")(); const VALID_REDIRECT = "http://cwe.mitre.org/data/definitions/601.html"; -app.get('/redirect', function(req, res) { +app.get("/redirect", function (req, res) { // GOOD: the request parameter is validated against a known fixed string - let target = req.params["target"] + let target = req.query["target"]; if (VALID_REDIRECT === target) { res.redirect(target); } else { diff --git a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js index 5eaedd0aac5..78b3be6c260 100644 --- a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js +++ b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js @@ -1,15 +1,15 @@ const app = require("express")(); -function isLocalUrl(url) { - return url.startsWith("/") && !url.startsWith("//") && !url.startsWith("/\\"); +function isRelativePath(path) { + return !/^(\w+:)?[/\\]{2}/.test(path); } -app.get('/redirect', function(req, res) { +app.get("/redirect", function (req, res) { // GOOD: check that we don't redirect to a different host - let target = req.params["target"]; - if (isLocalUrl(target)) { + let target = req.query["target"]; + if (isRelativePath(target)) { res.redirect(target); } else { res.redirect("/"); } -}); \ No newline at end of file +}); From d594de81902e18b22b5362e618eb68e8f0657d9d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 17 Aug 2023 10:20:23 +0100 Subject: [PATCH 079/788] Swift: Test dataflow on fields a bit more. --- .../dataflow/dataflow/DataFlow.expected | 62 +++++++++++++++++++ .../dataflow/dataflow/LocalFlow.expected | 36 +++++++++++ .../dataflow/dataflow/test.swift | 28 +++++++++ 3 files changed, 126 insertions(+) diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index c638ea8e344..df3da66d96b 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -4,10 +4,12 @@ edges | file://:0:0:0:0 | self [v2, some:0] | file://:0:0:0:0 | .v2 [some:0] | | file://:0:0:0:0 | self [v2] | file://:0:0:0:0 | .v2 | | file://:0:0:0:0 | self [v3] | file://:0:0:0:0 | .v3 | +| file://:0:0:0:0 | self [v] | file://:0:0:0:0 | .v | | file://:0:0:0:0 | self [x, some:0] | file://:0:0:0:0 | .x [some:0] | | file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v2] | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v3] | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v] | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [x] | | file://:0:0:0:0 | value [some:0] | file://:0:0:0:0 | [post] self [v2, some:0] | | file://:0:0:0:0 | value [some:0] | file://:0:0:0:0 | [post] self [x, some:0] | @@ -404,9 +406,34 @@ edges | test.swift:756:15:756:19 | .v2 [some:0] | test.swift:756:15:756:21 | ...! | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:732:9:732:9 | self [v3] | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:757:15:757:19 | .v3 | +| test.swift:764:8:764:13 | v | test.swift:765:14:765:14 | v | +| test.swift:765:5:765:5 | [post] self [v] | test.swift:764:3:766:3 | self[return] [v] | +| test.swift:765:14:765:14 | v | test.swift:765:5:765:5 | [post] self [v] | +| test.swift:768:8:768:8 | self [v] | test.swift:768:31:768:31 | self [v] | +| test.swift:768:31:768:31 | self [v] | test.swift:768:31:768:31 | .v | +| test.swift:768:31:768:31 | self [v] | test.swift:770:7:770:7 | self [v] | +| test.swift:770:7:770:7 | self [v] | file://:0:0:0:0 | self [v] | +| test.swift:770:7:770:7 | value | file://:0:0:0:0 | value | +| test.swift:774:14:774:25 | call to S3.init(_:) [v] | test.swift:777:15:777:15 | s1 [v] | +| test.swift:774:14:774:25 | call to S3.init(_:) [v] | test.swift:779:15:779:15 | s1 [v] | +| test.swift:774:17:774:24 | call to source() | test.swift:764:8:764:13 | v | +| test.swift:774:17:774:24 | call to source() | test.swift:774:14:774:25 | call to S3.init(_:) [v] | +| test.swift:777:15:777:15 | s1 [v] | test.swift:770:7:770:7 | self [v] | +| test.swift:777:15:777:15 | s1 [v] | test.swift:777:15:777:18 | .v | +| test.swift:779:15:779:15 | s1 [v] | test.swift:768:8:768:8 | self [v] | +| test.swift:779:15:779:15 | s1 [v] | test.swift:779:15:779:23 | call to getv() | +| test.swift:783:5:783:5 | [post] s2 [v] | test.swift:786:15:786:15 | s2 [v] | +| test.swift:783:5:783:5 | [post] s2 [v] | test.swift:788:15:788:15 | s2 [v] | +| test.swift:783:12:783:19 | call to source() | test.swift:770:7:770:7 | value | +| test.swift:783:12:783:19 | call to source() | test.swift:783:5:783:5 | [post] s2 [v] | +| test.swift:786:15:786:15 | s2 [v] | test.swift:770:7:770:7 | self [v] | +| test.swift:786:15:786:15 | s2 [v] | test.swift:786:15:786:18 | .v | +| test.swift:788:15:788:15 | s2 [v] | test.swift:768:8:768:8 | self [v] | +| test.swift:788:15:788:15 | s2 [v] | test.swift:788:15:788:23 | call to getv() | nodes | file://:0:0:0:0 | .a [x] | semmle.label | .a [x] | | file://:0:0:0:0 | .str | semmle.label | .str | +| file://:0:0:0:0 | .v | semmle.label | .v | | file://:0:0:0:0 | .v2 | semmle.label | .v2 | | file://:0:0:0:0 | .v2 [some:0] | semmle.label | .v2 [some:0] | | file://:0:0:0:0 | .v3 | semmle.label | .v3 | @@ -415,6 +442,7 @@ nodes | file://:0:0:0:0 | [post] self [v2, some:0] | semmle.label | [post] self [v2, some:0] | | file://:0:0:0:0 | [post] self [v2] | semmle.label | [post] self [v2] | | file://:0:0:0:0 | [post] self [v3] | semmle.label | [post] self [v3] | +| file://:0:0:0:0 | [post] self [v] | semmle.label | [post] self [v] | | file://:0:0:0:0 | [post] self [x, some:0] | semmle.label | [post] self [x, some:0] | | file://:0:0:0:0 | [post] self [x] | semmle.label | [post] self [x] | | file://:0:0:0:0 | self [a, x] | semmle.label | self [a, x] | @@ -422,11 +450,13 @@ nodes | file://:0:0:0:0 | self [v2, some:0] | semmle.label | self [v2, some:0] | | file://:0:0:0:0 | self [v2] | semmle.label | self [v2] | | file://:0:0:0:0 | self [v3] | semmle.label | self [v3] | +| file://:0:0:0:0 | self [v] | semmle.label | self [v] | | file://:0:0:0:0 | self [x, some:0] | semmle.label | self [x, some:0] | | file://:0:0:0:0 | self [x] | semmle.label | self [x] | | file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | +| file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value [some:0] | semmle.label | value [some:0] | | file://:0:0:0:0 | value [some:0] | semmle.label | value [some:0] | | test.swift:6:19:6:26 | call to source() | semmle.label | call to source() | @@ -849,6 +879,27 @@ nodes | test.swift:756:15:756:21 | ...! | semmle.label | ...! | | test.swift:757:15:757:15 | mo1 [v3] | semmle.label | mo1 [v3] | | test.swift:757:15:757:19 | .v3 | semmle.label | .v3 | +| test.swift:764:3:766:3 | self[return] [v] | semmle.label | self[return] [v] | +| test.swift:764:8:764:13 | v | semmle.label | v | +| test.swift:765:5:765:5 | [post] self [v] | semmle.label | [post] self [v] | +| test.swift:765:14:765:14 | v | semmle.label | v | +| test.swift:768:8:768:8 | self [v] | semmle.label | self [v] | +| test.swift:768:31:768:31 | .v | semmle.label | .v | +| test.swift:768:31:768:31 | self [v] | semmle.label | self [v] | +| test.swift:770:7:770:7 | self [v] | semmle.label | self [v] | +| test.swift:770:7:770:7 | value | semmle.label | value | +| test.swift:774:14:774:25 | call to S3.init(_:) [v] | semmle.label | call to S3.init(_:) [v] | +| test.swift:774:17:774:24 | call to source() | semmle.label | call to source() | +| test.swift:777:15:777:15 | s1 [v] | semmle.label | s1 [v] | +| test.swift:777:15:777:18 | .v | semmle.label | .v | +| test.swift:779:15:779:15 | s1 [v] | semmle.label | s1 [v] | +| test.swift:779:15:779:23 | call to getv() | semmle.label | call to getv() | +| test.swift:783:5:783:5 | [post] s2 [v] | semmle.label | [post] s2 [v] | +| test.swift:783:12:783:19 | call to source() | semmle.label | call to source() | +| test.swift:786:15:786:15 | s2 [v] | semmle.label | s2 [v] | +| test.swift:786:15:786:18 | .v | semmle.label | .v | +| test.swift:788:15:788:15 | s2 [v] | semmle.label | s2 [v] | +| test.swift:788:15:788:23 | call to getv() | semmle.label | call to getv() | subpaths | test.swift:75:22:75:22 | x | test.swift:65:16:65:28 | arg1 | test.swift:65:1:70:1 | arg2[return] | test.swift:75:32:75:32 | [post] y | | test.swift:114:19:114:19 | arg | test.swift:109:9:109:14 | arg | test.swift:110:12:110:12 | arg | test.swift:114:12:114:22 | call to ... | @@ -897,6 +948,13 @@ subpaths | test.swift:756:15:756:15 | mo1 [v2, some:0] | test.swift:731:9:731:9 | self [v2, some:0] | file://:0:0:0:0 | .v2 [some:0] | test.swift:756:15:756:19 | .v2 [some:0] | | test.swift:756:15:756:15 | mo1 [v2] | test.swift:731:9:731:9 | self [v2] | file://:0:0:0:0 | .v2 | test.swift:756:15:756:19 | .v2 | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:732:9:732:9 | self [v3] | file://:0:0:0:0 | .v3 | test.swift:757:15:757:19 | .v3 | +| test.swift:768:31:768:31 | self [v] | test.swift:770:7:770:7 | self [v] | file://:0:0:0:0 | .v | test.swift:768:31:768:31 | .v | +| test.swift:774:17:774:24 | call to source() | test.swift:764:8:764:13 | v | test.swift:764:3:766:3 | self[return] [v] | test.swift:774:14:774:25 | call to S3.init(_:) [v] | +| test.swift:777:15:777:15 | s1 [v] | test.swift:770:7:770:7 | self [v] | file://:0:0:0:0 | .v | test.swift:777:15:777:18 | .v | +| test.swift:779:15:779:15 | s1 [v] | test.swift:768:8:768:8 | self [v] | test.swift:768:31:768:31 | .v | test.swift:779:15:779:23 | call to getv() | +| test.swift:783:12:783:19 | call to source() | test.swift:770:7:770:7 | value | file://:0:0:0:0 | [post] self [v] | test.swift:783:5:783:5 | [post] s2 [v] | +| test.swift:786:15:786:15 | s2 [v] | test.swift:770:7:770:7 | self [v] | file://:0:0:0:0 | .v | test.swift:786:15:786:18 | .v | +| test.swift:788:15:788:15 | s2 [v] | test.swift:768:8:768:8 | self [v] | test.swift:768:31:768:31 | .v | test.swift:788:15:788:23 | call to getv() | #select | test.swift:7:15:7:15 | t1 | test.swift:6:19:6:26 | call to source() | test.swift:7:15:7:15 | t1 | result | | test.swift:9:15:9:15 | t1 | test.swift:6:19:6:26 | call to source() | test.swift:9:15:9:15 | t1 | result | @@ -996,3 +1054,7 @@ subpaths | test.swift:754:15:754:15 | v3 | test.swift:744:10:744:17 | call to source() | test.swift:754:15:754:15 | v3 | result | | test.swift:756:15:756:21 | ...! | test.swift:746:14:746:21 | call to source() | test.swift:756:15:756:21 | ...! | result | | test.swift:757:15:757:19 | .v3 | test.swift:747:14:747:21 | call to source() | test.swift:757:15:757:19 | .v3 | result | +| test.swift:777:15:777:18 | .v | test.swift:774:17:774:24 | call to source() | test.swift:777:15:777:18 | .v | result | +| test.swift:779:15:779:23 | call to getv() | test.swift:774:17:774:24 | call to source() | test.swift:779:15:779:23 | call to getv() | result | +| test.swift:786:15:786:18 | .v | test.swift:783:12:783:19 | call to source() | test.swift:786:15:786:18 | .v | result | +| test.swift:788:15:788:23 | call to getv() | test.swift:783:12:783:19 | call to source() | test.swift:788:15:788:23 | call to getv() | result | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected index 18e5d25010d..c3040bc6c9a 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected @@ -913,3 +913,39 @@ | test.swift:759:15:759:15 | mo2 | test.swift:760:15:760:15 | mo2 | | test.swift:759:15:759:20 | .v2 | test.swift:759:15:759:22 | ...! | | test.swift:760:15:760:15 | mo2 | test.swift:760:15:760:18 | ...! | +| test.swift:764:3:764:3 | SSA def(self) | test.swift:765:5:765:5 | self | +| test.swift:764:3:764:3 | self | test.swift:764:3:764:3 | SSA def(self) | +| test.swift:764:8:764:13 | SSA def(v) | test.swift:765:14:765:14 | v | +| test.swift:764:8:764:13 | v | test.swift:764:8:764:13 | SSA def(v) | +| test.swift:765:5:765:5 | [post] self | test.swift:764:3:766:3 | self[return] | +| test.swift:765:5:765:5 | self | test.swift:764:3:766:3 | self[return] | +| test.swift:768:8:768:8 | SSA def(self) | test.swift:768:31:768:31 | self | +| test.swift:768:8:768:8 | self | test.swift:768:8:768:8 | SSA def(self) | +| test.swift:768:31:768:31 | [post] self | test.swift:768:3:768:33 | self[return] | +| test.swift:768:31:768:31 | self | test.swift:768:3:768:33 | self[return] | +| test.swift:770:7:770:7 | self | test.swift:770:7:770:7 | SSA def(self) | +| test.swift:770:7:770:7 | self | test.swift:770:7:770:7 | SSA def(self) | +| test.swift:770:7:770:7 | self | test.swift:770:7:770:7 | SSA def(self) | +| test.swift:770:7:770:7 | value | test.swift:770:7:770:7 | SSA def(value) | +| test.swift:774:9:774:9 | SSA def(s1) | test.swift:777:15:777:15 | s1 | +| test.swift:774:9:774:9 | s1 | test.swift:774:9:774:9 | SSA def(s1) | +| test.swift:774:14:774:25 | call to S3.init(_:) | test.swift:774:9:774:9 | s1 | +| test.swift:775:9:775:9 | SSA def(s2) | test.swift:778:15:778:15 | s2 | +| test.swift:775:9:775:9 | s2 | test.swift:775:9:775:9 | SSA def(s2) | +| test.swift:775:14:775:18 | call to S3.init(_:) | test.swift:775:9:775:9 | s2 | +| test.swift:777:15:777:15 | [post] s1 | test.swift:779:15:779:15 | s1 | +| test.swift:777:15:777:15 | s1 | test.swift:779:15:779:15 | s1 | +| test.swift:778:15:778:15 | [post] s2 | test.swift:780:15:780:15 | s2 | +| test.swift:778:15:778:15 | s2 | test.swift:780:15:780:15 | s2 | +| test.swift:779:15:779:15 | [post] s1 | test.swift:782:5:782:5 | s1 | +| test.swift:779:15:779:15 | s1 | test.swift:782:5:782:5 | s1 | +| test.swift:780:15:780:15 | [post] s2 | test.swift:783:5:783:5 | s2 | +| test.swift:780:15:780:15 | s2 | test.swift:783:5:783:5 | s2 | +| test.swift:782:5:782:5 | [post] s1 | test.swift:785:15:785:15 | s1 | +| test.swift:782:5:782:5 | s1 | test.swift:785:15:785:15 | s1 | +| test.swift:783:5:783:5 | [post] s2 | test.swift:786:15:786:15 | s2 | +| test.swift:783:5:783:5 | s2 | test.swift:786:15:786:15 | s2 | +| test.swift:785:15:785:15 | [post] s1 | test.swift:787:15:787:15 | s1 | +| test.swift:785:15:785:15 | s1 | test.swift:787:15:787:15 | s1 | +| test.swift:786:15:786:15 | [post] s2 | test.swift:788:15:788:15 | s2 | +| test.swift:786:15:786:15 | s2 | test.swift:788:15:788:15 | s2 | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/test.swift b/swift/ql/test/library-tests/dataflow/dataflow/test.swift index 44001572dbd..60618063c8d 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/test.swift +++ b/swift/ql/test/library-tests/dataflow/dataflow/test.swift @@ -759,3 +759,31 @@ func testWriteOptional() { sink(arg: mo2!.v2!) // $ MISSING:flow=749 sink(arg: mo2!.v3) // $ MISSING:flow=750 } + +struct S3 { + init(_ v: Int) { + self.v = v + } + + func getv() -> Int { return v } + + var v: Int +} + +func testStruct() { + var s1 = S3(source()) + var s2 = S3(0) + + sink(arg: s1.v) // $ flow=774 + sink(arg: s2.v) + sink(arg: s1.getv()) // $ flow=774 + sink(arg: s2.getv()) + + s1.v = 0 + s2.v = source() + + sink(arg: s1.v) + sink(arg: s2.v) // $ flow=783 + sink(arg: s1.getv()) + sink(arg: s2.getv()) // $ flow=783 +} From 2448bc8ce2bb41a60375ffa5a1df4bde0cad1922 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Wed, 23 Aug 2023 10:46:57 +0200 Subject: [PATCH 080/788] Java: Add new Apache CXF models --- .../lib/ext/org.apache.cxf.catalog.model.yml | 6 + ...rg.apache.cxf.common.classloader.model.yml | 8 + .../ext/org.apache.cxf.common.jaxb.model.yml | 6 + .../org.apache.cxf.common.logging.model.yml | 11 + ...rg.apache.cxf.configuration.jsse.model.yml | 7 + ...org.apache.cxf.feature.transform.model.yml | 8 + .../lib/ext/org.apache.cxf.helpers.model.yml | 15 + .../lib/ext/org.apache.cxf.resource.model.yml | 14 + .../ext/org.apache.cxf.staxutils.model.yml | 6 + ...org.apache.cxf.tools.corba.utils.model.yml | 9 + .../ext/org.apache.cxf.tools.util.model.yml | 15 + .../CWE-022/semmle/tests/TaintedPath.expected | 682 +++++++++++------- .../CWE-022/semmle/tests/mad/Test.java | 74 ++ .../security/CWE-022/semmle/tests/options | 2 +- .../security/CWE-117/LogInjectionTest.java | 17 + .../test/query-tests/security/CWE-117/options | 2 +- .../security/CWE-918/mad/Test.java | 25 +- .../test/query-tests/security/CWE-918/options | 2 +- .../cxf/catalog/OASISCatalogManager.java | 7 + .../common/classloader/ClassLoaderUtils.java | 19 + .../org/apache/cxf/common/jaxb/JAXBUtils.java | 13 + .../apache/cxf/common/logging/LogUtils.java | 20 + .../cxf/configuration/jsse/SSLUtils.java | 7 + .../org/apache/cxf/helpers/FileUtils.java | 65 ++ .../cxf/resource/ExtendedURIResolver.java | 9 + .../org/apache/cxf/resource/URIResolver.java | 13 + .../org/apache/cxf/staxutils/StaxUtils.java | 10 + .../corba/utils/FileOutputStreamFactory.java | 19 + .../corba/utils/OutputStreamFactory.java | 9 + .../apache/cxf/tools/util/FileWriterUtil.java | 30 + .../cxf/tools/util/OutputStreamCreator.java | 11 + 31 files changed, 866 insertions(+), 275 deletions(-) create mode 100644 java/ql/lib/ext/org.apache.cxf.catalog.model.yml create mode 100644 java/ql/lib/ext/org.apache.cxf.common.classloader.model.yml create mode 100644 java/ql/lib/ext/org.apache.cxf.common.jaxb.model.yml create mode 100644 java/ql/lib/ext/org.apache.cxf.common.logging.model.yml create mode 100644 java/ql/lib/ext/org.apache.cxf.configuration.jsse.model.yml create mode 100644 java/ql/lib/ext/org.apache.cxf.feature.transform.model.yml create mode 100644 java/ql/lib/ext/org.apache.cxf.helpers.model.yml create mode 100644 java/ql/lib/ext/org.apache.cxf.resource.model.yml create mode 100644 java/ql/lib/ext/org.apache.cxf.staxutils.model.yml create mode 100644 java/ql/lib/ext/org.apache.cxf.tools.corba.utils.model.yml create mode 100644 java/ql/lib/ext/org.apache.cxf.tools.util.model.yml create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/catalog/OASISCatalogManager.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/common/classloader/ClassLoaderUtils.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/common/jaxb/JAXBUtils.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/common/logging/LogUtils.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/configuration/jsse/SSLUtils.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/helpers/FileUtils.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/resource/ExtendedURIResolver.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/resource/URIResolver.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/staxutils/StaxUtils.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/corba/utils/FileOutputStreamFactory.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/corba/utils/OutputStreamFactory.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/util/FileWriterUtil.java create mode 100644 java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/util/OutputStreamCreator.java diff --git a/java/ql/lib/ext/org.apache.cxf.catalog.model.yml b/java/ql/lib/ext/org.apache.cxf.catalog.model.yml new file mode 100644 index 00000000000..9f453be772f --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.catalog.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.catalog", "OASISCatalogManager", True, "loadCatalog", "(URL)", "", "Argument[0]", "request-forgery", "manual"] diff --git a/java/ql/lib/ext/org.apache.cxf.common.classloader.model.yml b/java/ql/lib/ext/org.apache.cxf.common.classloader.model.yml new file mode 100644 index 00000000000..131d1242fd0 --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.common.classloader.model.yml @@ -0,0 +1,8 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.common.classloader", "ClassLoaderUtils", True, "getResourceAsStream", "(String,Class)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.common.classloader", "ClassLoaderUtils", True, "getURLClassLoader", "(URL[],ClassLoader)", "", "Argument[0]", "request-forgery", "manual"] + - ["org.apache.cxf.common.classloader", "ClassLoaderUtils", True, "getURLClassLoader", "(List,ClassLoader)", "", "Argument[0]", "request-forgery", "manual"] diff --git a/java/ql/lib/ext/org.apache.cxf.common.jaxb.model.yml b/java/ql/lib/ext/org.apache.cxf.common.jaxb.model.yml new file mode 100644 index 00000000000..86fcf9605ed --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.common.jaxb.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.common.jaxb", "JAXBUtils", True, "createFileCodeWriter", "", "", "Argument[0]", "path-injection", "manual"] diff --git a/java/ql/lib/ext/org.apache.cxf.common.logging.model.yml b/java/ql/lib/ext/org.apache.cxf.common.logging.model.yml new file mode 100644 index 00000000000..5bde245534b --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.common.logging.model.yml @@ -0,0 +1,11 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.common.logging", "LogUtils", True, "log", "(Logger,Level,String)", "", "Argument[2]", "log-injection", "manual"] + - ["org.apache.cxf.common.logging", "LogUtils", True, "log", "(Logger,Level,String,Object)", "", "Argument[2]", "log-injection", "manual"] + - ["org.apache.cxf.common.logging", "LogUtils", True, "log", "(Logger,Level,String,Object[])", "", "Argument[2]", "log-injection", "manual"] + - ["org.apache.cxf.common.logging", "LogUtils", True, "log", "(Logger,Level,String,Throwable)", "", "Argument[2]", "log-injection", "manual"] + - ["org.apache.cxf.common.logging", "LogUtils", True, "log", "(Logger,Level,String,Throwable,Object)", "", "Argument[2]", "log-injection", "manual"] + - ["org.apache.cxf.common.logging", "LogUtils", True, "log", "(Logger,Level,String,Throwable,Object[])", "", "Argument[2]", "log-injection", "manual"] diff --git a/java/ql/lib/ext/org.apache.cxf.configuration.jsse.model.yml b/java/ql/lib/ext/org.apache.cxf.configuration.jsse.model.yml new file mode 100644 index 00000000000..590cfbc0b6c --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.configuration.jsse.model.yml @@ -0,0 +1,7 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.configuration.jsse", "SSLUtils", True, "loadFile", "(String)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.configuration.jsse", "TLSClientParameters", True, "setHostnameVerifier", "(HostnameVerifier)", "", "Argument[0]", "hostname-verification", "manual"] diff --git a/java/ql/lib/ext/org.apache.cxf.feature.transform.model.yml b/java/ql/lib/ext/org.apache.cxf.feature.transform.model.yml new file mode 100644 index 00000000000..04bca0634d5 --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.feature.transform.model.yml @@ -0,0 +1,8 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.transform", "XSLTUtils", True, "transform", "(Templates,InputStream)", "", "Argument[0]", "xslt-injection", "manual"] + - ["org.apache.cxf.transform", "XSLTUtils", True, "transform", "(Templates,Reader)", "", "Argument[0]", "xslt-injection", "manual"] + - ["org.apache.cxf.transform", "XSLTUtils", True, "transform", "(Templates,Document)", "", "Argument[0]", "xslt-injection", "manual"] diff --git a/java/ql/lib/ext/org.apache.cxf.helpers.model.yml b/java/ql/lib/ext/org.apache.cxf.helpers.model.yml new file mode 100644 index 00000000000..5e8a29e2b11 --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.helpers.model.yml @@ -0,0 +1,15 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.helpers", "FileUtils", True, "delete", "(File)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.helpers", "FileUtils", True, "delete", "(File,boolean)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.helpers", "FileUtils", True, "mkdir", "(File)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.helpers", "FileUtils", True, "readLines", "(File)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.helpers", "FileUtils", True, "removeDir", "(File)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.helpers", "XPathUtils", True, "getValue", "(String,Node,QName)", "", "Argument[0]", "xpath-injection", "manual"] + - ["org.apache.cxf.helpers", "XPathUtils", True, "getValueList", "(String,Node)", "", "Argument[0]", "xpath-injection", "manual"] + - ["org.apache.cxf.helpers", "XPathUtils", True, "getValueNode", "(String,Node)", "", "Argument[0]", "xpath-injection", "manual"] + - ["org.apache.cxf.helpers", "XPathUtils", True, "getValueString", "(String,Node)", "", "Argument[0]", "xpath-injection", "manual"] + - ["org.apache.cxf.helpers", "XPathUtils", True, "isExist", "(String,Node,QName)", "", "Argument[0]", "xpath-injection", "manual"] diff --git a/java/ql/lib/ext/org.apache.cxf.resource.model.yml b/java/ql/lib/ext/org.apache.cxf.resource.model.yml new file mode 100644 index 00000000000..c73c9a4ac8a --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.resource.model.yml @@ -0,0 +1,14 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.resource", "ExtendedURIResolver", True, "resolve", "(String,String)", "", "Argument[0]", "request-forgery", "manual"] + - ["org.apache.cxf.resource", "ExtendedURIResolver", True, "resolve", "(String,String)", "", "Argument[1]", "path-injection", "manual"] + - ["org.apache.cxf.resource", "URIResolver", True, "URIResolver", "(String)", "", "Argument[0]", "request-forgery", "manual"] + - ["org.apache.cxf.resource", "URIResolver", True, "URIResolver", "(String,String)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.resource", "URIResolver", True, "URIResolver", "(String,String)", "", "Argument[1]", "request-forgery", "manual"] + - ["org.apache.cxf.resource", "URIResolver", True, "URIResolver", "(String,String,Class)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.resource", "URIResolver", True, "URIResolver", "(String,String,Class)", "", "Argument[1]", "request-forgery", "manual"] + - ["org.apache.cxf.resource", "URIResolver", True, "resolve", "(String,String,Class)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.resource", "URIResolver", True, "resolve", "(String,String,Class)", "", "Argument[1]", "request-forgery", "manual"] diff --git a/java/ql/lib/ext/org.apache.cxf.staxutils.model.yml b/java/ql/lib/ext/org.apache.cxf.staxutils.model.yml new file mode 100644 index 00000000000..959fc3d6e82 --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.staxutils.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.staxutils", "StaxUtils", True, "read", "(File)", "", "Argument[0]", "path-injection", "manual"] diff --git a/java/ql/lib/ext/org.apache.cxf.tools.corba.utils.model.yml b/java/ql/lib/ext/org.apache.cxf.tools.corba.utils.model.yml new file mode 100644 index 00000000000..c6bb4c0d90b --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.tools.corba.utils.model.yml @@ -0,0 +1,9 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.tools.corba.utils", "FileOutputStreamFactory", true, "FileOutputStreamFactory", "(String)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.tools.corba.utils", "FileOutputStreamFactory", true, "FileOutputStreamFactory", "(String,FileOutputStreamFactory)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.tools.corba.utils", "OutputStreamFactory", true, "createOutputStream", "(String)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.tools.corba.utils", "OutputStreamFactory", true, "createOutputStream", "(String,String)", "", "Argument[0..1]", "path-injection", "manual"] diff --git a/java/ql/lib/ext/org.apache.cxf.tools.util.model.yml b/java/ql/lib/ext/org.apache.cxf.tools.util.model.yml new file mode 100644 index 00000000000..aeebecb82e3 --- /dev/null +++ b/java/ql/lib/ext/org.apache.cxf.tools.util.model.yml @@ -0,0 +1,15 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.cxf.tools.util", "FileWriterUtil", True, "FileWriterUtil", "(String,OutputStreamCreator)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.tools.util", "FileWriterUtil", True, "buildDir", "(String)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.tools.util", "FileWriterUtil", True, "getFileToWrite", "(String,String)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.tools.util", "FileWriterUtil", True, "getFileToWrite", "(String,String)", "", "Argument[1]", "path-injection", "manual"] + - ["org.apache.cxf.tools.util", "FileWriterUtil", True, "getWriter", "(File,String)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.tools.util", "FileWriterUtil", True, "getWriter", "(String,String)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.tools.util", "FileWriterUtil", True, "getWriter", "(String,String)", "", "Argument[1]", "path-injection", "manual"] + - ["org.apache.cxf.tools.util", "FileWriterUtil", True, "getWriter", "(String,String,String)", "", "Argument[0]", "path-injection", "manual"] + - ["org.apache.cxf.tools.util", "FileWriterUtil", True, "getWriter", "(String,String,String)", "", "Argument[1]", "path-injection", "manual"] + - ["org.apache.cxf.tools.util", "OutputStreamCreator", true, "createOutputStream", "(File)", "", "Argument[0]", "path-injection", "manual"] diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected index 2f9a646f9c1..8ebc5a03a31 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected @@ -19,114 +19,170 @@ edges | Test.java:100:32:100:32 | t : String | Test.java:100:12:100:45 | new URI(...) | | Test.java:100:32:100:32 | t : String | Test.java:101:41:101:41 | t : String | | Test.java:101:41:101:41 | t : String | Test.java:101:12:101:54 | new URI(...) | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:35:61:35:68 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:37:41:37:48 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:39:56:39:63 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:41:46:41:53 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:43:38:43:45 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:45:36:45:43 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:47:31:47:38 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:49:33:49:40 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:51:27:51:34 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:53:27:53:34 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:55:40:55:47 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:57:47:57:54 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:59:40:59:47 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:61:38:61:45 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:63:33:63:40 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:65:33:65:40 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:67:41:67:48 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:69:42:69:49 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:71:37:71:44 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:73:29:73:36 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:75:37:75:44 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:77:28:77:35 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:79:33:79:40 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:81:40:81:47 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:83:40:83:47 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:84:40:84:47 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:86:38:86:45 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:88:28:88:35 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:89:28:89:35 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:90:28:90:35 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:92:34:92:41 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:93:34:93:41 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:95:33:95:40 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:97:42:97:49 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:99:50:99:57 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:101:54:101:61 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:103:50:103:57 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:105:35:105:42 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:107:48:107:55 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:109:37:109:44 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:111:35:111:42 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:116:37:116:44 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:118:74:118:81 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:120:68:120:75 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:122:68:122:75 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:124:30:124:37 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:129:30:129:37 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:134:33:134:40 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:136:27:136:34 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:138:28:138:35 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:140:29:140:36 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:145:27:145:34 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:147:26:147:33 | source(...) : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:152:29:152:36 | source(...) : String | -| mad/Test.java:35:61:35:68 | source(...) : String | mad/Test.java:35:52:35:68 | (...)... | -| mad/Test.java:37:41:37:48 | source(...) : String | mad/Test.java:37:32:37:48 | (...)... | -| mad/Test.java:39:56:39:63 | source(...) : String | mad/Test.java:39:47:39:63 | (...)... | -| mad/Test.java:41:46:41:53 | source(...) : String | mad/Test.java:41:39:41:53 | (...)... | -| mad/Test.java:43:38:43:45 | source(...) : String | mad/Test.java:43:31:43:45 | (...)... | -| mad/Test.java:45:36:45:43 | source(...) : String | mad/Test.java:45:29:45:43 | (...)... | -| mad/Test.java:47:31:47:38 | source(...) : String | mad/Test.java:47:24:47:38 | (...)... | -| mad/Test.java:49:33:49:40 | source(...) : String | mad/Test.java:49:24:49:40 | (...)... | -| mad/Test.java:51:27:51:34 | source(...) : String | mad/Test.java:51:20:51:34 | (...)... | -| mad/Test.java:53:27:53:34 | source(...) : String | mad/Test.java:53:20:53:34 | (...)... | -| mad/Test.java:55:40:55:47 | source(...) : String | mad/Test.java:55:33:55:47 | (...)... | -| mad/Test.java:57:47:57:54 | source(...) : String | mad/Test.java:57:40:57:54 | (...)... | -| mad/Test.java:59:40:59:47 | source(...) : String | mad/Test.java:59:33:59:47 | (...)... | -| mad/Test.java:61:38:61:45 | source(...) : String | mad/Test.java:61:31:61:45 | (...)... | -| mad/Test.java:63:33:63:40 | source(...) : String | mad/Test.java:63:26:63:40 | (...)... | -| mad/Test.java:65:33:65:40 | source(...) : String | mad/Test.java:65:26:65:40 | (...)... | -| mad/Test.java:67:41:67:48 | source(...) : String | mad/Test.java:67:34:67:48 | (...)... | -| mad/Test.java:69:42:69:49 | source(...) : String | mad/Test.java:69:35:69:49 | (...)... | -| mad/Test.java:71:37:71:44 | source(...) : String | mad/Test.java:71:30:71:44 | (...)... | -| mad/Test.java:73:29:73:36 | source(...) : String | mad/Test.java:73:22:73:36 | (...)... | -| mad/Test.java:75:37:75:44 | source(...) : String | mad/Test.java:75:30:75:44 | (...)... | -| mad/Test.java:77:28:77:35 | source(...) : String | mad/Test.java:77:21:77:35 | (...)... | -| mad/Test.java:79:33:79:40 | source(...) : String | mad/Test.java:79:26:79:40 | (...)... | -| mad/Test.java:81:40:81:47 | source(...) : String | mad/Test.java:81:33:81:47 | (...)... | -| mad/Test.java:83:40:83:47 | source(...) : String | mad/Test.java:83:33:83:47 | (...)... | -| mad/Test.java:84:40:84:47 | source(...) : String | mad/Test.java:84:33:84:47 | (...)... | -| mad/Test.java:86:38:86:45 | source(...) : String | mad/Test.java:86:31:86:45 | (...)... | -| mad/Test.java:88:28:88:35 | source(...) : String | mad/Test.java:88:21:88:35 | (...)... | -| mad/Test.java:89:28:89:35 | source(...) : String | mad/Test.java:89:21:89:35 | (...)... | -| mad/Test.java:90:28:90:35 | source(...) : String | mad/Test.java:90:21:90:35 | (...)... | -| mad/Test.java:92:34:92:41 | source(...) : String | mad/Test.java:92:27:92:41 | (...)... | -| mad/Test.java:93:34:93:41 | source(...) : String | mad/Test.java:93:27:93:41 | (...)... | -| mad/Test.java:95:33:95:40 | source(...) : String | mad/Test.java:95:26:95:40 | (...)... | -| mad/Test.java:97:42:97:49 | source(...) : String | mad/Test.java:97:35:97:49 | (...)... | -| mad/Test.java:99:50:99:57 | source(...) : String | mad/Test.java:99:41:99:57 | (...)... | -| mad/Test.java:101:54:101:61 | source(...) : String | mad/Test.java:101:45:101:61 | (...)... | -| mad/Test.java:103:50:103:57 | source(...) : String | mad/Test.java:103:43:103:57 | (...)... | -| mad/Test.java:105:35:105:42 | source(...) : String | mad/Test.java:105:28:105:42 | (...)... | -| mad/Test.java:107:48:107:55 | source(...) : String | mad/Test.java:107:41:107:55 | (...)... | -| mad/Test.java:109:37:109:44 | source(...) : String | mad/Test.java:109:28:109:44 | (...)... | -| mad/Test.java:111:35:111:42 | source(...) : String | mad/Test.java:111:28:111:42 | (...)... | -| mad/Test.java:116:37:116:44 | source(...) : String | mad/Test.java:116:30:116:44 | (...)... | -| mad/Test.java:118:74:118:81 | source(...) : String | mad/Test.java:118:40:118:81 | (...)... | -| mad/Test.java:120:68:120:75 | source(...) : String | mad/Test.java:120:34:120:75 | (...)... | -| mad/Test.java:122:68:122:75 | source(...) : String | mad/Test.java:122:34:122:75 | (...)... | -| mad/Test.java:124:30:124:37 | source(...) : String | mad/Test.java:124:23:124:37 | (...)... | -| mad/Test.java:129:30:129:37 | source(...) : String | mad/Test.java:129:23:129:37 | (...)... | -| mad/Test.java:134:33:134:40 | source(...) : String | mad/Test.java:134:23:134:40 | (...)... | -| mad/Test.java:136:27:136:34 | source(...) : String | mad/Test.java:136:20:136:34 | (...)... | -| mad/Test.java:138:28:138:35 | source(...) : String | mad/Test.java:138:21:138:35 | (...)... | -| mad/Test.java:140:29:140:36 | source(...) : String | mad/Test.java:140:22:140:36 | (...)... | -| mad/Test.java:145:27:145:34 | source(...) : String | mad/Test.java:145:20:145:34 | (...)... | -| mad/Test.java:147:26:147:33 | source(...) : String | mad/Test.java:147:19:147:33 | (...)... | -| mad/Test.java:152:29:152:36 | source(...) : String | mad/Test.java:152:20:152:36 | (...)... | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:45:61:45:68 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:47:41:47:48 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:49:56:49:63 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:51:46:51:53 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:53:38:53:45 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:55:36:55:43 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:57:31:57:38 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:59:33:59:40 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:61:27:61:34 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:63:27:63:34 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:65:40:65:47 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:67:47:67:54 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:69:40:69:47 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:71:38:71:45 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:73:33:73:40 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:75:33:75:40 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:77:41:77:48 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:79:42:79:49 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:81:37:81:44 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:83:29:83:36 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:85:37:85:44 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:87:28:87:35 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:89:33:89:40 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:91:40:91:47 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:93:40:93:47 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:94:40:94:47 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:96:38:96:45 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:98:28:98:35 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:99:28:99:35 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:100:28:100:35 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:102:34:102:41 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:103:34:103:41 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:105:33:105:40 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:107:42:107:49 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:109:50:109:57 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:111:54:111:61 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:113:50:113:57 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:115:35:115:42 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:117:48:117:55 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:119:37:119:44 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:121:35:121:42 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:123:55:123:62 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:125:47:125:54 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:127:47:127:54 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:131:35:131:42 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:135:56:135:63 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:137:56:137:63 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:141:59:141:66 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:143:59:143:66 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:145:58:145:65 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:147:34:147:41 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:149:34:149:41 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:151:44:151:51 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:153:31:153:38 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:155:46:155:53 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:157:46:157:53 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:159:67:159:74 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:161:67:161:74 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:163:73:163:80 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:166:37:166:44 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:168:48:168:55 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:170:54:170:61 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:172:69:172:76 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:174:47:174:54 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:176:49:176:56 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:178:64:178:71 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:180:49:180:56 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:182:64:182:71 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:184:61:184:68 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:190:37:190:44 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:192:74:192:81 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:194:68:194:75 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:196:68:196:75 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:198:30:198:37 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:203:30:203:37 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:208:33:208:40 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:210:27:210:34 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:212:28:212:35 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:214:29:214:36 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:219:27:219:34 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:221:26:221:33 | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:226:29:226:36 | source(...) : String | +| mad/Test.java:45:61:45:68 | source(...) : String | mad/Test.java:45:52:45:68 | (...)... | +| mad/Test.java:47:41:47:48 | source(...) : String | mad/Test.java:47:32:47:48 | (...)... | +| mad/Test.java:49:56:49:63 | source(...) : String | mad/Test.java:49:47:49:63 | (...)... | +| mad/Test.java:51:46:51:53 | source(...) : String | mad/Test.java:51:39:51:53 | (...)... | +| mad/Test.java:53:38:53:45 | source(...) : String | mad/Test.java:53:31:53:45 | (...)... | +| mad/Test.java:55:36:55:43 | source(...) : String | mad/Test.java:55:29:55:43 | (...)... | +| mad/Test.java:57:31:57:38 | source(...) : String | mad/Test.java:57:24:57:38 | (...)... | +| mad/Test.java:59:33:59:40 | source(...) : String | mad/Test.java:59:24:59:40 | (...)... | +| mad/Test.java:61:27:61:34 | source(...) : String | mad/Test.java:61:20:61:34 | (...)... | +| mad/Test.java:63:27:63:34 | source(...) : String | mad/Test.java:63:20:63:34 | (...)... | +| mad/Test.java:65:40:65:47 | source(...) : String | mad/Test.java:65:33:65:47 | (...)... | +| mad/Test.java:67:47:67:54 | source(...) : String | mad/Test.java:67:40:67:54 | (...)... | +| mad/Test.java:69:40:69:47 | source(...) : String | mad/Test.java:69:33:69:47 | (...)... | +| mad/Test.java:71:38:71:45 | source(...) : String | mad/Test.java:71:31:71:45 | (...)... | +| mad/Test.java:73:33:73:40 | source(...) : String | mad/Test.java:73:26:73:40 | (...)... | +| mad/Test.java:75:33:75:40 | source(...) : String | mad/Test.java:75:26:75:40 | (...)... | +| mad/Test.java:77:41:77:48 | source(...) : String | mad/Test.java:77:34:77:48 | (...)... | +| mad/Test.java:79:42:79:49 | source(...) : String | mad/Test.java:79:35:79:49 | (...)... | +| mad/Test.java:81:37:81:44 | source(...) : String | mad/Test.java:81:30:81:44 | (...)... | +| mad/Test.java:83:29:83:36 | source(...) : String | mad/Test.java:83:22:83:36 | (...)... | +| mad/Test.java:85:37:85:44 | source(...) : String | mad/Test.java:85:30:85:44 | (...)... | +| mad/Test.java:87:28:87:35 | source(...) : String | mad/Test.java:87:21:87:35 | (...)... | +| mad/Test.java:89:33:89:40 | source(...) : String | mad/Test.java:89:26:89:40 | (...)... | +| mad/Test.java:91:40:91:47 | source(...) : String | mad/Test.java:91:33:91:47 | (...)... | +| mad/Test.java:93:40:93:47 | source(...) : String | mad/Test.java:93:33:93:47 | (...)... | +| mad/Test.java:94:40:94:47 | source(...) : String | mad/Test.java:94:33:94:47 | (...)... | +| mad/Test.java:96:38:96:45 | source(...) : String | mad/Test.java:96:31:96:45 | (...)... | +| mad/Test.java:98:28:98:35 | source(...) : String | mad/Test.java:98:21:98:35 | (...)... | +| mad/Test.java:99:28:99:35 | source(...) : String | mad/Test.java:99:21:99:35 | (...)... | +| mad/Test.java:100:28:100:35 | source(...) : String | mad/Test.java:100:21:100:35 | (...)... | +| mad/Test.java:102:34:102:41 | source(...) : String | mad/Test.java:102:27:102:41 | (...)... | +| mad/Test.java:103:34:103:41 | source(...) : String | mad/Test.java:103:27:103:41 | (...)... | +| mad/Test.java:105:33:105:40 | source(...) : String | mad/Test.java:105:26:105:40 | (...)... | +| mad/Test.java:107:42:107:49 | source(...) : String | mad/Test.java:107:35:107:49 | (...)... | +| mad/Test.java:109:50:109:57 | source(...) : String | mad/Test.java:109:41:109:57 | (...)... | +| mad/Test.java:111:54:111:61 | source(...) : String | mad/Test.java:111:45:111:61 | (...)... | +| mad/Test.java:113:50:113:57 | source(...) : String | mad/Test.java:113:43:113:57 | (...)... | +| mad/Test.java:115:35:115:42 | source(...) : String | mad/Test.java:115:28:115:42 | (...)... | +| mad/Test.java:117:48:117:55 | source(...) : String | mad/Test.java:117:41:117:55 | (...)... | +| mad/Test.java:119:37:119:44 | source(...) : String | mad/Test.java:119:28:119:44 | (...)... | +| mad/Test.java:121:35:121:42 | source(...) : String | mad/Test.java:121:28:121:42 | (...)... | +| mad/Test.java:123:55:123:62 | source(...) : String | mad/Test.java:123:46:123:62 | (...)... | +| mad/Test.java:125:47:125:54 | source(...) : String | mad/Test.java:125:40:125:54 | (...)... | +| mad/Test.java:127:47:127:54 | source(...) : String | mad/Test.java:127:40:127:54 | (...)... | +| mad/Test.java:131:35:131:42 | source(...) : String | mad/Test.java:131:26:131:42 | (...)... | +| mad/Test.java:135:56:135:63 | source(...) : String | mad/Test.java:135:49:135:63 | (...)... | +| mad/Test.java:137:56:137:63 | source(...) : String | mad/Test.java:137:49:137:63 | (...)... | +| mad/Test.java:141:59:141:66 | source(...) : String | mad/Test.java:141:52:141:66 | (...)... | +| mad/Test.java:143:59:143:66 | source(...) : String | mad/Test.java:143:52:143:66 | (...)... | +| mad/Test.java:145:58:145:65 | source(...) : String | mad/Test.java:145:49:145:65 | (...)... | +| mad/Test.java:147:34:147:41 | source(...) : String | mad/Test.java:147:25:147:41 | (...)... | +| mad/Test.java:149:34:149:41 | source(...) : String | mad/Test.java:149:25:149:41 | (...)... | +| mad/Test.java:151:44:151:51 | source(...) : String | mad/Test.java:151:35:151:51 | (...)... | +| mad/Test.java:153:31:153:38 | source(...) : String | mad/Test.java:153:24:153:38 | (...)... | +| mad/Test.java:155:46:155:53 | source(...) : String | mad/Test.java:155:37:155:53 | (...)... | +| mad/Test.java:157:46:157:53 | source(...) : String | mad/Test.java:157:37:157:53 | (...)... | +| mad/Test.java:159:67:159:74 | source(...) : String | mad/Test.java:159:58:159:74 | (...)... | +| mad/Test.java:161:67:161:74 | source(...) : String | mad/Test.java:161:58:161:74 | (...)... | +| mad/Test.java:163:73:163:80 | source(...) : String | mad/Test.java:163:64:163:80 | (...)... | +| mad/Test.java:166:37:166:44 | source(...) : String | mad/Test.java:166:28:166:44 | (...)... | +| mad/Test.java:168:48:168:55 | source(...) : String | mad/Test.java:168:39:168:55 | (...)... | +| mad/Test.java:170:54:170:61 | source(...) : String | mad/Test.java:170:45:170:61 | (...)... | +| mad/Test.java:172:69:172:76 | source(...) : String | mad/Test.java:172:60:172:76 | (...)... | +| mad/Test.java:174:47:174:54 | source(...) : String | mad/Test.java:174:40:174:54 | (...)... | +| mad/Test.java:176:49:176:56 | source(...) : String | mad/Test.java:176:40:176:56 | (...)... | +| mad/Test.java:178:64:178:71 | source(...) : String | mad/Test.java:178:55:178:71 | (...)... | +| mad/Test.java:180:49:180:56 | source(...) : String | mad/Test.java:180:40:180:56 | (...)... | +| mad/Test.java:182:64:182:71 | source(...) : String | mad/Test.java:182:55:182:71 | (...)... | +| mad/Test.java:184:61:184:68 | source(...) : String | mad/Test.java:184:54:184:68 | (...)... | +| mad/Test.java:190:37:190:44 | source(...) : String | mad/Test.java:190:30:190:44 | (...)... | +| mad/Test.java:192:74:192:81 | source(...) : String | mad/Test.java:192:40:192:81 | (...)... | +| mad/Test.java:194:68:194:75 | source(...) : String | mad/Test.java:194:34:194:75 | (...)... | +| mad/Test.java:196:68:196:75 | source(...) : String | mad/Test.java:196:34:196:75 | (...)... | +| mad/Test.java:198:30:198:37 | source(...) : String | mad/Test.java:198:23:198:37 | (...)... | +| mad/Test.java:203:30:203:37 | source(...) : String | mad/Test.java:203:23:203:37 | (...)... | +| mad/Test.java:208:33:208:40 | source(...) : String | mad/Test.java:208:23:208:40 | (...)... | +| mad/Test.java:210:27:210:34 | source(...) : String | mad/Test.java:210:20:210:34 | (...)... | +| mad/Test.java:212:28:212:35 | source(...) : String | mad/Test.java:212:21:212:35 | (...)... | +| mad/Test.java:214:29:214:36 | source(...) : String | mad/Test.java:214:22:214:36 | (...)... | +| mad/Test.java:219:27:219:34 | source(...) : String | mad/Test.java:219:20:219:34 | (...)... | +| mad/Test.java:221:26:221:33 | source(...) : String | mad/Test.java:221:19:221:33 | (...)... | +| mad/Test.java:226:29:226:36 | source(...) : String | mad/Test.java:226:20:226:36 | (...)... | nodes | Test.java:19:18:19:38 | getHostName(...) : String | semmle.label | getHostName(...) : String | | Test.java:24:20:24:23 | temp | semmle.label | temp | @@ -152,115 +208,171 @@ nodes | Test.java:100:32:100:32 | t : String | semmle.label | t : String | | Test.java:101:12:101:54 | new URI(...) | semmle.label | new URI(...) | | Test.java:101:41:101:41 | t : String | semmle.label | t : String | -| mad/Test.java:30:16:30:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | -| mad/Test.java:35:52:35:68 | (...)... | semmle.label | (...)... | -| mad/Test.java:35:61:35:68 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:37:32:37:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:37:41:37:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:39:47:39:63 | (...)... | semmle.label | (...)... | -| mad/Test.java:39:56:39:63 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:41:39:41:53 | (...)... | semmle.label | (...)... | -| mad/Test.java:41:46:41:53 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:43:31:43:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:43:38:43:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:45:29:45:43 | (...)... | semmle.label | (...)... | -| mad/Test.java:45:36:45:43 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:47:24:47:38 | (...)... | semmle.label | (...)... | -| mad/Test.java:47:31:47:38 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:49:24:49:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:49:33:49:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:51:20:51:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:51:27:51:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:53:20:53:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:53:27:53:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:55:33:55:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:55:40:55:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:57:40:57:54 | (...)... | semmle.label | (...)... | -| mad/Test.java:57:47:57:54 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:59:33:59:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:59:40:59:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:61:31:61:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:61:38:61:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:63:26:63:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:63:33:63:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:65:26:65:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:65:33:65:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:67:34:67:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:67:41:67:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:69:35:69:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:69:42:69:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:71:30:71:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:71:37:71:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:73:22:73:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:73:29:73:36 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:75:30:75:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:75:37:75:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:77:21:77:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:77:28:77:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:79:26:79:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:79:33:79:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:81:33:81:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:81:40:81:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:83:33:83:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:83:40:83:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:84:33:84:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:84:40:84:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:86:31:86:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:86:38:86:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:88:21:88:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:88:28:88:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:89:21:89:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:89:28:89:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:90:21:90:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:90:28:90:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:92:27:92:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:92:34:92:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:93:27:93:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:93:34:93:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:95:26:95:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:95:33:95:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:97:35:97:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:97:42:97:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:99:41:99:57 | (...)... | semmle.label | (...)... | -| mad/Test.java:99:50:99:57 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:101:45:101:61 | (...)... | semmle.label | (...)... | -| mad/Test.java:101:54:101:61 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:103:43:103:57 | (...)... | semmle.label | (...)... | -| mad/Test.java:103:50:103:57 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:105:28:105:42 | (...)... | semmle.label | (...)... | -| mad/Test.java:105:35:105:42 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:107:41:107:55 | (...)... | semmle.label | (...)... | -| mad/Test.java:107:48:107:55 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:109:28:109:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:109:37:109:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:111:28:111:42 | (...)... | semmle.label | (...)... | -| mad/Test.java:111:35:111:42 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:116:30:116:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:116:37:116:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:118:40:118:81 | (...)... | semmle.label | (...)... | -| mad/Test.java:118:74:118:81 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:120:34:120:75 | (...)... | semmle.label | (...)... | -| mad/Test.java:120:68:120:75 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:122:34:122:75 | (...)... | semmle.label | (...)... | -| mad/Test.java:122:68:122:75 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:124:23:124:37 | (...)... | semmle.label | (...)... | -| mad/Test.java:124:30:124:37 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:129:23:129:37 | (...)... | semmle.label | (...)... | -| mad/Test.java:129:30:129:37 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:134:23:134:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:134:33:134:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:136:20:136:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:136:27:136:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:138:21:138:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:138:28:138:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:140:22:140:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:140:29:140:36 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:145:20:145:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:145:27:145:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:147:19:147:33 | (...)... | semmle.label | (...)... | -| mad/Test.java:147:26:147:33 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:152:20:152:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:152:29:152:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:40:16:40:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | +| mad/Test.java:45:52:45:68 | (...)... | semmle.label | (...)... | +| mad/Test.java:45:61:45:68 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:47:32:47:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:47:41:47:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:49:47:49:63 | (...)... | semmle.label | (...)... | +| mad/Test.java:49:56:49:63 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:51:39:51:53 | (...)... | semmle.label | (...)... | +| mad/Test.java:51:46:51:53 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:53:31:53:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:53:38:53:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:55:29:55:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:55:36:55:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:57:24:57:38 | (...)... | semmle.label | (...)... | +| mad/Test.java:57:31:57:38 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:59:24:59:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:59:33:59:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:61:20:61:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:61:27:61:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:63:20:63:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:63:27:63:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:65:33:65:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:65:40:65:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:67:40:67:54 | (...)... | semmle.label | (...)... | +| mad/Test.java:67:47:67:54 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:69:33:69:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:69:40:69:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:71:31:71:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:71:38:71:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:73:26:73:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:73:33:73:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:75:26:75:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:75:33:75:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:77:34:77:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:77:41:77:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:79:35:79:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:79:42:79:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:81:30:81:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:81:37:81:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:83:22:83:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:83:29:83:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:85:30:85:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:85:37:85:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:87:21:87:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:87:28:87:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:89:26:89:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:89:33:89:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:91:33:91:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:91:40:91:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:93:33:93:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:93:40:93:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:94:33:94:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:94:40:94:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:96:31:96:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:96:38:96:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:98:21:98:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:98:28:98:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:99:21:99:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:99:28:99:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:100:21:100:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:100:28:100:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:102:27:102:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:102:34:102:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:103:27:103:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:103:34:103:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:105:26:105:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:105:33:105:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:107:35:107:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:107:42:107:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:109:41:109:57 | (...)... | semmle.label | (...)... | +| mad/Test.java:109:50:109:57 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:111:45:111:61 | (...)... | semmle.label | (...)... | +| mad/Test.java:111:54:111:61 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:113:43:113:57 | (...)... | semmle.label | (...)... | +| mad/Test.java:113:50:113:57 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:115:28:115:42 | (...)... | semmle.label | (...)... | +| mad/Test.java:115:35:115:42 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:117:41:117:55 | (...)... | semmle.label | (...)... | +| mad/Test.java:117:48:117:55 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:119:28:119:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:119:37:119:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:121:28:121:42 | (...)... | semmle.label | (...)... | +| mad/Test.java:121:35:121:42 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:123:46:123:62 | (...)... | semmle.label | (...)... | +| mad/Test.java:123:55:123:62 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:125:40:125:54 | (...)... | semmle.label | (...)... | +| mad/Test.java:125:47:125:54 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:127:40:127:54 | (...)... | semmle.label | (...)... | +| mad/Test.java:127:47:127:54 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:131:26:131:42 | (...)... | semmle.label | (...)... | +| mad/Test.java:131:35:131:42 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:135:49:135:63 | (...)... | semmle.label | (...)... | +| mad/Test.java:135:56:135:63 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:137:49:137:63 | (...)... | semmle.label | (...)... | +| mad/Test.java:137:56:137:63 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:141:52:141:66 | (...)... | semmle.label | (...)... | +| mad/Test.java:141:59:141:66 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:143:52:143:66 | (...)... | semmle.label | (...)... | +| mad/Test.java:143:59:143:66 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:145:49:145:65 | (...)... | semmle.label | (...)... | +| mad/Test.java:145:58:145:65 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:147:25:147:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:147:34:147:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:149:25:149:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:149:34:149:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:151:35:151:51 | (...)... | semmle.label | (...)... | +| mad/Test.java:151:44:151:51 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:153:24:153:38 | (...)... | semmle.label | (...)... | +| mad/Test.java:153:31:153:38 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:155:37:155:53 | (...)... | semmle.label | (...)... | +| mad/Test.java:155:46:155:53 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:157:37:157:53 | (...)... | semmle.label | (...)... | +| mad/Test.java:157:46:157:53 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:159:58:159:74 | (...)... | semmle.label | (...)... | +| mad/Test.java:159:67:159:74 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:161:58:161:74 | (...)... | semmle.label | (...)... | +| mad/Test.java:161:67:161:74 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:163:64:163:80 | (...)... | semmle.label | (...)... | +| mad/Test.java:163:73:163:80 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:166:28:166:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:166:37:166:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:168:39:168:55 | (...)... | semmle.label | (...)... | +| mad/Test.java:168:48:168:55 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:170:45:170:61 | (...)... | semmle.label | (...)... | +| mad/Test.java:170:54:170:61 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:172:60:172:76 | (...)... | semmle.label | (...)... | +| mad/Test.java:172:69:172:76 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:174:40:174:54 | (...)... | semmle.label | (...)... | +| mad/Test.java:174:47:174:54 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:176:40:176:56 | (...)... | semmle.label | (...)... | +| mad/Test.java:176:49:176:56 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:178:55:178:71 | (...)... | semmle.label | (...)... | +| mad/Test.java:178:64:178:71 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:180:40:180:56 | (...)... | semmle.label | (...)... | +| mad/Test.java:180:49:180:56 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:182:55:182:71 | (...)... | semmle.label | (...)... | +| mad/Test.java:182:64:182:71 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:184:54:184:68 | (...)... | semmle.label | (...)... | +| mad/Test.java:184:61:184:68 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:190:30:190:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:190:37:190:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:192:40:192:81 | (...)... | semmle.label | (...)... | +| mad/Test.java:192:74:192:81 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:194:34:194:75 | (...)... | semmle.label | (...)... | +| mad/Test.java:194:68:194:75 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:196:34:196:75 | (...)... | semmle.label | (...)... | +| mad/Test.java:196:68:196:75 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:198:23:198:37 | (...)... | semmle.label | (...)... | +| mad/Test.java:198:30:198:37 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:203:23:203:37 | (...)... | semmle.label | (...)... | +| mad/Test.java:203:30:203:37 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:208:23:208:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:208:33:208:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:210:20:210:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:210:27:210:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:212:21:212:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:212:28:212:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:214:22:214:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:214:29:214:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:219:20:219:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:219:27:219:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:221:19:221:33 | (...)... | semmle.label | (...)... | +| mad/Test.java:221:26:221:33 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:226:20:226:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:226:29:226:36 | source(...) : String | semmle.label | source(...) : String | subpaths #select | Test.java:24:11:24:24 | new File(...) | Test.java:19:18:19:38 | getHostName(...) : String | Test.java:24:20:24:23 | temp | This path depends on a $@. | Test.java:19:18:19:38 | getHostName(...) | user-provided value | @@ -274,57 +386,85 @@ subpaths | Test.java:99:3:99:34 | new File(...) | Test.java:95:14:95:34 | getHostName(...) : String | Test.java:99:12:99:33 | new URI(...) | This path depends on a $@. | Test.java:95:14:95:34 | getHostName(...) | user-provided value | | Test.java:100:3:100:46 | new File(...) | Test.java:95:14:95:34 | getHostName(...) : String | Test.java:100:12:100:45 | new URI(...) | This path depends on a $@. | Test.java:95:14:95:34 | getHostName(...) | user-provided value | | Test.java:101:3:101:55 | new File(...) | Test.java:95:14:95:34 | getHostName(...) : String | Test.java:101:12:101:54 | new URI(...) | This path depends on a $@. | Test.java:95:14:95:34 | getHostName(...) | user-provided value | -| mad/Test.java:35:52:35:68 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:35:52:35:68 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:37:32:37:48 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:37:32:37:48 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:39:47:39:63 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:39:47:39:63 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:41:39:41:53 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:41:39:41:53 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:43:31:43:45 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:43:31:43:45 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:45:29:45:43 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:45:29:45:43 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:47:24:47:38 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:47:24:47:38 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:49:9:49:41 | new FileReader(...) | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:49:24:49:40 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:51:20:51:34 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:51:20:51:34 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:53:20:53:34 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:53:20:53:34 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:55:33:55:47 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:55:33:55:47 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:57:40:57:54 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:57:40:57:54 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:59:33:59:47 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:59:33:59:47 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:61:31:61:45 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:61:31:61:45 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:63:26:63:40 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:63:26:63:40 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:65:26:65:40 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:65:26:65:40 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:67:34:67:48 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:67:34:67:48 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:69:35:69:49 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:69:35:69:49 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:71:30:71:44 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:71:30:71:44 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:73:22:73:36 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:73:22:73:36 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:75:30:75:44 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:75:30:75:44 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:77:21:77:35 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:77:21:77:35 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:79:26:79:40 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:79:26:79:40 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:81:33:81:47 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:81:33:81:47 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:83:33:83:47 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:83:33:83:47 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:84:33:84:47 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:84:33:84:47 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:86:31:86:45 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:86:31:86:45 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:88:21:88:35 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:88:21:88:35 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:89:21:89:35 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:89:21:89:35 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:90:21:90:35 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:90:21:90:35 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:92:27:92:41 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:92:27:92:41 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:93:27:93:41 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:93:27:93:41 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:95:26:95:40 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:95:26:95:40 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:97:35:97:49 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:97:35:97:49 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:99:41:99:57 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:99:41:99:57 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:101:45:101:61 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:101:45:101:61 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:103:43:103:57 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:103:43:103:57 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:105:28:105:42 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:105:28:105:42 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:107:41:107:55 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:107:41:107:55 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:109:28:109:44 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:109:28:109:44 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:111:28:111:42 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:111:28:111:42 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:116:30:116:44 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:116:30:116:44 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:118:40:118:81 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:118:40:118:81 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:120:34:120:75 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:120:34:120:75 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:122:34:122:75 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:122:34:122:75 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:124:23:124:37 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:124:23:124:37 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:129:23:129:37 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:129:23:129:37 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:134:23:134:40 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:134:23:134:40 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:136:20:136:34 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:136:20:136:34 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:138:21:138:35 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:138:21:138:35 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:140:22:140:36 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:140:22:140:36 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:145:20:145:34 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:145:20:145:34 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:147:19:147:33 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:147:19:147:33 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | -| mad/Test.java:152:20:152:36 | (...)... | mad/Test.java:30:16:30:36 | getHostName(...) : String | mad/Test.java:152:20:152:36 | (...)... | This path depends on a $@. | mad/Test.java:30:16:30:36 | getHostName(...) | user-provided value | +| mad/Test.java:45:52:45:68 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:45:52:45:68 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:47:32:47:48 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:47:32:47:48 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:49:47:49:63 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:49:47:49:63 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:51:39:51:53 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:51:39:51:53 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:53:31:53:45 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:53:31:53:45 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:55:29:55:43 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:55:29:55:43 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:57:24:57:38 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:57:24:57:38 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:59:9:59:41 | new FileReader(...) | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:59:24:59:40 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:61:20:61:34 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:61:20:61:34 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:63:20:63:34 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:63:20:63:34 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:65:33:65:47 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:65:33:65:47 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:67:40:67:54 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:67:40:67:54 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:69:33:69:47 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:69:33:69:47 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:71:31:71:45 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:71:31:71:45 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:73:26:73:40 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:73:26:73:40 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:75:26:75:40 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:75:26:75:40 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:77:34:77:48 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:77:34:77:48 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:79:35:79:49 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:79:35:79:49 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:81:30:81:44 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:81:30:81:44 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:83:22:83:36 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:83:22:83:36 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:85:30:85:44 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:85:30:85:44 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:87:21:87:35 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:87:21:87:35 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:89:26:89:40 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:89:26:89:40 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:91:33:91:47 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:91:33:91:47 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:93:33:93:47 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:93:33:93:47 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:94:33:94:47 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:94:33:94:47 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:96:31:96:45 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:96:31:96:45 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:98:21:98:35 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:98:21:98:35 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:99:21:99:35 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:99:21:99:35 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:100:21:100:35 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:100:21:100:35 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:102:27:102:41 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:102:27:102:41 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:103:27:103:41 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:103:27:103:41 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:105:26:105:40 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:105:26:105:40 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:107:35:107:49 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:107:35:107:49 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:109:41:109:57 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:109:41:109:57 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:111:45:111:61 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:111:45:111:61 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:113:43:113:57 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:113:43:113:57 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:115:28:115:42 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:115:28:115:42 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:117:41:117:55 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:117:41:117:55 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:119:28:119:44 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:119:28:119:44 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:121:28:121:42 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:121:28:121:42 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:123:46:123:62 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:123:46:123:62 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:125:40:125:54 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:125:40:125:54 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:127:40:127:54 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:127:40:127:54 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:131:26:131:42 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:131:26:131:42 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:135:49:135:63 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:135:49:135:63 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:137:49:137:63 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:137:49:137:63 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:141:52:141:66 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:141:52:141:66 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:143:52:143:66 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:143:52:143:66 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:145:49:145:65 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:145:49:145:65 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:147:25:147:41 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:147:25:147:41 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:149:25:149:41 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:149:25:149:41 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:151:35:151:51 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:151:35:151:51 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:153:24:153:38 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:153:24:153:38 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:155:37:155:53 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:155:37:155:53 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:157:37:157:53 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:157:37:157:53 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:159:58:159:74 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:159:58:159:74 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:161:58:161:74 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:161:58:161:74 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:163:64:163:80 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:163:64:163:80 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:166:28:166:44 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:166:28:166:44 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:168:39:168:55 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:168:39:168:55 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:170:45:170:61 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:170:45:170:61 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:172:60:172:76 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:172:60:172:76 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:174:40:174:54 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:174:40:174:54 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:176:40:176:56 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:176:40:176:56 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:178:55:178:71 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:178:55:178:71 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:180:40:180:56 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:180:40:180:56 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:182:55:182:71 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:182:55:182:71 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:184:54:184:68 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:184:54:184:68 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:190:30:190:44 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:190:30:190:44 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:192:40:192:81 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:192:40:192:81 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:194:34:194:75 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:194:34:194:75 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:196:34:196:75 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:196:34:196:75 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:198:23:198:37 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:198:23:198:37 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:203:23:203:37 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:203:23:203:37 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:208:23:208:40 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:208:23:208:40 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:210:20:210:34 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:210:20:210:34 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:212:21:212:35 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:212:21:212:35 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:214:22:214:36 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:214:22:214:36 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:219:20:219:34 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:219:20:219:34 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:221:19:221:33 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:221:19:221:33 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | +| mad/Test.java:226:20:226:36 | (...)... | mad/Test.java:40:16:40:36 | getHostName(...) : String | mad/Test.java:226:20:226:36 | (...)... | This path depends on a $@. | mad/Test.java:40:16:40:36 | getHostName(...) | user-provided value | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java index 086e19ab127..169f3535c6b 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java @@ -11,6 +11,16 @@ import java.nio.file.Files; import java.nio.file.Path; import javax.activation.FileDataSource; import javax.xml.transform.stream.StreamResult; +import org.apache.cxf.common.classloader.ClassLoaderUtils; +import org.apache.cxf.common.jaxb.JAXBUtils; +import org.apache.cxf.configuration.jsse.SSLUtils; +import org.apache.cxf.resource.ExtendedURIResolver; +import org.apache.cxf.resource.URIResolver; +import org.apache.cxf.staxutils.StaxUtils; +import org.apache.cxf.tools.corba.utils.FileOutputStreamFactory; +import org.apache.cxf.tools.corba.utils.OutputStreamFactory; +import org.apache.cxf.tools.util.FileWriterUtil; +import org.apache.cxf.tools.util.OutputStreamCreator; import org.apache.commons.io.FileUtils; import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.DirectoryScanner; @@ -109,6 +119,70 @@ public class Test { new FileDataSource((String) source()); // "javax.activation;FileDataSource;true;FileDataSource;(File);;Argument[0];path-injection;manual" new FileDataSource((File) source()); + // "org.apache.cxf.common.classloader;ClassLoaderUtils;true;getResourceAsStream;(String,Class);;Argument[0];path-injection;manual" + ClassLoaderUtils.getResourceAsStream((String) source(), null); + // "org.apache.cxf.common.jaxb;JAXBUtils;true;createFileCodeWriter;(File);;Argument[0];path-injection;manual" + JAXBUtils.createFileCodeWriter((File) source()); + // "org.apache.cxf.common.jaxb;JAXBUtils;true;createFileCodeWriter;(File,String);;Argument[0];path-injection;manual" + JAXBUtils.createFileCodeWriter((File) source(), null); + // "org.apache.cxf.configuration.jsse:SSLUtils;true;loadFile;(String);;Argument[0];path-injection;manual" + new SSLUtils() { + public void test() { + loadFile((String) source()); + } + }; + // "org.apache.cxf.helpers;FileUtils;true;delete;(File);;Argument[0];path-injection;manual" + org.apache.cxf.helpers.FileUtils.delete((File) source()); + // "org.apache.cxf.helpers;FileUtils;true;delete;(File,boolean);;Argument[0];path-injection;manual" + org.apache.cxf.helpers.FileUtils.delete((File) source(), false); + // "org.apache.cxf.helpers;FileUtils;true;mkdir;(File);;Argument[0];path-injection;manual" + org.apache.cxf.helpers.FileUtils.mkDir((File) source()); + // "org.apache.cxf.helpers;FileUtils;true;readLines;(File);;Argument[0];path-injection;manual" + org.apache.cxf.helpers.FileUtils.readLines((File) source()); + // "org.apache.cxf.helpers;FileUtils;true;removeDir;(File);;Argument[0];path-injection;manual" + org.apache.cxf.helpers.FileUtils.removeDir((File) source()); + // "org.apache.cxf.resource;ExtendedURIResolver;true;resolve;(String,String);;Argument[1];path-injection;manual" + new ExtendedURIResolver().resolve(null, (String) source()); // $ SSRF + // "org.apache.cxf.resource;URIResolver;true;URIResolver;(String,String);;Argument[0];path-injection;manual" + new URIResolver((String) source(), null); // $ SSRF + // "org.apache.cxf.resource;URIResolver;true;URIResolver;(String,String,Class);;Argument[0];path-injection;manual" + new URIResolver((String) source(), null, null); // $ SSRF + // "org.apache.cxf.resource;URIResolver;true;resolve;(String,String,Class);;Argument[0];path-injection;manual" + new URIResolver().resolve((String) source(), null, null); // $ SSRF + // "org.apache.cxf.staxutils;StaxUtils;true;read;(File);;Argument[0];path-injection;manual" + StaxUtils.read((File) source()); // $ SSRF + // "org.apache.cxf.tools.corba.utils;FileOutputStreamFactory;true;FileOutputStreamFactory;(String);;Argument[0];path-injection;manual" + new FileOutputStreamFactory((String) source()); // $ SSRF + // "org.apache.cxf.tools.corba.utils;FileOutputStreamFactory;true;FileOutputStreamFactory;(String,FileOutputStreamFactory);;Argument[0];path-injection;manual" + new FileOutputStreamFactory((String) source(), null); // $ SSRF + // "org.apache.cxf.tools.corba.utils;OutputStreamFactory;true;createOutputStream;(String);;Argument[0];path-injection;manual" + new FileOutputStreamFactory().createOutputStream((String) source()); // $ SSRF + // "org.apache.cxf.tools.corba.utils;OutputStreamFactory;true;createOutputStream;(String,String);;Argument[0];path-injection;manual" + new FileOutputStreamFactory().createOutputStream((String) source(), null); // $ SSRF + // "org.apache.cxf.tools.corba.utils;OutputStreamFactory;true;createOutputStream;(String,String);;Argument[1];path-injection;manual" + new FileOutputStreamFactory().createOutputStream(null, (String) source()); // $ SSRF + // @formatter:off + // "org.apache.cxf.tools.util;FileWriterUtil;true;FileWriterUtil;(String,OutputStreamCreator);;Argument[0];path-injection;manual" + new FileWriterUtil((String) source(), null); // $ SSRF + // "org.apache.cxf.tools.util;FileWriterUtil;true;buildDir;(String);;Argument[0];path-injection;manual" + new FileWriterUtil().buildDir((String) source()); // $ SSRF + // "org.apache.cxf.tools.util;FileWriterUtil;true;getFileToWrite;(String,String);;Argument[0];path-injection;manual" + new FileWriterUtil().getFileToWrite((String) source(), (String) null); // $ SSRF + // "org.apache.cxf.tools.util;FileWriterUtil;true;getFileToWrite;(String,String);;Argument[1];path-injection;manual" + new FileWriterUtil().getFileToWrite((String) null, (String) source()); // $ SSRF + // "org.apache.cxf.tools.util;FileWriterUtil;true;getWriter;(File,String);;Argument[0];path-injection;manual" + new FileWriterUtil().getWriter((File) source(), (String) null); // $ SSRF + // "org.apache.cxf.tools.util;FileWriterUtil;true;getWriter;(String,String);;Argument[0];path-injection;manual" + new FileWriterUtil().getWriter((String) source(), null); // $ SSRF + // "org.apache.cxf.tools.util;FileWriterUtil;true;getWriter;(String,String);;Argument[1];path-injection;manual" + new FileWriterUtil().getWriter((String) null, (String) source()); // $ SSRF + // "org.apache.cxf.tools.util;FileWriterUtil;true;getWriter;(String,String,String);;Argument[0];path-injection;manual" + new FileWriterUtil().getWriter((String) source(), null, null); // $ SSRF + // "org.apache.cxf.tools.util;FileWriterUtil;true;getWriter;(String,String,String);;Argument[1];path-injection;manual" + new FileWriterUtil().getWriter((String) null, (String) source(), null); // $ SSRF + // "org.apache.cxf.tools.util;OutputStreamCreator;true;createOutputStream;(File);;Argument[0];path-injection;manual" + new OutputStreamCreator().createOutputStream((File) source()); // $ SSRF + // @formatter:on } void test(AntClassLoader acl) { diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/options b/java/ql/test/query-tests/security/CWE-022/semmle/tests/options index 99f205115cd..6f6c5a27888 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/options +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/options @@ -1 +1 @@ -// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/servlet-api-2.4:${testdir}/../../../../../stubs/apache-commons-io-2.6:${testdir}/../../../../../stubs/cargo:${testdir}/../../../../../stubs/apache-ant-1.10.13:${testdir}/../../../../../stubs/stapler-1.263:${testdir}/../../../../../stubs/javax-servlet-2.5:${testdir}/../../../../../stubs/apache-commons-jelly-1.0.1:${testdir}/../../../../../stubs/apache-commons-fileupload-1.4:${testdir}/../../../../../stubs/saxon-xqj-9.x:${testdir}/../../../../../stubs/apache-commons-beanutils:${testdir}/../../../../../stubs/dom4j-2.1.1:${testdir}/../../../../../stubs/apache-commons-lang:${testdir}/../../../../../stubs/jaxen-1.2.0:${testdir}/../../../../../stubs/jmh-1.3.6:${testdir}/../../../../../stubs/springframework-5.3.8:${testdir}/../../../../../stubs/jaxws-api-2.0 \ No newline at end of file +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/servlet-api-2.4:${testdir}/../../../../../stubs/apache-commons-io-2.6:${testdir}/../../../../../stubs/cargo:${testdir}/../../../../../stubs/apache-ant-1.10.13:${testdir}/../../../../../stubs/stapler-1.263:${testdir}/../../../../../stubs/javax-servlet-2.5:${testdir}/../../../../../stubs/apache-commons-jelly-1.0.1:${testdir}/../../../../../stubs/apache-commons-fileupload-1.4:${testdir}/../../../../../stubs/saxon-xqj-9.x:${testdir}/../../../../../stubs/apache-commons-beanutils:${testdir}/../../../../../stubs/dom4j-2.1.1:${testdir}/../../../../../stubs/apache-commons-lang:${testdir}/../../../../../stubs/jaxen-1.2.0:${testdir}/../../../../../stubs/jmh-1.3.6:${testdir}/../../../../../stubs/springframework-5.3.8:${testdir}/../../../../../stubs/jaxws-api-2.0:${testdir}/../../../../../stubs/apache-cxf diff --git a/java/ql/test/query-tests/security/CWE-117/LogInjectionTest.java b/java/ql/test/query-tests/security/CWE-117/LogInjectionTest.java index 4bcdb197e15..a28a55cbbba 100644 --- a/java/ql/test/query-tests/security/CWE-117/LogInjectionTest.java +++ b/java/ql/test/query-tests/security/CWE-117/LogInjectionTest.java @@ -3,6 +3,7 @@ import java.util.logging.LogRecord; import java.util.regex.Pattern; import com.google.common.flogger.LoggingApi; import org.apache.commons.logging.Log; +import org.apache.cxf.common.logging.LogUtils; import org.apache.log4j.Category; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogBuilder; @@ -2122,5 +2123,21 @@ public class LogInjectionTest { android.util.Log.e("", (String) source()); // $ hasTaintFlow android.util.Log.wtf("", (String) source()); // $ hasTaintFlow } + { + // @formatter:off + // "org.apache.cxf.common.logging;LogUtils;true;log;(Logger,Level,String);;Argument[2];log-injection;manual" + LogUtils.log(null, null, (String) source()); // $ hasTaintFlow + // "org.apache.cxf.common.logging;LogUtils;true;log;(Logger,Level,String,Object);;Argument[2];log-injection;manual" + LogUtils.log(null, null, (String) source(), (Object) null); // $ hasTaintFlow + // "org.apache.cxf.common.logging;LogUtils;true;log;(Logger,Level,String,Object[]);;Argument[2];log-injection;manual" + LogUtils.log(null, null, (String) source(), (Object[]) null); // $ hasTaintFlow + // "org.apache.cxf.common.logging;LogUtils;true;log;(Logger,Level,String,Throwable);;Argument[2];log-injection;manual" + LogUtils.log(null, null, (String) source(), (Throwable) null); // $ hasTaintFlow + // "org.apache.cxf.common.logging;LogUtils;true;log;(Logger,Level,String,Throwable,Object);;Argument[2];log-injection;manual" + LogUtils.log(null, null, (String) source(), (Throwable) null, (Object) null); // $ hasTaintFlow + // "org.apache.cxf.common.logging;LogUtils;true;log;(Logger,Level,String,Throwable,Object[]);;Argument[2];log-injection;manual" + LogUtils.log(null, null, (String) source(), (Throwable) null, (Object) null, (Object) null); // $ hasTaintFlow + // @formatter:on + } } } diff --git a/java/ql/test/query-tests/security/CWE-117/options b/java/ql/test/query-tests/security/CWE-117/options index 01138ecc34b..372b08b0806 100644 --- a/java/ql/test/query-tests/security/CWE-117/options +++ b/java/ql/test/query-tests/security/CWE-117/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/apache-log4j-1.2.17:${testdir}/../../../stubs/apache-log4j-2.14.1:${testdir}/../../../stubs/apache-commons-logging-1.2:${testdir}/../../../stubs/jboss-logging-3.4.2:${testdir}/../../../stubs/slf4j-2.0.0:${testdir}/../../../stubs/scijava-common-2.87.1:${testdir}/../../../stubs/flogger-0.7.1:${testdir}/../../../stubs/google-android-9.0.0 \ No newline at end of file +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/apache-log4j-1.2.17:${testdir}/../../../stubs/apache-log4j-2.14.1:${testdir}/../../../stubs/apache-commons-logging-1.2:${testdir}/../../../stubs/jboss-logging-3.4.2:${testdir}/../../../stubs/slf4j-2.0.0:${testdir}/../../../stubs/scijava-common-2.87.1:${testdir}/../../../stubs/flogger-0.7.1:${testdir}/../../../stubs/google-android-9.0.0:${testdir}/../../../stubs/apache-cxf \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-918/mad/Test.java b/java/ql/test/query-tests/security/CWE-918/mad/Test.java index 29cb7abd793..5bf070bbe50 100644 --- a/java/ql/test/query-tests/security/CWE-918/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-918/mad/Test.java @@ -4,10 +4,15 @@ import java.net.Socket; import java.net.SocketAddress; import java.net.URL; import java.net.URLClassLoader; +import java.util.List; import javax.activation.URLDataSource; import javax.servlet.http.HttpServletRequest; import javafx.scene.web.WebEngine; import org.apache.commons.jelly.JellyContext; +import org.apache.cxf.catalog.OASISCatalogManager; +import org.apache.cxf.common.classloader.ClassLoaderUtils; +import org.apache.cxf.resource.ExtendedURIResolver; +import org.apache.cxf.resource.URIResolver; import org.codehaus.cargo.container.installer.ZipURLInstaller; import org.kohsuke.stapler.HttpResponses; import play.libs.ws.WSClient; @@ -35,7 +40,7 @@ public class Test { ((URL) source()).openStream(); // $ SSRF } - public void test(URLClassLoader cl) throws Exception { + public void test() throws Exception { // "java.net;URLClassLoader;false;URLClassLoader;(String,URL[],ClassLoader);;Argument[1];open-url;manual" new URLClassLoader("", (URL[]) source(), null); // $ SSRF // "java.net;URLClassLoader;false;URLClassLoader;(String,URL[],ClassLoader,URLStreamHandlerFactory);;Argument[1];open-url;manual" @@ -62,6 +67,24 @@ public class Test { new JellyContext((URL) source()); // $ SSRF // "javax.activation;URLDataSource;true;URLDataSource;(URL);;Argument[0];request-forgery;manual" new URLDataSource((URL) source()); // $ SSRF + // "org.apache.cxf.catalog;OASISCatalogManager;true;loadCatalog;(URL);;Argument[0];request-forgery;manual" + new OASISCatalogManager().loadCatalog((URL) source()); // $ SSRF + // @formatter:off + // "org.apache.cxf.common.classloader;ClassLoaderUtils;true;getURLClassLoader;(URL[],ClassLoader);;Argument[0];request-forgery;manual" + new ClassLoaderUtils().getURLClassLoader((URL[]) source(), null); // $ SSRF + // "org.apache.cxf.common.classloader;ClassLoaderUtils;true;getURLClassLoader;(List,ClassLoader);;Argument[0];request-forgery;manual" + new ClassLoaderUtils().getURLClassLoader((List) source(), null); // $ SSRF + // "org.apache.cxf.resource;ExtendedURIResolver;true;resolve;(String,String);;Argument[0];request-forgery;manual"] + new ExtendedURIResolver().resolve((String) source(), null); // $ SSRF + // "org.apache.cxf.resource;URIResolver;true;URIResolver;(String);;Argument[0];request-forgery;manual"] + new URIResolver((String) source()); // $ SSRF + // "org.apache.cxf.resource;URIResolver;true;URIResolver;(String,String);;Argument[1];request-forgery;manual"] + new URIResolver(null, (String) source()); // $ SSRF + // "org.apache.cxf.resource;URIResolver;true;URIResolver;(String,String,Class);;Argument[1];request-forgery;manual"] + new URIResolver(null, (String) source(), null); // $ SSRF + // "org.apache.cxf.resource;URIResolver;true;resolve;(String,String,Class);;Argument[1];request-forgery;manual" + new URIResolver().resolve(null, (String) source(), null); // $ SSRF + // @formatter:on } public void test(WebEngine webEngine) { diff --git a/java/ql/test/query-tests/security/CWE-918/options b/java/ql/test/query-tests/security/CWE-918/options index 64fb822e2af..4158843ef98 100644 --- a/java/ql/test/query-tests/security/CWE-918/options +++ b/java/ql/test/query-tests/security/CWE-918/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args -source 11 -target 11 -cp ${testdir}/../../../stubs/springframework-5.3.8:${testdir}/../../../stubs/javax-ws-rs-api-2.1.1:${testdir}/../../../stubs/javax-ws-rs-api-3.0.0:${testdir}/../../../stubs/apache-http-4.4.13/:${testdir}/../../../stubs/projectreactor-3.4.3/:${testdir}/../../../stubs/postgresql-42.3.3/:${testdir}/../../../stubs/HikariCP-3.4.5/:${testdir}/../../../stubs/spring-jdbc-5.3.8/:${testdir}/../../../stubs/jdbi3-core-3.27.2/:${testdir}/../../../stubs/cargo:${testdir}/../../../stubs/javafx-web:${testdir}/../../../stubs/apache-commons-jelly-1.0.1:${testdir}/../../../stubs/dom4j-2.1.1:${testdir}/../../../stubs/jaxen-1.2.0:${testdir}/../../../stubs/stapler-1.263:${testdir}/../../../stubs/javax-servlet-2.5:${testdir}/../../../stubs/apache-commons-fileupload-1.4:${testdir}/../../../stubs/saxon-xqj-9.x:${testdir}/../../../stubs/apache-commons-beanutils:${testdir}/../../../stubs/apache-commons-lang:${testdir}/../../../stubs/apache-http-5:${testdir}/../../../stubs/playframework-2.6.x:${testdir}/../../../stubs/jaxws-api-2.0 +//semmle-extractor-options: --javac-args -source 11 -target 11 -cp ${testdir}/../../../stubs/springframework-5.3.8:${testdir}/../../../stubs/javax-ws-rs-api-2.1.1:${testdir}/../../../stubs/javax-ws-rs-api-3.0.0:${testdir}/../../../stubs/apache-http-4.4.13/:${testdir}/../../../stubs/projectreactor-3.4.3/:${testdir}/../../../stubs/postgresql-42.3.3/:${testdir}/../../../stubs/HikariCP-3.4.5/:${testdir}/../../../stubs/spring-jdbc-5.3.8/:${testdir}/../../../stubs/jdbi3-core-3.27.2/:${testdir}/../../../stubs/cargo:${testdir}/../../../stubs/javafx-web:${testdir}/../../../stubs/apache-commons-jelly-1.0.1:${testdir}/../../../stubs/dom4j-2.1.1:${testdir}/../../../stubs/jaxen-1.2.0:${testdir}/../../../stubs/stapler-1.263:${testdir}/../../../stubs/javax-servlet-2.5:${testdir}/../../../stubs/apache-commons-fileupload-1.4:${testdir}/../../../stubs/saxon-xqj-9.x:${testdir}/../../../stubs/apache-commons-beanutils:${testdir}/../../../stubs/apache-commons-lang:${testdir}/../../../stubs/apache-http-5:${testdir}/../../../stubs/playframework-2.6.x:${testdir}/../../../stubs/jaxws-api-2.0:${testdir}/../../../stubs/apache-cxf diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/catalog/OASISCatalogManager.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/catalog/OASISCatalogManager.java new file mode 100644 index 00000000000..096ebe8b75c --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/catalog/OASISCatalogManager.java @@ -0,0 +1,7 @@ +package org.apache.cxf.catalog; + +import java.net.URL; + +public class OASISCatalogManager { + public final void loadCatalog(URL catalogURL) {} +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/common/classloader/ClassLoaderUtils.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/common/classloader/ClassLoaderUtils.java new file mode 100644 index 00000000000..e1f3f3407ee --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/common/classloader/ClassLoaderUtils.java @@ -0,0 +1,19 @@ +package org.apache.cxf.common.classloader; + +import java.io.InputStream; +import java.net.URL; +import java.util.List; + +public class ClassLoaderUtils { + public static ClassLoader getURLClassLoader(URL[] urls, ClassLoader parent) { + return null; + } + + public static ClassLoader getURLClassLoader(List urlList, ClassLoader parent) { + return null; + } + + public static InputStream getResourceAsStream(String resourceName, Class callingClass) { + return null; + } +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/common/jaxb/JAXBUtils.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/common/jaxb/JAXBUtils.java new file mode 100644 index 00000000000..86bc017b6f2 --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/common/jaxb/JAXBUtils.java @@ -0,0 +1,13 @@ +package org.apache.cxf.common.jaxb; + +import java.io.File; + +public class JAXBUtils { + public static Object createFileCodeWriter(File f) { + return null; + } + + public static Object createFileCodeWriter(File f, String encoding) { + return null; + } +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/common/logging/LogUtils.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/common/logging/LogUtils.java new file mode 100644 index 00000000000..bc0119f1e63 --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/common/logging/LogUtils.java @@ -0,0 +1,20 @@ +package org.apache.cxf.common.logging; + +import java.util.logging.Level; +import java.util.logging.Logger; + +public class LogUtils { + public static void log(Logger logger, Level level, String message) {} + + public static void log(Logger logger, Level level, String message, Object parameter) {} + + public static void log(Logger logger, Level level, String message, Object[] parameters) {} + + public static void log(Logger logger, Level level, String message, Throwable throwable) {} + + public static void log(Logger logger, Level level, String message, Throwable throwable, + Object parameter) {} + + public static void log(Logger logger, Level level, String message, Throwable throwable, + Object... parameters) {} +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/configuration/jsse/SSLUtils.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/configuration/jsse/SSLUtils.java new file mode 100644 index 00000000000..a9613edd8e1 --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/configuration/jsse/SSLUtils.java @@ -0,0 +1,7 @@ +package org.apache.cxf.configuration.jsse; + +public class SSLUtils { + protected static byte[] loadFile(String fileName) { + return null; + } +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/helpers/FileUtils.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/helpers/FileUtils.java new file mode 100644 index 00000000000..e6515acc1c9 --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/helpers/FileUtils.java @@ -0,0 +1,65 @@ +package org.apache.cxf.helpers; + +import java.io.File; +import java.util.List; + +public class FileUtils { + public static File createTempFile(String prefix, String suffix) { + return null; + } + + public static File createTempFile(String prefix, String suffix, File parentDir, + boolean deleteOnExit) { + return null; + } + + public static File createTmpDir() { + return null; + } + + public static File createTmpDir(boolean addHook) { + return null; + } + + public static void delete(File f) {} + + public static void delete(File f, boolean inShutdown) {} + + public static boolean exists(File file) { + return false; + } + + public static File getDefaultTempDir() { + return null; + } + + public static List getFiles(File dir, String pattern) { + return null; + } + + public static List getFilesRecurseUsingSuffix(File dir, String suffix) { + return null; + } + + public static List getFilesUsingSuffix(File dir, String suffix) { + return null; + } + + public static boolean isValidFileName(String name) { + return false; + } + + public static void maybeDeleteDefaultTempDir() {} + + public static void mkDir(File dir) {} + + public static List readLines(File file) { + return null; + } + + public static void removeDir(File d) {} + + public static String stripPath(String name) { + return null; + } +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/resource/ExtendedURIResolver.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/resource/ExtendedURIResolver.java new file mode 100644 index 00000000000..1858337c7e5 --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/resource/ExtendedURIResolver.java @@ -0,0 +1,9 @@ +package org.apache.cxf.resource; + +import org.xml.sax.InputSource; + +public class ExtendedURIResolver { + public InputSource resolve(String curUri, String baseUri) { + return null; + } +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/resource/URIResolver.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/resource/URIResolver.java new file mode 100644 index 00000000000..6e94734fcd3 --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/resource/URIResolver.java @@ -0,0 +1,13 @@ +package org.apache.cxf.resource; + +public class URIResolver { + public URIResolver() {} + + public URIResolver(String path) {} + + public URIResolver(String baseUriStr, String uriStr) {} + + public URIResolver(String baseUriStr, String uriStr, Class calling) {} + + public void resolve(String baseUriStr, String uriStr, Class callingCls) {} +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/staxutils/StaxUtils.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/staxutils/StaxUtils.java new file mode 100644 index 00000000000..3106c985014 --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/staxutils/StaxUtils.java @@ -0,0 +1,10 @@ +package org.apache.cxf.staxutils; + +import java.io.File; +import org.w3c.dom.Document; + +public class StaxUtils { + public static Document read(File is) { + return null; + } +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/corba/utils/FileOutputStreamFactory.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/corba/utils/FileOutputStreamFactory.java new file mode 100644 index 00000000000..2f2e55b58ec --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/corba/utils/FileOutputStreamFactory.java @@ -0,0 +1,19 @@ +package org.apache.cxf.tools.corba.utils; + +import java.io.OutputStream; + +public class FileOutputStreamFactory implements OutputStreamFactory { + public FileOutputStreamFactory() {} + + public FileOutputStreamFactory(String dir) {} + + public FileOutputStreamFactory(String dir, FileOutputStreamFactory p) {} + + public OutputStream createOutputStream(String name) { + return null; + } + + public OutputStream createOutputStream(String packageName, String name) { + return null; + } +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/corba/utils/OutputStreamFactory.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/corba/utils/OutputStreamFactory.java new file mode 100644 index 00000000000..e740fd8f031 --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/corba/utils/OutputStreamFactory.java @@ -0,0 +1,9 @@ +package org.apache.cxf.tools.corba.utils; + +import java.io.OutputStream; + +public interface OutputStreamFactory { + OutputStream createOutputStream(String name); + + OutputStream createOutputStream(String packageName, String name); +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/util/FileWriterUtil.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/util/FileWriterUtil.java new file mode 100644 index 00000000000..a42f8facd3d --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/util/FileWriterUtil.java @@ -0,0 +1,30 @@ +package org.apache.cxf.tools.util; + +import java.io.File; +import java.io.Writer; + +public class FileWriterUtil { + public FileWriterUtil() {} + + public FileWriterUtil(String targetDir, OutputStreamCreator osc) {} + + public File buildDir(String packageName) { + return null; + } + + public File getFileToWrite(String packageName, String fileName) { + return null; + } + + public Writer getWriter(File fn, String encoding) { + return null; + } + + public Writer getWriter(String packageName, String fileName) { + return null; + } + + public Writer getWriter(String packageName, String fileName, String encoding) { + return null; + } +} diff --git a/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/util/OutputStreamCreator.java b/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/util/OutputStreamCreator.java new file mode 100644 index 00000000000..9cac1e27e53 --- /dev/null +++ b/java/ql/test/stubs/apache-cxf/org/apache/cxf/tools/util/OutputStreamCreator.java @@ -0,0 +1,11 @@ +package org.apache.cxf.tools.util; + +import java.io.File; +import java.io.OutputStream; + +public class OutputStreamCreator { + public OutputStream createOutputStream(File file) { + return null; + } + +} From 25ac87279e262062fb4e8c6859dcbd13add6da27 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Wed, 23 Aug 2023 10:47:58 +0200 Subject: [PATCH 081/788] Add change note --- java/ql/lib/change-notes/2023-08-23-apache-cxf-models.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2023-08-23-apache-cxf-models.md diff --git a/java/ql/lib/change-notes/2023-08-23-apache-cxf-models.md b/java/ql/lib/change-notes/2023-08-23-apache-cxf-models.md new file mode 100644 index 00000000000..fbd0fef3b7f --- /dev/null +++ b/java/ql/lib/change-notes/2023-08-23-apache-cxf-models.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added new dataflow models for the Apache CXF framework. From 5d986d7b60b6ba911cc6d784b01f3476bbbeee08 Mon Sep 17 00:00:00 2001 From: data-douser <70299490+data-douser@users.noreply.github.com> Date: Fri, 25 Aug 2023 07:00:32 -0600 Subject: [PATCH 082/788] Update codeql-library-for-go.rst Correct a typo in the golang docs. --- docs/codeql/codeql-language-guides/codeql-library-for-go.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/codeql-library-for-go.rst b/docs/codeql/codeql-language-guides/codeql-library-for-go.rst index 33468ab7a71..ab8c7bf65af 100644 --- a/docs/codeql/codeql-language-guides/codeql-library-for-go.rst +++ b/docs/codeql/codeql-language-guides/codeql-library-for-go.rst @@ -275,7 +275,7 @@ Entities and name binding Not all elements of a code base can be represented as AST nodes. For example, functions defined in the standard library or in a dependency do not have a source-level definition within the source code of the program itself, and built-in functions like ``len`` do not have a definition at all. Hence -functions cannot simplify be identified with their definition, and similarly for variables, types, +functions cannot simply be identified with their definition, and similarly for variables, types, and so on. To smooth over this difference and provide a unified view of functions no matter where they are From 245c24077dc3853022abeaf0bee4d59d2e5a0c95 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 12:29:44 +0200 Subject: [PATCH 083/788] Python: Move `SqlInjection` to new dataflow API --- .../security/dataflow/SqlInjectionQuery.qll | 15 ++++++++++++++- python/ql/src/Security/CWE-089/SqlInjection.ql | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/SqlInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/SqlInjectionQuery.qll index 23e6b91a0ef..9b78686fed3 100644 --- a/python/ql/lib/semmle/python/security/dataflow/SqlInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/SqlInjectionQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import SqlInjectionCustomizations::SqlInjection /** + * DEPRECATED: Use `SqlInjectionFlow` module instead. + * * A taint-tracking configuration for detecting "SQL injection" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "SqlInjection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -27,3 +29,14 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module SqlInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "SQL injection" vulnerabilities. */ +module SqlInjectionFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-089/SqlInjection.ql b/python/ql/src/Security/CWE-089/SqlInjection.ql index 5e910cf3edf..e6861e86066 100644 --- a/python/ql/src/Security/CWE-089/SqlInjection.ql +++ b/python/ql/src/Security/CWE-089/SqlInjection.ql @@ -13,9 +13,9 @@ import python import semmle.python.security.dataflow.SqlInjectionQuery -import DataFlow::PathGraph +import SqlInjectionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from SqlInjectionFlow::PathNode source, SqlInjectionFlow::PathNode sink +where SqlInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This SQL query depends on a $@.", source.getNode(), "user-provided value" From e97032909aaafa1df1da300af341999ae237608f Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 15:34:51 +0200 Subject: [PATCH 084/788] Python: Move `PathInjection` to new dataflow API --- .../security/dataflow/PathInjectionQuery.qll | 53 ++++++++++++++++++- .../ql/src/Security/CWE-022/PathInjection.ql | 6 +-- .../PathInjection.expected | 8 ++- 3 files changed, 61 insertions(+), 6 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/PathInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/PathInjectionQuery.qll index 5616a94465a..307c16da05d 100644 --- a/python/ql/lib/semmle/python/security/dataflow/PathInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/PathInjectionQuery.qll @@ -13,6 +13,8 @@ import semmle.python.dataflow.new.TaintTracking import PathInjectionCustomizations::PathInjection /** + * DEPRECATED: Use `PathInjectionFlow` module instead. + * * A taint-tracking configuration for detecting "path injection" vulnerabilities. * * This configuration uses two flow states, `NotNormalized` and `NormalizedUnchecked`, @@ -25,7 +27,7 @@ import PathInjectionCustomizations::PathInjection * * Such checks are ineffective in the `NotNormalized` state. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "PathInjection" } override predicate isSource(DataFlow::Node source, DataFlow::FlowState state) { @@ -74,3 +76,52 @@ class NotNormalized extends DataFlow::FlowState { class NormalizedUnchecked extends DataFlow::FlowState { NormalizedUnchecked() { this = "NormalizedUnchecked" } } + +/** + * This configuration uses two flow states, `NotNormalized` and `NormalizedUnchecked`, + * to track the requirement that a file path must be first normalized and then checked + * before it is safe to use. + * + * At sources, paths are assumed not normalized. At normalization points, they change + * state to `NormalizedUnchecked` after which they can be made safe by an appropriate + * check of the prefix. + * + * Such checks are ineffective in the `NotNormalized` state. + */ +private module PathInjectionConfig implements DataFlow::StateConfigSig { + class FlowState = DataFlow::FlowState; + + predicate isSource(DataFlow::Node source, FlowState state) { + source instanceof Source and state instanceof NotNormalized + } + + predicate isSink(DataFlow::Node sink, FlowState state) { + sink instanceof Sink and + ( + state instanceof NotNormalized or + state instanceof NormalizedUnchecked + ) + } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } + + predicate isBarrier(DataFlow::Node node, FlowState state) { + // Block `NotNormalized` paths here, since they change state to `NormalizedUnchecked` + node instanceof Path::PathNormalization and + state instanceof NotNormalized + or + node instanceof Path::SafeAccessCheck and + state instanceof NormalizedUnchecked + } + + predicate isAdditionalFlowStep( + DataFlow::Node nodeFrom, FlowState stateFrom, DataFlow::Node nodeTo, FlowState stateTo + ) { + nodeFrom = nodeTo.(Path::PathNormalization).getPathArg() and + stateFrom instanceof NotNormalized and + stateTo instanceof NormalizedUnchecked + } +} + +/** Global taint-tracking for detecting "path injection" vulnerabilities. */ +module PathInjectionFlow = TaintTracking::GlobalWithState; diff --git a/python/ql/src/Security/CWE-022/PathInjection.ql b/python/ql/src/Security/CWE-022/PathInjection.ql index 8548c815fe4..1686dec7c91 100644 --- a/python/ql/src/Security/CWE-022/PathInjection.ql +++ b/python/ql/src/Security/CWE-022/PathInjection.ql @@ -18,9 +18,9 @@ import python import semmle.python.security.dataflow.PathInjectionQuery -import DataFlow::PathGraph +import PathInjectionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from PathInjectionFlow::PathNode source, PathInjectionFlow::PathNode sink +where PathInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This path depends on a $@.", source.getNode(), "user-provided value" diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected b/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected index b0df9a02cc0..b8bcf46ec1e 100644 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected @@ -53,7 +53,8 @@ edges | path_injection.py:84:16:84:22 | ControlFlowNode for request | path_injection.py:84:16:84:27 | ControlFlowNode for Attribute | | path_injection.py:84:16:84:27 | ControlFlowNode for Attribute | path_injection.py:84:16:84:47 | ControlFlowNode for Attribute() | | path_injection.py:84:16:84:47 | ControlFlowNode for Attribute() | path_injection.py:84:5:84:12 | SSA variable filename | -| path_injection.py:85:5:85:24 | SSA variable possibly_unsafe_path | path_injection.py:87:18:87:37 | ControlFlowNode for possibly_unsafe_path | +| path_injection.py:85:5:85:24 | SSA variable possibly_unsafe_path | path_injection.py:86:24:86:43 | ControlFlowNode for possibly_unsafe_path | +| path_injection.py:86:24:86:43 | ControlFlowNode for possibly_unsafe_path | path_injection.py:87:18:87:37 | ControlFlowNode for possibly_unsafe_path | | path_injection.py:91:20:91:25 | ControlFlowNode for foo_id | path_injection.py:93:5:93:8 | SSA variable path | | path_injection.py:93:5:93:8 | SSA variable path | path_injection.py:94:14:94:17 | ControlFlowNode for path | | path_injection.py:98:20:98:22 | ControlFlowNode for foo | path_injection.py:101:5:101:8 | SSA variable path | @@ -78,7 +79,8 @@ edges | path_injection.py:138:16:138:22 | ControlFlowNode for request | path_injection.py:138:16:138:27 | ControlFlowNode for Attribute | | path_injection.py:138:16:138:27 | ControlFlowNode for Attribute | path_injection.py:138:16:138:47 | ControlFlowNode for Attribute() | | path_injection.py:138:16:138:47 | ControlFlowNode for Attribute() | path_injection.py:138:5:138:12 | SSA variable filename | -| path_injection.py:139:5:139:8 | SSA variable path | path_injection.py:142:14:142:17 | ControlFlowNode for path | +| path_injection.py:139:5:139:8 | SSA variable path | path_injection.py:140:47:140:50 | ControlFlowNode for path | +| path_injection.py:140:47:140:50 | ControlFlowNode for path | path_injection.py:142:14:142:17 | ControlFlowNode for path | | path_injection.py:149:5:149:12 | SSA variable filename | path_injection.py:151:9:151:12 | SSA variable path | | path_injection.py:149:16:149:22 | ControlFlowNode for request | path_injection.py:149:16:149:27 | ControlFlowNode for Attribute | | path_injection.py:149:16:149:27 | ControlFlowNode for Attribute | path_injection.py:149:16:149:47 | ControlFlowNode for Attribute() | @@ -171,6 +173,7 @@ nodes | path_injection.py:84:16:84:27 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | path_injection.py:84:16:84:47 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | path_injection.py:85:5:85:24 | SSA variable possibly_unsafe_path | semmle.label | SSA variable possibly_unsafe_path | +| path_injection.py:86:24:86:43 | ControlFlowNode for possibly_unsafe_path | semmle.label | ControlFlowNode for possibly_unsafe_path | | path_injection.py:87:18:87:37 | ControlFlowNode for possibly_unsafe_path | semmle.label | ControlFlowNode for possibly_unsafe_path | | path_injection.py:91:20:91:25 | ControlFlowNode for foo_id | semmle.label | ControlFlowNode for foo_id | | path_injection.py:93:5:93:8 | SSA variable path | semmle.label | SSA variable path | @@ -202,6 +205,7 @@ nodes | path_injection.py:138:16:138:27 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | path_injection.py:138:16:138:47 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | path_injection.py:139:5:139:8 | SSA variable path | semmle.label | SSA variable path | +| path_injection.py:140:47:140:50 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | | path_injection.py:142:14:142:17 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | | path_injection.py:149:5:149:12 | SSA variable filename | semmle.label | SSA variable filename | | path_injection.py:149:16:149:22 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | From d4e4e2d4267f9cde6650654598e836bc00963783 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 15:37:02 +0200 Subject: [PATCH 085/788] Python: Move `TarSlip` to new dataflow API --- .../python/security/dataflow/TarSlipQuery.qll | 19 ++++++++++++++++--- python/ql/src/Security/CWE-022/TarSlip.ql | 6 +++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll index 6cf41742a66..7bb008f1afb 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll @@ -1,5 +1,5 @@ /** - * Provides a taint-tracking configuration for detecting "command injection" vulnerabilities. + * Provides a taint-tracking configuration for detecting "tar slip" vulnerabilities. * * Note, for performance reasons: only import this file if * `TarSlip::Configuration` is needed, otherwise @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import TarSlipCustomizations::TarSlip /** - * A taint-tracking configuration for detecting "command injection" vulnerabilities. + * DEPRECATED: Use `TarSlipFlow` module instead. + * + * A taint-tracking configuration for detecting "tar slip" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "TarSlip" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -23,3 +25,14 @@ class Configuration extends TaintTracking::Configuration { override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer } } + +private module TarSlipConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "tar slip" vulnerabilities. */ +module TarSlipFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-022/TarSlip.ql b/python/ql/src/Security/CWE-022/TarSlip.ql index 647b41756f8..cb0cd54d19b 100644 --- a/python/ql/src/Security/CWE-022/TarSlip.ql +++ b/python/ql/src/Security/CWE-022/TarSlip.ql @@ -14,9 +14,9 @@ import python import semmle.python.security.dataflow.TarSlipQuery -import DataFlow::PathGraph +import TarSlipFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from TarSlipFlow::PathNode source, TarSlipFlow::PathNode sink +where TarSlipFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This file extraction depends on a $@.", source.getNode(), "potentially untrusted source" From 700841e9b0b44413d4296d04042c9d6169e5157a Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 15:42:09 +0200 Subject: [PATCH 086/788] Python: Move `UnsafeShellCommandConstruction` to new dataflow API --- .../UnsafeShellCommandConstructionQuery.qll | 21 ++++++++++++++++++- .../CWE-078/UnsafeShellCommandConstruction.ql | 8 ++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll index 0d9ebb8a472..14a702a405e 100644 --- a/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll @@ -14,9 +14,11 @@ private import CommandInjectionCustomizations::CommandInjection as CommandInject private import semmle.python.dataflow.new.BarrierGuards /** + * DEPRECATED: Use `UnsafeShellCommandConstructionFlow` module instead. + * * A taint-tracking configuration for detecting shell command constructed from library input vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "UnsafeShellCommandConstruction" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -32,3 +34,20 @@ class Configuration extends TaintTracking::Configuration { result instanceof DataFlow::FeatureHasSourceCallContext } } + +private module UnsafeShellCommandConstructionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { + node instanceof CommandInjection::Sanitizer // using all sanitizers from `py/command-injection` + } + + // override to require the path doesn't have unmatched return steps + DataFlow::FlowFeature getAFeature() { result instanceof DataFlow::FeatureHasSourceCallContext } +} + +/** Global taint-tracking for detecting "shell command constructed from library input" vulnerabilities. */ +module UnsafeShellCommandConstructionFlow = + TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-078/UnsafeShellCommandConstruction.ql b/python/ql/src/Security/CWE-078/UnsafeShellCommandConstruction.ql index 10f4b771261..561bcf7dd49 100644 --- a/python/ql/src/Security/CWE-078/UnsafeShellCommandConstruction.ql +++ b/python/ql/src/Security/CWE-078/UnsafeShellCommandConstruction.ql @@ -16,11 +16,13 @@ import python import semmle.python.security.dataflow.UnsafeShellCommandConstructionQuery -import DataFlow::PathGraph +import UnsafeShellCommandConstructionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, Sink sinkNode +from + UnsafeShellCommandConstructionFlow::PathNode source, + UnsafeShellCommandConstructionFlow::PathNode sink, Sink sinkNode where - config.hasFlowPath(source, sink) and + UnsafeShellCommandConstructionFlow::flowPath(source, sink) and sinkNode = sink.getNode() select sinkNode.getStringConstruction(), source, sink, "This " + sinkNode.describe() + " which depends on $@ is later used in a $@.", source.getNode(), From b30142c1d7195e448ef7dc1d20a94206fdddc02c Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 15:44:02 +0200 Subject: [PATCH 087/788] Python: Move `CommandInjection` to new dataflow API --- .../security/dataflow/CommandInjectionQuery.qll | 15 ++++++++++++++- .../ql/src/Security/CWE-078/CommandInjection.ql | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll index 526fd9d0694..b9c1fb09043 100644 --- a/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import CommandInjectionCustomizations::CommandInjection /** + * DEPRECATED: Use `CommandInjectionFlow` module instead. + * * A taint-tracking configuration for detecting "command injection" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "CommandInjection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -27,3 +29,14 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module CommandInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "command injection" vulnerabilities. */ +module CommandInjectionFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-078/CommandInjection.ql b/python/ql/src/Security/CWE-078/CommandInjection.ql index f8c48714e1a..1c2c5125b32 100644 --- a/python/ql/src/Security/CWE-078/CommandInjection.ql +++ b/python/ql/src/Security/CWE-078/CommandInjection.ql @@ -16,9 +16,9 @@ import python import semmle.python.security.dataflow.CommandInjectionQuery -import DataFlow::PathGraph +import CommandInjectionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from CommandInjectionFlow::PathNode source, CommandInjectionFlow::PathNode sink +where CommandInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This command line depends on a $@.", source.getNode(), "user-provided value" From c360346e9e5a1a4962620f044774e96e4da6ead1 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 15:44:54 +0200 Subject: [PATCH 088/788] Python: Move `ReflectedXss` to new dataflow API --- .../security/dataflow/ReflectedXssQuery.qll | 15 ++++++++++++++- python/ql/src/Security/CWE-079/ReflectedXss.ql | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/ReflectedXssQuery.qll b/python/ql/lib/semmle/python/security/dataflow/ReflectedXssQuery.qll index d150c80ffb1..d136c9d16b8 100644 --- a/python/ql/lib/semmle/python/security/dataflow/ReflectedXssQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/ReflectedXssQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import ReflectedXSSCustomizations::ReflectedXss /** + * DEPRECATED: Use `ReflectedXssFlow` module instead. + * * A taint-tracking configuration for detecting "reflected server-side cross-site scripting" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "ReflectedXSS" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -27,3 +29,14 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module ReflectedXssConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "reflected server-side cross-site scripting" vulnerabilities. */ +module ReflectedXssFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-079/ReflectedXss.ql b/python/ql/src/Security/CWE-079/ReflectedXss.ql index 1189e35be67..11ebad00e37 100644 --- a/python/ql/src/Security/CWE-079/ReflectedXss.ql +++ b/python/ql/src/Security/CWE-079/ReflectedXss.ql @@ -15,9 +15,9 @@ import python import semmle.python.security.dataflow.ReflectedXssQuery -import DataFlow::PathGraph +import ReflectedXssFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from ReflectedXssFlow::PathNode source, ReflectedXssFlow::PathNode sink +where ReflectedXssFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Cross-site scripting vulnerability due to a $@.", source.getNode(), "user-provided value" From 05573904a5584e7da57eb9a963249bce736f8b4f Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:03:53 +0200 Subject: [PATCH 089/788] Python: Move `LdapInjection` to new dataflow API We could have switched to a stateful config, but I tried to keep changes as straight forward as possible. --- .../security/dataflow/LdapInjectionQuery.qll | 35 +++++++++++++++++-- .../ql/src/Security/CWE-090/LdapInjection.ql | 8 ++--- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/LdapInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/LdapInjectionQuery.qll index aa13a8ee6a9..1ebead95418 100644 --- a/python/ql/lib/semmle/python/security/dataflow/LdapInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/LdapInjectionQuery.qll @@ -14,10 +14,12 @@ import semmle.python.dataflow.new.RemoteFlowSources import LdapInjectionCustomizations::LdapInjection /** + * DEPRECATED: Use `LdapInjectionDnFlow` module instead. + * * A taint-tracking configuration for detecting LDAP injection vulnerabilities * via the distinguished name (DN) parameter of an LDAP search. */ -class DnConfiguration extends TaintTracking::Configuration { +deprecated class DnConfiguration extends TaintTracking::Configuration { DnConfiguration() { this = "LdapDnInjection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -31,11 +33,24 @@ class DnConfiguration extends TaintTracking::Configuration { } } +private module LdapInjectionDnConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof DnSink } + + predicate isBarrier(DataFlow::Node node) { node instanceof DnSanitizer } +} + +/** Global taint-tracking for detecting "LDAP injection via the distinguished name (DN) parameter" vulnerabilities. */ +module LdapInjectionDnFlow = TaintTracking::Global; + /** + * DEPRECATED: Use `LdapInjectionFilterFlow` module instead. + * * A taint-tracking configuration for detecting LDAP injection vulnerabilities * via the filter parameter of an LDAP search. */ -class FilterConfiguration extends TaintTracking::Configuration { +deprecated class FilterConfiguration extends TaintTracking::Configuration { FilterConfiguration() { this = "LdapFilterInjection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -48,3 +63,19 @@ class FilterConfiguration extends TaintTracking::Configuration { guard instanceof FilterSanitizerGuard } } + +private module LdapInjectionFilterConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof FilterSink } + + predicate isBarrier(DataFlow::Node node) { node instanceof FilterSanitizer } +} + +/** Global taint-tracking for detecting "LDAP injection via the filter parameter" vulnerabilities. */ +module LdapInjectionFilterFlow = TaintTracking::Global; + +/** Global taint-tracking for detecting "LDAP injection" vulnerabilities. */ +module LdapInjectionFlow = + DataFlow::MergePathGraph; diff --git a/python/ql/src/Security/CWE-090/LdapInjection.ql b/python/ql/src/Security/CWE-090/LdapInjection.ql index efcf52eba41..f4943f8a8dc 100644 --- a/python/ql/src/Security/CWE-090/LdapInjection.ql +++ b/python/ql/src/Security/CWE-090/LdapInjection.ql @@ -14,14 +14,14 @@ // Determine precision above import python import semmle.python.security.dataflow.LdapInjectionQuery -import DataFlow::PathGraph +import LdapInjectionFlow::PathGraph -from DataFlow::PathNode source, DataFlow::PathNode sink, string parameterName +from LdapInjectionFlow::PathNode source, LdapInjectionFlow::PathNode sink, string parameterName where - any(DnConfiguration dnConfig).hasFlowPath(source, sink) and + LdapInjectionDnFlow::flowPath(source.asPathNode1(), sink.asPathNode1()) and parameterName = "DN" or - any(FilterConfiguration filterConfig).hasFlowPath(source, sink) and + LdapInjectionFilterFlow::flowPath(source.asPathNode2(), sink.asPathNode2()) and parameterName = "filter" select sink.getNode(), source, sink, "LDAP query parameter (" + parameterName + ") depends on a $@.", source.getNode(), From 88cf9c99b0d34aa5b25bc9d4956e07f67be835f9 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:05:10 +0200 Subject: [PATCH 090/788] Python: Move `CodeInjection` to new dataflow API --- .../security/dataflow/CodeInjectionQuery.qll | 15 ++++++++++++++- python/ql/src/Security/CWE-094/CodeInjection.ql | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/CodeInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/CodeInjectionQuery.qll index a318ae60aa8..3cdb72c383a 100644 --- a/python/ql/lib/semmle/python/security/dataflow/CodeInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/CodeInjectionQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import CodeInjectionCustomizations::CodeInjection /** + * DEPRECATED: Use `CodeInjectionFlow` module instead. + * * A taint-tracking configuration for detecting "code injection" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "CodeInjection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -27,3 +29,14 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module CodeInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "code injection" vulnerabilities. */ +module CodeInjectionFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-094/CodeInjection.ql b/python/ql/src/Security/CWE-094/CodeInjection.ql index 5e5c06b68b7..d0683c7ffca 100644 --- a/python/ql/src/Security/CWE-094/CodeInjection.ql +++ b/python/ql/src/Security/CWE-094/CodeInjection.ql @@ -16,9 +16,9 @@ import python import semmle.python.security.dataflow.CodeInjectionQuery -import DataFlow::PathGraph +import CodeInjectionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from CodeInjectionFlow::PathNode source, CodeInjectionFlow::PathNode sink +where CodeInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This code execution depends on a $@.", source.getNode(), "user-provided value" From f75e65c67d69fefeb5ca962aa52d38b961d854b7 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:06:08 +0200 Subject: [PATCH 091/788] Python: Move `LogInjection` to new dataflow API --- .../security/dataflow/LogInjectionQuery.qll | 17 +++++++++++++++-- python/ql/src/Security/CWE-117/LogInjection.ql | 6 +++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/LogInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/LogInjectionQuery.qll index 4679c2c154b..8f91c6e85ee 100644 --- a/python/ql/lib/semmle/python/security/dataflow/LogInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/LogInjectionQuery.qll @@ -1,5 +1,5 @@ /** - * Provides a taint-tracking configuration for tracking untrusted user input used in log entries. + * Provides a taint-tracking configuration for tracking "log injection" vulnerabilities. * * Note, for performance reasons: only import this file if * `LogInjection::Configuration` is needed, otherwise @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import LogInjectionCustomizations::LogInjection /** + * DEPRECATED: Use `LogInjectionFlow` module instead. + * * A taint-tracking configuration for tracking untrusted user input used in log entries. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "LogInjection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -27,3 +29,14 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module LogInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "log injection" vulnerabilities. */ +module LogInjectionFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-117/LogInjection.ql b/python/ql/src/Security/CWE-117/LogInjection.ql index 3c380321af2..f1b72faaccb 100644 --- a/python/ql/src/Security/CWE-117/LogInjection.ql +++ b/python/ql/src/Security/CWE-117/LogInjection.ql @@ -13,9 +13,9 @@ import python import semmle.python.security.dataflow.LogInjectionQuery -import DataFlow::PathGraph +import LogInjectionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from LogInjectionFlow::PathNode source, LogInjectionFlow::PathNode sink +where LogInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This log entry depends on a $@.", source.getNode(), "user-provided value" From dcd96083e8d48a27e6bedf8f0a1e5ee30a3f9720 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:07:59 +0200 Subject: [PATCH 092/788] Python: Move `StackTraceExposure` to new dataflow API --- .../dataflow/StackTraceExposureQuery.qll | 24 ++++++++++++++++++- .../Security/CWE-209/StackTraceExposure.ql | 6 ++--- .../StackTraceExposure.expected | 4 +++- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/StackTraceExposureQuery.qll b/python/ql/lib/semmle/python/security/dataflow/StackTraceExposureQuery.qll index 3975985fce1..22404903c48 100644 --- a/python/ql/lib/semmle/python/security/dataflow/StackTraceExposureQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/StackTraceExposureQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import StackTraceExposureCustomizations::StackTraceExposure /** + * DEPRECATED: Use `StackTraceExposureFlow` module instead. + * * A taint-tracking configuration for detecting "stack trace exposure" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "StackTraceExposure" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -36,3 +38,23 @@ class Configuration extends TaintTracking::Configuration { ) } } + +private module StackTraceExposureConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } + + // A stack trace is accessible as the `__traceback__` attribute of a caught exception. + // see https://docs.python.org/3/reference/datamodel.html#traceback-objects + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + exists(DataFlow::AttrRead attr | attr.getAttributeName() = "__traceback__" | + nodeFrom = attr.getObject() and + nodeTo = attr + ) + } +} + +/** Global taint-tracking for detecting "stack trace exposure" vulnerabilities. */ +module StackTraceExposureFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-209/StackTraceExposure.ql b/python/ql/src/Security/CWE-209/StackTraceExposure.ql index 7b8cf74c597..1feed997e25 100644 --- a/python/ql/src/Security/CWE-209/StackTraceExposure.ql +++ b/python/ql/src/Security/CWE-209/StackTraceExposure.ql @@ -15,10 +15,10 @@ import python import semmle.python.security.dataflow.StackTraceExposureQuery -import DataFlow::PathGraph +import StackTraceExposureFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from StackTraceExposureFlow::PathNode source, StackTraceExposureFlow::PathNode sink +where StackTraceExposureFlow::flowPath(source, sink) select sink.getNode(), source, sink, "$@ flows to this location and may be exposed to an external user.", source.getNode(), "Stack trace information" diff --git a/python/ql/test/query-tests/Security/CWE-209-StackTraceExposure/StackTraceExposure.expected b/python/ql/test/query-tests/Security/CWE-209-StackTraceExposure/StackTraceExposure.expected index 5cc3f3eef6d..90b58f8e319 100644 --- a/python/ql/test/query-tests/Security/CWE-209-StackTraceExposure/StackTraceExposure.expected +++ b/python/ql/test/query-tests/Security/CWE-209-StackTraceExposure/StackTraceExposure.expected @@ -1,6 +1,7 @@ edges | test.py:23:25:23:25 | SSA variable e | test.py:24:16:24:16 | ControlFlowNode for e | -| test.py:31:25:31:25 | SSA variable e | test.py:32:16:32:30 | ControlFlowNode for Attribute | +| test.py:31:25:31:25 | SSA variable e | test.py:32:16:32:16 | ControlFlowNode for e | +| test.py:32:16:32:16 | ControlFlowNode for e | test.py:32:16:32:30 | ControlFlowNode for Attribute | | test.py:49:9:49:11 | SSA variable err | test.py:50:29:50:31 | ControlFlowNode for err | | test.py:49:15:49:36 | ControlFlowNode for Attribute() | test.py:49:9:49:11 | SSA variable err | | test.py:50:29:50:31 | ControlFlowNode for err | test.py:50:16:50:32 | ControlFlowNode for format_error() | @@ -12,6 +13,7 @@ nodes | test.py:23:25:23:25 | SSA variable e | semmle.label | SSA variable e | | test.py:24:16:24:16 | ControlFlowNode for e | semmle.label | ControlFlowNode for e | | test.py:31:25:31:25 | SSA variable e | semmle.label | SSA variable e | +| test.py:32:16:32:16 | ControlFlowNode for e | semmle.label | ControlFlowNode for e | | test.py:32:16:32:30 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | test.py:49:9:49:11 | SSA variable err | semmle.label | SSA variable err | | test.py:49:15:49:36 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | From cca78f31ff032087f72e4181d896312430f177d3 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:10:26 +0200 Subject: [PATCH 093/788] Python: Move `PamAuthorization` to new dataflow API --- .../dataflow/PamAuthorizationQuery.qll | 29 ++++++++++++++++++- .../src/Security/CWE-285/PamAuthorization.ql | 6 ++-- .../PamAuthorization.expected | 8 ++++- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/PamAuthorizationQuery.qll b/python/ql/lib/semmle/python/security/dataflow/PamAuthorizationQuery.qll index 18dc29a4a71..4b150299b31 100644 --- a/python/ql/lib/semmle/python/security/dataflow/PamAuthorizationQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/PamAuthorizationQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import PamAuthorizationCustomizations::PamAuthorizationCustomizations /** + * DEPRECATED: Use `PamAuthorizationFlow` module instead. + * * A taint-tracking configuration for detecting "PAM Authorization" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "PamAuthorization" } override predicate isSource(DataFlow::Node node) { node instanceof Source } @@ -37,3 +39,28 @@ class Configuration extends TaintTracking::Configuration { exists(VulnPamAuthCall c | c.getArg(0) = node1 | node2 = c) } } + +private module PamAuthorizationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + // Models flow from a remotely supplied username field to a PAM `handle`. + // `retval = pam_start(service, username, byref(conv), byref(handle))` + exists(API::CallNode pamStart, DataFlow::Node handle, API::CallNode pointer | + pointer = API::moduleImport("ctypes").getMember(["pointer", "byref"]).getACall() and + pamStart = libPam().getMember("pam_start").getACall() and + pointer = pamStart.getArg(3) and + handle = pointer.getArg(0) and + pamStart.getArg(1) = node1 and + handle = node2 + ) + or + // Flow from handle to the authenticate call in the final step + exists(VulnPamAuthCall c | c.getArg(0) = node1 | node2 = c) + } +} + +/** Global taint-tracking for detecting "PAM Authorization" vulnerabilities. */ +module PamAuthorizationFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-285/PamAuthorization.ql b/python/ql/src/Security/CWE-285/PamAuthorization.ql index 43cbc33917a..1da0b8c9b10 100644 --- a/python/ql/src/Security/CWE-285/PamAuthorization.ql +++ b/python/ql/src/Security/CWE-285/PamAuthorization.ql @@ -11,12 +11,12 @@ */ import python -import DataFlow::PathGraph +import PamAuthorizationFlow::PathGraph import semmle.python.ApiGraphs import semmle.python.security.dataflow.PamAuthorizationQuery -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from PamAuthorizationFlow::PathNode source, PamAuthorizationFlow::PathNode sink +where PamAuthorizationFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This PAM authentication depends on a $@, and 'pam_acct_mgmt' is not called afterwards.", source.getNode(), "user-provided value" diff --git a/python/ql/test/query-tests/Security/CWE-285-PamAuthorization/PamAuthorization.expected b/python/ql/test/query-tests/Security/CWE-285-PamAuthorization/PamAuthorization.expected index f259cfab561..9379464e1c1 100644 --- a/python/ql/test/query-tests/Security/CWE-285-PamAuthorization/PamAuthorization.expected +++ b/python/ql/test/query-tests/Security/CWE-285-PamAuthorization/PamAuthorization.expected @@ -1,10 +1,13 @@ edges | pam_test.py:4:26:4:32 | ControlFlowNode for ImportMember | pam_test.py:4:26:4:32 | GSSA Variable request | | pam_test.py:4:26:4:32 | GSSA Variable request | pam_test.py:71:16:71:22 | ControlFlowNode for request | -| pam_test.py:71:5:71:12 | SSA variable username | pam_test.py:76:14:76:40 | ControlFlowNode for pam_authenticate() | +| pam_test.py:71:5:71:12 | SSA variable username | pam_test.py:74:33:74:40 | ControlFlowNode for username | | pam_test.py:71:16:71:22 | ControlFlowNode for request | pam_test.py:71:16:71:27 | ControlFlowNode for Attribute | | pam_test.py:71:16:71:27 | ControlFlowNode for Attribute | pam_test.py:71:16:71:47 | ControlFlowNode for Attribute() | | pam_test.py:71:16:71:47 | ControlFlowNode for Attribute() | pam_test.py:71:5:71:12 | SSA variable username | +| pam_test.py:74:33:74:40 | ControlFlowNode for username | pam_test.py:74:62:74:67 | ControlFlowNode for handle | +| pam_test.py:74:62:74:67 | ControlFlowNode for handle | pam_test.py:76:31:76:36 | ControlFlowNode for handle | +| pam_test.py:76:31:76:36 | ControlFlowNode for handle | pam_test.py:76:14:76:40 | ControlFlowNode for pam_authenticate() | nodes | pam_test.py:4:26:4:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | pam_test.py:4:26:4:32 | GSSA Variable request | semmle.label | GSSA Variable request | @@ -12,7 +15,10 @@ nodes | pam_test.py:71:16:71:22 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | pam_test.py:71:16:71:27 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | pam_test.py:71:16:71:47 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| pam_test.py:74:33:74:40 | ControlFlowNode for username | semmle.label | ControlFlowNode for username | +| pam_test.py:74:62:74:67 | ControlFlowNode for handle | semmle.label | ControlFlowNode for handle | | pam_test.py:76:14:76:40 | ControlFlowNode for pam_authenticate() | semmle.label | ControlFlowNode for pam_authenticate() | +| pam_test.py:76:31:76:36 | ControlFlowNode for handle | semmle.label | ControlFlowNode for handle | subpaths #select | pam_test.py:76:14:76:40 | ControlFlowNode for pam_authenticate() | pam_test.py:4:26:4:32 | ControlFlowNode for ImportMember | pam_test.py:76:14:76:40 | ControlFlowNode for pam_authenticate() | This PAM authentication depends on a $@, and 'pam_acct_mgmt' is not called afterwards. | pam_test.py:4:26:4:32 | ControlFlowNode for ImportMember | user-provided value | From 70095446b66704f7ed35d96055d5dd0be05a941d Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:12:01 +0200 Subject: [PATCH 094/788] Python: Move `CleartextLogging` to new dataflow API --- .../security/dataflow/CleartextLoggingQuery.qll | 15 ++++++++++++++- .../ql/src/Security/CWE-312/CleartextLogging.ql | 7 ++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/CleartextLoggingQuery.qll b/python/ql/lib/semmle/python/security/dataflow/CleartextLoggingQuery.qll index 7479c24fc53..0b0cb046820 100644 --- a/python/ql/lib/semmle/python/security/dataflow/CleartextLoggingQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/CleartextLoggingQuery.qll @@ -16,9 +16,11 @@ private import semmle.python.dataflow.new.SensitiveDataSources import CleartextLoggingCustomizations::CleartextLogging /** + * DEPRECATED: Use `CleartextLoggingFlow` module instead. + * * A taint-tracking configuration for detecting "Clear-text logging of sensitive information". */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "CleartextLogging" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -31,3 +33,14 @@ class Configuration extends TaintTracking::Configuration { node instanceof Sanitizer } } + +private module CleartextLoggingConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "Clear-text logging of sensitive information" vulnerabilities. */ +module CleartextLoggingFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-312/CleartextLogging.ql b/python/ql/src/Security/CWE-312/CleartextLogging.ql index 0c2591eaec4..500a2b5f9b7 100644 --- a/python/ql/src/Security/CWE-312/CleartextLogging.ql +++ b/python/ql/src/Security/CWE-312/CleartextLogging.ql @@ -15,12 +15,13 @@ import python private import semmle.python.dataflow.new.DataFlow -import DataFlow::PathGraph +import CleartextLoggingFlow::PathGraph import semmle.python.security.dataflow.CleartextLoggingQuery -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, string classification +from + CleartextLoggingFlow::PathNode source, CleartextLoggingFlow::PathNode sink, string classification where - config.hasFlowPath(source, sink) and + CleartextLoggingFlow::flowPath(source, sink) and classification = source.getNode().(Source).getClassification() select sink.getNode(), source, sink, "This expression logs $@ as clear text.", source.getNode(), "sensitive data (" + classification + ")" From 9d6b96dfd286901ef7c4452586345badb5ba4a64 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:15:03 +0200 Subject: [PATCH 095/788] Python: Move `CleartextStorage` to new dataflow API --- .../security/dataflow/CleartextStorageQuery.qll | 15 ++++++++++++++- .../ql/src/Security/CWE-312/CleartextStorage.ql | 7 ++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/CleartextStorageQuery.qll b/python/ql/lib/semmle/python/security/dataflow/CleartextStorageQuery.qll index e5320c76d34..ef9c8c13b56 100644 --- a/python/ql/lib/semmle/python/security/dataflow/CleartextStorageQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/CleartextStorageQuery.qll @@ -16,9 +16,11 @@ private import semmle.python.dataflow.new.SensitiveDataSources import CleartextStorageCustomizations::CleartextStorage /** + * DEPRECATED: Use `CleartextStorageFlow` module instead. + * * A taint-tracking configuration for detecting "Clear-text storage of sensitive information". */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "CleartextStorage" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -31,3 +33,14 @@ class Configuration extends TaintTracking::Configuration { node instanceof Sanitizer } } + +private module CleartextStorageConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "Clear-text storage of sensitive information" vulnerabilities. */ +module CleartextStorageFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-312/CleartextStorage.ql b/python/ql/src/Security/CWE-312/CleartextStorage.ql index 9a8d5de3331..f83097d6e0b 100644 --- a/python/ql/src/Security/CWE-312/CleartextStorage.ql +++ b/python/ql/src/Security/CWE-312/CleartextStorage.ql @@ -15,12 +15,13 @@ import python private import semmle.python.dataflow.new.DataFlow -import DataFlow::PathGraph +import CleartextStorageFlow::PathGraph import semmle.python.security.dataflow.CleartextStorageQuery -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, string classification +from + CleartextStorageFlow::PathNode source, CleartextStorageFlow::PathNode sink, string classification where - config.hasFlowPath(source, sink) and + CleartextStorageFlow::flowPath(source, sink) and classification = source.getNode().(Source).getClassification() select sink.getNode(), source, sink, "This expression stores $@ as clear text.", source.getNode(), "sensitive data (" + classification + ")" From dd074173d2d3f60b68f634f8f128b5487671c711 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:25:45 +0200 Subject: [PATCH 096/788] Python: Move `WeakSensitiveDataHashing` to new dataflow API I adopted helper predicates to do the "heavy" lifting of .asPathNode1(), maybe I like this approach better... let me know what you think :blush: --- .../WeakSensitiveDataHashingQuery.qll | 68 ++++++++++++++++++- .../CWE-327/WeakSensitiveDataHashing.ql | 42 ++++++------ .../WeakSensitiveDataHashing.expected | 12 ++-- 3 files changed, 91 insertions(+), 31 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/WeakSensitiveDataHashingQuery.qll b/python/ql/lib/semmle/python/security/dataflow/WeakSensitiveDataHashingQuery.qll index f7aec512772..9e2803b3369 100644 --- a/python/ql/lib/semmle/python/security/dataflow/WeakSensitiveDataHashingQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/WeakSensitiveDataHashingQuery.qll @@ -24,10 +24,12 @@ module NormalHashFunction { import WeakSensitiveDataHashingCustomizations::NormalHashFunction /** + * DEPRECATED: Use `Flow` module instead. + * * A taint-tracking configuration for detecting use of a broken or weak * cryptographic hashing algorithm on sensitive data. */ - class Configuration extends TaintTracking::Configuration { + deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "NormalHashFunction" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -44,6 +46,21 @@ module NormalHashFunction { sensitiveDataExtraStepForCalls(node1, node2) } } + + private module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + sensitiveDataExtraStepForCalls(node1, node2) + } + } + + /** Global taint-tracking for detecting "use of a broken or weak cryptographic hashing algorithm on sensitive data" vulnerabilities. */ + module Flow = TaintTracking::Global; } /** @@ -57,13 +74,15 @@ module ComputationallyExpensiveHashFunction { import WeakSensitiveDataHashingCustomizations::ComputationallyExpensiveHashFunction /** + * DEPRECATED: Use `Flow` module instead. + * * A taint-tracking configuration for detecting use of a broken or weak * cryptographic hashing algorithm on passwords. * * Passwords has stricter requirements on the hashing algorithm used (must be * computationally expensive to prevent brute-force attacks). */ - class Configuration extends TaintTracking::Configuration { + deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "ComputationallyExpensiveHashFunction" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -80,4 +99,49 @@ module ComputationallyExpensiveHashFunction { sensitiveDataExtraStepForCalls(node1, node2) } } + + /** + * Passwords has stricter requirements on the hashing algorithm used (must be + * computationally expensive to prevent brute-force attacks). + */ + private module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + sensitiveDataExtraStepForCalls(node1, node2) + } + } + + /** Global taint-tracking for detecting "use of a broken or weak cryptographic hashing algorithm on passwords" vulnerabilities. */ + module Flow = TaintTracking::Global; +} + +/** + * Global taint-tracking for detecting both variants of "use of a broken or weak + * cryptographic hashing algorithm on sensitive data" vulnerabilities. + * + * See convenience predicates `normalHashFunctionFlowPath` and + * `computationallyExpensiveHashFunctionFlowPath`. + */ +module WeakSensitiveDataHashingFlow = + DataFlow::MergePathGraph; + +/** Holds if data can flow from `source` to `sink` with `NormalHashFunction::Flow`. */ +predicate normalHashFunctionFlowPath( + WeakSensitiveDataHashingFlow::PathNode source, WeakSensitiveDataHashingFlow::PathNode sink +) { + NormalHashFunction::Flow::flowPath(source.asPathNode1(), sink.asPathNode1()) +} + +/** Holds if data can flow from `source` to `sink` with `ComputationallyExpensiveHashFunction::Flow`. */ +predicate computationallyExpensiveHashFunctionFlowPath( + WeakSensitiveDataHashingFlow::PathNode source, WeakSensitiveDataHashingFlow::PathNode sink +) { + ComputationallyExpensiveHashFunction::Flow::flowPath(source.asPathNode2(), sink.asPathNode2()) } diff --git a/python/ql/src/Security/CWE-327/WeakSensitiveDataHashing.ql b/python/ql/src/Security/CWE-327/WeakSensitiveDataHashing.ql index ce46a21fe71..ef72ae1fdbc 100644 --- a/python/ql/src/Security/CWE-327/WeakSensitiveDataHashing.ql +++ b/python/ql/src/Security/CWE-327/WeakSensitiveDataHashing.ql @@ -16,33 +16,29 @@ import python import semmle.python.security.dataflow.WeakSensitiveDataHashingQuery import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking -import DataFlow::PathGraph +import WeakSensitiveDataHashingFlow::PathGraph from - DataFlow::PathNode source, DataFlow::PathNode sink, string ending, string algorithmName, - string classification + WeakSensitiveDataHashingFlow::PathNode source, WeakSensitiveDataHashingFlow::PathNode sink, + string ending, string algorithmName, string classification where - exists(NormalHashFunction::Configuration config | - config.hasFlowPath(source, sink) and - algorithmName = sink.getNode().(NormalHashFunction::Sink).getAlgorithmName() and - classification = source.getNode().(NormalHashFunction::Source).getClassification() and - ending = "." - ) + normalHashFunctionFlowPath(source, sink) and + algorithmName = sink.getNode().(NormalHashFunction::Sink).getAlgorithmName() and + classification = source.getNode().(NormalHashFunction::Source).getClassification() and + ending = "." or - exists(ComputationallyExpensiveHashFunction::Configuration config | - config.hasFlowPath(source, sink) and - algorithmName = sink.getNode().(ComputationallyExpensiveHashFunction::Sink).getAlgorithmName() and - classification = - source.getNode().(ComputationallyExpensiveHashFunction::Source).getClassification() and - ( - sink.getNode().(ComputationallyExpensiveHashFunction::Sink).isComputationallyExpensive() and - ending = "." - or - not sink.getNode().(ComputationallyExpensiveHashFunction::Sink).isComputationallyExpensive() and - ending = - " for " + classification + - " hashing, since it is not a computationally expensive hash function." - ) + computationallyExpensiveHashFunctionFlowPath(source, sink) and + algorithmName = sink.getNode().(ComputationallyExpensiveHashFunction::Sink).getAlgorithmName() and + classification = + source.getNode().(ComputationallyExpensiveHashFunction::Source).getClassification() and + ( + sink.getNode().(ComputationallyExpensiveHashFunction::Sink).isComputationallyExpensive() and + ending = "." + or + not sink.getNode().(ComputationallyExpensiveHashFunction::Sink).isComputationallyExpensive() and + ending = + " for " + classification + + " hashing, since it is not a computationally expensive hash function." ) select sink.getNode(), source, sink, "$@ is used in a hashing algorithm (" + algorithmName + ") that is insecure" + ending, diff --git a/python/ql/test/query-tests/Security/CWE-327-WeakSensitiveDataHashing/WeakSensitiveDataHashing.expected b/python/ql/test/query-tests/Security/CWE-327-WeakSensitiveDataHashing/WeakSensitiveDataHashing.expected index 30a04916e7f..6be594dae63 100644 --- a/python/ql/test/query-tests/Security/CWE-327-WeakSensitiveDataHashing/WeakSensitiveDataHashing.expected +++ b/python/ql/test/query-tests/Security/CWE-327-WeakSensitiveDataHashing/WeakSensitiveDataHashing.expected @@ -5,13 +5,13 @@ edges | test_cryptodome.py:2:37:2:51 | ControlFlowNode for ImportMember | test_cryptodome.py:2:37:2:51 | GSSA Variable get_certificate | | test_cryptodome.py:2:37:2:51 | GSSA Variable get_certificate | test_cryptodome.py:6:17:6:31 | ControlFlowNode for get_certificate | | test_cryptodome.py:6:5:6:13 | SSA variable dangerous | test_cryptodome.py:8:19:8:27 | ControlFlowNode for dangerous | -| test_cryptodome.py:6:17:6:31 | ControlFlowNode for get_certificate | test_cryptodome.py:6:5:6:13 | SSA variable dangerous | +| test_cryptodome.py:6:17:6:31 | ControlFlowNode for get_certificate | test_cryptodome.py:6:17:6:33 | ControlFlowNode for get_certificate() | | test_cryptodome.py:6:17:6:33 | ControlFlowNode for get_certificate() | test_cryptodome.py:6:5:6:13 | SSA variable dangerous | | test_cryptodome.py:13:5:13:13 | SSA variable dangerous | test_cryptodome.py:15:19:15:27 | ControlFlowNode for dangerous | -| test_cryptodome.py:13:17:13:28 | ControlFlowNode for get_password | test_cryptodome.py:13:5:13:13 | SSA variable dangerous | +| test_cryptodome.py:13:17:13:28 | ControlFlowNode for get_password | test_cryptodome.py:13:17:13:30 | ControlFlowNode for get_password() | | test_cryptodome.py:13:17:13:30 | ControlFlowNode for get_password() | test_cryptodome.py:13:5:13:13 | SSA variable dangerous | | test_cryptodome.py:20:5:20:13 | SSA variable dangerous | test_cryptodome.py:24:19:24:27 | ControlFlowNode for dangerous | -| test_cryptodome.py:20:17:20:28 | ControlFlowNode for get_password | test_cryptodome.py:20:5:20:13 | SSA variable dangerous | +| test_cryptodome.py:20:17:20:28 | ControlFlowNode for get_password | test_cryptodome.py:20:17:20:30 | ControlFlowNode for get_password() | | test_cryptodome.py:20:17:20:30 | ControlFlowNode for get_password() | test_cryptodome.py:20:5:20:13 | SSA variable dangerous | | test_cryptography.py:3:23:3:34 | ControlFlowNode for ImportMember | test_cryptography.py:3:23:3:34 | GSSA Variable get_password | | test_cryptography.py:3:23:3:34 | GSSA Variable get_password | test_cryptography.py:15:17:15:28 | ControlFlowNode for get_password | @@ -19,13 +19,13 @@ edges | test_cryptography.py:3:37:3:51 | ControlFlowNode for ImportMember | test_cryptography.py:3:37:3:51 | GSSA Variable get_certificate | | test_cryptography.py:3:37:3:51 | GSSA Variable get_certificate | test_cryptography.py:7:17:7:31 | ControlFlowNode for get_certificate | | test_cryptography.py:7:5:7:13 | SSA variable dangerous | test_cryptography.py:9:19:9:27 | ControlFlowNode for dangerous | -| test_cryptography.py:7:17:7:31 | ControlFlowNode for get_certificate | test_cryptography.py:7:5:7:13 | SSA variable dangerous | +| test_cryptography.py:7:17:7:31 | ControlFlowNode for get_certificate | test_cryptography.py:7:17:7:33 | ControlFlowNode for get_certificate() | | test_cryptography.py:7:17:7:33 | ControlFlowNode for get_certificate() | test_cryptography.py:7:5:7:13 | SSA variable dangerous | | test_cryptography.py:15:5:15:13 | SSA variable dangerous | test_cryptography.py:17:19:17:27 | ControlFlowNode for dangerous | -| test_cryptography.py:15:17:15:28 | ControlFlowNode for get_password | test_cryptography.py:15:5:15:13 | SSA variable dangerous | +| test_cryptography.py:15:17:15:28 | ControlFlowNode for get_password | test_cryptography.py:15:17:15:30 | ControlFlowNode for get_password() | | test_cryptography.py:15:17:15:30 | ControlFlowNode for get_password() | test_cryptography.py:15:5:15:13 | SSA variable dangerous | | test_cryptography.py:23:5:23:13 | SSA variable dangerous | test_cryptography.py:27:19:27:27 | ControlFlowNode for dangerous | -| test_cryptography.py:23:17:23:28 | ControlFlowNode for get_password | test_cryptography.py:23:5:23:13 | SSA variable dangerous | +| test_cryptography.py:23:17:23:28 | ControlFlowNode for get_password | test_cryptography.py:23:17:23:30 | ControlFlowNode for get_password() | | test_cryptography.py:23:17:23:30 | ControlFlowNode for get_password() | test_cryptography.py:23:5:23:13 | SSA variable dangerous | nodes | test_cryptodome.py:2:23:2:34 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | From 6f08e73dbc874d11228d22dfd10b587618203be3 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:27:19 +0200 Subject: [PATCH 097/788] Python: Move `UnsafeDeserialization` to new dataflow API --- .../dataflow/UnsafeDeserializationQuery.qll | 15 ++++++++++++++- .../src/Security/CWE-502/UnsafeDeserialization.ql | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/UnsafeDeserializationQuery.qll b/python/ql/lib/semmle/python/security/dataflow/UnsafeDeserializationQuery.qll index 0a2046b8a4b..d9dfde62bcb 100644 --- a/python/ql/lib/semmle/python/security/dataflow/UnsafeDeserializationQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/UnsafeDeserializationQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import UnsafeDeserializationCustomizations::UnsafeDeserialization /** + * DEPRECATED: Use `UnsafeDeserializationFlow` module instead. + * * A taint-tracking configuration for detecting "code execution from deserialization" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "UnsafeDeserialization" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -27,3 +29,14 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module UnsafeDeserializationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "code execution from deserialization" vulnerabilities. */ +module UnsafeDeserializationFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-502/UnsafeDeserialization.ql b/python/ql/src/Security/CWE-502/UnsafeDeserialization.ql index a15838cdabd..395101de78f 100644 --- a/python/ql/src/Security/CWE-502/UnsafeDeserialization.ql +++ b/python/ql/src/Security/CWE-502/UnsafeDeserialization.ql @@ -14,9 +14,9 @@ import python import semmle.python.security.dataflow.UnsafeDeserializationQuery -import DataFlow::PathGraph +import UnsafeDeserializationFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from UnsafeDeserializationFlow::PathNode source, UnsafeDeserializationFlow::PathNode sink +where UnsafeDeserializationFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Unsafe deserialization depends on a $@.", source.getNode(), "user-provided value" From 4c76ca6127b3887e27759e2380e1275e18f4d801 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:27:55 +0200 Subject: [PATCH 098/788] Python: Move `UrlRedirect` to new dataflow API --- .../python/security/dataflow/UrlRedirectQuery.qll | 15 ++++++++++++++- python/ql/src/Security/CWE-601/UrlRedirect.ql | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/UrlRedirectQuery.qll b/python/ql/lib/semmle/python/security/dataflow/UrlRedirectQuery.qll index 599f08d133a..cb1adc21135 100644 --- a/python/ql/lib/semmle/python/security/dataflow/UrlRedirectQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/UrlRedirectQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import UrlRedirectCustomizations::UrlRedirect /** + * DEPRECATED: Use `UrlRedirectFlow` module instead. + * * A taint-tracking configuration for detecting "URL redirection" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "UrlRedirect" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -27,3 +29,14 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module UrlRedirectConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "URL redirection" vulnerabilities. */ +module UrlRedirectFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-601/UrlRedirect.ql b/python/ql/src/Security/CWE-601/UrlRedirect.ql index fbe3f3349ce..813cb4a997a 100644 --- a/python/ql/src/Security/CWE-601/UrlRedirect.ql +++ b/python/ql/src/Security/CWE-601/UrlRedirect.ql @@ -14,9 +14,9 @@ import python import semmle.python.security.dataflow.UrlRedirectQuery -import DataFlow::PathGraph +import UrlRedirectFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from UrlRedirectFlow::PathNode source, UrlRedirectFlow::PathNode sink +where UrlRedirectFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Untrusted URL redirection depends on a $@.", source.getNode(), "user-provided value" From 60e45335dd420717ac7fe272f57a98ebfd94a830 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:29:01 +0200 Subject: [PATCH 099/788] Python: Move `Xxe` to new dataflow API --- .../semmle/python/security/dataflow/XxeQuery.qll | 15 ++++++++++++++- python/ql/src/Security/CWE-611/Xxe.ql | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/XxeQuery.qll b/python/ql/lib/semmle/python/security/dataflow/XxeQuery.qll index dd2409f2a3c..8d85d275f1e 100644 --- a/python/ql/lib/semmle/python/security/dataflow/XxeQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/XxeQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import XxeCustomizations::Xxe /** + * DEPRECATED: Use `XxeFlow` module instead. + * * A taint-tracking configuration for detecting "XML External Entity (XXE)" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "Xxe" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -26,3 +28,14 @@ class Configuration extends TaintTracking::Configuration { node instanceof Sanitizer } } + +private module XxeConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "XML External Entity (XXE)" vulnerabilities. */ +module XxeFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-611/Xxe.ql b/python/ql/src/Security/CWE-611/Xxe.ql index b361f6ffcfb..948e0f8a5f9 100644 --- a/python/ql/src/Security/CWE-611/Xxe.ql +++ b/python/ql/src/Security/CWE-611/Xxe.ql @@ -14,10 +14,10 @@ import python import semmle.python.security.dataflow.XxeQuery -import DataFlow::PathGraph +import XxeFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink -where cfg.hasFlowPath(source, sink) +from XxeFlow::PathNode source, XxeFlow::PathNode sink +where XxeFlow::flowPath(source, sink) select sink.getNode(), source, sink, "XML parsing depends on a $@ without guarding against external entity expansion.", source.getNode(), "user-provided value" From 4c336990e52ac3bdcd9214b0a2ed84df812b6d99 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:30:00 +0200 Subject: [PATCH 100/788] Python: Move `XpathInjection` to new dataflow API --- .../security/dataflow/XpathInjectionQuery.qll | 15 ++++++++++++++- python/ql/src/Security/CWE-643/XpathInjection.ql | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/XpathInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/XpathInjectionQuery.qll index aa5a27c5392..34a34e49ba2 100644 --- a/python/ql/lib/semmle/python/security/dataflow/XpathInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/XpathInjectionQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import XpathInjectionCustomizations::XpathInjection /** + * DEPRECATED: Use `XpathInjectionFlow` module instead. + * * A taint-tracking configuration for detecting "Xpath Injection" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "Xpath Injection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -27,3 +29,14 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module XpathInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "Xpath Injection" vulnerabilities. */ +module XpathInjectionFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-643/XpathInjection.ql b/python/ql/src/Security/CWE-643/XpathInjection.ql index 07df47624e7..90d4bcbd2c3 100644 --- a/python/ql/src/Security/CWE-643/XpathInjection.ql +++ b/python/ql/src/Security/CWE-643/XpathInjection.ql @@ -13,9 +13,9 @@ import python import semmle.python.security.dataflow.XpathInjectionQuery -import DataFlow::PathGraph +import XpathInjectionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from XpathInjectionFlow::PathNode source, XpathInjectionFlow::PathNode sink +where XpathInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "XPath expression depends on a $@.", source.getNode(), "user-provided value" From c6caf83dfe0b9a86f032821909e9936626265343 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:30:40 +0200 Subject: [PATCH 101/788] Python: Move `PolynomialReDoS` to new dataflow API --- .../security/dataflow/PolynomialReDoSQuery.qll | 15 ++++++++++++++- python/ql/src/Security/CWE-730/PolynomialReDoS.ql | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSQuery.qll b/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSQuery.qll index d9fd1e843e8..2279814e49e 100644 --- a/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import PolynomialReDoSCustomizations::PolynomialReDoS /** + * DEPRECATED: Use `PolynomialReDoSFlow` module instead. + * * A taint-tracking configuration for detecting "polynomial regular expression denial of service (ReDoS)" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "PolynomialReDoS" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -27,3 +29,14 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module PolynomialReDoSConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "polynomial regular expression denial of service (ReDoS)" vulnerabilities. */ +module PolynomialReDoSFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-730/PolynomialReDoS.ql b/python/ql/src/Security/CWE-730/PolynomialReDoS.ql index 1b315c651c3..b3b4a8cac92 100644 --- a/python/ql/src/Security/CWE-730/PolynomialReDoS.ql +++ b/python/ql/src/Security/CWE-730/PolynomialReDoS.ql @@ -15,13 +15,13 @@ import python import semmle.python.security.dataflow.PolynomialReDoSQuery -import DataFlow::PathGraph +import PolynomialReDoSFlow::PathGraph from - Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, Sink sinkNode, + PolynomialReDoSFlow::PathNode source, PolynomialReDoSFlow::PathNode sink, Sink sinkNode, PolynomialBackTrackingTerm regexp where - config.hasFlowPath(source, sink) and + PolynomialReDoSFlow::flowPath(source, sink) and sinkNode = sink.getNode() and regexp.getRootTerm() = sinkNode.getRegExp() // not ( From add1077532161435c90af9e2257efd2f2e9098e8 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:31:47 +0200 Subject: [PATCH 102/788] Python: Move `RegexInjection` to new dataflow API --- .../security/dataflow/RegexInjectionQuery.qll | 17 +++++++++++++++-- .../ql/src/Security/CWE-730/RegexInjection.ql | 6 +++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/RegexInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/RegexInjectionQuery.qll index c8287b22c75..168091bf212 100644 --- a/python/ql/lib/semmle/python/security/dataflow/RegexInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/RegexInjectionQuery.qll @@ -1,5 +1,5 @@ /** - * Provides a taint-tracking configuration for detecting regular expression injection + * Provides a taint-tracking configuration for detecting "regular expression injection" * vulnerabilities. * * Note, for performance reasons: only import this file if @@ -13,9 +13,11 @@ import semmle.python.dataflow.new.TaintTracking import RegexInjectionCustomizations::RegexInjection /** + * DEPRECATED: Use `RegexInjectionFlow` module instead. + * * A taint-tracking configuration for detecting "reflected server-side cross-site scripting" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "RegexInjection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -28,3 +30,14 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module RegexInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "regular expression injection" vulnerabilities. */ +module RegexInjectionFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-730/RegexInjection.ql b/python/ql/src/Security/CWE-730/RegexInjection.ql index 5075c7a675d..fe1dc1dfe66 100644 --- a/python/ql/src/Security/CWE-730/RegexInjection.ql +++ b/python/ql/src/Security/CWE-730/RegexInjection.ql @@ -16,13 +16,13 @@ import python private import semmle.python.Concepts import semmle.python.security.dataflow.RegexInjectionQuery -import DataFlow::PathGraph +import RegexInjectionFlow::PathGraph from - Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, + RegexInjectionFlow::PathNode source, RegexInjectionFlow::PathNode sink, RegexExecution regexExecution where - config.hasFlowPath(source, sink) and + RegexInjectionFlow::flowPath(source, sink) and regexExecution = sink.getNode().(Sink).getRegexExecution() select sink.getNode(), source, sink, "This regular expression depends on a $@ and is executed by $@.", source.getNode(), From 46322b717a9c33c78cb2f7d8e9658850d9545eb7 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:32:18 +0200 Subject: [PATCH 103/788] Python: Move `XmlBomb` to new dataflow API --- .../python/security/dataflow/XmlBombQuery.qll | 15 ++++++++++++++- python/ql/src/Security/CWE-776/XmlBomb.ql | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/XmlBombQuery.qll b/python/ql/lib/semmle/python/security/dataflow/XmlBombQuery.qll index d0c0b85d84f..dcf3939bc78 100644 --- a/python/ql/lib/semmle/python/security/dataflow/XmlBombQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/XmlBombQuery.qll @@ -12,9 +12,11 @@ import semmle.python.dataflow.new.TaintTracking import XmlBombCustomizations::XmlBomb /** + * DEPRECATED: Use `XmlBombFlow` module instead. + * * A taint-tracking configuration for detecting "XML bomb" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "XmlBomb" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -26,3 +28,14 @@ class Configuration extends TaintTracking::Configuration { node instanceof Sanitizer } } + +private module XmlBombConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "XML bomb" vulnerabilities. */ +module XmlBombFlow = TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-776/XmlBomb.ql b/python/ql/src/Security/CWE-776/XmlBomb.ql index f943aa58c44..c92d4f289f5 100644 --- a/python/ql/src/Security/CWE-776/XmlBomb.ql +++ b/python/ql/src/Security/CWE-776/XmlBomb.ql @@ -14,10 +14,10 @@ import python import semmle.python.security.dataflow.XmlBombQuery -import DataFlow::PathGraph +import XmlBombFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink -where cfg.hasFlowPath(source, sink) +from XmlBombFlow::PathNode source, XmlBombFlow::PathNode sink +where XmlBombFlow::flowPath(source, sink) select sink.getNode(), source, sink, "XML parsing depends on a $@ without guarding against uncontrolled entity expansion.", source.getNode(), "user-provided value" From dbfe5175555ee4d95c630d738132daf9d6b3826f Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:34:36 +0200 Subject: [PATCH 104/788] Python: Move `HardcodedCredentials` to new dataflow API --- .../Security/CWE-798/HardcodedCredentials.ql | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/python/ql/src/Security/CWE-798/HardcodedCredentials.ql b/python/ql/src/Security/CWE-798/HardcodedCredentials.ql index d1d29a78ff5..0a92427ec23 100644 --- a/python/ql/src/Security/CWE-798/HardcodedCredentials.ql +++ b/python/ql/src/Security/CWE-798/HardcodedCredentials.ql @@ -16,7 +16,6 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import semmle.python.filters.Tests -import DataFlow::PathGraph bindingset[char, fraction] predicate fewer_characters_than(StrConst str, string char, float fraction) { @@ -108,17 +107,19 @@ private string getACredentialRegex() { result = "(?i).*(cert)(?!.*(format|name)).*" } -class HardcodedCredentialsConfiguration extends TaintTracking::Configuration { - HardcodedCredentialsConfiguration() { this = "Hardcoded credentials configuration" } +private module HardcodedCredentialsConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof HardcodedValueSource } - override predicate isSource(DataFlow::Node source) { source instanceof HardcodedValueSource } - - override predicate isSink(DataFlow::Node sink) { sink instanceof CredentialSink } + predicate isSink(DataFlow::Node sink) { sink instanceof CredentialSink } } -from HardcodedCredentialsConfiguration config, DataFlow::PathNode src, DataFlow::PathNode sink +module HardcodedCredentialsFlow = TaintTracking::Global; + +import HardcodedCredentialsFlow::PathGraph + +from HardcodedCredentialsFlow::PathNode src, HardcodedCredentialsFlow::PathNode sink where - config.hasFlowPath(src, sink) and + HardcodedCredentialsFlow::flowPath(src, sink) and not any(TestScope test).contains(src.getNode().asCfgNode().getNode()) select src.getNode(), src, sink, "This hardcoded value is $@.", sink.getNode(), "used as credentials" From 657b1997cc7a207cdbb64b10c51950ba76e5fffa Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:41:14 +0200 Subject: [PATCH 105/788] Python: Move `FullServerSideRequestForgery` and `PartialServerSideRequestForgery` to new dataflow API --- .../ServerSideRequestForgeryQuery.qll | 59 +++++- .../CWE-918/FullServerSideRequestForgery.ql | 8 +- .../PartialServerSideRequestForgery.ql | 8 +- .../FullServerSideRequestForgery.expected | 196 ------------------ .../PartialServerSideRequestForgery.expected | 106 ---------- 5 files changed, 61 insertions(+), 316 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/ServerSideRequestForgeryQuery.qll b/python/ql/lib/semmle/python/security/dataflow/ServerSideRequestForgeryQuery.qll index 36ec416cca2..a6c08185bd1 100644 --- a/python/ql/lib/semmle/python/security/dataflow/ServerSideRequestForgeryQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/ServerSideRequestForgeryQuery.qll @@ -13,6 +13,8 @@ import semmle.python.Concepts import ServerSideRequestForgeryCustomizations::ServerSideRequestForgery /** + * DEPRECATED: Use `FullServerSideRequestForgeryFlow` module instead. + * * A taint-tracking configuration for detecting "Server-side request forgery" vulnerabilities. * * This configuration has a sanitizer to limit results to cases where attacker has full control of URL. @@ -21,7 +23,7 @@ import ServerSideRequestForgeryCustomizations::ServerSideRequestForgery * You should use the `fullyControlledRequest` to only select results where all * URL parts are fully controlled. */ -class FullServerSideRequestForgeryConfiguration extends TaintTracking::Configuration { +deprecated class FullServerSideRequestForgeryConfiguration extends TaintTracking::Configuration { FullServerSideRequestForgeryConfiguration() { this = "FullServerSideRequestForgery" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -39,24 +41,51 @@ class FullServerSideRequestForgeryConfiguration extends TaintTracking::Configura } } +/** + * This configuration has a sanitizer to limit results to cases where attacker has full control of URL. + * See `PartialServerSideRequestForgery` for a variant without this requirement. + * + * You should use the `fullyControlledRequest` to only select results where all + * URL parts are fully controlled. + */ +private module FullServerSideRequestForgeryConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { + node instanceof Sanitizer + or + node instanceof FullUrlControlSanitizer + } +} + +/** + * Global taint-tracking for detecting "Full server-side request forgery" vulnerabilities. + * + * You should use the `fullyControlledRequest` to only select results where all + * URL parts are fully controlled. + */ +module FullServerSideRequestForgeryFlow = TaintTracking::Global; + /** * Holds if all URL parts of `request` is fully user controlled. */ predicate fullyControlledRequest(Http::Client::Request request) { - exists(FullServerSideRequestForgeryConfiguration fullConfig | - forall(DataFlow::Node urlPart | urlPart = request.getAUrlPart() | - fullConfig.hasFlow(_, urlPart) - ) + forall(DataFlow::Node urlPart | urlPart = request.getAUrlPart() | + FullServerSideRequestForgeryFlow::flow(_, urlPart) ) } /** + * DEPRECATED: Use `FullServerSideRequestForgeryFlow` module instead. + * * A taint-tracking configuration for detecting "Server-side request forgery" vulnerabilities. * * This configuration has results, even when the attacker does not have full control over the URL. * See `FullServerSideRequestForgeryConfiguration`, and the `fullyControlledRequest` predicate. */ -class PartialServerSideRequestForgeryConfiguration extends TaintTracking::Configuration { +deprecated class PartialServerSideRequestForgeryConfiguration extends TaintTracking::Configuration { PartialServerSideRequestForgeryConfiguration() { this = "PartialServerSideRequestForgery" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -69,3 +98,21 @@ class PartialServerSideRequestForgeryConfiguration extends TaintTracking::Config guard instanceof SanitizerGuard } } + +/** + * This configuration has results, even when the attacker does not have full control over the URL. + * See `FullServerSideRequestForgeryConfiguration`, and the `fullyControlledRequest` predicate. + */ +private module PartialServerSideRequestForgeryConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Global taint-tracking for detecting "partial server-side request forgery" vulnerabilities. + */ +module PartialServerSideRequestForgeryFlow = + TaintTracking::Global; diff --git a/python/ql/src/Security/CWE-918/FullServerSideRequestForgery.ql b/python/ql/src/Security/CWE-918/FullServerSideRequestForgery.ql index a29f9e775a1..4114ff31ce0 100644 --- a/python/ql/src/Security/CWE-918/FullServerSideRequestForgery.ql +++ b/python/ql/src/Security/CWE-918/FullServerSideRequestForgery.ql @@ -12,14 +12,14 @@ import python import semmle.python.security.dataflow.ServerSideRequestForgeryQuery -import DataFlow::PathGraph +import FullServerSideRequestForgeryFlow::PathGraph from - FullServerSideRequestForgeryConfiguration fullConfig, DataFlow::PathNode source, - DataFlow::PathNode sink, Http::Client::Request request + FullServerSideRequestForgeryFlow::PathNode source, + FullServerSideRequestForgeryFlow::PathNode sink, Http::Client::Request request where request = sink.getNode().(Sink).getRequest() and - fullConfig.hasFlowPath(source, sink) and + FullServerSideRequestForgeryFlow::flowPath(source, sink) and fullyControlledRequest(request) select request, source, sink, "The full URL of this request depends on a $@.", source.getNode(), "user-provided value" diff --git a/python/ql/src/Security/CWE-918/PartialServerSideRequestForgery.ql b/python/ql/src/Security/CWE-918/PartialServerSideRequestForgery.ql index 3bbeaabcce6..c6c679ca5e3 100644 --- a/python/ql/src/Security/CWE-918/PartialServerSideRequestForgery.ql +++ b/python/ql/src/Security/CWE-918/PartialServerSideRequestForgery.ql @@ -12,14 +12,14 @@ import python import semmle.python.security.dataflow.ServerSideRequestForgeryQuery -import DataFlow::PathGraph +import PartialServerSideRequestForgeryFlow::PathGraph from - PartialServerSideRequestForgeryConfiguration partialConfig, DataFlow::PathNode source, - DataFlow::PathNode sink, Http::Client::Request request + PartialServerSideRequestForgeryFlow::PathNode source, + PartialServerSideRequestForgeryFlow::PathNode sink, Http::Client::Request request where request = sink.getNode().(Sink).getRequest() and - partialConfig.hasFlowPath(source, sink) and + PartialServerSideRequestForgeryFlow::flowPath(source, sink) and not fullyControlledRequest(request) select request, source, sink, "Part of the URL of this request depends on a $@.", source.getNode(), "user-provided value" diff --git a/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/FullServerSideRequestForgery.expected b/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/FullServerSideRequestForgery.expected index a5c9c706518..3db6c82b96c 100644 --- a/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/FullServerSideRequestForgery.expected +++ b/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/FullServerSideRequestForgery.expected @@ -1,306 +1,110 @@ edges | full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | full_partial_test.py:1:19:1:25 | GSSA Variable request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | full_partial_test.py:1:19:1:25 | GSSA Variable request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:8:17:8:23 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:38:17:38:23 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:58:17:58:23 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:72:17:72:23 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:86:18:86:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:92:18:92:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:98:18:98:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:104:18:104:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:110:18:110:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:119:18:119:24 | ControlFlowNode for request | -| full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | | full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | | full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:12:5:12:7 | SSA variable url | -| full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:12:5:12:7 | SSA variable url | -| full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:18:5:18:7 | SSA variable url | | full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:18:5:18:7 | SSA variable url | | full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:22:5:22:7 | SSA variable url | -| full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:22:5:22:7 | SSA variable url | | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:7:5:7:14 | SSA variable user_input | -| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:7:5:7:14 | SSA variable user_input | -| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:8:5:8:13 | SSA variable query_val | -| full_partial_test.py:8:5:8:13 | SSA variable query_val | full_partial_test.py:22:5:22:7 | SSA variable url | -| full_partial_test.py:8:17:8:23 | ControlFlowNode for request | full_partial_test.py:8:5:8:13 | SSA variable query_val | -| full_partial_test.py:12:5:12:7 | SSA variable url | full_partial_test.py:13:18:13:20 | ControlFlowNode for url | | full_partial_test.py:12:5:12:7 | SSA variable url | full_partial_test.py:13:18:13:20 | ControlFlowNode for url | | full_partial_test.py:18:5:18:7 | SSA variable url | full_partial_test.py:19:18:19:20 | ControlFlowNode for url | -| full_partial_test.py:18:5:18:7 | SSA variable url | full_partial_test.py:19:18:19:20 | ControlFlowNode for url | -| full_partial_test.py:22:5:22:7 | SSA variable url | full_partial_test.py:23:18:23:20 | ControlFlowNode for url | | full_partial_test.py:22:5:22:7 | SSA variable url | full_partial_test.py:23:18:23:20 | ControlFlowNode for url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:41:5:41:7 | SSA variable url | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:41:5:41:7 | SSA variable url | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:44:5:44:7 | SSA variable url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:44:5:44:7 | SSA variable url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:47:5:47:7 | SSA variable url | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:47:5:47:7 | SSA variable url | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:50:5:50:7 | SSA variable url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:50:5:50:7 | SSA variable url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:53:5:53:7 | SSA variable url | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:53:5:53:7 | SSA variable url | | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:37:5:37:14 | SSA variable user_input | -| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:37:5:37:14 | SSA variable user_input | -| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:38:5:38:13 | SSA variable query_val | -| full_partial_test.py:38:5:38:13 | SSA variable query_val | full_partial_test.py:47:5:47:7 | SSA variable url | -| full_partial_test.py:38:17:38:23 | ControlFlowNode for request | full_partial_test.py:38:5:38:13 | SSA variable query_val | -| full_partial_test.py:41:5:41:7 | SSA variable url | full_partial_test.py:42:18:42:20 | ControlFlowNode for url | | full_partial_test.py:41:5:41:7 | SSA variable url | full_partial_test.py:42:18:42:20 | ControlFlowNode for url | | full_partial_test.py:44:5:44:7 | SSA variable url | full_partial_test.py:45:18:45:20 | ControlFlowNode for url | -| full_partial_test.py:44:5:44:7 | SSA variable url | full_partial_test.py:45:18:45:20 | ControlFlowNode for url | -| full_partial_test.py:47:5:47:7 | SSA variable url | full_partial_test.py:48:18:48:20 | ControlFlowNode for url | | full_partial_test.py:47:5:47:7 | SSA variable url | full_partial_test.py:48:18:48:20 | ControlFlowNode for url | | full_partial_test.py:50:5:50:7 | SSA variable url | full_partial_test.py:51:18:51:20 | ControlFlowNode for url | -| full_partial_test.py:50:5:50:7 | SSA variable url | full_partial_test.py:51:18:51:20 | ControlFlowNode for url | -| full_partial_test.py:53:5:53:7 | SSA variable url | full_partial_test.py:54:18:54:20 | ControlFlowNode for url | | full_partial_test.py:53:5:53:7 | SSA variable url | full_partial_test.py:54:18:54:20 | ControlFlowNode for url | | full_partial_test.py:57:5:57:14 | SSA variable user_input | full_partial_test.py:61:5:61:7 | SSA variable url | -| full_partial_test.py:57:5:57:14 | SSA variable user_input | full_partial_test.py:61:5:61:7 | SSA variable url | | full_partial_test.py:57:5:57:14 | SSA variable user_input | full_partial_test.py:64:5:64:7 | SSA variable url | -| full_partial_test.py:57:5:57:14 | SSA variable user_input | full_partial_test.py:64:5:64:7 | SSA variable url | -| full_partial_test.py:57:5:57:14 | SSA variable user_input | full_partial_test.py:67:5:67:7 | SSA variable url | | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:57:5:57:14 | SSA variable user_input | -| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:57:5:57:14 | SSA variable user_input | -| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:58:5:58:13 | SSA variable query_val | -| full_partial_test.py:58:5:58:13 | SSA variable query_val | full_partial_test.py:67:5:67:7 | SSA variable url | -| full_partial_test.py:58:17:58:23 | ControlFlowNode for request | full_partial_test.py:58:5:58:13 | SSA variable query_val | -| full_partial_test.py:61:5:61:7 | SSA variable url | full_partial_test.py:62:18:62:20 | ControlFlowNode for url | | full_partial_test.py:61:5:61:7 | SSA variable url | full_partial_test.py:62:18:62:20 | ControlFlowNode for url | | full_partial_test.py:64:5:64:7 | SSA variable url | full_partial_test.py:65:18:65:20 | ControlFlowNode for url | -| full_partial_test.py:64:5:64:7 | SSA variable url | full_partial_test.py:65:18:65:20 | ControlFlowNode for url | -| full_partial_test.py:67:5:67:7 | SSA variable url | full_partial_test.py:68:18:68:20 | ControlFlowNode for url | -| full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:75:5:75:7 | SSA variable url | | full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:75:5:75:7 | SSA variable url | | full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:78:5:78:7 | SSA variable url | -| full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:78:5:78:7 | SSA variable url | -| full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:81:5:81:7 | SSA variable url | | full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:81:5:81:7 | SSA variable url | | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:71:5:71:14 | SSA variable user_input | -| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:71:5:71:14 | SSA variable user_input | -| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:72:5:72:13 | SSA variable query_val | -| full_partial_test.py:72:5:72:13 | SSA variable query_val | full_partial_test.py:81:5:81:7 | SSA variable url | -| full_partial_test.py:72:17:72:23 | ControlFlowNode for request | full_partial_test.py:72:5:72:13 | SSA variable query_val | -| full_partial_test.py:75:5:75:7 | SSA variable url | full_partial_test.py:76:18:76:20 | ControlFlowNode for url | | full_partial_test.py:75:5:75:7 | SSA variable url | full_partial_test.py:76:18:76:20 | ControlFlowNode for url | | full_partial_test.py:78:5:78:7 | SSA variable url | full_partial_test.py:79:18:79:20 | ControlFlowNode for url | -| full_partial_test.py:78:5:78:7 | SSA variable url | full_partial_test.py:79:18:79:20 | ControlFlowNode for url | | full_partial_test.py:81:5:81:7 | SSA variable url | full_partial_test.py:82:18:82:20 | ControlFlowNode for url | -| full_partial_test.py:81:5:81:7 | SSA variable url | full_partial_test.py:82:18:82:20 | ControlFlowNode for url | -| full_partial_test.py:86:5:86:14 | SSA variable user_input | full_partial_test.py:88:5:88:7 | SSA variable url | -| full_partial_test.py:86:18:86:24 | ControlFlowNode for request | full_partial_test.py:86:5:86:14 | SSA variable user_input | -| full_partial_test.py:88:5:88:7 | SSA variable url | full_partial_test.py:89:18:89:20 | ControlFlowNode for url | -| full_partial_test.py:92:5:92:14 | SSA variable user_input | full_partial_test.py:94:5:94:7 | SSA variable url | -| full_partial_test.py:92:18:92:24 | ControlFlowNode for request | full_partial_test.py:92:5:92:14 | SSA variable user_input | -| full_partial_test.py:94:5:94:7 | SSA variable url | full_partial_test.py:95:18:95:20 | ControlFlowNode for url | -| full_partial_test.py:98:5:98:14 | SSA variable user_input | full_partial_test.py:100:5:100:7 | SSA variable url | -| full_partial_test.py:98:18:98:24 | ControlFlowNode for request | full_partial_test.py:98:5:98:14 | SSA variable user_input | -| full_partial_test.py:100:5:100:7 | SSA variable url | full_partial_test.py:101:18:101:20 | ControlFlowNode for url | -| full_partial_test.py:104:5:104:14 | SSA variable user_input | full_partial_test.py:106:5:106:7 | SSA variable url | -| full_partial_test.py:104:18:104:24 | ControlFlowNode for request | full_partial_test.py:104:5:104:14 | SSA variable user_input | -| full_partial_test.py:106:5:106:7 | SSA variable url | full_partial_test.py:107:18:107:20 | ControlFlowNode for url | -| full_partial_test.py:110:5:110:14 | SSA variable user_input | full_partial_test.py:115:5:115:7 | SSA variable url | -| full_partial_test.py:110:18:110:24 | ControlFlowNode for request | full_partial_test.py:110:5:110:14 | SSA variable user_input | -| full_partial_test.py:115:5:115:7 | SSA variable url | full_partial_test.py:116:18:116:20 | ControlFlowNode for url | -| full_partial_test.py:119:5:119:14 | SSA variable user_input | full_partial_test.py:121:5:121:7 | SSA variable url | -| full_partial_test.py:119:18:119:24 | ControlFlowNode for request | full_partial_test.py:119:5:119:14 | SSA variable user_input | -| full_partial_test.py:121:5:121:7 | SSA variable url | full_partial_test.py:122:18:122:20 | ControlFlowNode for url | -| test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | test_http_client.py:1:26:1:32 | GSSA Variable request | | test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | test_http_client.py:1:26:1:32 | GSSA Variable request | | test_http_client.py:1:26:1:32 | GSSA Variable request | test_http_client.py:9:19:9:25 | ControlFlowNode for request | -| test_http_client.py:1:26:1:32 | GSSA Variable request | test_http_client.py:9:19:9:25 | ControlFlowNode for request | | test_http_client.py:1:26:1:32 | GSSA Variable request | test_http_client.py:10:19:10:25 | ControlFlowNode for request | -| test_http_client.py:1:26:1:32 | GSSA Variable request | test_http_client.py:10:19:10:25 | ControlFlowNode for request | -| test_http_client.py:1:26:1:32 | GSSA Variable request | test_http_client.py:11:18:11:24 | ControlFlowNode for request | -| test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | | test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | | test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | SSA variable user_input | -| test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | | test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | -| test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | -| test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | SSA variable user_input | -| test_http_client.py:11:5:11:14 | SSA variable user_input | test_http_client.py:31:5:31:8 | SSA variable path | -| test_http_client.py:11:5:11:14 | SSA variable user_input | test_http_client.py:35:5:35:8 | SSA variable path | -| test_http_client.py:11:18:11:24 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | SSA variable user_input | -| test_http_client.py:31:5:31:8 | SSA variable path | test_http_client.py:33:25:33:28 | ControlFlowNode for path | -| test_http_client.py:35:5:35:8 | SSA variable path | test_http_client.py:37:25:37:28 | ControlFlowNode for path | -| test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | test_requests.py:1:19:1:25 | GSSA Variable request | | test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | test_requests.py:1:19:1:25 | GSSA Variable request | | test_requests.py:1:19:1:25 | GSSA Variable request | test_requests.py:6:18:6:24 | ControlFlowNode for request | -| test_requests.py:1:19:1:25 | GSSA Variable request | test_requests.py:6:18:6:24 | ControlFlowNode for request | | test_requests.py:6:5:6:14 | SSA variable user_input | test_requests.py:8:18:8:27 | ControlFlowNode for user_input | -| test_requests.py:6:5:6:14 | SSA variable user_input | test_requests.py:8:18:8:27 | ControlFlowNode for user_input | -| test_requests.py:6:18:6:24 | ControlFlowNode for request | test_requests.py:6:5:6:14 | SSA variable user_input | | test_requests.py:6:18:6:24 | ControlFlowNode for request | test_requests.py:6:5:6:14 | SSA variable user_input | nodes | full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | semmle.label | GSSA Variable request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | semmle.label | GSSA Variable request | | full_partial_test.py:7:5:7:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:7:5:7:14 | SSA variable user_input | semmle.label | SSA variable user_input | | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:8:5:8:13 | SSA variable query_val | semmle.label | SSA variable query_val | -| full_partial_test.py:8:17:8:23 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | semmle.label | ControlFlowNode for user_input | | full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | semmle.label | ControlFlowNode for user_input | | full_partial_test.py:12:5:12:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:12:5:12:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:13:18:13:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:13:18:13:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:18:5:18:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:18:5:18:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:19:18:19:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:19:18:19:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:22:5:22:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:22:5:22:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:23:18:23:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:23:18:23:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | semmle.label | SSA variable user_input | | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:38:5:38:13 | SSA variable query_val | semmle.label | SSA variable query_val | -| full_partial_test.py:38:17:38:23 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:41:5:41:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:41:5:41:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:42:18:42:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:42:18:42:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:44:5:44:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:44:5:44:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:45:18:45:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:45:18:45:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:47:5:47:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:47:5:47:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:48:18:48:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:48:18:48:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:50:5:50:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:50:5:50:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:51:18:51:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:51:18:51:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:53:5:53:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:53:5:53:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:54:18:54:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:54:18:54:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:57:5:57:14 | SSA variable user_input | semmle.label | SSA variable user_input | | full_partial_test.py:57:5:57:14 | SSA variable user_input | semmle.label | SSA variable user_input | | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:58:5:58:13 | SSA variable query_val | semmle.label | SSA variable query_val | -| full_partial_test.py:58:17:58:23 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:61:5:61:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:61:5:61:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:62:18:62:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:62:18:62:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:64:5:64:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:64:5:64:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:65:18:65:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:65:18:65:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:67:5:67:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:68:18:68:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:71:5:71:14 | SSA variable user_input | semmle.label | SSA variable user_input | | full_partial_test.py:71:5:71:14 | SSA variable user_input | semmle.label | SSA variable user_input | | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:72:5:72:13 | SSA variable query_val | semmle.label | SSA variable query_val | -| full_partial_test.py:72:17:72:23 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:75:5:75:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:75:5:75:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:76:18:76:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:76:18:76:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:78:5:78:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:78:5:78:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:79:18:79:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:79:18:79:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:81:5:81:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:81:5:81:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:82:18:82:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:82:18:82:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:86:5:86:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:86:18:86:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:88:5:88:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:89:18:89:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:92:5:92:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:92:18:92:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:94:5:94:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:95:18:95:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:98:5:98:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:98:18:98:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:100:5:100:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:101:18:101:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:104:5:104:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:104:18:104:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:106:5:106:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:107:18:107:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:110:5:110:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:110:18:110:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:115:5:115:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:116:18:116:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:119:5:119:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:119:18:119:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| full_partial_test.py:121:5:121:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:122:18:122:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test_http_client.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | -| test_http_client.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | -| test_http_client.py:9:5:9:15 | SSA variable unsafe_host | semmle.label | SSA variable unsafe_host | | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | semmle.label | SSA variable unsafe_host | | test_http_client.py:9:19:9:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| test_http_client.py:10:5:10:15 | SSA variable unsafe_path | semmle.label | SSA variable unsafe_path | | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | semmle.label | SSA variable unsafe_path | | test_http_client.py:10:19:10:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| test_http_client.py:10:19:10:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| test_http_client.py:11:5:11:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| test_http_client.py:11:18:11:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | | test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | | test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | -| test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | -| test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | | test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | | test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | -| test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | -| test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | | test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | | test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | -| test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | -| test_http_client.py:31:5:31:8 | SSA variable path | semmle.label | SSA variable path | -| test_http_client.py:33:25:33:28 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | -| test_http_client.py:35:5:35:8 | SSA variable path | semmle.label | SSA variable path | -| test_http_client.py:37:25:37:28 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | -| test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test_requests.py:1:19:1:25 | GSSA Variable request | semmle.label | GSSA Variable request | -| test_requests.py:1:19:1:25 | GSSA Variable request | semmle.label | GSSA Variable request | -| test_requests.py:6:5:6:14 | SSA variable user_input | semmle.label | SSA variable user_input | | test_requests.py:6:5:6:14 | SSA variable user_input | semmle.label | SSA variable user_input | | test_requests.py:6:18:6:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| test_requests.py:6:18:6:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| test_requests.py:8:18:8:27 | ControlFlowNode for user_input | semmle.label | ControlFlowNode for user_input | | test_requests.py:8:18:8:27 | ControlFlowNode for user_input | semmle.label | ControlFlowNode for user_input | subpaths #select diff --git a/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/PartialServerSideRequestForgery.expected b/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/PartialServerSideRequestForgery.expected index faa8560d19f..aa983e62e01 100644 --- a/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/PartialServerSideRequestForgery.expected +++ b/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/PartialServerSideRequestForgery.expected @@ -1,17 +1,12 @@ edges | full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | full_partial_test.py:1:19:1:25 | GSSA Variable request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | full_partial_test.py:1:19:1:25 | GSSA Variable request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:8:17:8:23 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:38:17:38:23 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:58:17:58:23 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:72:17:72:23 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:86:18:86:24 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:92:18:92:24 | ControlFlowNode for request | @@ -20,80 +15,49 @@ edges | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:110:18:110:24 | ControlFlowNode for request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | full_partial_test.py:119:18:119:24 | ControlFlowNode for request | | full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | -| full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | -| full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:12:5:12:7 | SSA variable url | | full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:12:5:12:7 | SSA variable url | | full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:18:5:18:7 | SSA variable url | -| full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:18:5:18:7 | SSA variable url | | full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:22:5:22:7 | SSA variable url | -| full_partial_test.py:7:5:7:14 | SSA variable user_input | full_partial_test.py:22:5:22:7 | SSA variable url | -| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:7:5:7:14 | SSA variable user_input | | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:7:5:7:14 | SSA variable user_input | | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:8:5:8:13 | SSA variable query_val | | full_partial_test.py:8:5:8:13 | SSA variable query_val | full_partial_test.py:22:5:22:7 | SSA variable url | | full_partial_test.py:8:17:8:23 | ControlFlowNode for request | full_partial_test.py:8:5:8:13 | SSA variable query_val | | full_partial_test.py:12:5:12:7 | SSA variable url | full_partial_test.py:13:18:13:20 | ControlFlowNode for url | -| full_partial_test.py:12:5:12:7 | SSA variable url | full_partial_test.py:13:18:13:20 | ControlFlowNode for url | -| full_partial_test.py:18:5:18:7 | SSA variable url | full_partial_test.py:19:18:19:20 | ControlFlowNode for url | | full_partial_test.py:18:5:18:7 | SSA variable url | full_partial_test.py:19:18:19:20 | ControlFlowNode for url | | full_partial_test.py:22:5:22:7 | SSA variable url | full_partial_test.py:23:18:23:20 | ControlFlowNode for url | -| full_partial_test.py:22:5:22:7 | SSA variable url | full_partial_test.py:23:18:23:20 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:41:5:41:7 | SSA variable url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:41:5:41:7 | SSA variable url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:44:5:44:7 | SSA variable url | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:44:5:44:7 | SSA variable url | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:47:5:47:7 | SSA variable url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:47:5:47:7 | SSA variable url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:50:5:50:7 | SSA variable url | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:50:5:50:7 | SSA variable url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:53:5:53:7 | SSA variable url | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | full_partial_test.py:53:5:53:7 | SSA variable url | -| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:37:5:37:14 | SSA variable user_input | | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:37:5:37:14 | SSA variable user_input | | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:38:5:38:13 | SSA variable query_val | | full_partial_test.py:38:5:38:13 | SSA variable query_val | full_partial_test.py:47:5:47:7 | SSA variable url | | full_partial_test.py:38:17:38:23 | ControlFlowNode for request | full_partial_test.py:38:5:38:13 | SSA variable query_val | | full_partial_test.py:41:5:41:7 | SSA variable url | full_partial_test.py:42:18:42:20 | ControlFlowNode for url | -| full_partial_test.py:41:5:41:7 | SSA variable url | full_partial_test.py:42:18:42:20 | ControlFlowNode for url | -| full_partial_test.py:44:5:44:7 | SSA variable url | full_partial_test.py:45:18:45:20 | ControlFlowNode for url | | full_partial_test.py:44:5:44:7 | SSA variable url | full_partial_test.py:45:18:45:20 | ControlFlowNode for url | | full_partial_test.py:47:5:47:7 | SSA variable url | full_partial_test.py:48:18:48:20 | ControlFlowNode for url | -| full_partial_test.py:47:5:47:7 | SSA variable url | full_partial_test.py:48:18:48:20 | ControlFlowNode for url | -| full_partial_test.py:50:5:50:7 | SSA variable url | full_partial_test.py:51:18:51:20 | ControlFlowNode for url | | full_partial_test.py:50:5:50:7 | SSA variable url | full_partial_test.py:51:18:51:20 | ControlFlowNode for url | | full_partial_test.py:53:5:53:7 | SSA variable url | full_partial_test.py:54:18:54:20 | ControlFlowNode for url | -| full_partial_test.py:53:5:53:7 | SSA variable url | full_partial_test.py:54:18:54:20 | ControlFlowNode for url | | full_partial_test.py:57:5:57:14 | SSA variable user_input | full_partial_test.py:61:5:61:7 | SSA variable url | -| full_partial_test.py:57:5:57:14 | SSA variable user_input | full_partial_test.py:61:5:61:7 | SSA variable url | -| full_partial_test.py:57:5:57:14 | SSA variable user_input | full_partial_test.py:64:5:64:7 | SSA variable url | | full_partial_test.py:57:5:57:14 | SSA variable user_input | full_partial_test.py:64:5:64:7 | SSA variable url | | full_partial_test.py:57:5:57:14 | SSA variable user_input | full_partial_test.py:67:5:67:7 | SSA variable url | | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:57:5:57:14 | SSA variable user_input | -| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:57:5:57:14 | SSA variable user_input | | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:58:5:58:13 | SSA variable query_val | | full_partial_test.py:58:5:58:13 | SSA variable query_val | full_partial_test.py:67:5:67:7 | SSA variable url | | full_partial_test.py:58:17:58:23 | ControlFlowNode for request | full_partial_test.py:58:5:58:13 | SSA variable query_val | | full_partial_test.py:61:5:61:7 | SSA variable url | full_partial_test.py:62:18:62:20 | ControlFlowNode for url | -| full_partial_test.py:61:5:61:7 | SSA variable url | full_partial_test.py:62:18:62:20 | ControlFlowNode for url | -| full_partial_test.py:64:5:64:7 | SSA variable url | full_partial_test.py:65:18:65:20 | ControlFlowNode for url | | full_partial_test.py:64:5:64:7 | SSA variable url | full_partial_test.py:65:18:65:20 | ControlFlowNode for url | | full_partial_test.py:67:5:67:7 | SSA variable url | full_partial_test.py:68:18:68:20 | ControlFlowNode for url | | full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:75:5:75:7 | SSA variable url | -| full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:75:5:75:7 | SSA variable url | -| full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:78:5:78:7 | SSA variable url | | full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:78:5:78:7 | SSA variable url | | full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:81:5:81:7 | SSA variable url | -| full_partial_test.py:71:5:71:14 | SSA variable user_input | full_partial_test.py:81:5:81:7 | SSA variable url | -| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:71:5:71:14 | SSA variable user_input | | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:71:5:71:14 | SSA variable user_input | | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:72:5:72:13 | SSA variable query_val | | full_partial_test.py:72:5:72:13 | SSA variable query_val | full_partial_test.py:81:5:81:7 | SSA variable url | | full_partial_test.py:72:17:72:23 | ControlFlowNode for request | full_partial_test.py:72:5:72:13 | SSA variable query_val | | full_partial_test.py:75:5:75:7 | SSA variable url | full_partial_test.py:76:18:76:20 | ControlFlowNode for url | -| full_partial_test.py:75:5:75:7 | SSA variable url | full_partial_test.py:76:18:76:20 | ControlFlowNode for url | | full_partial_test.py:78:5:78:7 | SSA variable url | full_partial_test.py:79:18:79:20 | ControlFlowNode for url | -| full_partial_test.py:78:5:78:7 | SSA variable url | full_partial_test.py:79:18:79:20 | ControlFlowNode for url | -| full_partial_test.py:81:5:81:7 | SSA variable url | full_partial_test.py:82:18:82:20 | ControlFlowNode for url | | full_partial_test.py:81:5:81:7 | SSA variable url | full_partial_test.py:82:18:82:20 | ControlFlowNode for url | | full_partial_test.py:86:5:86:14 | SSA variable user_input | full_partial_test.py:88:5:88:7 | SSA variable url | | full_partial_test.py:86:18:86:24 | ControlFlowNode for request | full_partial_test.py:86:5:86:14 | SSA variable user_input | @@ -114,30 +78,18 @@ edges | full_partial_test.py:119:18:119:24 | ControlFlowNode for request | full_partial_test.py:119:5:119:14 | SSA variable user_input | | full_partial_test.py:121:5:121:7 | SSA variable url | full_partial_test.py:122:18:122:20 | ControlFlowNode for url | | test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | test_http_client.py:1:26:1:32 | GSSA Variable request | -| test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | test_http_client.py:1:26:1:32 | GSSA Variable request | | test_http_client.py:1:26:1:32 | GSSA Variable request | test_http_client.py:9:19:9:25 | ControlFlowNode for request | -| test_http_client.py:1:26:1:32 | GSSA Variable request | test_http_client.py:9:19:9:25 | ControlFlowNode for request | -| test_http_client.py:1:26:1:32 | GSSA Variable request | test_http_client.py:10:19:10:25 | ControlFlowNode for request | | test_http_client.py:1:26:1:32 | GSSA Variable request | test_http_client.py:10:19:10:25 | ControlFlowNode for request | | test_http_client.py:1:26:1:32 | GSSA Variable request | test_http_client.py:11:18:11:24 | ControlFlowNode for request | | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:5:9:15 | SSA variable unsafe_host | test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | | test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | | test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | | test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | SSA variable user_input | | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:5:10:15 | SSA variable unsafe_path | test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | | test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | | test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | SSA variable user_input | | test_http_client.py:11:5:11:14 | SSA variable user_input | test_http_client.py:31:5:31:8 | SSA variable path | @@ -146,97 +98,56 @@ edges | test_http_client.py:31:5:31:8 | SSA variable path | test_http_client.py:33:25:33:28 | ControlFlowNode for path | | test_http_client.py:35:5:35:8 | SSA variable path | test_http_client.py:37:25:37:28 | ControlFlowNode for path | | test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | test_requests.py:1:19:1:25 | GSSA Variable request | -| test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | test_requests.py:1:19:1:25 | GSSA Variable request | -| test_requests.py:1:19:1:25 | GSSA Variable request | test_requests.py:6:18:6:24 | ControlFlowNode for request | | test_requests.py:1:19:1:25 | GSSA Variable request | test_requests.py:6:18:6:24 | ControlFlowNode for request | | test_requests.py:6:5:6:14 | SSA variable user_input | test_requests.py:8:18:8:27 | ControlFlowNode for user_input | -| test_requests.py:6:5:6:14 | SSA variable user_input | test_requests.py:8:18:8:27 | ControlFlowNode for user_input | -| test_requests.py:6:18:6:24 | ControlFlowNode for request | test_requests.py:6:5:6:14 | SSA variable user_input | | test_requests.py:6:18:6:24 | ControlFlowNode for request | test_requests.py:6:5:6:14 | SSA variable user_input | nodes | full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | -| full_partial_test.py:1:19:1:25 | GSSA Variable request | semmle.label | GSSA Variable request | | full_partial_test.py:1:19:1:25 | GSSA Variable request | semmle.label | GSSA Variable request | | full_partial_test.py:7:5:7:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:7:5:7:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:8:5:8:13 | SSA variable query_val | semmle.label | SSA variable query_val | | full_partial_test.py:8:17:8:23 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | semmle.label | ControlFlowNode for user_input | -| full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | semmle.label | ControlFlowNode for user_input | -| full_partial_test.py:12:5:12:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:12:5:12:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:13:18:13:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:13:18:13:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:18:5:18:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:18:5:18:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:19:18:19:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:19:18:19:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:22:5:22:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:22:5:22:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:23:18:23:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | -| full_partial_test.py:23:18:23:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:37:5:37:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:37:5:37:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:38:5:38:13 | SSA variable query_val | semmle.label | SSA variable query_val | | full_partial_test.py:38:17:38:23 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:41:5:41:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:41:5:41:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:42:18:42:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:42:18:42:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:44:5:44:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:44:5:44:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:45:18:45:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:45:18:45:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:47:5:47:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:47:5:47:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:48:18:48:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:48:18:48:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:50:5:50:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:50:5:50:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:51:18:51:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:51:18:51:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:53:5:53:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:53:5:53:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:54:18:54:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:54:18:54:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:57:5:57:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:57:5:57:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:58:5:58:13 | SSA variable query_val | semmle.label | SSA variable query_val | | full_partial_test.py:58:17:58:23 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:61:5:61:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:61:5:61:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:62:18:62:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:62:18:62:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:64:5:64:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:64:5:64:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:65:18:65:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:65:18:65:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:67:5:67:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:68:18:68:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:71:5:71:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:71:5:71:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:72:5:72:13 | SSA variable query_val | semmle.label | SSA variable query_val | | full_partial_test.py:72:17:72:23 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | full_partial_test.py:75:5:75:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:75:5:75:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:76:18:76:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:76:18:76:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:78:5:78:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:78:5:78:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:79:18:79:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:79:18:79:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:81:5:81:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:81:5:81:7 | SSA variable url | semmle.label | SSA variable url | -| full_partial_test.py:82:18:82:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:82:18:82:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | full_partial_test.py:86:5:86:14 | SSA variable user_input | semmle.label | SSA variable user_input | | full_partial_test.py:86:18:86:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | @@ -263,44 +174,27 @@ nodes | full_partial_test.py:121:5:121:7 | SSA variable url | semmle.label | SSA variable url | | full_partial_test.py:122:18:122:20 | ControlFlowNode for url | semmle.label | ControlFlowNode for url | | test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | -| test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | -| test_http_client.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | | test_http_client.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | | test_http_client.py:9:5:9:15 | SSA variable unsafe_host | semmle.label | SSA variable unsafe_host | -| test_http_client.py:9:5:9:15 | SSA variable unsafe_host | semmle.label | SSA variable unsafe_host | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | test_http_client.py:9:19:9:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | test_http_client.py:10:5:10:15 | SSA variable unsafe_path | semmle.label | SSA variable unsafe_path | -| test_http_client.py:10:5:10:15 | SSA variable unsafe_path | semmle.label | SSA variable unsafe_path | -| test_http_client.py:10:19:10:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | test_http_client.py:10:19:10:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | test_http_client.py:11:5:11:14 | SSA variable user_input | semmle.label | SSA variable user_input | | test_http_client.py:11:18:11:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | -| test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | -| test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | | test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | | test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | -| test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | -| test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | | test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | | test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | -| test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | semmle.label | ControlFlowNode for unsafe_host | -| test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | | test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | semmle.label | ControlFlowNode for unsafe_path | | test_http_client.py:31:5:31:8 | SSA variable path | semmle.label | SSA variable path | | test_http_client.py:33:25:33:28 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | | test_http_client.py:35:5:35:8 | SSA variable path | semmle.label | SSA variable path | | test_http_client.py:37:25:37:28 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | | test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | -| test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | -| test_requests.py:1:19:1:25 | GSSA Variable request | semmle.label | GSSA Variable request | | test_requests.py:1:19:1:25 | GSSA Variable request | semmle.label | GSSA Variable request | | test_requests.py:6:5:6:14 | SSA variable user_input | semmle.label | SSA variable user_input | -| test_requests.py:6:5:6:14 | SSA variable user_input | semmle.label | SSA variable user_input | | test_requests.py:6:18:6:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| test_requests.py:6:18:6:24 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| test_requests.py:8:18:8:27 | ControlFlowNode for user_input | semmle.label | ControlFlowNode for user_input | | test_requests.py:8:18:8:27 | ControlFlowNode for user_input | semmle.label | ControlFlowNode for user_input | subpaths #select From acde1920e7930f9a41469ba2a2bc43e82df5f95b Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 16:45:25 +0200 Subject: [PATCH 106/788] Python: Move `UntrustedDataToExternalAPI` to new dataflow API --- .../CWE-020-ExternalAPIs/ExternalAPIs.qll | 23 ++++++++++++++----- .../UntrustedDataToExternalAPI.ql | 6 ++--- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIs.qll b/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIs.qll index 766cf6845af..82e3c3121d0 100644 --- a/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIs.qll +++ b/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIs.qll @@ -167,8 +167,12 @@ class ExternalApiDataNode extends DataFlow::Node { } } -/** A configuration for tracking flow from `RemoteFlowSource`s to `ExternalApiDataNode`s. */ -class UntrustedDataToExternalApiConfig extends TaintTracking::Configuration { +/** + * DEPRECATED: Use `XmlBombFlow` module instead. + * + * A configuration for tracking flow from `RemoteFlowSource`s to `ExternalApiDataNode`s. + */ +deprecated class UntrustedDataToExternalApiConfig extends TaintTracking::Configuration { UntrustedDataToExternalApiConfig() { this = "UntrustedDataToExternalAPIConfig" } override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } @@ -176,14 +180,21 @@ class UntrustedDataToExternalApiConfig extends TaintTracking::Configuration { override predicate isSink(DataFlow::Node sink) { sink instanceof ExternalApiDataNode } } +private module UntrustedDataToExternalApiConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } + + predicate isSink(DataFlow::Node sink) { sink instanceof ExternalApiDataNode } +} + +/** Global taint-tracking from `RemoteFlowSource`s to `ExternalApiDataNode`s. */ +module UntrustedDataToExternalApiFlow = TaintTracking::Global; + /** A node representing untrusted data being passed to an external API. */ class UntrustedExternalApiDataNode extends ExternalApiDataNode { - UntrustedExternalApiDataNode() { any(UntrustedDataToExternalApiConfig c).hasFlow(_, this) } + UntrustedExternalApiDataNode() { UntrustedDataToExternalApiFlow::flow(_, this) } /** Gets a source of untrusted data which is passed to this external API data node. */ - DataFlow::Node getAnUntrustedSource() { - any(UntrustedDataToExternalApiConfig c).hasFlow(result, this) - } + DataFlow::Node getAnUntrustedSource() { UntrustedDataToExternalApiFlow::flow(result, this) } } /** An external API which is used with untrusted data. */ diff --git a/python/ql/src/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql b/python/ql/src/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql index 6426854222c..f5706ccc3a6 100644 --- a/python/ql/src/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql +++ b/python/ql/src/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql @@ -11,14 +11,14 @@ import python import ExternalAPIs -import DataFlow::PathGraph +import UntrustedDataToExternalApiFlow::PathGraph from - UntrustedDataToExternalApiConfig config, DataFlow::PathNode source, DataFlow::PathNode sink, + UntrustedDataToExternalApiFlow::PathNode source, UntrustedDataToExternalApiFlow::PathNode sink, ExternalApiUsedWithUntrustedData externalApi where sink.getNode() = externalApi.getUntrustedDataNode() and - config.hasFlowPath(source, sink) + UntrustedDataToExternalApiFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Call to " + externalApi.toString() + " with untrusted data from $@.", source.getNode(), source.toString() From 3edb9d1011fb6e8882740daf640650a66adc66b9 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:14:21 +0200 Subject: [PATCH 107/788] Python: Move experimental `TokenBuiltFromUUID` to new dataflow API --- .../Security/CWE-340/TokenBuiltFromUUID.ql | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-340/TokenBuiltFromUUID.ql b/python/ql/src/experimental/Security/CWE-340/TokenBuiltFromUUID.ql index 711abdb2f33..e4310a68e8f 100644 --- a/python/ql/src/experimental/Security/CWE-340/TokenBuiltFromUUID.ql +++ b/python/ql/src/experimental/Security/CWE-340/TokenBuiltFromUUID.ql @@ -16,7 +16,6 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.ApiGraphs import semmle.python.dataflow.new.TaintTracking -import DataFlow::PathGraph class PredictableResultSource extends DataFlow::Node { PredictableResultSource() { @@ -40,14 +39,12 @@ class TokenAssignmentValueSink extends DataFlow::Node { } } -class TokenBuiltFromUuidConfig extends TaintTracking::Configuration { - TokenBuiltFromUuidConfig() { this = "TokenBuiltFromUuidConfig" } +private module TokenBuiltFromUUIDConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof PredictableResultSource } - override predicate isSource(DataFlow::Node source) { source instanceof PredictableResultSource } + predicate isSink(DataFlow::Node sink) { sink instanceof TokenAssignmentValueSink } - override predicate isSink(DataFlow::Node sink) { sink instanceof TokenAssignmentValueSink } - - override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { exists(DataFlow::CallCfgNode call | call = API::builtin("str").getACall() and nodeFrom = call.getArg(0) and @@ -56,6 +53,11 @@ class TokenBuiltFromUuidConfig extends TaintTracking::Configuration { } } -from DataFlow::PathNode source, DataFlow::PathNode sink, TokenBuiltFromUuidConfig config -where config.hasFlowPath(source, sink) +/** Global taint-tracking for detecting "TokenBuiltFromUUID" vulnerabilities. */ +module TokenBuiltFromUUIDFlow = TaintTracking::Global; + +import TokenBuiltFromUUIDFlow::PathGraph + +from TokenBuiltFromUUIDFlow::PathNode source, TokenBuiltFromUUIDFlow::PathNode sink +where TokenBuiltFromUUIDFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Token built from $@.", source.getNode(), "predictable value" From 3cdd875e9fc773d50d445a56de610657a9f0731a Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:50 +0200 Subject: [PATCH 108/788] Python: Move experimental `UnsafeUnpack` to new dataflow API --- .../Security/CWE-022bis/UnsafeUnpack.ql | 6 +- .../Security/UnsafeUnpackQuery.qll | 13 +- .../UnsafeUnpack.expected | 126 +++++++++++++++--- 3 files changed, 117 insertions(+), 28 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-022bis/UnsafeUnpack.ql b/python/ql/src/experimental/Security/CWE-022bis/UnsafeUnpack.ql index a6a0e06559c..1afe3f738ad 100644 --- a/python/ql/src/experimental/Security/CWE-022bis/UnsafeUnpack.ql +++ b/python/ql/src/experimental/Security/CWE-022bis/UnsafeUnpack.ql @@ -16,9 +16,9 @@ import python import experimental.Security.UnsafeUnpackQuery -import DataFlow::PathGraph +import UnsafeUnpackFlow::PathGraph -from UnsafeUnpackingConfig config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from UnsafeUnpackFlow::PathNode source, UnsafeUnpackFlow::PathNode sink +where UnsafeUnpackFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Unsafe extraction from a malicious tarball retrieved from a remote location." diff --git a/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll b/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll index ba359ee32f3..7c297d975a4 100644 --- a/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll +++ b/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll @@ -39,10 +39,8 @@ class AllTarfileOpens extends API::CallNode { } } -class UnsafeUnpackingConfig extends TaintTracking::Configuration { - UnsafeUnpackingConfig() { this = "UnsafeUnpackingConfig" } - - override predicate isSource(DataFlow::Node source) { +private module UnsafeUnpackConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { // A source coming from a remote location source instanceof RemoteFlowSource or @@ -92,7 +90,7 @@ class UnsafeUnpackingConfig extends TaintTracking::Configuration { source.(AttrRead).getAttributeName() = "FILES" } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { ( // A sink capturing method calls to `unpack_archive`. sink = API::moduleImport("shutil").getMember("unpack_archive").getACall().getArg(0) @@ -136,7 +134,7 @@ class UnsafeUnpackingConfig extends TaintTracking::Configuration { not sink.getScope().getLocation().getFile().inStdlib() } - override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { // Reading the response nodeTo.(MethodCallNode).calls(nodeFrom, "read") or @@ -211,3 +209,6 @@ class UnsafeUnpackingConfig extends TaintTracking::Configuration { ) } } + +/** Global taint-tracking for detecting "UnsafeUnpacking" vulnerabilities. */ +module UnsafeUnpackFlow = TaintTracking::Global; diff --git a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/UnsafeUnpack.expected b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/UnsafeUnpack.expected index b05f536c26d..f8921911e4f 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/UnsafeUnpack.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/UnsafeUnpack.expected @@ -1,43 +1,86 @@ edges | UnsafeUnpack.py:5:26:5:32 | ControlFlowNode for ImportMember | UnsafeUnpack.py:5:26:5:32 | GSSA Variable request | | UnsafeUnpack.py:5:26:5:32 | GSSA Variable request | UnsafeUnpack.py:11:18:11:24 | ControlFlowNode for request | -| UnsafeUnpack.py:11:7:11:14 | SSA variable filename | UnsafeUnpack.py:13:13:13:20 | SSA variable response | -| UnsafeUnpack.py:11:18:11:24 | ControlFlowNode for request | UnsafeUnpack.py:11:7:11:14 | SSA variable filename | +| UnsafeUnpack.py:11:7:11:14 | SSA variable filename | UnsafeUnpack.py:13:24:13:58 | ControlFlowNode for Attribute() | | UnsafeUnpack.py:11:18:11:24 | ControlFlowNode for request | UnsafeUnpack.py:11:18:11:29 | ControlFlowNode for Attribute | | UnsafeUnpack.py:11:18:11:29 | ControlFlowNode for Attribute | UnsafeUnpack.py:11:18:11:49 | ControlFlowNode for Attribute() | | UnsafeUnpack.py:11:18:11:49 | ControlFlowNode for Attribute() | UnsafeUnpack.py:11:7:11:14 | SSA variable filename | -| UnsafeUnpack.py:13:13:13:20 | SSA variable response | UnsafeUnpack.py:19:35:19:41 | ControlFlowNode for tarpath | +| UnsafeUnpack.py:13:13:13:20 | SSA variable response | UnsafeUnpack.py:17:27:17:34 | ControlFlowNode for response | +| UnsafeUnpack.py:13:24:13:58 | ControlFlowNode for Attribute() | UnsafeUnpack.py:13:13:13:20 | SSA variable response | +| UnsafeUnpack.py:16:23:16:29 | ControlFlowNode for tarpath | UnsafeUnpack.py:19:35:19:41 | ControlFlowNode for tarpath | +| UnsafeUnpack.py:17:19:17:19 | ControlFlowNode for f | UnsafeUnpack.py:16:23:16:29 | ControlFlowNode for tarpath | +| UnsafeUnpack.py:17:27:17:34 | ControlFlowNode for response | UnsafeUnpack.py:17:27:17:38 | ControlFlowNode for Attribute | +| UnsafeUnpack.py:17:27:17:38 | ControlFlowNode for Attribute | UnsafeUnpack.py:17:27:17:45 | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:17:27:17:45 | ControlFlowNode for Attribute() | UnsafeUnpack.py:17:19:17:19 | ControlFlowNode for f | | UnsafeUnpack.py:33:50:33:65 | ControlFlowNode for local_ziped_path | UnsafeUnpack.py:34:23:34:38 | ControlFlowNode for local_ziped_path | | UnsafeUnpack.py:47:20:47:34 | ControlFlowNode for compressed_file | UnsafeUnpack.py:48:23:48:37 | ControlFlowNode for compressed_file | | UnsafeUnpack.py:51:1:51:15 | GSSA Variable compressed_file | UnsafeUnpack.py:52:23:52:37 | ControlFlowNode for compressed_file | | UnsafeUnpack.py:51:19:51:36 | ControlFlowNode for Attribute() | UnsafeUnpack.py:51:1:51:15 | GSSA Variable compressed_file | | UnsafeUnpack.py:65:1:65:15 | GSSA Variable compressed_file | UnsafeUnpack.py:66:23:66:37 | ControlFlowNode for compressed_file | | UnsafeUnpack.py:65:19:65:31 | ControlFlowNode for Attribute | UnsafeUnpack.py:65:1:65:15 | GSSA Variable compressed_file | -| UnsafeUnpack.py:79:1:79:12 | GSSA Variable url_filename | UnsafeUnpack.py:81:1:81:8 | GSSA Variable response | -| UnsafeUnpack.py:79:1:79:12 | GSSA Variable url_filename | UnsafeUnpack.py:171:1:171:8 | GSSA Variable response | +| UnsafeUnpack.py:79:1:79:12 | GSSA Variable url_filename | UnsafeUnpack.py:81:12:81:50 | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:79:1:79:12 | GSSA Variable url_filename | UnsafeUnpack.py:171:12:171:50 | ControlFlowNode for Attribute() | | UnsafeUnpack.py:79:16:79:28 | ControlFlowNode for Attribute | UnsafeUnpack.py:79:1:79:12 | GSSA Variable url_filename | -| UnsafeUnpack.py:81:1:81:8 | GSSA Variable response | UnsafeUnpack.py:87:23:87:29 | ControlFlowNode for tarpath | -| UnsafeUnpack.py:103:23:103:27 | SSA variable chunk | UnsafeUnpack.py:105:35:105:42 | ControlFlowNode for savepath | -| UnsafeUnpack.py:103:32:103:44 | ControlFlowNode for Attribute | UnsafeUnpack.py:103:23:103:27 | SSA variable chunk | -| UnsafeUnpack.py:108:13:108:18 | SSA variable myfile | UnsafeUnpack.py:112:35:112:43 | ControlFlowNode for file_path | -| UnsafeUnpack.py:108:22:108:34 | ControlFlowNode for Attribute | UnsafeUnpack.py:108:13:108:18 | SSA variable myfile | +| UnsafeUnpack.py:81:1:81:8 | GSSA Variable response | UnsafeUnpack.py:85:15:85:22 | ControlFlowNode for response | +| UnsafeUnpack.py:81:12:81:50 | ControlFlowNode for Attribute() | UnsafeUnpack.py:81:1:81:8 | GSSA Variable response | +| UnsafeUnpack.py:84:11:84:17 | ControlFlowNode for tarpath | UnsafeUnpack.py:87:23:87:29 | ControlFlowNode for tarpath | +| UnsafeUnpack.py:85:7:85:7 | ControlFlowNode for f | UnsafeUnpack.py:84:11:84:17 | ControlFlowNode for tarpath | +| UnsafeUnpack.py:85:15:85:22 | ControlFlowNode for response | UnsafeUnpack.py:85:15:85:26 | ControlFlowNode for Attribute | +| UnsafeUnpack.py:85:15:85:26 | ControlFlowNode for Attribute | UnsafeUnpack.py:85:15:85:33 | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:85:15:85:33 | ControlFlowNode for Attribute() | UnsafeUnpack.py:85:7:85:7 | ControlFlowNode for f | +| UnsafeUnpack.py:102:23:102:30 | ControlFlowNode for savepath | UnsafeUnpack.py:105:35:105:42 | ControlFlowNode for savepath | +| UnsafeUnpack.py:103:23:103:27 | SSA variable chunk | UnsafeUnpack.py:104:37:104:41 | ControlFlowNode for chunk | +| UnsafeUnpack.py:103:32:103:44 | ControlFlowNode for Attribute | UnsafeUnpack.py:103:32:103:54 | ControlFlowNode for Subscript | +| UnsafeUnpack.py:103:32:103:54 | ControlFlowNode for Subscript | UnsafeUnpack.py:103:32:103:63 | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:103:32:103:63 | ControlFlowNode for Attribute() | UnsafeUnpack.py:103:23:103:27 | SSA variable chunk | +| UnsafeUnpack.py:104:25:104:29 | ControlFlowNode for wfile | UnsafeUnpack.py:102:23:102:30 | ControlFlowNode for savepath | +| UnsafeUnpack.py:104:37:104:41 | ControlFlowNode for chunk | UnsafeUnpack.py:104:25:104:29 | ControlFlowNode for wfile | +| UnsafeUnpack.py:108:13:108:18 | SSA variable myfile | UnsafeUnpack.py:111:27:111:32 | ControlFlowNode for myfile | | UnsafeUnpack.py:108:22:108:34 | ControlFlowNode for Attribute | UnsafeUnpack.py:108:22:108:48 | ControlFlowNode for Attribute() | | UnsafeUnpack.py:108:22:108:48 | ControlFlowNode for Attribute() | UnsafeUnpack.py:108:13:108:18 | SSA variable myfile | -| UnsafeUnpack.py:116:17:116:21 | SSA variable ufile | UnsafeUnpack.py:118:19:118:26 | SSA variable filename | -| UnsafeUnpack.py:116:27:116:39 | ControlFlowNode for Attribute | UnsafeUnpack.py:116:17:116:21 | SSA variable ufile | -| UnsafeUnpack.py:118:19:118:26 | SSA variable filename | UnsafeUnpack.py:119:19:119:36 | SSA variable uploaded_file_path | +| UnsafeUnpack.py:110:18:110:26 | ControlFlowNode for file_path | UnsafeUnpack.py:112:35:112:43 | ControlFlowNode for file_path | +| UnsafeUnpack.py:111:19:111:19 | ControlFlowNode for f | UnsafeUnpack.py:110:18:110:26 | ControlFlowNode for file_path | +| UnsafeUnpack.py:111:27:111:32 | ControlFlowNode for myfile | UnsafeUnpack.py:111:27:111:39 | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:111:27:111:39 | ControlFlowNode for Attribute() | UnsafeUnpack.py:111:19:111:19 | ControlFlowNode for f | +| UnsafeUnpack.py:116:17:116:21 | SSA variable ufile | UnsafeUnpack.py:118:38:118:42 | ControlFlowNode for ufile | +| UnsafeUnpack.py:116:27:116:39 | ControlFlowNode for Attribute | UnsafeUnpack.py:116:27:116:49 | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:116:27:116:49 | ControlFlowNode for Attribute() | UnsafeUnpack.py:116:17:116:21 | SSA variable ufile | +| UnsafeUnpack.py:118:19:118:26 | SSA variable filename | UnsafeUnpack.py:119:48:119:55 | ControlFlowNode for filename | +| UnsafeUnpack.py:118:30:118:55 | ControlFlowNode for Attribute() | UnsafeUnpack.py:118:19:118:26 | SSA variable filename | +| UnsafeUnpack.py:118:38:118:42 | ControlFlowNode for ufile | UnsafeUnpack.py:118:38:118:47 | ControlFlowNode for Attribute | +| UnsafeUnpack.py:118:38:118:47 | ControlFlowNode for Attribute | UnsafeUnpack.py:118:30:118:55 | ControlFlowNode for Attribute() | | UnsafeUnpack.py:119:19:119:36 | SSA variable uploaded_file_path | UnsafeUnpack.py:120:41:120:58 | ControlFlowNode for uploaded_file_path | -| UnsafeUnpack.py:140:1:140:19 | GSSA Variable unsafe_filename_tar | UnsafeUnpack.py:141:56:141:58 | GSSA Variable tar | +| UnsafeUnpack.py:119:40:119:56 | ControlFlowNode for Attribute() | UnsafeUnpack.py:119:19:119:36 | SSA variable uploaded_file_path | +| UnsafeUnpack.py:119:48:119:55 | ControlFlowNode for filename | UnsafeUnpack.py:119:40:119:56 | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:140:1:140:19 | GSSA Variable unsafe_filename_tar | UnsafeUnpack.py:141:22:141:40 | ControlFlowNode for unsafe_filename_tar | | UnsafeUnpack.py:140:23:140:35 | ControlFlowNode for Attribute | UnsafeUnpack.py:140:1:140:19 | GSSA Variable unsafe_filename_tar | +| UnsafeUnpack.py:141:6:141:51 | ControlFlowNode for Attribute() | UnsafeUnpack.py:141:56:141:58 | GSSA Variable tar | +| UnsafeUnpack.py:141:22:141:40 | ControlFlowNode for unsafe_filename_tar | UnsafeUnpack.py:141:6:141:51 | ControlFlowNode for Attribute() | | UnsafeUnpack.py:141:56:141:58 | GSSA Variable tar | UnsafeUnpack.py:142:49:142:51 | ControlFlowNode for tar | -| UnsafeUnpack.py:158:23:158:27 | SSA variable chunk | UnsafeUnpack.py:161:19:161:21 | SSA variable tar | -| UnsafeUnpack.py:158:32:158:44 | ControlFlowNode for Attribute | UnsafeUnpack.py:158:23:158:27 | SSA variable chunk | -| UnsafeUnpack.py:161:19:161:21 | SSA variable tar | UnsafeUnpack.py:163:23:163:28 | SSA variable member | +| UnsafeUnpack.py:157:23:157:30 | ControlFlowNode for savepath | UnsafeUnpack.py:161:38:161:45 | ControlFlowNode for savepath | +| UnsafeUnpack.py:158:23:158:27 | SSA variable chunk | UnsafeUnpack.py:159:37:159:41 | ControlFlowNode for chunk | +| UnsafeUnpack.py:158:32:158:44 | ControlFlowNode for Attribute | UnsafeUnpack.py:158:32:158:54 | ControlFlowNode for Subscript | +| UnsafeUnpack.py:158:32:158:54 | ControlFlowNode for Subscript | UnsafeUnpack.py:158:32:158:63 | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:158:32:158:63 | ControlFlowNode for Attribute() | UnsafeUnpack.py:158:23:158:27 | SSA variable chunk | +| UnsafeUnpack.py:159:25:159:29 | ControlFlowNode for wfile | UnsafeUnpack.py:157:23:157:30 | ControlFlowNode for savepath | +| UnsafeUnpack.py:159:37:159:41 | ControlFlowNode for chunk | UnsafeUnpack.py:159:25:159:29 | ControlFlowNode for wfile | +| UnsafeUnpack.py:161:19:161:21 | SSA variable tar | UnsafeUnpack.py:163:33:163:35 | ControlFlowNode for tar | +| UnsafeUnpack.py:161:25:161:46 | ControlFlowNode for Attribute() | UnsafeUnpack.py:161:19:161:21 | SSA variable tar | +| UnsafeUnpack.py:161:38:161:45 | ControlFlowNode for savepath | UnsafeUnpack.py:161:25:161:46 | ControlFlowNode for Attribute() | | UnsafeUnpack.py:163:23:163:28 | SSA variable member | UnsafeUnpack.py:166:37:166:42 | ControlFlowNode for member | +| UnsafeUnpack.py:163:33:163:35 | ControlFlowNode for tar | UnsafeUnpack.py:163:23:163:28 | SSA variable member | | UnsafeUnpack.py:166:23:166:28 | [post] ControlFlowNode for result | UnsafeUnpack.py:167:67:167:72 | ControlFlowNode for result | | UnsafeUnpack.py:166:37:166:42 | ControlFlowNode for member | UnsafeUnpack.py:166:23:166:28 | [post] ControlFlowNode for result | -| UnsafeUnpack.py:171:1:171:8 | GSSA Variable response | UnsafeUnpack.py:176:1:176:34 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:194:53:194:55 | ControlFlowNode for tmp | UnsafeUnpack.py:201:29:201:36 | ControlFlowNode for Attribute | +| UnsafeUnpack.py:171:1:171:8 | GSSA Variable response | UnsafeUnpack.py:174:15:174:22 | ControlFlowNode for response | +| UnsafeUnpack.py:171:12:171:50 | ControlFlowNode for Attribute() | UnsafeUnpack.py:171:1:171:8 | GSSA Variable response | +| UnsafeUnpack.py:173:11:173:17 | ControlFlowNode for tarpath | UnsafeUnpack.py:176:17:176:23 | ControlFlowNode for tarpath | +| UnsafeUnpack.py:174:7:174:7 | ControlFlowNode for f | UnsafeUnpack.py:173:11:173:17 | ControlFlowNode for tarpath | +| UnsafeUnpack.py:174:15:174:22 | ControlFlowNode for response | UnsafeUnpack.py:174:15:174:26 | ControlFlowNode for Attribute | +| UnsafeUnpack.py:174:15:174:26 | ControlFlowNode for Attribute | UnsafeUnpack.py:174:15:174:33 | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:174:15:174:33 | ControlFlowNode for Attribute() | UnsafeUnpack.py:174:7:174:7 | ControlFlowNode for f | +| UnsafeUnpack.py:176:17:176:23 | ControlFlowNode for tarpath | UnsafeUnpack.py:176:1:176:34 | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:194:53:194:55 | ControlFlowNode for tmp | UnsafeUnpack.py:201:29:201:31 | ControlFlowNode for tmp | +| UnsafeUnpack.py:201:29:201:31 | ControlFlowNode for tmp | UnsafeUnpack.py:201:29:201:36 | ControlFlowNode for Attribute | nodes | UnsafeUnpack.py:5:26:5:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | UnsafeUnpack.py:5:26:5:32 | GSSA Variable request | semmle.label | GSSA Variable request | @@ -46,6 +89,12 @@ nodes | UnsafeUnpack.py:11:18:11:29 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | UnsafeUnpack.py:11:18:11:49 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | UnsafeUnpack.py:13:13:13:20 | SSA variable response | semmle.label | SSA variable response | +| UnsafeUnpack.py:13:24:13:58 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:16:23:16:29 | ControlFlowNode for tarpath | semmle.label | ControlFlowNode for tarpath | +| UnsafeUnpack.py:17:19:17:19 | ControlFlowNode for f | semmle.label | ControlFlowNode for f | +| UnsafeUnpack.py:17:27:17:34 | ControlFlowNode for response | semmle.label | ControlFlowNode for response | +| UnsafeUnpack.py:17:27:17:38 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| UnsafeUnpack.py:17:27:17:45 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | UnsafeUnpack.py:19:35:19:41 | ControlFlowNode for tarpath | semmle.label | ControlFlowNode for tarpath | | UnsafeUnpack.py:33:50:33:65 | ControlFlowNode for local_ziped_path | semmle.label | ControlFlowNode for local_ziped_path | | UnsafeUnpack.py:34:23:34:38 | ControlFlowNode for local_ziped_path | semmle.label | ControlFlowNode for local_ziped_path | @@ -60,33 +109,72 @@ nodes | UnsafeUnpack.py:79:1:79:12 | GSSA Variable url_filename | semmle.label | GSSA Variable url_filename | | UnsafeUnpack.py:79:16:79:28 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | UnsafeUnpack.py:81:1:81:8 | GSSA Variable response | semmle.label | GSSA Variable response | +| UnsafeUnpack.py:81:12:81:50 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:84:11:84:17 | ControlFlowNode for tarpath | semmle.label | ControlFlowNode for tarpath | +| UnsafeUnpack.py:85:7:85:7 | ControlFlowNode for f | semmle.label | ControlFlowNode for f | +| UnsafeUnpack.py:85:15:85:22 | ControlFlowNode for response | semmle.label | ControlFlowNode for response | +| UnsafeUnpack.py:85:15:85:26 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| UnsafeUnpack.py:85:15:85:33 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | UnsafeUnpack.py:87:23:87:29 | ControlFlowNode for tarpath | semmle.label | ControlFlowNode for tarpath | +| UnsafeUnpack.py:102:23:102:30 | ControlFlowNode for savepath | semmle.label | ControlFlowNode for savepath | | UnsafeUnpack.py:103:23:103:27 | SSA variable chunk | semmle.label | SSA variable chunk | | UnsafeUnpack.py:103:32:103:44 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| UnsafeUnpack.py:103:32:103:54 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | +| UnsafeUnpack.py:103:32:103:63 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:104:25:104:29 | ControlFlowNode for wfile | semmle.label | ControlFlowNode for wfile | +| UnsafeUnpack.py:104:37:104:41 | ControlFlowNode for chunk | semmle.label | ControlFlowNode for chunk | | UnsafeUnpack.py:105:35:105:42 | ControlFlowNode for savepath | semmle.label | ControlFlowNode for savepath | | UnsafeUnpack.py:108:13:108:18 | SSA variable myfile | semmle.label | SSA variable myfile | | UnsafeUnpack.py:108:22:108:34 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | UnsafeUnpack.py:108:22:108:48 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:110:18:110:26 | ControlFlowNode for file_path | semmle.label | ControlFlowNode for file_path | +| UnsafeUnpack.py:111:19:111:19 | ControlFlowNode for f | semmle.label | ControlFlowNode for f | +| UnsafeUnpack.py:111:27:111:32 | ControlFlowNode for myfile | semmle.label | ControlFlowNode for myfile | +| UnsafeUnpack.py:111:27:111:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | UnsafeUnpack.py:112:35:112:43 | ControlFlowNode for file_path | semmle.label | ControlFlowNode for file_path | | UnsafeUnpack.py:116:17:116:21 | SSA variable ufile | semmle.label | SSA variable ufile | | UnsafeUnpack.py:116:27:116:39 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| UnsafeUnpack.py:116:27:116:49 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | UnsafeUnpack.py:118:19:118:26 | SSA variable filename | semmle.label | SSA variable filename | +| UnsafeUnpack.py:118:30:118:55 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:118:38:118:42 | ControlFlowNode for ufile | semmle.label | ControlFlowNode for ufile | +| UnsafeUnpack.py:118:38:118:47 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | UnsafeUnpack.py:119:19:119:36 | SSA variable uploaded_file_path | semmle.label | SSA variable uploaded_file_path | +| UnsafeUnpack.py:119:40:119:56 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:119:48:119:55 | ControlFlowNode for filename | semmle.label | ControlFlowNode for filename | | UnsafeUnpack.py:120:41:120:58 | ControlFlowNode for uploaded_file_path | semmle.label | ControlFlowNode for uploaded_file_path | | UnsafeUnpack.py:140:1:140:19 | GSSA Variable unsafe_filename_tar | semmle.label | GSSA Variable unsafe_filename_tar | | UnsafeUnpack.py:140:23:140:35 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| UnsafeUnpack.py:141:6:141:51 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:141:22:141:40 | ControlFlowNode for unsafe_filename_tar | semmle.label | ControlFlowNode for unsafe_filename_tar | | UnsafeUnpack.py:141:56:141:58 | GSSA Variable tar | semmle.label | GSSA Variable tar | | UnsafeUnpack.py:142:49:142:51 | ControlFlowNode for tar | semmle.label | ControlFlowNode for tar | +| UnsafeUnpack.py:157:23:157:30 | ControlFlowNode for savepath | semmle.label | ControlFlowNode for savepath | | UnsafeUnpack.py:158:23:158:27 | SSA variable chunk | semmle.label | SSA variable chunk | | UnsafeUnpack.py:158:32:158:44 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| UnsafeUnpack.py:158:32:158:54 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | +| UnsafeUnpack.py:158:32:158:63 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:159:25:159:29 | ControlFlowNode for wfile | semmle.label | ControlFlowNode for wfile | +| UnsafeUnpack.py:159:37:159:41 | ControlFlowNode for chunk | semmle.label | ControlFlowNode for chunk | | UnsafeUnpack.py:161:19:161:21 | SSA variable tar | semmle.label | SSA variable tar | +| UnsafeUnpack.py:161:25:161:46 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:161:38:161:45 | ControlFlowNode for savepath | semmle.label | ControlFlowNode for savepath | | UnsafeUnpack.py:163:23:163:28 | SSA variable member | semmle.label | SSA variable member | +| UnsafeUnpack.py:163:33:163:35 | ControlFlowNode for tar | semmle.label | ControlFlowNode for tar | | UnsafeUnpack.py:166:23:166:28 | [post] ControlFlowNode for result | semmle.label | [post] ControlFlowNode for result | | UnsafeUnpack.py:166:37:166:42 | ControlFlowNode for member | semmle.label | ControlFlowNode for member | | UnsafeUnpack.py:167:67:167:72 | ControlFlowNode for result | semmle.label | ControlFlowNode for result | | UnsafeUnpack.py:171:1:171:8 | GSSA Variable response | semmle.label | GSSA Variable response | +| UnsafeUnpack.py:171:12:171:50 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:173:11:173:17 | ControlFlowNode for tarpath | semmle.label | ControlFlowNode for tarpath | +| UnsafeUnpack.py:174:7:174:7 | ControlFlowNode for f | semmle.label | ControlFlowNode for f | +| UnsafeUnpack.py:174:15:174:22 | ControlFlowNode for response | semmle.label | ControlFlowNode for response | +| UnsafeUnpack.py:174:15:174:26 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| UnsafeUnpack.py:174:15:174:33 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | UnsafeUnpack.py:176:1:176:34 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| UnsafeUnpack.py:176:17:176:23 | ControlFlowNode for tarpath | semmle.label | ControlFlowNode for tarpath | | UnsafeUnpack.py:194:53:194:55 | ControlFlowNode for tmp | semmle.label | ControlFlowNode for tmp | +| UnsafeUnpack.py:201:29:201:31 | ControlFlowNode for tmp | semmle.label | ControlFlowNode for tmp | | UnsafeUnpack.py:201:29:201:36 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | subpaths #select From a0d26741d05c8bfbe7ed668d50518e8850982a9f Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:50 +0200 Subject: [PATCH 109/788] Python: Move experimental `TarSlipImprov` to new dataflow API --- .../Security/CWE-022bis/TarSlipImprov.ql | 19 ++++++++++--------- .../Security/CWE-022-TarSlip/TarSlip.expected | 4 +++- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-022bis/TarSlipImprov.ql b/python/ql/src/experimental/Security/CWE-022bis/TarSlipImprov.ql index 65ff272bbbd..431fe293cec 100755 --- a/python/ql/src/experimental/Security/CWE-022bis/TarSlipImprov.ql +++ b/python/ql/src/experimental/Security/CWE-022bis/TarSlipImprov.ql @@ -16,7 +16,7 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking -import DataFlow::PathGraph +import TarSlipImprovFlow::PathGraph import semmle.python.ApiGraphs import semmle.python.dataflow.new.internal.Attributes import semmle.python.dataflow.new.BarrierGuards @@ -54,12 +54,10 @@ class AllTarfileOpens extends API::CallNode { /** * A taint-tracking configuration for detecting more "TarSlip" vulnerabilities. */ -class Configuration extends TaintTracking::Configuration { - Configuration() { this = "TarSlip" } +private module TarSlipImprovConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source = tarfileOpen().getACall() } - override predicate isSource(DataFlow::Node source) { source = tarfileOpen().getACall() } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { ( // A sink capturing method calls to `extractall` without `members` argument. // For a call to `file.extractall` without `members` argument, `file` is considered a sink. @@ -100,7 +98,7 @@ class Configuration extends TaintTracking::Configuration { not sink.getScope().getLocation().getFile().inStdlib() } - override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { nodeTo.(MethodCallNode).calls(nodeFrom, "getmembers") and nodeFrom instanceof AllTarfileOpens or @@ -113,7 +111,10 @@ class Configuration extends TaintTracking::Configuration { } } -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +/** Global taint-tracking for detecting more "TarSlip" vulnerabilities. */ +module TarSlipImprovFlow = TaintTracking::Global; + +from TarSlipImprovFlow::PathNode source, TarSlipImprovFlow::PathNode sink +where TarSlipImprovFlow::flowPath(source, sink) select sink, source, sink, "Extraction of tarfile from $@ to a potentially untrusted source $@.", source.getNode(), source.getNode().toString(), sink.getNode(), sink.getNode().toString() diff --git a/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/TarSlip.expected b/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/TarSlip.expected index 52fd49e57b1..a699a1bac5f 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/TarSlip.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/TarSlip.expected @@ -33,7 +33,8 @@ edges | TarSlipImprov.py:141:34:141:36 | GSSA Variable tar | TarSlipImprov.py:142:9:142:13 | GSSA Variable entry | | TarSlipImprov.py:142:9:142:13 | GSSA Variable entry | TarSlipImprov.py:143:36:143:40 | ControlFlowNode for entry | | TarSlipImprov.py:159:9:159:14 | SSA variable tar_cm | TarSlipImprov.py:162:20:162:23 | SSA variable tarc | -| TarSlipImprov.py:159:26:159:51 | ControlFlowNode for Attribute() | TarSlipImprov.py:159:9:159:14 | SSA variable tar_cm | +| TarSlipImprov.py:159:18:159:52 | ControlFlowNode for closing() | TarSlipImprov.py:159:9:159:14 | SSA variable tar_cm | +| TarSlipImprov.py:159:26:159:51 | ControlFlowNode for Attribute() | TarSlipImprov.py:159:18:159:52 | ControlFlowNode for closing() | | TarSlipImprov.py:162:20:162:23 | SSA variable tarc | TarSlipImprov.py:169:9:169:12 | ControlFlowNode for tarc | | TarSlipImprov.py:176:6:176:31 | ControlFlowNode for Attribute() | TarSlipImprov.py:176:36:176:38 | GSSA Variable tar | | TarSlipImprov.py:176:36:176:38 | GSSA Variable tar | TarSlipImprov.py:177:9:177:13 | GSSA Variable entry | @@ -122,6 +123,7 @@ nodes | TarSlipImprov.py:142:9:142:13 | GSSA Variable entry | semmle.label | GSSA Variable entry | | TarSlipImprov.py:143:36:143:40 | ControlFlowNode for entry | semmle.label | ControlFlowNode for entry | | TarSlipImprov.py:159:9:159:14 | SSA variable tar_cm | semmle.label | SSA variable tar_cm | +| TarSlipImprov.py:159:18:159:52 | ControlFlowNode for closing() | semmle.label | ControlFlowNode for closing() | | TarSlipImprov.py:159:26:159:51 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | TarSlipImprov.py:162:20:162:23 | SSA variable tarc | semmle.label | SSA variable tarc | | TarSlipImprov.py:169:9:169:12 | ControlFlowNode for tarc | semmle.label | ControlFlowNode for tarc | From 67cc3a3935a05e0381ee8374c6cb5b1bc8621b31 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:50 +0200 Subject: [PATCH 110/788] Python: Move experimental `ReflectedXSS` to new dataflow API --- .../experimental/Security/CWE-079/ReflectedXSS.ql | 6 +++--- .../python/security/dataflow/ReflectedXSS.qll | 15 ++++++++------- .../Security/CWE-079/ReflectedXSS.expected | 4 +++- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-079/ReflectedXSS.ql b/python/ql/src/experimental/Security/CWE-079/ReflectedXSS.ql index 468cef01f7d..1f5cc601c09 100644 --- a/python/ql/src/experimental/Security/CWE-079/ReflectedXSS.ql +++ b/python/ql/src/experimental/Security/CWE-079/ReflectedXSS.ql @@ -16,9 +16,9 @@ // determine precision above import python import experimental.semmle.python.security.dataflow.ReflectedXSS -import DataFlow::PathGraph +import ReflectedXSSFlow::PathGraph -from ReflectedXssConfiguration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from ReflectedXSSFlow::PathNode source, ReflectedXSSFlow::PathNode sink +where ReflectedXSSFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Cross-site scripting vulnerability due to $@.", source.getNode(), "a user-provided value" diff --git a/python/ql/src/experimental/semmle/python/security/dataflow/ReflectedXSS.qll b/python/ql/src/experimental/semmle/python/security/dataflow/ReflectedXSS.qll index b35cb405dc0..b12f54dedf8 100644 --- a/python/ql/src/experimental/semmle/python/security/dataflow/ReflectedXSS.qll +++ b/python/ql/src/experimental/semmle/python/security/dataflow/ReflectedXSS.qll @@ -16,20 +16,18 @@ import semmle.python.ApiGraphs * A taint-tracking configuration for detecting reflected server-side cross-site * scripting vulnerabilities. */ -class ReflectedXssConfiguration extends TaintTracking::Configuration { - ReflectedXssConfiguration() { this = "ReflectedXssConfiguration" } +private module ReflectedXSSConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } + predicate isSink(DataFlow::Node sink) { sink = any(EmailSender email).getHtmlBody() } - override predicate isSink(DataFlow::Node sink) { sink = any(EmailSender email).getHtmlBody() } - - override predicate isSanitizer(DataFlow::Node sanitizer) { + predicate isBarrier(DataFlow::Node sanitizer) { sanitizer = any(HtmlEscaping esc).getOutput() or sanitizer instanceof StringConstCompareBarrier } - override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { exists(DataFlow::CallCfgNode htmlContentCall | htmlContentCall = API::moduleImport("sendgrid") @@ -42,3 +40,6 @@ class ReflectedXssConfiguration extends TaintTracking::Configuration { ) } } + +/** Global taint-tracking for detecting "TODO" vulnerabilities. */ +module ReflectedXSSFlow = TaintTracking::Global; diff --git a/python/ql/test/experimental/query-tests/Security/CWE-079/ReflectedXSS.expected b/python/ql/test/experimental/query-tests/Security/CWE-079/ReflectedXSS.expected index 7f16b6dcdac..02fed5424cc 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-079/ReflectedXSS.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-079/ReflectedXSS.expected @@ -12,7 +12,8 @@ edges | sendgrid_mail.py:1:19:1:25 | GSSA Variable request | sendgrid_mail.py:26:34:26:40 | ControlFlowNode for request | | sendgrid_mail.py:1:19:1:25 | GSSA Variable request | sendgrid_mail.py:37:41:37:47 | ControlFlowNode for request | | sendgrid_mail.py:14:22:14:28 | ControlFlowNode for request | sendgrid_mail.py:14:22:14:49 | ControlFlowNode for Subscript | -| sendgrid_mail.py:26:34:26:40 | ControlFlowNode for request | sendgrid_mail.py:26:22:26:62 | ControlFlowNode for HtmlContent() | +| sendgrid_mail.py:26:34:26:40 | ControlFlowNode for request | sendgrid_mail.py:26:34:26:61 | ControlFlowNode for Subscript | +| sendgrid_mail.py:26:34:26:61 | ControlFlowNode for Subscript | sendgrid_mail.py:26:22:26:62 | ControlFlowNode for HtmlContent() | | sendgrid_mail.py:37:41:37:47 | ControlFlowNode for request | sendgrid_mail.py:37:41:37:68 | ControlFlowNode for Subscript | | sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for ImportMember | sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | GSSA Variable request | | sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | GSSA Variable request | sendgrid_via_mail_send_post_request_body_bad.py:16:51:16:57 | ControlFlowNode for request | @@ -52,6 +53,7 @@ nodes | sendgrid_mail.py:14:22:14:49 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | | sendgrid_mail.py:26:22:26:62 | ControlFlowNode for HtmlContent() | semmle.label | ControlFlowNode for HtmlContent() | | sendgrid_mail.py:26:34:26:40 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| sendgrid_mail.py:26:34:26:61 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | | sendgrid_mail.py:37:41:37:47 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | sendgrid_mail.py:37:41:37:68 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | | sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | From 5d8329d9c8a62281989a88e4d47ae6b0fcd6d2b2 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:50 +0200 Subject: [PATCH 111/788] Python: Move experimental `ZipSlip` to new dataflow API --- .../ql/src/experimental/Security/CWE-022/ZipSlip.ql | 6 +++--- .../experimental/semmle/python/security/ZipSlip.qll | 11 ++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-022/ZipSlip.ql b/python/ql/src/experimental/Security/CWE-022/ZipSlip.ql index eba8da087b3..4bdca63e1d6 100644 --- a/python/ql/src/experimental/Security/CWE-022/ZipSlip.ql +++ b/python/ql/src/experimental/Security/CWE-022/ZipSlip.ql @@ -15,10 +15,10 @@ import python import experimental.semmle.python.security.ZipSlip -import DataFlow::PathGraph +import ZipSlipFlow::PathGraph -from ZipSlipConfig config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from ZipSlipFlow::PathNode source, ZipSlipFlow::PathNode sink +where ZipSlipFlow::flowPath(source, sink) select source.getNode(), source, sink, "This unsanitized archive entry, which may contain '..', is used in a $@.", sink.getNode(), "file system operation" diff --git a/python/ql/src/experimental/semmle/python/security/ZipSlip.qll b/python/ql/src/experimental/semmle/python/security/ZipSlip.qll index 59f558c67d6..5f8b4d940ef 100644 --- a/python/ql/src/experimental/semmle/python/security/ZipSlip.qll +++ b/python/ql/src/experimental/semmle/python/security/ZipSlip.qll @@ -4,10 +4,8 @@ import semmle.python.dataflow.new.DataFlow import semmle.python.ApiGraphs import semmle.python.dataflow.new.TaintTracking -class ZipSlipConfig extends TaintTracking::Configuration { - ZipSlipConfig() { this = "ZipSlipConfig" } - - override predicate isSource(DataFlow::Node source) { +private module ZipSlipConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { ( source = API::moduleImport("zipfile").getMember("ZipFile").getReturn().getMember("open").getACall() or @@ -29,7 +27,7 @@ class ZipSlipConfig extends TaintTracking::Configuration { not source.getScope().getLocation().getFile().inStdlib() } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { ( sink = any(CopyFile copyfile).getAPathArgument() or sink = any(CopyFile copyfile).getfsrcArgument() @@ -37,3 +35,6 @@ class ZipSlipConfig extends TaintTracking::Configuration { not sink.getScope().getLocation().getFile().inStdlib() } } + +/** Global taint-tracking for detecting "zip slip" vulnerabilities. */ +module ZipSlipFlow = TaintTracking::Global; From 5fd3594f5fda5773e889bf6309e6a75f4ad101d3 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 22:15:43 +0200 Subject: [PATCH 112/788] Python: Move TimingAttack.qll to new dataflow API --- .../semmle/python/security/TimingAttack.qll | 43 ++++++++----------- 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/python/ql/src/experimental/semmle/python/security/TimingAttack.qll b/python/ql/src/experimental/semmle/python/security/TimingAttack.qll index 4df7752e64d..37d3a35158d 100644 --- a/python/ql/src/experimental/semmle/python/security/TimingAttack.qll +++ b/python/ql/src/experimental/semmle/python/security/TimingAttack.qll @@ -164,9 +164,7 @@ class NonConstantTimeComparisonSink extends DataFlow::Node { /** Holds if remote user input was used in the comparison. */ predicate includesUserInput() { - exists(UserInputInComparisonConfig config | - config.hasFlowTo(DataFlow2::exprNode(anotherParameter)) - ) + UserInputInComparisonFlow::flowTo(DataFlow2::exprNode(anotherParameter)) } } @@ -177,9 +175,7 @@ class SecretSource extends DataFlow::Node { SecretSource() { secret = this.asExpr() } /** Holds if the secret was deliverd by remote user. */ - predicate includesUserInput() { - exists(UserInputSecretConfig config | config.hasFlowTo(DataFlow2::exprNode(secret))) - } + predicate includesUserInput() { UserInputSecretFlow::flowTo(DataFlow2::exprNode(secret)) } } /** A string for `match` that identifies strings that look like they represent secret data. */ @@ -267,23 +263,21 @@ private string sensitiveheaders() { /** * A config that tracks data flow from remote user input to Variable that hold sensitive info */ -class UserInputSecretConfig extends TaintTracking::Configuration { - UserInputSecretConfig() { this = "UserInputSecretConfig" } +module UserInputSecretConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - override predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof CredentialExpr } + predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof CredentialExpr } } +module UserInputSecretFlow = TaintTracking::Global; + /** * A config that tracks data flow from remote user input to Equality test */ -class UserInputInComparisonConfig extends TaintTracking2::Configuration { - UserInputInComparisonConfig() { this = "UserInputInComparisonConfig" } +module UserInputInComparisonConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(Compare cmp, Expr left, Expr right, Cmpop cmpop | cmpop.getSymbol() = ["==", "in", "is not", "!="] and cmp.compares(left, cmpop, right) and @@ -292,15 +286,15 @@ class UserInputInComparisonConfig extends TaintTracking2::Configuration { } } +module UserInputInComparisonFlow = TaintTracking::Global; + /** * A configuration tracing flow from a client Secret obtained by an HTTP header to a len() function. */ -private class ExcludeLenFunc extends TaintTracking2::Configuration { - ExcludeLenFunc() { this = "ExcludeLenFunc" } +private module ExcludeLenFuncConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof ClientSuppliedSecret } - override predicate isSource(DataFlow::Node source) { source instanceof ClientSuppliedSecret } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(Call call | call.getFunc().(Name).getId() = "len" and sink.asExpr() = call.getArg(0) @@ -308,6 +302,8 @@ private class ExcludeLenFunc extends TaintTracking2::Configuration { } } +module ExcludeLenFuncFlow = TaintTracking::Global; + /** * Holds if there is a fast-fail check. */ @@ -343,8 +339,7 @@ class CompareSink extends DataFlow::Node { * Holds if there is a flow to len(). */ predicate flowtolen() { - exists(ExcludeLenFunc config, DataFlow2::PathNode source, DataFlow2::PathNode sink | - config.hasFlowPath(source, sink) - ) + // TODO: Fly by comment: I don't understand this code at all, seems very strange. + ExcludeLenFuncFlow::flowPath(_, _) } } From 1a4e8d9464888bb1fdbdd72540ddce5117032472 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:50 +0200 Subject: [PATCH 113/788] Python: Move experimental `PossibleTimingAttackAgainstSensitiveInfo` to new dataflow API --- ...ossibleTimingAttackAgainstSensitiveInfo.ql | 18 +++++++++------- ...eTimingAttackAgainstSensitiveInfo.expected | 21 ------------------- 2 files changed, 10 insertions(+), 29 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.ql b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.ql index d43c3aa8995..2cd51f49770 100644 --- a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.ql +++ b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.ql @@ -15,20 +15,22 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import experimental.semmle.python.security.TimingAttack -import DataFlow::PathGraph /** * A configuration tracing flow from obtaining a client Secret to a unsafe Comparison. */ -class ClientSuppliedSecretConfig extends TaintTracking::Configuration { - ClientSuppliedSecretConfig() { this = "ClientSuppliedSecretConfig" } +private module PossibleTimingAttackAgainstSensitiveInfoConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof SecretSource } - override predicate isSource(DataFlow::Node source) { source instanceof SecretSource } - - override predicate isSink(DataFlow::Node sink) { sink instanceof NonConstantTimeComparisonSink } + predicate isSink(DataFlow::Node sink) { sink instanceof NonConstantTimeComparisonSink } } -from ClientSuppliedSecretConfig config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +module PossibleTimingAttackAgainstSensitiveInfoFlow = +TaintTracking::Global; + +import PossibleTimingAttackAgainstSensitiveInfoFlow::PathGraph + +from PossibleTimingAttackAgainstSensitiveInfoFlow::PathNode source, PossibleTimingAttackAgainstSensitiveInfoFlow::PathNode sink +where PossibleTimingAttackAgainstSensitiveInfoFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Timing attack against $@ validation.", source.getNode(), "client-supplied token" diff --git a/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.expected b/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.expected index 564398c25c3..63d5e8ad821 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.expected @@ -1,27 +1,6 @@ edges -| TimingAttackAgainstSensitiveInfo.py:7:19:7:25 | ControlFlowNode for ImportMember | TimingAttackAgainstSensitiveInfo.py:7:19:7:25 | GSSA Variable request | -| TimingAttackAgainstSensitiveInfo.py:7:19:7:25 | GSSA Variable request | TimingAttackAgainstSensitiveInfo.py:14:8:14:14 | ControlFlowNode for request | -| TimingAttackAgainstSensitiveInfo.py:7:19:7:25 | GSSA Variable request | TimingAttackAgainstSensitiveInfo.py:15:20:15:26 | ControlFlowNode for request | -| TimingAttackAgainstSensitiveInfo.py:7:19:7:25 | GSSA Variable request | TimingAttackAgainstSensitiveInfo.py:20:8:20:14 | ControlFlowNode for request | -| TimingAttackAgainstSensitiveInfo.py:7:19:7:25 | GSSA Variable request | TimingAttackAgainstSensitiveInfo.py:21:20:21:26 | ControlFlowNode for request | -| TimingAttackAgainstSensitiveInfo.py:14:8:14:14 | ControlFlowNode for request | TimingAttackAgainstSensitiveInfo.py:15:9:15:16 | SSA variable password | -| TimingAttackAgainstSensitiveInfo.py:15:9:15:16 | SSA variable password | TimingAttackAgainstSensitiveInfo.py:16:16:16:23 | ControlFlowNode for password | -| TimingAttackAgainstSensitiveInfo.py:15:20:15:26 | ControlFlowNode for request | TimingAttackAgainstSensitiveInfo.py:15:9:15:16 | SSA variable password | -| TimingAttackAgainstSensitiveInfo.py:20:8:20:14 | ControlFlowNode for request | TimingAttackAgainstSensitiveInfo.py:21:9:21:16 | SSA variable password | -| TimingAttackAgainstSensitiveInfo.py:21:9:21:16 | SSA variable password | TimingAttackAgainstSensitiveInfo.py:22:38:22:45 | ControlFlowNode for password | -| TimingAttackAgainstSensitiveInfo.py:21:20:21:26 | ControlFlowNode for request | TimingAttackAgainstSensitiveInfo.py:21:9:21:16 | SSA variable password | nodes -| TimingAttackAgainstSensitiveInfo.py:7:19:7:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | -| TimingAttackAgainstSensitiveInfo.py:7:19:7:25 | GSSA Variable request | semmle.label | GSSA Variable request | -| TimingAttackAgainstSensitiveInfo.py:14:8:14:14 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| TimingAttackAgainstSensitiveInfo.py:15:9:15:16 | SSA variable password | semmle.label | SSA variable password | -| TimingAttackAgainstSensitiveInfo.py:15:20:15:26 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | TimingAttackAgainstSensitiveInfo.py:16:16:16:23 | ControlFlowNode for password | semmle.label | ControlFlowNode for password | -| TimingAttackAgainstSensitiveInfo.py:16:16:16:23 | ControlFlowNode for password | semmle.label | ControlFlowNode for password | -| TimingAttackAgainstSensitiveInfo.py:20:8:20:14 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| TimingAttackAgainstSensitiveInfo.py:21:9:21:16 | SSA variable password | semmle.label | SSA variable password | -| TimingAttackAgainstSensitiveInfo.py:21:20:21:26 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| TimingAttackAgainstSensitiveInfo.py:22:38:22:45 | ControlFlowNode for password | semmle.label | ControlFlowNode for password | subpaths #select | TimingAttackAgainstSensitiveInfo.py:16:16:16:23 | ControlFlowNode for password | TimingAttackAgainstSensitiveInfo.py:16:16:16:23 | ControlFlowNode for password | TimingAttackAgainstSensitiveInfo.py:16:16:16:23 | ControlFlowNode for password | Timing attack against $@ validation. | TimingAttackAgainstSensitiveInfo.py:16:16:16:23 | ControlFlowNode for password | client-supplied token | From 8abd3430a27160ecda1f035b5e83508e6ac4d6a2 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:50 +0200 Subject: [PATCH 114/788] Python: Move experimental `TimingAttackAgainstSensitiveInfo` to new dataflow API --- .../TimingAttackAgainstSensitiveInfo.ql | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstSensitiveInfo/TimingAttackAgainstSensitiveInfo.ql b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstSensitiveInfo/TimingAttackAgainstSensitiveInfo.ql index 63587d4afcc..8ec4fac97e3 100644 --- a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstSensitiveInfo/TimingAttackAgainstSensitiveInfo.ql +++ b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstSensitiveInfo/TimingAttackAgainstSensitiveInfo.ql @@ -15,22 +15,25 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import experimental.semmle.python.security.TimingAttack -import DataFlow::PathGraph +import TimingAttackAgainstSensitiveInfoFlow::PathGraph /** * A configuration tracing flow from obtaining a client Secret to a unsafe Comparison. */ -class ClientSuppliedSecretConfig extends TaintTracking::Configuration { - ClientSuppliedSecretConfig() { this = "ClientSuppliedSecretConfig" } +private module TimingAttackAgainstSensitiveInfoConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof SecretSource } - override predicate isSource(DataFlow::Node source) { source instanceof SecretSource } - - override predicate isSink(DataFlow::Node sink) { sink instanceof NonConstantTimeComparisonSink } + predicate isSink(DataFlow::Node sink) { sink instanceof NonConstantTimeComparisonSink } } -from ClientSuppliedSecretConfig config, DataFlow::PathNode source, DataFlow::PathNode sink +module TimingAttackAgainstSensitiveInfoFlow = + TaintTracking::Global; + +from + TimingAttackAgainstSensitiveInfoFlow::PathNode source, + TimingAttackAgainstSensitiveInfoFlow::PathNode sink where - config.hasFlowPath(source, sink) and + TimingAttackAgainstSensitiveInfoFlow::flowPath(source, sink) and ( source.getNode().(SecretSource).includesUserInput() or sink.getNode().(NonConstantTimeComparisonSink).includesUserInput() From a779547515c6c9b6c04a6dfdcca5bc8707e70d08 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:50 +0200 Subject: [PATCH 115/788] Python: Move experimental `PossibleTimingAttackAgainstHash` to new dataflow API --- .../PossibleTimingAttackAgainstHash.ql | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql index f46b93fb266..7a6a3f946bc 100644 --- a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql +++ b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql @@ -17,21 +17,22 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import experimental.semmle.python.security.TimingAttack -import DataFlow::PathGraph /** * A configuration that tracks data flow from cryptographic operations * to equality test */ -class PossibleTimingAttackAgainstHash extends TaintTracking::Configuration { - PossibleTimingAttackAgainstHash() { this = "PossibleTimingAttackAgainstHash" } +private module PossibleTimingAttackAgainstHash implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof ProduceCryptoCall } - override predicate isSource(DataFlow::Node source) { source instanceof ProduceCryptoCall } - - override predicate isSink(DataFlow::Node sink) { sink instanceof NonConstantTimeComparisonSink } + predicate isSink(DataFlow::Node sink) { sink instanceof NonConstantTimeComparisonSink } } -from PossibleTimingAttackAgainstHash config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +module PossibleTimingAttackAgainstHashFlow = TaintTracking::Global; + +import PossibleTimingAttackAgainstHashFlow::PathGraph + +from PossibleTimingAttackAgainstHashFlow::PathNode source, PossibleTimingAttackAgainstHashFlow::PathNode sink +where PossibleTimingAttackAgainstHashFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Possible Timing attack against $@ validation.", source.getNode().(ProduceCryptoCall).getResultType(), "message" From c88a0ccb7c4510365ad9ee41a894ed42cfd018c1 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:50 +0200 Subject: [PATCH 116/788] Python: Move experimental `TimingAttackAgainstHash` to new dataflow API --- .../TimingAttackAgainstHash.ql | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/TimingAttackAgainstHash.ql b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/TimingAttackAgainstHash.ql index 392356b7c42..e08f1dbb517 100644 --- a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/TimingAttackAgainstHash.ql +++ b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/TimingAttackAgainstHash.ql @@ -16,23 +16,24 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import experimental.semmle.python.security.TimingAttack -import DataFlow::PathGraph /** * A configuration that tracks data flow from cryptographic operations * to Equality test. */ -class TimingAttackAgainsthash extends TaintTracking::Configuration { - TimingAttackAgainsthash() { this = "TimingAttackAgainsthash" } +private module TimingAttackAgainstHashConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof ProduceCryptoCall } - override predicate isSource(DataFlow::Node source) { source instanceof ProduceCryptoCall } - - override predicate isSink(DataFlow::Node sink) { sink instanceof NonConstantTimeComparisonSink } + predicate isSink(DataFlow::Node sink) { sink instanceof NonConstantTimeComparisonSink } } -from TimingAttackAgainsthash config, DataFlow::PathNode source, DataFlow::PathNode sink +module TimingAttackAgainstHashFlow = TaintTracking::Global; + +import TimingAttackAgainstHashFlow::PathGraph + +from TimingAttackAgainstHashFlow::PathNode source, TimingAttackAgainstHashFlow::PathNode sink where - config.hasFlowPath(source, sink) and + TimingAttackAgainstHashFlow::flowPath(source, sink) and sink.getNode().(NonConstantTimeComparisonSink).includesUserInput() select sink.getNode(), source, sink, "Timing attack against $@ validation.", source.getNode().(ProduceCryptoCall).getResultType(), "message" From 3bf2705668a5b09b4aa91a9620207abb3e9b03b6 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:51 +0200 Subject: [PATCH 117/788] Python: Move experimental `TimingAttackAgainstHeaderValue` to new dataflow API --- .../TimingAttackAgainstHeaderValue.ql | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHeaderValue/TimingAttackAgainstHeaderValue.ql b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHeaderValue/TimingAttackAgainstHeaderValue.ql index 1f2ff8f50fb..a1da41530a8 100644 --- a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHeaderValue/TimingAttackAgainstHeaderValue.ql +++ b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHeaderValue/TimingAttackAgainstHeaderValue.ql @@ -15,20 +15,26 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import experimental.semmle.python.security.TimingAttack -import DataFlow::PathGraph /** * A configuration tracing flow from a client Secret obtained by an HTTP header to a unsafe Comparison. */ -class ClientSuppliedSecretConfig extends TaintTracking::Configuration { - ClientSuppliedSecretConfig() { this = "ClientSuppliedSecretConfig" } +private module TimingAttackAgainstHeaderValueConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof ClientSuppliedSecret } - override predicate isSource(DataFlow::Node source) { source instanceof ClientSuppliedSecret } - - override predicate isSink(DataFlow::Node sink) { sink instanceof CompareSink } + predicate isSink(DataFlow::Node sink) { sink instanceof CompareSink } } -from ClientSuppliedSecretConfig config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) and not sink.getNode().(CompareSink).flowtolen() +module TimingAttackAgainstHeaderValueFlow = + TaintTracking::Global; + +import TimingAttackAgainstHeaderValueFlow::PathGraph + +from + TimingAttackAgainstHeaderValueFlow::PathNode source, + TimingAttackAgainstHeaderValueFlow::PathNode sink +where + TimingAttackAgainstHeaderValueFlow::flowPath(source, sink) and + not sink.getNode().(CompareSink).flowtolen() select sink.getNode(), source, sink, "Timing attack against $@ validation.", source.getNode(), "client-supplied token" From 53e57dad5c62eb7607ddc93584a65769c433b2a6 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:51 +0200 Subject: [PATCH 118/788] Python: Move experimental `InsecureRandomness` to new dataflow API --- .../Security/CWE-338/InsecureRandomness.ql | 9 +++++---- .../python/security/InsecureRandomness.qll | 17 +++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-338/InsecureRandomness.ql b/python/ql/src/experimental/Security/CWE-338/InsecureRandomness.ql index 476906283aa..3e48068f015 100644 --- a/python/ql/src/experimental/Security/CWE-338/InsecureRandomness.ql +++ b/python/ql/src/experimental/Security/CWE-338/InsecureRandomness.ql @@ -14,11 +14,12 @@ */ import python -import experimental.semmle.python.security.InsecureRandomness::InsecureRandomness +import experimental.semmle.python.security.InsecureRandomness import semmle.python.dataflow.new.DataFlow -import DataFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink -where cfg.hasFlowPath(source, sink) +import InsecureRandomness::Flow::PathGraph + +from InsecureRandomness::Flow::PathNode source, InsecureRandomness::Flow::PathNode sink +where InsecureRandomness::Flow::flowPath(source, sink) select sink.getNode(), source, sink, "Cryptographically insecure $@ in a security context.", source.getNode(), "random value" diff --git a/python/ql/src/experimental/semmle/python/security/InsecureRandomness.qll b/python/ql/src/experimental/semmle/python/security/InsecureRandomness.qll index 5ad5e2553a5..c71b461d20a 100644 --- a/python/ql/src/experimental/semmle/python/security/InsecureRandomness.qll +++ b/python/ql/src/experimental/semmle/python/security/InsecureRandomness.qll @@ -21,17 +21,14 @@ module InsecureRandomness { * A taint-tracking configuration for reasoning about random values that are * not cryptographically secure. */ - class Configuration extends TaintTracking::Configuration { - Configuration() { this = "InsecureRandomness" } + private module Configuration implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } - override predicate isSource(DataFlow::Node source) { source instanceof Source } + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } - override predicate isSink(DataFlow::Node sink) { sink instanceof Sink } - - override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer } - - deprecated override predicate isSanitizerGuard(DataFlow::BarrierGuard guard) { - guard instanceof SanitizerGuard - } + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } } + + /** Global taint-tracking for detecting "random values that are not cryptographically secure" vulnerabilities. */ + module Flow = TaintTracking::Global; } From d948e103fa43057323d347c4efba6599cc40c223 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:51 +0200 Subject: [PATCH 119/788] Python: Move experimental `HeaderInjection` to new dataflow API --- .../experimental/Security/CWE-113/HeaderInjection.ql | 6 +++--- .../semmle/python/security/injection/HTTPHeaders.qll | 11 ++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-113/HeaderInjection.ql b/python/ql/src/experimental/Security/CWE-113/HeaderInjection.ql index 65305d2f3b5..6527df03339 100644 --- a/python/ql/src/experimental/Security/CWE-113/HeaderInjection.ql +++ b/python/ql/src/experimental/Security/CWE-113/HeaderInjection.ql @@ -14,9 +14,9 @@ // determine precision above import python import experimental.semmle.python.security.injection.HTTPHeaders -import DataFlow::PathGraph +import HeaderInjectionFlow::PathGraph -from HeaderInjectionFlowConfig config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from HeaderInjectionFlow::PathNode source, HeaderInjectionFlow::PathNode sink +where HeaderInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This HTTP header is constructed from a $@.", source.getNode(), "user-provided value" diff --git a/python/ql/src/experimental/semmle/python/security/injection/HTTPHeaders.qll b/python/ql/src/experimental/semmle/python/security/injection/HTTPHeaders.qll index 4ba70cd37a2..0768d7a84b2 100644 --- a/python/ql/src/experimental/semmle/python/security/injection/HTTPHeaders.qll +++ b/python/ql/src/experimental/semmle/python/security/injection/HTTPHeaders.qll @@ -7,14 +7,15 @@ import semmle.python.dataflow.new.RemoteFlowSources /** * A taint-tracking configuration for detecting HTTP Header injections. */ -class HeaderInjectionFlowConfig extends TaintTracking::Configuration { - HeaderInjectionFlowConfig() { this = "HeaderInjectionFlowConfig" } +private module HeaderInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(HeaderDeclaration headerDeclaration | sink in [headerDeclaration.getNameArg(), headerDeclaration.getValueArg()] ) } } + +/** Global taint-tracking for detecting "HTTP Header injection" vulnerabilities. */ +module HeaderInjectionFlow = TaintTracking::Global; From ace1e23c211eaba17833499eeddc0aad9bc6cf48 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:51 +0200 Subject: [PATCH 120/788] Python: Move experimental `ClientSuppliedIpUsedInSecurityCheck` to new dataflow API --- .../ClientSuppliedIpUsedInSecurityCheck.ql | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.ql b/python/ql/src/experimental/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.ql index aec637269ac..b1d598f4749 100644 --- a/python/ql/src/experimental/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.ql +++ b/python/ql/src/experimental/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.ql @@ -16,21 +16,19 @@ import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import semmle.python.ApiGraphs import ClientSuppliedIpUsedInSecurityCheckLib -import DataFlow::PathGraph +import ClientSuppliedIpUsedInSecurityCheckFlow::PathGraph /** * A taint-tracking configuration tracing flow from obtaining a client ip from an HTTP header to a sensitive use. */ -class ClientSuppliedIpUsedInSecurityCheckConfig extends TaintTracking::Configuration { - ClientSuppliedIpUsedInSecurityCheckConfig() { this = "ClientSuppliedIpUsedInSecurityCheckConfig" } - - override predicate isSource(DataFlow::Node source) { +private module ClientSuppliedIpUsedInSecurityCheckConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof ClientSuppliedIpUsedInSecurityCheck } - override predicate isSink(DataFlow::Node sink) { sink instanceof PossibleSecurityCheck } + predicate isSink(DataFlow::Node sink) { sink instanceof PossibleSecurityCheck } - override predicate isAdditionalTaintStep(DataFlow::Node pred, DataFlow::Node succ) { + predicate isAdditionalFlowStep(DataFlow::Node pred, DataFlow::Node succ) { exists(DataFlow::CallCfgNode ccn | ccn = API::moduleImport("netaddr").getMember("IPAddress").getACall() and ccn.getArg(0) = pred and @@ -38,7 +36,7 @@ class ClientSuppliedIpUsedInSecurityCheckConfig extends TaintTracking::Configura ) } - override predicate isSanitizer(DataFlow::Node node) { + predicate isBarrier(DataFlow::Node node) { // `client_supplied_ip.split(",")[n]` for `n` > 0 exists(Subscript ss | not ss.getIndex().(IntegerLiteral).getText() = "0" and @@ -49,9 +47,13 @@ class ClientSuppliedIpUsedInSecurityCheckConfig extends TaintTracking::Configura } } + +/** Global taint-tracking for detecting "client ip used in security check" vulnerabilities. */ +module ClientSuppliedIpUsedInSecurityCheckFlow = TaintTracking::Global; + from - ClientSuppliedIpUsedInSecurityCheckConfig config, DataFlow::PathNode source, - DataFlow::PathNode sink -where config.hasFlowPath(source, sink) + ClientSuppliedIpUsedInSecurityCheckFlow::PathNode source, + ClientSuppliedIpUsedInSecurityCheckFlow::PathNode sink +where ClientSuppliedIpUsedInSecurityCheckFlow::flowPath(source, sink) select sink.getNode(), source, sink, "IP address spoofing might include code from $@.", source.getNode(), "this user input" From 2c412707ab3ede26a9551cf3806fccab51384e9e Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:51 +0200 Subject: [PATCH 121/788] Python: Move experimental `CsvInjection` to new dataflow API --- .../experimental/Security/CWE-1236/CsvInjection.ql | 6 +++--- .../python/security/injection/CsvInjection.qll | 13 +++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-1236/CsvInjection.ql b/python/ql/src/experimental/Security/CWE-1236/CsvInjection.ql index 28a68dd78df..df9b7cf9f65 100644 --- a/python/ql/src/experimental/Security/CWE-1236/CsvInjection.ql +++ b/python/ql/src/experimental/Security/CWE-1236/CsvInjection.ql @@ -11,11 +11,11 @@ */ import python -import DataFlow::PathGraph +import CsvInjectionFlow::PathGraph import semmle.python.dataflow.new.DataFlow import experimental.semmle.python.security.injection.CsvInjection -from CsvInjectionFlowConfig config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from CsvInjectionFlow::PathNode source, CsvInjectionFlow::PathNode sink +where CsvInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Csv injection might include code from $@.", source.getNode(), "this user input" diff --git a/python/ql/src/experimental/semmle/python/security/injection/CsvInjection.qll b/python/ql/src/experimental/semmle/python/security/injection/CsvInjection.qll index c6197222d91..316dd4d2603 100644 --- a/python/ql/src/experimental/semmle/python/security/injection/CsvInjection.qll +++ b/python/ql/src/experimental/semmle/python/security/injection/CsvInjection.qll @@ -8,14 +8,12 @@ import semmle.python.dataflow.new.RemoteFlowSources /** * A taint-tracking configuration for tracking untrusted user input used in file read. */ -class CsvInjectionFlowConfig extends TaintTracking::Configuration { - CsvInjectionFlowConfig() { this = "CsvInjectionFlowConfig" } +private module CsvInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } + predicate isSink(DataFlow::Node sink) { sink = any(CsvWriter cw).getAnInput() } - override predicate isSink(DataFlow::Node sink) { sink = any(CsvWriter cw).getAnInput() } - - override predicate isSanitizer(DataFlow::Node node) { + predicate isBarrier(DataFlow::Node node) { node = DataFlow::BarrierGuard::getABarrierNode() or node instanceof StringConstCompareBarrier } @@ -29,3 +27,6 @@ private predicate startsWithCheck(DataFlow::GuardNode g, ControlFlowNode node, b branch = true ) } + +/** Global taint-tracking for detecting "CSV injection" vulnerabilities. */ +module CsvInjectionFlow = TaintTracking::Global; From 2c06394bf359ee7e571ecb34fb7b8b0971da731d Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:51 +0200 Subject: [PATCH 122/788] Python: Move experimental `CookieInjection` to new dataflow API --- .../experimental/Security/CWE-614/CookieInjection.ql | 6 +++--- .../python/security/injection/CookieInjection.qll | 11 ++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql b/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql index 894a69753d9..60e0fc4a0e4 100644 --- a/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql +++ b/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql @@ -15,13 +15,13 @@ import semmle.python.dataflow.new.DataFlow import experimental.semmle.python.Concepts import experimental.semmle.python.CookieHeader import experimental.semmle.python.security.injection.CookieInjection -import DataFlow::PathGraph +import CookieInjectionFlow::PathGraph from - CookieInjectionFlowConfig config, DataFlow::PathNode source, DataFlow::PathNode sink, + CookieInjectionFlow::PathNode source, CookieInjectionFlow::PathNode sink, string insecure where - config.hasFlowPath(source, sink) and + CookieInjectionFlow::flowPath(source, sink) and if exists(sink.getNode().(CookieSink)) then insecure = ",and its " + sink.getNode().(CookieSink).getFlag() + " flag is not properly set." else insecure = "." diff --git a/python/ql/src/experimental/semmle/python/security/injection/CookieInjection.qll b/python/ql/src/experimental/semmle/python/security/injection/CookieInjection.qll index 87f3b1fd76b..5d31b9f8b51 100644 --- a/python/ql/src/experimental/semmle/python/security/injection/CookieInjection.qll +++ b/python/ql/src/experimental/semmle/python/security/injection/CookieInjection.qll @@ -29,12 +29,13 @@ class CookieSink extends DataFlow::Node { /** * A taint-tracking configuration for detecting Cookie injections. */ -class CookieInjectionFlowConfig extends TaintTracking::Configuration { - CookieInjectionFlowConfig() { this = "CookieInjectionFlowConfig" } +private module CookieInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(Cookie c | sink in [c.getNameArg(), c.getValueArg()]) } } + +/** Global taint-tracking for detecting "Cookie injections" vulnerabilities. */ +module CookieInjectionFlow = TaintTracking::Global; From c6911c2ae064422dfadac1d2a5850b9b7f8c1117 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:51 +0200 Subject: [PATCH 123/788] Python: Move experimental `UnicodeBypassValidation` to new dataflow API --- .../CWE-176/UnicodeBypassValidation.ql | 6 +++--- .../CWE-176/UnicodeBypassValidationQuery.qll | 18 +++++++++++------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidation.ql b/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidation.ql index 67c61653763..f830c0ea25d 100644 --- a/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidation.ql +++ b/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidation.ql @@ -14,10 +14,10 @@ import python import UnicodeBypassValidationQuery -import DataFlow::PathGraph +import UnicodeBypassValidationFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from UnicodeBypassValidationFlow::PathNode source, UnicodeBypassValidationFlow::PathNode sink +where UnicodeBypassValidationFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This $@ processes unsafely $@ and any logical validation in-between could be bypassed using special Unicode characters.", sink.getNode(), "Unicode transformation (Unicode normalization)", source.getNode(), diff --git a/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidationQuery.qll b/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidationQuery.qll index 702a69a7095..169c71a0c09 100644 --- a/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidationQuery.qll +++ b/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidationQuery.qll @@ -3,6 +3,7 @@ */ private import python +import semmle.python.dataflow.new.DataFlow import semmle.python.ApiGraphs import semmle.python.Concepts import semmle.python.dataflow.new.internal.DataFlowPublic @@ -27,16 +28,16 @@ class PostValidation extends DataFlow::FlowState { * This configuration uses two flow states, `PreValidation` and `PostValidation`, * to track the requirement that a logical validation has been performed before the Unicode Transformation. */ -class Configuration extends TaintTracking::Configuration { - Configuration() { this = "UnicodeBypassValidation" } +private module UnicodeBypassValidationConfig implements DataFlow::StateConfigSig { + class FlowState = DataFlow::FlowState; - override predicate isSource(DataFlow::Node source, DataFlow::FlowState state) { + predicate isSource(DataFlow::Node source, FlowState state) { source instanceof RemoteFlowSource and state instanceof PreValidation } - override predicate isAdditionalTaintStep( - DataFlow::Node nodeFrom, DataFlow::FlowState stateFrom, DataFlow::Node nodeTo, - DataFlow::FlowState stateTo + predicate isAdditionalFlowStep( + DataFlow::Node nodeFrom, FlowState stateFrom, DataFlow::Node nodeTo, + FlowState stateTo ) { ( exists(Escaping escaping | nodeFrom = escaping.getAnInput() and nodeTo = escaping.getOutput()) @@ -51,7 +52,7 @@ class Configuration extends TaintTracking::Configuration { } /* A Unicode Tranformation (Unicode tranformation) is considered a sink when the algorithm used is either NFC or NFKC. */ - override predicate isSink(DataFlow::Node sink, DataFlow::FlowState state) { + predicate isSink(DataFlow::Node sink, FlowState state) { exists(API::CallNode cn | cn = API::moduleImport("unicodedata").getMember("normalize").getACall() and sink = cn.getArg(1) @@ -71,3 +72,6 @@ class Configuration extends TaintTracking::Configuration { state instanceof PostValidation } } + +/** Global taint-tracking for detecting "Unicode transformation mishandling" vulnerabilities. */ +module UnicodeBypassValidationFlow = TaintTracking::GlobalWithState; From acd0f2a8fb241fe488d35f28bb435f0c4be0bdc8 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:51 +0200 Subject: [PATCH 124/788] Python: Move experimental `LDAPInsecureAuth` to new dataflow API --- .../experimental/Security/CWE-522/LDAPInsecureAuth.ql | 6 +++--- .../semmle/python/security/LDAPInsecureAuth.qll | 11 ++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql b/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql index 960ef9a671a..e870a92e9ab 100644 --- a/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql +++ b/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql @@ -12,9 +12,9 @@ // determine precision above import python -import DataFlow::PathGraph +import LDAPInsecureAuthFlow::PathGraph import experimental.semmle.python.security.LDAPInsecureAuth -from LdapInsecureAuthConfig config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from LDAPInsecureAuthFlow::PathNode source, LDAPInsecureAuthFlow::PathNode sink +where LDAPInsecureAuthFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This LDAP host is authenticated insecurely." diff --git a/python/ql/src/experimental/semmle/python/security/LDAPInsecureAuth.qll b/python/ql/src/experimental/semmle/python/security/LDAPInsecureAuth.qll index 56fffe3a2a0..133bb1810cc 100644 --- a/python/ql/src/experimental/semmle/python/security/LDAPInsecureAuth.qll +++ b/python/ql/src/experimental/semmle/python/security/LDAPInsecureAuth.qll @@ -88,10 +88,8 @@ class LdapStringVar extends BinaryExpr { /** * A taint-tracking configuration for detecting LDAP insecure authentications. */ -class LdapInsecureAuthConfig extends TaintTracking::Configuration { - LdapInsecureAuthConfig() { this = "LDAPInsecureAuthConfig" } - - override predicate isSource(DataFlow::Node source) { +private module LDAPInsecureAuthConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource or source.asExpr() instanceof LdapFullHost or source.asExpr() instanceof LdapBothStrings or @@ -100,7 +98,10 @@ class LdapInsecureAuthConfig extends TaintTracking::Configuration { source.asExpr() instanceof LdapStringVar } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(LdapBind ldapBind | not ldapBind.useSsl() and sink = ldapBind.getHost()) } } + +/** Global taint-tracking for detecting "LDAP insecure authentications" vulnerabilities. */ +module LDAPInsecureAuthFlow = TaintTracking::Global; From bfcc194b85500dc3b0fa7060cd1fac5368ec9f89 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 17:23:51 +0200 Subject: [PATCH 125/788] Python: Move experimental `paramiko` to new dataflow API --- .../Security/CWE-074/paramiko/paramiko.ql | 20 ++++++++++--------- .../CWE-074-paramiko/paramiko.expected | 4 +++- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-074/paramiko/paramiko.ql b/python/ql/src/experimental/Security/CWE-074/paramiko/paramiko.ql index 5a38a673080..a902ff045c4 100644 --- a/python/ql/src/experimental/Security/CWE-074/paramiko/paramiko.ql +++ b/python/ql/src/experimental/Security/CWE-074/paramiko/paramiko.ql @@ -16,16 +16,13 @@ import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import semmle.python.dataflow.new.RemoteFlowSources import semmle.python.ApiGraphs -import DataFlow::PathGraph private API::Node paramikoClient() { result = API::moduleImport("paramiko").getMember("SSHClient").getReturn() } -class ParamikoCmdInjectionConfiguration extends TaintTracking::Configuration { - ParamikoCmdInjectionConfiguration() { this = "ParamikoCMDInjectionConfiguration" } - - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } +private module ParamikoConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } /** * exec_command of `paramiko.SSHClient` class execute command on ssh target server @@ -33,7 +30,7 @@ class ParamikoCmdInjectionConfiguration extends TaintTracking::Configuration { * and it run CMD on current system that running the ssh command * the Sink related to proxy command is the `connect` method of `paramiko.SSHClient` class */ - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink = paramikoClient().getMember("exec_command").getACall().getParameter(0, "command").asSink() or sink = paramikoClient().getMember("connect").getACall().getParameter(11, "sock").asSink() @@ -42,7 +39,7 @@ class ParamikoCmdInjectionConfiguration extends TaintTracking::Configuration { /** * this additional taint step help taint tracking to find the vulnerable `connect` method of `paramiko.SSHClient` class */ - override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { exists(API::CallNode call | call = API::moduleImport("paramiko").getMember("ProxyCommand").getACall() and nodeFrom = call.getParameter(0, "command_line").asSink() and @@ -51,7 +48,12 @@ class ParamikoCmdInjectionConfiguration extends TaintTracking::Configuration { } } -from ParamikoCmdInjectionConfiguration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +/** Global taint-tracking for detecting "paramiko command injection" vulnerabilities. */ +module ParamikoFlow = TaintTracking::Global; + +import ParamikoFlow::PathGraph + +from ParamikoFlow::PathNode source, ParamikoFlow::PathNode sink +where ParamikoFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This code execution depends on a $@.", source.getNode(), "a user-provided value" diff --git a/python/ql/test/experimental/query-tests/Security/CWE-074-paramiko/paramiko.expected b/python/ql/test/experimental/query-tests/Security/CWE-074-paramiko/paramiko.expected index 85e1e7b326d..b31006425a6 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-074-paramiko/paramiko.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-074-paramiko/paramiko.expected @@ -1,7 +1,8 @@ edges | paramiko.py:15:21:15:23 | ControlFlowNode for cmd | paramiko.py:16:62:16:64 | ControlFlowNode for cmd | | paramiko.py:20:21:20:23 | ControlFlowNode for cmd | paramiko.py:21:70:21:72 | ControlFlowNode for cmd | -| paramiko.py:25:21:25:23 | ControlFlowNode for cmd | paramiko.py:26:114:26:139 | ControlFlowNode for Attribute() | +| paramiko.py:25:21:25:23 | ControlFlowNode for cmd | paramiko.py:26:136:26:138 | ControlFlowNode for cmd | +| paramiko.py:26:136:26:138 | ControlFlowNode for cmd | paramiko.py:26:114:26:139 | ControlFlowNode for Attribute() | nodes | paramiko.py:15:21:15:23 | ControlFlowNode for cmd | semmle.label | ControlFlowNode for cmd | | paramiko.py:16:62:16:64 | ControlFlowNode for cmd | semmle.label | ControlFlowNode for cmd | @@ -9,6 +10,7 @@ nodes | paramiko.py:21:70:21:72 | ControlFlowNode for cmd | semmle.label | ControlFlowNode for cmd | | paramiko.py:25:21:25:23 | ControlFlowNode for cmd | semmle.label | ControlFlowNode for cmd | | paramiko.py:26:114:26:139 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| paramiko.py:26:136:26:138 | ControlFlowNode for cmd | semmle.label | ControlFlowNode for cmd | subpaths #select | paramiko.py:16:62:16:64 | ControlFlowNode for cmd | paramiko.py:15:21:15:23 | ControlFlowNode for cmd | paramiko.py:16:62:16:64 | ControlFlowNode for cmd | This code execution depends on a $@. | paramiko.py:15:21:15:23 | ControlFlowNode for cmd | a user-provided value | From d5e2a30e5b7905410e69255682ecdc2c3c3fac4e Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 21:58:51 +0200 Subject: [PATCH 126/788] Python: Modernize `py/azure-storage/unsafe-client-side-encryption-in-use` a bit To use consistent naming --- .../Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index 9b73cdcec87..b23ca4b0bc6 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -96,7 +96,7 @@ newtype TAzureFlowState = MkUsesV1Encryption() or MkUsesNoEncryption() -module AzureBlobClientConfig implements DataFlow::StateConfigSig { +private module AzureBlobClientConfig implements DataFlow::StateConfigSig { class FlowState = TAzureFlowState; predicate isSource(DataFlow::Node node, FlowState state) { @@ -147,10 +147,10 @@ module AzureBlobClientConfig implements DataFlow::StateConfigSig { } } -module AzureBlobClient = DataFlow::GlobalWithState; +module AzureBlobClientFlow = DataFlow::GlobalWithState; -import AzureBlobClient::PathGraph +import AzureBlobClientFlow::PathGraph -from AzureBlobClient::PathNode source, AzureBlobClient::PathNode sink -where AzureBlobClient::flowPath(source, sink) +from AzureBlobClientFlow::PathNode source, AzureBlobClientFlow::PathNode sink +where AzureBlobClientFlow::flowPath(source, sink) select sink, source, sink, "Unsafe usage of v1 version of Azure Storage client-side encryption" From 852b01c65da327ee5a5f7b4bba5d8a15afddc198 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 22:07:11 +0200 Subject: [PATCH 127/788] Python: Move `SmtpMessageConfig` to new dataflow API --- .../semmle/python/libraries/SmtpLib.qll | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/python/ql/src/experimental/semmle/python/libraries/SmtpLib.qll b/python/ql/src/experimental/semmle/python/libraries/SmtpLib.qll index 83ea49cbb66..7ecbbc1beba 100644 --- a/python/ql/src/experimental/semmle/python/libraries/SmtpLib.qll +++ b/python/ql/src/experimental/semmle/python/libraries/SmtpLib.qll @@ -2,7 +2,7 @@ private import python private import semmle.python.dataflow.new.DataFlow private import experimental.semmle.python.Concepts private import semmle.python.ApiGraphs -private import semmle.python.dataflow.new.TaintTracking2 +private import semmle.python.dataflow.new.TaintTracking module SmtpLib { /** Gets a reference to `smtplib.SMTP_SSL` */ @@ -31,16 +31,16 @@ module SmtpLib { * argument. Used because of the impossibility to get local source nodes from `_subparts`' * `(List|Tuple)` elements. */ - private class SmtpMessageConfig extends TaintTracking2::Configuration { - SmtpMessageConfig() { this = "SMTPMessageConfig" } + private module SmtpMessageConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source = mimeText(_) } - override predicate isSource(DataFlow::Node source) { source = mimeText(_) } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink = smtpMimeMultipartInstance().getACall().getArgByName("_subparts") } } + module SmtpMessageFlow = TaintTracking::Global; + /** * Using the `MimeText` call retrieves the content argument whose type argument equals `mimetype`. * This call flows into `MIMEMultipart`'s `_subparts` argument or the `.attach()` method call @@ -87,8 +87,7 @@ module SmtpLib { sink = [sendCall.getArg(2), sendCall.getArg(2).(DataFlow::MethodCallNode).getObject()] .getALocalSource() and - any(SmtpMessageConfig a) - .hasFlow(source, sink.(DataFlow::CallCfgNode).getArgByName("_subparts")) + SmtpMessageFlow::flow(source, sink.(DataFlow::CallCfgNode).getArgByName("_subparts")) or // via .attach() sink = smtpMimeMultipartInstance().getReturn().getMember("attach").getACall() and From 6d4491e0a92f74634bf12443b4882b1b69e41561 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 22:08:19 +0200 Subject: [PATCH 128/788] Python: Modernize `WebAppConstantSecretKey` --- .../WebAppConstantSecretKey.ql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-287-ConstantSecretKey/WebAppConstantSecretKey.ql b/python/ql/src/experimental/Security/CWE-287-ConstantSecretKey/WebAppConstantSecretKey.ql index 38548628237..7bb35012b38 100644 --- a/python/ql/src/experimental/Security/CWE-287-ConstantSecretKey/WebAppConstantSecretKey.ql +++ b/python/ql/src/experimental/Security/CWE-287-ConstantSecretKey/WebAppConstantSecretKey.ql @@ -25,7 +25,7 @@ newtype TFrameWork = Flask() or Django() -module WebAppConstantSecretKeyConfig implements DataFlow::StateConfigSig { +private module WebAppConstantSecretKeyConfig implements DataFlow::StateConfigSig { class FlowState = TFrameWork; predicate isSource(DataFlow::Node source, FlowState state) { @@ -54,11 +54,11 @@ module WebAppConstantSecretKeyConfig implements DataFlow::StateConfigSig { } } -module WebAppConstantSecretKey = TaintTracking::GlobalWithState; +module WebAppConstantSecretKeyFlow = TaintTracking::GlobalWithState; -import WebAppConstantSecretKey::PathGraph +import WebAppConstantSecretKeyFlow::PathGraph -from WebAppConstantSecretKey::PathNode source, WebAppConstantSecretKey::PathNode sink -where WebAppConstantSecretKey::flowPath(source, sink) +from WebAppConstantSecretKeyFlow::PathNode source, WebAppConstantSecretKeyFlow::PathNode sink +where WebAppConstantSecretKeyFlow::flowPath(source, sink) select sink, source, sink, "The SECRET_KEY config variable is assigned by $@.", source, " this constant String" From ed0e441567bcec715250380b891150a1014c49b6 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 25 Aug 2023 22:28:36 +0200 Subject: [PATCH 129/788] Python: Accept missing `DataflowQueryTest` implementation for now --- .../DataflowQueryTest.expected | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.expected b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.expected index 04431311999..483a93aaf99 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.expected @@ -1,3 +1,16 @@ missingAnnotationOnSink -failures testFailures +| UnsafeUnpack.py:19:59:19:71 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:34:52:34:64 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:48:50:48:62 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:52:50:52:62 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:66:50:66:62 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:87:42:87:54 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:105:55:105:67 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:112:56:112:68 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:120:71:120:83 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:142:54:142:66 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:167:75:167:90 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:176:64:176:76 | Comment # $result=BAD | Missing result:result=BAD | +| UnsafeUnpack.py:201:47:201:59 | Comment # $result=BAD | Missing result:result=BAD | +failures From 6961ca5234b5357775c1a8f32aa4ef8c4d6aa644 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Mon, 28 Aug 2023 11:10:10 +0200 Subject: [PATCH 130/788] Python: Rename to `EmailXss` --- .../CWE-079/{ReflectedXSS.ql => EmailXss.ql} | 8 ++++---- .../dataflow/{ReflectedXSS.qll => EmailXss.qll} | 13 ++++--------- .../{ReflectedXSS.expected => EmailXss.expected} | 0 .../query-tests/Security/CWE-079/EmailXss.qlref | 1 + .../query-tests/Security/CWE-079/ReflectedXSS.qlref | 1 - 5 files changed, 9 insertions(+), 14 deletions(-) rename python/ql/src/experimental/Security/CWE-079/{ReflectedXSS.ql => EmailXss.ql} (72%) rename python/ql/src/experimental/semmle/python/security/dataflow/{ReflectedXSS.qll => EmailXss.qll} (70%) rename python/ql/test/experimental/query-tests/Security/CWE-079/{ReflectedXSS.expected => EmailXss.expected} (100%) create mode 100644 python/ql/test/experimental/query-tests/Security/CWE-079/EmailXss.qlref delete mode 100644 python/ql/test/experimental/query-tests/Security/CWE-079/ReflectedXSS.qlref diff --git a/python/ql/src/experimental/Security/CWE-079/ReflectedXSS.ql b/python/ql/src/experimental/Security/CWE-079/EmailXss.ql similarity index 72% rename from python/ql/src/experimental/Security/CWE-079/ReflectedXSS.ql rename to python/ql/src/experimental/Security/CWE-079/EmailXss.ql index 1f5cc601c09..046efdeba89 100644 --- a/python/ql/src/experimental/Security/CWE-079/ReflectedXSS.ql +++ b/python/ql/src/experimental/Security/CWE-079/EmailXss.ql @@ -15,10 +15,10 @@ // determine precision above import python -import experimental.semmle.python.security.dataflow.ReflectedXSS -import ReflectedXSSFlow::PathGraph +import experimental.semmle.python.security.dataflow.EmailXss +import EmailXssFlow::PathGraph -from ReflectedXSSFlow::PathNode source, ReflectedXSSFlow::PathNode sink -where ReflectedXSSFlow::flowPath(source, sink) +from EmailXssFlow::PathNode source, EmailXssFlow::PathNode sink +where EmailXssFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Cross-site scripting vulnerability due to $@.", source.getNode(), "a user-provided value" diff --git a/python/ql/src/experimental/semmle/python/security/dataflow/ReflectedXSS.qll b/python/ql/src/experimental/semmle/python/security/dataflow/EmailXss.qll similarity index 70% rename from python/ql/src/experimental/semmle/python/security/dataflow/ReflectedXSS.qll rename to python/ql/src/experimental/semmle/python/security/dataflow/EmailXss.qll index b12f54dedf8..88e9af89ba6 100644 --- a/python/ql/src/experimental/semmle/python/security/dataflow/ReflectedXSS.qll +++ b/python/ql/src/experimental/semmle/python/security/dataflow/EmailXss.qll @@ -1,6 +1,5 @@ /** - * Provides a taint-tracking configuration for detecting reflected server-side - * cross-site scripting vulnerabilities. + * Provides a taint-tracking configuration for detecting "Email XSS" vulnerabilities. */ import python @@ -12,11 +11,7 @@ import experimental.semmle.python.Concepts import semmle.python.Concepts import semmle.python.ApiGraphs -/** - * A taint-tracking configuration for detecting reflected server-side cross-site - * scripting vulnerabilities. - */ -private module ReflectedXSSConfig implements DataFlow::ConfigSig { +private module EmailXssConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } predicate isSink(DataFlow::Node sink) { sink = any(EmailSender email).getHtmlBody() } @@ -41,5 +36,5 @@ private module ReflectedXSSConfig implements DataFlow::ConfigSig { } } -/** Global taint-tracking for detecting "TODO" vulnerabilities. */ -module ReflectedXSSFlow = TaintTracking::Global; +/** Global taint-tracking for detecting "Email XSS" vulnerabilities. */ +module EmailXssFlow = TaintTracking::Global; diff --git a/python/ql/test/experimental/query-tests/Security/CWE-079/ReflectedXSS.expected b/python/ql/test/experimental/query-tests/Security/CWE-079/EmailXss.expected similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-079/ReflectedXSS.expected rename to python/ql/test/experimental/query-tests/Security/CWE-079/EmailXss.expected diff --git a/python/ql/test/experimental/query-tests/Security/CWE-079/EmailXss.qlref b/python/ql/test/experimental/query-tests/Security/CWE-079/EmailXss.qlref new file mode 100644 index 00000000000..fcc132dd66c --- /dev/null +++ b/python/ql/test/experimental/query-tests/Security/CWE-079/EmailXss.qlref @@ -0,0 +1 @@ +experimental/Security/CWE-079/EmailXss.ql diff --git a/python/ql/test/experimental/query-tests/Security/CWE-079/ReflectedXSS.qlref b/python/ql/test/experimental/query-tests/Security/CWE-079/ReflectedXSS.qlref deleted file mode 100644 index dec87309b29..00000000000 --- a/python/ql/test/experimental/query-tests/Security/CWE-079/ReflectedXSS.qlref +++ /dev/null @@ -1 +0,0 @@ -experimental/Security/CWE-079/ReflectedXSS.ql From 5ba8e102eba5750cdb58680d2388e5c16ae35759 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Mon, 28 Aug 2023 11:30:58 +0200 Subject: [PATCH 131/788] Python: Adopt tests to new `DataflowQueryTest` Since we want to know the _sinks_ and not just the flow, we need to expose the config as well :| --- .../security/dataflow/CommandInjectionQuery.qll | 2 +- .../python/security/dataflow/PathInjectionQuery.qll | 2 +- .../UnsafeShellCommandConstructionQuery.qll | 2 +- .../src/experimental/Security/UnsafeUnpackQuery.qll | 2 +- .../DataflowQueryTest.expected | 13 ------------- .../CWE-022-UnsafeUnpacking/DataflowQueryTest.ql | 2 +- .../CWE-022-PathInjection/DataflowQueryTest.ql | 2 +- .../CWE-078-CommandInjection/DataflowQueryTest.ql | 2 +- .../DataflowQueryTest.ql | 2 +- 9 files changed, 8 insertions(+), 21 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll index b9c1fb09043..ce4b88b419d 100644 --- a/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll @@ -30,7 +30,7 @@ deprecated class Configuration extends TaintTracking::Configuration { } } -private module CommandInjectionConfig implements DataFlow::ConfigSig { +module CommandInjectionConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof Source } predicate isSink(DataFlow::Node sink) { sink instanceof Sink } diff --git a/python/ql/lib/semmle/python/security/dataflow/PathInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/PathInjectionQuery.qll index 307c16da05d..b185098dcb8 100644 --- a/python/ql/lib/semmle/python/security/dataflow/PathInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/PathInjectionQuery.qll @@ -88,7 +88,7 @@ class NormalizedUnchecked extends DataFlow::FlowState { * * Such checks are ineffective in the `NotNormalized` state. */ -private module PathInjectionConfig implements DataFlow::StateConfigSig { +module PathInjectionConfig implements DataFlow::StateConfigSig { class FlowState = DataFlow::FlowState; predicate isSource(DataFlow::Node source, FlowState state) { diff --git a/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll index 14a702a405e..2a68110859f 100644 --- a/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll @@ -35,7 +35,7 @@ deprecated class Configuration extends TaintTracking::Configuration { } } -private module UnsafeShellCommandConstructionConfig implements DataFlow::ConfigSig { +module UnsafeShellCommandConstructionConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof Source } predicate isSink(DataFlow::Node sink) { sink instanceof Sink } diff --git a/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll b/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll index 7c297d975a4..338a5555c57 100644 --- a/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll +++ b/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll @@ -39,7 +39,7 @@ class AllTarfileOpens extends API::CallNode { } } -private module UnsafeUnpackConfig implements DataFlow::ConfigSig { +module UnsafeUnpackConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { // A source coming from a remote location source instanceof RemoteFlowSource diff --git a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.expected b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.expected index 483a93aaf99..9ce23b4c553 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.expected @@ -1,16 +1,3 @@ missingAnnotationOnSink testFailures -| UnsafeUnpack.py:19:59:19:71 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:34:52:34:64 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:48:50:48:62 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:52:50:52:62 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:66:50:66:62 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:87:42:87:54 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:105:55:105:67 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:112:56:112:68 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:120:71:120:83 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:142:54:142:66 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:167:75:167:90 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:176:64:176:76 | Comment # $result=BAD | Missing result:result=BAD | -| UnsafeUnpack.py:201:47:201:59 | Comment # $result=BAD | Missing result:result=BAD | failures diff --git a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.ql b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.ql index 91a6cdaa14a..ed7d650f536 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.ql +++ b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python import experimental.dataflow.TestUtil.DataflowQueryTest import experimental.Security.UnsafeUnpackQuery -import FromLegacyConfiguration +import FromTaintTrackingConfig diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql index 91ba1765724..90761391ce7 100644 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python import experimental.dataflow.TestUtil.DataflowQueryTest import semmle.python.security.dataflow.PathInjectionQuery -import FromLegacyConfiguration +import FromTaintTrackingStateConfig diff --git a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.ql index ecb787218b1..df745b4ee8c 100644 --- a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.ql +++ b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python import experimental.dataflow.TestUtil.DataflowQueryTest import semmle.python.security.dataflow.CommandInjectionQuery -import FromLegacyConfiguration +import FromTaintTrackingConfig diff --git a/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/DataflowQueryTest.ql index b00d364b853..b2602b2b25c 100644 --- a/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/DataflowQueryTest.ql +++ b/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python import experimental.dataflow.TestUtil.DataflowQueryTest import semmle.python.security.dataflow.UnsafeShellCommandConstructionQuery -import FromLegacyConfiguration +import FromTaintTrackingConfig From 98538d237e27b3b0eca8de81c369acf60525ade6 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Mon, 28 Aug 2023 11:56:41 +0200 Subject: [PATCH 132/788] Python: Autoformat --- .../Security/CWE-176/UnicodeBypassValidationQuery.qll | 3 +-- .../PossibleTimingAttackAgainstHash.ql | 4 +++- .../PossibleTimingAttackAgainstSensitiveInfo.ql | 6 ++++-- .../src/experimental/Security/CWE-338/InsecureRandomness.ql | 1 - .../Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.ql | 4 ++-- .../ql/src/experimental/Security/CWE-614/CookieInjection.ql | 4 +--- .../experimental/semmle/python/security/TimingAttack.qll | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidationQuery.qll b/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidationQuery.qll index 169c71a0c09..a5d9d53b084 100644 --- a/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidationQuery.qll +++ b/python/ql/src/experimental/Security/CWE-176/UnicodeBypassValidationQuery.qll @@ -36,8 +36,7 @@ private module UnicodeBypassValidationConfig implements DataFlow::StateConfigSig } predicate isAdditionalFlowStep( - DataFlow::Node nodeFrom, FlowState stateFrom, DataFlow::Node nodeTo, - FlowState stateTo + DataFlow::Node nodeFrom, FlowState stateFrom, DataFlow::Node nodeTo, FlowState stateTo ) { ( exists(Escaping escaping | nodeFrom = escaping.getAnInput() and nodeTo = escaping.getOutput()) diff --git a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql index 7a6a3f946bc..c28b51f02d7 100644 --- a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql +++ b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql @@ -32,7 +32,9 @@ module PossibleTimingAttackAgainstHashFlow = TaintTracking::Global; + TaintTracking::Global; import PossibleTimingAttackAgainstSensitiveInfoFlow::PathGraph -from PossibleTimingAttackAgainstSensitiveInfoFlow::PathNode source, PossibleTimingAttackAgainstSensitiveInfoFlow::PathNode sink +from + PossibleTimingAttackAgainstSensitiveInfoFlow::PathNode source, + PossibleTimingAttackAgainstSensitiveInfoFlow::PathNode sink where PossibleTimingAttackAgainstSensitiveInfoFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Timing attack against $@ validation.", source.getNode(), "client-supplied token" diff --git a/python/ql/src/experimental/Security/CWE-338/InsecureRandomness.ql b/python/ql/src/experimental/Security/CWE-338/InsecureRandomness.ql index 3e48068f015..1991300726b 100644 --- a/python/ql/src/experimental/Security/CWE-338/InsecureRandomness.ql +++ b/python/ql/src/experimental/Security/CWE-338/InsecureRandomness.ql @@ -16,7 +16,6 @@ import python import experimental.semmle.python.security.InsecureRandomness import semmle.python.dataflow.new.DataFlow - import InsecureRandomness::Flow::PathGraph from InsecureRandomness::Flow::PathNode source, InsecureRandomness::Flow::PathNode sink diff --git a/python/ql/src/experimental/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.ql b/python/ql/src/experimental/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.ql index b1d598f4749..51d6c9b6652 100644 --- a/python/ql/src/experimental/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.ql +++ b/python/ql/src/experimental/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.ql @@ -47,9 +47,9 @@ private module ClientSuppliedIpUsedInSecurityCheckConfig implements DataFlow::Co } } - /** Global taint-tracking for detecting "client ip used in security check" vulnerabilities. */ -module ClientSuppliedIpUsedInSecurityCheckFlow = TaintTracking::Global; +module ClientSuppliedIpUsedInSecurityCheckFlow = + TaintTracking::Global; from ClientSuppliedIpUsedInSecurityCheckFlow::PathNode source, diff --git a/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql b/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql index 60e0fc4a0e4..4193e37dee2 100644 --- a/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql +++ b/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql @@ -17,9 +17,7 @@ import experimental.semmle.python.CookieHeader import experimental.semmle.python.security.injection.CookieInjection import CookieInjectionFlow::PathGraph -from - CookieInjectionFlow::PathNode source, CookieInjectionFlow::PathNode sink, - string insecure +from CookieInjectionFlow::PathNode source, CookieInjectionFlow::PathNode sink, string insecure where CookieInjectionFlow::flowPath(source, sink) and if exists(sink.getNode().(CookieSink)) diff --git a/python/ql/src/experimental/semmle/python/security/TimingAttack.qll b/python/ql/src/experimental/semmle/python/security/TimingAttack.qll index 37d3a35158d..23bd4dc268d 100644 --- a/python/ql/src/experimental/semmle/python/security/TimingAttack.qll +++ b/python/ql/src/experimental/semmle/python/security/TimingAttack.qll @@ -263,7 +263,7 @@ private string sensitiveheaders() { /** * A config that tracks data flow from remote user input to Variable that hold sensitive info */ -module UserInputSecretConfig implements DataFlow::ConfigSig { +module UserInputSecretConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof CredentialExpr } From efec4e7ebf4d4deec3f8838fd20fc0bc0beb1147 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Mon, 28 Aug 2023 11:58:13 +0200 Subject: [PATCH 133/788] Python: Add missing qldocs --- .../semmle/python/security/dataflow/CommandInjectionQuery.qll | 3 +++ .../security/dataflow/UnsafeShellCommandConstructionQuery.qll | 3 +++ 2 files changed, 6 insertions(+) diff --git a/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll index ce4b88b419d..80ca46dafa9 100644 --- a/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll @@ -30,6 +30,9 @@ deprecated class Configuration extends TaintTracking::Configuration { } } +/** + * A taint-tracking configuration for detecting "command injection" vulnerabilities. + */ module CommandInjectionConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof Source } diff --git a/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll index 2a68110859f..d829f08608f 100644 --- a/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/UnsafeShellCommandConstructionQuery.qll @@ -35,6 +35,9 @@ deprecated class Configuration extends TaintTracking::Configuration { } } +/** + * A taint-tracking configuration for detecting "shell command constructed from library input" vulnerabilities. + */ module UnsafeShellCommandConstructionConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof Source } From 996364d6ee4dbd24ae3b070ae30929a74fb122ed Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Mon, 28 Aug 2023 12:01:49 +0200 Subject: [PATCH 134/788] Python: Fix naming style guide violations --- .../PossibleTimingAttackAgainstHash.ql | 5 +++-- .../Security/CWE-340/TokenBuiltFromUUID.ql | 10 +++++----- .../experimental/Security/CWE-522/LDAPInsecureAuth.ql | 6 +++--- .../semmle/python/security/InsecureRandomness.qll | 4 ++-- .../semmle/python/security/LDAPInsecureAuth.qll | 4 ++-- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql index c28b51f02d7..82ba11c1d4b 100644 --- a/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql +++ b/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql @@ -22,13 +22,14 @@ import experimental.semmle.python.security.TimingAttack * A configuration that tracks data flow from cryptographic operations * to equality test */ -private module PossibleTimingAttackAgainstHash implements DataFlow::ConfigSig { +private module PossibleTimingAttackAgainstHashConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof ProduceCryptoCall } predicate isSink(DataFlow::Node sink) { sink instanceof NonConstantTimeComparisonSink } } -module PossibleTimingAttackAgainstHashFlow = TaintTracking::Global; +module PossibleTimingAttackAgainstHashFlow = + TaintTracking::Global; import PossibleTimingAttackAgainstHashFlow::PathGraph diff --git a/python/ql/src/experimental/Security/CWE-340/TokenBuiltFromUUID.ql b/python/ql/src/experimental/Security/CWE-340/TokenBuiltFromUUID.ql index e4310a68e8f..b91f2dd6237 100644 --- a/python/ql/src/experimental/Security/CWE-340/TokenBuiltFromUUID.ql +++ b/python/ql/src/experimental/Security/CWE-340/TokenBuiltFromUUID.ql @@ -39,7 +39,7 @@ class TokenAssignmentValueSink extends DataFlow::Node { } } -private module TokenBuiltFromUUIDConfig implements DataFlow::ConfigSig { +private module TokenBuiltFromUuidConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof PredictableResultSource } predicate isSink(DataFlow::Node sink) { sink instanceof TokenAssignmentValueSink } @@ -54,10 +54,10 @@ private module TokenBuiltFromUUIDConfig implements DataFlow::ConfigSig { } /** Global taint-tracking for detecting "TokenBuiltFromUUID" vulnerabilities. */ -module TokenBuiltFromUUIDFlow = TaintTracking::Global; +module TokenBuiltFromUuidFlow = TaintTracking::Global; -import TokenBuiltFromUUIDFlow::PathGraph +import TokenBuiltFromUuidFlow::PathGraph -from TokenBuiltFromUUIDFlow::PathNode source, TokenBuiltFromUUIDFlow::PathNode sink -where TokenBuiltFromUUIDFlow::flowPath(source, sink) +from TokenBuiltFromUuidFlow::PathNode source, TokenBuiltFromUuidFlow::PathNode sink +where TokenBuiltFromUuidFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Token built from $@.", source.getNode(), "predictable value" diff --git a/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql b/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql index e870a92e9ab..284f20b2c39 100644 --- a/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql +++ b/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql @@ -12,9 +12,9 @@ // determine precision above import python -import LDAPInsecureAuthFlow::PathGraph import experimental.semmle.python.security.LDAPInsecureAuth +import LdapInsecureAuthFlow::PathGraph -from LDAPInsecureAuthFlow::PathNode source, LDAPInsecureAuthFlow::PathNode sink -where LDAPInsecureAuthFlow::flowPath(source, sink) +from LdapInsecureAuthFlow::PathNode source, LdapInsecureAuthFlow::PathNode sink +where LdapInsecureAuthFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This LDAP host is authenticated insecurely." diff --git a/python/ql/src/experimental/semmle/python/security/InsecureRandomness.qll b/python/ql/src/experimental/semmle/python/security/InsecureRandomness.qll index c71b461d20a..5a32a887bd5 100644 --- a/python/ql/src/experimental/semmle/python/security/InsecureRandomness.qll +++ b/python/ql/src/experimental/semmle/python/security/InsecureRandomness.qll @@ -21,7 +21,7 @@ module InsecureRandomness { * A taint-tracking configuration for reasoning about random values that are * not cryptographically secure. */ - private module Configuration implements DataFlow::ConfigSig { + private module Config implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof Source } predicate isSink(DataFlow::Node sink) { sink instanceof Sink } @@ -30,5 +30,5 @@ module InsecureRandomness { } /** Global taint-tracking for detecting "random values that are not cryptographically secure" vulnerabilities. */ - module Flow = TaintTracking::Global; + module Flow = TaintTracking::Global; } diff --git a/python/ql/src/experimental/semmle/python/security/LDAPInsecureAuth.qll b/python/ql/src/experimental/semmle/python/security/LDAPInsecureAuth.qll index 133bb1810cc..e8249dcdff7 100644 --- a/python/ql/src/experimental/semmle/python/security/LDAPInsecureAuth.qll +++ b/python/ql/src/experimental/semmle/python/security/LDAPInsecureAuth.qll @@ -88,7 +88,7 @@ class LdapStringVar extends BinaryExpr { /** * A taint-tracking configuration for detecting LDAP insecure authentications. */ -private module LDAPInsecureAuthConfig implements DataFlow::ConfigSig { +private module LdapInsecureAuthConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource or source.asExpr() instanceof LdapFullHost or @@ -104,4 +104,4 @@ private module LDAPInsecureAuthConfig implements DataFlow::ConfigSig { } /** Global taint-tracking for detecting "LDAP insecure authentications" vulnerabilities. */ -module LDAPInsecureAuthFlow = TaintTracking::Global; +module LdapInsecureAuthFlow = TaintTracking::Global; From c665c21d83901059429fe585dd1415930e6e4ba3 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Mon, 28 Aug 2023 12:02:52 +0200 Subject: [PATCH 135/788] Python: More style-guide renaming Split it into multiple commits to make it easier to review. --- .../CWE-522/{LDAPInsecureAuth.qhelp => LdapInsecureAuth.qhelp} | 0 .../CWE-522/{LDAPInsecureAuth.ql => LdapInsecureAuth.ql} | 2 +- .../security/{LDAPInsecureAuth.qll => LdapInsecureAuth.qll} | 0 .../Security/CWE-522-global-option/LDAPInsecureAuth.qlref | 1 - .../{LDAPInsecureAuth.expected => LdapInsecureAuth.expected} | 0 .../Security/CWE-522-global-option/LdapInsecureAuth.qlref | 1 + .../query-tests/Security/CWE-522/LDAPInsecureAuth.qlref | 1 - .../{LDAPInsecureAuth.expected => LdapInsecureAuth.expected} | 0 .../query-tests/Security/CWE-522/LdapInsecureAuth.qlref | 1 + 9 files changed, 3 insertions(+), 3 deletions(-) rename python/ql/src/experimental/Security/CWE-522/{LDAPInsecureAuth.qhelp => LdapInsecureAuth.qhelp} (100%) rename python/ql/src/experimental/Security/CWE-522/{LDAPInsecureAuth.ql => LdapInsecureAuth.ql} (90%) rename python/ql/src/experimental/semmle/python/security/{LDAPInsecureAuth.qll => LdapInsecureAuth.qll} (100%) delete mode 100644 python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LDAPInsecureAuth.qlref rename python/ql/test/experimental/query-tests/Security/CWE-522-global-option/{LDAPInsecureAuth.expected => LdapInsecureAuth.expected} (100%) create mode 100644 python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LdapInsecureAuth.qlref delete mode 100644 python/ql/test/experimental/query-tests/Security/CWE-522/LDAPInsecureAuth.qlref rename python/ql/test/experimental/query-tests/Security/CWE-522/{LDAPInsecureAuth.expected => LdapInsecureAuth.expected} (100%) create mode 100644 python/ql/test/experimental/query-tests/Security/CWE-522/LdapInsecureAuth.qlref diff --git a/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.qhelp b/python/ql/src/experimental/Security/CWE-522/LdapInsecureAuth.qhelp similarity index 100% rename from python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.qhelp rename to python/ql/src/experimental/Security/CWE-522/LdapInsecureAuth.qhelp diff --git a/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql b/python/ql/src/experimental/Security/CWE-522/LdapInsecureAuth.ql similarity index 90% rename from python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql rename to python/ql/src/experimental/Security/CWE-522/LdapInsecureAuth.ql index 284f20b2c39..8b72780d91a 100644 --- a/python/ql/src/experimental/Security/CWE-522/LDAPInsecureAuth.ql +++ b/python/ql/src/experimental/Security/CWE-522/LdapInsecureAuth.ql @@ -12,7 +12,7 @@ // determine precision above import python -import experimental.semmle.python.security.LDAPInsecureAuth +import experimental.semmle.python.security.LdapInsecureAuth import LdapInsecureAuthFlow::PathGraph from LdapInsecureAuthFlow::PathNode source, LdapInsecureAuthFlow::PathNode sink diff --git a/python/ql/src/experimental/semmle/python/security/LDAPInsecureAuth.qll b/python/ql/src/experimental/semmle/python/security/LdapInsecureAuth.qll similarity index 100% rename from python/ql/src/experimental/semmle/python/security/LDAPInsecureAuth.qll rename to python/ql/src/experimental/semmle/python/security/LdapInsecureAuth.qll diff --git a/python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LDAPInsecureAuth.qlref b/python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LDAPInsecureAuth.qlref deleted file mode 100644 index 8bb2c1e9b52..00000000000 --- a/python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LDAPInsecureAuth.qlref +++ /dev/null @@ -1 +0,0 @@ -experimental/Security/CWE-522/LDAPInsecureAuth.ql \ No newline at end of file diff --git a/python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LDAPInsecureAuth.expected b/python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LdapInsecureAuth.expected similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LDAPInsecureAuth.expected rename to python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LdapInsecureAuth.expected diff --git a/python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LdapInsecureAuth.qlref b/python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LdapInsecureAuth.qlref new file mode 100644 index 00000000000..7b867cb3186 --- /dev/null +++ b/python/ql/test/experimental/query-tests/Security/CWE-522-global-option/LdapInsecureAuth.qlref @@ -0,0 +1 @@ +experimental/Security/CWE-522/LdapInsecureAuth.ql diff --git a/python/ql/test/experimental/query-tests/Security/CWE-522/LDAPInsecureAuth.qlref b/python/ql/test/experimental/query-tests/Security/CWE-522/LDAPInsecureAuth.qlref deleted file mode 100644 index 8bb2c1e9b52..00000000000 --- a/python/ql/test/experimental/query-tests/Security/CWE-522/LDAPInsecureAuth.qlref +++ /dev/null @@ -1 +0,0 @@ -experimental/Security/CWE-522/LDAPInsecureAuth.ql \ No newline at end of file diff --git a/python/ql/test/experimental/query-tests/Security/CWE-522/LDAPInsecureAuth.expected b/python/ql/test/experimental/query-tests/Security/CWE-522/LdapInsecureAuth.expected similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-522/LDAPInsecureAuth.expected rename to python/ql/test/experimental/query-tests/Security/CWE-522/LdapInsecureAuth.expected diff --git a/python/ql/test/experimental/query-tests/Security/CWE-522/LdapInsecureAuth.qlref b/python/ql/test/experimental/query-tests/Security/CWE-522/LdapInsecureAuth.qlref new file mode 100644 index 00000000000..7b867cb3186 --- /dev/null +++ b/python/ql/test/experimental/query-tests/Security/CWE-522/LdapInsecureAuth.qlref @@ -0,0 +1 @@ +experimental/Security/CWE-522/LdapInsecureAuth.ql From e8e8d975e3e068a4625f6a5b15d654f617813616 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Mon, 28 Aug 2023 15:34:19 +0200 Subject: [PATCH 136/788] Python: Remove all usage of DataFlow2+TaintTracking2 (and any higher number as well) --- .../security/dataflow/PolynomialReDoSCustomizations.qll | 1 - .../experimental/semmle/python/security/TimingAttack.qll | 6 ++---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSCustomizations.qll index 09d787de57f..a6ba053e2d2 100644 --- a/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSCustomizations.qll @@ -6,7 +6,6 @@ private import python private import semmle.python.dataflow.new.DataFlow -private import semmle.python.dataflow.new.DataFlow2 private import semmle.python.dataflow.new.TaintTracking private import semmle.python.Concepts private import semmle.python.dataflow.new.RemoteFlowSources diff --git a/python/ql/src/experimental/semmle/python/security/TimingAttack.qll b/python/ql/src/experimental/semmle/python/security/TimingAttack.qll index 23bd4dc268d..f072f212305 100644 --- a/python/ql/src/experimental/semmle/python/security/TimingAttack.qll +++ b/python/ql/src/experimental/semmle/python/security/TimingAttack.qll @@ -1,8 +1,6 @@ private import python -private import semmle.python.dataflow.new.TaintTracking2 private import semmle.python.dataflow.new.TaintTracking private import semmle.python.dataflow.new.DataFlow -private import semmle.python.dataflow.new.DataFlow2 private import semmle.python.ApiGraphs private import semmle.python.dataflow.new.RemoteFlowSources private import semmle.python.frameworks.Flask @@ -164,7 +162,7 @@ class NonConstantTimeComparisonSink extends DataFlow::Node { /** Holds if remote user input was used in the comparison. */ predicate includesUserInput() { - UserInputInComparisonFlow::flowTo(DataFlow2::exprNode(anotherParameter)) + UserInputInComparisonFlow::flowTo(DataFlow::exprNode(anotherParameter)) } } @@ -175,7 +173,7 @@ class SecretSource extends DataFlow::Node { SecretSource() { secret = this.asExpr() } /** Holds if the secret was deliverd by remote user. */ - predicate includesUserInput() { UserInputSecretFlow::flowTo(DataFlow2::exprNode(secret)) } + predicate includesUserInput() { UserInputSecretFlow::flowTo(DataFlow::exprNode(secret)) } } /** A string for `match` that identifies strings that look like they represent secret data. */ From ce6335866b84f7cc0eeed65e06ed21c69d879190 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Mon, 28 Aug 2023 15:43:00 +0200 Subject: [PATCH 137/788] Python: Move `ModificationOfParameterWithDefault` to new dataflow API --- .../ModificationOfParameterWithDefault.ql | 8 ++--- .../ModificationOfParameterWithDefault.qll | 33 ++++++++++++++++++- .../test.ql | 2 +- 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/python/ql/src/Functions/ModificationOfParameterWithDefault.ql b/python/ql/src/Functions/ModificationOfParameterWithDefault.ql index 88b346fd2a0..3c601091694 100644 --- a/python/ql/src/Functions/ModificationOfParameterWithDefault.ql +++ b/python/ql/src/Functions/ModificationOfParameterWithDefault.ql @@ -13,11 +13,11 @@ import python import semmle.python.functions.ModificationOfParameterWithDefault -import DataFlow::PathGraph +import ModificationOfParameterWithDefault::Flow::PathGraph from - ModificationOfParameterWithDefault::Configuration config, DataFlow::PathNode source, - DataFlow::PathNode sink -where config.hasFlowPath(source, sink) + ModificationOfParameterWithDefault::Flow::PathNode source, + ModificationOfParameterWithDefault::Flow::PathNode sink +where ModificationOfParameterWithDefault::Flow::flowPath(source, sink) select sink.getNode(), source, sink, "This expression mutates a $@.", source.getNode(), "default value" diff --git a/python/ql/src/semmle/python/functions/ModificationOfParameterWithDefault.qll b/python/ql/src/semmle/python/functions/ModificationOfParameterWithDefault.qll index 24103a33ace..a0838772515 100644 --- a/python/ql/src/semmle/python/functions/ModificationOfParameterWithDefault.qll +++ b/python/ql/src/semmle/python/functions/ModificationOfParameterWithDefault.qll @@ -16,9 +16,11 @@ module ModificationOfParameterWithDefault { import ModificationOfParameterWithDefaultCustomizations::ModificationOfParameterWithDefault /** + * DEPRECATED: Use `Flow` module instead. + * * A data-flow configuration for detecting modifications of a parameters default value. */ - class Configuration extends DataFlow::Configuration { + deprecated class Configuration extends DataFlow::Configuration { /** Record whether the default value being tracked is non-empty. */ boolean nonEmptyDefault; @@ -43,4 +45,33 @@ module ModificationOfParameterWithDefault { nonEmptyDefault = false and node instanceof MustBeNonEmpty } } + + private module Config implements DataFlow::StateConfigSig { + class FlowState = boolean; + + predicate isSource(DataFlow::Node source, FlowState state) { + source.(Source).isNonEmpty() = state + } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isSink(DataFlow::Node sink, FlowState state) { + // dummy implementation since this predicate is required, but actual logic is in + // the predicate above. + none() + } + + predicate isBarrier(DataFlow::Node node, FlowState state) { + // if we are tracking a non-empty default, then it is ok to modify empty values, + // so our tracking ends at those. + state = true and node instanceof MustBeEmpty + or + // if we are tracking a empty default, then it is ok to modify non-empty values, + // so our tracking ends at those. + state = false and node instanceof MustBeNonEmpty + } + } + + /** Global data-flow for detecting modifications of a parameters default value. */ + module Flow = DataFlow::GlobalWithState; } diff --git a/python/ql/test/query-tests/Functions/ModificationOfParameterWithDefault/test.ql b/python/ql/test/query-tests/Functions/ModificationOfParameterWithDefault/test.ql index 97a01fd4b5f..eaf935d573b 100644 --- a/python/ql/test/query-tests/Functions/ModificationOfParameterWithDefault/test.ql +++ b/python/ql/test/query-tests/Functions/ModificationOfParameterWithDefault/test.ql @@ -8,7 +8,7 @@ module ModificationOfParameterWithDefaultTest implements TestSig { string getARelevantTag() { result = "modification" } private predicate relevant_node(DataFlow::Node sink) { - exists(ModificationOfParameterWithDefault::Configuration cfg | cfg.hasFlowTo(sink)) + ModificationOfParameterWithDefault::Flow::flowTo(sink) } predicate hasActualResult(Location location, string element, string tag, string value) { From 3476437bfe4529dd66c35efc8b0258d34cec4503 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Thu, 31 Aug 2023 13:12:43 +0200 Subject: [PATCH 138/788] C#: Add test case with recursive generics --- .../ExtractortMessages.expected | 0 .../ExtractortMessages.ql | 6 +++++ .../diag_recursive_generics/Types.expected | 0 .../diag_recursive_generics/Types.ql | 5 ++++ .../diag_recursive_generics/test.cs | 23 +++++++++++++++++++ .../diag_recursive_generics/test.csproj | 12 ++++++++++ .../diag_recursive_generics/test.py | 3 +++ 7 files changed, 49 insertions(+) create mode 100644 csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.expected create mode 100644 csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.ql create mode 100644 csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.expected create mode 100644 csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.ql create mode 100644 csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.cs create mode 100644 csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj create mode 100644 csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.py diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.expected b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.ql b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.ql new file mode 100644 index 00000000000..10b9822fc2e --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.ql @@ -0,0 +1,6 @@ +import csharp +import semmle.code.csharp.commons.Diagnostics + +query predicate extractorMessages(ExtractorMessage msg, int severity, string elementText) { + msg.getSeverity() = severity and msg.getElementText() = elementText +} diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.expected b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.ql b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.ql new file mode 100644 index 00000000000..c7b1545c51d --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.ql @@ -0,0 +1,5 @@ +import csharp + +from Class c +where c.fromSource() +select c, c.getBaseClass().getQualifiedName() diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.cs b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.cs new file mode 100644 index 00000000000..35f5c68d5fa --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.cs @@ -0,0 +1,23 @@ +public class GenA { }; +public class GenB : GenA>> { }; + +class P { } +class C : P> { } +class D : P> { } + +class A : System.IEquatable> +{ + public bool Equals(A other) { return true; } +} + +public class Class +{ + public static int Main() + { + GenB a = new GenB(); + P> b = new C(); + A c = new A(); + + return 0; + } +} diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj new file mode 100644 index 00000000000..97ae9f860c1 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj @@ -0,0 +1,12 @@ + + + + Exe + net7.0 + + + + + + + diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.py b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.py new file mode 100644 index 00000000000..24cc83b4f2d --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.py @@ -0,0 +1,3 @@ +from create_database_utils import * + +run_codeql_database_create(['dotnet build'], lang="csharp", extra_args=["--extractor-option=cil=false"]) From d4bc6e434a06b7bfb69af8eeba9d8bfd691f4b12 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Thu, 31 Aug 2023 13:40:47 +0200 Subject: [PATCH 139/788] add test with false positive --- .../CWE-601-UrlRedirect/UrlRedirect.expected | 14 ++++++++++++++ .../Security/CWE-601-UrlRedirect/test.py | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected b/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected index 167e5270c95..21f498c5d94 100644 --- a/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected +++ b/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected @@ -8,6 +8,7 @@ edges | test.py:1:26:1:32 | GSSA Variable request | test.py:67:17:67:23 | ControlFlowNode for request | | test.py:1:26:1:32 | GSSA Variable request | test.py:74:17:74:23 | ControlFlowNode for request | | test.py:1:26:1:32 | GSSA Variable request | test.py:81:17:81:23 | ControlFlowNode for request | +| test.py:1:26:1:32 | GSSA Variable request | test.py:90:17:90:23 | ControlFlowNode for request | | test.py:7:5:7:10 | SSA variable target | test.py:8:21:8:26 | ControlFlowNode for target | | test.py:7:14:7:20 | ControlFlowNode for request | test.py:7:14:7:25 | ControlFlowNode for Attribute | | test.py:7:14:7:25 | ControlFlowNode for Attribute | test.py:7:14:7:43 | ControlFlowNode for Attribute() | @@ -47,6 +48,11 @@ edges | test.py:81:17:81:28 | ControlFlowNode for Attribute | test.py:81:17:81:46 | ControlFlowNode for Attribute() | | test.py:81:17:81:46 | ControlFlowNode for Attribute() | test.py:81:5:81:13 | SSA variable untrusted | | test.py:82:5:82:10 | SSA variable unsafe | test.py:83:21:83:26 | ControlFlowNode for unsafe | +| test.py:90:5:90:13 | SSA variable untrusted | test.py:93:18:93:26 | ControlFlowNode for untrusted | +| test.py:90:5:90:13 | SSA variable untrusted | test.py:95:25:95:33 | ControlFlowNode for untrusted | +| test.py:90:17:90:23 | ControlFlowNode for request | test.py:90:17:90:28 | ControlFlowNode for Attribute | +| test.py:90:17:90:28 | ControlFlowNode for Attribute | test.py:90:17:90:46 | ControlFlowNode for Attribute() | +| test.py:90:17:90:46 | ControlFlowNode for Attribute() | test.py:90:5:90:13 | SSA variable untrusted | nodes | test.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | @@ -97,6 +103,12 @@ nodes | test.py:81:17:81:46 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | test.py:82:5:82:10 | SSA variable unsafe | semmle.label | SSA variable unsafe | | test.py:83:21:83:26 | ControlFlowNode for unsafe | semmle.label | ControlFlowNode for unsafe | +| test.py:90:5:90:13 | SSA variable untrusted | semmle.label | SSA variable untrusted | +| test.py:90:17:90:23 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| test.py:90:17:90:28 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| test.py:90:17:90:46 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| test.py:93:18:93:26 | ControlFlowNode for untrusted | semmle.label | ControlFlowNode for untrusted | +| test.py:95:25:95:33 | ControlFlowNode for untrusted | semmle.label | ControlFlowNode for untrusted | subpaths #select | test.py:8:21:8:26 | ControlFlowNode for target | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:8:21:8:26 | ControlFlowNode for target | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | @@ -107,3 +119,5 @@ subpaths | test.py:69:21:69:26 | ControlFlowNode for unsafe | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:69:21:69:26 | ControlFlowNode for unsafe | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | test.py:76:21:76:26 | ControlFlowNode for unsafe | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:76:21:76:26 | ControlFlowNode for unsafe | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | test.py:83:21:83:26 | ControlFlowNode for unsafe | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:83:21:83:26 | ControlFlowNode for unsafe | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:93:18:93:26 | ControlFlowNode for untrusted | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:93:18:93:26 | ControlFlowNode for untrusted | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:95:25:95:33 | ControlFlowNode for untrusted | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:95:25:95:33 | ControlFlowNode for untrusted | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/test.py b/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/test.py index 381eb3a4bae..419ae428edd 100644 --- a/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/test.py +++ b/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/test.py @@ -81,3 +81,17 @@ def not_ok4(): untrusted = request.args.get('target', '') unsafe = "%s?login=success" % untrusted return redirect(unsafe, code=302) + +from django.utils.http import url_has_allowed_host_and_scheme +import math + +@app.route('/ok6') +def ok6(): + untrusted = request.args.get('target', '') + # random chance. + if math.random() > 0.5: + redirect(untrusted, code=302) # NOT OK + if url_has_allowed_host_and_scheme(untrusted, allowed_hosts=None): + return redirect(untrusted, code=302) # OK - but is flagged! + + return redirect("https://example.com", code=302) # OK \ No newline at end of file From 8dad4950a94fd13f597de2997ea738a0fcda9e80 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Thu, 31 Aug 2023 13:48:42 +0200 Subject: [PATCH 140/788] add sanitizer guard for url_has_allowed_host_and_scheme --- .../dataflow/UrlRedirectCustomizations.qll | 27 +++++++++++++++++++ .../CWE-601-UrlRedirect/UrlRedirect.expected | 3 --- .../Security/CWE-601-UrlRedirect/test.py | 2 +- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/UrlRedirectCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/UrlRedirectCustomizations.qll index b4843f1a8eb..1476d0381ea 100644 --- a/python/ql/lib/semmle/python/security/dataflow/UrlRedirectCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/UrlRedirectCustomizations.qll @@ -70,4 +70,31 @@ module UrlRedirect { * A comparison with a constant string, considered as a sanitizer-guard. */ class StringConstCompareAsSanitizerGuard extends Sanitizer, StringConstCompareBarrier { } + + private import semmle.python.ApiGraphs + + private predicate djangoUrlHasAllowedHostAndScheme( + DataFlow::GuardNode g, ControlFlowNode node, boolean branch + ) { + exists(API::CallNode call | + call = + API::moduleImport("django") + .getMember("utils") + .getMember("http") + .getMember("url_has_allowed_host_and_scheme") + .getACall() and + g = call.asCfgNode() and + node = call.getParameter(0, "url").asSink().asCfgNode() and + branch = true + ) + } + + /** + * A call to `django.utils.http.url_has_allowed_host_and_scheme`, considered as a sanitizer-guard. + */ + private class DjangoAllowedUrl extends Sanitizer { + DjangoAllowedUrl() { + this = DataFlow::BarrierGuard::getABarrierNode() + } + } } diff --git a/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected b/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected index 21f498c5d94..ea47807a211 100644 --- a/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected +++ b/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected @@ -49,7 +49,6 @@ edges | test.py:81:17:81:46 | ControlFlowNode for Attribute() | test.py:81:5:81:13 | SSA variable untrusted | | test.py:82:5:82:10 | SSA variable unsafe | test.py:83:21:83:26 | ControlFlowNode for unsafe | | test.py:90:5:90:13 | SSA variable untrusted | test.py:93:18:93:26 | ControlFlowNode for untrusted | -| test.py:90:5:90:13 | SSA variable untrusted | test.py:95:25:95:33 | ControlFlowNode for untrusted | | test.py:90:17:90:23 | ControlFlowNode for request | test.py:90:17:90:28 | ControlFlowNode for Attribute | | test.py:90:17:90:28 | ControlFlowNode for Attribute | test.py:90:17:90:46 | ControlFlowNode for Attribute() | | test.py:90:17:90:46 | ControlFlowNode for Attribute() | test.py:90:5:90:13 | SSA variable untrusted | @@ -108,7 +107,6 @@ nodes | test.py:90:17:90:28 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | test.py:90:17:90:46 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | test.py:93:18:93:26 | ControlFlowNode for untrusted | semmle.label | ControlFlowNode for untrusted | -| test.py:95:25:95:33 | ControlFlowNode for untrusted | semmle.label | ControlFlowNode for untrusted | subpaths #select | test.py:8:21:8:26 | ControlFlowNode for target | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:8:21:8:26 | ControlFlowNode for target | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | @@ -120,4 +118,3 @@ subpaths | test.py:76:21:76:26 | ControlFlowNode for unsafe | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:76:21:76:26 | ControlFlowNode for unsafe | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | test.py:83:21:83:26 | ControlFlowNode for unsafe | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:83:21:83:26 | ControlFlowNode for unsafe | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | test.py:93:18:93:26 | ControlFlowNode for untrusted | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:93:18:93:26 | ControlFlowNode for untrusted | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | -| test.py:95:25:95:33 | ControlFlowNode for untrusted | test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:95:25:95:33 | ControlFlowNode for untrusted | Untrusted URL redirection depends on a $@. | test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/test.py b/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/test.py index 419ae428edd..0a02b4ac1d5 100644 --- a/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/test.py +++ b/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/test.py @@ -92,6 +92,6 @@ def ok6(): if math.random() > 0.5: redirect(untrusted, code=302) # NOT OK if url_has_allowed_host_and_scheme(untrusted, allowed_hosts=None): - return redirect(untrusted, code=302) # OK - but is flagged! + return redirect(untrusted, code=302) # OK return redirect("https://example.com", code=302) # OK \ No newline at end of file From 89e9d25f02c3ec3b5b552012eca8ae54ffc42973 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 31 Aug 2023 13:05:12 +0200 Subject: [PATCH 141/788] Ruby: Hide desugared assignments from data flow path graph --- .../ruby/dataflow/internal/DataFlowPrivate.qll | 17 +++++++++++++---- .../dataflow/array-flow/array-flow.expected | 8 ++------ .../dataflow/hash-flow/hash-flow.expected | 4 +--- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index d0990b63063..03fc2566fe5 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -558,9 +558,7 @@ import Cached /** Holds if `n` should be hidden from path explanations. */ predicate nodeIsHidden(Node n) { - exists(SsaImpl::DefinitionExt def | def = n.(SsaDefinitionExtNode).getDefinitionExt() | - not def instanceof Ssa::WriteDefinition - ) + n.(SsaDefinitionExtNode).isHidden() or n = LocalFlow::getParameterDefNode(_) or @@ -593,6 +591,13 @@ class SsaDefinitionExtNode extends NodeImpl, TSsaDefinitionExtNode { /** Gets the underlying variable. */ Variable getVariable() { result = def.getSourceVariable() } + /** Holds if this node should be hidden from path explanations. */ + predicate isHidden() { + not def instanceof Ssa::WriteDefinition + or + isDesugarNode(def.(Ssa::WriteDefinition).getWriteAccess().getExpr()) + } + override CfgScope getCfgScope() { result = def.getBasicBlock().getScope() } override Location getLocationImpl() { result = def.getLocation() } @@ -1593,7 +1598,11 @@ class CastNode extends Node { */ predicate neverSkipInPathGraph(Node n) { // ensure that all variable assignments are included in the path graph - n.(SsaDefinitionExtNode).getDefinitionExt() instanceof Ssa::WriteDefinition + n = + any(SsaDefinitionExtNode def | + def.getDefinitionExt() instanceof Ssa::WriteDefinition and + not def.isHidden() + ) } class DataFlowExpr = CfgNodes::ExprCfgNode; diff --git a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected index cc720fde1f8..aae13446229 100644 --- a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected @@ -203,10 +203,8 @@ edges | array_flow.rb:80:13:80:21 | call to source | array_flow.rb:80:5:80:5 | a [element 1] | | array_flow.rb:81:8:81:8 | c | array_flow.rb:83:10:83:10 | c | | array_flow.rb:81:8:81:8 | c | array_flow.rb:83:10:83:10 | c | -| array_flow.rb:81:15:81:15 | __synth__3 [element 1] | array_flow.rb:81:8:81:8 | c | -| array_flow.rb:81:15:81:15 | __synth__3 [element 1] | array_flow.rb:81:8:81:8 | c | -| array_flow.rb:81:15:81:15 | a [element 1] | array_flow.rb:81:15:81:15 | __synth__3 [element 1] | -| array_flow.rb:81:15:81:15 | a [element 1] | array_flow.rb:81:15:81:15 | __synth__3 [element 1] | +| array_flow.rb:81:15:81:15 | a [element 1] | array_flow.rb:81:8:81:8 | c | +| array_flow.rb:81:15:81:15 | a [element 1] | array_flow.rb:81:8:81:8 | c | | array_flow.rb:88:5:88:5 | a [element 1] | array_flow.rb:89:9:89:9 | a [element 1] | | array_flow.rb:88:5:88:5 | a [element 1] | array_flow.rb:89:9:89:9 | a [element 1] | | array_flow.rb:88:13:88:22 | call to source | array_flow.rb:88:5:88:5 | a [element 1] | @@ -4468,8 +4466,6 @@ nodes | array_flow.rb:80:13:80:21 | call to source | semmle.label | call to source | | array_flow.rb:81:8:81:8 | c | semmle.label | c | | array_flow.rb:81:8:81:8 | c | semmle.label | c | -| array_flow.rb:81:15:81:15 | __synth__3 [element 1] | semmle.label | __synth__3 [element 1] | -| array_flow.rb:81:15:81:15 | __synth__3 [element 1] | semmle.label | __synth__3 [element 1] | | array_flow.rb:81:15:81:15 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:81:15:81:15 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:83:10:83:10 | c | semmle.label | c | diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected index 0ec677d4198..79f2565a590 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected @@ -81,8 +81,7 @@ edges | hash_flow.rb:96:30:96:33 | hash [element :a] | hash_flow.rb:96:13:96:34 | call to try_convert [element :a] | | hash_flow.rb:97:10:97:14 | hash2 [element :a] | hash_flow.rb:97:10:97:18 | ...[...] | | hash_flow.rb:105:5:105:5 | b | hash_flow.rb:106:10:106:10 | b | -| hash_flow.rb:105:21:105:30 | __synth__0 | hash_flow.rb:105:5:105:5 | b | -| hash_flow.rb:105:21:105:30 | call to taint | hash_flow.rb:105:21:105:30 | __synth__0 | +| hash_flow.rb:105:21:105:30 | call to taint | hash_flow.rb:105:5:105:5 | b | | hash_flow.rb:113:5:113:5 | b | hash_flow.rb:115:10:115:10 | b | | hash_flow.rb:113:9:113:12 | [post] hash [element :a] | hash_flow.rb:114:10:114:13 | hash [element :a] | | hash_flow.rb:113:9:113:34 | call to store | hash_flow.rb:113:5:113:5 | b | @@ -1063,7 +1062,6 @@ nodes | hash_flow.rb:97:10:97:14 | hash2 [element :a] | semmle.label | hash2 [element :a] | | hash_flow.rb:97:10:97:18 | ...[...] | semmle.label | ...[...] | | hash_flow.rb:105:5:105:5 | b | semmle.label | b | -| hash_flow.rb:105:21:105:30 | __synth__0 | semmle.label | __synth__0 | | hash_flow.rb:105:21:105:30 | call to taint | semmle.label | call to taint | | hash_flow.rb:106:10:106:10 | b | semmle.label | b | | hash_flow.rb:113:5:113:5 | b | semmle.label | b | From c1d80918917e8227be399e4885bdcb4c79af4593 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Thu, 31 Aug 2023 13:12:55 +0200 Subject: [PATCH 142/788] C#: Exclude base type extraction of recursive generics --- .../Entities/Types/Type.cs | 215 +++++++++++++++++- .../ExtractortMessages.expected | 4 + .../diag_recursive_generics/Types.expected | 35 +++ 3 files changed, 253 insertions(+), 1 deletion(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs index 59bb0bee4dd..f396025d3ee 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; @@ -82,8 +83,15 @@ namespace Semmle.Extraction.CSharp.Entities var baseTypes = GetBaseTypeDeclarations(); + var hasExpandingCycle = GenericsRecursionGraph.HasExpandingCycle(Symbol); + if (hasExpandingCycle) + { + Context.ExtractionError("Found recursive generic inheritance hierarchy. Base class of type is not extracted", Symbol.ToDisplayString(), Context.CreateLocation(ReportingLocation), severity: Util.Logging.Severity.Warning); + } + // Visit base types - if (Symbol.GetNonObjectBaseType(Context) is INamedTypeSymbol @base) + if (!hasExpandingCycle + && Symbol.GetNonObjectBaseType(Context) is INamedTypeSymbol @base) { var bts = GetBaseTypeDeclarations(baseTypes, @base); @@ -347,6 +355,211 @@ namespace Semmle.Extraction.CSharp.Entities } public override int GetHashCode() => SymbolEqualityComparer.Default.GetHashCode(Symbol); + + ///

    + /// Class to detect recursive generic inheritance hierarchies. + /// + /// Details can be found in https://www.ecma-international.org/wp-content/uploads/ECMA-335_6th_edition_june_2012.pdf Chapter II.9.2 Generics and recursive inheritance graphs + /// The dotnet runtime already implements this check as a runtime validation: https://github.com/dotnet/runtime/blob/e48e88d0fe9c2e494c0e6fd0c7c1fb54e7ddbdb1/src/coreclr/vm/generics.cpp#L748 + /// + public class GenericsRecursionGraph + { + private static readonly ConcurrentDictionary resultCache = new(SymbolEqualityComparer.Default); + + /// + /// Checks whether the given type has a recursive generic inheritance hierarchy. The result is cached. + /// + public static bool HasExpandingCycle(ITypeSymbol start) + { + if (start.OriginalDefinition is not INamedTypeSymbol namedTypeDefinition || + !namedTypeDefinition.IsGenericType) + { + return false; + } + + if (resultCache.TryGetValue(namedTypeDefinition, out var result)) + { + return result; + } + + result = new GenericsRecursionGraph(namedTypeDefinition).HasExpandingCycle(); + resultCache.TryAdd(namedTypeDefinition, result); + + return result; + } + + private readonly INamedTypeSymbol startSymbol; + private readonly HashSet instantiationClosure = new(SymbolEqualityComparer.Default); + private readonly Dictionary> edges = new(SymbolEqualityComparer.Default); + + private GenericsRecursionGraph(INamedTypeSymbol startSymbol) + { + this.startSymbol = startSymbol; + + ComputeInstantiationClosure(); + ComputeGraphEdges(); + } + + private void ComputeGraphEdges() + { + foreach (var reference in instantiationClosure) + { + var definition = reference.OriginalDefinition; + if (SymbolEqualityComparer.Default.Equals(reference, definition)) + { + // It's a definition, so no edges + continue; + } + + for (var i = 0; i < reference.TypeArguments.Length; i++) + { + var target = definition.TypeParameters[i]; + if (reference.TypeArguments[i] is ITypeParameterSymbol source) + { + // non-expanding + if (!edges.TryGetValue(source, out var targets)) + { + targets = new List<(ITypeParameterSymbol, bool)>(); + edges.Add(source, targets); + } + targets.Add((target, false)); + } + else if (reference.TypeArguments[i] is INamedTypeSymbol namedType) + { + // expanding + var sources = GetAllNestedTypeParameters(namedType); + foreach (var s in sources) + { + if (!edges.TryGetValue(s, out var targets)) + { + targets = new List<(ITypeParameterSymbol, bool)>(); + edges.Add(s, targets); + } + targets.Add((target, true)); + } + } + } + } + } + + private List GetAllNestedTypeParameters(INamedTypeSymbol symbol) + { + var res = new List(); + + foreach (var typeArgument in symbol.TypeArguments) + { + if (typeArgument is ITypeParameterSymbol typeParameter) + { + res.Add(typeParameter); + } + else if (typeArgument is INamedTypeSymbol namedType) + { + res.AddRange(GetAllNestedTypeParameters(namedType)); + } + } + + return res; + } + + private void ComputeInstantiationClosure() + { + var workQueue = new Queue(); + workQueue.Enqueue(startSymbol); + + while (workQueue.Count > 0) + { + var current = workQueue.Dequeue(); + if (instantiationClosure.Contains(current) || + !current.IsGenericType) + { + continue; + } + + instantiationClosure.Add(current); + + if (SymbolEqualityComparer.Default.Equals(current, current.OriginalDefinition)) + { + // Definition, so enqueue all base types and interfaces + if (current.BaseType != null) + { + workQueue.Enqueue(current.BaseType); + } + + foreach (var i in current.Interfaces) + { + workQueue.Enqueue(i); + } + } + else + { + // Reference, so enqueue all type arguments and their original definitions: + foreach (var namedTypeArgument in current.TypeArguments.OfType()) + { + workQueue.Enqueue(namedTypeArgument); + workQueue.Enqueue(namedTypeArgument.OriginalDefinition); + } + } + } + } + + private bool HasExpandingCycle() + { + return startSymbol.TypeParameters.Any(HasExpandingCycle); + } + + private bool HasExpandingCycle(ITypeParameterSymbol start) + { + var visited = new HashSet(SymbolEqualityComparer.Default); + var recStack = new HashSet(SymbolEqualityComparer.Default); + var hasExpandingCycle = HasExpandingCycle(start, visited, recStack, start, hasSeenExpandingEdge: false); + return hasExpandingCycle; + } + + private List<(ITypeParameterSymbol To, bool IsExpanding)> GetOutgoingEdges(ITypeParameterSymbol typeParameter) + { + return edges.TryGetValue(typeParameter, out var outgoingEdges) + ? outgoingEdges + : new List<(ITypeParameterSymbol, bool)>(); + } + + /// + /// A modified cycle detection algorithm based on DFS. + /// + /// The current node that is being visited + /// The nodes that have already been visited by any path. + /// The nodes already visited on the current path. Could be a List<> if the order was important. + /// The start and end of the cycle. We're not looking for any cycle, but a cycle that goes back to the start. + /// Whether an expanding edge was already seen in this path. We're looking for a cycle that has at least one expanding edge. + /// + private bool HasExpandingCycle(ITypeParameterSymbol current, HashSet visited, HashSet currentPath, ITypeParameterSymbol start, bool hasSeenExpandingEdge) + { + if (currentPath.Count > 0 && SymbolEqualityComparer.Default.Equals(current, start)) + { + return hasSeenExpandingEdge; + } + + if (visited.Contains(current)) + { + return false; + } + + visited.Add(current); + currentPath.Add(current); + + var outgoingEdges = GetOutgoingEdges(current); + + foreach (var outgoingEdge in outgoingEdges) + { + if (HasExpandingCycle(outgoingEdge.To, visited, currentPath, start, hasSeenExpandingEdge: hasSeenExpandingEdge || outgoingEdge.IsExpanding)) + { + return true; + } + } + + currentPath.Remove(current); + return false; + } + } } internal abstract class Type : Type where T : ITypeSymbol diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.expected b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.expected index e69de29bb2d..88d88c203f2 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.expected +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/ExtractortMessages.expected @@ -0,0 +1,4 @@ +| test.cs:2:14:2:20 | Found recursive generic inheritance hierarchy. Base class of type is not extracted | 4 | GenB> | +| test.cs:2:14:2:20 | Found recursive generic inheritance hierarchy. Base class of type is not extracted | 4 | GenB> | +| test.cs:2:14:2:20 | Found recursive generic inheritance hierarchy. Base class of type is not extracted | 4 | GenB | +| test.cs:2:14:2:20 | Found recursive generic inheritance hierarchy. Base class of type is not extracted | 4 | GenB | diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.expected b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.expected index e69de29bb2d..1d9a1d04aff 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.expected +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/Types.expected @@ -0,0 +1,35 @@ +| test.cs:1:14:1:20 | GenA<> | System.Object | +| test.cs:1:14:1:20 | GenA>> | System.Object | +| test.cs:1:14:1:20 | GenA>> | System.Object | +| test.cs:2:14:2:20 | GenB<> | System.Object | +| test.cs:2:14:2:20 | GenB> | System.Object | +| test.cs:2:14:2:20 | GenB> | System.Object | +| test.cs:2:14:2:20 | GenB | System.Object | +| test.cs:4:7:4:10 | P<> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:4:7:4:10 | P> | System.Object | +| test.cs:5:7:5:13 | C<,> | P> | +| test.cs:5:7:5:13 | C | P> | +| test.cs:5:7:5:13 | C | P> | +| test.cs:5:7:5:13 | C | P> | +| test.cs:5:7:5:13 | C | P> | +| test.cs:5:7:5:13 | C | P> | +| test.cs:6:7:6:13 | D<,> | P> | +| test.cs:6:7:6:13 | D | P> | +| test.cs:6:7:6:13 | D | P> | +| test.cs:6:7:6:13 | D | P> | +| test.cs:6:7:6:13 | D | P> | +| test.cs:6:7:6:13 | D | P> | +| test.cs:8:7:8:10 | A<> | System.Object | +| test.cs:8:7:8:10 | A | System.Object | +| test.cs:13:14:13:18 | Class | System.Object | From ce35d6921f550932fd932116f395a1bf0d0c9bec Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Tue, 22 Aug 2023 11:17:47 +0100 Subject: [PATCH 143/788] Ruby: configsig rb/hardcoded-data-interpreted-as-code --- .../HardcodedDataInterpretedAsCodeQuery.qll | 39 ++++++++++++++++--- .../cwe-506/HardcodedDataInterpretedAsCode.ql | 11 +++--- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeQuery.qll b/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeQuery.qll index 98fb0542815..927b48933e5 100644 --- a/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeQuery.qll @@ -3,7 +3,7 @@ * being interpreted as code. * * Note, for performance reasons: only import this file if - * `HardcodedDataInterpretedAsCode::Configuration` is needed, otherwise + * `HardcodedDataInterpretedAsCodeFlow` is needed, otherwise * `HardcodedDataInterpretedAsCodeCustomizations` should be imported instead. */ @@ -16,11 +16,9 @@ import HardcodedDataInterpretedAsCodeCustomizations::HardcodedDataInterpretedAsC * A taint-tracking configuration for reasoning about hard-coded data * being interpreted as code. * - * We extend `DataFlow::Configuration` rather than - * `TaintTracking::Configuration`, so that we can set the flow state to - * `"taint"` on a taint step. + * DEPRECATED: Use `HardcodedDataInterpretedAsCodeFlow` instead */ -class Configuration extends DataFlow::Configuration { +deprecated class Configuration extends DataFlow::Configuration { Configuration() { this = "HardcodedDataInterpretedAsCode" } override predicate isSource(DataFlow::Node source, DataFlow::FlowState label) { @@ -46,3 +44,34 @@ class Configuration extends DataFlow::Configuration { stateTo = FlowState::taint() } } + +/* + * We implement `DataFlow::ConfigSig` rather than + * `TaintTracking::ConfigSig`, so that we can set the flow state to + * `"taint"` on a taint step. + */ + +private module Config implements DataFlow::StateConfigSig { + class FlowState = DataFlow::FlowState; + + predicate isSource(DataFlow::Node source, FlowState label) { source.(Source).getLabel() = label } + + predicate isSink(DataFlow::Node sink, FlowState label) { sink.(Sink).getLabel() = label } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } + + predicate isAdditionalFlowStep( + DataFlow::Node nodeFrom, DataFlow::FlowState stateFrom, DataFlow::Node nodeTo, + DataFlow::FlowState stateTo + ) { + defaultAdditionalTaintStep(nodeFrom, nodeTo) and + // This is a taint step, so the flow state becomes `taint`. + stateFrom = [FlowState::data(), FlowState::taint()] and + stateTo = FlowState::taint() + } +} + +/** + * Taint-tracking for reasoning about hard-coded data being interpreted as code. + */ +module HardcodedDataInterpretedAsCodeFlow = DataFlow::GlobalWithState; diff --git a/ruby/ql/src/queries/security/cwe-506/HardcodedDataInterpretedAsCode.ql b/ruby/ql/src/queries/security/cwe-506/HardcodedDataInterpretedAsCode.ql index eb988d49fbf..08444a9beb6 100644 --- a/ruby/ql/src/queries/security/cwe-506/HardcodedDataInterpretedAsCode.ql +++ b/ruby/ql/src/queries/security/cwe-506/HardcodedDataInterpretedAsCode.ql @@ -12,12 +12,13 @@ * external/cwe/cwe-506 */ -import codeql.ruby.security.HardcodedDataInterpretedAsCodeQuery -import codeql.ruby.DataFlow -import DataFlow::PathGraph +private import codeql.ruby.security.HardcodedDataInterpretedAsCodeQuery +private import HardcodedDataInterpretedAsCodeFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink -where cfg.hasFlowPath(source, sink) +from + HardcodedDataInterpretedAsCodeFlow::PathNode source, + HardcodedDataInterpretedAsCodeFlow::PathNode sink +where HardcodedDataInterpretedAsCodeFlow::flowPath(source, sink) select sink.getNode(), source, sink, "$@ is interpreted as " + sink.getNode().(Sink).getKind() + ".", source.getNode(), "Hard-coded data" From 4bc6ca3d84802ee8459f448c57326b4238c59c90 Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Fri, 1 Sep 2023 11:21:06 +0200 Subject: [PATCH 144/788] Java: Delete java test query which fails to compile --- java/ql/test/library-tests/qlengine/selectAtType.expected | 1 - java/ql/test/library-tests/qlengine/selectAtType.ql | 5 ----- 2 files changed, 6 deletions(-) delete mode 100644 java/ql/test/library-tests/qlengine/selectAtType.expected delete mode 100644 java/ql/test/library-tests/qlengine/selectAtType.ql diff --git a/java/ql/test/library-tests/qlengine/selectAtType.expected b/java/ql/test/library-tests/qlengine/selectAtType.expected deleted file mode 100644 index e5eb1d6ba35..00000000000 --- a/java/ql/test/library-tests/qlengine/selectAtType.expected +++ /dev/null @@ -1 +0,0 @@ -ERROR: class or primitive expected in query (selectAtType.ql:5,8-15) diff --git a/java/ql/test/library-tests/qlengine/selectAtType.ql b/java/ql/test/library-tests/qlengine/selectAtType.ql deleted file mode 100644 index 14fa6ce034f..00000000000 --- a/java/ql/test/library-tests/qlengine/selectAtType.ql +++ /dev/null @@ -1,5 +0,0 @@ -import java - -@classorinterface clasz() { any() } - -select clasz() From 60819ad7f2343fa42659914c7b0fe5acc659db6f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 1 Sep 2023 13:06:25 +0100 Subject: [PATCH 145/788] Add a single predicate that should be used to convert an instruction to an expression. --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 9355493303a..1e470afb110 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1042,6 +1042,51 @@ class RawIndirectInstruction extends Node, TRawIndirectInstruction { } } +private module GetConvertedResultExpression { + private import semmle.code.cpp.ir.implementation.raw.internal.TranslatedExpr + private import semmle.code.cpp.ir.implementation.raw.internal.InstructionTag + + /** + * Gets the expression that should be returned as the result expression from `instr`. + * + * Note that this predicate may return multiple results in cases where a conversion belond to a + * different AST element than its operand. + */ + Expr getConvertedResultExpression(Instruction instr) { + // Only fully converted instructions has a result for `asConvertedExpr` + not conversionFlow(unique( | | getAUse(instr)), _, false, false) and + result = getConvertedResultExpressionImpl(instr) + or + // If the conversion also has a result then we return multiple results + exists(Operand operand | conversionFlow(operand, instr, false, false) | + result = getConvertedResultExpressionImpl(operand.getDef()) + or + result = getConvertedResultExpression(operand.getDef()) + ) + } + + private Expr getConvertedResultExpressionImpl0(Instruction instr) { + exists(TranslatedAssignOperation tao | + result = tao.getExpr() and + instr = tao.getInstruction(any(AssignmentStoreTag tag)) + ) + or + exists(TranslatedCrementOperation tco | + result = tco.getExpr() and + instr = tco.getInstruction(any(CrementStoreTag tag)) + ) + } + + private Expr getConvertedResultExpressionImpl(Instruction instr) { + result = getConvertedResultExpressionImpl0(instr) + or + not exists(getConvertedResultExpressionImpl0(instr)) and + result = instr.getConvertedResultExpression() + } +} + +private import GetConvertedResultExpression + /** Holds if `node` is an `OperandNode` that should map `node.asExpr()` to `e`. */ predicate exprNodeShouldBeOperand(OperandNode node, Expr e) { exists(Instruction def | From 16d62186c0748c5f04ce2d4bdbbe4680a5ed8bf7 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 1 Sep 2023 13:11:19 +0100 Subject: [PATCH 146/788] C++: Use this new predicate everywhere we need to convert an instruction to an expression. --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 106 ++--- .../annotate_path_to_sink/tainted.expected | 4 +- .../dataflow-ir-consistency.expected | 291 +++++++++++++ .../fields/dataflow-ir-consistency.expected | 289 +++++++++++++ .../dataflow/fields/flow.expected | 5 +- .../dataflow/fields/ir-path-flow.expected | 408 +++++++++++++++--- .../dataflow/taint-tests/taint.expected | 4 + .../Critical/MemoryFreed/DoubleFree.expected | 64 +-- .../MemoryFreed/UseAfterFree.expected | 57 +-- .../CastArrayPointerArithmetic.expected | 45 -- .../NtohlArrayNoBound.expected | 9 - .../CWE/CWE-079/semmle/CgiXss/CgiXss.expected | 2 - .../UncontrolledProcessOperation.expected | 3 - .../UncontrolledProcessOperation.expected | 12 - .../SAMATE/OverrunWriteProductFlow.expected | 34 +- .../semmle/tests/OverflowBuffer.expected | 3 - .../semmle/tests/UnboundedWrite.expected | 8 - .../SAMATE/UncontrolledFormatString.expected | 6 - .../CWE-134/semmle/argv/argvLocal.expected | 52 +-- .../CWE-134/semmle/funcs/funcsLocal.expected | 18 +- .../UncontrolledFormatString.expected | 6 - ...olledFormatStringThroughGlobalVar.expected | 8 - .../CWE/CWE-134/semmle/ifs/ifs.expected | 33 -- .../SAMATE/ArithmeticUncontrolled.expected | 36 -- .../ArithmeticUncontrolled.expected | 6 - .../TaintedAllocationSize.expected | 6 +- .../CWE/CWE-193/InvalidPointerDeref.expected | 219 ++++++++-- .../semmle/tests/CleartextFileWrite.expected | 32 -- .../tests/CleartextTransmission.expected | 5 +- .../CWE/CWE-319/UseOfHttp/UseOfHttp.expected | 18 - .../semmle/tests/UseAfterFree.expected | 40 +- .../PotentiallyExposedSystemData.expected | 3 - .../semmle/tests/ExposedSystemData.expected | 44 +- .../PotentiallyExposedSystemData.expected | 62 +-- .../Security/CWE/CWE-611/XXE.expected | 54 ++- 35 files changed, 1271 insertions(+), 721 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 1e470afb110..422b5b33487 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1091,34 +1091,24 @@ private import GetConvertedResultExpression predicate exprNodeShouldBeOperand(OperandNode node, Expr e) { exists(Instruction def | unique( | | getAUse(def)) = node.getOperand() and - e = def.getConvertedResultExpression() + e = getConvertedResultExpression(def) ) } -private predicate indirectExprNodeShouldBeIndirectOperand0( - VariableAddressInstruction instr, RawIndirectOperand node, Expr e -) { - instr = node.getOperand().getDef() and - e = instr.getAst().(Expr).getUnconverted() -} - /** Holds if `node` should be an `IndirectOperand` that maps `node.asIndirectExpr()` to `e`. */ -private predicate indirectExprNodeShouldBeIndirectOperand(RawIndirectOperand node, Expr e) { - exists(Instruction instr | instr = node.getOperand().getDef() | - exists(Expr e0 | - indirectExprNodeShouldBeIndirectOperand0(instr, node, e0) and - e = e0.getFullyConverted() - ) - or - not indirectExprNodeShouldBeIndirectOperand0(_, node, _) and - e = instr.getConvertedResultExpression() +private predicate indirectExprNodeShouldBeIndirectOperand( + IndirectOperand node, Expr e, int indirectionIndex +) { + exists(Instruction def | + node.hasOperandAndIndirectionIndex(unique( | | getAUse(def)), indirectionIndex) and + e = getConvertedResultExpression(def) ) } private predicate exprNodeShouldBeIndirectOutNode(IndirectArgumentOutNode node, Expr e) { exists(CallInstruction call | call.getStaticCallTarget() instanceof Constructor and - e = call.getConvertedResultExpression() and + e = getConvertedResultExpression(call) and call.getThisArgumentOperand() = node.getAddressOperand() ) } @@ -1127,37 +1117,17 @@ private predicate exprNodeShouldBeIndirectOutNode(IndirectArgumentOutNode node, predicate exprNodeShouldBeInstruction(Node node, Expr e) { not exprNodeShouldBeOperand(_, e) and not exprNodeShouldBeIndirectOutNode(_, e) and - ( - e = node.asInstruction().getConvertedResultExpression() - or - // The instruction that contains the result of an `AssignOperation` is - // the unloaded left operand (see the comments in `TranslatedAssignOperation`). - // That means that for cases like - // ```cpp - // int x = ...; - // x += 1; - // ``` - // the result of `x += 1` is the `VariableAddressInstruction` that represents `x`. But - // that instruction doesn't receive the flow from this `AssignOperation`. So instead we - // map the operation to the `AddInstruction`. - node.asInstruction().getAst() = e.(AssignOperation) - or - // Same story for `CrementOperation`s (cf. the comments in the subclasses - // of `TranslatedCrementOperation`). - node.asInstruction().getAst() = e.(CrementOperation) - ) + e = getConvertedResultExpression(node.asInstruction()) } /** Holds if `node` should be an `IndirectInstruction` that maps `node.asIndirectExpr()` to `e`. */ -predicate indirectExprNodeShouldBeIndirectInstruction(IndirectInstruction node, Expr e) { +predicate indirectExprNodeShouldBeIndirectInstruction( + IndirectInstruction node, Expr e, int indirectionIndex +) { + not indirectExprNodeShouldBeIndirectOperand(_, e, indirectionIndex) and exists(Instruction instr | - node.hasInstructionAndIndirectionIndex(instr, _) and - not indirectExprNodeShouldBeIndirectOperand(_, e) - | - e = instr.(VariableAddressInstruction).getAst().(Expr).getFullyConverted() - or - not instr instanceof VariableAddressInstruction and - e = instr.getConvertedResultExpression() + node.hasInstructionAndIndirectionIndex(instr, indirectionIndex) and + e = getConvertedResultExpression(instr) ) } @@ -1169,27 +1139,19 @@ abstract private class ExprNodeBase extends Node { abstract Expr getConvertedExpr(); /** Gets the non-conversion expression corresponding to this node, if any. */ - abstract Expr getExpr(); + final Expr getExpr() { result = this.getConvertedExpr().getUnconverted() } } private class InstructionExprNode extends ExprNodeBase, InstructionNode { InstructionExprNode() { exprNodeShouldBeInstruction(this, _) } final override Expr getConvertedExpr() { exprNodeShouldBeInstruction(this, result) } - - final override Expr getExpr() { result = this.getConvertedExpr().getUnconverted() } - - final override string toStringImpl() { result = this.getConvertedExpr().toString() } } private class OperandExprNode extends ExprNodeBase, OperandNode { OperandExprNode() { exprNodeShouldBeOperand(this, _) } final override Expr getConvertedExpr() { exprNodeShouldBeOperand(this, result) } - - final override Expr getExpr() { result = this.getConvertedExpr().getUnconverted() } - - final override string toStringImpl() { result = this.getConvertedExpr().toString() } } abstract private class IndirectExprNodeBase extends Node { @@ -1200,36 +1162,26 @@ abstract private class IndirectExprNodeBase extends Node { abstract Expr getConvertedExpr(int indirectionIndex); /** Gets the non-conversion expression corresponding to this node, if any. */ - abstract Expr getExpr(int indirectionIndex); -} - -private class IndirectOperandIndirectExprNode extends IndirectExprNodeBase, RawIndirectOperand { - IndirectOperandIndirectExprNode() { indirectExprNodeShouldBeIndirectOperand(this, _) } - - final override Expr getConvertedExpr(int index) { - this.getIndirectionIndex() = index and - indirectExprNodeShouldBeIndirectOperand(this, result) - } - - final override Expr getExpr(int index) { - this.getIndirectionIndex() = index and - result = this.getConvertedExpr(index).getUnconverted() + final Expr getExpr(int indirectionIndex) { + result = this.getConvertedExpr(indirectionIndex).getUnconverted() } } -private class IndirectInstructionIndirectExprNode extends IndirectExprNodeBase, - RawIndirectInstruction +private class IndirectOperandIndirectExprNode extends IndirectExprNodeBase instanceof IndirectOperand { - IndirectInstructionIndirectExprNode() { indirectExprNodeShouldBeIndirectInstruction(this, _) } + IndirectOperandIndirectExprNode() { indirectExprNodeShouldBeIndirectOperand(this, _, _) } final override Expr getConvertedExpr(int index) { - this.getIndirectionIndex() = index and - indirectExprNodeShouldBeIndirectInstruction(this, result) + indirectExprNodeShouldBeIndirectOperand(this, result, index) } +} - final override Expr getExpr(int index) { - this.getIndirectionIndex() = index and - result = this.getConvertedExpr(index).getUnconverted() +private class IndirectInstructionIndirectExprNode extends IndirectExprNodeBase instanceof IndirectInstruction +{ + IndirectInstructionIndirectExprNode() { indirectExprNodeShouldBeIndirectInstruction(this, _, _) } + + final override Expr getConvertedExpr(int index) { + indirectExprNodeShouldBeIndirectInstruction(this, result, index) } } @@ -1237,8 +1189,6 @@ private class IndirectArgumentOutExprNode extends ExprNodeBase, IndirectArgument IndirectArgumentOutExprNode() { exprNodeShouldBeIndirectOutNode(this, _) } final override Expr getConvertedExpr() { exprNodeShouldBeIndirectOutNode(this, result) } - - final override Expr getExpr() { result = this.getConvertedExpr() } } /** diff --git a/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/tainted.expected b/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/tainted.expected index 15a586f6f32..7b3b22ee3e1 100644 --- a/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/tainted.expected +++ b/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/tainted.expected @@ -1,4 +1,6 @@ WARNING: Module TaintedWithPath has been deprecated and may be removed in future (tainted.ql:9,8-47) WARNING: Predicate tainted has been deprecated and may be removed in future (tainted.ql:20,49-74) -failures testFailures +| test_diff.cpp:100:10:100:14 | * ... | Unexpected result: ir-sink=98:17 | +| test_diff.cpp:102:26:102:30 | (const char *)... | Unexpected result: ir-path=98:17 | +failures diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected index 58049de095d..4478708e921 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected @@ -4,6 +4,297 @@ uniqueType uniqueNodeLocation missingLocation uniqueNodeToString +| clang.cpp:21:8:21:20 | * ... | Node should have one toString but has 2. | +| clang.cpp:21:8:21:20 | sourceArray1 indirection | Node should have one toString but has 2. | +| clang.cpp:22:8:22:20 | & ... | Node should have one toString but has 2. | +| clang.cpp:22:8:22:20 | & ... indirection | Node should have one toString but has 2. | +| clang.cpp:22:8:22:20 | & ... indirection | Node should have one toString but has 2. | +| clang.cpp:22:8:22:20 | sourceArray1 | Node should have one toString but has 2. | +| clang.cpp:22:8:22:20 | sourceArray1 indirection | Node should have one toString but has 2. | +| clang.cpp:22:8:22:20 | sourceArray1 indirection | Node should have one toString but has 2. | +| clang.cpp:23:17:23:29 | & ... | Node should have one toString but has 2. | +| clang.cpp:23:17:23:29 | & ... indirection | Node should have one toString but has 2. | +| clang.cpp:23:17:23:29 | & ... indirection | Node should have one toString but has 2. | +| clang.cpp:23:17:23:29 | sourceArray1 | Node should have one toString but has 2. | +| clang.cpp:23:17:23:29 | sourceArray1 indirection | Node should have one toString but has 2. | +| clang.cpp:23:17:23:29 | sourceArray1 indirection | Node should have one toString but has 2. | +| dispatch.cpp:78:23:78:39 | * ... | Node should have one toString but has 2. | +| dispatch.cpp:78:23:78:39 | * ... indirection | Node should have one toString but has 2. | +| dispatch.cpp:78:23:78:39 | call to allocateBottom | Node should have one toString but has 2. | +| dispatch.cpp:78:23:78:39 | call to allocateBottom indirection | Node should have one toString but has 2. | +| example.c:24:13:24:30 | ... + ... | Node should have one toString but has 2. | +| example.c:24:13:24:30 | ... = ... | Node should have one toString but has 2. | +| example.c:26:18:26:24 | & ... | Node should have one toString but has 2. | +| example.c:26:18:26:24 | & ... indirection | Node should have one toString but has 2. | +| example.c:26:18:26:24 | coords | Node should have one toString but has 2. | +| example.c:26:18:26:24 | coords indirection | Node should have one toString but has 2. | +| example.c:28:14:28:25 | & ... | Node should have one toString but has 2. | +| example.c:28:14:28:25 | & ... indirection | Node should have one toString but has 2. | +| example.c:28:14:28:25 | & ... indirection | Node should have one toString but has 2. | +| example.c:28:14:28:25 | pos | Node should have one toString but has 2. | +| example.c:28:14:28:25 | pos indirection | Node should have one toString but has 2. | +| example.c:28:14:28:25 | pos indirection | Node should have one toString but has 2. | +| lambdas.cpp:21:8:21:8 | t | Node should have one toString but has 2. | +| lambdas.cpp:21:8:21:8 | t indirection | Node should have one toString but has 2. | +| lambdas.cpp:22:8:22:8 | u | Node should have one toString but has 2. | +| lambdas.cpp:22:8:22:8 | u indirection | Node should have one toString but has 2. | +| lambdas.cpp:41:8:41:8 | a | Node should have one toString but has 2. | +| lambdas.cpp:41:8:41:8 | a indirection | Node should have one toString but has 2. | +| lambdas.cpp:42:8:42:8 | b | Node should have one toString but has 2. | +| lambdas.cpp:42:8:42:8 | b indirection | Node should have one toString but has 2. | +| self_parameter_flow.cpp:3:3:3:5 | * ... | Node should have one toString but has 2. | +| self_parameter_flow.cpp:3:3:3:5 | ps indirection | Node should have one toString but has 2. | +| self_parameter_flow.cpp:8:8:8:9 | & ... | Node should have one toString but has 2. | +| self_parameter_flow.cpp:8:8:8:9 | & ... indirection | Node should have one toString but has 2. | +| self_parameter_flow.cpp:8:8:8:9 | & ... indirection | Node should have one toString but has 2. | +| self_parameter_flow.cpp:8:8:8:9 | s | Node should have one toString but has 2. | +| self_parameter_flow.cpp:8:8:8:9 | s indirection | Node should have one toString but has 2. | +| self_parameter_flow.cpp:8:8:8:9 | s indirection | Node should have one toString but has 2. | +| test.cpp:90:8:90:14 | source1 | Node should have one toString but has 2. | +| test.cpp:90:8:90:14 | source1 indirection | Node should have one toString but has 2. | +| test.cpp:92:8:92:14 | source1 | Node should have one toString but has 2. | +| test.cpp:92:8:92:14 | source1 indirection | Node should have one toString but has 2. | +| test.cpp:103:10:103:12 | ref | Node should have one toString but has 2. | +| test.cpp:103:10:103:12 | ref indirection | Node should have one toString but has 2. | +| test.cpp:110:10:110:12 | ref | Node should have one toString but has 2. | +| test.cpp:110:10:110:12 | ref indirection | Node should have one toString but has 2. | +| test.cpp:115:3:115:6 | * ... | Node should have one toString but has 2. | +| test.cpp:115:3:115:6 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:115:3:115:6 | out | Node should have one toString but has 2. | +| test.cpp:115:3:115:6 | out indirection | Node should have one toString but has 2. | +| test.cpp:120:3:120:6 | * ... | Node should have one toString but has 2. | +| test.cpp:120:3:120:6 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:120:3:120:6 | out | Node should have one toString but has 2. | +| test.cpp:120:3:120:6 | out indirection | Node should have one toString but has 2. | +| test.cpp:125:3:125:6 | * ... | Node should have one toString but has 2. | +| test.cpp:125:3:125:6 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:125:3:125:6 | out | Node should have one toString but has 2. | +| test.cpp:125:3:125:6 | out indirection | Node should have one toString but has 2. | +| test.cpp:384:10:384:13 | & ... | Node should have one toString but has 2. | +| test.cpp:384:10:384:13 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:384:10:384:13 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:384:10:384:13 | tmp | Node should have one toString but has 2. | +| test.cpp:384:10:384:13 | tmp indirection | Node should have one toString but has 2. | +| test.cpp:384:10:384:13 | tmp indirection | Node should have one toString but has 2. | +| test.cpp:384:16:384:23 | & ... | Node should have one toString but has 2. | +| test.cpp:384:16:384:23 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:384:16:384:23 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:384:16:384:23 | source1 | Node should have one toString but has 2. | +| test.cpp:384:16:384:23 | source1 indirection | Node should have one toString but has 2. | +| test.cpp:384:16:384:23 | source1 indirection | Node should have one toString but has 2. | +| test.cpp:390:18:390:21 | & ... | Node should have one toString but has 2. | +| test.cpp:390:18:390:21 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:390:18:390:21 | tmp | Node should have one toString but has 2. | +| test.cpp:390:18:390:21 | tmp indirection | Node should have one toString but has 2. | +| test.cpp:391:10:391:13 | & ... | Node should have one toString but has 2. | +| test.cpp:391:10:391:13 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:391:10:391:13 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:391:10:391:13 | tmp | Node should have one toString but has 2. | +| test.cpp:391:10:391:13 | tmp indirection | Node should have one toString but has 2. | +| test.cpp:391:10:391:13 | tmp indirection | Node should have one toString but has 2. | +| test.cpp:391:16:391:23 | & ... | Node should have one toString but has 2. | +| test.cpp:391:16:391:23 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:391:16:391:23 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:391:16:391:23 | source1 | Node should have one toString but has 2. | +| test.cpp:391:16:391:23 | source1 indirection | Node should have one toString but has 2. | +| test.cpp:391:16:391:23 | source1 indirection | Node should have one toString but has 2. | +| test.cpp:400:10:400:13 | & ... | Node should have one toString but has 2. | +| test.cpp:400:10:400:13 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:400:10:400:13 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:400:10:400:13 | tmp | Node should have one toString but has 2. | +| test.cpp:400:10:400:13 | tmp indirection | Node should have one toString but has 2. | +| test.cpp:400:10:400:13 | tmp indirection | Node should have one toString but has 2. | +| test.cpp:400:16:400:22 | & ... | Node should have one toString but has 2. | +| test.cpp:400:16:400:22 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:400:16:400:22 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:400:16:400:22 | clean1 | Node should have one toString but has 2. | +| test.cpp:400:16:400:22 | clean1 indirection | Node should have one toString but has 2. | +| test.cpp:400:16:400:22 | clean1 indirection | Node should have one toString but has 2. | +| test.cpp:406:18:406:21 | & ... | Node should have one toString but has 2. | +| test.cpp:406:18:406:21 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:406:18:406:21 | tmp | Node should have one toString but has 2. | +| test.cpp:406:18:406:21 | tmp indirection | Node should have one toString but has 2. | +| test.cpp:407:10:407:13 | & ... | Node should have one toString but has 2. | +| test.cpp:407:10:407:13 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:407:10:407:13 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:407:10:407:13 | tmp | Node should have one toString but has 2. | +| test.cpp:407:10:407:13 | tmp indirection | Node should have one toString but has 2. | +| test.cpp:407:10:407:13 | tmp indirection | Node should have one toString but has 2. | +| test.cpp:407:16:407:22 | & ... | Node should have one toString but has 2. | +| test.cpp:407:16:407:22 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:407:16:407:22 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:407:16:407:22 | clean1 | Node should have one toString but has 2. | +| test.cpp:407:16:407:22 | clean1 indirection | Node should have one toString but has 2. | +| test.cpp:407:16:407:22 | clean1 indirection | Node should have one toString but has 2. | +| test.cpp:423:20:423:25 | & ... | Node should have one toString but has 2. | +| test.cpp:423:20:423:25 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:423:20:423:25 | local | Node should have one toString but has 2. | +| test.cpp:423:20:423:25 | local indirection | Node should have one toString but has 2. | +| test.cpp:436:8:436:13 | * ... | Node should have one toString but has 2. | +| test.cpp:436:8:436:13 | local indirection | Node should have one toString but has 2. | +| test.cpp:441:18:441:23 | & ... | Node should have one toString but has 2. | +| test.cpp:441:18:441:23 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:441:18:441:23 | local | Node should have one toString but has 2. | +| test.cpp:441:18:441:23 | local indirection | Node should have one toString but has 2. | +| test.cpp:451:8:451:13 | * ... | Node should have one toString but has 2. | +| test.cpp:451:8:451:13 | local indirection | Node should have one toString but has 2. | +| test.cpp:457:9:457:22 | (statement expression) | Node should have one toString but has 2. | +| test.cpp:457:9:457:22 | source1 | Node should have one toString but has 2. | +| test.cpp:458:9:458:21 | (statement expression) | Node should have one toString but has 2. | +| test.cpp:458:9:458:21 | clean1 | Node should have one toString but has 2. | +| test.cpp:460:15:467:4 | (statement expression) | Node should have one toString but has 2. | +| test.cpp:460:15:467:4 | tmp | Node should have one toString but has 2. | +| test.cpp:472:3:472:4 | * ... | Node should have one toString but has 2. | +| test.cpp:472:3:472:4 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:472:3:472:4 | p | Node should have one toString but has 2. | +| test.cpp:472:3:472:4 | p indirection | Node should have one toString but has 2. | +| test.cpp:477:21:477:22 | & ... | Node should have one toString but has 2. | +| test.cpp:477:21:477:22 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:477:21:477:22 | x | Node should have one toString but has 2. | +| test.cpp:477:21:477:22 | x indirection | Node should have one toString but has 2. | +| test.cpp:490:8:490:17 | * ... | Node should have one toString but has 2. | +| test.cpp:490:8:490:17 | p_content indirection | Node should have one toString but has 2. | +| test.cpp:506:3:506:4 | * ... | Node should have one toString but has 2. | +| test.cpp:506:3:506:4 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:506:3:506:4 | p | Node should have one toString but has 2. | +| test.cpp:506:3:506:4 | p indirection | Node should have one toString but has 2. | +| test.cpp:512:34:512:35 | & ... | Node should have one toString but has 2. | +| test.cpp:512:34:512:35 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:512:34:512:35 | x | Node should have one toString but has 2. | +| test.cpp:512:34:512:35 | x indirection | Node should have one toString but has 2. | +| test.cpp:526:3:526:4 | * ... | Node should have one toString but has 2. | +| test.cpp:526:3:526:4 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:526:3:526:4 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:526:3:526:4 | e | Node should have one toString but has 2. | +| test.cpp:526:3:526:4 | e indirection | Node should have one toString but has 2. | +| test.cpp:526:3:526:4 | e indirection | Node should have one toString but has 2. | +| test.cpp:526:8:526:9 | & ... | Node should have one toString but has 2. | +| test.cpp:526:8:526:9 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:526:8:526:9 | x | Node should have one toString but has 2. | +| test.cpp:526:8:526:9 | x indirection | Node should have one toString but has 2. | +| test.cpp:531:39:531:40 | & ... | Node should have one toString but has 2. | +| test.cpp:531:39:531:40 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:531:39:531:40 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:531:39:531:40 | e | Node should have one toString but has 2. | +| test.cpp:531:39:531:40 | e indirection | Node should have one toString but has 2. | +| test.cpp:531:39:531:40 | e indirection | Node should have one toString but has 2. | +| test.cpp:532:8:532:9 | * ... | Node should have one toString but has 2. | +| test.cpp:532:8:532:9 | e indirection | Node should have one toString but has 2. | +| test.cpp:536:10:536:11 | * ... | Node should have one toString but has 2. | +| test.cpp:536:10:536:11 | p indirection | Node should have one toString but has 2. | +| test.cpp:537:5:537:6 | * ... | Node should have one toString but has 2. | +| test.cpp:537:5:537:6 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:537:5:537:6 | p | Node should have one toString but has 2. | +| test.cpp:537:5:537:6 | p indirection | Node should have one toString but has 2. | +| test.cpp:542:5:542:6 | * ... | Node should have one toString but has 2. | +| test.cpp:542:5:542:6 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:542:5:542:6 | p | Node should have one toString but has 2. | +| test.cpp:542:5:542:6 | p indirection | Node should have one toString but has 2. | +| test.cpp:548:24:548:25 | & ... | Node should have one toString but has 2. | +| test.cpp:548:24:548:25 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:548:24:548:25 | x | Node should have one toString but has 2. | +| test.cpp:548:24:548:25 | x indirection | Node should have one toString but has 2. | +| test.cpp:552:24:552:25 | & ... | Node should have one toString but has 2. | +| test.cpp:552:24:552:25 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:552:24:552:25 | y | Node should have one toString but has 2. | +| test.cpp:552:24:552:25 | y indirection | Node should have one toString but has 2. | +| test.cpp:566:10:566:19 | * ... | Node should have one toString but has 2. | +| test.cpp:566:10:566:19 | globalInt indirection | Node should have one toString but has 2. | +| test.cpp:568:10:568:19 | * ... | Node should have one toString but has 2. | +| test.cpp:568:10:568:19 | globalInt indirection | Node should have one toString but has 2. | +| test.cpp:572:10:572:19 | * ... | Node should have one toString but has 2. | +| test.cpp:572:10:572:19 | globalInt indirection | Node should have one toString but has 2. | +| test.cpp:578:10:578:19 | * ... | Node should have one toString but has 2. | +| test.cpp:578:10:578:19 | globalInt indirection | Node should have one toString but has 2. | +| test.cpp:584:7:584:8 | & ... | Node should have one toString but has 2. | +| test.cpp:584:7:584:8 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:584:7:584:8 | s | Node should have one toString but has 2. | +| test.cpp:584:7:584:8 | s indirection | Node should have one toString but has 2. | +| test.cpp:589:18:589:19 | & ... | Node should have one toString but has 2. | +| test.cpp:589:18:589:19 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:589:18:589:19 | x | Node should have one toString but has 2. | +| test.cpp:589:18:589:19 | x indirection | Node should have one toString but has 2. | +| test.cpp:597:8:597:13 | * ... | Node should have one toString but has 2. | +| test.cpp:597:8:597:13 | access to array indirection | Node should have one toString but has 2. | +| test.cpp:603:8:603:9 | * ... | Node should have one toString but has 2. | +| test.cpp:603:8:603:9 | p indirection | Node should have one toString but has 2. | +| test.cpp:608:3:608:4 | * ... | Node should have one toString but has 2. | +| test.cpp:608:3:608:4 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:608:3:608:4 | p | Node should have one toString but has 2. | +| test.cpp:608:3:608:4 | p indirection | Node should have one toString but has 2. | +| test.cpp:609:8:609:9 | * ... | Node should have one toString but has 2. | +| test.cpp:609:8:609:9 | p indirection | Node should have one toString but has 2. | +| test.cpp:615:13:615:21 | & ... | Node should have one toString but has 2. | +| test.cpp:615:13:615:21 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:615:13:615:21 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:615:13:615:21 | p | Node should have one toString but has 2. | +| test.cpp:615:13:615:21 | p indirection | Node should have one toString but has 2. | +| test.cpp:615:13:615:21 | p indirection | Node should have one toString but has 2. | +| test.cpp:616:8:616:17 | * ... | Node should have one toString but has 3. | +| test.cpp:616:8:616:17 | * ... indirection | Node should have one toString but has 3. | +| test.cpp:616:8:616:17 | q indirection | Node should have one toString but has 3. | +| test.cpp:616:9:616:17 | * ... | Node should have one toString but has 2. | +| test.cpp:616:9:616:17 | q indirection | Node should have one toString but has 2. | +| test.cpp:665:26:665:27 | & ... | Node should have one toString but has 2. | +| test.cpp:665:26:665:27 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:665:26:665:27 | s | Node should have one toString but has 2. | +| test.cpp:665:26:665:27 | s indirection | Node should have one toString but has 2. | +| test.cpp:666:8:666:16 | * ... | Node should have one toString but has 2. | +| test.cpp:666:8:666:16 | ptr_to_s indirection | Node should have one toString but has 2. | +| test.cpp:672:26:672:27 | & ... | Node should have one toString but has 2. | +| test.cpp:672:26:672:27 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:672:26:672:27 | s | Node should have one toString but has 2. | +| test.cpp:672:26:672:27 | s indirection | Node should have one toString but has 2. | +| test.cpp:673:8:673:16 | * ... | Node should have one toString but has 2. | +| test.cpp:673:8:673:16 | ptr_to_s indirection | Node should have one toString but has 2. | +| test.cpp:678:26:678:27 | & ... | Node should have one toString but has 2. | +| test.cpp:678:26:678:27 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:678:26:678:27 | s | Node should have one toString but has 2. | +| test.cpp:678:26:678:27 | s indirection | Node should have one toString but has 2. | +| test.cpp:679:8:679:16 | * ... | Node should have one toString but has 2. | +| test.cpp:679:8:679:16 | ptr_to_s indirection | Node should have one toString but has 2. | +| test.cpp:686:26:686:27 | & ... | Node should have one toString but has 2. | +| test.cpp:686:26:686:27 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:686:26:686:27 | s | Node should have one toString but has 2. | +| test.cpp:686:26:686:27 | s indirection | Node should have one toString but has 2. | +| test.cpp:687:8:687:16 | * ... | Node should have one toString but has 2. | +| test.cpp:687:8:687:16 | ptr_to_s indirection | Node should have one toString but has 2. | +| test.cpp:694:3:694:6 | * ... | Node should have one toString but has 2. | +| test.cpp:694:3:694:6 | buf indirection | Node should have one toString but has 2. | +| test.cpp:704:22:704:25 | & ... | Node should have one toString but has 2. | +| test.cpp:704:22:704:25 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:704:22:704:25 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:704:22:704:25 | buf | Node should have one toString but has 2. | +| test.cpp:704:22:704:25 | buf indirection | Node should have one toString but has 2. | +| test.cpp:704:22:704:25 | buf indirection | Node should have one toString but has 2. | +| test.cpp:715:24:715:25 | & ... | Node should have one toString but has 2. | +| test.cpp:715:24:715:25 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:715:24:715:25 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:715:24:715:25 | c | Node should have one toString but has 2. | +| test.cpp:715:24:715:25 | c indirection | Node should have one toString but has 2. | +| test.cpp:715:24:715:25 | c indirection | Node should have one toString but has 2. | +| test.cpp:727:7:727:8 | & ... | Node should have one toString but has 2. | +| test.cpp:727:7:727:8 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:727:7:727:8 | x | Node should have one toString but has 2. | +| test.cpp:727:7:727:8 | x indirection | Node should have one toString but has 2. | +| test.cpp:728:3:728:4 | * ... | Node should have one toString but has 2. | +| test.cpp:728:3:728:4 | * ... indirection | Node should have one toString but has 2. | +| test.cpp:728:3:728:4 | p | Node should have one toString but has 2. | +| test.cpp:728:3:728:4 | p indirection | Node should have one toString but has 2. | +| test.cpp:734:40:734:41 | & ... | Node should have one toString but has 2. | +| test.cpp:734:40:734:41 | & ... indirection | Node should have one toString but has 2. | +| test.cpp:734:40:734:41 | x | Node should have one toString but has 2. | +| test.cpp:734:40:734:41 | x indirection | Node should have one toString but has 2. | +| true_upon_entry.cpp:55:30:55:34 | 1 | Node should have one toString but has 2. | +| true_upon_entry.cpp:55:30:55:34 | ... = ... | Node should have one toString but has 2. | +| true_upon_entry.cpp:63:30:63:34 | 1 | Node should have one toString but has 2. | +| true_upon_entry.cpp:63:30:63:34 | ... = ... | Node should have one toString but has 2. | +| true_upon_entry.cpp:76:30:76:34 | 1 | Node should have one toString but has 2. | +| true_upon_entry.cpp:76:30:76:34 | ... = ... | Node should have one toString but has 2. | +| true_upon_entry.cpp:84:20:84:24 | 1 | Node should have one toString but has 2. | +| true_upon_entry.cpp:84:20:84:24 | ... = ... | Node should have one toString but has 2. | +| true_upon_entry.cpp:91:20:91:24 | 1 | Node should have one toString but has 2. | +| true_upon_entry.cpp:91:20:91:24 | ... = ... | Node should have one toString but has 2. | missingToString parameterCallable localFlowIsLocal diff --git a/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected b/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected index b1acebfde5b..618aeec1791 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected @@ -4,6 +4,295 @@ uniqueType uniqueNodeLocation missingLocation uniqueNodeToString +| A.cpp:42:10:42:12 | & ... | Node should have one toString but has 2. | +| A.cpp:42:10:42:12 | & ... indirection | Node should have one toString but has 2. | +| A.cpp:42:10:42:12 | & ... indirection | Node should have one toString but has 2. | +| A.cpp:42:10:42:12 | cc | Node should have one toString but has 2. | +| A.cpp:42:10:42:12 | cc indirection | Node should have one toString but has 2. | +| A.cpp:42:10:42:12 | cc indirection | Node should have one toString but has 2. | +| A.cpp:43:10:43:12 | & ... | Node should have one toString but has 2. | +| A.cpp:43:10:43:12 | & ... indirection | Node should have one toString but has 2. | +| A.cpp:43:10:43:12 | & ... indirection | Node should have one toString but has 2. | +| A.cpp:43:10:43:12 | ct | Node should have one toString but has 2. | +| A.cpp:43:10:43:12 | ct indirection | Node should have one toString but has 2. | +| A.cpp:43:10:43:12 | ct indirection | Node should have one toString but has 2. | +| A.cpp:105:9:105:38 | (condition decl) | Node should have one toString but has 2. | +| A.cpp:105:9:105:38 | c1 | Node should have one toString but has 2. | +| A.cpp:110:9:110:38 | (condition decl) | Node should have one toString but has 2. | +| A.cpp:110:9:110:38 | c2 | Node should have one toString but has 2. | +| A.cpp:118:9:118:39 | (condition decl) | Node should have one toString but has 2. | +| A.cpp:118:9:118:39 | c1 | Node should have one toString but has 2. | +| E.cpp:33:18:33:19 | & ... | Node should have one toString but has 2. | +| E.cpp:33:18:33:19 | & ... indirection | Node should have one toString but has 2. | +| E.cpp:33:18:33:19 | p | Node should have one toString but has 2. | +| E.cpp:33:18:33:19 | p indirection | Node should have one toString but has 2. | +| aliasing.cpp:25:17:25:19 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:25:17:25:19 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:25:17:25:19 | s1 | Node should have one toString but has 2. | +| aliasing.cpp:25:17:25:19 | s1 indirection | Node should have one toString but has 2. | +| aliasing.cpp:78:10:78:13 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:78:10:78:13 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:78:10:78:13 | s | Node should have one toString but has 2. | +| aliasing.cpp:78:10:78:13 | s indirection | Node should have one toString but has 2. | +| aliasing.cpp:101:13:101:22 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:101:13:101:22 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:101:13:101:22 | m1 | Node should have one toString but has 2. | +| aliasing.cpp:101:13:101:22 | m1 indirection | Node should have one toString but has 2. | +| aliasing.cpp:102:8:102:10 | * ... | Node should have one toString but has 2. | +| aliasing.cpp:102:8:102:10 | px indirection | Node should have one toString but has 2. | +| aliasing.cpp:106:3:106:5 | * ... | Node should have one toString but has 2. | +| aliasing.cpp:106:3:106:5 | * ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:106:3:106:5 | pa | Node should have one toString but has 2. | +| aliasing.cpp:106:3:106:5 | pa indirection | Node should have one toString but has 2. | +| aliasing.cpp:111:15:111:19 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:111:15:111:19 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:111:15:111:19 | m1 | Node should have one toString but has 2. | +| aliasing.cpp:111:15:111:19 | m1 indirection | Node should have one toString but has 2. | +| aliasing.cpp:127:8:127:16 | * ... | Node should have one toString but has 2. | +| aliasing.cpp:127:8:127:16 | ... - ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:132:8:132:14 | & ... indirection | Node should have one toString but has 4. | +| aliasing.cpp:132:8:132:14 | * ... | Node should have one toString but has 4. | +| aliasing.cpp:132:8:132:14 | * ... indirection | Node should have one toString but has 4. | +| aliasing.cpp:132:8:132:14 | xs indirection | Node should have one toString but has 4. | +| aliasing.cpp:132:9:132:14 | & ... | Node should have one toString but has 3. | +| aliasing.cpp:132:9:132:14 | * ... | Node should have one toString but has 3. | +| aliasing.cpp:132:9:132:14 | xs | Node should have one toString but has 3. | +| aliasing.cpp:132:10:132:14 | & ... | Node should have one toString but has 3. | +| aliasing.cpp:132:10:132:14 | & ... indirection | Node should have one toString but has 3. | +| aliasing.cpp:132:10:132:14 | * ... | Node should have one toString but has 3. | +| aliasing.cpp:132:10:132:14 | * ... indirection | Node should have one toString but has 3. | +| aliasing.cpp:132:10:132:14 | xs | Node should have one toString but has 3. | +| aliasing.cpp:132:10:132:14 | xs indirection | Node should have one toString but has 3. | +| aliasing.cpp:132:11:132:14 | * ... | Node should have one toString but has 2. | +| aliasing.cpp:132:11:132:14 | * ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:132:11:132:14 | xs | Node should have one toString but has 2. | +| aliasing.cpp:132:11:132:14 | xs indirection | Node should have one toString but has 2. | +| aliasing.cpp:136:15:136:17 | + ... | Node should have one toString but has 2. | +| aliasing.cpp:136:15:136:17 | + ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:136:15:136:17 | xs | Node should have one toString but has 2. | +| aliasing.cpp:136:15:136:17 | xs indirection | Node should have one toString but has 2. | +| aliasing.cpp:137:8:137:11 | * ... | Node should have one toString but has 3. | +| aliasing.cpp:137:8:137:11 | + ... indirection | Node should have one toString but has 3. | +| aliasing.cpp:137:8:137:11 | xs indirection | Node should have one toString but has 3. | +| aliasing.cpp:137:9:137:11 | + ... | Node should have one toString but has 2. | +| aliasing.cpp:137:9:137:11 | xs | Node should have one toString but has 2. | +| aliasing.cpp:147:15:147:22 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:147:15:147:22 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:147:15:147:22 | m1 | Node should have one toString but has 2. | +| aliasing.cpp:147:15:147:22 | m1 indirection | Node should have one toString but has 2. | +| aliasing.cpp:159:8:159:14 | * ... | Node should have one toString but has 2. | +| aliasing.cpp:159:8:159:14 | data indirection | Node should have one toString but has 2. | +| aliasing.cpp:175:15:175:22 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:175:15:175:22 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:175:15:175:22 | m1 | Node should have one toString but has 2. | +| aliasing.cpp:175:15:175:22 | m1 indirection | Node should have one toString but has 2. | +| aliasing.cpp:181:15:181:22 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:181:15:181:22 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:181:15:181:22 | m1 | Node should have one toString but has 2. | +| aliasing.cpp:181:15:181:22 | m1 indirection | Node should have one toString but has 2. | +| aliasing.cpp:187:15:187:22 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:187:15:187:22 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:187:15:187:22 | m1 | Node should have one toString but has 2. | +| aliasing.cpp:187:15:187:22 | m1 indirection | Node should have one toString but has 2. | +| aliasing.cpp:194:15:194:22 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:194:15:194:22 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:194:15:194:22 | m1 | Node should have one toString but has 2. | +| aliasing.cpp:194:15:194:22 | m1 indirection | Node should have one toString but has 2. | +| aliasing.cpp:200:15:200:24 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:200:15:200:24 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:200:15:200:24 | m1 | Node should have one toString but has 2. | +| aliasing.cpp:200:15:200:24 | m1 indirection | Node should have one toString but has 2. | +| aliasing.cpp:205:15:205:24 | & ... | Node should have one toString but has 2. | +| aliasing.cpp:205:15:205:24 | & ... indirection | Node should have one toString but has 2. | +| aliasing.cpp:205:15:205:24 | m1 | Node should have one toString but has 2. | +| aliasing.cpp:205:15:205:24 | m1 indirection | Node should have one toString but has 2. | +| arrays.cpp:9:8:9:11 | * ... | Node should have one toString but has 2. | +| arrays.cpp:9:8:9:11 | * ... indirection | Node should have one toString but has 2. | +| arrays.cpp:9:8:9:11 | arr indirection | Node should have one toString but has 2. | +| arrays.cpp:9:8:9:11 | arr indirection | Node should have one toString but has 2. | +| arrays.cpp:10:8:10:15 | & ... indirection | Node should have one toString but has 3. | +| arrays.cpp:10:8:10:15 | & ... indirection | Node should have one toString but has 3. | +| arrays.cpp:10:8:10:15 | * ... | Node should have one toString but has 3. | +| arrays.cpp:10:8:10:15 | * ... indirection | Node should have one toString but has 3. | +| arrays.cpp:10:8:10:15 | access to array indirection | Node should have one toString but has 3. | +| arrays.cpp:10:8:10:15 | access to array indirection | Node should have one toString but has 3. | +| arrays.cpp:10:9:10:15 | & ... | Node should have one toString but has 2. | +| arrays.cpp:10:9:10:15 | access to array | Node should have one toString but has 2. | +| arrays.cpp:15:3:15:10 | & ... | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | & ... indirection | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | & ... indirection | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | & ... indirection | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | * ... | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | * ... indirection | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | * ... indirection | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | * ... indirection | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | access to array | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | access to array indirection | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | access to array indirection | Node should have one toString but has 3. | +| arrays.cpp:15:3:15:10 | access to array indirection | Node should have one toString but has 3. | +| by_reference.cpp:68:17:68:18 | & ... | Node should have one toString but has 2. | +| by_reference.cpp:68:17:68:18 | & ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:68:17:68:18 | s | Node should have one toString but has 2. | +| by_reference.cpp:68:17:68:18 | s indirection | Node should have one toString but has 2. | +| by_reference.cpp:69:22:69:23 | & ... | Node should have one toString but has 2. | +| by_reference.cpp:69:22:69:23 | & ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:69:22:69:23 | s | Node should have one toString but has 2. | +| by_reference.cpp:69:22:69:23 | s indirection | Node should have one toString but has 2. | +| by_reference.cpp:92:3:92:5 | * ... | Node should have one toString but has 2. | +| by_reference.cpp:92:3:92:5 | * ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:92:3:92:5 | * ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:92:3:92:5 | * ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:92:3:92:5 | pa | Node should have one toString but has 2. | +| by_reference.cpp:92:3:92:5 | pa indirection | Node should have one toString but has 2. | +| by_reference.cpp:92:3:92:5 | pa indirection | Node should have one toString but has 2. | +| by_reference.cpp:92:3:92:5 | pa indirection | Node should have one toString but has 2. | +| by_reference.cpp:102:21:102:39 | & ... | Node should have one toString but has 2. | +| by_reference.cpp:102:21:102:39 | & ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:102:21:102:39 | inner_nested | Node should have one toString but has 2. | +| by_reference.cpp:102:21:102:39 | inner_nested indirection | Node should have one toString but has 2. | +| by_reference.cpp:104:15:104:22 | & ... | Node should have one toString but has 2. | +| by_reference.cpp:104:15:104:22 | & ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:104:15:104:22 | & ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:104:15:104:22 | a | Node should have one toString but has 2. | +| by_reference.cpp:104:15:104:22 | a indirection | Node should have one toString but has 2. | +| by_reference.cpp:104:15:104:22 | a indirection | Node should have one toString but has 2. | +| by_reference.cpp:106:21:106:41 | & ... | Node should have one toString but has 2. | +| by_reference.cpp:106:21:106:41 | & ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:106:21:106:41 | inner_nested | Node should have one toString but has 2. | +| by_reference.cpp:106:21:106:41 | inner_nested indirection | Node should have one toString but has 2. | +| by_reference.cpp:108:15:108:24 | & ... | Node should have one toString but has 2. | +| by_reference.cpp:108:15:108:24 | & ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:108:15:108:24 | & ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:108:15:108:24 | a | Node should have one toString but has 2. | +| by_reference.cpp:108:15:108:24 | a indirection | Node should have one toString but has 2. | +| by_reference.cpp:108:15:108:24 | a indirection | Node should have one toString but has 2. | +| by_reference.cpp:123:21:123:36 | * ... | Node should have one toString but has 2. | +| by_reference.cpp:123:21:123:36 | * ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:123:21:123:36 | inner_ptr | Node should have one toString but has 2. | +| by_reference.cpp:123:21:123:36 | inner_ptr indirection | Node should have one toString but has 2. | +| by_reference.cpp:127:21:127:38 | * ... | Node should have one toString but has 2. | +| by_reference.cpp:127:21:127:38 | * ... indirection | Node should have one toString but has 2. | +| by_reference.cpp:127:21:127:38 | inner_ptr | Node should have one toString but has 2. | +| by_reference.cpp:127:21:127:38 | inner_ptr indirection | Node should have one toString but has 2. | +| clearning.cpp:19:3:19:6 | * ... | Node should have one toString but has 2. | +| clearning.cpp:19:3:19:6 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:19:3:19:6 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:19:3:19:6 | x | Node should have one toString but has 2. | +| clearning.cpp:19:3:19:6 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:19:3:19:6 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:20:8:20:12 | * ... | Node should have one toString but has 3. | +| clearning.cpp:20:8:20:12 | * ... indirection | Node should have one toString but has 3. | +| clearning.cpp:20:8:20:12 | x indirection | Node should have one toString but has 3. | +| clearning.cpp:20:9:20:12 | * ... | Node should have one toString but has 2. | +| clearning.cpp:20:9:20:12 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:27:8:27:12 | * ... | Node should have one toString but has 3. | +| clearning.cpp:27:8:27:12 | * ... indirection | Node should have one toString but has 3. | +| clearning.cpp:27:8:27:12 | x indirection | Node should have one toString but has 3. | +| clearning.cpp:27:9:27:12 | * ... | Node should have one toString but has 2. | +| clearning.cpp:27:9:27:12 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:32:3:32:6 | * ... | Node should have one toString but has 2. | +| clearning.cpp:32:3:32:6 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:32:3:32:6 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:32:3:32:6 | x | Node should have one toString but has 2. | +| clearning.cpp:32:3:32:6 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:32:3:32:6 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:34:8:34:11 | * ... | Node should have one toString but has 2. | +| clearning.cpp:34:8:34:11 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:34:8:34:11 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:34:8:34:11 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:39:3:39:6 | * ... | Node should have one toString but has 2. | +| clearning.cpp:39:3:39:6 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:39:3:39:6 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:39:3:39:6 | x | Node should have one toString but has 2. | +| clearning.cpp:39:3:39:6 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:39:3:39:6 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:41:8:41:11 | * ... | Node should have one toString but has 2. | +| clearning.cpp:41:8:41:11 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:41:8:41:11 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:41:8:41:11 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:48:8:48:11 | * ... | Node should have one toString but has 2. | +| clearning.cpp:48:8:48:11 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:48:8:48:11 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:48:8:48:11 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:53:3:53:6 | * ... | Node should have one toString but has 2. | +| clearning.cpp:53:3:53:6 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:53:3:53:6 | * ... indirection | Node should have one toString but has 2. | +| clearning.cpp:53:3:53:6 | x | Node should have one toString but has 2. | +| clearning.cpp:53:3:53:6 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:53:3:53:6 | x indirection | Node should have one toString but has 2. | +| clearning.cpp:76:7:76:12 | * ... | Node should have one toString but has 2. | +| clearning.cpp:76:7:76:12 | val indirection | Node should have one toString but has 2. | +| clearning.cpp:84:7:84:12 | * ... | Node should have one toString but has 2. | +| clearning.cpp:84:7:84:12 | val indirection | Node should have one toString but has 2. | +| clearning.cpp:90:2:90:9 | * ... | Node should have one toString but has 3. | +| clearning.cpp:90:2:90:9 | * ... indirection | Node should have one toString but has 3. | +| clearning.cpp:90:2:90:9 | ... ++ | Node should have one toString but has 3. | +| clearning.cpp:90:2:90:9 | ... ++ indirection | Node should have one toString but has 3. | +| clearning.cpp:90:2:90:9 | val | Node should have one toString but has 3. | +| clearning.cpp:90:2:90:9 | val indirection | Node should have one toString but has 3. | +| clearning.cpp:91:7:91:12 | * ... | Node should have one toString but has 2. | +| clearning.cpp:91:7:91:12 | val indirection | Node should have one toString but has 2. | +| clearning.cpp:98:7:98:12 | * ... | Node should have one toString but has 2. | +| clearning.cpp:98:7:98:12 | val indirection | Node should have one toString but has 2. | +| clearning.cpp:105:7:105:12 | * ... | Node should have one toString but has 2. | +| clearning.cpp:105:7:105:12 | val indirection | Node should have one toString but has 2. | +| clearning.cpp:112:7:112:12 | * ... | Node should have one toString but has 2. | +| clearning.cpp:112:7:112:12 | val indirection | Node should have one toString but has 2. | +| clearning.cpp:119:7:119:12 | * ... | Node should have one toString but has 2. | +| clearning.cpp:119:7:119:12 | val indirection | Node should have one toString but has 2. | +| conflated.cpp:10:3:10:7 | * ... | Node should have one toString but has 2. | +| conflated.cpp:10:3:10:7 | * ... indirection | Node should have one toString but has 2. | +| conflated.cpp:10:3:10:7 | p | Node should have one toString but has 2. | +| conflated.cpp:10:3:10:7 | p indirection | Node should have one toString but has 2. | +| conflated.cpp:11:8:11:12 | * ... | Node should have one toString but has 2. | +| conflated.cpp:11:8:11:12 | p indirection | Node should have one toString but has 2. | +| qualifiers.cpp:37:19:37:35 | * ... | Node should have one toString but has 2. | +| qualifiers.cpp:37:19:37:35 | * ... indirection | Node should have one toString but has 2. | +| qualifiers.cpp:37:19:37:35 | call to getInner | Node should have one toString but has 2. | +| qualifiers.cpp:37:19:37:35 | call to getInner indirection | Node should have one toString but has 2. | +| qualifiers.cpp:42:6:42:22 | * ... | Node should have one toString but has 2. | +| qualifiers.cpp:42:6:42:22 | * ... indirection | Node should have one toString but has 2. | +| qualifiers.cpp:42:6:42:22 | call to getInner | Node should have one toString but has 2. | +| qualifiers.cpp:42:6:42:22 | call to getInner indirection | Node should have one toString but has 2. | +| qualifiers.cpp:42:25:42:25 | * ... indirection [post update] | Node should have one toString but has 2. | +| qualifiers.cpp:42:25:42:25 | call to getInner indirection [post update] | Node should have one toString but has 2. | +| qualifiers.cpp:47:6:47:11 | & ... | Node should have one toString but has 2. | +| qualifiers.cpp:47:6:47:11 | & ... indirection | Node should have one toString but has 2. | +| qualifiers.cpp:47:6:47:11 | outer | Node should have one toString but has 2. | +| qualifiers.cpp:47:6:47:11 | outer indirection | Node should have one toString but has 2. | +| realistic.cpp:25:15:25:36 | & ... | Node should have one toString but has 2. | +| realistic.cpp:25:15:25:36 | & ... indirection | Node should have one toString but has 2. | +| realistic.cpp:25:15:25:36 | & ... indirection | Node should have one toString but has 2. | +| realistic.cpp:25:15:25:36 | access to array | Node should have one toString but has 2. | +| realistic.cpp:25:15:25:36 | access to array indirection | Node should have one toString but has 2. | +| realistic.cpp:25:15:25:36 | access to array indirection | Node should have one toString but has 2. | +| realistic.cpp:34:9:34:12 | * ... | Node should have one toString but has 3. | +| realistic.cpp:34:9:34:12 | * ... indirection | Node should have one toString but has 3. | +| realistic.cpp:34:9:34:12 | ... ++ | Node should have one toString but has 3. | +| realistic.cpp:34:9:34:12 | ... ++ indirection | Node should have one toString but has 3. | +| realistic.cpp:34:9:34:12 | d | Node should have one toString but has 3. | +| realistic.cpp:34:9:34:12 | d indirection | Node should have one toString but has 3. | +| realistic.cpp:34:16:34:19 | * ... | Node should have one toString but has 3. | +| realistic.cpp:34:16:34:19 | ... ++ indirection | Node should have one toString but has 3. | +| realistic.cpp:34:16:34:19 | s indirection | Node should have one toString but has 3. | +| realistic.cpp:34:17:34:19 | ... ++ | Node should have one toString but has 2. | +| realistic.cpp:34:17:34:19 | s | Node should have one toString but has 2. | +| struct_init.c:24:10:24:12 | & ... | Node should have one toString but has 2. | +| struct_init.c:24:10:24:12 | & ... indirection | Node should have one toString but has 2. | +| struct_init.c:24:10:24:12 | ab | Node should have one toString but has 2. | +| struct_init.c:24:10:24:12 | ab indirection | Node should have one toString but has 2. | +| struct_init.c:28:5:28:7 | & ... | Node should have one toString but has 2. | +| struct_init.c:28:5:28:7 | & ... indirection | Node should have one toString but has 2. | +| struct_init.c:28:5:28:7 | ab | Node should have one toString but has 2. | +| struct_init.c:28:5:28:7 | ab indirection | Node should have one toString but has 2. | +| struct_init.c:36:10:36:24 | & ... | Node should have one toString but has 2. | +| struct_init.c:36:10:36:24 | & ... indirection | Node should have one toString but has 2. | +| struct_init.c:36:10:36:24 | nestedAB | Node should have one toString but has 2. | +| struct_init.c:36:10:36:24 | nestedAB indirection | Node should have one toString but has 2. | +| struct_init.c:43:5:43:7 | & ... | Node should have one toString but has 2. | +| struct_init.c:43:5:43:7 | & ... indirection | Node should have one toString but has 2. | +| struct_init.c:43:5:43:7 | ab | Node should have one toString but has 2. | +| struct_init.c:43:5:43:7 | ab indirection | Node should have one toString but has 2. | missingToString parameterCallable localFlowIsLocal diff --git a/cpp/ql/test/library-tests/dataflow/fields/flow.expected b/cpp/ql/test/library-tests/dataflow/fields/flow.expected index 48de9172b36..12fe1f05e9d 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/flow.expected @@ -1,2 +1,5 @@ -failures testFailures +| realistic.cpp:61:14:61:55 | bufferLen | Unexpected result: ir= | +| realistic.cpp:61:59:61:84 | // $ ast ir=53:47 ir=53:55 | Missing result:ir=53:47 | +| realistic.cpp:61:59:61:84 | // $ ast ir=53:47 ir=53:55 | Missing result:ir=53:55 | +failures diff --git a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected index bde0ebd2586..816a3b91edf 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected @@ -11,19 +11,16 @@ edges | A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | | A.cpp:31:20:31:20 | c | A.cpp:31:14:31:21 | call to B [c] | | A.cpp:41:5:41:6 | insert output argument | A.cpp:43:10:43:12 | & ... indirection | +| A.cpp:41:5:41:6 | insert output argument | A.cpp:43:10:43:12 | ct indirection | | A.cpp:41:15:41:21 | new | A.cpp:41:5:41:6 | insert output argument | -| A.cpp:41:15:41:21 | new | A.cpp:41:5:41:6 | insert output argument | -| A.cpp:41:15:41:21 | new | A.cpp:41:15:41:21 | new | | A.cpp:47:12:47:18 | new | A.cpp:48:20:48:20 | c | | A.cpp:48:12:48:18 | call to make indirection [c] | A.cpp:49:10:49:10 | b indirection [c] | | A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | | A.cpp:48:20:48:20 | c | A.cpp:48:12:48:18 | call to make indirection [c] | | A.cpp:49:10:49:10 | b indirection [c] | A.cpp:49:10:49:13 | c | -| A.cpp:49:10:49:10 | b indirection [c] | A.cpp:49:13:49:13 | c | | A.cpp:55:5:55:5 | set output argument [c] | A.cpp:56:10:56:10 | b indirection [c] | | A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | | A.cpp:55:12:55:19 | new | A.cpp:55:5:55:5 | set output argument [c] | -| A.cpp:55:12:55:19 | new | A.cpp:55:12:55:19 | new | | A.cpp:56:10:56:10 | b indirection [c] | A.cpp:28:8:28:10 | this indirection [c] | | A.cpp:56:10:56:10 | b indirection [c] | A.cpp:56:10:56:17 | call to get | | A.cpp:57:11:57:24 | call to B [c] | A.cpp:57:11:57:24 | new indirection [c] | @@ -34,16 +31,12 @@ edges | A.cpp:57:17:57:23 | new | A.cpp:57:17:57:23 | new | | A.cpp:64:10:64:15 | call to setOnB indirection [c] | A.cpp:66:10:66:11 | b2 indirection [c] | | A.cpp:64:21:64:28 | new | A.cpp:64:10:64:15 | call to setOnB indirection [c] | -| A.cpp:64:21:64:28 | new | A.cpp:64:21:64:28 | new | | A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | | A.cpp:66:10:66:11 | b2 indirection [c] | A.cpp:66:10:66:14 | c | -| A.cpp:66:10:66:11 | b2 indirection [c] | A.cpp:66:14:66:14 | c | | A.cpp:73:10:73:19 | call to setOnBWrap indirection [c] | A.cpp:75:10:75:11 | b2 indirection [c] | | A.cpp:73:25:73:32 | new | A.cpp:73:10:73:19 | call to setOnBWrap indirection [c] | -| A.cpp:73:25:73:32 | new | A.cpp:73:25:73:32 | new | | A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | | A.cpp:75:10:75:11 | b2 indirection [c] | A.cpp:75:10:75:14 | c | -| A.cpp:75:10:75:11 | b2 indirection [c] | A.cpp:75:14:75:14 | c | | A.cpp:78:27:78:27 | c | A.cpp:81:21:81:21 | c | | A.cpp:81:10:81:15 | call to setOnB indirection [c] | A.cpp:78:6:78:15 | setOnBWrap indirection [c] | | A.cpp:81:21:81:21 | c | A.cpp:81:10:81:15 | call to setOnB indirection [c] | @@ -59,16 +52,13 @@ edges | A.cpp:103:14:103:14 | c indirection [a] | A.cpp:107:12:107:13 | c1 indirection [a] | | A.cpp:103:14:103:14 | c indirection [a] | A.cpp:120:12:120:13 | c1 indirection [a] | | A.cpp:107:12:107:13 | c1 indirection [a] | A.cpp:107:12:107:16 | a | -| A.cpp:107:12:107:13 | c1 indirection [a] | A.cpp:107:16:107:16 | a | | A.cpp:120:12:120:13 | c1 indirection [a] | A.cpp:120:12:120:16 | a | -| A.cpp:120:12:120:13 | c1 indirection [a] | A.cpp:120:16:120:16 | a | | A.cpp:126:5:126:5 | set output argument [c] | A.cpp:131:8:131:8 | f7 output argument [c] | | A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | | A.cpp:126:12:126:18 | new | A.cpp:126:5:126:5 | set output argument [c] | | A.cpp:126:12:126:18 | new | A.cpp:126:12:126:18 | new | | A.cpp:131:8:131:8 | f7 output argument [c] | A.cpp:132:10:132:10 | b indirection [c] | | A.cpp:132:10:132:10 | b indirection [c] | A.cpp:132:10:132:13 | c | -| A.cpp:132:10:132:10 | b indirection [c] | A.cpp:132:13:132:13 | c | | A.cpp:140:13:140:13 | b | A.cpp:143:7:143:31 | ... = ... | | A.cpp:142:7:142:20 | ... = ... | A.cpp:142:10:142:10 | b indirection [post update] [c] | | A.cpp:142:10:142:10 | b indirection [post update] [c] | A.cpp:143:7:143:31 | ... = ... indirection [c] | @@ -87,13 +77,10 @@ edges | A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | | A.cpp:151:18:151:18 | b | A.cpp:151:12:151:24 | call to D [b] | | A.cpp:152:10:152:10 | d indirection [b] | A.cpp:152:10:152:13 | b | -| A.cpp:152:10:152:10 | d indirection [b] | A.cpp:152:13:152:13 | b | | A.cpp:153:10:153:10 | d indirection [b indirection, c] | A.cpp:153:13:153:13 | b indirection [c] | | A.cpp:153:13:153:13 | b indirection [c] | A.cpp:153:10:153:16 | c | | A.cpp:153:13:153:13 | b indirection [c] | A.cpp:153:13:153:13 | b indirection [c] | -| A.cpp:153:13:153:13 | b indirection [c] | A.cpp:153:16:153:16 | c | | A.cpp:154:10:154:10 | b indirection [c] | A.cpp:154:10:154:13 | c | -| A.cpp:154:10:154:10 | b indirection [c] | A.cpp:154:13:154:13 | c | | A.cpp:159:12:159:18 | new | A.cpp:160:29:160:29 | b | | A.cpp:160:18:160:60 | call to MyList [head] | A.cpp:161:38:161:39 | l1 indirection [head] | | A.cpp:160:29:160:29 | b | A.cpp:160:18:160:60 | call to MyList [head] | @@ -110,13 +97,11 @@ edges | A.cpp:165:14:165:17 | next indirection [next indirection, head] | A.cpp:165:20:165:23 | next indirection [head] | | A.cpp:165:20:165:23 | next indirection [head] | A.cpp:165:10:165:29 | head | | A.cpp:165:20:165:23 | next indirection [head] | A.cpp:165:20:165:23 | next indirection [head] | -| A.cpp:165:20:165:23 | next indirection [head] | A.cpp:165:26:165:29 | head | | A.cpp:167:44:167:44 | l indirection [next indirection, head] | A.cpp:167:47:167:50 | next indirection [head] | | A.cpp:167:44:167:44 | l indirection [next indirection, next indirection, head] | A.cpp:167:47:167:50 | next indirection [next indirection, head] | | A.cpp:167:47:167:50 | next indirection [head] | A.cpp:169:12:169:12 | l indirection [head] | | A.cpp:167:47:167:50 | next indirection [next indirection, head] | A.cpp:167:44:167:44 | l indirection [next indirection, head] | | A.cpp:169:12:169:12 | l indirection [head] | A.cpp:169:12:169:18 | head | -| A.cpp:169:12:169:12 | l indirection [head] | A.cpp:169:15:169:18 | head | | A.cpp:181:15:181:21 | newHead | A.cpp:183:7:183:20 | ... = ... | | A.cpp:181:32:181:35 | next indirection [head] | A.cpp:184:7:184:23 | ... = ... indirection [head] | | A.cpp:181:32:181:35 | next indirection [next indirection, head] | A.cpp:184:7:184:23 | ... = ... indirection [next indirection, head] | @@ -133,7 +118,6 @@ edges | B.cpp:9:10:9:11 | b2 indirection [box1 indirection, elem1] | B.cpp:9:14:9:17 | box1 indirection [elem1] | | B.cpp:9:14:9:17 | box1 indirection [elem1] | B.cpp:9:10:9:24 | elem1 | | B.cpp:9:14:9:17 | box1 indirection [elem1] | B.cpp:9:14:9:17 | box1 indirection [elem1] | -| B.cpp:9:14:9:17 | box1 indirection [elem1] | B.cpp:9:20:9:24 | elem1 | | B.cpp:15:15:15:27 | new | B.cpp:16:37:16:37 | e | | B.cpp:16:16:16:38 | call to Box1 [elem2] | B.cpp:17:25:17:26 | b1 indirection [elem2] | | B.cpp:16:37:16:37 | e | B.cpp:16:16:16:38 | call to Box1 [elem2] | @@ -144,7 +128,6 @@ edges | B.cpp:19:10:19:11 | b2 indirection [box1 indirection, elem2] | B.cpp:19:14:19:17 | box1 indirection [elem2] | | B.cpp:19:14:19:17 | box1 indirection [elem2] | B.cpp:19:10:19:24 | elem2 | | B.cpp:19:14:19:17 | box1 indirection [elem2] | B.cpp:19:14:19:17 | box1 indirection [elem2] | -| B.cpp:19:14:19:17 | box1 indirection [elem2] | B.cpp:19:20:19:24 | elem2 | | B.cpp:33:16:33:17 | e1 | B.cpp:35:7:35:22 | ... = ... | | B.cpp:33:26:33:27 | e2 | B.cpp:36:7:36:22 | ... = ... | | B.cpp:35:7:35:22 | ... = ... | B.cpp:35:13:35:17 | this indirection [post update] [elem1] | @@ -214,7 +197,6 @@ edges | D.cpp:64:10:64:17 | this indirection [boxfield indirection, box indirection, elem] | D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | | D.cpp:64:20:64:22 | box indirection [elem] | D.cpp:64:10:64:28 | elem | | D.cpp:64:20:64:22 | box indirection [elem] | D.cpp:64:20:64:22 | box indirection [elem] | -| D.cpp:64:20:64:22 | box indirection [elem] | D.cpp:64:25:64:28 | elem | | E.cpp:19:27:19:27 | p indirection [data, buffer indirection] | E.cpp:21:10:21:10 | p indirection [data, buffer indirection] | | E.cpp:21:10:21:10 | p indirection [data, buffer indirection] | E.cpp:21:13:21:16 | data indirection [buffer indirection] | | E.cpp:21:13:21:16 | data indirection [buffer indirection] | E.cpp:21:18:21:23 | buffer indirection | @@ -226,12 +208,14 @@ edges | E.cpp:29:24:29:29 | b indirection [post update] [buffer indirection] | E.cpp:32:10:32:10 | b indirection [buffer indirection] | | E.cpp:30:21:30:33 | argument_source output argument | E.cpp:30:28:30:33 | data indirection [post update] [buffer indirection] | | E.cpp:30:23:30:26 | p indirection [post update] [data, buffer indirection] | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | +| E.cpp:30:23:30:26 | p indirection [post update] [data, buffer indirection] | E.cpp:33:18:33:19 | p indirection [data, buffer indirection] | | E.cpp:30:28:30:33 | data indirection [post update] [buffer indirection] | E.cpp:30:23:30:26 | p indirection [post update] [data, buffer indirection] | | E.cpp:32:10:32:10 | b indirection [buffer indirection] | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:32:10:32:10 | b indirection [buffer indirection] | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:32:13:32:18 | buffer indirection | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:32:13:32:18 | buffer indirection | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | E.cpp:19:27:19:27 | p indirection [data, buffer indirection] | +| E.cpp:33:18:33:19 | p indirection [data, buffer indirection] | E.cpp:19:27:19:27 | p indirection [data, buffer indirection] | | aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | | aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | | aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:9:3:9:22 | ... = ... | @@ -256,7 +240,11 @@ edges | aliasing.cpp:98:5:98:6 | s indirection [post update] [m1] | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:98:3:98:21 | ... = ... | | aliasing.cpp:101:13:101:22 | & ... indirection | aliasing.cpp:102:8:102:10 | * ... | +| aliasing.cpp:101:13:101:22 | & ... indirection | aliasing.cpp:102:8:102:10 | px indirection | +| aliasing.cpp:101:13:101:22 | m1 indirection | aliasing.cpp:102:8:102:10 | * ... | +| aliasing.cpp:101:13:101:22 | m1 indirection | aliasing.cpp:102:8:102:10 | px indirection | | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | aliasing.cpp:101:13:101:22 | & ... indirection | +| aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | aliasing.cpp:101:13:101:22 | m1 indirection | | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | @@ -270,8 +258,14 @@ edges | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:105:23:105:24 | pa | | aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | aliasing.cpp:122:8:122:12 | access to array | | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | aliasing.cpp:127:8:127:16 | * ... | +| aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | aliasing.cpp:127:8:127:16 | ... - ... indirection | +| aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | & ... indirection | | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | * ... | +| aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | * ... indirection | +| aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | xs indirection | | aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | aliasing.cpp:137:8:137:11 | * ... | +| aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | aliasing.cpp:137:8:137:11 | + ... indirection | +| aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | aliasing.cpp:137:8:137:11 | xs indirection | | aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | | aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | aliasing.cpp:143:8:143:16 | access to array | @@ -280,6 +274,7 @@ edges | aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | | aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | aliasing.cpp:159:9:159:9 | s indirection [data] | | aliasing.cpp:159:9:159:9 | s indirection [data] | aliasing.cpp:159:8:159:14 | * ... | +| aliasing.cpp:159:9:159:9 | s indirection [data] | aliasing.cpp:159:8:159:14 | data indirection | | aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | | aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | aliasing.cpp:165:8:165:8 | s indirection [data] | | aliasing.cpp:165:8:165:8 | s indirection [data] | aliasing.cpp:165:8:165:16 | access to array | @@ -301,7 +296,10 @@ edges | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:7:8:7:13 | access to array | | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:8:8:8:13 | access to array | | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | arr indirection | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | | arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:16:8:16:13 | access to array | | arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:17:8:17:13 | access to array | | arrays.cpp:36:3:36:37 | ... = ... | arrays.cpp:36:19:36:22 | access to array indirection [post update] [data] | @@ -388,10 +386,13 @@ edges | by_reference.cpp:63:8:63:8 | s indirection [a] | by_reference.cpp:43:9:43:27 | this indirection [a] | | by_reference.cpp:63:8:63:8 | s indirection [a] | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | by_reference.cpp:69:22:69:23 | & ... indirection [a] | +| by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | by_reference.cpp:69:22:69:23 | s indirection [a] | | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | +| by_reference.cpp:69:22:69:23 | s indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | +| by_reference.cpp:69:22:69:23 | s indirection [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | | by_reference.cpp:84:3:84:25 | ... = ... | by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | | by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | | by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | @@ -463,6 +464,7 @@ edges | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:32:3:32:25 | ... = ... | | clearning.cpp:33:5:33:5 | s indirection [x indirection] | clearning.cpp:34:9:34:9 | s indirection [x indirection] | | clearning.cpp:34:9:34:9 | s indirection [x indirection] | clearning.cpp:34:8:34:11 | * ... | +| clearning.cpp:34:9:34:9 | s indirection [x indirection] | clearning.cpp:34:8:34:11 | x indirection | | clearning.cpp:53:3:53:25 | ... = ... | clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | | clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | clearning.cpp:54:3:54:3 | s indirection [x indirection] | | clearning.cpp:53:10:53:19 | call to user_input | clearning.cpp:53:3:53:25 | ... = ... | @@ -494,6 +496,7 @@ edges | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | | clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | clearning.cpp:76:8:76:8 | s indirection [val indirection] | | clearning.cpp:76:8:76:8 | s indirection [val indirection] | clearning.cpp:76:7:76:12 | * ... | +| clearning.cpp:76:8:76:8 | s indirection [val indirection] | clearning.cpp:76:7:76:12 | val indirection | | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | | clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | clearning.cpp:83:13:83:13 | s indirection [val indirection] | | clearning.cpp:83:5:83:21 | ... = ... indirection | clearning.cpp:83:7:83:9 | s indirection [post update] [val indirection] | @@ -503,6 +506,7 @@ edges | clearning.cpp:83:13:83:21 | ... + ... indirection | clearning.cpp:83:5:83:21 | ... = ... indirection | | clearning.cpp:83:15:83:17 | val indirection | clearning.cpp:83:5:83:21 | ... = ... indirection | | clearning.cpp:84:8:84:8 | s indirection [val indirection] | clearning.cpp:84:7:84:12 | * ... | +| clearning.cpp:84:8:84:8 | s indirection [val indirection] | clearning.cpp:84:7:84:12 | val indirection | | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | | clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | clearning.cpp:90:3:90:3 | s indirection [val indirection] | | clearning.cpp:90:3:90:3 | s indirection [val indirection] | clearning.cpp:90:3:90:9 | ... ++ indirection | @@ -513,6 +517,7 @@ edges | clearning.cpp:90:5:90:7 | s indirection [post update] [val indirection] | clearning.cpp:91:8:91:8 | s indirection [val indirection] | | clearning.cpp:90:5:90:7 | val indirection | clearning.cpp:90:3:90:9 | ... ++ indirection | | clearning.cpp:91:8:91:8 | s indirection [val indirection] | clearning.cpp:91:7:91:12 | * ... | +| clearning.cpp:91:8:91:8 | s indirection [val indirection] | clearning.cpp:91:7:91:12 | val indirection | | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | | clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | clearning.cpp:97:10:97:10 | s indirection [val indirection] | | clearning.cpp:97:2:97:18 | ... = ... indirection | clearning.cpp:97:4:97:6 | s indirection [post update] [val indirection] | @@ -522,6 +527,7 @@ edges | clearning.cpp:97:10:97:18 | ... + ... indirection | clearning.cpp:97:2:97:18 | ... = ... indirection | | clearning.cpp:97:12:97:14 | val indirection | clearning.cpp:97:2:97:18 | ... = ... indirection | | clearning.cpp:98:8:98:8 | s indirection [val indirection] | clearning.cpp:98:7:98:12 | * ... | +| clearning.cpp:98:8:98:8 | s indirection [val indirection] | clearning.cpp:98:7:98:12 | val indirection | | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | | clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | clearning.cpp:104:2:104:2 | s indirection [val indirection] | | clearning.cpp:104:2:104:2 | s indirection [val indirection] | clearning.cpp:104:2:104:8 | ... ++ indirection | @@ -532,6 +538,7 @@ edges | clearning.cpp:104:4:104:6 | s indirection [post update] [val indirection] | clearning.cpp:105:8:105:8 | s indirection [val indirection] | | clearning.cpp:104:4:104:6 | val indirection | clearning.cpp:104:2:104:8 | ... ++ indirection | | clearning.cpp:105:8:105:8 | s indirection [val indirection] | clearning.cpp:105:7:105:12 | * ... | +| clearning.cpp:105:8:105:8 | s indirection [val indirection] | clearning.cpp:105:7:105:12 | val indirection | | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | | clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | clearning.cpp:111:4:111:4 | s indirection [val indirection] | | clearning.cpp:111:2:111:8 | ++ ... indirection | clearning.cpp:111:2:111:8 | ++ ... indirection | @@ -542,6 +549,7 @@ edges | clearning.cpp:111:6:111:8 | s indirection [post update] [val indirection] | clearning.cpp:112:8:112:8 | s indirection [val indirection] | | clearning.cpp:111:6:111:8 | val indirection | clearning.cpp:111:2:111:8 | ++ ... indirection | | clearning.cpp:112:8:112:8 | s indirection [val indirection] | clearning.cpp:112:7:112:12 | * ... | +| clearning.cpp:112:8:112:8 | s indirection [val indirection] | clearning.cpp:112:7:112:12 | val indirection | | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | | clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | clearning.cpp:118:2:118:2 | s indirection [val indirection] | | clearning.cpp:118:2:118:2 | s indirection [val indirection] | clearning.cpp:118:2:118:11 | ... += ... indirection | @@ -552,6 +560,7 @@ edges | clearning.cpp:118:4:118:6 | s indirection [post update] [val indirection] | clearning.cpp:119:8:119:8 | s indirection [val indirection] | | clearning.cpp:118:4:118:6 | val indirection | clearning.cpp:118:2:118:11 | ... += ... indirection | | clearning.cpp:119:8:119:8 | s indirection [val indirection] | clearning.cpp:119:7:119:12 | * ... | +| clearning.cpp:119:8:119:8 | s indirection [val indirection] | clearning.cpp:119:7:119:12 | val indirection | | clearning.cpp:151:3:151:22 | ... = ... | clearning.cpp:151:5:151:7 | s indirection [post update] [val] | | clearning.cpp:151:5:151:7 | s indirection [post update] [val] | clearning.cpp:152:8:152:8 | s indirection [val] | | clearning.cpp:151:11:151:20 | call to user_input | clearning.cpp:151:3:151:22 | ... = ... | @@ -620,7 +629,7 @@ edges | conflated.cpp:10:7:10:7 | ra indirection [post update] [p indirection] | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:10:3:10:22 | ... = ... | | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:8:11:12 | * ... | -| conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | +| conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:8:11:12 | p indirection | | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | | conflated.cpp:29:3:29:22 | ... = ... | conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | | conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | conflated.cpp:30:8:30:9 | pa indirection [x] | @@ -711,8 +720,10 @@ edges | qualifiers.cpp:38:16:38:20 | inner indirection [a] | qualifiers.cpp:38:16:38:20 | inner indirection [a] | | qualifiers.cpp:38:16:38:20 | inner indirection [a] | qualifiers.cpp:38:23:38:23 | a | | qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | +| qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:25:42:25 | call to getInner indirection [post update] [a] | | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | +| qualifiers.cpp:42:25:42:25 | call to getInner indirection [post update] [a] | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | | qualifiers.cpp:42:29:42:38 | call to user_input | qualifiers.cpp:42:5:42:40 | ... = ... | | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | qualifiers.cpp:43:16:43:20 | inner indirection [a] | | qualifiers.cpp:43:16:43:20 | inner indirection [a] | qualifiers.cpp:43:16:43:20 | inner indirection [a] | @@ -730,13 +741,11 @@ edges | realistic.cpp:53:25:53:33 | baz indirection [post update] [userInput, bufferLen] | realistic.cpp:53:20:53:22 | access to array indirection [post update] [baz indirection, userInput, bufferLen] | | realistic.cpp:53:35:53:43 | userInput indirection [post update] [bufferLen] | realistic.cpp:53:25:53:33 | baz indirection [post update] [userInput, bufferLen] | | realistic.cpp:53:47:53:66 | call to user_input | realistic.cpp:53:9:53:66 | ... = ... | -| realistic.cpp:53:55:53:64 | call to user_input | realistic.cpp:53:9:53:66 | ... = ... | | realistic.cpp:61:21:61:23 | foo indirection [bar, baz indirection, userInput, bufferLen] | realistic.cpp:61:21:61:30 | access to array indirection [baz indirection, userInput, bufferLen] | | realistic.cpp:61:21:61:30 | access to array indirection [baz indirection, userInput, bufferLen] | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | realistic.cpp:61:37:61:45 | userInput indirection [bufferLen] | | realistic.cpp:61:37:61:45 | userInput indirection [bufferLen] | realistic.cpp:61:14:61:55 | bufferLen | -| realistic.cpp:61:37:61:45 | userInput indirection [bufferLen] | realistic.cpp:61:47:61:55 | bufferLen | | simple.cpp:18:9:18:9 | this indirection [a_] | simple.cpp:18:22:18:23 | this indirection [a_] | | simple.cpp:18:22:18:23 | a_ | simple.cpp:18:9:18:9 | a indirection | | simple.cpp:18:22:18:23 | this indirection [a_] | simple.cpp:18:22:18:23 | a_ | @@ -791,12 +800,14 @@ edges | struct_init.c:15:8:15:9 | ab indirection [a] | struct_init.c:15:12:15:12 | a | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:22:8:22:9 | ab indirection [a] | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:24:10:24:12 | & ... indirection [a] | +| struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:24:10:24:12 | ab indirection [a] | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:28:5:28:7 | & ... indirection [a] | | struct_init.c:20:17:20:36 | definition of ab indirection [post update] [a] | struct_init.c:20:13:20:14 | definition of ab indirection [a] | | struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:17:20:36 | definition of ab indirection [post update] [a] | | struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:20:20:29 | call to user_input | | struct_init.c:22:8:22:9 | ab indirection [a] | struct_init.c:22:11:22:11 | a | | struct_init.c:24:10:24:12 | & ... indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | +| struct_init.c:24:10:24:12 | ab indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | struct_init.c:31:8:31:12 | outer indirection [nestedAB, a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | @@ -813,7 +824,9 @@ edges | struct_init.c:33:14:33:22 | pointerAB indirection [a] | struct_init.c:33:14:33:22 | pointerAB indirection [a] | | struct_init.c:33:14:33:22 | pointerAB indirection [a] | struct_init.c:33:25:33:25 | a | | struct_init.c:36:10:36:24 | & ... indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | +| struct_init.c:36:10:36:24 | nestedAB indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | struct_init.c:36:10:36:24 | & ... indirection [a] | +| struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | struct_init.c:36:10:36:24 | nestedAB indirection [a] | | struct_init.c:40:13:40:14 | definition of ab indirection [a] | struct_init.c:43:5:43:7 | & ... indirection [a] | | struct_init.c:40:17:40:36 | definition of ab indirection [post update] [a] | struct_init.c:40:13:40:14 | definition of ab indirection [a] | | struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:17:40:36 | definition of ab indirection [post update] [a] | @@ -840,17 +853,17 @@ nodes | A.cpp:31:20:31:20 | c | semmle.label | c | | A.cpp:41:5:41:6 | insert output argument | semmle.label | insert output argument | | A.cpp:41:15:41:21 | new | semmle.label | new | -| A.cpp:41:15:41:21 | new | semmle.label | new | | A.cpp:43:10:43:12 | & ... indirection | semmle.label | & ... indirection | +| A.cpp:43:10:43:12 | & ... indirection | semmle.label | ct indirection | +| A.cpp:43:10:43:12 | ct indirection | semmle.label | & ... indirection | +| A.cpp:43:10:43:12 | ct indirection | semmle.label | ct indirection | | A.cpp:47:12:47:18 | new | semmle.label | new | | A.cpp:48:12:48:18 | call to make indirection [c] | semmle.label | call to make indirection [c] | | A.cpp:48:20:48:20 | c | semmle.label | c | | A.cpp:49:10:49:10 | b indirection [c] | semmle.label | b indirection [c] | | A.cpp:49:10:49:13 | c | semmle.label | c | -| A.cpp:49:13:49:13 | c | semmle.label | c | | A.cpp:55:5:55:5 | set output argument [c] | semmle.label | set output argument [c] | | A.cpp:55:12:55:19 | new | semmle.label | new | -| A.cpp:55:12:55:19 | new | semmle.label | new | | A.cpp:56:10:56:10 | b indirection [c] | semmle.label | b indirection [c] | | A.cpp:56:10:56:17 | call to get | semmle.label | call to get | | A.cpp:57:10:57:32 | call to get | semmle.label | call to get | @@ -860,16 +873,12 @@ nodes | A.cpp:57:17:57:23 | new | semmle.label | new | | A.cpp:64:10:64:15 | call to setOnB indirection [c] | semmle.label | call to setOnB indirection [c] | | A.cpp:64:21:64:28 | new | semmle.label | new | -| A.cpp:64:21:64:28 | new | semmle.label | new | | A.cpp:66:10:66:11 | b2 indirection [c] | semmle.label | b2 indirection [c] | | A.cpp:66:10:66:14 | c | semmle.label | c | -| A.cpp:66:14:66:14 | c | semmle.label | c | | A.cpp:73:10:73:19 | call to setOnBWrap indirection [c] | semmle.label | call to setOnBWrap indirection [c] | | A.cpp:73:25:73:32 | new | semmle.label | new | -| A.cpp:73:25:73:32 | new | semmle.label | new | | A.cpp:75:10:75:11 | b2 indirection [c] | semmle.label | b2 indirection [c] | | A.cpp:75:10:75:14 | c | semmle.label | c | -| A.cpp:75:14:75:14 | c | semmle.label | c | | A.cpp:78:6:78:15 | setOnBWrap indirection [c] | semmle.label | setOnBWrap indirection [c] | | A.cpp:78:27:78:27 | c | semmle.label | c | | A.cpp:81:10:81:15 | call to setOnB indirection [c] | semmle.label | call to setOnB indirection [c] | @@ -885,17 +894,14 @@ nodes | A.cpp:103:14:103:14 | c indirection [a] | semmle.label | c indirection [a] | | A.cpp:107:12:107:13 | c1 indirection [a] | semmle.label | c1 indirection [a] | | A.cpp:107:12:107:16 | a | semmle.label | a | -| A.cpp:107:16:107:16 | a | semmle.label | a | | A.cpp:120:12:120:13 | c1 indirection [a] | semmle.label | c1 indirection [a] | | A.cpp:120:12:120:16 | a | semmle.label | a | -| A.cpp:120:16:120:16 | a | semmle.label | a | | A.cpp:126:5:126:5 | set output argument [c] | semmle.label | set output argument [c] | | A.cpp:126:12:126:18 | new | semmle.label | new | | A.cpp:126:12:126:18 | new | semmle.label | new | | A.cpp:131:8:131:8 | f7 output argument [c] | semmle.label | f7 output argument [c] | | A.cpp:132:10:132:10 | b indirection [c] | semmle.label | b indirection [c] | | A.cpp:132:10:132:13 | c | semmle.label | c | -| A.cpp:132:13:132:13 | c | semmle.label | c | | A.cpp:140:13:140:13 | b | semmle.label | b | | A.cpp:142:7:142:20 | ... = ... | semmle.label | ... = ... | | A.cpp:142:10:142:10 | b indirection [post update] [c] | semmle.label | b indirection [post update] [c] | @@ -914,14 +920,11 @@ nodes | A.cpp:151:18:151:18 | b | semmle.label | b | | A.cpp:152:10:152:10 | d indirection [b] | semmle.label | d indirection [b] | | A.cpp:152:10:152:13 | b | semmle.label | b | -| A.cpp:152:13:152:13 | b | semmle.label | b | | A.cpp:153:10:153:10 | d indirection [b indirection, c] | semmle.label | d indirection [b indirection, c] | | A.cpp:153:10:153:16 | c | semmle.label | c | | A.cpp:153:13:153:13 | b indirection [c] | semmle.label | b indirection [c] | -| A.cpp:153:16:153:16 | c | semmle.label | c | | A.cpp:154:10:154:10 | b indirection [c] | semmle.label | b indirection [c] | | A.cpp:154:10:154:13 | c | semmle.label | c | -| A.cpp:154:13:154:13 | c | semmle.label | c | | A.cpp:159:12:159:18 | new | semmle.label | new | | A.cpp:160:18:160:60 | call to MyList [head] | semmle.label | call to MyList [head] | | A.cpp:160:29:160:29 | b | semmle.label | b | @@ -933,14 +936,12 @@ nodes | A.cpp:165:10:165:29 | head | semmle.label | head | | A.cpp:165:14:165:17 | next indirection [next indirection, head] | semmle.label | next indirection [next indirection, head] | | A.cpp:165:20:165:23 | next indirection [head] | semmle.label | next indirection [head] | -| A.cpp:165:26:165:29 | head | semmle.label | head | | A.cpp:167:44:167:44 | l indirection [next indirection, head] | semmle.label | l indirection [next indirection, head] | | A.cpp:167:44:167:44 | l indirection [next indirection, next indirection, head] | semmle.label | l indirection [next indirection, next indirection, head] | | A.cpp:167:47:167:50 | next indirection [head] | semmle.label | next indirection [head] | | A.cpp:167:47:167:50 | next indirection [next indirection, head] | semmle.label | next indirection [next indirection, head] | | A.cpp:169:12:169:12 | l indirection [head] | semmle.label | l indirection [head] | | A.cpp:169:12:169:18 | head | semmle.label | head | -| A.cpp:169:15:169:18 | head | semmle.label | head | | A.cpp:181:15:181:21 | newHead | semmle.label | newHead | | A.cpp:181:32:181:35 | next indirection [head] | semmle.label | next indirection [head] | | A.cpp:181:32:181:35 | next indirection [next indirection, head] | semmle.label | next indirection [next indirection, head] | @@ -958,7 +959,6 @@ nodes | B.cpp:9:10:9:11 | b2 indirection [box1 indirection, elem1] | semmle.label | b2 indirection [box1 indirection, elem1] | | B.cpp:9:10:9:24 | elem1 | semmle.label | elem1 | | B.cpp:9:14:9:17 | box1 indirection [elem1] | semmle.label | box1 indirection [elem1] | -| B.cpp:9:20:9:24 | elem1 | semmle.label | elem1 | | B.cpp:15:15:15:27 | new | semmle.label | new | | B.cpp:16:16:16:38 | call to Box1 [elem2] | semmle.label | call to Box1 [elem2] | | B.cpp:16:37:16:37 | e | semmle.label | e | @@ -967,7 +967,6 @@ nodes | B.cpp:19:10:19:11 | b2 indirection [box1 indirection, elem2] | semmle.label | b2 indirection [box1 indirection, elem2] | | B.cpp:19:10:19:24 | elem2 | semmle.label | elem2 | | B.cpp:19:14:19:17 | box1 indirection [elem2] | semmle.label | box1 indirection [elem2] | -| B.cpp:19:20:19:24 | elem2 | semmle.label | elem2 | | B.cpp:33:16:33:17 | e1 | semmle.label | e1 | | B.cpp:33:26:33:27 | e2 | semmle.label | e2 | | B.cpp:35:7:35:22 | ... = ... | semmle.label | ... = ... | @@ -1042,7 +1041,6 @@ nodes | D.cpp:64:10:64:17 | this indirection [boxfield indirection, box indirection, elem] | semmle.label | this indirection [boxfield indirection, box indirection, elem] | | D.cpp:64:10:64:28 | elem | semmle.label | elem | | D.cpp:64:20:64:22 | box indirection [elem] | semmle.label | box indirection [elem] | -| D.cpp:64:25:64:28 | elem | semmle.label | elem | | E.cpp:19:27:19:27 | p indirection [data, buffer indirection] | semmle.label | p indirection [data, buffer indirection] | | E.cpp:21:10:21:10 | p indirection [data, buffer indirection] | semmle.label | p indirection [data, buffer indirection] | | E.cpp:21:13:21:16 | data indirection [buffer indirection] | semmle.label | data indirection [buffer indirection] | @@ -1059,6 +1057,9 @@ nodes | E.cpp:32:13:32:18 | buffer indirection | semmle.label | buffer indirection | | E.cpp:32:13:32:18 | buffer indirection | semmle.label | buffer indirection | | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | semmle.label | & ... indirection [data, buffer indirection] | +| E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | semmle.label | p indirection [data, buffer indirection] | +| E.cpp:33:18:33:19 | p indirection [data, buffer indirection] | semmle.label | & ... indirection [data, buffer indirection] | +| E.cpp:33:18:33:19 | p indirection [data, buffer indirection] | semmle.label | p indirection [data, buffer indirection] | | aliasing.cpp:9:3:9:22 | ... = ... | semmle.label | ... = ... | | aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:9:11:9:20 | call to user_input | semmle.label | call to user_input | @@ -1087,18 +1088,50 @@ nodes | aliasing.cpp:98:5:98:6 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:98:10:98:19 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:101:13:101:22 | & ... indirection | semmle.label | & ... indirection | +| aliasing.cpp:101:13:101:22 | & ... indirection | semmle.label | m1 indirection | +| aliasing.cpp:101:13:101:22 | m1 indirection | semmle.label | & ... indirection | +| aliasing.cpp:101:13:101:22 | m1 indirection | semmle.label | m1 indirection | | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | semmle.label | s_copy indirection [m1] | | aliasing.cpp:102:8:102:10 | * ... | semmle.label | * ... | +| aliasing.cpp:102:8:102:10 | * ... | semmle.label | px indirection | +| aliasing.cpp:102:8:102:10 | px indirection | semmle.label | * ... | +| aliasing.cpp:102:8:102:10 | px indirection | semmle.label | px indirection | | aliasing.cpp:105:23:105:24 | pa | semmle.label | pa | | aliasing.cpp:106:9:106:18 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:122:8:122:12 | access to array | semmle.label | access to array | | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:127:8:127:16 | * ... | semmle.label | * ... | +| aliasing.cpp:127:8:127:16 | * ... | semmle.label | ... - ... indirection | +| aliasing.cpp:127:8:127:16 | ... - ... indirection | semmle.label | * ... | +| aliasing.cpp:127:8:127:16 | ... - ... indirection | semmle.label | ... - ... indirection | | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | +| aliasing.cpp:132:8:132:14 | & ... indirection | semmle.label | & ... indirection | +| aliasing.cpp:132:8:132:14 | & ... indirection | semmle.label | * ... | +| aliasing.cpp:132:8:132:14 | & ... indirection | semmle.label | * ... indirection | +| aliasing.cpp:132:8:132:14 | & ... indirection | semmle.label | xs indirection | +| aliasing.cpp:132:8:132:14 | * ... | semmle.label | & ... indirection | | aliasing.cpp:132:8:132:14 | * ... | semmle.label | * ... | +| aliasing.cpp:132:8:132:14 | * ... | semmle.label | * ... indirection | +| aliasing.cpp:132:8:132:14 | * ... | semmle.label | xs indirection | +| aliasing.cpp:132:8:132:14 | * ... indirection | semmle.label | & ... indirection | +| aliasing.cpp:132:8:132:14 | * ... indirection | semmle.label | * ... | +| aliasing.cpp:132:8:132:14 | * ... indirection | semmle.label | * ... indirection | +| aliasing.cpp:132:8:132:14 | * ... indirection | semmle.label | xs indirection | +| aliasing.cpp:132:8:132:14 | xs indirection | semmle.label | & ... indirection | +| aliasing.cpp:132:8:132:14 | xs indirection | semmle.label | * ... | +| aliasing.cpp:132:8:132:14 | xs indirection | semmle.label | * ... indirection | +| aliasing.cpp:132:8:132:14 | xs indirection | semmle.label | xs indirection | | aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:137:8:137:11 | * ... | semmle.label | * ... | +| aliasing.cpp:137:8:137:11 | * ... | semmle.label | + ... indirection | +| aliasing.cpp:137:8:137:11 | * ... | semmle.label | xs indirection | +| aliasing.cpp:137:8:137:11 | + ... indirection | semmle.label | * ... | +| aliasing.cpp:137:8:137:11 | + ... indirection | semmle.label | + ... indirection | +| aliasing.cpp:137:8:137:11 | + ... indirection | semmle.label | xs indirection | +| aliasing.cpp:137:8:137:11 | xs indirection | semmle.label | * ... | +| aliasing.cpp:137:8:137:11 | xs indirection | semmle.label | + ... indirection | +| aliasing.cpp:137:8:137:11 | xs indirection | semmle.label | xs indirection | | aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | semmle.label | s indirection [post update] [data indirection] | | aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | semmle.label | s indirection [data indirection] | @@ -1107,6 +1140,9 @@ nodes | aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | semmle.label | s indirection [post update] [data] | | aliasing.cpp:159:8:159:14 | * ... | semmle.label | * ... | +| aliasing.cpp:159:8:159:14 | * ... | semmle.label | data indirection | +| aliasing.cpp:159:8:159:14 | data indirection | semmle.label | * ... | +| aliasing.cpp:159:8:159:14 | data indirection | semmle.label | data indirection | | aliasing.cpp:159:9:159:9 | s indirection [data] | semmle.label | s indirection [data] | | aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | semmle.label | s indirection [post update] [data] | @@ -1134,7 +1170,18 @@ nodes | arrays.cpp:7:8:7:13 | access to array | semmle.label | access to array | | arrays.cpp:8:8:8:13 | access to array | semmle.label | access to array | | arrays.cpp:9:8:9:11 | * ... | semmle.label | * ... | +| arrays.cpp:9:8:9:11 | * ... | semmle.label | arr indirection | +| arrays.cpp:9:8:9:11 | arr indirection | semmle.label | * ... | +| arrays.cpp:9:8:9:11 | arr indirection | semmle.label | arr indirection | +| arrays.cpp:10:8:10:15 | & ... indirection | semmle.label | & ... indirection | +| arrays.cpp:10:8:10:15 | & ... indirection | semmle.label | * ... | +| arrays.cpp:10:8:10:15 | & ... indirection | semmle.label | access to array indirection | +| arrays.cpp:10:8:10:15 | * ... | semmle.label | & ... indirection | | arrays.cpp:10:8:10:15 | * ... | semmle.label | * ... | +| arrays.cpp:10:8:10:15 | * ... | semmle.label | access to array indirection | +| arrays.cpp:10:8:10:15 | access to array indirection | semmle.label | & ... indirection | +| arrays.cpp:10:8:10:15 | access to array indirection | semmle.label | * ... | +| arrays.cpp:10:8:10:15 | access to array indirection | semmle.label | access to array indirection | | arrays.cpp:15:14:15:23 | call to user_input | semmle.label | call to user_input | | arrays.cpp:16:8:16:13 | access to array | semmle.label | access to array | | arrays.cpp:17:8:17:13 | access to array | semmle.label | access to array | @@ -1223,6 +1270,9 @@ nodes | by_reference.cpp:68:21:68:30 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | semmle.label | call to nonMemberGetA | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | semmle.label | & ... indirection [a] | +| by_reference.cpp:69:22:69:23 | & ... indirection [a] | semmle.label | s indirection [a] | +| by_reference.cpp:69:22:69:23 | s indirection [a] | semmle.label | & ... indirection [a] | +| by_reference.cpp:69:22:69:23 | s indirection [a] | semmle.label | s indirection [a] | | by_reference.cpp:84:3:84:25 | ... = ... | semmle.label | ... = ... | | by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | by_reference.cpp:84:14:84:23 | call to user_input | semmle.label | call to user_input | @@ -1294,6 +1344,9 @@ nodes | clearning.cpp:32:10:32:19 | call to user_input | semmle.label | call to user_input | | clearning.cpp:33:5:33:5 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:34:8:34:11 | * ... | semmle.label | * ... | +| clearning.cpp:34:8:34:11 | * ... | semmle.label | x indirection | +| clearning.cpp:34:8:34:11 | x indirection | semmle.label | * ... | +| clearning.cpp:34:8:34:11 | x indirection | semmle.label | x indirection | | clearning.cpp:34:9:34:9 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:53:3:53:25 | ... = ... | semmle.label | ... = ... | | clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | @@ -1320,6 +1373,9 @@ nodes | clearning.cpp:74:20:74:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:76:7:76:12 | * ... | semmle.label | * ... | +| clearning.cpp:76:7:76:12 | * ... | semmle.label | val indirection | +| clearning.cpp:76:7:76:12 | val indirection | semmle.label | * ... | +| clearning.cpp:76:7:76:12 | val indirection | semmle.label | val indirection | | clearning.cpp:76:8:76:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:81:20:81:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1329,6 +1385,9 @@ nodes | clearning.cpp:83:13:83:21 | ... + ... indirection | semmle.label | ... + ... indirection | | clearning.cpp:83:15:83:17 | val indirection | semmle.label | val indirection | | clearning.cpp:84:7:84:12 | * ... | semmle.label | * ... | +| clearning.cpp:84:7:84:12 | * ... | semmle.label | val indirection | +| clearning.cpp:84:7:84:12 | val indirection | semmle.label | * ... | +| clearning.cpp:84:7:84:12 | val indirection | semmle.label | val indirection | | clearning.cpp:84:8:84:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:89:20:89:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1338,6 +1397,9 @@ nodes | clearning.cpp:90:5:90:7 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:90:5:90:7 | val indirection | semmle.label | val indirection | | clearning.cpp:91:7:91:12 | * ... | semmle.label | * ... | +| clearning.cpp:91:7:91:12 | * ... | semmle.label | val indirection | +| clearning.cpp:91:7:91:12 | val indirection | semmle.label | * ... | +| clearning.cpp:91:7:91:12 | val indirection | semmle.label | val indirection | | clearning.cpp:91:8:91:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:96:20:96:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1347,6 +1409,9 @@ nodes | clearning.cpp:97:10:97:18 | ... + ... indirection | semmle.label | ... + ... indirection | | clearning.cpp:97:12:97:14 | val indirection | semmle.label | val indirection | | clearning.cpp:98:7:98:12 | * ... | semmle.label | * ... | +| clearning.cpp:98:7:98:12 | * ... | semmle.label | val indirection | +| clearning.cpp:98:7:98:12 | val indirection | semmle.label | * ... | +| clearning.cpp:98:7:98:12 | val indirection | semmle.label | val indirection | | clearning.cpp:98:8:98:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:103:20:103:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1356,6 +1421,9 @@ nodes | clearning.cpp:104:4:104:6 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:104:4:104:6 | val indirection | semmle.label | val indirection | | clearning.cpp:105:7:105:12 | * ... | semmle.label | * ... | +| clearning.cpp:105:7:105:12 | * ... | semmle.label | val indirection | +| clearning.cpp:105:7:105:12 | val indirection | semmle.label | * ... | +| clearning.cpp:105:7:105:12 | val indirection | semmle.label | val indirection | | clearning.cpp:105:8:105:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:110:20:110:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1365,6 +1433,9 @@ nodes | clearning.cpp:111:6:111:8 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:111:6:111:8 | val indirection | semmle.label | val indirection | | clearning.cpp:112:7:112:12 | * ... | semmle.label | * ... | +| clearning.cpp:112:7:112:12 | * ... | semmle.label | val indirection | +| clearning.cpp:112:7:112:12 | val indirection | semmle.label | * ... | +| clearning.cpp:112:7:112:12 | val indirection | semmle.label | val indirection | | clearning.cpp:112:8:112:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:117:20:117:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1374,6 +1445,9 @@ nodes | clearning.cpp:118:4:118:6 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:118:4:118:6 | val indirection | semmle.label | val indirection | | clearning.cpp:119:7:119:12 | * ... | semmle.label | * ... | +| clearning.cpp:119:7:119:12 | * ... | semmle.label | val indirection | +| clearning.cpp:119:7:119:12 | val indirection | semmle.label | * ... | +| clearning.cpp:119:7:119:12 | val indirection | semmle.label | val indirection | | clearning.cpp:119:8:119:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:151:3:151:22 | ... = ... | semmle.label | ... = ... | | clearning.cpp:151:5:151:7 | s indirection [post update] [val] | semmle.label | s indirection [post update] [val] | @@ -1436,10 +1510,12 @@ nodes | conflated.cpp:10:7:10:7 | ra indirection [post update] [p indirection] | semmle.label | ra indirection [post update] [p indirection] | | conflated.cpp:10:11:10:20 | call to user_input | semmle.label | call to user_input | | conflated.cpp:11:8:11:12 | * ... | semmle.label | * ... | +| conflated.cpp:11:8:11:12 | * ... | semmle.label | p indirection | +| conflated.cpp:11:8:11:12 | p indirection | semmle.label | * ... | +| conflated.cpp:11:8:11:12 | p indirection | semmle.label | p indirection | | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | semmle.label | ra indirection [p indirection] | | conflated.cpp:19:19:19:21 | argument_source output argument | semmle.label | argument_source output argument | | conflated.cpp:20:8:20:10 | raw indirection | semmle.label | raw indirection | -| conflated.cpp:20:8:20:10 | raw indirection | semmle.label | raw indirection | | conflated.cpp:29:3:29:22 | ... = ... | semmle.label | ... = ... | | conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | semmle.label | pa indirection [post update] [x] | | conflated.cpp:29:11:29:20 | call to user_input | semmle.label | call to user_input | @@ -1533,6 +1609,9 @@ nodes | qualifiers.cpp:42:5:42:40 | ... = ... | semmle.label | ... = ... | | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] | | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | semmle.label | * ... indirection [post update] [a] | +| qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | semmle.label | call to getInner indirection [post update] [a] | +| qualifiers.cpp:42:25:42:25 | call to getInner indirection [post update] [a] | semmle.label | * ... indirection [post update] [a] | +| qualifiers.cpp:42:25:42:25 | call to getInner indirection [post update] [a] | semmle.label | call to getInner indirection [post update] [a] | | qualifiers.cpp:42:29:42:38 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:43:16:43:20 | inner indirection [a] | semmle.label | inner indirection [a] | @@ -1550,13 +1629,11 @@ nodes | realistic.cpp:53:25:53:33 | baz indirection [post update] [userInput, bufferLen] | semmle.label | baz indirection [post update] [userInput, bufferLen] | | realistic.cpp:53:35:53:43 | userInput indirection [post update] [bufferLen] | semmle.label | userInput indirection [post update] [bufferLen] | | realistic.cpp:53:47:53:66 | call to user_input | semmle.label | call to user_input | -| realistic.cpp:53:55:53:64 | call to user_input | semmle.label | call to user_input | | realistic.cpp:61:14:61:55 | bufferLen | semmle.label | bufferLen | | realistic.cpp:61:21:61:23 | foo indirection [bar, baz indirection, userInput, bufferLen] | semmle.label | foo indirection [bar, baz indirection, userInput, bufferLen] | | realistic.cpp:61:21:61:30 | access to array indirection [baz indirection, userInput, bufferLen] | semmle.label | access to array indirection [baz indirection, userInput, bufferLen] | | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | semmle.label | baz indirection [userInput, bufferLen] | | realistic.cpp:61:37:61:45 | userInput indirection [bufferLen] | semmle.label | userInput indirection [bufferLen] | -| realistic.cpp:61:47:61:55 | bufferLen | semmle.label | bufferLen | | simple.cpp:18:9:18:9 | a indirection | semmle.label | a indirection | | simple.cpp:18:9:18:9 | this indirection [a_] | semmle.label | this indirection [a_] | | simple.cpp:18:22:18:23 | a_ | semmle.label | a_ | @@ -1620,6 +1697,9 @@ nodes | struct_init.c:22:8:22:9 | ab indirection [a] | semmle.label | ab indirection [a] | | struct_init.c:22:11:22:11 | a | semmle.label | a | | struct_init.c:24:10:24:12 | & ... indirection [a] | semmle.label | & ... indirection [a] | +| struct_init.c:24:10:24:12 | & ... indirection [a] | semmle.label | ab indirection [a] | +| struct_init.c:24:10:24:12 | ab indirection [a] | semmle.label | & ... indirection [a] | +| struct_init.c:24:10:24:12 | ab indirection [a] | semmle.label | ab indirection [a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | semmle.label | definition of outer indirection [nestedAB, a] | | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | semmle.label | definition of outer indirection [post update] [nestedAB, a] | | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | semmle.label | definition of outer indirection [post update] [nestedAB, a] | @@ -1635,6 +1715,9 @@ nodes | struct_init.c:33:14:33:22 | pointerAB indirection [a] | semmle.label | pointerAB indirection [a] | | struct_init.c:33:25:33:25 | a | semmle.label | a | | struct_init.c:36:10:36:24 | & ... indirection [a] | semmle.label | & ... indirection [a] | +| struct_init.c:36:10:36:24 | & ... indirection [a] | semmle.label | nestedAB indirection [a] | +| struct_init.c:36:10:36:24 | nestedAB indirection [a] | semmle.label | & ... indirection [a] | +| struct_init.c:36:10:36:24 | nestedAB indirection [a] | semmle.label | nestedAB indirection [a] | | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | semmle.label | outer indirection [nestedAB, a] | | struct_init.c:40:13:40:14 | definition of ab indirection [a] | semmle.label | definition of ab indirection [a] | | struct_init.c:40:17:40:36 | definition of ab indirection [post update] [a] | semmle.label | definition of ab indirection [post update] [a] | @@ -1680,6 +1763,7 @@ subpaths | by_reference.cpp:63:8:63:8 | s indirection [a] | by_reference.cpp:43:9:43:27 | this indirection [a] | by_reference.cpp:43:9:43:27 | getThroughNonMember indirection | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:8:12:8 | s indirection [post update] [a] | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | by_reference.cpp:31:16:31:28 | nonMemberGetA indirection | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | +| by_reference.cpp:69:22:69:23 | s indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | by_reference.cpp:31:16:31:28 | nonMemberGetA indirection | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | | complex.cpp:42:16:42:16 | f indirection [a_] | complex.cpp:9:7:9:7 | this indirection [a_] | complex.cpp:9:7:9:7 | a indirection | complex.cpp:42:18:42:18 | call to a | | complex.cpp:43:16:43:16 | f indirection [b_] | complex.cpp:10:7:10:7 | this indirection [b_] | complex.cpp:10:7:10:7 | b indirection | complex.cpp:43:18:43:18 | call to b | | complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:23 | this indirection [post update] [a_] | complex.cpp:53:12:53:12 | setA output argument [a_] | @@ -1704,42 +1788,29 @@ subpaths | simple.cpp:84:14:84:20 | this indirection [f2, f1] | simple.cpp:78:9:78:15 | this indirection [f2, f1] | simple.cpp:78:9:78:15 | getf2f1 indirection | simple.cpp:84:14:84:20 | call to getf2f1 | #select | A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:49:10:49:13 | c | A.cpp:47:12:47:18 | new | A.cpp:49:10:49:13 | c | c flows from $@ | A.cpp:47:12:47:18 | new | new | -| A.cpp:49:13:49:13 | c | A.cpp:47:12:47:18 | new | A.cpp:49:13:49:13 | c | c flows from $@ | A.cpp:47:12:47:18 | new | new | -| A.cpp:56:10:56:17 | call to get | A.cpp:55:12:55:19 | new | A.cpp:56:10:56:17 | call to get | call to get flows from $@ | A.cpp:55:12:55:19 | new | new | | A.cpp:56:10:56:17 | call to get | A.cpp:55:12:55:19 | new | A.cpp:56:10:56:17 | call to get | call to get flows from $@ | A.cpp:55:12:55:19 | new | new | | A.cpp:57:10:57:32 | call to get | A.cpp:57:17:57:23 | new | A.cpp:57:10:57:32 | call to get | call to get flows from $@ | A.cpp:57:17:57:23 | new | new | | A.cpp:66:10:66:14 | c | A.cpp:64:21:64:28 | new | A.cpp:66:10:66:14 | c | c flows from $@ | A.cpp:64:21:64:28 | new | new | -| A.cpp:66:10:66:14 | c | A.cpp:64:21:64:28 | new | A.cpp:66:10:66:14 | c | c flows from $@ | A.cpp:64:21:64:28 | new | new | -| A.cpp:66:14:66:14 | c | A.cpp:64:21:64:28 | new | A.cpp:66:14:66:14 | c | c flows from $@ | A.cpp:64:21:64:28 | new | new | -| A.cpp:66:14:66:14 | c | A.cpp:64:21:64:28 | new | A.cpp:66:14:66:14 | c | c flows from $@ | A.cpp:64:21:64:28 | new | new | | A.cpp:75:10:75:14 | c | A.cpp:73:25:73:32 | new | A.cpp:75:10:75:14 | c | c flows from $@ | A.cpp:73:25:73:32 | new | new | -| A.cpp:75:10:75:14 | c | A.cpp:73:25:73:32 | new | A.cpp:75:10:75:14 | c | c flows from $@ | A.cpp:73:25:73:32 | new | new | -| A.cpp:75:14:75:14 | c | A.cpp:73:25:73:32 | new | A.cpp:75:14:75:14 | c | c flows from $@ | A.cpp:73:25:73:32 | new | new | -| A.cpp:75:14:75:14 | c | A.cpp:73:25:73:32 | new | A.cpp:75:14:75:14 | c | c flows from $@ | A.cpp:73:25:73:32 | new | new | | A.cpp:107:12:107:16 | a | A.cpp:98:12:98:18 | new | A.cpp:107:12:107:16 | a | a flows from $@ | A.cpp:98:12:98:18 | new | new | -| A.cpp:107:16:107:16 | a | A.cpp:98:12:98:18 | new | A.cpp:107:16:107:16 | a | a flows from $@ | A.cpp:98:12:98:18 | new | new | | A.cpp:120:12:120:16 | a | A.cpp:98:12:98:18 | new | A.cpp:120:12:120:16 | a | a flows from $@ | A.cpp:98:12:98:18 | new | new | -| A.cpp:120:16:120:16 | a | A.cpp:98:12:98:18 | new | A.cpp:120:16:120:16 | a | a flows from $@ | A.cpp:98:12:98:18 | new | new | | A.cpp:132:10:132:13 | c | A.cpp:126:12:126:18 | new | A.cpp:132:10:132:13 | c | c flows from $@ | A.cpp:126:12:126:18 | new | new | -| A.cpp:132:13:132:13 | c | A.cpp:126:12:126:18 | new | A.cpp:132:13:132:13 | c | c flows from $@ | A.cpp:126:12:126:18 | new | new | | A.cpp:152:10:152:13 | b | A.cpp:143:25:143:31 | new | A.cpp:152:10:152:13 | b | b flows from $@ | A.cpp:143:25:143:31 | new | new | | A.cpp:152:10:152:13 | b | A.cpp:150:12:150:18 | new | A.cpp:152:10:152:13 | b | b flows from $@ | A.cpp:150:12:150:18 | new | new | -| A.cpp:152:13:152:13 | b | A.cpp:143:25:143:31 | new | A.cpp:152:13:152:13 | b | b flows from $@ | A.cpp:143:25:143:31 | new | new | -| A.cpp:152:13:152:13 | b | A.cpp:150:12:150:18 | new | A.cpp:152:13:152:13 | b | b flows from $@ | A.cpp:150:12:150:18 | new | new | | A.cpp:153:10:153:16 | c | A.cpp:142:14:142:20 | new | A.cpp:153:10:153:16 | c | c flows from $@ | A.cpp:142:14:142:20 | new | new | -| A.cpp:153:16:153:16 | c | A.cpp:142:14:142:20 | new | A.cpp:153:16:153:16 | c | c flows from $@ | A.cpp:142:14:142:20 | new | new | | A.cpp:154:10:154:13 | c | A.cpp:142:14:142:20 | new | A.cpp:154:10:154:13 | c | c flows from $@ | A.cpp:142:14:142:20 | new | new | -| A.cpp:154:13:154:13 | c | A.cpp:142:14:142:20 | new | A.cpp:154:13:154:13 | c | c flows from $@ | A.cpp:142:14:142:20 | new | new | | A.cpp:165:10:165:29 | head | A.cpp:159:12:159:18 | new | A.cpp:165:10:165:29 | head | head flows from $@ | A.cpp:159:12:159:18 | new | new | -| A.cpp:165:26:165:29 | head | A.cpp:159:12:159:18 | new | A.cpp:165:26:165:29 | head | head flows from $@ | A.cpp:159:12:159:18 | new | new | | A.cpp:169:12:169:18 | head | A.cpp:159:12:159:18 | new | A.cpp:169:12:169:18 | head | head flows from $@ | A.cpp:159:12:159:18 | new | new | -| A.cpp:169:15:169:18 | head | A.cpp:159:12:159:18 | new | A.cpp:169:15:169:18 | head | head flows from $@ | A.cpp:159:12:159:18 | new | new | | B.cpp:9:10:9:24 | elem1 | B.cpp:6:15:6:24 | new | B.cpp:9:10:9:24 | elem1 | elem1 flows from $@ | B.cpp:6:15:6:24 | new | new | -| B.cpp:9:20:9:24 | elem1 | B.cpp:6:15:6:24 | new | B.cpp:9:20:9:24 | elem1 | elem1 flows from $@ | B.cpp:6:15:6:24 | new | new | | B.cpp:19:10:19:24 | elem2 | B.cpp:15:15:15:27 | new | B.cpp:19:10:19:24 | elem2 | elem2 flows from $@ | B.cpp:15:15:15:27 | new | new | -| B.cpp:19:20:19:24 | elem2 | B.cpp:15:15:15:27 | new | B.cpp:19:20:19:24 | elem2 | elem2 flows from $@ | B.cpp:15:15:15:27 | new | new | | C.cpp:29:10:29:11 | s1 | C.cpp:22:12:22:21 | new | C.cpp:29:10:29:11 | s1 | s1 flows from $@ | C.cpp:22:12:22:21 | new | new | | C.cpp:31:10:31:11 | s3 | C.cpp:24:16:24:25 | new | C.cpp:31:10:31:11 | s3 | s3 flows from $@ | C.cpp:24:16:24:25 | new | new | | D.cpp:22:10:22:33 | call to getElem | D.cpp:28:15:28:24 | new | D.cpp:22:10:22:33 | call to getElem | call to getElem flows from $@ | D.cpp:28:15:28:24 | new | new | @@ -1747,7 +1818,6 @@ subpaths | D.cpp:22:10:22:33 | call to getElem | D.cpp:42:15:42:24 | new | D.cpp:22:10:22:33 | call to getElem | call to getElem flows from $@ | D.cpp:42:15:42:24 | new | new | | D.cpp:22:10:22:33 | call to getElem | D.cpp:49:15:49:24 | new | D.cpp:22:10:22:33 | call to getElem | call to getElem flows from $@ | D.cpp:49:15:49:24 | new | new | | D.cpp:64:10:64:28 | elem | D.cpp:56:15:56:24 | new | D.cpp:64:10:64:28 | elem | elem flows from $@ | D.cpp:56:15:56:24 | new | new | -| D.cpp:64:25:64:28 | elem | D.cpp:56:15:56:24 | new | D.cpp:64:25:64:28 | elem | elem flows from $@ | D.cpp:56:15:56:24 | new | new | | E.cpp:21:18:21:23 | buffer indirection | E.cpp:30:21:30:33 | argument_source output argument | E.cpp:21:18:21:23 | buffer indirection | buffer indirection flows from $@ | E.cpp:30:21:30:33 | argument_source output argument | argument_source output argument | | E.cpp:31:10:31:12 | raw indirection | E.cpp:28:21:28:23 | argument_source output argument | E.cpp:31:10:31:12 | raw indirection | raw indirection flows from $@ | E.cpp:28:21:28:23 | argument_source output argument | argument_source output argument | | E.cpp:32:13:32:18 | buffer indirection | E.cpp:29:21:29:29 | argument_source output argument | E.cpp:32:13:32:18 | buffer indirection | buffer indirection flows from $@ | E.cpp:29:21:29:29 | argument_source output argument | argument_source output argument | @@ -1756,12 +1826,122 @@ subpaths | aliasing.cpp:62:14:62:15 | m1 | aliasing.cpp:60:11:60:20 | call to user_input | aliasing.cpp:62:14:62:15 | m1 | m1 flows from $@ | aliasing.cpp:60:11:60:20 | call to user_input | call to user_input | | aliasing.cpp:93:12:93:13 | m1 | aliasing.cpp:92:12:92:21 | call to user_input | aliasing.cpp:93:12:93:13 | m1 | m1 flows from $@ | aliasing.cpp:92:12:92:21 | call to user_input | call to user_input | | aliasing.cpp:102:8:102:10 | * ... | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | * ... | * ... flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | +| aliasing.cpp:102:8:102:10 | * ... | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | * ... | px indirection flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | +| aliasing.cpp:102:8:102:10 | * ... | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | px indirection | * ... flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | +| aliasing.cpp:102:8:102:10 | * ... | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | px indirection | px indirection flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | +| aliasing.cpp:102:8:102:10 | px indirection | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | * ... | * ... flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | +| aliasing.cpp:102:8:102:10 | px indirection | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | * ... | px indirection flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | +| aliasing.cpp:102:8:102:10 | px indirection | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | px indirection | * ... flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | +| aliasing.cpp:102:8:102:10 | px indirection | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | px indirection | px indirection flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | | aliasing.cpp:122:8:122:12 | access to array | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:122:8:122:12 | access to array | access to array flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:127:8:127:16 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:127:8:127:16 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | * ... | ... - ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:127:8:127:16 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | ... - ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:127:8:127:16 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | ... - ... indirection | ... - ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:127:8:127:16 | ... - ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:127:8:127:16 | ... - ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | * ... | ... - ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:127:8:127:16 | ... - ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | ... - ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:127:8:127:16 | ... - ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | ... - ... indirection | ... - ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:143:8:143:16 | access to array | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:143:8:143:16 | access to array | access to array flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:159:8:159:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:159:8:159:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | * ... | data indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:159:8:159:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | data indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:159:8:159:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | data indirection | data indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:159:8:159:14 | data indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:159:8:159:14 | data indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | * ... | data indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:159:8:159:14 | data indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | data indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | +| aliasing.cpp:159:8:159:14 | data indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | data indirection | data indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:165:8:165:16 | access to array | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:165:8:165:16 | access to array | access to array flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:176:13:176:14 | m1 | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:176:13:176:14 | m1 | m1 flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:189:15:189:16 | m1 | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:189:15:189:16 | m1 | m1 flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | @@ -1769,7 +1949,40 @@ subpaths | arrays.cpp:7:8:7:13 | access to array | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:7:8:7:13 | access to array | access to array flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | | arrays.cpp:8:8:8:13 | access to array | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:8:8:8:13 | access to array | access to array flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | | arrays.cpp:9:8:9:11 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:9:8:9:11 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | arr indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:9:8:9:11 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | arr indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:9:8:9:11 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | arr indirection | arr indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:9:8:9:11 | arr indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:9:8:9:11 | arr indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | arr indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:9:8:9:11 | arr indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | arr indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:9:8:9:11 | arr indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | arr indirection | arr indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | | arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | +| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | | arrays.cpp:16:8:16:13 | access to array | arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:16:8:16:13 | access to array | access to array flows from $@ | arrays.cpp:15:14:15:23 | call to user_input | call to user_input | | arrays.cpp:17:8:17:13 | access to array | arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:17:8:17:13 | access to array | access to array flows from $@ | arrays.cpp:15:14:15:23 | call to user_input | call to user_input | | arrays.cpp:37:24:37:27 | data | arrays.cpp:36:26:36:35 | call to user_input | arrays.cpp:37:24:37:27 | data | data flows from $@ | arrays.cpp:36:26:36:35 | call to user_input | call to user_input | @@ -1795,22 +2008,84 @@ subpaths | by_reference.cpp:135:27:135:27 | a | by_reference.cpp:88:13:88:22 | call to user_input | by_reference.cpp:135:27:135:27 | a | a flows from $@ | by_reference.cpp:88:13:88:22 | call to user_input | call to user_input | | by_reference.cpp:136:16:136:16 | a | by_reference.cpp:96:8:96:17 | call to user_input | by_reference.cpp:136:16:136:16 | a | a flows from $@ | by_reference.cpp:96:8:96:17 | call to user_input | call to user_input | | clearning.cpp:34:8:34:11 | * ... | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | * ... | * ... flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | +| clearning.cpp:34:8:34:11 | * ... | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | * ... | x indirection flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | +| clearning.cpp:34:8:34:11 | * ... | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | x indirection | * ... flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | +| clearning.cpp:34:8:34:11 | * ... | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | x indirection | x indirection flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | +| clearning.cpp:34:8:34:11 | x indirection | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | * ... | * ... flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | +| clearning.cpp:34:8:34:11 | x indirection | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | * ... | x indirection flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | +| clearning.cpp:34:8:34:11 | x indirection | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | x indirection | * ... flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | +| clearning.cpp:34:8:34:11 | x indirection | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | x indirection | x indirection flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | | clearning.cpp:55:10:55:10 | x indirection | clearning.cpp:53:10:53:19 | call to user_input | clearning.cpp:55:10:55:10 | x indirection | x indirection flows from $@ | clearning.cpp:53:10:53:19 | call to user_input | call to user_input | | clearning.cpp:62:10:62:10 | x indirection | clearning.cpp:60:11:60:20 | call to user_input | clearning.cpp:62:10:62:10 | x indirection | x indirection flows from $@ | clearning.cpp:60:11:60:20 | call to user_input | call to user_input | | clearning.cpp:76:7:76:12 | * ... | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | * ... | * ... flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:76:7:76:12 | * ... | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | * ... | val indirection flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:76:7:76:12 | * ... | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | val indirection | * ... flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:76:7:76:12 | * ... | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | val indirection | val indirection flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:76:7:76:12 | val indirection | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | * ... | * ... flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:76:7:76:12 | val indirection | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | * ... | val indirection flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:76:7:76:12 | val indirection | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | val indirection | * ... flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:76:7:76:12 | val indirection | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | val indirection | val indirection flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | | clearning.cpp:84:7:84:12 | * ... | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | * ... | * ... flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:84:7:84:12 | * ... | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | * ... | val indirection flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:84:7:84:12 | * ... | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | val indirection | * ... flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:84:7:84:12 | * ... | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | val indirection | val indirection flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:84:7:84:12 | val indirection | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | * ... | * ... flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:84:7:84:12 | val indirection | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | * ... | val indirection flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:84:7:84:12 | val indirection | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | val indirection | * ... flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:84:7:84:12 | val indirection | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | val indirection | val indirection flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | | clearning.cpp:91:7:91:12 | * ... | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | * ... | * ... flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:91:7:91:12 | * ... | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | * ... | val indirection flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:91:7:91:12 | * ... | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | val indirection | * ... flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:91:7:91:12 | * ... | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | val indirection | val indirection flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:91:7:91:12 | val indirection | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | * ... | * ... flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:91:7:91:12 | val indirection | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | * ... | val indirection flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:91:7:91:12 | val indirection | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | val indirection | * ... flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:91:7:91:12 | val indirection | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | val indirection | val indirection flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | | clearning.cpp:98:7:98:12 | * ... | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | * ... | * ... flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:98:7:98:12 | * ... | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | * ... | val indirection flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:98:7:98:12 | * ... | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | val indirection | * ... flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:98:7:98:12 | * ... | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | val indirection | val indirection flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:98:7:98:12 | val indirection | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | * ... | * ... flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:98:7:98:12 | val indirection | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | * ... | val indirection flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:98:7:98:12 | val indirection | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | val indirection | * ... flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:98:7:98:12 | val indirection | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | val indirection | val indirection flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | | clearning.cpp:105:7:105:12 | * ... | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | * ... | * ... flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:105:7:105:12 | * ... | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | * ... | val indirection flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:105:7:105:12 | * ... | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | val indirection | * ... flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:105:7:105:12 | * ... | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | val indirection | val indirection flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:105:7:105:12 | val indirection | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | * ... | * ... flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:105:7:105:12 | val indirection | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | * ... | val indirection flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:105:7:105:12 | val indirection | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | val indirection | * ... flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:105:7:105:12 | val indirection | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | val indirection | val indirection flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | | clearning.cpp:112:7:112:12 | * ... | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | * ... | * ... flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:112:7:112:12 | * ... | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | * ... | val indirection flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:112:7:112:12 | * ... | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | val indirection | * ... flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:112:7:112:12 | * ... | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | val indirection | val indirection flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:112:7:112:12 | val indirection | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | * ... | * ... flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:112:7:112:12 | val indirection | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | * ... | val indirection flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:112:7:112:12 | val indirection | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | val indirection | * ... flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:112:7:112:12 | val indirection | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | val indirection | val indirection flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | | clearning.cpp:119:7:119:12 | * ... | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | * ... | * ... flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:119:7:119:12 | * ... | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | * ... | val indirection flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:119:7:119:12 | * ... | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | val indirection | * ... flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:119:7:119:12 | * ... | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | val indirection | val indirection flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:119:7:119:12 | val indirection | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | * ... | * ... flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:119:7:119:12 | val indirection | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | * ... | val indirection flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:119:7:119:12 | val indirection | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | val indirection | * ... flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | +| clearning.cpp:119:7:119:12 | val indirection | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | val indirection | val indirection flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | | clearning.cpp:152:10:152:12 | val | clearning.cpp:151:11:151:20 | call to user_input | clearning.cpp:152:10:152:12 | val | val flows from $@ | clearning.cpp:151:11:151:20 | call to user_input | call to user_input | | complex.cpp:42:18:42:18 | call to a | complex.cpp:53:19:53:28 | call to user_input | complex.cpp:42:18:42:18 | call to a | call to a flows from $@ | complex.cpp:53:19:53:28 | call to user_input | call to user_input | | complex.cpp:42:18:42:18 | call to a | complex.cpp:55:19:55:28 | call to user_input | complex.cpp:42:18:42:18 | call to a | call to a flows from $@ | complex.cpp:55:19:55:28 | call to user_input | call to user_input | | complex.cpp:43:18:43:18 | call to b | complex.cpp:54:19:54:28 | call to user_input | complex.cpp:43:18:43:18 | call to b | call to b flows from $@ | complex.cpp:54:19:54:28 | call to user_input | call to user_input | | complex.cpp:43:18:43:18 | call to b | complex.cpp:56:19:56:28 | call to user_input | complex.cpp:43:18:43:18 | call to b | call to b flows from $@ | complex.cpp:56:19:56:28 | call to user_input | call to user_input | | conflated.cpp:11:8:11:12 | * ... | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | * ... | * ... flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | -| conflated.cpp:20:8:20:10 | raw indirection | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | raw indirection flows from $@ | conflated.cpp:19:19:19:21 | argument_source output argument | argument_source output argument | +| conflated.cpp:11:8:11:12 | * ... | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | * ... | p indirection flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | +| conflated.cpp:11:8:11:12 | * ... | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | p indirection | * ... flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | +| conflated.cpp:11:8:11:12 | * ... | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | p indirection | p indirection flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | +| conflated.cpp:11:8:11:12 | p indirection | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | * ... | * ... flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | +| conflated.cpp:11:8:11:12 | p indirection | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | * ... | p indirection flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | +| conflated.cpp:11:8:11:12 | p indirection | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | p indirection | * ... flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | +| conflated.cpp:11:8:11:12 | p indirection | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | p indirection | p indirection flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | | conflated.cpp:20:8:20:10 | raw indirection | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | raw indirection flows from $@ | conflated.cpp:19:19:19:21 | argument_source output argument | argument_source output argument | | conflated.cpp:30:12:30:12 | x | conflated.cpp:29:11:29:20 | call to user_input | conflated.cpp:30:12:30:12 | x | x flows from $@ | conflated.cpp:29:11:29:20 | call to user_input | call to user_input | | conflated.cpp:37:12:37:12 | x | conflated.cpp:36:11:36:20 | call to user_input | conflated.cpp:37:12:37:12 | x | x flows from $@ | conflated.cpp:36:11:36:20 | call to user_input | call to user_input | @@ -1827,9 +2102,6 @@ subpaths | qualifiers.cpp:43:23:43:23 | a | qualifiers.cpp:42:29:42:38 | call to user_input | qualifiers.cpp:43:23:43:23 | a | a flows from $@ | qualifiers.cpp:42:29:42:38 | call to user_input | call to user_input | | qualifiers.cpp:48:23:48:23 | a | qualifiers.cpp:47:31:47:40 | call to user_input | qualifiers.cpp:48:23:48:23 | a | a flows from $@ | qualifiers.cpp:47:31:47:40 | call to user_input | call to user_input | | realistic.cpp:61:14:61:55 | bufferLen | realistic.cpp:53:47:53:66 | call to user_input | realistic.cpp:61:14:61:55 | bufferLen | bufferLen flows from $@ | realistic.cpp:53:47:53:66 | call to user_input | call to user_input | -| realistic.cpp:61:14:61:55 | bufferLen | realistic.cpp:53:55:53:64 | call to user_input | realistic.cpp:61:14:61:55 | bufferLen | bufferLen flows from $@ | realistic.cpp:53:55:53:64 | call to user_input | call to user_input | -| realistic.cpp:61:47:61:55 | bufferLen | realistic.cpp:53:47:53:66 | call to user_input | realistic.cpp:61:47:61:55 | bufferLen | bufferLen flows from $@ | realistic.cpp:53:47:53:66 | call to user_input | call to user_input | -| realistic.cpp:61:47:61:55 | bufferLen | realistic.cpp:53:55:53:64 | call to user_input | realistic.cpp:61:47:61:55 | bufferLen | bufferLen flows from $@ | realistic.cpp:53:55:53:64 | call to user_input | call to user_input | | simple.cpp:28:12:28:12 | call to a | simple.cpp:39:12:39:21 | call to user_input | simple.cpp:28:12:28:12 | call to a | call to a flows from $@ | simple.cpp:39:12:39:21 | call to user_input | call to user_input | | simple.cpp:28:12:28:12 | call to a | simple.cpp:41:12:41:21 | call to user_input | simple.cpp:28:12:28:12 | call to a | call to a flows from $@ | simple.cpp:41:12:41:21 | call to user_input | call to user_input | | simple.cpp:29:12:29:12 | call to b | simple.cpp:40:12:40:21 | call to user_input | simple.cpp:29:12:29:12 | call to b | call to b flows from $@ | simple.cpp:40:12:40:21 | call to user_input | call to user_input | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected index 0065ae75d21..c5f6133af0f 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected @@ -4,4 +4,8 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (taint WARNING: Module DataFlow has been deprecated and may be removed in future (taint.ql:68,25-33) WARNING: Module TaintTracking has been deprecated and may be removed in future (taint.ql:73,20-33) testFailures +| map.cpp:172:20:172:30 | // $ ast,ir | Missing result:ir= | +| map.cpp:174:20:174:30 | // $ ast,ir | Missing result:ir= | +| map.cpp:324:20:324:30 | // $ ast,ir | Missing result:ir= | +| map.cpp:326:20:326:30 | // $ ast,ir | Missing result:ir= | failures diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected index cfe71545293..e40d2d5d65f 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected @@ -1,72 +1,51 @@ edges | test_free.cpp:11:10:11:10 | a | test_free.cpp:14:10:14:10 | a | -| test_free.cpp:11:10:11:10 | a | test_free.cpp:14:10:14:10 | a | -| test_free.cpp:11:10:11:10 | a | test_free.cpp:14:10:14:10 | a | -| test_free.cpp:11:10:11:10 | a | test_free.cpp:14:10:14:10 | a | | test_free.cpp:30:10:30:10 | a | test_free.cpp:31:27:31:27 | a | | test_free.cpp:35:10:35:10 | a | test_free.cpp:37:27:37:27 | a | | test_free.cpp:42:27:42:27 | a | test_free.cpp:46:10:46:10 | a | -| test_free.cpp:42:27:42:27 | a | test_free.cpp:46:10:46:10 | a | -| test_free.cpp:42:27:42:27 | a | test_free.cpp:46:10:46:10 | a | -| test_free.cpp:42:27:42:27 | a | test_free.cpp:46:10:46:10 | a | -| test_free.cpp:44:27:44:27 | a | test_free.cpp:46:10:46:10 | a | -| test_free.cpp:44:27:44:27 | a | test_free.cpp:46:10:46:10 | a | -| test_free.cpp:44:27:44:27 | a | test_free.cpp:46:10:46:10 | a | | test_free.cpp:44:27:44:27 | a | test_free.cpp:46:10:46:10 | a | | test_free.cpp:50:27:50:27 | a | test_free.cpp:51:10:51:10 | a | | test_free.cpp:69:10:69:10 | a | test_free.cpp:72:14:72:14 | a | -| test_free.cpp:69:10:69:10 | a | test_free.cpp:72:14:72:14 | a | -| test_free.cpp:69:10:69:10 | a | test_free.cpp:72:14:72:14 | a | -| test_free.cpp:69:10:69:10 | a | test_free.cpp:72:14:72:14 | a | | test_free.cpp:83:12:83:12 | a | test_free.cpp:85:12:85:12 | a | | test_free.cpp:101:10:101:10 | a | test_free.cpp:103:10:103:10 | a | | test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | * ... | +| test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | a indirection | +| test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | * ... | +| test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | a indirection | | test_free.cpp:152:27:152:27 | a | test_free.cpp:154:10:154:10 | a | -| test_free.cpp:152:27:152:27 | a | test_free.cpp:154:10:154:10 | a | -| test_free.cpp:152:27:152:27 | a | test_free.cpp:154:10:154:10 | a | -| test_free.cpp:152:27:152:27 | a | test_free.cpp:154:10:154:10 | a | -| test_free.cpp:207:10:207:10 | a | test_free.cpp:209:10:209:10 | a | -| test_free.cpp:207:10:207:10 | a | test_free.cpp:209:10:209:10 | a | -| test_free.cpp:207:10:207:10 | a | test_free.cpp:209:10:209:10 | a | | test_free.cpp:207:10:207:10 | a | test_free.cpp:209:10:209:10 | a | | test_free.cpp:252:7:252:7 | p | test_free.cpp:255:10:255:10 | p | | test_free.cpp:260:9:260:9 | p | test_free.cpp:263:12:263:12 | p | nodes | test_free.cpp:11:10:11:10 | a | semmle.label | a | -| test_free.cpp:11:10:11:10 | a | semmle.label | a | -| test_free.cpp:14:10:14:10 | a | semmle.label | a | | test_free.cpp:14:10:14:10 | a | semmle.label | a | | test_free.cpp:30:10:30:10 | a | semmle.label | a | | test_free.cpp:31:27:31:27 | a | semmle.label | a | | test_free.cpp:35:10:35:10 | a | semmle.label | a | | test_free.cpp:37:27:37:27 | a | semmle.label | a | | test_free.cpp:42:27:42:27 | a | semmle.label | a | -| test_free.cpp:42:27:42:27 | a | semmle.label | a | | test_free.cpp:44:27:44:27 | a | semmle.label | a | -| test_free.cpp:44:27:44:27 | a | semmle.label | a | -| test_free.cpp:46:10:46:10 | a | semmle.label | a | -| test_free.cpp:46:10:46:10 | a | semmle.label | a | | test_free.cpp:46:10:46:10 | a | semmle.label | a | | test_free.cpp:46:10:46:10 | a | semmle.label | a | | test_free.cpp:50:27:50:27 | a | semmle.label | a | | test_free.cpp:51:10:51:10 | a | semmle.label | a | | test_free.cpp:69:10:69:10 | a | semmle.label | a | -| test_free.cpp:69:10:69:10 | a | semmle.label | a | -| test_free.cpp:72:14:72:14 | a | semmle.label | a | | test_free.cpp:72:14:72:14 | a | semmle.label | a | | test_free.cpp:83:12:83:12 | a | semmle.label | a | | test_free.cpp:85:12:85:12 | a | semmle.label | a | | test_free.cpp:101:10:101:10 | a | semmle.label | a | | test_free.cpp:103:10:103:10 | a | semmle.label | a | | test_free.cpp:128:10:128:11 | * ... | semmle.label | * ... | +| test_free.cpp:128:10:128:11 | * ... | semmle.label | a indirection | +| test_free.cpp:128:10:128:11 | a indirection | semmle.label | * ... | +| test_free.cpp:128:10:128:11 | a indirection | semmle.label | a indirection | | test_free.cpp:129:10:129:11 | * ... | semmle.label | * ... | -| test_free.cpp:152:27:152:27 | a | semmle.label | a | +| test_free.cpp:129:10:129:11 | * ... | semmle.label | a indirection | +| test_free.cpp:129:10:129:11 | a indirection | semmle.label | * ... | +| test_free.cpp:129:10:129:11 | a indirection | semmle.label | a indirection | | test_free.cpp:152:27:152:27 | a | semmle.label | a | | test_free.cpp:154:10:154:10 | a | semmle.label | a | -| test_free.cpp:154:10:154:10 | a | semmle.label | a | | test_free.cpp:207:10:207:10 | a | semmle.label | a | -| test_free.cpp:207:10:207:10 | a | semmle.label | a | -| test_free.cpp:209:10:209:10 | a | semmle.label | a | | test_free.cpp:209:10:209:10 | a | semmle.label | a | | test_free.cpp:252:7:252:7 | p | semmle.label | p | | test_free.cpp:255:10:255:10 | p | semmle.label | p | @@ -75,34 +54,23 @@ nodes subpaths #select | test_free.cpp:14:10:14:10 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:14:10:14:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | -| test_free.cpp:14:10:14:10 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:14:10:14:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | -| test_free.cpp:14:10:14:10 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:14:10:14:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | -| test_free.cpp:14:10:14:10 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:14:10:14:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | | test_free.cpp:31:27:31:27 | a | test_free.cpp:30:10:30:10 | a | test_free.cpp:31:27:31:27 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:30:5:30:8 | call to free | call to free | | test_free.cpp:37:27:37:27 | a | test_free.cpp:35:10:35:10 | a | test_free.cpp:37:27:37:27 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:35:5:35:8 | call to free | call to free | | test_free.cpp:46:10:46:10 | a | test_free.cpp:42:27:42:27 | a | test_free.cpp:46:10:46:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:42:22:42:25 | call to free | call to free | -| test_free.cpp:46:10:46:10 | a | test_free.cpp:42:27:42:27 | a | test_free.cpp:46:10:46:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:42:22:42:25 | call to free | call to free | -| test_free.cpp:46:10:46:10 | a | test_free.cpp:42:27:42:27 | a | test_free.cpp:46:10:46:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:42:22:42:25 | call to free | call to free | -| test_free.cpp:46:10:46:10 | a | test_free.cpp:42:27:42:27 | a | test_free.cpp:46:10:46:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:42:22:42:25 | call to free | call to free | -| test_free.cpp:46:10:46:10 | a | test_free.cpp:44:27:44:27 | a | test_free.cpp:46:10:46:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:44:22:44:25 | call to free | call to free | -| test_free.cpp:46:10:46:10 | a | test_free.cpp:44:27:44:27 | a | test_free.cpp:46:10:46:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:44:22:44:25 | call to free | call to free | -| test_free.cpp:46:10:46:10 | a | test_free.cpp:44:27:44:27 | a | test_free.cpp:46:10:46:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:44:22:44:25 | call to free | call to free | | test_free.cpp:46:10:46:10 | a | test_free.cpp:44:27:44:27 | a | test_free.cpp:46:10:46:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:44:22:44:25 | call to free | call to free | | test_free.cpp:51:10:51:10 | a | test_free.cpp:50:27:50:27 | a | test_free.cpp:51:10:51:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:50:22:50:25 | call to free | call to free | | test_free.cpp:72:14:72:14 | a | test_free.cpp:69:10:69:10 | a | test_free.cpp:72:14:72:14 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:69:5:69:8 | call to free | call to free | -| test_free.cpp:72:14:72:14 | a | test_free.cpp:69:10:69:10 | a | test_free.cpp:72:14:72:14 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:69:5:69:8 | call to free | call to free | -| test_free.cpp:72:14:72:14 | a | test_free.cpp:69:10:69:10 | a | test_free.cpp:72:14:72:14 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:69:5:69:8 | call to free | call to free | -| test_free.cpp:72:14:72:14 | a | test_free.cpp:69:10:69:10 | a | test_free.cpp:72:14:72:14 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:69:5:69:8 | call to free | call to free | | test_free.cpp:85:12:85:12 | a | test_free.cpp:83:12:83:12 | a | test_free.cpp:85:12:85:12 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:83:5:83:13 | delete | delete | | test_free.cpp:103:10:103:10 | a | test_free.cpp:101:10:101:10 | a | test_free.cpp:103:10:103:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:101:5:101:8 | call to free | call to free | | test_free.cpp:129:10:129:11 | * ... | test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | * ... | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | +| test_free.cpp:129:10:129:11 | * ... | test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | a indirection | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | +| test_free.cpp:129:10:129:11 | * ... | test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | * ... | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | +| test_free.cpp:129:10:129:11 | * ... | test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | a indirection | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | +| test_free.cpp:129:10:129:11 | a indirection | test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | * ... | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | +| test_free.cpp:129:10:129:11 | a indirection | test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | a indirection | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | +| test_free.cpp:129:10:129:11 | a indirection | test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | * ... | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | +| test_free.cpp:129:10:129:11 | a indirection | test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | a indirection | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | | test_free.cpp:154:10:154:10 | a | test_free.cpp:152:27:152:27 | a | test_free.cpp:154:10:154:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:152:22:152:25 | call to free | call to free | -| test_free.cpp:154:10:154:10 | a | test_free.cpp:152:27:152:27 | a | test_free.cpp:154:10:154:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:152:22:152:25 | call to free | call to free | -| test_free.cpp:154:10:154:10 | a | test_free.cpp:152:27:152:27 | a | test_free.cpp:154:10:154:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:152:22:152:25 | call to free | call to free | -| test_free.cpp:154:10:154:10 | a | test_free.cpp:152:27:152:27 | a | test_free.cpp:154:10:154:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:152:22:152:25 | call to free | call to free | -| test_free.cpp:209:10:209:10 | a | test_free.cpp:207:10:207:10 | a | test_free.cpp:209:10:209:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:207:5:207:8 | call to free | call to free | -| test_free.cpp:209:10:209:10 | a | test_free.cpp:207:10:207:10 | a | test_free.cpp:209:10:209:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:207:5:207:8 | call to free | call to free | -| test_free.cpp:209:10:209:10 | a | test_free.cpp:207:10:207:10 | a | test_free.cpp:209:10:209:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:207:5:207:8 | call to free | call to free | | test_free.cpp:209:10:209:10 | a | test_free.cpp:207:10:207:10 | a | test_free.cpp:209:10:209:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:207:5:207:8 | call to free | call to free | | test_free.cpp:255:10:255:10 | p | test_free.cpp:252:7:252:7 | p | test_free.cpp:255:10:255:10 | p | Memory pointed to by 'p' may already have been freed by $@. | test_free.cpp:252:2:252:5 | call to free | call to free | | test_free.cpp:263:12:263:12 | p | test_free.cpp:260:9:260:9 | p | test_free.cpp:263:12:263:12 | p | Memory pointed to by 'p' may already have been freed by $@. | test_free.cpp:260:2:260:9 | delete | delete | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected index 6b125a106af..fe6eb62dafb 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected @@ -1,72 +1,48 @@ edges | test_free.cpp:11:10:11:10 | a | test_free.cpp:12:5:12:5 | a | -| test_free.cpp:11:10:11:10 | a | test_free.cpp:12:5:12:5 | a | -| test_free.cpp:11:10:11:10 | a | test_free.cpp:13:6:13:6 | a | -| test_free.cpp:11:10:11:10 | a | test_free.cpp:13:6:13:6 | a | -| test_free.cpp:42:27:42:27 | a | test_free.cpp:45:5:45:5 | a | +| test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | * ... | +| test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | a | | test_free.cpp:42:27:42:27 | a | test_free.cpp:45:5:45:5 | a | | test_free.cpp:44:27:44:27 | a | test_free.cpp:45:5:45:5 | a | -| test_free.cpp:44:27:44:27 | a | test_free.cpp:45:5:45:5 | a | -| test_free.cpp:69:10:69:10 | a | test_free.cpp:71:9:71:9 | a | | test_free.cpp:69:10:69:10 | a | test_free.cpp:71:9:71:9 | a | | test_free.cpp:83:12:83:12 | a | test_free.cpp:84:5:84:5 | a | | test_free.cpp:90:10:90:10 | a | test_free.cpp:91:5:91:5 | a | -| test_free.cpp:90:10:90:10 | a | test_free.cpp:91:5:91:5 | a | | test_free.cpp:95:10:95:10 | a | test_free.cpp:96:9:96:9 | a | | test_free.cpp:101:10:101:10 | a | test_free.cpp:102:23:102:23 | a | | test_free.cpp:152:27:152:27 | a | test_free.cpp:153:5:153:5 | a | -| test_free.cpp:152:27:152:27 | a | test_free.cpp:153:5:153:5 | a | -| test_free.cpp:233:14:233:15 | * ... | test_free.cpp:236:9:236:10 | * ... | -| test_free.cpp:233:14:233:15 | * ... | test_free.cpp:236:9:236:10 | * ... | -| test_free.cpp:233:14:233:15 | * ... | test_free.cpp:236:9:236:10 | * ... | | test_free.cpp:233:14:233:15 | * ... | test_free.cpp:236:9:236:10 | * ... | | test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | -| test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | -| test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | -| test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | -| test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | -| test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | -| test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | | test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | | test_free.cpp:252:7:252:7 | p | test_free.cpp:254:6:254:6 | p | | test_free.cpp:260:9:260:9 | p | test_free.cpp:262:6:262:6 | p | nodes | test_free.cpp:11:10:11:10 | a | semmle.label | a | -| test_free.cpp:11:10:11:10 | a | semmle.label | a | | test_free.cpp:12:5:12:5 | a | semmle.label | a | -| test_free.cpp:13:6:13:6 | a | semmle.label | a | +| test_free.cpp:13:5:13:6 | * ... | semmle.label | * ... | +| test_free.cpp:13:5:13:6 | * ... | semmle.label | a | +| test_free.cpp:13:5:13:6 | a | semmle.label | * ... | +| test_free.cpp:13:5:13:6 | a | semmle.label | a | | test_free.cpp:42:27:42:27 | a | semmle.label | a | -| test_free.cpp:42:27:42:27 | a | semmle.label | a | -| test_free.cpp:44:27:44:27 | a | semmle.label | a | | test_free.cpp:44:27:44:27 | a | semmle.label | a | | test_free.cpp:45:5:45:5 | a | semmle.label | a | | test_free.cpp:45:5:45:5 | a | semmle.label | a | | test_free.cpp:69:10:69:10 | a | semmle.label | a | -| test_free.cpp:69:10:69:10 | a | semmle.label | a | | test_free.cpp:71:9:71:9 | a | semmle.label | a | | test_free.cpp:83:12:83:12 | a | semmle.label | a | | test_free.cpp:84:5:84:5 | a | semmle.label | a | | test_free.cpp:90:10:90:10 | a | semmle.label | a | -| test_free.cpp:90:10:90:10 | a | semmle.label | a | | test_free.cpp:91:5:91:5 | a | semmle.label | a | | test_free.cpp:95:10:95:10 | a | semmle.label | a | | test_free.cpp:96:9:96:9 | a | semmle.label | a | | test_free.cpp:101:10:101:10 | a | semmle.label | a | | test_free.cpp:102:23:102:23 | a | semmle.label | a | | test_free.cpp:152:27:152:27 | a | semmle.label | a | -| test_free.cpp:152:27:152:27 | a | semmle.label | a | | test_free.cpp:153:5:153:5 | a | semmle.label | a | | test_free.cpp:233:14:233:15 | * ... | semmle.label | * ... | -| test_free.cpp:233:14:233:15 | * ... | semmle.label | * ... | -| test_free.cpp:236:9:236:10 | * ... | semmle.label | * ... | | test_free.cpp:236:9:236:10 | * ... | semmle.label | * ... | | test_free.cpp:239:14:239:15 | * ... | semmle.label | * ... | -| test_free.cpp:239:14:239:15 | * ... | semmle.label | * ... | -| test_free.cpp:241:9:241:10 | * ... | semmle.label | * ... | | test_free.cpp:241:9:241:10 | * ... | semmle.label | * ... | | test_free.cpp:245:10:245:11 | * ... | semmle.label | * ... | -| test_free.cpp:245:10:245:11 | * ... | semmle.label | * ... | -| test_free.cpp:246:9:246:10 | * ... | semmle.label | * ... | | test_free.cpp:246:9:246:10 | * ... | semmle.label | * ... | | test_free.cpp:252:7:252:7 | p | semmle.label | p | | test_free.cpp:254:6:254:6 | p | semmle.label | p | @@ -75,33 +51,20 @@ nodes subpaths #select | test_free.cpp:12:5:12:5 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:12:5:12:5 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | -| test_free.cpp:12:5:12:5 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:12:5:12:5 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | -| test_free.cpp:13:6:13:6 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:6:13:6 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | -| test_free.cpp:13:6:13:6 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:6:13:6 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | -| test_free.cpp:45:5:45:5 | a | test_free.cpp:42:27:42:27 | a | test_free.cpp:45:5:45:5 | a | Memory may have been previously freed by $@. | test_free.cpp:42:22:42:25 | call to free | call to free | +| test_free.cpp:13:5:13:6 | * ... | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | * ... | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | +| test_free.cpp:13:5:13:6 | * ... | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | +| test_free.cpp:13:5:13:6 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | * ... | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | +| test_free.cpp:13:5:13:6 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | | test_free.cpp:45:5:45:5 | a | test_free.cpp:42:27:42:27 | a | test_free.cpp:45:5:45:5 | a | Memory may have been previously freed by $@. | test_free.cpp:42:22:42:25 | call to free | call to free | | test_free.cpp:45:5:45:5 | a | test_free.cpp:44:27:44:27 | a | test_free.cpp:45:5:45:5 | a | Memory may have been previously freed by $@. | test_free.cpp:44:22:44:25 | call to free | call to free | -| test_free.cpp:45:5:45:5 | a | test_free.cpp:44:27:44:27 | a | test_free.cpp:45:5:45:5 | a | Memory may have been previously freed by $@. | test_free.cpp:44:22:44:25 | call to free | call to free | -| test_free.cpp:71:9:71:9 | a | test_free.cpp:69:10:69:10 | a | test_free.cpp:71:9:71:9 | a | Memory may have been previously freed by $@. | test_free.cpp:69:5:69:8 | call to free | call to free | | test_free.cpp:71:9:71:9 | a | test_free.cpp:69:10:69:10 | a | test_free.cpp:71:9:71:9 | a | Memory may have been previously freed by $@. | test_free.cpp:69:5:69:8 | call to free | call to free | | test_free.cpp:84:5:84:5 | a | test_free.cpp:83:12:83:12 | a | test_free.cpp:84:5:84:5 | a | Memory may have been previously freed by $@. | test_free.cpp:83:5:83:13 | delete | delete | | test_free.cpp:91:5:91:5 | a | test_free.cpp:90:10:90:10 | a | test_free.cpp:91:5:91:5 | a | Memory may have been previously freed by $@. | test_free.cpp:90:5:90:8 | call to free | call to free | -| test_free.cpp:91:5:91:5 | a | test_free.cpp:90:10:90:10 | a | test_free.cpp:91:5:91:5 | a | Memory may have been previously freed by $@. | test_free.cpp:90:5:90:8 | call to free | call to free | | test_free.cpp:96:9:96:9 | a | test_free.cpp:95:10:95:10 | a | test_free.cpp:96:9:96:9 | a | Memory may have been previously freed by $@. | test_free.cpp:95:5:95:8 | call to free | call to free | | test_free.cpp:102:23:102:23 | a | test_free.cpp:101:10:101:10 | a | test_free.cpp:102:23:102:23 | a | Memory may have been previously freed by $@. | test_free.cpp:101:5:101:8 | call to free | call to free | | test_free.cpp:153:5:153:5 | a | test_free.cpp:152:27:152:27 | a | test_free.cpp:153:5:153:5 | a | Memory may have been previously freed by $@. | test_free.cpp:152:22:152:25 | call to free | call to free | -| test_free.cpp:153:5:153:5 | a | test_free.cpp:152:27:152:27 | a | test_free.cpp:153:5:153:5 | a | Memory may have been previously freed by $@. | test_free.cpp:152:22:152:25 | call to free | call to free | -| test_free.cpp:236:9:236:10 | * ... | test_free.cpp:233:14:233:15 | * ... | test_free.cpp:236:9:236:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:233:9:233:12 | call to free | call to free | -| test_free.cpp:236:9:236:10 | * ... | test_free.cpp:233:14:233:15 | * ... | test_free.cpp:236:9:236:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:233:9:233:12 | call to free | call to free | -| test_free.cpp:236:9:236:10 | * ... | test_free.cpp:233:14:233:15 | * ... | test_free.cpp:236:9:236:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:233:9:233:12 | call to free | call to free | | test_free.cpp:236:9:236:10 | * ... | test_free.cpp:233:14:233:15 | * ... | test_free.cpp:236:9:236:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:233:9:233:12 | call to free | call to free | | test_free.cpp:241:9:241:10 | * ... | test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:239:9:239:12 | call to free | call to free | -| test_free.cpp:241:9:241:10 | * ... | test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:239:9:239:12 | call to free | call to free | -| test_free.cpp:241:9:241:10 | * ... | test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:239:9:239:12 | call to free | call to free | -| test_free.cpp:241:9:241:10 | * ... | test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:239:9:239:12 | call to free | call to free | -| test_free.cpp:246:9:246:10 | * ... | test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:245:5:245:8 | call to free | call to free | -| test_free.cpp:246:9:246:10 | * ... | test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:245:5:245:8 | call to free | call to free | -| test_free.cpp:246:9:246:10 | * ... | test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:245:5:245:8 | call to free | call to free | | test_free.cpp:246:9:246:10 | * ... | test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | Memory may have been previously freed by $@. | test_free.cpp:245:5:245:8 | call to free | call to free | | test_free.cpp:254:6:254:6 | p | test_free.cpp:252:7:252:7 | p | test_free.cpp:254:6:254:6 | p | Memory may have been previously freed by $@. | test_free.cpp:252:2:252:5 | call to free | call to free | | test_free.cpp:262:6:262:6 | p | test_free.cpp:260:9:260:9 | p | test_free.cpp:262:6:262:6 | p | Memory may have been previously freed by $@. | test_free.cpp:260:2:260:9 | delete | delete | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected b/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected index 3ed9da69446..3723c5bf32a 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected @@ -4,64 +4,46 @@ edges | test.cpp:34:31:34:31 | b | test.cpp:35:2:35:2 | b | | test.cpp:57:19:57:19 | d | test.cpp:26:29:26:29 | b | | test.cpp:57:19:57:19 | d | test.cpp:57:19:57:19 | d | -| test.cpp:57:19:57:19 | d | test.cpp:57:19:57:19 | d | | test.cpp:57:19:57:19 | d | test.cpp:58:25:58:25 | d | | test.cpp:57:19:57:19 | d | test.cpp:58:25:58:25 | d | -| test.cpp:57:19:57:19 | d | test.cpp:58:25:58:25 | d | -| test.cpp:57:19:57:19 | d | test.cpp:59:21:59:21 | d | | test.cpp:57:19:57:19 | d | test.cpp:59:21:59:21 | d | | test.cpp:57:19:57:19 | d | test.cpp:59:21:59:21 | d | | test.cpp:58:25:58:25 | d | test.cpp:30:34:30:34 | b | | test.cpp:58:25:58:25 | d | test.cpp:58:25:58:25 | d | -| test.cpp:58:25:58:25 | d | test.cpp:58:25:58:25 | d | -| test.cpp:58:25:58:25 | d | test.cpp:59:21:59:21 | d | | test.cpp:58:25:58:25 | d | test.cpp:59:21:59:21 | d | | test.cpp:58:25:58:25 | d | test.cpp:59:21:59:21 | d | | test.cpp:59:21:59:21 | d | test.cpp:34:31:34:31 | b | | test.cpp:59:21:59:21 | d | test.cpp:59:21:59:21 | d | -| test.cpp:59:21:59:21 | d | test.cpp:59:21:59:21 | d | | test.cpp:74:19:74:21 | dss | test.cpp:26:29:26:29 | b | | test.cpp:74:19:74:21 | dss | test.cpp:74:19:74:21 | dss | -| test.cpp:74:19:74:21 | dss | test.cpp:74:19:74:21 | dss | | test.cpp:74:19:74:21 | dss | test.cpp:75:25:75:27 | dss | | test.cpp:74:19:74:21 | dss | test.cpp:75:25:75:27 | dss | -| test.cpp:74:19:74:21 | dss | test.cpp:75:25:75:27 | dss | -| test.cpp:74:19:74:21 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:74:19:74:21 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:74:19:74:21 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:75:25:75:27 | dss | test.cpp:30:34:30:34 | b | | test.cpp:75:25:75:27 | dss | test.cpp:75:25:75:27 | dss | -| test.cpp:75:25:75:27 | dss | test.cpp:75:25:75:27 | dss | -| test.cpp:75:25:75:27 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:75:25:75:27 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:75:25:75:27 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:76:21:76:23 | dss | test.cpp:34:31:34:31 | b | | test.cpp:76:21:76:23 | dss | test.cpp:76:21:76:23 | dss | -| test.cpp:76:21:76:23 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:86:19:86:20 | d2 | test.cpp:26:29:26:29 | b | | test.cpp:86:19:86:20 | d2 | test.cpp:86:19:86:20 | d2 | | test.cpp:86:19:86:20 | d2 | test.cpp:86:19:86:20 | d2 | -| test.cpp:86:19:86:20 | d2 | test.cpp:86:19:86:20 | d2 | | test.cpp:86:19:86:20 | d2 | test.cpp:87:25:87:26 | d2 | | test.cpp:86:19:86:20 | d2 | test.cpp:87:25:87:26 | d2 | | test.cpp:86:19:86:20 | d2 | test.cpp:87:25:87:26 | d2 | -| test.cpp:86:19:86:20 | d2 | test.cpp:87:25:87:26 | d2 | -| test.cpp:86:19:86:20 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:86:19:86:20 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:86:19:86:20 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:86:19:86:20 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:87:25:87:26 | d2 | test.cpp:30:34:30:34 | b | | test.cpp:87:25:87:26 | d2 | test.cpp:87:25:87:26 | d2 | | test.cpp:87:25:87:26 | d2 | test.cpp:87:25:87:26 | d2 | -| test.cpp:87:25:87:26 | d2 | test.cpp:87:25:87:26 | d2 | -| test.cpp:87:25:87:26 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:87:25:87:26 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:87:25:87:26 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:87:25:87:26 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:88:21:88:22 | d2 | test.cpp:34:31:34:31 | b | | test.cpp:88:21:88:22 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:88:21:88:22 | d2 | test.cpp:88:21:88:22 | d2 | -| test.cpp:88:21:88:22 | d2 | test.cpp:88:21:88:22 | d2 | nodes | test.cpp:26:29:26:29 | b | semmle.label | b | | test.cpp:27:2:27:2 | b | semmle.label | b | @@ -71,31 +53,22 @@ nodes | test.cpp:35:2:35:2 | b | semmle.label | b | | test.cpp:57:19:57:19 | d | semmle.label | d | | test.cpp:57:19:57:19 | d | semmle.label | d | -| test.cpp:57:19:57:19 | d | semmle.label | d | -| test.cpp:58:25:58:25 | d | semmle.label | d | | test.cpp:58:25:58:25 | d | semmle.label | d | | test.cpp:58:25:58:25 | d | semmle.label | d | | test.cpp:59:21:59:21 | d | semmle.label | d | | test.cpp:59:21:59:21 | d | semmle.label | d | -| test.cpp:59:21:59:21 | d | semmle.label | d | -| test.cpp:74:19:74:21 | dss | semmle.label | dss | | test.cpp:74:19:74:21 | dss | semmle.label | dss | | test.cpp:74:19:74:21 | dss | semmle.label | dss | | test.cpp:75:25:75:27 | dss | semmle.label | dss | | test.cpp:75:25:75:27 | dss | semmle.label | dss | -| test.cpp:75:25:75:27 | dss | semmle.label | dss | | test.cpp:76:21:76:23 | dss | semmle.label | dss | | test.cpp:76:21:76:23 | dss | semmle.label | dss | -| test.cpp:76:21:76:23 | dss | semmle.label | dss | -| test.cpp:86:19:86:20 | d2 | semmle.label | d2 | | test.cpp:86:19:86:20 | d2 | semmle.label | d2 | | test.cpp:86:19:86:20 | d2 | semmle.label | d2 | | test.cpp:86:19:86:20 | d2 | semmle.label | d2 | | test.cpp:87:25:87:26 | d2 | semmle.label | d2 | | test.cpp:87:25:87:26 | d2 | semmle.label | d2 | | test.cpp:87:25:87:26 | d2 | semmle.label | d2 | -| test.cpp:87:25:87:26 | d2 | semmle.label | d2 | -| test.cpp:88:21:88:22 | d2 | semmle.label | d2 | | test.cpp:88:21:88:22 | d2 | semmle.label | d2 | | test.cpp:88:21:88:22 | d2 | semmle.label | d2 | | test.cpp:88:21:88:22 | d2 | semmle.label | d2 | @@ -103,61 +76,43 @@ subpaths #select | test.cpp:27:2:27:2 | b | test.cpp:57:19:57:19 | d | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | | test.cpp:27:2:27:2 | b | test.cpp:57:19:57:19 | d | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | -| test.cpp:27:2:27:2 | b | test.cpp:57:19:57:19 | d | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | | test.cpp:27:2:27:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:27:2:27:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | -| test.cpp:27:2:27:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | -| test.cpp:27:2:27:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:27:2:27:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:27:2:27:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:27:2:27:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:31:2:31:2 | b | test.cpp:57:19:57:19 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | | test.cpp:31:2:31:2 | b | test.cpp:57:19:57:19 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:57:19:57:19 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:58:25:58:25 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | | test.cpp:31:2:31:2 | b | test.cpp:58:25:58:25 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | | test.cpp:31:2:31:2 | b | test.cpp:58:25:58:25 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | | test.cpp:31:2:31:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:31:2:31:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | | test.cpp:31:2:31:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | | test.cpp:31:2:31:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | | test.cpp:31:2:31:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:31:2:31:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:31:2:31:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:31:2:31:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:31:2:31:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:31:2:31:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:57:19:57:19 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | | test.cpp:35:2:35:2 | b | test.cpp:57:19:57:19 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:57:19:57:19 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:58:25:58:25 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | | test.cpp:35:2:35:2 | b | test.cpp:58:25:58:25 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | | test.cpp:35:2:35:2 | b | test.cpp:58:25:58:25 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | | test.cpp:35:2:35:2 | b | test.cpp:59:21:59:21 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:59:21:59:21 | d | this cast | | test.cpp:35:2:35:2 | b | test.cpp:59:21:59:21 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:59:21:59:21 | d | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:59:21:59:21 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:59:21:59:21 | d | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:76:21:76:23 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:76:21:76:23 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:76:21:76:23 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:76:21:76:23 | dss | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:76:21:76:23 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:76:21:76:23 | dss | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:88:21:88:22 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:88:21:88:22 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:88:21:88:22 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:88:21:88:22 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:88:21:88:22 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:88:21:88:22 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:88:21:88:22 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:88:21:88:22 | d2 | this cast | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/NtohlArrayNoBound/NtohlArrayNoBound.expected b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/NtohlArrayNoBound/NtohlArrayNoBound.expected index 5d11cd38e61..1e5645353f8 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/NtohlArrayNoBound/NtohlArrayNoBound.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/NtohlArrayNoBound/NtohlArrayNoBound.expected @@ -1,17 +1,8 @@ -| test.cpp:12:25:12:29 | call to ntohl | Unchecked use of data from network function $@. | test.cpp:12:25:12:29 | call to ntohl | call to ntohl | -| test.cpp:12:25:12:34 | call to ntohl | Unchecked use of data from network function $@. | test.cpp:12:25:12:29 | call to ntohl | call to ntohl | | test.cpp:12:25:12:34 | call to ntohl | Unchecked use of data from network function $@. | test.cpp:12:25:12:34 | call to ntohl | call to ntohl | -| test.cpp:21:26:21:29 | len2 | Unchecked use of data from network function $@. | test.cpp:10:16:10:20 | call to ntohl | call to ntohl | | test.cpp:21:26:21:29 | len2 | Unchecked use of data from network function $@. | test.cpp:10:16:10:25 | call to ntohl | call to ntohl | -| test.cpp:31:26:31:29 | len2 | Unchecked use of data from network function $@. | test.cpp:10:16:10:20 | call to ntohl | call to ntohl | | test.cpp:31:26:31:29 | len2 | Unchecked use of data from network function $@. | test.cpp:10:16:10:25 | call to ntohl | call to ntohl | -| test.cpp:61:26:61:29 | len2 | Unchecked use of data from network function $@. | test.cpp:10:16:10:20 | call to ntohl | call to ntohl | | test.cpp:61:26:61:29 | len2 | Unchecked use of data from network function $@. | test.cpp:10:16:10:25 | call to ntohl | call to ntohl | -| test.cpp:64:9:64:12 | len2 | Unchecked use of data from network function $@. | test.cpp:10:16:10:20 | call to ntohl | call to ntohl | | test.cpp:64:9:64:12 | len2 | Unchecked use of data from network function $@. | test.cpp:10:16:10:25 | call to ntohl | call to ntohl | -| test.cpp:73:10:73:13 | lens | Unchecked use of data from network function $@. | test.cpp:10:16:10:20 | call to ntohl | call to ntohl | | test.cpp:73:10:73:13 | lens | Unchecked use of data from network function $@. | test.cpp:10:16:10:25 | call to ntohl | call to ntohl | -| test.cpp:86:10:86:13 | len3 | Unchecked use of data from network function $@. | test.cpp:85:10:85:14 | call to ntohl | call to ntohl | | test.cpp:86:10:86:13 | len3 | Unchecked use of data from network function $@. | test.cpp:85:10:85:19 | call to ntohl | call to ntohl | -| test.cpp:94:9:94:11 | len | Unchecked use of data from network function $@. | test.cpp:99:8:99:12 | call to ntohl | call to ntohl | | test.cpp:94:9:94:11 | len | Unchecked use of data from network function $@. | test.cpp:99:8:99:17 | call to ntohl | call to ntohl | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-079/semmle/CgiXss/CgiXss.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-079/semmle/CgiXss/CgiXss.expected index 1db291ffd88..52885ef1df9 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-079/semmle/CgiXss/CgiXss.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-079/semmle/CgiXss/CgiXss.expected @@ -1,7 +1,6 @@ edges | search.c:14:24:14:28 | query | search.c:17:8:17:12 | query | | search.c:14:24:14:28 | query | search.c:17:8:17:12 | query | -| search.c:14:24:14:28 | query | search.c:17:8:17:12 | query | | search.c:22:24:22:28 | query | search.c:23:39:23:43 | query | | search.c:22:24:22:28 | query | search.c:23:39:23:43 | query | | search.c:51:21:51:26 | call to getenv | search.c:55:17:55:25 | raw_query | @@ -15,7 +14,6 @@ nodes | search.c:14:24:14:28 | query | semmle.label | query | | search.c:17:8:17:12 | query | semmle.label | query | | search.c:17:8:17:12 | query | semmle.label | query | -| search.c:17:8:17:12 | query | semmle.label | query | | search.c:22:24:22:28 | query | semmle.label | query | | search.c:23:39:23:43 | query | semmle.label | query | | search.c:23:39:23:43 | query | semmle.label | query | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-114/SAMATE/UncontrolledProcessOperation/UncontrolledProcessOperation.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-114/SAMATE/UncontrolledProcessOperation/UncontrolledProcessOperation.expected index 5e0638a0afe..66433529adf 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-114/SAMATE/UncontrolledProcessOperation/UncontrolledProcessOperation.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-114/SAMATE/UncontrolledProcessOperation/UncontrolledProcessOperation.expected @@ -1,8 +1,6 @@ edges | test.cpp:37:73:37:76 | data | test.cpp:43:32:43:35 | data | | test.cpp:37:73:37:76 | data | test.cpp:43:32:43:35 | data | -| test.cpp:37:73:37:76 | data | test.cpp:43:32:43:35 | data | -| test.cpp:37:73:37:76 | data indirection | test.cpp:43:32:43:35 | data | | test.cpp:37:73:37:76 | data indirection | test.cpp:43:32:43:35 | data | | test.cpp:37:73:37:76 | data indirection | test.cpp:43:32:43:35 | data | | test.cpp:64:30:64:35 | call to getenv | test.cpp:73:24:73:27 | data | @@ -17,7 +15,6 @@ nodes | test.cpp:37:73:37:76 | data indirection | semmle.label | data indirection | | test.cpp:43:32:43:35 | data | semmle.label | data | | test.cpp:43:32:43:35 | data | semmle.label | data | -| test.cpp:43:32:43:35 | data | semmle.label | data | | test.cpp:64:30:64:35 | call to getenv | semmle.label | call to getenv | | test.cpp:64:30:64:35 | call to getenv | semmle.label | call to getenv | | test.cpp:73:24:73:27 | data | semmle.label | data | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-114/semmle/UncontrolledProcessOperation/UncontrolledProcessOperation.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-114/semmle/UncontrolledProcessOperation/UncontrolledProcessOperation.expected index 29c14620b3e..7028d4b0130 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-114/semmle/UncontrolledProcessOperation/UncontrolledProcessOperation.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-114/semmle/UncontrolledProcessOperation/UncontrolledProcessOperation.expected @@ -15,18 +15,12 @@ edges | test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | data | | test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | data | | test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | data | -| test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | data | -| test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | data | | test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | -| test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | -| test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | -| test.cpp:56:12:56:17 | buffer | test.cpp:65:10:65:14 | data2 | -| test.cpp:56:12:56:17 | buffer | test.cpp:65:10:65:14 | data2 | | test.cpp:56:12:56:17 | buffer | test.cpp:65:10:65:14 | data2 | | test.cpp:56:12:56:17 | buffer | test.cpp:65:10:65:14 | data2 | | test.cpp:56:12:56:17 | buffer | test.cpp:65:10:65:14 | data2 | @@ -35,12 +29,9 @@ edges | test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | buffer | | test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | data | | test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | data | -| test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | data | | test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref | | test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref | | test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref | -| test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref | -| test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | data2 | | test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | data2 | | test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | data2 | | test.cpp:76:12:76:17 | buffer | test.cpp:78:10:78:15 | buffer | @@ -80,12 +71,9 @@ nodes | test.cpp:62:10:62:15 | buffer | semmle.label | buffer | | test.cpp:63:10:63:13 | data | semmle.label | data | | test.cpp:63:10:63:13 | data | semmle.label | data | -| test.cpp:63:10:63:13 | data | semmle.label | data | | test.cpp:64:10:64:16 | dataref | semmle.label | dataref | | test.cpp:64:10:64:16 | dataref | semmle.label | dataref | | test.cpp:64:10:64:16 | dataref | semmle.label | dataref | -| test.cpp:64:10:64:16 | dataref | semmle.label | dataref | -| test.cpp:65:10:65:14 | data2 | semmle.label | data2 | | test.cpp:65:10:65:14 | data2 | semmle.label | data2 | | test.cpp:65:10:65:14 | data2 | semmle.label | data2 | | test.cpp:76:12:76:17 | buffer | semmle.label | buffer | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected index 56297693056..c2d7723194d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected @@ -46,20 +46,20 @@ edges | test.cpp:203:17:203:19 | str indirection [string] | test.cpp:203:22:203:27 | string | | test.cpp:207:17:207:19 | str indirection [string] | test.cpp:207:22:207:27 | string | | test.cpp:214:24:214:24 | p | test.cpp:216:10:216:10 | p | -| test.cpp:220:43:220:48 | call to malloc | test.cpp:222:15:222:20 | buffer | +| test.cpp:220:27:220:54 | call to malloc | test.cpp:222:15:222:20 | buffer | | test.cpp:222:15:222:20 | buffer | test.cpp:214:24:214:24 | p | -| test.cpp:228:43:228:48 | call to malloc | test.cpp:232:10:232:15 | buffer | +| test.cpp:228:27:228:54 | call to malloc | test.cpp:232:10:232:15 | buffer | | test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:26 | ... = ... | | test.cpp:236:5:236:26 | ... = ... | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | -| test.cpp:241:27:241:32 | call to malloc | test.cpp:242:22:242:27 | buffer | +| test.cpp:241:20:241:38 | call to malloc | test.cpp:242:22:242:27 | buffer | | test.cpp:242:16:242:19 | set_string output argument [string] | test.cpp:243:12:243:14 | str indirection [string] | | test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | | test.cpp:242:22:242:27 | buffer | test.cpp:242:16:242:19 | set_string output argument [string] | | test.cpp:243:12:243:14 | str indirection [string] | test.cpp:243:12:243:21 | string | -| test.cpp:249:20:249:27 | call to my_alloc | test.cpp:250:12:250:12 | p | -| test.cpp:256:17:256:22 | call to malloc | test.cpp:257:12:257:12 | p | -| test.cpp:262:22:262:27 | call to malloc | test.cpp:266:12:266:12 | p | -| test.cpp:264:20:264:25 | call to malloc | test.cpp:266:12:266:12 | p | +| test.cpp:249:14:249:33 | call to my_alloc | test.cpp:250:12:250:12 | p | +| test.cpp:256:9:256:25 | call to malloc | test.cpp:257:12:257:12 | p | +| test.cpp:262:15:262:30 | call to malloc | test.cpp:266:12:266:12 | p | +| test.cpp:264:13:264:30 | call to malloc | test.cpp:266:12:266:12 | p | nodes | test.cpp:16:11:16:21 | mk_string_t indirection [string] | semmle.label | mk_string_t indirection [string] | | test.cpp:18:5:18:30 | ... = ... | semmle.label | ... = ... | @@ -109,24 +109,24 @@ nodes | test.cpp:207:22:207:27 | string | semmle.label | string | | test.cpp:214:24:214:24 | p | semmle.label | p | | test.cpp:216:10:216:10 | p | semmle.label | p | -| test.cpp:220:43:220:48 | call to malloc | semmle.label | call to malloc | +| test.cpp:220:27:220:54 | call to malloc | semmle.label | call to malloc | | test.cpp:222:15:222:20 | buffer | semmle.label | buffer | -| test.cpp:228:43:228:48 | call to malloc | semmle.label | call to malloc | +| test.cpp:228:27:228:54 | call to malloc | semmle.label | call to malloc | | test.cpp:232:10:232:15 | buffer | semmle.label | buffer | | test.cpp:235:40:235:45 | buffer | semmle.label | buffer | | test.cpp:236:5:236:26 | ... = ... | semmle.label | ... = ... | | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | semmle.label | p_str indirection [post update] [string] | -| test.cpp:241:27:241:32 | call to malloc | semmle.label | call to malloc | +| test.cpp:241:20:241:38 | call to malloc | semmle.label | call to malloc | | test.cpp:242:16:242:19 | set_string output argument [string] | semmle.label | set_string output argument [string] | | test.cpp:242:22:242:27 | buffer | semmle.label | buffer | | test.cpp:243:12:243:14 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:243:12:243:21 | string | semmle.label | string | -| test.cpp:249:20:249:27 | call to my_alloc | semmle.label | call to my_alloc | +| test.cpp:249:14:249:33 | call to my_alloc | semmle.label | call to my_alloc | | test.cpp:250:12:250:12 | p | semmle.label | p | -| test.cpp:256:17:256:22 | call to malloc | semmle.label | call to malloc | +| test.cpp:256:9:256:25 | call to malloc | semmle.label | call to malloc | | test.cpp:257:12:257:12 | p | semmle.label | p | -| test.cpp:262:22:262:27 | call to malloc | semmle.label | call to malloc | -| test.cpp:264:20:264:25 | call to malloc | semmle.label | call to malloc | +| test.cpp:262:15:262:30 | call to malloc | semmle.label | call to malloc | +| test.cpp:264:13:264:30 | call to malloc | semmle.label | call to malloc | | test.cpp:266:12:266:12 | p | semmle.label | p | subpaths | test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | test.cpp:242:16:242:19 | set_string output argument [string] | @@ -146,6 +146,6 @@ subpaths | test.cpp:199:9:199:15 | call to strncpy | test.cpp:147:19:147:24 | call to malloc | test.cpp:199:22:199:27 | string | This write may overflow $@ by 2 elements. | test.cpp:199:22:199:27 | string | string | | test.cpp:203:9:203:15 | call to strncpy | test.cpp:147:19:147:24 | call to malloc | test.cpp:203:22:203:27 | string | This write may overflow $@ by 2 elements. | test.cpp:203:22:203:27 | string | string | | test.cpp:207:9:207:15 | call to strncpy | test.cpp:147:19:147:24 | call to malloc | test.cpp:207:22:207:27 | string | This write may overflow $@ by 3 elements. | test.cpp:207:22:207:27 | string | string | -| test.cpp:243:5:243:10 | call to memset | test.cpp:241:27:241:32 | call to malloc | test.cpp:243:12:243:21 | string | This write may overflow $@ by 1 element. | test.cpp:243:16:243:21 | string | string | -| test.cpp:250:5:250:10 | call to memset | test.cpp:249:20:249:27 | call to my_alloc | test.cpp:250:12:250:12 | p | This write may overflow $@ by 1 element. | test.cpp:250:12:250:12 | p | p | -| test.cpp:266:5:266:10 | call to memset | test.cpp:262:22:262:27 | call to malloc | test.cpp:266:12:266:12 | p | This write may overflow $@ by 1 element. | test.cpp:266:12:266:12 | p | p | +| test.cpp:243:5:243:10 | call to memset | test.cpp:241:20:241:38 | call to malloc | test.cpp:243:12:243:21 | string | This write may overflow $@ by 1 element. | test.cpp:243:16:243:21 | string | string | +| test.cpp:250:5:250:10 | call to memset | test.cpp:249:14:249:33 | call to my_alloc | test.cpp:250:12:250:12 | p | This write may overflow $@ by 1 element. | test.cpp:250:12:250:12 | p | p | +| test.cpp:266:5:266:10 | call to memset | test.cpp:262:15:262:30 | call to malloc | test.cpp:266:12:266:12 | p | This write may overflow $@ by 1 element. | test.cpp:266:12:266:12 | p | p | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected index 8006b5b61a0..b75eda8eec1 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected @@ -19,9 +19,6 @@ | tests.cpp:310:2:310:7 | call to memset | This 'memset' operation accesses 21 bytes but the $@ is only 20 bytes. | tests.cpp:301:10:301:14 | myVar | destination buffer | | tests.cpp:312:2:312:7 | call to memset | This 'memset' operation accesses 17 bytes but the $@ is only 16 bytes. | tests.cpp:298:7:298:12 | buffer | destination buffer | | tests.cpp:314:2:314:7 | call to memset | This 'memset' operation accesses 8 bytes but the $@ is only 4 bytes. | tests.cpp:299:6:299:10 | field | destination buffer | -| tests.cpp:327:3:327:8 | call to memset | This 'memset' operation accesses 21 bytes but the $@ is only 20 bytes. | tests.cpp:301:10:301:14 | myVar | destination buffer | -| tests.cpp:329:3:329:8 | call to memset | This 'memset' operation accesses 21 bytes but the $@ is only 20 bytes. | tests.cpp:301:10:301:14 | myVar | destination buffer | -| tests.cpp:336:3:336:8 | call to memset | This 'memset' operation accesses 21 bytes but the $@ is only 20 bytes. | tests.cpp:301:10:301:14 | myVar | destination buffer | | tests.cpp:346:2:346:14 | access to array | This array indexing operation accesses a negative index -1 on the $@. | tests.cpp:342:7:342:15 | charArray | array | | tests.cpp:349:2:349:14 | access to array | This array indexing operation accesses byte offset 10 but the $@ is only 10 bytes. | tests.cpp:342:7:342:15 | charArray | array | | tests.cpp:350:17:350:29 | access to array | This array indexing operation accesses byte offset 10 but the $@ is only 10 bytes. | tests.cpp:342:7:342:15 | charArray | array | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/UnboundedWrite.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/UnboundedWrite.expected index e4e9618378d..c2d98bc812c 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/UnboundedWrite.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/UnboundedWrite.expected @@ -3,8 +3,6 @@ edges | tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array | | tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array | | tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array | -| tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array | -| tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array | | tests.c:29:28:29:31 | argv | tests.c:29:28:29:34 | access to array | | tests.c:29:28:29:31 | argv | tests.c:29:28:29:34 | access to array | | tests.c:29:28:29:31 | argv | tests.c:29:28:29:34 | access to array | @@ -13,30 +11,24 @@ edges | tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | access to array | | tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | access to array | | tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | access to array | -| tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | access to array | -| tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | access to array | subpaths nodes | tests.c:28:22:28:25 | argv | semmle.label | argv | | tests.c:28:22:28:25 | argv | semmle.label | argv | | tests.c:28:22:28:28 | access to array | semmle.label | access to array | | tests.c:28:22:28:28 | access to array | semmle.label | access to array | -| tests.c:28:22:28:28 | access to array | semmle.label | access to array | | tests.c:29:28:29:31 | argv | semmle.label | argv | | tests.c:29:28:29:31 | argv | semmle.label | argv | | tests.c:29:28:29:34 | access to array | semmle.label | access to array | | tests.c:29:28:29:34 | access to array | semmle.label | access to array | | tests.c:31:15:31:23 | buffer100 | semmle.label | buffer100 | | tests.c:31:15:31:23 | buffer100 | semmle.label | buffer100 | -| tests.c:31:15:31:23 | buffer100 | semmle.label | buffer100 | -| tests.c:33:21:33:29 | buffer100 | semmle.label | buffer100 | | tests.c:33:21:33:29 | buffer100 | semmle.label | buffer100 | | tests.c:33:21:33:29 | buffer100 | semmle.label | buffer100 | | tests.c:34:10:34:13 | argv | semmle.label | argv | | tests.c:34:10:34:13 | argv | semmle.label | argv | | tests.c:34:10:34:16 | access to array | semmle.label | access to array | | tests.c:34:10:34:16 | access to array | semmle.label | access to array | -| tests.c:34:10:34:16 | access to array | semmle.label | access to array | #select | tests.c:28:3:28:9 | call to sprintf | tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array | This 'call to sprintf' with input from $@ may overflow the destination. | tests.c:28:22:28:25 | argv | argv | | tests.c:29:3:29:9 | call to sprintf | tests.c:29:28:29:31 | argv | tests.c:29:28:29:34 | access to array | This 'call to sprintf' with input from $@ may overflow the destination. | tests.c:29:28:29:31 | argv | argv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/SAMATE/UncontrolledFormatString.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/SAMATE/UncontrolledFormatString.expected index 61790cfe831..ece5d00bdc9 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/SAMATE/UncontrolledFormatString.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/SAMATE/UncontrolledFormatString.expected @@ -5,12 +5,8 @@ edges | char_connect_socket_w32_vsnprintf_01_bad.c:94:55:94:68 | ... + ... | char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | data | | char_console_fprintf_01_bad.c:30:23:30:35 | ... + ... | char_console_fprintf_01_bad.c:49:21:49:24 | data | | char_console_fprintf_01_bad.c:30:23:30:35 | ... + ... | char_console_fprintf_01_bad.c:49:21:49:24 | data | -| char_console_fprintf_01_bad.c:30:23:30:35 | ... + ... | char_console_fprintf_01_bad.c:49:21:49:24 | data | | char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | char_console_fprintf_01_bad.c:49:21:49:24 | data | | char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | char_console_fprintf_01_bad.c:49:21:49:24 | data | -| char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | char_console_fprintf_01_bad.c:49:21:49:24 | data | -| char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv | char_environment_fprintf_01_bad.c:36:21:36:24 | data | -| char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv | char_environment_fprintf_01_bad.c:36:21:36:24 | data | | char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv | char_environment_fprintf_01_bad.c:36:21:36:24 | data | | char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv | char_environment_fprintf_01_bad.c:36:21:36:24 | data | | char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv | char_environment_fprintf_01_bad.c:36:21:36:24 | data | @@ -25,12 +21,10 @@ nodes | char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | semmle.label | fgets output argument | | char_console_fprintf_01_bad.c:49:21:49:24 | data | semmle.label | data | | char_console_fprintf_01_bad.c:49:21:49:24 | data | semmle.label | data | -| char_console_fprintf_01_bad.c:49:21:49:24 | data | semmle.label | data | | char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv | semmle.label | call to getenv | | char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv | semmle.label | call to getenv | | char_environment_fprintf_01_bad.c:36:21:36:24 | data | semmle.label | data | | char_environment_fprintf_01_bad.c:36:21:36:24 | data | semmle.label | data | -| char_environment_fprintf_01_bad.c:36:21:36:24 | data | semmle.label | data | #select | char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | data | char_connect_socket_w32_vsnprintf_01_bad.c:94:55:94:68 | ... + ... | char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | data | The value of this argument may come from $@ and is being used as a formatting argument to badVaSink(data), which calls vsnprintf(format). | char_connect_socket_w32_vsnprintf_01_bad.c:94:55:94:68 | ... + ... | recv | | char_console_fprintf_01_bad.c:49:21:49:24 | data | char_console_fprintf_01_bad.c:30:23:30:35 | ... + ... | char_console_fprintf_01_bad.c:49:21:49:24 | data | The value of this argument may come from $@ and is being used as a formatting argument to fprintf(format). | char_console_fprintf_01_bad.c:30:23:30:35 | ... + ... | fgets | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected index c422484ea7d..9b269a1f95a 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected @@ -3,8 +3,6 @@ edges | argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array | | argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array | | argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array | -| argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array | -| argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array | | argvLocal.c:96:15:96:18 | argv | argvLocal.c:96:15:96:21 | access to array | | argvLocal.c:96:15:96:18 | argv | argvLocal.c:96:15:96:21 | access to array | | argvLocal.c:96:15:96:18 | argv | argvLocal.c:96:15:96:21 | access to array | @@ -13,8 +11,6 @@ edges | argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | i1 | | argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | i1 | | argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | i1 | -| argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | i1 | -| argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | i1 | | argvLocal.c:100:7:100:10 | argv | argvLocal.c:102:15:102:16 | i1 | | argvLocal.c:100:7:100:10 | argv | argvLocal.c:102:15:102:16 | i1 | | argvLocal.c:100:7:100:10 | argv | argvLocal.c:102:15:102:16 | i1 | @@ -23,8 +19,6 @@ edges | argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | i7 | | argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | i7 | | argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | i7 | -| argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | i7 | -| argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | i7 | | argvLocal.c:100:7:100:10 | argv | argvLocal.c:145:15:145:16 | i7 | | argvLocal.c:100:7:100:10 | argv | argvLocal.c:145:15:145:16 | i7 | | argvLocal.c:100:7:100:10 | argv | argvLocal.c:145:15:145:16 | i7 | @@ -33,8 +27,6 @@ edges | argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | access to array | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | access to array | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | access to array | -| argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | access to array | -| argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | access to array | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:107:15:107:19 | access to array | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:107:15:107:19 | access to array | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:107:15:107:19 | access to array | @@ -43,12 +35,12 @@ edges | argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | * ... | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | * ... | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | * ... | -| argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | * ... | -| argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | * ... | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... | +| argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | i2 indirection | +| argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | i2 indirection | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 | @@ -61,20 +53,18 @@ edges | argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | i4 | -| argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | i4 | -| argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 | -| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:10 | i4 | -| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:10 | i4 | -| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | -| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | +| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | i4 | +| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | i4 | +| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | i4 | +| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... | @@ -95,8 +85,6 @@ edges | argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | ... + ... | | argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | ... + ... | | argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | ... + ... | -| argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | ... + ... | -| argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | ... + ... | | argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... | | argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... | | argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... | @@ -105,8 +93,6 @@ edges | argvLocal.c:126:10:126:13 | argv | argvLocal.c:139:9:139:26 | ... ? ... : ... | | argvLocal.c:126:10:126:13 | argv | argvLocal.c:139:9:139:26 | ... ? ... : ... | | argvLocal.c:126:10:126:13 | argv | argvLocal.c:139:9:139:26 | ... ? ... : ... | -| argvLocal.c:126:10:126:13 | argv | argvLocal.c:139:9:139:26 | ... ? ... : ... | -| argvLocal.c:126:10:126:13 | argv | argvLocal.c:139:9:139:26 | ... ? ... : ... | | argvLocal.c:126:10:126:13 | argv | argvLocal.c:140:15:140:32 | ... ? ... : ... | | argvLocal.c:126:10:126:13 | argv | argvLocal.c:140:15:140:32 | ... ? ... : ... | | argvLocal.c:126:10:126:13 | argv | argvLocal.c:140:15:140:32 | ... ? ... : ... | @@ -115,8 +101,6 @@ edges | argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | i8 | | argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | i8 | | argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | i8 | -| argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | i8 | -| argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | i8 | | argvLocal.c:149:11:149:14 | argv | argvLocal.c:151:15:151:16 | i8 | | argvLocal.c:149:11:149:14 | argv | argvLocal.c:151:15:151:16 | i8 | | argvLocal.c:149:11:149:14 | argv | argvLocal.c:151:15:151:16 | i8 | @@ -127,21 +111,16 @@ edges | argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:9:169:20 | i10 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 | -| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 | -| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:15:170:26 | i10 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:15:170:26 | i10 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:24:170:26 | i10 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:24:170:26 | i10 | -| argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:24:170:26 | i10 | -| argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:24:170:26 | i10 | subpaths nodes | argvLocal.c:95:9:95:12 | argv | semmle.label | argv | | argvLocal.c:95:9:95:12 | argv | semmle.label | argv | | argvLocal.c:95:9:95:15 | access to array | semmle.label | access to array | | argvLocal.c:95:9:95:15 | access to array | semmle.label | access to array | -| argvLocal.c:95:9:95:15 | access to array | semmle.label | access to array | | argvLocal.c:96:15:96:18 | argv | semmle.label | argv | | argvLocal.c:96:15:96:18 | argv | semmle.label | argv | | argvLocal.c:96:15:96:21 | access to array | semmle.label | access to array | @@ -150,21 +129,21 @@ nodes | argvLocal.c:100:7:100:10 | argv | semmle.label | argv | | argvLocal.c:101:9:101:10 | i1 | semmle.label | i1 | | argvLocal.c:101:9:101:10 | i1 | semmle.label | i1 | -| argvLocal.c:101:9:101:10 | i1 | semmle.label | i1 | | argvLocal.c:102:15:102:16 | i1 | semmle.label | i1 | | argvLocal.c:102:15:102:16 | i1 | semmle.label | i1 | | argvLocal.c:105:14:105:17 | argv | semmle.label | argv | | argvLocal.c:105:14:105:17 | argv | semmle.label | argv | | argvLocal.c:106:9:106:13 | access to array | semmle.label | access to array | | argvLocal.c:106:9:106:13 | access to array | semmle.label | access to array | -| argvLocal.c:106:9:106:13 | access to array | semmle.label | access to array | | argvLocal.c:107:15:107:19 | access to array | semmle.label | access to array | | argvLocal.c:107:15:107:19 | access to array | semmle.label | access to array | | argvLocal.c:110:9:110:11 | * ... | semmle.label | * ... | | argvLocal.c:110:9:110:11 | * ... | semmle.label | * ... | -| argvLocal.c:110:9:110:11 | * ... | semmle.label | * ... | | argvLocal.c:111:15:111:17 | * ... | semmle.label | * ... | | argvLocal.c:111:15:111:17 | * ... | semmle.label | * ... | +| argvLocal.c:111:15:111:17 | * ... | semmle.label | i2 indirection | +| argvLocal.c:111:15:111:17 | i2 indirection | semmle.label | * ... | +| argvLocal.c:111:15:111:17 | i2 indirection | semmle.label | i2 indirection | | argvLocal.c:115:13:115:16 | argv | semmle.label | argv | | argvLocal.c:115:13:115:16 | argv | semmle.label | argv | | argvLocal.c:116:9:116:10 | i3 | semmle.label | i3 | @@ -173,7 +152,6 @@ nodes | argvLocal.c:117:15:117:16 | i3 | semmle.label | i3 | | argvLocal.c:121:9:121:10 | i4 | semmle.label | i4 | | argvLocal.c:121:9:121:10 | i4 | semmle.label | i4 | -| argvLocal.c:121:9:121:10 | i4 | semmle.label | i4 | | argvLocal.c:122:15:122:16 | i4 | semmle.label | i4 | | argvLocal.c:122:15:122:16 | i4 | semmle.label | i4 | | argvLocal.c:126:10:126:13 | argv | semmle.label | argv | @@ -184,32 +162,30 @@ nodes | argvLocal.c:128:15:128:16 | i5 | semmle.label | i5 | | argvLocal.c:131:9:131:14 | ... + ... | semmle.label | ... + ... | | argvLocal.c:131:9:131:14 | ... + ... | semmle.label | ... + ... | -| argvLocal.c:131:9:131:14 | ... + ... | semmle.label | ... + ... | | argvLocal.c:132:15:132:20 | ... + ... | semmle.label | ... + ... | | argvLocal.c:132:15:132:20 | ... + ... | semmle.label | ... + ... | -| argvLocal.c:135:9:135:10 | i4 | semmle.label | i4 | -| argvLocal.c:135:9:135:12 | ... ++ | semmle.label | ... ++ | | argvLocal.c:135:9:135:12 | ... ++ | semmle.label | ... ++ | | argvLocal.c:135:9:135:12 | ... ++ | semmle.label | ... ++ | +| argvLocal.c:135:9:135:12 | ... ++ | semmle.label | i4 | +| argvLocal.c:135:9:135:12 | i4 | semmle.label | ... ++ | +| argvLocal.c:135:9:135:12 | i4 | semmle.label | i4 | +| argvLocal.c:135:9:135:12 | i4 | semmle.label | i4 | | argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... | | argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... | | argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... | | argvLocal.c:136:17:136:18 | i4 | semmle.label | i4 | | argvLocal.c:139:9:139:26 | ... ? ... : ... | semmle.label | ... ? ... : ... | | argvLocal.c:139:9:139:26 | ... ? ... : ... | semmle.label | ... ? ... : ... | -| argvLocal.c:139:9:139:26 | ... ? ... : ... | semmle.label | ... ? ... : ... | | argvLocal.c:140:15:140:32 | ... ? ... : ... | semmle.label | ... ? ... : ... | | argvLocal.c:140:15:140:32 | ... ? ... : ... | semmle.label | ... ? ... : ... | | argvLocal.c:144:9:144:10 | i7 | semmle.label | i7 | | argvLocal.c:144:9:144:10 | i7 | semmle.label | i7 | -| argvLocal.c:144:9:144:10 | i7 | semmle.label | i7 | | argvLocal.c:145:15:145:16 | i7 | semmle.label | i7 | | argvLocal.c:145:15:145:16 | i7 | semmle.label | i7 | | argvLocal.c:149:11:149:14 | argv | semmle.label | argv | | argvLocal.c:149:11:149:14 | argv | semmle.label | argv | | argvLocal.c:150:9:150:10 | i8 | semmle.label | i8 | | argvLocal.c:150:9:150:10 | i8 | semmle.label | i8 | -| argvLocal.c:150:9:150:10 | i8 | semmle.label | i8 | | argvLocal.c:151:15:151:16 | i8 | semmle.label | i8 | | argvLocal.c:151:15:151:16 | i8 | semmle.label | i8 | | argvLocal.c:168:18:168:21 | argv | semmle.label | argv | @@ -217,10 +193,8 @@ nodes | argvLocal.c:169:9:169:20 | i10 | semmle.label | i10 | | argvLocal.c:169:9:169:20 | i10 | semmle.label | i10 | | argvLocal.c:169:18:169:20 | i10 | semmle.label | i10 | -| argvLocal.c:169:18:169:20 | i10 | semmle.label | i10 | | argvLocal.c:170:15:170:26 | i10 | semmle.label | i10 | | argvLocal.c:170:24:170:26 | i10 | semmle.label | i10 | -| argvLocal.c:170:24:170:26 | i10 | semmle.label | i10 | #select | argvLocal.c:95:9:95:15 | access to array | argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:95:9:95:12 | argv | argv | | argvLocal.c:96:15:96:21 | access to array | argvLocal.c:96:15:96:18 | argv | argvLocal.c:96:15:96:21 | access to array | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:96:15:96:18 | argv | argv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected index c7896725492..74bd5dc79fd 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected @@ -21,8 +21,6 @@ edges | funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | i4 | | funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | i4 | | funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | i4 | -| funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | i4 | -| funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | i4 | | funcsLocal.c:36:7:36:8 | gets output argument | funcsLocal.c:37:9:37:10 | i5 | | funcsLocal.c:36:7:36:8 | gets output argument | funcsLocal.c:37:9:37:10 | i5 | | funcsLocal.c:36:7:36:8 | i5 | funcsLocal.c:37:9:37:10 | i5 | @@ -33,19 +31,14 @@ edges | funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | i6 | | funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | i6 | | funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | i6 | -| funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | i6 | -| funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | i6 | -| funcsLocal.c:46:7:46:9 | * ... | funcsLocal.c:47:9:47:11 | * ... | -| funcsLocal.c:46:7:46:9 | * ... | funcsLocal.c:47:9:47:11 | * ... | | funcsLocal.c:46:7:46:9 | * ... | funcsLocal.c:47:9:47:11 | * ... | | funcsLocal.c:46:7:46:9 | * ... | funcsLocal.c:47:9:47:11 | * ... | | funcsLocal.c:46:7:46:9 | * ... | funcsLocal.c:47:9:47:11 | * ... | | funcsLocal.c:46:7:46:9 | * ... | funcsLocal.c:47:9:47:11 | * ... | | funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | * ... | | funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | * ... | -| funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | * ... | -| funcsLocal.c:52:8:52:11 | call to gets | funcsLocal.c:53:9:53:11 | * ... | -| funcsLocal.c:52:8:52:11 | call to gets | funcsLocal.c:53:9:53:11 | * ... | +| funcsLocal.c:46:7:46:9 | i7 indirection | funcsLocal.c:47:9:47:11 | * ... | +| funcsLocal.c:46:7:46:9 | i7 indirection | funcsLocal.c:47:9:47:11 | * ... | | funcsLocal.c:52:8:52:11 | call to gets | funcsLocal.c:53:9:53:11 | * ... | | funcsLocal.c:52:8:52:11 | call to gets | funcsLocal.c:53:9:53:11 | * ... | | funcsLocal.c:52:8:52:11 | call to gets | funcsLocal.c:53:9:53:11 | * ... | @@ -66,7 +59,6 @@ nodes | funcsLocal.c:31:13:31:17 | call to fgets | semmle.label | call to fgets | | funcsLocal.c:32:9:32:10 | i4 | semmle.label | i4 | | funcsLocal.c:32:9:32:10 | i4 | semmle.label | i4 | -| funcsLocal.c:32:9:32:10 | i4 | semmle.label | i4 | | funcsLocal.c:36:7:36:8 | gets output argument | semmle.label | gets output argument | | funcsLocal.c:36:7:36:8 | i5 | semmle.label | i5 | | funcsLocal.c:36:7:36:8 | i5 | semmle.label | i5 | @@ -76,18 +68,18 @@ nodes | funcsLocal.c:41:13:41:16 | call to gets | semmle.label | call to gets | | funcsLocal.c:42:9:42:10 | i6 | semmle.label | i6 | | funcsLocal.c:42:9:42:10 | i6 | semmle.label | i6 | -| funcsLocal.c:42:9:42:10 | i6 | semmle.label | i6 | | funcsLocal.c:46:7:46:9 | * ... | semmle.label | * ... | | funcsLocal.c:46:7:46:9 | * ... | semmle.label | * ... | +| funcsLocal.c:46:7:46:9 | * ... | semmle.label | i7 indirection | | funcsLocal.c:46:7:46:9 | gets output argument | semmle.label | gets output argument | -| funcsLocal.c:47:9:47:11 | * ... | semmle.label | * ... | +| funcsLocal.c:46:7:46:9 | i7 indirection | semmle.label | * ... | +| funcsLocal.c:46:7:46:9 | i7 indirection | semmle.label | i7 indirection | | funcsLocal.c:47:9:47:11 | * ... | semmle.label | * ... | | funcsLocal.c:47:9:47:11 | * ... | semmle.label | * ... | | funcsLocal.c:52:8:52:11 | call to gets | semmle.label | call to gets | | funcsLocal.c:52:8:52:11 | call to gets | semmle.label | call to gets | | funcsLocal.c:53:9:53:11 | * ... | semmle.label | * ... | | funcsLocal.c:53:9:53:11 | * ... | semmle.label | * ... | -| funcsLocal.c:53:9:53:11 | * ... | semmle.label | * ... | | funcsLocal.c:58:9:58:10 | e1 | semmle.label | e1 | | funcsLocal.c:58:9:58:10 | e1 | semmle.label | e1 | #select diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatString.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatString.expected index 33015407b83..49a4696c31f 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatString.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatString.expected @@ -1,18 +1,15 @@ edges | globalVars.c:8:7:8:10 | copy | globalVars.c:27:9:27:12 | copy | | globalVars.c:8:7:8:10 | copy | globalVars.c:27:9:27:12 | copy | -| globalVars.c:8:7:8:10 | copy | globalVars.c:27:9:27:12 | copy | | globalVars.c:8:7:8:10 | copy | globalVars.c:30:15:30:18 | copy | | globalVars.c:8:7:8:10 | copy | globalVars.c:30:15:30:18 | copy | | globalVars.c:8:7:8:10 | copy | globalVars.c:35:11:35:14 | copy | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:38:9:38:13 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:38:9:38:13 | copy2 | -| globalVars.c:9:7:9:11 | copy2 | globalVars.c:38:9:38:13 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:41:15:41:19 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:41:15:41:19 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:50:9:50:13 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:50:9:50:13 | copy2 | -| globalVars.c:9:7:9:11 | copy2 | globalVars.c:50:9:50:13 | copy2 | | globalVars.c:11:22:11:25 | argv | globalVars.c:8:7:8:10 | copy | | globalVars.c:15:21:15:23 | val | globalVars.c:9:7:9:11 | copy2 | | globalVars.c:24:11:24:14 | argv | globalVars.c:11:22:11:25 | argv | @@ -28,18 +25,15 @@ nodes | globalVars.c:24:11:24:14 | argv | semmle.label | argv | | globalVars.c:27:9:27:12 | copy | semmle.label | copy | | globalVars.c:27:9:27:12 | copy | semmle.label | copy | -| globalVars.c:27:9:27:12 | copy | semmle.label | copy | | globalVars.c:30:15:30:18 | copy | semmle.label | copy | | globalVars.c:30:15:30:18 | copy | semmle.label | copy | | globalVars.c:35:11:35:14 | copy | semmle.label | copy | | globalVars.c:38:9:38:13 | copy2 | semmle.label | copy2 | | globalVars.c:38:9:38:13 | copy2 | semmle.label | copy2 | -| globalVars.c:38:9:38:13 | copy2 | semmle.label | copy2 | | globalVars.c:41:15:41:19 | copy2 | semmle.label | copy2 | | globalVars.c:41:15:41:19 | copy2 | semmle.label | copy2 | | globalVars.c:50:9:50:13 | copy2 | semmle.label | copy2 | | globalVars.c:50:9:50:13 | copy2 | semmle.label | copy2 | -| globalVars.c:50:9:50:13 | copy2 | semmle.label | copy2 | #select | globalVars.c:27:9:27:12 | copy | globalVars.c:24:11:24:14 | argv | globalVars.c:27:9:27:12 | copy | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | globalVars.c:24:11:24:14 | argv | argv | | globalVars.c:30:15:30:18 | copy | globalVars.c:24:11:24:14 | argv | globalVars.c:30:15:30:18 | copy | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(str), which calls printf(format). | globalVars.c:24:11:24:14 | argv | argv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatStringThroughGlobalVar.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatStringThroughGlobalVar.expected index c79d2e7e934..6aca673fb4b 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatStringThroughGlobalVar.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatStringThroughGlobalVar.expected @@ -1,7 +1,6 @@ edges | globalVars.c:8:7:8:10 | copy | globalVars.c:27:9:27:12 | copy | | globalVars.c:8:7:8:10 | copy | globalVars.c:27:9:27:12 | copy | -| globalVars.c:8:7:8:10 | copy | globalVars.c:27:9:27:12 | copy | | globalVars.c:8:7:8:10 | copy | globalVars.c:30:15:30:18 | copy | | globalVars.c:8:7:8:10 | copy | globalVars.c:30:15:30:18 | copy | | globalVars.c:8:7:8:10 | copy | globalVars.c:30:15:30:18 | copy | @@ -9,14 +8,12 @@ edges | globalVars.c:8:7:8:10 | copy | globalVars.c:35:11:35:14 | copy | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:38:9:38:13 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:38:9:38:13 | copy2 | -| globalVars.c:9:7:9:11 | copy2 | globalVars.c:38:9:38:13 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:41:15:41:19 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:41:15:41:19 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:41:15:41:19 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:44:15:44:19 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:50:9:50:13 | copy2 | | globalVars.c:9:7:9:11 | copy2 | globalVars.c:50:9:50:13 | copy2 | -| globalVars.c:9:7:9:11 | copy2 | globalVars.c:50:9:50:13 | copy2 | | globalVars.c:11:22:11:25 | argv | globalVars.c:8:7:8:10 | copy | | globalVars.c:11:22:11:25 | argv | globalVars.c:12:2:12:15 | ... = ... | | globalVars.c:12:2:12:15 | ... = ... | globalVars.c:8:7:8:10 | copy | @@ -37,8 +34,6 @@ edges | globalVars.c:41:15:41:19 | copy2 | globalVars.c:41:15:41:19 | copy2 | | globalVars.c:41:15:41:19 | copy2 | globalVars.c:50:9:50:13 | copy2 | | globalVars.c:41:15:41:19 | copy2 | globalVars.c:50:9:50:13 | copy2 | -| globalVars.c:41:15:41:19 | copy2 | globalVars.c:50:9:50:13 | copy2 | -| globalVars.c:44:15:44:19 | copy2 | globalVars.c:50:9:50:13 | copy2 | | globalVars.c:44:15:44:19 | copy2 | globalVars.c:50:9:50:13 | copy2 | | globalVars.c:44:15:44:19 | copy2 | globalVars.c:50:9:50:13 | copy2 | subpaths @@ -53,7 +48,6 @@ nodes | globalVars.c:24:11:24:14 | argv | semmle.label | argv | | globalVars.c:27:9:27:12 | copy | semmle.label | copy | | globalVars.c:27:9:27:12 | copy | semmle.label | copy | -| globalVars.c:27:9:27:12 | copy | semmle.label | copy | | globalVars.c:30:15:30:18 | copy | semmle.label | copy | | globalVars.c:30:15:30:18 | copy | semmle.label | copy | | globalVars.c:30:15:30:18 | copy | semmle.label | copy | @@ -61,14 +55,12 @@ nodes | globalVars.c:35:11:35:14 | copy | semmle.label | copy | | globalVars.c:38:9:38:13 | copy2 | semmle.label | copy2 | | globalVars.c:38:9:38:13 | copy2 | semmle.label | copy2 | -| globalVars.c:38:9:38:13 | copy2 | semmle.label | copy2 | | globalVars.c:41:15:41:19 | copy2 | semmle.label | copy2 | | globalVars.c:41:15:41:19 | copy2 | semmle.label | copy2 | | globalVars.c:41:15:41:19 | copy2 | semmle.label | copy2 | | globalVars.c:44:15:44:19 | copy2 | semmle.label | copy2 | | globalVars.c:50:9:50:13 | copy2 | semmle.label | copy2 | | globalVars.c:50:9:50:13 | copy2 | semmle.label | copy2 | -| globalVars.c:50:9:50:13 | copy2 | semmle.label | copy2 | #select | globalVars.c:27:9:27:12 | copy | globalVars.c:24:11:24:14 | argv | globalVars.c:27:9:27:12 | copy | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | globalVars.c:24:11:24:14 | argv | argv | | globalVars.c:30:15:30:18 | copy | globalVars.c:24:11:24:14 | argv | globalVars.c:30:15:30:18 | copy | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(str), which calls printf(format). | globalVars.c:24:11:24:14 | argv | argv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/ifs/ifs.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/ifs/ifs.expected index cac090d1c93..8b512068877 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/ifs/ifs.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/ifs/ifs.expected @@ -3,10 +3,6 @@ edges | ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 | | ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 | | ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 | -| ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 | -| ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 | -| ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 | -| ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 | | ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 | | ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 | | ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 | @@ -15,10 +11,6 @@ edges | ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | i1 | | ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | i1 | | ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | i1 | -| ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | i1 | -| ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | i1 | -| ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | i2 | -| ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | i2 | | ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | i2 | | ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | i2 | | ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | i2 | @@ -27,10 +19,6 @@ edges | ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | i3 | | ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | i3 | | ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | i3 | -| ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | i3 | -| ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | i3 | -| ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | i4 | -| ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | i4 | | ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | i4 | | ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | i4 | | ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | i4 | @@ -39,10 +27,6 @@ edges | ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | i5 | | ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | i5 | | ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | i5 | -| ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | i5 | -| ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | i5 | -| ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | i6 | -| ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | i6 | | ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | i6 | | ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | i6 | | ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | i6 | @@ -51,16 +35,10 @@ edges | ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | i7 | | ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | i7 | | ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | i7 | -| ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | i7 | -| ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | i7 | | ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 | | ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 | | ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 | | ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 | -| ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 | -| ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 | -| ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | i9 | -| ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | i9 | | ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | i9 | | ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | i9 | | ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | i9 | @@ -71,57 +49,46 @@ nodes | ifs.c:61:8:61:11 | argv | semmle.label | argv | | ifs.c:62:9:62:10 | c7 | semmle.label | c7 | | ifs.c:62:9:62:10 | c7 | semmle.label | c7 | -| ifs.c:62:9:62:10 | c7 | semmle.label | c7 | | ifs.c:68:8:68:11 | argv | semmle.label | argv | | ifs.c:68:8:68:11 | argv | semmle.label | argv | | ifs.c:69:9:69:10 | c8 | semmle.label | c8 | | ifs.c:69:9:69:10 | c8 | semmle.label | c8 | -| ifs.c:69:9:69:10 | c8 | semmle.label | c8 | | ifs.c:74:8:74:11 | argv | semmle.label | argv | | ifs.c:74:8:74:11 | argv | semmle.label | argv | | ifs.c:75:9:75:10 | i1 | semmle.label | i1 | | ifs.c:75:9:75:10 | i1 | semmle.label | i1 | -| ifs.c:75:9:75:10 | i1 | semmle.label | i1 | | ifs.c:80:8:80:11 | argv | semmle.label | argv | | ifs.c:80:8:80:11 | argv | semmle.label | argv | | ifs.c:81:9:81:10 | i2 | semmle.label | i2 | | ifs.c:81:9:81:10 | i2 | semmle.label | i2 | -| ifs.c:81:9:81:10 | i2 | semmle.label | i2 | | ifs.c:86:8:86:11 | argv | semmle.label | argv | | ifs.c:86:8:86:11 | argv | semmle.label | argv | | ifs.c:87:9:87:10 | i3 | semmle.label | i3 | | ifs.c:87:9:87:10 | i3 | semmle.label | i3 | -| ifs.c:87:9:87:10 | i3 | semmle.label | i3 | | ifs.c:92:8:92:11 | argv | semmle.label | argv | | ifs.c:92:8:92:11 | argv | semmle.label | argv | | ifs.c:93:9:93:10 | i4 | semmle.label | i4 | | ifs.c:93:9:93:10 | i4 | semmle.label | i4 | -| ifs.c:93:9:93:10 | i4 | semmle.label | i4 | | ifs.c:98:8:98:11 | argv | semmle.label | argv | | ifs.c:98:8:98:11 | argv | semmle.label | argv | | ifs.c:99:9:99:10 | i5 | semmle.label | i5 | | ifs.c:99:9:99:10 | i5 | semmle.label | i5 | -| ifs.c:99:9:99:10 | i5 | semmle.label | i5 | | ifs.c:105:8:105:11 | argv | semmle.label | argv | | ifs.c:105:8:105:11 | argv | semmle.label | argv | | ifs.c:106:9:106:10 | i6 | semmle.label | i6 | | ifs.c:106:9:106:10 | i6 | semmle.label | i6 | -| ifs.c:106:9:106:10 | i6 | semmle.label | i6 | | ifs.c:111:8:111:11 | argv | semmle.label | argv | | ifs.c:111:8:111:11 | argv | semmle.label | argv | | ifs.c:112:9:112:10 | i7 | semmle.label | i7 | | ifs.c:112:9:112:10 | i7 | semmle.label | i7 | -| ifs.c:112:9:112:10 | i7 | semmle.label | i7 | | ifs.c:117:8:117:11 | argv | semmle.label | argv | | ifs.c:117:8:117:11 | argv | semmle.label | argv | | ifs.c:118:9:118:10 | i8 | semmle.label | i8 | | ifs.c:118:9:118:10 | i8 | semmle.label | i8 | -| ifs.c:118:9:118:10 | i8 | semmle.label | i8 | | ifs.c:123:8:123:11 | argv | semmle.label | argv | | ifs.c:123:8:123:11 | argv | semmle.label | argv | | ifs.c:124:9:124:10 | i9 | semmle.label | i9 | | ifs.c:124:9:124:10 | i9 | semmle.label | i9 | -| ifs.c:124:9:124:10 | i9 | semmle.label | i9 | #select | ifs.c:62:9:62:10 | c7 | ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:61:8:61:11 | argv | argv | | ifs.c:69:9:69:10 | c8 | ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:68:8:68:11 | argv | argv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticUncontrolled.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticUncontrolled.expected index 2c14a5968ad..49766a8f25d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticUncontrolled.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticUncontrolled.expected @@ -5,18 +5,6 @@ edges | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | @@ -30,12 +18,6 @@ nodes | examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | | examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | | examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | -| examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | -| examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | -| examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | -| examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | -| examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | -| examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | | examples.cpp:25:31:25:34 | data | semmle.label | data | | examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | | examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | @@ -43,12 +25,6 @@ nodes | examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | | examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | | examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | -| examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | -| examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | -| examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | -| examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | -| examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | -| examples.cpp:35:26:35:33 | call to rand | semmle.label | call to rand | | examples.cpp:38:9:38:12 | data | semmle.label | data | subpaths #select @@ -58,18 +34,6 @@ subpaths | examples.cpp:25:31:25:34 | data | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:22:26:22:33 | call to rand | uncontrolled value | | examples.cpp:25:31:25:34 | data | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:22:26:22:33 | call to rand | uncontrolled value | | examples.cpp:25:31:25:34 | data | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:22:26:22:33 | call to rand | uncontrolled value | -| examples.cpp:25:31:25:34 | data | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:22:26:22:33 | call to rand | uncontrolled value | -| examples.cpp:25:31:25:34 | data | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:22:26:22:33 | call to rand | uncontrolled value | -| examples.cpp:25:31:25:34 | data | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:22:26:22:33 | call to rand | uncontrolled value | -| examples.cpp:25:31:25:34 | data | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:22:26:22:33 | call to rand | uncontrolled value | -| examples.cpp:25:31:25:34 | data | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:22:26:22:33 | call to rand | uncontrolled value | -| examples.cpp:25:31:25:34 | data | examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:22:26:22:33 | call to rand | uncontrolled value | -| examples.cpp:38:9:38:12 | data | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:35:26:35:33 | call to rand | uncontrolled value | -| examples.cpp:38:9:38:12 | data | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:35:26:35:33 | call to rand | uncontrolled value | -| examples.cpp:38:9:38:12 | data | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:35:26:35:33 | call to rand | uncontrolled value | -| examples.cpp:38:9:38:12 | data | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:35:26:35:33 | call to rand | uncontrolled value | -| examples.cpp:38:9:38:12 | data | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:35:26:35:33 | call to rand | uncontrolled value | -| examples.cpp:38:9:38:12 | data | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:35:26:35:33 | call to rand | uncontrolled value | | examples.cpp:38:9:38:12 | data | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:35:26:35:33 | call to rand | uncontrolled value | | examples.cpp:38:9:38:12 | data | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:35:26:35:33 | call to rand | uncontrolled value | | examples.cpp:38:9:38:12 | data | examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | This arithmetic expression depends on an $@, potentially causing an underflow. | examples.cpp:35:26:35:33 | call to rand | uncontrolled value | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/ArithmeticUncontrolled/ArithmeticUncontrolled.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/ArithmeticUncontrolled/ArithmeticUncontrolled.expected index 0363a0909a5..fc87b3b4878 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/ArithmeticUncontrolled/ArithmeticUncontrolled.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/ArithmeticUncontrolled/ArithmeticUncontrolled.expected @@ -9,7 +9,6 @@ edges | test.c:125:13:125:16 | call to rand | test.c:127:9:127:9 | r | | test.c:131:13:131:16 | call to rand | test.c:133:5:133:5 | r | | test.c:137:13:137:16 | call to rand | test.c:139:10:139:10 | r | -| test.c:155:22:155:25 | call to rand | test.c:157:9:157:9 | r | | test.c:155:22:155:27 | call to rand | test.c:157:9:157:9 | r | | test.cpp:6:5:6:12 | get_rand indirection | test.cpp:24:11:24:18 | call to get_rand | | test.cpp:8:9:8:12 | call to rand | test.cpp:6:5:6:12 | get_rand indirection | @@ -25,7 +24,6 @@ edges | test.cpp:137:10:137:13 | call to rand | test.cpp:146:9:146:9 | y | | test.cpp:151:10:151:13 | call to rand | test.cpp:154:10:154:10 | b | | test.cpp:169:11:169:14 | call to rand | test.cpp:171:11:171:16 | y | -| test.cpp:169:11:169:14 | call to rand | test.cpp:171:16:171:16 | y | | test.cpp:189:10:189:13 | call to rand | test.cpp:196:7:196:7 | x | | test.cpp:189:10:189:13 | call to rand | test.cpp:198:7:198:7 | x | | test.cpp:189:10:189:13 | call to rand | test.cpp:199:7:199:7 | x | @@ -52,7 +50,6 @@ nodes | test.c:133:5:133:5 | r | semmle.label | r | | test.c:137:13:137:16 | call to rand | semmle.label | call to rand | | test.c:139:10:139:10 | r | semmle.label | r | -| test.c:155:22:155:25 | call to rand | semmle.label | call to rand | | test.c:155:22:155:27 | call to rand | semmle.label | call to rand | | test.c:157:9:157:9 | r | semmle.label | r | | test.cpp:6:5:6:12 | get_rand indirection | semmle.label | get_rand indirection | @@ -77,7 +74,6 @@ nodes | test.cpp:154:10:154:10 | b | semmle.label | b | | test.cpp:169:11:169:14 | call to rand | semmle.label | call to rand | | test.cpp:171:11:171:16 | y | semmle.label | y | -| test.cpp:171:16:171:16 | y | semmle.label | y | | test.cpp:189:10:189:13 | call to rand | semmle.label | call to rand | | test.cpp:190:10:190:13 | call to rand | semmle.label | call to rand | | test.cpp:196:7:196:7 | x | semmle.label | x | @@ -100,7 +96,6 @@ subpaths | test.c:127:9:127:9 | r | test.c:125:13:125:16 | call to rand | test.c:127:9:127:9 | r | This arithmetic expression depends on an $@, potentially causing an overflow. | test.c:125:13:125:16 | call to rand | uncontrolled value | | test.c:133:5:133:5 | r | test.c:131:13:131:16 | call to rand | test.c:133:5:133:5 | r | This arithmetic expression depends on an $@, potentially causing an overflow. | test.c:131:13:131:16 | call to rand | uncontrolled value | | test.c:139:10:139:10 | r | test.c:137:13:137:16 | call to rand | test.c:139:10:139:10 | r | This arithmetic expression depends on an $@, potentially causing an overflow. | test.c:137:13:137:16 | call to rand | uncontrolled value | -| test.c:157:9:157:9 | r | test.c:155:22:155:25 | call to rand | test.c:157:9:157:9 | r | This arithmetic expression depends on an $@, potentially causing an underflow. | test.c:155:22:155:25 | call to rand | uncontrolled value | | test.c:157:9:157:9 | r | test.c:155:22:155:27 | call to rand | test.c:157:9:157:9 | r | This arithmetic expression depends on an $@, potentially causing an underflow. | test.c:155:22:155:25 | call to rand | uncontrolled value | | test.cpp:25:7:25:7 | r | test.cpp:8:9:8:12 | call to rand | test.cpp:25:7:25:7 | r | This arithmetic expression depends on an $@, potentially causing an overflow. | test.cpp:8:9:8:12 | call to rand | uncontrolled value | | test.cpp:31:7:31:7 | r | test.cpp:13:10:13:13 | call to rand | test.cpp:31:7:31:7 | r | This arithmetic expression depends on an $@, potentially causing an overflow. | test.cpp:13:10:13:13 | call to rand | uncontrolled value | @@ -110,7 +105,6 @@ subpaths | test.cpp:146:9:146:9 | y | test.cpp:137:10:137:13 | call to rand | test.cpp:146:9:146:9 | y | This arithmetic expression depends on an $@, potentially causing an overflow. | test.cpp:137:10:137:13 | call to rand | uncontrolled value | | test.cpp:154:10:154:10 | b | test.cpp:151:10:151:13 | call to rand | test.cpp:154:10:154:10 | b | This arithmetic expression depends on an $@, potentially causing an overflow. | test.cpp:151:10:151:13 | call to rand | uncontrolled value | | test.cpp:171:11:171:16 | y | test.cpp:169:11:169:14 | call to rand | test.cpp:171:11:171:16 | y | This arithmetic expression depends on an $@, potentially causing an overflow. | test.cpp:169:11:169:14 | call to rand | uncontrolled value | -| test.cpp:171:16:171:16 | y | test.cpp:169:11:169:14 | call to rand | test.cpp:171:16:171:16 | y | This arithmetic expression depends on an $@, potentially causing an overflow. | test.cpp:169:11:169:14 | call to rand | uncontrolled value | | test.cpp:196:7:196:7 | x | test.cpp:189:10:189:13 | call to rand | test.cpp:196:7:196:7 | x | This arithmetic expression depends on an $@, potentially causing an overflow. | test.cpp:189:10:189:13 | call to rand | uncontrolled value | | test.cpp:198:7:198:7 | x | test.cpp:189:10:189:13 | call to rand | test.cpp:198:7:198:7 | x | This arithmetic expression depends on an $@, potentially causing an overflow. | test.cpp:189:10:189:13 | call to rand | uncontrolled value | | test.cpp:199:7:199:7 | x | test.cpp:189:10:189:13 | call to rand | test.cpp:199:7:199:7 | x | This arithmetic expression depends on an $@, potentially causing an overflow. | test.cpp:189:10:189:13 | call to rand | uncontrolled value | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected index cc99bc8675b..e8e611e1961 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected @@ -3,7 +3,7 @@ edges | test.cpp:39:27:39:30 | argv indirection | test.cpp:44:38:44:63 | ... * ... | | test.cpp:39:27:39:30 | argv indirection | test.cpp:46:38:46:63 | ... + ... | | test.cpp:39:27:39:30 | argv indirection | test.cpp:49:32:49:35 | size | -| test.cpp:39:27:39:30 | argv indirection | test.cpp:50:26:50:29 | size | +| test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | size | | test.cpp:39:27:39:30 | argv indirection | test.cpp:53:35:53:60 | ... * ... | | test.cpp:124:18:124:23 | call to getenv | test.cpp:128:24:128:41 | ... * ... | | test.cpp:124:18:124:31 | call to getenv indirection | test.cpp:128:24:128:41 | ... * ... | @@ -40,7 +40,7 @@ nodes | test.cpp:44:38:44:63 | ... * ... | semmle.label | ... * ... | | test.cpp:46:38:46:63 | ... + ... | semmle.label | ... + ... | | test.cpp:49:32:49:35 | size | semmle.label | size | -| test.cpp:50:26:50:29 | size | semmle.label | size | +| test.cpp:50:17:50:30 | size | semmle.label | size | | test.cpp:53:35:53:60 | ... * ... | semmle.label | ... * ... | | test.cpp:124:18:124:23 | call to getenv | semmle.label | call to getenv | | test.cpp:124:18:124:31 | call to getenv indirection | semmle.label | call to getenv indirection | @@ -82,7 +82,7 @@ subpaths | test.cpp:44:31:44:36 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:44:38:44:63 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:46:31:46:36 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:46:38:46:63 | ... + ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:49:25:49:30 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:49:32:49:35 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | -| test.cpp:50:17:50:30 | new[] | test.cpp:39:27:39:30 | argv indirection | test.cpp:50:26:50:29 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | +| test.cpp:50:17:50:30 | new[] | test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:53:21:53:27 | call to realloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:53:35:53:60 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:128:17:128:22 | call to malloc | test.cpp:124:18:124:23 | call to getenv | test.cpp:128:24:128:41 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:124:18:124:23 | call to getenv | user input (an environment variable) | | test.cpp:128:17:128:22 | call to malloc | test.cpp:124:18:124:31 | call to getenv indirection | test.cpp:128:24:128:41 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:124:18:124:31 | call to getenv indirection | user input (an environment variable) | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected index edc9be764a6..5d0d56ddbe4 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected @@ -3,74 +3,123 @@ edges | test.cpp:4:15:4:20 | call to malloc | test.cpp:5:15:5:22 | ... + ... | | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | +| test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | q indirection | +| test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | q indirection | | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | * ... | +| test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | ... + ... indirection | | test.cpp:5:15:5:22 | ... + ... | test.cpp:5:15:5:22 | ... + ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | q indirection | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | q indirection | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | q indirection | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | q indirection | | test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | * ... | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | ... + ... indirection | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | ... + ... indirection | | test.cpp:6:14:6:15 | * ... | test.cpp:8:14:8:21 | * ... | +| test.cpp:6:14:6:15 | * ... | test.cpp:8:14:8:21 | ... + ... indirection | +| test.cpp:6:14:6:15 | q indirection | test.cpp:8:14:8:21 | * ... | +| test.cpp:6:14:6:15 | q indirection | test.cpp:8:14:8:21 | ... + ... indirection | | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | * ... | +| test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | ... + ... indirection | | test.cpp:28:15:28:20 | call to malloc | test.cpp:29:15:29:28 | ... + ... | | test.cpp:28:15:28:20 | call to malloc | test.cpp:29:15:29:28 | ... + ... | | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | +| test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | q indirection | +| test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | q indirection | | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | * ... | +| test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | ... + ... indirection | | test.cpp:29:15:29:28 | ... + ... | test.cpp:29:15:29:28 | ... + ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | q indirection | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | q indirection | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | q indirection | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | q indirection | | test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | ... + ... indirection | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | ... + ... indirection | | test.cpp:30:14:30:15 | * ... | test.cpp:32:14:32:21 | * ... | +| test.cpp:30:14:30:15 | * ... | test.cpp:32:14:32:21 | ... + ... indirection | +| test.cpp:30:14:30:15 | q indirection | test.cpp:32:14:32:21 | * ... | +| test.cpp:30:14:30:15 | q indirection | test.cpp:32:14:32:21 | ... + ... indirection | | test.cpp:40:15:40:20 | call to malloc | test.cpp:41:15:41:28 | ... + ... | | test.cpp:40:15:40:20 | call to malloc | test.cpp:41:15:41:28 | ... + ... | | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | +| test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | q indirection | +| test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | q indirection | | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | * ... | +| test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | ... + ... indirection | | test.cpp:41:15:41:28 | ... + ... | test.cpp:41:15:41:28 | ... + ... | | test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | | test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | | test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | | test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | +| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | q indirection | +| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | q indirection | +| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | q indirection | +| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | q indirection | | test.cpp:41:15:41:28 | ... + ... | test.cpp:44:14:44:21 | * ... | | test.cpp:41:15:41:28 | ... + ... | test.cpp:44:14:44:21 | * ... | +| test.cpp:41:15:41:28 | ... + ... | test.cpp:44:14:44:21 | ... + ... indirection | +| test.cpp:41:15:41:28 | ... + ... | test.cpp:44:14:44:21 | ... + ... indirection | | test.cpp:42:14:42:15 | * ... | test.cpp:44:14:44:21 | * ... | +| test.cpp:42:14:42:15 | * ... | test.cpp:44:14:44:21 | ... + ... indirection | +| test.cpp:42:14:42:15 | q indirection | test.cpp:44:14:44:21 | * ... | +| test.cpp:42:14:42:15 | q indirection | test.cpp:44:14:44:21 | ... + ... indirection | | test.cpp:51:33:51:35 | end | test.cpp:60:34:60:37 | mk_array output argument | | test.cpp:52:19:52:24 | call to malloc | test.cpp:53:5:53:23 | ... = ... | | test.cpp:52:19:52:24 | call to malloc | test.cpp:53:12:53:23 | ... + ... | | test.cpp:53:5:53:23 | ... = ... | test.cpp:51:33:51:35 | end | | test.cpp:53:12:53:23 | ... + ... | test.cpp:53:5:53:23 | ... = ... | | test.cpp:60:34:60:37 | mk_array output argument | test.cpp:67:9:67:14 | ... = ... | -| test.cpp:194:23:194:28 | call to malloc | test.cpp:195:17:195:23 | ... + ... | -| test.cpp:194:23:194:28 | call to malloc | test.cpp:195:17:195:23 | ... + ... | -| test.cpp:194:23:194:28 | call to malloc | test.cpp:201:5:201:19 | ... = ... | +| test.cpp:194:15:194:33 | call to malloc | test.cpp:195:17:195:23 | ... + ... | +| test.cpp:194:15:194:33 | call to malloc | test.cpp:195:17:195:23 | ... + ... | +| test.cpp:194:15:194:33 | call to malloc | test.cpp:201:5:201:19 | ... = ... | | test.cpp:195:17:195:23 | ... + ... | test.cpp:195:17:195:23 | ... + ... | | test.cpp:195:17:195:23 | ... + ... | test.cpp:201:5:201:19 | ... = ... | | test.cpp:195:17:195:23 | ... + ... | test.cpp:201:5:201:19 | ... = ... | -| test.cpp:205:23:205:28 | call to malloc | test.cpp:206:17:206:23 | ... + ... | -| test.cpp:205:23:205:28 | call to malloc | test.cpp:206:17:206:23 | ... + ... | -| test.cpp:205:23:205:28 | call to malloc | test.cpp:213:5:213:13 | ... = ... | +| test.cpp:205:15:205:33 | call to malloc | test.cpp:206:17:206:23 | ... + ... | +| test.cpp:205:15:205:33 | call to malloc | test.cpp:206:17:206:23 | ... + ... | +| test.cpp:205:15:205:33 | call to malloc | test.cpp:213:5:213:13 | ... = ... | | test.cpp:206:17:206:23 | ... + ... | test.cpp:206:17:206:23 | ... + ... | | test.cpp:206:17:206:23 | ... + ... | test.cpp:213:5:213:13 | ... = ... | | test.cpp:206:17:206:23 | ... + ... | test.cpp:213:5:213:13 | ... = ... | | test.cpp:231:18:231:30 | new[] | test.cpp:232:3:232:20 | ... = ... | | test.cpp:238:20:238:32 | new[] | test.cpp:239:5:239:22 | ... = ... | -| test.cpp:248:24:248:30 | call to realloc | test.cpp:254:9:254:16 | ... = ... | +| test.cpp:248:13:248:36 | call to realloc | test.cpp:254:9:254:16 | ... = ... | | test.cpp:260:13:260:24 | new[] | test.cpp:261:14:261:21 | ... + ... | | test.cpp:260:13:260:24 | new[] | test.cpp:261:14:261:21 | ... + ... | | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | * ... | | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | * ... | +| test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | x indirection | +| test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | x indirection | | test.cpp:261:14:261:21 | ... + ... | test.cpp:261:14:261:21 | ... + ... | | test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | | test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | | test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | | test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | +| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | x indirection | +| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | x indirection | +| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | x indirection | +| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | x indirection | | test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | * ... | | test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | * ... | +| test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | x indirection | +| test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | x indirection | +| test.cpp:264:13:264:14 | x indirection | test.cpp:264:13:264:14 | * ... | +| test.cpp:264:13:264:14 | x indirection | test.cpp:264:13:264:14 | * ... | +| test.cpp:264:13:264:14 | x indirection | test.cpp:264:13:264:14 | x indirection | +| test.cpp:264:13:264:14 | x indirection | test.cpp:264:13:264:14 | x indirection | | test.cpp:270:13:270:24 | new[] | test.cpp:271:14:271:21 | ... + ... | | test.cpp:270:13:270:24 | new[] | test.cpp:271:14:271:21 | ... + ... | | test.cpp:270:13:270:24 | new[] | test.cpp:274:5:274:10 | ... = ... | @@ -81,80 +130,95 @@ edges | test.cpp:355:14:355:27 | new[] | test.cpp:356:15:356:23 | ... + ... | | test.cpp:355:14:355:27 | new[] | test.cpp:357:24:357:30 | ... + ... | | test.cpp:355:14:355:27 | new[] | test.cpp:357:24:357:30 | ... + ... | -| test.cpp:355:14:355:27 | new[] | test.cpp:358:14:358:26 | * ... | -| test.cpp:355:14:355:27 | new[] | test.cpp:359:14:359:32 | * ... | +| test.cpp:355:14:355:27 | new[] | test.cpp:358:14:358:26 | end_plus_one indirection | +| test.cpp:355:14:355:27 | new[] | test.cpp:359:14:359:32 | ... + ... indirection | | test.cpp:356:15:356:23 | ... + ... | test.cpp:356:15:356:23 | ... + ... | -| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | * ... | -| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | * ... | -| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | * ... | -| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | * ... | +| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | end_plus_one indirection | +| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | end_plus_one indirection | +| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | ... + ... indirection | +| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | ... + ... indirection | | test.cpp:357:24:357:30 | ... + ... | test.cpp:357:24:357:30 | ... + ... | -| test.cpp:357:24:357:30 | ... + ... | test.cpp:358:14:358:26 | * ... | -| test.cpp:357:24:357:30 | ... + ... | test.cpp:358:14:358:26 | * ... | -| test.cpp:357:24:357:30 | ... + ... | test.cpp:359:14:359:32 | * ... | -| test.cpp:357:24:357:30 | ... + ... | test.cpp:359:14:359:32 | * ... | +| test.cpp:357:24:357:30 | ... + ... | test.cpp:358:14:358:26 | end_plus_one indirection | +| test.cpp:357:24:357:30 | ... + ... | test.cpp:358:14:358:26 | end_plus_one indirection | +| test.cpp:357:24:357:30 | ... + ... | test.cpp:359:14:359:32 | ... + ... indirection | +| test.cpp:357:24:357:30 | ... + ... | test.cpp:359:14:359:32 | ... + ... indirection | | test.cpp:377:14:377:27 | new[] | test.cpp:378:15:378:23 | ... + ... | | test.cpp:377:14:377:27 | new[] | test.cpp:378:15:378:23 | ... + ... | | test.cpp:377:14:377:27 | new[] | test.cpp:381:5:381:9 | ... ++ | | test.cpp:377:14:377:27 | new[] | test.cpp:381:5:381:9 | ... ++ | -| test.cpp:377:14:377:27 | new[] | test.cpp:384:13:384:16 | * ... | +| test.cpp:377:14:377:27 | new[] | test.cpp:384:13:384:16 | end indirection | | test.cpp:378:15:378:23 | ... + ... | test.cpp:378:15:378:23 | ... + ... | -| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | * ... | -| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | * ... | +| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | end indirection | +| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | end indirection | | test.cpp:381:5:381:9 | ... ++ | test.cpp:381:5:381:9 | ... ++ | -| test.cpp:381:5:381:9 | ... ++ | test.cpp:384:13:384:16 | * ... | +| test.cpp:381:5:381:9 | ... ++ | test.cpp:384:13:384:16 | end indirection | | test.cpp:410:14:410:27 | new[] | test.cpp:411:15:411:23 | & ... | | test.cpp:410:14:410:27 | new[] | test.cpp:411:15:411:23 | & ... | +| test.cpp:410:14:410:27 | new[] | test.cpp:411:15:411:23 | access to array | | test.cpp:410:14:410:27 | new[] | test.cpp:413:5:413:8 | ... ++ | | test.cpp:410:14:410:27 | new[] | test.cpp:413:5:413:8 | ... ++ | | test.cpp:410:14:410:27 | new[] | test.cpp:415:7:415:15 | ... = ... | | test.cpp:411:15:411:23 | & ... | test.cpp:411:15:411:23 | & ... | | test.cpp:411:15:411:23 | & ... | test.cpp:415:7:415:15 | ... = ... | | test.cpp:411:15:411:23 | & ... | test.cpp:415:7:415:15 | ... = ... | +| test.cpp:411:15:411:23 | access to array | test.cpp:411:15:411:23 | & ... | +| test.cpp:411:15:411:23 | access to array | test.cpp:415:7:415:15 | ... = ... | | test.cpp:413:5:413:8 | ... ++ | test.cpp:413:5:413:8 | ... ++ | | test.cpp:413:5:413:8 | ... ++ | test.cpp:415:7:415:15 | ... = ... | | test.cpp:413:5:413:8 | ... ++ | test.cpp:415:7:415:15 | ... = ... | | test.cpp:421:14:421:27 | new[] | test.cpp:422:15:422:23 | & ... | | test.cpp:421:14:421:27 | new[] | test.cpp:422:15:422:23 | & ... | +| test.cpp:421:14:421:27 | new[] | test.cpp:422:15:422:23 | access to array | | test.cpp:421:14:421:27 | new[] | test.cpp:424:5:424:8 | ... ++ | | test.cpp:421:14:421:27 | new[] | test.cpp:424:5:424:8 | ... ++ | | test.cpp:421:14:421:27 | new[] | test.cpp:426:7:426:15 | ... = ... | | test.cpp:422:15:422:23 | & ... | test.cpp:422:15:422:23 | & ... | | test.cpp:422:15:422:23 | & ... | test.cpp:426:7:426:15 | ... = ... | | test.cpp:422:15:422:23 | & ... | test.cpp:426:7:426:15 | ... = ... | +| test.cpp:422:15:422:23 | access to array | test.cpp:422:15:422:23 | & ... | +| test.cpp:422:15:422:23 | access to array | test.cpp:426:7:426:15 | ... = ... | | test.cpp:424:5:424:8 | ... ++ | test.cpp:424:5:424:8 | ... ++ | | test.cpp:424:5:424:8 | ... ++ | test.cpp:426:7:426:15 | ... = ... | | test.cpp:424:5:424:8 | ... ++ | test.cpp:426:7:426:15 | ... = ... | | test.cpp:432:14:432:27 | new[] | test.cpp:433:15:433:23 | & ... | | test.cpp:432:14:432:27 | new[] | test.cpp:433:15:433:23 | & ... | +| test.cpp:432:14:432:27 | new[] | test.cpp:433:15:433:23 | access to array | | test.cpp:432:14:432:27 | new[] | test.cpp:436:5:436:8 | ... ++ | | test.cpp:432:14:432:27 | new[] | test.cpp:436:5:436:8 | ... ++ | | test.cpp:432:14:432:27 | new[] | test.cpp:438:7:438:15 | ... = ... | | test.cpp:433:15:433:23 | & ... | test.cpp:433:15:433:23 | & ... | | test.cpp:433:15:433:23 | & ... | test.cpp:438:7:438:15 | ... = ... | | test.cpp:433:15:433:23 | & ... | test.cpp:438:7:438:15 | ... = ... | +| test.cpp:433:15:433:23 | access to array | test.cpp:433:15:433:23 | & ... | +| test.cpp:433:15:433:23 | access to array | test.cpp:438:7:438:15 | ... = ... | | test.cpp:436:5:436:8 | ... ++ | test.cpp:436:5:436:8 | ... ++ | | test.cpp:436:5:436:8 | ... ++ | test.cpp:438:7:438:15 | ... = ... | | test.cpp:436:5:436:8 | ... ++ | test.cpp:438:7:438:15 | ... = ... | | test.cpp:444:14:444:27 | new[] | test.cpp:445:15:445:23 | & ... | | test.cpp:444:14:444:27 | new[] | test.cpp:445:15:445:23 | & ... | +| test.cpp:444:14:444:27 | new[] | test.cpp:445:15:445:23 | access to array | | test.cpp:444:14:444:27 | new[] | test.cpp:448:5:448:8 | ... ++ | | test.cpp:444:14:444:27 | new[] | test.cpp:448:5:448:8 | ... ++ | | test.cpp:444:14:444:27 | new[] | test.cpp:450:7:450:15 | ... = ... | | test.cpp:445:15:445:23 | & ... | test.cpp:445:15:445:23 | & ... | | test.cpp:445:15:445:23 | & ... | test.cpp:450:7:450:15 | ... = ... | | test.cpp:445:15:445:23 | & ... | test.cpp:450:7:450:15 | ... = ... | +| test.cpp:445:15:445:23 | access to array | test.cpp:445:15:445:23 | & ... | +| test.cpp:445:15:445:23 | access to array | test.cpp:450:7:450:15 | ... = ... | | test.cpp:448:5:448:8 | ... ++ | test.cpp:448:5:448:8 | ... ++ | | test.cpp:448:5:448:8 | ... ++ | test.cpp:450:7:450:15 | ... = ... | | test.cpp:448:5:448:8 | ... ++ | test.cpp:450:7:450:15 | ... = ... | | test.cpp:480:14:480:27 | new[] | test.cpp:481:15:481:23 | & ... | | test.cpp:480:14:480:27 | new[] | test.cpp:481:15:481:23 | & ... | +| test.cpp:480:14:480:27 | new[] | test.cpp:481:15:481:23 | access to array | | test.cpp:480:14:480:27 | new[] | test.cpp:484:5:484:8 | ... ++ | | test.cpp:480:14:480:27 | new[] | test.cpp:484:5:484:8 | ... ++ | | test.cpp:480:14:480:27 | new[] | test.cpp:486:7:486:15 | ... = ... | | test.cpp:481:15:481:23 | & ... | test.cpp:481:15:481:23 | & ... | | test.cpp:481:15:481:23 | & ... | test.cpp:486:7:486:15 | ... = ... | | test.cpp:481:15:481:23 | & ... | test.cpp:486:7:486:15 | ... = ... | +| test.cpp:481:15:481:23 | access to array | test.cpp:481:15:481:23 | & ... | +| test.cpp:481:15:481:23 | access to array | test.cpp:486:7:486:15 | ... = ... | | test.cpp:484:5:484:8 | ... ++ | test.cpp:484:5:484:8 | ... ++ | | test.cpp:484:5:484:8 | ... ++ | test.cpp:486:7:486:15 | ... = ... | | test.cpp:484:5:484:8 | ... ++ | test.cpp:486:7:486:15 | ... = ... | @@ -164,10 +228,12 @@ edges | test.cpp:695:13:695:26 | new[] | test.cpp:698:5:698:10 | ... += ... | | test.cpp:695:13:695:26 | new[] | test.cpp:698:5:698:10 | ... += ... | | test.cpp:698:5:698:10 | ... += ... | test.cpp:698:5:698:10 | ... += ... | -| test.cpp:698:5:698:10 | ... += ... | test.cpp:701:15:701:16 | * ... | +| test.cpp:698:5:698:10 | ... += ... | test.cpp:701:15:701:16 | p indirection | | test.cpp:705:18:705:18 | q | test.cpp:705:18:705:18 | q | | test.cpp:705:18:705:18 | q | test.cpp:706:12:706:13 | * ... | | test.cpp:705:18:705:18 | q | test.cpp:706:12:706:13 | * ... | +| test.cpp:705:18:705:18 | q | test.cpp:706:12:706:13 | q indirection | +| test.cpp:705:18:705:18 | q | test.cpp:706:12:706:13 | q indirection | | test.cpp:711:13:711:26 | new[] | test.cpp:714:11:714:11 | q | | test.cpp:714:11:714:11 | q | test.cpp:705:18:705:18 | q | | test.cpp:730:12:730:28 | new[] | test.cpp:732:16:732:26 | ... + ... | @@ -199,32 +265,62 @@ nodes | test.cpp:5:15:5:22 | ... + ... | semmle.label | ... + ... | | test.cpp:6:14:6:15 | * ... | semmle.label | * ... | | test.cpp:6:14:6:15 | * ... | semmle.label | * ... | +| test.cpp:6:14:6:15 | * ... | semmle.label | q indirection | +| test.cpp:6:14:6:15 | * ... | semmle.label | q indirection | +| test.cpp:6:14:6:15 | q indirection | semmle.label | * ... | +| test.cpp:6:14:6:15 | q indirection | semmle.label | * ... | +| test.cpp:6:14:6:15 | q indirection | semmle.label | q indirection | +| test.cpp:6:14:6:15 | q indirection | semmle.label | q indirection | | test.cpp:8:14:8:21 | * ... | semmle.label | * ... | +| test.cpp:8:14:8:21 | * ... | semmle.label | ... + ... indirection | +| test.cpp:8:14:8:21 | ... + ... indirection | semmle.label | * ... | +| test.cpp:8:14:8:21 | ... + ... indirection | semmle.label | ... + ... indirection | | test.cpp:16:15:16:20 | call to malloc | semmle.label | call to malloc | | test.cpp:20:14:20:21 | * ... | semmle.label | * ... | +| test.cpp:20:14:20:21 | * ... | semmle.label | ... + ... indirection | +| test.cpp:20:14:20:21 | ... + ... indirection | semmle.label | * ... | +| test.cpp:20:14:20:21 | ... + ... indirection | semmle.label | ... + ... indirection | | test.cpp:28:15:28:20 | call to malloc | semmle.label | call to malloc | | test.cpp:29:15:29:28 | ... + ... | semmle.label | ... + ... | | test.cpp:29:15:29:28 | ... + ... | semmle.label | ... + ... | | test.cpp:30:14:30:15 | * ... | semmle.label | * ... | | test.cpp:30:14:30:15 | * ... | semmle.label | * ... | +| test.cpp:30:14:30:15 | * ... | semmle.label | q indirection | +| test.cpp:30:14:30:15 | * ... | semmle.label | q indirection | +| test.cpp:30:14:30:15 | q indirection | semmle.label | * ... | +| test.cpp:30:14:30:15 | q indirection | semmle.label | * ... | +| test.cpp:30:14:30:15 | q indirection | semmle.label | q indirection | +| test.cpp:30:14:30:15 | q indirection | semmle.label | q indirection | | test.cpp:32:14:32:21 | * ... | semmle.label | * ... | +| test.cpp:32:14:32:21 | * ... | semmle.label | ... + ... indirection | +| test.cpp:32:14:32:21 | ... + ... indirection | semmle.label | * ... | +| test.cpp:32:14:32:21 | ... + ... indirection | semmle.label | ... + ... indirection | | test.cpp:40:15:40:20 | call to malloc | semmle.label | call to malloc | | test.cpp:41:15:41:28 | ... + ... | semmle.label | ... + ... | | test.cpp:41:15:41:28 | ... + ... | semmle.label | ... + ... | | test.cpp:42:14:42:15 | * ... | semmle.label | * ... | | test.cpp:42:14:42:15 | * ... | semmle.label | * ... | +| test.cpp:42:14:42:15 | * ... | semmle.label | q indirection | +| test.cpp:42:14:42:15 | * ... | semmle.label | q indirection | +| test.cpp:42:14:42:15 | q indirection | semmle.label | * ... | +| test.cpp:42:14:42:15 | q indirection | semmle.label | * ... | +| test.cpp:42:14:42:15 | q indirection | semmle.label | q indirection | +| test.cpp:42:14:42:15 | q indirection | semmle.label | q indirection | | test.cpp:44:14:44:21 | * ... | semmle.label | * ... | +| test.cpp:44:14:44:21 | * ... | semmle.label | ... + ... indirection | +| test.cpp:44:14:44:21 | ... + ... indirection | semmle.label | * ... | +| test.cpp:44:14:44:21 | ... + ... indirection | semmle.label | ... + ... indirection | | test.cpp:51:33:51:35 | end | semmle.label | end | | test.cpp:52:19:52:24 | call to malloc | semmle.label | call to malloc | | test.cpp:53:5:53:23 | ... = ... | semmle.label | ... = ... | | test.cpp:53:12:53:23 | ... + ... | semmle.label | ... + ... | | test.cpp:60:34:60:37 | mk_array output argument | semmle.label | mk_array output argument | | test.cpp:67:9:67:14 | ... = ... | semmle.label | ... = ... | -| test.cpp:194:23:194:28 | call to malloc | semmle.label | call to malloc | +| test.cpp:194:15:194:33 | call to malloc | semmle.label | call to malloc | | test.cpp:195:17:195:23 | ... + ... | semmle.label | ... + ... | | test.cpp:195:17:195:23 | ... + ... | semmle.label | ... + ... | | test.cpp:201:5:201:19 | ... = ... | semmle.label | ... = ... | -| test.cpp:205:23:205:28 | call to malloc | semmle.label | call to malloc | +| test.cpp:205:15:205:33 | call to malloc | semmle.label | call to malloc | | test.cpp:206:17:206:23 | ... + ... | semmle.label | ... + ... | | test.cpp:206:17:206:23 | ... + ... | semmle.label | ... + ... | | test.cpp:213:5:213:13 | ... = ... | semmle.label | ... = ... | @@ -232,13 +328,19 @@ nodes | test.cpp:232:3:232:20 | ... = ... | semmle.label | ... = ... | | test.cpp:238:20:238:32 | new[] | semmle.label | new[] | | test.cpp:239:5:239:22 | ... = ... | semmle.label | ... = ... | -| test.cpp:248:24:248:30 | call to realloc | semmle.label | call to realloc | +| test.cpp:248:13:248:36 | call to realloc | semmle.label | call to realloc | | test.cpp:254:9:254:16 | ... = ... | semmle.label | ... = ... | | test.cpp:260:13:260:24 | new[] | semmle.label | new[] | | test.cpp:261:14:261:21 | ... + ... | semmle.label | ... + ... | | test.cpp:261:14:261:21 | ... + ... | semmle.label | ... + ... | | test.cpp:264:13:264:14 | * ... | semmle.label | * ... | | test.cpp:264:13:264:14 | * ... | semmle.label | * ... | +| test.cpp:264:13:264:14 | * ... | semmle.label | x indirection | +| test.cpp:264:13:264:14 | * ... | semmle.label | x indirection | +| test.cpp:264:13:264:14 | x indirection | semmle.label | * ... | +| test.cpp:264:13:264:14 | x indirection | semmle.label | * ... | +| test.cpp:264:13:264:14 | x indirection | semmle.label | x indirection | +| test.cpp:264:13:264:14 | x indirection | semmle.label | x indirection | | test.cpp:270:13:270:24 | new[] | semmle.label | new[] | | test.cpp:271:14:271:21 | ... + ... | semmle.label | ... + ... | | test.cpp:271:14:271:21 | ... + ... | semmle.label | ... + ... | @@ -248,41 +350,56 @@ nodes | test.cpp:356:15:356:23 | ... + ... | semmle.label | ... + ... | | test.cpp:357:24:357:30 | ... + ... | semmle.label | ... + ... | | test.cpp:357:24:357:30 | ... + ... | semmle.label | ... + ... | -| test.cpp:358:14:358:26 | * ... | semmle.label | * ... | -| test.cpp:359:14:359:32 | * ... | semmle.label | * ... | +| test.cpp:358:14:358:26 | end_plus_one indirection | semmle.label | end_plus_one indirection | +| test.cpp:359:14:359:32 | ... + ... indirection | semmle.label | ... + ... indirection | | test.cpp:377:14:377:27 | new[] | semmle.label | new[] | | test.cpp:378:15:378:23 | ... + ... | semmle.label | ... + ... | | test.cpp:378:15:378:23 | ... + ... | semmle.label | ... + ... | | test.cpp:381:5:381:9 | ... ++ | semmle.label | ... ++ | | test.cpp:381:5:381:9 | ... ++ | semmle.label | ... ++ | -| test.cpp:384:13:384:16 | * ... | semmle.label | * ... | +| test.cpp:384:13:384:16 | end indirection | semmle.label | end indirection | | test.cpp:410:14:410:27 | new[] | semmle.label | new[] | | test.cpp:411:15:411:23 | & ... | semmle.label | & ... | | test.cpp:411:15:411:23 | & ... | semmle.label | & ... | +| test.cpp:411:15:411:23 | & ... | semmle.label | access to array | +| test.cpp:411:15:411:23 | access to array | semmle.label | & ... | +| test.cpp:411:15:411:23 | access to array | semmle.label | access to array | | test.cpp:413:5:413:8 | ... ++ | semmle.label | ... ++ | | test.cpp:413:5:413:8 | ... ++ | semmle.label | ... ++ | | test.cpp:415:7:415:15 | ... = ... | semmle.label | ... = ... | | test.cpp:421:14:421:27 | new[] | semmle.label | new[] | | test.cpp:422:15:422:23 | & ... | semmle.label | & ... | | test.cpp:422:15:422:23 | & ... | semmle.label | & ... | +| test.cpp:422:15:422:23 | & ... | semmle.label | access to array | +| test.cpp:422:15:422:23 | access to array | semmle.label | & ... | +| test.cpp:422:15:422:23 | access to array | semmle.label | access to array | | test.cpp:424:5:424:8 | ... ++ | semmle.label | ... ++ | | test.cpp:424:5:424:8 | ... ++ | semmle.label | ... ++ | | test.cpp:426:7:426:15 | ... = ... | semmle.label | ... = ... | | test.cpp:432:14:432:27 | new[] | semmle.label | new[] | | test.cpp:433:15:433:23 | & ... | semmle.label | & ... | | test.cpp:433:15:433:23 | & ... | semmle.label | & ... | +| test.cpp:433:15:433:23 | & ... | semmle.label | access to array | +| test.cpp:433:15:433:23 | access to array | semmle.label | & ... | +| test.cpp:433:15:433:23 | access to array | semmle.label | access to array | | test.cpp:436:5:436:8 | ... ++ | semmle.label | ... ++ | | test.cpp:436:5:436:8 | ... ++ | semmle.label | ... ++ | | test.cpp:438:7:438:15 | ... = ... | semmle.label | ... = ... | | test.cpp:444:14:444:27 | new[] | semmle.label | new[] | | test.cpp:445:15:445:23 | & ... | semmle.label | & ... | | test.cpp:445:15:445:23 | & ... | semmle.label | & ... | +| test.cpp:445:15:445:23 | & ... | semmle.label | access to array | +| test.cpp:445:15:445:23 | access to array | semmle.label | & ... | +| test.cpp:445:15:445:23 | access to array | semmle.label | access to array | | test.cpp:448:5:448:8 | ... ++ | semmle.label | ... ++ | | test.cpp:448:5:448:8 | ... ++ | semmle.label | ... ++ | | test.cpp:450:7:450:15 | ... = ... | semmle.label | ... = ... | | test.cpp:480:14:480:27 | new[] | semmle.label | new[] | | test.cpp:481:15:481:23 | & ... | semmle.label | & ... | | test.cpp:481:15:481:23 | & ... | semmle.label | & ... | +| test.cpp:481:15:481:23 | & ... | semmle.label | access to array | +| test.cpp:481:15:481:23 | access to array | semmle.label | & ... | +| test.cpp:481:15:481:23 | access to array | semmle.label | access to array | | test.cpp:484:5:484:8 | ... ++ | semmle.label | ... ++ | | test.cpp:484:5:484:8 | ... ++ | semmle.label | ... ++ | | test.cpp:486:7:486:15 | ... = ... | semmle.label | ... = ... | @@ -295,10 +412,13 @@ nodes | test.cpp:695:13:695:26 | new[] | semmle.label | new[] | | test.cpp:698:5:698:10 | ... += ... | semmle.label | ... += ... | | test.cpp:698:5:698:10 | ... += ... | semmle.label | ... += ... | -| test.cpp:701:15:701:16 | * ... | semmle.label | * ... | +| test.cpp:701:15:701:16 | p indirection | semmle.label | p indirection | | test.cpp:705:18:705:18 | q | semmle.label | q | | test.cpp:705:18:705:18 | q | semmle.label | q | | test.cpp:706:12:706:13 | * ... | semmle.label | * ... | +| test.cpp:706:12:706:13 | * ... | semmle.label | q indirection | +| test.cpp:706:12:706:13 | q indirection | semmle.label | * ... | +| test.cpp:706:12:706:13 | q indirection | semmle.label | q indirection | | test.cpp:711:13:711:26 | new[] | semmle.label | new[] | | test.cpp:714:11:714:11 | q | semmle.label | q | | test.cpp:730:12:730:28 | new[] | semmle.label | new[] | @@ -326,23 +446,47 @@ nodes subpaths #select | test.cpp:6:14:6:15 | * ... | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | +| test.cpp:6:14:6:15 | * ... | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | +| test.cpp:6:14:6:15 | q indirection | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | +| test.cpp:6:14:6:15 | q indirection | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | | test.cpp:8:14:8:21 | * ... | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | +| test.cpp:8:14:8:21 | * ... | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | +| test.cpp:8:14:8:21 | ... + ... indirection | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | +| test.cpp:8:14:8:21 | ... + ... indirection | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | | test.cpp:20:14:20:21 | * ... | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:16:15:16:20 | call to malloc | call to malloc | test.cpp:17:19:17:22 | size | size | +| test.cpp:20:14:20:21 | * ... | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:16:15:16:20 | call to malloc | call to malloc | test.cpp:17:19:17:22 | size | size | +| test.cpp:20:14:20:21 | ... + ... indirection | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:16:15:16:20 | call to malloc | call to malloc | test.cpp:17:19:17:22 | size | size | +| test.cpp:20:14:20:21 | ... + ... indirection | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:16:15:16:20 | call to malloc | call to malloc | test.cpp:17:19:17:22 | size | size | | test.cpp:30:14:30:15 | * ... | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | +| test.cpp:30:14:30:15 | * ... | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | +| test.cpp:30:14:30:15 | q indirection | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | +| test.cpp:30:14:30:15 | q indirection | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | | test.cpp:32:14:32:21 | * ... | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | +| test.cpp:32:14:32:21 | * ... | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | +| test.cpp:32:14:32:21 | ... + ... indirection | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | +| test.cpp:32:14:32:21 | ... + ... indirection | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | | test.cpp:42:14:42:15 | * ... | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | +| test.cpp:42:14:42:15 | * ... | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | +| test.cpp:42:14:42:15 | q indirection | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | +| test.cpp:42:14:42:15 | q indirection | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | | test.cpp:44:14:44:21 | * ... | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | +| test.cpp:44:14:44:21 | * ... | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | +| test.cpp:44:14:44:21 | ... + ... indirection | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | +| test.cpp:44:14:44:21 | ... + ... indirection | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | | test.cpp:67:9:67:14 | ... = ... | test.cpp:52:19:52:24 | call to malloc | test.cpp:67:9:67:14 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:52:19:52:24 | call to malloc | call to malloc | test.cpp:53:20:53:23 | size | size | -| test.cpp:201:5:201:19 | ... = ... | test.cpp:194:23:194:28 | call to malloc | test.cpp:201:5:201:19 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:194:23:194:28 | call to malloc | call to malloc | test.cpp:195:21:195:23 | len | len | -| test.cpp:213:5:213:13 | ... = ... | test.cpp:205:23:205:28 | call to malloc | test.cpp:213:5:213:13 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:205:23:205:28 | call to malloc | call to malloc | test.cpp:206:21:206:23 | len | len | +| test.cpp:201:5:201:19 | ... = ... | test.cpp:194:15:194:33 | call to malloc | test.cpp:201:5:201:19 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:194:15:194:33 | call to malloc | call to malloc | test.cpp:195:21:195:23 | len | len | +| test.cpp:213:5:213:13 | ... = ... | test.cpp:205:15:205:33 | call to malloc | test.cpp:213:5:213:13 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:205:15:205:33 | call to malloc | call to malloc | test.cpp:206:21:206:23 | len | len | | test.cpp:232:3:232:20 | ... = ... | test.cpp:231:18:231:30 | new[] | test.cpp:232:3:232:20 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:231:18:231:30 | new[] | new[] | test.cpp:232:11:232:15 | index | index | | test.cpp:239:5:239:22 | ... = ... | test.cpp:238:20:238:32 | new[] | test.cpp:239:5:239:22 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:238:20:238:32 | new[] | new[] | test.cpp:239:13:239:17 | index | index | -| test.cpp:254:9:254:16 | ... = ... | test.cpp:248:24:248:30 | call to realloc | test.cpp:254:9:254:16 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:248:24:248:30 | call to realloc | call to realloc | test.cpp:254:11:254:11 | i | i | +| test.cpp:254:9:254:16 | ... = ... | test.cpp:248:13:248:36 | call to realloc | test.cpp:254:9:254:16 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:248:13:248:36 | call to realloc | call to realloc | test.cpp:254:11:254:11 | i | i | | test.cpp:264:13:264:14 | * ... | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:260:13:260:24 | new[] | new[] | test.cpp:261:19:261:21 | len | len | +| test.cpp:264:13:264:14 | * ... | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | x indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:260:13:260:24 | new[] | new[] | test.cpp:261:19:261:21 | len | len | +| test.cpp:264:13:264:14 | x indirection | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:260:13:260:24 | new[] | new[] | test.cpp:261:19:261:21 | len | len | +| test.cpp:264:13:264:14 | x indirection | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | x indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:260:13:260:24 | new[] | new[] | test.cpp:261:19:261:21 | len | len | | test.cpp:274:5:274:10 | ... = ... | test.cpp:270:13:270:24 | new[] | test.cpp:274:5:274:10 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:270:13:270:24 | new[] | new[] | test.cpp:271:19:271:21 | len | len | -| test.cpp:358:14:358:26 | * ... | test.cpp:355:14:355:27 | new[] | test.cpp:358:14:358:26 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:355:14:355:27 | new[] | new[] | test.cpp:356:20:356:23 | size | size | -| test.cpp:359:14:359:32 | * ... | test.cpp:355:14:355:27 | new[] | test.cpp:359:14:359:32 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 2. | test.cpp:355:14:355:27 | new[] | new[] | test.cpp:356:20:356:23 | size | size | -| test.cpp:384:13:384:16 | * ... | test.cpp:377:14:377:27 | new[] | test.cpp:384:13:384:16 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:377:14:377:27 | new[] | new[] | test.cpp:378:20:378:23 | size | size | +| test.cpp:358:14:358:26 | end_plus_one indirection | test.cpp:355:14:355:27 | new[] | test.cpp:358:14:358:26 | end_plus_one indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:355:14:355:27 | new[] | new[] | test.cpp:356:20:356:23 | size | size | +| test.cpp:359:14:359:32 | ... + ... indirection | test.cpp:355:14:355:27 | new[] | test.cpp:359:14:359:32 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 2. | test.cpp:355:14:355:27 | new[] | new[] | test.cpp:356:20:356:23 | size | size | +| test.cpp:384:13:384:16 | end indirection | test.cpp:377:14:377:27 | new[] | test.cpp:384:13:384:16 | end indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:377:14:377:27 | new[] | new[] | test.cpp:378:20:378:23 | size | size | | test.cpp:415:7:415:15 | ... = ... | test.cpp:410:14:410:27 | new[] | test.cpp:415:7:415:15 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:410:14:410:27 | new[] | new[] | test.cpp:411:19:411:22 | size | size | | test.cpp:426:7:426:15 | ... = ... | test.cpp:421:14:421:27 | new[] | test.cpp:426:7:426:15 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:421:14:421:27 | new[] | new[] | test.cpp:422:19:422:22 | size | size | | test.cpp:438:7:438:15 | ... = ... | test.cpp:432:14:432:27 | new[] | test.cpp:438:7:438:15 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:432:14:432:27 | new[] | new[] | test.cpp:433:19:433:22 | size | size | @@ -351,8 +495,11 @@ subpaths | test.cpp:548:5:548:19 | ... = ... | test.cpp:543:14:543:27 | new[] | test.cpp:548:5:548:19 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:543:14:543:27 | new[] | new[] | test.cpp:548:8:548:14 | src_pos | src_pos | | test.cpp:559:5:559:19 | ... = ... | test.cpp:554:14:554:27 | new[] | test.cpp:559:5:559:19 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:554:14:554:27 | new[] | new[] | test.cpp:559:8:559:14 | src_pos | src_pos | | test.cpp:647:5:647:19 | ... = ... | test.cpp:642:14:642:31 | new[] | test.cpp:647:5:647:19 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:642:14:642:31 | new[] | new[] | test.cpp:647:8:647:14 | src_pos | src_pos | -| test.cpp:701:15:701:16 | * ... | test.cpp:695:13:695:26 | new[] | test.cpp:701:15:701:16 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:695:13:695:26 | new[] | new[] | test.cpp:696:19:696:22 | size | size | +| test.cpp:701:15:701:16 | p indirection | test.cpp:695:13:695:26 | new[] | test.cpp:701:15:701:16 | p indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:695:13:695:26 | new[] | new[] | test.cpp:696:19:696:22 | size | size | | test.cpp:706:12:706:13 | * ... | test.cpp:711:13:711:26 | new[] | test.cpp:706:12:706:13 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:711:13:711:26 | new[] | new[] | test.cpp:712:19:712:22 | size | size | +| test.cpp:706:12:706:13 | * ... | test.cpp:711:13:711:26 | new[] | test.cpp:706:12:706:13 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:711:13:711:26 | new[] | new[] | test.cpp:712:19:712:22 | size | size | +| test.cpp:706:12:706:13 | q indirection | test.cpp:711:13:711:26 | new[] | test.cpp:706:12:706:13 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:711:13:711:26 | new[] | new[] | test.cpp:712:19:712:22 | size | size | +| test.cpp:706:12:706:13 | q indirection | test.cpp:711:13:711:26 | new[] | test.cpp:706:12:706:13 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:711:13:711:26 | new[] | new[] | test.cpp:712:19:712:22 | size | size | | test.cpp:733:5:733:12 | ... = ... | test.cpp:730:12:730:28 | new[] | test.cpp:733:5:733:12 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:730:12:730:28 | new[] | new[] | test.cpp:732:21:732:25 | ... + ... | ... + ... | | test.cpp:767:16:767:29 | access to array | test.cpp:754:18:754:31 | new[] | test.cpp:767:16:767:29 | access to array | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:754:18:754:31 | new[] | new[] | test.cpp:767:22:767:28 | ... + ... | ... + ... | | test.cpp:767:16:767:29 | access to array | test.cpp:754:18:754:31 | new[] | test.cpp:767:16:767:29 | access to array | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:754:18:754:31 | new[] | new[] | test.cpp:772:22:772:28 | ... + ... | ... + ... | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected index 99af2e52751..aa634e5aaf3 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected @@ -2,20 +2,8 @@ edges | test2.cpp:62:18:62:25 | password | test2.cpp:65:31:65:34 | cpy1 | | test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | buf indirection | | test2.cpp:72:15:72:24 | password | test2.cpp:76:30:76:32 | buf indirection | -| test2.cpp:72:17:72:24 | password | test2.cpp:73:30:73:32 | buf indirection | -| test2.cpp:72:17:72:24 | password | test2.cpp:76:30:76:32 | buf indirection | | test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | buffer indirection | -| test.cpp:45:9:45:19 | thePassword | test.cpp:45:9:45:19 | thePassword | -| test.cpp:70:38:70:48 | thePassword | test.cpp:70:38:70:48 | thePassword | -| test.cpp:70:38:70:48 | thePassword | test.cpp:70:38:70:48 | thePassword | | test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | -| test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | -| test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | -| test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | -| test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | -| test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | -| test.cpp:73:43:73:53 | thePassword | test.cpp:73:43:73:53 | thePassword | -| test.cpp:73:63:73:73 | thePassword | test.cpp:73:43:73:53 | thePassword | | test.cpp:73:63:73:73 | thePassword | test.cpp:73:43:73:53 | thePassword | nodes | test2.cpp:43:36:43:43 | password | semmle.label | password | @@ -28,22 +16,14 @@ nodes | test2.cpp:62:18:62:25 | password | semmle.label | password | | test2.cpp:65:31:65:34 | cpy1 | semmle.label | cpy1 | | test2.cpp:72:15:72:24 | password | semmle.label | password | -| test2.cpp:72:17:72:24 | password | semmle.label | password | | test2.cpp:73:30:73:32 | buf indirection | semmle.label | buf indirection | | test2.cpp:76:30:76:32 | buf indirection | semmle.label | buf indirection | | test2.cpp:98:45:98:52 | password | semmle.label | password | | test2.cpp:99:27:99:32 | buffer indirection | semmle.label | buffer indirection | | test.cpp:45:9:45:19 | thePassword | semmle.label | thePassword | -| test.cpp:45:9:45:19 | thePassword | semmle.label | thePassword | -| test.cpp:45:9:45:19 | thePassword | semmle.label | thePassword | -| test.cpp:70:38:70:48 | thePassword | semmle.label | thePassword | -| test.cpp:70:38:70:48 | thePassword | semmle.label | thePassword | | test.cpp:70:38:70:48 | thePassword | semmle.label | thePassword | | test.cpp:70:38:70:48 | thePassword | semmle.label | thePassword | | test.cpp:73:43:73:53 | thePassword | semmle.label | thePassword | -| test.cpp:73:43:73:53 | thePassword | semmle.label | thePassword | -| test.cpp:73:43:73:53 | thePassword | semmle.label | thePassword | -| test.cpp:73:63:73:73 | thePassword | semmle.label | thePassword | | test.cpp:73:63:73:73 | thePassword | semmle.label | thePassword | subpaths #select @@ -56,22 +36,10 @@ subpaths | test2.cpp:57:2:57:8 | call to fprintf | test2.cpp:57:39:57:49 | call to getPassword | test2.cpp:57:39:57:49 | call to getPassword | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:57:39:57:49 | call to getPassword | this source. | | test2.cpp:65:3:65:9 | call to fprintf | test2.cpp:62:18:62:25 | password | test2.cpp:65:31:65:34 | cpy1 | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:62:18:62:25 | password | this source. | | test2.cpp:73:3:73:9 | call to fprintf | test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | buf indirection | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:72:17:72:24 | password | this source. | -| test2.cpp:73:3:73:9 | call to fprintf | test2.cpp:72:17:72:24 | password | test2.cpp:73:30:73:32 | buf indirection | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:72:17:72:24 | password | this source. | | test2.cpp:76:3:76:9 | call to fprintf | test2.cpp:72:15:72:24 | password | test2.cpp:76:30:76:32 | buf indirection | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:72:17:72:24 | password | this source. | -| test2.cpp:76:3:76:9 | call to fprintf | test2.cpp:72:17:72:24 | password | test2.cpp:76:30:76:32 | buf indirection | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:72:17:72:24 | password | this source. | | test2.cpp:99:3:99:9 | call to fprintf | test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | buffer indirection | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:98:45:98:52 | password | this source. | | test.cpp:45:3:45:7 | call to fputs | test.cpp:45:9:45:19 | thePassword | test.cpp:45:9:45:19 | thePassword | This write into file 'file' may contain unencrypted data from $@. | test.cpp:45:9:45:19 | thePassword | this source. | -| test.cpp:45:3:45:7 | call to fputs | test.cpp:45:9:45:19 | thePassword | test.cpp:45:9:45:19 | thePassword | This write into file 'file' may contain unencrypted data from $@. | test.cpp:45:9:45:19 | thePassword | this source. | -| test.cpp:45:3:45:7 | call to fputs | test.cpp:45:9:45:19 | thePassword | test.cpp:45:9:45:19 | thePassword | This write into file 'file' may contain unencrypted data from $@. | test.cpp:45:9:45:19 | thePassword | this source. | -| test.cpp:70:35:70:35 | call to operator<< | test.cpp:70:38:70:48 | thePassword | test.cpp:70:38:70:48 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | -| test.cpp:70:35:70:35 | call to operator<< | test.cpp:70:38:70:48 | thePassword | test.cpp:70:38:70:48 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | | test.cpp:70:35:70:35 | call to operator<< | test.cpp:70:38:70:48 | thePassword | test.cpp:70:38:70:48 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | | test.cpp:73:37:73:41 | call to write | test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | -| test.cpp:73:37:73:41 | call to write | test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | -| test.cpp:73:37:73:41 | call to write | test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | -| test.cpp:73:37:73:41 | call to write | test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | -| test.cpp:73:37:73:41 | call to write | test.cpp:73:43:73:53 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:73:43:73:53 | thePassword | this source. | -| test.cpp:73:37:73:41 | call to write | test.cpp:73:43:73:53 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:73:43:73:53 | thePassword | this source. | | test.cpp:73:37:73:41 | call to write | test.cpp:73:43:73:53 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:73:43:73:53 | thePassword | this source. | | test.cpp:73:37:73:41 | call to write | test.cpp:73:63:73:73 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:73:63:73:73 | thePassword | this source. | -| test.cpp:73:37:73:41 | call to write | test.cpp:73:63:73:73 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:73:63:73:73 | thePassword | this source. | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected index 0968078a67f..8f5e774cab7 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected @@ -25,7 +25,6 @@ edges | test3.cpp:322:16:322:24 | password2 | test3.cpp:325:11:325:14 | data | | test3.cpp:324:11:324:14 | data | test3.cpp:293:20:293:23 | data | | test3.cpp:325:11:325:14 | data | test3.cpp:298:20:298:23 | data | -| test3.cpp:400:16:400:23 | password | test3.cpp:400:15:400:23 | & ... | | test3.cpp:526:44:526:54 | my_latitude | test3.cpp:527:15:527:20 | buffer indirection | | test3.cpp:532:45:532:58 | home_longitude | test3.cpp:533:15:533:20 | buffer indirection | | test3.cpp:551:47:551:58 | salaryString | test3.cpp:552:15:552:20 | buffer indirection | @@ -90,7 +89,9 @@ nodes | test3.cpp:368:15:368:22 | password | semmle.label | password | | test3.cpp:388:15:388:22 | password | semmle.label | password | | test3.cpp:400:15:400:23 | & ... | semmle.label | & ... | -| test3.cpp:400:16:400:23 | password | semmle.label | password | +| test3.cpp:400:15:400:23 | & ... | semmle.label | password | +| test3.cpp:400:15:400:23 | password | semmle.label | & ... | +| test3.cpp:400:15:400:23 | password | semmle.label | password | | test3.cpp:414:15:414:24 | password | semmle.label | password | | test3.cpp:420:15:420:24 | password | semmle.label | password | | test3.cpp:431:8:431:15 | password | semmle.label | password | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected index ba2e1dc5834..c576b4d1b12 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected @@ -2,57 +2,39 @@ edges | test.cpp:11:26:11:28 | url indirection | test.cpp:15:30:15:32 | url indirection | | test.cpp:24:13:24:17 | url_g indirection | test.cpp:38:11:38:15 | url_g indirection | | test.cpp:24:21:24:40 | http://example.com indirection | test.cpp:24:13:24:17 | url_g indirection | -| test.cpp:24:21:24:40 | http://example.com indirection | test.cpp:24:13:24:17 | url_g indirection | | test.cpp:28:10:28:29 | http://example.com indirection | test.cpp:11:26:11:28 | url indirection | -| test.cpp:28:10:28:29 | http://example.com indirection | test.cpp:28:10:28:29 | http://example.com indirection | | test.cpp:35:23:35:42 | http://example.com indirection | test.cpp:39:11:39:15 | url_l indirection | -| test.cpp:35:23:35:42 | http://example.com indirection | test.cpp:39:11:39:15 | url_l indirection | -| test.cpp:36:26:36:45 | http://example.com indirection | test.cpp:40:11:40:17 | access to array indirection | | test.cpp:36:26:36:45 | http://example.com indirection | test.cpp:40:11:40:17 | access to array indirection | | test.cpp:38:11:38:15 | url_g indirection | test.cpp:11:26:11:28 | url indirection | | test.cpp:39:11:39:15 | url_l indirection | test.cpp:11:26:11:28 | url indirection | | test.cpp:40:11:40:17 | access to array indirection | test.cpp:11:26:11:28 | url indirection | | test.cpp:46:18:46:26 | http:// indirection | test.cpp:49:11:49:16 | buffer indirection | -| test.cpp:46:18:46:26 | http:// indirection | test.cpp:49:11:49:16 | buffer indirection | | test.cpp:49:11:49:16 | buffer indirection | test.cpp:11:26:11:28 | url indirection | | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:121:11:121:13 | ptr indirection | | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:121:11:121:13 | ptr indirection | -| test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:121:11:121:13 | ptr indirection | | test.cpp:121:11:121:13 | ptr indirection | test.cpp:11:26:11:28 | url indirection | nodes | test.cpp:11:26:11:28 | url indirection | semmle.label | url indirection | | test.cpp:15:30:15:32 | url indirection | semmle.label | url indirection | | test.cpp:24:13:24:17 | url_g indirection | semmle.label | url_g indirection | | test.cpp:24:21:24:40 | http://example.com indirection | semmle.label | http://example.com indirection | -| test.cpp:24:21:24:40 | http://example.com indirection | semmle.label | http://example.com indirection | -| test.cpp:28:10:28:29 | http://example.com indirection | semmle.label | http://example.com indirection | | test.cpp:28:10:28:29 | http://example.com indirection | semmle.label | http://example.com indirection | | test.cpp:35:23:35:42 | http://example.com indirection | semmle.label | http://example.com indirection | -| test.cpp:35:23:35:42 | http://example.com indirection | semmle.label | http://example.com indirection | -| test.cpp:36:26:36:45 | http://example.com indirection | semmle.label | http://example.com indirection | | test.cpp:36:26:36:45 | http://example.com indirection | semmle.label | http://example.com indirection | | test.cpp:38:11:38:15 | url_g indirection | semmle.label | url_g indirection | | test.cpp:39:11:39:15 | url_l indirection | semmle.label | url_l indirection | | test.cpp:40:11:40:17 | access to array indirection | semmle.label | access to array indirection | | test.cpp:46:18:46:26 | http:// indirection | semmle.label | http:// indirection | -| test.cpp:46:18:46:26 | http:// indirection | semmle.label | http:// indirection | | test.cpp:49:11:49:16 | buffer indirection | semmle.label | buffer indirection | | test.cpp:110:21:110:40 | http://example.com indirection | semmle.label | http://example.com indirection | | test.cpp:110:21:110:40 | http://example.com indirection | semmle.label | http://example.com indirection | -| test.cpp:110:21:110:40 | http://example.com indirection | semmle.label | http://example.com indirection | | test.cpp:121:11:121:13 | ptr indirection | semmle.label | ptr indirection | subpaths #select | test.cpp:24:21:24:40 | http://example.com | test.cpp:24:21:24:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:24:21:24:40 | http://example.com | test.cpp:24:21:24:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:28:10:28:29 | http://example.com | test.cpp:28:10:28:29 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:28:10:28:29 | http://example.com | test.cpp:28:10:28:29 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:35:23:35:42 | http://example.com | test.cpp:35:23:35:42 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:35:23:35:42 | http://example.com | test.cpp:35:23:35:42 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:36:26:36:45 | http://example.com | test.cpp:36:26:36:45 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:36:26:36:45 | http://example.com | test.cpp:36:26:36:45 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:46:18:46:26 | http:// | test.cpp:46:18:46:26 | http:// indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:46:18:46:26 | http:// | test.cpp:46:18:46:26 | http:// indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected index 200db037129..f716c910b43 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected @@ -1,60 +1,42 @@ edges | test.cpp:39:7:39:10 | data | test.cpp:41:6:41:9 | data | -| test.cpp:39:7:39:10 | data | test.cpp:41:6:41:9 | data | -| test.cpp:75:7:75:10 | data | test.cpp:79:7:79:10 | data | | test.cpp:75:7:75:10 | data | test.cpp:79:7:79:10 | data | | test.cpp:106:7:106:10 | data | test.cpp:108:6:108:9 | data | -| test.cpp:106:7:106:10 | data | test.cpp:108:6:108:9 | data | -| test.cpp:116:7:116:10 | data | test.cpp:119:6:119:9 | data | | test.cpp:116:7:116:10 | data | test.cpp:119:6:119:9 | data | | test.cpp:127:7:127:10 | data | test.cpp:130:6:130:9 | data | -| test.cpp:127:7:127:10 | data | test.cpp:130:6:130:9 | data | -| test.cpp:138:7:138:10 | data | test.cpp:141:6:141:9 | data | | test.cpp:138:7:138:10 | data | test.cpp:141:6:141:9 | data | | test.cpp:164:9:164:9 | c | test.cpp:165:2:165:2 | c | | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | * ... | -| test.cpp:164:9:164:9 | c | test.cpp:166:4:166:4 | c | -| test.cpp:181:7:181:10 | data | test.cpp:186:6:186:9 | data | +| test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | c | | test.cpp:181:7:181:10 | data | test.cpp:186:6:186:9 | data | | test.cpp:192:7:192:10 | data | test.cpp:197:6:197:9 | data | -| test.cpp:192:7:192:10 | data | test.cpp:197:6:197:9 | data | | test.cpp:203:7:203:10 | data | test.cpp:209:6:209:9 | data | -| test.cpp:203:7:203:10 | data | test.cpp:209:6:209:9 | data | -| test.cpp:207:8:207:11 | data | test.cpp:209:6:209:9 | data | | test.cpp:207:8:207:11 | data | test.cpp:209:6:209:9 | data | | test.cpp:216:9:216:9 | x | test.cpp:217:6:217:6 | x | nodes | test.cpp:39:7:39:10 | data | semmle.label | data | -| test.cpp:39:7:39:10 | data | semmle.label | data | | test.cpp:41:6:41:9 | data | semmle.label | data | | test.cpp:75:7:75:10 | data | semmle.label | data | -| test.cpp:75:7:75:10 | data | semmle.label | data | | test.cpp:79:7:79:10 | data | semmle.label | data | | test.cpp:106:7:106:10 | data | semmle.label | data | -| test.cpp:106:7:106:10 | data | semmle.label | data | | test.cpp:108:6:108:9 | data | semmle.label | data | | test.cpp:116:7:116:10 | data | semmle.label | data | -| test.cpp:116:7:116:10 | data | semmle.label | data | | test.cpp:119:6:119:9 | data | semmle.label | data | | test.cpp:127:7:127:10 | data | semmle.label | data | -| test.cpp:127:7:127:10 | data | semmle.label | data | | test.cpp:130:6:130:9 | data | semmle.label | data | | test.cpp:138:7:138:10 | data | semmle.label | data | -| test.cpp:138:7:138:10 | data | semmle.label | data | | test.cpp:141:6:141:9 | data | semmle.label | data | | test.cpp:164:9:164:9 | c | semmle.label | c | | test.cpp:165:2:165:2 | c | semmle.label | c | | test.cpp:166:3:166:4 | * ... | semmle.label | * ... | -| test.cpp:166:4:166:4 | c | semmle.label | c | -| test.cpp:181:7:181:10 | data | semmle.label | data | +| test.cpp:166:3:166:4 | * ... | semmle.label | c | +| test.cpp:166:3:166:4 | c | semmle.label | * ... | +| test.cpp:166:3:166:4 | c | semmle.label | c | | test.cpp:181:7:181:10 | data | semmle.label | data | | test.cpp:186:6:186:9 | data | semmle.label | data | | test.cpp:192:7:192:10 | data | semmle.label | data | -| test.cpp:192:7:192:10 | data | semmle.label | data | | test.cpp:197:6:197:9 | data | semmle.label | data | | test.cpp:203:7:203:10 | data | semmle.label | data | -| test.cpp:203:7:203:10 | data | semmle.label | data | -| test.cpp:207:8:207:11 | data | semmle.label | data | | test.cpp:207:8:207:11 | data | semmle.label | data | | test.cpp:209:6:209:9 | data | semmle.label | data | | test.cpp:209:6:209:9 | data | semmle.label | data | @@ -63,26 +45,18 @@ nodes subpaths #select | test.cpp:41:6:41:9 | data | test.cpp:39:7:39:10 | data | test.cpp:41:6:41:9 | data | Memory may have been previously freed by $@. | test.cpp:39:2:39:5 | call to free | call to free | -| test.cpp:41:6:41:9 | data | test.cpp:39:7:39:10 | data | test.cpp:41:6:41:9 | data | Memory may have been previously freed by $@. | test.cpp:39:2:39:5 | call to free | call to free | -| test.cpp:79:7:79:10 | data | test.cpp:75:7:75:10 | data | test.cpp:79:7:79:10 | data | Memory may have been previously freed by $@. | test.cpp:75:2:75:5 | call to free | call to free | | test.cpp:79:7:79:10 | data | test.cpp:75:7:75:10 | data | test.cpp:79:7:79:10 | data | Memory may have been previously freed by $@. | test.cpp:75:2:75:5 | call to free | call to free | | test.cpp:108:6:108:9 | data | test.cpp:106:7:106:10 | data | test.cpp:108:6:108:9 | data | Memory may have been previously freed by $@. | test.cpp:106:2:106:5 | call to free | call to free | -| test.cpp:108:6:108:9 | data | test.cpp:106:7:106:10 | data | test.cpp:108:6:108:9 | data | Memory may have been previously freed by $@. | test.cpp:106:2:106:5 | call to free | call to free | -| test.cpp:119:6:119:9 | data | test.cpp:116:7:116:10 | data | test.cpp:119:6:119:9 | data | Memory may have been previously freed by $@. | test.cpp:116:2:116:5 | call to free | call to free | | test.cpp:119:6:119:9 | data | test.cpp:116:7:116:10 | data | test.cpp:119:6:119:9 | data | Memory may have been previously freed by $@. | test.cpp:116:2:116:5 | call to free | call to free | | test.cpp:130:6:130:9 | data | test.cpp:127:7:127:10 | data | test.cpp:130:6:130:9 | data | Memory may have been previously freed by $@. | test.cpp:127:2:127:5 | call to free | call to free | -| test.cpp:130:6:130:9 | data | test.cpp:127:7:127:10 | data | test.cpp:130:6:130:9 | data | Memory may have been previously freed by $@. | test.cpp:127:2:127:5 | call to free | call to free | -| test.cpp:141:6:141:9 | data | test.cpp:138:7:138:10 | data | test.cpp:141:6:141:9 | data | Memory may have been previously freed by $@. | test.cpp:138:2:138:5 | call to free | call to free | | test.cpp:141:6:141:9 | data | test.cpp:138:7:138:10 | data | test.cpp:141:6:141:9 | data | Memory may have been previously freed by $@. | test.cpp:138:2:138:5 | call to free | call to free | | test.cpp:165:2:165:2 | c | test.cpp:164:9:164:9 | c | test.cpp:165:2:165:2 | c | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | | test.cpp:166:3:166:4 | * ... | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | * ... | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | -| test.cpp:166:4:166:4 | c | test.cpp:164:9:164:9 | c | test.cpp:166:4:166:4 | c | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | -| test.cpp:186:6:186:9 | data | test.cpp:181:7:181:10 | data | test.cpp:186:6:186:9 | data | Memory may have been previously freed by $@. | test.cpp:181:2:181:5 | call to free | call to free | +| test.cpp:166:3:166:4 | * ... | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | c | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | +| test.cpp:166:3:166:4 | c | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | * ... | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | +| test.cpp:166:3:166:4 | c | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | c | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | | test.cpp:186:6:186:9 | data | test.cpp:181:7:181:10 | data | test.cpp:186:6:186:9 | data | Memory may have been previously freed by $@. | test.cpp:181:2:181:5 | call to free | call to free | | test.cpp:197:6:197:9 | data | test.cpp:192:7:192:10 | data | test.cpp:197:6:197:9 | data | Memory may have been previously freed by $@. | test.cpp:192:2:192:5 | call to free | call to free | -| test.cpp:197:6:197:9 | data | test.cpp:192:7:192:10 | data | test.cpp:197:6:197:9 | data | Memory may have been previously freed by $@. | test.cpp:192:2:192:5 | call to free | call to free | | test.cpp:209:6:209:9 | data | test.cpp:203:7:203:10 | data | test.cpp:209:6:209:9 | data | Memory may have been previously freed by $@. | test.cpp:203:2:203:5 | call to free | call to free | -| test.cpp:209:6:209:9 | data | test.cpp:203:7:203:10 | data | test.cpp:209:6:209:9 | data | Memory may have been previously freed by $@. | test.cpp:203:2:203:5 | call to free | call to free | -| test.cpp:209:6:209:9 | data | test.cpp:207:8:207:11 | data | test.cpp:209:6:209:9 | data | Memory may have been previously freed by $@. | test.cpp:207:3:207:6 | call to free | call to free | | test.cpp:209:6:209:9 | data | test.cpp:207:8:207:11 | data | test.cpp:209:6:209:9 | data | Memory may have been previously freed by $@. | test.cpp:207:3:207:6 | call to free | call to free | | test.cpp:217:6:217:6 | x | test.cpp:216:9:216:9 | x | test.cpp:217:6:217:6 | x | Memory may have been previously freed by $@. | test.cpp:216:2:216:9 | delete | delete | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected index a4d19c1473e..f71eb606bd3 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected @@ -1,14 +1,11 @@ edges | tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | | tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | -| tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | nodes | tests.c:57:21:57:28 | password indirection | semmle.label | password indirection | | tests.c:57:21:57:28 | password indirection | semmle.label | password indirection | -| tests.c:57:21:57:28 | password indirection | semmle.label | password indirection | | tests.c:70:70:70:77 | password indirection | semmle.label | password indirection | subpaths #select | tests.c:70:70:70:77 | password indirection | tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | This operation potentially exposes sensitive system data from $@. | tests.c:57:21:57:28 | password indirection | password indirection | | tests.c:70:70:70:77 | password indirection | tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | This operation potentially exposes sensitive system data from $@. | tests.c:57:21:57:28 | password indirection | password indirection | -| tests.c:70:70:70:77 | password indirection | tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | This operation potentially exposes sensitive system data from $@. | tests.c:57:21:57:28 | password indirection | password indirection | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected index da20718ac12..9f7acb86e92 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected @@ -1,10 +1,6 @@ edges | tests2.cpp:50:13:50:19 | global1 indirection | tests2.cpp:82:14:82:20 | global1 indirection | | tests2.cpp:50:23:50:43 | call to mysql_get_client_info indirection | tests2.cpp:50:13:50:19 | global1 indirection | -| tests2.cpp:63:13:63:18 | call to getenv indirection | tests2.cpp:63:13:63:26 | call to getenv indirection | -| tests2.cpp:64:13:64:18 | call to getenv indirection | tests2.cpp:64:13:64:26 | call to getenv indirection | -| tests2.cpp:65:13:65:18 | call to getenv indirection | tests2.cpp:65:13:65:30 | call to getenv indirection | -| tests2.cpp:66:13:66:18 | call to getenv indirection | tests2.cpp:66:13:66:34 | call to getenv indirection | | tests2.cpp:78:18:78:38 | call to mysql_get_client_info indirection | tests2.cpp:81:14:81:19 | buffer indirection | | tests2.cpp:91:42:91:45 | str1 indirection | tests2.cpp:93:14:93:17 | str1 indirection | | tests2.cpp:101:8:101:15 | call to getpwuid indirection | tests2.cpp:102:14:102:15 | pw indirection | @@ -13,34 +9,18 @@ edges | tests2.cpp:109:12:109:17 | call to getenv indirection | tests2.cpp:109:3:109:36 | ... = ... indirection | | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | tests2.cpp:111:14:111:19 | ptr indirection | | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | tests2.cpp:111:17:111:19 | ptr indirection | -| tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | tests2.cpp:111:17:111:19 | ptr indirection | | tests2.cpp:111:17:111:19 | ptr indirection | tests2.cpp:111:14:111:19 | ptr indirection | -| tests2.cpp:111:17:111:19 | ptr indirection | tests2.cpp:111:17:111:19 | ptr indirection | -| tests2.cpp:111:17:111:19 | ptr indirection | tests2.cpp:111:17:111:19 | ptr indirection | -| tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:39:19:39:22 | path indirection | | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:39:19:39:22 | path indirection | | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:43:20:43:23 | path indirection | -| tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:43:20:43:23 | path indirection | -| tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:76:19:76:22 | path indirection | | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:76:19:76:22 | path indirection | | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:80:20:80:23 | path indirection | -| tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:80:20:80:23 | path indirection | -| tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | nodes | tests2.cpp:50:13:50:19 | global1 indirection | semmle.label | global1 indirection | | tests2.cpp:50:23:50:43 | call to mysql_get_client_info indirection | semmle.label | call to mysql_get_client_info indirection | -| tests2.cpp:63:13:63:18 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests2.cpp:63:13:63:18 | call to getenv indirection | semmle.label | call to getenv indirection | | tests2.cpp:63:13:63:26 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests2.cpp:64:13:64:18 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests2.cpp:64:13:64:18 | call to getenv indirection | semmle.label | call to getenv indirection | | tests2.cpp:64:13:64:26 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests2.cpp:65:13:65:18 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests2.cpp:65:13:65:18 | call to getenv indirection | semmle.label | call to getenv indirection | | tests2.cpp:65:13:65:30 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests2.cpp:66:13:66:18 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests2.cpp:66:13:66:18 | call to getenv indirection | semmle.label | call to getenv indirection | | tests2.cpp:66:13:66:34 | call to getenv indirection | semmle.label | call to getenv indirection | | tests2.cpp:78:18:78:38 | call to mysql_get_client_info indirection | semmle.label | call to mysql_get_client_info indirection | | tests2.cpp:80:14:80:34 | call to mysql_get_client_info indirection | semmle.label | call to mysql_get_client_info indirection | @@ -56,44 +36,28 @@ nodes | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | semmle.label | c1 indirection [ptr indirection] | | tests2.cpp:111:14:111:19 | ptr indirection | semmle.label | ptr indirection | | tests2.cpp:111:17:111:19 | ptr indirection | semmle.label | ptr indirection | -| tests2.cpp:111:17:111:19 | ptr indirection | semmle.label | ptr indirection | | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | semmle.label | call to getenv indirection | | tests_sockets.cpp:39:19:39:22 | path indirection | semmle.label | path indirection | -| tests_sockets.cpp:39:19:39:22 | path indirection | semmle.label | path indirection | -| tests_sockets.cpp:43:20:43:23 | path indirection | semmle.label | path indirection | | tests_sockets.cpp:43:20:43:23 | path indirection | semmle.label | path indirection | | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | semmle.label | call to getenv indirection | | tests_sockets.cpp:76:19:76:22 | path indirection | semmle.label | path indirection | -| tests_sockets.cpp:76:19:76:22 | path indirection | semmle.label | path indirection | -| tests_sockets.cpp:80:20:80:23 | path indirection | semmle.label | path indirection | | tests_sockets.cpp:80:20:80:23 | path indirection | semmle.label | path indirection | | tests_sysconf.cpp:36:21:36:27 | confstr output argument | semmle.label | confstr output argument | | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | semmle.label | pathbuf indirection | -| tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | semmle.label | pathbuf indirection | subpaths #select -| tests2.cpp:63:13:63:18 | call to getenv indirection | tests2.cpp:63:13:63:18 | call to getenv indirection | tests2.cpp:63:13:63:18 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:63:13:63:18 | call to getenv indirection | call to getenv indirection | -| tests2.cpp:63:13:63:26 | call to getenv indirection | tests2.cpp:63:13:63:18 | call to getenv indirection | tests2.cpp:63:13:63:26 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:63:13:63:18 | call to getenv indirection | call to getenv indirection | -| tests2.cpp:64:13:64:18 | call to getenv indirection | tests2.cpp:64:13:64:18 | call to getenv indirection | tests2.cpp:64:13:64:18 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:64:13:64:18 | call to getenv indirection | call to getenv indirection | -| tests2.cpp:64:13:64:26 | call to getenv indirection | tests2.cpp:64:13:64:18 | call to getenv indirection | tests2.cpp:64:13:64:26 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:64:13:64:18 | call to getenv indirection | call to getenv indirection | -| tests2.cpp:65:13:65:18 | call to getenv indirection | tests2.cpp:65:13:65:18 | call to getenv indirection | tests2.cpp:65:13:65:18 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:65:13:65:18 | call to getenv indirection | call to getenv indirection | -| tests2.cpp:65:13:65:30 | call to getenv indirection | tests2.cpp:65:13:65:18 | call to getenv indirection | tests2.cpp:65:13:65:30 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:65:13:65:18 | call to getenv indirection | call to getenv indirection | -| tests2.cpp:66:13:66:18 | call to getenv indirection | tests2.cpp:66:13:66:18 | call to getenv indirection | tests2.cpp:66:13:66:18 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:66:13:66:18 | call to getenv indirection | call to getenv indirection | -| tests2.cpp:66:13:66:34 | call to getenv indirection | tests2.cpp:66:13:66:18 | call to getenv indirection | tests2.cpp:66:13:66:34 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:66:13:66:18 | call to getenv indirection | call to getenv indirection | +| tests2.cpp:63:13:63:26 | call to getenv indirection | tests2.cpp:63:13:63:26 | call to getenv indirection | tests2.cpp:63:13:63:26 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:63:13:63:26 | call to getenv indirection | call to getenv indirection | +| tests2.cpp:64:13:64:26 | call to getenv indirection | tests2.cpp:64:13:64:26 | call to getenv indirection | tests2.cpp:64:13:64:26 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:64:13:64:26 | call to getenv indirection | call to getenv indirection | +| tests2.cpp:65:13:65:30 | call to getenv indirection | tests2.cpp:65:13:65:30 | call to getenv indirection | tests2.cpp:65:13:65:30 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:65:13:65:30 | call to getenv indirection | call to getenv indirection | +| tests2.cpp:66:13:66:34 | call to getenv indirection | tests2.cpp:66:13:66:34 | call to getenv indirection | tests2.cpp:66:13:66:34 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:66:13:66:34 | call to getenv indirection | call to getenv indirection | | tests2.cpp:80:14:80:34 | call to mysql_get_client_info indirection | tests2.cpp:80:14:80:34 | call to mysql_get_client_info indirection | tests2.cpp:80:14:80:34 | call to mysql_get_client_info indirection | This operation exposes system data from $@. | tests2.cpp:80:14:80:34 | call to mysql_get_client_info indirection | call to mysql_get_client_info indirection | | tests2.cpp:81:14:81:19 | buffer indirection | tests2.cpp:78:18:78:38 | call to mysql_get_client_info indirection | tests2.cpp:81:14:81:19 | buffer indirection | This operation exposes system data from $@. | tests2.cpp:78:18:78:38 | call to mysql_get_client_info indirection | call to mysql_get_client_info indirection | | tests2.cpp:82:14:82:20 | global1 indirection | tests2.cpp:50:23:50:43 | call to mysql_get_client_info indirection | tests2.cpp:82:14:82:20 | global1 indirection | This operation exposes system data from $@. | tests2.cpp:50:23:50:43 | call to mysql_get_client_info indirection | call to mysql_get_client_info indirection | | tests2.cpp:93:14:93:17 | str1 indirection | tests2.cpp:91:42:91:45 | str1 indirection | tests2.cpp:93:14:93:17 | str1 indirection | This operation exposes system data from $@. | tests2.cpp:91:42:91:45 | str1 indirection | str1 indirection | | tests2.cpp:102:14:102:15 | pw indirection | tests2.cpp:101:8:101:15 | call to getpwuid indirection | tests2.cpp:102:14:102:15 | pw indirection | This operation exposes system data from $@. | tests2.cpp:101:8:101:15 | call to getpwuid indirection | call to getpwuid indirection | | tests2.cpp:111:14:111:19 | ptr indirection | tests2.cpp:109:12:109:17 | call to getenv indirection | tests2.cpp:111:14:111:19 | ptr indirection | This operation exposes system data from $@. | tests2.cpp:109:12:109:17 | call to getenv indirection | call to getenv indirection | -| tests2.cpp:111:17:111:19 | ptr indirection | tests2.cpp:109:12:109:17 | call to getenv indirection | tests2.cpp:111:17:111:19 | ptr indirection | This operation exposes system data from $@. | tests2.cpp:109:12:109:17 | call to getenv indirection | call to getenv indirection | -| tests_sockets.cpp:39:19:39:22 | path indirection | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:39:19:39:22 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:39:19:39:22 | path indirection | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:39:19:39:22 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:43:20:43:23 | path indirection | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:43:20:43:23 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | call to getenv indirection | -| tests_sockets.cpp:43:20:43:23 | path indirection | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:43:20:43:23 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | call to getenv indirection | -| tests_sockets.cpp:76:19:76:22 | path indirection | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:76:19:76:22 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:76:19:76:22 | path indirection | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:76:19:76:22 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:80:20:80:23 | path indirection | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:80:20:80:23 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | call to getenv indirection | -| tests_sockets.cpp:80:20:80:23 | path indirection | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:80:20:80:23 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | call to getenv indirection | -| tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | This operation exposes system data from $@. | tests_sysconf.cpp:36:21:36:27 | confstr output argument | confstr output argument | | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | This operation exposes system data from $@. | tests_sysconf.cpp:36:21:36:27 | confstr output argument | confstr output argument | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected index 79d0c0c8921..840cd6ed5f3 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected @@ -1,47 +1,23 @@ edges -| tests.cpp:48:15:48:20 | call to getenv indirection | tests.cpp:48:15:48:36 | call to getenv indirection | -| tests.cpp:49:15:49:20 | call to getenv indirection | tests.cpp:49:15:49:36 | call to getenv indirection | -| tests.cpp:50:15:50:20 | call to getenv indirection | tests.cpp:50:15:50:36 | call to getenv indirection | -| tests.cpp:57:18:57:23 | call to getenv indirection | tests.cpp:57:18:57:39 | call to getenv indirection | -| tests.cpp:58:41:58:46 | call to getenv indirection | tests.cpp:58:41:58:62 | call to getenv indirection | -| tests.cpp:59:43:59:48 | call to getenv indirection | tests.cpp:59:43:59:64 | call to getenv indirection | | tests.cpp:62:7:62:18 | global_token indirection | tests.cpp:71:27:71:38 | global_token indirection | | tests.cpp:62:7:62:18 | global_token indirection | tests.cpp:73:27:73:31 | maybe indirection | | tests.cpp:62:22:62:27 | call to getenv indirection | tests.cpp:62:7:62:18 | global_token indirection | | tests.cpp:86:29:86:31 | msg indirection | tests.cpp:88:15:88:17 | msg indirection | -| tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:97:13:97:34 | call to getenv indirection | -| tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:97:13:97:34 | call to getenv indirection | | tests.cpp:97:13:97:34 | call to getenv indirection | tests.cpp:86:29:86:31 | msg indirection | | tests.cpp:107:30:107:32 | msg indirection | tests.cpp:111:15:111:17 | tmp indirection | | tests.cpp:114:30:114:32 | msg indirection | tests.cpp:119:7:119:12 | buffer indirection | | tests.cpp:122:30:122:32 | msg indirection | tests.cpp:124:15:124:17 | msg indirection | -| tests.cpp:131:14:131:19 | call to getenv indirection | tests.cpp:131:14:131:35 | call to getenv indirection | | tests.cpp:131:14:131:35 | call to getenv indirection | tests.cpp:107:30:107:32 | msg indirection | -| tests.cpp:132:14:132:19 | call to getenv indirection | tests.cpp:132:14:132:35 | call to getenv indirection | | tests.cpp:132:14:132:35 | call to getenv indirection | tests.cpp:114:30:114:32 | msg indirection | -| tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:133:14:133:35 | call to getenv indirection | -| tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:133:14:133:35 | call to getenv indirection | | tests.cpp:133:14:133:35 | call to getenv indirection | tests.cpp:122:30:122:32 | msg indirection | | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:18:29:18:31 | pwd indirection | | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:19:26:19:28 | pwd indirection | nodes -| tests.cpp:48:15:48:20 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:48:15:48:20 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:48:15:48:36 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:49:15:49:20 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:49:15:49:20 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:49:15:49:36 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:50:15:50:20 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:50:15:50:20 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:50:15:50:36 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:57:18:57:23 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:57:18:57:23 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:57:18:57:39 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:58:41:58:46 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:58:41:58:46 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:58:41:58:62 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:59:43:59:48 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:59:43:59:48 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:59:43:59:64 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:62:7:62:18 | global_token indirection | semmle.label | global_token indirection | | tests.cpp:62:22:62:27 | call to getenv indirection | semmle.label | call to getenv indirection | @@ -49,8 +25,6 @@ nodes | tests.cpp:73:27:73:31 | maybe indirection | semmle.label | maybe indirection | | tests.cpp:86:29:86:31 | msg indirection | semmle.label | msg indirection | | tests.cpp:88:15:88:17 | msg indirection | semmle.label | msg indirection | -| tests.cpp:97:13:97:18 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:97:13:97:18 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:97:13:97:34 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:97:13:97:34 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:107:30:107:32 | msg indirection | semmle.label | msg indirection | @@ -59,12 +33,8 @@ nodes | tests.cpp:119:7:119:12 | buffer indirection | semmle.label | buffer indirection | | tests.cpp:122:30:122:32 | msg indirection | semmle.label | msg indirection | | tests.cpp:124:15:124:17 | msg indirection | semmle.label | msg indirection | -| tests.cpp:131:14:131:19 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:131:14:131:35 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:132:14:132:19 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:132:14:132:35 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:133:14:133:19 | call to getenv indirection | semmle.label | call to getenv indirection | -| tests.cpp:133:14:133:19 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:133:14:133:35 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:133:14:133:35 | call to getenv indirection | semmle.label | call to getenv indirection | | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | semmle.label | call to getpwnam indirection | @@ -72,27 +42,19 @@ nodes | tests_passwd.cpp:19:26:19:28 | pwd indirection | semmle.label | pwd indirection | subpaths #select -| tests.cpp:48:15:48:20 | call to getenv indirection | tests.cpp:48:15:48:20 | call to getenv indirection | tests.cpp:48:15:48:20 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:48:15:48:20 | call to getenv indirection | call to getenv indirection | -| tests.cpp:48:15:48:36 | call to getenv indirection | tests.cpp:48:15:48:20 | call to getenv indirection | tests.cpp:48:15:48:36 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:48:15:48:20 | call to getenv indirection | call to getenv indirection | -| tests.cpp:49:15:49:20 | call to getenv indirection | tests.cpp:49:15:49:20 | call to getenv indirection | tests.cpp:49:15:49:20 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:49:15:49:20 | call to getenv indirection | call to getenv indirection | -| tests.cpp:49:15:49:36 | call to getenv indirection | tests.cpp:49:15:49:20 | call to getenv indirection | tests.cpp:49:15:49:36 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:49:15:49:20 | call to getenv indirection | call to getenv indirection | -| tests.cpp:50:15:50:20 | call to getenv indirection | tests.cpp:50:15:50:20 | call to getenv indirection | tests.cpp:50:15:50:20 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:50:15:50:20 | call to getenv indirection | call to getenv indirection | -| tests.cpp:50:15:50:36 | call to getenv indirection | tests.cpp:50:15:50:20 | call to getenv indirection | tests.cpp:50:15:50:36 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:50:15:50:20 | call to getenv indirection | call to getenv indirection | -| tests.cpp:57:18:57:23 | call to getenv indirection | tests.cpp:57:18:57:23 | call to getenv indirection | tests.cpp:57:18:57:23 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:57:18:57:23 | call to getenv indirection | call to getenv indirection | -| tests.cpp:57:18:57:39 | call to getenv indirection | tests.cpp:57:18:57:23 | call to getenv indirection | tests.cpp:57:18:57:39 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:57:18:57:23 | call to getenv indirection | call to getenv indirection | -| tests.cpp:58:41:58:46 | call to getenv indirection | tests.cpp:58:41:58:46 | call to getenv indirection | tests.cpp:58:41:58:46 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:58:41:58:46 | call to getenv indirection | call to getenv indirection | -| tests.cpp:58:41:58:62 | call to getenv indirection | tests.cpp:58:41:58:46 | call to getenv indirection | tests.cpp:58:41:58:62 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:58:41:58:46 | call to getenv indirection | call to getenv indirection | -| tests.cpp:59:43:59:48 | call to getenv indirection | tests.cpp:59:43:59:48 | call to getenv indirection | tests.cpp:59:43:59:48 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:59:43:59:48 | call to getenv indirection | call to getenv indirection | -| tests.cpp:59:43:59:64 | call to getenv indirection | tests.cpp:59:43:59:48 | call to getenv indirection | tests.cpp:59:43:59:64 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:59:43:59:48 | call to getenv indirection | call to getenv indirection | +| tests.cpp:48:15:48:36 | call to getenv indirection | tests.cpp:48:15:48:36 | call to getenv indirection | tests.cpp:48:15:48:36 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:48:15:48:36 | call to getenv indirection | call to getenv indirection | +| tests.cpp:49:15:49:36 | call to getenv indirection | tests.cpp:49:15:49:36 | call to getenv indirection | tests.cpp:49:15:49:36 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:49:15:49:36 | call to getenv indirection | call to getenv indirection | +| tests.cpp:50:15:50:36 | call to getenv indirection | tests.cpp:50:15:50:36 | call to getenv indirection | tests.cpp:50:15:50:36 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:50:15:50:36 | call to getenv indirection | call to getenv indirection | +| tests.cpp:57:18:57:39 | call to getenv indirection | tests.cpp:57:18:57:39 | call to getenv indirection | tests.cpp:57:18:57:39 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:57:18:57:39 | call to getenv indirection | call to getenv indirection | +| tests.cpp:58:41:58:62 | call to getenv indirection | tests.cpp:58:41:58:62 | call to getenv indirection | tests.cpp:58:41:58:62 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:58:41:58:62 | call to getenv indirection | call to getenv indirection | +| tests.cpp:59:43:59:64 | call to getenv indirection | tests.cpp:59:43:59:64 | call to getenv indirection | tests.cpp:59:43:59:64 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:59:43:59:64 | call to getenv indirection | call to getenv indirection | | tests.cpp:71:27:71:38 | global_token indirection | tests.cpp:62:22:62:27 | call to getenv indirection | tests.cpp:71:27:71:38 | global_token indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:62:22:62:27 | call to getenv indirection | call to getenv indirection | | tests.cpp:73:27:73:31 | maybe indirection | tests.cpp:62:22:62:27 | call to getenv indirection | tests.cpp:73:27:73:31 | maybe indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:62:22:62:27 | call to getenv indirection | call to getenv indirection | -| tests.cpp:88:15:88:17 | msg indirection | tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:88:15:88:17 | msg indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:18 | call to getenv indirection | call to getenv indirection | -| tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:97:13:97:18 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:18 | call to getenv indirection | call to getenv indirection | -| tests.cpp:97:13:97:34 | call to getenv indirection | tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:97:13:97:34 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:18 | call to getenv indirection | call to getenv indirection | -| tests.cpp:111:15:111:17 | tmp indirection | tests.cpp:131:14:131:19 | call to getenv indirection | tests.cpp:111:15:111:17 | tmp indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:131:14:131:19 | call to getenv indirection | call to getenv indirection | -| tests.cpp:119:7:119:12 | buffer indirection | tests.cpp:132:14:132:19 | call to getenv indirection | tests.cpp:119:7:119:12 | buffer indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:132:14:132:19 | call to getenv indirection | call to getenv indirection | -| tests.cpp:124:15:124:17 | msg indirection | tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:124:15:124:17 | msg indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:19 | call to getenv indirection | call to getenv indirection | -| tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:133:14:133:19 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:19 | call to getenv indirection | call to getenv indirection | -| tests.cpp:133:14:133:35 | call to getenv indirection | tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:133:14:133:35 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:19 | call to getenv indirection | call to getenv indirection | +| tests.cpp:88:15:88:17 | msg indirection | tests.cpp:97:13:97:34 | call to getenv indirection | tests.cpp:88:15:88:17 | msg indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:34 | call to getenv indirection | call to getenv indirection | +| tests.cpp:97:13:97:34 | call to getenv indirection | tests.cpp:97:13:97:34 | call to getenv indirection | tests.cpp:97:13:97:34 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:34 | call to getenv indirection | call to getenv indirection | +| tests.cpp:111:15:111:17 | tmp indirection | tests.cpp:131:14:131:35 | call to getenv indirection | tests.cpp:111:15:111:17 | tmp indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:131:14:131:35 | call to getenv indirection | call to getenv indirection | +| tests.cpp:119:7:119:12 | buffer indirection | tests.cpp:132:14:132:35 | call to getenv indirection | tests.cpp:119:7:119:12 | buffer indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:132:14:132:35 | call to getenv indirection | call to getenv indirection | +| tests.cpp:124:15:124:17 | msg indirection | tests.cpp:133:14:133:35 | call to getenv indirection | tests.cpp:124:15:124:17 | msg indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:35 | call to getenv indirection | call to getenv indirection | +| tests.cpp:133:14:133:35 | call to getenv indirection | tests.cpp:133:14:133:35 | call to getenv indirection | tests.cpp:133:14:133:35 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:35 | call to getenv indirection | call to getenv indirection | | tests_passwd.cpp:18:29:18:31 | pwd indirection | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:18:29:18:31 | pwd indirection | This operation potentially exposes sensitive system data from $@. | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | call to getpwnam indirection | | tests_passwd.cpp:19:26:19:28 | pwd indirection | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:19:26:19:28 | pwd indirection | This operation potentially exposes sensitive system data from $@. | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | call to getpwnam indirection | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected index 275e9e1fae9..6d794450b60 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected @@ -22,24 +22,38 @@ edges | tests5.cpp:88:2:88:2 | p indirection | tests5.cpp:89:2:89:2 | p indirection | | tests.cpp:15:23:15:43 | call to XercesDOMParser | tests.cpp:17:2:17:2 | p indirection | | tests.cpp:28:23:28:43 | call to XercesDOMParser | tests.cpp:31:2:31:2 | p indirection | -| tests.cpp:35:23:35:43 | call to XercesDOMParser | tests.cpp:35:23:35:43 | new indirection | -| tests.cpp:35:23:35:43 | new indirection | tests.cpp:37:2:37:2 | p indirection | +| tests.cpp:35:23:35:43 | call to XercesDOMParser | tests.cpp:37:2:37:2 | (AbstractDOMParser *)... indirection | +| tests.cpp:35:23:35:43 | call to XercesDOMParser | tests.cpp:37:2:37:2 | p indirection | +| tests.cpp:37:2:37:2 | (AbstractDOMParser *)... indirection | tests.cpp:37:2:37:2 | p indirection | | tests.cpp:37:2:37:2 | p indirection | tests.cpp:37:2:37:2 | p indirection | +| tests.cpp:37:2:37:2 | p indirection | tests.cpp:38:2:38:2 | (AbstractDOMParser *)... indirection | | tests.cpp:37:2:37:2 | p indirection | tests.cpp:38:2:38:2 | p indirection | +| tests.cpp:38:2:38:2 | (AbstractDOMParser *)... indirection | tests.cpp:38:2:38:2 | p indirection | +| tests.cpp:38:2:38:2 | p indirection | tests.cpp:38:2:38:2 | p indirection | | tests.cpp:38:2:38:2 | p indirection | tests.cpp:39:2:39:2 | p indirection | -| tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:51:23:51:43 | new indirection | -| tests.cpp:51:23:51:43 | new indirection | tests.cpp:53:2:53:2 | p indirection | -| tests.cpp:53:2:53:2 | p indirection | tests.cpp:54:2:54:2 | p indirection | -| tests.cpp:54:2:54:2 | p indirection | tests.cpp:55:2:55:2 | p indirection | +| tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:53:2:53:2 | (AbstractDOMParser *)... indirection | +| tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:53:2:53:2 | p indirection | +| tests.cpp:53:2:53:2 | (AbstractDOMParser *)... indirection | tests.cpp:53:2:53:2 | p indirection | +| tests.cpp:53:2:53:2 | p indirection | tests.cpp:53:2:53:2 | p indirection | +| tests.cpp:53:2:53:2 | p indirection | tests.cpp:55:2:55:2 | (AbstractDOMParser *)... indirection | +| tests.cpp:53:2:53:2 | p indirection | tests.cpp:55:2:55:2 | p indirection | +| tests.cpp:55:2:55:2 | (AbstractDOMParser *)... indirection | tests.cpp:55:2:55:2 | p indirection | +| tests.cpp:55:2:55:2 | p indirection | tests.cpp:55:2:55:2 | p indirection | | tests.cpp:55:2:55:2 | p indirection | tests.cpp:56:2:56:2 | p indirection | -| tests.cpp:55:2:55:2 | p indirection | tests.cpp:56:2:56:2 | p indirection | -| tests.cpp:56:2:56:2 | p indirection | tests.cpp:57:2:57:2 | p indirection | -| tests.cpp:57:2:57:2 | p indirection | tests.cpp:58:2:58:2 | p indirection | -| tests.cpp:58:2:58:2 | p indirection | tests.cpp:59:2:59:2 | p indirection | +| tests.cpp:55:2:55:2 | p indirection | tests.cpp:57:2:57:2 | (AbstractDOMParser *)... indirection | +| tests.cpp:55:2:55:2 | p indirection | tests.cpp:57:2:57:2 | p indirection | +| tests.cpp:57:2:57:2 | (AbstractDOMParser *)... indirection | tests.cpp:57:2:57:2 | p indirection | +| tests.cpp:57:2:57:2 | p indirection | tests.cpp:57:2:57:2 | p indirection | +| tests.cpp:57:2:57:2 | p indirection | tests.cpp:59:2:59:2 | (AbstractDOMParser *)... indirection | +| tests.cpp:57:2:57:2 | p indirection | tests.cpp:59:2:59:2 | p indirection | +| tests.cpp:59:2:59:2 | (AbstractDOMParser *)... indirection | tests.cpp:59:2:59:2 | p indirection | +| tests.cpp:59:2:59:2 | p indirection | tests.cpp:59:2:59:2 | p indirection | | tests.cpp:59:2:59:2 | p indirection | tests.cpp:60:2:60:2 | p indirection | | tests.cpp:66:23:66:43 | call to XercesDOMParser | tests.cpp:69:2:69:2 | p indirection | | tests.cpp:73:23:73:43 | call to XercesDOMParser | tests.cpp:80:2:80:2 | p indirection | | tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | q indirection | +| tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | q indirection | +| tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | q indirection | | tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | q indirection | | tests.cpp:112:39:112:39 | p indirection | tests.cpp:113:2:113:2 | p indirection | | tests.cpp:116:39:116:39 | p indirection | tests.cpp:117:2:117:2 | p indirection | @@ -92,20 +106,26 @@ nodes | tests.cpp:28:23:28:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser | | tests.cpp:31:2:31:2 | p indirection | semmle.label | p indirection | | tests.cpp:35:23:35:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser | -| tests.cpp:35:23:35:43 | new indirection | semmle.label | new indirection | +| tests.cpp:37:2:37:2 | (AbstractDOMParser *)... indirection | semmle.label | (AbstractDOMParser *)... indirection | | tests.cpp:37:2:37:2 | p indirection | semmle.label | p indirection | | tests.cpp:37:2:37:2 | p indirection | semmle.label | p indirection | +| tests.cpp:38:2:38:2 | (AbstractDOMParser *)... indirection | semmle.label | (AbstractDOMParser *)... indirection | +| tests.cpp:38:2:38:2 | p indirection | semmle.label | p indirection | | tests.cpp:38:2:38:2 | p indirection | semmle.label | p indirection | | tests.cpp:39:2:39:2 | p indirection | semmle.label | p indirection | | tests.cpp:51:23:51:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser | -| tests.cpp:51:23:51:43 | new indirection | semmle.label | new indirection | +| tests.cpp:53:2:53:2 | (AbstractDOMParser *)... indirection | semmle.label | (AbstractDOMParser *)... indirection | | tests.cpp:53:2:53:2 | p indirection | semmle.label | p indirection | -| tests.cpp:54:2:54:2 | p indirection | semmle.label | p indirection | +| tests.cpp:53:2:53:2 | p indirection | semmle.label | p indirection | +| tests.cpp:55:2:55:2 | (AbstractDOMParser *)... indirection | semmle.label | (AbstractDOMParser *)... indirection | +| tests.cpp:55:2:55:2 | p indirection | semmle.label | p indirection | | tests.cpp:55:2:55:2 | p indirection | semmle.label | p indirection | | tests.cpp:56:2:56:2 | p indirection | semmle.label | p indirection | -| tests.cpp:56:2:56:2 | p indirection | semmle.label | p indirection | +| tests.cpp:57:2:57:2 | (AbstractDOMParser *)... indirection | semmle.label | (AbstractDOMParser *)... indirection | | tests.cpp:57:2:57:2 | p indirection | semmle.label | p indirection | -| tests.cpp:58:2:58:2 | p indirection | semmle.label | p indirection | +| tests.cpp:57:2:57:2 | p indirection | semmle.label | p indirection | +| tests.cpp:59:2:59:2 | (AbstractDOMParser *)... indirection | semmle.label | (AbstractDOMParser *)... indirection | +| tests.cpp:59:2:59:2 | p indirection | semmle.label | p indirection | | tests.cpp:59:2:59:2 | p indirection | semmle.label | p indirection | | tests.cpp:60:2:60:2 | p indirection | semmle.label | p indirection | | tests.cpp:66:23:66:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser | @@ -114,8 +134,10 @@ nodes | tests.cpp:80:2:80:2 | p indirection | semmle.label | p indirection | | tests.cpp:85:24:85:44 | call to XercesDOMParser | semmle.label | call to XercesDOMParser | | tests.cpp:88:3:88:3 | q indirection | semmle.label | q indirection | +| tests.cpp:88:3:88:3 | q indirection | semmle.label | q indirection | | tests.cpp:100:24:100:44 | call to XercesDOMParser | semmle.label | call to XercesDOMParser | | tests.cpp:104:3:104:3 | q indirection | semmle.label | q indirection | +| tests.cpp:104:3:104:3 | q indirection | semmle.label | q indirection | | tests.cpp:112:39:112:39 | p indirection | semmle.label | p indirection | | tests.cpp:113:2:113:2 | p indirection | semmle.label | p indirection | | tests.cpp:116:39:116:39 | p indirection | semmle.label | p indirection | @@ -152,6 +174,8 @@ subpaths | tests.cpp:69:2:69:2 | p indirection | tests.cpp:66:23:66:43 | call to XercesDOMParser | tests.cpp:69:2:69:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:66:23:66:43 | call to XercesDOMParser | XML parser | | tests.cpp:80:2:80:2 | p indirection | tests.cpp:73:23:73:43 | call to XercesDOMParser | tests.cpp:80:2:80:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:73:23:73:43 | call to XercesDOMParser | XML parser | | tests.cpp:88:3:88:3 | q indirection | tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | q indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:85:24:85:44 | call to XercesDOMParser | XML parser | +| tests.cpp:88:3:88:3 | q indirection | tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | q indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:85:24:85:44 | call to XercesDOMParser | XML parser | +| tests.cpp:104:3:104:3 | q indirection | tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | q indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:100:24:100:44 | call to XercesDOMParser | XML parser | | tests.cpp:104:3:104:3 | q indirection | tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | q indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:100:24:100:44 | call to XercesDOMParser | XML parser | | tests.cpp:113:2:113:2 | p indirection | tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:113:2:113:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:122:23:122:43 | call to XercesDOMParser | XML parser | | tests.cpp:117:2:117:2 | p indirection | tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:117:2:117:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:122:23:122:43 | call to XercesDOMParser | XML parser | From 4dfaf9225c1d32a6266c30f566863b35c9166e0e Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 1 Sep 2023 13:06:49 +0100 Subject: [PATCH 147/788] C++: Index 'getConvertedResultExpression' by an integer. --- .../semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 422b5b33487..7af7a3df7f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1052,16 +1052,18 @@ private module GetConvertedResultExpression { * Note that this predicate may return multiple results in cases where a conversion belond to a * different AST element than its operand. */ - Expr getConvertedResultExpression(Instruction instr) { + Expr getConvertedResultExpression(Instruction instr, int n) { // Only fully converted instructions has a result for `asConvertedExpr` not conversionFlow(unique( | | getAUse(instr)), _, false, false) and - result = getConvertedResultExpressionImpl(instr) + result = getConvertedResultExpressionImpl(instr) and + n = 0 or // If the conversion also has a result then we return multiple results exists(Operand operand | conversionFlow(operand, instr, false, false) | + n = 1 and result = getConvertedResultExpressionImpl(operand.getDef()) or - result = getConvertedResultExpression(operand.getDef()) + result = getConvertedResultExpression(operand.getDef(), n - 1) ) } From d2bb73ba1ff2bc91d0376e30cf1c24b259dc302a Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 1 Sep 2023 13:03:29 +0100 Subject: [PATCH 148/788] C++: Use the index to to get the 'most converted' and 'least converted' instruction in a bunch of places. --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 145 +++++++++++++----- .../fields/dataflow-ir-consistency.expected | 10 -- .../dataflow/fields/ir-path-flow.expected | 20 +++ .../dataflow/taint-tests/taint.expected | 46 +++++- .../CastArrayPointerArithmetic.expected | 60 -------- .../SAMATE/OverrunWriteProductFlow.expected | 14 ++ .../semmle/tests/OverflowBuffer.expected | 3 - .../tests/VeryLikelyOverrunWrite.expected | 1 - .../CWE-134/semmle/argv/argvLocal.expected | 12 +- .../CWE/CWE-319/UseOfHttp/UseOfHttp.expected | 3 - .../PotentiallyExposedSystemData.expected | 3 - .../Security/CWE/CWE-611/XXE.expected | 6 - 12 files changed, 187 insertions(+), 136 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 7af7a3df7f6..36d26046a70 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -193,13 +193,23 @@ class Node extends TIRDataFlowNode { * a `Conversion`, then the result is the underlying non-`Conversion` base * expression. */ - Expr asExpr() { result = this.(ExprNode).getExpr() } + Expr asExpr() { result = this.asExpr(_) } + + /** + * INTERNAL: Do not use. + */ + Expr asExpr(int n) { result = this.(ExprNode).getExpr(n) } + + /** + * INTERNAL: Do not use. + */ + Expr asIndirectExpr(int n, int index) { result = this.(IndirectExprNode).getExpr(n, index) } /** * Gets the non-conversion expression that's indirectly tracked by this node * under `index` number of indirections. */ - Expr asIndirectExpr(int index) { result = this.(IndirectExprNode).getExpr(index) } + Expr asIndirectExpr(int index) { result = this.asIndirectExpr(_, index) } /** * Gets the non-conversion expression that's indirectly tracked by this node @@ -211,15 +221,26 @@ class Node extends TIRDataFlowNode { * Gets the expression corresponding to this node, if any. The returned * expression may be a `Conversion`. */ - Expr asConvertedExpr() { result = this.(ExprNode).getConvertedExpr() } + Expr asConvertedExpr() { result = this.asConvertedExpr(_) } + + /** + * Gets the expression corresponding to this node, if any. The returned + * expression may be a `Conversion`. + */ + Expr asConvertedExpr(int n) { result = this.(ExprNode).getConvertedExpr(n) } + + /** + * INTERNAL: Do not use. + */ + Expr asIndirectConvertedExpr(int n, int index) { + result = this.(IndirectExprNode).getConvertedExpr(n, index) + } /** * Gets the expression that's indirectly tracked by this node * behind `index` number of indirections. */ - Expr asIndirectConvertedExpr(int index) { - result = this.(IndirectExprNode).getConvertedExpr(index) - } + Expr asIndirectConvertedExpr(int index) { result = this.asIndirectConvertedExpr(_, index) } /** * Gets the expression that's indirectly tracked by this node behind a @@ -1090,46 +1111,46 @@ private module GetConvertedResultExpression { private import GetConvertedResultExpression /** Holds if `node` is an `OperandNode` that should map `node.asExpr()` to `e`. */ -predicate exprNodeShouldBeOperand(OperandNode node, Expr e) { +predicate exprNodeShouldBeOperand(OperandNode node, Expr e, int n) { exists(Instruction def | unique( | | getAUse(def)) = node.getOperand() and - e = getConvertedResultExpression(def) + e = getConvertedResultExpression(def, n) ) } /** Holds if `node` should be an `IndirectOperand` that maps `node.asIndirectExpr()` to `e`. */ private predicate indirectExprNodeShouldBeIndirectOperand( - IndirectOperand node, Expr e, int indirectionIndex + IndirectOperand node, Expr e, int n, int indirectionIndex ) { exists(Instruction def | node.hasOperandAndIndirectionIndex(unique( | | getAUse(def)), indirectionIndex) and - e = getConvertedResultExpression(def) + e = getConvertedResultExpression(def, n) ) } -private predicate exprNodeShouldBeIndirectOutNode(IndirectArgumentOutNode node, Expr e) { +private predicate exprNodeShouldBeIndirectOutNode(IndirectArgumentOutNode node, Expr e, int n) { exists(CallInstruction call | call.getStaticCallTarget() instanceof Constructor and - e = getConvertedResultExpression(call) and + e = getConvertedResultExpression(call, n) and call.getThisArgumentOperand() = node.getAddressOperand() ) } /** Holds if `node` should be an instruction node that maps `node.asExpr()` to `e`. */ -predicate exprNodeShouldBeInstruction(Node node, Expr e) { - not exprNodeShouldBeOperand(_, e) and - not exprNodeShouldBeIndirectOutNode(_, e) and - e = getConvertedResultExpression(node.asInstruction()) +predicate exprNodeShouldBeInstruction(Node node, Expr e, int n) { + not exprNodeShouldBeOperand(_, e, n) and + not exprNodeShouldBeIndirectOutNode(_, e, n) and + e = getConvertedResultExpression(node.asInstruction(), n) } /** Holds if `node` should be an `IndirectInstruction` that maps `node.asIndirectExpr()` to `e`. */ predicate indirectExprNodeShouldBeIndirectInstruction( - IndirectInstruction node, Expr e, int indirectionIndex + IndirectInstruction node, Expr e, int n, int indirectionIndex ) { - not indirectExprNodeShouldBeIndirectOperand(_, e, indirectionIndex) and + not indirectExprNodeShouldBeIndirectOperand(_, e, n, indirectionIndex) and exists(Instruction instr | node.hasInstructionAndIndirectionIndex(instr, indirectionIndex) and - e = getConvertedResultExpression(instr) + e = getConvertedResultExpression(instr, n) ) } @@ -1138,22 +1159,32 @@ abstract private class ExprNodeBase extends Node { * Gets the expression corresponding to this node, if any. The returned * expression may be a `Conversion`. */ - abstract Expr getConvertedExpr(); + abstract Expr getConvertedExpr(int n); /** Gets the non-conversion expression corresponding to this node, if any. */ - final Expr getExpr() { result = this.getConvertedExpr().getUnconverted() } + final Expr getExpr(int n) { result = this.getConvertedExpr(n).getUnconverted() } } private class InstructionExprNode extends ExprNodeBase, InstructionNode { - InstructionExprNode() { exprNodeShouldBeInstruction(this, _) } + InstructionExprNode() { + exists(Expr e, int n | + exprNodeShouldBeInstruction(this, e, n) and + not exprNodeShouldBeInstruction(_, e, n + 1) + ) + } - final override Expr getConvertedExpr() { exprNodeShouldBeInstruction(this, result) } + final override Expr getConvertedExpr(int n) { exprNodeShouldBeInstruction(this, result, n) } } private class OperandExprNode extends ExprNodeBase, OperandNode { - OperandExprNode() { exprNodeShouldBeOperand(this, _) } + OperandExprNode() { + exists(Expr e, int n | + exprNodeShouldBeOperand(this, e, n) and + not exprNodeShouldBeOperand(_, e, n + 1) + ) + } - final override Expr getConvertedExpr() { exprNodeShouldBeOperand(this, result) } + final override Expr getConvertedExpr(int n) { exprNodeShouldBeOperand(this, result, n) } } abstract private class IndirectExprNodeBase extends Node { @@ -1161,55 +1192,75 @@ abstract private class IndirectExprNodeBase extends Node { * Gets the expression corresponding to this node, if any. The returned * expression may be a `Conversion`. */ - abstract Expr getConvertedExpr(int indirectionIndex); + abstract Expr getConvertedExpr(int n, int indirectionIndex); /** Gets the non-conversion expression corresponding to this node, if any. */ - final Expr getExpr(int indirectionIndex) { - result = this.getConvertedExpr(indirectionIndex).getUnconverted() + final Expr getExpr(int n, int indirectionIndex) { + result = this.getConvertedExpr(n, indirectionIndex).getUnconverted() } } private class IndirectOperandIndirectExprNode extends IndirectExprNodeBase instanceof IndirectOperand { - IndirectOperandIndirectExprNode() { indirectExprNodeShouldBeIndirectOperand(this, _, _) } + IndirectOperandIndirectExprNode() { + exists(Expr e, int n, int indirectionIndex | + indirectExprNodeShouldBeIndirectOperand(this, e, n, indirectionIndex) and + not indirectExprNodeShouldBeIndirectOperand(_, e, n + 1, indirectionIndex) + ) + } - final override Expr getConvertedExpr(int index) { - indirectExprNodeShouldBeIndirectOperand(this, result, index) + final override Expr getConvertedExpr(int n, int index) { + indirectExprNodeShouldBeIndirectOperand(this, result, n, index) } } private class IndirectInstructionIndirectExprNode extends IndirectExprNodeBase instanceof IndirectInstruction { - IndirectInstructionIndirectExprNode() { indirectExprNodeShouldBeIndirectInstruction(this, _, _) } + IndirectInstructionIndirectExprNode() { + exists(Expr e, int n, int indirectionIndex | + indirectExprNodeShouldBeIndirectInstruction(this, e, n, indirectionIndex) and + not indirectExprNodeShouldBeIndirectInstruction(_, e, n + 1, indirectionIndex) + ) + } - final override Expr getConvertedExpr(int index) { - indirectExprNodeShouldBeIndirectInstruction(this, result, index) + final override Expr getConvertedExpr(int n, int index) { + indirectExprNodeShouldBeIndirectInstruction(this, result, n, index) } } private class IndirectArgumentOutExprNode extends ExprNodeBase, IndirectArgumentOutNode { - IndirectArgumentOutExprNode() { exprNodeShouldBeIndirectOutNode(this, _) } + IndirectArgumentOutExprNode() { exprNodeShouldBeIndirectOutNode(this, _, _) } - final override Expr getConvertedExpr() { exprNodeShouldBeIndirectOutNode(this, result) } + final override Expr getConvertedExpr(int n) { exprNodeShouldBeIndirectOutNode(this, result, n) } } /** * An expression, viewed as a node in a data flow graph. */ class ExprNode extends Node instanceof ExprNodeBase { + /** + * INTERNAL: Do not use. + */ + Expr getExpr(int n) { result = super.getExpr(n) } + /** * Gets the non-conversion expression corresponding to this node, if any. If * this node strictly (in the sense of `getConvertedExpr`) corresponds to a * `Conversion`, then the result is that `Conversion`'s non-`Conversion` base * expression. */ - Expr getExpr() { result = super.getExpr() } + final Expr getExpr() { result = this.getExpr(_) } + + /** + * INTERNAL: Do not use. + */ + Expr getConvertedExpr(int n) { result = super.getConvertedExpr(n) } /** * Gets the expression corresponding to this node, if any. The returned * expression may be a `Conversion`. */ - Expr getConvertedExpr() { result = super.getConvertedExpr() } + final Expr getConvertedExpr() { result = this.getConvertedExpr(_) } } /** @@ -1222,13 +1273,27 @@ class IndirectExprNode extends Node instanceof IndirectExprNodeBase { * `Conversion`, then the result is that `Conversion`'s non-`Conversion` base * expression. */ - Expr getExpr(int indirectionIndex) { result = super.getExpr(indirectionIndex) } + final Expr getExpr(int indirectionIndex) { result = this.getExpr(_, indirectionIndex) } + + /** + * INTERNAL: Do not use. + */ + Expr getExpr(int n, int indirectionIndex) { result = super.getExpr(n, indirectionIndex) } + + /** + * INTERNAL: Do not use. + */ + Expr getConvertedExpr(int n, int indirectionIndex) { + result = super.getConvertedExpr(n, indirectionIndex) + } /** * Gets the expression corresponding to this node, if any. The returned * expression may be a `Conversion`. */ - Expr getConvertedExpr(int indirectionIndex) { result = super.getConvertedExpr(indirectionIndex) } + Expr getConvertedExpr(int indirectionIndex) { + result = this.getConvertedExpr(_, indirectionIndex) + } } /** diff --git a/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected b/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected index 618aeec1791..adae4f412ce 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected @@ -57,16 +57,6 @@ uniqueNodeToString | aliasing.cpp:132:9:132:14 | & ... | Node should have one toString but has 3. | | aliasing.cpp:132:9:132:14 | * ... | Node should have one toString but has 3. | | aliasing.cpp:132:9:132:14 | xs | Node should have one toString but has 3. | -| aliasing.cpp:132:10:132:14 | & ... | Node should have one toString but has 3. | -| aliasing.cpp:132:10:132:14 | & ... indirection | Node should have one toString but has 3. | -| aliasing.cpp:132:10:132:14 | * ... | Node should have one toString but has 3. | -| aliasing.cpp:132:10:132:14 | * ... indirection | Node should have one toString but has 3. | -| aliasing.cpp:132:10:132:14 | xs | Node should have one toString but has 3. | -| aliasing.cpp:132:10:132:14 | xs indirection | Node should have one toString but has 3. | -| aliasing.cpp:132:11:132:14 | * ... | Node should have one toString but has 2. | -| aliasing.cpp:132:11:132:14 | * ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:132:11:132:14 | xs | Node should have one toString but has 2. | -| aliasing.cpp:132:11:132:14 | xs indirection | Node should have one toString but has 2. | | aliasing.cpp:136:15:136:17 | + ... | Node should have one toString but has 2. | | aliasing.cpp:136:15:136:17 | + ... indirection | Node should have one toString but has 2. | | aliasing.cpp:136:15:136:17 | xs | Node should have one toString but has 2. | diff --git a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected index 816a3b91edf..60c691b0939 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected @@ -13,6 +13,8 @@ edges | A.cpp:41:5:41:6 | insert output argument | A.cpp:43:10:43:12 | & ... indirection | | A.cpp:41:5:41:6 | insert output argument | A.cpp:43:10:43:12 | ct indirection | | A.cpp:41:15:41:21 | new | A.cpp:41:5:41:6 | insert output argument | +| A.cpp:41:15:41:21 | new | A.cpp:41:5:41:6 | insert output argument | +| A.cpp:41:15:41:21 | new | A.cpp:41:15:41:21 | new | | A.cpp:47:12:47:18 | new | A.cpp:48:20:48:20 | c | | A.cpp:48:12:48:18 | call to make indirection [c] | A.cpp:49:10:49:10 | b indirection [c] | | A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | @@ -21,6 +23,7 @@ edges | A.cpp:55:5:55:5 | set output argument [c] | A.cpp:56:10:56:10 | b indirection [c] | | A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | | A.cpp:55:12:55:19 | new | A.cpp:55:5:55:5 | set output argument [c] | +| A.cpp:55:12:55:19 | new | A.cpp:55:12:55:19 | new | | A.cpp:56:10:56:10 | b indirection [c] | A.cpp:28:8:28:10 | this indirection [c] | | A.cpp:56:10:56:10 | b indirection [c] | A.cpp:56:10:56:17 | call to get | | A.cpp:57:11:57:24 | call to B [c] | A.cpp:57:11:57:24 | new indirection [c] | @@ -31,10 +34,12 @@ edges | A.cpp:57:17:57:23 | new | A.cpp:57:17:57:23 | new | | A.cpp:64:10:64:15 | call to setOnB indirection [c] | A.cpp:66:10:66:11 | b2 indirection [c] | | A.cpp:64:21:64:28 | new | A.cpp:64:10:64:15 | call to setOnB indirection [c] | +| A.cpp:64:21:64:28 | new | A.cpp:64:21:64:28 | new | | A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | | A.cpp:66:10:66:11 | b2 indirection [c] | A.cpp:66:10:66:14 | c | | A.cpp:73:10:73:19 | call to setOnBWrap indirection [c] | A.cpp:75:10:75:11 | b2 indirection [c] | | A.cpp:73:25:73:32 | new | A.cpp:73:10:73:19 | call to setOnBWrap indirection [c] | +| A.cpp:73:25:73:32 | new | A.cpp:73:25:73:32 | new | | A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | | A.cpp:75:10:75:11 | b2 indirection [c] | A.cpp:75:10:75:14 | c | | A.cpp:78:27:78:27 | c | A.cpp:81:21:81:21 | c | @@ -853,6 +858,7 @@ nodes | A.cpp:31:20:31:20 | c | semmle.label | c | | A.cpp:41:5:41:6 | insert output argument | semmle.label | insert output argument | | A.cpp:41:15:41:21 | new | semmle.label | new | +| A.cpp:41:15:41:21 | new | semmle.label | new | | A.cpp:43:10:43:12 | & ... indirection | semmle.label | & ... indirection | | A.cpp:43:10:43:12 | & ... indirection | semmle.label | ct indirection | | A.cpp:43:10:43:12 | ct indirection | semmle.label | & ... indirection | @@ -864,6 +870,7 @@ nodes | A.cpp:49:10:49:13 | c | semmle.label | c | | A.cpp:55:5:55:5 | set output argument [c] | semmle.label | set output argument [c] | | A.cpp:55:12:55:19 | new | semmle.label | new | +| A.cpp:55:12:55:19 | new | semmle.label | new | | A.cpp:56:10:56:10 | b indirection [c] | semmle.label | b indirection [c] | | A.cpp:56:10:56:17 | call to get | semmle.label | call to get | | A.cpp:57:10:57:32 | call to get | semmle.label | call to get | @@ -873,10 +880,12 @@ nodes | A.cpp:57:17:57:23 | new | semmle.label | new | | A.cpp:64:10:64:15 | call to setOnB indirection [c] | semmle.label | call to setOnB indirection [c] | | A.cpp:64:21:64:28 | new | semmle.label | new | +| A.cpp:64:21:64:28 | new | semmle.label | new | | A.cpp:66:10:66:11 | b2 indirection [c] | semmle.label | b2 indirection [c] | | A.cpp:66:10:66:14 | c | semmle.label | c | | A.cpp:73:10:73:19 | call to setOnBWrap indirection [c] | semmle.label | call to setOnBWrap indirection [c] | | A.cpp:73:25:73:32 | new | semmle.label | new | +| A.cpp:73:25:73:32 | new | semmle.label | new | | A.cpp:75:10:75:11 | b2 indirection [c] | semmle.label | b2 indirection [c] | | A.cpp:75:10:75:14 | c | semmle.label | c | | A.cpp:78:6:78:15 | setOnBWrap indirection [c] | semmle.label | setOnBWrap indirection [c] | @@ -1788,17 +1797,28 @@ subpaths | simple.cpp:84:14:84:20 | this indirection [f2, f1] | simple.cpp:78:9:78:15 | this indirection [f2, f1] | simple.cpp:78:9:78:15 | getf2f1 indirection | simple.cpp:84:14:84:20 | call to getf2f1 | #select | A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | +| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:49:10:49:13 | c | A.cpp:47:12:47:18 | new | A.cpp:49:10:49:13 | c | c flows from $@ | A.cpp:47:12:47:18 | new | new | | A.cpp:56:10:56:17 | call to get | A.cpp:55:12:55:19 | new | A.cpp:56:10:56:17 | call to get | call to get flows from $@ | A.cpp:55:12:55:19 | new | new | +| A.cpp:56:10:56:17 | call to get | A.cpp:55:12:55:19 | new | A.cpp:56:10:56:17 | call to get | call to get flows from $@ | A.cpp:55:12:55:19 | new | new | | A.cpp:57:10:57:32 | call to get | A.cpp:57:17:57:23 | new | A.cpp:57:10:57:32 | call to get | call to get flows from $@ | A.cpp:57:17:57:23 | new | new | | A.cpp:66:10:66:14 | c | A.cpp:64:21:64:28 | new | A.cpp:66:10:66:14 | c | c flows from $@ | A.cpp:64:21:64:28 | new | new | +| A.cpp:66:10:66:14 | c | A.cpp:64:21:64:28 | new | A.cpp:66:10:66:14 | c | c flows from $@ | A.cpp:64:21:64:28 | new | new | +| A.cpp:75:10:75:14 | c | A.cpp:73:25:73:32 | new | A.cpp:75:10:75:14 | c | c flows from $@ | A.cpp:73:25:73:32 | new | new | | A.cpp:75:10:75:14 | c | A.cpp:73:25:73:32 | new | A.cpp:75:10:75:14 | c | c flows from $@ | A.cpp:73:25:73:32 | new | new | | A.cpp:107:12:107:16 | a | A.cpp:98:12:98:18 | new | A.cpp:107:12:107:16 | a | a flows from $@ | A.cpp:98:12:98:18 | new | new | | A.cpp:120:12:120:16 | a | A.cpp:98:12:98:18 | new | A.cpp:120:12:120:16 | a | a flows from $@ | A.cpp:98:12:98:18 | new | new | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected index c5f6133af0f..4f08af09a7b 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected @@ -4,8 +4,46 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (taint WARNING: Module DataFlow has been deprecated and may be removed in future (taint.ql:68,25-33) WARNING: Module TaintTracking has been deprecated and may be removed in future (taint.ql:73,20-33) testFailures -| map.cpp:172:20:172:30 | // $ ast,ir | Missing result:ir= | -| map.cpp:174:20:174:30 | // $ ast,ir | Missing result:ir= | -| map.cpp:324:20:324:30 | // $ ast,ir | Missing result:ir= | -| map.cpp:326:20:326:30 | // $ ast,ir | Missing result:ir= | +| map.cpp:168:7:168:27 | ... = ... | Unexpected result: ir=168:7 | +| map.cpp:168:7:168:27 | ... = ... | Unexpected result: ir=168:20 | +| map.cpp:168:7:168:27 | ... = ... indirection | Unexpected result: ir=168:7 | +| map.cpp:168:7:168:27 | ... = ... indirection | Unexpected result: ir=168:20 | +| map.cpp:168:7:168:27 | call to source | Unexpected result: ir=168:7 | +| map.cpp:168:7:168:27 | call to source | Unexpected result: ir=168:20 | +| map.cpp:168:7:168:27 | call to source indirection | Unexpected result: ir=168:7 | +| map.cpp:168:7:168:27 | call to source indirection | Unexpected result: ir=168:20 | +| map.cpp:168:31:168:41 | // $ ast,ir | Missing result:ir= | +| map.cpp:170:7:170:30 | ... = ... | Unexpected result: ir=170:7 | +| map.cpp:170:7:170:30 | ... = ... | Unexpected result: ir=170:23 | +| map.cpp:170:7:170:30 | ... = ... indirection | Unexpected result: ir=170:7 | +| map.cpp:170:7:170:30 | ... = ... indirection | Unexpected result: ir=170:23 | +| map.cpp:170:7:170:30 | call to source | Unexpected result: ir=170:7 | +| map.cpp:170:7:170:30 | call to source | Unexpected result: ir=170:23 | +| map.cpp:170:7:170:30 | call to source indirection | Unexpected result: ir=170:7 | +| map.cpp:170:7:170:30 | call to source indirection | Unexpected result: ir=170:23 | +| map.cpp:170:34:170:44 | // $ ast,ir | Missing result:ir= | +| map.cpp:320:7:320:27 | ... = ... | Unexpected result: ir=320:7 | +| map.cpp:320:7:320:27 | ... = ... | Unexpected result: ir=320:20 | +| map.cpp:320:7:320:27 | ... = ... indirection | Unexpected result: ir=320:7 | +| map.cpp:320:7:320:27 | ... = ... indirection | Unexpected result: ir=320:20 | +| map.cpp:320:7:320:27 | call to source | Unexpected result: ir=320:7 | +| map.cpp:320:7:320:27 | call to source | Unexpected result: ir=320:20 | +| map.cpp:320:7:320:27 | call to source indirection | Unexpected result: ir=320:7 | +| map.cpp:320:7:320:27 | call to source indirection | Unexpected result: ir=320:20 | +| map.cpp:320:31:320:41 | // $ ast,ir | Missing result:ir= | +| map.cpp:322:7:322:30 | ... = ... | Unexpected result: ir=322:7 | +| map.cpp:322:7:322:30 | ... = ... | Unexpected result: ir=322:23 | +| map.cpp:322:7:322:30 | ... = ... indirection | Unexpected result: ir=322:7 | +| map.cpp:322:7:322:30 | ... = ... indirection | Unexpected result: ir=322:23 | +| map.cpp:322:7:322:30 | call to source | Unexpected result: ir=322:7 | +| map.cpp:322:7:322:30 | call to source | Unexpected result: ir=322:23 | +| map.cpp:322:7:322:30 | call to source indirection | Unexpected result: ir=322:7 | +| map.cpp:322:7:322:30 | call to source indirection | Unexpected result: ir=322:23 | +| map.cpp:322:34:322:44 | // $ ast,ir | Missing result:ir= | +| taint.cpp:16:8:16:14 | source1 | Unexpected result: ir=12:13 | +| taint.cpp:16:8:16:14 | source1 | Unexpected result: ir=12:22 | +| taint.cpp:16:18:16:28 | // $ ast,ir | Missing result:ir= | +| taint.cpp:17:8:17:16 | ++ ... | Unexpected result: ir=12:13 | +| taint.cpp:17:8:17:16 | ++ ... | Unexpected result: ir=12:22 | +| taint.cpp:17:20:17:30 | // $ ast,ir | Missing result:ir= | failures diff --git a/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected b/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected index 3723c5bf32a..c65f76cec0f 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected @@ -3,47 +3,23 @@ edges | test.cpp:30:34:30:34 | b | test.cpp:31:2:31:2 | b | | test.cpp:34:31:34:31 | b | test.cpp:35:2:35:2 | b | | test.cpp:57:19:57:19 | d | test.cpp:26:29:26:29 | b | -| test.cpp:57:19:57:19 | d | test.cpp:57:19:57:19 | d | | test.cpp:57:19:57:19 | d | test.cpp:58:25:58:25 | d | -| test.cpp:57:19:57:19 | d | test.cpp:58:25:58:25 | d | -| test.cpp:57:19:57:19 | d | test.cpp:59:21:59:21 | d | | test.cpp:57:19:57:19 | d | test.cpp:59:21:59:21 | d | | test.cpp:58:25:58:25 | d | test.cpp:30:34:30:34 | b | -| test.cpp:58:25:58:25 | d | test.cpp:58:25:58:25 | d | -| test.cpp:58:25:58:25 | d | test.cpp:59:21:59:21 | d | | test.cpp:58:25:58:25 | d | test.cpp:59:21:59:21 | d | | test.cpp:59:21:59:21 | d | test.cpp:34:31:34:31 | b | -| test.cpp:59:21:59:21 | d | test.cpp:59:21:59:21 | d | | test.cpp:74:19:74:21 | dss | test.cpp:26:29:26:29 | b | -| test.cpp:74:19:74:21 | dss | test.cpp:74:19:74:21 | dss | | test.cpp:74:19:74:21 | dss | test.cpp:75:25:75:27 | dss | -| test.cpp:74:19:74:21 | dss | test.cpp:75:25:75:27 | dss | -| test.cpp:74:19:74:21 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:74:19:74:21 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:75:25:75:27 | dss | test.cpp:30:34:30:34 | b | -| test.cpp:75:25:75:27 | dss | test.cpp:75:25:75:27 | dss | -| test.cpp:75:25:75:27 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:75:25:75:27 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:76:21:76:23 | dss | test.cpp:34:31:34:31 | b | -| test.cpp:76:21:76:23 | dss | test.cpp:76:21:76:23 | dss | | test.cpp:86:19:86:20 | d2 | test.cpp:26:29:26:29 | b | -| test.cpp:86:19:86:20 | d2 | test.cpp:86:19:86:20 | d2 | -| test.cpp:86:19:86:20 | d2 | test.cpp:86:19:86:20 | d2 | | test.cpp:86:19:86:20 | d2 | test.cpp:87:25:87:26 | d2 | -| test.cpp:86:19:86:20 | d2 | test.cpp:87:25:87:26 | d2 | -| test.cpp:86:19:86:20 | d2 | test.cpp:87:25:87:26 | d2 | -| test.cpp:86:19:86:20 | d2 | test.cpp:88:21:88:22 | d2 | -| test.cpp:86:19:86:20 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:86:19:86:20 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:87:25:87:26 | d2 | test.cpp:30:34:30:34 | b | -| test.cpp:87:25:87:26 | d2 | test.cpp:87:25:87:26 | d2 | -| test.cpp:87:25:87:26 | d2 | test.cpp:87:25:87:26 | d2 | -| test.cpp:87:25:87:26 | d2 | test.cpp:88:21:88:22 | d2 | -| test.cpp:87:25:87:26 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:87:25:87:26 | d2 | test.cpp:88:21:88:22 | d2 | | test.cpp:88:21:88:22 | d2 | test.cpp:34:31:34:31 | b | -| test.cpp:88:21:88:22 | d2 | test.cpp:88:21:88:22 | d2 | -| test.cpp:88:21:88:22 | d2 | test.cpp:88:21:88:22 | d2 | nodes | test.cpp:26:29:26:29 | b | semmle.label | b | | test.cpp:27:2:27:2 | b | semmle.label | b | @@ -52,67 +28,31 @@ nodes | test.cpp:34:31:34:31 | b | semmle.label | b | | test.cpp:35:2:35:2 | b | semmle.label | b | | test.cpp:57:19:57:19 | d | semmle.label | d | -| test.cpp:57:19:57:19 | d | semmle.label | d | -| test.cpp:58:25:58:25 | d | semmle.label | d | | test.cpp:58:25:58:25 | d | semmle.label | d | | test.cpp:59:21:59:21 | d | semmle.label | d | -| test.cpp:59:21:59:21 | d | semmle.label | d | -| test.cpp:74:19:74:21 | dss | semmle.label | dss | | test.cpp:74:19:74:21 | dss | semmle.label | dss | | test.cpp:75:25:75:27 | dss | semmle.label | dss | -| test.cpp:75:25:75:27 | dss | semmle.label | dss | -| test.cpp:76:21:76:23 | dss | semmle.label | dss | | test.cpp:76:21:76:23 | dss | semmle.label | dss | | test.cpp:86:19:86:20 | d2 | semmle.label | d2 | -| test.cpp:86:19:86:20 | d2 | semmle.label | d2 | -| test.cpp:86:19:86:20 | d2 | semmle.label | d2 | | test.cpp:87:25:87:26 | d2 | semmle.label | d2 | -| test.cpp:87:25:87:26 | d2 | semmle.label | d2 | -| test.cpp:87:25:87:26 | d2 | semmle.label | d2 | -| test.cpp:88:21:88:22 | d2 | semmle.label | d2 | -| test.cpp:88:21:88:22 | d2 | semmle.label | d2 | | test.cpp:88:21:88:22 | d2 | semmle.label | d2 | subpaths #select | test.cpp:27:2:27:2 | b | test.cpp:57:19:57:19 | d | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | -| test.cpp:27:2:27:2 | b | test.cpp:57:19:57:19 | d | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | -| test.cpp:27:2:27:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:27:2:27:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:27:2:27:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:27:2:27:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:27:2:27:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:57:19:57:19 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | | test.cpp:31:2:31:2 | b | test.cpp:57:19:57:19 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | | test.cpp:31:2:31:2 | b | test.cpp:58:25:58:25 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:58:25:58:25 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:31:2:31:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:31:2:31:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | | test.cpp:31:2:31:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:31:2:31:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:57:19:57:19 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:57:19:57:19 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:58:25:58:25 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | | test.cpp:35:2:35:2 | b | test.cpp:58:25:58:25 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | | test.cpp:35:2:35:2 | b | test.cpp:59:21:59:21 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:59:21:59:21 | d | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:59:21:59:21 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:59:21:59:21 | d | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:76:21:76:23 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:76:21:76:23 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:76:21:76:23 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:76:21:76:23 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:88:21:88:22 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:88:21:88:22 | d2 | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:88:21:88:22 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:88:21:88:22 | d2 | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:88:21:88:22 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:88:21:88:22 | d2 | this cast | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected index c2d7723194d..4f0f81569dd 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected @@ -47,19 +47,25 @@ edges | test.cpp:207:17:207:19 | str indirection [string] | test.cpp:207:22:207:27 | string | | test.cpp:214:24:214:24 | p | test.cpp:216:10:216:10 | p | | test.cpp:220:27:220:54 | call to malloc | test.cpp:222:15:222:20 | buffer | +| test.cpp:220:43:220:48 | call to malloc | test.cpp:222:15:222:20 | buffer | | test.cpp:222:15:222:20 | buffer | test.cpp:214:24:214:24 | p | | test.cpp:228:27:228:54 | call to malloc | test.cpp:232:10:232:15 | buffer | +| test.cpp:228:43:228:48 | call to malloc | test.cpp:232:10:232:15 | buffer | | test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:26 | ... = ... | | test.cpp:236:5:236:26 | ... = ... | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | | test.cpp:241:20:241:38 | call to malloc | test.cpp:242:22:242:27 | buffer | +| test.cpp:241:27:241:32 | call to malloc | test.cpp:242:22:242:27 | buffer | | test.cpp:242:16:242:19 | set_string output argument [string] | test.cpp:243:12:243:14 | str indirection [string] | | test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | | test.cpp:242:22:242:27 | buffer | test.cpp:242:16:242:19 | set_string output argument [string] | | test.cpp:243:12:243:14 | str indirection [string] | test.cpp:243:12:243:21 | string | | test.cpp:249:14:249:33 | call to my_alloc | test.cpp:250:12:250:12 | p | | test.cpp:256:9:256:25 | call to malloc | test.cpp:257:12:257:12 | p | +| test.cpp:256:17:256:22 | call to malloc | test.cpp:257:12:257:12 | p | | test.cpp:262:15:262:30 | call to malloc | test.cpp:266:12:266:12 | p | +| test.cpp:262:22:262:27 | call to malloc | test.cpp:266:12:266:12 | p | | test.cpp:264:13:264:30 | call to malloc | test.cpp:266:12:266:12 | p | +| test.cpp:264:20:264:25 | call to malloc | test.cpp:266:12:266:12 | p | nodes | test.cpp:16:11:16:21 | mk_string_t indirection [string] | semmle.label | mk_string_t indirection [string] | | test.cpp:18:5:18:30 | ... = ... | semmle.label | ... = ... | @@ -110,13 +116,16 @@ nodes | test.cpp:214:24:214:24 | p | semmle.label | p | | test.cpp:216:10:216:10 | p | semmle.label | p | | test.cpp:220:27:220:54 | call to malloc | semmle.label | call to malloc | +| test.cpp:220:43:220:48 | call to malloc | semmle.label | call to malloc | | test.cpp:222:15:222:20 | buffer | semmle.label | buffer | | test.cpp:228:27:228:54 | call to malloc | semmle.label | call to malloc | +| test.cpp:228:43:228:48 | call to malloc | semmle.label | call to malloc | | test.cpp:232:10:232:15 | buffer | semmle.label | buffer | | test.cpp:235:40:235:45 | buffer | semmle.label | buffer | | test.cpp:236:5:236:26 | ... = ... | semmle.label | ... = ... | | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | semmle.label | p_str indirection [post update] [string] | | test.cpp:241:20:241:38 | call to malloc | semmle.label | call to malloc | +| test.cpp:241:27:241:32 | call to malloc | semmle.label | call to malloc | | test.cpp:242:16:242:19 | set_string output argument [string] | semmle.label | set_string output argument [string] | | test.cpp:242:22:242:27 | buffer | semmle.label | buffer | | test.cpp:243:12:243:14 | str indirection [string] | semmle.label | str indirection [string] | @@ -124,9 +133,12 @@ nodes | test.cpp:249:14:249:33 | call to my_alloc | semmle.label | call to my_alloc | | test.cpp:250:12:250:12 | p | semmle.label | p | | test.cpp:256:9:256:25 | call to malloc | semmle.label | call to malloc | +| test.cpp:256:17:256:22 | call to malloc | semmle.label | call to malloc | | test.cpp:257:12:257:12 | p | semmle.label | p | | test.cpp:262:15:262:30 | call to malloc | semmle.label | call to malloc | +| test.cpp:262:22:262:27 | call to malloc | semmle.label | call to malloc | | test.cpp:264:13:264:30 | call to malloc | semmle.label | call to malloc | +| test.cpp:264:20:264:25 | call to malloc | semmle.label | call to malloc | | test.cpp:266:12:266:12 | p | semmle.label | p | subpaths | test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | test.cpp:242:16:242:19 | set_string output argument [string] | @@ -147,5 +159,7 @@ subpaths | test.cpp:203:9:203:15 | call to strncpy | test.cpp:147:19:147:24 | call to malloc | test.cpp:203:22:203:27 | string | This write may overflow $@ by 2 elements. | test.cpp:203:22:203:27 | string | string | | test.cpp:207:9:207:15 | call to strncpy | test.cpp:147:19:147:24 | call to malloc | test.cpp:207:22:207:27 | string | This write may overflow $@ by 3 elements. | test.cpp:207:22:207:27 | string | string | | test.cpp:243:5:243:10 | call to memset | test.cpp:241:20:241:38 | call to malloc | test.cpp:243:12:243:21 | string | This write may overflow $@ by 1 element. | test.cpp:243:16:243:21 | string | string | +| test.cpp:243:5:243:10 | call to memset | test.cpp:241:27:241:32 | call to malloc | test.cpp:243:12:243:21 | string | This write may overflow $@ by 1 element. | test.cpp:243:16:243:21 | string | string | | test.cpp:250:5:250:10 | call to memset | test.cpp:249:14:249:33 | call to my_alloc | test.cpp:250:12:250:12 | p | This write may overflow $@ by 1 element. | test.cpp:250:12:250:12 | p | p | | test.cpp:266:5:266:10 | call to memset | test.cpp:262:15:262:30 | call to malloc | test.cpp:266:12:266:12 | p | This write may overflow $@ by 1 element. | test.cpp:266:12:266:12 | p | p | +| test.cpp:266:5:266:10 | call to memset | test.cpp:262:22:262:27 | call to malloc | test.cpp:266:12:266:12 | p | This write may overflow $@ by 1 element. | test.cpp:266:12:266:12 | p | p | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected index b75eda8eec1..62289825220 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected @@ -49,9 +49,6 @@ | tests.cpp:577:7:577:13 | access to array | This array indexing operation accesses a negative index -1 on the $@. | tests.cpp:565:7:565:12 | buffer | array | | tests_restrict.c:12:2:12:7 | call to memcpy | This 'memcpy' operation accesses 2 bytes but the $@ is only 1 byte. | tests_restrict.c:7:6:7:13 | smallbuf | source buffer | | unions.cpp:26:2:26:7 | call to memset | This 'memset' operation accesses 200 bytes but the $@ is only 100 bytes. | unions.cpp:21:10:21:11 | mu | destination buffer | -| unions.cpp:27:2:27:7 | call to memset | This 'memset' operation accesses 100 bytes but the $@ is only 10 bytes. | unions.cpp:15:7:15:11 | small | destination buffer | -| unions.cpp:29:2:29:7 | call to memset | This 'memset' operation accesses 100 bytes but the $@ is only 10 bytes. | unions.cpp:15:7:15:11 | small | destination buffer | -| unions.cpp:30:2:30:7 | call to memset | This 'memset' operation accesses 200 bytes but the $@ is only 10 bytes. | unions.cpp:15:7:15:11 | small | destination buffer | | unions.cpp:30:2:30:7 | call to memset | This 'memset' operation accesses 200 bytes but the $@ is only 100 bytes. | unions.cpp:15:7:15:11 | small | destination buffer | | unions.cpp:34:2:34:7 | call to memset | This 'memset' operation accesses 200 bytes but the $@ is only 100 bytes. | unions.cpp:16:7:16:11 | large | destination buffer | | var_size_struct.cpp:71:3:71:8 | call to memset | This 'memset' operation accesses 1025 bytes but the $@ is only 1024 bytes. | var_size_struct.cpp:63:8:63:11 | data | destination buffer | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/VeryLikelyOverrunWrite.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/VeryLikelyOverrunWrite.expected index 022ae91391e..641be44149e 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/VeryLikelyOverrunWrite.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/VeryLikelyOverrunWrite.expected @@ -17,6 +17,5 @@ | tests.c:186:3:186:9 | call to sprintf | This 'call to sprintf' operation requires 9 bytes but the destination is only 2 bytes. | | tests.c:189:3:189:9 | call to sprintf | This 'call to sprintf' operation requires 3 bytes but the destination is only 2 bytes. | | unions.c:26:2:26:7 | call to strcpy | This 'call to strcpy' operation requires 21 bytes but the destination is only 16 bytes. | -| unions.c:27:2:27:7 | call to strcpy | This 'call to strcpy' operation requires 21 bytes but the destination is only 15 bytes. | | unions.c:27:2:27:7 | call to strcpy | This 'call to strcpy' operation requires 21 bytes but the destination is only 16 bytes. | | var_size_struct.cpp:22:3:22:8 | call to strcpy | This 'call to strcpy' operation requires 10 bytes but the destination is only 9 bytes. | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected index 9b269a1f95a..1b70f69d75d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected @@ -57,12 +57,14 @@ edges | argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 | +| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:10 | i4 | +| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:10 | i4 | +| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | +| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | -| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | i4 | -| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... | @@ -107,8 +109,6 @@ edges | argvLocal.c:149:11:149:14 | argv | argvLocal.c:151:15:151:16 | i8 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:9:169:20 | i10 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:9:169:20 | i10 | -| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:9:169:20 | i10 | -| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:9:169:20 | i10 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 | | argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:15:170:26 | i10 | @@ -164,12 +164,13 @@ nodes | argvLocal.c:131:9:131:14 | ... + ... | semmle.label | ... + ... | | argvLocal.c:132:15:132:20 | ... + ... | semmle.label | ... + ... | | argvLocal.c:132:15:132:20 | ... + ... | semmle.label | ... + ... | +| argvLocal.c:135:9:135:10 | i4 | semmle.label | i4 | +| argvLocal.c:135:9:135:12 | ... ++ | semmle.label | ... ++ | | argvLocal.c:135:9:135:12 | ... ++ | semmle.label | ... ++ | | argvLocal.c:135:9:135:12 | ... ++ | semmle.label | ... ++ | | argvLocal.c:135:9:135:12 | ... ++ | semmle.label | i4 | | argvLocal.c:135:9:135:12 | i4 | semmle.label | ... ++ | | argvLocal.c:135:9:135:12 | i4 | semmle.label | i4 | -| argvLocal.c:135:9:135:12 | i4 | semmle.label | i4 | | argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... | | argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... | | argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... | @@ -191,7 +192,6 @@ nodes | argvLocal.c:168:18:168:21 | argv | semmle.label | argv | | argvLocal.c:168:18:168:21 | argv | semmle.label | argv | | argvLocal.c:169:9:169:20 | i10 | semmle.label | i10 | -| argvLocal.c:169:9:169:20 | i10 | semmle.label | i10 | | argvLocal.c:169:18:169:20 | i10 | semmle.label | i10 | | argvLocal.c:170:15:170:26 | i10 | semmle.label | i10 | | argvLocal.c:170:24:170:26 | i10 | semmle.label | i10 | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected index c576b4d1b12..64e14db1f04 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected @@ -11,7 +11,6 @@ edges | test.cpp:46:18:46:26 | http:// indirection | test.cpp:49:11:49:16 | buffer indirection | | test.cpp:49:11:49:16 | buffer indirection | test.cpp:11:26:11:28 | url indirection | | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:121:11:121:13 | ptr indirection | -| test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:121:11:121:13 | ptr indirection | | test.cpp:121:11:121:13 | ptr indirection | test.cpp:11:26:11:28 | url indirection | nodes | test.cpp:11:26:11:28 | url indirection | semmle.label | url indirection | @@ -27,7 +26,6 @@ nodes | test.cpp:46:18:46:26 | http:// indirection | semmle.label | http:// indirection | | test.cpp:49:11:49:16 | buffer indirection | semmle.label | buffer indirection | | test.cpp:110:21:110:40 | http://example.com indirection | semmle.label | http://example.com indirection | -| test.cpp:110:21:110:40 | http://example.com indirection | semmle.label | http://example.com indirection | | test.cpp:121:11:121:13 | ptr indirection | semmle.label | ptr indirection | subpaths #select @@ -37,4 +35,3 @@ subpaths | test.cpp:36:26:36:45 | http://example.com | test.cpp:36:26:36:45 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:46:18:46:26 | http:// | test.cpp:46:18:46:26 | http:// indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected index f71eb606bd3..d07199fde5d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected @@ -1,11 +1,8 @@ edges | tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | -| tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | nodes | tests.c:57:21:57:28 | password indirection | semmle.label | password indirection | -| tests.c:57:21:57:28 | password indirection | semmle.label | password indirection | | tests.c:70:70:70:77 | password indirection | semmle.label | password indirection | subpaths #select | tests.c:70:70:70:77 | password indirection | tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | This operation potentially exposes sensitive system data from $@. | tests.c:57:21:57:28 | password indirection | password indirection | -| tests.c:70:70:70:77 | password indirection | tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | This operation potentially exposes sensitive system data from $@. | tests.c:57:21:57:28 | password indirection | password indirection | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected index 6d794450b60..f24a5f8d04a 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected @@ -52,8 +52,6 @@ edges | tests.cpp:66:23:66:43 | call to XercesDOMParser | tests.cpp:69:2:69:2 | p indirection | | tests.cpp:73:23:73:43 | call to XercesDOMParser | tests.cpp:80:2:80:2 | p indirection | | tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | q indirection | -| tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | q indirection | -| tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | q indirection | | tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | q indirection | | tests.cpp:112:39:112:39 | p indirection | tests.cpp:113:2:113:2 | p indirection | | tests.cpp:116:39:116:39 | p indirection | tests.cpp:117:2:117:2 | p indirection | @@ -134,10 +132,8 @@ nodes | tests.cpp:80:2:80:2 | p indirection | semmle.label | p indirection | | tests.cpp:85:24:85:44 | call to XercesDOMParser | semmle.label | call to XercesDOMParser | | tests.cpp:88:3:88:3 | q indirection | semmle.label | q indirection | -| tests.cpp:88:3:88:3 | q indirection | semmle.label | q indirection | | tests.cpp:100:24:100:44 | call to XercesDOMParser | semmle.label | call to XercesDOMParser | | tests.cpp:104:3:104:3 | q indirection | semmle.label | q indirection | -| tests.cpp:104:3:104:3 | q indirection | semmle.label | q indirection | | tests.cpp:112:39:112:39 | p indirection | semmle.label | p indirection | | tests.cpp:113:2:113:2 | p indirection | semmle.label | p indirection | | tests.cpp:116:39:116:39 | p indirection | semmle.label | p indirection | @@ -174,8 +170,6 @@ subpaths | tests.cpp:69:2:69:2 | p indirection | tests.cpp:66:23:66:43 | call to XercesDOMParser | tests.cpp:69:2:69:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:66:23:66:43 | call to XercesDOMParser | XML parser | | tests.cpp:80:2:80:2 | p indirection | tests.cpp:73:23:73:43 | call to XercesDOMParser | tests.cpp:80:2:80:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:73:23:73:43 | call to XercesDOMParser | XML parser | | tests.cpp:88:3:88:3 | q indirection | tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | q indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:85:24:85:44 | call to XercesDOMParser | XML parser | -| tests.cpp:88:3:88:3 | q indirection | tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | q indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:85:24:85:44 | call to XercesDOMParser | XML parser | -| tests.cpp:104:3:104:3 | q indirection | tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | q indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:100:24:100:44 | call to XercesDOMParser | XML parser | | tests.cpp:104:3:104:3 | q indirection | tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | q indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:100:24:100:44 | call to XercesDOMParser | XML parser | | tests.cpp:113:2:113:2 | p indirection | tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:113:2:113:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:122:23:122:43 | call to XercesDOMParser | XML parser | | tests.cpp:117:2:117:2 | p indirection | tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:117:2:117:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:122:23:122:43 | call to XercesDOMParser | XML parser | From f1c4fa23457e40782bb8064d6f7f34b425d93efc Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 1 Sep 2023 13:11:28 +0100 Subject: [PATCH 149/788] C++: When we generate a string for the node we avoid multiple results by only using the 0'th result from the 'asExpr' predicate. However, when we want to convert between nodes and expressions we don't care about which one we get. --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 9 +- .../dataflow-ir-consistency.expected | 291 --------------- .../fields/dataflow-ir-consistency.expected | 279 -------------- .../dataflow/fields/ir-path-flow.expected | 347 ------------------ .../dataflow/taint-tests/taint.expected | 16 - .../Critical/MemoryFreed/DoubleFree.expected | 16 - .../MemoryFreed/UseAfterFree.expected | 7 - .../CWE-134/semmle/argv/argvLocal.expected | 10 - .../CWE-134/semmle/funcs/funcsLocal.expected | 5 - .../TaintedAllocationSize.expected | 6 +- .../CWE/CWE-193/InvalidPointerDeref.expected | 147 -------- .../tests/CleartextTransmission.expected | 3 - .../semmle/tests/UseAfterFree.expected | 7 - 13 files changed, 8 insertions(+), 1135 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 36d26046a70..180daae15b8 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -414,9 +414,10 @@ class Node extends TIRDataFlowNode { } private string toExprString(Node n) { - result = n.asExpr().toString() + result = n.asExpr(0).toString() or - result = n.asIndirectExpr().toString() + " indirection" + not exists(n.asExpr()) and + result = n.asIndirectExpr(0, 1).toString() + " indirection" } /** @@ -1506,7 +1507,7 @@ OperandNode operandNode(Operand operand) { result.getOperand() = operand } * _out of_ an expression, like when an argument is passed by reference, use * `definitionByReferenceNodeFromArgument` instead. */ -ExprNode exprNode(Expr e) { result.getExpr() = e } +ExprNode exprNode(Expr e) { result.getExpr(_) = e } /** * Gets the `Node` corresponding to the value of evaluating `e`. Here, `e` may @@ -1514,7 +1515,7 @@ ExprNode exprNode(Expr e) { result.getExpr() = e } * argument is passed by reference, use * `definitionByReferenceNodeFromArgument` instead. */ -ExprNode convertedExprNode(Expr e) { result.getConvertedExpr() = e } +ExprNode convertedExprNode(Expr e) { result.getConvertedExpr(_) = e } /** * Gets the `Node` corresponding to the value of `p` at function entry. diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected index 4478708e921..58049de095d 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected @@ -4,297 +4,6 @@ uniqueType uniqueNodeLocation missingLocation uniqueNodeToString -| clang.cpp:21:8:21:20 | * ... | Node should have one toString but has 2. | -| clang.cpp:21:8:21:20 | sourceArray1 indirection | Node should have one toString but has 2. | -| clang.cpp:22:8:22:20 | & ... | Node should have one toString but has 2. | -| clang.cpp:22:8:22:20 | & ... indirection | Node should have one toString but has 2. | -| clang.cpp:22:8:22:20 | & ... indirection | Node should have one toString but has 2. | -| clang.cpp:22:8:22:20 | sourceArray1 | Node should have one toString but has 2. | -| clang.cpp:22:8:22:20 | sourceArray1 indirection | Node should have one toString but has 2. | -| clang.cpp:22:8:22:20 | sourceArray1 indirection | Node should have one toString but has 2. | -| clang.cpp:23:17:23:29 | & ... | Node should have one toString but has 2. | -| clang.cpp:23:17:23:29 | & ... indirection | Node should have one toString but has 2. | -| clang.cpp:23:17:23:29 | & ... indirection | Node should have one toString but has 2. | -| clang.cpp:23:17:23:29 | sourceArray1 | Node should have one toString but has 2. | -| clang.cpp:23:17:23:29 | sourceArray1 indirection | Node should have one toString but has 2. | -| clang.cpp:23:17:23:29 | sourceArray1 indirection | Node should have one toString but has 2. | -| dispatch.cpp:78:23:78:39 | * ... | Node should have one toString but has 2. | -| dispatch.cpp:78:23:78:39 | * ... indirection | Node should have one toString but has 2. | -| dispatch.cpp:78:23:78:39 | call to allocateBottom | Node should have one toString but has 2. | -| dispatch.cpp:78:23:78:39 | call to allocateBottom indirection | Node should have one toString but has 2. | -| example.c:24:13:24:30 | ... + ... | Node should have one toString but has 2. | -| example.c:24:13:24:30 | ... = ... | Node should have one toString but has 2. | -| example.c:26:18:26:24 | & ... | Node should have one toString but has 2. | -| example.c:26:18:26:24 | & ... indirection | Node should have one toString but has 2. | -| example.c:26:18:26:24 | coords | Node should have one toString but has 2. | -| example.c:26:18:26:24 | coords indirection | Node should have one toString but has 2. | -| example.c:28:14:28:25 | & ... | Node should have one toString but has 2. | -| example.c:28:14:28:25 | & ... indirection | Node should have one toString but has 2. | -| example.c:28:14:28:25 | & ... indirection | Node should have one toString but has 2. | -| example.c:28:14:28:25 | pos | Node should have one toString but has 2. | -| example.c:28:14:28:25 | pos indirection | Node should have one toString but has 2. | -| example.c:28:14:28:25 | pos indirection | Node should have one toString but has 2. | -| lambdas.cpp:21:8:21:8 | t | Node should have one toString but has 2. | -| lambdas.cpp:21:8:21:8 | t indirection | Node should have one toString but has 2. | -| lambdas.cpp:22:8:22:8 | u | Node should have one toString but has 2. | -| lambdas.cpp:22:8:22:8 | u indirection | Node should have one toString but has 2. | -| lambdas.cpp:41:8:41:8 | a | Node should have one toString but has 2. | -| lambdas.cpp:41:8:41:8 | a indirection | Node should have one toString but has 2. | -| lambdas.cpp:42:8:42:8 | b | Node should have one toString but has 2. | -| lambdas.cpp:42:8:42:8 | b indirection | Node should have one toString but has 2. | -| self_parameter_flow.cpp:3:3:3:5 | * ... | Node should have one toString but has 2. | -| self_parameter_flow.cpp:3:3:3:5 | ps indirection | Node should have one toString but has 2. | -| self_parameter_flow.cpp:8:8:8:9 | & ... | Node should have one toString but has 2. | -| self_parameter_flow.cpp:8:8:8:9 | & ... indirection | Node should have one toString but has 2. | -| self_parameter_flow.cpp:8:8:8:9 | & ... indirection | Node should have one toString but has 2. | -| self_parameter_flow.cpp:8:8:8:9 | s | Node should have one toString but has 2. | -| self_parameter_flow.cpp:8:8:8:9 | s indirection | Node should have one toString but has 2. | -| self_parameter_flow.cpp:8:8:8:9 | s indirection | Node should have one toString but has 2. | -| test.cpp:90:8:90:14 | source1 | Node should have one toString but has 2. | -| test.cpp:90:8:90:14 | source1 indirection | Node should have one toString but has 2. | -| test.cpp:92:8:92:14 | source1 | Node should have one toString but has 2. | -| test.cpp:92:8:92:14 | source1 indirection | Node should have one toString but has 2. | -| test.cpp:103:10:103:12 | ref | Node should have one toString but has 2. | -| test.cpp:103:10:103:12 | ref indirection | Node should have one toString but has 2. | -| test.cpp:110:10:110:12 | ref | Node should have one toString but has 2. | -| test.cpp:110:10:110:12 | ref indirection | Node should have one toString but has 2. | -| test.cpp:115:3:115:6 | * ... | Node should have one toString but has 2. | -| test.cpp:115:3:115:6 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:115:3:115:6 | out | Node should have one toString but has 2. | -| test.cpp:115:3:115:6 | out indirection | Node should have one toString but has 2. | -| test.cpp:120:3:120:6 | * ... | Node should have one toString but has 2. | -| test.cpp:120:3:120:6 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:120:3:120:6 | out | Node should have one toString but has 2. | -| test.cpp:120:3:120:6 | out indirection | Node should have one toString but has 2. | -| test.cpp:125:3:125:6 | * ... | Node should have one toString but has 2. | -| test.cpp:125:3:125:6 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:125:3:125:6 | out | Node should have one toString but has 2. | -| test.cpp:125:3:125:6 | out indirection | Node should have one toString but has 2. | -| test.cpp:384:10:384:13 | & ... | Node should have one toString but has 2. | -| test.cpp:384:10:384:13 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:384:10:384:13 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:384:10:384:13 | tmp | Node should have one toString but has 2. | -| test.cpp:384:10:384:13 | tmp indirection | Node should have one toString but has 2. | -| test.cpp:384:10:384:13 | tmp indirection | Node should have one toString but has 2. | -| test.cpp:384:16:384:23 | & ... | Node should have one toString but has 2. | -| test.cpp:384:16:384:23 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:384:16:384:23 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:384:16:384:23 | source1 | Node should have one toString but has 2. | -| test.cpp:384:16:384:23 | source1 indirection | Node should have one toString but has 2. | -| test.cpp:384:16:384:23 | source1 indirection | Node should have one toString but has 2. | -| test.cpp:390:18:390:21 | & ... | Node should have one toString but has 2. | -| test.cpp:390:18:390:21 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:390:18:390:21 | tmp | Node should have one toString but has 2. | -| test.cpp:390:18:390:21 | tmp indirection | Node should have one toString but has 2. | -| test.cpp:391:10:391:13 | & ... | Node should have one toString but has 2. | -| test.cpp:391:10:391:13 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:391:10:391:13 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:391:10:391:13 | tmp | Node should have one toString but has 2. | -| test.cpp:391:10:391:13 | tmp indirection | Node should have one toString but has 2. | -| test.cpp:391:10:391:13 | tmp indirection | Node should have one toString but has 2. | -| test.cpp:391:16:391:23 | & ... | Node should have one toString but has 2. | -| test.cpp:391:16:391:23 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:391:16:391:23 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:391:16:391:23 | source1 | Node should have one toString but has 2. | -| test.cpp:391:16:391:23 | source1 indirection | Node should have one toString but has 2. | -| test.cpp:391:16:391:23 | source1 indirection | Node should have one toString but has 2. | -| test.cpp:400:10:400:13 | & ... | Node should have one toString but has 2. | -| test.cpp:400:10:400:13 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:400:10:400:13 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:400:10:400:13 | tmp | Node should have one toString but has 2. | -| test.cpp:400:10:400:13 | tmp indirection | Node should have one toString but has 2. | -| test.cpp:400:10:400:13 | tmp indirection | Node should have one toString but has 2. | -| test.cpp:400:16:400:22 | & ... | Node should have one toString but has 2. | -| test.cpp:400:16:400:22 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:400:16:400:22 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:400:16:400:22 | clean1 | Node should have one toString but has 2. | -| test.cpp:400:16:400:22 | clean1 indirection | Node should have one toString but has 2. | -| test.cpp:400:16:400:22 | clean1 indirection | Node should have one toString but has 2. | -| test.cpp:406:18:406:21 | & ... | Node should have one toString but has 2. | -| test.cpp:406:18:406:21 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:406:18:406:21 | tmp | Node should have one toString but has 2. | -| test.cpp:406:18:406:21 | tmp indirection | Node should have one toString but has 2. | -| test.cpp:407:10:407:13 | & ... | Node should have one toString but has 2. | -| test.cpp:407:10:407:13 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:407:10:407:13 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:407:10:407:13 | tmp | Node should have one toString but has 2. | -| test.cpp:407:10:407:13 | tmp indirection | Node should have one toString but has 2. | -| test.cpp:407:10:407:13 | tmp indirection | Node should have one toString but has 2. | -| test.cpp:407:16:407:22 | & ... | Node should have one toString but has 2. | -| test.cpp:407:16:407:22 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:407:16:407:22 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:407:16:407:22 | clean1 | Node should have one toString but has 2. | -| test.cpp:407:16:407:22 | clean1 indirection | Node should have one toString but has 2. | -| test.cpp:407:16:407:22 | clean1 indirection | Node should have one toString but has 2. | -| test.cpp:423:20:423:25 | & ... | Node should have one toString but has 2. | -| test.cpp:423:20:423:25 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:423:20:423:25 | local | Node should have one toString but has 2. | -| test.cpp:423:20:423:25 | local indirection | Node should have one toString but has 2. | -| test.cpp:436:8:436:13 | * ... | Node should have one toString but has 2. | -| test.cpp:436:8:436:13 | local indirection | Node should have one toString but has 2. | -| test.cpp:441:18:441:23 | & ... | Node should have one toString but has 2. | -| test.cpp:441:18:441:23 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:441:18:441:23 | local | Node should have one toString but has 2. | -| test.cpp:441:18:441:23 | local indirection | Node should have one toString but has 2. | -| test.cpp:451:8:451:13 | * ... | Node should have one toString but has 2. | -| test.cpp:451:8:451:13 | local indirection | Node should have one toString but has 2. | -| test.cpp:457:9:457:22 | (statement expression) | Node should have one toString but has 2. | -| test.cpp:457:9:457:22 | source1 | Node should have one toString but has 2. | -| test.cpp:458:9:458:21 | (statement expression) | Node should have one toString but has 2. | -| test.cpp:458:9:458:21 | clean1 | Node should have one toString but has 2. | -| test.cpp:460:15:467:4 | (statement expression) | Node should have one toString but has 2. | -| test.cpp:460:15:467:4 | tmp | Node should have one toString but has 2. | -| test.cpp:472:3:472:4 | * ... | Node should have one toString but has 2. | -| test.cpp:472:3:472:4 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:472:3:472:4 | p | Node should have one toString but has 2. | -| test.cpp:472:3:472:4 | p indirection | Node should have one toString but has 2. | -| test.cpp:477:21:477:22 | & ... | Node should have one toString but has 2. | -| test.cpp:477:21:477:22 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:477:21:477:22 | x | Node should have one toString but has 2. | -| test.cpp:477:21:477:22 | x indirection | Node should have one toString but has 2. | -| test.cpp:490:8:490:17 | * ... | Node should have one toString but has 2. | -| test.cpp:490:8:490:17 | p_content indirection | Node should have one toString but has 2. | -| test.cpp:506:3:506:4 | * ... | Node should have one toString but has 2. | -| test.cpp:506:3:506:4 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:506:3:506:4 | p | Node should have one toString but has 2. | -| test.cpp:506:3:506:4 | p indirection | Node should have one toString but has 2. | -| test.cpp:512:34:512:35 | & ... | Node should have one toString but has 2. | -| test.cpp:512:34:512:35 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:512:34:512:35 | x | Node should have one toString but has 2. | -| test.cpp:512:34:512:35 | x indirection | Node should have one toString but has 2. | -| test.cpp:526:3:526:4 | * ... | Node should have one toString but has 2. | -| test.cpp:526:3:526:4 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:526:3:526:4 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:526:3:526:4 | e | Node should have one toString but has 2. | -| test.cpp:526:3:526:4 | e indirection | Node should have one toString but has 2. | -| test.cpp:526:3:526:4 | e indirection | Node should have one toString but has 2. | -| test.cpp:526:8:526:9 | & ... | Node should have one toString but has 2. | -| test.cpp:526:8:526:9 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:526:8:526:9 | x | Node should have one toString but has 2. | -| test.cpp:526:8:526:9 | x indirection | Node should have one toString but has 2. | -| test.cpp:531:39:531:40 | & ... | Node should have one toString but has 2. | -| test.cpp:531:39:531:40 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:531:39:531:40 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:531:39:531:40 | e | Node should have one toString but has 2. | -| test.cpp:531:39:531:40 | e indirection | Node should have one toString but has 2. | -| test.cpp:531:39:531:40 | e indirection | Node should have one toString but has 2. | -| test.cpp:532:8:532:9 | * ... | Node should have one toString but has 2. | -| test.cpp:532:8:532:9 | e indirection | Node should have one toString but has 2. | -| test.cpp:536:10:536:11 | * ... | Node should have one toString but has 2. | -| test.cpp:536:10:536:11 | p indirection | Node should have one toString but has 2. | -| test.cpp:537:5:537:6 | * ... | Node should have one toString but has 2. | -| test.cpp:537:5:537:6 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:537:5:537:6 | p | Node should have one toString but has 2. | -| test.cpp:537:5:537:6 | p indirection | Node should have one toString but has 2. | -| test.cpp:542:5:542:6 | * ... | Node should have one toString but has 2. | -| test.cpp:542:5:542:6 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:542:5:542:6 | p | Node should have one toString but has 2. | -| test.cpp:542:5:542:6 | p indirection | Node should have one toString but has 2. | -| test.cpp:548:24:548:25 | & ... | Node should have one toString but has 2. | -| test.cpp:548:24:548:25 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:548:24:548:25 | x | Node should have one toString but has 2. | -| test.cpp:548:24:548:25 | x indirection | Node should have one toString but has 2. | -| test.cpp:552:24:552:25 | & ... | Node should have one toString but has 2. | -| test.cpp:552:24:552:25 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:552:24:552:25 | y | Node should have one toString but has 2. | -| test.cpp:552:24:552:25 | y indirection | Node should have one toString but has 2. | -| test.cpp:566:10:566:19 | * ... | Node should have one toString but has 2. | -| test.cpp:566:10:566:19 | globalInt indirection | Node should have one toString but has 2. | -| test.cpp:568:10:568:19 | * ... | Node should have one toString but has 2. | -| test.cpp:568:10:568:19 | globalInt indirection | Node should have one toString but has 2. | -| test.cpp:572:10:572:19 | * ... | Node should have one toString but has 2. | -| test.cpp:572:10:572:19 | globalInt indirection | Node should have one toString but has 2. | -| test.cpp:578:10:578:19 | * ... | Node should have one toString but has 2. | -| test.cpp:578:10:578:19 | globalInt indirection | Node should have one toString but has 2. | -| test.cpp:584:7:584:8 | & ... | Node should have one toString but has 2. | -| test.cpp:584:7:584:8 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:584:7:584:8 | s | Node should have one toString but has 2. | -| test.cpp:584:7:584:8 | s indirection | Node should have one toString but has 2. | -| test.cpp:589:18:589:19 | & ... | Node should have one toString but has 2. | -| test.cpp:589:18:589:19 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:589:18:589:19 | x | Node should have one toString but has 2. | -| test.cpp:589:18:589:19 | x indirection | Node should have one toString but has 2. | -| test.cpp:597:8:597:13 | * ... | Node should have one toString but has 2. | -| test.cpp:597:8:597:13 | access to array indirection | Node should have one toString but has 2. | -| test.cpp:603:8:603:9 | * ... | Node should have one toString but has 2. | -| test.cpp:603:8:603:9 | p indirection | Node should have one toString but has 2. | -| test.cpp:608:3:608:4 | * ... | Node should have one toString but has 2. | -| test.cpp:608:3:608:4 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:608:3:608:4 | p | Node should have one toString but has 2. | -| test.cpp:608:3:608:4 | p indirection | Node should have one toString but has 2. | -| test.cpp:609:8:609:9 | * ... | Node should have one toString but has 2. | -| test.cpp:609:8:609:9 | p indirection | Node should have one toString but has 2. | -| test.cpp:615:13:615:21 | & ... | Node should have one toString but has 2. | -| test.cpp:615:13:615:21 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:615:13:615:21 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:615:13:615:21 | p | Node should have one toString but has 2. | -| test.cpp:615:13:615:21 | p indirection | Node should have one toString but has 2. | -| test.cpp:615:13:615:21 | p indirection | Node should have one toString but has 2. | -| test.cpp:616:8:616:17 | * ... | Node should have one toString but has 3. | -| test.cpp:616:8:616:17 | * ... indirection | Node should have one toString but has 3. | -| test.cpp:616:8:616:17 | q indirection | Node should have one toString but has 3. | -| test.cpp:616:9:616:17 | * ... | Node should have one toString but has 2. | -| test.cpp:616:9:616:17 | q indirection | Node should have one toString but has 2. | -| test.cpp:665:26:665:27 | & ... | Node should have one toString but has 2. | -| test.cpp:665:26:665:27 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:665:26:665:27 | s | Node should have one toString but has 2. | -| test.cpp:665:26:665:27 | s indirection | Node should have one toString but has 2. | -| test.cpp:666:8:666:16 | * ... | Node should have one toString but has 2. | -| test.cpp:666:8:666:16 | ptr_to_s indirection | Node should have one toString but has 2. | -| test.cpp:672:26:672:27 | & ... | Node should have one toString but has 2. | -| test.cpp:672:26:672:27 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:672:26:672:27 | s | Node should have one toString but has 2. | -| test.cpp:672:26:672:27 | s indirection | Node should have one toString but has 2. | -| test.cpp:673:8:673:16 | * ... | Node should have one toString but has 2. | -| test.cpp:673:8:673:16 | ptr_to_s indirection | Node should have one toString but has 2. | -| test.cpp:678:26:678:27 | & ... | Node should have one toString but has 2. | -| test.cpp:678:26:678:27 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:678:26:678:27 | s | Node should have one toString but has 2. | -| test.cpp:678:26:678:27 | s indirection | Node should have one toString but has 2. | -| test.cpp:679:8:679:16 | * ... | Node should have one toString but has 2. | -| test.cpp:679:8:679:16 | ptr_to_s indirection | Node should have one toString but has 2. | -| test.cpp:686:26:686:27 | & ... | Node should have one toString but has 2. | -| test.cpp:686:26:686:27 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:686:26:686:27 | s | Node should have one toString but has 2. | -| test.cpp:686:26:686:27 | s indirection | Node should have one toString but has 2. | -| test.cpp:687:8:687:16 | * ... | Node should have one toString but has 2. | -| test.cpp:687:8:687:16 | ptr_to_s indirection | Node should have one toString but has 2. | -| test.cpp:694:3:694:6 | * ... | Node should have one toString but has 2. | -| test.cpp:694:3:694:6 | buf indirection | Node should have one toString but has 2. | -| test.cpp:704:22:704:25 | & ... | Node should have one toString but has 2. | -| test.cpp:704:22:704:25 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:704:22:704:25 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:704:22:704:25 | buf | Node should have one toString but has 2. | -| test.cpp:704:22:704:25 | buf indirection | Node should have one toString but has 2. | -| test.cpp:704:22:704:25 | buf indirection | Node should have one toString but has 2. | -| test.cpp:715:24:715:25 | & ... | Node should have one toString but has 2. | -| test.cpp:715:24:715:25 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:715:24:715:25 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:715:24:715:25 | c | Node should have one toString but has 2. | -| test.cpp:715:24:715:25 | c indirection | Node should have one toString but has 2. | -| test.cpp:715:24:715:25 | c indirection | Node should have one toString but has 2. | -| test.cpp:727:7:727:8 | & ... | Node should have one toString but has 2. | -| test.cpp:727:7:727:8 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:727:7:727:8 | x | Node should have one toString but has 2. | -| test.cpp:727:7:727:8 | x indirection | Node should have one toString but has 2. | -| test.cpp:728:3:728:4 | * ... | Node should have one toString but has 2. | -| test.cpp:728:3:728:4 | * ... indirection | Node should have one toString but has 2. | -| test.cpp:728:3:728:4 | p | Node should have one toString but has 2. | -| test.cpp:728:3:728:4 | p indirection | Node should have one toString but has 2. | -| test.cpp:734:40:734:41 | & ... | Node should have one toString but has 2. | -| test.cpp:734:40:734:41 | & ... indirection | Node should have one toString but has 2. | -| test.cpp:734:40:734:41 | x | Node should have one toString but has 2. | -| test.cpp:734:40:734:41 | x indirection | Node should have one toString but has 2. | -| true_upon_entry.cpp:55:30:55:34 | 1 | Node should have one toString but has 2. | -| true_upon_entry.cpp:55:30:55:34 | ... = ... | Node should have one toString but has 2. | -| true_upon_entry.cpp:63:30:63:34 | 1 | Node should have one toString but has 2. | -| true_upon_entry.cpp:63:30:63:34 | ... = ... | Node should have one toString but has 2. | -| true_upon_entry.cpp:76:30:76:34 | 1 | Node should have one toString but has 2. | -| true_upon_entry.cpp:76:30:76:34 | ... = ... | Node should have one toString but has 2. | -| true_upon_entry.cpp:84:20:84:24 | 1 | Node should have one toString but has 2. | -| true_upon_entry.cpp:84:20:84:24 | ... = ... | Node should have one toString but has 2. | -| true_upon_entry.cpp:91:20:91:24 | 1 | Node should have one toString but has 2. | -| true_upon_entry.cpp:91:20:91:24 | ... = ... | Node should have one toString but has 2. | missingToString parameterCallable localFlowIsLocal diff --git a/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected b/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected index adae4f412ce..b1acebfde5b 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected @@ -4,285 +4,6 @@ uniqueType uniqueNodeLocation missingLocation uniqueNodeToString -| A.cpp:42:10:42:12 | & ... | Node should have one toString but has 2. | -| A.cpp:42:10:42:12 | & ... indirection | Node should have one toString but has 2. | -| A.cpp:42:10:42:12 | & ... indirection | Node should have one toString but has 2. | -| A.cpp:42:10:42:12 | cc | Node should have one toString but has 2. | -| A.cpp:42:10:42:12 | cc indirection | Node should have one toString but has 2. | -| A.cpp:42:10:42:12 | cc indirection | Node should have one toString but has 2. | -| A.cpp:43:10:43:12 | & ... | Node should have one toString but has 2. | -| A.cpp:43:10:43:12 | & ... indirection | Node should have one toString but has 2. | -| A.cpp:43:10:43:12 | & ... indirection | Node should have one toString but has 2. | -| A.cpp:43:10:43:12 | ct | Node should have one toString but has 2. | -| A.cpp:43:10:43:12 | ct indirection | Node should have one toString but has 2. | -| A.cpp:43:10:43:12 | ct indirection | Node should have one toString but has 2. | -| A.cpp:105:9:105:38 | (condition decl) | Node should have one toString but has 2. | -| A.cpp:105:9:105:38 | c1 | Node should have one toString but has 2. | -| A.cpp:110:9:110:38 | (condition decl) | Node should have one toString but has 2. | -| A.cpp:110:9:110:38 | c2 | Node should have one toString but has 2. | -| A.cpp:118:9:118:39 | (condition decl) | Node should have one toString but has 2. | -| A.cpp:118:9:118:39 | c1 | Node should have one toString but has 2. | -| E.cpp:33:18:33:19 | & ... | Node should have one toString but has 2. | -| E.cpp:33:18:33:19 | & ... indirection | Node should have one toString but has 2. | -| E.cpp:33:18:33:19 | p | Node should have one toString but has 2. | -| E.cpp:33:18:33:19 | p indirection | Node should have one toString but has 2. | -| aliasing.cpp:25:17:25:19 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:25:17:25:19 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:25:17:25:19 | s1 | Node should have one toString but has 2. | -| aliasing.cpp:25:17:25:19 | s1 indirection | Node should have one toString but has 2. | -| aliasing.cpp:78:10:78:13 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:78:10:78:13 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:78:10:78:13 | s | Node should have one toString but has 2. | -| aliasing.cpp:78:10:78:13 | s indirection | Node should have one toString but has 2. | -| aliasing.cpp:101:13:101:22 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:101:13:101:22 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:101:13:101:22 | m1 | Node should have one toString but has 2. | -| aliasing.cpp:101:13:101:22 | m1 indirection | Node should have one toString but has 2. | -| aliasing.cpp:102:8:102:10 | * ... | Node should have one toString but has 2. | -| aliasing.cpp:102:8:102:10 | px indirection | Node should have one toString but has 2. | -| aliasing.cpp:106:3:106:5 | * ... | Node should have one toString but has 2. | -| aliasing.cpp:106:3:106:5 | * ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:106:3:106:5 | pa | Node should have one toString but has 2. | -| aliasing.cpp:106:3:106:5 | pa indirection | Node should have one toString but has 2. | -| aliasing.cpp:111:15:111:19 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:111:15:111:19 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:111:15:111:19 | m1 | Node should have one toString but has 2. | -| aliasing.cpp:111:15:111:19 | m1 indirection | Node should have one toString but has 2. | -| aliasing.cpp:127:8:127:16 | * ... | Node should have one toString but has 2. | -| aliasing.cpp:127:8:127:16 | ... - ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:132:8:132:14 | & ... indirection | Node should have one toString but has 4. | -| aliasing.cpp:132:8:132:14 | * ... | Node should have one toString but has 4. | -| aliasing.cpp:132:8:132:14 | * ... indirection | Node should have one toString but has 4. | -| aliasing.cpp:132:8:132:14 | xs indirection | Node should have one toString but has 4. | -| aliasing.cpp:132:9:132:14 | & ... | Node should have one toString but has 3. | -| aliasing.cpp:132:9:132:14 | * ... | Node should have one toString but has 3. | -| aliasing.cpp:132:9:132:14 | xs | Node should have one toString but has 3. | -| aliasing.cpp:136:15:136:17 | + ... | Node should have one toString but has 2. | -| aliasing.cpp:136:15:136:17 | + ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:136:15:136:17 | xs | Node should have one toString but has 2. | -| aliasing.cpp:136:15:136:17 | xs indirection | Node should have one toString but has 2. | -| aliasing.cpp:137:8:137:11 | * ... | Node should have one toString but has 3. | -| aliasing.cpp:137:8:137:11 | + ... indirection | Node should have one toString but has 3. | -| aliasing.cpp:137:8:137:11 | xs indirection | Node should have one toString but has 3. | -| aliasing.cpp:137:9:137:11 | + ... | Node should have one toString but has 2. | -| aliasing.cpp:137:9:137:11 | xs | Node should have one toString but has 2. | -| aliasing.cpp:147:15:147:22 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:147:15:147:22 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:147:15:147:22 | m1 | Node should have one toString but has 2. | -| aliasing.cpp:147:15:147:22 | m1 indirection | Node should have one toString but has 2. | -| aliasing.cpp:159:8:159:14 | * ... | Node should have one toString but has 2. | -| aliasing.cpp:159:8:159:14 | data indirection | Node should have one toString but has 2. | -| aliasing.cpp:175:15:175:22 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:175:15:175:22 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:175:15:175:22 | m1 | Node should have one toString but has 2. | -| aliasing.cpp:175:15:175:22 | m1 indirection | Node should have one toString but has 2. | -| aliasing.cpp:181:15:181:22 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:181:15:181:22 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:181:15:181:22 | m1 | Node should have one toString but has 2. | -| aliasing.cpp:181:15:181:22 | m1 indirection | Node should have one toString but has 2. | -| aliasing.cpp:187:15:187:22 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:187:15:187:22 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:187:15:187:22 | m1 | Node should have one toString but has 2. | -| aliasing.cpp:187:15:187:22 | m1 indirection | Node should have one toString but has 2. | -| aliasing.cpp:194:15:194:22 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:194:15:194:22 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:194:15:194:22 | m1 | Node should have one toString but has 2. | -| aliasing.cpp:194:15:194:22 | m1 indirection | Node should have one toString but has 2. | -| aliasing.cpp:200:15:200:24 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:200:15:200:24 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:200:15:200:24 | m1 | Node should have one toString but has 2. | -| aliasing.cpp:200:15:200:24 | m1 indirection | Node should have one toString but has 2. | -| aliasing.cpp:205:15:205:24 | & ... | Node should have one toString but has 2. | -| aliasing.cpp:205:15:205:24 | & ... indirection | Node should have one toString but has 2. | -| aliasing.cpp:205:15:205:24 | m1 | Node should have one toString but has 2. | -| aliasing.cpp:205:15:205:24 | m1 indirection | Node should have one toString but has 2. | -| arrays.cpp:9:8:9:11 | * ... | Node should have one toString but has 2. | -| arrays.cpp:9:8:9:11 | * ... indirection | Node should have one toString but has 2. | -| arrays.cpp:9:8:9:11 | arr indirection | Node should have one toString but has 2. | -| arrays.cpp:9:8:9:11 | arr indirection | Node should have one toString but has 2. | -| arrays.cpp:10:8:10:15 | & ... indirection | Node should have one toString but has 3. | -| arrays.cpp:10:8:10:15 | & ... indirection | Node should have one toString but has 3. | -| arrays.cpp:10:8:10:15 | * ... | Node should have one toString but has 3. | -| arrays.cpp:10:8:10:15 | * ... indirection | Node should have one toString but has 3. | -| arrays.cpp:10:8:10:15 | access to array indirection | Node should have one toString but has 3. | -| arrays.cpp:10:8:10:15 | access to array indirection | Node should have one toString but has 3. | -| arrays.cpp:10:9:10:15 | & ... | Node should have one toString but has 2. | -| arrays.cpp:10:9:10:15 | access to array | Node should have one toString but has 2. | -| arrays.cpp:15:3:15:10 | & ... | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | & ... indirection | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | & ... indirection | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | & ... indirection | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | * ... | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | * ... indirection | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | * ... indirection | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | * ... indirection | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | access to array | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | access to array indirection | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | access to array indirection | Node should have one toString but has 3. | -| arrays.cpp:15:3:15:10 | access to array indirection | Node should have one toString but has 3. | -| by_reference.cpp:68:17:68:18 | & ... | Node should have one toString but has 2. | -| by_reference.cpp:68:17:68:18 | & ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:68:17:68:18 | s | Node should have one toString but has 2. | -| by_reference.cpp:68:17:68:18 | s indirection | Node should have one toString but has 2. | -| by_reference.cpp:69:22:69:23 | & ... | Node should have one toString but has 2. | -| by_reference.cpp:69:22:69:23 | & ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:69:22:69:23 | s | Node should have one toString but has 2. | -| by_reference.cpp:69:22:69:23 | s indirection | Node should have one toString but has 2. | -| by_reference.cpp:92:3:92:5 | * ... | Node should have one toString but has 2. | -| by_reference.cpp:92:3:92:5 | * ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:92:3:92:5 | * ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:92:3:92:5 | * ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:92:3:92:5 | pa | Node should have one toString but has 2. | -| by_reference.cpp:92:3:92:5 | pa indirection | Node should have one toString but has 2. | -| by_reference.cpp:92:3:92:5 | pa indirection | Node should have one toString but has 2. | -| by_reference.cpp:92:3:92:5 | pa indirection | Node should have one toString but has 2. | -| by_reference.cpp:102:21:102:39 | & ... | Node should have one toString but has 2. | -| by_reference.cpp:102:21:102:39 | & ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:102:21:102:39 | inner_nested | Node should have one toString but has 2. | -| by_reference.cpp:102:21:102:39 | inner_nested indirection | Node should have one toString but has 2. | -| by_reference.cpp:104:15:104:22 | & ... | Node should have one toString but has 2. | -| by_reference.cpp:104:15:104:22 | & ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:104:15:104:22 | & ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:104:15:104:22 | a | Node should have one toString but has 2. | -| by_reference.cpp:104:15:104:22 | a indirection | Node should have one toString but has 2. | -| by_reference.cpp:104:15:104:22 | a indirection | Node should have one toString but has 2. | -| by_reference.cpp:106:21:106:41 | & ... | Node should have one toString but has 2. | -| by_reference.cpp:106:21:106:41 | & ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:106:21:106:41 | inner_nested | Node should have one toString but has 2. | -| by_reference.cpp:106:21:106:41 | inner_nested indirection | Node should have one toString but has 2. | -| by_reference.cpp:108:15:108:24 | & ... | Node should have one toString but has 2. | -| by_reference.cpp:108:15:108:24 | & ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:108:15:108:24 | & ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:108:15:108:24 | a | Node should have one toString but has 2. | -| by_reference.cpp:108:15:108:24 | a indirection | Node should have one toString but has 2. | -| by_reference.cpp:108:15:108:24 | a indirection | Node should have one toString but has 2. | -| by_reference.cpp:123:21:123:36 | * ... | Node should have one toString but has 2. | -| by_reference.cpp:123:21:123:36 | * ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:123:21:123:36 | inner_ptr | Node should have one toString but has 2. | -| by_reference.cpp:123:21:123:36 | inner_ptr indirection | Node should have one toString but has 2. | -| by_reference.cpp:127:21:127:38 | * ... | Node should have one toString but has 2. | -| by_reference.cpp:127:21:127:38 | * ... indirection | Node should have one toString but has 2. | -| by_reference.cpp:127:21:127:38 | inner_ptr | Node should have one toString but has 2. | -| by_reference.cpp:127:21:127:38 | inner_ptr indirection | Node should have one toString but has 2. | -| clearning.cpp:19:3:19:6 | * ... | Node should have one toString but has 2. | -| clearning.cpp:19:3:19:6 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:19:3:19:6 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:19:3:19:6 | x | Node should have one toString but has 2. | -| clearning.cpp:19:3:19:6 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:19:3:19:6 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:20:8:20:12 | * ... | Node should have one toString but has 3. | -| clearning.cpp:20:8:20:12 | * ... indirection | Node should have one toString but has 3. | -| clearning.cpp:20:8:20:12 | x indirection | Node should have one toString but has 3. | -| clearning.cpp:20:9:20:12 | * ... | Node should have one toString but has 2. | -| clearning.cpp:20:9:20:12 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:27:8:27:12 | * ... | Node should have one toString but has 3. | -| clearning.cpp:27:8:27:12 | * ... indirection | Node should have one toString but has 3. | -| clearning.cpp:27:8:27:12 | x indirection | Node should have one toString but has 3. | -| clearning.cpp:27:9:27:12 | * ... | Node should have one toString but has 2. | -| clearning.cpp:27:9:27:12 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:32:3:32:6 | * ... | Node should have one toString but has 2. | -| clearning.cpp:32:3:32:6 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:32:3:32:6 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:32:3:32:6 | x | Node should have one toString but has 2. | -| clearning.cpp:32:3:32:6 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:32:3:32:6 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:34:8:34:11 | * ... | Node should have one toString but has 2. | -| clearning.cpp:34:8:34:11 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:34:8:34:11 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:34:8:34:11 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:39:3:39:6 | * ... | Node should have one toString but has 2. | -| clearning.cpp:39:3:39:6 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:39:3:39:6 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:39:3:39:6 | x | Node should have one toString but has 2. | -| clearning.cpp:39:3:39:6 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:39:3:39:6 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:41:8:41:11 | * ... | Node should have one toString but has 2. | -| clearning.cpp:41:8:41:11 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:41:8:41:11 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:41:8:41:11 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:48:8:48:11 | * ... | Node should have one toString but has 2. | -| clearning.cpp:48:8:48:11 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:48:8:48:11 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:48:8:48:11 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:53:3:53:6 | * ... | Node should have one toString but has 2. | -| clearning.cpp:53:3:53:6 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:53:3:53:6 | * ... indirection | Node should have one toString but has 2. | -| clearning.cpp:53:3:53:6 | x | Node should have one toString but has 2. | -| clearning.cpp:53:3:53:6 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:53:3:53:6 | x indirection | Node should have one toString but has 2. | -| clearning.cpp:76:7:76:12 | * ... | Node should have one toString but has 2. | -| clearning.cpp:76:7:76:12 | val indirection | Node should have one toString but has 2. | -| clearning.cpp:84:7:84:12 | * ... | Node should have one toString but has 2. | -| clearning.cpp:84:7:84:12 | val indirection | Node should have one toString but has 2. | -| clearning.cpp:90:2:90:9 | * ... | Node should have one toString but has 3. | -| clearning.cpp:90:2:90:9 | * ... indirection | Node should have one toString but has 3. | -| clearning.cpp:90:2:90:9 | ... ++ | Node should have one toString but has 3. | -| clearning.cpp:90:2:90:9 | ... ++ indirection | Node should have one toString but has 3. | -| clearning.cpp:90:2:90:9 | val | Node should have one toString but has 3. | -| clearning.cpp:90:2:90:9 | val indirection | Node should have one toString but has 3. | -| clearning.cpp:91:7:91:12 | * ... | Node should have one toString but has 2. | -| clearning.cpp:91:7:91:12 | val indirection | Node should have one toString but has 2. | -| clearning.cpp:98:7:98:12 | * ... | Node should have one toString but has 2. | -| clearning.cpp:98:7:98:12 | val indirection | Node should have one toString but has 2. | -| clearning.cpp:105:7:105:12 | * ... | Node should have one toString but has 2. | -| clearning.cpp:105:7:105:12 | val indirection | Node should have one toString but has 2. | -| clearning.cpp:112:7:112:12 | * ... | Node should have one toString but has 2. | -| clearning.cpp:112:7:112:12 | val indirection | Node should have one toString but has 2. | -| clearning.cpp:119:7:119:12 | * ... | Node should have one toString but has 2. | -| clearning.cpp:119:7:119:12 | val indirection | Node should have one toString but has 2. | -| conflated.cpp:10:3:10:7 | * ... | Node should have one toString but has 2. | -| conflated.cpp:10:3:10:7 | * ... indirection | Node should have one toString but has 2. | -| conflated.cpp:10:3:10:7 | p | Node should have one toString but has 2. | -| conflated.cpp:10:3:10:7 | p indirection | Node should have one toString but has 2. | -| conflated.cpp:11:8:11:12 | * ... | Node should have one toString but has 2. | -| conflated.cpp:11:8:11:12 | p indirection | Node should have one toString but has 2. | -| qualifiers.cpp:37:19:37:35 | * ... | Node should have one toString but has 2. | -| qualifiers.cpp:37:19:37:35 | * ... indirection | Node should have one toString but has 2. | -| qualifiers.cpp:37:19:37:35 | call to getInner | Node should have one toString but has 2. | -| qualifiers.cpp:37:19:37:35 | call to getInner indirection | Node should have one toString but has 2. | -| qualifiers.cpp:42:6:42:22 | * ... | Node should have one toString but has 2. | -| qualifiers.cpp:42:6:42:22 | * ... indirection | Node should have one toString but has 2. | -| qualifiers.cpp:42:6:42:22 | call to getInner | Node should have one toString but has 2. | -| qualifiers.cpp:42:6:42:22 | call to getInner indirection | Node should have one toString but has 2. | -| qualifiers.cpp:42:25:42:25 | * ... indirection [post update] | Node should have one toString but has 2. | -| qualifiers.cpp:42:25:42:25 | call to getInner indirection [post update] | Node should have one toString but has 2. | -| qualifiers.cpp:47:6:47:11 | & ... | Node should have one toString but has 2. | -| qualifiers.cpp:47:6:47:11 | & ... indirection | Node should have one toString but has 2. | -| qualifiers.cpp:47:6:47:11 | outer | Node should have one toString but has 2. | -| qualifiers.cpp:47:6:47:11 | outer indirection | Node should have one toString but has 2. | -| realistic.cpp:25:15:25:36 | & ... | Node should have one toString but has 2. | -| realistic.cpp:25:15:25:36 | & ... indirection | Node should have one toString but has 2. | -| realistic.cpp:25:15:25:36 | & ... indirection | Node should have one toString but has 2. | -| realistic.cpp:25:15:25:36 | access to array | Node should have one toString but has 2. | -| realistic.cpp:25:15:25:36 | access to array indirection | Node should have one toString but has 2. | -| realistic.cpp:25:15:25:36 | access to array indirection | Node should have one toString but has 2. | -| realistic.cpp:34:9:34:12 | * ... | Node should have one toString but has 3. | -| realistic.cpp:34:9:34:12 | * ... indirection | Node should have one toString but has 3. | -| realistic.cpp:34:9:34:12 | ... ++ | Node should have one toString but has 3. | -| realistic.cpp:34:9:34:12 | ... ++ indirection | Node should have one toString but has 3. | -| realistic.cpp:34:9:34:12 | d | Node should have one toString but has 3. | -| realistic.cpp:34:9:34:12 | d indirection | Node should have one toString but has 3. | -| realistic.cpp:34:16:34:19 | * ... | Node should have one toString but has 3. | -| realistic.cpp:34:16:34:19 | ... ++ indirection | Node should have one toString but has 3. | -| realistic.cpp:34:16:34:19 | s indirection | Node should have one toString but has 3. | -| realistic.cpp:34:17:34:19 | ... ++ | Node should have one toString but has 2. | -| realistic.cpp:34:17:34:19 | s | Node should have one toString but has 2. | -| struct_init.c:24:10:24:12 | & ... | Node should have one toString but has 2. | -| struct_init.c:24:10:24:12 | & ... indirection | Node should have one toString but has 2. | -| struct_init.c:24:10:24:12 | ab | Node should have one toString but has 2. | -| struct_init.c:24:10:24:12 | ab indirection | Node should have one toString but has 2. | -| struct_init.c:28:5:28:7 | & ... | Node should have one toString but has 2. | -| struct_init.c:28:5:28:7 | & ... indirection | Node should have one toString but has 2. | -| struct_init.c:28:5:28:7 | ab | Node should have one toString but has 2. | -| struct_init.c:28:5:28:7 | ab indirection | Node should have one toString but has 2. | -| struct_init.c:36:10:36:24 | & ... | Node should have one toString but has 2. | -| struct_init.c:36:10:36:24 | & ... indirection | Node should have one toString but has 2. | -| struct_init.c:36:10:36:24 | nestedAB | Node should have one toString but has 2. | -| struct_init.c:36:10:36:24 | nestedAB indirection | Node should have one toString but has 2. | -| struct_init.c:43:5:43:7 | & ... | Node should have one toString but has 2. | -| struct_init.c:43:5:43:7 | & ... indirection | Node should have one toString but has 2. | -| struct_init.c:43:5:43:7 | ab | Node should have one toString but has 2. | -| struct_init.c:43:5:43:7 | ab indirection | Node should have one toString but has 2. | missingToString parameterCallable localFlowIsLocal diff --git a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected index 60c691b0939..9c30be7684a 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected @@ -11,7 +11,6 @@ edges | A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | | A.cpp:31:20:31:20 | c | A.cpp:31:14:31:21 | call to B [c] | | A.cpp:41:5:41:6 | insert output argument | A.cpp:43:10:43:12 | & ... indirection | -| A.cpp:41:5:41:6 | insert output argument | A.cpp:43:10:43:12 | ct indirection | | A.cpp:41:15:41:21 | new | A.cpp:41:5:41:6 | insert output argument | | A.cpp:41:15:41:21 | new | A.cpp:41:5:41:6 | insert output argument | | A.cpp:41:15:41:21 | new | A.cpp:41:15:41:21 | new | @@ -213,14 +212,12 @@ edges | E.cpp:29:24:29:29 | b indirection [post update] [buffer indirection] | E.cpp:32:10:32:10 | b indirection [buffer indirection] | | E.cpp:30:21:30:33 | argument_source output argument | E.cpp:30:28:30:33 | data indirection [post update] [buffer indirection] | | E.cpp:30:23:30:26 | p indirection [post update] [data, buffer indirection] | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | -| E.cpp:30:23:30:26 | p indirection [post update] [data, buffer indirection] | E.cpp:33:18:33:19 | p indirection [data, buffer indirection] | | E.cpp:30:28:30:33 | data indirection [post update] [buffer indirection] | E.cpp:30:23:30:26 | p indirection [post update] [data, buffer indirection] | | E.cpp:32:10:32:10 | b indirection [buffer indirection] | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:32:10:32:10 | b indirection [buffer indirection] | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:32:13:32:18 | buffer indirection | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:32:13:32:18 | buffer indirection | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | E.cpp:19:27:19:27 | p indirection [data, buffer indirection] | -| E.cpp:33:18:33:19 | p indirection [data, buffer indirection] | E.cpp:19:27:19:27 | p indirection [data, buffer indirection] | | aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | | aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | | aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:9:3:9:22 | ... = ... | @@ -245,11 +242,7 @@ edges | aliasing.cpp:98:5:98:6 | s indirection [post update] [m1] | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:98:3:98:21 | ... = ... | | aliasing.cpp:101:13:101:22 | & ... indirection | aliasing.cpp:102:8:102:10 | * ... | -| aliasing.cpp:101:13:101:22 | & ... indirection | aliasing.cpp:102:8:102:10 | px indirection | -| aliasing.cpp:101:13:101:22 | m1 indirection | aliasing.cpp:102:8:102:10 | * ... | -| aliasing.cpp:101:13:101:22 | m1 indirection | aliasing.cpp:102:8:102:10 | px indirection | | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | aliasing.cpp:101:13:101:22 | & ... indirection | -| aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | aliasing.cpp:101:13:101:22 | m1 indirection | | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | @@ -263,14 +256,8 @@ edges | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:105:23:105:24 | pa | | aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | aliasing.cpp:122:8:122:12 | access to array | | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | aliasing.cpp:127:8:127:16 | * ... | -| aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | aliasing.cpp:127:8:127:16 | ... - ... indirection | -| aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | & ... indirection | | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | * ... | -| aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | * ... indirection | -| aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | xs indirection | | aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | aliasing.cpp:137:8:137:11 | * ... | -| aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | aliasing.cpp:137:8:137:11 | + ... indirection | -| aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | aliasing.cpp:137:8:137:11 | xs indirection | | aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | | aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | aliasing.cpp:143:8:143:16 | access to array | @@ -279,7 +266,6 @@ edges | aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | | aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | aliasing.cpp:159:9:159:9 | s indirection [data] | | aliasing.cpp:159:9:159:9 | s indirection [data] | aliasing.cpp:159:8:159:14 | * ... | -| aliasing.cpp:159:9:159:9 | s indirection [data] | aliasing.cpp:159:8:159:14 | data indirection | | aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | | aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | aliasing.cpp:165:8:165:8 | s indirection [data] | | aliasing.cpp:165:8:165:8 | s indirection [data] | aliasing.cpp:165:8:165:16 | access to array | @@ -301,10 +287,7 @@ edges | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:7:8:7:13 | access to array | | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:8:8:8:13 | access to array | | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | arr indirection | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | | arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:16:8:16:13 | access to array | | arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:17:8:17:13 | access to array | | arrays.cpp:36:3:36:37 | ... = ... | arrays.cpp:36:19:36:22 | access to array indirection [post update] [data] | @@ -391,13 +374,10 @@ edges | by_reference.cpp:63:8:63:8 | s indirection [a] | by_reference.cpp:43:9:43:27 | this indirection [a] | | by_reference.cpp:63:8:63:8 | s indirection [a] | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | by_reference.cpp:69:22:69:23 | & ... indirection [a] | -| by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | by_reference.cpp:69:22:69:23 | s indirection [a] | | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | -| by_reference.cpp:69:22:69:23 | s indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | -| by_reference.cpp:69:22:69:23 | s indirection [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | | by_reference.cpp:84:3:84:25 | ... = ... | by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | | by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | | by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | @@ -469,7 +449,6 @@ edges | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:32:3:32:25 | ... = ... | | clearning.cpp:33:5:33:5 | s indirection [x indirection] | clearning.cpp:34:9:34:9 | s indirection [x indirection] | | clearning.cpp:34:9:34:9 | s indirection [x indirection] | clearning.cpp:34:8:34:11 | * ... | -| clearning.cpp:34:9:34:9 | s indirection [x indirection] | clearning.cpp:34:8:34:11 | x indirection | | clearning.cpp:53:3:53:25 | ... = ... | clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | | clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | clearning.cpp:54:3:54:3 | s indirection [x indirection] | | clearning.cpp:53:10:53:19 | call to user_input | clearning.cpp:53:3:53:25 | ... = ... | @@ -501,7 +480,6 @@ edges | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | | clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | clearning.cpp:76:8:76:8 | s indirection [val indirection] | | clearning.cpp:76:8:76:8 | s indirection [val indirection] | clearning.cpp:76:7:76:12 | * ... | -| clearning.cpp:76:8:76:8 | s indirection [val indirection] | clearning.cpp:76:7:76:12 | val indirection | | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | | clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | clearning.cpp:83:13:83:13 | s indirection [val indirection] | | clearning.cpp:83:5:83:21 | ... = ... indirection | clearning.cpp:83:7:83:9 | s indirection [post update] [val indirection] | @@ -511,7 +489,6 @@ edges | clearning.cpp:83:13:83:21 | ... + ... indirection | clearning.cpp:83:5:83:21 | ... = ... indirection | | clearning.cpp:83:15:83:17 | val indirection | clearning.cpp:83:5:83:21 | ... = ... indirection | | clearning.cpp:84:8:84:8 | s indirection [val indirection] | clearning.cpp:84:7:84:12 | * ... | -| clearning.cpp:84:8:84:8 | s indirection [val indirection] | clearning.cpp:84:7:84:12 | val indirection | | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | | clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | clearning.cpp:90:3:90:3 | s indirection [val indirection] | | clearning.cpp:90:3:90:3 | s indirection [val indirection] | clearning.cpp:90:3:90:9 | ... ++ indirection | @@ -522,7 +499,6 @@ edges | clearning.cpp:90:5:90:7 | s indirection [post update] [val indirection] | clearning.cpp:91:8:91:8 | s indirection [val indirection] | | clearning.cpp:90:5:90:7 | val indirection | clearning.cpp:90:3:90:9 | ... ++ indirection | | clearning.cpp:91:8:91:8 | s indirection [val indirection] | clearning.cpp:91:7:91:12 | * ... | -| clearning.cpp:91:8:91:8 | s indirection [val indirection] | clearning.cpp:91:7:91:12 | val indirection | | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | | clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | clearning.cpp:97:10:97:10 | s indirection [val indirection] | | clearning.cpp:97:2:97:18 | ... = ... indirection | clearning.cpp:97:4:97:6 | s indirection [post update] [val indirection] | @@ -532,7 +508,6 @@ edges | clearning.cpp:97:10:97:18 | ... + ... indirection | clearning.cpp:97:2:97:18 | ... = ... indirection | | clearning.cpp:97:12:97:14 | val indirection | clearning.cpp:97:2:97:18 | ... = ... indirection | | clearning.cpp:98:8:98:8 | s indirection [val indirection] | clearning.cpp:98:7:98:12 | * ... | -| clearning.cpp:98:8:98:8 | s indirection [val indirection] | clearning.cpp:98:7:98:12 | val indirection | | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | | clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | clearning.cpp:104:2:104:2 | s indirection [val indirection] | | clearning.cpp:104:2:104:2 | s indirection [val indirection] | clearning.cpp:104:2:104:8 | ... ++ indirection | @@ -543,7 +518,6 @@ edges | clearning.cpp:104:4:104:6 | s indirection [post update] [val indirection] | clearning.cpp:105:8:105:8 | s indirection [val indirection] | | clearning.cpp:104:4:104:6 | val indirection | clearning.cpp:104:2:104:8 | ... ++ indirection | | clearning.cpp:105:8:105:8 | s indirection [val indirection] | clearning.cpp:105:7:105:12 | * ... | -| clearning.cpp:105:8:105:8 | s indirection [val indirection] | clearning.cpp:105:7:105:12 | val indirection | | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | | clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | clearning.cpp:111:4:111:4 | s indirection [val indirection] | | clearning.cpp:111:2:111:8 | ++ ... indirection | clearning.cpp:111:2:111:8 | ++ ... indirection | @@ -554,7 +528,6 @@ edges | clearning.cpp:111:6:111:8 | s indirection [post update] [val indirection] | clearning.cpp:112:8:112:8 | s indirection [val indirection] | | clearning.cpp:111:6:111:8 | val indirection | clearning.cpp:111:2:111:8 | ++ ... indirection | | clearning.cpp:112:8:112:8 | s indirection [val indirection] | clearning.cpp:112:7:112:12 | * ... | -| clearning.cpp:112:8:112:8 | s indirection [val indirection] | clearning.cpp:112:7:112:12 | val indirection | | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | | clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | clearning.cpp:118:2:118:2 | s indirection [val indirection] | | clearning.cpp:118:2:118:2 | s indirection [val indirection] | clearning.cpp:118:2:118:11 | ... += ... indirection | @@ -565,7 +538,6 @@ edges | clearning.cpp:118:4:118:6 | s indirection [post update] [val indirection] | clearning.cpp:119:8:119:8 | s indirection [val indirection] | | clearning.cpp:118:4:118:6 | val indirection | clearning.cpp:118:2:118:11 | ... += ... indirection | | clearning.cpp:119:8:119:8 | s indirection [val indirection] | clearning.cpp:119:7:119:12 | * ... | -| clearning.cpp:119:8:119:8 | s indirection [val indirection] | clearning.cpp:119:7:119:12 | val indirection | | clearning.cpp:151:3:151:22 | ... = ... | clearning.cpp:151:5:151:7 | s indirection [post update] [val] | | clearning.cpp:151:5:151:7 | s indirection [post update] [val] | clearning.cpp:152:8:152:8 | s indirection [val] | | clearning.cpp:151:11:151:20 | call to user_input | clearning.cpp:151:3:151:22 | ... = ... | @@ -634,7 +606,6 @@ edges | conflated.cpp:10:7:10:7 | ra indirection [post update] [p indirection] | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:10:3:10:22 | ... = ... | | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:8:11:12 | * ... | -| conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:8:11:12 | p indirection | | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | | conflated.cpp:29:3:29:22 | ... = ... | conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | | conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | conflated.cpp:30:8:30:9 | pa indirection [x] | @@ -725,10 +696,8 @@ edges | qualifiers.cpp:38:16:38:20 | inner indirection [a] | qualifiers.cpp:38:16:38:20 | inner indirection [a] | | qualifiers.cpp:38:16:38:20 | inner indirection [a] | qualifiers.cpp:38:23:38:23 | a | | qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | -| qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:25:42:25 | call to getInner indirection [post update] [a] | | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | -| qualifiers.cpp:42:25:42:25 | call to getInner indirection [post update] [a] | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | | qualifiers.cpp:42:29:42:38 | call to user_input | qualifiers.cpp:42:5:42:40 | ... = ... | | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | qualifiers.cpp:43:16:43:20 | inner indirection [a] | | qualifiers.cpp:43:16:43:20 | inner indirection [a] | qualifiers.cpp:43:16:43:20 | inner indirection [a] | @@ -805,14 +774,12 @@ edges | struct_init.c:15:8:15:9 | ab indirection [a] | struct_init.c:15:12:15:12 | a | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:22:8:22:9 | ab indirection [a] | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:24:10:24:12 | & ... indirection [a] | -| struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:24:10:24:12 | ab indirection [a] | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:28:5:28:7 | & ... indirection [a] | | struct_init.c:20:17:20:36 | definition of ab indirection [post update] [a] | struct_init.c:20:13:20:14 | definition of ab indirection [a] | | struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:17:20:36 | definition of ab indirection [post update] [a] | | struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:20:20:29 | call to user_input | | struct_init.c:22:8:22:9 | ab indirection [a] | struct_init.c:22:11:22:11 | a | | struct_init.c:24:10:24:12 | & ... indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | -| struct_init.c:24:10:24:12 | ab indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | struct_init.c:31:8:31:12 | outer indirection [nestedAB, a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | @@ -829,9 +796,7 @@ edges | struct_init.c:33:14:33:22 | pointerAB indirection [a] | struct_init.c:33:14:33:22 | pointerAB indirection [a] | | struct_init.c:33:14:33:22 | pointerAB indirection [a] | struct_init.c:33:25:33:25 | a | | struct_init.c:36:10:36:24 | & ... indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | -| struct_init.c:36:10:36:24 | nestedAB indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | struct_init.c:36:10:36:24 | & ... indirection [a] | -| struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | struct_init.c:36:10:36:24 | nestedAB indirection [a] | | struct_init.c:40:13:40:14 | definition of ab indirection [a] | struct_init.c:43:5:43:7 | & ... indirection [a] | | struct_init.c:40:17:40:36 | definition of ab indirection [post update] [a] | struct_init.c:40:13:40:14 | definition of ab indirection [a] | | struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:17:40:36 | definition of ab indirection [post update] [a] | @@ -860,9 +825,6 @@ nodes | A.cpp:41:15:41:21 | new | semmle.label | new | | A.cpp:41:15:41:21 | new | semmle.label | new | | A.cpp:43:10:43:12 | & ... indirection | semmle.label | & ... indirection | -| A.cpp:43:10:43:12 | & ... indirection | semmle.label | ct indirection | -| A.cpp:43:10:43:12 | ct indirection | semmle.label | & ... indirection | -| A.cpp:43:10:43:12 | ct indirection | semmle.label | ct indirection | | A.cpp:47:12:47:18 | new | semmle.label | new | | A.cpp:48:12:48:18 | call to make indirection [c] | semmle.label | call to make indirection [c] | | A.cpp:48:20:48:20 | c | semmle.label | c | @@ -1066,9 +1028,6 @@ nodes | E.cpp:32:13:32:18 | buffer indirection | semmle.label | buffer indirection | | E.cpp:32:13:32:18 | buffer indirection | semmle.label | buffer indirection | | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | semmle.label | & ... indirection [data, buffer indirection] | -| E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | semmle.label | p indirection [data, buffer indirection] | -| E.cpp:33:18:33:19 | p indirection [data, buffer indirection] | semmle.label | & ... indirection [data, buffer indirection] | -| E.cpp:33:18:33:19 | p indirection [data, buffer indirection] | semmle.label | p indirection [data, buffer indirection] | | aliasing.cpp:9:3:9:22 | ... = ... | semmle.label | ... = ... | | aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:9:11:9:20 | call to user_input | semmle.label | call to user_input | @@ -1097,50 +1056,18 @@ nodes | aliasing.cpp:98:5:98:6 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:98:10:98:19 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:101:13:101:22 | & ... indirection | semmle.label | & ... indirection | -| aliasing.cpp:101:13:101:22 | & ... indirection | semmle.label | m1 indirection | -| aliasing.cpp:101:13:101:22 | m1 indirection | semmle.label | & ... indirection | -| aliasing.cpp:101:13:101:22 | m1 indirection | semmle.label | m1 indirection | | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | semmle.label | s_copy indirection [m1] | | aliasing.cpp:102:8:102:10 | * ... | semmle.label | * ... | -| aliasing.cpp:102:8:102:10 | * ... | semmle.label | px indirection | -| aliasing.cpp:102:8:102:10 | px indirection | semmle.label | * ... | -| aliasing.cpp:102:8:102:10 | px indirection | semmle.label | px indirection | | aliasing.cpp:105:23:105:24 | pa | semmle.label | pa | | aliasing.cpp:106:9:106:18 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:122:8:122:12 | access to array | semmle.label | access to array | | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:127:8:127:16 | * ... | semmle.label | * ... | -| aliasing.cpp:127:8:127:16 | * ... | semmle.label | ... - ... indirection | -| aliasing.cpp:127:8:127:16 | ... - ... indirection | semmle.label | * ... | -| aliasing.cpp:127:8:127:16 | ... - ... indirection | semmle.label | ... - ... indirection | | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | -| aliasing.cpp:132:8:132:14 | & ... indirection | semmle.label | & ... indirection | -| aliasing.cpp:132:8:132:14 | & ... indirection | semmle.label | * ... | -| aliasing.cpp:132:8:132:14 | & ... indirection | semmle.label | * ... indirection | -| aliasing.cpp:132:8:132:14 | & ... indirection | semmle.label | xs indirection | -| aliasing.cpp:132:8:132:14 | * ... | semmle.label | & ... indirection | | aliasing.cpp:132:8:132:14 | * ... | semmle.label | * ... | -| aliasing.cpp:132:8:132:14 | * ... | semmle.label | * ... indirection | -| aliasing.cpp:132:8:132:14 | * ... | semmle.label | xs indirection | -| aliasing.cpp:132:8:132:14 | * ... indirection | semmle.label | & ... indirection | -| aliasing.cpp:132:8:132:14 | * ... indirection | semmle.label | * ... | -| aliasing.cpp:132:8:132:14 | * ... indirection | semmle.label | * ... indirection | -| aliasing.cpp:132:8:132:14 | * ... indirection | semmle.label | xs indirection | -| aliasing.cpp:132:8:132:14 | xs indirection | semmle.label | & ... indirection | -| aliasing.cpp:132:8:132:14 | xs indirection | semmle.label | * ... | -| aliasing.cpp:132:8:132:14 | xs indirection | semmle.label | * ... indirection | -| aliasing.cpp:132:8:132:14 | xs indirection | semmle.label | xs indirection | | aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:137:8:137:11 | * ... | semmle.label | * ... | -| aliasing.cpp:137:8:137:11 | * ... | semmle.label | + ... indirection | -| aliasing.cpp:137:8:137:11 | * ... | semmle.label | xs indirection | -| aliasing.cpp:137:8:137:11 | + ... indirection | semmle.label | * ... | -| aliasing.cpp:137:8:137:11 | + ... indirection | semmle.label | + ... indirection | -| aliasing.cpp:137:8:137:11 | + ... indirection | semmle.label | xs indirection | -| aliasing.cpp:137:8:137:11 | xs indirection | semmle.label | * ... | -| aliasing.cpp:137:8:137:11 | xs indirection | semmle.label | + ... indirection | -| aliasing.cpp:137:8:137:11 | xs indirection | semmle.label | xs indirection | | aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | semmle.label | s indirection [post update] [data indirection] | | aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | semmle.label | s indirection [data indirection] | @@ -1149,9 +1076,6 @@ nodes | aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | semmle.label | s indirection [post update] [data] | | aliasing.cpp:159:8:159:14 | * ... | semmle.label | * ... | -| aliasing.cpp:159:8:159:14 | * ... | semmle.label | data indirection | -| aliasing.cpp:159:8:159:14 | data indirection | semmle.label | * ... | -| aliasing.cpp:159:8:159:14 | data indirection | semmle.label | data indirection | | aliasing.cpp:159:9:159:9 | s indirection [data] | semmle.label | s indirection [data] | | aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | semmle.label | s indirection [post update] [data] | @@ -1179,18 +1103,7 @@ nodes | arrays.cpp:7:8:7:13 | access to array | semmle.label | access to array | | arrays.cpp:8:8:8:13 | access to array | semmle.label | access to array | | arrays.cpp:9:8:9:11 | * ... | semmle.label | * ... | -| arrays.cpp:9:8:9:11 | * ... | semmle.label | arr indirection | -| arrays.cpp:9:8:9:11 | arr indirection | semmle.label | * ... | -| arrays.cpp:9:8:9:11 | arr indirection | semmle.label | arr indirection | -| arrays.cpp:10:8:10:15 | & ... indirection | semmle.label | & ... indirection | -| arrays.cpp:10:8:10:15 | & ... indirection | semmle.label | * ... | -| arrays.cpp:10:8:10:15 | & ... indirection | semmle.label | access to array indirection | -| arrays.cpp:10:8:10:15 | * ... | semmle.label | & ... indirection | | arrays.cpp:10:8:10:15 | * ... | semmle.label | * ... | -| arrays.cpp:10:8:10:15 | * ... | semmle.label | access to array indirection | -| arrays.cpp:10:8:10:15 | access to array indirection | semmle.label | & ... indirection | -| arrays.cpp:10:8:10:15 | access to array indirection | semmle.label | * ... | -| arrays.cpp:10:8:10:15 | access to array indirection | semmle.label | access to array indirection | | arrays.cpp:15:14:15:23 | call to user_input | semmle.label | call to user_input | | arrays.cpp:16:8:16:13 | access to array | semmle.label | access to array | | arrays.cpp:17:8:17:13 | access to array | semmle.label | access to array | @@ -1279,9 +1192,6 @@ nodes | by_reference.cpp:68:21:68:30 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | semmle.label | call to nonMemberGetA | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | semmle.label | & ... indirection [a] | -| by_reference.cpp:69:22:69:23 | & ... indirection [a] | semmle.label | s indirection [a] | -| by_reference.cpp:69:22:69:23 | s indirection [a] | semmle.label | & ... indirection [a] | -| by_reference.cpp:69:22:69:23 | s indirection [a] | semmle.label | s indirection [a] | | by_reference.cpp:84:3:84:25 | ... = ... | semmle.label | ... = ... | | by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | by_reference.cpp:84:14:84:23 | call to user_input | semmle.label | call to user_input | @@ -1353,9 +1263,6 @@ nodes | clearning.cpp:32:10:32:19 | call to user_input | semmle.label | call to user_input | | clearning.cpp:33:5:33:5 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:34:8:34:11 | * ... | semmle.label | * ... | -| clearning.cpp:34:8:34:11 | * ... | semmle.label | x indirection | -| clearning.cpp:34:8:34:11 | x indirection | semmle.label | * ... | -| clearning.cpp:34:8:34:11 | x indirection | semmle.label | x indirection | | clearning.cpp:34:9:34:9 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:53:3:53:25 | ... = ... | semmle.label | ... = ... | | clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | @@ -1382,9 +1289,6 @@ nodes | clearning.cpp:74:20:74:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:76:7:76:12 | * ... | semmle.label | * ... | -| clearning.cpp:76:7:76:12 | * ... | semmle.label | val indirection | -| clearning.cpp:76:7:76:12 | val indirection | semmle.label | * ... | -| clearning.cpp:76:7:76:12 | val indirection | semmle.label | val indirection | | clearning.cpp:76:8:76:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:81:20:81:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1394,9 +1298,6 @@ nodes | clearning.cpp:83:13:83:21 | ... + ... indirection | semmle.label | ... + ... indirection | | clearning.cpp:83:15:83:17 | val indirection | semmle.label | val indirection | | clearning.cpp:84:7:84:12 | * ... | semmle.label | * ... | -| clearning.cpp:84:7:84:12 | * ... | semmle.label | val indirection | -| clearning.cpp:84:7:84:12 | val indirection | semmle.label | * ... | -| clearning.cpp:84:7:84:12 | val indirection | semmle.label | val indirection | | clearning.cpp:84:8:84:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:89:20:89:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1406,9 +1307,6 @@ nodes | clearning.cpp:90:5:90:7 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:90:5:90:7 | val indirection | semmle.label | val indirection | | clearning.cpp:91:7:91:12 | * ... | semmle.label | * ... | -| clearning.cpp:91:7:91:12 | * ... | semmle.label | val indirection | -| clearning.cpp:91:7:91:12 | val indirection | semmle.label | * ... | -| clearning.cpp:91:7:91:12 | val indirection | semmle.label | val indirection | | clearning.cpp:91:8:91:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:96:20:96:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1418,9 +1316,6 @@ nodes | clearning.cpp:97:10:97:18 | ... + ... indirection | semmle.label | ... + ... indirection | | clearning.cpp:97:12:97:14 | val indirection | semmle.label | val indirection | | clearning.cpp:98:7:98:12 | * ... | semmle.label | * ... | -| clearning.cpp:98:7:98:12 | * ... | semmle.label | val indirection | -| clearning.cpp:98:7:98:12 | val indirection | semmle.label | * ... | -| clearning.cpp:98:7:98:12 | val indirection | semmle.label | val indirection | | clearning.cpp:98:8:98:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:103:20:103:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1430,9 +1325,6 @@ nodes | clearning.cpp:104:4:104:6 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:104:4:104:6 | val indirection | semmle.label | val indirection | | clearning.cpp:105:7:105:12 | * ... | semmle.label | * ... | -| clearning.cpp:105:7:105:12 | * ... | semmle.label | val indirection | -| clearning.cpp:105:7:105:12 | val indirection | semmle.label | * ... | -| clearning.cpp:105:7:105:12 | val indirection | semmle.label | val indirection | | clearning.cpp:105:8:105:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:110:20:110:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1442,9 +1334,6 @@ nodes | clearning.cpp:111:6:111:8 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:111:6:111:8 | val indirection | semmle.label | val indirection | | clearning.cpp:112:7:112:12 | * ... | semmle.label | * ... | -| clearning.cpp:112:7:112:12 | * ... | semmle.label | val indirection | -| clearning.cpp:112:7:112:12 | val indirection | semmle.label | * ... | -| clearning.cpp:112:7:112:12 | val indirection | semmle.label | val indirection | | clearning.cpp:112:8:112:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:117:20:117:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | @@ -1454,9 +1343,6 @@ nodes | clearning.cpp:118:4:118:6 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:118:4:118:6 | val indirection | semmle.label | val indirection | | clearning.cpp:119:7:119:12 | * ... | semmle.label | * ... | -| clearning.cpp:119:7:119:12 | * ... | semmle.label | val indirection | -| clearning.cpp:119:7:119:12 | val indirection | semmle.label | * ... | -| clearning.cpp:119:7:119:12 | val indirection | semmle.label | val indirection | | clearning.cpp:119:8:119:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:151:3:151:22 | ... = ... | semmle.label | ... = ... | | clearning.cpp:151:5:151:7 | s indirection [post update] [val] | semmle.label | s indirection [post update] [val] | @@ -1519,9 +1405,6 @@ nodes | conflated.cpp:10:7:10:7 | ra indirection [post update] [p indirection] | semmle.label | ra indirection [post update] [p indirection] | | conflated.cpp:10:11:10:20 | call to user_input | semmle.label | call to user_input | | conflated.cpp:11:8:11:12 | * ... | semmle.label | * ... | -| conflated.cpp:11:8:11:12 | * ... | semmle.label | p indirection | -| conflated.cpp:11:8:11:12 | p indirection | semmle.label | * ... | -| conflated.cpp:11:8:11:12 | p indirection | semmle.label | p indirection | | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | semmle.label | ra indirection [p indirection] | | conflated.cpp:19:19:19:21 | argument_source output argument | semmle.label | argument_source output argument | | conflated.cpp:20:8:20:10 | raw indirection | semmle.label | raw indirection | @@ -1618,9 +1501,6 @@ nodes | qualifiers.cpp:42:5:42:40 | ... = ... | semmle.label | ... = ... | | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] | | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | semmle.label | * ... indirection [post update] [a] | -| qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | semmle.label | call to getInner indirection [post update] [a] | -| qualifiers.cpp:42:25:42:25 | call to getInner indirection [post update] [a] | semmle.label | * ... indirection [post update] [a] | -| qualifiers.cpp:42:25:42:25 | call to getInner indirection [post update] [a] | semmle.label | call to getInner indirection [post update] [a] | | qualifiers.cpp:42:29:42:38 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:43:16:43:20 | inner indirection [a] | semmle.label | inner indirection [a] | @@ -1706,9 +1586,6 @@ nodes | struct_init.c:22:8:22:9 | ab indirection [a] | semmle.label | ab indirection [a] | | struct_init.c:22:11:22:11 | a | semmle.label | a | | struct_init.c:24:10:24:12 | & ... indirection [a] | semmle.label | & ... indirection [a] | -| struct_init.c:24:10:24:12 | & ... indirection [a] | semmle.label | ab indirection [a] | -| struct_init.c:24:10:24:12 | ab indirection [a] | semmle.label | & ... indirection [a] | -| struct_init.c:24:10:24:12 | ab indirection [a] | semmle.label | ab indirection [a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | semmle.label | definition of outer indirection [nestedAB, a] | | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | semmle.label | definition of outer indirection [post update] [nestedAB, a] | | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | semmle.label | definition of outer indirection [post update] [nestedAB, a] | @@ -1724,9 +1601,6 @@ nodes | struct_init.c:33:14:33:22 | pointerAB indirection [a] | semmle.label | pointerAB indirection [a] | | struct_init.c:33:25:33:25 | a | semmle.label | a | | struct_init.c:36:10:36:24 | & ... indirection [a] | semmle.label | & ... indirection [a] | -| struct_init.c:36:10:36:24 | & ... indirection [a] | semmle.label | nestedAB indirection [a] | -| struct_init.c:36:10:36:24 | nestedAB indirection [a] | semmle.label | & ... indirection [a] | -| struct_init.c:36:10:36:24 | nestedAB indirection [a] | semmle.label | nestedAB indirection [a] | | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | semmle.label | outer indirection [nestedAB, a] | | struct_init.c:40:13:40:14 | definition of ab indirection [a] | semmle.label | definition of ab indirection [a] | | struct_init.c:40:17:40:36 | definition of ab indirection [post update] [a] | semmle.label | definition of ab indirection [post update] [a] | @@ -1772,7 +1646,6 @@ subpaths | by_reference.cpp:63:8:63:8 | s indirection [a] | by_reference.cpp:43:9:43:27 | this indirection [a] | by_reference.cpp:43:9:43:27 | getThroughNonMember indirection | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:8:12:8 | s indirection [post update] [a] | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | by_reference.cpp:31:16:31:28 | nonMemberGetA indirection | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | -| by_reference.cpp:69:22:69:23 | s indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | by_reference.cpp:31:16:31:28 | nonMemberGetA indirection | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | | complex.cpp:42:16:42:16 | f indirection [a_] | complex.cpp:9:7:9:7 | this indirection [a_] | complex.cpp:9:7:9:7 | a indirection | complex.cpp:42:18:42:18 | call to a | | complex.cpp:43:16:43:16 | f indirection [b_] | complex.cpp:10:7:10:7 | this indirection [b_] | complex.cpp:10:7:10:7 | b indirection | complex.cpp:43:18:43:18 | call to b | | complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:23 | this indirection [post update] [a_] | complex.cpp:53:12:53:12 | setA output argument [a_] | @@ -1798,20 +1671,6 @@ subpaths #select | A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | & ... indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | & ... indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | & ... indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | -| A.cpp:43:10:43:12 | ct indirection | A.cpp:41:15:41:21 | new | A.cpp:43:10:43:12 | ct indirection | ct indirection flows from $@ | A.cpp:41:15:41:21 | new | new | | A.cpp:49:10:49:13 | c | A.cpp:47:12:47:18 | new | A.cpp:49:10:49:13 | c | c flows from $@ | A.cpp:47:12:47:18 | new | new | | A.cpp:56:10:56:17 | call to get | A.cpp:55:12:55:19 | new | A.cpp:56:10:56:17 | call to get | call to get flows from $@ | A.cpp:55:12:55:19 | new | new | | A.cpp:56:10:56:17 | call to get | A.cpp:55:12:55:19 | new | A.cpp:56:10:56:17 | call to get | call to get flows from $@ | A.cpp:55:12:55:19 | new | new | @@ -1846,122 +1705,12 @@ subpaths | aliasing.cpp:62:14:62:15 | m1 | aliasing.cpp:60:11:60:20 | call to user_input | aliasing.cpp:62:14:62:15 | m1 | m1 flows from $@ | aliasing.cpp:60:11:60:20 | call to user_input | call to user_input | | aliasing.cpp:93:12:93:13 | m1 | aliasing.cpp:92:12:92:21 | call to user_input | aliasing.cpp:93:12:93:13 | m1 | m1 flows from $@ | aliasing.cpp:92:12:92:21 | call to user_input | call to user_input | | aliasing.cpp:102:8:102:10 | * ... | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | * ... | * ... flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | -| aliasing.cpp:102:8:102:10 | * ... | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | * ... | px indirection flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | -| aliasing.cpp:102:8:102:10 | * ... | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | px indirection | * ... flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | -| aliasing.cpp:102:8:102:10 | * ... | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | px indirection | px indirection flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | -| aliasing.cpp:102:8:102:10 | px indirection | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | * ... | * ... flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | -| aliasing.cpp:102:8:102:10 | px indirection | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | * ... | px indirection flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | -| aliasing.cpp:102:8:102:10 | px indirection | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | px indirection | * ... flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | -| aliasing.cpp:102:8:102:10 | px indirection | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:102:8:102:10 | px indirection | px indirection flows from $@ | aliasing.cpp:98:10:98:19 | call to user_input | call to user_input | | aliasing.cpp:122:8:122:12 | access to array | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:122:8:122:12 | access to array | access to array flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:127:8:127:16 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:127:8:127:16 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | * ... | ... - ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:127:8:127:16 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | ... - ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:127:8:127:16 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | ... - ... indirection | ... - ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:127:8:127:16 | ... - ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:127:8:127:16 | ... - ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | * ... | ... - ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:127:8:127:16 | ... - ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | ... - ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:127:8:127:16 | ... - ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:127:8:127:16 | ... - ... indirection | ... - ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | & ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | * ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | & ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | * ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | & ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | * ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:132:8:132:14 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:132:8:132:14 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | + ... indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | * ... | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | + ... indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | + ... indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:137:8:137:11 | xs indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:137:8:137:11 | xs indirection | xs indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:143:8:143:16 | access to array | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:143:8:143:16 | access to array | access to array flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:159:8:159:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:159:8:159:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | * ... | data indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:159:8:159:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | data indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:159:8:159:14 | * ... | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | data indirection | data indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:159:8:159:14 | data indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | * ... | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:159:8:159:14 | data indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | * ... | data indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:159:8:159:14 | data indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | data indirection | * ... flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | -| aliasing.cpp:159:8:159:14 | data indirection | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:159:8:159:14 | data indirection | data indirection flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:165:8:165:16 | access to array | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:165:8:165:16 | access to array | access to array flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:176:13:176:14 | m1 | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:176:13:176:14 | m1 | m1 flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | | aliasing.cpp:189:15:189:16 | m1 | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:189:15:189:16 | m1 | m1 flows from $@ | aliasing.cpp:106:9:106:18 | call to user_input | call to user_input | @@ -1969,40 +1718,7 @@ subpaths | arrays.cpp:7:8:7:13 | access to array | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:7:8:7:13 | access to array | access to array flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | | arrays.cpp:8:8:8:13 | access to array | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:8:8:8:13 | access to array | access to array flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | | arrays.cpp:9:8:9:11 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:9:8:9:11 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | arr indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:9:8:9:11 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | arr indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:9:8:9:11 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | arr indirection | arr indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:9:8:9:11 | arr indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:9:8:9:11 | arr indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | arr indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:9:8:9:11 | arr indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | arr indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:9:8:9:11 | arr indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | arr indirection | arr indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | & ... indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | | arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | * ... | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | & ... indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | & ... indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | * ... flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | -| arrays.cpp:10:8:10:15 | access to array indirection | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | access to array indirection | access to array indirection flows from $@ | arrays.cpp:6:12:6:21 | call to user_input | call to user_input | | arrays.cpp:16:8:16:13 | access to array | arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:16:8:16:13 | access to array | access to array flows from $@ | arrays.cpp:15:14:15:23 | call to user_input | call to user_input | | arrays.cpp:17:8:17:13 | access to array | arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:17:8:17:13 | access to array | access to array flows from $@ | arrays.cpp:15:14:15:23 | call to user_input | call to user_input | | arrays.cpp:37:24:37:27 | data | arrays.cpp:36:26:36:35 | call to user_input | arrays.cpp:37:24:37:27 | data | data flows from $@ | arrays.cpp:36:26:36:35 | call to user_input | call to user_input | @@ -2028,84 +1744,21 @@ subpaths | by_reference.cpp:135:27:135:27 | a | by_reference.cpp:88:13:88:22 | call to user_input | by_reference.cpp:135:27:135:27 | a | a flows from $@ | by_reference.cpp:88:13:88:22 | call to user_input | call to user_input | | by_reference.cpp:136:16:136:16 | a | by_reference.cpp:96:8:96:17 | call to user_input | by_reference.cpp:136:16:136:16 | a | a flows from $@ | by_reference.cpp:96:8:96:17 | call to user_input | call to user_input | | clearning.cpp:34:8:34:11 | * ... | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | * ... | * ... flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | -| clearning.cpp:34:8:34:11 | * ... | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | * ... | x indirection flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | -| clearning.cpp:34:8:34:11 | * ... | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | x indirection | * ... flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | -| clearning.cpp:34:8:34:11 | * ... | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | x indirection | x indirection flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | -| clearning.cpp:34:8:34:11 | x indirection | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | * ... | * ... flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | -| clearning.cpp:34:8:34:11 | x indirection | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | * ... | x indirection flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | -| clearning.cpp:34:8:34:11 | x indirection | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | x indirection | * ... flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | -| clearning.cpp:34:8:34:11 | x indirection | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:34:8:34:11 | x indirection | x indirection flows from $@ | clearning.cpp:32:10:32:19 | call to user_input | call to user_input | | clearning.cpp:55:10:55:10 | x indirection | clearning.cpp:53:10:53:19 | call to user_input | clearning.cpp:55:10:55:10 | x indirection | x indirection flows from $@ | clearning.cpp:53:10:53:19 | call to user_input | call to user_input | | clearning.cpp:62:10:62:10 | x indirection | clearning.cpp:60:11:60:20 | call to user_input | clearning.cpp:62:10:62:10 | x indirection | x indirection flows from $@ | clearning.cpp:60:11:60:20 | call to user_input | call to user_input | | clearning.cpp:76:7:76:12 | * ... | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | * ... | * ... flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:76:7:76:12 | * ... | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | * ... | val indirection flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:76:7:76:12 | * ... | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | val indirection | * ... flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:76:7:76:12 | * ... | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | val indirection | val indirection flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:76:7:76:12 | val indirection | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | * ... | * ... flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:76:7:76:12 | val indirection | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | * ... | val indirection flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:76:7:76:12 | val indirection | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | val indirection | * ... flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:76:7:76:12 | val indirection | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:76:7:76:12 | val indirection | val indirection flows from $@ | clearning.cpp:74:20:74:22 | argument_source output argument | argument_source output argument | | clearning.cpp:84:7:84:12 | * ... | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | * ... | * ... flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:84:7:84:12 | * ... | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | * ... | val indirection flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:84:7:84:12 | * ... | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | val indirection | * ... flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:84:7:84:12 | * ... | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | val indirection | val indirection flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:84:7:84:12 | val indirection | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | * ... | * ... flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:84:7:84:12 | val indirection | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | * ... | val indirection flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:84:7:84:12 | val indirection | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | val indirection | * ... flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:84:7:84:12 | val indirection | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:84:7:84:12 | val indirection | val indirection flows from $@ | clearning.cpp:81:20:81:22 | argument_source output argument | argument_source output argument | | clearning.cpp:91:7:91:12 | * ... | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | * ... | * ... flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:91:7:91:12 | * ... | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | * ... | val indirection flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:91:7:91:12 | * ... | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | val indirection | * ... flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:91:7:91:12 | * ... | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | val indirection | val indirection flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:91:7:91:12 | val indirection | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | * ... | * ... flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:91:7:91:12 | val indirection | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | * ... | val indirection flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:91:7:91:12 | val indirection | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | val indirection | * ... flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:91:7:91:12 | val indirection | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:91:7:91:12 | val indirection | val indirection flows from $@ | clearning.cpp:89:20:89:22 | argument_source output argument | argument_source output argument | | clearning.cpp:98:7:98:12 | * ... | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | * ... | * ... flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:98:7:98:12 | * ... | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | * ... | val indirection flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:98:7:98:12 | * ... | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | val indirection | * ... flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:98:7:98:12 | * ... | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | val indirection | val indirection flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:98:7:98:12 | val indirection | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | * ... | * ... flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:98:7:98:12 | val indirection | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | * ... | val indirection flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:98:7:98:12 | val indirection | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | val indirection | * ... flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:98:7:98:12 | val indirection | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:98:7:98:12 | val indirection | val indirection flows from $@ | clearning.cpp:96:20:96:22 | argument_source output argument | argument_source output argument | | clearning.cpp:105:7:105:12 | * ... | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | * ... | * ... flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:105:7:105:12 | * ... | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | * ... | val indirection flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:105:7:105:12 | * ... | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | val indirection | * ... flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:105:7:105:12 | * ... | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | val indirection | val indirection flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:105:7:105:12 | val indirection | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | * ... | * ... flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:105:7:105:12 | val indirection | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | * ... | val indirection flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:105:7:105:12 | val indirection | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | val indirection | * ... flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:105:7:105:12 | val indirection | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:105:7:105:12 | val indirection | val indirection flows from $@ | clearning.cpp:103:20:103:22 | argument_source output argument | argument_source output argument | | clearning.cpp:112:7:112:12 | * ... | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | * ... | * ... flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:112:7:112:12 | * ... | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | * ... | val indirection flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:112:7:112:12 | * ... | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | val indirection | * ... flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:112:7:112:12 | * ... | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | val indirection | val indirection flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:112:7:112:12 | val indirection | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | * ... | * ... flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:112:7:112:12 | val indirection | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | * ... | val indirection flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:112:7:112:12 | val indirection | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | val indirection | * ... flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:112:7:112:12 | val indirection | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:112:7:112:12 | val indirection | val indirection flows from $@ | clearning.cpp:110:20:110:22 | argument_source output argument | argument_source output argument | | clearning.cpp:119:7:119:12 | * ... | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | * ... | * ... flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:119:7:119:12 | * ... | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | * ... | val indirection flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:119:7:119:12 | * ... | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | val indirection | * ... flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:119:7:119:12 | * ... | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | val indirection | val indirection flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:119:7:119:12 | val indirection | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | * ... | * ... flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:119:7:119:12 | val indirection | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | * ... | val indirection flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:119:7:119:12 | val indirection | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | val indirection | * ... flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | -| clearning.cpp:119:7:119:12 | val indirection | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:119:7:119:12 | val indirection | val indirection flows from $@ | clearning.cpp:117:20:117:22 | argument_source output argument | argument_source output argument | | clearning.cpp:152:10:152:12 | val | clearning.cpp:151:11:151:20 | call to user_input | clearning.cpp:152:10:152:12 | val | val flows from $@ | clearning.cpp:151:11:151:20 | call to user_input | call to user_input | | complex.cpp:42:18:42:18 | call to a | complex.cpp:53:19:53:28 | call to user_input | complex.cpp:42:18:42:18 | call to a | call to a flows from $@ | complex.cpp:53:19:53:28 | call to user_input | call to user_input | | complex.cpp:42:18:42:18 | call to a | complex.cpp:55:19:55:28 | call to user_input | complex.cpp:42:18:42:18 | call to a | call to a flows from $@ | complex.cpp:55:19:55:28 | call to user_input | call to user_input | | complex.cpp:43:18:43:18 | call to b | complex.cpp:54:19:54:28 | call to user_input | complex.cpp:43:18:43:18 | call to b | call to b flows from $@ | complex.cpp:54:19:54:28 | call to user_input | call to user_input | | complex.cpp:43:18:43:18 | call to b | complex.cpp:56:19:56:28 | call to user_input | complex.cpp:43:18:43:18 | call to b | call to b flows from $@ | complex.cpp:56:19:56:28 | call to user_input | call to user_input | | conflated.cpp:11:8:11:12 | * ... | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | * ... | * ... flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | -| conflated.cpp:11:8:11:12 | * ... | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | * ... | p indirection flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | -| conflated.cpp:11:8:11:12 | * ... | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | p indirection | * ... flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | -| conflated.cpp:11:8:11:12 | * ... | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | p indirection | p indirection flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | -| conflated.cpp:11:8:11:12 | p indirection | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | * ... | * ... flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | -| conflated.cpp:11:8:11:12 | p indirection | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | * ... | p indirection flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | -| conflated.cpp:11:8:11:12 | p indirection | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | p indirection | * ... flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | -| conflated.cpp:11:8:11:12 | p indirection | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | p indirection | p indirection flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | | conflated.cpp:20:8:20:10 | raw indirection | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | raw indirection flows from $@ | conflated.cpp:19:19:19:21 | argument_source output argument | argument_source output argument | | conflated.cpp:30:12:30:12 | x | conflated.cpp:29:11:29:20 | call to user_input | conflated.cpp:30:12:30:12 | x | x flows from $@ | conflated.cpp:29:11:29:20 | call to user_input | call to user_input | | conflated.cpp:37:12:37:12 | x | conflated.cpp:36:11:36:20 | call to user_input | conflated.cpp:37:12:37:12 | x | x flows from $@ | conflated.cpp:36:11:36:20 | call to user_input | call to user_input | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected index 4f08af09a7b..38b0d6eda57 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected @@ -8,37 +8,21 @@ testFailures | map.cpp:168:7:168:27 | ... = ... | Unexpected result: ir=168:20 | | map.cpp:168:7:168:27 | ... = ... indirection | Unexpected result: ir=168:7 | | map.cpp:168:7:168:27 | ... = ... indirection | Unexpected result: ir=168:20 | -| map.cpp:168:7:168:27 | call to source | Unexpected result: ir=168:7 | -| map.cpp:168:7:168:27 | call to source | Unexpected result: ir=168:20 | -| map.cpp:168:7:168:27 | call to source indirection | Unexpected result: ir=168:7 | -| map.cpp:168:7:168:27 | call to source indirection | Unexpected result: ir=168:20 | | map.cpp:168:31:168:41 | // $ ast,ir | Missing result:ir= | | map.cpp:170:7:170:30 | ... = ... | Unexpected result: ir=170:7 | | map.cpp:170:7:170:30 | ... = ... | Unexpected result: ir=170:23 | | map.cpp:170:7:170:30 | ... = ... indirection | Unexpected result: ir=170:7 | | map.cpp:170:7:170:30 | ... = ... indirection | Unexpected result: ir=170:23 | -| map.cpp:170:7:170:30 | call to source | Unexpected result: ir=170:7 | -| map.cpp:170:7:170:30 | call to source | Unexpected result: ir=170:23 | -| map.cpp:170:7:170:30 | call to source indirection | Unexpected result: ir=170:7 | -| map.cpp:170:7:170:30 | call to source indirection | Unexpected result: ir=170:23 | | map.cpp:170:34:170:44 | // $ ast,ir | Missing result:ir= | | map.cpp:320:7:320:27 | ... = ... | Unexpected result: ir=320:7 | | map.cpp:320:7:320:27 | ... = ... | Unexpected result: ir=320:20 | | map.cpp:320:7:320:27 | ... = ... indirection | Unexpected result: ir=320:7 | | map.cpp:320:7:320:27 | ... = ... indirection | Unexpected result: ir=320:20 | -| map.cpp:320:7:320:27 | call to source | Unexpected result: ir=320:7 | -| map.cpp:320:7:320:27 | call to source | Unexpected result: ir=320:20 | -| map.cpp:320:7:320:27 | call to source indirection | Unexpected result: ir=320:7 | -| map.cpp:320:7:320:27 | call to source indirection | Unexpected result: ir=320:20 | | map.cpp:320:31:320:41 | // $ ast,ir | Missing result:ir= | | map.cpp:322:7:322:30 | ... = ... | Unexpected result: ir=322:7 | | map.cpp:322:7:322:30 | ... = ... | Unexpected result: ir=322:23 | | map.cpp:322:7:322:30 | ... = ... indirection | Unexpected result: ir=322:7 | | map.cpp:322:7:322:30 | ... = ... indirection | Unexpected result: ir=322:23 | -| map.cpp:322:7:322:30 | call to source | Unexpected result: ir=322:7 | -| map.cpp:322:7:322:30 | call to source | Unexpected result: ir=322:23 | -| map.cpp:322:7:322:30 | call to source indirection | Unexpected result: ir=322:7 | -| map.cpp:322:7:322:30 | call to source indirection | Unexpected result: ir=322:23 | | map.cpp:322:34:322:44 | // $ ast,ir | Missing result:ir= | | taint.cpp:16:8:16:14 | source1 | Unexpected result: ir=12:13 | | taint.cpp:16:8:16:14 | source1 | Unexpected result: ir=12:22 | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected index e40d2d5d65f..da35e816448 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected @@ -9,9 +9,6 @@ edges | test_free.cpp:83:12:83:12 | a | test_free.cpp:85:12:85:12 | a | | test_free.cpp:101:10:101:10 | a | test_free.cpp:103:10:103:10 | a | | test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | * ... | -| test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | a indirection | -| test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | * ... | -| test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | a indirection | | test_free.cpp:152:27:152:27 | a | test_free.cpp:154:10:154:10 | a | | test_free.cpp:207:10:207:10 | a | test_free.cpp:209:10:209:10 | a | | test_free.cpp:252:7:252:7 | p | test_free.cpp:255:10:255:10 | p | @@ -36,13 +33,7 @@ nodes | test_free.cpp:101:10:101:10 | a | semmle.label | a | | test_free.cpp:103:10:103:10 | a | semmle.label | a | | test_free.cpp:128:10:128:11 | * ... | semmle.label | * ... | -| test_free.cpp:128:10:128:11 | * ... | semmle.label | a indirection | -| test_free.cpp:128:10:128:11 | a indirection | semmle.label | * ... | -| test_free.cpp:128:10:128:11 | a indirection | semmle.label | a indirection | | test_free.cpp:129:10:129:11 | * ... | semmle.label | * ... | -| test_free.cpp:129:10:129:11 | * ... | semmle.label | a indirection | -| test_free.cpp:129:10:129:11 | a indirection | semmle.label | * ... | -| test_free.cpp:129:10:129:11 | a indirection | semmle.label | a indirection | | test_free.cpp:152:27:152:27 | a | semmle.label | a | | test_free.cpp:154:10:154:10 | a | semmle.label | a | | test_free.cpp:207:10:207:10 | a | semmle.label | a | @@ -63,13 +54,6 @@ subpaths | test_free.cpp:85:12:85:12 | a | test_free.cpp:83:12:83:12 | a | test_free.cpp:85:12:85:12 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:83:5:83:13 | delete | delete | | test_free.cpp:103:10:103:10 | a | test_free.cpp:101:10:101:10 | a | test_free.cpp:103:10:103:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:101:5:101:8 | call to free | call to free | | test_free.cpp:129:10:129:11 | * ... | test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | * ... | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | -| test_free.cpp:129:10:129:11 | * ... | test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | a indirection | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | -| test_free.cpp:129:10:129:11 | * ... | test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | * ... | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | -| test_free.cpp:129:10:129:11 | * ... | test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | a indirection | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | -| test_free.cpp:129:10:129:11 | a indirection | test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | * ... | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | -| test_free.cpp:129:10:129:11 | a indirection | test_free.cpp:128:10:128:11 | * ... | test_free.cpp:129:10:129:11 | a indirection | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | -| test_free.cpp:129:10:129:11 | a indirection | test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | * ... | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | -| test_free.cpp:129:10:129:11 | a indirection | test_free.cpp:128:10:128:11 | a indirection | test_free.cpp:129:10:129:11 | a indirection | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | | test_free.cpp:154:10:154:10 | a | test_free.cpp:152:27:152:27 | a | test_free.cpp:154:10:154:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:152:22:152:25 | call to free | call to free | | test_free.cpp:209:10:209:10 | a | test_free.cpp:207:10:207:10 | a | test_free.cpp:209:10:209:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:207:5:207:8 | call to free | call to free | | test_free.cpp:255:10:255:10 | p | test_free.cpp:252:7:252:7 | p | test_free.cpp:255:10:255:10 | p | Memory pointed to by 'p' may already have been freed by $@. | test_free.cpp:252:2:252:5 | call to free | call to free | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected index fe6eb62dafb..8d84c6557a2 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected @@ -1,7 +1,6 @@ edges | test_free.cpp:11:10:11:10 | a | test_free.cpp:12:5:12:5 | a | | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | * ... | -| test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | a | | test_free.cpp:42:27:42:27 | a | test_free.cpp:45:5:45:5 | a | | test_free.cpp:44:27:44:27 | a | test_free.cpp:45:5:45:5 | a | | test_free.cpp:69:10:69:10 | a | test_free.cpp:71:9:71:9 | a | @@ -19,9 +18,6 @@ nodes | test_free.cpp:11:10:11:10 | a | semmle.label | a | | test_free.cpp:12:5:12:5 | a | semmle.label | a | | test_free.cpp:13:5:13:6 | * ... | semmle.label | * ... | -| test_free.cpp:13:5:13:6 | * ... | semmle.label | a | -| test_free.cpp:13:5:13:6 | a | semmle.label | * ... | -| test_free.cpp:13:5:13:6 | a | semmle.label | a | | test_free.cpp:42:27:42:27 | a | semmle.label | a | | test_free.cpp:44:27:44:27 | a | semmle.label | a | | test_free.cpp:45:5:45:5 | a | semmle.label | a | @@ -52,9 +48,6 @@ subpaths #select | test_free.cpp:12:5:12:5 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:12:5:12:5 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | | test_free.cpp:13:5:13:6 | * ... | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | * ... | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | -| test_free.cpp:13:5:13:6 | * ... | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | -| test_free.cpp:13:5:13:6 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | * ... | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | -| test_free.cpp:13:5:13:6 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | | test_free.cpp:45:5:45:5 | a | test_free.cpp:42:27:42:27 | a | test_free.cpp:45:5:45:5 | a | Memory may have been previously freed by $@. | test_free.cpp:42:22:42:25 | call to free | call to free | | test_free.cpp:45:5:45:5 | a | test_free.cpp:44:27:44:27 | a | test_free.cpp:45:5:45:5 | a | Memory may have been previously freed by $@. | test_free.cpp:44:22:44:25 | call to free | call to free | | test_free.cpp:71:9:71:9 | a | test_free.cpp:69:10:69:10 | a | test_free.cpp:71:9:71:9 | a | Memory may have been previously freed by $@. | test_free.cpp:69:5:69:8 | call to free | call to free | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected index 1b70f69d75d..814689b7202 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected @@ -39,8 +39,6 @@ edges | argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... | | argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... | -| argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | i2 indirection | -| argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | i2 indirection | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 | @@ -65,8 +63,6 @@ edges | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | -| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | i4 | -| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | i4 | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... | | argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... | @@ -141,9 +137,6 @@ nodes | argvLocal.c:110:9:110:11 | * ... | semmle.label | * ... | | argvLocal.c:111:15:111:17 | * ... | semmle.label | * ... | | argvLocal.c:111:15:111:17 | * ... | semmle.label | * ... | -| argvLocal.c:111:15:111:17 | * ... | semmle.label | i2 indirection | -| argvLocal.c:111:15:111:17 | i2 indirection | semmle.label | * ... | -| argvLocal.c:111:15:111:17 | i2 indirection | semmle.label | i2 indirection | | argvLocal.c:115:13:115:16 | argv | semmle.label | argv | | argvLocal.c:115:13:115:16 | argv | semmle.label | argv | | argvLocal.c:116:9:116:10 | i3 | semmle.label | i3 | @@ -168,9 +161,6 @@ nodes | argvLocal.c:135:9:135:12 | ... ++ | semmle.label | ... ++ | | argvLocal.c:135:9:135:12 | ... ++ | semmle.label | ... ++ | | argvLocal.c:135:9:135:12 | ... ++ | semmle.label | ... ++ | -| argvLocal.c:135:9:135:12 | ... ++ | semmle.label | i4 | -| argvLocal.c:135:9:135:12 | i4 | semmle.label | ... ++ | -| argvLocal.c:135:9:135:12 | i4 | semmle.label | i4 | | argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... | | argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... | | argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected index 74bd5dc79fd..46da3c5f62d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected @@ -37,8 +37,6 @@ edges | funcsLocal.c:46:7:46:9 | * ... | funcsLocal.c:47:9:47:11 | * ... | | funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | * ... | | funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | * ... | -| funcsLocal.c:46:7:46:9 | i7 indirection | funcsLocal.c:47:9:47:11 | * ... | -| funcsLocal.c:46:7:46:9 | i7 indirection | funcsLocal.c:47:9:47:11 | * ... | | funcsLocal.c:52:8:52:11 | call to gets | funcsLocal.c:53:9:53:11 | * ... | | funcsLocal.c:52:8:52:11 | call to gets | funcsLocal.c:53:9:53:11 | * ... | | funcsLocal.c:52:8:52:11 | call to gets | funcsLocal.c:53:9:53:11 | * ... | @@ -70,10 +68,7 @@ nodes | funcsLocal.c:42:9:42:10 | i6 | semmle.label | i6 | | funcsLocal.c:46:7:46:9 | * ... | semmle.label | * ... | | funcsLocal.c:46:7:46:9 | * ... | semmle.label | * ... | -| funcsLocal.c:46:7:46:9 | * ... | semmle.label | i7 indirection | | funcsLocal.c:46:7:46:9 | gets output argument | semmle.label | gets output argument | -| funcsLocal.c:46:7:46:9 | i7 indirection | semmle.label | * ... | -| funcsLocal.c:46:7:46:9 | i7 indirection | semmle.label | i7 indirection | | funcsLocal.c:47:9:47:11 | * ... | semmle.label | * ... | | funcsLocal.c:47:9:47:11 | * ... | semmle.label | * ... | | funcsLocal.c:52:8:52:11 | call to gets | semmle.label | call to gets | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected index e8e611e1961..eb13ca42267 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected @@ -3,7 +3,7 @@ edges | test.cpp:39:27:39:30 | argv indirection | test.cpp:44:38:44:63 | ... * ... | | test.cpp:39:27:39:30 | argv indirection | test.cpp:46:38:46:63 | ... + ... | | test.cpp:39:27:39:30 | argv indirection | test.cpp:49:32:49:35 | size | -| test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | size | +| test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | new[] | | test.cpp:39:27:39:30 | argv indirection | test.cpp:53:35:53:60 | ... * ... | | test.cpp:124:18:124:23 | call to getenv | test.cpp:128:24:128:41 | ... * ... | | test.cpp:124:18:124:31 | call to getenv indirection | test.cpp:128:24:128:41 | ... * ... | @@ -40,7 +40,7 @@ nodes | test.cpp:44:38:44:63 | ... * ... | semmle.label | ... * ... | | test.cpp:46:38:46:63 | ... + ... | semmle.label | ... + ... | | test.cpp:49:32:49:35 | size | semmle.label | size | -| test.cpp:50:17:50:30 | size | semmle.label | size | +| test.cpp:50:17:50:30 | new[] | semmle.label | new[] | | test.cpp:53:35:53:60 | ... * ... | semmle.label | ... * ... | | test.cpp:124:18:124:23 | call to getenv | semmle.label | call to getenv | | test.cpp:124:18:124:31 | call to getenv indirection | semmle.label | call to getenv indirection | @@ -82,7 +82,7 @@ subpaths | test.cpp:44:31:44:36 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:44:38:44:63 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:46:31:46:36 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:46:38:46:63 | ... + ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:49:25:49:30 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:49:32:49:35 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | -| test.cpp:50:17:50:30 | new[] | test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | +| test.cpp:50:17:50:30 | new[] | test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | new[] | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:53:21:53:27 | call to realloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:53:35:53:60 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:128:17:128:22 | call to malloc | test.cpp:124:18:124:23 | call to getenv | test.cpp:128:24:128:41 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:124:18:124:23 | call to getenv | user input (an environment variable) | | test.cpp:128:17:128:22 | call to malloc | test.cpp:124:18:124:31 | call to getenv indirection | test.cpp:128:24:128:41 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:124:18:124:31 | call to getenv indirection | user input (an environment variable) | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected index 5d0d56ddbe4..e30b1d5472f 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected @@ -3,79 +3,42 @@ edges | test.cpp:4:15:4:20 | call to malloc | test.cpp:5:15:5:22 | ... + ... | | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | -| test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | q indirection | -| test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | q indirection | | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | * ... | -| test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | ... + ... indirection | | test.cpp:5:15:5:22 | ... + ... | test.cpp:5:15:5:22 | ... + ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | q indirection | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | q indirection | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | q indirection | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | q indirection | | test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | * ... | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | ... + ... indirection | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | ... + ... indirection | | test.cpp:6:14:6:15 | * ... | test.cpp:8:14:8:21 | * ... | -| test.cpp:6:14:6:15 | * ... | test.cpp:8:14:8:21 | ... + ... indirection | -| test.cpp:6:14:6:15 | q indirection | test.cpp:8:14:8:21 | * ... | -| test.cpp:6:14:6:15 | q indirection | test.cpp:8:14:8:21 | ... + ... indirection | | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | * ... | -| test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | ... + ... indirection | | test.cpp:28:15:28:20 | call to malloc | test.cpp:29:15:29:28 | ... + ... | | test.cpp:28:15:28:20 | call to malloc | test.cpp:29:15:29:28 | ... + ... | | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | -| test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | q indirection | -| test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | q indirection | | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | * ... | -| test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | ... + ... indirection | | test.cpp:29:15:29:28 | ... + ... | test.cpp:29:15:29:28 | ... + ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | q indirection | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | q indirection | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | q indirection | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | q indirection | | test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | ... + ... indirection | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | ... + ... indirection | | test.cpp:30:14:30:15 | * ... | test.cpp:32:14:32:21 | * ... | -| test.cpp:30:14:30:15 | * ... | test.cpp:32:14:32:21 | ... + ... indirection | -| test.cpp:30:14:30:15 | q indirection | test.cpp:32:14:32:21 | * ... | -| test.cpp:30:14:30:15 | q indirection | test.cpp:32:14:32:21 | ... + ... indirection | | test.cpp:40:15:40:20 | call to malloc | test.cpp:41:15:41:28 | ... + ... | | test.cpp:40:15:40:20 | call to malloc | test.cpp:41:15:41:28 | ... + ... | | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | -| test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | q indirection | -| test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | q indirection | | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | * ... | -| test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | ... + ... indirection | | test.cpp:41:15:41:28 | ... + ... | test.cpp:41:15:41:28 | ... + ... | | test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | | test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | | test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | | test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | q indirection | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | q indirection | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | q indirection | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | q indirection | | test.cpp:41:15:41:28 | ... + ... | test.cpp:44:14:44:21 | * ... | | test.cpp:41:15:41:28 | ... + ... | test.cpp:44:14:44:21 | * ... | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:44:14:44:21 | ... + ... indirection | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:44:14:44:21 | ... + ... indirection | | test.cpp:42:14:42:15 | * ... | test.cpp:44:14:44:21 | * ... | -| test.cpp:42:14:42:15 | * ... | test.cpp:44:14:44:21 | ... + ... indirection | -| test.cpp:42:14:42:15 | q indirection | test.cpp:44:14:44:21 | * ... | -| test.cpp:42:14:42:15 | q indirection | test.cpp:44:14:44:21 | ... + ... indirection | | test.cpp:51:33:51:35 | end | test.cpp:60:34:60:37 | mk_array output argument | | test.cpp:52:19:52:24 | call to malloc | test.cpp:53:5:53:23 | ... = ... | | test.cpp:52:19:52:24 | call to malloc | test.cpp:53:12:53:23 | ... + ... | @@ -101,25 +64,13 @@ edges | test.cpp:260:13:260:24 | new[] | test.cpp:261:14:261:21 | ... + ... | | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | * ... | | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | * ... | -| test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | x indirection | -| test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | x indirection | | test.cpp:261:14:261:21 | ... + ... | test.cpp:261:14:261:21 | ... + ... | | test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | | test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | | test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | | test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | -| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | x indirection | -| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | x indirection | -| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | x indirection | -| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | x indirection | | test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | * ... | | test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | * ... | -| test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | x indirection | -| test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | x indirection | -| test.cpp:264:13:264:14 | x indirection | test.cpp:264:13:264:14 | * ... | -| test.cpp:264:13:264:14 | x indirection | test.cpp:264:13:264:14 | * ... | -| test.cpp:264:13:264:14 | x indirection | test.cpp:264:13:264:14 | x indirection | -| test.cpp:264:13:264:14 | x indirection | test.cpp:264:13:264:14 | x indirection | | test.cpp:270:13:270:24 | new[] | test.cpp:271:14:271:21 | ... + ... | | test.cpp:270:13:270:24 | new[] | test.cpp:271:14:271:21 | ... + ... | | test.cpp:270:13:270:24 | new[] | test.cpp:274:5:274:10 | ... = ... | @@ -154,71 +105,56 @@ edges | test.cpp:381:5:381:9 | ... ++ | test.cpp:384:13:384:16 | end indirection | | test.cpp:410:14:410:27 | new[] | test.cpp:411:15:411:23 | & ... | | test.cpp:410:14:410:27 | new[] | test.cpp:411:15:411:23 | & ... | -| test.cpp:410:14:410:27 | new[] | test.cpp:411:15:411:23 | access to array | | test.cpp:410:14:410:27 | new[] | test.cpp:413:5:413:8 | ... ++ | | test.cpp:410:14:410:27 | new[] | test.cpp:413:5:413:8 | ... ++ | | test.cpp:410:14:410:27 | new[] | test.cpp:415:7:415:15 | ... = ... | | test.cpp:411:15:411:23 | & ... | test.cpp:411:15:411:23 | & ... | | test.cpp:411:15:411:23 | & ... | test.cpp:415:7:415:15 | ... = ... | | test.cpp:411:15:411:23 | & ... | test.cpp:415:7:415:15 | ... = ... | -| test.cpp:411:15:411:23 | access to array | test.cpp:411:15:411:23 | & ... | -| test.cpp:411:15:411:23 | access to array | test.cpp:415:7:415:15 | ... = ... | | test.cpp:413:5:413:8 | ... ++ | test.cpp:413:5:413:8 | ... ++ | | test.cpp:413:5:413:8 | ... ++ | test.cpp:415:7:415:15 | ... = ... | | test.cpp:413:5:413:8 | ... ++ | test.cpp:415:7:415:15 | ... = ... | | test.cpp:421:14:421:27 | new[] | test.cpp:422:15:422:23 | & ... | | test.cpp:421:14:421:27 | new[] | test.cpp:422:15:422:23 | & ... | -| test.cpp:421:14:421:27 | new[] | test.cpp:422:15:422:23 | access to array | | test.cpp:421:14:421:27 | new[] | test.cpp:424:5:424:8 | ... ++ | | test.cpp:421:14:421:27 | new[] | test.cpp:424:5:424:8 | ... ++ | | test.cpp:421:14:421:27 | new[] | test.cpp:426:7:426:15 | ... = ... | | test.cpp:422:15:422:23 | & ... | test.cpp:422:15:422:23 | & ... | | test.cpp:422:15:422:23 | & ... | test.cpp:426:7:426:15 | ... = ... | | test.cpp:422:15:422:23 | & ... | test.cpp:426:7:426:15 | ... = ... | -| test.cpp:422:15:422:23 | access to array | test.cpp:422:15:422:23 | & ... | -| test.cpp:422:15:422:23 | access to array | test.cpp:426:7:426:15 | ... = ... | | test.cpp:424:5:424:8 | ... ++ | test.cpp:424:5:424:8 | ... ++ | | test.cpp:424:5:424:8 | ... ++ | test.cpp:426:7:426:15 | ... = ... | | test.cpp:424:5:424:8 | ... ++ | test.cpp:426:7:426:15 | ... = ... | | test.cpp:432:14:432:27 | new[] | test.cpp:433:15:433:23 | & ... | | test.cpp:432:14:432:27 | new[] | test.cpp:433:15:433:23 | & ... | -| test.cpp:432:14:432:27 | new[] | test.cpp:433:15:433:23 | access to array | | test.cpp:432:14:432:27 | new[] | test.cpp:436:5:436:8 | ... ++ | | test.cpp:432:14:432:27 | new[] | test.cpp:436:5:436:8 | ... ++ | | test.cpp:432:14:432:27 | new[] | test.cpp:438:7:438:15 | ... = ... | | test.cpp:433:15:433:23 | & ... | test.cpp:433:15:433:23 | & ... | | test.cpp:433:15:433:23 | & ... | test.cpp:438:7:438:15 | ... = ... | | test.cpp:433:15:433:23 | & ... | test.cpp:438:7:438:15 | ... = ... | -| test.cpp:433:15:433:23 | access to array | test.cpp:433:15:433:23 | & ... | -| test.cpp:433:15:433:23 | access to array | test.cpp:438:7:438:15 | ... = ... | | test.cpp:436:5:436:8 | ... ++ | test.cpp:436:5:436:8 | ... ++ | | test.cpp:436:5:436:8 | ... ++ | test.cpp:438:7:438:15 | ... = ... | | test.cpp:436:5:436:8 | ... ++ | test.cpp:438:7:438:15 | ... = ... | | test.cpp:444:14:444:27 | new[] | test.cpp:445:15:445:23 | & ... | | test.cpp:444:14:444:27 | new[] | test.cpp:445:15:445:23 | & ... | -| test.cpp:444:14:444:27 | new[] | test.cpp:445:15:445:23 | access to array | | test.cpp:444:14:444:27 | new[] | test.cpp:448:5:448:8 | ... ++ | | test.cpp:444:14:444:27 | new[] | test.cpp:448:5:448:8 | ... ++ | | test.cpp:444:14:444:27 | new[] | test.cpp:450:7:450:15 | ... = ... | | test.cpp:445:15:445:23 | & ... | test.cpp:445:15:445:23 | & ... | | test.cpp:445:15:445:23 | & ... | test.cpp:450:7:450:15 | ... = ... | | test.cpp:445:15:445:23 | & ... | test.cpp:450:7:450:15 | ... = ... | -| test.cpp:445:15:445:23 | access to array | test.cpp:445:15:445:23 | & ... | -| test.cpp:445:15:445:23 | access to array | test.cpp:450:7:450:15 | ... = ... | | test.cpp:448:5:448:8 | ... ++ | test.cpp:448:5:448:8 | ... ++ | | test.cpp:448:5:448:8 | ... ++ | test.cpp:450:7:450:15 | ... = ... | | test.cpp:448:5:448:8 | ... ++ | test.cpp:450:7:450:15 | ... = ... | | test.cpp:480:14:480:27 | new[] | test.cpp:481:15:481:23 | & ... | | test.cpp:480:14:480:27 | new[] | test.cpp:481:15:481:23 | & ... | -| test.cpp:480:14:480:27 | new[] | test.cpp:481:15:481:23 | access to array | | test.cpp:480:14:480:27 | new[] | test.cpp:484:5:484:8 | ... ++ | | test.cpp:480:14:480:27 | new[] | test.cpp:484:5:484:8 | ... ++ | | test.cpp:480:14:480:27 | new[] | test.cpp:486:7:486:15 | ... = ... | | test.cpp:481:15:481:23 | & ... | test.cpp:481:15:481:23 | & ... | | test.cpp:481:15:481:23 | & ... | test.cpp:486:7:486:15 | ... = ... | | test.cpp:481:15:481:23 | & ... | test.cpp:486:7:486:15 | ... = ... | -| test.cpp:481:15:481:23 | access to array | test.cpp:481:15:481:23 | & ... | -| test.cpp:481:15:481:23 | access to array | test.cpp:486:7:486:15 | ... = ... | | test.cpp:484:5:484:8 | ... ++ | test.cpp:484:5:484:8 | ... ++ | | test.cpp:484:5:484:8 | ... ++ | test.cpp:486:7:486:15 | ... = ... | | test.cpp:484:5:484:8 | ... ++ | test.cpp:486:7:486:15 | ... = ... | @@ -232,8 +168,6 @@ edges | test.cpp:705:18:705:18 | q | test.cpp:705:18:705:18 | q | | test.cpp:705:18:705:18 | q | test.cpp:706:12:706:13 | * ... | | test.cpp:705:18:705:18 | q | test.cpp:706:12:706:13 | * ... | -| test.cpp:705:18:705:18 | q | test.cpp:706:12:706:13 | q indirection | -| test.cpp:705:18:705:18 | q | test.cpp:706:12:706:13 | q indirection | | test.cpp:711:13:711:26 | new[] | test.cpp:714:11:714:11 | q | | test.cpp:714:11:714:11 | q | test.cpp:705:18:705:18 | q | | test.cpp:730:12:730:28 | new[] | test.cpp:732:16:732:26 | ... + ... | @@ -265,51 +199,21 @@ nodes | test.cpp:5:15:5:22 | ... + ... | semmle.label | ... + ... | | test.cpp:6:14:6:15 | * ... | semmle.label | * ... | | test.cpp:6:14:6:15 | * ... | semmle.label | * ... | -| test.cpp:6:14:6:15 | * ... | semmle.label | q indirection | -| test.cpp:6:14:6:15 | * ... | semmle.label | q indirection | -| test.cpp:6:14:6:15 | q indirection | semmle.label | * ... | -| test.cpp:6:14:6:15 | q indirection | semmle.label | * ... | -| test.cpp:6:14:6:15 | q indirection | semmle.label | q indirection | -| test.cpp:6:14:6:15 | q indirection | semmle.label | q indirection | | test.cpp:8:14:8:21 | * ... | semmle.label | * ... | -| test.cpp:8:14:8:21 | * ... | semmle.label | ... + ... indirection | -| test.cpp:8:14:8:21 | ... + ... indirection | semmle.label | * ... | -| test.cpp:8:14:8:21 | ... + ... indirection | semmle.label | ... + ... indirection | | test.cpp:16:15:16:20 | call to malloc | semmle.label | call to malloc | | test.cpp:20:14:20:21 | * ... | semmle.label | * ... | -| test.cpp:20:14:20:21 | * ... | semmle.label | ... + ... indirection | -| test.cpp:20:14:20:21 | ... + ... indirection | semmle.label | * ... | -| test.cpp:20:14:20:21 | ... + ... indirection | semmle.label | ... + ... indirection | | test.cpp:28:15:28:20 | call to malloc | semmle.label | call to malloc | | test.cpp:29:15:29:28 | ... + ... | semmle.label | ... + ... | | test.cpp:29:15:29:28 | ... + ... | semmle.label | ... + ... | | test.cpp:30:14:30:15 | * ... | semmle.label | * ... | | test.cpp:30:14:30:15 | * ... | semmle.label | * ... | -| test.cpp:30:14:30:15 | * ... | semmle.label | q indirection | -| test.cpp:30:14:30:15 | * ... | semmle.label | q indirection | -| test.cpp:30:14:30:15 | q indirection | semmle.label | * ... | -| test.cpp:30:14:30:15 | q indirection | semmle.label | * ... | -| test.cpp:30:14:30:15 | q indirection | semmle.label | q indirection | -| test.cpp:30:14:30:15 | q indirection | semmle.label | q indirection | | test.cpp:32:14:32:21 | * ... | semmle.label | * ... | -| test.cpp:32:14:32:21 | * ... | semmle.label | ... + ... indirection | -| test.cpp:32:14:32:21 | ... + ... indirection | semmle.label | * ... | -| test.cpp:32:14:32:21 | ... + ... indirection | semmle.label | ... + ... indirection | | test.cpp:40:15:40:20 | call to malloc | semmle.label | call to malloc | | test.cpp:41:15:41:28 | ... + ... | semmle.label | ... + ... | | test.cpp:41:15:41:28 | ... + ... | semmle.label | ... + ... | | test.cpp:42:14:42:15 | * ... | semmle.label | * ... | | test.cpp:42:14:42:15 | * ... | semmle.label | * ... | -| test.cpp:42:14:42:15 | * ... | semmle.label | q indirection | -| test.cpp:42:14:42:15 | * ... | semmle.label | q indirection | -| test.cpp:42:14:42:15 | q indirection | semmle.label | * ... | -| test.cpp:42:14:42:15 | q indirection | semmle.label | * ... | -| test.cpp:42:14:42:15 | q indirection | semmle.label | q indirection | -| test.cpp:42:14:42:15 | q indirection | semmle.label | q indirection | | test.cpp:44:14:44:21 | * ... | semmle.label | * ... | -| test.cpp:44:14:44:21 | * ... | semmle.label | ... + ... indirection | -| test.cpp:44:14:44:21 | ... + ... indirection | semmle.label | * ... | -| test.cpp:44:14:44:21 | ... + ... indirection | semmle.label | ... + ... indirection | | test.cpp:51:33:51:35 | end | semmle.label | end | | test.cpp:52:19:52:24 | call to malloc | semmle.label | call to malloc | | test.cpp:53:5:53:23 | ... = ... | semmle.label | ... = ... | @@ -335,12 +239,6 @@ nodes | test.cpp:261:14:261:21 | ... + ... | semmle.label | ... + ... | | test.cpp:264:13:264:14 | * ... | semmle.label | * ... | | test.cpp:264:13:264:14 | * ... | semmle.label | * ... | -| test.cpp:264:13:264:14 | * ... | semmle.label | x indirection | -| test.cpp:264:13:264:14 | * ... | semmle.label | x indirection | -| test.cpp:264:13:264:14 | x indirection | semmle.label | * ... | -| test.cpp:264:13:264:14 | x indirection | semmle.label | * ... | -| test.cpp:264:13:264:14 | x indirection | semmle.label | x indirection | -| test.cpp:264:13:264:14 | x indirection | semmle.label | x indirection | | test.cpp:270:13:270:24 | new[] | semmle.label | new[] | | test.cpp:271:14:271:21 | ... + ... | semmle.label | ... + ... | | test.cpp:271:14:271:21 | ... + ... | semmle.label | ... + ... | @@ -361,45 +259,30 @@ nodes | test.cpp:410:14:410:27 | new[] | semmle.label | new[] | | test.cpp:411:15:411:23 | & ... | semmle.label | & ... | | test.cpp:411:15:411:23 | & ... | semmle.label | & ... | -| test.cpp:411:15:411:23 | & ... | semmle.label | access to array | -| test.cpp:411:15:411:23 | access to array | semmle.label | & ... | -| test.cpp:411:15:411:23 | access to array | semmle.label | access to array | | test.cpp:413:5:413:8 | ... ++ | semmle.label | ... ++ | | test.cpp:413:5:413:8 | ... ++ | semmle.label | ... ++ | | test.cpp:415:7:415:15 | ... = ... | semmle.label | ... = ... | | test.cpp:421:14:421:27 | new[] | semmle.label | new[] | | test.cpp:422:15:422:23 | & ... | semmle.label | & ... | | test.cpp:422:15:422:23 | & ... | semmle.label | & ... | -| test.cpp:422:15:422:23 | & ... | semmle.label | access to array | -| test.cpp:422:15:422:23 | access to array | semmle.label | & ... | -| test.cpp:422:15:422:23 | access to array | semmle.label | access to array | | test.cpp:424:5:424:8 | ... ++ | semmle.label | ... ++ | | test.cpp:424:5:424:8 | ... ++ | semmle.label | ... ++ | | test.cpp:426:7:426:15 | ... = ... | semmle.label | ... = ... | | test.cpp:432:14:432:27 | new[] | semmle.label | new[] | | test.cpp:433:15:433:23 | & ... | semmle.label | & ... | | test.cpp:433:15:433:23 | & ... | semmle.label | & ... | -| test.cpp:433:15:433:23 | & ... | semmle.label | access to array | -| test.cpp:433:15:433:23 | access to array | semmle.label | & ... | -| test.cpp:433:15:433:23 | access to array | semmle.label | access to array | | test.cpp:436:5:436:8 | ... ++ | semmle.label | ... ++ | | test.cpp:436:5:436:8 | ... ++ | semmle.label | ... ++ | | test.cpp:438:7:438:15 | ... = ... | semmle.label | ... = ... | | test.cpp:444:14:444:27 | new[] | semmle.label | new[] | | test.cpp:445:15:445:23 | & ... | semmle.label | & ... | | test.cpp:445:15:445:23 | & ... | semmle.label | & ... | -| test.cpp:445:15:445:23 | & ... | semmle.label | access to array | -| test.cpp:445:15:445:23 | access to array | semmle.label | & ... | -| test.cpp:445:15:445:23 | access to array | semmle.label | access to array | | test.cpp:448:5:448:8 | ... ++ | semmle.label | ... ++ | | test.cpp:448:5:448:8 | ... ++ | semmle.label | ... ++ | | test.cpp:450:7:450:15 | ... = ... | semmle.label | ... = ... | | test.cpp:480:14:480:27 | new[] | semmle.label | new[] | | test.cpp:481:15:481:23 | & ... | semmle.label | & ... | | test.cpp:481:15:481:23 | & ... | semmle.label | & ... | -| test.cpp:481:15:481:23 | & ... | semmle.label | access to array | -| test.cpp:481:15:481:23 | access to array | semmle.label | & ... | -| test.cpp:481:15:481:23 | access to array | semmle.label | access to array | | test.cpp:484:5:484:8 | ... ++ | semmle.label | ... ++ | | test.cpp:484:5:484:8 | ... ++ | semmle.label | ... ++ | | test.cpp:486:7:486:15 | ... = ... | semmle.label | ... = ... | @@ -416,9 +299,6 @@ nodes | test.cpp:705:18:705:18 | q | semmle.label | q | | test.cpp:705:18:705:18 | q | semmle.label | q | | test.cpp:706:12:706:13 | * ... | semmle.label | * ... | -| test.cpp:706:12:706:13 | * ... | semmle.label | q indirection | -| test.cpp:706:12:706:13 | q indirection | semmle.label | * ... | -| test.cpp:706:12:706:13 | q indirection | semmle.label | q indirection | | test.cpp:711:13:711:26 | new[] | semmle.label | new[] | | test.cpp:714:11:714:11 | q | semmle.label | q | | test.cpp:730:12:730:28 | new[] | semmle.label | new[] | @@ -446,33 +326,12 @@ nodes subpaths #select | test.cpp:6:14:6:15 | * ... | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | -| test.cpp:6:14:6:15 | * ... | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | -| test.cpp:6:14:6:15 | q indirection | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | -| test.cpp:6:14:6:15 | q indirection | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | | test.cpp:8:14:8:21 | * ... | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | -| test.cpp:8:14:8:21 | * ... | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | -| test.cpp:8:14:8:21 | ... + ... indirection | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | -| test.cpp:8:14:8:21 | ... + ... indirection | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | | test.cpp:20:14:20:21 | * ... | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:16:15:16:20 | call to malloc | call to malloc | test.cpp:17:19:17:22 | size | size | -| test.cpp:20:14:20:21 | * ... | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:16:15:16:20 | call to malloc | call to malloc | test.cpp:17:19:17:22 | size | size | -| test.cpp:20:14:20:21 | ... + ... indirection | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:16:15:16:20 | call to malloc | call to malloc | test.cpp:17:19:17:22 | size | size | -| test.cpp:20:14:20:21 | ... + ... indirection | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:16:15:16:20 | call to malloc | call to malloc | test.cpp:17:19:17:22 | size | size | | test.cpp:30:14:30:15 | * ... | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | -| test.cpp:30:14:30:15 | * ... | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | -| test.cpp:30:14:30:15 | q indirection | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | -| test.cpp:30:14:30:15 | q indirection | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | | test.cpp:32:14:32:21 | * ... | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | -| test.cpp:32:14:32:21 | * ... | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | -| test.cpp:32:14:32:21 | ... + ... indirection | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | -| test.cpp:32:14:32:21 | ... + ... indirection | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | | test.cpp:42:14:42:15 | * ... | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | -| test.cpp:42:14:42:15 | * ... | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | -| test.cpp:42:14:42:15 | q indirection | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | -| test.cpp:42:14:42:15 | q indirection | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | | test.cpp:44:14:44:21 | * ... | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | -| test.cpp:44:14:44:21 | * ... | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | -| test.cpp:44:14:44:21 | ... + ... indirection | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | -| test.cpp:44:14:44:21 | ... + ... indirection | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | | test.cpp:67:9:67:14 | ... = ... | test.cpp:52:19:52:24 | call to malloc | test.cpp:67:9:67:14 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:52:19:52:24 | call to malloc | call to malloc | test.cpp:53:20:53:23 | size | size | | test.cpp:201:5:201:19 | ... = ... | test.cpp:194:15:194:33 | call to malloc | test.cpp:201:5:201:19 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:194:15:194:33 | call to malloc | call to malloc | test.cpp:195:21:195:23 | len | len | | test.cpp:213:5:213:13 | ... = ... | test.cpp:205:15:205:33 | call to malloc | test.cpp:213:5:213:13 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:205:15:205:33 | call to malloc | call to malloc | test.cpp:206:21:206:23 | len | len | @@ -480,9 +339,6 @@ subpaths | test.cpp:239:5:239:22 | ... = ... | test.cpp:238:20:238:32 | new[] | test.cpp:239:5:239:22 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:238:20:238:32 | new[] | new[] | test.cpp:239:13:239:17 | index | index | | test.cpp:254:9:254:16 | ... = ... | test.cpp:248:13:248:36 | call to realloc | test.cpp:254:9:254:16 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:248:13:248:36 | call to realloc | call to realloc | test.cpp:254:11:254:11 | i | i | | test.cpp:264:13:264:14 | * ... | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:260:13:260:24 | new[] | new[] | test.cpp:261:19:261:21 | len | len | -| test.cpp:264:13:264:14 | * ... | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | x indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:260:13:260:24 | new[] | new[] | test.cpp:261:19:261:21 | len | len | -| test.cpp:264:13:264:14 | x indirection | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:260:13:260:24 | new[] | new[] | test.cpp:261:19:261:21 | len | len | -| test.cpp:264:13:264:14 | x indirection | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | x indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:260:13:260:24 | new[] | new[] | test.cpp:261:19:261:21 | len | len | | test.cpp:274:5:274:10 | ... = ... | test.cpp:270:13:270:24 | new[] | test.cpp:274:5:274:10 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:270:13:270:24 | new[] | new[] | test.cpp:271:19:271:21 | len | len | | test.cpp:358:14:358:26 | end_plus_one indirection | test.cpp:355:14:355:27 | new[] | test.cpp:358:14:358:26 | end_plus_one indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:355:14:355:27 | new[] | new[] | test.cpp:356:20:356:23 | size | size | | test.cpp:359:14:359:32 | ... + ... indirection | test.cpp:355:14:355:27 | new[] | test.cpp:359:14:359:32 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 2. | test.cpp:355:14:355:27 | new[] | new[] | test.cpp:356:20:356:23 | size | size | @@ -497,9 +353,6 @@ subpaths | test.cpp:647:5:647:19 | ... = ... | test.cpp:642:14:642:31 | new[] | test.cpp:647:5:647:19 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:642:14:642:31 | new[] | new[] | test.cpp:647:8:647:14 | src_pos | src_pos | | test.cpp:701:15:701:16 | p indirection | test.cpp:695:13:695:26 | new[] | test.cpp:701:15:701:16 | p indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:695:13:695:26 | new[] | new[] | test.cpp:696:19:696:22 | size | size | | test.cpp:706:12:706:13 | * ... | test.cpp:711:13:711:26 | new[] | test.cpp:706:12:706:13 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:711:13:711:26 | new[] | new[] | test.cpp:712:19:712:22 | size | size | -| test.cpp:706:12:706:13 | * ... | test.cpp:711:13:711:26 | new[] | test.cpp:706:12:706:13 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:711:13:711:26 | new[] | new[] | test.cpp:712:19:712:22 | size | size | -| test.cpp:706:12:706:13 | q indirection | test.cpp:711:13:711:26 | new[] | test.cpp:706:12:706:13 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:711:13:711:26 | new[] | new[] | test.cpp:712:19:712:22 | size | size | -| test.cpp:706:12:706:13 | q indirection | test.cpp:711:13:711:26 | new[] | test.cpp:706:12:706:13 | q indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:711:13:711:26 | new[] | new[] | test.cpp:712:19:712:22 | size | size | | test.cpp:733:5:733:12 | ... = ... | test.cpp:730:12:730:28 | new[] | test.cpp:733:5:733:12 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:730:12:730:28 | new[] | new[] | test.cpp:732:21:732:25 | ... + ... | ... + ... | | test.cpp:767:16:767:29 | access to array | test.cpp:754:18:754:31 | new[] | test.cpp:767:16:767:29 | access to array | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:754:18:754:31 | new[] | new[] | test.cpp:767:22:767:28 | ... + ... | ... + ... | | test.cpp:767:16:767:29 | access to array | test.cpp:754:18:754:31 | new[] | test.cpp:767:16:767:29 | access to array | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:754:18:754:31 | new[] | new[] | test.cpp:772:22:772:28 | ... + ... | ... + ... | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected index 8f5e774cab7..2079fd4b958 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected @@ -89,9 +89,6 @@ nodes | test3.cpp:368:15:368:22 | password | semmle.label | password | | test3.cpp:388:15:388:22 | password | semmle.label | password | | test3.cpp:400:15:400:23 | & ... | semmle.label | & ... | -| test3.cpp:400:15:400:23 | & ... | semmle.label | password | -| test3.cpp:400:15:400:23 | password | semmle.label | & ... | -| test3.cpp:400:15:400:23 | password | semmle.label | password | | test3.cpp:414:15:414:24 | password | semmle.label | password | | test3.cpp:420:15:420:24 | password | semmle.label | password | | test3.cpp:431:8:431:15 | password | semmle.label | password | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected index f716c910b43..91479198254 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected @@ -7,7 +7,6 @@ edges | test.cpp:138:7:138:10 | data | test.cpp:141:6:141:9 | data | | test.cpp:164:9:164:9 | c | test.cpp:165:2:165:2 | c | | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | * ... | -| test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | c | | test.cpp:181:7:181:10 | data | test.cpp:186:6:186:9 | data | | test.cpp:192:7:192:10 | data | test.cpp:197:6:197:9 | data | | test.cpp:203:7:203:10 | data | test.cpp:209:6:209:9 | data | @@ -29,9 +28,6 @@ nodes | test.cpp:164:9:164:9 | c | semmle.label | c | | test.cpp:165:2:165:2 | c | semmle.label | c | | test.cpp:166:3:166:4 | * ... | semmle.label | * ... | -| test.cpp:166:3:166:4 | * ... | semmle.label | c | -| test.cpp:166:3:166:4 | c | semmle.label | * ... | -| test.cpp:166:3:166:4 | c | semmle.label | c | | test.cpp:181:7:181:10 | data | semmle.label | data | | test.cpp:186:6:186:9 | data | semmle.label | data | | test.cpp:192:7:192:10 | data | semmle.label | data | @@ -52,9 +48,6 @@ subpaths | test.cpp:141:6:141:9 | data | test.cpp:138:7:138:10 | data | test.cpp:141:6:141:9 | data | Memory may have been previously freed by $@. | test.cpp:138:2:138:5 | call to free | call to free | | test.cpp:165:2:165:2 | c | test.cpp:164:9:164:9 | c | test.cpp:165:2:165:2 | c | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | | test.cpp:166:3:166:4 | * ... | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | * ... | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | -| test.cpp:166:3:166:4 | * ... | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | c | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | -| test.cpp:166:3:166:4 | c | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | * ... | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | -| test.cpp:166:3:166:4 | c | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | c | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | | test.cpp:186:6:186:9 | data | test.cpp:181:7:181:10 | data | test.cpp:186:6:186:9 | data | Memory may have been previously freed by $@. | test.cpp:181:2:181:5 | call to free | call to free | | test.cpp:197:6:197:9 | data | test.cpp:192:7:192:10 | data | test.cpp:197:6:197:9 | data | Memory may have been previously freed by $@. | test.cpp:192:2:192:5 | call to free | call to free | | test.cpp:209:6:209:9 | data | test.cpp:203:7:203:10 | data | test.cpp:209:6:209:9 | data | Memory may have been previously freed by $@. | test.cpp:203:2:203:5 | call to free | call to free | From cca6052026c454d15aaf955aa67e22f514992ccf Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 18 Aug 2023 12:15:44 +0100 Subject: [PATCH 150/788] C++: Use 'operandNode' to generate the string for indirect operands. --- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 180daae15b8..36d9e118dbe 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -957,7 +957,7 @@ class RawIndirectOperand extends Node, TRawIndirectOperand { } override string toStringImpl() { - result = instructionNode(this.getOperand().getDef()).toStringImpl() + " indirection" + result = operandNode(this.getOperand()).toStringImpl() + " indirection" } } From 20f501d1c7776f509342310b6774cc602d30be8e Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 28 Aug 2023 15:03:34 +0100 Subject: [PATCH 151/788] C++: Change queries to use 'asExpr' instead of 'asConvertedExpr'. --- .../AllocationToInvalidPointer.qll | 8 +++--- cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql | 2 +- .../CWE/CWE-119/OverrunWriteProductFlow.ql | 4 +-- .../CWE/CWE-190/TaintedAllocationSize.ql | 2 +- .../CWE/CWE-311/CleartextTransmission.ql | 13 ++++------ .../src/Security/CWE/CWE-497/SystemData.qll | 4 +-- cpp/ql/src/Security/CWE/CWE-611/Xerces.qll | 8 +++--- .../annotate_path_to_sink/tainted.expected | 2 -- .../annotate_path_to_sink/test_diff.cpp | 4 +-- .../dataflow/fields/flow.expected | 3 --- .../dataflow/fields/realistic.cpp | 2 +- .../dataflow/taint-tests/map.cpp | 8 +++--- .../dataflow/taint-tests/taint.cpp | 4 +-- .../dataflow/taint-tests/taint.expected | 26 ------------------- 14 files changed, 28 insertions(+), 62 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/security/InvalidPointerDereference/AllocationToInvalidPointer.qll b/cpp/ql/lib/semmle/code/cpp/security/InvalidPointerDereference/AllocationToInvalidPointer.qll index cc1e223410a..2e726c3024b 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/InvalidPointerDereference/AllocationToInvalidPointer.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/InvalidPointerDereference/AllocationToInvalidPointer.qll @@ -72,7 +72,7 @@ predicate hasSize(HeuristicAllocationExpr alloc, DataFlow::Node n, int state) { // Compute `delta` as the constant difference between `x` and `x + 1`. bounded1(any(Instruction instr | instr.getUnconvertedResultExpression() = size), any(LoadInstruction load | load.getUnconvertedResultExpression() = va), delta) and - n.asConvertedExpr() = va.getFullyConverted() and + n.asExpr() = va and state = delta ) } @@ -210,7 +210,7 @@ private module InterestingPointerAddInstruction { predicate isSource(DataFlow::Node source) { // The sources is the same as in the sources for the second // projection in the `AllocToInvalidPointerConfig` module. - hasSize(source.asConvertedExpr(), _, _) + hasSize(source.asExpr(), _, _) } int fieldFlowBranchLimit() { result = allocationToInvalidPointerFieldFlowBranchLimit() } @@ -243,7 +243,7 @@ private module InterestingPointerAddInstruction { */ predicate isInterestingSize(DataFlow::Node n) { exists(DataFlow::Node alloc | - hasSize(alloc.asConvertedExpr(), n, _) and + hasSize(alloc.asExpr(), n, _) and flow(alloc, _) ) } @@ -268,7 +268,7 @@ private module Config implements ProductFlow::StateConfigSig { // we use `state2` to remember that there was an offset (in this case an offset of `1`) added // to the size of the allocation. This state is then checked in `isSinkPair`. exists(unit) and - hasSize(allocSource.asConvertedExpr(), sizeSource, sizeAddend) + hasSize(allocSource.asExpr(), sizeSource, sizeAddend) } int fieldFlowBranchLimit1() { result = allocationToInvalidPointerFieldFlowBranchLimit() } diff --git a/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql b/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql index 9cc2fbf10e7..2ea1cb02465 100644 --- a/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql +++ b/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql @@ -30,7 +30,7 @@ Expr asSinkExpr(DataFlow::Node node) { result = node.asIndirectArgument() or // We want the conversion so we only get one node for the expression - result = node.asConvertedExpr() + result = node.asExpr() } module SqlTaintedConfig implements DataFlow::ConfigSig { diff --git a/cpp/ql/src/Security/CWE/CWE-119/OverrunWriteProductFlow.ql b/cpp/ql/src/Security/CWE/CWE-119/OverrunWriteProductFlow.ql index f87acaf96e3..471aa8b42b8 100644 --- a/cpp/ql/src/Security/CWE/CWE-119/OverrunWriteProductFlow.ql +++ b/cpp/ql/src/Security/CWE/CWE-119/OverrunWriteProductFlow.ql @@ -38,7 +38,7 @@ predicate hasSize(HeuristicAllocationExpr alloc, DataFlow::Node n, int state) { // Compute `delta` as the constant difference between `x` and `x + 1`. bounded(any(Instruction instr | instr.getUnconvertedResultExpression() = size), any(LoadInstruction load | load.getUnconvertedResultExpression() = va), delta) and - n.asConvertedExpr() = va.getFullyConverted() and + n.asExpr() = va and state = delta ) } @@ -213,7 +213,7 @@ module StringSizeConfig implements ProductFlow::StateConfigSig { // we use `state2` to remember that there was an offset (in this case an offset of `1`) added // to the size of the allocation. This state is then checked in `isSinkPair`. exists(state1) and - hasSize(bufSource.asConvertedExpr(), sizeSource, state2) and + hasSize(bufSource.asExpr(), sizeSource, state2) and validState(sizeSource, state2) } diff --git a/cpp/ql/src/Security/CWE/CWE-190/TaintedAllocationSize.ql b/cpp/ql/src/Security/CWE/CWE-190/TaintedAllocationSize.ql index 740e4ad9e8e..a10ee006c47 100644 --- a/cpp/ql/src/Security/CWE/CWE-190/TaintedAllocationSize.ql +++ b/cpp/ql/src/Security/CWE/CWE-190/TaintedAllocationSize.ql @@ -26,7 +26,7 @@ import TaintedAllocationSize::PathGraph * taint sink. */ predicate allocSink(HeuristicAllocationExpr alloc, DataFlow::Node sink) { - exists(Expr e | e = sink.asConvertedExpr() | + exists(Expr e | e = sink.asExpr() | e = alloc.getAChild() and e.getUnspecifiedType() instanceof IntegralType ) diff --git a/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql b/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql index fa0d2ffd82a..09db3f21602 100644 --- a/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql +++ b/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql @@ -206,25 +206,22 @@ class Encrypted extends Expr { * operation `nsr`. */ predicate isSinkSendRecv(DataFlow::Node sink, NetworkSendRecv nsr) { - [sink.asIndirectConvertedExpr(), sink.asConvertedExpr()] = nsr.getDataExpr().getFullyConverted() + [sink.asIndirectExpr(), sink.asExpr()] = nsr.getDataExpr() } /** * Holds if `sink` is a node that is encrypted by `enc`. */ -predicate isSinkEncrypt(DataFlow::Node sink, Encrypted enc) { - sink.asConvertedExpr() = enc.getFullyConverted() -} +predicate isSinkEncrypt(DataFlow::Node sink, Encrypted enc) { sink.asExpr() = enc } /** * Holds if `source` represents a use of a sensitive variable, or data returned by a * function returning sensitive data. */ predicate isSourceImpl(DataFlow::Node source) { - exists(Expr e | - e = source.asConvertedExpr() and - e.getUnconverted().(VariableAccess).getTarget() instanceof SourceVariable and - not e.hasConversion() + exists(VariableAccess e | + e = source.asExpr() and + e.getTarget() instanceof SourceVariable ) or source.asExpr().(FunctionCall).getTarget() instanceof SourceFunction diff --git a/cpp/ql/src/Security/CWE/CWE-497/SystemData.qll b/cpp/ql/src/Security/CWE/CWE-497/SystemData.qll index 0914bb4d790..9cc5515198b 100644 --- a/cpp/ql/src/Security/CWE/CWE-497/SystemData.qll +++ b/cpp/ql/src/Security/CWE/CWE-497/SystemData.qll @@ -34,7 +34,7 @@ class EnvData extends SystemData { .regexpMatch(".*(user|host|admin|root|home|path|http|ssl|snmp|sock|port|proxy|pass|token|crypt|key).*") } - override DataFlow::Node getAnExpr() { result.asIndirectConvertedExpr() = this } + override DataFlow::Node getAnExpr() { result.asIndirectExpr() = this } override predicate isSensitive() { this.(EnvironmentRead) @@ -50,7 +50,7 @@ class EnvData extends SystemData { class SqlClientInfo extends SystemData { SqlClientInfo() { this.(FunctionCall).getTarget().hasName("mysql_get_client_info") } - override DataFlow::Node getAnExpr() { result.asIndirectConvertedExpr() = this } + override DataFlow::Node getAnExpr() { result.asIndirectExpr() = this } override predicate isSensitive() { any() } } diff --git a/cpp/ql/src/Security/CWE/CWE-611/Xerces.qll b/cpp/ql/src/Security/CWE/CWE-611/Xerces.qll index f84cd6d48eb..91c8e1f9717 100644 --- a/cpp/ql/src/Security/CWE/CWE-611/Xerces.qll +++ b/cpp/ql/src/Security/CWE/CWE-611/Xerces.qll @@ -70,7 +70,7 @@ class XercesDomParserLibrary extends XmlLibrary { // sink is the read of the qualifier of a call to `AbstractDOMParser.parse`. exists(Call call | call.getTarget().getClassAndName("parse") instanceof AbstractDomParserClass and - call.getQualifier() = node.asIndirectConvertedExpr() + call.getQualifier() = node.asIndirectExpr() ) and flowstate instanceof XercesFlowState and not encodeXercesFlowState(flowstate, 1, 1) // safe configuration @@ -114,7 +114,7 @@ class CreateLSParserLibrary extends XmlLibrary { // sink is the read of the qualifier of a call to `DOMLSParserClass.parse`. exists(Call call | call.getTarget().getClassAndName("parse") instanceof DomLSParserClass and - call.getQualifier() = node.asIndirectConvertedExpr() + call.getQualifier() = node.asIndirectExpr() ) and flowstate instanceof XercesFlowState and not encodeXercesFlowState(flowstate, 1, 1) // safe configuration @@ -155,7 +155,7 @@ class SaxParserLibrary extends XmlLibrary { // sink is the read of the qualifier of a call to `SAXParser.parse`. exists(Call call | call.getTarget().getClassAndName("parse") instanceof SaxParserClass and - call.getQualifier() = node.asIndirectConvertedExpr() + call.getQualifier() = node.asIndirectExpr() ) and flowstate instanceof XercesFlowState and not encodeXercesFlowState(flowstate, 1, 1) // safe configuration @@ -192,7 +192,7 @@ class Sax2XmlReaderLibrary extends XmlLibrary { // sink is the read of the qualifier of a call to `SAX2XMLReader.parse`. exists(Call call | call.getTarget().getClassAndName("parse") instanceof Sax2XmlReader and - call.getQualifier() = node.asIndirectConvertedExpr() + call.getQualifier() = node.asIndirectExpr() ) and flowstate instanceof XercesFlowState and not encodeXercesFlowState(flowstate, 1, 1) // safe configuration diff --git a/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/tainted.expected b/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/tainted.expected index 7b3b22ee3e1..951a6d56aa3 100644 --- a/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/tainted.expected +++ b/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/tainted.expected @@ -1,6 +1,4 @@ WARNING: Module TaintedWithPath has been deprecated and may be removed in future (tainted.ql:9,8-47) WARNING: Predicate tainted has been deprecated and may be removed in future (tainted.ql:20,49-74) testFailures -| test_diff.cpp:100:10:100:14 | * ... | Unexpected result: ir-sink=98:17 | -| test_diff.cpp:102:26:102:30 | (const char *)... | Unexpected result: ir-path=98:17 | failures diff --git a/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/test_diff.cpp b/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/test_diff.cpp index 667eef4ac91..1d1d93c699d 100644 --- a/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/test_diff.cpp +++ b/cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/test_diff.cpp @@ -97,9 +97,9 @@ int main(int argc, char *argv[]) { char*** p = &argv; // $ ast,ir-path - sink(*p[0]); // $ ast ir-sink=96:26 ir-sink=98:18 + sink(*p[0]); // $ ast ir-sink=96:26 ir-sink=98:18 ir-sink=98:17 - calls_sink_with_argv(*p[i]); // $ ir-path=96:26 ir-path=98:18 MISSING:ast + calls_sink_with_argv(*p[i]); // $ ir-path=96:26 ir-path=98:18 ir-path=98:17 MISSING:ast sink(*(argv + 1)); // $ ast ir-path ir-sink diff --git a/cpp/ql/test/library-tests/dataflow/fields/flow.expected b/cpp/ql/test/library-tests/dataflow/fields/flow.expected index 12fe1f05e9d..8ec8033d086 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/flow.expected @@ -1,5 +1,2 @@ testFailures -| realistic.cpp:61:14:61:55 | bufferLen | Unexpected result: ir= | -| realistic.cpp:61:59:61:84 | // $ ast ir=53:47 ir=53:55 | Missing result:ir=53:47 | -| realistic.cpp:61:59:61:84 | // $ ast ir=53:47 ir=53:55 | Missing result:ir=53:55 | failures diff --git a/cpp/ql/test/library-tests/dataflow/fields/realistic.cpp b/cpp/ql/test/library-tests/dataflow/fields/realistic.cpp index a185382914f..e5015e7da5e 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/realistic.cpp +++ b/cpp/ql/test/library-tests/dataflow/fields/realistic.cpp @@ -58,7 +58,7 @@ int main(int argc, char** argv) { return -1; } memcpy(dst, foo.bar[i].baz->userInput.buffer, foo.bar[i].baz->userInput.bufferLen); - sink((void*)foo.bar[i].baz->userInput.bufferLen); // $ ast ir=53:47 ir=53:55 + sink((void*)foo.bar[i].baz->userInput.bufferLen); // $ ast ir // There is no flow to the following two `sink` calls because the // source is the _pointer_ returned by `user_input` rather than the // _data_ to which it points. diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/map.cpp b/cpp/ql/test/library-tests/dataflow/taint-tests/map.cpp index 404d6627b27..0390927d790 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/map.cpp +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/map.cpp @@ -165,9 +165,9 @@ void test_map() // array-like access std::map m10, m11, m12, m13; sink(m10["abc"] = "def"); - sink(m11["abc"] = source()); // $ ast,ir + sink(m11["abc"] = source()); // $ ast ir=168:7 ir=168:20 sink(m12.at("abc") = "def"); - sink(m13.at("abc") = source()); // $ ast,ir + sink(m13.at("abc") = source()); // $ ast ir=170:7 ir=170:23 sink(m10["abc"]); sink(m11["abc"]); // $ ast,ir sink(m12["abc"]); @@ -317,9 +317,9 @@ void test_unordered_map() // array-like access std::unordered_map m10, m11, m12, m13; sink(m10["abc"] = "def"); - sink(m11["abc"] = source()); // $ ast,ir + sink(m11["abc"] = source()); // $ ast ir=320:7 ir=320:20 sink(m12.at("abc") = "def"); - sink(m13.at("abc") = source()); // $ ast,ir + sink(m13.at("abc") = source()); // $ ast ir=322:7 ir=322:23 sink(m10["abc"]); sink(m11["abc"]); // $ ast,ir sink(m12["abc"]); diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.cpp b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.cpp index 2df0fc85bb6..fd34adbec46 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.cpp +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.cpp @@ -13,8 +13,8 @@ void arithAssignments(int source1, int clean1) { source1++; ++source1; source1 += 1; - sink(source1); // $ ast,ir - sink(++source1); // $ ast,ir + sink(source1); // $ ast ir=12:13 ir=12:22 + sink(++source1); // $ ast ir=12:13 ir=12:22 } // --- globals --- diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected index 38b0d6eda57..0065ae75d21 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected @@ -4,30 +4,4 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (taint WARNING: Module DataFlow has been deprecated and may be removed in future (taint.ql:68,25-33) WARNING: Module TaintTracking has been deprecated and may be removed in future (taint.ql:73,20-33) testFailures -| map.cpp:168:7:168:27 | ... = ... | Unexpected result: ir=168:7 | -| map.cpp:168:7:168:27 | ... = ... | Unexpected result: ir=168:20 | -| map.cpp:168:7:168:27 | ... = ... indirection | Unexpected result: ir=168:7 | -| map.cpp:168:7:168:27 | ... = ... indirection | Unexpected result: ir=168:20 | -| map.cpp:168:31:168:41 | // $ ast,ir | Missing result:ir= | -| map.cpp:170:7:170:30 | ... = ... | Unexpected result: ir=170:7 | -| map.cpp:170:7:170:30 | ... = ... | Unexpected result: ir=170:23 | -| map.cpp:170:7:170:30 | ... = ... indirection | Unexpected result: ir=170:7 | -| map.cpp:170:7:170:30 | ... = ... indirection | Unexpected result: ir=170:23 | -| map.cpp:170:34:170:44 | // $ ast,ir | Missing result:ir= | -| map.cpp:320:7:320:27 | ... = ... | Unexpected result: ir=320:7 | -| map.cpp:320:7:320:27 | ... = ... | Unexpected result: ir=320:20 | -| map.cpp:320:7:320:27 | ... = ... indirection | Unexpected result: ir=320:7 | -| map.cpp:320:7:320:27 | ... = ... indirection | Unexpected result: ir=320:20 | -| map.cpp:320:31:320:41 | // $ ast,ir | Missing result:ir= | -| map.cpp:322:7:322:30 | ... = ... | Unexpected result: ir=322:7 | -| map.cpp:322:7:322:30 | ... = ... | Unexpected result: ir=322:23 | -| map.cpp:322:7:322:30 | ... = ... indirection | Unexpected result: ir=322:7 | -| map.cpp:322:7:322:30 | ... = ... indirection | Unexpected result: ir=322:23 | -| map.cpp:322:34:322:44 | // $ ast,ir | Missing result:ir= | -| taint.cpp:16:8:16:14 | source1 | Unexpected result: ir=12:13 | -| taint.cpp:16:8:16:14 | source1 | Unexpected result: ir=12:22 | -| taint.cpp:16:18:16:28 | // $ ast,ir | Missing result:ir= | -| taint.cpp:17:8:17:16 | ++ ... | Unexpected result: ir=12:13 | -| taint.cpp:17:8:17:16 | ++ ... | Unexpected result: ir=12:22 | -| taint.cpp:17:20:17:30 | // $ ast,ir | Missing result:ir= | failures From 2a2f21d3a9962f5d7dd0b4609fbbef989c97ebc5 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Tue, 22 Aug 2023 16:49:57 +0100 Subject: [PATCH 152/788] Ruby: configsig rb/clear-text-logging-sensitive-data --- .../ruby/security/CleartextLoggingQuery.qll | 32 +++++++++++++++---- .../security/cwe-312/CleartextLogging.ql | 7 ++-- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/CleartextLoggingQuery.qll b/ruby/ql/lib/codeql/ruby/security/CleartextLoggingQuery.qll index 109ce5c0f6e..3556401887e 100644 --- a/ruby/ql/lib/codeql/ruby/security/CleartextLoggingQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/CleartextLoggingQuery.qll @@ -2,7 +2,7 @@ * Provides a taint-tracking configuration for "Clear-text logging of sensitive information". * * Note, for performance reasons: only import this file if - * `CleartextLogging::Configuration` is needed, otherwise + * `CleartextLoggingFlow` is needed, otherwise * `CleartextLoggingCustomizations` should be imported instead. */ @@ -10,25 +10,43 @@ private import codeql.ruby.AST private import codeql.ruby.DataFlow private import codeql.ruby.TaintTracking import CleartextLoggingCustomizations::CleartextLogging -private import CleartextLoggingCustomizations::CleartextLogging as CleartextLogging +private import CleartextLoggingCustomizations::CleartextLogging as CL /** * A taint-tracking configuration for detecting "Clear-text logging of sensitive information". + * DEPRECATED: Use `CleartextLoggingFlow` instead */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "CleartextLogging" } - override predicate isSource(DataFlow::Node source) { source instanceof CleartextLogging::Source } + override predicate isSource(DataFlow::Node source) { source instanceof CL::Source } - override predicate isSink(DataFlow::Node sink) { sink instanceof CleartextLogging::Sink } + override predicate isSink(DataFlow::Node sink) { sink instanceof CL::Sink } override predicate isSanitizer(DataFlow::Node node) { super.isSanitizer(node) or - node instanceof CleartextLogging::Sanitizer + node instanceof CL::Sanitizer } override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { - CleartextLogging::isAdditionalTaintStep(nodeFrom, nodeTo) + CL::isAdditionalTaintStep(nodeFrom, nodeTo) } } + +private module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof CL::Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof CL::Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof CL::Sanitizer } + + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + CL::isAdditionalTaintStep(nodeFrom, nodeTo) + } +} + +/** + * Taint-tracking for detecting "Clear-text logging of sensitive information". + */ +module CleartextLoggingFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-312/CleartextLogging.ql b/ruby/ql/src/queries/security/cwe-312/CleartextLogging.ql index 86ce595c1c5..3e4c94496ac 100644 --- a/ruby/ql/src/queries/security/cwe-312/CleartextLogging.ql +++ b/ruby/ql/src/queries/security/cwe-312/CleartextLogging.ql @@ -15,10 +15,9 @@ import codeql.ruby.AST import codeql.ruby.security.CleartextLoggingQuery -import codeql.ruby.DataFlow -import DataFlow::PathGraph +import CleartextLoggingFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from CleartextLoggingFlow::PathNode source, CleartextLoggingFlow::PathNode sink +where CleartextLoggingFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This logs sensitive data returned by $@ as clear text.", source.getNode(), source.getNode().(Source).describe() From 6fa267a820f755059e8ac6083180255f33e3fd04 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Wed, 23 Aug 2023 15:08:34 +0100 Subject: [PATCH 153/788] Ruby: configsig rb/clear-text-storage-sensitive-data --- .../ruby/security/CleartextStorageQuery.qll | 34 ++++++++++++++----- .../security/cwe-312/CleartextStorage.ql | 7 ++-- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/CleartextStorageQuery.qll b/ruby/ql/lib/codeql/ruby/security/CleartextStorageQuery.qll index 9dc4e5bd0a5..141b54c8c3a 100644 --- a/ruby/ql/lib/codeql/ruby/security/CleartextStorageQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/CleartextStorageQuery.qll @@ -2,32 +2,50 @@ * Provides a taint-tracking configuration for "Clear-text storage of sensitive information". * * Note, for performance reasons: only import this file if - * `Configuration` is needed, otherwise `CleartextStorageCustomizations` should be - * imported instead. + * `CleartextStorageFlow` is needed, otherwise + * `CleartextStorageCustomizations` should be imported instead. */ private import codeql.ruby.AST private import codeql.ruby.DataFlow private import codeql.ruby.TaintTracking -private import CleartextStorageCustomizations::CleartextStorage as CleartextStorage +private import CleartextStorageCustomizations::CleartextStorage as CS /** * A taint-tracking configuration for detecting "Clear-text storage of sensitive information". + * DEPRECATED: Use `CleartextStorageFlow` instead */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "CleartextStorage" } - override predicate isSource(DataFlow::Node source) { source instanceof CleartextStorage::Source } + override predicate isSource(DataFlow::Node source) { source instanceof CS::Source } - override predicate isSink(DataFlow::Node sink) { sink instanceof CleartextStorage::Sink } + override predicate isSink(DataFlow::Node sink) { sink instanceof CS::Sink } override predicate isSanitizer(DataFlow::Node node) { super.isSanitizer(node) or - node instanceof CleartextStorage::Sanitizer + node instanceof CS::Sanitizer } override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { - CleartextStorage::isAdditionalTaintStep(nodeFrom, nodeTo) + CS::isAdditionalTaintStep(nodeFrom, nodeTo) } } + +private module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof CS::Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof CS::Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof CS::Sanitizer } + + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + CS::isAdditionalTaintStep(nodeFrom, nodeTo) + } +} + +/** + * Taint-tracking for detecting "Clear-text storage of sensitive information". + */ +module CleartextStorageFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-312/CleartextStorage.ql b/ruby/ql/src/queries/security/cwe-312/CleartextStorage.ql index 8558ea73dc0..77fcf494582 100644 --- a/ruby/ql/src/queries/security/cwe-312/CleartextStorage.ql +++ b/ruby/ql/src/queries/security/cwe-312/CleartextStorage.ql @@ -16,10 +16,9 @@ import codeql.ruby.AST import codeql.ruby.security.CleartextStorageQuery import codeql.ruby.security.CleartextStorageCustomizations::CleartextStorage -import codeql.ruby.DataFlow -import DataFlow::PathGraph +import CleartextStorageFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from CleartextStorageFlow::PathNode source, CleartextStorageFlow::PathNode sink +where CleartextStorageFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This stores sensitive data returned by $@ as clear text.", source.getNode(), source.getNode().(Source).describe() From b1a49ddb0dc7c3cff3a1850553d3069e98b9416b Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Wed, 23 Aug 2023 15:33:48 +0100 Subject: [PATCH 154/788] Ruby: configsig rb/code-injection --- .../ruby/security/CodeInjectionQuery.qll | 35 +++++++++++++++++-- .../queries/security/cwe-094/CodeInjection.ql | 15 ++++---- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll index d8a6b8c41b7..1ccae57c070 100644 --- a/ruby/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll @@ -1,8 +1,9 @@ /** * Provides a taint-tracking configuration for detecting "Code injection" vulnerabilities. * - * Note, for performance reasons: only import this file if `Configuration` is needed, - * otherwise `CodeInjectionCustomizations` should be imported instead. + * Note, for performance reasons: only import this file if + * `CodeInjectionFlow` is needed, otherwise + * `CodeInjectionCustomizations` should be imported instead. */ import codeql.ruby.DataFlow @@ -12,8 +13,9 @@ import codeql.ruby.dataflow.BarrierGuards /** * A taint-tracking configuration for detecting "Code injection" vulnerabilities. + * DEPRECATED: Use `CodeInjectionFlow` instead */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "CodeInjection" } override predicate isSource(DataFlow::Node source, DataFlow::FlowState state) { @@ -40,3 +42,30 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module Config implements DataFlow::StateConfigSig { + class FlowState = DataFlow::FlowState; + + predicate isSource(DataFlow::Node source, FlowState state) { + state = source.(Source).getAFlowState() + } + + predicate isSink(DataFlow::Node sink, FlowState state) { state = sink.(Sink).getAFlowState() } + + predicate isBarrier(DataFlow::Node node) { + node instanceof Sanitizer and not exists(node.(Sanitizer).getAFlowState()) + or + node instanceof StringConstCompareBarrier + or + node instanceof StringConstArrayInclusionCallBarrier + } + + predicate isBarrier(DataFlow::Node node, DataFlow::FlowState state) { + node.(Sanitizer).getAFlowState() = state + } +} + +/** + * Taint-tracking for detecting "Code injection" vulnerabilities. + */ +module CodeInjectionFlow = TaintTracking::GlobalWithState; diff --git a/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql b/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql index e74f68c1a8b..ecb405c60fd 100644 --- a/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql +++ b/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql @@ -14,18 +14,19 @@ * external/cwe/cwe-116 */ -import codeql.ruby.AST -import codeql.ruby.security.CodeInjectionQuery -import DataFlow::PathGraph +private import codeql.ruby.AST +private import codeql.ruby.security.CodeInjectionQuery +private import CodeInjectionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, Source sourceNode +from CodeInjectionFlow::PathNode source, CodeInjectionFlow::PathNode sink, Source sourceNode where - config.hasFlowPath(source, sink) and + CodeInjectionFlow::flowPath(source, sink) and sourceNode = source.getNode() and // removing duplications of the same path, but different flow-labels. sink = - min(DataFlow::PathNode otherSink | - config.hasFlowPath(any(DataFlow::PathNode s | s.getNode() = sourceNode), otherSink) and + min(CodeInjectionFlow::PathNode otherSink | + CodeInjectionFlow::flowPath(any(CodeInjectionFlow::PathNode s | s.getNode() = sourceNode), + otherSink) and otherSink.getNode() = sink.getNode() | otherSink order by otherSink.getState() From 377570f36100158d6c52bdfad631eff9d83240c4 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 24 Aug 2023 12:16:31 +0100 Subject: [PATCH 155/788] Ruby: configsig rb/command-line-injection --- .../ruby/security/CommandInjectionQuery.qll | 22 +++++++++++++++++-- .../security/cwe-078/CommandInjection.ql | 6 ++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/CommandInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/CommandInjectionQuery.qll index ed2c133336f..4111d6c5d4a 100644 --- a/ruby/ql/lib/codeql/ruby/security/CommandInjectionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/CommandInjectionQuery.qll @@ -3,7 +3,7 @@ * command-injection vulnerabilities (CWE-078). * * Note, for performance reasons: only import this file if - * `CommandInjection::Configuration` is needed, otherwise + * `CommandInjectionFlow` is needed, otherwise * `CommandInjectionCustomizations` should be imported instead. */ @@ -15,8 +15,9 @@ import codeql.ruby.dataflow.BarrierGuards /** * A taint-tracking configuration for reasoning about command-injection vulnerabilities. + * DEPRECATED: Use `CommandInjectionFlow` instead */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "CommandInjection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -29,3 +30,20 @@ class Configuration extends TaintTracking::Configuration { node instanceof StringConstArrayInclusionCallBarrier } } + +private module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { + node instanceof Sanitizer or + node instanceof StringConstCompareBarrier or + node instanceof StringConstArrayInclusionCallBarrier + } +} + +/** + * Taint-tracking for reasoning about command-injection vulnerabilities. + */ +module CommandInjectionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-078/CommandInjection.ql b/ruby/ql/src/queries/security/cwe-078/CommandInjection.ql index e6fadb4a34f..ce1aad00b35 100644 --- a/ruby/ql/src/queries/security/cwe-078/CommandInjection.ql +++ b/ruby/ql/src/queries/security/cwe-078/CommandInjection.ql @@ -15,11 +15,11 @@ import codeql.ruby.AST import codeql.ruby.security.CommandInjectionQuery -import DataFlow::PathGraph +import CommandInjectionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, Source sourceNode +from CommandInjectionFlow::PathNode source, CommandInjectionFlow::PathNode sink, Source sourceNode where - config.hasFlowPath(source, sink) and + CommandInjectionFlow::flowPath(source, sink) and sourceNode = source.getNode() select sink.getNode(), source, sink, "This command depends on a $@.", sourceNode, sourceNode.getSourceType() From 2536f1a0cd816eb652b36ab4f9a67ab9a80a6355 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 24 Aug 2023 12:21:11 +0100 Subject: [PATCH 156/788] Ruby: configsig rb/user-controlled-bypass --- .../ruby/security/ConditionalBypassQuery.qll | 18 ++++++++++++++++-- .../experimental/cwe-807/ConditionalBypass.ql | 11 +++++++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/ConditionalBypassQuery.qll b/ruby/ql/lib/codeql/ruby/security/ConditionalBypassQuery.qll index ad71c27e058..2c4d3ede0f5 100644 --- a/ruby/ql/lib/codeql/ruby/security/ConditionalBypassQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/ConditionalBypassQuery.qll @@ -2,7 +2,7 @@ * Provides a taint tracking configuration for reasoning about bypass of sensitive action guards. * * Note, for performance reasons: only import this file if - * `ConditionalBypass::Configuration` is needed, otherwise + * `ConditionalBypassFlow` is needed, otherwise * `ConditionalBypassCustomizations` should be imported instead. */ @@ -13,8 +13,9 @@ import ConditionalBypassCustomizations::ConditionalBypass /** * A taint tracking configuration for bypass of sensitive action guards. + * DEPRECATED: Use `ConditionalBypassFlow` instead */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "ConditionalBypass" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -26,3 +27,16 @@ class Configuration extends TaintTracking::Configuration { node instanceof Sanitizer } } + +private module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for bypass of sensitive action guards. + */ +module ConditionalBypassFlow = TaintTracking::Global; diff --git a/ruby/ql/src/experimental/cwe-807/ConditionalBypass.ql b/ruby/ql/src/experimental/cwe-807/ConditionalBypass.ql index 96f5dc91a8c..12f9fb0a011 100644 --- a/ruby/ql/src/experimental/cwe-807/ConditionalBypass.ql +++ b/ruby/ql/src/experimental/cwe-807/ConditionalBypass.ql @@ -17,7 +17,7 @@ import codeql.ruby.DataFlow import codeql.ruby.dataflow.internal.DataFlowPublic import codeql.ruby.security.ConditionalBypassQuery import codeql.ruby.security.SensitiveActions -import DataFlow::PathGraph +import ConditionalBypassFlow::PathGraph /** * Holds if the value of `nd` flows into `guard`. @@ -69,15 +69,18 @@ class SensitiveActionGuardComparisonOperand extends Sink { * control if `action` should be executed or not. */ predicate isTaintedGuardForSensitiveAction( - DataFlow::PathNode sink, DataFlow::PathNode source, SensitiveAction action + ConditionalBypassFlow::PathNode sink, ConditionalBypassFlow::PathNode source, + SensitiveAction action ) { action = sink.getNode().(Sink).getAction() and // exclude the intermediary sink not sink.getNode() instanceof SensitiveActionGuardComparisonOperand and - exists(Configuration cfg | cfg.hasFlowPath(source, sink)) + ConditionalBypassFlow::flowPath(source, sink) } -from DataFlow::PathNode source, DataFlow::PathNode sink, SensitiveAction action +from + ConditionalBypassFlow::PathNode source, ConditionalBypassFlow::PathNode sink, + SensitiveAction action where isTaintedGuardForSensitiveAction(sink, source, action) select sink.getNode(), source, sink, "This condition guards a sensitive $@, but a $@ controls it.", action, "action", source.getNode(), "user-provided value" From c973fc1274827baa6adc3faed145a8e9b89bc56c Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 31 Aug 2023 16:30:22 +0100 Subject: [PATCH 157/788] Ruby: configsig rb/http-to-file-access --- .../ruby/security/HttpToFileAccessQuery.qll | 19 +++++++++++++++++-- .../security/cwe-912/HttpToFileAccess.ql | 7 +++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/HttpToFileAccessQuery.qll b/ruby/ql/lib/codeql/ruby/security/HttpToFileAccessQuery.qll index 992b0cd1e8d..3a45d790efe 100644 --- a/ruby/ql/lib/codeql/ruby/security/HttpToFileAccessQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/HttpToFileAccessQuery.qll @@ -2,7 +2,7 @@ * Provides a taint tracking configuration for reasoning about writing user-controlled data to files. * * Note, for performance reasons: only import this file if - * `HttpToFileAccess::Configuration` is needed, otherwise + * `HttpToFileAccessFlow` is needed, otherwise * `HttpToFileAccessCustomizations` should be imported instead. */ @@ -10,8 +10,10 @@ private import HttpToFileAccessCustomizations::HttpToFileAccess /** * A taint tracking configuration for writing user-controlled data to files. + * + * DEPRECATED: Use `HttpToFileAccessFlow` instead */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "HttpToFileAccess" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -23,3 +25,16 @@ class Configuration extends TaintTracking::Configuration { node instanceof Sanitizer } } + +private module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for writing user-controlled data to files. + */ +module HttpToFileAccessFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-912/HttpToFileAccess.ql b/ruby/ql/src/queries/security/cwe-912/HttpToFileAccess.ql index 10a892f8b0f..92e288bc6fe 100644 --- a/ruby/ql/src/queries/security/cwe-912/HttpToFileAccess.ql +++ b/ruby/ql/src/queries/security/cwe-912/HttpToFileAccess.ql @@ -12,11 +12,10 @@ */ import codeql.ruby.AST -import codeql.ruby.DataFlow -import codeql.ruby.DataFlow::DataFlow::PathGraph import codeql.ruby.security.HttpToFileAccessQuery +import HttpToFileAccessFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink -where cfg.hasFlowPath(source, sink) +from HttpToFileAccessFlow::PathNode source, HttpToFileAccessFlow::PathNode sink +where HttpToFileAccessFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Write to file system depends on $@.", source.getNode(), "untrusted data" From a8ad0d8ff5ad1d1bd4e7840732eb75eeff21d419 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 31 Aug 2023 16:36:55 +0100 Subject: [PATCH 158/788] Ruby: renames for rb/insecure-download --- .../ruby/security/InsecureDownloadQuery.qll | 20 +++++++++++++------ .../security/cwe-829/InsecureDownload.ql | 8 +++----- .../security/cwe-829/InsecureDownload.ql | 10 ++++------ 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/InsecureDownloadQuery.qll b/ruby/ql/lib/codeql/ruby/security/InsecureDownloadQuery.qll index 128babcebcc..db869500885 100644 --- a/ruby/ql/lib/codeql/ruby/security/InsecureDownloadQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/InsecureDownloadQuery.qll @@ -2,7 +2,7 @@ * Provides a dataflow configuration for reasoning about the download of sensitive file through insecure connection. * * Note, for performance reasons: only import this file if - * `InsecureDownload::Configuration` is needed, otherwise + * `InsecureDownloadFlow` is needed, otherwise * `InsecureDownloadCustomizations` should be imported instead. */ @@ -12,6 +12,8 @@ import InsecureDownloadCustomizations::InsecureDownload /** * A taint tracking configuration for download of sensitive file through insecure connection. + * + * DEPRECATED: Use `InsecureDownloadFlow`. */ deprecated class Configuration extends DataFlow::Configuration { Configuration() { this = "InsecureDownload" } @@ -30,10 +32,7 @@ deprecated class Configuration extends DataFlow::Configuration { } } -/** - * A taint tracking configuration for download of sensitive file through insecure connection. - */ -module Config implements DataFlow::StateConfigSig { +private module InsecureDownloadConfig implements DataFlow::StateConfigSig { class FlowState = string; predicate isSource(DataFlow::Node source, DataFlow::FlowState label) { @@ -47,4 +46,13 @@ module Config implements DataFlow::StateConfigSig { predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } } -module Flow = DataFlow::GlobalWithState; +/** + * Taint-tracking for download of sensitive file through insecure connection. + */ +module InsecureDownloadFlow = DataFlow::GlobalWithState; + +/** DEPRECATED: Use `InsecureDownloadConfig` */ +deprecated module Config = InsecureDownloadConfig; + +/** DEPRECATED: Use `InsecureDownloadFlow` */ +deprecated module Flow = InsecureDownloadFlow; diff --git a/ruby/ql/src/queries/security/cwe-829/InsecureDownload.ql b/ruby/ql/src/queries/security/cwe-829/InsecureDownload.ql index cdd494134a5..a47f0db9f27 100644 --- a/ruby/ql/src/queries/security/cwe-829/InsecureDownload.ql +++ b/ruby/ql/src/queries/security/cwe-829/InsecureDownload.ql @@ -11,12 +11,10 @@ * external/cwe/cwe-829 */ -import codeql.ruby.AST -import codeql.ruby.DataFlow import codeql.ruby.security.InsecureDownloadQuery -import Flow::PathGraph +import InsecureDownloadFlow::PathGraph -from Flow::PathNode source, Flow::PathNode sink -where Flow::flowPath(source, sink) +from InsecureDownloadFlow::PathNode source, InsecureDownloadFlow::PathNode sink +where InsecureDownloadFlow::flowPath(source, sink) select sink.getNode(), source, sink, "$@ of sensitive file from $@.", sink.getNode().(Sink).getDownloadCall(), "Download", source.getNode(), "HTTP source" diff --git a/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.ql b/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.ql index ab9ce62a21c..4e1550bd952 100644 --- a/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.ql +++ b/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.ql @@ -1,7 +1,5 @@ -import codeql.ruby.AST -import codeql.ruby.DataFlow import codeql.ruby.security.InsecureDownloadQuery -import Flow::PathGraph +import InsecureDownloadFlow::PathGraph import TestUtilities.InlineExpectationsTest import TestUtilities.InlineFlowTestUtil @@ -10,7 +8,7 @@ module FlowTest implements TestSig { predicate hasActualResult(Location location, string element, string tag, string value) { tag = "BAD" and - exists(DataFlow::Node src, DataFlow::Node sink | Flow::flow(src, sink) | + exists(DataFlow::Node src, DataFlow::Node sink | InsecureDownloadFlow::flow(src, sink) | sink.getLocation() = location and element = sink.toString() and if exists(getSourceArgString(src)) then value = getSourceArgString(src) else value = "" @@ -20,6 +18,6 @@ module FlowTest implements TestSig { import MakeTest -from Flow::PathNode source, Flow::PathNode sink -where Flow::flowPath(source, sink) +from InsecureDownloadFlow::PathNode source, InsecureDownloadFlow::PathNode sink +where InsecureDownloadFlow::flowPath(source, sink) select sink, source, sink, "$@", source, source.toString() From d46eceb5f4c62183f3df2942d20428e92fa455c2 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 12:31:04 +0100 Subject: [PATCH 159/788] Ruby: configsig rb/kernel-open --- .../codeql/ruby/security/KernelOpenQuery.qll | 21 ++++++++++++++- .../queries/security/cwe-078/KernelOpen.ql | 27 +++---------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/KernelOpenQuery.qll b/ruby/ql/lib/codeql/ruby/security/KernelOpenQuery.qll index 3653fb23cee..14e9a7e31a7 100644 --- a/ruby/ql/lib/codeql/ruby/security/KernelOpenQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/KernelOpenQuery.qll @@ -4,10 +4,12 @@ private import codeql.ruby.AST private import codeql.ruby.DataFlow -private import codeql.ruby.AST private import codeql.ruby.ApiGraphs +private import codeql.ruby.dataflow.BarrierGuards +private import codeql.ruby.dataflow.RemoteFlowSources private import codeql.ruby.frameworks.core.Kernel::Kernel private import codeql.ruby.frameworks.Files +private import codeql.ruby.TaintTracking /** A call to a method that might access a file or start a process. */ class AmbiguousPathCall extends DataFlow::CallNode { @@ -72,3 +74,20 @@ abstract class Sanitizer extends DataFlow::Node { } private class FileJoinSanitizer extends Sanitizer { FileJoinSanitizer() { this = any(File::FileJoinSummary s).getParameter("1..") } } + +private module KernelOpenConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } + + predicate isSink(DataFlow::Node sink) { sink = any(AmbiguousPathCall r).getPathArgument() } + + predicate isBarrier(DataFlow::Node node) { + node instanceof StringConstCompareBarrier or + node instanceof StringConstArrayInclusionCallBarrier or + node instanceof Sanitizer + } +} + +/** + * Taint-tracking for detecting insecure uses of `Kernel.open` and similar sinks. + */ +module KernelOpenFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-078/KernelOpen.ql b/ruby/ql/src/queries/security/cwe-078/KernelOpen.ql index b88d42fb609..03be0e56063 100644 --- a/ruby/ql/src/queries/security/cwe-078/KernelOpen.ql +++ b/ruby/ql/src/queries/security/cwe-078/KernelOpen.ql @@ -16,33 +16,14 @@ */ import codeql.ruby.DataFlow -import codeql.ruby.TaintTracking -import codeql.ruby.dataflow.RemoteFlowSources -import codeql.ruby.dataflow.BarrierGuards -import DataFlow::PathGraph import codeql.ruby.security.KernelOpenQuery - -class Configuration extends TaintTracking::Configuration { - Configuration() { this = "KernelOpen" } - - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - override predicate isSink(DataFlow::Node sink) { - sink = any(AmbiguousPathCall r).getPathArgument() - } - - override predicate isSanitizer(DataFlow::Node node) { - node instanceof StringConstCompareBarrier or - node instanceof StringConstArrayInclusionCallBarrier or - node instanceof Sanitizer - } -} +import KernelOpenFlow::PathGraph from - Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, - DataFlow::Node sourceNode, DataFlow::CallNode call + KernelOpenFlow::PathNode source, KernelOpenFlow::PathNode sink, DataFlow::Node sourceNode, + DataFlow::CallNode call where - config.hasFlowPath(source, sink) and + KernelOpenFlow::flowPath(source, sink) and sourceNode = source.getNode() and call.getArgument(0) = sink.getNode() select sink.getNode(), source, sink, From eb34bbbfd222146e54f5b13f8b5158a7483dbed3 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 12:36:16 +0100 Subject: [PATCH 160/788] Ruby: renames for rb/ldap-injection --- .../ruby/security/LdapInjectionQuery.qll | 43 +++++++++++-------- .../ldap-injection/LdapInjection.ql | 6 +-- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/LdapInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/LdapInjectionQuery.qll index 60fdc6b2db4..73dcac76b99 100644 --- a/ruby/ql/lib/codeql/ruby/security/LdapInjectionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/LdapInjectionQuery.qll @@ -5,25 +5,30 @@ private import codeql.ruby.DataFlow private import codeql.ruby.TaintTracking +private import LdapInjectionCustomizations::LdapInjection as LI -/** Provides a taint-tracking configuration for detecting LDAP Injections vulnerabilities. */ -module LdapInjection { +/** + * Provides a taint-tracking configuration for detecting LDAP Injections vulnerabilities. + * DEPRECATED: Use `LdapInjectionFlow` instead + */ +deprecated module LdapInjection { import LdapInjectionCustomizations::LdapInjection - - /** - * A taint-tracking configuration for detecting LDAP Injections vulnerabilities. - */ - private module Config implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source instanceof Source } - - predicate isSink(DataFlow::Node sink) { sink instanceof Sink } - - predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - LdapInjection::isAdditionalFlowStep(node1, node2) - } - } - - import TaintTracking::Global + import TaintTracking::Global } + +private module LdapInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof LI::Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof LI::Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof LI::Sanitizer } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + LI::isAdditionalFlowStep(node1, node2) + } +} + +/** + * Taint-tracking for detecting LDAP Injections vulnerabilities. + */ +module LdapInjectionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/experimental/ldap-injection/LdapInjection.ql b/ruby/ql/src/experimental/ldap-injection/LdapInjection.ql index c12710128b5..59d9e017069 100644 --- a/ruby/ql/src/experimental/ldap-injection/LdapInjection.ql +++ b/ruby/ql/src/experimental/ldap-injection/LdapInjection.ql @@ -13,9 +13,9 @@ import codeql.ruby.DataFlow import codeql.ruby.security.LdapInjectionQuery -import LdapInjection::PathGraph +import LdapInjectionFlow::PathGraph -from LdapInjection::PathNode source, LdapInjection::PathNode sink -where LdapInjection::flowPath(source, sink) +from LdapInjectionFlow::PathNode source, LdapInjectionFlow::PathNode sink +where LdapInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This LDAP query depends on a $@.", source.getNode(), "user-provided value" From 867e47bcdd47023bb2f36e9aeb43b56ef0b70a20 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 12:40:27 +0100 Subject: [PATCH 161/788] Ruby: renames for rb/log-injection --- .../codeql/ruby/security/LogInjectionQuery.qll | 16 +++++++++++++++- .../src/queries/security/cwe-117/LogInjection.ql | 6 +++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/LogInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/LogInjectionQuery.qll index 9c67132565a..8a2bcd461de 100644 --- a/ruby/ql/lib/codeql/ruby/security/LogInjectionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/LogInjectionQuery.qll @@ -26,8 +26,9 @@ abstract class Sanitizer extends DataFlow::Node { } /** * A taint-tracking configuration for untrusted user input used in log entries. + * DEPRECATED: Use `LogInjectionFlow` */ -class LogInjectionConfiguration extends TaintTracking::Configuration { +deprecated class LogInjectionConfiguration extends TaintTracking::Configuration { LogInjectionConfiguration() { this = "LogInjection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -74,3 +75,16 @@ class InspectSanitizer extends Sanitizer { class HtmlEscapingAsSanitizer extends Sanitizer { HtmlEscapingAsSanitizer() { this = any(HtmlEscaping esc).getOutput() } } + +private module LogInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for untrusted user input used in log entries. + */ +module LogInjectionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-117/LogInjection.ql b/ruby/ql/src/queries/security/cwe-117/LogInjection.ql index 9149274dc67..624c2f90e64 100644 --- a/ruby/ql/src/queries/security/cwe-117/LogInjection.ql +++ b/ruby/ql/src/queries/security/cwe-117/LogInjection.ql @@ -12,10 +12,10 @@ */ import codeql.ruby.AST -import DataFlow::PathGraph import codeql.ruby.security.LogInjectionQuery +import LogInjectionFlow::PathGraph -from LogInjectionConfiguration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from LogInjectionFlow::PathNode source, LogInjectionFlow::PathNode sink +where LogInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Log entry depends on a $@.", source.getNode(), "user-provided value" From ad2bbfb2652a1fbbde7722fdd05c32426b694c2d Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 13:53:17 +0100 Subject: [PATCH 162/788] Ruby: configsig rb/path-injection --- .../ruby/security/PathInjectionQuery.qll | 20 +++++++++++++++++-- .../queries/security/cwe-022/PathInjection.ql | 6 +++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/PathInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/PathInjectionQuery.qll index cf54d316aa4..3db3ee63386 100644 --- a/ruby/ql/lib/codeql/ruby/security/PathInjectionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/PathInjectionQuery.qll @@ -3,7 +3,7 @@ * path injection vulnerabilities. * * Note, for performance reasons: only import this file if - * `PathInjection::Configuration` is needed, otherwise + * `PathInjectionFlow` is needed, otherwise * `PathInjectionCustomizations` should be imported instead. */ @@ -15,8 +15,9 @@ private import codeql.ruby.TaintTracking /** * A taint-tracking configuration for reasoning about path injection * vulnerabilities. + * DEPRECATED: Use `PathInjectionFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "PathInjection" } override predicate isSource(DataFlow::Node source) { source instanceof PathInjection::Source } @@ -31,3 +32,18 @@ class Configuration extends TaintTracking::Configuration { guard instanceof PathInjection::SanitizerGuard } } + +private module PathInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof PathInjection::Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof PathInjection::Sink } + + predicate isBarrier(DataFlow::Node node) { + node instanceof Path::PathSanitization or node instanceof PathInjection::Sanitizer + } +} + +/** + * Taint-tracking for detecting path injection vulnerabilities. + */ +module PathInjectionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-022/PathInjection.ql b/ruby/ql/src/queries/security/cwe-022/PathInjection.ql index 09e17a5ed01..a3daabb1831 100644 --- a/ruby/ql/src/queries/security/cwe-022/PathInjection.ql +++ b/ruby/ql/src/queries/security/cwe-022/PathInjection.ql @@ -17,9 +17,9 @@ import ruby import codeql.ruby.security.PathInjectionQuery -import DataFlow::PathGraph +import PathInjectionFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink -where cfg.hasFlowPath(source, sink) +from PathInjectionFlow::PathNode source, PathInjectionFlow::PathNode sink +where PathInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This path depends on a $@.", source.getNode(), "user-provided value" From 593d9a48d4e5bdc27ddbf5359ee475e6b8915d1b Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 15:46:41 +0100 Subject: [PATCH 163/788] Ruby: configsig rb/reflected-xss --- .../ruby/security/ReflectedXSSQuery.qll | 29 ++++++++++++++++--- .../queries/security/cwe-079/ReflectedXSS.ql | 6 ++-- .../security/cwe-079/ReflectedXSS.expected | 2 +- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/ReflectedXSSQuery.qll b/ruby/ql/lib/codeql/ruby/security/ReflectedXSSQuery.qll index 02b0c4b36f9..c94cc1f5bad 100644 --- a/ruby/ql/lib/codeql/ruby/security/ReflectedXSSQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/ReflectedXSSQuery.qll @@ -2,8 +2,8 @@ * Provides a taint-tracking configuration for detecting "reflected server-side cross-site scripting" vulnerabilities. * * Note, for performance reasons: only import this file if - * `ReflectedXSS::Configuration` is needed, otherwise - * `XSS::ReflectedXSS` should be imported instead. + * `ReflectedXssFlow` is needed, otherwise + * `XSS::ReflectedXss` should be imported instead. */ private import codeql.ruby.AST @@ -12,14 +12,16 @@ import codeql.ruby.TaintTracking /** * Provides a taint-tracking configuration for detecting "reflected server-side cross-site scripting" vulnerabilities. + * DEPRECATED: Use `ReflectedXssFlow` */ -module ReflectedXss { +deprecated module ReflectedXss { import XSS::ReflectedXss /** * A taint-tracking configuration for detecting "reflected server-side cross-site scripting" vulnerabilities. + * DEPRECATED: Use `ReflectedXssFlow` */ - class Configuration extends TaintTracking::Configuration { + deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "ReflectedXSS" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -37,3 +39,22 @@ module ReflectedXss { } } } + +private module ReflectedXssConfig implements DataFlow::ConfigSig { + private import XSS::ReflectedXss as RX + + predicate isSource(DataFlow::Node source) { source instanceof RX::Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof RX::Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof RX::Sanitizer } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + RX::isAdditionalXssTaintStep(node1, node2) + } +} + +/** + * Taint-tracking for detecting "reflected server-side cross-site scripting" vulnerabilities. + */ +module ReflectedXssFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-079/ReflectedXSS.ql b/ruby/ql/src/queries/security/cwe-079/ReflectedXSS.ql index e53db947e38..8cc60618cc5 100644 --- a/ruby/ql/src/queries/security/cwe-079/ReflectedXSS.ql +++ b/ruby/ql/src/queries/security/cwe-079/ReflectedXSS.ql @@ -15,9 +15,9 @@ import codeql.ruby.AST import codeql.ruby.security.ReflectedXSSQuery -import DataFlow::PathGraph +import ReflectedXssFlow::PathGraph -from ReflectedXss::Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from ReflectedXssFlow::PathNode source, ReflectedXssFlow::PathNode sink +where ReflectedXssFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Cross-site scripting vulnerability due to a $@.", source.getNode(), "user-provided value" diff --git a/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected b/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected index 91c5c442a5e..290ae4feec1 100644 --- a/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected +++ b/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected @@ -9,9 +9,9 @@ edges | app/controllers/foo/bars_controller.rb:17:21:17:26 | call to params | app/controllers/foo/bars_controller.rb:17:21:17:36 | ...[...] | | app/controllers/foo/bars_controller.rb:17:21:17:36 | ...[...] | app/views/foo/bars/show.html.erb:2:18:2:30 | @user_website | | app/controllers/foo/bars_controller.rb:18:5:18:6 | dt | app/controllers/foo/bars_controller.rb:19:22:19:23 | dt | -| app/controllers/foo/bars_controller.rb:18:5:18:6 | dt | app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | | app/controllers/foo/bars_controller.rb:18:10:18:15 | call to params | app/controllers/foo/bars_controller.rb:18:10:18:22 | ...[...] | | app/controllers/foo/bars_controller.rb:18:10:18:22 | ...[...] | app/controllers/foo/bars_controller.rb:18:5:18:6 | dt | +| app/controllers/foo/bars_controller.rb:19:22:19:23 | dt | app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | | app/controllers/foo/bars_controller.rb:19:22:19:23 | dt | app/views/foo/bars/show.html.erb:40:3:40:16 | @instance_text | | app/controllers/foo/bars_controller.rb:24:39:24:44 | call to params | app/controllers/foo/bars_controller.rb:24:39:24:59 | ...[...] | | app/controllers/foo/bars_controller.rb:24:39:24:59 | ...[...] | app/controllers/foo/bars_controller.rb:24:39:24:59 | ... = ... | From df9173502ec3c8099256c71b170a635cdf748268 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 15:51:20 +0100 Subject: [PATCH 164/788] Ruby: configsig rb/sensitive-get-query --- .../ruby/security/SensitiveGetQueryQuery.qll | 25 +++++++++++++++---- .../security/cwe-598/SensitiveGetQuery.ql | 9 ++++--- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/SensitiveGetQueryQuery.qll b/ruby/ql/lib/codeql/ruby/security/SensitiveGetQueryQuery.qll index 7c3531fe18c..d18b6949f10 100644 --- a/ruby/ql/lib/codeql/ruby/security/SensitiveGetQueryQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/SensitiveGetQueryQuery.qll @@ -2,9 +2,9 @@ * Provides a taint-tracking configuration for detecting flow of query string * data to sensitive actions in GET query request handlers. * - * Note, for performance reasons: only import this file if `Configuration` is - * needed, otherwise `SensitiveGetQueryCustomizations` should be imported - * instead. + * Note, for performance reasons: only import this file if + * `SensitiveGetQueryFlow` is needed, otherwise + * `SensitiveGetQueryCustomizations` should be imported instead. */ private import ruby @@ -13,15 +13,16 @@ private import codeql.ruby.TaintTracking /** * Provides a taint-tracking configuration for detecting flow of query string * data to sensitive actions in GET query request handlers. + * DEPRECATED: Use `SensitiveGetQueryFlow` */ -module SensitiveGetQuery { +deprecated module SensitiveGetQuery { import SensitiveGetQueryCustomizations::SensitiveGetQuery /** * A taint-tracking configuration for reasoning about use of sensitive data * from a GET request query string. */ - class Configuration extends TaintTracking::Configuration { + deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "SensitiveGetQuery" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -29,3 +30,17 @@ module SensitiveGetQuery { override predicate isSink(DataFlow::Node sink) { sink instanceof Sink } } } + +private module SensitiveGetQueryConfig implements DataFlow::ConfigSig { + import SensitiveGetQueryCustomizations::SensitiveGetQuery + + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } +} + +/** + * Taint-tracking for reasoning about use of sensitive data from a + * GET request query string. + */ +module SensitiveGetQueryFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-598/SensitiveGetQuery.ql b/ruby/ql/src/queries/security/cwe-598/SensitiveGetQuery.ql index 46dbe7623e9..0d3bfc9aec7 100644 --- a/ruby/ql/src/queries/security/cwe-598/SensitiveGetQuery.ql +++ b/ruby/ql/src/queries/security/cwe-598/SensitiveGetQuery.ql @@ -13,9 +13,10 @@ import ruby import codeql.ruby.security.SensitiveGetQueryQuery +import codeql.ruby.security.SensitiveGetQueryCustomizations::SensitiveGetQuery import codeql.ruby.security.SensitiveActions -from DataFlow::Node source, DataFlow::Node sink, SensitiveGetQuery::Configuration config -where config.hasFlow(source, sink) -select source, "$@ for GET requests uses query parameter as sensitive data.", - source.(SensitiveGetQuery::Source).getHandler(), "Route handler" +from Source source, DataFlow::Node sink +where SensitiveGetQueryFlow::flow(source, sink) +select source, "$@ for GET requests uses query parameter as sensitive data.", source.getHandler(), + "Route handler" From ba8ff0710d77cf1f09c02869d6f5c30a84c23757 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 15:54:05 +0100 Subject: [PATCH 165/788] Ruby: configsig rb/request-forgery --- .../ServerSideRequestForgeryQuery.qll | 25 ++++++++++++++++--- .../cwe-918/ServerSideRequestForgery.ql | 6 ++--- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/ServerSideRequestForgeryQuery.qll b/ruby/ql/lib/codeql/ruby/security/ServerSideRequestForgeryQuery.qll index fb08b962af4..6e4c59a9528 100644 --- a/ruby/ql/lib/codeql/ruby/security/ServerSideRequestForgeryQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/ServerSideRequestForgeryQuery.qll @@ -2,8 +2,9 @@ * Provides a taint-tracking configuration for detecting * "Server side request forgery" vulnerabilities. * - * Note, for performance reasons: only import this file if `Configuration` is needed, - * otherwise `ServerSideRequestForgeryCustomizations` should be imported instead. + * Note, for performance reasons: only import this file if + * `ServerSideRequestForgeryFlow` is needed, otherwise + * `ServerSideRequestForgeryCustomizations` should be imported instead. */ import codeql.ruby.DataFlow @@ -14,8 +15,9 @@ import codeql.ruby.dataflow.BarrierGuards /** * A taint-tracking configuration for detecting * "Server side request forgery" vulnerabilities. + * DEPRECATED: Use `ServerSideRequestForgeryFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "ServerSideRequestForgery" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -32,3 +34,20 @@ class Configuration extends TaintTracking::Configuration { guard instanceof SanitizerGuard } } + +private module ServerSideRequestForgeryConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { + node instanceof Sanitizer or + node instanceof StringConstCompareBarrier or + node instanceof StringConstArrayInclusionCallBarrier + } +} + +/** + * Taint-tracking for detecting "Server side request forgery" vulnerabilities. + */ +module ServerSideRequestForgeryFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-918/ServerSideRequestForgery.ql b/ruby/ql/src/queries/security/cwe-918/ServerSideRequestForgery.ql index 55af202d140..f7974a076a2 100644 --- a/ruby/ql/src/queries/security/cwe-918/ServerSideRequestForgery.ql +++ b/ruby/ql/src/queries/security/cwe-918/ServerSideRequestForgery.ql @@ -13,9 +13,9 @@ import codeql.ruby.AST import codeql.ruby.DataFlow import codeql.ruby.security.ServerSideRequestForgeryQuery -import DataFlow::PathGraph +import ServerSideRequestForgeryFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from ServerSideRequestForgeryFlow::PathNode source, ServerSideRequestForgeryFlow::PathNode sink +where ServerSideRequestForgeryFlow::flowPath(source, sink) select sink.getNode(), source, sink, "The URL of this request depends on a $@.", source.getNode(), "user-provided value" From bf1cb33be3d84570bfe0669302e98fd91945c795 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 15:59:08 +0100 Subject: [PATCH 166/788] Ruby: configsig rb/sql-injection --- .../codeql/ruby/security/SqlInjectionQuery.qll | 16 +++++++++++++++- .../src/queries/security/cwe-089/SqlInjection.ql | 6 +++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/SqlInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/SqlInjectionQuery.qll index 350eb5028e3..9225552a840 100644 --- a/ruby/ql/lib/codeql/ruby/security/SqlInjectionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/SqlInjectionQuery.qll @@ -9,8 +9,9 @@ import SqlInjectionCustomizations::SqlInjection /** * A taint-tracking configuration for detecting SQL injection vulnerabilities. + * DEPRECATED: Use `SqlInjectionFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "SqlInjectionConfiguration" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -19,3 +20,16 @@ class Configuration extends TaintTracking::Configuration { override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer } } + +private module SqlInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for detecting SQL injection vulnerabilities. + */ +module SqlInjectionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-089/SqlInjection.ql b/ruby/ql/src/queries/security/cwe-089/SqlInjection.ql index 28be96deb7d..21870216068 100644 --- a/ruby/ql/src/queries/security/cwe-089/SqlInjection.ql +++ b/ruby/ql/src/queries/security/cwe-089/SqlInjection.ql @@ -13,9 +13,9 @@ import codeql.ruby.DataFlow import codeql.ruby.security.SqlInjectionQuery -import DataFlow::PathGraph +import SqlInjectionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from SqlInjectionFlow::PathNode source, SqlInjectionFlow::PathNode sink +where SqlInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This SQL query depends on a $@.", source.getNode(), "user-provided value" From 030aae569329744b15b12294da094ee8e0a582b2 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 16:07:20 +0100 Subject: [PATCH 167/788] Ruby: configsig rb/stack-trace-exposure --- .../ruby/security/StackTraceExposureQuery.qll | 16 +++++++++++++++- .../security/cwe-209/StackTraceExposure.ql | 6 +++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/StackTraceExposureQuery.qll b/ruby/ql/lib/codeql/ruby/security/StackTraceExposureQuery.qll index 408d903d7b4..b07c3d584da 100644 --- a/ruby/ql/lib/codeql/ruby/security/StackTraceExposureQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/StackTraceExposureQuery.qll @@ -13,8 +13,9 @@ private import StackTraceExposureCustomizations::StackTraceExposure /** * A taint-tracking configuration for detecting "stack trace exposure" vulnerabilities. + * DEPRECATED: Use `StackTraceExposureFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "StackTraceExposure" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -23,3 +24,16 @@ class Configuration extends TaintTracking::Configuration { override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer } } + +private module StackTraceExposureConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for detecting "stack trace exposure" vulnerabilities. + */ +module StackTraceExposureFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-209/StackTraceExposure.ql b/ruby/ql/src/queries/security/cwe-209/StackTraceExposure.ql index 95ea4a86908..bf878831db0 100644 --- a/ruby/ql/src/queries/security/cwe-209/StackTraceExposure.ql +++ b/ruby/ql/src/queries/security/cwe-209/StackTraceExposure.ql @@ -15,9 +15,9 @@ import codeql.ruby.DataFlow import codeql.ruby.security.StackTraceExposureQuery -import DataFlow::PathGraph +import StackTraceExposureFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from StackTraceExposureFlow::PathNode source, StackTraceExposureFlow::PathNode sink +where StackTraceExposureFlow::flowPath(source, sink) select sink.getNode(), source, sink, "$@ can be exposed to an external user.", source.getNode(), "Error information" From f5e433940fe992978c6e702af7c56c7b42f79b2f Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 16:13:01 +0100 Subject: [PATCH 168/788] Ruby: renames for rb/stored-xss --- .../codeql/ruby/security/StoredXSSQuery.qll | 47 +++++++++++-------- .../src/queries/security/cwe-079/StoredXSS.ql | 6 +-- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/StoredXSSQuery.qll b/ruby/ql/lib/codeql/ruby/security/StoredXSSQuery.qll index 74b43195ce6..b8fc7840a99 100644 --- a/ruby/ql/lib/codeql/ruby/security/StoredXSSQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/StoredXSSQuery.qll @@ -3,16 +3,19 @@ * cross-site scripting vulnerabilities. * * Note, for performance reasons: only import this file if - * `StoredXSS::Configuration` is needed, otherwise - * `XSS::StoredXSS` should be imported instead. + * `StoredXssFlow` is needed, otherwise + * `XSS::StoredXss` should be imported instead. */ import codeql.ruby.AST import codeql.ruby.DataFlow import codeql.ruby.TaintTracking -/** Provides a taint-tracking configuration for cross-site scripting vulnerabilities. */ -module StoredXss { +/** + * Provides a taint-tracking configuration for cross-site scripting vulnerabilities. + * DEPRECATED: Use StoredXssFlow + */ +deprecated module StoredXss { import XSS::StoredXss /** @@ -41,20 +44,24 @@ module StoredXss { } } - /** - * A taint-tracking configuration for reasoning about Stored XSS. - */ - private module Config implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source instanceof Source } - - predicate isSink(DataFlow::Node sink) { sink instanceof Sink } - - predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - isAdditionalXssTaintStep(node1, node2) - } - } - - import TaintTracking::Global + import TaintTracking::Global } + +private module StoredXssConfig implements DataFlow::ConfigSig { + private import XSS::StoredXss + + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + isAdditionalXssTaintStep(node1, node2) + } +} + +/** + * Taint-tracking for reasoning about Stored XSS. + */ +module StoredXssFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-079/StoredXSS.ql b/ruby/ql/src/queries/security/cwe-079/StoredXSS.ql index da1bd427589..a621aee00b0 100644 --- a/ruby/ql/src/queries/security/cwe-079/StoredXSS.ql +++ b/ruby/ql/src/queries/security/cwe-079/StoredXSS.ql @@ -14,9 +14,9 @@ import codeql.ruby.AST import codeql.ruby.security.StoredXSSQuery -import StoredXss::PathGraph +import StoredXssFlow::PathGraph -from StoredXss::PathNode source, StoredXss::PathNode sink -where StoredXss::flowPath(source, sink) +from StoredXssFlow::PathNode source, StoredXssFlow::PathNode sink +where StoredXssFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Stored cross-site scripting vulnerability due to $@.", source.getNode(), "stored value" From 0a73ebdbee105c315c6752c088eb11184a1e4e44 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 16:27:13 +0100 Subject: [PATCH 169/788] Ruby: configsig rb/tainted-format-string --- .../security/TaintedFormatStringQuery.qll | 22 +++++++++++++++---- .../security/cwe-134/TaintedFormatString.ql | 6 ++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/TaintedFormatStringQuery.qll b/ruby/ql/lib/codeql/ruby/security/TaintedFormatStringQuery.qll index 0475999ed3c..0bc37348560 100644 --- a/ruby/ql/lib/codeql/ruby/security/TaintedFormatStringQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/TaintedFormatStringQuery.qll @@ -1,19 +1,20 @@ /** - * Provides a taint-tracking configuration for reasoning about format + * Provides a taint-tracking configuration for reasoning about format string * injections. * * * Note, for performance reasons: only import this file if - * `TaintedFormatString::Configuration` is needed, otherwise + * `TaintedFormatStringFlow` is needed, otherwise * `TaintedFormatStringCustomizations` should be imported instead. */ private import TaintedFormatStringCustomizations::TaintedFormatString /** - * A taint-tracking configuration for format injections. + * A taint-tracking configuration for format string injections. + * DEPRECATED: Use `TaintedFormatStringFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "TaintedFormatString" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -25,3 +26,16 @@ class Configuration extends TaintTracking::Configuration { node instanceof Sanitizer } } + +private module TaintedFormatStringConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for format string injections. + */ +module TaintedFormatStringFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-134/TaintedFormatString.ql b/ruby/ql/src/queries/security/cwe-134/TaintedFormatString.ql index 3a6a2dcf5a0..9d85b176482 100644 --- a/ruby/ql/src/queries/security/cwe-134/TaintedFormatString.ql +++ b/ruby/ql/src/queries/security/cwe-134/TaintedFormatString.ql @@ -13,9 +13,9 @@ import codeql.ruby.AST import codeql.ruby.DataFlow import codeql.ruby.security.TaintedFormatStringQuery -import DataFlow::PathGraph +import TaintedFormatStringFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink -where cfg.hasFlowPath(source, sink) +from TaintedFormatStringFlow::PathNode source, TaintedFormatStringFlow::PathNode sink +where TaintedFormatStringFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Format string depends on a $@.", source.getNode(), "user-provided value" From 3e23a6e02147517365bb0e829323bf55665434b5 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 16:44:30 +0100 Subject: [PATCH 170/788] Ruby: configsig rb/server-side-template-injection --- .../ruby/security/TemplateInjectionQuery.qll | 16 +++++++++++++++- .../template-injection/TemplateInjection.ql | 6 +++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/TemplateInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionQuery.qll index 2726f053b8c..8cc26e189aa 100644 --- a/ruby/ql/lib/codeql/ruby/security/TemplateInjectionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionQuery.qll @@ -9,8 +9,9 @@ import TemplateInjectionCustomizations::TemplateInjection /** * A taint-tracking configuration for detecting Server Side Template Injections vulnerabilities. + * DEPRECATED: Use `TemplateInjectionFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "TemplateInjection" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -19,3 +20,16 @@ class Configuration extends TaintTracking::Configuration { override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer } } + +private module TemplateInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for detecting Server Side Template Injections vulnerabilities. + */ +module TemplateInjectionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/experimental/template-injection/TemplateInjection.ql b/ruby/ql/src/experimental/template-injection/TemplateInjection.ql index 774d8026fb8..7ad81c34123 100644 --- a/ruby/ql/src/experimental/template-injection/TemplateInjection.ql +++ b/ruby/ql/src/experimental/template-injection/TemplateInjection.ql @@ -13,9 +13,9 @@ import codeql.ruby.DataFlow import codeql.ruby.security.TemplateInjectionQuery -import DataFlow::PathGraph +import TemplateInjectionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from TemplateInjectionFlow::PathNode source, TemplateInjectionFlow::PathNode sink +where TemplateInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This template depends on a $@.", source.getNode(), "user-provided value" From 461bc0d35941542a8c043aab258f7d1774a7799d Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Fri, 1 Sep 2023 17:27:33 +0100 Subject: [PATCH 171/788] Ruby: configsig rb/unsafe-code-construction --- .../security/UnsafeCodeConstructionQuery.qll | 33 +++++++++++++++++-- .../cwe-094/UnsafeCodeConstruction.ql | 8 +++-- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll index c5b5c5489a2..de6a1dd574f 100644 --- a/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll @@ -2,8 +2,9 @@ * Provides a taint-tracking configuration for reasoning about code * constructed from library input vulnerabilities. * - * Note, for performance reasons: only import this file if `Configuration` is needed, - * otherwise `UnsafeCodeConstructionCustomizations` should be imported instead. + * Note, for performance reasons: only import this file if + * `UnsafeCodeConstructionFlow` is needed, otherwise + * `UnsafeCodeConstructionCustomizations` should be imported instead. */ import codeql.ruby.DataFlow @@ -13,8 +14,9 @@ private import codeql.ruby.dataflow.BarrierGuards /** * A taint-tracking configuration for detecting code constructed from library input vulnerabilities. + * DEPRECATED: Use `UnsafeCodeConstructionFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "UnsafeShellCommandConstruction" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -37,3 +39,28 @@ class Configuration extends TaintTracking::Configuration { set.isElementOfTypeOrUnknown("int") } } + +private module UnsafeCodeConstructionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { + node instanceof StringConstCompareBarrier or + node instanceof StringConstArrayInclusionCallBarrier + } + + // override to require the path doesn't have unmatched return steps + DataFlow::FlowFeature getAFeature() { result instanceof DataFlow::FeatureHasSourceCallContext } + + predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet set) { + // allow implicit reads of array elements + isSink(node) and + set.isElementOfTypeOrUnknown("int") + } +} + +/** + * Taint-tracking for detecting code constructed from library input vulnerabilities. + */ +module UnsafeCodeConstructionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-094/UnsafeCodeConstruction.ql b/ruby/ql/src/queries/security/cwe-094/UnsafeCodeConstruction.ql index 6b7b923e934..af58f33af49 100644 --- a/ruby/ql/src/queries/security/cwe-094/UnsafeCodeConstruction.ql +++ b/ruby/ql/src/queries/security/cwe-094/UnsafeCodeConstruction.ql @@ -14,10 +14,12 @@ */ import codeql.ruby.security.UnsafeCodeConstructionQuery -import DataFlow::PathGraph +import UnsafeCodeConstructionFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink, Sink sinkNode -where cfg.hasFlowPath(source, sink) and sinkNode = sink.getNode() +from + UnsafeCodeConstructionFlow::PathNode source, UnsafeCodeConstructionFlow::PathNode sink, + Sink sinkNode +where UnsafeCodeConstructionFlow::flowPath(source, sink) and sinkNode = sink.getNode() select sink.getNode(), source, sink, "This " + sinkNode.getSinkType() + " which depends on $@ is later $@.", source.getNode(), "library input", sinkNode.getCodeSink(), "interpreted as code" From 8ad6c72ba2261c146086d308e36b15df08e96ad6 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 15:43:23 +0100 Subject: [PATCH 172/788] Ruby: configsig rb/unsafe-deserialization --- .../security/UnsafeDeserializationQuery.qll | 18 ++++++++++++++++-- .../security/cwe-502/UnsafeDeserialization.ql | 6 +++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/UnsafeDeserializationQuery.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeDeserializationQuery.qll index dc6293dc10e..0c6e97f1fa0 100644 --- a/ruby/ql/lib/codeql/ruby/security/UnsafeDeserializationQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/UnsafeDeserializationQuery.qll @@ -2,7 +2,7 @@ * Provides a taint-tracking configuration for reasoning about unsafe deserialization. * * Note, for performance reasons: only import this file if - * `UnsafeDeserialization::Configuration` is needed, otherwise + * `UnsafeDeserializationFlow` is needed, otherwise * `UnsafeDeserializationCustomizations` should be imported instead. */ @@ -13,8 +13,9 @@ import UnsafeDeserializationCustomizations /** * A taint-tracking configuration for reasoning about unsafe deserialization. + * DEPRECATED: Use `UnsafeDeserializationFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "UnsafeDeserialization" } override predicate isSource(DataFlow::Node source) { @@ -28,3 +29,16 @@ class Configuration extends TaintTracking::Configuration { node instanceof UnsafeDeserialization::Sanitizer } } + +private module UnsafeDeserializationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof UnsafeDeserialization::Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof UnsafeDeserialization::Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof UnsafeDeserialization::Sanitizer } +} + +/** + * Taint-tracking for reasoning about unsafe deserialization. + */ +module UnsafeCodeConstructionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-502/UnsafeDeserialization.ql b/ruby/ql/src/queries/security/cwe-502/UnsafeDeserialization.ql index 0aed2a0c8ce..00835baeb9c 100644 --- a/ruby/ql/src/queries/security/cwe-502/UnsafeDeserialization.ql +++ b/ruby/ql/src/queries/security/cwe-502/UnsafeDeserialization.ql @@ -13,9 +13,9 @@ import ruby import codeql.ruby.security.UnsafeDeserializationQuery -import DataFlow::PathGraph +import UnsafeCodeConstructionFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink -where cfg.hasFlowPath(source, sink) +from UnsafeCodeConstructionFlow::PathNode source, UnsafeCodeConstructionFlow::PathNode sink +where UnsafeCodeConstructionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Unsafe deserialization depends on a $@.", source.getNode(), source.getNode().(UnsafeDeserialization::Source).describe() From f03f67031266a653055a5dc37326fb474b6fb5fe Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 15:46:30 +0100 Subject: [PATCH 173/788] Ruby: configsig rb/html-constructed-from-input --- .../security/UnsafeHtmlConstructionQuery.qll | 27 ++++++++++++++++--- .../cwe-079/UnsafeHtmlConstruction.ql | 8 +++--- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/UnsafeHtmlConstructionQuery.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeHtmlConstructionQuery.qll index 2506f66313d..71e7b5d33db 100644 --- a/ruby/ql/lib/codeql/ruby/security/UnsafeHtmlConstructionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/UnsafeHtmlConstructionQuery.qll @@ -2,8 +2,9 @@ * Provides a taint-tracking configuration for reasoning about HTML * constructed from library input vulnerabilities. * - * Note, for performance reasons: only import this file if `Configuration` is needed, - * otherwise `UnsafeHtmlConstructionCustomizations` should be imported instead. + * Note, for performance reasons: only import this file if + * `UnsafeHtmlConstructionFlow` is needed, otherwise + * `UnsafeHtmlConstructionCustomizations` should be imported instead. */ import codeql.ruby.DataFlow @@ -13,8 +14,9 @@ private import codeql.ruby.dataflow.BarrierGuards /** * A taint-tracking configuration for detecting unsafe HTML construction. + * DEPRECATED: Use `UnsafeHtmlConstructionFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "UnsafeHtmlConstruction" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -31,3 +33,22 @@ class Configuration extends TaintTracking::Configuration { result instanceof DataFlow::FeatureHasSourceCallContext } } + +private module UnsafeHtmlConstructionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { + node instanceof StringConstCompareBarrier or + node instanceof StringConstArrayInclusionCallBarrier + } + + // override to require the path doesn't have unmatched return steps + DataFlow::FlowFeature getAFeature() { result instanceof DataFlow::FeatureHasSourceCallContext } +} + +/** + * Taint-tracking for detecting unsafe HTML construction. + */ +module UnsafeHtmlConstructionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-079/UnsafeHtmlConstruction.ql b/ruby/ql/src/queries/security/cwe-079/UnsafeHtmlConstruction.ql index 9a53cadf0f7..c1527783fc3 100644 --- a/ruby/ql/src/queries/security/cwe-079/UnsafeHtmlConstruction.ql +++ b/ruby/ql/src/queries/security/cwe-079/UnsafeHtmlConstruction.ql @@ -13,10 +13,12 @@ */ import codeql.ruby.security.UnsafeHtmlConstructionQuery -import DataFlow::PathGraph +import UnsafeHtmlConstructionFlow::PathGraph -from DataFlow::Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink, Sink sinkNode -where cfg.hasFlowPath(source, sink) and sink.getNode() = sinkNode +from + UnsafeHtmlConstructionFlow::PathNode source, UnsafeHtmlConstructionFlow::PathNode sink, + Sink sinkNode +where UnsafeHtmlConstructionFlow::flowPath(source, sink) and sink.getNode() = sinkNode select sinkNode, source, sink, "This " + sinkNode.getSinkType() + " which depends on $@ might later allow $@.", source.getNode(), "library input", sinkNode.getXssSink(), "cross-site scripting" From f79796a644722d2d227fa15df37b6bb4875471be Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 15:51:09 +0100 Subject: [PATCH 174/788] Ruby: configsig rb/shell-command-constructed-from-input --- .../UnsafeShellCommandConstructionQuery.qll | 35 +++++++++++++++++-- .../cwe-078/UnsafeShellCommandConstruction.ql | 8 +++-- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll index 35ff4ffea97..9a116c4b206 100644 --- a/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll @@ -2,8 +2,9 @@ * Provides a taint tracking configuration for reasoning about shell command * constructed from library input vulnerabilities * - * Note, for performance reasons: only import this file if `Configuration` is needed, - * otherwise `UnsafeShellCommandConstructionCustomizations` should be imported instead. + * Note, for performance reasons: only import this file if + * `UnsafeShellCommandConstructionFlow` is needed, otherwise + * `UnsafeShellCommandConstructionCustomizations` should be imported instead. */ import codeql.ruby.DataFlow @@ -14,8 +15,9 @@ private import codeql.ruby.dataflow.BarrierGuards /** * A taint-tracking configuration for detecting shell command constructed from library input vulnerabilities. + * DEPRECATED: Use `UnsafeShellCommandConstructionFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "UnsafeShellCommandConstruction" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -39,3 +41,30 @@ class Configuration extends TaintTracking::Configuration { set.isElementOfTypeOrUnknown("int") } } + +private module UnsafeShellCommandConstructionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { + node instanceof CommandInjection::Sanitizer or // using all sanitizers from `rb/command-injection` + node instanceof StringConstCompareBarrier or + node instanceof StringConstArrayInclusionCallBarrier + } + + // override to require the path doesn't have unmatched return steps + DataFlow::FlowFeature getAFeature() { result instanceof DataFlow::FeatureHasSourceCallContext } + + predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet set) { + // allow implicit reads of array elements + isSink(node) and + set.isElementOfTypeOrUnknown("int") + } +} + +/** + * Taint-tracking for detecting shell command constructed from library input vulnerabilities. + */ +module UnsafeShellCommandConstructionFlow = + TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-078/UnsafeShellCommandConstruction.ql b/ruby/ql/src/queries/security/cwe-078/UnsafeShellCommandConstruction.ql index 53c71cfc314..2f93102adbd 100644 --- a/ruby/ql/src/queries/security/cwe-078/UnsafeShellCommandConstruction.ql +++ b/ruby/ql/src/queries/security/cwe-078/UnsafeShellCommandConstruction.ql @@ -15,11 +15,13 @@ */ import codeql.ruby.security.UnsafeShellCommandConstructionQuery -import DataFlow::PathGraph +import UnsafeShellCommandConstructionFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, Sink sinkNode +from + UnsafeShellCommandConstructionFlow::PathNode source, + UnsafeShellCommandConstructionFlow::PathNode sink, Sink sinkNode where - config.hasFlowPath(source, sink) and + UnsafeShellCommandConstructionFlow::flowPath(source, sink) and sinkNode = sink.getNode() select sinkNode.getStringConstruction(), source, sink, "This " + sinkNode.describe() + " which depends on $@ is later used in a $@.", source.getNode(), From 42cd58695da35fd933a158bbd20f9c000e315ea8 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 15:55:43 +0100 Subject: [PATCH 175/788] Ruby: configsig rb/url-redirection --- .../codeql/ruby/security/UrlRedirectQuery.qll | 25 ++++++++++++++++--- .../queries/security/cwe-601/UrlRedirect.ql | 7 +++--- .../security/cwe-601/UrlRedirect.expected | 4 ++- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/UrlRedirectQuery.qll b/ruby/ql/lib/codeql/ruby/security/UrlRedirectQuery.qll index 26c003d10c8..cfd435a61ee 100644 --- a/ruby/ql/lib/codeql/ruby/security/UrlRedirectQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/UrlRedirectQuery.qll @@ -1,8 +1,9 @@ /** * Provides a taint-tracking configuration for detecting "URL redirection" vulnerabilities. * - * Note, for performance reasons: only import this file if `Configuration` is needed, - * otherwise `UrlRedirectCustomizations` should be imported instead. + * Note, for performance reasons: only import this file if + * `UrlRedirectConfig` is needed, otherwise + * `UrlRedirectCustomizations` should be imported instead. */ private import codeql.ruby.AST @@ -13,8 +14,9 @@ import UrlRedirectCustomizations::UrlRedirect /** * A taint-tracking configuration for detecting "URL redirection" vulnerabilities. + * DEPRECATED: Use `UrlRedirectFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "UrlRedirect" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -31,3 +33,20 @@ class Configuration extends TaintTracking::Configuration { UrlRedirect::isAdditionalTaintStep(node1, node2) } } + +private module UrlRedirectConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + UrlRedirect::isAdditionalTaintStep(node1, node2) + } +} + +/** + * Taint-tracking for detecting "URL redirection" vulnerabilities. + */ +module UrlRedirectFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-601/UrlRedirect.ql b/ruby/ql/src/queries/security/cwe-601/UrlRedirect.ql index 8c55e133ef7..6cf4115d165 100644 --- a/ruby/ql/src/queries/security/cwe-601/UrlRedirect.ql +++ b/ruby/ql/src/queries/security/cwe-601/UrlRedirect.ql @@ -12,11 +12,10 @@ * @precision high */ -import codeql.ruby.AST import codeql.ruby.security.UrlRedirectQuery -import codeql.ruby.DataFlow::DataFlow::PathGraph +import UrlRedirectFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from UrlRedirectFlow::PathNode source, UrlRedirectFlow::PathNode sink +where UrlRedirectFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Untrusted URL redirection depends on a $@.", source.getNode(), "user-provided value" diff --git a/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.expected b/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.expected index 5b8a592d907..8d09e79a571 100644 --- a/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.expected +++ b/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.expected @@ -10,7 +10,8 @@ edges | UrlRedirect.rb:63:38:63:43 | call to params | UrlRedirect.rb:63:38:63:49 | ...[...] | | UrlRedirect.rb:68:38:68:43 | call to params | UrlRedirect.rb:68:38:68:49 | ...[...] | | UrlRedirect.rb:73:25:73:30 | call to params | UrlRedirect.rb:73:25:73:36 | ...[...] | -| UrlRedirect.rb:93:21:93:32 | input_params | UrlRedirect.rb:94:5:94:29 | call to permit | +| UrlRedirect.rb:93:21:93:32 | input_params | UrlRedirect.rb:94:5:94:16 | input_params | +| UrlRedirect.rb:94:5:94:16 | input_params | UrlRedirect.rb:94:5:94:29 | call to permit | nodes | UrlRedirect.rb:4:17:4:22 | call to params | semmle.label | call to params | | UrlRedirect.rb:9:17:9:22 | call to params | semmle.label | call to params | @@ -33,6 +34,7 @@ nodes | UrlRedirect.rb:73:25:73:30 | call to params | semmle.label | call to params | | UrlRedirect.rb:73:25:73:36 | ...[...] | semmle.label | ...[...] | | UrlRedirect.rb:93:21:93:32 | input_params | semmle.label | input_params | +| UrlRedirect.rb:94:5:94:16 | input_params | semmle.label | input_params | | UrlRedirect.rb:94:5:94:29 | call to permit | semmle.label | call to permit | subpaths | UrlRedirect.rb:24:31:24:36 | call to params | UrlRedirect.rb:93:21:93:32 | input_params | UrlRedirect.rb:94:5:94:29 | call to permit | UrlRedirect.rb:24:17:24:37 | call to filter_params | From 77f3a7037611421a467ce9ca0c6c8d7765105404 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:01:40 +0100 Subject: [PATCH 176/788] Ruby: renames for rb/xpath-injection --- .../ruby/security/XpathInjectionQuery.qll | 33 +++++++++++-------- .../xpath-injection/XpathInjection.ql | 6 ++-- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/XpathInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/XpathInjectionQuery.qll index f8edacf7ba8..4385b324fa6 100644 --- a/ruby/ql/lib/codeql/ruby/security/XpathInjectionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/XpathInjectionQuery.qll @@ -10,18 +10,23 @@ private import codeql.ruby.DataFlow private import codeql.ruby.TaintTracking import XpathInjectionCustomizations::XpathInjection -/** Provides a taint-tracking configuration for detecting "Xpath Injection" vulnerabilities. */ -module XpathInjection { - /** - * A taint-tracking configuration for detecting "Xpath Injection" vulnerabilities. - */ - private module Config implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source instanceof Source } - - predicate isSink(DataFlow::Node sink) { sink instanceof Sink } - - predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } - } - - import TaintTracking::Global +/** + * Provides a taint-tracking configuration for detecting "Xpath Injection" vulnerabilities. + * DEPRECATED: Use `XpathInjectionFlow` + */ +deprecated module XpathInjection { + import TaintTracking::Global } + +private module XpathInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for detecting "Xpath Injection" vulnerabilities. + */ +module XpathInjectionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/experimental/xpath-injection/XpathInjection.ql b/ruby/ql/src/experimental/xpath-injection/XpathInjection.ql index 200ab86fc22..10f4f5ff0a1 100644 --- a/ruby/ql/src/experimental/xpath-injection/XpathInjection.ql +++ b/ruby/ql/src/experimental/xpath-injection/XpathInjection.ql @@ -13,9 +13,9 @@ import codeql.ruby.DataFlow import codeql.ruby.security.XpathInjectionQuery -import XpathInjection::PathGraph +import XpathInjectionFlow::PathGraph -from XpathInjection::PathNode source, XpathInjection::PathNode sink -where XpathInjection::flowPath(source, sink) +from XpathInjectionFlow::PathNode source, XpathInjectionFlow::PathNode sink +where XpathInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "XPath expression depends on a $@.", source.getNode(), "user-provided value" From 04d3d043177f5f168d892fe7ce5f6ad9e49242cd Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:05:56 +0100 Subject: [PATCH 177/788] Ruby: configsig rb/regex/badly-anchored-regexp --- .../security/regexp/MissingFullAnchorQuery.qll | 18 ++++++++++++++++-- .../security/cwe-020/MissingFullAnchor.ql | 6 +++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/regexp/MissingFullAnchorQuery.qll b/ruby/ql/lib/codeql/ruby/security/regexp/MissingFullAnchorQuery.qll index e5c0f5d292c..19ac3600fa1 100644 --- a/ruby/ql/lib/codeql/ruby/security/regexp/MissingFullAnchorQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/regexp/MissingFullAnchorQuery.qll @@ -3,7 +3,7 @@ * missing full-anchored regular expressions. * * Note, for performance reasons: only import this file if - * `MissingFullAnchor::Configuration` is needed, otherwise + * `MissingFullAnchorFlow` is needed, otherwise * `MissingFullAnchorCustomizations` should be imported instead. */ @@ -14,8 +14,9 @@ import MissingFullAnchorCustomizations::MissingFullAnchor /** * A taint tracking configuration for reasoning about * missing full-anchored regular expressions. + * DEPRECATED: Use `MissingFullAnchorFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "MissingFullAnchor" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -24,3 +25,16 @@ class Configuration extends TaintTracking::Configuration { override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer } } + +private module MissingFullAnchorConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for reasoning about missing full-anchored regular expressions. + */ +module MissingFullAnchorFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-020/MissingFullAnchor.ql b/ruby/ql/src/queries/security/cwe-020/MissingFullAnchor.ql index c2dbff921d1..d86a38ddc17 100644 --- a/ruby/ql/src/queries/security/cwe-020/MissingFullAnchor.ql +++ b/ruby/ql/src/queries/security/cwe-020/MissingFullAnchor.ql @@ -12,10 +12,10 @@ */ import codeql.ruby.security.regexp.MissingFullAnchorQuery -import DataFlow::PathGraph +import MissingFullAnchorFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, Sink sinkNode -where config.hasFlowPath(source, sink) and sink.getNode() = sinkNode +from MissingFullAnchorFlow::PathNode source, MissingFullAnchorFlow::PathNode sink, Sink sinkNode +where MissingFullAnchorFlow::flowPath(source, sink) and sink.getNode() = sinkNode select sink, source, sink, "This value depends on $@, and is $@ against a $@.", source.getNode(), source.getNode().(Source).describe(), sinkNode.getCallNode(), "checked", sinkNode.getRegex(), "badly anchored regular expression" From 494b7b3fdfcf43300278fb8c9d22e3065d0ed166 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:11:12 +0100 Subject: [PATCH 178/788] Ruby: configsig rb/polynomial-redos --- .../security/regexp/PolynomialReDoSQuery.qll | 28 +++++++++++++++---- .../security/cwe-1333/PolynomialReDoS.ql | 12 ++++---- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/regexp/PolynomialReDoSQuery.qll b/ruby/ql/lib/codeql/ruby/security/regexp/PolynomialReDoSQuery.qll index 5e0ae1ae93a..e93ea4a71ab 100644 --- a/ruby/ql/lib/codeql/ruby/security/regexp/PolynomialReDoSQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/regexp/PolynomialReDoSQuery.qll @@ -2,9 +2,9 @@ * Provides a taint tracking configuration for reasoning about polynomial * regular expression denial-of-service attacks. * - * Note, for performance reasons: only import this file if `Configuration` is - * needed. Otherwise, `PolynomialReDoSCustomizations` should be imported - * instead. + * Note, for performance reasons: only import this file if + * `PolynomialReDoSFlow` is needed. Otherwise, + * `PolynomialReDoSCustomizations` should be imported instead. */ private import codeql.ruby.DataFlow @@ -13,15 +13,17 @@ private import codeql.ruby.TaintTracking /** * Provides a taint-tracking configuration for detecting polynomial regular * expression denial of service vulnerabilities. + * DEPRECATED: Use `PolynomialReDoSFlow` */ -module PolynomialReDoS { +deprecated module PolynomialReDoS { import PolynomialReDoSCustomizations::PolynomialReDoS /** * A taint-tracking configuration for detecting polynomial regular expression * denial of service vulnerabilities. + * DEPRECATED: Use `PolynomialReDoSFlow` */ - class Configuration extends TaintTracking::Configuration { + deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "PolynomialReDoS" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -35,3 +37,19 @@ module PolynomialReDoS { } } } + +private module PolynomialReDoSConfig implements DataFlow::ConfigSig { + private import PolynomialReDoSCustomizations::PolynomialReDoS + + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for detecting polynomial regular + * expression denial of service vulnerabilities. + */ +module PolynomialReDoSFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-1333/PolynomialReDoS.ql b/ruby/ql/src/queries/security/cwe-1333/PolynomialReDoS.ql index a75cfdb786d..3e3afa31d36 100644 --- a/ruby/ql/src/queries/security/cwe-1333/PolynomialReDoS.ql +++ b/ruby/ql/src/queries/security/cwe-1333/PolynomialReDoS.ql @@ -13,18 +13,18 @@ * external/cwe/cwe-400 */ -import DataFlow::PathGraph -import codeql.ruby.DataFlow +import codeql.ruby.security.regexp.PolynomialReDoSCustomizations::PolynomialReDoS as PR import codeql.ruby.security.regexp.PolynomialReDoSQuery +import PolynomialReDoSFlow::PathGraph from - PolynomialReDoS::Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink, - PolynomialReDoS::Sink sinkNode, PolynomialReDoS::PolynomialBackTrackingTerm regexp + PolynomialReDoSFlow::PathNode source, PolynomialReDoSFlow::PathNode sink, PR::Sink sinkNode, + PR::PolynomialBackTrackingTerm regexp where - config.hasFlowPath(source, sink) and + PolynomialReDoSFlow::flowPath(source, sink) and sinkNode = sink.getNode() and regexp = sinkNode.getRegExp() select sinkNode.getHighlight(), source, sink, "This $@ that depends on a $@ may run slow on strings " + regexp.getPrefixMessage() + "with many repetitions of '" + regexp.getPumpString() + "'.", regexp, "regular expression", - source.getNode(), source.getNode().(PolynomialReDoS::Source).describe() + source.getNode(), source.getNode().(PR::Source).describe() From 7445fc43f9b8816139ff81ad026fa47c96c02ded Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:14:39 +0100 Subject: [PATCH 179/788] Ruby: configsig rb/regexp-injection --- .../security/regexp/RegExpInjectionQuery.qll | 21 ++++++++++++++++--- .../security/cwe-1333/RegExpInjection.ql | 8 +++---- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/regexp/RegExpInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/regexp/RegExpInjectionQuery.qll index 11f0bfe21e9..56673bb8e90 100644 --- a/ruby/ql/lib/codeql/ruby/security/regexp/RegExpInjectionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/regexp/RegExpInjectionQuery.qll @@ -1,8 +1,9 @@ /** * Provides a taint-tracking configuration for detecting regexp injection vulnerabilities. * - * Note, for performance reasons: only import this file if `Configuration` is needed, - * otherwise `RegExpInjectionCustomizations` should be imported instead. + * Note, for performance reasons: only import this file if + * `RegExpInjectionFlow` is needed, otherwise + * `RegExpInjectionCustomizations` should be imported instead. */ import codeql.ruby.DataFlow @@ -12,8 +13,9 @@ import codeql.ruby.dataflow.BarrierGuards /** * A taint-tracking configuration for detecting regexp injection vulnerabilities. + * DEPRECATED: Use `RegExpInjectionFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "RegExpInjection" } override predicate isSource(DataFlow::Node source) { source instanceof RegExpInjection::Source } @@ -26,3 +28,16 @@ class Configuration extends TaintTracking::Configuration { override predicate isSanitizer(DataFlow::Node node) { node instanceof RegExpInjection::Sanitizer } } + +private module RegExpInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RegExpInjection::Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof RegExpInjection::Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof RegExpInjection::Sanitizer } +} + +/** + * Taint-tracking for detecting regexp injection vulnerabilities. + */ +module RegExpInjectionFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-1333/RegExpInjection.ql b/ruby/ql/src/queries/security/cwe-1333/RegExpInjection.ql index 06684017526..e271fc054b1 100644 --- a/ruby/ql/src/queries/security/cwe-1333/RegExpInjection.ql +++ b/ruby/ql/src/queries/security/cwe-1333/RegExpInjection.ql @@ -15,12 +15,10 @@ * external/cwe/cwe-400 */ -import codeql.ruby.AST -import DataFlow::PathGraph -import codeql.ruby.DataFlow import codeql.ruby.security.regexp.RegExpInjectionQuery +import RegExpInjectionFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink -where cfg.hasFlowPath(source, sink) +from RegExpInjectionFlow::PathNode source, RegExpInjectionFlow::PathNode sink +where RegExpInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This regular expression depends on a $@.", source.getNode(), "user-provided value" From ebf2a2e1f5977362741281b86e52b316991a9226 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:24:16 +0100 Subject: [PATCH 180/788] Ruby: configsig rb/unicode-bypass-validation --- .../UnicodeBypassValidationQuery.qll | 38 +++++++++++++++++-- .../cwe-176/UnicodeBypassValidation.ql | 7 ++-- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll b/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll index 449e05ad9e8..60bc2a00614 100644 --- a/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll +++ b/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll @@ -24,17 +24,44 @@ class PostValidation extends DataFlow::FlowState { * * This configuration uses two flow states, `PreValidation` and `PostValidation`, * to track the requirement that a logical validation has been performed before the Unicode Transformation. + * DEPRECATED: Use `UnicodeBypassValidationFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "UnicodeBypassValidation" } override predicate isSource(DataFlow::Node source, DataFlow::FlowState state) { - source instanceof RemoteFlowSource and state instanceof PreValidation + UnicodeBypassValidationConfig::isSource(source, state) } override predicate isAdditionalTaintStep( DataFlow::Node nodeFrom, DataFlow::FlowState stateFrom, DataFlow::Node nodeTo, DataFlow::FlowState stateTo + ) { + UnicodeBypassValidationConfig::isAdditionalFlowStep(nodeFrom, stateFrom, nodeTo, stateTo) + } + + /* A Unicode Tranformation (Unicode tranformation) is considered a sink when the algorithm used is either NFC or NFKC. */ + override predicate isSink(DataFlow::Node sink, DataFlow::FlowState state) { + UnicodeBypassValidationConfig::isSink(sink, state) + } +} + +/** + * A taint-tracking configuration for detecting "Unicode transformation mishandling" vulnerabilities. + * + * This configuration uses two flow states, `PreValidation` and `PostValidation`, + * to track the requirement that a logical validation has been performed before the Unicode Transformation. + */ +private module UnicodeBypassValidationConfig implements DataFlow::StateConfigSig { + class FlowState = DataFlow::FlowState; + + predicate isSource(DataFlow::Node source, DataFlow::FlowState state) { + source instanceof RemoteFlowSource and state instanceof PreValidation + } + + predicate isAdditionalFlowStep( + DataFlow::Node nodeFrom, DataFlow::FlowState stateFrom, DataFlow::Node nodeTo, + DataFlow::FlowState stateTo ) { ( exists(Escaping escaping | nodeFrom = escaping.getAnInput() and nodeTo = escaping.getOutput()) @@ -80,7 +107,7 @@ class Configuration extends TaintTracking::Configuration { } /* A Unicode Tranformation (Unicode tranformation) is considered a sink when the algorithm used is either NFC or NFKC. */ - override predicate isSink(DataFlow::Node sink, DataFlow::FlowState state) { + predicate isSink(DataFlow::Node sink, DataFlow::FlowState state) { ( exists(DataFlow::CallNode cn | cn.getMethodName() = "unicode_normalize" and @@ -121,3 +148,8 @@ class Configuration extends TaintTracking::Configuration { state instanceof PostValidation } } + +/** + * Taint-tracking configuration for detecting "Unicode transformation mishandling" vulnerabilities. + */ +module UnicodeBypassValidationFlow = TaintTracking::GlobalWithState; diff --git a/ruby/ql/src/experimental/cwe-176/UnicodeBypassValidation.ql b/ruby/ql/src/experimental/cwe-176/UnicodeBypassValidation.ql index 92c60f0b681..65ccc251ab0 100644 --- a/ruby/ql/src/experimental/cwe-176/UnicodeBypassValidation.ql +++ b/ruby/ql/src/experimental/cwe-176/UnicodeBypassValidation.ql @@ -12,12 +12,11 @@ * external/cwe/cwe-180 */ -import ruby import codeql.ruby.experimental.UnicodeBypassValidationQuery -import DataFlow::PathGraph +import UnicodeBypassValidationFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from UnicodeBypassValidationFlow::PathNode source, UnicodeBypassValidationFlow::PathNode sink +where UnicodeBypassValidationFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This $@ processes unsafely $@ and any logical validation in-between could be bypassed using special Unicode characters.", sink.getNode(), "Unicode transformation (Unicode normalization)", source.getNode(), From b6d12f8b1cf794777e5a7f6536cd461b30ea5418 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:28:20 +0100 Subject: [PATCH 181/788] Ruby: configsig rb/zip-slip --- .../codeql/ruby/experimental/ZipSlipQuery.qll | 30 ++++++++++++++++++- .../experimental/cwe-022-zipslip/ZipSlip.ql | 7 ++--- .../cwe-022-ZipSlip/ZipSlip.expected | 28 +++++++++++++---- 3 files changed, 54 insertions(+), 11 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/experimental/ZipSlipQuery.qll b/ruby/ql/lib/codeql/ruby/experimental/ZipSlipQuery.qll index 0b00a8386b3..f1a00b21d92 100644 --- a/ruby/ql/lib/codeql/ruby/experimental/ZipSlipQuery.qll +++ b/ruby/ql/lib/codeql/ruby/experimental/ZipSlipQuery.qll @@ -12,8 +12,9 @@ private import codeql.ruby.ApiGraphs /** * A taint-tracking configuration for reasoning about zip slip * vulnerabilities. + * DEPRECATED: Use `ZipSlipFlow` */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "ZipSlip" } override predicate isSource(DataFlow::Node source) { source instanceof ZipSlip::Source } @@ -36,3 +37,30 @@ class Configuration extends TaintTracking::Configuration { override predicate isSanitizer(DataFlow::Node node) { node instanceof ZipSlip::Sanitizer } } + +private module ZipSlipConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof ZipSlip::Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof ZipSlip::Sink } + + /** + * This should actually be + * `and cn = API::getTopLevelMember("Gem").getMember("Package").getMember("TarReader").getMember("Entry").getAMethodCall("full_name")` and similar for other classes + * but I couldn't make it work so there's only check for the method name called on the entry. It is `full_name` for `Gem::Package::TarReader::Entry` and `Zlib` + * and `name` for `Zip::File` + */ + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + exists(DataFlow::CallNode cn | + cn.getReceiver() = nodeFrom and + cn.getMethodName() in ["full_name", "name"] and + cn = nodeTo + ) + } + + predicate isBarrier(DataFlow::Node node) { node instanceof ZipSlip::Sanitizer } +} + +/** + * Taint-tracking for reasoning about zip slip vulnerabilities. + */ +module ZipSlipFlow = TaintTracking::Global; diff --git a/ruby/ql/src/experimental/cwe-022-zipslip/ZipSlip.ql b/ruby/ql/src/experimental/cwe-022-zipslip/ZipSlip.ql index 329f4b89977..1c825d0aaae 100644 --- a/ruby/ql/src/experimental/cwe-022-zipslip/ZipSlip.ql +++ b/ruby/ql/src/experimental/cwe-022-zipslip/ZipSlip.ql @@ -12,11 +12,10 @@ * external/cwe/cwe-022 */ -import ruby import codeql.ruby.experimental.ZipSlipQuery -import DataFlow::PathGraph +import ZipSlipFlow::PathGraph -from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink -where cfg.hasFlowPath(source, sink) +from ZipSlipFlow::PathNode source, ZipSlipFlow::PathNode sink +where ZipSlipFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This file extraction depends on a $@.", source.getNode(), "potentially untrusted source" diff --git a/ruby/ql/test/query-tests/experimental/cwe-022-ZipSlip/ZipSlip.expected b/ruby/ql/test/query-tests/experimental/cwe-022-ZipSlip/ZipSlip.expected index 5fe4f2ce69f..0c8be5c2463 100644 --- a/ruby/ql/test/query-tests/experimental/cwe-022-ZipSlip/ZipSlip.expected +++ b/ruby/ql/test/query-tests/experimental/cwe-022-ZipSlip/ZipSlip.expected @@ -2,43 +2,55 @@ edges | zip_slip.rb:8:5:8:11 | tarfile | zip_slip.rb:9:5:9:11 | tarfile | | zip_slip.rb:8:15:8:54 | call to new | zip_slip.rb:8:5:8:11 | tarfile | | zip_slip.rb:9:5:9:11 | tarfile | zip_slip.rb:9:22:9:26 | entry | -| zip_slip.rb:9:22:9:26 | entry | zip_slip.rb:10:19:10:33 | call to full_name | +| zip_slip.rb:9:22:9:26 | entry | zip_slip.rb:10:19:10:23 | entry | +| zip_slip.rb:10:19:10:23 | entry | zip_slip.rb:10:19:10:33 | call to full_name | | zip_slip.rb:20:50:20:56 | tarfile | zip_slip.rb:21:7:21:13 | tarfile | | zip_slip.rb:21:7:21:13 | tarfile | zip_slip.rb:21:30:21:34 | entry | -| zip_slip.rb:21:30:21:34 | entry | zip_slip.rb:22:21:22:35 | call to full_name | +| zip_slip.rb:21:30:21:34 | entry | zip_slip.rb:22:21:22:25 | entry | +| zip_slip.rb:22:21:22:25 | entry | zip_slip.rb:22:21:22:35 | call to full_name | | zip_slip.rb:46:5:46:24 | call to open | zip_slip.rb:46:35:46:39 | entry | -| zip_slip.rb:46:35:46:39 | entry | zip_slip.rb:47:17:47:26 | call to name | +| zip_slip.rb:46:35:46:39 | entry | zip_slip.rb:47:17:47:21 | entry | +| zip_slip.rb:47:17:47:21 | entry | zip_slip.rb:47:17:47:26 | call to name | | zip_slip.rb:56:30:56:37 | zip_file | zip_slip.rb:57:7:57:14 | zip_file | | zip_slip.rb:57:7:57:14 | zip_file | zip_slip.rb:57:25:57:29 | entry | -| zip_slip.rb:57:25:57:29 | entry | zip_slip.rb:58:19:58:28 | call to name | +| zip_slip.rb:57:25:57:29 | entry | zip_slip.rb:58:19:58:23 | entry | +| zip_slip.rb:58:19:58:23 | entry | zip_slip.rb:58:19:58:28 | call to name | | zip_slip.rb:90:5:90:8 | gzip | zip_slip.rb:91:11:91:14 | gzip | | zip_slip.rb:90:12:90:54 | call to open | zip_slip.rb:90:5:90:8 | gzip | | zip_slip.rb:91:11:91:14 | gzip | zip_slip.rb:97:42:97:56 | compressed_file | | zip_slip.rb:97:42:97:56 | compressed_file | zip_slip.rb:98:7:98:21 | compressed_file | | zip_slip.rb:98:7:98:21 | compressed_file | zip_slip.rb:98:32:98:36 | entry | -| zip_slip.rb:98:32:98:36 | entry | zip_slip.rb:99:9:99:18 | entry_path | +| zip_slip.rb:98:32:98:36 | entry | zip_slip.rb:99:22:99:26 | entry | | zip_slip.rb:99:9:99:18 | entry_path | zip_slip.rb:100:21:100:30 | entry_path | +| zip_slip.rb:99:22:99:26 | entry | zip_slip.rb:99:22:99:36 | call to full_name | +| zip_slip.rb:99:22:99:36 | call to full_name | zip_slip.rb:99:9:99:18 | entry_path | | zip_slip.rb:123:7:123:8 | gz | zip_slip.rb:124:7:124:8 | gz | | zip_slip.rb:123:12:123:34 | call to new | zip_slip.rb:123:7:123:8 | gz | | zip_slip.rb:124:7:124:8 | gz | zip_slip.rb:124:19:124:23 | entry | -| zip_slip.rb:124:19:124:23 | entry | zip_slip.rb:125:9:125:18 | entry_path | +| zip_slip.rb:124:19:124:23 | entry | zip_slip.rb:125:22:125:26 | entry | | zip_slip.rb:125:9:125:18 | entry_path | zip_slip.rb:126:21:126:30 | entry_path | +| zip_slip.rb:125:22:125:26 | entry | zip_slip.rb:125:22:125:36 | call to full_name | +| zip_slip.rb:125:22:125:36 | call to full_name | zip_slip.rb:125:9:125:18 | entry_path | nodes | zip_slip.rb:8:5:8:11 | tarfile | semmle.label | tarfile | | zip_slip.rb:8:15:8:54 | call to new | semmle.label | call to new | | zip_slip.rb:9:5:9:11 | tarfile | semmle.label | tarfile | | zip_slip.rb:9:22:9:26 | entry | semmle.label | entry | +| zip_slip.rb:10:19:10:23 | entry | semmle.label | entry | | zip_slip.rb:10:19:10:33 | call to full_name | semmle.label | call to full_name | | zip_slip.rb:20:50:20:56 | tarfile | semmle.label | tarfile | | zip_slip.rb:21:7:21:13 | tarfile | semmle.label | tarfile | | zip_slip.rb:21:30:21:34 | entry | semmle.label | entry | +| zip_slip.rb:22:21:22:25 | entry | semmle.label | entry | | zip_slip.rb:22:21:22:35 | call to full_name | semmle.label | call to full_name | | zip_slip.rb:46:5:46:24 | call to open | semmle.label | call to open | | zip_slip.rb:46:35:46:39 | entry | semmle.label | entry | +| zip_slip.rb:47:17:47:21 | entry | semmle.label | entry | | zip_slip.rb:47:17:47:26 | call to name | semmle.label | call to name | | zip_slip.rb:56:30:56:37 | zip_file | semmle.label | zip_file | | zip_slip.rb:57:7:57:14 | zip_file | semmle.label | zip_file | | zip_slip.rb:57:25:57:29 | entry | semmle.label | entry | +| zip_slip.rb:58:19:58:23 | entry | semmle.label | entry | | zip_slip.rb:58:19:58:28 | call to name | semmle.label | call to name | | zip_slip.rb:90:5:90:8 | gzip | semmle.label | gzip | | zip_slip.rb:90:12:90:54 | call to open | semmle.label | call to open | @@ -47,12 +59,16 @@ nodes | zip_slip.rb:98:7:98:21 | compressed_file | semmle.label | compressed_file | | zip_slip.rb:98:32:98:36 | entry | semmle.label | entry | | zip_slip.rb:99:9:99:18 | entry_path | semmle.label | entry_path | +| zip_slip.rb:99:22:99:26 | entry | semmle.label | entry | +| zip_slip.rb:99:22:99:36 | call to full_name | semmle.label | call to full_name | | zip_slip.rb:100:21:100:30 | entry_path | semmle.label | entry_path | | zip_slip.rb:123:7:123:8 | gz | semmle.label | gz | | zip_slip.rb:123:12:123:34 | call to new | semmle.label | call to new | | zip_slip.rb:124:7:124:8 | gz | semmle.label | gz | | zip_slip.rb:124:19:124:23 | entry | semmle.label | entry | | zip_slip.rb:125:9:125:18 | entry_path | semmle.label | entry_path | +| zip_slip.rb:125:22:125:26 | entry | semmle.label | entry | +| zip_slip.rb:125:22:125:36 | call to full_name | semmle.label | call to full_name | | zip_slip.rb:126:21:126:30 | entry_path | semmle.label | entry_path | subpaths #select From 4d1684e37bfb7e1fe26b581c02b12e71a9e6304f Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:32:31 +0100 Subject: [PATCH 182/788] Ruby: configsig rb/overly-permissive-file --- .../security/cwe-732/WeakFilePermissions.ql | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql b/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql index 87e552002a7..7915422e1d6 100644 --- a/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql +++ b/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql @@ -13,7 +13,6 @@ import codeql.ruby.AST import codeql.ruby.Concepts import codeql.ruby.DataFlow -import DataFlow::PathGraph import codeql.ruby.ApiGraphs bindingset[p] @@ -47,22 +46,25 @@ class PermissivePermissionsExpr extends Expr { } } -class PermissivePermissionsConfig extends DataFlow::Configuration { - PermissivePermissionsConfig() { this = "PermissivePermissionsConfig" } - - override predicate isSource(DataFlow::Node source) { +private module PermissivePermissionsConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr().getExpr() instanceof PermissivePermissionsExpr } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(FileSystemPermissionModification mod | mod.getAPermissionNode() = sink) } } +private module PermissivePermissionsFlow = DataFlow::Global; + +private import PermissivePermissionsFlow::PathGraph + from - DataFlow::PathNode source, DataFlow::PathNode sink, PermissivePermissionsConfig conf, + PermissivePermissionsFlow::PathNode source, PermissivePermissionsFlow::PathNode sink, FileSystemPermissionModification mod -where conf.hasFlowPath(source, sink) and mod.getAPermissionNode() = sink.getNode() +where + PermissivePermissionsFlow::flowPath(source, sink) and mod.getAPermissionNode() = sink.getNode() select source.getNode(), source, sink, "This overly permissive mask used in $@ allows read or write access to others.", mod, mod.toString() From cdc788b162588a0722a94b2a7369f0779f2b345b Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:34:44 +0100 Subject: [PATCH 183/788] Ruby: configsig rb/hardcoded-credentials --- .../security/cwe-798/HardcodedCredentials.ql | 19 ++++++++++--------- .../cwe-798/HardcodedCredentials.expected | 10 ++++++++-- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql b/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql index d797556bd7d..d722672fe8b 100644 --- a/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql +++ b/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql @@ -14,7 +14,6 @@ import codeql.ruby.AST import codeql.ruby.DataFlow -import DataFlow::PathGraph import codeql.ruby.TaintTracking import codeql.ruby.controlflow.CfgNodes @@ -132,14 +131,12 @@ class CredentialSink extends DataFlow::Node { CredentialSink() { isCredentialSink(this) } } -class HardcodedCredentialsConfiguration extends DataFlow::Configuration { - HardcodedCredentialsConfiguration() { this = "HardcodedCredentialsConfiguration" } +private module HardcodedCredentialsConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof HardcodedValueSource } - override predicate isSource(DataFlow::Node source) { source instanceof HardcodedValueSource } + predicate isSink(DataFlow::Node sink) { sink instanceof CredentialSink } - override predicate isSink(DataFlow::Node sink) { sink instanceof CredentialSink } - - override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { exists(ExprNodes::BinaryOperationCfgNode binop | ( binop.getLeftOperand() = node1.asExpr() or @@ -152,7 +149,11 @@ class HardcodedCredentialsConfiguration extends DataFlow::Configuration { } } -from DataFlow::PathNode source, DataFlow::PathNode sink, HardcodedCredentialsConfiguration conf -where conf.hasFlowPath(source, sink) +private module HardcodedCredentialsFlow = DataFlow::Global; + +private import HardcodedCredentialsFlow::PathGraph + +from HardcodedCredentialsFlow::PathNode source, HardcodedCredentialsFlow::PathNode sink +where HardcodedCredentialsFlow::flowPath(source, sink) select source.getNode(), source, sink, "This hardcoded value is $@.", sink.getNode(), "used as credentials" diff --git a/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected b/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected index f72ff8cc2a4..3492e9b41ae 100644 --- a/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected +++ b/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected @@ -3,11 +3,14 @@ edges | HardcodedCredentials.rb:15:30:15:75 | "WLC17dLQ9P8YlQvqm77qplOMm5pd1..." | HardcodedCredentials.rb:1:33:1:36 | cert | | HardcodedCredentials.rb:18:19:18:72 | ... + ... | HardcodedCredentials.rb:1:23:1:30 | password | | HardcodedCredentials.rb:18:27:18:72 | "ogH6qSYWGdbR/2WOGYa7eZ/tObL+G..." | HardcodedCredentials.rb:18:19:18:72 | ... + ... | -| HardcodedCredentials.rb:20:1:20:7 | pw_left | HardcodedCredentials.rb:22:1:22:2 | pw | +| HardcodedCredentials.rb:20:1:20:7 | pw_left | HardcodedCredentials.rb:22:6:22:12 | pw_left | | HardcodedCredentials.rb:20:11:20:76 | "3jOe7sXKX6Tx52qHWUVqh2t9LNsE+..." | HardcodedCredentials.rb:20:1:20:7 | pw_left | -| HardcodedCredentials.rb:21:1:21:8 | pw_right | HardcodedCredentials.rb:22:1:22:2 | pw | +| HardcodedCredentials.rb:21:1:21:8 | pw_right | HardcodedCredentials.rb:22:16:22:23 | pw_right | | HardcodedCredentials.rb:21:12:21:37 | "4fQuzXef4f2yow8KWvIJTA==" | HardcodedCredentials.rb:21:1:21:8 | pw_right | | HardcodedCredentials.rb:22:1:22:2 | pw | HardcodedCredentials.rb:23:19:23:20 | pw | +| HardcodedCredentials.rb:22:6:22:12 | pw_left | HardcodedCredentials.rb:22:6:22:23 | ... + ... | +| HardcodedCredentials.rb:22:6:22:23 | ... + ... | HardcodedCredentials.rb:22:1:22:2 | pw | +| HardcodedCredentials.rb:22:16:22:23 | pw_right | HardcodedCredentials.rb:22:6:22:23 | ... + ... | | HardcodedCredentials.rb:23:19:23:20 | pw | HardcodedCredentials.rb:1:23:1:30 | password | | HardcodedCredentials.rb:38:40:38:85 | "kdW/xVhiv6y1fQQNevDpUaq+2rfPK..." | HardcodedCredentials.rb:31:18:31:23 | passwd | | HardcodedCredentials.rb:43:29:43:43 | "user@test.com" | HardcodedCredentials.rb:43:18:43:25 | username | @@ -27,6 +30,9 @@ nodes | HardcodedCredentials.rb:21:1:21:8 | pw_right | semmle.label | pw_right | | HardcodedCredentials.rb:21:12:21:37 | "4fQuzXef4f2yow8KWvIJTA==" | semmle.label | "4fQuzXef4f2yow8KWvIJTA==" | | HardcodedCredentials.rb:22:1:22:2 | pw | semmle.label | pw | +| HardcodedCredentials.rb:22:6:22:12 | pw_left | semmle.label | pw_left | +| HardcodedCredentials.rb:22:6:22:23 | ... + ... | semmle.label | ... + ... | +| HardcodedCredentials.rb:22:16:22:23 | pw_right | semmle.label | pw_right | | HardcodedCredentials.rb:23:19:23:20 | pw | semmle.label | pw | | HardcodedCredentials.rb:31:18:31:23 | passwd | semmle.label | passwd | | HardcodedCredentials.rb:38:40:38:85 | "kdW/xVhiv6y1fQQNevDpUaq+2rfPK..." | semmle.label | "kdW/xVhiv6y1fQQNevDpUaq+2rfPK..." | From 39af2d28701c715d584c14edb70401e747c2371d Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:36:43 +0100 Subject: [PATCH 184/788] Ruby: configsig rb/user-controlled-file-decompression --- .../decompression-api/DecompressionApi.ql | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ruby/ql/src/experimental/decompression-api/DecompressionApi.ql b/ruby/ql/src/experimental/decompression-api/DecompressionApi.ql index 7dc37f19bc8..0b00ac1a11c 100644 --- a/ruby/ql/src/experimental/decompression-api/DecompressionApi.ql +++ b/ruby/ql/src/experimental/decompression-api/DecompressionApi.ql @@ -16,7 +16,6 @@ import codeql.ruby.ApiGraphs import codeql.ruby.DataFlow import codeql.ruby.dataflow.RemoteFlowSources import codeql.ruby.TaintTracking -import DataFlow::PathGraph class DecompressionApiUse extends DataFlow::Node { private DataFlow::CallNode call; @@ -34,18 +33,20 @@ class DecompressionApiUse extends DataFlow::Node { DataFlow::CallNode getCall() { result = call } } -class Configuration extends TaintTracking::Configuration { - Configuration() { this = "DecompressionApiUse" } - +private module DecompressionApiConfig implements DataFlow::ConfigSig { // this predicate will be used to constrain our query to find instances where only remote user-controlled data flows to the sink - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } // our Decompression APIs defined above will be the sinks we use for this query - override predicate isSink(DataFlow::Node sink) { sink instanceof DecompressionApiUse } + predicate isSink(DataFlow::Node sink) { sink instanceof DecompressionApiUse } } -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +private module DecompressionApiFlow = TaintTracking::Global; + +private import DecompressionApiFlow::PathGraph + +from DecompressionApiFlow::PathNode source, DecompressionApiFlow::PathNode sink +where DecompressionApiFlow::flowPath(source, sink) select sink.getNode().(DecompressionApiUse), source, sink, "This call to $@ is unsafe because user-controlled data is used to set the object being decompressed, which could lead to a denial of service attack or malicious code extracted from an unknown source.", sink.getNode().(DecompressionApiUse).getCall(), From 6c06def5d777012996019024ea41fe6c3d1f84d7 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:49:31 +0100 Subject: [PATCH 185/788] Ruby: configsig rb/manually-checking-http-verb --- .../ManuallyCheckHttpVerb.ql | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql index d9360e29e29..7843a046617 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -15,7 +15,6 @@ import codeql.ruby.DataFlow import codeql.ruby.controlflow.CfgNodes import codeql.ruby.frameworks.ActionController import codeql.ruby.TaintTracking -import DataFlow::PathGraph // any `request` calls in an action method class Request extends DataFlow::CallNode { @@ -73,10 +72,8 @@ class RequestGet extends DataFlow::CallNode { } } -class HttpVerbConfig extends TaintTracking::Configuration { - HttpVerbConfig() { this = "HttpVerbConfig" } - - override predicate isSource(DataFlow::Node source) { +private module HttpVerbConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RequestMethod or source instanceof RequestRequestMethod or source instanceof RequestEnvMethod or @@ -85,13 +82,17 @@ class HttpVerbConfig extends TaintTracking::Configuration { source instanceof RequestGet } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(ExprNodes::ConditionalExprCfgNode c | c.getCondition() = sink.asExpr()) or exists(ExprNodes::CaseExprCfgNode c | c.getValue() = sink.asExpr()) } } -from HttpVerbConfig config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +private module HttpVerbFlow = TaintTracking::Global; + +private import HttpVerbFlow::PathGraph + +from HttpVerbFlow::PathNode source, HttpVerbFlow::PathNode sink +where HttpVerbFlow::flowPath(source, sink) select sink.getNode(), source, sink, "Manually checking HTTP verbs is an indication that multiple requests are routed to the same controller action. This could lead to bypassing necessary authorization methods and other protections, like CSRF protection. Prefer using different controller actions for each HTTP method and relying Rails routing to handle mapping resources and verbs to specific methods." From f24102e0e7c6e48a52138a2ff7666a4b74420d7c Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:51:06 +0100 Subject: [PATCH 186/788] Ruby: configsig rb/weak-params --- .../src/experimental/weak-params/WeakParams.ql | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index e164318c874..0d4c6aeb506 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -15,7 +15,6 @@ import codeql.ruby.Concepts import codeql.ruby.DataFlow import codeql.ruby.TaintTracking import codeql.ruby.frameworks.ActionController -import DataFlow::PathGraph /** * Gets a call to `request` in an ActionController controller class. @@ -42,16 +41,18 @@ class WeakParams extends DataFlow::CallNode { * A Taint tracking config where the source is a weak params access in a controller and the sink * is a method call of a model class */ -class Configuration extends TaintTracking::Configuration { - Configuration() { this = "WeakParamsConfiguration" } - - override predicate isSource(DataFlow::Node node) { node instanceof WeakParams } +private module WeakParamsConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node node) { node instanceof WeakParams } // the sink is an instance of a Model class that receives a method call - override predicate isSink(DataFlow::Node node) { node = any(PersistentWriteAccess a).getValue() } + predicate isSink(DataFlow::Node node) { node = any(PersistentWriteAccess a).getValue() } } -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +private module WeakParamsFlow = TaintTracking::Global; + +private import WeakParamsFlow::PathGraph + +from WeakParamsFlow::PathNode source, WeakParamsFlow::PathNode sink +where WeakParamsFlow::flowPath(source, sink) select sink.getNode(), source, sink, "By exposing all keys in request parameters or by blindy accessing them, unintended parameters could be used and lead to mass-assignment or have other unexpected side-effects. It is safer to follow the 'strong parameters' pattern in Rails, which is outlined here: https://api.rubyonrails.org/classes/ActionController/StrongParameters.html" From 956207b7d9a31e491f1331d807899745d8b0fc71 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:52:25 +0100 Subject: [PATCH 187/788] Ruby: configsig rb/meta/tainted-nodes --- ruby/ql/src/queries/meta/TaintedNodes.ql | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ruby/ql/src/queries/meta/TaintedNodes.ql b/ruby/ql/src/queries/meta/TaintedNodes.ql index 18997cfaaee..ee35afeed31 100644 --- a/ruby/ql/src/queries/meta/TaintedNodes.ql +++ b/ruby/ql/src/queries/meta/TaintedNodes.ql @@ -12,17 +12,17 @@ import internal.TaintMetrics import codeql.ruby.DataFlow import codeql.ruby.TaintTracking -class BasicTaintConfiguration extends TaintTracking::Configuration { - BasicTaintConfiguration() { this = "BasicTaintConfiguration" } +private module BasicTaintConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node node) { node = relevantTaintSource(_) } - override predicate isSource(DataFlow::Node node) { node = relevantTaintSource(_) } - - override predicate isSink(DataFlow::Node node) { + predicate isSink(DataFlow::Node node) { // To reduce noise from synthetic nodes, only count nodes that have an associated expression. exists(node.asExpr().getExpr()) } } +private module BasicTaintFlow = TaintTracking::Global; + from DataFlow::Node node -where any(BasicTaintConfiguration cfg).hasFlow(_, node) +where BasicTaintFlow::flow(_, node) select node, "Tainted node" From 73ed5696f3fc203f6ed89caf8a3e325fddd48fa6 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:53:54 +0100 Subject: [PATCH 188/788] Ruby: configsig rb/xxe --- ruby/ql/src/queries/security/cwe-611/Xxe.ql | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ruby/ql/src/queries/security/cwe-611/Xxe.ql b/ruby/ql/src/queries/security/cwe-611/Xxe.ql index 9327e4e204d..45f0402dd39 100644 --- a/ruby/ql/src/queries/security/cwe-611/Xxe.ql +++ b/ruby/ql/src/queries/security/cwe-611/Xxe.ql @@ -13,12 +13,10 @@ * external/cwe/cwe-827 */ -import codeql.ruby.AST import codeql.ruby.dataflow.RemoteFlowSources import codeql.ruby.TaintTracking import codeql.ruby.Concepts import codeql.ruby.DataFlow -import DataFlow::PathGraph class UnsafeXxeSink extends DataFlow::ExprNode { UnsafeXxeSink() { @@ -29,16 +27,18 @@ class UnsafeXxeSink extends DataFlow::ExprNode { } } -class XxeConfig extends TaintTracking::Configuration { - XxeConfig() { this = "XXE.ql::XxeConfig" } +private module XxeConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node src) { src instanceof RemoteFlowSource } - - override predicate isSink(DataFlow::Node sink) { sink instanceof UnsafeXxeSink } + predicate isSink(DataFlow::Node sink) { sink instanceof UnsafeXxeSink } } -from DataFlow::PathNode source, DataFlow::PathNode sink, XxeConfig conf -where conf.hasFlowPath(source, sink) +private module XxeFlow = TaintTracking::Global; + +private import XxeFlow::PathGraph + +from XxeFlow::PathNode source, XxeFlow::PathNode sink +where XxeFlow::flowPath(source, sink) select sink.getNode(), source, sink, "XML parsing depends on a $@ without guarding against external entity expansion.", source.getNode(), "user-provided value" From e399eac2b3c5b3768c471183ee2ac294dcbe9871 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 16:59:42 +0100 Subject: [PATCH 189/788] Ruby: changenote for using new dataflow api --- ruby/ql/src/change-notes/2023-09-03-use-new-dataflow-api.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ruby/ql/src/change-notes/2023-09-03-use-new-dataflow-api.md diff --git a/ruby/ql/src/change-notes/2023-09-03-use-new-dataflow-api.md b/ruby/ql/src/change-notes/2023-09-03-use-new-dataflow-api.md new file mode 100644 index 00000000000..2cde6336ae4 --- /dev/null +++ b/ruby/ql/src/change-notes/2023-09-03-use-new-dataflow-api.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Built-in Ruby queries now use the new DataFlow API. From bf6837cca01f79ca2edd8e9a50aa551dbd410df0 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 17:17:10 +0100 Subject: [PATCH 190/788] Revert "Ruby: configsig rb/http-to-file-access" This reverts commit e77ba1589663905c952cdb643ab66885760b27bd. --- .../ruby/security/HttpToFileAccessQuery.qll | 19 ++----------------- .../security/cwe-912/HttpToFileAccess.ql | 7 ++++--- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/HttpToFileAccessQuery.qll b/ruby/ql/lib/codeql/ruby/security/HttpToFileAccessQuery.qll index 3a45d790efe..992b0cd1e8d 100644 --- a/ruby/ql/lib/codeql/ruby/security/HttpToFileAccessQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/HttpToFileAccessQuery.qll @@ -2,7 +2,7 @@ * Provides a taint tracking configuration for reasoning about writing user-controlled data to files. * * Note, for performance reasons: only import this file if - * `HttpToFileAccessFlow` is needed, otherwise + * `HttpToFileAccess::Configuration` is needed, otherwise * `HttpToFileAccessCustomizations` should be imported instead. */ @@ -10,10 +10,8 @@ private import HttpToFileAccessCustomizations::HttpToFileAccess /** * A taint tracking configuration for writing user-controlled data to files. - * - * DEPRECATED: Use `HttpToFileAccessFlow` instead */ -deprecated class Configuration extends TaintTracking::Configuration { +class Configuration extends TaintTracking::Configuration { Configuration() { this = "HttpToFileAccess" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -25,16 +23,3 @@ deprecated class Configuration extends TaintTracking::Configuration { node instanceof Sanitizer } } - -private module Config implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source instanceof Source } - - predicate isSink(DataFlow::Node sink) { sink instanceof Sink } - - predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } -} - -/** - * Taint-tracking for writing user-controlled data to files. - */ -module HttpToFileAccessFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-912/HttpToFileAccess.ql b/ruby/ql/src/queries/security/cwe-912/HttpToFileAccess.ql index 92e288bc6fe..10a892f8b0f 100644 --- a/ruby/ql/src/queries/security/cwe-912/HttpToFileAccess.ql +++ b/ruby/ql/src/queries/security/cwe-912/HttpToFileAccess.ql @@ -12,10 +12,11 @@ */ import codeql.ruby.AST +import codeql.ruby.DataFlow +import codeql.ruby.DataFlow::DataFlow::PathGraph import codeql.ruby.security.HttpToFileAccessQuery -import HttpToFileAccessFlow::PathGraph -from HttpToFileAccessFlow::PathNode source, HttpToFileAccessFlow::PathNode sink -where HttpToFileAccessFlow::flowPath(source, sink) +from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink +where cfg.hasFlowPath(source, sink) select sink.getNode(), source, sink, "Write to file system depends on $@.", source.getNode(), "untrusted data" From 98851736d6f00f2b6944e1bee977227401901941 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Sun, 3 Sep 2023 17:17:33 +0100 Subject: [PATCH 191/788] Revert "Ruby: configsig rb/tainted-format-string" This reverts commit f5860cb4818dc3c07eeb6731e75bf5df203dd48f. --- .../security/TaintedFormatStringQuery.qll | 22 ++++--------------- .../security/cwe-134/TaintedFormatString.ql | 6 ++--- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/TaintedFormatStringQuery.qll b/ruby/ql/lib/codeql/ruby/security/TaintedFormatStringQuery.qll index 0bc37348560..0475999ed3c 100644 --- a/ruby/ql/lib/codeql/ruby/security/TaintedFormatStringQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/TaintedFormatStringQuery.qll @@ -1,20 +1,19 @@ /** - * Provides a taint-tracking configuration for reasoning about format string + * Provides a taint-tracking configuration for reasoning about format * injections. * * * Note, for performance reasons: only import this file if - * `TaintedFormatStringFlow` is needed, otherwise + * `TaintedFormatString::Configuration` is needed, otherwise * `TaintedFormatStringCustomizations` should be imported instead. */ private import TaintedFormatStringCustomizations::TaintedFormatString /** - * A taint-tracking configuration for format string injections. - * DEPRECATED: Use `TaintedFormatStringFlow` + * A taint-tracking configuration for format injections. */ -deprecated class Configuration extends TaintTracking::Configuration { +class Configuration extends TaintTracking::Configuration { Configuration() { this = "TaintedFormatString" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -26,16 +25,3 @@ deprecated class Configuration extends TaintTracking::Configuration { node instanceof Sanitizer } } - -private module TaintedFormatStringConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source instanceof Source } - - predicate isSink(DataFlow::Node sink) { sink instanceof Sink } - - predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } -} - -/** - * Taint-tracking for format string injections. - */ -module TaintedFormatStringFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/security/cwe-134/TaintedFormatString.ql b/ruby/ql/src/queries/security/cwe-134/TaintedFormatString.ql index 9d85b176482..3a6a2dcf5a0 100644 --- a/ruby/ql/src/queries/security/cwe-134/TaintedFormatString.ql +++ b/ruby/ql/src/queries/security/cwe-134/TaintedFormatString.ql @@ -13,9 +13,9 @@ import codeql.ruby.AST import codeql.ruby.DataFlow import codeql.ruby.security.TaintedFormatStringQuery -import TaintedFormatStringFlow::PathGraph +import DataFlow::PathGraph -from TaintedFormatStringFlow::PathNode source, TaintedFormatStringFlow::PathNode sink -where TaintedFormatStringFlow::flowPath(source, sink) +from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink +where cfg.hasFlowPath(source, sink) select sink.getNode(), source, sink, "Format string depends on a $@.", source.getNode(), "user-provided value" From 55aedbc46cbe3ee1281a6d8122963e1c87a91557 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 4 Sep 2023 15:41:36 +0200 Subject: [PATCH 192/788] C#: Fix logic for flow into property writes --- .../code/csharp/dataflow/internal/DataFlowPrivate.qll | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index 308df381a12..f4b5abf69c6 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -1165,8 +1165,14 @@ private module ArgumentNodes { ) { e1.(Argument).isArgumentOf(e2, _) and exactScope = false and - scope = e2 and - isSuccessor = true + isSuccessor = true and + if e2 instanceof PropertyWrite + then + exists(AssignableDefinition def | + def.getTargetAccess() = e2 and + scope = def.getExpr() + ) + else scope = e2 } } From bbe90be0dbeba2ddbbfb171b27010779973d2a08 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Fri, 18 Aug 2023 16:21:19 +0100 Subject: [PATCH 193/788] Wrap `StandaloneBuildRule` in `WithDotNet` --- .../Semmle.Autobuild.CSharp/CSharpAutobuilder.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp/CSharpAutobuilder.cs b/csharp/autobuilder/Semmle.Autobuild.CSharp/CSharpAutobuilder.cs index 92c615419cc..23fe436d32c 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp/CSharpAutobuilder.cs +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp/CSharpAutobuilder.cs @@ -48,8 +48,11 @@ namespace Semmle.Autobuild.CSharp attempt = new BuildCommandRule(DotNetRule.WithDotNet).Analyse(this, false) & CheckExtractorRun(true); break; case CSharpBuildStrategy.Buildless: - // No need to check that the extractor has been executed in buildless mode - attempt = new StandaloneBuildRule().Analyse(this, false); + attempt = DotNetRule.WithDotNet(this, env => + { + // No need to check that the extractor has been executed in buildless mode + return new StandaloneBuildRule().Analyse(this, false); + }); break; case CSharpBuildStrategy.MSBuild: attempt = new MsBuildRule().Analyse(this, false) & CheckExtractorRun(true); From 4c2a7aab3d8f0b07471f8f65ae71a17d1ff53704 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Fri, 18 Aug 2023 16:25:35 +0100 Subject: [PATCH 194/788] Do not rename `global.json` in standalone mode --- .../DependencyManager.cs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index d6a19b9cd1a..1e9b47c023d 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -103,13 +103,9 @@ namespace Semmle.Extraction.CSharp.DependencyFetching progressMonitor.MissingNuGet(); } - // TODO: remove the below when the required SDK is installed - using (new FileRenamer(sourceDir.GetFiles("global.json", SearchOption.AllDirectories))) - { - Restore(solutions); - Restore(allProjects); - DownloadMissingPackages(allFiles); - } + Restore(solutions); + Restore(allProjects); + DownloadMissingPackages(allFiles); } assemblyCache = new AssemblyCache(dllDirNames, progressMonitor); From 3b010a2fb3c91f75d5b4e8bba09e593b00f40c22 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Mon, 21 Aug 2023 14:32:05 +0100 Subject: [PATCH 195/788] C# standalone: accept path to `.dotnet` folder --- .../DependencyManager.cs | 2 +- .../DependencyOptions.cs | 7 +++++++ .../DotNet.cs | 12 +++++++----- .../Semmle.Extraction.CSharp.Standalone/Options.cs | 3 +++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 1e9b47c023d..5dfaa1b7b00 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -48,7 +48,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching try { - this.dotnet = new DotNet(progressMonitor); + this.dotnet = new DotNet(options, progressMonitor); } catch { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyOptions.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyOptions.cs index bf5800edb46..f95b6b4609a 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyOptions.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyOptions.cs @@ -56,6 +56,11 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// The number of threads to use. /// int Threads { get; } + + /// + /// The path to the local ".dotnet" directory, if any. + /// + string? DotNetPath { get; } } public class DependencyOptions : IDependencyOptions @@ -80,5 +85,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching Excludes.Any(path.Contains); public int Threads { get; set; } = EnvironmentVariables.GetDefaultNumberOfThreads(); + + public string? DotNetPath { get; set; } = null; } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs index 9094a2d1ebb..35c541a195f 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.IO; using Semmle.Util; namespace Semmle.Extraction.CSharp.DependencyFetching @@ -10,12 +11,13 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// internal class DotNet : IDotNet { - private const string dotnet = "dotnet"; private readonly ProgressMonitor progressMonitor; + private readonly string dotnet; - public DotNet(ProgressMonitor progressMonitor) + public DotNet(IDependencyOptions options, ProgressMonitor progressMonitor) { this.progressMonitor = progressMonitor; + this.dotnet = Path.Combine(options.DotNetPath ?? string.Empty, "dotnet"); Info(); } @@ -29,7 +31,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } } - private static ProcessStartInfo MakeDotnetStartInfo(string args, bool redirectStandardOutput) => + private ProcessStartInfo MakeDotnetStartInfo(string args, bool redirectStandardOutput) => new ProcessStartInfo(dotnet, args) { UseShellExecute = false, @@ -39,7 +41,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private bool RunCommand(string args) { progressMonitor.RunningProcess($"{dotnet} {args}"); - using var proc = Process.Start(MakeDotnetStartInfo(args, redirectStandardOutput: false)); + using var proc = Process.Start(this.MakeDotnetStartInfo(args, redirectStandardOutput: false)); proc?.WaitForExit(); var exitCode = proc?.ExitCode ?? -1; if (exitCode != 0) @@ -77,7 +79,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private IList GetListed(string args, string artifact) { progressMonitor.RunningProcess($"{dotnet} {args}"); - var pi = MakeDotnetStartInfo(args, redirectStandardOutput: true); + var pi = this.MakeDotnetStartInfo(args, redirectStandardOutput: true); var exitCode = pi.ReadOutput(out var artifacts); if (exitCode != 0) { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs index 451998396ed..58102fa1aba 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs @@ -53,6 +53,9 @@ namespace Semmle.Extraction.CSharp.Standalone case "references": dependencies.DllDirs.Add(value); return true; + case "dotnet": + dependencies.DotNetPath = value; + return true; default: return base.HandleOption(key, value); } From 37535d1f5222a8dcfb0f55a84151360cab6249de Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Mon, 21 Aug 2023 14:32:45 +0100 Subject: [PATCH 196/788] C#: Make `WithDotNet` public --- .../autobuilder/Semmle.Autobuild.CSharp/DotNetRule.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp/DotNetRule.cs b/csharp/autobuilder/Semmle.Autobuild.CSharp/DotNetRule.cs index e18058339f5..c1bf7cd465e 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp/DotNetRule.cs +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp/DotNetRule.cs @@ -70,7 +70,16 @@ namespace Semmle.Autobuild.CSharp }); } - private static BuildScript WithDotNet(IAutobuilder builder, Func?, BuildScript> f) + /// + /// Returns a script that attempts to download relevant version(s) of the + /// .NET Core SDK, followed by running the script generated by . + /// + /// The arguments to are the path to the directory in which the + /// .NET Core SDK(s) were installed and any additional required environment + /// variables needed by the installed .NET Core (null when no variables + /// are needed). + /// + public static BuildScript WithDotNet(IAutobuilder builder, Func?, BuildScript> f) { var installDir = builder.Actions.PathCombine(builder.Options.RootDirectory, ".dotnet"); var installScript = DownloadDotNet(builder, installDir); From bd5f5314eaf3647a71dcea340e6ea6cd38905e72 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Mon, 21 Aug 2023 14:33:19 +0100 Subject: [PATCH 197/788] C#: Pass `.dotnet` path to standalone extractor --- .../Semmle.Autobuild.CSharp/CSharpAutobuilder.cs | 4 ++-- .../Semmle.Autobuild.CSharp/StandaloneBuildRule.cs | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp/CSharpAutobuilder.cs b/csharp/autobuilder/Semmle.Autobuild.CSharp/CSharpAutobuilder.cs index 23fe436d32c..8fd1950804a 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp/CSharpAutobuilder.cs +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp/CSharpAutobuilder.cs @@ -48,10 +48,10 @@ namespace Semmle.Autobuild.CSharp attempt = new BuildCommandRule(DotNetRule.WithDotNet).Analyse(this, false) & CheckExtractorRun(true); break; case CSharpBuildStrategy.Buildless: - attempt = DotNetRule.WithDotNet(this, env => + attempt = DotNetRule.WithDotNet(this, (dotNetPath, env) => { // No need to check that the extractor has been executed in buildless mode - return new StandaloneBuildRule().Analyse(this, false); + return new StandaloneBuildRule(dotNetPath).Analyse(this, false); }); break; case CSharpBuildStrategy.MSBuild: diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp/StandaloneBuildRule.cs b/csharp/autobuilder/Semmle.Autobuild.CSharp/StandaloneBuildRule.cs index 207ecd70f0a..e72a22065d1 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp/StandaloneBuildRule.cs +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp/StandaloneBuildRule.cs @@ -8,6 +8,13 @@ namespace Semmle.Autobuild.CSharp /// internal class StandaloneBuildRule : IBuildRule { + private readonly string? dotNetPath; + + internal StandaloneBuildRule(string? dotNetPath) + { + this.dotNetPath = dotNetPath; + } + public BuildScript Analyse(IAutobuilder builder, bool auto) { BuildScript GetCommand(string? solution) @@ -35,6 +42,12 @@ namespace Semmle.Autobuild.CSharp cmd.Argument("--skip-nuget"); } + if (!string.IsNullOrEmpty(this.dotNetPath)) + { + cmd.Argument("--dotnet"); + cmd.QuoteArgument(this.dotNetPath); + } + return cmd.Script; } From 53377855711a5b11f38c89868cad373deb5e6628 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Tue, 29 Aug 2023 12:26:40 +0100 Subject: [PATCH 198/788] Remove TODO comment --- .../DependencyManager.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 5dfaa1b7b00..baa4dee04a3 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; @@ -158,7 +158,6 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { progressMonitor.LogInfo($"Found {views.Length} cshtml and razor files."); - // TODO: use SDK specified in global.json var sdk = new Sdk(dotnet).GetNewestSdk(); if (sdk != null) { From 1232120d424193e01d7e7a1c057e48b3834670f4 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 4 Sep 2023 13:56:25 +0100 Subject: [PATCH 199/788] C++: Naively copy the 'surprising lifetimes' query from Coding Standards and add required metadata. --- .../CWE/CWE-416/UseAfterExpiredLifetime.cpp | 34 + .../CWE/CWE-416/UseAfterExpiredLifetime.qhelp | 63 ++ .../CWE/CWE-416/UseAfterExpiredLifetime.ql | 736 ++++++++++++++++++ 3 files changed, 833 insertions(+) create mode 100644 cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.cpp create mode 100644 cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.qhelp create mode 100644 cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.ql diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.cpp b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.cpp new file mode 100644 index 00000000000..937d20eead9 --- /dev/null +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.cpp @@ -0,0 +1,34 @@ +void c_api(const char*); + +void bad_call_c_api() { + // BAD: the memory returned by `c_str()` is freed when the temporary string is destroyed + const char* p = std::string("hello").c_str(); + c_api(p); +} + +void good_call_c_api() { + // GOOD: the "hello" string outlives the pointer returned by `c_str()`, so it's safe to pass it to `c_api()` + std::string hello("hello"); + const char* p = hello.c_str(); + c_api(p); +} + +void bad_remove_even_numbers(std::vector& v) { + // BAD: the iterator is invalidated after the call to `erase`. + for(std::vector::iterator it = v.begin(); it != v.end(); ++it) { + if(*it % 2 == 0) { + v.erase(it); + } + } +} + +void good_remove_even_numbers(std::vector& v) { + // GOOD: `erase` returns the iterator to the next element. + for(std::vector::iterator it = v.begin(); it != v.end(); ) { + if(*it % 2 == 0) { + it = v.erase(it); + } else { + ++it; + } + } +} \ No newline at end of file diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.qhelp b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.qhelp new file mode 100644 index 00000000000..f08f7d8fd03 --- /dev/null +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.qhelp @@ -0,0 +1,63 @@ + + + +

    +Using an object after its lifetime has ended results in undefined behavior. +When an object's lifetime has ended it relinquishes ownership of its resources and the memory it occupied may be reused for other purposes. +If the object is accessed after its lifetime has ended, the program may crash or behave in unexpected ways. +

    + +
    + + +

    +Ensure that no objct is accessed after its lifetime has ended. +Use RAII ("Resource Acquisition Is Initialization") to manage the lifetime of objects, and avoid manual memory management, if possible. +

    + +
    + +

    +The following two functions demonstrate common lifetime violations when working with the C++ standard library. + +The bad_call_c_api function contains a use of an expired lifetime. +First, a temporary object of type std::string is constructed, and a pointer to its internal buffer is stored in a local variable. +Once the c_str() call returns, the temporary object is destroyed, and the memory pointed to by p is freed. +Thus, any attempt to dereference p inside c_api will result in a use-after-free vulnerability. + +The good_call_c_api function contains a fixed version of the first example. +The variable hello is declared as a local variable, and the pointer to its internal buffer is stored in p. +The lifetime of hello outlives the call to c_api, so the pointer stored in p remains valid throughout the call to c_api. +

    + +

    +The bad_remove_even_numbers function demonstrates a potential issue with iterator invalidation. +Each C++ standard library container comes with a specification of which operations invalidates iterators pointing into the container. +For example, calling erase on an object of type std::vector<T> invalidates all its iterators, and thus any attempt to dereference the iterator can result in a use-after-free vulnerability. + +The good_remove_even_numbers function contains a fixd version of the third example. +The erase function returns an iterator to the element following the last element removed, and this return value is used to ensure that it remains valid after the call to erase. + +

    + + +
    + + +
  • CERT C Coding Standard: +MEM30-C. Do not access freed memory.
  • +
  • +OWASP: +Using freed memory. +
  • +
  • +Lifetime safety: Preventing common dangling +
  • +
  • +Containers library +
  • + +
    +
    diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.ql b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.ql new file mode 100644 index 00000000000..e42e73dd92b --- /dev/null +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.ql @@ -0,0 +1,736 @@ +/** + * @id cpp/use-after-expired-lifetime + * @name Use of object after its lifetime has ended + * @description Accessing an object after its lifetime has ended can result in security vulnerabilities and undefined behavior. + * @kind problem + * @precision medium + * @problem.severity error + * @tags correctness + * security + * experimental + * external/cwe/cwe-416 + */ + +import cpp +import semmle.code.cpp.dataflow.DataFlow +import semmle.code.cpp.controlflow.Nullness + +class StarOperator extends Operator { + StarOperator() { + this.hasName("operator*") and + this.getNumberOfParameters() = 0 + } +} + +class IncrementOperator extends Operator { + IncrementOperator() { + this.hasName("operator++") and + this.getNumberOfParameters() = 0 + } +} + +class StructureDerefOperator extends Operator { + StructureDerefOperator() { + this.hasName("operator->") and + this.getNumberOfParameters() = 0 + } +} + +class SubscriptOperator extends Operator { + SubscriptOperator() { + this.hasName("operator[]") and + this.getNumberOfParameters() = 1 + } +} + +/** + * A type which is an `Indirection` type according to the Lifetime profile. + * + * An indirection type is either a `LifetimePointerType` or `LifetimeOwnerType`. + */ +abstract class LifetimeIndirectionType extends Type { + /** + * Gets the `DerefType` of this indirection type. + * + * This corresponds to the owned or pointed to type. + */ + Type getDerefType() { + result = this.(PointerType).getBaseType() + or + result = this.(ReferenceType).getBaseType() + or + exists(MemberFunction mf | mf.getDeclaringType() = this | + result = mf.(StarOperator).getType().getUnspecifiedType().(ReferenceType).getBaseType() + or + result = mf.(SubscriptOperator).getType().getUnspecifiedType().(ReferenceType).getBaseType() + or + result = + mf.(StructureDerefOperator).getType().getUnspecifiedType().(PointerType).getBaseType() + or + mf.getName() = "begin" and + result = mf.getType().(LifetimePointerType).getDerefType() + ) + } +} + +/** + * A lifetime owner type. + * + * A type which owns another object. For example, `std::unique_ptr`. Includes + * `LifetimeSharedOwnerType`. + */ +class LifetimeOwnerType extends LifetimeIndirectionType { + LifetimeOwnerType() { + // Any shared owner types are also owner types + this instanceof LifetimeSharedOwnerType + or + // This is a container type, or a type with a star operator and.. + ( + this instanceof ContainerType + or + exists(StarOperator mf | mf.getDeclaringType() = this) + ) and + // .. has a "user" provided destructor + exists(Destructor d | + d.getDeclaringType() = this and + not d.isCompilerGenerated() + ) + or + // Any specified version of an owner type is also an owner type + this.getUnspecifiedType() instanceof LifetimeOwnerType + or + // Has a field which is a lifetime owner type + this.(Class).getAField().getType() instanceof LifetimeOwnerType + or + // Derived from a public base class which is a owner type + exists(ClassDerivation cd | + cd = this.(Class).getADerivation() and + cd.getBaseClass() instanceof LifetimeOwnerType and + cd.getASpecifier().hasName("public") + ) + or + // Lifetime profile treats the following types as owner types, even though they don't fully + // adhere to the requirements above + this.(Class) + .hasQualifiedName("std", + ["stack", "queue", "priority_queue", "optional", "variant", "any", "regex"]) + or + // Explicit annotation on the type + this.getAnAttribute().getName().matches("gsl::Owner%") + } +} + +/** + * A `ContainerType`, based on `[container.requirements]` with some adaptions to capture more real + * world containers. + */ +class ContainerType extends Class { + ContainerType() { + // We use a simpler set of heuristics than the `[container.requirements]`, requiring only + // `begin()`/`end()`/`size()` as the minimum API for something to be considered a "container" + // type + this.getAMemberFunction().getName() = "begin" and + this.getAMemberFunction().getName() = "end" and + this.getAMemberFunction().getName() = "size" + or + // This class is a `ContainerType` if it is constructed from a `ContainerType`. This is + // important, because templates may not have instantiated all the required member functions + exists(TemplateClass tc | + this.isConstructedFrom(tc) and + tc instanceof ContainerType + ) + } +} + +/** + * A lifetime "shared owner" type. + * + * A shared owner is type that "owns" another object, and shares that ownership with other owners. + * Examples include `std::shared_ptr` along with other reference counting types. + */ +class LifetimeSharedOwnerType extends Type { + LifetimeSharedOwnerType() { + /* + * Find all types which can be dereferenced (i.e. have unary * operator), and are therefore + * likely to be "owner"s or "pointer"s to other objects. We then consider these classes to be + * shared owners if: + * - They can be copied (a unique "owner" type would not be copyable) + * - They can destroyed + */ + + // unary * (i.e. can be dereferenced) + exists(StarOperator mf | mf.getDeclaringType() = this) and + // "User" provided destructor + exists(Destructor d | + d.getDeclaringType() = this and + not d.isCompilerGenerated() + ) and + // A copy constructor and copy assignment operator + exists(CopyConstructor cc | cc.getDeclaringType() = this and not cc.isDeleted()) and + exists(CopyAssignmentOperator cc | cc.getDeclaringType() = this and not cc.isDeleted()) + or + // This class is a `SharedOwnerType` if it is constructed from a `SharedOwnerType`. This is + // important, because templates may not have instantiated all the required member functions + exists(TemplateClass tc | + this.(Class).isConstructedFrom(tc) and + tc instanceof LifetimeSharedOwnerType + ) + or + // Any specified version of a shared owner type is also a shared owner type + this.getUnspecifiedType() instanceof LifetimeSharedOwnerType + or + // Has a field which is a lifetime shared owner type + this.(Class).getAField().getType() instanceof LifetimeSharedOwnerType + or + // Derived from a public base class which is a shared owner type + exists(ClassDerivation cd | + cd = this.(Class).getADerivation() and + cd.getBaseClass() instanceof LifetimeSharedOwnerType and + cd.getASpecifier().hasName("public") + ) + or + // Lifetime profile treats the following types as shared owner types, even though they don't + // fully adhere to the requirements above + this.(Class).hasQualifiedName("std", "shared_future") + or + // Explicit annotation on the type + this.getAnAttribute().getName().matches("gsl::SharedOwner%") + } +} + +/** + * An `IteratorType`, based on `[iterator.requirements]` with some adaptions to capture more real + * world iterators. + */ +class IteratorType extends Type { + IteratorType() { + // We consider anything with an increment and * operator to be sufficient to be an iterator type + exists(StarOperator mf | + mf.getDeclaringType() = this and mf.getType().getUnspecifiedType() instanceof ReferenceType + ) and + exists(IncrementOperator op | + op.getDeclaringType() = this and op.getType().(ReferenceType).getBaseType() = this + ) + or + // Along with unspecified versions of the types above + this.getUnspecifiedType() instanceof IteratorType + } +} + +/** + * A lifetime pointer type. + * + * A type which points to another object. For example, `std::unique_ptr`. Includes + * `LifetimeSharedOwnerType`. + */ +class LifetimePointerType extends LifetimeIndirectionType { + LifetimePointerType() { + this instanceof IteratorType + or + this instanceof PointerType + or + this instanceof ReferenceType + or + // A shared owner type is a pointer type, but an owner type is not. + this instanceof LifetimeSharedOwnerType and + not this instanceof LifetimeOwnerType + or + this.(Class).hasQualifiedName("std", "reference_wrapper") + or + exists(Class vectorBool, UserType reference | + vectorBool.hasQualifiedName("std", "vector") and + vectorBool.getATemplateArgument() instanceof BoolType and + reference.hasName("reference") and + reference.getDeclaringType() = vectorBool and + this = reference.getUnderlyingType() + ) + or + // Any specified version of a pointer type is also an owner type + this.getUnspecifiedType() instanceof LifetimePointerType + or + // Has a field which is a lifetime pointer type + this.(Class).getAField().getType() instanceof LifetimePointerType + or + // Derived from a public base class which is a pointer type + exists(ClassDerivation cd | + cd = this.(Class).getADerivation() and + cd.getBaseClass() instanceof LifetimePointerType and + cd.getASpecifier().hasName("public") + ) + or + // Explicit annotation on the type + this.getAnAttribute().getName().matches("gsl::Pointer%") + } +} + +/** A full expression as defined in [intro.execution] of N3797. */ +class FullExpr extends Expr { + FullExpr() { + // A full-expression is not a subexpression + not exists(Expr p | this.getParent() = p) + or + // A sub-expression that is an unevaluated operand + this.isUnevaluated() + } +} + +/** Gets the `FullExpression` scope of the `TemporaryObjectExpr`. */ +FullExpr getTemporaryObjectExprScope(TemporaryObjectExpr toe) { + result = toe.getUnconverted().getParent*() +} + +/** + * See `LifetimeLocalVariable` and subclasses. + */ +private newtype TLifetimeLocalVariable = + TLocalScopeVariable(LocalScopeVariable lsv) { not lsv.isStatic() } or + TTemporaryObject(TemporaryObjectExpr toe) + +/* + * Note, the lifetime profile also supports locally initialized _aggregates_, which we could + * support with something like this: + * ``` + * TAggregateField(TLocalScopeVariable base, Field f) { + * exists(LocalScopeVariable lsv | + * base = TLocalScopeVariable(lsv) and + * lsv.getType() = f.getDeclaringType() and + * lsv.getType() instanceof LifetimeAggregateType + * ) + * } + * ``` + */ + +/** + * A "LocalVariable" as defined by the lifetime profile. + * + * This includes newly introduced objects with a local scope. + */ +class LifetimeLocalVariable extends TLifetimeLocalVariable { + string toString() { none() } // specified in sub-classes + + Type getType() { none() } +} + +/** + * A parameter or `LocalVariable`, used as a `LifetimeLocalVariable` + */ +class LifetimeLocalScopeVariable extends TLocalScopeVariable, LifetimeLocalVariable { + LocalScopeVariable getVariable() { this = TLocalScopeVariable(result) } + + override Type getType() { result = this.getVariable().getType() } + + override string toString() { result = this.getVariable().toString() } +} + +/** + * A temporary object used as a `LifetimeLocalVariable`. + */ +class LifetimeTemporaryObject extends TTemporaryObject, LifetimeLocalVariable { + TemporaryObjectExpr getTemporaryObjectExpr() { this = TTemporaryObject(result) } + + override Type getType() { result = this.getTemporaryObjectExpr().getType() } + + override string toString() { result = this.getTemporaryObjectExpr().toString() } +} + +newtype TInvalidReason = + /** LifetimeLocalVariable is invalid because it hasn't been initialized. */ + TUninitialized(DeclStmt ds, Variable v) { ds.getADeclaration() = v } or + /** LifetimeLocalVariable is invalid because it points to a variable which has gone out of scope. */ + TVariableOutOfScope(LocalScopeVariable v, ControlFlowNode cfn) { goesOutOfScopeAt(v, cfn) } or + /** LifetimeLocalVariable is invalid because it points to a temporary object expression which has gone out of scope. */ + TTemporaryOutOfScope(TemporaryObjectExpr toe) or + /** LifetimeLocalVariable is invalid because it points to data held by an owner which has since been invalidated. */ + TOwnerModified(FunctionCall fc) + +/** + * A reason why a pointer may be invalid. + */ +class InvalidReason extends TInvalidReason { + /** Holds if this reason indicates the pointer is accessed before the lifetime of an object began. */ + predicate isBeforeLifetime() { this instanceof TUninitialized } + + /** Holds if this reason indicates the pointer is accessed after the lifetime of an object has finished. */ + predicate isAfterLifetime() { not this.isBeforeLifetime() } + + /** Gets a description of the reason why this pointer may be invalid. */ + string getDescription() { + exists(DeclStmt ds, Variable v | + this = TUninitialized(ds, v) and + result = "variable " + v.getName() + " was never initialized" + ) + or + exists(LocalScopeVariable v, ControlFlowNode cfn | + this = TVariableOutOfScope(v, cfn) and + result = "variable " + v.getName() + " went out of scope" + ) + or + exists(TemporaryObjectExpr toe | + this = TTemporaryOutOfScope(toe) and + result = "temporary object went out of scope" + ) + or + exists(FunctionCall fc | + this = TOwnerModified(fc) and + result = "owner type was modified" + ) + } + + string toString() { result = this.getDescription() } + + /** Get an element that explains the reason for the invalid determination. */ + private Element getExplanatoryElement() { + exists(DeclStmt ds | + this = TUninitialized(ds, _) and + result = ds + ) + or + exists(ControlFlowNode cfn | + this = TVariableOutOfScope(_, cfn) and + result = cfn + ) + or + exists(TemporaryObjectExpr toe | + this = TTemporaryOutOfScope(toe) and + result = getTemporaryObjectExprScope(toe) + ) + or + exists(FunctionCall fc | + this = TOwnerModified(fc) and + result = fc + ) + } + + /** + * Provides a `message` for use in alert messages. + * + * The message will contain a `$@` placeholder, for which `explanation` and `explanationDesc` are + * the placeholder components which should be added as extra columns. + */ + predicate hasMessage(string message, Element explanation, string explanationDesc) { + message = "because the " + this.getDescription() + " $@." and + explanation = this.getExplanatoryElement() and + explanationDesc = "here" + } +} + +/** + * A reason why a pointer may be null. + */ +newtype TNullReason = + // Null because the `NullValue` was assigned + TNullAssignment(NullValue e) + +class NullReason extends TNullReason { + /** Gets a description of the reason why this pointer may be null. */ + string getDescription() { + exists(NullValue nv | + this = TNullAssignment(nv) and + result = "null value was assigned" + ) + } + + string toString() { result = this.getDescription() } +} + +/** See `PSetEntry` and subclasses. */ +newtype TPSetEntry = + /** Points to a lifetime local variable. */ + PSetVar(LifetimeLocalVariable lv) or + /** Points to a lifetime local variable that represents an owner type. */ + PSetOwner(LifetimeLocalVariable lv, int level) { + level = [0 .. 2] and lv.getType() instanceof LifetimeOwnerType + } or + /** Points to a global variable. */ + PSetGlobal() or + /** A null pointer. */ + PSetNull(NullReason nr) or + /** An invalid pointer, for the given reason. */ + PSetInvalid(InvalidReason ir) or + /** An unknown pointer. */ + PSetUnknown() + +/** + * An entry in the points-to set for a particular "LifetimeLocalVariable" at a particular + * point in the program. + */ +class PSetEntry extends TPSetEntry { + string toString() { + exists(LifetimeLocalVariable lv | + this = PSetVar(lv) and + result = "Var(" + lv.toString() + ")" + ) + or + this = PSetGlobal() and result = "global" + or + exists(LifetimeLocalVariable lv, int level | + this = PSetOwner(lv, level) and + result = "Owner(" + lv.toString() + "," + level + ")" + ) + or + exists(NullReason nr | this = PSetNull(nr) and result = "null because" + nr) + or + exists(InvalidReason ir | this = PSetInvalid(ir) and result = "invalid because " + ir) + or + this = PSetUnknown() and result = "unknown" + } +} + +/** + * The "pmap" or "points-to map" for a "lifetime" local variable. + */ +predicate pointsToMap(ControlFlowNode cfn, LifetimeLocalVariable lv, PSetEntry ps) { + if isPSetReassigned(cfn, lv) + then ps = getAnAssignedPSetEntry(cfn, lv) + else + // Exclude unknown for now + exists(ControlFlowNode pred, PSetEntry prevPSet | + pred = cfn.getAPredecessor() and + pointsToMap(pred, lv, prevPSet) and + // Not PSetNull() and a non-null successor of a null check + not exists(AnalysedExpr ae | + ps = PSetNull(_) and + cfn = ae.getNonNullSuccessor(lv.(LifetimeLocalScopeVariable).getVariable()) + ) and + // lv is not out of scope at this node + not goesOutOfScopeAt(lv.(LifetimeLocalScopeVariable).getVariable(), cfn) + | + // Propagate a PSetEntry from the predecessor node, so long as the + // PSetEntry is not invalidated at this node + ps = prevPSet and + not exists(getAnInvalidation(prevPSet, cfn)) + or + // Replace prevPSet with an invalidation reason at this node + ps = getAnInvalidation(prevPSet, cfn) + ) +} + +private predicate isPSetReassigned(ControlFlowNode cfn, LifetimeLocalVariable lv) { + exists(DeclStmt ds | + cfn = ds and + ds.getADeclaration() = lv.(LifetimeLocalScopeVariable).getVariable() and + lv.getType() instanceof PointerType + ) + or + exists(TemporaryObjectExpr toe | + toe = lv.(LifetimeTemporaryObject).getTemporaryObjectExpr() and + cfn = toe + ) + or + // Assigned a value + cfn = lv.(LifetimeLocalScopeVariable).getVariable().getAnAssignedValue() + or + // If the address of a local var is passed to a function, then assume it initializes it + exists(Call fc, AddressOfExpr aoe | + cfn = aoe and + fc.getAnArgument() = aoe and + lv.(LifetimeLocalScopeVariable).getVariable() = aoe.getOperand().(VariableAccess).getTarget() + ) +} + +/** Is the `lv` assigned or reassigned at this ControlFlowNode `cfn`. */ +private PSetEntry getAnAssignedPSetEntry(ControlFlowNode cfn, LifetimeLocalVariable lv) { + exists(DeclStmt ds | + cfn = ds and + ds.getADeclaration() = lv.(LifetimeLocalScopeVariable).getVariable() + | + lv.getType() instanceof PointerType and + result = PSetInvalid(TUninitialized(ds, lv.(LifetimeLocalScopeVariable).getVariable())) + ) + or + exists(TemporaryObjectExpr toe | + toe = lv.(LifetimeTemporaryObject).getTemporaryObjectExpr() and + cfn = toe and + result = PSetVar(lv) + ) + or + // Assigned a value + exists(Expr assign | + assign = lv.(LifetimeLocalScopeVariable).getVariable().getAnAssignedValue() and + cfn = assign + | + if isKnownAssignmentType(assign) + then knownAssignmentType(assign, result) + else result = PSetUnknown() + ) + or + // If the address of a local var is passed to a function, then assume it initializes it + exists(Call fc, AddressOfExpr aoe | + cfn = aoe and + fc.getAnArgument() = aoe and + lv.(LifetimeLocalScopeVariable).getVariable() = aoe.getOperand().(VariableAccess).getTarget() and + result = PSetUnknown() + ) +} + +predicate isKnownAssignmentType(Expr assign) { + assign = any(LocalScopeVariable lv).getAnAssignedValue() and + ( + exists(Variable v | v = assign.(AddressOfExpr).getOperand().(VariableAccess).getTarget() | + v instanceof LocalScopeVariable + or + v instanceof GlobalVariable + ) + or + // Assignment of a previous variable + exists(VariableAccess va | + va = assign and + va.getTarget().(LocalScopeVariable).getType() instanceof LifetimePointerType + ) + or + assign instanceof NullValue + or + exists(FunctionCall fc | + assign = fc and + fc.getNumberOfArguments() = 0 and + fc.getType() instanceof LifetimePointerType + | + // A function call is a product of its inputs (just handle qualifiers at the moment) + exists(LifetimeLocalVariable lv | + lv = TTemporaryObject(fc.getQualifier().getConversion()) + or + lv = TLocalScopeVariable(fc.getQualifier().(VariableAccess).getTarget()) + | + lv.getType() instanceof LifetimePointerType + or + lv.getType() instanceof LifetimeOwnerType + ) + ) + ) +} + +/** + * An expression which is assigned to a `LocalScopeVariable`, which has a known PSet value i.e. not + * an "Unknown" PSet value. + */ +predicate knownAssignmentType(Expr assign, PSetEntry ps) { + assign = any(LocalScopeVariable lv).getAnAssignedValue() and + ( + // The assigned value is `&v` + exists(Variable v | v = assign.(AddressOfExpr).getOperand().(VariableAccess).getTarget() | + v instanceof LocalScopeVariable and + ( + // If the variable we are taking the address of is a reference type, then we are really + // taking the address of whatever the reference type "points-to". Use the `pointsToMap` + // to determine viable `LifetimeLocalScopeVariable`s this could point to. + if v.getType() instanceof ReferenceType + then + pointsToMap(assign.getAPredecessor(), + any(LifetimeLocalScopeVariable lv | lv.getVariable() = v), ps) + else + // This assignment points-to `v` itself. + ps = PSetVar(TLocalScopeVariable(v)) + ) + or + // If the variable we are taking the address of is a reference variable, then this points-to + // a global. If the variable we taking the address of is a reference type, we need to consider + // that it might point-to a global, even if it is a LocalScopeVariable (this case is required + // so that we still produce a result even if the pointsToMap is empty for `lv`). + (v instanceof GlobalVariable or v.getType() instanceof ReferenceType) and + ps = PSetGlobal() + ) + or + // Assignment of a previous variable + exists(VariableAccess va | + va = assign and + va.getTarget().(LocalScopeVariable).getType() instanceof LifetimePointerType and + // PSet of that become PSet of this + pointsToMap(assign.getAPredecessor(), + any(LifetimeLocalScopeVariable lv | lv.getVariable() = va.getTarget()), ps) + ) + or + // The `NullValue` class covers all types of null equivalent expressions. This case also handles + // default and value initialization, where an "implicit" null value expression is added by the + // extractor + assign instanceof NullValue and ps = PSetNull(TNullAssignment(assign)) + or + exists(FunctionCall fc | + assign = fc and + // If the assignment is being converted via a ReferenceDereferenceExpr, then + // we are essentially copying the original object + not assign.getFullyConverted() instanceof ReferenceDereferenceExpr and + fc.getNumberOfArguments() = 0 and + fc.getType() instanceof LifetimePointerType + | + // A function call is a product of its inputs (just handle qualifiers at the moment) + exists(LifetimeLocalVariable lv | + lv = TTemporaryObject(fc.getQualifier().getConversion()) + or + lv = TLocalScopeVariable(fc.getQualifier().(VariableAccess).getTarget()) + | + ps = PSetVar(lv) and lv.getType() instanceof LifetimePointerType + or + ps = PSetOwner(lv, 0) and lv.getType() instanceof LifetimeOwnerType + ) + ) + ) +} + +/** + * Holds if `cfn` is a node that occur directly after the local scope variable `lv` has gone out of scope. + */ +predicate goesOutOfScopeAt(LocalScopeVariable lv, ControlFlowNode cfn) { + exists(BlockStmt scope | + scope = lv.getParentScope() and + scope.getAChild+() = cfn.getAPredecessor().getEnclosingStmt() and + not scope.getAChild+() = cfn.getEnclosingStmt() + ) +} + +PSetInvalid getAnInvalidation(PSetEntry ps, ControlFlowNode cfn) { + exists(LifetimeLocalScopeVariable lv | ps = PSetVar(lv) | + result = PSetInvalid(TVariableOutOfScope(lv.getVariable(), cfn)) + ) + or + exists(LifetimeLocalScopeVariable lv | ps = PSetOwner(lv, _) | + result = PSetInvalid(TVariableOutOfScope(lv.getVariable(), cfn)) + or + exists(FunctionCall fc | + fc = cfn and + fc.getQualifier() = lv.getVariable().getAnAccess() and + not fc.getTarget() instanceof ConstMemberFunction and + // non-const versions of begin and end should nevertheless be considered const + not fc.getTarget().hasName(["begin", "end"]) and + result = PSetInvalid(TOwnerModified(fc)) + ) + ) + or + // temporary objects end after the full expression + exists(LifetimeTemporaryObject lto | + ps = PSetVar(lto) + or + ps = PSetOwner(lto, _) + | + cfn = lto.getTemporaryObjectExpr().getUnconverted().getParent*().(FullExpr).getASuccessor() and + result = PSetInvalid(TTemporaryOutOfScope(lto.getTemporaryObjectExpr())) + ) +} + +/** + * An expression which is dereferenced and may be an "invalid" value. + */ +class InvalidDereference extends VariableAccess { + InvalidReason ir; + + InvalidDereference() { + // The local points to map suggests this points to an invalid set + exists(LocalScopeVariable lv | + lv = this.getTarget() and + pointsToMap(this, TLocalScopeVariable(lv), PSetInvalid(ir)) + ) + } + + /** Gets a reason why this dereference could point to an invalid value. */ + InvalidReason getAnInvalidReason() { result = ir } +} + +from + InvalidDereference e, Element explanation, string explanationDesc, InvalidReason ir, + string invalidMessage +where + ir = e.getAnInvalidReason() and + ir.isAfterLifetime() and + ir.hasMessage(invalidMessage, explanation, explanationDesc) +select e, + e.(VariableAccess).getTarget().getName() + " is dereferenced here but accesses invalid memory " + + invalidMessage, explanation, explanationDesc From a2912cd72b6a757a942f0e59ea6ddb303e0dcdc0 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 4 Sep 2023 15:47:00 +0200 Subject: [PATCH 200/788] Ruby: Use proper `PathGraph` module in inline flow tests Gets rid of ``` PathNode is incompatible with PathNode (the type of the edge relation). ``` warnings. --- .../dataflow/array-flow/array-flow.expected | 4391 ----------------- .../dataflow/array-flow/array-flow.ql | 2 +- .../call-sensitivity.expected | 165 - .../call-sensitivity/call-sensitivity.ql | 2 +- .../dataflow/global/Flow.expected | 252 - .../library-tests/dataflow/global/Flow.ql | 2 +- .../dataflow/hash-flow/hash-flow.ql | 2 +- .../dataflow/local/InlineFlowTest.expected | 74 - .../dataflow/local/InlineFlowTest.ql | 2 +- .../dataflow/params/params-flow.ql | 2 +- .../pathname-flow/pathame-flow.expected | 288 -- .../dataflow/pathname-flow/pathame-flow.ql | 2 +- .../dataflow/ssa-flow/ssa-flow.expected | 7 - .../dataflow/ssa-flow/ssa-flow.ql | 2 +- .../dataflow/string-flow/string-flow.expected | 732 --- .../dataflow/string-flow/string-flow.ql | 2 +- .../action_controller/params-flow.ql | 2 +- .../frameworks/action_mailer/params-flow.ql | 2 +- .../ActiveSupportDataFlow.expected | 859 ---- .../active_support/ActiveSupportDataFlow.ql | 2 +- .../frameworks/arel/Arel.expected | 10 + .../library-tests/frameworks/arel/Arel.ql | 1 + .../frameworks/sinatra/Flow.expected | 7 - .../library-tests/frameworks/sinatra/Flow.ql | 2 +- 24 files changed, 24 insertions(+), 6788 deletions(-) diff --git a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected index aae13446229..c52399b3914 100644 --- a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected @@ -1,8752 +1,4361 @@ testFailures edges | array_flow.rb:2:5:2:5 | a [element 0] | array_flow.rb:3:10:3:10 | a [element 0] | -| array_flow.rb:2:5:2:5 | a [element 0] | array_flow.rb:3:10:3:10 | a [element 0] | -| array_flow.rb:2:5:2:5 | a [element 0] | array_flow.rb:5:10:5:10 | a [element 0] | | array_flow.rb:2:5:2:5 | a [element 0] | array_flow.rb:5:10:5:10 | a [element 0] | | array_flow.rb:2:9:2:20 | * ... [element 0] | array_flow.rb:2:5:2:5 | a [element 0] | -| array_flow.rb:2:9:2:20 | * ... [element 0] | array_flow.rb:2:5:2:5 | a [element 0] | -| array_flow.rb:2:10:2:20 | call to source | array_flow.rb:2:9:2:20 | * ... [element 0] | | array_flow.rb:2:10:2:20 | call to source | array_flow.rb:2:9:2:20 | * ... [element 0] | | array_flow.rb:3:10:3:10 | a [element 0] | array_flow.rb:3:10:3:13 | ...[...] | -| array_flow.rb:3:10:3:10 | a [element 0] | array_flow.rb:3:10:3:13 | ...[...] | -| array_flow.rb:5:10:5:10 | a [element 0] | array_flow.rb:5:10:5:13 | ...[...] | | array_flow.rb:5:10:5:10 | a [element 0] | array_flow.rb:5:10:5:13 | ...[...] | | array_flow.rb:9:5:9:5 | a [element 1] | array_flow.rb:11:10:11:10 | a [element 1] | -| array_flow.rb:9:5:9:5 | a [element 1] | array_flow.rb:11:10:11:10 | a [element 1] | -| array_flow.rb:9:5:9:5 | a [element 1] | array_flow.rb:13:10:13:10 | a [element 1] | | array_flow.rb:9:5:9:5 | a [element 1] | array_flow.rb:13:10:13:10 | a [element 1] | | array_flow.rb:9:13:9:21 | call to source | array_flow.rb:9:5:9:5 | a [element 1] | -| array_flow.rb:9:13:9:21 | call to source | array_flow.rb:9:5:9:5 | a [element 1] | -| array_flow.rb:11:10:11:10 | a [element 1] | array_flow.rb:11:10:11:13 | ...[...] | | array_flow.rb:11:10:11:10 | a [element 1] | array_flow.rb:11:10:11:13 | ...[...] | | array_flow.rb:13:10:13:10 | a [element 1] | array_flow.rb:13:10:13:13 | ...[...] | -| array_flow.rb:13:10:13:10 | a [element 1] | array_flow.rb:13:10:13:13 | ...[...] | -| array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:18:10:18:10 | a [element] | | array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:18:10:18:10 | a [element] | | array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:19:10:19:10 | a [element] | -| array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:19:10:19:10 | a [element] | -| array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:21:19:21:19 | a [element] | | array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:21:19:21:19 | a [element] | | array_flow.rb:17:9:17:33 | call to new [element] | array_flow.rb:17:5:17:5 | a [element] | -| array_flow.rb:17:9:17:33 | call to new [element] | array_flow.rb:17:5:17:5 | a [element] | -| array_flow.rb:17:22:17:32 | call to source | array_flow.rb:17:9:17:33 | call to new [element] | | array_flow.rb:17:22:17:32 | call to source | array_flow.rb:17:9:17:33 | call to new [element] | | array_flow.rb:18:10:18:10 | a [element] | array_flow.rb:18:10:18:13 | ...[...] | -| array_flow.rb:18:10:18:10 | a [element] | array_flow.rb:18:10:18:13 | ...[...] | -| array_flow.rb:19:10:19:10 | a [element] | array_flow.rb:19:10:19:13 | ...[...] | | array_flow.rb:19:10:19:10 | a [element] | array_flow.rb:19:10:19:13 | ...[...] | | array_flow.rb:21:5:21:5 | b [element] | array_flow.rb:22:10:22:10 | b [element] | -| array_flow.rb:21:5:21:5 | b [element] | array_flow.rb:22:10:22:10 | b [element] | -| array_flow.rb:21:5:21:5 | b [element] | array_flow.rb:23:10:23:10 | b [element] | | array_flow.rb:21:5:21:5 | b [element] | array_flow.rb:23:10:23:10 | b [element] | | array_flow.rb:21:9:21:20 | call to new [element] | array_flow.rb:21:5:21:5 | b [element] | -| array_flow.rb:21:9:21:20 | call to new [element] | array_flow.rb:21:5:21:5 | b [element] | -| array_flow.rb:21:19:21:19 | a [element] | array_flow.rb:21:9:21:20 | call to new [element] | | array_flow.rb:21:19:21:19 | a [element] | array_flow.rb:21:9:21:20 | call to new [element] | | array_flow.rb:22:10:22:10 | b [element] | array_flow.rb:22:10:22:13 | ...[...] | -| array_flow.rb:22:10:22:10 | b [element] | array_flow.rb:22:10:22:13 | ...[...] | -| array_flow.rb:23:10:23:10 | b [element] | array_flow.rb:23:10:23:13 | ...[...] | | array_flow.rb:23:10:23:10 | b [element] | array_flow.rb:23:10:23:13 | ...[...] | | array_flow.rb:25:5:25:5 | c [element] | array_flow.rb:28:10:28:10 | c [element] | -| array_flow.rb:25:5:25:5 | c [element] | array_flow.rb:28:10:28:10 | c [element] | -| array_flow.rb:25:5:25:5 | c [element] | array_flow.rb:29:10:29:10 | c [element] | | array_flow.rb:25:5:25:5 | c [element] | array_flow.rb:29:10:29:10 | c [element] | | array_flow.rb:25:9:27:7 | call to new [element] | array_flow.rb:25:5:25:5 | c [element] | -| array_flow.rb:25:9:27:7 | call to new [element] | array_flow.rb:25:5:25:5 | c [element] | -| array_flow.rb:26:9:26:19 | call to source | array_flow.rb:25:9:27:7 | call to new [element] | | array_flow.rb:26:9:26:19 | call to source | array_flow.rb:25:9:27:7 | call to new [element] | | array_flow.rb:28:10:28:10 | c [element] | array_flow.rb:28:10:28:13 | ...[...] | -| array_flow.rb:28:10:28:10 | c [element] | array_flow.rb:28:10:28:13 | ...[...] | -| array_flow.rb:29:10:29:10 | c [element] | array_flow.rb:29:10:29:13 | ...[...] | | array_flow.rb:29:10:29:10 | c [element] | array_flow.rb:29:10:29:13 | ...[...] | | array_flow.rb:33:5:33:5 | a [element 0] | array_flow.rb:34:27:34:27 | a [element 0] | -| array_flow.rb:33:5:33:5 | a [element 0] | array_flow.rb:34:27:34:27 | a [element 0] | -| array_flow.rb:33:10:33:18 | call to source | array_flow.rb:33:5:33:5 | a [element 0] | | array_flow.rb:33:10:33:18 | call to source | array_flow.rb:33:5:33:5 | a [element 0] | | array_flow.rb:34:5:34:5 | b [element 0] | array_flow.rb:35:10:35:10 | b [element 0] | -| array_flow.rb:34:5:34:5 | b [element 0] | array_flow.rb:35:10:35:10 | b [element 0] | -| array_flow.rb:34:9:34:28 | call to try_convert [element 0] | array_flow.rb:34:5:34:5 | b [element 0] | | array_flow.rb:34:9:34:28 | call to try_convert [element 0] | array_flow.rb:34:5:34:5 | b [element 0] | | array_flow.rb:34:27:34:27 | a [element 0] | array_flow.rb:34:9:34:28 | call to try_convert [element 0] | -| array_flow.rb:34:27:34:27 | a [element 0] | array_flow.rb:34:9:34:28 | call to try_convert [element 0] | -| array_flow.rb:35:10:35:10 | b [element 0] | array_flow.rb:35:10:35:13 | ...[...] | | array_flow.rb:35:10:35:10 | b [element 0] | array_flow.rb:35:10:35:13 | ...[...] | | array_flow.rb:40:5:40:5 | a [element 0] | array_flow.rb:42:9:42:9 | a [element 0] | -| array_flow.rb:40:5:40:5 | a [element 0] | array_flow.rb:42:9:42:9 | a [element 0] | -| array_flow.rb:40:10:40:20 | call to source | array_flow.rb:40:5:40:5 | a [element 0] | | array_flow.rb:40:10:40:20 | call to source | array_flow.rb:40:5:40:5 | a [element 0] | | array_flow.rb:41:5:41:5 | b [element 2] | array_flow.rb:42:13:42:13 | b [element 2] | -| array_flow.rb:41:5:41:5 | b [element 2] | array_flow.rb:42:13:42:13 | b [element 2] | -| array_flow.rb:41:16:41:26 | call to source | array_flow.rb:41:5:41:5 | b [element 2] | | array_flow.rb:41:16:41:26 | call to source | array_flow.rb:41:5:41:5 | b [element 2] | | array_flow.rb:42:5:42:5 | c [element] | array_flow.rb:43:10:43:10 | c [element] | -| array_flow.rb:42:5:42:5 | c [element] | array_flow.rb:43:10:43:10 | c [element] | -| array_flow.rb:42:5:42:5 | c [element] | array_flow.rb:44:10:44:10 | c [element] | | array_flow.rb:42:5:42:5 | c [element] | array_flow.rb:44:10:44:10 | c [element] | | array_flow.rb:42:9:42:9 | a [element 0] | array_flow.rb:42:9:42:13 | ... & ... [element] | -| array_flow.rb:42:9:42:9 | a [element 0] | array_flow.rb:42:9:42:13 | ... & ... [element] | -| array_flow.rb:42:9:42:13 | ... & ... [element] | array_flow.rb:42:5:42:5 | c [element] | | array_flow.rb:42:9:42:13 | ... & ... [element] | array_flow.rb:42:5:42:5 | c [element] | | array_flow.rb:42:13:42:13 | b [element 2] | array_flow.rb:42:9:42:13 | ... & ... [element] | -| array_flow.rb:42:13:42:13 | b [element 2] | array_flow.rb:42:9:42:13 | ... & ... [element] | -| array_flow.rb:43:10:43:10 | c [element] | array_flow.rb:43:10:43:13 | ...[...] | | array_flow.rb:43:10:43:10 | c [element] | array_flow.rb:43:10:43:13 | ...[...] | | array_flow.rb:44:10:44:10 | c [element] | array_flow.rb:44:10:44:13 | ...[...] | -| array_flow.rb:44:10:44:10 | c [element] | array_flow.rb:44:10:44:13 | ...[...] | -| array_flow.rb:48:5:48:5 | a [element 0] | array_flow.rb:49:9:49:9 | a [element 0] | | array_flow.rb:48:5:48:5 | a [element 0] | array_flow.rb:49:9:49:9 | a [element 0] | | array_flow.rb:48:10:48:18 | call to source | array_flow.rb:48:5:48:5 | a [element 0] | -| array_flow.rb:48:10:48:18 | call to source | array_flow.rb:48:5:48:5 | a [element 0] | -| array_flow.rb:49:5:49:5 | b [element] | array_flow.rb:50:10:50:10 | b [element] | | array_flow.rb:49:5:49:5 | b [element] | array_flow.rb:50:10:50:10 | b [element] | | array_flow.rb:49:5:49:5 | b [element] | array_flow.rb:51:10:51:10 | b [element] | -| array_flow.rb:49:5:49:5 | b [element] | array_flow.rb:51:10:51:10 | b [element] | -| array_flow.rb:49:9:49:9 | a [element 0] | array_flow.rb:49:9:49:13 | ... * ... [element] | | array_flow.rb:49:9:49:9 | a [element 0] | array_flow.rb:49:9:49:13 | ... * ... [element] | | array_flow.rb:49:9:49:13 | ... * ... [element] | array_flow.rb:49:5:49:5 | b [element] | -| array_flow.rb:49:9:49:13 | ... * ... [element] | array_flow.rb:49:5:49:5 | b [element] | -| array_flow.rb:50:10:50:10 | b [element] | array_flow.rb:50:10:50:13 | ...[...] | | array_flow.rb:50:10:50:10 | b [element] | array_flow.rb:50:10:50:13 | ...[...] | | array_flow.rb:51:10:51:10 | b [element] | array_flow.rb:51:10:51:13 | ...[...] | -| array_flow.rb:51:10:51:10 | b [element] | array_flow.rb:51:10:51:13 | ...[...] | -| array_flow.rb:55:5:55:5 | a [element 0] | array_flow.rb:57:9:57:9 | a [element 0] | | array_flow.rb:55:5:55:5 | a [element 0] | array_flow.rb:57:9:57:9 | a [element 0] | | array_flow.rb:55:10:55:20 | call to source | array_flow.rb:55:5:55:5 | a [element 0] | -| array_flow.rb:55:10:55:20 | call to source | array_flow.rb:55:5:55:5 | a [element 0] | -| array_flow.rb:56:5:56:5 | b [element 1] | array_flow.rb:57:13:57:13 | b [element 1] | | array_flow.rb:56:5:56:5 | b [element 1] | array_flow.rb:57:13:57:13 | b [element 1] | | array_flow.rb:56:13:56:23 | call to source | array_flow.rb:56:5:56:5 | b [element 1] | -| array_flow.rb:56:13:56:23 | call to source | array_flow.rb:56:5:56:5 | b [element 1] | -| array_flow.rb:57:5:57:5 | c [element 0] | array_flow.rb:58:10:58:10 | c [element 0] | | array_flow.rb:57:5:57:5 | c [element 0] | array_flow.rb:58:10:58:10 | c [element 0] | | array_flow.rb:57:5:57:5 | c [element] | array_flow.rb:58:10:58:10 | c [element] | -| array_flow.rb:57:5:57:5 | c [element] | array_flow.rb:58:10:58:10 | c [element] | -| array_flow.rb:57:5:57:5 | c [element] | array_flow.rb:59:10:59:10 | c [element] | | array_flow.rb:57:5:57:5 | c [element] | array_flow.rb:59:10:59:10 | c [element] | | array_flow.rb:57:9:57:9 | a [element 0] | array_flow.rb:57:9:57:13 | ... + ... [element 0] | -| array_flow.rb:57:9:57:9 | a [element 0] | array_flow.rb:57:9:57:13 | ... + ... [element 0] | -| array_flow.rb:57:9:57:13 | ... + ... [element 0] | array_flow.rb:57:5:57:5 | c [element 0] | | array_flow.rb:57:9:57:13 | ... + ... [element 0] | array_flow.rb:57:5:57:5 | c [element 0] | | array_flow.rb:57:9:57:13 | ... + ... [element] | array_flow.rb:57:5:57:5 | c [element] | -| array_flow.rb:57:9:57:13 | ... + ... [element] | array_flow.rb:57:5:57:5 | c [element] | -| array_flow.rb:57:13:57:13 | b [element 1] | array_flow.rb:57:9:57:13 | ... + ... [element] | | array_flow.rb:57:13:57:13 | b [element 1] | array_flow.rb:57:9:57:13 | ... + ... [element] | | array_flow.rb:58:10:58:10 | c [element 0] | array_flow.rb:58:10:58:13 | ...[...] | -| array_flow.rb:58:10:58:10 | c [element 0] | array_flow.rb:58:10:58:13 | ...[...] | -| array_flow.rb:58:10:58:10 | c [element] | array_flow.rb:58:10:58:13 | ...[...] | | array_flow.rb:58:10:58:10 | c [element] | array_flow.rb:58:10:58:13 | ...[...] | | array_flow.rb:59:10:59:10 | c [element] | array_flow.rb:59:10:59:13 | ...[...] | -| array_flow.rb:59:10:59:10 | c [element] | array_flow.rb:59:10:59:13 | ...[...] | -| array_flow.rb:63:5:63:5 | a [element 0] | array_flow.rb:65:9:65:9 | a [element 0] | | array_flow.rb:63:5:63:5 | a [element 0] | array_flow.rb:65:9:65:9 | a [element 0] | | array_flow.rb:63:10:63:20 | call to source | array_flow.rb:63:5:63:5 | a [element 0] | -| array_flow.rb:63:10:63:20 | call to source | array_flow.rb:63:5:63:5 | a [element 0] | -| array_flow.rb:65:5:65:5 | c [element] | array_flow.rb:66:10:66:10 | c [element] | | array_flow.rb:65:5:65:5 | c [element] | array_flow.rb:66:10:66:10 | c [element] | | array_flow.rb:65:5:65:5 | c [element] | array_flow.rb:67:10:67:10 | c [element] | -| array_flow.rb:65:5:65:5 | c [element] | array_flow.rb:67:10:67:10 | c [element] | -| array_flow.rb:65:9:65:9 | a [element 0] | array_flow.rb:65:9:65:13 | ... - ... [element] | | array_flow.rb:65:9:65:9 | a [element 0] | array_flow.rb:65:9:65:13 | ... - ... [element] | | array_flow.rb:65:9:65:13 | ... - ... [element] | array_flow.rb:65:5:65:5 | c [element] | -| array_flow.rb:65:9:65:13 | ... - ... [element] | array_flow.rb:65:5:65:5 | c [element] | -| array_flow.rb:66:10:66:10 | c [element] | array_flow.rb:66:10:66:13 | ...[...] | | array_flow.rb:66:10:66:10 | c [element] | array_flow.rb:66:10:66:13 | ...[...] | | array_flow.rb:67:10:67:10 | c [element] | array_flow.rb:67:10:67:13 | ...[...] | -| array_flow.rb:67:10:67:10 | c [element] | array_flow.rb:67:10:67:13 | ...[...] | -| array_flow.rb:71:5:71:5 | a [element 0] | array_flow.rb:72:9:72:9 | a [element 0] | | array_flow.rb:71:5:71:5 | a [element 0] | array_flow.rb:72:9:72:9 | a [element 0] | | array_flow.rb:71:5:71:5 | a [element 0] | array_flow.rb:73:10:73:10 | a [element 0] | -| array_flow.rb:71:5:71:5 | a [element 0] | array_flow.rb:73:10:73:10 | a [element 0] | | array_flow.rb:71:10:71:20 | call to source | array_flow.rb:71:5:71:5 | a [element 0] | -| array_flow.rb:71:10:71:20 | call to source | array_flow.rb:71:5:71:5 | a [element 0] | -| array_flow.rb:72:5:72:5 | b | array_flow.rb:75:10:75:10 | b | -| array_flow.rb:72:5:72:5 | b | array_flow.rb:76:10:76:10 | b | -| array_flow.rb:72:5:72:5 | b [element 0] | array_flow.rb:75:10:75:10 | b [element 0] | | array_flow.rb:72:5:72:5 | b [element 0] | array_flow.rb:75:10:75:10 | b [element 0] | | array_flow.rb:72:5:72:5 | b [element] | array_flow.rb:75:10:75:10 | b [element] | -| array_flow.rb:72:5:72:5 | b [element] | array_flow.rb:75:10:75:10 | b [element] | -| array_flow.rb:72:5:72:5 | b [element] | array_flow.rb:76:10:76:10 | b [element] | | array_flow.rb:72:5:72:5 | b [element] | array_flow.rb:76:10:76:10 | b [element] | | array_flow.rb:72:9:72:9 | [post] a [element] | array_flow.rb:73:10:73:10 | a [element] | -| array_flow.rb:72:9:72:9 | [post] a [element] | array_flow.rb:73:10:73:10 | a [element] | -| array_flow.rb:72:9:72:9 | [post] a [element] | array_flow.rb:74:10:74:10 | a [element] | | array_flow.rb:72:9:72:9 | [post] a [element] | array_flow.rb:74:10:74:10 | a [element] | | array_flow.rb:72:9:72:9 | a [element 0] | array_flow.rb:72:9:72:24 | ... << ... [element 0] | -| array_flow.rb:72:9:72:9 | a [element 0] | array_flow.rb:72:9:72:24 | ... << ... [element 0] | -| array_flow.rb:72:9:72:24 | ... << ... [element 0] | array_flow.rb:72:5:72:5 | b [element 0] | | array_flow.rb:72:9:72:24 | ... << ... [element 0] | array_flow.rb:72:5:72:5 | b [element 0] | | array_flow.rb:72:9:72:24 | ... << ... [element] | array_flow.rb:72:5:72:5 | b [element] | -| array_flow.rb:72:9:72:24 | ... << ... [element] | array_flow.rb:72:5:72:5 | b [element] | -| array_flow.rb:72:14:72:24 | call to source | array_flow.rb:72:5:72:5 | b | -| array_flow.rb:72:14:72:24 | call to source | array_flow.rb:72:9:72:9 | [post] a [element] | | array_flow.rb:72:14:72:24 | call to source | array_flow.rb:72:9:72:9 | [post] a [element] | | array_flow.rb:72:14:72:24 | call to source | array_flow.rb:72:9:72:24 | ... << ... [element] | -| array_flow.rb:72:14:72:24 | call to source | array_flow.rb:72:9:72:24 | ... << ... [element] | -| array_flow.rb:73:10:73:10 | a [element 0] | array_flow.rb:73:10:73:13 | ...[...] | | array_flow.rb:73:10:73:10 | a [element 0] | array_flow.rb:73:10:73:13 | ...[...] | | array_flow.rb:73:10:73:10 | a [element] | array_flow.rb:73:10:73:13 | ...[...] | -| array_flow.rb:73:10:73:10 | a [element] | array_flow.rb:73:10:73:13 | ...[...] | | array_flow.rb:74:10:74:10 | a [element] | array_flow.rb:74:10:74:13 | ...[...] | -| array_flow.rb:74:10:74:10 | a [element] | array_flow.rb:74:10:74:13 | ...[...] | -| array_flow.rb:75:10:75:10 | b | array_flow.rb:75:10:75:13 | ...[...] | -| array_flow.rb:75:10:75:10 | b [element 0] | array_flow.rb:75:10:75:13 | ...[...] | | array_flow.rb:75:10:75:10 | b [element 0] | array_flow.rb:75:10:75:13 | ...[...] | | array_flow.rb:75:10:75:10 | b [element] | array_flow.rb:75:10:75:13 | ...[...] | -| array_flow.rb:75:10:75:10 | b [element] | array_flow.rb:75:10:75:13 | ...[...] | -| array_flow.rb:76:10:76:10 | b | array_flow.rb:76:10:76:13 | ...[...] | -| array_flow.rb:76:10:76:10 | b [element] | array_flow.rb:76:10:76:13 | ...[...] | | array_flow.rb:76:10:76:10 | b [element] | array_flow.rb:76:10:76:13 | ...[...] | | array_flow.rb:80:5:80:5 | a [element 1] | array_flow.rb:81:15:81:15 | a [element 1] | -| array_flow.rb:80:5:80:5 | a [element 1] | array_flow.rb:81:15:81:15 | a [element 1] | -| array_flow.rb:80:13:80:21 | call to source | array_flow.rb:80:5:80:5 | a [element 1] | | array_flow.rb:80:13:80:21 | call to source | array_flow.rb:80:5:80:5 | a [element 1] | | array_flow.rb:81:8:81:8 | c | array_flow.rb:83:10:83:10 | c | -| array_flow.rb:81:8:81:8 | c | array_flow.rb:83:10:83:10 | c | -| array_flow.rb:81:15:81:15 | a [element 1] | array_flow.rb:81:8:81:8 | c | | array_flow.rb:81:15:81:15 | a [element 1] | array_flow.rb:81:8:81:8 | c | | array_flow.rb:88:5:88:5 | a [element 1] | array_flow.rb:89:9:89:9 | a [element 1] | -| array_flow.rb:88:5:88:5 | a [element 1] | array_flow.rb:89:9:89:9 | a [element 1] | -| array_flow.rb:88:13:88:22 | call to source | array_flow.rb:88:5:88:5 | a [element 1] | | array_flow.rb:88:13:88:22 | call to source | array_flow.rb:88:5:88:5 | a [element 1] | | array_flow.rb:89:5:89:5 | b [element 1] | array_flow.rb:91:10:91:10 | b [element 1] | -| array_flow.rb:89:5:89:5 | b [element 1] | array_flow.rb:91:10:91:10 | b [element 1] | -| array_flow.rb:89:5:89:5 | b [element 1] | array_flow.rb:92:10:92:10 | b [element 1] | | array_flow.rb:89:5:89:5 | b [element 1] | array_flow.rb:92:10:92:10 | b [element 1] | | array_flow.rb:89:9:89:9 | a [element 1] | array_flow.rb:89:9:89:15 | ...[...] [element 1] | -| array_flow.rb:89:9:89:9 | a [element 1] | array_flow.rb:89:9:89:15 | ...[...] [element 1] | -| array_flow.rb:89:9:89:15 | ...[...] [element 1] | array_flow.rb:89:5:89:5 | b [element 1] | | array_flow.rb:89:9:89:15 | ...[...] [element 1] | array_flow.rb:89:5:89:5 | b [element 1] | | array_flow.rb:91:10:91:10 | b [element 1] | array_flow.rb:91:10:91:13 | ...[...] | -| array_flow.rb:91:10:91:10 | b [element 1] | array_flow.rb:91:10:91:13 | ...[...] | -| array_flow.rb:92:10:92:10 | b [element 1] | array_flow.rb:92:10:92:13 | ...[...] | | array_flow.rb:92:10:92:10 | b [element 1] | array_flow.rb:92:10:92:13 | ...[...] | | array_flow.rb:96:5:96:5 | a [element 1] | array_flow.rb:97:9:97:9 | a [element 1] | -| array_flow.rb:96:5:96:5 | a [element 1] | array_flow.rb:97:9:97:9 | a [element 1] | -| array_flow.rb:96:13:96:22 | call to source | array_flow.rb:96:5:96:5 | a [element 1] | | array_flow.rb:96:13:96:22 | call to source | array_flow.rb:96:5:96:5 | a [element 1] | | array_flow.rb:97:5:97:5 | b [element 1] | array_flow.rb:99:10:99:10 | b [element 1] | -| array_flow.rb:97:5:97:5 | b [element 1] | array_flow.rb:99:10:99:10 | b [element 1] | -| array_flow.rb:97:5:97:5 | b [element 1] | array_flow.rb:101:10:101:10 | b [element 1] | | array_flow.rb:97:5:97:5 | b [element 1] | array_flow.rb:101:10:101:10 | b [element 1] | | array_flow.rb:97:9:97:9 | a [element 1] | array_flow.rb:97:9:97:15 | ...[...] [element 1] | -| array_flow.rb:97:9:97:9 | a [element 1] | array_flow.rb:97:9:97:15 | ...[...] [element 1] | -| array_flow.rb:97:9:97:15 | ...[...] [element 1] | array_flow.rb:97:5:97:5 | b [element 1] | | array_flow.rb:97:9:97:15 | ...[...] [element 1] | array_flow.rb:97:5:97:5 | b [element 1] | | array_flow.rb:99:10:99:10 | b [element 1] | array_flow.rb:99:10:99:13 | ...[...] | -| array_flow.rb:99:10:99:10 | b [element 1] | array_flow.rb:99:10:99:13 | ...[...] | -| array_flow.rb:101:10:101:10 | b [element 1] | array_flow.rb:101:10:101:13 | ...[...] | | array_flow.rb:101:10:101:10 | b [element 1] | array_flow.rb:101:10:101:13 | ...[...] | | array_flow.rb:103:5:103:5 | a [element 1] | array_flow.rb:104:9:104:9 | a [element 1] | -| array_flow.rb:103:5:103:5 | a [element 1] | array_flow.rb:104:9:104:9 | a [element 1] | -| array_flow.rb:103:13:103:24 | call to source | array_flow.rb:103:5:103:5 | a [element 1] | | array_flow.rb:103:13:103:24 | call to source | array_flow.rb:103:5:103:5 | a [element 1] | | array_flow.rb:104:5:104:5 | b [element 1] | array_flow.rb:106:10:106:10 | b [element 1] | -| array_flow.rb:104:5:104:5 | b [element 1] | array_flow.rb:106:10:106:10 | b [element 1] | -| array_flow.rb:104:9:104:9 | a [element 1] | array_flow.rb:104:9:104:16 | ...[...] [element 1] | | array_flow.rb:104:9:104:9 | a [element 1] | array_flow.rb:104:9:104:16 | ...[...] [element 1] | | array_flow.rb:104:9:104:16 | ...[...] [element 1] | array_flow.rb:104:5:104:5 | b [element 1] | -| array_flow.rb:104:9:104:16 | ...[...] [element 1] | array_flow.rb:104:5:104:5 | b [element 1] | -| array_flow.rb:106:10:106:10 | b [element 1] | array_flow.rb:106:10:106:13 | ...[...] | | array_flow.rb:106:10:106:10 | b [element 1] | array_flow.rb:106:10:106:13 | ...[...] | | array_flow.rb:109:5:109:5 | a [element 1] | array_flow.rb:110:9:110:9 | a [element 1] | -| array_flow.rb:109:5:109:5 | a [element 1] | array_flow.rb:110:9:110:9 | a [element 1] | -| array_flow.rb:109:5:109:5 | a [element 1] | array_flow.rb:114:9:114:9 | a [element 1] | | array_flow.rb:109:5:109:5 | a [element 1] | array_flow.rb:114:9:114:9 | a [element 1] | | array_flow.rb:109:5:109:5 | a [element 3] | array_flow.rb:110:9:110:9 | a [element 3] | -| array_flow.rb:109:5:109:5 | a [element 3] | array_flow.rb:110:9:110:9 | a [element 3] | -| array_flow.rb:109:5:109:5 | a [element 3] | array_flow.rb:114:9:114:9 | a [element 3] | | array_flow.rb:109:5:109:5 | a [element 3] | array_flow.rb:114:9:114:9 | a [element 3] | | array_flow.rb:109:13:109:24 | call to source | array_flow.rb:109:5:109:5 | a [element 1] | -| array_flow.rb:109:13:109:24 | call to source | array_flow.rb:109:5:109:5 | a [element 1] | -| array_flow.rb:109:30:109:41 | call to source | array_flow.rb:109:5:109:5 | a [element 3] | | array_flow.rb:109:30:109:41 | call to source | array_flow.rb:109:5:109:5 | a [element 3] | | array_flow.rb:110:5:110:5 | b [element] | array_flow.rb:111:10:111:10 | b [element] | -| array_flow.rb:110:5:110:5 | b [element] | array_flow.rb:111:10:111:10 | b [element] | -| array_flow.rb:110:5:110:5 | b [element] | array_flow.rb:112:10:112:10 | b [element] | | array_flow.rb:110:5:110:5 | b [element] | array_flow.rb:112:10:112:10 | b [element] | | array_flow.rb:110:9:110:9 | a [element 1] | array_flow.rb:110:9:110:18 | ...[...] [element] | -| array_flow.rb:110:9:110:9 | a [element 1] | array_flow.rb:110:9:110:18 | ...[...] [element] | -| array_flow.rb:110:9:110:9 | a [element 3] | array_flow.rb:110:9:110:18 | ...[...] [element] | | array_flow.rb:110:9:110:9 | a [element 3] | array_flow.rb:110:9:110:18 | ...[...] [element] | | array_flow.rb:110:9:110:18 | ...[...] [element] | array_flow.rb:110:5:110:5 | b [element] | -| array_flow.rb:110:9:110:18 | ...[...] [element] | array_flow.rb:110:5:110:5 | b [element] | -| array_flow.rb:111:10:111:10 | b [element] | array_flow.rb:111:10:111:13 | ...[...] | | array_flow.rb:111:10:111:10 | b [element] | array_flow.rb:111:10:111:13 | ...[...] | | array_flow.rb:112:10:112:10 | b [element] | array_flow.rb:112:10:112:13 | ...[...] | -| array_flow.rb:112:10:112:10 | b [element] | array_flow.rb:112:10:112:13 | ...[...] | -| array_flow.rb:114:5:114:5 | b [element] | array_flow.rb:115:10:115:10 | b [element] | | array_flow.rb:114:5:114:5 | b [element] | array_flow.rb:115:10:115:10 | b [element] | | array_flow.rb:114:5:114:5 | b [element] | array_flow.rb:116:10:116:10 | b [element] | -| array_flow.rb:114:5:114:5 | b [element] | array_flow.rb:116:10:116:10 | b [element] | -| array_flow.rb:114:9:114:9 | a [element 1] | array_flow.rb:114:9:114:19 | ...[...] [element] | | array_flow.rb:114:9:114:9 | a [element 1] | array_flow.rb:114:9:114:19 | ...[...] [element] | | array_flow.rb:114:9:114:9 | a [element 3] | array_flow.rb:114:9:114:19 | ...[...] [element] | -| array_flow.rb:114:9:114:9 | a [element 3] | array_flow.rb:114:9:114:19 | ...[...] [element] | -| array_flow.rb:114:9:114:19 | ...[...] [element] | array_flow.rb:114:5:114:5 | b [element] | | array_flow.rb:114:9:114:19 | ...[...] [element] | array_flow.rb:114:5:114:5 | b [element] | | array_flow.rb:115:10:115:10 | b [element] | array_flow.rb:115:10:115:13 | ...[...] | -| array_flow.rb:115:10:115:10 | b [element] | array_flow.rb:115:10:115:13 | ...[...] | -| array_flow.rb:116:10:116:10 | b [element] | array_flow.rb:116:10:116:13 | ...[...] | | array_flow.rb:116:10:116:10 | b [element] | array_flow.rb:116:10:116:13 | ...[...] | | array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:122:10:122:10 | a [element] | -| array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:122:10:122:10 | a [element] | -| array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:123:10:123:10 | a [element] | | array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:123:10:123:10 | a [element] | | array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:124:10:124:10 | a [element] | -| array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:124:10:124:10 | a [element] | -| array_flow.rb:121:15:121:24 | call to source | array_flow.rb:121:5:121:5 | [post] a [element] | | array_flow.rb:121:15:121:24 | call to source | array_flow.rb:121:5:121:5 | [post] a [element] | | array_flow.rb:122:10:122:10 | a [element] | array_flow.rb:122:10:122:13 | ...[...] | -| array_flow.rb:122:10:122:10 | a [element] | array_flow.rb:122:10:122:13 | ...[...] | -| array_flow.rb:123:10:123:10 | a [element] | array_flow.rb:123:10:123:13 | ...[...] | | array_flow.rb:123:10:123:10 | a [element] | array_flow.rb:123:10:123:13 | ...[...] | | array_flow.rb:124:10:124:10 | a [element] | array_flow.rb:124:10:124:13 | ...[...] | -| array_flow.rb:124:10:124:10 | a [element] | array_flow.rb:124:10:124:13 | ...[...] | -| array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:130:10:130:10 | a [element] | | array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:130:10:130:10 | a [element] | | array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:131:10:131:10 | a [element] | -| array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:131:10:131:10 | a [element] | -| array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:132:10:132:10 | a [element] | | array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:132:10:132:10 | a [element] | | array_flow.rb:129:19:129:28 | call to source | array_flow.rb:129:5:129:5 | [post] a [element] | -| array_flow.rb:129:19:129:28 | call to source | array_flow.rb:129:5:129:5 | [post] a [element] | -| array_flow.rb:130:10:130:10 | a [element] | array_flow.rb:130:10:130:13 | ...[...] | | array_flow.rb:130:10:130:10 | a [element] | array_flow.rb:130:10:130:13 | ...[...] | | array_flow.rb:131:10:131:10 | a [element] | array_flow.rb:131:10:131:13 | ...[...] | -| array_flow.rb:131:10:131:10 | a [element] | array_flow.rb:131:10:131:13 | ...[...] | -| array_flow.rb:132:10:132:10 | a [element] | array_flow.rb:132:10:132:13 | ...[...] | | array_flow.rb:132:10:132:10 | a [element] | array_flow.rb:132:10:132:13 | ...[...] | | array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:138:10:138:10 | a [element] | -| array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:138:10:138:10 | a [element] | -| array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:139:10:139:10 | a [element] | | array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:139:10:139:10 | a [element] | | array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:140:10:140:10 | a [element] | -| array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:140:10:140:10 | a [element] | -| array_flow.rb:137:15:137:24 | call to source | array_flow.rb:137:5:137:5 | [post] a [element] | | array_flow.rb:137:15:137:24 | call to source | array_flow.rb:137:5:137:5 | [post] a [element] | | array_flow.rb:138:10:138:10 | a [element] | array_flow.rb:138:10:138:13 | ...[...] | -| array_flow.rb:138:10:138:10 | a [element] | array_flow.rb:138:10:138:13 | ...[...] | -| array_flow.rb:139:10:139:10 | a [element] | array_flow.rb:139:10:139:13 | ...[...] | | array_flow.rb:139:10:139:10 | a [element] | array_flow.rb:139:10:139:13 | ...[...] | | array_flow.rb:140:10:140:10 | a [element] | array_flow.rb:140:10:140:13 | ...[...] | -| array_flow.rb:140:10:140:10 | a [element] | array_flow.rb:140:10:140:13 | ...[...] | -| array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:146:10:146:10 | a [element] | | array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:146:10:146:10 | a [element] | | array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:147:10:147:10 | a [element] | -| array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:147:10:147:10 | a [element] | -| array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:148:10:148:10 | a [element] | | array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:148:10:148:10 | a [element] | | array_flow.rb:145:19:145:28 | call to source | array_flow.rb:145:5:145:5 | [post] a [element] | -| array_flow.rb:145:19:145:28 | call to source | array_flow.rb:145:5:145:5 | [post] a [element] | -| array_flow.rb:146:10:146:10 | a [element] | array_flow.rb:146:10:146:13 | ...[...] | | array_flow.rb:146:10:146:10 | a [element] | array_flow.rb:146:10:146:13 | ...[...] | | array_flow.rb:147:10:147:10 | a [element] | array_flow.rb:147:10:147:13 | ...[...] | -| array_flow.rb:147:10:147:10 | a [element] | array_flow.rb:147:10:147:13 | ...[...] | -| array_flow.rb:148:10:148:10 | a [element] | array_flow.rb:148:10:148:13 | ...[...] | | array_flow.rb:148:10:148:10 | a [element] | array_flow.rb:148:10:148:13 | ...[...] | | array_flow.rb:152:5:152:5 | a [element 2] | array_flow.rb:153:5:153:5 | a [element 2] | -| array_flow.rb:152:5:152:5 | a [element 2] | array_flow.rb:153:5:153:5 | a [element 2] | -| array_flow.rb:152:16:152:25 | call to source | array_flow.rb:152:5:152:5 | a [element 2] | | array_flow.rb:152:16:152:25 | call to source | array_flow.rb:152:5:152:5 | a [element 2] | | array_flow.rb:153:5:153:5 | a [element 2] | array_flow.rb:153:16:153:16 | x | -| array_flow.rb:153:5:153:5 | a [element 2] | array_flow.rb:153:16:153:16 | x | -| array_flow.rb:153:16:153:16 | x | array_flow.rb:154:14:154:14 | x | | array_flow.rb:153:16:153:16 | x | array_flow.rb:154:14:154:14 | x | | array_flow.rb:159:5:159:5 | a [element 2] | array_flow.rb:160:5:160:5 | a [element 2] | -| array_flow.rb:159:5:159:5 | a [element 2] | array_flow.rb:160:5:160:5 | a [element 2] | -| array_flow.rb:159:16:159:25 | call to source | array_flow.rb:159:5:159:5 | a [element 2] | | array_flow.rb:159:16:159:25 | call to source | array_flow.rb:159:5:159:5 | a [element 2] | | array_flow.rb:160:5:160:5 | a [element 2] | array_flow.rb:160:16:160:16 | x | -| array_flow.rb:160:5:160:5 | a [element 2] | array_flow.rb:160:16:160:16 | x | -| array_flow.rb:160:16:160:16 | x | array_flow.rb:161:14:161:14 | x | | array_flow.rb:160:16:160:16 | x | array_flow.rb:161:14:161:14 | x | | array_flow.rb:166:5:166:5 | a [element 0] | array_flow.rb:167:9:167:9 | a [element 0] | -| array_flow.rb:166:5:166:5 | a [element 0] | array_flow.rb:167:9:167:9 | a [element 0] | -| array_flow.rb:166:5:166:5 | a [element 0] | array_flow.rb:168:10:168:10 | a [element 0] | | array_flow.rb:166:5:166:5 | a [element 0] | array_flow.rb:168:10:168:10 | a [element 0] | | array_flow.rb:166:10:166:21 | call to source | array_flow.rb:166:5:166:5 | a [element 0] | -| array_flow.rb:166:10:166:21 | call to source | array_flow.rb:166:5:166:5 | a [element 0] | -| array_flow.rb:167:5:167:5 | b [element 0] | array_flow.rb:170:10:170:10 | b [element 0] | | array_flow.rb:167:5:167:5 | b [element 0] | array_flow.rb:170:10:170:10 | b [element 0] | | array_flow.rb:167:5:167:5 | b [element] | array_flow.rb:170:10:170:10 | b [element] | -| array_flow.rb:167:5:167:5 | b [element] | array_flow.rb:170:10:170:10 | b [element] | -| array_flow.rb:167:5:167:5 | b [element] | array_flow.rb:171:10:171:10 | b [element] | | array_flow.rb:167:5:167:5 | b [element] | array_flow.rb:171:10:171:10 | b [element] | | array_flow.rb:167:9:167:9 | [post] a [element] | array_flow.rb:168:10:168:10 | a [element] | -| array_flow.rb:167:9:167:9 | [post] a [element] | array_flow.rb:168:10:168:10 | a [element] | -| array_flow.rb:167:9:167:9 | [post] a [element] | array_flow.rb:169:10:169:10 | a [element] | | array_flow.rb:167:9:167:9 | [post] a [element] | array_flow.rb:169:10:169:10 | a [element] | | array_flow.rb:167:9:167:9 | a [element 0] | array_flow.rb:167:9:167:44 | call to append [element 0] | -| array_flow.rb:167:9:167:9 | a [element 0] | array_flow.rb:167:9:167:44 | call to append [element 0] | -| array_flow.rb:167:9:167:44 | call to append [element 0] | array_flow.rb:167:5:167:5 | b [element 0] | | array_flow.rb:167:9:167:44 | call to append [element 0] | array_flow.rb:167:5:167:5 | b [element 0] | | array_flow.rb:167:9:167:44 | call to append [element] | array_flow.rb:167:5:167:5 | b [element] | -| array_flow.rb:167:9:167:44 | call to append [element] | array_flow.rb:167:5:167:5 | b [element] | -| array_flow.rb:167:18:167:29 | call to source | array_flow.rb:167:9:167:9 | [post] a [element] | | array_flow.rb:167:18:167:29 | call to source | array_flow.rb:167:9:167:9 | [post] a [element] | | array_flow.rb:167:18:167:29 | call to source | array_flow.rb:167:9:167:44 | call to append [element] | -| array_flow.rb:167:18:167:29 | call to source | array_flow.rb:167:9:167:44 | call to append [element] | -| array_flow.rb:167:32:167:43 | call to source | array_flow.rb:167:9:167:9 | [post] a [element] | | array_flow.rb:167:32:167:43 | call to source | array_flow.rb:167:9:167:9 | [post] a [element] | | array_flow.rb:167:32:167:43 | call to source | array_flow.rb:167:9:167:44 | call to append [element] | -| array_flow.rb:167:32:167:43 | call to source | array_flow.rb:167:9:167:44 | call to append [element] | -| array_flow.rb:168:10:168:10 | a [element 0] | array_flow.rb:168:10:168:13 | ...[...] | | array_flow.rb:168:10:168:10 | a [element 0] | array_flow.rb:168:10:168:13 | ...[...] | | array_flow.rb:168:10:168:10 | a [element] | array_flow.rb:168:10:168:13 | ...[...] | -| array_flow.rb:168:10:168:10 | a [element] | array_flow.rb:168:10:168:13 | ...[...] | -| array_flow.rb:169:10:169:10 | a [element] | array_flow.rb:169:10:169:13 | ...[...] | | array_flow.rb:169:10:169:10 | a [element] | array_flow.rb:169:10:169:13 | ...[...] | | array_flow.rb:170:10:170:10 | b [element 0] | array_flow.rb:170:10:170:13 | ...[...] | -| array_flow.rb:170:10:170:10 | b [element 0] | array_flow.rb:170:10:170:13 | ...[...] | -| array_flow.rb:170:10:170:10 | b [element] | array_flow.rb:170:10:170:13 | ...[...] | | array_flow.rb:170:10:170:10 | b [element] | array_flow.rb:170:10:170:13 | ...[...] | | array_flow.rb:171:10:171:10 | b [element] | array_flow.rb:171:10:171:13 | ...[...] | -| array_flow.rb:171:10:171:10 | b [element] | array_flow.rb:171:10:171:13 | ...[...] | -| array_flow.rb:177:5:177:5 | c [element 1] | array_flow.rb:178:16:178:16 | c [element 1] | | array_flow.rb:177:5:177:5 | c [element 1] | array_flow.rb:178:16:178:16 | c [element 1] | | array_flow.rb:177:15:177:24 | call to source | array_flow.rb:177:5:177:5 | c [element 1] | -| array_flow.rb:177:15:177:24 | call to source | array_flow.rb:177:5:177:5 | c [element 1] | -| array_flow.rb:178:5:178:5 | d [element 2, element 1] | array_flow.rb:179:11:179:11 | d [element 2, element 1] | | array_flow.rb:178:5:178:5 | d [element 2, element 1] | array_flow.rb:179:11:179:11 | d [element 2, element 1] | | array_flow.rb:178:5:178:5 | d [element 2, element 1] | array_flow.rb:180:11:180:11 | d [element 2, element 1] | -| array_flow.rb:178:5:178:5 | d [element 2, element 1] | array_flow.rb:180:11:180:11 | d [element 2, element 1] | -| array_flow.rb:178:16:178:16 | c [element 1] | array_flow.rb:178:5:178:5 | d [element 2, element 1] | | array_flow.rb:178:16:178:16 | c [element 1] | array_flow.rb:178:5:178:5 | d [element 2, element 1] | | array_flow.rb:179:11:179:11 | d [element 2, element 1] | array_flow.rb:179:11:179:22 | call to assoc [element 1] | -| array_flow.rb:179:11:179:11 | d [element 2, element 1] | array_flow.rb:179:11:179:22 | call to assoc [element 1] | -| array_flow.rb:179:11:179:22 | call to assoc [element 1] | array_flow.rb:179:11:179:25 | ...[...] | | array_flow.rb:179:11:179:22 | call to assoc [element 1] | array_flow.rb:179:11:179:25 | ...[...] | | array_flow.rb:179:11:179:25 | ...[...] | array_flow.rb:179:10:179:26 | ( ... ) | -| array_flow.rb:179:11:179:25 | ...[...] | array_flow.rb:179:10:179:26 | ( ... ) | -| array_flow.rb:180:11:180:11 | d [element 2, element 1] | array_flow.rb:180:11:180:22 | call to assoc [element 1] | | array_flow.rb:180:11:180:11 | d [element 2, element 1] | array_flow.rb:180:11:180:22 | call to assoc [element 1] | | array_flow.rb:180:11:180:22 | call to assoc [element 1] | array_flow.rb:180:11:180:25 | ...[...] | -| array_flow.rb:180:11:180:22 | call to assoc [element 1] | array_flow.rb:180:11:180:25 | ...[...] | -| array_flow.rb:180:11:180:25 | ...[...] | array_flow.rb:180:10:180:26 | ( ... ) | | array_flow.rb:180:11:180:25 | ...[...] | array_flow.rb:180:10:180:26 | ( ... ) | | array_flow.rb:184:5:184:5 | a [element 1] | array_flow.rb:186:10:186:10 | a [element 1] | -| array_flow.rb:184:5:184:5 | a [element 1] | array_flow.rb:186:10:186:10 | a [element 1] | -| array_flow.rb:184:5:184:5 | a [element 1] | array_flow.rb:188:10:188:10 | a [element 1] | | array_flow.rb:184:5:184:5 | a [element 1] | array_flow.rb:188:10:188:10 | a [element 1] | | array_flow.rb:184:13:184:22 | call to source | array_flow.rb:184:5:184:5 | a [element 1] | -| array_flow.rb:184:13:184:22 | call to source | array_flow.rb:184:5:184:5 | a [element 1] | -| array_flow.rb:186:10:186:10 | a [element 1] | array_flow.rb:186:10:186:16 | call to at | | array_flow.rb:186:10:186:10 | a [element 1] | array_flow.rb:186:10:186:16 | call to at | | array_flow.rb:188:10:188:10 | a [element 1] | array_flow.rb:188:10:188:16 | call to at | -| array_flow.rb:188:10:188:10 | a [element 1] | array_flow.rb:188:10:188:16 | call to at | -| array_flow.rb:192:5:192:5 | a [element 2] | array_flow.rb:193:9:193:9 | a [element 2] | | array_flow.rb:192:5:192:5 | a [element 2] | array_flow.rb:193:9:193:9 | a [element 2] | | array_flow.rb:192:16:192:25 | call to source | array_flow.rb:192:5:192:5 | a [element 2] | -| array_flow.rb:192:16:192:25 | call to source | array_flow.rb:192:5:192:5 | a [element 2] | -| array_flow.rb:193:5:193:5 | b | array_flow.rb:196:10:196:10 | b | | array_flow.rb:193:5:193:5 | b | array_flow.rb:196:10:196:10 | b | | array_flow.rb:193:9:193:9 | a [element 2] | array_flow.rb:193:9:195:7 | call to bsearch | -| array_flow.rb:193:9:193:9 | a [element 2] | array_flow.rb:193:9:195:7 | call to bsearch | -| array_flow.rb:193:9:193:9 | a [element 2] | array_flow.rb:193:23:193:23 | x | | array_flow.rb:193:9:193:9 | a [element 2] | array_flow.rb:193:23:193:23 | x | | array_flow.rb:193:9:195:7 | call to bsearch | array_flow.rb:193:5:193:5 | b | -| array_flow.rb:193:9:195:7 | call to bsearch | array_flow.rb:193:5:193:5 | b | -| array_flow.rb:193:23:193:23 | x | array_flow.rb:194:14:194:14 | x | | array_flow.rb:193:23:193:23 | x | array_flow.rb:194:14:194:14 | x | | array_flow.rb:200:5:200:5 | a [element 2] | array_flow.rb:201:9:201:9 | a [element 2] | -| array_flow.rb:200:5:200:5 | a [element 2] | array_flow.rb:201:9:201:9 | a [element 2] | -| array_flow.rb:200:16:200:25 | call to source | array_flow.rb:200:5:200:5 | a [element 2] | | array_flow.rb:200:16:200:25 | call to source | array_flow.rb:200:5:200:5 | a [element 2] | | array_flow.rb:201:9:201:9 | a [element 2] | array_flow.rb:201:29:201:29 | x | -| array_flow.rb:201:9:201:9 | a [element 2] | array_flow.rb:201:29:201:29 | x | -| array_flow.rb:201:29:201:29 | x | array_flow.rb:202:14:202:14 | x | | array_flow.rb:201:29:201:29 | x | array_flow.rb:202:14:202:14 | x | | array_flow.rb:208:5:208:5 | a [element 2] | array_flow.rb:209:5:209:5 | a [element 2] | -| array_flow.rb:208:5:208:5 | a [element 2] | array_flow.rb:209:5:209:5 | a [element 2] | -| array_flow.rb:208:16:208:25 | call to source | array_flow.rb:208:5:208:5 | a [element 2] | | array_flow.rb:208:16:208:25 | call to source | array_flow.rb:208:5:208:5 | a [element 2] | | array_flow.rb:209:5:209:5 | a [element 2] | array_flow.rb:209:17:209:17 | x | -| array_flow.rb:209:5:209:5 | a [element 2] | array_flow.rb:209:17:209:17 | x | -| array_flow.rb:209:17:209:17 | x | array_flow.rb:210:14:210:14 | x | | array_flow.rb:209:17:209:17 | x | array_flow.rb:210:14:210:14 | x | | array_flow.rb:215:5:215:5 | a [element 2] | array_flow.rb:216:9:216:9 | a [element 2] | -| array_flow.rb:215:5:215:5 | a [element 2] | array_flow.rb:216:9:216:9 | a [element 2] | -| array_flow.rb:215:5:215:5 | a [element 3] | array_flow.rb:216:9:216:9 | a [element 3] | | array_flow.rb:215:5:215:5 | a [element 3] | array_flow.rb:216:9:216:9 | a [element 3] | | array_flow.rb:215:16:215:27 | call to source | array_flow.rb:215:5:215:5 | a [element 2] | -| array_flow.rb:215:16:215:27 | call to source | array_flow.rb:215:5:215:5 | a [element 2] | -| array_flow.rb:215:30:215:41 | call to source | array_flow.rb:215:5:215:5 | a [element 3] | | array_flow.rb:215:30:215:41 | call to source | array_flow.rb:215:5:215:5 | a [element 3] | | array_flow.rb:216:9:216:9 | a [element 2] | array_flow.rb:216:27:216:27 | x | -| array_flow.rb:216:9:216:9 | a [element 2] | array_flow.rb:216:27:216:27 | x | -| array_flow.rb:216:9:216:9 | a [element 2] | array_flow.rb:216:30:216:30 | y | | array_flow.rb:216:9:216:9 | a [element 2] | array_flow.rb:216:30:216:30 | y | | array_flow.rb:216:9:216:9 | a [element 3] | array_flow.rb:216:27:216:27 | x | -| array_flow.rb:216:9:216:9 | a [element 3] | array_flow.rb:216:27:216:27 | x | -| array_flow.rb:216:9:216:9 | a [element 3] | array_flow.rb:216:30:216:30 | y | | array_flow.rb:216:9:216:9 | a [element 3] | array_flow.rb:216:30:216:30 | y | | array_flow.rb:216:27:216:27 | x | array_flow.rb:217:14:217:14 | x | -| array_flow.rb:216:27:216:27 | x | array_flow.rb:217:14:217:14 | x | -| array_flow.rb:216:30:216:30 | y | array_flow.rb:218:14:218:14 | y | | array_flow.rb:216:30:216:30 | y | array_flow.rb:218:14:218:14 | y | | array_flow.rb:231:5:231:5 | a [element 2] | array_flow.rb:232:9:232:9 | a [element 2] | -| array_flow.rb:231:5:231:5 | a [element 2] | array_flow.rb:232:9:232:9 | a [element 2] | -| array_flow.rb:231:16:231:27 | call to source | array_flow.rb:231:5:231:5 | a [element 2] | | array_flow.rb:231:16:231:27 | call to source | array_flow.rb:231:5:231:5 | a [element 2] | | array_flow.rb:232:5:232:5 | b [element] | array_flow.rb:236:10:236:10 | b [element] | -| array_flow.rb:232:5:232:5 | b [element] | array_flow.rb:236:10:236:10 | b [element] | -| array_flow.rb:232:9:232:9 | a [element 2] | array_flow.rb:232:23:232:23 | x | | array_flow.rb:232:9:232:9 | a [element 2] | array_flow.rb:232:23:232:23 | x | | array_flow.rb:232:9:235:7 | call to collect [element] | array_flow.rb:232:5:232:5 | b [element] | -| array_flow.rb:232:9:235:7 | call to collect [element] | array_flow.rb:232:5:232:5 | b [element] | -| array_flow.rb:232:23:232:23 | x | array_flow.rb:233:14:233:14 | x | | array_flow.rb:232:23:232:23 | x | array_flow.rb:233:14:233:14 | x | | array_flow.rb:234:9:234:19 | call to source | array_flow.rb:232:9:235:7 | call to collect [element] | -| array_flow.rb:234:9:234:19 | call to source | array_flow.rb:232:9:235:7 | call to collect [element] | -| array_flow.rb:236:10:236:10 | b [element] | array_flow.rb:236:10:236:13 | ...[...] | | array_flow.rb:236:10:236:10 | b [element] | array_flow.rb:236:10:236:13 | ...[...] | | array_flow.rb:240:5:240:5 | a [element 2] | array_flow.rb:241:9:241:9 | a [element 2] | -| array_flow.rb:240:5:240:5 | a [element 2] | array_flow.rb:241:9:241:9 | a [element 2] | -| array_flow.rb:240:16:240:27 | call to source | array_flow.rb:240:5:240:5 | a [element 2] | | array_flow.rb:240:16:240:27 | call to source | array_flow.rb:240:5:240:5 | a [element 2] | | array_flow.rb:241:5:241:5 | b [element] | array_flow.rb:246:10:246:10 | b [element] | -| array_flow.rb:241:5:241:5 | b [element] | array_flow.rb:246:10:246:10 | b [element] | -| array_flow.rb:241:9:241:9 | [post] a [element] | array_flow.rb:245:10:245:10 | a [element] | | array_flow.rb:241:9:241:9 | [post] a [element] | array_flow.rb:245:10:245:10 | a [element] | | array_flow.rb:241:9:241:9 | a [element 2] | array_flow.rb:241:24:241:24 | x | -| array_flow.rb:241:9:241:9 | a [element 2] | array_flow.rb:241:24:241:24 | x | -| array_flow.rb:241:9:244:7 | call to collect! [element] | array_flow.rb:241:5:241:5 | b [element] | | array_flow.rb:241:9:244:7 | call to collect! [element] | array_flow.rb:241:5:241:5 | b [element] | | array_flow.rb:241:24:241:24 | x | array_flow.rb:242:14:242:14 | x | -| array_flow.rb:241:24:241:24 | x | array_flow.rb:242:14:242:14 | x | -| array_flow.rb:243:9:243:19 | call to source | array_flow.rb:241:9:241:9 | [post] a [element] | | array_flow.rb:243:9:243:19 | call to source | array_flow.rb:241:9:241:9 | [post] a [element] | | array_flow.rb:243:9:243:19 | call to source | array_flow.rb:241:9:244:7 | call to collect! [element] | -| array_flow.rb:243:9:243:19 | call to source | array_flow.rb:241:9:244:7 | call to collect! [element] | -| array_flow.rb:245:10:245:10 | a [element] | array_flow.rb:245:10:245:13 | ...[...] | | array_flow.rb:245:10:245:10 | a [element] | array_flow.rb:245:10:245:13 | ...[...] | | array_flow.rb:246:10:246:10 | b [element] | array_flow.rb:246:10:246:13 | ...[...] | -| array_flow.rb:246:10:246:10 | b [element] | array_flow.rb:246:10:246:13 | ...[...] | -| array_flow.rb:250:5:250:5 | a [element 2] | array_flow.rb:251:9:251:9 | a [element 2] | | array_flow.rb:250:5:250:5 | a [element 2] | array_flow.rb:251:9:251:9 | a [element 2] | | array_flow.rb:250:5:250:5 | a [element 2] | array_flow.rb:256:9:256:9 | a [element 2] | -| array_flow.rb:250:5:250:5 | a [element 2] | array_flow.rb:256:9:256:9 | a [element 2] | -| array_flow.rb:250:16:250:27 | call to source | array_flow.rb:250:5:250:5 | a [element 2] | | array_flow.rb:250:16:250:27 | call to source | array_flow.rb:250:5:250:5 | a [element 2] | | array_flow.rb:251:5:251:5 | b [element] | array_flow.rb:255:10:255:10 | b [element] | -| array_flow.rb:251:5:251:5 | b [element] | array_flow.rb:255:10:255:10 | b [element] | -| array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:9:254:7 | call to collect_concat [element] | | array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:9:254:7 | call to collect_concat [element] | | array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:30:251:30 | x | -| array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:30:251:30 | x | -| array_flow.rb:251:9:254:7 | call to collect_concat [element] | array_flow.rb:251:5:251:5 | b [element] | | array_flow.rb:251:9:254:7 | call to collect_concat [element] | array_flow.rb:251:5:251:5 | b [element] | | array_flow.rb:251:30:251:30 | x | array_flow.rb:252:14:252:14 | x | -| array_flow.rb:251:30:251:30 | x | array_flow.rb:252:14:252:14 | x | -| array_flow.rb:253:13:253:24 | call to source | array_flow.rb:251:9:254:7 | call to collect_concat [element] | | array_flow.rb:253:13:253:24 | call to source | array_flow.rb:251:9:254:7 | call to collect_concat [element] | | array_flow.rb:255:10:255:10 | b [element] | array_flow.rb:255:10:255:13 | ...[...] | -| array_flow.rb:255:10:255:10 | b [element] | array_flow.rb:255:10:255:13 | ...[...] | -| array_flow.rb:256:5:256:5 | b [element] | array_flow.rb:260:10:260:10 | b [element] | | array_flow.rb:256:5:256:5 | b [element] | array_flow.rb:260:10:260:10 | b [element] | | array_flow.rb:256:9:256:9 | a [element 2] | array_flow.rb:256:30:256:30 | x | -| array_flow.rb:256:9:256:9 | a [element 2] | array_flow.rb:256:30:256:30 | x | -| array_flow.rb:256:9:259:7 | call to collect_concat [element] | array_flow.rb:256:5:256:5 | b [element] | | array_flow.rb:256:9:259:7 | call to collect_concat [element] | array_flow.rb:256:5:256:5 | b [element] | | array_flow.rb:256:30:256:30 | x | array_flow.rb:257:14:257:14 | x | -| array_flow.rb:256:30:256:30 | x | array_flow.rb:257:14:257:14 | x | -| array_flow.rb:258:9:258:20 | call to source | array_flow.rb:256:9:259:7 | call to collect_concat [element] | | array_flow.rb:258:9:258:20 | call to source | array_flow.rb:256:9:259:7 | call to collect_concat [element] | | array_flow.rb:260:10:260:10 | b [element] | array_flow.rb:260:10:260:13 | ...[...] | -| array_flow.rb:260:10:260:10 | b [element] | array_flow.rb:260:10:260:13 | ...[...] | -| array_flow.rb:264:5:264:5 | a [element 2] | array_flow.rb:265:9:265:9 | a [element 2] | | array_flow.rb:264:5:264:5 | a [element 2] | array_flow.rb:265:9:265:9 | a [element 2] | | array_flow.rb:264:16:264:25 | call to source | array_flow.rb:264:5:264:5 | a [element 2] | -| array_flow.rb:264:16:264:25 | call to source | array_flow.rb:264:5:264:5 | a [element 2] | -| array_flow.rb:265:5:265:5 | b [element 2] | array_flow.rb:269:10:269:10 | b [element 2] | | array_flow.rb:265:5:265:5 | b [element 2] | array_flow.rb:269:10:269:10 | b [element 2] | | array_flow.rb:265:9:265:9 | a [element 2] | array_flow.rb:265:9:267:7 | call to combination [element 2] | -| array_flow.rb:265:9:265:9 | a [element 2] | array_flow.rb:265:9:267:7 | call to combination [element 2] | -| array_flow.rb:265:9:265:9 | a [element 2] | array_flow.rb:265:30:265:30 | x [element] | | array_flow.rb:265:9:265:9 | a [element 2] | array_flow.rb:265:30:265:30 | x [element] | | array_flow.rb:265:9:267:7 | call to combination [element 2] | array_flow.rb:265:5:265:5 | b [element 2] | -| array_flow.rb:265:9:267:7 | call to combination [element 2] | array_flow.rb:265:5:265:5 | b [element 2] | -| array_flow.rb:265:30:265:30 | x [element] | array_flow.rb:266:14:266:14 | x [element] | | array_flow.rb:265:30:265:30 | x [element] | array_flow.rb:266:14:266:14 | x [element] | | array_flow.rb:266:14:266:14 | x [element] | array_flow.rb:266:14:266:17 | ...[...] | -| array_flow.rb:266:14:266:14 | x [element] | array_flow.rb:266:14:266:17 | ...[...] | -| array_flow.rb:269:10:269:10 | b [element 2] | array_flow.rb:269:10:269:13 | ...[...] | | array_flow.rb:269:10:269:10 | b [element 2] | array_flow.rb:269:10:269:13 | ...[...] | | array_flow.rb:273:5:273:5 | a [element 2] | array_flow.rb:274:9:274:9 | a [element 2] | -| array_flow.rb:273:5:273:5 | a [element 2] | array_flow.rb:274:9:274:9 | a [element 2] | -| array_flow.rb:273:16:273:25 | call to source | array_flow.rb:273:5:273:5 | a [element 2] | | array_flow.rb:273:16:273:25 | call to source | array_flow.rb:273:5:273:5 | a [element 2] | | array_flow.rb:274:5:274:5 | b [element] | array_flow.rb:275:10:275:10 | b [element] | -| array_flow.rb:274:5:274:5 | b [element] | array_flow.rb:275:10:275:10 | b [element] | -| array_flow.rb:274:9:274:9 | a [element 2] | array_flow.rb:274:9:274:17 | call to compact [element] | | array_flow.rb:274:9:274:9 | a [element 2] | array_flow.rb:274:9:274:17 | call to compact [element] | | array_flow.rb:274:9:274:17 | call to compact [element] | array_flow.rb:274:5:274:5 | b [element] | -| array_flow.rb:274:9:274:17 | call to compact [element] | array_flow.rb:274:5:274:5 | b [element] | -| array_flow.rb:275:10:275:10 | b [element] | array_flow.rb:275:10:275:13 | ...[...] | | array_flow.rb:275:10:275:10 | b [element] | array_flow.rb:275:10:275:13 | ...[...] | | array_flow.rb:279:5:279:5 | a [element 2] | array_flow.rb:280:9:280:9 | a [element 2] | -| array_flow.rb:279:5:279:5 | a [element 2] | array_flow.rb:280:9:280:9 | a [element 2] | -| array_flow.rb:279:16:279:25 | call to source | array_flow.rb:279:5:279:5 | a [element 2] | | array_flow.rb:279:16:279:25 | call to source | array_flow.rb:279:5:279:5 | a [element 2] | | array_flow.rb:280:5:280:5 | b [element] | array_flow.rb:282:10:282:10 | b [element] | -| array_flow.rb:280:5:280:5 | b [element] | array_flow.rb:282:10:282:10 | b [element] | -| array_flow.rb:280:9:280:9 | [post] a [element] | array_flow.rb:281:10:281:10 | a [element] | | array_flow.rb:280:9:280:9 | [post] a [element] | array_flow.rb:281:10:281:10 | a [element] | | array_flow.rb:280:9:280:9 | a [element 2] | array_flow.rb:280:9:280:9 | [post] a [element] | -| array_flow.rb:280:9:280:9 | a [element 2] | array_flow.rb:280:9:280:9 | [post] a [element] | -| array_flow.rb:280:9:280:9 | a [element 2] | array_flow.rb:280:9:280:18 | call to compact! [element] | | array_flow.rb:280:9:280:9 | a [element 2] | array_flow.rb:280:9:280:18 | call to compact! [element] | | array_flow.rb:280:9:280:18 | call to compact! [element] | array_flow.rb:280:5:280:5 | b [element] | -| array_flow.rb:280:9:280:18 | call to compact! [element] | array_flow.rb:280:5:280:5 | b [element] | -| array_flow.rb:281:10:281:10 | a [element] | array_flow.rb:281:10:281:13 | ...[...] | | array_flow.rb:281:10:281:10 | a [element] | array_flow.rb:281:10:281:13 | ...[...] | | array_flow.rb:282:10:282:10 | b [element] | array_flow.rb:282:10:282:13 | ...[...] | -| array_flow.rb:282:10:282:10 | b [element] | array_flow.rb:282:10:282:13 | ...[...] | -| array_flow.rb:286:5:286:5 | a [element 2] | array_flow.rb:290:10:290:10 | a [element 2] | | array_flow.rb:286:5:286:5 | a [element 2] | array_flow.rb:290:10:290:10 | a [element 2] | | array_flow.rb:286:16:286:27 | call to source | array_flow.rb:286:5:286:5 | a [element 2] | -| array_flow.rb:286:16:286:27 | call to source | array_flow.rb:286:5:286:5 | a [element 2] | -| array_flow.rb:287:5:287:5 | b [element 2] | array_flow.rb:288:14:288:14 | b [element 2] | | array_flow.rb:287:5:287:5 | b [element 2] | array_flow.rb:288:14:288:14 | b [element 2] | | array_flow.rb:287:16:287:27 | call to source | array_flow.rb:287:5:287:5 | b [element 2] | -| array_flow.rb:287:16:287:27 | call to source | array_flow.rb:287:5:287:5 | b [element 2] | -| array_flow.rb:288:5:288:5 | [post] a [element] | array_flow.rb:289:10:289:10 | a [element] | | array_flow.rb:288:5:288:5 | [post] a [element] | array_flow.rb:289:10:289:10 | a [element] | | array_flow.rb:288:5:288:5 | [post] a [element] | array_flow.rb:290:10:290:10 | a [element] | -| array_flow.rb:288:5:288:5 | [post] a [element] | array_flow.rb:290:10:290:10 | a [element] | -| array_flow.rb:288:14:288:14 | b [element 2] | array_flow.rb:288:5:288:5 | [post] a [element] | | array_flow.rb:288:14:288:14 | b [element 2] | array_flow.rb:288:5:288:5 | [post] a [element] | | array_flow.rb:289:10:289:10 | a [element] | array_flow.rb:289:10:289:13 | ...[...] | -| array_flow.rb:289:10:289:10 | a [element] | array_flow.rb:289:10:289:13 | ...[...] | -| array_flow.rb:290:10:290:10 | a [element 2] | array_flow.rb:290:10:290:13 | ...[...] | | array_flow.rb:290:10:290:10 | a [element 2] | array_flow.rb:290:10:290:13 | ...[...] | | array_flow.rb:290:10:290:10 | a [element] | array_flow.rb:290:10:290:13 | ...[...] | -| array_flow.rb:290:10:290:10 | a [element] | array_flow.rb:290:10:290:13 | ...[...] | -| array_flow.rb:294:5:294:5 | a [element 2] | array_flow.rb:295:5:295:5 | a [element 2] | | array_flow.rb:294:5:294:5 | a [element 2] | array_flow.rb:295:5:295:5 | a [element 2] | | array_flow.rb:294:16:294:25 | call to source | array_flow.rb:294:5:294:5 | a [element 2] | -| array_flow.rb:294:16:294:25 | call to source | array_flow.rb:294:5:294:5 | a [element 2] | -| array_flow.rb:295:5:295:5 | a [element 2] | array_flow.rb:295:17:295:17 | x | | array_flow.rb:295:5:295:5 | a [element 2] | array_flow.rb:295:17:295:17 | x | | array_flow.rb:295:17:295:17 | x | array_flow.rb:296:14:296:14 | x | -| array_flow.rb:295:17:295:17 | x | array_flow.rb:296:14:296:14 | x | -| array_flow.rb:301:5:301:5 | a [element 2] | array_flow.rb:302:5:302:5 | a [element 2] | | array_flow.rb:301:5:301:5 | a [element 2] | array_flow.rb:302:5:302:5 | a [element 2] | | array_flow.rb:301:16:301:25 | call to source | array_flow.rb:301:5:301:5 | a [element 2] | -| array_flow.rb:301:16:301:25 | call to source | array_flow.rb:301:5:301:5 | a [element 2] | -| array_flow.rb:302:5:302:5 | a [element 2] | array_flow.rb:302:20:302:20 | x | | array_flow.rb:302:5:302:5 | a [element 2] | array_flow.rb:302:20:302:20 | x | | array_flow.rb:302:20:302:20 | x | array_flow.rb:303:14:303:14 | x | -| array_flow.rb:302:20:302:20 | x | array_flow.rb:303:14:303:14 | x | -| array_flow.rb:308:5:308:5 | a [element 2] | array_flow.rb:309:9:309:9 | a [element 2] | | array_flow.rb:308:5:308:5 | a [element 2] | array_flow.rb:309:9:309:9 | a [element 2] | | array_flow.rb:308:16:308:25 | call to source | array_flow.rb:308:5:308:5 | a [element 2] | -| array_flow.rb:308:16:308:25 | call to source | array_flow.rb:308:5:308:5 | a [element 2] | -| array_flow.rb:309:5:309:5 | b [element 2] | array_flow.rb:312:10:312:10 | b [element 2] | | array_flow.rb:309:5:309:5 | b [element 2] | array_flow.rb:312:10:312:10 | b [element 2] | | array_flow.rb:309:9:309:9 | a [element 2] | array_flow.rb:309:9:309:21 | call to deconstruct [element 2] | -| array_flow.rb:309:9:309:9 | a [element 2] | array_flow.rb:309:9:309:21 | call to deconstruct [element 2] | -| array_flow.rb:309:9:309:21 | call to deconstruct [element 2] | array_flow.rb:309:5:309:5 | b [element 2] | | array_flow.rb:309:9:309:21 | call to deconstruct [element 2] | array_flow.rb:309:5:309:5 | b [element 2] | | array_flow.rb:312:10:312:10 | b [element 2] | array_flow.rb:312:10:312:13 | ...[...] | -| array_flow.rb:312:10:312:10 | b [element 2] | array_flow.rb:312:10:312:13 | ...[...] | -| array_flow.rb:316:5:316:5 | a [element 2] | array_flow.rb:317:9:317:9 | a [element 2] | | array_flow.rb:316:5:316:5 | a [element 2] | array_flow.rb:317:9:317:9 | a [element 2] | | array_flow.rb:316:16:316:27 | call to source | array_flow.rb:316:5:316:5 | a [element 2] | -| array_flow.rb:316:16:316:27 | call to source | array_flow.rb:316:5:316:5 | a [element 2] | -| array_flow.rb:317:5:317:5 | b | array_flow.rb:318:10:318:10 | b | | array_flow.rb:317:5:317:5 | b | array_flow.rb:318:10:318:10 | b | | array_flow.rb:317:9:317:9 | a [element 2] | array_flow.rb:317:9:317:36 | call to delete | -| array_flow.rb:317:9:317:9 | a [element 2] | array_flow.rb:317:9:317:36 | call to delete | -| array_flow.rb:317:9:317:36 | call to delete | array_flow.rb:317:5:317:5 | b | | array_flow.rb:317:9:317:36 | call to delete | array_flow.rb:317:5:317:5 | b | | array_flow.rb:317:23:317:34 | call to source | array_flow.rb:317:9:317:36 | call to delete | -| array_flow.rb:317:23:317:34 | call to source | array_flow.rb:317:9:317:36 | call to delete | -| array_flow.rb:325:5:325:5 | a [element 2] | array_flow.rb:326:9:326:9 | a [element 2] | | array_flow.rb:325:5:325:5 | a [element 2] | array_flow.rb:326:9:326:9 | a [element 2] | | array_flow.rb:325:5:325:5 | a [element 3] | array_flow.rb:326:9:326:9 | a [element 3] | -| array_flow.rb:325:5:325:5 | a [element 3] | array_flow.rb:326:9:326:9 | a [element 3] | -| array_flow.rb:325:16:325:27 | call to source | array_flow.rb:325:5:325:5 | a [element 2] | | array_flow.rb:325:16:325:27 | call to source | array_flow.rb:325:5:325:5 | a [element 2] | | array_flow.rb:325:30:325:41 | call to source | array_flow.rb:325:5:325:5 | a [element 3] | -| array_flow.rb:325:30:325:41 | call to source | array_flow.rb:325:5:325:5 | a [element 3] | -| array_flow.rb:326:5:326:5 | b | array_flow.rb:327:10:327:10 | b | | array_flow.rb:326:5:326:5 | b | array_flow.rb:327:10:327:10 | b | | array_flow.rb:326:9:326:9 | [post] a [element 2] | array_flow.rb:328:10:328:10 | a [element 2] | -| array_flow.rb:326:9:326:9 | [post] a [element 2] | array_flow.rb:328:10:328:10 | a [element 2] | -| array_flow.rb:326:9:326:9 | a [element 2] | array_flow.rb:326:9:326:22 | call to delete_at | | array_flow.rb:326:9:326:9 | a [element 2] | array_flow.rb:326:9:326:22 | call to delete_at | | array_flow.rb:326:9:326:9 | a [element 3] | array_flow.rb:326:9:326:9 | [post] a [element 2] | -| array_flow.rb:326:9:326:9 | a [element 3] | array_flow.rb:326:9:326:9 | [post] a [element 2] | -| array_flow.rb:326:9:326:22 | call to delete_at | array_flow.rb:326:5:326:5 | b | | array_flow.rb:326:9:326:22 | call to delete_at | array_flow.rb:326:5:326:5 | b | | array_flow.rb:328:10:328:10 | a [element 2] | array_flow.rb:328:10:328:13 | ...[...] | -| array_flow.rb:328:10:328:10 | a [element 2] | array_flow.rb:328:10:328:13 | ...[...] | -| array_flow.rb:330:5:330:5 | a [element 2] | array_flow.rb:331:9:331:9 | a [element 2] | | array_flow.rb:330:5:330:5 | a [element 2] | array_flow.rb:331:9:331:9 | a [element 2] | | array_flow.rb:330:5:330:5 | a [element 3] | array_flow.rb:331:9:331:9 | a [element 3] | -| array_flow.rb:330:5:330:5 | a [element 3] | array_flow.rb:331:9:331:9 | a [element 3] | -| array_flow.rb:330:16:330:27 | call to source | array_flow.rb:330:5:330:5 | a [element 2] | | array_flow.rb:330:16:330:27 | call to source | array_flow.rb:330:5:330:5 | a [element 2] | | array_flow.rb:330:30:330:41 | call to source | array_flow.rb:330:5:330:5 | a [element 3] | -| array_flow.rb:330:30:330:41 | call to source | array_flow.rb:330:5:330:5 | a [element 3] | -| array_flow.rb:331:5:331:5 | b | array_flow.rb:332:10:332:10 | b | | array_flow.rb:331:5:331:5 | b | array_flow.rb:332:10:332:10 | b | | array_flow.rb:331:9:331:9 | [post] a [element] | array_flow.rb:333:10:333:10 | a [element] | -| array_flow.rb:331:9:331:9 | [post] a [element] | array_flow.rb:333:10:333:10 | a [element] | -| array_flow.rb:331:9:331:9 | [post] a [element] | array_flow.rb:334:10:334:10 | a [element] | | array_flow.rb:331:9:331:9 | [post] a [element] | array_flow.rb:334:10:334:10 | a [element] | | array_flow.rb:331:9:331:9 | a [element 2] | array_flow.rb:331:9:331:9 | [post] a [element] | -| array_flow.rb:331:9:331:9 | a [element 2] | array_flow.rb:331:9:331:9 | [post] a [element] | -| array_flow.rb:331:9:331:9 | a [element 2] | array_flow.rb:331:9:331:22 | call to delete_at | | array_flow.rb:331:9:331:9 | a [element 2] | array_flow.rb:331:9:331:22 | call to delete_at | | array_flow.rb:331:9:331:9 | a [element 3] | array_flow.rb:331:9:331:9 | [post] a [element] | -| array_flow.rb:331:9:331:9 | a [element 3] | array_flow.rb:331:9:331:9 | [post] a [element] | -| array_flow.rb:331:9:331:9 | a [element 3] | array_flow.rb:331:9:331:22 | call to delete_at | | array_flow.rb:331:9:331:9 | a [element 3] | array_flow.rb:331:9:331:22 | call to delete_at | | array_flow.rb:331:9:331:22 | call to delete_at | array_flow.rb:331:5:331:5 | b | -| array_flow.rb:331:9:331:22 | call to delete_at | array_flow.rb:331:5:331:5 | b | -| array_flow.rb:333:10:333:10 | a [element] | array_flow.rb:333:10:333:13 | ...[...] | | array_flow.rb:333:10:333:10 | a [element] | array_flow.rb:333:10:333:13 | ...[...] | | array_flow.rb:334:10:334:10 | a [element] | array_flow.rb:334:10:334:13 | ...[...] | -| array_flow.rb:334:10:334:10 | a [element] | array_flow.rb:334:10:334:13 | ...[...] | -| array_flow.rb:338:5:338:5 | a [element 2] | array_flow.rb:339:9:339:9 | a [element 2] | | array_flow.rb:338:5:338:5 | a [element 2] | array_flow.rb:339:9:339:9 | a [element 2] | | array_flow.rb:338:16:338:25 | call to source | array_flow.rb:338:5:338:5 | a [element 2] | -| array_flow.rb:338:16:338:25 | call to source | array_flow.rb:338:5:338:5 | a [element 2] | -| array_flow.rb:339:5:339:5 | b [element] | array_flow.rb:342:10:342:10 | b [element] | | array_flow.rb:339:5:339:5 | b [element] | array_flow.rb:342:10:342:10 | b [element] | | array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:343:10:343:10 | a [element] | -| array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:343:10:343:10 | a [element] | -| array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:344:10:344:10 | a [element] | | array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:344:10:344:10 | a [element] | | array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:345:10:345:10 | a [element] | -| array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:345:10:345:10 | a [element] | -| array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:9:339:9 | [post] a [element] | | array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:9:339:9 | [post] a [element] | | array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:9:341:7 | call to delete_if [element] | -| array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:9:341:7 | call to delete_if [element] | -| array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:25:339:25 | x | | array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:25:339:25 | x | | array_flow.rb:339:9:341:7 | call to delete_if [element] | array_flow.rb:339:5:339:5 | b [element] | -| array_flow.rb:339:9:341:7 | call to delete_if [element] | array_flow.rb:339:5:339:5 | b [element] | -| array_flow.rb:339:25:339:25 | x | array_flow.rb:340:14:340:14 | x | | array_flow.rb:339:25:339:25 | x | array_flow.rb:340:14:340:14 | x | | array_flow.rb:342:10:342:10 | b [element] | array_flow.rb:342:10:342:13 | ...[...] | -| array_flow.rb:342:10:342:10 | b [element] | array_flow.rb:342:10:342:13 | ...[...] | -| array_flow.rb:343:10:343:10 | a [element] | array_flow.rb:343:10:343:13 | ...[...] | | array_flow.rb:343:10:343:10 | a [element] | array_flow.rb:343:10:343:13 | ...[...] | | array_flow.rb:344:10:344:10 | a [element] | array_flow.rb:344:10:344:13 | ...[...] | -| array_flow.rb:344:10:344:10 | a [element] | array_flow.rb:344:10:344:13 | ...[...] | -| array_flow.rb:345:10:345:10 | a [element] | array_flow.rb:345:10:345:13 | ...[...] | | array_flow.rb:345:10:345:10 | a [element] | array_flow.rb:345:10:345:13 | ...[...] | | array_flow.rb:349:5:349:5 | a [element 2] | array_flow.rb:350:9:350:9 | a [element 2] | -| array_flow.rb:349:5:349:5 | a [element 2] | array_flow.rb:350:9:350:9 | a [element 2] | -| array_flow.rb:349:16:349:25 | call to source | array_flow.rb:349:5:349:5 | a [element 2] | | array_flow.rb:349:16:349:25 | call to source | array_flow.rb:349:5:349:5 | a [element 2] | | array_flow.rb:350:5:350:5 | b [element] | array_flow.rb:351:10:351:10 | b [element] | -| array_flow.rb:350:5:350:5 | b [element] | array_flow.rb:351:10:351:10 | b [element] | -| array_flow.rb:350:9:350:9 | a [element 2] | array_flow.rb:350:9:350:25 | call to difference [element] | | array_flow.rb:350:9:350:9 | a [element 2] | array_flow.rb:350:9:350:25 | call to difference [element] | | array_flow.rb:350:9:350:25 | call to difference [element] | array_flow.rb:350:5:350:5 | b [element] | -| array_flow.rb:350:9:350:25 | call to difference [element] | array_flow.rb:350:5:350:5 | b [element] | -| array_flow.rb:351:10:351:10 | b [element] | array_flow.rb:351:10:351:13 | ...[...] | | array_flow.rb:351:10:351:10 | b [element] | array_flow.rb:351:10:351:13 | ...[...] | | array_flow.rb:355:5:355:5 | a [element 2] | array_flow.rb:357:10:357:10 | a [element 2] | -| array_flow.rb:355:5:355:5 | a [element 2] | array_flow.rb:357:10:357:10 | a [element 2] | -| array_flow.rb:355:5:355:5 | a [element 2] | array_flow.rb:358:10:358:10 | a [element 2] | | array_flow.rb:355:5:355:5 | a [element 2] | array_flow.rb:358:10:358:10 | a [element 2] | | array_flow.rb:355:5:355:5 | a [element 3, element 1] | array_flow.rb:360:10:360:10 | a [element 3, element 1] | -| array_flow.rb:355:5:355:5 | a [element 3, element 1] | array_flow.rb:360:10:360:10 | a [element 3, element 1] | -| array_flow.rb:355:16:355:27 | call to source | array_flow.rb:355:5:355:5 | a [element 2] | | array_flow.rb:355:16:355:27 | call to source | array_flow.rb:355:5:355:5 | a [element 2] | | array_flow.rb:355:34:355:45 | call to source | array_flow.rb:355:5:355:5 | a [element 3, element 1] | -| array_flow.rb:355:34:355:45 | call to source | array_flow.rb:355:5:355:5 | a [element 3, element 1] | -| array_flow.rb:357:10:357:10 | a [element 2] | array_flow.rb:357:10:357:17 | call to dig | | array_flow.rb:357:10:357:10 | a [element 2] | array_flow.rb:357:10:357:17 | call to dig | | array_flow.rb:358:10:358:10 | a [element 2] | array_flow.rb:358:10:358:17 | call to dig | -| array_flow.rb:358:10:358:10 | a [element 2] | array_flow.rb:358:10:358:17 | call to dig | -| array_flow.rb:360:10:360:10 | a [element 3, element 1] | array_flow.rb:360:10:360:19 | call to dig | | array_flow.rb:360:10:360:10 | a [element 3, element 1] | array_flow.rb:360:10:360:19 | call to dig | | array_flow.rb:364:5:364:5 | a [element 2] | array_flow.rb:365:9:365:9 | a [element 2] | -| array_flow.rb:364:5:364:5 | a [element 2] | array_flow.rb:365:9:365:9 | a [element 2] | -| array_flow.rb:364:16:364:27 | call to source | array_flow.rb:364:5:364:5 | a [element 2] | | array_flow.rb:364:16:364:27 | call to source | array_flow.rb:364:5:364:5 | a [element 2] | | array_flow.rb:365:5:365:5 | b | array_flow.rb:368:10:368:10 | b | -| array_flow.rb:365:5:365:5 | b | array_flow.rb:368:10:368:10 | b | -| array_flow.rb:365:9:365:9 | a [element 2] | array_flow.rb:365:9:367:7 | call to detect | | array_flow.rb:365:9:365:9 | a [element 2] | array_flow.rb:365:9:367:7 | call to detect | | array_flow.rb:365:9:365:9 | a [element 2] | array_flow.rb:365:43:365:43 | x | -| array_flow.rb:365:9:365:9 | a [element 2] | array_flow.rb:365:43:365:43 | x | -| array_flow.rb:365:9:367:7 | call to detect | array_flow.rb:365:5:365:5 | b | | array_flow.rb:365:9:367:7 | call to detect | array_flow.rb:365:5:365:5 | b | | array_flow.rb:365:23:365:34 | call to source | array_flow.rb:365:9:367:7 | call to detect | -| array_flow.rb:365:23:365:34 | call to source | array_flow.rb:365:9:367:7 | call to detect | -| array_flow.rb:365:43:365:43 | x | array_flow.rb:366:14:366:14 | x | | array_flow.rb:365:43:365:43 | x | array_flow.rb:366:14:366:14 | x | | array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:373:9:373:9 | a [element 2] | -| array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:373:9:373:9 | a [element 2] | -| array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:375:9:375:9 | a [element 2] | | array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:375:9:375:9 | a [element 2] | | array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:380:9:380:9 | a [element 2] | -| array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:380:9:380:9 | a [element 2] | -| array_flow.rb:372:5:372:5 | a [element 3] | array_flow.rb:373:9:373:9 | a [element 3] | | array_flow.rb:372:5:372:5 | a [element 3] | array_flow.rb:373:9:373:9 | a [element 3] | | array_flow.rb:372:5:372:5 | a [element 3] | array_flow.rb:375:9:375:9 | a [element 3] | -| array_flow.rb:372:5:372:5 | a [element 3] | array_flow.rb:375:9:375:9 | a [element 3] | -| array_flow.rb:372:16:372:27 | call to source | array_flow.rb:372:5:372:5 | a [element 2] | | array_flow.rb:372:16:372:27 | call to source | array_flow.rb:372:5:372:5 | a [element 2] | | array_flow.rb:372:30:372:41 | call to source | array_flow.rb:372:5:372:5 | a [element 3] | -| array_flow.rb:372:30:372:41 | call to source | array_flow.rb:372:5:372:5 | a [element 3] | -| array_flow.rb:373:5:373:5 | b [element] | array_flow.rb:374:10:374:10 | b [element] | | array_flow.rb:373:5:373:5 | b [element] | array_flow.rb:374:10:374:10 | b [element] | | array_flow.rb:373:9:373:9 | a [element 2] | array_flow.rb:373:9:373:17 | call to drop [element] | -| array_flow.rb:373:9:373:9 | a [element 2] | array_flow.rb:373:9:373:17 | call to drop [element] | -| array_flow.rb:373:9:373:9 | a [element 3] | array_flow.rb:373:9:373:17 | call to drop [element] | | array_flow.rb:373:9:373:9 | a [element 3] | array_flow.rb:373:9:373:17 | call to drop [element] | | array_flow.rb:373:9:373:17 | call to drop [element] | array_flow.rb:373:5:373:5 | b [element] | -| array_flow.rb:373:9:373:17 | call to drop [element] | array_flow.rb:373:5:373:5 | b [element] | -| array_flow.rb:374:10:374:10 | b [element] | array_flow.rb:374:10:374:13 | ...[...] | | array_flow.rb:374:10:374:10 | b [element] | array_flow.rb:374:10:374:13 | ...[...] | | array_flow.rb:375:5:375:5 | b [element 1] | array_flow.rb:377:10:377:10 | b [element 1] | -| array_flow.rb:375:5:375:5 | b [element 1] | array_flow.rb:377:10:377:10 | b [element 1] | -| array_flow.rb:375:5:375:5 | b [element 1] | array_flow.rb:378:10:378:10 | b [element 1] | | array_flow.rb:375:5:375:5 | b [element 1] | array_flow.rb:378:10:378:10 | b [element 1] | | array_flow.rb:375:5:375:5 | b [element 2] | array_flow.rb:378:10:378:10 | b [element 2] | -| array_flow.rb:375:5:375:5 | b [element 2] | array_flow.rb:378:10:378:10 | b [element 2] | -| array_flow.rb:375:9:375:9 | a [element 2] | array_flow.rb:375:9:375:17 | call to drop [element 1] | | array_flow.rb:375:9:375:9 | a [element 2] | array_flow.rb:375:9:375:17 | call to drop [element 1] | | array_flow.rb:375:9:375:9 | a [element 3] | array_flow.rb:375:9:375:17 | call to drop [element 2] | -| array_flow.rb:375:9:375:9 | a [element 3] | array_flow.rb:375:9:375:17 | call to drop [element 2] | -| array_flow.rb:375:9:375:17 | call to drop [element 1] | array_flow.rb:375:5:375:5 | b [element 1] | | array_flow.rb:375:9:375:17 | call to drop [element 1] | array_flow.rb:375:5:375:5 | b [element 1] | | array_flow.rb:375:9:375:17 | call to drop [element 2] | array_flow.rb:375:5:375:5 | b [element 2] | -| array_flow.rb:375:9:375:17 | call to drop [element 2] | array_flow.rb:375:5:375:5 | b [element 2] | -| array_flow.rb:377:10:377:10 | b [element 1] | array_flow.rb:377:10:377:13 | ...[...] | | array_flow.rb:377:10:377:10 | b [element 1] | array_flow.rb:377:10:377:13 | ...[...] | | array_flow.rb:378:10:378:10 | b [element 1] | array_flow.rb:378:10:378:13 | ...[...] | -| array_flow.rb:378:10:378:10 | b [element 1] | array_flow.rb:378:10:378:13 | ...[...] | -| array_flow.rb:378:10:378:10 | b [element 2] | array_flow.rb:378:10:378:13 | ...[...] | | array_flow.rb:378:10:378:10 | b [element 2] | array_flow.rb:378:10:378:13 | ...[...] | | array_flow.rb:379:5:379:5 | [post] a [element] | array_flow.rb:380:9:380:9 | a [element] | -| array_flow.rb:379:5:379:5 | [post] a [element] | array_flow.rb:380:9:380:9 | a [element] | -| array_flow.rb:379:12:379:23 | call to source | array_flow.rb:379:5:379:5 | [post] a [element] | | array_flow.rb:379:12:379:23 | call to source | array_flow.rb:379:5:379:5 | [post] a [element] | | array_flow.rb:380:5:380:5 | b [element 1] | array_flow.rb:381:10:381:10 | b [element 1] | -| array_flow.rb:380:5:380:5 | b [element 1] | array_flow.rb:381:10:381:10 | b [element 1] | -| array_flow.rb:380:5:380:5 | b [element] | array_flow.rb:381:10:381:10 | b [element] | | array_flow.rb:380:5:380:5 | b [element] | array_flow.rb:381:10:381:10 | b [element] | | array_flow.rb:380:5:380:5 | b [element] | array_flow.rb:382:9:382:9 | b [element] | -| array_flow.rb:380:5:380:5 | b [element] | array_flow.rb:382:9:382:9 | b [element] | -| array_flow.rb:380:9:380:9 | a [element 2] | array_flow.rb:380:9:380:17 | call to drop [element 1] | | array_flow.rb:380:9:380:9 | a [element 2] | array_flow.rb:380:9:380:17 | call to drop [element 1] | | array_flow.rb:380:9:380:9 | a [element] | array_flow.rb:380:9:380:17 | call to drop [element] | -| array_flow.rb:380:9:380:9 | a [element] | array_flow.rb:380:9:380:17 | call to drop [element] | -| array_flow.rb:380:9:380:17 | call to drop [element 1] | array_flow.rb:380:5:380:5 | b [element 1] | | array_flow.rb:380:9:380:17 | call to drop [element 1] | array_flow.rb:380:5:380:5 | b [element 1] | | array_flow.rb:380:9:380:17 | call to drop [element] | array_flow.rb:380:5:380:5 | b [element] | -| array_flow.rb:380:9:380:17 | call to drop [element] | array_flow.rb:380:5:380:5 | b [element] | -| array_flow.rb:381:10:381:10 | b [element 1] | array_flow.rb:381:10:381:13 | ...[...] | | array_flow.rb:381:10:381:10 | b [element 1] | array_flow.rb:381:10:381:13 | ...[...] | | array_flow.rb:381:10:381:10 | b [element] | array_flow.rb:381:10:381:13 | ...[...] | -| array_flow.rb:381:10:381:10 | b [element] | array_flow.rb:381:10:381:13 | ...[...] | -| array_flow.rb:382:5:382:5 | c [element] | array_flow.rb:383:10:383:10 | c [element] | | array_flow.rb:382:5:382:5 | c [element] | array_flow.rb:383:10:383:10 | c [element] | | array_flow.rb:382:9:382:9 | b [element] | array_flow.rb:382:9:382:19 | call to drop [element] | -| array_flow.rb:382:9:382:9 | b [element] | array_flow.rb:382:9:382:19 | call to drop [element] | -| array_flow.rb:382:9:382:19 | call to drop [element] | array_flow.rb:382:5:382:5 | c [element] | | array_flow.rb:382:9:382:19 | call to drop [element] | array_flow.rb:382:5:382:5 | c [element] | | array_flow.rb:383:10:383:10 | c [element] | array_flow.rb:383:10:383:13 | ...[...] | -| array_flow.rb:383:10:383:10 | c [element] | array_flow.rb:383:10:383:13 | ...[...] | -| array_flow.rb:387:5:387:5 | a [element 2] | array_flow.rb:388:9:388:9 | a [element 2] | | array_flow.rb:387:5:387:5 | a [element 2] | array_flow.rb:388:9:388:9 | a [element 2] | | array_flow.rb:387:5:387:5 | a [element 3] | array_flow.rb:388:9:388:9 | a [element 3] | -| array_flow.rb:387:5:387:5 | a [element 3] | array_flow.rb:388:9:388:9 | a [element 3] | -| array_flow.rb:387:16:387:27 | call to source | array_flow.rb:387:5:387:5 | a [element 2] | | array_flow.rb:387:16:387:27 | call to source | array_flow.rb:387:5:387:5 | a [element 2] | | array_flow.rb:387:30:387:41 | call to source | array_flow.rb:387:5:387:5 | a [element 3] | -| array_flow.rb:387:30:387:41 | call to source | array_flow.rb:387:5:387:5 | a [element 3] | -| array_flow.rb:388:5:388:5 | b [element] | array_flow.rb:391:10:391:10 | b [element] | | array_flow.rb:388:5:388:5 | b [element] | array_flow.rb:391:10:391:10 | b [element] | | array_flow.rb:388:9:388:9 | a [element 2] | array_flow.rb:388:9:390:7 | call to drop_while [element] | -| array_flow.rb:388:9:388:9 | a [element 2] | array_flow.rb:388:9:390:7 | call to drop_while [element] | -| array_flow.rb:388:9:388:9 | a [element 2] | array_flow.rb:388:26:388:26 | x | | array_flow.rb:388:9:388:9 | a [element 2] | array_flow.rb:388:26:388:26 | x | | array_flow.rb:388:9:388:9 | a [element 3] | array_flow.rb:388:9:390:7 | call to drop_while [element] | -| array_flow.rb:388:9:388:9 | a [element 3] | array_flow.rb:388:9:390:7 | call to drop_while [element] | -| array_flow.rb:388:9:388:9 | a [element 3] | array_flow.rb:388:26:388:26 | x | | array_flow.rb:388:9:388:9 | a [element 3] | array_flow.rb:388:26:388:26 | x | | array_flow.rb:388:9:390:7 | call to drop_while [element] | array_flow.rb:388:5:388:5 | b [element] | -| array_flow.rb:388:9:390:7 | call to drop_while [element] | array_flow.rb:388:5:388:5 | b [element] | -| array_flow.rb:388:26:388:26 | x | array_flow.rb:389:14:389:14 | x | | array_flow.rb:388:26:388:26 | x | array_flow.rb:389:14:389:14 | x | | array_flow.rb:391:10:391:10 | b [element] | array_flow.rb:391:10:391:13 | ...[...] | -| array_flow.rb:391:10:391:10 | b [element] | array_flow.rb:391:10:391:13 | ...[...] | -| array_flow.rb:395:5:395:5 | a [element 2] | array_flow.rb:396:9:396:9 | a [element 2] | | array_flow.rb:395:5:395:5 | a [element 2] | array_flow.rb:396:9:396:9 | a [element 2] | | array_flow.rb:395:16:395:25 | call to source | array_flow.rb:395:5:395:5 | a [element 2] | -| array_flow.rb:395:16:395:25 | call to source | array_flow.rb:395:5:395:5 | a [element 2] | -| array_flow.rb:396:5:396:5 | b [element 2] | array_flow.rb:399:10:399:10 | b [element 2] | | array_flow.rb:396:5:396:5 | b [element 2] | array_flow.rb:399:10:399:10 | b [element 2] | | array_flow.rb:396:9:396:9 | a [element 2] | array_flow.rb:396:9:398:7 | call to each [element 2] | -| array_flow.rb:396:9:396:9 | a [element 2] | array_flow.rb:396:9:398:7 | call to each [element 2] | -| array_flow.rb:396:9:396:9 | a [element 2] | array_flow.rb:396:20:396:20 | x | | array_flow.rb:396:9:396:9 | a [element 2] | array_flow.rb:396:20:396:20 | x | | array_flow.rb:396:9:398:7 | call to each [element 2] | array_flow.rb:396:5:396:5 | b [element 2] | -| array_flow.rb:396:9:398:7 | call to each [element 2] | array_flow.rb:396:5:396:5 | b [element 2] | -| array_flow.rb:396:20:396:20 | x | array_flow.rb:397:14:397:14 | x | | array_flow.rb:396:20:396:20 | x | array_flow.rb:397:14:397:14 | x | | array_flow.rb:399:10:399:10 | b [element 2] | array_flow.rb:399:10:399:13 | ...[...] | -| array_flow.rb:399:10:399:10 | b [element 2] | array_flow.rb:399:10:399:13 | ...[...] | -| array_flow.rb:403:5:403:5 | a [element 2] | array_flow.rb:404:18:404:18 | a [element 2] | | array_flow.rb:403:5:403:5 | a [element 2] | array_flow.rb:404:18:404:18 | a [element 2] | | array_flow.rb:403:16:403:25 | call to source | array_flow.rb:403:5:403:5 | a [element 2] | -| array_flow.rb:403:16:403:25 | call to source | array_flow.rb:403:5:403:5 | a [element 2] | -| array_flow.rb:404:5:404:5 | b [element 2] | array_flow.rb:408:10:408:10 | b [element 2] | | array_flow.rb:404:5:404:5 | b [element 2] | array_flow.rb:408:10:408:10 | b [element 2] | | array_flow.rb:404:9:406:7 | __synth__0__1 | array_flow.rb:404:13:404:13 | x | -| array_flow.rb:404:9:406:7 | __synth__0__1 | array_flow.rb:404:13:404:13 | x | -| array_flow.rb:404:13:404:13 | x | array_flow.rb:405:14:405:14 | x | | array_flow.rb:404:13:404:13 | x | array_flow.rb:405:14:405:14 | x | | array_flow.rb:404:13:404:13 | x | array_flow.rb:407:10:407:10 | x | -| array_flow.rb:404:13:404:13 | x | array_flow.rb:407:10:407:10 | x | -| array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:5:404:5 | b [element 2] | | array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:5:404:5 | b [element 2] | | array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:9:406:7 | __synth__0__1 | -| array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:9:406:7 | __synth__0__1 | -| array_flow.rb:408:10:408:10 | b [element 2] | array_flow.rb:408:10:408:13 | ...[...] | | array_flow.rb:408:10:408:10 | b [element 2] | array_flow.rb:408:10:408:13 | ...[...] | | array_flow.rb:412:5:412:5 | a [element 2] | array_flow.rb:413:5:413:5 | a [element 2] | -| array_flow.rb:412:5:412:5 | a [element 2] | array_flow.rb:413:5:413:5 | a [element 2] | -| array_flow.rb:412:16:412:25 | call to source | array_flow.rb:412:5:412:5 | a [element 2] | | array_flow.rb:412:16:412:25 | call to source | array_flow.rb:412:5:412:5 | a [element 2] | | array_flow.rb:413:5:413:5 | a [element 2] | array_flow.rb:413:24:413:24 | x [element] | -| array_flow.rb:413:5:413:5 | a [element 2] | array_flow.rb:413:24:413:24 | x [element] | -| array_flow.rb:413:24:413:24 | x [element] | array_flow.rb:414:15:414:15 | x [element] | | array_flow.rb:413:24:413:24 | x [element] | array_flow.rb:414:15:414:15 | x [element] | | array_flow.rb:414:15:414:15 | x [element] | array_flow.rb:414:15:414:18 | ...[...] | -| array_flow.rb:414:15:414:15 | x [element] | array_flow.rb:414:15:414:18 | ...[...] | -| array_flow.rb:414:15:414:18 | ...[...] | array_flow.rb:414:14:414:19 | ( ... ) | | array_flow.rb:414:15:414:18 | ...[...] | array_flow.rb:414:14:414:19 | ( ... ) | | array_flow.rb:419:5:419:5 | a [element 2] | array_flow.rb:420:9:420:9 | a [element 2] | -| array_flow.rb:419:5:419:5 | a [element 2] | array_flow.rb:420:9:420:9 | a [element 2] | -| array_flow.rb:419:16:419:25 | call to source | array_flow.rb:419:5:419:5 | a [element 2] | | array_flow.rb:419:16:419:25 | call to source | array_flow.rb:419:5:419:5 | a [element 2] | | array_flow.rb:420:5:420:5 | b [element 2] | array_flow.rb:423:10:423:10 | b [element 2] | -| array_flow.rb:420:5:420:5 | b [element 2] | array_flow.rb:423:10:423:10 | b [element 2] | -| array_flow.rb:420:9:420:9 | a [element 2] | array_flow.rb:420:9:422:7 | call to each_entry [element 2] | | array_flow.rb:420:9:420:9 | a [element 2] | array_flow.rb:420:9:422:7 | call to each_entry [element 2] | | array_flow.rb:420:9:420:9 | a [element 2] | array_flow.rb:420:26:420:26 | x | -| array_flow.rb:420:9:420:9 | a [element 2] | array_flow.rb:420:26:420:26 | x | -| array_flow.rb:420:9:422:7 | call to each_entry [element 2] | array_flow.rb:420:5:420:5 | b [element 2] | | array_flow.rb:420:9:422:7 | call to each_entry [element 2] | array_flow.rb:420:5:420:5 | b [element 2] | | array_flow.rb:420:26:420:26 | x | array_flow.rb:421:14:421:14 | x | -| array_flow.rb:420:26:420:26 | x | array_flow.rb:421:14:421:14 | x | -| array_flow.rb:423:10:423:10 | b [element 2] | array_flow.rb:423:10:423:13 | ...[...] | | array_flow.rb:423:10:423:10 | b [element 2] | array_flow.rb:423:10:423:13 | ...[...] | | array_flow.rb:427:5:427:5 | a [element 2] | array_flow.rb:428:9:428:9 | a [element 2] | -| array_flow.rb:427:5:427:5 | a [element 2] | array_flow.rb:428:9:428:9 | a [element 2] | -| array_flow.rb:427:16:427:25 | call to source | array_flow.rb:427:5:427:5 | a [element 2] | | array_flow.rb:427:16:427:25 | call to source | array_flow.rb:427:5:427:5 | a [element 2] | | array_flow.rb:428:5:428:5 | b [element 2] | array_flow.rb:431:10:431:10 | b [element 2] | -| array_flow.rb:428:5:428:5 | b [element 2] | array_flow.rb:431:10:431:10 | b [element 2] | -| array_flow.rb:428:9:428:9 | a [element 2] | array_flow.rb:428:9:430:7 | call to each_index [element 2] | | array_flow.rb:428:9:428:9 | a [element 2] | array_flow.rb:428:9:430:7 | call to each_index [element 2] | | array_flow.rb:428:9:430:7 | call to each_index [element 2] | array_flow.rb:428:5:428:5 | b [element 2] | -| array_flow.rb:428:9:430:7 | call to each_index [element 2] | array_flow.rb:428:5:428:5 | b [element 2] | -| array_flow.rb:431:10:431:10 | b [element 2] | array_flow.rb:431:10:431:13 | ...[...] | | array_flow.rb:431:10:431:10 | b [element 2] | array_flow.rb:431:10:431:13 | ...[...] | | array_flow.rb:435:5:435:5 | a [element 3] | array_flow.rb:436:5:436:5 | a [element 3] | -| array_flow.rb:435:5:435:5 | a [element 3] | array_flow.rb:436:5:436:5 | a [element 3] | -| array_flow.rb:435:19:435:28 | call to source | array_flow.rb:435:5:435:5 | a [element 3] | | array_flow.rb:435:19:435:28 | call to source | array_flow.rb:435:5:435:5 | a [element 3] | | array_flow.rb:436:5:436:5 | a [element 3] | array_flow.rb:436:25:436:25 | x [element] | -| array_flow.rb:436:5:436:5 | a [element 3] | array_flow.rb:436:25:436:25 | x [element] | -| array_flow.rb:436:25:436:25 | x [element] | array_flow.rb:437:14:437:14 | x [element] | | array_flow.rb:436:25:436:25 | x [element] | array_flow.rb:437:14:437:14 | x [element] | | array_flow.rb:437:14:437:14 | x [element] | array_flow.rb:437:14:437:17 | ...[...] | -| array_flow.rb:437:14:437:14 | x [element] | array_flow.rb:437:14:437:17 | ...[...] | -| array_flow.rb:442:5:442:5 | a [element 3] | array_flow.rb:443:9:443:9 | a [element 3] | | array_flow.rb:442:5:442:5 | a [element 3] | array_flow.rb:443:9:443:9 | a [element 3] | | array_flow.rb:442:19:442:28 | call to source | array_flow.rb:442:5:442:5 | a [element 3] | -| array_flow.rb:442:19:442:28 | call to source | array_flow.rb:442:5:442:5 | a [element 3] | -| array_flow.rb:443:5:443:5 | b [element 3] | array_flow.rb:447:10:447:10 | b [element 3] | | array_flow.rb:443:5:443:5 | b [element 3] | array_flow.rb:447:10:447:10 | b [element 3] | | array_flow.rb:443:9:443:9 | a [element 3] | array_flow.rb:443:9:446:7 | call to each_with_index [element 3] | -| array_flow.rb:443:9:443:9 | a [element 3] | array_flow.rb:443:9:446:7 | call to each_with_index [element 3] | -| array_flow.rb:443:9:443:9 | a [element 3] | array_flow.rb:443:31:443:31 | x | | array_flow.rb:443:9:443:9 | a [element 3] | array_flow.rb:443:31:443:31 | x | | array_flow.rb:443:9:446:7 | call to each_with_index [element 3] | array_flow.rb:443:5:443:5 | b [element 3] | -| array_flow.rb:443:9:446:7 | call to each_with_index [element 3] | array_flow.rb:443:5:443:5 | b [element 3] | -| array_flow.rb:443:31:443:31 | x | array_flow.rb:444:14:444:14 | x | | array_flow.rb:443:31:443:31 | x | array_flow.rb:444:14:444:14 | x | | array_flow.rb:447:10:447:10 | b [element 3] | array_flow.rb:447:10:447:13 | ...[...] | -| array_flow.rb:447:10:447:10 | b [element 3] | array_flow.rb:447:10:447:13 | ...[...] | -| array_flow.rb:451:5:451:5 | a [element 3] | array_flow.rb:452:9:452:9 | a [element 3] | | array_flow.rb:451:5:451:5 | a [element 3] | array_flow.rb:452:9:452:9 | a [element 3] | | array_flow.rb:451:19:451:30 | call to source | array_flow.rb:451:5:451:5 | a [element 3] | -| array_flow.rb:451:19:451:30 | call to source | array_flow.rb:451:5:451:5 | a [element 3] | -| array_flow.rb:452:5:452:5 | b | array_flow.rb:456:10:456:10 | b | | array_flow.rb:452:5:452:5 | b | array_flow.rb:456:10:456:10 | b | | array_flow.rb:452:9:452:9 | a [element 3] | array_flow.rb:452:46:452:46 | x | -| array_flow.rb:452:9:452:9 | a [element 3] | array_flow.rb:452:46:452:46 | x | -| array_flow.rb:452:9:455:7 | call to each_with_object | array_flow.rb:452:5:452:5 | b | | array_flow.rb:452:9:455:7 | call to each_with_object | array_flow.rb:452:5:452:5 | b | | array_flow.rb:452:28:452:39 | call to source | array_flow.rb:452:9:455:7 | call to each_with_object | -| array_flow.rb:452:28:452:39 | call to source | array_flow.rb:452:9:455:7 | call to each_with_object | -| array_flow.rb:452:28:452:39 | call to source | array_flow.rb:452:48:452:48 | a | | array_flow.rb:452:28:452:39 | call to source | array_flow.rb:452:48:452:48 | a | | array_flow.rb:452:46:452:46 | x | array_flow.rb:453:14:453:14 | x | -| array_flow.rb:452:46:452:46 | x | array_flow.rb:453:14:453:14 | x | -| array_flow.rb:452:48:452:48 | a | array_flow.rb:454:14:454:14 | a | | array_flow.rb:452:48:452:48 | a | array_flow.rb:454:14:454:14 | a | | array_flow.rb:460:5:460:5 | a [element 3] | array_flow.rb:461:9:461:9 | a [element 3] | -| array_flow.rb:460:5:460:5 | a [element 3] | array_flow.rb:461:9:461:9 | a [element 3] | -| array_flow.rb:460:19:460:28 | call to source | array_flow.rb:460:5:460:5 | a [element 3] | | array_flow.rb:460:19:460:28 | call to source | array_flow.rb:460:5:460:5 | a [element 3] | | array_flow.rb:461:5:461:5 | b [element 3] | array_flow.rb:462:10:462:10 | b [element 3] | -| array_flow.rb:461:5:461:5 | b [element 3] | array_flow.rb:462:10:462:10 | b [element 3] | -| array_flow.rb:461:9:461:9 | a [element 3] | array_flow.rb:461:9:461:17 | call to entries [element 3] | | array_flow.rb:461:9:461:9 | a [element 3] | array_flow.rb:461:9:461:17 | call to entries [element 3] | | array_flow.rb:461:9:461:17 | call to entries [element 3] | array_flow.rb:461:5:461:5 | b [element 3] | -| array_flow.rb:461:9:461:17 | call to entries [element 3] | array_flow.rb:461:5:461:5 | b [element 3] | -| array_flow.rb:462:10:462:10 | b [element 3] | array_flow.rb:462:10:462:13 | ...[...] | | array_flow.rb:462:10:462:10 | b [element 3] | array_flow.rb:462:10:462:13 | ...[...] | | array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:467:9:467:9 | a [element 3] | -| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:467:9:467:9 | a [element 3] | -| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:471:9:471:9 | a [element 3] | | array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:471:9:471:9 | a [element 3] | | array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:473:9:473:9 | a [element 3] | -| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:473:9:473:9 | a [element 3] | -| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:477:9:477:9 | a [element 3] | | array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:477:9:477:9 | a [element 3] | | array_flow.rb:466:5:466:5 | a [element 4] | array_flow.rb:467:9:467:9 | a [element 4] | -| array_flow.rb:466:5:466:5 | a [element 4] | array_flow.rb:467:9:467:9 | a [element 4] | -| array_flow.rb:466:5:466:5 | a [element 4] | array_flow.rb:477:9:477:9 | a [element 4] | | array_flow.rb:466:5:466:5 | a [element 4] | array_flow.rb:477:9:477:9 | a [element 4] | | array_flow.rb:466:19:466:30 | call to source | array_flow.rb:466:5:466:5 | a [element 3] | -| array_flow.rb:466:19:466:30 | call to source | array_flow.rb:466:5:466:5 | a [element 3] | -| array_flow.rb:466:33:466:44 | call to source | array_flow.rb:466:5:466:5 | a [element 4] | | array_flow.rb:466:33:466:44 | call to source | array_flow.rb:466:5:466:5 | a [element 4] | | array_flow.rb:467:5:467:5 | b | array_flow.rb:470:10:470:10 | b | -| array_flow.rb:467:5:467:5 | b | array_flow.rb:470:10:470:10 | b | -| array_flow.rb:467:9:467:9 | a [element 3] | array_flow.rb:467:9:469:7 | call to fetch | | array_flow.rb:467:9:467:9 | a [element 3] | array_flow.rb:467:9:469:7 | call to fetch | | array_flow.rb:467:9:467:9 | a [element 4] | array_flow.rb:467:9:469:7 | call to fetch | -| array_flow.rb:467:9:467:9 | a [element 4] | array_flow.rb:467:9:469:7 | call to fetch | -| array_flow.rb:467:9:469:7 | call to fetch | array_flow.rb:467:5:467:5 | b | | array_flow.rb:467:9:469:7 | call to fetch | array_flow.rb:467:5:467:5 | b | | array_flow.rb:467:17:467:28 | call to source | array_flow.rb:467:35:467:35 | x | -| array_flow.rb:467:17:467:28 | call to source | array_flow.rb:467:35:467:35 | x | -| array_flow.rb:467:35:467:35 | x | array_flow.rb:468:14:468:14 | x | | array_flow.rb:467:35:467:35 | x | array_flow.rb:468:14:468:14 | x | | array_flow.rb:471:5:471:5 | b | array_flow.rb:472:10:472:10 | b | -| array_flow.rb:471:5:471:5 | b | array_flow.rb:472:10:472:10 | b | -| array_flow.rb:471:9:471:9 | a [element 3] | array_flow.rb:471:9:471:18 | call to fetch | | array_flow.rb:471:9:471:9 | a [element 3] | array_flow.rb:471:9:471:18 | call to fetch | | array_flow.rb:471:9:471:18 | call to fetch | array_flow.rb:471:5:471:5 | b | -| array_flow.rb:471:9:471:18 | call to fetch | array_flow.rb:471:5:471:5 | b | -| array_flow.rb:473:5:473:5 | b | array_flow.rb:474:10:474:10 | b | | array_flow.rb:473:5:473:5 | b | array_flow.rb:474:10:474:10 | b | | array_flow.rb:473:9:473:9 | a [element 3] | array_flow.rb:473:9:473:32 | call to fetch | -| array_flow.rb:473:9:473:9 | a [element 3] | array_flow.rb:473:9:473:32 | call to fetch | -| array_flow.rb:473:9:473:32 | call to fetch | array_flow.rb:473:5:473:5 | b | | array_flow.rb:473:9:473:32 | call to fetch | array_flow.rb:473:5:473:5 | b | | array_flow.rb:473:20:473:31 | call to source | array_flow.rb:473:9:473:32 | call to fetch | -| array_flow.rb:473:20:473:31 | call to source | array_flow.rb:473:9:473:32 | call to fetch | -| array_flow.rb:475:5:475:5 | b | array_flow.rb:476:10:476:10 | b | | array_flow.rb:475:5:475:5 | b | array_flow.rb:476:10:476:10 | b | | array_flow.rb:475:9:475:34 | call to fetch | array_flow.rb:475:5:475:5 | b | -| array_flow.rb:475:9:475:34 | call to fetch | array_flow.rb:475:5:475:5 | b | -| array_flow.rb:475:22:475:33 | call to source | array_flow.rb:475:9:475:34 | call to fetch | | array_flow.rb:475:22:475:33 | call to source | array_flow.rb:475:9:475:34 | call to fetch | | array_flow.rb:477:5:477:5 | b | array_flow.rb:478:10:478:10 | b | -| array_flow.rb:477:5:477:5 | b | array_flow.rb:478:10:478:10 | b | -| array_flow.rb:477:9:477:9 | a [element 3] | array_flow.rb:477:9:477:32 | call to fetch | | array_flow.rb:477:9:477:9 | a [element 3] | array_flow.rb:477:9:477:32 | call to fetch | | array_flow.rb:477:9:477:9 | a [element 4] | array_flow.rb:477:9:477:32 | call to fetch | -| array_flow.rb:477:9:477:9 | a [element 4] | array_flow.rb:477:9:477:32 | call to fetch | -| array_flow.rb:477:9:477:32 | call to fetch | array_flow.rb:477:5:477:5 | b | | array_flow.rb:477:9:477:32 | call to fetch | array_flow.rb:477:5:477:5 | b | | array_flow.rb:477:20:477:31 | call to source | array_flow.rb:477:9:477:32 | call to fetch | -| array_flow.rb:477:20:477:31 | call to source | array_flow.rb:477:9:477:32 | call to fetch | -| array_flow.rb:482:5:482:5 | a [element 3] | array_flow.rb:484:10:484:10 | a [element 3] | | array_flow.rb:482:5:482:5 | a [element 3] | array_flow.rb:484:10:484:10 | a [element 3] | | array_flow.rb:482:19:482:30 | call to source | array_flow.rb:482:5:482:5 | a [element 3] | -| array_flow.rb:482:19:482:30 | call to source | array_flow.rb:482:5:482:5 | a [element 3] | -| array_flow.rb:483:5:483:5 | [post] a [element] | array_flow.rb:484:10:484:10 | a [element] | | array_flow.rb:483:5:483:5 | [post] a [element] | array_flow.rb:484:10:484:10 | a [element] | | array_flow.rb:483:12:483:23 | call to source | array_flow.rb:483:5:483:5 | [post] a [element] | -| array_flow.rb:483:12:483:23 | call to source | array_flow.rb:483:5:483:5 | [post] a [element] | -| array_flow.rb:484:10:484:10 | a [element 3] | array_flow.rb:484:10:484:13 | ...[...] | | array_flow.rb:484:10:484:10 | a [element 3] | array_flow.rb:484:10:484:13 | ...[...] | | array_flow.rb:484:10:484:10 | a [element] | array_flow.rb:484:10:484:13 | ...[...] | -| array_flow.rb:484:10:484:10 | a [element] | array_flow.rb:484:10:484:13 | ...[...] | -| array_flow.rb:485:5:485:5 | [post] a [element] | array_flow.rb:486:10:486:10 | a [element] | | array_flow.rb:485:5:485:5 | [post] a [element] | array_flow.rb:486:10:486:10 | a [element] | | array_flow.rb:485:12:485:23 | call to source | array_flow.rb:485:5:485:5 | [post] a [element] | -| array_flow.rb:485:12:485:23 | call to source | array_flow.rb:485:5:485:5 | [post] a [element] | -| array_flow.rb:486:10:486:10 | a [element] | array_flow.rb:486:10:486:13 | ...[...] | | array_flow.rb:486:10:486:10 | a [element] | array_flow.rb:486:10:486:13 | ...[...] | | array_flow.rb:487:5:487:5 | [post] a [element] | array_flow.rb:490:10:490:10 | a [element] | -| array_flow.rb:487:5:487:5 | [post] a [element] | array_flow.rb:490:10:490:10 | a [element] | -| array_flow.rb:487:5:487:5 | [post] a [element] | array_flow.rb:494:10:494:10 | a [element] | | array_flow.rb:487:5:487:5 | [post] a [element] | array_flow.rb:494:10:494:10 | a [element] | | array_flow.rb:488:9:488:20 | call to source | array_flow.rb:487:5:487:5 | [post] a [element] | -| array_flow.rb:488:9:488:20 | call to source | array_flow.rb:487:5:487:5 | [post] a [element] | -| array_flow.rb:490:10:490:10 | a [element] | array_flow.rb:490:10:490:13 | ...[...] | | array_flow.rb:490:10:490:10 | a [element] | array_flow.rb:490:10:490:13 | ...[...] | | array_flow.rb:491:5:491:5 | [post] a [element] | array_flow.rb:494:10:494:10 | a [element] | -| array_flow.rb:491:5:491:5 | [post] a [element] | array_flow.rb:494:10:494:10 | a [element] | -| array_flow.rb:492:9:492:20 | call to source | array_flow.rb:491:5:491:5 | [post] a [element] | | array_flow.rb:492:9:492:20 | call to source | array_flow.rb:491:5:491:5 | [post] a [element] | | array_flow.rb:494:10:494:10 | a [element] | array_flow.rb:494:10:494:13 | ...[...] | -| array_flow.rb:494:10:494:10 | a [element] | array_flow.rb:494:10:494:13 | ...[...] | -| array_flow.rb:498:5:498:5 | a [element 3] | array_flow.rb:499:9:499:9 | a [element 3] | | array_flow.rb:498:5:498:5 | a [element 3] | array_flow.rb:499:9:499:9 | a [element 3] | | array_flow.rb:498:19:498:28 | call to source | array_flow.rb:498:5:498:5 | a [element 3] | -| array_flow.rb:498:19:498:28 | call to source | array_flow.rb:498:5:498:5 | a [element 3] | -| array_flow.rb:499:5:499:5 | b [element] | array_flow.rb:502:10:502:10 | b [element] | | array_flow.rb:499:5:499:5 | b [element] | array_flow.rb:502:10:502:10 | b [element] | | array_flow.rb:499:9:499:9 | a [element 3] | array_flow.rb:499:9:501:7 | call to filter [element] | -| array_flow.rb:499:9:499:9 | a [element 3] | array_flow.rb:499:9:501:7 | call to filter [element] | -| array_flow.rb:499:9:499:9 | a [element 3] | array_flow.rb:499:22:499:22 | x | | array_flow.rb:499:9:499:9 | a [element 3] | array_flow.rb:499:22:499:22 | x | | array_flow.rb:499:9:501:7 | call to filter [element] | array_flow.rb:499:5:499:5 | b [element] | -| array_flow.rb:499:9:501:7 | call to filter [element] | array_flow.rb:499:5:499:5 | b [element] | -| array_flow.rb:499:22:499:22 | x | array_flow.rb:500:14:500:14 | x | | array_flow.rb:499:22:499:22 | x | array_flow.rb:500:14:500:14 | x | | array_flow.rb:502:10:502:10 | b [element] | array_flow.rb:502:10:502:13 | ...[...] | -| array_flow.rb:502:10:502:10 | b [element] | array_flow.rb:502:10:502:13 | ...[...] | -| array_flow.rb:506:5:506:5 | a [element 3] | array_flow.rb:507:9:507:9 | a [element 3] | | array_flow.rb:506:5:506:5 | a [element 3] | array_flow.rb:507:9:507:9 | a [element 3] | | array_flow.rb:506:19:506:28 | call to source | array_flow.rb:506:5:506:5 | a [element 3] | -| array_flow.rb:506:19:506:28 | call to source | array_flow.rb:506:5:506:5 | a [element 3] | -| array_flow.rb:507:5:507:5 | b [element] | array_flow.rb:511:10:511:10 | b [element] | | array_flow.rb:507:5:507:5 | b [element] | array_flow.rb:511:10:511:10 | b [element] | | array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:9:510:7 | call to filter_map [element] | -| array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:9:510:7 | call to filter_map [element] | -| array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:26:507:26 | x | | array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:26:507:26 | x | | array_flow.rb:507:9:510:7 | call to filter_map [element] | array_flow.rb:507:5:507:5 | b [element] | -| array_flow.rb:507:9:510:7 | call to filter_map [element] | array_flow.rb:507:5:507:5 | b [element] | -| array_flow.rb:507:26:507:26 | x | array_flow.rb:508:14:508:14 | x | | array_flow.rb:507:26:507:26 | x | array_flow.rb:508:14:508:14 | x | | array_flow.rb:511:10:511:10 | b [element] | array_flow.rb:511:10:511:13 | ...[...] | -| array_flow.rb:511:10:511:10 | b [element] | array_flow.rb:511:10:511:13 | ...[...] | -| array_flow.rb:518:5:518:5 | d [element] | array_flow.rb:521:10:521:10 | d [element] | | array_flow.rb:518:5:518:5 | d [element] | array_flow.rb:521:10:521:10 | d [element] | | array_flow.rb:518:9:520:7 | call to filter_map [element] | array_flow.rb:518:5:518:5 | d [element] | -| array_flow.rb:518:9:520:7 | call to filter_map [element] | array_flow.rb:518:5:518:5 | d [element] | -| array_flow.rb:519:9:519:20 | call to source | array_flow.rb:518:9:520:7 | call to filter_map [element] | | array_flow.rb:519:9:519:20 | call to source | array_flow.rb:518:9:520:7 | call to filter_map [element] | | array_flow.rb:521:10:521:10 | d [element] | array_flow.rb:521:10:521:13 | ...[...] | -| array_flow.rb:521:10:521:10 | d [element] | array_flow.rb:521:10:521:13 | ...[...] | -| array_flow.rb:525:5:525:5 | a [element 3] | array_flow.rb:526:9:526:9 | a [element 3] | | array_flow.rb:525:5:525:5 | a [element 3] | array_flow.rb:526:9:526:9 | a [element 3] | | array_flow.rb:525:19:525:28 | call to source | array_flow.rb:525:5:525:5 | a [element 3] | -| array_flow.rb:525:19:525:28 | call to source | array_flow.rb:525:5:525:5 | a [element 3] | -| array_flow.rb:526:5:526:5 | b [element] | array_flow.rb:531:10:531:10 | b [element] | | array_flow.rb:526:5:526:5 | b [element] | array_flow.rb:531:10:531:10 | b [element] | | array_flow.rb:526:9:526:9 | [post] a [element] | array_flow.rb:530:10:530:10 | a [element] | -| array_flow.rb:526:9:526:9 | [post] a [element] | array_flow.rb:530:10:530:10 | a [element] | -| array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:9:526:9 | [post] a [element] | | array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:9:526:9 | [post] a [element] | | array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:9:529:7 | call to filter! [element] | -| array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:9:529:7 | call to filter! [element] | -| array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:23:526:23 | x | | array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:23:526:23 | x | | array_flow.rb:526:9:529:7 | call to filter! [element] | array_flow.rb:526:5:526:5 | b [element] | -| array_flow.rb:526:9:529:7 | call to filter! [element] | array_flow.rb:526:5:526:5 | b [element] | -| array_flow.rb:526:23:526:23 | x | array_flow.rb:527:14:527:14 | x | | array_flow.rb:526:23:526:23 | x | array_flow.rb:527:14:527:14 | x | | array_flow.rb:530:10:530:10 | a [element] | array_flow.rb:530:10:530:13 | ...[...] | -| array_flow.rb:530:10:530:10 | a [element] | array_flow.rb:530:10:530:13 | ...[...] | -| array_flow.rb:531:10:531:10 | b [element] | array_flow.rb:531:10:531:13 | ...[...] | | array_flow.rb:531:10:531:10 | b [element] | array_flow.rb:531:10:531:13 | ...[...] | | array_flow.rb:535:5:535:5 | a [element 3] | array_flow.rb:536:9:536:9 | a [element 3] | -| array_flow.rb:535:5:535:5 | a [element 3] | array_flow.rb:536:9:536:9 | a [element 3] | -| array_flow.rb:535:19:535:30 | call to source | array_flow.rb:535:5:535:5 | a [element 3] | | array_flow.rb:535:19:535:30 | call to source | array_flow.rb:535:5:535:5 | a [element 3] | | array_flow.rb:536:5:536:5 | b | array_flow.rb:539:10:539:10 | b | -| array_flow.rb:536:5:536:5 | b | array_flow.rb:539:10:539:10 | b | -| array_flow.rb:536:9:536:9 | a [element 3] | array_flow.rb:536:9:538:7 | call to find | | array_flow.rb:536:9:536:9 | a [element 3] | array_flow.rb:536:9:538:7 | call to find | | array_flow.rb:536:9:536:9 | a [element 3] | array_flow.rb:536:41:536:41 | x | -| array_flow.rb:536:9:536:9 | a [element 3] | array_flow.rb:536:41:536:41 | x | -| array_flow.rb:536:9:538:7 | call to find | array_flow.rb:536:5:536:5 | b | | array_flow.rb:536:9:538:7 | call to find | array_flow.rb:536:5:536:5 | b | | array_flow.rb:536:21:536:32 | call to source | array_flow.rb:536:9:538:7 | call to find | -| array_flow.rb:536:21:536:32 | call to source | array_flow.rb:536:9:538:7 | call to find | -| array_flow.rb:536:41:536:41 | x | array_flow.rb:537:14:537:14 | x | | array_flow.rb:536:41:536:41 | x | array_flow.rb:537:14:537:14 | x | | array_flow.rb:543:5:543:5 | a [element 3] | array_flow.rb:544:9:544:9 | a [element 3] | -| array_flow.rb:543:5:543:5 | a [element 3] | array_flow.rb:544:9:544:9 | a [element 3] | -| array_flow.rb:543:19:543:28 | call to source | array_flow.rb:543:5:543:5 | a [element 3] | | array_flow.rb:543:19:543:28 | call to source | array_flow.rb:543:5:543:5 | a [element 3] | | array_flow.rb:544:5:544:5 | b [element] | array_flow.rb:547:10:547:10 | b [element] | -| array_flow.rb:544:5:544:5 | b [element] | array_flow.rb:547:10:547:10 | b [element] | -| array_flow.rb:544:9:544:9 | a [element 3] | array_flow.rb:544:9:546:7 | call to find_all [element] | | array_flow.rb:544:9:544:9 | a [element 3] | array_flow.rb:544:9:546:7 | call to find_all [element] | | array_flow.rb:544:9:544:9 | a [element 3] | array_flow.rb:544:24:544:24 | x | -| array_flow.rb:544:9:544:9 | a [element 3] | array_flow.rb:544:24:544:24 | x | -| array_flow.rb:544:9:546:7 | call to find_all [element] | array_flow.rb:544:5:544:5 | b [element] | | array_flow.rb:544:9:546:7 | call to find_all [element] | array_flow.rb:544:5:544:5 | b [element] | | array_flow.rb:544:24:544:24 | x | array_flow.rb:545:14:545:14 | x | -| array_flow.rb:544:24:544:24 | x | array_flow.rb:545:14:545:14 | x | -| array_flow.rb:547:10:547:10 | b [element] | array_flow.rb:547:10:547:13 | ...[...] | | array_flow.rb:547:10:547:10 | b [element] | array_flow.rb:547:10:547:13 | ...[...] | | array_flow.rb:551:5:551:5 | a [element 3] | array_flow.rb:552:5:552:5 | a [element 3] | -| array_flow.rb:551:5:551:5 | a [element 3] | array_flow.rb:552:5:552:5 | a [element 3] | -| array_flow.rb:551:19:551:28 | call to source | array_flow.rb:551:5:551:5 | a [element 3] | | array_flow.rb:551:19:551:28 | call to source | array_flow.rb:551:5:551:5 | a [element 3] | | array_flow.rb:552:5:552:5 | a [element 3] | array_flow.rb:552:22:552:22 | x | -| array_flow.rb:552:5:552:5 | a [element 3] | array_flow.rb:552:22:552:22 | x | -| array_flow.rb:552:22:552:22 | x | array_flow.rb:553:14:553:14 | x | | array_flow.rb:552:22:552:22 | x | array_flow.rb:553:14:553:14 | x | | array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:560:10:560:10 | a [element 0] | -| array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:560:10:560:10 | a [element 0] | -| array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:561:9:561:9 | a [element 0] | | array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:561:9:561:9 | a [element 0] | | array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:564:9:564:9 | a [element 0] | -| array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:564:9:564:9 | a [element 0] | -| array_flow.rb:558:5:558:5 | a [element 3] | array_flow.rb:564:9:564:9 | a [element 3] | | array_flow.rb:558:5:558:5 | a [element 3] | array_flow.rb:564:9:564:9 | a [element 3] | | array_flow.rb:558:10:558:21 | call to source | array_flow.rb:558:5:558:5 | a [element 0] | -| array_flow.rb:558:10:558:21 | call to source | array_flow.rb:558:5:558:5 | a [element 0] | -| array_flow.rb:558:30:558:41 | call to source | array_flow.rb:558:5:558:5 | a [element 3] | | array_flow.rb:558:30:558:41 | call to source | array_flow.rb:558:5:558:5 | a [element 3] | | array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:560:10:560:10 | a [element] | -| array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:560:10:560:10 | a [element] | -| array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:561:9:561:9 | a [element] | | array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:561:9:561:9 | a [element] | | array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:564:9:564:9 | a [element] | -| array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:564:9:564:9 | a [element] | -| array_flow.rb:559:12:559:23 | call to source | array_flow.rb:559:5:559:5 | [post] a [element] | | array_flow.rb:559:12:559:23 | call to source | array_flow.rb:559:5:559:5 | [post] a [element] | | array_flow.rb:560:10:560:10 | a [element 0] | array_flow.rb:560:10:560:16 | call to first | -| array_flow.rb:560:10:560:10 | a [element 0] | array_flow.rb:560:10:560:16 | call to first | -| array_flow.rb:560:10:560:10 | a [element] | array_flow.rb:560:10:560:16 | call to first | | array_flow.rb:560:10:560:10 | a [element] | array_flow.rb:560:10:560:16 | call to first | | array_flow.rb:561:5:561:5 | b [element 0] | array_flow.rb:562:10:562:10 | b [element 0] | -| array_flow.rb:561:5:561:5 | b [element 0] | array_flow.rb:562:10:562:10 | b [element 0] | -| array_flow.rb:561:5:561:5 | b [element] | array_flow.rb:562:10:562:10 | b [element] | | array_flow.rb:561:5:561:5 | b [element] | array_flow.rb:562:10:562:10 | b [element] | | array_flow.rb:561:5:561:5 | b [element] | array_flow.rb:563:10:563:10 | b [element] | -| array_flow.rb:561:5:561:5 | b [element] | array_flow.rb:563:10:563:10 | b [element] | -| array_flow.rb:561:9:561:9 | a [element 0] | array_flow.rb:561:9:561:18 | call to first [element 0] | | array_flow.rb:561:9:561:9 | a [element 0] | array_flow.rb:561:9:561:18 | call to first [element 0] | | array_flow.rb:561:9:561:9 | a [element] | array_flow.rb:561:9:561:18 | call to first [element] | -| array_flow.rb:561:9:561:9 | a [element] | array_flow.rb:561:9:561:18 | call to first [element] | -| array_flow.rb:561:9:561:18 | call to first [element 0] | array_flow.rb:561:5:561:5 | b [element 0] | | array_flow.rb:561:9:561:18 | call to first [element 0] | array_flow.rb:561:5:561:5 | b [element 0] | | array_flow.rb:561:9:561:18 | call to first [element] | array_flow.rb:561:5:561:5 | b [element] | -| array_flow.rb:561:9:561:18 | call to first [element] | array_flow.rb:561:5:561:5 | b [element] | -| array_flow.rb:562:10:562:10 | b [element 0] | array_flow.rb:562:10:562:13 | ...[...] | | array_flow.rb:562:10:562:10 | b [element 0] | array_flow.rb:562:10:562:13 | ...[...] | | array_flow.rb:562:10:562:10 | b [element] | array_flow.rb:562:10:562:13 | ...[...] | -| array_flow.rb:562:10:562:10 | b [element] | array_flow.rb:562:10:562:13 | ...[...] | -| array_flow.rb:563:10:563:10 | b [element] | array_flow.rb:563:10:563:13 | ...[...] | | array_flow.rb:563:10:563:10 | b [element] | array_flow.rb:563:10:563:13 | ...[...] | | array_flow.rb:564:5:564:5 | c [element 0] | array_flow.rb:565:10:565:10 | c [element 0] | -| array_flow.rb:564:5:564:5 | c [element 0] | array_flow.rb:565:10:565:10 | c [element 0] | -| array_flow.rb:564:5:564:5 | c [element 3] | array_flow.rb:566:10:566:10 | c [element 3] | | array_flow.rb:564:5:564:5 | c [element 3] | array_flow.rb:566:10:566:10 | c [element 3] | | array_flow.rb:564:5:564:5 | c [element] | array_flow.rb:565:10:565:10 | c [element] | -| array_flow.rb:564:5:564:5 | c [element] | array_flow.rb:565:10:565:10 | c [element] | -| array_flow.rb:564:5:564:5 | c [element] | array_flow.rb:566:10:566:10 | c [element] | | array_flow.rb:564:5:564:5 | c [element] | array_flow.rb:566:10:566:10 | c [element] | | array_flow.rb:564:9:564:9 | a [element 0] | array_flow.rb:564:9:564:18 | call to first [element 0] | -| array_flow.rb:564:9:564:9 | a [element 0] | array_flow.rb:564:9:564:18 | call to first [element 0] | -| array_flow.rb:564:9:564:9 | a [element 3] | array_flow.rb:564:9:564:18 | call to first [element 3] | | array_flow.rb:564:9:564:9 | a [element 3] | array_flow.rb:564:9:564:18 | call to first [element 3] | | array_flow.rb:564:9:564:9 | a [element] | array_flow.rb:564:9:564:18 | call to first [element] | -| array_flow.rb:564:9:564:9 | a [element] | array_flow.rb:564:9:564:18 | call to first [element] | -| array_flow.rb:564:9:564:18 | call to first [element 0] | array_flow.rb:564:5:564:5 | c [element 0] | | array_flow.rb:564:9:564:18 | call to first [element 0] | array_flow.rb:564:5:564:5 | c [element 0] | | array_flow.rb:564:9:564:18 | call to first [element 3] | array_flow.rb:564:5:564:5 | c [element 3] | -| array_flow.rb:564:9:564:18 | call to first [element 3] | array_flow.rb:564:5:564:5 | c [element 3] | -| array_flow.rb:564:9:564:18 | call to first [element] | array_flow.rb:564:5:564:5 | c [element] | | array_flow.rb:564:9:564:18 | call to first [element] | array_flow.rb:564:5:564:5 | c [element] | | array_flow.rb:565:10:565:10 | c [element 0] | array_flow.rb:565:10:565:13 | ...[...] | -| array_flow.rb:565:10:565:10 | c [element 0] | array_flow.rb:565:10:565:13 | ...[...] | -| array_flow.rb:565:10:565:10 | c [element] | array_flow.rb:565:10:565:13 | ...[...] | | array_flow.rb:565:10:565:10 | c [element] | array_flow.rb:565:10:565:13 | ...[...] | | array_flow.rb:566:10:566:10 | c [element 3] | array_flow.rb:566:10:566:13 | ...[...] | -| array_flow.rb:566:10:566:10 | c [element 3] | array_flow.rb:566:10:566:13 | ...[...] | -| array_flow.rb:566:10:566:10 | c [element] | array_flow.rb:566:10:566:13 | ...[...] | | array_flow.rb:566:10:566:10 | c [element] | array_flow.rb:566:10:566:13 | ...[...] | | array_flow.rb:570:5:570:5 | a [element 2] | array_flow.rb:571:9:571:9 | a [element 2] | -| array_flow.rb:570:5:570:5 | a [element 2] | array_flow.rb:571:9:571:9 | a [element 2] | -| array_flow.rb:570:5:570:5 | a [element 2] | array_flow.rb:576:9:576:9 | a [element 2] | | array_flow.rb:570:5:570:5 | a [element 2] | array_flow.rb:576:9:576:9 | a [element 2] | | array_flow.rb:570:16:570:27 | call to source | array_flow.rb:570:5:570:5 | a [element 2] | -| array_flow.rb:570:16:570:27 | call to source | array_flow.rb:570:5:570:5 | a [element 2] | -| array_flow.rb:571:5:571:5 | b [element] | array_flow.rb:575:10:575:10 | b [element] | | array_flow.rb:571:5:571:5 | b [element] | array_flow.rb:575:10:575:10 | b [element] | | array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:9:574:7 | call to flat_map [element] | -| array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:9:574:7 | call to flat_map [element] | -| array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:24:571:24 | x | | array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:24:571:24 | x | | array_flow.rb:571:9:574:7 | call to flat_map [element] | array_flow.rb:571:5:571:5 | b [element] | -| array_flow.rb:571:9:574:7 | call to flat_map [element] | array_flow.rb:571:5:571:5 | b [element] | -| array_flow.rb:571:24:571:24 | x | array_flow.rb:572:14:572:14 | x | | array_flow.rb:571:24:571:24 | x | array_flow.rb:572:14:572:14 | x | | array_flow.rb:573:13:573:24 | call to source | array_flow.rb:571:9:574:7 | call to flat_map [element] | -| array_flow.rb:573:13:573:24 | call to source | array_flow.rb:571:9:574:7 | call to flat_map [element] | -| array_flow.rb:575:10:575:10 | b [element] | array_flow.rb:575:10:575:13 | ...[...] | | array_flow.rb:575:10:575:10 | b [element] | array_flow.rb:575:10:575:13 | ...[...] | | array_flow.rb:576:5:576:5 | b [element] | array_flow.rb:580:10:580:10 | b [element] | -| array_flow.rb:576:5:576:5 | b [element] | array_flow.rb:580:10:580:10 | b [element] | -| array_flow.rb:576:9:576:9 | a [element 2] | array_flow.rb:576:24:576:24 | x | | array_flow.rb:576:9:576:9 | a [element 2] | array_flow.rb:576:24:576:24 | x | | array_flow.rb:576:9:579:7 | call to flat_map [element] | array_flow.rb:576:5:576:5 | b [element] | -| array_flow.rb:576:9:579:7 | call to flat_map [element] | array_flow.rb:576:5:576:5 | b [element] | -| array_flow.rb:576:24:576:24 | x | array_flow.rb:577:14:577:14 | x | | array_flow.rb:576:24:576:24 | x | array_flow.rb:577:14:577:14 | x | | array_flow.rb:578:9:578:20 | call to source | array_flow.rb:576:9:579:7 | call to flat_map [element] | -| array_flow.rb:578:9:578:20 | call to source | array_flow.rb:576:9:579:7 | call to flat_map [element] | -| array_flow.rb:580:10:580:10 | b [element] | array_flow.rb:580:10:580:13 | ...[...] | | array_flow.rb:580:10:580:10 | b [element] | array_flow.rb:580:10:580:13 | ...[...] | | array_flow.rb:584:5:584:5 | a [element 2, element 1] | array_flow.rb:585:9:585:9 | a [element 2, element 1] | -| array_flow.rb:584:5:584:5 | a [element 2, element 1] | array_flow.rb:585:9:585:9 | a [element 2, element 1] | -| array_flow.rb:584:20:584:29 | call to source | array_flow.rb:584:5:584:5 | a [element 2, element 1] | | array_flow.rb:584:20:584:29 | call to source | array_flow.rb:584:5:584:5 | a [element 2, element 1] | | array_flow.rb:585:5:585:5 | b [element] | array_flow.rb:586:10:586:10 | b [element] | -| array_flow.rb:585:5:585:5 | b [element] | array_flow.rb:586:10:586:10 | b [element] | -| array_flow.rb:585:9:585:9 | a [element 2, element 1] | array_flow.rb:585:9:585:17 | call to flatten [element] | | array_flow.rb:585:9:585:9 | a [element 2, element 1] | array_flow.rb:585:9:585:17 | call to flatten [element] | | array_flow.rb:585:9:585:17 | call to flatten [element] | array_flow.rb:585:5:585:5 | b [element] | -| array_flow.rb:585:9:585:17 | call to flatten [element] | array_flow.rb:585:5:585:5 | b [element] | -| array_flow.rb:586:10:586:10 | b [element] | array_flow.rb:586:10:586:13 | ...[...] | | array_flow.rb:586:10:586:10 | b [element] | array_flow.rb:586:10:586:13 | ...[...] | | array_flow.rb:590:5:590:5 | a [element 2, element 1] | array_flow.rb:591:10:591:10 | a [element 2, element 1] | -| array_flow.rb:590:5:590:5 | a [element 2, element 1] | array_flow.rb:591:10:591:10 | a [element 2, element 1] | -| array_flow.rb:590:5:590:5 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | a [element 2, element 1] | | array_flow.rb:590:5:590:5 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | a [element 2, element 1] | | array_flow.rb:590:20:590:29 | call to source | array_flow.rb:590:5:590:5 | a [element 2, element 1] | -| array_flow.rb:590:20:590:29 | call to source | array_flow.rb:590:5:590:5 | a [element 2, element 1] | -| array_flow.rb:591:10:591:10 | a [element 2, element 1] | array_flow.rb:591:10:591:13 | ...[...] [element 1] | | array_flow.rb:591:10:591:10 | a [element 2, element 1] | array_flow.rb:591:10:591:13 | ...[...] [element 1] | | array_flow.rb:591:10:591:13 | ...[...] [element 1] | array_flow.rb:591:10:591:16 | ...[...] | -| array_flow.rb:591:10:591:13 | ...[...] [element 1] | array_flow.rb:591:10:591:16 | ...[...] | -| array_flow.rb:592:5:592:5 | b [element, element 1] | array_flow.rb:596:10:596:10 | b [element, element 1] | | array_flow.rb:592:5:592:5 | b [element, element 1] | array_flow.rb:596:10:596:10 | b [element, element 1] | | array_flow.rb:592:5:592:5 | b [element] | array_flow.rb:595:10:595:10 | b [element] | -| array_flow.rb:592:5:592:5 | b [element] | array_flow.rb:595:10:595:10 | b [element] | -| array_flow.rb:592:5:592:5 | b [element] | array_flow.rb:596:10:596:10 | b [element] | -| array_flow.rb:592:9:592:9 | [post] a [element, element 1] | array_flow.rb:594:10:594:10 | a [element, element 1] | | array_flow.rb:592:9:592:9 | [post] a [element, element 1] | array_flow.rb:594:10:594:10 | a [element, element 1] | | array_flow.rb:592:9:592:9 | [post] a [element] | array_flow.rb:593:10:593:10 | a [element] | -| array_flow.rb:592:9:592:9 | [post] a [element] | array_flow.rb:593:10:593:10 | a [element] | -| array_flow.rb:592:9:592:9 | [post] a [element] | array_flow.rb:594:10:594:10 | a [element] | -| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | [post] a [element, element 1] | | array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | [post] a [element, element 1] | | array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | [post] a [element] | -| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | [post] a [element] | -| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:18 | call to flatten! [element, element 1] | | array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:18 | call to flatten! [element, element 1] | | array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:18 | call to flatten! [element] | -| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:18 | call to flatten! [element] | -| array_flow.rb:592:9:592:18 | call to flatten! [element, element 1] | array_flow.rb:592:5:592:5 | b [element, element 1] | | array_flow.rb:592:9:592:18 | call to flatten! [element, element 1] | array_flow.rb:592:5:592:5 | b [element, element 1] | | array_flow.rb:592:9:592:18 | call to flatten! [element] | array_flow.rb:592:5:592:5 | b [element] | -| array_flow.rb:592:9:592:18 | call to flatten! [element] | array_flow.rb:592:5:592:5 | b [element] | -| array_flow.rb:593:10:593:10 | a [element] | array_flow.rb:593:10:593:13 | ...[...] | | array_flow.rb:593:10:593:10 | a [element] | array_flow.rb:593:10:593:13 | ...[...] | | array_flow.rb:594:10:594:10 | a [element, element 1] | array_flow.rb:594:10:594:13 | ...[...] [element 1] | -| array_flow.rb:594:10:594:10 | a [element, element 1] | array_flow.rb:594:10:594:13 | ...[...] [element 1] | -| array_flow.rb:594:10:594:10 | a [element] | array_flow.rb:594:10:594:13 | ...[...] | -| array_flow.rb:594:10:594:13 | ...[...] | array_flow.rb:594:10:594:16 | ...[...] | -| array_flow.rb:594:10:594:13 | ...[...] [element 1] | array_flow.rb:594:10:594:16 | ...[...] | | array_flow.rb:594:10:594:13 | ...[...] [element 1] | array_flow.rb:594:10:594:16 | ...[...] | | array_flow.rb:595:10:595:10 | b [element] | array_flow.rb:595:10:595:13 | ...[...] | -| array_flow.rb:595:10:595:10 | b [element] | array_flow.rb:595:10:595:13 | ...[...] | | array_flow.rb:596:10:596:10 | b [element, element 1] | array_flow.rb:596:10:596:13 | ...[...] [element 1] | -| array_flow.rb:596:10:596:10 | b [element, element 1] | array_flow.rb:596:10:596:13 | ...[...] [element 1] | -| array_flow.rb:596:10:596:10 | b [element] | array_flow.rb:596:10:596:13 | ...[...] | -| array_flow.rb:596:10:596:13 | ...[...] | array_flow.rb:596:10:596:16 | ...[...] | -| array_flow.rb:596:10:596:13 | ...[...] [element 1] | array_flow.rb:596:10:596:16 | ...[...] | | array_flow.rb:596:10:596:13 | ...[...] [element 1] | array_flow.rb:596:10:596:16 | ...[...] | | array_flow.rb:600:5:600:5 | a [element 3] | array_flow.rb:601:9:601:9 | a [element 3] | -| array_flow.rb:600:5:600:5 | a [element 3] | array_flow.rb:601:9:601:9 | a [element 3] | -| array_flow.rb:600:5:600:5 | a [element 3] | array_flow.rb:603:9:603:9 | a [element 3] | | array_flow.rb:600:5:600:5 | a [element 3] | array_flow.rb:603:9:603:9 | a [element 3] | | array_flow.rb:600:19:600:30 | call to source | array_flow.rb:600:5:600:5 | a [element 3] | -| array_flow.rb:600:19:600:30 | call to source | array_flow.rb:600:5:600:5 | a [element 3] | -| array_flow.rb:601:5:601:5 | b [element] | array_flow.rb:602:10:602:10 | b [element] | | array_flow.rb:601:5:601:5 | b [element] | array_flow.rb:602:10:602:10 | b [element] | | array_flow.rb:601:9:601:9 | a [element 3] | array_flow.rb:601:9:601:20 | call to grep [element] | -| array_flow.rb:601:9:601:9 | a [element 3] | array_flow.rb:601:9:601:20 | call to grep [element] | -| array_flow.rb:601:9:601:20 | call to grep [element] | array_flow.rb:601:5:601:5 | b [element] | | array_flow.rb:601:9:601:20 | call to grep [element] | array_flow.rb:601:5:601:5 | b [element] | | array_flow.rb:602:10:602:10 | b [element] | array_flow.rb:602:10:602:13 | ...[...] | -| array_flow.rb:602:10:602:10 | b [element] | array_flow.rb:602:10:602:13 | ...[...] | -| array_flow.rb:603:5:603:5 | b [element] | array_flow.rb:607:10:607:10 | b [element] | | array_flow.rb:603:5:603:5 | b [element] | array_flow.rb:607:10:607:10 | b [element] | | array_flow.rb:603:9:603:9 | a [element 3] | array_flow.rb:603:26:603:26 | x | -| array_flow.rb:603:9:603:9 | a [element 3] | array_flow.rb:603:26:603:26 | x | -| array_flow.rb:603:9:606:7 | call to grep [element] | array_flow.rb:603:5:603:5 | b [element] | | array_flow.rb:603:9:606:7 | call to grep [element] | array_flow.rb:603:5:603:5 | b [element] | | array_flow.rb:603:26:603:26 | x | array_flow.rb:604:14:604:14 | x | -| array_flow.rb:603:26:603:26 | x | array_flow.rb:604:14:604:14 | x | -| array_flow.rb:605:9:605:20 | call to source | array_flow.rb:603:9:606:7 | call to grep [element] | | array_flow.rb:605:9:605:20 | call to source | array_flow.rb:603:9:606:7 | call to grep [element] | | array_flow.rb:607:10:607:10 | b [element] | array_flow.rb:607:10:607:13 | ...[...] | -| array_flow.rb:607:10:607:10 | b [element] | array_flow.rb:607:10:607:13 | ...[...] | -| array_flow.rb:611:5:611:5 | a [element 3] | array_flow.rb:612:9:612:9 | a [element 3] | | array_flow.rb:611:5:611:5 | a [element 3] | array_flow.rb:612:9:612:9 | a [element 3] | | array_flow.rb:611:5:611:5 | a [element 3] | array_flow.rb:614:9:614:9 | a [element 3] | -| array_flow.rb:611:5:611:5 | a [element 3] | array_flow.rb:614:9:614:9 | a [element 3] | -| array_flow.rb:611:19:611:30 | call to source | array_flow.rb:611:5:611:5 | a [element 3] | | array_flow.rb:611:19:611:30 | call to source | array_flow.rb:611:5:611:5 | a [element 3] | | array_flow.rb:612:5:612:5 | b [element] | array_flow.rb:613:10:613:10 | b [element] | -| array_flow.rb:612:5:612:5 | b [element] | array_flow.rb:613:10:613:10 | b [element] | -| array_flow.rb:612:9:612:9 | a [element 3] | array_flow.rb:612:9:612:21 | call to grep_v [element] | | array_flow.rb:612:9:612:9 | a [element 3] | array_flow.rb:612:9:612:21 | call to grep_v [element] | | array_flow.rb:612:9:612:21 | call to grep_v [element] | array_flow.rb:612:5:612:5 | b [element] | -| array_flow.rb:612:9:612:21 | call to grep_v [element] | array_flow.rb:612:5:612:5 | b [element] | -| array_flow.rb:613:10:613:10 | b [element] | array_flow.rb:613:10:613:13 | ...[...] | | array_flow.rb:613:10:613:10 | b [element] | array_flow.rb:613:10:613:13 | ...[...] | | array_flow.rb:614:5:614:5 | b [element] | array_flow.rb:618:10:618:10 | b [element] | -| array_flow.rb:614:5:614:5 | b [element] | array_flow.rb:618:10:618:10 | b [element] | -| array_flow.rb:614:9:614:9 | a [element 3] | array_flow.rb:614:27:614:27 | x | | array_flow.rb:614:9:614:9 | a [element 3] | array_flow.rb:614:27:614:27 | x | | array_flow.rb:614:9:617:7 | call to grep_v [element] | array_flow.rb:614:5:614:5 | b [element] | -| array_flow.rb:614:9:617:7 | call to grep_v [element] | array_flow.rb:614:5:614:5 | b [element] | -| array_flow.rb:614:27:614:27 | x | array_flow.rb:615:14:615:14 | x | | array_flow.rb:614:27:614:27 | x | array_flow.rb:615:14:615:14 | x | | array_flow.rb:616:9:616:20 | call to source | array_flow.rb:614:9:617:7 | call to grep_v [element] | -| array_flow.rb:616:9:616:20 | call to source | array_flow.rb:614:9:617:7 | call to grep_v [element] | -| array_flow.rb:618:10:618:10 | b [element] | array_flow.rb:618:10:618:13 | ...[...] | | array_flow.rb:618:10:618:10 | b [element] | array_flow.rb:618:10:618:13 | ...[...] | | array_flow.rb:622:5:622:5 | a [element 3] | array_flow.rb:623:9:623:9 | a [element 3] | -| array_flow.rb:622:5:622:5 | a [element 3] | array_flow.rb:623:9:623:9 | a [element 3] | -| array_flow.rb:622:19:622:30 | call to source | array_flow.rb:622:5:622:5 | a [element 3] | | array_flow.rb:622:19:622:30 | call to source | array_flow.rb:622:5:622:5 | a [element 3] | | array_flow.rb:623:9:623:9 | a [element 3] | array_flow.rb:623:24:623:24 | x | -| array_flow.rb:623:9:623:9 | a [element 3] | array_flow.rb:623:24:623:24 | x | -| array_flow.rb:623:24:623:24 | x | array_flow.rb:624:14:624:14 | x | | array_flow.rb:623:24:623:24 | x | array_flow.rb:624:14:624:14 | x | | array_flow.rb:631:5:631:5 | a [element 3] | array_flow.rb:632:5:632:5 | a [element 3] | -| array_flow.rb:631:5:631:5 | a [element 3] | array_flow.rb:632:5:632:5 | a [element 3] | -| array_flow.rb:631:19:631:28 | call to source | array_flow.rb:631:5:631:5 | a [element 3] | | array_flow.rb:631:19:631:28 | call to source | array_flow.rb:631:5:631:5 | a [element 3] | | array_flow.rb:632:5:632:5 | a [element 3] | array_flow.rb:632:17:632:17 | x | -| array_flow.rb:632:5:632:5 | a [element 3] | array_flow.rb:632:17:632:17 | x | -| array_flow.rb:632:17:632:17 | x | array_flow.rb:633:14:633:14 | x | | array_flow.rb:632:17:632:17 | x | array_flow.rb:633:14:633:14 | x | | array_flow.rb:638:5:638:5 | a [element 0] | array_flow.rb:639:9:639:9 | a [element 0] | -| array_flow.rb:638:5:638:5 | a [element 0] | array_flow.rb:639:9:639:9 | a [element 0] | -| array_flow.rb:638:5:638:5 | a [element 0] | array_flow.rb:645:9:645:9 | a [element 0] | | array_flow.rb:638:5:638:5 | a [element 0] | array_flow.rb:645:9:645:9 | a [element 0] | | array_flow.rb:638:5:638:5 | a [element 2] | array_flow.rb:639:9:639:9 | a [element 2] | -| array_flow.rb:638:5:638:5 | a [element 2] | array_flow.rb:639:9:639:9 | a [element 2] | -| array_flow.rb:638:5:638:5 | a [element 2] | array_flow.rb:645:9:645:9 | a [element 2] | | array_flow.rb:638:5:638:5 | a [element 2] | array_flow.rb:645:9:645:9 | a [element 2] | | array_flow.rb:638:10:638:21 | call to source | array_flow.rb:638:5:638:5 | a [element 0] | -| array_flow.rb:638:10:638:21 | call to source | array_flow.rb:638:5:638:5 | a [element 0] | -| array_flow.rb:638:27:638:38 | call to source | array_flow.rb:638:5:638:5 | a [element 2] | | array_flow.rb:638:27:638:38 | call to source | array_flow.rb:638:5:638:5 | a [element 2] | | array_flow.rb:639:5:639:5 | b | array_flow.rb:644:10:644:10 | b | -| array_flow.rb:639:5:639:5 | b | array_flow.rb:644:10:644:10 | b | -| array_flow.rb:639:9:639:9 | a [element 0] | array_flow.rb:639:22:639:22 | x | | array_flow.rb:639:9:639:9 | a [element 0] | array_flow.rb:639:22:639:22 | x | | array_flow.rb:639:9:639:9 | a [element 2] | array_flow.rb:639:25:639:25 | y | -| array_flow.rb:639:9:639:9 | a [element 2] | array_flow.rb:639:25:639:25 | y | -| array_flow.rb:639:9:643:7 | call to inject | array_flow.rb:639:5:639:5 | b | | array_flow.rb:639:9:643:7 | call to inject | array_flow.rb:639:5:639:5 | b | | array_flow.rb:639:22:639:22 | x | array_flow.rb:640:14:640:14 | x | -| array_flow.rb:639:22:639:22 | x | array_flow.rb:640:14:640:14 | x | -| array_flow.rb:639:25:639:25 | y | array_flow.rb:641:14:641:14 | y | | array_flow.rb:639:25:639:25 | y | array_flow.rb:641:14:641:14 | y | | array_flow.rb:642:9:642:19 | call to source | array_flow.rb:639:9:643:7 | call to inject | -| array_flow.rb:642:9:642:19 | call to source | array_flow.rb:639:9:643:7 | call to inject | -| array_flow.rb:645:5:645:5 | c | array_flow.rb:650:10:650:10 | c | | array_flow.rb:645:5:645:5 | c | array_flow.rb:650:10:650:10 | c | | array_flow.rb:645:9:645:9 | a [element 0] | array_flow.rb:645:28:645:28 | y | -| array_flow.rb:645:9:645:9 | a [element 0] | array_flow.rb:645:28:645:28 | y | -| array_flow.rb:645:9:645:9 | a [element 2] | array_flow.rb:645:28:645:28 | y | | array_flow.rb:645:9:645:9 | a [element 2] | array_flow.rb:645:28:645:28 | y | | array_flow.rb:645:9:649:7 | call to inject | array_flow.rb:645:5:645:5 | c | -| array_flow.rb:645:9:649:7 | call to inject | array_flow.rb:645:5:645:5 | c | -| array_flow.rb:645:28:645:28 | y | array_flow.rb:647:14:647:14 | y | | array_flow.rb:645:28:645:28 | y | array_flow.rb:647:14:647:14 | y | | array_flow.rb:648:9:648:19 | call to source | array_flow.rb:645:9:649:7 | call to inject | -| array_flow.rb:648:9:648:19 | call to source | array_flow.rb:645:9:649:7 | call to inject | -| array_flow.rb:655:5:655:5 | a [element 2] | array_flow.rb:656:9:656:9 | a [element 2] | | array_flow.rb:655:5:655:5 | a [element 2] | array_flow.rb:656:9:656:9 | a [element 2] | | array_flow.rb:655:16:655:27 | call to source | array_flow.rb:655:5:655:5 | a [element 2] | -| array_flow.rb:655:16:655:27 | call to source | array_flow.rb:655:5:655:5 | a [element 2] | -| array_flow.rb:656:5:656:5 | b [element 1] | array_flow.rb:663:10:663:10 | b [element 1] | | array_flow.rb:656:5:656:5 | b [element 1] | array_flow.rb:663:10:663:10 | b [element 1] | | array_flow.rb:656:5:656:5 | b [element 2] | array_flow.rb:664:10:664:10 | b [element 2] | -| array_flow.rb:656:5:656:5 | b [element 2] | array_flow.rb:664:10:664:10 | b [element 2] | -| array_flow.rb:656:5:656:5 | b [element 4] | array_flow.rb:666:10:666:10 | b [element 4] | | array_flow.rb:656:5:656:5 | b [element 4] | array_flow.rb:666:10:666:10 | b [element 4] | | array_flow.rb:656:9:656:9 | [post] a [element 1] | array_flow.rb:658:10:658:10 | a [element 1] | -| array_flow.rb:656:9:656:9 | [post] a [element 1] | array_flow.rb:658:10:658:10 | a [element 1] | -| array_flow.rb:656:9:656:9 | [post] a [element 2] | array_flow.rb:659:10:659:10 | a [element 2] | | array_flow.rb:656:9:656:9 | [post] a [element 2] | array_flow.rb:659:10:659:10 | a [element 2] | | array_flow.rb:656:9:656:9 | [post] a [element 4] | array_flow.rb:661:10:661:10 | a [element 4] | -| array_flow.rb:656:9:656:9 | [post] a [element 4] | array_flow.rb:661:10:661:10 | a [element 4] | -| array_flow.rb:656:9:656:9 | a [element 2] | array_flow.rb:656:9:656:9 | [post] a [element 4] | | array_flow.rb:656:9:656:9 | a [element 2] | array_flow.rb:656:9:656:9 | [post] a [element 4] | | array_flow.rb:656:9:656:9 | a [element 2] | array_flow.rb:656:9:656:47 | call to insert [element 4] | -| array_flow.rb:656:9:656:9 | a [element 2] | array_flow.rb:656:9:656:47 | call to insert [element 4] | -| array_flow.rb:656:9:656:47 | call to insert [element 1] | array_flow.rb:656:5:656:5 | b [element 1] | | array_flow.rb:656:9:656:47 | call to insert [element 1] | array_flow.rb:656:5:656:5 | b [element 1] | | array_flow.rb:656:9:656:47 | call to insert [element 2] | array_flow.rb:656:5:656:5 | b [element 2] | -| array_flow.rb:656:9:656:47 | call to insert [element 2] | array_flow.rb:656:5:656:5 | b [element 2] | -| array_flow.rb:656:9:656:47 | call to insert [element 4] | array_flow.rb:656:5:656:5 | b [element 4] | | array_flow.rb:656:9:656:47 | call to insert [element 4] | array_flow.rb:656:5:656:5 | b [element 4] | | array_flow.rb:656:21:656:32 | call to source | array_flow.rb:656:9:656:9 | [post] a [element 1] | -| array_flow.rb:656:21:656:32 | call to source | array_flow.rb:656:9:656:9 | [post] a [element 1] | -| array_flow.rb:656:21:656:32 | call to source | array_flow.rb:656:9:656:47 | call to insert [element 1] | | array_flow.rb:656:21:656:32 | call to source | array_flow.rb:656:9:656:47 | call to insert [element 1] | | array_flow.rb:656:35:656:46 | call to source | array_flow.rb:656:9:656:9 | [post] a [element 2] | -| array_flow.rb:656:35:656:46 | call to source | array_flow.rb:656:9:656:9 | [post] a [element 2] | -| array_flow.rb:656:35:656:46 | call to source | array_flow.rb:656:9:656:47 | call to insert [element 2] | | array_flow.rb:656:35:656:46 | call to source | array_flow.rb:656:9:656:47 | call to insert [element 2] | | array_flow.rb:658:10:658:10 | a [element 1] | array_flow.rb:658:10:658:13 | ...[...] | -| array_flow.rb:658:10:658:10 | a [element 1] | array_flow.rb:658:10:658:13 | ...[...] | -| array_flow.rb:659:10:659:10 | a [element 2] | array_flow.rb:659:10:659:13 | ...[...] | | array_flow.rb:659:10:659:10 | a [element 2] | array_flow.rb:659:10:659:13 | ...[...] | | array_flow.rb:661:10:661:10 | a [element 4] | array_flow.rb:661:10:661:13 | ...[...] | -| array_flow.rb:661:10:661:10 | a [element 4] | array_flow.rb:661:10:661:13 | ...[...] | -| array_flow.rb:663:10:663:10 | b [element 1] | array_flow.rb:663:10:663:13 | ...[...] | | array_flow.rb:663:10:663:10 | b [element 1] | array_flow.rb:663:10:663:13 | ...[...] | | array_flow.rb:664:10:664:10 | b [element 2] | array_flow.rb:664:10:664:13 | ...[...] | -| array_flow.rb:664:10:664:10 | b [element 2] | array_flow.rb:664:10:664:13 | ...[...] | -| array_flow.rb:666:10:666:10 | b [element 4] | array_flow.rb:666:10:666:13 | ...[...] | | array_flow.rb:666:10:666:10 | b [element 4] | array_flow.rb:666:10:666:13 | ...[...] | | array_flow.rb:669:5:669:5 | c [element 2] | array_flow.rb:670:9:670:9 | c [element 2] | -| array_flow.rb:669:5:669:5 | c [element 2] | array_flow.rb:670:9:670:9 | c [element 2] | -| array_flow.rb:669:16:669:27 | call to source | array_flow.rb:669:5:669:5 | c [element 2] | | array_flow.rb:669:16:669:27 | call to source | array_flow.rb:669:5:669:5 | c [element 2] | | array_flow.rb:670:5:670:5 | d [element] | array_flow.rb:672:10:672:10 | d [element] | -| array_flow.rb:670:5:670:5 | d [element] | array_flow.rb:672:10:672:10 | d [element] | -| array_flow.rb:670:9:670:9 | [post] c [element] | array_flow.rb:671:10:671:10 | c [element] | | array_flow.rb:670:9:670:9 | [post] c [element] | array_flow.rb:671:10:671:10 | c [element] | | array_flow.rb:670:9:670:9 | c [element 2] | array_flow.rb:670:9:670:9 | [post] c [element] | -| array_flow.rb:670:9:670:9 | c [element 2] | array_flow.rb:670:9:670:9 | [post] c [element] | -| array_flow.rb:670:9:670:9 | c [element 2] | array_flow.rb:670:9:670:47 | call to insert [element] | | array_flow.rb:670:9:670:9 | c [element 2] | array_flow.rb:670:9:670:47 | call to insert [element] | | array_flow.rb:670:9:670:47 | call to insert [element] | array_flow.rb:670:5:670:5 | d [element] | -| array_flow.rb:670:9:670:47 | call to insert [element] | array_flow.rb:670:5:670:5 | d [element] | -| array_flow.rb:670:21:670:32 | call to source | array_flow.rb:670:9:670:9 | [post] c [element] | | array_flow.rb:670:21:670:32 | call to source | array_flow.rb:670:9:670:9 | [post] c [element] | | array_flow.rb:670:21:670:32 | call to source | array_flow.rb:670:9:670:47 | call to insert [element] | -| array_flow.rb:670:21:670:32 | call to source | array_flow.rb:670:9:670:47 | call to insert [element] | -| array_flow.rb:670:35:670:46 | call to source | array_flow.rb:670:9:670:9 | [post] c [element] | | array_flow.rb:670:35:670:46 | call to source | array_flow.rb:670:9:670:9 | [post] c [element] | | array_flow.rb:670:35:670:46 | call to source | array_flow.rb:670:9:670:47 | call to insert [element] | -| array_flow.rb:670:35:670:46 | call to source | array_flow.rb:670:9:670:47 | call to insert [element] | -| array_flow.rb:671:10:671:10 | c [element] | array_flow.rb:671:10:671:13 | ...[...] | | array_flow.rb:671:10:671:10 | c [element] | array_flow.rb:671:10:671:13 | ...[...] | | array_flow.rb:672:10:672:10 | d [element] | array_flow.rb:672:10:672:13 | ...[...] | -| array_flow.rb:672:10:672:10 | d [element] | array_flow.rb:672:10:672:13 | ...[...] | -| array_flow.rb:683:5:683:5 | a [element 2] | array_flow.rb:684:9:684:9 | a [element 2] | | array_flow.rb:683:5:683:5 | a [element 2] | array_flow.rb:684:9:684:9 | a [element 2] | | array_flow.rb:683:16:683:27 | call to source | array_flow.rb:683:5:683:5 | a [element 2] | -| array_flow.rb:683:16:683:27 | call to source | array_flow.rb:683:5:683:5 | a [element 2] | -| array_flow.rb:684:5:684:5 | b [element] | array_flow.rb:685:10:685:10 | b [element] | | array_flow.rb:684:5:684:5 | b [element] | array_flow.rb:685:10:685:10 | b [element] | | array_flow.rb:684:9:684:9 | a [element 2] | array_flow.rb:684:9:684:60 | call to intersection [element] | -| array_flow.rb:684:9:684:9 | a [element 2] | array_flow.rb:684:9:684:60 | call to intersection [element] | -| array_flow.rb:684:9:684:60 | call to intersection [element] | array_flow.rb:684:5:684:5 | b [element] | | array_flow.rb:684:9:684:60 | call to intersection [element] | array_flow.rb:684:5:684:5 | b [element] | | array_flow.rb:684:31:684:42 | call to source | array_flow.rb:684:9:684:60 | call to intersection [element] | -| array_flow.rb:684:31:684:42 | call to source | array_flow.rb:684:9:684:60 | call to intersection [element] | -| array_flow.rb:684:47:684:58 | call to source | array_flow.rb:684:9:684:60 | call to intersection [element] | | array_flow.rb:684:47:684:58 | call to source | array_flow.rb:684:9:684:60 | call to intersection [element] | | array_flow.rb:685:10:685:10 | b [element] | array_flow.rb:685:10:685:13 | ...[...] | -| array_flow.rb:685:10:685:10 | b [element] | array_flow.rb:685:10:685:13 | ...[...] | -| array_flow.rb:689:5:689:5 | a [element 2] | array_flow.rb:690:9:690:9 | a [element 2] | | array_flow.rb:689:5:689:5 | a [element 2] | array_flow.rb:690:9:690:9 | a [element 2] | | array_flow.rb:689:16:689:25 | call to source | array_flow.rb:689:5:689:5 | a [element 2] | -| array_flow.rb:689:16:689:25 | call to source | array_flow.rb:689:5:689:5 | a [element 2] | -| array_flow.rb:690:5:690:5 | b [element] | array_flow.rb:695:10:695:10 | b [element] | | array_flow.rb:690:5:690:5 | b [element] | array_flow.rb:695:10:695:10 | b [element] | | array_flow.rb:690:9:690:9 | [post] a [element] | array_flow.rb:694:10:694:10 | a [element] | -| array_flow.rb:690:9:690:9 | [post] a [element] | array_flow.rb:694:10:694:10 | a [element] | -| array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:9:690:9 | [post] a [element] | | array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:9:690:9 | [post] a [element] | | array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:9:693:7 | call to keep_if [element] | -| array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:9:693:7 | call to keep_if [element] | -| array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:23:690:23 | x | | array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:23:690:23 | x | | array_flow.rb:690:9:693:7 | call to keep_if [element] | array_flow.rb:690:5:690:5 | b [element] | -| array_flow.rb:690:9:693:7 | call to keep_if [element] | array_flow.rb:690:5:690:5 | b [element] | -| array_flow.rb:690:23:690:23 | x | array_flow.rb:691:14:691:14 | x | | array_flow.rb:690:23:690:23 | x | array_flow.rb:691:14:691:14 | x | | array_flow.rb:694:10:694:10 | a [element] | array_flow.rb:694:10:694:13 | ...[...] | -| array_flow.rb:694:10:694:10 | a [element] | array_flow.rb:694:10:694:13 | ...[...] | -| array_flow.rb:695:10:695:10 | b [element] | array_flow.rb:695:10:695:13 | ...[...] | | array_flow.rb:695:10:695:10 | b [element] | array_flow.rb:695:10:695:13 | ...[...] | | array_flow.rb:699:5:699:5 | a [element 2] | array_flow.rb:701:10:701:10 | a [element 2] | -| array_flow.rb:699:5:699:5 | a [element 2] | array_flow.rb:701:10:701:10 | a [element 2] | -| array_flow.rb:699:5:699:5 | a [element 2] | array_flow.rb:702:9:702:9 | a [element 2] | | array_flow.rb:699:5:699:5 | a [element 2] | array_flow.rb:702:9:702:9 | a [element 2] | | array_flow.rb:699:16:699:27 | call to source | array_flow.rb:699:5:699:5 | a [element 2] | -| array_flow.rb:699:16:699:27 | call to source | array_flow.rb:699:5:699:5 | a [element 2] | -| array_flow.rb:700:5:700:5 | [post] a [element] | array_flow.rb:701:10:701:10 | a [element] | | array_flow.rb:700:5:700:5 | [post] a [element] | array_flow.rb:701:10:701:10 | a [element] | | array_flow.rb:700:5:700:5 | [post] a [element] | array_flow.rb:702:9:702:9 | a [element] | -| array_flow.rb:700:5:700:5 | [post] a [element] | array_flow.rb:702:9:702:9 | a [element] | -| array_flow.rb:700:12:700:23 | call to source | array_flow.rb:700:5:700:5 | [post] a [element] | | array_flow.rb:700:12:700:23 | call to source | array_flow.rb:700:5:700:5 | [post] a [element] | | array_flow.rb:701:10:701:10 | a [element 2] | array_flow.rb:701:10:701:15 | call to last | -| array_flow.rb:701:10:701:10 | a [element 2] | array_flow.rb:701:10:701:15 | call to last | -| array_flow.rb:701:10:701:10 | a [element] | array_flow.rb:701:10:701:15 | call to last | | array_flow.rb:701:10:701:10 | a [element] | array_flow.rb:701:10:701:15 | call to last | | array_flow.rb:702:5:702:5 | b [element] | array_flow.rb:703:10:703:10 | b [element] | -| array_flow.rb:702:5:702:5 | b [element] | array_flow.rb:703:10:703:10 | b [element] | -| array_flow.rb:702:5:702:5 | b [element] | array_flow.rb:704:10:704:10 | b [element] | | array_flow.rb:702:5:702:5 | b [element] | array_flow.rb:704:10:704:10 | b [element] | | array_flow.rb:702:9:702:9 | a [element 2] | array_flow.rb:702:9:702:17 | call to last [element] | -| array_flow.rb:702:9:702:9 | a [element 2] | array_flow.rb:702:9:702:17 | call to last [element] | -| array_flow.rb:702:9:702:9 | a [element] | array_flow.rb:702:9:702:17 | call to last [element] | | array_flow.rb:702:9:702:9 | a [element] | array_flow.rb:702:9:702:17 | call to last [element] | | array_flow.rb:702:9:702:17 | call to last [element] | array_flow.rb:702:5:702:5 | b [element] | -| array_flow.rb:702:9:702:17 | call to last [element] | array_flow.rb:702:5:702:5 | b [element] | -| array_flow.rb:703:10:703:10 | b [element] | array_flow.rb:703:10:703:13 | ...[...] | | array_flow.rb:703:10:703:10 | b [element] | array_flow.rb:703:10:703:13 | ...[...] | | array_flow.rb:704:10:704:10 | b [element] | array_flow.rb:704:10:704:13 | ...[...] | -| array_flow.rb:704:10:704:10 | b [element] | array_flow.rb:704:10:704:13 | ...[...] | -| array_flow.rb:708:5:708:5 | a [element 2] | array_flow.rb:709:9:709:9 | a [element 2] | | array_flow.rb:708:5:708:5 | a [element 2] | array_flow.rb:709:9:709:9 | a [element 2] | | array_flow.rb:708:16:708:27 | call to source | array_flow.rb:708:5:708:5 | a [element 2] | -| array_flow.rb:708:16:708:27 | call to source | array_flow.rb:708:5:708:5 | a [element 2] | -| array_flow.rb:709:5:709:5 | b [element] | array_flow.rb:713:10:713:10 | b [element] | | array_flow.rb:709:5:709:5 | b [element] | array_flow.rb:713:10:713:10 | b [element] | | array_flow.rb:709:9:709:9 | a [element 2] | array_flow.rb:709:19:709:19 | x | -| array_flow.rb:709:9:709:9 | a [element 2] | array_flow.rb:709:19:709:19 | x | -| array_flow.rb:709:9:712:7 | call to map [element] | array_flow.rb:709:5:709:5 | b [element] | | array_flow.rb:709:9:712:7 | call to map [element] | array_flow.rb:709:5:709:5 | b [element] | | array_flow.rb:709:19:709:19 | x | array_flow.rb:710:14:710:14 | x | -| array_flow.rb:709:19:709:19 | x | array_flow.rb:710:14:710:14 | x | -| array_flow.rb:711:9:711:19 | call to source | array_flow.rb:709:9:712:7 | call to map [element] | | array_flow.rb:711:9:711:19 | call to source | array_flow.rb:709:9:712:7 | call to map [element] | | array_flow.rb:713:10:713:10 | b [element] | array_flow.rb:713:10:713:13 | ...[...] | -| array_flow.rb:713:10:713:10 | b [element] | array_flow.rb:713:10:713:13 | ...[...] | -| array_flow.rb:717:5:717:5 | a [element 2] | array_flow.rb:718:9:718:9 | a [element 2] | | array_flow.rb:717:5:717:5 | a [element 2] | array_flow.rb:718:9:718:9 | a [element 2] | | array_flow.rb:717:16:717:27 | call to source | array_flow.rb:717:5:717:5 | a [element 2] | -| array_flow.rb:717:16:717:27 | call to source | array_flow.rb:717:5:717:5 | a [element 2] | -| array_flow.rb:718:5:718:5 | b [element] | array_flow.rb:722:10:722:10 | b [element] | | array_flow.rb:718:5:718:5 | b [element] | array_flow.rb:722:10:722:10 | b [element] | | array_flow.rb:718:9:718:9 | a [element 2] | array_flow.rb:718:20:718:20 | x | -| array_flow.rb:718:9:718:9 | a [element 2] | array_flow.rb:718:20:718:20 | x | -| array_flow.rb:718:9:721:7 | call to map! [element] | array_flow.rb:718:5:718:5 | b [element] | | array_flow.rb:718:9:721:7 | call to map! [element] | array_flow.rb:718:5:718:5 | b [element] | | array_flow.rb:718:20:718:20 | x | array_flow.rb:719:14:719:14 | x | -| array_flow.rb:718:20:718:20 | x | array_flow.rb:719:14:719:14 | x | -| array_flow.rb:720:9:720:19 | call to source | array_flow.rb:718:9:721:7 | call to map! [element] | | array_flow.rb:720:9:720:19 | call to source | array_flow.rb:718:9:721:7 | call to map! [element] | | array_flow.rb:722:10:722:10 | b [element] | array_flow.rb:722:10:722:13 | ...[...] | -| array_flow.rb:722:10:722:10 | b [element] | array_flow.rb:722:10:722:13 | ...[...] | -| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:729:9:729:9 | a [element 2] | | array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:729:9:729:9 | a [element 2] | | array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:733:9:733:9 | a [element 2] | -| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:733:9:733:9 | a [element 2] | -| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:737:9:737:9 | a [element 2] | | array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:737:9:737:9 | a [element 2] | | array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:745:9:745:9 | a [element 2] | -| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:745:9:745:9 | a [element 2] | -| array_flow.rb:726:16:726:25 | call to source | array_flow.rb:726:5:726:5 | a [element 2] | | array_flow.rb:726:16:726:25 | call to source | array_flow.rb:726:5:726:5 | a [element 2] | | array_flow.rb:729:5:729:5 | b | array_flow.rb:730:10:730:10 | b | -| array_flow.rb:729:5:729:5 | b | array_flow.rb:730:10:730:10 | b | -| array_flow.rb:729:9:729:9 | a [element 2] | array_flow.rb:729:9:729:13 | call to max | | array_flow.rb:729:9:729:9 | a [element 2] | array_flow.rb:729:9:729:13 | call to max | | array_flow.rb:729:9:729:13 | call to max | array_flow.rb:729:5:729:5 | b | -| array_flow.rb:729:9:729:13 | call to max | array_flow.rb:729:5:729:5 | b | -| array_flow.rb:733:5:733:5 | c [element] | array_flow.rb:734:10:734:10 | c [element] | | array_flow.rb:733:5:733:5 | c [element] | array_flow.rb:734:10:734:10 | c [element] | | array_flow.rb:733:9:733:9 | a [element 2] | array_flow.rb:733:9:733:16 | call to max [element] | -| array_flow.rb:733:9:733:9 | a [element 2] | array_flow.rb:733:9:733:16 | call to max [element] | -| array_flow.rb:733:9:733:16 | call to max [element] | array_flow.rb:733:5:733:5 | c [element] | | array_flow.rb:733:9:733:16 | call to max [element] | array_flow.rb:733:5:733:5 | c [element] | | array_flow.rb:734:10:734:10 | c [element] | array_flow.rb:734:10:734:13 | ...[...] | -| array_flow.rb:734:10:734:10 | c [element] | array_flow.rb:734:10:734:13 | ...[...] | -| array_flow.rb:737:5:737:5 | d | array_flow.rb:742:10:742:10 | d | | array_flow.rb:737:5:737:5 | d | array_flow.rb:742:10:742:10 | d | | array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:9:741:7 | call to max | -| array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:9:741:7 | call to max | -| array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:19:737:19 | x | | array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:19:737:19 | x | | array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:22:737:22 | y | -| array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:22:737:22 | y | -| array_flow.rb:737:9:741:7 | call to max | array_flow.rb:737:5:737:5 | d | | array_flow.rb:737:9:741:7 | call to max | array_flow.rb:737:5:737:5 | d | | array_flow.rb:737:19:737:19 | x | array_flow.rb:738:14:738:14 | x | -| array_flow.rb:737:19:737:19 | x | array_flow.rb:738:14:738:14 | x | -| array_flow.rb:737:22:737:22 | y | array_flow.rb:739:14:739:14 | y | | array_flow.rb:737:22:737:22 | y | array_flow.rb:739:14:739:14 | y | | array_flow.rb:745:5:745:5 | e [element] | array_flow.rb:750:10:750:10 | e [element] | -| array_flow.rb:745:5:745:5 | e [element] | array_flow.rb:750:10:750:10 | e [element] | -| array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:9:749:7 | call to max [element] | | array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:9:749:7 | call to max [element] | | array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:22:745:22 | x | -| array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:22:745:22 | x | -| array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:25:745:25 | y | | array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:25:745:25 | y | | array_flow.rb:745:9:749:7 | call to max [element] | array_flow.rb:745:5:745:5 | e [element] | -| array_flow.rb:745:9:749:7 | call to max [element] | array_flow.rb:745:5:745:5 | e [element] | -| array_flow.rb:745:22:745:22 | x | array_flow.rb:746:14:746:14 | x | | array_flow.rb:745:22:745:22 | x | array_flow.rb:746:14:746:14 | x | | array_flow.rb:745:25:745:25 | y | array_flow.rb:747:14:747:14 | y | -| array_flow.rb:745:25:745:25 | y | array_flow.rb:747:14:747:14 | y | -| array_flow.rb:750:10:750:10 | e [element] | array_flow.rb:750:10:750:13 | ...[...] | | array_flow.rb:750:10:750:10 | e [element] | array_flow.rb:750:10:750:13 | ...[...] | | array_flow.rb:754:5:754:5 | a [element 2] | array_flow.rb:757:9:757:9 | a [element 2] | -| array_flow.rb:754:5:754:5 | a [element 2] | array_flow.rb:757:9:757:9 | a [element 2] | -| array_flow.rb:754:5:754:5 | a [element 2] | array_flow.rb:764:9:764:9 | a [element 2] | | array_flow.rb:754:5:754:5 | a [element 2] | array_flow.rb:764:9:764:9 | a [element 2] | | array_flow.rb:754:16:754:25 | call to source | array_flow.rb:754:5:754:5 | a [element 2] | -| array_flow.rb:754:16:754:25 | call to source | array_flow.rb:754:5:754:5 | a [element 2] | -| array_flow.rb:757:5:757:5 | b | array_flow.rb:761:10:761:10 | b | | array_flow.rb:757:5:757:5 | b | array_flow.rb:761:10:761:10 | b | | array_flow.rb:757:9:757:9 | a [element 2] | array_flow.rb:757:9:760:7 | call to max_by | -| array_flow.rb:757:9:757:9 | a [element 2] | array_flow.rb:757:9:760:7 | call to max_by | -| array_flow.rb:757:9:757:9 | a [element 2] | array_flow.rb:757:22:757:22 | x | | array_flow.rb:757:9:757:9 | a [element 2] | array_flow.rb:757:22:757:22 | x | | array_flow.rb:757:9:760:7 | call to max_by | array_flow.rb:757:5:757:5 | b | -| array_flow.rb:757:9:760:7 | call to max_by | array_flow.rb:757:5:757:5 | b | -| array_flow.rb:757:22:757:22 | x | array_flow.rb:758:14:758:14 | x | | array_flow.rb:757:22:757:22 | x | array_flow.rb:758:14:758:14 | x | | array_flow.rb:764:5:764:5 | c [element] | array_flow.rb:768:10:768:10 | c [element] | -| array_flow.rb:764:5:764:5 | c [element] | array_flow.rb:768:10:768:10 | c [element] | -| array_flow.rb:764:9:764:9 | a [element 2] | array_flow.rb:764:9:767:7 | call to max_by [element] | | array_flow.rb:764:9:764:9 | a [element 2] | array_flow.rb:764:9:767:7 | call to max_by [element] | | array_flow.rb:764:9:764:9 | a [element 2] | array_flow.rb:764:25:764:25 | x | -| array_flow.rb:764:9:764:9 | a [element 2] | array_flow.rb:764:25:764:25 | x | -| array_flow.rb:764:9:767:7 | call to max_by [element] | array_flow.rb:764:5:764:5 | c [element] | | array_flow.rb:764:9:767:7 | call to max_by [element] | array_flow.rb:764:5:764:5 | c [element] | | array_flow.rb:764:25:764:25 | x | array_flow.rb:765:14:765:14 | x | -| array_flow.rb:764:25:764:25 | x | array_flow.rb:765:14:765:14 | x | -| array_flow.rb:768:10:768:10 | c [element] | array_flow.rb:768:10:768:13 | ...[...] | | array_flow.rb:768:10:768:10 | c [element] | array_flow.rb:768:10:768:13 | ...[...] | | array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:775:9:775:9 | a [element 2] | -| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:775:9:775:9 | a [element 2] | -| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:779:9:779:9 | a [element 2] | | array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:779:9:779:9 | a [element 2] | | array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:783:9:783:9 | a [element 2] | -| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:783:9:783:9 | a [element 2] | -| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:791:9:791:9 | a [element 2] | | array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:791:9:791:9 | a [element 2] | | array_flow.rb:772:16:772:25 | call to source | array_flow.rb:772:5:772:5 | a [element 2] | -| array_flow.rb:772:16:772:25 | call to source | array_flow.rb:772:5:772:5 | a [element 2] | -| array_flow.rb:775:5:775:5 | b | array_flow.rb:776:10:776:10 | b | | array_flow.rb:775:5:775:5 | b | array_flow.rb:776:10:776:10 | b | | array_flow.rb:775:9:775:9 | a [element 2] | array_flow.rb:775:9:775:13 | call to min | -| array_flow.rb:775:9:775:9 | a [element 2] | array_flow.rb:775:9:775:13 | call to min | -| array_flow.rb:775:9:775:13 | call to min | array_flow.rb:775:5:775:5 | b | | array_flow.rb:775:9:775:13 | call to min | array_flow.rb:775:5:775:5 | b | | array_flow.rb:779:5:779:5 | c [element] | array_flow.rb:780:10:780:10 | c [element] | -| array_flow.rb:779:5:779:5 | c [element] | array_flow.rb:780:10:780:10 | c [element] | -| array_flow.rb:779:9:779:9 | a [element 2] | array_flow.rb:779:9:779:16 | call to min [element] | | array_flow.rb:779:9:779:9 | a [element 2] | array_flow.rb:779:9:779:16 | call to min [element] | | array_flow.rb:779:9:779:16 | call to min [element] | array_flow.rb:779:5:779:5 | c [element] | -| array_flow.rb:779:9:779:16 | call to min [element] | array_flow.rb:779:5:779:5 | c [element] | -| array_flow.rb:780:10:780:10 | c [element] | array_flow.rb:780:10:780:13 | ...[...] | | array_flow.rb:780:10:780:10 | c [element] | array_flow.rb:780:10:780:13 | ...[...] | | array_flow.rb:783:5:783:5 | d | array_flow.rb:788:10:788:10 | d | -| array_flow.rb:783:5:783:5 | d | array_flow.rb:788:10:788:10 | d | -| array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:9:787:7 | call to min | | array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:9:787:7 | call to min | | array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:19:783:19 | x | -| array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:19:783:19 | x | -| array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:22:783:22 | y | | array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:22:783:22 | y | | array_flow.rb:783:9:787:7 | call to min | array_flow.rb:783:5:783:5 | d | -| array_flow.rb:783:9:787:7 | call to min | array_flow.rb:783:5:783:5 | d | -| array_flow.rb:783:19:783:19 | x | array_flow.rb:784:14:784:14 | x | | array_flow.rb:783:19:783:19 | x | array_flow.rb:784:14:784:14 | x | | array_flow.rb:783:22:783:22 | y | array_flow.rb:785:14:785:14 | y | -| array_flow.rb:783:22:783:22 | y | array_flow.rb:785:14:785:14 | y | -| array_flow.rb:791:5:791:5 | e [element] | array_flow.rb:796:10:796:10 | e [element] | | array_flow.rb:791:5:791:5 | e [element] | array_flow.rb:796:10:796:10 | e [element] | | array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:9:795:7 | call to min [element] | -| array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:9:795:7 | call to min [element] | -| array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:22:791:22 | x | | array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:22:791:22 | x | | array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:25:791:25 | y | -| array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:25:791:25 | y | -| array_flow.rb:791:9:795:7 | call to min [element] | array_flow.rb:791:5:791:5 | e [element] | | array_flow.rb:791:9:795:7 | call to min [element] | array_flow.rb:791:5:791:5 | e [element] | | array_flow.rb:791:22:791:22 | x | array_flow.rb:792:14:792:14 | x | -| array_flow.rb:791:22:791:22 | x | array_flow.rb:792:14:792:14 | x | -| array_flow.rb:791:25:791:25 | y | array_flow.rb:793:14:793:14 | y | | array_flow.rb:791:25:791:25 | y | array_flow.rb:793:14:793:14 | y | | array_flow.rb:796:10:796:10 | e [element] | array_flow.rb:796:10:796:13 | ...[...] | -| array_flow.rb:796:10:796:10 | e [element] | array_flow.rb:796:10:796:13 | ...[...] | -| array_flow.rb:800:5:800:5 | a [element 2] | array_flow.rb:803:9:803:9 | a [element 2] | | array_flow.rb:800:5:800:5 | a [element 2] | array_flow.rb:803:9:803:9 | a [element 2] | | array_flow.rb:800:5:800:5 | a [element 2] | array_flow.rb:810:9:810:9 | a [element 2] | -| array_flow.rb:800:5:800:5 | a [element 2] | array_flow.rb:810:9:810:9 | a [element 2] | -| array_flow.rb:800:16:800:25 | call to source | array_flow.rb:800:5:800:5 | a [element 2] | | array_flow.rb:800:16:800:25 | call to source | array_flow.rb:800:5:800:5 | a [element 2] | | array_flow.rb:803:5:803:5 | b | array_flow.rb:807:10:807:10 | b | -| array_flow.rb:803:5:803:5 | b | array_flow.rb:807:10:807:10 | b | -| array_flow.rb:803:9:803:9 | a [element 2] | array_flow.rb:803:9:806:7 | call to min_by | | array_flow.rb:803:9:803:9 | a [element 2] | array_flow.rb:803:9:806:7 | call to min_by | | array_flow.rb:803:9:803:9 | a [element 2] | array_flow.rb:803:22:803:22 | x | -| array_flow.rb:803:9:803:9 | a [element 2] | array_flow.rb:803:22:803:22 | x | -| array_flow.rb:803:9:806:7 | call to min_by | array_flow.rb:803:5:803:5 | b | | array_flow.rb:803:9:806:7 | call to min_by | array_flow.rb:803:5:803:5 | b | | array_flow.rb:803:22:803:22 | x | array_flow.rb:804:14:804:14 | x | -| array_flow.rb:803:22:803:22 | x | array_flow.rb:804:14:804:14 | x | -| array_flow.rb:810:5:810:5 | c [element] | array_flow.rb:814:10:814:10 | c [element] | | array_flow.rb:810:5:810:5 | c [element] | array_flow.rb:814:10:814:10 | c [element] | | array_flow.rb:810:9:810:9 | a [element 2] | array_flow.rb:810:9:813:7 | call to min_by [element] | -| array_flow.rb:810:9:810:9 | a [element 2] | array_flow.rb:810:9:813:7 | call to min_by [element] | -| array_flow.rb:810:9:810:9 | a [element 2] | array_flow.rb:810:25:810:25 | x | | array_flow.rb:810:9:810:9 | a [element 2] | array_flow.rb:810:25:810:25 | x | | array_flow.rb:810:9:813:7 | call to min_by [element] | array_flow.rb:810:5:810:5 | c [element] | -| array_flow.rb:810:9:813:7 | call to min_by [element] | array_flow.rb:810:5:810:5 | c [element] | -| array_flow.rb:810:25:810:25 | x | array_flow.rb:811:14:811:14 | x | | array_flow.rb:810:25:810:25 | x | array_flow.rb:811:14:811:14 | x | | array_flow.rb:814:10:814:10 | c [element] | array_flow.rb:814:10:814:13 | ...[...] | -| array_flow.rb:814:10:814:10 | c [element] | array_flow.rb:814:10:814:13 | ...[...] | -| array_flow.rb:818:5:818:5 | a [element 2] | array_flow.rb:820:9:820:9 | a [element 2] | | array_flow.rb:818:5:818:5 | a [element 2] | array_flow.rb:820:9:820:9 | a [element 2] | | array_flow.rb:818:5:818:5 | a [element 2] | array_flow.rb:824:9:824:9 | a [element 2] | -| array_flow.rb:818:5:818:5 | a [element 2] | array_flow.rb:824:9:824:9 | a [element 2] | -| array_flow.rb:818:16:818:25 | call to source | array_flow.rb:818:5:818:5 | a [element 2] | | array_flow.rb:818:16:818:25 | call to source | array_flow.rb:818:5:818:5 | a [element 2] | | array_flow.rb:820:5:820:5 | b [element] | array_flow.rb:821:10:821:10 | b [element] | -| array_flow.rb:820:5:820:5 | b [element] | array_flow.rb:821:10:821:10 | b [element] | -| array_flow.rb:820:5:820:5 | b [element] | array_flow.rb:822:10:822:10 | b [element] | | array_flow.rb:820:5:820:5 | b [element] | array_flow.rb:822:10:822:10 | b [element] | | array_flow.rb:820:9:820:9 | a [element 2] | array_flow.rb:820:9:820:16 | call to minmax [element] | -| array_flow.rb:820:9:820:9 | a [element 2] | array_flow.rb:820:9:820:16 | call to minmax [element] | -| array_flow.rb:820:9:820:16 | call to minmax [element] | array_flow.rb:820:5:820:5 | b [element] | | array_flow.rb:820:9:820:16 | call to minmax [element] | array_flow.rb:820:5:820:5 | b [element] | | array_flow.rb:821:10:821:10 | b [element] | array_flow.rb:821:10:821:13 | ...[...] | -| array_flow.rb:821:10:821:10 | b [element] | array_flow.rb:821:10:821:13 | ...[...] | -| array_flow.rb:822:10:822:10 | b [element] | array_flow.rb:822:10:822:13 | ...[...] | | array_flow.rb:822:10:822:10 | b [element] | array_flow.rb:822:10:822:13 | ...[...] | | array_flow.rb:824:5:824:5 | c [element] | array_flow.rb:829:10:829:10 | c [element] | -| array_flow.rb:824:5:824:5 | c [element] | array_flow.rb:829:10:829:10 | c [element] | -| array_flow.rb:824:5:824:5 | c [element] | array_flow.rb:830:10:830:10 | c [element] | | array_flow.rb:824:5:824:5 | c [element] | array_flow.rb:830:10:830:10 | c [element] | | array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:9:828:7 | call to minmax [element] | -| array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:9:828:7 | call to minmax [element] | -| array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:22:824:22 | x | | array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:22:824:22 | x | | array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:25:824:25 | y | -| array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:25:824:25 | y | -| array_flow.rb:824:9:828:7 | call to minmax [element] | array_flow.rb:824:5:824:5 | c [element] | | array_flow.rb:824:9:828:7 | call to minmax [element] | array_flow.rb:824:5:824:5 | c [element] | | array_flow.rb:824:22:824:22 | x | array_flow.rb:825:14:825:14 | x | -| array_flow.rb:824:22:824:22 | x | array_flow.rb:825:14:825:14 | x | -| array_flow.rb:824:25:824:25 | y | array_flow.rb:826:14:826:14 | y | | array_flow.rb:824:25:824:25 | y | array_flow.rb:826:14:826:14 | y | | array_flow.rb:829:10:829:10 | c [element] | array_flow.rb:829:10:829:13 | ...[...] | -| array_flow.rb:829:10:829:10 | c [element] | array_flow.rb:829:10:829:13 | ...[...] | -| array_flow.rb:830:10:830:10 | c [element] | array_flow.rb:830:10:830:13 | ...[...] | | array_flow.rb:830:10:830:10 | c [element] | array_flow.rb:830:10:830:13 | ...[...] | | array_flow.rb:834:5:834:5 | a [element 2] | array_flow.rb:835:9:835:9 | a [element 2] | -| array_flow.rb:834:5:834:5 | a [element 2] | array_flow.rb:835:9:835:9 | a [element 2] | -| array_flow.rb:834:16:834:25 | call to source | array_flow.rb:834:5:834:5 | a [element 2] | | array_flow.rb:834:16:834:25 | call to source | array_flow.rb:834:5:834:5 | a [element 2] | | array_flow.rb:835:5:835:5 | b [element] | array_flow.rb:839:10:839:10 | b [element] | -| array_flow.rb:835:5:835:5 | b [element] | array_flow.rb:839:10:839:10 | b [element] | -| array_flow.rb:835:5:835:5 | b [element] | array_flow.rb:840:10:840:10 | b [element] | | array_flow.rb:835:5:835:5 | b [element] | array_flow.rb:840:10:840:10 | b [element] | | array_flow.rb:835:9:835:9 | a [element 2] | array_flow.rb:835:9:838:7 | call to minmax_by [element] | -| array_flow.rb:835:9:835:9 | a [element 2] | array_flow.rb:835:9:838:7 | call to minmax_by [element] | -| array_flow.rb:835:9:835:9 | a [element 2] | array_flow.rb:835:25:835:25 | x | | array_flow.rb:835:9:835:9 | a [element 2] | array_flow.rb:835:25:835:25 | x | | array_flow.rb:835:9:838:7 | call to minmax_by [element] | array_flow.rb:835:5:835:5 | b [element] | -| array_flow.rb:835:9:838:7 | call to minmax_by [element] | array_flow.rb:835:5:835:5 | b [element] | -| array_flow.rb:835:25:835:25 | x | array_flow.rb:836:14:836:14 | x | | array_flow.rb:835:25:835:25 | x | array_flow.rb:836:14:836:14 | x | | array_flow.rb:839:10:839:10 | b [element] | array_flow.rb:839:10:839:13 | ...[...] | -| array_flow.rb:839:10:839:10 | b [element] | array_flow.rb:839:10:839:13 | ...[...] | -| array_flow.rb:840:10:840:10 | b [element] | array_flow.rb:840:10:840:13 | ...[...] | | array_flow.rb:840:10:840:10 | b [element] | array_flow.rb:840:10:840:13 | ...[...] | | array_flow.rb:844:5:844:5 | a [element 2] | array_flow.rb:845:5:845:5 | a [element 2] | -| array_flow.rb:844:5:844:5 | a [element 2] | array_flow.rb:845:5:845:5 | a [element 2] | -| array_flow.rb:844:16:844:25 | call to source | array_flow.rb:844:5:844:5 | a [element 2] | | array_flow.rb:844:16:844:25 | call to source | array_flow.rb:844:5:844:5 | a [element 2] | | array_flow.rb:845:5:845:5 | a [element 2] | array_flow.rb:845:17:845:17 | x | -| array_flow.rb:845:5:845:5 | a [element 2] | array_flow.rb:845:17:845:17 | x | -| array_flow.rb:845:17:845:17 | x | array_flow.rb:846:14:846:14 | x | | array_flow.rb:845:17:845:17 | x | array_flow.rb:846:14:846:14 | x | | array_flow.rb:853:5:853:5 | a [element 2] | array_flow.rb:854:5:854:5 | a [element 2] | -| array_flow.rb:853:5:853:5 | a [element 2] | array_flow.rb:854:5:854:5 | a [element 2] | -| array_flow.rb:853:16:853:25 | call to source | array_flow.rb:853:5:853:5 | a [element 2] | | array_flow.rb:853:16:853:25 | call to source | array_flow.rb:853:5:853:5 | a [element 2] | | array_flow.rb:854:5:854:5 | a [element 2] | array_flow.rb:854:16:854:16 | x | -| array_flow.rb:854:5:854:5 | a [element 2] | array_flow.rb:854:16:854:16 | x | | array_flow.rb:854:16:854:16 | x | array_flow.rb:855:14:855:14 | x | -| array_flow.rb:854:16:854:16 | x | array_flow.rb:855:14:855:14 | x | -| array_flow.rb:860:5:860:5 | a [element 2] | array_flow.rb:861:9:861:9 | a [element 2] | -| array_flow.rb:860:16:860:25 | call to source | array_flow.rb:860:5:860:5 | a [element 2] | -| array_flow.rb:861:5:861:5 | b | array_flow.rb:862:10:862:10 | b | -| array_flow.rb:861:9:861:9 | a [element 2] | array_flow.rb:861:9:861:20 | call to pack | -| array_flow.rb:861:9:861:20 | call to pack | array_flow.rb:861:5:861:5 | b | -| array_flow.rb:866:5:866:5 | a [element 2] | array_flow.rb:867:9:867:9 | a [element 2] | | array_flow.rb:866:5:866:5 | a [element 2] | array_flow.rb:867:9:867:9 | a [element 2] | | array_flow.rb:866:16:866:25 | call to source | array_flow.rb:866:5:866:5 | a [element 2] | -| array_flow.rb:866:16:866:25 | call to source | array_flow.rb:866:5:866:5 | a [element 2] | -| array_flow.rb:867:5:867:5 | b [element, element] | array_flow.rb:871:10:871:10 | b [element, element] | | array_flow.rb:867:5:867:5 | b [element, element] | array_flow.rb:871:10:871:10 | b [element, element] | | array_flow.rb:867:5:867:5 | b [element, element] | array_flow.rb:872:10:872:10 | b [element, element] | -| array_flow.rb:867:5:867:5 | b [element, element] | array_flow.rb:872:10:872:10 | b [element, element] | -| array_flow.rb:867:9:867:9 | a [element 2] | array_flow.rb:867:9:870:7 | call to partition [element, element] | | array_flow.rb:867:9:867:9 | a [element 2] | array_flow.rb:867:9:870:7 | call to partition [element, element] | | array_flow.rb:867:9:867:9 | a [element 2] | array_flow.rb:867:25:867:25 | x | -| array_flow.rb:867:9:867:9 | a [element 2] | array_flow.rb:867:25:867:25 | x | -| array_flow.rb:867:9:870:7 | call to partition [element, element] | array_flow.rb:867:5:867:5 | b [element, element] | | array_flow.rb:867:9:870:7 | call to partition [element, element] | array_flow.rb:867:5:867:5 | b [element, element] | | array_flow.rb:867:25:867:25 | x | array_flow.rb:868:14:868:14 | x | -| array_flow.rb:867:25:867:25 | x | array_flow.rb:868:14:868:14 | x | -| array_flow.rb:871:10:871:10 | b [element, element] | array_flow.rb:871:10:871:13 | ...[...] [element] | | array_flow.rb:871:10:871:10 | b [element, element] | array_flow.rb:871:10:871:13 | ...[...] [element] | | array_flow.rb:871:10:871:13 | ...[...] [element] | array_flow.rb:871:10:871:16 | ...[...] | -| array_flow.rb:871:10:871:13 | ...[...] [element] | array_flow.rb:871:10:871:16 | ...[...] | -| array_flow.rb:872:10:872:10 | b [element, element] | array_flow.rb:872:10:872:13 | ...[...] [element] | | array_flow.rb:872:10:872:10 | b [element, element] | array_flow.rb:872:10:872:13 | ...[...] [element] | | array_flow.rb:872:10:872:13 | ...[...] [element] | array_flow.rb:872:10:872:16 | ...[...] | -| array_flow.rb:872:10:872:13 | ...[...] [element] | array_flow.rb:872:10:872:16 | ...[...] | -| array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:878:9:878:9 | a [element 2] | | array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:878:9:878:9 | a [element 2] | | array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:886:9:886:9 | a [element 2] | -| array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:886:9:886:9 | a [element 2] | -| array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:893:9:893:9 | a [element 2] | | array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:893:9:893:9 | a [element 2] | | array_flow.rb:876:16:876:25 | call to source | array_flow.rb:876:5:876:5 | a [element 2] | -| array_flow.rb:876:16:876:25 | call to source | array_flow.rb:876:5:876:5 | a [element 2] | -| array_flow.rb:878:5:878:5 | b [element 2] | array_flow.rb:884:10:884:10 | b [element 2] | | array_flow.rb:878:5:878:5 | b [element 2] | array_flow.rb:884:10:884:10 | b [element 2] | | array_flow.rb:878:9:878:9 | a [element 2] | array_flow.rb:878:9:882:7 | call to permutation [element 2] | -| array_flow.rb:878:9:878:9 | a [element 2] | array_flow.rb:878:9:882:7 | call to permutation [element 2] | -| array_flow.rb:878:9:878:9 | a [element 2] | array_flow.rb:878:27:878:27 | x [element] | | array_flow.rb:878:9:878:9 | a [element 2] | array_flow.rb:878:27:878:27 | x [element] | | array_flow.rb:878:9:882:7 | call to permutation [element 2] | array_flow.rb:878:5:878:5 | b [element 2] | -| array_flow.rb:878:9:882:7 | call to permutation [element 2] | array_flow.rb:878:5:878:5 | b [element 2] | -| array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:879:14:879:14 | x [element] | | array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:879:14:879:14 | x [element] | | array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:880:14:880:14 | x [element] | -| array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:880:14:880:14 | x [element] | -| array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:881:14:881:14 | x [element] | | array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:881:14:881:14 | x [element] | | array_flow.rb:879:14:879:14 | x [element] | array_flow.rb:879:14:879:17 | ...[...] | -| array_flow.rb:879:14:879:14 | x [element] | array_flow.rb:879:14:879:17 | ...[...] | -| array_flow.rb:880:14:880:14 | x [element] | array_flow.rb:880:14:880:17 | ...[...] | | array_flow.rb:880:14:880:14 | x [element] | array_flow.rb:880:14:880:17 | ...[...] | | array_flow.rb:881:14:881:14 | x [element] | array_flow.rb:881:14:881:17 | ...[...] | -| array_flow.rb:881:14:881:14 | x [element] | array_flow.rb:881:14:881:17 | ...[...] | -| array_flow.rb:884:10:884:10 | b [element 2] | array_flow.rb:884:10:884:13 | ...[...] | | array_flow.rb:884:10:884:10 | b [element 2] | array_flow.rb:884:10:884:13 | ...[...] | | array_flow.rb:886:5:886:5 | c [element 2] | array_flow.rb:891:10:891:10 | c [element 2] | -| array_flow.rb:886:5:886:5 | c [element 2] | array_flow.rb:891:10:891:10 | c [element 2] | -| array_flow.rb:886:5:886:5 | c [element 2] | array_flow.rb:898:10:898:10 | c [element 2] | | array_flow.rb:886:5:886:5 | c [element 2] | array_flow.rb:898:10:898:10 | c [element 2] | | array_flow.rb:886:9:886:9 | a [element 2] | array_flow.rb:886:9:889:7 | call to permutation [element 2] | -| array_flow.rb:886:9:886:9 | a [element 2] | array_flow.rb:886:9:889:7 | call to permutation [element 2] | -| array_flow.rb:886:9:886:9 | a [element 2] | array_flow.rb:886:30:886:30 | x [element] | | array_flow.rb:886:9:886:9 | a [element 2] | array_flow.rb:886:30:886:30 | x [element] | | array_flow.rb:886:9:889:7 | call to permutation [element 2] | array_flow.rb:886:5:886:5 | c [element 2] | -| array_flow.rb:886:9:889:7 | call to permutation [element 2] | array_flow.rb:886:5:886:5 | c [element 2] | -| array_flow.rb:886:30:886:30 | x [element] | array_flow.rb:887:14:887:14 | x [element] | | array_flow.rb:886:30:886:30 | x [element] | array_flow.rb:887:14:887:14 | x [element] | | array_flow.rb:886:30:886:30 | x [element] | array_flow.rb:888:14:888:14 | x [element] | -| array_flow.rb:886:30:886:30 | x [element] | array_flow.rb:888:14:888:14 | x [element] | -| array_flow.rb:887:14:887:14 | x [element] | array_flow.rb:887:14:887:17 | ...[...] | | array_flow.rb:887:14:887:14 | x [element] | array_flow.rb:887:14:887:17 | ...[...] | | array_flow.rb:888:14:888:14 | x [element] | array_flow.rb:888:14:888:17 | ...[...] | -| array_flow.rb:888:14:888:14 | x [element] | array_flow.rb:888:14:888:17 | ...[...] | -| array_flow.rb:891:10:891:10 | c [element 2] | array_flow.rb:891:10:891:13 | ...[...] | | array_flow.rb:891:10:891:10 | c [element 2] | array_flow.rb:891:10:891:13 | ...[...] | | array_flow.rb:893:9:893:9 | a [element 2] | array_flow.rb:893:30:893:30 | x [element] | -| array_flow.rb:893:9:893:9 | a [element 2] | array_flow.rb:893:30:893:30 | x [element] | -| array_flow.rb:893:30:893:30 | x [element] | array_flow.rb:894:14:894:14 | x [element] | | array_flow.rb:893:30:893:30 | x [element] | array_flow.rb:894:14:894:14 | x [element] | | array_flow.rb:893:30:893:30 | x [element] | array_flow.rb:895:14:895:14 | x [element] | -| array_flow.rb:893:30:893:30 | x [element] | array_flow.rb:895:14:895:14 | x [element] | -| array_flow.rb:894:14:894:14 | x [element] | array_flow.rb:894:14:894:17 | ...[...] | | array_flow.rb:894:14:894:14 | x [element] | array_flow.rb:894:14:894:17 | ...[...] | | array_flow.rb:895:14:895:14 | x [element] | array_flow.rb:895:14:895:17 | ...[...] | -| array_flow.rb:895:14:895:14 | x [element] | array_flow.rb:895:14:895:17 | ...[...] | -| array_flow.rb:898:10:898:10 | c [element 2] | array_flow.rb:898:10:898:13 | ...[...] | | array_flow.rb:898:10:898:10 | c [element 2] | array_flow.rb:898:10:898:13 | ...[...] | | array_flow.rb:905:5:905:5 | a [element 1] | array_flow.rb:906:9:906:9 | a [element 1] | -| array_flow.rb:905:5:905:5 | a [element 1] | array_flow.rb:906:9:906:9 | a [element 1] | -| array_flow.rb:905:5:905:5 | a [element 1] | array_flow.rb:909:10:909:10 | a [element 1] | | array_flow.rb:905:5:905:5 | a [element 1] | array_flow.rb:909:10:909:10 | a [element 1] | | array_flow.rb:905:5:905:5 | a [element 3] | array_flow.rb:906:9:906:9 | a [element 3] | -| array_flow.rb:905:5:905:5 | a [element 3] | array_flow.rb:906:9:906:9 | a [element 3] | -| array_flow.rb:905:5:905:5 | a [element 3] | array_flow.rb:911:10:911:10 | a [element 3] | | array_flow.rb:905:5:905:5 | a [element 3] | array_flow.rb:911:10:911:10 | a [element 3] | | array_flow.rb:905:13:905:24 | call to source | array_flow.rb:905:5:905:5 | a [element 1] | -| array_flow.rb:905:13:905:24 | call to source | array_flow.rb:905:5:905:5 | a [element 1] | -| array_flow.rb:905:30:905:41 | call to source | array_flow.rb:905:5:905:5 | a [element 3] | | array_flow.rb:905:30:905:41 | call to source | array_flow.rb:905:5:905:5 | a [element 3] | | array_flow.rb:906:5:906:5 | b | array_flow.rb:907:10:907:10 | b | -| array_flow.rb:906:5:906:5 | b | array_flow.rb:907:10:907:10 | b | -| array_flow.rb:906:9:906:9 | a [element 1] | array_flow.rb:906:9:906:13 | call to pop | | array_flow.rb:906:9:906:9 | a [element 1] | array_flow.rb:906:9:906:13 | call to pop | | array_flow.rb:906:9:906:9 | a [element 3] | array_flow.rb:906:9:906:13 | call to pop | -| array_flow.rb:906:9:906:9 | a [element 3] | array_flow.rb:906:9:906:13 | call to pop | -| array_flow.rb:906:9:906:13 | call to pop | array_flow.rb:906:5:906:5 | b | | array_flow.rb:906:9:906:13 | call to pop | array_flow.rb:906:5:906:5 | b | | array_flow.rb:909:10:909:10 | a [element 1] | array_flow.rb:909:10:909:13 | ...[...] | -| array_flow.rb:909:10:909:10 | a [element 1] | array_flow.rb:909:10:909:13 | ...[...] | -| array_flow.rb:911:10:911:10 | a [element 3] | array_flow.rb:911:10:911:13 | ...[...] | | array_flow.rb:911:10:911:10 | a [element 3] | array_flow.rb:911:10:911:13 | ...[...] | | array_flow.rb:913:5:913:5 | a [element 1] | array_flow.rb:914:9:914:9 | a [element 1] | -| array_flow.rb:913:5:913:5 | a [element 1] | array_flow.rb:914:9:914:9 | a [element 1] | -| array_flow.rb:913:5:913:5 | a [element 1] | array_flow.rb:918:10:918:10 | a [element 1] | | array_flow.rb:913:5:913:5 | a [element 1] | array_flow.rb:918:10:918:10 | a [element 1] | | array_flow.rb:913:5:913:5 | a [element 3] | array_flow.rb:914:9:914:9 | a [element 3] | -| array_flow.rb:913:5:913:5 | a [element 3] | array_flow.rb:914:9:914:9 | a [element 3] | -| array_flow.rb:913:5:913:5 | a [element 3] | array_flow.rb:920:10:920:10 | a [element 3] | | array_flow.rb:913:5:913:5 | a [element 3] | array_flow.rb:920:10:920:10 | a [element 3] | | array_flow.rb:913:13:913:24 | call to source | array_flow.rb:913:5:913:5 | a [element 1] | -| array_flow.rb:913:13:913:24 | call to source | array_flow.rb:913:5:913:5 | a [element 1] | -| array_flow.rb:913:30:913:41 | call to source | array_flow.rb:913:5:913:5 | a [element 3] | | array_flow.rb:913:30:913:41 | call to source | array_flow.rb:913:5:913:5 | a [element 3] | | array_flow.rb:914:5:914:5 | b [element] | array_flow.rb:915:10:915:10 | b [element] | -| array_flow.rb:914:5:914:5 | b [element] | array_flow.rb:915:10:915:10 | b [element] | -| array_flow.rb:914:5:914:5 | b [element] | array_flow.rb:916:10:916:10 | b [element] | | array_flow.rb:914:5:914:5 | b [element] | array_flow.rb:916:10:916:10 | b [element] | | array_flow.rb:914:9:914:9 | a [element 1] | array_flow.rb:914:9:914:16 | call to pop [element] | -| array_flow.rb:914:9:914:9 | a [element 1] | array_flow.rb:914:9:914:16 | call to pop [element] | -| array_flow.rb:914:9:914:9 | a [element 3] | array_flow.rb:914:9:914:16 | call to pop [element] | | array_flow.rb:914:9:914:9 | a [element 3] | array_flow.rb:914:9:914:16 | call to pop [element] | | array_flow.rb:914:9:914:16 | call to pop [element] | array_flow.rb:914:5:914:5 | b [element] | -| array_flow.rb:914:9:914:16 | call to pop [element] | array_flow.rb:914:5:914:5 | b [element] | -| array_flow.rb:915:10:915:10 | b [element] | array_flow.rb:915:10:915:13 | ...[...] | | array_flow.rb:915:10:915:10 | b [element] | array_flow.rb:915:10:915:13 | ...[...] | | array_flow.rb:916:10:916:10 | b [element] | array_flow.rb:916:10:916:13 | ...[...] | -| array_flow.rb:916:10:916:10 | b [element] | array_flow.rb:916:10:916:13 | ...[...] | -| array_flow.rb:918:10:918:10 | a [element 1] | array_flow.rb:918:10:918:13 | ...[...] | | array_flow.rb:918:10:918:10 | a [element 1] | array_flow.rb:918:10:918:13 | ...[...] | | array_flow.rb:920:10:920:10 | a [element 3] | array_flow.rb:920:10:920:13 | ...[...] | -| array_flow.rb:920:10:920:10 | a [element 3] | array_flow.rb:920:10:920:13 | ...[...] | -| array_flow.rb:924:5:924:5 | a [element 2] | array_flow.rb:925:5:925:5 | a [element 2] | | array_flow.rb:924:5:924:5 | a [element 2] | array_flow.rb:925:5:925:5 | a [element 2] | | array_flow.rb:924:16:924:27 | call to source | array_flow.rb:924:5:924:5 | a [element 2] | -| array_flow.rb:924:16:924:27 | call to source | array_flow.rb:924:5:924:5 | a [element 2] | -| array_flow.rb:925:5:925:5 | [post] a [element 2] | array_flow.rb:928:10:928:10 | a [element 2] | | array_flow.rb:925:5:925:5 | [post] a [element 2] | array_flow.rb:928:10:928:10 | a [element 2] | | array_flow.rb:925:5:925:5 | [post] a [element 5] | array_flow.rb:931:10:931:10 | a [element 5] | -| array_flow.rb:925:5:925:5 | [post] a [element 5] | array_flow.rb:931:10:931:10 | a [element 5] | -| array_flow.rb:925:5:925:5 | a [element 2] | array_flow.rb:925:5:925:5 | [post] a [element 5] | | array_flow.rb:925:5:925:5 | a [element 2] | array_flow.rb:925:5:925:5 | [post] a [element 5] | | array_flow.rb:925:21:925:32 | call to source | array_flow.rb:925:5:925:5 | [post] a [element 2] | -| array_flow.rb:925:21:925:32 | call to source | array_flow.rb:925:5:925:5 | [post] a [element 2] | -| array_flow.rb:928:10:928:10 | a [element 2] | array_flow.rb:928:10:928:13 | ...[...] | | array_flow.rb:928:10:928:10 | a [element 2] | array_flow.rb:928:10:928:13 | ...[...] | | array_flow.rb:931:10:931:10 | a [element 5] | array_flow.rb:931:10:931:13 | ...[...] | -| array_flow.rb:931:10:931:10 | a [element 5] | array_flow.rb:931:10:931:13 | ...[...] | -| array_flow.rb:935:5:935:5 | a [element 2] | array_flow.rb:938:9:938:9 | a [element 2] | | array_flow.rb:935:5:935:5 | a [element 2] | array_flow.rb:938:9:938:9 | a [element 2] | | array_flow.rb:935:16:935:27 | call to source | array_flow.rb:935:5:935:5 | a [element 2] | -| array_flow.rb:935:16:935:27 | call to source | array_flow.rb:935:5:935:5 | a [element 2] | -| array_flow.rb:936:5:936:5 | b [element 1] | array_flow.rb:938:19:938:19 | b [element 1] | | array_flow.rb:936:5:936:5 | b [element 1] | array_flow.rb:938:19:938:19 | b [element 1] | | array_flow.rb:936:13:936:24 | call to source | array_flow.rb:936:5:936:5 | b [element 1] | -| array_flow.rb:936:13:936:24 | call to source | array_flow.rb:936:5:936:5 | b [element 1] | -| array_flow.rb:937:5:937:5 | c [element 0] | array_flow.rb:938:22:938:22 | c [element 0] | | array_flow.rb:937:5:937:5 | c [element 0] | array_flow.rb:938:22:938:22 | c [element 0] | | array_flow.rb:937:10:937:21 | call to source | array_flow.rb:937:5:937:5 | c [element 0] | -| array_flow.rb:937:10:937:21 | call to source | array_flow.rb:937:5:937:5 | c [element 0] | -| array_flow.rb:938:5:938:5 | d [element, element] | array_flow.rb:939:10:939:10 | d [element, element] | | array_flow.rb:938:5:938:5 | d [element, element] | array_flow.rb:939:10:939:10 | d [element, element] | | array_flow.rb:938:5:938:5 | d [element, element] | array_flow.rb:940:10:940:10 | d [element, element] | -| array_flow.rb:938:5:938:5 | d [element, element] | array_flow.rb:940:10:940:10 | d [element, element] | -| array_flow.rb:938:9:938:9 | a [element 2] | array_flow.rb:938:9:938:22 | call to product [element, element] | | array_flow.rb:938:9:938:9 | a [element 2] | array_flow.rb:938:9:938:22 | call to product [element, element] | | array_flow.rb:938:9:938:22 | call to product [element, element] | array_flow.rb:938:5:938:5 | d [element, element] | -| array_flow.rb:938:9:938:22 | call to product [element, element] | array_flow.rb:938:5:938:5 | d [element, element] | -| array_flow.rb:938:19:938:19 | b [element 1] | array_flow.rb:938:9:938:22 | call to product [element, element] | | array_flow.rb:938:19:938:19 | b [element 1] | array_flow.rb:938:9:938:22 | call to product [element, element] | | array_flow.rb:938:22:938:22 | c [element 0] | array_flow.rb:938:9:938:22 | call to product [element, element] | -| array_flow.rb:938:22:938:22 | c [element 0] | array_flow.rb:938:9:938:22 | call to product [element, element] | -| array_flow.rb:939:10:939:10 | d [element, element] | array_flow.rb:939:10:939:13 | ...[...] [element] | | array_flow.rb:939:10:939:10 | d [element, element] | array_flow.rb:939:10:939:13 | ...[...] [element] | | array_flow.rb:939:10:939:13 | ...[...] [element] | array_flow.rb:939:10:939:16 | ...[...] | -| array_flow.rb:939:10:939:13 | ...[...] [element] | array_flow.rb:939:10:939:16 | ...[...] | -| array_flow.rb:940:10:940:10 | d [element, element] | array_flow.rb:940:10:940:13 | ...[...] [element] | | array_flow.rb:940:10:940:10 | d [element, element] | array_flow.rb:940:10:940:13 | ...[...] [element] | | array_flow.rb:940:10:940:13 | ...[...] [element] | array_flow.rb:940:10:940:16 | ...[...] | -| array_flow.rb:940:10:940:13 | ...[...] [element] | array_flow.rb:940:10:940:16 | ...[...] | -| array_flow.rb:944:5:944:5 | a [element 0] | array_flow.rb:945:9:945:9 | a [element 0] | | array_flow.rb:944:5:944:5 | a [element 0] | array_flow.rb:945:9:945:9 | a [element 0] | | array_flow.rb:944:5:944:5 | a [element 0] | array_flow.rb:946:10:946:10 | a [element 0] | -| array_flow.rb:944:5:944:5 | a [element 0] | array_flow.rb:946:10:946:10 | a [element 0] | -| array_flow.rb:944:10:944:21 | call to source | array_flow.rb:944:5:944:5 | a [element 0] | | array_flow.rb:944:10:944:21 | call to source | array_flow.rb:944:5:944:5 | a [element 0] | | array_flow.rb:945:5:945:5 | b [element 0] | array_flow.rb:948:10:948:10 | b [element 0] | -| array_flow.rb:945:5:945:5 | b [element 0] | array_flow.rb:948:10:948:10 | b [element 0] | -| array_flow.rb:945:5:945:5 | b [element] | array_flow.rb:948:10:948:10 | b [element] | | array_flow.rb:945:5:945:5 | b [element] | array_flow.rb:948:10:948:10 | b [element] | | array_flow.rb:945:5:945:5 | b [element] | array_flow.rb:949:10:949:10 | b [element] | -| array_flow.rb:945:5:945:5 | b [element] | array_flow.rb:949:10:949:10 | b [element] | -| array_flow.rb:945:9:945:9 | [post] a [element] | array_flow.rb:946:10:946:10 | a [element] | | array_flow.rb:945:9:945:9 | [post] a [element] | array_flow.rb:946:10:946:10 | a [element] | | array_flow.rb:945:9:945:9 | [post] a [element] | array_flow.rb:947:10:947:10 | a [element] | -| array_flow.rb:945:9:945:9 | [post] a [element] | array_flow.rb:947:10:947:10 | a [element] | -| array_flow.rb:945:9:945:9 | a [element 0] | array_flow.rb:945:9:945:44 | call to append [element 0] | | array_flow.rb:945:9:945:9 | a [element 0] | array_flow.rb:945:9:945:44 | call to append [element 0] | | array_flow.rb:945:9:945:44 | call to append [element 0] | array_flow.rb:945:5:945:5 | b [element 0] | -| array_flow.rb:945:9:945:44 | call to append [element 0] | array_flow.rb:945:5:945:5 | b [element 0] | -| array_flow.rb:945:9:945:44 | call to append [element] | array_flow.rb:945:5:945:5 | b [element] | | array_flow.rb:945:9:945:44 | call to append [element] | array_flow.rb:945:5:945:5 | b [element] | | array_flow.rb:945:18:945:29 | call to source | array_flow.rb:945:9:945:9 | [post] a [element] | -| array_flow.rb:945:18:945:29 | call to source | array_flow.rb:945:9:945:9 | [post] a [element] | -| array_flow.rb:945:18:945:29 | call to source | array_flow.rb:945:9:945:44 | call to append [element] | | array_flow.rb:945:18:945:29 | call to source | array_flow.rb:945:9:945:44 | call to append [element] | | array_flow.rb:945:32:945:43 | call to source | array_flow.rb:945:9:945:9 | [post] a [element] | -| array_flow.rb:945:32:945:43 | call to source | array_flow.rb:945:9:945:9 | [post] a [element] | -| array_flow.rb:945:32:945:43 | call to source | array_flow.rb:945:9:945:44 | call to append [element] | | array_flow.rb:945:32:945:43 | call to source | array_flow.rb:945:9:945:44 | call to append [element] | | array_flow.rb:946:10:946:10 | a [element 0] | array_flow.rb:946:10:946:13 | ...[...] | -| array_flow.rb:946:10:946:10 | a [element 0] | array_flow.rb:946:10:946:13 | ...[...] | -| array_flow.rb:946:10:946:10 | a [element] | array_flow.rb:946:10:946:13 | ...[...] | | array_flow.rb:946:10:946:10 | a [element] | array_flow.rb:946:10:946:13 | ...[...] | | array_flow.rb:947:10:947:10 | a [element] | array_flow.rb:947:10:947:13 | ...[...] | -| array_flow.rb:947:10:947:10 | a [element] | array_flow.rb:947:10:947:13 | ...[...] | -| array_flow.rb:948:10:948:10 | b [element 0] | array_flow.rb:948:10:948:13 | ...[...] | | array_flow.rb:948:10:948:10 | b [element 0] | array_flow.rb:948:10:948:13 | ...[...] | | array_flow.rb:948:10:948:10 | b [element] | array_flow.rb:948:10:948:13 | ...[...] | -| array_flow.rb:948:10:948:10 | b [element] | array_flow.rb:948:10:948:13 | ...[...] | -| array_flow.rb:949:10:949:10 | b [element] | array_flow.rb:949:10:949:13 | ...[...] | | array_flow.rb:949:10:949:10 | b [element] | array_flow.rb:949:10:949:13 | ...[...] | | array_flow.rb:955:5:955:5 | c [element 0] | array_flow.rb:956:16:956:16 | c [element 0] | -| array_flow.rb:955:5:955:5 | c [element 0] | array_flow.rb:956:16:956:16 | c [element 0] | -| array_flow.rb:955:10:955:19 | call to source | array_flow.rb:955:5:955:5 | c [element 0] | | array_flow.rb:955:10:955:19 | call to source | array_flow.rb:955:5:955:5 | c [element 0] | | array_flow.rb:956:5:956:5 | d [element 2, element 0] | array_flow.rb:957:10:957:10 | d [element 2, element 0] | -| array_flow.rb:956:5:956:5 | d [element 2, element 0] | array_flow.rb:957:10:957:10 | d [element 2, element 0] | -| array_flow.rb:956:5:956:5 | d [element 2, element 0] | array_flow.rb:958:10:958:10 | d [element 2, element 0] | | array_flow.rb:956:5:956:5 | d [element 2, element 0] | array_flow.rb:958:10:958:10 | d [element 2, element 0] | | array_flow.rb:956:16:956:16 | c [element 0] | array_flow.rb:956:5:956:5 | d [element 2, element 0] | -| array_flow.rb:956:16:956:16 | c [element 0] | array_flow.rb:956:5:956:5 | d [element 2, element 0] | -| array_flow.rb:957:10:957:10 | d [element 2, element 0] | array_flow.rb:957:10:957:22 | call to rassoc [element 0] | | array_flow.rb:957:10:957:10 | d [element 2, element 0] | array_flow.rb:957:10:957:22 | call to rassoc [element 0] | | array_flow.rb:957:10:957:22 | call to rassoc [element 0] | array_flow.rb:957:10:957:25 | ...[...] | -| array_flow.rb:957:10:957:22 | call to rassoc [element 0] | array_flow.rb:957:10:957:25 | ...[...] | -| array_flow.rb:958:10:958:10 | d [element 2, element 0] | array_flow.rb:958:10:958:22 | call to rassoc [element 0] | | array_flow.rb:958:10:958:10 | d [element 2, element 0] | array_flow.rb:958:10:958:22 | call to rassoc [element 0] | | array_flow.rb:958:10:958:22 | call to rassoc [element 0] | array_flow.rb:958:10:958:25 | ...[...] | -| array_flow.rb:958:10:958:22 | call to rassoc [element 0] | array_flow.rb:958:10:958:25 | ...[...] | -| array_flow.rb:962:5:962:5 | a [element 0] | array_flow.rb:963:9:963:9 | a [element 0] | | array_flow.rb:962:5:962:5 | a [element 0] | array_flow.rb:963:9:963:9 | a [element 0] | | array_flow.rb:962:5:962:5 | a [element 0] | array_flow.rb:968:9:968:9 | a [element 0] | -| array_flow.rb:962:5:962:5 | a [element 0] | array_flow.rb:968:9:968:9 | a [element 0] | -| array_flow.rb:962:5:962:5 | a [element 2] | array_flow.rb:963:9:963:9 | a [element 2] | | array_flow.rb:962:5:962:5 | a [element 2] | array_flow.rb:963:9:963:9 | a [element 2] | | array_flow.rb:962:5:962:5 | a [element 2] | array_flow.rb:968:9:968:9 | a [element 2] | -| array_flow.rb:962:5:962:5 | a [element 2] | array_flow.rb:968:9:968:9 | a [element 2] | -| array_flow.rb:962:10:962:21 | call to source | array_flow.rb:962:5:962:5 | a [element 0] | | array_flow.rb:962:10:962:21 | call to source | array_flow.rb:962:5:962:5 | a [element 0] | | array_flow.rb:962:27:962:38 | call to source | array_flow.rb:962:5:962:5 | a [element 2] | -| array_flow.rb:962:27:962:38 | call to source | array_flow.rb:962:5:962:5 | a [element 2] | -| array_flow.rb:963:9:963:9 | a [element 0] | array_flow.rb:963:22:963:22 | x | | array_flow.rb:963:9:963:9 | a [element 0] | array_flow.rb:963:22:963:22 | x | | array_flow.rb:963:9:963:9 | a [element 2] | array_flow.rb:963:25:963:25 | y | -| array_flow.rb:963:9:963:9 | a [element 2] | array_flow.rb:963:25:963:25 | y | -| array_flow.rb:963:22:963:22 | x | array_flow.rb:964:14:964:14 | x | | array_flow.rb:963:22:963:22 | x | array_flow.rb:964:14:964:14 | x | | array_flow.rb:963:25:963:25 | y | array_flow.rb:965:14:965:14 | y | -| array_flow.rb:963:25:963:25 | y | array_flow.rb:965:14:965:14 | y | -| array_flow.rb:968:9:968:9 | a [element 0] | array_flow.rb:968:28:968:28 | y | | array_flow.rb:968:9:968:9 | a [element 0] | array_flow.rb:968:28:968:28 | y | | array_flow.rb:968:9:968:9 | a [element 2] | array_flow.rb:968:28:968:28 | y | -| array_flow.rb:968:9:968:9 | a [element 2] | array_flow.rb:968:28:968:28 | y | -| array_flow.rb:968:28:968:28 | y | array_flow.rb:970:14:970:14 | y | | array_flow.rb:968:28:968:28 | y | array_flow.rb:970:14:970:14 | y | | array_flow.rb:976:5:976:5 | a [element 2] | array_flow.rb:977:9:977:9 | a [element 2] | -| array_flow.rb:976:5:976:5 | a [element 2] | array_flow.rb:977:9:977:9 | a [element 2] | -| array_flow.rb:976:16:976:25 | call to source | array_flow.rb:976:5:976:5 | a [element 2] | | array_flow.rb:976:16:976:25 | call to source | array_flow.rb:976:5:976:5 | a [element 2] | | array_flow.rb:977:5:977:5 | b [element] | array_flow.rb:981:10:981:10 | b [element] | -| array_flow.rb:977:5:977:5 | b [element] | array_flow.rb:981:10:981:10 | b [element] | -| array_flow.rb:977:9:977:9 | a [element 2] | array_flow.rb:977:9:980:7 | call to reject [element] | | array_flow.rb:977:9:977:9 | a [element 2] | array_flow.rb:977:9:980:7 | call to reject [element] | | array_flow.rb:977:9:977:9 | a [element 2] | array_flow.rb:977:22:977:22 | x | -| array_flow.rb:977:9:977:9 | a [element 2] | array_flow.rb:977:22:977:22 | x | -| array_flow.rb:977:9:980:7 | call to reject [element] | array_flow.rb:977:5:977:5 | b [element] | | array_flow.rb:977:9:980:7 | call to reject [element] | array_flow.rb:977:5:977:5 | b [element] | | array_flow.rb:977:22:977:22 | x | array_flow.rb:978:14:978:14 | x | -| array_flow.rb:977:22:977:22 | x | array_flow.rb:978:14:978:14 | x | -| array_flow.rb:981:10:981:10 | b [element] | array_flow.rb:981:10:981:13 | ...[...] | | array_flow.rb:981:10:981:10 | b [element] | array_flow.rb:981:10:981:13 | ...[...] | | array_flow.rb:985:5:985:5 | a [element 2] | array_flow.rb:986:9:986:9 | a [element 2] | -| array_flow.rb:985:5:985:5 | a [element 2] | array_flow.rb:986:9:986:9 | a [element 2] | -| array_flow.rb:985:16:985:25 | call to source | array_flow.rb:985:5:985:5 | a [element 2] | | array_flow.rb:985:16:985:25 | call to source | array_flow.rb:985:5:985:5 | a [element 2] | | array_flow.rb:986:5:986:5 | b [element] | array_flow.rb:991:10:991:10 | b [element] | -| array_flow.rb:986:5:986:5 | b [element] | array_flow.rb:991:10:991:10 | b [element] | -| array_flow.rb:986:9:986:9 | [post] a [element] | array_flow.rb:990:10:990:10 | a [element] | | array_flow.rb:986:9:986:9 | [post] a [element] | array_flow.rb:990:10:990:10 | a [element] | | array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:9:986:9 | [post] a [element] | -| array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:9:986:9 | [post] a [element] | -| array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:9:989:7 | call to reject! [element] | | array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:9:989:7 | call to reject! [element] | | array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:23:986:23 | x | -| array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:23:986:23 | x | -| array_flow.rb:986:9:989:7 | call to reject! [element] | array_flow.rb:986:5:986:5 | b [element] | | array_flow.rb:986:9:989:7 | call to reject! [element] | array_flow.rb:986:5:986:5 | b [element] | | array_flow.rb:986:23:986:23 | x | array_flow.rb:987:14:987:14 | x | -| array_flow.rb:986:23:986:23 | x | array_flow.rb:987:14:987:14 | x | -| array_flow.rb:990:10:990:10 | a [element] | array_flow.rb:990:10:990:13 | ...[...] | | array_flow.rb:990:10:990:10 | a [element] | array_flow.rb:990:10:990:13 | ...[...] | | array_flow.rb:991:10:991:10 | b [element] | array_flow.rb:991:10:991:13 | ...[...] | -| array_flow.rb:991:10:991:10 | b [element] | array_flow.rb:991:10:991:13 | ...[...] | -| array_flow.rb:995:5:995:5 | a [element 2] | array_flow.rb:996:9:996:9 | a [element 2] | | array_flow.rb:995:5:995:5 | a [element 2] | array_flow.rb:996:9:996:9 | a [element 2] | | array_flow.rb:995:16:995:25 | call to source | array_flow.rb:995:5:995:5 | a [element 2] | -| array_flow.rb:995:16:995:25 | call to source | array_flow.rb:995:5:995:5 | a [element 2] | -| array_flow.rb:996:5:996:5 | b [element 2] | array_flow.rb:1001:10:1001:10 | b [element 2] | | array_flow.rb:996:5:996:5 | b [element 2] | array_flow.rb:1001:10:1001:10 | b [element 2] | | array_flow.rb:996:9:996:9 | a [element 2] | array_flow.rb:996:9:999:7 | call to repeated_combination [element 2] | -| array_flow.rb:996:9:996:9 | a [element 2] | array_flow.rb:996:9:999:7 | call to repeated_combination [element 2] | -| array_flow.rb:996:9:996:9 | a [element 2] | array_flow.rb:996:39:996:39 | x [element] | | array_flow.rb:996:9:996:9 | a [element 2] | array_flow.rb:996:39:996:39 | x [element] | | array_flow.rb:996:9:999:7 | call to repeated_combination [element 2] | array_flow.rb:996:5:996:5 | b [element 2] | -| array_flow.rb:996:9:999:7 | call to repeated_combination [element 2] | array_flow.rb:996:5:996:5 | b [element 2] | -| array_flow.rb:996:39:996:39 | x [element] | array_flow.rb:997:14:997:14 | x [element] | | array_flow.rb:996:39:996:39 | x [element] | array_flow.rb:997:14:997:14 | x [element] | | array_flow.rb:996:39:996:39 | x [element] | array_flow.rb:998:14:998:14 | x [element] | -| array_flow.rb:996:39:996:39 | x [element] | array_flow.rb:998:14:998:14 | x [element] | -| array_flow.rb:997:14:997:14 | x [element] | array_flow.rb:997:14:997:17 | ...[...] | | array_flow.rb:997:14:997:14 | x [element] | array_flow.rb:997:14:997:17 | ...[...] | | array_flow.rb:998:14:998:14 | x [element] | array_flow.rb:998:14:998:17 | ...[...] | -| array_flow.rb:998:14:998:14 | x [element] | array_flow.rb:998:14:998:17 | ...[...] | -| array_flow.rb:1001:10:1001:10 | b [element 2] | array_flow.rb:1001:10:1001:13 | ...[...] | | array_flow.rb:1001:10:1001:10 | b [element 2] | array_flow.rb:1001:10:1001:13 | ...[...] | | array_flow.rb:1005:5:1005:5 | a [element 2] | array_flow.rb:1006:9:1006:9 | a [element 2] | -| array_flow.rb:1005:5:1005:5 | a [element 2] | array_flow.rb:1006:9:1006:9 | a [element 2] | -| array_flow.rb:1005:16:1005:25 | call to source | array_flow.rb:1005:5:1005:5 | a [element 2] | | array_flow.rb:1005:16:1005:25 | call to source | array_flow.rb:1005:5:1005:5 | a [element 2] | | array_flow.rb:1006:5:1006:5 | b [element 2] | array_flow.rb:1011:10:1011:10 | b [element 2] | -| array_flow.rb:1006:5:1006:5 | b [element 2] | array_flow.rb:1011:10:1011:10 | b [element 2] | -| array_flow.rb:1006:9:1006:9 | a [element 2] | array_flow.rb:1006:9:1009:7 | call to repeated_permutation [element 2] | | array_flow.rb:1006:9:1006:9 | a [element 2] | array_flow.rb:1006:9:1009:7 | call to repeated_permutation [element 2] | | array_flow.rb:1006:9:1006:9 | a [element 2] | array_flow.rb:1006:39:1006:39 | x [element] | -| array_flow.rb:1006:9:1006:9 | a [element 2] | array_flow.rb:1006:39:1006:39 | x [element] | -| array_flow.rb:1006:9:1009:7 | call to repeated_permutation [element 2] | array_flow.rb:1006:5:1006:5 | b [element 2] | | array_flow.rb:1006:9:1009:7 | call to repeated_permutation [element 2] | array_flow.rb:1006:5:1006:5 | b [element 2] | | array_flow.rb:1006:39:1006:39 | x [element] | array_flow.rb:1007:14:1007:14 | x [element] | -| array_flow.rb:1006:39:1006:39 | x [element] | array_flow.rb:1007:14:1007:14 | x [element] | -| array_flow.rb:1006:39:1006:39 | x [element] | array_flow.rb:1008:14:1008:14 | x [element] | | array_flow.rb:1006:39:1006:39 | x [element] | array_flow.rb:1008:14:1008:14 | x [element] | | array_flow.rb:1007:14:1007:14 | x [element] | array_flow.rb:1007:14:1007:17 | ...[...] | -| array_flow.rb:1007:14:1007:14 | x [element] | array_flow.rb:1007:14:1007:17 | ...[...] | -| array_flow.rb:1008:14:1008:14 | x [element] | array_flow.rb:1008:14:1008:17 | ...[...] | | array_flow.rb:1008:14:1008:14 | x [element] | array_flow.rb:1008:14:1008:17 | ...[...] | | array_flow.rb:1011:10:1011:10 | b [element 2] | array_flow.rb:1011:10:1011:13 | ...[...] | -| array_flow.rb:1011:10:1011:10 | b [element 2] | array_flow.rb:1011:10:1011:13 | ...[...] | -| array_flow.rb:1017:5:1017:5 | b [element 0] | array_flow.rb:1019:10:1019:10 | b [element 0] | | array_flow.rb:1017:5:1017:5 | b [element 0] | array_flow.rb:1019:10:1019:10 | b [element 0] | | array_flow.rb:1017:9:1017:9 | [post] a [element 0] | array_flow.rb:1018:10:1018:10 | a [element 0] | -| array_flow.rb:1017:9:1017:9 | [post] a [element 0] | array_flow.rb:1018:10:1018:10 | a [element 0] | -| array_flow.rb:1017:9:1017:33 | call to replace [element 0] | array_flow.rb:1017:5:1017:5 | b [element 0] | | array_flow.rb:1017:9:1017:33 | call to replace [element 0] | array_flow.rb:1017:5:1017:5 | b [element 0] | | array_flow.rb:1017:20:1017:31 | call to source | array_flow.rb:1017:9:1017:9 | [post] a [element 0] | -| array_flow.rb:1017:20:1017:31 | call to source | array_flow.rb:1017:9:1017:9 | [post] a [element 0] | -| array_flow.rb:1017:20:1017:31 | call to source | array_flow.rb:1017:9:1017:33 | call to replace [element 0] | | array_flow.rb:1017:20:1017:31 | call to source | array_flow.rb:1017:9:1017:33 | call to replace [element 0] | | array_flow.rb:1018:10:1018:10 | a [element 0] | array_flow.rb:1018:10:1018:13 | ...[...] | -| array_flow.rb:1018:10:1018:10 | a [element 0] | array_flow.rb:1018:10:1018:13 | ...[...] | -| array_flow.rb:1019:10:1019:10 | b [element 0] | array_flow.rb:1019:10:1019:13 | ...[...] | | array_flow.rb:1019:10:1019:10 | b [element 0] | array_flow.rb:1019:10:1019:13 | ...[...] | | array_flow.rb:1023:5:1023:5 | a [element 2] | array_flow.rb:1024:9:1024:9 | a [element 2] | -| array_flow.rb:1023:5:1023:5 | a [element 2] | array_flow.rb:1024:9:1024:9 | a [element 2] | -| array_flow.rb:1023:5:1023:5 | a [element 2] | array_flow.rb:1029:10:1029:10 | a [element 2] | | array_flow.rb:1023:5:1023:5 | a [element 2] | array_flow.rb:1029:10:1029:10 | a [element 2] | | array_flow.rb:1023:5:1023:5 | a [element 3] | array_flow.rb:1024:9:1024:9 | a [element 3] | -| array_flow.rb:1023:5:1023:5 | a [element 3] | array_flow.rb:1024:9:1024:9 | a [element 3] | -| array_flow.rb:1023:5:1023:5 | a [element 3] | array_flow.rb:1030:10:1030:10 | a [element 3] | | array_flow.rb:1023:5:1023:5 | a [element 3] | array_flow.rb:1030:10:1030:10 | a [element 3] | | array_flow.rb:1023:16:1023:28 | call to source | array_flow.rb:1023:5:1023:5 | a [element 2] | -| array_flow.rb:1023:16:1023:28 | call to source | array_flow.rb:1023:5:1023:5 | a [element 2] | -| array_flow.rb:1023:31:1023:43 | call to source | array_flow.rb:1023:5:1023:5 | a [element 3] | | array_flow.rb:1023:31:1023:43 | call to source | array_flow.rb:1023:5:1023:5 | a [element 3] | | array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1025:10:1025:10 | b [element] | -| array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1025:10:1025:10 | b [element] | -| array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1026:10:1026:10 | b [element] | | array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1026:10:1026:10 | b [element] | | array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1027:10:1027:10 | b [element] | -| array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1027:10:1027:10 | b [element] | -| array_flow.rb:1024:9:1024:9 | a [element 2] | array_flow.rb:1024:9:1024:17 | call to reverse [element] | | array_flow.rb:1024:9:1024:9 | a [element 2] | array_flow.rb:1024:9:1024:17 | call to reverse [element] | | array_flow.rb:1024:9:1024:9 | a [element 3] | array_flow.rb:1024:9:1024:17 | call to reverse [element] | -| array_flow.rb:1024:9:1024:9 | a [element 3] | array_flow.rb:1024:9:1024:17 | call to reverse [element] | -| array_flow.rb:1024:9:1024:17 | call to reverse [element] | array_flow.rb:1024:5:1024:5 | b [element] | | array_flow.rb:1024:9:1024:17 | call to reverse [element] | array_flow.rb:1024:5:1024:5 | b [element] | | array_flow.rb:1025:10:1025:10 | b [element] | array_flow.rb:1025:10:1025:13 | ...[...] | -| array_flow.rb:1025:10:1025:10 | b [element] | array_flow.rb:1025:10:1025:13 | ...[...] | -| array_flow.rb:1026:10:1026:10 | b [element] | array_flow.rb:1026:10:1026:13 | ...[...] | | array_flow.rb:1026:10:1026:10 | b [element] | array_flow.rb:1026:10:1026:13 | ...[...] | | array_flow.rb:1027:10:1027:10 | b [element] | array_flow.rb:1027:10:1027:13 | ...[...] | -| array_flow.rb:1027:10:1027:10 | b [element] | array_flow.rb:1027:10:1027:13 | ...[...] | -| array_flow.rb:1029:10:1029:10 | a [element 2] | array_flow.rb:1029:10:1029:13 | ...[...] | | array_flow.rb:1029:10:1029:10 | a [element 2] | array_flow.rb:1029:10:1029:13 | ...[...] | | array_flow.rb:1030:10:1030:10 | a [element 3] | array_flow.rb:1030:10:1030:13 | ...[...] | -| array_flow.rb:1030:10:1030:10 | a [element 3] | array_flow.rb:1030:10:1030:13 | ...[...] | -| array_flow.rb:1034:5:1034:5 | a [element 2] | array_flow.rb:1035:9:1035:9 | a [element 2] | | array_flow.rb:1034:5:1034:5 | a [element 2] | array_flow.rb:1035:9:1035:9 | a [element 2] | | array_flow.rb:1034:5:1034:5 | a [element 2] | array_flow.rb:1040:10:1040:10 | a [element 2] | -| array_flow.rb:1034:5:1034:5 | a [element 2] | array_flow.rb:1040:10:1040:10 | a [element 2] | -| array_flow.rb:1034:5:1034:5 | a [element 3] | array_flow.rb:1035:9:1035:9 | a [element 3] | | array_flow.rb:1034:5:1034:5 | a [element 3] | array_flow.rb:1035:9:1035:9 | a [element 3] | | array_flow.rb:1034:5:1034:5 | a [element 3] | array_flow.rb:1041:10:1041:10 | a [element 3] | -| array_flow.rb:1034:5:1034:5 | a [element 3] | array_flow.rb:1041:10:1041:10 | a [element 3] | -| array_flow.rb:1034:16:1034:28 | call to source | array_flow.rb:1034:5:1034:5 | a [element 2] | | array_flow.rb:1034:16:1034:28 | call to source | array_flow.rb:1034:5:1034:5 | a [element 2] | | array_flow.rb:1034:31:1034:43 | call to source | array_flow.rb:1034:5:1034:5 | a [element 3] | -| array_flow.rb:1034:31:1034:43 | call to source | array_flow.rb:1034:5:1034:5 | a [element 3] | -| array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1036:10:1036:10 | b [element] | | array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1036:10:1036:10 | b [element] | | array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1037:10:1037:10 | b [element] | -| array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1037:10:1037:10 | b [element] | -| array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1038:10:1038:10 | b [element] | | array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1038:10:1038:10 | b [element] | | array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1039:10:1039:10 | a [element] | -| array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1039:10:1039:10 | a [element] | -| array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1040:10:1040:10 | a [element] | | array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1040:10:1040:10 | a [element] | | array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1041:10:1041:10 | a [element] | -| array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1041:10:1041:10 | a [element] | -| array_flow.rb:1035:9:1035:9 | a [element 2] | array_flow.rb:1035:9:1035:9 | [post] a [element] | | array_flow.rb:1035:9:1035:9 | a [element 2] | array_flow.rb:1035:9:1035:9 | [post] a [element] | | array_flow.rb:1035:9:1035:9 | a [element 2] | array_flow.rb:1035:9:1035:18 | call to reverse! [element] | -| array_flow.rb:1035:9:1035:9 | a [element 2] | array_flow.rb:1035:9:1035:18 | call to reverse! [element] | -| array_flow.rb:1035:9:1035:9 | a [element 3] | array_flow.rb:1035:9:1035:9 | [post] a [element] | | array_flow.rb:1035:9:1035:9 | a [element 3] | array_flow.rb:1035:9:1035:9 | [post] a [element] | | array_flow.rb:1035:9:1035:9 | a [element 3] | array_flow.rb:1035:9:1035:18 | call to reverse! [element] | -| array_flow.rb:1035:9:1035:9 | a [element 3] | array_flow.rb:1035:9:1035:18 | call to reverse! [element] | -| array_flow.rb:1035:9:1035:18 | call to reverse! [element] | array_flow.rb:1035:5:1035:5 | b [element] | | array_flow.rb:1035:9:1035:18 | call to reverse! [element] | array_flow.rb:1035:5:1035:5 | b [element] | | array_flow.rb:1036:10:1036:10 | b [element] | array_flow.rb:1036:10:1036:13 | ...[...] | -| array_flow.rb:1036:10:1036:10 | b [element] | array_flow.rb:1036:10:1036:13 | ...[...] | -| array_flow.rb:1037:10:1037:10 | b [element] | array_flow.rb:1037:10:1037:13 | ...[...] | | array_flow.rb:1037:10:1037:10 | b [element] | array_flow.rb:1037:10:1037:13 | ...[...] | | array_flow.rb:1038:10:1038:10 | b [element] | array_flow.rb:1038:10:1038:13 | ...[...] | -| array_flow.rb:1038:10:1038:10 | b [element] | array_flow.rb:1038:10:1038:13 | ...[...] | -| array_flow.rb:1039:10:1039:10 | a [element] | array_flow.rb:1039:10:1039:13 | ...[...] | | array_flow.rb:1039:10:1039:10 | a [element] | array_flow.rb:1039:10:1039:13 | ...[...] | | array_flow.rb:1040:10:1040:10 | a [element 2] | array_flow.rb:1040:10:1040:13 | ...[...] | -| array_flow.rb:1040:10:1040:10 | a [element 2] | array_flow.rb:1040:10:1040:13 | ...[...] | -| array_flow.rb:1040:10:1040:10 | a [element] | array_flow.rb:1040:10:1040:13 | ...[...] | | array_flow.rb:1040:10:1040:10 | a [element] | array_flow.rb:1040:10:1040:13 | ...[...] | | array_flow.rb:1041:10:1041:10 | a [element 3] | array_flow.rb:1041:10:1041:13 | ...[...] | -| array_flow.rb:1041:10:1041:10 | a [element 3] | array_flow.rb:1041:10:1041:13 | ...[...] | -| array_flow.rb:1041:10:1041:10 | a [element] | array_flow.rb:1041:10:1041:13 | ...[...] | | array_flow.rb:1041:10:1041:10 | a [element] | array_flow.rb:1041:10:1041:13 | ...[...] | | array_flow.rb:1045:5:1045:5 | a [element 2] | array_flow.rb:1046:9:1046:9 | a [element 2] | -| array_flow.rb:1045:5:1045:5 | a [element 2] | array_flow.rb:1046:9:1046:9 | a [element 2] | -| array_flow.rb:1045:16:1045:26 | call to source | array_flow.rb:1045:5:1045:5 | a [element 2] | | array_flow.rb:1045:16:1045:26 | call to source | array_flow.rb:1045:5:1045:5 | a [element 2] | | array_flow.rb:1046:5:1046:5 | b [element 2] | array_flow.rb:1049:10:1049:10 | b [element 2] | -| array_flow.rb:1046:5:1046:5 | b [element 2] | array_flow.rb:1049:10:1049:10 | b [element 2] | -| array_flow.rb:1046:9:1046:9 | a [element 2] | array_flow.rb:1046:9:1048:7 | call to reverse_each [element 2] | | array_flow.rb:1046:9:1046:9 | a [element 2] | array_flow.rb:1046:9:1048:7 | call to reverse_each [element 2] | | array_flow.rb:1046:9:1046:9 | a [element 2] | array_flow.rb:1046:28:1046:28 | x | -| array_flow.rb:1046:9:1046:9 | a [element 2] | array_flow.rb:1046:28:1046:28 | x | -| array_flow.rb:1046:9:1048:7 | call to reverse_each [element 2] | array_flow.rb:1046:5:1046:5 | b [element 2] | | array_flow.rb:1046:9:1048:7 | call to reverse_each [element 2] | array_flow.rb:1046:5:1046:5 | b [element 2] | | array_flow.rb:1046:28:1046:28 | x | array_flow.rb:1047:14:1047:14 | x | -| array_flow.rb:1046:28:1046:28 | x | array_flow.rb:1047:14:1047:14 | x | -| array_flow.rb:1049:10:1049:10 | b [element 2] | array_flow.rb:1049:10:1049:13 | ...[...] | | array_flow.rb:1049:10:1049:10 | b [element 2] | array_flow.rb:1049:10:1049:13 | ...[...] | | array_flow.rb:1053:5:1053:5 | a [element 2] | array_flow.rb:1054:5:1054:5 | a [element 2] | -| array_flow.rb:1053:5:1053:5 | a [element 2] | array_flow.rb:1054:5:1054:5 | a [element 2] | -| array_flow.rb:1053:16:1053:26 | call to source | array_flow.rb:1053:5:1053:5 | a [element 2] | | array_flow.rb:1053:16:1053:26 | call to source | array_flow.rb:1053:5:1053:5 | a [element 2] | | array_flow.rb:1054:5:1054:5 | a [element 2] | array_flow.rb:1054:18:1054:18 | x | -| array_flow.rb:1054:5:1054:5 | a [element 2] | array_flow.rb:1054:18:1054:18 | x | -| array_flow.rb:1054:18:1054:18 | x | array_flow.rb:1055:14:1055:14 | x | | array_flow.rb:1054:18:1054:18 | x | array_flow.rb:1055:14:1055:14 | x | | array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1065:9:1065:9 | a [element 0] | -| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1065:9:1065:9 | a [element 0] | -| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1071:9:1071:9 | a [element 0] | | array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1071:9:1071:9 | a [element 0] | | array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1077:9:1077:9 | a [element 0] | -| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1077:9:1077:9 | a [element 0] | -| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1083:9:1083:9 | a [element 0] | | array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1083:9:1083:9 | a [element 0] | | array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1065:9:1065:9 | a [element 2] | -| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1065:9:1065:9 | a [element 2] | -| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1071:9:1071:9 | a [element 2] | | array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1071:9:1071:9 | a [element 2] | | array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1077:9:1077:9 | a [element 2] | -| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1077:9:1077:9 | a [element 2] | -| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1083:9:1083:9 | a [element 2] | | array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1083:9:1083:9 | a [element 2] | | array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1065:9:1065:9 | a [element 3] | -| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1065:9:1065:9 | a [element 3] | -| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1071:9:1071:9 | a [element 3] | | array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1071:9:1071:9 | a [element 3] | | array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1077:9:1077:9 | a [element 3] | -| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1077:9:1077:9 | a [element 3] | -| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1083:9:1083:9 | a [element 3] | | array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1083:9:1083:9 | a [element 3] | | array_flow.rb:1063:10:1063:22 | call to source | array_flow.rb:1063:5:1063:5 | a [element 0] | -| array_flow.rb:1063:10:1063:22 | call to source | array_flow.rb:1063:5:1063:5 | a [element 0] | -| array_flow.rb:1063:28:1063:40 | call to source | array_flow.rb:1063:5:1063:5 | a [element 2] | | array_flow.rb:1063:28:1063:40 | call to source | array_flow.rb:1063:5:1063:5 | a [element 2] | | array_flow.rb:1063:43:1063:55 | call to source | array_flow.rb:1063:5:1063:5 | a [element 3] | -| array_flow.rb:1063:43:1063:55 | call to source | array_flow.rb:1063:5:1063:5 | a [element 3] | -| array_flow.rb:1065:5:1065:5 | b [element 1] | array_flow.rb:1067:10:1067:10 | b [element 1] | | array_flow.rb:1065:5:1065:5 | b [element 1] | array_flow.rb:1067:10:1067:10 | b [element 1] | | array_flow.rb:1065:5:1065:5 | b [element 2] | array_flow.rb:1068:10:1068:10 | b [element 2] | -| array_flow.rb:1065:5:1065:5 | b [element 2] | array_flow.rb:1068:10:1068:10 | b [element 2] | -| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1066:10:1066:10 | b [element] | | array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1066:10:1066:10 | b [element] | | array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1067:10:1067:10 | b [element] | -| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1067:10:1067:10 | b [element] | -| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1068:10:1068:10 | b [element] | | array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1068:10:1068:10 | b [element] | | array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1069:10:1069:10 | b [element] | -| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1069:10:1069:10 | b [element] | -| array_flow.rb:1065:9:1065:9 | a [element 0] | array_flow.rb:1065:9:1065:16 | call to rotate [element] | | array_flow.rb:1065:9:1065:9 | a [element 0] | array_flow.rb:1065:9:1065:16 | call to rotate [element] | | array_flow.rb:1065:9:1065:9 | a [element 2] | array_flow.rb:1065:9:1065:16 | call to rotate [element 1] | -| array_flow.rb:1065:9:1065:9 | a [element 2] | array_flow.rb:1065:9:1065:16 | call to rotate [element 1] | -| array_flow.rb:1065:9:1065:9 | a [element 3] | array_flow.rb:1065:9:1065:16 | call to rotate [element 2] | | array_flow.rb:1065:9:1065:9 | a [element 3] | array_flow.rb:1065:9:1065:16 | call to rotate [element 2] | | array_flow.rb:1065:9:1065:16 | call to rotate [element 1] | array_flow.rb:1065:5:1065:5 | b [element 1] | -| array_flow.rb:1065:9:1065:16 | call to rotate [element 1] | array_flow.rb:1065:5:1065:5 | b [element 1] | -| array_flow.rb:1065:9:1065:16 | call to rotate [element 2] | array_flow.rb:1065:5:1065:5 | b [element 2] | | array_flow.rb:1065:9:1065:16 | call to rotate [element 2] | array_flow.rb:1065:5:1065:5 | b [element 2] | | array_flow.rb:1065:9:1065:16 | call to rotate [element] | array_flow.rb:1065:5:1065:5 | b [element] | -| array_flow.rb:1065:9:1065:16 | call to rotate [element] | array_flow.rb:1065:5:1065:5 | b [element] | -| array_flow.rb:1066:10:1066:10 | b [element] | array_flow.rb:1066:10:1066:13 | ...[...] | | array_flow.rb:1066:10:1066:10 | b [element] | array_flow.rb:1066:10:1066:13 | ...[...] | | array_flow.rb:1067:10:1067:10 | b [element 1] | array_flow.rb:1067:10:1067:13 | ...[...] | -| array_flow.rb:1067:10:1067:10 | b [element 1] | array_flow.rb:1067:10:1067:13 | ...[...] | -| array_flow.rb:1067:10:1067:10 | b [element] | array_flow.rb:1067:10:1067:13 | ...[...] | | array_flow.rb:1067:10:1067:10 | b [element] | array_flow.rb:1067:10:1067:13 | ...[...] | | array_flow.rb:1068:10:1068:10 | b [element 2] | array_flow.rb:1068:10:1068:13 | ...[...] | -| array_flow.rb:1068:10:1068:10 | b [element 2] | array_flow.rb:1068:10:1068:13 | ...[...] | -| array_flow.rb:1068:10:1068:10 | b [element] | array_flow.rb:1068:10:1068:13 | ...[...] | | array_flow.rb:1068:10:1068:10 | b [element] | array_flow.rb:1068:10:1068:13 | ...[...] | | array_flow.rb:1069:10:1069:10 | b [element] | array_flow.rb:1069:10:1069:13 | ...[...] | -| array_flow.rb:1069:10:1069:10 | b [element] | array_flow.rb:1069:10:1069:13 | ...[...] | -| array_flow.rb:1071:5:1071:5 | b [element 0] | array_flow.rb:1072:10:1072:10 | b [element 0] | | array_flow.rb:1071:5:1071:5 | b [element 0] | array_flow.rb:1072:10:1072:10 | b [element 0] | | array_flow.rb:1071:5:1071:5 | b [element 1] | array_flow.rb:1073:10:1073:10 | b [element 1] | -| array_flow.rb:1071:5:1071:5 | b [element 1] | array_flow.rb:1073:10:1073:10 | b [element 1] | -| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1072:10:1072:10 | b [element] | | array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1072:10:1072:10 | b [element] | | array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1073:10:1073:10 | b [element] | -| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1073:10:1073:10 | b [element] | -| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1074:10:1074:10 | b [element] | | array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1074:10:1074:10 | b [element] | | array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1075:10:1075:10 | b [element] | -| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1075:10:1075:10 | b [element] | -| array_flow.rb:1071:9:1071:9 | a [element 0] | array_flow.rb:1071:9:1071:19 | call to rotate [element] | | array_flow.rb:1071:9:1071:9 | a [element 0] | array_flow.rb:1071:9:1071:19 | call to rotate [element] | | array_flow.rb:1071:9:1071:9 | a [element 2] | array_flow.rb:1071:9:1071:19 | call to rotate [element 0] | -| array_flow.rb:1071:9:1071:9 | a [element 2] | array_flow.rb:1071:9:1071:19 | call to rotate [element 0] | -| array_flow.rb:1071:9:1071:9 | a [element 3] | array_flow.rb:1071:9:1071:19 | call to rotate [element 1] | | array_flow.rb:1071:9:1071:9 | a [element 3] | array_flow.rb:1071:9:1071:19 | call to rotate [element 1] | | array_flow.rb:1071:9:1071:19 | call to rotate [element 0] | array_flow.rb:1071:5:1071:5 | b [element 0] | -| array_flow.rb:1071:9:1071:19 | call to rotate [element 0] | array_flow.rb:1071:5:1071:5 | b [element 0] | -| array_flow.rb:1071:9:1071:19 | call to rotate [element 1] | array_flow.rb:1071:5:1071:5 | b [element 1] | | array_flow.rb:1071:9:1071:19 | call to rotate [element 1] | array_flow.rb:1071:5:1071:5 | b [element 1] | | array_flow.rb:1071:9:1071:19 | call to rotate [element] | array_flow.rb:1071:5:1071:5 | b [element] | -| array_flow.rb:1071:9:1071:19 | call to rotate [element] | array_flow.rb:1071:5:1071:5 | b [element] | -| array_flow.rb:1072:10:1072:10 | b [element 0] | array_flow.rb:1072:10:1072:13 | ...[...] | | array_flow.rb:1072:10:1072:10 | b [element 0] | array_flow.rb:1072:10:1072:13 | ...[...] | | array_flow.rb:1072:10:1072:10 | b [element] | array_flow.rb:1072:10:1072:13 | ...[...] | -| array_flow.rb:1072:10:1072:10 | b [element] | array_flow.rb:1072:10:1072:13 | ...[...] | -| array_flow.rb:1073:10:1073:10 | b [element 1] | array_flow.rb:1073:10:1073:13 | ...[...] | | array_flow.rb:1073:10:1073:10 | b [element 1] | array_flow.rb:1073:10:1073:13 | ...[...] | | array_flow.rb:1073:10:1073:10 | b [element] | array_flow.rb:1073:10:1073:13 | ...[...] | -| array_flow.rb:1073:10:1073:10 | b [element] | array_flow.rb:1073:10:1073:13 | ...[...] | -| array_flow.rb:1074:10:1074:10 | b [element] | array_flow.rb:1074:10:1074:13 | ...[...] | | array_flow.rb:1074:10:1074:10 | b [element] | array_flow.rb:1074:10:1074:13 | ...[...] | | array_flow.rb:1075:10:1075:10 | b [element] | array_flow.rb:1075:10:1075:13 | ...[...] | -| array_flow.rb:1075:10:1075:10 | b [element] | array_flow.rb:1075:10:1075:13 | ...[...] | -| array_flow.rb:1077:5:1077:5 | b [element 0] | array_flow.rb:1078:10:1078:10 | b [element 0] | | array_flow.rb:1077:5:1077:5 | b [element 0] | array_flow.rb:1078:10:1078:10 | b [element 0] | | array_flow.rb:1077:5:1077:5 | b [element 2] | array_flow.rb:1080:10:1080:10 | b [element 2] | -| array_flow.rb:1077:5:1077:5 | b [element 2] | array_flow.rb:1080:10:1080:10 | b [element 2] | -| array_flow.rb:1077:5:1077:5 | b [element 3] | array_flow.rb:1081:10:1081:10 | b [element 3] | | array_flow.rb:1077:5:1077:5 | b [element 3] | array_flow.rb:1081:10:1081:10 | b [element 3] | | array_flow.rb:1077:9:1077:9 | a [element 0] | array_flow.rb:1077:9:1077:19 | call to rotate [element 0] | -| array_flow.rb:1077:9:1077:9 | a [element 0] | array_flow.rb:1077:9:1077:19 | call to rotate [element 0] | -| array_flow.rb:1077:9:1077:9 | a [element 2] | array_flow.rb:1077:9:1077:19 | call to rotate [element 2] | | array_flow.rb:1077:9:1077:9 | a [element 2] | array_flow.rb:1077:9:1077:19 | call to rotate [element 2] | | array_flow.rb:1077:9:1077:9 | a [element 3] | array_flow.rb:1077:9:1077:19 | call to rotate [element 3] | -| array_flow.rb:1077:9:1077:9 | a [element 3] | array_flow.rb:1077:9:1077:19 | call to rotate [element 3] | -| array_flow.rb:1077:9:1077:19 | call to rotate [element 0] | array_flow.rb:1077:5:1077:5 | b [element 0] | | array_flow.rb:1077:9:1077:19 | call to rotate [element 0] | array_flow.rb:1077:5:1077:5 | b [element 0] | | array_flow.rb:1077:9:1077:19 | call to rotate [element 2] | array_flow.rb:1077:5:1077:5 | b [element 2] | -| array_flow.rb:1077:9:1077:19 | call to rotate [element 2] | array_flow.rb:1077:5:1077:5 | b [element 2] | -| array_flow.rb:1077:9:1077:19 | call to rotate [element 3] | array_flow.rb:1077:5:1077:5 | b [element 3] | | array_flow.rb:1077:9:1077:19 | call to rotate [element 3] | array_flow.rb:1077:5:1077:5 | b [element 3] | | array_flow.rb:1078:10:1078:10 | b [element 0] | array_flow.rb:1078:10:1078:13 | ...[...] | -| array_flow.rb:1078:10:1078:10 | b [element 0] | array_flow.rb:1078:10:1078:13 | ...[...] | -| array_flow.rb:1080:10:1080:10 | b [element 2] | array_flow.rb:1080:10:1080:13 | ...[...] | | array_flow.rb:1080:10:1080:10 | b [element 2] | array_flow.rb:1080:10:1080:13 | ...[...] | | array_flow.rb:1081:10:1081:10 | b [element 3] | array_flow.rb:1081:10:1081:13 | ...[...] | -| array_flow.rb:1081:10:1081:10 | b [element 3] | array_flow.rb:1081:10:1081:13 | ...[...] | -| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1084:10:1084:10 | b [element] | | array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1084:10:1084:10 | b [element] | | array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1085:10:1085:10 | b [element] | -| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1085:10:1085:10 | b [element] | -| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1086:10:1086:10 | b [element] | | array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1086:10:1086:10 | b [element] | | array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1087:10:1087:10 | b [element] | -| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1087:10:1087:10 | b [element] | -| array_flow.rb:1083:9:1083:9 | a [element 0] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | | array_flow.rb:1083:9:1083:9 | a [element 0] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | | array_flow.rb:1083:9:1083:9 | a [element 2] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | -| array_flow.rb:1083:9:1083:9 | a [element 2] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | -| array_flow.rb:1083:9:1083:9 | a [element 3] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | | array_flow.rb:1083:9:1083:9 | a [element 3] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | | array_flow.rb:1083:9:1083:19 | call to rotate [element] | array_flow.rb:1083:5:1083:5 | b [element] | -| array_flow.rb:1083:9:1083:19 | call to rotate [element] | array_flow.rb:1083:5:1083:5 | b [element] | -| array_flow.rb:1084:10:1084:10 | b [element] | array_flow.rb:1084:10:1084:13 | ...[...] | | array_flow.rb:1084:10:1084:10 | b [element] | array_flow.rb:1084:10:1084:13 | ...[...] | | array_flow.rb:1085:10:1085:10 | b [element] | array_flow.rb:1085:10:1085:13 | ...[...] | -| array_flow.rb:1085:10:1085:10 | b [element] | array_flow.rb:1085:10:1085:13 | ...[...] | -| array_flow.rb:1086:10:1086:10 | b [element] | array_flow.rb:1086:10:1086:13 | ...[...] | | array_flow.rb:1086:10:1086:10 | b [element] | array_flow.rb:1086:10:1086:13 | ...[...] | | array_flow.rb:1087:10:1087:10 | b [element] | array_flow.rb:1087:10:1087:13 | ...[...] | -| array_flow.rb:1087:10:1087:10 | b [element] | array_flow.rb:1087:10:1087:13 | ...[...] | -| array_flow.rb:1095:5:1095:5 | a [element 0] | array_flow.rb:1096:9:1096:9 | a [element 0] | | array_flow.rb:1095:5:1095:5 | a [element 0] | array_flow.rb:1096:9:1096:9 | a [element 0] | | array_flow.rb:1095:5:1095:5 | a [element 2] | array_flow.rb:1096:9:1096:9 | a [element 2] | -| array_flow.rb:1095:5:1095:5 | a [element 2] | array_flow.rb:1096:9:1096:9 | a [element 2] | -| array_flow.rb:1095:5:1095:5 | a [element 3] | array_flow.rb:1096:9:1096:9 | a [element 3] | | array_flow.rb:1095:5:1095:5 | a [element 3] | array_flow.rb:1096:9:1096:9 | a [element 3] | | array_flow.rb:1095:10:1095:22 | call to source | array_flow.rb:1095:5:1095:5 | a [element 0] | -| array_flow.rb:1095:10:1095:22 | call to source | array_flow.rb:1095:5:1095:5 | a [element 0] | -| array_flow.rb:1095:28:1095:40 | call to source | array_flow.rb:1095:5:1095:5 | a [element 2] | | array_flow.rb:1095:28:1095:40 | call to source | array_flow.rb:1095:5:1095:5 | a [element 2] | | array_flow.rb:1095:43:1095:55 | call to source | array_flow.rb:1095:5:1095:5 | a [element 3] | -| array_flow.rb:1095:43:1095:55 | call to source | array_flow.rb:1095:5:1095:5 | a [element 3] | -| array_flow.rb:1096:5:1096:5 | b [element 1] | array_flow.rb:1102:10:1102:10 | b [element 1] | | array_flow.rb:1096:5:1096:5 | b [element 1] | array_flow.rb:1102:10:1102:10 | b [element 1] | | array_flow.rb:1096:5:1096:5 | b [element 2] | array_flow.rb:1103:10:1103:10 | b [element 2] | -| array_flow.rb:1096:5:1096:5 | b [element 2] | array_flow.rb:1103:10:1103:10 | b [element 2] | -| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1101:10:1101:10 | b [element] | | array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1101:10:1101:10 | b [element] | | array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1102:10:1102:10 | b [element] | -| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1102:10:1102:10 | b [element] | -| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1103:10:1103:10 | b [element] | | array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1103:10:1103:10 | b [element] | | array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1104:10:1104:10 | b [element] | -| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1104:10:1104:10 | b [element] | -| array_flow.rb:1096:9:1096:9 | [post] a [element 1] | array_flow.rb:1098:10:1098:10 | a [element 1] | | array_flow.rb:1096:9:1096:9 | [post] a [element 1] | array_flow.rb:1098:10:1098:10 | a [element 1] | | array_flow.rb:1096:9:1096:9 | [post] a [element 2] | array_flow.rb:1099:10:1099:10 | a [element 2] | -| array_flow.rb:1096:9:1096:9 | [post] a [element 2] | array_flow.rb:1099:10:1099:10 | a [element 2] | -| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1097:10:1097:10 | a [element] | | array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1097:10:1097:10 | a [element] | | array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1098:10:1098:10 | a [element] | -| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1098:10:1098:10 | a [element] | -| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1099:10:1099:10 | a [element] | | array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1099:10:1099:10 | a [element] | | array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1100:10:1100:10 | a [element] | -| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1100:10:1100:10 | a [element] | -| array_flow.rb:1096:9:1096:9 | a [element 0] | array_flow.rb:1096:9:1096:9 | [post] a [element] | | array_flow.rb:1096:9:1096:9 | a [element 0] | array_flow.rb:1096:9:1096:9 | [post] a [element] | | array_flow.rb:1096:9:1096:9 | a [element 0] | array_flow.rb:1096:9:1096:17 | call to rotate! [element] | -| array_flow.rb:1096:9:1096:9 | a [element 0] | array_flow.rb:1096:9:1096:17 | call to rotate! [element] | -| array_flow.rb:1096:9:1096:9 | a [element 2] | array_flow.rb:1096:9:1096:9 | [post] a [element 1] | | array_flow.rb:1096:9:1096:9 | a [element 2] | array_flow.rb:1096:9:1096:9 | [post] a [element 1] | | array_flow.rb:1096:9:1096:9 | a [element 2] | array_flow.rb:1096:9:1096:17 | call to rotate! [element 1] | -| array_flow.rb:1096:9:1096:9 | a [element 2] | array_flow.rb:1096:9:1096:17 | call to rotate! [element 1] | -| array_flow.rb:1096:9:1096:9 | a [element 3] | array_flow.rb:1096:9:1096:9 | [post] a [element 2] | | array_flow.rb:1096:9:1096:9 | a [element 3] | array_flow.rb:1096:9:1096:9 | [post] a [element 2] | | array_flow.rb:1096:9:1096:9 | a [element 3] | array_flow.rb:1096:9:1096:17 | call to rotate! [element 2] | -| array_flow.rb:1096:9:1096:9 | a [element 3] | array_flow.rb:1096:9:1096:17 | call to rotate! [element 2] | -| array_flow.rb:1096:9:1096:17 | call to rotate! [element 1] | array_flow.rb:1096:5:1096:5 | b [element 1] | | array_flow.rb:1096:9:1096:17 | call to rotate! [element 1] | array_flow.rb:1096:5:1096:5 | b [element 1] | | array_flow.rb:1096:9:1096:17 | call to rotate! [element 2] | array_flow.rb:1096:5:1096:5 | b [element 2] | -| array_flow.rb:1096:9:1096:17 | call to rotate! [element 2] | array_flow.rb:1096:5:1096:5 | b [element 2] | -| array_flow.rb:1096:9:1096:17 | call to rotate! [element] | array_flow.rb:1096:5:1096:5 | b [element] | | array_flow.rb:1096:9:1096:17 | call to rotate! [element] | array_flow.rb:1096:5:1096:5 | b [element] | | array_flow.rb:1097:10:1097:10 | a [element] | array_flow.rb:1097:10:1097:13 | ...[...] | -| array_flow.rb:1097:10:1097:10 | a [element] | array_flow.rb:1097:10:1097:13 | ...[...] | -| array_flow.rb:1098:10:1098:10 | a [element 1] | array_flow.rb:1098:10:1098:13 | ...[...] | | array_flow.rb:1098:10:1098:10 | a [element 1] | array_flow.rb:1098:10:1098:13 | ...[...] | | array_flow.rb:1098:10:1098:10 | a [element] | array_flow.rb:1098:10:1098:13 | ...[...] | -| array_flow.rb:1098:10:1098:10 | a [element] | array_flow.rb:1098:10:1098:13 | ...[...] | -| array_flow.rb:1099:10:1099:10 | a [element 2] | array_flow.rb:1099:10:1099:13 | ...[...] | | array_flow.rb:1099:10:1099:10 | a [element 2] | array_flow.rb:1099:10:1099:13 | ...[...] | | array_flow.rb:1099:10:1099:10 | a [element] | array_flow.rb:1099:10:1099:13 | ...[...] | -| array_flow.rb:1099:10:1099:10 | a [element] | array_flow.rb:1099:10:1099:13 | ...[...] | -| array_flow.rb:1100:10:1100:10 | a [element] | array_flow.rb:1100:10:1100:13 | ...[...] | | array_flow.rb:1100:10:1100:10 | a [element] | array_flow.rb:1100:10:1100:13 | ...[...] | | array_flow.rb:1101:10:1101:10 | b [element] | array_flow.rb:1101:10:1101:13 | ...[...] | -| array_flow.rb:1101:10:1101:10 | b [element] | array_flow.rb:1101:10:1101:13 | ...[...] | -| array_flow.rb:1102:10:1102:10 | b [element 1] | array_flow.rb:1102:10:1102:13 | ...[...] | | array_flow.rb:1102:10:1102:10 | b [element 1] | array_flow.rb:1102:10:1102:13 | ...[...] | | array_flow.rb:1102:10:1102:10 | b [element] | array_flow.rb:1102:10:1102:13 | ...[...] | -| array_flow.rb:1102:10:1102:10 | b [element] | array_flow.rb:1102:10:1102:13 | ...[...] | -| array_flow.rb:1103:10:1103:10 | b [element 2] | array_flow.rb:1103:10:1103:13 | ...[...] | | array_flow.rb:1103:10:1103:10 | b [element 2] | array_flow.rb:1103:10:1103:13 | ...[...] | | array_flow.rb:1103:10:1103:10 | b [element] | array_flow.rb:1103:10:1103:13 | ...[...] | -| array_flow.rb:1103:10:1103:10 | b [element] | array_flow.rb:1103:10:1103:13 | ...[...] | -| array_flow.rb:1104:10:1104:10 | b [element] | array_flow.rb:1104:10:1104:13 | ...[...] | | array_flow.rb:1104:10:1104:10 | b [element] | array_flow.rb:1104:10:1104:13 | ...[...] | | array_flow.rb:1106:5:1106:5 | a [element 0] | array_flow.rb:1107:9:1107:9 | a [element 0] | -| array_flow.rb:1106:5:1106:5 | a [element 0] | array_flow.rb:1107:9:1107:9 | a [element 0] | -| array_flow.rb:1106:5:1106:5 | a [element 2] | array_flow.rb:1107:9:1107:9 | a [element 2] | | array_flow.rb:1106:5:1106:5 | a [element 2] | array_flow.rb:1107:9:1107:9 | a [element 2] | | array_flow.rb:1106:5:1106:5 | a [element 3] | array_flow.rb:1107:9:1107:9 | a [element 3] | -| array_flow.rb:1106:5:1106:5 | a [element 3] | array_flow.rb:1107:9:1107:9 | a [element 3] | -| array_flow.rb:1106:10:1106:22 | call to source | array_flow.rb:1106:5:1106:5 | a [element 0] | | array_flow.rb:1106:10:1106:22 | call to source | array_flow.rb:1106:5:1106:5 | a [element 0] | | array_flow.rb:1106:28:1106:40 | call to source | array_flow.rb:1106:5:1106:5 | a [element 2] | -| array_flow.rb:1106:28:1106:40 | call to source | array_flow.rb:1106:5:1106:5 | a [element 2] | -| array_flow.rb:1106:43:1106:55 | call to source | array_flow.rb:1106:5:1106:5 | a [element 3] | | array_flow.rb:1106:43:1106:55 | call to source | array_flow.rb:1106:5:1106:5 | a [element 3] | | array_flow.rb:1107:5:1107:5 | b [element 0] | array_flow.rb:1112:10:1112:10 | b [element 0] | -| array_flow.rb:1107:5:1107:5 | b [element 0] | array_flow.rb:1112:10:1112:10 | b [element 0] | -| array_flow.rb:1107:5:1107:5 | b [element 1] | array_flow.rb:1113:10:1113:10 | b [element 1] | | array_flow.rb:1107:5:1107:5 | b [element 1] | array_flow.rb:1113:10:1113:10 | b [element 1] | | array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1112:10:1112:10 | b [element] | -| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1112:10:1112:10 | b [element] | -| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1113:10:1113:10 | b [element] | | array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1113:10:1113:10 | b [element] | | array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1114:10:1114:10 | b [element] | -| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1114:10:1114:10 | b [element] | -| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1115:10:1115:10 | b [element] | | array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1115:10:1115:10 | b [element] | | array_flow.rb:1107:9:1107:9 | [post] a [element 0] | array_flow.rb:1108:10:1108:10 | a [element 0] | -| array_flow.rb:1107:9:1107:9 | [post] a [element 0] | array_flow.rb:1108:10:1108:10 | a [element 0] | -| array_flow.rb:1107:9:1107:9 | [post] a [element 1] | array_flow.rb:1109:10:1109:10 | a [element 1] | | array_flow.rb:1107:9:1107:9 | [post] a [element 1] | array_flow.rb:1109:10:1109:10 | a [element 1] | | array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1108:10:1108:10 | a [element] | -| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1108:10:1108:10 | a [element] | -| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1109:10:1109:10 | a [element] | | array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1109:10:1109:10 | a [element] | | array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1110:10:1110:10 | a [element] | -| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1110:10:1110:10 | a [element] | -| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1111:10:1111:10 | a [element] | | array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1111:10:1111:10 | a [element] | | array_flow.rb:1107:9:1107:9 | a [element 0] | array_flow.rb:1107:9:1107:9 | [post] a [element] | -| array_flow.rb:1107:9:1107:9 | a [element 0] | array_flow.rb:1107:9:1107:9 | [post] a [element] | -| array_flow.rb:1107:9:1107:9 | a [element 0] | array_flow.rb:1107:9:1107:20 | call to rotate! [element] | | array_flow.rb:1107:9:1107:9 | a [element 0] | array_flow.rb:1107:9:1107:20 | call to rotate! [element] | | array_flow.rb:1107:9:1107:9 | a [element 2] | array_flow.rb:1107:9:1107:9 | [post] a [element 0] | -| array_flow.rb:1107:9:1107:9 | a [element 2] | array_flow.rb:1107:9:1107:9 | [post] a [element 0] | -| array_flow.rb:1107:9:1107:9 | a [element 2] | array_flow.rb:1107:9:1107:20 | call to rotate! [element 0] | | array_flow.rb:1107:9:1107:9 | a [element 2] | array_flow.rb:1107:9:1107:20 | call to rotate! [element 0] | | array_flow.rb:1107:9:1107:9 | a [element 3] | array_flow.rb:1107:9:1107:9 | [post] a [element 1] | -| array_flow.rb:1107:9:1107:9 | a [element 3] | array_flow.rb:1107:9:1107:9 | [post] a [element 1] | -| array_flow.rb:1107:9:1107:9 | a [element 3] | array_flow.rb:1107:9:1107:20 | call to rotate! [element 1] | | array_flow.rb:1107:9:1107:9 | a [element 3] | array_flow.rb:1107:9:1107:20 | call to rotate! [element 1] | | array_flow.rb:1107:9:1107:20 | call to rotate! [element 0] | array_flow.rb:1107:5:1107:5 | b [element 0] | -| array_flow.rb:1107:9:1107:20 | call to rotate! [element 0] | array_flow.rb:1107:5:1107:5 | b [element 0] | -| array_flow.rb:1107:9:1107:20 | call to rotate! [element 1] | array_flow.rb:1107:5:1107:5 | b [element 1] | | array_flow.rb:1107:9:1107:20 | call to rotate! [element 1] | array_flow.rb:1107:5:1107:5 | b [element 1] | | array_flow.rb:1107:9:1107:20 | call to rotate! [element] | array_flow.rb:1107:5:1107:5 | b [element] | -| array_flow.rb:1107:9:1107:20 | call to rotate! [element] | array_flow.rb:1107:5:1107:5 | b [element] | -| array_flow.rb:1108:10:1108:10 | a [element 0] | array_flow.rb:1108:10:1108:13 | ...[...] | | array_flow.rb:1108:10:1108:10 | a [element 0] | array_flow.rb:1108:10:1108:13 | ...[...] | | array_flow.rb:1108:10:1108:10 | a [element] | array_flow.rb:1108:10:1108:13 | ...[...] | -| array_flow.rb:1108:10:1108:10 | a [element] | array_flow.rb:1108:10:1108:13 | ...[...] | -| array_flow.rb:1109:10:1109:10 | a [element 1] | array_flow.rb:1109:10:1109:13 | ...[...] | | array_flow.rb:1109:10:1109:10 | a [element 1] | array_flow.rb:1109:10:1109:13 | ...[...] | | array_flow.rb:1109:10:1109:10 | a [element] | array_flow.rb:1109:10:1109:13 | ...[...] | -| array_flow.rb:1109:10:1109:10 | a [element] | array_flow.rb:1109:10:1109:13 | ...[...] | -| array_flow.rb:1110:10:1110:10 | a [element] | array_flow.rb:1110:10:1110:13 | ...[...] | | array_flow.rb:1110:10:1110:10 | a [element] | array_flow.rb:1110:10:1110:13 | ...[...] | | array_flow.rb:1111:10:1111:10 | a [element] | array_flow.rb:1111:10:1111:13 | ...[...] | -| array_flow.rb:1111:10:1111:10 | a [element] | array_flow.rb:1111:10:1111:13 | ...[...] | -| array_flow.rb:1112:10:1112:10 | b [element 0] | array_flow.rb:1112:10:1112:13 | ...[...] | | array_flow.rb:1112:10:1112:10 | b [element 0] | array_flow.rb:1112:10:1112:13 | ...[...] | | array_flow.rb:1112:10:1112:10 | b [element] | array_flow.rb:1112:10:1112:13 | ...[...] | -| array_flow.rb:1112:10:1112:10 | b [element] | array_flow.rb:1112:10:1112:13 | ...[...] | -| array_flow.rb:1113:10:1113:10 | b [element 1] | array_flow.rb:1113:10:1113:13 | ...[...] | | array_flow.rb:1113:10:1113:10 | b [element 1] | array_flow.rb:1113:10:1113:13 | ...[...] | | array_flow.rb:1113:10:1113:10 | b [element] | array_flow.rb:1113:10:1113:13 | ...[...] | -| array_flow.rb:1113:10:1113:10 | b [element] | array_flow.rb:1113:10:1113:13 | ...[...] | -| array_flow.rb:1114:10:1114:10 | b [element] | array_flow.rb:1114:10:1114:13 | ...[...] | | array_flow.rb:1114:10:1114:10 | b [element] | array_flow.rb:1114:10:1114:13 | ...[...] | | array_flow.rb:1115:10:1115:10 | b [element] | array_flow.rb:1115:10:1115:13 | ...[...] | -| array_flow.rb:1115:10:1115:10 | b [element] | array_flow.rb:1115:10:1115:13 | ...[...] | -| array_flow.rb:1117:5:1117:5 | a [element 0] | array_flow.rb:1118:9:1118:9 | a [element 0] | | array_flow.rb:1117:5:1117:5 | a [element 0] | array_flow.rb:1118:9:1118:9 | a [element 0] | | array_flow.rb:1117:5:1117:5 | a [element 2] | array_flow.rb:1118:9:1118:9 | a [element 2] | -| array_flow.rb:1117:5:1117:5 | a [element 2] | array_flow.rb:1118:9:1118:9 | a [element 2] | -| array_flow.rb:1117:5:1117:5 | a [element 3] | array_flow.rb:1118:9:1118:9 | a [element 3] | | array_flow.rb:1117:5:1117:5 | a [element 3] | array_flow.rb:1118:9:1118:9 | a [element 3] | | array_flow.rb:1117:10:1117:22 | call to source | array_flow.rb:1117:5:1117:5 | a [element 0] | -| array_flow.rb:1117:10:1117:22 | call to source | array_flow.rb:1117:5:1117:5 | a [element 0] | -| array_flow.rb:1117:28:1117:40 | call to source | array_flow.rb:1117:5:1117:5 | a [element 2] | | array_flow.rb:1117:28:1117:40 | call to source | array_flow.rb:1117:5:1117:5 | a [element 2] | | array_flow.rb:1117:43:1117:55 | call to source | array_flow.rb:1117:5:1117:5 | a [element 3] | -| array_flow.rb:1117:43:1117:55 | call to source | array_flow.rb:1117:5:1117:5 | a [element 3] | -| array_flow.rb:1118:5:1118:5 | b [element 0] | array_flow.rb:1123:10:1123:10 | b [element 0] | | array_flow.rb:1118:5:1118:5 | b [element 0] | array_flow.rb:1123:10:1123:10 | b [element 0] | | array_flow.rb:1118:5:1118:5 | b [element 2] | array_flow.rb:1125:10:1125:10 | b [element 2] | -| array_flow.rb:1118:5:1118:5 | b [element 2] | array_flow.rb:1125:10:1125:10 | b [element 2] | -| array_flow.rb:1118:5:1118:5 | b [element 3] | array_flow.rb:1126:10:1126:10 | b [element 3] | | array_flow.rb:1118:5:1118:5 | b [element 3] | array_flow.rb:1126:10:1126:10 | b [element 3] | | array_flow.rb:1118:9:1118:9 | [post] a [element 0] | array_flow.rb:1119:10:1119:10 | a [element 0] | -| array_flow.rb:1118:9:1118:9 | [post] a [element 0] | array_flow.rb:1119:10:1119:10 | a [element 0] | -| array_flow.rb:1118:9:1118:9 | [post] a [element 2] | array_flow.rb:1121:10:1121:10 | a [element 2] | | array_flow.rb:1118:9:1118:9 | [post] a [element 2] | array_flow.rb:1121:10:1121:10 | a [element 2] | | array_flow.rb:1118:9:1118:9 | [post] a [element 3] | array_flow.rb:1122:10:1122:10 | a [element 3] | -| array_flow.rb:1118:9:1118:9 | [post] a [element 3] | array_flow.rb:1122:10:1122:10 | a [element 3] | -| array_flow.rb:1118:9:1118:9 | a [element 0] | array_flow.rb:1118:9:1118:9 | [post] a [element 0] | | array_flow.rb:1118:9:1118:9 | a [element 0] | array_flow.rb:1118:9:1118:9 | [post] a [element 0] | | array_flow.rb:1118:9:1118:9 | a [element 0] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 0] | -| array_flow.rb:1118:9:1118:9 | a [element 0] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 0] | -| array_flow.rb:1118:9:1118:9 | a [element 2] | array_flow.rb:1118:9:1118:9 | [post] a [element 2] | | array_flow.rb:1118:9:1118:9 | a [element 2] | array_flow.rb:1118:9:1118:9 | [post] a [element 2] | | array_flow.rb:1118:9:1118:9 | a [element 2] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 2] | -| array_flow.rb:1118:9:1118:9 | a [element 2] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 2] | -| array_flow.rb:1118:9:1118:9 | a [element 3] | array_flow.rb:1118:9:1118:9 | [post] a [element 3] | | array_flow.rb:1118:9:1118:9 | a [element 3] | array_flow.rb:1118:9:1118:9 | [post] a [element 3] | | array_flow.rb:1118:9:1118:9 | a [element 3] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 3] | -| array_flow.rb:1118:9:1118:9 | a [element 3] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 3] | -| array_flow.rb:1118:9:1118:20 | call to rotate! [element 0] | array_flow.rb:1118:5:1118:5 | b [element 0] | | array_flow.rb:1118:9:1118:20 | call to rotate! [element 0] | array_flow.rb:1118:5:1118:5 | b [element 0] | | array_flow.rb:1118:9:1118:20 | call to rotate! [element 2] | array_flow.rb:1118:5:1118:5 | b [element 2] | -| array_flow.rb:1118:9:1118:20 | call to rotate! [element 2] | array_flow.rb:1118:5:1118:5 | b [element 2] | -| array_flow.rb:1118:9:1118:20 | call to rotate! [element 3] | array_flow.rb:1118:5:1118:5 | b [element 3] | | array_flow.rb:1118:9:1118:20 | call to rotate! [element 3] | array_flow.rb:1118:5:1118:5 | b [element 3] | | array_flow.rb:1119:10:1119:10 | a [element 0] | array_flow.rb:1119:10:1119:13 | ...[...] | -| array_flow.rb:1119:10:1119:10 | a [element 0] | array_flow.rb:1119:10:1119:13 | ...[...] | -| array_flow.rb:1121:10:1121:10 | a [element 2] | array_flow.rb:1121:10:1121:13 | ...[...] | | array_flow.rb:1121:10:1121:10 | a [element 2] | array_flow.rb:1121:10:1121:13 | ...[...] | | array_flow.rb:1122:10:1122:10 | a [element 3] | array_flow.rb:1122:10:1122:13 | ...[...] | -| array_flow.rb:1122:10:1122:10 | a [element 3] | array_flow.rb:1122:10:1122:13 | ...[...] | -| array_flow.rb:1123:10:1123:10 | b [element 0] | array_flow.rb:1123:10:1123:13 | ...[...] | | array_flow.rb:1123:10:1123:10 | b [element 0] | array_flow.rb:1123:10:1123:13 | ...[...] | | array_flow.rb:1125:10:1125:10 | b [element 2] | array_flow.rb:1125:10:1125:13 | ...[...] | -| array_flow.rb:1125:10:1125:10 | b [element 2] | array_flow.rb:1125:10:1125:13 | ...[...] | -| array_flow.rb:1126:10:1126:10 | b [element 3] | array_flow.rb:1126:10:1126:13 | ...[...] | | array_flow.rb:1126:10:1126:10 | b [element 3] | array_flow.rb:1126:10:1126:13 | ...[...] | | array_flow.rb:1128:5:1128:5 | a [element 0] | array_flow.rb:1129:9:1129:9 | a [element 0] | -| array_flow.rb:1128:5:1128:5 | a [element 0] | array_flow.rb:1129:9:1129:9 | a [element 0] | -| array_flow.rb:1128:5:1128:5 | a [element 2] | array_flow.rb:1129:9:1129:9 | a [element 2] | | array_flow.rb:1128:5:1128:5 | a [element 2] | array_flow.rb:1129:9:1129:9 | a [element 2] | | array_flow.rb:1128:5:1128:5 | a [element 3] | array_flow.rb:1129:9:1129:9 | a [element 3] | -| array_flow.rb:1128:5:1128:5 | a [element 3] | array_flow.rb:1129:9:1129:9 | a [element 3] | -| array_flow.rb:1128:10:1128:22 | call to source | array_flow.rb:1128:5:1128:5 | a [element 0] | | array_flow.rb:1128:10:1128:22 | call to source | array_flow.rb:1128:5:1128:5 | a [element 0] | | array_flow.rb:1128:28:1128:40 | call to source | array_flow.rb:1128:5:1128:5 | a [element 2] | -| array_flow.rb:1128:28:1128:40 | call to source | array_flow.rb:1128:5:1128:5 | a [element 2] | -| array_flow.rb:1128:43:1128:55 | call to source | array_flow.rb:1128:5:1128:5 | a [element 3] | | array_flow.rb:1128:43:1128:55 | call to source | array_flow.rb:1128:5:1128:5 | a [element 3] | | array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1134:10:1134:10 | b [element] | -| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1134:10:1134:10 | b [element] | -| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1135:10:1135:10 | b [element] | | array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1135:10:1135:10 | b [element] | | array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1136:10:1136:10 | b [element] | -| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1136:10:1136:10 | b [element] | -| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1137:10:1137:10 | b [element] | | array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1137:10:1137:10 | b [element] | | array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1130:10:1130:10 | a [element] | -| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1130:10:1130:10 | a [element] | -| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1131:10:1131:10 | a [element] | | array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1131:10:1131:10 | a [element] | | array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1132:10:1132:10 | a [element] | -| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1132:10:1132:10 | a [element] | -| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1133:10:1133:10 | a [element] | | array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1133:10:1133:10 | a [element] | | array_flow.rb:1129:9:1129:9 | a [element 0] | array_flow.rb:1129:9:1129:9 | [post] a [element] | -| array_flow.rb:1129:9:1129:9 | a [element 0] | array_flow.rb:1129:9:1129:9 | [post] a [element] | -| array_flow.rb:1129:9:1129:9 | a [element 0] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | | array_flow.rb:1129:9:1129:9 | a [element 0] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | | array_flow.rb:1129:9:1129:9 | a [element 2] | array_flow.rb:1129:9:1129:9 | [post] a [element] | -| array_flow.rb:1129:9:1129:9 | a [element 2] | array_flow.rb:1129:9:1129:9 | [post] a [element] | -| array_flow.rb:1129:9:1129:9 | a [element 2] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | | array_flow.rb:1129:9:1129:9 | a [element 2] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | | array_flow.rb:1129:9:1129:9 | a [element 3] | array_flow.rb:1129:9:1129:9 | [post] a [element] | -| array_flow.rb:1129:9:1129:9 | a [element 3] | array_flow.rb:1129:9:1129:9 | [post] a [element] | -| array_flow.rb:1129:9:1129:9 | a [element 3] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | | array_flow.rb:1129:9:1129:9 | a [element 3] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | array_flow.rb:1129:5:1129:5 | b [element] | -| array_flow.rb:1129:9:1129:20 | call to rotate! [element] | array_flow.rb:1129:5:1129:5 | b [element] | -| array_flow.rb:1130:10:1130:10 | a [element] | array_flow.rb:1130:10:1130:13 | ...[...] | | array_flow.rb:1130:10:1130:10 | a [element] | array_flow.rb:1130:10:1130:13 | ...[...] | | array_flow.rb:1131:10:1131:10 | a [element] | array_flow.rb:1131:10:1131:13 | ...[...] | -| array_flow.rb:1131:10:1131:10 | a [element] | array_flow.rb:1131:10:1131:13 | ...[...] | -| array_flow.rb:1132:10:1132:10 | a [element] | array_flow.rb:1132:10:1132:13 | ...[...] | | array_flow.rb:1132:10:1132:10 | a [element] | array_flow.rb:1132:10:1132:13 | ...[...] | | array_flow.rb:1133:10:1133:10 | a [element] | array_flow.rb:1133:10:1133:13 | ...[...] | -| array_flow.rb:1133:10:1133:10 | a [element] | array_flow.rb:1133:10:1133:13 | ...[...] | -| array_flow.rb:1134:10:1134:10 | b [element] | array_flow.rb:1134:10:1134:13 | ...[...] | | array_flow.rb:1134:10:1134:10 | b [element] | array_flow.rb:1134:10:1134:13 | ...[...] | | array_flow.rb:1135:10:1135:10 | b [element] | array_flow.rb:1135:10:1135:13 | ...[...] | -| array_flow.rb:1135:10:1135:10 | b [element] | array_flow.rb:1135:10:1135:13 | ...[...] | -| array_flow.rb:1136:10:1136:10 | b [element] | array_flow.rb:1136:10:1136:13 | ...[...] | | array_flow.rb:1136:10:1136:10 | b [element] | array_flow.rb:1136:10:1136:13 | ...[...] | | array_flow.rb:1137:10:1137:10 | b [element] | array_flow.rb:1137:10:1137:13 | ...[...] | -| array_flow.rb:1137:10:1137:10 | b [element] | array_flow.rb:1137:10:1137:13 | ...[...] | -| array_flow.rb:1141:5:1141:5 | a [element 3] | array_flow.rb:1142:9:1142:9 | a [element 3] | | array_flow.rb:1141:5:1141:5 | a [element 3] | array_flow.rb:1142:9:1142:9 | a [element 3] | | array_flow.rb:1141:19:1141:29 | call to source | array_flow.rb:1141:5:1141:5 | a [element 3] | -| array_flow.rb:1141:19:1141:29 | call to source | array_flow.rb:1141:5:1141:5 | a [element 3] | -| array_flow.rb:1142:5:1142:5 | b [element] | array_flow.rb:1145:10:1145:10 | b [element] | | array_flow.rb:1142:5:1142:5 | b [element] | array_flow.rb:1145:10:1145:10 | b [element] | | array_flow.rb:1142:9:1142:9 | a [element 3] | array_flow.rb:1142:9:1144:7 | call to select [element] | -| array_flow.rb:1142:9:1142:9 | a [element 3] | array_flow.rb:1142:9:1144:7 | call to select [element] | -| array_flow.rb:1142:9:1142:9 | a [element 3] | array_flow.rb:1142:22:1142:22 | x | | array_flow.rb:1142:9:1142:9 | a [element 3] | array_flow.rb:1142:22:1142:22 | x | | array_flow.rb:1142:9:1144:7 | call to select [element] | array_flow.rb:1142:5:1142:5 | b [element] | -| array_flow.rb:1142:9:1144:7 | call to select [element] | array_flow.rb:1142:5:1142:5 | b [element] | -| array_flow.rb:1142:22:1142:22 | x | array_flow.rb:1143:14:1143:14 | x | | array_flow.rb:1142:22:1142:22 | x | array_flow.rb:1143:14:1143:14 | x | | array_flow.rb:1145:10:1145:10 | b [element] | array_flow.rb:1145:10:1145:13 | ...[...] | -| array_flow.rb:1145:10:1145:10 | b [element] | array_flow.rb:1145:10:1145:13 | ...[...] | -| array_flow.rb:1149:5:1149:5 | a [element 2] | array_flow.rb:1150:9:1150:9 | a [element 2] | | array_flow.rb:1149:5:1149:5 | a [element 2] | array_flow.rb:1150:9:1150:9 | a [element 2] | | array_flow.rb:1149:16:1149:26 | call to source | array_flow.rb:1149:5:1149:5 | a [element 2] | -| array_flow.rb:1149:16:1149:26 | call to source | array_flow.rb:1149:5:1149:5 | a [element 2] | -| array_flow.rb:1150:5:1150:5 | b [element] | array_flow.rb:1155:10:1155:10 | b [element] | | array_flow.rb:1150:5:1150:5 | b [element] | array_flow.rb:1155:10:1155:10 | b [element] | | array_flow.rb:1150:9:1150:9 | [post] a [element] | array_flow.rb:1154:10:1154:10 | a [element] | -| array_flow.rb:1150:9:1150:9 | [post] a [element] | array_flow.rb:1154:10:1154:10 | a [element] | -| array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:9:1150:9 | [post] a [element] | | array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:9:1150:9 | [post] a [element] | | array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:9:1153:7 | call to select! [element] | -| array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:9:1153:7 | call to select! [element] | -| array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:23:1150:23 | x | | array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:23:1150:23 | x | | array_flow.rb:1150:9:1153:7 | call to select! [element] | array_flow.rb:1150:5:1150:5 | b [element] | -| array_flow.rb:1150:9:1153:7 | call to select! [element] | array_flow.rb:1150:5:1150:5 | b [element] | -| array_flow.rb:1150:23:1150:23 | x | array_flow.rb:1151:14:1151:14 | x | | array_flow.rb:1150:23:1150:23 | x | array_flow.rb:1151:14:1151:14 | x | | array_flow.rb:1154:10:1154:10 | a [element] | array_flow.rb:1154:10:1154:13 | ...[...] | -| array_flow.rb:1154:10:1154:10 | a [element] | array_flow.rb:1154:10:1154:13 | ...[...] | -| array_flow.rb:1155:10:1155:10 | b [element] | array_flow.rb:1155:10:1155:13 | ...[...] | | array_flow.rb:1155:10:1155:10 | b [element] | array_flow.rb:1155:10:1155:13 | ...[...] | | array_flow.rb:1159:5:1159:5 | a [element 0] | array_flow.rb:1160:9:1160:9 | a [element 0] | -| array_flow.rb:1159:5:1159:5 | a [element 0] | array_flow.rb:1160:9:1160:9 | a [element 0] | -| array_flow.rb:1159:5:1159:5 | a [element 2] | array_flow.rb:1160:9:1160:9 | a [element 2] | | array_flow.rb:1159:5:1159:5 | a [element 2] | array_flow.rb:1160:9:1160:9 | a [element 2] | | array_flow.rb:1159:10:1159:22 | call to source | array_flow.rb:1159:5:1159:5 | a [element 0] | -| array_flow.rb:1159:10:1159:22 | call to source | array_flow.rb:1159:5:1159:5 | a [element 0] | -| array_flow.rb:1159:28:1159:40 | call to source | array_flow.rb:1159:5:1159:5 | a [element 2] | | array_flow.rb:1159:28:1159:40 | call to source | array_flow.rb:1159:5:1159:5 | a [element 2] | | array_flow.rb:1160:5:1160:5 | b | array_flow.rb:1161:10:1161:10 | b | -| array_flow.rb:1160:5:1160:5 | b | array_flow.rb:1161:10:1161:10 | b | -| array_flow.rb:1160:9:1160:9 | [post] a [element 1] | array_flow.rb:1163:10:1163:10 | a [element 1] | | array_flow.rb:1160:9:1160:9 | [post] a [element 1] | array_flow.rb:1163:10:1163:10 | a [element 1] | | array_flow.rb:1160:9:1160:9 | a [element 0] | array_flow.rb:1160:9:1160:15 | call to shift | -| array_flow.rb:1160:9:1160:9 | a [element 0] | array_flow.rb:1160:9:1160:15 | call to shift | -| array_flow.rb:1160:9:1160:9 | a [element 2] | array_flow.rb:1160:9:1160:9 | [post] a [element 1] | | array_flow.rb:1160:9:1160:9 | a [element 2] | array_flow.rb:1160:9:1160:9 | [post] a [element 1] | | array_flow.rb:1160:9:1160:15 | call to shift | array_flow.rb:1160:5:1160:5 | b | -| array_flow.rb:1160:9:1160:15 | call to shift | array_flow.rb:1160:5:1160:5 | b | -| array_flow.rb:1163:10:1163:10 | a [element 1] | array_flow.rb:1163:10:1163:13 | ...[...] | | array_flow.rb:1163:10:1163:10 | a [element 1] | array_flow.rb:1163:10:1163:13 | ...[...] | | array_flow.rb:1166:5:1166:5 | a [element 0] | array_flow.rb:1167:9:1167:9 | a [element 0] | -| array_flow.rb:1166:5:1166:5 | a [element 0] | array_flow.rb:1167:9:1167:9 | a [element 0] | -| array_flow.rb:1166:5:1166:5 | a [element 2] | array_flow.rb:1167:9:1167:9 | a [element 2] | | array_flow.rb:1166:5:1166:5 | a [element 2] | array_flow.rb:1167:9:1167:9 | a [element 2] | | array_flow.rb:1166:10:1166:22 | call to source | array_flow.rb:1166:5:1166:5 | a [element 0] | -| array_flow.rb:1166:10:1166:22 | call to source | array_flow.rb:1166:5:1166:5 | a [element 0] | -| array_flow.rb:1166:28:1166:40 | call to source | array_flow.rb:1166:5:1166:5 | a [element 2] | | array_flow.rb:1166:28:1166:40 | call to source | array_flow.rb:1166:5:1166:5 | a [element 2] | | array_flow.rb:1167:5:1167:5 | b [element 0] | array_flow.rb:1168:10:1168:10 | b [element 0] | -| array_flow.rb:1167:5:1167:5 | b [element 0] | array_flow.rb:1168:10:1168:10 | b [element 0] | -| array_flow.rb:1167:9:1167:9 | [post] a [element 0] | array_flow.rb:1170:10:1170:10 | a [element 0] | | array_flow.rb:1167:9:1167:9 | [post] a [element 0] | array_flow.rb:1170:10:1170:10 | a [element 0] | | array_flow.rb:1167:9:1167:9 | a [element 0] | array_flow.rb:1167:9:1167:18 | call to shift [element 0] | -| array_flow.rb:1167:9:1167:9 | a [element 0] | array_flow.rb:1167:9:1167:18 | call to shift [element 0] | -| array_flow.rb:1167:9:1167:9 | a [element 2] | array_flow.rb:1167:9:1167:9 | [post] a [element 0] | | array_flow.rb:1167:9:1167:9 | a [element 2] | array_flow.rb:1167:9:1167:9 | [post] a [element 0] | | array_flow.rb:1167:9:1167:18 | call to shift [element 0] | array_flow.rb:1167:5:1167:5 | b [element 0] | -| array_flow.rb:1167:9:1167:18 | call to shift [element 0] | array_flow.rb:1167:5:1167:5 | b [element 0] | -| array_flow.rb:1168:10:1168:10 | b [element 0] | array_flow.rb:1168:10:1168:13 | ...[...] | | array_flow.rb:1168:10:1168:10 | b [element 0] | array_flow.rb:1168:10:1168:13 | ...[...] | | array_flow.rb:1170:10:1170:10 | a [element 0] | array_flow.rb:1170:10:1170:13 | ...[...] | -| array_flow.rb:1170:10:1170:10 | a [element 0] | array_flow.rb:1170:10:1170:13 | ...[...] | -| array_flow.rb:1174:5:1174:5 | a [element 0] | array_flow.rb:1175:9:1175:9 | a [element 0] | | array_flow.rb:1174:5:1174:5 | a [element 0] | array_flow.rb:1175:9:1175:9 | a [element 0] | | array_flow.rb:1174:5:1174:5 | a [element 0] | array_flow.rb:1178:10:1178:10 | a [element 0] | -| array_flow.rb:1174:5:1174:5 | a [element 0] | array_flow.rb:1178:10:1178:10 | a [element 0] | -| array_flow.rb:1174:5:1174:5 | a [element 2] | array_flow.rb:1175:9:1175:9 | a [element 2] | | array_flow.rb:1174:5:1174:5 | a [element 2] | array_flow.rb:1175:9:1175:9 | a [element 2] | | array_flow.rb:1174:5:1174:5 | a [element 2] | array_flow.rb:1180:10:1180:10 | a [element 2] | -| array_flow.rb:1174:5:1174:5 | a [element 2] | array_flow.rb:1180:10:1180:10 | a [element 2] | -| array_flow.rb:1174:10:1174:22 | call to source | array_flow.rb:1174:5:1174:5 | a [element 0] | | array_flow.rb:1174:10:1174:22 | call to source | array_flow.rb:1174:5:1174:5 | a [element 0] | | array_flow.rb:1174:28:1174:40 | call to source | array_flow.rb:1174:5:1174:5 | a [element 2] | -| array_flow.rb:1174:28:1174:40 | call to source | array_flow.rb:1174:5:1174:5 | a [element 2] | -| array_flow.rb:1175:5:1175:5 | b [element] | array_flow.rb:1176:10:1176:10 | b [element] | | array_flow.rb:1175:5:1175:5 | b [element] | array_flow.rb:1176:10:1176:10 | b [element] | | array_flow.rb:1175:5:1175:5 | b [element] | array_flow.rb:1177:10:1177:10 | b [element] | -| array_flow.rb:1175:5:1175:5 | b [element] | array_flow.rb:1177:10:1177:10 | b [element] | -| array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1178:10:1178:10 | a [element] | | array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1178:10:1178:10 | a [element] | | array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1179:10:1179:10 | a [element] | -| array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1179:10:1179:10 | a [element] | -| array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1180:10:1180:10 | a [element] | | array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1180:10:1180:10 | a [element] | | array_flow.rb:1175:9:1175:9 | a [element 0] | array_flow.rb:1175:9:1175:9 | [post] a [element] | -| array_flow.rb:1175:9:1175:9 | a [element 0] | array_flow.rb:1175:9:1175:9 | [post] a [element] | -| array_flow.rb:1175:9:1175:9 | a [element 0] | array_flow.rb:1175:9:1175:18 | call to shift [element] | | array_flow.rb:1175:9:1175:9 | a [element 0] | array_flow.rb:1175:9:1175:18 | call to shift [element] | | array_flow.rb:1175:9:1175:9 | a [element 2] | array_flow.rb:1175:9:1175:9 | [post] a [element] | -| array_flow.rb:1175:9:1175:9 | a [element 2] | array_flow.rb:1175:9:1175:9 | [post] a [element] | -| array_flow.rb:1175:9:1175:9 | a [element 2] | array_flow.rb:1175:9:1175:18 | call to shift [element] | | array_flow.rb:1175:9:1175:9 | a [element 2] | array_flow.rb:1175:9:1175:18 | call to shift [element] | | array_flow.rb:1175:9:1175:18 | call to shift [element] | array_flow.rb:1175:5:1175:5 | b [element] | -| array_flow.rb:1175:9:1175:18 | call to shift [element] | array_flow.rb:1175:5:1175:5 | b [element] | -| array_flow.rb:1176:10:1176:10 | b [element] | array_flow.rb:1176:10:1176:13 | ...[...] | | array_flow.rb:1176:10:1176:10 | b [element] | array_flow.rb:1176:10:1176:13 | ...[...] | | array_flow.rb:1177:10:1177:10 | b [element] | array_flow.rb:1177:10:1177:13 | ...[...] | -| array_flow.rb:1177:10:1177:10 | b [element] | array_flow.rb:1177:10:1177:13 | ...[...] | -| array_flow.rb:1178:10:1178:10 | a [element 0] | array_flow.rb:1178:10:1178:13 | ...[...] | | array_flow.rb:1178:10:1178:10 | a [element 0] | array_flow.rb:1178:10:1178:13 | ...[...] | | array_flow.rb:1178:10:1178:10 | a [element] | array_flow.rb:1178:10:1178:13 | ...[...] | -| array_flow.rb:1178:10:1178:10 | a [element] | array_flow.rb:1178:10:1178:13 | ...[...] | -| array_flow.rb:1179:10:1179:10 | a [element] | array_flow.rb:1179:10:1179:13 | ...[...] | | array_flow.rb:1179:10:1179:10 | a [element] | array_flow.rb:1179:10:1179:13 | ...[...] | | array_flow.rb:1180:10:1180:10 | a [element 2] | array_flow.rb:1180:10:1180:13 | ...[...] | -| array_flow.rb:1180:10:1180:10 | a [element 2] | array_flow.rb:1180:10:1180:13 | ...[...] | -| array_flow.rb:1180:10:1180:10 | a [element] | array_flow.rb:1180:10:1180:13 | ...[...] | | array_flow.rb:1180:10:1180:10 | a [element] | array_flow.rb:1180:10:1180:13 | ...[...] | | array_flow.rb:1184:5:1184:5 | a [element 2] | array_flow.rb:1185:9:1185:9 | a [element 2] | -| array_flow.rb:1184:5:1184:5 | a [element 2] | array_flow.rb:1185:9:1185:9 | a [element 2] | -| array_flow.rb:1184:5:1184:5 | a [element 2] | array_flow.rb:1188:10:1188:10 | a [element 2] | | array_flow.rb:1184:5:1184:5 | a [element 2] | array_flow.rb:1188:10:1188:10 | a [element 2] | | array_flow.rb:1184:16:1184:26 | call to source | array_flow.rb:1184:5:1184:5 | a [element 2] | -| array_flow.rb:1184:16:1184:26 | call to source | array_flow.rb:1184:5:1184:5 | a [element 2] | -| array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1189:10:1189:10 | b [element] | | array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1189:10:1189:10 | b [element] | | array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1190:10:1190:10 | b [element] | -| array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1190:10:1190:10 | b [element] | -| array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1191:10:1191:10 | b [element] | | array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1191:10:1191:10 | b [element] | | array_flow.rb:1185:9:1185:9 | a [element 2] | array_flow.rb:1185:9:1185:17 | call to shuffle [element] | -| array_flow.rb:1185:9:1185:9 | a [element 2] | array_flow.rb:1185:9:1185:17 | call to shuffle [element] | -| array_flow.rb:1185:9:1185:17 | call to shuffle [element] | array_flow.rb:1185:5:1185:5 | b [element] | | array_flow.rb:1185:9:1185:17 | call to shuffle [element] | array_flow.rb:1185:5:1185:5 | b [element] | | array_flow.rb:1188:10:1188:10 | a [element 2] | array_flow.rb:1188:10:1188:13 | ...[...] | -| array_flow.rb:1188:10:1188:10 | a [element 2] | array_flow.rb:1188:10:1188:13 | ...[...] | -| array_flow.rb:1189:10:1189:10 | b [element] | array_flow.rb:1189:10:1189:13 | ...[...] | | array_flow.rb:1189:10:1189:10 | b [element] | array_flow.rb:1189:10:1189:13 | ...[...] | | array_flow.rb:1190:10:1190:10 | b [element] | array_flow.rb:1190:10:1190:13 | ...[...] | -| array_flow.rb:1190:10:1190:10 | b [element] | array_flow.rb:1190:10:1190:13 | ...[...] | -| array_flow.rb:1191:10:1191:10 | b [element] | array_flow.rb:1191:10:1191:13 | ...[...] | | array_flow.rb:1191:10:1191:10 | b [element] | array_flow.rb:1191:10:1191:13 | ...[...] | | array_flow.rb:1195:5:1195:5 | a [element 2] | array_flow.rb:1196:9:1196:9 | a [element 2] | -| array_flow.rb:1195:5:1195:5 | a [element 2] | array_flow.rb:1196:9:1196:9 | a [element 2] | -| array_flow.rb:1195:5:1195:5 | a [element 2] | array_flow.rb:1199:10:1199:10 | a [element 2] | | array_flow.rb:1195:5:1195:5 | a [element 2] | array_flow.rb:1199:10:1199:10 | a [element 2] | | array_flow.rb:1195:16:1195:26 | call to source | array_flow.rb:1195:5:1195:5 | a [element 2] | -| array_flow.rb:1195:16:1195:26 | call to source | array_flow.rb:1195:5:1195:5 | a [element 2] | -| array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1200:10:1200:10 | b [element] | | array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1200:10:1200:10 | b [element] | | array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1201:10:1201:10 | b [element] | -| array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1201:10:1201:10 | b [element] | -| array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1202:10:1202:10 | b [element] | | array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1202:10:1202:10 | b [element] | | array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1197:10:1197:10 | a [element] | -| array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1197:10:1197:10 | a [element] | -| array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1198:10:1198:10 | a [element] | | array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1198:10:1198:10 | a [element] | | array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1199:10:1199:10 | a [element] | -| array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1199:10:1199:10 | a [element] | -| array_flow.rb:1196:9:1196:9 | a [element 2] | array_flow.rb:1196:9:1196:9 | [post] a [element] | | array_flow.rb:1196:9:1196:9 | a [element 2] | array_flow.rb:1196:9:1196:9 | [post] a [element] | | array_flow.rb:1196:9:1196:9 | a [element 2] | array_flow.rb:1196:9:1196:18 | call to shuffle! [element] | -| array_flow.rb:1196:9:1196:9 | a [element 2] | array_flow.rb:1196:9:1196:18 | call to shuffle! [element] | -| array_flow.rb:1196:9:1196:18 | call to shuffle! [element] | array_flow.rb:1196:5:1196:5 | b [element] | | array_flow.rb:1196:9:1196:18 | call to shuffle! [element] | array_flow.rb:1196:5:1196:5 | b [element] | | array_flow.rb:1197:10:1197:10 | a [element] | array_flow.rb:1197:10:1197:13 | ...[...] | -| array_flow.rb:1197:10:1197:10 | a [element] | array_flow.rb:1197:10:1197:13 | ...[...] | -| array_flow.rb:1198:10:1198:10 | a [element] | array_flow.rb:1198:10:1198:13 | ...[...] | | array_flow.rb:1198:10:1198:10 | a [element] | array_flow.rb:1198:10:1198:13 | ...[...] | | array_flow.rb:1199:10:1199:10 | a [element 2] | array_flow.rb:1199:10:1199:13 | ...[...] | -| array_flow.rb:1199:10:1199:10 | a [element 2] | array_flow.rb:1199:10:1199:13 | ...[...] | -| array_flow.rb:1199:10:1199:10 | a [element] | array_flow.rb:1199:10:1199:13 | ...[...] | | array_flow.rb:1199:10:1199:10 | a [element] | array_flow.rb:1199:10:1199:13 | ...[...] | | array_flow.rb:1200:10:1200:10 | b [element] | array_flow.rb:1200:10:1200:13 | ...[...] | -| array_flow.rb:1200:10:1200:10 | b [element] | array_flow.rb:1200:10:1200:13 | ...[...] | -| array_flow.rb:1201:10:1201:10 | b [element] | array_flow.rb:1201:10:1201:13 | ...[...] | | array_flow.rb:1201:10:1201:10 | b [element] | array_flow.rb:1201:10:1201:13 | ...[...] | | array_flow.rb:1202:10:1202:10 | b [element] | array_flow.rb:1202:10:1202:13 | ...[...] | -| array_flow.rb:1202:10:1202:10 | b [element] | array_flow.rb:1202:10:1202:13 | ...[...] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1211:9:1211:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1211:9:1211:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1214:9:1214:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1214:9:1214:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1220:9:1220:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1220:9:1220:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1225:9:1225:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1225:9:1225:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1229:9:1229:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1229:9:1229:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1234:9:1234:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1234:9:1234:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1239:9:1239:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1239:9:1239:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1243:9:1243:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1243:9:1243:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1247:9:1247:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1247:9:1247:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1252:9:1252:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1252:9:1252:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1208:9:1208:9 | a [element 4] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1208:9:1208:9 | a [element 4] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1211:9:1211:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1211:9:1211:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1214:9:1214:9 | a [element 4] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1214:9:1214:9 | a [element 4] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1220:9:1220:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1220:9:1220:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1225:9:1225:9 | a [element 4] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1225:9:1225:9 | a [element 4] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1239:9:1239:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1239:9:1239:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1243:9:1243:9 | a [element 4] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1243:9:1243:9 | a [element 4] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1252:9:1252:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1252:9:1252:9 | a [element 4] | -| array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1206:5:1206:5 | a [element 2] | | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1206:5:1206:5 | a [element 2] | | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1206:5:1206:5 | a [element 4] | -| array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1206:5:1206:5 | a [element 4] | -| array_flow.rb:1208:5:1208:5 | b | array_flow.rb:1209:10:1209:10 | b | | array_flow.rb:1208:5:1208:5 | b | array_flow.rb:1209:10:1209:10 | b | | array_flow.rb:1208:9:1208:9 | a [element 4] | array_flow.rb:1208:9:1208:17 | call to slice | -| array_flow.rb:1208:9:1208:9 | a [element 4] | array_flow.rb:1208:9:1208:17 | call to slice | -| array_flow.rb:1208:9:1208:17 | call to slice | array_flow.rb:1208:5:1208:5 | b | | array_flow.rb:1208:9:1208:17 | call to slice | array_flow.rb:1208:5:1208:5 | b | | array_flow.rb:1211:5:1211:5 | b | array_flow.rb:1212:10:1212:10 | b | -| array_flow.rb:1211:5:1211:5 | b | array_flow.rb:1212:10:1212:10 | b | -| array_flow.rb:1211:9:1211:9 | a [element 2] | array_flow.rb:1211:9:1211:19 | call to slice | | array_flow.rb:1211:9:1211:9 | a [element 2] | array_flow.rb:1211:9:1211:19 | call to slice | | array_flow.rb:1211:9:1211:9 | a [element 4] | array_flow.rb:1211:9:1211:19 | call to slice | -| array_flow.rb:1211:9:1211:9 | a [element 4] | array_flow.rb:1211:9:1211:19 | call to slice | -| array_flow.rb:1211:9:1211:19 | call to slice | array_flow.rb:1211:5:1211:5 | b | | array_flow.rb:1211:9:1211:19 | call to slice | array_flow.rb:1211:5:1211:5 | b | | array_flow.rb:1214:5:1214:5 | b | array_flow.rb:1216:10:1216:10 | b | -| array_flow.rb:1214:5:1214:5 | b | array_flow.rb:1216:10:1216:10 | b | -| array_flow.rb:1214:5:1214:5 | b | array_flow.rb:1218:10:1218:10 | b | -| array_flow.rb:1214:5:1214:5 | b [element] | array_flow.rb:1218:10:1218:10 | b [element] | | array_flow.rb:1214:5:1214:5 | b [element] | array_flow.rb:1218:10:1218:10 | b [element] | | array_flow.rb:1214:9:1214:9 | a [element 2] | array_flow.rb:1214:9:1214:17 | call to slice | -| array_flow.rb:1214:9:1214:9 | a [element 2] | array_flow.rb:1214:9:1214:17 | call to slice | -| array_flow.rb:1214:9:1214:9 | a [element 2] | array_flow.rb:1214:9:1214:17 | call to slice [element] | | array_flow.rb:1214:9:1214:9 | a [element 2] | array_flow.rb:1214:9:1214:17 | call to slice [element] | | array_flow.rb:1214:9:1214:9 | a [element 4] | array_flow.rb:1214:9:1214:17 | call to slice | -| array_flow.rb:1214:9:1214:9 | a [element 4] | array_flow.rb:1214:9:1214:17 | call to slice | -| array_flow.rb:1214:9:1214:9 | a [element 4] | array_flow.rb:1214:9:1214:17 | call to slice [element] | | array_flow.rb:1214:9:1214:9 | a [element 4] | array_flow.rb:1214:9:1214:17 | call to slice [element] | | array_flow.rb:1214:9:1214:17 | call to slice | array_flow.rb:1214:5:1214:5 | b | -| array_flow.rb:1214:9:1214:17 | call to slice | array_flow.rb:1214:5:1214:5 | b | | array_flow.rb:1214:9:1214:17 | call to slice [element] | array_flow.rb:1214:5:1214:5 | b [element] | -| array_flow.rb:1214:9:1214:17 | call to slice [element] | array_flow.rb:1214:5:1214:5 | b [element] | -| array_flow.rb:1218:10:1218:10 | b | array_flow.rb:1218:10:1218:13 | ...[...] | -| array_flow.rb:1218:10:1218:10 | b [element] | array_flow.rb:1218:10:1218:13 | ...[...] | | array_flow.rb:1218:10:1218:10 | b [element] | array_flow.rb:1218:10:1218:13 | ...[...] | | array_flow.rb:1220:5:1220:5 | b [element 0] | array_flow.rb:1221:10:1221:10 | b [element 0] | -| array_flow.rb:1220:5:1220:5 | b [element 0] | array_flow.rb:1221:10:1221:10 | b [element 0] | -| array_flow.rb:1220:5:1220:5 | b [element 2] | array_flow.rb:1223:10:1223:10 | b [element 2] | | array_flow.rb:1220:5:1220:5 | b [element 2] | array_flow.rb:1223:10:1223:10 | b [element 2] | | array_flow.rb:1220:9:1220:9 | a [element 2] | array_flow.rb:1220:9:1220:21 | call to slice [element 0] | -| array_flow.rb:1220:9:1220:9 | a [element 2] | array_flow.rb:1220:9:1220:21 | call to slice [element 0] | -| array_flow.rb:1220:9:1220:9 | a [element 4] | array_flow.rb:1220:9:1220:21 | call to slice [element 2] | | array_flow.rb:1220:9:1220:9 | a [element 4] | array_flow.rb:1220:9:1220:21 | call to slice [element 2] | | array_flow.rb:1220:9:1220:21 | call to slice [element 0] | array_flow.rb:1220:5:1220:5 | b [element 0] | -| array_flow.rb:1220:9:1220:21 | call to slice [element 0] | array_flow.rb:1220:5:1220:5 | b [element 0] | -| array_flow.rb:1220:9:1220:21 | call to slice [element 2] | array_flow.rb:1220:5:1220:5 | b [element 2] | | array_flow.rb:1220:9:1220:21 | call to slice [element 2] | array_flow.rb:1220:5:1220:5 | b [element 2] | | array_flow.rb:1221:10:1221:10 | b [element 0] | array_flow.rb:1221:10:1221:13 | ...[...] | -| array_flow.rb:1221:10:1221:10 | b [element 0] | array_flow.rb:1221:10:1221:13 | ...[...] | -| array_flow.rb:1223:10:1223:10 | b [element 2] | array_flow.rb:1223:10:1223:13 | ...[...] | | array_flow.rb:1223:10:1223:10 | b [element 2] | array_flow.rb:1223:10:1223:13 | ...[...] | | array_flow.rb:1225:5:1225:5 | b [element] | array_flow.rb:1226:10:1226:10 | b [element] | -| array_flow.rb:1225:5:1225:5 | b [element] | array_flow.rb:1226:10:1226:10 | b [element] | -| array_flow.rb:1225:5:1225:5 | b [element] | array_flow.rb:1227:10:1227:10 | b [element] | | array_flow.rb:1225:5:1225:5 | b [element] | array_flow.rb:1227:10:1227:10 | b [element] | | array_flow.rb:1225:9:1225:9 | a [element 2] | array_flow.rb:1225:9:1225:21 | call to slice [element] | -| array_flow.rb:1225:9:1225:9 | a [element 2] | array_flow.rb:1225:9:1225:21 | call to slice [element] | -| array_flow.rb:1225:9:1225:9 | a [element 4] | array_flow.rb:1225:9:1225:21 | call to slice [element] | | array_flow.rb:1225:9:1225:9 | a [element 4] | array_flow.rb:1225:9:1225:21 | call to slice [element] | | array_flow.rb:1225:9:1225:21 | call to slice [element] | array_flow.rb:1225:5:1225:5 | b [element] | -| array_flow.rb:1225:9:1225:21 | call to slice [element] | array_flow.rb:1225:5:1225:5 | b [element] | -| array_flow.rb:1226:10:1226:10 | b [element] | array_flow.rb:1226:10:1226:13 | ...[...] | | array_flow.rb:1226:10:1226:10 | b [element] | array_flow.rb:1226:10:1226:13 | ...[...] | | array_flow.rb:1227:10:1227:10 | b [element] | array_flow.rb:1227:10:1227:13 | ...[...] | -| array_flow.rb:1227:10:1227:10 | b [element] | array_flow.rb:1227:10:1227:13 | ...[...] | -| array_flow.rb:1229:5:1229:5 | b [element 0] | array_flow.rb:1230:10:1230:10 | b [element 0] | | array_flow.rb:1229:5:1229:5 | b [element 0] | array_flow.rb:1230:10:1230:10 | b [element 0] | | array_flow.rb:1229:9:1229:9 | a [element 2] | array_flow.rb:1229:9:1229:21 | call to slice [element 0] | -| array_flow.rb:1229:9:1229:9 | a [element 2] | array_flow.rb:1229:9:1229:21 | call to slice [element 0] | -| array_flow.rb:1229:9:1229:21 | call to slice [element 0] | array_flow.rb:1229:5:1229:5 | b [element 0] | | array_flow.rb:1229:9:1229:21 | call to slice [element 0] | array_flow.rb:1229:5:1229:5 | b [element 0] | | array_flow.rb:1230:10:1230:10 | b [element 0] | array_flow.rb:1230:10:1230:13 | ...[...] | -| array_flow.rb:1230:10:1230:10 | b [element 0] | array_flow.rb:1230:10:1230:13 | ...[...] | -| array_flow.rb:1234:5:1234:5 | b [element 0] | array_flow.rb:1235:10:1235:10 | b [element 0] | | array_flow.rb:1234:5:1234:5 | b [element 0] | array_flow.rb:1235:10:1235:10 | b [element 0] | | array_flow.rb:1234:9:1234:9 | a [element 2] | array_flow.rb:1234:9:1234:22 | call to slice [element 0] | -| array_flow.rb:1234:9:1234:9 | a [element 2] | array_flow.rb:1234:9:1234:22 | call to slice [element 0] | -| array_flow.rb:1234:9:1234:22 | call to slice [element 0] | array_flow.rb:1234:5:1234:5 | b [element 0] | | array_flow.rb:1234:9:1234:22 | call to slice [element 0] | array_flow.rb:1234:5:1234:5 | b [element 0] | | array_flow.rb:1235:10:1235:10 | b [element 0] | array_flow.rb:1235:10:1235:13 | ...[...] | -| array_flow.rb:1235:10:1235:10 | b [element 0] | array_flow.rb:1235:10:1235:13 | ...[...] | -| array_flow.rb:1239:5:1239:5 | b [element] | array_flow.rb:1240:10:1240:10 | b [element] | | array_flow.rb:1239:5:1239:5 | b [element] | array_flow.rb:1240:10:1240:10 | b [element] | | array_flow.rb:1239:5:1239:5 | b [element] | array_flow.rb:1241:10:1241:10 | b [element] | -| array_flow.rb:1239:5:1239:5 | b [element] | array_flow.rb:1241:10:1241:10 | b [element] | -| array_flow.rb:1239:9:1239:9 | a [element 2] | array_flow.rb:1239:9:1239:21 | call to slice [element] | | array_flow.rb:1239:9:1239:9 | a [element 2] | array_flow.rb:1239:9:1239:21 | call to slice [element] | | array_flow.rb:1239:9:1239:9 | a [element 4] | array_flow.rb:1239:9:1239:21 | call to slice [element] | -| array_flow.rb:1239:9:1239:9 | a [element 4] | array_flow.rb:1239:9:1239:21 | call to slice [element] | -| array_flow.rb:1239:9:1239:21 | call to slice [element] | array_flow.rb:1239:5:1239:5 | b [element] | | array_flow.rb:1239:9:1239:21 | call to slice [element] | array_flow.rb:1239:5:1239:5 | b [element] | | array_flow.rb:1240:10:1240:10 | b [element] | array_flow.rb:1240:10:1240:13 | ...[...] | -| array_flow.rb:1240:10:1240:10 | b [element] | array_flow.rb:1240:10:1240:13 | ...[...] | -| array_flow.rb:1241:10:1241:10 | b [element] | array_flow.rb:1241:10:1241:13 | ...[...] | | array_flow.rb:1241:10:1241:10 | b [element] | array_flow.rb:1241:10:1241:13 | ...[...] | | array_flow.rb:1243:5:1243:5 | b [element] | array_flow.rb:1244:10:1244:10 | b [element] | -| array_flow.rb:1243:5:1243:5 | b [element] | array_flow.rb:1244:10:1244:10 | b [element] | -| array_flow.rb:1243:5:1243:5 | b [element] | array_flow.rb:1245:10:1245:10 | b [element] | | array_flow.rb:1243:5:1243:5 | b [element] | array_flow.rb:1245:10:1245:10 | b [element] | | array_flow.rb:1243:9:1243:9 | a [element 2] | array_flow.rb:1243:9:1243:24 | call to slice [element] | -| array_flow.rb:1243:9:1243:9 | a [element 2] | array_flow.rb:1243:9:1243:24 | call to slice [element] | -| array_flow.rb:1243:9:1243:9 | a [element 4] | array_flow.rb:1243:9:1243:24 | call to slice [element] | | array_flow.rb:1243:9:1243:9 | a [element 4] | array_flow.rb:1243:9:1243:24 | call to slice [element] | | array_flow.rb:1243:9:1243:24 | call to slice [element] | array_flow.rb:1243:5:1243:5 | b [element] | -| array_flow.rb:1243:9:1243:24 | call to slice [element] | array_flow.rb:1243:5:1243:5 | b [element] | -| array_flow.rb:1244:10:1244:10 | b [element] | array_flow.rb:1244:10:1244:13 | ...[...] | | array_flow.rb:1244:10:1244:10 | b [element] | array_flow.rb:1244:10:1244:13 | ...[...] | | array_flow.rb:1245:10:1245:10 | b [element] | array_flow.rb:1245:10:1245:13 | ...[...] | -| array_flow.rb:1245:10:1245:10 | b [element] | array_flow.rb:1245:10:1245:13 | ...[...] | -| array_flow.rb:1247:5:1247:5 | b [element 2] | array_flow.rb:1250:10:1250:10 | b [element 2] | | array_flow.rb:1247:5:1247:5 | b [element 2] | array_flow.rb:1250:10:1250:10 | b [element 2] | | array_flow.rb:1247:9:1247:9 | a [element 2] | array_flow.rb:1247:9:1247:20 | call to slice [element 2] | -| array_flow.rb:1247:9:1247:9 | a [element 2] | array_flow.rb:1247:9:1247:20 | call to slice [element 2] | -| array_flow.rb:1247:9:1247:20 | call to slice [element 2] | array_flow.rb:1247:5:1247:5 | b [element 2] | | array_flow.rb:1247:9:1247:20 | call to slice [element 2] | array_flow.rb:1247:5:1247:5 | b [element 2] | | array_flow.rb:1250:10:1250:10 | b [element 2] | array_flow.rb:1250:10:1250:13 | ...[...] | -| array_flow.rb:1250:10:1250:10 | b [element 2] | array_flow.rb:1250:10:1250:13 | ...[...] | -| array_flow.rb:1252:5:1252:5 | b [element] | array_flow.rb:1253:10:1253:10 | b [element] | | array_flow.rb:1252:5:1252:5 | b [element] | array_flow.rb:1253:10:1253:10 | b [element] | | array_flow.rb:1252:5:1252:5 | b [element] | array_flow.rb:1254:10:1254:10 | b [element] | -| array_flow.rb:1252:5:1252:5 | b [element] | array_flow.rb:1254:10:1254:10 | b [element] | -| array_flow.rb:1252:5:1252:5 | b [element] | array_flow.rb:1255:10:1255:10 | b [element] | | array_flow.rb:1252:5:1252:5 | b [element] | array_flow.rb:1255:10:1255:10 | b [element] | | array_flow.rb:1252:9:1252:9 | a [element 2] | array_flow.rb:1252:9:1252:20 | call to slice [element] | -| array_flow.rb:1252:9:1252:9 | a [element 2] | array_flow.rb:1252:9:1252:20 | call to slice [element] | -| array_flow.rb:1252:9:1252:9 | a [element 4] | array_flow.rb:1252:9:1252:20 | call to slice [element] | | array_flow.rb:1252:9:1252:9 | a [element 4] | array_flow.rb:1252:9:1252:20 | call to slice [element] | | array_flow.rb:1252:9:1252:20 | call to slice [element] | array_flow.rb:1252:5:1252:5 | b [element] | -| array_flow.rb:1252:9:1252:20 | call to slice [element] | array_flow.rb:1252:5:1252:5 | b [element] | -| array_flow.rb:1253:10:1253:10 | b [element] | array_flow.rb:1253:10:1253:13 | ...[...] | | array_flow.rb:1253:10:1253:10 | b [element] | array_flow.rb:1253:10:1253:13 | ...[...] | | array_flow.rb:1254:10:1254:10 | b [element] | array_flow.rb:1254:10:1254:13 | ...[...] | -| array_flow.rb:1254:10:1254:10 | b [element] | array_flow.rb:1254:10:1254:13 | ...[...] | -| array_flow.rb:1255:10:1255:10 | b [element] | array_flow.rb:1255:10:1255:13 | ...[...] | | array_flow.rb:1255:10:1255:10 | b [element] | array_flow.rb:1255:10:1255:13 | ...[...] | | array_flow.rb:1259:5:1259:5 | a [element 2] | array_flow.rb:1260:9:1260:9 | a [element 2] | -| array_flow.rb:1259:5:1259:5 | a [element 2] | array_flow.rb:1260:9:1260:9 | a [element 2] | -| array_flow.rb:1259:5:1259:5 | a [element 4] | array_flow.rb:1260:9:1260:9 | a [element 4] | | array_flow.rb:1259:5:1259:5 | a [element 4] | array_flow.rb:1260:9:1260:9 | a [element 4] | | array_flow.rb:1259:16:1259:28 | call to source | array_flow.rb:1259:5:1259:5 | a [element 2] | -| array_flow.rb:1259:16:1259:28 | call to source | array_flow.rb:1259:5:1259:5 | a [element 2] | -| array_flow.rb:1259:34:1259:46 | call to source | array_flow.rb:1259:5:1259:5 | a [element 4] | | array_flow.rb:1259:34:1259:46 | call to source | array_flow.rb:1259:5:1259:5 | a [element 4] | | array_flow.rb:1260:5:1260:5 | b | array_flow.rb:1261:10:1261:10 | b | -| array_flow.rb:1260:5:1260:5 | b | array_flow.rb:1261:10:1261:10 | b | -| array_flow.rb:1260:9:1260:9 | [post] a [element 3] | array_flow.rb:1265:10:1265:10 | a [element 3] | | array_flow.rb:1260:9:1260:9 | [post] a [element 3] | array_flow.rb:1265:10:1265:10 | a [element 3] | | array_flow.rb:1260:9:1260:9 | a [element 2] | array_flow.rb:1260:9:1260:19 | call to slice! | -| array_flow.rb:1260:9:1260:9 | a [element 2] | array_flow.rb:1260:9:1260:19 | call to slice! | -| array_flow.rb:1260:9:1260:9 | a [element 4] | array_flow.rb:1260:9:1260:9 | [post] a [element 3] | | array_flow.rb:1260:9:1260:9 | a [element 4] | array_flow.rb:1260:9:1260:9 | [post] a [element 3] | | array_flow.rb:1260:9:1260:19 | call to slice! | array_flow.rb:1260:5:1260:5 | b | -| array_flow.rb:1260:9:1260:19 | call to slice! | array_flow.rb:1260:5:1260:5 | b | -| array_flow.rb:1265:10:1265:10 | a [element 3] | array_flow.rb:1265:10:1265:13 | ...[...] | | array_flow.rb:1265:10:1265:10 | a [element 3] | array_flow.rb:1265:10:1265:13 | ...[...] | | array_flow.rb:1267:5:1267:5 | a [element 2] | array_flow.rb:1268:9:1268:9 | a [element 2] | -| array_flow.rb:1267:5:1267:5 | a [element 2] | array_flow.rb:1268:9:1268:9 | a [element 2] | -| array_flow.rb:1267:5:1267:5 | a [element 4] | array_flow.rb:1268:9:1268:9 | a [element 4] | | array_flow.rb:1267:5:1267:5 | a [element 4] | array_flow.rb:1268:9:1268:9 | a [element 4] | | array_flow.rb:1267:16:1267:28 | call to source | array_flow.rb:1267:5:1267:5 | a [element 2] | -| array_flow.rb:1267:16:1267:28 | call to source | array_flow.rb:1267:5:1267:5 | a [element 2] | -| array_flow.rb:1267:34:1267:46 | call to source | array_flow.rb:1267:5:1267:5 | a [element 4] | | array_flow.rb:1267:34:1267:46 | call to source | array_flow.rb:1267:5:1267:5 | a [element 4] | | array_flow.rb:1268:5:1268:5 | b | array_flow.rb:1274:10:1274:10 | b | -| array_flow.rb:1268:5:1268:5 | b | array_flow.rb:1274:10:1274:10 | b | -| array_flow.rb:1268:5:1268:5 | b | array_flow.rb:1276:10:1276:10 | b | -| array_flow.rb:1268:5:1268:5 | b [element] | array_flow.rb:1276:10:1276:10 | b [element] | | array_flow.rb:1268:5:1268:5 | b [element] | array_flow.rb:1276:10:1276:10 | b [element] | | array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1269:10:1269:10 | a [element] | -| array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1269:10:1269:10 | a [element] | -| array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1270:10:1270:10 | a [element] | | array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1270:10:1270:10 | a [element] | | array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1271:10:1271:10 | a [element] | -| array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1271:10:1271:10 | a [element] | -| array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1272:10:1272:10 | a [element] | | array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1272:10:1272:10 | a [element] | | array_flow.rb:1268:9:1268:9 | a [element 2] | array_flow.rb:1268:9:1268:9 | [post] a [element] | -| array_flow.rb:1268:9:1268:9 | a [element 2] | array_flow.rb:1268:9:1268:9 | [post] a [element] | -| array_flow.rb:1268:9:1268:9 | a [element 2] | array_flow.rb:1268:9:1268:19 | call to slice! | | array_flow.rb:1268:9:1268:9 | a [element 2] | array_flow.rb:1268:9:1268:19 | call to slice! | | array_flow.rb:1268:9:1268:9 | a [element 2] | array_flow.rb:1268:9:1268:19 | call to slice! [element] | -| array_flow.rb:1268:9:1268:9 | a [element 2] | array_flow.rb:1268:9:1268:19 | call to slice! [element] | -| array_flow.rb:1268:9:1268:9 | a [element 4] | array_flow.rb:1268:9:1268:9 | [post] a [element] | | array_flow.rb:1268:9:1268:9 | a [element 4] | array_flow.rb:1268:9:1268:9 | [post] a [element] | | array_flow.rb:1268:9:1268:9 | a [element 4] | array_flow.rb:1268:9:1268:19 | call to slice! | -| array_flow.rb:1268:9:1268:9 | a [element 4] | array_flow.rb:1268:9:1268:19 | call to slice! | -| array_flow.rb:1268:9:1268:9 | a [element 4] | array_flow.rb:1268:9:1268:19 | call to slice! [element] | | array_flow.rb:1268:9:1268:9 | a [element 4] | array_flow.rb:1268:9:1268:19 | call to slice! [element] | | array_flow.rb:1268:9:1268:19 | call to slice! | array_flow.rb:1268:5:1268:5 | b | -| array_flow.rb:1268:9:1268:19 | call to slice! | array_flow.rb:1268:5:1268:5 | b | -| array_flow.rb:1268:9:1268:19 | call to slice! [element] | array_flow.rb:1268:5:1268:5 | b [element] | | array_flow.rb:1268:9:1268:19 | call to slice! [element] | array_flow.rb:1268:5:1268:5 | b [element] | | array_flow.rb:1269:10:1269:10 | a [element] | array_flow.rb:1269:10:1269:13 | ...[...] | -| array_flow.rb:1269:10:1269:10 | a [element] | array_flow.rb:1269:10:1269:13 | ...[...] | -| array_flow.rb:1270:10:1270:10 | a [element] | array_flow.rb:1270:10:1270:13 | ...[...] | | array_flow.rb:1270:10:1270:10 | a [element] | array_flow.rb:1270:10:1270:13 | ...[...] | | array_flow.rb:1271:10:1271:10 | a [element] | array_flow.rb:1271:10:1271:13 | ...[...] | -| array_flow.rb:1271:10:1271:10 | a [element] | array_flow.rb:1271:10:1271:13 | ...[...] | | array_flow.rb:1272:10:1272:10 | a [element] | array_flow.rb:1272:10:1272:13 | ...[...] | -| array_flow.rb:1272:10:1272:10 | a [element] | array_flow.rb:1272:10:1272:13 | ...[...] | -| array_flow.rb:1276:10:1276:10 | b | array_flow.rb:1276:10:1276:13 | ...[...] | -| array_flow.rb:1276:10:1276:10 | b [element] | array_flow.rb:1276:10:1276:13 | ...[...] | | array_flow.rb:1276:10:1276:10 | b [element] | array_flow.rb:1276:10:1276:13 | ...[...] | | array_flow.rb:1278:5:1278:5 | a [element 2] | array_flow.rb:1279:9:1279:9 | a [element 2] | -| array_flow.rb:1278:5:1278:5 | a [element 2] | array_flow.rb:1279:9:1279:9 | a [element 2] | -| array_flow.rb:1278:5:1278:5 | a [element 4] | array_flow.rb:1279:9:1279:9 | a [element 4] | | array_flow.rb:1278:5:1278:5 | a [element 4] | array_flow.rb:1279:9:1279:9 | a [element 4] | | array_flow.rb:1278:16:1278:28 | call to source | array_flow.rb:1278:5:1278:5 | a [element 2] | -| array_flow.rb:1278:16:1278:28 | call to source | array_flow.rb:1278:5:1278:5 | a [element 2] | -| array_flow.rb:1278:34:1278:46 | call to source | array_flow.rb:1278:5:1278:5 | a [element 4] | | array_flow.rb:1278:34:1278:46 | call to source | array_flow.rb:1278:5:1278:5 | a [element 4] | | array_flow.rb:1279:5:1279:5 | b [element 0] | array_flow.rb:1280:10:1280:10 | b [element 0] | -| array_flow.rb:1279:5:1279:5 | b [element 0] | array_flow.rb:1280:10:1280:10 | b [element 0] | -| array_flow.rb:1279:5:1279:5 | b [element 2] | array_flow.rb:1282:10:1282:10 | b [element 2] | | array_flow.rb:1279:5:1279:5 | b [element 2] | array_flow.rb:1282:10:1282:10 | b [element 2] | | array_flow.rb:1279:9:1279:9 | a [element 2] | array_flow.rb:1279:9:1279:22 | call to slice! [element 0] | -| array_flow.rb:1279:9:1279:9 | a [element 2] | array_flow.rb:1279:9:1279:22 | call to slice! [element 0] | -| array_flow.rb:1279:9:1279:9 | a [element 4] | array_flow.rb:1279:9:1279:22 | call to slice! [element 2] | | array_flow.rb:1279:9:1279:9 | a [element 4] | array_flow.rb:1279:9:1279:22 | call to slice! [element 2] | | array_flow.rb:1279:9:1279:22 | call to slice! [element 0] | array_flow.rb:1279:5:1279:5 | b [element 0] | -| array_flow.rb:1279:9:1279:22 | call to slice! [element 0] | array_flow.rb:1279:5:1279:5 | b [element 0] | -| array_flow.rb:1279:9:1279:22 | call to slice! [element 2] | array_flow.rb:1279:5:1279:5 | b [element 2] | | array_flow.rb:1279:9:1279:22 | call to slice! [element 2] | array_flow.rb:1279:5:1279:5 | b [element 2] | | array_flow.rb:1280:10:1280:10 | b [element 0] | array_flow.rb:1280:10:1280:13 | ...[...] | -| array_flow.rb:1280:10:1280:10 | b [element 0] | array_flow.rb:1280:10:1280:13 | ...[...] | -| array_flow.rb:1282:10:1282:10 | b [element 2] | array_flow.rb:1282:10:1282:13 | ...[...] | | array_flow.rb:1282:10:1282:10 | b [element 2] | array_flow.rb:1282:10:1282:13 | ...[...] | | array_flow.rb:1289:5:1289:5 | a [element 2] | array_flow.rb:1290:9:1290:9 | a [element 2] | -| array_flow.rb:1289:5:1289:5 | a [element 2] | array_flow.rb:1290:9:1290:9 | a [element 2] | -| array_flow.rb:1289:5:1289:5 | a [element 4] | array_flow.rb:1290:9:1290:9 | a [element 4] | | array_flow.rb:1289:5:1289:5 | a [element 4] | array_flow.rb:1290:9:1290:9 | a [element 4] | | array_flow.rb:1289:16:1289:28 | call to source | array_flow.rb:1289:5:1289:5 | a [element 2] | -| array_flow.rb:1289:16:1289:28 | call to source | array_flow.rb:1289:5:1289:5 | a [element 2] | -| array_flow.rb:1289:34:1289:46 | call to source | array_flow.rb:1289:5:1289:5 | a [element 4] | | array_flow.rb:1289:34:1289:46 | call to source | array_flow.rb:1289:5:1289:5 | a [element 4] | | array_flow.rb:1290:5:1290:5 | b [element 0] | array_flow.rb:1291:10:1291:10 | b [element 0] | -| array_flow.rb:1290:5:1290:5 | b [element 0] | array_flow.rb:1291:10:1291:10 | b [element 0] | -| array_flow.rb:1290:9:1290:9 | [post] a [element 2] | array_flow.rb:1296:10:1296:10 | a [element 2] | | array_flow.rb:1290:9:1290:9 | [post] a [element 2] | array_flow.rb:1296:10:1296:10 | a [element 2] | | array_flow.rb:1290:9:1290:9 | a [element 2] | array_flow.rb:1290:9:1290:22 | call to slice! [element 0] | -| array_flow.rb:1290:9:1290:9 | a [element 2] | array_flow.rb:1290:9:1290:22 | call to slice! [element 0] | -| array_flow.rb:1290:9:1290:9 | a [element 4] | array_flow.rb:1290:9:1290:9 | [post] a [element 2] | | array_flow.rb:1290:9:1290:9 | a [element 4] | array_flow.rb:1290:9:1290:9 | [post] a [element 2] | | array_flow.rb:1290:9:1290:22 | call to slice! [element 0] | array_flow.rb:1290:5:1290:5 | b [element 0] | -| array_flow.rb:1290:9:1290:22 | call to slice! [element 0] | array_flow.rb:1290:5:1290:5 | b [element 0] | -| array_flow.rb:1291:10:1291:10 | b [element 0] | array_flow.rb:1291:10:1291:13 | ...[...] | | array_flow.rb:1291:10:1291:10 | b [element 0] | array_flow.rb:1291:10:1291:13 | ...[...] | | array_flow.rb:1296:10:1296:10 | a [element 2] | array_flow.rb:1296:10:1296:13 | ...[...] | -| array_flow.rb:1296:10:1296:10 | a [element 2] | array_flow.rb:1296:10:1296:13 | ...[...] | -| array_flow.rb:1300:5:1300:5 | a [element 2] | array_flow.rb:1301:9:1301:9 | a [element 2] | | array_flow.rb:1300:5:1300:5 | a [element 2] | array_flow.rb:1301:9:1301:9 | a [element 2] | | array_flow.rb:1300:5:1300:5 | a [element 4] | array_flow.rb:1301:9:1301:9 | a [element 4] | -| array_flow.rb:1300:5:1300:5 | a [element 4] | array_flow.rb:1301:9:1301:9 | a [element 4] | -| array_flow.rb:1300:16:1300:28 | call to source | array_flow.rb:1300:5:1300:5 | a [element 2] | | array_flow.rb:1300:16:1300:28 | call to source | array_flow.rb:1300:5:1300:5 | a [element 2] | | array_flow.rb:1300:34:1300:46 | call to source | array_flow.rb:1300:5:1300:5 | a [element 4] | -| array_flow.rb:1300:34:1300:46 | call to source | array_flow.rb:1300:5:1300:5 | a [element 4] | -| array_flow.rb:1301:5:1301:5 | b [element 0] | array_flow.rb:1302:10:1302:10 | b [element 0] | | array_flow.rb:1301:5:1301:5 | b [element 0] | array_flow.rb:1302:10:1302:10 | b [element 0] | | array_flow.rb:1301:9:1301:9 | [post] a [element 2] | array_flow.rb:1307:10:1307:10 | a [element 2] | -| array_flow.rb:1301:9:1301:9 | [post] a [element 2] | array_flow.rb:1307:10:1307:10 | a [element 2] | -| array_flow.rb:1301:9:1301:9 | a [element 2] | array_flow.rb:1301:9:1301:23 | call to slice! [element 0] | | array_flow.rb:1301:9:1301:9 | a [element 2] | array_flow.rb:1301:9:1301:23 | call to slice! [element 0] | | array_flow.rb:1301:9:1301:9 | a [element 4] | array_flow.rb:1301:9:1301:9 | [post] a [element 2] | -| array_flow.rb:1301:9:1301:9 | a [element 4] | array_flow.rb:1301:9:1301:9 | [post] a [element 2] | -| array_flow.rb:1301:9:1301:23 | call to slice! [element 0] | array_flow.rb:1301:5:1301:5 | b [element 0] | | array_flow.rb:1301:9:1301:23 | call to slice! [element 0] | array_flow.rb:1301:5:1301:5 | b [element 0] | | array_flow.rb:1302:10:1302:10 | b [element 0] | array_flow.rb:1302:10:1302:13 | ...[...] | -| array_flow.rb:1302:10:1302:10 | b [element 0] | array_flow.rb:1302:10:1302:13 | ...[...] | -| array_flow.rb:1307:10:1307:10 | a [element 2] | array_flow.rb:1307:10:1307:13 | ...[...] | | array_flow.rb:1307:10:1307:10 | a [element 2] | array_flow.rb:1307:10:1307:13 | ...[...] | | array_flow.rb:1311:5:1311:5 | a [element 2] | array_flow.rb:1312:9:1312:9 | a [element 2] | -| array_flow.rb:1311:5:1311:5 | a [element 2] | array_flow.rb:1312:9:1312:9 | a [element 2] | -| array_flow.rb:1311:5:1311:5 | a [element 4] | array_flow.rb:1312:9:1312:9 | a [element 4] | | array_flow.rb:1311:5:1311:5 | a [element 4] | array_flow.rb:1312:9:1312:9 | a [element 4] | | array_flow.rb:1311:16:1311:28 | call to source | array_flow.rb:1311:5:1311:5 | a [element 2] | -| array_flow.rb:1311:16:1311:28 | call to source | array_flow.rb:1311:5:1311:5 | a [element 2] | -| array_flow.rb:1311:34:1311:46 | call to source | array_flow.rb:1311:5:1311:5 | a [element 4] | | array_flow.rb:1311:34:1311:46 | call to source | array_flow.rb:1311:5:1311:5 | a [element 4] | | array_flow.rb:1312:5:1312:5 | b [element] | array_flow.rb:1313:10:1313:10 | b [element] | -| array_flow.rb:1312:5:1312:5 | b [element] | array_flow.rb:1313:10:1313:10 | b [element] | -| array_flow.rb:1312:5:1312:5 | b [element] | array_flow.rb:1314:10:1314:10 | b [element] | | array_flow.rb:1312:5:1312:5 | b [element] | array_flow.rb:1314:10:1314:10 | b [element] | | array_flow.rb:1312:5:1312:5 | b [element] | array_flow.rb:1315:10:1315:10 | b [element] | -| array_flow.rb:1312:5:1312:5 | b [element] | array_flow.rb:1315:10:1315:10 | b [element] | -| array_flow.rb:1312:9:1312:9 | [post] a [element] | array_flow.rb:1316:10:1316:10 | a [element] | | array_flow.rb:1312:9:1312:9 | [post] a [element] | array_flow.rb:1316:10:1316:10 | a [element] | | array_flow.rb:1312:9:1312:9 | [post] a [element] | array_flow.rb:1317:10:1317:10 | a [element] | -| array_flow.rb:1312:9:1312:9 | [post] a [element] | array_flow.rb:1317:10:1317:10 | a [element] | -| array_flow.rb:1312:9:1312:9 | [post] a [element] | array_flow.rb:1318:10:1318:10 | a [element] | | array_flow.rb:1312:9:1312:9 | [post] a [element] | array_flow.rb:1318:10:1318:10 | a [element] | | array_flow.rb:1312:9:1312:9 | a [element 2] | array_flow.rb:1312:9:1312:9 | [post] a [element] | -| array_flow.rb:1312:9:1312:9 | a [element 2] | array_flow.rb:1312:9:1312:9 | [post] a [element] | -| array_flow.rb:1312:9:1312:9 | a [element 2] | array_flow.rb:1312:9:1312:22 | call to slice! [element] | | array_flow.rb:1312:9:1312:9 | a [element 2] | array_flow.rb:1312:9:1312:22 | call to slice! [element] | | array_flow.rb:1312:9:1312:9 | a [element 4] | array_flow.rb:1312:9:1312:9 | [post] a [element] | -| array_flow.rb:1312:9:1312:9 | a [element 4] | array_flow.rb:1312:9:1312:9 | [post] a [element] | -| array_flow.rb:1312:9:1312:9 | a [element 4] | array_flow.rb:1312:9:1312:22 | call to slice! [element] | | array_flow.rb:1312:9:1312:9 | a [element 4] | array_flow.rb:1312:9:1312:22 | call to slice! [element] | | array_flow.rb:1312:9:1312:22 | call to slice! [element] | array_flow.rb:1312:5:1312:5 | b [element] | -| array_flow.rb:1312:9:1312:22 | call to slice! [element] | array_flow.rb:1312:5:1312:5 | b [element] | -| array_flow.rb:1313:10:1313:10 | b [element] | array_flow.rb:1313:10:1313:13 | ...[...] | | array_flow.rb:1313:10:1313:10 | b [element] | array_flow.rb:1313:10:1313:13 | ...[...] | | array_flow.rb:1314:10:1314:10 | b [element] | array_flow.rb:1314:10:1314:13 | ...[...] | -| array_flow.rb:1314:10:1314:10 | b [element] | array_flow.rb:1314:10:1314:13 | ...[...] | -| array_flow.rb:1315:10:1315:10 | b [element] | array_flow.rb:1315:10:1315:13 | ...[...] | | array_flow.rb:1315:10:1315:10 | b [element] | array_flow.rb:1315:10:1315:13 | ...[...] | | array_flow.rb:1316:10:1316:10 | a [element] | array_flow.rb:1316:10:1316:13 | ...[...] | -| array_flow.rb:1316:10:1316:10 | a [element] | array_flow.rb:1316:10:1316:13 | ...[...] | -| array_flow.rb:1317:10:1317:10 | a [element] | array_flow.rb:1317:10:1317:13 | ...[...] | | array_flow.rb:1317:10:1317:10 | a [element] | array_flow.rb:1317:10:1317:13 | ...[...] | | array_flow.rb:1318:10:1318:10 | a [element] | array_flow.rb:1318:10:1318:13 | ...[...] | -| array_flow.rb:1318:10:1318:10 | a [element] | array_flow.rb:1318:10:1318:13 | ...[...] | -| array_flow.rb:1320:5:1320:5 | a [element 2] | array_flow.rb:1321:9:1321:9 | a [element 2] | | array_flow.rb:1320:5:1320:5 | a [element 2] | array_flow.rb:1321:9:1321:9 | a [element 2] | | array_flow.rb:1320:5:1320:5 | a [element 4] | array_flow.rb:1321:9:1321:9 | a [element 4] | -| array_flow.rb:1320:5:1320:5 | a [element 4] | array_flow.rb:1321:9:1321:9 | a [element 4] | -| array_flow.rb:1320:16:1320:28 | call to source | array_flow.rb:1320:5:1320:5 | a [element 2] | | array_flow.rb:1320:16:1320:28 | call to source | array_flow.rb:1320:5:1320:5 | a [element 2] | | array_flow.rb:1320:34:1320:46 | call to source | array_flow.rb:1320:5:1320:5 | a [element 4] | -| array_flow.rb:1320:34:1320:46 | call to source | array_flow.rb:1320:5:1320:5 | a [element 4] | -| array_flow.rb:1321:5:1321:5 | b [element] | array_flow.rb:1322:10:1322:10 | b [element] | | array_flow.rb:1321:5:1321:5 | b [element] | array_flow.rb:1322:10:1322:10 | b [element] | | array_flow.rb:1321:5:1321:5 | b [element] | array_flow.rb:1323:10:1323:10 | b [element] | -| array_flow.rb:1321:5:1321:5 | b [element] | array_flow.rb:1323:10:1323:10 | b [element] | -| array_flow.rb:1321:5:1321:5 | b [element] | array_flow.rb:1324:10:1324:10 | b [element] | | array_flow.rb:1321:5:1321:5 | b [element] | array_flow.rb:1324:10:1324:10 | b [element] | | array_flow.rb:1321:9:1321:9 | [post] a [element] | array_flow.rb:1325:10:1325:10 | a [element] | -| array_flow.rb:1321:9:1321:9 | [post] a [element] | array_flow.rb:1325:10:1325:10 | a [element] | -| array_flow.rb:1321:9:1321:9 | [post] a [element] | array_flow.rb:1326:10:1326:10 | a [element] | | array_flow.rb:1321:9:1321:9 | [post] a [element] | array_flow.rb:1326:10:1326:10 | a [element] | | array_flow.rb:1321:9:1321:9 | [post] a [element] | array_flow.rb:1327:10:1327:10 | a [element] | -| array_flow.rb:1321:9:1321:9 | [post] a [element] | array_flow.rb:1327:10:1327:10 | a [element] | -| array_flow.rb:1321:9:1321:9 | a [element 2] | array_flow.rb:1321:9:1321:9 | [post] a [element] | | array_flow.rb:1321:9:1321:9 | a [element 2] | array_flow.rb:1321:9:1321:9 | [post] a [element] | | array_flow.rb:1321:9:1321:9 | a [element 2] | array_flow.rb:1321:9:1321:22 | call to slice! [element] | -| array_flow.rb:1321:9:1321:9 | a [element 2] | array_flow.rb:1321:9:1321:22 | call to slice! [element] | -| array_flow.rb:1321:9:1321:9 | a [element 4] | array_flow.rb:1321:9:1321:9 | [post] a [element] | | array_flow.rb:1321:9:1321:9 | a [element 4] | array_flow.rb:1321:9:1321:9 | [post] a [element] | | array_flow.rb:1321:9:1321:9 | a [element 4] | array_flow.rb:1321:9:1321:22 | call to slice! [element] | -| array_flow.rb:1321:9:1321:9 | a [element 4] | array_flow.rb:1321:9:1321:22 | call to slice! [element] | -| array_flow.rb:1321:9:1321:22 | call to slice! [element] | array_flow.rb:1321:5:1321:5 | b [element] | | array_flow.rb:1321:9:1321:22 | call to slice! [element] | array_flow.rb:1321:5:1321:5 | b [element] | | array_flow.rb:1322:10:1322:10 | b [element] | array_flow.rb:1322:10:1322:13 | ...[...] | -| array_flow.rb:1322:10:1322:10 | b [element] | array_flow.rb:1322:10:1322:13 | ...[...] | -| array_flow.rb:1323:10:1323:10 | b [element] | array_flow.rb:1323:10:1323:13 | ...[...] | | array_flow.rb:1323:10:1323:10 | b [element] | array_flow.rb:1323:10:1323:13 | ...[...] | | array_flow.rb:1324:10:1324:10 | b [element] | array_flow.rb:1324:10:1324:13 | ...[...] | -| array_flow.rb:1324:10:1324:10 | b [element] | array_flow.rb:1324:10:1324:13 | ...[...] | -| array_flow.rb:1325:10:1325:10 | a [element] | array_flow.rb:1325:10:1325:13 | ...[...] | | array_flow.rb:1325:10:1325:10 | a [element] | array_flow.rb:1325:10:1325:13 | ...[...] | | array_flow.rb:1326:10:1326:10 | a [element] | array_flow.rb:1326:10:1326:13 | ...[...] | -| array_flow.rb:1326:10:1326:10 | a [element] | array_flow.rb:1326:10:1326:13 | ...[...] | -| array_flow.rb:1327:10:1327:10 | a [element] | array_flow.rb:1327:10:1327:13 | ...[...] | | array_flow.rb:1327:10:1327:10 | a [element] | array_flow.rb:1327:10:1327:13 | ...[...] | | array_flow.rb:1329:5:1329:5 | a [element 2] | array_flow.rb:1330:9:1330:9 | a [element 2] | -| array_flow.rb:1329:5:1329:5 | a [element 2] | array_flow.rb:1330:9:1330:9 | a [element 2] | -| array_flow.rb:1329:5:1329:5 | a [element 4] | array_flow.rb:1330:9:1330:9 | a [element 4] | | array_flow.rb:1329:5:1329:5 | a [element 4] | array_flow.rb:1330:9:1330:9 | a [element 4] | | array_flow.rb:1329:16:1329:28 | call to source | array_flow.rb:1329:5:1329:5 | a [element 2] | -| array_flow.rb:1329:16:1329:28 | call to source | array_flow.rb:1329:5:1329:5 | a [element 2] | -| array_flow.rb:1329:34:1329:46 | call to source | array_flow.rb:1329:5:1329:5 | a [element 4] | | array_flow.rb:1329:34:1329:46 | call to source | array_flow.rb:1329:5:1329:5 | a [element 4] | | array_flow.rb:1330:5:1330:5 | b [element] | array_flow.rb:1331:10:1331:10 | b [element] | -| array_flow.rb:1330:5:1330:5 | b [element] | array_flow.rb:1331:10:1331:10 | b [element] | -| array_flow.rb:1330:5:1330:5 | b [element] | array_flow.rb:1332:10:1332:10 | b [element] | | array_flow.rb:1330:5:1330:5 | b [element] | array_flow.rb:1332:10:1332:10 | b [element] | | array_flow.rb:1330:5:1330:5 | b [element] | array_flow.rb:1333:10:1333:10 | b [element] | -| array_flow.rb:1330:5:1330:5 | b [element] | array_flow.rb:1333:10:1333:10 | b [element] | -| array_flow.rb:1330:9:1330:9 | [post] a [element] | array_flow.rb:1334:10:1334:10 | a [element] | | array_flow.rb:1330:9:1330:9 | [post] a [element] | array_flow.rb:1334:10:1334:10 | a [element] | | array_flow.rb:1330:9:1330:9 | [post] a [element] | array_flow.rb:1335:10:1335:10 | a [element] | -| array_flow.rb:1330:9:1330:9 | [post] a [element] | array_flow.rb:1335:10:1335:10 | a [element] | -| array_flow.rb:1330:9:1330:9 | [post] a [element] | array_flow.rb:1336:10:1336:10 | a [element] | | array_flow.rb:1330:9:1330:9 | [post] a [element] | array_flow.rb:1336:10:1336:10 | a [element] | | array_flow.rb:1330:9:1330:9 | a [element 2] | array_flow.rb:1330:9:1330:9 | [post] a [element] | -| array_flow.rb:1330:9:1330:9 | a [element 2] | array_flow.rb:1330:9:1330:9 | [post] a [element] | -| array_flow.rb:1330:9:1330:9 | a [element 2] | array_flow.rb:1330:9:1330:25 | call to slice! [element] | | array_flow.rb:1330:9:1330:9 | a [element 2] | array_flow.rb:1330:9:1330:25 | call to slice! [element] | | array_flow.rb:1330:9:1330:9 | a [element 4] | array_flow.rb:1330:9:1330:9 | [post] a [element] | -| array_flow.rb:1330:9:1330:9 | a [element 4] | array_flow.rb:1330:9:1330:9 | [post] a [element] | -| array_flow.rb:1330:9:1330:9 | a [element 4] | array_flow.rb:1330:9:1330:25 | call to slice! [element] | | array_flow.rb:1330:9:1330:9 | a [element 4] | array_flow.rb:1330:9:1330:25 | call to slice! [element] | | array_flow.rb:1330:9:1330:25 | call to slice! [element] | array_flow.rb:1330:5:1330:5 | b [element] | -| array_flow.rb:1330:9:1330:25 | call to slice! [element] | array_flow.rb:1330:5:1330:5 | b [element] | -| array_flow.rb:1331:10:1331:10 | b [element] | array_flow.rb:1331:10:1331:13 | ...[...] | | array_flow.rb:1331:10:1331:10 | b [element] | array_flow.rb:1331:10:1331:13 | ...[...] | | array_flow.rb:1332:10:1332:10 | b [element] | array_flow.rb:1332:10:1332:13 | ...[...] | -| array_flow.rb:1332:10:1332:10 | b [element] | array_flow.rb:1332:10:1332:13 | ...[...] | -| array_flow.rb:1333:10:1333:10 | b [element] | array_flow.rb:1333:10:1333:13 | ...[...] | | array_flow.rb:1333:10:1333:10 | b [element] | array_flow.rb:1333:10:1333:13 | ...[...] | | array_flow.rb:1334:10:1334:10 | a [element] | array_flow.rb:1334:10:1334:13 | ...[...] | -| array_flow.rb:1334:10:1334:10 | a [element] | array_flow.rb:1334:10:1334:13 | ...[...] | -| array_flow.rb:1335:10:1335:10 | a [element] | array_flow.rb:1335:10:1335:13 | ...[...] | | array_flow.rb:1335:10:1335:10 | a [element] | array_flow.rb:1335:10:1335:13 | ...[...] | | array_flow.rb:1336:10:1336:10 | a [element] | array_flow.rb:1336:10:1336:13 | ...[...] | -| array_flow.rb:1336:10:1336:10 | a [element] | array_flow.rb:1336:10:1336:13 | ...[...] | -| array_flow.rb:1338:5:1338:5 | a [element 2] | array_flow.rb:1339:9:1339:9 | a [element 2] | | array_flow.rb:1338:5:1338:5 | a [element 2] | array_flow.rb:1339:9:1339:9 | a [element 2] | | array_flow.rb:1338:5:1338:5 | a [element 4] | array_flow.rb:1339:9:1339:9 | a [element 4] | -| array_flow.rb:1338:5:1338:5 | a [element 4] | array_flow.rb:1339:9:1339:9 | a [element 4] | -| array_flow.rb:1338:16:1338:28 | call to source | array_flow.rb:1338:5:1338:5 | a [element 2] | | array_flow.rb:1338:16:1338:28 | call to source | array_flow.rb:1338:5:1338:5 | a [element 2] | | array_flow.rb:1338:34:1338:46 | call to source | array_flow.rb:1338:5:1338:5 | a [element 4] | -| array_flow.rb:1338:34:1338:46 | call to source | array_flow.rb:1338:5:1338:5 | a [element 4] | -| array_flow.rb:1339:5:1339:5 | b [element 2] | array_flow.rb:1342:10:1342:10 | b [element 2] | | array_flow.rb:1339:5:1339:5 | b [element 2] | array_flow.rb:1342:10:1342:10 | b [element 2] | | array_flow.rb:1339:9:1339:9 | [post] a [element 1] | array_flow.rb:1344:10:1344:10 | a [element 1] | -| array_flow.rb:1339:9:1339:9 | [post] a [element 1] | array_flow.rb:1344:10:1344:10 | a [element 1] | -| array_flow.rb:1339:9:1339:9 | a [element 2] | array_flow.rb:1339:9:1339:21 | call to slice! [element 2] | | array_flow.rb:1339:9:1339:9 | a [element 2] | array_flow.rb:1339:9:1339:21 | call to slice! [element 2] | | array_flow.rb:1339:9:1339:9 | a [element 4] | array_flow.rb:1339:9:1339:9 | [post] a [element 1] | -| array_flow.rb:1339:9:1339:9 | a [element 4] | array_flow.rb:1339:9:1339:9 | [post] a [element 1] | -| array_flow.rb:1339:9:1339:21 | call to slice! [element 2] | array_flow.rb:1339:5:1339:5 | b [element 2] | | array_flow.rb:1339:9:1339:21 | call to slice! [element 2] | array_flow.rb:1339:5:1339:5 | b [element 2] | | array_flow.rb:1342:10:1342:10 | b [element 2] | array_flow.rb:1342:10:1342:13 | ...[...] | -| array_flow.rb:1342:10:1342:10 | b [element 2] | array_flow.rb:1342:10:1342:13 | ...[...] | -| array_flow.rb:1344:10:1344:10 | a [element 1] | array_flow.rb:1344:10:1344:13 | ...[...] | | array_flow.rb:1344:10:1344:10 | a [element 1] | array_flow.rb:1344:10:1344:13 | ...[...] | | array_flow.rb:1347:5:1347:5 | a [element 2] | array_flow.rb:1348:9:1348:9 | a [element 2] | -| array_flow.rb:1347:5:1347:5 | a [element 2] | array_flow.rb:1348:9:1348:9 | a [element 2] | -| array_flow.rb:1347:5:1347:5 | a [element 4] | array_flow.rb:1348:9:1348:9 | a [element 4] | | array_flow.rb:1347:5:1347:5 | a [element 4] | array_flow.rb:1348:9:1348:9 | a [element 4] | | array_flow.rb:1347:16:1347:28 | call to source | array_flow.rb:1347:5:1347:5 | a [element 2] | -| array_flow.rb:1347:16:1347:28 | call to source | array_flow.rb:1347:5:1347:5 | a [element 2] | -| array_flow.rb:1347:34:1347:46 | call to source | array_flow.rb:1347:5:1347:5 | a [element 4] | | array_flow.rb:1347:34:1347:46 | call to source | array_flow.rb:1347:5:1347:5 | a [element 4] | | array_flow.rb:1348:5:1348:5 | b [element] | array_flow.rb:1349:10:1349:10 | b [element] | -| array_flow.rb:1348:5:1348:5 | b [element] | array_flow.rb:1349:10:1349:10 | b [element] | -| array_flow.rb:1348:5:1348:5 | b [element] | array_flow.rb:1350:10:1350:10 | b [element] | | array_flow.rb:1348:5:1348:5 | b [element] | array_flow.rb:1350:10:1350:10 | b [element] | | array_flow.rb:1348:5:1348:5 | b [element] | array_flow.rb:1351:10:1351:10 | b [element] | -| array_flow.rb:1348:5:1348:5 | b [element] | array_flow.rb:1351:10:1351:10 | b [element] | -| array_flow.rb:1348:9:1348:9 | [post] a [element] | array_flow.rb:1352:10:1352:10 | a [element] | | array_flow.rb:1348:9:1348:9 | [post] a [element] | array_flow.rb:1352:10:1352:10 | a [element] | | array_flow.rb:1348:9:1348:9 | [post] a [element] | array_flow.rb:1353:10:1353:10 | a [element] | -| array_flow.rb:1348:9:1348:9 | [post] a [element] | array_flow.rb:1353:10:1353:10 | a [element] | -| array_flow.rb:1348:9:1348:9 | [post] a [element] | array_flow.rb:1354:10:1354:10 | a [element] | | array_flow.rb:1348:9:1348:9 | [post] a [element] | array_flow.rb:1354:10:1354:10 | a [element] | | array_flow.rb:1348:9:1348:9 | a [element 2] | array_flow.rb:1348:9:1348:9 | [post] a [element] | -| array_flow.rb:1348:9:1348:9 | a [element 2] | array_flow.rb:1348:9:1348:9 | [post] a [element] | -| array_flow.rb:1348:9:1348:9 | a [element 2] | array_flow.rb:1348:9:1348:21 | call to slice! [element] | | array_flow.rb:1348:9:1348:9 | a [element 2] | array_flow.rb:1348:9:1348:21 | call to slice! [element] | | array_flow.rb:1348:9:1348:9 | a [element 4] | array_flow.rb:1348:9:1348:9 | [post] a [element] | -| array_flow.rb:1348:9:1348:9 | a [element 4] | array_flow.rb:1348:9:1348:9 | [post] a [element] | -| array_flow.rb:1348:9:1348:9 | a [element 4] | array_flow.rb:1348:9:1348:21 | call to slice! [element] | | array_flow.rb:1348:9:1348:9 | a [element 4] | array_flow.rb:1348:9:1348:21 | call to slice! [element] | | array_flow.rb:1348:9:1348:21 | call to slice! [element] | array_flow.rb:1348:5:1348:5 | b [element] | -| array_flow.rb:1348:9:1348:21 | call to slice! [element] | array_flow.rb:1348:5:1348:5 | b [element] | -| array_flow.rb:1349:10:1349:10 | b [element] | array_flow.rb:1349:10:1349:13 | ...[...] | | array_flow.rb:1349:10:1349:10 | b [element] | array_flow.rb:1349:10:1349:13 | ...[...] | | array_flow.rb:1350:10:1350:10 | b [element] | array_flow.rb:1350:10:1350:13 | ...[...] | -| array_flow.rb:1350:10:1350:10 | b [element] | array_flow.rb:1350:10:1350:13 | ...[...] | -| array_flow.rb:1351:10:1351:10 | b [element] | array_flow.rb:1351:10:1351:13 | ...[...] | | array_flow.rb:1351:10:1351:10 | b [element] | array_flow.rb:1351:10:1351:13 | ...[...] | | array_flow.rb:1352:10:1352:10 | a [element] | array_flow.rb:1352:10:1352:13 | ...[...] | -| array_flow.rb:1352:10:1352:10 | a [element] | array_flow.rb:1352:10:1352:13 | ...[...] | -| array_flow.rb:1353:10:1353:10 | a [element] | array_flow.rb:1353:10:1353:13 | ...[...] | | array_flow.rb:1353:10:1353:10 | a [element] | array_flow.rb:1353:10:1353:13 | ...[...] | | array_flow.rb:1354:10:1354:10 | a [element] | array_flow.rb:1354:10:1354:13 | ...[...] | -| array_flow.rb:1354:10:1354:10 | a [element] | array_flow.rb:1354:10:1354:13 | ...[...] | -| array_flow.rb:1358:5:1358:5 | a [element 2] | array_flow.rb:1359:9:1359:9 | a [element 2] | | array_flow.rb:1358:5:1358:5 | a [element 2] | array_flow.rb:1359:9:1359:9 | a [element 2] | | array_flow.rb:1358:16:1358:26 | call to source | array_flow.rb:1358:5:1358:5 | a [element 2] | -| array_flow.rb:1358:16:1358:26 | call to source | array_flow.rb:1358:5:1358:5 | a [element 2] | -| array_flow.rb:1359:9:1359:9 | a [element 2] | array_flow.rb:1359:27:1359:27 | x | | array_flow.rb:1359:9:1359:9 | a [element 2] | array_flow.rb:1359:27:1359:27 | x | | array_flow.rb:1359:27:1359:27 | x | array_flow.rb:1360:14:1360:14 | x | -| array_flow.rb:1359:27:1359:27 | x | array_flow.rb:1360:14:1360:14 | x | -| array_flow.rb:1366:5:1366:5 | a [element 2] | array_flow.rb:1367:9:1367:9 | a [element 2] | | array_flow.rb:1366:5:1366:5 | a [element 2] | array_flow.rb:1367:9:1367:9 | a [element 2] | | array_flow.rb:1366:16:1366:26 | call to source | array_flow.rb:1366:5:1366:5 | a [element 2] | -| array_flow.rb:1366:16:1366:26 | call to source | array_flow.rb:1366:5:1366:5 | a [element 2] | -| array_flow.rb:1367:9:1367:9 | a [element 2] | array_flow.rb:1367:28:1367:28 | x | | array_flow.rb:1367:9:1367:9 | a [element 2] | array_flow.rb:1367:28:1367:28 | x | | array_flow.rb:1367:28:1367:28 | x | array_flow.rb:1368:14:1368:14 | x | -| array_flow.rb:1367:28:1367:28 | x | array_flow.rb:1368:14:1368:14 | x | -| array_flow.rb:1374:5:1374:5 | a [element 2] | array_flow.rb:1375:9:1375:9 | a [element 2] | | array_flow.rb:1374:5:1374:5 | a [element 2] | array_flow.rb:1375:9:1375:9 | a [element 2] | | array_flow.rb:1374:16:1374:26 | call to source | array_flow.rb:1374:5:1374:5 | a [element 2] | -| array_flow.rb:1374:16:1374:26 | call to source | array_flow.rb:1374:5:1374:5 | a [element 2] | -| array_flow.rb:1375:9:1375:9 | a [element 2] | array_flow.rb:1375:26:1375:26 | x | | array_flow.rb:1375:9:1375:9 | a [element 2] | array_flow.rb:1375:26:1375:26 | x | | array_flow.rb:1375:9:1375:9 | a [element 2] | array_flow.rb:1375:29:1375:29 | y | -| array_flow.rb:1375:9:1375:9 | a [element 2] | array_flow.rb:1375:29:1375:29 | y | -| array_flow.rb:1375:26:1375:26 | x | array_flow.rb:1376:14:1376:14 | x | | array_flow.rb:1375:26:1375:26 | x | array_flow.rb:1376:14:1376:14 | x | | array_flow.rb:1375:29:1375:29 | y | array_flow.rb:1377:14:1377:14 | y | -| array_flow.rb:1375:29:1375:29 | y | array_flow.rb:1377:14:1377:14 | y | -| array_flow.rb:1382:5:1382:5 | a [element 2] | array_flow.rb:1383:9:1383:9 | a [element 2] | | array_flow.rb:1382:5:1382:5 | a [element 2] | array_flow.rb:1383:9:1383:9 | a [element 2] | | array_flow.rb:1382:5:1382:5 | a [element 2] | array_flow.rb:1386:9:1386:9 | a [element 2] | -| array_flow.rb:1382:5:1382:5 | a [element 2] | array_flow.rb:1386:9:1386:9 | a [element 2] | -| array_flow.rb:1382:16:1382:26 | call to source | array_flow.rb:1382:5:1382:5 | a [element 2] | | array_flow.rb:1382:16:1382:26 | call to source | array_flow.rb:1382:5:1382:5 | a [element 2] | | array_flow.rb:1383:5:1383:5 | b [element] | array_flow.rb:1384:10:1384:10 | b [element] | -| array_flow.rb:1383:5:1383:5 | b [element] | array_flow.rb:1384:10:1384:10 | b [element] | -| array_flow.rb:1383:5:1383:5 | b [element] | array_flow.rb:1385:10:1385:10 | b [element] | | array_flow.rb:1383:5:1383:5 | b [element] | array_flow.rb:1385:10:1385:10 | b [element] | | array_flow.rb:1383:9:1383:9 | a [element 2] | array_flow.rb:1383:9:1383:14 | call to sort [element] | -| array_flow.rb:1383:9:1383:9 | a [element 2] | array_flow.rb:1383:9:1383:14 | call to sort [element] | -| array_flow.rb:1383:9:1383:14 | call to sort [element] | array_flow.rb:1383:5:1383:5 | b [element] | | array_flow.rb:1383:9:1383:14 | call to sort [element] | array_flow.rb:1383:5:1383:5 | b [element] | | array_flow.rb:1384:10:1384:10 | b [element] | array_flow.rb:1384:10:1384:13 | ...[...] | -| array_flow.rb:1384:10:1384:10 | b [element] | array_flow.rb:1384:10:1384:13 | ...[...] | -| array_flow.rb:1385:10:1385:10 | b [element] | array_flow.rb:1385:10:1385:13 | ...[...] | | array_flow.rb:1385:10:1385:10 | b [element] | array_flow.rb:1385:10:1385:13 | ...[...] | | array_flow.rb:1386:5:1386:5 | c [element] | array_flow.rb:1391:10:1391:10 | c [element] | -| array_flow.rb:1386:5:1386:5 | c [element] | array_flow.rb:1391:10:1391:10 | c [element] | -| array_flow.rb:1386:5:1386:5 | c [element] | array_flow.rb:1392:10:1392:10 | c [element] | | array_flow.rb:1386:5:1386:5 | c [element] | array_flow.rb:1392:10:1392:10 | c [element] | | array_flow.rb:1386:9:1386:9 | a [element 2] | array_flow.rb:1386:9:1390:7 | call to sort [element] | -| array_flow.rb:1386:9:1386:9 | a [element 2] | array_flow.rb:1386:9:1390:7 | call to sort [element] | -| array_flow.rb:1386:9:1386:9 | a [element 2] | array_flow.rb:1386:20:1386:20 | x | | array_flow.rb:1386:9:1386:9 | a [element 2] | array_flow.rb:1386:20:1386:20 | x | | array_flow.rb:1386:9:1386:9 | a [element 2] | array_flow.rb:1386:23:1386:23 | y | -| array_flow.rb:1386:9:1386:9 | a [element 2] | array_flow.rb:1386:23:1386:23 | y | -| array_flow.rb:1386:9:1390:7 | call to sort [element] | array_flow.rb:1386:5:1386:5 | c [element] | | array_flow.rb:1386:9:1390:7 | call to sort [element] | array_flow.rb:1386:5:1386:5 | c [element] | | array_flow.rb:1386:20:1386:20 | x | array_flow.rb:1387:14:1387:14 | x | -| array_flow.rb:1386:20:1386:20 | x | array_flow.rb:1387:14:1387:14 | x | -| array_flow.rb:1386:23:1386:23 | y | array_flow.rb:1388:14:1388:14 | y | | array_flow.rb:1386:23:1386:23 | y | array_flow.rb:1388:14:1388:14 | y | | array_flow.rb:1391:10:1391:10 | c [element] | array_flow.rb:1391:10:1391:13 | ...[...] | -| array_flow.rb:1391:10:1391:10 | c [element] | array_flow.rb:1391:10:1391:13 | ...[...] | -| array_flow.rb:1392:10:1392:10 | c [element] | array_flow.rb:1392:10:1392:13 | ...[...] | | array_flow.rb:1392:10:1392:10 | c [element] | array_flow.rb:1392:10:1392:13 | ...[...] | | array_flow.rb:1396:5:1396:5 | a [element 2] | array_flow.rb:1397:9:1397:9 | a [element 2] | -| array_flow.rb:1396:5:1396:5 | a [element 2] | array_flow.rb:1397:9:1397:9 | a [element 2] | -| array_flow.rb:1396:16:1396:26 | call to source | array_flow.rb:1396:5:1396:5 | a [element 2] | | array_flow.rb:1396:16:1396:26 | call to source | array_flow.rb:1396:5:1396:5 | a [element 2] | | array_flow.rb:1397:5:1397:5 | b [element] | array_flow.rb:1398:10:1398:10 | b [element] | -| array_flow.rb:1397:5:1397:5 | b [element] | array_flow.rb:1398:10:1398:10 | b [element] | -| array_flow.rb:1397:5:1397:5 | b [element] | array_flow.rb:1399:10:1399:10 | b [element] | | array_flow.rb:1397:5:1397:5 | b [element] | array_flow.rb:1399:10:1399:10 | b [element] | | array_flow.rb:1397:9:1397:9 | [post] a [element] | array_flow.rb:1400:10:1400:10 | a [element] | -| array_flow.rb:1397:9:1397:9 | [post] a [element] | array_flow.rb:1400:10:1400:10 | a [element] | -| array_flow.rb:1397:9:1397:9 | [post] a [element] | array_flow.rb:1401:10:1401:10 | a [element] | | array_flow.rb:1397:9:1397:9 | [post] a [element] | array_flow.rb:1401:10:1401:10 | a [element] | | array_flow.rb:1397:9:1397:9 | a [element 2] | array_flow.rb:1397:9:1397:9 | [post] a [element] | -| array_flow.rb:1397:9:1397:9 | a [element 2] | array_flow.rb:1397:9:1397:9 | [post] a [element] | -| array_flow.rb:1397:9:1397:9 | a [element 2] | array_flow.rb:1397:9:1397:15 | call to sort! [element] | | array_flow.rb:1397:9:1397:9 | a [element 2] | array_flow.rb:1397:9:1397:15 | call to sort! [element] | | array_flow.rb:1397:9:1397:15 | call to sort! [element] | array_flow.rb:1397:5:1397:5 | b [element] | -| array_flow.rb:1397:9:1397:15 | call to sort! [element] | array_flow.rb:1397:5:1397:5 | b [element] | -| array_flow.rb:1398:10:1398:10 | b [element] | array_flow.rb:1398:10:1398:13 | ...[...] | | array_flow.rb:1398:10:1398:10 | b [element] | array_flow.rb:1398:10:1398:13 | ...[...] | | array_flow.rb:1399:10:1399:10 | b [element] | array_flow.rb:1399:10:1399:13 | ...[...] | -| array_flow.rb:1399:10:1399:10 | b [element] | array_flow.rb:1399:10:1399:13 | ...[...] | -| array_flow.rb:1400:10:1400:10 | a [element] | array_flow.rb:1400:10:1400:13 | ...[...] | | array_flow.rb:1400:10:1400:10 | a [element] | array_flow.rb:1400:10:1400:13 | ...[...] | | array_flow.rb:1401:10:1401:10 | a [element] | array_flow.rb:1401:10:1401:13 | ...[...] | -| array_flow.rb:1401:10:1401:10 | a [element] | array_flow.rb:1401:10:1401:13 | ...[...] | -| array_flow.rb:1403:5:1403:5 | a [element 2] | array_flow.rb:1404:9:1404:9 | a [element 2] | | array_flow.rb:1403:5:1403:5 | a [element 2] | array_flow.rb:1404:9:1404:9 | a [element 2] | | array_flow.rb:1403:16:1403:26 | call to source | array_flow.rb:1403:5:1403:5 | a [element 2] | -| array_flow.rb:1403:16:1403:26 | call to source | array_flow.rb:1403:5:1403:5 | a [element 2] | -| array_flow.rb:1404:5:1404:5 | b [element] | array_flow.rb:1409:10:1409:10 | b [element] | | array_flow.rb:1404:5:1404:5 | b [element] | array_flow.rb:1409:10:1409:10 | b [element] | | array_flow.rb:1404:5:1404:5 | b [element] | array_flow.rb:1410:10:1410:10 | b [element] | -| array_flow.rb:1404:5:1404:5 | b [element] | array_flow.rb:1410:10:1410:10 | b [element] | -| array_flow.rb:1404:9:1404:9 | [post] a [element] | array_flow.rb:1411:10:1411:10 | a [element] | | array_flow.rb:1404:9:1404:9 | [post] a [element] | array_flow.rb:1411:10:1411:10 | a [element] | | array_flow.rb:1404:9:1404:9 | [post] a [element] | array_flow.rb:1412:10:1412:10 | a [element] | -| array_flow.rb:1404:9:1404:9 | [post] a [element] | array_flow.rb:1412:10:1412:10 | a [element] | -| array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:9:1404:9 | [post] a [element] | | array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:9:1404:9 | [post] a [element] | | array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:9:1408:7 | call to sort! [element] | -| array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:9:1408:7 | call to sort! [element] | -| array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:21:1404:21 | x | | array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:21:1404:21 | x | | array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:24:1404:24 | y | -| array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:24:1404:24 | y | -| array_flow.rb:1404:9:1408:7 | call to sort! [element] | array_flow.rb:1404:5:1404:5 | b [element] | | array_flow.rb:1404:9:1408:7 | call to sort! [element] | array_flow.rb:1404:5:1404:5 | b [element] | | array_flow.rb:1404:21:1404:21 | x | array_flow.rb:1405:14:1405:14 | x | -| array_flow.rb:1404:21:1404:21 | x | array_flow.rb:1405:14:1405:14 | x | -| array_flow.rb:1404:24:1404:24 | y | array_flow.rb:1406:14:1406:14 | y | | array_flow.rb:1404:24:1404:24 | y | array_flow.rb:1406:14:1406:14 | y | | array_flow.rb:1409:10:1409:10 | b [element] | array_flow.rb:1409:10:1409:13 | ...[...] | -| array_flow.rb:1409:10:1409:10 | b [element] | array_flow.rb:1409:10:1409:13 | ...[...] | -| array_flow.rb:1410:10:1410:10 | b [element] | array_flow.rb:1410:10:1410:13 | ...[...] | | array_flow.rb:1410:10:1410:10 | b [element] | array_flow.rb:1410:10:1410:13 | ...[...] | | array_flow.rb:1411:10:1411:10 | a [element] | array_flow.rb:1411:10:1411:13 | ...[...] | -| array_flow.rb:1411:10:1411:10 | a [element] | array_flow.rb:1411:10:1411:13 | ...[...] | -| array_flow.rb:1412:10:1412:10 | a [element] | array_flow.rb:1412:10:1412:13 | ...[...] | | array_flow.rb:1412:10:1412:10 | a [element] | array_flow.rb:1412:10:1412:13 | ...[...] | | array_flow.rb:1416:5:1416:5 | a [element 2] | array_flow.rb:1417:9:1417:9 | a [element 2] | -| array_flow.rb:1416:5:1416:5 | a [element 2] | array_flow.rb:1417:9:1417:9 | a [element 2] | -| array_flow.rb:1416:16:1416:26 | call to source | array_flow.rb:1416:5:1416:5 | a [element 2] | | array_flow.rb:1416:16:1416:26 | call to source | array_flow.rb:1416:5:1416:5 | a [element 2] | | array_flow.rb:1417:5:1417:5 | b [element] | array_flow.rb:1421:10:1421:10 | b [element] | -| array_flow.rb:1417:5:1417:5 | b [element] | array_flow.rb:1421:10:1421:10 | b [element] | -| array_flow.rb:1417:5:1417:5 | b [element] | array_flow.rb:1422:10:1422:10 | b [element] | | array_flow.rb:1417:5:1417:5 | b [element] | array_flow.rb:1422:10:1422:10 | b [element] | | array_flow.rb:1417:9:1417:9 | a [element 2] | array_flow.rb:1417:9:1420:7 | call to sort_by [element] | -| array_flow.rb:1417:9:1417:9 | a [element 2] | array_flow.rb:1417:9:1420:7 | call to sort_by [element] | -| array_flow.rb:1417:9:1417:9 | a [element 2] | array_flow.rb:1417:23:1417:23 | x | | array_flow.rb:1417:9:1417:9 | a [element 2] | array_flow.rb:1417:23:1417:23 | x | | array_flow.rb:1417:9:1420:7 | call to sort_by [element] | array_flow.rb:1417:5:1417:5 | b [element] | -| array_flow.rb:1417:9:1420:7 | call to sort_by [element] | array_flow.rb:1417:5:1417:5 | b [element] | -| array_flow.rb:1417:23:1417:23 | x | array_flow.rb:1418:14:1418:14 | x | | array_flow.rb:1417:23:1417:23 | x | array_flow.rb:1418:14:1418:14 | x | | array_flow.rb:1421:10:1421:10 | b [element] | array_flow.rb:1421:10:1421:13 | ...[...] | -| array_flow.rb:1421:10:1421:10 | b [element] | array_flow.rb:1421:10:1421:13 | ...[...] | -| array_flow.rb:1422:10:1422:10 | b [element] | array_flow.rb:1422:10:1422:13 | ...[...] | | array_flow.rb:1422:10:1422:10 | b [element] | array_flow.rb:1422:10:1422:13 | ...[...] | | array_flow.rb:1426:5:1426:5 | a [element 2] | array_flow.rb:1427:9:1427:9 | a [element 2] | -| array_flow.rb:1426:5:1426:5 | a [element 2] | array_flow.rb:1427:9:1427:9 | a [element 2] | -| array_flow.rb:1426:16:1426:26 | call to source | array_flow.rb:1426:5:1426:5 | a [element 2] | | array_flow.rb:1426:16:1426:26 | call to source | array_flow.rb:1426:5:1426:5 | a [element 2] | | array_flow.rb:1427:5:1427:5 | b [element] | array_flow.rb:1433:10:1433:10 | b [element] | -| array_flow.rb:1427:5:1427:5 | b [element] | array_flow.rb:1433:10:1433:10 | b [element] | -| array_flow.rb:1427:5:1427:5 | b [element] | array_flow.rb:1434:10:1434:10 | b [element] | | array_flow.rb:1427:5:1427:5 | b [element] | array_flow.rb:1434:10:1434:10 | b [element] | | array_flow.rb:1427:9:1427:9 | [post] a [element] | array_flow.rb:1431:10:1431:10 | a [element] | -| array_flow.rb:1427:9:1427:9 | [post] a [element] | array_flow.rb:1431:10:1431:10 | a [element] | -| array_flow.rb:1427:9:1427:9 | [post] a [element] | array_flow.rb:1432:10:1432:10 | a [element] | | array_flow.rb:1427:9:1427:9 | [post] a [element] | array_flow.rb:1432:10:1432:10 | a [element] | | array_flow.rb:1427:9:1427:9 | a [element 2] | array_flow.rb:1427:9:1427:9 | [post] a [element] | -| array_flow.rb:1427:9:1427:9 | a [element 2] | array_flow.rb:1427:9:1427:9 | [post] a [element] | -| array_flow.rb:1427:9:1427:9 | a [element 2] | array_flow.rb:1427:9:1430:7 | call to sort_by! [element] | | array_flow.rb:1427:9:1427:9 | a [element 2] | array_flow.rb:1427:9:1430:7 | call to sort_by! [element] | | array_flow.rb:1427:9:1427:9 | a [element 2] | array_flow.rb:1427:24:1427:24 | x | -| array_flow.rb:1427:9:1427:9 | a [element 2] | array_flow.rb:1427:24:1427:24 | x | -| array_flow.rb:1427:9:1430:7 | call to sort_by! [element] | array_flow.rb:1427:5:1427:5 | b [element] | | array_flow.rb:1427:9:1430:7 | call to sort_by! [element] | array_flow.rb:1427:5:1427:5 | b [element] | | array_flow.rb:1427:24:1427:24 | x | array_flow.rb:1428:14:1428:14 | x | -| array_flow.rb:1427:24:1427:24 | x | array_flow.rb:1428:14:1428:14 | x | -| array_flow.rb:1431:10:1431:10 | a [element] | array_flow.rb:1431:10:1431:13 | ...[...] | | array_flow.rb:1431:10:1431:10 | a [element] | array_flow.rb:1431:10:1431:13 | ...[...] | | array_flow.rb:1432:10:1432:10 | a [element] | array_flow.rb:1432:10:1432:13 | ...[...] | -| array_flow.rb:1432:10:1432:10 | a [element] | array_flow.rb:1432:10:1432:13 | ...[...] | -| array_flow.rb:1433:10:1433:10 | b [element] | array_flow.rb:1433:10:1433:13 | ...[...] | | array_flow.rb:1433:10:1433:10 | b [element] | array_flow.rb:1433:10:1433:13 | ...[...] | | array_flow.rb:1434:10:1434:10 | b [element] | array_flow.rb:1434:10:1434:13 | ...[...] | -| array_flow.rb:1434:10:1434:10 | b [element] | array_flow.rb:1434:10:1434:13 | ...[...] | -| array_flow.rb:1438:5:1438:5 | a [element 2] | array_flow.rb:1439:9:1439:9 | a [element 2] | | array_flow.rb:1438:5:1438:5 | a [element 2] | array_flow.rb:1439:9:1439:9 | a [element 2] | | array_flow.rb:1438:16:1438:26 | call to source | array_flow.rb:1438:5:1438:5 | a [element 2] | -| array_flow.rb:1438:16:1438:26 | call to source | array_flow.rb:1438:5:1438:5 | a [element 2] | -| array_flow.rb:1439:9:1439:9 | a [element 2] | array_flow.rb:1439:19:1439:19 | x | | array_flow.rb:1439:9:1439:9 | a [element 2] | array_flow.rb:1439:19:1439:19 | x | | array_flow.rb:1439:19:1439:19 | x | array_flow.rb:1440:14:1440:14 | x | -| array_flow.rb:1439:19:1439:19 | x | array_flow.rb:1440:14:1440:14 | x | -| array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1447:9:1447:9 | a [element 2] | | array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1447:9:1447:9 | a [element 2] | | array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1452:9:1452:9 | a [element 2] | -| array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1452:9:1452:9 | a [element 2] | -| array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1458:9:1458:9 | a [element 2] | | array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1458:9:1458:9 | a [element 2] | | array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1465:9:1465:9 | a [element 2] | -| array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1465:9:1465:9 | a [element 2] | -| array_flow.rb:1446:5:1446:5 | a [element 3] | array_flow.rb:1447:9:1447:9 | a [element 3] | | array_flow.rb:1446:5:1446:5 | a [element 3] | array_flow.rb:1447:9:1447:9 | a [element 3] | | array_flow.rb:1446:5:1446:5 | a [element 3] | array_flow.rb:1458:9:1458:9 | a [element 3] | -| array_flow.rb:1446:5:1446:5 | a [element 3] | array_flow.rb:1458:9:1458:9 | a [element 3] | -| array_flow.rb:1446:16:1446:28 | call to source | array_flow.rb:1446:5:1446:5 | a [element 2] | | array_flow.rb:1446:16:1446:28 | call to source | array_flow.rb:1446:5:1446:5 | a [element 2] | | array_flow.rb:1446:31:1446:43 | call to source | array_flow.rb:1446:5:1446:5 | a [element 3] | -| array_flow.rb:1446:31:1446:43 | call to source | array_flow.rb:1446:5:1446:5 | a [element 3] | -| array_flow.rb:1447:5:1447:5 | b [element 2] | array_flow.rb:1450:10:1450:10 | b [element 2] | | array_flow.rb:1447:5:1447:5 | b [element 2] | array_flow.rb:1450:10:1450:10 | b [element 2] | | array_flow.rb:1447:5:1447:5 | b [element 3] | array_flow.rb:1451:10:1451:10 | b [element 3] | -| array_flow.rb:1447:5:1447:5 | b [element 3] | array_flow.rb:1451:10:1451:10 | b [element 3] | -| array_flow.rb:1447:9:1447:9 | a [element 2] | array_flow.rb:1447:9:1447:17 | call to take [element 2] | | array_flow.rb:1447:9:1447:9 | a [element 2] | array_flow.rb:1447:9:1447:17 | call to take [element 2] | | array_flow.rb:1447:9:1447:9 | a [element 3] | array_flow.rb:1447:9:1447:17 | call to take [element 3] | -| array_flow.rb:1447:9:1447:9 | a [element 3] | array_flow.rb:1447:9:1447:17 | call to take [element 3] | -| array_flow.rb:1447:9:1447:17 | call to take [element 2] | array_flow.rb:1447:5:1447:5 | b [element 2] | | array_flow.rb:1447:9:1447:17 | call to take [element 2] | array_flow.rb:1447:5:1447:5 | b [element 2] | | array_flow.rb:1447:9:1447:17 | call to take [element 3] | array_flow.rb:1447:5:1447:5 | b [element 3] | -| array_flow.rb:1447:9:1447:17 | call to take [element 3] | array_flow.rb:1447:5:1447:5 | b [element 3] | -| array_flow.rb:1450:10:1450:10 | b [element 2] | array_flow.rb:1450:10:1450:13 | ...[...] | | array_flow.rb:1450:10:1450:10 | b [element 2] | array_flow.rb:1450:10:1450:13 | ...[...] | | array_flow.rb:1451:10:1451:10 | b [element 3] | array_flow.rb:1451:10:1451:13 | ...[...] | -| array_flow.rb:1451:10:1451:10 | b [element 3] | array_flow.rb:1451:10:1451:13 | ...[...] | -| array_flow.rb:1452:5:1452:5 | b [element 2] | array_flow.rb:1455:10:1455:10 | b [element 2] | | array_flow.rb:1452:5:1452:5 | b [element 2] | array_flow.rb:1455:10:1455:10 | b [element 2] | | array_flow.rb:1452:5:1452:5 | b [element 2] | array_flow.rb:1457:10:1457:10 | b [element 2] | -| array_flow.rb:1452:5:1452:5 | b [element 2] | array_flow.rb:1457:10:1457:10 | b [element 2] | -| array_flow.rb:1452:9:1452:9 | a [element 2] | array_flow.rb:1452:9:1452:17 | call to take [element 2] | | array_flow.rb:1452:9:1452:9 | a [element 2] | array_flow.rb:1452:9:1452:17 | call to take [element 2] | | array_flow.rb:1452:9:1452:17 | call to take [element 2] | array_flow.rb:1452:5:1452:5 | b [element 2] | -| array_flow.rb:1452:9:1452:17 | call to take [element 2] | array_flow.rb:1452:5:1452:5 | b [element 2] | -| array_flow.rb:1455:10:1455:10 | b [element 2] | array_flow.rb:1455:10:1455:13 | ...[...] | | array_flow.rb:1455:10:1455:10 | b [element 2] | array_flow.rb:1455:10:1455:13 | ...[...] | | array_flow.rb:1457:10:1457:10 | b [element 2] | array_flow.rb:1457:10:1457:13 | ...[...] | -| array_flow.rb:1457:10:1457:10 | b [element 2] | array_flow.rb:1457:10:1457:13 | ...[...] | -| array_flow.rb:1458:5:1458:5 | b [element 2] | array_flow.rb:1461:10:1461:10 | b [element 2] | | array_flow.rb:1458:5:1458:5 | b [element 2] | array_flow.rb:1461:10:1461:10 | b [element 2] | | array_flow.rb:1458:5:1458:5 | b [element 2] | array_flow.rb:1463:10:1463:10 | b [element 2] | -| array_flow.rb:1458:5:1458:5 | b [element 2] | array_flow.rb:1463:10:1463:10 | b [element 2] | -| array_flow.rb:1458:5:1458:5 | b [element 3] | array_flow.rb:1462:10:1462:10 | b [element 3] | | array_flow.rb:1458:5:1458:5 | b [element 3] | array_flow.rb:1462:10:1462:10 | b [element 3] | | array_flow.rb:1458:5:1458:5 | b [element 3] | array_flow.rb:1463:10:1463:10 | b [element 3] | -| array_flow.rb:1458:5:1458:5 | b [element 3] | array_flow.rb:1463:10:1463:10 | b [element 3] | -| array_flow.rb:1458:9:1458:9 | a [element 2] | array_flow.rb:1458:9:1458:19 | call to take [element 2] | | array_flow.rb:1458:9:1458:9 | a [element 2] | array_flow.rb:1458:9:1458:19 | call to take [element 2] | | array_flow.rb:1458:9:1458:9 | a [element 3] | array_flow.rb:1458:9:1458:19 | call to take [element 3] | -| array_flow.rb:1458:9:1458:9 | a [element 3] | array_flow.rb:1458:9:1458:19 | call to take [element 3] | -| array_flow.rb:1458:9:1458:19 | call to take [element 2] | array_flow.rb:1458:5:1458:5 | b [element 2] | | array_flow.rb:1458:9:1458:19 | call to take [element 2] | array_flow.rb:1458:5:1458:5 | b [element 2] | | array_flow.rb:1458:9:1458:19 | call to take [element 3] | array_flow.rb:1458:5:1458:5 | b [element 3] | -| array_flow.rb:1458:9:1458:19 | call to take [element 3] | array_flow.rb:1458:5:1458:5 | b [element 3] | -| array_flow.rb:1461:10:1461:10 | b [element 2] | array_flow.rb:1461:10:1461:13 | ...[...] | | array_flow.rb:1461:10:1461:10 | b [element 2] | array_flow.rb:1461:10:1461:13 | ...[...] | | array_flow.rb:1462:10:1462:10 | b [element 3] | array_flow.rb:1462:10:1462:13 | ...[...] | -| array_flow.rb:1462:10:1462:10 | b [element 3] | array_flow.rb:1462:10:1462:13 | ...[...] | -| array_flow.rb:1463:10:1463:10 | b [element 2] | array_flow.rb:1463:10:1463:13 | ...[...] | | array_flow.rb:1463:10:1463:10 | b [element 2] | array_flow.rb:1463:10:1463:13 | ...[...] | | array_flow.rb:1463:10:1463:10 | b [element 3] | array_flow.rb:1463:10:1463:13 | ...[...] | -| array_flow.rb:1463:10:1463:10 | b [element 3] | array_flow.rb:1463:10:1463:13 | ...[...] | -| array_flow.rb:1464:5:1464:5 | [post] a [element] | array_flow.rb:1465:9:1465:9 | a [element] | | array_flow.rb:1464:5:1464:5 | [post] a [element] | array_flow.rb:1465:9:1465:9 | a [element] | | array_flow.rb:1464:12:1464:24 | call to source | array_flow.rb:1464:5:1464:5 | [post] a [element] | -| array_flow.rb:1464:12:1464:24 | call to source | array_flow.rb:1464:5:1464:5 | [post] a [element] | -| array_flow.rb:1465:5:1465:5 | b [element 2] | array_flow.rb:1466:10:1466:10 | b [element 2] | | array_flow.rb:1465:5:1465:5 | b [element 2] | array_flow.rb:1466:10:1466:10 | b [element 2] | | array_flow.rb:1465:5:1465:5 | b [element] | array_flow.rb:1466:10:1466:10 | b [element] | -| array_flow.rb:1465:5:1465:5 | b [element] | array_flow.rb:1466:10:1466:10 | b [element] | -| array_flow.rb:1465:9:1465:9 | a [element 2] | array_flow.rb:1465:9:1465:17 | call to take [element 2] | | array_flow.rb:1465:9:1465:9 | a [element 2] | array_flow.rb:1465:9:1465:17 | call to take [element 2] | | array_flow.rb:1465:9:1465:9 | a [element] | array_flow.rb:1465:9:1465:17 | call to take [element] | -| array_flow.rb:1465:9:1465:9 | a [element] | array_flow.rb:1465:9:1465:17 | call to take [element] | -| array_flow.rb:1465:9:1465:17 | call to take [element 2] | array_flow.rb:1465:5:1465:5 | b [element 2] | | array_flow.rb:1465:9:1465:17 | call to take [element 2] | array_flow.rb:1465:5:1465:5 | b [element 2] | | array_flow.rb:1465:9:1465:17 | call to take [element] | array_flow.rb:1465:5:1465:5 | b [element] | -| array_flow.rb:1465:9:1465:17 | call to take [element] | array_flow.rb:1465:5:1465:5 | b [element] | -| array_flow.rb:1466:10:1466:10 | b [element 2] | array_flow.rb:1466:10:1466:13 | ...[...] | | array_flow.rb:1466:10:1466:10 | b [element 2] | array_flow.rb:1466:10:1466:13 | ...[...] | | array_flow.rb:1466:10:1466:10 | b [element] | array_flow.rb:1466:10:1466:13 | ...[...] | -| array_flow.rb:1466:10:1466:10 | b [element] | array_flow.rb:1466:10:1466:13 | ...[...] | -| array_flow.rb:1470:5:1470:5 | a [element 2] | array_flow.rb:1471:9:1471:9 | a [element 2] | | array_flow.rb:1470:5:1470:5 | a [element 2] | array_flow.rb:1471:9:1471:9 | a [element 2] | | array_flow.rb:1470:16:1470:26 | call to source | array_flow.rb:1470:5:1470:5 | a [element 2] | -| array_flow.rb:1470:16:1470:26 | call to source | array_flow.rb:1470:5:1470:5 | a [element 2] | -| array_flow.rb:1471:5:1471:5 | b [element 2] | array_flow.rb:1477:10:1477:10 | b [element 2] | | array_flow.rb:1471:5:1471:5 | b [element 2] | array_flow.rb:1477:10:1477:10 | b [element 2] | | array_flow.rb:1471:9:1471:9 | a [element 2] | array_flow.rb:1471:9:1474:7 | call to take_while [element 2] | -| array_flow.rb:1471:9:1471:9 | a [element 2] | array_flow.rb:1471:9:1474:7 | call to take_while [element 2] | -| array_flow.rb:1471:9:1471:9 | a [element 2] | array_flow.rb:1471:26:1471:26 | x | | array_flow.rb:1471:9:1471:9 | a [element 2] | array_flow.rb:1471:26:1471:26 | x | | array_flow.rb:1471:9:1474:7 | call to take_while [element 2] | array_flow.rb:1471:5:1471:5 | b [element 2] | -| array_flow.rb:1471:9:1474:7 | call to take_while [element 2] | array_flow.rb:1471:5:1471:5 | b [element 2] | -| array_flow.rb:1471:26:1471:26 | x | array_flow.rb:1472:14:1472:14 | x | | array_flow.rb:1471:26:1471:26 | x | array_flow.rb:1472:14:1472:14 | x | | array_flow.rb:1477:10:1477:10 | b [element 2] | array_flow.rb:1477:10:1477:13 | ...[...] | -| array_flow.rb:1477:10:1477:10 | b [element 2] | array_flow.rb:1477:10:1477:13 | ...[...] | -| array_flow.rb:1483:5:1483:5 | a [element 3] | array_flow.rb:1484:9:1484:9 | a [element 3] | | array_flow.rb:1483:5:1483:5 | a [element 3] | array_flow.rb:1484:9:1484:9 | a [element 3] | | array_flow.rb:1483:19:1483:29 | call to source | array_flow.rb:1483:5:1483:5 | a [element 3] | -| array_flow.rb:1483:19:1483:29 | call to source | array_flow.rb:1483:5:1483:5 | a [element 3] | -| array_flow.rb:1484:5:1484:5 | b [element 3] | array_flow.rb:1485:10:1485:10 | b [element 3] | | array_flow.rb:1484:5:1484:5 | b [element 3] | array_flow.rb:1485:10:1485:10 | b [element 3] | | array_flow.rb:1484:9:1484:9 | a [element 3] | array_flow.rb:1484:9:1484:14 | call to to_a [element 3] | -| array_flow.rb:1484:9:1484:9 | a [element 3] | array_flow.rb:1484:9:1484:14 | call to to_a [element 3] | -| array_flow.rb:1484:9:1484:14 | call to to_a [element 3] | array_flow.rb:1484:5:1484:5 | b [element 3] | | array_flow.rb:1484:9:1484:14 | call to to_a [element 3] | array_flow.rb:1484:5:1484:5 | b [element 3] | | array_flow.rb:1485:10:1485:10 | b [element 3] | array_flow.rb:1485:10:1485:13 | ...[...] | -| array_flow.rb:1485:10:1485:10 | b [element 3] | array_flow.rb:1485:10:1485:13 | ...[...] | -| array_flow.rb:1489:5:1489:5 | a [element 2] | array_flow.rb:1490:9:1490:9 | a [element 2] | | array_flow.rb:1489:5:1489:5 | a [element 2] | array_flow.rb:1490:9:1490:9 | a [element 2] | | array_flow.rb:1489:16:1489:26 | call to source | array_flow.rb:1489:5:1489:5 | a [element 2] | -| array_flow.rb:1489:16:1489:26 | call to source | array_flow.rb:1489:5:1489:5 | a [element 2] | -| array_flow.rb:1490:5:1490:5 | b [element 2] | array_flow.rb:1493:10:1493:10 | b [element 2] | | array_flow.rb:1490:5:1490:5 | b [element 2] | array_flow.rb:1493:10:1493:10 | b [element 2] | | array_flow.rb:1490:9:1490:9 | a [element 2] | array_flow.rb:1490:9:1490:16 | call to to_ary [element 2] | -| array_flow.rb:1490:9:1490:9 | a [element 2] | array_flow.rb:1490:9:1490:16 | call to to_ary [element 2] | -| array_flow.rb:1490:9:1490:16 | call to to_ary [element 2] | array_flow.rb:1490:5:1490:5 | b [element 2] | | array_flow.rb:1490:9:1490:16 | call to to_ary [element 2] | array_flow.rb:1490:5:1490:5 | b [element 2] | | array_flow.rb:1493:10:1493:10 | b [element 2] | array_flow.rb:1493:10:1493:13 | ...[...] | -| array_flow.rb:1493:10:1493:10 | b [element 2] | array_flow.rb:1493:10:1493:13 | ...[...] | -| array_flow.rb:1506:5:1506:5 | a [element 0, element 1] | array_flow.rb:1507:9:1507:9 | a [element 0, element 1] | | array_flow.rb:1506:5:1506:5 | a [element 0, element 1] | array_flow.rb:1507:9:1507:9 | a [element 0, element 1] | | array_flow.rb:1506:5:1506:5 | a [element 1, element 1] | array_flow.rb:1507:9:1507:9 | a [element 1, element 1] | -| array_flow.rb:1506:5:1506:5 | a [element 1, element 1] | array_flow.rb:1507:9:1507:9 | a [element 1, element 1] | -| array_flow.rb:1506:5:1506:5 | a [element 2, element 1] | array_flow.rb:1507:9:1507:9 | a [element 2, element 1] | | array_flow.rb:1506:5:1506:5 | a [element 2, element 1] | array_flow.rb:1507:9:1507:9 | a [element 2, element 1] | | array_flow.rb:1506:14:1506:26 | call to source | array_flow.rb:1506:5:1506:5 | a [element 0, element 1] | -| array_flow.rb:1506:14:1506:26 | call to source | array_flow.rb:1506:5:1506:5 | a [element 0, element 1] | -| array_flow.rb:1506:34:1506:46 | call to source | array_flow.rb:1506:5:1506:5 | a [element 1, element 1] | | array_flow.rb:1506:34:1506:46 | call to source | array_flow.rb:1506:5:1506:5 | a [element 1, element 1] | | array_flow.rb:1506:54:1506:66 | call to source | array_flow.rb:1506:5:1506:5 | a [element 2, element 1] | -| array_flow.rb:1506:54:1506:66 | call to source | array_flow.rb:1506:5:1506:5 | a [element 2, element 1] | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 0] | array_flow.rb:1511:10:1511:10 | b [element 1, element 0] | | array_flow.rb:1507:5:1507:5 | b [element 1, element 0] | array_flow.rb:1511:10:1511:10 | b [element 1, element 0] | | array_flow.rb:1507:5:1507:5 | b [element 1, element 1] | array_flow.rb:1512:10:1512:10 | b [element 1, element 1] | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 1] | array_flow.rb:1512:10:1512:10 | b [element 1, element 1] | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 2] | array_flow.rb:1513:10:1513:10 | b [element 1, element 2] | | array_flow.rb:1507:5:1507:5 | b [element 1, element 2] | array_flow.rb:1513:10:1513:10 | b [element 1, element 2] | | array_flow.rb:1507:9:1507:9 | a [element 0, element 1] | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 0] | -| array_flow.rb:1507:9:1507:9 | a [element 0, element 1] | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 0] | -| array_flow.rb:1507:9:1507:9 | a [element 1, element 1] | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 1] | | array_flow.rb:1507:9:1507:9 | a [element 1, element 1] | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 1] | | array_flow.rb:1507:9:1507:9 | a [element 2, element 1] | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 2] | -| array_flow.rb:1507:9:1507:9 | a [element 2, element 1] | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 2] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 0] | array_flow.rb:1507:5:1507:5 | b [element 1, element 0] | | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 0] | array_flow.rb:1507:5:1507:5 | b [element 1, element 0] | | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 1] | array_flow.rb:1507:5:1507:5 | b [element 1, element 1] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 1] | array_flow.rb:1507:5:1507:5 | b [element 1, element 1] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 2] | array_flow.rb:1507:5:1507:5 | b [element 1, element 2] | | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 2] | array_flow.rb:1507:5:1507:5 | b [element 1, element 2] | | array_flow.rb:1511:10:1511:10 | b [element 1, element 0] | array_flow.rb:1511:10:1511:13 | ...[...] [element 0] | -| array_flow.rb:1511:10:1511:10 | b [element 1, element 0] | array_flow.rb:1511:10:1511:13 | ...[...] [element 0] | -| array_flow.rb:1511:10:1511:13 | ...[...] [element 0] | array_flow.rb:1511:10:1511:16 | ...[...] | | array_flow.rb:1511:10:1511:13 | ...[...] [element 0] | array_flow.rb:1511:10:1511:16 | ...[...] | | array_flow.rb:1512:10:1512:10 | b [element 1, element 1] | array_flow.rb:1512:10:1512:13 | ...[...] [element 1] | -| array_flow.rb:1512:10:1512:10 | b [element 1, element 1] | array_flow.rb:1512:10:1512:13 | ...[...] [element 1] | -| array_flow.rb:1512:10:1512:13 | ...[...] [element 1] | array_flow.rb:1512:10:1512:16 | ...[...] | | array_flow.rb:1512:10:1512:13 | ...[...] [element 1] | array_flow.rb:1512:10:1512:16 | ...[...] | | array_flow.rb:1513:10:1513:10 | b [element 1, element 2] | array_flow.rb:1513:10:1513:13 | ...[...] [element 2] | -| array_flow.rb:1513:10:1513:10 | b [element 1, element 2] | array_flow.rb:1513:10:1513:13 | ...[...] [element 2] | -| array_flow.rb:1513:10:1513:13 | ...[...] [element 2] | array_flow.rb:1513:10:1513:16 | ...[...] | | array_flow.rb:1513:10:1513:13 | ...[...] [element 2] | array_flow.rb:1513:10:1513:16 | ...[...] | | array_flow.rb:1517:5:1517:5 | a [element 2] | array_flow.rb:1520:9:1520:9 | a [element 2] | -| array_flow.rb:1517:5:1517:5 | a [element 2] | array_flow.rb:1520:9:1520:9 | a [element 2] | -| array_flow.rb:1517:16:1517:28 | call to source | array_flow.rb:1517:5:1517:5 | a [element 2] | | array_flow.rb:1517:16:1517:28 | call to source | array_flow.rb:1517:5:1517:5 | a [element 2] | | array_flow.rb:1518:5:1518:5 | b [element 1] | array_flow.rb:1520:17:1520:17 | b [element 1] | -| array_flow.rb:1518:5:1518:5 | b [element 1] | array_flow.rb:1520:17:1520:17 | b [element 1] | -| array_flow.rb:1518:13:1518:25 | call to source | array_flow.rb:1518:5:1518:5 | b [element 1] | | array_flow.rb:1518:13:1518:25 | call to source | array_flow.rb:1518:5:1518:5 | b [element 1] | | array_flow.rb:1519:5:1519:5 | c [element 1] | array_flow.rb:1520:20:1520:20 | c [element 1] | -| array_flow.rb:1519:5:1519:5 | c [element 1] | array_flow.rb:1520:20:1520:20 | c [element 1] | -| array_flow.rb:1519:13:1519:25 | call to source | array_flow.rb:1519:5:1519:5 | c [element 1] | | array_flow.rb:1519:13:1519:25 | call to source | array_flow.rb:1519:5:1519:5 | c [element 1] | | array_flow.rb:1520:5:1520:5 | d [element] | array_flow.rb:1521:10:1521:10 | d [element] | -| array_flow.rb:1520:5:1520:5 | d [element] | array_flow.rb:1521:10:1521:10 | d [element] | -| array_flow.rb:1520:5:1520:5 | d [element] | array_flow.rb:1522:10:1522:10 | d [element] | | array_flow.rb:1520:5:1520:5 | d [element] | array_flow.rb:1522:10:1522:10 | d [element] | | array_flow.rb:1520:5:1520:5 | d [element] | array_flow.rb:1523:10:1523:10 | d [element] | -| array_flow.rb:1520:5:1520:5 | d [element] | array_flow.rb:1523:10:1523:10 | d [element] | -| array_flow.rb:1520:9:1520:9 | a [element 2] | array_flow.rb:1520:9:1520:21 | call to union [element] | | array_flow.rb:1520:9:1520:9 | a [element 2] | array_flow.rb:1520:9:1520:21 | call to union [element] | | array_flow.rb:1520:9:1520:21 | call to union [element] | array_flow.rb:1520:5:1520:5 | d [element] | -| array_flow.rb:1520:9:1520:21 | call to union [element] | array_flow.rb:1520:5:1520:5 | d [element] | -| array_flow.rb:1520:17:1520:17 | b [element 1] | array_flow.rb:1520:9:1520:21 | call to union [element] | | array_flow.rb:1520:17:1520:17 | b [element 1] | array_flow.rb:1520:9:1520:21 | call to union [element] | | array_flow.rb:1520:20:1520:20 | c [element 1] | array_flow.rb:1520:9:1520:21 | call to union [element] | -| array_flow.rb:1520:20:1520:20 | c [element 1] | array_flow.rb:1520:9:1520:21 | call to union [element] | -| array_flow.rb:1521:10:1521:10 | d [element] | array_flow.rb:1521:10:1521:13 | ...[...] | | array_flow.rb:1521:10:1521:10 | d [element] | array_flow.rb:1521:10:1521:13 | ...[...] | | array_flow.rb:1522:10:1522:10 | d [element] | array_flow.rb:1522:10:1522:13 | ...[...] | -| array_flow.rb:1522:10:1522:10 | d [element] | array_flow.rb:1522:10:1522:13 | ...[...] | -| array_flow.rb:1523:10:1523:10 | d [element] | array_flow.rb:1523:10:1523:13 | ...[...] | | array_flow.rb:1523:10:1523:10 | d [element] | array_flow.rb:1523:10:1523:13 | ...[...] | | array_flow.rb:1527:5:1527:5 | a [element 3] | array_flow.rb:1529:9:1529:9 | a [element 3] | -| array_flow.rb:1527:5:1527:5 | a [element 3] | array_flow.rb:1529:9:1529:9 | a [element 3] | -| array_flow.rb:1527:5:1527:5 | a [element 3] | array_flow.rb:1533:9:1533:9 | a [element 3] | | array_flow.rb:1527:5:1527:5 | a [element 3] | array_flow.rb:1533:9:1533:9 | a [element 3] | | array_flow.rb:1527:5:1527:5 | a [element 4] | array_flow.rb:1529:9:1529:9 | a [element 4] | -| array_flow.rb:1527:5:1527:5 | a [element 4] | array_flow.rb:1529:9:1529:9 | a [element 4] | -| array_flow.rb:1527:5:1527:5 | a [element 4] | array_flow.rb:1533:9:1533:9 | a [element 4] | | array_flow.rb:1527:5:1527:5 | a [element 4] | array_flow.rb:1533:9:1533:9 | a [element 4] | | array_flow.rb:1527:19:1527:31 | call to source | array_flow.rb:1527:5:1527:5 | a [element 3] | -| array_flow.rb:1527:19:1527:31 | call to source | array_flow.rb:1527:5:1527:5 | a [element 3] | -| array_flow.rb:1527:34:1527:46 | call to source | array_flow.rb:1527:5:1527:5 | a [element 4] | | array_flow.rb:1527:34:1527:46 | call to source | array_flow.rb:1527:5:1527:5 | a [element 4] | | array_flow.rb:1529:5:1529:5 | b [element] | array_flow.rb:1530:10:1530:10 | b [element] | -| array_flow.rb:1529:5:1529:5 | b [element] | array_flow.rb:1530:10:1530:10 | b [element] | -| array_flow.rb:1529:5:1529:5 | b [element] | array_flow.rb:1531:10:1531:10 | b [element] | | array_flow.rb:1529:5:1529:5 | b [element] | array_flow.rb:1531:10:1531:10 | b [element] | | array_flow.rb:1529:9:1529:9 | a [element 3] | array_flow.rb:1529:9:1529:14 | call to uniq [element] | -| array_flow.rb:1529:9:1529:9 | a [element 3] | array_flow.rb:1529:9:1529:14 | call to uniq [element] | -| array_flow.rb:1529:9:1529:9 | a [element 4] | array_flow.rb:1529:9:1529:14 | call to uniq [element] | | array_flow.rb:1529:9:1529:9 | a [element 4] | array_flow.rb:1529:9:1529:14 | call to uniq [element] | | array_flow.rb:1529:9:1529:14 | call to uniq [element] | array_flow.rb:1529:5:1529:5 | b [element] | -| array_flow.rb:1529:9:1529:14 | call to uniq [element] | array_flow.rb:1529:5:1529:5 | b [element] | -| array_flow.rb:1530:10:1530:10 | b [element] | array_flow.rb:1530:10:1530:13 | ...[...] | | array_flow.rb:1530:10:1530:10 | b [element] | array_flow.rb:1530:10:1530:13 | ...[...] | | array_flow.rb:1531:10:1531:10 | b [element] | array_flow.rb:1531:10:1531:13 | ...[...] | -| array_flow.rb:1531:10:1531:10 | b [element] | array_flow.rb:1531:10:1531:13 | ...[...] | -| array_flow.rb:1533:5:1533:5 | c [element] | array_flow.rb:1537:10:1537:10 | c [element] | | array_flow.rb:1533:5:1533:5 | c [element] | array_flow.rb:1537:10:1537:10 | c [element] | | array_flow.rb:1533:9:1533:9 | a [element 3] | array_flow.rb:1533:9:1536:7 | call to uniq [element] | -| array_flow.rb:1533:9:1533:9 | a [element 3] | array_flow.rb:1533:9:1536:7 | call to uniq [element] | -| array_flow.rb:1533:9:1533:9 | a [element 3] | array_flow.rb:1533:20:1533:20 | x | | array_flow.rb:1533:9:1533:9 | a [element 3] | array_flow.rb:1533:20:1533:20 | x | | array_flow.rb:1533:9:1533:9 | a [element 4] | array_flow.rb:1533:9:1536:7 | call to uniq [element] | -| array_flow.rb:1533:9:1533:9 | a [element 4] | array_flow.rb:1533:9:1536:7 | call to uniq [element] | -| array_flow.rb:1533:9:1533:9 | a [element 4] | array_flow.rb:1533:20:1533:20 | x | | array_flow.rb:1533:9:1533:9 | a [element 4] | array_flow.rb:1533:20:1533:20 | x | | array_flow.rb:1533:9:1536:7 | call to uniq [element] | array_flow.rb:1533:5:1533:5 | c [element] | -| array_flow.rb:1533:9:1536:7 | call to uniq [element] | array_flow.rb:1533:5:1533:5 | c [element] | -| array_flow.rb:1533:20:1533:20 | x | array_flow.rb:1534:14:1534:14 | x | | array_flow.rb:1533:20:1533:20 | x | array_flow.rb:1534:14:1534:14 | x | | array_flow.rb:1537:10:1537:10 | c [element] | array_flow.rb:1537:10:1537:13 | ...[...] | -| array_flow.rb:1537:10:1537:10 | c [element] | array_flow.rb:1537:10:1537:13 | ...[...] | -| array_flow.rb:1541:5:1541:5 | a [element 2] | array_flow.rb:1542:9:1542:9 | a [element 2] | | array_flow.rb:1541:5:1541:5 | a [element 2] | array_flow.rb:1542:9:1542:9 | a [element 2] | | array_flow.rb:1541:5:1541:5 | a [element 3] | array_flow.rb:1542:9:1542:9 | a [element 3] | -| array_flow.rb:1541:5:1541:5 | a [element 3] | array_flow.rb:1542:9:1542:9 | a [element 3] | -| array_flow.rb:1541:16:1541:28 | call to source | array_flow.rb:1541:5:1541:5 | a [element 2] | | array_flow.rb:1541:16:1541:28 | call to source | array_flow.rb:1541:5:1541:5 | a [element 2] | | array_flow.rb:1541:31:1541:43 | call to source | array_flow.rb:1541:5:1541:5 | a [element 3] | -| array_flow.rb:1541:31:1541:43 | call to source | array_flow.rb:1541:5:1541:5 | a [element 3] | -| array_flow.rb:1542:5:1542:5 | b [element] | array_flow.rb:1543:10:1543:10 | b [element] | | array_flow.rb:1542:5:1542:5 | b [element] | array_flow.rb:1543:10:1543:10 | b [element] | | array_flow.rb:1542:5:1542:5 | b [element] | array_flow.rb:1544:10:1544:10 | b [element] | -| array_flow.rb:1542:5:1542:5 | b [element] | array_flow.rb:1544:10:1544:10 | b [element] | -| array_flow.rb:1542:9:1542:9 | [post] a [element] | array_flow.rb:1545:10:1545:10 | a [element] | | array_flow.rb:1542:9:1542:9 | [post] a [element] | array_flow.rb:1545:10:1545:10 | a [element] | | array_flow.rb:1542:9:1542:9 | [post] a [element] | array_flow.rb:1546:10:1546:10 | a [element] | -| array_flow.rb:1542:9:1542:9 | [post] a [element] | array_flow.rb:1546:10:1546:10 | a [element] | -| array_flow.rb:1542:9:1542:9 | a [element 2] | array_flow.rb:1542:9:1542:9 | [post] a [element] | | array_flow.rb:1542:9:1542:9 | a [element 2] | array_flow.rb:1542:9:1542:9 | [post] a [element] | | array_flow.rb:1542:9:1542:9 | a [element 2] | array_flow.rb:1542:9:1542:15 | call to uniq! [element] | -| array_flow.rb:1542:9:1542:9 | a [element 2] | array_flow.rb:1542:9:1542:15 | call to uniq! [element] | -| array_flow.rb:1542:9:1542:9 | a [element 3] | array_flow.rb:1542:9:1542:9 | [post] a [element] | | array_flow.rb:1542:9:1542:9 | a [element 3] | array_flow.rb:1542:9:1542:9 | [post] a [element] | | array_flow.rb:1542:9:1542:9 | a [element 3] | array_flow.rb:1542:9:1542:15 | call to uniq! [element] | -| array_flow.rb:1542:9:1542:9 | a [element 3] | array_flow.rb:1542:9:1542:15 | call to uniq! [element] | -| array_flow.rb:1542:9:1542:15 | call to uniq! [element] | array_flow.rb:1542:5:1542:5 | b [element] | | array_flow.rb:1542:9:1542:15 | call to uniq! [element] | array_flow.rb:1542:5:1542:5 | b [element] | | array_flow.rb:1543:10:1543:10 | b [element] | array_flow.rb:1543:10:1543:13 | ...[...] | -| array_flow.rb:1543:10:1543:10 | b [element] | array_flow.rb:1543:10:1543:13 | ...[...] | -| array_flow.rb:1544:10:1544:10 | b [element] | array_flow.rb:1544:10:1544:13 | ...[...] | | array_flow.rb:1544:10:1544:10 | b [element] | array_flow.rb:1544:10:1544:13 | ...[...] | | array_flow.rb:1545:10:1545:10 | a [element] | array_flow.rb:1545:10:1545:13 | ...[...] | -| array_flow.rb:1545:10:1545:10 | a [element] | array_flow.rb:1545:10:1545:13 | ...[...] | -| array_flow.rb:1546:10:1546:10 | a [element] | array_flow.rb:1546:10:1546:13 | ...[...] | | array_flow.rb:1546:10:1546:10 | a [element] | array_flow.rb:1546:10:1546:13 | ...[...] | | array_flow.rb:1548:5:1548:5 | a [element 2] | array_flow.rb:1549:9:1549:9 | a [element 2] | -| array_flow.rb:1548:5:1548:5 | a [element 2] | array_flow.rb:1549:9:1549:9 | a [element 2] | -| array_flow.rb:1548:5:1548:5 | a [element 3] | array_flow.rb:1549:9:1549:9 | a [element 3] | | array_flow.rb:1548:5:1548:5 | a [element 3] | array_flow.rb:1549:9:1549:9 | a [element 3] | | array_flow.rb:1548:16:1548:28 | call to source | array_flow.rb:1548:5:1548:5 | a [element 2] | -| array_flow.rb:1548:16:1548:28 | call to source | array_flow.rb:1548:5:1548:5 | a [element 2] | -| array_flow.rb:1548:31:1548:43 | call to source | array_flow.rb:1548:5:1548:5 | a [element 3] | | array_flow.rb:1548:31:1548:43 | call to source | array_flow.rb:1548:5:1548:5 | a [element 3] | | array_flow.rb:1549:5:1549:5 | b [element] | array_flow.rb:1553:10:1553:10 | b [element] | -| array_flow.rb:1549:5:1549:5 | b [element] | array_flow.rb:1553:10:1553:10 | b [element] | -| array_flow.rb:1549:5:1549:5 | b [element] | array_flow.rb:1554:10:1554:10 | b [element] | | array_flow.rb:1549:5:1549:5 | b [element] | array_flow.rb:1554:10:1554:10 | b [element] | | array_flow.rb:1549:9:1549:9 | [post] a [element] | array_flow.rb:1555:10:1555:10 | a [element] | -| array_flow.rb:1549:9:1549:9 | [post] a [element] | array_flow.rb:1555:10:1555:10 | a [element] | -| array_flow.rb:1549:9:1549:9 | [post] a [element] | array_flow.rb:1556:10:1556:10 | a [element] | | array_flow.rb:1549:9:1549:9 | [post] a [element] | array_flow.rb:1556:10:1556:10 | a [element] | | array_flow.rb:1549:9:1549:9 | a [element 2] | array_flow.rb:1549:9:1549:9 | [post] a [element] | -| array_flow.rb:1549:9:1549:9 | a [element 2] | array_flow.rb:1549:9:1549:9 | [post] a [element] | -| array_flow.rb:1549:9:1549:9 | a [element 2] | array_flow.rb:1549:9:1552:7 | call to uniq! [element] | | array_flow.rb:1549:9:1549:9 | a [element 2] | array_flow.rb:1549:9:1552:7 | call to uniq! [element] | | array_flow.rb:1549:9:1549:9 | a [element 2] | array_flow.rb:1549:21:1549:21 | x | -| array_flow.rb:1549:9:1549:9 | a [element 2] | array_flow.rb:1549:21:1549:21 | x | -| array_flow.rb:1549:9:1549:9 | a [element 3] | array_flow.rb:1549:9:1549:9 | [post] a [element] | | array_flow.rb:1549:9:1549:9 | a [element 3] | array_flow.rb:1549:9:1549:9 | [post] a [element] | | array_flow.rb:1549:9:1549:9 | a [element 3] | array_flow.rb:1549:9:1552:7 | call to uniq! [element] | -| array_flow.rb:1549:9:1549:9 | a [element 3] | array_flow.rb:1549:9:1552:7 | call to uniq! [element] | -| array_flow.rb:1549:9:1549:9 | a [element 3] | array_flow.rb:1549:21:1549:21 | x | | array_flow.rb:1549:9:1549:9 | a [element 3] | array_flow.rb:1549:21:1549:21 | x | | array_flow.rb:1549:9:1552:7 | call to uniq! [element] | array_flow.rb:1549:5:1549:5 | b [element] | -| array_flow.rb:1549:9:1552:7 | call to uniq! [element] | array_flow.rb:1549:5:1549:5 | b [element] | -| array_flow.rb:1549:21:1549:21 | x | array_flow.rb:1550:14:1550:14 | x | | array_flow.rb:1549:21:1549:21 | x | array_flow.rb:1550:14:1550:14 | x | | array_flow.rb:1553:10:1553:10 | b [element] | array_flow.rb:1553:10:1553:13 | ...[...] | -| array_flow.rb:1553:10:1553:10 | b [element] | array_flow.rb:1553:10:1553:13 | ...[...] | -| array_flow.rb:1554:10:1554:10 | b [element] | array_flow.rb:1554:10:1554:13 | ...[...] | | array_flow.rb:1554:10:1554:10 | b [element] | array_flow.rb:1554:10:1554:13 | ...[...] | | array_flow.rb:1555:10:1555:10 | a [element] | array_flow.rb:1555:10:1555:13 | ...[...] | -| array_flow.rb:1555:10:1555:10 | a [element] | array_flow.rb:1555:10:1555:13 | ...[...] | -| array_flow.rb:1556:10:1556:10 | a [element] | array_flow.rb:1556:10:1556:13 | ...[...] | | array_flow.rb:1556:10:1556:10 | a [element] | array_flow.rb:1556:10:1556:13 | ...[...] | | array_flow.rb:1560:5:1560:5 | a [element 2] | array_flow.rb:1561:5:1561:5 | a [element 2] | -| array_flow.rb:1560:5:1560:5 | a [element 2] | array_flow.rb:1561:5:1561:5 | a [element 2] | -| array_flow.rb:1560:16:1560:28 | call to source | array_flow.rb:1560:5:1560:5 | a [element 2] | | array_flow.rb:1560:16:1560:28 | call to source | array_flow.rb:1560:5:1560:5 | a [element 2] | | array_flow.rb:1561:5:1561:5 | [post] a [element 2] | array_flow.rb:1564:10:1564:10 | a [element 2] | -| array_flow.rb:1561:5:1561:5 | [post] a [element 2] | array_flow.rb:1564:10:1564:10 | a [element 2] | -| array_flow.rb:1561:5:1561:5 | [post] a [element 5] | array_flow.rb:1567:10:1567:10 | a [element 5] | | array_flow.rb:1561:5:1561:5 | [post] a [element 5] | array_flow.rb:1567:10:1567:10 | a [element 5] | | array_flow.rb:1561:5:1561:5 | a [element 2] | array_flow.rb:1561:5:1561:5 | [post] a [element 5] | -| array_flow.rb:1561:5:1561:5 | a [element 2] | array_flow.rb:1561:5:1561:5 | [post] a [element 5] | -| array_flow.rb:1561:21:1561:33 | call to source | array_flow.rb:1561:5:1561:5 | [post] a [element 2] | | array_flow.rb:1561:21:1561:33 | call to source | array_flow.rb:1561:5:1561:5 | [post] a [element 2] | | array_flow.rb:1564:10:1564:10 | a [element 2] | array_flow.rb:1564:10:1564:13 | ...[...] | -| array_flow.rb:1564:10:1564:10 | a [element 2] | array_flow.rb:1564:10:1564:13 | ...[...] | -| array_flow.rb:1567:10:1567:10 | a [element 5] | array_flow.rb:1567:10:1567:13 | ...[...] | | array_flow.rb:1567:10:1567:10 | a [element 5] | array_flow.rb:1567:10:1567:13 | ...[...] | | array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1573:9:1573:9 | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1573:9:1573:9 | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1579:9:1579:9 | a [element 1] | | array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1579:9:1579:9 | a [element 1] | | array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1583:9:1583:9 | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1583:9:1583:9 | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1587:9:1587:9 | a [element 1] | | array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1587:9:1587:9 | a [element 1] | | array_flow.rb:1571:5:1571:5 | a [element 3] | array_flow.rb:1579:9:1579:9 | a [element 3] | -| array_flow.rb:1571:5:1571:5 | a [element 3] | array_flow.rb:1579:9:1579:9 | a [element 3] | -| array_flow.rb:1571:5:1571:5 | a [element 3] | array_flow.rb:1583:9:1583:9 | a [element 3] | | array_flow.rb:1571:5:1571:5 | a [element 3] | array_flow.rb:1583:9:1583:9 | a [element 3] | | array_flow.rb:1571:5:1571:5 | a [element 3] | array_flow.rb:1587:9:1587:9 | a [element 3] | -| array_flow.rb:1571:5:1571:5 | a [element 3] | array_flow.rb:1587:9:1587:9 | a [element 3] | -| array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1571:5:1571:5 | a [element 1] | | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1571:5:1571:5 | a [element 1] | | array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1571:5:1571:5 | a [element 3] | -| array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1571:5:1571:5 | a [element 3] | -| array_flow.rb:1573:5:1573:5 | b [element 1] | array_flow.rb:1575:10:1575:10 | b [element 1] | | array_flow.rb:1573:5:1573:5 | b [element 1] | array_flow.rb:1575:10:1575:10 | b [element 1] | | array_flow.rb:1573:5:1573:5 | b [element 3] | array_flow.rb:1577:10:1577:10 | b [element 3] | -| array_flow.rb:1573:5:1573:5 | b [element 3] | array_flow.rb:1577:10:1577:10 | b [element 3] | -| array_flow.rb:1573:9:1573:9 | a [element 1] | array_flow.rb:1573:9:1573:31 | call to values_at [element 1] | | array_flow.rb:1573:9:1573:9 | a [element 1] | array_flow.rb:1573:9:1573:31 | call to values_at [element 1] | | array_flow.rb:1573:9:1573:9 | a [element 1] | array_flow.rb:1573:9:1573:31 | call to values_at [element 3] | -| array_flow.rb:1573:9:1573:9 | a [element 1] | array_flow.rb:1573:9:1573:31 | call to values_at [element 3] | -| array_flow.rb:1573:9:1573:31 | call to values_at [element 1] | array_flow.rb:1573:5:1573:5 | b [element 1] | | array_flow.rb:1573:9:1573:31 | call to values_at [element 1] | array_flow.rb:1573:5:1573:5 | b [element 1] | | array_flow.rb:1573:9:1573:31 | call to values_at [element 3] | array_flow.rb:1573:5:1573:5 | b [element 3] | -| array_flow.rb:1573:9:1573:31 | call to values_at [element 3] | array_flow.rb:1573:5:1573:5 | b [element 3] | -| array_flow.rb:1575:10:1575:10 | b [element 1] | array_flow.rb:1575:10:1575:13 | ...[...] | | array_flow.rb:1575:10:1575:10 | b [element 1] | array_flow.rb:1575:10:1575:13 | ...[...] | | array_flow.rb:1577:10:1577:10 | b [element 3] | array_flow.rb:1577:10:1577:13 | ...[...] | -| array_flow.rb:1577:10:1577:10 | b [element 3] | array_flow.rb:1577:10:1577:13 | ...[...] | -| array_flow.rb:1579:5:1579:5 | b [element] | array_flow.rb:1580:10:1580:10 | b [element] | | array_flow.rb:1579:5:1579:5 | b [element] | array_flow.rb:1580:10:1580:10 | b [element] | | array_flow.rb:1579:5:1579:5 | b [element] | array_flow.rb:1581:10:1581:10 | b [element] | -| array_flow.rb:1579:5:1579:5 | b [element] | array_flow.rb:1581:10:1581:10 | b [element] | -| array_flow.rb:1579:9:1579:9 | a [element 1] | array_flow.rb:1579:9:1579:25 | call to values_at [element] | | array_flow.rb:1579:9:1579:9 | a [element 1] | array_flow.rb:1579:9:1579:25 | call to values_at [element] | | array_flow.rb:1579:9:1579:9 | a [element 3] | array_flow.rb:1579:9:1579:25 | call to values_at [element] | -| array_flow.rb:1579:9:1579:9 | a [element 3] | array_flow.rb:1579:9:1579:25 | call to values_at [element] | -| array_flow.rb:1579:9:1579:25 | call to values_at [element] | array_flow.rb:1579:5:1579:5 | b [element] | | array_flow.rb:1579:9:1579:25 | call to values_at [element] | array_flow.rb:1579:5:1579:5 | b [element] | | array_flow.rb:1580:10:1580:10 | b [element] | array_flow.rb:1580:10:1580:13 | ...[...] | -| array_flow.rb:1580:10:1580:10 | b [element] | array_flow.rb:1580:10:1580:13 | ...[...] | -| array_flow.rb:1581:10:1581:10 | b [element] | array_flow.rb:1581:10:1581:13 | ...[...] | | array_flow.rb:1581:10:1581:10 | b [element] | array_flow.rb:1581:10:1581:13 | ...[...] | | array_flow.rb:1583:5:1583:5 | b [element] | array_flow.rb:1584:10:1584:10 | b [element] | -| array_flow.rb:1583:5:1583:5 | b [element] | array_flow.rb:1584:10:1584:10 | b [element] | -| array_flow.rb:1583:5:1583:5 | b [element] | array_flow.rb:1585:10:1585:10 | b [element] | | array_flow.rb:1583:5:1583:5 | b [element] | array_flow.rb:1585:10:1585:10 | b [element] | | array_flow.rb:1583:9:1583:9 | a [element 1] | array_flow.rb:1583:9:1583:26 | call to values_at [element] | -| array_flow.rb:1583:9:1583:9 | a [element 1] | array_flow.rb:1583:9:1583:26 | call to values_at [element] | -| array_flow.rb:1583:9:1583:9 | a [element 3] | array_flow.rb:1583:9:1583:26 | call to values_at [element] | | array_flow.rb:1583:9:1583:9 | a [element 3] | array_flow.rb:1583:9:1583:26 | call to values_at [element] | | array_flow.rb:1583:9:1583:26 | call to values_at [element] | array_flow.rb:1583:5:1583:5 | b [element] | -| array_flow.rb:1583:9:1583:26 | call to values_at [element] | array_flow.rb:1583:5:1583:5 | b [element] | -| array_flow.rb:1584:10:1584:10 | b [element] | array_flow.rb:1584:10:1584:13 | ...[...] | | array_flow.rb:1584:10:1584:10 | b [element] | array_flow.rb:1584:10:1584:13 | ...[...] | | array_flow.rb:1585:10:1585:10 | b [element] | array_flow.rb:1585:10:1585:13 | ...[...] | -| array_flow.rb:1585:10:1585:10 | b [element] | array_flow.rb:1585:10:1585:13 | ...[...] | -| array_flow.rb:1587:5:1587:5 | b [element 1] | array_flow.rb:1589:10:1589:10 | b [element 1] | | array_flow.rb:1587:5:1587:5 | b [element 1] | array_flow.rb:1589:10:1589:10 | b [element 1] | | array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1588:10:1588:10 | b [element] | -| array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1588:10:1588:10 | b [element] | -| array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1589:10:1589:10 | b [element] | | array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1589:10:1589:10 | b [element] | | array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1590:10:1590:10 | b [element] | -| array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1590:10:1590:10 | b [element] | -| array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1591:10:1591:10 | b [element] | | array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1591:10:1591:10 | b [element] | | array_flow.rb:1587:9:1587:9 | a [element 1] | array_flow.rb:1587:9:1587:28 | call to values_at [element] | -| array_flow.rb:1587:9:1587:9 | a [element 1] | array_flow.rb:1587:9:1587:28 | call to values_at [element] | -| array_flow.rb:1587:9:1587:9 | a [element 3] | array_flow.rb:1587:9:1587:28 | call to values_at [element 1] | | array_flow.rb:1587:9:1587:9 | a [element 3] | array_flow.rb:1587:9:1587:28 | call to values_at [element 1] | | array_flow.rb:1587:9:1587:9 | a [element 3] | array_flow.rb:1587:9:1587:28 | call to values_at [element] | -| array_flow.rb:1587:9:1587:9 | a [element 3] | array_flow.rb:1587:9:1587:28 | call to values_at [element] | -| array_flow.rb:1587:9:1587:28 | call to values_at [element 1] | array_flow.rb:1587:5:1587:5 | b [element 1] | | array_flow.rb:1587:9:1587:28 | call to values_at [element 1] | array_flow.rb:1587:5:1587:5 | b [element 1] | | array_flow.rb:1587:9:1587:28 | call to values_at [element] | array_flow.rb:1587:5:1587:5 | b [element] | -| array_flow.rb:1587:9:1587:28 | call to values_at [element] | array_flow.rb:1587:5:1587:5 | b [element] | -| array_flow.rb:1588:10:1588:10 | b [element] | array_flow.rb:1588:10:1588:13 | ...[...] | | array_flow.rb:1588:10:1588:10 | b [element] | array_flow.rb:1588:10:1588:13 | ...[...] | | array_flow.rb:1589:10:1589:10 | b [element 1] | array_flow.rb:1589:10:1589:13 | ...[...] | -| array_flow.rb:1589:10:1589:10 | b [element 1] | array_flow.rb:1589:10:1589:13 | ...[...] | -| array_flow.rb:1589:10:1589:10 | b [element] | array_flow.rb:1589:10:1589:13 | ...[...] | | array_flow.rb:1589:10:1589:10 | b [element] | array_flow.rb:1589:10:1589:13 | ...[...] | | array_flow.rb:1590:10:1590:10 | b [element] | array_flow.rb:1590:10:1590:13 | ...[...] | -| array_flow.rb:1590:10:1590:10 | b [element] | array_flow.rb:1590:10:1590:13 | ...[...] | -| array_flow.rb:1591:10:1591:10 | b [element] | array_flow.rb:1591:10:1591:13 | ...[...] | | array_flow.rb:1591:10:1591:10 | b [element] | array_flow.rb:1591:10:1591:13 | ...[...] | | array_flow.rb:1595:5:1595:5 | a [element 2] | array_flow.rb:1598:9:1598:9 | a [element 2] | -| array_flow.rb:1595:5:1595:5 | a [element 2] | array_flow.rb:1598:9:1598:9 | a [element 2] | -| array_flow.rb:1595:5:1595:5 | a [element 2] | array_flow.rb:1603:5:1603:5 | a [element 2] | | array_flow.rb:1595:5:1595:5 | a [element 2] | array_flow.rb:1603:5:1603:5 | a [element 2] | | array_flow.rb:1595:16:1595:28 | call to source | array_flow.rb:1595:5:1595:5 | a [element 2] | -| array_flow.rb:1595:16:1595:28 | call to source | array_flow.rb:1595:5:1595:5 | a [element 2] | -| array_flow.rb:1596:5:1596:5 | b [element 1] | array_flow.rb:1598:15:1598:15 | b [element 1] | | array_flow.rb:1596:5:1596:5 | b [element 1] | array_flow.rb:1598:15:1598:15 | b [element 1] | | array_flow.rb:1596:5:1596:5 | b [element 1] | array_flow.rb:1603:11:1603:11 | b [element 1] | -| array_flow.rb:1596:5:1596:5 | b [element 1] | array_flow.rb:1603:11:1603:11 | b [element 1] | -| array_flow.rb:1596:13:1596:25 | call to source | array_flow.rb:1596:5:1596:5 | b [element 1] | | array_flow.rb:1596:13:1596:25 | call to source | array_flow.rb:1596:5:1596:5 | b [element 1] | | array_flow.rb:1597:5:1597:5 | c [element 0] | array_flow.rb:1598:18:1598:18 | c [element 0] | -| array_flow.rb:1597:5:1597:5 | c [element 0] | array_flow.rb:1598:18:1598:18 | c [element 0] | -| array_flow.rb:1597:5:1597:5 | c [element 0] | array_flow.rb:1603:14:1603:14 | c [element 0] | | array_flow.rb:1597:5:1597:5 | c [element 0] | array_flow.rb:1603:14:1603:14 | c [element 0] | | array_flow.rb:1597:10:1597:22 | call to source | array_flow.rb:1597:5:1597:5 | c [element 0] | -| array_flow.rb:1597:10:1597:22 | call to source | array_flow.rb:1597:5:1597:5 | c [element 0] | -| array_flow.rb:1598:5:1598:5 | d [element 0, element 2] | array_flow.rb:1600:10:1600:10 | d [element 0, element 2] | | array_flow.rb:1598:5:1598:5 | d [element 0, element 2] | array_flow.rb:1600:10:1600:10 | d [element 0, element 2] | | array_flow.rb:1598:5:1598:5 | d [element 1, element 1] | array_flow.rb:1601:10:1601:10 | d [element 1, element 1] | -| array_flow.rb:1598:5:1598:5 | d [element 1, element 1] | array_flow.rb:1601:10:1601:10 | d [element 1, element 1] | -| array_flow.rb:1598:5:1598:5 | d [element 2, element 0] | array_flow.rb:1602:10:1602:10 | d [element 2, element 0] | | array_flow.rb:1598:5:1598:5 | d [element 2, element 0] | array_flow.rb:1602:10:1602:10 | d [element 2, element 0] | | array_flow.rb:1598:9:1598:9 | a [element 2] | array_flow.rb:1598:9:1598:19 | call to zip [element 2, element 0] | -| array_flow.rb:1598:9:1598:9 | a [element 2] | array_flow.rb:1598:9:1598:19 | call to zip [element 2, element 0] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 0, element 2] | array_flow.rb:1598:5:1598:5 | d [element 0, element 2] | | array_flow.rb:1598:9:1598:19 | call to zip [element 0, element 2] | array_flow.rb:1598:5:1598:5 | d [element 0, element 2] | | array_flow.rb:1598:9:1598:19 | call to zip [element 1, element 1] | array_flow.rb:1598:5:1598:5 | d [element 1, element 1] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 1, element 1] | array_flow.rb:1598:5:1598:5 | d [element 1, element 1] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 2, element 0] | array_flow.rb:1598:5:1598:5 | d [element 2, element 0] | | array_flow.rb:1598:9:1598:19 | call to zip [element 2, element 0] | array_flow.rb:1598:5:1598:5 | d [element 2, element 0] | | array_flow.rb:1598:15:1598:15 | b [element 1] | array_flow.rb:1598:9:1598:19 | call to zip [element 1, element 1] | -| array_flow.rb:1598:15:1598:15 | b [element 1] | array_flow.rb:1598:9:1598:19 | call to zip [element 1, element 1] | -| array_flow.rb:1598:18:1598:18 | c [element 0] | array_flow.rb:1598:9:1598:19 | call to zip [element 0, element 2] | | array_flow.rb:1598:18:1598:18 | c [element 0] | array_flow.rb:1598:9:1598:19 | call to zip [element 0, element 2] | | array_flow.rb:1600:10:1600:10 | d [element 0, element 2] | array_flow.rb:1600:10:1600:13 | ...[...] [element 2] | -| array_flow.rb:1600:10:1600:10 | d [element 0, element 2] | array_flow.rb:1600:10:1600:13 | ...[...] [element 2] | -| array_flow.rb:1600:10:1600:13 | ...[...] [element 2] | array_flow.rb:1600:10:1600:16 | ...[...] | | array_flow.rb:1600:10:1600:13 | ...[...] [element 2] | array_flow.rb:1600:10:1600:16 | ...[...] | | array_flow.rb:1601:10:1601:10 | d [element 1, element 1] | array_flow.rb:1601:10:1601:13 | ...[...] [element 1] | -| array_flow.rb:1601:10:1601:10 | d [element 1, element 1] | array_flow.rb:1601:10:1601:13 | ...[...] [element 1] | -| array_flow.rb:1601:10:1601:13 | ...[...] [element 1] | array_flow.rb:1601:10:1601:16 | ...[...] | | array_flow.rb:1601:10:1601:13 | ...[...] [element 1] | array_flow.rb:1601:10:1601:16 | ...[...] | | array_flow.rb:1602:10:1602:10 | d [element 2, element 0] | array_flow.rb:1602:10:1602:13 | ...[...] [element 0] | -| array_flow.rb:1602:10:1602:10 | d [element 2, element 0] | array_flow.rb:1602:10:1602:13 | ...[...] [element 0] | -| array_flow.rb:1602:10:1602:13 | ...[...] [element 0] | array_flow.rb:1602:10:1602:16 | ...[...] | | array_flow.rb:1602:10:1602:13 | ...[...] [element 0] | array_flow.rb:1602:10:1602:16 | ...[...] | | array_flow.rb:1603:5:1603:5 | a [element 2] | array_flow.rb:1603:21:1603:21 | x [element 0] | -| array_flow.rb:1603:5:1603:5 | a [element 2] | array_flow.rb:1603:21:1603:21 | x [element 0] | -| array_flow.rb:1603:11:1603:11 | b [element 1] | array_flow.rb:1603:21:1603:21 | x [element 1] | | array_flow.rb:1603:11:1603:11 | b [element 1] | array_flow.rb:1603:21:1603:21 | x [element 1] | | array_flow.rb:1603:14:1603:14 | c [element 0] | array_flow.rb:1603:21:1603:21 | x [element 2] | -| array_flow.rb:1603:14:1603:14 | c [element 0] | array_flow.rb:1603:21:1603:21 | x [element 2] | -| array_flow.rb:1603:21:1603:21 | x [element 0] | array_flow.rb:1604:14:1604:14 | x [element 0] | | array_flow.rb:1603:21:1603:21 | x [element 0] | array_flow.rb:1604:14:1604:14 | x [element 0] | | array_flow.rb:1603:21:1603:21 | x [element 1] | array_flow.rb:1605:14:1605:14 | x [element 1] | -| array_flow.rb:1603:21:1603:21 | x [element 1] | array_flow.rb:1605:14:1605:14 | x [element 1] | -| array_flow.rb:1603:21:1603:21 | x [element 2] | array_flow.rb:1606:14:1606:14 | x [element 2] | | array_flow.rb:1603:21:1603:21 | x [element 2] | array_flow.rb:1606:14:1606:14 | x [element 2] | | array_flow.rb:1604:14:1604:14 | x [element 0] | array_flow.rb:1604:14:1604:17 | ...[...] | -| array_flow.rb:1604:14:1604:14 | x [element 0] | array_flow.rb:1604:14:1604:17 | ...[...] | -| array_flow.rb:1605:14:1605:14 | x [element 1] | array_flow.rb:1605:14:1605:17 | ...[...] | | array_flow.rb:1605:14:1605:14 | x [element 1] | array_flow.rb:1605:14:1605:17 | ...[...] | | array_flow.rb:1606:14:1606:14 | x [element 2] | array_flow.rb:1606:14:1606:17 | ...[...] | -| array_flow.rb:1606:14:1606:14 | x [element 2] | array_flow.rb:1606:14:1606:17 | ...[...] | -| array_flow.rb:1611:5:1611:5 | a [element 2] | array_flow.rb:1613:9:1613:9 | a [element 2] | | array_flow.rb:1611:5:1611:5 | a [element 2] | array_flow.rb:1613:9:1613:9 | a [element 2] | | array_flow.rb:1611:16:1611:28 | call to source | array_flow.rb:1611:5:1611:5 | a [element 2] | -| array_flow.rb:1611:16:1611:28 | call to source | array_flow.rb:1611:5:1611:5 | a [element 2] | -| array_flow.rb:1612:5:1612:5 | b [element 1] | array_flow.rb:1613:13:1613:13 | b [element 1] | | array_flow.rb:1612:5:1612:5 | b [element 1] | array_flow.rb:1613:13:1613:13 | b [element 1] | | array_flow.rb:1612:13:1612:25 | call to source | array_flow.rb:1612:5:1612:5 | b [element 1] | -| array_flow.rb:1612:13:1612:25 | call to source | array_flow.rb:1612:5:1612:5 | b [element 1] | -| array_flow.rb:1613:5:1613:5 | c [element] | array_flow.rb:1614:10:1614:10 | c [element] | | array_flow.rb:1613:5:1613:5 | c [element] | array_flow.rb:1614:10:1614:10 | c [element] | | array_flow.rb:1613:5:1613:5 | c [element] | array_flow.rb:1615:10:1615:10 | c [element] | -| array_flow.rb:1613:5:1613:5 | c [element] | array_flow.rb:1615:10:1615:10 | c [element] | -| array_flow.rb:1613:5:1613:5 | c [element] | array_flow.rb:1616:10:1616:10 | c [element] | | array_flow.rb:1613:5:1613:5 | c [element] | array_flow.rb:1616:10:1616:10 | c [element] | | array_flow.rb:1613:9:1613:9 | a [element 2] | array_flow.rb:1613:9:1613:13 | ... \| ... [element] | -| array_flow.rb:1613:9:1613:9 | a [element 2] | array_flow.rb:1613:9:1613:13 | ... \| ... [element] | -| array_flow.rb:1613:9:1613:13 | ... \| ... [element] | array_flow.rb:1613:5:1613:5 | c [element] | | array_flow.rb:1613:9:1613:13 | ... \| ... [element] | array_flow.rb:1613:5:1613:5 | c [element] | | array_flow.rb:1613:13:1613:13 | b [element 1] | array_flow.rb:1613:9:1613:13 | ... \| ... [element] | -| array_flow.rb:1613:13:1613:13 | b [element 1] | array_flow.rb:1613:9:1613:13 | ... \| ... [element] | -| array_flow.rb:1614:10:1614:10 | c [element] | array_flow.rb:1614:10:1614:13 | ...[...] | | array_flow.rb:1614:10:1614:10 | c [element] | array_flow.rb:1614:10:1614:13 | ...[...] | | array_flow.rb:1615:10:1615:10 | c [element] | array_flow.rb:1615:10:1615:13 | ...[...] | -| array_flow.rb:1615:10:1615:10 | c [element] | array_flow.rb:1615:10:1615:13 | ...[...] | -| array_flow.rb:1616:10:1616:10 | c [element] | array_flow.rb:1616:10:1616:13 | ...[...] | | array_flow.rb:1616:10:1616:10 | c [element] | array_flow.rb:1616:10:1616:13 | ...[...] | | array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | array_flow.rb:1622:10:1622:10 | a [element, element 0] | -| array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | array_flow.rb:1622:10:1622:10 | a [element, element 0] | -| array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | array_flow.rb:1625:10:1625:10 | a [element, element 0] | | array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | array_flow.rb:1625:10:1625:10 | a [element, element 0] | | array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | array_flow.rb:1626:10:1626:10 | a [element, element 0] | -| array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | array_flow.rb:1626:10:1626:10 | a [element, element 0] | -| array_flow.rb:1621:5:1621:8 | [post] ...[...] [element 0] | array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | | array_flow.rb:1621:5:1621:8 | [post] ...[...] [element 0] | array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | | array_flow.rb:1621:15:1621:27 | call to source | array_flow.rb:1621:5:1621:8 | [post] ...[...] [element 0] | -| array_flow.rb:1621:15:1621:27 | call to source | array_flow.rb:1621:5:1621:8 | [post] ...[...] [element 0] | -| array_flow.rb:1622:10:1622:10 | a [element, element 0] | array_flow.rb:1622:10:1622:13 | ...[...] [element 0] | | array_flow.rb:1622:10:1622:10 | a [element, element 0] | array_flow.rb:1622:10:1622:13 | ...[...] [element 0] | | array_flow.rb:1622:10:1622:13 | ...[...] [element 0] | array_flow.rb:1622:10:1622:16 | ...[...] | -| array_flow.rb:1622:10:1622:13 | ...[...] [element 0] | array_flow.rb:1622:10:1622:16 | ...[...] | -| array_flow.rb:1624:5:1624:5 | [post] a [element 1, element 0] | array_flow.rb:1625:10:1625:10 | a [element 1, element 0] | | array_flow.rb:1624:5:1624:5 | [post] a [element 1, element 0] | array_flow.rb:1625:10:1625:10 | a [element 1, element 0] | | array_flow.rb:1624:5:1624:8 | [post] ...[...] [element 0] | array_flow.rb:1624:5:1624:5 | [post] a [element 1, element 0] | -| array_flow.rb:1624:5:1624:8 | [post] ...[...] [element 0] | array_flow.rb:1624:5:1624:5 | [post] a [element 1, element 0] | -| array_flow.rb:1624:15:1624:27 | call to source | array_flow.rb:1624:5:1624:8 | [post] ...[...] [element 0] | | array_flow.rb:1624:15:1624:27 | call to source | array_flow.rb:1624:5:1624:8 | [post] ...[...] [element 0] | | array_flow.rb:1625:10:1625:10 | a [element 1, element 0] | array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | -| array_flow.rb:1625:10:1625:10 | a [element 1, element 0] | array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | -| array_flow.rb:1625:10:1625:10 | a [element, element 0] | array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | | array_flow.rb:1625:10:1625:10 | a [element, element 0] | array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | | array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | array_flow.rb:1625:10:1625:16 | ...[...] | -| array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | array_flow.rb:1625:10:1625:16 | ...[...] | -| array_flow.rb:1626:10:1626:10 | a [element, element 0] | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | | array_flow.rb:1626:10:1626:10 | a [element, element 0] | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | array_flow.rb:1626:10:1626:16 | ...[...] | -| array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | array_flow.rb:1626:10:1626:16 | ...[...] | -| array_flow.rb:1631:5:1631:5 | [post] a [element 0] | array_flow.rb:1640:10:1640:10 | a [element 0] | | array_flow.rb:1631:5:1631:5 | [post] a [element 0] | array_flow.rb:1640:10:1640:10 | a [element 0] | | array_flow.rb:1631:5:1631:5 | [post] a [element 0] | array_flow.rb:1642:10:1642:10 | a [element 0] | -| array_flow.rb:1631:5:1631:5 | [post] a [element 0] | array_flow.rb:1642:10:1642:10 | a [element 0] | -| array_flow.rb:1631:12:1631:24 | call to source | array_flow.rb:1631:5:1631:5 | [post] a [element 0] | | array_flow.rb:1631:12:1631:24 | call to source | array_flow.rb:1631:5:1631:5 | [post] a [element 0] | | array_flow.rb:1633:5:1633:5 | [post] a [element] | array_flow.rb:1638:10:1638:10 | a [element] | -| array_flow.rb:1633:5:1633:5 | [post] a [element] | array_flow.rb:1638:10:1638:10 | a [element] | -| array_flow.rb:1633:5:1633:5 | [post] a [element] | array_flow.rb:1640:10:1640:10 | a [element] | | array_flow.rb:1633:5:1633:5 | [post] a [element] | array_flow.rb:1640:10:1640:10 | a [element] | | array_flow.rb:1633:5:1633:5 | [post] a [element] | array_flow.rb:1642:10:1642:10 | a [element] | -| array_flow.rb:1633:5:1633:5 | [post] a [element] | array_flow.rb:1642:10:1642:10 | a [element] | -| array_flow.rb:1633:16:1633:28 | call to source | array_flow.rb:1633:5:1633:5 | [post] a [element] | | array_flow.rb:1633:16:1633:28 | call to source | array_flow.rb:1633:5:1633:5 | [post] a [element] | | array_flow.rb:1635:5:1635:5 | [post] a [element] | array_flow.rb:1638:10:1638:10 | a [element] | -| array_flow.rb:1635:5:1635:5 | [post] a [element] | array_flow.rb:1638:10:1638:10 | a [element] | -| array_flow.rb:1635:5:1635:5 | [post] a [element] | array_flow.rb:1640:10:1640:10 | a [element] | | array_flow.rb:1635:5:1635:5 | [post] a [element] | array_flow.rb:1640:10:1640:10 | a [element] | | array_flow.rb:1635:5:1635:5 | [post] a [element] | array_flow.rb:1642:10:1642:10 | a [element] | -| array_flow.rb:1635:5:1635:5 | [post] a [element] | array_flow.rb:1642:10:1642:10 | a [element] | -| array_flow.rb:1635:14:1635:26 | call to source | array_flow.rb:1635:5:1635:5 | [post] a [element] | | array_flow.rb:1635:14:1635:26 | call to source | array_flow.rb:1635:5:1635:5 | [post] a [element] | | array_flow.rb:1637:5:1637:5 | [post] a [element] | array_flow.rb:1638:10:1638:10 | a [element] | -| array_flow.rb:1637:5:1637:5 | [post] a [element] | array_flow.rb:1638:10:1638:10 | a [element] | -| array_flow.rb:1637:5:1637:5 | [post] a [element] | array_flow.rb:1640:10:1640:10 | a [element] | | array_flow.rb:1637:5:1637:5 | [post] a [element] | array_flow.rb:1640:10:1640:10 | a [element] | | array_flow.rb:1637:5:1637:5 | [post] a [element] | array_flow.rb:1642:10:1642:10 | a [element] | -| array_flow.rb:1637:5:1637:5 | [post] a [element] | array_flow.rb:1642:10:1642:10 | a [element] | -| array_flow.rb:1637:16:1637:28 | call to source | array_flow.rb:1637:5:1637:5 | [post] a [element] | | array_flow.rb:1637:16:1637:28 | call to source | array_flow.rb:1637:5:1637:5 | [post] a [element] | | array_flow.rb:1638:10:1638:10 | a [element] | array_flow.rb:1638:10:1638:13 | ...[...] | -| array_flow.rb:1638:10:1638:10 | a [element] | array_flow.rb:1638:10:1638:13 | ...[...] | -| array_flow.rb:1640:10:1640:10 | a [element 0] | array_flow.rb:1640:10:1640:17 | ...[...] | | array_flow.rb:1640:10:1640:10 | a [element 0] | array_flow.rb:1640:10:1640:17 | ...[...] | | array_flow.rb:1640:10:1640:10 | a [element] | array_flow.rb:1640:10:1640:17 | ...[...] | -| array_flow.rb:1640:10:1640:10 | a [element] | array_flow.rb:1640:10:1640:17 | ...[...] | | array_flow.rb:1642:10:1642:10 | a [element 0] | array_flow.rb:1642:10:1642:15 | ...[...] | -| array_flow.rb:1642:10:1642:10 | a [element 0] | array_flow.rb:1642:10:1642:15 | ...[...] | -| array_flow.rb:1642:10:1642:10 | a [element] | array_flow.rb:1642:10:1642:15 | ...[...] | | array_flow.rb:1642:10:1642:10 | a [element] | array_flow.rb:1642:10:1642:15 | ...[...] | nodes | array_flow.rb:2:5:2:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:2:5:2:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:2:9:2:20 | * ... [element 0] | semmle.label | * ... [element 0] | | array_flow.rb:2:9:2:20 | * ... [element 0] | semmle.label | * ... [element 0] | | array_flow.rb:2:10:2:20 | call to source | semmle.label | call to source | -| array_flow.rb:2:10:2:20 | call to source | semmle.label | call to source | -| array_flow.rb:3:10:3:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:3:10:3:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:3:10:3:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:3:10:3:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:5:10:5:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:5:10:5:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:5:10:5:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:5:10:5:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:9:5:9:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:9:5:9:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:9:13:9:21 | call to source | semmle.label | call to source | -| array_flow.rb:9:13:9:21 | call to source | semmle.label | call to source | -| array_flow.rb:11:10:11:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:11:10:11:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:11:10:11:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:11:10:11:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:13:10:13:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:13:10:13:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:13:10:13:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:13:10:13:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:17:5:17:5 | a [element] | semmle.label | a [element] | | array_flow.rb:17:5:17:5 | a [element] | semmle.label | a [element] | | array_flow.rb:17:9:17:33 | call to new [element] | semmle.label | call to new [element] | -| array_flow.rb:17:9:17:33 | call to new [element] | semmle.label | call to new [element] | -| array_flow.rb:17:22:17:32 | call to source | semmle.label | call to source | | array_flow.rb:17:22:17:32 | call to source | semmle.label | call to source | | array_flow.rb:18:10:18:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:18:10:18:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:18:10:18:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:18:10:18:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:19:10:19:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:19:10:19:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:19:10:19:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:19:10:19:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:21:5:21:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:21:5:21:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:21:9:21:20 | call to new [element] | semmle.label | call to new [element] | | array_flow.rb:21:9:21:20 | call to new [element] | semmle.label | call to new [element] | | array_flow.rb:21:19:21:19 | a [element] | semmle.label | a [element] | -| array_flow.rb:21:19:21:19 | a [element] | semmle.label | a [element] | -| array_flow.rb:22:10:22:10 | b [element] | semmle.label | b [element] | | array_flow.rb:22:10:22:10 | b [element] | semmle.label | b [element] | | array_flow.rb:22:10:22:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:22:10:22:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:23:10:23:10 | b [element] | semmle.label | b [element] | | array_flow.rb:23:10:23:10 | b [element] | semmle.label | b [element] | | array_flow.rb:23:10:23:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:23:10:23:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:25:5:25:5 | c [element] | semmle.label | c [element] | | array_flow.rb:25:5:25:5 | c [element] | semmle.label | c [element] | | array_flow.rb:25:9:27:7 | call to new [element] | semmle.label | call to new [element] | -| array_flow.rb:25:9:27:7 | call to new [element] | semmle.label | call to new [element] | -| array_flow.rb:26:9:26:19 | call to source | semmle.label | call to source | | array_flow.rb:26:9:26:19 | call to source | semmle.label | call to source | | array_flow.rb:28:10:28:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:28:10:28:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:28:10:28:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:28:10:28:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:29:10:29:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:29:10:29:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:29:10:29:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:29:10:29:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:33:5:33:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:33:5:33:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:33:10:33:18 | call to source | semmle.label | call to source | | array_flow.rb:33:10:33:18 | call to source | semmle.label | call to source | | array_flow.rb:34:5:34:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:34:5:34:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:34:9:34:28 | call to try_convert [element 0] | semmle.label | call to try_convert [element 0] | | array_flow.rb:34:9:34:28 | call to try_convert [element 0] | semmle.label | call to try_convert [element 0] | | array_flow.rb:34:27:34:27 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:34:27:34:27 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:35:10:35:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:35:10:35:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:35:10:35:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:35:10:35:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:40:5:40:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:40:5:40:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:40:10:40:20 | call to source | semmle.label | call to source | -| array_flow.rb:40:10:40:20 | call to source | semmle.label | call to source | -| array_flow.rb:41:5:41:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:41:5:41:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:41:16:41:26 | call to source | semmle.label | call to source | -| array_flow.rb:41:16:41:26 | call to source | semmle.label | call to source | -| array_flow.rb:42:5:42:5 | c [element] | semmle.label | c [element] | | array_flow.rb:42:5:42:5 | c [element] | semmle.label | c [element] | | array_flow.rb:42:9:42:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:42:9:42:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:42:9:42:13 | ... & ... [element] | semmle.label | ... & ... [element] | | array_flow.rb:42:9:42:13 | ... & ... [element] | semmle.label | ... & ... [element] | | array_flow.rb:42:13:42:13 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:42:13:42:13 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:43:10:43:10 | c [element] | semmle.label | c [element] | | array_flow.rb:43:10:43:10 | c [element] | semmle.label | c [element] | | array_flow.rb:43:10:43:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:43:10:43:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:44:10:44:10 | c [element] | semmle.label | c [element] | | array_flow.rb:44:10:44:10 | c [element] | semmle.label | c [element] | | array_flow.rb:44:10:44:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:44:10:44:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:48:5:48:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:48:5:48:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:48:10:48:18 | call to source | semmle.label | call to source | -| array_flow.rb:48:10:48:18 | call to source | semmle.label | call to source | -| array_flow.rb:49:5:49:5 | b [element] | semmle.label | b [element] | | array_flow.rb:49:5:49:5 | b [element] | semmle.label | b [element] | | array_flow.rb:49:9:49:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:49:9:49:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:49:9:49:13 | ... * ... [element] | semmle.label | ... * ... [element] | | array_flow.rb:49:9:49:13 | ... * ... [element] | semmle.label | ... * ... [element] | | array_flow.rb:50:10:50:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:50:10:50:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:50:10:50:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:50:10:50:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:51:10:51:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:51:10:51:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:51:10:51:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:51:10:51:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:55:5:55:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:55:5:55:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:55:10:55:20 | call to source | semmle.label | call to source | | array_flow.rb:55:10:55:20 | call to source | semmle.label | call to source | | array_flow.rb:56:5:56:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:56:5:56:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:56:13:56:23 | call to source | semmle.label | call to source | | array_flow.rb:56:13:56:23 | call to source | semmle.label | call to source | | array_flow.rb:57:5:57:5 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:57:5:57:5 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:57:5:57:5 | c [element] | semmle.label | c [element] | | array_flow.rb:57:5:57:5 | c [element] | semmle.label | c [element] | | array_flow.rb:57:9:57:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:57:9:57:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:57:9:57:13 | ... + ... [element 0] | semmle.label | ... + ... [element 0] | | array_flow.rb:57:9:57:13 | ... + ... [element 0] | semmle.label | ... + ... [element 0] | | array_flow.rb:57:9:57:13 | ... + ... [element] | semmle.label | ... + ... [element] | -| array_flow.rb:57:9:57:13 | ... + ... [element] | semmle.label | ... + ... [element] | -| array_flow.rb:57:13:57:13 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:57:13:57:13 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:58:10:58:10 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:58:10:58:10 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:58:10:58:10 | c [element] | semmle.label | c [element] | | array_flow.rb:58:10:58:10 | c [element] | semmle.label | c [element] | | array_flow.rb:58:10:58:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:58:10:58:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:59:10:59:10 | c [element] | semmle.label | c [element] | | array_flow.rb:59:10:59:10 | c [element] | semmle.label | c [element] | | array_flow.rb:59:10:59:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:59:10:59:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:63:5:63:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:63:5:63:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:63:10:63:20 | call to source | semmle.label | call to source | -| array_flow.rb:63:10:63:20 | call to source | semmle.label | call to source | -| array_flow.rb:65:5:65:5 | c [element] | semmle.label | c [element] | | array_flow.rb:65:5:65:5 | c [element] | semmle.label | c [element] | | array_flow.rb:65:9:65:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:65:9:65:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:65:9:65:13 | ... - ... [element] | semmle.label | ... - ... [element] | | array_flow.rb:65:9:65:13 | ... - ... [element] | semmle.label | ... - ... [element] | | array_flow.rb:66:10:66:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:66:10:66:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:66:10:66:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:66:10:66:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:67:10:67:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:67:10:67:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:67:10:67:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:67:10:67:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:71:5:71:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:71:5:71:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:71:10:71:20 | call to source | semmle.label | call to source | -| array_flow.rb:71:10:71:20 | call to source | semmle.label | call to source | -| array_flow.rb:72:5:72:5 | b | semmle.label | b | -| array_flow.rb:72:5:72:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:72:5:72:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:72:5:72:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:72:5:72:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:72:9:72:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:72:9:72:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:72:9:72:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:72:9:72:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:72:9:72:24 | ... << ... [element 0] | semmle.label | ... << ... [element 0] | | array_flow.rb:72:9:72:24 | ... << ... [element 0] | semmle.label | ... << ... [element 0] | | array_flow.rb:72:9:72:24 | ... << ... [element] | semmle.label | ... << ... [element] | -| array_flow.rb:72:9:72:24 | ... << ... [element] | semmle.label | ... << ... [element] | -| array_flow.rb:72:14:72:24 | call to source | semmle.label | call to source | | array_flow.rb:72:14:72:24 | call to source | semmle.label | call to source | | array_flow.rb:73:10:73:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:73:10:73:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:73:10:73:10 | a [element] | semmle.label | a [element] | | array_flow.rb:73:10:73:10 | a [element] | semmle.label | a [element] | | array_flow.rb:73:10:73:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:73:10:73:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:74:10:74:10 | a [element] | semmle.label | a [element] | | array_flow.rb:74:10:74:10 | a [element] | semmle.label | a [element] | | array_flow.rb:74:10:74:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:74:10:74:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:75:10:75:10 | b | semmle.label | b | -| array_flow.rb:75:10:75:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:75:10:75:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:75:10:75:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:75:10:75:10 | b [element] | semmle.label | b [element] | | array_flow.rb:75:10:75:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:75:10:75:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:76:10:76:10 | b | semmle.label | b | -| array_flow.rb:76:10:76:10 | b [element] | semmle.label | b [element] | | array_flow.rb:76:10:76:10 | b [element] | semmle.label | b [element] | | array_flow.rb:76:10:76:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:76:10:76:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:80:5:80:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:80:5:80:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:80:13:80:21 | call to source | semmle.label | call to source | -| array_flow.rb:80:13:80:21 | call to source | semmle.label | call to source | -| array_flow.rb:81:8:81:8 | c | semmle.label | c | | array_flow.rb:81:8:81:8 | c | semmle.label | c | | array_flow.rb:81:15:81:15 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:81:15:81:15 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:83:10:83:10 | c | semmle.label | c | | array_flow.rb:83:10:83:10 | c | semmle.label | c | | array_flow.rb:88:5:88:5 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:88:5:88:5 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:88:13:88:22 | call to source | semmle.label | call to source | | array_flow.rb:88:13:88:22 | call to source | semmle.label | call to source | | array_flow.rb:89:5:89:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:89:5:89:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:89:9:89:9 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:89:9:89:9 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:89:9:89:15 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | -| array_flow.rb:89:9:89:15 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | -| array_flow.rb:91:10:91:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:91:10:91:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:91:10:91:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:91:10:91:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:92:10:92:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:92:10:92:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:92:10:92:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:92:10:92:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:96:5:96:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:96:5:96:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:96:13:96:22 | call to source | semmle.label | call to source | -| array_flow.rb:96:13:96:22 | call to source | semmle.label | call to source | -| array_flow.rb:97:5:97:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:97:5:97:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:97:9:97:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:97:9:97:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:97:9:97:15 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:97:9:97:15 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:99:10:99:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:99:10:99:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:99:10:99:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:99:10:99:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:101:10:101:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:101:10:101:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:101:10:101:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:101:10:101:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:103:5:103:5 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:103:5:103:5 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:103:13:103:24 | call to source | semmle.label | call to source | | array_flow.rb:103:13:103:24 | call to source | semmle.label | call to source | | array_flow.rb:104:5:104:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:104:5:104:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:104:9:104:9 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:104:9:104:9 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:104:9:104:16 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | -| array_flow.rb:104:9:104:16 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | -| array_flow.rb:106:10:106:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:106:10:106:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:106:10:106:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:106:10:106:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:109:5:109:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:109:5:109:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:109:5:109:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:109:5:109:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:109:13:109:24 | call to source | semmle.label | call to source | | array_flow.rb:109:13:109:24 | call to source | semmle.label | call to source | | array_flow.rb:109:30:109:41 | call to source | semmle.label | call to source | -| array_flow.rb:109:30:109:41 | call to source | semmle.label | call to source | -| array_flow.rb:110:5:110:5 | b [element] | semmle.label | b [element] | | array_flow.rb:110:5:110:5 | b [element] | semmle.label | b [element] | | array_flow.rb:110:9:110:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:110:9:110:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:110:9:110:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:110:9:110:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:110:9:110:18 | ...[...] [element] | semmle.label | ...[...] [element] | -| array_flow.rb:110:9:110:18 | ...[...] [element] | semmle.label | ...[...] [element] | -| array_flow.rb:111:10:111:10 | b [element] | semmle.label | b [element] | | array_flow.rb:111:10:111:10 | b [element] | semmle.label | b [element] | | array_flow.rb:111:10:111:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:111:10:111:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:112:10:112:10 | b [element] | semmle.label | b [element] | | array_flow.rb:112:10:112:10 | b [element] | semmle.label | b [element] | | array_flow.rb:112:10:112:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:112:10:112:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:114:5:114:5 | b [element] | semmle.label | b [element] | | array_flow.rb:114:5:114:5 | b [element] | semmle.label | b [element] | | array_flow.rb:114:9:114:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:114:9:114:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:114:9:114:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:114:9:114:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:114:9:114:19 | ...[...] [element] | semmle.label | ...[...] [element] | -| array_flow.rb:114:9:114:19 | ...[...] [element] | semmle.label | ...[...] [element] | -| array_flow.rb:115:10:115:10 | b [element] | semmle.label | b [element] | | array_flow.rb:115:10:115:10 | b [element] | semmle.label | b [element] | | array_flow.rb:115:10:115:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:115:10:115:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:116:10:116:10 | b [element] | semmle.label | b [element] | | array_flow.rb:116:10:116:10 | b [element] | semmle.label | b [element] | | array_flow.rb:116:10:116:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:116:10:116:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:121:5:121:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:121:5:121:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:121:15:121:24 | call to source | semmle.label | call to source | -| array_flow.rb:121:15:121:24 | call to source | semmle.label | call to source | -| array_flow.rb:122:10:122:10 | a [element] | semmle.label | a [element] | | array_flow.rb:122:10:122:10 | a [element] | semmle.label | a [element] | | array_flow.rb:122:10:122:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:122:10:122:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:123:10:123:10 | a [element] | semmle.label | a [element] | | array_flow.rb:123:10:123:10 | a [element] | semmle.label | a [element] | | array_flow.rb:123:10:123:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:123:10:123:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:124:10:124:10 | a [element] | semmle.label | a [element] | | array_flow.rb:124:10:124:10 | a [element] | semmle.label | a [element] | | array_flow.rb:124:10:124:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:124:10:124:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:129:5:129:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:129:5:129:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:129:19:129:28 | call to source | semmle.label | call to source | -| array_flow.rb:129:19:129:28 | call to source | semmle.label | call to source | -| array_flow.rb:130:10:130:10 | a [element] | semmle.label | a [element] | | array_flow.rb:130:10:130:10 | a [element] | semmle.label | a [element] | | array_flow.rb:130:10:130:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:130:10:130:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:131:10:131:10 | a [element] | semmle.label | a [element] | | array_flow.rb:131:10:131:10 | a [element] | semmle.label | a [element] | | array_flow.rb:131:10:131:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:131:10:131:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:132:10:132:10 | a [element] | semmle.label | a [element] | | array_flow.rb:132:10:132:10 | a [element] | semmle.label | a [element] | | array_flow.rb:132:10:132:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:132:10:132:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:137:5:137:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:137:5:137:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:137:15:137:24 | call to source | semmle.label | call to source | -| array_flow.rb:137:15:137:24 | call to source | semmle.label | call to source | -| array_flow.rb:138:10:138:10 | a [element] | semmle.label | a [element] | | array_flow.rb:138:10:138:10 | a [element] | semmle.label | a [element] | | array_flow.rb:138:10:138:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:138:10:138:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:139:10:139:10 | a [element] | semmle.label | a [element] | | array_flow.rb:139:10:139:10 | a [element] | semmle.label | a [element] | | array_flow.rb:139:10:139:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:139:10:139:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:140:10:140:10 | a [element] | semmle.label | a [element] | | array_flow.rb:140:10:140:10 | a [element] | semmle.label | a [element] | | array_flow.rb:140:10:140:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:140:10:140:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:145:5:145:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:145:5:145:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:145:19:145:28 | call to source | semmle.label | call to source | -| array_flow.rb:145:19:145:28 | call to source | semmle.label | call to source | -| array_flow.rb:146:10:146:10 | a [element] | semmle.label | a [element] | | array_flow.rb:146:10:146:10 | a [element] | semmle.label | a [element] | | array_flow.rb:146:10:146:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:146:10:146:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:147:10:147:10 | a [element] | semmle.label | a [element] | | array_flow.rb:147:10:147:10 | a [element] | semmle.label | a [element] | | array_flow.rb:147:10:147:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:147:10:147:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:148:10:148:10 | a [element] | semmle.label | a [element] | | array_flow.rb:148:10:148:10 | a [element] | semmle.label | a [element] | | array_flow.rb:148:10:148:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:148:10:148:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:152:5:152:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:152:5:152:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:152:16:152:25 | call to source | semmle.label | call to source | -| array_flow.rb:152:16:152:25 | call to source | semmle.label | call to source | -| array_flow.rb:153:5:153:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:153:5:153:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:153:16:153:16 | x | semmle.label | x | -| array_flow.rb:153:16:153:16 | x | semmle.label | x | -| array_flow.rb:154:14:154:14 | x | semmle.label | x | | array_flow.rb:154:14:154:14 | x | semmle.label | x | | array_flow.rb:159:5:159:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:159:5:159:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:159:16:159:25 | call to source | semmle.label | call to source | | array_flow.rb:159:16:159:25 | call to source | semmle.label | call to source | | array_flow.rb:160:5:160:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:160:5:160:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:160:16:160:16 | x | semmle.label | x | | array_flow.rb:160:16:160:16 | x | semmle.label | x | | array_flow.rb:161:14:161:14 | x | semmle.label | x | -| array_flow.rb:161:14:161:14 | x | semmle.label | x | -| array_flow.rb:166:5:166:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:166:5:166:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:166:10:166:21 | call to source | semmle.label | call to source | -| array_flow.rb:166:10:166:21 | call to source | semmle.label | call to source | -| array_flow.rb:167:5:167:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:167:5:167:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:167:5:167:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:167:5:167:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:167:9:167:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:167:9:167:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:167:9:167:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:167:9:167:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:167:9:167:44 | call to append [element 0] | semmle.label | call to append [element 0] | | array_flow.rb:167:9:167:44 | call to append [element 0] | semmle.label | call to append [element 0] | | array_flow.rb:167:9:167:44 | call to append [element] | semmle.label | call to append [element] | -| array_flow.rb:167:9:167:44 | call to append [element] | semmle.label | call to append [element] | -| array_flow.rb:167:18:167:29 | call to source | semmle.label | call to source | | array_flow.rb:167:18:167:29 | call to source | semmle.label | call to source | | array_flow.rb:167:32:167:43 | call to source | semmle.label | call to source | -| array_flow.rb:167:32:167:43 | call to source | semmle.label | call to source | -| array_flow.rb:168:10:168:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:168:10:168:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:168:10:168:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:168:10:168:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:168:10:168:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:168:10:168:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:169:10:169:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:169:10:169:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:169:10:169:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:169:10:169:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:170:10:170:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:170:10:170:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:170:10:170:10 | b [element] | semmle.label | b [element] | | array_flow.rb:170:10:170:10 | b [element] | semmle.label | b [element] | | array_flow.rb:170:10:170:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:170:10:170:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:171:10:171:10 | b [element] | semmle.label | b [element] | | array_flow.rb:171:10:171:10 | b [element] | semmle.label | b [element] | | array_flow.rb:171:10:171:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:171:10:171:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:177:5:177:5 | c [element 1] | semmle.label | c [element 1] | | array_flow.rb:177:5:177:5 | c [element 1] | semmle.label | c [element 1] | | array_flow.rb:177:15:177:24 | call to source | semmle.label | call to source | -| array_flow.rb:177:15:177:24 | call to source | semmle.label | call to source | -| array_flow.rb:178:5:178:5 | d [element 2, element 1] | semmle.label | d [element 2, element 1] | | array_flow.rb:178:5:178:5 | d [element 2, element 1] | semmle.label | d [element 2, element 1] | | array_flow.rb:178:16:178:16 | c [element 1] | semmle.label | c [element 1] | -| array_flow.rb:178:16:178:16 | c [element 1] | semmle.label | c [element 1] | -| array_flow.rb:179:10:179:26 | ( ... ) | semmle.label | ( ... ) | | array_flow.rb:179:10:179:26 | ( ... ) | semmle.label | ( ... ) | | array_flow.rb:179:11:179:11 | d [element 2, element 1] | semmle.label | d [element 2, element 1] | -| array_flow.rb:179:11:179:11 | d [element 2, element 1] | semmle.label | d [element 2, element 1] | -| array_flow.rb:179:11:179:22 | call to assoc [element 1] | semmle.label | call to assoc [element 1] | | array_flow.rb:179:11:179:22 | call to assoc [element 1] | semmle.label | call to assoc [element 1] | | array_flow.rb:179:11:179:25 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:179:11:179:25 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:180:10:180:26 | ( ... ) | semmle.label | ( ... ) | | array_flow.rb:180:10:180:26 | ( ... ) | semmle.label | ( ... ) | | array_flow.rb:180:11:180:11 | d [element 2, element 1] | semmle.label | d [element 2, element 1] | -| array_flow.rb:180:11:180:11 | d [element 2, element 1] | semmle.label | d [element 2, element 1] | -| array_flow.rb:180:11:180:22 | call to assoc [element 1] | semmle.label | call to assoc [element 1] | | array_flow.rb:180:11:180:22 | call to assoc [element 1] | semmle.label | call to assoc [element 1] | | array_flow.rb:180:11:180:25 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:180:11:180:25 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:184:5:184:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:184:5:184:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:184:13:184:22 | call to source | semmle.label | call to source | -| array_flow.rb:184:13:184:22 | call to source | semmle.label | call to source | -| array_flow.rb:186:10:186:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:186:10:186:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:186:10:186:16 | call to at | semmle.label | call to at | -| array_flow.rb:186:10:186:16 | call to at | semmle.label | call to at | -| array_flow.rb:188:10:188:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:188:10:188:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:188:10:188:16 | call to at | semmle.label | call to at | -| array_flow.rb:188:10:188:16 | call to at | semmle.label | call to at | -| array_flow.rb:192:5:192:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:192:5:192:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:192:16:192:25 | call to source | semmle.label | call to source | -| array_flow.rb:192:16:192:25 | call to source | semmle.label | call to source | -| array_flow.rb:193:5:193:5 | b | semmle.label | b | | array_flow.rb:193:5:193:5 | b | semmle.label | b | | array_flow.rb:193:9:193:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:193:9:193:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:193:9:195:7 | call to bsearch | semmle.label | call to bsearch | | array_flow.rb:193:9:195:7 | call to bsearch | semmle.label | call to bsearch | | array_flow.rb:193:23:193:23 | x | semmle.label | x | -| array_flow.rb:193:23:193:23 | x | semmle.label | x | -| array_flow.rb:194:14:194:14 | x | semmle.label | x | | array_flow.rb:194:14:194:14 | x | semmle.label | x | | array_flow.rb:196:10:196:10 | b | semmle.label | b | -| array_flow.rb:196:10:196:10 | b | semmle.label | b | -| array_flow.rb:200:5:200:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:200:5:200:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:200:16:200:25 | call to source | semmle.label | call to source | -| array_flow.rb:200:16:200:25 | call to source | semmle.label | call to source | -| array_flow.rb:201:9:201:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:201:9:201:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:201:29:201:29 | x | semmle.label | x | -| array_flow.rb:201:29:201:29 | x | semmle.label | x | -| array_flow.rb:202:14:202:14 | x | semmle.label | x | | array_flow.rb:202:14:202:14 | x | semmle.label | x | | array_flow.rb:208:5:208:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:208:5:208:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:208:16:208:25 | call to source | semmle.label | call to source | | array_flow.rb:208:16:208:25 | call to source | semmle.label | call to source | | array_flow.rb:209:5:209:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:209:5:209:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:209:17:209:17 | x | semmle.label | x | | array_flow.rb:209:17:209:17 | x | semmle.label | x | | array_flow.rb:210:14:210:14 | x | semmle.label | x | -| array_flow.rb:210:14:210:14 | x | semmle.label | x | -| array_flow.rb:215:5:215:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:215:5:215:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:215:5:215:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:215:5:215:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:215:16:215:27 | call to source | semmle.label | call to source | | array_flow.rb:215:16:215:27 | call to source | semmle.label | call to source | | array_flow.rb:215:30:215:41 | call to source | semmle.label | call to source | -| array_flow.rb:215:30:215:41 | call to source | semmle.label | call to source | -| array_flow.rb:216:9:216:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:216:9:216:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:216:9:216:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:216:9:216:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:216:27:216:27 | x | semmle.label | x | | array_flow.rb:216:27:216:27 | x | semmle.label | x | | array_flow.rb:216:30:216:30 | y | semmle.label | y | -| array_flow.rb:216:30:216:30 | y | semmle.label | y | -| array_flow.rb:217:14:217:14 | x | semmle.label | x | | array_flow.rb:217:14:217:14 | x | semmle.label | x | | array_flow.rb:218:14:218:14 | y | semmle.label | y | -| array_flow.rb:218:14:218:14 | y | semmle.label | y | -| array_flow.rb:231:5:231:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:231:5:231:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:231:16:231:27 | call to source | semmle.label | call to source | -| array_flow.rb:231:16:231:27 | call to source | semmle.label | call to source | -| array_flow.rb:232:5:232:5 | b [element] | semmle.label | b [element] | | array_flow.rb:232:5:232:5 | b [element] | semmle.label | b [element] | | array_flow.rb:232:9:232:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:232:9:232:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:232:9:235:7 | call to collect [element] | semmle.label | call to collect [element] | | array_flow.rb:232:9:235:7 | call to collect [element] | semmle.label | call to collect [element] | | array_flow.rb:232:23:232:23 | x | semmle.label | x | -| array_flow.rb:232:23:232:23 | x | semmle.label | x | -| array_flow.rb:233:14:233:14 | x | semmle.label | x | | array_flow.rb:233:14:233:14 | x | semmle.label | x | | array_flow.rb:234:9:234:19 | call to source | semmle.label | call to source | -| array_flow.rb:234:9:234:19 | call to source | semmle.label | call to source | -| array_flow.rb:236:10:236:10 | b [element] | semmle.label | b [element] | | array_flow.rb:236:10:236:10 | b [element] | semmle.label | b [element] | | array_flow.rb:236:10:236:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:236:10:236:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:240:5:240:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:240:5:240:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:240:16:240:27 | call to source | semmle.label | call to source | -| array_flow.rb:240:16:240:27 | call to source | semmle.label | call to source | -| array_flow.rb:241:5:241:5 | b [element] | semmle.label | b [element] | | array_flow.rb:241:5:241:5 | b [element] | semmle.label | b [element] | | array_flow.rb:241:9:241:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:241:9:241:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:241:9:241:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:241:9:241:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:241:9:244:7 | call to collect! [element] | semmle.label | call to collect! [element] | -| array_flow.rb:241:9:244:7 | call to collect! [element] | semmle.label | call to collect! [element] | -| array_flow.rb:241:24:241:24 | x | semmle.label | x | | array_flow.rb:241:24:241:24 | x | semmle.label | x | | array_flow.rb:242:14:242:14 | x | semmle.label | x | -| array_flow.rb:242:14:242:14 | x | semmle.label | x | -| array_flow.rb:243:9:243:19 | call to source | semmle.label | call to source | | array_flow.rb:243:9:243:19 | call to source | semmle.label | call to source | | array_flow.rb:245:10:245:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:245:10:245:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:245:10:245:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:245:10:245:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:246:10:246:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:246:10:246:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:246:10:246:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:246:10:246:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:250:5:250:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:250:5:250:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:250:16:250:27 | call to source | semmle.label | call to source | | array_flow.rb:250:16:250:27 | call to source | semmle.label | call to source | | array_flow.rb:251:5:251:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:251:5:251:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:251:9:251:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:251:9:251:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:251:9:254:7 | call to collect_concat [element] | semmle.label | call to collect_concat [element] | -| array_flow.rb:251:9:254:7 | call to collect_concat [element] | semmle.label | call to collect_concat [element] | -| array_flow.rb:251:30:251:30 | x | semmle.label | x | | array_flow.rb:251:30:251:30 | x | semmle.label | x | | array_flow.rb:252:14:252:14 | x | semmle.label | x | -| array_flow.rb:252:14:252:14 | x | semmle.label | x | -| array_flow.rb:253:13:253:24 | call to source | semmle.label | call to source | | array_flow.rb:253:13:253:24 | call to source | semmle.label | call to source | | array_flow.rb:255:10:255:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:255:10:255:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:255:10:255:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:255:10:255:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:256:5:256:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:256:5:256:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:256:9:256:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:256:9:256:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:256:9:259:7 | call to collect_concat [element] | semmle.label | call to collect_concat [element] | -| array_flow.rb:256:9:259:7 | call to collect_concat [element] | semmle.label | call to collect_concat [element] | -| array_flow.rb:256:30:256:30 | x | semmle.label | x | | array_flow.rb:256:30:256:30 | x | semmle.label | x | | array_flow.rb:257:14:257:14 | x | semmle.label | x | -| array_flow.rb:257:14:257:14 | x | semmle.label | x | -| array_flow.rb:258:9:258:20 | call to source | semmle.label | call to source | | array_flow.rb:258:9:258:20 | call to source | semmle.label | call to source | | array_flow.rb:260:10:260:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:260:10:260:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:260:10:260:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:260:10:260:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:264:5:264:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:264:5:264:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:264:16:264:25 | call to source | semmle.label | call to source | | array_flow.rb:264:16:264:25 | call to source | semmle.label | call to source | | array_flow.rb:265:5:265:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:265:5:265:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:265:9:265:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:265:9:265:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:265:9:267:7 | call to combination [element 2] | semmle.label | call to combination [element 2] | -| array_flow.rb:265:9:267:7 | call to combination [element 2] | semmle.label | call to combination [element 2] | -| array_flow.rb:265:30:265:30 | x [element] | semmle.label | x [element] | | array_flow.rb:265:30:265:30 | x [element] | semmle.label | x [element] | | array_flow.rb:266:14:266:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:266:14:266:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:266:14:266:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:266:14:266:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:269:10:269:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:269:10:269:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:269:10:269:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:269:10:269:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:273:5:273:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:273:5:273:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:273:16:273:25 | call to source | semmle.label | call to source | | array_flow.rb:273:16:273:25 | call to source | semmle.label | call to source | | array_flow.rb:274:5:274:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:274:5:274:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:274:9:274:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:274:9:274:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:274:9:274:17 | call to compact [element] | semmle.label | call to compact [element] | -| array_flow.rb:274:9:274:17 | call to compact [element] | semmle.label | call to compact [element] | -| array_flow.rb:275:10:275:10 | b [element] | semmle.label | b [element] | | array_flow.rb:275:10:275:10 | b [element] | semmle.label | b [element] | | array_flow.rb:275:10:275:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:275:10:275:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:279:5:279:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:279:5:279:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:279:16:279:25 | call to source | semmle.label | call to source | -| array_flow.rb:279:16:279:25 | call to source | semmle.label | call to source | -| array_flow.rb:280:5:280:5 | b [element] | semmle.label | b [element] | | array_flow.rb:280:5:280:5 | b [element] | semmle.label | b [element] | | array_flow.rb:280:9:280:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:280:9:280:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:280:9:280:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:280:9:280:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:280:9:280:18 | call to compact! [element] | semmle.label | call to compact! [element] | -| array_flow.rb:280:9:280:18 | call to compact! [element] | semmle.label | call to compact! [element] | -| array_flow.rb:281:10:281:10 | a [element] | semmle.label | a [element] | | array_flow.rb:281:10:281:10 | a [element] | semmle.label | a [element] | | array_flow.rb:281:10:281:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:281:10:281:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:282:10:282:10 | b [element] | semmle.label | b [element] | | array_flow.rb:282:10:282:10 | b [element] | semmle.label | b [element] | | array_flow.rb:282:10:282:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:282:10:282:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:286:5:286:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:286:5:286:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:286:16:286:27 | call to source | semmle.label | call to source | -| array_flow.rb:286:16:286:27 | call to source | semmle.label | call to source | -| array_flow.rb:287:5:287:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:287:5:287:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:287:16:287:27 | call to source | semmle.label | call to source | -| array_flow.rb:287:16:287:27 | call to source | semmle.label | call to source | -| array_flow.rb:288:5:288:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:288:5:288:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:288:14:288:14 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:288:14:288:14 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:289:10:289:10 | a [element] | semmle.label | a [element] | | array_flow.rb:289:10:289:10 | a [element] | semmle.label | a [element] | | array_flow.rb:289:10:289:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:289:10:289:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:290:10:290:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:290:10:290:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:290:10:290:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:290:10:290:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:290:10:290:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:290:10:290:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:294:5:294:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:294:5:294:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:294:16:294:25 | call to source | semmle.label | call to source | | array_flow.rb:294:16:294:25 | call to source | semmle.label | call to source | | array_flow.rb:295:5:295:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:295:5:295:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:295:17:295:17 | x | semmle.label | x | | array_flow.rb:295:17:295:17 | x | semmle.label | x | | array_flow.rb:296:14:296:14 | x | semmle.label | x | -| array_flow.rb:296:14:296:14 | x | semmle.label | x | -| array_flow.rb:301:5:301:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:301:5:301:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:301:16:301:25 | call to source | semmle.label | call to source | -| array_flow.rb:301:16:301:25 | call to source | semmle.label | call to source | -| array_flow.rb:302:5:302:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:302:5:302:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:302:20:302:20 | x | semmle.label | x | -| array_flow.rb:302:20:302:20 | x | semmle.label | x | -| array_flow.rb:303:14:303:14 | x | semmle.label | x | | array_flow.rb:303:14:303:14 | x | semmle.label | x | | array_flow.rb:308:5:308:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:308:5:308:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:308:16:308:25 | call to source | semmle.label | call to source | | array_flow.rb:308:16:308:25 | call to source | semmle.label | call to source | | array_flow.rb:309:5:309:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:309:5:309:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:309:9:309:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:309:9:309:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:309:9:309:21 | call to deconstruct [element 2] | semmle.label | call to deconstruct [element 2] | -| array_flow.rb:309:9:309:21 | call to deconstruct [element 2] | semmle.label | call to deconstruct [element 2] | -| array_flow.rb:312:10:312:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:312:10:312:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:312:10:312:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:312:10:312:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:316:5:316:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:316:5:316:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:316:16:316:27 | call to source | semmle.label | call to source | -| array_flow.rb:316:16:316:27 | call to source | semmle.label | call to source | -| array_flow.rb:317:5:317:5 | b | semmle.label | b | | array_flow.rb:317:5:317:5 | b | semmle.label | b | | array_flow.rb:317:9:317:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:317:9:317:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:317:9:317:36 | call to delete | semmle.label | call to delete | | array_flow.rb:317:9:317:36 | call to delete | semmle.label | call to delete | | array_flow.rb:317:23:317:34 | call to source | semmle.label | call to source | -| array_flow.rb:317:23:317:34 | call to source | semmle.label | call to source | -| array_flow.rb:318:10:318:10 | b | semmle.label | b | | array_flow.rb:318:10:318:10 | b | semmle.label | b | | array_flow.rb:325:5:325:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:325:5:325:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:325:5:325:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:325:5:325:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:325:16:325:27 | call to source | semmle.label | call to source | -| array_flow.rb:325:16:325:27 | call to source | semmle.label | call to source | -| array_flow.rb:325:30:325:41 | call to source | semmle.label | call to source | | array_flow.rb:325:30:325:41 | call to source | semmle.label | call to source | | array_flow.rb:326:5:326:5 | b | semmle.label | b | -| array_flow.rb:326:5:326:5 | b | semmle.label | b | -| array_flow.rb:326:9:326:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | | array_flow.rb:326:9:326:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | | array_flow.rb:326:9:326:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:326:9:326:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:326:9:326:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:326:9:326:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:326:9:326:22 | call to delete_at | semmle.label | call to delete_at | -| array_flow.rb:326:9:326:22 | call to delete_at | semmle.label | call to delete_at | -| array_flow.rb:327:10:327:10 | b | semmle.label | b | | array_flow.rb:327:10:327:10 | b | semmle.label | b | | array_flow.rb:328:10:328:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:328:10:328:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:328:10:328:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:328:10:328:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:330:5:330:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:330:5:330:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:330:5:330:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:330:5:330:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:330:16:330:27 | call to source | semmle.label | call to source | -| array_flow.rb:330:16:330:27 | call to source | semmle.label | call to source | -| array_flow.rb:330:30:330:41 | call to source | semmle.label | call to source | | array_flow.rb:330:30:330:41 | call to source | semmle.label | call to source | | array_flow.rb:331:5:331:5 | b | semmle.label | b | -| array_flow.rb:331:5:331:5 | b | semmle.label | b | -| array_flow.rb:331:9:331:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:331:9:331:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:331:9:331:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:331:9:331:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:331:9:331:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:331:9:331:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:331:9:331:22 | call to delete_at | semmle.label | call to delete_at | -| array_flow.rb:331:9:331:22 | call to delete_at | semmle.label | call to delete_at | -| array_flow.rb:332:10:332:10 | b | semmle.label | b | | array_flow.rb:332:10:332:10 | b | semmle.label | b | | array_flow.rb:333:10:333:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:333:10:333:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:333:10:333:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:333:10:333:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:334:10:334:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:334:10:334:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:334:10:334:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:334:10:334:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:338:5:338:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:338:5:338:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:338:16:338:25 | call to source | semmle.label | call to source | | array_flow.rb:338:16:338:25 | call to source | semmle.label | call to source | | array_flow.rb:339:5:339:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:339:5:339:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:339:9:339:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:339:9:339:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:339:9:339:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:339:9:339:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:339:9:341:7 | call to delete_if [element] | semmle.label | call to delete_if [element] | | array_flow.rb:339:9:341:7 | call to delete_if [element] | semmle.label | call to delete_if [element] | | array_flow.rb:339:25:339:25 | x | semmle.label | x | -| array_flow.rb:339:25:339:25 | x | semmle.label | x | -| array_flow.rb:340:14:340:14 | x | semmle.label | x | | array_flow.rb:340:14:340:14 | x | semmle.label | x | | array_flow.rb:342:10:342:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:342:10:342:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:342:10:342:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:342:10:342:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:343:10:343:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:343:10:343:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:343:10:343:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:343:10:343:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:344:10:344:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:344:10:344:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:344:10:344:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:344:10:344:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:345:10:345:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:345:10:345:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:345:10:345:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:345:10:345:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:349:5:349:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:349:5:349:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:349:16:349:25 | call to source | semmle.label | call to source | | array_flow.rb:349:16:349:25 | call to source | semmle.label | call to source | | array_flow.rb:350:5:350:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:350:5:350:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:350:9:350:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:350:9:350:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:350:9:350:25 | call to difference [element] | semmle.label | call to difference [element] | -| array_flow.rb:350:9:350:25 | call to difference [element] | semmle.label | call to difference [element] | -| array_flow.rb:351:10:351:10 | b [element] | semmle.label | b [element] | | array_flow.rb:351:10:351:10 | b [element] | semmle.label | b [element] | | array_flow.rb:351:10:351:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:351:10:351:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:355:5:355:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:355:5:355:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:355:5:355:5 | a [element 3, element 1] | semmle.label | a [element 3, element 1] | -| array_flow.rb:355:5:355:5 | a [element 3, element 1] | semmle.label | a [element 3, element 1] | -| array_flow.rb:355:16:355:27 | call to source | semmle.label | call to source | | array_flow.rb:355:16:355:27 | call to source | semmle.label | call to source | | array_flow.rb:355:34:355:45 | call to source | semmle.label | call to source | -| array_flow.rb:355:34:355:45 | call to source | semmle.label | call to source | -| array_flow.rb:357:10:357:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:357:10:357:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:357:10:357:17 | call to dig | semmle.label | call to dig | -| array_flow.rb:357:10:357:17 | call to dig | semmle.label | call to dig | -| array_flow.rb:358:10:358:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:358:10:358:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:358:10:358:17 | call to dig | semmle.label | call to dig | -| array_flow.rb:358:10:358:17 | call to dig | semmle.label | call to dig | -| array_flow.rb:360:10:360:10 | a [element 3, element 1] | semmle.label | a [element 3, element 1] | | array_flow.rb:360:10:360:10 | a [element 3, element 1] | semmle.label | a [element 3, element 1] | | array_flow.rb:360:10:360:19 | call to dig | semmle.label | call to dig | -| array_flow.rb:360:10:360:19 | call to dig | semmle.label | call to dig | -| array_flow.rb:364:5:364:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:364:5:364:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:364:16:364:27 | call to source | semmle.label | call to source | -| array_flow.rb:364:16:364:27 | call to source | semmle.label | call to source | -| array_flow.rb:365:5:365:5 | b | semmle.label | b | | array_flow.rb:365:5:365:5 | b | semmle.label | b | | array_flow.rb:365:9:365:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:365:9:365:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:365:9:367:7 | call to detect | semmle.label | call to detect | | array_flow.rb:365:9:367:7 | call to detect | semmle.label | call to detect | | array_flow.rb:365:23:365:34 | call to source | semmle.label | call to source | -| array_flow.rb:365:23:365:34 | call to source | semmle.label | call to source | -| array_flow.rb:365:43:365:43 | x | semmle.label | x | | array_flow.rb:365:43:365:43 | x | semmle.label | x | | array_flow.rb:366:14:366:14 | x | semmle.label | x | -| array_flow.rb:366:14:366:14 | x | semmle.label | x | -| array_flow.rb:368:10:368:10 | b | semmle.label | b | | array_flow.rb:368:10:368:10 | b | semmle.label | b | | array_flow.rb:372:5:372:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:372:5:372:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:372:5:372:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:372:5:372:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:372:16:372:27 | call to source | semmle.label | call to source | -| array_flow.rb:372:16:372:27 | call to source | semmle.label | call to source | -| array_flow.rb:372:30:372:41 | call to source | semmle.label | call to source | | array_flow.rb:372:30:372:41 | call to source | semmle.label | call to source | | array_flow.rb:373:5:373:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:373:5:373:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:373:9:373:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:373:9:373:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:373:9:373:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:373:9:373:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:373:9:373:17 | call to drop [element] | semmle.label | call to drop [element] | | array_flow.rb:373:9:373:17 | call to drop [element] | semmle.label | call to drop [element] | | array_flow.rb:374:10:374:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:374:10:374:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:374:10:374:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:374:10:374:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:375:5:375:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:375:5:375:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:375:5:375:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:375:5:375:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:375:9:375:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:375:9:375:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:375:9:375:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:375:9:375:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:375:9:375:17 | call to drop [element 1] | semmle.label | call to drop [element 1] | -| array_flow.rb:375:9:375:17 | call to drop [element 1] | semmle.label | call to drop [element 1] | -| array_flow.rb:375:9:375:17 | call to drop [element 2] | semmle.label | call to drop [element 2] | | array_flow.rb:375:9:375:17 | call to drop [element 2] | semmle.label | call to drop [element 2] | | array_flow.rb:377:10:377:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:377:10:377:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:377:10:377:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:377:10:377:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:378:10:378:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:378:10:378:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:378:10:378:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:378:10:378:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:378:10:378:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:378:10:378:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:379:5:379:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:379:5:379:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:379:12:379:23 | call to source | semmle.label | call to source | -| array_flow.rb:379:12:379:23 | call to source | semmle.label | call to source | -| array_flow.rb:380:5:380:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:380:5:380:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:380:5:380:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:380:5:380:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:380:9:380:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:380:9:380:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:380:9:380:9 | a [element] | semmle.label | a [element] | -| array_flow.rb:380:9:380:9 | a [element] | semmle.label | a [element] | -| array_flow.rb:380:9:380:17 | call to drop [element 1] | semmle.label | call to drop [element 1] | | array_flow.rb:380:9:380:17 | call to drop [element 1] | semmle.label | call to drop [element 1] | | array_flow.rb:380:9:380:17 | call to drop [element] | semmle.label | call to drop [element] | -| array_flow.rb:380:9:380:17 | call to drop [element] | semmle.label | call to drop [element] | -| array_flow.rb:381:10:381:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:381:10:381:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:381:10:381:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:381:10:381:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:381:10:381:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:381:10:381:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:382:5:382:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:382:5:382:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:382:9:382:9 | b [element] | semmle.label | b [element] | | array_flow.rb:382:9:382:9 | b [element] | semmle.label | b [element] | | array_flow.rb:382:9:382:19 | call to drop [element] | semmle.label | call to drop [element] | -| array_flow.rb:382:9:382:19 | call to drop [element] | semmle.label | call to drop [element] | -| array_flow.rb:383:10:383:10 | c [element] | semmle.label | c [element] | | array_flow.rb:383:10:383:10 | c [element] | semmle.label | c [element] | | array_flow.rb:383:10:383:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:383:10:383:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:387:5:387:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:387:5:387:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:387:5:387:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:387:5:387:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:387:16:387:27 | call to source | semmle.label | call to source | | array_flow.rb:387:16:387:27 | call to source | semmle.label | call to source | | array_flow.rb:387:30:387:41 | call to source | semmle.label | call to source | -| array_flow.rb:387:30:387:41 | call to source | semmle.label | call to source | -| array_flow.rb:388:5:388:5 | b [element] | semmle.label | b [element] | | array_flow.rb:388:5:388:5 | b [element] | semmle.label | b [element] | | array_flow.rb:388:9:388:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:388:9:388:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:388:9:388:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:388:9:388:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:388:9:390:7 | call to drop_while [element] | semmle.label | call to drop_while [element] | -| array_flow.rb:388:9:390:7 | call to drop_while [element] | semmle.label | call to drop_while [element] | -| array_flow.rb:388:26:388:26 | x | semmle.label | x | | array_flow.rb:388:26:388:26 | x | semmle.label | x | | array_flow.rb:389:14:389:14 | x | semmle.label | x | -| array_flow.rb:389:14:389:14 | x | semmle.label | x | -| array_flow.rb:391:10:391:10 | b [element] | semmle.label | b [element] | | array_flow.rb:391:10:391:10 | b [element] | semmle.label | b [element] | | array_flow.rb:391:10:391:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:391:10:391:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:395:5:395:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:395:5:395:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:395:16:395:25 | call to source | semmle.label | call to source | -| array_flow.rb:395:16:395:25 | call to source | semmle.label | call to source | -| array_flow.rb:396:5:396:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:396:5:396:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:396:9:396:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:396:9:396:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:396:9:398:7 | call to each [element 2] | semmle.label | call to each [element 2] | | array_flow.rb:396:9:398:7 | call to each [element 2] | semmle.label | call to each [element 2] | | array_flow.rb:396:20:396:20 | x | semmle.label | x | -| array_flow.rb:396:20:396:20 | x | semmle.label | x | -| array_flow.rb:397:14:397:14 | x | semmle.label | x | | array_flow.rb:397:14:397:14 | x | semmle.label | x | | array_flow.rb:399:10:399:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:399:10:399:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:399:10:399:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:399:10:399:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:403:5:403:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:403:5:403:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:403:16:403:25 | call to source | semmle.label | call to source | | array_flow.rb:403:16:403:25 | call to source | semmle.label | call to source | | array_flow.rb:404:5:404:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:404:5:404:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:404:9:406:7 | __synth__0__1 | semmle.label | __synth__0__1 | | array_flow.rb:404:9:406:7 | __synth__0__1 | semmle.label | __synth__0__1 | | array_flow.rb:404:13:404:13 | x | semmle.label | x | -| array_flow.rb:404:13:404:13 | x | semmle.label | x | -| array_flow.rb:404:18:404:18 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:404:18:404:18 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:405:14:405:14 | x | semmle.label | x | -| array_flow.rb:405:14:405:14 | x | semmle.label | x | -| array_flow.rb:407:10:407:10 | x | semmle.label | x | | array_flow.rb:407:10:407:10 | x | semmle.label | x | | array_flow.rb:408:10:408:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:408:10:408:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:408:10:408:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:408:10:408:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:412:5:412:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:412:5:412:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:412:16:412:25 | call to source | semmle.label | call to source | | array_flow.rb:412:16:412:25 | call to source | semmle.label | call to source | | array_flow.rb:413:5:413:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:413:5:413:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:413:24:413:24 | x [element] | semmle.label | x [element] | | array_flow.rb:413:24:413:24 | x [element] | semmle.label | x [element] | | array_flow.rb:414:14:414:19 | ( ... ) | semmle.label | ( ... ) | -| array_flow.rb:414:14:414:19 | ( ... ) | semmle.label | ( ... ) | -| array_flow.rb:414:15:414:15 | x [element] | semmle.label | x [element] | | array_flow.rb:414:15:414:15 | x [element] | semmle.label | x [element] | | array_flow.rb:414:15:414:18 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:414:15:414:18 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:419:5:419:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:419:5:419:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:419:16:419:25 | call to source | semmle.label | call to source | -| array_flow.rb:419:16:419:25 | call to source | semmle.label | call to source | -| array_flow.rb:420:5:420:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:420:5:420:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:420:9:420:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:420:9:420:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:420:9:422:7 | call to each_entry [element 2] | semmle.label | call to each_entry [element 2] | | array_flow.rb:420:9:422:7 | call to each_entry [element 2] | semmle.label | call to each_entry [element 2] | | array_flow.rb:420:26:420:26 | x | semmle.label | x | -| array_flow.rb:420:26:420:26 | x | semmle.label | x | -| array_flow.rb:421:14:421:14 | x | semmle.label | x | | array_flow.rb:421:14:421:14 | x | semmle.label | x | | array_flow.rb:423:10:423:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:423:10:423:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:423:10:423:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:423:10:423:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:427:5:427:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:427:5:427:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:427:16:427:25 | call to source | semmle.label | call to source | | array_flow.rb:427:16:427:25 | call to source | semmle.label | call to source | | array_flow.rb:428:5:428:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:428:5:428:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:428:9:428:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:428:9:428:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:428:9:430:7 | call to each_index [element 2] | semmle.label | call to each_index [element 2] | -| array_flow.rb:428:9:430:7 | call to each_index [element 2] | semmle.label | call to each_index [element 2] | -| array_flow.rb:431:10:431:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:431:10:431:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:431:10:431:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:431:10:431:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:435:5:435:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:435:5:435:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:435:19:435:28 | call to source | semmle.label | call to source | -| array_flow.rb:435:19:435:28 | call to source | semmle.label | call to source | -| array_flow.rb:436:5:436:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:436:5:436:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:436:25:436:25 | x [element] | semmle.label | x [element] | -| array_flow.rb:436:25:436:25 | x [element] | semmle.label | x [element] | -| array_flow.rb:437:14:437:14 | x [element] | semmle.label | x [element] | | array_flow.rb:437:14:437:14 | x [element] | semmle.label | x [element] | | array_flow.rb:437:14:437:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:437:14:437:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:442:5:442:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:442:5:442:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:442:19:442:28 | call to source | semmle.label | call to source | -| array_flow.rb:442:19:442:28 | call to source | semmle.label | call to source | -| array_flow.rb:443:5:443:5 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:443:5:443:5 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:443:9:443:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:443:9:443:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:443:9:446:7 | call to each_with_index [element 3] | semmle.label | call to each_with_index [element 3] | | array_flow.rb:443:9:446:7 | call to each_with_index [element 3] | semmle.label | call to each_with_index [element 3] | | array_flow.rb:443:31:443:31 | x | semmle.label | x | -| array_flow.rb:443:31:443:31 | x | semmle.label | x | -| array_flow.rb:444:14:444:14 | x | semmle.label | x | | array_flow.rb:444:14:444:14 | x | semmle.label | x | | array_flow.rb:447:10:447:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:447:10:447:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:447:10:447:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:447:10:447:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:451:5:451:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:451:5:451:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:451:19:451:30 | call to source | semmle.label | call to source | | array_flow.rb:451:19:451:30 | call to source | semmle.label | call to source | | array_flow.rb:452:5:452:5 | b | semmle.label | b | -| array_flow.rb:452:5:452:5 | b | semmle.label | b | -| array_flow.rb:452:9:452:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:452:9:452:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:452:9:455:7 | call to each_with_object | semmle.label | call to each_with_object | -| array_flow.rb:452:9:455:7 | call to each_with_object | semmle.label | call to each_with_object | -| array_flow.rb:452:28:452:39 | call to source | semmle.label | call to source | | array_flow.rb:452:28:452:39 | call to source | semmle.label | call to source | | array_flow.rb:452:46:452:46 | x | semmle.label | x | -| array_flow.rb:452:46:452:46 | x | semmle.label | x | -| array_flow.rb:452:48:452:48 | a | semmle.label | a | | array_flow.rb:452:48:452:48 | a | semmle.label | a | | array_flow.rb:453:14:453:14 | x | semmle.label | x | -| array_flow.rb:453:14:453:14 | x | semmle.label | x | -| array_flow.rb:454:14:454:14 | a | semmle.label | a | | array_flow.rb:454:14:454:14 | a | semmle.label | a | | array_flow.rb:456:10:456:10 | b | semmle.label | b | -| array_flow.rb:456:10:456:10 | b | semmle.label | b | -| array_flow.rb:460:5:460:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:460:5:460:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:460:19:460:28 | call to source | semmle.label | call to source | -| array_flow.rb:460:19:460:28 | call to source | semmle.label | call to source | -| array_flow.rb:461:5:461:5 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:461:5:461:5 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:461:9:461:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:461:9:461:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:461:9:461:17 | call to entries [element 3] | semmle.label | call to entries [element 3] | | array_flow.rb:461:9:461:17 | call to entries [element 3] | semmle.label | call to entries [element 3] | | array_flow.rb:462:10:462:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:462:10:462:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:462:10:462:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:462:10:462:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:466:5:466:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:466:5:466:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:466:5:466:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:466:5:466:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:466:19:466:30 | call to source | semmle.label | call to source | -| array_flow.rb:466:19:466:30 | call to source | semmle.label | call to source | -| array_flow.rb:466:33:466:44 | call to source | semmle.label | call to source | | array_flow.rb:466:33:466:44 | call to source | semmle.label | call to source | | array_flow.rb:467:5:467:5 | b | semmle.label | b | -| array_flow.rb:467:5:467:5 | b | semmle.label | b | -| array_flow.rb:467:9:467:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:467:9:467:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:467:9:467:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:467:9:467:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:467:9:469:7 | call to fetch | semmle.label | call to fetch | | array_flow.rb:467:9:469:7 | call to fetch | semmle.label | call to fetch | | array_flow.rb:467:17:467:28 | call to source | semmle.label | call to source | -| array_flow.rb:467:17:467:28 | call to source | semmle.label | call to source | -| array_flow.rb:467:35:467:35 | x | semmle.label | x | | array_flow.rb:467:35:467:35 | x | semmle.label | x | | array_flow.rb:468:14:468:14 | x | semmle.label | x | -| array_flow.rb:468:14:468:14 | x | semmle.label | x | -| array_flow.rb:470:10:470:10 | b | semmle.label | b | | array_flow.rb:470:10:470:10 | b | semmle.label | b | | array_flow.rb:471:5:471:5 | b | semmle.label | b | -| array_flow.rb:471:5:471:5 | b | semmle.label | b | -| array_flow.rb:471:9:471:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:471:9:471:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:471:9:471:18 | call to fetch | semmle.label | call to fetch | -| array_flow.rb:471:9:471:18 | call to fetch | semmle.label | call to fetch | -| array_flow.rb:472:10:472:10 | b | semmle.label | b | | array_flow.rb:472:10:472:10 | b | semmle.label | b | | array_flow.rb:473:5:473:5 | b | semmle.label | b | -| array_flow.rb:473:5:473:5 | b | semmle.label | b | -| array_flow.rb:473:9:473:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:473:9:473:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:473:9:473:32 | call to fetch | semmle.label | call to fetch | -| array_flow.rb:473:9:473:32 | call to fetch | semmle.label | call to fetch | -| array_flow.rb:473:20:473:31 | call to source | semmle.label | call to source | | array_flow.rb:473:20:473:31 | call to source | semmle.label | call to source | | array_flow.rb:474:10:474:10 | b | semmle.label | b | -| array_flow.rb:474:10:474:10 | b | semmle.label | b | -| array_flow.rb:475:5:475:5 | b | semmle.label | b | | array_flow.rb:475:5:475:5 | b | semmle.label | b | | array_flow.rb:475:9:475:34 | call to fetch | semmle.label | call to fetch | -| array_flow.rb:475:9:475:34 | call to fetch | semmle.label | call to fetch | -| array_flow.rb:475:22:475:33 | call to source | semmle.label | call to source | | array_flow.rb:475:22:475:33 | call to source | semmle.label | call to source | | array_flow.rb:476:10:476:10 | b | semmle.label | b | -| array_flow.rb:476:10:476:10 | b | semmle.label | b | -| array_flow.rb:477:5:477:5 | b | semmle.label | b | | array_flow.rb:477:5:477:5 | b | semmle.label | b | | array_flow.rb:477:9:477:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:477:9:477:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:477:9:477:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:477:9:477:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:477:9:477:32 | call to fetch | semmle.label | call to fetch | -| array_flow.rb:477:9:477:32 | call to fetch | semmle.label | call to fetch | -| array_flow.rb:477:20:477:31 | call to source | semmle.label | call to source | | array_flow.rb:477:20:477:31 | call to source | semmle.label | call to source | | array_flow.rb:478:10:478:10 | b | semmle.label | b | -| array_flow.rb:478:10:478:10 | b | semmle.label | b | -| array_flow.rb:482:5:482:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:482:5:482:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:482:19:482:30 | call to source | semmle.label | call to source | -| array_flow.rb:482:19:482:30 | call to source | semmle.label | call to source | -| array_flow.rb:483:5:483:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:483:5:483:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:483:12:483:23 | call to source | semmle.label | call to source | -| array_flow.rb:483:12:483:23 | call to source | semmle.label | call to source | -| array_flow.rb:484:10:484:10 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:484:10:484:10 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:484:10:484:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:484:10:484:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:484:10:484:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:484:10:484:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:485:5:485:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:485:5:485:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:485:12:485:23 | call to source | semmle.label | call to source | | array_flow.rb:485:12:485:23 | call to source | semmle.label | call to source | | array_flow.rb:486:10:486:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:486:10:486:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:486:10:486:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:486:10:486:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:487:5:487:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:487:5:487:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:488:9:488:20 | call to source | semmle.label | call to source | | array_flow.rb:488:9:488:20 | call to source | semmle.label | call to source | | array_flow.rb:490:10:490:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:490:10:490:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:490:10:490:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:490:10:490:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:491:5:491:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:491:5:491:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:492:9:492:20 | call to source | semmle.label | call to source | | array_flow.rb:492:9:492:20 | call to source | semmle.label | call to source | | array_flow.rb:494:10:494:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:494:10:494:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:494:10:494:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:494:10:494:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:498:5:498:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:498:5:498:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:498:19:498:28 | call to source | semmle.label | call to source | | array_flow.rb:498:19:498:28 | call to source | semmle.label | call to source | | array_flow.rb:499:5:499:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:499:5:499:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:499:9:499:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:499:9:499:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:499:9:501:7 | call to filter [element] | semmle.label | call to filter [element] | -| array_flow.rb:499:9:501:7 | call to filter [element] | semmle.label | call to filter [element] | -| array_flow.rb:499:22:499:22 | x | semmle.label | x | | array_flow.rb:499:22:499:22 | x | semmle.label | x | | array_flow.rb:500:14:500:14 | x | semmle.label | x | -| array_flow.rb:500:14:500:14 | x | semmle.label | x | -| array_flow.rb:502:10:502:10 | b [element] | semmle.label | b [element] | | array_flow.rb:502:10:502:10 | b [element] | semmle.label | b [element] | | array_flow.rb:502:10:502:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:502:10:502:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:506:5:506:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:506:5:506:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:506:19:506:28 | call to source | semmle.label | call to source | -| array_flow.rb:506:19:506:28 | call to source | semmle.label | call to source | -| array_flow.rb:507:5:507:5 | b [element] | semmle.label | b [element] | | array_flow.rb:507:5:507:5 | b [element] | semmle.label | b [element] | | array_flow.rb:507:9:507:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:507:9:507:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:507:9:510:7 | call to filter_map [element] | semmle.label | call to filter_map [element] | | array_flow.rb:507:9:510:7 | call to filter_map [element] | semmle.label | call to filter_map [element] | | array_flow.rb:507:26:507:26 | x | semmle.label | x | -| array_flow.rb:507:26:507:26 | x | semmle.label | x | -| array_flow.rb:508:14:508:14 | x | semmle.label | x | | array_flow.rb:508:14:508:14 | x | semmle.label | x | | array_flow.rb:511:10:511:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:511:10:511:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:511:10:511:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:511:10:511:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:518:5:518:5 | d [element] | semmle.label | d [element] | -| array_flow.rb:518:5:518:5 | d [element] | semmle.label | d [element] | -| array_flow.rb:518:9:520:7 | call to filter_map [element] | semmle.label | call to filter_map [element] | | array_flow.rb:518:9:520:7 | call to filter_map [element] | semmle.label | call to filter_map [element] | | array_flow.rb:519:9:519:20 | call to source | semmle.label | call to source | -| array_flow.rb:519:9:519:20 | call to source | semmle.label | call to source | -| array_flow.rb:521:10:521:10 | d [element] | semmle.label | d [element] | | array_flow.rb:521:10:521:10 | d [element] | semmle.label | d [element] | | array_flow.rb:521:10:521:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:521:10:521:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:525:5:525:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:525:5:525:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:525:19:525:28 | call to source | semmle.label | call to source | -| array_flow.rb:525:19:525:28 | call to source | semmle.label | call to source | -| array_flow.rb:526:5:526:5 | b [element] | semmle.label | b [element] | | array_flow.rb:526:5:526:5 | b [element] | semmle.label | b [element] | | array_flow.rb:526:9:526:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:526:9:526:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:526:9:526:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:526:9:526:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:526:9:529:7 | call to filter! [element] | semmle.label | call to filter! [element] | -| array_flow.rb:526:9:529:7 | call to filter! [element] | semmle.label | call to filter! [element] | -| array_flow.rb:526:23:526:23 | x | semmle.label | x | | array_flow.rb:526:23:526:23 | x | semmle.label | x | | array_flow.rb:527:14:527:14 | x | semmle.label | x | -| array_flow.rb:527:14:527:14 | x | semmle.label | x | -| array_flow.rb:530:10:530:10 | a [element] | semmle.label | a [element] | | array_flow.rb:530:10:530:10 | a [element] | semmle.label | a [element] | | array_flow.rb:530:10:530:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:530:10:530:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:531:10:531:10 | b [element] | semmle.label | b [element] | | array_flow.rb:531:10:531:10 | b [element] | semmle.label | b [element] | | array_flow.rb:531:10:531:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:531:10:531:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:535:5:535:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:535:5:535:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:535:19:535:30 | call to source | semmle.label | call to source | -| array_flow.rb:535:19:535:30 | call to source | semmle.label | call to source | -| array_flow.rb:536:5:536:5 | b | semmle.label | b | | array_flow.rb:536:5:536:5 | b | semmle.label | b | | array_flow.rb:536:9:536:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:536:9:536:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:536:9:538:7 | call to find | semmle.label | call to find | | array_flow.rb:536:9:538:7 | call to find | semmle.label | call to find | | array_flow.rb:536:21:536:32 | call to source | semmle.label | call to source | -| array_flow.rb:536:21:536:32 | call to source | semmle.label | call to source | -| array_flow.rb:536:41:536:41 | x | semmle.label | x | | array_flow.rb:536:41:536:41 | x | semmle.label | x | | array_flow.rb:537:14:537:14 | x | semmle.label | x | -| array_flow.rb:537:14:537:14 | x | semmle.label | x | -| array_flow.rb:539:10:539:10 | b | semmle.label | b | | array_flow.rb:539:10:539:10 | b | semmle.label | b | | array_flow.rb:543:5:543:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:543:5:543:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:543:19:543:28 | call to source | semmle.label | call to source | | array_flow.rb:543:19:543:28 | call to source | semmle.label | call to source | | array_flow.rb:544:5:544:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:544:5:544:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:544:9:544:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:544:9:544:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:544:9:546:7 | call to find_all [element] | semmle.label | call to find_all [element] | -| array_flow.rb:544:9:546:7 | call to find_all [element] | semmle.label | call to find_all [element] | -| array_flow.rb:544:24:544:24 | x | semmle.label | x | | array_flow.rb:544:24:544:24 | x | semmle.label | x | | array_flow.rb:545:14:545:14 | x | semmle.label | x | -| array_flow.rb:545:14:545:14 | x | semmle.label | x | -| array_flow.rb:547:10:547:10 | b [element] | semmle.label | b [element] | | array_flow.rb:547:10:547:10 | b [element] | semmle.label | b [element] | | array_flow.rb:547:10:547:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:547:10:547:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:551:5:551:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:551:5:551:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:551:19:551:28 | call to source | semmle.label | call to source | -| array_flow.rb:551:19:551:28 | call to source | semmle.label | call to source | -| array_flow.rb:552:5:552:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:552:5:552:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:552:22:552:22 | x | semmle.label | x | -| array_flow.rb:552:22:552:22 | x | semmle.label | x | -| array_flow.rb:553:14:553:14 | x | semmle.label | x | | array_flow.rb:553:14:553:14 | x | semmle.label | x | | array_flow.rb:558:5:558:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:558:5:558:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:558:5:558:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:558:5:558:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:558:10:558:21 | call to source | semmle.label | call to source | -| array_flow.rb:558:10:558:21 | call to source | semmle.label | call to source | -| array_flow.rb:558:30:558:41 | call to source | semmle.label | call to source | | array_flow.rb:558:30:558:41 | call to source | semmle.label | call to source | | array_flow.rb:559:5:559:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:559:5:559:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:559:12:559:23 | call to source | semmle.label | call to source | | array_flow.rb:559:12:559:23 | call to source | semmle.label | call to source | | array_flow.rb:560:10:560:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:560:10:560:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:560:10:560:10 | a [element] | semmle.label | a [element] | | array_flow.rb:560:10:560:10 | a [element] | semmle.label | a [element] | | array_flow.rb:560:10:560:16 | call to first | semmle.label | call to first | -| array_flow.rb:560:10:560:16 | call to first | semmle.label | call to first | -| array_flow.rb:561:5:561:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:561:5:561:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:561:5:561:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:561:5:561:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:561:9:561:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:561:9:561:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:561:9:561:9 | a [element] | semmle.label | a [element] | -| array_flow.rb:561:9:561:9 | a [element] | semmle.label | a [element] | -| array_flow.rb:561:9:561:18 | call to first [element 0] | semmle.label | call to first [element 0] | | array_flow.rb:561:9:561:18 | call to first [element 0] | semmle.label | call to first [element 0] | | array_flow.rb:561:9:561:18 | call to first [element] | semmle.label | call to first [element] | -| array_flow.rb:561:9:561:18 | call to first [element] | semmle.label | call to first [element] | -| array_flow.rb:562:10:562:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:562:10:562:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:562:10:562:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:562:10:562:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:562:10:562:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:562:10:562:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:563:10:563:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:563:10:563:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:563:10:563:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:563:10:563:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:564:5:564:5 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:564:5:564:5 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:564:5:564:5 | c [element 3] | semmle.label | c [element 3] | | array_flow.rb:564:5:564:5 | c [element 3] | semmle.label | c [element 3] | | array_flow.rb:564:5:564:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:564:5:564:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:564:9:564:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:564:9:564:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:564:9:564:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:564:9:564:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:564:9:564:9 | a [element] | semmle.label | a [element] | | array_flow.rb:564:9:564:9 | a [element] | semmle.label | a [element] | | array_flow.rb:564:9:564:18 | call to first [element 0] | semmle.label | call to first [element 0] | -| array_flow.rb:564:9:564:18 | call to first [element 0] | semmle.label | call to first [element 0] | -| array_flow.rb:564:9:564:18 | call to first [element 3] | semmle.label | call to first [element 3] | | array_flow.rb:564:9:564:18 | call to first [element 3] | semmle.label | call to first [element 3] | | array_flow.rb:564:9:564:18 | call to first [element] | semmle.label | call to first [element] | -| array_flow.rb:564:9:564:18 | call to first [element] | semmle.label | call to first [element] | -| array_flow.rb:565:10:565:10 | c [element 0] | semmle.label | c [element 0] | | array_flow.rb:565:10:565:10 | c [element 0] | semmle.label | c [element 0] | | array_flow.rb:565:10:565:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:565:10:565:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:565:10:565:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:565:10:565:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:566:10:566:10 | c [element 3] | semmle.label | c [element 3] | -| array_flow.rb:566:10:566:10 | c [element 3] | semmle.label | c [element 3] | -| array_flow.rb:566:10:566:10 | c [element] | semmle.label | c [element] | | array_flow.rb:566:10:566:10 | c [element] | semmle.label | c [element] | | array_flow.rb:566:10:566:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:566:10:566:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:570:5:570:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:570:5:570:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:570:16:570:27 | call to source | semmle.label | call to source | -| array_flow.rb:570:16:570:27 | call to source | semmle.label | call to source | -| array_flow.rb:571:5:571:5 | b [element] | semmle.label | b [element] | | array_flow.rb:571:5:571:5 | b [element] | semmle.label | b [element] | | array_flow.rb:571:9:571:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:571:9:571:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:571:9:574:7 | call to flat_map [element] | semmle.label | call to flat_map [element] | | array_flow.rb:571:9:574:7 | call to flat_map [element] | semmle.label | call to flat_map [element] | | array_flow.rb:571:24:571:24 | x | semmle.label | x | -| array_flow.rb:571:24:571:24 | x | semmle.label | x | -| array_flow.rb:572:14:572:14 | x | semmle.label | x | | array_flow.rb:572:14:572:14 | x | semmle.label | x | | array_flow.rb:573:13:573:24 | call to source | semmle.label | call to source | -| array_flow.rb:573:13:573:24 | call to source | semmle.label | call to source | -| array_flow.rb:575:10:575:10 | b [element] | semmle.label | b [element] | | array_flow.rb:575:10:575:10 | b [element] | semmle.label | b [element] | | array_flow.rb:575:10:575:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:575:10:575:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:576:5:576:5 | b [element] | semmle.label | b [element] | | array_flow.rb:576:5:576:5 | b [element] | semmle.label | b [element] | | array_flow.rb:576:9:576:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:576:9:576:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:576:9:579:7 | call to flat_map [element] | semmle.label | call to flat_map [element] | | array_flow.rb:576:9:579:7 | call to flat_map [element] | semmle.label | call to flat_map [element] | | array_flow.rb:576:24:576:24 | x | semmle.label | x | -| array_flow.rb:576:24:576:24 | x | semmle.label | x | -| array_flow.rb:577:14:577:14 | x | semmle.label | x | | array_flow.rb:577:14:577:14 | x | semmle.label | x | | array_flow.rb:578:9:578:20 | call to source | semmle.label | call to source | -| array_flow.rb:578:9:578:20 | call to source | semmle.label | call to source | -| array_flow.rb:580:10:580:10 | b [element] | semmle.label | b [element] | | array_flow.rb:580:10:580:10 | b [element] | semmle.label | b [element] | | array_flow.rb:580:10:580:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:580:10:580:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:584:5:584:5 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | | array_flow.rb:584:5:584:5 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | | array_flow.rb:584:20:584:29 | call to source | semmle.label | call to source | -| array_flow.rb:584:20:584:29 | call to source | semmle.label | call to source | -| array_flow.rb:585:5:585:5 | b [element] | semmle.label | b [element] | | array_flow.rb:585:5:585:5 | b [element] | semmle.label | b [element] | | array_flow.rb:585:9:585:9 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | -| array_flow.rb:585:9:585:9 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | -| array_flow.rb:585:9:585:17 | call to flatten [element] | semmle.label | call to flatten [element] | | array_flow.rb:585:9:585:17 | call to flatten [element] | semmle.label | call to flatten [element] | | array_flow.rb:586:10:586:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:586:10:586:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:586:10:586:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:586:10:586:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:590:5:590:5 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | -| array_flow.rb:590:5:590:5 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | -| array_flow.rb:590:20:590:29 | call to source | semmle.label | call to source | | array_flow.rb:590:20:590:29 | call to source | semmle.label | call to source | | array_flow.rb:591:10:591:10 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | -| array_flow.rb:591:10:591:10 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | -| array_flow.rb:591:10:591:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:591:10:591:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:591:10:591:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:591:10:591:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:592:5:592:5 | b [element, element 1] | semmle.label | b [element, element 1] | | array_flow.rb:592:5:592:5 | b [element, element 1] | semmle.label | b [element, element 1] | | array_flow.rb:592:5:592:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:592:5:592:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:592:9:592:9 | [post] a [element, element 1] | semmle.label | [post] a [element, element 1] | | array_flow.rb:592:9:592:9 | [post] a [element, element 1] | semmle.label | [post] a [element, element 1] | | array_flow.rb:592:9:592:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:592:9:592:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:592:9:592:9 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | | array_flow.rb:592:9:592:9 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | | array_flow.rb:592:9:592:18 | call to flatten! [element, element 1] | semmle.label | call to flatten! [element, element 1] | -| array_flow.rb:592:9:592:18 | call to flatten! [element, element 1] | semmle.label | call to flatten! [element, element 1] | -| array_flow.rb:592:9:592:18 | call to flatten! [element] | semmle.label | call to flatten! [element] | | array_flow.rb:592:9:592:18 | call to flatten! [element] | semmle.label | call to flatten! [element] | | array_flow.rb:593:10:593:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:593:10:593:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:593:10:593:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:593:10:593:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:594:10:594:10 | a [element, element 1] | semmle.label | a [element, element 1] | -| array_flow.rb:594:10:594:10 | a [element, element 1] | semmle.label | a [element, element 1] | -| array_flow.rb:594:10:594:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:594:10:594:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:594:10:594:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:594:10:594:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:594:10:594:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:594:10:594:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:595:10:595:10 | b [element] | semmle.label | b [element] | | array_flow.rb:595:10:595:10 | b [element] | semmle.label | b [element] | | array_flow.rb:595:10:595:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:595:10:595:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:596:10:596:10 | b [element, element 1] | semmle.label | b [element, element 1] | -| array_flow.rb:596:10:596:10 | b [element, element 1] | semmle.label | b [element, element 1] | -| array_flow.rb:596:10:596:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:596:10:596:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:596:10:596:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:596:10:596:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:596:10:596:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:596:10:596:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:600:5:600:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:600:5:600:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:600:19:600:30 | call to source | semmle.label | call to source | -| array_flow.rb:600:19:600:30 | call to source | semmle.label | call to source | -| array_flow.rb:601:5:601:5 | b [element] | semmle.label | b [element] | | array_flow.rb:601:5:601:5 | b [element] | semmle.label | b [element] | | array_flow.rb:601:9:601:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:601:9:601:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:601:9:601:20 | call to grep [element] | semmle.label | call to grep [element] | | array_flow.rb:601:9:601:20 | call to grep [element] | semmle.label | call to grep [element] | | array_flow.rb:602:10:602:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:602:10:602:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:602:10:602:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:602:10:602:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:603:5:603:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:603:5:603:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:603:9:603:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:603:9:603:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:603:9:606:7 | call to grep [element] | semmle.label | call to grep [element] | -| array_flow.rb:603:9:606:7 | call to grep [element] | semmle.label | call to grep [element] | -| array_flow.rb:603:26:603:26 | x | semmle.label | x | | array_flow.rb:603:26:603:26 | x | semmle.label | x | | array_flow.rb:604:14:604:14 | x | semmle.label | x | -| array_flow.rb:604:14:604:14 | x | semmle.label | x | -| array_flow.rb:605:9:605:20 | call to source | semmle.label | call to source | | array_flow.rb:605:9:605:20 | call to source | semmle.label | call to source | | array_flow.rb:607:10:607:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:607:10:607:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:607:10:607:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:607:10:607:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:611:5:611:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:611:5:611:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:611:19:611:30 | call to source | semmle.label | call to source | | array_flow.rb:611:19:611:30 | call to source | semmle.label | call to source | | array_flow.rb:612:5:612:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:612:5:612:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:612:9:612:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:612:9:612:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:612:9:612:21 | call to grep_v [element] | semmle.label | call to grep_v [element] | -| array_flow.rb:612:9:612:21 | call to grep_v [element] | semmle.label | call to grep_v [element] | -| array_flow.rb:613:10:613:10 | b [element] | semmle.label | b [element] | | array_flow.rb:613:10:613:10 | b [element] | semmle.label | b [element] | | array_flow.rb:613:10:613:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:613:10:613:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:614:5:614:5 | b [element] | semmle.label | b [element] | | array_flow.rb:614:5:614:5 | b [element] | semmle.label | b [element] | | array_flow.rb:614:9:614:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:614:9:614:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:614:9:617:7 | call to grep_v [element] | semmle.label | call to grep_v [element] | | array_flow.rb:614:9:617:7 | call to grep_v [element] | semmle.label | call to grep_v [element] | | array_flow.rb:614:27:614:27 | x | semmle.label | x | -| array_flow.rb:614:27:614:27 | x | semmle.label | x | -| array_flow.rb:615:14:615:14 | x | semmle.label | x | | array_flow.rb:615:14:615:14 | x | semmle.label | x | | array_flow.rb:616:9:616:20 | call to source | semmle.label | call to source | -| array_flow.rb:616:9:616:20 | call to source | semmle.label | call to source | -| array_flow.rb:618:10:618:10 | b [element] | semmle.label | b [element] | | array_flow.rb:618:10:618:10 | b [element] | semmle.label | b [element] | | array_flow.rb:618:10:618:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:618:10:618:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:622:5:622:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:622:5:622:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:622:19:622:30 | call to source | semmle.label | call to source | -| array_flow.rb:622:19:622:30 | call to source | semmle.label | call to source | -| array_flow.rb:623:9:623:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:623:9:623:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:623:24:623:24 | x | semmle.label | x | -| array_flow.rb:623:24:623:24 | x | semmle.label | x | -| array_flow.rb:624:14:624:14 | x | semmle.label | x | | array_flow.rb:624:14:624:14 | x | semmle.label | x | | array_flow.rb:631:5:631:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:631:5:631:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:631:19:631:28 | call to source | semmle.label | call to source | | array_flow.rb:631:19:631:28 | call to source | semmle.label | call to source | | array_flow.rb:632:5:632:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:632:5:632:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:632:17:632:17 | x | semmle.label | x | | array_flow.rb:632:17:632:17 | x | semmle.label | x | | array_flow.rb:633:14:633:14 | x | semmle.label | x | -| array_flow.rb:633:14:633:14 | x | semmle.label | x | -| array_flow.rb:638:5:638:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:638:5:638:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:638:5:638:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:638:5:638:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:638:10:638:21 | call to source | semmle.label | call to source | | array_flow.rb:638:10:638:21 | call to source | semmle.label | call to source | | array_flow.rb:638:27:638:38 | call to source | semmle.label | call to source | -| array_flow.rb:638:27:638:38 | call to source | semmle.label | call to source | -| array_flow.rb:639:5:639:5 | b | semmle.label | b | | array_flow.rb:639:5:639:5 | b | semmle.label | b | | array_flow.rb:639:9:639:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:639:9:639:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:639:9:639:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:639:9:639:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:639:9:643:7 | call to inject | semmle.label | call to inject | -| array_flow.rb:639:9:643:7 | call to inject | semmle.label | call to inject | -| array_flow.rb:639:22:639:22 | x | semmle.label | x | | array_flow.rb:639:22:639:22 | x | semmle.label | x | | array_flow.rb:639:25:639:25 | y | semmle.label | y | -| array_flow.rb:639:25:639:25 | y | semmle.label | y | -| array_flow.rb:640:14:640:14 | x | semmle.label | x | | array_flow.rb:640:14:640:14 | x | semmle.label | x | | array_flow.rb:641:14:641:14 | y | semmle.label | y | -| array_flow.rb:641:14:641:14 | y | semmle.label | y | -| array_flow.rb:642:9:642:19 | call to source | semmle.label | call to source | | array_flow.rb:642:9:642:19 | call to source | semmle.label | call to source | | array_flow.rb:644:10:644:10 | b | semmle.label | b | -| array_flow.rb:644:10:644:10 | b | semmle.label | b | -| array_flow.rb:645:5:645:5 | c | semmle.label | c | | array_flow.rb:645:5:645:5 | c | semmle.label | c | | array_flow.rb:645:9:645:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:645:9:645:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:645:9:645:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:645:9:645:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:645:9:649:7 | call to inject | semmle.label | call to inject | -| array_flow.rb:645:9:649:7 | call to inject | semmle.label | call to inject | -| array_flow.rb:645:28:645:28 | y | semmle.label | y | | array_flow.rb:645:28:645:28 | y | semmle.label | y | | array_flow.rb:647:14:647:14 | y | semmle.label | y | -| array_flow.rb:647:14:647:14 | y | semmle.label | y | -| array_flow.rb:648:9:648:19 | call to source | semmle.label | call to source | | array_flow.rb:648:9:648:19 | call to source | semmle.label | call to source | | array_flow.rb:650:10:650:10 | c | semmle.label | c | -| array_flow.rb:650:10:650:10 | c | semmle.label | c | -| array_flow.rb:655:5:655:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:655:5:655:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:655:16:655:27 | call to source | semmle.label | call to source | -| array_flow.rb:655:16:655:27 | call to source | semmle.label | call to source | -| array_flow.rb:656:5:656:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:656:5:656:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:656:5:656:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:656:5:656:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:656:5:656:5 | b [element 4] | semmle.label | b [element 4] | | array_flow.rb:656:5:656:5 | b [element 4] | semmle.label | b [element 4] | | array_flow.rb:656:9:656:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | -| array_flow.rb:656:9:656:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | -| array_flow.rb:656:9:656:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | | array_flow.rb:656:9:656:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | | array_flow.rb:656:9:656:9 | [post] a [element 4] | semmle.label | [post] a [element 4] | -| array_flow.rb:656:9:656:9 | [post] a [element 4] | semmle.label | [post] a [element 4] | -| array_flow.rb:656:9:656:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:656:9:656:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:656:9:656:47 | call to insert [element 1] | semmle.label | call to insert [element 1] | -| array_flow.rb:656:9:656:47 | call to insert [element 1] | semmle.label | call to insert [element 1] | -| array_flow.rb:656:9:656:47 | call to insert [element 2] | semmle.label | call to insert [element 2] | | array_flow.rb:656:9:656:47 | call to insert [element 2] | semmle.label | call to insert [element 2] | | array_flow.rb:656:9:656:47 | call to insert [element 4] | semmle.label | call to insert [element 4] | -| array_flow.rb:656:9:656:47 | call to insert [element 4] | semmle.label | call to insert [element 4] | -| array_flow.rb:656:21:656:32 | call to source | semmle.label | call to source | | array_flow.rb:656:21:656:32 | call to source | semmle.label | call to source | | array_flow.rb:656:35:656:46 | call to source | semmle.label | call to source | -| array_flow.rb:656:35:656:46 | call to source | semmle.label | call to source | -| array_flow.rb:658:10:658:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:658:10:658:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:658:10:658:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:658:10:658:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:659:10:659:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:659:10:659:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:659:10:659:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:659:10:659:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:661:10:661:10 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:661:10:661:10 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:661:10:661:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:661:10:661:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:663:10:663:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:663:10:663:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:663:10:663:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:663:10:663:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:664:10:664:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:664:10:664:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:664:10:664:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:664:10:664:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:666:10:666:10 | b [element 4] | semmle.label | b [element 4] | | array_flow.rb:666:10:666:10 | b [element 4] | semmle.label | b [element 4] | | array_flow.rb:666:10:666:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:666:10:666:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:669:5:669:5 | c [element 2] | semmle.label | c [element 2] | | array_flow.rb:669:5:669:5 | c [element 2] | semmle.label | c [element 2] | | array_flow.rb:669:16:669:27 | call to source | semmle.label | call to source | -| array_flow.rb:669:16:669:27 | call to source | semmle.label | call to source | -| array_flow.rb:670:5:670:5 | d [element] | semmle.label | d [element] | | array_flow.rb:670:5:670:5 | d [element] | semmle.label | d [element] | | array_flow.rb:670:9:670:9 | [post] c [element] | semmle.label | [post] c [element] | -| array_flow.rb:670:9:670:9 | [post] c [element] | semmle.label | [post] c [element] | -| array_flow.rb:670:9:670:9 | c [element 2] | semmle.label | c [element 2] | | array_flow.rb:670:9:670:9 | c [element 2] | semmle.label | c [element 2] | | array_flow.rb:670:9:670:47 | call to insert [element] | semmle.label | call to insert [element] | -| array_flow.rb:670:9:670:47 | call to insert [element] | semmle.label | call to insert [element] | -| array_flow.rb:670:21:670:32 | call to source | semmle.label | call to source | | array_flow.rb:670:21:670:32 | call to source | semmle.label | call to source | | array_flow.rb:670:35:670:46 | call to source | semmle.label | call to source | -| array_flow.rb:670:35:670:46 | call to source | semmle.label | call to source | -| array_flow.rb:671:10:671:10 | c [element] | semmle.label | c [element] | | array_flow.rb:671:10:671:10 | c [element] | semmle.label | c [element] | | array_flow.rb:671:10:671:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:671:10:671:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:672:10:672:10 | d [element] | semmle.label | d [element] | | array_flow.rb:672:10:672:10 | d [element] | semmle.label | d [element] | | array_flow.rb:672:10:672:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:672:10:672:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:683:5:683:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:683:5:683:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:683:16:683:27 | call to source | semmle.label | call to source | -| array_flow.rb:683:16:683:27 | call to source | semmle.label | call to source | -| array_flow.rb:684:5:684:5 | b [element] | semmle.label | b [element] | | array_flow.rb:684:5:684:5 | b [element] | semmle.label | b [element] | | array_flow.rb:684:9:684:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:684:9:684:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:684:9:684:60 | call to intersection [element] | semmle.label | call to intersection [element] | | array_flow.rb:684:9:684:60 | call to intersection [element] | semmle.label | call to intersection [element] | | array_flow.rb:684:31:684:42 | call to source | semmle.label | call to source | -| array_flow.rb:684:31:684:42 | call to source | semmle.label | call to source | -| array_flow.rb:684:47:684:58 | call to source | semmle.label | call to source | | array_flow.rb:684:47:684:58 | call to source | semmle.label | call to source | | array_flow.rb:685:10:685:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:685:10:685:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:685:10:685:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:685:10:685:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:689:5:689:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:689:5:689:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:689:16:689:25 | call to source | semmle.label | call to source | | array_flow.rb:689:16:689:25 | call to source | semmle.label | call to source | | array_flow.rb:690:5:690:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:690:5:690:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:690:9:690:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:690:9:690:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:690:9:690:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:690:9:690:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:690:9:693:7 | call to keep_if [element] | semmle.label | call to keep_if [element] | | array_flow.rb:690:9:693:7 | call to keep_if [element] | semmle.label | call to keep_if [element] | | array_flow.rb:690:23:690:23 | x | semmle.label | x | -| array_flow.rb:690:23:690:23 | x | semmle.label | x | -| array_flow.rb:691:14:691:14 | x | semmle.label | x | | array_flow.rb:691:14:691:14 | x | semmle.label | x | | array_flow.rb:694:10:694:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:694:10:694:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:694:10:694:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:694:10:694:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:695:10:695:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:695:10:695:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:695:10:695:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:695:10:695:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:699:5:699:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:699:5:699:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:699:16:699:27 | call to source | semmle.label | call to source | | array_flow.rb:699:16:699:27 | call to source | semmle.label | call to source | | array_flow.rb:700:5:700:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:700:5:700:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:700:12:700:23 | call to source | semmle.label | call to source | | array_flow.rb:700:12:700:23 | call to source | semmle.label | call to source | | array_flow.rb:701:10:701:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:701:10:701:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:701:10:701:10 | a [element] | semmle.label | a [element] | | array_flow.rb:701:10:701:10 | a [element] | semmle.label | a [element] | | array_flow.rb:701:10:701:15 | call to last | semmle.label | call to last | -| array_flow.rb:701:10:701:15 | call to last | semmle.label | call to last | -| array_flow.rb:702:5:702:5 | b [element] | semmle.label | b [element] | | array_flow.rb:702:5:702:5 | b [element] | semmle.label | b [element] | | array_flow.rb:702:9:702:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:702:9:702:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:702:9:702:9 | a [element] | semmle.label | a [element] | | array_flow.rb:702:9:702:9 | a [element] | semmle.label | a [element] | | array_flow.rb:702:9:702:17 | call to last [element] | semmle.label | call to last [element] | -| array_flow.rb:702:9:702:17 | call to last [element] | semmle.label | call to last [element] | -| array_flow.rb:703:10:703:10 | b [element] | semmle.label | b [element] | | array_flow.rb:703:10:703:10 | b [element] | semmle.label | b [element] | | array_flow.rb:703:10:703:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:703:10:703:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:704:10:704:10 | b [element] | semmle.label | b [element] | | array_flow.rb:704:10:704:10 | b [element] | semmle.label | b [element] | | array_flow.rb:704:10:704:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:704:10:704:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:708:5:708:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:708:5:708:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:708:16:708:27 | call to source | semmle.label | call to source | -| array_flow.rb:708:16:708:27 | call to source | semmle.label | call to source | -| array_flow.rb:709:5:709:5 | b [element] | semmle.label | b [element] | | array_flow.rb:709:5:709:5 | b [element] | semmle.label | b [element] | | array_flow.rb:709:9:709:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:709:9:709:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:709:9:712:7 | call to map [element] | semmle.label | call to map [element] | | array_flow.rb:709:9:712:7 | call to map [element] | semmle.label | call to map [element] | | array_flow.rb:709:19:709:19 | x | semmle.label | x | -| array_flow.rb:709:19:709:19 | x | semmle.label | x | -| array_flow.rb:710:14:710:14 | x | semmle.label | x | | array_flow.rb:710:14:710:14 | x | semmle.label | x | | array_flow.rb:711:9:711:19 | call to source | semmle.label | call to source | -| array_flow.rb:711:9:711:19 | call to source | semmle.label | call to source | -| array_flow.rb:713:10:713:10 | b [element] | semmle.label | b [element] | | array_flow.rb:713:10:713:10 | b [element] | semmle.label | b [element] | | array_flow.rb:713:10:713:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:713:10:713:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:717:5:717:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:717:5:717:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:717:16:717:27 | call to source | semmle.label | call to source | -| array_flow.rb:717:16:717:27 | call to source | semmle.label | call to source | -| array_flow.rb:718:5:718:5 | b [element] | semmle.label | b [element] | | array_flow.rb:718:5:718:5 | b [element] | semmle.label | b [element] | | array_flow.rb:718:9:718:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:718:9:718:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:718:9:721:7 | call to map! [element] | semmle.label | call to map! [element] | | array_flow.rb:718:9:721:7 | call to map! [element] | semmle.label | call to map! [element] | | array_flow.rb:718:20:718:20 | x | semmle.label | x | -| array_flow.rb:718:20:718:20 | x | semmle.label | x | -| array_flow.rb:719:14:719:14 | x | semmle.label | x | | array_flow.rb:719:14:719:14 | x | semmle.label | x | | array_flow.rb:720:9:720:19 | call to source | semmle.label | call to source | -| array_flow.rb:720:9:720:19 | call to source | semmle.label | call to source | -| array_flow.rb:722:10:722:10 | b [element] | semmle.label | b [element] | | array_flow.rb:722:10:722:10 | b [element] | semmle.label | b [element] | | array_flow.rb:722:10:722:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:722:10:722:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:726:5:726:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:726:5:726:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:726:16:726:25 | call to source | semmle.label | call to source | -| array_flow.rb:726:16:726:25 | call to source | semmle.label | call to source | -| array_flow.rb:729:5:729:5 | b | semmle.label | b | | array_flow.rb:729:5:729:5 | b | semmle.label | b | | array_flow.rb:729:9:729:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:729:9:729:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:729:9:729:13 | call to max | semmle.label | call to max | | array_flow.rb:729:9:729:13 | call to max | semmle.label | call to max | | array_flow.rb:730:10:730:10 | b | semmle.label | b | -| array_flow.rb:730:10:730:10 | b | semmle.label | b | -| array_flow.rb:733:5:733:5 | c [element] | semmle.label | c [element] | | array_flow.rb:733:5:733:5 | c [element] | semmle.label | c [element] | | array_flow.rb:733:9:733:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:733:9:733:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:733:9:733:16 | call to max [element] | semmle.label | call to max [element] | | array_flow.rb:733:9:733:16 | call to max [element] | semmle.label | call to max [element] | | array_flow.rb:734:10:734:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:734:10:734:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:734:10:734:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:734:10:734:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:737:5:737:5 | d | semmle.label | d | -| array_flow.rb:737:5:737:5 | d | semmle.label | d | -| array_flow.rb:737:9:737:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:737:9:737:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:737:9:741:7 | call to max | semmle.label | call to max | -| array_flow.rb:737:9:741:7 | call to max | semmle.label | call to max | -| array_flow.rb:737:19:737:19 | x | semmle.label | x | | array_flow.rb:737:19:737:19 | x | semmle.label | x | | array_flow.rb:737:22:737:22 | y | semmle.label | y | -| array_flow.rb:737:22:737:22 | y | semmle.label | y | -| array_flow.rb:738:14:738:14 | x | semmle.label | x | | array_flow.rb:738:14:738:14 | x | semmle.label | x | | array_flow.rb:739:14:739:14 | y | semmle.label | y | -| array_flow.rb:739:14:739:14 | y | semmle.label | y | -| array_flow.rb:742:10:742:10 | d | semmle.label | d | | array_flow.rb:742:10:742:10 | d | semmle.label | d | | array_flow.rb:745:5:745:5 | e [element] | semmle.label | e [element] | -| array_flow.rb:745:5:745:5 | e [element] | semmle.label | e [element] | -| array_flow.rb:745:9:745:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:745:9:745:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:745:9:749:7 | call to max [element] | semmle.label | call to max [element] | -| array_flow.rb:745:9:749:7 | call to max [element] | semmle.label | call to max [element] | -| array_flow.rb:745:22:745:22 | x | semmle.label | x | | array_flow.rb:745:22:745:22 | x | semmle.label | x | | array_flow.rb:745:25:745:25 | y | semmle.label | y | -| array_flow.rb:745:25:745:25 | y | semmle.label | y | -| array_flow.rb:746:14:746:14 | x | semmle.label | x | | array_flow.rb:746:14:746:14 | x | semmle.label | x | | array_flow.rb:747:14:747:14 | y | semmle.label | y | -| array_flow.rb:747:14:747:14 | y | semmle.label | y | -| array_flow.rb:750:10:750:10 | e [element] | semmle.label | e [element] | | array_flow.rb:750:10:750:10 | e [element] | semmle.label | e [element] | | array_flow.rb:750:10:750:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:750:10:750:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:754:5:754:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:754:5:754:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:754:16:754:25 | call to source | semmle.label | call to source | -| array_flow.rb:754:16:754:25 | call to source | semmle.label | call to source | -| array_flow.rb:757:5:757:5 | b | semmle.label | b | | array_flow.rb:757:5:757:5 | b | semmle.label | b | | array_flow.rb:757:9:757:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:757:9:757:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:757:9:760:7 | call to max_by | semmle.label | call to max_by | | array_flow.rb:757:9:760:7 | call to max_by | semmle.label | call to max_by | | array_flow.rb:757:22:757:22 | x | semmle.label | x | -| array_flow.rb:757:22:757:22 | x | semmle.label | x | -| array_flow.rb:758:14:758:14 | x | semmle.label | x | | array_flow.rb:758:14:758:14 | x | semmle.label | x | | array_flow.rb:761:10:761:10 | b | semmle.label | b | -| array_flow.rb:761:10:761:10 | b | semmle.label | b | -| array_flow.rb:764:5:764:5 | c [element] | semmle.label | c [element] | | array_flow.rb:764:5:764:5 | c [element] | semmle.label | c [element] | | array_flow.rb:764:9:764:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:764:9:764:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:764:9:767:7 | call to max_by [element] | semmle.label | call to max_by [element] | | array_flow.rb:764:9:767:7 | call to max_by [element] | semmle.label | call to max_by [element] | | array_flow.rb:764:25:764:25 | x | semmle.label | x | -| array_flow.rb:764:25:764:25 | x | semmle.label | x | -| array_flow.rb:765:14:765:14 | x | semmle.label | x | | array_flow.rb:765:14:765:14 | x | semmle.label | x | | array_flow.rb:768:10:768:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:768:10:768:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:768:10:768:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:768:10:768:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:772:5:772:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:772:5:772:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:772:16:772:25 | call to source | semmle.label | call to source | | array_flow.rb:772:16:772:25 | call to source | semmle.label | call to source | | array_flow.rb:775:5:775:5 | b | semmle.label | b | -| array_flow.rb:775:5:775:5 | b | semmle.label | b | -| array_flow.rb:775:9:775:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:775:9:775:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:775:9:775:13 | call to min | semmle.label | call to min | -| array_flow.rb:775:9:775:13 | call to min | semmle.label | call to min | -| array_flow.rb:776:10:776:10 | b | semmle.label | b | | array_flow.rb:776:10:776:10 | b | semmle.label | b | | array_flow.rb:779:5:779:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:779:5:779:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:779:9:779:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:779:9:779:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:779:9:779:16 | call to min [element] | semmle.label | call to min [element] | -| array_flow.rb:779:9:779:16 | call to min [element] | semmle.label | call to min [element] | -| array_flow.rb:780:10:780:10 | c [element] | semmle.label | c [element] | | array_flow.rb:780:10:780:10 | c [element] | semmle.label | c [element] | | array_flow.rb:780:10:780:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:780:10:780:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:783:5:783:5 | d | semmle.label | d | | array_flow.rb:783:5:783:5 | d | semmle.label | d | | array_flow.rb:783:9:783:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:783:9:783:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:783:9:787:7 | call to min | semmle.label | call to min | | array_flow.rb:783:9:787:7 | call to min | semmle.label | call to min | | array_flow.rb:783:19:783:19 | x | semmle.label | x | -| array_flow.rb:783:19:783:19 | x | semmle.label | x | -| array_flow.rb:783:22:783:22 | y | semmle.label | y | | array_flow.rb:783:22:783:22 | y | semmle.label | y | | array_flow.rb:784:14:784:14 | x | semmle.label | x | -| array_flow.rb:784:14:784:14 | x | semmle.label | x | -| array_flow.rb:785:14:785:14 | y | semmle.label | y | | array_flow.rb:785:14:785:14 | y | semmle.label | y | | array_flow.rb:788:10:788:10 | d | semmle.label | d | -| array_flow.rb:788:10:788:10 | d | semmle.label | d | -| array_flow.rb:791:5:791:5 | e [element] | semmle.label | e [element] | | array_flow.rb:791:5:791:5 | e [element] | semmle.label | e [element] | | array_flow.rb:791:9:791:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:791:9:791:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:791:9:795:7 | call to min [element] | semmle.label | call to min [element] | | array_flow.rb:791:9:795:7 | call to min [element] | semmle.label | call to min [element] | | array_flow.rb:791:22:791:22 | x | semmle.label | x | -| array_flow.rb:791:22:791:22 | x | semmle.label | x | -| array_flow.rb:791:25:791:25 | y | semmle.label | y | | array_flow.rb:791:25:791:25 | y | semmle.label | y | | array_flow.rb:792:14:792:14 | x | semmle.label | x | -| array_flow.rb:792:14:792:14 | x | semmle.label | x | -| array_flow.rb:793:14:793:14 | y | semmle.label | y | | array_flow.rb:793:14:793:14 | y | semmle.label | y | | array_flow.rb:796:10:796:10 | e [element] | semmle.label | e [element] | -| array_flow.rb:796:10:796:10 | e [element] | semmle.label | e [element] | -| array_flow.rb:796:10:796:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:796:10:796:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:800:5:800:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:800:5:800:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:800:16:800:25 | call to source | semmle.label | call to source | | array_flow.rb:800:16:800:25 | call to source | semmle.label | call to source | | array_flow.rb:803:5:803:5 | b | semmle.label | b | -| array_flow.rb:803:5:803:5 | b | semmle.label | b | -| array_flow.rb:803:9:803:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:803:9:803:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:803:9:806:7 | call to min_by | semmle.label | call to min_by | -| array_flow.rb:803:9:806:7 | call to min_by | semmle.label | call to min_by | -| array_flow.rb:803:22:803:22 | x | semmle.label | x | | array_flow.rb:803:22:803:22 | x | semmle.label | x | | array_flow.rb:804:14:804:14 | x | semmle.label | x | -| array_flow.rb:804:14:804:14 | x | semmle.label | x | -| array_flow.rb:807:10:807:10 | b | semmle.label | b | | array_flow.rb:807:10:807:10 | b | semmle.label | b | | array_flow.rb:810:5:810:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:810:5:810:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:810:9:810:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:810:9:810:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:810:9:813:7 | call to min_by [element] | semmle.label | call to min_by [element] | -| array_flow.rb:810:9:813:7 | call to min_by [element] | semmle.label | call to min_by [element] | -| array_flow.rb:810:25:810:25 | x | semmle.label | x | | array_flow.rb:810:25:810:25 | x | semmle.label | x | | array_flow.rb:811:14:811:14 | x | semmle.label | x | -| array_flow.rb:811:14:811:14 | x | semmle.label | x | -| array_flow.rb:814:10:814:10 | c [element] | semmle.label | c [element] | | array_flow.rb:814:10:814:10 | c [element] | semmle.label | c [element] | | array_flow.rb:814:10:814:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:814:10:814:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:818:5:818:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:818:5:818:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:818:16:818:25 | call to source | semmle.label | call to source | -| array_flow.rb:818:16:818:25 | call to source | semmle.label | call to source | -| array_flow.rb:820:5:820:5 | b [element] | semmle.label | b [element] | | array_flow.rb:820:5:820:5 | b [element] | semmle.label | b [element] | | array_flow.rb:820:9:820:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:820:9:820:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:820:9:820:16 | call to minmax [element] | semmle.label | call to minmax [element] | | array_flow.rb:820:9:820:16 | call to minmax [element] | semmle.label | call to minmax [element] | | array_flow.rb:821:10:821:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:821:10:821:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:821:10:821:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:821:10:821:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:822:10:822:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:822:10:822:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:822:10:822:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:822:10:822:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:824:5:824:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:824:5:824:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:824:9:824:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:824:9:824:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:824:9:828:7 | call to minmax [element] | semmle.label | call to minmax [element] | -| array_flow.rb:824:9:828:7 | call to minmax [element] | semmle.label | call to minmax [element] | -| array_flow.rb:824:22:824:22 | x | semmle.label | x | | array_flow.rb:824:22:824:22 | x | semmle.label | x | | array_flow.rb:824:25:824:25 | y | semmle.label | y | -| array_flow.rb:824:25:824:25 | y | semmle.label | y | -| array_flow.rb:825:14:825:14 | x | semmle.label | x | | array_flow.rb:825:14:825:14 | x | semmle.label | x | | array_flow.rb:826:14:826:14 | y | semmle.label | y | -| array_flow.rb:826:14:826:14 | y | semmle.label | y | -| array_flow.rb:829:10:829:10 | c [element] | semmle.label | c [element] | | array_flow.rb:829:10:829:10 | c [element] | semmle.label | c [element] | | array_flow.rb:829:10:829:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:829:10:829:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:830:10:830:10 | c [element] | semmle.label | c [element] | | array_flow.rb:830:10:830:10 | c [element] | semmle.label | c [element] | | array_flow.rb:830:10:830:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:830:10:830:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:834:5:834:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:834:5:834:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:834:16:834:25 | call to source | semmle.label | call to source | -| array_flow.rb:834:16:834:25 | call to source | semmle.label | call to source | -| array_flow.rb:835:5:835:5 | b [element] | semmle.label | b [element] | | array_flow.rb:835:5:835:5 | b [element] | semmle.label | b [element] | | array_flow.rb:835:9:835:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:835:9:835:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:835:9:838:7 | call to minmax_by [element] | semmle.label | call to minmax_by [element] | | array_flow.rb:835:9:838:7 | call to minmax_by [element] | semmle.label | call to minmax_by [element] | | array_flow.rb:835:25:835:25 | x | semmle.label | x | -| array_flow.rb:835:25:835:25 | x | semmle.label | x | -| array_flow.rb:836:14:836:14 | x | semmle.label | x | | array_flow.rb:836:14:836:14 | x | semmle.label | x | | array_flow.rb:839:10:839:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:839:10:839:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:839:10:839:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:839:10:839:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:840:10:840:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:840:10:840:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:840:10:840:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:840:10:840:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:844:5:844:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:844:5:844:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:844:16:844:25 | call to source | semmle.label | call to source | | array_flow.rb:844:16:844:25 | call to source | semmle.label | call to source | | array_flow.rb:845:5:845:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:845:5:845:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:845:17:845:17 | x | semmle.label | x | | array_flow.rb:845:17:845:17 | x | semmle.label | x | | array_flow.rb:846:14:846:14 | x | semmle.label | x | -| array_flow.rb:846:14:846:14 | x | semmle.label | x | -| array_flow.rb:853:5:853:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:853:5:853:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:853:16:853:25 | call to source | semmle.label | call to source | -| array_flow.rb:853:16:853:25 | call to source | semmle.label | call to source | -| array_flow.rb:854:5:854:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:854:5:854:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:854:16:854:16 | x | semmle.label | x | -| array_flow.rb:854:16:854:16 | x | semmle.label | x | | array_flow.rb:855:14:855:14 | x | semmle.label | x | -| array_flow.rb:855:14:855:14 | x | semmle.label | x | -| array_flow.rb:860:5:860:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:860:16:860:25 | call to source | semmle.label | call to source | -| array_flow.rb:861:5:861:5 | b | semmle.label | b | -| array_flow.rb:861:9:861:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:861:9:861:20 | call to pack | semmle.label | call to pack | -| array_flow.rb:862:10:862:10 | b | semmle.label | b | -| array_flow.rb:866:5:866:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:866:5:866:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:866:16:866:25 | call to source | semmle.label | call to source | -| array_flow.rb:866:16:866:25 | call to source | semmle.label | call to source | -| array_flow.rb:867:5:867:5 | b [element, element] | semmle.label | b [element, element] | | array_flow.rb:867:5:867:5 | b [element, element] | semmle.label | b [element, element] | | array_flow.rb:867:9:867:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:867:9:867:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:867:9:870:7 | call to partition [element, element] | semmle.label | call to partition [element, element] | | array_flow.rb:867:9:870:7 | call to partition [element, element] | semmle.label | call to partition [element, element] | | array_flow.rb:867:25:867:25 | x | semmle.label | x | -| array_flow.rb:867:25:867:25 | x | semmle.label | x | -| array_flow.rb:868:14:868:14 | x | semmle.label | x | | array_flow.rb:868:14:868:14 | x | semmle.label | x | | array_flow.rb:871:10:871:10 | b [element, element] | semmle.label | b [element, element] | -| array_flow.rb:871:10:871:10 | b [element, element] | semmle.label | b [element, element] | -| array_flow.rb:871:10:871:13 | ...[...] [element] | semmle.label | ...[...] [element] | | array_flow.rb:871:10:871:13 | ...[...] [element] | semmle.label | ...[...] [element] | | array_flow.rb:871:10:871:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:871:10:871:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:872:10:872:10 | b [element, element] | semmle.label | b [element, element] | | array_flow.rb:872:10:872:10 | b [element, element] | semmle.label | b [element, element] | | array_flow.rb:872:10:872:13 | ...[...] [element] | semmle.label | ...[...] [element] | -| array_flow.rb:872:10:872:13 | ...[...] [element] | semmle.label | ...[...] [element] | -| array_flow.rb:872:10:872:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:872:10:872:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:876:5:876:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:876:5:876:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:876:16:876:25 | call to source | semmle.label | call to source | | array_flow.rb:876:16:876:25 | call to source | semmle.label | call to source | | array_flow.rb:878:5:878:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:878:5:878:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:878:9:878:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:878:9:878:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:878:9:882:7 | call to permutation [element 2] | semmle.label | call to permutation [element 2] | -| array_flow.rb:878:9:882:7 | call to permutation [element 2] | semmle.label | call to permutation [element 2] | -| array_flow.rb:878:27:878:27 | x [element] | semmle.label | x [element] | | array_flow.rb:878:27:878:27 | x [element] | semmle.label | x [element] | | array_flow.rb:879:14:879:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:879:14:879:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:879:14:879:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:879:14:879:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:880:14:880:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:880:14:880:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:880:14:880:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:880:14:880:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:881:14:881:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:881:14:881:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:881:14:881:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:881:14:881:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:884:10:884:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:884:10:884:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:884:10:884:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:884:10:884:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:886:5:886:5 | c [element 2] | semmle.label | c [element 2] | -| array_flow.rb:886:5:886:5 | c [element 2] | semmle.label | c [element 2] | -| array_flow.rb:886:9:886:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:886:9:886:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:886:9:889:7 | call to permutation [element 2] | semmle.label | call to permutation [element 2] | -| array_flow.rb:886:9:889:7 | call to permutation [element 2] | semmle.label | call to permutation [element 2] | -| array_flow.rb:886:30:886:30 | x [element] | semmle.label | x [element] | | array_flow.rb:886:30:886:30 | x [element] | semmle.label | x [element] | | array_flow.rb:887:14:887:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:887:14:887:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:887:14:887:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:887:14:887:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:888:14:888:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:888:14:888:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:888:14:888:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:888:14:888:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:891:10:891:10 | c [element 2] | semmle.label | c [element 2] | -| array_flow.rb:891:10:891:10 | c [element 2] | semmle.label | c [element 2] | -| array_flow.rb:891:10:891:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:891:10:891:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:893:9:893:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:893:9:893:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:893:30:893:30 | x [element] | semmle.label | x [element] | | array_flow.rb:893:30:893:30 | x [element] | semmle.label | x [element] | | array_flow.rb:894:14:894:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:894:14:894:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:894:14:894:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:894:14:894:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:895:14:895:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:895:14:895:14 | x [element] | semmle.label | x [element] | -| array_flow.rb:895:14:895:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:895:14:895:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:898:10:898:10 | c [element 2] | semmle.label | c [element 2] | -| array_flow.rb:898:10:898:10 | c [element 2] | semmle.label | c [element 2] | -| array_flow.rb:898:10:898:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:898:10:898:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:905:5:905:5 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:905:5:905:5 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:905:5:905:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:905:5:905:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:905:13:905:24 | call to source | semmle.label | call to source | -| array_flow.rb:905:13:905:24 | call to source | semmle.label | call to source | -| array_flow.rb:905:30:905:41 | call to source | semmle.label | call to source | | array_flow.rb:905:30:905:41 | call to source | semmle.label | call to source | | array_flow.rb:906:5:906:5 | b | semmle.label | b | -| array_flow.rb:906:5:906:5 | b | semmle.label | b | -| array_flow.rb:906:9:906:9 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:906:9:906:9 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:906:9:906:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:906:9:906:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:906:9:906:13 | call to pop | semmle.label | call to pop | | array_flow.rb:906:9:906:13 | call to pop | semmle.label | call to pop | | array_flow.rb:907:10:907:10 | b | semmle.label | b | -| array_flow.rb:907:10:907:10 | b | semmle.label | b | -| array_flow.rb:909:10:909:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:909:10:909:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:909:10:909:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:909:10:909:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:911:10:911:10 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:911:10:911:10 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:911:10:911:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:911:10:911:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:913:5:913:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:913:5:913:5 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:913:5:913:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:913:5:913:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:913:13:913:24 | call to source | semmle.label | call to source | | array_flow.rb:913:13:913:24 | call to source | semmle.label | call to source | | array_flow.rb:913:30:913:41 | call to source | semmle.label | call to source | -| array_flow.rb:913:30:913:41 | call to source | semmle.label | call to source | -| array_flow.rb:914:5:914:5 | b [element] | semmle.label | b [element] | | array_flow.rb:914:5:914:5 | b [element] | semmle.label | b [element] | | array_flow.rb:914:9:914:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:914:9:914:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:914:9:914:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:914:9:914:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:914:9:914:16 | call to pop [element] | semmle.label | call to pop [element] | -| array_flow.rb:914:9:914:16 | call to pop [element] | semmle.label | call to pop [element] | -| array_flow.rb:915:10:915:10 | b [element] | semmle.label | b [element] | | array_flow.rb:915:10:915:10 | b [element] | semmle.label | b [element] | | array_flow.rb:915:10:915:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:915:10:915:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:916:10:916:10 | b [element] | semmle.label | b [element] | | array_flow.rb:916:10:916:10 | b [element] | semmle.label | b [element] | | array_flow.rb:916:10:916:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:916:10:916:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:918:10:918:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:918:10:918:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:918:10:918:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:918:10:918:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:920:10:920:10 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:920:10:920:10 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:920:10:920:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:920:10:920:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:924:5:924:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:924:5:924:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:924:16:924:27 | call to source | semmle.label | call to source | -| array_flow.rb:924:16:924:27 | call to source | semmle.label | call to source | -| array_flow.rb:925:5:925:5 | [post] a [element 2] | semmle.label | [post] a [element 2] | | array_flow.rb:925:5:925:5 | [post] a [element 2] | semmle.label | [post] a [element 2] | | array_flow.rb:925:5:925:5 | [post] a [element 5] | semmle.label | [post] a [element 5] | -| array_flow.rb:925:5:925:5 | [post] a [element 5] | semmle.label | [post] a [element 5] | -| array_flow.rb:925:5:925:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:925:5:925:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:925:21:925:32 | call to source | semmle.label | call to source | -| array_flow.rb:925:21:925:32 | call to source | semmle.label | call to source | -| array_flow.rb:928:10:928:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:928:10:928:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:928:10:928:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:928:10:928:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:931:10:931:10 | a [element 5] | semmle.label | a [element 5] | | array_flow.rb:931:10:931:10 | a [element 5] | semmle.label | a [element 5] | | array_flow.rb:931:10:931:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:931:10:931:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:935:5:935:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:935:5:935:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:935:16:935:27 | call to source | semmle.label | call to source | -| array_flow.rb:935:16:935:27 | call to source | semmle.label | call to source | -| array_flow.rb:936:5:936:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:936:5:936:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:936:13:936:24 | call to source | semmle.label | call to source | -| array_flow.rb:936:13:936:24 | call to source | semmle.label | call to source | -| array_flow.rb:937:5:937:5 | c [element 0] | semmle.label | c [element 0] | | array_flow.rb:937:5:937:5 | c [element 0] | semmle.label | c [element 0] | | array_flow.rb:937:10:937:21 | call to source | semmle.label | call to source | -| array_flow.rb:937:10:937:21 | call to source | semmle.label | call to source | -| array_flow.rb:938:5:938:5 | d [element, element] | semmle.label | d [element, element] | | array_flow.rb:938:5:938:5 | d [element, element] | semmle.label | d [element, element] | | array_flow.rb:938:9:938:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:938:9:938:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:938:9:938:22 | call to product [element, element] | semmle.label | call to product [element, element] | | array_flow.rb:938:9:938:22 | call to product [element, element] | semmle.label | call to product [element, element] | | array_flow.rb:938:19:938:19 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:938:19:938:19 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:938:22:938:22 | c [element 0] | semmle.label | c [element 0] | | array_flow.rb:938:22:938:22 | c [element 0] | semmle.label | c [element 0] | | array_flow.rb:939:10:939:10 | d [element, element] | semmle.label | d [element, element] | -| array_flow.rb:939:10:939:10 | d [element, element] | semmle.label | d [element, element] | -| array_flow.rb:939:10:939:13 | ...[...] [element] | semmle.label | ...[...] [element] | | array_flow.rb:939:10:939:13 | ...[...] [element] | semmle.label | ...[...] [element] | | array_flow.rb:939:10:939:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:939:10:939:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:940:10:940:10 | d [element, element] | semmle.label | d [element, element] | | array_flow.rb:940:10:940:10 | d [element, element] | semmle.label | d [element, element] | | array_flow.rb:940:10:940:13 | ...[...] [element] | semmle.label | ...[...] [element] | -| array_flow.rb:940:10:940:13 | ...[...] [element] | semmle.label | ...[...] [element] | -| array_flow.rb:940:10:940:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:940:10:940:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:944:5:944:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:944:5:944:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:944:10:944:21 | call to source | semmle.label | call to source | | array_flow.rb:944:10:944:21 | call to source | semmle.label | call to source | | array_flow.rb:945:5:945:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:945:5:945:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:945:5:945:5 | b [element] | semmle.label | b [element] | | array_flow.rb:945:5:945:5 | b [element] | semmle.label | b [element] | | array_flow.rb:945:9:945:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:945:9:945:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:945:9:945:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:945:9:945:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:945:9:945:44 | call to append [element 0] | semmle.label | call to append [element 0] | -| array_flow.rb:945:9:945:44 | call to append [element 0] | semmle.label | call to append [element 0] | -| array_flow.rb:945:9:945:44 | call to append [element] | semmle.label | call to append [element] | | array_flow.rb:945:9:945:44 | call to append [element] | semmle.label | call to append [element] | | array_flow.rb:945:18:945:29 | call to source | semmle.label | call to source | -| array_flow.rb:945:18:945:29 | call to source | semmle.label | call to source | -| array_flow.rb:945:32:945:43 | call to source | semmle.label | call to source | | array_flow.rb:945:32:945:43 | call to source | semmle.label | call to source | | array_flow.rb:946:10:946:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:946:10:946:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:946:10:946:10 | a [element] | semmle.label | a [element] | | array_flow.rb:946:10:946:10 | a [element] | semmle.label | a [element] | | array_flow.rb:946:10:946:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:946:10:946:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:947:10:947:10 | a [element] | semmle.label | a [element] | | array_flow.rb:947:10:947:10 | a [element] | semmle.label | a [element] | | array_flow.rb:947:10:947:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:947:10:947:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:948:10:948:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:948:10:948:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:948:10:948:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:948:10:948:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:948:10:948:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:948:10:948:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:949:10:949:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:949:10:949:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:949:10:949:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:949:10:949:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:955:5:955:5 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:955:5:955:5 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:955:10:955:19 | call to source | semmle.label | call to source | | array_flow.rb:955:10:955:19 | call to source | semmle.label | call to source | | array_flow.rb:956:5:956:5 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | -| array_flow.rb:956:5:956:5 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | -| array_flow.rb:956:16:956:16 | c [element 0] | semmle.label | c [element 0] | | array_flow.rb:956:16:956:16 | c [element 0] | semmle.label | c [element 0] | | array_flow.rb:957:10:957:10 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | -| array_flow.rb:957:10:957:10 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | -| array_flow.rb:957:10:957:22 | call to rassoc [element 0] | semmle.label | call to rassoc [element 0] | | array_flow.rb:957:10:957:22 | call to rassoc [element 0] | semmle.label | call to rassoc [element 0] | | array_flow.rb:957:10:957:25 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:957:10:957:25 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:958:10:958:10 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | | array_flow.rb:958:10:958:10 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | | array_flow.rb:958:10:958:22 | call to rassoc [element 0] | semmle.label | call to rassoc [element 0] | -| array_flow.rb:958:10:958:22 | call to rassoc [element 0] | semmle.label | call to rassoc [element 0] | -| array_flow.rb:958:10:958:25 | ...[...] | semmle.label | ...[...] | | array_flow.rb:958:10:958:25 | ...[...] | semmle.label | ...[...] | | array_flow.rb:962:5:962:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:962:5:962:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:962:5:962:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:962:5:962:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:962:10:962:21 | call to source | semmle.label | call to source | -| array_flow.rb:962:10:962:21 | call to source | semmle.label | call to source | -| array_flow.rb:962:27:962:38 | call to source | semmle.label | call to source | | array_flow.rb:962:27:962:38 | call to source | semmle.label | call to source | | array_flow.rb:963:9:963:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:963:9:963:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:963:9:963:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:963:9:963:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:963:22:963:22 | x | semmle.label | x | -| array_flow.rb:963:22:963:22 | x | semmle.label | x | -| array_flow.rb:963:25:963:25 | y | semmle.label | y | | array_flow.rb:963:25:963:25 | y | semmle.label | y | | array_flow.rb:964:14:964:14 | x | semmle.label | x | -| array_flow.rb:964:14:964:14 | x | semmle.label | x | -| array_flow.rb:965:14:965:14 | y | semmle.label | y | | array_flow.rb:965:14:965:14 | y | semmle.label | y | | array_flow.rb:968:9:968:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:968:9:968:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:968:9:968:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:968:9:968:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:968:28:968:28 | y | semmle.label | y | -| array_flow.rb:968:28:968:28 | y | semmle.label | y | -| array_flow.rb:970:14:970:14 | y | semmle.label | y | | array_flow.rb:970:14:970:14 | y | semmle.label | y | | array_flow.rb:976:5:976:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:976:5:976:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:976:16:976:25 | call to source | semmle.label | call to source | | array_flow.rb:976:16:976:25 | call to source | semmle.label | call to source | | array_flow.rb:977:5:977:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:977:5:977:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:977:9:977:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:977:9:977:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:977:9:980:7 | call to reject [element] | semmle.label | call to reject [element] | -| array_flow.rb:977:9:980:7 | call to reject [element] | semmle.label | call to reject [element] | -| array_flow.rb:977:22:977:22 | x | semmle.label | x | | array_flow.rb:977:22:977:22 | x | semmle.label | x | | array_flow.rb:978:14:978:14 | x | semmle.label | x | -| array_flow.rb:978:14:978:14 | x | semmle.label | x | -| array_flow.rb:981:10:981:10 | b [element] | semmle.label | b [element] | | array_flow.rb:981:10:981:10 | b [element] | semmle.label | b [element] | | array_flow.rb:981:10:981:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:981:10:981:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:985:5:985:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:985:5:985:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:985:16:985:25 | call to source | semmle.label | call to source | -| array_flow.rb:985:16:985:25 | call to source | semmle.label | call to source | -| array_flow.rb:986:5:986:5 | b [element] | semmle.label | b [element] | | array_flow.rb:986:5:986:5 | b [element] | semmle.label | b [element] | | array_flow.rb:986:9:986:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:986:9:986:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:986:9:986:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:986:9:986:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:986:9:989:7 | call to reject! [element] | semmle.label | call to reject! [element] | -| array_flow.rb:986:9:989:7 | call to reject! [element] | semmle.label | call to reject! [element] | -| array_flow.rb:986:23:986:23 | x | semmle.label | x | | array_flow.rb:986:23:986:23 | x | semmle.label | x | | array_flow.rb:987:14:987:14 | x | semmle.label | x | -| array_flow.rb:987:14:987:14 | x | semmle.label | x | -| array_flow.rb:990:10:990:10 | a [element] | semmle.label | a [element] | | array_flow.rb:990:10:990:10 | a [element] | semmle.label | a [element] | | array_flow.rb:990:10:990:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:990:10:990:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:991:10:991:10 | b [element] | semmle.label | b [element] | | array_flow.rb:991:10:991:10 | b [element] | semmle.label | b [element] | | array_flow.rb:991:10:991:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:991:10:991:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:995:5:995:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:995:5:995:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:995:16:995:25 | call to source | semmle.label | call to source | -| array_flow.rb:995:16:995:25 | call to source | semmle.label | call to source | -| array_flow.rb:996:5:996:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:996:5:996:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:996:9:996:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:996:9:996:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:996:9:999:7 | call to repeated_combination [element 2] | semmle.label | call to repeated_combination [element 2] | | array_flow.rb:996:9:999:7 | call to repeated_combination [element 2] | semmle.label | call to repeated_combination [element 2] | | array_flow.rb:996:39:996:39 | x [element] | semmle.label | x [element] | -| array_flow.rb:996:39:996:39 | x [element] | semmle.label | x [element] | -| array_flow.rb:997:14:997:14 | x [element] | semmle.label | x [element] | | array_flow.rb:997:14:997:14 | x [element] | semmle.label | x [element] | | array_flow.rb:997:14:997:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:997:14:997:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:998:14:998:14 | x [element] | semmle.label | x [element] | | array_flow.rb:998:14:998:14 | x [element] | semmle.label | x [element] | | array_flow.rb:998:14:998:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:998:14:998:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1001:10:1001:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1001:10:1001:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1001:10:1001:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1001:10:1001:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1005:5:1005:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1005:5:1005:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1005:16:1005:25 | call to source | semmle.label | call to source | -| array_flow.rb:1005:16:1005:25 | call to source | semmle.label | call to source | -| array_flow.rb:1006:5:1006:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1006:5:1006:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1006:9:1006:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1006:9:1006:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1006:9:1009:7 | call to repeated_permutation [element 2] | semmle.label | call to repeated_permutation [element 2] | | array_flow.rb:1006:9:1009:7 | call to repeated_permutation [element 2] | semmle.label | call to repeated_permutation [element 2] | | array_flow.rb:1006:39:1006:39 | x [element] | semmle.label | x [element] | -| array_flow.rb:1006:39:1006:39 | x [element] | semmle.label | x [element] | -| array_flow.rb:1007:14:1007:14 | x [element] | semmle.label | x [element] | | array_flow.rb:1007:14:1007:14 | x [element] | semmle.label | x [element] | | array_flow.rb:1007:14:1007:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1007:14:1007:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1008:14:1008:14 | x [element] | semmle.label | x [element] | | array_flow.rb:1008:14:1008:14 | x [element] | semmle.label | x [element] | | array_flow.rb:1008:14:1008:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1008:14:1008:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1011:10:1011:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1011:10:1011:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1011:10:1011:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1011:10:1011:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1017:5:1017:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1017:5:1017:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1017:9:1017:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | -| array_flow.rb:1017:9:1017:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | -| array_flow.rb:1017:9:1017:33 | call to replace [element 0] | semmle.label | call to replace [element 0] | | array_flow.rb:1017:9:1017:33 | call to replace [element 0] | semmle.label | call to replace [element 0] | | array_flow.rb:1017:20:1017:31 | call to source | semmle.label | call to source | -| array_flow.rb:1017:20:1017:31 | call to source | semmle.label | call to source | -| array_flow.rb:1018:10:1018:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1018:10:1018:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1018:10:1018:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1018:10:1018:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1019:10:1019:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1019:10:1019:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1019:10:1019:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1019:10:1019:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1023:5:1023:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1023:5:1023:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1023:5:1023:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1023:5:1023:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1023:16:1023:28 | call to source | semmle.label | call to source | | array_flow.rb:1023:16:1023:28 | call to source | semmle.label | call to source | | array_flow.rb:1023:31:1023:43 | call to source | semmle.label | call to source | -| array_flow.rb:1023:31:1023:43 | call to source | semmle.label | call to source | -| array_flow.rb:1024:5:1024:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1024:5:1024:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1024:9:1024:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1024:9:1024:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1024:9:1024:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1024:9:1024:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1024:9:1024:17 | call to reverse [element] | semmle.label | call to reverse [element] | -| array_flow.rb:1024:9:1024:17 | call to reverse [element] | semmle.label | call to reverse [element] | -| array_flow.rb:1025:10:1025:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1025:10:1025:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1025:10:1025:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1025:10:1025:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1026:10:1026:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1026:10:1026:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1026:10:1026:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1026:10:1026:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1027:10:1027:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1027:10:1027:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1027:10:1027:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1027:10:1027:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1029:10:1029:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1029:10:1029:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1029:10:1029:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1029:10:1029:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1030:10:1030:10 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1030:10:1030:10 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1030:10:1030:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1030:10:1030:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1034:5:1034:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1034:5:1034:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1034:5:1034:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1034:5:1034:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1034:16:1034:28 | call to source | semmle.label | call to source | | array_flow.rb:1034:16:1034:28 | call to source | semmle.label | call to source | | array_flow.rb:1034:31:1034:43 | call to source | semmle.label | call to source | -| array_flow.rb:1034:31:1034:43 | call to source | semmle.label | call to source | -| array_flow.rb:1035:5:1035:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1035:5:1035:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1035:9:1035:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1035:9:1035:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1035:9:1035:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1035:9:1035:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1035:9:1035:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1035:9:1035:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1035:9:1035:18 | call to reverse! [element] | semmle.label | call to reverse! [element] | | array_flow.rb:1035:9:1035:18 | call to reverse! [element] | semmle.label | call to reverse! [element] | | array_flow.rb:1036:10:1036:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1036:10:1036:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1036:10:1036:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1036:10:1036:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1037:10:1037:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1037:10:1037:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1037:10:1037:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1037:10:1037:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1038:10:1038:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1038:10:1038:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1038:10:1038:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1038:10:1038:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1039:10:1039:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1039:10:1039:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1039:10:1039:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1039:10:1039:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1040:10:1040:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1040:10:1040:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1040:10:1040:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1040:10:1040:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1040:10:1040:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1040:10:1040:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1041:10:1041:10 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1041:10:1041:10 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1041:10:1041:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1041:10:1041:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1041:10:1041:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1041:10:1041:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1045:5:1045:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1045:5:1045:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1045:16:1045:26 | call to source | semmle.label | call to source | | array_flow.rb:1045:16:1045:26 | call to source | semmle.label | call to source | | array_flow.rb:1046:5:1046:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1046:5:1046:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1046:9:1046:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1046:9:1046:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1046:9:1048:7 | call to reverse_each [element 2] | semmle.label | call to reverse_each [element 2] | -| array_flow.rb:1046:9:1048:7 | call to reverse_each [element 2] | semmle.label | call to reverse_each [element 2] | -| array_flow.rb:1046:28:1046:28 | x | semmle.label | x | | array_flow.rb:1046:28:1046:28 | x | semmle.label | x | | array_flow.rb:1047:14:1047:14 | x | semmle.label | x | -| array_flow.rb:1047:14:1047:14 | x | semmle.label | x | -| array_flow.rb:1049:10:1049:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1049:10:1049:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1049:10:1049:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1049:10:1049:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1053:5:1053:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1053:5:1053:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1053:16:1053:26 | call to source | semmle.label | call to source | -| array_flow.rb:1053:16:1053:26 | call to source | semmle.label | call to source | -| array_flow.rb:1054:5:1054:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1054:5:1054:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1054:18:1054:18 | x | semmle.label | x | -| array_flow.rb:1054:18:1054:18 | x | semmle.label | x | -| array_flow.rb:1055:14:1055:14 | x | semmle.label | x | | array_flow.rb:1055:14:1055:14 | x | semmle.label | x | | array_flow.rb:1063:5:1063:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1063:5:1063:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1063:5:1063:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1063:5:1063:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1063:5:1063:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1063:5:1063:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1063:10:1063:22 | call to source | semmle.label | call to source | | array_flow.rb:1063:10:1063:22 | call to source | semmle.label | call to source | | array_flow.rb:1063:28:1063:40 | call to source | semmle.label | call to source | -| array_flow.rb:1063:28:1063:40 | call to source | semmle.label | call to source | -| array_flow.rb:1063:43:1063:55 | call to source | semmle.label | call to source | | array_flow.rb:1063:43:1063:55 | call to source | semmle.label | call to source | | array_flow.rb:1065:5:1065:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1065:5:1065:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1065:5:1065:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1065:5:1065:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1065:5:1065:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1065:5:1065:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1065:9:1065:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1065:9:1065:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1065:9:1065:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1065:9:1065:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1065:9:1065:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1065:9:1065:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1065:9:1065:16 | call to rotate [element 1] | semmle.label | call to rotate [element 1] | -| array_flow.rb:1065:9:1065:16 | call to rotate [element 1] | semmle.label | call to rotate [element 1] | -| array_flow.rb:1065:9:1065:16 | call to rotate [element 2] | semmle.label | call to rotate [element 2] | | array_flow.rb:1065:9:1065:16 | call to rotate [element 2] | semmle.label | call to rotate [element 2] | | array_flow.rb:1065:9:1065:16 | call to rotate [element] | semmle.label | call to rotate [element] | -| array_flow.rb:1065:9:1065:16 | call to rotate [element] | semmle.label | call to rotate [element] | -| array_flow.rb:1066:10:1066:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1066:10:1066:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1066:10:1066:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1066:10:1066:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1067:10:1067:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1067:10:1067:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1067:10:1067:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1067:10:1067:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1067:10:1067:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1067:10:1067:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1068:10:1068:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1068:10:1068:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1068:10:1068:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1068:10:1068:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1068:10:1068:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1068:10:1068:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1069:10:1069:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1069:10:1069:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1069:10:1069:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1069:10:1069:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1071:5:1071:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1071:5:1071:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1071:5:1071:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1071:5:1071:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1071:5:1071:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1071:5:1071:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1071:9:1071:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1071:9:1071:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1071:9:1071:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1071:9:1071:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1071:9:1071:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1071:9:1071:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1071:9:1071:19 | call to rotate [element 0] | semmle.label | call to rotate [element 0] | | array_flow.rb:1071:9:1071:19 | call to rotate [element 0] | semmle.label | call to rotate [element 0] | | array_flow.rb:1071:9:1071:19 | call to rotate [element 1] | semmle.label | call to rotate [element 1] | -| array_flow.rb:1071:9:1071:19 | call to rotate [element 1] | semmle.label | call to rotate [element 1] | -| array_flow.rb:1071:9:1071:19 | call to rotate [element] | semmle.label | call to rotate [element] | | array_flow.rb:1071:9:1071:19 | call to rotate [element] | semmle.label | call to rotate [element] | | array_flow.rb:1072:10:1072:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1072:10:1072:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1072:10:1072:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1072:10:1072:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1072:10:1072:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1072:10:1072:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1073:10:1073:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1073:10:1073:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1073:10:1073:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1073:10:1073:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1073:10:1073:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1073:10:1073:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1074:10:1074:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1074:10:1074:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1074:10:1074:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1074:10:1074:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1075:10:1075:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1075:10:1075:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1075:10:1075:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1075:10:1075:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1077:5:1077:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1077:5:1077:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1077:5:1077:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1077:5:1077:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1077:5:1077:5 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1077:5:1077:5 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1077:9:1077:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1077:9:1077:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1077:9:1077:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1077:9:1077:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1077:9:1077:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1077:9:1077:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1077:9:1077:19 | call to rotate [element 0] | semmle.label | call to rotate [element 0] | -| array_flow.rb:1077:9:1077:19 | call to rotate [element 0] | semmle.label | call to rotate [element 0] | -| array_flow.rb:1077:9:1077:19 | call to rotate [element 2] | semmle.label | call to rotate [element 2] | | array_flow.rb:1077:9:1077:19 | call to rotate [element 2] | semmle.label | call to rotate [element 2] | | array_flow.rb:1077:9:1077:19 | call to rotate [element 3] | semmle.label | call to rotate [element 3] | -| array_flow.rb:1077:9:1077:19 | call to rotate [element 3] | semmle.label | call to rotate [element 3] | -| array_flow.rb:1078:10:1078:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1078:10:1078:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1078:10:1078:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1078:10:1078:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1080:10:1080:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1080:10:1080:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1080:10:1080:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1080:10:1080:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1081:10:1081:10 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1081:10:1081:10 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1081:10:1081:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1081:10:1081:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1083:5:1083:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1083:5:1083:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1083:9:1083:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1083:9:1083:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1083:9:1083:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1083:9:1083:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1083:9:1083:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1083:9:1083:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1083:9:1083:19 | call to rotate [element] | semmle.label | call to rotate [element] | | array_flow.rb:1083:9:1083:19 | call to rotate [element] | semmle.label | call to rotate [element] | | array_flow.rb:1084:10:1084:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1084:10:1084:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1084:10:1084:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1084:10:1084:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1085:10:1085:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1085:10:1085:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1085:10:1085:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1085:10:1085:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1086:10:1086:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1086:10:1086:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1086:10:1086:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1086:10:1086:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1087:10:1087:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1087:10:1087:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1087:10:1087:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1087:10:1087:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1095:5:1095:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1095:5:1095:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1095:5:1095:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1095:5:1095:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1095:5:1095:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1095:5:1095:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1095:10:1095:22 | call to source | semmle.label | call to source | | array_flow.rb:1095:10:1095:22 | call to source | semmle.label | call to source | | array_flow.rb:1095:28:1095:40 | call to source | semmle.label | call to source | -| array_flow.rb:1095:28:1095:40 | call to source | semmle.label | call to source | -| array_flow.rb:1095:43:1095:55 | call to source | semmle.label | call to source | | array_flow.rb:1095:43:1095:55 | call to source | semmle.label | call to source | | array_flow.rb:1096:5:1096:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1096:5:1096:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1096:5:1096:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1096:5:1096:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1096:5:1096:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1096:5:1096:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1096:9:1096:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | | array_flow.rb:1096:9:1096:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | | array_flow.rb:1096:9:1096:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1096:9:1096:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1096:9:1096:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1096:9:1096:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1096:9:1096:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1096:9:1096:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1096:9:1096:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1096:9:1096:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1096:9:1096:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1096:9:1096:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1096:9:1096:17 | call to rotate! [element 1] | semmle.label | call to rotate! [element 1] | | array_flow.rb:1096:9:1096:17 | call to rotate! [element 1] | semmle.label | call to rotate! [element 1] | | array_flow.rb:1096:9:1096:17 | call to rotate! [element 2] | semmle.label | call to rotate! [element 2] | -| array_flow.rb:1096:9:1096:17 | call to rotate! [element 2] | semmle.label | call to rotate! [element 2] | -| array_flow.rb:1096:9:1096:17 | call to rotate! [element] | semmle.label | call to rotate! [element] | | array_flow.rb:1096:9:1096:17 | call to rotate! [element] | semmle.label | call to rotate! [element] | | array_flow.rb:1097:10:1097:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1097:10:1097:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1097:10:1097:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1097:10:1097:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1098:10:1098:10 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1098:10:1098:10 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1098:10:1098:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1098:10:1098:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1098:10:1098:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1098:10:1098:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1099:10:1099:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1099:10:1099:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1099:10:1099:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1099:10:1099:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1099:10:1099:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1099:10:1099:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1100:10:1100:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1100:10:1100:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1100:10:1100:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1100:10:1100:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1101:10:1101:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1101:10:1101:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1101:10:1101:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1101:10:1101:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1102:10:1102:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1102:10:1102:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1102:10:1102:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1102:10:1102:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1102:10:1102:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1102:10:1102:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1103:10:1103:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1103:10:1103:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1103:10:1103:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1103:10:1103:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1103:10:1103:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1103:10:1103:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1104:10:1104:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1104:10:1104:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1104:10:1104:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1104:10:1104:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1106:5:1106:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1106:5:1106:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1106:5:1106:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1106:5:1106:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1106:5:1106:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1106:5:1106:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1106:10:1106:22 | call to source | semmle.label | call to source | | array_flow.rb:1106:10:1106:22 | call to source | semmle.label | call to source | | array_flow.rb:1106:28:1106:40 | call to source | semmle.label | call to source | -| array_flow.rb:1106:28:1106:40 | call to source | semmle.label | call to source | -| array_flow.rb:1106:43:1106:55 | call to source | semmle.label | call to source | | array_flow.rb:1106:43:1106:55 | call to source | semmle.label | call to source | | array_flow.rb:1107:5:1107:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1107:5:1107:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1107:5:1107:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1107:5:1107:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1107:5:1107:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1107:5:1107:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1107:9:1107:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | | array_flow.rb:1107:9:1107:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | | array_flow.rb:1107:9:1107:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | -| array_flow.rb:1107:9:1107:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | -| array_flow.rb:1107:9:1107:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1107:9:1107:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1107:9:1107:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1107:9:1107:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1107:9:1107:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1107:9:1107:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1107:9:1107:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1107:9:1107:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1107:9:1107:20 | call to rotate! [element 0] | semmle.label | call to rotate! [element 0] | | array_flow.rb:1107:9:1107:20 | call to rotate! [element 0] | semmle.label | call to rotate! [element 0] | | array_flow.rb:1107:9:1107:20 | call to rotate! [element 1] | semmle.label | call to rotate! [element 1] | -| array_flow.rb:1107:9:1107:20 | call to rotate! [element 1] | semmle.label | call to rotate! [element 1] | -| array_flow.rb:1107:9:1107:20 | call to rotate! [element] | semmle.label | call to rotate! [element] | | array_flow.rb:1107:9:1107:20 | call to rotate! [element] | semmle.label | call to rotate! [element] | | array_flow.rb:1108:10:1108:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1108:10:1108:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1108:10:1108:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1108:10:1108:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1108:10:1108:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1108:10:1108:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1109:10:1109:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:1109:10:1109:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:1109:10:1109:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1109:10:1109:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1109:10:1109:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1109:10:1109:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1110:10:1110:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1110:10:1110:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1110:10:1110:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1110:10:1110:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1111:10:1111:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1111:10:1111:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1111:10:1111:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1111:10:1111:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1112:10:1112:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1112:10:1112:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1112:10:1112:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1112:10:1112:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1112:10:1112:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1112:10:1112:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1113:10:1113:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1113:10:1113:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1113:10:1113:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1113:10:1113:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1113:10:1113:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1113:10:1113:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1114:10:1114:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1114:10:1114:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1114:10:1114:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1114:10:1114:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1115:10:1115:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1115:10:1115:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1115:10:1115:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1115:10:1115:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1117:5:1117:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1117:5:1117:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1117:5:1117:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1117:5:1117:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1117:5:1117:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1117:5:1117:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1117:10:1117:22 | call to source | semmle.label | call to source | | array_flow.rb:1117:10:1117:22 | call to source | semmle.label | call to source | | array_flow.rb:1117:28:1117:40 | call to source | semmle.label | call to source | -| array_flow.rb:1117:28:1117:40 | call to source | semmle.label | call to source | -| array_flow.rb:1117:43:1117:55 | call to source | semmle.label | call to source | | array_flow.rb:1117:43:1117:55 | call to source | semmle.label | call to source | | array_flow.rb:1118:5:1118:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1118:5:1118:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1118:5:1118:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1118:5:1118:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1118:5:1118:5 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1118:5:1118:5 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1118:9:1118:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | | array_flow.rb:1118:9:1118:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | | array_flow.rb:1118:9:1118:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1118:9:1118:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1118:9:1118:9 | [post] a [element 3] | semmle.label | [post] a [element 3] | | array_flow.rb:1118:9:1118:9 | [post] a [element 3] | semmle.label | [post] a [element 3] | | array_flow.rb:1118:9:1118:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1118:9:1118:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1118:9:1118:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1118:9:1118:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1118:9:1118:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1118:9:1118:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1118:9:1118:20 | call to rotate! [element 0] | semmle.label | call to rotate! [element 0] | | array_flow.rb:1118:9:1118:20 | call to rotate! [element 0] | semmle.label | call to rotate! [element 0] | | array_flow.rb:1118:9:1118:20 | call to rotate! [element 2] | semmle.label | call to rotate! [element 2] | -| array_flow.rb:1118:9:1118:20 | call to rotate! [element 2] | semmle.label | call to rotate! [element 2] | -| array_flow.rb:1118:9:1118:20 | call to rotate! [element 3] | semmle.label | call to rotate! [element 3] | | array_flow.rb:1118:9:1118:20 | call to rotate! [element 3] | semmle.label | call to rotate! [element 3] | | array_flow.rb:1119:10:1119:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1119:10:1119:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1119:10:1119:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1119:10:1119:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1121:10:1121:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1121:10:1121:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1121:10:1121:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1121:10:1121:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1122:10:1122:10 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1122:10:1122:10 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1122:10:1122:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1122:10:1122:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1123:10:1123:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1123:10:1123:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1123:10:1123:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1123:10:1123:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1125:10:1125:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1125:10:1125:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1125:10:1125:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1125:10:1125:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1126:10:1126:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1126:10:1126:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1126:10:1126:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1126:10:1126:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1128:5:1128:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1128:5:1128:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1128:5:1128:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1128:5:1128:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1128:5:1128:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1128:5:1128:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1128:10:1128:22 | call to source | semmle.label | call to source | | array_flow.rb:1128:10:1128:22 | call to source | semmle.label | call to source | | array_flow.rb:1128:28:1128:40 | call to source | semmle.label | call to source | -| array_flow.rb:1128:28:1128:40 | call to source | semmle.label | call to source | -| array_flow.rb:1128:43:1128:55 | call to source | semmle.label | call to source | | array_flow.rb:1128:43:1128:55 | call to source | semmle.label | call to source | | array_flow.rb:1129:5:1129:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1129:5:1129:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1129:9:1129:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1129:9:1129:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1129:9:1129:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1129:9:1129:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1129:9:1129:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1129:9:1129:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1129:9:1129:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1129:9:1129:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1129:9:1129:20 | call to rotate! [element] | semmle.label | call to rotate! [element] | | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | semmle.label | call to rotate! [element] | | array_flow.rb:1130:10:1130:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1130:10:1130:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1130:10:1130:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1130:10:1130:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1131:10:1131:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1131:10:1131:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1131:10:1131:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1131:10:1131:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1132:10:1132:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1132:10:1132:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1132:10:1132:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1132:10:1132:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1133:10:1133:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1133:10:1133:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1133:10:1133:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1133:10:1133:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1134:10:1134:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1134:10:1134:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1134:10:1134:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1134:10:1134:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1135:10:1135:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1135:10:1135:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1135:10:1135:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1135:10:1135:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1136:10:1136:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1136:10:1136:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1136:10:1136:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1136:10:1136:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1137:10:1137:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1137:10:1137:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1137:10:1137:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1137:10:1137:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1141:5:1141:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1141:5:1141:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1141:19:1141:29 | call to source | semmle.label | call to source | | array_flow.rb:1141:19:1141:29 | call to source | semmle.label | call to source | | array_flow.rb:1142:5:1142:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1142:5:1142:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1142:9:1142:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1142:9:1142:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1142:9:1144:7 | call to select [element] | semmle.label | call to select [element] | -| array_flow.rb:1142:9:1144:7 | call to select [element] | semmle.label | call to select [element] | -| array_flow.rb:1142:22:1142:22 | x | semmle.label | x | | array_flow.rb:1142:22:1142:22 | x | semmle.label | x | | array_flow.rb:1143:14:1143:14 | x | semmle.label | x | -| array_flow.rb:1143:14:1143:14 | x | semmle.label | x | -| array_flow.rb:1145:10:1145:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1145:10:1145:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1145:10:1145:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1145:10:1145:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1149:5:1149:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1149:5:1149:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1149:16:1149:26 | call to source | semmle.label | call to source | -| array_flow.rb:1149:16:1149:26 | call to source | semmle.label | call to source | -| array_flow.rb:1150:5:1150:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1150:5:1150:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1150:9:1150:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1150:9:1150:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1150:9:1150:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1150:9:1150:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1150:9:1153:7 | call to select! [element] | semmle.label | call to select! [element] | -| array_flow.rb:1150:9:1153:7 | call to select! [element] | semmle.label | call to select! [element] | -| array_flow.rb:1150:23:1150:23 | x | semmle.label | x | | array_flow.rb:1150:23:1150:23 | x | semmle.label | x | | array_flow.rb:1151:14:1151:14 | x | semmle.label | x | -| array_flow.rb:1151:14:1151:14 | x | semmle.label | x | -| array_flow.rb:1154:10:1154:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1154:10:1154:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1154:10:1154:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1154:10:1154:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1155:10:1155:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1155:10:1155:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1155:10:1155:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1155:10:1155:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1159:5:1159:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1159:5:1159:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1159:5:1159:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1159:5:1159:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1159:10:1159:22 | call to source | semmle.label | call to source | | array_flow.rb:1159:10:1159:22 | call to source | semmle.label | call to source | | array_flow.rb:1159:28:1159:40 | call to source | semmle.label | call to source | -| array_flow.rb:1159:28:1159:40 | call to source | semmle.label | call to source | -| array_flow.rb:1160:5:1160:5 | b | semmle.label | b | | array_flow.rb:1160:5:1160:5 | b | semmle.label | b | | array_flow.rb:1160:9:1160:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | -| array_flow.rb:1160:9:1160:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | -| array_flow.rb:1160:9:1160:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1160:9:1160:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1160:9:1160:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1160:9:1160:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1160:9:1160:15 | call to shift | semmle.label | call to shift | | array_flow.rb:1160:9:1160:15 | call to shift | semmle.label | call to shift | | array_flow.rb:1161:10:1161:10 | b | semmle.label | b | -| array_flow.rb:1161:10:1161:10 | b | semmle.label | b | -| array_flow.rb:1163:10:1163:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:1163:10:1163:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:1163:10:1163:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1163:10:1163:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1166:5:1166:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1166:5:1166:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1166:5:1166:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1166:5:1166:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1166:10:1166:22 | call to source | semmle.label | call to source | | array_flow.rb:1166:10:1166:22 | call to source | semmle.label | call to source | | array_flow.rb:1166:28:1166:40 | call to source | semmle.label | call to source | -| array_flow.rb:1166:28:1166:40 | call to source | semmle.label | call to source | -| array_flow.rb:1167:5:1167:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1167:5:1167:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1167:9:1167:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | -| array_flow.rb:1167:9:1167:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | -| array_flow.rb:1167:9:1167:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1167:9:1167:9 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1167:9:1167:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1167:9:1167:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1167:9:1167:18 | call to shift [element 0] | semmle.label | call to shift [element 0] | | array_flow.rb:1167:9:1167:18 | call to shift [element 0] | semmle.label | call to shift [element 0] | | array_flow.rb:1168:10:1168:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1168:10:1168:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1168:10:1168:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1168:10:1168:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1170:10:1170:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1170:10:1170:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1170:10:1170:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1170:10:1170:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1174:5:1174:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1174:5:1174:5 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1174:5:1174:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1174:5:1174:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1174:10:1174:22 | call to source | semmle.label | call to source | -| array_flow.rb:1174:10:1174:22 | call to source | semmle.label | call to source | -| array_flow.rb:1174:28:1174:40 | call to source | semmle.label | call to source | | array_flow.rb:1174:28:1174:40 | call to source | semmle.label | call to source | | array_flow.rb:1175:5:1175:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1175:5:1175:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1175:9:1175:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1175:9:1175:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1175:9:1175:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1175:9:1175:9 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1175:9:1175:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1175:9:1175:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1175:9:1175:18 | call to shift [element] | semmle.label | call to shift [element] | -| array_flow.rb:1175:9:1175:18 | call to shift [element] | semmle.label | call to shift [element] | -| array_flow.rb:1176:10:1176:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1176:10:1176:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1176:10:1176:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1176:10:1176:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1177:10:1177:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1177:10:1177:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1177:10:1177:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1177:10:1177:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1178:10:1178:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1178:10:1178:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1178:10:1178:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1178:10:1178:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1178:10:1178:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1178:10:1178:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1179:10:1179:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1179:10:1179:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1179:10:1179:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1179:10:1179:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1180:10:1180:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1180:10:1180:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1180:10:1180:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1180:10:1180:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1180:10:1180:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1180:10:1180:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1184:5:1184:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1184:5:1184:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1184:16:1184:26 | call to source | semmle.label | call to source | -| array_flow.rb:1184:16:1184:26 | call to source | semmle.label | call to source | -| array_flow.rb:1185:5:1185:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1185:5:1185:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1185:9:1185:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1185:9:1185:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1185:9:1185:17 | call to shuffle [element] | semmle.label | call to shuffle [element] | | array_flow.rb:1185:9:1185:17 | call to shuffle [element] | semmle.label | call to shuffle [element] | | array_flow.rb:1188:10:1188:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1188:10:1188:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1188:10:1188:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1188:10:1188:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1189:10:1189:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1189:10:1189:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1189:10:1189:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1189:10:1189:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1190:10:1190:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1190:10:1190:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1190:10:1190:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1190:10:1190:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1191:10:1191:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1191:10:1191:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1191:10:1191:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1191:10:1191:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1195:5:1195:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1195:5:1195:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1195:16:1195:26 | call to source | semmle.label | call to source | | array_flow.rb:1195:16:1195:26 | call to source | semmle.label | call to source | | array_flow.rb:1196:5:1196:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1196:5:1196:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1196:9:1196:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1196:9:1196:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1196:9:1196:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1196:9:1196:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1196:9:1196:18 | call to shuffle! [element] | semmle.label | call to shuffle! [element] | | array_flow.rb:1196:9:1196:18 | call to shuffle! [element] | semmle.label | call to shuffle! [element] | | array_flow.rb:1197:10:1197:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1197:10:1197:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1197:10:1197:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1197:10:1197:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1198:10:1198:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1198:10:1198:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1198:10:1198:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1198:10:1198:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1199:10:1199:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1199:10:1199:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1199:10:1199:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1199:10:1199:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1199:10:1199:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1199:10:1199:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1200:10:1200:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1200:10:1200:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1200:10:1200:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1200:10:1200:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1201:10:1201:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1201:10:1201:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1201:10:1201:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1201:10:1201:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1202:10:1202:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1202:10:1202:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1202:10:1202:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1202:10:1202:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1206:16:1206:28 | call to source | semmle.label | call to source | | array_flow.rb:1206:16:1206:28 | call to source | semmle.label | call to source | | array_flow.rb:1206:34:1206:46 | call to source | semmle.label | call to source | -| array_flow.rb:1206:34:1206:46 | call to source | semmle.label | call to source | -| array_flow.rb:1208:5:1208:5 | b | semmle.label | b | | array_flow.rb:1208:5:1208:5 | b | semmle.label | b | | array_flow.rb:1208:9:1208:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1208:9:1208:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1208:9:1208:17 | call to slice | semmle.label | call to slice | | array_flow.rb:1208:9:1208:17 | call to slice | semmle.label | call to slice | | array_flow.rb:1209:10:1209:10 | b | semmle.label | b | -| array_flow.rb:1209:10:1209:10 | b | semmle.label | b | -| array_flow.rb:1211:5:1211:5 | b | semmle.label | b | | array_flow.rb:1211:5:1211:5 | b | semmle.label | b | | array_flow.rb:1211:9:1211:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1211:9:1211:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1211:9:1211:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1211:9:1211:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1211:9:1211:19 | call to slice | semmle.label | call to slice | -| array_flow.rb:1211:9:1211:19 | call to slice | semmle.label | call to slice | -| array_flow.rb:1212:10:1212:10 | b | semmle.label | b | | array_flow.rb:1212:10:1212:10 | b | semmle.label | b | | array_flow.rb:1214:5:1214:5 | b | semmle.label | b | -| array_flow.rb:1214:5:1214:5 | b | semmle.label | b | -| array_flow.rb:1214:5:1214:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1214:5:1214:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1214:9:1214:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1214:9:1214:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1214:9:1214:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1214:9:1214:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1214:9:1214:17 | call to slice | semmle.label | call to slice | -| array_flow.rb:1214:9:1214:17 | call to slice | semmle.label | call to slice | -| array_flow.rb:1214:9:1214:17 | call to slice [element] | semmle.label | call to slice [element] | | array_flow.rb:1214:9:1214:17 | call to slice [element] | semmle.label | call to slice [element] | | array_flow.rb:1216:10:1216:10 | b | semmle.label | b | -| array_flow.rb:1216:10:1216:10 | b | semmle.label | b | -| array_flow.rb:1218:10:1218:10 | b | semmle.label | b | -| array_flow.rb:1218:10:1218:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1218:10:1218:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1218:10:1218:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1218:10:1218:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1220:5:1220:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1220:5:1220:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1220:5:1220:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1220:5:1220:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1220:9:1220:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1220:9:1220:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1220:9:1220:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1220:9:1220:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1220:9:1220:21 | call to slice [element 0] | semmle.label | call to slice [element 0] | | array_flow.rb:1220:9:1220:21 | call to slice [element 0] | semmle.label | call to slice [element 0] | | array_flow.rb:1220:9:1220:21 | call to slice [element 2] | semmle.label | call to slice [element 2] | -| array_flow.rb:1220:9:1220:21 | call to slice [element 2] | semmle.label | call to slice [element 2] | -| array_flow.rb:1221:10:1221:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1221:10:1221:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1221:10:1221:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1221:10:1221:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1223:10:1223:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1223:10:1223:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1223:10:1223:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1223:10:1223:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1225:5:1225:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1225:5:1225:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1225:9:1225:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1225:9:1225:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1225:9:1225:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1225:9:1225:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1225:9:1225:21 | call to slice [element] | semmle.label | call to slice [element] | -| array_flow.rb:1225:9:1225:21 | call to slice [element] | semmle.label | call to slice [element] | -| array_flow.rb:1226:10:1226:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1226:10:1226:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1226:10:1226:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1226:10:1226:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1227:10:1227:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1227:10:1227:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1227:10:1227:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1227:10:1227:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1229:5:1229:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1229:5:1229:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1229:9:1229:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1229:9:1229:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1229:9:1229:21 | call to slice [element 0] | semmle.label | call to slice [element 0] | | array_flow.rb:1229:9:1229:21 | call to slice [element 0] | semmle.label | call to slice [element 0] | | array_flow.rb:1230:10:1230:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1230:10:1230:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1230:10:1230:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1230:10:1230:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1234:5:1234:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1234:5:1234:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1234:9:1234:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1234:9:1234:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1234:9:1234:22 | call to slice [element 0] | semmle.label | call to slice [element 0] | -| array_flow.rb:1234:9:1234:22 | call to slice [element 0] | semmle.label | call to slice [element 0] | -| array_flow.rb:1235:10:1235:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1235:10:1235:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1235:10:1235:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1235:10:1235:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1239:5:1239:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1239:5:1239:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1239:9:1239:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1239:9:1239:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1239:9:1239:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1239:9:1239:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1239:9:1239:21 | call to slice [element] | semmle.label | call to slice [element] | -| array_flow.rb:1239:9:1239:21 | call to slice [element] | semmle.label | call to slice [element] | -| array_flow.rb:1240:10:1240:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1240:10:1240:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1240:10:1240:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1240:10:1240:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1241:10:1241:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1241:10:1241:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1241:10:1241:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1241:10:1241:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1243:5:1243:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1243:5:1243:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1243:9:1243:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1243:9:1243:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1243:9:1243:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1243:9:1243:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1243:9:1243:24 | call to slice [element] | semmle.label | call to slice [element] | -| array_flow.rb:1243:9:1243:24 | call to slice [element] | semmle.label | call to slice [element] | -| array_flow.rb:1244:10:1244:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1244:10:1244:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1244:10:1244:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1244:10:1244:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1245:10:1245:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1245:10:1245:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1245:10:1245:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1245:10:1245:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1247:5:1247:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1247:5:1247:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1247:9:1247:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1247:9:1247:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1247:9:1247:20 | call to slice [element 2] | semmle.label | call to slice [element 2] | | array_flow.rb:1247:9:1247:20 | call to slice [element 2] | semmle.label | call to slice [element 2] | | array_flow.rb:1250:10:1250:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1250:10:1250:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1250:10:1250:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1250:10:1250:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1252:5:1252:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1252:5:1252:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1252:9:1252:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1252:9:1252:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1252:9:1252:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1252:9:1252:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1252:9:1252:20 | call to slice [element] | semmle.label | call to slice [element] | | array_flow.rb:1252:9:1252:20 | call to slice [element] | semmle.label | call to slice [element] | | array_flow.rb:1253:10:1253:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1253:10:1253:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1253:10:1253:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1253:10:1253:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1254:10:1254:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1254:10:1254:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1254:10:1254:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1254:10:1254:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1255:10:1255:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1255:10:1255:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1255:10:1255:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1255:10:1255:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1259:5:1259:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1259:5:1259:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1259:5:1259:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1259:5:1259:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1259:16:1259:28 | call to source | semmle.label | call to source | -| array_flow.rb:1259:16:1259:28 | call to source | semmle.label | call to source | -| array_flow.rb:1259:34:1259:46 | call to source | semmle.label | call to source | | array_flow.rb:1259:34:1259:46 | call to source | semmle.label | call to source | | array_flow.rb:1260:5:1260:5 | b | semmle.label | b | -| array_flow.rb:1260:5:1260:5 | b | semmle.label | b | -| array_flow.rb:1260:9:1260:9 | [post] a [element 3] | semmle.label | [post] a [element 3] | | array_flow.rb:1260:9:1260:9 | [post] a [element 3] | semmle.label | [post] a [element 3] | | array_flow.rb:1260:9:1260:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1260:9:1260:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1260:9:1260:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1260:9:1260:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1260:9:1260:19 | call to slice! | semmle.label | call to slice! | -| array_flow.rb:1260:9:1260:19 | call to slice! | semmle.label | call to slice! | -| array_flow.rb:1261:10:1261:10 | b | semmle.label | b | | array_flow.rb:1261:10:1261:10 | b | semmle.label | b | | array_flow.rb:1265:10:1265:10 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1265:10:1265:10 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1265:10:1265:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1265:10:1265:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1267:5:1267:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1267:5:1267:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1267:5:1267:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1267:5:1267:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1267:16:1267:28 | call to source | semmle.label | call to source | -| array_flow.rb:1267:16:1267:28 | call to source | semmle.label | call to source | -| array_flow.rb:1267:34:1267:46 | call to source | semmle.label | call to source | | array_flow.rb:1267:34:1267:46 | call to source | semmle.label | call to source | | array_flow.rb:1268:5:1268:5 | b | semmle.label | b | -| array_flow.rb:1268:5:1268:5 | b | semmle.label | b | -| array_flow.rb:1268:5:1268:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1268:5:1268:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1268:9:1268:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1268:9:1268:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1268:9:1268:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1268:9:1268:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1268:9:1268:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1268:9:1268:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1268:9:1268:19 | call to slice! | semmle.label | call to slice! | | array_flow.rb:1268:9:1268:19 | call to slice! | semmle.label | call to slice! | | array_flow.rb:1268:9:1268:19 | call to slice! [element] | semmle.label | call to slice! [element] | -| array_flow.rb:1268:9:1268:19 | call to slice! [element] | semmle.label | call to slice! [element] | -| array_flow.rb:1269:10:1269:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1269:10:1269:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1269:10:1269:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1269:10:1269:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1270:10:1270:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1270:10:1270:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1270:10:1270:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1270:10:1270:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1271:10:1271:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1271:10:1271:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1271:10:1271:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1271:10:1271:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1272:10:1272:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1272:10:1272:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1272:10:1272:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1272:10:1272:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1274:10:1274:10 | b | semmle.label | b | -| array_flow.rb:1274:10:1274:10 | b | semmle.label | b | -| array_flow.rb:1276:10:1276:10 | b | semmle.label | b | -| array_flow.rb:1276:10:1276:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1276:10:1276:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1276:10:1276:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1276:10:1276:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1278:5:1278:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1278:5:1278:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1278:5:1278:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1278:5:1278:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1278:16:1278:28 | call to source | semmle.label | call to source | | array_flow.rb:1278:16:1278:28 | call to source | semmle.label | call to source | | array_flow.rb:1278:34:1278:46 | call to source | semmle.label | call to source | -| array_flow.rb:1278:34:1278:46 | call to source | semmle.label | call to source | -| array_flow.rb:1279:5:1279:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1279:5:1279:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1279:5:1279:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1279:5:1279:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1279:9:1279:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1279:9:1279:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1279:9:1279:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1279:9:1279:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1279:9:1279:22 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | | array_flow.rb:1279:9:1279:22 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | | array_flow.rb:1279:9:1279:22 | call to slice! [element 2] | semmle.label | call to slice! [element 2] | -| array_flow.rb:1279:9:1279:22 | call to slice! [element 2] | semmle.label | call to slice! [element 2] | -| array_flow.rb:1280:10:1280:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1280:10:1280:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1280:10:1280:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1280:10:1280:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1282:10:1282:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1282:10:1282:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1282:10:1282:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1282:10:1282:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1289:5:1289:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1289:5:1289:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1289:5:1289:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1289:5:1289:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1289:16:1289:28 | call to source | semmle.label | call to source | | array_flow.rb:1289:16:1289:28 | call to source | semmle.label | call to source | | array_flow.rb:1289:34:1289:46 | call to source | semmle.label | call to source | -| array_flow.rb:1289:34:1289:46 | call to source | semmle.label | call to source | -| array_flow.rb:1290:5:1290:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1290:5:1290:5 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1290:9:1290:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1290:9:1290:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1290:9:1290:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1290:9:1290:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1290:9:1290:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1290:9:1290:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1290:9:1290:22 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | | array_flow.rb:1290:9:1290:22 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | | array_flow.rb:1291:10:1291:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1291:10:1291:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1291:10:1291:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1291:10:1291:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1296:10:1296:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1296:10:1296:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1296:10:1296:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1296:10:1296:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1300:5:1300:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1300:5:1300:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1300:5:1300:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1300:5:1300:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1300:16:1300:28 | call to source | semmle.label | call to source | -| array_flow.rb:1300:16:1300:28 | call to source | semmle.label | call to source | -| array_flow.rb:1300:34:1300:46 | call to source | semmle.label | call to source | | array_flow.rb:1300:34:1300:46 | call to source | semmle.label | call to source | | array_flow.rb:1301:5:1301:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1301:5:1301:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1301:9:1301:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | | array_flow.rb:1301:9:1301:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | | array_flow.rb:1301:9:1301:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1301:9:1301:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1301:9:1301:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1301:9:1301:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1301:9:1301:23 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | -| array_flow.rb:1301:9:1301:23 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | -| array_flow.rb:1302:10:1302:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1302:10:1302:10 | b [element 0] | semmle.label | b [element 0] | | array_flow.rb:1302:10:1302:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1302:10:1302:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1307:10:1307:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1307:10:1307:10 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1307:10:1307:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1307:10:1307:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1311:5:1311:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1311:5:1311:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1311:5:1311:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1311:5:1311:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1311:16:1311:28 | call to source | semmle.label | call to source | | array_flow.rb:1311:16:1311:28 | call to source | semmle.label | call to source | | array_flow.rb:1311:34:1311:46 | call to source | semmle.label | call to source | -| array_flow.rb:1311:34:1311:46 | call to source | semmle.label | call to source | -| array_flow.rb:1312:5:1312:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1312:5:1312:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1312:9:1312:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1312:9:1312:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1312:9:1312:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1312:9:1312:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1312:9:1312:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1312:9:1312:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1312:9:1312:22 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1312:9:1312:22 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1313:10:1313:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1313:10:1313:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1313:10:1313:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1313:10:1313:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1314:10:1314:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1314:10:1314:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1314:10:1314:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1314:10:1314:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1315:10:1315:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1315:10:1315:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1315:10:1315:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1315:10:1315:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1316:10:1316:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1316:10:1316:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1316:10:1316:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1316:10:1316:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1317:10:1317:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1317:10:1317:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1317:10:1317:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1317:10:1317:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1318:10:1318:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1318:10:1318:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1318:10:1318:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1318:10:1318:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1320:5:1320:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1320:5:1320:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1320:5:1320:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1320:5:1320:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1320:16:1320:28 | call to source | semmle.label | call to source | -| array_flow.rb:1320:16:1320:28 | call to source | semmle.label | call to source | -| array_flow.rb:1320:34:1320:46 | call to source | semmle.label | call to source | | array_flow.rb:1320:34:1320:46 | call to source | semmle.label | call to source | | array_flow.rb:1321:5:1321:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1321:5:1321:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1321:9:1321:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1321:9:1321:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1321:9:1321:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1321:9:1321:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1321:9:1321:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1321:9:1321:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1321:9:1321:22 | call to slice! [element] | semmle.label | call to slice! [element] | -| array_flow.rb:1321:9:1321:22 | call to slice! [element] | semmle.label | call to slice! [element] | -| array_flow.rb:1322:10:1322:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1322:10:1322:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1322:10:1322:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1322:10:1322:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1323:10:1323:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1323:10:1323:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1323:10:1323:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1323:10:1323:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1324:10:1324:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1324:10:1324:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1324:10:1324:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1324:10:1324:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1325:10:1325:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1325:10:1325:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1325:10:1325:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1325:10:1325:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1326:10:1326:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1326:10:1326:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1326:10:1326:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1326:10:1326:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1327:10:1327:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1327:10:1327:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1327:10:1327:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1327:10:1327:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1329:5:1329:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1329:5:1329:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1329:5:1329:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1329:5:1329:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1329:16:1329:28 | call to source | semmle.label | call to source | | array_flow.rb:1329:16:1329:28 | call to source | semmle.label | call to source | | array_flow.rb:1329:34:1329:46 | call to source | semmle.label | call to source | -| array_flow.rb:1329:34:1329:46 | call to source | semmle.label | call to source | -| array_flow.rb:1330:5:1330:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1330:5:1330:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1330:9:1330:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1330:9:1330:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1330:9:1330:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1330:9:1330:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1330:9:1330:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1330:9:1330:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1330:9:1330:25 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1330:9:1330:25 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1331:10:1331:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1331:10:1331:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1331:10:1331:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1331:10:1331:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1332:10:1332:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1332:10:1332:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1332:10:1332:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1332:10:1332:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1333:10:1333:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1333:10:1333:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1333:10:1333:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1333:10:1333:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1334:10:1334:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1334:10:1334:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1334:10:1334:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1334:10:1334:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1335:10:1335:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1335:10:1335:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1335:10:1335:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1335:10:1335:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1336:10:1336:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1336:10:1336:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1336:10:1336:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1336:10:1336:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1338:5:1338:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1338:5:1338:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1338:5:1338:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1338:5:1338:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1338:16:1338:28 | call to source | semmle.label | call to source | -| array_flow.rb:1338:16:1338:28 | call to source | semmle.label | call to source | -| array_flow.rb:1338:34:1338:46 | call to source | semmle.label | call to source | | array_flow.rb:1338:34:1338:46 | call to source | semmle.label | call to source | | array_flow.rb:1339:5:1339:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1339:5:1339:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1339:9:1339:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | | array_flow.rb:1339:9:1339:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | | array_flow.rb:1339:9:1339:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1339:9:1339:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1339:9:1339:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1339:9:1339:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1339:9:1339:21 | call to slice! [element 2] | semmle.label | call to slice! [element 2] | -| array_flow.rb:1339:9:1339:21 | call to slice! [element 2] | semmle.label | call to slice! [element 2] | -| array_flow.rb:1342:10:1342:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1342:10:1342:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1342:10:1342:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1342:10:1342:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1344:10:1344:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:1344:10:1344:10 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:1344:10:1344:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1344:10:1344:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1347:5:1347:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1347:5:1347:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1347:5:1347:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1347:5:1347:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1347:16:1347:28 | call to source | semmle.label | call to source | | array_flow.rb:1347:16:1347:28 | call to source | semmle.label | call to source | | array_flow.rb:1347:34:1347:46 | call to source | semmle.label | call to source | -| array_flow.rb:1347:34:1347:46 | call to source | semmle.label | call to source | -| array_flow.rb:1348:5:1348:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1348:5:1348:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1348:9:1348:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1348:9:1348:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1348:9:1348:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1348:9:1348:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1348:9:1348:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1348:9:1348:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1348:9:1348:21 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1348:9:1348:21 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1349:10:1349:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1349:10:1349:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1349:10:1349:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1349:10:1349:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1350:10:1350:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1350:10:1350:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1350:10:1350:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1350:10:1350:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1351:10:1351:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1351:10:1351:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1351:10:1351:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1351:10:1351:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1352:10:1352:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1352:10:1352:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1352:10:1352:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1352:10:1352:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1353:10:1353:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1353:10:1353:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1353:10:1353:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1353:10:1353:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1354:10:1354:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1354:10:1354:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1354:10:1354:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1354:10:1354:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1358:5:1358:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1358:5:1358:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1358:16:1358:26 | call to source | semmle.label | call to source | | array_flow.rb:1358:16:1358:26 | call to source | semmle.label | call to source | | array_flow.rb:1359:9:1359:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1359:9:1359:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1359:27:1359:27 | x | semmle.label | x | | array_flow.rb:1359:27:1359:27 | x | semmle.label | x | | array_flow.rb:1360:14:1360:14 | x | semmle.label | x | -| array_flow.rb:1360:14:1360:14 | x | semmle.label | x | -| array_flow.rb:1366:5:1366:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1366:5:1366:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1366:16:1366:26 | call to source | semmle.label | call to source | -| array_flow.rb:1366:16:1366:26 | call to source | semmle.label | call to source | -| array_flow.rb:1367:9:1367:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1367:9:1367:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1367:28:1367:28 | x | semmle.label | x | -| array_flow.rb:1367:28:1367:28 | x | semmle.label | x | -| array_flow.rb:1368:14:1368:14 | x | semmle.label | x | | array_flow.rb:1368:14:1368:14 | x | semmle.label | x | | array_flow.rb:1374:5:1374:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1374:5:1374:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1374:16:1374:26 | call to source | semmle.label | call to source | | array_flow.rb:1374:16:1374:26 | call to source | semmle.label | call to source | | array_flow.rb:1375:9:1375:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1375:9:1375:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1375:26:1375:26 | x | semmle.label | x | | array_flow.rb:1375:26:1375:26 | x | semmle.label | x | | array_flow.rb:1375:29:1375:29 | y | semmle.label | y | -| array_flow.rb:1375:29:1375:29 | y | semmle.label | y | -| array_flow.rb:1376:14:1376:14 | x | semmle.label | x | | array_flow.rb:1376:14:1376:14 | x | semmle.label | x | | array_flow.rb:1377:14:1377:14 | y | semmle.label | y | -| array_flow.rb:1377:14:1377:14 | y | semmle.label | y | -| array_flow.rb:1382:5:1382:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1382:5:1382:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1382:16:1382:26 | call to source | semmle.label | call to source | -| array_flow.rb:1382:16:1382:26 | call to source | semmle.label | call to source | -| array_flow.rb:1383:5:1383:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1383:5:1383:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1383:9:1383:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1383:9:1383:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1383:9:1383:14 | call to sort [element] | semmle.label | call to sort [element] | | array_flow.rb:1383:9:1383:14 | call to sort [element] | semmle.label | call to sort [element] | | array_flow.rb:1384:10:1384:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1384:10:1384:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1384:10:1384:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1384:10:1384:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1385:10:1385:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1385:10:1385:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1385:10:1385:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1385:10:1385:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1386:5:1386:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:1386:5:1386:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:1386:9:1386:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1386:9:1386:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1386:9:1390:7 | call to sort [element] | semmle.label | call to sort [element] | -| array_flow.rb:1386:9:1390:7 | call to sort [element] | semmle.label | call to sort [element] | -| array_flow.rb:1386:20:1386:20 | x | semmle.label | x | | array_flow.rb:1386:20:1386:20 | x | semmle.label | x | | array_flow.rb:1386:23:1386:23 | y | semmle.label | y | -| array_flow.rb:1386:23:1386:23 | y | semmle.label | y | -| array_flow.rb:1387:14:1387:14 | x | semmle.label | x | | array_flow.rb:1387:14:1387:14 | x | semmle.label | x | | array_flow.rb:1388:14:1388:14 | y | semmle.label | y | -| array_flow.rb:1388:14:1388:14 | y | semmle.label | y | -| array_flow.rb:1391:10:1391:10 | c [element] | semmle.label | c [element] | | array_flow.rb:1391:10:1391:10 | c [element] | semmle.label | c [element] | | array_flow.rb:1391:10:1391:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1391:10:1391:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1392:10:1392:10 | c [element] | semmle.label | c [element] | | array_flow.rb:1392:10:1392:10 | c [element] | semmle.label | c [element] | | array_flow.rb:1392:10:1392:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1392:10:1392:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1396:5:1396:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1396:5:1396:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1396:16:1396:26 | call to source | semmle.label | call to source | -| array_flow.rb:1396:16:1396:26 | call to source | semmle.label | call to source | -| array_flow.rb:1397:5:1397:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1397:5:1397:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1397:9:1397:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1397:9:1397:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1397:9:1397:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1397:9:1397:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1397:9:1397:15 | call to sort! [element] | semmle.label | call to sort! [element] | -| array_flow.rb:1397:9:1397:15 | call to sort! [element] | semmle.label | call to sort! [element] | -| array_flow.rb:1398:10:1398:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1398:10:1398:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1398:10:1398:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1398:10:1398:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1399:10:1399:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1399:10:1399:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1399:10:1399:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1399:10:1399:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1400:10:1400:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1400:10:1400:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1400:10:1400:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1400:10:1400:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1401:10:1401:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1401:10:1401:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1401:10:1401:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1401:10:1401:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1403:5:1403:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1403:5:1403:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1403:16:1403:26 | call to source | semmle.label | call to source | -| array_flow.rb:1403:16:1403:26 | call to source | semmle.label | call to source | -| array_flow.rb:1404:5:1404:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1404:5:1404:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1404:9:1404:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1404:9:1404:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1404:9:1404:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1404:9:1404:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1404:9:1408:7 | call to sort! [element] | semmle.label | call to sort! [element] | -| array_flow.rb:1404:9:1408:7 | call to sort! [element] | semmle.label | call to sort! [element] | -| array_flow.rb:1404:21:1404:21 | x | semmle.label | x | | array_flow.rb:1404:21:1404:21 | x | semmle.label | x | | array_flow.rb:1404:24:1404:24 | y | semmle.label | y | -| array_flow.rb:1404:24:1404:24 | y | semmle.label | y | -| array_flow.rb:1405:14:1405:14 | x | semmle.label | x | | array_flow.rb:1405:14:1405:14 | x | semmle.label | x | | array_flow.rb:1406:14:1406:14 | y | semmle.label | y | -| array_flow.rb:1406:14:1406:14 | y | semmle.label | y | -| array_flow.rb:1409:10:1409:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1409:10:1409:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1409:10:1409:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1409:10:1409:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1410:10:1410:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1410:10:1410:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1410:10:1410:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1410:10:1410:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1411:10:1411:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1411:10:1411:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1411:10:1411:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1411:10:1411:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1412:10:1412:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1412:10:1412:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1412:10:1412:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1412:10:1412:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1416:5:1416:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1416:5:1416:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1416:16:1416:26 | call to source | semmle.label | call to source | -| array_flow.rb:1416:16:1416:26 | call to source | semmle.label | call to source | -| array_flow.rb:1417:5:1417:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1417:5:1417:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1417:9:1417:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1417:9:1417:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1417:9:1420:7 | call to sort_by [element] | semmle.label | call to sort_by [element] | | array_flow.rb:1417:9:1420:7 | call to sort_by [element] | semmle.label | call to sort_by [element] | | array_flow.rb:1417:23:1417:23 | x | semmle.label | x | -| array_flow.rb:1417:23:1417:23 | x | semmle.label | x | -| array_flow.rb:1418:14:1418:14 | x | semmle.label | x | | array_flow.rb:1418:14:1418:14 | x | semmle.label | x | | array_flow.rb:1421:10:1421:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1421:10:1421:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1421:10:1421:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1421:10:1421:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1422:10:1422:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1422:10:1422:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1422:10:1422:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1422:10:1422:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1426:5:1426:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1426:5:1426:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1426:16:1426:26 | call to source | semmle.label | call to source | | array_flow.rb:1426:16:1426:26 | call to source | semmle.label | call to source | | array_flow.rb:1427:5:1427:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1427:5:1427:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1427:9:1427:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1427:9:1427:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1427:9:1427:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1427:9:1427:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1427:9:1430:7 | call to sort_by! [element] | semmle.label | call to sort_by! [element] | | array_flow.rb:1427:9:1430:7 | call to sort_by! [element] | semmle.label | call to sort_by! [element] | | array_flow.rb:1427:24:1427:24 | x | semmle.label | x | -| array_flow.rb:1427:24:1427:24 | x | semmle.label | x | -| array_flow.rb:1428:14:1428:14 | x | semmle.label | x | | array_flow.rb:1428:14:1428:14 | x | semmle.label | x | | array_flow.rb:1431:10:1431:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1431:10:1431:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1431:10:1431:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1431:10:1431:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1432:10:1432:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1432:10:1432:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1432:10:1432:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1432:10:1432:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1433:10:1433:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1433:10:1433:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1433:10:1433:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1433:10:1433:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1434:10:1434:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1434:10:1434:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1434:10:1434:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1434:10:1434:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1438:5:1438:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1438:5:1438:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1438:16:1438:26 | call to source | semmle.label | call to source | | array_flow.rb:1438:16:1438:26 | call to source | semmle.label | call to source | | array_flow.rb:1439:9:1439:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1439:9:1439:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1439:19:1439:19 | x | semmle.label | x | | array_flow.rb:1439:19:1439:19 | x | semmle.label | x | | array_flow.rb:1440:14:1440:14 | x | semmle.label | x | -| array_flow.rb:1440:14:1440:14 | x | semmle.label | x | -| array_flow.rb:1446:5:1446:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1446:5:1446:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1446:5:1446:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1446:5:1446:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1446:16:1446:28 | call to source | semmle.label | call to source | | array_flow.rb:1446:16:1446:28 | call to source | semmle.label | call to source | | array_flow.rb:1446:31:1446:43 | call to source | semmle.label | call to source | -| array_flow.rb:1446:31:1446:43 | call to source | semmle.label | call to source | -| array_flow.rb:1447:5:1447:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1447:5:1447:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1447:5:1447:5 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1447:5:1447:5 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1447:9:1447:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1447:9:1447:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1447:9:1447:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1447:9:1447:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1447:9:1447:17 | call to take [element 2] | semmle.label | call to take [element 2] | | array_flow.rb:1447:9:1447:17 | call to take [element 2] | semmle.label | call to take [element 2] | | array_flow.rb:1447:9:1447:17 | call to take [element 3] | semmle.label | call to take [element 3] | -| array_flow.rb:1447:9:1447:17 | call to take [element 3] | semmle.label | call to take [element 3] | -| array_flow.rb:1450:10:1450:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1450:10:1450:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1450:10:1450:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1450:10:1450:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1451:10:1451:10 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1451:10:1451:10 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1451:10:1451:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1451:10:1451:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1452:5:1452:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1452:5:1452:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1452:9:1452:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1452:9:1452:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1452:9:1452:17 | call to take [element 2] | semmle.label | call to take [element 2] | | array_flow.rb:1452:9:1452:17 | call to take [element 2] | semmle.label | call to take [element 2] | | array_flow.rb:1455:10:1455:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1455:10:1455:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1455:10:1455:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1455:10:1455:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1457:10:1457:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1457:10:1457:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1457:10:1457:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1457:10:1457:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1458:5:1458:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1458:5:1458:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1458:5:1458:5 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1458:5:1458:5 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1458:9:1458:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1458:9:1458:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1458:9:1458:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1458:9:1458:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1458:9:1458:19 | call to take [element 2] | semmle.label | call to take [element 2] | -| array_flow.rb:1458:9:1458:19 | call to take [element 2] | semmle.label | call to take [element 2] | -| array_flow.rb:1458:9:1458:19 | call to take [element 3] | semmle.label | call to take [element 3] | | array_flow.rb:1458:9:1458:19 | call to take [element 3] | semmle.label | call to take [element 3] | | array_flow.rb:1461:10:1461:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1461:10:1461:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1461:10:1461:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1461:10:1461:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1462:10:1462:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1462:10:1462:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1462:10:1462:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1462:10:1462:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1463:10:1463:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1463:10:1463:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1463:10:1463:10 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1463:10:1463:10 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1463:10:1463:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1463:10:1463:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1464:5:1464:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1464:5:1464:5 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1464:12:1464:24 | call to source | semmle.label | call to source | -| array_flow.rb:1464:12:1464:24 | call to source | semmle.label | call to source | -| array_flow.rb:1465:5:1465:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1465:5:1465:5 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1465:5:1465:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1465:5:1465:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1465:9:1465:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1465:9:1465:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1465:9:1465:9 | a [element] | semmle.label | a [element] | -| array_flow.rb:1465:9:1465:9 | a [element] | semmle.label | a [element] | -| array_flow.rb:1465:9:1465:17 | call to take [element 2] | semmle.label | call to take [element 2] | | array_flow.rb:1465:9:1465:17 | call to take [element 2] | semmle.label | call to take [element 2] | | array_flow.rb:1465:9:1465:17 | call to take [element] | semmle.label | call to take [element] | -| array_flow.rb:1465:9:1465:17 | call to take [element] | semmle.label | call to take [element] | -| array_flow.rb:1466:10:1466:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1466:10:1466:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1466:10:1466:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1466:10:1466:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1466:10:1466:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1466:10:1466:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1470:5:1470:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1470:5:1470:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1470:16:1470:26 | call to source | semmle.label | call to source | | array_flow.rb:1470:16:1470:26 | call to source | semmle.label | call to source | | array_flow.rb:1471:5:1471:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1471:5:1471:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1471:9:1471:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1471:9:1471:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1471:9:1474:7 | call to take_while [element 2] | semmle.label | call to take_while [element 2] | -| array_flow.rb:1471:9:1474:7 | call to take_while [element 2] | semmle.label | call to take_while [element 2] | -| array_flow.rb:1471:26:1471:26 | x | semmle.label | x | | array_flow.rb:1471:26:1471:26 | x | semmle.label | x | | array_flow.rb:1472:14:1472:14 | x | semmle.label | x | -| array_flow.rb:1472:14:1472:14 | x | semmle.label | x | -| array_flow.rb:1477:10:1477:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1477:10:1477:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1477:10:1477:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1477:10:1477:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1483:5:1483:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1483:5:1483:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1483:19:1483:29 | call to source | semmle.label | call to source | -| array_flow.rb:1483:19:1483:29 | call to source | semmle.label | call to source | -| array_flow.rb:1484:5:1484:5 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1484:5:1484:5 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1484:9:1484:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1484:9:1484:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1484:9:1484:14 | call to to_a [element 3] | semmle.label | call to to_a [element 3] | | array_flow.rb:1484:9:1484:14 | call to to_a [element 3] | semmle.label | call to to_a [element 3] | | array_flow.rb:1485:10:1485:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1485:10:1485:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1485:10:1485:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1485:10:1485:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1489:5:1489:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1489:5:1489:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1489:16:1489:26 | call to source | semmle.label | call to source | | array_flow.rb:1489:16:1489:26 | call to source | semmle.label | call to source | | array_flow.rb:1490:5:1490:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1490:5:1490:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1490:9:1490:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1490:9:1490:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1490:9:1490:16 | call to to_ary [element 2] | semmle.label | call to to_ary [element 2] | -| array_flow.rb:1490:9:1490:16 | call to to_ary [element 2] | semmle.label | call to to_ary [element 2] | -| array_flow.rb:1493:10:1493:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1493:10:1493:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1493:10:1493:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1493:10:1493:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1506:5:1506:5 | a [element 0, element 1] | semmle.label | a [element 0, element 1] | | array_flow.rb:1506:5:1506:5 | a [element 0, element 1] | semmle.label | a [element 0, element 1] | | array_flow.rb:1506:5:1506:5 | a [element 1, element 1] | semmle.label | a [element 1, element 1] | -| array_flow.rb:1506:5:1506:5 | a [element 1, element 1] | semmle.label | a [element 1, element 1] | -| array_flow.rb:1506:5:1506:5 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | | array_flow.rb:1506:5:1506:5 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | | array_flow.rb:1506:14:1506:26 | call to source | semmle.label | call to source | -| array_flow.rb:1506:14:1506:26 | call to source | semmle.label | call to source | -| array_flow.rb:1506:34:1506:46 | call to source | semmle.label | call to source | | array_flow.rb:1506:34:1506:46 | call to source | semmle.label | call to source | | array_flow.rb:1506:54:1506:66 | call to source | semmle.label | call to source | -| array_flow.rb:1506:54:1506:66 | call to source | semmle.label | call to source | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 0] | semmle.label | b [element 1, element 0] | | array_flow.rb:1507:5:1507:5 | b [element 1, element 0] | semmle.label | b [element 1, element 0] | | array_flow.rb:1507:5:1507:5 | b [element 1, element 1] | semmle.label | b [element 1, element 1] | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 1] | semmle.label | b [element 1, element 1] | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 2] | semmle.label | b [element 1, element 2] | | array_flow.rb:1507:5:1507:5 | b [element 1, element 2] | semmle.label | b [element 1, element 2] | | array_flow.rb:1507:9:1507:9 | a [element 0, element 1] | semmle.label | a [element 0, element 1] | -| array_flow.rb:1507:9:1507:9 | a [element 0, element 1] | semmle.label | a [element 0, element 1] | -| array_flow.rb:1507:9:1507:9 | a [element 1, element 1] | semmle.label | a [element 1, element 1] | | array_flow.rb:1507:9:1507:9 | a [element 1, element 1] | semmle.label | a [element 1, element 1] | | array_flow.rb:1507:9:1507:9 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | -| array_flow.rb:1507:9:1507:9 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 0] | semmle.label | call to transpose [element 1, element 0] | | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 0] | semmle.label | call to transpose [element 1, element 0] | | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 1] | semmle.label | call to transpose [element 1, element 1] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 1] | semmle.label | call to transpose [element 1, element 1] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 2] | semmle.label | call to transpose [element 1, element 2] | | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 2] | semmle.label | call to transpose [element 1, element 2] | | array_flow.rb:1511:10:1511:10 | b [element 1, element 0] | semmle.label | b [element 1, element 0] | -| array_flow.rb:1511:10:1511:10 | b [element 1, element 0] | semmle.label | b [element 1, element 0] | -| array_flow.rb:1511:10:1511:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | | array_flow.rb:1511:10:1511:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | | array_flow.rb:1511:10:1511:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1511:10:1511:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1512:10:1512:10 | b [element 1, element 1] | semmle.label | b [element 1, element 1] | | array_flow.rb:1512:10:1512:10 | b [element 1, element 1] | semmle.label | b [element 1, element 1] | | array_flow.rb:1512:10:1512:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | -| array_flow.rb:1512:10:1512:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | -| array_flow.rb:1512:10:1512:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1512:10:1512:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1513:10:1513:10 | b [element 1, element 2] | semmle.label | b [element 1, element 2] | -| array_flow.rb:1513:10:1513:10 | b [element 1, element 2] | semmle.label | b [element 1, element 2] | -| array_flow.rb:1513:10:1513:13 | ...[...] [element 2] | semmle.label | ...[...] [element 2] | | array_flow.rb:1513:10:1513:13 | ...[...] [element 2] | semmle.label | ...[...] [element 2] | | array_flow.rb:1513:10:1513:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1513:10:1513:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1517:5:1517:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1517:5:1517:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1517:16:1517:28 | call to source | semmle.label | call to source | -| array_flow.rb:1517:16:1517:28 | call to source | semmle.label | call to source | -| array_flow.rb:1518:5:1518:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1518:5:1518:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1518:13:1518:25 | call to source | semmle.label | call to source | -| array_flow.rb:1518:13:1518:25 | call to source | semmle.label | call to source | -| array_flow.rb:1519:5:1519:5 | c [element 1] | semmle.label | c [element 1] | | array_flow.rb:1519:5:1519:5 | c [element 1] | semmle.label | c [element 1] | | array_flow.rb:1519:13:1519:25 | call to source | semmle.label | call to source | -| array_flow.rb:1519:13:1519:25 | call to source | semmle.label | call to source | -| array_flow.rb:1520:5:1520:5 | d [element] | semmle.label | d [element] | | array_flow.rb:1520:5:1520:5 | d [element] | semmle.label | d [element] | | array_flow.rb:1520:9:1520:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1520:9:1520:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1520:9:1520:21 | call to union [element] | semmle.label | call to union [element] | | array_flow.rb:1520:9:1520:21 | call to union [element] | semmle.label | call to union [element] | | array_flow.rb:1520:17:1520:17 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1520:17:1520:17 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1520:20:1520:20 | c [element 1] | semmle.label | c [element 1] | | array_flow.rb:1520:20:1520:20 | c [element 1] | semmle.label | c [element 1] | | array_flow.rb:1521:10:1521:10 | d [element] | semmle.label | d [element] | -| array_flow.rb:1521:10:1521:10 | d [element] | semmle.label | d [element] | -| array_flow.rb:1521:10:1521:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1521:10:1521:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1522:10:1522:10 | d [element] | semmle.label | d [element] | -| array_flow.rb:1522:10:1522:10 | d [element] | semmle.label | d [element] | -| array_flow.rb:1522:10:1522:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1522:10:1522:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1523:10:1523:10 | d [element] | semmle.label | d [element] | -| array_flow.rb:1523:10:1523:10 | d [element] | semmle.label | d [element] | -| array_flow.rb:1523:10:1523:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1523:10:1523:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1527:5:1527:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1527:5:1527:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1527:5:1527:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1527:5:1527:5 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1527:19:1527:31 | call to source | semmle.label | call to source | -| array_flow.rb:1527:19:1527:31 | call to source | semmle.label | call to source | -| array_flow.rb:1527:34:1527:46 | call to source | semmle.label | call to source | | array_flow.rb:1527:34:1527:46 | call to source | semmle.label | call to source | | array_flow.rb:1529:5:1529:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1529:5:1529:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1529:9:1529:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1529:9:1529:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1529:9:1529:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1529:9:1529:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1529:9:1529:14 | call to uniq [element] | semmle.label | call to uniq [element] | | array_flow.rb:1529:9:1529:14 | call to uniq [element] | semmle.label | call to uniq [element] | | array_flow.rb:1530:10:1530:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1530:10:1530:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1530:10:1530:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1530:10:1530:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1531:10:1531:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1531:10:1531:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1531:10:1531:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1531:10:1531:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1533:5:1533:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:1533:5:1533:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:1533:9:1533:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1533:9:1533:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1533:9:1533:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1533:9:1533:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1533:9:1536:7 | call to uniq [element] | semmle.label | call to uniq [element] | | array_flow.rb:1533:9:1536:7 | call to uniq [element] | semmle.label | call to uniq [element] | | array_flow.rb:1533:20:1533:20 | x | semmle.label | x | -| array_flow.rb:1533:20:1533:20 | x | semmle.label | x | -| array_flow.rb:1534:14:1534:14 | x | semmle.label | x | | array_flow.rb:1534:14:1534:14 | x | semmle.label | x | | array_flow.rb:1537:10:1537:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1537:10:1537:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1537:10:1537:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1537:10:1537:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1541:5:1541:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1541:5:1541:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1541:5:1541:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1541:5:1541:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1541:16:1541:28 | call to source | semmle.label | call to source | -| array_flow.rb:1541:16:1541:28 | call to source | semmle.label | call to source | -| array_flow.rb:1541:31:1541:43 | call to source | semmle.label | call to source | | array_flow.rb:1541:31:1541:43 | call to source | semmle.label | call to source | | array_flow.rb:1542:5:1542:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1542:5:1542:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1542:9:1542:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1542:9:1542:9 | [post] a [element] | semmle.label | [post] a [element] | | array_flow.rb:1542:9:1542:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1542:9:1542:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1542:9:1542:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1542:9:1542:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1542:9:1542:15 | call to uniq! [element] | semmle.label | call to uniq! [element] | -| array_flow.rb:1542:9:1542:15 | call to uniq! [element] | semmle.label | call to uniq! [element] | -| array_flow.rb:1543:10:1543:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1543:10:1543:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1543:10:1543:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1543:10:1543:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1544:10:1544:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1544:10:1544:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1544:10:1544:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1544:10:1544:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1545:10:1545:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1545:10:1545:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1545:10:1545:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1545:10:1545:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1546:10:1546:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1546:10:1546:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1546:10:1546:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1546:10:1546:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1548:5:1548:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1548:5:1548:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1548:5:1548:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1548:5:1548:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1548:16:1548:28 | call to source | semmle.label | call to source | | array_flow.rb:1548:16:1548:28 | call to source | semmle.label | call to source | | array_flow.rb:1548:31:1548:43 | call to source | semmle.label | call to source | -| array_flow.rb:1548:31:1548:43 | call to source | semmle.label | call to source | -| array_flow.rb:1549:5:1549:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1549:5:1549:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1549:9:1549:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1549:9:1549:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1549:9:1549:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1549:9:1549:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1549:9:1549:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1549:9:1549:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1549:9:1552:7 | call to uniq! [element] | semmle.label | call to uniq! [element] | | array_flow.rb:1549:9:1552:7 | call to uniq! [element] | semmle.label | call to uniq! [element] | | array_flow.rb:1549:21:1549:21 | x | semmle.label | x | -| array_flow.rb:1549:21:1549:21 | x | semmle.label | x | -| array_flow.rb:1550:14:1550:14 | x | semmle.label | x | | array_flow.rb:1550:14:1550:14 | x | semmle.label | x | | array_flow.rb:1553:10:1553:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1553:10:1553:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1553:10:1553:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1553:10:1553:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1554:10:1554:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1554:10:1554:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1554:10:1554:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1554:10:1554:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1555:10:1555:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1555:10:1555:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1555:10:1555:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1555:10:1555:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1556:10:1556:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1556:10:1556:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1556:10:1556:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1556:10:1556:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1560:5:1560:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1560:5:1560:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1560:16:1560:28 | call to source | semmle.label | call to source | | array_flow.rb:1560:16:1560:28 | call to source | semmle.label | call to source | | array_flow.rb:1561:5:1561:5 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1561:5:1561:5 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1561:5:1561:5 | [post] a [element 5] | semmle.label | [post] a [element 5] | | array_flow.rb:1561:5:1561:5 | [post] a [element 5] | semmle.label | [post] a [element 5] | | array_flow.rb:1561:5:1561:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1561:5:1561:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1561:21:1561:33 | call to source | semmle.label | call to source | | array_flow.rb:1561:21:1561:33 | call to source | semmle.label | call to source | | array_flow.rb:1564:10:1564:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1564:10:1564:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1564:10:1564:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1564:10:1564:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1567:10:1567:10 | a [element 5] | semmle.label | a [element 5] | -| array_flow.rb:1567:10:1567:10 | a [element 5] | semmle.label | a [element 5] | -| array_flow.rb:1567:10:1567:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1567:10:1567:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1571:5:1571:5 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1571:5:1571:5 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1571:13:1571:25 | call to source | semmle.label | call to source | -| array_flow.rb:1571:13:1571:25 | call to source | semmle.label | call to source | -| array_flow.rb:1571:31:1571:43 | call to source | semmle.label | call to source | | array_flow.rb:1571:31:1571:43 | call to source | semmle.label | call to source | | array_flow.rb:1573:5:1573:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1573:5:1573:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1573:5:1573:5 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1573:5:1573:5 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1573:9:1573:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1573:9:1573:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1573:9:1573:31 | call to values_at [element 1] | semmle.label | call to values_at [element 1] | | array_flow.rb:1573:9:1573:31 | call to values_at [element 1] | semmle.label | call to values_at [element 1] | | array_flow.rb:1573:9:1573:31 | call to values_at [element 3] | semmle.label | call to values_at [element 3] | -| array_flow.rb:1573:9:1573:31 | call to values_at [element 3] | semmle.label | call to values_at [element 3] | -| array_flow.rb:1575:10:1575:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1575:10:1575:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1575:10:1575:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1575:10:1575:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1577:10:1577:10 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1577:10:1577:10 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1577:10:1577:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1577:10:1577:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1579:5:1579:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1579:5:1579:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1579:9:1579:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1579:9:1579:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1579:9:1579:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1579:9:1579:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1579:9:1579:25 | call to values_at [element] | semmle.label | call to values_at [element] | -| array_flow.rb:1579:9:1579:25 | call to values_at [element] | semmle.label | call to values_at [element] | -| array_flow.rb:1580:10:1580:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1580:10:1580:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1580:10:1580:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1580:10:1580:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1581:10:1581:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1581:10:1581:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1581:10:1581:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1581:10:1581:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1583:5:1583:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1583:5:1583:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1583:9:1583:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1583:9:1583:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1583:9:1583:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1583:9:1583:9 | a [element 3] | semmle.label | a [element 3] | | array_flow.rb:1583:9:1583:26 | call to values_at [element] | semmle.label | call to values_at [element] | -| array_flow.rb:1583:9:1583:26 | call to values_at [element] | semmle.label | call to values_at [element] | -| array_flow.rb:1584:10:1584:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1584:10:1584:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1584:10:1584:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1584:10:1584:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1585:10:1585:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1585:10:1585:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1585:10:1585:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1585:10:1585:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1587:5:1587:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1587:5:1587:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1587:5:1587:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1587:5:1587:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1587:9:1587:9 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:1587:9:1587:9 | a [element 1] | semmle.label | a [element 1] | | array_flow.rb:1587:9:1587:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1587:9:1587:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1587:9:1587:28 | call to values_at [element 1] | semmle.label | call to values_at [element 1] | | array_flow.rb:1587:9:1587:28 | call to values_at [element 1] | semmle.label | call to values_at [element 1] | | array_flow.rb:1587:9:1587:28 | call to values_at [element] | semmle.label | call to values_at [element] | -| array_flow.rb:1587:9:1587:28 | call to values_at [element] | semmle.label | call to values_at [element] | -| array_flow.rb:1588:10:1588:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1588:10:1588:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1588:10:1588:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1588:10:1588:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1589:10:1589:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1589:10:1589:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1589:10:1589:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1589:10:1589:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1589:10:1589:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1589:10:1589:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1590:10:1590:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1590:10:1590:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1590:10:1590:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1590:10:1590:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1591:10:1591:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1591:10:1591:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1591:10:1591:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1591:10:1591:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1595:5:1595:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1595:5:1595:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1595:16:1595:28 | call to source | semmle.label | call to source | | array_flow.rb:1595:16:1595:28 | call to source | semmle.label | call to source | | array_flow.rb:1596:5:1596:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1596:5:1596:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1596:13:1596:25 | call to source | semmle.label | call to source | | array_flow.rb:1596:13:1596:25 | call to source | semmle.label | call to source | | array_flow.rb:1597:5:1597:5 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:1597:5:1597:5 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:1597:10:1597:22 | call to source | semmle.label | call to source | | array_flow.rb:1597:10:1597:22 | call to source | semmle.label | call to source | | array_flow.rb:1598:5:1598:5 | d [element 0, element 2] | semmle.label | d [element 0, element 2] | -| array_flow.rb:1598:5:1598:5 | d [element 0, element 2] | semmle.label | d [element 0, element 2] | -| array_flow.rb:1598:5:1598:5 | d [element 1, element 1] | semmle.label | d [element 1, element 1] | | array_flow.rb:1598:5:1598:5 | d [element 1, element 1] | semmle.label | d [element 1, element 1] | | array_flow.rb:1598:5:1598:5 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | -| array_flow.rb:1598:5:1598:5 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | -| array_flow.rb:1598:9:1598:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1598:9:1598:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1598:9:1598:19 | call to zip [element 0, element 2] | semmle.label | call to zip [element 0, element 2] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 0, element 2] | semmle.label | call to zip [element 0, element 2] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 1, element 1] | semmle.label | call to zip [element 1, element 1] | | array_flow.rb:1598:9:1598:19 | call to zip [element 1, element 1] | semmle.label | call to zip [element 1, element 1] | | array_flow.rb:1598:9:1598:19 | call to zip [element 2, element 0] | semmle.label | call to zip [element 2, element 0] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 2, element 0] | semmle.label | call to zip [element 2, element 0] | -| array_flow.rb:1598:15:1598:15 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1598:15:1598:15 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1598:18:1598:18 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:1598:18:1598:18 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:1600:10:1600:10 | d [element 0, element 2] | semmle.label | d [element 0, element 2] | | array_flow.rb:1600:10:1600:10 | d [element 0, element 2] | semmle.label | d [element 0, element 2] | | array_flow.rb:1600:10:1600:13 | ...[...] [element 2] | semmle.label | ...[...] [element 2] | -| array_flow.rb:1600:10:1600:13 | ...[...] [element 2] | semmle.label | ...[...] [element 2] | -| array_flow.rb:1600:10:1600:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1600:10:1600:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1601:10:1601:10 | d [element 1, element 1] | semmle.label | d [element 1, element 1] | -| array_flow.rb:1601:10:1601:10 | d [element 1, element 1] | semmle.label | d [element 1, element 1] | -| array_flow.rb:1601:10:1601:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:1601:10:1601:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:1601:10:1601:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1601:10:1601:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1602:10:1602:10 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | | array_flow.rb:1602:10:1602:10 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | | array_flow.rb:1602:10:1602:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| array_flow.rb:1602:10:1602:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| array_flow.rb:1602:10:1602:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1602:10:1602:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1603:5:1603:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1603:5:1603:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1603:11:1603:11 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1603:11:1603:11 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1603:14:1603:14 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:1603:14:1603:14 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:1603:21:1603:21 | x [element 0] | semmle.label | x [element 0] | | array_flow.rb:1603:21:1603:21 | x [element 0] | semmle.label | x [element 0] | | array_flow.rb:1603:21:1603:21 | x [element 1] | semmle.label | x [element 1] | -| array_flow.rb:1603:21:1603:21 | x [element 1] | semmle.label | x [element 1] | -| array_flow.rb:1603:21:1603:21 | x [element 2] | semmle.label | x [element 2] | | array_flow.rb:1603:21:1603:21 | x [element 2] | semmle.label | x [element 2] | | array_flow.rb:1604:14:1604:14 | x [element 0] | semmle.label | x [element 0] | -| array_flow.rb:1604:14:1604:14 | x [element 0] | semmle.label | x [element 0] | -| array_flow.rb:1604:14:1604:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1604:14:1604:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1605:14:1605:14 | x [element 1] | semmle.label | x [element 1] | -| array_flow.rb:1605:14:1605:14 | x [element 1] | semmle.label | x [element 1] | -| array_flow.rb:1605:14:1605:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1605:14:1605:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1606:14:1606:14 | x [element 2] | semmle.label | x [element 2] | -| array_flow.rb:1606:14:1606:14 | x [element 2] | semmle.label | x [element 2] | -| array_flow.rb:1606:14:1606:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1606:14:1606:17 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1611:5:1611:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1611:5:1611:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1611:16:1611:28 | call to source | semmle.label | call to source | | array_flow.rb:1611:16:1611:28 | call to source | semmle.label | call to source | | array_flow.rb:1612:5:1612:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1612:5:1612:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1612:13:1612:25 | call to source | semmle.label | call to source | | array_flow.rb:1612:13:1612:25 | call to source | semmle.label | call to source | | array_flow.rb:1613:5:1613:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:1613:5:1613:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:1613:9:1613:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1613:9:1613:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1613:9:1613:13 | ... \| ... [element] | semmle.label | ... \| ... [element] | -| array_flow.rb:1613:9:1613:13 | ... \| ... [element] | semmle.label | ... \| ... [element] | -| array_flow.rb:1613:13:1613:13 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1613:13:1613:13 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1614:10:1614:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1614:10:1614:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1614:10:1614:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1614:10:1614:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1615:10:1615:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1615:10:1615:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1615:10:1615:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1615:10:1615:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1616:10:1616:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1616:10:1616:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1616:10:1616:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1616:10:1616:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | semmle.label | [post] a [element, element 0] | -| array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | semmle.label | [post] a [element, element 0] | -| array_flow.rb:1621:5:1621:8 | [post] ...[...] [element 0] | semmle.label | [post] ...[...] [element 0] | | array_flow.rb:1621:5:1621:8 | [post] ...[...] [element 0] | semmle.label | [post] ...[...] [element 0] | | array_flow.rb:1621:15:1621:27 | call to source | semmle.label | call to source | -| array_flow.rb:1621:15:1621:27 | call to source | semmle.label | call to source | -| array_flow.rb:1622:10:1622:10 | a [element, element 0] | semmle.label | a [element, element 0] | | array_flow.rb:1622:10:1622:10 | a [element, element 0] | semmle.label | a [element, element 0] | | array_flow.rb:1622:10:1622:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| array_flow.rb:1622:10:1622:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| array_flow.rb:1622:10:1622:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1622:10:1622:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1624:5:1624:5 | [post] a [element 1, element 0] | semmle.label | [post] a [element 1, element 0] | -| array_flow.rb:1624:5:1624:5 | [post] a [element 1, element 0] | semmle.label | [post] a [element 1, element 0] | -| array_flow.rb:1624:5:1624:8 | [post] ...[...] [element 0] | semmle.label | [post] ...[...] [element 0] | | array_flow.rb:1624:5:1624:8 | [post] ...[...] [element 0] | semmle.label | [post] ...[...] [element 0] | | array_flow.rb:1624:15:1624:27 | call to source | semmle.label | call to source | -| array_flow.rb:1624:15:1624:27 | call to source | semmle.label | call to source | -| array_flow.rb:1625:10:1625:10 | a [element 1, element 0] | semmle.label | a [element 1, element 0] | | array_flow.rb:1625:10:1625:10 | a [element 1, element 0] | semmle.label | a [element 1, element 0] | | array_flow.rb:1625:10:1625:10 | a [element, element 0] | semmle.label | a [element, element 0] | -| array_flow.rb:1625:10:1625:10 | a [element, element 0] | semmle.label | a [element, element 0] | -| array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | | array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | | array_flow.rb:1625:10:1625:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1625:10:1625:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1626:10:1626:10 | a [element, element 0] | semmle.label | a [element, element 0] | | array_flow.rb:1626:10:1626:10 | a [element, element 0] | semmle.label | a [element, element 0] | | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| array_flow.rb:1626:10:1626:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1626:10:1626:16 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1631:5:1631:5 | [post] a [element 0] | semmle.label | [post] a [element 0] | -| array_flow.rb:1631:5:1631:5 | [post] a [element 0] | semmle.label | [post] a [element 0] | -| array_flow.rb:1631:12:1631:24 | call to source | semmle.label | call to source | | array_flow.rb:1631:12:1631:24 | call to source | semmle.label | call to source | | array_flow.rb:1633:5:1633:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1633:5:1633:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1633:16:1633:28 | call to source | semmle.label | call to source | | array_flow.rb:1633:16:1633:28 | call to source | semmle.label | call to source | | array_flow.rb:1635:5:1635:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1635:5:1635:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1635:14:1635:26 | call to source | semmle.label | call to source | | array_flow.rb:1635:14:1635:26 | call to source | semmle.label | call to source | | array_flow.rb:1637:5:1637:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1637:5:1637:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1637:16:1637:28 | call to source | semmle.label | call to source | | array_flow.rb:1637:16:1637:28 | call to source | semmle.label | call to source | | array_flow.rb:1638:10:1638:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1638:10:1638:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1638:10:1638:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1638:10:1638:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1640:10:1640:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1640:10:1640:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1640:10:1640:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1640:10:1640:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1640:10:1640:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1640:10:1640:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1642:10:1642:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1642:10:1642:10 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:1642:10:1642:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1642:10:1642:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1642:10:1642:15 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1642:10:1642:15 | ...[...] | semmle.label | ...[...] | subpaths #select diff --git a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.ql b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.ql index dfd6242a414..e02827eaf8d 100644 --- a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.ql +++ b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.ql @@ -5,7 +5,7 @@ import codeql.ruby.AST import TestUtilities.InlineFlowTest import DefaultFlowTest -import PathGraph +import ValueFlow::PathGraph from ValueFlow::PathNode source, ValueFlow::PathNode sink where ValueFlow::flowPath(source, sink) diff --git a/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected index 5c5b0705be9..4563c900177 100644 --- a/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected +++ b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected @@ -1,335 +1,170 @@ testFailures edges | call_sensitivity.rb:9:7:9:13 | call to taint | call_sensitivity.rb:9:6:9:14 | ( ... ) | -| call_sensitivity.rb:9:7:9:13 | call to taint | call_sensitivity.rb:9:6:9:14 | ( ... ) | -| call_sensitivity.rb:11:13:11:13 | x | call_sensitivity.rb:12:11:12:11 | x | | call_sensitivity.rb:11:13:11:13 | x | call_sensitivity.rb:12:11:12:11 | x | | call_sensitivity.rb:12:11:12:11 | x | call_sensitivity.rb:19:22:19:22 | x | -| call_sensitivity.rb:12:11:12:11 | x | call_sensitivity.rb:19:22:19:22 | x | -| call_sensitivity.rb:19:9:19:17 | ( ... ) | call_sensitivity.rb:11:13:11:13 | x | | call_sensitivity.rb:19:9:19:17 | ( ... ) | call_sensitivity.rb:11:13:11:13 | x | | call_sensitivity.rb:19:10:19:16 | call to taint | call_sensitivity.rb:19:9:19:17 | ( ... ) | -| call_sensitivity.rb:19:10:19:16 | call to taint | call_sensitivity.rb:19:9:19:17 | ( ... ) | -| call_sensitivity.rb:19:22:19:22 | x | call_sensitivity.rb:19:30:19:30 | x | | call_sensitivity.rb:19:22:19:22 | x | call_sensitivity.rb:19:30:19:30 | x | | call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | | call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | | call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | -| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | -| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | -| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | -| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:31:17:31:17 | x | | call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:31:17:31:17 | x | | call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:40:23:40:23 | x | -| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:40:23:40:23 | x | -| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:43:24:43:24 | x | | call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:43:24:43:24 | x | | call_sensitivity.rb:31:17:31:17 | x | call_sensitivity.rb:31:27:31:27 | x | -| call_sensitivity.rb:31:17:31:17 | x | call_sensitivity.rb:31:27:31:27 | x | -| call_sensitivity.rb:32:25:32:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x | | call_sensitivity.rb:32:25:32:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x | | call_sensitivity.rb:40:23:40:23 | x | call_sensitivity.rb:40:31:40:31 | x | -| call_sensitivity.rb:40:23:40:23 | x | call_sensitivity.rb:40:31:40:31 | x | -| call_sensitivity.rb:41:25:41:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x | | call_sensitivity.rb:41:25:41:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x | | call_sensitivity.rb:43:24:43:24 | x | call_sensitivity.rb:43:32:43:32 | x | -| call_sensitivity.rb:43:24:43:24 | x | call_sensitivity.rb:43:32:43:32 | x | -| call_sensitivity.rb:44:26:44:33 | call to taint | call_sensitivity.rb:21:27:21:27 | x | | call_sensitivity.rb:44:26:44:33 | call to taint | call_sensitivity.rb:21:27:21:27 | x | | call_sensitivity.rb:50:15:50:15 | x | call_sensitivity.rb:51:10:51:10 | x | -| call_sensitivity.rb:50:15:50:15 | x | call_sensitivity.rb:51:10:51:10 | x | | call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x | | call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x | -| call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x | -| call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x | -| call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:58:20:58:20 | x | call_sensitivity.rb:59:18:59:18 | x | -| call_sensitivity.rb:58:20:58:20 | x | call_sensitivity.rb:59:18:59:18 | x | -| call_sensitivity.rb:59:18:59:18 | x | call_sensitivity.rb:54:15:54:15 | x | | call_sensitivity.rb:59:18:59:18 | x | call_sensitivity.rb:54:15:54:15 | x | | call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y | | call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y | -| call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y | -| call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y | -| call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:66:20:66:20 | x | call_sensitivity.rb:67:24:67:24 | x | -| call_sensitivity.rb:66:20:66:20 | x | call_sensitivity.rb:67:24:67:24 | x | -| call_sensitivity.rb:67:24:67:24 | x | call_sensitivity.rb:62:18:62:18 | y | | call_sensitivity.rb:67:24:67:24 | x | call_sensitivity.rb:62:18:62:18 | y | | call_sensitivity.rb:70:30:70:30 | x | call_sensitivity.rb:71:10:71:10 | x | -| call_sensitivity.rb:70:30:70:30 | x | call_sensitivity.rb:71:10:71:10 | x | -| call_sensitivity.rb:74:18:74:18 | y | call_sensitivity.rb:76:17:76:17 | y | | call_sensitivity.rb:74:18:74:18 | y | call_sensitivity.rb:76:17:76:17 | y | | call_sensitivity.rb:76:17:76:17 | y | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:76:17:76:17 | y | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:80:15:80:15 | x | call_sensitivity.rb:81:18:81:18 | x | | call_sensitivity.rb:80:15:80:15 | x | call_sensitivity.rb:81:18:81:18 | x | | call_sensitivity.rb:81:18:81:18 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:81:18:81:18 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:85:18:85:27 | ( ... ) | call_sensitivity.rb:80:15:80:15 | x | | call_sensitivity.rb:85:18:85:27 | ( ... ) | call_sensitivity.rb:80:15:80:15 | x | | call_sensitivity.rb:85:19:85:26 | call to taint | call_sensitivity.rb:85:18:85:27 | ( ... ) | -| call_sensitivity.rb:85:19:85:26 | call to taint | call_sensitivity.rb:85:18:85:27 | ( ... ) | | call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x | | call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x | -| call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x | -| call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x | -| call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x | -| call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x | | call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x | | call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x | | call_sensitivity.rb:92:35:92:35 | x | call_sensitivity.rb:93:28:93:28 | x | -| call_sensitivity.rb:92:35:92:35 | x | call_sensitivity.rb:93:28:93:28 | x | -| call_sensitivity.rb:93:28:93:28 | x | call_sensitivity.rb:88:30:88:30 | x | | call_sensitivity.rb:93:28:93:28 | x | call_sensitivity.rb:88:30:88:30 | x | | call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y | | call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y | -| call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y | -| call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y | -| call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x | -| call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x | | call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x | | call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x | | call_sensitivity.rb:100:35:100:35 | x | call_sensitivity.rb:101:34:101:34 | x | -| call_sensitivity.rb:100:35:100:35 | x | call_sensitivity.rb:101:34:101:34 | x | -| call_sensitivity.rb:101:34:101:34 | x | call_sensitivity.rb:96:33:96:33 | y | | call_sensitivity.rb:101:34:101:34 | x | call_sensitivity.rb:96:33:96:33 | y | | call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | | call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | | call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | | call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | | call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | | call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | | call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | -| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:109:21:109:21 | x | call_sensitivity.rb:110:9:110:9 | x | -| call_sensitivity.rb:109:21:109:21 | x | call_sensitivity.rb:110:9:110:9 | x | -| call_sensitivity.rb:110:9:110:9 | x | call_sensitivity.rb:104:18:104:18 | x | | call_sensitivity.rb:110:9:110:9 | x | call_sensitivity.rb:104:18:104:18 | x | | call_sensitivity.rb:114:11:114:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x | -| call_sensitivity.rb:114:11:114:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x | -| call_sensitivity.rb:114:12:114:19 | call to taint | call_sensitivity.rb:114:11:114:20 | ( ... ) | | call_sensitivity.rb:114:12:114:19 | call to taint | call_sensitivity.rb:114:11:114:20 | ( ... ) | | call_sensitivity.rb:115:11:115:18 | call to taint | call_sensitivity.rb:54:15:54:15 | x | -| call_sensitivity.rb:115:11:115:18 | call to taint | call_sensitivity.rb:54:15:54:15 | x | -| call_sensitivity.rb:116:16:116:23 | call to taint | call_sensitivity.rb:58:20:58:20 | x | | call_sensitivity.rb:116:16:116:23 | call to taint | call_sensitivity.rb:58:20:58:20 | x | | call_sensitivity.rb:117:14:117:22 | call to taint | call_sensitivity.rb:62:18:62:18 | y | -| call_sensitivity.rb:117:14:117:22 | call to taint | call_sensitivity.rb:62:18:62:18 | y | -| call_sensitivity.rb:118:16:118:24 | call to taint | call_sensitivity.rb:66:20:66:20 | x | | call_sensitivity.rb:118:16:118:24 | call to taint | call_sensitivity.rb:66:20:66:20 | x | | call_sensitivity.rb:119:14:119:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y | -| call_sensitivity.rb:119:14:119:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y | -| call_sensitivity.rb:121:21:121:28 | call to taint | call_sensitivity.rb:88:30:88:30 | x | | call_sensitivity.rb:121:21:121:28 | call to taint | call_sensitivity.rb:88:30:88:30 | x | | call_sensitivity.rb:122:26:122:33 | call to taint | call_sensitivity.rb:92:35:92:35 | x | -| call_sensitivity.rb:122:26:122:33 | call to taint | call_sensitivity.rb:92:35:92:35 | x | -| call_sensitivity.rb:123:24:123:32 | call to taint | call_sensitivity.rb:96:33:96:33 | y | | call_sensitivity.rb:123:24:123:32 | call to taint | call_sensitivity.rb:96:33:96:33 | y | | call_sensitivity.rb:124:26:124:33 | call to taint | call_sensitivity.rb:100:35:100:35 | x | -| call_sensitivity.rb:124:26:124:33 | call to taint | call_sensitivity.rb:100:35:100:35 | x | -| call_sensitivity.rb:125:12:125:19 | call to taint | call_sensitivity.rb:109:21:109:21 | x | | call_sensitivity.rb:125:12:125:19 | call to taint | call_sensitivity.rb:109:21:109:21 | x | | call_sensitivity.rb:166:14:166:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y | -| call_sensitivity.rb:166:14:166:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y | -| call_sensitivity.rb:174:19:174:19 | x | call_sensitivity.rb:175:12:175:12 | x | | call_sensitivity.rb:174:19:174:19 | x | call_sensitivity.rb:175:12:175:12 | x | | call_sensitivity.rb:175:12:175:12 | x | call_sensitivity.rb:104:18:104:18 | x | -| call_sensitivity.rb:175:12:175:12 | x | call_sensitivity.rb:104:18:104:18 | x | -| call_sensitivity.rb:178:11:178:19 | call to taint | call_sensitivity.rb:174:19:174:19 | x | | call_sensitivity.rb:178:11:178:19 | call to taint | call_sensitivity.rb:174:19:174:19 | x | | call_sensitivity.rb:187:11:187:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x | -| call_sensitivity.rb:187:11:187:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x | -| call_sensitivity.rb:187:12:187:19 | call to taint | call_sensitivity.rb:187:11:187:20 | ( ... ) | | call_sensitivity.rb:187:12:187:19 | call to taint | call_sensitivity.rb:187:11:187:20 | ( ... ) | nodes | call_sensitivity.rb:9:6:9:14 | ( ... ) | semmle.label | ( ... ) | -| call_sensitivity.rb:9:6:9:14 | ( ... ) | semmle.label | ( ... ) | -| call_sensitivity.rb:9:7:9:13 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:9:7:9:13 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:11:13:11:13 | x | semmle.label | x | -| call_sensitivity.rb:11:13:11:13 | x | semmle.label | x | -| call_sensitivity.rb:12:11:12:11 | x | semmle.label | x | | call_sensitivity.rb:12:11:12:11 | x | semmle.label | x | | call_sensitivity.rb:19:9:19:17 | ( ... ) | semmle.label | ( ... ) | -| call_sensitivity.rb:19:9:19:17 | ( ... ) | semmle.label | ( ... ) | -| call_sensitivity.rb:19:10:19:16 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:19:10:19:16 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:19:22:19:22 | x | semmle.label | x | -| call_sensitivity.rb:19:22:19:22 | x | semmle.label | x | -| call_sensitivity.rb:19:30:19:30 | x | semmle.label | x | | call_sensitivity.rb:19:30:19:30 | x | semmle.label | x | | call_sensitivity.rb:21:27:21:27 | x | semmle.label | x | | call_sensitivity.rb:21:27:21:27 | x | semmle.label | x | | call_sensitivity.rb:21:27:21:27 | x | semmle.label | x | -| call_sensitivity.rb:21:27:21:27 | x | semmle.label | x | -| call_sensitivity.rb:21:27:21:27 | x | semmle.label | x | -| call_sensitivity.rb:21:27:21:27 | x | semmle.label | x | -| call_sensitivity.rb:22:17:22:17 | x | semmle.label | x | -| call_sensitivity.rb:22:17:22:17 | x | semmle.label | x | -| call_sensitivity.rb:22:17:22:17 | x | semmle.label | x | | call_sensitivity.rb:22:17:22:17 | x | semmle.label | x | | call_sensitivity.rb:22:17:22:17 | x | semmle.label | x | | call_sensitivity.rb:22:17:22:17 | x | semmle.label | x | | call_sensitivity.rb:31:17:31:17 | x | semmle.label | x | -| call_sensitivity.rb:31:17:31:17 | x | semmle.label | x | -| call_sensitivity.rb:31:27:31:27 | x | semmle.label | x | | call_sensitivity.rb:31:27:31:27 | x | semmle.label | x | | call_sensitivity.rb:32:25:32:32 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:32:25:32:32 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:40:23:40:23 | x | semmle.label | x | | call_sensitivity.rb:40:23:40:23 | x | semmle.label | x | | call_sensitivity.rb:40:31:40:31 | x | semmle.label | x | -| call_sensitivity.rb:40:31:40:31 | x | semmle.label | x | -| call_sensitivity.rb:41:25:41:32 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:41:25:41:32 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:43:24:43:24 | x | semmle.label | x | -| call_sensitivity.rb:43:24:43:24 | x | semmle.label | x | -| call_sensitivity.rb:43:32:43:32 | x | semmle.label | x | | call_sensitivity.rb:43:32:43:32 | x | semmle.label | x | | call_sensitivity.rb:44:26:44:33 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:44:26:44:33 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:50:15:50:15 | x | semmle.label | x | | call_sensitivity.rb:50:15:50:15 | x | semmle.label | x | | call_sensitivity.rb:51:10:51:10 | x | semmle.label | x | -| call_sensitivity.rb:51:10:51:10 | x | semmle.label | x | | call_sensitivity.rb:54:15:54:15 | x | semmle.label | x | | call_sensitivity.rb:54:15:54:15 | x | semmle.label | x | -| call_sensitivity.rb:54:15:54:15 | x | semmle.label | x | -| call_sensitivity.rb:54:15:54:15 | x | semmle.label | x | -| call_sensitivity.rb:55:13:55:13 | x | semmle.label | x | -| call_sensitivity.rb:55:13:55:13 | x | semmle.label | x | | call_sensitivity.rb:55:13:55:13 | x | semmle.label | x | | call_sensitivity.rb:55:13:55:13 | x | semmle.label | x | | call_sensitivity.rb:58:20:58:20 | x | semmle.label | x | -| call_sensitivity.rb:58:20:58:20 | x | semmle.label | x | -| call_sensitivity.rb:59:18:59:18 | x | semmle.label | x | | call_sensitivity.rb:59:18:59:18 | x | semmle.label | x | | call_sensitivity.rb:62:18:62:18 | y | semmle.label | y | | call_sensitivity.rb:62:18:62:18 | y | semmle.label | y | -| call_sensitivity.rb:62:18:62:18 | y | semmle.label | y | -| call_sensitivity.rb:62:18:62:18 | y | semmle.label | y | -| call_sensitivity.rb:63:15:63:15 | y | semmle.label | y | -| call_sensitivity.rb:63:15:63:15 | y | semmle.label | y | | call_sensitivity.rb:63:15:63:15 | y | semmle.label | y | | call_sensitivity.rb:63:15:63:15 | y | semmle.label | y | | call_sensitivity.rb:66:20:66:20 | x | semmle.label | x | -| call_sensitivity.rb:66:20:66:20 | x | semmle.label | x | -| call_sensitivity.rb:67:24:67:24 | x | semmle.label | x | | call_sensitivity.rb:67:24:67:24 | x | semmle.label | x | | call_sensitivity.rb:70:30:70:30 | x | semmle.label | x | -| call_sensitivity.rb:70:30:70:30 | x | semmle.label | x | -| call_sensitivity.rb:71:10:71:10 | x | semmle.label | x | | call_sensitivity.rb:71:10:71:10 | x | semmle.label | x | | call_sensitivity.rb:74:18:74:18 | y | semmle.label | y | -| call_sensitivity.rb:74:18:74:18 | y | semmle.label | y | -| call_sensitivity.rb:76:17:76:17 | y | semmle.label | y | | call_sensitivity.rb:76:17:76:17 | y | semmle.label | y | | call_sensitivity.rb:80:15:80:15 | x | semmle.label | x | -| call_sensitivity.rb:80:15:80:15 | x | semmle.label | x | -| call_sensitivity.rb:81:18:81:18 | x | semmle.label | x | | call_sensitivity.rb:81:18:81:18 | x | semmle.label | x | | call_sensitivity.rb:85:18:85:27 | ( ... ) | semmle.label | ( ... ) | -| call_sensitivity.rb:85:18:85:27 | ( ... ) | semmle.label | ( ... ) | -| call_sensitivity.rb:85:19:85:26 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:85:19:85:26 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:88:30:88:30 | x | semmle.label | x | | call_sensitivity.rb:88:30:88:30 | x | semmle.label | x | -| call_sensitivity.rb:88:30:88:30 | x | semmle.label | x | -| call_sensitivity.rb:88:30:88:30 | x | semmle.label | x | -| call_sensitivity.rb:89:23:89:23 | x | semmle.label | x | -| call_sensitivity.rb:89:23:89:23 | x | semmle.label | x | | call_sensitivity.rb:89:23:89:23 | x | semmle.label | x | | call_sensitivity.rb:89:23:89:23 | x | semmle.label | x | | call_sensitivity.rb:92:35:92:35 | x | semmle.label | x | -| call_sensitivity.rb:92:35:92:35 | x | semmle.label | x | -| call_sensitivity.rb:93:28:93:28 | x | semmle.label | x | | call_sensitivity.rb:93:28:93:28 | x | semmle.label | x | | call_sensitivity.rb:96:33:96:33 | y | semmle.label | y | | call_sensitivity.rb:96:33:96:33 | y | semmle.label | y | -| call_sensitivity.rb:96:33:96:33 | y | semmle.label | y | -| call_sensitivity.rb:96:33:96:33 | y | semmle.label | y | -| call_sensitivity.rb:97:25:97:25 | y | semmle.label | y | -| call_sensitivity.rb:97:25:97:25 | y | semmle.label | y | | call_sensitivity.rb:97:25:97:25 | y | semmle.label | y | | call_sensitivity.rb:97:25:97:25 | y | semmle.label | y | | call_sensitivity.rb:100:35:100:35 | x | semmle.label | x | -| call_sensitivity.rb:100:35:100:35 | x | semmle.label | x | | call_sensitivity.rb:101:34:101:34 | x | semmle.label | x | -| call_sensitivity.rb:101:34:101:34 | x | semmle.label | x | -| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x | -| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x | -| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x | -| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x | | call_sensitivity.rb:104:18:104:18 | x | semmle.label | x | | call_sensitivity.rb:104:18:104:18 | x | semmle.label | x | | call_sensitivity.rb:104:18:104:18 | x | semmle.label | x | | call_sensitivity.rb:104:18:104:18 | x | semmle.label | x | | call_sensitivity.rb:105:10:105:10 | x | semmle.label | x | -| call_sensitivity.rb:105:10:105:10 | x | semmle.label | x | -| call_sensitivity.rb:106:13:106:13 | x | semmle.label | x | -| call_sensitivity.rb:106:13:106:13 | x | semmle.label | x | -| call_sensitivity.rb:106:13:106:13 | x | semmle.label | x | | call_sensitivity.rb:106:13:106:13 | x | semmle.label | x | | call_sensitivity.rb:106:13:106:13 | x | semmle.label | x | | call_sensitivity.rb:106:13:106:13 | x | semmle.label | x | | call_sensitivity.rb:109:21:109:21 | x | semmle.label | x | -| call_sensitivity.rb:109:21:109:21 | x | semmle.label | x | -| call_sensitivity.rb:110:9:110:9 | x | semmle.label | x | | call_sensitivity.rb:110:9:110:9 | x | semmle.label | x | | call_sensitivity.rb:114:11:114:20 | ( ... ) | semmle.label | ( ... ) | -| call_sensitivity.rb:114:11:114:20 | ( ... ) | semmle.label | ( ... ) | -| call_sensitivity.rb:114:12:114:19 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:114:12:114:19 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:115:11:115:18 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:115:11:115:18 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:116:16:116:23 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:116:16:116:23 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:117:14:117:22 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:117:14:117:22 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:118:16:118:24 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:118:16:118:24 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:119:14:119:22 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:119:14:119:22 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:121:21:121:28 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:121:21:121:28 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:122:26:122:33 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:122:26:122:33 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:123:24:123:32 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:123:24:123:32 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:124:26:124:33 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:124:26:124:33 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:125:12:125:19 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:125:12:125:19 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:166:14:166:22 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:166:14:166:22 | call to taint | semmle.label | call to taint | -| call_sensitivity.rb:174:19:174:19 | x | semmle.label | x | | call_sensitivity.rb:174:19:174:19 | x | semmle.label | x | | call_sensitivity.rb:175:12:175:12 | x | semmle.label | x | -| call_sensitivity.rb:175:12:175:12 | x | semmle.label | x | -| call_sensitivity.rb:178:11:178:19 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:178:11:178:19 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:187:11:187:20 | ( ... ) | semmle.label | ( ... ) | -| call_sensitivity.rb:187:11:187:20 | ( ... ) | semmle.label | ( ... ) | -| call_sensitivity.rb:187:12:187:19 | call to taint | semmle.label | call to taint | | call_sensitivity.rb:187:12:187:19 | call to taint | semmle.label | call to taint | subpaths #select diff --git a/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.ql b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.ql index 08c0fa8fc45..06dcd9bef7f 100644 --- a/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.ql +++ b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.ql @@ -6,7 +6,7 @@ import codeql.ruby.AST import codeql.ruby.DataFlow import TestUtilities.InlineFlowTest import DefaultFlowTest -import PathGraph +import TaintFlow::PathGraph import codeql.ruby.dataflow.internal.DataFlowDispatch as DataFlowDispatch query predicate mayBenefitFromCallContext = DataFlowDispatch::mayBenefitFromCallContext/2; diff --git a/ruby/ql/test/library-tests/dataflow/global/Flow.expected b/ruby/ql/test/library-tests/dataflow/global/Flow.expected index 19bb4c65b7a..85daf1fbf61 100644 --- a/ruby/ql/test/library-tests/dataflow/global/Flow.expected +++ b/ruby/ql/test/library-tests/dataflow/global/Flow.expected @@ -1,88 +1,47 @@ testFailures edges | captured_variables.rb:1:24:1:24 | x | captured_variables.rb:2:20:2:20 | x | -| captured_variables.rb:1:24:1:24 | x | captured_variables.rb:2:20:2:20 | x | -| captured_variables.rb:5:20:5:30 | call to source | captured_variables.rb:1:24:1:24 | x | | captured_variables.rb:5:20:5:30 | call to source | captured_variables.rb:1:24:1:24 | x | | captured_variables.rb:21:33:21:33 | x | captured_variables.rb:23:14:23:14 | x | -| captured_variables.rb:21:33:21:33 | x | captured_variables.rb:23:14:23:14 | x | -| captured_variables.rb:27:29:27:39 | call to source | captured_variables.rb:21:33:21:33 | x | | captured_variables.rb:27:29:27:39 | call to source | captured_variables.rb:21:33:21:33 | x | | captured_variables.rb:32:31:32:31 | x | captured_variables.rb:34:14:34:14 | x | -| captured_variables.rb:32:31:32:31 | x | captured_variables.rb:34:14:34:14 | x | -| captured_variables.rb:38:27:38:37 | call to source | captured_variables.rb:32:31:32:31 | x | | captured_variables.rb:38:27:38:37 | call to source | captured_variables.rb:32:31:32:31 | x | | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x | -| instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x | -| instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | | instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:16:14:21 | self [@field] | -| instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:16:14:21 | self [@field] | | instance_variables.rb:14:16:14:21 | @field | instance_variables.rb:14:9:14:21 | return | -| instance_variables.rb:14:16:14:21 | @field | instance_variables.rb:14:9:14:21 | return | -| instance_variables.rb:14:16:14:21 | self [@field] | instance_variables.rb:14:16:14:21 | @field | | instance_variables.rb:14:16:14:21 | self [@field] | instance_variables.rb:14:16:14:21 | @field | | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] | | instance_variables.rb:17:9:17:14 | [post] self [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] | | instance_variables.rb:19:5:19:8 | [post] self [@foo] | instance_variables.rb:20:10:20:13 | self [@foo] | -| instance_variables.rb:19:5:19:8 | [post] self [@foo] | instance_variables.rb:20:10:20:13 | self [@foo] | -| instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:19:5:19:8 | [post] self [@foo] | | instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:19:5:19:8 | [post] self [@foo] | | instance_variables.rb:20:10:20:13 | self [@foo] | instance_variables.rb:20:10:20:13 | @foo | -| instance_variables.rb:20:10:20:13 | self [@foo] | instance_variables.rb:20:10:20:13 | @foo | -| instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:18:23:22 | field | | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:18:23:22 | field | | instance_variables.rb:23:18:23:22 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | -| instance_variables.rb:23:18:23:22 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | -| instance_variables.rb:24:9:24:17 | call to taint | instance_variables.rb:28:9:28:25 | call to initialize | | instance_variables.rb:24:9:24:17 | call to taint | instance_variables.rb:28:9:28:25 | call to initialize | | instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:20:28:24 | field | -| instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:20:28:24 | field | -| instance_variables.rb:28:9:28:25 | call to initialize | instance_variables.rb:119:6:119:37 | call to call_initialize | | instance_variables.rb:28:9:28:25 | call to initialize | instance_variables.rb:119:6:119:37 | call to call_initialize | | instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | -| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | -| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] | | instance_variables.rb:28:20:28:24 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] | | instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:13:33:13 | x | -| instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:13:33:13 | x | -| instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:48:20:48:20 | x | -| instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:48:20:48:20 | x | -| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:33:13:33:13 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | -| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | -| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:36:10:36:33 | call to get_field | -| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:36:10:36:33 | call to get_field | -| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:36:10:36:23 | call to new [@field] | -| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:36:10:36:23 | call to new [@field] | -| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:39:6:39:33 | call to get_field | -| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:39:6:39:33 | call to get_field | -| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | | instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | | instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:39:6:39:23 | call to bar [@field] | -| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:39:6:39:23 | call to bar [@field] | -| instance_variables.rb:43:9:43:17 | call to taint | instance_variables.rb:121:7:121:24 | call to new | | instance_variables.rb:43:9:43:17 | call to taint | instance_variables.rb:121:7:121:24 | call to new | | instance_variables.rb:48:20:48:20 | x | instance_variables.rb:49:14:49:14 | x | -| instance_variables.rb:48:20:48:20 | x | instance_variables.rb:49:14:49:14 | x | -| instance_variables.rb:54:1:54:3 | [post] foo [@field] | instance_variables.rb:55:6:55:8 | foo [@field] | | instance_variables.rb:54:1:54:3 | [post] foo [@field] | instance_variables.rb:55:6:55:8 | foo [@field] | | instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:54:1:54:3 | [post] foo [@field] | | instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:54:1:54:3 | [post] foo [@field] | | instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:55:6:55:18 | call to get_field | | instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:55:6:55:18 | call to get_field | | instance_variables.rb:58:1:58:3 | [post] bar [@field] | instance_variables.rb:59:6:59:8 | bar [@field] | | instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:10:19:10:19 | x | @@ -90,437 +49,226 @@ edges | instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | | instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:59:6:59:18 | call to inc_field | | instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | instance_variables.rb:63:6:63:9 | foo1 [@field] | -| instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | instance_variables.rb:63:6:63:9 | foo1 [@field] | -| instance_variables.rb:62:14:62:22 | call to taint | instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | | instance_variables.rb:62:14:62:22 | call to taint | instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | | instance_variables.rb:63:6:63:9 | foo1 [@field] | instance_variables.rb:63:6:63:15 | call to field | -| instance_variables.rb:63:6:63:9 | foo1 [@field] | instance_variables.rb:63:6:63:15 | call to field | -| instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | instance_variables.rb:67:6:67:9 | foo2 [@field] | | instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | instance_variables.rb:67:6:67:9 | foo2 [@field] | | instance_variables.rb:66:14:66:22 | call to taint | instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | -| instance_variables.rb:66:14:66:22 | call to taint | instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | -| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:67:6:67:19 | call to get_field | -| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:67:6:67:19 | call to get_field | -| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:71:6:71:9 | foo3 [@field] | | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:71:6:71:9 | foo3 [@field] | | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:83:6:83:9 | foo3 [@field] | -| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:83:6:83:9 | foo3 [@field] | -| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | -| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | -| instance_variables.rb:71:6:71:9 | foo3 [@field] | instance_variables.rb:71:6:71:15 | call to field | | instance_variables.rb:71:6:71:9 | foo3 [@field] | instance_variables.rb:71:6:71:15 | call to field | | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:79:6:79:9 | foo5 [@field] | -| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:79:6:79:9 | foo5 [@field] | -| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:84:6:84:9 | foo5 [@field] | | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:84:6:84:9 | foo5 [@field] | | instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | | instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | | instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:79:6:79:19 | call to get_field | | instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:79:6:79:19 | call to get_field | | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | instance_variables.rb:85:6:85:9 | foo6 [@field] | -| instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | instance_variables.rb:85:6:85:9 | foo6 [@field] | -| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | -| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | -| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:83:6:83:19 | call to get_field | -| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:83:6:83:19 | call to get_field | -| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:84:6:84:19 | call to get_field | -| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:84:6:84:19 | call to get_field | -| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:85:6:85:19 | call to get_field | -| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:85:6:85:19 | call to get_field | -| instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | instance_variables.rb:90:6:90:9 | foo7 [@field] | | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | instance_variables.rb:90:6:90:9 | foo7 [@field] | | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | instance_variables.rb:91:6:91:9 | foo8 [@field] | -| instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | instance_variables.rb:91:6:91:9 | foo8 [@field] | -| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | -| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | -| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | | instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | | instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:90:6:90:19 | call to get_field | | instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:90:6:90:19 | call to get_field | | instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:91:6:91:19 | call to get_field | | instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:91:6:91:19 | call to get_field | | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | instance_variables.rb:96:6:96:9 | foo9 [@field] | -| instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | instance_variables.rb:96:6:96:9 | foo9 [@field] | -| instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | instance_variables.rb:97:6:97:10 | foo10 [@field] | | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | instance_variables.rb:97:6:97:10 | foo10 [@field] | | instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | | instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | | instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | -| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | -| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:96:6:96:19 | call to get_field | -| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:96:6:96:19 | call to get_field | -| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:97:6:97:20 | call to get_field | -| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:97:6:97:20 | call to get_field | -| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | | instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | | instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | -| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | -| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | | instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | | instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:100:5:100:5 | [post] x [@field] | | instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:100:5:100:5 | [post] x [@field] | | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | instance_variables.rb:105:6:105:10 | foo11 [@field] | -| instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | instance_variables.rb:105:6:105:10 | foo11 [@field] | -| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:105:6:105:20 | call to get_field | -| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:105:6:105:20 | call to get_field | -| instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | instance_variables.rb:109:6:109:10 | foo12 [@field] | | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | instance_variables.rb:109:6:109:10 | foo12 [@field] | | instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:109:6:109:20 | call to get_field | | instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:109:6:109:20 | call to get_field | | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | instance_variables.rb:114:6:114:10 | foo13 [@field] | -| instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | instance_variables.rb:114:6:114:10 | foo13 [@field] | -| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:114:6:114:20 | call to get_field | -| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:114:6:114:20 | call to get_field | -| instance_variables.rb:116:1:116:5 | foo15 [@field] | instance_variables.rb:117:6:117:10 | foo15 [@field] | | instance_variables.rb:116:1:116:5 | foo15 [@field] | instance_variables.rb:117:6:117:10 | foo15 [@field] | | instance_variables.rb:116:9:116:26 | call to new [@field] | instance_variables.rb:116:1:116:5 | foo15 [@field] | -| instance_variables.rb:116:9:116:26 | call to new [@field] | instance_variables.rb:116:1:116:5 | foo15 [@field] | -| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:116:9:116:26 | call to new [@field] | -| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:116:9:116:26 | call to new [@field] | -| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:117:6:117:20 | call to get_field | -| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:117:6:117:20 | call to get_field | -| instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | instance_variables.rb:120:6:120:10 | foo16 [@field] | | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | instance_variables.rb:120:6:120:10 | foo16 [@field] | | instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | -| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | -| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | | instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | | instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:120:6:120:20 | call to get_field | | instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:120:6:120:20 | call to get_field | | instance_variables.rb:121:1:121:3 | bar | instance_variables.rb:122:6:122:8 | bar | -| instance_variables.rb:121:1:121:3 | bar | instance_variables.rb:122:6:122:8 | bar | -| instance_variables.rb:121:7:121:24 | call to new | instance_variables.rb:121:1:121:3 | bar | | instance_variables.rb:121:7:121:24 | call to new | instance_variables.rb:121:1:121:3 | bar | nodes | captured_variables.rb:1:24:1:24 | x | semmle.label | x | -| captured_variables.rb:1:24:1:24 | x | semmle.label | x | -| captured_variables.rb:2:20:2:20 | x | semmle.label | x | | captured_variables.rb:2:20:2:20 | x | semmle.label | x | | captured_variables.rb:5:20:5:30 | call to source | semmle.label | call to source | -| captured_variables.rb:5:20:5:30 | call to source | semmle.label | call to source | -| captured_variables.rb:21:33:21:33 | x | semmle.label | x | | captured_variables.rb:21:33:21:33 | x | semmle.label | x | | captured_variables.rb:23:14:23:14 | x | semmle.label | x | -| captured_variables.rb:23:14:23:14 | x | semmle.label | x | -| captured_variables.rb:27:29:27:39 | call to source | semmle.label | call to source | | captured_variables.rb:27:29:27:39 | call to source | semmle.label | call to source | | captured_variables.rb:32:31:32:31 | x | semmle.label | x | -| captured_variables.rb:32:31:32:31 | x | semmle.label | x | -| captured_variables.rb:34:14:34:14 | x | semmle.label | x | | captured_variables.rb:34:14:34:14 | x | semmle.label | x | | captured_variables.rb:38:27:38:37 | call to source | semmle.label | call to source | -| captured_variables.rb:38:27:38:37 | call to source | semmle.label | call to source | -| instance_variables.rb:10:19:10:19 | x | semmle.label | x | | instance_variables.rb:10:19:10:19 | x | semmle.label | x | | instance_variables.rb:11:9:11:14 | [post] self [@field] | semmle.label | [post] self [@field] | -| instance_variables.rb:11:9:11:14 | [post] self [@field] | semmle.label | [post] self [@field] | -| instance_variables.rb:11:18:11:18 | x | semmle.label | x | | instance_variables.rb:11:18:11:18 | x | semmle.label | x | | instance_variables.rb:13:5:15:7 | self in get_field [@field] | semmle.label | self in get_field [@field] | -| instance_variables.rb:13:5:15:7 | self in get_field [@field] | semmle.label | self in get_field [@field] | -| instance_variables.rb:14:9:14:21 | return | semmle.label | return | | instance_variables.rb:14:9:14:21 | return | semmle.label | return | | instance_variables.rb:14:16:14:21 | @field | semmle.label | @field | -| instance_variables.rb:14:16:14:21 | @field | semmle.label | @field | -| instance_variables.rb:14:16:14:21 | self [@field] | semmle.label | self [@field] | | instance_variables.rb:14:16:14:21 | self [@field] | semmle.label | self [@field] | | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | semmle.label | self in inc_field [@field] | | instance_variables.rb:17:9:17:14 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:19:5:19:8 | [post] self [@foo] | semmle.label | [post] self [@foo] | -| instance_variables.rb:19:5:19:8 | [post] self [@foo] | semmle.label | [post] self [@foo] | -| instance_variables.rb:19:12:19:21 | call to taint | semmle.label | call to taint | | instance_variables.rb:19:12:19:21 | call to taint | semmle.label | call to taint | | instance_variables.rb:20:10:20:13 | @foo | semmle.label | @foo | -| instance_variables.rb:20:10:20:13 | @foo | semmle.label | @foo | -| instance_variables.rb:20:10:20:13 | self [@foo] | semmle.label | self [@foo] | | instance_variables.rb:20:10:20:13 | self [@foo] | semmle.label | self [@foo] | | instance_variables.rb:22:20:22:24 | field | semmle.label | field | -| instance_variables.rb:22:20:22:24 | field | semmle.label | field | -| instance_variables.rb:23:9:23:14 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:23:9:23:14 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:23:18:23:22 | field | semmle.label | field | -| instance_variables.rb:23:18:23:22 | field | semmle.label | field | -| instance_variables.rb:24:9:24:17 | call to taint | semmle.label | call to taint | | instance_variables.rb:24:9:24:17 | call to taint | semmle.label | call to taint | | instance_variables.rb:27:25:27:29 | field | semmle.label | field | -| instance_variables.rb:27:25:27:29 | field | semmle.label | field | -| instance_variables.rb:28:9:28:25 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:28:9:28:25 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:28:9:28:25 | call to initialize | semmle.label | call to initialize | -| instance_variables.rb:28:9:28:25 | call to initialize | semmle.label | call to initialize | -| instance_variables.rb:28:20:28:24 | field | semmle.label | field | | instance_variables.rb:28:20:28:24 | field | semmle.label | field | | instance_variables.rb:31:18:31:18 | x | semmle.label | x | -| instance_variables.rb:31:18:31:18 | x | semmle.label | x | -| instance_variables.rb:32:13:32:21 | call to taint | semmle.label | call to taint | | instance_variables.rb:32:13:32:21 | call to taint | semmle.label | call to taint | | instance_variables.rb:33:9:33:14 | call to new [@field] | semmle.label | call to new [@field] | -| instance_variables.rb:33:9:33:14 | call to new [@field] | semmle.label | call to new [@field] | -| instance_variables.rb:33:13:33:13 | x | semmle.label | x | | instance_variables.rb:33:13:33:13 | x | semmle.label | x | | instance_variables.rb:36:10:36:23 | call to new [@field] | semmle.label | call to new [@field] | -| instance_variables.rb:36:10:36:23 | call to new [@field] | semmle.label | call to new [@field] | -| instance_variables.rb:36:10:36:33 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:36:10:36:33 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:36:14:36:22 | call to taint | semmle.label | call to taint | -| instance_variables.rb:36:14:36:22 | call to taint | semmle.label | call to taint | -| instance_variables.rb:39:6:39:23 | call to bar [@field] | semmle.label | call to bar [@field] | | instance_variables.rb:39:6:39:23 | call to bar [@field] | semmle.label | call to bar [@field] | | instance_variables.rb:39:6:39:33 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:39:6:39:33 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:39:14:39:22 | call to taint | semmle.label | call to taint | | instance_variables.rb:39:14:39:22 | call to taint | semmle.label | call to taint | | instance_variables.rb:43:9:43:17 | call to taint | semmle.label | call to taint | -| instance_variables.rb:43:9:43:17 | call to taint | semmle.label | call to taint | -| instance_variables.rb:48:20:48:20 | x | semmle.label | x | | instance_variables.rb:48:20:48:20 | x | semmle.label | x | | instance_variables.rb:49:14:49:14 | x | semmle.label | x | -| instance_variables.rb:49:14:49:14 | x | semmle.label | x | -| instance_variables.rb:54:1:54:3 | [post] foo [@field] | semmle.label | [post] foo [@field] | | instance_variables.rb:54:1:54:3 | [post] foo [@field] | semmle.label | [post] foo [@field] | | instance_variables.rb:54:15:54:23 | call to taint | semmle.label | call to taint | -| instance_variables.rb:54:15:54:23 | call to taint | semmle.label | call to taint | | instance_variables.rb:55:6:55:8 | foo [@field] | semmle.label | foo [@field] | -| instance_variables.rb:55:6:55:8 | foo [@field] | semmle.label | foo [@field] | -| instance_variables.rb:55:6:55:18 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:55:6:55:18 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:58:1:58:3 | [post] bar [@field] | semmle.label | [post] bar [@field] | | instance_variables.rb:58:15:58:22 | call to taint | semmle.label | call to taint | | instance_variables.rb:59:6:59:8 | bar [@field] | semmle.label | bar [@field] | | instance_variables.rb:59:6:59:18 | call to inc_field | semmle.label | call to inc_field | | instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | semmle.label | [post] foo1 [@field] | -| instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | semmle.label | [post] foo1 [@field] | -| instance_variables.rb:62:14:62:22 | call to taint | semmle.label | call to taint | | instance_variables.rb:62:14:62:22 | call to taint | semmle.label | call to taint | | instance_variables.rb:63:6:63:9 | foo1 [@field] | semmle.label | foo1 [@field] | -| instance_variables.rb:63:6:63:9 | foo1 [@field] | semmle.label | foo1 [@field] | -| instance_variables.rb:63:6:63:15 | call to field | semmle.label | call to field | | instance_variables.rb:63:6:63:15 | call to field | semmle.label | call to field | | instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | semmle.label | [post] foo2 [@field] | -| instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | semmle.label | [post] foo2 [@field] | -| instance_variables.rb:66:14:66:22 | call to taint | semmle.label | call to taint | | instance_variables.rb:66:14:66:22 | call to taint | semmle.label | call to taint | | instance_variables.rb:67:6:67:9 | foo2 [@field] | semmle.label | foo2 [@field] | -| instance_variables.rb:67:6:67:9 | foo2 [@field] | semmle.label | foo2 [@field] | -| instance_variables.rb:67:6:67:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:67:6:67:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | semmle.label | [post] foo3 [@field] | -| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | semmle.label | [post] foo3 [@field] | -| instance_variables.rb:70:16:70:24 | call to taint | semmle.label | call to taint | | instance_variables.rb:70:16:70:24 | call to taint | semmle.label | call to taint | | instance_variables.rb:71:6:71:9 | foo3 [@field] | semmle.label | foo3 [@field] | -| instance_variables.rb:71:6:71:9 | foo3 [@field] | semmle.label | foo3 [@field] | -| instance_variables.rb:71:6:71:15 | call to field | semmle.label | call to field | | instance_variables.rb:71:6:71:15 | call to field | semmle.label | call to field | | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | semmle.label | [post] foo5 [@field] | -| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | semmle.label | [post] foo5 [@field] | -| instance_variables.rb:78:18:78:26 | call to taint | semmle.label | call to taint | | instance_variables.rb:78:18:78:26 | call to taint | semmle.label | call to taint | | instance_variables.rb:79:6:79:9 | foo5 [@field] | semmle.label | foo5 [@field] | -| instance_variables.rb:79:6:79:9 | foo5 [@field] | semmle.label | foo5 [@field] | -| instance_variables.rb:79:6:79:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:79:6:79:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | semmle.label | [post] foo6 [@field] | -| instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | semmle.label | [post] foo6 [@field] | -| instance_variables.rb:82:32:82:40 | call to taint | semmle.label | call to taint | | instance_variables.rb:82:32:82:40 | call to taint | semmle.label | call to taint | | instance_variables.rb:83:6:83:9 | foo3 [@field] | semmle.label | foo3 [@field] | -| instance_variables.rb:83:6:83:9 | foo3 [@field] | semmle.label | foo3 [@field] | -| instance_variables.rb:83:6:83:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:83:6:83:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:84:6:84:9 | foo5 [@field] | semmle.label | foo5 [@field] | -| instance_variables.rb:84:6:84:9 | foo5 [@field] | semmle.label | foo5 [@field] | -| instance_variables.rb:84:6:84:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:84:6:84:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:85:6:85:9 | foo6 [@field] | semmle.label | foo6 [@field] | -| instance_variables.rb:85:6:85:9 | foo6 [@field] | semmle.label | foo6 [@field] | -| instance_variables.rb:85:6:85:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:85:6:85:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | semmle.label | [post] foo7 [@field] | -| instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | semmle.label | [post] foo7 [@field] | -| instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | semmle.label | [post] foo8 [@field] | | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | semmle.label | [post] foo8 [@field] | | instance_variables.rb:89:45:89:53 | call to taint | semmle.label | call to taint | -| instance_variables.rb:89:45:89:53 | call to taint | semmle.label | call to taint | -| instance_variables.rb:90:6:90:9 | foo7 [@field] | semmle.label | foo7 [@field] | | instance_variables.rb:90:6:90:9 | foo7 [@field] | semmle.label | foo7 [@field] | | instance_variables.rb:90:6:90:19 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:90:6:90:19 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:91:6:91:9 | foo8 [@field] | semmle.label | foo8 [@field] | | instance_variables.rb:91:6:91:9 | foo8 [@field] | semmle.label | foo8 [@field] | | instance_variables.rb:91:6:91:19 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:91:6:91:19 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | semmle.label | [post] foo9 [@field] | | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | semmle.label | [post] foo9 [@field] | | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | semmle.label | [post] foo10 [@field] | -| instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | semmle.label | [post] foo10 [@field] | -| instance_variables.rb:95:53:95:61 | call to taint | semmle.label | call to taint | | instance_variables.rb:95:53:95:61 | call to taint | semmle.label | call to taint | | instance_variables.rb:96:6:96:9 | foo9 [@field] | semmle.label | foo9 [@field] | -| instance_variables.rb:96:6:96:9 | foo9 [@field] | semmle.label | foo9 [@field] | -| instance_variables.rb:96:6:96:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:96:6:96:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:97:6:97:10 | foo10 [@field] | semmle.label | foo10 [@field] | -| instance_variables.rb:97:6:97:10 | foo10 [@field] | semmle.label | foo10 [@field] | -| instance_variables.rb:97:6:97:20 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:97:6:97:20 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:100:5:100:5 | [post] x [@field] | semmle.label | [post] x [@field] | -| instance_variables.rb:100:5:100:5 | [post] x [@field] | semmle.label | [post] x [@field] | -| instance_variables.rb:100:17:100:25 | call to taint | semmle.label | call to taint | | instance_variables.rb:100:17:100:25 | call to taint | semmle.label | call to taint | | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | semmle.label | [post] foo11 [@field] | -| instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | semmle.label | [post] foo11 [@field] | -| instance_variables.rb:105:6:105:10 | foo11 [@field] | semmle.label | foo11 [@field] | | instance_variables.rb:105:6:105:10 | foo11 [@field] | semmle.label | foo11 [@field] | | instance_variables.rb:105:6:105:20 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:105:6:105:20 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | semmle.label | [post] foo12 [@field] | | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | semmle.label | [post] foo12 [@field] | | instance_variables.rb:109:6:109:10 | foo12 [@field] | semmle.label | foo12 [@field] | -| instance_variables.rb:109:6:109:10 | foo12 [@field] | semmle.label | foo12 [@field] | -| instance_variables.rb:109:6:109:20 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:109:6:109:20 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | semmle.label | [post] foo13 [@field] | -| instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | semmle.label | [post] foo13 [@field] | -| instance_variables.rb:114:6:114:10 | foo13 [@field] | semmle.label | foo13 [@field] | | instance_variables.rb:114:6:114:10 | foo13 [@field] | semmle.label | foo13 [@field] | | instance_variables.rb:114:6:114:20 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:114:6:114:20 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:116:1:116:5 | foo15 [@field] | semmle.label | foo15 [@field] | | instance_variables.rb:116:1:116:5 | foo15 [@field] | semmle.label | foo15 [@field] | | instance_variables.rb:116:9:116:26 | call to new [@field] | semmle.label | call to new [@field] | -| instance_variables.rb:116:9:116:26 | call to new [@field] | semmle.label | call to new [@field] | -| instance_variables.rb:116:17:116:25 | call to taint | semmle.label | call to taint | | instance_variables.rb:116:17:116:25 | call to taint | semmle.label | call to taint | | instance_variables.rb:117:6:117:10 | foo15 [@field] | semmle.label | foo15 [@field] | -| instance_variables.rb:117:6:117:10 | foo15 [@field] | semmle.label | foo15 [@field] | -| instance_variables.rb:117:6:117:20 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:117:6:117:20 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | semmle.label | [post] foo16 [@field] | -| instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | semmle.label | [post] foo16 [@field] | -| instance_variables.rb:119:6:119:37 | call to call_initialize | semmle.label | call to call_initialize | | instance_variables.rb:119:6:119:37 | call to call_initialize | semmle.label | call to call_initialize | | instance_variables.rb:119:28:119:36 | call to taint | semmle.label | call to taint | -| instance_variables.rb:119:28:119:36 | call to taint | semmle.label | call to taint | -| instance_variables.rb:120:6:120:10 | foo16 [@field] | semmle.label | foo16 [@field] | | instance_variables.rb:120:6:120:10 | foo16 [@field] | semmle.label | foo16 [@field] | | instance_variables.rb:120:6:120:20 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:120:6:120:20 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:121:1:121:3 | bar | semmle.label | bar | | instance_variables.rb:121:1:121:3 | bar | semmle.label | bar | | instance_variables.rb:121:7:121:24 | call to new | semmle.label | call to new | -| instance_variables.rb:121:7:121:24 | call to new | semmle.label | call to new | -| instance_variables.rb:122:6:122:8 | bar | semmle.label | bar | | instance_variables.rb:122:6:122:8 | bar | semmle.label | bar | subpaths | instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:28:9:28:25 | [post] self [@field] | -| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:28:9:28:25 | [post] self [@field] | -| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:33:9:33:14 | call to new [@field] | | instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:33:9:33:14 | call to new [@field] | | instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:36:10:36:33 | call to get_field | -| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:36:10:36:33 | call to get_field | -| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:36:10:36:23 | call to new [@field] | | instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:36:10:36:23 | call to new [@field] | | instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:39:6:39:33 | call to get_field | -| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:39:6:39:33 | call to get_field | -| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | instance_variables.rb:39:6:39:23 | call to bar [@field] | | instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | instance_variables.rb:39:6:39:23 | call to bar [@field] | | instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:54:1:54:3 | [post] foo [@field] | -| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:54:1:54:3 | [post] foo [@field] | -| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:55:6:55:18 | call to get_field | | instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:55:6:55:18 | call to get_field | | instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:58:1:58:3 | [post] bar [@field] | | instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:59:6:59:18 | call to inc_field | | instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] | instance_variables.rb:59:6:59:18 | call to inc_field | | instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:67:6:67:19 | call to get_field | -| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:67:6:67:19 | call to get_field | -| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | | instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | | instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | -| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | -| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:79:6:79:19 | call to get_field | | instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:79:6:79:19 | call to get_field | | instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | -| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | -| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:83:6:83:19 | call to get_field | | instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:83:6:83:19 | call to get_field | | instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:84:6:84:19 | call to get_field | -| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:84:6:84:19 | call to get_field | -| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:85:6:85:19 | call to get_field | | instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:85:6:85:19 | call to get_field | | instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | -| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | -| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | | instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | | instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:90:6:90:19 | call to get_field | -| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:90:6:90:19 | call to get_field | -| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:91:6:91:19 | call to get_field | | instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:91:6:91:19 | call to get_field | | instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | -| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | -| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | | instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | | instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:96:6:96:19 | call to get_field | -| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:96:6:96:19 | call to get_field | -| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:97:6:97:20 | call to get_field | | instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:97:6:97:20 | call to get_field | | instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:100:5:100:5 | [post] x [@field] | -| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:100:5:100:5 | [post] x [@field] | -| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:105:6:105:20 | call to get_field | | instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:105:6:105:20 | call to get_field | | instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:109:6:109:20 | call to get_field | -| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:109:6:109:20 | call to get_field | -| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:114:6:114:20 | call to get_field | | instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:114:6:114:20 | call to get_field | | instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:116:9:116:26 | call to new [@field] | -| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:116:9:116:26 | call to new [@field] | -| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:117:6:117:20 | call to get_field | | instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:117:6:117:20 | call to get_field | | instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | -| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | -| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:120:6:120:20 | call to get_field | | instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:120:6:120:20 | call to get_field | #select | captured_variables.rb:2:20:2:20 | x | captured_variables.rb:5:20:5:30 | call to source | captured_variables.rb:2:20:2:20 | x | $@ | captured_variables.rb:5:20:5:30 | call to source | call to source | diff --git a/ruby/ql/test/library-tests/dataflow/global/Flow.ql b/ruby/ql/test/library-tests/dataflow/global/Flow.ql index 64ce30508fb..51f0816cbba 100644 --- a/ruby/ql/test/library-tests/dataflow/global/Flow.ql +++ b/ruby/ql/test/library-tests/dataflow/global/Flow.ql @@ -6,7 +6,7 @@ import codeql.ruby.AST import codeql.ruby.DataFlow private import TestUtilities.InlineFlowTest import DefaultFlowTest -import PathGraph +import TaintFlow::PathGraph from TaintFlow::PathNode source, TaintFlow::PathNode sink where TaintFlow::flowPath(source, sink) diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.ql b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.ql index 31941897936..6f8978fe819 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.ql +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.ql @@ -5,7 +5,7 @@ import codeql.ruby.AST import TestUtilities.InlineFlowTest import ValueFlowTest -import PathGraph +import ValueFlow::PathGraph from ValueFlow::PathNode source, ValueFlow::PathNode sink where ValueFlow::flowPath(source, sink) diff --git a/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.expected b/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.expected index f19065fb778..f97456205d3 100644 --- a/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.expected +++ b/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.expected @@ -19,66 +19,35 @@ edges | local_dataflow.rb:87:10:87:10 | x | local_dataflow.rb:78:3:78:3 | z | | local_dataflow.rb:87:10:87:10 | x | local_dataflow.rb:87:25:87:25 | x | | local_dataflow.rb:93:3:93:3 | a | local_dataflow.rb:94:8:94:8 | a | -| local_dataflow.rb:93:3:93:3 | a | local_dataflow.rb:94:8:94:8 | a | -| local_dataflow.rb:93:7:93:15 | call to source | local_dataflow.rb:93:3:93:3 | a | | local_dataflow.rb:93:7:93:15 | call to source | local_dataflow.rb:93:3:93:3 | a | | local_dataflow.rb:93:20:93:28 | call to source | local_dataflow.rb:93:3:93:3 | a | -| local_dataflow.rb:93:20:93:28 | call to source | local_dataflow.rb:93:3:93:3 | a | -| local_dataflow.rb:95:3:95:3 | b | local_dataflow.rb:96:8:96:8 | b | | local_dataflow.rb:95:3:95:3 | b | local_dataflow.rb:96:8:96:8 | b | | local_dataflow.rb:95:8:95:16 | call to source | local_dataflow.rb:95:3:95:3 | b | -| local_dataflow.rb:95:8:95:16 | call to source | local_dataflow.rb:95:3:95:3 | b | -| local_dataflow.rb:95:21:95:29 | call to source | local_dataflow.rb:95:3:95:3 | b | | local_dataflow.rb:95:21:95:29 | call to source | local_dataflow.rb:95:3:95:3 | b | | local_dataflow.rb:98:3:98:3 | a | local_dataflow.rb:99:8:99:8 | a | -| local_dataflow.rb:98:3:98:3 | a | local_dataflow.rb:99:8:99:8 | a | -| local_dataflow.rb:98:7:98:15 | call to source | local_dataflow.rb:98:3:98:3 | a | | local_dataflow.rb:98:7:98:15 | call to source | local_dataflow.rb:98:3:98:3 | a | | local_dataflow.rb:98:20:98:28 | call to source | local_dataflow.rb:98:3:98:3 | a | -| local_dataflow.rb:98:20:98:28 | call to source | local_dataflow.rb:98:3:98:3 | a | -| local_dataflow.rb:100:3:100:3 | b | local_dataflow.rb:101:8:101:8 | b | | local_dataflow.rb:100:3:100:3 | b | local_dataflow.rb:101:8:101:8 | b | | local_dataflow.rb:100:8:100:16 | call to source | local_dataflow.rb:100:3:100:3 | b | -| local_dataflow.rb:100:8:100:16 | call to source | local_dataflow.rb:100:3:100:3 | b | -| local_dataflow.rb:100:22:100:30 | call to source | local_dataflow.rb:100:3:100:3 | b | | local_dataflow.rb:100:22:100:30 | call to source | local_dataflow.rb:100:3:100:3 | b | | local_dataflow.rb:103:3:103:3 | a | local_dataflow.rb:104:3:104:3 | a | -| local_dataflow.rb:103:3:103:3 | a | local_dataflow.rb:104:3:104:3 | a | -| local_dataflow.rb:103:7:103:15 | call to source | local_dataflow.rb:103:3:103:3 | a | | local_dataflow.rb:103:7:103:15 | call to source | local_dataflow.rb:103:3:103:3 | a | | local_dataflow.rb:104:3:104:3 | a | local_dataflow.rb:105:8:105:8 | a | -| local_dataflow.rb:104:3:104:3 | a | local_dataflow.rb:105:8:105:8 | a | -| local_dataflow.rb:104:9:104:17 | call to source | local_dataflow.rb:104:3:104:3 | a | | local_dataflow.rb:104:9:104:17 | call to source | local_dataflow.rb:104:3:104:3 | a | | local_dataflow.rb:106:3:106:3 | b | local_dataflow.rb:107:3:107:3 | b | -| local_dataflow.rb:106:3:106:3 | b | local_dataflow.rb:107:3:107:3 | b | -| local_dataflow.rb:106:7:106:15 | call to source | local_dataflow.rb:106:3:106:3 | b | | local_dataflow.rb:106:7:106:15 | call to source | local_dataflow.rb:106:3:106:3 | b | | local_dataflow.rb:107:3:107:3 | b | local_dataflow.rb:108:8:108:8 | b | -| local_dataflow.rb:107:3:107:3 | b | local_dataflow.rb:108:8:108:8 | b | -| local_dataflow.rb:107:9:107:17 | call to source | local_dataflow.rb:107:3:107:3 | b | | local_dataflow.rb:107:9:107:17 | call to source | local_dataflow.rb:107:3:107:3 | b | | local_dataflow.rb:112:8:112:16 | call to source | local_dataflow.rb:112:8:112:20 | call to dup | -| local_dataflow.rb:112:8:112:16 | call to source | local_dataflow.rb:112:8:112:20 | call to dup | -| local_dataflow.rb:113:8:113:16 | call to source | local_dataflow.rb:113:8:113:20 | call to dup | | local_dataflow.rb:113:8:113:16 | call to source | local_dataflow.rb:113:8:113:20 | call to dup | | local_dataflow.rb:113:8:113:20 | call to dup | local_dataflow.rb:113:8:113:24 | call to dup | -| local_dataflow.rb:113:8:113:20 | call to dup | local_dataflow.rb:113:8:113:24 | call to dup | -| local_dataflow.rb:117:8:117:16 | call to source | local_dataflow.rb:117:8:117:23 | call to tap | | local_dataflow.rb:117:8:117:16 | call to source | local_dataflow.rb:117:8:117:23 | call to tap | | local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:20:118:20 | x | -| local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:20:118:20 | x | -| local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:28:118:28 | x | | local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:28:118:28 | x | | local_dataflow.rb:119:8:119:16 | call to source | local_dataflow.rb:119:8:119:23 | call to tap | -| local_dataflow.rb:119:8:119:16 | call to source | local_dataflow.rb:119:8:119:23 | call to tap | -| local_dataflow.rb:119:8:119:23 | call to tap | local_dataflow.rb:119:8:119:30 | call to tap | | local_dataflow.rb:119:8:119:23 | call to tap | local_dataflow.rb:119:8:119:30 | call to tap | | local_dataflow.rb:123:8:123:16 | call to source | local_dataflow.rb:123:8:123:20 | call to dup | -| local_dataflow.rb:123:8:123:16 | call to source | local_dataflow.rb:123:8:123:20 | call to dup | | local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap | -| local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap | -| local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup | | local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup | nodes | local_dataflow.rb:78:3:78:3 | z | semmle.label | z | @@ -101,90 +70,47 @@ nodes | local_dataflow.rb:87:25:87:25 | x | semmle.label | x | | local_dataflow.rb:89:8:89:8 | z | semmle.label | z | | local_dataflow.rb:93:3:93:3 | a | semmle.label | a | -| local_dataflow.rb:93:3:93:3 | a | semmle.label | a | -| local_dataflow.rb:93:7:93:15 | call to source | semmle.label | call to source | | local_dataflow.rb:93:7:93:15 | call to source | semmle.label | call to source | | local_dataflow.rb:93:20:93:28 | call to source | semmle.label | call to source | -| local_dataflow.rb:93:20:93:28 | call to source | semmle.label | call to source | -| local_dataflow.rb:94:8:94:8 | a | semmle.label | a | | local_dataflow.rb:94:8:94:8 | a | semmle.label | a | | local_dataflow.rb:95:3:95:3 | b | semmle.label | b | -| local_dataflow.rb:95:3:95:3 | b | semmle.label | b | -| local_dataflow.rb:95:8:95:16 | call to source | semmle.label | call to source | | local_dataflow.rb:95:8:95:16 | call to source | semmle.label | call to source | | local_dataflow.rb:95:21:95:29 | call to source | semmle.label | call to source | -| local_dataflow.rb:95:21:95:29 | call to source | semmle.label | call to source | -| local_dataflow.rb:96:8:96:8 | b | semmle.label | b | | local_dataflow.rb:96:8:96:8 | b | semmle.label | b | | local_dataflow.rb:98:3:98:3 | a | semmle.label | a | -| local_dataflow.rb:98:3:98:3 | a | semmle.label | a | -| local_dataflow.rb:98:7:98:15 | call to source | semmle.label | call to source | | local_dataflow.rb:98:7:98:15 | call to source | semmle.label | call to source | | local_dataflow.rb:98:20:98:28 | call to source | semmle.label | call to source | -| local_dataflow.rb:98:20:98:28 | call to source | semmle.label | call to source | -| local_dataflow.rb:99:8:99:8 | a | semmle.label | a | | local_dataflow.rb:99:8:99:8 | a | semmle.label | a | | local_dataflow.rb:100:3:100:3 | b | semmle.label | b | -| local_dataflow.rb:100:3:100:3 | b | semmle.label | b | -| local_dataflow.rb:100:8:100:16 | call to source | semmle.label | call to source | | local_dataflow.rb:100:8:100:16 | call to source | semmle.label | call to source | | local_dataflow.rb:100:22:100:30 | call to source | semmle.label | call to source | -| local_dataflow.rb:100:22:100:30 | call to source | semmle.label | call to source | -| local_dataflow.rb:101:8:101:8 | b | semmle.label | b | | local_dataflow.rb:101:8:101:8 | b | semmle.label | b | | local_dataflow.rb:103:3:103:3 | a | semmle.label | a | -| local_dataflow.rb:103:3:103:3 | a | semmle.label | a | -| local_dataflow.rb:103:7:103:15 | call to source | semmle.label | call to source | | local_dataflow.rb:103:7:103:15 | call to source | semmle.label | call to source | | local_dataflow.rb:104:3:104:3 | a | semmle.label | a | -| local_dataflow.rb:104:3:104:3 | a | semmle.label | a | -| local_dataflow.rb:104:9:104:17 | call to source | semmle.label | call to source | | local_dataflow.rb:104:9:104:17 | call to source | semmle.label | call to source | | local_dataflow.rb:105:8:105:8 | a | semmle.label | a | -| local_dataflow.rb:105:8:105:8 | a | semmle.label | a | -| local_dataflow.rb:106:3:106:3 | b | semmle.label | b | | local_dataflow.rb:106:3:106:3 | b | semmle.label | b | | local_dataflow.rb:106:7:106:15 | call to source | semmle.label | call to source | -| local_dataflow.rb:106:7:106:15 | call to source | semmle.label | call to source | -| local_dataflow.rb:107:3:107:3 | b | semmle.label | b | | local_dataflow.rb:107:3:107:3 | b | semmle.label | b | | local_dataflow.rb:107:9:107:17 | call to source | semmle.label | call to source | -| local_dataflow.rb:107:9:107:17 | call to source | semmle.label | call to source | -| local_dataflow.rb:108:8:108:8 | b | semmle.label | b | | local_dataflow.rb:108:8:108:8 | b | semmle.label | b | | local_dataflow.rb:112:8:112:16 | call to source | semmle.label | call to source | -| local_dataflow.rb:112:8:112:16 | call to source | semmle.label | call to source | -| local_dataflow.rb:112:8:112:20 | call to dup | semmle.label | call to dup | | local_dataflow.rb:112:8:112:20 | call to dup | semmle.label | call to dup | | local_dataflow.rb:113:8:113:16 | call to source | semmle.label | call to source | -| local_dataflow.rb:113:8:113:16 | call to source | semmle.label | call to source | -| local_dataflow.rb:113:8:113:20 | call to dup | semmle.label | call to dup | | local_dataflow.rb:113:8:113:20 | call to dup | semmle.label | call to dup | | local_dataflow.rb:113:8:113:24 | call to dup | semmle.label | call to dup | -| local_dataflow.rb:113:8:113:24 | call to dup | semmle.label | call to dup | -| local_dataflow.rb:117:8:117:16 | call to source | semmle.label | call to source | | local_dataflow.rb:117:8:117:16 | call to source | semmle.label | call to source | | local_dataflow.rb:117:8:117:23 | call to tap | semmle.label | call to tap | -| local_dataflow.rb:117:8:117:23 | call to tap | semmle.label | call to tap | -| local_dataflow.rb:118:3:118:11 | call to source | semmle.label | call to source | | local_dataflow.rb:118:3:118:11 | call to source | semmle.label | call to source | | local_dataflow.rb:118:20:118:20 | x | semmle.label | x | -| local_dataflow.rb:118:20:118:20 | x | semmle.label | x | -| local_dataflow.rb:118:28:118:28 | x | semmle.label | x | | local_dataflow.rb:118:28:118:28 | x | semmle.label | x | | local_dataflow.rb:119:8:119:16 | call to source | semmle.label | call to source | -| local_dataflow.rb:119:8:119:16 | call to source | semmle.label | call to source | -| local_dataflow.rb:119:8:119:23 | call to tap | semmle.label | call to tap | | local_dataflow.rb:119:8:119:23 | call to tap | semmle.label | call to tap | | local_dataflow.rb:119:8:119:30 | call to tap | semmle.label | call to tap | -| local_dataflow.rb:119:8:119:30 | call to tap | semmle.label | call to tap | -| local_dataflow.rb:123:8:123:16 | call to source | semmle.label | call to source | | local_dataflow.rb:123:8:123:16 | call to source | semmle.label | call to source | | local_dataflow.rb:123:8:123:20 | call to dup | semmle.label | call to dup | -| local_dataflow.rb:123:8:123:20 | call to dup | semmle.label | call to dup | | local_dataflow.rb:123:8:123:45 | call to tap | semmle.label | call to tap | -| local_dataflow.rb:123:8:123:45 | call to tap | semmle.label | call to tap | -| local_dataflow.rb:123:8:123:49 | call to dup | semmle.label | call to dup | | local_dataflow.rb:123:8:123:49 | call to dup | semmle.label | call to dup | subpaths #select diff --git a/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.ql b/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.ql index 9a5ca73aa12..e30fe4c131b 100644 --- a/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.ql +++ b/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.ql @@ -5,7 +5,7 @@ import codeql.ruby.AST import TestUtilities.InlineFlowTest import DefaultFlowTest -import PathGraph +import TaintFlow::PathGraph from TaintFlow::PathNode source, TaintFlow::PathNode sink where TaintFlow::flowPath(source, sink) diff --git a/ruby/ql/test/library-tests/dataflow/params/params-flow.ql b/ruby/ql/test/library-tests/dataflow/params/params-flow.ql index 31941897936..6f8978fe819 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params-flow.ql +++ b/ruby/ql/test/library-tests/dataflow/params/params-flow.ql @@ -5,7 +5,7 @@ import codeql.ruby.AST import TestUtilities.InlineFlowTest import ValueFlowTest -import PathGraph +import ValueFlow::PathGraph from ValueFlow::PathNode source, ValueFlow::PathNode sink where ValueFlow::flowPath(source, sink) diff --git a/ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.expected b/ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.expected index 1e0abf53c99..cf6472ea6de 100644 --- a/ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.expected @@ -1,293 +1,5 @@ testFailures edges -| pathname_flow.rb:4:5:4:6 | pn | pathname_flow.rb:5:10:5:11 | pn | -| pathname_flow.rb:4:10:4:33 | call to new | pathname_flow.rb:4:5:4:6 | pn | -| pathname_flow.rb:4:23:4:32 | call to source | pathname_flow.rb:4:10:4:33 | call to new | -| pathname_flow.rb:9:3:9:3 | a | pathname_flow.rb:11:8:11:12 | ... + ... | -| pathname_flow.rb:9:7:9:30 | call to new | pathname_flow.rb:9:3:9:3 | a | -| pathname_flow.rb:9:20:9:29 | call to source | pathname_flow.rb:9:7:9:30 | call to new | -| pathname_flow.rb:10:3:10:3 | b | pathname_flow.rb:11:8:11:12 | ... + ... | -| pathname_flow.rb:10:7:10:30 | call to new | pathname_flow.rb:10:3:10:3 | b | -| pathname_flow.rb:10:20:10:29 | call to source | pathname_flow.rb:10:7:10:30 | call to new | -| pathname_flow.rb:15:3:15:4 | pn | pathname_flow.rb:16:8:16:9 | pn | -| pathname_flow.rb:15:8:15:31 | call to new | pathname_flow.rb:15:3:15:4 | pn | -| pathname_flow.rb:15:21:15:30 | call to source | pathname_flow.rb:15:8:15:31 | call to new | -| pathname_flow.rb:16:8:16:9 | pn | pathname_flow.rb:16:8:16:17 | call to dirname | -| pathname_flow.rb:20:3:20:3 | a | pathname_flow.rb:21:3:21:3 | a | -| pathname_flow.rb:20:7:20:30 | call to new | pathname_flow.rb:20:3:20:3 | a | -| pathname_flow.rb:20:20:20:29 | call to source | pathname_flow.rb:20:7:20:30 | call to new | -| pathname_flow.rb:21:3:21:3 | a | pathname_flow.rb:21:23:21:23 | x | -| pathname_flow.rb:21:23:21:23 | x | pathname_flow.rb:22:10:22:10 | x | -| pathname_flow.rb:27:3:27:3 | a | pathname_flow.rb:28:8:28:8 | a | -| pathname_flow.rb:27:7:27:30 | call to new | pathname_flow.rb:27:3:27:3 | a | -| pathname_flow.rb:27:20:27:29 | call to source | pathname_flow.rb:27:7:27:30 | call to new | -| pathname_flow.rb:28:8:28:8 | a | pathname_flow.rb:28:8:28:22 | call to expand_path | -| pathname_flow.rb:32:3:32:3 | a | pathname_flow.rb:35:8:35:8 | a | -| pathname_flow.rb:32:7:32:30 | call to new | pathname_flow.rb:32:3:32:3 | a | -| pathname_flow.rb:32:20:32:29 | call to source | pathname_flow.rb:32:7:32:30 | call to new | -| pathname_flow.rb:34:3:34:3 | c | pathname_flow.rb:35:18:35:18 | c | -| pathname_flow.rb:34:7:34:30 | call to new | pathname_flow.rb:34:3:34:3 | c | -| pathname_flow.rb:34:20:34:29 | call to source | pathname_flow.rb:34:7:34:30 | call to new | -| pathname_flow.rb:35:8:35:8 | a | pathname_flow.rb:35:8:35:19 | call to join | -| pathname_flow.rb:35:18:35:18 | c | pathname_flow.rb:35:8:35:19 | call to join | -| pathname_flow.rb:39:3:39:3 | a | pathname_flow.rb:40:8:40:8 | a | -| pathname_flow.rb:39:7:39:30 | call to new | pathname_flow.rb:39:3:39:3 | a | -| pathname_flow.rb:39:20:39:29 | call to source | pathname_flow.rb:39:7:39:30 | call to new | -| pathname_flow.rb:40:8:40:8 | a | pathname_flow.rb:40:8:40:17 | call to parent | -| pathname_flow.rb:44:3:44:3 | a | pathname_flow.rb:45:8:45:8 | a | -| pathname_flow.rb:44:7:44:30 | call to new | pathname_flow.rb:44:3:44:3 | a | -| pathname_flow.rb:44:20:44:29 | call to source | pathname_flow.rb:44:7:44:30 | call to new | -| pathname_flow.rb:45:8:45:8 | a | pathname_flow.rb:45:8:45:19 | call to realpath | -| pathname_flow.rb:49:3:49:3 | a | pathname_flow.rb:50:8:50:8 | a | -| pathname_flow.rb:49:7:49:30 | call to new | pathname_flow.rb:49:3:49:3 | a | -| pathname_flow.rb:49:20:49:29 | call to source | pathname_flow.rb:49:7:49:30 | call to new | -| pathname_flow.rb:50:8:50:8 | a | pathname_flow.rb:50:8:50:39 | call to relative_path_from | -| pathname_flow.rb:54:3:54:3 | a | pathname_flow.rb:55:8:55:8 | a | -| pathname_flow.rb:54:7:54:30 | call to new | pathname_flow.rb:54:3:54:3 | a | -| pathname_flow.rb:54:20:54:29 | call to source | pathname_flow.rb:54:7:54:30 | call to new | -| pathname_flow.rb:55:8:55:8 | a | pathname_flow.rb:55:8:55:16 | call to to_path | -| pathname_flow.rb:59:3:59:3 | a | pathname_flow.rb:60:8:60:8 | a | -| pathname_flow.rb:59:7:59:30 | call to new | pathname_flow.rb:59:3:59:3 | a | -| pathname_flow.rb:59:20:59:29 | call to source | pathname_flow.rb:59:7:59:30 | call to new | -| pathname_flow.rb:60:8:60:8 | a | pathname_flow.rb:60:8:60:13 | call to to_s | -| pathname_flow.rb:64:3:64:3 | a | pathname_flow.rb:65:3:65:3 | b | -| pathname_flow.rb:64:7:64:30 | call to new | pathname_flow.rb:64:3:64:3 | a | -| pathname_flow.rb:64:20:64:29 | call to source | pathname_flow.rb:64:7:64:30 | call to new | -| pathname_flow.rb:65:3:65:3 | b | pathname_flow.rb:66:8:66:8 | b | -| pathname_flow.rb:70:3:70:3 | a | pathname_flow.rb:71:3:71:3 | b | -| pathname_flow.rb:70:7:70:30 | call to new | pathname_flow.rb:70:3:70:3 | a | -| pathname_flow.rb:70:20:70:29 | call to source | pathname_flow.rb:70:7:70:30 | call to new | -| pathname_flow.rb:71:3:71:3 | b | pathname_flow.rb:72:8:72:8 | b | -| pathname_flow.rb:76:3:76:3 | a | pathname_flow.rb:77:7:77:7 | a | -| pathname_flow.rb:76:7:76:30 | call to new | pathname_flow.rb:76:3:76:3 | a | -| pathname_flow.rb:76:20:76:29 | call to source | pathname_flow.rb:76:7:76:30 | call to new | -| pathname_flow.rb:77:3:77:3 | b | pathname_flow.rb:78:8:78:8 | b | -| pathname_flow.rb:77:7:77:7 | a | pathname_flow.rb:77:7:77:16 | call to basename | -| pathname_flow.rb:77:7:77:16 | call to basename | pathname_flow.rb:77:3:77:3 | b | -| pathname_flow.rb:82:3:82:3 | a | pathname_flow.rb:83:7:83:7 | a | -| pathname_flow.rb:82:7:82:30 | call to new | pathname_flow.rb:82:3:82:3 | a | -| pathname_flow.rb:82:20:82:29 | call to source | pathname_flow.rb:82:7:82:30 | call to new | -| pathname_flow.rb:83:3:83:3 | b | pathname_flow.rb:84:8:84:8 | b | -| pathname_flow.rb:83:7:83:7 | a | pathname_flow.rb:83:7:83:17 | call to cleanpath | -| pathname_flow.rb:83:7:83:17 | call to cleanpath | pathname_flow.rb:83:3:83:3 | b | -| pathname_flow.rb:88:3:88:3 | a | pathname_flow.rb:89:7:89:7 | a | -| pathname_flow.rb:88:7:88:30 | call to new | pathname_flow.rb:88:3:88:3 | a | -| pathname_flow.rb:88:20:88:29 | call to source | pathname_flow.rb:88:7:88:30 | call to new | -| pathname_flow.rb:89:3:89:3 | b | pathname_flow.rb:90:8:90:8 | b | -| pathname_flow.rb:89:7:89:7 | a | pathname_flow.rb:89:7:89:25 | call to sub | -| pathname_flow.rb:89:7:89:25 | call to sub | pathname_flow.rb:89:3:89:3 | b | -| pathname_flow.rb:94:3:94:3 | a | pathname_flow.rb:95:7:95:7 | a | -| pathname_flow.rb:94:7:94:30 | call to new | pathname_flow.rb:94:3:94:3 | a | -| pathname_flow.rb:94:20:94:29 | call to source | pathname_flow.rb:94:7:94:30 | call to new | -| pathname_flow.rb:95:3:95:3 | b | pathname_flow.rb:96:8:96:8 | b | -| pathname_flow.rb:95:7:95:7 | a | pathname_flow.rb:95:7:95:23 | call to sub_ext | -| pathname_flow.rb:95:7:95:23 | call to sub_ext | pathname_flow.rb:95:3:95:3 | b | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:103:3:103:3 | b | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:106:3:106:3 | c | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:109:7:109:7 | a | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:112:7:112:7 | a | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:115:7:115:7 | a | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:118:7:118:7 | a | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:121:7:121:7 | a | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:124:7:124:7 | a | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:127:7:127:7 | a | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:130:7:130:7 | a | -| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:133:7:133:7 | a | -| pathname_flow.rb:101:7:101:30 | call to new | pathname_flow.rb:101:3:101:3 | a | -| pathname_flow.rb:101:20:101:29 | call to source | pathname_flow.rb:101:7:101:30 | call to new | -| pathname_flow.rb:103:3:103:3 | b | pathname_flow.rb:104:8:104:8 | b | -| pathname_flow.rb:104:8:104:8 | b | pathname_flow.rb:104:8:104:17 | call to realpath | -| pathname_flow.rb:106:3:106:3 | c | pathname_flow.rb:107:8:107:8 | c | -| pathname_flow.rb:107:8:107:8 | c | pathname_flow.rb:107:8:107:17 | call to realpath | -| pathname_flow.rb:109:3:109:3 | d | pathname_flow.rb:110:8:110:8 | d | -| pathname_flow.rb:109:7:109:7 | a | pathname_flow.rb:109:7:109:16 | call to basename | -| pathname_flow.rb:109:7:109:16 | call to basename | pathname_flow.rb:109:3:109:3 | d | -| pathname_flow.rb:110:8:110:8 | d | pathname_flow.rb:110:8:110:17 | call to realpath | -| pathname_flow.rb:112:3:112:3 | e | pathname_flow.rb:113:8:113:8 | e | -| pathname_flow.rb:112:7:112:7 | a | pathname_flow.rb:112:7:112:17 | call to cleanpath | -| pathname_flow.rb:112:7:112:17 | call to cleanpath | pathname_flow.rb:112:3:112:3 | e | -| pathname_flow.rb:113:8:113:8 | e | pathname_flow.rb:113:8:113:17 | call to realpath | -| pathname_flow.rb:115:3:115:3 | f | pathname_flow.rb:116:8:116:8 | f | -| pathname_flow.rb:115:7:115:7 | a | pathname_flow.rb:115:7:115:19 | call to expand_path | -| pathname_flow.rb:115:7:115:19 | call to expand_path | pathname_flow.rb:115:3:115:3 | f | -| pathname_flow.rb:116:8:116:8 | f | pathname_flow.rb:116:8:116:17 | call to realpath | -| pathname_flow.rb:118:3:118:3 | g | pathname_flow.rb:119:8:119:8 | g | -| pathname_flow.rb:118:7:118:7 | a | pathname_flow.rb:118:7:118:19 | call to join | -| pathname_flow.rb:118:7:118:19 | call to join | pathname_flow.rb:118:3:118:3 | g | -| pathname_flow.rb:119:8:119:8 | g | pathname_flow.rb:119:8:119:17 | call to realpath | -| pathname_flow.rb:121:3:121:3 | h | pathname_flow.rb:122:8:122:8 | h | -| pathname_flow.rb:121:7:121:7 | a | pathname_flow.rb:121:7:121:16 | call to realpath | -| pathname_flow.rb:121:7:121:16 | call to realpath | pathname_flow.rb:121:3:121:3 | h | -| pathname_flow.rb:122:8:122:8 | h | pathname_flow.rb:122:8:122:17 | call to realpath | -| pathname_flow.rb:124:3:124:3 | i | pathname_flow.rb:125:8:125:8 | i | -| pathname_flow.rb:124:7:124:7 | a | pathname_flow.rb:124:7:124:38 | call to relative_path_from | -| pathname_flow.rb:124:7:124:38 | call to relative_path_from | pathname_flow.rb:124:3:124:3 | i | -| pathname_flow.rb:125:8:125:8 | i | pathname_flow.rb:125:8:125:17 | call to realpath | -| pathname_flow.rb:127:3:127:3 | j | pathname_flow.rb:128:8:128:8 | j | -| pathname_flow.rb:127:7:127:7 | a | pathname_flow.rb:127:7:127:25 | call to sub | -| pathname_flow.rb:127:7:127:25 | call to sub | pathname_flow.rb:127:3:127:3 | j | -| pathname_flow.rb:128:8:128:8 | j | pathname_flow.rb:128:8:128:17 | call to realpath | -| pathname_flow.rb:130:3:130:3 | k | pathname_flow.rb:131:8:131:8 | k | -| pathname_flow.rb:130:7:130:7 | a | pathname_flow.rb:130:7:130:23 | call to sub_ext | -| pathname_flow.rb:130:7:130:23 | call to sub_ext | pathname_flow.rb:130:3:130:3 | k | -| pathname_flow.rb:131:8:131:8 | k | pathname_flow.rb:131:8:131:17 | call to realpath | -| pathname_flow.rb:133:3:133:3 | l | pathname_flow.rb:134:8:134:8 | l | -| pathname_flow.rb:133:7:133:7 | a | pathname_flow.rb:133:7:133:15 | call to to_path | -| pathname_flow.rb:133:7:133:15 | call to to_path | pathname_flow.rb:133:3:133:3 | l | -| pathname_flow.rb:134:8:134:8 | l | pathname_flow.rb:134:8:134:17 | call to realpath | nodes -| pathname_flow.rb:4:5:4:6 | pn | semmle.label | pn | -| pathname_flow.rb:4:10:4:33 | call to new | semmle.label | call to new | -| pathname_flow.rb:4:23:4:32 | call to source | semmle.label | call to source | -| pathname_flow.rb:5:10:5:11 | pn | semmle.label | pn | -| pathname_flow.rb:9:3:9:3 | a | semmle.label | a | -| pathname_flow.rb:9:7:9:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:9:20:9:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:10:3:10:3 | b | semmle.label | b | -| pathname_flow.rb:10:7:10:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:10:20:10:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:11:8:11:12 | ... + ... | semmle.label | ... + ... | -| pathname_flow.rb:15:3:15:4 | pn | semmle.label | pn | -| pathname_flow.rb:15:8:15:31 | call to new | semmle.label | call to new | -| pathname_flow.rb:15:21:15:30 | call to source | semmle.label | call to source | -| pathname_flow.rb:16:8:16:9 | pn | semmle.label | pn | -| pathname_flow.rb:16:8:16:17 | call to dirname | semmle.label | call to dirname | -| pathname_flow.rb:20:3:20:3 | a | semmle.label | a | -| pathname_flow.rb:20:7:20:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:20:20:20:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:21:3:21:3 | a | semmle.label | a | -| pathname_flow.rb:21:23:21:23 | x | semmle.label | x | -| pathname_flow.rb:22:10:22:10 | x | semmle.label | x | -| pathname_flow.rb:27:3:27:3 | a | semmle.label | a | -| pathname_flow.rb:27:7:27:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:27:20:27:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:28:8:28:8 | a | semmle.label | a | -| pathname_flow.rb:28:8:28:22 | call to expand_path | semmle.label | call to expand_path | -| pathname_flow.rb:32:3:32:3 | a | semmle.label | a | -| pathname_flow.rb:32:7:32:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:32:20:32:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:34:3:34:3 | c | semmle.label | c | -| pathname_flow.rb:34:7:34:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:34:20:34:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:35:8:35:8 | a | semmle.label | a | -| pathname_flow.rb:35:8:35:19 | call to join | semmle.label | call to join | -| pathname_flow.rb:35:18:35:18 | c | semmle.label | c | -| pathname_flow.rb:39:3:39:3 | a | semmle.label | a | -| pathname_flow.rb:39:7:39:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:39:20:39:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:40:8:40:8 | a | semmle.label | a | -| pathname_flow.rb:40:8:40:17 | call to parent | semmle.label | call to parent | -| pathname_flow.rb:44:3:44:3 | a | semmle.label | a | -| pathname_flow.rb:44:7:44:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:44:20:44:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:45:8:45:8 | a | semmle.label | a | -| pathname_flow.rb:45:8:45:19 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:49:3:49:3 | a | semmle.label | a | -| pathname_flow.rb:49:7:49:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:49:20:49:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:50:8:50:8 | a | semmle.label | a | -| pathname_flow.rb:50:8:50:39 | call to relative_path_from | semmle.label | call to relative_path_from | -| pathname_flow.rb:54:3:54:3 | a | semmle.label | a | -| pathname_flow.rb:54:7:54:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:54:20:54:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:55:8:55:8 | a | semmle.label | a | -| pathname_flow.rb:55:8:55:16 | call to to_path | semmle.label | call to to_path | -| pathname_flow.rb:59:3:59:3 | a | semmle.label | a | -| pathname_flow.rb:59:7:59:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:59:20:59:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:60:8:60:8 | a | semmle.label | a | -| pathname_flow.rb:60:8:60:13 | call to to_s | semmle.label | call to to_s | -| pathname_flow.rb:64:3:64:3 | a | semmle.label | a | -| pathname_flow.rb:64:7:64:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:64:20:64:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:65:3:65:3 | b | semmle.label | b | -| pathname_flow.rb:66:8:66:8 | b | semmle.label | b | -| pathname_flow.rb:70:3:70:3 | a | semmle.label | a | -| pathname_flow.rb:70:7:70:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:70:20:70:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:71:3:71:3 | b | semmle.label | b | -| pathname_flow.rb:72:8:72:8 | b | semmle.label | b | -| pathname_flow.rb:76:3:76:3 | a | semmle.label | a | -| pathname_flow.rb:76:7:76:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:76:20:76:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:77:3:77:3 | b | semmle.label | b | -| pathname_flow.rb:77:7:77:7 | a | semmle.label | a | -| pathname_flow.rb:77:7:77:16 | call to basename | semmle.label | call to basename | -| pathname_flow.rb:78:8:78:8 | b | semmle.label | b | -| pathname_flow.rb:82:3:82:3 | a | semmle.label | a | -| pathname_flow.rb:82:7:82:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:82:20:82:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:83:3:83:3 | b | semmle.label | b | -| pathname_flow.rb:83:7:83:7 | a | semmle.label | a | -| pathname_flow.rb:83:7:83:17 | call to cleanpath | semmle.label | call to cleanpath | -| pathname_flow.rb:84:8:84:8 | b | semmle.label | b | -| pathname_flow.rb:88:3:88:3 | a | semmle.label | a | -| pathname_flow.rb:88:7:88:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:88:20:88:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:89:3:89:3 | b | semmle.label | b | -| pathname_flow.rb:89:7:89:7 | a | semmle.label | a | -| pathname_flow.rb:89:7:89:25 | call to sub | semmle.label | call to sub | -| pathname_flow.rb:90:8:90:8 | b | semmle.label | b | -| pathname_flow.rb:94:3:94:3 | a | semmle.label | a | -| pathname_flow.rb:94:7:94:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:94:20:94:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:95:3:95:3 | b | semmle.label | b | -| pathname_flow.rb:95:7:95:7 | a | semmle.label | a | -| pathname_flow.rb:95:7:95:23 | call to sub_ext | semmle.label | call to sub_ext | -| pathname_flow.rb:96:8:96:8 | b | semmle.label | b | -| pathname_flow.rb:101:3:101:3 | a | semmle.label | a | -| pathname_flow.rb:101:7:101:30 | call to new | semmle.label | call to new | -| pathname_flow.rb:101:20:101:29 | call to source | semmle.label | call to source | -| pathname_flow.rb:103:3:103:3 | b | semmle.label | b | -| pathname_flow.rb:104:8:104:8 | b | semmle.label | b | -| pathname_flow.rb:104:8:104:17 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:106:3:106:3 | c | semmle.label | c | -| pathname_flow.rb:107:8:107:8 | c | semmle.label | c | -| pathname_flow.rb:107:8:107:17 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:109:3:109:3 | d | semmle.label | d | -| pathname_flow.rb:109:7:109:7 | a | semmle.label | a | -| pathname_flow.rb:109:7:109:16 | call to basename | semmle.label | call to basename | -| pathname_flow.rb:110:8:110:8 | d | semmle.label | d | -| pathname_flow.rb:110:8:110:17 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:112:3:112:3 | e | semmle.label | e | -| pathname_flow.rb:112:7:112:7 | a | semmle.label | a | -| pathname_flow.rb:112:7:112:17 | call to cleanpath | semmle.label | call to cleanpath | -| pathname_flow.rb:113:8:113:8 | e | semmle.label | e | -| pathname_flow.rb:113:8:113:17 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:115:3:115:3 | f | semmle.label | f | -| pathname_flow.rb:115:7:115:7 | a | semmle.label | a | -| pathname_flow.rb:115:7:115:19 | call to expand_path | semmle.label | call to expand_path | -| pathname_flow.rb:116:8:116:8 | f | semmle.label | f | -| pathname_flow.rb:116:8:116:17 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:118:3:118:3 | g | semmle.label | g | -| pathname_flow.rb:118:7:118:7 | a | semmle.label | a | -| pathname_flow.rb:118:7:118:19 | call to join | semmle.label | call to join | -| pathname_flow.rb:119:8:119:8 | g | semmle.label | g | -| pathname_flow.rb:119:8:119:17 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:121:3:121:3 | h | semmle.label | h | -| pathname_flow.rb:121:7:121:7 | a | semmle.label | a | -| pathname_flow.rb:121:7:121:16 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:122:8:122:8 | h | semmle.label | h | -| pathname_flow.rb:122:8:122:17 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:124:3:124:3 | i | semmle.label | i | -| pathname_flow.rb:124:7:124:7 | a | semmle.label | a | -| pathname_flow.rb:124:7:124:38 | call to relative_path_from | semmle.label | call to relative_path_from | -| pathname_flow.rb:125:8:125:8 | i | semmle.label | i | -| pathname_flow.rb:125:8:125:17 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:127:3:127:3 | j | semmle.label | j | -| pathname_flow.rb:127:7:127:7 | a | semmle.label | a | -| pathname_flow.rb:127:7:127:25 | call to sub | semmle.label | call to sub | -| pathname_flow.rb:128:8:128:8 | j | semmle.label | j | -| pathname_flow.rb:128:8:128:17 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:130:3:130:3 | k | semmle.label | k | -| pathname_flow.rb:130:7:130:7 | a | semmle.label | a | -| pathname_flow.rb:130:7:130:23 | call to sub_ext | semmle.label | call to sub_ext | -| pathname_flow.rb:131:8:131:8 | k | semmle.label | k | -| pathname_flow.rb:131:8:131:17 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:133:3:133:3 | l | semmle.label | l | -| pathname_flow.rb:133:7:133:7 | a | semmle.label | a | -| pathname_flow.rb:133:7:133:15 | call to to_path | semmle.label | call to to_path | -| pathname_flow.rb:134:8:134:8 | l | semmle.label | l | -| pathname_flow.rb:134:8:134:17 | call to realpath | semmle.label | call to realpath | subpaths #select diff --git a/ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.ql b/ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.ql index dfd6242a414..e02827eaf8d 100644 --- a/ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.ql +++ b/ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.ql @@ -5,7 +5,7 @@ import codeql.ruby.AST import TestUtilities.InlineFlowTest import DefaultFlowTest -import PathGraph +import ValueFlow::PathGraph from ValueFlow::PathNode source, ValueFlow::PathNode sink where ValueFlow::flowPath(source, sink) diff --git a/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.expected b/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.expected index c673ee77e66..c7a8595c464 100644 --- a/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.expected @@ -1,19 +1,12 @@ testFailures edges | ssa_flow.rb:12:9:12:9 | [post] a [element 0] | ssa_flow.rb:16:10:16:10 | a [element 0] | -| ssa_flow.rb:12:9:12:9 | [post] a [element 0] | ssa_flow.rb:16:10:16:10 | a [element 0] | | ssa_flow.rb:12:16:12:23 | call to taint | ssa_flow.rb:12:9:12:9 | [post] a [element 0] | -| ssa_flow.rb:12:16:12:23 | call to taint | ssa_flow.rb:12:9:12:9 | [post] a [element 0] | -| ssa_flow.rb:16:10:16:10 | a [element 0] | ssa_flow.rb:16:10:16:13 | ...[...] | | ssa_flow.rb:16:10:16:10 | a [element 0] | ssa_flow.rb:16:10:16:13 | ...[...] | nodes | ssa_flow.rb:12:9:12:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | -| ssa_flow.rb:12:9:12:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | -| ssa_flow.rb:12:16:12:23 | call to taint | semmle.label | call to taint | | ssa_flow.rb:12:16:12:23 | call to taint | semmle.label | call to taint | | ssa_flow.rb:16:10:16:10 | a [element 0] | semmle.label | a [element 0] | -| ssa_flow.rb:16:10:16:10 | a [element 0] | semmle.label | a [element 0] | -| ssa_flow.rb:16:10:16:13 | ...[...] | semmle.label | ...[...] | | ssa_flow.rb:16:10:16:13 | ...[...] | semmle.label | ...[...] | subpaths #select diff --git a/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.ql b/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.ql index dfd6242a414..e02827eaf8d 100644 --- a/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.ql +++ b/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.ql @@ -5,7 +5,7 @@ import codeql.ruby.AST import TestUtilities.InlineFlowTest import DefaultFlowTest -import PathGraph +import ValueFlow::PathGraph from ValueFlow::PathNode source, ValueFlow::PathNode sink where ValueFlow::flowPath(source, sink) diff --git a/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected b/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected index 93c84461ff1..ec483b6fc8e 100644 --- a/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected @@ -3,763 +3,31 @@ testFailures | string_flow.rb:227:10:227:10 | a | Unexpected result: hasValueFlow=a | edges | string_flow.rb:2:5:2:5 | a | string_flow.rb:3:21:3:21 | a | -| string_flow.rb:2:5:2:5 | a | string_flow.rb:3:21:3:21 | a | -| string_flow.rb:2:9:2:18 | call to source | string_flow.rb:2:5:2:5 | a | | string_flow.rb:2:9:2:18 | call to source | string_flow.rb:2:5:2:5 | a | | string_flow.rb:3:21:3:21 | a | string_flow.rb:3:10:3:22 | call to new | -| string_flow.rb:3:21:3:21 | a | string_flow.rb:3:10:3:22 | call to new | -| string_flow.rb:7:5:7:5 | a | string_flow.rb:9:29:9:29 | a | -| string_flow.rb:7:9:7:18 | call to source | string_flow.rb:7:5:7:5 | a | -| string_flow.rb:8:5:8:5 | b | string_flow.rb:10:29:10:29 | b | -| string_flow.rb:8:9:8:16 | call to source | string_flow.rb:8:5:8:5 | b | -| string_flow.rb:9:29:9:29 | a | string_flow.rb:9:10:9:30 | call to try_convert | -| string_flow.rb:10:29:10:29 | b | string_flow.rb:10:10:10:30 | call to try_convert | -| string_flow.rb:14:5:14:5 | a | string_flow.rb:15:10:15:17 | ... % ... | -| string_flow.rb:14:5:14:5 | a | string_flow.rb:15:17:15:17 | a | -| string_flow.rb:14:5:14:5 | a | string_flow.rb:16:10:16:29 | ... % ... | -| string_flow.rb:14:5:14:5 | a | string_flow.rb:16:28:16:28 | a | -| string_flow.rb:14:5:14:5 | a | string_flow.rb:17:10:17:10 | a | -| string_flow.rb:14:5:14:5 | a | string_flow.rb:17:10:17:18 | ... % ... | -| string_flow.rb:14:9:14:18 | call to source | string_flow.rb:14:5:14:5 | a | -| string_flow.rb:15:17:15:17 | a | string_flow.rb:15:10:15:17 | ... % ... | -| string_flow.rb:16:28:16:28 | a | string_flow.rb:16:10:16:29 | ... % ... | -| string_flow.rb:17:10:17:10 | a | string_flow.rb:17:10:17:18 | ... % ... | -| string_flow.rb:21:5:21:5 | a | string_flow.rb:22:5:22:5 | b | -| string_flow.rb:21:9:21:18 | call to source | string_flow.rb:21:5:21:5 | a | -| string_flow.rb:22:5:22:5 | b | string_flow.rb:23:10:23:10 | b | -| string_flow.rb:27:5:27:5 | a | string_flow.rb:28:5:28:5 | b | -| string_flow.rb:27:9:27:18 | call to source | string_flow.rb:27:5:27:5 | a | -| string_flow.rb:28:5:28:5 | b | string_flow.rb:29:10:29:10 | b | -| string_flow.rb:33:5:33:5 | a | string_flow.rb:34:5:34:5 | b | -| string_flow.rb:33:5:33:5 | a | string_flow.rb:36:5:36:5 | c | -| string_flow.rb:33:9:33:18 | call to source | string_flow.rb:33:5:33:5 | a | -| string_flow.rb:34:5:34:5 | b | string_flow.rb:35:10:35:10 | b | -| string_flow.rb:36:5:36:5 | c | string_flow.rb:37:10:37:10 | c | -| string_flow.rb:41:5:41:5 | a | string_flow.rb:42:10:42:10 | a | -| string_flow.rb:41:9:41:18 | call to source | string_flow.rb:41:5:41:5 | a | -| string_flow.rb:42:10:42:10 | a | string_flow.rb:42:10:42:12 | call to b | -| string_flow.rb:46:5:46:5 | a | string_flow.rb:47:10:47:10 | a | -| string_flow.rb:46:5:46:5 | a | string_flow.rb:48:10:48:10 | a | -| string_flow.rb:46:5:46:5 | a | string_flow.rb:49:10:49:10 | a | -| string_flow.rb:46:9:46:18 | call to source | string_flow.rb:46:5:46:5 | a | -| string_flow.rb:47:10:47:10 | a | string_flow.rb:47:10:47:23 | call to byteslice | -| string_flow.rb:48:10:48:10 | a | string_flow.rb:48:10:48:26 | call to byteslice | -| string_flow.rb:49:10:49:10 | a | string_flow.rb:49:10:49:26 | call to byteslice | -| string_flow.rb:53:5:53:5 | a | string_flow.rb:54:10:54:10 | a | -| string_flow.rb:53:5:53:5 | a | string_flow.rb:55:10:55:10 | a | -| string_flow.rb:53:9:53:18 | call to source | string_flow.rb:53:5:53:5 | a | -| string_flow.rb:54:10:54:10 | a | string_flow.rb:54:10:54:21 | call to capitalize | -| string_flow.rb:55:10:55:10 | a | string_flow.rb:55:10:55:22 | call to capitalize! | -| string_flow.rb:59:5:59:5 | a | string_flow.rb:60:10:60:10 | a | -| string_flow.rb:59:5:59:5 | a | string_flow.rb:61:27:61:27 | a | -| string_flow.rb:59:5:59:5 | a | string_flow.rb:62:10:62:10 | a | -| string_flow.rb:59:5:59:5 | a | string_flow.rb:63:26:63:26 | a | -| string_flow.rb:59:5:59:5 | a | string_flow.rb:64:10:64:10 | a | -| string_flow.rb:59:5:59:5 | a | string_flow.rb:65:26:65:26 | a | -| string_flow.rb:59:9:59:18 | call to source | string_flow.rb:59:5:59:5 | a | -| string_flow.rb:60:10:60:10 | a | string_flow.rb:60:10:60:21 | call to center | -| string_flow.rb:61:27:61:27 | a | string_flow.rb:61:10:61:28 | call to center | -| string_flow.rb:62:10:62:10 | a | string_flow.rb:62:10:62:20 | call to ljust | -| string_flow.rb:63:26:63:26 | a | string_flow.rb:63:10:63:27 | call to ljust | -| string_flow.rb:64:10:64:10 | a | string_flow.rb:64:10:64:20 | call to rjust | -| string_flow.rb:65:26:65:26 | a | string_flow.rb:65:10:65:27 | call to rjust | -| string_flow.rb:69:5:69:5 | a | string_flow.rb:70:10:70:10 | a | -| string_flow.rb:69:5:69:5 | a | string_flow.rb:71:10:71:10 | a | -| string_flow.rb:69:9:69:18 | call to source | string_flow.rb:69:5:69:5 | a | -| string_flow.rb:70:10:70:10 | a | string_flow.rb:70:10:70:16 | call to chomp | -| string_flow.rb:71:10:71:10 | a | string_flow.rb:71:10:71:17 | call to chomp! | -| string_flow.rb:75:5:75:5 | a | string_flow.rb:76:10:76:10 | a | -| string_flow.rb:75:5:75:5 | a | string_flow.rb:77:10:77:10 | a | -| string_flow.rb:75:9:75:18 | call to source | string_flow.rb:75:5:75:5 | a | -| string_flow.rb:76:10:76:10 | a | string_flow.rb:76:10:76:15 | call to chop | -| string_flow.rb:77:10:77:10 | a | string_flow.rb:77:10:77:16 | call to chop! | -| string_flow.rb:83:5:83:5 | a | string_flow.rb:84:5:84:5 | a | | string_flow.rb:83:5:83:5 | a | string_flow.rb:84:5:84:5 | a | | string_flow.rb:83:9:83:18 | call to source | string_flow.rb:83:5:83:5 | a | -| string_flow.rb:83:9:83:18 | call to source | string_flow.rb:83:5:83:5 | a | -| string_flow.rb:84:5:84:5 | [post] a | string_flow.rb:85:10:85:10 | a | | string_flow.rb:84:5:84:5 | [post] a | string_flow.rb:85:10:85:10 | a | | string_flow.rb:84:5:84:5 | a | string_flow.rb:84:5:84:5 | [post] a | -| string_flow.rb:84:5:84:5 | a | string_flow.rb:84:5:84:5 | [post] a | -| string_flow.rb:108:5:108:5 | a | string_flow.rb:109:10:109:10 | a | -| string_flow.rb:108:9:108:18 | call to source | string_flow.rb:108:5:108:5 | a | -| string_flow.rb:109:10:109:10 | [post] a | string_flow.rb:110:10:110:10 | a | -| string_flow.rb:109:10:109:10 | [post] a | string_flow.rb:111:10:111:10 | a | -| string_flow.rb:109:10:109:10 | a | string_flow.rb:109:10:109:10 | [post] a | -| string_flow.rb:109:10:109:10 | a | string_flow.rb:109:10:109:22 | call to delete | -| string_flow.rb:110:10:110:10 | a | string_flow.rb:110:10:110:29 | call to delete_prefix | -| string_flow.rb:111:10:111:10 | a | string_flow.rb:111:10:111:29 | call to delete_suffix | -| string_flow.rb:115:5:115:5 | a | string_flow.rb:116:10:116:10 | a | -| string_flow.rb:115:5:115:5 | a | string_flow.rb:117:10:117:10 | a | -| string_flow.rb:115:5:115:5 | a | string_flow.rb:118:10:118:10 | a | -| string_flow.rb:115:5:115:5 | a | string_flow.rb:119:10:119:10 | a | -| string_flow.rb:115:5:115:5 | a | string_flow.rb:120:10:120:10 | a | -| string_flow.rb:115:5:115:5 | a | string_flow.rb:121:10:121:10 | a | -| string_flow.rb:115:9:115:18 | call to source | string_flow.rb:115:5:115:5 | a | -| string_flow.rb:116:10:116:10 | a | string_flow.rb:116:10:116:19 | call to downcase | -| string_flow.rb:117:10:117:10 | a | string_flow.rb:117:10:117:20 | call to downcase! | -| string_flow.rb:118:10:118:10 | a | string_flow.rb:118:10:118:19 | call to swapcase | -| string_flow.rb:119:10:119:10 | a | string_flow.rb:119:10:119:20 | call to swapcase! | -| string_flow.rb:120:10:120:10 | a | string_flow.rb:120:10:120:17 | call to upcase | -| string_flow.rb:121:10:121:10 | a | string_flow.rb:121:10:121:18 | call to upcase! | -| string_flow.rb:125:5:125:5 | a | string_flow.rb:126:9:126:9 | a | -| string_flow.rb:125:9:125:18 | call to source | string_flow.rb:125:5:125:5 | a | -| string_flow.rb:126:5:126:5 | b | string_flow.rb:127:10:127:10 | b | -| string_flow.rb:126:5:126:5 | b | string_flow.rb:128:10:128:10 | b | -| string_flow.rb:126:9:126:9 | a | string_flow.rb:126:9:126:14 | call to dump | -| string_flow.rb:126:9:126:14 | call to dump | string_flow.rb:126:5:126:5 | b | -| string_flow.rb:128:10:128:10 | b | string_flow.rb:128:10:128:17 | call to undump | -| string_flow.rb:132:5:132:5 | a | string_flow.rb:133:9:133:9 | a | -| string_flow.rb:132:5:132:5 | a | string_flow.rb:135:9:135:9 | a | -| string_flow.rb:132:9:132:18 | call to source | string_flow.rb:132:5:132:5 | a | -| string_flow.rb:133:5:133:5 | b | string_flow.rb:134:10:134:10 | b | -| string_flow.rb:133:9:133:9 | a | string_flow.rb:133:9:133:40 | call to each_line | -| string_flow.rb:133:9:133:9 | a | string_flow.rb:133:24:133:27 | line | -| string_flow.rb:133:9:133:40 | call to each_line | string_flow.rb:133:5:133:5 | b | -| string_flow.rb:133:24:133:27 | line | string_flow.rb:133:35:133:38 | line | -| string_flow.rb:135:5:135:5 | c [element] | string_flow.rb:136:10:136:10 | c [element] | -| string_flow.rb:135:9:135:9 | a | string_flow.rb:135:9:135:19 | call to each_line [element] | -| string_flow.rb:135:9:135:19 | call to each_line [element] | string_flow.rb:135:5:135:5 | c [element] | -| string_flow.rb:136:10:136:10 | c [element] | string_flow.rb:136:10:136:15 | call to to_a [element] | -| string_flow.rb:136:10:136:15 | call to to_a [element] | string_flow.rb:136:10:136:18 | ...[...] | -| string_flow.rb:140:5:140:5 | a | string_flow.rb:141:9:141:9 | a | -| string_flow.rb:140:5:140:5 | a | string_flow.rb:143:9:143:9 | a | -| string_flow.rb:140:9:140:18 | call to source | string_flow.rb:140:5:140:5 | a | -| string_flow.rb:141:5:141:5 | b | string_flow.rb:142:10:142:10 | b | -| string_flow.rb:141:9:141:9 | a | string_flow.rb:141:9:141:36 | call to lines | -| string_flow.rb:141:9:141:9 | a | string_flow.rb:141:20:141:23 | line | -| string_flow.rb:141:9:141:36 | call to lines | string_flow.rb:141:5:141:5 | b | -| string_flow.rb:141:20:141:23 | line | string_flow.rb:141:31:141:34 | line | -| string_flow.rb:143:5:143:5 | c [element] | string_flow.rb:144:10:144:10 | c [element] | -| string_flow.rb:143:9:143:9 | a | string_flow.rb:143:9:143:15 | call to lines [element] | -| string_flow.rb:143:9:143:15 | call to lines [element] | string_flow.rb:143:5:143:5 | c [element] | -| string_flow.rb:144:10:144:10 | c [element] | string_flow.rb:144:10:144:13 | ...[...] | -| string_flow.rb:148:5:148:5 | a | string_flow.rb:149:10:149:10 | a | -| string_flow.rb:148:5:148:5 | a | string_flow.rb:150:10:150:10 | a | -| string_flow.rb:148:5:148:5 | a | string_flow.rb:151:10:151:10 | a | -| string_flow.rb:148:5:148:5 | a | string_flow.rb:152:10:152:10 | a | -| string_flow.rb:148:9:148:18 | call to source | string_flow.rb:148:5:148:5 | a | -| string_flow.rb:149:10:149:10 | a | string_flow.rb:149:10:149:26 | call to encode | -| string_flow.rb:150:10:150:10 | a | string_flow.rb:150:10:150:27 | call to encode! | -| string_flow.rb:151:10:151:10 | a | string_flow.rb:151:10:151:28 | call to unicode_normalize | -| string_flow.rb:152:10:152:10 | a | string_flow.rb:152:10:152:29 | call to unicode_normalize! | -| string_flow.rb:156:5:156:5 | a | string_flow.rb:157:10:157:10 | a | -| string_flow.rb:156:9:156:18 | call to source | string_flow.rb:156:5:156:5 | a | -| string_flow.rb:157:10:157:10 | a | string_flow.rb:157:10:157:34 | call to force_encoding | -| string_flow.rb:161:5:161:5 | a | string_flow.rb:162:10:162:10 | a | -| string_flow.rb:161:9:161:18 | call to source | string_flow.rb:161:5:161:5 | a | -| string_flow.rb:162:10:162:10 | a | string_flow.rb:162:10:162:17 | call to freeze | -| string_flow.rb:166:5:166:5 | a | string_flow.rb:168:10:168:10 | a | -| string_flow.rb:166:5:166:5 | a | string_flow.rb:169:10:169:10 | a | -| string_flow.rb:166:5:166:5 | a | string_flow.rb:170:10:170:10 | a | -| string_flow.rb:166:5:166:5 | a | string_flow.rb:171:10:171:10 | a | -| string_flow.rb:166:9:166:18 | call to source | string_flow.rb:166:5:166:5 | a | -| string_flow.rb:167:5:167:5 | c | string_flow.rb:168:22:168:22 | c | -| string_flow.rb:167:5:167:5 | c | string_flow.rb:169:23:169:23 | c | -| string_flow.rb:167:9:167:18 | call to source | string_flow.rb:167:5:167:5 | c | -| string_flow.rb:168:10:168:10 | a | string_flow.rb:168:10:168:23 | call to gsub | -| string_flow.rb:168:22:168:22 | c | string_flow.rb:168:10:168:23 | call to gsub | -| string_flow.rb:169:10:169:10 | a | string_flow.rb:169:10:169:24 | call to gsub! | -| string_flow.rb:169:23:169:23 | c | string_flow.rb:169:10:169:24 | call to gsub! | -| string_flow.rb:170:10:170:10 | a | string_flow.rb:170:10:170:43 | call to gsub | -| string_flow.rb:170:32:170:41 | call to source | string_flow.rb:170:10:170:43 | call to gsub | -| string_flow.rb:171:10:171:10 | a | string_flow.rb:171:10:171:44 | call to gsub! | -| string_flow.rb:171:33:171:42 | call to source | string_flow.rb:171:10:171:44 | call to gsub! | -| string_flow.rb:175:5:175:5 | a | string_flow.rb:177:10:177:10 | a | -| string_flow.rb:175:5:175:5 | a | string_flow.rb:178:10:178:10 | a | -| string_flow.rb:175:5:175:5 | a | string_flow.rb:179:10:179:10 | a | -| string_flow.rb:175:5:175:5 | a | string_flow.rb:180:10:180:10 | a | -| string_flow.rb:175:9:175:18 | call to source | string_flow.rb:175:5:175:5 | a | -| string_flow.rb:176:5:176:5 | c | string_flow.rb:177:21:177:21 | c | -| string_flow.rb:176:5:176:5 | c | string_flow.rb:178:22:178:22 | c | -| string_flow.rb:176:9:176:18 | call to source | string_flow.rb:176:5:176:5 | c | -| string_flow.rb:177:10:177:10 | a | string_flow.rb:177:10:177:22 | call to sub | -| string_flow.rb:177:21:177:21 | c | string_flow.rb:177:10:177:22 | call to sub | -| string_flow.rb:178:10:178:10 | a | string_flow.rb:178:10:178:23 | call to sub! | -| string_flow.rb:178:22:178:22 | c | string_flow.rb:178:10:178:23 | call to sub! | -| string_flow.rb:179:10:179:10 | a | string_flow.rb:179:10:179:42 | call to sub | -| string_flow.rb:179:31:179:40 | call to source | string_flow.rb:179:10:179:42 | call to sub | -| string_flow.rb:180:10:180:10 | a | string_flow.rb:180:10:180:43 | call to sub! | -| string_flow.rb:180:32:180:41 | call to source | string_flow.rb:180:10:180:43 | call to sub! | -| string_flow.rb:191:5:191:5 | a | string_flow.rb:192:10:192:10 | a | -| string_flow.rb:191:9:191:18 | call to source | string_flow.rb:191:5:191:5 | a | -| string_flow.rb:192:10:192:10 | a | string_flow.rb:192:10:192:18 | call to inspect | -| string_flow.rb:196:5:196:5 | a | string_flow.rb:197:10:197:10 | a | -| string_flow.rb:196:5:196:5 | a | string_flow.rb:198:10:198:10 | a | -| string_flow.rb:196:5:196:5 | a | string_flow.rb:199:10:199:10 | a | -| string_flow.rb:196:5:196:5 | a | string_flow.rb:200:10:200:10 | a | -| string_flow.rb:196:5:196:5 | a | string_flow.rb:201:10:201:10 | a | -| string_flow.rb:196:5:196:5 | a | string_flow.rb:202:10:202:10 | a | -| string_flow.rb:196:9:196:18 | call to source | string_flow.rb:196:5:196:5 | a | -| string_flow.rb:197:10:197:10 | a | string_flow.rb:197:10:197:16 | call to strip | -| string_flow.rb:198:10:198:10 | a | string_flow.rb:198:10:198:17 | call to strip! | -| string_flow.rb:199:10:199:10 | a | string_flow.rb:199:10:199:17 | call to lstrip | -| string_flow.rb:200:10:200:10 | a | string_flow.rb:200:10:200:18 | call to lstrip! | -| string_flow.rb:201:10:201:10 | a | string_flow.rb:201:10:201:17 | call to rstrip | -| string_flow.rb:202:10:202:10 | a | string_flow.rb:202:10:202:18 | call to rstrip! | -| string_flow.rb:206:5:206:5 | a | string_flow.rb:207:10:207:10 | a | -| string_flow.rb:206:5:206:5 | a | string_flow.rb:208:10:208:10 | a | -| string_flow.rb:206:5:206:5 | a | string_flow.rb:209:10:209:10 | a | -| string_flow.rb:206:5:206:5 | a | string_flow.rb:210:10:210:10 | a | -| string_flow.rb:206:9:206:18 | call to source | string_flow.rb:206:5:206:5 | a | -| string_flow.rb:207:10:207:10 | a | string_flow.rb:207:10:207:15 | call to next | -| string_flow.rb:208:10:208:10 | a | string_flow.rb:208:10:208:16 | call to next! | -| string_flow.rb:209:10:209:10 | a | string_flow.rb:209:10:209:15 | call to succ | -| string_flow.rb:210:10:210:10 | a | string_flow.rb:210:10:210:16 | call to succ! | -| string_flow.rb:214:5:214:5 | a | string_flow.rb:215:9:215:9 | a | -| string_flow.rb:214:9:214:18 | call to source | string_flow.rb:214:5:214:5 | a | -| string_flow.rb:215:5:215:5 | b [element 0] | string_flow.rb:216:10:216:10 | b [element 0] | -| string_flow.rb:215:5:215:5 | b [element 1] | string_flow.rb:217:10:217:10 | b [element 1] | -| string_flow.rb:215:5:215:5 | b [element 2] | string_flow.rb:218:10:218:10 | b [element 2] | -| string_flow.rb:215:9:215:9 | a | string_flow.rb:215:9:215:24 | call to partition [element 0] | -| string_flow.rb:215:9:215:9 | a | string_flow.rb:215:9:215:24 | call to partition [element 1] | -| string_flow.rb:215:9:215:9 | a | string_flow.rb:215:9:215:24 | call to partition [element 2] | -| string_flow.rb:215:9:215:24 | call to partition [element 0] | string_flow.rb:215:5:215:5 | b [element 0] | -| string_flow.rb:215:9:215:24 | call to partition [element 1] | string_flow.rb:215:5:215:5 | b [element 1] | -| string_flow.rb:215:9:215:24 | call to partition [element 2] | string_flow.rb:215:5:215:5 | b [element 2] | -| string_flow.rb:216:10:216:10 | b [element 0] | string_flow.rb:216:10:216:13 | ...[...] | -| string_flow.rb:217:10:217:10 | b [element 1] | string_flow.rb:217:10:217:13 | ...[...] | -| string_flow.rb:218:10:218:10 | b [element 2] | string_flow.rb:218:10:218:13 | ...[...] | -| string_flow.rb:223:5:223:5 | a | string_flow.rb:225:10:225:10 | a | | string_flow.rb:223:5:223:5 | a | string_flow.rb:225:10:225:10 | a | | string_flow.rb:223:9:223:18 | call to source | string_flow.rb:223:5:223:5 | a | -| string_flow.rb:223:9:223:18 | call to source | string_flow.rb:223:5:223:5 | a | -| string_flow.rb:224:5:224:5 | b | string_flow.rb:225:20:225:20 | b | -| string_flow.rb:224:9:224:18 | call to source | string_flow.rb:224:5:224:5 | b | -| string_flow.rb:225:10:225:10 | [post] a | string_flow.rb:227:10:227:10 | a | | string_flow.rb:225:10:225:10 | [post] a | string_flow.rb:227:10:227:10 | a | | string_flow.rb:225:10:225:10 | a | string_flow.rb:225:10:225:10 | [post] a | -| string_flow.rb:225:10:225:10 | a | string_flow.rb:225:10:225:10 | [post] a | -| string_flow.rb:225:20:225:20 | b | string_flow.rb:225:10:225:10 | [post] a | -| string_flow.rb:225:20:225:20 | b | string_flow.rb:225:10:225:21 | call to replace | -| string_flow.rb:231:5:231:5 | a | string_flow.rb:232:10:232:10 | a | -| string_flow.rb:231:9:231:18 | call to source | string_flow.rb:231:5:231:5 | a | -| string_flow.rb:232:10:232:10 | a | string_flow.rb:232:10:232:18 | call to reverse | -| string_flow.rb:236:5:236:5 | a | string_flow.rb:237:9:237:9 | a | -| string_flow.rb:236:5:236:5 | a | string_flow.rb:238:9:238:9 | a | -| string_flow.rb:236:5:236:5 | a | string_flow.rb:240:9:240:9 | a | -| string_flow.rb:236:9:236:18 | call to source | string_flow.rb:236:5:236:5 | a | -| string_flow.rb:237:9:237:9 | a | string_flow.rb:237:24:237:24 | x | -| string_flow.rb:237:24:237:24 | x | string_flow.rb:237:35:237:35 | x | -| string_flow.rb:238:5:238:5 | b | string_flow.rb:239:10:239:10 | b | -| string_flow.rb:238:9:238:9 | a | string_flow.rb:238:9:238:37 | call to scan | -| string_flow.rb:238:9:238:9 | a | string_flow.rb:238:27:238:27 | y | -| string_flow.rb:238:9:238:37 | call to scan | string_flow.rb:238:5:238:5 | b | -| string_flow.rb:238:27:238:27 | y | string_flow.rb:238:35:238:35 | y | -| string_flow.rb:240:5:240:5 | b [element] | string_flow.rb:241:10:241:10 | b [element] | -| string_flow.rb:240:5:240:5 | b [element] | string_flow.rb:242:10:242:10 | b [element] | -| string_flow.rb:240:9:240:9 | a | string_flow.rb:240:9:240:19 | call to scan [element] | -| string_flow.rb:240:9:240:19 | call to scan [element] | string_flow.rb:240:5:240:5 | b [element] | -| string_flow.rb:241:10:241:10 | b [element] | string_flow.rb:241:10:241:13 | ...[...] | -| string_flow.rb:242:10:242:10 | b [element] | string_flow.rb:242:10:242:13 | ...[...] | -| string_flow.rb:246:5:246:5 | a | string_flow.rb:247:10:247:10 | a | -| string_flow.rb:246:5:246:5 | a | string_flow.rb:248:20:248:20 | a | -| string_flow.rb:246:5:246:5 | a | string_flow.rb:249:5:249:5 | a | -| string_flow.rb:246:5:246:5 | a | string_flow.rb:250:26:250:26 | a | -| string_flow.rb:246:5:246:5 | a | string_flow.rb:252:10:252:10 | a | -| string_flow.rb:246:5:246:5 | a | string_flow.rb:253:21:253:21 | a | -| string_flow.rb:246:9:246:18 | call to source | string_flow.rb:246:5:246:5 | a | -| string_flow.rb:247:10:247:10 | a | string_flow.rb:247:10:247:21 | call to scrub | -| string_flow.rb:248:20:248:20 | a | string_flow.rb:248:10:248:21 | call to scrub | -| string_flow.rb:249:5:249:5 | a | string_flow.rb:249:16:249:16 | x | -| string_flow.rb:249:16:249:16 | x | string_flow.rb:249:24:249:24 | x | -| string_flow.rb:250:26:250:26 | a | string_flow.rb:250:10:250:28 | call to scrub | -| string_flow.rb:252:10:252:10 | a | string_flow.rb:252:10:252:22 | call to scrub! | -| string_flow.rb:253:21:253:21 | a | string_flow.rb:253:10:253:22 | call to scrub! | -| string_flow.rb:255:5:255:5 | a | string_flow.rb:256:5:256:5 | a | -| string_flow.rb:255:5:255:5 | a | string_flow.rb:258:27:258:27 | a | -| string_flow.rb:255:9:255:18 | call to source | string_flow.rb:255:5:255:5 | a | -| string_flow.rb:256:5:256:5 | a | string_flow.rb:256:17:256:17 | x | -| string_flow.rb:256:17:256:17 | x | string_flow.rb:256:25:256:25 | x | -| string_flow.rb:258:27:258:27 | a | string_flow.rb:258:10:258:29 | call to scrub! | -| string_flow.rb:262:5:262:5 | a | string_flow.rb:263:10:263:10 | a | -| string_flow.rb:262:9:262:18 | call to source | string_flow.rb:262:5:262:5 | a | -| string_flow.rb:263:10:263:10 | a | string_flow.rb:263:10:263:22 | call to shellescape | -| string_flow.rb:267:5:267:5 | a | string_flow.rb:268:9:268:9 | a | -| string_flow.rb:267:9:267:18 | call to source | string_flow.rb:267:5:267:5 | a | -| string_flow.rb:268:5:268:5 | b [element] | string_flow.rb:269:10:269:10 | b [element] | -| string_flow.rb:268:9:268:9 | a | string_flow.rb:268:9:268:20 | call to shellsplit [element] | -| string_flow.rb:268:9:268:20 | call to shellsplit [element] | string_flow.rb:268:5:268:5 | b [element] | -| string_flow.rb:269:10:269:10 | b [element] | string_flow.rb:269:10:269:13 | ...[...] | -| string_flow.rb:273:5:273:5 | a | string_flow.rb:274:9:274:9 | a | -| string_flow.rb:273:5:273:5 | a | string_flow.rb:277:9:277:9 | a | -| string_flow.rb:273:9:273:18 | call to source | string_flow.rb:273:5:273:5 | a | -| string_flow.rb:274:5:274:5 | b | string_flow.rb:275:10:275:10 | b | -| string_flow.rb:274:9:274:9 | a | string_flow.rb:274:9:274:18 | call to slice | -| string_flow.rb:274:9:274:18 | call to slice | string_flow.rb:274:5:274:5 | b | -| string_flow.rb:275:10:275:10 | b | string_flow.rb:275:10:275:13 | ...[...] | -| string_flow.rb:277:5:277:5 | b | string_flow.rb:278:10:278:10 | b | -| string_flow.rb:277:9:277:9 | [post] a | string_flow.rb:280:9:280:9 | a | -| string_flow.rb:277:9:277:9 | [post] a | string_flow.rb:283:9:283:9 | a | -| string_flow.rb:277:9:277:9 | [post] a [element 1] | string_flow.rb:283:9:283:9 | a [element 1] | -| string_flow.rb:277:9:277:9 | [post] a [element 2] | string_flow.rb:283:9:283:9 | a [element 2] | -| string_flow.rb:277:9:277:9 | [post] a [element] | string_flow.rb:283:9:283:9 | a [element] | -| string_flow.rb:277:9:277:9 | a | string_flow.rb:277:9:277:9 | [post] a | -| string_flow.rb:277:9:277:9 | a | string_flow.rb:277:9:277:9 | [post] a [element 1] | -| string_flow.rb:277:9:277:9 | a | string_flow.rb:277:9:277:9 | [post] a [element 2] | -| string_flow.rb:277:9:277:9 | a | string_flow.rb:277:9:277:9 | [post] a [element] | -| string_flow.rb:277:9:277:9 | a | string_flow.rb:277:9:277:19 | call to slice! | -| string_flow.rb:277:9:277:19 | call to slice! | string_flow.rb:277:5:277:5 | b | -| string_flow.rb:278:10:278:10 | b | string_flow.rb:278:10:278:13 | ...[...] | -| string_flow.rb:280:5:280:5 | b | string_flow.rb:281:10:281:10 | b | -| string_flow.rb:280:9:280:9 | a | string_flow.rb:280:9:280:20 | call to split | -| string_flow.rb:280:9:280:20 | call to split | string_flow.rb:280:5:280:5 | b | -| string_flow.rb:281:10:281:10 | b | string_flow.rb:281:10:281:13 | ...[...] | -| string_flow.rb:283:5:283:5 | b | string_flow.rb:284:10:284:10 | b | -| string_flow.rb:283:5:283:5 | b [element 0] | string_flow.rb:284:10:284:10 | b [element 0] | -| string_flow.rb:283:5:283:5 | b [element 1] | string_flow.rb:284:10:284:10 | b [element 1] | -| string_flow.rb:283:5:283:5 | b [element] | string_flow.rb:284:10:284:10 | b [element] | -| string_flow.rb:283:9:283:9 | a | string_flow.rb:283:9:283:14 | ...[...] | -| string_flow.rb:283:9:283:9 | a | string_flow.rb:283:9:283:14 | ...[...] [element 0] | -| string_flow.rb:283:9:283:9 | a | string_flow.rb:283:9:283:14 | ...[...] [element 1] | -| string_flow.rb:283:9:283:9 | a [element 1] | string_flow.rb:283:9:283:14 | ...[...] [element 0] | -| string_flow.rb:283:9:283:9 | a [element 2] | string_flow.rb:283:9:283:14 | ...[...] [element 1] | -| string_flow.rb:283:9:283:9 | a [element] | string_flow.rb:283:9:283:14 | ...[...] [element] | -| string_flow.rb:283:9:283:14 | ...[...] | string_flow.rb:283:5:283:5 | b | -| string_flow.rb:283:9:283:14 | ...[...] [element 0] | string_flow.rb:283:5:283:5 | b [element 0] | -| string_flow.rb:283:9:283:14 | ...[...] [element 1] | string_flow.rb:283:5:283:5 | b [element 1] | -| string_flow.rb:283:9:283:14 | ...[...] [element] | string_flow.rb:283:5:283:5 | b [element] | -| string_flow.rb:284:10:284:10 | b | string_flow.rb:284:10:284:13 | ...[...] | -| string_flow.rb:284:10:284:10 | b [element 0] | string_flow.rb:284:10:284:13 | ...[...] | -| string_flow.rb:284:10:284:10 | b [element 1] | string_flow.rb:284:10:284:13 | ...[...] | -| string_flow.rb:284:10:284:10 | b [element] | string_flow.rb:284:10:284:13 | ...[...] | -| string_flow.rb:288:5:288:5 | a | string_flow.rb:289:10:289:10 | a | -| string_flow.rb:288:5:288:5 | a | string_flow.rb:290:10:290:10 | a | -| string_flow.rb:288:5:288:5 | a | string_flow.rb:291:10:291:10 | a | -| string_flow.rb:288:5:288:5 | a | string_flow.rb:292:10:292:10 | a | -| string_flow.rb:288:9:288:18 | call to source | string_flow.rb:288:5:288:5 | a | -| string_flow.rb:289:10:289:10 | a | string_flow.rb:289:10:289:18 | call to squeeze | -| string_flow.rb:290:10:290:10 | a | string_flow.rb:290:10:290:23 | call to squeeze | -| string_flow.rb:291:10:291:10 | a | string_flow.rb:291:10:291:19 | call to squeeze! | -| string_flow.rb:292:10:292:10 | a | string_flow.rb:292:10:292:24 | call to squeeze! | -| string_flow.rb:296:5:296:5 | a | string_flow.rb:297:10:297:10 | a | -| string_flow.rb:296:5:296:5 | a | string_flow.rb:298:10:298:10 | a | -| string_flow.rb:296:9:296:18 | call to source | string_flow.rb:296:5:296:5 | a | -| string_flow.rb:297:10:297:10 | a | string_flow.rb:297:10:297:17 | call to to_str | -| string_flow.rb:298:10:298:10 | a | string_flow.rb:298:10:298:15 | call to to_s | -| string_flow.rb:302:5:302:5 | a | string_flow.rb:303:10:303:10 | a | -| string_flow.rb:302:5:302:5 | a | string_flow.rb:304:22:304:22 | a | -| string_flow.rb:302:5:302:5 | a | string_flow.rb:305:10:305:10 | a | -| string_flow.rb:302:5:302:5 | a | string_flow.rb:306:23:306:23 | a | -| string_flow.rb:302:5:302:5 | a | string_flow.rb:307:10:307:10 | a | -| string_flow.rb:302:5:302:5 | a | string_flow.rb:308:24:308:24 | a | -| string_flow.rb:302:5:302:5 | a | string_flow.rb:309:10:309:10 | a | -| string_flow.rb:302:5:302:5 | a | string_flow.rb:310:25:310:25 | a | -| string_flow.rb:302:9:302:18 | call to source | string_flow.rb:302:5:302:5 | a | -| string_flow.rb:303:10:303:10 | a | string_flow.rb:303:10:303:23 | call to tr | -| string_flow.rb:304:22:304:22 | a | string_flow.rb:304:10:304:23 | call to tr | -| string_flow.rb:305:10:305:10 | a | string_flow.rb:305:10:305:24 | call to tr! | -| string_flow.rb:306:23:306:23 | a | string_flow.rb:306:10:306:24 | call to tr! | -| string_flow.rb:307:10:307:10 | a | string_flow.rb:307:10:307:25 | call to tr_s | -| string_flow.rb:308:24:308:24 | a | string_flow.rb:308:10:308:25 | call to tr_s | -| string_flow.rb:309:10:309:10 | a | string_flow.rb:309:10:309:26 | call to tr_s! | -| string_flow.rb:310:25:310:25 | a | string_flow.rb:310:10:310:26 | call to tr_s! | -| string_flow.rb:314:5:314:5 | a | string_flow.rb:315:5:315:5 | a | -| string_flow.rb:314:5:314:5 | a | string_flow.rb:316:5:316:5 | a | -| string_flow.rb:314:5:314:5 | a | string_flow.rb:317:14:317:14 | a | -| string_flow.rb:314:9:314:18 | call to source | string_flow.rb:314:5:314:5 | a | -| string_flow.rb:315:5:315:5 | a | string_flow.rb:315:20:315:20 | x | -| string_flow.rb:315:20:315:20 | x | string_flow.rb:315:28:315:28 | x | -| string_flow.rb:316:5:316:5 | a | string_flow.rb:316:26:316:26 | x | -| string_flow.rb:316:26:316:26 | x | string_flow.rb:316:34:316:34 | x | -| string_flow.rb:317:14:317:14 | a | string_flow.rb:317:20:317:20 | x | -| string_flow.rb:317:20:317:20 | x | string_flow.rb:317:28:317:28 | x | nodes | string_flow.rb:2:5:2:5 | a | semmle.label | a | -| string_flow.rb:2:5:2:5 | a | semmle.label | a | -| string_flow.rb:2:9:2:18 | call to source | semmle.label | call to source | | string_flow.rb:2:9:2:18 | call to source | semmle.label | call to source | | string_flow.rb:3:10:3:22 | call to new | semmle.label | call to new | -| string_flow.rb:3:10:3:22 | call to new | semmle.label | call to new | | string_flow.rb:3:21:3:21 | a | semmle.label | a | -| string_flow.rb:3:21:3:21 | a | semmle.label | a | -| string_flow.rb:7:5:7:5 | a | semmle.label | a | -| string_flow.rb:7:9:7:18 | call to source | semmle.label | call to source | -| string_flow.rb:8:5:8:5 | b | semmle.label | b | -| string_flow.rb:8:9:8:16 | call to source | semmle.label | call to source | -| string_flow.rb:9:10:9:30 | call to try_convert | semmle.label | call to try_convert | -| string_flow.rb:9:29:9:29 | a | semmle.label | a | -| string_flow.rb:10:10:10:30 | call to try_convert | semmle.label | call to try_convert | -| string_flow.rb:10:29:10:29 | b | semmle.label | b | -| string_flow.rb:14:5:14:5 | a | semmle.label | a | -| string_flow.rb:14:9:14:18 | call to source | semmle.label | call to source | -| string_flow.rb:15:10:15:17 | ... % ... | semmle.label | ... % ... | -| string_flow.rb:15:17:15:17 | a | semmle.label | a | -| string_flow.rb:16:10:16:29 | ... % ... | semmle.label | ... % ... | -| string_flow.rb:16:28:16:28 | a | semmle.label | a | -| string_flow.rb:17:10:17:10 | a | semmle.label | a | -| string_flow.rb:17:10:17:18 | ... % ... | semmle.label | ... % ... | -| string_flow.rb:21:5:21:5 | a | semmle.label | a | -| string_flow.rb:21:9:21:18 | call to source | semmle.label | call to source | -| string_flow.rb:22:5:22:5 | b | semmle.label | b | -| string_flow.rb:23:10:23:10 | b | semmle.label | b | -| string_flow.rb:27:5:27:5 | a | semmle.label | a | -| string_flow.rb:27:9:27:18 | call to source | semmle.label | call to source | -| string_flow.rb:28:5:28:5 | b | semmle.label | b | -| string_flow.rb:29:10:29:10 | b | semmle.label | b | -| string_flow.rb:33:5:33:5 | a | semmle.label | a | -| string_flow.rb:33:9:33:18 | call to source | semmle.label | call to source | -| string_flow.rb:34:5:34:5 | b | semmle.label | b | -| string_flow.rb:35:10:35:10 | b | semmle.label | b | -| string_flow.rb:36:5:36:5 | c | semmle.label | c | -| string_flow.rb:37:10:37:10 | c | semmle.label | c | -| string_flow.rb:41:5:41:5 | a | semmle.label | a | -| string_flow.rb:41:9:41:18 | call to source | semmle.label | call to source | -| string_flow.rb:42:10:42:10 | a | semmle.label | a | -| string_flow.rb:42:10:42:12 | call to b | semmle.label | call to b | -| string_flow.rb:46:5:46:5 | a | semmle.label | a | -| string_flow.rb:46:9:46:18 | call to source | semmle.label | call to source | -| string_flow.rb:47:10:47:10 | a | semmle.label | a | -| string_flow.rb:47:10:47:23 | call to byteslice | semmle.label | call to byteslice | -| string_flow.rb:48:10:48:10 | a | semmle.label | a | -| string_flow.rb:48:10:48:26 | call to byteslice | semmle.label | call to byteslice | -| string_flow.rb:49:10:49:10 | a | semmle.label | a | -| string_flow.rb:49:10:49:26 | call to byteslice | semmle.label | call to byteslice | -| string_flow.rb:53:5:53:5 | a | semmle.label | a | -| string_flow.rb:53:9:53:18 | call to source | semmle.label | call to source | -| string_flow.rb:54:10:54:10 | a | semmle.label | a | -| string_flow.rb:54:10:54:21 | call to capitalize | semmle.label | call to capitalize | -| string_flow.rb:55:10:55:10 | a | semmle.label | a | -| string_flow.rb:55:10:55:22 | call to capitalize! | semmle.label | call to capitalize! | -| string_flow.rb:59:5:59:5 | a | semmle.label | a | -| string_flow.rb:59:9:59:18 | call to source | semmle.label | call to source | -| string_flow.rb:60:10:60:10 | a | semmle.label | a | -| string_flow.rb:60:10:60:21 | call to center | semmle.label | call to center | -| string_flow.rb:61:10:61:28 | call to center | semmle.label | call to center | -| string_flow.rb:61:27:61:27 | a | semmle.label | a | -| string_flow.rb:62:10:62:10 | a | semmle.label | a | -| string_flow.rb:62:10:62:20 | call to ljust | semmle.label | call to ljust | -| string_flow.rb:63:10:63:27 | call to ljust | semmle.label | call to ljust | -| string_flow.rb:63:26:63:26 | a | semmle.label | a | -| string_flow.rb:64:10:64:10 | a | semmle.label | a | -| string_flow.rb:64:10:64:20 | call to rjust | semmle.label | call to rjust | -| string_flow.rb:65:10:65:27 | call to rjust | semmle.label | call to rjust | -| string_flow.rb:65:26:65:26 | a | semmle.label | a | -| string_flow.rb:69:5:69:5 | a | semmle.label | a | -| string_flow.rb:69:9:69:18 | call to source | semmle.label | call to source | -| string_flow.rb:70:10:70:10 | a | semmle.label | a | -| string_flow.rb:70:10:70:16 | call to chomp | semmle.label | call to chomp | -| string_flow.rb:71:10:71:10 | a | semmle.label | a | -| string_flow.rb:71:10:71:17 | call to chomp! | semmle.label | call to chomp! | -| string_flow.rb:75:5:75:5 | a | semmle.label | a | -| string_flow.rb:75:9:75:18 | call to source | semmle.label | call to source | -| string_flow.rb:76:10:76:10 | a | semmle.label | a | -| string_flow.rb:76:10:76:15 | call to chop | semmle.label | call to chop | -| string_flow.rb:77:10:77:10 | a | semmle.label | a | -| string_flow.rb:77:10:77:16 | call to chop! | semmle.label | call to chop! | -| string_flow.rb:83:5:83:5 | a | semmle.label | a | | string_flow.rb:83:5:83:5 | a | semmle.label | a | | string_flow.rb:83:9:83:18 | call to source | semmle.label | call to source | -| string_flow.rb:83:9:83:18 | call to source | semmle.label | call to source | -| string_flow.rb:84:5:84:5 | [post] a | semmle.label | [post] a | | string_flow.rb:84:5:84:5 | [post] a | semmle.label | [post] a | | string_flow.rb:84:5:84:5 | a | semmle.label | a | -| string_flow.rb:84:5:84:5 | a | semmle.label | a | | string_flow.rb:85:10:85:10 | a | semmle.label | a | -| string_flow.rb:85:10:85:10 | a | semmle.label | a | -| string_flow.rb:108:5:108:5 | a | semmle.label | a | -| string_flow.rb:108:9:108:18 | call to source | semmle.label | call to source | -| string_flow.rb:109:10:109:10 | [post] a | semmle.label | [post] a | -| string_flow.rb:109:10:109:10 | a | semmle.label | a | -| string_flow.rb:109:10:109:22 | call to delete | semmle.label | call to delete | -| string_flow.rb:110:10:110:10 | a | semmle.label | a | -| string_flow.rb:110:10:110:29 | call to delete_prefix | semmle.label | call to delete_prefix | -| string_flow.rb:111:10:111:10 | a | semmle.label | a | -| string_flow.rb:111:10:111:29 | call to delete_suffix | semmle.label | call to delete_suffix | -| string_flow.rb:115:5:115:5 | a | semmle.label | a | -| string_flow.rb:115:9:115:18 | call to source | semmle.label | call to source | -| string_flow.rb:116:10:116:10 | a | semmle.label | a | -| string_flow.rb:116:10:116:19 | call to downcase | semmle.label | call to downcase | -| string_flow.rb:117:10:117:10 | a | semmle.label | a | -| string_flow.rb:117:10:117:20 | call to downcase! | semmle.label | call to downcase! | -| string_flow.rb:118:10:118:10 | a | semmle.label | a | -| string_flow.rb:118:10:118:19 | call to swapcase | semmle.label | call to swapcase | -| string_flow.rb:119:10:119:10 | a | semmle.label | a | -| string_flow.rb:119:10:119:20 | call to swapcase! | semmle.label | call to swapcase! | -| string_flow.rb:120:10:120:10 | a | semmle.label | a | -| string_flow.rb:120:10:120:17 | call to upcase | semmle.label | call to upcase | -| string_flow.rb:121:10:121:10 | a | semmle.label | a | -| string_flow.rb:121:10:121:18 | call to upcase! | semmle.label | call to upcase! | -| string_flow.rb:125:5:125:5 | a | semmle.label | a | -| string_flow.rb:125:9:125:18 | call to source | semmle.label | call to source | -| string_flow.rb:126:5:126:5 | b | semmle.label | b | -| string_flow.rb:126:9:126:9 | a | semmle.label | a | -| string_flow.rb:126:9:126:14 | call to dump | semmle.label | call to dump | -| string_flow.rb:127:10:127:10 | b | semmle.label | b | -| string_flow.rb:128:10:128:10 | b | semmle.label | b | -| string_flow.rb:128:10:128:17 | call to undump | semmle.label | call to undump | -| string_flow.rb:132:5:132:5 | a | semmle.label | a | -| string_flow.rb:132:9:132:18 | call to source | semmle.label | call to source | -| string_flow.rb:133:5:133:5 | b | semmle.label | b | -| string_flow.rb:133:9:133:9 | a | semmle.label | a | -| string_flow.rb:133:9:133:40 | call to each_line | semmle.label | call to each_line | -| string_flow.rb:133:24:133:27 | line | semmle.label | line | -| string_flow.rb:133:35:133:38 | line | semmle.label | line | -| string_flow.rb:134:10:134:10 | b | semmle.label | b | -| string_flow.rb:135:5:135:5 | c [element] | semmle.label | c [element] | -| string_flow.rb:135:9:135:9 | a | semmle.label | a | -| string_flow.rb:135:9:135:19 | call to each_line [element] | semmle.label | call to each_line [element] | -| string_flow.rb:136:10:136:10 | c [element] | semmle.label | c [element] | -| string_flow.rb:136:10:136:15 | call to to_a [element] | semmle.label | call to to_a [element] | -| string_flow.rb:136:10:136:18 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:140:5:140:5 | a | semmle.label | a | -| string_flow.rb:140:9:140:18 | call to source | semmle.label | call to source | -| string_flow.rb:141:5:141:5 | b | semmle.label | b | -| string_flow.rb:141:9:141:9 | a | semmle.label | a | -| string_flow.rb:141:9:141:36 | call to lines | semmle.label | call to lines | -| string_flow.rb:141:20:141:23 | line | semmle.label | line | -| string_flow.rb:141:31:141:34 | line | semmle.label | line | -| string_flow.rb:142:10:142:10 | b | semmle.label | b | -| string_flow.rb:143:5:143:5 | c [element] | semmle.label | c [element] | -| string_flow.rb:143:9:143:9 | a | semmle.label | a | -| string_flow.rb:143:9:143:15 | call to lines [element] | semmle.label | call to lines [element] | -| string_flow.rb:144:10:144:10 | c [element] | semmle.label | c [element] | -| string_flow.rb:144:10:144:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:148:5:148:5 | a | semmle.label | a | -| string_flow.rb:148:9:148:18 | call to source | semmle.label | call to source | -| string_flow.rb:149:10:149:10 | a | semmle.label | a | -| string_flow.rb:149:10:149:26 | call to encode | semmle.label | call to encode | -| string_flow.rb:150:10:150:10 | a | semmle.label | a | -| string_flow.rb:150:10:150:27 | call to encode! | semmle.label | call to encode! | -| string_flow.rb:151:10:151:10 | a | semmle.label | a | -| string_flow.rb:151:10:151:28 | call to unicode_normalize | semmle.label | call to unicode_normalize | -| string_flow.rb:152:10:152:10 | a | semmle.label | a | -| string_flow.rb:152:10:152:29 | call to unicode_normalize! | semmle.label | call to unicode_normalize! | -| string_flow.rb:156:5:156:5 | a | semmle.label | a | -| string_flow.rb:156:9:156:18 | call to source | semmle.label | call to source | -| string_flow.rb:157:10:157:10 | a | semmle.label | a | -| string_flow.rb:157:10:157:34 | call to force_encoding | semmle.label | call to force_encoding | -| string_flow.rb:161:5:161:5 | a | semmle.label | a | -| string_flow.rb:161:9:161:18 | call to source | semmle.label | call to source | -| string_flow.rb:162:10:162:10 | a | semmle.label | a | -| string_flow.rb:162:10:162:17 | call to freeze | semmle.label | call to freeze | -| string_flow.rb:166:5:166:5 | a | semmle.label | a | -| string_flow.rb:166:9:166:18 | call to source | semmle.label | call to source | -| string_flow.rb:167:5:167:5 | c | semmle.label | c | -| string_flow.rb:167:9:167:18 | call to source | semmle.label | call to source | -| string_flow.rb:168:10:168:10 | a | semmle.label | a | -| string_flow.rb:168:10:168:23 | call to gsub | semmle.label | call to gsub | -| string_flow.rb:168:22:168:22 | c | semmle.label | c | -| string_flow.rb:169:10:169:10 | a | semmle.label | a | -| string_flow.rb:169:10:169:24 | call to gsub! | semmle.label | call to gsub! | -| string_flow.rb:169:23:169:23 | c | semmle.label | c | -| string_flow.rb:170:10:170:10 | a | semmle.label | a | -| string_flow.rb:170:10:170:43 | call to gsub | semmle.label | call to gsub | -| string_flow.rb:170:32:170:41 | call to source | semmle.label | call to source | -| string_flow.rb:171:10:171:10 | a | semmle.label | a | -| string_flow.rb:171:10:171:44 | call to gsub! | semmle.label | call to gsub! | -| string_flow.rb:171:33:171:42 | call to source | semmle.label | call to source | -| string_flow.rb:175:5:175:5 | a | semmle.label | a | -| string_flow.rb:175:9:175:18 | call to source | semmle.label | call to source | -| string_flow.rb:176:5:176:5 | c | semmle.label | c | -| string_flow.rb:176:9:176:18 | call to source | semmle.label | call to source | -| string_flow.rb:177:10:177:10 | a | semmle.label | a | -| string_flow.rb:177:10:177:22 | call to sub | semmle.label | call to sub | -| string_flow.rb:177:21:177:21 | c | semmle.label | c | -| string_flow.rb:178:10:178:10 | a | semmle.label | a | -| string_flow.rb:178:10:178:23 | call to sub! | semmle.label | call to sub! | -| string_flow.rb:178:22:178:22 | c | semmle.label | c | -| string_flow.rb:179:10:179:10 | a | semmle.label | a | -| string_flow.rb:179:10:179:42 | call to sub | semmle.label | call to sub | -| string_flow.rb:179:31:179:40 | call to source | semmle.label | call to source | -| string_flow.rb:180:10:180:10 | a | semmle.label | a | -| string_flow.rb:180:10:180:43 | call to sub! | semmle.label | call to sub! | -| string_flow.rb:180:32:180:41 | call to source | semmle.label | call to source | -| string_flow.rb:191:5:191:5 | a | semmle.label | a | -| string_flow.rb:191:9:191:18 | call to source | semmle.label | call to source | -| string_flow.rb:192:10:192:10 | a | semmle.label | a | -| string_flow.rb:192:10:192:18 | call to inspect | semmle.label | call to inspect | -| string_flow.rb:196:5:196:5 | a | semmle.label | a | -| string_flow.rb:196:9:196:18 | call to source | semmle.label | call to source | -| string_flow.rb:197:10:197:10 | a | semmle.label | a | -| string_flow.rb:197:10:197:16 | call to strip | semmle.label | call to strip | -| string_flow.rb:198:10:198:10 | a | semmle.label | a | -| string_flow.rb:198:10:198:17 | call to strip! | semmle.label | call to strip! | -| string_flow.rb:199:10:199:10 | a | semmle.label | a | -| string_flow.rb:199:10:199:17 | call to lstrip | semmle.label | call to lstrip | -| string_flow.rb:200:10:200:10 | a | semmle.label | a | -| string_flow.rb:200:10:200:18 | call to lstrip! | semmle.label | call to lstrip! | -| string_flow.rb:201:10:201:10 | a | semmle.label | a | -| string_flow.rb:201:10:201:17 | call to rstrip | semmle.label | call to rstrip | -| string_flow.rb:202:10:202:10 | a | semmle.label | a | -| string_flow.rb:202:10:202:18 | call to rstrip! | semmle.label | call to rstrip! | -| string_flow.rb:206:5:206:5 | a | semmle.label | a | -| string_flow.rb:206:9:206:18 | call to source | semmle.label | call to source | -| string_flow.rb:207:10:207:10 | a | semmle.label | a | -| string_flow.rb:207:10:207:15 | call to next | semmle.label | call to next | -| string_flow.rb:208:10:208:10 | a | semmle.label | a | -| string_flow.rb:208:10:208:16 | call to next! | semmle.label | call to next! | -| string_flow.rb:209:10:209:10 | a | semmle.label | a | -| string_flow.rb:209:10:209:15 | call to succ | semmle.label | call to succ | -| string_flow.rb:210:10:210:10 | a | semmle.label | a | -| string_flow.rb:210:10:210:16 | call to succ! | semmle.label | call to succ! | -| string_flow.rb:214:5:214:5 | a | semmle.label | a | -| string_flow.rb:214:9:214:18 | call to source | semmle.label | call to source | -| string_flow.rb:215:5:215:5 | b [element 0] | semmle.label | b [element 0] | -| string_flow.rb:215:5:215:5 | b [element 1] | semmle.label | b [element 1] | -| string_flow.rb:215:5:215:5 | b [element 2] | semmle.label | b [element 2] | -| string_flow.rb:215:9:215:9 | a | semmle.label | a | -| string_flow.rb:215:9:215:24 | call to partition [element 0] | semmle.label | call to partition [element 0] | -| string_flow.rb:215:9:215:24 | call to partition [element 1] | semmle.label | call to partition [element 1] | -| string_flow.rb:215:9:215:24 | call to partition [element 2] | semmle.label | call to partition [element 2] | -| string_flow.rb:216:10:216:10 | b [element 0] | semmle.label | b [element 0] | -| string_flow.rb:216:10:216:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:217:10:217:10 | b [element 1] | semmle.label | b [element 1] | -| string_flow.rb:217:10:217:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:218:10:218:10 | b [element 2] | semmle.label | b [element 2] | -| string_flow.rb:218:10:218:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:223:5:223:5 | a | semmle.label | a | | string_flow.rb:223:5:223:5 | a | semmle.label | a | | string_flow.rb:223:9:223:18 | call to source | semmle.label | call to source | -| string_flow.rb:223:9:223:18 | call to source | semmle.label | call to source | -| string_flow.rb:224:5:224:5 | b | semmle.label | b | -| string_flow.rb:224:9:224:18 | call to source | semmle.label | call to source | -| string_flow.rb:225:10:225:10 | [post] a | semmle.label | [post] a | | string_flow.rb:225:10:225:10 | [post] a | semmle.label | [post] a | | string_flow.rb:225:10:225:10 | a | semmle.label | a | -| string_flow.rb:225:10:225:10 | a | semmle.label | a | -| string_flow.rb:225:10:225:21 | call to replace | semmle.label | call to replace | -| string_flow.rb:225:20:225:20 | b | semmle.label | b | | string_flow.rb:227:10:227:10 | a | semmle.label | a | -| string_flow.rb:227:10:227:10 | a | semmle.label | a | -| string_flow.rb:231:5:231:5 | a | semmle.label | a | -| string_flow.rb:231:9:231:18 | call to source | semmle.label | call to source | -| string_flow.rb:232:10:232:10 | a | semmle.label | a | -| string_flow.rb:232:10:232:18 | call to reverse | semmle.label | call to reverse | -| string_flow.rb:236:5:236:5 | a | semmle.label | a | -| string_flow.rb:236:9:236:18 | call to source | semmle.label | call to source | -| string_flow.rb:237:9:237:9 | a | semmle.label | a | -| string_flow.rb:237:24:237:24 | x | semmle.label | x | -| string_flow.rb:237:35:237:35 | x | semmle.label | x | -| string_flow.rb:238:5:238:5 | b | semmle.label | b | -| string_flow.rb:238:9:238:9 | a | semmle.label | a | -| string_flow.rb:238:9:238:37 | call to scan | semmle.label | call to scan | -| string_flow.rb:238:27:238:27 | y | semmle.label | y | -| string_flow.rb:238:35:238:35 | y | semmle.label | y | -| string_flow.rb:239:10:239:10 | b | semmle.label | b | -| string_flow.rb:240:5:240:5 | b [element] | semmle.label | b [element] | -| string_flow.rb:240:9:240:9 | a | semmle.label | a | -| string_flow.rb:240:9:240:19 | call to scan [element] | semmle.label | call to scan [element] | -| string_flow.rb:241:10:241:10 | b [element] | semmle.label | b [element] | -| string_flow.rb:241:10:241:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:242:10:242:10 | b [element] | semmle.label | b [element] | -| string_flow.rb:242:10:242:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:246:5:246:5 | a | semmle.label | a | -| string_flow.rb:246:9:246:18 | call to source | semmle.label | call to source | -| string_flow.rb:247:10:247:10 | a | semmle.label | a | -| string_flow.rb:247:10:247:21 | call to scrub | semmle.label | call to scrub | -| string_flow.rb:248:10:248:21 | call to scrub | semmle.label | call to scrub | -| string_flow.rb:248:20:248:20 | a | semmle.label | a | -| string_flow.rb:249:5:249:5 | a | semmle.label | a | -| string_flow.rb:249:16:249:16 | x | semmle.label | x | -| string_flow.rb:249:24:249:24 | x | semmle.label | x | -| string_flow.rb:250:10:250:28 | call to scrub | semmle.label | call to scrub | -| string_flow.rb:250:26:250:26 | a | semmle.label | a | -| string_flow.rb:252:10:252:10 | a | semmle.label | a | -| string_flow.rb:252:10:252:22 | call to scrub! | semmle.label | call to scrub! | -| string_flow.rb:253:10:253:22 | call to scrub! | semmle.label | call to scrub! | -| string_flow.rb:253:21:253:21 | a | semmle.label | a | -| string_flow.rb:255:5:255:5 | a | semmle.label | a | -| string_flow.rb:255:9:255:18 | call to source | semmle.label | call to source | -| string_flow.rb:256:5:256:5 | a | semmle.label | a | -| string_flow.rb:256:17:256:17 | x | semmle.label | x | -| string_flow.rb:256:25:256:25 | x | semmle.label | x | -| string_flow.rb:258:10:258:29 | call to scrub! | semmle.label | call to scrub! | -| string_flow.rb:258:27:258:27 | a | semmle.label | a | -| string_flow.rb:262:5:262:5 | a | semmle.label | a | -| string_flow.rb:262:9:262:18 | call to source | semmle.label | call to source | -| string_flow.rb:263:10:263:10 | a | semmle.label | a | -| string_flow.rb:263:10:263:22 | call to shellescape | semmle.label | call to shellescape | -| string_flow.rb:267:5:267:5 | a | semmle.label | a | -| string_flow.rb:267:9:267:18 | call to source | semmle.label | call to source | -| string_flow.rb:268:5:268:5 | b [element] | semmle.label | b [element] | -| string_flow.rb:268:9:268:9 | a | semmle.label | a | -| string_flow.rb:268:9:268:20 | call to shellsplit [element] | semmle.label | call to shellsplit [element] | -| string_flow.rb:269:10:269:10 | b [element] | semmle.label | b [element] | -| string_flow.rb:269:10:269:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:273:5:273:5 | a | semmle.label | a | -| string_flow.rb:273:9:273:18 | call to source | semmle.label | call to source | -| string_flow.rb:274:5:274:5 | b | semmle.label | b | -| string_flow.rb:274:9:274:9 | a | semmle.label | a | -| string_flow.rb:274:9:274:18 | call to slice | semmle.label | call to slice | -| string_flow.rb:275:10:275:10 | b | semmle.label | b | -| string_flow.rb:275:10:275:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:277:5:277:5 | b | semmle.label | b | -| string_flow.rb:277:9:277:9 | [post] a | semmle.label | [post] a | -| string_flow.rb:277:9:277:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | -| string_flow.rb:277:9:277:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| string_flow.rb:277:9:277:9 | [post] a [element] | semmle.label | [post] a [element] | -| string_flow.rb:277:9:277:9 | a | semmle.label | a | -| string_flow.rb:277:9:277:19 | call to slice! | semmle.label | call to slice! | -| string_flow.rb:278:10:278:10 | b | semmle.label | b | -| string_flow.rb:278:10:278:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:280:5:280:5 | b | semmle.label | b | -| string_flow.rb:280:9:280:9 | a | semmle.label | a | -| string_flow.rb:280:9:280:20 | call to split | semmle.label | call to split | -| string_flow.rb:281:10:281:10 | b | semmle.label | b | -| string_flow.rb:281:10:281:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:283:5:283:5 | b | semmle.label | b | -| string_flow.rb:283:5:283:5 | b [element 0] | semmle.label | b [element 0] | -| string_flow.rb:283:5:283:5 | b [element 1] | semmle.label | b [element 1] | -| string_flow.rb:283:5:283:5 | b [element] | semmle.label | b [element] | -| string_flow.rb:283:9:283:9 | a | semmle.label | a | -| string_flow.rb:283:9:283:9 | a [element 1] | semmle.label | a [element 1] | -| string_flow.rb:283:9:283:9 | a [element 2] | semmle.label | a [element 2] | -| string_flow.rb:283:9:283:9 | a [element] | semmle.label | a [element] | -| string_flow.rb:283:9:283:14 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:283:9:283:14 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| string_flow.rb:283:9:283:14 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | -| string_flow.rb:283:9:283:14 | ...[...] [element] | semmle.label | ...[...] [element] | -| string_flow.rb:284:10:284:10 | b | semmle.label | b | -| string_flow.rb:284:10:284:10 | b [element 0] | semmle.label | b [element 0] | -| string_flow.rb:284:10:284:10 | b [element 1] | semmle.label | b [element 1] | -| string_flow.rb:284:10:284:10 | b [element] | semmle.label | b [element] | -| string_flow.rb:284:10:284:13 | ...[...] | semmle.label | ...[...] | -| string_flow.rb:288:5:288:5 | a | semmle.label | a | -| string_flow.rb:288:9:288:18 | call to source | semmle.label | call to source | -| string_flow.rb:289:10:289:10 | a | semmle.label | a | -| string_flow.rb:289:10:289:18 | call to squeeze | semmle.label | call to squeeze | -| string_flow.rb:290:10:290:10 | a | semmle.label | a | -| string_flow.rb:290:10:290:23 | call to squeeze | semmle.label | call to squeeze | -| string_flow.rb:291:10:291:10 | a | semmle.label | a | -| string_flow.rb:291:10:291:19 | call to squeeze! | semmle.label | call to squeeze! | -| string_flow.rb:292:10:292:10 | a | semmle.label | a | -| string_flow.rb:292:10:292:24 | call to squeeze! | semmle.label | call to squeeze! | -| string_flow.rb:296:5:296:5 | a | semmle.label | a | -| string_flow.rb:296:9:296:18 | call to source | semmle.label | call to source | -| string_flow.rb:297:10:297:10 | a | semmle.label | a | -| string_flow.rb:297:10:297:17 | call to to_str | semmle.label | call to to_str | -| string_flow.rb:298:10:298:10 | a | semmle.label | a | -| string_flow.rb:298:10:298:15 | call to to_s | semmle.label | call to to_s | -| string_flow.rb:302:5:302:5 | a | semmle.label | a | -| string_flow.rb:302:9:302:18 | call to source | semmle.label | call to source | -| string_flow.rb:303:10:303:10 | a | semmle.label | a | -| string_flow.rb:303:10:303:23 | call to tr | semmle.label | call to tr | -| string_flow.rb:304:10:304:23 | call to tr | semmle.label | call to tr | -| string_flow.rb:304:22:304:22 | a | semmle.label | a | -| string_flow.rb:305:10:305:10 | a | semmle.label | a | -| string_flow.rb:305:10:305:24 | call to tr! | semmle.label | call to tr! | -| string_flow.rb:306:10:306:24 | call to tr! | semmle.label | call to tr! | -| string_flow.rb:306:23:306:23 | a | semmle.label | a | -| string_flow.rb:307:10:307:10 | a | semmle.label | a | -| string_flow.rb:307:10:307:25 | call to tr_s | semmle.label | call to tr_s | -| string_flow.rb:308:10:308:25 | call to tr_s | semmle.label | call to tr_s | -| string_flow.rb:308:24:308:24 | a | semmle.label | a | -| string_flow.rb:309:10:309:10 | a | semmle.label | a | -| string_flow.rb:309:10:309:26 | call to tr_s! | semmle.label | call to tr_s! | -| string_flow.rb:310:10:310:26 | call to tr_s! | semmle.label | call to tr_s! | -| string_flow.rb:310:25:310:25 | a | semmle.label | a | -| string_flow.rb:314:5:314:5 | a | semmle.label | a | -| string_flow.rb:314:9:314:18 | call to source | semmle.label | call to source | -| string_flow.rb:315:5:315:5 | a | semmle.label | a | -| string_flow.rb:315:20:315:20 | x | semmle.label | x | -| string_flow.rb:315:28:315:28 | x | semmle.label | x | -| string_flow.rb:316:5:316:5 | a | semmle.label | a | -| string_flow.rb:316:26:316:26 | x | semmle.label | x | -| string_flow.rb:316:34:316:34 | x | semmle.label | x | -| string_flow.rb:317:14:317:14 | a | semmle.label | a | -| string_flow.rb:317:20:317:20 | x | semmle.label | x | -| string_flow.rb:317:28:317:28 | x | semmle.label | x | subpaths #select | string_flow.rb:3:10:3:22 | call to new | string_flow.rb:2:9:2:18 | call to source | string_flow.rb:3:10:3:22 | call to new | $@ | string_flow.rb:2:9:2:18 | call to source | call to source | diff --git a/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.ql b/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.ql index dfd6242a414..e02827eaf8d 100644 --- a/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.ql +++ b/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.ql @@ -5,7 +5,7 @@ import codeql.ruby.AST import TestUtilities.InlineFlowTest import DefaultFlowTest -import PathGraph +import ValueFlow::PathGraph from ValueFlow::PathNode source, ValueFlow::PathNode sink where ValueFlow::flowPath(source, sink) diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.ql b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.ql index 1e4e66c5584..d6e9c9e6f53 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.ql +++ b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.ql @@ -4,7 +4,7 @@ import ruby import TestUtilities.InlineFlowTest -import PathGraph +import TaintFlow::PathGraph import codeql.ruby.frameworks.Rails module ParamsTaintFlowConfig implements DataFlow::ConfigSig { diff --git a/ruby/ql/test/library-tests/frameworks/action_mailer/params-flow.ql b/ruby/ql/test/library-tests/frameworks/action_mailer/params-flow.ql index 1e4e66c5584..d6e9c9e6f53 100644 --- a/ruby/ql/test/library-tests/frameworks/action_mailer/params-flow.ql +++ b/ruby/ql/test/library-tests/frameworks/action_mailer/params-flow.ql @@ -4,7 +4,7 @@ import ruby import TestUtilities.InlineFlowTest -import PathGraph +import TaintFlow::PathGraph import codeql.ruby.frameworks.Rails module ParamsTaintFlowConfig implements DataFlow::ConfigSig { diff --git a/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected b/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected index 756e41c448d..b4178c9bac5 100644 --- a/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected +++ b/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected @@ -1,1291 +1,432 @@ testFailures | hash_extensions.rb:126:10:126:19 | call to sole | Unexpected result: hasValueFlow=b | edges -| active_support.rb:10:5:10:5 | x | active_support.rb:11:10:11:10 | x | -| active_support.rb:10:9:10:18 | call to source | active_support.rb:10:5:10:5 | x | -| active_support.rb:11:10:11:10 | x | active_support.rb:11:10:11:19 | call to at | -| active_support.rb:15:5:15:5 | x | active_support.rb:16:10:16:10 | x | -| active_support.rb:15:9:15:18 | call to source | active_support.rb:15:5:15:5 | x | -| active_support.rb:16:10:16:10 | x | active_support.rb:16:10:16:19 | call to camelize | -| active_support.rb:20:5:20:5 | x | active_support.rb:21:10:21:10 | x | -| active_support.rb:20:9:20:18 | call to source | active_support.rb:20:5:20:5 | x | -| active_support.rb:21:10:21:10 | x | active_support.rb:21:10:21:20 | call to camelcase | -| active_support.rb:25:5:25:5 | x | active_support.rb:26:10:26:10 | x | -| active_support.rb:25:9:25:18 | call to source | active_support.rb:25:5:25:5 | x | -| active_support.rb:26:10:26:10 | x | active_support.rb:26:10:26:19 | call to classify | -| active_support.rb:30:5:30:5 | x | active_support.rb:31:10:31:10 | x | -| active_support.rb:30:9:30:18 | call to source | active_support.rb:30:5:30:5 | x | -| active_support.rb:31:10:31:10 | x | active_support.rb:31:10:31:20 | call to dasherize | -| active_support.rb:35:5:35:5 | x | active_support.rb:36:10:36:10 | x | -| active_support.rb:35:9:35:18 | call to source | active_support.rb:35:5:35:5 | x | -| active_support.rb:36:10:36:10 | x | active_support.rb:36:10:36:24 | call to deconstantize | -| active_support.rb:40:5:40:5 | x | active_support.rb:41:10:41:10 | x | -| active_support.rb:40:9:40:18 | call to source | active_support.rb:40:5:40:5 | x | -| active_support.rb:41:10:41:10 | x | active_support.rb:41:10:41:21 | call to demodulize | -| active_support.rb:45:5:45:5 | x | active_support.rb:46:10:46:10 | x | -| active_support.rb:45:9:45:18 | call to source | active_support.rb:45:5:45:5 | x | -| active_support.rb:46:10:46:10 | x | active_support.rb:46:10:46:19 | call to first | -| active_support.rb:50:5:50:5 | x | active_support.rb:51:10:51:10 | x | -| active_support.rb:50:9:50:18 | call to source | active_support.rb:50:5:50:5 | x | -| active_support.rb:51:10:51:10 | x | active_support.rb:51:10:51:22 | call to foreign_key | -| active_support.rb:55:5:55:5 | x | active_support.rb:56:10:56:10 | x | -| active_support.rb:55:9:55:18 | call to source | active_support.rb:55:5:55:5 | x | -| active_support.rb:56:10:56:10 | x | active_support.rb:56:10:56:18 | call to from | -| active_support.rb:60:5:60:5 | x | active_support.rb:61:10:61:10 | x | -| active_support.rb:60:9:60:18 | call to source | active_support.rb:60:5:60:5 | x | -| active_support.rb:61:10:61:10 | x | active_support.rb:61:10:61:20 | call to html_safe | -| active_support.rb:65:5:65:5 | x | active_support.rb:66:10:66:10 | x | -| active_support.rb:65:9:65:18 | call to source | active_support.rb:65:5:65:5 | x | -| active_support.rb:66:10:66:10 | x | active_support.rb:66:10:66:19 | call to humanize | -| active_support.rb:70:5:70:5 | x | active_support.rb:71:10:71:10 | x | -| active_support.rb:70:9:70:18 | call to source | active_support.rb:70:5:70:5 | x | -| active_support.rb:71:10:71:10 | x | active_support.rb:71:10:71:20 | call to indent | -| active_support.rb:75:5:75:5 | x | active_support.rb:76:10:76:10 | x | -| active_support.rb:75:9:75:18 | call to source | active_support.rb:75:5:75:5 | x | -| active_support.rb:76:10:76:10 | x | active_support.rb:76:10:76:21 | call to indent! | -| active_support.rb:80:5:80:5 | x | active_support.rb:81:10:81:10 | x | -| active_support.rb:80:9:80:18 | call to source | active_support.rb:80:5:80:5 | x | -| active_support.rb:81:10:81:10 | x | active_support.rb:81:10:81:18 | call to inquiry | -| active_support.rb:85:5:85:5 | x | active_support.rb:86:10:86:10 | x | -| active_support.rb:85:9:85:18 | call to source | active_support.rb:85:5:85:5 | x | -| active_support.rb:86:10:86:10 | x | active_support.rb:86:10:86:18 | call to last | -| active_support.rb:90:5:90:5 | x | active_support.rb:91:10:91:10 | x | -| active_support.rb:90:9:90:18 | call to source | active_support.rb:90:5:90:5 | x | -| active_support.rb:91:10:91:10 | x | active_support.rb:91:10:91:19 | call to mb_chars | -| active_support.rb:95:5:95:5 | x | active_support.rb:96:10:96:10 | x | -| active_support.rb:95:9:95:18 | call to source | active_support.rb:95:5:95:5 | x | -| active_support.rb:96:10:96:10 | x | active_support.rb:96:10:96:23 | call to parameterize | -| active_support.rb:100:5:100:5 | x | active_support.rb:101:10:101:10 | x | -| active_support.rb:100:9:100:18 | call to source | active_support.rb:100:5:100:5 | x | -| active_support.rb:101:10:101:10 | x | active_support.rb:101:10:101:20 | call to pluralize | -| active_support.rb:105:5:105:5 | x | active_support.rb:106:10:106:10 | x | -| active_support.rb:105:9:105:18 | call to source | active_support.rb:105:5:105:5 | x | -| active_support.rb:106:10:106:10 | x | active_support.rb:106:10:106:24 | call to remove | -| active_support.rb:110:5:110:5 | x | active_support.rb:111:10:111:10 | x | -| active_support.rb:110:9:110:18 | call to source | active_support.rb:110:5:110:5 | x | -| active_support.rb:111:10:111:10 | x | active_support.rb:111:10:111:25 | call to remove! | -| active_support.rb:115:5:115:5 | x | active_support.rb:116:10:116:10 | x | -| active_support.rb:115:9:115:18 | call to source | active_support.rb:115:5:115:5 | x | -| active_support.rb:116:10:116:10 | x | active_support.rb:116:10:116:22 | call to singularize | -| active_support.rb:120:5:120:5 | x | active_support.rb:121:10:121:10 | x | -| active_support.rb:120:9:120:18 | call to source | active_support.rb:120:5:120:5 | x | -| active_support.rb:121:10:121:10 | x | active_support.rb:121:10:121:17 | call to squish | -| active_support.rb:125:5:125:5 | x | active_support.rb:126:10:126:10 | x | -| active_support.rb:125:9:125:18 | call to source | active_support.rb:125:5:125:5 | x | -| active_support.rb:126:10:126:10 | x | active_support.rb:126:10:126:18 | call to squish! | -| active_support.rb:130:5:130:5 | x | active_support.rb:131:10:131:10 | x | -| active_support.rb:130:9:130:18 | call to source | active_support.rb:130:5:130:5 | x | -| active_support.rb:131:10:131:10 | x | active_support.rb:131:10:131:24 | call to strip_heredoc | -| active_support.rb:135:5:135:5 | x | active_support.rb:136:10:136:10 | x | -| active_support.rb:135:9:135:18 | call to source | active_support.rb:135:5:135:5 | x | -| active_support.rb:136:10:136:10 | x | active_support.rb:136:10:136:19 | call to tableize | -| active_support.rb:140:5:140:5 | x | active_support.rb:141:10:141:10 | x | -| active_support.rb:140:9:140:18 | call to source | active_support.rb:140:5:140:5 | x | -| active_support.rb:141:10:141:10 | x | active_support.rb:141:10:141:20 | call to titlecase | -| active_support.rb:145:5:145:5 | x | active_support.rb:146:10:146:10 | x | -| active_support.rb:145:9:145:18 | call to source | active_support.rb:145:5:145:5 | x | -| active_support.rb:146:10:146:10 | x | active_support.rb:146:10:146:19 | call to titleize | -| active_support.rb:150:5:150:5 | x | active_support.rb:151:10:151:10 | x | -| active_support.rb:150:9:150:18 | call to source | active_support.rb:150:5:150:5 | x | -| active_support.rb:151:10:151:10 | x | active_support.rb:151:10:151:16 | call to to | -| active_support.rb:155:5:155:5 | x | active_support.rb:156:10:156:10 | x | -| active_support.rb:155:9:155:18 | call to source | active_support.rb:155:5:155:5 | x | -| active_support.rb:156:10:156:10 | x | active_support.rb:156:10:156:22 | call to truncate | -| active_support.rb:160:5:160:5 | x | active_support.rb:161:10:161:10 | x | -| active_support.rb:160:9:160:18 | call to source | active_support.rb:160:5:160:5 | x | -| active_support.rb:161:10:161:10 | x | active_support.rb:161:10:161:28 | call to truncate_bytes | -| active_support.rb:165:5:165:5 | x | active_support.rb:166:10:166:10 | x | -| active_support.rb:165:9:165:18 | call to source | active_support.rb:165:5:165:5 | x | -| active_support.rb:166:10:166:10 | x | active_support.rb:166:10:166:28 | call to truncate_words | -| active_support.rb:170:5:170:5 | x | active_support.rb:171:10:171:10 | x | -| active_support.rb:170:9:170:18 | call to source | active_support.rb:170:5:170:5 | x | -| active_support.rb:171:10:171:10 | x | active_support.rb:171:10:171:21 | call to underscore | -| active_support.rb:175:5:175:5 | x | active_support.rb:176:10:176:10 | x | -| active_support.rb:175:9:175:18 | call to source | active_support.rb:175:5:175:5 | x | -| active_support.rb:176:10:176:10 | x | active_support.rb:176:10:176:23 | call to upcase_first | -| active_support.rb:180:5:180:5 | x [element 0] | active_support.rb:181:9:181:9 | x [element 0] | | active_support.rb:180:5:180:5 | x [element 0] | active_support.rb:181:9:181:9 | x [element 0] | | active_support.rb:180:10:180:17 | call to source | active_support.rb:180:5:180:5 | x [element 0] | -| active_support.rb:180:10:180:17 | call to source | active_support.rb:180:5:180:5 | x [element 0] | -| active_support.rb:181:5:181:5 | y [element] | active_support.rb:182:10:182:10 | y [element] | | active_support.rb:181:5:181:5 | y [element] | active_support.rb:182:10:182:10 | y [element] | | active_support.rb:181:9:181:9 | x [element 0] | active_support.rb:181:9:181:23 | call to compact_blank [element] | -| active_support.rb:181:9:181:9 | x [element 0] | active_support.rb:181:9:181:23 | call to compact_blank [element] | -| active_support.rb:181:9:181:23 | call to compact_blank [element] | active_support.rb:181:5:181:5 | y [element] | | active_support.rb:181:9:181:23 | call to compact_blank [element] | active_support.rb:181:5:181:5 | y [element] | | active_support.rb:182:10:182:10 | y [element] | active_support.rb:182:10:182:13 | ...[...] | -| active_support.rb:182:10:182:10 | y [element] | active_support.rb:182:10:182:13 | ...[...] | -| active_support.rb:186:5:186:5 | x [element 0] | active_support.rb:187:9:187:9 | x [element 0] | | active_support.rb:186:5:186:5 | x [element 0] | active_support.rb:187:9:187:9 | x [element 0] | | active_support.rb:186:10:186:18 | call to source | active_support.rb:186:5:186:5 | x [element 0] | -| active_support.rb:186:10:186:18 | call to source | active_support.rb:186:5:186:5 | x [element 0] | -| active_support.rb:187:5:187:5 | y [element] | active_support.rb:188:10:188:10 | y [element] | | active_support.rb:187:5:187:5 | y [element] | active_support.rb:188:10:188:10 | y [element] | | active_support.rb:187:9:187:9 | x [element 0] | active_support.rb:187:9:187:21 | call to excluding [element] | -| active_support.rb:187:9:187:9 | x [element 0] | active_support.rb:187:9:187:21 | call to excluding [element] | -| active_support.rb:187:9:187:21 | call to excluding [element] | active_support.rb:187:5:187:5 | y [element] | | active_support.rb:187:9:187:21 | call to excluding [element] | active_support.rb:187:5:187:5 | y [element] | | active_support.rb:188:10:188:10 | y [element] | active_support.rb:188:10:188:13 | ...[...] | -| active_support.rb:188:10:188:10 | y [element] | active_support.rb:188:10:188:13 | ...[...] | -| active_support.rb:192:5:192:5 | x [element 0] | active_support.rb:193:9:193:9 | x [element 0] | | active_support.rb:192:5:192:5 | x [element 0] | active_support.rb:193:9:193:9 | x [element 0] | | active_support.rb:192:10:192:18 | call to source | active_support.rb:192:5:192:5 | x [element 0] | -| active_support.rb:192:10:192:18 | call to source | active_support.rb:192:5:192:5 | x [element 0] | -| active_support.rb:193:5:193:5 | y [element] | active_support.rb:194:10:194:10 | y [element] | | active_support.rb:193:5:193:5 | y [element] | active_support.rb:194:10:194:10 | y [element] | | active_support.rb:193:9:193:9 | x [element 0] | active_support.rb:193:9:193:19 | call to without [element] | -| active_support.rb:193:9:193:9 | x [element 0] | active_support.rb:193:9:193:19 | call to without [element] | -| active_support.rb:193:9:193:19 | call to without [element] | active_support.rb:193:5:193:5 | y [element] | | active_support.rb:193:9:193:19 | call to without [element] | active_support.rb:193:5:193:5 | y [element] | | active_support.rb:194:10:194:10 | y [element] | active_support.rb:194:10:194:13 | ...[...] | -| active_support.rb:194:10:194:10 | y [element] | active_support.rb:194:10:194:13 | ...[...] | -| active_support.rb:198:5:198:5 | x [element 0] | active_support.rb:199:9:199:9 | x [element 0] | | active_support.rb:198:5:198:5 | x [element 0] | active_support.rb:199:9:199:9 | x [element 0] | | active_support.rb:198:10:198:18 | call to source | active_support.rb:198:5:198:5 | x [element 0] | -| active_support.rb:198:10:198:18 | call to source | active_support.rb:198:5:198:5 | x [element 0] | -| active_support.rb:199:5:199:5 | y [element] | active_support.rb:200:10:200:10 | y [element] | | active_support.rb:199:5:199:5 | y [element] | active_support.rb:200:10:200:10 | y [element] | | active_support.rb:199:9:199:9 | x [element 0] | active_support.rb:199:9:199:37 | call to in_order_of [element] | -| active_support.rb:199:9:199:9 | x [element 0] | active_support.rb:199:9:199:37 | call to in_order_of [element] | -| active_support.rb:199:9:199:37 | call to in_order_of [element] | active_support.rb:199:5:199:5 | y [element] | | active_support.rb:199:9:199:37 | call to in_order_of [element] | active_support.rb:199:5:199:5 | y [element] | | active_support.rb:200:10:200:10 | y [element] | active_support.rb:200:10:200:13 | ...[...] | -| active_support.rb:200:10:200:10 | y [element] | active_support.rb:200:10:200:13 | ...[...] | -| active_support.rb:204:5:204:5 | a [element 0] | active_support.rb:205:9:205:9 | a [element 0] | | active_support.rb:204:5:204:5 | a [element 0] | active_support.rb:205:9:205:9 | a [element 0] | | active_support.rb:204:5:204:5 | a [element 0] | active_support.rb:206:10:206:10 | a [element 0] | -| active_support.rb:204:5:204:5 | a [element 0] | active_support.rb:206:10:206:10 | a [element 0] | -| active_support.rb:204:10:204:18 | call to source | active_support.rb:204:5:204:5 | a [element 0] | | active_support.rb:204:10:204:18 | call to source | active_support.rb:204:5:204:5 | a [element 0] | | active_support.rb:205:5:205:5 | b [element 0] | active_support.rb:208:10:208:10 | b [element 0] | -| active_support.rb:205:5:205:5 | b [element 0] | active_support.rb:208:10:208:10 | b [element 0] | -| active_support.rb:205:5:205:5 | b [element] | active_support.rb:208:10:208:10 | b [element] | | active_support.rb:205:5:205:5 | b [element] | active_support.rb:208:10:208:10 | b [element] | | active_support.rb:205:5:205:5 | b [element] | active_support.rb:209:10:209:10 | b [element] | -| active_support.rb:205:5:205:5 | b [element] | active_support.rb:209:10:209:10 | b [element] | -| active_support.rb:205:5:205:5 | b [element] | active_support.rb:210:10:210:10 | b [element] | | active_support.rb:205:5:205:5 | b [element] | active_support.rb:210:10:210:10 | b [element] | | active_support.rb:205:5:205:5 | b [element] | active_support.rb:211:10:211:10 | b [element] | -| active_support.rb:205:5:205:5 | b [element] | active_support.rb:211:10:211:10 | b [element] | -| active_support.rb:205:9:205:9 | a [element 0] | active_support.rb:205:9:205:41 | call to including [element 0] | | active_support.rb:205:9:205:9 | a [element 0] | active_support.rb:205:9:205:41 | call to including [element 0] | | active_support.rb:205:9:205:41 | call to including [element 0] | active_support.rb:205:5:205:5 | b [element 0] | -| active_support.rb:205:9:205:41 | call to including [element 0] | active_support.rb:205:5:205:5 | b [element 0] | -| active_support.rb:205:9:205:41 | call to including [element] | active_support.rb:205:5:205:5 | b [element] | | active_support.rb:205:9:205:41 | call to including [element] | active_support.rb:205:5:205:5 | b [element] | | active_support.rb:205:21:205:29 | call to source | active_support.rb:205:9:205:41 | call to including [element] | -| active_support.rb:205:21:205:29 | call to source | active_support.rb:205:9:205:41 | call to including [element] | -| active_support.rb:205:32:205:40 | call to source | active_support.rb:205:9:205:41 | call to including [element] | | active_support.rb:205:32:205:40 | call to source | active_support.rb:205:9:205:41 | call to including [element] | | active_support.rb:206:10:206:10 | a [element 0] | active_support.rb:206:10:206:13 | ...[...] | -| active_support.rb:206:10:206:10 | a [element 0] | active_support.rb:206:10:206:13 | ...[...] | -| active_support.rb:208:10:208:10 | b [element 0] | active_support.rb:208:10:208:13 | ...[...] | | active_support.rb:208:10:208:10 | b [element 0] | active_support.rb:208:10:208:13 | ...[...] | | active_support.rb:208:10:208:10 | b [element] | active_support.rb:208:10:208:13 | ...[...] | -| active_support.rb:208:10:208:10 | b [element] | active_support.rb:208:10:208:13 | ...[...] | -| active_support.rb:209:10:209:10 | b [element] | active_support.rb:209:10:209:13 | ...[...] | | active_support.rb:209:10:209:10 | b [element] | active_support.rb:209:10:209:13 | ...[...] | | active_support.rb:210:10:210:10 | b [element] | active_support.rb:210:10:210:13 | ...[...] | -| active_support.rb:210:10:210:10 | b [element] | active_support.rb:210:10:210:13 | ...[...] | | active_support.rb:211:10:211:10 | b [element] | active_support.rb:211:10:211:13 | ...[...] | -| active_support.rb:211:10:211:10 | b [element] | active_support.rb:211:10:211:13 | ...[...] | -| active_support.rb:215:3:215:3 | x | active_support.rb:216:34:216:34 | x | -| active_support.rb:215:7:215:16 | call to source | active_support.rb:215:3:215:3 | x | -| active_support.rb:216:3:216:3 | y | active_support.rb:217:8:217:8 | y | -| active_support.rb:216:7:216:35 | call to new | active_support.rb:216:3:216:3 | y | -| active_support.rb:216:34:216:34 | x | active_support.rb:216:7:216:35 | call to new | -| active_support.rb:222:3:222:3 | b | active_support.rb:223:21:223:21 | b | -| active_support.rb:222:7:222:16 | call to source | active_support.rb:222:3:222:3 | b | -| active_support.rb:223:3:223:3 | y | active_support.rb:224:8:224:8 | y | -| active_support.rb:223:7:223:22 | call to safe_concat | active_support.rb:223:3:223:3 | y | -| active_support.rb:223:21:223:21 | b | active_support.rb:223:7:223:22 | call to safe_concat | -| active_support.rb:229:3:229:3 | b | active_support.rb:230:17:230:17 | b | -| active_support.rb:229:7:229:16 | call to source | active_support.rb:229:3:229:3 | b | -| active_support.rb:230:3:230:3 | [post] x | active_support.rb:231:8:231:8 | x | -| active_support.rb:230:17:230:17 | b | active_support.rb:230:3:230:3 | [post] x | -| active_support.rb:235:3:235:3 | a | active_support.rb:237:34:237:34 | a | -| active_support.rb:235:7:235:16 | call to source | active_support.rb:235:3:235:3 | a | -| active_support.rb:237:3:237:3 | x | active_support.rb:238:7:238:7 | x | -| active_support.rb:237:7:237:35 | call to new | active_support.rb:237:3:237:3 | x | -| active_support.rb:237:34:237:34 | a | active_support.rb:237:7:237:35 | call to new | -| active_support.rb:238:3:238:3 | y | active_support.rb:239:8:239:8 | y | -| active_support.rb:238:7:238:7 | x | active_support.rb:238:7:238:17 | call to concat | -| active_support.rb:238:7:238:17 | call to concat | active_support.rb:238:3:238:3 | y | -| active_support.rb:243:3:243:3 | a | active_support.rb:245:34:245:34 | a | -| active_support.rb:243:7:243:16 | call to source | active_support.rb:243:3:243:3 | a | -| active_support.rb:245:3:245:3 | x | active_support.rb:246:7:246:7 | x | -| active_support.rb:245:7:245:35 | call to new | active_support.rb:245:3:245:3 | x | -| active_support.rb:245:34:245:34 | a | active_support.rb:245:7:245:35 | call to new | -| active_support.rb:246:3:246:3 | y | active_support.rb:247:8:247:8 | y | -| active_support.rb:246:7:246:7 | x | active_support.rb:246:7:246:20 | call to insert | -| active_support.rb:246:7:246:20 | call to insert | active_support.rb:246:3:246:3 | y | -| active_support.rb:251:3:251:3 | a | active_support.rb:253:34:253:34 | a | -| active_support.rb:251:7:251:16 | call to source | active_support.rb:251:3:251:3 | a | -| active_support.rb:253:3:253:3 | x | active_support.rb:254:7:254:7 | x | -| active_support.rb:253:7:253:35 | call to new | active_support.rb:253:3:253:3 | x | -| active_support.rb:253:34:253:34 | a | active_support.rb:253:7:253:35 | call to new | -| active_support.rb:254:3:254:3 | y | active_support.rb:255:8:255:8 | y | -| active_support.rb:254:7:254:7 | x | active_support.rb:254:7:254:18 | call to prepend | -| active_support.rb:254:7:254:18 | call to prepend | active_support.rb:254:3:254:3 | y | -| active_support.rb:259:3:259:3 | a | active_support.rb:260:34:260:34 | a | -| active_support.rb:259:7:259:16 | call to source | active_support.rb:259:3:259:3 | a | -| active_support.rb:260:3:260:3 | x | active_support.rb:261:7:261:7 | x | -| active_support.rb:260:7:260:35 | call to new | active_support.rb:260:3:260:3 | x | -| active_support.rb:260:34:260:34 | a | active_support.rb:260:7:260:35 | call to new | -| active_support.rb:261:3:261:3 | y | active_support.rb:262:8:262:8 | y | -| active_support.rb:261:7:261:7 | x | active_support.rb:261:7:261:12 | call to to_s | -| active_support.rb:261:7:261:12 | call to to_s | active_support.rb:261:3:261:3 | y | -| active_support.rb:266:3:266:3 | a | active_support.rb:267:34:267:34 | a | -| active_support.rb:266:7:266:16 | call to source | active_support.rb:266:3:266:3 | a | -| active_support.rb:267:3:267:3 | x | active_support.rb:268:7:268:7 | x | -| active_support.rb:267:7:267:35 | call to new | active_support.rb:267:3:267:3 | x | -| active_support.rb:267:34:267:34 | a | active_support.rb:267:7:267:35 | call to new | -| active_support.rb:268:3:268:3 | y | active_support.rb:269:8:269:8 | y | -| active_support.rb:268:7:268:7 | x | active_support.rb:268:7:268:16 | call to to_param | -| active_support.rb:268:7:268:16 | call to to_param | active_support.rb:268:3:268:3 | y | -| active_support.rb:273:3:273:3 | a | active_support.rb:274:20:274:20 | a | -| active_support.rb:273:7:273:16 | call to source | active_support.rb:273:3:273:3 | a | -| active_support.rb:274:3:274:3 | x | active_support.rb:275:7:275:7 | x | -| active_support.rb:274:7:274:21 | call to new | active_support.rb:274:3:274:3 | x | -| active_support.rb:274:20:274:20 | a | active_support.rb:274:7:274:21 | call to new | -| active_support.rb:275:3:275:3 | y | active_support.rb:276:8:276:8 | y | -| active_support.rb:275:3:275:3 | y | active_support.rb:277:7:277:7 | y | -| active_support.rb:275:7:275:7 | x | active_support.rb:275:7:275:17 | call to existence | -| active_support.rb:275:7:275:17 | call to existence | active_support.rb:275:3:275:3 | y | -| active_support.rb:277:3:277:3 | z | active_support.rb:278:8:278:8 | z | -| active_support.rb:277:7:277:7 | y | active_support.rb:277:7:277:17 | call to existence | -| active_support.rb:277:7:277:17 | call to existence | active_support.rb:277:3:277:3 | z | -| active_support.rb:282:3:282:3 | x | active_support.rb:283:8:283:8 | x | | active_support.rb:282:3:282:3 | x | active_support.rb:283:8:283:8 | x | | active_support.rb:282:7:282:16 | call to source | active_support.rb:282:3:282:3 | x | -| active_support.rb:282:7:282:16 | call to source | active_support.rb:282:3:282:3 | x | -| active_support.rb:283:8:283:8 | x | active_support.rb:283:8:283:17 | call to presence | | active_support.rb:283:8:283:8 | x | active_support.rb:283:8:283:17 | call to presence | | active_support.rb:285:3:285:3 | y | active_support.rb:286:8:286:8 | y | -| active_support.rb:285:3:285:3 | y | active_support.rb:286:8:286:8 | y | -| active_support.rb:285:7:285:16 | call to source | active_support.rb:285:3:285:3 | y | | active_support.rb:285:7:285:16 | call to source | active_support.rb:285:3:285:3 | y | | active_support.rb:286:8:286:8 | y | active_support.rb:286:8:286:17 | call to presence | -| active_support.rb:286:8:286:8 | y | active_support.rb:286:8:286:17 | call to presence | -| active_support.rb:290:3:290:3 | x | active_support.rb:291:8:291:8 | x | | active_support.rb:290:3:290:3 | x | active_support.rb:291:8:291:8 | x | | active_support.rb:290:7:290:16 | call to source | active_support.rb:290:3:290:3 | x | -| active_support.rb:290:7:290:16 | call to source | active_support.rb:290:3:290:3 | x | | active_support.rb:291:8:291:8 | x | active_support.rb:291:8:291:17 | call to deep_dup | -| active_support.rb:291:8:291:8 | x | active_support.rb:291:8:291:17 | call to deep_dup | -| active_support.rb:303:3:303:3 | a | active_support.rb:304:19:304:19 | a | -| active_support.rb:303:7:303:16 | call to source | active_support.rb:303:3:303:3 | a | -| active_support.rb:304:3:304:3 | b | active_support.rb:305:8:305:8 | b | -| active_support.rb:304:7:304:19 | call to json_escape | active_support.rb:304:3:304:3 | b | -| active_support.rb:304:19:304:19 | a | active_support.rb:304:7:304:19 | call to json_escape | -| active_support.rb:309:5:309:5 | x | active_support.rb:310:37:310:37 | x | -| active_support.rb:309:9:309:18 | call to source | active_support.rb:309:5:309:5 | x | -| active_support.rb:310:37:310:37 | x | active_support.rb:310:10:310:38 | call to encode | -| active_support.rb:314:5:314:5 | x | active_support.rb:315:37:315:37 | x | -| active_support.rb:314:9:314:18 | call to source | active_support.rb:314:5:314:5 | x | -| active_support.rb:315:37:315:37 | x | active_support.rb:315:10:315:38 | call to decode | -| active_support.rb:319:5:319:5 | x | active_support.rb:320:35:320:35 | x | -| active_support.rb:319:9:319:18 | call to source | active_support.rb:319:5:319:5 | x | -| active_support.rb:320:35:320:35 | x | active_support.rb:320:10:320:36 | call to dump | -| active_support.rb:324:5:324:5 | x | active_support.rb:325:35:325:35 | x | -| active_support.rb:324:9:324:18 | call to source | active_support.rb:324:5:324:5 | x | -| active_support.rb:325:35:325:35 | x | active_support.rb:325:10:325:36 | call to load | -| active_support.rb:329:5:329:5 | x | active_support.rb:330:10:330:10 | x | -| active_support.rb:329:5:329:5 | x | active_support.rb:331:10:331:10 | x | -| active_support.rb:329:9:329:18 | call to source | active_support.rb:329:5:329:5 | x | -| active_support.rb:330:5:330:5 | y [element 0] | active_support.rb:332:10:332:10 | y [element 0] | -| active_support.rb:330:10:330:10 | x | active_support.rb:330:5:330:5 | y [element 0] | -| active_support.rb:331:10:331:10 | x | active_support.rb:331:10:331:18 | call to to_json | -| active_support.rb:332:10:332:10 | y [element 0] | active_support.rb:332:10:332:18 | call to to_json | -| hash_extensions.rb:2:5:2:5 | h [element :a] | hash_extensions.rb:3:9:3:9 | h [element :a] | | hash_extensions.rb:2:5:2:5 | h [element :a] | hash_extensions.rb:3:9:3:9 | h [element :a] | | hash_extensions.rb:2:14:2:24 | call to source | hash_extensions.rb:2:5:2:5 | h [element :a] | -| hash_extensions.rb:2:14:2:24 | call to source | hash_extensions.rb:2:5:2:5 | h [element :a] | -| hash_extensions.rb:3:5:3:5 | x [element] | hash_extensions.rb:4:10:4:10 | x [element] | | hash_extensions.rb:3:5:3:5 | x [element] | hash_extensions.rb:4:10:4:10 | x [element] | | hash_extensions.rb:3:9:3:9 | h [element :a] | hash_extensions.rb:3:9:3:24 | call to stringify_keys [element] | -| hash_extensions.rb:3:9:3:9 | h [element :a] | hash_extensions.rb:3:9:3:24 | call to stringify_keys [element] | -| hash_extensions.rb:3:9:3:24 | call to stringify_keys [element] | hash_extensions.rb:3:5:3:5 | x [element] | | hash_extensions.rb:3:9:3:24 | call to stringify_keys [element] | hash_extensions.rb:3:5:3:5 | x [element] | | hash_extensions.rb:4:10:4:10 | x [element] | hash_extensions.rb:4:10:4:14 | ...[...] | -| hash_extensions.rb:4:10:4:10 | x [element] | hash_extensions.rb:4:10:4:14 | ...[...] | -| hash_extensions.rb:10:5:10:5 | h [element :a] | hash_extensions.rb:11:9:11:9 | h [element :a] | | hash_extensions.rb:10:5:10:5 | h [element :a] | hash_extensions.rb:11:9:11:9 | h [element :a] | | hash_extensions.rb:10:14:10:24 | call to source | hash_extensions.rb:10:5:10:5 | h [element :a] | -| hash_extensions.rb:10:14:10:24 | call to source | hash_extensions.rb:10:5:10:5 | h [element :a] | -| hash_extensions.rb:11:5:11:5 | x [element] | hash_extensions.rb:12:10:12:10 | x [element] | | hash_extensions.rb:11:5:11:5 | x [element] | hash_extensions.rb:12:10:12:10 | x [element] | | hash_extensions.rb:11:9:11:9 | h [element :a] | hash_extensions.rb:11:9:11:20 | call to to_options [element] | -| hash_extensions.rb:11:9:11:9 | h [element :a] | hash_extensions.rb:11:9:11:20 | call to to_options [element] | -| hash_extensions.rb:11:9:11:20 | call to to_options [element] | hash_extensions.rb:11:5:11:5 | x [element] | | hash_extensions.rb:11:9:11:20 | call to to_options [element] | hash_extensions.rb:11:5:11:5 | x [element] | | hash_extensions.rb:12:10:12:10 | x [element] | hash_extensions.rb:12:10:12:14 | ...[...] | -| hash_extensions.rb:12:10:12:10 | x [element] | hash_extensions.rb:12:10:12:14 | ...[...] | -| hash_extensions.rb:18:5:18:5 | h [element :a] | hash_extensions.rb:19:9:19:9 | h [element :a] | | hash_extensions.rb:18:5:18:5 | h [element :a] | hash_extensions.rb:19:9:19:9 | h [element :a] | | hash_extensions.rb:18:14:18:24 | call to source | hash_extensions.rb:18:5:18:5 | h [element :a] | -| hash_extensions.rb:18:14:18:24 | call to source | hash_extensions.rb:18:5:18:5 | h [element :a] | -| hash_extensions.rb:19:5:19:5 | x [element] | hash_extensions.rb:20:10:20:10 | x [element] | | hash_extensions.rb:19:5:19:5 | x [element] | hash_extensions.rb:20:10:20:10 | x [element] | | hash_extensions.rb:19:9:19:9 | h [element :a] | hash_extensions.rb:19:9:19:24 | call to symbolize_keys [element] | -| hash_extensions.rb:19:9:19:9 | h [element :a] | hash_extensions.rb:19:9:19:24 | call to symbolize_keys [element] | -| hash_extensions.rb:19:9:19:24 | call to symbolize_keys [element] | hash_extensions.rb:19:5:19:5 | x [element] | | hash_extensions.rb:19:9:19:24 | call to symbolize_keys [element] | hash_extensions.rb:19:5:19:5 | x [element] | | hash_extensions.rb:20:10:20:10 | x [element] | hash_extensions.rb:20:10:20:14 | ...[...] | -| hash_extensions.rb:20:10:20:10 | x [element] | hash_extensions.rb:20:10:20:14 | ...[...] | -| hash_extensions.rb:26:5:26:5 | h [element :a] | hash_extensions.rb:27:9:27:9 | h [element :a] | | hash_extensions.rb:26:5:26:5 | h [element :a] | hash_extensions.rb:27:9:27:9 | h [element :a] | | hash_extensions.rb:26:14:26:24 | call to source | hash_extensions.rb:26:5:26:5 | h [element :a] | -| hash_extensions.rb:26:14:26:24 | call to source | hash_extensions.rb:26:5:26:5 | h [element :a] | -| hash_extensions.rb:27:5:27:5 | x [element] | hash_extensions.rb:28:10:28:10 | x [element] | | hash_extensions.rb:27:5:27:5 | x [element] | hash_extensions.rb:28:10:28:10 | x [element] | | hash_extensions.rb:27:9:27:9 | h [element :a] | hash_extensions.rb:27:9:27:29 | call to deep_stringify_keys [element] | -| hash_extensions.rb:27:9:27:9 | h [element :a] | hash_extensions.rb:27:9:27:29 | call to deep_stringify_keys [element] | -| hash_extensions.rb:27:9:27:29 | call to deep_stringify_keys [element] | hash_extensions.rb:27:5:27:5 | x [element] | | hash_extensions.rb:27:9:27:29 | call to deep_stringify_keys [element] | hash_extensions.rb:27:5:27:5 | x [element] | | hash_extensions.rb:28:10:28:10 | x [element] | hash_extensions.rb:28:10:28:14 | ...[...] | -| hash_extensions.rb:28:10:28:10 | x [element] | hash_extensions.rb:28:10:28:14 | ...[...] | -| hash_extensions.rb:34:5:34:5 | h [element :a] | hash_extensions.rb:35:9:35:9 | h [element :a] | | hash_extensions.rb:34:5:34:5 | h [element :a] | hash_extensions.rb:35:9:35:9 | h [element :a] | | hash_extensions.rb:34:14:34:24 | call to source | hash_extensions.rb:34:5:34:5 | h [element :a] | -| hash_extensions.rb:34:14:34:24 | call to source | hash_extensions.rb:34:5:34:5 | h [element :a] | -| hash_extensions.rb:35:5:35:5 | x [element] | hash_extensions.rb:36:10:36:10 | x [element] | | hash_extensions.rb:35:5:35:5 | x [element] | hash_extensions.rb:36:10:36:10 | x [element] | | hash_extensions.rb:35:9:35:9 | h [element :a] | hash_extensions.rb:35:9:35:29 | call to deep_symbolize_keys [element] | -| hash_extensions.rb:35:9:35:9 | h [element :a] | hash_extensions.rb:35:9:35:29 | call to deep_symbolize_keys [element] | -| hash_extensions.rb:35:9:35:29 | call to deep_symbolize_keys [element] | hash_extensions.rb:35:5:35:5 | x [element] | | hash_extensions.rb:35:9:35:29 | call to deep_symbolize_keys [element] | hash_extensions.rb:35:5:35:5 | x [element] | | hash_extensions.rb:36:10:36:10 | x [element] | hash_extensions.rb:36:10:36:14 | ...[...] | -| hash_extensions.rb:36:10:36:10 | x [element] | hash_extensions.rb:36:10:36:14 | ...[...] | -| hash_extensions.rb:42:5:42:5 | h [element :a] | hash_extensions.rb:43:9:43:9 | h [element :a] | | hash_extensions.rb:42:5:42:5 | h [element :a] | hash_extensions.rb:43:9:43:9 | h [element :a] | | hash_extensions.rb:42:14:42:24 | call to source | hash_extensions.rb:42:5:42:5 | h [element :a] | -| hash_extensions.rb:42:14:42:24 | call to source | hash_extensions.rb:42:5:42:5 | h [element :a] | -| hash_extensions.rb:43:5:43:5 | x [element] | hash_extensions.rb:44:10:44:10 | x [element] | | hash_extensions.rb:43:5:43:5 | x [element] | hash_extensions.rb:44:10:44:10 | x [element] | | hash_extensions.rb:43:9:43:9 | h [element :a] | hash_extensions.rb:43:9:43:33 | call to with_indifferent_access [element] | -| hash_extensions.rb:43:9:43:9 | h [element :a] | hash_extensions.rb:43:9:43:33 | call to with_indifferent_access [element] | -| hash_extensions.rb:43:9:43:33 | call to with_indifferent_access [element] | hash_extensions.rb:43:5:43:5 | x [element] | | hash_extensions.rb:43:9:43:33 | call to with_indifferent_access [element] | hash_extensions.rb:43:5:43:5 | x [element] | | hash_extensions.rb:44:10:44:10 | x [element] | hash_extensions.rb:44:10:44:14 | ...[...] | -| hash_extensions.rb:44:10:44:10 | x [element] | hash_extensions.rb:44:10:44:14 | ...[...] | -| hash_extensions.rb:50:5:50:5 | h [element :a] | hash_extensions.rb:51:9:51:9 | h [element :a] | | hash_extensions.rb:50:5:50:5 | h [element :a] | hash_extensions.rb:51:9:51:9 | h [element :a] | | hash_extensions.rb:50:5:50:5 | h [element :b] | hash_extensions.rb:51:9:51:9 | h [element :b] | -| hash_extensions.rb:50:5:50:5 | h [element :b] | hash_extensions.rb:51:9:51:9 | h [element :b] | -| hash_extensions.rb:50:5:50:5 | h [element :d] | hash_extensions.rb:51:9:51:9 | h [element :d] | | hash_extensions.rb:50:5:50:5 | h [element :d] | hash_extensions.rb:51:9:51:9 | h [element :d] | | hash_extensions.rb:50:14:50:23 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :a] | -| hash_extensions.rb:50:14:50:23 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :a] | -| hash_extensions.rb:50:29:50:38 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :b] | | hash_extensions.rb:50:29:50:38 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :b] | | hash_extensions.rb:50:52:50:61 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :d] | -| hash_extensions.rb:50:52:50:61 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :d] | -| hash_extensions.rb:51:5:51:5 | x [element :a] | hash_extensions.rb:58:10:58:10 | x [element :a] | | hash_extensions.rb:51:5:51:5 | x [element :a] | hash_extensions.rb:58:10:58:10 | x [element :a] | | hash_extensions.rb:51:5:51:5 | x [element :b] | hash_extensions.rb:59:10:59:10 | x [element :b] | -| hash_extensions.rb:51:5:51:5 | x [element :b] | hash_extensions.rb:59:10:59:10 | x [element :b] | -| hash_extensions.rb:51:9:51:9 | [post] h [element :d] | hash_extensions.rb:56:10:56:10 | h [element :d] | | hash_extensions.rb:51:9:51:9 | [post] h [element :d] | hash_extensions.rb:56:10:56:10 | h [element :d] | | hash_extensions.rb:51:9:51:9 | h [element :a] | hash_extensions.rb:51:9:51:29 | call to extract! [element :a] | -| hash_extensions.rb:51:9:51:9 | h [element :a] | hash_extensions.rb:51:9:51:29 | call to extract! [element :a] | -| hash_extensions.rb:51:9:51:9 | h [element :b] | hash_extensions.rb:51:9:51:29 | call to extract! [element :b] | | hash_extensions.rb:51:9:51:9 | h [element :b] | hash_extensions.rb:51:9:51:29 | call to extract! [element :b] | | hash_extensions.rb:51:9:51:9 | h [element :d] | hash_extensions.rb:51:9:51:9 | [post] h [element :d] | -| hash_extensions.rb:51:9:51:9 | h [element :d] | hash_extensions.rb:51:9:51:9 | [post] h [element :d] | -| hash_extensions.rb:51:9:51:29 | call to extract! [element :a] | hash_extensions.rb:51:5:51:5 | x [element :a] | | hash_extensions.rb:51:9:51:29 | call to extract! [element :a] | hash_extensions.rb:51:5:51:5 | x [element :a] | | hash_extensions.rb:51:9:51:29 | call to extract! [element :b] | hash_extensions.rb:51:5:51:5 | x [element :b] | -| hash_extensions.rb:51:9:51:29 | call to extract! [element :b] | hash_extensions.rb:51:5:51:5 | x [element :b] | -| hash_extensions.rb:56:10:56:10 | h [element :d] | hash_extensions.rb:56:10:56:14 | ...[...] | | hash_extensions.rb:56:10:56:10 | h [element :d] | hash_extensions.rb:56:10:56:14 | ...[...] | | hash_extensions.rb:58:10:58:10 | x [element :a] | hash_extensions.rb:58:10:58:14 | ...[...] | -| hash_extensions.rb:58:10:58:10 | x [element :a] | hash_extensions.rb:58:10:58:14 | ...[...] | -| hash_extensions.rb:59:10:59:10 | x [element :b] | hash_extensions.rb:59:10:59:14 | ...[...] | | hash_extensions.rb:59:10:59:10 | x [element :b] | hash_extensions.rb:59:10:59:14 | ...[...] | | hash_extensions.rb:67:5:67:10 | values [element 0] | hash_extensions.rb:68:9:68:14 | values [element 0] | -| hash_extensions.rb:67:5:67:10 | values [element 0] | hash_extensions.rb:68:9:68:14 | values [element 0] | -| hash_extensions.rb:67:5:67:10 | values [element 1] | hash_extensions.rb:68:9:68:14 | values [element 1] | | hash_extensions.rb:67:5:67:10 | values [element 1] | hash_extensions.rb:68:9:68:14 | values [element 1] | | hash_extensions.rb:67:5:67:10 | values [element 2] | hash_extensions.rb:68:9:68:14 | values [element 2] | -| hash_extensions.rb:67:5:67:10 | values [element 2] | hash_extensions.rb:68:9:68:14 | values [element 2] | -| hash_extensions.rb:67:15:67:25 | call to source | hash_extensions.rb:67:5:67:10 | values [element 0] | | hash_extensions.rb:67:15:67:25 | call to source | hash_extensions.rb:67:5:67:10 | values [element 0] | | hash_extensions.rb:67:28:67:38 | call to source | hash_extensions.rb:67:5:67:10 | values [element 1] | -| hash_extensions.rb:67:28:67:38 | call to source | hash_extensions.rb:67:5:67:10 | values [element 1] | -| hash_extensions.rb:67:41:67:51 | call to source | hash_extensions.rb:67:5:67:10 | values [element 2] | | hash_extensions.rb:67:41:67:51 | call to source | hash_extensions.rb:67:5:67:10 | values [element 2] | | hash_extensions.rb:68:5:68:5 | h [element] | hash_extensions.rb:73:10:73:10 | h [element] | -| hash_extensions.rb:68:5:68:5 | h [element] | hash_extensions.rb:73:10:73:10 | h [element] | -| hash_extensions.rb:68:5:68:5 | h [element] | hash_extensions.rb:74:10:74:10 | h [element] | | hash_extensions.rb:68:5:68:5 | h [element] | hash_extensions.rb:74:10:74:10 | h [element] | | hash_extensions.rb:68:9:68:14 | values [element 0] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | -| hash_extensions.rb:68:9:68:14 | values [element 0] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | -| hash_extensions.rb:68:9:68:14 | values [element 0] | hash_extensions.rb:68:29:68:33 | value | | hash_extensions.rb:68:9:68:14 | values [element 0] | hash_extensions.rb:68:29:68:33 | value | | hash_extensions.rb:68:9:68:14 | values [element 1] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | -| hash_extensions.rb:68:9:68:14 | values [element 1] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | -| hash_extensions.rb:68:9:68:14 | values [element 1] | hash_extensions.rb:68:29:68:33 | value | | hash_extensions.rb:68:9:68:14 | values [element 1] | hash_extensions.rb:68:29:68:33 | value | | hash_extensions.rb:68:9:68:14 | values [element 2] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | -| hash_extensions.rb:68:9:68:14 | values [element 2] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | -| hash_extensions.rb:68:9:68:14 | values [element 2] | hash_extensions.rb:68:29:68:33 | value | | hash_extensions.rb:68:9:68:14 | values [element 2] | hash_extensions.rb:68:29:68:33 | value | | hash_extensions.rb:68:9:71:7 | call to index_by [element] | hash_extensions.rb:68:5:68:5 | h [element] | -| hash_extensions.rb:68:9:71:7 | call to index_by [element] | hash_extensions.rb:68:5:68:5 | h [element] | -| hash_extensions.rb:68:29:68:33 | value | hash_extensions.rb:69:14:69:18 | value | | hash_extensions.rb:68:29:68:33 | value | hash_extensions.rb:69:14:69:18 | value | | hash_extensions.rb:73:10:73:10 | h [element] | hash_extensions.rb:73:10:73:16 | ...[...] | -| hash_extensions.rb:73:10:73:10 | h [element] | hash_extensions.rb:73:10:73:16 | ...[...] | -| hash_extensions.rb:74:10:74:10 | h [element] | hash_extensions.rb:74:10:74:16 | ...[...] | | hash_extensions.rb:74:10:74:10 | h [element] | hash_extensions.rb:74:10:74:16 | ...[...] | | hash_extensions.rb:80:5:80:10 | values [element 0] | hash_extensions.rb:81:9:81:14 | values [element 0] | -| hash_extensions.rb:80:5:80:10 | values [element 0] | hash_extensions.rb:81:9:81:14 | values [element 0] | -| hash_extensions.rb:80:5:80:10 | values [element 1] | hash_extensions.rb:81:9:81:14 | values [element 1] | | hash_extensions.rb:80:5:80:10 | values [element 1] | hash_extensions.rb:81:9:81:14 | values [element 1] | | hash_extensions.rb:80:5:80:10 | values [element 2] | hash_extensions.rb:81:9:81:14 | values [element 2] | -| hash_extensions.rb:80:5:80:10 | values [element 2] | hash_extensions.rb:81:9:81:14 | values [element 2] | -| hash_extensions.rb:80:15:80:25 | call to source | hash_extensions.rb:80:5:80:10 | values [element 0] | | hash_extensions.rb:80:15:80:25 | call to source | hash_extensions.rb:80:5:80:10 | values [element 0] | | hash_extensions.rb:80:28:80:38 | call to source | hash_extensions.rb:80:5:80:10 | values [element 1] | -| hash_extensions.rb:80:28:80:38 | call to source | hash_extensions.rb:80:5:80:10 | values [element 1] | -| hash_extensions.rb:80:41:80:51 | call to source | hash_extensions.rb:80:5:80:10 | values [element 2] | | hash_extensions.rb:80:41:80:51 | call to source | hash_extensions.rb:80:5:80:10 | values [element 2] | | hash_extensions.rb:81:5:81:5 | h [element] | hash_extensions.rb:86:10:86:10 | h [element] | -| hash_extensions.rb:81:5:81:5 | h [element] | hash_extensions.rb:86:10:86:10 | h [element] | -| hash_extensions.rb:81:5:81:5 | h [element] | hash_extensions.rb:87:10:87:10 | h [element] | | hash_extensions.rb:81:5:81:5 | h [element] | hash_extensions.rb:87:10:87:10 | h [element] | | hash_extensions.rb:81:9:81:14 | values [element 0] | hash_extensions.rb:81:31:81:33 | key | -| hash_extensions.rb:81:9:81:14 | values [element 0] | hash_extensions.rb:81:31:81:33 | key | -| hash_extensions.rb:81:9:81:14 | values [element 1] | hash_extensions.rb:81:31:81:33 | key | | hash_extensions.rb:81:9:81:14 | values [element 1] | hash_extensions.rb:81:31:81:33 | key | | hash_extensions.rb:81:9:81:14 | values [element 2] | hash_extensions.rb:81:31:81:33 | key | -| hash_extensions.rb:81:9:81:14 | values [element 2] | hash_extensions.rb:81:31:81:33 | key | -| hash_extensions.rb:81:9:84:7 | call to index_with [element] | hash_extensions.rb:81:5:81:5 | h [element] | | hash_extensions.rb:81:9:84:7 | call to index_with [element] | hash_extensions.rb:81:5:81:5 | h [element] | | hash_extensions.rb:81:31:81:33 | key | hash_extensions.rb:82:14:82:16 | key | -| hash_extensions.rb:81:31:81:33 | key | hash_extensions.rb:82:14:82:16 | key | -| hash_extensions.rb:83:9:83:19 | call to source | hash_extensions.rb:81:9:84:7 | call to index_with [element] | | hash_extensions.rb:83:9:83:19 | call to source | hash_extensions.rb:81:9:84:7 | call to index_with [element] | | hash_extensions.rb:86:10:86:10 | h [element] | hash_extensions.rb:86:10:86:16 | ...[...] | -| hash_extensions.rb:86:10:86:10 | h [element] | hash_extensions.rb:86:10:86:16 | ...[...] | -| hash_extensions.rb:87:10:87:10 | h [element] | hash_extensions.rb:87:10:87:16 | ...[...] | | hash_extensions.rb:87:10:87:10 | h [element] | hash_extensions.rb:87:10:87:16 | ...[...] | | hash_extensions.rb:89:5:89:5 | j [element] | hash_extensions.rb:91:10:91:10 | j [element] | -| hash_extensions.rb:89:5:89:5 | j [element] | hash_extensions.rb:91:10:91:10 | j [element] | -| hash_extensions.rb:89:5:89:5 | j [element] | hash_extensions.rb:92:10:92:10 | j [element] | | hash_extensions.rb:89:5:89:5 | j [element] | hash_extensions.rb:92:10:92:10 | j [element] | | hash_extensions.rb:89:9:89:38 | call to index_with [element] | hash_extensions.rb:89:5:89:5 | j [element] | -| hash_extensions.rb:89:9:89:38 | call to index_with [element] | hash_extensions.rb:89:5:89:5 | j [element] | -| hash_extensions.rb:89:27:89:37 | call to source | hash_extensions.rb:89:9:89:38 | call to index_with [element] | | hash_extensions.rb:89:27:89:37 | call to source | hash_extensions.rb:89:9:89:38 | call to index_with [element] | | hash_extensions.rb:91:10:91:10 | j [element] | hash_extensions.rb:91:10:91:16 | ...[...] | -| hash_extensions.rb:91:10:91:10 | j [element] | hash_extensions.rb:91:10:91:16 | ...[...] | -| hash_extensions.rb:92:10:92:10 | j [element] | hash_extensions.rb:92:10:92:16 | ...[...] | | hash_extensions.rb:92:10:92:10 | j [element] | hash_extensions.rb:92:10:92:16 | ...[...] | | hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:99:10:99:15 | values [element 0, element :id] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:99:10:99:15 | values [element 0, element :id] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:101:10:101:15 | values [element 0, element :id] | | hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:101:10:101:15 | values [element 0, element :id] | | hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:104:10:104:15 | values [element 0, element :id] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:104:10:104:15 | values [element 0, element :id] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:100:10:100:15 | values [element 0, element :name] | | hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:100:10:100:15 | values [element 0, element :name] | | hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:102:10:102:15 | values [element 0, element :name] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:102:10:102:15 | values [element 0, element :name] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:103:10:103:15 | values [element 0, element :name] | | hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:103:10:103:15 | values [element 0, element :name] | | hash_extensions.rb:98:21:98:31 | call to source | hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | -| hash_extensions.rb:98:21:98:31 | call to source | hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | -| hash_extensions.rb:98:40:98:54 | call to source | hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | | hash_extensions.rb:98:40:98:54 | call to source | hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | | hash_extensions.rb:99:10:99:15 | values [element 0, element :id] | hash_extensions.rb:99:10:99:25 | call to pick | -| hash_extensions.rb:99:10:99:15 | values [element 0, element :id] | hash_extensions.rb:99:10:99:25 | call to pick | -| hash_extensions.rb:100:10:100:15 | values [element 0, element :name] | hash_extensions.rb:100:10:100:27 | call to pick | | hash_extensions.rb:100:10:100:15 | values [element 0, element :name] | hash_extensions.rb:100:10:100:27 | call to pick | | hash_extensions.rb:101:10:101:15 | values [element 0, element :id] | hash_extensions.rb:101:10:101:32 | call to pick [element 0] | -| hash_extensions.rb:101:10:101:15 | values [element 0, element :id] | hash_extensions.rb:101:10:101:32 | call to pick [element 0] | -| hash_extensions.rb:101:10:101:32 | call to pick [element 0] | hash_extensions.rb:101:10:101:35 | ...[...] | | hash_extensions.rb:101:10:101:32 | call to pick [element 0] | hash_extensions.rb:101:10:101:35 | ...[...] | | hash_extensions.rb:102:10:102:15 | values [element 0, element :name] | hash_extensions.rb:102:10:102:32 | call to pick [element 1] | -| hash_extensions.rb:102:10:102:15 | values [element 0, element :name] | hash_extensions.rb:102:10:102:32 | call to pick [element 1] | -| hash_extensions.rb:102:10:102:32 | call to pick [element 1] | hash_extensions.rb:102:10:102:35 | ...[...] | | hash_extensions.rb:102:10:102:32 | call to pick [element 1] | hash_extensions.rb:102:10:102:35 | ...[...] | | hash_extensions.rb:103:10:103:15 | values [element 0, element :name] | hash_extensions.rb:103:10:103:32 | call to pick [element 0] | -| hash_extensions.rb:103:10:103:15 | values [element 0, element :name] | hash_extensions.rb:103:10:103:32 | call to pick [element 0] | -| hash_extensions.rb:103:10:103:32 | call to pick [element 0] | hash_extensions.rb:103:10:103:35 | ...[...] | | hash_extensions.rb:103:10:103:32 | call to pick [element 0] | hash_extensions.rb:103:10:103:35 | ...[...] | | hash_extensions.rb:104:10:104:15 | values [element 0, element :id] | hash_extensions.rb:104:10:104:32 | call to pick [element 1] | -| hash_extensions.rb:104:10:104:15 | values [element 0, element :id] | hash_extensions.rb:104:10:104:32 | call to pick [element 1] | -| hash_extensions.rb:104:10:104:32 | call to pick [element 1] | hash_extensions.rb:104:10:104:35 | ...[...] | | hash_extensions.rb:104:10:104:32 | call to pick [element 1] | hash_extensions.rb:104:10:104:35 | ...[...] | | hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | hash_extensions.rb:112:10:112:15 | values [element 0, element :id] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | hash_extensions.rb:112:10:112:15 | values [element 0, element :id] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | hash_extensions.rb:115:10:115:15 | values [element 0, element :id] | | hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | hash_extensions.rb:115:10:115:15 | values [element 0, element :id] | | hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:111:10:111:15 | values [element 0, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:111:10:111:15 | values [element 0, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:113:10:113:15 | values [element 0, element :name] | | hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:113:10:113:15 | values [element 0, element :name] | | hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:114:10:114:15 | values [element 0, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:114:10:114:15 | values [element 0, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | hash_extensions.rb:112:10:112:15 | values [element 1, element :id] | | hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | hash_extensions.rb:112:10:112:15 | values [element 1, element :id] | | hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | hash_extensions.rb:115:10:115:15 | values [element 1, element :id] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | hash_extensions.rb:115:10:115:15 | values [element 1, element :id] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:111:10:111:15 | values [element 1, element :name] | | hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:111:10:111:15 | values [element 1, element :name] | | hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:113:10:113:15 | values [element 1, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:113:10:113:15 | values [element 1, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:114:10:114:15 | values [element 1, element :name] | | hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:114:10:114:15 | values [element 1, element :name] | | hash_extensions.rb:110:21:110:31 | call to source | hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | -| hash_extensions.rb:110:21:110:31 | call to source | hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | -| hash_extensions.rb:110:40:110:54 | call to source | hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | | hash_extensions.rb:110:40:110:54 | call to source | hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | | hash_extensions.rb:110:65:110:75 | call to source | hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | -| hash_extensions.rb:110:65:110:75 | call to source | hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | -| hash_extensions.rb:110:84:110:99 | call to source | hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | | hash_extensions.rb:110:84:110:99 | call to source | hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | | hash_extensions.rb:111:10:111:15 | values [element 0, element :name] | hash_extensions.rb:111:10:111:28 | call to pluck [element] | -| hash_extensions.rb:111:10:111:15 | values [element 0, element :name] | hash_extensions.rb:111:10:111:28 | call to pluck [element] | -| hash_extensions.rb:111:10:111:15 | values [element 1, element :name] | hash_extensions.rb:111:10:111:28 | call to pluck [element] | | hash_extensions.rb:111:10:111:15 | values [element 1, element :name] | hash_extensions.rb:111:10:111:28 | call to pluck [element] | | hash_extensions.rb:111:10:111:28 | call to pluck [element] | hash_extensions.rb:111:10:111:31 | ...[...] | -| hash_extensions.rb:111:10:111:28 | call to pluck [element] | hash_extensions.rb:111:10:111:31 | ...[...] | -| hash_extensions.rb:112:10:112:15 | values [element 0, element :id] | hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | | hash_extensions.rb:112:10:112:15 | values [element 0, element :id] | hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | | hash_extensions.rb:112:10:112:15 | values [element 1, element :id] | hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | -| hash_extensions.rb:112:10:112:15 | values [element 1, element :id] | hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | -| hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | hash_extensions.rb:112:10:112:36 | ...[...] [element 0] | | hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | hash_extensions.rb:112:10:112:36 | ...[...] [element 0] | | hash_extensions.rb:112:10:112:36 | ...[...] [element 0] | hash_extensions.rb:112:10:112:39 | ...[...] | -| hash_extensions.rb:112:10:112:36 | ...[...] [element 0] | hash_extensions.rb:112:10:112:39 | ...[...] | -| hash_extensions.rb:113:10:113:15 | values [element 0, element :name] | hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | | hash_extensions.rb:113:10:113:15 | values [element 0, element :name] | hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | | hash_extensions.rb:113:10:113:15 | values [element 1, element :name] | hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | -| hash_extensions.rb:113:10:113:15 | values [element 1, element :name] | hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | -| hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | hash_extensions.rb:113:10:113:36 | ...[...] [element 1] | | hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | hash_extensions.rb:113:10:113:36 | ...[...] [element 1] | | hash_extensions.rb:113:10:113:36 | ...[...] [element 1] | hash_extensions.rb:113:10:113:39 | ...[...] | -| hash_extensions.rb:113:10:113:36 | ...[...] [element 1] | hash_extensions.rb:113:10:113:39 | ...[...] | -| hash_extensions.rb:114:10:114:15 | values [element 0, element :name] | hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | | hash_extensions.rb:114:10:114:15 | values [element 0, element :name] | hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | | hash_extensions.rb:114:10:114:15 | values [element 1, element :name] | hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | -| hash_extensions.rb:114:10:114:15 | values [element 1, element :name] | hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | -| hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | hash_extensions.rb:114:10:114:36 | ...[...] [element 0] | | hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | hash_extensions.rb:114:10:114:36 | ...[...] [element 0] | | hash_extensions.rb:114:10:114:36 | ...[...] [element 0] | hash_extensions.rb:114:10:114:39 | ...[...] | -| hash_extensions.rb:114:10:114:36 | ...[...] [element 0] | hash_extensions.rb:114:10:114:39 | ...[...] | -| hash_extensions.rb:115:10:115:15 | values [element 0, element :id] | hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | | hash_extensions.rb:115:10:115:15 | values [element 0, element :id] | hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | | hash_extensions.rb:115:10:115:15 | values [element 1, element :id] | hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | -| hash_extensions.rb:115:10:115:15 | values [element 1, element :id] | hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | -| hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | hash_extensions.rb:115:10:115:36 | ...[...] [element 1] | | hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | hash_extensions.rb:115:10:115:36 | ...[...] [element 1] | | hash_extensions.rb:115:10:115:36 | ...[...] [element 1] | hash_extensions.rb:115:10:115:39 | ...[...] | -| hash_extensions.rb:115:10:115:36 | ...[...] [element 1] | hash_extensions.rb:115:10:115:39 | ...[...] | -| hash_extensions.rb:122:5:122:10 | single [element 0] | hash_extensions.rb:125:10:125:15 | single [element 0] | | hash_extensions.rb:122:5:122:10 | single [element 0] | hash_extensions.rb:125:10:125:15 | single [element 0] | | hash_extensions.rb:122:15:122:25 | call to source | hash_extensions.rb:122:5:122:10 | single [element 0] | -| hash_extensions.rb:122:15:122:25 | call to source | hash_extensions.rb:122:5:122:10 | single [element 0] | -| hash_extensions.rb:123:5:123:9 | multi [element 0] | hash_extensions.rb:126:10:126:14 | multi [element 0] | | hash_extensions.rb:123:5:123:9 | multi [element 0] | hash_extensions.rb:126:10:126:14 | multi [element 0] | | hash_extensions.rb:123:14:123:24 | call to source | hash_extensions.rb:123:5:123:9 | multi [element 0] | -| hash_extensions.rb:123:14:123:24 | call to source | hash_extensions.rb:123:5:123:9 | multi [element 0] | | hash_extensions.rb:125:10:125:15 | single [element 0] | hash_extensions.rb:125:10:125:20 | call to sole | -| hash_extensions.rb:125:10:125:15 | single [element 0] | hash_extensions.rb:125:10:125:20 | call to sole | -| hash_extensions.rb:126:10:126:14 | multi [element 0] | hash_extensions.rb:126:10:126:19 | call to sole | | hash_extensions.rb:126:10:126:14 | multi [element 0] | hash_extensions.rb:126:10:126:19 | call to sole | nodes -| active_support.rb:10:5:10:5 | x | semmle.label | x | -| active_support.rb:10:9:10:18 | call to source | semmle.label | call to source | -| active_support.rb:11:10:11:10 | x | semmle.label | x | -| active_support.rb:11:10:11:19 | call to at | semmle.label | call to at | -| active_support.rb:15:5:15:5 | x | semmle.label | x | -| active_support.rb:15:9:15:18 | call to source | semmle.label | call to source | -| active_support.rb:16:10:16:10 | x | semmle.label | x | -| active_support.rb:16:10:16:19 | call to camelize | semmle.label | call to camelize | -| active_support.rb:20:5:20:5 | x | semmle.label | x | -| active_support.rb:20:9:20:18 | call to source | semmle.label | call to source | -| active_support.rb:21:10:21:10 | x | semmle.label | x | -| active_support.rb:21:10:21:20 | call to camelcase | semmle.label | call to camelcase | -| active_support.rb:25:5:25:5 | x | semmle.label | x | -| active_support.rb:25:9:25:18 | call to source | semmle.label | call to source | -| active_support.rb:26:10:26:10 | x | semmle.label | x | -| active_support.rb:26:10:26:19 | call to classify | semmle.label | call to classify | -| active_support.rb:30:5:30:5 | x | semmle.label | x | -| active_support.rb:30:9:30:18 | call to source | semmle.label | call to source | -| active_support.rb:31:10:31:10 | x | semmle.label | x | -| active_support.rb:31:10:31:20 | call to dasherize | semmle.label | call to dasherize | -| active_support.rb:35:5:35:5 | x | semmle.label | x | -| active_support.rb:35:9:35:18 | call to source | semmle.label | call to source | -| active_support.rb:36:10:36:10 | x | semmle.label | x | -| active_support.rb:36:10:36:24 | call to deconstantize | semmle.label | call to deconstantize | -| active_support.rb:40:5:40:5 | x | semmle.label | x | -| active_support.rb:40:9:40:18 | call to source | semmle.label | call to source | -| active_support.rb:41:10:41:10 | x | semmle.label | x | -| active_support.rb:41:10:41:21 | call to demodulize | semmle.label | call to demodulize | -| active_support.rb:45:5:45:5 | x | semmle.label | x | -| active_support.rb:45:9:45:18 | call to source | semmle.label | call to source | -| active_support.rb:46:10:46:10 | x | semmle.label | x | -| active_support.rb:46:10:46:19 | call to first | semmle.label | call to first | -| active_support.rb:50:5:50:5 | x | semmle.label | x | -| active_support.rb:50:9:50:18 | call to source | semmle.label | call to source | -| active_support.rb:51:10:51:10 | x | semmle.label | x | -| active_support.rb:51:10:51:22 | call to foreign_key | semmle.label | call to foreign_key | -| active_support.rb:55:5:55:5 | x | semmle.label | x | -| active_support.rb:55:9:55:18 | call to source | semmle.label | call to source | -| active_support.rb:56:10:56:10 | x | semmle.label | x | -| active_support.rb:56:10:56:18 | call to from | semmle.label | call to from | -| active_support.rb:60:5:60:5 | x | semmle.label | x | -| active_support.rb:60:9:60:18 | call to source | semmle.label | call to source | -| active_support.rb:61:10:61:10 | x | semmle.label | x | -| active_support.rb:61:10:61:20 | call to html_safe | semmle.label | call to html_safe | -| active_support.rb:65:5:65:5 | x | semmle.label | x | -| active_support.rb:65:9:65:18 | call to source | semmle.label | call to source | -| active_support.rb:66:10:66:10 | x | semmle.label | x | -| active_support.rb:66:10:66:19 | call to humanize | semmle.label | call to humanize | -| active_support.rb:70:5:70:5 | x | semmle.label | x | -| active_support.rb:70:9:70:18 | call to source | semmle.label | call to source | -| active_support.rb:71:10:71:10 | x | semmle.label | x | -| active_support.rb:71:10:71:20 | call to indent | semmle.label | call to indent | -| active_support.rb:75:5:75:5 | x | semmle.label | x | -| active_support.rb:75:9:75:18 | call to source | semmle.label | call to source | -| active_support.rb:76:10:76:10 | x | semmle.label | x | -| active_support.rb:76:10:76:21 | call to indent! | semmle.label | call to indent! | -| active_support.rb:80:5:80:5 | x | semmle.label | x | -| active_support.rb:80:9:80:18 | call to source | semmle.label | call to source | -| active_support.rb:81:10:81:10 | x | semmle.label | x | -| active_support.rb:81:10:81:18 | call to inquiry | semmle.label | call to inquiry | -| active_support.rb:85:5:85:5 | x | semmle.label | x | -| active_support.rb:85:9:85:18 | call to source | semmle.label | call to source | -| active_support.rb:86:10:86:10 | x | semmle.label | x | -| active_support.rb:86:10:86:18 | call to last | semmle.label | call to last | -| active_support.rb:90:5:90:5 | x | semmle.label | x | -| active_support.rb:90:9:90:18 | call to source | semmle.label | call to source | -| active_support.rb:91:10:91:10 | x | semmle.label | x | -| active_support.rb:91:10:91:19 | call to mb_chars | semmle.label | call to mb_chars | -| active_support.rb:95:5:95:5 | x | semmle.label | x | -| active_support.rb:95:9:95:18 | call to source | semmle.label | call to source | -| active_support.rb:96:10:96:10 | x | semmle.label | x | -| active_support.rb:96:10:96:23 | call to parameterize | semmle.label | call to parameterize | -| active_support.rb:100:5:100:5 | x | semmle.label | x | -| active_support.rb:100:9:100:18 | call to source | semmle.label | call to source | -| active_support.rb:101:10:101:10 | x | semmle.label | x | -| active_support.rb:101:10:101:20 | call to pluralize | semmle.label | call to pluralize | -| active_support.rb:105:5:105:5 | x | semmle.label | x | -| active_support.rb:105:9:105:18 | call to source | semmle.label | call to source | -| active_support.rb:106:10:106:10 | x | semmle.label | x | -| active_support.rb:106:10:106:24 | call to remove | semmle.label | call to remove | -| active_support.rb:110:5:110:5 | x | semmle.label | x | -| active_support.rb:110:9:110:18 | call to source | semmle.label | call to source | -| active_support.rb:111:10:111:10 | x | semmle.label | x | -| active_support.rb:111:10:111:25 | call to remove! | semmle.label | call to remove! | -| active_support.rb:115:5:115:5 | x | semmle.label | x | -| active_support.rb:115:9:115:18 | call to source | semmle.label | call to source | -| active_support.rb:116:10:116:10 | x | semmle.label | x | -| active_support.rb:116:10:116:22 | call to singularize | semmle.label | call to singularize | -| active_support.rb:120:5:120:5 | x | semmle.label | x | -| active_support.rb:120:9:120:18 | call to source | semmle.label | call to source | -| active_support.rb:121:10:121:10 | x | semmle.label | x | -| active_support.rb:121:10:121:17 | call to squish | semmle.label | call to squish | -| active_support.rb:125:5:125:5 | x | semmle.label | x | -| active_support.rb:125:9:125:18 | call to source | semmle.label | call to source | -| active_support.rb:126:10:126:10 | x | semmle.label | x | -| active_support.rb:126:10:126:18 | call to squish! | semmle.label | call to squish! | -| active_support.rb:130:5:130:5 | x | semmle.label | x | -| active_support.rb:130:9:130:18 | call to source | semmle.label | call to source | -| active_support.rb:131:10:131:10 | x | semmle.label | x | -| active_support.rb:131:10:131:24 | call to strip_heredoc | semmle.label | call to strip_heredoc | -| active_support.rb:135:5:135:5 | x | semmle.label | x | -| active_support.rb:135:9:135:18 | call to source | semmle.label | call to source | -| active_support.rb:136:10:136:10 | x | semmle.label | x | -| active_support.rb:136:10:136:19 | call to tableize | semmle.label | call to tableize | -| active_support.rb:140:5:140:5 | x | semmle.label | x | -| active_support.rb:140:9:140:18 | call to source | semmle.label | call to source | -| active_support.rb:141:10:141:10 | x | semmle.label | x | -| active_support.rb:141:10:141:20 | call to titlecase | semmle.label | call to titlecase | -| active_support.rb:145:5:145:5 | x | semmle.label | x | -| active_support.rb:145:9:145:18 | call to source | semmle.label | call to source | -| active_support.rb:146:10:146:10 | x | semmle.label | x | -| active_support.rb:146:10:146:19 | call to titleize | semmle.label | call to titleize | -| active_support.rb:150:5:150:5 | x | semmle.label | x | -| active_support.rb:150:9:150:18 | call to source | semmle.label | call to source | -| active_support.rb:151:10:151:10 | x | semmle.label | x | -| active_support.rb:151:10:151:16 | call to to | semmle.label | call to to | -| active_support.rb:155:5:155:5 | x | semmle.label | x | -| active_support.rb:155:9:155:18 | call to source | semmle.label | call to source | -| active_support.rb:156:10:156:10 | x | semmle.label | x | -| active_support.rb:156:10:156:22 | call to truncate | semmle.label | call to truncate | -| active_support.rb:160:5:160:5 | x | semmle.label | x | -| active_support.rb:160:9:160:18 | call to source | semmle.label | call to source | -| active_support.rb:161:10:161:10 | x | semmle.label | x | -| active_support.rb:161:10:161:28 | call to truncate_bytes | semmle.label | call to truncate_bytes | -| active_support.rb:165:5:165:5 | x | semmle.label | x | -| active_support.rb:165:9:165:18 | call to source | semmle.label | call to source | -| active_support.rb:166:10:166:10 | x | semmle.label | x | -| active_support.rb:166:10:166:28 | call to truncate_words | semmle.label | call to truncate_words | -| active_support.rb:170:5:170:5 | x | semmle.label | x | -| active_support.rb:170:9:170:18 | call to source | semmle.label | call to source | -| active_support.rb:171:10:171:10 | x | semmle.label | x | -| active_support.rb:171:10:171:21 | call to underscore | semmle.label | call to underscore | -| active_support.rb:175:5:175:5 | x | semmle.label | x | -| active_support.rb:175:9:175:18 | call to source | semmle.label | call to source | -| active_support.rb:176:10:176:10 | x | semmle.label | x | -| active_support.rb:176:10:176:23 | call to upcase_first | semmle.label | call to upcase_first | -| active_support.rb:180:5:180:5 | x [element 0] | semmle.label | x [element 0] | | active_support.rb:180:5:180:5 | x [element 0] | semmle.label | x [element 0] | | active_support.rb:180:10:180:17 | call to source | semmle.label | call to source | -| active_support.rb:180:10:180:17 | call to source | semmle.label | call to source | -| active_support.rb:181:5:181:5 | y [element] | semmle.label | y [element] | | active_support.rb:181:5:181:5 | y [element] | semmle.label | y [element] | | active_support.rb:181:9:181:9 | x [element 0] | semmle.label | x [element 0] | -| active_support.rb:181:9:181:9 | x [element 0] | semmle.label | x [element 0] | -| active_support.rb:181:9:181:23 | call to compact_blank [element] | semmle.label | call to compact_blank [element] | | active_support.rb:181:9:181:23 | call to compact_blank [element] | semmle.label | call to compact_blank [element] | | active_support.rb:182:10:182:10 | y [element] | semmle.label | y [element] | -| active_support.rb:182:10:182:10 | y [element] | semmle.label | y [element] | -| active_support.rb:182:10:182:13 | ...[...] | semmle.label | ...[...] | | active_support.rb:182:10:182:13 | ...[...] | semmle.label | ...[...] | | active_support.rb:186:5:186:5 | x [element 0] | semmle.label | x [element 0] | -| active_support.rb:186:5:186:5 | x [element 0] | semmle.label | x [element 0] | -| active_support.rb:186:10:186:18 | call to source | semmle.label | call to source | | active_support.rb:186:10:186:18 | call to source | semmle.label | call to source | | active_support.rb:187:5:187:5 | y [element] | semmle.label | y [element] | -| active_support.rb:187:5:187:5 | y [element] | semmle.label | y [element] | -| active_support.rb:187:9:187:9 | x [element 0] | semmle.label | x [element 0] | | active_support.rb:187:9:187:9 | x [element 0] | semmle.label | x [element 0] | | active_support.rb:187:9:187:21 | call to excluding [element] | semmle.label | call to excluding [element] | -| active_support.rb:187:9:187:21 | call to excluding [element] | semmle.label | call to excluding [element] | -| active_support.rb:188:10:188:10 | y [element] | semmle.label | y [element] | | active_support.rb:188:10:188:10 | y [element] | semmle.label | y [element] | | active_support.rb:188:10:188:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:188:10:188:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:192:5:192:5 | x [element 0] | semmle.label | x [element 0] | | active_support.rb:192:5:192:5 | x [element 0] | semmle.label | x [element 0] | | active_support.rb:192:10:192:18 | call to source | semmle.label | call to source | -| active_support.rb:192:10:192:18 | call to source | semmle.label | call to source | -| active_support.rb:193:5:193:5 | y [element] | semmle.label | y [element] | | active_support.rb:193:5:193:5 | y [element] | semmle.label | y [element] | | active_support.rb:193:9:193:9 | x [element 0] | semmle.label | x [element 0] | -| active_support.rb:193:9:193:9 | x [element 0] | semmle.label | x [element 0] | -| active_support.rb:193:9:193:19 | call to without [element] | semmle.label | call to without [element] | | active_support.rb:193:9:193:19 | call to without [element] | semmle.label | call to without [element] | | active_support.rb:194:10:194:10 | y [element] | semmle.label | y [element] | -| active_support.rb:194:10:194:10 | y [element] | semmle.label | y [element] | -| active_support.rb:194:10:194:13 | ...[...] | semmle.label | ...[...] | | active_support.rb:194:10:194:13 | ...[...] | semmle.label | ...[...] | | active_support.rb:198:5:198:5 | x [element 0] | semmle.label | x [element 0] | -| active_support.rb:198:5:198:5 | x [element 0] | semmle.label | x [element 0] | -| active_support.rb:198:10:198:18 | call to source | semmle.label | call to source | | active_support.rb:198:10:198:18 | call to source | semmle.label | call to source | | active_support.rb:199:5:199:5 | y [element] | semmle.label | y [element] | -| active_support.rb:199:5:199:5 | y [element] | semmle.label | y [element] | -| active_support.rb:199:9:199:9 | x [element 0] | semmle.label | x [element 0] | | active_support.rb:199:9:199:9 | x [element 0] | semmle.label | x [element 0] | | active_support.rb:199:9:199:37 | call to in_order_of [element] | semmle.label | call to in_order_of [element] | -| active_support.rb:199:9:199:37 | call to in_order_of [element] | semmle.label | call to in_order_of [element] | -| active_support.rb:200:10:200:10 | y [element] | semmle.label | y [element] | | active_support.rb:200:10:200:10 | y [element] | semmle.label | y [element] | | active_support.rb:200:10:200:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:200:10:200:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:204:5:204:5 | a [element 0] | semmle.label | a [element 0] | | active_support.rb:204:5:204:5 | a [element 0] | semmle.label | a [element 0] | | active_support.rb:204:10:204:18 | call to source | semmle.label | call to source | -| active_support.rb:204:10:204:18 | call to source | semmle.label | call to source | -| active_support.rb:205:5:205:5 | b [element 0] | semmle.label | b [element 0] | | active_support.rb:205:5:205:5 | b [element 0] | semmle.label | b [element 0] | | active_support.rb:205:5:205:5 | b [element] | semmle.label | b [element] | -| active_support.rb:205:5:205:5 | b [element] | semmle.label | b [element] | -| active_support.rb:205:9:205:9 | a [element 0] | semmle.label | a [element 0] | | active_support.rb:205:9:205:9 | a [element 0] | semmle.label | a [element 0] | | active_support.rb:205:9:205:41 | call to including [element 0] | semmle.label | call to including [element 0] | -| active_support.rb:205:9:205:41 | call to including [element 0] | semmle.label | call to including [element 0] | -| active_support.rb:205:9:205:41 | call to including [element] | semmle.label | call to including [element] | | active_support.rb:205:9:205:41 | call to including [element] | semmle.label | call to including [element] | | active_support.rb:205:21:205:29 | call to source | semmle.label | call to source | -| active_support.rb:205:21:205:29 | call to source | semmle.label | call to source | -| active_support.rb:205:32:205:40 | call to source | semmle.label | call to source | | active_support.rb:205:32:205:40 | call to source | semmle.label | call to source | | active_support.rb:206:10:206:10 | a [element 0] | semmle.label | a [element 0] | -| active_support.rb:206:10:206:10 | a [element 0] | semmle.label | a [element 0] | -| active_support.rb:206:10:206:13 | ...[...] | semmle.label | ...[...] | | active_support.rb:206:10:206:13 | ...[...] | semmle.label | ...[...] | | active_support.rb:208:10:208:10 | b [element 0] | semmle.label | b [element 0] | -| active_support.rb:208:10:208:10 | b [element 0] | semmle.label | b [element 0] | -| active_support.rb:208:10:208:10 | b [element] | semmle.label | b [element] | | active_support.rb:208:10:208:10 | b [element] | semmle.label | b [element] | | active_support.rb:208:10:208:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:208:10:208:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:209:10:209:10 | b [element] | semmle.label | b [element] | | active_support.rb:209:10:209:10 | b [element] | semmle.label | b [element] | | active_support.rb:209:10:209:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:209:10:209:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:210:10:210:10 | b [element] | semmle.label | b [element] | | active_support.rb:210:10:210:10 | b [element] | semmle.label | b [element] | | active_support.rb:210:10:210:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:210:10:210:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:211:10:211:10 | b [element] | semmle.label | b [element] | | active_support.rb:211:10:211:10 | b [element] | semmle.label | b [element] | | active_support.rb:211:10:211:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:211:10:211:13 | ...[...] | semmle.label | ...[...] | -| active_support.rb:215:3:215:3 | x | semmle.label | x | -| active_support.rb:215:7:215:16 | call to source | semmle.label | call to source | -| active_support.rb:216:3:216:3 | y | semmle.label | y | -| active_support.rb:216:7:216:35 | call to new | semmle.label | call to new | -| active_support.rb:216:34:216:34 | x | semmle.label | x | -| active_support.rb:217:8:217:8 | y | semmle.label | y | -| active_support.rb:222:3:222:3 | b | semmle.label | b | -| active_support.rb:222:7:222:16 | call to source | semmle.label | call to source | -| active_support.rb:223:3:223:3 | y | semmle.label | y | -| active_support.rb:223:7:223:22 | call to safe_concat | semmle.label | call to safe_concat | -| active_support.rb:223:21:223:21 | b | semmle.label | b | -| active_support.rb:224:8:224:8 | y | semmle.label | y | -| active_support.rb:229:3:229:3 | b | semmle.label | b | -| active_support.rb:229:7:229:16 | call to source | semmle.label | call to source | -| active_support.rb:230:3:230:3 | [post] x | semmle.label | [post] x | -| active_support.rb:230:17:230:17 | b | semmle.label | b | -| active_support.rb:231:8:231:8 | x | semmle.label | x | -| active_support.rb:235:3:235:3 | a | semmle.label | a | -| active_support.rb:235:7:235:16 | call to source | semmle.label | call to source | -| active_support.rb:237:3:237:3 | x | semmle.label | x | -| active_support.rb:237:7:237:35 | call to new | semmle.label | call to new | -| active_support.rb:237:34:237:34 | a | semmle.label | a | -| active_support.rb:238:3:238:3 | y | semmle.label | y | -| active_support.rb:238:7:238:7 | x | semmle.label | x | -| active_support.rb:238:7:238:17 | call to concat | semmle.label | call to concat | -| active_support.rb:239:8:239:8 | y | semmle.label | y | -| active_support.rb:243:3:243:3 | a | semmle.label | a | -| active_support.rb:243:7:243:16 | call to source | semmle.label | call to source | -| active_support.rb:245:3:245:3 | x | semmle.label | x | -| active_support.rb:245:7:245:35 | call to new | semmle.label | call to new | -| active_support.rb:245:34:245:34 | a | semmle.label | a | -| active_support.rb:246:3:246:3 | y | semmle.label | y | -| active_support.rb:246:7:246:7 | x | semmle.label | x | -| active_support.rb:246:7:246:20 | call to insert | semmle.label | call to insert | -| active_support.rb:247:8:247:8 | y | semmle.label | y | -| active_support.rb:251:3:251:3 | a | semmle.label | a | -| active_support.rb:251:7:251:16 | call to source | semmle.label | call to source | -| active_support.rb:253:3:253:3 | x | semmle.label | x | -| active_support.rb:253:7:253:35 | call to new | semmle.label | call to new | -| active_support.rb:253:34:253:34 | a | semmle.label | a | -| active_support.rb:254:3:254:3 | y | semmle.label | y | -| active_support.rb:254:7:254:7 | x | semmle.label | x | -| active_support.rb:254:7:254:18 | call to prepend | semmle.label | call to prepend | -| active_support.rb:255:8:255:8 | y | semmle.label | y | -| active_support.rb:259:3:259:3 | a | semmle.label | a | -| active_support.rb:259:7:259:16 | call to source | semmle.label | call to source | -| active_support.rb:260:3:260:3 | x | semmle.label | x | -| active_support.rb:260:7:260:35 | call to new | semmle.label | call to new | -| active_support.rb:260:34:260:34 | a | semmle.label | a | -| active_support.rb:261:3:261:3 | y | semmle.label | y | -| active_support.rb:261:7:261:7 | x | semmle.label | x | -| active_support.rb:261:7:261:12 | call to to_s | semmle.label | call to to_s | -| active_support.rb:262:8:262:8 | y | semmle.label | y | -| active_support.rb:266:3:266:3 | a | semmle.label | a | -| active_support.rb:266:7:266:16 | call to source | semmle.label | call to source | -| active_support.rb:267:3:267:3 | x | semmle.label | x | -| active_support.rb:267:7:267:35 | call to new | semmle.label | call to new | -| active_support.rb:267:34:267:34 | a | semmle.label | a | -| active_support.rb:268:3:268:3 | y | semmle.label | y | -| active_support.rb:268:7:268:7 | x | semmle.label | x | -| active_support.rb:268:7:268:16 | call to to_param | semmle.label | call to to_param | -| active_support.rb:269:8:269:8 | y | semmle.label | y | -| active_support.rb:273:3:273:3 | a | semmle.label | a | -| active_support.rb:273:7:273:16 | call to source | semmle.label | call to source | -| active_support.rb:274:3:274:3 | x | semmle.label | x | -| active_support.rb:274:7:274:21 | call to new | semmle.label | call to new | -| active_support.rb:274:20:274:20 | a | semmle.label | a | -| active_support.rb:275:3:275:3 | y | semmle.label | y | -| active_support.rb:275:7:275:7 | x | semmle.label | x | -| active_support.rb:275:7:275:17 | call to existence | semmle.label | call to existence | -| active_support.rb:276:8:276:8 | y | semmle.label | y | -| active_support.rb:277:3:277:3 | z | semmle.label | z | -| active_support.rb:277:7:277:7 | y | semmle.label | y | -| active_support.rb:277:7:277:17 | call to existence | semmle.label | call to existence | -| active_support.rb:278:8:278:8 | z | semmle.label | z | -| active_support.rb:282:3:282:3 | x | semmle.label | x | | active_support.rb:282:3:282:3 | x | semmle.label | x | | active_support.rb:282:7:282:16 | call to source | semmle.label | call to source | -| active_support.rb:282:7:282:16 | call to source | semmle.label | call to source | -| active_support.rb:283:8:283:8 | x | semmle.label | x | | active_support.rb:283:8:283:8 | x | semmle.label | x | | active_support.rb:283:8:283:17 | call to presence | semmle.label | call to presence | -| active_support.rb:283:8:283:17 | call to presence | semmle.label | call to presence | -| active_support.rb:285:3:285:3 | y | semmle.label | y | | active_support.rb:285:3:285:3 | y | semmle.label | y | | active_support.rb:285:7:285:16 | call to source | semmle.label | call to source | -| active_support.rb:285:7:285:16 | call to source | semmle.label | call to source | -| active_support.rb:286:8:286:8 | y | semmle.label | y | | active_support.rb:286:8:286:8 | y | semmle.label | y | | active_support.rb:286:8:286:17 | call to presence | semmle.label | call to presence | -| active_support.rb:286:8:286:17 | call to presence | semmle.label | call to presence | -| active_support.rb:290:3:290:3 | x | semmle.label | x | | active_support.rb:290:3:290:3 | x | semmle.label | x | | active_support.rb:290:7:290:16 | call to source | semmle.label | call to source | -| active_support.rb:290:7:290:16 | call to source | semmle.label | call to source | -| active_support.rb:291:8:291:8 | x | semmle.label | x | | active_support.rb:291:8:291:8 | x | semmle.label | x | | active_support.rb:291:8:291:17 | call to deep_dup | semmle.label | call to deep_dup | -| active_support.rb:291:8:291:17 | call to deep_dup | semmle.label | call to deep_dup | -| active_support.rb:303:3:303:3 | a | semmle.label | a | -| active_support.rb:303:7:303:16 | call to source | semmle.label | call to source | -| active_support.rb:304:3:304:3 | b | semmle.label | b | -| active_support.rb:304:7:304:19 | call to json_escape | semmle.label | call to json_escape | -| active_support.rb:304:19:304:19 | a | semmle.label | a | -| active_support.rb:305:8:305:8 | b | semmle.label | b | -| active_support.rb:309:5:309:5 | x | semmle.label | x | -| active_support.rb:309:9:309:18 | call to source | semmle.label | call to source | -| active_support.rb:310:10:310:38 | call to encode | semmle.label | call to encode | -| active_support.rb:310:37:310:37 | x | semmle.label | x | -| active_support.rb:314:5:314:5 | x | semmle.label | x | -| active_support.rb:314:9:314:18 | call to source | semmle.label | call to source | -| active_support.rb:315:10:315:38 | call to decode | semmle.label | call to decode | -| active_support.rb:315:37:315:37 | x | semmle.label | x | -| active_support.rb:319:5:319:5 | x | semmle.label | x | -| active_support.rb:319:9:319:18 | call to source | semmle.label | call to source | -| active_support.rb:320:10:320:36 | call to dump | semmle.label | call to dump | -| active_support.rb:320:35:320:35 | x | semmle.label | x | -| active_support.rb:324:5:324:5 | x | semmle.label | x | -| active_support.rb:324:9:324:18 | call to source | semmle.label | call to source | -| active_support.rb:325:10:325:36 | call to load | semmle.label | call to load | -| active_support.rb:325:35:325:35 | x | semmle.label | x | -| active_support.rb:329:5:329:5 | x | semmle.label | x | -| active_support.rb:329:9:329:18 | call to source | semmle.label | call to source | -| active_support.rb:330:5:330:5 | y [element 0] | semmle.label | y [element 0] | -| active_support.rb:330:10:330:10 | x | semmle.label | x | -| active_support.rb:331:10:331:10 | x | semmle.label | x | -| active_support.rb:331:10:331:18 | call to to_json | semmle.label | call to to_json | -| active_support.rb:332:10:332:10 | y [element 0] | semmle.label | y [element 0] | -| active_support.rb:332:10:332:18 | call to to_json | semmle.label | call to to_json | -| hash_extensions.rb:2:5:2:5 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:2:5:2:5 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:2:14:2:24 | call to source | semmle.label | call to source | -| hash_extensions.rb:2:14:2:24 | call to source | semmle.label | call to source | -| hash_extensions.rb:3:5:3:5 | x [element] | semmle.label | x [element] | | hash_extensions.rb:3:5:3:5 | x [element] | semmle.label | x [element] | | hash_extensions.rb:3:9:3:9 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:3:9:3:9 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:3:9:3:24 | call to stringify_keys [element] | semmle.label | call to stringify_keys [element] | | hash_extensions.rb:3:9:3:24 | call to stringify_keys [element] | semmle.label | call to stringify_keys [element] | | hash_extensions.rb:4:10:4:10 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:4:10:4:10 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:4:10:4:14 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:4:10:4:14 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:10:5:10:5 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:10:5:10:5 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:10:14:10:24 | call to source | semmle.label | call to source | | hash_extensions.rb:10:14:10:24 | call to source | semmle.label | call to source | | hash_extensions.rb:11:5:11:5 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:11:5:11:5 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:11:9:11:9 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:11:9:11:9 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:11:9:11:20 | call to to_options [element] | semmle.label | call to to_options [element] | -| hash_extensions.rb:11:9:11:20 | call to to_options [element] | semmle.label | call to to_options [element] | -| hash_extensions.rb:12:10:12:10 | x [element] | semmle.label | x [element] | | hash_extensions.rb:12:10:12:10 | x [element] | semmle.label | x [element] | | hash_extensions.rb:12:10:12:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:12:10:12:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:18:5:18:5 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:18:5:18:5 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:18:14:18:24 | call to source | semmle.label | call to source | -| hash_extensions.rb:18:14:18:24 | call to source | semmle.label | call to source | -| hash_extensions.rb:19:5:19:5 | x [element] | semmle.label | x [element] | | hash_extensions.rb:19:5:19:5 | x [element] | semmle.label | x [element] | | hash_extensions.rb:19:9:19:9 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:19:9:19:9 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:19:9:19:24 | call to symbolize_keys [element] | semmle.label | call to symbolize_keys [element] | | hash_extensions.rb:19:9:19:24 | call to symbolize_keys [element] | semmle.label | call to symbolize_keys [element] | | hash_extensions.rb:20:10:20:10 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:20:10:20:10 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:20:10:20:14 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:20:10:20:14 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:26:5:26:5 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:26:5:26:5 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:26:14:26:24 | call to source | semmle.label | call to source | | hash_extensions.rb:26:14:26:24 | call to source | semmle.label | call to source | | hash_extensions.rb:27:5:27:5 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:27:5:27:5 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:27:9:27:9 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:27:9:27:9 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:27:9:27:29 | call to deep_stringify_keys [element] | semmle.label | call to deep_stringify_keys [element] | -| hash_extensions.rb:27:9:27:29 | call to deep_stringify_keys [element] | semmle.label | call to deep_stringify_keys [element] | -| hash_extensions.rb:28:10:28:10 | x [element] | semmle.label | x [element] | | hash_extensions.rb:28:10:28:10 | x [element] | semmle.label | x [element] | | hash_extensions.rb:28:10:28:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:28:10:28:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:34:5:34:5 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:34:5:34:5 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:34:14:34:24 | call to source | semmle.label | call to source | -| hash_extensions.rb:34:14:34:24 | call to source | semmle.label | call to source | -| hash_extensions.rb:35:5:35:5 | x [element] | semmle.label | x [element] | | hash_extensions.rb:35:5:35:5 | x [element] | semmle.label | x [element] | | hash_extensions.rb:35:9:35:9 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:35:9:35:9 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:35:9:35:29 | call to deep_symbolize_keys [element] | semmle.label | call to deep_symbolize_keys [element] | | hash_extensions.rb:35:9:35:29 | call to deep_symbolize_keys [element] | semmle.label | call to deep_symbolize_keys [element] | | hash_extensions.rb:36:10:36:10 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:36:10:36:10 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:36:10:36:14 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:36:10:36:14 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:42:5:42:5 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:42:5:42:5 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:42:14:42:24 | call to source | semmle.label | call to source | | hash_extensions.rb:42:14:42:24 | call to source | semmle.label | call to source | | hash_extensions.rb:43:5:43:5 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:43:5:43:5 | x [element] | semmle.label | x [element] | -| hash_extensions.rb:43:9:43:9 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:43:9:43:9 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:43:9:43:33 | call to with_indifferent_access [element] | semmle.label | call to with_indifferent_access [element] | -| hash_extensions.rb:43:9:43:33 | call to with_indifferent_access [element] | semmle.label | call to with_indifferent_access [element] | -| hash_extensions.rb:44:10:44:10 | x [element] | semmle.label | x [element] | | hash_extensions.rb:44:10:44:10 | x [element] | semmle.label | x [element] | | hash_extensions.rb:44:10:44:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:44:10:44:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:50:5:50:5 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:50:5:50:5 | h [element :a] | semmle.label | h [element :a] | | hash_extensions.rb:50:5:50:5 | h [element :b] | semmle.label | h [element :b] | -| hash_extensions.rb:50:5:50:5 | h [element :b] | semmle.label | h [element :b] | -| hash_extensions.rb:50:5:50:5 | h [element :d] | semmle.label | h [element :d] | | hash_extensions.rb:50:5:50:5 | h [element :d] | semmle.label | h [element :d] | | hash_extensions.rb:50:14:50:23 | call to taint | semmle.label | call to taint | -| hash_extensions.rb:50:14:50:23 | call to taint | semmle.label | call to taint | -| hash_extensions.rb:50:29:50:38 | call to taint | semmle.label | call to taint | | hash_extensions.rb:50:29:50:38 | call to taint | semmle.label | call to taint | | hash_extensions.rb:50:52:50:61 | call to taint | semmle.label | call to taint | -| hash_extensions.rb:50:52:50:61 | call to taint | semmle.label | call to taint | -| hash_extensions.rb:51:5:51:5 | x [element :a] | semmle.label | x [element :a] | | hash_extensions.rb:51:5:51:5 | x [element :a] | semmle.label | x [element :a] | | hash_extensions.rb:51:5:51:5 | x [element :b] | semmle.label | x [element :b] | -| hash_extensions.rb:51:5:51:5 | x [element :b] | semmle.label | x [element :b] | -| hash_extensions.rb:51:9:51:9 | [post] h [element :d] | semmle.label | [post] h [element :d] | | hash_extensions.rb:51:9:51:9 | [post] h [element :d] | semmle.label | [post] h [element :d] | | hash_extensions.rb:51:9:51:9 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:51:9:51:9 | h [element :a] | semmle.label | h [element :a] | -| hash_extensions.rb:51:9:51:9 | h [element :b] | semmle.label | h [element :b] | | hash_extensions.rb:51:9:51:9 | h [element :b] | semmle.label | h [element :b] | | hash_extensions.rb:51:9:51:9 | h [element :d] | semmle.label | h [element :d] | -| hash_extensions.rb:51:9:51:9 | h [element :d] | semmle.label | h [element :d] | -| hash_extensions.rb:51:9:51:29 | call to extract! [element :a] | semmle.label | call to extract! [element :a] | | hash_extensions.rb:51:9:51:29 | call to extract! [element :a] | semmle.label | call to extract! [element :a] | | hash_extensions.rb:51:9:51:29 | call to extract! [element :b] | semmle.label | call to extract! [element :b] | -| hash_extensions.rb:51:9:51:29 | call to extract! [element :b] | semmle.label | call to extract! [element :b] | -| hash_extensions.rb:56:10:56:10 | h [element :d] | semmle.label | h [element :d] | | hash_extensions.rb:56:10:56:10 | h [element :d] | semmle.label | h [element :d] | | hash_extensions.rb:56:10:56:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:56:10:56:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:58:10:58:10 | x [element :a] | semmle.label | x [element :a] | | hash_extensions.rb:58:10:58:10 | x [element :a] | semmle.label | x [element :a] | | hash_extensions.rb:58:10:58:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:58:10:58:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:59:10:59:10 | x [element :b] | semmle.label | x [element :b] | | hash_extensions.rb:59:10:59:10 | x [element :b] | semmle.label | x [element :b] | | hash_extensions.rb:59:10:59:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:59:10:59:14 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:67:5:67:10 | values [element 0] | semmle.label | values [element 0] | | hash_extensions.rb:67:5:67:10 | values [element 0] | semmle.label | values [element 0] | | hash_extensions.rb:67:5:67:10 | values [element 1] | semmle.label | values [element 1] | -| hash_extensions.rb:67:5:67:10 | values [element 1] | semmle.label | values [element 1] | -| hash_extensions.rb:67:5:67:10 | values [element 2] | semmle.label | values [element 2] | | hash_extensions.rb:67:5:67:10 | values [element 2] | semmle.label | values [element 2] | | hash_extensions.rb:67:15:67:25 | call to source | semmle.label | call to source | -| hash_extensions.rb:67:15:67:25 | call to source | semmle.label | call to source | -| hash_extensions.rb:67:28:67:38 | call to source | semmle.label | call to source | | hash_extensions.rb:67:28:67:38 | call to source | semmle.label | call to source | | hash_extensions.rb:67:41:67:51 | call to source | semmle.label | call to source | -| hash_extensions.rb:67:41:67:51 | call to source | semmle.label | call to source | -| hash_extensions.rb:68:5:68:5 | h [element] | semmle.label | h [element] | | hash_extensions.rb:68:5:68:5 | h [element] | semmle.label | h [element] | | hash_extensions.rb:68:9:68:14 | values [element 0] | semmle.label | values [element 0] | -| hash_extensions.rb:68:9:68:14 | values [element 0] | semmle.label | values [element 0] | -| hash_extensions.rb:68:9:68:14 | values [element 1] | semmle.label | values [element 1] | | hash_extensions.rb:68:9:68:14 | values [element 1] | semmle.label | values [element 1] | | hash_extensions.rb:68:9:68:14 | values [element 2] | semmle.label | values [element 2] | -| hash_extensions.rb:68:9:68:14 | values [element 2] | semmle.label | values [element 2] | -| hash_extensions.rb:68:9:71:7 | call to index_by [element] | semmle.label | call to index_by [element] | | hash_extensions.rb:68:9:71:7 | call to index_by [element] | semmle.label | call to index_by [element] | | hash_extensions.rb:68:29:68:33 | value | semmle.label | value | -| hash_extensions.rb:68:29:68:33 | value | semmle.label | value | -| hash_extensions.rb:69:14:69:18 | value | semmle.label | value | | hash_extensions.rb:69:14:69:18 | value | semmle.label | value | | hash_extensions.rb:73:10:73:10 | h [element] | semmle.label | h [element] | -| hash_extensions.rb:73:10:73:10 | h [element] | semmle.label | h [element] | -| hash_extensions.rb:73:10:73:16 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:73:10:73:16 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:74:10:74:10 | h [element] | semmle.label | h [element] | -| hash_extensions.rb:74:10:74:10 | h [element] | semmle.label | h [element] | -| hash_extensions.rb:74:10:74:16 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:74:10:74:16 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:80:5:80:10 | values [element 0] | semmle.label | values [element 0] | -| hash_extensions.rb:80:5:80:10 | values [element 0] | semmle.label | values [element 0] | -| hash_extensions.rb:80:5:80:10 | values [element 1] | semmle.label | values [element 1] | | hash_extensions.rb:80:5:80:10 | values [element 1] | semmle.label | values [element 1] | | hash_extensions.rb:80:5:80:10 | values [element 2] | semmle.label | values [element 2] | -| hash_extensions.rb:80:5:80:10 | values [element 2] | semmle.label | values [element 2] | -| hash_extensions.rb:80:15:80:25 | call to source | semmle.label | call to source | | hash_extensions.rb:80:15:80:25 | call to source | semmle.label | call to source | | hash_extensions.rb:80:28:80:38 | call to source | semmle.label | call to source | -| hash_extensions.rb:80:28:80:38 | call to source | semmle.label | call to source | -| hash_extensions.rb:80:41:80:51 | call to source | semmle.label | call to source | | hash_extensions.rb:80:41:80:51 | call to source | semmle.label | call to source | | hash_extensions.rb:81:5:81:5 | h [element] | semmle.label | h [element] | -| hash_extensions.rb:81:5:81:5 | h [element] | semmle.label | h [element] | -| hash_extensions.rb:81:9:81:14 | values [element 0] | semmle.label | values [element 0] | | hash_extensions.rb:81:9:81:14 | values [element 0] | semmle.label | values [element 0] | | hash_extensions.rb:81:9:81:14 | values [element 1] | semmle.label | values [element 1] | -| hash_extensions.rb:81:9:81:14 | values [element 1] | semmle.label | values [element 1] | -| hash_extensions.rb:81:9:81:14 | values [element 2] | semmle.label | values [element 2] | | hash_extensions.rb:81:9:81:14 | values [element 2] | semmle.label | values [element 2] | | hash_extensions.rb:81:9:84:7 | call to index_with [element] | semmle.label | call to index_with [element] | -| hash_extensions.rb:81:9:84:7 | call to index_with [element] | semmle.label | call to index_with [element] | -| hash_extensions.rb:81:31:81:33 | key | semmle.label | key | | hash_extensions.rb:81:31:81:33 | key | semmle.label | key | | hash_extensions.rb:82:14:82:16 | key | semmle.label | key | -| hash_extensions.rb:82:14:82:16 | key | semmle.label | key | -| hash_extensions.rb:83:9:83:19 | call to source | semmle.label | call to source | | hash_extensions.rb:83:9:83:19 | call to source | semmle.label | call to source | | hash_extensions.rb:86:10:86:10 | h [element] | semmle.label | h [element] | -| hash_extensions.rb:86:10:86:10 | h [element] | semmle.label | h [element] | -| hash_extensions.rb:86:10:86:16 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:86:10:86:16 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:87:10:87:10 | h [element] | semmle.label | h [element] | -| hash_extensions.rb:87:10:87:10 | h [element] | semmle.label | h [element] | -| hash_extensions.rb:87:10:87:16 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:87:10:87:16 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:89:5:89:5 | j [element] | semmle.label | j [element] | -| hash_extensions.rb:89:5:89:5 | j [element] | semmle.label | j [element] | -| hash_extensions.rb:89:9:89:38 | call to index_with [element] | semmle.label | call to index_with [element] | | hash_extensions.rb:89:9:89:38 | call to index_with [element] | semmle.label | call to index_with [element] | | hash_extensions.rb:89:27:89:37 | call to source | semmle.label | call to source | -| hash_extensions.rb:89:27:89:37 | call to source | semmle.label | call to source | -| hash_extensions.rb:91:10:91:10 | j [element] | semmle.label | j [element] | | hash_extensions.rb:91:10:91:10 | j [element] | semmle.label | j [element] | | hash_extensions.rb:91:10:91:16 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:91:10:91:16 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:92:10:92:10 | j [element] | semmle.label | j [element] | | hash_extensions.rb:92:10:92:10 | j [element] | semmle.label | j [element] | | hash_extensions.rb:92:10:92:16 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:92:10:92:16 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | | hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | | hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | -| hash_extensions.rb:98:21:98:31 | call to source | semmle.label | call to source | | hash_extensions.rb:98:21:98:31 | call to source | semmle.label | call to source | | hash_extensions.rb:98:40:98:54 | call to source | semmle.label | call to source | -| hash_extensions.rb:98:40:98:54 | call to source | semmle.label | call to source | -| hash_extensions.rb:99:10:99:15 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | | hash_extensions.rb:99:10:99:15 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | | hash_extensions.rb:99:10:99:25 | call to pick | semmle.label | call to pick | -| hash_extensions.rb:99:10:99:25 | call to pick | semmle.label | call to pick | -| hash_extensions.rb:100:10:100:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | | hash_extensions.rb:100:10:100:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | | hash_extensions.rb:100:10:100:27 | call to pick | semmle.label | call to pick | -| hash_extensions.rb:100:10:100:27 | call to pick | semmle.label | call to pick | -| hash_extensions.rb:101:10:101:15 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | | hash_extensions.rb:101:10:101:15 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | | hash_extensions.rb:101:10:101:32 | call to pick [element 0] | semmle.label | call to pick [element 0] | -| hash_extensions.rb:101:10:101:32 | call to pick [element 0] | semmle.label | call to pick [element 0] | -| hash_extensions.rb:101:10:101:35 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:101:10:101:35 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:102:10:102:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | -| hash_extensions.rb:102:10:102:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | -| hash_extensions.rb:102:10:102:32 | call to pick [element 1] | semmle.label | call to pick [element 1] | | hash_extensions.rb:102:10:102:32 | call to pick [element 1] | semmle.label | call to pick [element 1] | | hash_extensions.rb:102:10:102:35 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:102:10:102:35 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:103:10:103:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | | hash_extensions.rb:103:10:103:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | | hash_extensions.rb:103:10:103:32 | call to pick [element 0] | semmle.label | call to pick [element 0] | -| hash_extensions.rb:103:10:103:32 | call to pick [element 0] | semmle.label | call to pick [element 0] | -| hash_extensions.rb:103:10:103:35 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:103:10:103:35 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:104:10:104:15 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | -| hash_extensions.rb:104:10:104:15 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | -| hash_extensions.rb:104:10:104:32 | call to pick [element 1] | semmle.label | call to pick [element 1] | | hash_extensions.rb:104:10:104:32 | call to pick [element 1] | semmle.label | call to pick [element 1] | | hash_extensions.rb:104:10:104:35 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:104:10:104:35 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | | hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | | hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | semmle.label | values [element 1, element :id] | | hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | semmle.label | values [element 1, element :id] | | hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | semmle.label | values [element 1, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | semmle.label | values [element 1, element :name] | -| hash_extensions.rb:110:21:110:31 | call to source | semmle.label | call to source | | hash_extensions.rb:110:21:110:31 | call to source | semmle.label | call to source | | hash_extensions.rb:110:40:110:54 | call to source | semmle.label | call to source | -| hash_extensions.rb:110:40:110:54 | call to source | semmle.label | call to source | -| hash_extensions.rb:110:65:110:75 | call to source | semmle.label | call to source | | hash_extensions.rb:110:65:110:75 | call to source | semmle.label | call to source | | hash_extensions.rb:110:84:110:99 | call to source | semmle.label | call to source | -| hash_extensions.rb:110:84:110:99 | call to source | semmle.label | call to source | -| hash_extensions.rb:111:10:111:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | | hash_extensions.rb:111:10:111:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | | hash_extensions.rb:111:10:111:15 | values [element 1, element :name] | semmle.label | values [element 1, element :name] | -| hash_extensions.rb:111:10:111:15 | values [element 1, element :name] | semmle.label | values [element 1, element :name] | -| hash_extensions.rb:111:10:111:28 | call to pluck [element] | semmle.label | call to pluck [element] | | hash_extensions.rb:111:10:111:28 | call to pluck [element] | semmle.label | call to pluck [element] | | hash_extensions.rb:111:10:111:31 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:111:10:111:31 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:112:10:112:15 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | | hash_extensions.rb:112:10:112:15 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | | hash_extensions.rb:112:10:112:15 | values [element 1, element :id] | semmle.label | values [element 1, element :id] | -| hash_extensions.rb:112:10:112:15 | values [element 1, element :id] | semmle.label | values [element 1, element :id] | -| hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | semmle.label | call to pluck [element, element 0] | | hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | semmle.label | call to pluck [element, element 0] | | hash_extensions.rb:112:10:112:36 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| hash_extensions.rb:112:10:112:36 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| hash_extensions.rb:112:10:112:39 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:112:10:112:39 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:113:10:113:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | -| hash_extensions.rb:113:10:113:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | -| hash_extensions.rb:113:10:113:15 | values [element 1, element :name] | semmle.label | values [element 1, element :name] | | hash_extensions.rb:113:10:113:15 | values [element 1, element :name] | semmle.label | values [element 1, element :name] | | hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | semmle.label | call to pluck [element, element 1] | -| hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | semmle.label | call to pluck [element, element 1] | -| hash_extensions.rb:113:10:113:36 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | hash_extensions.rb:113:10:113:36 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | hash_extensions.rb:113:10:113:39 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:113:10:113:39 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:114:10:114:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | | hash_extensions.rb:114:10:114:15 | values [element 0, element :name] | semmle.label | values [element 0, element :name] | | hash_extensions.rb:114:10:114:15 | values [element 1, element :name] | semmle.label | values [element 1, element :name] | -| hash_extensions.rb:114:10:114:15 | values [element 1, element :name] | semmle.label | values [element 1, element :name] | -| hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | semmle.label | call to pluck [element, element 0] | | hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | semmle.label | call to pluck [element, element 0] | | hash_extensions.rb:114:10:114:36 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| hash_extensions.rb:114:10:114:36 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| hash_extensions.rb:114:10:114:39 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:114:10:114:39 | ...[...] | semmle.label | ...[...] | | hash_extensions.rb:115:10:115:15 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | -| hash_extensions.rb:115:10:115:15 | values [element 0, element :id] | semmle.label | values [element 0, element :id] | -| hash_extensions.rb:115:10:115:15 | values [element 1, element :id] | semmle.label | values [element 1, element :id] | | hash_extensions.rb:115:10:115:15 | values [element 1, element :id] | semmle.label | values [element 1, element :id] | | hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | semmle.label | call to pluck [element, element 1] | -| hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | semmle.label | call to pluck [element, element 1] | -| hash_extensions.rb:115:10:115:36 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | hash_extensions.rb:115:10:115:36 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | hash_extensions.rb:115:10:115:39 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:115:10:115:39 | ...[...] | semmle.label | ...[...] | -| hash_extensions.rb:122:5:122:10 | single [element 0] | semmle.label | single [element 0] | | hash_extensions.rb:122:5:122:10 | single [element 0] | semmle.label | single [element 0] | | hash_extensions.rb:122:15:122:25 | call to source | semmle.label | call to source | -| hash_extensions.rb:122:15:122:25 | call to source | semmle.label | call to source | -| hash_extensions.rb:123:5:123:9 | multi [element 0] | semmle.label | multi [element 0] | | hash_extensions.rb:123:5:123:9 | multi [element 0] | semmle.label | multi [element 0] | | hash_extensions.rb:123:14:123:24 | call to source | semmle.label | call to source | -| hash_extensions.rb:123:14:123:24 | call to source | semmle.label | call to source | -| hash_extensions.rb:125:10:125:15 | single [element 0] | semmle.label | single [element 0] | | hash_extensions.rb:125:10:125:15 | single [element 0] | semmle.label | single [element 0] | | hash_extensions.rb:125:10:125:20 | call to sole | semmle.label | call to sole | -| hash_extensions.rb:125:10:125:20 | call to sole | semmle.label | call to sole | | hash_extensions.rb:126:10:126:14 | multi [element 0] | semmle.label | multi [element 0] | -| hash_extensions.rb:126:10:126:14 | multi [element 0] | semmle.label | multi [element 0] | -| hash_extensions.rb:126:10:126:19 | call to sole | semmle.label | call to sole | | hash_extensions.rb:126:10:126:19 | call to sole | semmle.label | call to sole | subpaths #select diff --git a/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.ql b/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.ql index 7c19d2e3904..5cb6cd3208f 100644 --- a/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.ql +++ b/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.ql @@ -6,7 +6,7 @@ import codeql.ruby.AST import TestUtilities.InlineFlowTest import codeql.ruby.Frameworks import DefaultFlowTest -import PathGraph +import ValueFlow::PathGraph from ValueFlow::PathNode source, ValueFlow::PathNode sink where ValueFlow::flowPath(source, sink) diff --git a/ruby/ql/test/library-tests/frameworks/arel/Arel.expected b/ruby/ql/test/library-tests/frameworks/arel/Arel.expected index 7dce82af7b5..1a8eab7e84f 100644 --- a/ruby/ql/test/library-tests/frameworks/arel/Arel.expected +++ b/ruby/ql/test/library-tests/frameworks/arel/Arel.expected @@ -1,3 +1,13 @@ testFailures +edges +| arel.rb:2:3:2:3 | x | arel.rb:3:17:3:17 | x | +| arel.rb:2:7:2:14 | call to source | arel.rb:2:3:2:3 | x | +| arel.rb:3:17:3:17 | x | arel.rb:3:8:3:18 | call to sql | +nodes +| arel.rb:2:3:2:3 | x | semmle.label | x | +| arel.rb:2:7:2:14 | call to source | semmle.label | call to source | +| arel.rb:3:8:3:18 | call to sql | semmle.label | call to sql | +| arel.rb:3:17:3:17 | x | semmle.label | x | +subpaths #select | arel.rb:3:8:3:18 | call to sql | arel.rb:2:7:2:14 | call to source | arel.rb:3:8:3:18 | call to sql | $@ | arel.rb:2:7:2:14 | call to source | call to source | diff --git a/ruby/ql/test/library-tests/frameworks/arel/Arel.ql b/ruby/ql/test/library-tests/frameworks/arel/Arel.ql index e1cc2782ceb..f992ef694e8 100644 --- a/ruby/ql/test/library-tests/frameworks/arel/Arel.ql +++ b/ruby/ql/test/library-tests/frameworks/arel/Arel.ql @@ -6,6 +6,7 @@ import codeql.ruby.frameworks.Arel import codeql.ruby.AST import TestUtilities.InlineFlowTest import DefaultFlowTest +import TaintFlow::PathGraph from TaintFlow::PathNode source, TaintFlow::PathNode sink where TaintFlow::flowPath(source, sink) diff --git a/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected b/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected index 16685bf082d..1a3665a31c1 100644 --- a/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected +++ b/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected @@ -6,19 +6,12 @@ edges | app.rb:75:12:75:24 | ...[...] | app.rb:75:5:75:8 | [post] self [@foo] | | app.rb:76:32:76:35 | @foo | views/index.erb:2:10:2:12 | call to foo | | app.rb:76:32:76:35 | self [@foo] | app.rb:76:32:76:35 | @foo | -| app.rb:95:10:95:14 | self [@user] | app.rb:95:10:95:14 | @user | -| app.rb:103:5:103:9 | [post] self [@user] | app.rb:95:10:95:14 | self [@user] | -| app.rb:103:13:103:22 | call to source | app.rb:103:5:103:9 | [post] self [@user] | nodes | app.rb:75:5:75:8 | [post] self [@foo] | semmle.label | [post] self [@foo] | | app.rb:75:12:75:17 | call to params | semmle.label | call to params | | app.rb:75:12:75:24 | ...[...] | semmle.label | ...[...] | | app.rb:76:32:76:35 | @foo | semmle.label | @foo | | app.rb:76:32:76:35 | self [@foo] | semmle.label | self [@foo] | -| app.rb:95:10:95:14 | @user | semmle.label | @user | -| app.rb:95:10:95:14 | self [@user] | semmle.label | self [@user] | -| app.rb:103:5:103:9 | [post] self [@user] | semmle.label | [post] self [@user] | -| app.rb:103:13:103:22 | call to source | semmle.label | call to source | | views/index.erb:2:10:2:12 | call to foo | semmle.label | call to foo | subpaths #select diff --git a/ruby/ql/test/library-tests/frameworks/sinatra/Flow.ql b/ruby/ql/test/library-tests/frameworks/sinatra/Flow.ql index 413511eac08..a6761b9fccb 100644 --- a/ruby/ql/test/library-tests/frameworks/sinatra/Flow.ql +++ b/ruby/ql/test/library-tests/frameworks/sinatra/Flow.ql @@ -4,7 +4,7 @@ import ruby import TestUtilities.InlineFlowTest -import PathGraph +import TaintFlow::PathGraph import codeql.ruby.frameworks.Sinatra import codeql.ruby.Concepts From bf96e688ffa8dd1d3e9f1dc234327f97c05929f4 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 5 Sep 2023 10:19:41 +0200 Subject: [PATCH 201/788] Fix review findings --- .../Entities/Types/Type.cs | 63 ++++++++----------- 1 file changed, 25 insertions(+), 38 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs index f396025d3ee..25c8926e3e0 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs @@ -5,6 +5,7 @@ using System.IO; using System.Linq; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; +using Semmle.Util; namespace Semmle.Extraction.CSharp.Entities { @@ -362,7 +363,7 @@ namespace Semmle.Extraction.CSharp.Entities /// Details can be found in https://www.ecma-international.org/wp-content/uploads/ECMA-335_6th_edition_june_2012.pdf Chapter II.9.2 Generics and recursive inheritance graphs /// The dotnet runtime already implements this check as a runtime validation: https://github.com/dotnet/runtime/blob/e48e88d0fe9c2e494c0e6fd0c7c1fb54e7ddbdb1/src/coreclr/vm/generics.cpp#L748 /// - public class GenericsRecursionGraph + private class GenericsRecursionGraph { private static readonly ConcurrentDictionary resultCache = new(SymbolEqualityComparer.Default); @@ -377,15 +378,7 @@ namespace Semmle.Extraction.CSharp.Entities return false; } - if (resultCache.TryGetValue(namedTypeDefinition, out var result)) - { - return result; - } - - result = new GenericsRecursionGraph(namedTypeDefinition).HasExpandingCycle(); - resultCache.TryAdd(namedTypeDefinition, result); - - return result; + return resultCache.GetOrAdd(namedTypeDefinition, nt => new GenericsRecursionGraph(nt).HasExpandingCycle()); } private readonly INamedTypeSymbol startSymbol; @@ -417,12 +410,7 @@ namespace Semmle.Extraction.CSharp.Entities if (reference.TypeArguments[i] is ITypeParameterSymbol source) { // non-expanding - if (!edges.TryGetValue(source, out var targets)) - { - targets = new List<(ITypeParameterSymbol, bool)>(); - edges.Add(source, targets); - } - targets.Add((target, false)); + edges.AddAnother(source, (target, false)); } else if (reference.TypeArguments[i] is INamedTypeSymbol namedType) { @@ -430,34 +418,34 @@ namespace Semmle.Extraction.CSharp.Entities var sources = GetAllNestedTypeParameters(namedType); foreach (var s in sources) { - if (!edges.TryGetValue(s, out var targets)) - { - targets = new List<(ITypeParameterSymbol, bool)>(); - edges.Add(s, targets); - } - targets.Add((target, true)); + edges.AddAnother(s, (target, true)); } } } } } - private List GetAllNestedTypeParameters(INamedTypeSymbol symbol) + private static List GetAllNestedTypeParameters(INamedTypeSymbol symbol) { var res = new List(); - foreach (var typeArgument in symbol.TypeArguments) + void AddTypeParameters(INamedTypeSymbol symbol) { - if (typeArgument is ITypeParameterSymbol typeParameter) + foreach (var typeArgument in symbol.TypeArguments) { - res.Add(typeParameter); - } - else if (typeArgument is INamedTypeSymbol namedType) - { - res.AddRange(GetAllNestedTypeParameters(namedType)); + if (typeArgument is ITypeParameterSymbol typeParameter) + { + res.Add(typeParameter); + } + else if (typeArgument is INamedTypeSymbol namedType) + { + AddTypeParameters(namedType); + } } } + AddTypeParameters(symbol); + return res; } @@ -510,8 +498,8 @@ namespace Semmle.Extraction.CSharp.Entities private bool HasExpandingCycle(ITypeParameterSymbol start) { var visited = new HashSet(SymbolEqualityComparer.Default); - var recStack = new HashSet(SymbolEqualityComparer.Default); - var hasExpandingCycle = HasExpandingCycle(start, visited, recStack, start, hasSeenExpandingEdge: false); + var path = new List(); + var hasExpandingCycle = HasExpandingCycle(start, visited, path, hasSeenExpandingEdge: false); return hasExpandingCycle; } @@ -527,13 +515,12 @@ namespace Semmle.Extraction.CSharp.Entities /// /// The current node that is being visited /// The nodes that have already been visited by any path. - /// The nodes already visited on the current path. Could be a List<> if the order was important. - /// The start and end of the cycle. We're not looking for any cycle, but a cycle that goes back to the start. + /// The nodes already visited on the current path. /// Whether an expanding edge was already seen in this path. We're looking for a cycle that has at least one expanding edge. /// - private bool HasExpandingCycle(ITypeParameterSymbol current, HashSet visited, HashSet currentPath, ITypeParameterSymbol start, bool hasSeenExpandingEdge) + private bool HasExpandingCycle(ITypeParameterSymbol current, HashSet visited, List currentPath, bool hasSeenExpandingEdge) { - if (currentPath.Count > 0 && SymbolEqualityComparer.Default.Equals(current, start)) + if (currentPath.Count > 0 && SymbolEqualityComparer.Default.Equals(current, currentPath[0])) { return hasSeenExpandingEdge; } @@ -550,13 +537,13 @@ namespace Semmle.Extraction.CSharp.Entities foreach (var outgoingEdge in outgoingEdges) { - if (HasExpandingCycle(outgoingEdge.To, visited, currentPath, start, hasSeenExpandingEdge: hasSeenExpandingEdge || outgoingEdge.IsExpanding)) + if (HasExpandingCycle(outgoingEdge.To, visited, currentPath, hasSeenExpandingEdge: hasSeenExpandingEdge || outgoingEdge.IsExpanding)) { return true; } } - currentPath.Remove(current); + currentPath.RemoveAt(currentPath.Count - 1); return false; } } From 03771ffad2c1fe4de73258e3ca23b81266da033e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 03:07:18 +0000 Subject: [PATCH 202/788] Bump actions/checkout from 2 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check-implicit-this.yml | 2 +- .github/workflows/check-qldoc.yml | 2 +- .github/workflows/check-query-ids.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/compile-queries.yml | 2 +- .github/workflows/csharp-qltest.yml | 6 +++--- .github/workflows/csv-coverage-metrics.yml | 4 ++-- .github/workflows/csv-coverage-pr-artifacts.yml | 4 ++-- .github/workflows/csv-coverage-pr-comment.yml | 2 +- .github/workflows/csv-coverage-timeseries.yml | 4 ++-- .github/workflows/csv-coverage-update.yml | 2 +- .github/workflows/csv-coverage.yml | 4 ++-- .github/workflows/fast-forward.yml | 2 +- .github/workflows/go-tests-other-os.yml | 4 ++-- .github/workflows/go-tests.yml | 2 +- .github/workflows/js-ml-tests.yml | 2 +- .github/workflows/mad_modelDiff.yml | 4 ++-- .github/workflows/mad_regenerate-models.yml | 4 ++-- .github/workflows/qhelp-pr-preview.yml | 2 +- .github/workflows/ql-for-ql-build.yml | 2 +- .github/workflows/ql-for-ql-dataset_measure.yml | 6 +++--- .github/workflows/ql-for-ql-tests.yml | 4 ++-- .github/workflows/query-list.yml | 2 +- .github/workflows/ruby-build.yml | 10 +++++----- .github/workflows/ruby-dataset-measure.yml | 6 +++--- .github/workflows/ruby-qltest.yml | 4 ++-- .github/workflows/swift.yml | 16 ++++++++-------- .github/workflows/sync-files.yml | 2 +- .github/workflows/tree-sitter-extractor-test.yml | 6 +++--- .github/workflows/validate-change-notes.yml | 2 +- 30 files changed, 58 insertions(+), 58 deletions(-) diff --git a/.github/workflows/check-implicit-this.yml b/.github/workflows/check-implicit-this.yml index 8711d7955bc..14100ed3325 100644 --- a/.github/workflows/check-implicit-this.yml +++ b/.github/workflows/check-implicit-this.yml @@ -13,7 +13,7 @@ jobs: check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check that implicit this warnings is enabled for all packs shell: bash run: | diff --git a/.github/workflows/check-qldoc.yml b/.github/workflows/check-qldoc.yml index 6cb99154aa4..7996123e9bf 100644 --- a/.github/workflows/check-qldoc.yml +++ b/.github/workflows/check-qldoc.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 2 diff --git a/.github/workflows/check-query-ids.yml b/.github/workflows/check-query-ids.yml index 9ce9ed5ba85..9e84fe0b0e3 100644 --- a/.github/workflows/check-query-ids.yml +++ b/.github/workflows/check-query-ids.yml @@ -16,6 +16,6 @@ jobs: name: Check query IDs runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check for duplicate query IDs run: python3 misc/scripts/check-query-ids.py diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index dc4fa17c14d..b72cf6c6279 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: dotnet-version: 7.0.102 - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/compile-queries.yml b/.github/workflows/compile-queries.yml index ac63af81ccd..f3600dc0c5e 100644 --- a/.github/workflows/compile-queries.yml +++ b/.github/workflows/compile-queries.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest-xl steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup CodeQL uses: ./.github/actions/fetch-codeql with: diff --git a/.github/workflows/csharp-qltest.yml b/.github/workflows/csharp-qltest.yml index 568bad3a945..b7a498699a2 100644 --- a/.github/workflows/csharp-qltest.yml +++ b/.github/workflows/csharp-qltest.yml @@ -29,7 +29,7 @@ jobs: qlupgrade: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/fetch-codeql - name: Check DB upgrade scripts run: | @@ -52,7 +52,7 @@ jobs: matrix: slice: ["1/2", "2/2"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/fetch-codeql - uses: ./csharp/actions/create-extractor-pack - name: Cache compilation cache @@ -73,7 +73,7 @@ jobs: unit-tests: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup dotnet uses: actions/setup-dotnet@v3 with: diff --git a/.github/workflows/csv-coverage-metrics.yml b/.github/workflows/csv-coverage-metrics.yml index f18671441cd..e24c6bc74a4 100644 --- a/.github/workflows/csv-coverage-metrics.yml +++ b/.github/workflows/csv-coverage-metrics.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup CodeQL uses: ./.github/actions/fetch-codeql - name: Create empty database @@ -47,7 +47,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup CodeQL uses: ./.github/actions/fetch-codeql - name: Create empty database diff --git a/.github/workflows/csv-coverage-pr-artifacts.yml b/.github/workflows/csv-coverage-pr-artifacts.yml index b560d98a79d..48c55b2a630 100644 --- a/.github/workflows/csv-coverage-pr-artifacts.yml +++ b/.github/workflows/csv-coverage-pr-artifacts.yml @@ -31,11 +31,11 @@ jobs: GITHUB_CONTEXT: ${{ toJSON(github.event) }} run: echo "$GITHUB_CONTEXT" - name: Clone self (github/codeql) - MERGE - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: merge - name: Clone self (github/codeql) - BASE - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 2 path: base diff --git a/.github/workflows/csv-coverage-pr-comment.yml b/.github/workflows/csv-coverage-pr-comment.yml index 095ab7b3bed..86fe74d3419 100644 --- a/.github/workflows/csv-coverage-pr-comment.yml +++ b/.github/workflows/csv-coverage-pr-comment.yml @@ -20,7 +20,7 @@ jobs: GITHUB_CONTEXT: ${{ toJSON(github.event) }} run: echo "$GITHUB_CONTEXT" - name: Clone self (github/codeql) - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Python 3.8 uses: actions/setup-python@v4 with: diff --git a/.github/workflows/csv-coverage-timeseries.yml b/.github/workflows/csv-coverage-timeseries.yml index 42fd4711dac..cf2758dd9d3 100644 --- a/.github/workflows/csv-coverage-timeseries.yml +++ b/.github/workflows/csv-coverage-timeseries.yml @@ -9,11 +9,11 @@ jobs: steps: - name: Clone self (github/codeql) - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: script - name: Clone self (github/codeql) for analysis - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: codeqlModels fetch-depth: 0 diff --git a/.github/workflows/csv-coverage-update.yml b/.github/workflows/csv-coverage-update.yml index 6474044c483..ccf1ffd4705 100644 --- a/.github/workflows/csv-coverage-update.yml +++ b/.github/workflows/csv-coverage-update.yml @@ -17,7 +17,7 @@ jobs: GITHUB_CONTEXT: ${{ toJSON(github.event) }} run: echo "$GITHUB_CONTEXT" - name: Clone self (github/codeql) - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: ql fetch-depth: 0 diff --git a/.github/workflows/csv-coverage.yml b/.github/workflows/csv-coverage.yml index e330490b69b..4fb1d143fc3 100644 --- a/.github/workflows/csv-coverage.yml +++ b/.github/workflows/csv-coverage.yml @@ -13,11 +13,11 @@ jobs: steps: - name: Clone self (github/codeql) - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: script - name: Clone self (github/codeql) for analysis - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: codeqlModels ref: ${{ github.event.inputs.qlModelShaOverride || github.ref }} diff --git a/.github/workflows/fast-forward.yml b/.github/workflows/fast-forward.yml index aedbf3573a7..c89675efc4e 100644 --- a/.github/workflows/fast-forward.yml +++ b/.github/workflows/fast-forward.yml @@ -25,7 +25,7 @@ jobs: exit 1 - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Git config shell: bash diff --git a/.github/workflows/go-tests-other-os.yml b/.github/workflows/go-tests-other-os.yml index 7b5449fa4c5..09765011a18 100644 --- a/.github/workflows/go-tests-other-os.yml +++ b/.github/workflows/go-tests-other-os.yml @@ -21,7 +21,7 @@ jobs: id: go - name: Check out code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up CodeQL CLI uses: ./.github/actions/fetch-codeql @@ -56,7 +56,7 @@ jobs: id: go - name: Check out code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up CodeQL CLI uses: ./.github/actions/fetch-codeql diff --git a/.github/workflows/go-tests.yml b/.github/workflows/go-tests.yml index 7078c733f01..7885f504bba 100644 --- a/.github/workflows/go-tests.yml +++ b/.github/workflows/go-tests.yml @@ -29,7 +29,7 @@ jobs: id: go - name: Check out code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up CodeQL CLI uses: ./.github/actions/fetch-codeql diff --git a/.github/workflows/js-ml-tests.yml b/.github/workflows/js-ml-tests.yml index 90cb5691126..866ca14053e 100644 --- a/.github/workflows/js-ml-tests.yml +++ b/.github/workflows/js-ml-tests.yml @@ -27,7 +27,7 @@ jobs: name: Test QL runs-on: ubuntu-latest-xl steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/fetch-codeql diff --git a/.github/workflows/mad_modelDiff.yml b/.github/workflows/mad_modelDiff.yml index 8cfaac6f134..17640da9f2e 100644 --- a/.github/workflows/mad_modelDiff.yml +++ b/.github/workflows/mad_modelDiff.yml @@ -27,12 +27,12 @@ jobs: slug: ${{fromJson(github.event.inputs.projects || '["apache/commons-codec", "apache/commons-io", "apache/commons-beanutils", "apache/commons-logging", "apache/commons-fileupload", "apache/commons-lang", "apache/commons-validator", "apache/commons-csv", "apache/dubbo"]' )}} steps: - name: Clone github/codeql from PR - uses: actions/checkout@v3 + uses: actions/checkout@v4 if: github.event.pull_request with: path: codeql-pr - name: Clone github/codeql from main - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: codeql-main ref: main diff --git a/.github/workflows/mad_regenerate-models.yml b/.github/workflows/mad_regenerate-models.yml index 6b3d0347a86..3268a17dfbb 100644 --- a/.github/workflows/mad_regenerate-models.yml +++ b/.github/workflows/mad_regenerate-models.yml @@ -27,11 +27,11 @@ jobs: ref: "placeholder" steps: - name: Clone self (github/codeql) - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup CodeQL binaries uses: ./.github/actions/fetch-codeql - name: Clone repositories - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: repos/${{ matrix.ref }} ref: ${{ matrix.ref }} diff --git a/.github/workflows/qhelp-pr-preview.yml b/.github/workflows/qhelp-pr-preview.yml index a44ef5ad48d..8b20fbe00c9 100644 --- a/.github/workflows/qhelp-pr-preview.yml +++ b/.github/workflows/qhelp-pr-preview.yml @@ -43,7 +43,7 @@ jobs: if-no-files-found: error retention-days: 1 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 2 persist-credentials: false diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index 10086d78d78..e8ac1fa0f17 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest-xl steps: ### Build the queries ### - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Find codeql diff --git a/.github/workflows/ql-for-ql-dataset_measure.yml b/.github/workflows/ql-for-ql-dataset_measure.yml index 2c7d037f927..d317d467c9a 100644 --- a/.github/workflows/ql-for-ql-dataset_measure.yml +++ b/.github/workflows/ql-for-ql-dataset_measure.yml @@ -21,7 +21,7 @@ jobs: - github/codeql runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Find codeql id: find-codeql @@ -42,7 +42,7 @@ jobs: env: CODEQL: ${{ steps.find-codeql.outputs.codeql-path }} - name: Checkout ${{ matrix.repo }} - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: ${{ matrix.repo }} path: ${{ github.workspace }}/repo @@ -71,7 +71,7 @@ jobs: runs-on: ubuntu-latest needs: measure steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/download-artifact@v3 with: name: measurements diff --git a/.github/workflows/ql-for-ql-tests.yml b/.github/workflows/ql-for-ql-tests.yml index c89527113df..4385e3f76bb 100644 --- a/.github/workflows/ql-for-ql-tests.yml +++ b/.github/workflows/ql-for-ql-tests.yml @@ -21,7 +21,7 @@ jobs: qltest: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Find codeql id: find-codeql uses: github/codeql-action/init@v2 @@ -61,7 +61,7 @@ jobs: needs: [qltest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install GNU tar if: runner.os == 'macOS' run: | diff --git a/.github/workflows/query-list.yml b/.github/workflows/query-list.yml index efb295dfcf8..07fb3b682da 100644 --- a/.github/workflows/query-list.yml +++ b/.github/workflows/query-list.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Clone self (github/codeql) - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: codeql - name: Set up Python 3.8 diff --git a/.github/workflows/ruby-build.yml b/.github/workflows/ruby-build.yml index 935d9da642b..ca3874f9c41 100644 --- a/.github/workflows/ruby-build.yml +++ b/.github/workflows/ruby-build.yml @@ -42,7 +42,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install GNU tar if: runner.os == 'macOS' run: | @@ -113,7 +113,7 @@ jobs: compile-queries: runs-on: ubuntu-latest-xl steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Fetch CodeQL uses: ./.github/actions/fetch-codeql - name: Cache compilation cache @@ -145,7 +145,7 @@ jobs: runs-on: ubuntu-latest needs: [build, compile-queries] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/download-artifact@v3 with: name: ruby.dbscheme @@ -206,7 +206,7 @@ jobs: runs-on: ${{ matrix.os }} needs: [package] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Fetch CodeQL uses: ./.github/actions/fetch-codeql @@ -254,7 +254,7 @@ jobs: # jq is available in epel-release (https://docs.fedoraproject.org/en-US/epel/) yum install -y gh unzip epel-release yum install -y jq - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Fetch CodeQL uses: ./.github/actions/fetch-codeql diff --git a/.github/workflows/ruby-dataset-measure.yml b/.github/workflows/ruby-dataset-measure.yml index bb8bb6858fd..c064d8d2bfb 100644 --- a/.github/workflows/ruby-dataset-measure.yml +++ b/.github/workflows/ruby-dataset-measure.yml @@ -27,14 +27,14 @@ jobs: repo: [rails/rails, discourse/discourse, spree/spree, ruby/ruby] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/fetch-codeql - uses: ./ruby/actions/create-extractor-pack - name: Checkout ${{ matrix.repo }} - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: ${{ matrix.repo }} path: ${{ github.workspace }}/repo @@ -59,7 +59,7 @@ jobs: runs-on: ubuntu-latest needs: measure steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/download-artifact@v3 with: name: measurements diff --git a/.github/workflows/ruby-qltest.yml b/.github/workflows/ruby-qltest.yml index b13cfabcd7d..19d5325091f 100644 --- a/.github/workflows/ruby-qltest.yml +++ b/.github/workflows/ruby-qltest.yml @@ -33,7 +33,7 @@ jobs: qlupgrade: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/fetch-codeql - name: Check DB upgrade scripts run: | @@ -54,7 +54,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/fetch-codeql - uses: ./ruby/actions/create-extractor-pack - name: Cache compilation cache diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 075a5505f39..8a04d474118 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -39,31 +39,31 @@ jobs: build-and-test-macos: runs-on: macos-12-xl steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./swift/actions/build-and-test build-and-test-linux: runs-on: ubuntu-latest-xl steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./swift/actions/build-and-test qltests-linux: needs: build-and-test-linux runs-on: ubuntu-latest-xl steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./swift/actions/run-ql-tests qltests-macos: if : ${{ github.event_name == 'pull_request' }} needs: build-and-test-macos runs-on: macos-12-xl steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./swift/actions/run-ql-tests integration-tests-linux: needs: build-and-test-linux runs-on: ubuntu-latest-xl steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./swift/actions/run-integration-tests integration-tests-macos: if : ${{ github.event_name == 'pull_request' }} @@ -71,13 +71,13 @@ jobs: runs-on: macos-12-xl timeout-minutes: 60 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./swift/actions/run-integration-tests codegen: if : ${{ github.event_name == 'pull_request' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: bazelbuild/setup-bazelisk@v2 - uses: actions/setup-python@v4 with: @@ -102,6 +102,6 @@ jobs: if : ${{ github.event_name == 'pull_request' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/fetch-codeql - uses: ./swift/actions/database-upgrade-scripts diff --git a/.github/workflows/sync-files.yml b/.github/workflows/sync-files.yml index 8f4678f1788..7894eae7f55 100644 --- a/.github/workflows/sync-files.yml +++ b/.github/workflows/sync-files.yml @@ -14,7 +14,7 @@ jobs: sync: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check synchronized files run: python config/sync-files.py - name: Check dbscheme fragments diff --git a/.github/workflows/tree-sitter-extractor-test.yml b/.github/workflows/tree-sitter-extractor-test.yml index d41c9083fdf..5d13b25466d 100644 --- a/.github/workflows/tree-sitter-extractor-test.yml +++ b/.github/workflows/tree-sitter-extractor-test.yml @@ -27,7 +27,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check formatting run: cargo fmt --all -- --check - name: Run tests @@ -35,12 +35,12 @@ jobs: fmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check formatting run: cargo fmt --check clippy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Run clippy run: cargo clippy -- --no-deps -D warnings -A clippy::new_without_default -A clippy::too_many_arguments diff --git a/.github/workflows/validate-change-notes.yml b/.github/workflows/validate-change-notes.yml index 44e0dc6df29..f8c1d9f6504 100644 --- a/.github/workflows/validate-change-notes.yml +++ b/.github/workflows/validate-change-notes.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup CodeQL uses: ./.github/actions/fetch-codeql From 3db384ddc39714b82ad93da0a2f039e0ace576b4 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Tue, 5 Sep 2023 11:50:32 +0100 Subject: [PATCH 203/788] CPP: Handle globals flowing into "UnreacheachedInstruction" --- .../cpp/ir/dataflow/internal/SsaInternals.qll | 13 +++++++++--- .../CWE-089/SqlTainted/SqlTainted.expected | 9 +++++++++ .../Security/CWE/CWE-089/SqlTainted/test.c | 20 ++++++++++++++++++- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll index 11c77ef9613..7c34dc43d07 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll @@ -447,9 +447,16 @@ class GlobalUse extends UseImpl, TGlobalUse { IRFunction getIRFunction() { result = f } final override predicate hasIndexInBlock(IRBlock block, int index) { - exists(ExitFunctionInstruction exit | - exit = f.getExitFunctionInstruction() and - block.getInstruction(index) = exit + // Similar to the `FinalParameterUse` case, we want to generate flow out of + // globals at any exit so that we can flow out of non-returning functions. + // Obviously this isn't correct as we can't actually flow but the global flow + // requires this if we want to flow into children. + exists(Instruction return | + return instanceof ReturnInstruction or + return instanceof UnreachedInstruction + | + block.getInstruction(index) = return and + return.getEnclosingIRFunction() = f ) } diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected index 5282982cef7..ae141f0631e 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected @@ -1,12 +1,21 @@ edges | test.c:14:27:14:30 | argv indirection | test.c:21:18:21:23 | query1 indirection | +| test.c:14:27:14:30 | argv indirection | test.c:35:16:35:23 | userName indirection | +| test.c:35:16:35:23 | userName indirection | test.c:40:25:40:32 | username indirection | +| test.c:38:7:38:20 | globalUsername indirection | test.c:51:18:51:23 | query1 indirection | +| test.c:40:25:40:32 | username indirection | test.c:38:7:38:20 | globalUsername indirection | | test.cpp:39:27:39:30 | argv indirection | test.cpp:43:27:43:33 | access to array indirection | nodes | test.c:14:27:14:30 | argv indirection | semmle.label | argv indirection | | test.c:21:18:21:23 | query1 indirection | semmle.label | query1 indirection | +| test.c:35:16:35:23 | userName indirection | semmle.label | userName indirection | +| test.c:38:7:38:20 | globalUsername indirection | semmle.label | globalUsername indirection | +| test.c:40:25:40:32 | username indirection | semmle.label | username indirection | +| test.c:51:18:51:23 | query1 indirection | semmle.label | query1 indirection | | test.cpp:39:27:39:30 | argv indirection | semmle.label | argv indirection | | test.cpp:43:27:43:33 | access to array indirection | semmle.label | access to array indirection | subpaths #select | test.c:21:18:21:23 | query1 | test.c:14:27:14:30 | argv indirection | test.c:21:18:21:23 | query1 indirection | This argument to a SQL query function is derived from $@ and then passed to mysql_query(sqlArg). | test.c:14:27:14:30 | argv indirection | user input (a command-line argument) | +| test.c:51:18:51:23 | query1 | test.c:14:27:14:30 | argv indirection | test.c:51:18:51:23 | query1 indirection | This argument to a SQL query function is derived from $@ and then passed to mysql_query(sqlArg). | test.c:14:27:14:30 | argv indirection | user input (a command-line argument) | | test.cpp:43:27:43:33 | access to array | test.cpp:39:27:39:30 | argv indirection | test.cpp:43:27:43:33 | access to array indirection | This argument to a SQL query function is derived from $@ and then passed to pqxx::work::exec1((unnamed parameter 0)). | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.c b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.c index 45304f13872..780a34ca1dc 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.c +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.c @@ -8,7 +8,7 @@ int snprintf(char *s, size_t n, const char *format, ...); void sanitizeString(char *stringOut, size_t len, const char *strIn); int mysql_query(int arg1, const char *sqlArg); int atoi(const char *nptr); - +void exit(int i); ///// Test code ///// int main(int argc, char** argv) { @@ -31,4 +31,22 @@ int main(int argc, char** argv) { char query3[1000] = {0}; snprintf(query3, 1000, "SELECT UID FROM USERS where number = \"%i\"", userNumber); mysql_query(0, query3); // GOOD + + nonReturning(userName); +} + +char* globalUsername; + +void nonReturning(char* username) { + globalUsername = username; + badFunc(); + // This function does not return, so we used to lose the global flow here. + exit(0); +} + +void badFunc() { + char *userName = globalUsername; + char query1[1000] = {0}; + snprintf(query1, 1000, "SELECT UID FROM USERS where name = \"%s\"", userName); + mysql_query(0, query1); // BAD } From 35e949945dc213680cf3488b61b529c4ad501478 Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Tue, 5 Sep 2023 12:05:27 +0200 Subject: [PATCH 204/788] Swift: add queries for unresolved AST nodes --- swift/ql/consistency-queries/UnresolvedAstNodes.ql | 5 +++++ .../ql/src/diagnostics/internal/UnresolvedAstNodes.ql | 11 +++++++++++ .../errors/CONSISTENCY/UnresolvedAstNodes.expected | 2 ++ 3 files changed, 18 insertions(+) create mode 100644 swift/ql/consistency-queries/UnresolvedAstNodes.ql create mode 100644 swift/ql/src/diagnostics/internal/UnresolvedAstNodes.ql create mode 100644 swift/ql/test/extractor-tests/errors/CONSISTENCY/UnresolvedAstNodes.expected diff --git a/swift/ql/consistency-queries/UnresolvedAstNodes.ql b/swift/ql/consistency-queries/UnresolvedAstNodes.ql new file mode 100644 index 00000000000..d2369ab9436 --- /dev/null +++ b/swift/ql/consistency-queries/UnresolvedAstNodes.ql @@ -0,0 +1,5 @@ +import swift + +from AstNode n +where n.getAPrimaryQlClass().matches("Unresolved%") +select n diff --git a/swift/ql/src/diagnostics/internal/UnresolvedAstNodes.ql b/swift/ql/src/diagnostics/internal/UnresolvedAstNodes.ql new file mode 100644 index 00000000000..97c14eb4ca7 --- /dev/null +++ b/swift/ql/src/diagnostics/internal/UnresolvedAstNodes.ql @@ -0,0 +1,11 @@ +/** + * @name Number of unresolved AST nodes + * @description Count all unresolved AST nodes. + * @kind metric + * @id swift/diagnostics/unresolved-ast-nodes + * @tags summary + */ + +import swift + +select count(AstNode n | n.getAPrimaryQlClass().matches("Unresolved%") | n) diff --git a/swift/ql/test/extractor-tests/errors/CONSISTENCY/UnresolvedAstNodes.expected b/swift/ql/test/extractor-tests/errors/CONSISTENCY/UnresolvedAstNodes.expected new file mode 100644 index 00000000000..c88a81e5fc7 --- /dev/null +++ b/swift/ql/test/extractor-tests/errors/CONSISTENCY/UnresolvedAstNodes.expected @@ -0,0 +1,2 @@ +| file://:0:0:0:0 | ... .combine(_:) | +| unresolved.swift:5:1:5:14 | UnresolvedSpecializeExpr | From 5ea4c447016e9b7fac977b533c30304d3732c219 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 5 Sep 2023 12:33:49 +0100 Subject: [PATCH 205/788] Kotlin: Give some more informative errors messages --- .../src/main/kotlin/KotlinFileExtractor.kt | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 022b71ca562..0d047f934d7 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -4858,9 +4858,16 @@ open class KotlinFileExtractor( logger.errorElement("Cannot find class for kPropertyType. ${kPropertyType.classFqName?.asString()}", propertyReferenceExpr) return } - val parameterTypes = kPropertyType.arguments.map { it as? IrType }.requireNoNullsOrNull() + val parameterTypes: List? = kPropertyType.arguments.map { + if (it is IrType) { + it + } else { + logger.errorElement("Unexpected: Non-IrType (${it.javaClass}) property reference parameter.", propertyReferenceExpr) + null + } + }.requireNoNullsOrNull() if (parameterTypes == null) { - logger.errorElement("Unexpected: Non-IrType parameter.", propertyReferenceExpr) + logger.errorElement("Unexpected: One or more non-IrType property reference parameters.", propertyReferenceExpr) return } @@ -5041,9 +5048,16 @@ open class KotlinFileExtractor( return } - val parameterTypes = type.arguments.map { it as? IrType }.requireNoNullsOrNull() + val parameterTypes: List? = type.arguments.map { + if (it is IrType) { + it + } else { + logger.errorElement("Unexpected: Non-IrType (${it.javaClass}) function reference parameter.", functionReferenceExpr) + null + } + }.requireNoNullsOrNull() if (parameterTypes == null) { - logger.errorElement("Unexpected: Non-IrType parameter.", functionReferenceExpr) + logger.errorElement("Unexpected: One or more non-IrType function reference parameters.", functionReferenceExpr) return } From 880da69d16b877e87a2c93c119f22c928b333880 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 16 Aug 2023 14:54:37 +0200 Subject: [PATCH 206/788] C#: Update extractor_messages relation schema. --- csharp/ql/lib/semmlecode.csharp.dbscheme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/ql/lib/semmlecode.csharp.dbscheme b/csharp/ql/lib/semmlecode.csharp.dbscheme index cd877b8cc2f..585d6402ff8 100644 --- a/csharp/ql/lib/semmlecode.csharp.dbscheme +++ b/csharp/ql/lib/semmlecode.csharp.dbscheme @@ -136,7 +136,7 @@ diagnostics( string error_tag: string ref, string error_message: string ref, string full_error_message: string ref, - int location: @location_default ref + int location: @location ref ); extractor_messages( @@ -145,7 +145,7 @@ extractor_messages( string origin : string ref, string text : string ref, string entity : string ref, - int location: @location_default ref, + int location: @location ref, string stack_trace : string ref ); From b5d4987c0ae783ff77cedb91d9ec4ccfb5a24492 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 5 Sep 2023 15:32:09 +0200 Subject: [PATCH 207/788] C#: Add upgrade and downgrade scripts. --- .../old.dbscheme | 2078 +++++++++++++++++ .../semmlecode.csharp.dbscheme | 2078 +++++++++++++++++ .../upgrade.properties | 2 + .../old.dbscheme | 2078 +++++++++++++++++ .../semmlecode.csharp.dbscheme | 2078 +++++++++++++++++ .../upgrade.properties | 2 + 6 files changed, 8316 insertions(+) create mode 100644 csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/old.dbscheme create mode 100644 csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/semmlecode.csharp.dbscheme create mode 100644 csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/upgrade.properties create mode 100644 csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/old.dbscheme create mode 100644 csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/semmlecode.csharp.dbscheme create mode 100644 csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/upgrade.properties diff --git a/csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/old.dbscheme b/csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/old.dbscheme new file mode 100644 index 00000000000..585d6402ff8 --- /dev/null +++ b/csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/old.dbscheme @@ -0,0 +1,2078 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | f1.cs + * 3 | f2.cs + * 4 | f3.cs + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location ref, + string stack_trace : string ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +// Populated by the CSV extractor +externalData( + int id: @externalDataElement, + string path: string ref, + int column: int ref, + string value: string ref); + +sourceLocationPrefix( + string prefix: string ref); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints | @externalDataElement + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function | @lambda_expr; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string ref); + +files( + unique int id: @file, + string name: string ref); + +folders( + unique int id: @folder, + string name: string ref); + +@container = @folder | @file ; + +containerparent( + int parent: @container ref, + unique int child: @container ref); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + unique int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int kind: int ref, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +compiler_generated(unique int id: @modifiable ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event | @operator; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +@has_scoped_annotation = @local_scope_variable + +scoped_annotation( + int id: @has_scoped_annotation ref, + int kind: int ref // scoped ref = 1, scoped value = 2 + ); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @utf16_string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* C# 11.0 */ +| 131 = @list_pattern_expr +| 132 = @slice_pattern_expr +| 133 = @urshift_expr +| 134 = @assign_urshift_expr +| 135 = @utf8_string_literal_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@string_literal_expr = @utf16_string_literal_expr | @utf8_string_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr | @urshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_compiler_generated( + unique int id: @expr ref); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +lambda_expr_return_type( + unique int id: @lambda_expr ref, + int type_id: @type_or_ref ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* XML Files */ + +xmlEncoding ( + unique int id: @file ref, + string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); + +/* Common Intermediate Language - CIL */ + +case @cil_instruction.opcode of + 0 = @cil_nop +| 1 = @cil_break +| 2 = @cil_ldarg_0 +| 3 = @cil_ldarg_1 +| 4 = @cil_ldarg_2 +| 5 = @cil_ldarg_3 +| 6 = @cil_ldloc_0 +| 7 = @cil_ldloc_1 +| 8 = @cil_ldloc_2 +| 9 = @cil_ldloc_3 +| 10 = @cil_stloc_0 +| 11 = @cil_stloc_1 +| 12 = @cil_stloc_2 +| 13 = @cil_stloc_3 +| 14 = @cil_ldarg_s +| 15 = @cil_ldarga_s +| 16 = @cil_starg_s +| 17 = @cil_ldloc_s +| 18 = @cil_ldloca_s +| 19 = @cil_stloc_s +| 20 = @cil_ldnull +| 21 = @cil_ldc_i4_m1 +| 22 = @cil_ldc_i4_0 +| 23 = @cil_ldc_i4_1 +| 24 = @cil_ldc_i4_2 +| 25 = @cil_ldc_i4_3 +| 26 = @cil_ldc_i4_4 +| 27 = @cil_ldc_i4_5 +| 28 = @cil_ldc_i4_6 +| 29 = @cil_ldc_i4_7 +| 30 = @cil_ldc_i4_8 +| 31 = @cil_ldc_i4_s +| 32 = @cil_ldc_i4 +| 33 = @cil_ldc_i8 +| 34 = @cil_ldc_r4 +| 35 = @cil_ldc_r8 +| 37 = @cil_dup +| 38 = @cil_pop +| 39 = @cil_jmp +| 40 = @cil_call +| 41 = @cil_calli +| 42 = @cil_ret +| 43 = @cil_br_s +| 44 = @cil_brfalse_s +| 45 = @cil_brtrue_s +| 46 = @cil_beq_s +| 47 = @cil_bge_s +| 48 = @cil_bgt_s +| 49 = @cil_ble_s +| 50 = @cil_blt_s +| 51 = @cil_bne_un_s +| 52 = @cil_bge_un_s +| 53 = @cil_bgt_un_s +| 54 = @cil_ble_un_s +| 55 = @cil_blt_un_s +| 56 = @cil_br +| 57 = @cil_brfalse +| 58 = @cil_brtrue +| 59 = @cil_beq +| 60 = @cil_bge +| 61 = @cil_bgt +| 62 = @cil_ble +| 63 = @cil_blt +| 64 = @cil_bne_un +| 65 = @cil_bge_un +| 66 = @cil_bgt_un +| 67 = @cil_ble_un +| 68 = @cil_blt_un +| 69 = @cil_switch +| 70 = @cil_ldind_i1 +| 71 = @cil_ldind_u1 +| 72 = @cil_ldind_i2 +| 73 = @cil_ldind_u2 +| 74 = @cil_ldind_i4 +| 75 = @cil_ldind_u4 +| 76 = @cil_ldind_i8 +| 77 = @cil_ldind_i +| 78 = @cil_ldind_r4 +| 79 = @cil_ldind_r8 +| 80 = @cil_ldind_ref +| 81 = @cil_stind_ref +| 82 = @cil_stind_i1 +| 83 = @cil_stind_i2 +| 84 = @cil_stind_i4 +| 85 = @cil_stind_i8 +| 86 = @cil_stind_r4 +| 87 = @cil_stind_r8 +| 88 = @cil_add +| 89 = @cil_sub +| 90 = @cil_mul +| 91 = @cil_div +| 92 = @cil_div_un +| 93 = @cil_rem +| 94 = @cil_rem_un +| 95 = @cil_and +| 96 = @cil_or +| 97 = @cil_xor +| 98 = @cil_shl +| 99 = @cil_shr +| 100 = @cil_shr_un +| 101 = @cil_neg +| 102 = @cil_not +| 103 = @cil_conv_i1 +| 104 = @cil_conv_i2 +| 105 = @cil_conv_i4 +| 106 = @cil_conv_i8 +| 107 = @cil_conv_r4 +| 108 = @cil_conv_r8 +| 109 = @cil_conv_u4 +| 110 = @cil_conv_u8 +| 111 = @cil_callvirt +| 112 = @cil_cpobj +| 113 = @cil_ldobj +| 114 = @cil_ldstr +| 115 = @cil_newobj +| 116 = @cil_castclass +| 117 = @cil_isinst +| 118 = @cil_conv_r_un +| 121 = @cil_unbox +| 122 = @cil_throw +| 123 = @cil_ldfld +| 124 = @cil_ldflda +| 125 = @cil_stfld +| 126 = @cil_ldsfld +| 127 = @cil_ldsflda +| 128 = @cil_stsfld +| 129 = @cil_stobj +| 130 = @cil_conv_ovf_i1_un +| 131 = @cil_conv_ovf_i2_un +| 132 = @cil_conv_ovf_i4_un +| 133 = @cil_conv_ovf_i8_un +| 134 = @cil_conv_ovf_u1_un +| 135 = @cil_conv_ovf_u2_un +| 136 = @cil_conv_ovf_u4_un +| 137 = @cil_conv_ovf_u8_un +| 138 = @cil_conv_ovf_i_un +| 139 = @cil_conv_ovf_u_un +| 140 = @cil_box +| 141 = @cil_newarr +| 142 = @cil_ldlen +| 143 = @cil_ldelema +| 144 = @cil_ldelem_i1 +| 145 = @cil_ldelem_u1 +| 146 = @cil_ldelem_i2 +| 147 = @cil_ldelem_u2 +| 148 = @cil_ldelem_i4 +| 149 = @cil_ldelem_u4 +| 150 = @cil_ldelem_i8 +| 151 = @cil_ldelem_i +| 152 = @cil_ldelem_r4 +| 153 = @cil_ldelem_r8 +| 154 = @cil_ldelem_ref +| 155 = @cil_stelem_i +| 156 = @cil_stelem_i1 +| 157 = @cil_stelem_i2 +| 158 = @cil_stelem_i4 +| 159 = @cil_stelem_i8 +| 160 = @cil_stelem_r4 +| 161 = @cil_stelem_r8 +| 162 = @cil_stelem_ref +| 163 = @cil_ldelem +| 164 = @cil_stelem +| 165 = @cil_unbox_any +| 179 = @cil_conv_ovf_i1 +| 180 = @cil_conv_ovf_u1 +| 181 = @cil_conv_ovf_i2 +| 182 = @cil_conv_ovf_u2 +| 183 = @cil_conv_ovf_i4 +| 184 = @cil_conv_ovf_u4 +| 185 = @cil_conv_ovf_i8 +| 186 = @cil_conv_ovf_u8 +| 194 = @cil_refanyval +| 195 = @cil_ckinfinite +| 198 = @cil_mkrefany +| 208 = @cil_ldtoken +| 209 = @cil_conv_u2 +| 210 = @cil_conv_u1 +| 211 = @cil_conv_i +| 212 = @cil_conv_ovf_i +| 213 = @cil_conv_ovf_u +| 214 = @cil_add_ovf +| 215 = @cil_add_ovf_un +| 216 = @cil_mul_ovf +| 217 = @cil_mul_ovf_un +| 218 = @cil_sub_ovf +| 219 = @cil_sub_ovf_un +| 220 = @cil_endfinally +| 221 = @cil_leave +| 222 = @cil_leave_s +| 223 = @cil_stind_i +| 224 = @cil_conv_u +| 65024 = @cil_arglist +| 65025 = @cil_ceq +| 65026 = @cil_cgt +| 65027 = @cil_cgt_un +| 65028 = @cil_clt +| 65029 = @cil_clt_un +| 65030 = @cil_ldftn +| 65031 = @cil_ldvirtftn +| 65033 = @cil_ldarg +| 65034 = @cil_ldarga +| 65035 = @cil_starg +| 65036 = @cil_ldloc +| 65037 = @cil_ldloca +| 65038 = @cil_stloc +| 65039 = @cil_localloc +| 65041 = @cil_endfilter +| 65042 = @cil_unaligned +| 65043 = @cil_volatile +| 65044 = @cil_tail +| 65045 = @cil_initobj +| 65046 = @cil_constrained +| 65047 = @cil_cpblk +| 65048 = @cil_initblk +| 65050 = @cil_rethrow +| 65052 = @cil_sizeof +| 65053 = @cil_refanytype +| 65054 = @cil_readonly +; + +// CIL ignored instructions + +@cil_ignore = @cil_nop | @cil_break | @cil_volatile | @cil_unaligned; + +// CIL local/parameter/field access + +@cil_ldarg_any = @cil_ldarg_0 | @cil_ldarg_1 | @cil_ldarg_2 | @cil_ldarg_3 | @cil_ldarg_s | @cil_ldarga_s | @cil_ldarg | @cil_ldarga; +@cil_starg_any = @cil_starg | @cil_starg_s; + +@cil_ldloc_any = @cil_ldloc_0 | @cil_ldloc_1 | @cil_ldloc_2 | @cil_ldloc_3 | @cil_ldloc_s | @cil_ldloca_s | @cil_ldloc | @cil_ldloca; +@cil_stloc_any = @cil_stloc_0 | @cil_stloc_1 | @cil_stloc_2 | @cil_stloc_3 | @cil_stloc_s | @cil_stloc; + +@cil_ldfld_any = @cil_ldfld | @cil_ldsfld | @cil_ldsflda | @cil_ldflda; +@cil_stfld_any = @cil_stfld | @cil_stsfld; + +@cil_local_access = @cil_stloc_any | @cil_ldloc_any; +@cil_arg_access = @cil_starg_any | @cil_ldarg_any; +@cil_read_access = @cil_ldloc_any | @cil_ldarg_any | @cil_ldfld_any; +@cil_write_access = @cil_stloc_any | @cil_starg_any | @cil_stfld_any; + +@cil_stack_access = @cil_local_access | @cil_arg_access; +@cil_field_access = @cil_ldfld_any | @cil_stfld_any; + +@cil_access = @cil_read_access | @cil_write_access; + +// CIL constant/literal instructions + +@cil_ldc_i = @cil_ldc_i4_any | @cil_ldc_i8; + +@cil_ldc_i4_any = @cil_ldc_i4_m1 | @cil_ldc_i4_0 | @cil_ldc_i4_1 | @cil_ldc_i4_2 | @cil_ldc_i4_3 | + @cil_ldc_i4_4 | @cil_ldc_i4_5 | @cil_ldc_i4_6 | @cil_ldc_i4_7 | @cil_ldc_i4_8 | @cil_ldc_i4_s | @cil_ldc_i4; + +@cil_ldc_r = @cil_ldc_r4 | @cil_ldc_r8; + +@cil_literal = @cil_ldnull | @cil_ldc_i | @cil_ldc_r | @cil_ldstr; + +// Control flow + +@cil_conditional_jump = @cil_binary_jump | @cil_unary_jump; +@cil_binary_jump = @cil_beq_s | @cil_bge_s | @cil_bgt_s | @cil_ble_s | @cil_blt_s | + @cil_bne_un_s | @cil_bge_un_s | @cil_bgt_un_s | @cil_ble_un_s | @cil_blt_un_s | + @cil_beq | @cil_bge | @cil_bgt | @cil_ble | @cil_blt | + @cil_bne_un | @cil_bge_un | @cil_bgt_un | @cil_ble_un | @cil_blt_un; +@cil_unary_jump = @cil_brfalse_s | @cil_brtrue_s | @cil_brfalse | @cil_brtrue | @cil_switch; +@cil_unconditional_jump = @cil_br | @cil_br_s | @cil_leave_any; +@cil_leave_any = @cil_leave | @cil_leave_s; +@cil_jump = @cil_unconditional_jump | @cil_conditional_jump; + +// CIL call instructions + +@cil_call_any = @cil_jmp | @cil_call | @cil_calli | @cil_tail | @cil_callvirt | @cil_newobj; + +// CIL expression instructions + +@cil_expr = @cil_literal | @cil_binary_expr | @cil_unary_expr | @cil_call_any | @cil_read_access | + @cil_newarr | @cil_ldtoken | @cil_sizeof | + @cil_ldftn | @cil_ldvirtftn | @cil_localloc | @cil_mkrefany | @cil_refanytype | @cil_arglist | @cil_dup; + +@cil_unary_expr = + @cil_conversion_operation | @cil_unary_arithmetic_operation | @cil_unary_bitwise_operation| + @cil_ldlen | @cil_isinst | @cil_box | @cil_ldobj | @cil_castclass | @cil_unbox_any | + @cil_ldind | @cil_unbox; + +@cil_conversion_operation = + @cil_conv_i1 | @cil_conv_i2 | @cil_conv_i4 | @cil_conv_i8 | + @cil_conv_u1 | @cil_conv_u2 | @cil_conv_u4 | @cil_conv_u8 | + @cil_conv_ovf_i | @cil_conv_ovf_i_un | @cil_conv_ovf_i1 | @cil_conv_ovf_i1_un | + @cil_conv_ovf_i2 | @cil_conv_ovf_i2_un | @cil_conv_ovf_i4 | @cil_conv_ovf_i4_un | + @cil_conv_ovf_i8 | @cil_conv_ovf_i8_un | @cil_conv_ovf_u | @cil_conv_ovf_u_un | + @cil_conv_ovf_u1 | @cil_conv_ovf_u1_un | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_ovf_u4 | @cil_conv_ovf_u4_un | @cil_conv_ovf_u8 | @cil_conv_ovf_u8_un | + @cil_conv_r4 | @cil_conv_r8 | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_i | @cil_conv_u | @cil_conv_r_un; + +@cil_ldind = @cil_ldind_i | @cil_ldind_i1 | @cil_ldind_i2 | @cil_ldind_i4 | @cil_ldind_i8 | + @cil_ldind_r4 | @cil_ldind_r8 | @cil_ldind_ref | @cil_ldind_u1 | @cil_ldind_u2 | @cil_ldind_u4; + +@cil_stind = @cil_stind_i | @cil_stind_i1 | @cil_stind_i2 | @cil_stind_i4 | @cil_stind_i8 | + @cil_stind_r4 | @cil_stind_r8 | @cil_stind_ref; + +@cil_bitwise_operation = @cil_binary_bitwise_operation | @cil_unary_bitwise_operation; + +@cil_binary_bitwise_operation = @cil_and | @cil_or | @cil_xor | @cil_shr | @cil_shr | @cil_shr_un | @cil_shl; + +@cil_binary_arithmetic_operation = @cil_add | @cil_sub | @cil_mul | @cil_div | @cil_div_un | + @cil_rem | @cil_rem_un | @cil_add_ovf | @cil_add_ovf_un | @cil_mul_ovf | @cil_mul_ovf_un | + @cil_sub_ovf | @cil_sub_ovf_un; + +@cil_unary_bitwise_operation = @cil_not; + +@cil_binary_expr = @cil_binary_arithmetic_operation | @cil_binary_bitwise_operation | @cil_read_array | @cil_comparison_operation; + +@cil_unary_arithmetic_operation = @cil_neg; + +@cil_comparison_operation = @cil_cgt_un | @cil_ceq | @cil_cgt | @cil_clt | @cil_clt_un; + +// Elements that retrieve an address of something +@cil_read_ref = @cil_ldloca_s | @cil_ldarga_s | @cil_ldflda | @cil_ldsflda | @cil_ldelema; + +// CIL array instructions + +@cil_read_array = + @cil_ldelem | @cil_ldelema | @cil_ldelem_i1 | @cil_ldelem_ref | @cil_ldelem_i | + @cil_ldelem_i1 | @cil_ldelem_i2 | @cil_ldelem_i4 | @cil_ldelem_i8 | @cil_ldelem_r4 | + @cil_ldelem_r8 | @cil_ldelem_u1 | @cil_ldelem_u2 | @cil_ldelem_u4; + +@cil_write_array = @cil_stelem | @cil_stelem_ref | + @cil_stelem_i | @cil_stelem_i1 | @cil_stelem_i2 | @cil_stelem_i4 | @cil_stelem_i8 | + @cil_stelem_r4 | @cil_stelem_r8; + +@cil_throw_any = @cil_throw | @cil_rethrow; + +#keyset[impl, index] +cil_instruction( + unique int id: @cil_instruction, + int opcode: int ref, + int index: int ref, + int impl: @cil_method_implementation ref); + +cil_jump( + unique int instruction: @cil_jump ref, + int target: @cil_instruction ref); + +cil_access( + unique int instruction: @cil_instruction ref, + int target: @cil_accessible ref); + +cil_value( + unique int instruction: @cil_literal ref, + string value: string ref); + +#keyset[instruction, index] +cil_switch( + int instruction: @cil_switch ref, + int index: int ref, + int target: @cil_instruction ref); + +cil_instruction_location( + unique int id: @cil_instruction ref, + int loc: @location ref); + +cil_type_location( + int id: @cil_type ref, + int loc: @location ref); + +cil_method_location( + int id: @cil_method ref, + int loc: @location ref); + +@cil_namespace = @namespace; + +@cil_type_container = @cil_type | @cil_namespace | @cil_method; + +case @cil_type.kind of + 0 = @cil_valueorreftype +| 1 = @cil_typeparameter +| 2 = @cil_array_type +| 3 = @cil_pointer_type +| 4 = @cil_function_pointer_type +; + +cil_type( + unique int id: @cil_type, + string name: string ref, + int kind: int ref, + int parent: @cil_type_container ref, + int sourceDecl: @cil_type ref); + +cil_pointer_type( + unique int id: @cil_pointer_type ref, + int pointee: @cil_type ref); + +cil_array_type( + unique int id: @cil_array_type ref, + int element_type: @cil_type ref, + int rank: int ref); + +cil_function_pointer_return_type( + unique int id: @cil_function_pointer_type ref, + int return_type: @cil_type ref); + +cil_method( + unique int id: @cil_method, + string name: string ref, + int parent: @cil_type ref, + int return_type: @cil_type ref); + +cil_method_source_declaration( + unique int method: @cil_method ref, + int source: @cil_method ref); + +cil_method_implementation( + unique int id: @cil_method_implementation, + int method: @cil_method ref, + int location: @assembly ref); + +cil_implements( + int id: @cil_method ref, + int decl: @cil_method ref); + +#keyset[parent, name] +cil_field( + unique int id: @cil_field, + int parent: @cil_type ref, + string name: string ref, + int field_type: @cil_type ref); + +@cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; +@cil_named_element = @cil_declaration | @cil_namespace; +@cil_declaration = @cil_variable | @cil_method | @cil_type | @cil_member; +@cil_accessible = @cil_declaration; +@cil_variable = @cil_field | @cil_stack_variable; +@cil_stack_variable = @cil_local_variable | @cil_parameter; +@cil_member = @cil_method | @cil_type | @cil_field | @cil_property | @cil_event; +@cil_custom_modifier_receiver = @cil_method | @cil_property | @cil_parameter | @cil_field | @cil_function_pointer_type; +@cil_parameterizable = @cil_method | @cil_function_pointer_type; +@cil_has_type_annotation = @cil_stack_variable | @cil_property | @cil_field | @cil_method | @cil_function_pointer_type; + +#keyset[parameterizable, index] +cil_parameter( + unique int id: @cil_parameter, + int parameterizable: @cil_parameterizable ref, + int index: int ref, + int param_type: @cil_type ref); + +cil_parameter_in(unique int id: @cil_parameter ref); +cil_parameter_out(unique int id: @cil_parameter ref); + +cil_setter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +#keyset[id, modifier] +cil_custom_modifiers( + int id: @cil_custom_modifier_receiver ref, + int modifier: @cil_type ref, + int kind: int ref); // modreq: 1, modopt: 0 + +cil_type_annotation( + int id: @cil_has_type_annotation ref, + int annotation: int ref); + +cil_getter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_adder(unique int event: @cil_event ref, + int method: @cil_method ref); + +cil_remover(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_property( + unique int id: @cil_property, + int parent: @cil_type ref, + string name: string ref, + int property_type: @cil_type ref); + +#keyset[parent, name] +cil_event(unique int id: @cil_event, + int parent: @cil_type ref, + string name: string ref, + int event_type: @cil_type ref); + +#keyset[impl, index] +cil_local_variable( + unique int id: @cil_local_variable, + int impl: @cil_method_implementation ref, + int index: int ref, + int var_type: @cil_type ref); + +cil_function_pointer_calling_conventions( + int id: @cil_function_pointer_type ref, + int kind: int ref); + +// CIL handlers (exception handlers etc). + +case @cil_handler.kind of + 0 = @cil_catch_handler +| 1 = @cil_filter_handler +| 2 = @cil_finally_handler +| 4 = @cil_fault_handler +; + +#keyset[impl, index] +cil_handler( + unique int id: @cil_handler, + int impl: @cil_method_implementation ref, + int index: int ref, + int kind: int ref, + int try_start: @cil_instruction ref, + int try_end: @cil_instruction ref, + int handler_start: @cil_instruction ref); + +cil_handler_filter( + unique int id: @cil_handler ref, + int filter_start: @cil_instruction ref); + +cil_handler_type( + unique int id: @cil_handler ref, + int catch_type: @cil_type ref); + +@cil_controlflow_node = @cil_entry_point | @cil_instruction; + +@cil_entry_point = @cil_method_implementation | @cil_handler; + +@cil_dataflow_node = @cil_instruction | @cil_variable | @cil_method; + +cil_method_stack_size( + unique int method: @cil_method_implementation ref, + int size: int ref); + +// CIL modifiers + +cil_public(int id: @cil_member ref); +cil_private(int id: @cil_member ref); +cil_protected(int id: @cil_member ref); +cil_internal(int id: @cil_member ref); +cil_static(int id: @cil_member ref); +cil_sealed(int id: @cil_member ref); +cil_virtual(int id: @cil_method ref); +cil_abstract(int id: @cil_member ref); +cil_class(int id: @cil_type ref); +cil_interface(int id: @cil_type ref); +cil_security(int id: @cil_member ref); +cil_requiresecobject(int id: @cil_method ref); +cil_specialname(int id: @cil_method ref); +cil_newslot(int id: @cil_method ref); + +cil_base_class(unique int id: @cil_type ref, int base: @cil_type ref); +cil_base_interface(int id: @cil_type ref, int base: @cil_type ref); +cil_enum_underlying_type(unique int id: @cil_type ref, int underlying: @cil_type ref); + +#keyset[unbound, index] +cil_type_parameter( + int unbound: @cil_member ref, + int index: int ref, + int param: @cil_typeparameter ref); + +#keyset[bound, index] +cil_type_argument( + int bound: @cil_member ref, + int index: int ref, + int t: @cil_type ref); + +// CIL type parameter constraints + +cil_typeparam_covariant(int tp: @cil_typeparameter ref); +cil_typeparam_contravariant(int tp: @cil_typeparameter ref); +cil_typeparam_class(int tp: @cil_typeparameter ref); +cil_typeparam_struct(int tp: @cil_typeparameter ref); +cil_typeparam_new(int tp: @cil_typeparameter ref); +cil_typeparam_constraint(int tp: @cil_typeparameter ref, int supertype: @cil_type ref); + +// CIL attributes + +cil_attribute( + unique int attributeid: @cil_attribute, + int element: @cil_declaration ref, + int constructor: @cil_method ref); + +#keyset[attribute_id, param] +cil_attribute_named_argument( + int attribute_id: @cil_attribute ref, + string param: string ref, + string value: string ref); + +#keyset[attribute_id, index] +cil_attribute_positional_argument( + int attribute_id: @cil_attribute ref, + int index: int ref, + string value: string ref); + + +// Common .Net data model covering both C# and CIL + +// Common elements +@dotnet_element = @element | @cil_element; +@dotnet_named_element = @named_element | @cil_named_element; +@dotnet_callable = @callable | @cil_method; +@dotnet_variable = @variable | @cil_variable; +@dotnet_field = @field | @cil_field; +@dotnet_parameter = @parameter | @cil_parameter; +@dotnet_declaration = @declaration | @cil_declaration; +@dotnet_member = @member | @cil_member; +@dotnet_event = @event | @cil_event; +@dotnet_property = @property | @cil_property | @indexer; +@dotnet_parameterizable = @parameterizable | @cil_parameterizable; + +// Common types +@dotnet_type = @type | @cil_type; +@dotnet_call = @call | @cil_call_any; +@dotnet_throw = @throw_element | @cil_throw_any; +@dotnet_valueorreftype = @cil_valueorreftype | @value_or_ref_type | @cil_array_type | @void_type; +@dotnet_typeparameter = @type_parameter | @cil_typeparameter; +@dotnet_array_type = @array_type | @cil_array_type; +@dotnet_pointer_type = @pointer_type | @cil_pointer_type; +@dotnet_type_parameter = @type_parameter | @cil_typeparameter; +@dotnet_generic = @dotnet_valueorreftype | @dotnet_callable; + +// Attributes +@dotnet_attribute = @attribute | @cil_attribute; + +// Expressions +@dotnet_expr = @expr | @cil_expr; + +// Literals +@dotnet_literal = @literal_expr | @cil_literal; +@dotnet_string_literal = @string_literal_expr | @cil_ldstr; +@dotnet_int_literal = @integer_literal_expr | @cil_ldc_i; +@dotnet_float_literal = @float_literal_expr | @cil_ldc_r; +@dotnet_null_literal = @null_literal_expr | @cil_ldnull; + +@metadata_entity = @cil_method | @cil_type | @cil_field | @cil_property | @field | @property | + @callable | @value_or_ref_type | @void_type; + +#keyset[entity, location] +metadata_handle(int entity : @metadata_entity ref, int location: @assembly ref, int handle: int ref) diff --git a/csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/semmlecode.csharp.dbscheme b/csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/semmlecode.csharp.dbscheme new file mode 100644 index 00000000000..cd877b8cc2f --- /dev/null +++ b/csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/semmlecode.csharp.dbscheme @@ -0,0 +1,2078 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | f1.cs + * 3 | f2.cs + * 4 | f3.cs + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location_default ref, + string stack_trace : string ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +// Populated by the CSV extractor +externalData( + int id: @externalDataElement, + string path: string ref, + int column: int ref, + string value: string ref); + +sourceLocationPrefix( + string prefix: string ref); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints | @externalDataElement + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function | @lambda_expr; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string ref); + +files( + unique int id: @file, + string name: string ref); + +folders( + unique int id: @folder, + string name: string ref); + +@container = @folder | @file ; + +containerparent( + int parent: @container ref, + unique int child: @container ref); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + unique int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int kind: int ref, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +compiler_generated(unique int id: @modifiable ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event | @operator; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +@has_scoped_annotation = @local_scope_variable + +scoped_annotation( + int id: @has_scoped_annotation ref, + int kind: int ref // scoped ref = 1, scoped value = 2 + ); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @utf16_string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* C# 11.0 */ +| 131 = @list_pattern_expr +| 132 = @slice_pattern_expr +| 133 = @urshift_expr +| 134 = @assign_urshift_expr +| 135 = @utf8_string_literal_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@string_literal_expr = @utf16_string_literal_expr | @utf8_string_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr | @urshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_compiler_generated( + unique int id: @expr ref); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +lambda_expr_return_type( + unique int id: @lambda_expr ref, + int type_id: @type_or_ref ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* XML Files */ + +xmlEncoding ( + unique int id: @file ref, + string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); + +/* Common Intermediate Language - CIL */ + +case @cil_instruction.opcode of + 0 = @cil_nop +| 1 = @cil_break +| 2 = @cil_ldarg_0 +| 3 = @cil_ldarg_1 +| 4 = @cil_ldarg_2 +| 5 = @cil_ldarg_3 +| 6 = @cil_ldloc_0 +| 7 = @cil_ldloc_1 +| 8 = @cil_ldloc_2 +| 9 = @cil_ldloc_3 +| 10 = @cil_stloc_0 +| 11 = @cil_stloc_1 +| 12 = @cil_stloc_2 +| 13 = @cil_stloc_3 +| 14 = @cil_ldarg_s +| 15 = @cil_ldarga_s +| 16 = @cil_starg_s +| 17 = @cil_ldloc_s +| 18 = @cil_ldloca_s +| 19 = @cil_stloc_s +| 20 = @cil_ldnull +| 21 = @cil_ldc_i4_m1 +| 22 = @cil_ldc_i4_0 +| 23 = @cil_ldc_i4_1 +| 24 = @cil_ldc_i4_2 +| 25 = @cil_ldc_i4_3 +| 26 = @cil_ldc_i4_4 +| 27 = @cil_ldc_i4_5 +| 28 = @cil_ldc_i4_6 +| 29 = @cil_ldc_i4_7 +| 30 = @cil_ldc_i4_8 +| 31 = @cil_ldc_i4_s +| 32 = @cil_ldc_i4 +| 33 = @cil_ldc_i8 +| 34 = @cil_ldc_r4 +| 35 = @cil_ldc_r8 +| 37 = @cil_dup +| 38 = @cil_pop +| 39 = @cil_jmp +| 40 = @cil_call +| 41 = @cil_calli +| 42 = @cil_ret +| 43 = @cil_br_s +| 44 = @cil_brfalse_s +| 45 = @cil_brtrue_s +| 46 = @cil_beq_s +| 47 = @cil_bge_s +| 48 = @cil_bgt_s +| 49 = @cil_ble_s +| 50 = @cil_blt_s +| 51 = @cil_bne_un_s +| 52 = @cil_bge_un_s +| 53 = @cil_bgt_un_s +| 54 = @cil_ble_un_s +| 55 = @cil_blt_un_s +| 56 = @cil_br +| 57 = @cil_brfalse +| 58 = @cil_brtrue +| 59 = @cil_beq +| 60 = @cil_bge +| 61 = @cil_bgt +| 62 = @cil_ble +| 63 = @cil_blt +| 64 = @cil_bne_un +| 65 = @cil_bge_un +| 66 = @cil_bgt_un +| 67 = @cil_ble_un +| 68 = @cil_blt_un +| 69 = @cil_switch +| 70 = @cil_ldind_i1 +| 71 = @cil_ldind_u1 +| 72 = @cil_ldind_i2 +| 73 = @cil_ldind_u2 +| 74 = @cil_ldind_i4 +| 75 = @cil_ldind_u4 +| 76 = @cil_ldind_i8 +| 77 = @cil_ldind_i +| 78 = @cil_ldind_r4 +| 79 = @cil_ldind_r8 +| 80 = @cil_ldind_ref +| 81 = @cil_stind_ref +| 82 = @cil_stind_i1 +| 83 = @cil_stind_i2 +| 84 = @cil_stind_i4 +| 85 = @cil_stind_i8 +| 86 = @cil_stind_r4 +| 87 = @cil_stind_r8 +| 88 = @cil_add +| 89 = @cil_sub +| 90 = @cil_mul +| 91 = @cil_div +| 92 = @cil_div_un +| 93 = @cil_rem +| 94 = @cil_rem_un +| 95 = @cil_and +| 96 = @cil_or +| 97 = @cil_xor +| 98 = @cil_shl +| 99 = @cil_shr +| 100 = @cil_shr_un +| 101 = @cil_neg +| 102 = @cil_not +| 103 = @cil_conv_i1 +| 104 = @cil_conv_i2 +| 105 = @cil_conv_i4 +| 106 = @cil_conv_i8 +| 107 = @cil_conv_r4 +| 108 = @cil_conv_r8 +| 109 = @cil_conv_u4 +| 110 = @cil_conv_u8 +| 111 = @cil_callvirt +| 112 = @cil_cpobj +| 113 = @cil_ldobj +| 114 = @cil_ldstr +| 115 = @cil_newobj +| 116 = @cil_castclass +| 117 = @cil_isinst +| 118 = @cil_conv_r_un +| 121 = @cil_unbox +| 122 = @cil_throw +| 123 = @cil_ldfld +| 124 = @cil_ldflda +| 125 = @cil_stfld +| 126 = @cil_ldsfld +| 127 = @cil_ldsflda +| 128 = @cil_stsfld +| 129 = @cil_stobj +| 130 = @cil_conv_ovf_i1_un +| 131 = @cil_conv_ovf_i2_un +| 132 = @cil_conv_ovf_i4_un +| 133 = @cil_conv_ovf_i8_un +| 134 = @cil_conv_ovf_u1_un +| 135 = @cil_conv_ovf_u2_un +| 136 = @cil_conv_ovf_u4_un +| 137 = @cil_conv_ovf_u8_un +| 138 = @cil_conv_ovf_i_un +| 139 = @cil_conv_ovf_u_un +| 140 = @cil_box +| 141 = @cil_newarr +| 142 = @cil_ldlen +| 143 = @cil_ldelema +| 144 = @cil_ldelem_i1 +| 145 = @cil_ldelem_u1 +| 146 = @cil_ldelem_i2 +| 147 = @cil_ldelem_u2 +| 148 = @cil_ldelem_i4 +| 149 = @cil_ldelem_u4 +| 150 = @cil_ldelem_i8 +| 151 = @cil_ldelem_i +| 152 = @cil_ldelem_r4 +| 153 = @cil_ldelem_r8 +| 154 = @cil_ldelem_ref +| 155 = @cil_stelem_i +| 156 = @cil_stelem_i1 +| 157 = @cil_stelem_i2 +| 158 = @cil_stelem_i4 +| 159 = @cil_stelem_i8 +| 160 = @cil_stelem_r4 +| 161 = @cil_stelem_r8 +| 162 = @cil_stelem_ref +| 163 = @cil_ldelem +| 164 = @cil_stelem +| 165 = @cil_unbox_any +| 179 = @cil_conv_ovf_i1 +| 180 = @cil_conv_ovf_u1 +| 181 = @cil_conv_ovf_i2 +| 182 = @cil_conv_ovf_u2 +| 183 = @cil_conv_ovf_i4 +| 184 = @cil_conv_ovf_u4 +| 185 = @cil_conv_ovf_i8 +| 186 = @cil_conv_ovf_u8 +| 194 = @cil_refanyval +| 195 = @cil_ckinfinite +| 198 = @cil_mkrefany +| 208 = @cil_ldtoken +| 209 = @cil_conv_u2 +| 210 = @cil_conv_u1 +| 211 = @cil_conv_i +| 212 = @cil_conv_ovf_i +| 213 = @cil_conv_ovf_u +| 214 = @cil_add_ovf +| 215 = @cil_add_ovf_un +| 216 = @cil_mul_ovf +| 217 = @cil_mul_ovf_un +| 218 = @cil_sub_ovf +| 219 = @cil_sub_ovf_un +| 220 = @cil_endfinally +| 221 = @cil_leave +| 222 = @cil_leave_s +| 223 = @cil_stind_i +| 224 = @cil_conv_u +| 65024 = @cil_arglist +| 65025 = @cil_ceq +| 65026 = @cil_cgt +| 65027 = @cil_cgt_un +| 65028 = @cil_clt +| 65029 = @cil_clt_un +| 65030 = @cil_ldftn +| 65031 = @cil_ldvirtftn +| 65033 = @cil_ldarg +| 65034 = @cil_ldarga +| 65035 = @cil_starg +| 65036 = @cil_ldloc +| 65037 = @cil_ldloca +| 65038 = @cil_stloc +| 65039 = @cil_localloc +| 65041 = @cil_endfilter +| 65042 = @cil_unaligned +| 65043 = @cil_volatile +| 65044 = @cil_tail +| 65045 = @cil_initobj +| 65046 = @cil_constrained +| 65047 = @cil_cpblk +| 65048 = @cil_initblk +| 65050 = @cil_rethrow +| 65052 = @cil_sizeof +| 65053 = @cil_refanytype +| 65054 = @cil_readonly +; + +// CIL ignored instructions + +@cil_ignore = @cil_nop | @cil_break | @cil_volatile | @cil_unaligned; + +// CIL local/parameter/field access + +@cil_ldarg_any = @cil_ldarg_0 | @cil_ldarg_1 | @cil_ldarg_2 | @cil_ldarg_3 | @cil_ldarg_s | @cil_ldarga_s | @cil_ldarg | @cil_ldarga; +@cil_starg_any = @cil_starg | @cil_starg_s; + +@cil_ldloc_any = @cil_ldloc_0 | @cil_ldloc_1 | @cil_ldloc_2 | @cil_ldloc_3 | @cil_ldloc_s | @cil_ldloca_s | @cil_ldloc | @cil_ldloca; +@cil_stloc_any = @cil_stloc_0 | @cil_stloc_1 | @cil_stloc_2 | @cil_stloc_3 | @cil_stloc_s | @cil_stloc; + +@cil_ldfld_any = @cil_ldfld | @cil_ldsfld | @cil_ldsflda | @cil_ldflda; +@cil_stfld_any = @cil_stfld | @cil_stsfld; + +@cil_local_access = @cil_stloc_any | @cil_ldloc_any; +@cil_arg_access = @cil_starg_any | @cil_ldarg_any; +@cil_read_access = @cil_ldloc_any | @cil_ldarg_any | @cil_ldfld_any; +@cil_write_access = @cil_stloc_any | @cil_starg_any | @cil_stfld_any; + +@cil_stack_access = @cil_local_access | @cil_arg_access; +@cil_field_access = @cil_ldfld_any | @cil_stfld_any; + +@cil_access = @cil_read_access | @cil_write_access; + +// CIL constant/literal instructions + +@cil_ldc_i = @cil_ldc_i4_any | @cil_ldc_i8; + +@cil_ldc_i4_any = @cil_ldc_i4_m1 | @cil_ldc_i4_0 | @cil_ldc_i4_1 | @cil_ldc_i4_2 | @cil_ldc_i4_3 | + @cil_ldc_i4_4 | @cil_ldc_i4_5 | @cil_ldc_i4_6 | @cil_ldc_i4_7 | @cil_ldc_i4_8 | @cil_ldc_i4_s | @cil_ldc_i4; + +@cil_ldc_r = @cil_ldc_r4 | @cil_ldc_r8; + +@cil_literal = @cil_ldnull | @cil_ldc_i | @cil_ldc_r | @cil_ldstr; + +// Control flow + +@cil_conditional_jump = @cil_binary_jump | @cil_unary_jump; +@cil_binary_jump = @cil_beq_s | @cil_bge_s | @cil_bgt_s | @cil_ble_s | @cil_blt_s | + @cil_bne_un_s | @cil_bge_un_s | @cil_bgt_un_s | @cil_ble_un_s | @cil_blt_un_s | + @cil_beq | @cil_bge | @cil_bgt | @cil_ble | @cil_blt | + @cil_bne_un | @cil_bge_un | @cil_bgt_un | @cil_ble_un | @cil_blt_un; +@cil_unary_jump = @cil_brfalse_s | @cil_brtrue_s | @cil_brfalse | @cil_brtrue | @cil_switch; +@cil_unconditional_jump = @cil_br | @cil_br_s | @cil_leave_any; +@cil_leave_any = @cil_leave | @cil_leave_s; +@cil_jump = @cil_unconditional_jump | @cil_conditional_jump; + +// CIL call instructions + +@cil_call_any = @cil_jmp | @cil_call | @cil_calli | @cil_tail | @cil_callvirt | @cil_newobj; + +// CIL expression instructions + +@cil_expr = @cil_literal | @cil_binary_expr | @cil_unary_expr | @cil_call_any | @cil_read_access | + @cil_newarr | @cil_ldtoken | @cil_sizeof | + @cil_ldftn | @cil_ldvirtftn | @cil_localloc | @cil_mkrefany | @cil_refanytype | @cil_arglist | @cil_dup; + +@cil_unary_expr = + @cil_conversion_operation | @cil_unary_arithmetic_operation | @cil_unary_bitwise_operation| + @cil_ldlen | @cil_isinst | @cil_box | @cil_ldobj | @cil_castclass | @cil_unbox_any | + @cil_ldind | @cil_unbox; + +@cil_conversion_operation = + @cil_conv_i1 | @cil_conv_i2 | @cil_conv_i4 | @cil_conv_i8 | + @cil_conv_u1 | @cil_conv_u2 | @cil_conv_u4 | @cil_conv_u8 | + @cil_conv_ovf_i | @cil_conv_ovf_i_un | @cil_conv_ovf_i1 | @cil_conv_ovf_i1_un | + @cil_conv_ovf_i2 | @cil_conv_ovf_i2_un | @cil_conv_ovf_i4 | @cil_conv_ovf_i4_un | + @cil_conv_ovf_i8 | @cil_conv_ovf_i8_un | @cil_conv_ovf_u | @cil_conv_ovf_u_un | + @cil_conv_ovf_u1 | @cil_conv_ovf_u1_un | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_ovf_u4 | @cil_conv_ovf_u4_un | @cil_conv_ovf_u8 | @cil_conv_ovf_u8_un | + @cil_conv_r4 | @cil_conv_r8 | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_i | @cil_conv_u | @cil_conv_r_un; + +@cil_ldind = @cil_ldind_i | @cil_ldind_i1 | @cil_ldind_i2 | @cil_ldind_i4 | @cil_ldind_i8 | + @cil_ldind_r4 | @cil_ldind_r8 | @cil_ldind_ref | @cil_ldind_u1 | @cil_ldind_u2 | @cil_ldind_u4; + +@cil_stind = @cil_stind_i | @cil_stind_i1 | @cil_stind_i2 | @cil_stind_i4 | @cil_stind_i8 | + @cil_stind_r4 | @cil_stind_r8 | @cil_stind_ref; + +@cil_bitwise_operation = @cil_binary_bitwise_operation | @cil_unary_bitwise_operation; + +@cil_binary_bitwise_operation = @cil_and | @cil_or | @cil_xor | @cil_shr | @cil_shr | @cil_shr_un | @cil_shl; + +@cil_binary_arithmetic_operation = @cil_add | @cil_sub | @cil_mul | @cil_div | @cil_div_un | + @cil_rem | @cil_rem_un | @cil_add_ovf | @cil_add_ovf_un | @cil_mul_ovf | @cil_mul_ovf_un | + @cil_sub_ovf | @cil_sub_ovf_un; + +@cil_unary_bitwise_operation = @cil_not; + +@cil_binary_expr = @cil_binary_arithmetic_operation | @cil_binary_bitwise_operation | @cil_read_array | @cil_comparison_operation; + +@cil_unary_arithmetic_operation = @cil_neg; + +@cil_comparison_operation = @cil_cgt_un | @cil_ceq | @cil_cgt | @cil_clt | @cil_clt_un; + +// Elements that retrieve an address of something +@cil_read_ref = @cil_ldloca_s | @cil_ldarga_s | @cil_ldflda | @cil_ldsflda | @cil_ldelema; + +// CIL array instructions + +@cil_read_array = + @cil_ldelem | @cil_ldelema | @cil_ldelem_i1 | @cil_ldelem_ref | @cil_ldelem_i | + @cil_ldelem_i1 | @cil_ldelem_i2 | @cil_ldelem_i4 | @cil_ldelem_i8 | @cil_ldelem_r4 | + @cil_ldelem_r8 | @cil_ldelem_u1 | @cil_ldelem_u2 | @cil_ldelem_u4; + +@cil_write_array = @cil_stelem | @cil_stelem_ref | + @cil_stelem_i | @cil_stelem_i1 | @cil_stelem_i2 | @cil_stelem_i4 | @cil_stelem_i8 | + @cil_stelem_r4 | @cil_stelem_r8; + +@cil_throw_any = @cil_throw | @cil_rethrow; + +#keyset[impl, index] +cil_instruction( + unique int id: @cil_instruction, + int opcode: int ref, + int index: int ref, + int impl: @cil_method_implementation ref); + +cil_jump( + unique int instruction: @cil_jump ref, + int target: @cil_instruction ref); + +cil_access( + unique int instruction: @cil_instruction ref, + int target: @cil_accessible ref); + +cil_value( + unique int instruction: @cil_literal ref, + string value: string ref); + +#keyset[instruction, index] +cil_switch( + int instruction: @cil_switch ref, + int index: int ref, + int target: @cil_instruction ref); + +cil_instruction_location( + unique int id: @cil_instruction ref, + int loc: @location ref); + +cil_type_location( + int id: @cil_type ref, + int loc: @location ref); + +cil_method_location( + int id: @cil_method ref, + int loc: @location ref); + +@cil_namespace = @namespace; + +@cil_type_container = @cil_type | @cil_namespace | @cil_method; + +case @cil_type.kind of + 0 = @cil_valueorreftype +| 1 = @cil_typeparameter +| 2 = @cil_array_type +| 3 = @cil_pointer_type +| 4 = @cil_function_pointer_type +; + +cil_type( + unique int id: @cil_type, + string name: string ref, + int kind: int ref, + int parent: @cil_type_container ref, + int sourceDecl: @cil_type ref); + +cil_pointer_type( + unique int id: @cil_pointer_type ref, + int pointee: @cil_type ref); + +cil_array_type( + unique int id: @cil_array_type ref, + int element_type: @cil_type ref, + int rank: int ref); + +cil_function_pointer_return_type( + unique int id: @cil_function_pointer_type ref, + int return_type: @cil_type ref); + +cil_method( + unique int id: @cil_method, + string name: string ref, + int parent: @cil_type ref, + int return_type: @cil_type ref); + +cil_method_source_declaration( + unique int method: @cil_method ref, + int source: @cil_method ref); + +cil_method_implementation( + unique int id: @cil_method_implementation, + int method: @cil_method ref, + int location: @assembly ref); + +cil_implements( + int id: @cil_method ref, + int decl: @cil_method ref); + +#keyset[parent, name] +cil_field( + unique int id: @cil_field, + int parent: @cil_type ref, + string name: string ref, + int field_type: @cil_type ref); + +@cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; +@cil_named_element = @cil_declaration | @cil_namespace; +@cil_declaration = @cil_variable | @cil_method | @cil_type | @cil_member; +@cil_accessible = @cil_declaration; +@cil_variable = @cil_field | @cil_stack_variable; +@cil_stack_variable = @cil_local_variable | @cil_parameter; +@cil_member = @cil_method | @cil_type | @cil_field | @cil_property | @cil_event; +@cil_custom_modifier_receiver = @cil_method | @cil_property | @cil_parameter | @cil_field | @cil_function_pointer_type; +@cil_parameterizable = @cil_method | @cil_function_pointer_type; +@cil_has_type_annotation = @cil_stack_variable | @cil_property | @cil_field | @cil_method | @cil_function_pointer_type; + +#keyset[parameterizable, index] +cil_parameter( + unique int id: @cil_parameter, + int parameterizable: @cil_parameterizable ref, + int index: int ref, + int param_type: @cil_type ref); + +cil_parameter_in(unique int id: @cil_parameter ref); +cil_parameter_out(unique int id: @cil_parameter ref); + +cil_setter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +#keyset[id, modifier] +cil_custom_modifiers( + int id: @cil_custom_modifier_receiver ref, + int modifier: @cil_type ref, + int kind: int ref); // modreq: 1, modopt: 0 + +cil_type_annotation( + int id: @cil_has_type_annotation ref, + int annotation: int ref); + +cil_getter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_adder(unique int event: @cil_event ref, + int method: @cil_method ref); + +cil_remover(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_property( + unique int id: @cil_property, + int parent: @cil_type ref, + string name: string ref, + int property_type: @cil_type ref); + +#keyset[parent, name] +cil_event(unique int id: @cil_event, + int parent: @cil_type ref, + string name: string ref, + int event_type: @cil_type ref); + +#keyset[impl, index] +cil_local_variable( + unique int id: @cil_local_variable, + int impl: @cil_method_implementation ref, + int index: int ref, + int var_type: @cil_type ref); + +cil_function_pointer_calling_conventions( + int id: @cil_function_pointer_type ref, + int kind: int ref); + +// CIL handlers (exception handlers etc). + +case @cil_handler.kind of + 0 = @cil_catch_handler +| 1 = @cil_filter_handler +| 2 = @cil_finally_handler +| 4 = @cil_fault_handler +; + +#keyset[impl, index] +cil_handler( + unique int id: @cil_handler, + int impl: @cil_method_implementation ref, + int index: int ref, + int kind: int ref, + int try_start: @cil_instruction ref, + int try_end: @cil_instruction ref, + int handler_start: @cil_instruction ref); + +cil_handler_filter( + unique int id: @cil_handler ref, + int filter_start: @cil_instruction ref); + +cil_handler_type( + unique int id: @cil_handler ref, + int catch_type: @cil_type ref); + +@cil_controlflow_node = @cil_entry_point | @cil_instruction; + +@cil_entry_point = @cil_method_implementation | @cil_handler; + +@cil_dataflow_node = @cil_instruction | @cil_variable | @cil_method; + +cil_method_stack_size( + unique int method: @cil_method_implementation ref, + int size: int ref); + +// CIL modifiers + +cil_public(int id: @cil_member ref); +cil_private(int id: @cil_member ref); +cil_protected(int id: @cil_member ref); +cil_internal(int id: @cil_member ref); +cil_static(int id: @cil_member ref); +cil_sealed(int id: @cil_member ref); +cil_virtual(int id: @cil_method ref); +cil_abstract(int id: @cil_member ref); +cil_class(int id: @cil_type ref); +cil_interface(int id: @cil_type ref); +cil_security(int id: @cil_member ref); +cil_requiresecobject(int id: @cil_method ref); +cil_specialname(int id: @cil_method ref); +cil_newslot(int id: @cil_method ref); + +cil_base_class(unique int id: @cil_type ref, int base: @cil_type ref); +cil_base_interface(int id: @cil_type ref, int base: @cil_type ref); +cil_enum_underlying_type(unique int id: @cil_type ref, int underlying: @cil_type ref); + +#keyset[unbound, index] +cil_type_parameter( + int unbound: @cil_member ref, + int index: int ref, + int param: @cil_typeparameter ref); + +#keyset[bound, index] +cil_type_argument( + int bound: @cil_member ref, + int index: int ref, + int t: @cil_type ref); + +// CIL type parameter constraints + +cil_typeparam_covariant(int tp: @cil_typeparameter ref); +cil_typeparam_contravariant(int tp: @cil_typeparameter ref); +cil_typeparam_class(int tp: @cil_typeparameter ref); +cil_typeparam_struct(int tp: @cil_typeparameter ref); +cil_typeparam_new(int tp: @cil_typeparameter ref); +cil_typeparam_constraint(int tp: @cil_typeparameter ref, int supertype: @cil_type ref); + +// CIL attributes + +cil_attribute( + unique int attributeid: @cil_attribute, + int element: @cil_declaration ref, + int constructor: @cil_method ref); + +#keyset[attribute_id, param] +cil_attribute_named_argument( + int attribute_id: @cil_attribute ref, + string param: string ref, + string value: string ref); + +#keyset[attribute_id, index] +cil_attribute_positional_argument( + int attribute_id: @cil_attribute ref, + int index: int ref, + string value: string ref); + + +// Common .Net data model covering both C# and CIL + +// Common elements +@dotnet_element = @element | @cil_element; +@dotnet_named_element = @named_element | @cil_named_element; +@dotnet_callable = @callable | @cil_method; +@dotnet_variable = @variable | @cil_variable; +@dotnet_field = @field | @cil_field; +@dotnet_parameter = @parameter | @cil_parameter; +@dotnet_declaration = @declaration | @cil_declaration; +@dotnet_member = @member | @cil_member; +@dotnet_event = @event | @cil_event; +@dotnet_property = @property | @cil_property | @indexer; +@dotnet_parameterizable = @parameterizable | @cil_parameterizable; + +// Common types +@dotnet_type = @type | @cil_type; +@dotnet_call = @call | @cil_call_any; +@dotnet_throw = @throw_element | @cil_throw_any; +@dotnet_valueorreftype = @cil_valueorreftype | @value_or_ref_type | @cil_array_type | @void_type; +@dotnet_typeparameter = @type_parameter | @cil_typeparameter; +@dotnet_array_type = @array_type | @cil_array_type; +@dotnet_pointer_type = @pointer_type | @cil_pointer_type; +@dotnet_type_parameter = @type_parameter | @cil_typeparameter; +@dotnet_generic = @dotnet_valueorreftype | @dotnet_callable; + +// Attributes +@dotnet_attribute = @attribute | @cil_attribute; + +// Expressions +@dotnet_expr = @expr | @cil_expr; + +// Literals +@dotnet_literal = @literal_expr | @cil_literal; +@dotnet_string_literal = @string_literal_expr | @cil_ldstr; +@dotnet_int_literal = @integer_literal_expr | @cil_ldc_i; +@dotnet_float_literal = @float_literal_expr | @cil_ldc_r; +@dotnet_null_literal = @null_literal_expr | @cil_ldnull; + +@metadata_entity = @cil_method | @cil_type | @cil_field | @cil_property | @field | @property | + @callable | @value_or_ref_type | @void_type; + +#keyset[entity, location] +metadata_handle(int entity : @metadata_entity ref, int location: @assembly ref, int handle: int ref) diff --git a/csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/upgrade.properties b/csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/upgrade.properties new file mode 100644 index 00000000000..f0f46f876de --- /dev/null +++ b/csharp/downgrades/585d6402ff8ba3d15114a869d205bdf6d4e0aa3f/upgrade.properties @@ -0,0 +1,2 @@ +description: Update the schemas for some tables to disallow assembly locations. +compatibility: full diff --git a/csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/old.dbscheme b/csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/old.dbscheme new file mode 100644 index 00000000000..cd877b8cc2f --- /dev/null +++ b/csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/old.dbscheme @@ -0,0 +1,2078 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | f1.cs + * 3 | f2.cs + * 4 | f3.cs + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location_default ref, + string stack_trace : string ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +// Populated by the CSV extractor +externalData( + int id: @externalDataElement, + string path: string ref, + int column: int ref, + string value: string ref); + +sourceLocationPrefix( + string prefix: string ref); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints | @externalDataElement + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function | @lambda_expr; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string ref); + +files( + unique int id: @file, + string name: string ref); + +folders( + unique int id: @folder, + string name: string ref); + +@container = @folder | @file ; + +containerparent( + int parent: @container ref, + unique int child: @container ref); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + unique int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int kind: int ref, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +compiler_generated(unique int id: @modifiable ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event | @operator; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +@has_scoped_annotation = @local_scope_variable + +scoped_annotation( + int id: @has_scoped_annotation ref, + int kind: int ref // scoped ref = 1, scoped value = 2 + ); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @utf16_string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* C# 11.0 */ +| 131 = @list_pattern_expr +| 132 = @slice_pattern_expr +| 133 = @urshift_expr +| 134 = @assign_urshift_expr +| 135 = @utf8_string_literal_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@string_literal_expr = @utf16_string_literal_expr | @utf8_string_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr | @urshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_compiler_generated( + unique int id: @expr ref); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +lambda_expr_return_type( + unique int id: @lambda_expr ref, + int type_id: @type_or_ref ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* XML Files */ + +xmlEncoding ( + unique int id: @file ref, + string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); + +/* Common Intermediate Language - CIL */ + +case @cil_instruction.opcode of + 0 = @cil_nop +| 1 = @cil_break +| 2 = @cil_ldarg_0 +| 3 = @cil_ldarg_1 +| 4 = @cil_ldarg_2 +| 5 = @cil_ldarg_3 +| 6 = @cil_ldloc_0 +| 7 = @cil_ldloc_1 +| 8 = @cil_ldloc_2 +| 9 = @cil_ldloc_3 +| 10 = @cil_stloc_0 +| 11 = @cil_stloc_1 +| 12 = @cil_stloc_2 +| 13 = @cil_stloc_3 +| 14 = @cil_ldarg_s +| 15 = @cil_ldarga_s +| 16 = @cil_starg_s +| 17 = @cil_ldloc_s +| 18 = @cil_ldloca_s +| 19 = @cil_stloc_s +| 20 = @cil_ldnull +| 21 = @cil_ldc_i4_m1 +| 22 = @cil_ldc_i4_0 +| 23 = @cil_ldc_i4_1 +| 24 = @cil_ldc_i4_2 +| 25 = @cil_ldc_i4_3 +| 26 = @cil_ldc_i4_4 +| 27 = @cil_ldc_i4_5 +| 28 = @cil_ldc_i4_6 +| 29 = @cil_ldc_i4_7 +| 30 = @cil_ldc_i4_8 +| 31 = @cil_ldc_i4_s +| 32 = @cil_ldc_i4 +| 33 = @cil_ldc_i8 +| 34 = @cil_ldc_r4 +| 35 = @cil_ldc_r8 +| 37 = @cil_dup +| 38 = @cil_pop +| 39 = @cil_jmp +| 40 = @cil_call +| 41 = @cil_calli +| 42 = @cil_ret +| 43 = @cil_br_s +| 44 = @cil_brfalse_s +| 45 = @cil_brtrue_s +| 46 = @cil_beq_s +| 47 = @cil_bge_s +| 48 = @cil_bgt_s +| 49 = @cil_ble_s +| 50 = @cil_blt_s +| 51 = @cil_bne_un_s +| 52 = @cil_bge_un_s +| 53 = @cil_bgt_un_s +| 54 = @cil_ble_un_s +| 55 = @cil_blt_un_s +| 56 = @cil_br +| 57 = @cil_brfalse +| 58 = @cil_brtrue +| 59 = @cil_beq +| 60 = @cil_bge +| 61 = @cil_bgt +| 62 = @cil_ble +| 63 = @cil_blt +| 64 = @cil_bne_un +| 65 = @cil_bge_un +| 66 = @cil_bgt_un +| 67 = @cil_ble_un +| 68 = @cil_blt_un +| 69 = @cil_switch +| 70 = @cil_ldind_i1 +| 71 = @cil_ldind_u1 +| 72 = @cil_ldind_i2 +| 73 = @cil_ldind_u2 +| 74 = @cil_ldind_i4 +| 75 = @cil_ldind_u4 +| 76 = @cil_ldind_i8 +| 77 = @cil_ldind_i +| 78 = @cil_ldind_r4 +| 79 = @cil_ldind_r8 +| 80 = @cil_ldind_ref +| 81 = @cil_stind_ref +| 82 = @cil_stind_i1 +| 83 = @cil_stind_i2 +| 84 = @cil_stind_i4 +| 85 = @cil_stind_i8 +| 86 = @cil_stind_r4 +| 87 = @cil_stind_r8 +| 88 = @cil_add +| 89 = @cil_sub +| 90 = @cil_mul +| 91 = @cil_div +| 92 = @cil_div_un +| 93 = @cil_rem +| 94 = @cil_rem_un +| 95 = @cil_and +| 96 = @cil_or +| 97 = @cil_xor +| 98 = @cil_shl +| 99 = @cil_shr +| 100 = @cil_shr_un +| 101 = @cil_neg +| 102 = @cil_not +| 103 = @cil_conv_i1 +| 104 = @cil_conv_i2 +| 105 = @cil_conv_i4 +| 106 = @cil_conv_i8 +| 107 = @cil_conv_r4 +| 108 = @cil_conv_r8 +| 109 = @cil_conv_u4 +| 110 = @cil_conv_u8 +| 111 = @cil_callvirt +| 112 = @cil_cpobj +| 113 = @cil_ldobj +| 114 = @cil_ldstr +| 115 = @cil_newobj +| 116 = @cil_castclass +| 117 = @cil_isinst +| 118 = @cil_conv_r_un +| 121 = @cil_unbox +| 122 = @cil_throw +| 123 = @cil_ldfld +| 124 = @cil_ldflda +| 125 = @cil_stfld +| 126 = @cil_ldsfld +| 127 = @cil_ldsflda +| 128 = @cil_stsfld +| 129 = @cil_stobj +| 130 = @cil_conv_ovf_i1_un +| 131 = @cil_conv_ovf_i2_un +| 132 = @cil_conv_ovf_i4_un +| 133 = @cil_conv_ovf_i8_un +| 134 = @cil_conv_ovf_u1_un +| 135 = @cil_conv_ovf_u2_un +| 136 = @cil_conv_ovf_u4_un +| 137 = @cil_conv_ovf_u8_un +| 138 = @cil_conv_ovf_i_un +| 139 = @cil_conv_ovf_u_un +| 140 = @cil_box +| 141 = @cil_newarr +| 142 = @cil_ldlen +| 143 = @cil_ldelema +| 144 = @cil_ldelem_i1 +| 145 = @cil_ldelem_u1 +| 146 = @cil_ldelem_i2 +| 147 = @cil_ldelem_u2 +| 148 = @cil_ldelem_i4 +| 149 = @cil_ldelem_u4 +| 150 = @cil_ldelem_i8 +| 151 = @cil_ldelem_i +| 152 = @cil_ldelem_r4 +| 153 = @cil_ldelem_r8 +| 154 = @cil_ldelem_ref +| 155 = @cil_stelem_i +| 156 = @cil_stelem_i1 +| 157 = @cil_stelem_i2 +| 158 = @cil_stelem_i4 +| 159 = @cil_stelem_i8 +| 160 = @cil_stelem_r4 +| 161 = @cil_stelem_r8 +| 162 = @cil_stelem_ref +| 163 = @cil_ldelem +| 164 = @cil_stelem +| 165 = @cil_unbox_any +| 179 = @cil_conv_ovf_i1 +| 180 = @cil_conv_ovf_u1 +| 181 = @cil_conv_ovf_i2 +| 182 = @cil_conv_ovf_u2 +| 183 = @cil_conv_ovf_i4 +| 184 = @cil_conv_ovf_u4 +| 185 = @cil_conv_ovf_i8 +| 186 = @cil_conv_ovf_u8 +| 194 = @cil_refanyval +| 195 = @cil_ckinfinite +| 198 = @cil_mkrefany +| 208 = @cil_ldtoken +| 209 = @cil_conv_u2 +| 210 = @cil_conv_u1 +| 211 = @cil_conv_i +| 212 = @cil_conv_ovf_i +| 213 = @cil_conv_ovf_u +| 214 = @cil_add_ovf +| 215 = @cil_add_ovf_un +| 216 = @cil_mul_ovf +| 217 = @cil_mul_ovf_un +| 218 = @cil_sub_ovf +| 219 = @cil_sub_ovf_un +| 220 = @cil_endfinally +| 221 = @cil_leave +| 222 = @cil_leave_s +| 223 = @cil_stind_i +| 224 = @cil_conv_u +| 65024 = @cil_arglist +| 65025 = @cil_ceq +| 65026 = @cil_cgt +| 65027 = @cil_cgt_un +| 65028 = @cil_clt +| 65029 = @cil_clt_un +| 65030 = @cil_ldftn +| 65031 = @cil_ldvirtftn +| 65033 = @cil_ldarg +| 65034 = @cil_ldarga +| 65035 = @cil_starg +| 65036 = @cil_ldloc +| 65037 = @cil_ldloca +| 65038 = @cil_stloc +| 65039 = @cil_localloc +| 65041 = @cil_endfilter +| 65042 = @cil_unaligned +| 65043 = @cil_volatile +| 65044 = @cil_tail +| 65045 = @cil_initobj +| 65046 = @cil_constrained +| 65047 = @cil_cpblk +| 65048 = @cil_initblk +| 65050 = @cil_rethrow +| 65052 = @cil_sizeof +| 65053 = @cil_refanytype +| 65054 = @cil_readonly +; + +// CIL ignored instructions + +@cil_ignore = @cil_nop | @cil_break | @cil_volatile | @cil_unaligned; + +// CIL local/parameter/field access + +@cil_ldarg_any = @cil_ldarg_0 | @cil_ldarg_1 | @cil_ldarg_2 | @cil_ldarg_3 | @cil_ldarg_s | @cil_ldarga_s | @cil_ldarg | @cil_ldarga; +@cil_starg_any = @cil_starg | @cil_starg_s; + +@cil_ldloc_any = @cil_ldloc_0 | @cil_ldloc_1 | @cil_ldloc_2 | @cil_ldloc_3 | @cil_ldloc_s | @cil_ldloca_s | @cil_ldloc | @cil_ldloca; +@cil_stloc_any = @cil_stloc_0 | @cil_stloc_1 | @cil_stloc_2 | @cil_stloc_3 | @cil_stloc_s | @cil_stloc; + +@cil_ldfld_any = @cil_ldfld | @cil_ldsfld | @cil_ldsflda | @cil_ldflda; +@cil_stfld_any = @cil_stfld | @cil_stsfld; + +@cil_local_access = @cil_stloc_any | @cil_ldloc_any; +@cil_arg_access = @cil_starg_any | @cil_ldarg_any; +@cil_read_access = @cil_ldloc_any | @cil_ldarg_any | @cil_ldfld_any; +@cil_write_access = @cil_stloc_any | @cil_starg_any | @cil_stfld_any; + +@cil_stack_access = @cil_local_access | @cil_arg_access; +@cil_field_access = @cil_ldfld_any | @cil_stfld_any; + +@cil_access = @cil_read_access | @cil_write_access; + +// CIL constant/literal instructions + +@cil_ldc_i = @cil_ldc_i4_any | @cil_ldc_i8; + +@cil_ldc_i4_any = @cil_ldc_i4_m1 | @cil_ldc_i4_0 | @cil_ldc_i4_1 | @cil_ldc_i4_2 | @cil_ldc_i4_3 | + @cil_ldc_i4_4 | @cil_ldc_i4_5 | @cil_ldc_i4_6 | @cil_ldc_i4_7 | @cil_ldc_i4_8 | @cil_ldc_i4_s | @cil_ldc_i4; + +@cil_ldc_r = @cil_ldc_r4 | @cil_ldc_r8; + +@cil_literal = @cil_ldnull | @cil_ldc_i | @cil_ldc_r | @cil_ldstr; + +// Control flow + +@cil_conditional_jump = @cil_binary_jump | @cil_unary_jump; +@cil_binary_jump = @cil_beq_s | @cil_bge_s | @cil_bgt_s | @cil_ble_s | @cil_blt_s | + @cil_bne_un_s | @cil_bge_un_s | @cil_bgt_un_s | @cil_ble_un_s | @cil_blt_un_s | + @cil_beq | @cil_bge | @cil_bgt | @cil_ble | @cil_blt | + @cil_bne_un | @cil_bge_un | @cil_bgt_un | @cil_ble_un | @cil_blt_un; +@cil_unary_jump = @cil_brfalse_s | @cil_brtrue_s | @cil_brfalse | @cil_brtrue | @cil_switch; +@cil_unconditional_jump = @cil_br | @cil_br_s | @cil_leave_any; +@cil_leave_any = @cil_leave | @cil_leave_s; +@cil_jump = @cil_unconditional_jump | @cil_conditional_jump; + +// CIL call instructions + +@cil_call_any = @cil_jmp | @cil_call | @cil_calli | @cil_tail | @cil_callvirt | @cil_newobj; + +// CIL expression instructions + +@cil_expr = @cil_literal | @cil_binary_expr | @cil_unary_expr | @cil_call_any | @cil_read_access | + @cil_newarr | @cil_ldtoken | @cil_sizeof | + @cil_ldftn | @cil_ldvirtftn | @cil_localloc | @cil_mkrefany | @cil_refanytype | @cil_arglist | @cil_dup; + +@cil_unary_expr = + @cil_conversion_operation | @cil_unary_arithmetic_operation | @cil_unary_bitwise_operation| + @cil_ldlen | @cil_isinst | @cil_box | @cil_ldobj | @cil_castclass | @cil_unbox_any | + @cil_ldind | @cil_unbox; + +@cil_conversion_operation = + @cil_conv_i1 | @cil_conv_i2 | @cil_conv_i4 | @cil_conv_i8 | + @cil_conv_u1 | @cil_conv_u2 | @cil_conv_u4 | @cil_conv_u8 | + @cil_conv_ovf_i | @cil_conv_ovf_i_un | @cil_conv_ovf_i1 | @cil_conv_ovf_i1_un | + @cil_conv_ovf_i2 | @cil_conv_ovf_i2_un | @cil_conv_ovf_i4 | @cil_conv_ovf_i4_un | + @cil_conv_ovf_i8 | @cil_conv_ovf_i8_un | @cil_conv_ovf_u | @cil_conv_ovf_u_un | + @cil_conv_ovf_u1 | @cil_conv_ovf_u1_un | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_ovf_u4 | @cil_conv_ovf_u4_un | @cil_conv_ovf_u8 | @cil_conv_ovf_u8_un | + @cil_conv_r4 | @cil_conv_r8 | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_i | @cil_conv_u | @cil_conv_r_un; + +@cil_ldind = @cil_ldind_i | @cil_ldind_i1 | @cil_ldind_i2 | @cil_ldind_i4 | @cil_ldind_i8 | + @cil_ldind_r4 | @cil_ldind_r8 | @cil_ldind_ref | @cil_ldind_u1 | @cil_ldind_u2 | @cil_ldind_u4; + +@cil_stind = @cil_stind_i | @cil_stind_i1 | @cil_stind_i2 | @cil_stind_i4 | @cil_stind_i8 | + @cil_stind_r4 | @cil_stind_r8 | @cil_stind_ref; + +@cil_bitwise_operation = @cil_binary_bitwise_operation | @cil_unary_bitwise_operation; + +@cil_binary_bitwise_operation = @cil_and | @cil_or | @cil_xor | @cil_shr | @cil_shr | @cil_shr_un | @cil_shl; + +@cil_binary_arithmetic_operation = @cil_add | @cil_sub | @cil_mul | @cil_div | @cil_div_un | + @cil_rem | @cil_rem_un | @cil_add_ovf | @cil_add_ovf_un | @cil_mul_ovf | @cil_mul_ovf_un | + @cil_sub_ovf | @cil_sub_ovf_un; + +@cil_unary_bitwise_operation = @cil_not; + +@cil_binary_expr = @cil_binary_arithmetic_operation | @cil_binary_bitwise_operation | @cil_read_array | @cil_comparison_operation; + +@cil_unary_arithmetic_operation = @cil_neg; + +@cil_comparison_operation = @cil_cgt_un | @cil_ceq | @cil_cgt | @cil_clt | @cil_clt_un; + +// Elements that retrieve an address of something +@cil_read_ref = @cil_ldloca_s | @cil_ldarga_s | @cil_ldflda | @cil_ldsflda | @cil_ldelema; + +// CIL array instructions + +@cil_read_array = + @cil_ldelem | @cil_ldelema | @cil_ldelem_i1 | @cil_ldelem_ref | @cil_ldelem_i | + @cil_ldelem_i1 | @cil_ldelem_i2 | @cil_ldelem_i4 | @cil_ldelem_i8 | @cil_ldelem_r4 | + @cil_ldelem_r8 | @cil_ldelem_u1 | @cil_ldelem_u2 | @cil_ldelem_u4; + +@cil_write_array = @cil_stelem | @cil_stelem_ref | + @cil_stelem_i | @cil_stelem_i1 | @cil_stelem_i2 | @cil_stelem_i4 | @cil_stelem_i8 | + @cil_stelem_r4 | @cil_stelem_r8; + +@cil_throw_any = @cil_throw | @cil_rethrow; + +#keyset[impl, index] +cil_instruction( + unique int id: @cil_instruction, + int opcode: int ref, + int index: int ref, + int impl: @cil_method_implementation ref); + +cil_jump( + unique int instruction: @cil_jump ref, + int target: @cil_instruction ref); + +cil_access( + unique int instruction: @cil_instruction ref, + int target: @cil_accessible ref); + +cil_value( + unique int instruction: @cil_literal ref, + string value: string ref); + +#keyset[instruction, index] +cil_switch( + int instruction: @cil_switch ref, + int index: int ref, + int target: @cil_instruction ref); + +cil_instruction_location( + unique int id: @cil_instruction ref, + int loc: @location ref); + +cil_type_location( + int id: @cil_type ref, + int loc: @location ref); + +cil_method_location( + int id: @cil_method ref, + int loc: @location ref); + +@cil_namespace = @namespace; + +@cil_type_container = @cil_type | @cil_namespace | @cil_method; + +case @cil_type.kind of + 0 = @cil_valueorreftype +| 1 = @cil_typeparameter +| 2 = @cil_array_type +| 3 = @cil_pointer_type +| 4 = @cil_function_pointer_type +; + +cil_type( + unique int id: @cil_type, + string name: string ref, + int kind: int ref, + int parent: @cil_type_container ref, + int sourceDecl: @cil_type ref); + +cil_pointer_type( + unique int id: @cil_pointer_type ref, + int pointee: @cil_type ref); + +cil_array_type( + unique int id: @cil_array_type ref, + int element_type: @cil_type ref, + int rank: int ref); + +cil_function_pointer_return_type( + unique int id: @cil_function_pointer_type ref, + int return_type: @cil_type ref); + +cil_method( + unique int id: @cil_method, + string name: string ref, + int parent: @cil_type ref, + int return_type: @cil_type ref); + +cil_method_source_declaration( + unique int method: @cil_method ref, + int source: @cil_method ref); + +cil_method_implementation( + unique int id: @cil_method_implementation, + int method: @cil_method ref, + int location: @assembly ref); + +cil_implements( + int id: @cil_method ref, + int decl: @cil_method ref); + +#keyset[parent, name] +cil_field( + unique int id: @cil_field, + int parent: @cil_type ref, + string name: string ref, + int field_type: @cil_type ref); + +@cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; +@cil_named_element = @cil_declaration | @cil_namespace; +@cil_declaration = @cil_variable | @cil_method | @cil_type | @cil_member; +@cil_accessible = @cil_declaration; +@cil_variable = @cil_field | @cil_stack_variable; +@cil_stack_variable = @cil_local_variable | @cil_parameter; +@cil_member = @cil_method | @cil_type | @cil_field | @cil_property | @cil_event; +@cil_custom_modifier_receiver = @cil_method | @cil_property | @cil_parameter | @cil_field | @cil_function_pointer_type; +@cil_parameterizable = @cil_method | @cil_function_pointer_type; +@cil_has_type_annotation = @cil_stack_variable | @cil_property | @cil_field | @cil_method | @cil_function_pointer_type; + +#keyset[parameterizable, index] +cil_parameter( + unique int id: @cil_parameter, + int parameterizable: @cil_parameterizable ref, + int index: int ref, + int param_type: @cil_type ref); + +cil_parameter_in(unique int id: @cil_parameter ref); +cil_parameter_out(unique int id: @cil_parameter ref); + +cil_setter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +#keyset[id, modifier] +cil_custom_modifiers( + int id: @cil_custom_modifier_receiver ref, + int modifier: @cil_type ref, + int kind: int ref); // modreq: 1, modopt: 0 + +cil_type_annotation( + int id: @cil_has_type_annotation ref, + int annotation: int ref); + +cil_getter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_adder(unique int event: @cil_event ref, + int method: @cil_method ref); + +cil_remover(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_property( + unique int id: @cil_property, + int parent: @cil_type ref, + string name: string ref, + int property_type: @cil_type ref); + +#keyset[parent, name] +cil_event(unique int id: @cil_event, + int parent: @cil_type ref, + string name: string ref, + int event_type: @cil_type ref); + +#keyset[impl, index] +cil_local_variable( + unique int id: @cil_local_variable, + int impl: @cil_method_implementation ref, + int index: int ref, + int var_type: @cil_type ref); + +cil_function_pointer_calling_conventions( + int id: @cil_function_pointer_type ref, + int kind: int ref); + +// CIL handlers (exception handlers etc). + +case @cil_handler.kind of + 0 = @cil_catch_handler +| 1 = @cil_filter_handler +| 2 = @cil_finally_handler +| 4 = @cil_fault_handler +; + +#keyset[impl, index] +cil_handler( + unique int id: @cil_handler, + int impl: @cil_method_implementation ref, + int index: int ref, + int kind: int ref, + int try_start: @cil_instruction ref, + int try_end: @cil_instruction ref, + int handler_start: @cil_instruction ref); + +cil_handler_filter( + unique int id: @cil_handler ref, + int filter_start: @cil_instruction ref); + +cil_handler_type( + unique int id: @cil_handler ref, + int catch_type: @cil_type ref); + +@cil_controlflow_node = @cil_entry_point | @cil_instruction; + +@cil_entry_point = @cil_method_implementation | @cil_handler; + +@cil_dataflow_node = @cil_instruction | @cil_variable | @cil_method; + +cil_method_stack_size( + unique int method: @cil_method_implementation ref, + int size: int ref); + +// CIL modifiers + +cil_public(int id: @cil_member ref); +cil_private(int id: @cil_member ref); +cil_protected(int id: @cil_member ref); +cil_internal(int id: @cil_member ref); +cil_static(int id: @cil_member ref); +cil_sealed(int id: @cil_member ref); +cil_virtual(int id: @cil_method ref); +cil_abstract(int id: @cil_member ref); +cil_class(int id: @cil_type ref); +cil_interface(int id: @cil_type ref); +cil_security(int id: @cil_member ref); +cil_requiresecobject(int id: @cil_method ref); +cil_specialname(int id: @cil_method ref); +cil_newslot(int id: @cil_method ref); + +cil_base_class(unique int id: @cil_type ref, int base: @cil_type ref); +cil_base_interface(int id: @cil_type ref, int base: @cil_type ref); +cil_enum_underlying_type(unique int id: @cil_type ref, int underlying: @cil_type ref); + +#keyset[unbound, index] +cil_type_parameter( + int unbound: @cil_member ref, + int index: int ref, + int param: @cil_typeparameter ref); + +#keyset[bound, index] +cil_type_argument( + int bound: @cil_member ref, + int index: int ref, + int t: @cil_type ref); + +// CIL type parameter constraints + +cil_typeparam_covariant(int tp: @cil_typeparameter ref); +cil_typeparam_contravariant(int tp: @cil_typeparameter ref); +cil_typeparam_class(int tp: @cil_typeparameter ref); +cil_typeparam_struct(int tp: @cil_typeparameter ref); +cil_typeparam_new(int tp: @cil_typeparameter ref); +cil_typeparam_constraint(int tp: @cil_typeparameter ref, int supertype: @cil_type ref); + +// CIL attributes + +cil_attribute( + unique int attributeid: @cil_attribute, + int element: @cil_declaration ref, + int constructor: @cil_method ref); + +#keyset[attribute_id, param] +cil_attribute_named_argument( + int attribute_id: @cil_attribute ref, + string param: string ref, + string value: string ref); + +#keyset[attribute_id, index] +cil_attribute_positional_argument( + int attribute_id: @cil_attribute ref, + int index: int ref, + string value: string ref); + + +// Common .Net data model covering both C# and CIL + +// Common elements +@dotnet_element = @element | @cil_element; +@dotnet_named_element = @named_element | @cil_named_element; +@dotnet_callable = @callable | @cil_method; +@dotnet_variable = @variable | @cil_variable; +@dotnet_field = @field | @cil_field; +@dotnet_parameter = @parameter | @cil_parameter; +@dotnet_declaration = @declaration | @cil_declaration; +@dotnet_member = @member | @cil_member; +@dotnet_event = @event | @cil_event; +@dotnet_property = @property | @cil_property | @indexer; +@dotnet_parameterizable = @parameterizable | @cil_parameterizable; + +// Common types +@dotnet_type = @type | @cil_type; +@dotnet_call = @call | @cil_call_any; +@dotnet_throw = @throw_element | @cil_throw_any; +@dotnet_valueorreftype = @cil_valueorreftype | @value_or_ref_type | @cil_array_type | @void_type; +@dotnet_typeparameter = @type_parameter | @cil_typeparameter; +@dotnet_array_type = @array_type | @cil_array_type; +@dotnet_pointer_type = @pointer_type | @cil_pointer_type; +@dotnet_type_parameter = @type_parameter | @cil_typeparameter; +@dotnet_generic = @dotnet_valueorreftype | @dotnet_callable; + +// Attributes +@dotnet_attribute = @attribute | @cil_attribute; + +// Expressions +@dotnet_expr = @expr | @cil_expr; + +// Literals +@dotnet_literal = @literal_expr | @cil_literal; +@dotnet_string_literal = @string_literal_expr | @cil_ldstr; +@dotnet_int_literal = @integer_literal_expr | @cil_ldc_i; +@dotnet_float_literal = @float_literal_expr | @cil_ldc_r; +@dotnet_null_literal = @null_literal_expr | @cil_ldnull; + +@metadata_entity = @cil_method | @cil_type | @cil_field | @cil_property | @field | @property | + @callable | @value_or_ref_type | @void_type; + +#keyset[entity, location] +metadata_handle(int entity : @metadata_entity ref, int location: @assembly ref, int handle: int ref) diff --git a/csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/semmlecode.csharp.dbscheme b/csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/semmlecode.csharp.dbscheme new file mode 100644 index 00000000000..585d6402ff8 --- /dev/null +++ b/csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/semmlecode.csharp.dbscheme @@ -0,0 +1,2078 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | f1.cs + * 3 | f2.cs + * 4 | f3.cs + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location ref, + string stack_trace : string ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +// Populated by the CSV extractor +externalData( + int id: @externalDataElement, + string path: string ref, + int column: int ref, + string value: string ref); + +sourceLocationPrefix( + string prefix: string ref); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints | @externalDataElement + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function | @lambda_expr; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string ref); + +files( + unique int id: @file, + string name: string ref); + +folders( + unique int id: @folder, + string name: string ref); + +@container = @folder | @file ; + +containerparent( + int parent: @container ref, + unique int child: @container ref); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + unique int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int kind: int ref, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +compiler_generated(unique int id: @modifiable ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event | @operator; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, array = 3, this = 4 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +@has_scoped_annotation = @local_scope_variable + +scoped_annotation( + int id: @has_scoped_annotation ref, + int kind: int ref // scoped ref = 1, scoped value = 2 + ); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @utf16_string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* C# 11.0 */ +| 131 = @list_pattern_expr +| 132 = @slice_pattern_expr +| 133 = @urshift_expr +| 134 = @assign_urshift_expr +| 135 = @utf8_string_literal_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@string_literal_expr = @utf16_string_literal_expr | @utf8_string_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr | @urshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_compiler_generated( + unique int id: @expr ref); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +lambda_expr_return_type( + unique int id: @lambda_expr ref, + int type_id: @type_or_ref ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* XML Files */ + +xmlEncoding ( + unique int id: @file ref, + string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); + +/* Common Intermediate Language - CIL */ + +case @cil_instruction.opcode of + 0 = @cil_nop +| 1 = @cil_break +| 2 = @cil_ldarg_0 +| 3 = @cil_ldarg_1 +| 4 = @cil_ldarg_2 +| 5 = @cil_ldarg_3 +| 6 = @cil_ldloc_0 +| 7 = @cil_ldloc_1 +| 8 = @cil_ldloc_2 +| 9 = @cil_ldloc_3 +| 10 = @cil_stloc_0 +| 11 = @cil_stloc_1 +| 12 = @cil_stloc_2 +| 13 = @cil_stloc_3 +| 14 = @cil_ldarg_s +| 15 = @cil_ldarga_s +| 16 = @cil_starg_s +| 17 = @cil_ldloc_s +| 18 = @cil_ldloca_s +| 19 = @cil_stloc_s +| 20 = @cil_ldnull +| 21 = @cil_ldc_i4_m1 +| 22 = @cil_ldc_i4_0 +| 23 = @cil_ldc_i4_1 +| 24 = @cil_ldc_i4_2 +| 25 = @cil_ldc_i4_3 +| 26 = @cil_ldc_i4_4 +| 27 = @cil_ldc_i4_5 +| 28 = @cil_ldc_i4_6 +| 29 = @cil_ldc_i4_7 +| 30 = @cil_ldc_i4_8 +| 31 = @cil_ldc_i4_s +| 32 = @cil_ldc_i4 +| 33 = @cil_ldc_i8 +| 34 = @cil_ldc_r4 +| 35 = @cil_ldc_r8 +| 37 = @cil_dup +| 38 = @cil_pop +| 39 = @cil_jmp +| 40 = @cil_call +| 41 = @cil_calli +| 42 = @cil_ret +| 43 = @cil_br_s +| 44 = @cil_brfalse_s +| 45 = @cil_brtrue_s +| 46 = @cil_beq_s +| 47 = @cil_bge_s +| 48 = @cil_bgt_s +| 49 = @cil_ble_s +| 50 = @cil_blt_s +| 51 = @cil_bne_un_s +| 52 = @cil_bge_un_s +| 53 = @cil_bgt_un_s +| 54 = @cil_ble_un_s +| 55 = @cil_blt_un_s +| 56 = @cil_br +| 57 = @cil_brfalse +| 58 = @cil_brtrue +| 59 = @cil_beq +| 60 = @cil_bge +| 61 = @cil_bgt +| 62 = @cil_ble +| 63 = @cil_blt +| 64 = @cil_bne_un +| 65 = @cil_bge_un +| 66 = @cil_bgt_un +| 67 = @cil_ble_un +| 68 = @cil_blt_un +| 69 = @cil_switch +| 70 = @cil_ldind_i1 +| 71 = @cil_ldind_u1 +| 72 = @cil_ldind_i2 +| 73 = @cil_ldind_u2 +| 74 = @cil_ldind_i4 +| 75 = @cil_ldind_u4 +| 76 = @cil_ldind_i8 +| 77 = @cil_ldind_i +| 78 = @cil_ldind_r4 +| 79 = @cil_ldind_r8 +| 80 = @cil_ldind_ref +| 81 = @cil_stind_ref +| 82 = @cil_stind_i1 +| 83 = @cil_stind_i2 +| 84 = @cil_stind_i4 +| 85 = @cil_stind_i8 +| 86 = @cil_stind_r4 +| 87 = @cil_stind_r8 +| 88 = @cil_add +| 89 = @cil_sub +| 90 = @cil_mul +| 91 = @cil_div +| 92 = @cil_div_un +| 93 = @cil_rem +| 94 = @cil_rem_un +| 95 = @cil_and +| 96 = @cil_or +| 97 = @cil_xor +| 98 = @cil_shl +| 99 = @cil_shr +| 100 = @cil_shr_un +| 101 = @cil_neg +| 102 = @cil_not +| 103 = @cil_conv_i1 +| 104 = @cil_conv_i2 +| 105 = @cil_conv_i4 +| 106 = @cil_conv_i8 +| 107 = @cil_conv_r4 +| 108 = @cil_conv_r8 +| 109 = @cil_conv_u4 +| 110 = @cil_conv_u8 +| 111 = @cil_callvirt +| 112 = @cil_cpobj +| 113 = @cil_ldobj +| 114 = @cil_ldstr +| 115 = @cil_newobj +| 116 = @cil_castclass +| 117 = @cil_isinst +| 118 = @cil_conv_r_un +| 121 = @cil_unbox +| 122 = @cil_throw +| 123 = @cil_ldfld +| 124 = @cil_ldflda +| 125 = @cil_stfld +| 126 = @cil_ldsfld +| 127 = @cil_ldsflda +| 128 = @cil_stsfld +| 129 = @cil_stobj +| 130 = @cil_conv_ovf_i1_un +| 131 = @cil_conv_ovf_i2_un +| 132 = @cil_conv_ovf_i4_un +| 133 = @cil_conv_ovf_i8_un +| 134 = @cil_conv_ovf_u1_un +| 135 = @cil_conv_ovf_u2_un +| 136 = @cil_conv_ovf_u4_un +| 137 = @cil_conv_ovf_u8_un +| 138 = @cil_conv_ovf_i_un +| 139 = @cil_conv_ovf_u_un +| 140 = @cil_box +| 141 = @cil_newarr +| 142 = @cil_ldlen +| 143 = @cil_ldelema +| 144 = @cil_ldelem_i1 +| 145 = @cil_ldelem_u1 +| 146 = @cil_ldelem_i2 +| 147 = @cil_ldelem_u2 +| 148 = @cil_ldelem_i4 +| 149 = @cil_ldelem_u4 +| 150 = @cil_ldelem_i8 +| 151 = @cil_ldelem_i +| 152 = @cil_ldelem_r4 +| 153 = @cil_ldelem_r8 +| 154 = @cil_ldelem_ref +| 155 = @cil_stelem_i +| 156 = @cil_stelem_i1 +| 157 = @cil_stelem_i2 +| 158 = @cil_stelem_i4 +| 159 = @cil_stelem_i8 +| 160 = @cil_stelem_r4 +| 161 = @cil_stelem_r8 +| 162 = @cil_stelem_ref +| 163 = @cil_ldelem +| 164 = @cil_stelem +| 165 = @cil_unbox_any +| 179 = @cil_conv_ovf_i1 +| 180 = @cil_conv_ovf_u1 +| 181 = @cil_conv_ovf_i2 +| 182 = @cil_conv_ovf_u2 +| 183 = @cil_conv_ovf_i4 +| 184 = @cil_conv_ovf_u4 +| 185 = @cil_conv_ovf_i8 +| 186 = @cil_conv_ovf_u8 +| 194 = @cil_refanyval +| 195 = @cil_ckinfinite +| 198 = @cil_mkrefany +| 208 = @cil_ldtoken +| 209 = @cil_conv_u2 +| 210 = @cil_conv_u1 +| 211 = @cil_conv_i +| 212 = @cil_conv_ovf_i +| 213 = @cil_conv_ovf_u +| 214 = @cil_add_ovf +| 215 = @cil_add_ovf_un +| 216 = @cil_mul_ovf +| 217 = @cil_mul_ovf_un +| 218 = @cil_sub_ovf +| 219 = @cil_sub_ovf_un +| 220 = @cil_endfinally +| 221 = @cil_leave +| 222 = @cil_leave_s +| 223 = @cil_stind_i +| 224 = @cil_conv_u +| 65024 = @cil_arglist +| 65025 = @cil_ceq +| 65026 = @cil_cgt +| 65027 = @cil_cgt_un +| 65028 = @cil_clt +| 65029 = @cil_clt_un +| 65030 = @cil_ldftn +| 65031 = @cil_ldvirtftn +| 65033 = @cil_ldarg +| 65034 = @cil_ldarga +| 65035 = @cil_starg +| 65036 = @cil_ldloc +| 65037 = @cil_ldloca +| 65038 = @cil_stloc +| 65039 = @cil_localloc +| 65041 = @cil_endfilter +| 65042 = @cil_unaligned +| 65043 = @cil_volatile +| 65044 = @cil_tail +| 65045 = @cil_initobj +| 65046 = @cil_constrained +| 65047 = @cil_cpblk +| 65048 = @cil_initblk +| 65050 = @cil_rethrow +| 65052 = @cil_sizeof +| 65053 = @cil_refanytype +| 65054 = @cil_readonly +; + +// CIL ignored instructions + +@cil_ignore = @cil_nop | @cil_break | @cil_volatile | @cil_unaligned; + +// CIL local/parameter/field access + +@cil_ldarg_any = @cil_ldarg_0 | @cil_ldarg_1 | @cil_ldarg_2 | @cil_ldarg_3 | @cil_ldarg_s | @cil_ldarga_s | @cil_ldarg | @cil_ldarga; +@cil_starg_any = @cil_starg | @cil_starg_s; + +@cil_ldloc_any = @cil_ldloc_0 | @cil_ldloc_1 | @cil_ldloc_2 | @cil_ldloc_3 | @cil_ldloc_s | @cil_ldloca_s | @cil_ldloc | @cil_ldloca; +@cil_stloc_any = @cil_stloc_0 | @cil_stloc_1 | @cil_stloc_2 | @cil_stloc_3 | @cil_stloc_s | @cil_stloc; + +@cil_ldfld_any = @cil_ldfld | @cil_ldsfld | @cil_ldsflda | @cil_ldflda; +@cil_stfld_any = @cil_stfld | @cil_stsfld; + +@cil_local_access = @cil_stloc_any | @cil_ldloc_any; +@cil_arg_access = @cil_starg_any | @cil_ldarg_any; +@cil_read_access = @cil_ldloc_any | @cil_ldarg_any | @cil_ldfld_any; +@cil_write_access = @cil_stloc_any | @cil_starg_any | @cil_stfld_any; + +@cil_stack_access = @cil_local_access | @cil_arg_access; +@cil_field_access = @cil_ldfld_any | @cil_stfld_any; + +@cil_access = @cil_read_access | @cil_write_access; + +// CIL constant/literal instructions + +@cil_ldc_i = @cil_ldc_i4_any | @cil_ldc_i8; + +@cil_ldc_i4_any = @cil_ldc_i4_m1 | @cil_ldc_i4_0 | @cil_ldc_i4_1 | @cil_ldc_i4_2 | @cil_ldc_i4_3 | + @cil_ldc_i4_4 | @cil_ldc_i4_5 | @cil_ldc_i4_6 | @cil_ldc_i4_7 | @cil_ldc_i4_8 | @cil_ldc_i4_s | @cil_ldc_i4; + +@cil_ldc_r = @cil_ldc_r4 | @cil_ldc_r8; + +@cil_literal = @cil_ldnull | @cil_ldc_i | @cil_ldc_r | @cil_ldstr; + +// Control flow + +@cil_conditional_jump = @cil_binary_jump | @cil_unary_jump; +@cil_binary_jump = @cil_beq_s | @cil_bge_s | @cil_bgt_s | @cil_ble_s | @cil_blt_s | + @cil_bne_un_s | @cil_bge_un_s | @cil_bgt_un_s | @cil_ble_un_s | @cil_blt_un_s | + @cil_beq | @cil_bge | @cil_bgt | @cil_ble | @cil_blt | + @cil_bne_un | @cil_bge_un | @cil_bgt_un | @cil_ble_un | @cil_blt_un; +@cil_unary_jump = @cil_brfalse_s | @cil_brtrue_s | @cil_brfalse | @cil_brtrue | @cil_switch; +@cil_unconditional_jump = @cil_br | @cil_br_s | @cil_leave_any; +@cil_leave_any = @cil_leave | @cil_leave_s; +@cil_jump = @cil_unconditional_jump | @cil_conditional_jump; + +// CIL call instructions + +@cil_call_any = @cil_jmp | @cil_call | @cil_calli | @cil_tail | @cil_callvirt | @cil_newobj; + +// CIL expression instructions + +@cil_expr = @cil_literal | @cil_binary_expr | @cil_unary_expr | @cil_call_any | @cil_read_access | + @cil_newarr | @cil_ldtoken | @cil_sizeof | + @cil_ldftn | @cil_ldvirtftn | @cil_localloc | @cil_mkrefany | @cil_refanytype | @cil_arglist | @cil_dup; + +@cil_unary_expr = + @cil_conversion_operation | @cil_unary_arithmetic_operation | @cil_unary_bitwise_operation| + @cil_ldlen | @cil_isinst | @cil_box | @cil_ldobj | @cil_castclass | @cil_unbox_any | + @cil_ldind | @cil_unbox; + +@cil_conversion_operation = + @cil_conv_i1 | @cil_conv_i2 | @cil_conv_i4 | @cil_conv_i8 | + @cil_conv_u1 | @cil_conv_u2 | @cil_conv_u4 | @cil_conv_u8 | + @cil_conv_ovf_i | @cil_conv_ovf_i_un | @cil_conv_ovf_i1 | @cil_conv_ovf_i1_un | + @cil_conv_ovf_i2 | @cil_conv_ovf_i2_un | @cil_conv_ovf_i4 | @cil_conv_ovf_i4_un | + @cil_conv_ovf_i8 | @cil_conv_ovf_i8_un | @cil_conv_ovf_u | @cil_conv_ovf_u_un | + @cil_conv_ovf_u1 | @cil_conv_ovf_u1_un | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_ovf_u4 | @cil_conv_ovf_u4_un | @cil_conv_ovf_u8 | @cil_conv_ovf_u8_un | + @cil_conv_r4 | @cil_conv_r8 | @cil_conv_ovf_u2 | @cil_conv_ovf_u2_un | + @cil_conv_i | @cil_conv_u | @cil_conv_r_un; + +@cil_ldind = @cil_ldind_i | @cil_ldind_i1 | @cil_ldind_i2 | @cil_ldind_i4 | @cil_ldind_i8 | + @cil_ldind_r4 | @cil_ldind_r8 | @cil_ldind_ref | @cil_ldind_u1 | @cil_ldind_u2 | @cil_ldind_u4; + +@cil_stind = @cil_stind_i | @cil_stind_i1 | @cil_stind_i2 | @cil_stind_i4 | @cil_stind_i8 | + @cil_stind_r4 | @cil_stind_r8 | @cil_stind_ref; + +@cil_bitwise_operation = @cil_binary_bitwise_operation | @cil_unary_bitwise_operation; + +@cil_binary_bitwise_operation = @cil_and | @cil_or | @cil_xor | @cil_shr | @cil_shr | @cil_shr_un | @cil_shl; + +@cil_binary_arithmetic_operation = @cil_add | @cil_sub | @cil_mul | @cil_div | @cil_div_un | + @cil_rem | @cil_rem_un | @cil_add_ovf | @cil_add_ovf_un | @cil_mul_ovf | @cil_mul_ovf_un | + @cil_sub_ovf | @cil_sub_ovf_un; + +@cil_unary_bitwise_operation = @cil_not; + +@cil_binary_expr = @cil_binary_arithmetic_operation | @cil_binary_bitwise_operation | @cil_read_array | @cil_comparison_operation; + +@cil_unary_arithmetic_operation = @cil_neg; + +@cil_comparison_operation = @cil_cgt_un | @cil_ceq | @cil_cgt | @cil_clt | @cil_clt_un; + +// Elements that retrieve an address of something +@cil_read_ref = @cil_ldloca_s | @cil_ldarga_s | @cil_ldflda | @cil_ldsflda | @cil_ldelema; + +// CIL array instructions + +@cil_read_array = + @cil_ldelem | @cil_ldelema | @cil_ldelem_i1 | @cil_ldelem_ref | @cil_ldelem_i | + @cil_ldelem_i1 | @cil_ldelem_i2 | @cil_ldelem_i4 | @cil_ldelem_i8 | @cil_ldelem_r4 | + @cil_ldelem_r8 | @cil_ldelem_u1 | @cil_ldelem_u2 | @cil_ldelem_u4; + +@cil_write_array = @cil_stelem | @cil_stelem_ref | + @cil_stelem_i | @cil_stelem_i1 | @cil_stelem_i2 | @cil_stelem_i4 | @cil_stelem_i8 | + @cil_stelem_r4 | @cil_stelem_r8; + +@cil_throw_any = @cil_throw | @cil_rethrow; + +#keyset[impl, index] +cil_instruction( + unique int id: @cil_instruction, + int opcode: int ref, + int index: int ref, + int impl: @cil_method_implementation ref); + +cil_jump( + unique int instruction: @cil_jump ref, + int target: @cil_instruction ref); + +cil_access( + unique int instruction: @cil_instruction ref, + int target: @cil_accessible ref); + +cil_value( + unique int instruction: @cil_literal ref, + string value: string ref); + +#keyset[instruction, index] +cil_switch( + int instruction: @cil_switch ref, + int index: int ref, + int target: @cil_instruction ref); + +cil_instruction_location( + unique int id: @cil_instruction ref, + int loc: @location ref); + +cil_type_location( + int id: @cil_type ref, + int loc: @location ref); + +cil_method_location( + int id: @cil_method ref, + int loc: @location ref); + +@cil_namespace = @namespace; + +@cil_type_container = @cil_type | @cil_namespace | @cil_method; + +case @cil_type.kind of + 0 = @cil_valueorreftype +| 1 = @cil_typeparameter +| 2 = @cil_array_type +| 3 = @cil_pointer_type +| 4 = @cil_function_pointer_type +; + +cil_type( + unique int id: @cil_type, + string name: string ref, + int kind: int ref, + int parent: @cil_type_container ref, + int sourceDecl: @cil_type ref); + +cil_pointer_type( + unique int id: @cil_pointer_type ref, + int pointee: @cil_type ref); + +cil_array_type( + unique int id: @cil_array_type ref, + int element_type: @cil_type ref, + int rank: int ref); + +cil_function_pointer_return_type( + unique int id: @cil_function_pointer_type ref, + int return_type: @cil_type ref); + +cil_method( + unique int id: @cil_method, + string name: string ref, + int parent: @cil_type ref, + int return_type: @cil_type ref); + +cil_method_source_declaration( + unique int method: @cil_method ref, + int source: @cil_method ref); + +cil_method_implementation( + unique int id: @cil_method_implementation, + int method: @cil_method ref, + int location: @assembly ref); + +cil_implements( + int id: @cil_method ref, + int decl: @cil_method ref); + +#keyset[parent, name] +cil_field( + unique int id: @cil_field, + int parent: @cil_type ref, + string name: string ref, + int field_type: @cil_type ref); + +@cil_element = @cil_instruction | @cil_declaration | @cil_handler | @cil_attribute | @cil_namespace; +@cil_named_element = @cil_declaration | @cil_namespace; +@cil_declaration = @cil_variable | @cil_method | @cil_type | @cil_member; +@cil_accessible = @cil_declaration; +@cil_variable = @cil_field | @cil_stack_variable; +@cil_stack_variable = @cil_local_variable | @cil_parameter; +@cil_member = @cil_method | @cil_type | @cil_field | @cil_property | @cil_event; +@cil_custom_modifier_receiver = @cil_method | @cil_property | @cil_parameter | @cil_field | @cil_function_pointer_type; +@cil_parameterizable = @cil_method | @cil_function_pointer_type; +@cil_has_type_annotation = @cil_stack_variable | @cil_property | @cil_field | @cil_method | @cil_function_pointer_type; + +#keyset[parameterizable, index] +cil_parameter( + unique int id: @cil_parameter, + int parameterizable: @cil_parameterizable ref, + int index: int ref, + int param_type: @cil_type ref); + +cil_parameter_in(unique int id: @cil_parameter ref); +cil_parameter_out(unique int id: @cil_parameter ref); + +cil_setter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +#keyset[id, modifier] +cil_custom_modifiers( + int id: @cil_custom_modifier_receiver ref, + int modifier: @cil_type ref, + int kind: int ref); // modreq: 1, modopt: 0 + +cil_type_annotation( + int id: @cil_has_type_annotation ref, + int annotation: int ref); + +cil_getter(unique int prop: @cil_property ref, + int method: @cil_method ref); + +cil_adder(unique int event: @cil_event ref, + int method: @cil_method ref); + +cil_remover(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_raiser(unique int event: @cil_event ref, int method: @cil_method ref); + +cil_property( + unique int id: @cil_property, + int parent: @cil_type ref, + string name: string ref, + int property_type: @cil_type ref); + +#keyset[parent, name] +cil_event(unique int id: @cil_event, + int parent: @cil_type ref, + string name: string ref, + int event_type: @cil_type ref); + +#keyset[impl, index] +cil_local_variable( + unique int id: @cil_local_variable, + int impl: @cil_method_implementation ref, + int index: int ref, + int var_type: @cil_type ref); + +cil_function_pointer_calling_conventions( + int id: @cil_function_pointer_type ref, + int kind: int ref); + +// CIL handlers (exception handlers etc). + +case @cil_handler.kind of + 0 = @cil_catch_handler +| 1 = @cil_filter_handler +| 2 = @cil_finally_handler +| 4 = @cil_fault_handler +; + +#keyset[impl, index] +cil_handler( + unique int id: @cil_handler, + int impl: @cil_method_implementation ref, + int index: int ref, + int kind: int ref, + int try_start: @cil_instruction ref, + int try_end: @cil_instruction ref, + int handler_start: @cil_instruction ref); + +cil_handler_filter( + unique int id: @cil_handler ref, + int filter_start: @cil_instruction ref); + +cil_handler_type( + unique int id: @cil_handler ref, + int catch_type: @cil_type ref); + +@cil_controlflow_node = @cil_entry_point | @cil_instruction; + +@cil_entry_point = @cil_method_implementation | @cil_handler; + +@cil_dataflow_node = @cil_instruction | @cil_variable | @cil_method; + +cil_method_stack_size( + unique int method: @cil_method_implementation ref, + int size: int ref); + +// CIL modifiers + +cil_public(int id: @cil_member ref); +cil_private(int id: @cil_member ref); +cil_protected(int id: @cil_member ref); +cil_internal(int id: @cil_member ref); +cil_static(int id: @cil_member ref); +cil_sealed(int id: @cil_member ref); +cil_virtual(int id: @cil_method ref); +cil_abstract(int id: @cil_member ref); +cil_class(int id: @cil_type ref); +cil_interface(int id: @cil_type ref); +cil_security(int id: @cil_member ref); +cil_requiresecobject(int id: @cil_method ref); +cil_specialname(int id: @cil_method ref); +cil_newslot(int id: @cil_method ref); + +cil_base_class(unique int id: @cil_type ref, int base: @cil_type ref); +cil_base_interface(int id: @cil_type ref, int base: @cil_type ref); +cil_enum_underlying_type(unique int id: @cil_type ref, int underlying: @cil_type ref); + +#keyset[unbound, index] +cil_type_parameter( + int unbound: @cil_member ref, + int index: int ref, + int param: @cil_typeparameter ref); + +#keyset[bound, index] +cil_type_argument( + int bound: @cil_member ref, + int index: int ref, + int t: @cil_type ref); + +// CIL type parameter constraints + +cil_typeparam_covariant(int tp: @cil_typeparameter ref); +cil_typeparam_contravariant(int tp: @cil_typeparameter ref); +cil_typeparam_class(int tp: @cil_typeparameter ref); +cil_typeparam_struct(int tp: @cil_typeparameter ref); +cil_typeparam_new(int tp: @cil_typeparameter ref); +cil_typeparam_constraint(int tp: @cil_typeparameter ref, int supertype: @cil_type ref); + +// CIL attributes + +cil_attribute( + unique int attributeid: @cil_attribute, + int element: @cil_declaration ref, + int constructor: @cil_method ref); + +#keyset[attribute_id, param] +cil_attribute_named_argument( + int attribute_id: @cil_attribute ref, + string param: string ref, + string value: string ref); + +#keyset[attribute_id, index] +cil_attribute_positional_argument( + int attribute_id: @cil_attribute ref, + int index: int ref, + string value: string ref); + + +// Common .Net data model covering both C# and CIL + +// Common elements +@dotnet_element = @element | @cil_element; +@dotnet_named_element = @named_element | @cil_named_element; +@dotnet_callable = @callable | @cil_method; +@dotnet_variable = @variable | @cil_variable; +@dotnet_field = @field | @cil_field; +@dotnet_parameter = @parameter | @cil_parameter; +@dotnet_declaration = @declaration | @cil_declaration; +@dotnet_member = @member | @cil_member; +@dotnet_event = @event | @cil_event; +@dotnet_property = @property | @cil_property | @indexer; +@dotnet_parameterizable = @parameterizable | @cil_parameterizable; + +// Common types +@dotnet_type = @type | @cil_type; +@dotnet_call = @call | @cil_call_any; +@dotnet_throw = @throw_element | @cil_throw_any; +@dotnet_valueorreftype = @cil_valueorreftype | @value_or_ref_type | @cil_array_type | @void_type; +@dotnet_typeparameter = @type_parameter | @cil_typeparameter; +@dotnet_array_type = @array_type | @cil_array_type; +@dotnet_pointer_type = @pointer_type | @cil_pointer_type; +@dotnet_type_parameter = @type_parameter | @cil_typeparameter; +@dotnet_generic = @dotnet_valueorreftype | @dotnet_callable; + +// Attributes +@dotnet_attribute = @attribute | @cil_attribute; + +// Expressions +@dotnet_expr = @expr | @cil_expr; + +// Literals +@dotnet_literal = @literal_expr | @cil_literal; +@dotnet_string_literal = @string_literal_expr | @cil_ldstr; +@dotnet_int_literal = @integer_literal_expr | @cil_ldc_i; +@dotnet_float_literal = @float_literal_expr | @cil_ldc_r; +@dotnet_null_literal = @null_literal_expr | @cil_ldnull; + +@metadata_entity = @cil_method | @cil_type | @cil_field | @cil_property | @field | @property | + @callable | @value_or_ref_type | @void_type; + +#keyset[entity, location] +metadata_handle(int entity : @metadata_entity ref, int location: @assembly ref, int handle: int ref) diff --git a/csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/upgrade.properties b/csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/upgrade.properties new file mode 100644 index 00000000000..f73a420a142 --- /dev/null +++ b/csharp/ql/lib/upgrades/cd877b8cc2fb8327499f96fbefd01bb988b2ed63/upgrade.properties @@ -0,0 +1,2 @@ +description: Update the schemas for some tables to allow assembly locations. +compatibility: full From 8c4dccc81ba2bbf184032215c4047c823b4fe041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20St=C3=B6ckli?= Date: Tue, 5 Sep 2023 15:33:29 +0200 Subject: [PATCH 208/788] Python: initial support for CMDi via asyncio --- .../lib/semmle/python/frameworks/Stdlib.qll | 139 ++++++++++++++++++ .../CommandInjection.expected | 66 +++++++++ .../DataflowQueryTest.expected | 2 +- .../command_injection.py | 47 ++++++ 4 files changed, 253 insertions(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index ee33f3f1210..a493eed9a6b 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -4396,6 +4396,145 @@ private module StdlibPrivate { preservesValue = true } } + + // --------------------------------------------------------------------------- + // asyncio + // --------------------------------------------------------------------------- + /** Gets a reference to the `asyncio` module. */ + API::Node asyncio() { result = API::moduleImport("asyncio") } + + /** Provides models for the `asyncio` module. */ + module AsyncIO { + /** + * A call to the `asyncio.create_subprocess_exec` function (also accessible via the `subprocess` module of `asyncio`) + * + * See https://docs.python.org/3/library/asyncio-subprocess.html#creating-subprocesses + */ + private class CreateSubprocessExec extends SystemCommandExecution::Range, + FileSystemAccess::Range, DataFlow::CallCfgNode + { + CreateSubprocessExec() { + exists(string name | + name = "create_subprocess_exec" and + ( + this = asyncio().getMember(name).getACall() + or + this = asyncio().getMember("subprocess").getMember(name).getACall() + ) + ) + } + + override DataFlow::Node getCommand() { + result = this.getArg(0) + or + result = this.getArgByName("program") + } + + override DataFlow::Node getAPathArgument() { result = this.getCommand() } + + override predicate isShellInterpreted(DataFlow::Node arg) { + none() // this is a safe API. + } + } + } + + /** + * A call to the `asyncio.create_subprocess_shell` function (also in the `subprocess` module of `asyncio`) + * + * See https://docs.python.org/3/library/asyncio-subprocess.html#creating-subprocesses + */ + private class CreateSubprocessShell extends SystemCommandExecution::Range, + FileSystemAccess::Range, DataFlow::CallCfgNode + { + CreateSubprocessShell() { + exists(string name | + name = "create_subprocess_shell" and + ( + this = asyncio().getMember(name).getACall() + or + this = asyncio().getMember("subprocess").getMember(name).getACall() + ) + ) + } + + override DataFlow::Node getCommand() { + result = this.getArg(0) + or + result = this.getArgByName("cmd") + } + + override DataFlow::Node getAPathArgument() { result = this.getCommand() } + + override predicate isShellInterpreted(DataFlow::Node arg) { arg = this.getCommand() } + } + + /** + * A source for an event loop (an object with basetype `AbstractEventLoop`). + * + * See https://docs.python.org/3/library/asyncio-eventloop.html + */ + private class EventLoopSource extends DataFlow::LocalSourceNode, DataFlow::CallCfgNode { + EventLoopSource() { + this = asyncio().getMember("get_running_loop").getACall() + or + this = asyncio().getMember("get_event_loop").getACall() // deprecated in Python 3.10.0 and later + or + this = asyncio().getMember("new_event_loop").getACall() + } + } + + /** Gets a reference to an event loop instance. */ + private DataFlow::TypeTrackingNode eventLoopInstance(DataFlow::TypeTracker t) { + t.start() and + result instanceof EventLoopSource + or + exists(DataFlow::TypeTracker t2 | result = eventLoopInstance(t2).track(t2, t)) + } + + /** Gets a reference to an event loop instance. */ + DataFlow::Node eventLoopInstance() { + eventLoopInstance(DataFlow::TypeTracker::end()).flowsTo(result) + } + + /** + * A call to `subprocess_exec` on an event loop instance. + * + * See https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.subprocess_exec + */ + private class EventLoopSubprocessExec extends DataFlow::MethodCallNode, + SystemCommandExecution::Range, FileSystemAccess::Range + { + EventLoopSubprocessExec() { this.calls(eventLoopInstance(), "subprocess_exec") } + + override DataFlow::Node getCommand() { result = this.getArg(1) } + + override DataFlow::Node getAPathArgument() { result = this.getCommand() } + + override predicate isShellInterpreted(DataFlow::Node arg) { + none() // this is a safe API. + } + } + + /** + * A call to `subprocess_shell` on an event loop instance. + * + * See https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.subprocess_shell + */ + private class EventLoopSubprocessShell extends DataFlow::MethodCallNode, + SystemCommandExecution::Range, FileSystemAccess::Range + { + EventLoopSubprocessShell() { this.calls(eventLoopInstance(), "subprocess_shell") } + + override DataFlow::Node getCommand() { + result = this.getArg(1) + or + result = this.getArgByName("cmd") + } + + override DataFlow::Node getAPathArgument() { result = this.getCommand() } + + override predicate isShellInterpreted(DataFlow::Node arg) { arg = this.getCommand() } + } } // --------------------------------------------------------------------------- diff --git a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected index 9cb040f5a98..c3363978d8e 100644 --- a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected @@ -8,6 +8,12 @@ edges | command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:54:15:54:21 | ControlFlowNode for request | | command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:71:12:71:18 | ControlFlowNode for request | | command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:78:12:78:18 | ControlFlowNode for request | +| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:87:13:87:19 | ControlFlowNode for request | +| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:92:13:92:19 | ControlFlowNode for request | +| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:102:13:102:19 | ControlFlowNode for request | +| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:112:13:112:19 | ControlFlowNode for request | +| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:117:13:117:19 | ControlFlowNode for request | +| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:122:13:122:19 | ControlFlowNode for request | | command_injection.py:11:5:11:9 | SSA variable files | command_injection.py:13:15:13:27 | ControlFlowNode for BinaryExpr | | command_injection.py:11:13:11:19 | ControlFlowNode for request | command_injection.py:11:13:11:24 | ControlFlowNode for Attribute | | command_injection.py:11:13:11:24 | ControlFlowNode for Attribute | command_injection.py:11:13:11:41 | ControlFlowNode for Attribute() | @@ -45,6 +51,30 @@ edges | command_injection.py:78:12:78:18 | ControlFlowNode for request | command_injection.py:78:12:78:23 | ControlFlowNode for Attribute | | command_injection.py:78:12:78:23 | ControlFlowNode for Attribute | command_injection.py:78:12:78:39 | ControlFlowNode for Attribute() | | command_injection.py:78:12:78:39 | ControlFlowNode for Attribute() | command_injection.py:78:5:78:8 | SSA variable path | +| command_injection.py:87:5:87:9 | SSA variable files | command_injection.py:88:48:88:52 | ControlFlowNode for files | +| command_injection.py:87:13:87:19 | ControlFlowNode for request | command_injection.py:87:13:87:24 | ControlFlowNode for Attribute | +| command_injection.py:87:13:87:24 | ControlFlowNode for Attribute | command_injection.py:87:13:87:41 | ControlFlowNode for Attribute() | +| command_injection.py:87:13:87:41 | ControlFlowNode for Attribute() | command_injection.py:87:5:87:9 | SSA variable files | +| command_injection.py:92:5:92:9 | SSA variable files | command_injection.py:93:51:93:55 | ControlFlowNode for files | +| command_injection.py:92:13:92:19 | ControlFlowNode for request | command_injection.py:92:13:92:24 | ControlFlowNode for Attribute | +| command_injection.py:92:13:92:24 | ControlFlowNode for Attribute | command_injection.py:92:13:92:41 | ControlFlowNode for Attribute() | +| command_injection.py:92:13:92:41 | ControlFlowNode for Attribute() | command_injection.py:92:5:92:9 | SSA variable files | +| command_injection.py:102:5:102:9 | SSA variable files | command_injection.py:106:82:106:86 | ControlFlowNode for files | +| command_injection.py:102:13:102:19 | ControlFlowNode for request | command_injection.py:102:13:102:24 | ControlFlowNode for Attribute | +| command_injection.py:102:13:102:24 | ControlFlowNode for Attribute | command_injection.py:102:13:102:41 | ControlFlowNode for Attribute() | +| command_injection.py:102:13:102:41 | ControlFlowNode for Attribute() | command_injection.py:102:5:102:9 | SSA variable files | +| command_injection.py:112:5:112:9 | SSA variable files | command_injection.py:113:49:113:53 | ControlFlowNode for files | +| command_injection.py:112:13:112:19 | ControlFlowNode for request | command_injection.py:112:13:112:24 | ControlFlowNode for Attribute | +| command_injection.py:112:13:112:24 | ControlFlowNode for Attribute | command_injection.py:112:13:112:41 | ControlFlowNode for Attribute() | +| command_injection.py:112:13:112:41 | ControlFlowNode for Attribute() | command_injection.py:112:5:112:9 | SSA variable files | +| command_injection.py:117:5:117:9 | SSA variable files | command_injection.py:118:52:118:56 | ControlFlowNode for files | +| command_injection.py:117:13:117:19 | ControlFlowNode for request | command_injection.py:117:13:117:24 | ControlFlowNode for Attribute | +| command_injection.py:117:13:117:24 | ControlFlowNode for Attribute | command_injection.py:117:13:117:41 | ControlFlowNode for Attribute() | +| command_injection.py:117:13:117:41 | ControlFlowNode for Attribute() | command_injection.py:117:5:117:9 | SSA variable files | +| command_injection.py:122:5:122:9 | SSA variable files | command_injection.py:125:83:125:87 | ControlFlowNode for files | +| command_injection.py:122:13:122:19 | ControlFlowNode for request | command_injection.py:122:13:122:24 | ControlFlowNode for Attribute | +| command_injection.py:122:13:122:24 | ControlFlowNode for Attribute | command_injection.py:122:13:122:41 | ControlFlowNode for Attribute() | +| command_injection.py:122:13:122:41 | ControlFlowNode for Attribute() | command_injection.py:122:5:122:9 | SSA variable files | nodes | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | command_injection.py:5:26:5:32 | GSSA Variable request | semmle.label | GSSA Variable request | @@ -93,6 +123,36 @@ nodes | command_injection.py:78:12:78:23 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | command_injection.py:78:12:78:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | command_injection.py:80:19:80:30 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | +| command_injection.py:87:5:87:9 | SSA variable files | semmle.label | SSA variable files | +| command_injection.py:87:13:87:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| command_injection.py:87:13:87:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| command_injection.py:87:13:87:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| command_injection.py:88:48:88:52 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | +| command_injection.py:92:5:92:9 | SSA variable files | semmle.label | SSA variable files | +| command_injection.py:92:13:92:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| command_injection.py:92:13:92:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| command_injection.py:92:13:92:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| command_injection.py:93:51:93:55 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | +| command_injection.py:102:5:102:9 | SSA variable files | semmle.label | SSA variable files | +| command_injection.py:102:13:102:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| command_injection.py:102:13:102:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| command_injection.py:102:13:102:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| command_injection.py:106:82:106:86 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | +| command_injection.py:112:5:112:9 | SSA variable files | semmle.label | SSA variable files | +| command_injection.py:112:13:112:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| command_injection.py:112:13:112:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| command_injection.py:112:13:112:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| command_injection.py:113:49:113:53 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | +| command_injection.py:117:5:117:9 | SSA variable files | semmle.label | SSA variable files | +| command_injection.py:117:13:117:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| command_injection.py:117:13:117:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| command_injection.py:117:13:117:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| command_injection.py:118:52:118:56 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | +| command_injection.py:122:5:122:9 | SSA variable files | semmle.label | SSA variable files | +| command_injection.py:122:13:122:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| command_injection.py:122:13:122:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| command_injection.py:122:13:122:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| command_injection.py:125:83:125:87 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | subpaths #select | command_injection.py:13:15:13:27 | ControlFlowNode for BinaryExpr | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:13:15:13:27 | ControlFlowNode for BinaryExpr | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | @@ -108,3 +168,9 @@ subpaths | command_injection.py:59:20:59:26 | ControlFlowNode for command | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:59:20:59:26 | ControlFlowNode for command | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | | command_injection.py:73:19:73:30 | ControlFlowNode for BinaryExpr | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:73:19:73:30 | ControlFlowNode for BinaryExpr | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | | command_injection.py:80:19:80:30 | ControlFlowNode for BinaryExpr | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:80:19:80:30 | ControlFlowNode for BinaryExpr | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | +| command_injection.py:88:48:88:52 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:88:48:88:52 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | +| command_injection.py:93:51:93:55 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:93:51:93:55 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | +| command_injection.py:106:82:106:86 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:106:82:106:86 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | +| command_injection.py:113:49:113:53 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:113:49:113:53 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | +| command_injection.py:118:52:118:56 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:118:52:118:56 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | +| command_injection.py:125:83:125:87 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:125:83:125:87 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.expected b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.expected index 04431311999..303d04688ff 100644 --- a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.expected +++ b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.expected @@ -1,3 +1,3 @@ -missingAnnotationOnSink failures +missingAnnotationOnSink testFailures diff --git a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/command_injection.py b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/command_injection.py index c969a1b1020..6a7289e3708 100644 --- a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/command_injection.py +++ b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/command_injection.py @@ -78,3 +78,50 @@ def restricted_characters(): path = request.args.get('path', '') if re.match(r'^[a-zA-Z0-9_-]+$', path): os.system("ls " + path) # $SPURIOUS: result=BAD + +import asyncio +from asyncio import subprocess + +@app.route("/asyncio-exec1") +def asyncio_exec_command_injection1(): + files = request.args.get('files', '') + asyncio.run(asyncio.create_subprocess_exec(files)) # $result=BAD + +@app.route("/asyncio-exec2") +def asyncio_exec_command_injection2(): + files = request.args.get('files', '') + asyncio.run(subprocess.create_subprocess_exec(files)) # $result=BAD + +@app.route("/asyncio-exec-args") +def asyncio_exec_arg_injection(): + files = request.args.get('files', '') + asyncio.run(asyncio.create_subprocess_exec("ls", files)) # $result=OK - only an argument injection, not a command injection + +@app.route("/asyncio-eventloop-command1") +def asyncio_eventloop_exec_command_injection1(): + files = request.args.get('files', '') + args = ["-a", "-l"] + loop = asyncio.new_event_loop() + try: + loop.run_until_complete(loop.subprocess_exec(asyncio.SubprocessProtocol, files, *args)) # $result=BAD + finally: + loop.close() + +@app.route("/asyncio-shell1") +def asyncio_shell_command_injection1(): + files = request.args.get('files', '') + asyncio.run(asyncio.create_subprocess_shell(files)) # $result=BAD + +@app.route("/asyncio-shell2") +def asyncio_shell_command_injection1(): + files = request.args.get('files', '') + asyncio.run(subprocess.create_subprocess_shell(files)) # $result=BAD + +@app.route("/asyncio-eventloop-shell1") +def asyncio_eventloop_shell_command_injection1(): + files = request.args.get('files', '') + loop = asyncio.new_event_loop() + try: + loop.run_until_complete(loop.subprocess_shell(asyncio.SubprocessProtocol, files)) # $result=BAD + finally: + loop.close() From 9027eac3124c3f3ce94ad40c045e9cf918b31318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20St=C3=B6ckli?= Date: Tue, 5 Sep 2023 16:14:56 +0200 Subject: [PATCH 209/788] Python: add change notes for asyncio CMDi sinks --- python/ql/src/change-notes/2023-09-05-asyncio-cmdi-sinks.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 python/ql/src/change-notes/2023-09-05-asyncio-cmdi-sinks.md diff --git a/python/ql/src/change-notes/2023-09-05-asyncio-cmdi-sinks.md b/python/ql/src/change-notes/2023-09-05-asyncio-cmdi-sinks.md new file mode 100644 index 00000000000..6a05b201d6b --- /dev/null +++ b/python/ql/src/change-notes/2023-09-05-asyncio-cmdi-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Extended the `py/command-line-injection` query with sinks from Python's `asyncio` module. From 7f73c5930482c46558195447c17c94a3e66661f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Sep 2023 03:58:08 +0000 Subject: [PATCH 210/788] Bump chrono from 0.4.28 to 0.4.29 in /ql Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.28 to 0.4.29. - [Release notes](https://github.com/chronotope/chrono/releases) - [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md) - [Commits](https://github.com/chronotope/chrono/compare/v0.4.28...v0.4.29) --- updated-dependencies: - dependency-name: chrono dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- ql/Cargo.lock | Bin 32919 -> 32919 bytes ql/buramu/Cargo.toml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ql/Cargo.lock b/ql/Cargo.lock index 8d97ef2bcac3695c360308a838a614894c4f39be..84b910fc54a498b4962bb453a9bab582e0cfdfe1 100644 GIT binary patch delta 87 zcmbQ<$TYo?X~QAj$p^Co98xUIQ!G;qjgwMM%o9zM%#)2R4a^OV&C?8xEDe$jOiV2k r&C@IlQqz)*%#u(DW*VKV Date: Wed, 6 Sep 2023 09:29:11 +0100 Subject: [PATCH 211/788] C++: No need to remove duplications manually. --- cpp/ql/src/Security/CWE/CWE-497/ExposedSystemData.ql | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/cpp/ql/src/Security/CWE/CWE-497/ExposedSystemData.ql b/cpp/ql/src/Security/CWE/CWE-497/ExposedSystemData.ql index 74a5e1ba4e0..dcbaedea42c 100644 --- a/cpp/ql/src/Security/CWE/CWE-497/ExposedSystemData.ql +++ b/cpp/ql/src/Security/CWE/CWE-497/ExposedSystemData.ql @@ -33,14 +33,6 @@ module ExposedSystemDataConfig implements DataFlow::ConfigSig { module ExposedSystemData = TaintTracking::Global; from ExposedSystemData::PathNode source, ExposedSystemData::PathNode sink -where - ExposedSystemData::flowPath(source, sink) and - not exists( - DataFlow::Node alt // remove duplicate results on conversions - | - ExposedSystemData::flow(source.getNode(), alt) and - alt.asConvertedExpr() = sink.getNode().asIndirectExpr() and - alt != sink.getNode() - ) +where ExposedSystemData::flowPath(source, sink) select sink, source, sink, "This operation exposes system data from $@.", source, source.getNode().toString() From 5d1c399371df244cd5af7f726a4b3778606ff297 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 14 Oct 2022 13:12:41 +0200 Subject: [PATCH 212/788] Ruby: Add more data-flow tests for captured variables --- .../dataflow/global/Flow.expected | 192 ++++++++++++++++-- .../global/TypeTrackingInlineTest.expected | 13 +- .../dataflow/global/captured_variables.rb | 166 ++++++++++++++- 3 files changed, 345 insertions(+), 26 deletions(-) diff --git a/ruby/ql/test/library-tests/dataflow/global/Flow.expected b/ruby/ql/test/library-tests/dataflow/global/Flow.expected index 85daf1fbf61..52325901597 100644 --- a/ruby/ql/test/library-tests/dataflow/global/Flow.expected +++ b/ruby/ql/test/library-tests/dataflow/global/Flow.expected @@ -1,11 +1,52 @@ testFailures edges -| captured_variables.rb:1:24:1:24 | x | captured_variables.rb:2:20:2:20 | x | -| captured_variables.rb:5:20:5:30 | call to source | captured_variables.rb:1:24:1:24 | x | -| captured_variables.rb:21:33:21:33 | x | captured_variables.rb:23:14:23:14 | x | -| captured_variables.rb:27:29:27:39 | call to source | captured_variables.rb:21:33:21:33 | x | -| captured_variables.rb:32:31:32:31 | x | captured_variables.rb:34:14:34:14 | x | -| captured_variables.rb:38:27:38:37 | call to source | captured_variables.rb:32:31:32:31 | x | +| captured_variables.rb:9:24:9:24 | x | captured_variables.rb:10:20:10:20 | x | +| captured_variables.rb:13:20:13:29 | call to taint | captured_variables.rb:9:24:9:24 | x | +| captured_variables.rb:29:33:29:33 | x | captured_variables.rb:31:14:31:14 | x | +| captured_variables.rb:35:29:35:38 | call to taint | captured_variables.rb:29:33:29:33 | x | +| captured_variables.rb:40:31:40:31 | x | captured_variables.rb:42:14:42:14 | x | +| captured_variables.rb:46:27:46:36 | call to taint | captured_variables.rb:40:31:40:31 | x | +| captured_variables.rb:48:1:48:1 | x | captured_variables.rb:50:10:50:10 | x | +| captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:48:1:48:1 | x | +| captured_variables.rb:51:5:51:5 | x | captured_variables.rb:54:6:54:6 | x | +| captured_variables.rb:51:9:51:16 | call to taint | captured_variables.rb:51:5:51:5 | x | +| captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:18:58:18 | x | +| captured_variables.rb:58:18:58:18 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | +| captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:16:61:21 | self [@field] | +| captured_variables.rb:61:16:61:21 | @field | captured_variables.rb:61:9:61:21 | return | +| captured_variables.rb:61:16:61:21 | self [@field] | captured_variables.rb:61:16:61:21 | @field | +| captured_variables.rb:66:1:66:3 | [post] foo [@field] | captured_variables.rb:72:6:72:8 | foo [@field] | +| captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:57:19:57:19 | x | +| captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:66:1:66:3 | [post] foo [@field] | +| captured_variables.rb:66:15:66:22 | call to taint | instance_variables.rb:10:19:10:19 | x | +| captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | +| captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:72:6:72:18 | call to get_field | +| captured_variables.rb:72:6:72:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | +| captured_variables.rb:85:1:85:1 | y | captured_variables.rb:87:10:87:10 | y | +| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:85:1:85:1 | y | +| captured_variables.rb:88:5:88:5 | y | captured_variables.rb:87:10:87:10 | y | +| captured_variables.rb:88:5:88:5 | y | captured_variables.rb:91:6:91:6 | y | +| captured_variables.rb:88:9:88:16 | call to taint | captured_variables.rb:88:5:88:5 | y | +| captured_variables.rb:100:21:100:21 | x | captured_variables.rb:101:11:101:11 | x | +| captured_variables.rb:101:11:101:11 | x | captured_variables.rb:104:31:104:31 | x | +| captured_variables.rb:104:17:104:24 | call to taint | captured_variables.rb:100:21:100:21 | x | +| captured_variables.rb:104:31:104:31 | x | captured_variables.rb:105:10:105:10 | x | +| captured_variables.rb:109:5:109:5 | x | captured_variables.rb:112:18:112:18 | x | +| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:109:5:109:5 | x | +| captured_variables.rb:113:13:113:13 | x | captured_variables.rb:112:18:112:18 | x | +| captured_variables.rb:113:13:113:13 | x | captured_variables.rb:118:10:118:10 | x | +| captured_variables.rb:113:17:113:25 | call to taint | captured_variables.rb:113:13:113:13 | x | +| captured_variables.rb:160:9:160:10 | [post] self [@x] | captured_variables.rb:174:1:174:24 | call to new [@x] | +| captured_variables.rb:160:14:160:22 | call to taint | captured_variables.rb:160:9:160:10 | [post] self [@x] | +| captured_variables.rb:167:5:171:7 | self in baz [@x] | captured_variables.rb:169:18:169:19 | self [@x] | +| captured_variables.rb:169:18:169:19 | self [@x] | captured_variables.rb:169:18:169:19 | @x | +| captured_variables.rb:174:1:174:24 | call to new [@x] | captured_variables.rb:167:5:171:7 | self in baz [@x] | +| captured_variables.rb:178:9:178:10 | [post] self [@x] | captured_variables.rb:193:1:193:1 | [post] c [@x] | +| captured_variables.rb:178:14:178:22 | call to taint | captured_variables.rb:178:9:178:10 | [post] self [@x] | +| captured_variables.rb:185:5:189:7 | self in baz [@x] | captured_variables.rb:187:18:187:19 | self [@x] | +| captured_variables.rb:187:18:187:19 | self [@x] | captured_variables.rb:187:18:187:19 | @x | +| captured_variables.rb:193:1:193:1 | [post] c [@x] | captured_variables.rb:194:1:194:1 | c [@x] | +| captured_variables.rb:194:1:194:1 | c [@x] | captured_variables.rb:185:5:189:7 | self in baz [@x] | | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x | | instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:16:14:21 | self [@field] | @@ -28,10 +69,12 @@ edges | instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:48:20:48:20 | x | | instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:33:13:33:13 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | +| instance_variables.rb:36:10:36:23 | call to new [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:36:10:36:33 | call to get_field | | instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:36:10:36:23 | call to new [@field] | +| instance_variables.rb:39:6:39:23 | call to bar [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:39:6:39:33 | call to get_field | | instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | @@ -39,11 +82,14 @@ edges | instance_variables.rb:43:9:43:17 | call to taint | instance_variables.rb:121:7:121:24 | call to new | | instance_variables.rb:48:20:48:20 | x | instance_variables.rb:49:14:49:14 | x | | instance_variables.rb:54:1:54:3 | [post] foo [@field] | instance_variables.rb:55:6:55:8 | foo [@field] | +| instance_variables.rb:54:15:54:23 | call to taint | captured_variables.rb:57:19:57:19 | x | | instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:54:1:54:3 | [post] foo [@field] | +| instance_variables.rb:55:6:55:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:55:6:55:18 | call to get_field | | instance_variables.rb:58:1:58:3 | [post] bar [@field] | instance_variables.rb:59:6:59:8 | bar [@field] | +| instance_variables.rb:58:15:58:22 | call to taint | captured_variables.rb:57:19:57:19 | x | | instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:58:1:58:3 | [post] bar [@field] | | instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | @@ -53,83 +99,150 @@ edges | instance_variables.rb:63:6:63:9 | foo1 [@field] | instance_variables.rb:63:6:63:15 | call to field | | instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | instance_variables.rb:67:6:67:9 | foo2 [@field] | | instance_variables.rb:66:14:66:22 | call to taint | instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | +| instance_variables.rb:67:6:67:9 | foo2 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:67:6:67:19 | call to get_field | | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:71:6:71:9 | foo3 [@field] | | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:83:6:83:9 | foo3 [@field] | +| instance_variables.rb:70:16:70:24 | call to taint | captured_variables.rb:57:19:57:19 | x | | instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | | instance_variables.rb:71:6:71:9 | foo3 [@field] | instance_variables.rb:71:6:71:15 | call to field | | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:79:6:79:9 | foo5 [@field] | | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:84:6:84:9 | foo5 [@field] | +| instance_variables.rb:78:18:78:26 | call to taint | captured_variables.rb:57:19:57:19 | x | | instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | +| instance_variables.rb:79:6:79:9 | foo5 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:79:6:79:19 | call to get_field | | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | instance_variables.rb:85:6:85:9 | foo6 [@field] | +| instance_variables.rb:82:32:82:40 | call to taint | captured_variables.rb:57:19:57:19 | x | | instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | +| instance_variables.rb:83:6:83:9 | foo3 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:83:6:83:19 | call to get_field | +| instance_variables.rb:84:6:84:9 | foo5 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:84:6:84:19 | call to get_field | +| instance_variables.rb:85:6:85:9 | foo6 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:85:6:85:19 | call to get_field | | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | instance_variables.rb:90:6:90:9 | foo7 [@field] | | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | instance_variables.rb:91:6:91:9 | foo8 [@field] | +| instance_variables.rb:89:45:89:53 | call to taint | captured_variables.rb:57:19:57:19 | x | | instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | | instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | +| instance_variables.rb:90:6:90:9 | foo7 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:90:6:90:19 | call to get_field | +| instance_variables.rb:91:6:91:9 | foo8 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:91:6:91:19 | call to get_field | | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | instance_variables.rb:96:6:96:9 | foo9 [@field] | | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | instance_variables.rb:97:6:97:10 | foo10 [@field] | +| instance_variables.rb:95:53:95:61 | call to taint | captured_variables.rb:57:19:57:19 | x | | instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | | instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | +| instance_variables.rb:96:6:96:9 | foo9 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:96:6:96:19 | call to get_field | +| instance_variables.rb:97:6:97:10 | foo10 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:97:6:97:20 | call to get_field | | instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | | instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | | instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | +| instance_variables.rb:100:17:100:25 | call to taint | captured_variables.rb:57:19:57:19 | x | | instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | | instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:100:5:100:5 | [post] x [@field] | | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | instance_variables.rb:105:6:105:10 | foo11 [@field] | +| instance_variables.rb:105:6:105:10 | foo11 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:105:6:105:20 | call to get_field | | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | instance_variables.rb:109:6:109:10 | foo12 [@field] | +| instance_variables.rb:109:6:109:10 | foo12 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:109:6:109:20 | call to get_field | | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | instance_variables.rb:114:6:114:10 | foo13 [@field] | +| instance_variables.rb:114:6:114:10 | foo13 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:114:6:114:20 | call to get_field | | instance_variables.rb:116:1:116:5 | foo15 [@field] | instance_variables.rb:117:6:117:10 | foo15 [@field] | | instance_variables.rb:116:9:116:26 | call to new [@field] | instance_variables.rb:116:1:116:5 | foo15 [@field] | | instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | | instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:116:9:116:26 | call to new [@field] | +| instance_variables.rb:117:6:117:10 | foo15 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:117:6:117:20 | call to get_field | | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | instance_variables.rb:120:6:120:10 | foo16 [@field] | | instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | | instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | +| instance_variables.rb:120:6:120:10 | foo16 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | | instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:120:6:120:20 | call to get_field | | instance_variables.rb:121:1:121:3 | bar | instance_variables.rb:122:6:122:8 | bar | | instance_variables.rb:121:7:121:24 | call to new | instance_variables.rb:121:1:121:3 | bar | nodes -| captured_variables.rb:1:24:1:24 | x | semmle.label | x | -| captured_variables.rb:2:20:2:20 | x | semmle.label | x | -| captured_variables.rb:5:20:5:30 | call to source | semmle.label | call to source | -| captured_variables.rb:21:33:21:33 | x | semmle.label | x | -| captured_variables.rb:23:14:23:14 | x | semmle.label | x | -| captured_variables.rb:27:29:27:39 | call to source | semmle.label | call to source | -| captured_variables.rb:32:31:32:31 | x | semmle.label | x | -| captured_variables.rb:34:14:34:14 | x | semmle.label | x | -| captured_variables.rb:38:27:38:37 | call to source | semmle.label | call to source | +| captured_variables.rb:9:24:9:24 | x | semmle.label | x | +| captured_variables.rb:10:20:10:20 | x | semmle.label | x | +| captured_variables.rb:13:20:13:29 | call to taint | semmle.label | call to taint | +| captured_variables.rb:29:33:29:33 | x | semmle.label | x | +| captured_variables.rb:31:14:31:14 | x | semmle.label | x | +| captured_variables.rb:35:29:35:38 | call to taint | semmle.label | call to taint | +| captured_variables.rb:40:31:40:31 | x | semmle.label | x | +| captured_variables.rb:42:14:42:14 | x | semmle.label | x | +| captured_variables.rb:46:27:46:36 | call to taint | semmle.label | call to taint | +| captured_variables.rb:48:1:48:1 | x | semmle.label | x | +| captured_variables.rb:48:5:48:12 | call to taint | semmle.label | call to taint | +| captured_variables.rb:50:10:50:10 | x | semmle.label | x | +| captured_variables.rb:51:5:51:5 | x | semmle.label | x | +| captured_variables.rb:51:9:51:16 | call to taint | semmle.label | call to taint | +| captured_variables.rb:54:6:54:6 | x | semmle.label | x | +| captured_variables.rb:57:19:57:19 | x | semmle.label | x | +| captured_variables.rb:58:9:58:14 | [post] self [@field] | semmle.label | [post] self [@field] | +| captured_variables.rb:58:18:58:18 | x | semmle.label | x | +| captured_variables.rb:60:5:62:7 | self in get_field [@field] | semmle.label | self in get_field [@field] | +| captured_variables.rb:61:9:61:21 | return | semmle.label | return | +| captured_variables.rb:61:16:61:21 | @field | semmle.label | @field | +| captured_variables.rb:61:16:61:21 | self [@field] | semmle.label | self [@field] | +| captured_variables.rb:66:1:66:3 | [post] foo [@field] | semmle.label | [post] foo [@field] | +| captured_variables.rb:66:15:66:22 | call to taint | semmle.label | call to taint | +| captured_variables.rb:72:6:72:8 | foo [@field] | semmle.label | foo [@field] | +| captured_variables.rb:72:6:72:18 | call to get_field | semmle.label | call to get_field | +| captured_variables.rb:85:1:85:1 | y | semmle.label | y | +| captured_variables.rb:85:5:85:12 | call to taint | semmle.label | call to taint | +| captured_variables.rb:87:10:87:10 | y | semmle.label | y | +| captured_variables.rb:88:5:88:5 | y | semmle.label | y | +| captured_variables.rb:88:9:88:16 | call to taint | semmle.label | call to taint | +| captured_variables.rb:91:6:91:6 | y | semmle.label | y | +| captured_variables.rb:100:21:100:21 | x | semmle.label | x | +| captured_variables.rb:101:11:101:11 | x | semmle.label | x | +| captured_variables.rb:104:17:104:24 | call to taint | semmle.label | call to taint | +| captured_variables.rb:104:31:104:31 | x | semmle.label | x | +| captured_variables.rb:105:10:105:10 | x | semmle.label | x | +| captured_variables.rb:109:5:109:5 | x | semmle.label | x | +| captured_variables.rb:109:9:109:17 | call to taint | semmle.label | call to taint | +| captured_variables.rb:112:18:112:18 | x | semmle.label | x | +| captured_variables.rb:113:13:113:13 | x | semmle.label | x | +| captured_variables.rb:113:17:113:25 | call to taint | semmle.label | call to taint | +| captured_variables.rb:118:10:118:10 | x | semmle.label | x | +| captured_variables.rb:160:9:160:10 | [post] self [@x] | semmle.label | [post] self [@x] | +| captured_variables.rb:160:14:160:22 | call to taint | semmle.label | call to taint | +| captured_variables.rb:167:5:171:7 | self in baz [@x] | semmle.label | self in baz [@x] | +| captured_variables.rb:169:18:169:19 | @x | semmle.label | @x | +| captured_variables.rb:169:18:169:19 | self [@x] | semmle.label | self [@x] | +| captured_variables.rb:174:1:174:24 | call to new [@x] | semmle.label | call to new [@x] | +| captured_variables.rb:178:9:178:10 | [post] self [@x] | semmle.label | [post] self [@x] | +| captured_variables.rb:178:14:178:22 | call to taint | semmle.label | call to taint | +| captured_variables.rb:185:5:189:7 | self in baz [@x] | semmle.label | self in baz [@x] | +| captured_variables.rb:187:18:187:19 | @x | semmle.label | @x | +| captured_variables.rb:187:18:187:19 | self [@x] | semmle.label | self [@x] | +| captured_variables.rb:193:1:193:1 | [post] c [@x] | semmle.label | [post] c [@x] | +| captured_variables.rb:194:1:194:1 | c [@x] | semmle.label | c [@x] | | instance_variables.rb:10:19:10:19 | x | semmle.label | x | | instance_variables.rb:11:9:11:14 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:11:18:11:18 | x | semmle.label | x | @@ -235,45 +348,88 @@ nodes | instance_variables.rb:121:7:121:24 | call to new | semmle.label | call to new | | instance_variables.rb:122:6:122:8 | bar | semmle.label | bar | subpaths +| captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | captured_variables.rb:66:1:66:3 | [post] foo [@field] | +| captured_variables.rb:66:15:66:22 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | captured_variables.rb:66:1:66:3 | [post] foo [@field] | +| captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | captured_variables.rb:72:6:72:18 | call to get_field | +| captured_variables.rb:72:6:72:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | captured_variables.rb:72:6:72:18 | call to get_field | | instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:28:9:28:25 | [post] self [@field] | | instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:33:9:33:14 | call to new [@field] | +| instance_variables.rb:36:10:36:23 | call to new [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:36:10:36:33 | call to get_field | | instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:36:10:36:33 | call to get_field | | instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:36:10:36:23 | call to new [@field] | +| instance_variables.rb:39:6:39:23 | call to bar [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:39:6:39:33 | call to get_field | | instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:39:6:39:33 | call to get_field | | instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | instance_variables.rb:39:6:39:23 | call to bar [@field] | +| instance_variables.rb:54:15:54:23 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | instance_variables.rb:54:1:54:3 | [post] foo [@field] | | instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:54:1:54:3 | [post] foo [@field] | +| instance_variables.rb:55:6:55:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:55:6:55:18 | call to get_field | | instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:55:6:55:18 | call to get_field | +| instance_variables.rb:58:15:58:22 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | instance_variables.rb:58:1:58:3 | [post] bar [@field] | | instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:58:1:58:3 | [post] bar [@field] | | instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:59:6:59:18 | call to inc_field | | instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] | instance_variables.rb:59:6:59:18 | call to inc_field | +| instance_variables.rb:67:6:67:9 | foo2 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:67:6:67:19 | call to get_field | | instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:67:6:67:19 | call to get_field | +| instance_variables.rb:70:16:70:24 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | | instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | +| instance_variables.rb:78:18:78:26 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | | instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | +| instance_variables.rb:79:6:79:9 | foo5 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:79:6:79:19 | call to get_field | | instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:79:6:79:19 | call to get_field | +| instance_variables.rb:82:32:82:40 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | | instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | +| instance_variables.rb:83:6:83:9 | foo3 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:83:6:83:19 | call to get_field | | instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:83:6:83:19 | call to get_field | +| instance_variables.rb:84:6:84:9 | foo5 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:84:6:84:19 | call to get_field | | instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:84:6:84:19 | call to get_field | +| instance_variables.rb:85:6:85:9 | foo6 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:85:6:85:19 | call to get_field | | instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:85:6:85:19 | call to get_field | +| instance_variables.rb:89:45:89:53 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | +| instance_variables.rb:89:45:89:53 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | | instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | | instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | +| instance_variables.rb:90:6:90:9 | foo7 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:90:6:90:19 | call to get_field | | instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:90:6:90:19 | call to get_field | +| instance_variables.rb:91:6:91:9 | foo8 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:91:6:91:19 | call to get_field | | instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:91:6:91:19 | call to get_field | +| instance_variables.rb:95:53:95:61 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | +| instance_variables.rb:95:53:95:61 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | | instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | | instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | +| instance_variables.rb:96:6:96:9 | foo9 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:96:6:96:19 | call to get_field | | instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:96:6:96:19 | call to get_field | +| instance_variables.rb:97:6:97:10 | foo10 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:97:6:97:20 | call to get_field | | instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:97:6:97:20 | call to get_field | +| instance_variables.rb:100:17:100:25 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | instance_variables.rb:100:5:100:5 | [post] x [@field] | | instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:100:5:100:5 | [post] x [@field] | +| instance_variables.rb:105:6:105:10 | foo11 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:105:6:105:20 | call to get_field | | instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:105:6:105:20 | call to get_field | +| instance_variables.rb:109:6:109:10 | foo12 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:109:6:109:20 | call to get_field | | instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:109:6:109:20 | call to get_field | +| instance_variables.rb:114:6:114:10 | foo13 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:114:6:114:20 | call to get_field | | instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:114:6:114:20 | call to get_field | | instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:116:9:116:26 | call to new [@field] | +| instance_variables.rb:117:6:117:10 | foo15 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:117:6:117:20 | call to get_field | | instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:117:6:117:20 | call to get_field | | instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | +| instance_variables.rb:120:6:120:10 | foo16 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:120:6:120:20 | call to get_field | | instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:120:6:120:20 | call to get_field | #select -| captured_variables.rb:2:20:2:20 | x | captured_variables.rb:5:20:5:30 | call to source | captured_variables.rb:2:20:2:20 | x | $@ | captured_variables.rb:5:20:5:30 | call to source | call to source | -| captured_variables.rb:23:14:23:14 | x | captured_variables.rb:27:29:27:39 | call to source | captured_variables.rb:23:14:23:14 | x | $@ | captured_variables.rb:27:29:27:39 | call to source | call to source | -| captured_variables.rb:34:14:34:14 | x | captured_variables.rb:38:27:38:37 | call to source | captured_variables.rb:34:14:34:14 | x | $@ | captured_variables.rb:38:27:38:37 | call to source | call to source | +| captured_variables.rb:10:20:10:20 | x | captured_variables.rb:13:20:13:29 | call to taint | captured_variables.rb:10:20:10:20 | x | $@ | captured_variables.rb:13:20:13:29 | call to taint | call to taint | +| captured_variables.rb:31:14:31:14 | x | captured_variables.rb:35:29:35:38 | call to taint | captured_variables.rb:31:14:31:14 | x | $@ | captured_variables.rb:35:29:35:38 | call to taint | call to taint | +| captured_variables.rb:42:14:42:14 | x | captured_variables.rb:46:27:46:36 | call to taint | captured_variables.rb:42:14:42:14 | x | $@ | captured_variables.rb:46:27:46:36 | call to taint | call to taint | +| captured_variables.rb:50:10:50:10 | x | captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:50:10:50:10 | x | $@ | captured_variables.rb:48:5:48:12 | call to taint | call to taint | +| captured_variables.rb:54:6:54:6 | x | captured_variables.rb:51:9:51:16 | call to taint | captured_variables.rb:54:6:54:6 | x | $@ | captured_variables.rb:51:9:51:16 | call to taint | call to taint | +| captured_variables.rb:72:6:72:18 | call to get_field | captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:72:6:72:18 | call to get_field | $@ | captured_variables.rb:66:15:66:22 | call to taint | call to taint | +| captured_variables.rb:87:10:87:10 | y | captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:87:10:87:10 | y | $@ | captured_variables.rb:85:5:85:12 | call to taint | call to taint | +| captured_variables.rb:87:10:87:10 | y | captured_variables.rb:88:9:88:16 | call to taint | captured_variables.rb:87:10:87:10 | y | $@ | captured_variables.rb:88:9:88:16 | call to taint | call to taint | +| captured_variables.rb:91:6:91:6 | y | captured_variables.rb:88:9:88:16 | call to taint | captured_variables.rb:91:6:91:6 | y | $@ | captured_variables.rb:88:9:88:16 | call to taint | call to taint | +| captured_variables.rb:105:10:105:10 | x | captured_variables.rb:104:17:104:24 | call to taint | captured_variables.rb:105:10:105:10 | x | $@ | captured_variables.rb:104:17:104:24 | call to taint | call to taint | +| captured_variables.rb:112:18:112:18 | x | captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:112:18:112:18 | x | $@ | captured_variables.rb:109:9:109:17 | call to taint | call to taint | +| captured_variables.rb:112:18:112:18 | x | captured_variables.rb:113:17:113:25 | call to taint | captured_variables.rb:112:18:112:18 | x | $@ | captured_variables.rb:113:17:113:25 | call to taint | call to taint | +| captured_variables.rb:118:10:118:10 | x | captured_variables.rb:113:17:113:25 | call to taint | captured_variables.rb:118:10:118:10 | x | $@ | captured_variables.rb:113:17:113:25 | call to taint | call to taint | +| captured_variables.rb:169:18:169:19 | @x | captured_variables.rb:160:14:160:22 | call to taint | captured_variables.rb:169:18:169:19 | @x | $@ | captured_variables.rb:160:14:160:22 | call to taint | call to taint | +| captured_variables.rb:187:18:187:19 | @x | captured_variables.rb:178:14:178:22 | call to taint | captured_variables.rb:187:18:187:19 | @x | $@ | captured_variables.rb:178:14:178:22 | call to taint | call to taint | | instance_variables.rb:20:10:20:13 | @foo | instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:20:10:20:13 | @foo | $@ | instance_variables.rb:19:12:19:21 | call to taint | call to taint | | instance_variables.rb:36:10:36:33 | call to get_field | instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:36:10:36:33 | call to get_field | $@ | instance_variables.rb:36:14:36:22 | call to taint | call to taint | | instance_variables.rb:39:6:39:33 | call to get_field | instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:39:6:39:33 | call to get_field | $@ | instance_variables.rb:39:14:39:22 | call to taint | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/global/TypeTrackingInlineTest.expected b/ruby/ql/test/library-tests/dataflow/global/TypeTrackingInlineTest.expected index 8fbd6f51044..48fed82c4e9 100644 --- a/ruby/ql/test/library-tests/dataflow/global/TypeTrackingInlineTest.expected +++ b/ruby/ql/test/library-tests/dataflow/global/TypeTrackingInlineTest.expected @@ -1,7 +1,13 @@ -failures testFailures -| captured_variables.rb:9:14:9:14 | x | Fixed missing result:hasValueFlow=1.2 | -| captured_variables.rb:16:14:16:14 | x | Fixed missing result:hasValueFlow=1.3 | +| captured_variables.rb:17:14:17:14 | x | Fixed missing result:hasValueFlow=1.2 | +| captured_variables.rb:24:14:24:14 | x | Fixed missing result:hasValueFlow=1.3 | +| captured_variables.rb:50:10:50:10 | x | Fixed missing result:hasValueFlow=2 | +| captured_variables.rb:54:6:54:6 | x | Unexpected result: hasValueFlow=1 | +| captured_variables.rb:72:21:72:75 | # $ MISSING: hasValueFlow=4 $ SPURIOUS: hasValueFlow=3 | Fixed spurious result:hasValueFlow=3 | +| captured_variables.rb:91:6:91:6 | y | Unexpected result: hasValueFlow=6 | +| captured_variables.rb:95:14:95:14 | x | Fixed missing result:hasValueFlow=8 | +| captured_variables.rb:118:10:118:10 | x | Unexpected result: hasValueFlow=10 | +| captured_variables.rb:126:14:126:14 | x | Fixed missing result:hasValueFlow=12 | | instance_variables.rb:20:16:20:33 | # $ hasValueFlow=7 | Missing result:hasValueFlow=7 | | instance_variables.rb:36:36:36:54 | # $ hasValueFlow=34 | Missing result:hasValueFlow=34 | | instance_variables.rb:39:36:39:54 | # $ hasValueFlow=35 | Missing result:hasValueFlow=35 | @@ -23,3 +29,4 @@ testFailures | instance_variables.rb:114:23:114:41 | # $ hasValueFlow=28 | Missing result:hasValueFlow=28 | | instance_variables.rb:117:23:117:41 | # $ hasValueFlow=29 | Missing result:hasValueFlow=29 | | instance_variables.rb:120:23:120:41 | # $ hasValueFlow=30 | Missing result:hasValueFlow=30 | +failures diff --git a/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb b/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb index 88b5be2e7c3..2a165b3b3c1 100644 --- a/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb +++ b/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb @@ -1,22 +1,30 @@ +def taint x + x +end + +def sink x + puts "SINK: #{x}" +end + def capture_local_call x fn = -> { sink(x) } # $ hasValueFlow=1.1 fn.call end -capture_local_call source(1.1) +capture_local_call taint(1.1) def capture_escape_return1 x -> { sink(x) # $ MISSING: hasValueFlow=1.2 } end -(capture_escape_return1 source(1.2)).call +(capture_escape_return1 taint(1.2)).call def capture_escape_return2 x -> { sink(x) # $ MISSING: hasValueFlow=1.3 } end -Something.unknownMethod(capture_escape_return2 source(1.3)) +Something.unknownMethod(capture_escape_return2 taint(1.3)) def capture_escape_unknown_call x fn = -> { @@ -24,7 +32,7 @@ def capture_escape_unknown_call x } Something.unknownMethod(fn) end -capture_escape_unknown_call source(1.4) +capture_escape_unknown_call taint(1.4) def call_it fn fn.call @@ -35,4 +43,152 @@ def capture_escape_known_call x } call_it fn end -capture_escape_known_call source(1.5) +capture_escape_known_call taint(1.5) + +x = taint(1) +[1, 2, 3].each do |i| + sink x # $ hasValueFlow=1 $ MISSING: hasValueFlow=2 + x = taint(2) +end + +sink x # $ hasValueFlow=2 + +class Foo + def set_field x + @field = x + end + def get_field + return @field + end +end + +foo = Foo.new +foo.set_field(taint(3)) +[1, 2, 3].each do |i| + sink(foo.get_field) # $ MISSING: hasValueFlow=3 $ MISSING: hasValueFlow=4 + foo.set_field(taint(4)) +end + +sink(foo.get_field) # $ MISSING: hasValueFlow=4 $ SPURIOUS: hasValueFlow=3 + +foo = Foo.new +if (rand() < 0) then + foo = Foo.new +else + [1, 2, 3].each do |i| + foo.set_field(taint(5)) + end +end + +sink(foo.get_field) # $ MISSING: hasValueFlow=5 + +y = taint(6) +fn = -> { + sink(y) # $ hasValueFlow=6 $ SPURIOUS: hasValueFlow=7 + y = taint(7) +} +fn.call +sink(y) # $ hasValueFlow=7 + +def capture_arg x + -> { + sink x # $ MISSING: hasValueFlow=8 + } +end +capture_arg(taint(8)).call + +def call_block_with x + yield x +end + +call_block_with(taint(9)) do |x| + sink x # $ hasValueFlow=9 +end + +def capture_nested + x = taint(10) + middle = -> { + inner = -> { + sink x # $ hasValueFlow=10 $ SPURIOUS: hasValueFlow=11 + x = taint(11) + } + inner.call + } + middle.call + sink x # $ hasValueFlow=11 +end +capture_nested + +def lambdas + x = 123 + + fn1 = -> { + sink x # $ MISSING: hasValueFlow=12 + } + + fn3 = -> { + y = taint(12) + + fn2 = -> { + x = y + } + + fn2 + } + + fn4 = fn3.call() + fn4.call() + fn1.call() +end + +lambdas + +module CaptureModuleSelf + @x = taint(13) + + def self.foo + yield + end + + self.foo do + sink @x # $ MISSING: hasValueFlow=13 + end +end + +class CaptureInstanceSelf1 + def initialize + @x = taint(14) + end + + def bar + yield + end + + def baz + self.bar do + sink @x # $ hasValueFlow=14 + end + end +end + +CaptureInstanceSelf1.new.baz + +class CaptureInstanceSelf2 + def foo + @x = taint(15) + end + + def bar + yield + end + + def baz + self.bar do + sink @x # $ hasValueFlow=15 + end + end +end + +c = CaptureInstanceSelf2.new +c.foo +c.baz From 48e2dcfa35286c096ffdc957c0fbf2027140fce5 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 10 Aug 2023 20:16:50 +0200 Subject: [PATCH 213/788] Ruby: Reimplement flow through captured variables using field flow --- .../DataFlowConsistency.ql | 2 - .../VariablesConsistency.ql | 1 + ruby/ql/lib/codeql/ruby/ast/Call.qll | 11 + .../lib/codeql/ruby/controlflow/CfgNodes.qll | 5 +- .../lib/codeql/ruby/dataflow/FlowSummary.qll | 65 +++ .../dataflow/internal/DataFlowDispatch.qll | 47 +- .../internal/DataFlowImplSpecific.qll | 3 + .../dataflow/internal/DataFlowPrivate.qll | 465 +++++++++++++----- .../ruby/dataflow/internal/DataFlowPublic.qll | 25 +- .../internal/FlowSummaryImplSpecific.qll | 13 +- .../codeql/ruby/dataflow/internal/SsaImpl.qll | 91 +--- .../ql/lib/codeql/ruby/frameworks/Sinatra.qll | 36 +- .../data/internal/ApiGraphModelsSpecific.qll | 2 +- .../ruby/typetracking/TypeTrackerSpecific.qll | 4 +- .../dataflow/array-flow/array-flow.expected | 8 +- .../call-sensitivity.expected | 4 +- .../dataflow/global/Flow.expected | 195 +++++++- .../global/TypeTrackingInlineTest.expected | 14 +- .../dataflow/global/captured_variables.rb | 24 +- .../dataflow/summaries/Summaries.expected | 113 ++--- .../frameworks/sinatra/Sinatra.expected | 88 ++-- .../TemplateInjection.expected | 14 +- .../security/cwe-022/PathInjection.expected | 6 +- .../security/cwe-117/LogInjection.expected | 20 +- 24 files changed, 815 insertions(+), 441 deletions(-) diff --git a/ruby/ql/consistency-queries/DataFlowConsistency.ql b/ruby/ql/consistency-queries/DataFlowConsistency.ql index 6cf0fe9a282..dcab11b8dc2 100644 --- a/ruby/ql/consistency-queries/DataFlowConsistency.ql +++ b/ruby/ql/consistency-queries/DataFlowConsistency.ql @@ -11,8 +11,6 @@ private module Input implements InputSig { predicate postWithInFlowExclude(Node n) { n instanceof FlowSummaryNode } predicate argHasPostUpdateExclude(ArgumentNode n) { - n instanceof BlockArgumentNode - or n instanceof FlowSummaryNode or n instanceof SynthHashSplatArgumentNode diff --git a/ruby/ql/consistency-queries/VariablesConsistency.ql b/ruby/ql/consistency-queries/VariablesConsistency.ql index ed2183340d9..0bed61cf240 100644 --- a/ruby/ql/consistency-queries/VariablesConsistency.ql +++ b/ruby/ql/consistency-queries/VariablesConsistency.ql @@ -1,4 +1,5 @@ import codeql.ruby.ast.Variable +import codeql.ruby.dataflow.internal.DataFlowPrivate::VariableCapture::Flow::ConsistencyChecks query predicate ambiguousVariable(VariableAccess access, Variable variable) { access.getVariable() = variable and diff --git a/ruby/ql/lib/codeql/ruby/ast/Call.qll b/ruby/ql/lib/codeql/ruby/ast/Call.qll index 8bc5f6ff877..de72b766624 100644 --- a/ruby/ql/lib/codeql/ruby/ast/Call.qll +++ b/ruby/ql/lib/codeql/ruby/ast/Call.qll @@ -117,6 +117,17 @@ class MethodCall extends Call instanceof MethodCallImpl { */ final Block getBlock() { result = super.getBlockImpl() } + /** + * Gets the block argument of this method call, if any. + * ```rb + * foo(&block) + * ``` + */ + final BlockArgument getBlockArgument() { result = this.getAnArgument() } + + /** Holds if this method call has a block or block argument. */ + final predicate hasBlock() { exists(this.getBlock()) or exists(this.getBlockArgument()) } + /** * Holds if the safe navigation operator (`&.`) is used in this call. * ```rb diff --git a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll index 1a8c6bcc607..e37493910b2 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll @@ -202,7 +202,10 @@ module ExprNodes { override LhsExpr getExpr() { result = super.getExpr() } /** Gets a variable used in (or introduced by) this LHS. */ - Variable getAVariable() { result = e.(VariableAccess).getVariable() } + deprecated Variable getAVariable() { result = e.(VariableAccess).getVariable() } + + /** Gets the variable used in (or introduced by) this LHS. */ + Variable getVariable() { result = e.(VariableAccess).getVariable() } } private class AssignExprChildMapping extends ExprChildMapping, AssignExpr { diff --git a/ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll b/ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll index 20185c112a4..6a788f8d75c 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll @@ -1,6 +1,8 @@ /** Provides classes and predicates for defining flow summaries. */ import codeql.ruby.AST +private import codeql.ruby.CFG +private import codeql.ruby.typetracking.TypeTracker import codeql.ruby.DataFlow private import internal.FlowSummaryImpl as Impl private import internal.DataFlowDispatch @@ -158,3 +160,66 @@ abstract class SimpleSummarizedCallable extends SummarizedCallable { } class RequiredSummaryComponentStack = Impl::Public::RequiredSummaryComponentStack; + +/** + * Provides a set of special flow summaries to ensure that callbacks passed into + * library methods will be passed as `self` arguments into themeselves. That is, + * we are assuming that callbacks passed into library methods will be called, which is + * needed for flow through captured variables. + */ +private module LibraryCallbackSummaries { + private predicate libraryCall(CfgNodes::ExprNodes::CallCfgNode call) { + not exists(getTarget(call)) + } + + private class LibraryBlockMethod extends SummarizedCallable { + LibraryBlockMethod() { this = "" } + + final override MethodCall getACall() { + libraryCall(result.getAControlFlowNode()) and + result.hasBlock() + } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[block]" and + output = "Argument[block].Parameter[lambda-self]" and + preservesValue = true + } + } + + private DataFlow::LocalSourceNode trackLambdaCreation(TypeTracker t) { + t.start() and + lambdaCreation(result, TLambdaCallKind(), _) + or + exists(TypeTracker t2 | result = trackLambdaCreation(t2).track(t2, t)) and + not result instanceof DataFlow::SelfParameterNode + } + + private predicate libraryCallHasLambdaArg(CfgNodes::ExprNodes::CallCfgNode call, int i) { + exists(CfgNodes::ExprCfgNode arg | + arg = call.getArgument(i) and + arg = trackLambdaCreation(TypeTracker::end()).getALocalUse().asExpr() and + libraryCall(call) and + not arg instanceof CfgNodes::ExprNodes::BlockArgumentCfgNode + ) + } + + private class LibraryLambdaMethod extends SummarizedCallable { + private int i; + + LibraryLambdaMethod() { + this = "" and + i in [0 .. 10] + } + + final override MethodCall getACall() { + libraryCallHasLambdaArg(result.getAControlFlowNode(), i) + } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[" + i + "]" and + output = "Argument[" + i + "].Parameter[lambda-self]" and + preservesValue = true + } + } +} diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll index b2517bc31f6..5f1337f7a5c 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll @@ -21,8 +21,7 @@ private class SelfLocalSourceNode extends DataFlow::LocalSourceNode { SelfLocalSourceNode() { self = this.(SelfParameterNodeImpl).getSelfVariable() or - self = this.(SsaSelfDefinitionNode).getVariable() and - not LocalFlow::localFlowSsaParamInput(_, this) + self = this.(SsaSelfDefinitionNode).getVariable() } /** Gets the `self` variable. */ @@ -424,6 +423,7 @@ private module Cached { cached newtype TArgumentPosition = TSelfArgumentPosition() or + TLambdaSelfArgumentPosition() or TBlockArgumentPosition() or TPositionalArgumentPosition(int pos) { exists(Call c | exists(c.getArgument(pos))) @@ -446,6 +446,7 @@ private module Cached { cached newtype TParameterPosition = TSelfParameterPosition() or + TLambdaSelfParameterPosition() or TBlockParameterPosition() or TPositionalParameterPosition(int pos) { pos = any(Parameter p).getPosition() @@ -941,20 +942,24 @@ private module TrackSingletonMethodOnInstanceInput implements CallGraphConstruct private predicate paramReturnFlow( DataFlow::Node nodeFrom, DataFlow::PostUpdateNode nodeTo, StepSummary summary ) { - exists(RelevantCall call, DataFlow::Node arg, DataFlow::ParameterNode p, Expr nodeFromPreExpr | + exists( + RelevantCall call, DataFlow::Node arg, DataFlow::ParameterNode p, + CfgNodes::ExprCfgNode nodeFromPreExpr + | TypeTrackerSpecific::callStep(call, arg, p) and nodeTo.getPreUpdateNode() = arg and summary.toString() = "return" and ( - nodeFromPreExpr = nodeFrom.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr().getExpr() + nodeFromPreExpr = nodeFrom.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr() or - nodeFromPreExpr = nodeFrom.asExpr().getExpr() and - singletonMethodOnInstance(_, _, nodeFromPreExpr) + nodeFromPreExpr = nodeFrom.asExpr() and + singletonMethodOnInstance(_, _, nodeFromPreExpr.getExpr()) ) | - nodeFromPreExpr = p.getParameter().(NamedParameter).getVariable().getAnAccess() + nodeFromPreExpr = + LocalFlow::getParameterDefNode(p.getParameter()).getDefinitionExt().getARead() or - nodeFromPreExpr = p.(SelfParameterNodeImpl).getSelfVariable().getAnAccess() + nodeFromPreExpr = p.(SelfParameterNodeImpl).getSelfDefinition().getARead() ) } @@ -1276,6 +1281,9 @@ class ParameterPosition extends TParameterPosition { /** Holds if this position represents a `self` parameter. */ predicate isSelf() { this = TSelfParameterPosition() } + /** Holds if this position represents a reference to a lambda itself. Only used for tracking flow through captured variables. */ + predicate isLambdaSelf() { this = TLambdaSelfParameterPosition() } + /** Holds if this position represents a block parameter. */ predicate isBlock() { this = TBlockParameterPosition() } @@ -1313,6 +1321,8 @@ class ParameterPosition extends TParameterPosition { string toString() { this.isSelf() and result = "self" or + this.isLambdaSelf() and result = "lambda self" + or this.isBlock() and result = "block" or exists(int pos | this.isPositional(pos) and result = "position " + pos) @@ -1342,6 +1352,9 @@ class ArgumentPosition extends TArgumentPosition { /** Holds if this position represents a `self` argument. */ predicate isSelf() { this = TSelfArgumentPosition() } + /** Holds if this position represents a lambda `self` argument. Only used for tracking flow through captured variables. */ + predicate isLambdaSelf() { this = TLambdaSelfArgumentPosition() } + /** Holds if this position represents a block argument. */ predicate isBlock() { this = TBlockArgumentPosition() } @@ -1374,6 +1387,8 @@ class ArgumentPosition extends TArgumentPosition { string toString() { this.isSelf() and result = "self" or + this.isLambdaSelf() and result = "lambda self" + or this.isBlock() and result = "block" or exists(int pos | this.isPositional(pos) and result = "position " + pos) @@ -1393,16 +1408,24 @@ class ArgumentPosition extends TArgumentPosition { } pragma[nomagic] -private predicate parameterPositionIsNotSelf(ParameterPosition ppos) { not ppos.isSelf() } +private predicate parameterPositionIsNotSelf(ParameterPosition ppos) { + not ppos.isSelf() and + not ppos.isLambdaSelf() +} pragma[nomagic] -private predicate argumentPositionIsNotSelf(ArgumentPosition apos) { not apos.isSelf() } +private predicate argumentPositionIsNotSelf(ArgumentPosition apos) { + not apos.isSelf() and + not apos.isLambdaSelf() +} /** Holds if arguments at position `apos` match parameters at position `ppos`. */ pragma[nomagic] predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos.isSelf() and apos.isSelf() or + ppos.isLambdaSelf() and apos.isLambdaSelf() + or ppos.isBlock() and apos.isBlock() or exists(int pos | ppos.isPositional(pos) and apos.isPositional(pos)) @@ -1441,8 +1464,6 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { * This is a temporary hook to support technical debt in the Go language; do not use. */ pragma[inline] -predicate golangSpecificParamArgFilter( - DataFlowCall call, DataFlow::ParameterNode p, ArgumentNode arg -) { +predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNodeImpl p, ArgumentNode arg) { any() } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll index 7ee656da807..abe0366c513 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll @@ -17,6 +17,9 @@ module RubyDataFlow implements InputSig { import Private import Public + // includes `LambdaSelfParameterNode`, which is not part of the public API + class ParameterNode = Private::ParameterNodeImpl; + predicate isParameterNode(ParameterNode p, DataFlowCallable c, ParameterPosition pos) { Private::isParameterNode(p, c, pos) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 03fc2566fe5..fa1467aa25c 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -83,13 +83,13 @@ module LocalFlow { def instanceof Ssa::PhiNode or def instanceof SsaImpl::PhiReadNode - //TODO: or def instanceof LocalFlow::UncertainExplicitSsaDefinition } } /** * Holds if `nodeFrom` is a node for SSA definition `def`, which can reach `next`. */ + pragma[nomagic] private predicate localFlowSsaInputFromDef( SsaDefinitionExtNode nodeFrom, SsaImpl::DefinitionExt def, SsaInputDefinitionExtNode next ) { @@ -102,20 +102,23 @@ module LocalFlow { } /** - * Holds if `exprFrom` is a last read of SSA definition `def`, which + * Holds if `nodeFrom` is a last read of SSA definition `def`, which * can reach `next`. */ + pragma[nomagic] predicate localFlowSsaInputFromRead( - CfgNodes::ExprCfgNode exprFrom, SsaImpl::DefinitionExt def, SsaInputDefinitionExtNode next + SsaImpl::DefinitionExt def, Node nodeFrom, SsaInputDefinitionExtNode next ) { - exists(BasicBlock bb, int i | + exists(BasicBlock bb, int i, CfgNodes::ExprCfgNode exprFrom | SsaImpl::lastRefBeforeRedefExt(def, bb, i, next.getDefinitionExt()) and exprFrom = bb.getNode(i) and - exprFrom.getExpr() instanceof VariableReadAccess + exprFrom.getExpr() instanceof VariableReadAccess and + exprFrom = [nodeFrom.asExpr(), nodeFrom.(PostUpdateNode).getPreUpdateNode().asExpr()] ) } /** Gets the SSA definition node corresponding to parameter `p`. */ + pragma[nomagic] SsaDefinitionExtNode getParameterDefNode(NamedParameter p) { exists(BasicBlock bb, int i | bb.getNode(i).getAstNode() = p.getDefiningAccess() and @@ -123,18 +126,14 @@ module LocalFlow { ) } - /** Gets the SSA definition node corresponding to the implicit `self` parameter for `m`. */ - private SsaDefinitionExtNode getSelfParameterDefNode(MethodBase m) { - result.getDefinitionExt().(Ssa::SelfDefinition).getSourceVariable().getDeclaringScope() = m - } - /** * Holds if `nodeFrom` is a parameter node, and `nodeTo` is a corresponding SSA node. */ - predicate localFlowSsaParamInput(Node nodeFrom, SsaDefinitionExtNode nodeTo) { - nodeTo = getParameterDefNode(nodeFrom.(ParameterNodeImpl).getParameter()) + pragma[nomagic] + predicate localFlowSsaParamInput(ParameterNodeImpl nodeFrom, SsaDefinitionExtNode nodeTo) { + nodeTo = getParameterDefNode(nodeFrom.getParameter()) or - nodeTo = getSelfParameterDefNode(nodeFrom.(SelfParameterNodeImpl).getMethod()) + nodeTo.getDefinitionExt() = nodeFrom.(SelfParameterNodeImpl).getSelfDefinition() } /** @@ -147,39 +146,30 @@ module LocalFlow { /** * Holds if there is a local flow step from `nodeFrom` to `nodeTo` involving - * some SSA definition. + * SSA definition `def`. */ - private predicate localSsaFlowStep(Node nodeFrom, Node nodeTo) { - exists(SsaImpl::DefinitionExt def | - // Flow from assignment into SSA definition - def.(Ssa::WriteDefinition).assigns(nodeFrom.asExpr()) and - nodeTo.(SsaDefinitionExtNode).getDefinitionExt() = def - or - // Flow from SSA definition to first read - def = nodeFrom.(SsaDefinitionExtNode).getDefinitionExt() and - firstReadExt(def, nodeTo.asExpr()) - or - // Flow from read to next read - localSsaFlowStepUseUse(def, nodeFrom.(PostUpdateNode).getPreUpdateNode(), nodeTo) - or - // Flow into phi (read) SSA definition node from def - localFlowSsaInputFromDef(nodeFrom, def, nodeTo) - ) + pragma[nomagic] + predicate localSsaFlowStep(SsaImpl::DefinitionExt def, Node nodeFrom, Node nodeTo) { + // Flow from assignment into SSA definition + def.(Ssa::WriteDefinition).assigns(nodeFrom.asExpr()) and + nodeTo.(SsaDefinitionExtNode).getDefinitionExt() = def or - localFlowSsaParamInput(nodeFrom, nodeTo) - // TODO - // or - // // Flow into uncertain SSA definition - // exists(LocalFlow::UncertainExplicitSsaDefinition uncertain | - // localFlowSsaInput(nodeFrom, def, uncertain) and - // uncertain = nodeTo.(SsaDefinitionNode).getDefinition() and - // def = uncertain.getPriorDefinition() - // ) + // Flow from SSA definition to first read + def = nodeFrom.(SsaDefinitionExtNode).getDefinitionExt() and + firstReadExt(def, nodeTo.asExpr()) + or + // Flow from post-update read to next read + localSsaFlowStepUseUse(def, nodeFrom.(PostUpdateNode).getPreUpdateNode(), nodeTo) + or + // Flow into phi (read) SSA definition node from def + localFlowSsaInputFromDef(nodeFrom, def, nodeTo) + or + localFlowSsaParamInput(nodeFrom, nodeTo) and + def = nodeTo.(SsaDefinitionExtNode).getDefinitionExt() } + pragma[nomagic] predicate localFlowStepCommon(Node nodeFrom, Node nodeTo) { - localSsaFlowStep(nodeFrom, nodeTo) - or nodeFrom.asExpr() = nodeTo.asExpr().(CfgNodes::ExprNodes::BlockArgumentCfgNode).getValue() or nodeFrom.asExpr() = getALastEvalNode(nodeTo.asExpr()) @@ -218,7 +208,7 @@ module LocalFlow { } } -/** An argument of a call (including qualifier arguments, excluding block arguments). */ +/** An argument of a call (including qualifier arguments and block arguments). */ private class Argument extends CfgNodes::ExprCfgNode { private CfgNodes::ExprNodes::CallCfgNode call; private ArgumentPosition arg; @@ -239,7 +229,11 @@ private class Argument extends CfgNodes::ExprCfgNode { arg.isKeyword(p.getKey().getConstantValue().getSymbol()) ) or - this = call.getReceiver() and arg.isSelf() + this = call.getReceiver() and + arg.isSelf() + or + lambdaCallExpr(call, this) and + arg.isLambdaSelf() or this = call.getAnArgument() and this.getExpr() instanceof HashSplatExpr and @@ -250,6 +244,13 @@ private class Argument extends CfgNodes::ExprCfgNode { this.getExpr() instanceof SplatExpr and arg.isSplat(pos) ) + or + this = call.getAnArgument() and + this.getExpr() instanceof BlockArgument and + arg.isBlock() + or + this = call.getBlock() and + arg.isBlock() } /** Holds if this expression is the `i`th argument of `c`. */ @@ -266,16 +267,127 @@ predicate isNonConstantExpr(CfgNodes::ExprCfgNode n) { /** Provides logic related to captured variables. */ module VariableCapture { - class CapturedVariable extends LocalVariable { - CapturedVariable() { this.isCaptured() } + private import codeql.dataflow.VariableCapture as Shared - CfgScope getCfgScope() { - exists(Scope scope | scope = this.getDeclaringScope() | - result = scope - or - result = scope.(ModuleBase).getCfgScope() - ) + private predicate closureFlowStep(CfgNodes::ExprCfgNode e1, CfgNodes::ExprCfgNode e2) { + e1 = getALastEvalNode(e2) + or + exists(Ssa::Definition def | + def.getARead() = e2 and + def.getAnUltimateDefinition().(Ssa::WriteDefinition).assigns(e1) + ) + } + + private module CaptureInput implements Shared::InputSig { + private import ruby as R + private import codeql.ruby.controlflow.ControlFlowGraph + private import codeql.ruby.controlflow.BasicBlocks as BasicBlocks + + class Location = R::Location; + + class BasicBlock extends BasicBlocks::BasicBlock { + Callable getEnclosingCallable() { result = this.getScope() } } + + BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { + result = bb.getImmediateDominator() + } + + BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() } + + class CapturedVariable extends LocalVariable { + CapturedVariable() { this.isCaptured() } + + Callable getCallable() { + exists(Scope scope | scope = this.getDeclaringScope() | + result = scope + or + result = scope.(ModuleBase).getCfgScope() + ) + } + } + + abstract class CapturedParameter extends CapturedVariable { + abstract ParameterNode getParameterNode(); + } + + private class CapturedNamedParameter extends CapturedParameter { + private NamedParameter p; + + CapturedNamedParameter() { this = p.getVariable() } + + override ParameterNode getParameterNode() { result.asParameter() = p } + } + + private class CapturedSelfParameter extends CapturedParameter, SelfVariable { + override SelfParameterNode getParameterNode() { this = result.getSelfVariable() } + } + + class Expr extends CfgNodes::ExprCfgNode { + predicate hasCfgNode(BasicBlock bb, int i) { this = bb.getNode(i) } + } + + class VariableWrite extends Expr, CfgNodes::ExprNodes::AssignExprCfgNode { + CapturedVariable v; + + VariableWrite() { v = this.getLhs().getVariable() } + + CapturedVariable getVariable() { result = v } + } + + class VariableRead extends Expr instanceof CfgNodes::ExprNodes::LocalVariableReadAccessCfgNode { + CapturedVariable v; + + VariableRead() { v = super.getVariable() } + + CapturedVariable getVariable() { result = v } + } + + class ClosureExpr extends Expr { + Callable c; + + ClosureExpr() { lambdaCreationExpr(this, _, c) } + + predicate hasBody(Callable body) { body = c } + + predicate hasAliasedAccess(Expr f) { closureFlowStep+(this, f) and not closureFlowStep(f, _) } + } + + class Callable extends CfgScope { + predicate isConstructor() { none() } + } + } + + class CapturedVariable = CaptureInput::CapturedVariable; + + class ClosureExpr = CaptureInput::ClosureExpr; + + module Flow = Shared::Flow; + + private Flow::ClosureNode asClosureNode(Node n) { + result = n.(CaptureNode).getSynthesizedCaptureNode() + or + result.(Flow::ExprNode).getExpr() = n.asExpr() + or + result.(Flow::VariableWriteSourceNode).getVariableWrite().getRhs() = n.asExpr() + or + result.(Flow::ExprPostUpdateNode).getExpr() = n.(PostUpdateNode).getPreUpdateNode().asExpr() + or + result.(Flow::ParameterNode).getParameter().getParameterNode() = n + or + result.(Flow::ThisParameterNode).getCallable() = n.(LambdaSelfParameterNode).getCallable() + } + + predicate storeStep(Node node1, Content::CapturedVariableContent c, Node node2) { + Flow::storeStep(asClosureNode(node1), c.getVariable(), asClosureNode(node2)) + } + + predicate readStep(Node node1, Content::CapturedVariableContent c, Node node2) { + Flow::readStep(asClosureNode(node1), c.getVariable(), asClosureNode(node2)) + } + + predicate valueStep(Node node1, Node node2) { + Flow::localFlowStep(asClosureNode(node1), asClosureNode(node2)) } class CapturedSsaDefinitionExt extends SsaImpl::DefinitionExt { @@ -331,6 +443,7 @@ private module Cached { p instanceof SplatParameter } or TSelfParameterNode(MethodBase m) or + TLambdaSelfParameterNode(Callable c) { lambdaCreationExpr(_, _, c) } or TBlockParameterNode(MethodBase m) or TSynthHashSplatParameterNode(DataFlowCallable c) { isParameterNode(_, c, any(ParameterPosition p | p.isKeyword(_))) @@ -366,7 +479,8 @@ private module Cached { TSynthSplatArgumentNode(CfgNodes::ExprNodes::CallCfgNode c) { exists(Argument arg, ArgumentPosition pos | pos.isPositional(_) | arg.isArgumentOf(c, pos)) and not exists(Argument arg, ArgumentPosition pos | pos.isSplat(_) | arg.isArgumentOf(c, pos)) - } + } or + TCaptureNode(VariableCapture::Flow::SynthesizedCaptureNode cn) class TSourceParameterNode = TNormalParameterNode or TBlockParameterNode or TSelfParameterNode or @@ -386,21 +500,23 @@ private module Cached { predicate simpleLocalFlowStep(Node nodeFrom, Node nodeTo) { LocalFlow::localFlowStepCommon(nodeFrom, nodeTo) or - LocalFlow::localSsaFlowStepUseUse(_, nodeFrom, nodeTo) and - not FlowSummaryImpl::Private::Steps::prohibitsUseUseFlow(nodeFrom, _) - or - // Flow into phi node from read - exists(CfgNodes::ExprCfgNode exprFrom | - LocalFlow::localFlowSsaInputFromRead(exprFrom, _, nodeTo) + exists(SsaImpl::DefinitionExt def | + // captured variables are handled by the shared `VariableCapture` library + not def instanceof VariableCapture::CapturedSsaDefinitionExt | - exprFrom = nodeFrom.asExpr() and + LocalFlow::localSsaFlowStep(def, nodeFrom, nodeTo) + or + LocalFlow::localSsaFlowStepUseUse(def, nodeFrom, nodeTo) and not FlowSummaryImpl::Private::Steps::prohibitsUseUseFlow(nodeFrom, _) or - exprFrom = nodeFrom.(PostUpdateNode).getPreUpdateNode().asExpr() + LocalFlow::localFlowSsaInputFromRead(def, nodeFrom, nodeTo) and + not FlowSummaryImpl::Private::Steps::prohibitsUseUseFlow(nodeFrom, _) ) or FlowSummaryImpl::Private::Steps::summaryLocalStep(nodeFrom.(FlowSummaryNode).getSummaryNode(), nodeTo.(FlowSummaryNode).getSummaryNode(), true) + or + VariableCapture::valueStep(nodeFrom, nodeTo) } /** This is the local flow predicate that is exposed. */ @@ -408,6 +524,8 @@ private module Cached { predicate localFlowStepImpl(Node nodeFrom, Node nodeTo) { LocalFlow::localFlowStepCommon(nodeFrom, nodeTo) or + LocalFlow::localSsaFlowStep(_, nodeFrom, nodeTo) + or LocalFlow::localSsaFlowStepUseUse(_, nodeFrom, nodeTo) or // Simple flow through library code is included in the exposed local @@ -422,13 +540,11 @@ private module Cached { predicate localFlowStepTypeTracker(Node nodeFrom, Node nodeTo) { LocalFlow::localFlowStepCommon(nodeFrom, nodeTo) or + LocalFlow::localSsaFlowStep(_, nodeFrom, nodeTo) + or LocalFlow::localSsaFlowStepUseUse(_, nodeFrom, nodeTo) or - // Flow into phi node from read - exists(CfgNodes::ExprCfgNode exprFrom | - LocalFlow::localFlowSsaInputFromRead(exprFrom, _, nodeTo) and - exprFrom = [nodeFrom.asExpr(), nodeFrom.(PostUpdateNode).getPreUpdateNode().asExpr()] - ) + LocalFlow::localFlowSsaInputFromRead(_, nodeFrom, nodeTo) or VariableCapture::flowInsensitiveStep(nodeFrom, nodeTo) } @@ -527,6 +643,7 @@ private module Cached { name = [input, output].regexpFind("(?<=(^|\\.)Field\\[)[^\\]]+(?=\\])", _, _).trim() ) } or + TCapturedVariableContent(VariableCapture::CapturedVariable v) or // Only used by type-tracking TAttributeName(string name) { name = any(SetterMethodCall c).getTargetName() } @@ -549,7 +666,8 @@ private module Cached { TUnknownElementContentApprox() or TKnownIntegerElementContentApprox() or TKnownElementContentApprox(string approx) { approx = approxKnownElementIndex(_) } or - TNonElementContentApprox(Content c) { not c instanceof Content::ElementContent } + TNonElementContentApprox(Content c) { not c instanceof Content::ElementContent } or + TCapturedVariableContentApprox(VariableCapture::CapturedVariable v) } class TElementContent = TKnownElementContent or TUnknownElementContent; @@ -577,6 +695,10 @@ predicate nodeIsHidden(Node n) { n instanceof SynthSplatArgParameterNode or n instanceof SynthSplatParameterElementNode + or + n instanceof LambdaSelfParameterNode + or + n instanceof CaptureNode } /** An SSA definition, viewed as a node in a data flow graph. */ @@ -624,7 +746,7 @@ class CapturedVariableNode extends NodeImpl, TCapturedVariableNode { /** Gets the captured variable represented by this node. */ VariableCapture::CapturedVariable getVariable() { result = variable } - override CfgScope getCfgScope() { result = variable.getCfgScope() } + override CfgScope getCfgScope() { result = variable.getCallable() } override Location getLocationImpl() { result = variable.getLocation() } @@ -653,6 +775,24 @@ class ReturningStatementNode extends NodeImpl, TReturningNode { override string toStringImpl() { result = n.toString() } } +/** + * A synthesized data flow node representing a closure object that tracks + * captured variables. + */ +class CaptureNode extends NodeImpl, TCaptureNode { + private VariableCapture::Flow::SynthesizedCaptureNode cn; + + CaptureNode() { this = TCaptureNode(cn) } + + VariableCapture::Flow::SynthesizedCaptureNode getSynthesizedCaptureNode() { result = cn } + + override CfgScope getCfgScope() { result = cn.getEnclosingCallable() } + + override Location getLocationImpl() { result = cn.getLocation() } + + override string toStringImpl() { result = cn.toString() } +} + private module ParameterNodes { abstract class ParameterNodeImpl extends NodeImpl { abstract Parameter getParameter(); @@ -722,6 +862,11 @@ private module ParameterNodes { final MethodBase getMethod() { result = method } + /** Gets the corresponding SSA `self` definition, if any. */ + Ssa::SelfDefinition getSelfDefinition() { + result.getSourceVariable().getDeclaringScope() = method + } + /** Gets the underlying `self` variable. */ final SelfVariable getSelfVariable() { result.getDeclaringScope() = method } @@ -735,14 +880,43 @@ private module ParameterNodes { override Location getLocationImpl() { result = method.getLocation() } - override string toStringImpl() { result = "self in " + method.toString() } + override string toStringImpl() { result = "self in " + method } + } + + /** + * The value of a lambda itself at function entry, viewed as a node in a data + * flow graph. + * + * This is used for tracking flow through captured variables, and we use a + * separate node and parameter/argument positions in order to distinguish + * "lambda self" from "normal self", as lambdas may also access outer `self` + * variables (through variable capture). + */ + class LambdaSelfParameterNode extends ParameterNodeImpl, TLambdaSelfParameterNode { + private Callable callable; + + LambdaSelfParameterNode() { this = TLambdaSelfParameterNode(callable) } + + final Callable getCallable() { result = callable } + + override Parameter getParameter() { none() } + + override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { + callable = c.asCallable() and pos.isLambdaSelf() + } + + override CfgScope getCfgScope() { result = callable } + + override Location getLocationImpl() { result = callable.getLocation() } + + override string toStringImpl() { result = "lambda self in " + callable } } /** * The value of a block parameter at function entry, viewed as a node in a data * flow graph. */ - class BlockParameterNode extends ParameterNodeImpl, TBlockParameterNode { + class BlockParameterNode extends ParameterNodeImpl, ArgumentNode, TBlockParameterNode { private MethodBase method; BlockParameterNode() { this = TBlockParameterNode(method) } @@ -757,6 +931,20 @@ private module ParameterNodes { c.asCallable() = method and pos.isBlock() } + CfgNodes::ExprNodes::CallCfgNode getAYieldCall() { + this.getMethod() = result.getExpr().(YieldCall).getEnclosingMethod() + } + + // needed for variable capture flow + override predicate sourceArgumentOf(CfgNodes::ExprNodes::CallCfgNode call, ArgumentPosition pos) { + call = this.getAYieldCall() and + pos.isLambdaSelf() + } + + override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { + this.sourceArgumentOf(call.asCall(), pos) + } + override CfgScope getCfgScope() { result = method } override Location getLocationImpl() { @@ -1027,36 +1215,6 @@ private module ArgumentNodes { } } - /** A data-flow node that represents the `self` argument of a call. */ - class SelfArgumentNode extends ExplicitArgumentNode { - SelfArgumentNode() { arg.isArgumentOf(_, any(ArgumentPosition pos | pos.isSelf())) } - } - - /** A data-flow node that represents a block argument. */ - class BlockArgumentNode extends ArgumentNode { - BlockArgumentNode() { - this.asExpr().getExpr() instanceof BlockArgument or - exists(CfgNodes::ExprNodes::CallCfgNode c | c.getBlock() = this.asExpr()) - } - - override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { - this.sourceArgumentOf(call.asCall(), pos) - } - - override predicate sourceArgumentOf(CfgNodes::ExprNodes::CallCfgNode call, ArgumentPosition pos) { - pos.isBlock() and - ( - this.asExpr() = call.getBlock() - or - exists(CfgNodes::ExprCfgNode arg | - arg = call.getAnArgument() and - this.asExpr() = arg and - arg.getExpr() instanceof BlockArgument - ) - ) - } - } - private class SummaryArgumentNode extends FlowSummaryNode, ArgumentNode { private DataFlowCall call_; private ArgumentPosition pos_; @@ -1335,7 +1493,7 @@ private module OutNodes { import OutNodes -predicate jumpStepTypeTracker(Node pred, Node succ) { +predicate jumpStep(Node pred, Node succ) { succ.asExpr().getExpr().(ConstantReadAccess).getValue() = pred.asExpr().getExpr() or FlowSummaryImpl::Private::Steps::summaryJumpStep(pred.(FlowSummaryNode).getSummaryNode(), @@ -1344,16 +1502,6 @@ predicate jumpStepTypeTracker(Node pred, Node succ) { any(AdditionalJumpStep s).step(pred, succ) } -predicate jumpStep(Node pred, Node succ) { - jumpStepTypeTracker(pred, succ) - or - SsaImpl::captureFlowIn(_, pred.(SsaDefinitionExtNode).getDefinitionExt(), - succ.(SsaDefinitionExtNode).getDefinitionExt()) - or - SsaImpl::captureFlowOut(_, pred.(SsaDefinitionExtNode).getDefinitionExt(), - succ.(SsaDefinitionExtNode).getDefinitionExt()) -} - private ContentSet getKeywordContent(string name) { exists(ConstantValue::ConstantSymbolValue key | result.isSingleton(TKnownElementContent(key)) and @@ -1439,6 +1587,9 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { ) or storeStepCommon(node1, c, node2) + or + VariableCapture::storeStep(node1, any(Content::CapturedVariableContent v | c.isSingleton(v)), + node2) } /** @@ -1487,6 +1638,8 @@ predicate readStep(Node node1, ContentSet c, Node node2) { c = getPositionalContent(e.getReadPosition()) ) or + VariableCapture::readStep(node1, any(Content::CapturedVariableContent v | c.isSingleton(v)), node2) + or readStepCommon(node1, c, node2) } @@ -1521,27 +1674,60 @@ predicate expectsContent(Node n, ContentSet c) { } private newtype TDataFlowType = - TTodoDataFlowType() or - TTodoDataFlowType2() // Add a dummy value to prevent bad functionality-induced joins arising from a type of size 1. + TLambdaDataFlowType(Callable c) { c = any(LambdaSelfParameterNode n).getCallable() } or + TUnknownDataFlowType() class DataFlowType extends TDataFlowType { string toString() { result = "" } } -predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { none() } +predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { + t1 = TLambdaDataFlowType(_) and + t2 = TUnknownDataFlowType() +} + +private predicate mustHaveLambdaType(CfgNodes::ExprCfgNode e, Callable c) { + exists(VariableCapture::ClosureExpr ce | ce.hasBody(c) | + e = ce or + ce.hasAliasedAccess(e) + ) +} /** Gets the type of `n` used for type pruning. */ -DataFlowType getNodeType(Node n) { result = TTodoDataFlowType() and exists(n) } +DataFlowType getNodeType(Node n) { + result = TLambdaDataFlowType(n.(LambdaSelfParameterNode).getCallable()) + or + exists(Callable c | + mustHaveLambdaType(n.asExpr(), c) and + result = TLambdaDataFlowType(c) + ) + or + not n instanceof LambdaSelfParameterNode and + not mustHaveLambdaType(n.asExpr(), _) and + result = TUnknownDataFlowType() +} /** Gets a string representation of a `DataFlowType`. */ string ppReprType(DataFlowType t) { none() } +pragma[inline] +private predicate compatibleTypesNonSymRefl(DataFlowType t1, DataFlowType t2) { + t1 = TLambdaDataFlowType(_) and + t2 = TUnknownDataFlowType() +} + /** * Holds if `t1` and `t2` are compatible, that is, whether data can flow from * a node of type `t1` to a node of type `t2`. */ pragma[inline] -predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { any() } +predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { + t1 = t2 + or + compatibleTypesNonSymRefl(t1, t2) + or + compatibleTypesNonSymRefl(t2, t1) +} abstract class PostUpdateNodeImpl extends Node { /** Gets the node before the state update. */ @@ -1583,6 +1769,17 @@ private module PostUpdateNodes { override Node getPreUpdateNode() { result = pre } } + + private class CapturePostUpdateNode extends PostUpdateNodeImpl, CaptureNode { + private CaptureNode pre; + + CapturePostUpdateNode() { + VariableCapture::Flow::capturePostUpdateNode(this.getSynthesizedCaptureNode(), + pre.getSynthesizedCaptureNode()) + } + + override Node getPreUpdateNode() { result = pre } + } } private import PostUpdateNodes @@ -1623,22 +1820,27 @@ newtype LambdaCallKind = TLambdaCallKind() /** Holds if `creation` is an expression that creates a lambda of kind `kind` for `c`. */ -predicate lambdaCreation(Node creation, LambdaCallKind kind, DataFlowCallable c) { +private predicate lambdaCreationExpr(CfgNodes::ExprCfgNode creation, LambdaCallKind kind, Callable c) { kind = TYieldCallKind() and - creation.asExpr().getExpr() = c.asCallable().(Block) + creation.getExpr() = c.(Block) or kind = TLambdaCallKind() and ( - creation.asExpr().getExpr() = c.asCallable().(Lambda) + creation.getExpr() = c.(Lambda) or - creation.asExpr() = + creation = any(CfgNodes::ExprNodes::MethodCallCfgNode mc | - c.asCallable() = mc.getBlock().getExpr() and + c = mc.getBlock().getExpr() and isProcCreationCall(mc.getExpr()) ) ) } +/** Holds if `creation` is an expression that creates a lambda of kind `kind` for `c`. */ +predicate lambdaCreation(Node creation, LambdaCallKind kind, DataFlowCallable c) { + lambdaCreationExpr(creation.asExpr(), kind, c.asCallable()) +} + /** Holds if `call` is a call to `lambda`, `proc`, or `Proc.new` */ pragma[nomagic] private predicate isProcCreationCall(MethodCall call) { @@ -1648,20 +1850,24 @@ private predicate isProcCreationCall(MethodCall call) { call.getReceiver().(ConstantReadAccess).getAQualifiedName() = "Proc" } +/** Holds if `mc` is a call to `receiver.call`. */ +private predicate lambdaCallExpr( + CfgNodes::ExprNodes::MethodCallCfgNode mc, CfgNodes::ExprCfgNode receiver +) { + receiver = mc.getReceiver() and + mc.getExpr().getMethodName() = "call" +} + /** * Holds if `call` is a from-source lambda call of kind `kind` where `receiver` * is the lambda expression. */ predicate lambdaSourceCall(CfgNodes::ExprNodes::CallCfgNode call, LambdaCallKind kind, Node receiver) { kind = TYieldCallKind() and - receiver.(BlockParameterNode).getMethod() = call.getExpr().(YieldCall).getEnclosingMethod() + call = receiver.(BlockParameterNode).getAYieldCall() or kind = TLambdaCallKind() and - call = - any(CfgNodes::ExprNodes::MethodCallCfgNode mc | - receiver.asExpr() = mc.getReceiver() and - mc.getExpr().getMethodName() = "call" - ) + lambdaCallExpr(call, receiver.asExpr()) } /** @@ -1687,8 +1893,11 @@ predicate additionalLambdaFlowStep(Node nodeFrom, Node nodeTo, boolean preserves * One example would be to allow flow like `p.foo = p.bar;`, which is disallowed * by default as a heuristic. */ -predicate allowParameterReturnInSelf(ParameterNode p) { +predicate allowParameterReturnInSelf(ParameterNodeImpl p) { FlowSummaryImpl::Private::summaryAllowParameterReturnInSelf(p) + or + VariableCapture::Flow::heuristicAllowInstanceParameterReturnInSelf(p.(SelfParameterNode) + .getCallable()) } /** An approximated `Content`. */ @@ -1765,4 +1974,4 @@ class AdditionalJumpStep extends Unit { * * Argument `arg` is part of a path from a source to a sink, and `p` is the target parameter. */ -int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNode p) { none() } +int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNodeImpl p) { none() } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll index 269087b7a07..6548c4ebe47 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll @@ -568,6 +568,18 @@ module Content { /** Gets `AttributeNameContent` of the given name. */ AttributeNameContent getAttributeName(string name) { result.getName() = name } + + /** A captured variable. */ + class CapturedVariableContent extends Content, TCapturedVariableContent { + private LocalVariable v; + + CapturedVariableContent() { this = TCapturedVariableContent(v) } + + /** Gets the captured variable. */ + LocalVariable getVariable() { result = v } + + override string toString() { result = "captured " + v } + } } /** @@ -765,14 +777,14 @@ module BarrierGuard { * This is restricted to calls where the variable is captured inside a * block. */ - private Ssa::Definition getAMaybeGuardedCapturedDef() { + private Ssa::CapturedEntryDefinition getAMaybeGuardedCapturedDef() { exists( CfgNodes::ExprCfgNode g, boolean branch, CfgNodes::ExprCfgNode testedNode, Ssa::Definition def, CfgNodes::ExprNodes::CallCfgNode call | def.getARead() = testedNode and guardChecks(g, testedNode, branch) and - SsaImpl::captureFlowIn(call, def, result) and + def.getSourceVariable() = result.getSourceVariable() and guardControlsBlock(g, call.getBasicBlock(), branch) and result.getBasicBlock().getScope() = call.getExpr().(MethodCall).getBlock() ) @@ -830,14 +842,14 @@ abstract deprecated class BarrierGuard extends CfgNodes::ExprCfgNode { * This is restricted to calls where the variable is captured inside a * block. */ - private Ssa::Definition getAMaybeGuardedCapturedDef() { + private Ssa::CapturedEntryDefinition getAMaybeGuardedCapturedDef() { exists( boolean branch, CfgNodes::ExprCfgNode testedNode, Ssa::Definition def, CfgNodes::ExprNodes::CallCfgNode call | def.getARead() = testedNode and this.checks(testedNode, branch) and - SsaImpl::captureFlowIn(call, def, result) and + def.getSourceVariable() = result.getSourceVariable() and this.controlsBlock(call.getBasicBlock(), branch) and result.getBasicBlock().getScope() = call.getExpr().(MethodCall).getBlock() ) @@ -1208,7 +1220,10 @@ class LhsExprNode extends ExprNode { LhsExpr asLhsExprAstNode() { result = lhsExprCfgNode.getExpr() } /** Gets a variable used in (or introduced by) this LHS. */ - Variable getAVariable() { result = lhsExprCfgNode.getAVariable() } + deprecated Variable getAVariable() { result = lhsExprCfgNode.getAVariable() } + + /** Gets the variable used in (or introduced by) this LHS. */ + Variable getVariable() { result = lhsExprCfgNode.getVariable() } } /** diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll index 07a68984820..c0098ec2f21 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll @@ -24,7 +24,7 @@ class NeutralCallableBase = string; DataFlowCallable inject(SummarizedCallable c) { result.asLibraryCallable() = c } /** Gets the parameter position representing a callback itself, if any. */ -ArgumentPosition callbackSelfParameterPosition() { none() } // disables implicit summary flow to `self` for callbacks +ArgumentPosition callbackSelfParameterPosition() { result.isLambdaSelf() } /** Gets the synthesized data-flow call for `receiver`. */ SummaryCall summaryDataFlowCall(SummaryNode receiver) { receiver = result.getReceiver() } @@ -215,6 +215,9 @@ string getParameterPosition(ParameterPosition pos) { pos.isSelf() and result = "self" or + pos.isLambdaSelf() and + result = "lambda-self" + or pos.isBlock() and result = "block" or @@ -232,6 +235,8 @@ string getParameterPosition(ParameterPosition pos) { string getArgumentPosition(ArgumentPosition pos) { pos.isSelf() and result = "self" or + pos.isLambdaSelf() and result = "lambda-self" + or pos.isBlock() and result = "block" or exists(int i | @@ -372,6 +377,9 @@ ArgumentPosition parseParamBody(string s) { s = "self" and result.isSelf() or + s = "lambda-self" and + result.isLambdaSelf() + or s = "block" and result.isBlock() or @@ -402,6 +410,9 @@ ParameterPosition parseArgBody(string s) { s = "self" and result.isSelf() or + s = "lambda-self" and + result.isLambdaSelf() + or s = "block" and result.isBlock() or diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll index 9502f04a7eb..771c0f0bc39 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll @@ -363,97 +363,8 @@ private module Cached { ) } - pragma[noinline] - private predicate defReachesCallReadInOuterScope( - Definition def, CallCfgNode call, LocalVariable v, Cfg::CfgScope scope - ) { - exists(Cfg::BasicBlock bb, int i | - Impl::ssaDefReachesRead(v, def, bb, i) and - capturedCallRead(call, bb, i, v) and - scope.getOuterCfgScope() = bb.getScope() - ) - } - - pragma[noinline] - private predicate hasCapturedEntryWrite(Definition entry, LocalVariable v, Cfg::CfgScope scope) { - exists(Cfg::BasicBlock bb, int i | - capturedEntryWrite(bb, i, v) and - entry.definesAt(v, bb, i) and - bb.getScope().getOuterCfgScope*() = scope - ) - } - - /** - * Holds if there is flow for a captured variable from the enclosing scope into a block. - * ```rb - * foo = 0 - * bar { - * puts foo - * } - * ``` - */ - cached - predicate captureFlowIn(CallCfgNode call, Definition def, Definition entry) { - exists(LocalVariable v, Cfg::CfgScope scope | - defReachesCallReadInOuterScope(def, call, v, scope) and - hasCapturedEntryWrite(entry, v, scope) - | - // If the read happens inside a block, we restrict to the call that - // contains the block - not scope instanceof Block - or - scope = call.getExpr().(MethodCall).getBlock() - ) - } - private import codeql.ruby.dataflow.SSA - pragma[noinline] - private predicate defReachesExitReadInInnerScope( - Definition def, LocalVariable v, Cfg::CfgScope scope - ) { - exists(Cfg::BasicBlock bb, int i | - Impl::ssaDefReachesRead(v, def, bb, i) and - capturedExitRead(bb, i, v) and - scope = bb.getScope().getOuterCfgScope*() - ) - } - - pragma[noinline] - private predicate hasCapturedExitRead( - Definition exit, CallCfgNode call, LocalVariable v, Cfg::CfgScope scope - ) { - exists(Cfg::BasicBlock bb, int i | - capturedCallWrite(call, bb, i, v) and - exit.definesAt(v, bb, i) and - bb.getScope() = scope.getOuterCfgScope() - ) - } - - /** - * Holds if there is outgoing flow for a captured variable that is updated in a block. - * ```rb - * foo = 0 - * bar { - * foo += 10 - * } - * puts foo - * ``` - */ - cached - predicate captureFlowOut(CallCfgNode call, Definition def, Definition exit) { - exists(LocalVariable v, Cfg::CfgScope scope | - defReachesExitReadInInnerScope(def, v, scope) and - hasCapturedExitRead(exit, call, v, _) - | - // If the read happens inside a block, we restrict to the call that - // contains the block - not scope instanceof Block - or - scope = call.getExpr().(MethodCall).getBlock() - ) - } - cached Definition phiHasInputFromBlock(PhiNode phi, Cfg::BasicBlock bb) { Impl::phiHasInputFromBlock(phi, result, bb) @@ -570,6 +481,8 @@ import Cached * Only intended for internal use. */ class DefinitionExt extends Impl::DefinitionExt { + VariableReadAccessCfgNode getARead() { result = getARead(this) } + override string toString() { result = this.(Ssa::Definition).toString() } /** Gets the location of this definition. */ diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Sinatra.qll b/ruby/ql/lib/codeql/ruby/frameworks/Sinatra.qll index ef9a9392527..29bcb32a444 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Sinatra.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Sinatra.qll @@ -273,39 +273,19 @@ module Sinatra { filter.getApp() = route.getApp() and // the filter applies to all routes not filter.hasPattern() and - selfPostUpdate(pred, filter.getApp(), filter.getBody().asExpr().getExpr()) and - blockCapturedSelfParameterNode(succ, route.getBody().asExpr().getExpr()) + blockPostUpdate(pred, filter.getBody()) and + blockSelfParameterNode(succ, route.getBody().asExpr().getExpr()) ) } } - /** - * Holds if `n` is a post-update node for the `self` parameter of `app` in block `b`. - * - * In this example, `n` is the post-update node for `@foo = 1`. - * ```rb - * class MyApp < Sinatra::Base - * before do - * @foo = 1 - * end - * end - * ``` - */ - private predicate selfPostUpdate(DataFlow::PostUpdateNode n, App app, Block b) { - n.getPreUpdateNode().asExpr().getExpr() = - any(SelfVariableAccess self | - pragma[only_bind_into](b) = self.getEnclosingCallable() and - self.getVariable().getDeclaringScope() = app.getADeclaration() - ) + /** Holds if `n` is a post-update node for the block `b`. */ + private predicate blockPostUpdate(DataFlow::PostUpdateNode n, DataFlow::BlockNode b) { + n.getPreUpdateNode() = b } - /** - * Holds if `n` is a node representing the `self` parameter captured by block `b`. - */ - private predicate blockCapturedSelfParameterNode(DataFlow::Node n, Block b) { - exists(Ssa::CapturedSelfDefinition d | - n.(DataFlowPrivate::SsaDefinitionExtNode).getDefinitionExt() = d and - d.getBasicBlock().getScope() = b - ) + /** Holds if `n` is a `self` parameter belonging to block `b`. */ + private predicate blockSelfParameterNode(DataFlowPrivate::LambdaSelfParameterNode n, Block b) { + n.getCallable() = b } } diff --git a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsSpecific.qll b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsSpecific.qll index 7247409612d..eec603ad78b 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsSpecific.qll @@ -243,7 +243,7 @@ predicate isExtraValidTokenArgumentInIdentifyingAccessPath(string name, string a or name = ["Argument", "Parameter"] and ( - argument = ["self", "block", "any", "any-named"] + argument = ["self", "lambda-self", "block", "any", "any-named"] or argument.regexpMatch("\\w+:") // keyword argument ) diff --git a/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll index da621de5edb..7a19210739a 100644 --- a/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll @@ -6,7 +6,6 @@ private import codeql.ruby.dataflow.internal.DataFlowImplCommon as DataFlowImplC private import codeql.ruby.dataflow.internal.DataFlowPublic as DataFlowPublic private import codeql.ruby.dataflow.internal.DataFlowPrivate as DataFlowPrivate private import codeql.ruby.dataflow.internal.DataFlowDispatch as DataFlowDispatch -private import codeql.ruby.dataflow.internal.SsaImpl as SsaImpl private import codeql.ruby.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl private import codeql.ruby.dataflow.internal.FlowSummaryImplSpecific as FlowSummaryImplSpecific private import codeql.ruby.dataflow.internal.AccessPathSyntax @@ -74,7 +73,7 @@ predicate simpleLocalFlowStep = DataFlowPrivate::localFlowStepTypeTracker/2; /** * Holds if data can flow from `node1` to `node2` in a way that discards call contexts. */ -predicate jumpStep = DataFlowPrivate::jumpStepTypeTracker/2; +predicate jumpStep = DataFlowPrivate::jumpStep/2; /** Holds if there is direct flow from `param` to a return. */ pragma[nomagic] @@ -180,6 +179,7 @@ private predicate argumentPositionMatch( ) { exists(DataFlowDispatch::ArgumentPosition apos | arg.sourceArgumentOf(call, apos) and + not apos.isLambdaSelf() and DataFlowDispatch::parameterMatch(ppos, apos) ) } diff --git a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected index c52399b3914..0408a194c99 100644 --- a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected @@ -450,10 +450,10 @@ edges | array_flow.rb:403:5:403:5 | a [element 2] | array_flow.rb:404:18:404:18 | a [element 2] | | array_flow.rb:403:16:403:25 | call to source | array_flow.rb:403:5:403:5 | a [element 2] | | array_flow.rb:404:5:404:5 | b [element 2] | array_flow.rb:408:10:408:10 | b [element 2] | -| array_flow.rb:404:9:406:7 | __synth__0__1 | array_flow.rb:404:13:404:13 | x | -| array_flow.rb:404:13:404:13 | x | array_flow.rb:405:14:405:14 | x | -| array_flow.rb:404:13:404:13 | x | array_flow.rb:407:10:407:10 | x | +| array_flow.rb:404:9:406:7 | [post] { ... } [captured x] | array_flow.rb:407:10:407:10 | x | +| array_flow.rb:404:9:406:7 | __synth__0__1 | array_flow.rb:405:14:405:14 | x | | array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:5:404:5 | b [element 2] | +| array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:9:406:7 | [post] { ... } [captured x] | | array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:9:406:7 | __synth__0__1 | | array_flow.rb:408:10:408:10 | b [element 2] | array_flow.rb:408:10:408:13 | ...[...] | | array_flow.rb:412:5:412:5 | a [element 2] | array_flow.rb:413:5:413:5 | a [element 2] | @@ -2609,8 +2609,8 @@ nodes | array_flow.rb:403:5:403:5 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:403:16:403:25 | call to source | semmle.label | call to source | | array_flow.rb:404:5:404:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:404:9:406:7 | [post] { ... } [captured x] | semmle.label | [post] { ... } [captured x] | | array_flow.rb:404:9:406:7 | __synth__0__1 | semmle.label | __synth__0__1 | -| array_flow.rb:404:13:404:13 | x | semmle.label | x | | array_flow.rb:404:18:404:18 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:405:14:405:14 | x | semmle.label | x | | array_flow.rb:407:10:407:10 | x | semmle.label | x | diff --git a/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected index 4563c900177..a81205d462b 100644 --- a/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected +++ b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected @@ -32,7 +32,8 @@ edges | call_sensitivity.rb:66:20:66:20 | x | call_sensitivity.rb:67:24:67:24 | x | | call_sensitivity.rb:67:24:67:24 | x | call_sensitivity.rb:62:18:62:18 | y | | call_sensitivity.rb:70:30:70:30 | x | call_sensitivity.rb:71:10:71:10 | x | -| call_sensitivity.rb:74:18:74:18 | y | call_sensitivity.rb:76:17:76:17 | y | +| call_sensitivity.rb:74:18:74:18 | y | call_sensitivity.rb:75:20:77:7 | do ... end [captured y] | +| call_sensitivity.rb:75:20:77:7 | do ... end [captured y] | call_sensitivity.rb:76:17:76:17 | y | | call_sensitivity.rb:76:17:76:17 | y | call_sensitivity.rb:50:15:50:15 | x | | call_sensitivity.rb:80:15:80:15 | x | call_sensitivity.rb:81:18:81:18 | x | | call_sensitivity.rb:81:18:81:18 | x | call_sensitivity.rb:50:15:50:15 | x | @@ -121,6 +122,7 @@ nodes | call_sensitivity.rb:70:30:70:30 | x | semmle.label | x | | call_sensitivity.rb:71:10:71:10 | x | semmle.label | x | | call_sensitivity.rb:74:18:74:18 | y | semmle.label | y | +| call_sensitivity.rb:75:20:77:7 | do ... end [captured y] | semmle.label | do ... end [captured y] | | call_sensitivity.rb:76:17:76:17 | y | semmle.label | y | | call_sensitivity.rb:80:15:80:15 | x | semmle.label | x | | call_sensitivity.rb:81:18:81:18 | x | semmle.label | x | diff --git a/ruby/ql/test/library-tests/dataflow/global/Flow.expected b/ruby/ql/test/library-tests/dataflow/global/Flow.expected index 52325901597..5c240c152d5 100644 --- a/ruby/ql/test/library-tests/dataflow/global/Flow.expected +++ b/ruby/ql/test/library-tests/dataflow/global/Flow.expected @@ -1,49 +1,115 @@ testFailures edges -| captured_variables.rb:9:24:9:24 | x | captured_variables.rb:10:20:10:20 | x | +| captured_variables.rb:9:24:9:24 | x | captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | +| captured_variables.rb:9:24:9:24 | x | captured_variables.rb:11:5:11:6 | fn [captured x] | +| captured_variables.rb:10:5:10:6 | fn [captured x] | captured_variables.rb:11:5:11:6 | fn [captured x] | +| captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | captured_variables.rb:10:5:10:6 | fn [captured x] | +| captured_variables.rb:11:5:11:6 | fn [captured x] | captured_variables.rb:10:20:10:20 | x | | captured_variables.rb:13:20:13:29 | call to taint | captured_variables.rb:9:24:9:24 | x | -| captured_variables.rb:29:33:29:33 | x | captured_variables.rb:31:14:31:14 | x | +| captured_variables.rb:15:28:15:28 | x | captured_variables.rb:16:5:18:5 | -> { ... } [captured x] | +| captured_variables.rb:20:1:20:35 | ( ... ) [captured x] | captured_variables.rb:17:14:17:14 | x | +| captured_variables.rb:20:2:20:34 | call to capture_escape_return1 [captured x] | captured_variables.rb:20:1:20:35 | ( ... ) [captured x] | +| captured_variables.rb:20:25:20:34 | call to taint | captured_variables.rb:15:28:15:28 | x | +| captured_variables.rb:20:25:20:34 | call to taint | captured_variables.rb:20:2:20:34 | call to capture_escape_return1 [captured x] | +| captured_variables.rb:22:28:22:28 | x | captured_variables.rb:23:5:25:5 | -> { ... } [captured x] | +| captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | captured_variables.rb:24:14:24:14 | x | +| captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:22:28:22:28 | x | +| captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | +| captured_variables.rb:29:33:29:33 | x | captured_variables.rb:30:10:32:5 | -> { ... } [captured x] | +| captured_variables.rb:29:33:29:33 | x | captured_variables.rb:33:29:33:30 | fn [captured x] | +| captured_variables.rb:30:5:30:6 | fn [captured x] | captured_variables.rb:33:29:33:30 | fn [captured x] | +| captured_variables.rb:30:10:32:5 | -> { ... } [captured x] | captured_variables.rb:30:5:30:6 | fn [captured x] | +| captured_variables.rb:33:29:33:30 | fn [captured x] | captured_variables.rb:31:14:31:14 | x | | captured_variables.rb:35:29:35:38 | call to taint | captured_variables.rb:29:33:29:33 | x | -| captured_variables.rb:40:31:40:31 | x | captured_variables.rb:42:14:42:14 | x | +| captured_variables.rb:37:13:37:14 | fn [captured x] | captured_variables.rb:38:5:38:6 | fn [captured x] | +| captured_variables.rb:38:5:38:6 | fn [captured x] | captured_variables.rb:42:14:42:14 | x | +| captured_variables.rb:40:31:40:31 | x | captured_variables.rb:41:10:43:5 | -> { ... } [captured x] | +| captured_variables.rb:40:31:40:31 | x | captured_variables.rb:44:13:44:14 | fn [captured x] | +| captured_variables.rb:41:5:41:6 | fn [captured x] | captured_variables.rb:44:13:44:14 | fn [captured x] | +| captured_variables.rb:41:10:43:5 | -> { ... } [captured x] | captured_variables.rb:41:5:41:6 | fn [captured x] | +| captured_variables.rb:44:13:44:14 | fn [captured x] | captured_variables.rb:37:13:37:14 | fn [captured x] | | captured_variables.rb:46:27:46:36 | call to taint | captured_variables.rb:40:31:40:31 | x | -| captured_variables.rb:48:1:48:1 | x | captured_variables.rb:50:10:50:10 | x | -| captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:48:1:48:1 | x | -| captured_variables.rb:51:5:51:5 | x | captured_variables.rb:54:6:54:6 | x | -| captured_variables.rb:51:9:51:16 | call to taint | captured_variables.rb:51:5:51:5 | x | +| captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:49:16:52:3 | do ... end [captured x] | +| captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:54:6:54:6 | x | +| captured_variables.rb:49:16:52:3 | [post] do ... end [captured x] | captured_variables.rb:54:6:54:6 | x | +| captured_variables.rb:49:16:52:3 | do ... end [captured x] | captured_variables.rb:50:10:50:10 | x | +| captured_variables.rb:51:9:51:16 | call to taint | captured_variables.rb:49:16:52:3 | [post] do ... end [captured x] | | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:18:58:18 | x | | captured_variables.rb:58:18:58:18 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:16:61:21 | self [@field] | | captured_variables.rb:61:16:61:21 | @field | captured_variables.rb:61:9:61:21 | return | | captured_variables.rb:61:16:61:21 | self [@field] | captured_variables.rb:61:16:61:21 | @field | +| captured_variables.rb:66:1:66:3 | [post] foo [@field] | captured_variables.rb:67:16:70:3 | do ... end [captured foo, @field] | | captured_variables.rb:66:1:66:3 | [post] foo [@field] | captured_variables.rb:72:6:72:8 | foo [@field] | | captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:57:19:57:19 | x | | captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:66:1:66:3 | [post] foo [@field] | | captured_variables.rb:66:15:66:22 | call to taint | instance_variables.rb:10:19:10:19 | x | +| captured_variables.rb:67:16:70:3 | [post] do ... end [captured foo, @field] | captured_variables.rb:72:6:72:8 | foo [@field] | +| captured_variables.rb:67:16:70:3 | do ... end [captured foo, @field] | captured_variables.rb:68:10:68:12 | foo [@field] | +| captured_variables.rb:68:10:68:12 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | +| captured_variables.rb:68:10:68:12 | foo [@field] | captured_variables.rb:68:10:68:22 | call to get_field | +| captured_variables.rb:68:10:68:12 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | +| captured_variables.rb:69:5:69:7 | [post] foo [@field] | captured_variables.rb:67:16:70:3 | [post] do ... end [captured foo, @field] | +| captured_variables.rb:69:19:69:26 | call to taint | captured_variables.rb:57:19:57:19 | x | +| captured_variables.rb:69:19:69:26 | call to taint | captured_variables.rb:69:5:69:7 | [post] foo [@field] | +| captured_variables.rb:69:19:69:26 | call to taint | instance_variables.rb:10:19:10:19 | x | | captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | | captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:72:6:72:18 | call to get_field | | captured_variables.rb:72:6:72:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| captured_variables.rb:85:1:85:1 | y | captured_variables.rb:87:10:87:10 | y | -| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:85:1:85:1 | y | -| captured_variables.rb:88:5:88:5 | y | captured_variables.rb:87:10:87:10 | y | -| captured_variables.rb:88:5:88:5 | y | captured_variables.rb:91:6:91:6 | y | -| captured_variables.rb:88:9:88:16 | call to taint | captured_variables.rb:88:5:88:5 | y | +| captured_variables.rb:78:20:80:7 | [post] do ... end [captured foo, @field] | captured_variables.rb:83:6:83:8 | foo [@field] | +| captured_variables.rb:79:9:79:11 | [post] foo [@field] | captured_variables.rb:78:20:80:7 | [post] do ... end [captured foo, @field] | +| captured_variables.rb:79:23:79:30 | call to taint | captured_variables.rb:57:19:57:19 | x | +| captured_variables.rb:79:23:79:30 | call to taint | captured_variables.rb:79:9:79:11 | [post] foo [@field] | +| captured_variables.rb:79:23:79:30 | call to taint | instance_variables.rb:10:19:10:19 | x | +| captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | +| captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:83:6:83:18 | call to get_field | +| captured_variables.rb:83:6:83:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | +| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:86:6:89:1 | -> { ... } [captured y] | +| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:90:1:90:2 | fn [captured y] | +| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:91:6:91:6 | y | +| captured_variables.rb:86:1:86:2 | fn [captured y] | captured_variables.rb:90:1:90:2 | fn [captured y] | +| captured_variables.rb:86:6:89:1 | -> { ... } [captured y] | captured_variables.rb:86:1:86:2 | fn [captured y] | +| captured_variables.rb:88:9:88:16 | call to taint | captured_variables.rb:90:1:90:2 | [post] fn [captured y] | +| captured_variables.rb:90:1:90:2 | [post] fn [captured y] | captured_variables.rb:91:6:91:6 | y | +| captured_variables.rb:90:1:90:2 | fn [captured y] | captured_variables.rb:87:10:87:10 | y | +| captured_variables.rb:93:17:93:17 | x | captured_variables.rb:94:5:96:5 | -> { ... } [captured x] | +| captured_variables.rb:98:1:98:21 | call to capture_arg [captured x] | captured_variables.rb:95:14:95:14 | x | +| captured_variables.rb:98:13:98:20 | call to taint | captured_variables.rb:93:17:93:17 | x | +| captured_variables.rb:98:13:98:20 | call to taint | captured_variables.rb:98:1:98:21 | call to capture_arg [captured x] | | captured_variables.rb:100:21:100:21 | x | captured_variables.rb:101:11:101:11 | x | | captured_variables.rb:101:11:101:11 | x | captured_variables.rb:104:31:104:31 | x | | captured_variables.rb:104:17:104:24 | call to taint | captured_variables.rb:100:21:100:21 | x | | captured_variables.rb:104:31:104:31 | x | captured_variables.rb:105:10:105:10 | x | -| captured_variables.rb:109:5:109:5 | x | captured_variables.rb:112:18:112:18 | x | -| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:109:5:109:5 | x | -| captured_variables.rb:113:13:113:13 | x | captured_variables.rb:112:18:112:18 | x | -| captured_variables.rb:113:13:113:13 | x | captured_variables.rb:118:10:118:10 | x | -| captured_variables.rb:113:17:113:25 | call to taint | captured_variables.rb:113:13:113:13 | x | +| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:110:14:116:5 | -> { ... } [captured x] | +| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:117:5:117:10 | middle [captured x] | +| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:118:10:118:10 | x | +| captured_variables.rb:110:5:110:10 | middle [captured x] | captured_variables.rb:117:5:117:10 | middle [captured x] | +| captured_variables.rb:110:14:116:5 | -> { ... } [captured x] | captured_variables.rb:110:5:110:10 | middle [captured x] | +| captured_variables.rb:111:9:111:13 | inner [captured x] | captured_variables.rb:115:9:115:13 | inner [captured x] | +| captured_variables.rb:111:17:114:9 | -> { ... } [captured x] | captured_variables.rb:111:9:111:13 | inner [captured x] | +| captured_variables.rb:113:17:113:25 | call to taint | captured_variables.rb:115:9:115:13 | [post] inner [captured x] | +| captured_variables.rb:115:9:115:13 | [post] inner [captured x] | captured_variables.rb:117:5:117:10 | [post] middle [captured x] | +| captured_variables.rb:115:9:115:13 | inner [captured x] | captured_variables.rb:112:18:112:18 | x | +| captured_variables.rb:117:5:117:10 | [post] middle [captured x] | captured_variables.rb:118:10:118:10 | x | +| captured_variables.rb:117:5:117:10 | middle [captured x] | captured_variables.rb:111:17:114:9 | -> { ... } [captured x] | +| captured_variables.rb:117:5:117:10 | middle [captured x] | captured_variables.rb:115:9:115:13 | inner [captured x] | +| captured_variables.rb:147:5:147:6 | [post] self [@x] | captured_variables.rb:153:14:155:7 | do ... end [captured self, @x] | +| captured_variables.rb:147:10:147:18 | call to taint | captured_variables.rb:147:5:147:6 | [post] self [@x] | +| captured_variables.rb:149:5:151:7 | &block [captured self, @x] | captured_variables.rb:154:14:154:15 | self [@x] | +| captured_variables.rb:153:14:155:7 | do ... end [captured self, @x] | captured_variables.rb:149:5:151:7 | &block [captured self, @x] | +| captured_variables.rb:154:14:154:15 | self [@x] | captured_variables.rb:154:14:154:15 | @x | | captured_variables.rb:160:9:160:10 | [post] self [@x] | captured_variables.rb:174:1:174:24 | call to new [@x] | | captured_variables.rb:160:14:160:22 | call to taint | captured_variables.rb:160:9:160:10 | [post] self [@x] | -| captured_variables.rb:167:5:171:7 | self in baz [@x] | captured_variables.rb:169:18:169:19 | self [@x] | +| captured_variables.rb:163:5:165:7 | &block [captured self, @x] | captured_variables.rb:169:18:169:19 | self [@x] | +| captured_variables.rb:167:5:171:7 | self in baz [@x] | captured_variables.rb:168:18:170:11 | do ... end [captured self, @x] | +| captured_variables.rb:168:18:170:11 | do ... end [captured self, @x] | captured_variables.rb:163:5:165:7 | &block [captured self, @x] | | captured_variables.rb:169:18:169:19 | self [@x] | captured_variables.rb:169:18:169:19 | @x | | captured_variables.rb:174:1:174:24 | call to new [@x] | captured_variables.rb:167:5:171:7 | self in baz [@x] | | captured_variables.rb:178:9:178:10 | [post] self [@x] | captured_variables.rb:193:1:193:1 | [post] c [@x] | | captured_variables.rb:178:14:178:22 | call to taint | captured_variables.rb:178:9:178:10 | [post] self [@x] | -| captured_variables.rb:185:5:189:7 | self in baz [@x] | captured_variables.rb:187:18:187:19 | self [@x] | +| captured_variables.rb:181:5:183:7 | &block [captured self, @x] | captured_variables.rb:187:18:187:19 | self [@x] | +| captured_variables.rb:185:5:189:7 | self in baz [@x] | captured_variables.rb:186:18:188:11 | do ... end [captured self, @x] | +| captured_variables.rb:186:18:188:11 | do ... end [captured self, @x] | captured_variables.rb:181:5:183:7 | &block [captured self, @x] | | captured_variables.rb:187:18:187:19 | self [@x] | captured_variables.rb:187:18:187:19 | @x | | captured_variables.rb:193:1:193:1 | [post] c [@x] | captured_variables.rb:194:1:194:1 | c [@x] | | captured_variables.rb:194:1:194:1 | c [@x] | captured_variables.rb:185:5:189:7 | self in baz [@x] | @@ -188,18 +254,40 @@ edges | instance_variables.rb:121:7:121:24 | call to new | instance_variables.rb:121:1:121:3 | bar | nodes | captured_variables.rb:9:24:9:24 | x | semmle.label | x | +| captured_variables.rb:10:5:10:6 | fn [captured x] | semmle.label | fn [captured x] | +| captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | | captured_variables.rb:10:20:10:20 | x | semmle.label | x | +| captured_variables.rb:11:5:11:6 | fn [captured x] | semmle.label | fn [captured x] | | captured_variables.rb:13:20:13:29 | call to taint | semmle.label | call to taint | +| captured_variables.rb:15:28:15:28 | x | semmle.label | x | +| captured_variables.rb:16:5:18:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | +| captured_variables.rb:17:14:17:14 | x | semmle.label | x | +| captured_variables.rb:20:1:20:35 | ( ... ) [captured x] | semmle.label | ( ... ) [captured x] | +| captured_variables.rb:20:2:20:34 | call to capture_escape_return1 [captured x] | semmle.label | call to capture_escape_return1 [captured x] | +| captured_variables.rb:20:25:20:34 | call to taint | semmle.label | call to taint | +| captured_variables.rb:22:28:22:28 | x | semmle.label | x | +| captured_variables.rb:23:5:25:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | +| captured_variables.rb:24:14:24:14 | x | semmle.label | x | +| captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | semmle.label | call to capture_escape_return2 [captured x] | +| captured_variables.rb:27:48:27:57 | call to taint | semmle.label | call to taint | | captured_variables.rb:29:33:29:33 | x | semmle.label | x | +| captured_variables.rb:30:5:30:6 | fn [captured x] | semmle.label | fn [captured x] | +| captured_variables.rb:30:10:32:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | | captured_variables.rb:31:14:31:14 | x | semmle.label | x | +| captured_variables.rb:33:29:33:30 | fn [captured x] | semmle.label | fn [captured x] | | captured_variables.rb:35:29:35:38 | call to taint | semmle.label | call to taint | +| captured_variables.rb:37:13:37:14 | fn [captured x] | semmle.label | fn [captured x] | +| captured_variables.rb:38:5:38:6 | fn [captured x] | semmle.label | fn [captured x] | | captured_variables.rb:40:31:40:31 | x | semmle.label | x | +| captured_variables.rb:41:5:41:6 | fn [captured x] | semmle.label | fn [captured x] | +| captured_variables.rb:41:10:43:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | | captured_variables.rb:42:14:42:14 | x | semmle.label | x | +| captured_variables.rb:44:13:44:14 | fn [captured x] | semmle.label | fn [captured x] | | captured_variables.rb:46:27:46:36 | call to taint | semmle.label | call to taint | -| captured_variables.rb:48:1:48:1 | x | semmle.label | x | | captured_variables.rb:48:5:48:12 | call to taint | semmle.label | call to taint | +| captured_variables.rb:49:16:52:3 | [post] do ... end [captured x] | semmle.label | [post] do ... end [captured x] | +| captured_variables.rb:49:16:52:3 | do ... end [captured x] | semmle.label | do ... end [captured x] | | captured_variables.rb:50:10:50:10 | x | semmle.label | x | -| captured_variables.rb:51:5:51:5 | x | semmle.label | x | | captured_variables.rb:51:9:51:16 | call to taint | semmle.label | call to taint | | captured_variables.rb:54:6:54:6 | x | semmle.label | x | | captured_variables.rb:57:19:57:19 | x | semmle.label | x | @@ -211,34 +299,68 @@ nodes | captured_variables.rb:61:16:61:21 | self [@field] | semmle.label | self [@field] | | captured_variables.rb:66:1:66:3 | [post] foo [@field] | semmle.label | [post] foo [@field] | | captured_variables.rb:66:15:66:22 | call to taint | semmle.label | call to taint | +| captured_variables.rb:67:16:70:3 | [post] do ... end [captured foo, @field] | semmle.label | [post] do ... end [captured foo, @field] | +| captured_variables.rb:67:16:70:3 | do ... end [captured foo, @field] | semmle.label | do ... end [captured foo, @field] | +| captured_variables.rb:68:10:68:12 | foo [@field] | semmle.label | foo [@field] | +| captured_variables.rb:68:10:68:22 | call to get_field | semmle.label | call to get_field | +| captured_variables.rb:69:5:69:7 | [post] foo [@field] | semmle.label | [post] foo [@field] | +| captured_variables.rb:69:19:69:26 | call to taint | semmle.label | call to taint | | captured_variables.rb:72:6:72:8 | foo [@field] | semmle.label | foo [@field] | | captured_variables.rb:72:6:72:18 | call to get_field | semmle.label | call to get_field | -| captured_variables.rb:85:1:85:1 | y | semmle.label | y | +| captured_variables.rb:78:20:80:7 | [post] do ... end [captured foo, @field] | semmle.label | [post] do ... end [captured foo, @field] | +| captured_variables.rb:79:9:79:11 | [post] foo [@field] | semmle.label | [post] foo [@field] | +| captured_variables.rb:79:23:79:30 | call to taint | semmle.label | call to taint | +| captured_variables.rb:83:6:83:8 | foo [@field] | semmle.label | foo [@field] | +| captured_variables.rb:83:6:83:18 | call to get_field | semmle.label | call to get_field | | captured_variables.rb:85:5:85:12 | call to taint | semmle.label | call to taint | +| captured_variables.rb:86:1:86:2 | fn [captured y] | semmle.label | fn [captured y] | +| captured_variables.rb:86:6:89:1 | -> { ... } [captured y] | semmle.label | -> { ... } [captured y] | | captured_variables.rb:87:10:87:10 | y | semmle.label | y | -| captured_variables.rb:88:5:88:5 | y | semmle.label | y | | captured_variables.rb:88:9:88:16 | call to taint | semmle.label | call to taint | +| captured_variables.rb:90:1:90:2 | [post] fn [captured y] | semmle.label | [post] fn [captured y] | +| captured_variables.rb:90:1:90:2 | fn [captured y] | semmle.label | fn [captured y] | | captured_variables.rb:91:6:91:6 | y | semmle.label | y | +| captured_variables.rb:93:17:93:17 | x | semmle.label | x | +| captured_variables.rb:94:5:96:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | +| captured_variables.rb:95:14:95:14 | x | semmle.label | x | +| captured_variables.rb:98:1:98:21 | call to capture_arg [captured x] | semmle.label | call to capture_arg [captured x] | +| captured_variables.rb:98:13:98:20 | call to taint | semmle.label | call to taint | | captured_variables.rb:100:21:100:21 | x | semmle.label | x | | captured_variables.rb:101:11:101:11 | x | semmle.label | x | | captured_variables.rb:104:17:104:24 | call to taint | semmle.label | call to taint | | captured_variables.rb:104:31:104:31 | x | semmle.label | x | | captured_variables.rb:105:10:105:10 | x | semmle.label | x | -| captured_variables.rb:109:5:109:5 | x | semmle.label | x | | captured_variables.rb:109:9:109:17 | call to taint | semmle.label | call to taint | +| captured_variables.rb:110:5:110:10 | middle [captured x] | semmle.label | middle [captured x] | +| captured_variables.rb:110:14:116:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | +| captured_variables.rb:111:9:111:13 | inner [captured x] | semmle.label | inner [captured x] | +| captured_variables.rb:111:17:114:9 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | | captured_variables.rb:112:18:112:18 | x | semmle.label | x | -| captured_variables.rb:113:13:113:13 | x | semmle.label | x | | captured_variables.rb:113:17:113:25 | call to taint | semmle.label | call to taint | +| captured_variables.rb:115:9:115:13 | [post] inner [captured x] | semmle.label | [post] inner [captured x] | +| captured_variables.rb:115:9:115:13 | inner [captured x] | semmle.label | inner [captured x] | +| captured_variables.rb:117:5:117:10 | [post] middle [captured x] | semmle.label | [post] middle [captured x] | +| captured_variables.rb:117:5:117:10 | middle [captured x] | semmle.label | middle [captured x] | | captured_variables.rb:118:10:118:10 | x | semmle.label | x | +| captured_variables.rb:147:5:147:6 | [post] self [@x] | semmle.label | [post] self [@x] | +| captured_variables.rb:147:10:147:18 | call to taint | semmle.label | call to taint | +| captured_variables.rb:149:5:151:7 | &block [captured self, @x] | semmle.label | &block [captured self, @x] | +| captured_variables.rb:153:14:155:7 | do ... end [captured self, @x] | semmle.label | do ... end [captured self, @x] | +| captured_variables.rb:154:14:154:15 | @x | semmle.label | @x | +| captured_variables.rb:154:14:154:15 | self [@x] | semmle.label | self [@x] | | captured_variables.rb:160:9:160:10 | [post] self [@x] | semmle.label | [post] self [@x] | | captured_variables.rb:160:14:160:22 | call to taint | semmle.label | call to taint | +| captured_variables.rb:163:5:165:7 | &block [captured self, @x] | semmle.label | &block [captured self, @x] | | captured_variables.rb:167:5:171:7 | self in baz [@x] | semmle.label | self in baz [@x] | +| captured_variables.rb:168:18:170:11 | do ... end [captured self, @x] | semmle.label | do ... end [captured self, @x] | | captured_variables.rb:169:18:169:19 | @x | semmle.label | @x | | captured_variables.rb:169:18:169:19 | self [@x] | semmle.label | self [@x] | | captured_variables.rb:174:1:174:24 | call to new [@x] | semmle.label | call to new [@x] | | captured_variables.rb:178:9:178:10 | [post] self [@x] | semmle.label | [post] self [@x] | | captured_variables.rb:178:14:178:22 | call to taint | semmle.label | call to taint | +| captured_variables.rb:181:5:183:7 | &block [captured self, @x] | semmle.label | &block [captured self, @x] | | captured_variables.rb:185:5:189:7 | self in baz [@x] | semmle.label | self in baz [@x] | +| captured_variables.rb:186:18:188:11 | do ... end [captured self, @x] | semmle.label | do ... end [captured self, @x] | | captured_variables.rb:187:18:187:19 | @x | semmle.label | @x | | captured_variables.rb:187:18:187:19 | self [@x] | semmle.label | self [@x] | | captured_variables.rb:193:1:193:1 | [post] c [@x] | semmle.label | [post] c [@x] | @@ -348,10 +470,21 @@ nodes | instance_variables.rb:121:7:121:24 | call to new | semmle.label | call to new | | instance_variables.rb:122:6:122:8 | bar | semmle.label | bar | subpaths +| captured_variables.rb:20:25:20:34 | call to taint | captured_variables.rb:15:28:15:28 | x | captured_variables.rb:16:5:18:5 | -> { ... } [captured x] | captured_variables.rb:20:2:20:34 | call to capture_escape_return1 [captured x] | +| captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:22:28:22:28 | x | captured_variables.rb:23:5:25:5 | -> { ... } [captured x] | captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | | captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | captured_variables.rb:66:1:66:3 | [post] foo [@field] | | captured_variables.rb:66:15:66:22 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | captured_variables.rb:66:1:66:3 | [post] foo [@field] | +| captured_variables.rb:68:10:68:12 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | captured_variables.rb:68:10:68:22 | call to get_field | +| captured_variables.rb:68:10:68:12 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | captured_variables.rb:68:10:68:22 | call to get_field | +| captured_variables.rb:69:19:69:26 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | captured_variables.rb:69:5:69:7 | [post] foo [@field] | +| captured_variables.rb:69:19:69:26 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | captured_variables.rb:69:5:69:7 | [post] foo [@field] | | captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | captured_variables.rb:72:6:72:18 | call to get_field | | captured_variables.rb:72:6:72:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | captured_variables.rb:72:6:72:18 | call to get_field | +| captured_variables.rb:79:23:79:30 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | captured_variables.rb:79:9:79:11 | [post] foo [@field] | +| captured_variables.rb:79:23:79:30 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | captured_variables.rb:79:9:79:11 | [post] foo [@field] | +| captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | captured_variables.rb:83:6:83:18 | call to get_field | +| captured_variables.rb:83:6:83:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | captured_variables.rb:83:6:83:18 | call to get_field | +| captured_variables.rb:98:13:98:20 | call to taint | captured_variables.rb:93:17:93:17 | x | captured_variables.rb:94:5:96:5 | -> { ... } [captured x] | captured_variables.rb:98:1:98:21 | call to capture_arg [captured x] | | instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:28:9:28:25 | [post] self [@field] | | instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:33:9:33:14 | call to new [@field] | | instance_variables.rb:36:10:36:23 | call to new [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:36:10:36:33 | call to get_field | @@ -416,18 +549,26 @@ subpaths | instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:120:6:120:20 | call to get_field | #select | captured_variables.rb:10:20:10:20 | x | captured_variables.rb:13:20:13:29 | call to taint | captured_variables.rb:10:20:10:20 | x | $@ | captured_variables.rb:13:20:13:29 | call to taint | call to taint | +| captured_variables.rb:17:14:17:14 | x | captured_variables.rb:20:25:20:34 | call to taint | captured_variables.rb:17:14:17:14 | x | $@ | captured_variables.rb:20:25:20:34 | call to taint | call to taint | +| captured_variables.rb:24:14:24:14 | x | captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:24:14:24:14 | x | $@ | captured_variables.rb:27:48:27:57 | call to taint | call to taint | | captured_variables.rb:31:14:31:14 | x | captured_variables.rb:35:29:35:38 | call to taint | captured_variables.rb:31:14:31:14 | x | $@ | captured_variables.rb:35:29:35:38 | call to taint | call to taint | | captured_variables.rb:42:14:42:14 | x | captured_variables.rb:46:27:46:36 | call to taint | captured_variables.rb:42:14:42:14 | x | $@ | captured_variables.rb:46:27:46:36 | call to taint | call to taint | | captured_variables.rb:50:10:50:10 | x | captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:50:10:50:10 | x | $@ | captured_variables.rb:48:5:48:12 | call to taint | call to taint | +| captured_variables.rb:54:6:54:6 | x | captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:54:6:54:6 | x | $@ | captured_variables.rb:48:5:48:12 | call to taint | call to taint | | captured_variables.rb:54:6:54:6 | x | captured_variables.rb:51:9:51:16 | call to taint | captured_variables.rb:54:6:54:6 | x | $@ | captured_variables.rb:51:9:51:16 | call to taint | call to taint | +| captured_variables.rb:68:10:68:22 | call to get_field | captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:68:10:68:22 | call to get_field | $@ | captured_variables.rb:66:15:66:22 | call to taint | call to taint | | captured_variables.rb:72:6:72:18 | call to get_field | captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:72:6:72:18 | call to get_field | $@ | captured_variables.rb:66:15:66:22 | call to taint | call to taint | +| captured_variables.rb:72:6:72:18 | call to get_field | captured_variables.rb:69:19:69:26 | call to taint | captured_variables.rb:72:6:72:18 | call to get_field | $@ | captured_variables.rb:69:19:69:26 | call to taint | call to taint | +| captured_variables.rb:83:6:83:18 | call to get_field | captured_variables.rb:79:23:79:30 | call to taint | captured_variables.rb:83:6:83:18 | call to get_field | $@ | captured_variables.rb:79:23:79:30 | call to taint | call to taint | | captured_variables.rb:87:10:87:10 | y | captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:87:10:87:10 | y | $@ | captured_variables.rb:85:5:85:12 | call to taint | call to taint | -| captured_variables.rb:87:10:87:10 | y | captured_variables.rb:88:9:88:16 | call to taint | captured_variables.rb:87:10:87:10 | y | $@ | captured_variables.rb:88:9:88:16 | call to taint | call to taint | +| captured_variables.rb:91:6:91:6 | y | captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:91:6:91:6 | y | $@ | captured_variables.rb:85:5:85:12 | call to taint | call to taint | | captured_variables.rb:91:6:91:6 | y | captured_variables.rb:88:9:88:16 | call to taint | captured_variables.rb:91:6:91:6 | y | $@ | captured_variables.rb:88:9:88:16 | call to taint | call to taint | +| captured_variables.rb:95:14:95:14 | x | captured_variables.rb:98:13:98:20 | call to taint | captured_variables.rb:95:14:95:14 | x | $@ | captured_variables.rb:98:13:98:20 | call to taint | call to taint | | captured_variables.rb:105:10:105:10 | x | captured_variables.rb:104:17:104:24 | call to taint | captured_variables.rb:105:10:105:10 | x | $@ | captured_variables.rb:104:17:104:24 | call to taint | call to taint | | captured_variables.rb:112:18:112:18 | x | captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:112:18:112:18 | x | $@ | captured_variables.rb:109:9:109:17 | call to taint | call to taint | -| captured_variables.rb:112:18:112:18 | x | captured_variables.rb:113:17:113:25 | call to taint | captured_variables.rb:112:18:112:18 | x | $@ | captured_variables.rb:113:17:113:25 | call to taint | call to taint | +| captured_variables.rb:118:10:118:10 | x | captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:118:10:118:10 | x | $@ | captured_variables.rb:109:9:109:17 | call to taint | call to taint | | captured_variables.rb:118:10:118:10 | x | captured_variables.rb:113:17:113:25 | call to taint | captured_variables.rb:118:10:118:10 | x | $@ | captured_variables.rb:113:17:113:25 | call to taint | call to taint | +| captured_variables.rb:154:14:154:15 | @x | captured_variables.rb:147:10:147:18 | call to taint | captured_variables.rb:154:14:154:15 | @x | $@ | captured_variables.rb:147:10:147:18 | call to taint | call to taint | | captured_variables.rb:169:18:169:19 | @x | captured_variables.rb:160:14:160:22 | call to taint | captured_variables.rb:169:18:169:19 | @x | $@ | captured_variables.rb:160:14:160:22 | call to taint | call to taint | | captured_variables.rb:187:18:187:19 | @x | captured_variables.rb:178:14:178:22 | call to taint | captured_variables.rb:187:18:187:19 | @x | $@ | captured_variables.rb:178:14:178:22 | call to taint | call to taint | | instance_variables.rb:20:10:20:13 | @foo | instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:20:10:20:13 | @foo | $@ | instance_variables.rb:19:12:19:21 | call to taint | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/global/TypeTrackingInlineTest.expected b/ruby/ql/test/library-tests/dataflow/global/TypeTrackingInlineTest.expected index 48fed82c4e9..204399860fd 100644 --- a/ruby/ql/test/library-tests/dataflow/global/TypeTrackingInlineTest.expected +++ b/ruby/ql/test/library-tests/dataflow/global/TypeTrackingInlineTest.expected @@ -1,13 +1,13 @@ testFailures -| captured_variables.rb:17:14:17:14 | x | Fixed missing result:hasValueFlow=1.2 | -| captured_variables.rb:24:14:24:14 | x | Fixed missing result:hasValueFlow=1.3 | | captured_variables.rb:50:10:50:10 | x | Fixed missing result:hasValueFlow=2 | -| captured_variables.rb:54:6:54:6 | x | Unexpected result: hasValueFlow=1 | -| captured_variables.rb:72:21:72:75 | # $ MISSING: hasValueFlow=4 $ SPURIOUS: hasValueFlow=3 | Fixed spurious result:hasValueFlow=3 | -| captured_variables.rb:91:6:91:6 | y | Unexpected result: hasValueFlow=6 | -| captured_variables.rb:95:14:95:14 | x | Fixed missing result:hasValueFlow=8 | -| captured_variables.rb:118:10:118:10 | x | Unexpected result: hasValueFlow=10 | +| captured_variables.rb:68:25:68:68 | # $ hasValueFlow=3 $ MISSING: hasValueFlow=4 | Missing result:hasValueFlow=3 | +| captured_variables.rb:72:21:72:66 | # $ hasValueFlow=4 $ SPURIOUS: hasValueFlow=3 | Fixed spurious result:hasValueFlow=3 | +| captured_variables.rb:72:21:72:66 | # $ hasValueFlow=4 $ SPURIOUS: hasValueFlow=3 | Missing result:hasValueFlow=4 | +| captured_variables.rb:83:21:83:38 | # $ hasValueFlow=5 | Missing result:hasValueFlow=5 | +| captured_variables.rb:87:10:87:10 | y | Unexpected result: hasValueFlow=7 | +| captured_variables.rb:112:18:112:18 | x | Unexpected result: hasValueFlow=11 | | captured_variables.rb:126:14:126:14 | x | Fixed missing result:hasValueFlow=12 | +| captured_variables.rb:154:17:154:35 | # $ hasValueFlow=13 | Missing result:hasValueFlow=13 | | instance_variables.rb:20:16:20:33 | # $ hasValueFlow=7 | Missing result:hasValueFlow=7 | | instance_variables.rb:36:36:36:54 | # $ hasValueFlow=34 | Missing result:hasValueFlow=34 | | instance_variables.rb:39:36:39:54 | # $ hasValueFlow=35 | Missing result:hasValueFlow=35 | diff --git a/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb b/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb index 2a165b3b3c1..e0ecc1da2c5 100644 --- a/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb +++ b/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb @@ -14,14 +14,14 @@ capture_local_call taint(1.1) def capture_escape_return1 x -> { - sink(x) # $ MISSING: hasValueFlow=1.2 + sink(x) # $ hasValueFlow=1.2 } end (capture_escape_return1 taint(1.2)).call def capture_escape_return2 x -> { - sink(x) # $ MISSING: hasValueFlow=1.3 + sink(x) # $ hasValueFlow=1.3 } end Something.unknownMethod(capture_escape_return2 taint(1.3)) @@ -51,7 +51,7 @@ x = taint(1) x = taint(2) end -sink x # $ hasValueFlow=2 +sink x # $ hasValueFlow=2 $ SPURIOUS: hasValueFlow=1 class Foo def set_field x @@ -65,11 +65,11 @@ end foo = Foo.new foo.set_field(taint(3)) [1, 2, 3].each do |i| - sink(foo.get_field) # $ MISSING: hasValueFlow=3 $ MISSING: hasValueFlow=4 + sink(foo.get_field) # $ hasValueFlow=3 $ MISSING: hasValueFlow=4 foo.set_field(taint(4)) end -sink(foo.get_field) # $ MISSING: hasValueFlow=4 $ SPURIOUS: hasValueFlow=3 +sink(foo.get_field) # $ hasValueFlow=4 $ SPURIOUS: hasValueFlow=3 foo = Foo.new if (rand() < 0) then @@ -80,19 +80,19 @@ else end end -sink(foo.get_field) # $ MISSING: hasValueFlow=5 +sink(foo.get_field) # $ hasValueFlow=5 y = taint(6) fn = -> { - sink(y) # $ hasValueFlow=6 $ SPURIOUS: hasValueFlow=7 + sink(y) # $ hasValueFlow=6 y = taint(7) } fn.call -sink(y) # $ hasValueFlow=7 +sink(y) # $ hasValueFlow=7 $ SPURIOUS: hasValueFlow=6 def capture_arg x -> { - sink x # $ MISSING: hasValueFlow=8 + sink x # $ hasValueFlow=8 } end capture_arg(taint(8)).call @@ -109,13 +109,13 @@ def capture_nested x = taint(10) middle = -> { inner = -> { - sink x # $ hasValueFlow=10 $ SPURIOUS: hasValueFlow=11 + sink x # $ hasValueFlow=10 x = taint(11) } inner.call } middle.call - sink x # $ hasValueFlow=11 + sink x # $ hasValueFlow=11 $ SPURIOUS: hasValueFlow=10 end capture_nested @@ -151,7 +151,7 @@ module CaptureModuleSelf end self.foo do - sink @x # $ MISSING: hasValueFlow=13 + sink @x # $ hasValueFlow=13 end end diff --git a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected index a9c22a3733c..bbfebfb4233 100644 --- a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected +++ b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected @@ -1,59 +1,57 @@ testFailures edges -| summaries.rb:1:1:1:7 | tainted | summaries.rb:2:6:2:12 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:2:6:2:12 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:4:24:4:30 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:4:24:4:30 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:16:36:16:42 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:16:36:16:42 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:20:25:20:31 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:26:31:26:37 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:30:24:30:30 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:31:27:31:33 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:34:16:34:22 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:34:16:34:22 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:35:16:35:22 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:35:16:35:22 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:36:21:36:27 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:36:21:36:27 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:37:36:37:42 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:37:36:37:42 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:51:24:51:30 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:56:22:56:28 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:57:17:57:23 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:59:27:59:33 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:63:32:63:38 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:65:23:65:29 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:122:16:122:22 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:128:14:128:20 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:131:16:131:22 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:131:16:131:22 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:132:21:132:27 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:132:21:132:27 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:135:26:135:32 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:135:26:135:32 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:137:23:137:29 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:137:23:137:29 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:140:19:140:25 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:140:19:140:25 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:141:19:141:25 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:141:19:141:25 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:145:26:145:32 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:145:26:145:32 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:147:16:147:22 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:147:16:147:22 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:150:39:150:45 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:150:39:150:45 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:154:20:154:26 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:154:20:154:26 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:155:28:155:34 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:155:28:155:34 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:156:27:156:33 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:156:27:156:33 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:158:15:158:21 | tainted | -| summaries.rb:1:1:1:7 | tainted | summaries.rb:158:15:158:21 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:1:1:1:7 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:1:1:1:7 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:2:6:2:12 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:2:6:2:12 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:4:24:4:30 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:4:24:4:30 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:16:36:16:42 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:16:36:16:42 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:20:25:20:31 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:26:31:26:37 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:30:24:30:30 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:31:27:31:33 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:34:16:34:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:34:16:34:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:35:16:35:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:35:16:35:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:36:21:36:27 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:36:21:36:27 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:37:36:37:42 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:37:36:37:42 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:51:24:51:30 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:56:22:56:28 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:57:17:57:23 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:59:27:59:33 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:63:32:63:38 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:65:23:65:29 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:122:16:122:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:128:14:128:20 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:132:21:132:27 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:132:21:132:27 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:135:26:135:32 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:135:26:135:32 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:137:23:137:29 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:137:23:137:29 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:140:19:140:25 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:140:19:140:25 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:141:19:141:25 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:141:19:141:25 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:145:26:145:32 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:145:26:145:32 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:147:16:147:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:147:16:147:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:150:39:150:45 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:150:39:150:45 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:154:20:154:26 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:154:20:154:26 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:155:28:155:34 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:155:28:155:34 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:156:27:156:33 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:156:27:156:33 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:157:14:160:3 | do ... end [captured tainted] | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:157:14:160:3 | do ... end [captured tainted] | | summaries.rb:1:20:1:36 | call to source | summaries.rb:1:11:1:36 | call to identity | | summaries.rb:1:20:1:36 | call to source | summaries.rb:1:11:1:36 | call to identity | | summaries.rb:4:1:4:8 | tainted2 | summaries.rb:9:6:9:13 | tainted2 | @@ -242,6 +240,7 @@ edges | summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:154:20:154:26 | tainted | | summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:155:28:155:34 | tainted | | summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:156:27:156:33 | tainted | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:157:14:160:3 | do ... end [captured tainted] | | summaries.rb:122:16:122:22 | tainted | summaries.rb:122:16:122:22 | [post] tainted | | summaries.rb:122:16:122:22 | tainted | summaries.rb:122:25:122:25 | [post] y | | summaries.rb:122:16:122:22 | tainted | summaries.rb:122:33:122:33 | [post] z | @@ -249,9 +248,9 @@ edges | summaries.rb:122:33:122:33 | [post] z | summaries.rb:125:6:125:6 | z | | summaries.rb:128:1:128:1 | [post] x | summaries.rb:129:6:129:6 | x | | summaries.rb:128:14:128:20 | tainted | summaries.rb:128:1:128:1 | [post] x | +| summaries.rb:157:14:160:3 | do ... end [captured tainted] | summaries.rb:158:15:158:21 | tainted | +| summaries.rb:157:14:160:3 | do ... end [captured tainted] | summaries.rb:158:15:158:21 | tainted | nodes -| summaries.rb:1:1:1:7 | tainted | semmle.label | tainted | -| summaries.rb:1:1:1:7 | tainted | semmle.label | tainted | | summaries.rb:1:11:1:36 | call to identity | semmle.label | call to identity | | summaries.rb:1:11:1:36 | call to identity | semmle.label | call to identity | | summaries.rb:1:20:1:36 | call to source | semmle.label | call to source | @@ -491,6 +490,8 @@ nodes | summaries.rb:155:28:155:34 | tainted | semmle.label | tainted | | summaries.rb:156:27:156:33 | tainted | semmle.label | tainted | | summaries.rb:156:27:156:33 | tainted | semmle.label | tainted | +| summaries.rb:157:14:160:3 | do ... end [captured tainted] | semmle.label | do ... end [captured tainted] | +| summaries.rb:157:14:160:3 | do ... end [captured tainted] | semmle.label | do ... end [captured tainted] | | summaries.rb:158:15:158:21 | tainted | semmle.label | tainted | | summaries.rb:158:15:158:21 | tainted | semmle.label | tainted | | summaries.rb:163:20:163:36 | call to source | semmle.label | call to source | diff --git a/ruby/ql/test/library-tests/frameworks/sinatra/Sinatra.expected b/ruby/ql/test/library-tests/frameworks/sinatra/Sinatra.expected index 1c2437eb216..33495e743fd 100644 --- a/ruby/ql/test/library-tests/frameworks/sinatra/Sinatra.expected +++ b/ruby/ql/test/library-tests/frameworks/sinatra/Sinatra.expected @@ -43,51 +43,43 @@ filterPatterns | app.rb:106:3:108:5 | call to before | app.rb:106:10:106:23 | "/protected/*" | | app.rb:111:3:113:5 | call to after | app.rb:111:9:111:23 | "/create/:slug" | additionalFlowSteps -| app.rb:85:5:85:9 | [post] self | app.rb:2:22:4:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:10:21:13:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:15:23:18:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:24:26:26:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:37:16:42:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:44:53:46:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:56:32:58:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:60:48:62:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:74:11:77:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:79:11:82:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:89:16:92:5 | self | -| app.rb:85:5:85:9 | [post] self | app.rb:94:15:96:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:2:22:4:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:10:21:13:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:15:23:18:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:24:26:26:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:37:16:42:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:44:53:46:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:56:32:58:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:60:48:62:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:74:11:77:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:79:11:82:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:89:16:92:5 | self | -| app.rb:86:5:86:11 | [post] self | app.rb:94:15:96:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:2:22:4:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:10:21:13:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:15:23:18:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:24:26:26:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:37:16:42:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:44:53:46:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:56:32:58:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:60:48:62:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:74:11:77:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:79:11:82:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:89:16:92:5 | self | -| app.rb:103:5:103:9 | [post] self | app.rb:94:15:96:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:2:22:4:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:10:21:13:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:15:23:18:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:24:26:26:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:37:16:42:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:44:53:46:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:56:32:58:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:60:48:62:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:74:11:77:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:79:11:82:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:89:16:92:5 | self | -| app.rb:103:13:103:22 | [post] self | app.rb:94:15:96:5 | self | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:2:22:4:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:6:24:8:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:10:21:13:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:15:23:18:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:20:23:22:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:24:26:26:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:28:26:31:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:33:25:35:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:37:16:42:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:44:53:46:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:48:14:50:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:52:37:54:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:56:32:58:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:60:48:62:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:66:41:68:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:70:20:72:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:74:11:77:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:79:11:82:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:89:16:92:5 | lambda self in do ... end | +| app.rb:84:10:87:5 | [post] do ... end | app.rb:94:15:96:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:2:22:4:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:6:24:8:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:10:21:13:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:15:23:18:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:20:23:22:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:24:26:26:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:28:26:31:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:33:25:35:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:37:16:42:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:44:53:46:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:48:14:50:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:52:37:54:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:56:32:58:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:60:48:62:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:66:41:68:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:70:20:72:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:74:11:77:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:79:11:82:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:89:16:92:5 | lambda self in do ... end | +| app.rb:102:10:104:5 | [post] do ... end | app.rb:94:15:96:5 | lambda self in do ... end | diff --git a/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.expected b/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.expected index f92dd2c2233..103dc82bda4 100644 --- a/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.expected +++ b/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.expected @@ -7,15 +7,15 @@ edges | ErbInjection.rb:8:5:8:12 | bad_text | ErbInjection.rb:19:20:19:27 | bad_text | | ErbInjection.rb:8:16:11:14 | ... % ... | ErbInjection.rb:8:5:8:12 | bad_text | | ErbInjection.rb:11:11:11:14 | name | ErbInjection.rb:8:16:11:14 | ... % ... | -| SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:8:5:8:12 | bad_text | | SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:11:11:11:14 | name | -| SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:17:5:17:13 | bad2_text | +| SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:14:23:14:34 | { ... } [captured bad_text] | +| SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:23:23:23:35 | { ... } [captured bad2_text] | | SlimInjection.rb:5:12:5:17 | call to params | SlimInjection.rb:5:12:5:24 | ...[...] | | SlimInjection.rb:5:12:5:24 | ...[...] | SlimInjection.rb:5:5:5:8 | name | -| SlimInjection.rb:8:5:8:12 | bad_text | SlimInjection.rb:14:25:14:32 | bad_text | -| SlimInjection.rb:8:16:11:14 | ... % ... | SlimInjection.rb:8:5:8:12 | bad_text | +| SlimInjection.rb:8:16:11:14 | ... % ... | SlimInjection.rb:14:23:14:34 | { ... } [captured bad_text] | | SlimInjection.rb:11:11:11:14 | name | SlimInjection.rb:8:16:11:14 | ... % ... | -| SlimInjection.rb:17:5:17:13 | bad2_text | SlimInjection.rb:23:25:23:33 | bad2_text | +| SlimInjection.rb:14:23:14:34 | { ... } [captured bad_text] | SlimInjection.rb:14:25:14:32 | bad_text | +| SlimInjection.rb:23:23:23:35 | { ... } [captured bad2_text] | SlimInjection.rb:23:25:23:33 | bad2_text | nodes | ErbInjection.rb:5:5:5:8 | name | semmle.label | name | | ErbInjection.rb:5:12:5:17 | call to params | semmle.label | call to params | @@ -28,11 +28,11 @@ nodes | SlimInjection.rb:5:5:5:8 | name | semmle.label | name | | SlimInjection.rb:5:12:5:17 | call to params | semmle.label | call to params | | SlimInjection.rb:5:12:5:24 | ...[...] | semmle.label | ...[...] | -| SlimInjection.rb:8:5:8:12 | bad_text | semmle.label | bad_text | | SlimInjection.rb:8:16:11:14 | ... % ... | semmle.label | ... % ... | | SlimInjection.rb:11:11:11:14 | name | semmle.label | name | +| SlimInjection.rb:14:23:14:34 | { ... } [captured bad_text] | semmle.label | { ... } [captured bad_text] | | SlimInjection.rb:14:25:14:32 | bad_text | semmle.label | bad_text | -| SlimInjection.rb:17:5:17:13 | bad2_text | semmle.label | bad2_text | +| SlimInjection.rb:23:23:23:35 | { ... } [captured bad2_text] | semmle.label | { ... } [captured bad2_text] | | SlimInjection.rb:23:25:23:33 | bad2_text | semmle.label | bad2_text | subpaths #select diff --git a/ruby/ql/test/query-tests/security/cwe-022/PathInjection.expected b/ruby/ql/test/query-tests/security/cwe-022/PathInjection.expected index 7ee24c4112f..a93fdd9f008 100644 --- a/ruby/ql/test/query-tests/security/cwe-022/PathInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-022/PathInjection.expected @@ -5,7 +5,9 @@ edges | ArchiveApiPathTraversal.rb:10:11:10:23 | ...[...] | ArchiveApiPathTraversal.rb:67:13:67:16 | file | | ArchiveApiPathTraversal.rb:15:9:15:14 | call to params | ArchiveApiPathTraversal.rb:15:9:15:25 | ...[...] | | ArchiveApiPathTraversal.rb:15:9:15:25 | ...[...] | ArchiveApiPathTraversal.rb:75:11:75:18 | filename | -| ArchiveApiPathTraversal.rb:49:17:49:27 | destination | ArchiveApiPathTraversal.rb:52:38:52:48 | destination | +| ArchiveApiPathTraversal.rb:49:17:49:27 | destination | ArchiveApiPathTraversal.rb:50:36:64:7 | do ... end [captured destination] | +| ArchiveApiPathTraversal.rb:50:36:64:7 | do ... end [captured destination] | ArchiveApiPathTraversal.rb:51:16:63:9 | do ... end [captured destination] | +| ArchiveApiPathTraversal.rb:51:16:63:9 | do ... end [captured destination] | ArchiveApiPathTraversal.rb:52:38:52:48 | destination | | ArchiveApiPathTraversal.rb:52:9:52:24 | destination_file | ArchiveApiPathTraversal.rb:59:21:59:36 | destination_file | | ArchiveApiPathTraversal.rb:52:28:52:67 | call to join | ArchiveApiPathTraversal.rb:52:9:52:24 | destination_file | | ArchiveApiPathTraversal.rb:52:38:52:48 | destination | ArchiveApiPathTraversal.rb:52:28:52:67 | call to join | @@ -72,6 +74,8 @@ nodes | ArchiveApiPathTraversal.rb:15:9:15:14 | call to params | semmle.label | call to params | | ArchiveApiPathTraversal.rb:15:9:15:25 | ...[...] | semmle.label | ...[...] | | ArchiveApiPathTraversal.rb:49:17:49:27 | destination | semmle.label | destination | +| ArchiveApiPathTraversal.rb:50:36:64:7 | do ... end [captured destination] | semmle.label | do ... end [captured destination] | +| ArchiveApiPathTraversal.rb:51:16:63:9 | do ... end [captured destination] | semmle.label | do ... end [captured destination] | | ArchiveApiPathTraversal.rb:52:9:52:24 | destination_file | semmle.label | destination_file | | ArchiveApiPathTraversal.rb:52:28:52:67 | call to join | semmle.label | call to join | | ArchiveApiPathTraversal.rb:52:38:52:48 | destination | semmle.label | destination | diff --git a/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected b/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected index bb29e10f3f2..c2cbd5dd2ed 100644 --- a/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected @@ -4,14 +4,16 @@ edges | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:23:20:23:30 | unsanitized | | app/controllers/users_controller.rb:15:19:15:24 | call to params | app/controllers/users_controller.rb:15:19:15:30 | ...[...] | | app/controllers/users_controller.rb:15:19:15:30 | ...[...] | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | -| app/controllers/users_controller.rb:23:5:23:16 | unsanitized2 | app/controllers/users_controller.rb:25:7:25:18 | unsanitized2 | -| app/controllers/users_controller.rb:23:5:23:16 | unsanitized2 | app/controllers/users_controller.rb:27:16:27:39 | ... + ... | | app/controllers/users_controller.rb:23:20:23:30 | unsanitized | app/controllers/users_controller.rb:23:20:23:44 | call to sub | -| app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:23:5:23:16 | unsanitized2 | -| app/controllers/users_controller.rb:33:5:33:15 | unsanitized | app/controllers/users_controller.rb:34:33:34:43 | unsanitized | -| app/controllers/users_controller.rb:33:5:33:15 | unsanitized | app/controllers/users_controller.rb:35:33:35:55 | ... + ... | +| app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:24:18:26:7 | do ... end [captured unsanitized2] | +| app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:27:16:27:39 | ... + ... | +| app/controllers/users_controller.rb:24:18:26:7 | do ... end [captured unsanitized2] | app/controllers/users_controller.rb:25:7:25:18 | unsanitized2 | | app/controllers/users_controller.rb:33:19:33:25 | call to cookies | app/controllers/users_controller.rb:33:19:33:31 | ...[...] | -| app/controllers/users_controller.rb:33:19:33:31 | ...[...] | app/controllers/users_controller.rb:33:5:33:15 | unsanitized | +| app/controllers/users_controller.rb:33:19:33:31 | ...[...] | app/controllers/users_controller.rb:34:31:34:45 | { ... } [captured unsanitized] | +| app/controllers/users_controller.rb:33:19:33:31 | ...[...] | app/controllers/users_controller.rb:35:31:35:57 | { ... } [captured unsanitized] | +| app/controllers/users_controller.rb:34:31:34:45 | { ... } [captured unsanitized] | app/controllers/users_controller.rb:34:33:34:43 | unsanitized | +| app/controllers/users_controller.rb:35:31:35:57 | { ... } [captured unsanitized] | app/controllers/users_controller.rb:35:45:35:55 | unsanitized | +| app/controllers/users_controller.rb:35:45:35:55 | unsanitized | app/controllers/users_controller.rb:35:33:35:55 | ... + ... | | app/controllers/users_controller.rb:49:19:49:24 | call to params | app/controllers/users_controller.rb:49:19:49:30 | ...[...] | nodes | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | semmle.label | unsanitized | @@ -19,16 +21,18 @@ nodes | app/controllers/users_controller.rb:15:19:15:30 | ...[...] | semmle.label | ...[...] | | app/controllers/users_controller.rb:16:19:16:29 | unsanitized | semmle.label | unsanitized | | app/controllers/users_controller.rb:17:19:17:41 | ... + ... | semmle.label | ... + ... | -| app/controllers/users_controller.rb:23:5:23:16 | unsanitized2 | semmle.label | unsanitized2 | | app/controllers/users_controller.rb:23:20:23:30 | unsanitized | semmle.label | unsanitized | | app/controllers/users_controller.rb:23:20:23:44 | call to sub | semmle.label | call to sub | +| app/controllers/users_controller.rb:24:18:26:7 | do ... end [captured unsanitized2] | semmle.label | do ... end [captured unsanitized2] | | app/controllers/users_controller.rb:25:7:25:18 | unsanitized2 | semmle.label | unsanitized2 | | app/controllers/users_controller.rb:27:16:27:39 | ... + ... | semmle.label | ... + ... | -| app/controllers/users_controller.rb:33:5:33:15 | unsanitized | semmle.label | unsanitized | | app/controllers/users_controller.rb:33:19:33:25 | call to cookies | semmle.label | call to cookies | | app/controllers/users_controller.rb:33:19:33:31 | ...[...] | semmle.label | ...[...] | +| app/controllers/users_controller.rb:34:31:34:45 | { ... } [captured unsanitized] | semmle.label | { ... } [captured unsanitized] | | app/controllers/users_controller.rb:34:33:34:43 | unsanitized | semmle.label | unsanitized | +| app/controllers/users_controller.rb:35:31:35:57 | { ... } [captured unsanitized] | semmle.label | { ... } [captured unsanitized] | | app/controllers/users_controller.rb:35:33:35:55 | ... + ... | semmle.label | ... + ... | +| app/controllers/users_controller.rb:35:45:35:55 | unsanitized | semmle.label | unsanitized | | app/controllers/users_controller.rb:49:19:49:24 | call to params | semmle.label | call to params | | app/controllers/users_controller.rb:49:19:49:30 | ...[...] | semmle.label | ...[...] | subpaths From 6de315d086595d666fd64d0afe27b4f41ebde232 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 17 Aug 2023 09:59:43 +0200 Subject: [PATCH 214/788] Add change note --- ruby/ql/lib/change-notes/2023-08-23-variable-capture-flow.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ruby/ql/lib/change-notes/2023-08-23-variable-capture-flow.md diff --git a/ruby/ql/lib/change-notes/2023-08-23-variable-capture-flow.md b/ruby/ql/lib/change-notes/2023-08-23-variable-capture-flow.md new file mode 100644 index 00000000000..66ab65083dc --- /dev/null +++ b/ruby/ql/lib/change-notes/2023-08-23-variable-capture-flow.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. \ No newline at end of file From a06a9ffa29c7aa935c0015947c335b9230b56342 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 31 Aug 2023 08:57:41 +0200 Subject: [PATCH 215/788] Address review comments --- .../lib/codeql/ruby/controlflow/CfgNodes.qll | 6 ++- .../lib/codeql/ruby/dataflow/FlowSummary.qll | 41 ++++++++----------- .../ruby/dataflow/internal/DataFlowPublic.qll | 6 ++- 3 files changed, 26 insertions(+), 27 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll index e37493910b2..c8b369464b9 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll @@ -201,7 +201,11 @@ module ExprNodes { override LhsExpr getExpr() { result = super.getExpr() } - /** Gets a variable used in (or introduced by) this LHS. */ + /** + * DEPRECATED: use `getVariable` instead. + * + * Gets a variable used in (or introduced by) this LHS. + */ deprecated Variable getAVariable() { result = e.(VariableAccess).getVariable() } /** Gets the variable used in (or introduced by) this LHS. */ diff --git a/ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll b/ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll index 6a788f8d75c..7e7004c6e61 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll @@ -163,7 +163,7 @@ class RequiredSummaryComponentStack = Impl::Public::RequiredSummaryComponentStac /** * Provides a set of special flow summaries to ensure that callbacks passed into - * library methods will be passed as `self` arguments into themeselves. That is, + * library methods will be passed as `lambda-self` arguments into themselves. That is, * we are assuming that callbacks passed into library methods will be called, which is * needed for flow through captured variables. */ @@ -172,21 +172,6 @@ private module LibraryCallbackSummaries { not exists(getTarget(call)) } - private class LibraryBlockMethod extends SummarizedCallable { - LibraryBlockMethod() { this = "" } - - final override MethodCall getACall() { - libraryCall(result.getAControlFlowNode()) and - result.hasBlock() - } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = "Argument[block]" and - output = "Argument[block].Parameter[lambda-self]" and - preservesValue = true - } - } - private DataFlow::LocalSourceNode trackLambdaCreation(TypeTracker t) { t.start() and lambdaCreation(result, TLambdaCallKind(), _) @@ -205,20 +190,26 @@ private module LibraryCallbackSummaries { } private class LibraryLambdaMethod extends SummarizedCallable { - private int i; - - LibraryLambdaMethod() { - this = "" and - i in [0 .. 10] - } + LibraryLambdaMethod() { this = "" } final override MethodCall getACall() { - libraryCallHasLambdaArg(result.getAControlFlowNode(), i) + libraryCall(result.getAControlFlowNode()) and + result.hasBlock() + or + libraryCallHasLambdaArg(result.getAControlFlowNode(), _) } override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = "Argument[" + i + "]" and - output = "Argument[" + i + "].Parameter[lambda-self]" and + ( + input = "Argument[block]" and + output = "Argument[block].Parameter[lambda-self]" + or + exists(int i | + i in [0 .. 10] and + input = "Argument[" + i + "]" and + output = "Argument[" + i + "].Parameter[lambda-self]" + ) + ) and preservesValue = true } } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll index 6548c4ebe47..99c9549b72f 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll @@ -1219,7 +1219,11 @@ class LhsExprNode extends ExprNode { /** Gets the underlying AST node as a `LhsExpr`. */ LhsExpr asLhsExprAstNode() { result = lhsExprCfgNode.getExpr() } - /** Gets a variable used in (or introduced by) this LHS. */ + /** + * DEPRECATED: use `getVariable` instead. + * + * Gets a variable used in (or introduced by) this LHS. + */ deprecated Variable getAVariable() { result = lhsExprCfgNode.getAVariable() } /** Gets the variable used in (or introduced by) this LHS. */ From 79d210f7bdbe1cc6592c6d830ad61a3c4da95d77 Mon Sep 17 00:00:00 2001 From: Cornelius Riemenschneider Date: Wed, 6 Sep 2023 12:19:46 +0200 Subject: [PATCH 216/788] Update .github/workflows/ruby-build.yml Co-authored-by: Arthur Baars --- .github/workflows/ruby-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ruby-build.yml b/.github/workflows/ruby-build.yml index ca3874f9c41..392c6ff8302 100644 --- a/.github/workflows/ruby-build.yml +++ b/.github/workflows/ruby-build.yml @@ -254,7 +254,7 @@ jobs: # jq is available in epel-release (https://docs.fedoraproject.org/en-US/epel/) yum install -y gh unzip epel-release yum install -y jq - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - name: Fetch CodeQL uses: ./.github/actions/fetch-codeql From b22199982ee97edc8e597e739486fd709b44cde2 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Sep 2023 13:08:21 +0100 Subject: [PATCH 217/788] C++: Add change note. --- cpp/ql/src/change-notes/2023-09-06-deduplicated-results.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/src/change-notes/2023-09-06-deduplicated-results.md diff --git a/cpp/ql/src/change-notes/2023-09-06-deduplicated-results.md b/cpp/ql/src/change-notes/2023-09-06-deduplicated-results.md new file mode 100644 index 00000000000..e8a2160f4c2 --- /dev/null +++ b/cpp/ql/src/change-notes/2023-09-06-deduplicated-results.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The number of duplicated dataflow paths reported by queries has been significantly reduced. \ No newline at end of file From 4cbe82353f842a651fda98424c2d5988c26e1c4e Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Sep 2023 13:58:28 +0100 Subject: [PATCH 218/788] C++: Accept more test changes. --- .../printf-format-not-hard-coded.expected | 1 - .../AllocMultiplicationOverflow.expected | 38 ++----------------- .../tests/PrivateCleartextWrite.expected | 27 ------------- 3 files changed, 4 insertions(+), 62 deletions(-) diff --git a/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/printf-format-not-hard-coded.expected b/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/printf-format-not-hard-coded.expected index 57d3172769b..0c459fea034 100644 --- a/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/printf-format-not-hard-coded.expected +++ b/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/printf-format-not-hard-coded.expected @@ -1,2 +1 @@ | printf.cpp:5:5:5:10 | call to printf | Argument to printf isn't hard-coded. | -| printf.cpp:6:5:6:10 | call to printf | Argument to printf isn't hard-coded. | diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected index 66c633eea49..6b8917fb22a 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected @@ -1,58 +1,28 @@ edges -| test.cpp:13:33:13:37 | ... * ... | test.cpp:13:33:13:37 | ... * ... | -| test.cpp:15:31:15:35 | ... * ... | test.cpp:15:31:15:35 | ... * ... | -| test.cpp:19:34:19:38 | ... * ... | test.cpp:19:34:19:38 | ... * ... | -| test.cpp:22:17:22:21 | ... * ... | test.cpp:23:33:23:37 | size1 | | test.cpp:22:17:22:21 | ... * ... | test.cpp:23:33:23:37 | size1 | | test.cpp:37:24:37:27 | size | test.cpp:37:46:37:49 | size | | test.cpp:45:36:45:40 | ... * ... | test.cpp:37:24:37:27 | size | -| test.cpp:45:36:45:40 | ... * ... | test.cpp:45:36:45:40 | ... * ... | -| test.cpp:45:36:45:40 | ... * ... | test.cpp:45:36:45:40 | ... * ... | -| test.cpp:46:36:46:40 | ... * ... | test.cpp:46:36:46:40 | ... * ... | nodes | test.cpp:13:33:13:37 | ... * ... | semmle.label | ... * ... | -| test.cpp:13:33:13:37 | ... * ... | semmle.label | ... * ... | -| test.cpp:13:33:13:37 | ... * ... | semmle.label | ... * ... | -| test.cpp:15:31:15:35 | ... * ... | semmle.label | ... * ... | -| test.cpp:15:31:15:35 | ... * ... | semmle.label | ... * ... | | test.cpp:15:31:15:35 | ... * ... | semmle.label | ... * ... | | test.cpp:19:34:19:38 | ... * ... | semmle.label | ... * ... | -| test.cpp:19:34:19:38 | ... * ... | semmle.label | ... * ... | -| test.cpp:19:34:19:38 | ... * ... | semmle.label | ... * ... | -| test.cpp:22:17:22:21 | ... * ... | semmle.label | ... * ... | | test.cpp:22:17:22:21 | ... * ... | semmle.label | ... * ... | | test.cpp:23:33:23:37 | size1 | semmle.label | size1 | -| test.cpp:30:27:30:31 | ... * ... | semmle.label | ... * ... | -| test.cpp:31:27:31:31 | ... * ... | semmle.label | ... * ... | +| test.cpp:30:18:30:32 | new[] | semmle.label | new[] | +| test.cpp:31:18:31:32 | new[] | semmle.label | new[] | | test.cpp:37:24:37:27 | size | semmle.label | size | | test.cpp:37:46:37:49 | size | semmle.label | size | | test.cpp:45:36:45:40 | ... * ... | semmle.label | ... * ... | | test.cpp:45:36:45:40 | ... * ... | semmle.label | ... * ... | -| test.cpp:45:36:45:40 | ... * ... | semmle.label | ... * ... | -| test.cpp:45:36:45:40 | ... * ... | semmle.label | ... * ... | -| test.cpp:46:36:46:40 | ... * ... | semmle.label | ... * ... | -| test.cpp:46:36:46:40 | ... * ... | semmle.label | ... * ... | | test.cpp:46:36:46:40 | ... * ... | semmle.label | ... * ... | subpaths #select | test.cpp:13:33:13:37 | ... * ... | test.cpp:13:33:13:37 | ... * ... | test.cpp:13:33:13:37 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:13:33:13:37 | ... * ... | multiplication | -| test.cpp:13:33:13:37 | ... * ... | test.cpp:13:33:13:37 | ... * ... | test.cpp:13:33:13:37 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:13:33:13:37 | ... * ... | multiplication | -| test.cpp:13:33:13:37 | ... * ... | test.cpp:13:33:13:37 | ... * ... | test.cpp:13:33:13:37 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:13:33:13:37 | ... * ... | multiplication | | test.cpp:15:31:15:35 | ... * ... | test.cpp:15:31:15:35 | ... * ... | test.cpp:15:31:15:35 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:15:31:15:35 | ... * ... | multiplication | -| test.cpp:15:31:15:35 | ... * ... | test.cpp:15:31:15:35 | ... * ... | test.cpp:15:31:15:35 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:15:31:15:35 | ... * ... | multiplication | -| test.cpp:15:31:15:35 | ... * ... | test.cpp:15:31:15:35 | ... * ... | test.cpp:15:31:15:35 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:15:31:15:35 | ... * ... | multiplication | -| test.cpp:19:34:19:38 | ... * ... | test.cpp:19:34:19:38 | ... * ... | test.cpp:19:34:19:38 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:19:34:19:38 | ... * ... | multiplication | -| test.cpp:19:34:19:38 | ... * ... | test.cpp:19:34:19:38 | ... * ... | test.cpp:19:34:19:38 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:19:34:19:38 | ... * ... | multiplication | | test.cpp:19:34:19:38 | ... * ... | test.cpp:19:34:19:38 | ... * ... | test.cpp:19:34:19:38 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:19:34:19:38 | ... * ... | multiplication | | test.cpp:23:33:23:37 | size1 | test.cpp:22:17:22:21 | ... * ... | test.cpp:23:33:23:37 | size1 | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:22:17:22:21 | ... * ... | multiplication | -| test.cpp:23:33:23:37 | size1 | test.cpp:22:17:22:21 | ... * ... | test.cpp:23:33:23:37 | size1 | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:22:17:22:21 | ... * ... | multiplication | -| test.cpp:30:27:30:31 | ... * ... | test.cpp:30:27:30:31 | ... * ... | test.cpp:30:27:30:31 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:30:27:30:31 | ... * ... | multiplication | -| test.cpp:31:27:31:31 | ... * ... | test.cpp:31:27:31:31 | ... * ... | test.cpp:31:27:31:31 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:31:27:31:31 | ... * ... | multiplication | -| test.cpp:37:46:37:49 | size | test.cpp:45:36:45:40 | ... * ... | test.cpp:37:46:37:49 | size | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:45:36:45:40 | ... * ... | multiplication | +| test.cpp:30:18:30:32 | new[] | test.cpp:30:18:30:32 | new[] | test.cpp:30:18:30:32 | new[] | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:30:18:30:32 | new[] | multiplication | +| test.cpp:31:18:31:32 | new[] | test.cpp:31:18:31:32 | new[] | test.cpp:31:18:31:32 | new[] | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:31:18:31:32 | new[] | multiplication | | test.cpp:37:46:37:49 | size | test.cpp:45:36:45:40 | ... * ... | test.cpp:37:46:37:49 | size | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:45:36:45:40 | ... * ... | multiplication | | test.cpp:45:36:45:40 | ... * ... | test.cpp:45:36:45:40 | ... * ... | test.cpp:45:36:45:40 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:45:36:45:40 | ... * ... | multiplication | -| test.cpp:45:36:45:40 | ... * ... | test.cpp:45:36:45:40 | ... * ... | test.cpp:45:36:45:40 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:45:36:45:40 | ... * ... | multiplication | -| test.cpp:45:36:45:40 | ... * ... | test.cpp:45:36:45:40 | ... * ... | test.cpp:45:36:45:40 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:45:36:45:40 | ... * ... | multiplication | -| test.cpp:46:36:46:40 | ... * ... | test.cpp:46:36:46:40 | ... * ... | test.cpp:46:36:46:40 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:46:36:46:40 | ... * ... | multiplication | -| test.cpp:46:36:46:40 | ... * ... | test.cpp:46:36:46:40 | ... * ... | test.cpp:46:36:46:40 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:46:36:46:40 | ... * ... | multiplication | | test.cpp:46:36:46:40 | ... * ... | test.cpp:46:36:46:40 | ... * ... | test.cpp:46:36:46:40 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:46:36:46:40 | ... * ... | multiplication | diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-359/semmle/tests/PrivateCleartextWrite.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-359/semmle/tests/PrivateCleartextWrite.expected index d2d00140255..437e5dfab55 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-359/semmle/tests/PrivateCleartextWrite.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-359/semmle/tests/PrivateCleartextWrite.expected @@ -1,6 +1,5 @@ edges | test.cpp:45:18:45:23 | buffer | test.cpp:45:7:45:10 | func indirection | -| test.cpp:57:9:57:18 | theZipcode | test.cpp:57:9:57:18 | theZipcode | | test.cpp:74:24:74:30 | medical | test.cpp:78:24:78:27 | temp | | test.cpp:74:24:74:30 | medical | test.cpp:81:22:81:28 | medical | | test.cpp:77:16:77:22 | medical | test.cpp:78:24:78:27 | temp | @@ -8,23 +7,12 @@ edges | test.cpp:81:17:81:20 | call to func | test.cpp:82:24:82:28 | buff5 | | test.cpp:81:22:81:28 | medical | test.cpp:45:18:45:23 | buffer | | test.cpp:81:22:81:28 | medical | test.cpp:81:17:81:20 | call to func | -| test.cpp:96:37:96:46 | theZipcode | test.cpp:96:37:96:46 | theZipcode | -| test.cpp:96:37:96:46 | theZipcode | test.cpp:96:37:96:46 | theZipcode | | test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | -| test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | -| test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | -| test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | -| test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | -| test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | -| test.cpp:99:42:99:51 | theZipcode | test.cpp:99:42:99:51 | theZipcode | -| test.cpp:99:61:99:70 | theZipcode | test.cpp:99:42:99:51 | theZipcode | | test.cpp:99:61:99:70 | theZipcode | test.cpp:99:42:99:51 | theZipcode | nodes | test.cpp:45:7:45:10 | func indirection | semmle.label | func indirection | | test.cpp:45:18:45:23 | buffer | semmle.label | buffer | | test.cpp:57:9:57:18 | theZipcode | semmle.label | theZipcode | -| test.cpp:57:9:57:18 | theZipcode | semmle.label | theZipcode | -| test.cpp:57:9:57:18 | theZipcode | semmle.label | theZipcode | | test.cpp:74:24:74:30 | medical | semmle.label | medical | | test.cpp:74:24:74:30 | medical | semmle.label | medical | | test.cpp:77:16:77:22 | medical | semmle.label | medical | @@ -34,19 +22,12 @@ nodes | test.cpp:82:24:82:28 | buff5 | semmle.label | buff5 | | test.cpp:96:37:96:46 | theZipcode | semmle.label | theZipcode | | test.cpp:96:37:96:46 | theZipcode | semmle.label | theZipcode | -| test.cpp:96:37:96:46 | theZipcode | semmle.label | theZipcode | -| test.cpp:96:37:96:46 | theZipcode | semmle.label | theZipcode | | test.cpp:99:42:99:51 | theZipcode | semmle.label | theZipcode | -| test.cpp:99:42:99:51 | theZipcode | semmle.label | theZipcode | -| test.cpp:99:42:99:51 | theZipcode | semmle.label | theZipcode | -| test.cpp:99:61:99:70 | theZipcode | semmle.label | theZipcode | | test.cpp:99:61:99:70 | theZipcode | semmle.label | theZipcode | subpaths | test.cpp:81:22:81:28 | medical | test.cpp:45:18:45:23 | buffer | test.cpp:45:7:45:10 | func indirection | test.cpp:81:17:81:20 | call to func | #select | test.cpp:57:9:57:18 | theZipcode | test.cpp:57:9:57:18 | theZipcode | test.cpp:57:9:57:18 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:57:9:57:18 | theZipcode | this source of private data. | -| test.cpp:57:9:57:18 | theZipcode | test.cpp:57:9:57:18 | theZipcode | test.cpp:57:9:57:18 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:57:9:57:18 | theZipcode | this source of private data. | -| test.cpp:57:9:57:18 | theZipcode | test.cpp:57:9:57:18 | theZipcode | test.cpp:57:9:57:18 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:57:9:57:18 | theZipcode | this source of private data. | | test.cpp:74:24:74:30 | medical | test.cpp:74:24:74:30 | medical | test.cpp:74:24:74:30 | medical | This write into the external location 'medical' may contain unencrypted data from $@. | test.cpp:74:24:74:30 | medical | this source of private data. | | test.cpp:78:24:78:27 | temp | test.cpp:74:24:74:30 | medical | test.cpp:78:24:78:27 | temp | This write into the external location 'temp' may contain unencrypted data from $@. | test.cpp:74:24:74:30 | medical | this source of private data. | | test.cpp:78:24:78:27 | temp | test.cpp:77:16:77:22 | medical | test.cpp:78:24:78:27 | temp | This write into the external location 'temp' may contain unencrypted data from $@. | test.cpp:77:16:77:22 | medical | this source of private data. | @@ -54,14 +35,6 @@ subpaths | test.cpp:82:24:82:28 | buff5 | test.cpp:77:16:77:22 | medical | test.cpp:82:24:82:28 | buff5 | This write into the external location 'buff5' may contain unencrypted data from $@. | test.cpp:77:16:77:22 | medical | this source of private data. | | test.cpp:82:24:82:28 | buff5 | test.cpp:81:22:81:28 | medical | test.cpp:82:24:82:28 | buff5 | This write into the external location 'buff5' may contain unencrypted data from $@. | test.cpp:81:22:81:28 | medical | this source of private data. | | test.cpp:96:37:96:46 | theZipcode | test.cpp:96:37:96:46 | theZipcode | test.cpp:96:37:96:46 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:96:37:96:46 | theZipcode | this source of private data. | -| test.cpp:96:37:96:46 | theZipcode | test.cpp:96:37:96:46 | theZipcode | test.cpp:96:37:96:46 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:96:37:96:46 | theZipcode | this source of private data. | -| test.cpp:96:37:96:46 | theZipcode | test.cpp:96:37:96:46 | theZipcode | test.cpp:96:37:96:46 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:96:37:96:46 | theZipcode | this source of private data. | | test.cpp:99:42:99:51 | theZipcode | test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:96:37:96:46 | theZipcode | this source of private data. | -| test.cpp:99:42:99:51 | theZipcode | test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:96:37:96:46 | theZipcode | this source of private data. | -| test.cpp:99:42:99:51 | theZipcode | test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:96:37:96:46 | theZipcode | this source of private data. | -| test.cpp:99:42:99:51 | theZipcode | test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:96:37:96:46 | theZipcode | this source of private data. | -| test.cpp:99:42:99:51 | theZipcode | test.cpp:99:42:99:51 | theZipcode | test.cpp:99:42:99:51 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:99:42:99:51 | theZipcode | this source of private data. | -| test.cpp:99:42:99:51 | theZipcode | test.cpp:99:42:99:51 | theZipcode | test.cpp:99:42:99:51 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:99:42:99:51 | theZipcode | this source of private data. | | test.cpp:99:42:99:51 | theZipcode | test.cpp:99:42:99:51 | theZipcode | test.cpp:99:42:99:51 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:99:42:99:51 | theZipcode | this source of private data. | | test.cpp:99:42:99:51 | theZipcode | test.cpp:99:61:99:70 | theZipcode | test.cpp:99:42:99:51 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:99:61:99:70 | theZipcode | this source of private data. | -| test.cpp:99:42:99:51 | theZipcode | test.cpp:99:61:99:70 | theZipcode | test.cpp:99:42:99:51 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:99:61:99:70 | theZipcode | this source of private data. | From a02f373e79fb3ff3d9be7d6865266c28b1855c3c Mon Sep 17 00:00:00 2001 From: Max Schaefer Date: Wed, 6 Sep 2023 14:06:16 +0100 Subject: [PATCH 219/788] Use better sanitiser. --- .../CWE-601/examples/ServerSideUrlRedirectGood2.js | 12 +++++++++--- .../ServerSideUrlRedirectGood2.js | 12 +++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js index 78b3be6c260..a36721a3717 100644 --- a/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js +++ b/javascript/ql/src/Security/CWE-601/examples/ServerSideUrlRedirectGood2.js @@ -1,13 +1,19 @@ const app = require("express")(); -function isRelativePath(path) { - return !/^(\w+:)?[/\\]{2}/.test(path); +function isLocalUrl(path) { + try { + return ( + new URL(path, "https://example.com").origin === "https://example.com" + ); + } catch (e) { + return false; + } } app.get("/redirect", function (req, res) { // GOOD: check that we don't redirect to a different host let target = req.query["target"]; - if (isRelativePath(target)) { + if (isLocalUrl(target)) { res.redirect(target); } else { res.redirect("/"); diff --git a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js index 78b3be6c260..a36721a3717 100644 --- a/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js +++ b/javascript/ql/test/query-tests/Security/CWE-601/ServerSideUrlRedirect/ServerSideUrlRedirectGood2.js @@ -1,13 +1,19 @@ const app = require("express")(); -function isRelativePath(path) { - return !/^(\w+:)?[/\\]{2}/.test(path); +function isLocalUrl(path) { + try { + return ( + new URL(path, "https://example.com").origin === "https://example.com" + ); + } catch (e) { + return false; + } } app.get("/redirect", function (req, res) { // GOOD: check that we don't redirect to a different host let target = req.query["target"]; - if (isRelativePath(target)) { + if (isLocalUrl(target)) { res.redirect(target); } else { res.redirect("/"); From ede7d8fb6a7139f5b33e48d7f8b7629b1e024444 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20St=C3=B6ckli?= Date: Wed, 6 Sep 2023 15:47:07 +0200 Subject: [PATCH 220/788] Python: apply suggestions from code review for asyncio --- .../lib/semmle/python/frameworks/Stdlib.qll | 181 +++++++----------- 1 file changed, 74 insertions(+), 107 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index a493eed9a6b..bb701c001e2 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -4400,9 +4400,6 @@ private module StdlibPrivate { // --------------------------------------------------------------------------- // asyncio // --------------------------------------------------------------------------- - /** Gets a reference to the `asyncio` module. */ - API::Node asyncio() { result = API::moduleImport("asyncio") } - /** Provides models for the `asyncio` module. */ module AsyncIO { /** @@ -4411,24 +4408,19 @@ private module StdlibPrivate { * See https://docs.python.org/3/library/asyncio-subprocess.html#creating-subprocesses */ private class CreateSubprocessExec extends SystemCommandExecution::Range, - FileSystemAccess::Range, DataFlow::CallCfgNode + FileSystemAccess::Range, API::CallNode { CreateSubprocessExec() { - exists(string name | - name = "create_subprocess_exec" and - ( - this = asyncio().getMember(name).getACall() - or - this = asyncio().getMember("subprocess").getMember(name).getACall() - ) - ) + this = API::moduleImport("asyncio").getMember("create_subprocess_exec").getACall() + or + this = + API::moduleImport("asyncio") + .getMember("subprocess") + .getMember("create_subprocess_exec") + .getACall() } - override DataFlow::Node getCommand() { - result = this.getArg(0) - or - result = this.getArgByName("program") - } + override DataFlow::Node getCommand() { result = this.getParameter(0, "program").asSink() } override DataFlow::Node getAPathArgument() { result = this.getCommand() } @@ -4436,104 +4428,79 @@ private module StdlibPrivate { none() // this is a safe API. } } - } - /** - * A call to the `asyncio.create_subprocess_shell` function (also in the `subprocess` module of `asyncio`) - * - * See https://docs.python.org/3/library/asyncio-subprocess.html#creating-subprocesses - */ - private class CreateSubprocessShell extends SystemCommandExecution::Range, - FileSystemAccess::Range, DataFlow::CallCfgNode - { - CreateSubprocessShell() { - exists(string name | - name = "create_subprocess_shell" and - ( - this = asyncio().getMember(name).getACall() - or - this = asyncio().getMember("subprocess").getMember(name).getACall() - ) - ) + private class CreateSubprocessShell extends SystemCommandExecution::Range, + FileSystemAccess::Range, API::CallNode + { + CreateSubprocessShell() { + this = API::moduleImport("asyncio").getMember("create_subprocess_shell").getACall() + or + this = + API::moduleImport("asyncio") + .getMember("subprocess") + .getMember("create_subprocess_shell") + .getACall() + } + + override DataFlow::Node getCommand() { result = this.getParameter(0, "cmd").asSink() } + + override DataFlow::Node getAPathArgument() { result = this.getCommand() } + + override predicate isShellInterpreted(DataFlow::Node arg) { arg = this.getCommand() } } - override DataFlow::Node getCommand() { - result = this.getArg(0) + /** + * Get an asyncio event loop (an object with basetype `AbstractEventLoop`). + * + * See https://docs.python.org/3/library/asyncio-eventloop.html + */ + private API::Node getAsyncioEventLoop() { + result = API::moduleImport("asyncio").getMember("get_running_loop").getReturn() or - result = this.getArgByName("cmd") - } - - override DataFlow::Node getAPathArgument() { result = this.getCommand() } - - override predicate isShellInterpreted(DataFlow::Node arg) { arg = this.getCommand() } - } - - /** - * A source for an event loop (an object with basetype `AbstractEventLoop`). - * - * See https://docs.python.org/3/library/asyncio-eventloop.html - */ - private class EventLoopSource extends DataFlow::LocalSourceNode, DataFlow::CallCfgNode { - EventLoopSource() { - this = asyncio().getMember("get_running_loop").getACall() + result = API::moduleImport("asyncio").getMember("get_event_loop").getReturn() // deprecated in Python 3.10.0 and later or - this = asyncio().getMember("get_event_loop").getACall() // deprecated in Python 3.10.0 and later - or - this = asyncio().getMember("new_event_loop").getACall() - } - } - - /** Gets a reference to an event loop instance. */ - private DataFlow::TypeTrackingNode eventLoopInstance(DataFlow::TypeTracker t) { - t.start() and - result instanceof EventLoopSource - or - exists(DataFlow::TypeTracker t2 | result = eventLoopInstance(t2).track(t2, t)) - } - - /** Gets a reference to an event loop instance. */ - DataFlow::Node eventLoopInstance() { - eventLoopInstance(DataFlow::TypeTracker::end()).flowsTo(result) - } - - /** - * A call to `subprocess_exec` on an event loop instance. - * - * See https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.subprocess_exec - */ - private class EventLoopSubprocessExec extends DataFlow::MethodCallNode, - SystemCommandExecution::Range, FileSystemAccess::Range - { - EventLoopSubprocessExec() { this.calls(eventLoopInstance(), "subprocess_exec") } - - override DataFlow::Node getCommand() { result = this.getArg(1) } - - override DataFlow::Node getAPathArgument() { result = this.getCommand() } - - override predicate isShellInterpreted(DataFlow::Node arg) { - none() // this is a safe API. - } - } - - /** - * A call to `subprocess_shell` on an event loop instance. - * - * See https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.subprocess_shell - */ - private class EventLoopSubprocessShell extends DataFlow::MethodCallNode, - SystemCommandExecution::Range, FileSystemAccess::Range - { - EventLoopSubprocessShell() { this.calls(eventLoopInstance(), "subprocess_shell") } - - override DataFlow::Node getCommand() { - result = this.getArg(1) - or - result = this.getArgByName("cmd") + result = API::moduleImport("asyncio").getMember("new_event_loop").getReturn() } - override DataFlow::Node getAPathArgument() { result = this.getCommand() } + /** + * A call to `subprocess_exec` on an event loop instance. + * + * See https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.subprocess_exec + */ + private class EventLoopSubprocessExec extends API::CallNode, SystemCommandExecution::Range, + FileSystemAccess::Range + { + EventLoopSubprocessExec() { + this = getAsyncioEventLoop().getMember("subprocess_exec").getACall() + } - override predicate isShellInterpreted(DataFlow::Node arg) { arg = this.getCommand() } + override DataFlow::Node getCommand() { result = this.getArg(1) } + + override DataFlow::Node getAPathArgument() { result = this.getCommand() } + + override predicate isShellInterpreted(DataFlow::Node arg) { + none() // this is a safe API. + } + } + + /** + * A call to `subprocess_shell` on an event loop instance. + * + * See https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.subprocess_shell + */ + private class EventLoopSubprocessShell extends API::CallNode, SystemCommandExecution::Range, + FileSystemAccess::Range + { + EventLoopSubprocessShell() { + this = getAsyncioEventLoop().getMember("subprocess_shell").getACall() + } + + override DataFlow::Node getCommand() { result = this.getParameter(1, "cmd").asSink() } + + override DataFlow::Node getAPathArgument() { result = this.getCommand() } + + override predicate isShellInterpreted(DataFlow::Node arg) { arg = this.getCommand() } + } } } From 6e0ff56788acfff747bacb2a7f4a1b08dec08495 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 6 Sep 2023 16:23:38 +0200 Subject: [PATCH 221/788] Revert "C#: Bump all dependencies" --- .../Semmle.Autobuild.Cpp.Tests.csproj | 6 +++--- .../Semmle.Autobuild.Cpp/Semmle.Autobuild.Cpp.csproj | 2 +- .../Semmle.Autobuild.CSharp.Tests.csproj | 6 +++--- .../Semmle.Autobuild.CSharp.csproj | 8 ++++---- .../Semmle.Autobuild.Shared.csproj | 2 +- .../Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj | 2 +- .../Semmle.Extraction.CSharp.Standalone.csproj | 4 ++-- .../Semmle.Extraction.CSharp.csproj | 4 ++-- .../Semmle.Extraction.Tests.csproj | 6 +++--- .../extractor/Semmle.Extraction/Semmle.Extraction.csproj | 6 +++--- .../extractor/Semmle.Util.Tests/Semmle.Util.Tests.csproj | 6 +++--- csharp/extractor/Semmle.Util/Semmle.Util.csproj | 2 +- .../posix-only/dotnet_test/dotnet_test.csproj | 6 +++--- .../dotnet_test_mstest/dotnet_test_mstest.csproj | 8 ++++---- 14 files changed, 34 insertions(+), 34 deletions(-) diff --git a/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests/Semmle.Autobuild.Cpp.Tests.csproj b/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests/Semmle.Autobuild.Cpp.Tests.csproj index abf4f358a24..0c9f70c6d6d 100644 --- a/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests/Semmle.Autobuild.Cpp.Tests.csproj +++ b/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests/Semmle.Autobuild.Cpp.Tests.csproj @@ -11,12 +11,12 @@ - - + + all runtime; build; native; contentfiles; analyzers - + diff --git a/cpp/autobuilder/Semmle.Autobuild.Cpp/Semmle.Autobuild.Cpp.csproj b/cpp/autobuilder/Semmle.Autobuild.Cpp/Semmle.Autobuild.Cpp.csproj index 5e0d40cdfe2..f8f5c285074 100644 --- a/cpp/autobuilder/Semmle.Autobuild.Cpp/Semmle.Autobuild.Cpp.csproj +++ b/cpp/autobuilder/Semmle.Autobuild.Cpp/Semmle.Autobuild.Cpp.csproj @@ -17,7 +17,7 @@ - + diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/Semmle.Autobuild.CSharp.Tests.csproj b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/Semmle.Autobuild.CSharp.Tests.csproj index ecc67fa5695..590c03738b0 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/Semmle.Autobuild.CSharp.Tests.csproj +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/Semmle.Autobuild.CSharp.Tests.csproj @@ -8,12 +8,12 @@ - - + + all runtime; build; native; contentfiles; analyzers - + diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp/Semmle.Autobuild.CSharp.csproj b/csharp/autobuilder/Semmle.Autobuild.CSharp/Semmle.Autobuild.CSharp.csproj index 6edc9fdcd97..1083564dd26 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp/Semmle.Autobuild.CSharp.csproj +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp/Semmle.Autobuild.CSharp.csproj @@ -3,9 +3,9 @@ net7.0 Semmle.Autobuild.CSharp Semmle.Autobuild.CSharp - + Exe - + false win-x64;linux-x64;osx-x64 enable @@ -14,8 +14,8 @@ - - + + diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/Semmle.Autobuild.Shared.csproj b/csharp/autobuilder/Semmle.Autobuild.Shared/Semmle.Autobuild.Shared.csproj index 83c53552cc0..7a1f537fe75 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/Semmle.Autobuild.Shared.csproj +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/Semmle.Autobuild.Shared.csproj @@ -11,7 +11,7 @@ - + diff --git a/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj b/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj index c37242cd890..5bf70a9346b 100644 --- a/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj +++ b/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj @@ -24,7 +24,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Semmle.Extraction.CSharp.Standalone.csproj b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Semmle.Extraction.CSharp.Standalone.csproj index 38ba70ce285..525b1081bff 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Semmle.Extraction.CSharp.Standalone.csproj +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Semmle.Extraction.CSharp.Standalone.csproj @@ -6,7 +6,7 @@ Semmle.Extraction.CSharp.Standalone false false - + win-x64;linux-x64;osx-x64 enable @@ -19,7 +19,7 @@ - + diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj b/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj index 4227a1df710..a06a1df38f2 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj +++ b/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj @@ -18,7 +18,7 @@ - - + + \ No newline at end of file diff --git a/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj b/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj index 4e04bafc638..92bf46deb44 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj +++ b/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj @@ -8,12 +8,12 @@ - - + + all runtime; build; native; contentfiles; analyzers - + diff --git a/csharp/extractor/Semmle.Extraction/Semmle.Extraction.csproj b/csharp/extractor/Semmle.Extraction/Semmle.Extraction.csproj index 1c15b614ce4..433bb15ab1f 100644 --- a/csharp/extractor/Semmle.Extraction/Semmle.Extraction.csproj +++ b/csharp/extractor/Semmle.Extraction/Semmle.Extraction.csproj @@ -12,9 +12,9 @@ TRACE;DEBUG;DEBUG_LABELS - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/csharp/extractor/Semmle.Util.Tests/Semmle.Util.Tests.csproj b/csharp/extractor/Semmle.Util.Tests/Semmle.Util.Tests.csproj index cb362f6df33..384555bf18c 100644 --- a/csharp/extractor/Semmle.Util.Tests/Semmle.Util.Tests.csproj +++ b/csharp/extractor/Semmle.Util.Tests/Semmle.Util.Tests.csproj @@ -6,12 +6,12 @@ enable - - + + all runtime; build; native; contentfiles; analyzers - + diff --git a/csharp/extractor/Semmle.Util/Semmle.Util.csproj b/csharp/extractor/Semmle.Util/Semmle.Util.csproj index b2f15484886..894488f9f84 100644 --- a/csharp/extractor/Semmle.Util/Semmle.Util.csproj +++ b/csharp/extractor/Semmle.Util/Semmle.Util.csproj @@ -15,7 +15,7 @@ - + diff --git a/csharp/ql/integration-tests/posix-only/dotnet_test/dotnet_test.csproj b/csharp/ql/integration-tests/posix-only/dotnet_test/dotnet_test.csproj index 5ea4974db7f..968726df756 100644 --- a/csharp/ql/integration-tests/posix-only/dotnet_test/dotnet_test.csproj +++ b/csharp/ql/integration-tests/posix-only/dotnet_test/dotnet_test.csproj @@ -8,10 +8,10 @@ - + - - + + diff --git a/csharp/ql/integration-tests/posix-only/dotnet_test_mstest/dotnet_test_mstest.csproj b/csharp/ql/integration-tests/posix-only/dotnet_test_mstest/dotnet_test_mstest.csproj index dfa6909c44b..95c7586e04e 100644 --- a/csharp/ql/integration-tests/posix-only/dotnet_test_mstest/dotnet_test_mstest.csproj +++ b/csharp/ql/integration-tests/posix-only/dotnet_test_mstest/dotnet_test_mstest.csproj @@ -10,10 +10,10 @@ - - - - + + + + From 7aa5d2dc8a0074876a426c4097886f13909fd5cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20St=C3=B6ckli?= Date: Wed, 6 Sep 2023 16:54:18 +0200 Subject: [PATCH 222/788] Python: move asyncio CMDi related tests to stdlib tests --- .../stdlib/SystemCommandExecution.py | 18 +++++ .../CommandInjection.expected | 66 ------------------- .../DataflowQueryTest.expected | 2 +- .../command_injection.py | 47 ------------- 4 files changed, 19 insertions(+), 114 deletions(-) diff --git a/python/ql/test/library-tests/frameworks/stdlib/SystemCommandExecution.py b/python/ql/test/library-tests/frameworks/stdlib/SystemCommandExecution.py index 7a9d91d52b9..593b66cb694 100644 --- a/python/ql/test/library-tests/frameworks/stdlib/SystemCommandExecution.py +++ b/python/ql/test/library-tests/frameworks/stdlib/SystemCommandExecution.py @@ -158,3 +158,21 @@ safe_cmd = "ls {}".format(shlex.quote(tainted)) wrong_use = shlex.quote("ls {}".format(tainted)) # still dangerous, for example cmd = "sh -c " + wrong_use + +######################################## +# Program/shell command execution via asyncio + +import asyncio +from asyncio import subprocess + +asyncio.run(asyncio.create_subprocess_exec("executable", "arg0")) # $getCommand="executable" getAPathArgument="executable" +asyncio.run(subprocess.create_subprocess_exec("executable", "arg0")) # $getCommand="executable" getAPathArgument="executable" + +loop = asyncio.new_event_loop() +loop.run_until_complete(loop.subprocess_exec(asyncio.SubprocessProtocol, "executable", "arg0")) # $getCommand="executable" getAPathArgument="executable" + +asyncio.run(asyncio.create_subprocess_shell("shell_command")) # $getCommand="shell_command" getAPathArgument="shell_command" +asyncio.run(subprocess.create_subprocess_shell("shell_command")) # $getCommand="shell_command" getAPathArgument="shell_command" + +loop = asyncio.get_running_loop() +loop.run_until_complete(loop.subprocess_shell(asyncio.SubprocessProtocol, "shell_command")) # $getCommand="shell_command" getAPathArgument="shell_command" diff --git a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected index c3363978d8e..9cb040f5a98 100644 --- a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected @@ -8,12 +8,6 @@ edges | command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:54:15:54:21 | ControlFlowNode for request | | command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:71:12:71:18 | ControlFlowNode for request | | command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:78:12:78:18 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:87:13:87:19 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:92:13:92:19 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:102:13:102:19 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:112:13:112:19 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:117:13:117:19 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | GSSA Variable request | command_injection.py:122:13:122:19 | ControlFlowNode for request | | command_injection.py:11:5:11:9 | SSA variable files | command_injection.py:13:15:13:27 | ControlFlowNode for BinaryExpr | | command_injection.py:11:13:11:19 | ControlFlowNode for request | command_injection.py:11:13:11:24 | ControlFlowNode for Attribute | | command_injection.py:11:13:11:24 | ControlFlowNode for Attribute | command_injection.py:11:13:11:41 | ControlFlowNode for Attribute() | @@ -51,30 +45,6 @@ edges | command_injection.py:78:12:78:18 | ControlFlowNode for request | command_injection.py:78:12:78:23 | ControlFlowNode for Attribute | | command_injection.py:78:12:78:23 | ControlFlowNode for Attribute | command_injection.py:78:12:78:39 | ControlFlowNode for Attribute() | | command_injection.py:78:12:78:39 | ControlFlowNode for Attribute() | command_injection.py:78:5:78:8 | SSA variable path | -| command_injection.py:87:5:87:9 | SSA variable files | command_injection.py:88:48:88:52 | ControlFlowNode for files | -| command_injection.py:87:13:87:19 | ControlFlowNode for request | command_injection.py:87:13:87:24 | ControlFlowNode for Attribute | -| command_injection.py:87:13:87:24 | ControlFlowNode for Attribute | command_injection.py:87:13:87:41 | ControlFlowNode for Attribute() | -| command_injection.py:87:13:87:41 | ControlFlowNode for Attribute() | command_injection.py:87:5:87:9 | SSA variable files | -| command_injection.py:92:5:92:9 | SSA variable files | command_injection.py:93:51:93:55 | ControlFlowNode for files | -| command_injection.py:92:13:92:19 | ControlFlowNode for request | command_injection.py:92:13:92:24 | ControlFlowNode for Attribute | -| command_injection.py:92:13:92:24 | ControlFlowNode for Attribute | command_injection.py:92:13:92:41 | ControlFlowNode for Attribute() | -| command_injection.py:92:13:92:41 | ControlFlowNode for Attribute() | command_injection.py:92:5:92:9 | SSA variable files | -| command_injection.py:102:5:102:9 | SSA variable files | command_injection.py:106:82:106:86 | ControlFlowNode for files | -| command_injection.py:102:13:102:19 | ControlFlowNode for request | command_injection.py:102:13:102:24 | ControlFlowNode for Attribute | -| command_injection.py:102:13:102:24 | ControlFlowNode for Attribute | command_injection.py:102:13:102:41 | ControlFlowNode for Attribute() | -| command_injection.py:102:13:102:41 | ControlFlowNode for Attribute() | command_injection.py:102:5:102:9 | SSA variable files | -| command_injection.py:112:5:112:9 | SSA variable files | command_injection.py:113:49:113:53 | ControlFlowNode for files | -| command_injection.py:112:13:112:19 | ControlFlowNode for request | command_injection.py:112:13:112:24 | ControlFlowNode for Attribute | -| command_injection.py:112:13:112:24 | ControlFlowNode for Attribute | command_injection.py:112:13:112:41 | ControlFlowNode for Attribute() | -| command_injection.py:112:13:112:41 | ControlFlowNode for Attribute() | command_injection.py:112:5:112:9 | SSA variable files | -| command_injection.py:117:5:117:9 | SSA variable files | command_injection.py:118:52:118:56 | ControlFlowNode for files | -| command_injection.py:117:13:117:19 | ControlFlowNode for request | command_injection.py:117:13:117:24 | ControlFlowNode for Attribute | -| command_injection.py:117:13:117:24 | ControlFlowNode for Attribute | command_injection.py:117:13:117:41 | ControlFlowNode for Attribute() | -| command_injection.py:117:13:117:41 | ControlFlowNode for Attribute() | command_injection.py:117:5:117:9 | SSA variable files | -| command_injection.py:122:5:122:9 | SSA variable files | command_injection.py:125:83:125:87 | ControlFlowNode for files | -| command_injection.py:122:13:122:19 | ControlFlowNode for request | command_injection.py:122:13:122:24 | ControlFlowNode for Attribute | -| command_injection.py:122:13:122:24 | ControlFlowNode for Attribute | command_injection.py:122:13:122:41 | ControlFlowNode for Attribute() | -| command_injection.py:122:13:122:41 | ControlFlowNode for Attribute() | command_injection.py:122:5:122:9 | SSA variable files | nodes | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | command_injection.py:5:26:5:32 | GSSA Variable request | semmle.label | GSSA Variable request | @@ -123,36 +93,6 @@ nodes | command_injection.py:78:12:78:23 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | command_injection.py:78:12:78:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | command_injection.py:80:19:80:30 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | -| command_injection.py:87:5:87:9 | SSA variable files | semmle.label | SSA variable files | -| command_injection.py:87:13:87:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| command_injection.py:87:13:87:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | -| command_injection.py:87:13:87:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| command_injection.py:88:48:88:52 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | -| command_injection.py:92:5:92:9 | SSA variable files | semmle.label | SSA variable files | -| command_injection.py:92:13:92:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| command_injection.py:92:13:92:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | -| command_injection.py:92:13:92:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| command_injection.py:93:51:93:55 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | -| command_injection.py:102:5:102:9 | SSA variable files | semmle.label | SSA variable files | -| command_injection.py:102:13:102:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| command_injection.py:102:13:102:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | -| command_injection.py:102:13:102:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| command_injection.py:106:82:106:86 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | -| command_injection.py:112:5:112:9 | SSA variable files | semmle.label | SSA variable files | -| command_injection.py:112:13:112:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| command_injection.py:112:13:112:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | -| command_injection.py:112:13:112:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| command_injection.py:113:49:113:53 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | -| command_injection.py:117:5:117:9 | SSA variable files | semmle.label | SSA variable files | -| command_injection.py:117:13:117:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| command_injection.py:117:13:117:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | -| command_injection.py:117:13:117:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| command_injection.py:118:52:118:56 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | -| command_injection.py:122:5:122:9 | SSA variable files | semmle.label | SSA variable files | -| command_injection.py:122:13:122:19 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| command_injection.py:122:13:122:24 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | -| command_injection.py:122:13:122:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| command_injection.py:125:83:125:87 | ControlFlowNode for files | semmle.label | ControlFlowNode for files | subpaths #select | command_injection.py:13:15:13:27 | ControlFlowNode for BinaryExpr | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:13:15:13:27 | ControlFlowNode for BinaryExpr | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | @@ -168,9 +108,3 @@ subpaths | command_injection.py:59:20:59:26 | ControlFlowNode for command | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:59:20:59:26 | ControlFlowNode for command | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | | command_injection.py:73:19:73:30 | ControlFlowNode for BinaryExpr | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:73:19:73:30 | ControlFlowNode for BinaryExpr | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | | command_injection.py:80:19:80:30 | ControlFlowNode for BinaryExpr | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:80:19:80:30 | ControlFlowNode for BinaryExpr | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | -| command_injection.py:88:48:88:52 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:88:48:88:52 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | -| command_injection.py:93:51:93:55 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:93:51:93:55 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | -| command_injection.py:106:82:106:86 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:106:82:106:86 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | -| command_injection.py:113:49:113:53 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:113:49:113:53 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | -| command_injection.py:118:52:118:56 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:118:52:118:56 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | -| command_injection.py:125:83:125:87 | ControlFlowNode for files | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:125:83:125:87 | ControlFlowNode for files | This command line depends on a $@. | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.expected b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.expected index 303d04688ff..04431311999 100644 --- a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.expected +++ b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.expected @@ -1,3 +1,3 @@ -failures missingAnnotationOnSink +failures testFailures diff --git a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/command_injection.py b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/command_injection.py index 6a7289e3708..c969a1b1020 100644 --- a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/command_injection.py +++ b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/command_injection.py @@ -78,50 +78,3 @@ def restricted_characters(): path = request.args.get('path', '') if re.match(r'^[a-zA-Z0-9_-]+$', path): os.system("ls " + path) # $SPURIOUS: result=BAD - -import asyncio -from asyncio import subprocess - -@app.route("/asyncio-exec1") -def asyncio_exec_command_injection1(): - files = request.args.get('files', '') - asyncio.run(asyncio.create_subprocess_exec(files)) # $result=BAD - -@app.route("/asyncio-exec2") -def asyncio_exec_command_injection2(): - files = request.args.get('files', '') - asyncio.run(subprocess.create_subprocess_exec(files)) # $result=BAD - -@app.route("/asyncio-exec-args") -def asyncio_exec_arg_injection(): - files = request.args.get('files', '') - asyncio.run(asyncio.create_subprocess_exec("ls", files)) # $result=OK - only an argument injection, not a command injection - -@app.route("/asyncio-eventloop-command1") -def asyncio_eventloop_exec_command_injection1(): - files = request.args.get('files', '') - args = ["-a", "-l"] - loop = asyncio.new_event_loop() - try: - loop.run_until_complete(loop.subprocess_exec(asyncio.SubprocessProtocol, files, *args)) # $result=BAD - finally: - loop.close() - -@app.route("/asyncio-shell1") -def asyncio_shell_command_injection1(): - files = request.args.get('files', '') - asyncio.run(asyncio.create_subprocess_shell(files)) # $result=BAD - -@app.route("/asyncio-shell2") -def asyncio_shell_command_injection1(): - files = request.args.get('files', '') - asyncio.run(subprocess.create_subprocess_shell(files)) # $result=BAD - -@app.route("/asyncio-eventloop-shell1") -def asyncio_eventloop_shell_command_injection1(): - files = request.args.get('files', '') - loop = asyncio.new_event_loop() - try: - loop.run_until_complete(loop.subprocess_shell(asyncio.SubprocessProtocol, files)) # $result=BAD - finally: - loop.close() From 14faa5d0200cc3ccc96ecfd15283bb9f3f58e873 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Sep 2023 17:19:44 +0100 Subject: [PATCH 223/788] C++: Fix off-by-one in 'asDefiningArgument' so that the domain of the argument is '[1..]' like 'asIndirectArgument'. --- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 9355493303a..7cc9d54a304 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -254,9 +254,7 @@ class Node extends TIRDataFlowNode { * after the `f` has returned. */ Expr asDefiningArgument(int index) { - // Subtract one because `DefinitionByReferenceNode` is defined to be in - // the range `[0 ... n - 1]` for some `n` instead of `[1 ... n]`. - this.(DefinitionByReferenceNode).getIndirectionIndex() = index - 1 and + this.(DefinitionByReferenceNode).getIndirectionIndex() = index and result = this.(DefinitionByReferenceNode).getArgument() } From 87925abaa25e9fadbba2e27cdc65130b30106fe8 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Sep 2023 17:26:08 +0100 Subject: [PATCH 224/788] C++: Add change note. --- .../2023-09-06-as-defining-argument-off-by-one-fix.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md diff --git a/cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md b/cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md new file mode 100644 index 00000000000..ab482e5ad81 --- /dev/null +++ b/cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `DataFlow::asDefiningArgument` predicate now takes its argument from the range starting at `1` instead of `2`. Queries that depend on the single-parameter version of `DataFlow::asDefiningArgument` should have their arguments arguments accordingly. From 3f6346737c9cd7076b6c9f8a4bf146dea75b3681 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Sep 2023 19:48:48 +0100 Subject: [PATCH 225/788] Update 2023-09-06-as-defining-argument-off-by-one-fix.md Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> --- .../2023-09-06-as-defining-argument-off-by-one-fix.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md b/cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md index ab482e5ad81..11c3b736682 100644 --- a/cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md +++ b/cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* The `DataFlow::asDefiningArgument` predicate now takes its argument from the range starting at `1` instead of `2`. Queries that depend on the single-parameter version of `DataFlow::asDefiningArgument` should have their arguments arguments accordingly. +* The `DataFlow::asDefiningArgument` predicate now takes its argument from the range starting at `1` instead of `2`. Queries that depend on the single-parameter version of `DataFlow::asDefiningArgument` should have their arguments updated accordingly. From 718e49180048cedcb56c6a40f2dc4085ca5fd500 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 5 Sep 2023 21:19:34 +0200 Subject: [PATCH 226/788] C#: Clear TRAP stack when calling `PopulateGenerics` --- .../Entities/Types/Type.cs | 61 ++++++++++--------- csharp/extractor/Semmle.Extraction/Context.cs | 4 +- .../library-tests/csharp7/TupleExpr.expected | 20 +++--- .../library-tests/csharp7/TupleTypes.expected | 5 +- 4 files changed, 48 insertions(+), 42 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs index 25c8926e3e0..8c93d630d15 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs @@ -250,41 +250,44 @@ namespace Semmle.Extraction.CSharp.Entities /// public void PopulateGenerics() { - if (Symbol is null || !NeedsPopulation || !Context.ExtractGenerics(this)) - return; - - var members = new List(); - - foreach (var member in Symbol.GetMembers()) - members.Add(member); - foreach (var member in Symbol.GetTypeMembers()) - members.Add(member); - - // Mono extractor puts all BASE interface members as members of the current interface. - - if (Symbol.TypeKind == TypeKind.Interface) + Context.PopulateLater(() => { - foreach (var baseInterface in Symbol.Interfaces) + if (Symbol is null || !NeedsPopulation || !Context.ExtractGenerics(this)) + return; + + var members = new List(); + + foreach (var member in Symbol.GetMembers()) + members.Add(member); + foreach (var member in Symbol.GetTypeMembers()) + members.Add(member); + + // Mono extractor puts all BASE interface members as members of the current interface. + + if (Symbol.TypeKind == TypeKind.Interface) { - foreach (var member in baseInterface.GetMembers()) - members.Add(member); - foreach (var member in baseInterface.GetTypeMembers()) - members.Add(member); + foreach (var baseInterface in Symbol.Interfaces) + { + foreach (var member in baseInterface.GetMembers()) + members.Add(member); + foreach (var member in baseInterface.GetTypeMembers()) + members.Add(member); + } } - } - foreach (var member in members) - { - Context.CreateEntity(member); - } + foreach (var member in members) + { + Context.CreateEntity(member); + } - if (Symbol.BaseType is not null) - Create(Context, Symbol.BaseType).PopulateGenerics(); + if (Symbol.BaseType is not null) + Create(Context, Symbol.BaseType).PopulateGenerics(); - foreach (var i in Symbol.Interfaces) - { - Create(Context, i).PopulateGenerics(); - } + foreach (var i in Symbol.Interfaces) + { + Create(Context, i).PopulateGenerics(); + } + }, preserveDuplicationKey: false); } public void ExtractRecursive(TextWriter trapFile, IEntity parent) diff --git a/csharp/extractor/Semmle.Extraction/Context.cs b/csharp/extractor/Semmle.Extraction/Context.cs index 6694757f0d8..a6442758daf 100644 --- a/csharp/extractor/Semmle.Extraction/Context.cs +++ b/csharp/extractor/Semmle.Extraction/Context.cs @@ -153,9 +153,9 @@ namespace Semmle.Extraction /// Enqueue the given action to be performed later. /// /// The action to run. - public void PopulateLater(Action a) + public void PopulateLater(Action a, bool preserveDuplicationKey = true) { - var key = GetCurrentTagStackKey(); + var key = preserveDuplicationKey ? GetCurrentTagStackKey() : null; if (key is not null) { // If we are currently executing with a duplication guard, then the same diff --git a/csharp/ql/test/library-tests/csharp7/TupleExpr.expected b/csharp/ql/test/library-tests/csharp7/TupleExpr.expected index ed5c61051c1..66ceb61382b 100644 --- a/csharp/ql/test/library-tests/csharp7/TupleExpr.expected +++ b/csharp/ql/test/library-tests/csharp7/TupleExpr.expected @@ -40,8 +40,8 @@ | CSharp7.cs:87:18:87:34 | (..., ...) | CSharp7.cs:87:18:87:34 | (String,String) | 1 | CSharp7.cs:87:30:87:33 | "X2" | | CSharp7.cs:88:9:88:24 | (..., ...) | CSharp7.cs:87:18:87:34 | (String,String) | 0 | CSharp7.cs:88:14:88:15 | String t2 | | CSharp7.cs:88:9:88:24 | (..., ...) | CSharp7.cs:87:18:87:34 | (String,String) | 1 | CSharp7.cs:88:22:88:23 | String t3 | -| CSharp7.cs:95:18:95:38 | (..., ...) | file://:0:0:0:0 | (Int32,String) | 0 | CSharp7.cs:95:19:95:19 | 1 | -| CSharp7.cs:95:18:95:38 | (..., ...) | file://:0:0:0:0 | (Int32,String) | 1 | CSharp7.cs:95:22:95:37 | "TupleExprNode1" | +| CSharp7.cs:95:18:95:38 | (..., ...) | CSharp7.cs:95:18:95:38 | (Int32,String) | 0 | CSharp7.cs:95:19:95:19 | 1 | +| CSharp7.cs:95:18:95:38 | (..., ...) | CSharp7.cs:95:18:95:38 | (Int32,String) | 1 | CSharp7.cs:95:22:95:37 | "TupleExprNode1" | | CSharp7.cs:96:18:96:43 | (..., ...) | CSharp7.cs:96:18:96:43 | (Int32,(String,Int32)) | 0 | CSharp7.cs:96:19:96:19 | 1 | | CSharp7.cs:96:18:96:43 | (..., ...) | CSharp7.cs:96:18:96:43 | (Int32,(String,Int32)) | 1 | CSharp7.cs:96:22:96:42 | (..., ...) | | CSharp7.cs:96:22:96:42 | (..., ...) | file://:0:0:0:0 | (String,Int32) | 0 | CSharp7.cs:96:23:96:38 | "TupleExprNode2" | @@ -82,11 +82,11 @@ | CSharp7.cs:223:9:223:18 | (..., ...) | CSharp7.cs:213:5:213:17 | (Int32,Double) | 1 | CSharp7.cs:223:17:223:17 | _ | | CSharp7.cs:224:9:224:18 | (..., ...) | CSharp7.cs:213:5:213:17 | (Int32,Double) | 0 | CSharp7.cs:224:10:224:10 | _ | | CSharp7.cs:224:9:224:18 | (..., ...) | CSharp7.cs:213:5:213:17 | (Int32,Double) | 1 | CSharp7.cs:224:17:224:17 | Double y | -| CSharp7.cs:283:40:283:61 | (..., ...) | file://:0:0:0:0 | (Int32,String) | 0 | CSharp7.cs:283:41:283:48 | access to property Key | -| CSharp7.cs:283:40:283:61 | (..., ...) | file://:0:0:0:0 | (Int32,String) | 1 | CSharp7.cs:283:51:283:60 | access to property Value | -| CSharp7.cs:285:18:285:34 | (..., ...) | file://:0:0:0:0 | (Int32,String) | 0 | CSharp7.cs:285:23:285:23 | Int32 a | -| CSharp7.cs:285:18:285:34 | (..., ...) | file://:0:0:0:0 | (Int32,String) | 1 | CSharp7.cs:285:33:285:33 | String b | -| CSharp7.cs:287:18:287:31 | (..., ...) | file://:0:0:0:0 | (Int32,String) | 0 | CSharp7.cs:287:23:287:23 | Int32 a | -| CSharp7.cs:287:18:287:31 | (..., ...) | file://:0:0:0:0 | (Int32,String) | 1 | CSharp7.cs:287:30:287:30 | String b | -| CSharp7.cs:289:18:289:27 | (..., ...) | file://:0:0:0:0 | (Int32,String) | 0 | CSharp7.cs:289:23:289:23 | Int32 a | -| CSharp7.cs:289:18:289:27 | (..., ...) | file://:0:0:0:0 | (Int32,String) | 1 | CSharp7.cs:289:26:289:26 | String b | +| CSharp7.cs:283:40:283:61 | (..., ...) | CSharp7.cs:95:18:95:38 | (Int32,String) | 0 | CSharp7.cs:283:41:283:48 | access to property Key | +| CSharp7.cs:283:40:283:61 | (..., ...) | CSharp7.cs:95:18:95:38 | (Int32,String) | 1 | CSharp7.cs:283:51:283:60 | access to property Value | +| CSharp7.cs:285:18:285:34 | (..., ...) | CSharp7.cs:95:18:95:38 | (Int32,String) | 0 | CSharp7.cs:285:23:285:23 | Int32 a | +| CSharp7.cs:285:18:285:34 | (..., ...) | CSharp7.cs:95:18:95:38 | (Int32,String) | 1 | CSharp7.cs:285:33:285:33 | String b | +| CSharp7.cs:287:18:287:31 | (..., ...) | CSharp7.cs:95:18:95:38 | (Int32,String) | 0 | CSharp7.cs:287:23:287:23 | Int32 a | +| CSharp7.cs:287:18:287:31 | (..., ...) | CSharp7.cs:95:18:95:38 | (Int32,String) | 1 | CSharp7.cs:287:30:287:30 | String b | +| CSharp7.cs:289:18:289:27 | (..., ...) | CSharp7.cs:95:18:95:38 | (Int32,String) | 0 | CSharp7.cs:289:23:289:23 | Int32 a | +| CSharp7.cs:289:18:289:27 | (..., ...) | CSharp7.cs:95:18:95:38 | (Int32,String) | 1 | CSharp7.cs:289:26:289:26 | String b | diff --git a/csharp/ql/test/library-tests/csharp7/TupleTypes.expected b/csharp/ql/test/library-tests/csharp7/TupleTypes.expected index 55c27e756f4..d958ad60e4d 100644 --- a/csharp/ql/test/library-tests/csharp7/TupleTypes.expected +++ b/csharp/ql/test/library-tests/csharp7/TupleTypes.expected @@ -1,10 +1,13 @@ | (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 0 | CSharp7.cs:96:19:96:19 | Item1 | -| (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 1 | CSharp7.cs:96:22:96:42 | Item2 | +| (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 1 | CSharp7.cs:102:22:102:46 | Item2 | | (Int32,Double) | (int, double) | ValueTuple | 2 | 0 | CSharp7.cs:213:6:213:8 | Item1 | | (Int32,Double) | (int, double) | ValueTuple | 2 | 1 | CSharp7.cs:213:11:213:16 | Item2 | | (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:62:10:62:10 | Item1 | | (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:62:17:62:17 | Item2 | +| (Int32,String) | (int, string) | ValueTuple | 2 | 0 | CSharp7.cs:95:19:95:19 | Item1 | +| (Int32,String) | (int, string) | ValueTuple | 2 | 1 | CSharp7.cs:95:22:95:37 | Item2 | | (String,Int32) | (string, int) | ValueTuple | 2 | 0 | CSharp7.cs:82:17:82:17 | Item1 | +| (String,Int32) | (string, int) | ValueTuple | 2 | 0 | CSharp7.cs:101:19:101:38 | Item1 | | (String,Int32) | (string, int) | ValueTuple | 2 | 1 | CSharp7.cs:82:23:82:23 | Item2 | | (String,String) | (string, string) | ValueTuple | 2 | 0 | CSharp7.cs:87:19:87:27 | Item1 | | (String,String) | (string, string) | ValueTuple | 2 | 1 | CSharp7.cs:87:30:87:33 | Item2 | From ccbc6f446a2361779e2ea0a0211cddf65891226c Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Wed, 6 Sep 2023 22:11:53 +0100 Subject: [PATCH 227/788] Use `git ls-files` to find DLLs to index --- .../BuildScripts.cs | 8 +-- .../StandaloneBuildRule.cs | 2 - .../AssemblyCache.cs | 20 ++++-- .../DependencyManager.cs | 7 ++- .../Git.cs | 61 +++++++++++++++++++ 5 files changed, 86 insertions(+), 12 deletions(-) create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Git.cs diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs index fb07ae02f60..04525c8bd67 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs @@ -557,7 +557,7 @@ namespace Semmle.Autobuild.CSharp.Tests [Fact] public void TestLinuxBuildlessExtractionSuccess() { - actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone --references:."] = 0; + actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 0; actions.FileExists["csharp.log"] = true; actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = ""; actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = ""; @@ -571,7 +571,7 @@ namespace Semmle.Autobuild.CSharp.Tests [Fact] public void TestLinuxBuildlessExtractionFailed() { - actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone --references:."] = 10; + actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 10; actions.FileExists["csharp.log"] = true; actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = ""; actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = ""; @@ -585,7 +585,7 @@ namespace Semmle.Autobuild.CSharp.Tests [Fact] public void TestLinuxBuildlessExtractionSolution() { - actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone foo.sln --references:."] = 0; + actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone foo.sln"] = 0; actions.FileExists["csharp.log"] = true; actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = ""; actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = ""; @@ -873,7 +873,7 @@ namespace Semmle.Autobuild.CSharp.Tests [Fact] public void TestSkipNugetBuildless() { - actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone foo.sln --references:. --skip-nuget"] = 0; + actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone foo.sln --skip-nuget"] = 0; actions.FileExists["csharp.log"] = true; actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = ""; actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = ""; diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp/StandaloneBuildRule.cs b/csharp/autobuilder/Semmle.Autobuild.CSharp/StandaloneBuildRule.cs index e72a22065d1..80931d67d7c 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp/StandaloneBuildRule.cs +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp/StandaloneBuildRule.cs @@ -35,8 +35,6 @@ namespace Semmle.Autobuild.CSharp if (solution is not null) cmd.QuoteArgument(solution); - cmd.Argument("--references:."); - if (!builder.Options.NugetRestore) { cmd.Argument("--skip-nuget"); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/AssemblyCache.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/AssemblyCache.cs index ce64445d40f..75bfbc0e778 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/AssemblyCache.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/AssemblyCache.cs @@ -15,14 +15,24 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// /// Locate all reference files and index them. /// - /// Directories to search. + /// + /// Paths to search. Directories are searched recursively. Files are added directly to the + /// assembly cache. + /// /// Callback for progress. - public AssemblyCache(IEnumerable dirs, ProgressMonitor progressMonitor) + public AssemblyCache(IEnumerable paths, ProgressMonitor progressMonitor) { - foreach (var dir in dirs) + foreach (var path in paths) { - progressMonitor.FindingFiles(dir); - AddReferenceDirectory(dir); + if (File.Exists(path)) + { + pendingDllsToIndex.Enqueue(path); + } + else + { + progressMonitor.FindingFiles(path); + AddReferenceDirectory(path); + } } IndexReferences(); } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index baa4dee04a3..f82e2512abb 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -31,6 +31,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private readonly FileContent fileContent; private readonly TemporaryDirectory packageDirectory; private TemporaryDirectory? razorWorkingDirectory; + private readonly Git git; /// @@ -68,7 +69,11 @@ namespace Semmle.Extraction.CSharp.DependencyFetching ? new[] { options.SolutionFile } : allFiles.SelectFileNamesByExtension(".sln"); - var dllDirNames = options.DllDirs.Select(Path.GetFullPath).ToList(); + // If DLL reference paths are specified on the command-line, use those to discover + // assemblies. Otherwise (the default), query the git CLI to determine which DLL files + // are tracked as part of the repository. + this.git = new Git(this.progressMonitor); + var dllDirNames = options.DllDirs.Count == 0 ? this.git.ListFiles("*.dll") : options.DllDirs.Select(Path.GetFullPath).ToList(); // Find DLLs in the .Net / Asp.Net Framework if (options.ScanNetFrameworkDlls) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Git.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Git.cs new file mode 100644 index 00000000000..d8baf49483b --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Git.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; + +namespace Semmle.Extraction.CSharp.DependencyFetching +{ + /// + /// Utilities for querying information from the git CLI. + /// + internal class Git + { + private readonly ProgressMonitor progressMonitor; + private const string git = "git"; + + public Git(ProgressMonitor progressMonitor) + { + this.progressMonitor = progressMonitor; + } + + /// + /// Lists all files matching which are tracked in the + /// current git repository. + /// + /// The file pattern. + /// A list of all tracked files which match . + /// + public List ListFiles(string pattern) + { + var results = new List(); + var args = string.Join(' ', "ls-files", $"\"{pattern}\""); + + progressMonitor.RunningProcess($"{git} {args}"); + var pi = new ProcessStartInfo(git, args) + { + UseShellExecute = false, + RedirectStandardOutput = true + }; + + using var p = new Process() { StartInfo = pi }; + p.OutputDataReceived += new DataReceivedEventHandler((sender, e) => + { + if (!string.IsNullOrWhiteSpace(e.Data)) + { + results.Add(e.Data); + } + }); + p.Start(); + p.BeginOutputReadLine(); + p.WaitForExit(); + + if (p.ExitCode != 0) + { + progressMonitor.CommandFailed(git, args, p.ExitCode); + throw new Exception($"{git} {args} failed"); + } + + return results; + } + + } +} From 60dc1afbc06358070edf1c28a875917d97194c38 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 15 Aug 2023 10:01:20 +0200 Subject: [PATCH 228/788] Python: prepare to promote NoSqlInjection Mostly move files, preserving authourship. This will not compile. --- python/ql/lib/semmle/python/Frameworks.qll | 1 + .../{src/experimental => lib}/semmle/python/frameworks/NoSQL.qll | 0 .../semmle/python/security/dataflow}/NoSQLInjection.qll | 0 .../src/{experimental => }/Security/CWE-943/NoSQLInjection.qhelp | 0 .../ql/src/{experimental => }/Security/CWE-943/NoSQLInjection.ql | 0 .../Security/CWE-943/examples/NoSQLInjection-bad.py | 0 .../Security/CWE-943/examples/NoSQLInjection-good.py | 0 python/ql/src/experimental/semmle/python/Frameworks.qll | 1 - .../query-tests/Security/CWE-943/NoSQLInjection.expected | 0 .../query-tests/Security/CWE-943/NoSQLInjection.qlref | 0 .../query-tests/Security/CWE-943/flask_mongoengine_bad.py | 0 .../query-tests/Security/CWE-943/flask_mongoengine_good.py | 0 .../query-tests/Security/CWE-943/flask_pymongo_bad.py | 0 .../query-tests/Security/CWE-943/flask_pymongo_good.py | 0 .../query-tests/Security/CWE-943/mongoengine_bad.py | 0 .../query-tests/Security/CWE-943/mongoengine_good.py | 0 .../query-tests/Security/CWE-943/pymongo_test.py | 0 17 files changed, 1 insertion(+), 1 deletion(-) rename python/ql/{src/experimental => lib}/semmle/python/frameworks/NoSQL.qll (100%) rename python/ql/{src/experimental/semmle/python/security/injection => lib/semmle/python/security/dataflow}/NoSQLInjection.qll (100%) rename python/ql/src/{experimental => }/Security/CWE-943/NoSQLInjection.qhelp (100%) rename python/ql/src/{experimental => }/Security/CWE-943/NoSQLInjection.ql (100%) rename python/ql/src/{experimental => }/Security/CWE-943/examples/NoSQLInjection-bad.py (100%) rename python/ql/src/{experimental => }/Security/CWE-943/examples/NoSQLInjection-good.py (100%) rename python/ql/test/{experimental => }/query-tests/Security/CWE-943/NoSQLInjection.expected (100%) rename python/ql/test/{experimental => }/query-tests/Security/CWE-943/NoSQLInjection.qlref (100%) rename python/ql/test/{experimental => }/query-tests/Security/CWE-943/flask_mongoengine_bad.py (100%) rename python/ql/test/{experimental => }/query-tests/Security/CWE-943/flask_mongoengine_good.py (100%) rename python/ql/test/{experimental => }/query-tests/Security/CWE-943/flask_pymongo_bad.py (100%) rename python/ql/test/{experimental => }/query-tests/Security/CWE-943/flask_pymongo_good.py (100%) rename python/ql/test/{experimental => }/query-tests/Security/CWE-943/mongoengine_bad.py (100%) rename python/ql/test/{experimental => }/query-tests/Security/CWE-943/mongoengine_good.py (100%) rename python/ql/test/{experimental => }/query-tests/Security/CWE-943/pymongo_test.py (100%) diff --git a/python/ql/lib/semmle/python/Frameworks.qll b/python/ql/lib/semmle/python/Frameworks.qll index 82cb69679cb..171918349c6 100644 --- a/python/ql/lib/semmle/python/Frameworks.qll +++ b/python/ql/lib/semmle/python/Frameworks.qll @@ -36,6 +36,7 @@ private import semmle.python.frameworks.MarkupSafe private import semmle.python.frameworks.Multidict private import semmle.python.frameworks.Mysql private import semmle.python.frameworks.MySQLdb +private import semmle.python.frameworks.NoSQL private import semmle.python.frameworks.Oracledb private import semmle.python.frameworks.Peewee private import semmle.python.frameworks.Phoenixdb diff --git a/python/ql/src/experimental/semmle/python/frameworks/NoSQL.qll b/python/ql/lib/semmle/python/frameworks/NoSQL.qll similarity index 100% rename from python/ql/src/experimental/semmle/python/frameworks/NoSQL.qll rename to python/ql/lib/semmle/python/frameworks/NoSQL.qll diff --git a/python/ql/src/experimental/semmle/python/security/injection/NoSQLInjection.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjection.qll similarity index 100% rename from python/ql/src/experimental/semmle/python/security/injection/NoSQLInjection.qll rename to python/ql/lib/semmle/python/security/dataflow/NoSQLInjection.qll diff --git a/python/ql/src/experimental/Security/CWE-943/NoSQLInjection.qhelp b/python/ql/src/Security/CWE-943/NoSQLInjection.qhelp similarity index 100% rename from python/ql/src/experimental/Security/CWE-943/NoSQLInjection.qhelp rename to python/ql/src/Security/CWE-943/NoSQLInjection.qhelp diff --git a/python/ql/src/experimental/Security/CWE-943/NoSQLInjection.ql b/python/ql/src/Security/CWE-943/NoSQLInjection.ql similarity index 100% rename from python/ql/src/experimental/Security/CWE-943/NoSQLInjection.ql rename to python/ql/src/Security/CWE-943/NoSQLInjection.ql diff --git a/python/ql/src/experimental/Security/CWE-943/examples/NoSQLInjection-bad.py b/python/ql/src/Security/CWE-943/examples/NoSQLInjection-bad.py similarity index 100% rename from python/ql/src/experimental/Security/CWE-943/examples/NoSQLInjection-bad.py rename to python/ql/src/Security/CWE-943/examples/NoSQLInjection-bad.py diff --git a/python/ql/src/experimental/Security/CWE-943/examples/NoSQLInjection-good.py b/python/ql/src/Security/CWE-943/examples/NoSQLInjection-good.py similarity index 100% rename from python/ql/src/experimental/Security/CWE-943/examples/NoSQLInjection-good.py rename to python/ql/src/Security/CWE-943/examples/NoSQLInjection-good.py diff --git a/python/ql/src/experimental/semmle/python/Frameworks.qll b/python/ql/src/experimental/semmle/python/Frameworks.qll index 98fb86f6d92..2fc78b7f53b 100644 --- a/python/ql/src/experimental/semmle/python/Frameworks.qll +++ b/python/ql/src/experimental/semmle/python/Frameworks.qll @@ -7,7 +7,6 @@ private import experimental.semmle.python.frameworks.Flask private import experimental.semmle.python.frameworks.Django private import experimental.semmle.python.frameworks.Werkzeug private import experimental.semmle.python.frameworks.LDAP -private import experimental.semmle.python.frameworks.NoSQL private import experimental.semmle.python.frameworks.JWT private import experimental.semmle.python.frameworks.Csv private import experimental.semmle.python.libraries.PyJWT diff --git a/python/ql/test/experimental/query-tests/Security/CWE-943/NoSQLInjection.expected b/python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.expected similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-943/NoSQLInjection.expected rename to python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.expected diff --git a/python/ql/test/experimental/query-tests/Security/CWE-943/NoSQLInjection.qlref b/python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.qlref similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-943/NoSQLInjection.qlref rename to python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.qlref diff --git a/python/ql/test/experimental/query-tests/Security/CWE-943/flask_mongoengine_bad.py b/python/ql/test/query-tests/Security/CWE-943/flask_mongoengine_bad.py similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-943/flask_mongoengine_bad.py rename to python/ql/test/query-tests/Security/CWE-943/flask_mongoengine_bad.py diff --git a/python/ql/test/experimental/query-tests/Security/CWE-943/flask_mongoengine_good.py b/python/ql/test/query-tests/Security/CWE-943/flask_mongoengine_good.py similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-943/flask_mongoengine_good.py rename to python/ql/test/query-tests/Security/CWE-943/flask_mongoengine_good.py diff --git a/python/ql/test/experimental/query-tests/Security/CWE-943/flask_pymongo_bad.py b/python/ql/test/query-tests/Security/CWE-943/flask_pymongo_bad.py similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-943/flask_pymongo_bad.py rename to python/ql/test/query-tests/Security/CWE-943/flask_pymongo_bad.py diff --git a/python/ql/test/experimental/query-tests/Security/CWE-943/flask_pymongo_good.py b/python/ql/test/query-tests/Security/CWE-943/flask_pymongo_good.py similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-943/flask_pymongo_good.py rename to python/ql/test/query-tests/Security/CWE-943/flask_pymongo_good.py diff --git a/python/ql/test/experimental/query-tests/Security/CWE-943/mongoengine_bad.py b/python/ql/test/query-tests/Security/CWE-943/mongoengine_bad.py similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-943/mongoengine_bad.py rename to python/ql/test/query-tests/Security/CWE-943/mongoengine_bad.py diff --git a/python/ql/test/experimental/query-tests/Security/CWE-943/mongoengine_good.py b/python/ql/test/query-tests/Security/CWE-943/mongoengine_good.py similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-943/mongoengine_good.py rename to python/ql/test/query-tests/Security/CWE-943/mongoengine_good.py diff --git a/python/ql/test/experimental/query-tests/Security/CWE-943/pymongo_test.py b/python/ql/test/query-tests/Security/CWE-943/pymongo_test.py similarity index 100% rename from python/ql/test/experimental/query-tests/Security/CWE-943/pymongo_test.py rename to python/ql/test/query-tests/Security/CWE-943/pymongo_test.py From 55707d395e4949640e6b523414988f28d8cfd2a5 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 15 Aug 2023 10:34:43 +0200 Subject: [PATCH 229/788] Python: Make things compile in their new location - Move NoSQL concepts to the non-experimental concepts file - fix references --- python/ql/lib/semmle/python/Concepts.qll | 50 +++++++++++++++++++ .../ql/lib/semmle/python/frameworks/NoSQL.qll | 2 +- .../security/dataflow/NoSQLInjection.qll | 1 - .../ql/src/Security/CWE-943/NoSQLInjection.ql | 2 +- .../experimental/semmle/python/Concepts.qll | 50 ------------------- .../Security/CWE-943/NoSQLInjection.qlref | 2 +- 6 files changed, 53 insertions(+), 54 deletions(-) diff --git a/python/ql/lib/semmle/python/Concepts.qll b/python/ql/lib/semmle/python/Concepts.qll index f3026d8faad..0a7b6744016 100644 --- a/python/ql/lib/semmle/python/Concepts.qll +++ b/python/ql/lib/semmle/python/Concepts.qll @@ -378,6 +378,56 @@ module SqlExecution { } } +/** Provides a class for modeling NoSql execution APIs. */ +module NoSqlQuery { + /** + * A data-flow node that executes NoSQL queries. + * + * Extend this class to model new APIs. If you want to refine existing API models, + * extend `NoSQLQuery` instead. + */ + abstract class Range extends DataFlow::Node { + /** Gets the argument that specifies the NoSql query to be executed. */ + abstract DataFlow::Node getQuery(); + } +} + +/** + * A data-flow node that executes NoSQL queries. + * + * Extend this class to refine existing API models. If you want to model new APIs, + * extend `NoSQLQuery::Range` instead. + */ +class NoSqlQuery extends DataFlow::Node instanceof NoSqlQuery::Range { + /** Gets the argument that specifies the NoSql query to be executed. */ + DataFlow::Node getQuery() { result = super.getQuery() } +} + +/** Provides classes for modeling NoSql sanitization-related APIs. */ +module NoSqlSanitizer { + /** + * A data-flow node that collects functions sanitizing NoSQL queries. + * + * Extend this class to model new APIs. If you want to refine existing API models, + * extend `NoSQLSanitizer` instead. + */ + abstract class Range extends DataFlow::Node { + /** Gets the argument that specifies the NoSql query to be sanitized. */ + abstract DataFlow::Node getAnInput(); + } +} + +/** + * A data-flow node that collects functions sanitizing NoSQL queries. + * + * Extend this class to model new APIs. If you want to refine existing API models, + * extend `NoSQLSanitizer::Range` instead. + */ +class NoSqlSanitizer extends DataFlow::Node instanceof NoSqlSanitizer::Range { + /** Gets the argument that specifies the NoSql query to be sanitized. */ + DataFlow::Node getAnInput() { result = super.getAnInput() } +} + /** * A data-flow node that executes a regular expression. * diff --git a/python/ql/lib/semmle/python/frameworks/NoSQL.qll b/python/ql/lib/semmle/python/frameworks/NoSQL.qll index ed0ce0315df..fafc555a638 100644 --- a/python/ql/lib/semmle/python/frameworks/NoSQL.qll +++ b/python/ql/lib/semmle/python/frameworks/NoSQL.qll @@ -7,7 +7,7 @@ private import python private import semmle.python.dataflow.new.DataFlow private import semmle.python.dataflow.new.TaintTracking private import semmle.python.dataflow.new.RemoteFlowSources -private import experimental.semmle.python.Concepts +private import semmle.python.Concepts private import semmle.python.ApiGraphs private module NoSql { diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjection.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjection.qll index f7a40fb3ee6..6c1a52efe68 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjection.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjection.qll @@ -2,7 +2,6 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import semmle.python.dataflow.new.RemoteFlowSources -import experimental.semmle.python.Concepts import semmle.python.Concepts module NoSqlInjection { diff --git a/python/ql/src/Security/CWE-943/NoSQLInjection.ql b/python/ql/src/Security/CWE-943/NoSQLInjection.ql index a73202ca082..2d9dbc0bb6d 100644 --- a/python/ql/src/Security/CWE-943/NoSQLInjection.ql +++ b/python/ql/src/Security/CWE-943/NoSQLInjection.ql @@ -11,7 +11,7 @@ */ import python -import experimental.semmle.python.security.injection.NoSQLInjection +import semmle.python.security.dataflow.NoSQLInjection import DataFlow::PathGraph from NoSqlInjection::Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink diff --git a/python/ql/src/experimental/semmle/python/Concepts.qll b/python/ql/src/experimental/semmle/python/Concepts.qll index 3331e1117e0..a289cedb6df 100644 --- a/python/ql/src/experimental/semmle/python/Concepts.qll +++ b/python/ql/src/experimental/semmle/python/Concepts.qll @@ -216,56 +216,6 @@ class SqlEscape extends DataFlow::Node instanceof SqlEscape::Range { DataFlow::Node getAnInput() { result = super.getAnInput() } } -/** Provides a class for modeling NoSql execution APIs. */ -module NoSqlQuery { - /** - * A data-flow node that executes NoSQL queries. - * - * Extend this class to model new APIs. If you want to refine existing API models, - * extend `NoSQLQuery` instead. - */ - abstract class Range extends DataFlow::Node { - /** Gets the argument that specifies the NoSql query to be executed. */ - abstract DataFlow::Node getQuery(); - } -} - -/** - * A data-flow node that executes NoSQL queries. - * - * Extend this class to refine existing API models. If you want to model new APIs, - * extend `NoSQLQuery::Range` instead. - */ -class NoSqlQuery extends DataFlow::Node instanceof NoSqlQuery::Range { - /** Gets the argument that specifies the NoSql query to be executed. */ - DataFlow::Node getQuery() { result = super.getQuery() } -} - -/** Provides classes for modeling NoSql sanitization-related APIs. */ -module NoSqlSanitizer { - /** - * A data-flow node that collects functions sanitizing NoSQL queries. - * - * Extend this class to model new APIs. If you want to refine existing API models, - * extend `NoSQLSanitizer` instead. - */ - abstract class Range extends DataFlow::Node { - /** Gets the argument that specifies the NoSql query to be sanitized. */ - abstract DataFlow::Node getAnInput(); - } -} - -/** - * A data-flow node that collects functions sanitizing NoSQL queries. - * - * Extend this class to model new APIs. If you want to refine existing API models, - * extend `NoSQLSanitizer::Range` instead. - */ -class NoSqlSanitizer extends DataFlow::Node instanceof NoSqlSanitizer::Range { - /** Gets the argument that specifies the NoSql query to be sanitized. */ - DataFlow::Node getAnInput() { result = super.getAnInput() } -} - /** Provides classes for modeling HTTP Header APIs. */ module HeaderDeclaration { /** diff --git a/python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.qlref b/python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.qlref index 3ca00df892b..a3f577c4cdc 100644 --- a/python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.qlref +++ b/python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.qlref @@ -1 +1 @@ -experimental/Security/CWE-943/NoSQLInjection.ql +Security/CWE-943/NoSQLInjection.ql From db0459739f5b837a008816475ccd3632eefef6de Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 23 Aug 2023 13:48:43 +0200 Subject: [PATCH 230/788] Python: rename file --- .../dataflow/{NoSQLInjection.qll => NoSQLInjectionQuery.qll} | 0 python/ql/src/Security/CWE-943/NoSQLInjection.ql | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename python/ql/lib/semmle/python/security/dataflow/{NoSQLInjection.qll => NoSQLInjectionQuery.qll} (100%) diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjection.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll similarity index 100% rename from python/ql/lib/semmle/python/security/dataflow/NoSQLInjection.qll rename to python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll diff --git a/python/ql/src/Security/CWE-943/NoSQLInjection.ql b/python/ql/src/Security/CWE-943/NoSQLInjection.ql index 2d9dbc0bb6d..bfa753e78a8 100644 --- a/python/ql/src/Security/CWE-943/NoSQLInjection.ql +++ b/python/ql/src/Security/CWE-943/NoSQLInjection.ql @@ -11,7 +11,7 @@ */ import python -import semmle.python.security.dataflow.NoSQLInjection +import semmle.python.security.dataflow.NoSQLInjectionQuery import DataFlow::PathGraph from NoSqlInjection::Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink From 087961d179fa9809bf379aff916644605654fe6b Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 23 Aug 2023 15:03:37 +0200 Subject: [PATCH 231/788] Python: Refactor to allow customizations Also use new DataFlow API --- .../dataflow/NoSQLInjectionCustomizations.qll | 50 ++++++++++++ .../security/dataflow/NoSQLInjectionQuery.qll | 77 +++++++++---------- .../ql/src/Security/CWE-943/NoSQLInjection.ql | 8 +- 3 files changed, 90 insertions(+), 45 deletions(-) create mode 100644 python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll new file mode 100644 index 00000000000..eb7516f8fa0 --- /dev/null +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll @@ -0,0 +1,50 @@ +import python +import semmle.python.dataflow.new.DataFlow +import semmle.python.dataflow.new.RemoteFlowSources +import semmle.python.Concepts + +module NoSqlInjection { + private newtype TFlowState = + TStringInput() or + TDictInput() + + abstract class FlowState extends TFlowState { + abstract string toString(); + } + + class StringInput extends FlowState, TStringInput { + override string toString() { result = "StringInput" } + } + + class DictInput extends FlowState, TDictInput { + override string toString() { result = "DictInput" } + } + + abstract class StringSource extends DataFlow::Node { } + + abstract class DictSource extends DataFlow::Node { } + + abstract class StringSink extends DataFlow::Node { } + + abstract class DictSink extends DataFlow::Node { } + + abstract class StringToDictConversion extends DataFlow::Node { + abstract DataFlow::Node getAnInput(); + + abstract DataFlow::Node getOutput(); + } + + class RemoteFlowSourceAsStringSource extends RemoteFlowSource, StringSource { } + + class NoSqlQueryAsDictSink extends DictSink { + NoSqlQueryAsDictSink() { this = any(NoSqlQuery noSqlQuery).getQuery() } + } + + class JsonDecoding extends Decoding, StringToDictConversion { + JsonDecoding() { this.getFormat() = "JSON" } + + override DataFlow::Node getAnInput() { result = Decoding.super.getAnInput() } + + override DataFlow::Node getOutput() { result = Decoding.super.getOutput() } + } +} diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll index 6c1a52efe68..0f5748a9ecc 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll @@ -1,53 +1,48 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking -import semmle.python.dataflow.new.RemoteFlowSources import semmle.python.Concepts +private import NoSQLInjectionCustomizations::NoSqlInjection as C -module NoSqlInjection { - class Configuration extends TaintTracking::Configuration { - Configuration() { this = "NoSQLInjection" } +module Config implements DataFlow::StateConfigSig { + class FlowState = C::FlowState; - override predicate isSource(DataFlow::Node source, DataFlow::FlowState state) { - source instanceof RemoteFlowSource and - state instanceof RemoteInput - } - - override predicate isSink(DataFlow::Node sink, DataFlow::FlowState state) { - sink = any(NoSqlQuery noSqlQuery).getQuery() and - state instanceof ConvertedToDict - } - - override predicate isSanitizer(DataFlow::Node node, DataFlow::FlowState state) { - // Block `RemoteInput` paths here, since they change state to `ConvertedToDict` - exists(Decoding decoding | decoding.getFormat() = "JSON" and node = decoding.getOutput()) and - state instanceof RemoteInput - } - - override predicate isAdditionalTaintStep( - DataFlow::Node nodeFrom, DataFlow::FlowState stateFrom, DataFlow::Node nodeTo, - DataFlow::FlowState stateTo - ) { - exists(Decoding decoding | decoding.getFormat() = "JSON" | - nodeFrom = decoding.getAnInput() and - nodeTo = decoding.getOutput() - ) and - stateFrom instanceof RemoteInput and - stateTo instanceof ConvertedToDict - } - - override predicate isSanitizer(DataFlow::Node sanitizer) { - sanitizer = any(NoSqlSanitizer noSqlSanitizer).getAnInput() - } + predicate isSource(DataFlow::Node source, FlowState state) { + source instanceof C::StringSource and + state instanceof C::StringInput + or + source instanceof C::DictSource and + state instanceof C::DictInput } - /** A flow state signifying remote input. */ - class RemoteInput extends DataFlow::FlowState { - RemoteInput() { this = "RemoteInput" } + predicate isSink(DataFlow::Node source, FlowState state) { + source instanceof C::StringSink and + state instanceof C::StringInput + or + source instanceof C::DictSink and + state instanceof C::DictInput } - /** A flow state signifying remote input converted to a dictionary. */ - class ConvertedToDict extends DataFlow::FlowState { - ConvertedToDict() { this = "ConvertedToDict" } + predicate isBarrier(DataFlow::Node node, FlowState state) { + // Block `StringInput` paths here, since they change state to `DictInput` + exists(C::StringToDictConversion c | node = c.getOutput()) and + state instanceof C::StringInput + } + + predicate isAdditionalFlowStep( + DataFlow::Node nodeFrom, FlowState stateFrom, DataFlow::Node nodeTo, FlowState stateTo + ) { + exists(C::StringToDictConversion c | + nodeFrom = c.getAnInput() and + nodeTo = c.getOutput() + ) and + stateFrom instanceof C::StringInput and + stateTo instanceof C::DictInput + } + + predicate isBarrier(DataFlow::Node node) { + node = any(NoSqlSanitizer noSqlSanitizer).getAnInput() } } + +module Flow = TaintTracking::GlobalWithState; diff --git a/python/ql/src/Security/CWE-943/NoSQLInjection.ql b/python/ql/src/Security/CWE-943/NoSQLInjection.ql index bfa753e78a8..fd588f009f0 100644 --- a/python/ql/src/Security/CWE-943/NoSQLInjection.ql +++ b/python/ql/src/Security/CWE-943/NoSQLInjection.ql @@ -12,9 +12,9 @@ import python import semmle.python.security.dataflow.NoSQLInjectionQuery -import DataFlow::PathGraph +import Flow::PathGraph -from NoSqlInjection::Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) -select sink, source, sink, "This NoSQL query contains an unsanitized $@.", source, +from Flow::PathNode source, Flow::PathNode sink +where Flow::flowPath(source, sink) +select sink.getNode(), source, sink, "This NoSQL query contains an unsanitized $@.", source, "user-provided value" From 19046ea417e1efae5308c17012d974ca5b1a0762 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 23 Aug 2023 19:58:18 +0200 Subject: [PATCH 232/788] Python: more renames --- .../NoSqlInjection.expected} | 0 .../NoSqlInjection.qlref} | 0 .../{CWE-943 => CWE-943-NoSqlInjection}/flask_mongoengine_bad.py | 0 .../{CWE-943 => CWE-943-NoSqlInjection}/flask_mongoengine_good.py | 0 .../{CWE-943 => CWE-943-NoSqlInjection}/flask_pymongo_bad.py | 0 .../{CWE-943 => CWE-943-NoSqlInjection}/flask_pymongo_good.py | 0 .../{CWE-943 => CWE-943-NoSqlInjection}/mongoengine_bad.py | 0 .../{CWE-943 => CWE-943-NoSqlInjection}/mongoengine_good.py | 0 .../Security/{CWE-943 => CWE-943-NoSqlInjection}/pymongo_test.py | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename python/ql/test/query-tests/Security/{CWE-943/NoSQLInjection.expected => CWE-943-NoSqlInjection/NoSqlInjection.expected} (100%) rename python/ql/test/query-tests/Security/{CWE-943/NoSQLInjection.qlref => CWE-943-NoSqlInjection/NoSqlInjection.qlref} (100%) rename python/ql/test/query-tests/Security/{CWE-943 => CWE-943-NoSqlInjection}/flask_mongoengine_bad.py (100%) rename python/ql/test/query-tests/Security/{CWE-943 => CWE-943-NoSqlInjection}/flask_mongoengine_good.py (100%) rename python/ql/test/query-tests/Security/{CWE-943 => CWE-943-NoSqlInjection}/flask_pymongo_bad.py (100%) rename python/ql/test/query-tests/Security/{CWE-943 => CWE-943-NoSqlInjection}/flask_pymongo_good.py (100%) rename python/ql/test/query-tests/Security/{CWE-943 => CWE-943-NoSqlInjection}/mongoengine_bad.py (100%) rename python/ql/test/query-tests/Security/{CWE-943 => CWE-943-NoSqlInjection}/mongoengine_good.py (100%) rename python/ql/test/query-tests/Security/{CWE-943 => CWE-943-NoSqlInjection}/pymongo_test.py (100%) diff --git a/python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.expected b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected similarity index 100% rename from python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.expected rename to python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected diff --git a/python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.qlref b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.qlref similarity index 100% rename from python/ql/test/query-tests/Security/CWE-943/NoSQLInjection.qlref rename to python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.qlref diff --git a/python/ql/test/query-tests/Security/CWE-943/flask_mongoengine_bad.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_bad.py similarity index 100% rename from python/ql/test/query-tests/Security/CWE-943/flask_mongoengine_bad.py rename to python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_bad.py diff --git a/python/ql/test/query-tests/Security/CWE-943/flask_mongoengine_good.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_good.py similarity index 100% rename from python/ql/test/query-tests/Security/CWE-943/flask_mongoengine_good.py rename to python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_good.py diff --git a/python/ql/test/query-tests/Security/CWE-943/flask_pymongo_bad.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_bad.py similarity index 100% rename from python/ql/test/query-tests/Security/CWE-943/flask_pymongo_bad.py rename to python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_bad.py diff --git a/python/ql/test/query-tests/Security/CWE-943/flask_pymongo_good.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_good.py similarity index 100% rename from python/ql/test/query-tests/Security/CWE-943/flask_pymongo_good.py rename to python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_good.py diff --git a/python/ql/test/query-tests/Security/CWE-943/mongoengine_bad.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_bad.py similarity index 100% rename from python/ql/test/query-tests/Security/CWE-943/mongoengine_bad.py rename to python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_bad.py diff --git a/python/ql/test/query-tests/Security/CWE-943/mongoengine_good.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_good.py similarity index 100% rename from python/ql/test/query-tests/Security/CWE-943/mongoengine_good.py rename to python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_good.py diff --git a/python/ql/test/query-tests/Security/CWE-943/pymongo_test.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/pymongo_test.py similarity index 100% rename from python/ql/test/query-tests/Security/CWE-943/pymongo_test.py rename to python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/pymongo_test.py From c85ea9a0c094e30a2cd3d8e0116495cbef5007aa Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Thu, 7 Sep 2023 09:45:02 +0200 Subject: [PATCH 233/788] Python: Fix typo in SSRF example --- .../CWE-918/examples/ServerSideRequestForgery_full.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/src/Security/CWE-918/examples/ServerSideRequestForgery_full.py b/python/ql/src/Security/CWE-918/examples/ServerSideRequestForgery_full.py index 4772f3eaea4..02724582182 100644 --- a/python/ql/src/Security/CWE-918/examples/ServerSideRequestForgery_full.py +++ b/python/ql/src/Security/CWE-918/examples/ServerSideRequestForgery_full.py @@ -8,8 +8,8 @@ def full_ssrf(): target = request.args["target"] # BAD: user has full control of URL - resp = request.get("https://" + target + ".example.com/data/") + resp = requests.get("https://" + target + ".example.com/data/") # GOOD: `subdomain` is controlled by the server. subdomain = "europe" if target == "EU" else "world" - resp = request.get("https://" + subdomain + ".example.com/data/") + resp = requests.get("https://" + subdomain + ".example.com/data/") From 46d7165885da3b80c7d4b45dc29d7069be3e0a38 Mon Sep 17 00:00:00 2001 From: Max Schaefer Date: Thu, 7 Sep 2023 09:12:07 +0100 Subject: [PATCH 234/788] Explain about redirects to example.com. --- .../src/Security/CWE-601/ServerSideUrlRedirect.qhelp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/javascript/ql/src/Security/CWE-601/ServerSideUrlRedirect.qhelp b/javascript/ql/src/Security/CWE-601/ServerSideUrlRedirect.qhelp index 2faa5f8f9d7..b2217d357d1 100644 --- a/javascript/ql/src/Security/CWE-601/ServerSideUrlRedirect.qhelp +++ b/javascript/ql/src/Security/CWE-601/ServerSideUrlRedirect.qhelp @@ -38,11 +38,19 @@ before doing the redirection:

    -Alternatively, we can check that the target URL does not redirect to a different host: +Alternatively, we can check that the target URL does not redirect to a different host +by parsing it relative to a base URL with a known host and verifying that the host +stays the same:

    +

    +Note that as written, the above code will allow redirects to URLs on example.com, +which is harmless but perhaps not intended. Substitute your own domain name for +example.com to prevent this. +

    + From bf8bfd91cd6e47c068a2e5bc31cf82513d2a1140 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 7 Sep 2023 10:22:30 +0200 Subject: [PATCH 235/788] Python: Add inline query test --- .../DataflowQueryTest.expected | 3 +++ .../CWE-943-NoSqlInjection/DataflowQueryTest.ql | 4 ++++ .../CWE-943-NoSqlInjection/flask_mongoengine_bad.py | 4 ++-- .../CWE-943-NoSqlInjection/flask_mongoengine_good.py | 2 +- .../CWE-943-NoSqlInjection/flask_pymongo_bad.py | 2 +- .../CWE-943-NoSqlInjection/flask_pymongo_good.py | 2 +- .../CWE-943-NoSqlInjection/mongoengine_bad.py | 12 ++++++------ .../CWE-943-NoSqlInjection/mongoengine_good.py | 2 +- .../Security/CWE-943-NoSqlInjection/pymongo_test.py | 8 ++++---- 9 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.expected create mode 100644 python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.expected b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.expected new file mode 100644 index 00000000000..303d04688ff --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.expected @@ -0,0 +1,3 @@ +failures +missingAnnotationOnSink +testFailures diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql new file mode 100644 index 00000000000..f3709acc913 --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql @@ -0,0 +1,4 @@ +import python +import experimental.dataflow.TestUtil.DataflowQueryTest +import semmle.python.security.dataflow.NoSQLInjectionQuery +import FromTaintTrackingStateConfig diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_bad.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_bad.py index 9fc8aaefc0f..76ac28edf79 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_bad.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_bad.py @@ -19,7 +19,7 @@ def subclass_objects(): unsafe_search = request.args['search'] json_search = json.loads(unsafe_search) - return Movie.objects(__raw__=json_search) + return Movie.objects(__raw__=json_search) #$ result=BAD @app.route("/get_db_find") def get_db_find(): @@ -27,7 +27,7 @@ def get_db_find(): json_search = json.loads(unsafe_search) retrieved_db = db.get_db() - return retrieved_db["Movie"].find({'name': json_search}) + return retrieved_db["Movie"].find({'name': json_search}) #$ result=BAD # if __name__ == "__main__": # app.run(debug=True) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_good.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_good.py index 29a2c75d664..1ce065569f2 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_good.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_mongoengine_good.py @@ -21,7 +21,7 @@ def subclass_objects(): json_search = json.loads(unsafe_search) safe_search = sanitize(json_search) - return Movie.objects(__raw__=safe_search) + return Movie.objects(__raw__=safe_search) #$ result=OK # if __name__ == "__main__": # app.run(debug=True) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_bad.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_bad.py index 0c1023971da..735fbff9b34 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_bad.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_bad.py @@ -11,7 +11,7 @@ def home_page(): unsafe_search = request.args['search'] json_search = json.loads(unsafe_search) - return mongo.db.user.find({'name': json_search}) + return mongo.db.user.find({'name': json_search}) #$ result=BAD # if __name__ == "__main__": # app.run(debug=True) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_good.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_good.py index 6576ba88af8..f2458f91b89 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_good.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/flask_pymongo_good.py @@ -13,7 +13,7 @@ def home_page(): json_search = json.loads(unsafe_search) safe_search = sanitize(json_search) - return mongo.db.user.find({'name': safe_search}) + return mongo.db.user.find({'name': safe_search}) #$ result=OK # if __name__ == "__main__": # app.run(debug=True) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_bad.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_bad.py index 81800425e46..4367f9e1ff7 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_bad.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_bad.py @@ -19,7 +19,7 @@ def connect_find(): json_search = json.loads(unsafe_search) db = me.connect('mydb') - return db.movie.find({'name': json_search}) + return db.movie.find({'name': json_search}) #$ result=BAD @app.route("/connection_connect_find") def connection_connect_find(): @@ -27,7 +27,7 @@ def connection_connect_find(): json_search = json.loads(unsafe_search) db = connect('mydb') - return db.movie.find({'name': json_search}) + return db.movie.find({'name': json_search}) #$ result=BAD @app.route("/get_db_find") def get_db_find(): @@ -35,7 +35,7 @@ def get_db_find(): json_search = json.loads(unsafe_search) db = me.get_db() - return db.movie.find({'name': json_search}) + return db.movie.find({'name': json_search}) #$ result=BAD @app.route("/connection_get_db_find") def connection_get_db_find(): @@ -43,14 +43,14 @@ def connection_get_db_find(): json_search = json.loads(unsafe_search) db = get_db() - return db.movie.find({'name': json_search}) + return db.movie.find({'name': json_search}) #$ result=BAD @app.route("/subclass_objects") def subclass_objects(): unsafe_search = request.args['search'] json_search = json.loads(unsafe_search) - return Movie.objects(__raw__=json_search) + return Movie.objects(__raw__=json_search) #$ result=BAD @app.route("/subscript_find") def subscript_find(): @@ -58,7 +58,7 @@ def subscript_find(): json_search = json.loads(unsafe_search) db = me.connect('mydb') - return db['movie'].find({'name': json_search}) + return db['movie'].find({'name': json_search}) #$ result=BAD # if __name__ == "__main__": # app.run(debug=True) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_good.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_good.py index c9b2b8e762f..e8ac68cccba 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_good.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_good.py @@ -21,7 +21,7 @@ def connect_find(): safe_search = sanitize(json_search) db = me.connect('mydb') - return db.movie.find({'name': safe_search}) + return db.movie.find({'name': safe_search}) #$ result=OK # if __name__ == "__main__": # app.run(debug=True) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/pymongo_test.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/pymongo_test.py index ecf53ec4f9a..3dd667a3f2d 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/pymongo_test.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/pymongo_test.py @@ -12,7 +12,7 @@ def bad(): unsafe_search = request.args['search'] json_search = json.loads(unsafe_search) - return client.db.collection.find_one({'data': json_search}) + return client.db.collection.find_one({'data': json_search}) #$ result=BAD @app.route("/good") @@ -21,7 +21,7 @@ def good(): json_search = json.loads(unsafe_search) safe_search = sanitize(json_search) - return client.db.collection.find_one({'data': safe_search}) + return client.db.collection.find_one({'data': safe_search}) #$ result=OK @app.route("/bad2") @@ -30,7 +30,7 @@ def bad2(): client = MongoClient("localhost", 27017, maxPoolSize=50) db = client.localhost collection = db['collection'] - cursor = collection.find_one({"$where": f"this._id == '${event_id}'"}) + cursor = collection.find_one({"$where": f"this._id == '${event_id}'"}) #$ result=BAD @app.route("/bad3") @@ -40,7 +40,7 @@ def bad3(): client = MongoClient("localhost", 27017, maxPoolSize=50) db = client.get_database(name="localhost") collection = db.get_collection("collection") - cursor = collection.find_one({"$where": f"this._id == '${event_id}'"}) + cursor = collection.find_one({"$where": f"this._id == '${event_id}'"}) #$ result=BAD if __name__ == "__main__": From 114984bd8cb92ba8f06dbb3902eb48d3481a1a67 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 29 Aug 2023 16:16:38 +0200 Subject: [PATCH 236/788] Python: Added tests based on security analysis currently we do not: - recognize the pattern `{'author': {"$eq": author}}` as protected - recognize arguements to `$where` (and friends) as vulnerable --- .../CWE-943-NoSqlInjection/PoC/populate.py | 16 ++++++ .../CWE-943-NoSqlInjection/PoC/readme.md | 19 +++++++ .../PoC/requirements.txt | 2 + .../CWE-943-NoSqlInjection/PoC/server.py | 55 +++++++++++++++++++ .../Security/CWE-943-NoSqlInjection/options | 1 + 5 files changed, 93 insertions(+) create mode 100644 python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/populate.py create mode 100644 python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/readme.md create mode 100644 python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/requirements.txt create mode 100644 python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py create mode 100644 python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/options diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/populate.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/populate.py new file mode 100644 index 00000000000..026f72bdfe5 --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/populate.py @@ -0,0 +1,16 @@ +from pymongo import MongoClient +client = MongoClient() + +db = client.test_database + +import datetime +post = { + "author": "Mike", + "text": "My first blog post!", + "tags": ["mongodb", "python", "pymongo"], + "date": datetime.datetime.now(tz=datetime.timezone.utc), +} + +posts = db.posts +post_id = posts.insert_one(post).inserted_id +post_id diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/readme.md b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/readme.md new file mode 100644 index 00000000000..78e7e92e48f --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/readme.md @@ -0,0 +1,19 @@ +Tutorials: +- [pymongo](https://pymongo.readthedocs.io/en/stable/tutorial.html) +- [install mongodb](https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/#std-label-install-mdb-community-macos) + +I recommend creating a virtual environment with venv and then installing dependencies via +``` +python -m pip --install -r requirements.txt +``` + +Start mongodb: +``` +mongod --config /usr/local/etc/mongod.conf --fork +``` +run flask app: +``` +flask --app server run +``` + +Navigate to the root to see routes. For each route try to get the system to reveal the person in the database. If you know the name, you can just input it, but in some cases you can get to the person without knowing the name! diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/requirements.txt b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/requirements.txt new file mode 100644 index 00000000000..a98715ed1e4 --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/requirements.txt @@ -0,0 +1,2 @@ +flask +pymongo diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py new file mode 100644 index 00000000000..59b51963583 --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py @@ -0,0 +1,55 @@ +from flask import Flask, request +from pymongo import MongoClient +import json + +client = MongoClient() +db = client.test_database +posts = db.posts + +app = Flask(__name__) + + +def show_post(post, query): + if post: + return "You found " + post['author'] + "!" + else: + return "You did not find " + query + +@app.route('/plain', methods=['GET']) +def plain(): + author = request.args['author'] + post = posts.find_one({'author': author}) # $ result=OK + return show_post(post, author) + +@app.route('/dict', methods=['GET']) +def as_dict(): + author_string = request.args['author'] + author = json.loads(author_string) + # Use {"$ne": 1} as author + # Found by http://127.0.0.1:5000/dict?author={%22$ne%22:1} + post = posts.find_one({'author': author}) # $ result=BAD + return show_post(post, author) + +@app.route('/dictHardened', methods=['GET']) +def as_dict_hardened(): + author_string = request.args['author'] + author = json.loads(author_string) + post = posts.find_one({'author': {"$eq": author}}) # $ SPURIOUS: result=BAD + return show_post(post, author) + +@app.route('/byWhere', methods=['GET']) +def by_where(): + author = request.args['author'] + # Use `" | "a" === "a` as author + # making the query `this.author === "" | "a" === "a"` + # Found by http://127.0.0.1:5000/byWhere?author=%22%20|%20%22a%22%20===%20%22a + post = posts.find_one({'$where': 'this.author === "'+author+'"'}) # $ MISSING: result=BAD + return show_post(post, author) + +@app.route('/', methods=['GET']) +def show_routes(): + links = [] + for rule in app.url_map.iter_rules(): + if "GET" in rule.methods: + links.append((rule.rule, rule.endpoint)) + return links diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/options b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/options new file mode 100644 index 00000000000..48ecb907736 --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/options @@ -0,0 +1 @@ +semmle-extractor-options: --max-import-depth=1 -r PoC From c0b3245a5393306660a04026357cf1ae2eb2a4e2 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 31 Aug 2023 20:30:03 +0200 Subject: [PATCH 237/788] Python: Enrich the NoSql concept This allows us to make more precise modelling The query tests now pass. I do wonder, if there is a cleaner approach, similar to `TaintedObject` in JavaScript. I want the option to get this query in the hands of the custumors before such an investigation, though. --- python/ql/lib/semmle/python/Concepts.qll | 12 ++++ .../ql/lib/semmle/python/frameworks/NoSQL.qll | 61 ++++++++++++++++--- .../dataflow/NoSQLInjectionCustomizations.qll | 8 +++ .../security/dataflow/NoSQLInjectionQuery.qll | 7 ++- .../CWE-943-NoSqlInjection/PoC/server.py | 4 +- 5 files changed, 80 insertions(+), 12 deletions(-) diff --git a/python/ql/lib/semmle/python/Concepts.qll b/python/ql/lib/semmle/python/Concepts.qll index 0a7b6744016..ea6310e326c 100644 --- a/python/ql/lib/semmle/python/Concepts.qll +++ b/python/ql/lib/semmle/python/Concepts.qll @@ -389,6 +389,12 @@ module NoSqlQuery { abstract class Range extends DataFlow::Node { /** Gets the argument that specifies the NoSql query to be executed. */ abstract DataFlow::Node getQuery(); + + /** Holds if this query will unpack/interpret a dictionary */ + abstract predicate interpretsDict(); + + /** Holds if this query can be dangerous when run on a user-controlled string */ + abstract predicate vulnerableToStrings(); } } @@ -401,6 +407,12 @@ module NoSqlQuery { class NoSqlQuery extends DataFlow::Node instanceof NoSqlQuery::Range { /** Gets the argument that specifies the NoSql query to be executed. */ DataFlow::Node getQuery() { result = super.getQuery() } + + /** Holds if this query will unpack/interpret a dictionary */ + predicate interpretsDict() { super.interpretsDict() } + + /** Holds if this query can be dangerous when run on a user-controlled string */ + predicate vulnerableToStrings() { super.vulnerableToStrings() } } /** Provides classes for modeling NoSql sanitization-related APIs. */ diff --git a/python/ql/lib/semmle/python/frameworks/NoSQL.qll b/python/ql/lib/semmle/python/frameworks/NoSQL.qll index fafc555a638..ba17d593a60 100644 --- a/python/ql/lib/semmle/python/frameworks/NoSQL.qll +++ b/python/ql/lib/semmle/python/frameworks/NoSQL.qll @@ -91,16 +91,17 @@ private module NoSql { result = mongoDBInstance().getMember(["get_collection", "create_collection"]).getReturn() } - /** This class represents names of find_* relevant `Mongo` collection-level operation methods. */ - private class MongoCollectionMethodNames extends string { - MongoCollectionMethodNames() { - this in [ - "find", "find_raw_batches", "find_one", "find_one_and_delete", "find_and_modify", - "find_one_and_replace", "find_one_and_update", "find_one_or_404" - ] - } + /** Gets the name of a find_* relevant `Mongo` collection-level operation method. */ + private string mongoCollectionMethodName() { + result in [ + "find", "find_raw_batches", "find_one", "find_one_and_delete", "find_and_modify", + "find_one_and_replace", "find_one_and_update", "find_one_or_404" + ] } + /** Gets the name of a mongo query operator that will interpret JavaScript. */ + private string mongoQueryOperator() { result in ["$where", "$function"] } + /** * Gets a reference to a `Mongo` collection method call * @@ -114,10 +115,29 @@ private module NoSql { */ private class MongoCollectionCall extends DataFlow::CallCfgNode, NoSqlQuery::Range { MongoCollectionCall() { - this = mongoCollection().getMember(any(MongoCollectionMethodNames m)).getACall() + this = mongoCollection().getMember(mongoCollectionMethodName()).getACall() } override DataFlow::Node getQuery() { result = this.getArg(0) } + + override predicate interpretsDict() { any() } + + override predicate vulnerableToStrings() { none() } + } + + private class MongoCollectionQueryOperator extends API::CallNode, NoSqlQuery::Range { + DataFlow::Node query; + + MongoCollectionQueryOperator() { + this = mongoCollection().getMember(mongoCollectionMethodName()).getACall() and + query = this.getParameter(0).getSubscript(mongoQueryOperator()).asSink() + } + + override DataFlow::Node getQuery() { result = query } + + override predicate interpretsDict() { none() } + + override predicate vulnerableToStrings() { any() } } /** @@ -146,6 +166,10 @@ private module NoSql { } override DataFlow::Node getQuery() { result = this.getArgByName(_) } + + override predicate interpretsDict() { any() } + + override predicate vulnerableToStrings() { none() } } /** Gets a reference to `mongosanitizer.sanitizer.sanitize` */ @@ -176,4 +200,23 @@ private module NoSql { override DataFlow::Node getAnInput() { result = this.getArg(0) } } + + /** + * An equality operator can protect against dictionary interpretation. + * For instance, in `{'password': {"$eq": password} }`, if a dictionary is injected into + * `password`, it will not match. + */ + private class EqualityOperator extends DataFlow::Node, NoSqlSanitizer::Range { + EqualityOperator() { + this = + mongoCollection() + .getMember(mongoCollectionMethodName()) + .getParameter(0) + .getASubscript*() + .getSubscript("$eq") + .asSink() + } + + override DataFlow::Node getAnInput() { result = this } + } } diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll index eb7516f8fa0..54c85ccf195 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll @@ -36,6 +36,14 @@ module NoSqlInjection { class RemoteFlowSourceAsStringSource extends RemoteFlowSource, StringSource { } + class NoSqlQueryAsStringSink extends StringSink { + NoSqlQueryAsStringSink() { + exists(NoSqlQuery noSqlQuery | this = noSqlQuery.getQuery() | + noSqlQuery.vulnerableToStrings() + ) + } + } + class NoSqlQueryAsDictSink extends DictSink { NoSqlQueryAsDictSink() { this = any(NoSqlQuery noSqlQuery).getQuery() } } diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll index 0f5748a9ecc..8a0e31ed544 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll @@ -17,7 +17,12 @@ module Config implements DataFlow::StateConfigSig { predicate isSink(DataFlow::Node source, FlowState state) { source instanceof C::StringSink and - state instanceof C::StringInput + ( + state instanceof C::StringInput + or + // since dictionaries can encode strings + state instanceof C::DictInput + ) or source instanceof C::DictSink and state instanceof C::DictInput diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py index 59b51963583..f2b4a4f0a43 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py @@ -34,7 +34,7 @@ def as_dict(): def as_dict_hardened(): author_string = request.args['author'] author = json.loads(author_string) - post = posts.find_one({'author': {"$eq": author}}) # $ SPURIOUS: result=BAD + post = posts.find_one({'author': {"$eq": author}}) # $ result=OK return show_post(post, author) @app.route('/byWhere', methods=['GET']) @@ -43,7 +43,7 @@ def by_where(): # Use `" | "a" === "a` as author # making the query `this.author === "" | "a" === "a"` # Found by http://127.0.0.1:5000/byWhere?author=%22%20|%20%22a%22%20===%20%22a - post = posts.find_one({'$where': 'this.author === "'+author+'"'}) # $ MISSING: result=BAD + post = posts.find_one({'$where': 'this.author === "'+author+'"'}) # $ result=BAD return show_post(post, author) @app.route('/', methods=['GET']) From 7edebbeaffe10c5d8b7774666c34d8d58d6e194c Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 6 Sep 2023 11:46:49 +0200 Subject: [PATCH 238/788] Python: Add QLDocs --- .../dataflow/NoSQLInjectionCustomizations.qll | 26 +++++++++++++++++++ .../security/dataflow/NoSQLInjectionQuery.qll | 7 +++++ 2 files changed, 33 insertions(+) diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll index 54c85ccf195..d3348b8df8d 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll @@ -1,41 +1,65 @@ +/** + * Provides default sources, sinks and sanitizers for detecting + * "NoSql injection" + * vulnerabilities, as well as extension points for adding your own. + */ + import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.RemoteFlowSources import semmle.python.Concepts +/** + * Provides default sources, sinks and sanitizers for detecting + * "NoSql injection" + * vulnerabilities, as well as extension points for adding your own. + */ module NoSqlInjection { private newtype TFlowState = TStringInput() or TDictInput() + /** A flow state, tracking the structure of the input. */ abstract class FlowState extends TFlowState { + /** Gets a textual representation of this element. */ abstract string toString(); } + /** A state where input is only a string. */ class StringInput extends FlowState, TStringInput { override string toString() { result = "StringInput" } } + /** A state where input is a dictionary. */ class DictInput extends FlowState, TDictInput { override string toString() { result = "DictInput" } } + /** A source allowing string inputs. */ abstract class StringSource extends DataFlow::Node { } + /** A source allowing dictionary inputs. */ abstract class DictSource extends DataFlow::Node { } + /** A sink vulnerable to user controlled strings. */ abstract class StringSink extends DataFlow::Node { } + /** A sink vulnerable to user controlled dictionaries. */ abstract class DictSink extends DataFlow::Node { } + /** A data flow node where a string is converted into a dictionary. */ abstract class StringToDictConversion extends DataFlow::Node { + /** Gets the argument that specifies the string to be converted. */ abstract DataFlow::Node getAnInput(); + /** Gets the resulting dictionary. */ abstract DataFlow::Node getOutput(); } + /** A remote flow source considered a source of user controlled strings. */ class RemoteFlowSourceAsStringSource extends RemoteFlowSource, StringSource { } + /** A NoSQL query that is vulnerable to user controlled strings. */ class NoSqlQueryAsStringSink extends StringSink { NoSqlQueryAsStringSink() { exists(NoSqlQuery noSqlQuery | this = noSqlQuery.getQuery() | @@ -44,10 +68,12 @@ module NoSqlInjection { } } + /** A NoSQL query that is vulnerable to user controlled dictionaries. */ class NoSqlQueryAsDictSink extends DictSink { NoSqlQueryAsDictSink() { this = any(NoSqlQuery noSqlQuery).getQuery() } } + /** A JSON decoding converts a string to a dictionary. */ class JsonDecoding extends Decoding, StringToDictConversion { JsonDecoding() { this.getFormat() = "JSON" } diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll index 8a0e31ed544..da3432e44ad 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll @@ -1,9 +1,16 @@ +/** + * Provides a taint-tracking configuration for detecting NoSQL injection vulnerabilities + */ + import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import semmle.python.Concepts private import NoSQLInjectionCustomizations::NoSqlInjection as C +/** + * A taint-tracking configuration for detecting NoSQL injection vulnerabilities. + */ module Config implements DataFlow::StateConfigSig { class FlowState = C::FlowState; From f253f9797fe448c076ceb639734f3111ce8a7ebe Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 6 Sep 2023 11:53:44 +0200 Subject: [PATCH 239/788] Python: update test expectations --- .../NoSqlInjection.expected | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected index 01532803122..89b0684744c 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected @@ -1,4 +1,15 @@ edges +| PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:1:26:1:32 | GSSA Variable request | +| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:26:21:26:27 | ControlFlowNode for request | +| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:42:14:42:20 | ControlFlowNode for request | +| PoC/server.py:26:5:26:17 | SSA variable author_string | PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | +| PoC/server.py:26:21:26:27 | ControlFlowNode for request | PoC/server.py:26:5:26:17 | SSA variable author_string | +| PoC/server.py:27:5:27:10 | SSA variable author | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | +| PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | PoC/server.py:27:5:27:10 | SSA variable author | +| PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | +| PoC/server.py:42:5:42:10 | SSA variable author | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | +| PoC/server.py:42:5:42:10 | SSA variable author | PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | +| PoC/server.py:42:14:42:20 | ControlFlowNode for request | PoC/server.py:42:5:42:10 | SSA variable author | | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | flask_mongoengine_bad.py:19:21:19:27 | ControlFlowNode for request | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | flask_mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | @@ -66,14 +77,28 @@ edges | pymongo_test.py:13:19:13:43 | ControlFlowNode for Attribute() | pymongo_test.py:13:5:13:15 | SSA variable json_search | | pymongo_test.py:13:30:13:42 | ControlFlowNode for unsafe_search | pymongo_test.py:13:19:13:43 | ControlFlowNode for Attribute() | | pymongo_test.py:29:5:29:12 | SSA variable event_id | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | +| pymongo_test.py:29:5:29:12 | SSA variable event_id | pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | | pymongo_test.py:29:16:29:51 | ControlFlowNode for Attribute() | pymongo_test.py:29:5:29:12 | SSA variable event_id | | pymongo_test.py:29:27:29:33 | ControlFlowNode for request | pymongo_test.py:29:27:29:50 | ControlFlowNode for Subscript | | pymongo_test.py:29:27:29:50 | ControlFlowNode for Subscript | pymongo_test.py:29:16:29:51 | ControlFlowNode for Attribute() | | pymongo_test.py:39:5:39:12 | SSA variable event_id | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | +| pymongo_test.py:39:5:39:12 | SSA variable event_id | pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | | pymongo_test.py:39:16:39:51 | ControlFlowNode for Attribute() | pymongo_test.py:39:5:39:12 | SSA variable event_id | | pymongo_test.py:39:27:39:33 | ControlFlowNode for request | pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | | pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | pymongo_test.py:39:16:39:51 | ControlFlowNode for Attribute() | nodes +| PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | +| PoC/server.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | +| PoC/server.py:26:5:26:17 | SSA variable author_string | semmle.label | SSA variable author_string | +| PoC/server.py:26:21:26:27 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:27:5:27:10 | SSA variable author | semmle.label | SSA variable author | +| PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | semmle.label | ControlFlowNode for author_string | +| PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:42:5:42:10 | SSA variable author | semmle.label | SSA variable author | +| PoC/server.py:42:14:42:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | | flask_mongoengine_bad.py:19:5:19:17 | SSA variable unsafe_search | semmle.label | SSA variable unsafe_search | @@ -147,13 +172,18 @@ nodes | pymongo_test.py:29:27:29:33 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | pymongo_test.py:29:27:29:50 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | semmle.label | ControlFlowNode for Fstring | | pymongo_test.py:39:5:39:12 | SSA variable event_id | semmle.label | SSA variable event_id | | pymongo_test.py:39:16:39:51 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | pymongo_test.py:39:27:39:33 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | semmle.label | ControlFlowNode for Fstring | subpaths #select +| PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | This NoSQL query contains an unsanitized $@. | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | @@ -165,4 +195,6 @@ subpaths | mongoengine_bad.py:61:29:61:49 | ControlFlowNode for Dict | mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | mongoengine_bad.py:61:29:61:49 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | pymongo_test.py:15:42:15:62 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:15:42:15:62 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | From 54c456d95d1c353373ceb4b624d6b3d596c80e21 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Thu, 7 Sep 2023 10:28:46 +0200 Subject: [PATCH 240/788] Python: Apply suggestions from code review --- python/ql/lib/semmle/python/frameworks/Stdlib.qll | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index bb701c001e2..68efd49b284 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -4429,6 +4429,11 @@ private module StdlibPrivate { } } + /** + * A call to the `asyncio.create_subprocess_shell` function (also accessible via the `subprocess` module of `asyncio`) + * + * See https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.create_subprocess_shell + */ private class CreateSubprocessShell extends SystemCommandExecution::Range, FileSystemAccess::Range, API::CallNode { From bfb4be26c283061e7b944d6af8e543c97a4f3c1c Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Thu, 7 Sep 2023 10:31:39 +0200 Subject: [PATCH 241/788] Python: Autoformat --- python/ql/lib/semmle/python/frameworks/Stdlib.qll | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index 68efd49b284..c0714c618a7 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -4429,11 +4429,11 @@ private module StdlibPrivate { } } - /** - * A call to the `asyncio.create_subprocess_shell` function (also accessible via the `subprocess` module of `asyncio`) - * - * See https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.create_subprocess_shell - */ + /** + * A call to the `asyncio.create_subprocess_shell` function (also accessible via the `subprocess` module of `asyncio`) + * + * See https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.create_subprocess_shell + */ private class CreateSubprocessShell extends SystemCommandExecution::Range, FileSystemAccess::Range, API::CallNode { From bf3fe3cd665c3200ae914fb6632d0cfa61689379 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Thu, 7 Sep 2023 12:39:13 +0200 Subject: [PATCH 242/788] add new qhelp for clear-text-logging --- .../Security/CWE-312/CleartextLogging.qhelp | 31 ++++++++++++++++++- .../CWE-312/examples/CleartextLogging.py | 3 ++ .../CWE-312/examples/CleartextLoggingGood.py | 3 ++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 python/ql/src/Security/CWE-312/examples/CleartextLogging.py create mode 100644 python/ql/src/Security/CWE-312/examples/CleartextLoggingGood.py diff --git a/python/ql/src/Security/CWE-312/CleartextLogging.qhelp b/python/ql/src/Security/CWE-312/CleartextLogging.qhelp index 884b1dbdd4b..3244a0354d7 100644 --- a/python/ql/src/Security/CWE-312/CleartextLogging.qhelp +++ b/python/ql/src/Security/CWE-312/CleartextLogging.qhelp @@ -2,4 +2,33 @@ "-//Semmle//qhelp//EN" "qhelp.dtd"> - + + + +

    If sensitive data is written to a log entry it could be exposed to an attacker +who gains access to the logs.

    + +

    Potential attackers can obtain sensitive user data when the log output is displayed. Additionally that data may +expose system information such as full path names, system information, and sometimes usernames and passwords.

    +
    + + +

    +Sensitive data should not be logged. +

    +
    + + +

    In the example the entire process environment is logged using `print`. Regular users of the production deployed application +should not have access to this much information about the environment configuration. +

    + + +

    In the second example the data that is logged is not sensitive.

    + +
    + + +
  • OWASP: Insertion of Sensitive Information into Log File.
  • +
    + diff --git a/python/ql/src/Security/CWE-312/examples/CleartextLogging.py b/python/ql/src/Security/CWE-312/examples/CleartextLogging.py new file mode 100644 index 00000000000..57733712d59 --- /dev/null +++ b/python/ql/src/Security/CWE-312/examples/CleartextLogging.py @@ -0,0 +1,3 @@ +# BAD: Logging cleartext sensitive data +import os +print(f"[INFO] Environment: {os.environ}") \ No newline at end of file diff --git a/python/ql/src/Security/CWE-312/examples/CleartextLoggingGood.py b/python/ql/src/Security/CWE-312/examples/CleartextLoggingGood.py new file mode 100644 index 00000000000..853f7fe488b --- /dev/null +++ b/python/ql/src/Security/CWE-312/examples/CleartextLoggingGood.py @@ -0,0 +1,3 @@ +not_sensitive_data = {'a': 1, 'b': 2} +# GOOD: it is fine to log data that is not sensitive +print(f"[INFO] Some object contains: {not_sensitive_data}") \ No newline at end of file From 3b708993c7925733dab338a962a3f841b3a8829e Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 7 Sep 2023 11:51:20 +0100 Subject: [PATCH 243/788] Go: Add diagnostic for 1.21 `toolchain` error --- go/extractor/diagnostics/diagnostics.go | 11 +++++++++++ go/extractor/extractor.go | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/go/extractor/diagnostics/diagnostics.go b/go/extractor/diagnostics/diagnostics.go index 728122cb787..5b75c9c4040 100644 --- a/go/extractor/diagnostics/diagnostics.go +++ b/go/extractor/diagnostics/diagnostics.go @@ -482,3 +482,14 @@ func EmitGoModVersionSupportedLowerEqualGoEnv(msg string) { noLocation, ) } + +func EmitNewerSystemGoRequired(requiredVersion string) { + emitDiagnostic( + "go/autobuilder/newer-system-go-version-required", + "The Go version installed on the system is too old to support this project", + "At least Go version `"+requiredVersion+"` is required to build this project, but the version installed on the system is older. [Install a newer version](https://github.com/actions/setup-go#basic).", + severityError, + fullVisibility, + noLocation, + ) +} diff --git a/go/extractor/extractor.go b/go/extractor/extractor.go index a55279edffb..fa003b238db 100644 --- a/go/extractor/extractor.go +++ b/go/extractor/extractor.go @@ -91,6 +91,10 @@ func ExtractWithFlags(buildFlags []string, patterns []string) error { } pkgs, err := packages.Load(cfg, patterns...) if err != nil { + // the toolchain directive is only supported in Go 1.21 and above + if strings.Contains(err.Error(), "unknown directive: toolchain") { + diagnostics.EmitNewerSystemGoRequired("1.21.0") + } return err } log.Println("Done running packages.Load.") From dfc3b3391024b4bd5938368cd8b9d0869717055e Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 7 Sep 2023 12:09:47 +0100 Subject: [PATCH 244/788] Ruby: Use a newtype instead of DataFlow::FlowState for unicode-bypass-validation --- .../UnicodeBypassValidationQuery.qll | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll b/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll index 60bc2a00614..f4c4a59823f 100644 --- a/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll +++ b/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll @@ -19,6 +19,15 @@ class PostValidation extends DataFlow::FlowState { PostValidation() { this = "PostValidation" } } +/** + * A state signifying if a logical validation has been performed or not. + */ +private newtype ValidationState = + // A state signifying that a logical validation has not been performed. + PreValidationState() or + // A state signifying that a logical validation has been performed. + PostValidationState() + /** * A taint-tracking configuration for detecting "Unicode transformation mishandling" vulnerabilities. * @@ -29,20 +38,27 @@ class PostValidation extends DataFlow::FlowState { deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "UnicodeBypassValidation" } + private ValidationState convertState(DataFlow::FlowState state) { + state instanceof PreValidation and result = PreValidationState() + or + state instanceof PostValidation and result = PostValidationState() + } + override predicate isSource(DataFlow::Node source, DataFlow::FlowState state) { - UnicodeBypassValidationConfig::isSource(source, state) + UnicodeBypassValidationConfig::isSource(source, this.convertState(state)) } override predicate isAdditionalTaintStep( DataFlow::Node nodeFrom, DataFlow::FlowState stateFrom, DataFlow::Node nodeTo, DataFlow::FlowState stateTo ) { - UnicodeBypassValidationConfig::isAdditionalFlowStep(nodeFrom, stateFrom, nodeTo, stateTo) + UnicodeBypassValidationConfig::isAdditionalFlowStep(nodeFrom, this.convertState(stateFrom), nodeTo, + this.convertState(stateTo)) } /* A Unicode Tranformation (Unicode tranformation) is considered a sink when the algorithm used is either NFC or NFKC. */ override predicate isSink(DataFlow::Node sink, DataFlow::FlowState state) { - UnicodeBypassValidationConfig::isSink(sink, state) + UnicodeBypassValidationConfig::isSink(sink, this.convertState(state)) } } @@ -53,15 +69,14 @@ deprecated class Configuration extends TaintTracking::Configuration { * to track the requirement that a logical validation has been performed before the Unicode Transformation. */ private module UnicodeBypassValidationConfig implements DataFlow::StateConfigSig { - class FlowState = DataFlow::FlowState; + class FlowState = ValidationState; - predicate isSource(DataFlow::Node source, DataFlow::FlowState state) { - source instanceof RemoteFlowSource and state instanceof PreValidation + predicate isSource(DataFlow::Node source, FlowState state) { + source instanceof RemoteFlowSource and state = PreValidationState() } predicate isAdditionalFlowStep( - DataFlow::Node nodeFrom, DataFlow::FlowState stateFrom, DataFlow::Node nodeTo, - DataFlow::FlowState stateTo + DataFlow::Node nodeFrom, FlowState stateFrom, DataFlow::Node nodeTo, FlowState stateTo ) { ( exists(Escaping escaping | nodeFrom = escaping.getAnInput() and nodeTo = escaping.getOutput()) @@ -102,12 +117,12 @@ private module UnicodeBypassValidationConfig implements DataFlow::StateConfigSig nodeTo = cn ) ) and - stateFrom instanceof PreValidation and - stateTo instanceof PostValidation + stateFrom = PreValidationState() and + stateTo = PostValidationState() } /* A Unicode Tranformation (Unicode tranformation) is considered a sink when the algorithm used is either NFC or NFKC. */ - predicate isSink(DataFlow::Node sink, DataFlow::FlowState state) { + predicate isSink(DataFlow::Node sink, FlowState state) { ( exists(DataFlow::CallNode cn | cn.getMethodName() = "unicode_normalize" and @@ -145,7 +160,7 @@ private module UnicodeBypassValidationConfig implements DataFlow::StateConfigSig sink = cn.getArgument(0) ) ) and - state instanceof PostValidation + state = PostValidationState() } } From d603b7ac3c19671a577663502056200212974d19 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Wed, 6 Sep 2023 18:52:10 +0100 Subject: [PATCH 245/788] CPP: Make functions that reach the end return. This is UB in C++ but not C where it is only bad if the result is used. --- .../2023-09-07-return-from-end.md | 5 + .../raw/internal/IRConstruction.qll | 3 - .../raw/internal/TranslatedStmt.qll | 29 +++-- .../ir/ir/operand_locations.expected | 41 +++++-- .../ir/ir/raw_consistency.expected | 10 +- .../test/library-tests/ir/ir/raw_ir.expected | 106 ++++++++++-------- 6 files changed, 111 insertions(+), 83 deletions(-) create mode 100644 cpp/ql/lib/change-notes/2023-09-07-return-from-end.md diff --git a/cpp/ql/lib/change-notes/2023-09-07-return-from-end.md b/cpp/ql/lib/change-notes/2023-09-07-return-from-end.md new file mode 100644 index 00000000000..8f1b8e9be88 --- /dev/null +++ b/cpp/ql/lib/change-notes/2023-09-07-return-from-end.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* Treat functions that reach the end of the function as returning in the IR. + They used to be treated as unreachable but it is allowed in C. \ No newline at end of file diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/IRConstruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/IRConstruction.qll index 8c0695247f8..ed4b39bc24b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/IRConstruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/IRConstruction.qll @@ -405,9 +405,6 @@ predicate hasUnreachedInstruction(IRFunction func) { exists(Call c | c.getEnclosingFunction() = func.getFunction() and any(Options opt).exits(c.getTarget()) - ) and - not exists(TranslatedUnreachableReturnStmt return | - return.getEnclosingFunction().getFunction() = func.getFunction() ) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll index 497c16d407d..aa7527451c3 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll @@ -442,29 +442,26 @@ class TranslatedReturnVoidStmt extends TranslatedReturnStmt { /** * The IR translation of an implicit `return` statement generated by the extractor to handle control - * flow that reaches the end of a non-`void`-returning function body. Since such control flow - * produces undefined behavior, we simply generate an `Unreached` instruction to prevent that flow - * from continuing on to pollute other analysis. The assumption is that the developer is certain - * that the implicit `return` is unreachable, even if the compiler cannot prove it. + * flow that reaches the end of a non-`void`-returning function body. Such control flow + * produces undefined behavior in C++ but not in C. However even in C using the return value is + * undefined behaviour. We make it return uninitialized memory to get as much flow as possible. */ -class TranslatedUnreachableReturnStmt extends TranslatedReturnStmt { - TranslatedUnreachableReturnStmt() { +class TranslatedNoValueReturnStmt extends TranslatedReturnStmt, TranslatedVariableInitialization { + TranslatedNoValueReturnStmt() { not stmt.hasExpr() and hasReturnValue(stmt.getEnclosingFunction()) } - override TranslatedElement getChild(int id) { none() } - - override Instruction getFirstInstruction() { result = this.getInstruction(OnlyInstructionTag()) } - - override predicate hasInstruction(Opcode opcode, InstructionTag tag, CppType resultType) { - tag = OnlyInstructionTag() and - opcode instanceof Opcode::Unreached and - resultType = getVoidType() + final override Instruction getInitializationSuccessor() { + result = this.getEnclosingFunction().getReturnSuccessorInstruction() } - override Instruction getInstructionSuccessor(InstructionTag tag, EdgeKind kind) { none() } + final override Type getTargetType() { result = this.getEnclosingFunction().getReturnType() } - override Instruction getChildSuccessor(TranslatedElement child) { none() } + final override TranslatedInitialization getInitialization() { none() } + + final override IRVariable getIRVariable() { + result = this.getEnclosingFunction().getReturnVariable() + } } /** diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index e8a8d7e06b7..63ece7fa36f 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -6207,10 +6207,12 @@ | ir.cpp:1286:25:1286:49 | ChiPartial | partial:m1286_7 | | ir.cpp:1286:25:1286:49 | ChiTotal | total:m1286_4 | | ir.cpp:1286:25:1286:49 | SideEffect | ~m1286_4 | -| ir.cpp:1289:5:1289:22 | Address | &:r1289_9 | +| ir.cpp:1289:5:1289:22 | Address | &:r1289_10 | | ir.cpp:1289:5:1289:22 | ChiPartial | partial:m1289_3 | | ir.cpp:1289:5:1289:22 | ChiTotal | total:m1289_2 | -| ir.cpp:1289:5:1289:22 | Load | m1291_4 | +| ir.cpp:1289:5:1289:22 | Load | m1289_9 | +| ir.cpp:1289:5:1289:22 | Phi | from 2:m1291_4 | +| ir.cpp:1289:5:1289:22 | Phi | from 3:m1293_2 | | ir.cpp:1289:5:1289:22 | SideEffect | m1289_3 | | ir.cpp:1289:29:1289:29 | Address | &:r1289_5 | | ir.cpp:1289:36:1289:36 | Address | &:r1289_7 | @@ -6221,6 +6223,7 @@ | ir.cpp:1291:16:1291:16 | Address | &:r1291_2 | | ir.cpp:1291:16:1291:16 | Load | m1289_8 | | ir.cpp:1291:16:1291:16 | StoreValue | r1291_3 | +| ir.cpp:1293:1:1293:1 | Address | &:r1293_1 | | ir.cpp:1295:6:1295:15 | ChiPartial | partial:m1295_3 | | ir.cpp:1295:6:1295:15 | ChiTotal | total:m1295_2 | | ir.cpp:1295:6:1295:15 | SideEffect | ~m1296_8 | @@ -8393,16 +8396,23 @@ | ir.cpp:1747:39:1747:39 | ChiTotal | total:m1747_20 | | ir.cpp:1747:39:1747:39 | SideEffect | ~m1747_4 | | ir.cpp:1747:39:1747:39 | SideEffect | ~m1747_15 | +| ir.cpp:1750:5:1750:34 | Address | &:r1750_5 | | ir.cpp:1750:5:1750:34 | ChiPartial | partial:m1750_3 | | ir.cpp:1750:5:1750:34 | ChiTotal | total:m1750_2 | +| ir.cpp:1750:5:1750:34 | Load | m1755_2 | +| ir.cpp:1750:5:1750:34 | SideEffect | ~m1754_10 | | ir.cpp:1751:51:1751:51 | Address | &:r1751_1 | | ir.cpp:1751:51:1751:51 | Address | &:r1751_1 | | ir.cpp:1751:51:1751:51 | Address | &:r1751_3 | +| ir.cpp:1751:51:1751:51 | Address | &:r1751_3 | | ir.cpp:1751:51:1751:51 | Load | m1751_2 | +| ir.cpp:1751:51:1751:51 | SideEffect | m1751_4 | | ir.cpp:1752:48:1752:48 | Address | &:r1752_1 | | ir.cpp:1752:48:1752:48 | Address | &:r1752_1 | | ir.cpp:1752:48:1752:48 | Address | &:r1752_3 | +| ir.cpp:1752:48:1752:48 | Address | &:r1752_3 | | ir.cpp:1752:48:1752:48 | Load | m1752_2 | +| ir.cpp:1752:48:1752:48 | SideEffect | m1752_4 | | ir.cpp:1753:40:1753:41 | Address | &:r1753_1 | | ir.cpp:1753:40:1753:41 | Address | &:r1753_1 | | ir.cpp:1753:40:1753:41 | Arg(this) | this:r1753_1 | @@ -8435,6 +8445,7 @@ | ir.cpp:1754:42:1754:42 | SideEffect | ~m1752_4 | | ir.cpp:1754:42:1754:42 | Unary | r1754_5 | | ir.cpp:1754:42:1754:42 | Unary | r1754_6 | +| ir.cpp:1755:1:1755:1 | Address | &:r1755_1 | | ir.cpp:1757:6:1757:22 | ChiPartial | partial:m1757_3 | | ir.cpp:1757:6:1757:22 | ChiTotal | total:m1757_2 | | ir.cpp:1757:6:1757:22 | SideEffect | m1757_3 | @@ -9588,22 +9599,27 @@ | ir.cpp:2021:23:2021:40 | SideEffect | ~m2021_27 | | ir.cpp:2021:23:2021:40 | Unary | r2021_20 | | ir.cpp:2021:23:2021:40 | Unary | r2021_28 | +| ir.cpp:2026:14:2026:22 | Address | &:r2026_7 | | ir.cpp:2026:14:2026:22 | ChiPartial | partial:m2026_3 | | ir.cpp:2026:14:2026:22 | ChiTotal | total:m2026_2 | +| ir.cpp:2026:14:2026:22 | Load | m2031_2 | +| ir.cpp:2026:14:2026:22 | SideEffect | ~m2028_6 | | ir.cpp:2026:37:2026:37 | Address | &:r2026_5 | | ir.cpp:2027:16:2027:16 | Address | &:r2027_1 | -| ir.cpp:2028:3:2028:3 | Address | &:r2028_9 | +| ir.cpp:2028:3:2028:3 | Address | &:r2028_10 | | ir.cpp:2028:7:2028:7 | Address | &:r2028_1 | | ir.cpp:2028:7:2028:7 | Left | r2028_2 | | ir.cpp:2028:7:2028:7 | Load | m2026_6 | | ir.cpp:2028:7:2028:13 | Condition | r2028_4 | -| ir.cpp:2028:7:2030:28 | Address | &:r2028_7 | -| ir.cpp:2028:7:2030:28 | Address | &:r2028_11 | -| ir.cpp:2028:7:2030:28 | Address | &:r2028_13 | -| ir.cpp:2028:7:2030:28 | Load | m2028_6 | -| ir.cpp:2028:7:2030:28 | Phi | from 2:m2028_12 | -| ir.cpp:2028:7:2030:28 | Phi | from 3:m2028_14 | -| ir.cpp:2028:7:2030:28 | StoreValue | r2028_8 | +| ir.cpp:2028:7:2030:28 | Address | &:r2028_8 | +| ir.cpp:2028:7:2030:28 | Address | &:r2028_12 | +| ir.cpp:2028:7:2030:28 | Address | &:r2028_14 | +| ir.cpp:2028:7:2030:28 | Load | m2028_7 | +| ir.cpp:2028:7:2030:28 | Phi | from 2:m2028_13 | +| ir.cpp:2028:7:2030:28 | Phi | from 2:~m2029_6 | +| ir.cpp:2028:7:2030:28 | Phi | from 3:m2028_15 | +| ir.cpp:2028:7:2030:28 | Phi | from 3:~m2030_6 | +| ir.cpp:2028:7:2030:28 | StoreValue | r2028_9 | | ir.cpp:2028:11:2028:13 | Right | r2028_3 | | ir.cpp:2029:6:2029:20 | CallTarget | func:r2029_1 | | ir.cpp:2029:6:2029:20 | ChiPartial | partial:m2029_5 | @@ -9626,6 +9642,7 @@ | ir.cpp:2030:22:2030:22 | Arg(0) | 0:r2030_3 | | ir.cpp:2030:22:2030:22 | Load | m2026_6 | | ir.cpp:2030:26:2030:27 | Unary | r2030_7 | +| ir.cpp:2031:1:2031:1 | Address | &:r2031_1 | | ir.cpp:2033:6:2033:17 | ChiPartial | partial:m2033_3 | | ir.cpp:2033:6:2033:17 | ChiTotal | total:m2033_2 | | ir.cpp:2033:6:2033:17 | SideEffect | ~m2036_6 | @@ -9721,8 +9738,11 @@ | ir.cpp:2051:32:2051:32 | Address | &:r2051_7 | | ir.cpp:2051:32:2051:32 | Load | m2051_6 | | ir.cpp:2051:32:2051:32 | SideEffect | m2051_8 | +| ir.cpp:2056:5:2056:18 | Address | &:r2056_5 | | ir.cpp:2056:5:2056:18 | ChiPartial | partial:m2056_3 | | ir.cpp:2056:5:2056:18 | ChiTotal | total:m2056_2 | +| ir.cpp:2056:5:2056:18 | Load | m2066_2 | +| ir.cpp:2056:5:2056:18 | SideEffect | ~m2065_6 | | ir.cpp:2058:12:2058:13 | Address | &:r2058_1 | | ir.cpp:2058:17:2058:27 | Address | &:r2058_4 | | ir.cpp:2058:17:2058:27 | Address | &:r2058_8 | @@ -9796,6 +9816,7 @@ | ir.cpp:2065:12:2065:12 | Address | &:r2065_2 | | ir.cpp:2065:12:2065:12 | Arg(0) | 0:r2065_3 | | ir.cpp:2065:12:2065:12 | Load | m2064_15 | +| ir.cpp:2066:1:2066:1 | Address | &:r2066_1 | | ir.cpp:2070:6:2070:26 | ChiPartial | partial:m2070_3 | | ir.cpp:2070:6:2070:26 | ChiTotal | total:m2070_2 | | ir.cpp:2070:6:2070:26 | SideEffect | ~m2072_5 | diff --git a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected index 4f3f9315c01..d2a11541fd1 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected @@ -12,13 +12,15 @@ unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions instructionWithoutUniqueBlock +missingCanonicalLanguageType +multipleCanonicalLanguageTypes containsLoopOfForwardEdges +missingIRType +multipleIRTypes lostReachability backEdgeCountMismatch useNotDominatedByDefinition | ir.cpp:1486:8:1486:8 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1486:8:1486:8 | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | -| ir.cpp:1751:51:1751:51 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1750:5:1750:34 | int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) | int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) | -| ir.cpp:1752:48:1752:48 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1750:5:1750:34 | int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) | int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) | | try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() | | try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() | | try_except.c:39:15:39:15 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:32:6:32:6 | void h(int) | void h(int) | @@ -35,8 +37,4 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -missingCanonicalLanguageType -multipleCanonicalLanguageTypes -missingIRType -multipleIRTypes missingCppType diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index 8bb7c6dde6a..1ca119060f6 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -7201,21 +7201,26 @@ ir.cpp: # 1290| r1290_1(glval) = VariableAddress[b] : # 1290| r1290_2(bool) = Load[b] : &:r1290_1, ~m? # 1290| v1290_3(void) = ConditionalBranch : r1290_2 -#-----| False -> Block 2 -#-----| True -> Block 1 +#-----| False -> Block 3 +#-----| True -> Block 2 -# 1291| Block 1 -# 1291| r1291_1(glval) = VariableAddress[#return] : -# 1291| r1291_2(glval) = VariableAddress[x] : -# 1291| r1291_3(int) = Load[x] : &:r1291_2, ~m? -# 1291| mu1291_4(int) = Store[#return] : &:r1291_1, r1291_3 +# 1289| Block 1 # 1289| r1289_8(glval) = VariableAddress[#return] : # 1289| v1289_9(void) = ReturnValue : &:r1289_8, ~m? # 1289| v1289_10(void) = AliasedUse : ~m? # 1289| v1289_11(void) = ExitFunction : -# 1293| Block 2 -# 1293| v1293_1(void) = Unreached : +# 1291| Block 2 +# 1291| r1291_1(glval) = VariableAddress[#return] : +# 1291| r1291_2(glval) = VariableAddress[x] : +# 1291| r1291_3(int) = Load[x] : &:r1291_2, ~m? +# 1291| mu1291_4(int) = Store[#return] : &:r1291_1, r1291_3 +#-----| Goto -> Block 1 + +# 1293| Block 3 +# 1293| r1293_1(glval) = VariableAddress[#return] : +# 1293| mu1293_2(int) = Uninitialized[#return] : &:r1293_1 +#-----| Goto -> Block 1 # 1295| void returnVoid(int, int) # 1295| Block 0 @@ -9526,15 +9531,14 @@ ir.cpp: # 1754| mu1754_9(unknown) = ^CallSideEffect : ~m? # 1754| v1754_10(void) = ^BufferReadSideEffect[0] : &:r1754_7, ~m? # 1754| mu1754_11(CopyConstructorTestVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1754_1 -# 1755| v1755_1(void) = Unreached : - -# 1751| Block 1 -# 1751| v1751_5(void) = ReturnIndirection[x] : &:r1751_3, ~m? -# 1752| v1752_5(void) = ReturnIndirection[y] : &:r1752_3, ~m? -# 1750| r1750_4(glval) = VariableAddress[#return] : -# 1750| v1750_5(void) = ReturnValue : &:r1750_4, ~m? -# 1750| v1750_6(void) = AliasedUse : ~m? -# 1750| v1750_7(void) = ExitFunction : +# 1755| r1755_1(glval) = VariableAddress[#return] : +# 1755| mu1755_2(int) = Uninitialized[#return] : &:r1755_1 +# 1751| v1751_5(void) = ReturnIndirection[x] : &:r1751_3, ~m? +# 1752| v1752_5(void) = ReturnIndirection[y] : &:r1752_3, ~m? +# 1750| r1750_4(glval) = VariableAddress[#return] : +# 1750| v1750_5(void) = ReturnValue : &:r1750_4, ~m? +# 1750| v1750_6(void) = AliasedUse : ~m? +# 1750| v1750_7(void) = ExitFunction : # 1757| void if_initialization(int) # 1757| Block 0 @@ -10199,24 +10203,32 @@ ir.cpp: # 1900| r1900_3(int) = Constant[10] : # 1900| r1900_4(bool) = CompareLT : r1900_2, r1900_3 # 1900| v1900_5(void) = ConditionalBranch : r1900_4 -#-----| False -> Block 2 -#-----| True -> Block 1 +#-----| False -> Block 3 +#-----| True -> Block 2 -# 1901| Block 1 -# 1901| r1901_1(glval) = VariableAddress[#return] : -# 1901| r1901_2(glval) = VariableAddress[x] : -# 1901| r1901_3(int) = Load[x] : &:r1901_2, ~m? -# 1901| mu1901_4(int) = Store[#return] : &:r1901_1, r1901_3 +# 1899| Block 1 # 1899| r1899_6(glval) = VariableAddress[#return] : # 1899| v1899_7(void) = ReturnValue : &:r1899_6, ~m? # 1899| v1899_8(void) = AliasedUse : ~m? # 1899| v1899_9(void) = ExitFunction : -# 1903| Block 2 +# 1901| Block 2 +# 1901| r1901_1(glval) = VariableAddress[#return] : +# 1901| r1901_2(glval) = VariableAddress[x] : +# 1901| r1901_3(int) = Load[x] : &:r1901_2, ~m? +# 1901| mu1901_4(int) = Store[#return] : &:r1901_1, r1901_3 +#-----| Goto -> Block 1 + +# 1903| Block 3 # 1903| r1903_1(glval) = FunctionAddress[noreturnFunc] : # 1903| v1903_2(void) = Call[noreturnFunc] : func:r1903_1 # 1903| mu1903_3(unknown) = ^CallSideEffect : ~m? -# 1905| v1905_1(void) = Unreached : +# 1899| v1899_10(void) = Unreached : + +# 1905| Block 4 +# 1905| r1905_1(glval) = VariableAddress[#return] : +# 1905| mu1905_2(int) = Uninitialized[#return] : &:r1905_1 +#-----| Goto -> Block 1 # 1907| int noreturnTest2(int) # 1907| Block 0 @@ -11069,23 +11081,22 @@ ir.cpp: # 2028| r2028_3(unsigned int) = Constant[100] : # 2028| r2028_4(bool) = CompareLT : r2028_2, r2028_3 # 2028| v2028_5(void) = ConditionalBranch : r2028_4 -#-----| False -> Block 4 -#-----| True -> Block 3 +#-----| False -> Block 3 +#-----| True -> Block 2 -# 2026| Block 1 -# 2026| r2026_6(glval) = VariableAddress[#return] : -# 2026| v2026_7(void) = ReturnValue : &:r2026_6, ~m? -# 2026| v2026_8(void) = AliasedUse : ~m? -# 2026| v2026_9(void) = ExitFunction : - -# 2028| Block 2 +# 2028| Block 1 # 2028| r2028_6(glval) = VariableAddress[#temp2028:7] : # 2028| r2028_7(unsigned int) = Load[#temp2028:7] : &:r2028_6, ~m? # 2028| r2028_8(glval) = VariableAddress[y] : # 2028| mu2028_9(unsigned int) = Store[y] : &:r2028_8, r2028_7 -# 2031| v2031_1(void) = Unreached : +# 2031| r2031_1(glval) = VariableAddress[#return] : +# 2031| mu2031_2(unsigned int) = Uninitialized[#return] : &:r2031_1 +# 2026| r2026_6(glval) = VariableAddress[#return] : +# 2026| v2026_7(void) = ReturnValue : &:r2026_6, ~m? +# 2026| v2026_8(void) = AliasedUse : ~m? +# 2026| v2026_9(void) = ExitFunction : -# 2029| Block 3 +# 2029| Block 2 # 2029| r2029_1(glval) = FunctionAddress[CommaTestHelper] : # 2029| r2029_2(glval) = VariableAddress[x] : # 2029| r2029_3(unsigned int) = Load[x] : &:r2029_2, ~m? @@ -11096,9 +11107,9 @@ ir.cpp: # 2029| r2029_8(unsigned int) = CopyValue : r2029_7 # 2028| r2028_10(glval) = VariableAddress[#temp2028:7] : # 2028| mu2028_11(unsigned int) = Store[#temp2028:7] : &:r2028_10, r2029_8 -#-----| Goto -> Block 2 +#-----| Goto -> Block 1 -# 2030| Block 4 +# 2030| Block 3 # 2030| r2030_1(glval) = FunctionAddress[CommaTestHelper] : # 2030| r2030_2(glval) = VariableAddress[x] : # 2030| r2030_3(unsigned int) = Load[x] : &:r2030_2, ~m? @@ -11109,7 +11120,7 @@ ir.cpp: # 2030| r2030_8(unsigned int) = Convert : r2030_7 # 2028| r2028_12(glval) = VariableAddress[#temp2028:7] : # 2028| mu2028_13(unsigned int) = Store[#temp2028:7] : &:r2028_12, r2030_8 -#-----| Goto -> Block 2 +#-----| Goto -> Block 1 # 2033| void NewDeleteMem() # 2033| Block 0 @@ -11295,13 +11306,12 @@ ir.cpp: # 2065| r2065_3(Derived2 *) = Load[d] : &:r2065_2, ~m? # 2065| v2065_4(void) = Call[?] : func:r2065_1, 0:r2065_3 # 2065| mu2065_5(unknown) = ^CallSideEffect : ~m? -# 2066| v2066_1(void) = Unreached : - -# 2056| Block 1 -# 2056| r2056_4(glval) = VariableAddress[#return] : -# 2056| v2056_5(void) = ReturnValue : &:r2056_4, ~m? -# 2056| v2056_6(void) = AliasedUse : ~m? -# 2056| v2056_7(void) = ExitFunction : +# 2066| r2066_1(glval) = VariableAddress[#return] : +# 2066| mu2066_2(int) = Uninitialized[#return] : &:r2066_1 +# 2056| r2056_4(glval) = VariableAddress[#return] : +# 2056| v2056_5(void) = ReturnValue : &:r2056_4, ~m? +# 2056| v2056_6(void) = AliasedUse : ~m? +# 2056| v2056_7(void) = ExitFunction : # 2070| void test_constant_folding() # 2070| Block 0 From e8dfecc4a4cf0d14b814ef4ad80b81a9052b9752 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Thu, 7 Sep 2023 12:49:13 +0100 Subject: [PATCH 246/788] CPP: Fix test result --- .../library-tests/syntax-zoo/raw_consistency.expected | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/cpp/ql/test/library-tests/syntax-zoo/raw_consistency.expected b/cpp/ql/test/library-tests/syntax-zoo/raw_consistency.expected index 6fa6c863aeb..bee483d992b 100644 --- a/cpp/ql/test/library-tests/syntax-zoo/raw_consistency.expected +++ b/cpp/ql/test/library-tests/syntax-zoo/raw_consistency.expected @@ -34,13 +34,15 @@ unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions instructionWithoutUniqueBlock +missingCanonicalLanguageType +multipleCanonicalLanguageTypes containsLoopOfForwardEdges +missingIRType +multipleIRTypes lostReachability backEdgeCountMismatch useNotDominatedByDefinition | VacuousDestructorCall.cpp:2:29:2:29 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | VacuousDestructorCall.cpp:2:6:2:6 | void CallDestructor(int, int*) | void CallDestructor(int, int*) | -| misc.c:219:47:219:48 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | misc.c:219:5:219:26 | int assign_designated_init(someStruct*) | int assign_designated_init(someStruct*) | -| ms_assume.cpp:11:30:11:33 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ms_assume.cpp:11:12:11:12 | int f(int, char*[]) | int f(int, char*[]) | | ms_try_except.cpp:9:19:9:19 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | ms_try_except.cpp:2:6:2:18 | void ms_try_except(int) | void ms_try_except(int) | | ms_try_except.cpp:9:19:9:19 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | ms_try_except.cpp:2:6:2:18 | void ms_try_except(int) | void ms_try_except(int) | | ms_try_except.cpp:19:17:19:21 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | ms_try_except.cpp:2:6:2:18 | void ms_try_except(int) | void ms_try_except(int) | @@ -58,8 +60,4 @@ thisArgumentIsNonPointer | pointer_to_member.cpp:23:5:23:54 | Call: call to expression | Call instruction 'Call: call to expression' has a `this` argument operand that is not an address, in function '$@'. | pointer_to_member.cpp:14:5:14:9 | int usePM(int PM::*) | int usePM(int PM::*) | | pointer_to_member.cpp:24:5:24:49 | Call: call to expression | Call instruction 'Call: call to expression' has a `this` argument operand that is not an address, in function '$@'. | pointer_to_member.cpp:14:5:14:9 | int usePM(int PM::*) | int usePM(int PM::*) | nonUniqueIRVariable -missingCanonicalLanguageType -multipleCanonicalLanguageTypes -missingIRType -multipleIRTypes missingCppType From b44c4587a40d121b31d9ddfaecdd32a497e846b9 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Wed, 30 Aug 2023 16:01:25 +0100 Subject: [PATCH 247/788] CPP: Remove sucessors of non-returning IR calls. --- .../internal/reachability/ReachableBlock.qll | 59 ++++++++++ .../reachability/ReachableBlockInternal.qll | 1 + .../internal/reachability/ReachableBlock.qll | 59 ++++++++++ .../reachability/ReachableBlockInternal.qll | 1 + .../library-tests/ir/ir/PrintAST.expected | 106 ++++++++++++++++++ cpp/ql/test/library-tests/ir/ir/ir.cpp | 23 ++++ .../ir/ir/operand_locations.expected | 69 ++++++++++++ .../test/library-tests/ir/ir/raw_ir.expected | 99 ++++++++++++++++ 8 files changed, 417 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlock.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlock.qll index 277791e2bae..954ff26afcc 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlock.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlock.qll @@ -10,6 +10,65 @@ predicate isInfeasibleInstructionSuccessor(Instruction instr, EdgeKind kind) { or instr.getSuccessor(kind) instanceof UnreachedInstruction and kind instanceof GotoEdge + or + isCallToNonReturningFunction(instr) +} + +/** + * Holds if all calls to `f` never return (e.g. they call `exit` or loop forever) + */ +private predicate isNonReturningFunction(IRFunction f) { + // If the function has an instruction with a missing successor then + // the analysis is probably going to be incorrect, so assume they exit. + not hasInstructionWithMissingSuccessor(f) and + ( + // If all flows to the exit block are pass through an unreachable then f never returns. + any(UnreachedInstruction instr).getBlock().postDominates(f.getEntryBlock()) + or + // If there is no flow to the exit block then f never returns. + not exists(IRBlock entry, IRBlock exit | + exit = f.getExitFunctionInstruction().getBlock() and + entry = f.getEntryBlock() and + exit = entry.getASuccessor*() + ) + or + // If all flows to the exit block are pass through a call that never returns then f never returns. + exists(CallInstruction ci | + ci.getBlock().postDominates(f.getEntryBlock()) and + isCallToNonReturningFunction(ci) + ) + ) +} + +/** + * Holds if `f` has an instruction with a missing successor. + * This matches `instructionWithoutSuccessor` from `IRConsistency`, but + * avoids generating the error strings. + */ +predicate hasInstructionWithMissingSuccessor(IRFunction f) { + exists(Instruction missingSucc | + missingSucc.getEnclosingIRFunction() = f and + not exists(missingSucc.getASuccessor()) and + not missingSucc instanceof ExitFunctionInstruction and + // Phi instructions aren't linked into the instruction-level flow graph. + not missingSucc instanceof PhiInstruction and + not missingSucc instanceof UnreachedInstruction + ) +} + +/** + * Holds if the call `ci` never returns. + */ +private predicate isCallToNonReturningFunction(CallInstruction ci) { + exists(IRFunction callee, Language::Function staticTarget | + staticTarget = ci.getStaticCallTarget() and + staticTarget = callee.getFunction() and + // We can't easily tell if the call is virtual or not + // if the callee is virtual. So assume that the call is virtual + // if the target is. + not staticTarget.isVirtual() and + isNonReturningFunction(callee) + ) } pragma[noinline] diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlockInternal.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlockInternal.qll index 3041b662962..5014a96c002 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlockInternal.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlockInternal.qll @@ -1,2 +1,3 @@ import semmle.code.cpp.ir.implementation.raw.IR as IR import semmle.code.cpp.ir.implementation.raw.constant.ConstantAnalysis as ConstantAnalysis +import semmle.code.cpp.ir.internal.IRCppLanguage as Language diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlock.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlock.qll index 277791e2bae..954ff26afcc 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlock.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlock.qll @@ -10,6 +10,65 @@ predicate isInfeasibleInstructionSuccessor(Instruction instr, EdgeKind kind) { or instr.getSuccessor(kind) instanceof UnreachedInstruction and kind instanceof GotoEdge + or + isCallToNonReturningFunction(instr) +} + +/** + * Holds if all calls to `f` never return (e.g. they call `exit` or loop forever) + */ +private predicate isNonReturningFunction(IRFunction f) { + // If the function has an instruction with a missing successor then + // the analysis is probably going to be incorrect, so assume they exit. + not hasInstructionWithMissingSuccessor(f) and + ( + // If all flows to the exit block are pass through an unreachable then f never returns. + any(UnreachedInstruction instr).getBlock().postDominates(f.getEntryBlock()) + or + // If there is no flow to the exit block then f never returns. + not exists(IRBlock entry, IRBlock exit | + exit = f.getExitFunctionInstruction().getBlock() and + entry = f.getEntryBlock() and + exit = entry.getASuccessor*() + ) + or + // If all flows to the exit block are pass through a call that never returns then f never returns. + exists(CallInstruction ci | + ci.getBlock().postDominates(f.getEntryBlock()) and + isCallToNonReturningFunction(ci) + ) + ) +} + +/** + * Holds if `f` has an instruction with a missing successor. + * This matches `instructionWithoutSuccessor` from `IRConsistency`, but + * avoids generating the error strings. + */ +predicate hasInstructionWithMissingSuccessor(IRFunction f) { + exists(Instruction missingSucc | + missingSucc.getEnclosingIRFunction() = f and + not exists(missingSucc.getASuccessor()) and + not missingSucc instanceof ExitFunctionInstruction and + // Phi instructions aren't linked into the instruction-level flow graph. + not missingSucc instanceof PhiInstruction and + not missingSucc instanceof UnreachedInstruction + ) +} + +/** + * Holds if the call `ci` never returns. + */ +private predicate isCallToNonReturningFunction(CallInstruction ci) { + exists(IRFunction callee, Language::Function staticTarget | + staticTarget = ci.getStaticCallTarget() and + staticTarget = callee.getFunction() and + // We can't easily tell if the call is virtual or not + // if the callee is virtual. So assume that the call is virtual + // if the target is. + not staticTarget.isVirtual() and + isNonReturningFunction(callee) + ) } pragma[noinline] diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlockInternal.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlockInternal.qll index 61dc1a50399..29101e77e6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlockInternal.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlockInternal.qll @@ -1,2 +1,3 @@ import semmle.code.cpp.ir.implementation.unaliased_ssa.IR as IR import semmle.code.cpp.ir.implementation.unaliased_ssa.constant.ConstantAnalysis as ConstantAnalysis +import semmle.code.cpp.ir.internal.IRCppLanguage as Language diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 9c261125c2f..a698e72a23f 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -15740,6 +15740,112 @@ ir.cpp: # 2072| Value = [VariableAccess] 116 # 2072| ValueCategory = prvalue(load) # 2073| getStmt(2): [ReturnStmt] return ... +# 2075| [TopLevelFunction] void exit(int) +# 2075| : +# 2075| getParameter(0): [Parameter] code +# 2075| Type = [IntType] int +# 2077| [TopLevelFunction] int NonExit() +# 2077| : +# 2077| getEntryPoint(): [BlockStmt] { ... } +# 2078| getStmt(0): [DeclStmt] declaration +# 2078| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2078| Type = [IntType] int +# 2078| getVariable().getInitializer(): [Initializer] initializer for x +# 2078| getExpr(): [FunctionCall] call to Add +# 2078| Type = [IntType] int +# 2078| ValueCategory = prvalue +# 2078| getArgument(0): [Literal] 3 +# 2078| Type = [IntType] int +# 2078| Value = [Literal] 3 +# 2078| ValueCategory = prvalue +# 2078| getArgument(1): [Literal] 4 +# 2078| Type = [IntType] int +# 2078| Value = [Literal] 4 +# 2078| ValueCategory = prvalue +# 2079| getStmt(1): [IfStmt] if (...) ... +# 2079| getCondition(): [EQExpr] ... == ... +# 2079| Type = [BoolType] bool +# 2079| ValueCategory = prvalue +# 2079| getLeftOperand(): [VariableAccess] x +# 2079| Type = [IntType] int +# 2079| ValueCategory = prvalue(load) +# 2079| getRightOperand(): [Literal] 7 +# 2079| Type = [IntType] int +# 2079| Value = [Literal] 7 +# 2079| ValueCategory = prvalue +# 2080| getThen(): [ExprStmt] ExprStmt +# 2080| getExpr(): [FunctionCall] call to exit +# 2080| Type = [VoidType] void +# 2080| ValueCategory = prvalue +# 2080| getArgument(0): [Literal] 3 +# 2080| Type = [IntType] int +# 2080| Value = [Literal] 3 +# 2080| ValueCategory = prvalue +# 2081| getStmt(2): [ExprStmt] ExprStmt +# 2081| getExpr(): [FunctionCall] call to VoidFunc +# 2081| Type = [VoidType] void +# 2081| ValueCategory = prvalue +# 2082| getStmt(3): [ReturnStmt] return ... +# 2082| getExpr(): [VariableAccess] x +# 2082| Type = [IntType] int +# 2082| ValueCategory = prvalue(load) +# 2085| [TopLevelFunction] void CallsNonExit() +# 2085| : +# 2085| getEntryPoint(): [BlockStmt] { ... } +# 2086| getStmt(0): [ExprStmt] ExprStmt +# 2086| getExpr(): [FunctionCall] call to VoidFunc +# 2086| Type = [VoidType] void +# 2086| ValueCategory = prvalue +# 2087| getStmt(1): [ExprStmt] ExprStmt +# 2087| getExpr(): [FunctionCall] call to exit +# 2087| Type = [VoidType] void +# 2087| ValueCategory = prvalue +# 2087| getArgument(0): [Literal] 3 +# 2087| Type = [IntType] int +# 2087| Value = [Literal] 3 +# 2087| ValueCategory = prvalue +# 2088| getStmt(2): [ReturnStmt] return ... +# 2090| [TopLevelFunction] int TransNonExit() +# 2090| : +# 2090| getEntryPoint(): [BlockStmt] { ... } +# 2091| getStmt(0): [DeclStmt] declaration +# 2091| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2091| Type = [IntType] int +# 2091| getVariable().getInitializer(): [Initializer] initializer for x +# 2091| getExpr(): [FunctionCall] call to Add +# 2091| Type = [IntType] int +# 2091| ValueCategory = prvalue +# 2091| getArgument(0): [Literal] 3 +# 2091| Type = [IntType] int +# 2091| Value = [Literal] 3 +# 2091| ValueCategory = prvalue +# 2091| getArgument(1): [Literal] 4 +# 2091| Type = [IntType] int +# 2091| Value = [Literal] 4 +# 2091| ValueCategory = prvalue +# 2092| getStmt(1): [IfStmt] if (...) ... +# 2092| getCondition(): [EQExpr] ... == ... +# 2092| Type = [BoolType] bool +# 2092| ValueCategory = prvalue +# 2092| getLeftOperand(): [VariableAccess] x +# 2092| Type = [IntType] int +# 2092| ValueCategory = prvalue(load) +# 2092| getRightOperand(): [Literal] 7 +# 2092| Type = [IntType] int +# 2092| Value = [Literal] 7 +# 2092| ValueCategory = prvalue +# 2093| getThen(): [ExprStmt] ExprStmt +# 2093| getExpr(): [FunctionCall] call to CallsNonExit +# 2093| Type = [VoidType] void +# 2093| ValueCategory = prvalue +# 2094| getStmt(2): [ExprStmt] ExprStmt +# 2094| getExpr(): [FunctionCall] call to VoidFunc +# 2094| Type = [VoidType] void +# 2094| ValueCategory = prvalue +# 2095| getStmt(3): [ReturnStmt] return ... +# 2095| getExpr(): [VariableAccess] x +# 2095| Type = [IntType] int +# 2095| ValueCategory = prvalue(load) perf-regression.cpp: # 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&) # 4| : diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index e3de7919375..9ad813d02b0 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -2072,4 +2072,27 @@ void test_constant_folding() { test_constant_folding_use(x); } +void exit(int code); + +int NonExit() { + int x = Add(3,4); + if (x == 7) + exit(3); + VoidFunc(); + return x; +} + +void CallsNonExit() { + VoidFunc(); + exit(3); +} + +int TransNonExit() { + int x = Add(3,4); + if (x == 7) + CallsNonExit(); + VoidFunc(); + return x; +} + // semmle-extractor-options: -std=c++17 --clang diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index 63ece7fa36f..4fa5ceca8a3 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -9827,6 +9827,75 @@ | ir.cpp:2072:3:2072:27 | ChiTotal | total:m2070_4 | | ir.cpp:2072:3:2072:27 | SideEffect | ~m2070_4 | | ir.cpp:2072:29:2072:29 | Arg(0) | 0:r2072_2 | +| ir.cpp:2077:5:2077:11 | Address | &:r2077_6 | +| ir.cpp:2077:5:2077:11 | ChiPartial | partial:m2077_3 | +| ir.cpp:2077:5:2077:11 | ChiTotal | total:m2077_2 | +| ir.cpp:2077:5:2077:11 | Load | m2082_4 | +| ir.cpp:2077:5:2077:11 | SideEffect | ~m2081_4 | +| ir.cpp:2078:9:2078:9 | Address | &:r2078_1 | +| ir.cpp:2078:13:2078:15 | CallTarget | func:r2078_2 | +| ir.cpp:2078:13:2078:15 | ChiPartial | partial:m2078_6 | +| ir.cpp:2078:13:2078:15 | ChiTotal | total:m2077_4 | +| ir.cpp:2078:13:2078:15 | SideEffect | ~m2077_4 | +| ir.cpp:2078:13:2078:15 | StoreValue | r2078_5 | +| ir.cpp:2078:17:2078:17 | Arg(0) | 0:r2078_3 | +| ir.cpp:2078:19:2078:19 | Arg(1) | 1:r2078_4 | +| ir.cpp:2079:9:2079:9 | Address | &:r2079_1 | +| ir.cpp:2079:9:2079:9 | Left | r2079_2 | +| ir.cpp:2079:9:2079:9 | Load | m2078_8 | +| ir.cpp:2079:9:2079:14 | Condition | r2079_4 | +| ir.cpp:2079:14:2079:14 | Right | r2079_3 | +| ir.cpp:2080:9:2080:12 | CallTarget | func:r2080_1 | +| ir.cpp:2080:9:2080:12 | ChiPartial | partial:m2080_4 | +| ir.cpp:2080:9:2080:12 | ChiTotal | total:m2078_7 | +| ir.cpp:2080:9:2080:12 | SideEffect | ~m2078_7 | +| ir.cpp:2080:14:2080:14 | Arg(0) | 0:r2080_2 | +| ir.cpp:2081:5:2081:12 | CallTarget | func:r2081_1 | +| ir.cpp:2081:5:2081:12 | ChiPartial | partial:m2081_3 | +| ir.cpp:2081:5:2081:12 | ChiTotal | total:m2078_7 | +| ir.cpp:2081:5:2081:12 | SideEffect | ~m2078_7 | +| ir.cpp:2082:5:2082:13 | Address | &:r2082_1 | +| ir.cpp:2082:12:2082:12 | Address | &:r2082_2 | +| ir.cpp:2082:12:2082:12 | Load | m2078_8 | +| ir.cpp:2082:12:2082:12 | StoreValue | r2082_3 | +| ir.cpp:2085:6:2085:17 | ChiPartial | partial:m2085_3 | +| ir.cpp:2085:6:2085:17 | ChiTotal | total:m2085_2 | +| ir.cpp:2086:5:2086:12 | CallTarget | func:r2086_1 | +| ir.cpp:2086:5:2086:12 | ChiPartial | partial:m2086_3 | +| ir.cpp:2086:5:2086:12 | ChiTotal | total:m2085_4 | +| ir.cpp:2086:5:2086:12 | SideEffect | ~m2085_4 | +| ir.cpp:2087:5:2087:8 | CallTarget | func:r2087_1 | +| ir.cpp:2087:5:2087:8 | ChiPartial | partial:m2087_4 | +| ir.cpp:2087:5:2087:8 | ChiTotal | total:m2086_4 | +| ir.cpp:2087:5:2087:8 | SideEffect | ~m2086_4 | +| ir.cpp:2087:10:2087:10 | Arg(0) | 0:r2087_2 | +| ir.cpp:2090:5:2090:16 | Address | &:r2090_6 | +| ir.cpp:2090:5:2090:16 | ChiPartial | partial:m2090_3 | +| ir.cpp:2090:5:2090:16 | ChiTotal | total:m2090_2 | +| ir.cpp:2090:5:2090:16 | Load | m2095_4 | +| ir.cpp:2090:5:2090:16 | SideEffect | ~m2094_4 | +| ir.cpp:2091:9:2091:9 | Address | &:r2091_1 | +| ir.cpp:2091:13:2091:15 | CallTarget | func:r2091_2 | +| ir.cpp:2091:13:2091:15 | ChiPartial | partial:m2091_6 | +| ir.cpp:2091:13:2091:15 | ChiTotal | total:m2090_4 | +| ir.cpp:2091:13:2091:15 | SideEffect | ~m2090_4 | +| ir.cpp:2091:13:2091:15 | StoreValue | r2091_5 | +| ir.cpp:2091:17:2091:17 | Arg(0) | 0:r2091_3 | +| ir.cpp:2091:19:2091:19 | Arg(1) | 1:r2091_4 | +| ir.cpp:2092:9:2092:9 | Address | &:r2092_1 | +| ir.cpp:2092:9:2092:9 | Left | r2092_2 | +| ir.cpp:2092:9:2092:9 | Load | m2091_8 | +| ir.cpp:2092:9:2092:14 | Condition | r2092_4 | +| ir.cpp:2092:14:2092:14 | Right | r2092_3 | +| ir.cpp:2093:9:2093:20 | CallTarget | func:r2093_1 | +| ir.cpp:2094:5:2094:12 | CallTarget | func:r2094_1 | +| ir.cpp:2094:5:2094:12 | ChiPartial | partial:m2094_3 | +| ir.cpp:2094:5:2094:12 | ChiTotal | total:m2091_7 | +| ir.cpp:2094:5:2094:12 | SideEffect | ~m2091_7 | +| ir.cpp:2095:5:2095:13 | Address | &:r2095_1 | +| ir.cpp:2095:12:2095:12 | Address | &:r2095_2 | +| ir.cpp:2095:12:2095:12 | Load | m2091_8 | +| ir.cpp:2095:12:2095:12 | StoreValue | r2095_3 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_7 | diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index 1ca119060f6..0c4521f5e6a 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -11330,6 +11330,105 @@ ir.cpp: # 2070| v2070_5(void) = AliasedUse : ~m? # 2070| v2070_6(void) = ExitFunction : +# 2077| int NonExit() +# 2077| Block 0 +# 2077| v2077_1(void) = EnterFunction : +# 2077| mu2077_2(unknown) = AliasedDefinition : +# 2077| mu2077_3(unknown) = InitializeNonLocal : +# 2078| r2078_1(glval) = VariableAddress[x] : +# 2078| r2078_2(glval) = FunctionAddress[Add] : +# 2078| r2078_3(int) = Constant[3] : +# 2078| r2078_4(int) = Constant[4] : +# 2078| r2078_5(int) = Call[Add] : func:r2078_2, 0:r2078_3, 1:r2078_4 +# 2078| mu2078_6(unknown) = ^CallSideEffect : ~m? +# 2078| mu2078_7(int) = Store[x] : &:r2078_1, r2078_5 +# 2079| r2079_1(glval) = VariableAddress[x] : +# 2079| r2079_2(int) = Load[x] : &:r2079_1, ~m? +# 2079| r2079_3(int) = Constant[7] : +# 2079| r2079_4(bool) = CompareEQ : r2079_2, r2079_3 +# 2079| v2079_5(void) = ConditionalBranch : r2079_4 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2080| Block 1 +# 2080| r2080_1(glval) = FunctionAddress[exit] : +# 2080| r2080_2(int) = Constant[3] : +# 2080| v2080_3(void) = Call[exit] : func:r2080_1, 0:r2080_2 +# 2080| mu2080_4(unknown) = ^CallSideEffect : ~m? +# 2077| v2077_4(void) = Unreached : + +# 2081| Block 2 +# 2081| r2081_1(glval) = FunctionAddress[VoidFunc] : +# 2081| v2081_2(void) = Call[VoidFunc] : func:r2081_1 +# 2081| mu2081_3(unknown) = ^CallSideEffect : ~m? +# 2082| r2082_1(glval) = VariableAddress[#return] : +# 2082| r2082_2(glval) = VariableAddress[x] : +# 2082| r2082_3(int) = Load[x] : &:r2082_2, ~m? +# 2082| mu2082_4(int) = Store[#return] : &:r2082_1, r2082_3 +# 2077| r2077_5(glval) = VariableAddress[#return] : +# 2077| v2077_6(void) = ReturnValue : &:r2077_5, ~m? +# 2077| v2077_7(void) = AliasedUse : ~m? +# 2077| v2077_8(void) = ExitFunction : + +# 2085| void CallsNonExit() +# 2085| Block 0 +# 2085| v2085_1(void) = EnterFunction : +# 2085| mu2085_2(unknown) = AliasedDefinition : +# 2085| mu2085_3(unknown) = InitializeNonLocal : +# 2086| r2086_1(glval) = FunctionAddress[VoidFunc] : +# 2086| v2086_2(void) = Call[VoidFunc] : func:r2086_1 +# 2086| mu2086_3(unknown) = ^CallSideEffect : ~m? +# 2087| r2087_1(glval) = FunctionAddress[exit] : +# 2087| r2087_2(int) = Constant[3] : +# 2087| v2087_3(void) = Call[exit] : func:r2087_1, 0:r2087_2 +# 2087| mu2087_4(unknown) = ^CallSideEffect : ~m? +# 2085| v2085_4(void) = Unreached : + +# 2088| Block 1 +# 2088| v2088_1(void) = NoOp : +# 2085| v2085_5(void) = ReturnVoid : +# 2085| v2085_6(void) = AliasedUse : ~m? +# 2085| v2085_7(void) = ExitFunction : + +# 2090| int TransNonExit() +# 2090| Block 0 +# 2090| v2090_1(void) = EnterFunction : +# 2090| mu2090_2(unknown) = AliasedDefinition : +# 2090| mu2090_3(unknown) = InitializeNonLocal : +# 2091| r2091_1(glval) = VariableAddress[x] : +# 2091| r2091_2(glval) = FunctionAddress[Add] : +# 2091| r2091_3(int) = Constant[3] : +# 2091| r2091_4(int) = Constant[4] : +# 2091| r2091_5(int) = Call[Add] : func:r2091_2, 0:r2091_3, 1:r2091_4 +# 2091| mu2091_6(unknown) = ^CallSideEffect : ~m? +# 2091| mu2091_7(int) = Store[x] : &:r2091_1, r2091_5 +# 2092| r2092_1(glval) = VariableAddress[x] : +# 2092| r2092_2(int) = Load[x] : &:r2092_1, ~m? +# 2092| r2092_3(int) = Constant[7] : +# 2092| r2092_4(bool) = CompareEQ : r2092_2, r2092_3 +# 2092| v2092_5(void) = ConditionalBranch : r2092_4 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2093| Block 1 +# 2093| r2093_1(glval) = FunctionAddress[CallsNonExit] : +# 2093| v2093_2(void) = Call[CallsNonExit] : func:r2093_1 +# 2093| mu2093_3(unknown) = ^CallSideEffect : ~m? +#-----| Goto -> Block 2 + +# 2094| Block 2 +# 2094| r2094_1(glval) = FunctionAddress[VoidFunc] : +# 2094| v2094_2(void) = Call[VoidFunc] : func:r2094_1 +# 2094| mu2094_3(unknown) = ^CallSideEffect : ~m? +# 2095| r2095_1(glval) = VariableAddress[#return] : +# 2095| r2095_2(glval) = VariableAddress[x] : +# 2095| r2095_3(int) = Load[x] : &:r2095_2, ~m? +# 2095| mu2095_4(int) = Store[#return] : &:r2095_1, r2095_3 +# 2090| r2090_4(glval) = VariableAddress[#return] : +# 2090| v2090_5(void) = ReturnValue : &:r2090_4, ~m? +# 2090| v2090_6(void) = AliasedUse : ~m? +# 2090| v2090_7(void) = ExitFunction : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 From 0d7d5a35c9c131ca4d63d4a739d6505ae968f1f6 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 7 Sep 2023 13:39:10 +0100 Subject: [PATCH 248/788] Ruby: Use a newtype instead of DataFlow::FlowState for code-injection --- .../security/CodeInjectionCustomizations.qll | 81 ++++++++++++++++--- .../ruby/security/CodeInjectionQuery.qll | 14 ++-- .../queries/security/cwe-094/CodeInjection.ql | 2 +- 3 files changed, 77 insertions(+), 20 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll index 82b385abb8c..a265e785e47 100644 --- a/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll @@ -13,27 +13,74 @@ private import codeql.ruby.dataflow.BarrierGuards module CodeInjection { /** Flow states used to distinguish whether an attacker controls the entire string. */ module FlowState { - /** Flow state used for normal tainted data, where an attacker might only control a substring. */ - DataFlow::FlowState substring() { result = "substring" } + /** + * Flow state used for normal tainted data, where an attacker might only control a substring. + * DEPRECATED: Use `Full()` + */ + deprecated DataFlow::FlowState substring() { result = "substring" } - /** Flow state used for data that is entirely controlled by the attacker. */ - DataFlow::FlowState full() { result = "full" } + /** + * Flow state used for data that is entirely controlled by the attacker. + * DEPRECATED: Use `Full()` + */ + deprecated DataFlow::FlowState full() { result = "full" } + + private newtype TState = + TFull() or + TSubString() + + /** Flow states used to distinguish whether an attacker controls the entire string. */ + class State extends TState { + string toString() { + this = TSubString() and result = "substring" + or + this = TFull() and result = "full" + } + } + + /** + * Flow state used for normal tainted data, where an attacker might only control a substring. + */ + class SubString extends State, TSubString { } + + /** + * Flow state used for data that is entirely controlled by the attacker. + */ + class Full extends State, TFull { } } /** * A data flow source for "Code injection" vulnerabilities. */ abstract class Source extends DataFlow::Node { + /** + * Gets a flow state for which this is a source. + * DEPRECATED: Use `getAState()` + */ + deprecated DataFlow::FlowState getAFlowState() { + result = [FlowState::substring(), FlowState::full()] + } + /** Gets a flow state for which this is a source. */ - DataFlow::FlowState getAFlowState() { result = [FlowState::substring(), FlowState::full()] } + FlowState::State getAState() { + result instanceof FlowState::SubString or result instanceof FlowState::Full + } } /** * A data flow sink for "Code injection" vulnerabilities. */ abstract class Sink extends DataFlow::Node { + /** + * Holds if this sink is safe for an attacker that only controls a substring. + * DEPRECATED: Use `getAState()` + */ + deprecated DataFlow::FlowState getAFlowState() { + result = [FlowState::substring(), FlowState::full()] + } + /** Holds if this sink is safe for an attacker that only controls a substring. */ - DataFlow::FlowState getAFlowState() { result = [FlowState::substring(), FlowState::full()] } + FlowState::State getAState() { any() } } /** @@ -43,8 +90,15 @@ module CodeInjection { /** * Gets a flow state for which this is a sanitizer. * Sanitizes all states if the result is empty. + * DEPRECATED: Use `getAState()` */ - DataFlow::FlowState getAFlowState() { none() } + deprecated DataFlow::FlowState getAFlowState() { none() } + + /** + * Gets a flow state for which this is a sanitizer. + * Sanitizes all states if the result is empty. + */ + FlowState::State getAState() { none() } } /** @@ -67,12 +121,17 @@ module CodeInjection { CodeExecutionAsSink() { this = c.getCode() } - /** Gets a flow state for which this is a sink. */ - override DataFlow::FlowState getAFlowState() { + deprecated override DataFlow::FlowState getAFlowState() { if c.runsArbitraryCode() then result = [FlowState::substring(), FlowState::full()] // If it runs arbitrary code then it's always vulnerable. else result = FlowState::full() // If it "just" loads something, then it's only vulnerable if the attacker controls the entire string. } + + override FlowState::State getAState() { + if c.runsArbitraryCode() + then any() // If it runs arbitrary code then it's always vulnerable. + else result instanceof FlowState::Full // If it "just" loads something, then it's only vulnerable if the attacker controls the entire string. + } } private import codeql.ruby.AST as Ast @@ -92,6 +151,8 @@ module CodeInjection { ) } - override DataFlow::FlowState getAFlowState() { result = FlowState::full() } + deprecated override DataFlow::FlowState getAFlowState() { result = FlowState::full() } + + override FlowState::State getAState() { result instanceof FlowState::Full } } } diff --git a/ruby/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll index 1ccae57c070..9e2ad5faf16 100644 --- a/ruby/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll @@ -44,25 +44,21 @@ deprecated class Configuration extends TaintTracking::Configuration { } private module Config implements DataFlow::StateConfigSig { - class FlowState = DataFlow::FlowState; + class FlowState = FlowState::State; - predicate isSource(DataFlow::Node source, FlowState state) { - state = source.(Source).getAFlowState() - } + predicate isSource(DataFlow::Node source, FlowState state) { state = source.(Source).getAState() } - predicate isSink(DataFlow::Node sink, FlowState state) { state = sink.(Sink).getAFlowState() } + predicate isSink(DataFlow::Node sink, FlowState state) { state = sink.(Sink).getAState() } predicate isBarrier(DataFlow::Node node) { - node instanceof Sanitizer and not exists(node.(Sanitizer).getAFlowState()) + node instanceof Sanitizer and not exists(node.(Sanitizer).getAState()) or node instanceof StringConstCompareBarrier or node instanceof StringConstArrayInclusionCallBarrier } - predicate isBarrier(DataFlow::Node node, DataFlow::FlowState state) { - node.(Sanitizer).getAFlowState() = state - } + predicate isBarrier(DataFlow::Node node, FlowState state) { node.(Sanitizer).getAState() = state } } /** diff --git a/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql b/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql index ecb405c60fd..efeebced372 100644 --- a/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql +++ b/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql @@ -29,7 +29,7 @@ where otherSink) and otherSink.getNode() = sink.getNode() | - otherSink order by otherSink.getState() + otherSink order by otherSink.getState().toString() ) select sink.getNode(), source, sink, "This code execution depends on a $@.", sourceNode, "user-provided value" From 404145dd1b36e1668aef976b4e4e04553f8cbfc9 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Wed, 6 Sep 2023 11:43:05 +0100 Subject: [PATCH 249/788] CPP: Update tests --- .../CWE/CWE-416/semmle/tests/UseAfterFree.expected | 7 ------- 1 file changed, 7 deletions(-) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected index 200db037129..5fd06b5f951 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree.expected @@ -9,8 +9,6 @@ edges | test.cpp:116:7:116:10 | data | test.cpp:119:6:119:9 | data | | test.cpp:127:7:127:10 | data | test.cpp:130:6:130:9 | data | | test.cpp:127:7:127:10 | data | test.cpp:130:6:130:9 | data | -| test.cpp:138:7:138:10 | data | test.cpp:141:6:141:9 | data | -| test.cpp:138:7:138:10 | data | test.cpp:141:6:141:9 | data | | test.cpp:164:9:164:9 | c | test.cpp:165:2:165:2 | c | | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | * ... | | test.cpp:164:9:164:9 | c | test.cpp:166:4:166:4 | c | @@ -39,9 +37,6 @@ nodes | test.cpp:127:7:127:10 | data | semmle.label | data | | test.cpp:127:7:127:10 | data | semmle.label | data | | test.cpp:130:6:130:9 | data | semmle.label | data | -| test.cpp:138:7:138:10 | data | semmle.label | data | -| test.cpp:138:7:138:10 | data | semmle.label | data | -| test.cpp:141:6:141:9 | data | semmle.label | data | | test.cpp:164:9:164:9 | c | semmle.label | c | | test.cpp:165:2:165:2 | c | semmle.label | c | | test.cpp:166:3:166:4 | * ... | semmle.label | * ... | @@ -72,8 +67,6 @@ subpaths | test.cpp:119:6:119:9 | data | test.cpp:116:7:116:10 | data | test.cpp:119:6:119:9 | data | Memory may have been previously freed by $@. | test.cpp:116:2:116:5 | call to free | call to free | | test.cpp:130:6:130:9 | data | test.cpp:127:7:127:10 | data | test.cpp:130:6:130:9 | data | Memory may have been previously freed by $@. | test.cpp:127:2:127:5 | call to free | call to free | | test.cpp:130:6:130:9 | data | test.cpp:127:7:127:10 | data | test.cpp:130:6:130:9 | data | Memory may have been previously freed by $@. | test.cpp:127:2:127:5 | call to free | call to free | -| test.cpp:141:6:141:9 | data | test.cpp:138:7:138:10 | data | test.cpp:141:6:141:9 | data | Memory may have been previously freed by $@. | test.cpp:138:2:138:5 | call to free | call to free | -| test.cpp:141:6:141:9 | data | test.cpp:138:7:138:10 | data | test.cpp:141:6:141:9 | data | Memory may have been previously freed by $@. | test.cpp:138:2:138:5 | call to free | call to free | | test.cpp:165:2:165:2 | c | test.cpp:164:9:164:9 | c | test.cpp:165:2:165:2 | c | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | | test.cpp:166:3:166:4 | * ... | test.cpp:164:9:164:9 | c | test.cpp:166:3:166:4 | * ... | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | | test.cpp:166:4:166:4 | c | test.cpp:164:9:164:9 | c | test.cpp:166:4:166:4 | c | Memory may have been previously freed by $@. | test.cpp:164:2:164:10 | delete | delete | From 43a72f2a8e3d9a7c406a9771b3c3f240945f33ca Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Wed, 6 Sep 2023 11:06:48 +0100 Subject: [PATCH 250/788] CPP:Add tests for the aliased IR. --- .../library-tests/ir/ir/aliased_ir.expected | 12956 ++++++++++++++++ cpp/ql/test/library-tests/ir/ir/aliased_ir.ql | 11 + 2 files changed, 12967 insertions(+) create mode 100644 cpp/ql/test/library-tests/ir/ir/aliased_ir.expected create mode 100644 cpp/ql/test/library-tests/ir/ir/aliased_ir.ql diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected new file mode 100644 index 00000000000..43525ccf1db --- /dev/null +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -0,0 +1,12956 @@ +bad_asts.cpp: +# 9| int Bad::S::MemberFunction(int) +# 9| Block 0 +# 9| v9_1(void) = EnterFunction : +# 9| m9_2(unknown) = AliasedDefinition : +# 9| m9_3(unknown) = InitializeNonLocal : +# 9| m9_4(unknown) = Chi : total:m9_2, partial:m9_3 +# 9| r9_5(glval) = VariableAddress[#this] : +# 9| m9_6(glval) = InitializeParameter[#this] : &:r9_5 +# 9| r9_7(glval) = Load[#this] : &:r9_5, m9_6 +# 9| m9_8(S) = InitializeIndirection[#this] : &:r9_7 +# 9| r9_9(glval) = VariableAddress[y] : +# 9| m9_10(int) = InitializeParameter[y] : &:r9_9 +# 10| r10_1(glval) = VariableAddress[#return] : +# 10| r10_2(int) = Constant[6] : +# 10| r10_3(glval) = VariableAddress[#this] : +# 10| r10_4(S *) = Load[#this] : &:r10_3, m9_6 +# 10| r10_5(glval) = FieldAddress[x] : r10_4 +# 10| r10_6(int) = Load[?] : &:r10_5, ~m9_8 +# 10| r10_7(int) = Add : r10_2, r10_6 +# 10| r10_8(glval) = VariableAddress[y] : +# 10| r10_9(int) = Load[y] : &:r10_8, m9_10 +# 10| r10_10(int) = Add : r10_7, r10_9 +# 10| m10_11(int) = Store[#return] : &:r10_1, r10_10 +# 9| v9_11(void) = ReturnIndirection[#this] : &:r9_7, m9_8 +# 9| r9_12(glval) = VariableAddress[#return] : +# 9| v9_13(void) = ReturnValue : &:r9_12, m10_11 +# 9| v9_14(void) = AliasedUse : m9_3 +# 9| v9_15(void) = ExitFunction : + +# 14| void Bad::CallBadMemberFunction() +# 14| Block 0 +# 14| v14_1(void) = EnterFunction : +# 14| m14_2(unknown) = AliasedDefinition : +# 14| m14_3(unknown) = InitializeNonLocal : +# 14| m14_4(unknown) = Chi : total:m14_2, partial:m14_3 +# 15| r15_1(glval) = VariableAddress[s] : +# 15| m15_2(S) = Uninitialized[s] : &:r15_1 +# 15| r15_3(glval) = FieldAddress[x] : r15_1 +# 15| r15_4(int) = Constant[0] : +# 15| m15_5(int) = Store[?] : &:r15_3, r15_4 +# 16| r16_1(glval) = VariableAddress[s] : +# 16| r16_2(glval) = FunctionAddress[MemberFunction] : +# 16| r16_3(int) = Constant[1] : +# 16| r16_4(int) = Call[MemberFunction] : func:r16_2, this:r16_1, 0:r16_3 +# 16| m16_5(unknown) = ^CallSideEffect : ~m14_4 +# 16| m16_6(unknown) = Chi : total:m14_4, partial:m16_5 +# 16| v16_7(void) = ^IndirectReadSideEffect[-1] : &:r16_1, ~m15_5 +# 16| m16_8(S) = ^IndirectMayWriteSideEffect[-1] : &:r16_1 +# 16| m16_9(S) = Chi : total:m15_5, partial:m16_8 +# 17| v17_1(void) = NoOp : +# 14| v14_5(void) = ReturnVoid : +# 14| v14_6(void) = AliasedUse : ~m16_6 +# 14| v14_7(void) = ExitFunction : + +# 19| void Bad::Point::Point(Bad::Point const&) +# 19| Block 0 +# 19| v19_1(void) = EnterFunction : +# 19| m19_2(unknown) = AliasedDefinition : +# 19| m19_3(unknown) = InitializeNonLocal : +# 19| m19_4(unknown) = Chi : total:m19_2, partial:m19_3 +# 19| r19_5(glval) = VariableAddress[#this] : +# 19| m19_6(glval) = InitializeParameter[#this] : &:r19_5 +# 19| r19_7(glval) = Load[#this] : &:r19_5, m19_6 +# 19| m19_8(Point) = InitializeIndirection[#this] : &:r19_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(Point &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(Point &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 19| r19_9(glval) = FieldAddress[x] : m19_6 +# 19| r19_10(glval) = VariableAddress[(unnamed parameter 0)] : +# 19| r19_11(Point &) = Load[(unnamed parameter 0)] : &:r19_10, m0_2 +# 19| r19_12(glval) = CopyValue : r19_11 +# 19| r19_13(glval) = FieldAddress[x] : r19_12 +# 19| r19_14(int) = Load[?] : &:r19_13, ~m0_4 +# 19| m19_15(int) = Store[?] : &:r19_9, r19_14 +# 19| m19_16(unknown) = Chi : total:m19_8, partial:m19_15 +# 19| r19_17(glval) = FieldAddress[y] : m19_6 +# 19| r19_18(glval) = VariableAddress[(unnamed parameter 0)] : +# 19| r19_19(Point &) = Load[(unnamed parameter 0)] : &:r19_18, m0_2 +# 19| r19_20(glval) = CopyValue : r19_19 +# 19| r19_21(glval) = FieldAddress[y] : r19_20 +# 19| r19_22(int) = Load[?] : &:r19_21, ~m0_4 +# 19| m19_23(int) = Store[?] : &:r19_17, r19_22 +# 19| m19_24(unknown) = Chi : total:m19_16, partial:m19_23 +# 19| v19_25(void) = NoOp : +# 19| v19_26(void) = ReturnIndirection[#this] : &:r19_7, m19_24 +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 19| v19_27(void) = ReturnVoid : +# 19| v19_28(void) = AliasedUse : m19_3 +# 19| v19_29(void) = ExitFunction : + +# 22| void Bad::Point::Point() +# 22| Block 0 +# 22| v22_1(void) = EnterFunction : +# 22| m22_2(unknown) = AliasedDefinition : +# 22| m22_3(unknown) = InitializeNonLocal : +# 22| m22_4(unknown) = Chi : total:m22_2, partial:m22_3 +# 22| r22_5(glval) = VariableAddress[#this] : +# 22| m22_6(glval) = InitializeParameter[#this] : &:r22_5 +# 22| r22_7(glval) = Load[#this] : &:r22_5, m22_6 +# 22| m22_8(Point) = InitializeIndirection[#this] : &:r22_7 +# 23| v23_1(void) = NoOp : +# 22| v22_9(void) = ReturnIndirection[#this] : &:r22_7, m22_8 +# 22| v22_10(void) = ReturnVoid : +# 22| v22_11(void) = AliasedUse : m22_3 +# 22| v22_12(void) = ExitFunction : + +# 26| void Bad::CallCopyConstructor(Bad::Point const&) +# 26| Block 0 +# 26| v26_1(void) = EnterFunction : +# 26| m26_2(unknown) = AliasedDefinition : +# 26| m26_3(unknown) = InitializeNonLocal : +# 26| m26_4(unknown) = Chi : total:m26_2, partial:m26_3 +# 26| r26_5(glval) = VariableAddress[a] : +# 26| m26_6(Point &) = InitializeParameter[a] : &:r26_5 +# 26| r26_7(Point &) = Load[a] : &:r26_5, m26_6 +# 26| m26_8(unknown) = InitializeIndirection[a] : &:r26_7 +# 27| r27_1(glval) = VariableAddress[b] : +# 27| r27_2(glval) = VariableAddress[a] : +# 27| r27_3(Point &) = Load[a] : &:r27_2, m26_6 +# 27| r27_4(glval) = CopyValue : r27_3 +# 27| r27_5(glval) = Convert : r27_4 +# 27| r27_6(Point) = Load[?] : &:r27_5, ~m26_8 +# 27| m27_7(Point) = Store[b] : &:r27_1, r27_6 +# 28| v28_1(void) = NoOp : +# 26| v26_9(void) = ReturnIndirection[a] : &:r26_7, m26_8 +# 26| v26_10(void) = ReturnVoid : +# 26| v26_11(void) = AliasedUse : m26_3 +# 26| v26_12(void) = ExitFunction : + +bad_stmts.cpp: +# 5| void Bad::errorExpr() +# 5| Block 0 +# 5| v5_1(void) = EnterFunction : +# 5| m5_2(unknown) = AliasedDefinition : +# 5| m5_3(unknown) = InitializeNonLocal : +# 5| m5_4(unknown) = Chi : total:m5_2, partial:m5_3 +# 6| r6_1(glval) = VariableAddress[intref] : +# 6| r6_2(error) = Error : +# 6| m6_3(int &) = Store[intref] : &:r6_1, r6_2 +# 7| r7_1(glval) = VariableAddress[x] : +# 7| r7_2(error) = Error : +# 7| m7_3(int) = Store[x] : &:r7_1, r7_2 +# 8| r8_1(glval) = Error : +# 8| r8_2(error) = Load[?] : &:r8_1, ~m5_4 +# 8| r8_3(glval) = VariableAddress[x] : +# 8| m8_4(int) = Store[x] : &:r8_3, r8_2 +# 9| v9_1(void) = NoOp : +# 5| v5_5(void) = ReturnVoid : +# 5| v5_6(void) = AliasedUse : m5_3 +# 5| v5_7(void) = ExitFunction : + +clang.cpp: +# 5| int* globalIntAddress() +# 5| Block 0 +# 5| v5_1(void) = EnterFunction : +# 5| m5_2(unknown) = AliasedDefinition : +# 5| m5_3(unknown) = InitializeNonLocal : +# 5| m5_4(unknown) = Chi : total:m5_2, partial:m5_3 +# 6| r6_1(glval) = VariableAddress[#return] : +# 6| r6_2(glval) = VariableAddress[globalInt] : +# 6| r6_3(int *) = CopyValue : r6_2 +# 6| m6_4(int *) = Store[#return] : &:r6_1, r6_3 +# 5| r5_5(glval) = VariableAddress[#return] : +# 5| v5_6(void) = ReturnValue : &:r5_5, m6_4 +# 5| v5_7(void) = AliasedUse : m5_3 +# 5| v5_8(void) = ExitFunction : + +complex.c: +# 1| void complex_literals() +# 1| Block 0 +# 1| v1_1(void) = EnterFunction : +# 1| m1_2(unknown) = AliasedDefinition : +# 1| m1_3(unknown) = InitializeNonLocal : +# 1| m1_4(unknown) = Chi : total:m1_2, partial:m1_3 +# 2| r2_1(glval<_Complex float>) = VariableAddress[cf] : +# 2| r2_2(double) = Constant[2.0] : +# 2| r2_3(_Complex float) = Convert : r2_2 +# 2| m2_4(_Complex float) = Store[cf] : &:r2_1, r2_3 +# 3| r3_1(_Imaginary float) = Constant[1.0i] : +# 3| r3_2(_Complex float) = Convert : r3_1 +# 3| r3_3(glval<_Complex float>) = VariableAddress[cf] : +# 3| m3_4(_Complex float) = Store[cf] : &:r3_3, r3_2 +# 4| r4_1(glval<_Complex double>) = VariableAddress[cd] : +# 4| r4_2(double) = Constant[3.0] : +# 4| r4_3(_Complex double) = Convert : r4_2 +# 4| m4_4(_Complex double) = Store[cd] : &:r4_1, r4_3 +# 5| r5_1(_Imaginary float) = Constant[1.0i] : +# 5| r5_2(_Complex double) = Convert : r5_1 +# 5| r5_3(glval<_Complex double>) = VariableAddress[cd] : +# 5| m5_4(_Complex double) = Store[cd] : &:r5_3, r5_2 +# 6| r6_1(glval<_Complex long double>) = VariableAddress[cld] : +# 6| r6_2(double) = Constant[5.0] : +# 6| r6_3(_Complex long double) = Convert : r6_2 +# 6| m6_4(_Complex long double) = Store[cld] : &:r6_1, r6_3 +# 7| r7_1(_Imaginary float) = Constant[1.0i] : +# 7| r7_2(_Complex long double) = Convert : r7_1 +# 7| r7_3(glval<_Complex long double>) = VariableAddress[cld] : +# 7| m7_4(_Complex long double) = Store[cld] : &:r7_3, r7_2 +# 9| r9_1(glval<_Imaginary float>) = VariableAddress[jf] : +# 9| r9_2(_Imaginary float) = Constant[1.0i] : +# 9| m9_3(_Imaginary float) = Store[jf] : &:r9_1, r9_2 +# 10| r10_1(glval<_Imaginary double>) = VariableAddress[jd] : +# 10| r10_2(_Imaginary float) = Constant[1.0i] : +# 10| r10_3(_Imaginary double) = Convert : r10_2 +# 10| m10_4(_Imaginary double) = Store[jd] : &:r10_1, r10_3 +# 11| r11_1(glval<_Imaginary long double>) = VariableAddress[jld] : +# 11| r11_2(_Imaginary float) = Constant[1.0i] : +# 11| r11_3(_Imaginary long double) = Convert : r11_2 +# 11| m11_4(_Imaginary long double) = Store[jld] : &:r11_1, r11_3 +# 12| v12_1(void) = NoOp : +# 1| v1_5(void) = ReturnVoid : +# 1| v1_6(void) = AliasedUse : m1_3 +# 1| v1_7(void) = ExitFunction : + +# 14| void complex_arithmetic() +# 14| Block 0 +# 14| v14_1(void) = EnterFunction : +# 14| m14_2(unknown) = AliasedDefinition : +# 14| m14_3(unknown) = InitializeNonLocal : +# 14| m14_4(unknown) = Chi : total:m14_2, partial:m14_3 +# 15| r15_1(glval) = VariableAddress[f1] : +# 15| r15_2(float) = Constant[5.0] : +# 15| m15_3(float) = Store[f1] : &:r15_1, r15_2 +# 16| r16_1(glval) = VariableAddress[f2] : +# 16| r16_2(float) = Constant[7.0] : +# 16| m16_3(float) = Store[f2] : &:r16_1, r16_2 +# 17| r17_1(glval) = VariableAddress[f3] : +# 17| m17_2(float) = Uninitialized[f3] : &:r17_1 +# 18| r18_1(glval<_Complex float>) = VariableAddress[cf1] : +# 18| r18_2(double) = Constant[2.0] : +# 18| r18_3(_Complex float) = Convert : r18_2 +# 18| m18_4(_Complex float) = Store[cf1] : &:r18_1, r18_3 +# 19| r19_1(glval<_Complex float>) = VariableAddress[cf2] : +# 19| r19_2(_Imaginary float) = Constant[1.0i] : +# 19| r19_3(_Complex float) = Convert : r19_2 +# 19| m19_4(_Complex float) = Store[cf2] : &:r19_1, r19_3 +# 20| r20_1(glval<_Complex float>) = VariableAddress[cf3] : +# 20| m20_2(_Complex float) = Uninitialized[cf3] : &:r20_1 +# 21| r21_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 21| r21_2(_Imaginary float) = Constant[1.0i] : +# 21| m21_3(_Imaginary float) = Store[jf1] : &:r21_1, r21_2 +# 22| r22_1(glval<_Imaginary float>) = VariableAddress[jf2] : +# 22| r22_2(_Imaginary float) = Constant[1.0i] : +# 22| m22_3(_Imaginary float) = Store[jf2] : &:r22_1, r22_2 +# 23| r23_1(glval<_Imaginary float>) = VariableAddress[jf3] : +# 23| m23_2(_Imaginary float) = Uninitialized[jf3] : &:r23_1 +# 26| r26_1(glval<_Complex float>) = VariableAddress[cf1] : +# 26| r26_2(_Complex float) = Load[cf1] : &:r26_1, m18_4 +# 26| r26_3(_Complex float) = CopyValue : r26_2 +# 26| r26_4(glval<_Complex float>) = VariableAddress[cf3] : +# 26| m26_5(_Complex float) = Store[cf3] : &:r26_4, r26_3 +# 27| r27_1(glval<_Complex float>) = VariableAddress[cf1] : +# 27| r27_2(_Complex float) = Load[cf1] : &:r27_1, m18_4 +# 27| r27_3(_Complex float) = Negate : r27_2 +# 27| r27_4(glval<_Complex float>) = VariableAddress[cf3] : +# 27| m27_5(_Complex float) = Store[cf3] : &:r27_4, r27_3 +# 30| r30_1(glval<_Complex float>) = VariableAddress[cf1] : +# 30| r30_2(_Complex float) = Load[cf1] : &:r30_1, m18_4 +# 30| r30_3(glval<_Complex float>) = VariableAddress[cf2] : +# 30| r30_4(_Complex float) = Load[cf2] : &:r30_3, m19_4 +# 30| r30_5(_Complex float) = Add : r30_2, r30_4 +# 30| r30_6(glval<_Complex float>) = VariableAddress[cf3] : +# 30| m30_7(_Complex float) = Store[cf3] : &:r30_6, r30_5 +# 31| r31_1(glval<_Complex float>) = VariableAddress[cf1] : +# 31| r31_2(_Complex float) = Load[cf1] : &:r31_1, m18_4 +# 31| r31_3(glval<_Complex float>) = VariableAddress[cf2] : +# 31| r31_4(_Complex float) = Load[cf2] : &:r31_3, m19_4 +# 31| r31_5(_Complex float) = Sub : r31_2, r31_4 +# 31| r31_6(glval<_Complex float>) = VariableAddress[cf3] : +# 31| m31_7(_Complex float) = Store[cf3] : &:r31_6, r31_5 +# 32| r32_1(glval<_Complex float>) = VariableAddress[cf1] : +# 32| r32_2(_Complex float) = Load[cf1] : &:r32_1, m18_4 +# 32| r32_3(glval<_Complex float>) = VariableAddress[cf2] : +# 32| r32_4(_Complex float) = Load[cf2] : &:r32_3, m19_4 +# 32| r32_5(_Complex float) = Mul : r32_2, r32_4 +# 32| r32_6(glval<_Complex float>) = VariableAddress[cf3] : +# 32| m32_7(_Complex float) = Store[cf3] : &:r32_6, r32_5 +# 33| r33_1(glval<_Complex float>) = VariableAddress[cf1] : +# 33| r33_2(_Complex float) = Load[cf1] : &:r33_1, m18_4 +# 33| r33_3(glval<_Complex float>) = VariableAddress[cf2] : +# 33| r33_4(_Complex float) = Load[cf2] : &:r33_3, m19_4 +# 33| r33_5(_Complex float) = Div : r33_2, r33_4 +# 33| r33_6(glval<_Complex float>) = VariableAddress[cf3] : +# 33| m33_7(_Complex float) = Store[cf3] : &:r33_6, r33_5 +# 36| r36_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 36| r36_2(_Imaginary float) = Load[jf1] : &:r36_1, m21_3 +# 36| r36_3(_Imaginary float) = CopyValue : r36_2 +# 36| r36_4(glval<_Imaginary float>) = VariableAddress[jf3] : +# 36| m36_5(_Imaginary float) = Store[jf3] : &:r36_4, r36_3 +# 37| r37_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 37| r37_2(_Imaginary float) = Load[jf1] : &:r37_1, m21_3 +# 37| r37_3(_Imaginary float) = Negate : r37_2 +# 37| r37_4(glval<_Imaginary float>) = VariableAddress[jf3] : +# 37| m37_5(_Imaginary float) = Store[jf3] : &:r37_4, r37_3 +# 40| r40_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 40| r40_2(_Imaginary float) = Load[jf1] : &:r40_1, m21_3 +# 40| r40_3(glval<_Imaginary float>) = VariableAddress[jf2] : +# 40| r40_4(_Imaginary float) = Load[jf2] : &:r40_3, m22_3 +# 40| r40_5(_Imaginary float) = Add : r40_2, r40_4 +# 40| r40_6(glval<_Imaginary float>) = VariableAddress[jf3] : +# 40| m40_7(_Imaginary float) = Store[jf3] : &:r40_6, r40_5 +# 41| r41_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 41| r41_2(_Imaginary float) = Load[jf1] : &:r41_1, m21_3 +# 41| r41_3(glval<_Imaginary float>) = VariableAddress[jf2] : +# 41| r41_4(_Imaginary float) = Load[jf2] : &:r41_3, m22_3 +# 41| r41_5(_Imaginary float) = Sub : r41_2, r41_4 +# 41| r41_6(glval<_Imaginary float>) = VariableAddress[jf3] : +# 41| m41_7(_Imaginary float) = Store[jf3] : &:r41_6, r41_5 +# 42| r42_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 42| r42_2(_Imaginary float) = Load[jf1] : &:r42_1, m21_3 +# 42| r42_3(glval<_Imaginary float>) = VariableAddress[jf2] : +# 42| r42_4(_Imaginary float) = Load[jf2] : &:r42_3, m22_3 +# 42| r42_5(float) = Mul : r42_2, r42_4 +# 42| r42_6(glval) = VariableAddress[f3] : +# 42| m42_7(float) = Store[f3] : &:r42_6, r42_5 +# 43| r43_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 43| r43_2(_Imaginary float) = Load[jf1] : &:r43_1, m21_3 +# 43| r43_3(glval<_Imaginary float>) = VariableAddress[jf2] : +# 43| r43_4(_Imaginary float) = Load[jf2] : &:r43_3, m22_3 +# 43| r43_5(float) = Div : r43_2, r43_4 +# 43| r43_6(glval) = VariableAddress[f3] : +# 43| m43_7(float) = Store[f3] : &:r43_6, r43_5 +# 46| r46_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 46| r46_2(_Imaginary float) = Load[jf1] : &:r46_1, m21_3 +# 46| r46_3(glval) = VariableAddress[f2] : +# 46| r46_4(float) = Load[f2] : &:r46_3, m16_3 +# 46| r46_5(_Complex float) = Add : r46_2, r46_4 +# 46| r46_6(glval<_Complex float>) = VariableAddress[cf3] : +# 46| m46_7(_Complex float) = Store[cf3] : &:r46_6, r46_5 +# 47| r47_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 47| r47_2(_Imaginary float) = Load[jf1] : &:r47_1, m21_3 +# 47| r47_3(glval) = VariableAddress[f2] : +# 47| r47_4(float) = Load[f2] : &:r47_3, m16_3 +# 47| r47_5(_Complex float) = Sub : r47_2, r47_4 +# 47| r47_6(glval<_Complex float>) = VariableAddress[cf3] : +# 47| m47_7(_Complex float) = Store[cf3] : &:r47_6, r47_5 +# 48| r48_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 48| r48_2(_Imaginary float) = Load[jf1] : &:r48_1, m21_3 +# 48| r48_3(glval) = VariableAddress[f2] : +# 48| r48_4(float) = Load[f2] : &:r48_3, m16_3 +# 48| r48_5(_Imaginary float) = Mul : r48_2, r48_4 +# 48| r48_6(glval<_Imaginary float>) = VariableAddress[jf3] : +# 48| m48_7(_Imaginary float) = Store[jf3] : &:r48_6, r48_5 +# 49| r49_1(glval<_Imaginary float>) = VariableAddress[jf1] : +# 49| r49_2(_Imaginary float) = Load[jf1] : &:r49_1, m21_3 +# 49| r49_3(glval) = VariableAddress[f2] : +# 49| r49_4(float) = Load[f2] : &:r49_3, m16_3 +# 49| r49_5(_Imaginary float) = Div : r49_2, r49_4 +# 49| r49_6(glval<_Imaginary float>) = VariableAddress[jf3] : +# 49| m49_7(_Imaginary float) = Store[jf3] : &:r49_6, r49_5 +# 52| r52_1(glval) = VariableAddress[f1] : +# 52| r52_2(float) = Load[f1] : &:r52_1, m15_3 +# 52| r52_3(glval<_Imaginary float>) = VariableAddress[jf2] : +# 52| r52_4(_Imaginary float) = Load[jf2] : &:r52_3, m22_3 +# 52| r52_5(_Complex float) = Add : r52_2, r52_4 +# 52| r52_6(glval<_Complex float>) = VariableAddress[cf3] : +# 52| m52_7(_Complex float) = Store[cf3] : &:r52_6, r52_5 +# 53| r53_1(glval) = VariableAddress[f1] : +# 53| r53_2(float) = Load[f1] : &:r53_1, m15_3 +# 53| r53_3(glval<_Imaginary float>) = VariableAddress[jf2] : +# 53| r53_4(_Imaginary float) = Load[jf2] : &:r53_3, m22_3 +# 53| r53_5(_Complex float) = Sub : r53_2, r53_4 +# 53| r53_6(glval<_Complex float>) = VariableAddress[cf3] : +# 53| m53_7(_Complex float) = Store[cf3] : &:r53_6, r53_5 +# 54| r54_1(glval) = VariableAddress[f1] : +# 54| r54_2(float) = Load[f1] : &:r54_1, m15_3 +# 54| r54_3(glval<_Imaginary float>) = VariableAddress[jf2] : +# 54| r54_4(_Imaginary float) = Load[jf2] : &:r54_3, m22_3 +# 54| r54_5(_Imaginary float) = Mul : r54_2, r54_4 +# 54| r54_6(glval<_Imaginary float>) = VariableAddress[jf3] : +# 54| m54_7(_Imaginary float) = Store[jf3] : &:r54_6, r54_5 +# 55| r55_1(glval) = VariableAddress[f1] : +# 55| r55_2(float) = Load[f1] : &:r55_1, m15_3 +# 55| r55_3(glval<_Imaginary float>) = VariableAddress[jf2] : +# 55| r55_4(_Imaginary float) = Load[jf2] : &:r55_3, m22_3 +# 55| r55_5(_Imaginary float) = Div : r55_2, r55_4 +# 55| r55_6(glval<_Imaginary float>) = VariableAddress[jf3] : +# 55| m55_7(_Imaginary float) = Store[jf3] : &:r55_6, r55_5 +# 56| v56_1(void) = NoOp : +# 14| v14_5(void) = ReturnVoid : +# 14| v14_6(void) = AliasedUse : m14_3 +# 14| v14_7(void) = ExitFunction : + +# 58| void complex_conversions() +# 58| Block 0 +# 58| v58_1(void) = EnterFunction : +# 58| m58_2(unknown) = AliasedDefinition : +# 58| m58_3(unknown) = InitializeNonLocal : +# 58| m58_4(unknown) = Chi : total:m58_2, partial:m58_3 +# 59| r59_1(glval) = VariableAddress[f] : +# 59| r59_2(float) = Constant[2.0] : +# 59| m59_3(float) = Store[f] : &:r59_1, r59_2 +# 60| r60_1(glval) = VariableAddress[d] : +# 60| r60_2(double) = Constant[3.0] : +# 60| m60_3(double) = Store[d] : &:r60_1, r60_2 +# 61| r61_1(glval) = VariableAddress[ld] : +# 61| r61_2(long double) = Constant[5.0] : +# 61| m61_3(long double) = Store[ld] : &:r61_1, r61_2 +# 62| r62_1(glval<_Complex float>) = VariableAddress[cf] : +# 62| r62_2(double) = Constant[7.0] : +# 62| r62_3(_Complex float) = Convert : r62_2 +# 62| m62_4(_Complex float) = Store[cf] : &:r62_1, r62_3 +# 63| r63_1(glval<_Complex double>) = VariableAddress[cd] : +# 63| r63_2(double) = Constant[11.0] : +# 63| r63_3(_Complex double) = Convert : r63_2 +# 63| m63_4(_Complex double) = Store[cd] : &:r63_1, r63_3 +# 64| r64_1(glval<_Complex long double>) = VariableAddress[cld] : +# 64| r64_2(double) = Constant[13.0] : +# 64| r64_3(_Complex long double) = Convert : r64_2 +# 64| m64_4(_Complex long double) = Store[cld] : &:r64_1, r64_3 +# 65| r65_1(glval<_Imaginary float>) = VariableAddress[jf] : +# 65| r65_2(_Imaginary float) = Constant[1.0i] : +# 65| m65_3(_Imaginary float) = Store[jf] : &:r65_1, r65_2 +# 66| r66_1(glval<_Imaginary double>) = VariableAddress[jd] : +# 66| r66_2(_Imaginary float) = Constant[1.0i] : +# 66| r66_3(_Imaginary double) = Convert : r66_2 +# 66| m66_4(_Imaginary double) = Store[jd] : &:r66_1, r66_3 +# 67| r67_1(glval<_Imaginary long double>) = VariableAddress[jld] : +# 67| r67_2(_Imaginary float) = Constant[1.0i] : +# 67| r67_3(_Imaginary long double) = Convert : r67_2 +# 67| m67_4(_Imaginary long double) = Store[jld] : &:r67_1, r67_3 +# 70| r70_1(glval<_Complex float>) = VariableAddress[cf] : +# 70| r70_2(_Complex float) = Load[cf] : &:r70_1, m62_4 +# 70| r70_3(glval<_Complex float>) = VariableAddress[cf] : +# 70| m70_4(_Complex float) = Store[cf] : &:r70_3, r70_2 +# 71| r71_1(glval<_Complex double>) = VariableAddress[cd] : +# 71| r71_2(_Complex double) = Load[cd] : &:r71_1, m63_4 +# 71| r71_3(_Complex float) = Convert : r71_2 +# 71| r71_4(glval<_Complex float>) = VariableAddress[cf] : +# 71| m71_5(_Complex float) = Store[cf] : &:r71_4, r71_3 +# 72| r72_1(glval<_Complex long double>) = VariableAddress[cld] : +# 72| r72_2(_Complex long double) = Load[cld] : &:r72_1, m64_4 +# 72| r72_3(_Complex float) = Convert : r72_2 +# 72| r72_4(glval<_Complex float>) = VariableAddress[cf] : +# 72| m72_5(_Complex float) = Store[cf] : &:r72_4, r72_3 +# 73| r73_1(glval<_Complex float>) = VariableAddress[cf] : +# 73| r73_2(_Complex float) = Load[cf] : &:r73_1, m72_5 +# 73| r73_3(_Complex double) = Convert : r73_2 +# 73| r73_4(glval<_Complex double>) = VariableAddress[cd] : +# 73| m73_5(_Complex double) = Store[cd] : &:r73_4, r73_3 +# 74| r74_1(glval<_Complex double>) = VariableAddress[cd] : +# 74| r74_2(_Complex double) = Load[cd] : &:r74_1, m73_5 +# 74| r74_3(glval<_Complex double>) = VariableAddress[cd] : +# 74| m74_4(_Complex double) = Store[cd] : &:r74_3, r74_2 +# 75| r75_1(glval<_Complex long double>) = VariableAddress[cld] : +# 75| r75_2(_Complex long double) = Load[cld] : &:r75_1, m64_4 +# 75| r75_3(_Complex double) = Convert : r75_2 +# 75| r75_4(glval<_Complex double>) = VariableAddress[cd] : +# 75| m75_5(_Complex double) = Store[cd] : &:r75_4, r75_3 +# 76| r76_1(glval<_Complex float>) = VariableAddress[cf] : +# 76| r76_2(_Complex float) = Load[cf] : &:r76_1, m72_5 +# 76| r76_3(_Complex long double) = Convert : r76_2 +# 76| r76_4(glval<_Complex long double>) = VariableAddress[cld] : +# 76| m76_5(_Complex long double) = Store[cld] : &:r76_4, r76_3 +# 77| r77_1(glval<_Complex double>) = VariableAddress[cd] : +# 77| r77_2(_Complex double) = Load[cd] : &:r77_1, m75_5 +# 77| r77_3(_Complex long double) = Convert : r77_2 +# 77| r77_4(glval<_Complex long double>) = VariableAddress[cld] : +# 77| m77_5(_Complex long double) = Store[cld] : &:r77_4, r77_3 +# 78| r78_1(glval<_Complex long double>) = VariableAddress[cld] : +# 78| r78_2(_Complex long double) = Load[cld] : &:r78_1, m77_5 +# 78| r78_3(glval<_Complex long double>) = VariableAddress[cld] : +# 78| m78_4(_Complex long double) = Store[cld] : &:r78_3, r78_2 +# 81| r81_1(glval) = VariableAddress[f] : +# 81| r81_2(float) = Load[f] : &:r81_1, m59_3 +# 81| r81_3(_Complex float) = Convert : r81_2 +# 81| r81_4(glval<_Complex float>) = VariableAddress[cf] : +# 81| m81_5(_Complex float) = Store[cf] : &:r81_4, r81_3 +# 82| r82_1(glval) = VariableAddress[d] : +# 82| r82_2(double) = Load[d] : &:r82_1, m60_3 +# 82| r82_3(_Complex float) = Convert : r82_2 +# 82| r82_4(glval<_Complex float>) = VariableAddress[cf] : +# 82| m82_5(_Complex float) = Store[cf] : &:r82_4, r82_3 +# 83| r83_1(glval) = VariableAddress[ld] : +# 83| r83_2(long double) = Load[ld] : &:r83_1, m61_3 +# 83| r83_3(_Complex float) = Convert : r83_2 +# 83| r83_4(glval<_Complex float>) = VariableAddress[cf] : +# 83| m83_5(_Complex float) = Store[cf] : &:r83_4, r83_3 +# 84| r84_1(glval) = VariableAddress[f] : +# 84| r84_2(float) = Load[f] : &:r84_1, m59_3 +# 84| r84_3(_Complex double) = Convert : r84_2 +# 84| r84_4(glval<_Complex double>) = VariableAddress[cd] : +# 84| m84_5(_Complex double) = Store[cd] : &:r84_4, r84_3 +# 85| r85_1(glval) = VariableAddress[d] : +# 85| r85_2(double) = Load[d] : &:r85_1, m60_3 +# 85| r85_3(_Complex double) = Convert : r85_2 +# 85| r85_4(glval<_Complex double>) = VariableAddress[cd] : +# 85| m85_5(_Complex double) = Store[cd] : &:r85_4, r85_3 +# 86| r86_1(glval) = VariableAddress[ld] : +# 86| r86_2(long double) = Load[ld] : &:r86_1, m61_3 +# 86| r86_3(_Complex double) = Convert : r86_2 +# 86| r86_4(glval<_Complex double>) = VariableAddress[cd] : +# 86| m86_5(_Complex double) = Store[cd] : &:r86_4, r86_3 +# 87| r87_1(glval) = VariableAddress[f] : +# 87| r87_2(float) = Load[f] : &:r87_1, m59_3 +# 87| r87_3(_Complex long double) = Convert : r87_2 +# 87| r87_4(glval<_Complex long double>) = VariableAddress[cld] : +# 87| m87_5(_Complex long double) = Store[cld] : &:r87_4, r87_3 +# 88| r88_1(glval) = VariableAddress[d] : +# 88| r88_2(double) = Load[d] : &:r88_1, m60_3 +# 88| r88_3(_Complex long double) = Convert : r88_2 +# 88| r88_4(glval<_Complex long double>) = VariableAddress[cld] : +# 88| m88_5(_Complex long double) = Store[cld] : &:r88_4, r88_3 +# 89| r89_1(glval) = VariableAddress[ld] : +# 89| r89_2(long double) = Load[ld] : &:r89_1, m61_3 +# 89| r89_3(_Complex long double) = Convert : r89_2 +# 89| r89_4(glval<_Complex long double>) = VariableAddress[cld] : +# 89| m89_5(_Complex long double) = Store[cld] : &:r89_4, r89_3 +# 92| r92_1(glval<_Complex float>) = VariableAddress[cf] : +# 92| r92_2(_Complex float) = Load[cf] : &:r92_1, m83_5 +# 92| r92_3(float) = Convert : r92_2 +# 92| r92_4(glval) = VariableAddress[f] : +# 92| m92_5(float) = Store[f] : &:r92_4, r92_3 +# 93| r93_1(glval<_Complex double>) = VariableAddress[cd] : +# 93| r93_2(_Complex double) = Load[cd] : &:r93_1, m86_5 +# 93| r93_3(float) = Convert : r93_2 +# 93| r93_4(glval) = VariableAddress[f] : +# 93| m93_5(float) = Store[f] : &:r93_4, r93_3 +# 94| r94_1(glval<_Complex long double>) = VariableAddress[cld] : +# 94| r94_2(_Complex long double) = Load[cld] : &:r94_1, m89_5 +# 94| r94_3(float) = Convert : r94_2 +# 94| r94_4(glval) = VariableAddress[f] : +# 94| m94_5(float) = Store[f] : &:r94_4, r94_3 +# 95| r95_1(glval<_Complex float>) = VariableAddress[cf] : +# 95| r95_2(_Complex float) = Load[cf] : &:r95_1, m83_5 +# 95| r95_3(double) = Convert : r95_2 +# 95| r95_4(glval) = VariableAddress[d] : +# 95| m95_5(double) = Store[d] : &:r95_4, r95_3 +# 96| r96_1(glval<_Complex double>) = VariableAddress[cd] : +# 96| r96_2(_Complex double) = Load[cd] : &:r96_1, m86_5 +# 96| r96_3(double) = Convert : r96_2 +# 96| r96_4(glval) = VariableAddress[d] : +# 96| m96_5(double) = Store[d] : &:r96_4, r96_3 +# 97| r97_1(glval<_Complex long double>) = VariableAddress[cld] : +# 97| r97_2(_Complex long double) = Load[cld] : &:r97_1, m89_5 +# 97| r97_3(double) = Convert : r97_2 +# 97| r97_4(glval) = VariableAddress[d] : +# 97| m97_5(double) = Store[d] : &:r97_4, r97_3 +# 98| r98_1(glval<_Complex float>) = VariableAddress[cf] : +# 98| r98_2(_Complex float) = Load[cf] : &:r98_1, m83_5 +# 98| r98_3(long double) = Convert : r98_2 +# 98| r98_4(glval) = VariableAddress[ld] : +# 98| m98_5(long double) = Store[ld] : &:r98_4, r98_3 +# 99| r99_1(glval<_Complex double>) = VariableAddress[cd] : +# 99| r99_2(_Complex double) = Load[cd] : &:r99_1, m86_5 +# 99| r99_3(long double) = Convert : r99_2 +# 99| r99_4(glval) = VariableAddress[ld] : +# 99| m99_5(long double) = Store[ld] : &:r99_4, r99_3 +# 100| r100_1(glval<_Complex long double>) = VariableAddress[cld] : +# 100| r100_2(_Complex long double) = Load[cld] : &:r100_1, m89_5 +# 100| r100_3(long double) = Convert : r100_2 +# 100| r100_4(glval) = VariableAddress[ld] : +# 100| m100_5(long double) = Store[ld] : &:r100_4, r100_3 +# 103| r103_1(glval<_Imaginary float>) = VariableAddress[jf] : +# 103| r103_2(_Imaginary float) = Load[jf] : &:r103_1, m65_3 +# 103| r103_3(_Complex float) = Convert : r103_2 +# 103| r103_4(glval<_Complex float>) = VariableAddress[cf] : +# 103| m103_5(_Complex float) = Store[cf] : &:r103_4, r103_3 +# 104| r104_1(glval<_Imaginary double>) = VariableAddress[jd] : +# 104| r104_2(_Imaginary double) = Load[jd] : &:r104_1, m66_4 +# 104| r104_3(_Complex float) = Convert : r104_2 +# 104| r104_4(glval<_Complex float>) = VariableAddress[cf] : +# 104| m104_5(_Complex float) = Store[cf] : &:r104_4, r104_3 +# 105| r105_1(glval<_Imaginary long double>) = VariableAddress[jld] : +# 105| r105_2(_Imaginary long double) = Load[jld] : &:r105_1, m67_4 +# 105| r105_3(_Complex float) = Convert : r105_2 +# 105| r105_4(glval<_Complex float>) = VariableAddress[cf] : +# 105| m105_5(_Complex float) = Store[cf] : &:r105_4, r105_3 +# 106| r106_1(glval<_Imaginary float>) = VariableAddress[jf] : +# 106| r106_2(_Imaginary float) = Load[jf] : &:r106_1, m65_3 +# 106| r106_3(_Complex double) = Convert : r106_2 +# 106| r106_4(glval<_Complex double>) = VariableAddress[cd] : +# 106| m106_5(_Complex double) = Store[cd] : &:r106_4, r106_3 +# 107| r107_1(glval<_Imaginary double>) = VariableAddress[jd] : +# 107| r107_2(_Imaginary double) = Load[jd] : &:r107_1, m66_4 +# 107| r107_3(_Complex double) = Convert : r107_2 +# 107| r107_4(glval<_Complex double>) = VariableAddress[cd] : +# 107| m107_5(_Complex double) = Store[cd] : &:r107_4, r107_3 +# 108| r108_1(glval<_Imaginary long double>) = VariableAddress[jld] : +# 108| r108_2(_Imaginary long double) = Load[jld] : &:r108_1, m67_4 +# 108| r108_3(_Complex double) = Convert : r108_2 +# 108| r108_4(glval<_Complex double>) = VariableAddress[cd] : +# 108| m108_5(_Complex double) = Store[cd] : &:r108_4, r108_3 +# 109| r109_1(glval<_Imaginary float>) = VariableAddress[jf] : +# 109| r109_2(_Imaginary float) = Load[jf] : &:r109_1, m65_3 +# 109| r109_3(_Complex long double) = Convert : r109_2 +# 109| r109_4(glval<_Complex long double>) = VariableAddress[cld] : +# 109| m109_5(_Complex long double) = Store[cld] : &:r109_4, r109_3 +# 110| r110_1(glval<_Imaginary double>) = VariableAddress[jd] : +# 110| r110_2(_Imaginary double) = Load[jd] : &:r110_1, m66_4 +# 110| r110_3(_Complex long double) = Convert : r110_2 +# 110| r110_4(glval<_Complex long double>) = VariableAddress[cld] : +# 110| m110_5(_Complex long double) = Store[cld] : &:r110_4, r110_3 +# 111| r111_1(glval<_Imaginary long double>) = VariableAddress[jld] : +# 111| r111_2(_Imaginary long double) = Load[jld] : &:r111_1, m67_4 +# 111| r111_3(_Complex long double) = Convert : r111_2 +# 111| r111_4(glval<_Complex long double>) = VariableAddress[cld] : +# 111| m111_5(_Complex long double) = Store[cld] : &:r111_4, r111_3 +# 114| r114_1(glval<_Complex float>) = VariableAddress[cf] : +# 114| r114_2(_Complex float) = Load[cf] : &:r114_1, m105_5 +# 114| r114_3(_Imaginary float) = Convert : r114_2 +# 114| r114_4(glval<_Imaginary float>) = VariableAddress[jf] : +# 114| m114_5(_Imaginary float) = Store[jf] : &:r114_4, r114_3 +# 115| r115_1(glval<_Complex double>) = VariableAddress[cd] : +# 115| r115_2(_Complex double) = Load[cd] : &:r115_1, m108_5 +# 115| r115_3(_Imaginary float) = Convert : r115_2 +# 115| r115_4(glval<_Imaginary float>) = VariableAddress[jf] : +# 115| m115_5(_Imaginary float) = Store[jf] : &:r115_4, r115_3 +# 116| r116_1(glval<_Complex long double>) = VariableAddress[cld] : +# 116| r116_2(_Complex long double) = Load[cld] : &:r116_1, m111_5 +# 116| r116_3(_Imaginary float) = Convert : r116_2 +# 116| r116_4(glval<_Imaginary float>) = VariableAddress[jf] : +# 116| m116_5(_Imaginary float) = Store[jf] : &:r116_4, r116_3 +# 117| r117_1(glval<_Complex float>) = VariableAddress[cf] : +# 117| r117_2(_Complex float) = Load[cf] : &:r117_1, m105_5 +# 117| r117_3(_Imaginary double) = Convert : r117_2 +# 117| r117_4(glval<_Imaginary double>) = VariableAddress[jd] : +# 117| m117_5(_Imaginary double) = Store[jd] : &:r117_4, r117_3 +# 118| r118_1(glval<_Complex double>) = VariableAddress[cd] : +# 118| r118_2(_Complex double) = Load[cd] : &:r118_1, m108_5 +# 118| r118_3(_Imaginary double) = Convert : r118_2 +# 118| r118_4(glval<_Imaginary double>) = VariableAddress[jd] : +# 118| m118_5(_Imaginary double) = Store[jd] : &:r118_4, r118_3 +# 119| r119_1(glval<_Complex long double>) = VariableAddress[cld] : +# 119| r119_2(_Complex long double) = Load[cld] : &:r119_1, m111_5 +# 119| r119_3(_Imaginary double) = Convert : r119_2 +# 119| r119_4(glval<_Imaginary double>) = VariableAddress[jd] : +# 119| m119_5(_Imaginary double) = Store[jd] : &:r119_4, r119_3 +# 120| r120_1(glval<_Complex float>) = VariableAddress[cf] : +# 120| r120_2(_Complex float) = Load[cf] : &:r120_1, m105_5 +# 120| r120_3(_Imaginary long double) = Convert : r120_2 +# 120| r120_4(glval<_Imaginary long double>) = VariableAddress[jld] : +# 120| m120_5(_Imaginary long double) = Store[jld] : &:r120_4, r120_3 +# 121| r121_1(glval<_Complex double>) = VariableAddress[cd] : +# 121| r121_2(_Complex double) = Load[cd] : &:r121_1, m108_5 +# 121| r121_3(_Imaginary long double) = Convert : r121_2 +# 121| r121_4(glval<_Imaginary long double>) = VariableAddress[jld] : +# 121| m121_5(_Imaginary long double) = Store[jld] : &:r121_4, r121_3 +# 122| r122_1(glval<_Complex long double>) = VariableAddress[cld] : +# 122| r122_2(_Complex long double) = Load[cld] : &:r122_1, m111_5 +# 122| r122_3(_Imaginary long double) = Convert : r122_2 +# 122| r122_4(glval<_Imaginary long double>) = VariableAddress[jld] : +# 122| m122_5(_Imaginary long double) = Store[jld] : &:r122_4, r122_3 +# 125| r125_1(glval) = VariableAddress[f] : +# 125| r125_2(float) = Load[f] : &:r125_1, m94_5 +# 125| r125_3(_Imaginary float) = Convert : r125_2 +# 125| r125_4(glval<_Imaginary float>) = VariableAddress[jf] : +# 125| m125_5(_Imaginary float) = Store[jf] : &:r125_4, r125_3 +# 126| r126_1(glval) = VariableAddress[d] : +# 126| r126_2(double) = Load[d] : &:r126_1, m97_5 +# 126| r126_3(_Imaginary float) = Convert : r126_2 +# 126| r126_4(glval<_Imaginary float>) = VariableAddress[jf] : +# 126| m126_5(_Imaginary float) = Store[jf] : &:r126_4, r126_3 +# 127| r127_1(glval) = VariableAddress[ld] : +# 127| r127_2(long double) = Load[ld] : &:r127_1, m100_5 +# 127| r127_3(_Imaginary float) = Convert : r127_2 +# 127| r127_4(glval<_Imaginary float>) = VariableAddress[jf] : +# 127| m127_5(_Imaginary float) = Store[jf] : &:r127_4, r127_3 +# 128| r128_1(glval) = VariableAddress[f] : +# 128| r128_2(float) = Load[f] : &:r128_1, m94_5 +# 128| r128_3(_Imaginary double) = Convert : r128_2 +# 128| r128_4(glval<_Imaginary double>) = VariableAddress[jd] : +# 128| m128_5(_Imaginary double) = Store[jd] : &:r128_4, r128_3 +# 129| r129_1(glval) = VariableAddress[d] : +# 129| r129_2(double) = Load[d] : &:r129_1, m97_5 +# 129| r129_3(_Imaginary double) = Convert : r129_2 +# 129| r129_4(glval<_Imaginary double>) = VariableAddress[jd] : +# 129| m129_5(_Imaginary double) = Store[jd] : &:r129_4, r129_3 +# 130| r130_1(glval) = VariableAddress[ld] : +# 130| r130_2(long double) = Load[ld] : &:r130_1, m100_5 +# 130| r130_3(_Imaginary double) = Convert : r130_2 +# 130| r130_4(glval<_Imaginary double>) = VariableAddress[jd] : +# 130| m130_5(_Imaginary double) = Store[jd] : &:r130_4, r130_3 +# 131| r131_1(glval) = VariableAddress[f] : +# 131| r131_2(float) = Load[f] : &:r131_1, m94_5 +# 131| r131_3(_Imaginary long double) = Convert : r131_2 +# 131| r131_4(glval<_Imaginary long double>) = VariableAddress[jld] : +# 131| m131_5(_Imaginary long double) = Store[jld] : &:r131_4, r131_3 +# 132| r132_1(glval) = VariableAddress[d] : +# 132| r132_2(double) = Load[d] : &:r132_1, m97_5 +# 132| r132_3(_Imaginary long double) = Convert : r132_2 +# 132| r132_4(glval<_Imaginary long double>) = VariableAddress[jld] : +# 132| m132_5(_Imaginary long double) = Store[jld] : &:r132_4, r132_3 +# 133| r133_1(glval) = VariableAddress[ld] : +# 133| r133_2(long double) = Load[ld] : &:r133_1, m100_5 +# 133| r133_3(_Imaginary long double) = Convert : r133_2 +# 133| r133_4(glval<_Imaginary long double>) = VariableAddress[jld] : +# 133| m133_5(_Imaginary long double) = Store[jld] : &:r133_4, r133_3 +# 136| r136_1(glval<_Imaginary float>) = VariableAddress[jf] : +# 136| r136_2(_Imaginary float) = Load[jf] : &:r136_1, m127_5 +# 136| r136_3(float) = Convert : r136_2 +# 136| r136_4(glval) = VariableAddress[f] : +# 136| m136_5(float) = Store[f] : &:r136_4, r136_3 +# 137| r137_1(glval<_Imaginary double>) = VariableAddress[jd] : +# 137| r137_2(_Imaginary double) = Load[jd] : &:r137_1, m130_5 +# 137| r137_3(float) = Convert : r137_2 +# 137| r137_4(glval) = VariableAddress[f] : +# 137| m137_5(float) = Store[f] : &:r137_4, r137_3 +# 138| r138_1(glval<_Imaginary long double>) = VariableAddress[jld] : +# 138| r138_2(_Imaginary long double) = Load[jld] : &:r138_1, m133_5 +# 138| r138_3(float) = Convert : r138_2 +# 138| r138_4(glval) = VariableAddress[f] : +# 138| m138_5(float) = Store[f] : &:r138_4, r138_3 +# 139| r139_1(glval<_Imaginary float>) = VariableAddress[jf] : +# 139| r139_2(_Imaginary float) = Load[jf] : &:r139_1, m127_5 +# 139| r139_3(double) = Convert : r139_2 +# 139| r139_4(glval) = VariableAddress[d] : +# 139| m139_5(double) = Store[d] : &:r139_4, r139_3 +# 140| r140_1(glval<_Imaginary double>) = VariableAddress[jd] : +# 140| r140_2(_Imaginary double) = Load[jd] : &:r140_1, m130_5 +# 140| r140_3(double) = Convert : r140_2 +# 140| r140_4(glval) = VariableAddress[d] : +# 140| m140_5(double) = Store[d] : &:r140_4, r140_3 +# 141| r141_1(glval<_Imaginary long double>) = VariableAddress[jld] : +# 141| r141_2(_Imaginary long double) = Load[jld] : &:r141_1, m133_5 +# 141| r141_3(double) = Convert : r141_2 +# 141| r141_4(glval) = VariableAddress[d] : +# 141| m141_5(double) = Store[d] : &:r141_4, r141_3 +# 142| r142_1(glval<_Imaginary float>) = VariableAddress[jf] : +# 142| r142_2(_Imaginary float) = Load[jf] : &:r142_1, m127_5 +# 142| r142_3(long double) = Convert : r142_2 +# 142| r142_4(glval) = VariableAddress[ld] : +# 142| m142_5(long double) = Store[ld] : &:r142_4, r142_3 +# 143| r143_1(glval<_Imaginary double>) = VariableAddress[jd] : +# 143| r143_2(_Imaginary double) = Load[jd] : &:r143_1, m130_5 +# 143| r143_3(long double) = Convert : r143_2 +# 143| r143_4(glval) = VariableAddress[ld] : +# 143| m143_5(long double) = Store[ld] : &:r143_4, r143_3 +# 144| r144_1(glval<_Imaginary long double>) = VariableAddress[jld] : +# 144| r144_2(_Imaginary long double) = Load[jld] : &:r144_1, m133_5 +# 144| r144_3(long double) = Convert : r144_2 +# 144| r144_4(glval) = VariableAddress[ld] : +# 144| m144_5(long double) = Store[ld] : &:r144_4, r144_3 +# 145| v145_1(void) = NoOp : +# 58| v58_5(void) = ReturnVoid : +# 58| v58_6(void) = AliasedUse : m58_3 +# 58| v58_7(void) = ExitFunction : + +ir.c: +# 7| void MyCoordsTest(int) +# 7| Block 0 +# 7| v7_1(void) = EnterFunction : +# 7| m7_2(unknown) = AliasedDefinition : +# 7| m7_3(unknown) = InitializeNonLocal : +# 7| m7_4(unknown) = Chi : total:m7_2, partial:m7_3 +# 7| r7_5(glval) = VariableAddress[pos] : +# 7| m7_6(int) = InitializeParameter[pos] : &:r7_5 +# 8| r8_1(glval<(unnamed class/struct/union)>) = VariableAddress[coords] : +# 8| m8_2((unnamed class/struct/union)) = Uninitialized[coords] : &:r8_1 +# 8| r8_3(glval) = FieldAddress[x] : r8_1 +# 8| r8_4(int) = Constant[0] : +# 8| m8_5(int) = Store[?] : &:r8_3, r8_4 +# 8| m8_6((unnamed class/struct/union)) = Chi : total:m8_2, partial:m8_5 +# 8| r8_7(glval) = FieldAddress[y] : r8_1 +# 8| r8_8(int) = Constant[0] : +# 8| m8_9(int) = Store[?] : &:r8_7, r8_8 +# 8| m8_10((unnamed class/struct/union)) = Chi : total:m8_6, partial:m8_9 +# 9| r9_1(glval) = VariableAddress[pos] : +# 9| r9_2(int) = Load[pos] : &:r9_1, m7_6 +# 9| r9_3(int) = Constant[1] : +# 9| r9_4(int) = Add : r9_2, r9_3 +# 9| r9_5(glval<(unnamed class/struct/union)>) = VariableAddress[coords] : +# 9| r9_6(glval) = FieldAddress[y] : r9_5 +# 9| m9_7(int) = Store[?] : &:r9_6, r9_4 +# 9| m9_8((unnamed class/struct/union)) = Chi : total:m8_10, partial:m9_7 +# 9| r9_9(int) = CopyValue : r9_4 +# 9| r9_10(glval<(unnamed class/struct/union)>) = VariableAddress[coords] : +# 9| r9_11(glval) = FieldAddress[x] : r9_10 +# 9| m9_12(int) = Store[?] : &:r9_11, r9_9 +# 9| m9_13((unnamed class/struct/union)) = Chi : total:m9_8, partial:m9_12 +# 10| r10_1(glval) = FunctionAddress[getX] : +# 10| r10_2(glval<(unnamed class/struct/union)>) = VariableAddress[coords] : +# 10| r10_3(struct *) = CopyValue : r10_2 +# 10| r10_4(int) = Call[getX] : func:r10_1, 0:r10_3 +# 10| m10_5(unknown) = ^CallSideEffect : ~m7_4 +# 10| m10_6(unknown) = Chi : total:m7_4, partial:m10_5 +# 10| v10_7(void) = ^BufferReadSideEffect[0] : &:r10_3, ~m9_13 +# 10| m10_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r10_3 +# 10| m10_9((unnamed class/struct/union)) = Chi : total:m9_13, partial:m10_8 +# 10| r10_10(glval<(unnamed class/struct/union)>) = VariableAddress[coords] : +# 10| r10_11(glval) = FieldAddress[x] : r10_10 +# 10| m10_12(int) = Store[?] : &:r10_11, r10_4 +# 10| m10_13((unnamed class/struct/union)) = Chi : total:m10_9, partial:m10_12 +# 11| v11_1(void) = NoOp : +# 7| v7_7(void) = ReturnVoid : +# 7| v7_8(void) = AliasedUse : ~m10_6 +# 7| v7_9(void) = ExitFunction : + +# 13| void CStyleCast(void*) +# 13| Block 0 +# 13| v13_1(void) = EnterFunction : +# 13| m13_2(unknown) = AliasedDefinition : +# 13| m13_3(unknown) = InitializeNonLocal : +# 13| m13_4(unknown) = Chi : total:m13_2, partial:m13_3 +# 13| r13_5(glval) = VariableAddress[src] : +# 13| m13_6(void *) = InitializeParameter[src] : &:r13_5 +# 13| r13_7(void *) = Load[src] : &:r13_5, m13_6 +# 13| m13_8(unknown) = InitializeIndirection[src] : &:r13_7 +# 15| r15_1(glval) = VariableAddress[dst] : +# 15| r15_2(glval) = VariableAddress[src] : +# 15| r15_3(void *) = Load[src] : &:r15_2, m13_6 +# 15| r15_4(char *) = Convert : r15_3 +# 15| m15_5(char *) = Store[dst] : &:r15_1, r15_4 +# 16| v16_1(void) = NoOp : +# 13| v13_9(void) = ReturnIndirection[src] : &:r13_7, m13_8 +# 13| v13_10(void) = ReturnVoid : +# 13| v13_11(void) = AliasedUse : m13_3 +# 13| v13_12(void) = ExitFunction : + +ir.cpp: +# 1| void Constants() +# 1| Block 0 +# 1| v1_1(void) = EnterFunction : +# 1| m1_2(unknown) = AliasedDefinition : +# 1| m1_3(unknown) = InitializeNonLocal : +# 1| m1_4(unknown) = Chi : total:m1_2, partial:m1_3 +# 2| r2_1(glval) = VariableAddress[c_i] : +# 2| r2_2(char) = Constant[1] : +# 2| m2_3(char) = Store[c_i] : &:r2_1, r2_2 +# 3| r3_1(glval) = VariableAddress[c_c] : +# 3| r3_2(char) = Constant[65] : +# 3| m3_3(char) = Store[c_c] : &:r3_1, r3_2 +# 5| r5_1(glval) = VariableAddress[sc_i] : +# 5| r5_2(signed char) = Constant[-1] : +# 5| m5_3(signed char) = Store[sc_i] : &:r5_1, r5_2 +# 6| r6_1(glval) = VariableAddress[sc_c] : +# 6| r6_2(signed char) = Constant[65] : +# 6| m6_3(signed char) = Store[sc_c] : &:r6_1, r6_2 +# 8| r8_1(glval) = VariableAddress[uc_i] : +# 8| r8_2(unsigned char) = Constant[5] : +# 8| m8_3(unsigned char) = Store[uc_i] : &:r8_1, r8_2 +# 9| r9_1(glval) = VariableAddress[uc_c] : +# 9| r9_2(unsigned char) = Constant[65] : +# 9| m9_3(unsigned char) = Store[uc_c] : &:r9_1, r9_2 +# 11| r11_1(glval) = VariableAddress[s] : +# 11| r11_2(short) = Constant[5] : +# 11| m11_3(short) = Store[s] : &:r11_1, r11_2 +# 12| r12_1(glval) = VariableAddress[us] : +# 12| r12_2(unsigned short) = Constant[5] : +# 12| m12_3(unsigned short) = Store[us] : &:r12_1, r12_2 +# 14| r14_1(glval) = VariableAddress[i] : +# 14| r14_2(int) = Constant[5] : +# 14| m14_3(int) = Store[i] : &:r14_1, r14_2 +# 15| r15_1(glval) = VariableAddress[ui] : +# 15| r15_2(unsigned int) = Constant[5] : +# 15| m15_3(unsigned int) = Store[ui] : &:r15_1, r15_2 +# 17| r17_1(glval) = VariableAddress[l] : +# 17| r17_2(long) = Constant[5] : +# 17| m17_3(long) = Store[l] : &:r17_1, r17_2 +# 18| r18_1(glval) = VariableAddress[ul] : +# 18| r18_2(unsigned long) = Constant[5] : +# 18| m18_3(unsigned long) = Store[ul] : &:r18_1, r18_2 +# 20| r20_1(glval) = VariableAddress[ll_i] : +# 20| r20_2(long long) = Constant[5] : +# 20| m20_3(long long) = Store[ll_i] : &:r20_1, r20_2 +# 21| r21_1(glval) = VariableAddress[ll_ll] : +# 21| r21_2(long long) = Constant[5] : +# 21| m21_3(long long) = Store[ll_ll] : &:r21_1, r21_2 +# 22| r22_1(glval) = VariableAddress[ull_i] : +# 22| r22_2(unsigned long long) = Constant[5] : +# 22| m22_3(unsigned long long) = Store[ull_i] : &:r22_1, r22_2 +# 23| r23_1(glval) = VariableAddress[ull_ull] : +# 23| r23_2(unsigned long long) = Constant[5] : +# 23| m23_3(unsigned long long) = Store[ull_ull] : &:r23_1, r23_2 +# 25| r25_1(glval) = VariableAddress[b_t] : +# 25| r25_2(bool) = Constant[1] : +# 25| m25_3(bool) = Store[b_t] : &:r25_1, r25_2 +# 26| r26_1(glval) = VariableAddress[b_f] : +# 26| r26_2(bool) = Constant[0] : +# 26| m26_3(bool) = Store[b_f] : &:r26_1, r26_2 +# 28| r28_1(glval) = VariableAddress[wc_i] : +# 28| r28_2(wchar_t) = Constant[5] : +# 28| m28_3(wchar_t) = Store[wc_i] : &:r28_1, r28_2 +# 29| r29_1(glval) = VariableAddress[wc_c] : +# 29| r29_2(wchar_t) = Constant[65] : +# 29| m29_3(wchar_t) = Store[wc_c] : &:r29_1, r29_2 +# 31| r31_1(glval) = VariableAddress[c16] : +# 31| r31_2(char16_t) = Constant[65] : +# 31| m31_3(char16_t) = Store[c16] : &:r31_1, r31_2 +# 32| r32_1(glval) = VariableAddress[c32] : +# 32| r32_2(char32_t) = Constant[65] : +# 32| m32_3(char32_t) = Store[c32] : &:r32_1, r32_2 +# 34| r34_1(glval) = VariableAddress[f_i] : +# 34| r34_2(float) = Constant[1.0] : +# 34| m34_3(float) = Store[f_i] : &:r34_1, r34_2 +# 35| r35_1(glval) = VariableAddress[f_f] : +# 35| r35_2(float) = Constant[1.0] : +# 35| m35_3(float) = Store[f_f] : &:r35_1, r35_2 +# 36| r36_1(glval) = VariableAddress[f_d] : +# 36| r36_2(float) = Constant[1.0] : +# 36| m36_3(float) = Store[f_d] : &:r36_1, r36_2 +# 38| r38_1(glval) = VariableAddress[d_i] : +# 38| r38_2(double) = Constant[1.0] : +# 38| m38_3(double) = Store[d_i] : &:r38_1, r38_2 +# 39| r39_1(glval) = VariableAddress[d_f] : +# 39| r39_2(double) = Constant[1.0] : +# 39| m39_3(double) = Store[d_f] : &:r39_1, r39_2 +# 40| r40_1(glval) = VariableAddress[d_d] : +# 40| r40_2(double) = Constant[1.0] : +# 40| m40_3(double) = Store[d_d] : &:r40_1, r40_2 +# 41| v41_1(void) = NoOp : +# 1| v1_5(void) = ReturnVoid : +# 1| v1_6(void) = AliasedUse : m1_3 +# 1| v1_7(void) = ExitFunction : + +# 43| void Foo() +# 43| Block 0 +# 43| v43_1(void) = EnterFunction : +# 43| m43_2(unknown) = AliasedDefinition : +# 43| m43_3(unknown) = InitializeNonLocal : +# 43| m43_4(unknown) = Chi : total:m43_2, partial:m43_3 +# 44| r44_1(glval) = VariableAddress[x] : +# 44| r44_2(int) = Constant[17] : +# 44| m44_3(int) = Store[x] : &:r44_1, r44_2 +# 45| r45_1(glval) = VariableAddress[y] : +# 45| r45_2(short) = Constant[7] : +# 45| m45_3(short) = Store[y] : &:r45_1, r45_2 +# 46| r46_1(glval) = VariableAddress[x] : +# 46| r46_2(int) = Load[x] : &:r46_1, m44_3 +# 46| r46_3(glval) = VariableAddress[y] : +# 46| r46_4(short) = Load[y] : &:r46_3, m45_3 +# 46| r46_5(int) = Convert : r46_4 +# 46| r46_6(int) = Add : r46_2, r46_5 +# 46| r46_7(short) = Convert : r46_6 +# 46| r46_8(glval) = VariableAddress[y] : +# 46| m46_9(short) = Store[y] : &:r46_8, r46_7 +# 47| r47_1(glval) = VariableAddress[x] : +# 47| r47_2(int) = Load[x] : &:r47_1, m44_3 +# 47| r47_3(glval) = VariableAddress[y] : +# 47| r47_4(short) = Load[y] : &:r47_3, m46_9 +# 47| r47_5(int) = Convert : r47_4 +# 47| r47_6(int) = Mul : r47_2, r47_5 +# 47| r47_7(glval) = VariableAddress[x] : +# 47| m47_8(int) = Store[x] : &:r47_7, r47_6 +# 48| v48_1(void) = NoOp : +# 43| v43_5(void) = ReturnVoid : +# 43| v43_6(void) = AliasedUse : m43_3 +# 43| v43_7(void) = ExitFunction : + +# 50| void IntegerOps(int, int) +# 50| Block 0 +# 50| v50_1(void) = EnterFunction : +# 50| m50_2(unknown) = AliasedDefinition : +# 50| m50_3(unknown) = InitializeNonLocal : +# 50| m50_4(unknown) = Chi : total:m50_2, partial:m50_3 +# 50| r50_5(glval) = VariableAddress[x] : +# 50| m50_6(int) = InitializeParameter[x] : &:r50_5 +# 50| r50_7(glval) = VariableAddress[y] : +# 50| m50_8(int) = InitializeParameter[y] : &:r50_7 +# 51| r51_1(glval) = VariableAddress[z] : +# 51| m51_2(int) = Uninitialized[z] : &:r51_1 +# 53| r53_1(glval) = VariableAddress[x] : +# 53| r53_2(int) = Load[x] : &:r53_1, m50_6 +# 53| r53_3(glval) = VariableAddress[y] : +# 53| r53_4(int) = Load[y] : &:r53_3, m50_8 +# 53| r53_5(int) = Add : r53_2, r53_4 +# 53| r53_6(glval) = VariableAddress[z] : +# 53| m53_7(int) = Store[z] : &:r53_6, r53_5 +# 54| r54_1(glval) = VariableAddress[x] : +# 54| r54_2(int) = Load[x] : &:r54_1, m50_6 +# 54| r54_3(glval) = VariableAddress[y] : +# 54| r54_4(int) = Load[y] : &:r54_3, m50_8 +# 54| r54_5(int) = Sub : r54_2, r54_4 +# 54| r54_6(glval) = VariableAddress[z] : +# 54| m54_7(int) = Store[z] : &:r54_6, r54_5 +# 55| r55_1(glval) = VariableAddress[x] : +# 55| r55_2(int) = Load[x] : &:r55_1, m50_6 +# 55| r55_3(glval) = VariableAddress[y] : +# 55| r55_4(int) = Load[y] : &:r55_3, m50_8 +# 55| r55_5(int) = Mul : r55_2, r55_4 +# 55| r55_6(glval) = VariableAddress[z] : +# 55| m55_7(int) = Store[z] : &:r55_6, r55_5 +# 56| r56_1(glval) = VariableAddress[x] : +# 56| r56_2(int) = Load[x] : &:r56_1, m50_6 +# 56| r56_3(glval) = VariableAddress[y] : +# 56| r56_4(int) = Load[y] : &:r56_3, m50_8 +# 56| r56_5(int) = Div : r56_2, r56_4 +# 56| r56_6(glval) = VariableAddress[z] : +# 56| m56_7(int) = Store[z] : &:r56_6, r56_5 +# 57| r57_1(glval) = VariableAddress[x] : +# 57| r57_2(int) = Load[x] : &:r57_1, m50_6 +# 57| r57_3(glval) = VariableAddress[y] : +# 57| r57_4(int) = Load[y] : &:r57_3, m50_8 +# 57| r57_5(int) = Rem : r57_2, r57_4 +# 57| r57_6(glval) = VariableAddress[z] : +# 57| m57_7(int) = Store[z] : &:r57_6, r57_5 +# 59| r59_1(glval) = VariableAddress[x] : +# 59| r59_2(int) = Load[x] : &:r59_1, m50_6 +# 59| r59_3(glval) = VariableAddress[y] : +# 59| r59_4(int) = Load[y] : &:r59_3, m50_8 +# 59| r59_5(int) = BitAnd : r59_2, r59_4 +# 59| r59_6(glval) = VariableAddress[z] : +# 59| m59_7(int) = Store[z] : &:r59_6, r59_5 +# 60| r60_1(glval) = VariableAddress[x] : +# 60| r60_2(int) = Load[x] : &:r60_1, m50_6 +# 60| r60_3(glval) = VariableAddress[y] : +# 60| r60_4(int) = Load[y] : &:r60_3, m50_8 +# 60| r60_5(int) = BitOr : r60_2, r60_4 +# 60| r60_6(glval) = VariableAddress[z] : +# 60| m60_7(int) = Store[z] : &:r60_6, r60_5 +# 61| r61_1(glval) = VariableAddress[x] : +# 61| r61_2(int) = Load[x] : &:r61_1, m50_6 +# 61| r61_3(glval) = VariableAddress[y] : +# 61| r61_4(int) = Load[y] : &:r61_3, m50_8 +# 61| r61_5(int) = BitXor : r61_2, r61_4 +# 61| r61_6(glval) = VariableAddress[z] : +# 61| m61_7(int) = Store[z] : &:r61_6, r61_5 +# 63| r63_1(glval) = VariableAddress[x] : +# 63| r63_2(int) = Load[x] : &:r63_1, m50_6 +# 63| r63_3(glval) = VariableAddress[y] : +# 63| r63_4(int) = Load[y] : &:r63_3, m50_8 +# 63| r63_5(int) = ShiftLeft : r63_2, r63_4 +# 63| r63_6(glval) = VariableAddress[z] : +# 63| m63_7(int) = Store[z] : &:r63_6, r63_5 +# 64| r64_1(glval) = VariableAddress[x] : +# 64| r64_2(int) = Load[x] : &:r64_1, m50_6 +# 64| r64_3(glval) = VariableAddress[y] : +# 64| r64_4(int) = Load[y] : &:r64_3, m50_8 +# 64| r64_5(int) = ShiftRight : r64_2, r64_4 +# 64| r64_6(glval) = VariableAddress[z] : +# 64| m64_7(int) = Store[z] : &:r64_6, r64_5 +# 66| r66_1(glval) = VariableAddress[x] : +# 66| r66_2(int) = Load[x] : &:r66_1, m50_6 +# 66| r66_3(glval) = VariableAddress[z] : +# 66| m66_4(int) = Store[z] : &:r66_3, r66_2 +# 68| r68_1(glval) = VariableAddress[x] : +# 68| r68_2(int) = Load[x] : &:r68_1, m50_6 +# 68| r68_3(glval) = VariableAddress[z] : +# 68| r68_4(int) = Load[z] : &:r68_3, m66_4 +# 68| r68_5(int) = Add : r68_4, r68_2 +# 68| m68_6(int) = Store[z] : &:r68_3, r68_5 +# 69| r69_1(glval) = VariableAddress[x] : +# 69| r69_2(int) = Load[x] : &:r69_1, m50_6 +# 69| r69_3(glval) = VariableAddress[z] : +# 69| r69_4(int) = Load[z] : &:r69_3, m68_6 +# 69| r69_5(int) = Sub : r69_4, r69_2 +# 69| m69_6(int) = Store[z] : &:r69_3, r69_5 +# 70| r70_1(glval) = VariableAddress[x] : +# 70| r70_2(int) = Load[x] : &:r70_1, m50_6 +# 70| r70_3(glval) = VariableAddress[z] : +# 70| r70_4(int) = Load[z] : &:r70_3, m69_6 +# 70| r70_5(int) = Mul : r70_4, r70_2 +# 70| m70_6(int) = Store[z] : &:r70_3, r70_5 +# 71| r71_1(glval) = VariableAddress[x] : +# 71| r71_2(int) = Load[x] : &:r71_1, m50_6 +# 71| r71_3(glval) = VariableAddress[z] : +# 71| r71_4(int) = Load[z] : &:r71_3, m70_6 +# 71| r71_5(int) = Div : r71_4, r71_2 +# 71| m71_6(int) = Store[z] : &:r71_3, r71_5 +# 72| r72_1(glval) = VariableAddress[x] : +# 72| r72_2(int) = Load[x] : &:r72_1, m50_6 +# 72| r72_3(glval) = VariableAddress[z] : +# 72| r72_4(int) = Load[z] : &:r72_3, m71_6 +# 72| r72_5(int) = Rem : r72_4, r72_2 +# 72| m72_6(int) = Store[z] : &:r72_3, r72_5 +# 74| r74_1(glval) = VariableAddress[x] : +# 74| r74_2(int) = Load[x] : &:r74_1, m50_6 +# 74| r74_3(glval) = VariableAddress[z] : +# 74| r74_4(int) = Load[z] : &:r74_3, m72_6 +# 74| r74_5(int) = BitAnd : r74_4, r74_2 +# 74| m74_6(int) = Store[z] : &:r74_3, r74_5 +# 75| r75_1(glval) = VariableAddress[x] : +# 75| r75_2(int) = Load[x] : &:r75_1, m50_6 +# 75| r75_3(glval) = VariableAddress[z] : +# 75| r75_4(int) = Load[z] : &:r75_3, m74_6 +# 75| r75_5(int) = BitOr : r75_4, r75_2 +# 75| m75_6(int) = Store[z] : &:r75_3, r75_5 +# 76| r76_1(glval) = VariableAddress[x] : +# 76| r76_2(int) = Load[x] : &:r76_1, m50_6 +# 76| r76_3(glval) = VariableAddress[z] : +# 76| r76_4(int) = Load[z] : &:r76_3, m75_6 +# 76| r76_5(int) = BitXor : r76_4, r76_2 +# 76| m76_6(int) = Store[z] : &:r76_3, r76_5 +# 78| r78_1(glval) = VariableAddress[x] : +# 78| r78_2(int) = Load[x] : &:r78_1, m50_6 +# 78| r78_3(glval) = VariableAddress[z] : +# 78| r78_4(int) = Load[z] : &:r78_3, m76_6 +# 78| r78_5(int) = ShiftLeft : r78_4, r78_2 +# 78| m78_6(int) = Store[z] : &:r78_3, r78_5 +# 79| r79_1(glval) = VariableAddress[x] : +# 79| r79_2(int) = Load[x] : &:r79_1, m50_6 +# 79| r79_3(glval) = VariableAddress[z] : +# 79| r79_4(int) = Load[z] : &:r79_3, m78_6 +# 79| r79_5(int) = ShiftRight : r79_4, r79_2 +# 79| m79_6(int) = Store[z] : &:r79_3, r79_5 +# 81| r81_1(glval) = VariableAddress[x] : +# 81| r81_2(int) = Load[x] : &:r81_1, m50_6 +# 81| r81_3(int) = CopyValue : r81_2 +# 81| r81_4(glval) = VariableAddress[z] : +# 81| m81_5(int) = Store[z] : &:r81_4, r81_3 +# 82| r82_1(glval) = VariableAddress[x] : +# 82| r82_2(int) = Load[x] : &:r82_1, m50_6 +# 82| r82_3(int) = Negate : r82_2 +# 82| r82_4(glval) = VariableAddress[z] : +# 82| m82_5(int) = Store[z] : &:r82_4, r82_3 +# 83| r83_1(glval) = VariableAddress[x] : +# 83| r83_2(int) = Load[x] : &:r83_1, m50_6 +# 83| r83_3(int) = BitComplement : r83_2 +# 83| r83_4(glval) = VariableAddress[z] : +# 83| m83_5(int) = Store[z] : &:r83_4, r83_3 +# 84| r84_1(glval) = VariableAddress[x] : +# 84| r84_2(int) = Load[x] : &:r84_1, m50_6 +# 84| r84_3(int) = Constant[0] : +# 84| r84_4(bool) = CompareNE : r84_2, r84_3 +# 84| r84_5(bool) = LogicalNot : r84_4 +# 84| r84_6(int) = Convert : r84_5 +# 84| r84_7(glval) = VariableAddress[z] : +# 84| m84_8(int) = Store[z] : &:r84_7, r84_6 +# 85| v85_1(void) = NoOp : +# 50| v50_9(void) = ReturnVoid : +# 50| v50_10(void) = AliasedUse : m50_3 +# 50| v50_11(void) = ExitFunction : + +# 87| void IntegerCompare(int, int) +# 87| Block 0 +# 87| v87_1(void) = EnterFunction : +# 87| m87_2(unknown) = AliasedDefinition : +# 87| m87_3(unknown) = InitializeNonLocal : +# 87| m87_4(unknown) = Chi : total:m87_2, partial:m87_3 +# 87| r87_5(glval) = VariableAddress[x] : +# 87| m87_6(int) = InitializeParameter[x] : &:r87_5 +# 87| r87_7(glval) = VariableAddress[y] : +# 87| m87_8(int) = InitializeParameter[y] : &:r87_7 +# 88| r88_1(glval) = VariableAddress[b] : +# 88| m88_2(bool) = Uninitialized[b] : &:r88_1 +# 90| r90_1(glval) = VariableAddress[x] : +# 90| r90_2(int) = Load[x] : &:r90_1, m87_6 +# 90| r90_3(glval) = VariableAddress[y] : +# 90| r90_4(int) = Load[y] : &:r90_3, m87_8 +# 90| r90_5(bool) = CompareEQ : r90_2, r90_4 +# 90| r90_6(glval) = VariableAddress[b] : +# 90| m90_7(bool) = Store[b] : &:r90_6, r90_5 +# 91| r91_1(glval) = VariableAddress[x] : +# 91| r91_2(int) = Load[x] : &:r91_1, m87_6 +# 91| r91_3(glval) = VariableAddress[y] : +# 91| r91_4(int) = Load[y] : &:r91_3, m87_8 +# 91| r91_5(bool) = CompareNE : r91_2, r91_4 +# 91| r91_6(glval) = VariableAddress[b] : +# 91| m91_7(bool) = Store[b] : &:r91_6, r91_5 +# 92| r92_1(glval) = VariableAddress[x] : +# 92| r92_2(int) = Load[x] : &:r92_1, m87_6 +# 92| r92_3(glval) = VariableAddress[y] : +# 92| r92_4(int) = Load[y] : &:r92_3, m87_8 +# 92| r92_5(bool) = CompareLT : r92_2, r92_4 +# 92| r92_6(glval) = VariableAddress[b] : +# 92| m92_7(bool) = Store[b] : &:r92_6, r92_5 +# 93| r93_1(glval) = VariableAddress[x] : +# 93| r93_2(int) = Load[x] : &:r93_1, m87_6 +# 93| r93_3(glval) = VariableAddress[y] : +# 93| r93_4(int) = Load[y] : &:r93_3, m87_8 +# 93| r93_5(bool) = CompareGT : r93_2, r93_4 +# 93| r93_6(glval) = VariableAddress[b] : +# 93| m93_7(bool) = Store[b] : &:r93_6, r93_5 +# 94| r94_1(glval) = VariableAddress[x] : +# 94| r94_2(int) = Load[x] : &:r94_1, m87_6 +# 94| r94_3(glval) = VariableAddress[y] : +# 94| r94_4(int) = Load[y] : &:r94_3, m87_8 +# 94| r94_5(bool) = CompareLE : r94_2, r94_4 +# 94| r94_6(glval) = VariableAddress[b] : +# 94| m94_7(bool) = Store[b] : &:r94_6, r94_5 +# 95| r95_1(glval) = VariableAddress[x] : +# 95| r95_2(int) = Load[x] : &:r95_1, m87_6 +# 95| r95_3(glval) = VariableAddress[y] : +# 95| r95_4(int) = Load[y] : &:r95_3, m87_8 +# 95| r95_5(bool) = CompareGE : r95_2, r95_4 +# 95| r95_6(glval) = VariableAddress[b] : +# 95| m95_7(bool) = Store[b] : &:r95_6, r95_5 +# 96| v96_1(void) = NoOp : +# 87| v87_9(void) = ReturnVoid : +# 87| v87_10(void) = AliasedUse : m87_3 +# 87| v87_11(void) = ExitFunction : + +# 98| void IntegerCrement(int) +# 98| Block 0 +# 98| v98_1(void) = EnterFunction : +# 98| m98_2(unknown) = AliasedDefinition : +# 98| m98_3(unknown) = InitializeNonLocal : +# 98| m98_4(unknown) = Chi : total:m98_2, partial:m98_3 +# 98| r98_5(glval) = VariableAddress[x] : +# 98| m98_6(int) = InitializeParameter[x] : &:r98_5 +# 99| r99_1(glval) = VariableAddress[y] : +# 99| m99_2(int) = Uninitialized[y] : &:r99_1 +# 101| r101_1(glval) = VariableAddress[x] : +# 101| r101_2(int) = Load[x] : &:r101_1, m98_6 +# 101| r101_3(int) = Constant[1] : +# 101| r101_4(int) = Add : r101_2, r101_3 +# 101| m101_5(int) = Store[x] : &:r101_1, r101_4 +# 101| r101_6(glval) = VariableAddress[y] : +# 101| m101_7(int) = Store[y] : &:r101_6, r101_4 +# 102| r102_1(glval) = VariableAddress[x] : +# 102| r102_2(int) = Load[x] : &:r102_1, m101_5 +# 102| r102_3(int) = Constant[1] : +# 102| r102_4(int) = Sub : r102_2, r102_3 +# 102| m102_5(int) = Store[x] : &:r102_1, r102_4 +# 102| r102_6(glval) = VariableAddress[y] : +# 102| m102_7(int) = Store[y] : &:r102_6, r102_4 +# 103| r103_1(glval) = VariableAddress[x] : +# 103| r103_2(int) = Load[x] : &:r103_1, m102_5 +# 103| r103_3(int) = Constant[1] : +# 103| r103_4(int) = Add : r103_2, r103_3 +# 103| m103_5(int) = Store[x] : &:r103_1, r103_4 +# 103| r103_6(int) = CopyValue : r103_2 +# 103| r103_7(glval) = VariableAddress[y] : +# 103| m103_8(int) = Store[y] : &:r103_7, r103_6 +# 104| r104_1(glval) = VariableAddress[x] : +# 104| r104_2(int) = Load[x] : &:r104_1, m103_5 +# 104| r104_3(int) = Constant[1] : +# 104| r104_4(int) = Sub : r104_2, r104_3 +# 104| m104_5(int) = Store[x] : &:r104_1, r104_4 +# 104| r104_6(int) = CopyValue : r104_2 +# 104| r104_7(glval) = VariableAddress[y] : +# 104| m104_8(int) = Store[y] : &:r104_7, r104_6 +# 105| v105_1(void) = NoOp : +# 98| v98_7(void) = ReturnVoid : +# 98| v98_8(void) = AliasedUse : m98_3 +# 98| v98_9(void) = ExitFunction : + +# 107| void IntegerCrement_LValue(int) +# 107| Block 0 +# 107| v107_1(void) = EnterFunction : +# 107| m107_2(unknown) = AliasedDefinition : +# 107| m107_3(unknown) = InitializeNonLocal : +# 107| m107_4(unknown) = Chi : total:m107_2, partial:m107_3 +# 107| r107_5(glval) = VariableAddress[x] : +# 107| m107_6(int) = InitializeParameter[x] : &:r107_5 +# 108| r108_1(glval) = VariableAddress[p] : +# 108| m108_2(int *) = Uninitialized[p] : &:r108_1 +# 110| r110_1(glval) = VariableAddress[x] : +# 110| r110_2(int) = Load[x] : &:r110_1, m107_6 +# 110| r110_3(int) = Constant[1] : +# 110| r110_4(int) = Add : r110_2, r110_3 +# 110| m110_5(int) = Store[x] : &:r110_1, r110_4 +# 110| r110_6(glval) = CopyValue : r110_1 +# 110| r110_7(int *) = CopyValue : r110_6 +# 110| r110_8(glval) = VariableAddress[p] : +# 110| m110_9(int *) = Store[p] : &:r110_8, r110_7 +# 111| r111_1(glval) = VariableAddress[x] : +# 111| r111_2(int) = Load[x] : &:r111_1, m110_5 +# 111| r111_3(int) = Constant[1] : +# 111| r111_4(int) = Sub : r111_2, r111_3 +# 111| m111_5(int) = Store[x] : &:r111_1, r111_4 +# 111| r111_6(glval) = CopyValue : r111_1 +# 111| r111_7(int *) = CopyValue : r111_6 +# 111| r111_8(glval) = VariableAddress[p] : +# 111| m111_9(int *) = Store[p] : &:r111_8, r111_7 +# 112| v112_1(void) = NoOp : +# 107| v107_7(void) = ReturnVoid : +# 107| v107_8(void) = AliasedUse : m107_3 +# 107| v107_9(void) = ExitFunction : + +# 114| void FloatOps(double, double) +# 114| Block 0 +# 114| v114_1(void) = EnterFunction : +# 114| m114_2(unknown) = AliasedDefinition : +# 114| m114_3(unknown) = InitializeNonLocal : +# 114| m114_4(unknown) = Chi : total:m114_2, partial:m114_3 +# 114| r114_5(glval) = VariableAddress[x] : +# 114| m114_6(double) = InitializeParameter[x] : &:r114_5 +# 114| r114_7(glval) = VariableAddress[y] : +# 114| m114_8(double) = InitializeParameter[y] : &:r114_7 +# 115| r115_1(glval) = VariableAddress[z] : +# 115| m115_2(double) = Uninitialized[z] : &:r115_1 +# 117| r117_1(glval) = VariableAddress[x] : +# 117| r117_2(double) = Load[x] : &:r117_1, m114_6 +# 117| r117_3(glval) = VariableAddress[y] : +# 117| r117_4(double) = Load[y] : &:r117_3, m114_8 +# 117| r117_5(double) = Add : r117_2, r117_4 +# 117| r117_6(glval) = VariableAddress[z] : +# 117| m117_7(double) = Store[z] : &:r117_6, r117_5 +# 118| r118_1(glval) = VariableAddress[x] : +# 118| r118_2(double) = Load[x] : &:r118_1, m114_6 +# 118| r118_3(glval) = VariableAddress[y] : +# 118| r118_4(double) = Load[y] : &:r118_3, m114_8 +# 118| r118_5(double) = Sub : r118_2, r118_4 +# 118| r118_6(glval) = VariableAddress[z] : +# 118| m118_7(double) = Store[z] : &:r118_6, r118_5 +# 119| r119_1(glval) = VariableAddress[x] : +# 119| r119_2(double) = Load[x] : &:r119_1, m114_6 +# 119| r119_3(glval) = VariableAddress[y] : +# 119| r119_4(double) = Load[y] : &:r119_3, m114_8 +# 119| r119_5(double) = Mul : r119_2, r119_4 +# 119| r119_6(glval) = VariableAddress[z] : +# 119| m119_7(double) = Store[z] : &:r119_6, r119_5 +# 120| r120_1(glval) = VariableAddress[x] : +# 120| r120_2(double) = Load[x] : &:r120_1, m114_6 +# 120| r120_3(glval) = VariableAddress[y] : +# 120| r120_4(double) = Load[y] : &:r120_3, m114_8 +# 120| r120_5(double) = Div : r120_2, r120_4 +# 120| r120_6(glval) = VariableAddress[z] : +# 120| m120_7(double) = Store[z] : &:r120_6, r120_5 +# 122| r122_1(glval) = VariableAddress[x] : +# 122| r122_2(double) = Load[x] : &:r122_1, m114_6 +# 122| r122_3(glval) = VariableAddress[z] : +# 122| m122_4(double) = Store[z] : &:r122_3, r122_2 +# 124| r124_1(glval) = VariableAddress[x] : +# 124| r124_2(double) = Load[x] : &:r124_1, m114_6 +# 124| r124_3(glval) = VariableAddress[z] : +# 124| r124_4(double) = Load[z] : &:r124_3, m122_4 +# 124| r124_5(double) = Add : r124_4, r124_2 +# 124| m124_6(double) = Store[z] : &:r124_3, r124_5 +# 125| r125_1(glval) = VariableAddress[x] : +# 125| r125_2(double) = Load[x] : &:r125_1, m114_6 +# 125| r125_3(glval) = VariableAddress[z] : +# 125| r125_4(double) = Load[z] : &:r125_3, m124_6 +# 125| r125_5(double) = Sub : r125_4, r125_2 +# 125| m125_6(double) = Store[z] : &:r125_3, r125_5 +# 126| r126_1(glval) = VariableAddress[x] : +# 126| r126_2(double) = Load[x] : &:r126_1, m114_6 +# 126| r126_3(glval) = VariableAddress[z] : +# 126| r126_4(double) = Load[z] : &:r126_3, m125_6 +# 126| r126_5(double) = Mul : r126_4, r126_2 +# 126| m126_6(double) = Store[z] : &:r126_3, r126_5 +# 127| r127_1(glval) = VariableAddress[x] : +# 127| r127_2(double) = Load[x] : &:r127_1, m114_6 +# 127| r127_3(glval) = VariableAddress[z] : +# 127| r127_4(double) = Load[z] : &:r127_3, m126_6 +# 127| r127_5(double) = Div : r127_4, r127_2 +# 127| m127_6(double) = Store[z] : &:r127_3, r127_5 +# 129| r129_1(glval) = VariableAddress[x] : +# 129| r129_2(double) = Load[x] : &:r129_1, m114_6 +# 129| r129_3(double) = CopyValue : r129_2 +# 129| r129_4(glval) = VariableAddress[z] : +# 129| m129_5(double) = Store[z] : &:r129_4, r129_3 +# 130| r130_1(glval) = VariableAddress[x] : +# 130| r130_2(double) = Load[x] : &:r130_1, m114_6 +# 130| r130_3(double) = Negate : r130_2 +# 130| r130_4(glval) = VariableAddress[z] : +# 130| m130_5(double) = Store[z] : &:r130_4, r130_3 +# 131| v131_1(void) = NoOp : +# 114| v114_9(void) = ReturnVoid : +# 114| v114_10(void) = AliasedUse : m114_3 +# 114| v114_11(void) = ExitFunction : + +# 133| void FloatCompare(double, double) +# 133| Block 0 +# 133| v133_1(void) = EnterFunction : +# 133| m133_2(unknown) = AliasedDefinition : +# 133| m133_3(unknown) = InitializeNonLocal : +# 133| m133_4(unknown) = Chi : total:m133_2, partial:m133_3 +# 133| r133_5(glval) = VariableAddress[x] : +# 133| m133_6(double) = InitializeParameter[x] : &:r133_5 +# 133| r133_7(glval) = VariableAddress[y] : +# 133| m133_8(double) = InitializeParameter[y] : &:r133_7 +# 134| r134_1(glval) = VariableAddress[b] : +# 134| m134_2(bool) = Uninitialized[b] : &:r134_1 +# 136| r136_1(glval) = VariableAddress[x] : +# 136| r136_2(double) = Load[x] : &:r136_1, m133_6 +# 136| r136_3(glval) = VariableAddress[y] : +# 136| r136_4(double) = Load[y] : &:r136_3, m133_8 +# 136| r136_5(bool) = CompareEQ : r136_2, r136_4 +# 136| r136_6(glval) = VariableAddress[b] : +# 136| m136_7(bool) = Store[b] : &:r136_6, r136_5 +# 137| r137_1(glval) = VariableAddress[x] : +# 137| r137_2(double) = Load[x] : &:r137_1, m133_6 +# 137| r137_3(glval) = VariableAddress[y] : +# 137| r137_4(double) = Load[y] : &:r137_3, m133_8 +# 137| r137_5(bool) = CompareNE : r137_2, r137_4 +# 137| r137_6(glval) = VariableAddress[b] : +# 137| m137_7(bool) = Store[b] : &:r137_6, r137_5 +# 138| r138_1(glval) = VariableAddress[x] : +# 138| r138_2(double) = Load[x] : &:r138_1, m133_6 +# 138| r138_3(glval) = VariableAddress[y] : +# 138| r138_4(double) = Load[y] : &:r138_3, m133_8 +# 138| r138_5(bool) = CompareLT : r138_2, r138_4 +# 138| r138_6(glval) = VariableAddress[b] : +# 138| m138_7(bool) = Store[b] : &:r138_6, r138_5 +# 139| r139_1(glval) = VariableAddress[x] : +# 139| r139_2(double) = Load[x] : &:r139_1, m133_6 +# 139| r139_3(glval) = VariableAddress[y] : +# 139| r139_4(double) = Load[y] : &:r139_3, m133_8 +# 139| r139_5(bool) = CompareGT : r139_2, r139_4 +# 139| r139_6(glval) = VariableAddress[b] : +# 139| m139_7(bool) = Store[b] : &:r139_6, r139_5 +# 140| r140_1(glval) = VariableAddress[x] : +# 140| r140_2(double) = Load[x] : &:r140_1, m133_6 +# 140| r140_3(glval) = VariableAddress[y] : +# 140| r140_4(double) = Load[y] : &:r140_3, m133_8 +# 140| r140_5(bool) = CompareLE : r140_2, r140_4 +# 140| r140_6(glval) = VariableAddress[b] : +# 140| m140_7(bool) = Store[b] : &:r140_6, r140_5 +# 141| r141_1(glval) = VariableAddress[x] : +# 141| r141_2(double) = Load[x] : &:r141_1, m133_6 +# 141| r141_3(glval) = VariableAddress[y] : +# 141| r141_4(double) = Load[y] : &:r141_3, m133_8 +# 141| r141_5(bool) = CompareGE : r141_2, r141_4 +# 141| r141_6(glval) = VariableAddress[b] : +# 141| m141_7(bool) = Store[b] : &:r141_6, r141_5 +# 142| v142_1(void) = NoOp : +# 133| v133_9(void) = ReturnVoid : +# 133| v133_10(void) = AliasedUse : m133_3 +# 133| v133_11(void) = ExitFunction : + +# 144| void FloatCrement(float) +# 144| Block 0 +# 144| v144_1(void) = EnterFunction : +# 144| m144_2(unknown) = AliasedDefinition : +# 144| m144_3(unknown) = InitializeNonLocal : +# 144| m144_4(unknown) = Chi : total:m144_2, partial:m144_3 +# 144| r144_5(glval) = VariableAddress[x] : +# 144| m144_6(float) = InitializeParameter[x] : &:r144_5 +# 145| r145_1(glval) = VariableAddress[y] : +# 145| m145_2(float) = Uninitialized[y] : &:r145_1 +# 147| r147_1(glval) = VariableAddress[x] : +# 147| r147_2(float) = Load[x] : &:r147_1, m144_6 +# 147| r147_3(float) = Constant[1.0] : +# 147| r147_4(float) = Add : r147_2, r147_3 +# 147| m147_5(float) = Store[x] : &:r147_1, r147_4 +# 147| r147_6(glval) = VariableAddress[y] : +# 147| m147_7(float) = Store[y] : &:r147_6, r147_4 +# 148| r148_1(glval) = VariableAddress[x] : +# 148| r148_2(float) = Load[x] : &:r148_1, m147_5 +# 148| r148_3(float) = Constant[1.0] : +# 148| r148_4(float) = Sub : r148_2, r148_3 +# 148| m148_5(float) = Store[x] : &:r148_1, r148_4 +# 148| r148_6(glval) = VariableAddress[y] : +# 148| m148_7(float) = Store[y] : &:r148_6, r148_4 +# 149| r149_1(glval) = VariableAddress[x] : +# 149| r149_2(float) = Load[x] : &:r149_1, m148_5 +# 149| r149_3(float) = Constant[1.0] : +# 149| r149_4(float) = Add : r149_2, r149_3 +# 149| m149_5(float) = Store[x] : &:r149_1, r149_4 +# 149| r149_6(float) = CopyValue : r149_2 +# 149| r149_7(glval) = VariableAddress[y] : +# 149| m149_8(float) = Store[y] : &:r149_7, r149_6 +# 150| r150_1(glval) = VariableAddress[x] : +# 150| r150_2(float) = Load[x] : &:r150_1, m149_5 +# 150| r150_3(float) = Constant[1.0] : +# 150| r150_4(float) = Sub : r150_2, r150_3 +# 150| m150_5(float) = Store[x] : &:r150_1, r150_4 +# 150| r150_6(float) = CopyValue : r150_2 +# 150| r150_7(glval) = VariableAddress[y] : +# 150| m150_8(float) = Store[y] : &:r150_7, r150_6 +# 151| v151_1(void) = NoOp : +# 144| v144_7(void) = ReturnVoid : +# 144| v144_8(void) = AliasedUse : m144_3 +# 144| v144_9(void) = ExitFunction : + +# 153| void PointerOps(int*, int) +# 153| Block 0 +# 153| v153_1(void) = EnterFunction : +# 153| m153_2(unknown) = AliasedDefinition : +# 153| m153_3(unknown) = InitializeNonLocal : +# 153| m153_4(unknown) = Chi : total:m153_2, partial:m153_3 +# 153| r153_5(glval) = VariableAddress[p] : +# 153| m153_6(int *) = InitializeParameter[p] : &:r153_5 +# 153| r153_7(int *) = Load[p] : &:r153_5, m153_6 +# 153| m153_8(unknown) = InitializeIndirection[p] : &:r153_7 +# 153| r153_9(glval) = VariableAddress[i] : +# 153| m153_10(int) = InitializeParameter[i] : &:r153_9 +# 154| r154_1(glval) = VariableAddress[q] : +# 154| m154_2(int *) = Uninitialized[q] : &:r154_1 +# 155| r155_1(glval) = VariableAddress[b] : +# 155| m155_2(bool) = Uninitialized[b] : &:r155_1 +# 157| r157_1(glval) = VariableAddress[p] : +# 157| r157_2(int *) = Load[p] : &:r157_1, m153_6 +# 157| r157_3(glval) = VariableAddress[i] : +# 157| r157_4(int) = Load[i] : &:r157_3, m153_10 +# 157| r157_5(int *) = PointerAdd[4] : r157_2, r157_4 +# 157| r157_6(glval) = VariableAddress[q] : +# 157| m157_7(int *) = Store[q] : &:r157_6, r157_5 +# 158| r158_1(glval) = VariableAddress[i] : +# 158| r158_2(int) = Load[i] : &:r158_1, m153_10 +# 158| r158_3(glval) = VariableAddress[p] : +# 158| r158_4(int *) = Load[p] : &:r158_3, m153_6 +# 158| r158_5(int *) = PointerAdd[4] : r158_4, r158_2 +# 158| r158_6(glval) = VariableAddress[q] : +# 158| m158_7(int *) = Store[q] : &:r158_6, r158_5 +# 159| r159_1(glval) = VariableAddress[p] : +# 159| r159_2(int *) = Load[p] : &:r159_1, m153_6 +# 159| r159_3(glval) = VariableAddress[i] : +# 159| r159_4(int) = Load[i] : &:r159_3, m153_10 +# 159| r159_5(int *) = PointerSub[4] : r159_2, r159_4 +# 159| r159_6(glval) = VariableAddress[q] : +# 159| m159_7(int *) = Store[q] : &:r159_6, r159_5 +# 160| r160_1(glval) = VariableAddress[p] : +# 160| r160_2(int *) = Load[p] : &:r160_1, m153_6 +# 160| r160_3(glval) = VariableAddress[q] : +# 160| r160_4(int *) = Load[q] : &:r160_3, m159_7 +# 160| r160_5(long) = PointerDiff[4] : r160_2, r160_4 +# 160| r160_6(int) = Convert : r160_5 +# 160| r160_7(glval) = VariableAddress[i] : +# 160| m160_8(int) = Store[i] : &:r160_7, r160_6 +# 162| r162_1(glval) = VariableAddress[p] : +# 162| r162_2(int *) = Load[p] : &:r162_1, m153_6 +# 162| r162_3(glval) = VariableAddress[q] : +# 162| m162_4(int *) = Store[q] : &:r162_3, r162_2 +# 164| r164_1(glval) = VariableAddress[i] : +# 164| r164_2(int) = Load[i] : &:r164_1, m160_8 +# 164| r164_3(glval) = VariableAddress[q] : +# 164| r164_4(int *) = Load[q] : &:r164_3, m162_4 +# 164| r164_5(int *) = PointerAdd[4] : r164_4, r164_2 +# 164| m164_6(int *) = Store[q] : &:r164_3, r164_5 +# 165| r165_1(glval) = VariableAddress[i] : +# 165| r165_2(int) = Load[i] : &:r165_1, m160_8 +# 165| r165_3(glval) = VariableAddress[q] : +# 165| r165_4(int *) = Load[q] : &:r165_3, m164_6 +# 165| r165_5(int *) = PointerSub[4] : r165_4, r165_2 +# 165| m165_6(int *) = Store[q] : &:r165_3, r165_5 +# 167| r167_1(glval) = VariableAddress[p] : +# 167| r167_2(int *) = Load[p] : &:r167_1, m153_6 +# 167| r167_3(int *) = Constant[0] : +# 167| r167_4(bool) = CompareNE : r167_2, r167_3 +# 167| r167_5(glval) = VariableAddress[b] : +# 167| m167_6(bool) = Store[b] : &:r167_5, r167_4 +# 168| r168_1(glval) = VariableAddress[p] : +# 168| r168_2(int *) = Load[p] : &:r168_1, m153_6 +# 168| r168_3(int *) = Constant[0] : +# 168| r168_4(bool) = CompareNE : r168_2, r168_3 +# 168| r168_5(bool) = LogicalNot : r168_4 +# 168| r168_6(glval) = VariableAddress[b] : +# 168| m168_7(bool) = Store[b] : &:r168_6, r168_5 +# 169| v169_1(void) = NoOp : +# 153| v153_11(void) = ReturnIndirection[p] : &:r153_7, m153_8 +# 153| v153_12(void) = ReturnVoid : +# 153| v153_13(void) = AliasedUse : m153_3 +# 153| v153_14(void) = ExitFunction : + +# 171| void ArrayAccess(int*, int) +# 171| Block 0 +# 171| v171_1(void) = EnterFunction : +# 171| m171_2(unknown) = AliasedDefinition : +# 171| m171_3(unknown) = InitializeNonLocal : +# 171| m171_4(unknown) = Chi : total:m171_2, partial:m171_3 +# 171| r171_5(glval) = VariableAddress[p] : +# 171| m171_6(int *) = InitializeParameter[p] : &:r171_5 +# 171| r171_7(int *) = Load[p] : &:r171_5, m171_6 +# 171| m171_8(unknown) = InitializeIndirection[p] : &:r171_7 +# 171| r171_9(glval) = VariableAddress[i] : +# 171| m171_10(int) = InitializeParameter[i] : &:r171_9 +# 172| r172_1(glval) = VariableAddress[x] : +# 172| m172_2(int) = Uninitialized[x] : &:r172_1 +# 174| r174_1(glval) = VariableAddress[p] : +# 174| r174_2(int *) = Load[p] : &:r174_1, m171_6 +# 174| r174_3(glval) = VariableAddress[i] : +# 174| r174_4(int) = Load[i] : &:r174_3, m171_10 +# 174| r174_5(glval) = PointerAdd[4] : r174_2, r174_4 +# 174| r174_6(int) = Load[?] : &:r174_5, ~m171_8 +# 174| r174_7(glval) = VariableAddress[x] : +# 174| m174_8(int) = Store[x] : &:r174_7, r174_6 +# 175| r175_1(glval) = VariableAddress[p] : +# 175| r175_2(int *) = Load[p] : &:r175_1, m171_6 +# 175| r175_3(glval) = VariableAddress[i] : +# 175| r175_4(int) = Load[i] : &:r175_3, m171_10 +# 175| r175_5(glval) = PointerAdd[4] : r175_2, r175_4 +# 175| r175_6(int) = Load[?] : &:r175_5, ~m171_8 +# 175| r175_7(glval) = VariableAddress[x] : +# 175| m175_8(int) = Store[x] : &:r175_7, r175_6 +# 177| r177_1(glval) = VariableAddress[x] : +# 177| r177_2(int) = Load[x] : &:r177_1, m175_8 +# 177| r177_3(glval) = VariableAddress[p] : +# 177| r177_4(int *) = Load[p] : &:r177_3, m171_6 +# 177| r177_5(glval) = VariableAddress[i] : +# 177| r177_6(int) = Load[i] : &:r177_5, m171_10 +# 177| r177_7(glval) = PointerAdd[4] : r177_4, r177_6 +# 177| m177_8(int) = Store[?] : &:r177_7, r177_2 +# 177| m177_9(unknown) = Chi : total:m171_8, partial:m177_8 +# 178| r178_1(glval) = VariableAddress[x] : +# 178| r178_2(int) = Load[x] : &:r178_1, m175_8 +# 178| r178_3(glval) = VariableAddress[p] : +# 178| r178_4(int *) = Load[p] : &:r178_3, m171_6 +# 178| r178_5(glval) = VariableAddress[i] : +# 178| r178_6(int) = Load[i] : &:r178_5, m171_10 +# 178| r178_7(glval) = PointerAdd[4] : r178_4, r178_6 +# 178| m178_8(int) = Store[?] : &:r178_7, r178_2 +# 178| m178_9(unknown) = Chi : total:m177_9, partial:m178_8 +# 180| r180_1(glval) = VariableAddress[a] : +# 180| m180_2(int[10]) = Uninitialized[a] : &:r180_1 +# 181| r181_1(glval) = VariableAddress[a] : +# 181| r181_2(int *) = Convert : r181_1 +# 181| r181_3(glval) = VariableAddress[i] : +# 181| r181_4(int) = Load[i] : &:r181_3, m171_10 +# 181| r181_5(glval) = PointerAdd[4] : r181_2, r181_4 +# 181| r181_6(int) = Load[?] : &:r181_5, ~m180_2 +# 181| r181_7(glval) = VariableAddress[x] : +# 181| m181_8(int) = Store[x] : &:r181_7, r181_6 +# 182| r182_1(glval) = VariableAddress[a] : +# 182| r182_2(int *) = Convert : r182_1 +# 182| r182_3(glval) = VariableAddress[i] : +# 182| r182_4(int) = Load[i] : &:r182_3, m171_10 +# 182| r182_5(glval) = PointerAdd[4] : r182_2, r182_4 +# 182| r182_6(int) = Load[?] : &:r182_5, ~m180_2 +# 182| r182_7(glval) = VariableAddress[x] : +# 182| m182_8(int) = Store[x] : &:r182_7, r182_6 +# 183| r183_1(glval) = VariableAddress[x] : +# 183| r183_2(int) = Load[x] : &:r183_1, m182_8 +# 183| r183_3(glval) = VariableAddress[a] : +# 183| r183_4(int *) = Convert : r183_3 +# 183| r183_5(glval) = VariableAddress[i] : +# 183| r183_6(int) = Load[i] : &:r183_5, m171_10 +# 183| r183_7(glval) = PointerAdd[4] : r183_4, r183_6 +# 183| m183_8(int) = Store[?] : &:r183_7, r183_2 +# 183| m183_9(int[10]) = Chi : total:m180_2, partial:m183_8 +# 184| r184_1(glval) = VariableAddress[x] : +# 184| r184_2(int) = Load[x] : &:r184_1, m182_8 +# 184| r184_3(glval) = VariableAddress[a] : +# 184| r184_4(int *) = Convert : r184_3 +# 184| r184_5(glval) = VariableAddress[i] : +# 184| r184_6(int) = Load[i] : &:r184_5, m171_10 +# 184| r184_7(glval) = PointerAdd[4] : r184_4, r184_6 +# 184| m184_8(int) = Store[?] : &:r184_7, r184_2 +# 184| m184_9(int[10]) = Chi : total:m183_9, partial:m184_8 +# 185| v185_1(void) = NoOp : +# 171| v171_11(void) = ReturnIndirection[p] : &:r171_7, m178_9 +# 171| v171_12(void) = ReturnVoid : +# 171| v171_13(void) = AliasedUse : m171_3 +# 171| v171_14(void) = ExitFunction : + +# 187| void StringLiteral(int) +# 187| Block 0 +# 187| v187_1(void) = EnterFunction : +# 187| m187_2(unknown) = AliasedDefinition : +# 187| m187_3(unknown) = InitializeNonLocal : +# 187| m187_4(unknown) = Chi : total:m187_2, partial:m187_3 +# 187| r187_5(glval) = VariableAddress[i] : +# 187| m187_6(int) = InitializeParameter[i] : &:r187_5 +# 188| r188_1(glval) = VariableAddress[c] : +# 188| r188_2(glval) = StringConstant["Foo"] : +# 188| r188_3(char *) = Convert : r188_2 +# 188| r188_4(glval) = VariableAddress[i] : +# 188| r188_5(int) = Load[i] : &:r188_4, m187_6 +# 188| r188_6(glval) = PointerAdd[1] : r188_3, r188_5 +# 188| r188_7(char) = Load[?] : &:r188_6, ~m187_3 +# 188| m188_8(char) = Store[c] : &:r188_1, r188_7 +# 189| r189_1(glval) = VariableAddress[pwc] : +# 189| r189_2(glval) = StringConstant[L"Bar"] : +# 189| r189_3(wchar_t *) = Convert : r189_2 +# 189| r189_4(wchar_t *) = Convert : r189_3 +# 189| m189_5(wchar_t *) = Store[pwc] : &:r189_1, r189_4 +# 190| r190_1(glval) = VariableAddress[wc] : +# 190| r190_2(glval) = VariableAddress[pwc] : +# 190| r190_3(wchar_t *) = Load[pwc] : &:r190_2, m189_5 +# 190| r190_4(glval) = VariableAddress[i] : +# 190| r190_5(int) = Load[i] : &:r190_4, m187_6 +# 190| r190_6(glval) = PointerAdd[4] : r190_3, r190_5 +# 190| r190_7(wchar_t) = Load[?] : &:r190_6, ~m187_3 +# 190| m190_8(wchar_t) = Store[wc] : &:r190_1, r190_7 +# 191| v191_1(void) = NoOp : +# 187| v187_7(void) = ReturnVoid : +# 187| v187_8(void) = AliasedUse : m187_3 +# 187| v187_9(void) = ExitFunction : + +# 193| void PointerCompare(int*, int*) +# 193| Block 0 +# 193| v193_1(void) = EnterFunction : +# 193| m193_2(unknown) = AliasedDefinition : +# 193| m193_3(unknown) = InitializeNonLocal : +# 193| m193_4(unknown) = Chi : total:m193_2, partial:m193_3 +# 193| r193_5(glval) = VariableAddress[p] : +# 193| m193_6(int *) = InitializeParameter[p] : &:r193_5 +# 193| r193_7(int *) = Load[p] : &:r193_5, m193_6 +# 193| m193_8(unknown) = InitializeIndirection[p] : &:r193_7 +# 193| r193_9(glval) = VariableAddress[q] : +# 193| m193_10(int *) = InitializeParameter[q] : &:r193_9 +# 193| r193_11(int *) = Load[q] : &:r193_9, m193_10 +# 193| m193_12(unknown) = InitializeIndirection[q] : &:r193_11 +# 194| r194_1(glval) = VariableAddress[b] : +# 194| m194_2(bool) = Uninitialized[b] : &:r194_1 +# 196| r196_1(glval) = VariableAddress[p] : +# 196| r196_2(int *) = Load[p] : &:r196_1, m193_6 +# 196| r196_3(glval) = VariableAddress[q] : +# 196| r196_4(int *) = Load[q] : &:r196_3, m193_10 +# 196| r196_5(bool) = CompareEQ : r196_2, r196_4 +# 196| r196_6(glval) = VariableAddress[b] : +# 196| m196_7(bool) = Store[b] : &:r196_6, r196_5 +# 197| r197_1(glval) = VariableAddress[p] : +# 197| r197_2(int *) = Load[p] : &:r197_1, m193_6 +# 197| r197_3(glval) = VariableAddress[q] : +# 197| r197_4(int *) = Load[q] : &:r197_3, m193_10 +# 197| r197_5(bool) = CompareNE : r197_2, r197_4 +# 197| r197_6(glval) = VariableAddress[b] : +# 197| m197_7(bool) = Store[b] : &:r197_6, r197_5 +# 198| r198_1(glval) = VariableAddress[p] : +# 198| r198_2(int *) = Load[p] : &:r198_1, m193_6 +# 198| r198_3(glval) = VariableAddress[q] : +# 198| r198_4(int *) = Load[q] : &:r198_3, m193_10 +# 198| r198_5(bool) = CompareLT : r198_2, r198_4 +# 198| r198_6(glval) = VariableAddress[b] : +# 198| m198_7(bool) = Store[b] : &:r198_6, r198_5 +# 199| r199_1(glval) = VariableAddress[p] : +# 199| r199_2(int *) = Load[p] : &:r199_1, m193_6 +# 199| r199_3(glval) = VariableAddress[q] : +# 199| r199_4(int *) = Load[q] : &:r199_3, m193_10 +# 199| r199_5(bool) = CompareGT : r199_2, r199_4 +# 199| r199_6(glval) = VariableAddress[b] : +# 199| m199_7(bool) = Store[b] : &:r199_6, r199_5 +# 200| r200_1(glval) = VariableAddress[p] : +# 200| r200_2(int *) = Load[p] : &:r200_1, m193_6 +# 200| r200_3(glval) = VariableAddress[q] : +# 200| r200_4(int *) = Load[q] : &:r200_3, m193_10 +# 200| r200_5(bool) = CompareLE : r200_2, r200_4 +# 200| r200_6(glval) = VariableAddress[b] : +# 200| m200_7(bool) = Store[b] : &:r200_6, r200_5 +# 201| r201_1(glval) = VariableAddress[p] : +# 201| r201_2(int *) = Load[p] : &:r201_1, m193_6 +# 201| r201_3(glval) = VariableAddress[q] : +# 201| r201_4(int *) = Load[q] : &:r201_3, m193_10 +# 201| r201_5(bool) = CompareGE : r201_2, r201_4 +# 201| r201_6(glval) = VariableAddress[b] : +# 201| m201_7(bool) = Store[b] : &:r201_6, r201_5 +# 202| v202_1(void) = NoOp : +# 193| v193_13(void) = ReturnIndirection[p] : &:r193_7, m193_8 +# 193| v193_14(void) = ReturnIndirection[q] : &:r193_11, m193_12 +# 193| v193_15(void) = ReturnVoid : +# 193| v193_16(void) = AliasedUse : m193_3 +# 193| v193_17(void) = ExitFunction : + +# 204| void PointerCrement(int*) +# 204| Block 0 +# 204| v204_1(void) = EnterFunction : +# 204| m204_2(unknown) = AliasedDefinition : +# 204| m204_3(unknown) = InitializeNonLocal : +# 204| m204_4(unknown) = Chi : total:m204_2, partial:m204_3 +# 204| r204_5(glval) = VariableAddress[p] : +# 204| m204_6(int *) = InitializeParameter[p] : &:r204_5 +# 204| r204_7(int *) = Load[p] : &:r204_5, m204_6 +# 204| m204_8(unknown) = InitializeIndirection[p] : &:r204_7 +# 205| r205_1(glval) = VariableAddress[q] : +# 205| m205_2(int *) = Uninitialized[q] : &:r205_1 +# 207| r207_1(glval) = VariableAddress[p] : +# 207| r207_2(int *) = Load[p] : &:r207_1, m204_6 +# 207| r207_3(int) = Constant[1] : +# 207| r207_4(int *) = PointerAdd[4] : r207_2, r207_3 +# 207| m207_5(int *) = Store[p] : &:r207_1, r207_4 +# 207| r207_6(glval) = VariableAddress[q] : +# 207| m207_7(int *) = Store[q] : &:r207_6, r207_4 +# 208| r208_1(glval) = VariableAddress[p] : +# 208| r208_2(int *) = Load[p] : &:r208_1, m207_5 +# 208| r208_3(int) = Constant[1] : +# 208| r208_4(int *) = PointerSub[4] : r208_2, r208_3 +# 208| m208_5(int *) = Store[p] : &:r208_1, r208_4 +# 208| r208_6(glval) = VariableAddress[q] : +# 208| m208_7(int *) = Store[q] : &:r208_6, r208_4 +# 209| r209_1(glval) = VariableAddress[p] : +# 209| r209_2(int *) = Load[p] : &:r209_1, m208_5 +# 209| r209_3(int) = Constant[1] : +# 209| r209_4(int *) = PointerAdd[4] : r209_2, r209_3 +# 209| m209_5(int *) = Store[p] : &:r209_1, r209_4 +# 209| r209_6(int *) = CopyValue : r209_2 +# 209| r209_7(glval) = VariableAddress[q] : +# 209| m209_8(int *) = Store[q] : &:r209_7, r209_6 +# 210| r210_1(glval) = VariableAddress[p] : +# 210| r210_2(int *) = Load[p] : &:r210_1, m209_5 +# 210| r210_3(int) = Constant[1] : +# 210| r210_4(int *) = PointerSub[4] : r210_2, r210_3 +# 210| m210_5(int *) = Store[p] : &:r210_1, r210_4 +# 210| r210_6(int *) = CopyValue : r210_2 +# 210| r210_7(glval) = VariableAddress[q] : +# 210| m210_8(int *) = Store[q] : &:r210_7, r210_6 +# 211| v211_1(void) = NoOp : +# 204| v204_9(void) = ReturnIndirection[p] : &:r204_7, m204_8 +# 204| v204_10(void) = ReturnVoid : +# 204| v204_11(void) = AliasedUse : m204_3 +# 204| v204_12(void) = ExitFunction : + +# 213| void CompoundAssignment() +# 213| Block 0 +# 213| v213_1(void) = EnterFunction : +# 213| m213_2(unknown) = AliasedDefinition : +# 213| m213_3(unknown) = InitializeNonLocal : +# 213| m213_4(unknown) = Chi : total:m213_2, partial:m213_3 +# 215| r215_1(glval) = VariableAddress[x] : +# 215| r215_2(int) = Constant[5] : +# 215| m215_3(int) = Store[x] : &:r215_1, r215_2 +# 216| r216_1(int) = Constant[7] : +# 216| r216_2(glval) = VariableAddress[x] : +# 216| r216_3(int) = Load[x] : &:r216_2, m215_3 +# 216| r216_4(int) = Add : r216_3, r216_1 +# 216| m216_5(int) = Store[x] : &:r216_2, r216_4 +# 219| r219_1(glval) = VariableAddress[y] : +# 219| r219_2(short) = Constant[5] : +# 219| m219_3(short) = Store[y] : &:r219_1, r219_2 +# 220| r220_1(glval) = VariableAddress[x] : +# 220| r220_2(int) = Load[x] : &:r220_1, m216_5 +# 220| r220_3(glval) = VariableAddress[y] : +# 220| r220_4(short) = Load[y] : &:r220_3, m219_3 +# 220| r220_5(int) = Convert : r220_4 +# 220| r220_6(int) = Add : r220_5, r220_2 +# 220| r220_7(short) = Convert : r220_6 +# 220| m220_8(short) = Store[y] : &:r220_3, r220_7 +# 223| r223_1(int) = Constant[1] : +# 223| r223_2(glval) = VariableAddress[y] : +# 223| r223_3(short) = Load[y] : &:r223_2, m220_8 +# 223| r223_4(short) = ShiftLeft : r223_3, r223_1 +# 223| m223_5(short) = Store[y] : &:r223_2, r223_4 +# 226| r226_1(glval) = VariableAddress[z] : +# 226| r226_2(long) = Constant[7] : +# 226| m226_3(long) = Store[z] : &:r226_1, r226_2 +# 227| r227_1(float) = Constant[2.0] : +# 227| r227_2(glval) = VariableAddress[z] : +# 227| r227_3(long) = Load[z] : &:r227_2, m226_3 +# 227| r227_4(float) = Convert : r227_3 +# 227| r227_5(float) = Add : r227_4, r227_1 +# 227| r227_6(long) = Convert : r227_5 +# 227| m227_7(long) = Store[z] : &:r227_2, r227_6 +# 228| v228_1(void) = NoOp : +# 213| v213_5(void) = ReturnVoid : +# 213| v213_6(void) = AliasedUse : m213_3 +# 213| v213_7(void) = ExitFunction : + +# 230| void UninitializedVariables() +# 230| Block 0 +# 230| v230_1(void) = EnterFunction : +# 230| m230_2(unknown) = AliasedDefinition : +# 230| m230_3(unknown) = InitializeNonLocal : +# 230| m230_4(unknown) = Chi : total:m230_2, partial:m230_3 +# 231| r231_1(glval) = VariableAddress[x] : +# 231| m231_2(int) = Uninitialized[x] : &:r231_1 +# 232| r232_1(glval) = VariableAddress[y] : +# 232| r232_2(glval) = VariableAddress[x] : +# 232| r232_3(int) = Load[x] : &:r232_2, m231_2 +# 232| m232_4(int) = Store[y] : &:r232_1, r232_3 +# 233| v233_1(void) = NoOp : +# 230| v230_5(void) = ReturnVoid : +# 230| v230_6(void) = AliasedUse : m230_3 +# 230| v230_7(void) = ExitFunction : + +# 235| int Parameters(int, int) +# 235| Block 0 +# 235| v235_1(void) = EnterFunction : +# 235| m235_2(unknown) = AliasedDefinition : +# 235| m235_3(unknown) = InitializeNonLocal : +# 235| m235_4(unknown) = Chi : total:m235_2, partial:m235_3 +# 235| r235_5(glval) = VariableAddress[x] : +# 235| m235_6(int) = InitializeParameter[x] : &:r235_5 +# 235| r235_7(glval) = VariableAddress[y] : +# 235| m235_8(int) = InitializeParameter[y] : &:r235_7 +# 236| r236_1(glval) = VariableAddress[#return] : +# 236| r236_2(glval) = VariableAddress[x] : +# 236| r236_3(int) = Load[x] : &:r236_2, m235_6 +# 236| r236_4(glval) = VariableAddress[y] : +# 236| r236_5(int) = Load[y] : &:r236_4, m235_8 +# 236| r236_6(int) = Rem : r236_3, r236_5 +# 236| m236_7(int) = Store[#return] : &:r236_1, r236_6 +# 235| r235_9(glval) = VariableAddress[#return] : +# 235| v235_10(void) = ReturnValue : &:r235_9, m236_7 +# 235| v235_11(void) = AliasedUse : m235_3 +# 235| v235_12(void) = ExitFunction : + +# 239| void IfStatements(bool, int, int) +# 239| Block 0 +# 239| v239_1(void) = EnterFunction : +# 239| m239_2(unknown) = AliasedDefinition : +# 239| m239_3(unknown) = InitializeNonLocal : +# 239| m239_4(unknown) = Chi : total:m239_2, partial:m239_3 +# 239| r239_5(glval) = VariableAddress[b] : +# 239| m239_6(bool) = InitializeParameter[b] : &:r239_5 +# 239| r239_7(glval) = VariableAddress[x] : +# 239| m239_8(int) = InitializeParameter[x] : &:r239_7 +# 239| r239_9(glval) = VariableAddress[y] : +# 239| m239_10(int) = InitializeParameter[y] : &:r239_9 +# 240| r240_1(glval) = VariableAddress[b] : +# 240| r240_2(bool) = Load[b] : &:r240_1, m239_6 +# 240| v240_3(void) = ConditionalBranch : r240_2 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 240| Block 1 +# 240| v240_4(void) = NoOp : +#-----| Goto -> Block 2 + +# 243| Block 2 +# 243| r243_1(glval) = VariableAddress[b] : +# 243| r243_2(bool) = Load[b] : &:r243_1, m239_6 +# 243| v243_3(void) = ConditionalBranch : r243_2 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 244| Block 3 +# 244| r244_1(glval) = VariableAddress[y] : +# 244| r244_2(int) = Load[y] : &:r244_1, m239_10 +# 244| r244_3(glval) = VariableAddress[x] : +# 244| m244_4(int) = Store[x] : &:r244_3, r244_2 +#-----| Goto -> Block 4 + +# 247| Block 4 +# 247| m247_1(int) = Phi : from 2:m239_8, from 3:m244_4 +# 247| r247_2(glval) = VariableAddress[x] : +# 247| r247_3(int) = Load[x] : &:r247_2, m247_1 +# 247| r247_4(int) = Constant[7] : +# 247| r247_5(bool) = CompareLT : r247_3, r247_4 +# 247| v247_6(void) = ConditionalBranch : r247_5 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 248| Block 5 +# 248| r248_1(int) = Constant[2] : +# 248| r248_2(glval) = VariableAddress[x] : +# 248| m248_3(int) = Store[x] : &:r248_2, r248_1 +#-----| Goto -> Block 7 + +# 250| Block 6 +# 250| r250_1(int) = Constant[7] : +# 250| r250_2(glval) = VariableAddress[x] : +# 250| m250_3(int) = Store[x] : &:r250_2, r250_1 +#-----| Goto -> Block 7 + +# 251| Block 7 +# 251| v251_1(void) = NoOp : +# 239| v239_11(void) = ReturnVoid : +# 239| v239_12(void) = AliasedUse : m239_3 +# 239| v239_13(void) = ExitFunction : + +# 253| void WhileStatements(int) +# 253| Block 0 +# 253| v253_1(void) = EnterFunction : +# 253| m253_2(unknown) = AliasedDefinition : +# 253| m253_3(unknown) = InitializeNonLocal : +# 253| m253_4(unknown) = Chi : total:m253_2, partial:m253_3 +# 253| r253_5(glval) = VariableAddress[n] : +# 253| m253_6(int) = InitializeParameter[n] : &:r253_5 +#-----| Goto -> Block 1 + +# 254| Block 1 +# 254| m254_1(int) = Phi : from 0:m253_6, from 2:m255_5 +# 254| r254_2(glval) = VariableAddress[n] : +# 254| r254_3(int) = Load[n] : &:r254_2, m254_1 +# 254| r254_4(int) = Constant[0] : +# 254| r254_5(bool) = CompareGT : r254_3, r254_4 +# 254| v254_6(void) = ConditionalBranch : r254_5 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 255| Block 2 +# 255| r255_1(int) = Constant[1] : +# 255| r255_2(glval) = VariableAddress[n] : +# 255| r255_3(int) = Load[n] : &:r255_2, m254_1 +# 255| r255_4(int) = Sub : r255_3, r255_1 +# 255| m255_5(int) = Store[n] : &:r255_2, r255_4 +#-----| Goto (back edge) -> Block 1 + +# 257| Block 3 +# 257| v257_1(void) = NoOp : +# 253| v253_7(void) = ReturnVoid : +# 253| v253_8(void) = AliasedUse : m253_3 +# 253| v253_9(void) = ExitFunction : + +# 259| void DoStatements(int) +# 259| Block 0 +# 259| v259_1(void) = EnterFunction : +# 259| m259_2(unknown) = AliasedDefinition : +# 259| m259_3(unknown) = InitializeNonLocal : +# 259| m259_4(unknown) = Chi : total:m259_2, partial:m259_3 +# 259| r259_5(glval) = VariableAddress[n] : +# 259| m259_6(int) = InitializeParameter[n] : &:r259_5 +#-----| Goto -> Block 1 + +# 261| Block 1 +# 261| m261_1(int) = Phi : from 0:m259_6, from 1:m261_6 +# 261| r261_2(int) = Constant[1] : +# 261| r261_3(glval) = VariableAddress[n] : +# 261| r261_4(int) = Load[n] : &:r261_3, m261_1 +# 261| r261_5(int) = Sub : r261_4, r261_2 +# 261| m261_6(int) = Store[n] : &:r261_3, r261_5 +# 262| r262_1(glval) = VariableAddress[n] : +# 262| r262_2(int) = Load[n] : &:r262_1, m261_6 +# 262| r262_3(int) = Constant[0] : +# 262| r262_4(bool) = CompareGT : r262_2, r262_3 +# 262| v262_5(void) = ConditionalBranch : r262_4 +#-----| False -> Block 2 +#-----| True (back edge) -> Block 1 + +# 263| Block 2 +# 263| v263_1(void) = NoOp : +# 259| v259_7(void) = ReturnVoid : +# 259| v259_8(void) = AliasedUse : m259_3 +# 259| v259_9(void) = ExitFunction : + +# 265| void For_Empty() +# 265| Block 0 +# 265| v265_1(void) = EnterFunction : +# 265| m265_2(unknown) = AliasedDefinition : +# 265| m265_3(unknown) = InitializeNonLocal : +# 265| m265_4(unknown) = Chi : total:m265_2, partial:m265_3 +# 266| r266_1(glval) = VariableAddress[j] : +# 266| m266_2(int) = Uninitialized[j] : &:r266_1 +#-----| Goto -> Block 1 + +# 268| Block 1 +# 268| v268_1(void) = NoOp : +#-----| Goto (back edge) -> Block 1 + +# 272| void For_Init() +# 272| Block 0 +# 272| v272_1(void) = EnterFunction : +# 272| m272_2(unknown) = AliasedDefinition : +# 272| m272_3(unknown) = InitializeNonLocal : +# 272| m272_4(unknown) = Chi : total:m272_2, partial:m272_3 +# 273| r273_1(glval) = VariableAddress[i] : +# 273| r273_2(int) = Constant[0] : +# 273| m273_3(int) = Store[i] : &:r273_1, r273_2 +#-----| Goto -> Block 1 + +# 274| Block 1 +# 274| v274_1(void) = NoOp : +#-----| Goto (back edge) -> Block 1 + +# 278| void For_Condition() +# 278| Block 0 +# 278| v278_1(void) = EnterFunction : +# 278| m278_2(unknown) = AliasedDefinition : +# 278| m278_3(unknown) = InitializeNonLocal : +# 278| m278_4(unknown) = Chi : total:m278_2, partial:m278_3 +# 279| r279_1(glval) = VariableAddress[i] : +# 279| r279_2(int) = Constant[0] : +# 279| m279_3(int) = Store[i] : &:r279_1, r279_2 +#-----| Goto -> Block 1 + +# 280| Block 1 +# 280| r280_1(glval) = VariableAddress[i] : +# 280| r280_2(int) = Load[i] : &:r280_1, m279_3 +# 280| r280_3(int) = Constant[10] : +# 280| r280_4(bool) = CompareLT : r280_2, r280_3 +# 280| v280_5(void) = ConditionalBranch : r280_4 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 281| Block 2 +# 281| v281_1(void) = NoOp : +#-----| Goto (back edge) -> Block 1 + +# 278| Block 3 +# 278| v278_5(void) = Unreached : + +# 285| void For_Update() +# 285| Block 0 +# 285| v285_1(void) = EnterFunction : +# 285| m285_2(unknown) = AliasedDefinition : +# 285| m285_3(unknown) = InitializeNonLocal : +# 285| m285_4(unknown) = Chi : total:m285_2, partial:m285_3 +# 286| r286_1(glval) = VariableAddress[i] : +# 286| r286_2(int) = Constant[0] : +# 286| m286_3(int) = Store[i] : &:r286_1, r286_2 +#-----| Goto -> Block 1 + +# 288| Block 1 +# 288| m288_1(int) = Phi : from 0:m286_3, from 1:m287_5 +# 288| v288_2(void) = NoOp : +# 287| r287_1(int) = Constant[1] : +# 287| r287_2(glval) = VariableAddress[i] : +# 287| r287_3(int) = Load[i] : &:r287_2, m288_1 +# 287| r287_4(int) = Add : r287_3, r287_1 +# 287| m287_5(int) = Store[i] : &:r287_2, r287_4 +#-----| Goto (back edge) -> Block 1 + +# 292| void For_InitCondition() +# 292| Block 0 +# 292| v292_1(void) = EnterFunction : +# 292| m292_2(unknown) = AliasedDefinition : +# 292| m292_3(unknown) = InitializeNonLocal : +# 292| m292_4(unknown) = Chi : total:m292_2, partial:m292_3 +# 293| r293_1(glval) = VariableAddress[i] : +# 293| r293_2(int) = Constant[0] : +# 293| m293_3(int) = Store[i] : &:r293_1, r293_2 +#-----| Goto -> Block 1 + +# 293| Block 1 +# 293| r293_4(glval) = VariableAddress[i] : +# 293| r293_5(int) = Load[i] : &:r293_4, m293_3 +# 293| r293_6(int) = Constant[10] : +# 293| r293_7(bool) = CompareLT : r293_5, r293_6 +# 293| v293_8(void) = ConditionalBranch : r293_7 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 294| Block 2 +# 294| v294_1(void) = NoOp : +#-----| Goto (back edge) -> Block 1 + +# 292| Block 3 +# 292| v292_5(void) = Unreached : + +# 298| void For_InitUpdate() +# 298| Block 0 +# 298| v298_1(void) = EnterFunction : +# 298| m298_2(unknown) = AliasedDefinition : +# 298| m298_3(unknown) = InitializeNonLocal : +# 298| m298_4(unknown) = Chi : total:m298_2, partial:m298_3 +# 299| r299_1(glval) = VariableAddress[i] : +# 299| r299_2(int) = Constant[0] : +# 299| m299_3(int) = Store[i] : &:r299_1, r299_2 +#-----| Goto -> Block 1 + +# 300| Block 1 +# 300| m300_1(int) = Phi : from 0:m299_3, from 1:m299_8 +# 300| v300_2(void) = NoOp : +# 299| r299_4(int) = Constant[1] : +# 299| r299_5(glval) = VariableAddress[i] : +# 299| r299_6(int) = Load[i] : &:r299_5, m300_1 +# 299| r299_7(int) = Add : r299_6, r299_4 +# 299| m299_8(int) = Store[i] : &:r299_5, r299_7 +#-----| Goto (back edge) -> Block 1 + +# 304| void For_ConditionUpdate() +# 304| Block 0 +# 304| v304_1(void) = EnterFunction : +# 304| m304_2(unknown) = AliasedDefinition : +# 304| m304_3(unknown) = InitializeNonLocal : +# 304| m304_4(unknown) = Chi : total:m304_2, partial:m304_3 +# 305| r305_1(glval) = VariableAddress[i] : +# 305| r305_2(int) = Constant[0] : +# 305| m305_3(int) = Store[i] : &:r305_1, r305_2 +#-----| Goto -> Block 1 + +# 306| Block 1 +# 306| m306_1(int) = Phi : from 0:m305_3, from 2:m306_11 +# 306| r306_2(glval) = VariableAddress[i] : +# 306| r306_3(int) = Load[i] : &:r306_2, m306_1 +# 306| r306_4(int) = Constant[10] : +# 306| r306_5(bool) = CompareLT : r306_3, r306_4 +# 306| v306_6(void) = ConditionalBranch : r306_5 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 307| Block 2 +# 307| v307_1(void) = NoOp : +# 306| r306_7(int) = Constant[1] : +# 306| r306_8(glval) = VariableAddress[i] : +# 306| r306_9(int) = Load[i] : &:r306_8, m306_1 +# 306| r306_10(int) = Add : r306_9, r306_7 +# 306| m306_11(int) = Store[i] : &:r306_8, r306_10 +#-----| Goto (back edge) -> Block 1 + +# 309| Block 3 +# 309| v309_1(void) = NoOp : +# 304| v304_5(void) = ReturnVoid : +# 304| v304_6(void) = AliasedUse : m304_3 +# 304| v304_7(void) = ExitFunction : + +# 311| void For_InitConditionUpdate() +# 311| Block 0 +# 311| v311_1(void) = EnterFunction : +# 311| m311_2(unknown) = AliasedDefinition : +# 311| m311_3(unknown) = InitializeNonLocal : +# 311| m311_4(unknown) = Chi : total:m311_2, partial:m311_3 +# 312| r312_1(glval) = VariableAddress[i] : +# 312| r312_2(int) = Constant[0] : +# 312| m312_3(int) = Store[i] : &:r312_1, r312_2 +#-----| Goto -> Block 1 + +# 312| Block 1 +# 312| m312_4(int) = Phi : from 0:m312_3, from 2:m312_14 +# 312| r312_5(glval) = VariableAddress[i] : +# 312| r312_6(int) = Load[i] : &:r312_5, m312_4 +# 312| r312_7(int) = Constant[10] : +# 312| r312_8(bool) = CompareLT : r312_6, r312_7 +# 312| v312_9(void) = ConditionalBranch : r312_8 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 313| Block 2 +# 313| v313_1(void) = NoOp : +# 312| r312_10(int) = Constant[1] : +# 312| r312_11(glval) = VariableAddress[i] : +# 312| r312_12(int) = Load[i] : &:r312_11, m312_4 +# 312| r312_13(int) = Add : r312_12, r312_10 +# 312| m312_14(int) = Store[i] : &:r312_11, r312_13 +#-----| Goto (back edge) -> Block 1 + +# 315| Block 3 +# 315| v315_1(void) = NoOp : +# 311| v311_5(void) = ReturnVoid : +# 311| v311_6(void) = AliasedUse : m311_3 +# 311| v311_7(void) = ExitFunction : + +# 317| void For_Break() +# 317| Block 0 +# 317| v317_1(void) = EnterFunction : +# 317| m317_2(unknown) = AliasedDefinition : +# 317| m317_3(unknown) = InitializeNonLocal : +# 317| m317_4(unknown) = Chi : total:m317_2, partial:m317_3 +# 318| r318_1(glval) = VariableAddress[i] : +# 318| r318_2(int) = Constant[0] : +# 318| m318_3(int) = Store[i] : &:r318_1, r318_2 +#-----| Goto -> Block 1 + +# 318| Block 1 +# 318| m318_4(int) = Phi : from 0:m318_3, from 2:m318_14 +# 318| r318_5(glval) = VariableAddress[i] : +# 318| r318_6(int) = Load[i] : &:r318_5, m318_4 +# 318| r318_7(int) = Constant[10] : +# 318| r318_8(bool) = CompareLT : r318_6, r318_7 +# 318| v318_9(void) = ConditionalBranch : r318_8 +#-----| False -> Block 5 +#-----| True -> Block 3 + +# 318| Block 2 +# 318| r318_10(int) = Constant[1] : +# 318| r318_11(glval) = VariableAddress[i] : +# 318| r318_12(int) = Load[i] : &:r318_11, m318_4 +# 318| r318_13(int) = Add : r318_12, r318_10 +# 318| m318_14(int) = Store[i] : &:r318_11, r318_13 +#-----| Goto (back edge) -> Block 1 + +# 319| Block 3 +# 319| r319_1(glval) = VariableAddress[i] : +# 319| r319_2(int) = Load[i] : &:r319_1, m318_4 +# 319| r319_3(int) = Constant[5] : +# 319| r319_4(bool) = CompareEQ : r319_2, r319_3 +# 319| v319_5(void) = ConditionalBranch : r319_4 +#-----| False -> Block 2 +#-----| True -> Block 4 + +# 320| Block 4 +# 320| v320_1(void) = NoOp : +#-----| Goto -> Block 5 + +# 322| Block 5 +# 322| v322_1(void) = NoOp : +# 323| v323_1(void) = NoOp : +# 317| v317_5(void) = ReturnVoid : +# 317| v317_6(void) = AliasedUse : m317_3 +# 317| v317_7(void) = ExitFunction : + +# 325| void For_Continue_Update() +# 325| Block 0 +# 325| v325_1(void) = EnterFunction : +# 325| m325_2(unknown) = AliasedDefinition : +# 325| m325_3(unknown) = InitializeNonLocal : +# 325| m325_4(unknown) = Chi : total:m325_2, partial:m325_3 +# 326| r326_1(glval) = VariableAddress[i] : +# 326| r326_2(int) = Constant[0] : +# 326| m326_3(int) = Store[i] : &:r326_1, r326_2 +#-----| Goto -> Block 1 + +# 326| Block 1 +# 326| m326_4(int) = Phi : from 0:m326_3, from 4:m326_15 +# 326| r326_5(glval) = VariableAddress[i] : +# 326| r326_6(int) = Load[i] : &:r326_5, m326_4 +# 326| r326_7(int) = Constant[10] : +# 326| r326_8(bool) = CompareLT : r326_6, r326_7 +# 326| v326_9(void) = ConditionalBranch : r326_8 +#-----| False -> Block 5 +#-----| True -> Block 2 + +# 327| Block 2 +# 327| r327_1(glval) = VariableAddress[i] : +# 327| r327_2(int) = Load[i] : &:r327_1, m326_4 +# 327| r327_3(int) = Constant[5] : +# 327| r327_4(bool) = CompareEQ : r327_2, r327_3 +# 327| v327_5(void) = ConditionalBranch : r327_4 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 328| Block 3 +# 328| v328_1(void) = NoOp : +#-----| Goto -> Block 4 + +# 326| Block 4 +# 326| v326_10(void) = NoOp : +# 326| r326_11(int) = Constant[1] : +# 326| r326_12(glval) = VariableAddress[i] : +# 326| r326_13(int) = Load[i] : &:r326_12, m326_4 +# 326| r326_14(int) = Add : r326_13, r326_11 +# 326| m326_15(int) = Store[i] : &:r326_12, r326_14 +#-----| Goto (back edge) -> Block 1 + +# 331| Block 5 +# 331| v331_1(void) = NoOp : +# 325| v325_5(void) = ReturnVoid : +# 325| v325_6(void) = AliasedUse : m325_3 +# 325| v325_7(void) = ExitFunction : + +# 333| void For_Continue_NoUpdate() +# 333| Block 0 +# 333| v333_1(void) = EnterFunction : +# 333| m333_2(unknown) = AliasedDefinition : +# 333| m333_3(unknown) = InitializeNonLocal : +# 333| m333_4(unknown) = Chi : total:m333_2, partial:m333_3 +# 334| r334_1(glval) = VariableAddress[i] : +# 334| r334_2(int) = Constant[0] : +# 334| m334_3(int) = Store[i] : &:r334_1, r334_2 +#-----| Goto -> Block 1 + +# 334| Block 1 +# 334| r334_4(glval) = VariableAddress[i] : +# 334| r334_5(int) = Load[i] : &:r334_4, m334_3 +# 334| r334_6(int) = Constant[10] : +# 334| r334_7(bool) = CompareLT : r334_5, r334_6 +# 334| v334_8(void) = ConditionalBranch : r334_7 +#-----| False -> Block 4 +#-----| True -> Block 2 + +# 335| Block 2 +# 335| r335_1(glval) = VariableAddress[i] : +# 335| r335_2(int) = Load[i] : &:r335_1, m334_3 +# 335| r335_3(int) = Constant[5] : +# 335| r335_4(bool) = CompareEQ : r335_2, r335_3 +# 335| v335_5(void) = ConditionalBranch : r335_4 +#-----| False -> Block 3 +#-----| True -> Block 4 + +# 334| Block 3 +# 334| v334_9(void) = NoOp : +#-----| Goto (back edge) -> Block 1 + +# 333| Block 4 +# 333| v333_5(void) = Unreached : + +# 341| int Dereference(int*) +# 341| Block 0 +# 341| v341_1(void) = EnterFunction : +# 341| m341_2(unknown) = AliasedDefinition : +# 341| m341_3(unknown) = InitializeNonLocal : +# 341| m341_4(unknown) = Chi : total:m341_2, partial:m341_3 +# 341| r341_5(glval) = VariableAddress[p] : +# 341| m341_6(int *) = InitializeParameter[p] : &:r341_5 +# 341| r341_7(int *) = Load[p] : &:r341_5, m341_6 +# 341| m341_8(unknown) = InitializeIndirection[p] : &:r341_7 +# 342| r342_1(int) = Constant[1] : +# 342| r342_2(glval) = VariableAddress[p] : +# 342| r342_3(int *) = Load[p] : &:r342_2, m341_6 +# 342| r342_4(glval) = CopyValue : r342_3 +# 342| m342_5(int) = Store[?] : &:r342_4, r342_1 +# 342| m342_6(unknown) = Chi : total:m341_8, partial:m342_5 +# 343| r343_1(glval) = VariableAddress[#return] : +# 343| r343_2(glval) = VariableAddress[p] : +# 343| r343_3(int *) = Load[p] : &:r343_2, m341_6 +# 343| r343_4(int) = Load[?] : &:r343_3, m342_5 +# 343| m343_5(int) = Store[#return] : &:r343_1, r343_4 +# 341| v341_9(void) = ReturnIndirection[p] : &:r341_7, m342_6 +# 341| r341_10(glval) = VariableAddress[#return] : +# 341| v341_11(void) = ReturnValue : &:r341_10, m343_5 +# 341| v341_12(void) = AliasedUse : m341_3 +# 341| v341_13(void) = ExitFunction : + +# 348| int* AddressOf() +# 348| Block 0 +# 348| v348_1(void) = EnterFunction : +# 348| m348_2(unknown) = AliasedDefinition : +# 348| m348_3(unknown) = InitializeNonLocal : +# 348| m348_4(unknown) = Chi : total:m348_2, partial:m348_3 +# 349| r349_1(glval) = VariableAddress[#return] : +# 349| r349_2(glval) = VariableAddress[g] : +# 349| r349_3(int *) = CopyValue : r349_2 +# 349| m349_4(int *) = Store[#return] : &:r349_1, r349_3 +# 348| r348_5(glval) = VariableAddress[#return] : +# 348| v348_6(void) = ReturnValue : &:r348_5, m349_4 +# 348| v348_7(void) = AliasedUse : m348_3 +# 348| v348_8(void) = ExitFunction : + +# 352| void Break(int) +# 352| Block 0 +# 352| v352_1(void) = EnterFunction : +# 352| m352_2(unknown) = AliasedDefinition : +# 352| m352_3(unknown) = InitializeNonLocal : +# 352| m352_4(unknown) = Chi : total:m352_2, partial:m352_3 +# 352| r352_5(glval) = VariableAddress[n] : +# 352| m352_6(int) = InitializeParameter[n] : &:r352_5 +#-----| Goto -> Block 1 + +# 353| Block 1 +# 353| m353_1(int) = Phi : from 0:m352_6, from 4:m356_5 +# 353| r353_2(glval) = VariableAddress[n] : +# 353| r353_3(int) = Load[n] : &:r353_2, m353_1 +# 353| r353_4(int) = Constant[0] : +# 353| r353_5(bool) = CompareGT : r353_3, r353_4 +# 353| v353_6(void) = ConditionalBranch : r353_5 +#-----| False -> Block 5 +#-----| True -> Block 2 + +# 354| Block 2 +# 354| r354_1(glval) = VariableAddress[n] : +# 354| r354_2(int) = Load[n] : &:r354_1, m353_1 +# 354| r354_3(int) = Constant[1] : +# 354| r354_4(bool) = CompareEQ : r354_2, r354_3 +# 354| v354_5(void) = ConditionalBranch : r354_4 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 355| Block 3 +# 355| v355_1(void) = NoOp : +#-----| Goto -> Block 5 + +# 356| Block 4 +# 356| r356_1(int) = Constant[1] : +# 356| r356_2(glval) = VariableAddress[n] : +# 356| r356_3(int) = Load[n] : &:r356_2, m353_1 +# 356| r356_4(int) = Sub : r356_3, r356_1 +# 356| m356_5(int) = Store[n] : &:r356_2, r356_4 +#-----| Goto (back edge) -> Block 1 + +# 357| Block 5 +# 357| v357_1(void) = NoOp : +# 358| v358_1(void) = NoOp : +# 352| v352_7(void) = ReturnVoid : +# 352| v352_8(void) = AliasedUse : m352_3 +# 352| v352_9(void) = ExitFunction : + +# 360| void Continue(int) +# 360| Block 0 +# 360| v360_1(void) = EnterFunction : +# 360| m360_2(unknown) = AliasedDefinition : +# 360| m360_3(unknown) = InitializeNonLocal : +# 360| m360_4(unknown) = Chi : total:m360_2, partial:m360_3 +# 360| r360_5(glval) = VariableAddress[n] : +# 360| m360_6(int) = InitializeParameter[n] : &:r360_5 +#-----| Goto -> Block 1 + +# 362| Block 1 +# 362| m362_1(int) = Phi : from 0:m360_6, from 4:m361_1 +# 362| r362_2(glval) = VariableAddress[n] : +# 362| r362_3(int) = Load[n] : &:r362_2, m362_1 +# 362| r362_4(int) = Constant[1] : +# 362| r362_5(bool) = CompareEQ : r362_3, r362_4 +# 362| v362_6(void) = ConditionalBranch : r362_5 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 363| Block 2 +# 363| v363_1(void) = NoOp : +#-----| Goto -> Block 4 + +# 365| Block 3 +# 365| r365_1(int) = Constant[1] : +# 365| r365_2(glval) = VariableAddress[n] : +# 365| r365_3(int) = Load[n] : &:r365_2, m362_1 +# 365| r365_4(int) = Sub : r365_3, r365_1 +# 365| m365_5(int) = Store[n] : &:r365_2, r365_4 +#-----| Goto -> Block 4 + +# 361| Block 4 +# 361| m361_1(int) = Phi : from 2:m362_1, from 3:m365_5 +# 361| v361_2(void) = NoOp : +# 366| r366_1(glval) = VariableAddress[n] : +# 366| r366_2(int) = Load[n] : &:r366_1, m361_1 +# 366| r366_3(int) = Constant[0] : +# 366| r366_4(bool) = CompareGT : r366_2, r366_3 +# 366| v366_5(void) = ConditionalBranch : r366_4 +#-----| False -> Block 5 +#-----| True (back edge) -> Block 1 + +# 367| Block 5 +# 367| v367_1(void) = NoOp : +# 360| v360_7(void) = ReturnVoid : +# 360| v360_8(void) = AliasedUse : m360_3 +# 360| v360_9(void) = ExitFunction : + +# 372| void Call() +# 372| Block 0 +# 372| v372_1(void) = EnterFunction : +# 372| m372_2(unknown) = AliasedDefinition : +# 372| m372_3(unknown) = InitializeNonLocal : +# 372| m372_4(unknown) = Chi : total:m372_2, partial:m372_3 +# 373| r373_1(glval) = FunctionAddress[VoidFunc] : +# 373| v373_2(void) = Call[VoidFunc] : func:r373_1 +# 373| m373_3(unknown) = ^CallSideEffect : ~m372_4 +# 373| m373_4(unknown) = Chi : total:m372_4, partial:m373_3 +# 374| v374_1(void) = NoOp : +# 372| v372_5(void) = ReturnVoid : +# 372| v372_6(void) = AliasedUse : ~m373_4 +# 372| v372_7(void) = ExitFunction : + +# 376| int CallAdd(int, int) +# 376| Block 0 +# 376| v376_1(void) = EnterFunction : +# 376| m376_2(unknown) = AliasedDefinition : +# 376| m376_3(unknown) = InitializeNonLocal : +# 376| m376_4(unknown) = Chi : total:m376_2, partial:m376_3 +# 376| r376_5(glval) = VariableAddress[x] : +# 376| m376_6(int) = InitializeParameter[x] : &:r376_5 +# 376| r376_7(glval) = VariableAddress[y] : +# 376| m376_8(int) = InitializeParameter[y] : &:r376_7 +# 377| r377_1(glval) = VariableAddress[#return] : +# 377| r377_2(glval) = FunctionAddress[Add] : +# 377| r377_3(glval) = VariableAddress[x] : +# 377| r377_4(int) = Load[x] : &:r377_3, m376_6 +# 377| r377_5(glval) = VariableAddress[y] : +# 377| r377_6(int) = Load[y] : &:r377_5, m376_8 +# 377| r377_7(int) = Call[Add] : func:r377_2, 0:r377_4, 1:r377_6 +# 377| m377_8(unknown) = ^CallSideEffect : ~m376_4 +# 377| m377_9(unknown) = Chi : total:m376_4, partial:m377_8 +# 377| m377_10(int) = Store[#return] : &:r377_1, r377_7 +# 376| r376_9(glval) = VariableAddress[#return] : +# 376| v376_10(void) = ReturnValue : &:r376_9, m377_10 +# 376| v376_11(void) = AliasedUse : ~m377_9 +# 376| v376_12(void) = ExitFunction : + +# 380| int Comma(int, int) +# 380| Block 0 +# 380| v380_1(void) = EnterFunction : +# 380| m380_2(unknown) = AliasedDefinition : +# 380| m380_3(unknown) = InitializeNonLocal : +# 380| m380_4(unknown) = Chi : total:m380_2, partial:m380_3 +# 380| r380_5(glval) = VariableAddress[x] : +# 380| m380_6(int) = InitializeParameter[x] : &:r380_5 +# 380| r380_7(glval) = VariableAddress[y] : +# 380| m380_8(int) = InitializeParameter[y] : &:r380_7 +# 381| r381_1(glval) = VariableAddress[#return] : +# 381| r381_2(glval) = FunctionAddress[VoidFunc] : +# 381| v381_3(void) = Call[VoidFunc] : func:r381_2 +# 381| m381_4(unknown) = ^CallSideEffect : ~m380_4 +# 381| m381_5(unknown) = Chi : total:m380_4, partial:m381_4 +# 381| r381_6(glval) = FunctionAddress[CallAdd] : +# 381| r381_7(glval) = VariableAddress[x] : +# 381| r381_8(int) = Load[x] : &:r381_7, m380_6 +# 381| r381_9(glval) = VariableAddress[y] : +# 381| r381_10(int) = Load[y] : &:r381_9, m380_8 +# 381| r381_11(int) = Call[CallAdd] : func:r381_6, 0:r381_8, 1:r381_10 +# 381| m381_12(unknown) = ^CallSideEffect : ~m381_5 +# 381| m381_13(unknown) = Chi : total:m381_5, partial:m381_12 +# 381| r381_14(int) = CopyValue : r381_11 +# 381| m381_15(int) = Store[#return] : &:r381_1, r381_14 +# 380| r380_9(glval) = VariableAddress[#return] : +# 380| v380_10(void) = ReturnValue : &:r380_9, m381_15 +# 380| v380_11(void) = AliasedUse : ~m381_13 +# 380| v380_12(void) = ExitFunction : + +# 384| void Switch(int) +# 384| Block 0 +# 384| v384_1(void) = EnterFunction : +# 384| m384_2(unknown) = AliasedDefinition : +# 384| m384_3(unknown) = InitializeNonLocal : +# 384| m384_4(unknown) = Chi : total:m384_2, partial:m384_3 +# 384| r384_5(glval) = VariableAddress[x] : +# 384| m384_6(int) = InitializeParameter[x] : &:r384_5 +# 385| r385_1(glval) = VariableAddress[y] : +# 385| m385_2(int) = Uninitialized[y] : &:r385_1 +# 386| r386_1(glval) = VariableAddress[x] : +# 386| r386_2(int) = Load[x] : &:r386_1, m384_6 +# 386| v386_3(void) = Switch : r386_2 +#-----| Case[-1] -> Block 1 +#-----| Case[1] -> Block 2 +#-----| Case[2] -> Block 3 +#-----| Case[3] -> Block 4 +#-----| Case[4] -> Block 5 +#-----| Default -> Block 6 + +# 389| Block 1 +# 389| v389_1(void) = NoOp : +# 390| r390_1(int) = Constant[-1] : +# 390| r390_2(glval) = VariableAddress[y] : +# 390| m390_3(int) = Store[y] : &:r390_2, r390_1 +# 391| v391_1(void) = NoOp : +#-----| Goto -> Block 7 + +# 393| Block 2 +# 393| v393_1(void) = NoOp : +#-----| Goto -> Block 3 + +# 394| Block 3 +# 394| v394_1(void) = NoOp : +# 395| r395_1(int) = Constant[1] : +# 395| r395_2(glval) = VariableAddress[y] : +# 395| m395_3(int) = Store[y] : &:r395_2, r395_1 +# 396| v396_1(void) = NoOp : +#-----| Goto -> Block 7 + +# 398| Block 4 +# 398| v398_1(void) = NoOp : +# 399| r399_1(int) = Constant[3] : +# 399| r399_2(glval) = VariableAddress[y] : +# 399| m399_3(int) = Store[y] : &:r399_2, r399_1 +#-----| Goto -> Block 5 + +# 400| Block 5 +# 400| v400_1(void) = NoOp : +# 401| r401_1(int) = Constant[4] : +# 401| r401_2(glval) = VariableAddress[y] : +# 401| m401_3(int) = Store[y] : &:r401_2, r401_1 +# 402| v402_1(void) = NoOp : +#-----| Goto -> Block 7 + +# 404| Block 6 +# 404| v404_1(void) = NoOp : +# 405| r405_1(int) = Constant[0] : +# 405| r405_2(glval) = VariableAddress[y] : +# 405| m405_3(int) = Store[y] : &:r405_2, r405_1 +# 406| v406_1(void) = NoOp : +#-----| Goto -> Block 7 + +# 409| Block 7 +# 409| v409_1(void) = NoOp : +# 410| v410_1(void) = NoOp : +# 384| v384_7(void) = ReturnVoid : +# 384| v384_8(void) = AliasedUse : m384_3 +# 384| v384_9(void) = ExitFunction : + +# 422| Point ReturnStruct(Point) +# 422| Block 0 +# 422| v422_1(void) = EnterFunction : +# 422| m422_2(unknown) = AliasedDefinition : +# 422| m422_3(unknown) = InitializeNonLocal : +# 422| m422_4(unknown) = Chi : total:m422_2, partial:m422_3 +# 422| r422_5(glval) = VariableAddress[pt] : +# 422| m422_6(Point) = InitializeParameter[pt] : &:r422_5 +# 423| r423_1(glval) = VariableAddress[#return] : +# 423| r423_2(glval) = VariableAddress[pt] : +# 423| r423_3(Point) = Load[pt] : &:r423_2, m422_6 +# 423| m423_4(Point) = Store[#return] : &:r423_1, r423_3 +# 422| r422_7(glval) = VariableAddress[#return] : +# 422| v422_8(void) = ReturnValue : &:r422_7, m423_4 +# 422| v422_9(void) = AliasedUse : m422_3 +# 422| v422_10(void) = ExitFunction : + +# 426| void FieldAccess() +# 426| Block 0 +# 426| v426_1(void) = EnterFunction : +# 426| m426_2(unknown) = AliasedDefinition : +# 426| m426_3(unknown) = InitializeNonLocal : +# 426| m426_4(unknown) = Chi : total:m426_2, partial:m426_3 +# 427| r427_1(glval) = VariableAddress[pt] : +# 427| m427_2(Point) = Uninitialized[pt] : &:r427_1 +# 428| r428_1(int) = Constant[5] : +# 428| r428_2(glval) = VariableAddress[pt] : +# 428| r428_3(glval) = FieldAddress[x] : r428_2 +# 428| m428_4(int) = Store[?] : &:r428_3, r428_1 +# 428| m428_5(Point) = Chi : total:m427_2, partial:m428_4 +# 429| r429_1(glval) = VariableAddress[pt] : +# 429| r429_2(glval) = FieldAddress[x] : r429_1 +# 429| r429_3(int) = Load[?] : &:r429_2, m428_4 +# 429| r429_4(glval) = VariableAddress[pt] : +# 429| r429_5(glval) = FieldAddress[y] : r429_4 +# 429| m429_6(int) = Store[?] : &:r429_5, r429_3 +# 429| m429_7(Point) = Chi : total:m428_5, partial:m429_6 +# 430| r430_1(glval) = VariableAddress[p] : +# 430| r430_2(glval) = VariableAddress[pt] : +# 430| r430_3(glval) = FieldAddress[y] : r430_2 +# 430| r430_4(int *) = CopyValue : r430_3 +# 430| m430_5(int *) = Store[p] : &:r430_1, r430_4 +# 431| v431_1(void) = NoOp : +# 426| v426_5(void) = ReturnVoid : +# 426| v426_6(void) = AliasedUse : m426_3 +# 426| v426_7(void) = ExitFunction : + +# 433| void LogicalOr(bool, bool) +# 433| Block 0 +# 433| v433_1(void) = EnterFunction : +# 433| m433_2(unknown) = AliasedDefinition : +# 433| m433_3(unknown) = InitializeNonLocal : +# 433| m433_4(unknown) = Chi : total:m433_2, partial:m433_3 +# 433| r433_5(glval) = VariableAddress[a] : +# 433| m433_6(bool) = InitializeParameter[a] : &:r433_5 +# 433| r433_7(glval) = VariableAddress[b] : +# 433| m433_8(bool) = InitializeParameter[b] : &:r433_7 +# 434| r434_1(glval) = VariableAddress[x] : +# 434| m434_2(int) = Uninitialized[x] : &:r434_1 +# 435| r435_1(glval) = VariableAddress[a] : +# 435| r435_2(bool) = Load[a] : &:r435_1, m433_6 +# 435| v435_3(void) = ConditionalBranch : r435_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 435| Block 1 +# 435| r435_4(glval) = VariableAddress[b] : +# 435| r435_5(bool) = Load[b] : &:r435_4, m433_8 +# 435| v435_6(void) = ConditionalBranch : r435_5 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 436| Block 2 +# 436| r436_1(int) = Constant[7] : +# 436| r436_2(glval) = VariableAddress[x] : +# 436| m436_3(int) = Store[x] : &:r436_2, r436_1 +#-----| Goto -> Block 3 + +# 439| Block 3 +# 439| r439_1(glval) = VariableAddress[a] : +# 439| r439_2(bool) = Load[a] : &:r439_1, m433_6 +# 439| v439_3(void) = ConditionalBranch : r439_2 +#-----| False -> Block 4 +#-----| True -> Block 5 + +# 439| Block 4 +# 439| r439_4(glval) = VariableAddress[b] : +# 439| r439_5(bool) = Load[b] : &:r439_4, m433_8 +# 439| v439_6(void) = ConditionalBranch : r439_5 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 440| Block 5 +# 440| r440_1(int) = Constant[1] : +# 440| r440_2(glval) = VariableAddress[x] : +# 440| m440_3(int) = Store[x] : &:r440_2, r440_1 +#-----| Goto -> Block 7 + +# 443| Block 6 +# 443| r443_1(int) = Constant[5] : +# 443| r443_2(glval) = VariableAddress[x] : +# 443| m443_3(int) = Store[x] : &:r443_2, r443_1 +#-----| Goto -> Block 7 + +# 445| Block 7 +# 445| v445_1(void) = NoOp : +# 433| v433_9(void) = ReturnVoid : +# 433| v433_10(void) = AliasedUse : m433_3 +# 433| v433_11(void) = ExitFunction : + +# 447| void LogicalAnd(bool, bool) +# 447| Block 0 +# 447| v447_1(void) = EnterFunction : +# 447| m447_2(unknown) = AliasedDefinition : +# 447| m447_3(unknown) = InitializeNonLocal : +# 447| m447_4(unknown) = Chi : total:m447_2, partial:m447_3 +# 447| r447_5(glval) = VariableAddress[a] : +# 447| m447_6(bool) = InitializeParameter[a] : &:r447_5 +# 447| r447_7(glval) = VariableAddress[b] : +# 447| m447_8(bool) = InitializeParameter[b] : &:r447_7 +# 448| r448_1(glval) = VariableAddress[x] : +# 448| m448_2(int) = Uninitialized[x] : &:r448_1 +# 449| r449_1(glval) = VariableAddress[a] : +# 449| r449_2(bool) = Load[a] : &:r449_1, m447_6 +# 449| v449_3(void) = ConditionalBranch : r449_2 +#-----| False -> Block 3 +#-----| True -> Block 1 + +# 449| Block 1 +# 449| r449_4(glval) = VariableAddress[b] : +# 449| r449_5(bool) = Load[b] : &:r449_4, m447_8 +# 449| v449_6(void) = ConditionalBranch : r449_5 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 450| Block 2 +# 450| r450_1(int) = Constant[7] : +# 450| r450_2(glval) = VariableAddress[x] : +# 450| m450_3(int) = Store[x] : &:r450_2, r450_1 +#-----| Goto -> Block 3 + +# 453| Block 3 +# 453| r453_1(glval) = VariableAddress[a] : +# 453| r453_2(bool) = Load[a] : &:r453_1, m447_6 +# 453| v453_3(void) = ConditionalBranch : r453_2 +#-----| False -> Block 6 +#-----| True -> Block 4 + +# 453| Block 4 +# 453| r453_4(glval) = VariableAddress[b] : +# 453| r453_5(bool) = Load[b] : &:r453_4, m447_8 +# 453| v453_6(void) = ConditionalBranch : r453_5 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 454| Block 5 +# 454| r454_1(int) = Constant[1] : +# 454| r454_2(glval) = VariableAddress[x] : +# 454| m454_3(int) = Store[x] : &:r454_2, r454_1 +#-----| Goto -> Block 7 + +# 457| Block 6 +# 457| r457_1(int) = Constant[5] : +# 457| r457_2(glval) = VariableAddress[x] : +# 457| m457_3(int) = Store[x] : &:r457_2, r457_1 +#-----| Goto -> Block 7 + +# 459| Block 7 +# 459| v459_1(void) = NoOp : +# 447| v447_9(void) = ReturnVoid : +# 447| v447_10(void) = AliasedUse : m447_3 +# 447| v447_11(void) = ExitFunction : + +# 461| void LogicalNot(bool, bool) +# 461| Block 0 +# 461| v461_1(void) = EnterFunction : +# 461| m461_2(unknown) = AliasedDefinition : +# 461| m461_3(unknown) = InitializeNonLocal : +# 461| m461_4(unknown) = Chi : total:m461_2, partial:m461_3 +# 461| r461_5(glval) = VariableAddress[a] : +# 461| m461_6(bool) = InitializeParameter[a] : &:r461_5 +# 461| r461_7(glval) = VariableAddress[b] : +# 461| m461_8(bool) = InitializeParameter[b] : &:r461_7 +# 462| r462_1(glval) = VariableAddress[x] : +# 462| m462_2(int) = Uninitialized[x] : &:r462_1 +# 463| r463_1(glval) = VariableAddress[a] : +# 463| r463_2(bool) = Load[a] : &:r463_1, m461_6 +# 463| v463_3(void) = ConditionalBranch : r463_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 464| Block 1 +# 464| r464_1(int) = Constant[1] : +# 464| r464_2(glval) = VariableAddress[x] : +# 464| m464_3(int) = Store[x] : &:r464_2, r464_1 +#-----| Goto -> Block 2 + +# 467| Block 2 +# 467| r467_1(glval) = VariableAddress[a] : +# 467| r467_2(bool) = Load[a] : &:r467_1, m461_6 +# 467| v467_3(void) = ConditionalBranch : r467_2 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 467| Block 3 +# 467| r467_4(glval) = VariableAddress[b] : +# 467| r467_5(bool) = Load[b] : &:r467_4, m461_8 +# 467| v467_6(void) = ConditionalBranch : r467_5 +#-----| False -> Block 4 +#-----| True -> Block 5 + +# 468| Block 4 +# 468| r468_1(int) = Constant[2] : +# 468| r468_2(glval) = VariableAddress[x] : +# 468| m468_3(int) = Store[x] : &:r468_2, r468_1 +#-----| Goto -> Block 6 + +# 471| Block 5 +# 471| r471_1(int) = Constant[3] : +# 471| r471_2(glval) = VariableAddress[x] : +# 471| m471_3(int) = Store[x] : &:r471_2, r471_1 +#-----| Goto -> Block 6 + +# 473| Block 6 +# 473| v473_1(void) = NoOp : +# 461| v461_9(void) = ReturnVoid : +# 461| v461_10(void) = AliasedUse : m461_3 +# 461| v461_11(void) = ExitFunction : + +# 475| void ConditionValues(bool, bool) +# 475| Block 0 +# 475| v475_1(void) = EnterFunction : +# 475| m475_2(unknown) = AliasedDefinition : +# 475| m475_3(unknown) = InitializeNonLocal : +# 475| m475_4(unknown) = Chi : total:m475_2, partial:m475_3 +# 475| r475_5(glval) = VariableAddress[a] : +# 475| m475_6(bool) = InitializeParameter[a] : &:r475_5 +# 475| r475_7(glval) = VariableAddress[b] : +# 475| m475_8(bool) = InitializeParameter[b] : &:r475_7 +# 476| r476_1(glval) = VariableAddress[x] : +# 476| m476_2(bool) = Uninitialized[x] : &:r476_1 +# 477| r477_1(glval) = VariableAddress[a] : +# 477| r477_2(bool) = Load[a] : &:r477_1, m475_6 +# 477| v477_3(void) = ConditionalBranch : r477_2 +#-----| False -> Block 1 +#-----| True -> Block 4 + +# 477| Block 1 +# 477| r477_4(glval) = VariableAddress[#temp477:9] : +# 477| r477_5(bool) = Constant[0] : +# 477| m477_6(bool) = Store[#temp477:9] : &:r477_4, r477_5 +#-----| Goto -> Block 2 + +# 477| Block 2 +# 477| m477_7(bool) = Phi : from 1:m477_6, from 3:m477_14 +# 477| r477_8(glval) = VariableAddress[#temp477:9] : +# 477| r477_9(bool) = Load[#temp477:9] : &:r477_8, m477_7 +# 477| r477_10(glval) = VariableAddress[x] : +# 477| m477_11(bool) = Store[x] : &:r477_10, r477_9 +# 478| r478_1(glval) = VariableAddress[a] : +# 478| r478_2(bool) = Load[a] : &:r478_1, m475_6 +# 478| v478_3(void) = ConditionalBranch : r478_2 +#-----| False -> Block 8 +#-----| True -> Block 7 + +# 477| Block 3 +# 477| r477_12(glval) = VariableAddress[#temp477:9] : +# 477| r477_13(bool) = Constant[1] : +# 477| m477_14(bool) = Store[#temp477:9] : &:r477_12, r477_13 +#-----| Goto -> Block 2 + +# 477| Block 4 +# 477| r477_15(glval) = VariableAddress[b] : +# 477| r477_16(bool) = Load[b] : &:r477_15, m475_8 +# 477| v477_17(void) = ConditionalBranch : r477_16 +#-----| False -> Block 1 +#-----| True -> Block 3 + +# 478| Block 5 +# 478| r478_4(glval) = VariableAddress[#temp478:9] : +# 478| r478_5(bool) = Constant[0] : +# 478| m478_6(bool) = Store[#temp478:9] : &:r478_4, r478_5 +#-----| Goto -> Block 6 + +# 478| Block 6 +# 478| m478_7(bool) = Phi : from 5:m478_6, from 7:m478_14 +# 478| r478_8(glval) = VariableAddress[#temp478:9] : +# 478| r478_9(bool) = Load[#temp478:9] : &:r478_8, m478_7 +# 478| r478_10(glval) = VariableAddress[x] : +# 478| m478_11(bool) = Store[x] : &:r478_10, r478_9 +# 479| r479_1(glval) = VariableAddress[a] : +# 479| r479_2(bool) = Load[a] : &:r479_1, m475_6 +# 479| v479_3(void) = ConditionalBranch : r479_2 +#-----| False -> Block 12 +#-----| True -> Block 11 + +# 478| Block 7 +# 478| r478_12(glval) = VariableAddress[#temp478:9] : +# 478| r478_13(bool) = Constant[1] : +# 478| m478_14(bool) = Store[#temp478:9] : &:r478_12, r478_13 +#-----| Goto -> Block 6 + +# 478| Block 8 +# 478| r478_15(glval) = VariableAddress[b] : +# 478| r478_16(bool) = Load[b] : &:r478_15, m475_8 +# 478| v478_17(void) = ConditionalBranch : r478_16 +#-----| False -> Block 5 +#-----| True -> Block 7 + +# 479| Block 9 +# 479| r479_4(glval) = VariableAddress[#temp479:11] : +# 479| r479_5(bool) = Constant[0] : +# 479| m479_6(bool) = Store[#temp479:11] : &:r479_4, r479_5 +#-----| Goto -> Block 10 + +# 479| Block 10 +# 479| m479_7(bool) = Phi : from 9:m479_6, from 11:m479_15 +# 479| r479_8(glval) = VariableAddress[#temp479:11] : +# 479| r479_9(bool) = Load[#temp479:11] : &:r479_8, m479_7 +# 479| r479_10(bool) = LogicalNot : r479_9 +# 479| r479_11(glval) = VariableAddress[x] : +# 479| m479_12(bool) = Store[x] : &:r479_11, r479_10 +# 480| v480_1(void) = NoOp : +# 475| v475_9(void) = ReturnVoid : +# 475| v475_10(void) = AliasedUse : m475_3 +# 475| v475_11(void) = ExitFunction : + +# 479| Block 11 +# 479| r479_13(glval) = VariableAddress[#temp479:11] : +# 479| r479_14(bool) = Constant[1] : +# 479| m479_15(bool) = Store[#temp479:11] : &:r479_13, r479_14 +#-----| Goto -> Block 10 + +# 479| Block 12 +# 479| r479_16(glval) = VariableAddress[b] : +# 479| r479_17(bool) = Load[b] : &:r479_16, m475_8 +# 479| v479_18(void) = ConditionalBranch : r479_17 +#-----| False -> Block 9 +#-----| True -> Block 11 + +# 482| void Conditional(bool, int, int) +# 482| Block 0 +# 482| v482_1(void) = EnterFunction : +# 482| m482_2(unknown) = AliasedDefinition : +# 482| m482_3(unknown) = InitializeNonLocal : +# 482| m482_4(unknown) = Chi : total:m482_2, partial:m482_3 +# 482| r482_5(glval) = VariableAddress[a] : +# 482| m482_6(bool) = InitializeParameter[a] : &:r482_5 +# 482| r482_7(glval) = VariableAddress[x] : +# 482| m482_8(int) = InitializeParameter[x] : &:r482_7 +# 482| r482_9(glval) = VariableAddress[y] : +# 482| m482_10(int) = InitializeParameter[y] : &:r482_9 +# 483| r483_1(glval) = VariableAddress[z] : +# 483| r483_2(glval) = VariableAddress[a] : +# 483| r483_3(bool) = Load[a] : &:r483_2, m482_6 +# 483| v483_4(void) = ConditionalBranch : r483_3 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 483| Block 1 +# 483| m483_5(int) = Phi : from 2:m483_12, from 3:m483_16 +# 483| r483_6(glval) = VariableAddress[#temp483:13] : +# 483| r483_7(int) = Load[#temp483:13] : &:r483_6, m483_5 +# 483| m483_8(int) = Store[z] : &:r483_1, r483_7 +# 484| v484_1(void) = NoOp : +# 482| v482_11(void) = ReturnVoid : +# 482| v482_12(void) = AliasedUse : m482_3 +# 482| v482_13(void) = ExitFunction : + +# 483| Block 2 +# 483| r483_9(glval) = VariableAddress[x] : +# 483| r483_10(int) = Load[x] : &:r483_9, m482_8 +# 483| r483_11(glval) = VariableAddress[#temp483:13] : +# 483| m483_12(int) = Store[#temp483:13] : &:r483_11, r483_10 +#-----| Goto -> Block 1 + +# 483| Block 3 +# 483| r483_13(glval) = VariableAddress[y] : +# 483| r483_14(int) = Load[y] : &:r483_13, m482_10 +# 483| r483_15(glval) = VariableAddress[#temp483:13] : +# 483| m483_16(int) = Store[#temp483:13] : &:r483_15, r483_14 +#-----| Goto -> Block 1 + +# 486| void Conditional_LValue(bool) +# 486| Block 0 +# 486| v486_1(void) = EnterFunction : +# 486| m486_2(unknown) = AliasedDefinition : +# 486| m486_3(unknown) = InitializeNonLocal : +# 486| m486_4(unknown) = Chi : total:m486_2, partial:m486_3 +# 486| r486_5(glval) = VariableAddress[a] : +# 486| m486_6(bool) = InitializeParameter[a] : &:r486_5 +# 487| r487_1(glval) = VariableAddress[x] : +# 487| m487_2(int) = Uninitialized[x] : &:r487_1 +# 488| r488_1(glval) = VariableAddress[y] : +# 488| m488_2(int) = Uninitialized[y] : &:r488_1 +# 489| r489_1(int) = Constant[5] : +# 489| r489_2(glval) = VariableAddress[a] : +# 489| r489_3(bool) = Load[a] : &:r489_2, m486_6 +# 489| v489_4(void) = ConditionalBranch : r489_3 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 489| Block 1 +# 489| m489_5(glval) = Phi : from 2:m489_12, from 3:m489_15 +# 489| r489_6(glval) = VariableAddress[#temp489:6] : +# 489| r489_7(glval) = Load[#temp489:6] : &:r489_6, m489_5 +# 489| m489_8(int) = Store[?] : &:r489_7, r489_1 +# 489| m489_9(unknown) = Chi : total:m486_4, partial:m489_8 +# 490| v490_1(void) = NoOp : +# 486| v486_7(void) = ReturnVoid : +# 486| v486_8(void) = AliasedUse : ~m489_9 +# 486| v486_9(void) = ExitFunction : + +# 489| Block 2 +# 489| r489_10(glval) = VariableAddress[x] : +# 489| r489_11(glval) = VariableAddress[#temp489:6] : +# 489| m489_12(glval) = Store[#temp489:6] : &:r489_11, r489_10 +#-----| Goto -> Block 1 + +# 489| Block 3 +# 489| r489_13(glval) = VariableAddress[y] : +# 489| r489_14(glval) = VariableAddress[#temp489:6] : +# 489| m489_15(glval) = Store[#temp489:6] : &:r489_14, r489_13 +#-----| Goto -> Block 1 + +# 492| void Conditional_Void(bool) +# 492| Block 0 +# 492| v492_1(void) = EnterFunction : +# 492| m492_2(unknown) = AliasedDefinition : +# 492| m492_3(unknown) = InitializeNonLocal : +# 492| m492_4(unknown) = Chi : total:m492_2, partial:m492_3 +# 492| r492_5(glval) = VariableAddress[a] : +# 492| m492_6(bool) = InitializeParameter[a] : &:r492_5 +# 493| r493_1(glval) = VariableAddress[a] : +# 493| r493_2(bool) = Load[a] : &:r493_1, m492_6 +# 493| v493_3(void) = ConditionalBranch : r493_2 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 493| Block 1 +# 493| r493_4(glval) = FunctionAddress[VoidFunc] : +# 493| v493_5(void) = Call[VoidFunc] : func:r493_4 +# 493| m493_6(unknown) = ^CallSideEffect : ~m492_4 +# 493| m493_7(unknown) = Chi : total:m492_4, partial:m493_6 +#-----| Goto -> Block 3 + +# 493| Block 2 +# 493| r493_8(glval) = FunctionAddress[VoidFunc] : +# 493| v493_9(void) = Call[VoidFunc] : func:r493_8 +# 493| m493_10(unknown) = ^CallSideEffect : ~m492_4 +# 493| m493_11(unknown) = Chi : total:m492_4, partial:m493_10 +#-----| Goto -> Block 3 + +# 494| Block 3 +# 494| m494_1(unknown) = Phi : from 1:~m493_7, from 2:~m493_11 +# 494| v494_2(void) = NoOp : +# 492| v492_7(void) = ReturnVoid : +# 492| v492_8(void) = AliasedUse : ~m494_1 +# 492| v492_9(void) = ExitFunction : + +# 496| void Nullptr() +# 496| Block 0 +# 496| v496_1(void) = EnterFunction : +# 496| m496_2(unknown) = AliasedDefinition : +# 496| m496_3(unknown) = InitializeNonLocal : +# 496| m496_4(unknown) = Chi : total:m496_2, partial:m496_3 +# 497| r497_1(glval) = VariableAddress[p] : +# 497| r497_2(int *) = Constant[0] : +# 497| m497_3(int *) = Store[p] : &:r497_1, r497_2 +# 498| r498_1(glval) = VariableAddress[q] : +# 498| r498_2(int *) = Constant[0] : +# 498| m498_3(int *) = Store[q] : &:r498_1, r498_2 +# 499| r499_1(int *) = Constant[0] : +# 499| r499_2(glval) = VariableAddress[p] : +# 499| m499_3(int *) = Store[p] : &:r499_2, r499_1 +# 500| r500_1(int *) = Constant[0] : +# 500| r500_2(glval) = VariableAddress[q] : +# 500| m500_3(int *) = Store[q] : &:r500_2, r500_1 +# 501| v501_1(void) = NoOp : +# 496| v496_5(void) = ReturnVoid : +# 496| v496_6(void) = AliasedUse : m496_3 +# 496| v496_7(void) = ExitFunction : + +# 503| void InitList(int, float) +# 503| Block 0 +# 503| v503_1(void) = EnterFunction : +# 503| m503_2(unknown) = AliasedDefinition : +# 503| m503_3(unknown) = InitializeNonLocal : +# 503| m503_4(unknown) = Chi : total:m503_2, partial:m503_3 +# 503| r503_5(glval) = VariableAddress[x] : +# 503| m503_6(int) = InitializeParameter[x] : &:r503_5 +# 503| r503_7(glval) = VariableAddress[f] : +# 503| m503_8(float) = InitializeParameter[f] : &:r503_7 +# 504| r504_1(glval) = VariableAddress[pt1] : +# 504| m504_2(Point) = Uninitialized[pt1] : &:r504_1 +# 504| r504_3(glval) = FieldAddress[x] : r504_1 +# 504| r504_4(glval) = VariableAddress[x] : +# 504| r504_5(int) = Load[x] : &:r504_4, m503_6 +# 504| m504_6(int) = Store[?] : &:r504_3, r504_5 +# 504| m504_7(Point) = Chi : total:m504_2, partial:m504_6 +# 504| r504_8(glval) = FieldAddress[y] : r504_1 +# 504| r504_9(glval) = VariableAddress[f] : +# 504| r504_10(float) = Load[f] : &:r504_9, m503_8 +# 504| r504_11(int) = Convert : r504_10 +# 504| m504_12(int) = Store[?] : &:r504_8, r504_11 +# 504| m504_13(Point) = Chi : total:m504_7, partial:m504_12 +# 505| r505_1(glval) = VariableAddress[pt2] : +# 505| m505_2(Point) = Uninitialized[pt2] : &:r505_1 +# 505| r505_3(glval) = FieldAddress[x] : r505_1 +# 505| r505_4(glval) = VariableAddress[x] : +# 505| r505_5(int) = Load[x] : &:r505_4, m503_6 +# 505| m505_6(int) = Store[?] : &:r505_3, r505_5 +# 505| m505_7(Point) = Chi : total:m505_2, partial:m505_6 +# 505| r505_8(glval) = FieldAddress[y] : r505_1 +# 505| r505_9(int) = Constant[0] : +# 505| m505_10(int) = Store[?] : &:r505_8, r505_9 +# 505| m505_11(Point) = Chi : total:m505_7, partial:m505_10 +# 506| r506_1(glval) = VariableAddress[pt3] : +# 506| m506_2(Point) = Uninitialized[pt3] : &:r506_1 +# 506| r506_3(glval) = FieldAddress[x] : r506_1 +# 506| r506_4(int) = Constant[0] : +# 506| m506_5(int) = Store[?] : &:r506_3, r506_4 +# 506| m506_6(Point) = Chi : total:m506_2, partial:m506_5 +# 506| r506_7(glval) = FieldAddress[y] : r506_1 +# 506| r506_8(int) = Constant[0] : +# 506| m506_9(int) = Store[?] : &:r506_7, r506_8 +# 506| m506_10(Point) = Chi : total:m506_6, partial:m506_9 +# 508| r508_1(glval) = VariableAddress[x1] : +# 508| r508_2(int) = Constant[1] : +# 508| m508_3(int) = Store[x1] : &:r508_1, r508_2 +# 509| r509_1(glval) = VariableAddress[x2] : +# 509| r509_2(int) = Constant[0] : +# 509| m509_3(int) = Store[x2] : &:r509_1, r509_2 +# 510| v510_1(void) = NoOp : +# 503| v503_9(void) = ReturnVoid : +# 503| v503_10(void) = AliasedUse : m503_3 +# 503| v503_11(void) = ExitFunction : + +# 512| void NestedInitList(int, float) +# 512| Block 0 +# 512| v512_1(void) = EnterFunction : +# 512| m512_2(unknown) = AliasedDefinition : +# 512| m512_3(unknown) = InitializeNonLocal : +# 512| m512_4(unknown) = Chi : total:m512_2, partial:m512_3 +# 512| r512_5(glval) = VariableAddress[x] : +# 512| m512_6(int) = InitializeParameter[x] : &:r512_5 +# 512| r512_7(glval) = VariableAddress[f] : +# 512| m512_8(float) = InitializeParameter[f] : &:r512_7 +# 513| r513_1(glval) = VariableAddress[r1] : +# 513| m513_2(Rect) = Uninitialized[r1] : &:r513_1 +# 513| r513_3(glval) = FieldAddress[topLeft] : r513_1 +# 513| r513_4(Point) = Constant[0] : +# 513| m513_5(Point) = Store[?] : &:r513_3, r513_4 +# 513| m513_6(Rect) = Chi : total:m513_2, partial:m513_5 +# 513| r513_7(glval) = FieldAddress[bottomRight] : r513_1 +# 513| r513_8(Point) = Constant[0] : +# 513| m513_9(Point) = Store[?] : &:r513_7, r513_8 +# 513| m513_10(Rect) = Chi : total:m513_6, partial:m513_9 +# 514| r514_1(glval) = VariableAddress[r2] : +# 514| m514_2(Rect) = Uninitialized[r2] : &:r514_1 +# 514| r514_3(glval) = FieldAddress[topLeft] : r514_1 +# 514| r514_4(glval) = FieldAddress[x] : r514_3 +# 514| r514_5(glval) = VariableAddress[x] : +# 514| r514_6(int) = Load[x] : &:r514_5, m512_6 +# 514| m514_7(int) = Store[?] : &:r514_4, r514_6 +# 514| m514_8(Rect) = Chi : total:m514_2, partial:m514_7 +# 514| r514_9(glval) = FieldAddress[y] : r514_3 +# 514| r514_10(glval) = VariableAddress[f] : +# 514| r514_11(float) = Load[f] : &:r514_10, m512_8 +# 514| r514_12(int) = Convert : r514_11 +# 514| m514_13(int) = Store[?] : &:r514_9, r514_12 +# 514| m514_14(Rect) = Chi : total:m514_8, partial:m514_13 +# 514| r514_15(glval) = FieldAddress[bottomRight] : r514_1 +# 514| r514_16(Point) = Constant[0] : +# 514| m514_17(Point) = Store[?] : &:r514_15, r514_16 +# 514| m514_18(Rect) = Chi : total:m514_14, partial:m514_17 +# 515| r515_1(glval) = VariableAddress[r3] : +# 515| m515_2(Rect) = Uninitialized[r3] : &:r515_1 +# 515| r515_3(glval) = FieldAddress[topLeft] : r515_1 +# 515| r515_4(glval) = FieldAddress[x] : r515_3 +# 515| r515_5(glval) = VariableAddress[x] : +# 515| r515_6(int) = Load[x] : &:r515_5, m512_6 +# 515| m515_7(int) = Store[?] : &:r515_4, r515_6 +# 515| m515_8(Rect) = Chi : total:m515_2, partial:m515_7 +# 515| r515_9(glval) = FieldAddress[y] : r515_3 +# 515| r515_10(glval) = VariableAddress[f] : +# 515| r515_11(float) = Load[f] : &:r515_10, m512_8 +# 515| r515_12(int) = Convert : r515_11 +# 515| m515_13(int) = Store[?] : &:r515_9, r515_12 +# 515| m515_14(Rect) = Chi : total:m515_8, partial:m515_13 +# 515| r515_15(glval) = FieldAddress[bottomRight] : r515_1 +# 515| r515_16(glval) = FieldAddress[x] : r515_15 +# 515| r515_17(glval) = VariableAddress[x] : +# 515| r515_18(int) = Load[x] : &:r515_17, m512_6 +# 515| m515_19(int) = Store[?] : &:r515_16, r515_18 +# 515| m515_20(Rect) = Chi : total:m515_14, partial:m515_19 +# 515| r515_21(glval) = FieldAddress[y] : r515_15 +# 515| r515_22(glval) = VariableAddress[f] : +# 515| r515_23(float) = Load[f] : &:r515_22, m512_8 +# 515| r515_24(int) = Convert : r515_23 +# 515| m515_25(int) = Store[?] : &:r515_21, r515_24 +# 515| m515_26(Rect) = Chi : total:m515_20, partial:m515_25 +# 516| r516_1(glval) = VariableAddress[r4] : +# 516| m516_2(Rect) = Uninitialized[r4] : &:r516_1 +# 516| r516_3(glval) = FieldAddress[topLeft] : r516_1 +# 516| r516_4(glval) = FieldAddress[x] : r516_3 +# 516| r516_5(glval) = VariableAddress[x] : +# 516| r516_6(int) = Load[x] : &:r516_5, m512_6 +# 516| m516_7(int) = Store[?] : &:r516_4, r516_6 +# 516| m516_8(Rect) = Chi : total:m516_2, partial:m516_7 +# 516| r516_9(glval) = FieldAddress[y] : r516_3 +# 516| r516_10(int) = Constant[0] : +# 516| m516_11(int) = Store[?] : &:r516_9, r516_10 +# 516| m516_12(Rect) = Chi : total:m516_8, partial:m516_11 +# 516| r516_13(glval) = FieldAddress[bottomRight] : r516_1 +# 516| r516_14(glval) = FieldAddress[x] : r516_13 +# 516| r516_15(glval) = VariableAddress[x] : +# 516| r516_16(int) = Load[x] : &:r516_15, m512_6 +# 516| m516_17(int) = Store[?] : &:r516_14, r516_16 +# 516| m516_18(Rect) = Chi : total:m516_12, partial:m516_17 +# 516| r516_19(glval) = FieldAddress[y] : r516_13 +# 516| r516_20(int) = Constant[0] : +# 516| m516_21(int) = Store[?] : &:r516_19, r516_20 +# 516| m516_22(Rect) = Chi : total:m516_18, partial:m516_21 +# 517| v517_1(void) = NoOp : +# 512| v512_9(void) = ReturnVoid : +# 512| v512_10(void) = AliasedUse : m512_3 +# 512| v512_11(void) = ExitFunction : + +# 519| void ArrayInit(int, float) +# 519| Block 0 +# 519| v519_1(void) = EnterFunction : +# 519| m519_2(unknown) = AliasedDefinition : +# 519| m519_3(unknown) = InitializeNonLocal : +# 519| m519_4(unknown) = Chi : total:m519_2, partial:m519_3 +# 519| r519_5(glval) = VariableAddress[x] : +# 519| m519_6(int) = InitializeParameter[x] : &:r519_5 +# 519| r519_7(glval) = VariableAddress[f] : +# 519| m519_8(float) = InitializeParameter[f] : &:r519_7 +# 520| r520_1(glval) = VariableAddress[a1] : +# 520| m520_2(int[3]) = Uninitialized[a1] : &:r520_1 +# 520| r520_3(int) = Constant[0] : +# 520| r520_4(glval) = PointerAdd[4] : r520_1, r520_3 +# 520| r520_5(unknown[12]) = Constant[0] : +# 520| m520_6(unknown[12]) = Store[?] : &:r520_4, r520_5 +# 521| r521_1(glval) = VariableAddress[a2] : +# 521| m521_2(int[3]) = Uninitialized[a2] : &:r521_1 +# 521| r521_3(int) = Constant[0] : +# 521| r521_4(glval) = PointerAdd[4] : r521_1, r521_3 +# 521| r521_5(glval) = VariableAddress[x] : +# 521| r521_6(int) = Load[x] : &:r521_5, m519_6 +# 521| m521_7(int) = Store[?] : &:r521_4, r521_6 +# 521| m521_8(int[3]) = Chi : total:m521_2, partial:m521_7 +# 521| r521_9(int) = Constant[1] : +# 521| r521_10(glval) = PointerAdd[4] : r521_1, r521_9 +# 521| r521_11(glval) = VariableAddress[f] : +# 521| r521_12(float) = Load[f] : &:r521_11, m519_8 +# 521| r521_13(int) = Convert : r521_12 +# 521| m521_14(int) = Store[?] : &:r521_10, r521_13 +# 521| m521_15(int[3]) = Chi : total:m521_8, partial:m521_14 +# 521| r521_16(int) = Constant[2] : +# 521| r521_17(glval) = PointerAdd[4] : r521_1, r521_16 +# 521| r521_18(int) = Constant[0] : +# 521| m521_19(int) = Store[?] : &:r521_17, r521_18 +# 521| m521_20(int[3]) = Chi : total:m521_15, partial:m521_19 +# 522| r522_1(glval) = VariableAddress[a3] : +# 522| m522_2(int[3]) = Uninitialized[a3] : &:r522_1 +# 522| r522_3(int) = Constant[0] : +# 522| r522_4(glval) = PointerAdd[4] : r522_1, r522_3 +# 522| r522_5(glval) = VariableAddress[x] : +# 522| r522_6(int) = Load[x] : &:r522_5, m519_6 +# 522| m522_7(int) = Store[?] : &:r522_4, r522_6 +# 522| m522_8(int[3]) = Chi : total:m522_2, partial:m522_7 +# 522| r522_9(int) = Constant[1] : +# 522| r522_10(glval) = PointerAdd[4] : r522_1, r522_9 +# 522| r522_11(unknown[8]) = Constant[0] : +# 522| m522_12(unknown[8]) = Store[?] : &:r522_10, r522_11 +# 522| m522_13(int[3]) = Chi : total:m522_8, partial:m522_12 +# 523| v523_1(void) = NoOp : +# 519| v519_9(void) = ReturnVoid : +# 519| v519_10(void) = AliasedUse : m519_3 +# 519| v519_11(void) = ExitFunction : + +# 530| void UnionInit(int, float) +# 530| Block 0 +# 530| v530_1(void) = EnterFunction : +# 530| m530_2(unknown) = AliasedDefinition : +# 530| m530_3(unknown) = InitializeNonLocal : +# 530| m530_4(unknown) = Chi : total:m530_2, partial:m530_3 +# 530| r530_5(glval) = VariableAddress[x] : +# 530| m530_6(int) = InitializeParameter[x] : &:r530_5 +# 530| r530_7(glval) = VariableAddress[f] : +# 530| m530_8(float) = InitializeParameter[f] : &:r530_7 +# 531| r531_1(glval) = VariableAddress[u1] : +# 531| m531_2(U) = Uninitialized[u1] : &:r531_1 +# 531| r531_3(glval) = FieldAddress[d] : r531_1 +# 531| r531_4(glval) = VariableAddress[f] : +# 531| r531_5(float) = Load[f] : &:r531_4, m530_8 +# 531| r531_6(double) = Convert : r531_5 +# 531| m531_7(double) = Store[?] : &:r531_3, r531_6 +# 533| v533_1(void) = NoOp : +# 530| v530_9(void) = ReturnVoid : +# 530| v530_10(void) = AliasedUse : m530_3 +# 530| v530_11(void) = ExitFunction : + +# 535| void EarlyReturn(int, int) +# 535| Block 0 +# 535| v535_1(void) = EnterFunction : +# 535| m535_2(unknown) = AliasedDefinition : +# 535| m535_3(unknown) = InitializeNonLocal : +# 535| m535_4(unknown) = Chi : total:m535_2, partial:m535_3 +# 535| r535_5(glval) = VariableAddress[x] : +# 535| m535_6(int) = InitializeParameter[x] : &:r535_5 +# 535| r535_7(glval) = VariableAddress[y] : +# 535| m535_8(int) = InitializeParameter[y] : &:r535_7 +# 536| r536_1(glval) = VariableAddress[x] : +# 536| r536_2(int) = Load[x] : &:r536_1, m535_6 +# 536| r536_3(glval) = VariableAddress[y] : +# 536| r536_4(int) = Load[y] : &:r536_3, m535_8 +# 536| r536_5(bool) = CompareLT : r536_2, r536_4 +# 536| v536_6(void) = ConditionalBranch : r536_5 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 535| Block 1 +# 535| v535_9(void) = ReturnVoid : +# 535| v535_10(void) = AliasedUse : m535_3 +# 535| v535_11(void) = ExitFunction : + +# 537| Block 2 +# 537| v537_1(void) = NoOp : +#-----| Goto -> Block 1 + +# 540| Block 3 +# 540| r540_1(glval) = VariableAddress[x] : +# 540| r540_2(int) = Load[x] : &:r540_1, m535_6 +# 540| r540_3(glval) = VariableAddress[y] : +# 540| m540_4(int) = Store[y] : &:r540_3, r540_2 +# 541| v541_1(void) = NoOp : +#-----| Goto -> Block 1 + +# 543| int EarlyReturnValue(int, int) +# 543| Block 0 +# 543| v543_1(void) = EnterFunction : +# 543| m543_2(unknown) = AliasedDefinition : +# 543| m543_3(unknown) = InitializeNonLocal : +# 543| m543_4(unknown) = Chi : total:m543_2, partial:m543_3 +# 543| r543_5(glval) = VariableAddress[x] : +# 543| m543_6(int) = InitializeParameter[x] : &:r543_5 +# 543| r543_7(glval) = VariableAddress[y] : +# 543| m543_8(int) = InitializeParameter[y] : &:r543_7 +# 544| r544_1(glval) = VariableAddress[x] : +# 544| r544_2(int) = Load[x] : &:r544_1, m543_6 +# 544| r544_3(glval) = VariableAddress[y] : +# 544| r544_4(int) = Load[y] : &:r544_3, m543_8 +# 544| r544_5(bool) = CompareLT : r544_2, r544_4 +# 544| v544_6(void) = ConditionalBranch : r544_5 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 543| Block 1 +# 543| m543_9(int) = Phi : from 2:m545_4, from 3:m548_7 +# 543| r543_10(glval) = VariableAddress[#return] : +# 543| v543_11(void) = ReturnValue : &:r543_10, m543_9 +# 543| v543_12(void) = AliasedUse : m543_3 +# 543| v543_13(void) = ExitFunction : + +# 545| Block 2 +# 545| r545_1(glval) = VariableAddress[#return] : +# 545| r545_2(glval) = VariableAddress[x] : +# 545| r545_3(int) = Load[x] : &:r545_2, m543_6 +# 545| m545_4(int) = Store[#return] : &:r545_1, r545_3 +#-----| Goto -> Block 1 + +# 548| Block 3 +# 548| r548_1(glval) = VariableAddress[#return] : +# 548| r548_2(glval) = VariableAddress[x] : +# 548| r548_3(int) = Load[x] : &:r548_2, m543_6 +# 548| r548_4(glval) = VariableAddress[y] : +# 548| r548_5(int) = Load[y] : &:r548_4, m543_8 +# 548| r548_6(int) = Add : r548_3, r548_5 +# 548| m548_7(int) = Store[#return] : &:r548_1, r548_6 +#-----| Goto -> Block 1 + +# 551| int CallViaFuncPtr(int(*)(int)) +# 551| Block 0 +# 551| v551_1(void) = EnterFunction : +# 551| m551_2(unknown) = AliasedDefinition : +# 551| m551_3(unknown) = InitializeNonLocal : +# 551| m551_4(unknown) = Chi : total:m551_2, partial:m551_3 +# 551| r551_5(glval<..(*)(..)>) = VariableAddress[pfn] : +# 551| m551_6(..(*)(..)) = InitializeParameter[pfn] : &:r551_5 +# 552| r552_1(glval) = VariableAddress[#return] : +# 552| r552_2(glval<..(*)(..)>) = VariableAddress[pfn] : +# 552| r552_3(..(*)(..)) = Load[pfn] : &:r552_2, m551_6 +# 552| r552_4(int) = Constant[5] : +# 552| r552_5(int) = Call[?] : func:r552_3, 0:r552_4 +# 552| m552_6(unknown) = ^CallSideEffect : ~m551_4 +# 552| m552_7(unknown) = Chi : total:m551_4, partial:m552_6 +# 552| m552_8(int) = Store[#return] : &:r552_1, r552_5 +# 551| r551_7(glval) = VariableAddress[#return] : +# 551| v551_8(void) = ReturnValue : &:r551_7, m552_8 +# 551| v551_9(void) = AliasedUse : ~m552_7 +# 551| v551_10(void) = ExitFunction : + +# 560| int EnumSwitch(E) +# 560| Block 0 +# 560| v560_1(void) = EnterFunction : +# 560| m560_2(unknown) = AliasedDefinition : +# 560| m560_3(unknown) = InitializeNonLocal : +# 560| m560_4(unknown) = Chi : total:m560_2, partial:m560_3 +# 560| r560_5(glval) = VariableAddress[e] : +# 560| m560_6(E) = InitializeParameter[e] : &:r560_5 +# 561| r561_1(glval) = VariableAddress[e] : +# 561| r561_2(E) = Load[e] : &:r561_1, m560_6 +# 561| r561_3(int) = Convert : r561_2 +# 561| v561_4(void) = Switch : r561_3 +#-----| Case[0] -> Block 2 +#-----| Case[1] -> Block 3 +#-----| Default -> Block 4 + +# 560| Block 1 +# 560| m560_7(int) = Phi : from 2:m563_3, from 3:m565_3, from 4:m567_3 +# 560| r560_8(glval) = VariableAddress[#return] : +# 560| v560_9(void) = ReturnValue : &:r560_8, m560_7 +# 560| v560_10(void) = AliasedUse : m560_3 +# 560| v560_11(void) = ExitFunction : + +# 562| Block 2 +# 562| v562_1(void) = NoOp : +# 563| r563_1(glval) = VariableAddress[#return] : +# 563| r563_2(int) = Constant[0] : +# 563| m563_3(int) = Store[#return] : &:r563_1, r563_2 +#-----| Goto -> Block 1 + +# 564| Block 3 +# 564| v564_1(void) = NoOp : +# 565| r565_1(glval) = VariableAddress[#return] : +# 565| r565_2(int) = Constant[1] : +# 565| m565_3(int) = Store[#return] : &:r565_1, r565_2 +#-----| Goto -> Block 1 + +# 566| Block 4 +# 566| v566_1(void) = NoOp : +# 567| r567_1(glval) = VariableAddress[#return] : +# 567| r567_2(int) = Constant[-1] : +# 567| m567_3(int) = Store[#return] : &:r567_1, r567_2 +#-----| Goto -> Block 1 + +# 571| void InitArray() +# 571| Block 0 +# 571| v571_1(void) = EnterFunction : +# 571| m571_2(unknown) = AliasedDefinition : +# 571| m571_3(unknown) = InitializeNonLocal : +# 571| m571_4(unknown) = Chi : total:m571_2, partial:m571_3 +# 572| r572_1(glval) = VariableAddress[a_pad] : +# 572| r572_2(glval) = StringConstant[""] : +# 572| r572_3(char[32]) = Load[?] : &:r572_2, ~m571_3 +# 572| m572_4(char[32]) = Store[a_pad] : &:r572_1, r572_3 +# 573| r573_1(glval) = VariableAddress[a_nopad] : +# 573| r573_2(glval) = StringConstant["foo"] : +# 573| r573_3(char[4]) = Load[?] : &:r573_2, ~m571_3 +# 573| m573_4(char[4]) = Store[a_nopad] : &:r573_1, r573_3 +# 574| r574_1(glval) = VariableAddress[a_infer] : +# 574| r574_2(glval) = StringConstant["blah"] : +# 574| r574_3(char[5]) = Load[?] : &:r574_2, ~m571_3 +# 574| m574_4(char[5]) = Store[a_infer] : &:r574_1, r574_3 +# 575| r575_1(glval) = VariableAddress[b] : +# 575| m575_2(char[2]) = Uninitialized[b] : &:r575_1 +# 576| r576_1(glval) = VariableAddress[c] : +# 576| m576_2(char[2]) = Uninitialized[c] : &:r576_1 +# 576| r576_3(int) = Constant[0] : +# 576| r576_4(glval) = PointerAdd[1] : r576_1, r576_3 +# 576| r576_5(unknown[2]) = Constant[0] : +# 576| m576_6(unknown[2]) = Store[?] : &:r576_4, r576_5 +# 577| r577_1(glval) = VariableAddress[d] : +# 577| m577_2(char[2]) = Uninitialized[d] : &:r577_1 +# 577| r577_3(int) = Constant[0] : +# 577| r577_4(glval) = PointerAdd[1] : r577_1, r577_3 +# 577| r577_5(char) = Constant[0] : +# 577| m577_6(char) = Store[?] : &:r577_4, r577_5 +# 577| m577_7(char[2]) = Chi : total:m577_2, partial:m577_6 +# 577| r577_8(int) = Constant[1] : +# 577| r577_9(glval) = PointerAdd[1] : r577_1, r577_8 +# 577| r577_10(char) = Constant[0] : +# 577| m577_11(char) = Store[?] : &:r577_9, r577_10 +# 577| m577_12(char[2]) = Chi : total:m577_7, partial:m577_11 +# 578| r578_1(glval) = VariableAddress[e] : +# 578| m578_2(char[2]) = Uninitialized[e] : &:r578_1 +# 578| r578_3(int) = Constant[0] : +# 578| r578_4(glval) = PointerAdd[1] : r578_1, r578_3 +# 578| r578_5(char) = Constant[0] : +# 578| m578_6(char) = Store[?] : &:r578_4, r578_5 +# 578| m578_7(char[2]) = Chi : total:m578_2, partial:m578_6 +# 578| r578_8(int) = Constant[1] : +# 578| r578_9(glval) = PointerAdd[1] : r578_1, r578_8 +# 578| r578_10(char) = Constant[1] : +# 578| m578_11(char) = Store[?] : &:r578_9, r578_10 +# 578| m578_12(char[2]) = Chi : total:m578_7, partial:m578_11 +# 579| r579_1(glval) = VariableAddress[f] : +# 579| m579_2(char[3]) = Uninitialized[f] : &:r579_1 +# 579| r579_3(int) = Constant[0] : +# 579| r579_4(glval) = PointerAdd[1] : r579_1, r579_3 +# 579| r579_5(char) = Constant[0] : +# 579| m579_6(char) = Store[?] : &:r579_4, r579_5 +# 579| m579_7(char[3]) = Chi : total:m579_2, partial:m579_6 +# 579| r579_8(int) = Constant[1] : +# 579| r579_9(glval) = PointerAdd[1] : r579_1, r579_8 +# 579| r579_10(unknown[2]) = Constant[0] : +# 579| m579_11(unknown[2]) = Store[?] : &:r579_9, r579_10 +# 579| m579_12(char[3]) = Chi : total:m579_7, partial:m579_11 +# 580| v580_1(void) = NoOp : +# 571| v571_5(void) = ReturnVoid : +# 571| v571_6(void) = AliasedUse : m571_3 +# 571| v571_7(void) = ExitFunction : + +# 584| void VarArgs() +# 584| Block 0 +# 584| v584_1(void) = EnterFunction : +# 584| m584_2(unknown) = AliasedDefinition : +# 584| m584_3(unknown) = InitializeNonLocal : +# 584| m584_4(unknown) = Chi : total:m584_2, partial:m584_3 +# 585| r585_1(glval) = FunctionAddress[VarArgFunction] : +# 585| r585_2(glval) = StringConstant["%d %s"] : +# 585| r585_3(char *) = Convert : r585_2 +# 585| r585_4(int) = Constant[1] : +# 585| r585_5(glval) = StringConstant["string"] : +# 585| r585_6(char *) = Convert : r585_5 +# 585| v585_7(void) = Call[VarArgFunction] : func:r585_1, 0:r585_3, 1:r585_4, 2:r585_6 +# 585| m585_8(unknown) = ^CallSideEffect : ~m584_4 +# 585| m585_9(unknown) = Chi : total:m584_4, partial:m585_8 +# 585| v585_10(void) = ^BufferReadSideEffect[0] : &:r585_3, ~m584_3 +# 585| v585_11(void) = ^BufferReadSideEffect[2] : &:r585_6, ~m584_3 +# 585| m585_12(unknown) = ^BufferMayWriteSideEffect[2] : &:r585_6 +# 585| m585_13(unknown) = Chi : total:m585_9, partial:m585_12 +# 586| v586_1(void) = NoOp : +# 584| v584_5(void) = ReturnVoid : +# 584| v584_6(void) = AliasedUse : ~m585_13 +# 584| v584_7(void) = ExitFunction : + +# 590| void SetFuncPtr() +# 590| Block 0 +# 590| v590_1(void) = EnterFunction : +# 590| m590_2(unknown) = AliasedDefinition : +# 590| m590_3(unknown) = InitializeNonLocal : +# 590| m590_4(unknown) = Chi : total:m590_2, partial:m590_3 +# 591| r591_1(glval<..(*)(..)>) = VariableAddress[pfn] : +# 591| r591_2(..(*)(..)) = FunctionAddress[FuncPtrTarget] : +# 591| m591_3(..(*)(..)) = Store[pfn] : &:r591_1, r591_2 +# 592| r592_1(glval<..()(..)>) = FunctionAddress[FuncPtrTarget] : +# 592| r592_2(..(*)(..)) = CopyValue : r592_1 +# 592| r592_3(glval<..(*)(..)>) = VariableAddress[pfn] : +# 592| m592_4(..(*)(..)) = Store[pfn] : &:r592_3, r592_2 +# 593| r593_1(..(*)(..)) = FunctionAddress[FuncPtrTarget] : +# 593| r593_2(..(*)(..)) = CopyValue : r593_1 +# 593| r593_3(glval<..(*)(..)>) = VariableAddress[pfn] : +# 593| m593_4(..(*)(..)) = Store[pfn] : &:r593_3, r593_2 +# 594| r594_1(glval<..()(..)>) = FunctionAddress[FuncPtrTarget] : +# 594| r594_2(..(*)(..)) = CopyValue : r594_1 +# 594| r594_3(..(*)(..)) = CopyValue : r594_2 +# 594| r594_4(..(*)(..)) = CopyValue : r594_3 +# 594| r594_5(..(*)(..)) = CopyValue : r594_4 +# 594| r594_6(glval<..(*)(..)>) = VariableAddress[pfn] : +# 594| m594_7(..(*)(..)) = Store[pfn] : &:r594_6, r594_5 +# 595| v595_1(void) = NoOp : +# 590| v590_5(void) = ReturnVoid : +# 590| v590_6(void) = AliasedUse : m590_3 +# 590| v590_7(void) = ExitFunction : + +# 615| void DeclareObject() +# 615| Block 0 +# 615| v615_1(void) = EnterFunction : +# 615| m615_2(unknown) = AliasedDefinition : +# 615| m615_3(unknown) = InitializeNonLocal : +# 615| m615_4(unknown) = Chi : total:m615_2, partial:m615_3 +# 616| r616_1(glval) = VariableAddress[s1] : +# 616| m616_2(String) = Uninitialized[s1] : &:r616_1 +# 616| r616_3(glval) = FunctionAddress[String] : +# 616| v616_4(void) = Call[String] : func:r616_3, this:r616_1 +# 616| m616_5(unknown) = ^CallSideEffect : ~m615_4 +# 616| m616_6(unknown) = Chi : total:m615_4, partial:m616_5 +# 616| m616_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r616_1 +# 616| m616_8(String) = Chi : total:m616_2, partial:m616_7 +# 617| r617_1(glval) = VariableAddress[s2] : +# 617| m617_2(String) = Uninitialized[s2] : &:r617_1 +# 617| r617_3(glval) = FunctionAddress[String] : +# 617| r617_4(glval) = StringConstant["hello"] : +# 617| r617_5(char *) = Convert : r617_4 +# 617| v617_6(void) = Call[String] : func:r617_3, this:r617_1, 0:r617_5 +# 617| m617_7(unknown) = ^CallSideEffect : ~m616_6 +# 617| m617_8(unknown) = Chi : total:m616_6, partial:m617_7 +# 617| v617_9(void) = ^BufferReadSideEffect[0] : &:r617_5, ~m615_3 +# 617| m617_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r617_1 +# 617| m617_11(String) = Chi : total:m617_2, partial:m617_10 +# 618| r618_1(glval) = VariableAddress[s3] : +# 618| r618_2(glval) = FunctionAddress[ReturnObject] : +# 618| r618_3(String) = Call[ReturnObject] : func:r618_2 +# 618| m618_4(unknown) = ^CallSideEffect : ~m617_8 +# 618| m618_5(unknown) = Chi : total:m617_8, partial:m618_4 +# 618| m618_6(String) = Store[s3] : &:r618_1, r618_3 +# 619| r619_1(glval) = VariableAddress[s4] : +# 619| m619_2(String) = Uninitialized[s4] : &:r619_1 +# 619| r619_3(glval) = FunctionAddress[String] : +# 619| r619_4(glval) = StringConstant["test"] : +# 619| r619_5(char *) = Convert : r619_4 +# 619| v619_6(void) = Call[String] : func:r619_3, this:r619_1, 0:r619_5 +# 619| m619_7(unknown) = ^CallSideEffect : ~m618_5 +# 619| m619_8(unknown) = Chi : total:m618_5, partial:m619_7 +# 619| v619_9(void) = ^BufferReadSideEffect[0] : &:r619_5, ~m615_3 +# 619| m619_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r619_1 +# 619| m619_11(String) = Chi : total:m619_2, partial:m619_10 +# 620| v620_1(void) = NoOp : +# 615| v615_5(void) = ReturnVoid : +# 615| v615_6(void) = AliasedUse : ~m619_8 +# 615| v615_7(void) = ExitFunction : + +# 622| void CallMethods(String&, String*, String) +# 622| Block 0 +# 622| v622_1(void) = EnterFunction : +# 622| m622_2(unknown) = AliasedDefinition : +# 622| m622_3(unknown) = InitializeNonLocal : +# 622| m622_4(unknown) = Chi : total:m622_2, partial:m622_3 +# 622| r622_5(glval) = VariableAddress[r] : +# 622| m622_6(String &) = InitializeParameter[r] : &:r622_5 +# 622| r622_7(String &) = Load[r] : &:r622_5, m622_6 +# 622| m622_8(unknown) = InitializeIndirection[r] : &:r622_7 +# 622| r622_9(glval) = VariableAddress[p] : +# 622| m622_10(String *) = InitializeParameter[p] : &:r622_9 +# 622| r622_11(String *) = Load[p] : &:r622_9, m622_10 +# 622| m622_12(unknown) = InitializeIndirection[p] : &:r622_11 +# 622| r622_13(glval) = VariableAddress[s] : +# 622| m622_14(String) = InitializeParameter[s] : &:r622_13 +# 623| r623_1(glval) = VariableAddress[r] : +# 623| r623_2(String &) = Load[r] : &:r623_1, m622_6 +# 623| r623_3(glval) = CopyValue : r623_2 +# 623| r623_4(glval) = Convert : r623_3 +# 623| r623_5(glval) = FunctionAddress[c_str] : +# 623| r623_6(char *) = Call[c_str] : func:r623_5, this:r623_4 +# 623| m623_7(unknown) = ^CallSideEffect : ~m622_4 +# 623| m623_8(unknown) = Chi : total:m622_4, partial:m623_7 +# 623| v623_9(void) = ^IndirectReadSideEffect[-1] : &:r623_4, ~m622_8 +# 624| r624_1(glval) = VariableAddress[p] : +# 624| r624_2(String *) = Load[p] : &:r624_1, m622_10 +# 624| r624_3(String *) = Convert : r624_2 +# 624| r624_4(glval) = FunctionAddress[c_str] : +# 624| r624_5(char *) = Call[c_str] : func:r624_4, this:r624_3 +# 624| m624_6(unknown) = ^CallSideEffect : ~m623_8 +# 624| m624_7(unknown) = Chi : total:m623_8, partial:m624_6 +# 624| v624_8(void) = ^IndirectReadSideEffect[-1] : &:r624_3, ~m622_12 +# 625| r625_1(glval) = VariableAddress[s] : +# 625| r625_2(glval) = Convert : r625_1 +# 625| r625_3(glval) = FunctionAddress[c_str] : +# 625| r625_4(char *) = Call[c_str] : func:r625_3, this:r625_2 +# 625| m625_5(unknown) = ^CallSideEffect : ~m624_7 +# 625| m625_6(unknown) = Chi : total:m624_7, partial:m625_5 +# 625| v625_7(void) = ^IndirectReadSideEffect[-1] : &:r625_2, m622_14 +# 626| v626_1(void) = NoOp : +# 622| v622_15(void) = ReturnIndirection[r] : &:r622_7, m622_8 +# 622| v622_16(void) = ReturnIndirection[p] : &:r622_11, m622_12 +# 622| v622_17(void) = ReturnVoid : +# 622| v622_18(void) = AliasedUse : ~m625_6 +# 622| v622_19(void) = ExitFunction : + +# 628| void C::~C() +# 628| Block 0 +# 628| v628_1(void) = EnterFunction : +# 628| m628_2(unknown) = AliasedDefinition : +# 628| m628_3(unknown) = InitializeNonLocal : +# 628| m628_4(unknown) = Chi : total:m628_2, partial:m628_3 +# 628| r628_5(glval) = VariableAddress[#this] : +# 628| m628_6(glval) = InitializeParameter[#this] : &:r628_5 +# 628| r628_7(glval) = Load[#this] : &:r628_5, m628_6 +# 628| m628_8(C) = InitializeIndirection[#this] : &:r628_7 +#-----| v0_1(void) = NoOp : +# 628| r628_9(glval) = FieldAddress[m_f] : m628_6 +# 628| r628_10(glval) = FunctionAddress[~String] : +# 628| v628_11(void) = Call[~String] : func:r628_10, this:r628_9 +# 628| m628_12(unknown) = ^CallSideEffect : ~m628_4 +# 628| m628_13(unknown) = Chi : total:m628_4, partial:m628_12 +# 628| r628_14(glval) = FieldAddress[m_b] : m628_6 +# 628| r628_15(glval) = FunctionAddress[~String] : +# 628| v628_16(void) = Call[~String] : func:r628_15, this:r628_14 +# 628| m628_17(unknown) = ^CallSideEffect : ~m628_13 +# 628| m628_18(unknown) = Chi : total:m628_13, partial:m628_17 +# 628| v628_19(void) = ReturnIndirection[#this] : &:r628_7, m628_8 +# 628| v628_20(void) = ReturnVoid : +# 628| v628_21(void) = AliasedUse : ~m628_18 +# 628| v628_22(void) = ExitFunction : + +# 630| int C::StaticMemberFunction(int) +# 630| Block 0 +# 630| v630_1(void) = EnterFunction : +# 630| m630_2(unknown) = AliasedDefinition : +# 630| m630_3(unknown) = InitializeNonLocal : +# 630| m630_4(unknown) = Chi : total:m630_2, partial:m630_3 +# 630| r630_5(glval) = VariableAddress[x] : +# 630| m630_6(int) = InitializeParameter[x] : &:r630_5 +# 631| r631_1(glval) = VariableAddress[#return] : +# 631| r631_2(glval) = VariableAddress[x] : +# 631| r631_3(int) = Load[x] : &:r631_2, m630_6 +# 631| m631_4(int) = Store[#return] : &:r631_1, r631_3 +# 630| r630_7(glval) = VariableAddress[#return] : +# 630| v630_8(void) = ReturnValue : &:r630_7, m631_4 +# 630| v630_9(void) = AliasedUse : m630_3 +# 630| v630_10(void) = ExitFunction : + +# 634| int C::InstanceMemberFunction(int) +# 634| Block 0 +# 634| v634_1(void) = EnterFunction : +# 634| m634_2(unknown) = AliasedDefinition : +# 634| m634_3(unknown) = InitializeNonLocal : +# 634| m634_4(unknown) = Chi : total:m634_2, partial:m634_3 +# 634| r634_5(glval) = VariableAddress[#this] : +# 634| m634_6(glval) = InitializeParameter[#this] : &:r634_5 +# 634| r634_7(glval) = Load[#this] : &:r634_5, m634_6 +# 634| m634_8(C) = InitializeIndirection[#this] : &:r634_7 +# 634| r634_9(glval) = VariableAddress[x] : +# 634| m634_10(int) = InitializeParameter[x] : &:r634_9 +# 635| r635_1(glval) = VariableAddress[#return] : +# 635| r635_2(glval) = VariableAddress[x] : +# 635| r635_3(int) = Load[x] : &:r635_2, m634_10 +# 635| m635_4(int) = Store[#return] : &:r635_1, r635_3 +# 634| v634_11(void) = ReturnIndirection[#this] : &:r634_7, m634_8 +# 634| r634_12(glval) = VariableAddress[#return] : +# 634| v634_13(void) = ReturnValue : &:r634_12, m635_4 +# 634| v634_14(void) = AliasedUse : m634_3 +# 634| v634_15(void) = ExitFunction : + +# 638| int C::VirtualMemberFunction(int) +# 638| Block 0 +# 638| v638_1(void) = EnterFunction : +# 638| m638_2(unknown) = AliasedDefinition : +# 638| m638_3(unknown) = InitializeNonLocal : +# 638| m638_4(unknown) = Chi : total:m638_2, partial:m638_3 +# 638| r638_5(glval) = VariableAddress[#this] : +# 638| m638_6(glval) = InitializeParameter[#this] : &:r638_5 +# 638| r638_7(glval) = Load[#this] : &:r638_5, m638_6 +# 638| m638_8(C) = InitializeIndirection[#this] : &:r638_7 +# 638| r638_9(glval) = VariableAddress[x] : +# 638| m638_10(int) = InitializeParameter[x] : &:r638_9 +# 639| r639_1(glval) = VariableAddress[#return] : +# 639| r639_2(glval) = VariableAddress[x] : +# 639| r639_3(int) = Load[x] : &:r639_2, m638_10 +# 639| m639_4(int) = Store[#return] : &:r639_1, r639_3 +# 638| v638_11(void) = ReturnIndirection[#this] : &:r638_7, m638_8 +# 638| r638_12(glval) = VariableAddress[#return] : +# 638| v638_13(void) = ReturnValue : &:r638_12, m639_4 +# 638| v638_14(void) = AliasedUse : m638_3 +# 638| v638_15(void) = ExitFunction : + +# 642| void C::FieldAccess() +# 642| Block 0 +# 642| v642_1(void) = EnterFunction : +# 642| m642_2(unknown) = AliasedDefinition : +# 642| m642_3(unknown) = InitializeNonLocal : +# 642| m642_4(unknown) = Chi : total:m642_2, partial:m642_3 +# 642| r642_5(glval) = VariableAddress[#this] : +# 642| m642_6(glval) = InitializeParameter[#this] : &:r642_5 +# 642| r642_7(glval) = Load[#this] : &:r642_5, m642_6 +# 642| m642_8(C) = InitializeIndirection[#this] : &:r642_7 +# 643| r643_1(int) = Constant[0] : +# 643| r643_2(glval) = VariableAddress[#this] : +# 643| r643_3(C *) = Load[#this] : &:r643_2, m642_6 +# 643| r643_4(glval) = FieldAddress[m_a] : r643_3 +# 643| m643_5(int) = Store[?] : &:r643_4, r643_1 +# 643| m643_6(unknown) = Chi : total:m642_8, partial:m643_5 +# 644| r644_1(int) = Constant[1] : +# 644| r644_2(glval) = VariableAddress[#this] : +# 644| r644_3(C *) = Load[#this] : &:r644_2, m642_6 +# 644| r644_4(glval) = CopyValue : r644_3 +# 644| r644_5(glval) = FieldAddress[m_a] : r644_4 +# 644| m644_6(int) = Store[?] : &:r644_5, r644_1 +# 644| m644_7(unknown) = Chi : total:m643_6, partial:m644_6 +# 645| r645_1(int) = Constant[2] : +# 645| r645_2(glval) = VariableAddress[#this] : +# 645| r645_3(C *) = Load[#this] : &:r645_2, m642_6 +# 645| r645_4(glval) = FieldAddress[m_a] : r645_3 +# 645| m645_5(int) = Store[?] : &:r645_4, r645_1 +# 645| m645_6(unknown) = Chi : total:m644_7, partial:m645_5 +# 646| r646_1(glval) = VariableAddress[x] : +# 646| m646_2(int) = Uninitialized[x] : &:r646_1 +# 647| r647_1(glval) = VariableAddress[#this] : +# 647| r647_2(C *) = Load[#this] : &:r647_1, m642_6 +# 647| r647_3(glval) = FieldAddress[m_a] : r647_2 +# 647| r647_4(int) = Load[?] : &:r647_3, m645_5 +# 647| r647_5(glval) = VariableAddress[x] : +# 647| m647_6(int) = Store[x] : &:r647_5, r647_4 +# 648| r648_1(glval) = VariableAddress[#this] : +# 648| r648_2(C *) = Load[#this] : &:r648_1, m642_6 +# 648| r648_3(glval) = CopyValue : r648_2 +# 648| r648_4(glval) = FieldAddress[m_a] : r648_3 +# 648| r648_5(int) = Load[?] : &:r648_4, m645_5 +# 648| r648_6(glval) = VariableAddress[x] : +# 648| m648_7(int) = Store[x] : &:r648_6, r648_5 +# 649| r649_1(glval) = VariableAddress[#this] : +# 649| r649_2(C *) = Load[#this] : &:r649_1, m642_6 +# 649| r649_3(glval) = FieldAddress[m_a] : r649_2 +# 649| r649_4(int) = Load[?] : &:r649_3, m645_5 +# 649| r649_5(glval) = VariableAddress[x] : +# 649| m649_6(int) = Store[x] : &:r649_5, r649_4 +# 650| v650_1(void) = NoOp : +# 642| v642_9(void) = ReturnIndirection[#this] : &:r642_7, m645_6 +# 642| v642_10(void) = ReturnVoid : +# 642| v642_11(void) = AliasedUse : m642_3 +# 642| v642_12(void) = ExitFunction : + +# 652| void C::MethodCalls() +# 652| Block 0 +# 652| v652_1(void) = EnterFunction : +# 652| m652_2(unknown) = AliasedDefinition : +# 652| m652_3(unknown) = InitializeNonLocal : +# 652| m652_4(unknown) = Chi : total:m652_2, partial:m652_3 +# 652| r652_5(glval) = VariableAddress[#this] : +# 652| m652_6(glval) = InitializeParameter[#this] : &:r652_5 +# 652| r652_7(glval) = Load[#this] : &:r652_5, m652_6 +# 652| m652_8(C) = InitializeIndirection[#this] : &:r652_7 +# 653| r653_1(glval) = VariableAddress[#this] : +# 653| r653_2(C *) = Load[#this] : &:r653_1, m652_6 +# 653| r653_3(glval) = FunctionAddress[InstanceMemberFunction] : +# 653| r653_4(int) = Constant[0] : +# 653| r653_5(int) = Call[InstanceMemberFunction] : func:r653_3, this:r653_2, 0:r653_4 +# 653| m653_6(unknown) = ^CallSideEffect : ~m652_4 +# 653| m653_7(unknown) = Chi : total:m652_4, partial:m653_6 +# 653| v653_8(void) = ^IndirectReadSideEffect[-1] : &:r653_2, ~m652_8 +# 653| m653_9(C) = ^IndirectMayWriteSideEffect[-1] : &:r653_2 +# 653| m653_10(unknown) = Chi : total:m652_8, partial:m653_9 +# 654| r654_1(glval) = VariableAddress[#this] : +# 654| r654_2(C *) = Load[#this] : &:r654_1, m652_6 +# 654| r654_3(glval) = CopyValue : r654_2 +# 654| r654_4(glval) = FunctionAddress[InstanceMemberFunction] : +# 654| r654_5(int) = Constant[1] : +# 654| r654_6(int) = Call[InstanceMemberFunction] : func:r654_4, this:r654_3, 0:r654_5 +# 654| m654_7(unknown) = ^CallSideEffect : ~m653_7 +# 654| m654_8(unknown) = Chi : total:m653_7, partial:m654_7 +# 654| v654_9(void) = ^IndirectReadSideEffect[-1] : &:r654_3, ~m653_10 +# 654| m654_10(C) = ^IndirectMayWriteSideEffect[-1] : &:r654_3 +# 654| m654_11(unknown) = Chi : total:m653_10, partial:m654_10 +# 655| r655_1(glval) = VariableAddress[#this] : +# 655| r655_2(C *) = Load[#this] : &:r655_1, m652_6 +# 655| r655_3(glval) = FunctionAddress[InstanceMemberFunction] : +# 655| r655_4(int) = Constant[2] : +# 655| r655_5(int) = Call[InstanceMemberFunction] : func:r655_3, this:r655_2, 0:r655_4 +# 655| m655_6(unknown) = ^CallSideEffect : ~m654_8 +# 655| m655_7(unknown) = Chi : total:m654_8, partial:m655_6 +# 655| v655_8(void) = ^IndirectReadSideEffect[-1] : &:r655_2, ~m654_11 +# 655| m655_9(C) = ^IndirectMayWriteSideEffect[-1] : &:r655_2 +# 655| m655_10(unknown) = Chi : total:m654_11, partial:m655_9 +# 656| v656_1(void) = NoOp : +# 652| v652_9(void) = ReturnIndirection[#this] : &:r652_7, m655_10 +# 652| v652_10(void) = ReturnVoid : +# 652| v652_11(void) = AliasedUse : ~m655_7 +# 652| v652_12(void) = ExitFunction : + +# 658| void C::C() +# 658| Block 0 +# 658| v658_1(void) = EnterFunction : +# 658| m658_2(unknown) = AliasedDefinition : +# 658| m658_3(unknown) = InitializeNonLocal : +# 658| m658_4(unknown) = Chi : total:m658_2, partial:m658_3 +# 658| r658_5(glval) = VariableAddress[#this] : +# 658| m658_6(glval) = InitializeParameter[#this] : &:r658_5 +# 658| r658_7(glval) = Load[#this] : &:r658_5, m658_6 +# 658| m658_8(C) = InitializeIndirection[#this] : &:r658_7 +# 659| r659_1(glval) = FieldAddress[m_a] : m658_6 +# 659| r659_2(int) = Constant[1] : +# 659| m659_3(int) = Store[?] : &:r659_1, r659_2 +# 659| m659_4(unknown) = Chi : total:m658_8, partial:m659_3 +# 663| r663_1(glval) = FieldAddress[m_b] : m658_6 +# 663| r663_2(glval) = FunctionAddress[String] : +# 663| v663_3(void) = Call[String] : func:r663_2, this:r663_1 +# 663| m663_4(unknown) = ^CallSideEffect : ~m658_4 +# 663| m663_5(unknown) = Chi : total:m658_4, partial:m663_4 +# 663| m663_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r663_1 +# 663| m663_7(unknown) = Chi : total:m659_4, partial:m663_6 +# 660| r660_1(glval) = FieldAddress[m_c] : m658_6 +# 660| r660_2(char) = Constant[3] : +# 660| m660_3(char) = Store[?] : &:r660_1, r660_2 +# 660| m660_4(unknown) = Chi : total:m663_7, partial:m660_3 +# 661| r661_1(glval) = FieldAddress[m_e] : m658_6 +# 661| r661_2(void *) = Constant[0] : +# 661| m661_3(void *) = Store[?] : &:r661_1, r661_2 +# 661| m661_4(unknown) = Chi : total:m660_4, partial:m661_3 +# 662| r662_1(glval) = FieldAddress[m_f] : m658_6 +# 662| r662_2(glval) = FunctionAddress[String] : +# 662| r662_3(glval) = StringConstant["test"] : +# 662| r662_4(char *) = Convert : r662_3 +# 662| v662_5(void) = Call[String] : func:r662_2, this:r662_1, 0:r662_4 +# 662| m662_6(unknown) = ^CallSideEffect : ~m663_5 +# 662| m662_7(unknown) = Chi : total:m663_5, partial:m662_6 +# 662| v662_8(void) = ^BufferReadSideEffect[0] : &:r662_4, ~m658_3 +# 662| m662_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r662_1 +# 662| m662_10(unknown) = Chi : total:m661_4, partial:m662_9 +# 664| v664_1(void) = NoOp : +# 658| v658_9(void) = ReturnIndirection[#this] : &:r658_7, m662_10 +# 658| v658_10(void) = ReturnVoid : +# 658| v658_11(void) = AliasedUse : ~m662_7 +# 658| v658_12(void) = ExitFunction : + +# 675| int DerefReference(int&) +# 675| Block 0 +# 675| v675_1(void) = EnterFunction : +# 675| m675_2(unknown) = AliasedDefinition : +# 675| m675_3(unknown) = InitializeNonLocal : +# 675| m675_4(unknown) = Chi : total:m675_2, partial:m675_3 +# 675| r675_5(glval) = VariableAddress[r] : +# 675| m675_6(int &) = InitializeParameter[r] : &:r675_5 +# 675| r675_7(int &) = Load[r] : &:r675_5, m675_6 +# 675| m675_8(unknown) = InitializeIndirection[r] : &:r675_7 +# 676| r676_1(glval) = VariableAddress[#return] : +# 676| r676_2(glval) = VariableAddress[r] : +# 676| r676_3(int &) = Load[r] : &:r676_2, m675_6 +# 676| r676_4(int) = Load[?] : &:r676_3, ~m675_8 +# 676| m676_5(int) = Store[#return] : &:r676_1, r676_4 +# 675| v675_9(void) = ReturnIndirection[r] : &:r675_7, m675_8 +# 675| r675_10(glval) = VariableAddress[#return] : +# 675| v675_11(void) = ReturnValue : &:r675_10, m676_5 +# 675| v675_12(void) = AliasedUse : m675_3 +# 675| v675_13(void) = ExitFunction : + +# 679| int& TakeReference() +# 679| Block 0 +# 679| v679_1(void) = EnterFunction : +# 679| m679_2(unknown) = AliasedDefinition : +# 679| m679_3(unknown) = InitializeNonLocal : +# 679| m679_4(unknown) = Chi : total:m679_2, partial:m679_3 +# 680| r680_1(glval) = VariableAddress[#return] : +# 680| r680_2(glval) = VariableAddress[g] : +# 680| r680_3(int &) = CopyValue : r680_2 +# 680| m680_4(int &) = Store[#return] : &:r680_1, r680_3 +# 679| r679_5(glval) = VariableAddress[#return] : +# 679| v679_6(void) = ReturnValue : &:r679_5, m680_4 +# 679| v679_7(void) = AliasedUse : m679_3 +# 679| v679_8(void) = ExitFunction : + +# 685| void InitReference(int) +# 685| Block 0 +# 685| v685_1(void) = EnterFunction : +# 685| m685_2(unknown) = AliasedDefinition : +# 685| m685_3(unknown) = InitializeNonLocal : +# 685| m685_4(unknown) = Chi : total:m685_2, partial:m685_3 +# 685| r685_5(glval) = VariableAddress[x] : +# 685| m685_6(int) = InitializeParameter[x] : &:r685_5 +# 686| r686_1(glval) = VariableAddress[r] : +# 686| r686_2(glval) = VariableAddress[x] : +# 686| r686_3(int &) = CopyValue : r686_2 +# 686| m686_4(int &) = Store[r] : &:r686_1, r686_3 +# 687| r687_1(glval) = VariableAddress[r2] : +# 687| r687_2(glval) = VariableAddress[r] : +# 687| r687_3(int &) = Load[r] : &:r687_2, m686_4 +# 687| r687_4(glval) = CopyValue : r687_3 +# 687| r687_5(int &) = CopyValue : r687_4 +# 687| m687_6(int &) = Store[r2] : &:r687_1, r687_5 +# 688| r688_1(glval) = VariableAddress[r3] : +# 688| r688_2(glval) = FunctionAddress[ReturnReference] : +# 688| r688_3(String &) = Call[ReturnReference] : func:r688_2 +# 688| m688_4(unknown) = ^CallSideEffect : ~m685_4 +# 688| m688_5(unknown) = Chi : total:m685_4, partial:m688_4 +# 688| r688_6(glval) = CopyValue : r688_3 +# 688| r688_7(glval) = Convert : r688_6 +# 688| r688_8(String &) = CopyValue : r688_7 +# 688| m688_9(String &) = Store[r3] : &:r688_1, r688_8 +# 689| v689_1(void) = NoOp : +# 685| v685_7(void) = ReturnVoid : +# 685| v685_8(void) = AliasedUse : ~m688_5 +# 685| v685_9(void) = ExitFunction : + +# 691| void ArrayReferences() +# 691| Block 0 +# 691| v691_1(void) = EnterFunction : +# 691| m691_2(unknown) = AliasedDefinition : +# 691| m691_3(unknown) = InitializeNonLocal : +# 691| m691_4(unknown) = Chi : total:m691_2, partial:m691_3 +# 692| r692_1(glval) = VariableAddress[a] : +# 692| m692_2(int[10]) = Uninitialized[a] : &:r692_1 +# 693| r693_1(glval) = VariableAddress[ra] : +# 693| r693_2(glval) = VariableAddress[a] : +# 693| r693_3(int(&)[10]) = CopyValue : r693_2 +# 693| m693_4(int(&)[10]) = Store[ra] : &:r693_1, r693_3 +# 694| r694_1(glval) = VariableAddress[x] : +# 694| r694_2(glval) = VariableAddress[ra] : +# 694| r694_3(int(&)[10]) = Load[ra] : &:r694_2, m693_4 +# 694| r694_4(glval) = CopyValue : r694_3 +# 694| r694_5(int *) = Convert : r694_4 +# 694| r694_6(int) = Constant[5] : +# 694| r694_7(glval) = PointerAdd[4] : r694_5, r694_6 +# 694| r694_8(int) = Load[?] : &:r694_7, ~m692_2 +# 694| m694_9(int) = Store[x] : &:r694_1, r694_8 +# 695| v695_1(void) = NoOp : +# 691| v691_5(void) = ReturnVoid : +# 691| v691_6(void) = AliasedUse : m691_3 +# 691| v691_7(void) = ExitFunction : + +# 697| void FunctionReferences() +# 697| Block 0 +# 697| v697_1(void) = EnterFunction : +# 697| m697_2(unknown) = AliasedDefinition : +# 697| m697_3(unknown) = InitializeNonLocal : +# 697| m697_4(unknown) = Chi : total:m697_2, partial:m697_3 +# 698| r698_1(glval<..(&)(..)>) = VariableAddress[rfn] : +# 698| r698_2(glval<..()(..)>) = FunctionAddress[FuncPtrTarget] : +# 698| r698_3(..(&)(..)) = CopyValue : r698_2 +# 698| m698_4(..(&)(..)) = Store[rfn] : &:r698_1, r698_3 +# 699| r699_1(glval<..(*)(..)>) = VariableAddress[pfn] : +# 699| r699_2(glval<..(&)(..)>) = VariableAddress[rfn] : +# 699| r699_3(..(&)(..)) = Load[rfn] : &:r699_2, m698_4 +# 699| r699_4(..(*)(..)) = CopyValue : r699_3 +# 699| m699_5(..(*)(..)) = Store[pfn] : &:r699_1, r699_4 +# 700| r700_1(glval<..(&)(..)>) = VariableAddress[rfn] : +# 700| r700_2(..(&)(..)) = Load[rfn] : &:r700_1, m698_4 +# 700| r700_3(..(*)(..)) = CopyValue : r700_2 +# 700| r700_4(int) = Constant[5] : +# 700| r700_5(int) = Call[?] : func:r700_3, 0:r700_4 +# 700| m700_6(unknown) = ^CallSideEffect : ~m697_4 +# 700| m700_7(unknown) = Chi : total:m697_4, partial:m700_6 +# 701| v701_1(void) = NoOp : +# 697| v697_5(void) = ReturnVoid : +# 697| v697_6(void) = AliasedUse : ~m700_7 +# 697| v697_7(void) = ExitFunction : + +# 704| int min(int, int) +# 704| Block 0 +# 704| v704_1(void) = EnterFunction : +# 704| m704_2(unknown) = AliasedDefinition : +# 704| m704_3(unknown) = InitializeNonLocal : +# 704| m704_4(unknown) = Chi : total:m704_2, partial:m704_3 +# 704| r704_5(glval) = VariableAddress[x] : +# 704| m704_6(int) = InitializeParameter[x] : &:r704_5 +# 704| r704_7(glval) = VariableAddress[y] : +# 704| m704_8(int) = InitializeParameter[y] : &:r704_7 +# 705| r705_1(glval) = VariableAddress[#return] : +# 705| r705_2(glval) = VariableAddress[x] : +# 705| r705_3(int) = Load[x] : &:r705_2, m704_6 +# 705| r705_4(glval) = VariableAddress[y] : +# 705| r705_5(int) = Load[y] : &:r705_4, m704_8 +# 705| r705_6(bool) = CompareLT : r705_3, r705_5 +# 705| v705_7(void) = ConditionalBranch : r705_6 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 705| Block 1 +# 705| m705_8(int) = Phi : from 2:m705_15, from 3:m705_19 +# 705| r705_9(glval) = VariableAddress[#temp705:10] : +# 705| r705_10(int) = Load[#temp705:10] : &:r705_9, m705_8 +# 705| m705_11(int) = Store[#return] : &:r705_1, r705_10 +# 704| r704_9(glval) = VariableAddress[#return] : +# 704| v704_10(void) = ReturnValue : &:r704_9, m705_11 +# 704| v704_11(void) = AliasedUse : m704_3 +# 704| v704_12(void) = ExitFunction : + +# 705| Block 2 +# 705| r705_12(glval) = VariableAddress[x] : +# 705| r705_13(int) = Load[x] : &:r705_12, m704_6 +# 705| r705_14(glval) = VariableAddress[#temp705:10] : +# 705| m705_15(int) = Store[#temp705:10] : &:r705_14, r705_13 +#-----| Goto -> Block 1 + +# 705| Block 3 +# 705| r705_16(glval) = VariableAddress[y] : +# 705| r705_17(int) = Load[y] : &:r705_16, m704_8 +# 705| r705_18(glval) = VariableAddress[#temp705:10] : +# 705| m705_19(int) = Store[#temp705:10] : &:r705_18, r705_17 +#-----| Goto -> Block 1 + +# 708| int CallMin(int, int) +# 708| Block 0 +# 708| v708_1(void) = EnterFunction : +# 708| m708_2(unknown) = AliasedDefinition : +# 708| m708_3(unknown) = InitializeNonLocal : +# 708| m708_4(unknown) = Chi : total:m708_2, partial:m708_3 +# 708| r708_5(glval) = VariableAddress[x] : +# 708| m708_6(int) = InitializeParameter[x] : &:r708_5 +# 708| r708_7(glval) = VariableAddress[y] : +# 708| m708_8(int) = InitializeParameter[y] : &:r708_7 +# 709| r709_1(glval) = VariableAddress[#return] : +# 709| r709_2(glval) = FunctionAddress[min] : +# 709| r709_3(glval) = VariableAddress[x] : +# 709| r709_4(int) = Load[x] : &:r709_3, m708_6 +# 709| r709_5(glval) = VariableAddress[y] : +# 709| r709_6(int) = Load[y] : &:r709_5, m708_8 +# 709| r709_7(int) = Call[min] : func:r709_2, 0:r709_4, 1:r709_6 +# 709| m709_8(unknown) = ^CallSideEffect : ~m708_4 +# 709| m709_9(unknown) = Chi : total:m708_4, partial:m709_8 +# 709| m709_10(int) = Store[#return] : &:r709_1, r709_7 +# 708| r708_9(glval) = VariableAddress[#return] : +# 708| v708_10(void) = ReturnValue : &:r708_9, m709_10 +# 708| v708_11(void) = AliasedUse : ~m709_9 +# 708| v708_12(void) = ExitFunction : + +# 715| long Outer::Func(void*, char) +# 715| Block 0 +# 715| v715_1(void) = EnterFunction : +# 715| m715_2(unknown) = AliasedDefinition : +# 715| m715_3(unknown) = InitializeNonLocal : +# 715| m715_4(unknown) = Chi : total:m715_2, partial:m715_3 +# 715| r715_5(glval) = VariableAddress[x] : +# 715| m715_6(void *) = InitializeParameter[x] : &:r715_5 +# 715| r715_7(void *) = Load[x] : &:r715_5, m715_6 +# 715| m715_8(unknown) = InitializeIndirection[x] : &:r715_7 +# 715| r715_9(glval) = VariableAddress[y] : +# 715| m715_10(char) = InitializeParameter[y] : &:r715_9 +# 716| r716_1(glval) = VariableAddress[#return] : +# 716| r716_2(glval) = VariableAddress[#temp716:12] : +# 716| r716_3(long) = Constant[0] : +# 716| m716_4(long) = Store[#temp716:12] : &:r716_2, r716_3 +# 716| r716_5(long) = Load[#temp716:12] : &:r716_2, m716_4 +# 716| m716_6(long) = Store[#return] : &:r716_1, r716_5 +# 715| v715_11(void) = ReturnIndirection[x] : &:r715_7, m715_8 +# 715| r715_12(glval) = VariableAddress[#return] : +# 715| v715_13(void) = ReturnValue : &:r715_12, m716_6 +# 715| v715_14(void) = AliasedUse : m715_3 +# 715| v715_15(void) = ExitFunction : + +# 720| double CallNestedTemplateFunc() +# 720| Block 0 +# 720| v720_1(void) = EnterFunction : +# 720| m720_2(unknown) = AliasedDefinition : +# 720| m720_3(unknown) = InitializeNonLocal : +# 720| m720_4(unknown) = Chi : total:m720_2, partial:m720_3 +# 721| r721_1(glval) = VariableAddress[#return] : +# 721| r721_2(glval) = FunctionAddress[Func] : +# 721| r721_3(void *) = Constant[0] : +# 721| r721_4(char) = Constant[111] : +# 721| r721_5(long) = Call[Func] : func:r721_2, 0:r721_3, 1:r721_4 +# 721| m721_6(unknown) = ^CallSideEffect : ~m720_4 +# 721| m721_7(unknown) = Chi : total:m720_4, partial:m721_6 +# 721| v721_8(void) = ^BufferReadSideEffect[0] : &:r721_3, ~m721_7 +# 721| m721_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r721_3 +# 721| m721_10(unknown) = Chi : total:m721_7, partial:m721_9 +# 721| r721_11(double) = Convert : r721_5 +# 721| m721_12(double) = Store[#return] : &:r721_1, r721_11 +# 720| r720_5(glval) = VariableAddress[#return] : +# 720| v720_6(void) = ReturnValue : &:r720_5, m721_12 +# 720| v720_7(void) = AliasedUse : ~m721_10 +# 720| v720_8(void) = ExitFunction : + +# 724| void TryCatch(bool) +# 724| Block 0 +# 724| v724_1(void) = EnterFunction : +# 724| m724_2(unknown) = AliasedDefinition : +# 724| m724_3(unknown) = InitializeNonLocal : +# 724| m724_4(unknown) = Chi : total:m724_2, partial:m724_3 +# 724| r724_5(glval) = VariableAddress[b] : +# 724| m724_6(bool) = InitializeParameter[b] : &:r724_5 +# 726| r726_1(glval) = VariableAddress[x] : +# 726| r726_2(int) = Constant[5] : +# 726| m726_3(int) = Store[x] : &:r726_1, r726_2 +# 727| r727_1(glval) = VariableAddress[b] : +# 727| r727_2(bool) = Load[b] : &:r727_1, m724_6 +# 727| v727_3(void) = ConditionalBranch : r727_2 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 724| Block 1 +# 724| m724_7(unknown) = Phi : from 2:~m724_10, from 11:~m724_4 +# 724| v724_8(void) = AliasedUse : ~m724_7 +# 724| v724_9(void) = ExitFunction : + +# 724| Block 2 +# 724| m724_10(unknown) = Phi : from 7:~m736_8, from 10:~m724_4 +# 724| v724_11(void) = Unwind : +#-----| Goto -> Block 1 + +# 728| Block 3 +# 728| r728_1(glval) = VariableAddress[#throw728:7] : +# 728| r728_2(glval) = StringConstant["string literal"] : +# 728| r728_3(char *) = Convert : r728_2 +# 728| m728_4(char *) = Store[#throw728:7] : &:r728_1, r728_3 +# 728| v728_5(void) = ThrowValue : &:r728_1, m728_4 +#-----| Exception -> Block 6 + +# 730| Block 4 +# 730| r730_1(glval) = VariableAddress[x] : +# 730| r730_2(int) = Load[x] : &:r730_1, m726_3 +# 730| r730_3(int) = Constant[2] : +# 730| r730_4(bool) = CompareLT : r730_2, r730_3 +# 730| v730_5(void) = ConditionalBranch : r730_4 +#-----| False -> Block 5 +#-----| True -> Block 12 + +# 733| Block 5 +# 733| r733_1(int) = Constant[7] : +# 733| r733_2(glval) = VariableAddress[x] : +# 733| m733_3(int) = Store[x] : &:r733_2, r733_1 +#-----| Goto -> Block 11 + +# 735| Block 6 +# 735| v735_1(void) = CatchByType[const char *] : +#-----| Exception -> Block 8 +#-----| Goto -> Block 7 + +# 735| Block 7 +# 735| r735_2(glval) = VariableAddress[s] : +# 735| m735_3(char *) = InitializeParameter[s] : &:r735_2 +# 735| r735_4(char *) = Load[s] : &:r735_2, m735_3 +# 735| m735_5(unknown) = InitializeIndirection[s] : &:r735_4 +# 736| r736_1(glval) = VariableAddress[#throw736:5] : +# 736| m736_2(String) = Uninitialized[#throw736:5] : &:r736_1 +# 736| r736_3(glval) = FunctionAddress[String] : +# 736| r736_4(glval) = VariableAddress[s] : +# 736| r736_5(char *) = Load[s] : &:r736_4, m735_3 +# 736| v736_6(void) = Call[String] : func:r736_3, this:r736_1, 0:r736_5 +# 736| m736_7(unknown) = ^CallSideEffect : ~m724_4 +# 736| m736_8(unknown) = Chi : total:m724_4, partial:m736_7 +# 736| v736_9(void) = ^BufferReadSideEffect[0] : &:r736_5, ~m735_5 +# 736| m736_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r736_1 +# 736| m736_11(String) = Chi : total:m736_2, partial:m736_10 +# 736| v736_12(void) = ThrowValue : &:r736_1, m736_11 +#-----| Exception -> Block 2 + +# 738| Block 8 +# 738| v738_1(void) = CatchByType[const String &] : +#-----| Exception -> Block 10 +#-----| Goto -> Block 9 + +# 738| Block 9 +# 738| r738_2(glval) = VariableAddress[e] : +# 738| m738_3(String &) = InitializeParameter[e] : &:r738_2 +# 738| r738_4(String &) = Load[e] : &:r738_2, m738_3 +# 738| m738_5(unknown) = InitializeIndirection[e] : &:r738_4 +# 738| v738_6(void) = NoOp : +#-----| Goto -> Block 11 + +# 740| Block 10 +# 740| v740_1(void) = CatchAny : +# 741| v741_1(void) = ReThrow : +#-----| Exception -> Block 2 + +# 743| Block 11 +# 743| v743_1(void) = NoOp : +# 724| v724_12(void) = ReturnVoid : +#-----| Goto -> Block 1 + +# 724| Block 12 +# 724| v724_13(void) = Unreached : + +# 745| Base& Base::operator=(Base const&) +# 745| Block 0 +# 745| v745_1(void) = EnterFunction : +# 745| m745_2(unknown) = AliasedDefinition : +# 745| m745_3(unknown) = InitializeNonLocal : +# 745| m745_4(unknown) = Chi : total:m745_2, partial:m745_3 +# 745| r745_5(glval) = VariableAddress[#this] : +# 745| m745_6(glval) = InitializeParameter[#this] : &:r745_5 +# 745| r745_7(glval) = Load[#this] : &:r745_5, m745_6 +# 745| m745_8(Base) = InitializeIndirection[#this] : &:r745_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(Base &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(Base &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 745| r745_9(glval) = VariableAddress[#this] : +# 745| r745_10(Base *) = Load[#this] : &:r745_9, m745_6 +# 745| r745_11(glval) = FieldAddress[base_s] : r745_10 +# 745| r745_12(String *) = CopyValue : r745_11 +# 745| r745_13(glval) = FunctionAddress[operator=] : +# 745| r745_14(glval) = VariableAddress[(unnamed parameter 0)] : +# 745| r745_15(Base &) = Load[(unnamed parameter 0)] : &:r745_14, m0_2 +#-----| r0_5(glval) = CopyValue : r745_15 +# 745| r745_16(glval) = FieldAddress[base_s] : r0_5 +#-----| r0_6(String &) = CopyValue : r745_16 +# 745| r745_17(String &) = Call[operator=] : func:r745_13, this:r745_12, 0:r0_6 +# 745| m745_18(unknown) = ^CallSideEffect : ~m745_4 +# 745| m745_19(unknown) = Chi : total:m745_4, partial:m745_18 +# 745| v745_20(void) = ^IndirectReadSideEffect[-1] : &:r745_12, ~m745_8 +#-----| v0_7(void) = ^BufferReadSideEffect[0] : &:r0_6, ~m0_4 +# 745| m745_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r745_12 +# 745| m745_22(unknown) = Chi : total:m745_8, partial:m745_21 +#-----| r0_8(glval) = CopyValue : r745_17 +#-----| r0_9(glval) = VariableAddress[#return] : +#-----| r0_10(glval) = VariableAddress[#this] : +#-----| r0_11(Base *) = Load[#this] : &:r0_10, m745_6 +#-----| r0_12(glval) = CopyValue : r0_11 +#-----| r0_13(Base &) = CopyValue : r0_12 +#-----| m0_14(Base &) = Store[#return] : &:r0_9, r0_13 +# 745| v745_23(void) = ReturnIndirection[#this] : &:r745_7, m745_22 +#-----| v0_15(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 745| r745_24(glval) = VariableAddress[#return] : +# 745| v745_25(void) = ReturnValue : &:r745_24, m0_14 +# 745| v745_26(void) = AliasedUse : ~m745_19 +# 745| v745_27(void) = ExitFunction : + +# 745| void Base::Base(Base const&) +# 745| Block 0 +# 745| v745_1(void) = EnterFunction : +# 745| m745_2(unknown) = AliasedDefinition : +# 745| m745_3(unknown) = InitializeNonLocal : +# 745| m745_4(unknown) = Chi : total:m745_2, partial:m745_3 +# 745| r745_5(glval) = VariableAddress[#this] : +# 745| m745_6(glval) = InitializeParameter[#this] : &:r745_5 +# 745| r745_7(glval) = Load[#this] : &:r745_5, m745_6 +# 745| m745_8(Base) = InitializeIndirection[#this] : &:r745_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(Base &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(Base &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 745| r745_9(glval) = FieldAddress[base_s] : m745_6 +# 745| r745_10(glval) = FunctionAddress[String] : +# 745| v745_11(void) = Call[String] : func:r745_10, this:r745_9 +# 745| m745_12(unknown) = ^CallSideEffect : ~m745_4 +# 745| m745_13(unknown) = Chi : total:m745_4, partial:m745_12 +# 745| m745_14(String) = ^IndirectMayWriteSideEffect[-1] : &:r745_9 +# 745| m745_15(unknown) = Chi : total:m745_8, partial:m745_14 +# 745| v745_16(void) = NoOp : +# 745| v745_17(void) = ReturnIndirection[#this] : &:r745_7, m745_15 +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 745| v745_18(void) = ReturnVoid : +# 745| v745_19(void) = AliasedUse : ~m745_13 +# 745| v745_20(void) = ExitFunction : + +# 748| void Base::Base() +# 748| Block 0 +# 748| v748_1(void) = EnterFunction : +# 748| m748_2(unknown) = AliasedDefinition : +# 748| m748_3(unknown) = InitializeNonLocal : +# 748| m748_4(unknown) = Chi : total:m748_2, partial:m748_3 +# 748| r748_5(glval) = VariableAddress[#this] : +# 748| m748_6(glval) = InitializeParameter[#this] : &:r748_5 +# 748| r748_7(glval) = Load[#this] : &:r748_5, m748_6 +# 748| m748_8(Base) = InitializeIndirection[#this] : &:r748_7 +# 748| r748_9(glval) = FieldAddress[base_s] : m748_6 +# 748| r748_10(glval) = FunctionAddress[String] : +# 748| v748_11(void) = Call[String] : func:r748_10, this:r748_9 +# 748| m748_12(unknown) = ^CallSideEffect : ~m748_4 +# 748| m748_13(unknown) = Chi : total:m748_4, partial:m748_12 +# 748| m748_14(String) = ^IndirectMayWriteSideEffect[-1] : &:r748_9 +# 748| m748_15(unknown) = Chi : total:m748_8, partial:m748_14 +# 749| v749_1(void) = NoOp : +# 748| v748_16(void) = ReturnIndirection[#this] : &:r748_7, m748_15 +# 748| v748_17(void) = ReturnVoid : +# 748| v748_18(void) = AliasedUse : ~m748_13 +# 748| v748_19(void) = ExitFunction : + +# 750| void Base::~Base() +# 750| Block 0 +# 750| v750_1(void) = EnterFunction : +# 750| m750_2(unknown) = AliasedDefinition : +# 750| m750_3(unknown) = InitializeNonLocal : +# 750| m750_4(unknown) = Chi : total:m750_2, partial:m750_3 +# 750| r750_5(glval) = VariableAddress[#this] : +# 750| m750_6(glval) = InitializeParameter[#this] : &:r750_5 +# 750| r750_7(glval) = Load[#this] : &:r750_5, m750_6 +# 750| m750_8(Base) = InitializeIndirection[#this] : &:r750_7 +# 751| v751_1(void) = NoOp : +# 751| r751_2(glval) = FieldAddress[base_s] : m750_6 +# 751| r751_3(glval) = FunctionAddress[~String] : +# 751| v751_4(void) = Call[~String] : func:r751_3, this:r751_2 +# 751| m751_5(unknown) = ^CallSideEffect : ~m750_4 +# 751| m751_6(unknown) = Chi : total:m750_4, partial:m751_5 +# 750| v750_9(void) = ReturnIndirection[#this] : &:r750_7, m750_8 +# 750| v750_10(void) = ReturnVoid : +# 750| v750_11(void) = AliasedUse : ~m751_6 +# 750| v750_12(void) = ExitFunction : + +# 754| Middle& Middle::operator=(Middle const&) +# 754| Block 0 +# 754| v754_1(void) = EnterFunction : +# 754| m754_2(unknown) = AliasedDefinition : +# 754| m754_3(unknown) = InitializeNonLocal : +# 754| m754_4(unknown) = Chi : total:m754_2, partial:m754_3 +# 754| r754_5(glval) = VariableAddress[#this] : +# 754| m754_6(glval) = InitializeParameter[#this] : &:r754_5 +# 754| r754_7(glval) = Load[#this] : &:r754_5, m754_6 +# 754| m754_8(Middle) = InitializeIndirection[#this] : &:r754_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(Middle &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(Middle &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 754| r754_9(glval) = VariableAddress[#this] : +# 754| r754_10(Middle *) = Load[#this] : &:r754_9, m754_6 +#-----| r0_5(Base *) = ConvertToNonVirtualBase[Middle : Base] : r754_10 +# 754| r754_11(glval) = FunctionAddress[operator=] : +# 754| r754_12(glval) = VariableAddress[(unnamed parameter 0)] : +# 754| r754_13(Middle &) = Load[(unnamed parameter 0)] : &:r754_12, m0_2 +#-----| r0_6(glval) = CopyValue : r754_13 +# 754| r754_14(Middle *) = CopyValue : r0_6 +#-----| r0_7(Base *) = ConvertToNonVirtualBase[Middle : Base] : r754_14 +# 754| r754_15(glval) = CopyValue : r0_7 +#-----| r0_8(Base &) = CopyValue : r754_15 +# 754| r754_16(Base &) = Call[operator=] : func:r754_11, this:r0_5, 0:r0_8 +# 754| m754_17(unknown) = ^CallSideEffect : ~m754_4 +# 754| m754_18(unknown) = Chi : total:m754_4, partial:m754_17 +#-----| v0_9(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m754_8 +#-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_8, ~m0_4 +#-----| m0_11(Base) = ^IndirectMayWriteSideEffect[-1] : &:r0_5 +#-----| m0_12(unknown) = Chi : total:m754_8, partial:m0_11 +#-----| r0_13(glval) = CopyValue : r754_16 +# 754| r754_19(glval) = VariableAddress[#this] : +# 754| r754_20(Middle *) = Load[#this] : &:r754_19, m754_6 +# 754| r754_21(glval) = FieldAddress[middle_s] : r754_20 +# 754| r754_22(String *) = CopyValue : r754_21 +# 754| r754_23(glval) = FunctionAddress[operator=] : +# 754| r754_24(glval) = VariableAddress[(unnamed parameter 0)] : +# 754| r754_25(Middle &) = Load[(unnamed parameter 0)] : &:r754_24, m0_2 +#-----| r0_14(glval) = CopyValue : r754_25 +# 754| r754_26(glval) = FieldAddress[middle_s] : r0_14 +#-----| r0_15(String &) = CopyValue : r754_26 +# 754| r754_27(String &) = Call[operator=] : func:r754_23, this:r754_22, 0:r0_15 +# 754| m754_28(unknown) = ^CallSideEffect : ~m754_18 +# 754| m754_29(unknown) = Chi : total:m754_18, partial:m754_28 +# 754| v754_30(void) = ^IndirectReadSideEffect[-1] : &:r754_22, ~m754_8 +#-----| v0_16(void) = ^BufferReadSideEffect[0] : &:r0_15, ~m0_4 +# 754| m754_31(String) = ^IndirectMayWriteSideEffect[-1] : &:r754_22 +# 754| m754_32(unknown) = Chi : total:m0_12, partial:m754_31 +#-----| r0_17(glval) = CopyValue : r754_27 +#-----| r0_18(glval) = VariableAddress[#return] : +#-----| r0_19(glval) = VariableAddress[#this] : +#-----| r0_20(Middle *) = Load[#this] : &:r0_19, m754_6 +#-----| r0_21(glval) = CopyValue : r0_20 +#-----| r0_22(Middle &) = CopyValue : r0_21 +#-----| m0_23(Middle &) = Store[#return] : &:r0_18, r0_22 +# 754| v754_33(void) = ReturnIndirection[#this] : &:r754_7, m754_32 +#-----| v0_24(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 754| r754_34(glval) = VariableAddress[#return] : +# 754| v754_35(void) = ReturnValue : &:r754_34, m0_23 +# 754| v754_36(void) = AliasedUse : ~m754_29 +# 754| v754_37(void) = ExitFunction : + +# 757| void Middle::Middle() +# 757| Block 0 +# 757| v757_1(void) = EnterFunction : +# 757| m757_2(unknown) = AliasedDefinition : +# 757| m757_3(unknown) = InitializeNonLocal : +# 757| m757_4(unknown) = Chi : total:m757_2, partial:m757_3 +# 757| r757_5(glval) = VariableAddress[#this] : +# 757| m757_6(glval) = InitializeParameter[#this] : &:r757_5 +# 757| r757_7(glval) = Load[#this] : &:r757_5, m757_6 +# 757| m757_8(Middle) = InitializeIndirection[#this] : &:r757_7 +# 757| r757_9(glval) = ConvertToNonVirtualBase[Middle : Base] : m757_6 +# 757| r757_10(glval) = FunctionAddress[Base] : +# 757| v757_11(void) = Call[Base] : func:r757_10, this:r757_9 +# 757| m757_12(unknown) = ^CallSideEffect : ~m757_4 +# 757| m757_13(unknown) = Chi : total:m757_4, partial:m757_12 +# 757| m757_14(Base) = ^IndirectMayWriteSideEffect[-1] : &:r757_9 +# 757| m757_15(unknown) = Chi : total:m757_8, partial:m757_14 +# 757| r757_16(glval) = FieldAddress[middle_s] : m757_6 +# 757| r757_17(glval) = FunctionAddress[String] : +# 757| v757_18(void) = Call[String] : func:r757_17, this:r757_16 +# 757| m757_19(unknown) = ^CallSideEffect : ~m757_13 +# 757| m757_20(unknown) = Chi : total:m757_13, partial:m757_19 +# 757| m757_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r757_16 +# 757| m757_22(unknown) = Chi : total:m757_15, partial:m757_21 +# 758| v758_1(void) = NoOp : +# 757| v757_23(void) = ReturnIndirection[#this] : &:r757_7, m757_22 +# 757| v757_24(void) = ReturnVoid : +# 757| v757_25(void) = AliasedUse : ~m757_20 +# 757| v757_26(void) = ExitFunction : + +# 759| void Middle::~Middle() +# 759| Block 0 +# 759| v759_1(void) = EnterFunction : +# 759| m759_2(unknown) = AliasedDefinition : +# 759| m759_3(unknown) = InitializeNonLocal : +# 759| m759_4(unknown) = Chi : total:m759_2, partial:m759_3 +# 759| r759_5(glval) = VariableAddress[#this] : +# 759| m759_6(glval) = InitializeParameter[#this] : &:r759_5 +# 759| r759_7(glval) = Load[#this] : &:r759_5, m759_6 +# 759| m759_8(Middle) = InitializeIndirection[#this] : &:r759_7 +# 760| v760_1(void) = NoOp : +# 760| r760_2(glval) = FieldAddress[middle_s] : m759_6 +# 760| r760_3(glval) = FunctionAddress[~String] : +# 760| v760_4(void) = Call[~String] : func:r760_3, this:r760_2 +# 760| m760_5(unknown) = ^CallSideEffect : ~m759_4 +# 760| m760_6(unknown) = Chi : total:m759_4, partial:m760_5 +# 760| r760_7(glval) = ConvertToNonVirtualBase[Middle : Base] : m759_6 +# 760| r760_8(glval) = FunctionAddress[~Base] : +# 760| v760_9(void) = Call[~Base] : func:r760_8, this:r760_7 +# 760| m760_10(unknown) = ^CallSideEffect : ~m760_6 +# 760| m760_11(unknown) = Chi : total:m760_6, partial:m760_10 +# 759| v759_9(void) = ReturnIndirection[#this] : &:r759_7, m759_8 +# 759| v759_10(void) = ReturnVoid : +# 759| v759_11(void) = AliasedUse : ~m760_11 +# 759| v759_12(void) = ExitFunction : + +# 763| Derived& Derived::operator=(Derived const&) +# 763| Block 0 +# 763| v763_1(void) = EnterFunction : +# 763| m763_2(unknown) = AliasedDefinition : +# 763| m763_3(unknown) = InitializeNonLocal : +# 763| m763_4(unknown) = Chi : total:m763_2, partial:m763_3 +# 763| r763_5(glval) = VariableAddress[#this] : +# 763| m763_6(glval) = InitializeParameter[#this] : &:r763_5 +# 763| r763_7(glval) = Load[#this] : &:r763_5, m763_6 +# 763| m763_8(Derived) = InitializeIndirection[#this] : &:r763_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(Derived &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(Derived &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 763| r763_9(glval) = VariableAddress[#this] : +# 763| r763_10(Derived *) = Load[#this] : &:r763_9, m763_6 +#-----| r0_5(Middle *) = ConvertToNonVirtualBase[Derived : Middle] : r763_10 +# 763| r763_11(glval) = FunctionAddress[operator=] : +# 763| r763_12(glval) = VariableAddress[(unnamed parameter 0)] : +# 763| r763_13(Derived &) = Load[(unnamed parameter 0)] : &:r763_12, m0_2 +#-----| r0_6(glval) = CopyValue : r763_13 +# 763| r763_14(Derived *) = CopyValue : r0_6 +#-----| r0_7(Middle *) = ConvertToNonVirtualBase[Derived : Middle] : r763_14 +# 763| r763_15(glval) = CopyValue : r0_7 +#-----| r0_8(Middle &) = CopyValue : r763_15 +# 763| r763_16(Middle &) = Call[operator=] : func:r763_11, this:r0_5, 0:r0_8 +# 763| m763_17(unknown) = ^CallSideEffect : ~m763_4 +# 763| m763_18(unknown) = Chi : total:m763_4, partial:m763_17 +#-----| v0_9(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m763_8 +#-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_8, ~m0_4 +#-----| m0_11(Middle) = ^IndirectMayWriteSideEffect[-1] : &:r0_5 +#-----| m0_12(unknown) = Chi : total:m763_8, partial:m0_11 +#-----| r0_13(glval) = CopyValue : r763_16 +# 763| r763_19(glval) = VariableAddress[#this] : +# 763| r763_20(Derived *) = Load[#this] : &:r763_19, m763_6 +# 763| r763_21(glval) = FieldAddress[derived_s] : r763_20 +# 763| r763_22(String *) = CopyValue : r763_21 +# 763| r763_23(glval) = FunctionAddress[operator=] : +# 763| r763_24(glval) = VariableAddress[(unnamed parameter 0)] : +# 763| r763_25(Derived &) = Load[(unnamed parameter 0)] : &:r763_24, m0_2 +#-----| r0_14(glval) = CopyValue : r763_25 +# 763| r763_26(glval) = FieldAddress[derived_s] : r0_14 +#-----| r0_15(String &) = CopyValue : r763_26 +# 763| r763_27(String &) = Call[operator=] : func:r763_23, this:r763_22, 0:r0_15 +# 763| m763_28(unknown) = ^CallSideEffect : ~m763_18 +# 763| m763_29(unknown) = Chi : total:m763_18, partial:m763_28 +# 763| v763_30(void) = ^IndirectReadSideEffect[-1] : &:r763_22, ~m763_8 +#-----| v0_16(void) = ^BufferReadSideEffect[0] : &:r0_15, ~m0_4 +# 763| m763_31(String) = ^IndirectMayWriteSideEffect[-1] : &:r763_22 +# 763| m763_32(unknown) = Chi : total:m0_12, partial:m763_31 +#-----| r0_17(glval) = CopyValue : r763_27 +#-----| r0_18(glval) = VariableAddress[#return] : +#-----| r0_19(glval) = VariableAddress[#this] : +#-----| r0_20(Derived *) = Load[#this] : &:r0_19, m763_6 +#-----| r0_21(glval) = CopyValue : r0_20 +#-----| r0_22(Derived &) = CopyValue : r0_21 +#-----| m0_23(Derived &) = Store[#return] : &:r0_18, r0_22 +# 763| v763_33(void) = ReturnIndirection[#this] : &:r763_7, m763_32 +#-----| v0_24(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 763| r763_34(glval) = VariableAddress[#return] : +# 763| v763_35(void) = ReturnValue : &:r763_34, m0_23 +# 763| v763_36(void) = AliasedUse : ~m763_29 +# 763| v763_37(void) = ExitFunction : + +# 766| void Derived::Derived() +# 766| Block 0 +# 766| v766_1(void) = EnterFunction : +# 766| m766_2(unknown) = AliasedDefinition : +# 766| m766_3(unknown) = InitializeNonLocal : +# 766| m766_4(unknown) = Chi : total:m766_2, partial:m766_3 +# 766| r766_5(glval) = VariableAddress[#this] : +# 766| m766_6(glval) = InitializeParameter[#this] : &:r766_5 +# 766| r766_7(glval) = Load[#this] : &:r766_5, m766_6 +# 766| m766_8(Derived) = InitializeIndirection[#this] : &:r766_7 +# 766| r766_9(glval) = ConvertToNonVirtualBase[Derived : Middle] : m766_6 +# 766| r766_10(glval) = FunctionAddress[Middle] : +# 766| v766_11(void) = Call[Middle] : func:r766_10, this:r766_9 +# 766| m766_12(unknown) = ^CallSideEffect : ~m766_4 +# 766| m766_13(unknown) = Chi : total:m766_4, partial:m766_12 +# 766| m766_14(Middle) = ^IndirectMayWriteSideEffect[-1] : &:r766_9 +# 766| m766_15(unknown) = Chi : total:m766_8, partial:m766_14 +# 766| r766_16(glval) = FieldAddress[derived_s] : m766_6 +# 766| r766_17(glval) = FunctionAddress[String] : +# 766| v766_18(void) = Call[String] : func:r766_17, this:r766_16 +# 766| m766_19(unknown) = ^CallSideEffect : ~m766_13 +# 766| m766_20(unknown) = Chi : total:m766_13, partial:m766_19 +# 766| m766_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r766_16 +# 766| m766_22(unknown) = Chi : total:m766_15, partial:m766_21 +# 767| v767_1(void) = NoOp : +# 766| v766_23(void) = ReturnIndirection[#this] : &:r766_7, m766_22 +# 766| v766_24(void) = ReturnVoid : +# 766| v766_25(void) = AliasedUse : ~m766_20 +# 766| v766_26(void) = ExitFunction : + +# 768| void Derived::~Derived() +# 768| Block 0 +# 768| v768_1(void) = EnterFunction : +# 768| m768_2(unknown) = AliasedDefinition : +# 768| m768_3(unknown) = InitializeNonLocal : +# 768| m768_4(unknown) = Chi : total:m768_2, partial:m768_3 +# 768| r768_5(glval) = VariableAddress[#this] : +# 768| m768_6(glval) = InitializeParameter[#this] : &:r768_5 +# 768| r768_7(glval) = Load[#this] : &:r768_5, m768_6 +# 768| m768_8(Derived) = InitializeIndirection[#this] : &:r768_7 +# 769| v769_1(void) = NoOp : +# 769| r769_2(glval) = FieldAddress[derived_s] : m768_6 +# 769| r769_3(glval) = FunctionAddress[~String] : +# 769| v769_4(void) = Call[~String] : func:r769_3, this:r769_2 +# 769| m769_5(unknown) = ^CallSideEffect : ~m768_4 +# 769| m769_6(unknown) = Chi : total:m768_4, partial:m769_5 +# 769| r769_7(glval) = ConvertToNonVirtualBase[Derived : Middle] : m768_6 +# 769| r769_8(glval) = FunctionAddress[~Middle] : +# 769| v769_9(void) = Call[~Middle] : func:r769_8, this:r769_7 +# 769| m769_10(unknown) = ^CallSideEffect : ~m769_6 +# 769| m769_11(unknown) = Chi : total:m769_6, partial:m769_10 +# 768| v768_9(void) = ReturnIndirection[#this] : &:r768_7, m768_8 +# 768| v768_10(void) = ReturnVoid : +# 768| v768_11(void) = AliasedUse : ~m769_11 +# 768| v768_12(void) = ExitFunction : + +# 775| void MiddleVB1::MiddleVB1() +# 775| Block 0 +# 775| v775_1(void) = EnterFunction : +# 775| m775_2(unknown) = AliasedDefinition : +# 775| m775_3(unknown) = InitializeNonLocal : +# 775| m775_4(unknown) = Chi : total:m775_2, partial:m775_3 +# 775| r775_5(glval) = VariableAddress[#this] : +# 775| m775_6(glval) = InitializeParameter[#this] : &:r775_5 +# 775| r775_7(glval) = Load[#this] : &:r775_5, m775_6 +# 775| m775_8(MiddleVB1) = InitializeIndirection[#this] : &:r775_7 +# 775| r775_9(glval) = ConvertToNonVirtualBase[MiddleVB1 : Base] : m775_6 +# 775| r775_10(glval) = FunctionAddress[Base] : +# 775| v775_11(void) = Call[Base] : func:r775_10, this:r775_9 +# 775| m775_12(unknown) = ^CallSideEffect : ~m775_4 +# 775| m775_13(unknown) = Chi : total:m775_4, partial:m775_12 +# 775| m775_14(Base) = ^IndirectMayWriteSideEffect[-1] : &:r775_9 +# 775| m775_15(unknown) = Chi : total:m775_13, partial:m775_14 +# 775| r775_16(glval) = FieldAddress[middlevb1_s] : m775_6 +# 775| r775_17(glval) = FunctionAddress[String] : +# 775| v775_18(void) = Call[String] : func:r775_17, this:r775_16 +# 775| m775_19(unknown) = ^CallSideEffect : ~m775_15 +# 775| m775_20(unknown) = Chi : total:m775_15, partial:m775_19 +# 775| m775_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r775_16 +# 775| m775_22(unknown) = Chi : total:m775_8, partial:m775_21 +# 776| v776_1(void) = NoOp : +# 775| v775_23(void) = ReturnIndirection[#this] : &:r775_7, m775_22 +# 775| v775_24(void) = ReturnVoid : +# 775| v775_25(void) = AliasedUse : ~m775_20 +# 775| v775_26(void) = ExitFunction : + +# 777| void MiddleVB1::~MiddleVB1() +# 777| Block 0 +# 777| v777_1(void) = EnterFunction : +# 777| m777_2(unknown) = AliasedDefinition : +# 777| m777_3(unknown) = InitializeNonLocal : +# 777| m777_4(unknown) = Chi : total:m777_2, partial:m777_3 +# 777| r777_5(glval) = VariableAddress[#this] : +# 777| m777_6(glval) = InitializeParameter[#this] : &:r777_5 +# 777| r777_7(glval) = Load[#this] : &:r777_5, m777_6 +# 777| m777_8(MiddleVB1) = InitializeIndirection[#this] : &:r777_7 +# 778| v778_1(void) = NoOp : +# 778| r778_2(glval) = FieldAddress[middlevb1_s] : m777_6 +# 778| r778_3(glval) = FunctionAddress[~String] : +# 778| v778_4(void) = Call[~String] : func:r778_3, this:r778_2 +# 778| m778_5(unknown) = ^CallSideEffect : ~m777_4 +# 778| m778_6(unknown) = Chi : total:m777_4, partial:m778_5 +# 778| r778_7(glval) = ConvertToNonVirtualBase[MiddleVB1 : Base] : m777_6 +# 778| r778_8(glval) = FunctionAddress[~Base] : +# 778| v778_9(void) = Call[~Base] : func:r778_8, this:r778_7 +# 778| m778_10(unknown) = ^CallSideEffect : ~m778_6 +# 778| m778_11(unknown) = Chi : total:m778_6, partial:m778_10 +# 777| v777_9(void) = ReturnIndirection[#this] : &:r777_7, m777_8 +# 777| v777_10(void) = ReturnVoid : +# 777| v777_11(void) = AliasedUse : ~m778_11 +# 777| v777_12(void) = ExitFunction : + +# 784| void MiddleVB2::MiddleVB2() +# 784| Block 0 +# 784| v784_1(void) = EnterFunction : +# 784| m784_2(unknown) = AliasedDefinition : +# 784| m784_3(unknown) = InitializeNonLocal : +# 784| m784_4(unknown) = Chi : total:m784_2, partial:m784_3 +# 784| r784_5(glval) = VariableAddress[#this] : +# 784| m784_6(glval) = InitializeParameter[#this] : &:r784_5 +# 784| r784_7(glval) = Load[#this] : &:r784_5, m784_6 +# 784| m784_8(MiddleVB2) = InitializeIndirection[#this] : &:r784_7 +# 784| r784_9(glval) = ConvertToNonVirtualBase[MiddleVB2 : Base] : m784_6 +# 784| r784_10(glval) = FunctionAddress[Base] : +# 784| v784_11(void) = Call[Base] : func:r784_10, this:r784_9 +# 784| m784_12(unknown) = ^CallSideEffect : ~m784_4 +# 784| m784_13(unknown) = Chi : total:m784_4, partial:m784_12 +# 784| m784_14(Base) = ^IndirectMayWriteSideEffect[-1] : &:r784_9 +# 784| m784_15(unknown) = Chi : total:m784_13, partial:m784_14 +# 784| r784_16(glval) = FieldAddress[middlevb2_s] : m784_6 +# 784| r784_17(glval) = FunctionAddress[String] : +# 784| v784_18(void) = Call[String] : func:r784_17, this:r784_16 +# 784| m784_19(unknown) = ^CallSideEffect : ~m784_15 +# 784| m784_20(unknown) = Chi : total:m784_15, partial:m784_19 +# 784| m784_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r784_16 +# 784| m784_22(unknown) = Chi : total:m784_8, partial:m784_21 +# 785| v785_1(void) = NoOp : +# 784| v784_23(void) = ReturnIndirection[#this] : &:r784_7, m784_22 +# 784| v784_24(void) = ReturnVoid : +# 784| v784_25(void) = AliasedUse : ~m784_20 +# 784| v784_26(void) = ExitFunction : + +# 786| void MiddleVB2::~MiddleVB2() +# 786| Block 0 +# 786| v786_1(void) = EnterFunction : +# 786| m786_2(unknown) = AliasedDefinition : +# 786| m786_3(unknown) = InitializeNonLocal : +# 786| m786_4(unknown) = Chi : total:m786_2, partial:m786_3 +# 786| r786_5(glval) = VariableAddress[#this] : +# 786| m786_6(glval) = InitializeParameter[#this] : &:r786_5 +# 786| r786_7(glval) = Load[#this] : &:r786_5, m786_6 +# 786| m786_8(MiddleVB2) = InitializeIndirection[#this] : &:r786_7 +# 787| v787_1(void) = NoOp : +# 787| r787_2(glval) = FieldAddress[middlevb2_s] : m786_6 +# 787| r787_3(glval) = FunctionAddress[~String] : +# 787| v787_4(void) = Call[~String] : func:r787_3, this:r787_2 +# 787| m787_5(unknown) = ^CallSideEffect : ~m786_4 +# 787| m787_6(unknown) = Chi : total:m786_4, partial:m787_5 +# 787| r787_7(glval) = ConvertToNonVirtualBase[MiddleVB2 : Base] : m786_6 +# 787| r787_8(glval) = FunctionAddress[~Base] : +# 787| v787_9(void) = Call[~Base] : func:r787_8, this:r787_7 +# 787| m787_10(unknown) = ^CallSideEffect : ~m787_6 +# 787| m787_11(unknown) = Chi : total:m787_6, partial:m787_10 +# 786| v786_9(void) = ReturnIndirection[#this] : &:r786_7, m786_8 +# 786| v786_10(void) = ReturnVoid : +# 786| v786_11(void) = AliasedUse : ~m787_11 +# 786| v786_12(void) = ExitFunction : + +# 793| void DerivedVB::DerivedVB() +# 793| Block 0 +# 793| v793_1(void) = EnterFunction : +# 793| m793_2(unknown) = AliasedDefinition : +# 793| m793_3(unknown) = InitializeNonLocal : +# 793| m793_4(unknown) = Chi : total:m793_2, partial:m793_3 +# 793| r793_5(glval) = VariableAddress[#this] : +# 793| m793_6(glval) = InitializeParameter[#this] : &:r793_5 +# 793| r793_7(glval) = Load[#this] : &:r793_5, m793_6 +# 793| m793_8(DerivedVB) = InitializeIndirection[#this] : &:r793_7 +# 793| r793_9(glval) = ConvertToNonVirtualBase[DerivedVB : Base] : m793_6 +# 793| r793_10(glval) = FunctionAddress[Base] : +# 793| v793_11(void) = Call[Base] : func:r793_10, this:r793_9 +# 793| m793_12(unknown) = ^CallSideEffect : ~m793_4 +# 793| m793_13(unknown) = Chi : total:m793_4, partial:m793_12 +# 793| m793_14(Base) = ^IndirectMayWriteSideEffect[-1] : &:r793_9 +# 793| m793_15(unknown) = Chi : total:m793_13, partial:m793_14 +# 793| r793_16(glval) = ConvertToNonVirtualBase[DerivedVB : MiddleVB1] : m793_6 +# 793| r793_17(glval) = FunctionAddress[MiddleVB1] : +# 793| v793_18(void) = Call[MiddleVB1] : func:r793_17, this:r793_16 +# 793| m793_19(unknown) = ^CallSideEffect : ~m793_15 +# 793| m793_20(unknown) = Chi : total:m793_15, partial:m793_19 +# 793| m793_21(MiddleVB1) = ^IndirectMayWriteSideEffect[-1] : &:r793_16 +# 793| m793_22(unknown) = Chi : total:m793_8, partial:m793_21 +# 793| r793_23(glval) = ConvertToNonVirtualBase[DerivedVB : MiddleVB2] : m793_6 +# 793| r793_24(glval) = FunctionAddress[MiddleVB2] : +# 793| v793_25(void) = Call[MiddleVB2] : func:r793_24, this:r793_23 +# 793| m793_26(unknown) = ^CallSideEffect : ~m793_20 +# 793| m793_27(unknown) = Chi : total:m793_20, partial:m793_26 +# 793| m793_28(MiddleVB2) = ^IndirectMayWriteSideEffect[-1] : &:r793_23 +# 793| m793_29(unknown) = Chi : total:m793_22, partial:m793_28 +# 793| r793_30(glval) = FieldAddress[derivedvb_s] : m793_6 +# 793| r793_31(glval) = FunctionAddress[String] : +# 793| v793_32(void) = Call[String] : func:r793_31, this:r793_30 +# 793| m793_33(unknown) = ^CallSideEffect : ~m793_27 +# 793| m793_34(unknown) = Chi : total:m793_27, partial:m793_33 +# 793| m793_35(String) = ^IndirectMayWriteSideEffect[-1] : &:r793_30 +# 793| m793_36(unknown) = Chi : total:m793_29, partial:m793_35 +# 794| v794_1(void) = NoOp : +# 793| v793_37(void) = ReturnIndirection[#this] : &:r793_7, m793_36 +# 793| v793_38(void) = ReturnVoid : +# 793| v793_39(void) = AliasedUse : ~m793_34 +# 793| v793_40(void) = ExitFunction : + +# 795| void DerivedVB::~DerivedVB() +# 795| Block 0 +# 795| v795_1(void) = EnterFunction : +# 795| m795_2(unknown) = AliasedDefinition : +# 795| m795_3(unknown) = InitializeNonLocal : +# 795| m795_4(unknown) = Chi : total:m795_2, partial:m795_3 +# 795| r795_5(glval) = VariableAddress[#this] : +# 795| m795_6(glval) = InitializeParameter[#this] : &:r795_5 +# 795| r795_7(glval) = Load[#this] : &:r795_5, m795_6 +# 795| m795_8(DerivedVB) = InitializeIndirection[#this] : &:r795_7 +# 796| v796_1(void) = NoOp : +# 796| r796_2(glval) = FieldAddress[derivedvb_s] : m795_6 +# 796| r796_3(glval) = FunctionAddress[~String] : +# 796| v796_4(void) = Call[~String] : func:r796_3, this:r796_2 +# 796| m796_5(unknown) = ^CallSideEffect : ~m795_4 +# 796| m796_6(unknown) = Chi : total:m795_4, partial:m796_5 +# 796| r796_7(glval) = ConvertToNonVirtualBase[DerivedVB : MiddleVB2] : m795_6 +# 796| r796_8(glval) = FunctionAddress[~MiddleVB2] : +# 796| v796_9(void) = Call[~MiddleVB2] : func:r796_8, this:r796_7 +# 796| m796_10(unknown) = ^CallSideEffect : ~m796_6 +# 796| m796_11(unknown) = Chi : total:m796_6, partial:m796_10 +# 796| r796_12(glval) = ConvertToNonVirtualBase[DerivedVB : MiddleVB1] : m795_6 +# 796| r796_13(glval) = FunctionAddress[~MiddleVB1] : +# 796| v796_14(void) = Call[~MiddleVB1] : func:r796_13, this:r796_12 +# 796| m796_15(unknown) = ^CallSideEffect : ~m796_11 +# 796| m796_16(unknown) = Chi : total:m796_11, partial:m796_15 +# 796| r796_17(glval) = ConvertToNonVirtualBase[DerivedVB : Base] : m795_6 +# 796| r796_18(glval) = FunctionAddress[~Base] : +# 796| v796_19(void) = Call[~Base] : func:r796_18, this:r796_17 +# 796| m796_20(unknown) = ^CallSideEffect : ~m796_16 +# 796| m796_21(unknown) = Chi : total:m796_16, partial:m796_20 +# 795| v795_9(void) = ReturnIndirection[#this] : &:r795_7, m795_8 +# 795| v795_10(void) = ReturnVoid : +# 795| v795_11(void) = AliasedUse : ~m796_21 +# 795| v795_12(void) = ExitFunction : + +# 799| void HierarchyConversions() +# 799| Block 0 +# 799| v799_1(void) = EnterFunction : +# 799| m799_2(unknown) = AliasedDefinition : +# 799| m799_3(unknown) = InitializeNonLocal : +# 799| m799_4(unknown) = Chi : total:m799_2, partial:m799_3 +# 800| r800_1(glval) = VariableAddress[b] : +# 800| m800_2(Base) = Uninitialized[b] : &:r800_1 +# 800| r800_3(glval) = FunctionAddress[Base] : +# 800| v800_4(void) = Call[Base] : func:r800_3, this:r800_1 +# 800| m800_5(unknown) = ^CallSideEffect : ~m799_4 +# 800| m800_6(unknown) = Chi : total:m799_4, partial:m800_5 +# 800| m800_7(Base) = ^IndirectMayWriteSideEffect[-1] : &:r800_1 +# 800| m800_8(Base) = Chi : total:m800_2, partial:m800_7 +# 801| r801_1(glval) = VariableAddress[m] : +# 801| m801_2(Middle) = Uninitialized[m] : &:r801_1 +# 801| r801_3(glval) = FunctionAddress[Middle] : +# 801| v801_4(void) = Call[Middle] : func:r801_3, this:r801_1 +# 801| m801_5(unknown) = ^CallSideEffect : ~m800_6 +# 801| m801_6(unknown) = Chi : total:m800_6, partial:m801_5 +# 801| m801_7(Middle) = ^IndirectMayWriteSideEffect[-1] : &:r801_1 +# 801| m801_8(Middle) = Chi : total:m801_2, partial:m801_7 +# 802| r802_1(glval) = VariableAddress[d] : +# 802| m802_2(Derived) = Uninitialized[d] : &:r802_1 +# 802| r802_3(glval) = FunctionAddress[Derived] : +# 802| v802_4(void) = Call[Derived] : func:r802_3, this:r802_1 +# 802| m802_5(unknown) = ^CallSideEffect : ~m801_6 +# 802| m802_6(unknown) = Chi : total:m801_6, partial:m802_5 +# 802| m802_7(Derived) = ^IndirectMayWriteSideEffect[-1] : &:r802_1 +# 802| m802_8(Derived) = Chi : total:m802_2, partial:m802_7 +# 804| r804_1(glval) = VariableAddress[pb] : +# 804| r804_2(glval) = VariableAddress[b] : +# 804| r804_3(Base *) = CopyValue : r804_2 +# 804| m804_4(Base *) = Store[pb] : &:r804_1, r804_3 +# 805| r805_1(glval) = VariableAddress[pm] : +# 805| r805_2(glval) = VariableAddress[m] : +# 805| r805_3(Middle *) = CopyValue : r805_2 +# 805| m805_4(Middle *) = Store[pm] : &:r805_1, r805_3 +# 806| r806_1(glval) = VariableAddress[pd] : +# 806| r806_2(glval) = VariableAddress[d] : +# 806| r806_3(Derived *) = CopyValue : r806_2 +# 806| m806_4(Derived *) = Store[pd] : &:r806_1, r806_3 +# 808| r808_1(glval) = VariableAddress[b] : +# 808| r808_2(glval) = FunctionAddress[operator=] : +# 808| r808_3(glval) = VariableAddress[m] : +# 808| r808_4(glval) = ConvertToNonVirtualBase[Middle : Base] : r808_3 +# 808| r808_5(Base &) = CopyValue : r808_4 +# 808| r808_6(Base &) = Call[operator=] : func:r808_2, this:r808_1, 0:r808_5 +# 808| m808_7(unknown) = ^CallSideEffect : ~m802_6 +# 808| m808_8(unknown) = Chi : total:m802_6, partial:m808_7 +# 808| v808_9(void) = ^IndirectReadSideEffect[-1] : &:r808_1, m800_8 +# 808| v808_10(void) = ^BufferReadSideEffect[0] : &:r808_5, ~m801_8 +# 808| m808_11(Base) = ^IndirectMayWriteSideEffect[-1] : &:r808_1 +# 808| m808_12(Base) = Chi : total:m800_8, partial:m808_11 +# 808| r808_13(glval) = CopyValue : r808_6 +# 809| r809_1(glval) = VariableAddress[b] : +# 809| r809_2(glval) = FunctionAddress[operator=] : +# 809| r809_3(glval) = VariableAddress[#temp809:7] : +# 809| m809_4(Base) = Uninitialized[#temp809:7] : &:r809_3 +# 809| r809_5(glval) = FunctionAddress[Base] : +# 809| r809_6(glval) = VariableAddress[m] : +# 809| r809_7(glval) = ConvertToNonVirtualBase[Middle : Base] : r809_6 +# 809| r809_8(Base &) = CopyValue : r809_7 +# 809| v809_9(void) = Call[Base] : func:r809_5, this:r809_3, 0:r809_8 +# 809| m809_10(unknown) = ^CallSideEffect : ~m808_8 +# 809| m809_11(unknown) = Chi : total:m808_8, partial:m809_10 +# 809| v809_12(void) = ^BufferReadSideEffect[0] : &:r809_8, ~m801_8 +# 809| m809_13(Base) = ^IndirectMayWriteSideEffect[-1] : &:r809_3 +# 809| m809_14(Base) = Chi : total:m809_4, partial:m809_13 +# 809| r809_15(glval) = Convert : r809_3 +# 809| r809_16(Base &) = CopyValue : r809_15 +# 809| r809_17(Base &) = Call[operator=] : func:r809_2, this:r809_1, 0:r809_16 +# 809| m809_18(unknown) = ^CallSideEffect : ~m809_11 +# 809| m809_19(unknown) = Chi : total:m809_11, partial:m809_18 +# 809| v809_20(void) = ^IndirectReadSideEffect[-1] : &:r809_1, m808_12 +# 809| v809_21(void) = ^BufferReadSideEffect[0] : &:r809_16, ~m809_14 +# 809| m809_22(Base) = ^IndirectMayWriteSideEffect[-1] : &:r809_1 +# 809| m809_23(Base) = Chi : total:m808_12, partial:m809_22 +# 809| r809_24(glval) = CopyValue : r809_17 +# 810| r810_1(glval) = VariableAddress[b] : +# 810| r810_2(glval) = FunctionAddress[operator=] : +# 810| r810_3(glval) = VariableAddress[#temp810:7] : +# 810| m810_4(Base) = Uninitialized[#temp810:7] : &:r810_3 +# 810| r810_5(glval) = FunctionAddress[Base] : +# 810| r810_6(glval) = VariableAddress[m] : +# 810| r810_7(glval) = ConvertToNonVirtualBase[Middle : Base] : r810_6 +# 810| r810_8(Base &) = CopyValue : r810_7 +# 810| v810_9(void) = Call[Base] : func:r810_5, this:r810_3, 0:r810_8 +# 810| m810_10(unknown) = ^CallSideEffect : ~m809_19 +# 810| m810_11(unknown) = Chi : total:m809_19, partial:m810_10 +# 810| v810_12(void) = ^BufferReadSideEffect[0] : &:r810_8, ~m801_8 +# 810| m810_13(Base) = ^IndirectMayWriteSideEffect[-1] : &:r810_3 +# 810| m810_14(Base) = Chi : total:m810_4, partial:m810_13 +# 810| r810_15(glval) = Convert : r810_3 +# 810| r810_16(Base &) = CopyValue : r810_15 +# 810| r810_17(Base &) = Call[operator=] : func:r810_2, this:r810_1, 0:r810_16 +# 810| m810_18(unknown) = ^CallSideEffect : ~m810_11 +# 810| m810_19(unknown) = Chi : total:m810_11, partial:m810_18 +# 810| v810_20(void) = ^IndirectReadSideEffect[-1] : &:r810_1, m809_23 +# 810| v810_21(void) = ^BufferReadSideEffect[0] : &:r810_16, ~m810_14 +# 810| m810_22(Base) = ^IndirectMayWriteSideEffect[-1] : &:r810_1 +# 810| m810_23(Base) = Chi : total:m809_23, partial:m810_22 +# 810| r810_24(glval) = CopyValue : r810_17 +# 811| r811_1(glval) = VariableAddress[pm] : +# 811| r811_2(Middle *) = Load[pm] : &:r811_1, m805_4 +# 811| r811_3(Base *) = ConvertToNonVirtualBase[Middle : Base] : r811_2 +# 811| r811_4(glval) = VariableAddress[pb] : +# 811| m811_5(Base *) = Store[pb] : &:r811_4, r811_3 +# 812| r812_1(glval) = VariableAddress[pm] : +# 812| r812_2(Middle *) = Load[pm] : &:r812_1, m805_4 +# 812| r812_3(Base *) = ConvertToNonVirtualBase[Middle : Base] : r812_2 +# 812| r812_4(glval) = VariableAddress[pb] : +# 812| m812_5(Base *) = Store[pb] : &:r812_4, r812_3 +# 813| r813_1(glval) = VariableAddress[pm] : +# 813| r813_2(Middle *) = Load[pm] : &:r813_1, m805_4 +# 813| r813_3(Base *) = ConvertToNonVirtualBase[Middle : Base] : r813_2 +# 813| r813_4(glval) = VariableAddress[pb] : +# 813| m813_5(Base *) = Store[pb] : &:r813_4, r813_3 +# 814| r814_1(glval) = VariableAddress[pm] : +# 814| r814_2(Middle *) = Load[pm] : &:r814_1, m805_4 +# 814| r814_3(Base *) = Convert : r814_2 +# 814| r814_4(glval) = VariableAddress[pb] : +# 814| m814_5(Base *) = Store[pb] : &:r814_4, r814_3 +# 816| r816_1(glval) = VariableAddress[m] : +# 816| r816_2(glval) = FunctionAddress[operator=] : +# 816| r816_3(glval) = VariableAddress[b] : +# 816| r816_4(glval) = ConvertToDerived[Middle : Base] : r816_3 +# 816| r816_5(glval) = Convert : r816_4 +# 816| r816_6(Middle &) = CopyValue : r816_5 +# 816| r816_7(Middle &) = Call[operator=] : func:r816_2, this:r816_1, 0:r816_6 +# 816| m816_8(unknown) = ^CallSideEffect : ~m810_19 +# 816| m816_9(unknown) = Chi : total:m810_19, partial:m816_8 +# 816| v816_10(void) = ^IndirectReadSideEffect[-1] : &:r816_1, m801_8 +# 816| v816_11(void) = ^BufferReadSideEffect[0] : &:r816_6, ~m810_23 +# 816| m816_12(Middle) = ^IndirectMayWriteSideEffect[-1] : &:r816_1 +# 816| m816_13(Middle) = Chi : total:m801_8, partial:m816_12 +# 816| r816_14(glval) = CopyValue : r816_7 +# 817| r817_1(glval) = VariableAddress[m] : +# 817| r817_2(glval) = FunctionAddress[operator=] : +# 817| r817_3(glval) = VariableAddress[b] : +# 817| r817_4(glval) = ConvertToDerived[Middle : Base] : r817_3 +# 817| r817_5(glval) = Convert : r817_4 +# 817| r817_6(Middle &) = CopyValue : r817_5 +# 817| r817_7(Middle &) = Call[operator=] : func:r817_2, this:r817_1, 0:r817_6 +# 817| m817_8(unknown) = ^CallSideEffect : ~m816_9 +# 817| m817_9(unknown) = Chi : total:m816_9, partial:m817_8 +# 817| v817_10(void) = ^IndirectReadSideEffect[-1] : &:r817_1, m816_13 +# 817| v817_11(void) = ^BufferReadSideEffect[0] : &:r817_6, ~m810_23 +# 817| m817_12(Middle) = ^IndirectMayWriteSideEffect[-1] : &:r817_1 +# 817| m817_13(Middle) = Chi : total:m816_13, partial:m817_12 +# 817| r817_14(glval) = CopyValue : r817_7 +# 818| r818_1(glval) = VariableAddress[pb] : +# 818| r818_2(Base *) = Load[pb] : &:r818_1, m814_5 +# 818| r818_3(Middle *) = ConvertToDerived[Middle : Base] : r818_2 +# 818| r818_4(glval) = VariableAddress[pm] : +# 818| m818_5(Middle *) = Store[pm] : &:r818_4, r818_3 +# 819| r819_1(glval) = VariableAddress[pb] : +# 819| r819_2(Base *) = Load[pb] : &:r819_1, m814_5 +# 819| r819_3(Middle *) = ConvertToDerived[Middle : Base] : r819_2 +# 819| r819_4(glval) = VariableAddress[pm] : +# 819| m819_5(Middle *) = Store[pm] : &:r819_4, r819_3 +# 820| r820_1(glval) = VariableAddress[pb] : +# 820| r820_2(Base *) = Load[pb] : &:r820_1, m814_5 +# 820| r820_3(Middle *) = Convert : r820_2 +# 820| r820_4(glval) = VariableAddress[pm] : +# 820| m820_5(Middle *) = Store[pm] : &:r820_4, r820_3 +# 822| r822_1(glval) = VariableAddress[b] : +# 822| r822_2(glval) = FunctionAddress[operator=] : +# 822| r822_3(glval) = VariableAddress[d] : +# 822| r822_4(glval) = ConvertToNonVirtualBase[Derived : Middle] : r822_3 +# 822| r822_5(glval) = ConvertToNonVirtualBase[Middle : Base] : r822_4 +# 822| r822_6(Base &) = CopyValue : r822_5 +# 822| r822_7(Base &) = Call[operator=] : func:r822_2, this:r822_1, 0:r822_6 +# 822| m822_8(unknown) = ^CallSideEffect : ~m817_9 +# 822| m822_9(unknown) = Chi : total:m817_9, partial:m822_8 +# 822| v822_10(void) = ^IndirectReadSideEffect[-1] : &:r822_1, m810_23 +# 822| v822_11(void) = ^BufferReadSideEffect[0] : &:r822_6, ~m802_8 +# 822| m822_12(Base) = ^IndirectMayWriteSideEffect[-1] : &:r822_1 +# 822| m822_13(Base) = Chi : total:m810_23, partial:m822_12 +# 822| r822_14(glval) = CopyValue : r822_7 +# 823| r823_1(glval) = VariableAddress[b] : +# 823| r823_2(glval) = FunctionAddress[operator=] : +# 823| r823_3(glval) = VariableAddress[#temp823:7] : +# 823| m823_4(Base) = Uninitialized[#temp823:7] : &:r823_3 +# 823| r823_5(glval) = FunctionAddress[Base] : +# 823| r823_6(glval) = VariableAddress[d] : +# 823| r823_7(glval) = ConvertToNonVirtualBase[Derived : Middle] : r823_6 +# 823| r823_8(glval) = ConvertToNonVirtualBase[Middle : Base] : r823_7 +# 823| r823_9(Base &) = CopyValue : r823_8 +# 823| v823_10(void) = Call[Base] : func:r823_5, this:r823_3, 0:r823_9 +# 823| m823_11(unknown) = ^CallSideEffect : ~m822_9 +# 823| m823_12(unknown) = Chi : total:m822_9, partial:m823_11 +# 823| v823_13(void) = ^BufferReadSideEffect[0] : &:r823_9, ~m802_8 +# 823| m823_14(Base) = ^IndirectMayWriteSideEffect[-1] : &:r823_3 +# 823| m823_15(Base) = Chi : total:m823_4, partial:m823_14 +# 823| r823_16(glval) = Convert : r823_3 +# 823| r823_17(Base &) = CopyValue : r823_16 +# 823| r823_18(Base &) = Call[operator=] : func:r823_2, this:r823_1, 0:r823_17 +# 823| m823_19(unknown) = ^CallSideEffect : ~m823_12 +# 823| m823_20(unknown) = Chi : total:m823_12, partial:m823_19 +# 823| v823_21(void) = ^IndirectReadSideEffect[-1] : &:r823_1, m822_13 +# 823| v823_22(void) = ^BufferReadSideEffect[0] : &:r823_17, ~m823_15 +# 823| m823_23(Base) = ^IndirectMayWriteSideEffect[-1] : &:r823_1 +# 823| m823_24(Base) = Chi : total:m822_13, partial:m823_23 +# 823| r823_25(glval) = CopyValue : r823_18 +# 824| r824_1(glval) = VariableAddress[b] : +# 824| r824_2(glval) = FunctionAddress[operator=] : +# 824| r824_3(glval) = VariableAddress[#temp824:7] : +# 824| m824_4(Base) = Uninitialized[#temp824:7] : &:r824_3 +# 824| r824_5(glval) = FunctionAddress[Base] : +# 824| r824_6(glval) = VariableAddress[d] : +# 824| r824_7(glval) = ConvertToNonVirtualBase[Derived : Middle] : r824_6 +# 824| r824_8(glval) = ConvertToNonVirtualBase[Middle : Base] : r824_7 +# 824| r824_9(Base &) = CopyValue : r824_8 +# 824| v824_10(void) = Call[Base] : func:r824_5, this:r824_3, 0:r824_9 +# 824| m824_11(unknown) = ^CallSideEffect : ~m823_20 +# 824| m824_12(unknown) = Chi : total:m823_20, partial:m824_11 +# 824| v824_13(void) = ^BufferReadSideEffect[0] : &:r824_9, ~m802_8 +# 824| m824_14(Base) = ^IndirectMayWriteSideEffect[-1] : &:r824_3 +# 824| m824_15(Base) = Chi : total:m824_4, partial:m824_14 +# 824| r824_16(glval) = Convert : r824_3 +# 824| r824_17(Base &) = CopyValue : r824_16 +# 824| r824_18(Base &) = Call[operator=] : func:r824_2, this:r824_1, 0:r824_17 +# 824| m824_19(unknown) = ^CallSideEffect : ~m824_12 +# 824| m824_20(unknown) = Chi : total:m824_12, partial:m824_19 +# 824| v824_21(void) = ^IndirectReadSideEffect[-1] : &:r824_1, m823_24 +# 824| v824_22(void) = ^BufferReadSideEffect[0] : &:r824_17, ~m824_15 +# 824| m824_23(Base) = ^IndirectMayWriteSideEffect[-1] : &:r824_1 +# 824| m824_24(Base) = Chi : total:m823_24, partial:m824_23 +# 824| r824_25(glval) = CopyValue : r824_18 +# 825| r825_1(glval) = VariableAddress[pd] : +# 825| r825_2(Derived *) = Load[pd] : &:r825_1, m806_4 +# 825| r825_3(Middle *) = ConvertToNonVirtualBase[Derived : Middle] : r825_2 +# 825| r825_4(Base *) = ConvertToNonVirtualBase[Middle : Base] : r825_3 +# 825| r825_5(glval) = VariableAddress[pb] : +# 825| m825_6(Base *) = Store[pb] : &:r825_5, r825_4 +# 826| r826_1(glval) = VariableAddress[pd] : +# 826| r826_2(Derived *) = Load[pd] : &:r826_1, m806_4 +# 826| r826_3(Middle *) = ConvertToNonVirtualBase[Derived : Middle] : r826_2 +# 826| r826_4(Base *) = ConvertToNonVirtualBase[Middle : Base] : r826_3 +# 826| r826_5(glval) = VariableAddress[pb] : +# 826| m826_6(Base *) = Store[pb] : &:r826_5, r826_4 +# 827| r827_1(glval) = VariableAddress[pd] : +# 827| r827_2(Derived *) = Load[pd] : &:r827_1, m806_4 +# 827| r827_3(Middle *) = ConvertToNonVirtualBase[Derived : Middle] : r827_2 +# 827| r827_4(Base *) = ConvertToNonVirtualBase[Middle : Base] : r827_3 +# 827| r827_5(glval) = VariableAddress[pb] : +# 827| m827_6(Base *) = Store[pb] : &:r827_5, r827_4 +# 828| r828_1(glval) = VariableAddress[pd] : +# 828| r828_2(Derived *) = Load[pd] : &:r828_1, m806_4 +# 828| r828_3(Base *) = Convert : r828_2 +# 828| r828_4(glval) = VariableAddress[pb] : +# 828| m828_5(Base *) = Store[pb] : &:r828_4, r828_3 +# 830| r830_1(glval) = VariableAddress[d] : +# 830| r830_2(glval) = FunctionAddress[operator=] : +# 830| r830_3(glval) = VariableAddress[b] : +# 830| r830_4(glval) = ConvertToDerived[Middle : Base] : r830_3 +# 830| r830_5(glval) = ConvertToDerived[Derived : Middle] : r830_4 +# 830| r830_6(glval) = Convert : r830_5 +# 830| r830_7(Derived &) = CopyValue : r830_6 +# 830| r830_8(Derived &) = Call[operator=] : func:r830_2, this:r830_1, 0:r830_7 +# 830| m830_9(unknown) = ^CallSideEffect : ~m824_20 +# 830| m830_10(unknown) = Chi : total:m824_20, partial:m830_9 +# 830| v830_11(void) = ^IndirectReadSideEffect[-1] : &:r830_1, m802_8 +# 830| v830_12(void) = ^BufferReadSideEffect[0] : &:r830_7, ~m824_24 +# 830| m830_13(Derived) = ^IndirectMayWriteSideEffect[-1] : &:r830_1 +# 830| m830_14(Derived) = Chi : total:m802_8, partial:m830_13 +# 830| r830_15(glval) = CopyValue : r830_8 +# 831| r831_1(glval) = VariableAddress[d] : +# 831| r831_2(glval) = FunctionAddress[operator=] : +# 831| r831_3(glval) = VariableAddress[b] : +# 831| r831_4(glval) = ConvertToDerived[Middle : Base] : r831_3 +# 831| r831_5(glval) = ConvertToDerived[Derived : Middle] : r831_4 +# 831| r831_6(glval) = Convert : r831_5 +# 831| r831_7(Derived &) = CopyValue : r831_6 +# 831| r831_8(Derived &) = Call[operator=] : func:r831_2, this:r831_1, 0:r831_7 +# 831| m831_9(unknown) = ^CallSideEffect : ~m830_10 +# 831| m831_10(unknown) = Chi : total:m830_10, partial:m831_9 +# 831| v831_11(void) = ^IndirectReadSideEffect[-1] : &:r831_1, m830_14 +# 831| v831_12(void) = ^BufferReadSideEffect[0] : &:r831_7, ~m824_24 +# 831| m831_13(Derived) = ^IndirectMayWriteSideEffect[-1] : &:r831_1 +# 831| m831_14(Derived) = Chi : total:m830_14, partial:m831_13 +# 831| r831_15(glval) = CopyValue : r831_8 +# 832| r832_1(glval) = VariableAddress[pb] : +# 832| r832_2(Base *) = Load[pb] : &:r832_1, m828_5 +# 832| r832_3(Middle *) = ConvertToDerived[Middle : Base] : r832_2 +# 832| r832_4(Derived *) = ConvertToDerived[Derived : Middle] : r832_3 +# 832| r832_5(glval) = VariableAddress[pd] : +# 832| m832_6(Derived *) = Store[pd] : &:r832_5, r832_4 +# 833| r833_1(glval) = VariableAddress[pb] : +# 833| r833_2(Base *) = Load[pb] : &:r833_1, m828_5 +# 833| r833_3(Middle *) = ConvertToDerived[Middle : Base] : r833_2 +# 833| r833_4(Derived *) = ConvertToDerived[Derived : Middle] : r833_3 +# 833| r833_5(glval) = VariableAddress[pd] : +# 833| m833_6(Derived *) = Store[pd] : &:r833_5, r833_4 +# 834| r834_1(glval) = VariableAddress[pb] : +# 834| r834_2(Base *) = Load[pb] : &:r834_1, m828_5 +# 834| r834_3(Derived *) = Convert : r834_2 +# 834| r834_4(glval) = VariableAddress[pd] : +# 834| m834_5(Derived *) = Store[pd] : &:r834_4, r834_3 +# 836| r836_1(glval) = VariableAddress[pmv] : +# 836| r836_2(MiddleVB1 *) = Constant[0] : +# 836| m836_3(MiddleVB1 *) = Store[pmv] : &:r836_1, r836_2 +# 837| r837_1(glval) = VariableAddress[pdv] : +# 837| r837_2(DerivedVB *) = Constant[0] : +# 837| m837_3(DerivedVB *) = Store[pdv] : &:r837_1, r837_2 +# 838| r838_1(glval) = VariableAddress[pmv] : +# 838| r838_2(MiddleVB1 *) = Load[pmv] : &:r838_1, m836_3 +# 838| r838_3(Base *) = ConvertToVirtualBase[MiddleVB1 : Base] : r838_2 +# 838| r838_4(glval) = VariableAddress[pb] : +# 838| m838_5(Base *) = Store[pb] : &:r838_4, r838_3 +# 839| r839_1(glval) = VariableAddress[pdv] : +# 839| r839_2(DerivedVB *) = Load[pdv] : &:r839_1, m837_3 +# 839| r839_3(Base *) = ConvertToVirtualBase[DerivedVB : Base] : r839_2 +# 839| r839_4(glval) = VariableAddress[pb] : +# 839| m839_5(Base *) = Store[pb] : &:r839_4, r839_3 +# 840| v840_1(void) = NoOp : +# 799| v799_5(void) = ReturnVoid : +# 799| v799_6(void) = AliasedUse : ~m831_10 +# 799| v799_7(void) = ExitFunction : + +# 842| void PolymorphicBase::PolymorphicBase() +# 842| Block 0 +# 842| v842_1(void) = EnterFunction : +# 842| m842_2(unknown) = AliasedDefinition : +# 842| m842_3(unknown) = InitializeNonLocal : +# 842| m842_4(unknown) = Chi : total:m842_2, partial:m842_3 +# 842| r842_5(glval) = VariableAddress[#this] : +# 842| m842_6(glval) = InitializeParameter[#this] : &:r842_5 +# 842| r842_7(glval) = Load[#this] : &:r842_5, m842_6 +# 842| m842_8(PolymorphicBase) = InitializeIndirection[#this] : &:r842_7 +# 842| v842_9(void) = NoOp : +# 842| v842_10(void) = ReturnIndirection[#this] : &:r842_7, m842_8 +# 842| v842_11(void) = ReturnVoid : +# 842| v842_12(void) = AliasedUse : m842_3 +# 842| v842_13(void) = ExitFunction : + +# 846| void PolymorphicDerived::PolymorphicDerived() +# 846| Block 0 +# 846| v846_1(void) = EnterFunction : +# 846| m846_2(unknown) = AliasedDefinition : +# 846| m846_3(unknown) = InitializeNonLocal : +# 846| m846_4(unknown) = Chi : total:m846_2, partial:m846_3 +# 846| r846_5(glval) = VariableAddress[#this] : +# 846| m846_6(glval) = InitializeParameter[#this] : &:r846_5 +# 846| r846_7(glval) = Load[#this] : &:r846_5, m846_6 +# 846| m846_8(PolymorphicDerived) = InitializeIndirection[#this] : &:r846_7 +# 846| r846_9(glval) = ConvertToNonVirtualBase[PolymorphicDerived : PolymorphicBase] : m846_6 +# 846| r846_10(glval) = FunctionAddress[PolymorphicBase] : +# 846| v846_11(void) = Call[PolymorphicBase] : func:r846_10, this:r846_9 +# 846| m846_12(unknown) = ^CallSideEffect : ~m846_4 +# 846| m846_13(unknown) = Chi : total:m846_4, partial:m846_12 +# 846| m846_14(PolymorphicBase) = ^IndirectMayWriteSideEffect[-1] : &:r846_9 +# 846| m846_15(unknown) = Chi : total:m846_8, partial:m846_14 +# 846| v846_16(void) = NoOp : +# 846| v846_17(void) = ReturnIndirection[#this] : &:r846_7, m846_15 +# 846| v846_18(void) = ReturnVoid : +# 846| v846_19(void) = AliasedUse : ~m846_13 +# 846| v846_20(void) = ExitFunction : + +# 846| void PolymorphicDerived::~PolymorphicDerived() +# 846| Block 0 +# 846| v846_1(void) = EnterFunction : +# 846| m846_2(unknown) = AliasedDefinition : +# 846| m846_3(unknown) = InitializeNonLocal : +# 846| m846_4(unknown) = Chi : total:m846_2, partial:m846_3 +# 846| r846_5(glval) = VariableAddress[#this] : +# 846| m846_6(glval) = InitializeParameter[#this] : &:r846_5 +# 846| r846_7(glval) = Load[#this] : &:r846_5, m846_6 +# 846| m846_8(PolymorphicDerived) = InitializeIndirection[#this] : &:r846_7 +#-----| v0_1(void) = NoOp : +# 846| r846_9(glval) = ConvertToNonVirtualBase[PolymorphicDerived : PolymorphicBase] : m846_6 +# 846| r846_10(glval) = FunctionAddress[~PolymorphicBase] : +# 846| v846_11(void) = Call[~PolymorphicBase] : func:r846_10, this:r846_9 +# 846| m846_12(unknown) = ^CallSideEffect : ~m846_4 +# 846| m846_13(unknown) = Chi : total:m846_4, partial:m846_12 +# 846| v846_14(void) = ReturnIndirection[#this] : &:r846_7, m846_8 +# 846| v846_15(void) = ReturnVoid : +# 846| v846_16(void) = AliasedUse : ~m846_13 +# 846| v846_17(void) = ExitFunction : + +# 849| void DynamicCast() +# 849| Block 0 +# 849| v849_1(void) = EnterFunction : +# 849| m849_2(unknown) = AliasedDefinition : +# 849| m849_3(unknown) = InitializeNonLocal : +# 849| m849_4(unknown) = Chi : total:m849_2, partial:m849_3 +# 850| r850_1(glval) = VariableAddress[b] : +# 850| m850_2(PolymorphicBase) = Uninitialized[b] : &:r850_1 +# 850| r850_3(glval) = FunctionAddress[PolymorphicBase] : +# 850| v850_4(void) = Call[PolymorphicBase] : func:r850_3, this:r850_1 +# 850| m850_5(unknown) = ^CallSideEffect : ~m849_4 +# 850| m850_6(unknown) = Chi : total:m849_4, partial:m850_5 +# 850| m850_7(PolymorphicBase) = ^IndirectMayWriteSideEffect[-1] : &:r850_1 +# 850| m850_8(PolymorphicBase) = Chi : total:m850_2, partial:m850_7 +# 851| r851_1(glval) = VariableAddress[d] : +# 851| m851_2(PolymorphicDerived) = Uninitialized[d] : &:r851_1 +# 851| r851_3(glval) = FunctionAddress[PolymorphicDerived] : +# 851| v851_4(void) = Call[PolymorphicDerived] : func:r851_3, this:r851_1 +# 851| m851_5(unknown) = ^CallSideEffect : ~m850_6 +# 851| m851_6(unknown) = Chi : total:m850_6, partial:m851_5 +# 851| m851_7(PolymorphicDerived) = ^IndirectMayWriteSideEffect[-1] : &:r851_1 +# 851| m851_8(PolymorphicDerived) = Chi : total:m851_2, partial:m851_7 +# 853| r853_1(glval) = VariableAddress[pb] : +# 853| r853_2(glval) = VariableAddress[b] : +# 853| r853_3(PolymorphicBase *) = CopyValue : r853_2 +# 853| m853_4(PolymorphicBase *) = Store[pb] : &:r853_1, r853_3 +# 854| r854_1(glval) = VariableAddress[pd] : +# 854| r854_2(glval) = VariableAddress[d] : +# 854| r854_3(PolymorphicDerived *) = CopyValue : r854_2 +# 854| m854_4(PolymorphicDerived *) = Store[pd] : &:r854_1, r854_3 +# 857| r857_1(glval) = VariableAddress[pd] : +# 857| r857_2(PolymorphicDerived *) = Load[pd] : &:r857_1, m854_4 +# 857| r857_3(PolymorphicBase *) = CheckedConvertOrNull : r857_2 +# 857| r857_4(glval) = VariableAddress[pb] : +# 857| m857_5(PolymorphicBase *) = Store[pb] : &:r857_4, r857_3 +# 858| r858_1(glval) = VariableAddress[rb] : +# 858| r858_2(glval) = VariableAddress[d] : +# 858| r858_3(glval) = CheckedConvertOrThrow : r858_2 +# 858| r858_4(PolymorphicBase &) = CopyValue : r858_3 +# 858| m858_5(PolymorphicBase &) = Store[rb] : &:r858_1, r858_4 +# 860| r860_1(glval) = VariableAddress[pb] : +# 860| r860_2(PolymorphicBase *) = Load[pb] : &:r860_1, m857_5 +# 860| r860_3(PolymorphicDerived *) = CheckedConvertOrNull : r860_2 +# 860| r860_4(glval) = VariableAddress[pd] : +# 860| m860_5(PolymorphicDerived *) = Store[pd] : &:r860_4, r860_3 +# 861| r861_1(glval) = VariableAddress[rd] : +# 861| r861_2(glval) = VariableAddress[b] : +# 861| r861_3(glval) = CheckedConvertOrThrow : r861_2 +# 861| r861_4(PolymorphicDerived &) = CopyValue : r861_3 +# 861| m861_5(PolymorphicDerived &) = Store[rd] : &:r861_1, r861_4 +# 863| r863_1(glval) = VariableAddress[pv] : +# 863| r863_2(glval) = VariableAddress[pb] : +# 863| r863_3(PolymorphicBase *) = Load[pb] : &:r863_2, m857_5 +# 863| r863_4(void *) = CompleteObjectAddress : r863_3 +# 863| m863_5(void *) = Store[pv] : &:r863_1, r863_4 +# 864| r864_1(glval) = VariableAddress[pcv] : +# 864| r864_2(glval) = VariableAddress[pd] : +# 864| r864_3(PolymorphicDerived *) = Load[pd] : &:r864_2, m860_5 +# 864| r864_4(void *) = CompleteObjectAddress : r864_3 +# 864| m864_5(void *) = Store[pcv] : &:r864_1, r864_4 +# 865| v865_1(void) = NoOp : +# 849| v849_5(void) = ReturnVoid : +# 849| v849_6(void) = AliasedUse : ~m851_6 +# 849| v849_7(void) = ExitFunction : + +# 867| void String::String() +# 867| Block 0 +# 867| v867_1(void) = EnterFunction : +# 867| m867_2(unknown) = AliasedDefinition : +# 867| m867_3(unknown) = InitializeNonLocal : +# 867| m867_4(unknown) = Chi : total:m867_2, partial:m867_3 +# 867| r867_5(glval) = VariableAddress[#this] : +# 867| m867_6(glval) = InitializeParameter[#this] : &:r867_5 +# 867| r867_7(glval) = Load[#this] : &:r867_5, m867_6 +# 867| m867_8(String) = InitializeIndirection[#this] : &:r867_7 +# 868| r868_1(glval) = FunctionAddress[String] : +# 868| r868_2(glval) = StringConstant[""] : +# 868| r868_3(char *) = Convert : r868_2 +# 868| v868_4(void) = Call[String] : func:r868_1, this:m867_6, 0:r868_3 +# 868| m868_5(unknown) = ^CallSideEffect : ~m867_4 +# 868| m868_6(unknown) = Chi : total:m867_4, partial:m868_5 +# 868| v868_7(void) = ^BufferReadSideEffect[0] : &:r868_3, ~m867_3 +# 868| m868_8(String) = ^IndirectMayWriteSideEffect[-1] : &:m867_6 +# 868| m868_9(unknown) = Chi : total:m867_8, partial:m868_8 +# 869| v869_1(void) = NoOp : +# 867| v867_9(void) = ReturnIndirection[#this] : &:r867_7, m868_9 +# 867| v867_10(void) = ReturnVoid : +# 867| v867_11(void) = AliasedUse : ~m868_6 +# 867| v867_12(void) = ExitFunction : + +# 871| void ArrayConversions() +# 871| Block 0 +# 871| v871_1(void) = EnterFunction : +# 871| m871_2(unknown) = AliasedDefinition : +# 871| m871_3(unknown) = InitializeNonLocal : +# 871| m871_4(unknown) = Chi : total:m871_2, partial:m871_3 +# 872| r872_1(glval) = VariableAddress[a] : +# 872| m872_2(char[5]) = Uninitialized[a] : &:r872_1 +# 873| r873_1(glval) = VariableAddress[p] : +# 873| r873_2(glval) = VariableAddress[a] : +# 873| r873_3(char *) = Convert : r873_2 +# 873| r873_4(char *) = Convert : r873_3 +# 873| m873_5(char *) = Store[p] : &:r873_1, r873_4 +# 874| r874_1(glval) = StringConstant["test"] : +# 874| r874_2(char *) = Convert : r874_1 +# 874| r874_3(glval) = VariableAddress[p] : +# 874| m874_4(char *) = Store[p] : &:r874_3, r874_2 +# 875| r875_1(glval) = VariableAddress[a] : +# 875| r875_2(char *) = Convert : r875_1 +# 875| r875_3(int) = Constant[0] : +# 875| r875_4(glval) = PointerAdd[1] : r875_2, r875_3 +# 875| r875_5(char *) = CopyValue : r875_4 +# 875| r875_6(char *) = Convert : r875_5 +# 875| r875_7(glval) = VariableAddress[p] : +# 875| m875_8(char *) = Store[p] : &:r875_7, r875_6 +# 876| r876_1(glval) = StringConstant["test"] : +# 876| r876_2(char *) = Convert : r876_1 +# 876| r876_3(int) = Constant[0] : +# 876| r876_4(glval) = PointerAdd[1] : r876_2, r876_3 +# 876| r876_5(char *) = CopyValue : r876_4 +# 876| r876_6(glval) = VariableAddress[p] : +# 876| m876_7(char *) = Store[p] : &:r876_6, r876_5 +# 877| r877_1(glval) = VariableAddress[ra] : +# 877| r877_2(glval) = VariableAddress[a] : +# 877| r877_3(char(&)[5]) = CopyValue : r877_2 +# 877| m877_4(char(&)[5]) = Store[ra] : &:r877_1, r877_3 +# 878| r878_1(glval) = VariableAddress[rs] : +# 878| r878_2(glval) = StringConstant["test"] : +# 878| r878_3(char(&)[5]) = CopyValue : r878_2 +# 878| m878_4(char(&)[5]) = Store[rs] : &:r878_1, r878_3 +# 879| r879_1(glval) = VariableAddress[pa] : +# 879| r879_2(glval) = VariableAddress[a] : +# 879| r879_3(char(*)[5]) = CopyValue : r879_2 +# 879| r879_4(char(*)[5]) = Convert : r879_3 +# 879| m879_5(char(*)[5]) = Store[pa] : &:r879_1, r879_4 +# 880| r880_1(glval) = StringConstant["test"] : +# 880| r880_2(char(*)[5]) = CopyValue : r880_1 +# 880| r880_3(glval) = VariableAddress[pa] : +# 880| m880_4(char(*)[5]) = Store[pa] : &:r880_3, r880_2 +# 881| v881_1(void) = NoOp : +# 871| v871_5(void) = ReturnVoid : +# 871| v871_6(void) = AliasedUse : m871_3 +# 871| v871_7(void) = ExitFunction : + +# 883| void FuncPtrConversions(int(*)(int), void*) +# 883| Block 0 +# 883| v883_1(void) = EnterFunction : +# 883| m883_2(unknown) = AliasedDefinition : +# 883| m883_3(unknown) = InitializeNonLocal : +# 883| m883_4(unknown) = Chi : total:m883_2, partial:m883_3 +# 883| r883_5(glval<..(*)(..)>) = VariableAddress[pfn] : +# 883| m883_6(..(*)(..)) = InitializeParameter[pfn] : &:r883_5 +# 883| r883_7(glval) = VariableAddress[p] : +# 883| m883_8(void *) = InitializeParameter[p] : &:r883_7 +# 883| r883_9(void *) = Load[p] : &:r883_7, m883_8 +# 883| m883_10(unknown) = InitializeIndirection[p] : &:r883_9 +# 884| r884_1(glval<..(*)(..)>) = VariableAddress[pfn] : +# 884| r884_2(..(*)(..)) = Load[pfn] : &:r884_1, m883_6 +# 884| r884_3(void *) = Convert : r884_2 +# 884| r884_4(glval) = VariableAddress[p] : +# 884| m884_5(void *) = Store[p] : &:r884_4, r884_3 +# 885| r885_1(glval) = VariableAddress[p] : +# 885| r885_2(void *) = Load[p] : &:r885_1, m884_5 +# 885| r885_3(..(*)(..)) = Convert : r885_2 +# 885| r885_4(glval<..(*)(..)>) = VariableAddress[pfn] : +# 885| m885_5(..(*)(..)) = Store[pfn] : &:r885_4, r885_3 +# 886| v886_1(void) = NoOp : +# 883| v883_11(void) = ReturnIndirection[p] : &:r883_9, m883_10 +# 883| v883_12(void) = ReturnVoid : +# 883| v883_13(void) = AliasedUse : m883_3 +# 883| v883_14(void) = ExitFunction : + +# 888| void VAListUsage(int, __va_list_tag[1]) +# 888| Block 0 +# 888| v888_1(void) = EnterFunction : +# 888| m888_2(unknown) = AliasedDefinition : +# 888| m888_3(unknown) = InitializeNonLocal : +# 888| m888_4(unknown) = Chi : total:m888_2, partial:m888_3 +# 888| r888_5(glval) = VariableAddress[x] : +# 888| m888_6(int) = InitializeParameter[x] : &:r888_5 +# 888| r888_7(glval<__va_list_tag *>) = VariableAddress[args] : +# 888| m888_8(__va_list_tag *) = InitializeParameter[args] : &:r888_7 +# 888| r888_9(__va_list_tag *) = Load[args] : &:r888_7, m888_8 +# 888| m888_10(unknown) = InitializeIndirection[args] : &:r888_9 +# 889| r889_1(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 889| m889_2(__va_list_tag[1]) = Uninitialized[args2] : &:r889_1 +# 890| r890_1(glval<__va_list_tag *>) = VariableAddress[args] : +# 890| r890_2(__va_list_tag *) = Load[args] : &:r890_1, m888_8 +# 890| r890_3(__va_list_tag) = Load[?] : &:r890_2, ~m888_10 +# 890| r890_4(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 890| r890_5(__va_list_tag *) = Convert : r890_4 +# 890| m890_6(__va_list_tag) = Store[?] : &:r890_5, r890_3 +# 891| r891_1(glval) = VariableAddress[d] : +# 891| r891_2(glval<__va_list_tag *>) = VariableAddress[args] : +# 891| r891_3(__va_list_tag *) = Load[args] : &:r891_2, m888_8 +# 891| r891_4(__va_list_tag) = Load[?] : &:r891_3, ~m888_10 +# 891| r891_5(glval) = VarArg : r891_4 +# 891| r891_6(__va_list_tag) = NextVarArg : r891_4 +# 891| m891_7(__va_list_tag) = Store[?] : &:r891_3, r891_6 +# 891| m891_8(unknown) = Chi : total:m888_10, partial:m891_7 +# 891| r891_9(double) = Load[?] : &:r891_5, ~m888_4 +# 891| m891_10(double) = Store[d] : &:r891_1, r891_9 +# 892| r892_1(glval) = VariableAddress[f] : +# 892| r892_2(glval<__va_list_tag *>) = VariableAddress[args] : +# 892| r892_3(__va_list_tag *) = Load[args] : &:r892_2, m888_8 +# 892| r892_4(__va_list_tag) = Load[?] : &:r892_3, m891_7 +# 892| r892_5(glval) = VarArg : r892_4 +# 892| r892_6(__va_list_tag) = NextVarArg : r892_4 +# 892| m892_7(__va_list_tag) = Store[?] : &:r892_3, r892_6 +# 892| m892_8(unknown) = Chi : total:m891_8, partial:m892_7 +# 892| r892_9(int) = Load[?] : &:r892_5, ~m888_4 +# 892| r892_10(float) = Convert : r892_9 +# 892| m892_11(float) = Store[f] : &:r892_1, r892_10 +# 893| r893_1(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 893| r893_2(__va_list_tag *) = Convert : r893_1 +# 893| v893_3(void) = VarArgsEnd : r893_2 +# 894| v894_1(void) = NoOp : +# 888| v888_11(void) = ReturnIndirection[args] : &:r888_9, m892_8 +# 888| v888_12(void) = ReturnVoid : +# 888| v888_13(void) = AliasedUse : m888_3 +# 888| v888_14(void) = ExitFunction : + +# 896| void VarArgUsage(int) +# 896| Block 0 +# 896| v896_1(void) = EnterFunction : +# 896| m896_2(unknown) = AliasedDefinition : +# 896| m896_3(unknown) = InitializeNonLocal : +# 896| m896_4(unknown) = Chi : total:m896_2, partial:m896_3 +# 896| r896_5(glval) = VariableAddress[x] : +# 896| m896_6(int) = InitializeParameter[x] : &:r896_5 +# 896| r896_7(glval) = VariableAddress[#ellipsis] : +# 896| m896_8(unknown[11]) = InitializeParameter[#ellipsis] : &:r896_7 +# 896| r896_9(unknown[11]) = Load[#ellipsis] : &:r896_7, m896_8 +# 896| mu896_10(unknown) = InitializeIndirection[#ellipsis] : &:r896_9 +# 897| r897_1(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 897| m897_2(__va_list_tag[1]) = Uninitialized[args] : &:r897_1 +# 899| r899_1(glval) = VariableAddress[#ellipsis] : +# 899| r899_2(__va_list_tag) = VarArgsStart : r899_1 +# 899| r899_3(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 899| r899_4(__va_list_tag *) = Convert : r899_3 +# 899| m899_5(__va_list_tag) = Store[?] : &:r899_4, r899_2 +# 900| r900_1(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 900| m900_2(__va_list_tag[1]) = Uninitialized[args2] : &:r900_1 +# 901| r901_1(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 901| r901_2(__va_list_tag *) = Convert : r901_1 +# 901| r901_3(__va_list_tag) = Load[?] : &:r901_2, m899_5 +# 901| r901_4(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 901| r901_5(__va_list_tag *) = Convert : r901_4 +# 901| m901_6(__va_list_tag) = Store[?] : &:r901_5, r901_3 +# 902| r902_1(glval) = VariableAddress[d] : +# 902| r902_2(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 902| r902_3(__va_list_tag *) = Convert : r902_2 +# 902| r902_4(__va_list_tag) = Load[?] : &:r902_3, m899_5 +# 902| r902_5(glval) = VarArg : r902_4 +# 902| r902_6(__va_list_tag) = NextVarArg : r902_4 +# 902| m902_7(__va_list_tag) = Store[?] : &:r902_3, r902_6 +# 902| r902_8(double) = Load[?] : &:r902_5, ~m896_4 +# 902| m902_9(double) = Store[d] : &:r902_1, r902_8 +# 903| r903_1(glval) = VariableAddress[f] : +# 903| r903_2(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 903| r903_3(__va_list_tag *) = Convert : r903_2 +# 903| r903_4(__va_list_tag) = Load[?] : &:r903_3, m902_7 +# 903| r903_5(glval) = VarArg : r903_4 +# 903| r903_6(__va_list_tag) = NextVarArg : r903_4 +# 903| m903_7(__va_list_tag) = Store[?] : &:r903_3, r903_6 +# 903| r903_8(int) = Load[?] : &:r903_5, ~m896_4 +# 903| r903_9(float) = Convert : r903_8 +# 903| m903_10(float) = Store[f] : &:r903_1, r903_9 +# 904| r904_1(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 904| r904_2(__va_list_tag *) = Convert : r904_1 +# 904| v904_3(void) = VarArgsEnd : r904_2 +# 905| r905_1(glval) = FunctionAddress[VAListUsage] : +# 905| r905_2(glval) = VariableAddress[x] : +# 905| r905_3(int) = Load[x] : &:r905_2, m896_6 +# 905| r905_4(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 905| r905_5(__va_list_tag *) = Convert : r905_4 +# 905| v905_6(void) = Call[VAListUsage] : func:r905_1, 0:r905_3, 1:r905_5 +# 905| m905_7(unknown) = ^CallSideEffect : ~m896_4 +# 905| m905_8(unknown) = Chi : total:m896_4, partial:m905_7 +# 905| v905_9(void) = ^BufferReadSideEffect[1] : &:r905_5, ~m901_6 +# 905| m905_10(unknown) = ^BufferMayWriteSideEffect[1] : &:r905_5 +# 905| m905_11(__va_list_tag[1]) = Chi : total:m901_6, partial:m905_10 +# 906| r906_1(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 906| r906_2(__va_list_tag *) = Convert : r906_1 +# 906| v906_3(void) = VarArgsEnd : r906_2 +# 907| v907_1(void) = NoOp : +# 896| v896_11(void) = ReturnVoid : +# 896| v896_12(void) = AliasedUse : ~m905_8 +# 896| v896_13(void) = ExitFunction : + +# 909| void CastToVoid(int) +# 909| Block 0 +# 909| v909_1(void) = EnterFunction : +# 909| m909_2(unknown) = AliasedDefinition : +# 909| m909_3(unknown) = InitializeNonLocal : +# 909| m909_4(unknown) = Chi : total:m909_2, partial:m909_3 +# 909| r909_5(glval) = VariableAddress[x] : +# 909| m909_6(int) = InitializeParameter[x] : &:r909_5 +# 910| r910_1(glval) = VariableAddress[x] : +# 910| v910_2(void) = Convert : r910_1 +# 911| v911_1(void) = NoOp : +# 909| v909_7(void) = ReturnVoid : +# 909| v909_8(void) = AliasedUse : m909_3 +# 909| v909_9(void) = ExitFunction : + +# 913| void ConstantConditions(int) +# 913| Block 0 +# 913| v913_1(void) = EnterFunction : +# 913| m913_2(unknown) = AliasedDefinition : +# 913| m913_3(unknown) = InitializeNonLocal : +# 913| m913_4(unknown) = Chi : total:m913_2, partial:m913_3 +# 913| r913_5(glval) = VariableAddress[x] : +# 913| m913_6(int) = InitializeParameter[x] : &:r913_5 +# 914| r914_1(glval) = VariableAddress[a] : +# 914| r914_2(bool) = Constant[1] : +# 914| m914_3(bool) = Store[a] : &:r914_1, r914_2 +# 915| r915_1(glval) = VariableAddress[b] : +# 915| r915_2(bool) = Constant[1] : +# 915| v915_3(void) = ConditionalBranch : r915_2 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 915| Block 1 +# 915| r915_4(glval) = VariableAddress[x] : +# 915| r915_5(int) = Load[x] : &:r915_4, m913_6 +# 915| r915_6(glval) = VariableAddress[#temp915:11] : +# 915| m915_7(int) = Store[#temp915:11] : &:r915_6, r915_5 +# 915| r915_8(glval) = VariableAddress[#temp915:11] : +# 915| r915_9(int) = Load[#temp915:11] : &:r915_8, m915_7 +# 915| m915_10(int) = Store[b] : &:r915_1, r915_9 +# 916| v916_1(void) = NoOp : +# 913| v913_7(void) = ReturnVoid : +# 913| v913_8(void) = AliasedUse : m913_3 +# 913| v913_9(void) = ExitFunction : + +# 913| Block 2 +# 913| v913_10(void) = Unreached : + +# 949| void OperatorNew() +# 949| Block 0 +# 949| v949_1(void) = EnterFunction : +# 949| m949_2(unknown) = AliasedDefinition : +# 949| m949_3(unknown) = InitializeNonLocal : +# 949| m949_4(unknown) = Chi : total:m949_2, partial:m949_3 +# 950| r950_1(glval) = FunctionAddress[operator new] : +# 950| r950_2(unsigned long) = Constant[4] : +# 950| r950_3(void *) = Call[operator new] : func:r950_1, 0:r950_2 +# 950| m950_4(unknown) = ^CallSideEffect : ~m949_4 +# 950| m950_5(unknown) = Chi : total:m949_4, partial:m950_4 +# 950| m950_6(unknown) = ^InitializeDynamicAllocation : &:r950_3 +# 950| r950_7(int *) = Convert : r950_3 +# 951| r951_1(glval) = FunctionAddress[operator new] : +# 951| r951_2(unsigned long) = Constant[4] : +# 951| r951_3(float) = Constant[1.0] : +# 951| r951_4(void *) = Call[operator new] : func:r951_1, 0:r951_2, 1:r951_3 +# 951| m951_5(unknown) = ^CallSideEffect : ~m950_5 +# 951| m951_6(unknown) = Chi : total:m950_5, partial:m951_5 +# 951| m951_7(unknown) = ^InitializeDynamicAllocation : &:r951_4 +# 951| r951_8(int *) = Convert : r951_4 +# 952| r952_1(glval) = FunctionAddress[operator new] : +# 952| r952_2(unsigned long) = Constant[4] : +# 952| r952_3(void *) = Call[operator new] : func:r952_1, 0:r952_2 +# 952| m952_4(unknown) = ^CallSideEffect : ~m951_6 +# 952| m952_5(unknown) = Chi : total:m951_6, partial:m952_4 +# 952| m952_6(unknown) = ^InitializeDynamicAllocation : &:r952_3 +# 952| r952_7(int *) = Convert : r952_3 +# 952| r952_8(int) = Constant[0] : +# 952| m952_9(int) = Store[?] : &:r952_7, r952_8 +# 952| m952_10(unknown) = Chi : total:m952_6, partial:m952_9 +# 953| r953_1(glval) = FunctionAddress[operator new] : +# 953| r953_2(unsigned long) = Constant[8] : +# 953| r953_3(void *) = Call[operator new] : func:r953_1, 0:r953_2 +# 953| m953_4(unknown) = ^CallSideEffect : ~m952_5 +# 953| m953_5(unknown) = Chi : total:m952_5, partial:m953_4 +# 953| m953_6(unknown) = ^InitializeDynamicAllocation : &:r953_3 +# 953| r953_7(String *) = Convert : r953_3 +# 953| r953_8(glval) = FunctionAddress[String] : +# 953| v953_9(void) = Call[String] : func:r953_8, this:r953_7 +# 953| m953_10(unknown) = ^CallSideEffect : ~m953_5 +# 953| m953_11(unknown) = Chi : total:m953_5, partial:m953_10 +# 953| m953_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r953_7 +# 953| m953_13(unknown) = Chi : total:m953_6, partial:m953_12 +# 954| r954_1(glval) = FunctionAddress[operator new] : +# 954| r954_2(unsigned long) = Constant[8] : +# 954| r954_3(float) = Constant[1.0] : +# 954| r954_4(void *) = Call[operator new] : func:r954_1, 0:r954_2, 1:r954_3 +# 954| m954_5(unknown) = ^CallSideEffect : ~m953_11 +# 954| m954_6(unknown) = Chi : total:m953_11, partial:m954_5 +# 954| m954_7(unknown) = ^InitializeDynamicAllocation : &:r954_4 +# 954| r954_8(String *) = Convert : r954_4 +# 954| r954_9(glval) = FunctionAddress[String] : +# 954| r954_10(glval) = StringConstant["hello"] : +# 954| r954_11(char *) = Convert : r954_10 +# 954| v954_12(void) = Call[String] : func:r954_9, this:r954_8, 0:r954_11 +# 954| m954_13(unknown) = ^CallSideEffect : ~m954_6 +# 954| m954_14(unknown) = Chi : total:m954_6, partial:m954_13 +# 954| v954_15(void) = ^BufferReadSideEffect[0] : &:r954_11, ~m949_3 +# 954| m954_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r954_8 +# 954| m954_17(unknown) = Chi : total:m954_7, partial:m954_16 +# 955| r955_1(glval) = FunctionAddress[operator new] : +# 955| r955_2(unsigned long) = Constant[256] : +# 955| r955_3(align_val_t) = Constant[128] : +# 955| r955_4(void *) = Call[operator new] : func:r955_1, 0:r955_2, 1:r955_3 +# 955| m955_5(unknown) = ^CallSideEffect : ~m954_14 +# 955| m955_6(unknown) = Chi : total:m954_14, partial:m955_5 +# 955| m955_7(unknown) = ^InitializeDynamicAllocation : &:r955_4 +# 955| r955_8(Overaligned *) = Convert : r955_4 +# 956| r956_1(glval) = FunctionAddress[operator new] : +# 956| r956_2(unsigned long) = Constant[256] : +# 956| r956_3(align_val_t) = Constant[128] : +# 956| r956_4(float) = Constant[1.0] : +# 956| r956_5(void *) = Call[operator new] : func:r956_1, 0:r956_2, 1:r956_3, 2:r956_4 +# 956| m956_6(unknown) = ^CallSideEffect : ~m955_6 +# 956| m956_7(unknown) = Chi : total:m955_6, partial:m956_6 +# 956| m956_8(unknown) = ^InitializeDynamicAllocation : &:r956_5 +# 956| r956_9(Overaligned *) = Convert : r956_5 +# 956| r956_10(Overaligned) = Constant[0] : +# 956| m956_11(Overaligned) = Store[?] : &:r956_9, r956_10 +# 956| m956_12(unknown) = Chi : total:m956_8, partial:m956_11 +# 957| v957_1(void) = NoOp : +# 949| v949_5(void) = ReturnVoid : +# 949| v949_6(void) = AliasedUse : ~m956_7 +# 949| v949_7(void) = ExitFunction : + +# 959| void OperatorNewArray(int) +# 959| Block 0 +# 959| v959_1(void) = EnterFunction : +# 959| m959_2(unknown) = AliasedDefinition : +# 959| m959_3(unknown) = InitializeNonLocal : +# 959| m959_4(unknown) = Chi : total:m959_2, partial:m959_3 +# 959| r959_5(glval) = VariableAddress[n] : +# 959| m959_6(int) = InitializeParameter[n] : &:r959_5 +# 960| r960_1(glval) = FunctionAddress[operator new[]] : +# 960| r960_2(unsigned long) = Constant[40] : +# 960| r960_3(void *) = Call[operator new[]] : func:r960_1, 0:r960_2 +# 960| m960_4(unknown) = ^CallSideEffect : ~m959_4 +# 960| m960_5(unknown) = Chi : total:m959_4, partial:m960_4 +# 960| m960_6(unknown) = ^InitializeDynamicAllocation : &:r960_3 +# 960| r960_7(int *) = Convert : r960_3 +# 961| r961_1(glval) = FunctionAddress[operator new[]] : +# 961| r961_2(glval) = VariableAddress[n] : +# 961| r961_3(int) = Load[n] : &:r961_2, m959_6 +# 961| r961_4(unsigned long) = Convert : r961_3 +# 961| r961_5(unsigned long) = Constant[4] : +# 961| r961_6(unsigned long) = Mul : r961_4, r961_5 +# 961| r961_7(void *) = Call[operator new[]] : func:r961_1, 0:r961_6 +# 961| m961_8(unknown) = ^CallSideEffect : ~m960_5 +# 961| m961_9(unknown) = Chi : total:m960_5, partial:m961_8 +# 961| m961_10(unknown) = ^InitializeDynamicAllocation : &:r961_7 +# 961| r961_11(int *) = Convert : r961_7 +# 962| r962_1(glval) = FunctionAddress[operator new[]] : +# 962| r962_2(glval) = VariableAddress[n] : +# 962| r962_3(int) = Load[n] : &:r962_2, m959_6 +# 962| r962_4(unsigned long) = Convert : r962_3 +# 962| r962_5(unsigned long) = Constant[4] : +# 962| r962_6(unsigned long) = Mul : r962_4, r962_5 +# 962| r962_7(float) = Constant[1.0] : +# 962| r962_8(void *) = Call[operator new[]] : func:r962_1, 0:r962_6, 1:r962_7 +# 962| m962_9(unknown) = ^CallSideEffect : ~m961_9 +# 962| m962_10(unknown) = Chi : total:m961_9, partial:m962_9 +# 962| m962_11(unknown) = ^InitializeDynamicAllocation : &:r962_8 +# 962| r962_12(int *) = Convert : r962_8 +# 963| r963_1(glval) = FunctionAddress[operator new[]] : +# 963| r963_2(glval) = VariableAddress[n] : +# 963| r963_3(int) = Load[n] : &:r963_2, m959_6 +# 963| r963_4(unsigned long) = Convert : r963_3 +# 963| r963_5(unsigned long) = Constant[8] : +# 963| r963_6(unsigned long) = Mul : r963_4, r963_5 +# 963| r963_7(void *) = Call[operator new[]] : func:r963_1, 0:r963_6 +# 963| m963_8(unknown) = ^CallSideEffect : ~m962_10 +# 963| m963_9(unknown) = Chi : total:m962_10, partial:m963_8 +# 963| m963_10(unknown) = ^InitializeDynamicAllocation : &:r963_7 +# 963| r963_11(String *) = Convert : r963_7 +# 964| r964_1(glval) = FunctionAddress[operator new[]] : +# 964| r964_2(glval) = VariableAddress[n] : +# 964| r964_3(int) = Load[n] : &:r964_2, m959_6 +# 964| r964_4(unsigned long) = Convert : r964_3 +# 964| r964_5(unsigned long) = Constant[256] : +# 964| r964_6(unsigned long) = Mul : r964_4, r964_5 +# 964| r964_7(align_val_t) = Constant[128] : +# 964| r964_8(void *) = Call[operator new[]] : func:r964_1, 0:r964_6, 1:r964_7 +# 964| m964_9(unknown) = ^CallSideEffect : ~m963_9 +# 964| m964_10(unknown) = Chi : total:m963_9, partial:m964_9 +# 964| m964_11(unknown) = ^InitializeDynamicAllocation : &:r964_8 +# 964| r964_12(Overaligned *) = Convert : r964_8 +# 965| r965_1(glval) = FunctionAddress[operator new[]] : +# 965| r965_2(unsigned long) = Constant[2560] : +# 965| r965_3(align_val_t) = Constant[128] : +# 965| r965_4(float) = Constant[1.0] : +# 965| r965_5(void *) = Call[operator new[]] : func:r965_1, 0:r965_2, 1:r965_3, 2:r965_4 +# 965| m965_6(unknown) = ^CallSideEffect : ~m964_10 +# 965| m965_7(unknown) = Chi : total:m964_10, partial:m965_6 +# 965| m965_8(unknown) = ^InitializeDynamicAllocation : &:r965_5 +# 965| r965_9(Overaligned *) = Convert : r965_5 +# 966| r966_1(glval) = FunctionAddress[operator new[]] : +# 966| r966_2(glval) = VariableAddress[n] : +# 966| r966_3(int) = Load[n] : &:r966_2, m959_6 +# 966| r966_4(unsigned long) = Convert : r966_3 +# 966| r966_5(unsigned long) = Constant[1] : +# 966| r966_6(unsigned long) = Mul : r966_4, r966_5 +# 966| r966_7(void *) = Call[operator new[]] : func:r966_1, 0:r966_6 +# 966| m966_8(unknown) = ^CallSideEffect : ~m965_7 +# 966| m966_9(unknown) = Chi : total:m965_7, partial:m966_8 +# 966| m966_10(unknown) = ^InitializeDynamicAllocation : &:r966_7 +# 966| r966_11(DefaultCtorWithDefaultParam *) = Convert : r966_7 +# 967| r967_1(glval) = FunctionAddress[operator new[]] : +# 967| r967_2(glval) = VariableAddress[n] : +# 967| r967_3(int) = Load[n] : &:r967_2, m959_6 +# 967| r967_4(unsigned long) = Convert : r967_3 +# 967| r967_5(unsigned long) = Constant[4] : +# 967| r967_6(unsigned long) = Mul : r967_4, r967_5 +# 967| r967_7(void *) = Call[operator new[]] : func:r967_1, 0:r967_6 +# 967| m967_8(unknown) = ^CallSideEffect : ~m966_9 +# 967| m967_9(unknown) = Chi : total:m966_9, partial:m967_8 +# 967| m967_10(unknown) = ^InitializeDynamicAllocation : &:r967_7 +# 967| r967_11(int *) = Convert : r967_7 +# 968| v968_1(void) = NoOp : +# 959| v959_7(void) = ReturnVoid : +# 959| v959_8(void) = AliasedUse : ~m967_9 +# 959| v959_9(void) = ExitFunction : + +# 970| int designatedInit() +# 970| Block 0 +# 970| v970_1(void) = EnterFunction : +# 970| m970_2(unknown) = AliasedDefinition : +# 970| m970_3(unknown) = InitializeNonLocal : +# 970| m970_4(unknown) = Chi : total:m970_2, partial:m970_3 +# 971| r971_1(glval) = VariableAddress[a1] : +# 971| m971_2(int[1000]) = Uninitialized[a1] : &:r971_1 +# 971| r971_3(int) = Constant[0] : +# 971| r971_4(glval) = PointerAdd[4] : r971_1, r971_3 +# 971| r971_5(unknown[8]) = Constant[0] : +# 971| m971_6(unknown[8]) = Store[?] : &:r971_4, r971_5 +# 971| m971_7(int[1000]) = Chi : total:m971_2, partial:m971_6 +# 971| r971_8(int) = Constant[2] : +# 971| r971_9(glval) = PointerAdd[4] : r971_1, r971_8 +# 971| r971_10(int) = Constant[10002] : +# 971| m971_11(int) = Store[?] : &:r971_9, r971_10 +# 971| m971_12(int[1000]) = Chi : total:m971_7, partial:m971_11 +# 971| r971_13(int) = Constant[3] : +# 971| r971_14(glval) = PointerAdd[4] : r971_1, r971_13 +# 971| r971_15(unknown[3588]) = Constant[0] : +# 971| m971_16(unknown[3588]) = Store[?] : &:r971_14, r971_15 +# 971| m971_17(int[1000]) = Chi : total:m971_12, partial:m971_16 +# 971| r971_18(int) = Constant[900] : +# 971| r971_19(glval) = PointerAdd[4] : r971_1, r971_18 +# 971| r971_20(int) = Constant[10900] : +# 971| m971_21(int) = Store[?] : &:r971_19, r971_20 +# 971| m971_22(int[1000]) = Chi : total:m971_17, partial:m971_21 +# 971| r971_23(int) = Constant[901] : +# 971| r971_24(glval) = PointerAdd[4] : r971_1, r971_23 +# 971| r971_25(unknown[396]) = Constant[0] : +# 971| m971_26(unknown[396]) = Store[?] : &:r971_24, r971_25 +# 971| m971_27(int[1000]) = Chi : total:m971_22, partial:m971_26 +# 972| r972_1(glval) = VariableAddress[#return] : +# 972| r972_2(glval) = VariableAddress[a1] : +# 972| r972_3(int *) = Convert : r972_2 +# 972| r972_4(int) = Constant[900] : +# 972| r972_5(glval) = PointerAdd[4] : r972_3, r972_4 +# 972| r972_6(int) = Load[?] : &:r972_5, m971_21 +# 972| m972_7(int) = Store[#return] : &:r972_1, r972_6 +# 970| r970_5(glval) = VariableAddress[#return] : +# 970| v970_6(void) = ReturnValue : &:r970_5, m972_7 +# 970| v970_7(void) = AliasedUse : m970_3 +# 970| v970_8(void) = ExitFunction : + +# 975| void IfStmtWithDeclaration(int, int) +# 975| Block 0 +# 975| v975_1(void) = EnterFunction : +# 975| m975_2(unknown) = AliasedDefinition : +# 975| m975_3(unknown) = InitializeNonLocal : +# 975| m975_4(unknown) = Chi : total:m975_2, partial:m975_3 +# 975| r975_5(glval) = VariableAddress[x] : +# 975| m975_6(int) = InitializeParameter[x] : &:r975_5 +# 975| r975_7(glval) = VariableAddress[y] : +# 975| m975_8(int) = InitializeParameter[y] : &:r975_7 +# 976| r976_1(glval) = VariableAddress[b] : +# 976| r976_2(glval) = VariableAddress[x] : +# 976| r976_3(int) = Load[x] : &:r976_2, m975_6 +# 976| r976_4(glval) = VariableAddress[y] : +# 976| r976_5(int) = Load[y] : &:r976_4, m975_8 +# 976| r976_6(bool) = CompareLT : r976_3, r976_5 +# 976| m976_7(bool) = Store[b] : &:r976_1, r976_6 +# 976| r976_8(glval) = VariableAddress[b] : +# 976| r976_9(bool) = Load[b] : &:r976_8, m976_7 +# 976| r976_10(bool) = CopyValue : r976_9 +# 976| v976_11(void) = ConditionalBranch : r976_10 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 977| Block 1 +# 977| r977_1(int) = Constant[5] : +# 977| r977_2(glval) = VariableAddress[x] : +# 977| m977_3(int) = Store[x] : &:r977_2, r977_1 +#-----| Goto -> Block 6 + +# 979| Block 2 +# 979| r979_1(glval) = VariableAddress[z] : +# 979| r979_2(glval) = VariableAddress[x] : +# 979| r979_3(int) = Load[x] : &:r979_2, m975_6 +# 979| r979_4(glval) = VariableAddress[y] : +# 979| r979_5(int) = Load[y] : &:r979_4, m975_8 +# 979| r979_6(int) = Add : r979_3, r979_5 +# 979| m979_7(int) = Store[z] : &:r979_1, r979_6 +# 979| r979_8(glval) = VariableAddress[z] : +# 979| r979_9(int) = Load[z] : &:r979_8, m979_7 +# 979| r979_10(int) = Constant[0] : +# 979| r979_11(bool) = CompareNE : r979_9, r979_10 +# 979| r979_12(bool) = CopyValue : r979_11 +# 979| v979_13(void) = ConditionalBranch : r979_12 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 980| Block 3 +# 980| r980_1(int) = Constant[7] : +# 980| r980_2(glval) = VariableAddress[y] : +# 980| m980_3(int) = Store[y] : &:r980_2, r980_1 +#-----| Goto -> Block 6 + +# 982| Block 4 +# 982| r982_1(glval) = VariableAddress[p] : +# 982| r982_2(glval) = VariableAddress[x] : +# 982| r982_3(int *) = CopyValue : r982_2 +# 982| m982_4(int *) = Store[p] : &:r982_1, r982_3 +# 982| r982_5(glval) = VariableAddress[p] : +# 982| r982_6(int *) = Load[p] : &:r982_5, m982_4 +# 982| r982_7(int *) = Constant[0] : +# 982| r982_8(bool) = CompareNE : r982_6, r982_7 +# 982| r982_9(bool) = CopyValue : r982_8 +# 982| v982_10(void) = ConditionalBranch : r982_9 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 983| Block 5 +# 983| r983_1(int) = Constant[2] : +# 983| r983_2(glval) = VariableAddress[p] : +# 983| r983_3(int *) = Load[p] : &:r983_2, m982_4 +# 983| r983_4(glval) = CopyValue : r983_3 +# 983| m983_5(int) = Store[?] : &:r983_4, r983_1 +#-----| Goto -> Block 6 + +# 985| Block 6 +# 985| v985_1(void) = NoOp : +# 975| v975_9(void) = ReturnVoid : +# 975| v975_10(void) = AliasedUse : m975_3 +# 975| v975_11(void) = ExitFunction : + +# 987| void WhileStmtWithDeclaration(int, int) +# 987| Block 0 +# 987| v987_1(void) = EnterFunction : +# 987| m987_2(unknown) = AliasedDefinition : +# 987| m987_3(unknown) = InitializeNonLocal : +# 987| m987_4(unknown) = Chi : total:m987_2, partial:m987_3 +# 987| r987_5(glval) = VariableAddress[x] : +# 987| m987_6(int) = InitializeParameter[x] : &:r987_5 +# 987| r987_7(glval) = VariableAddress[y] : +# 987| m987_8(int) = InitializeParameter[y] : &:r987_7 +#-----| Goto -> Block 1 + +# 988| Block 1 +# 988| r988_1(glval) = VariableAddress[b] : +# 988| r988_2(glval) = VariableAddress[x] : +# 988| r988_3(int) = Load[x] : &:r988_2, m987_6 +# 988| r988_4(glval) = VariableAddress[y] : +# 988| r988_5(int) = Load[y] : &:r988_4, m987_8 +# 988| r988_6(bool) = CompareLT : r988_3, r988_5 +# 988| m988_7(bool) = Store[b] : &:r988_1, r988_6 +# 988| r988_8(glval) = VariableAddress[b] : +# 988| r988_9(bool) = Load[b] : &:r988_8, m988_7 +# 988| r988_10(bool) = CopyValue : r988_9 +# 988| v988_11(void) = ConditionalBranch : r988_10 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 988| Block 2 +# 988| v988_12(void) = NoOp : +#-----| Goto (back edge) -> Block 1 + +# 990| Block 3 +# 990| r990_1(glval) = VariableAddress[z] : +# 990| r990_2(glval) = VariableAddress[x] : +# 990| r990_3(int) = Load[x] : &:r990_2, m987_6 +# 990| r990_4(glval) = VariableAddress[y] : +# 990| r990_5(int) = Load[y] : &:r990_4, m987_8 +# 990| r990_6(int) = Add : r990_3, r990_5 +# 990| m990_7(int) = Store[z] : &:r990_1, r990_6 +# 990| r990_8(glval) = VariableAddress[z] : +# 990| r990_9(int) = Load[z] : &:r990_8, m990_7 +# 990| r990_10(int) = Constant[0] : +# 990| r990_11(bool) = CompareNE : r990_9, r990_10 +# 990| r990_12(bool) = CopyValue : r990_11 +# 990| v990_13(void) = ConditionalBranch : r990_12 +#-----| False -> Block 5 +#-----| True -> Block 4 + +# 990| Block 4 +# 990| v990_14(void) = NoOp : +#-----| Goto (back edge) -> Block 3 + +# 992| Block 5 +# 992| r992_1(glval) = VariableAddress[p] : +# 992| r992_2(glval) = VariableAddress[x] : +# 992| r992_3(int *) = CopyValue : r992_2 +# 992| m992_4(int *) = Store[p] : &:r992_1, r992_3 +# 992| r992_5(glval) = VariableAddress[p] : +# 992| r992_6(int *) = Load[p] : &:r992_5, m992_4 +# 992| r992_7(int *) = Constant[0] : +# 992| r992_8(bool) = CompareNE : r992_6, r992_7 +# 992| r992_9(bool) = CopyValue : r992_8 +# 992| v992_10(void) = ConditionalBranch : r992_9 +#-----| False -> Block 7 +#-----| True -> Block 6 + +# 992| Block 6 +# 992| v992_11(void) = NoOp : +#-----| Goto (back edge) -> Block 5 + +# 994| Block 7 +# 994| v994_1(void) = NoOp : +# 987| v987_9(void) = ReturnVoid : +# 987| v987_10(void) = AliasedUse : m987_3 +# 987| v987_11(void) = ExitFunction : + +# 996| int PointerDecay(int[], int(float)) +# 996| Block 0 +# 996| v996_1(void) = EnterFunction : +# 996| m996_2(unknown) = AliasedDefinition : +# 996| m996_3(unknown) = InitializeNonLocal : +# 996| m996_4(unknown) = Chi : total:m996_2, partial:m996_3 +# 996| r996_5(glval) = VariableAddress[a] : +# 996| m996_6(int *) = InitializeParameter[a] : &:r996_5 +# 996| r996_7(int *) = Load[a] : &:r996_5, m996_6 +# 996| m996_8(unknown) = InitializeIndirection[a] : &:r996_7 +# 996| r996_9(glval<..(*)(..)>) = VariableAddress[fn] : +# 996| m996_10(..(*)(..)) = InitializeParameter[fn] : &:r996_9 +# 997| r997_1(glval) = VariableAddress[#return] : +# 997| r997_2(glval) = VariableAddress[a] : +# 997| r997_3(int *) = Load[a] : &:r997_2, m996_6 +# 997| r997_4(int) = Constant[0] : +# 997| r997_5(glval) = PointerAdd[4] : r997_3, r997_4 +# 997| r997_6(int) = Load[?] : &:r997_5, ~m996_8 +# 997| r997_7(glval<..(*)(..)>) = VariableAddress[fn] : +# 997| r997_8(..(*)(..)) = Load[fn] : &:r997_7, m996_10 +# 997| r997_9(float) = Constant[1.0] : +# 997| r997_10(int) = Call[?] : func:r997_8, 0:r997_9 +# 997| m997_11(unknown) = ^CallSideEffect : ~m996_4 +# 997| m997_12(unknown) = Chi : total:m996_4, partial:m997_11 +# 997| r997_13(int) = Add : r997_6, r997_10 +# 997| m997_14(int) = Store[#return] : &:r997_1, r997_13 +# 996| v996_11(void) = ReturnIndirection[a] : &:r996_7, m996_8 +# 996| r996_12(glval) = VariableAddress[#return] : +# 996| v996_13(void) = ReturnValue : &:r996_12, m997_14 +# 996| v996_14(void) = AliasedUse : ~m997_12 +# 996| v996_15(void) = ExitFunction : + +# 1000| int StmtExpr(int, int, int) +# 1000| Block 0 +# 1000| v1000_1(void) = EnterFunction : +# 1000| m1000_2(unknown) = AliasedDefinition : +# 1000| m1000_3(unknown) = InitializeNonLocal : +# 1000| m1000_4(unknown) = Chi : total:m1000_2, partial:m1000_3 +# 1000| r1000_5(glval) = VariableAddress[b] : +# 1000| m1000_6(int) = InitializeParameter[b] : &:r1000_5 +# 1000| r1000_7(glval) = VariableAddress[y] : +# 1000| m1000_8(int) = InitializeParameter[y] : &:r1000_7 +# 1000| r1000_9(glval) = VariableAddress[z] : +# 1000| m1000_10(int) = InitializeParameter[z] : &:r1000_9 +# 1001| r1001_1(glval) = VariableAddress[x] : +# 1002| r1002_1(glval) = VariableAddress[w] : +# 1002| m1002_2(int) = Uninitialized[w] : &:r1002_1 +# 1003| r1003_1(glval) = VariableAddress[b] : +# 1003| r1003_2(int) = Load[b] : &:r1003_1, m1000_6 +# 1003| r1003_3(int) = Constant[0] : +# 1003| r1003_4(bool) = CompareNE : r1003_2, r1003_3 +# 1003| v1003_5(void) = ConditionalBranch : r1003_4 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 1004| Block 1 +# 1004| r1004_1(glval) = VariableAddress[y] : +# 1004| r1004_2(int) = Load[y] : &:r1004_1, m1000_8 +# 1004| r1004_3(glval) = VariableAddress[w] : +# 1004| m1004_4(int) = Store[w] : &:r1004_3, r1004_2 +#-----| Goto -> Block 3 + +# 1006| Block 2 +# 1006| r1006_1(glval) = VariableAddress[z] : +# 1006| r1006_2(int) = Load[z] : &:r1006_1, m1000_10 +# 1006| r1006_3(glval) = VariableAddress[w] : +# 1006| m1006_4(int) = Store[w] : &:r1006_3, r1006_2 +#-----| Goto -> Block 3 + +# 1008| Block 3 +# 1008| m1008_1(int) = Phi : from 1:m1004_4, from 2:m1006_4 +# 1008| r1008_2(glval) = VariableAddress[w] : +# 1008| r1008_3(int) = Load[w] : &:r1008_2, m1008_1 +# 1001| r1001_2(int) = CopyValue : r1008_3 +# 1001| m1001_3(int) = Store[x] : &:r1001_1, r1001_2 +# 1011| r1011_1(glval) = VariableAddress[#return] : +# 1011| r1011_2(glval) = VariableAddress[x] : +# 1011| r1011_3(int) = Load[x] : &:r1011_2, m1001_3 +# 1011| r1011_4(int) = CopyValue : r1011_3 +# 1011| m1011_5(int) = Store[#return] : &:r1011_1, r1011_4 +# 1000| r1000_11(glval) = VariableAddress[#return] : +# 1000| v1000_12(void) = ReturnValue : &:r1000_11, m1011_5 +# 1000| v1000_13(void) = AliasedUse : m1000_3 +# 1000| v1000_14(void) = ExitFunction : + +# 1015| void OperatorDelete() +# 1015| Block 0 +# 1015| v1015_1(void) = EnterFunction : +# 1015| m1015_2(unknown) = AliasedDefinition : +# 1015| m1015_3(unknown) = InitializeNonLocal : +# 1015| m1015_4(unknown) = Chi : total:m1015_2, partial:m1015_3 +# 1016| r1016_1(glval) = FunctionAddress[operator delete] : +# 1016| r1016_2(int *) = Constant[0] : +# 1016| v1016_3(void) = Call[operator delete] : func:r1016_1, 0:r1016_2 +# 1016| m1016_4(unknown) = ^CallSideEffect : ~m1015_4 +# 1016| m1016_5(unknown) = Chi : total:m1015_4, partial:m1016_4 +# 1017| r1017_1(glval) = FunctionAddress[operator delete] : +# 1017| r1017_2(String *) = Constant[0] : +# 1017| v1017_3(void) = Call[operator delete] : func:r1017_1, 0:r1017_2 +# 1017| m1017_4(unknown) = ^CallSideEffect : ~m1016_5 +# 1017| m1017_5(unknown) = Chi : total:m1016_5, partial:m1017_4 +# 1018| r1018_1(glval) = FunctionAddress[operator delete] : +# 1018| r1018_2(SizedDealloc *) = Constant[0] : +# 1018| v1018_3(void) = Call[operator delete] : func:r1018_1, 0:r1018_2 +# 1018| m1018_4(unknown) = ^CallSideEffect : ~m1017_5 +# 1018| m1018_5(unknown) = Chi : total:m1017_5, partial:m1018_4 +# 1019| r1019_1(glval) = FunctionAddress[operator delete] : +# 1019| r1019_2(Overaligned *) = Constant[0] : +# 1019| v1019_3(void) = Call[operator delete] : func:r1019_1, 0:r1019_2 +# 1019| m1019_4(unknown) = ^CallSideEffect : ~m1018_5 +# 1019| m1019_5(unknown) = Chi : total:m1018_5, partial:m1019_4 +# 1020| r1020_1(glval) = VirtualDeleteFunctionAddress : +# 1020| r1020_2(PolymorphicBase *) = Constant[0] : +# 1020| v1020_3(void) = Call[?] : func:r1020_1, 0:r1020_2 +# 1020| m1020_4(unknown) = ^CallSideEffect : ~m1019_5 +# 1020| m1020_5(unknown) = Chi : total:m1019_5, partial:m1020_4 +# 1021| v1021_1(void) = NoOp : +# 1015| v1015_5(void) = ReturnVoid : +# 1015| v1015_6(void) = AliasedUse : ~m1020_5 +# 1015| v1015_7(void) = ExitFunction : + +# 1024| void OperatorDeleteArray() +# 1024| Block 0 +# 1024| v1024_1(void) = EnterFunction : +# 1024| m1024_2(unknown) = AliasedDefinition : +# 1024| m1024_3(unknown) = InitializeNonLocal : +# 1024| m1024_4(unknown) = Chi : total:m1024_2, partial:m1024_3 +# 1025| r1025_1(glval) = FunctionAddress[operator delete[]] : +# 1025| r1025_2(int *) = Constant[0] : +# 1025| v1025_3(void) = Call[operator delete[]] : func:r1025_1, 0:r1025_2 +# 1025| m1025_4(unknown) = ^CallSideEffect : ~m1024_4 +# 1025| m1025_5(unknown) = Chi : total:m1024_4, partial:m1025_4 +# 1026| r1026_1(glval) = FunctionAddress[operator delete[]] : +# 1026| r1026_2(String *) = Constant[0] : +# 1026| v1026_3(void) = Call[operator delete[]] : func:r1026_1, 0:r1026_2 +# 1026| m1026_4(unknown) = ^CallSideEffect : ~m1025_5 +# 1026| m1026_5(unknown) = Chi : total:m1025_5, partial:m1026_4 +# 1027| r1027_1(glval) = FunctionAddress[operator delete[]] : +# 1027| r1027_2(SizedDealloc *) = Constant[0] : +# 1027| v1027_3(void) = Call[operator delete[]] : func:r1027_1, 0:r1027_2 +# 1027| m1027_4(unknown) = ^CallSideEffect : ~m1026_5 +# 1027| m1027_5(unknown) = Chi : total:m1026_5, partial:m1027_4 +# 1028| r1028_1(glval) = FunctionAddress[operator delete[]] : +# 1028| r1028_2(Overaligned *) = Constant[0] : +# 1028| v1028_3(void) = Call[operator delete[]] : func:r1028_1, 0:r1028_2 +# 1028| m1028_4(unknown) = ^CallSideEffect : ~m1027_5 +# 1028| m1028_5(unknown) = Chi : total:m1027_5, partial:m1028_4 +# 1029| r1029_1(glval) = FunctionAddress[operator delete[]] : +# 1029| r1029_2(PolymorphicBase *) = Constant[0] : +# 1029| v1029_3(void) = Call[operator delete[]] : func:r1029_1, 0:r1029_2 +# 1029| m1029_4(unknown) = ^CallSideEffect : ~m1028_5 +# 1029| m1029_5(unknown) = Chi : total:m1028_5, partial:m1029_4 +# 1030| v1030_1(void) = NoOp : +# 1024| v1024_5(void) = ReturnVoid : +# 1024| v1024_6(void) = AliasedUse : ~m1029_5 +# 1024| v1024_7(void) = ExitFunction : + +# 1034| void EmptyStructInit() +# 1034| Block 0 +# 1034| v1034_1(void) = EnterFunction : +# 1034| m1034_2(unknown) = AliasedDefinition : +# 1034| m1034_3(unknown) = InitializeNonLocal : +# 1034| m1034_4(unknown) = Chi : total:m1034_2, partial:m1034_3 +# 1035| r1035_1(glval) = VariableAddress[s] : +# 1035| m1035_2(EmptyStruct) = Uninitialized[s] : &:r1035_1 +# 1036| v1036_1(void) = NoOp : +# 1034| v1034_5(void) = ReturnVoid : +# 1034| v1034_6(void) = AliasedUse : m1034_3 +# 1034| v1034_7(void) = ExitFunction : + +# 1038| (lambda [] type at line 1038, col. 12) lam +# 1038| Block 0 +# 1038| v1038_1(void) = EnterFunction : +# 1038| m1038_2(unknown) = AliasedDefinition : +# 1038| r1038_3(glval) = VariableAddress[lam] : +# 1038| r1038_4(glval) = VariableAddress[#temp1038:12] : +# 1038| m1038_5(decltype([...](...){...})) = Uninitialized[#temp1038:12] : &:r1038_4 +# 1038| r1038_6(decltype([...](...){...})) = Load[#temp1038:12] : &:r1038_4, m1038_5 +# 1038| m1038_7(decltype([...](...){...})) = Store[lam] : &:r1038_3, r1038_6 +# 1038| m1038_8(unknown) = Chi : total:m1038_2, partial:m1038_7 +# 1038| v1038_9(void) = ReturnVoid : +# 1038| v1038_10(void) = AliasedUse : ~m1038_8 +# 1038| v1038_11(void) = ExitFunction : + +# 1038| void (lambda [] type at line 1038, col. 12)::operator()() const +# 1038| Block 0 +# 1038| v1038_1(void) = EnterFunction : +# 1038| m1038_2(unknown) = AliasedDefinition : +# 1038| m1038_3(unknown) = InitializeNonLocal : +# 1038| m1038_4(unknown) = Chi : total:m1038_2, partial:m1038_3 +# 1038| r1038_5(glval) = VariableAddress[#this] : +# 1038| m1038_6(glval) = InitializeParameter[#this] : &:r1038_5 +# 1038| r1038_7(glval) = Load[#this] : &:r1038_5, m1038_6 +# 1038| m1038_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1038_7 +# 1038| v1038_9(void) = NoOp : +# 1038| v1038_10(void) = ReturnIndirection[#this] : &:r1038_7, m1038_8 +# 1038| v1038_11(void) = ReturnVoid : +# 1038| v1038_12(void) = AliasedUse : m1038_3 +# 1038| v1038_13(void) = ExitFunction : + +# 1038| void(* (lambda [] type at line 1038, col. 12)::operator void (*)()() const)() +# 1038| Block 0 +# 1038| v1038_1(void) = EnterFunction : +# 1038| m1038_2(unknown) = AliasedDefinition : +# 1038| m1038_3(unknown) = InitializeNonLocal : +# 1038| m1038_4(unknown) = Chi : total:m1038_2, partial:m1038_3 +# 1038| r1038_5(glval) = VariableAddress[#this] : +# 1038| m1038_6(glval) = InitializeParameter[#this] : &:r1038_5 +# 1038| r1038_7(glval) = Load[#this] : &:r1038_5, m1038_6 +# 1038| m1038_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1038_7 +# 1038| r1038_9(glval<..(*)(..)>) = VariableAddress[#return] : +# 1038| r1038_10(..(*)(..)) = FunctionAddress[_FUN] : +# 1038| m1038_11(..(*)(..)) = Store[#return] : &:r1038_9, r1038_10 +# 1038| v1038_12(void) = ReturnIndirection[#this] : &:r1038_7, m1038_8 +# 1038| r1038_13(glval<..(*)(..)>) = VariableAddress[#return] : +# 1038| v1038_14(void) = ReturnValue : &:r1038_13, m1038_11 +# 1038| v1038_15(void) = AliasedUse : m1038_3 +# 1038| v1038_16(void) = ExitFunction : + +# 1040| void Lambda(int, String const&) +# 1040| Block 0 +# 1040| v1040_1(void) = EnterFunction : +# 1040| m1040_2(unknown) = AliasedDefinition : +# 1040| m1040_3(unknown) = InitializeNonLocal : +# 1040| m1040_4(unknown) = Chi : total:m1040_2, partial:m1040_3 +# 1040| r1040_5(glval) = VariableAddress[x] : +# 1040| m1040_6(int) = InitializeParameter[x] : &:r1040_5 +# 1040| r1040_7(glval) = VariableAddress[s] : +# 1040| m1040_8(String &) = InitializeParameter[s] : &:r1040_7 +# 1040| r1040_9(String &) = Load[s] : &:r1040_7, m1040_8 +# 1040| m1040_10(unknown) = InitializeIndirection[s] : &:r1040_9 +# 1041| r1041_1(glval) = VariableAddress[lambda_empty] : +# 1041| r1041_2(glval) = VariableAddress[#temp1041:23] : +# 1041| m1041_3(decltype([...](...){...})) = Uninitialized[#temp1041:23] : &:r1041_2 +# 1041| r1041_4(decltype([...](...){...})) = Load[#temp1041:23] : &:r1041_2, m1041_3 +# 1041| m1041_5(decltype([...](...){...})) = Store[lambda_empty] : &:r1041_1, r1041_4 +# 1042| r1042_1(char) = Constant[65] : +# 1043| r1043_1(glval) = VariableAddress[lambda_ref] : +# 1043| r1043_2(glval) = VariableAddress[#temp1043:20] : +# 1043| m1043_3(decltype([...](...){...})) = Uninitialized[#temp1043:20] : &:r1043_2 +# 1043| r1043_4(glval) = FieldAddress[s] : r1043_2 +# 1043| r1043_5(glval) = VariableAddress[s] : +# 1043| r1043_6(String &) = Load[s] : &:r1043_5, m1040_8 +# 1043| r1043_7(glval) = CopyValue : r1043_6 +# 1043| r1043_8(String &) = CopyValue : r1043_7 +# 1043| m1043_9(String &) = Store[?] : &:r1043_4, r1043_8 +# 1043| m1043_10(decltype([...](...){...})) = Chi : total:m1043_3, partial:m1043_9 +# 1043| r1043_11(glval) = FieldAddress[x] : r1043_2 +# 1043| r1043_12(glval) = VariableAddress[x] : +#-----| r0_1(int &) = CopyValue : r1043_12 +#-----| m0_2(int &) = Store[?] : &:r1043_11, r0_1 +#-----| m0_3(decltype([...](...){...})) = Chi : total:m1043_10, partial:m0_2 +# 1043| r1043_13(decltype([...](...){...})) = Load[#temp1043:20] : &:r1043_2, m0_3 +# 1043| m1043_14(decltype([...](...){...})) = Store[lambda_ref] : &:r1043_1, r1043_13 +# 1044| r1044_1(glval) = VariableAddress[lambda_ref] : +# 1044| r1044_2(glval) = Convert : r1044_1 +# 1044| r1044_3(glval) = FunctionAddress[operator()] : +# 1044| r1044_4(float) = Constant[1.0] : +# 1044| r1044_5(char) = Call[operator()] : func:r1044_3, this:r1044_2, 0:r1044_4 +# 1044| m1044_6(unknown) = ^CallSideEffect : ~m1040_4 +# 1044| m1044_7(unknown) = Chi : total:m1040_4, partial:m1044_6 +# 1044| v1044_8(void) = ^IndirectReadSideEffect[-1] : &:r1044_2, m1043_14 +# 1045| r1045_1(glval) = VariableAddress[lambda_val] : +# 1045| r1045_2(glval) = VariableAddress[#temp1045:20] : +# 1045| m1045_3(decltype([...](...){...})) = Uninitialized[#temp1045:20] : &:r1045_2 +# 1045| r1045_4(glval) = FieldAddress[s] : r1045_2 +# 1045| r1045_5(glval) = FunctionAddress[String] : +# 1045| v1045_6(void) = Call[String] : func:r1045_5, this:r1045_4 +# 1045| m1045_7(unknown) = ^CallSideEffect : ~m1044_7 +# 1045| m1045_8(unknown) = Chi : total:m1044_7, partial:m1045_7 +# 1045| m1045_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1045_4 +# 1045| m1045_10(decltype([...](...){...})) = Chi : total:m1045_3, partial:m1045_9 +# 1045| r1045_11(glval) = FieldAddress[x] : r1045_2 +# 1045| r1045_12(glval) = VariableAddress[x] : +# 1045| r1045_13(int) = Load[x] : &:r1045_12, m1040_6 +# 1045| m1045_14(int) = Store[?] : &:r1045_11, r1045_13 +# 1045| m1045_15(decltype([...](...){...})) = Chi : total:m1045_10, partial:m1045_14 +# 1045| r1045_16(decltype([...](...){...})) = Load[#temp1045:20] : &:r1045_2, m1045_15 +# 1045| m1045_17(decltype([...](...){...})) = Store[lambda_val] : &:r1045_1, r1045_16 +# 1046| r1046_1(glval) = VariableAddress[lambda_val] : +# 1046| r1046_2(glval) = Convert : r1046_1 +# 1046| r1046_3(glval) = FunctionAddress[operator()] : +# 1046| r1046_4(float) = Constant[2.0] : +# 1046| r1046_5(char) = Call[operator()] : func:r1046_3, this:r1046_2, 0:r1046_4 +# 1046| m1046_6(unknown) = ^CallSideEffect : ~m1045_8 +# 1046| m1046_7(unknown) = Chi : total:m1045_8, partial:m1046_6 +# 1046| v1046_8(void) = ^IndirectReadSideEffect[-1] : &:r1046_2, m1045_17 +# 1047| r1047_1(glval) = VariableAddress[lambda_ref_explicit] : +# 1047| r1047_2(glval) = VariableAddress[#temp1047:29] : +# 1047| m1047_3(decltype([...](...){...})) = Uninitialized[#temp1047:29] : &:r1047_2 +# 1047| r1047_4(glval) = FieldAddress[s] : r1047_2 +# 1047| r1047_5(glval) = VariableAddress[s] : +# 1047| r1047_6(String &) = Load[s] : &:r1047_5, m1040_8 +# 1047| r1047_7(glval) = CopyValue : r1047_6 +# 1047| r1047_8(String &) = CopyValue : r1047_7 +# 1047| m1047_9(String &) = Store[?] : &:r1047_4, r1047_8 +# 1047| r1047_10(decltype([...](...){...})) = Load[#temp1047:29] : &:r1047_2, ~m1047_9 +# 1047| m1047_11(decltype([...](...){...})) = Store[lambda_ref_explicit] : &:r1047_1, r1047_10 +# 1048| r1048_1(glval) = VariableAddress[lambda_ref_explicit] : +# 1048| r1048_2(glval) = Convert : r1048_1 +# 1048| r1048_3(glval) = FunctionAddress[operator()] : +# 1048| r1048_4(float) = Constant[3.0] : +# 1048| r1048_5(char) = Call[operator()] : func:r1048_3, this:r1048_2, 0:r1048_4 +# 1048| m1048_6(unknown) = ^CallSideEffect : ~m1046_7 +# 1048| m1048_7(unknown) = Chi : total:m1046_7, partial:m1048_6 +# 1048| v1048_8(void) = ^IndirectReadSideEffect[-1] : &:r1048_2, m1047_11 +# 1049| r1049_1(glval) = VariableAddress[lambda_val_explicit] : +# 1049| r1049_2(glval) = VariableAddress[#temp1049:29] : +# 1049| m1049_3(decltype([...](...){...})) = Uninitialized[#temp1049:29] : &:r1049_2 +# 1049| r1049_4(glval) = FieldAddress[s] : r1049_2 +# 1049| r1049_5(glval) = FunctionAddress[String] : +# 1049| v1049_6(void) = Call[String] : func:r1049_5, this:r1049_4 +# 1049| m1049_7(unknown) = ^CallSideEffect : ~m1048_7 +# 1049| m1049_8(unknown) = Chi : total:m1048_7, partial:m1049_7 +# 1049| m1049_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1049_4 +# 1049| m1049_10(decltype([...](...){...})) = Chi : total:m1049_3, partial:m1049_9 +# 1049| r1049_11(decltype([...](...){...})) = Load[#temp1049:29] : &:r1049_2, m1049_10 +# 1049| m1049_12(decltype([...](...){...})) = Store[lambda_val_explicit] : &:r1049_1, r1049_11 +# 1050| r1050_1(glval) = VariableAddress[lambda_val_explicit] : +# 1050| r1050_2(glval) = Convert : r1050_1 +# 1050| r1050_3(glval) = FunctionAddress[operator()] : +# 1050| r1050_4(float) = Constant[4.0] : +# 1050| r1050_5(char) = Call[operator()] : func:r1050_3, this:r1050_2, 0:r1050_4 +# 1050| m1050_6(unknown) = ^CallSideEffect : ~m1049_8 +# 1050| m1050_7(unknown) = Chi : total:m1049_8, partial:m1050_6 +# 1050| v1050_8(void) = ^IndirectReadSideEffect[-1] : &:r1050_2, m1049_12 +# 1051| r1051_1(glval) = VariableAddress[lambda_mixed_explicit] : +# 1051| r1051_2(glval) = VariableAddress[#temp1051:31] : +# 1051| m1051_3(decltype([...](...){...})) = Uninitialized[#temp1051:31] : &:r1051_2 +# 1051| r1051_4(glval) = FieldAddress[s] : r1051_2 +# 1051| r1051_5(glval) = VariableAddress[s] : +# 1051| r1051_6(String &) = Load[s] : &:r1051_5, m1040_8 +# 1051| r1051_7(glval) = CopyValue : r1051_6 +# 1051| r1051_8(String &) = CopyValue : r1051_7 +# 1051| m1051_9(String &) = Store[?] : &:r1051_4, r1051_8 +# 1051| m1051_10(decltype([...](...){...})) = Chi : total:m1051_3, partial:m1051_9 +# 1051| r1051_11(glval) = FieldAddress[x] : r1051_2 +# 1051| r1051_12(glval) = VariableAddress[x] : +# 1051| r1051_13(int) = Load[x] : &:r1051_12, m1040_6 +# 1051| m1051_14(int) = Store[?] : &:r1051_11, r1051_13 +# 1051| m1051_15(decltype([...](...){...})) = Chi : total:m1051_10, partial:m1051_14 +# 1051| r1051_16(decltype([...](...){...})) = Load[#temp1051:31] : &:r1051_2, m1051_15 +# 1051| m1051_17(decltype([...](...){...})) = Store[lambda_mixed_explicit] : &:r1051_1, r1051_16 +# 1052| r1052_1(glval) = VariableAddress[lambda_mixed_explicit] : +# 1052| r1052_2(glval) = Convert : r1052_1 +# 1052| r1052_3(glval) = FunctionAddress[operator()] : +# 1052| r1052_4(float) = Constant[5.0] : +# 1052| r1052_5(char) = Call[operator()] : func:r1052_3, this:r1052_2, 0:r1052_4 +# 1052| m1052_6(unknown) = ^CallSideEffect : ~m1050_7 +# 1052| m1052_7(unknown) = Chi : total:m1050_7, partial:m1052_6 +# 1052| v1052_8(void) = ^IndirectReadSideEffect[-1] : &:r1052_2, m1051_17 +# 1053| r1053_1(glval) = VariableAddress[r] : +# 1053| r1053_2(glval) = VariableAddress[x] : +# 1053| r1053_3(int) = Load[x] : &:r1053_2, m1040_6 +# 1053| r1053_4(int) = Constant[1] : +# 1053| r1053_5(int) = Sub : r1053_3, r1053_4 +# 1053| m1053_6(int) = Store[r] : &:r1053_1, r1053_5 +# 1054| r1054_1(glval) = VariableAddress[lambda_inits] : +# 1054| r1054_2(glval) = VariableAddress[#temp1054:22] : +# 1054| m1054_3(decltype([...](...){...})) = Uninitialized[#temp1054:22] : &:r1054_2 +# 1054| r1054_4(glval) = FieldAddress[s] : r1054_2 +# 1054| r1054_5(glval) = VariableAddress[s] : +# 1054| r1054_6(String &) = Load[s] : &:r1054_5, m1040_8 +# 1054| r1054_7(glval) = CopyValue : r1054_6 +# 1054| r1054_8(String &) = CopyValue : r1054_7 +# 1054| m1054_9(String &) = Store[?] : &:r1054_4, r1054_8 +# 1054| m1054_10(decltype([...](...){...})) = Chi : total:m1054_3, partial:m1054_9 +# 1054| r1054_11(glval) = FieldAddress[x] : r1054_2 +# 1054| r1054_12(glval) = VariableAddress[x] : +# 1054| r1054_13(int) = Load[x] : &:r1054_12, m1040_6 +# 1054| m1054_14(int) = Store[?] : &:r1054_11, r1054_13 +# 1054| m1054_15(decltype([...](...){...})) = Chi : total:m1054_10, partial:m1054_14 +# 1054| r1054_16(glval) = FieldAddress[i] : r1054_2 +# 1054| r1054_17(glval) = VariableAddress[x] : +# 1054| r1054_18(int) = Load[x] : &:r1054_17, m1040_6 +# 1054| r1054_19(int) = Constant[1] : +# 1054| r1054_20(int) = Add : r1054_18, r1054_19 +# 1054| m1054_21(int) = Store[?] : &:r1054_16, r1054_20 +# 1054| m1054_22(decltype([...](...){...})) = Chi : total:m1054_15, partial:m1054_21 +# 1054| r1054_23(glval) = FieldAddress[j] : r1054_2 +# 1054| r1054_24(glval) = VariableAddress[r] : +# 1054| r1054_25(int &) = CopyValue : r1054_24 +# 1054| m1054_26(int &) = Store[?] : &:r1054_23, r1054_25 +# 1054| m1054_27(decltype([...](...){...})) = Chi : total:m1054_22, partial:m1054_26 +# 1054| r1054_28(decltype([...](...){...})) = Load[#temp1054:22] : &:r1054_2, m1054_27 +# 1054| m1054_29(decltype([...](...){...})) = Store[lambda_inits] : &:r1054_1, r1054_28 +# 1055| r1055_1(glval) = VariableAddress[lambda_inits] : +# 1055| r1055_2(glval) = Convert : r1055_1 +# 1055| r1055_3(glval) = FunctionAddress[operator()] : +# 1055| r1055_4(float) = Constant[6.0] : +# 1055| r1055_5(char) = Call[operator()] : func:r1055_3, this:r1055_2, 0:r1055_4 +# 1055| m1055_6(unknown) = ^CallSideEffect : ~m1052_7 +# 1055| m1055_7(unknown) = Chi : total:m1052_7, partial:m1055_6 +# 1055| v1055_8(void) = ^IndirectReadSideEffect[-1] : &:r1055_2, m1054_29 +# 1056| v1056_1(void) = NoOp : +# 1040| v1040_11(void) = ReturnIndirection[s] : &:r1040_9, m1040_10 +# 1040| v1040_12(void) = ReturnVoid : +# 1040| v1040_13(void) = AliasedUse : ~m1055_7 +# 1040| v1040_14(void) = ExitFunction : + +# 1041| char (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::operator()(float) const +# 1041| Block 0 +# 1041| v1041_1(void) = EnterFunction : +# 1041| m1041_2(unknown) = AliasedDefinition : +# 1041| m1041_3(unknown) = InitializeNonLocal : +# 1041| m1041_4(unknown) = Chi : total:m1041_2, partial:m1041_3 +# 1041| r1041_5(glval) = VariableAddress[#this] : +# 1041| m1041_6(glval) = InitializeParameter[#this] : &:r1041_5 +# 1041| r1041_7(glval) = Load[#this] : &:r1041_5, m1041_6 +# 1041| m1041_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1041_7 +# 1041| r1041_9(glval) = VariableAddress[f] : +# 1041| m1041_10(float) = InitializeParameter[f] : &:r1041_9 +# 1041| r1041_11(glval) = VariableAddress[#return] : +# 1041| r1041_12(char) = Constant[65] : +# 1041| m1041_13(char) = Store[#return] : &:r1041_11, r1041_12 +# 1041| v1041_14(void) = ReturnIndirection[#this] : &:r1041_7, m1041_8 +# 1041| r1041_15(glval) = VariableAddress[#return] : +# 1041| v1041_16(void) = ReturnValue : &:r1041_15, m1041_13 +# 1041| v1041_17(void) = AliasedUse : m1041_3 +# 1041| v1041_18(void) = ExitFunction : + +# 1041| char(* (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::operator char (*)(float)() const)(float) +# 1041| Block 0 +# 1041| v1041_1(void) = EnterFunction : +# 1041| m1041_2(unknown) = AliasedDefinition : +# 1041| m1041_3(unknown) = InitializeNonLocal : +# 1041| m1041_4(unknown) = Chi : total:m1041_2, partial:m1041_3 +# 1041| r1041_5(glval) = VariableAddress[#this] : +# 1041| m1041_6(glval) = InitializeParameter[#this] : &:r1041_5 +# 1041| r1041_7(glval) = Load[#this] : &:r1041_5, m1041_6 +# 1041| m1041_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1041_7 +# 1041| r1041_9(glval<..(*)(..)>) = VariableAddress[#return] : +# 1041| r1041_10(..(*)(..)) = FunctionAddress[_FUN] : +# 1041| m1041_11(..(*)(..)) = Store[#return] : &:r1041_9, r1041_10 +# 1041| v1041_12(void) = ReturnIndirection[#this] : &:r1041_7, m1041_8 +# 1041| r1041_13(glval<..(*)(..)>) = VariableAddress[#return] : +# 1041| v1041_14(void) = ReturnValue : &:r1041_13, m1041_11 +# 1041| v1041_15(void) = AliasedUse : m1041_3 +# 1041| v1041_16(void) = ExitFunction : + +# 1043| char (void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21)::operator()(float) const +# 1043| Block 0 +# 1043| v1043_1(void) = EnterFunction : +# 1043| m1043_2(unknown) = AliasedDefinition : +# 1043| m1043_3(unknown) = InitializeNonLocal : +# 1043| m1043_4(unknown) = Chi : total:m1043_2, partial:m1043_3 +# 1043| r1043_5(glval) = VariableAddress[#this] : +# 1043| m1043_6(glval) = InitializeParameter[#this] : &:r1043_5 +# 1043| r1043_7(glval) = Load[#this] : &:r1043_5, m1043_6 +# 1043| m1043_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1043_7 +# 1043| r1043_9(glval) = VariableAddress[f] : +# 1043| m1043_10(float) = InitializeParameter[f] : &:r1043_9 +# 1043| r1043_11(glval) = VariableAddress[#return] : +# 1043| r1043_12(glval) = VariableAddress[#this] : +# 1043| r1043_13(lambda [] type at line 1043, col. 21 *) = Load[#this] : &:r1043_12, m1043_6 +# 1043| r1043_14(glval) = FieldAddress[s] : r1043_13 +# 1043| r1043_15(String &) = Load[?] : &:r1043_14, ~m1043_8 +# 1043| r1043_16(glval) = CopyValue : r1043_15 +# 1043| r1043_17(glval) = FunctionAddress[c_str] : +# 1043| r1043_18(char *) = Call[c_str] : func:r1043_17, this:r1043_16 +# 1043| m1043_19(unknown) = ^CallSideEffect : ~m1043_4 +# 1043| m1043_20(unknown) = Chi : total:m1043_4, partial:m1043_19 +# 1043| v1043_21(void) = ^IndirectReadSideEffect[-1] : &:r1043_16, ~m1043_20 +# 1043| r1043_22(glval) = VariableAddress[#this] : +# 1043| r1043_23(lambda [] type at line 1043, col. 21 *) = Load[#this] : &:r1043_22, m1043_6 +# 1043| r1043_24(glval) = FieldAddress[x] : r1043_23 +# 1043| r1043_25(int &) = Load[?] : &:r1043_24, ~m1043_8 +# 1043| r1043_26(int) = Load[?] : &:r1043_25, ~m1043_20 +# 1043| r1043_27(glval) = PointerAdd[1] : r1043_18, r1043_26 +# 1043| r1043_28(char) = Load[?] : &:r1043_27, ~m1043_20 +# 1043| m1043_29(char) = Store[#return] : &:r1043_11, r1043_28 +# 1043| v1043_30(void) = ReturnIndirection[#this] : &:r1043_7, m1043_8 +# 1043| r1043_31(glval) = VariableAddress[#return] : +# 1043| v1043_32(void) = ReturnValue : &:r1043_31, m1043_29 +# 1043| v1043_33(void) = AliasedUse : ~m1043_20 +# 1043| v1043_34(void) = ExitFunction : + +# 1045| void (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)::~() +# 1045| Block 0 +# 1045| v1045_1(void) = EnterFunction : +# 1045| m1045_2(unknown) = AliasedDefinition : +# 1045| m1045_3(unknown) = InitializeNonLocal : +# 1045| m1045_4(unknown) = Chi : total:m1045_2, partial:m1045_3 +# 1045| r1045_5(glval) = VariableAddress[#this] : +# 1045| m1045_6(glval) = InitializeParameter[#this] : &:r1045_5 +# 1045| r1045_7(glval) = Load[#this] : &:r1045_5, m1045_6 +# 1045| m1045_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1045_7 +#-----| v0_1(void) = NoOp : +# 1045| r1045_9(glval) = FieldAddress[s] : m1045_6 +# 1045| r1045_10(glval) = FunctionAddress[~String] : +# 1045| v1045_11(void) = Call[~String] : func:r1045_10, this:r1045_9 +# 1045| m1045_12(unknown) = ^CallSideEffect : ~m1045_4 +# 1045| m1045_13(unknown) = Chi : total:m1045_4, partial:m1045_12 +# 1045| v1045_14(void) = ReturnIndirection[#this] : &:r1045_7, m1045_8 +# 1045| v1045_15(void) = ReturnVoid : +# 1045| v1045_16(void) = AliasedUse : ~m1045_13 +# 1045| v1045_17(void) = ExitFunction : + +# 1045| char (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)::operator()(float) const +# 1045| Block 0 +# 1045| v1045_1(void) = EnterFunction : +# 1045| m1045_2(unknown) = AliasedDefinition : +# 1045| m1045_3(unknown) = InitializeNonLocal : +# 1045| m1045_4(unknown) = Chi : total:m1045_2, partial:m1045_3 +# 1045| r1045_5(glval) = VariableAddress[#this] : +# 1045| m1045_6(glval) = InitializeParameter[#this] : &:r1045_5 +# 1045| r1045_7(glval) = Load[#this] : &:r1045_5, m1045_6 +# 1045| m1045_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1045_7 +# 1045| r1045_9(glval) = VariableAddress[f] : +# 1045| m1045_10(float) = InitializeParameter[f] : &:r1045_9 +# 1045| r1045_11(glval) = VariableAddress[#return] : +# 1045| r1045_12(glval) = VariableAddress[#this] : +# 1045| r1045_13(lambda [] type at line 1045, col. 21 *) = Load[#this] : &:r1045_12, m1045_6 +# 1045| r1045_14(glval) = FieldAddress[s] : r1045_13 +# 1045| r1045_15(glval) = FunctionAddress[c_str] : +# 1045| r1045_16(char *) = Call[c_str] : func:r1045_15, this:r1045_14 +# 1045| m1045_17(unknown) = ^CallSideEffect : ~m1045_4 +# 1045| m1045_18(unknown) = Chi : total:m1045_4, partial:m1045_17 +# 1045| v1045_19(void) = ^IndirectReadSideEffect[-1] : &:r1045_14, ~m1045_8 +# 1045| r1045_20(glval) = VariableAddress[#this] : +# 1045| r1045_21(lambda [] type at line 1045, col. 21 *) = Load[#this] : &:r1045_20, m1045_6 +# 1045| r1045_22(glval) = FieldAddress[x] : r1045_21 +# 1045| r1045_23(int) = Load[?] : &:r1045_22, ~m1045_8 +# 1045| r1045_24(glval) = PointerAdd[1] : r1045_16, r1045_23 +# 1045| r1045_25(char) = Load[?] : &:r1045_24, ~m1045_18 +# 1045| m1045_26(char) = Store[#return] : &:r1045_11, r1045_25 +# 1045| v1045_27(void) = ReturnIndirection[#this] : &:r1045_7, m1045_8 +# 1045| r1045_28(glval) = VariableAddress[#return] : +# 1045| v1045_29(void) = ReturnValue : &:r1045_28, m1045_26 +# 1045| v1045_30(void) = AliasedUse : ~m1045_18 +# 1045| v1045_31(void) = ExitFunction : + +# 1047| char (void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30)::operator()(float) const +# 1047| Block 0 +# 1047| v1047_1(void) = EnterFunction : +# 1047| m1047_2(unknown) = AliasedDefinition : +# 1047| m1047_3(unknown) = InitializeNonLocal : +# 1047| m1047_4(unknown) = Chi : total:m1047_2, partial:m1047_3 +# 1047| r1047_5(glval) = VariableAddress[#this] : +# 1047| m1047_6(glval) = InitializeParameter[#this] : &:r1047_5 +# 1047| r1047_7(glval) = Load[#this] : &:r1047_5, m1047_6 +# 1047| m1047_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1047_7 +# 1047| r1047_9(glval) = VariableAddress[f] : +# 1047| m1047_10(float) = InitializeParameter[f] : &:r1047_9 +# 1047| r1047_11(glval) = VariableAddress[#return] : +# 1047| r1047_12(glval) = VariableAddress[#this] : +# 1047| r1047_13(lambda [] type at line 1047, col. 30 *) = Load[#this] : &:r1047_12, m1047_6 +# 1047| r1047_14(glval) = FieldAddress[s] : r1047_13 +# 1047| r1047_15(String &) = Load[?] : &:r1047_14, ~m1047_8 +# 1047| r1047_16(glval) = CopyValue : r1047_15 +# 1047| r1047_17(glval) = FunctionAddress[c_str] : +# 1047| r1047_18(char *) = Call[c_str] : func:r1047_17, this:r1047_16 +# 1047| m1047_19(unknown) = ^CallSideEffect : ~m1047_4 +# 1047| m1047_20(unknown) = Chi : total:m1047_4, partial:m1047_19 +# 1047| v1047_21(void) = ^IndirectReadSideEffect[-1] : &:r1047_16, ~m1047_20 +# 1047| r1047_22(int) = Constant[0] : +# 1047| r1047_23(glval) = PointerAdd[1] : r1047_18, r1047_22 +# 1047| r1047_24(char) = Load[?] : &:r1047_23, ~m1047_20 +# 1047| m1047_25(char) = Store[#return] : &:r1047_11, r1047_24 +# 1047| v1047_26(void) = ReturnIndirection[#this] : &:r1047_7, m1047_8 +# 1047| r1047_27(glval) = VariableAddress[#return] : +# 1047| v1047_28(void) = ReturnValue : &:r1047_27, m1047_25 +# 1047| v1047_29(void) = AliasedUse : ~m1047_20 +# 1047| v1047_30(void) = ExitFunction : + +# 1049| void (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)::~() +# 1049| Block 0 +# 1049| v1049_1(void) = EnterFunction : +# 1049| m1049_2(unknown) = AliasedDefinition : +# 1049| m1049_3(unknown) = InitializeNonLocal : +# 1049| m1049_4(unknown) = Chi : total:m1049_2, partial:m1049_3 +# 1049| r1049_5(glval) = VariableAddress[#this] : +# 1049| m1049_6(glval) = InitializeParameter[#this] : &:r1049_5 +# 1049| r1049_7(glval) = Load[#this] : &:r1049_5, m1049_6 +# 1049| m1049_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1049_7 +#-----| v0_1(void) = NoOp : +# 1049| r1049_9(glval) = FieldAddress[s] : m1049_6 +# 1049| r1049_10(glval) = FunctionAddress[~String] : +# 1049| v1049_11(void) = Call[~String] : func:r1049_10, this:r1049_9 +# 1049| m1049_12(unknown) = ^CallSideEffect : ~m1049_4 +# 1049| m1049_13(unknown) = Chi : total:m1049_4, partial:m1049_12 +# 1049| v1049_14(void) = ReturnIndirection[#this] : &:r1049_7, m1049_8 +# 1049| v1049_15(void) = ReturnVoid : +# 1049| v1049_16(void) = AliasedUse : ~m1049_13 +# 1049| v1049_17(void) = ExitFunction : + +# 1049| char (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)::operator()(float) const +# 1049| Block 0 +# 1049| v1049_1(void) = EnterFunction : +# 1049| m1049_2(unknown) = AliasedDefinition : +# 1049| m1049_3(unknown) = InitializeNonLocal : +# 1049| m1049_4(unknown) = Chi : total:m1049_2, partial:m1049_3 +# 1049| r1049_5(glval) = VariableAddress[#this] : +# 1049| m1049_6(glval) = InitializeParameter[#this] : &:r1049_5 +# 1049| r1049_7(glval) = Load[#this] : &:r1049_5, m1049_6 +# 1049| m1049_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1049_7 +# 1049| r1049_9(glval) = VariableAddress[f] : +# 1049| m1049_10(float) = InitializeParameter[f] : &:r1049_9 +# 1049| r1049_11(glval) = VariableAddress[#return] : +# 1049| r1049_12(glval) = VariableAddress[#this] : +# 1049| r1049_13(lambda [] type at line 1049, col. 30 *) = Load[#this] : &:r1049_12, m1049_6 +# 1049| r1049_14(glval) = FieldAddress[s] : r1049_13 +# 1049| r1049_15(glval) = FunctionAddress[c_str] : +# 1049| r1049_16(char *) = Call[c_str] : func:r1049_15, this:r1049_14 +# 1049| m1049_17(unknown) = ^CallSideEffect : ~m1049_4 +# 1049| m1049_18(unknown) = Chi : total:m1049_4, partial:m1049_17 +# 1049| v1049_19(void) = ^IndirectReadSideEffect[-1] : &:r1049_14, ~m1049_8 +# 1049| r1049_20(int) = Constant[0] : +# 1049| r1049_21(glval) = PointerAdd[1] : r1049_16, r1049_20 +# 1049| r1049_22(char) = Load[?] : &:r1049_21, ~m1049_18 +# 1049| m1049_23(char) = Store[#return] : &:r1049_11, r1049_22 +# 1049| v1049_24(void) = ReturnIndirection[#this] : &:r1049_7, m1049_8 +# 1049| r1049_25(glval) = VariableAddress[#return] : +# 1049| v1049_26(void) = ReturnValue : &:r1049_25, m1049_23 +# 1049| v1049_27(void) = AliasedUse : ~m1049_18 +# 1049| v1049_28(void) = ExitFunction : + +# 1051| char (void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32)::operator()(float) const +# 1051| Block 0 +# 1051| v1051_1(void) = EnterFunction : +# 1051| m1051_2(unknown) = AliasedDefinition : +# 1051| m1051_3(unknown) = InitializeNonLocal : +# 1051| m1051_4(unknown) = Chi : total:m1051_2, partial:m1051_3 +# 1051| r1051_5(glval) = VariableAddress[#this] : +# 1051| m1051_6(glval) = InitializeParameter[#this] : &:r1051_5 +# 1051| r1051_7(glval) = Load[#this] : &:r1051_5, m1051_6 +# 1051| m1051_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1051_7 +# 1051| r1051_9(glval) = VariableAddress[f] : +# 1051| m1051_10(float) = InitializeParameter[f] : &:r1051_9 +# 1051| r1051_11(glval) = VariableAddress[#return] : +# 1051| r1051_12(glval) = VariableAddress[#this] : +# 1051| r1051_13(lambda [] type at line 1051, col. 32 *) = Load[#this] : &:r1051_12, m1051_6 +# 1051| r1051_14(glval) = FieldAddress[s] : r1051_13 +# 1051| r1051_15(String &) = Load[?] : &:r1051_14, ~m1051_8 +# 1051| r1051_16(glval) = CopyValue : r1051_15 +# 1051| r1051_17(glval) = FunctionAddress[c_str] : +# 1051| r1051_18(char *) = Call[c_str] : func:r1051_17, this:r1051_16 +# 1051| m1051_19(unknown) = ^CallSideEffect : ~m1051_4 +# 1051| m1051_20(unknown) = Chi : total:m1051_4, partial:m1051_19 +# 1051| v1051_21(void) = ^IndirectReadSideEffect[-1] : &:r1051_16, ~m1051_20 +# 1051| r1051_22(glval) = VariableAddress[#this] : +# 1051| r1051_23(lambda [] type at line 1051, col. 32 *) = Load[#this] : &:r1051_22, m1051_6 +# 1051| r1051_24(glval) = FieldAddress[x] : r1051_23 +# 1051| r1051_25(int) = Load[?] : &:r1051_24, ~m1051_8 +# 1051| r1051_26(glval) = PointerAdd[1] : r1051_18, r1051_25 +# 1051| r1051_27(char) = Load[?] : &:r1051_26, ~m1051_20 +# 1051| m1051_28(char) = Store[#return] : &:r1051_11, r1051_27 +# 1051| v1051_29(void) = ReturnIndirection[#this] : &:r1051_7, m1051_8 +# 1051| r1051_30(glval) = VariableAddress[#return] : +# 1051| v1051_31(void) = ReturnValue : &:r1051_30, m1051_28 +# 1051| v1051_32(void) = AliasedUse : ~m1051_20 +# 1051| v1051_33(void) = ExitFunction : + +# 1054| char (void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23)::operator()(float) const +# 1054| Block 0 +# 1054| v1054_1(void) = EnterFunction : +# 1054| m1054_2(unknown) = AliasedDefinition : +# 1054| m1054_3(unknown) = InitializeNonLocal : +# 1054| m1054_4(unknown) = Chi : total:m1054_2, partial:m1054_3 +# 1054| r1054_5(glval) = VariableAddress[#this] : +# 1054| m1054_6(glval) = InitializeParameter[#this] : &:r1054_5 +# 1054| r1054_7(glval) = Load[#this] : &:r1054_5, m1054_6 +# 1054| m1054_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1054_7 +# 1054| r1054_9(glval) = VariableAddress[f] : +# 1054| m1054_10(float) = InitializeParameter[f] : &:r1054_9 +# 1054| r1054_11(glval) = VariableAddress[#return] : +# 1054| r1054_12(glval) = VariableAddress[#this] : +# 1054| r1054_13(lambda [] type at line 1054, col. 23 *) = Load[#this] : &:r1054_12, m1054_6 +# 1054| r1054_14(glval) = FieldAddress[s] : r1054_13 +# 1054| r1054_15(String &) = Load[?] : &:r1054_14, ~m1054_8 +# 1054| r1054_16(glval) = CopyValue : r1054_15 +# 1054| r1054_17(glval) = FunctionAddress[c_str] : +# 1054| r1054_18(char *) = Call[c_str] : func:r1054_17, this:r1054_16 +# 1054| m1054_19(unknown) = ^CallSideEffect : ~m1054_4 +# 1054| m1054_20(unknown) = Chi : total:m1054_4, partial:m1054_19 +# 1054| v1054_21(void) = ^IndirectReadSideEffect[-1] : &:r1054_16, ~m1054_20 +# 1054| r1054_22(glval) = VariableAddress[#this] : +# 1054| r1054_23(lambda [] type at line 1054, col. 23 *) = Load[#this] : &:r1054_22, m1054_6 +# 1054| r1054_24(glval) = FieldAddress[x] : r1054_23 +# 1054| r1054_25(int) = Load[?] : &:r1054_24, ~m1054_8 +# 1054| r1054_26(glval) = VariableAddress[#this] : +# 1054| r1054_27(lambda [] type at line 1054, col. 23 *) = Load[#this] : &:r1054_26, m1054_6 +# 1054| r1054_28(glval) = FieldAddress[i] : r1054_27 +# 1054| r1054_29(int) = Load[?] : &:r1054_28, ~m1054_8 +# 1054| r1054_30(int) = Add : r1054_25, r1054_29 +# 1054| r1054_31(glval) = VariableAddress[#this] : +# 1054| r1054_32(lambda [] type at line 1054, col. 23 *) = Load[#this] : &:r1054_31, m1054_6 +# 1054| r1054_33(glval) = FieldAddress[j] : r1054_32 +# 1054| r1054_34(int &) = Load[?] : &:r1054_33, ~m1054_8 +# 1054| r1054_35(int) = Load[?] : &:r1054_34, ~m1054_20 +# 1054| r1054_36(int) = Sub : r1054_30, r1054_35 +# 1054| r1054_37(glval) = PointerAdd[1] : r1054_18, r1054_36 +# 1054| r1054_38(char) = Load[?] : &:r1054_37, ~m1054_20 +# 1054| m1054_39(char) = Store[#return] : &:r1054_11, r1054_38 +# 1054| v1054_40(void) = ReturnIndirection[#this] : &:r1054_7, m1054_8 +# 1054| r1054_41(glval) = VariableAddress[#return] : +# 1054| v1054_42(void) = ReturnValue : &:r1054_41, m1054_39 +# 1054| v1054_43(void) = AliasedUse : ~m1054_20 +# 1054| v1054_44(void) = ExitFunction : + +# 1077| void RangeBasedFor(vector const&) +# 1077| Block 0 +# 1077| v1077_1(void) = EnterFunction : +# 1077| m1077_2(unknown) = AliasedDefinition : +# 1077| m1077_3(unknown) = InitializeNonLocal : +# 1077| m1077_4(unknown) = Chi : total:m1077_2, partial:m1077_3 +# 1077| r1077_5(glval &>) = VariableAddress[v] : +# 1077| m1077_6(vector &) = InitializeParameter[v] : &:r1077_5 +# 1077| r1077_7(vector &) = Load[v] : &:r1077_5, m1077_6 +# 1077| m1077_8(unknown) = InitializeIndirection[v] : &:r1077_7 +# 1078| r1078_1(glval &>) = VariableAddress[(__range)] : +# 1078| r1078_2(glval &>) = VariableAddress[v] : +# 1078| r1078_3(vector &) = Load[v] : &:r1078_2, m1077_6 +# 1078| r1078_4(glval>) = CopyValue : r1078_3 +# 1078| r1078_5(vector &) = CopyValue : r1078_4 +# 1078| m1078_6(vector &) = Store[(__range)] : &:r1078_1, r1078_5 +# 1078| r1078_7(glval) = VariableAddress[(__begin)] : +# 1078| r1078_8(glval &>) = VariableAddress[(__range)] : +# 1078| r1078_9(vector &) = Load[(__range)] : &:r1078_8, m1078_6 +#-----| r0_1(glval>) = CopyValue : r1078_9 +# 1078| r1078_10(glval) = FunctionAddress[begin] : +# 1078| r1078_11(iterator) = Call[begin] : func:r1078_10, this:r0_1 +# 1078| m1078_12(unknown) = ^CallSideEffect : ~m1077_4 +# 1078| m1078_13(unknown) = Chi : total:m1077_4, partial:m1078_12 +#-----| v0_2(void) = ^IndirectReadSideEffect[-1] : &:r0_1, ~m1077_8 +# 1078| m1078_14(iterator) = Store[(__begin)] : &:r1078_7, r1078_11 +# 1078| r1078_15(glval) = VariableAddress[(__end)] : +# 1078| r1078_16(glval &>) = VariableAddress[(__range)] : +# 1078| r1078_17(vector &) = Load[(__range)] : &:r1078_16, m1078_6 +#-----| r0_3(glval>) = CopyValue : r1078_17 +# 1078| r1078_18(glval) = FunctionAddress[end] : +# 1078| r1078_19(iterator) = Call[end] : func:r1078_18, this:r0_3 +# 1078| m1078_20(unknown) = ^CallSideEffect : ~m1078_13 +# 1078| m1078_21(unknown) = Chi : total:m1078_13, partial:m1078_20 +#-----| v0_4(void) = ^IndirectReadSideEffect[-1] : &:r0_3, ~m1077_8 +# 1078| m1078_22(iterator) = Store[(__end)] : &:r1078_15, r1078_19 +#-----| Goto -> Block 1 + +# 1078| Block 1 +# 1078| m1078_23(iterator) = Phi : from 0:m1078_14, from 4:m1078_49 +# 1078| m1078_24(unknown) = Phi : from 0:~m1078_21, from 4:~m1078_46 +# 1078| r1078_25(glval) = VariableAddress[(__begin)] : +#-----| r0_5(glval) = Convert : r1078_25 +# 1078| r1078_26(glval) = FunctionAddress[operator!=] : +# 1078| r1078_27(glval) = VariableAddress[(__end)] : +# 1078| r1078_28(iterator) = Load[(__end)] : &:r1078_27, m1078_22 +# 1078| r1078_29(bool) = Call[operator!=] : func:r1078_26, this:r0_5, 0:r1078_28 +# 1078| m1078_30(unknown) = ^CallSideEffect : ~m1078_24 +# 1078| m1078_31(unknown) = Chi : total:m1078_24, partial:m1078_30 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m1078_23 +# 1078| v1078_32(void) = ConditionalBranch : r1078_29 +#-----| False -> Block 5 +#-----| True -> Block 2 + +# 1078| Block 2 +# 1078| r1078_33(glval) = VariableAddress[e] : +# 1078| r1078_34(glval) = VariableAddress[(__begin)] : +#-----| r0_7(glval) = Convert : r1078_34 +# 1078| r1078_35(glval) = FunctionAddress[operator*] : +# 1078| r1078_36(int &) = Call[operator*] : func:r1078_35, this:r0_7 +# 1078| m1078_37(unknown) = ^CallSideEffect : ~m1078_31 +# 1078| m1078_38(unknown) = Chi : total:m1078_31, partial:m1078_37 +#-----| v0_8(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m1078_23 +# 1078| r1078_39(int) = Load[?] : &:r1078_36, ~m1078_38 +# 1078| m1078_40(int) = Store[e] : &:r1078_33, r1078_39 +# 1079| r1079_1(glval) = VariableAddress[e] : +# 1079| r1079_2(int) = Load[e] : &:r1079_1, m1078_40 +# 1079| r1079_3(int) = Constant[0] : +# 1079| r1079_4(bool) = CompareGT : r1079_2, r1079_3 +# 1079| v1079_5(void) = ConditionalBranch : r1079_4 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 1080| Block 3 +# 1080| v1080_1(void) = NoOp : +#-----| Goto -> Block 4 + +# 1078| Block 4 +# 1078| v1078_41(void) = NoOp : +# 1078| r1078_42(glval) = VariableAddress[(__begin)] : +# 1078| r1078_43(glval) = FunctionAddress[operator++] : +# 1078| r1078_44(iterator &) = Call[operator++] : func:r1078_43, this:r1078_42 +# 1078| m1078_45(unknown) = ^CallSideEffect : ~m1078_38 +# 1078| m1078_46(unknown) = Chi : total:m1078_38, partial:m1078_45 +# 1078| v1078_47(void) = ^IndirectReadSideEffect[-1] : &:r1078_42, m1078_23 +# 1078| m1078_48(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r1078_42 +# 1078| m1078_49(iterator) = Chi : total:m1078_23, partial:m1078_48 +# 1078| r1078_50(glval) = CopyValue : r1078_44 +#-----| Goto (back edge) -> Block 1 + +# 1084| Block 5 +# 1084| r1084_1(glval &>) = VariableAddress[(__range)] : +# 1084| r1084_2(glval &>) = VariableAddress[v] : +# 1084| r1084_3(vector &) = Load[v] : &:r1084_2, m1077_6 +# 1084| r1084_4(glval>) = CopyValue : r1084_3 +# 1084| r1084_5(vector &) = CopyValue : r1084_4 +# 1084| m1084_6(vector &) = Store[(__range)] : &:r1084_1, r1084_5 +# 1084| r1084_7(glval) = VariableAddress[(__begin)] : +# 1084| r1084_8(glval &>) = VariableAddress[(__range)] : +# 1084| r1084_9(vector &) = Load[(__range)] : &:r1084_8, m1084_6 +#-----| r0_9(glval>) = CopyValue : r1084_9 +# 1084| r1084_10(glval) = FunctionAddress[begin] : +# 1084| r1084_11(iterator) = Call[begin] : func:r1084_10, this:r0_9 +# 1084| m1084_12(unknown) = ^CallSideEffect : ~m1078_31 +# 1084| m1084_13(unknown) = Chi : total:m1078_31, partial:m1084_12 +#-----| v0_10(void) = ^IndirectReadSideEffect[-1] : &:r0_9, ~m1077_8 +# 1084| m1084_14(iterator) = Store[(__begin)] : &:r1084_7, r1084_11 +# 1084| r1084_15(glval) = VariableAddress[(__end)] : +# 1084| r1084_16(glval &>) = VariableAddress[(__range)] : +# 1084| r1084_17(vector &) = Load[(__range)] : &:r1084_16, m1084_6 +#-----| r0_11(glval>) = CopyValue : r1084_17 +# 1084| r1084_18(glval) = FunctionAddress[end] : +# 1084| r1084_19(iterator) = Call[end] : func:r1084_18, this:r0_11 +# 1084| m1084_20(unknown) = ^CallSideEffect : ~m1084_13 +# 1084| m1084_21(unknown) = Chi : total:m1084_13, partial:m1084_20 +#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_11, ~m1077_8 +# 1084| m1084_22(iterator) = Store[(__end)] : &:r1084_15, r1084_19 +#-----| Goto -> Block 6 + +# 1084| Block 6 +# 1084| m1084_23(iterator) = Phi : from 5:m1084_14, from 7:m1084_40 +# 1084| m1084_24(unknown) = Phi : from 5:~m1084_21, from 7:~m1084_37 +# 1084| r1084_25(glval) = VariableAddress[(__begin)] : +#-----| r0_13(glval) = Convert : r1084_25 +# 1084| r1084_26(glval) = FunctionAddress[operator!=] : +# 1084| r1084_27(glval) = VariableAddress[(__end)] : +# 1084| r1084_28(iterator) = Load[(__end)] : &:r1084_27, m1084_22 +# 1084| r1084_29(bool) = Call[operator!=] : func:r1084_26, this:r0_13, 0:r1084_28 +# 1084| m1084_30(unknown) = ^CallSideEffect : ~m1084_24 +# 1084| m1084_31(unknown) = Chi : total:m1084_24, partial:m1084_30 +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_13, m1084_23 +# 1084| v1084_32(void) = ConditionalBranch : r1084_29 +#-----| False -> Block 10 +#-----| True -> Block 8 + +# 1084| Block 7 +# 1084| r1084_33(glval) = VariableAddress[(__begin)] : +# 1084| r1084_34(glval) = FunctionAddress[operator++] : +# 1084| r1084_35(iterator &) = Call[operator++] : func:r1084_34, this:r1084_33 +# 1084| m1084_36(unknown) = ^CallSideEffect : ~m1084_47 +# 1084| m1084_37(unknown) = Chi : total:m1084_47, partial:m1084_36 +# 1084| v1084_38(void) = ^IndirectReadSideEffect[-1] : &:r1084_33, m1084_23 +# 1084| m1084_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r1084_33 +# 1084| m1084_40(iterator) = Chi : total:m1084_23, partial:m1084_39 +# 1084| r1084_41(glval) = CopyValue : r1084_35 +#-----| Goto (back edge) -> Block 6 + +# 1084| Block 8 +# 1084| r1084_42(glval) = VariableAddress[e] : +# 1084| r1084_43(glval) = VariableAddress[(__begin)] : +#-----| r0_15(glval) = Convert : r1084_43 +# 1084| r1084_44(glval) = FunctionAddress[operator*] : +# 1084| r1084_45(int &) = Call[operator*] : func:r1084_44, this:r0_15 +# 1084| m1084_46(unknown) = ^CallSideEffect : ~m1084_31 +# 1084| m1084_47(unknown) = Chi : total:m1084_31, partial:m1084_46 +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, m1084_23 +# 1084| r1084_48(glval) = CopyValue : r1084_45 +# 1084| r1084_49(glval) = Convert : r1084_48 +# 1084| r1084_50(int &) = CopyValue : r1084_49 +# 1084| m1084_51(int &) = Store[e] : &:r1084_42, r1084_50 +# 1085| r1085_1(glval) = VariableAddress[e] : +# 1085| r1085_2(int &) = Load[e] : &:r1085_1, m1084_51 +# 1085| r1085_3(int) = Load[?] : &:r1085_2, ~m1084_47 +# 1085| r1085_4(int) = Constant[5] : +# 1085| r1085_5(bool) = CompareLT : r1085_3, r1085_4 +# 1085| v1085_6(void) = ConditionalBranch : r1085_5 +#-----| False -> Block 7 +#-----| True -> Block 9 + +# 1086| Block 9 +# 1086| v1086_1(void) = NoOp : +#-----| Goto -> Block 10 + +# 1088| Block 10 +# 1088| m1088_1(unknown) = Phi : from 6:~m1084_31, from 9:~m1084_47 +# 1088| v1088_2(void) = NoOp : +# 1089| v1089_1(void) = NoOp : +# 1077| v1077_9(void) = ReturnIndirection[v] : &:r1077_7, m1077_8 +# 1077| v1077_10(void) = ReturnVoid : +# 1077| v1077_11(void) = AliasedUse : ~m1088_1 +# 1077| v1077_12(void) = ExitFunction : + +# 1108| int AsmStmt(int) +# 1108| Block 0 +# 1108| v1108_1(void) = EnterFunction : +# 1108| m1108_2(unknown) = AliasedDefinition : +# 1108| m1108_3(unknown) = InitializeNonLocal : +# 1108| m1108_4(unknown) = Chi : total:m1108_2, partial:m1108_3 +# 1108| r1108_5(glval) = VariableAddress[x] : +# 1108| m1108_6(int) = InitializeParameter[x] : &:r1108_5 +# 1109| m1109_1(unknown) = InlineAsm : ~m1108_4 +# 1109| m1109_2(unknown) = Chi : total:m1108_4, partial:m1109_1 +# 1110| r1110_1(glval) = VariableAddress[#return] : +# 1110| r1110_2(glval) = VariableAddress[x] : +# 1110| r1110_3(int) = Load[x] : &:r1110_2, m1108_6 +# 1110| m1110_4(int) = Store[#return] : &:r1110_1, r1110_3 +# 1108| r1108_7(glval) = VariableAddress[#return] : +# 1108| v1108_8(void) = ReturnValue : &:r1108_7, m1110_4 +# 1108| v1108_9(void) = AliasedUse : ~m1109_2 +# 1108| v1108_10(void) = ExitFunction : + +# 1113| void AsmStmtWithOutputs(unsigned int&, unsigned int, unsigned int&, unsigned int) +# 1113| Block 0 +# 1113| v1113_1(void) = EnterFunction : +# 1113| m1113_2(unknown) = AliasedDefinition : +# 1113| m1113_3(unknown) = InitializeNonLocal : +# 1113| m1113_4(unknown) = Chi : total:m1113_2, partial:m1113_3 +# 1113| r1113_5(glval) = VariableAddress[a] : +# 1113| m1113_6(unsigned int &) = InitializeParameter[a] : &:r1113_5 +# 1113| r1113_7(unsigned int &) = Load[a] : &:r1113_5, m1113_6 +# 1113| m1113_8(unknown) = InitializeIndirection[a] : &:r1113_7 +# 1113| r1113_9(glval) = VariableAddress[b] : +# 1113| m1113_10(unsigned int) = InitializeParameter[b] : &:r1113_9 +# 1113| r1113_11(glval) = VariableAddress[c] : +# 1113| m1113_12(unsigned int &) = InitializeParameter[c] : &:r1113_11 +# 1113| r1113_13(unsigned int &) = Load[c] : &:r1113_11, m1113_12 +# 1113| m1113_14(unknown) = InitializeIndirection[c] : &:r1113_13 +# 1113| r1113_15(glval) = VariableAddress[d] : +# 1113| m1113_16(unsigned int) = InitializeParameter[d] : &:r1113_15 +# 1118| r1118_1(glval) = VariableAddress[a] : +# 1118| r1118_2(unsigned int &) = Load[a] : &:r1118_1, m1113_6 +# 1118| r1118_3(glval) = CopyValue : r1118_2 +# 1118| r1118_4(glval) = VariableAddress[b] : +# 1118| r1118_5(glval) = VariableAddress[c] : +# 1118| r1118_6(unsigned int &) = Load[c] : &:r1118_5, m1113_12 +# 1118| r1118_7(unsigned int) = Load[?] : &:r1118_6, ~m1113_14 +# 1118| r1118_8(glval) = VariableAddress[d] : +# 1118| r1118_9(unsigned int) = Load[d] : &:r1118_8, m1113_16 +# 1115| m1115_1(unknown) = InlineAsm : ~m1113_4, 0:r1118_3, 1:r1118_4, 2:r1118_7, 3:r1118_9 +# 1115| m1115_2(unknown) = Chi : total:m1113_4, partial:m1115_1 +# 1120| v1120_1(void) = NoOp : +# 1113| v1113_17(void) = ReturnIndirection[a] : &:r1113_7, m1113_8 +# 1113| v1113_18(void) = ReturnIndirection[c] : &:r1113_13, m1113_14 +# 1113| v1113_19(void) = ReturnVoid : +# 1113| v1113_20(void) = AliasedUse : ~m1115_2 +# 1113| v1113_21(void) = ExitFunction : + +# 1122| void ExternDeclarations() +# 1122| Block 0 +# 1122| v1122_1(void) = EnterFunction : +# 1122| m1122_2(unknown) = AliasedDefinition : +# 1122| m1122_3(unknown) = InitializeNonLocal : +# 1122| m1122_4(unknown) = Chi : total:m1122_2, partial:m1122_3 +# 1125| r1125_1(glval) = VariableAddress[x] : +# 1125| m1125_2(int) = Uninitialized[x] : &:r1125_1 +# 1126| r1126_1(glval) = VariableAddress[y] : +# 1126| m1126_2(int) = Uninitialized[y] : &:r1126_1 +# 1127| r1127_1(glval) = VariableAddress[h] : +# 1127| m1127_2(int) = Uninitialized[h] : &:r1127_1 +# 1129| v1129_1(void) = NoOp : +# 1122| v1122_5(void) = ReturnVoid : +# 1122| v1122_6(void) = AliasedUse : m1122_3 +# 1122| v1122_7(void) = ExitFunction : + +# 1137| void ExternDeclarationsInMacro() +# 1137| Block 0 +# 1137| v1137_1(void) = EnterFunction : +# 1137| m1137_2(unknown) = AliasedDefinition : +# 1137| m1137_3(unknown) = InitializeNonLocal : +# 1137| m1137_4(unknown) = Chi : total:m1137_2, partial:m1137_3 +# 1139| r1139_1(glval) = VariableAddress[i] : +# 1139| r1139_2(int) = Constant[0] : +# 1139| m1139_3(int) = Store[i] : &:r1139_1, r1139_2 +#-----| Goto -> Block 1 + +# 1139| Block 1 +# 1139| m1139_4(int) = Phi : from 0:m1139_3, from 2:m1139_14 +# 1139| r1139_5(glval) = VariableAddress[i] : +# 1139| r1139_6(int) = Load[i] : &:r1139_5, m1139_4 +# 1139| r1139_7(int) = Constant[10] : +# 1139| r1139_8(bool) = CompareLT : r1139_6, r1139_7 +# 1139| v1139_9(void) = ConditionalBranch : r1139_8 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 1139| Block 2 +# 1139| r1139_10(glval) = VariableAddress[i] : +# 1139| r1139_11(int) = Load[i] : &:r1139_10, m1139_4 +# 1139| r1139_12(int) = Constant[1] : +# 1139| r1139_13(int) = Add : r1139_11, r1139_12 +# 1139| m1139_14(int) = Store[i] : &:r1139_10, r1139_13 +#-----| Goto (back edge) -> Block 1 + +# 1139| Block 3 +# 1139| v1139_15(void) = NoOp : +# 1140| v1140_1(void) = NoOp : +# 1137| v1137_5(void) = ReturnVoid : +# 1137| v1137_6(void) = AliasedUse : m1137_3 +# 1137| v1137_7(void) = ExitFunction : + +# 1142| void TryCatchNoCatchAny(bool) +# 1142| Block 0 +# 1142| v1142_1(void) = EnterFunction : +# 1142| m1142_2(unknown) = AliasedDefinition : +# 1142| m1142_3(unknown) = InitializeNonLocal : +# 1142| m1142_4(unknown) = Chi : total:m1142_2, partial:m1142_3 +# 1142| r1142_5(glval) = VariableAddress[b] : +# 1142| m1142_6(bool) = InitializeParameter[b] : &:r1142_5 +# 1144| r1144_1(glval) = VariableAddress[x] : +# 1144| r1144_2(int) = Constant[5] : +# 1144| m1144_3(int) = Store[x] : &:r1144_1, r1144_2 +# 1145| r1145_1(glval) = VariableAddress[b] : +# 1145| r1145_2(bool) = Load[b] : &:r1145_1, m1142_6 +# 1145| v1145_3(void) = ConditionalBranch : r1145_2 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 1142| Block 1 +# 1142| m1142_7(unknown) = Phi : from 2:~m1142_10, from 10:~m1142_4 +# 1142| v1142_8(void) = AliasedUse : ~m1142_7 +# 1142| v1142_9(void) = ExitFunction : + +# 1142| Block 2 +# 1142| m1142_10(unknown) = Phi : from 7:~m1154_8, from 8:~m1142_4 +# 1142| v1142_11(void) = Unwind : +#-----| Goto -> Block 1 + +# 1146| Block 3 +# 1146| r1146_1(glval) = VariableAddress[#throw1146:7] : +# 1146| r1146_2(glval) = StringConstant["string literal"] : +# 1146| r1146_3(char *) = Convert : r1146_2 +# 1146| m1146_4(char *) = Store[#throw1146:7] : &:r1146_1, r1146_3 +# 1146| v1146_5(void) = ThrowValue : &:r1146_1, m1146_4 +#-----| Exception -> Block 6 + +# 1148| Block 4 +# 1148| r1148_1(glval) = VariableAddress[x] : +# 1148| r1148_2(int) = Load[x] : &:r1148_1, m1144_3 +# 1148| r1148_3(int) = Constant[2] : +# 1148| r1148_4(bool) = CompareLT : r1148_2, r1148_3 +# 1148| v1148_5(void) = ConditionalBranch : r1148_4 +#-----| False -> Block 5 +#-----| True -> Block 11 + +# 1151| Block 5 +# 1151| r1151_1(int) = Constant[7] : +# 1151| r1151_2(glval) = VariableAddress[x] : +# 1151| m1151_3(int) = Store[x] : &:r1151_2, r1151_1 +#-----| Goto -> Block 10 + +# 1153| Block 6 +# 1153| v1153_1(void) = CatchByType[const char *] : +#-----| Exception -> Block 8 +#-----| Goto -> Block 7 + +# 1153| Block 7 +# 1153| r1153_2(glval) = VariableAddress[s] : +# 1153| m1153_3(char *) = InitializeParameter[s] : &:r1153_2 +# 1153| r1153_4(char *) = Load[s] : &:r1153_2, m1153_3 +# 1153| m1153_5(unknown) = InitializeIndirection[s] : &:r1153_4 +# 1154| r1154_1(glval) = VariableAddress[#throw1154:5] : +# 1154| m1154_2(String) = Uninitialized[#throw1154:5] : &:r1154_1 +# 1154| r1154_3(glval) = FunctionAddress[String] : +# 1154| r1154_4(glval) = VariableAddress[s] : +# 1154| r1154_5(char *) = Load[s] : &:r1154_4, m1153_3 +# 1154| v1154_6(void) = Call[String] : func:r1154_3, this:r1154_1, 0:r1154_5 +# 1154| m1154_7(unknown) = ^CallSideEffect : ~m1142_4 +# 1154| m1154_8(unknown) = Chi : total:m1142_4, partial:m1154_7 +# 1154| v1154_9(void) = ^BufferReadSideEffect[0] : &:r1154_5, ~m1153_5 +# 1154| m1154_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1154_1 +# 1154| m1154_11(String) = Chi : total:m1154_2, partial:m1154_10 +# 1154| v1154_12(void) = ThrowValue : &:r1154_1, m1154_11 +#-----| Exception -> Block 2 + +# 1156| Block 8 +# 1156| v1156_1(void) = CatchByType[const String &] : +#-----| Exception -> Block 2 +#-----| Goto -> Block 9 + +# 1156| Block 9 +# 1156| r1156_2(glval) = VariableAddress[e] : +# 1156| m1156_3(String &) = InitializeParameter[e] : &:r1156_2 +# 1156| r1156_4(String &) = Load[e] : &:r1156_2, m1156_3 +# 1156| m1156_5(unknown) = InitializeIndirection[e] : &:r1156_4 +# 1156| v1156_6(void) = NoOp : +#-----| Goto -> Block 10 + +# 1158| Block 10 +# 1158| v1158_1(void) = NoOp : +# 1142| v1142_12(void) = ReturnVoid : +#-----| Goto -> Block 1 + +# 1142| Block 11 +# 1142| v1142_13(void) = Unreached : + +# 1162| void VectorTypes(int) +# 1162| Block 0 +# 1162| v1162_1(void) = EnterFunction : +# 1162| m1162_2(unknown) = AliasedDefinition : +# 1162| m1162_3(unknown) = InitializeNonLocal : +# 1162| m1162_4(unknown) = Chi : total:m1162_2, partial:m1162_3 +# 1162| r1162_5(glval) = VariableAddress[i] : +# 1162| m1162_6(int) = InitializeParameter[i] : &:r1162_5 +# 1163| r1163_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1163| m1163_2(__attribute((vector_size(16UL))) int) = Uninitialized[vi4] : &:r1163_1 +# 1163| r1163_3(int) = Constant[0] : +# 1163| r1163_4(glval) = PointerAdd[4] : r1163_1, r1163_3 +# 1163| r1163_5(int) = Constant[0] : +# 1163| m1163_6(int) = Store[?] : &:r1163_4, r1163_5 +# 1163| m1163_7(__attribute((vector_size(16UL))) int) = Chi : total:m1163_2, partial:m1163_6 +# 1163| r1163_8(int) = Constant[1] : +# 1163| r1163_9(glval) = PointerAdd[4] : r1163_1, r1163_8 +# 1163| r1163_10(int) = Constant[1] : +# 1163| m1163_11(int) = Store[?] : &:r1163_9, r1163_10 +# 1163| m1163_12(__attribute((vector_size(16UL))) int) = Chi : total:m1163_7, partial:m1163_11 +# 1163| r1163_13(int) = Constant[2] : +# 1163| r1163_14(glval) = PointerAdd[4] : r1163_1, r1163_13 +# 1163| r1163_15(int) = Constant[2] : +# 1163| m1163_16(int) = Store[?] : &:r1163_14, r1163_15 +# 1163| m1163_17(__attribute((vector_size(16UL))) int) = Chi : total:m1163_12, partial:m1163_16 +# 1163| r1163_18(int) = Constant[3] : +# 1163| r1163_19(glval) = PointerAdd[4] : r1163_1, r1163_18 +# 1163| r1163_20(int) = Constant[3] : +# 1163| m1163_21(int) = Store[?] : &:r1163_19, r1163_20 +# 1163| m1163_22(__attribute((vector_size(16UL))) int) = Chi : total:m1163_17, partial:m1163_21 +# 1164| r1164_1(glval) = VariableAddress[x] : +# 1164| r1164_2(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1164| r1164_3(glval) = VariableAddress[i] : +# 1164| r1164_4(int) = Load[i] : &:r1164_3, m1162_6 +# 1164| r1164_5(glval) = PointerAdd[4] : r1164_2, r1164_4 +# 1164| r1164_6(int) = Load[?] : &:r1164_5, ~m1163_22 +# 1164| m1164_7(int) = Store[x] : &:r1164_1, r1164_6 +# 1165| r1165_1(glval) = VariableAddress[x] : +# 1165| r1165_2(int) = Load[x] : &:r1165_1, m1164_7 +# 1165| r1165_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1165| r1165_4(glval) = VariableAddress[i] : +# 1165| r1165_5(int) = Load[i] : &:r1165_4, m1162_6 +# 1165| r1165_6(glval) = PointerAdd[4] : r1165_3, r1165_5 +# 1165| m1165_7(int) = Store[?] : &:r1165_6, r1165_2 +# 1165| m1165_8(__attribute((vector_size(16UL))) int) = Chi : total:m1163_22, partial:m1165_7 +# 1166| r1166_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : +# 1166| r1166_2(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1166| r1166_3(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1166_2, m1165_8 +# 1166| r1166_4(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1166| r1166_5(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1166_4, m1165_8 +# 1166| r1166_6(int) = Constant[3] : +# 1166| r1166_7(int) = Constant[2] : +# 1166| r1166_8(int) = Constant[1] : +# 1166| r1166_9(int) = Constant[0] : +# 1166| r1166_10(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1166_3, 1:r1166_5, 2:r1166_6, 3:r1166_7, 4:r1166_8, 5:r1166_9 +# 1166| m1166_11(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1166_1, r1166_10 +# 1167| r1167_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1167| r1167_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1167_1, m1165_8 +# 1167| r1167_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : +# 1167| r1167_4(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1167_3, m1166_11 +# 1167| r1167_5(__attribute((vector_size(16UL))) int) = Add : r1167_2, r1167_4 +# 1167| r1167_6(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1167| m1167_7(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1167_6, r1167_5 +# 1168| v1168_1(void) = NoOp : +# 1162| v1162_7(void) = ReturnVoid : +# 1162| v1162_8(void) = AliasedUse : m1162_3 +# 1162| v1162_9(void) = ExitFunction : + +# 1172| int ModeledCallTarget(int) +# 1172| Block 0 +# 1172| v1172_1(void) = EnterFunction : +# 1172| m1172_2(unknown) = AliasedDefinition : +# 1172| m1172_3(unknown) = InitializeNonLocal : +# 1172| m1172_4(unknown) = Chi : total:m1172_2, partial:m1172_3 +# 1172| r1172_5(glval) = VariableAddress[x] : +# 1172| m1172_6(int) = InitializeParameter[x] : &:r1172_5 +# 1173| r1173_1(glval) = VariableAddress[y] : +# 1173| m1173_2(int) = Uninitialized[y] : &:r1173_1 +# 1174| r1174_1(glval) = FunctionAddress[memcpy] : +# 1174| r1174_2(glval) = VariableAddress[y] : +# 1174| r1174_3(int *) = CopyValue : r1174_2 +# 1174| r1174_4(void *) = Convert : r1174_3 +# 1174| r1174_5(glval) = VariableAddress[x] : +# 1174| r1174_6(int *) = CopyValue : r1174_5 +# 1174| r1174_7(void *) = Convert : r1174_6 +# 1174| r1174_8(int) = Constant[4] : +# 1174| r1174_9(void *) = Call[memcpy] : func:r1174_1, 0:r1174_4, 1:r1174_7, 2:r1174_8 +# 1174| v1174_10(void) = ^SizedBufferReadSideEffect[1] : &:r1174_7, r1174_8, ~m1172_6 +# 1174| m1174_11(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r1174_4, r1174_8 +# 1174| m1174_12(int) = Chi : total:m1173_2, partial:m1174_11 +# 1175| r1175_1(glval) = VariableAddress[#return] : +# 1175| r1175_2(glval) = VariableAddress[y] : +# 1175| r1175_3(int) = Load[y] : &:r1175_2, m1174_12 +# 1175| m1175_4(int) = Store[#return] : &:r1175_1, r1175_3 +# 1172| r1172_7(glval) = VariableAddress[#return] : +# 1172| v1172_8(void) = ReturnValue : &:r1172_7, m1175_4 +# 1172| v1172_9(void) = AliasedUse : m1172_3 +# 1172| v1172_10(void) = ExitFunction : + +# 1178| String ReturnObjectImpl() +# 1178| Block 0 +# 1178| v1178_1(void) = EnterFunction : +# 1178| m1178_2(unknown) = AliasedDefinition : +# 1178| m1178_3(unknown) = InitializeNonLocal : +# 1178| m1178_4(unknown) = Chi : total:m1178_2, partial:m1178_3 +# 1179| r1179_1(glval) = VariableAddress[#return] : +# 1179| m1179_2(String) = Uninitialized[#return] : &:r1179_1 +# 1179| r1179_3(glval) = FunctionAddress[String] : +# 1179| r1179_4(glval) = StringConstant["foo"] : +# 1179| r1179_5(char *) = Convert : r1179_4 +# 1179| v1179_6(void) = Call[String] : func:r1179_3, this:r1179_1, 0:r1179_5 +# 1179| m1179_7(unknown) = ^CallSideEffect : ~m1178_4 +# 1179| m1179_8(unknown) = Chi : total:m1178_4, partial:m1179_7 +# 1179| v1179_9(void) = ^BufferReadSideEffect[0] : &:r1179_5, ~m1178_3 +# 1179| m1179_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1179_1 +# 1179| m1179_11(String) = Chi : total:m1179_2, partial:m1179_10 +# 1178| r1178_5(glval) = VariableAddress[#return] : +# 1178| v1178_6(void) = ReturnValue : &:r1178_5, m1179_11 +# 1178| v1178_7(void) = AliasedUse : ~m1179_8 +# 1178| v1178_8(void) = ExitFunction : + +# 1182| void switch1Case(int) +# 1182| Block 0 +# 1182| v1182_1(void) = EnterFunction : +# 1182| m1182_2(unknown) = AliasedDefinition : +# 1182| m1182_3(unknown) = InitializeNonLocal : +# 1182| m1182_4(unknown) = Chi : total:m1182_2, partial:m1182_3 +# 1182| r1182_5(glval) = VariableAddress[x] : +# 1182| m1182_6(int) = InitializeParameter[x] : &:r1182_5 +# 1183| r1183_1(glval) = VariableAddress[y] : +# 1183| r1183_2(int) = Constant[0] : +# 1183| m1183_3(int) = Store[y] : &:r1183_1, r1183_2 +# 1184| r1184_1(glval) = VariableAddress[x] : +# 1184| r1184_2(int) = Load[x] : &:r1184_1, m1182_6 +# 1184| v1184_3(void) = Switch : r1184_2 +#-----| Case[1] -> Block 1 +#-----| Default -> Block 2 + +# 1185| Block 1 +# 1185| v1185_1(void) = NoOp : +# 1186| r1186_1(int) = Constant[2] : +# 1186| r1186_2(glval) = VariableAddress[y] : +# 1186| m1186_3(int) = Store[y] : &:r1186_2, r1186_1 +#-----| Goto -> Block 2 + +# 1188| Block 2 +# 1188| m1188_1(int) = Phi : from 0:m1183_3, from 1:m1186_3 +# 1188| r1188_2(glval) = VariableAddress[z] : +# 1188| r1188_3(glval) = VariableAddress[y] : +# 1188| r1188_4(int) = Load[y] : &:r1188_3, m1188_1 +# 1188| m1188_5(int) = Store[z] : &:r1188_2, r1188_4 +# 1189| v1189_1(void) = NoOp : +# 1182| v1182_7(void) = ReturnVoid : +# 1182| v1182_8(void) = AliasedUse : m1182_3 +# 1182| v1182_9(void) = ExitFunction : + +# 1191| void switch2Case_fallthrough(int) +# 1191| Block 0 +# 1191| v1191_1(void) = EnterFunction : +# 1191| m1191_2(unknown) = AliasedDefinition : +# 1191| m1191_3(unknown) = InitializeNonLocal : +# 1191| m1191_4(unknown) = Chi : total:m1191_2, partial:m1191_3 +# 1191| r1191_5(glval) = VariableAddress[x] : +# 1191| m1191_6(int) = InitializeParameter[x] : &:r1191_5 +# 1192| r1192_1(glval) = VariableAddress[y] : +# 1192| r1192_2(int) = Constant[0] : +# 1192| m1192_3(int) = Store[y] : &:r1192_1, r1192_2 +# 1193| r1193_1(glval) = VariableAddress[x] : +# 1193| r1193_2(int) = Load[x] : &:r1193_1, m1191_6 +# 1193| v1193_3(void) = Switch : r1193_2 +#-----| Case[1] -> Block 1 +#-----| Case[2] -> Block 2 +#-----| Default -> Block 3 + +# 1194| Block 1 +# 1194| v1194_1(void) = NoOp : +# 1195| r1195_1(int) = Constant[2] : +# 1195| r1195_2(glval) = VariableAddress[y] : +# 1195| m1195_3(int) = Store[y] : &:r1195_2, r1195_1 +#-----| Goto -> Block 2 + +# 1196| Block 2 +# 1196| v1196_1(void) = NoOp : +# 1197| r1197_1(int) = Constant[3] : +# 1197| r1197_2(glval) = VariableAddress[y] : +# 1197| m1197_3(int) = Store[y] : &:r1197_2, r1197_1 +#-----| Goto -> Block 3 + +# 1199| Block 3 +# 1199| m1199_1(int) = Phi : from 0:m1192_3, from 2:m1197_3 +# 1199| r1199_2(glval) = VariableAddress[z] : +# 1199| r1199_3(glval) = VariableAddress[y] : +# 1199| r1199_4(int) = Load[y] : &:r1199_3, m1199_1 +# 1199| m1199_5(int) = Store[z] : &:r1199_2, r1199_4 +# 1200| v1200_1(void) = NoOp : +# 1191| v1191_7(void) = ReturnVoid : +# 1191| v1191_8(void) = AliasedUse : m1191_3 +# 1191| v1191_9(void) = ExitFunction : + +# 1202| void switch2Case(int) +# 1202| Block 0 +# 1202| v1202_1(void) = EnterFunction : +# 1202| m1202_2(unknown) = AliasedDefinition : +# 1202| m1202_3(unknown) = InitializeNonLocal : +# 1202| m1202_4(unknown) = Chi : total:m1202_2, partial:m1202_3 +# 1202| r1202_5(glval) = VariableAddress[x] : +# 1202| m1202_6(int) = InitializeParameter[x] : &:r1202_5 +# 1203| r1203_1(glval) = VariableAddress[y] : +# 1203| r1203_2(int) = Constant[0] : +# 1203| m1203_3(int) = Store[y] : &:r1203_1, r1203_2 +# 1204| r1204_1(glval) = VariableAddress[x] : +# 1204| r1204_2(int) = Load[x] : &:r1204_1, m1202_6 +# 1204| v1204_3(void) = Switch : r1204_2 +#-----| Case[1] -> Block 1 +#-----| Case[2] -> Block 2 +#-----| Default -> Block 3 + +# 1205| Block 1 +# 1205| v1205_1(void) = NoOp : +# 1206| r1206_1(int) = Constant[2] : +# 1206| r1206_2(glval) = VariableAddress[y] : +# 1206| m1206_3(int) = Store[y] : &:r1206_2, r1206_1 +# 1207| v1207_1(void) = NoOp : +#-----| Goto -> Block 3 + +# 1208| Block 2 +# 1208| v1208_1(void) = NoOp : +# 1209| r1209_1(int) = Constant[3] : +# 1209| r1209_2(glval) = VariableAddress[y] : +# 1209| m1209_3(int) = Store[y] : &:r1209_2, r1209_1 +#-----| Goto -> Block 3 + +# 1210| Block 3 +# 1210| m1210_1(int) = Phi : from 0:m1203_3, from 1:m1206_3, from 2:m1209_3 +# 1210| v1210_2(void) = NoOp : +# 1211| r1211_1(glval) = VariableAddress[z] : +# 1211| r1211_2(glval) = VariableAddress[y] : +# 1211| r1211_3(int) = Load[y] : &:r1211_2, m1210_1 +# 1211| m1211_4(int) = Store[z] : &:r1211_1, r1211_3 +# 1212| v1212_1(void) = NoOp : +# 1202| v1202_7(void) = ReturnVoid : +# 1202| v1202_8(void) = AliasedUse : m1202_3 +# 1202| v1202_9(void) = ExitFunction : + +# 1214| void switch2Case_default(int) +# 1214| Block 0 +# 1214| v1214_1(void) = EnterFunction : +# 1214| m1214_2(unknown) = AliasedDefinition : +# 1214| m1214_3(unknown) = InitializeNonLocal : +# 1214| m1214_4(unknown) = Chi : total:m1214_2, partial:m1214_3 +# 1214| r1214_5(glval) = VariableAddress[x] : +# 1214| m1214_6(int) = InitializeParameter[x] : &:r1214_5 +# 1215| r1215_1(glval) = VariableAddress[y] : +# 1215| r1215_2(int) = Constant[0] : +# 1215| m1215_3(int) = Store[y] : &:r1215_1, r1215_2 +# 1216| r1216_1(glval) = VariableAddress[x] : +# 1216| r1216_2(int) = Load[x] : &:r1216_1, m1214_6 +# 1216| v1216_3(void) = Switch : r1216_2 +#-----| Case[1] -> Block 1 +#-----| Case[2] -> Block 2 +#-----| Default -> Block 3 + +# 1217| Block 1 +# 1217| v1217_1(void) = NoOp : +# 1218| r1218_1(int) = Constant[2] : +# 1218| r1218_2(glval) = VariableAddress[y] : +# 1218| m1218_3(int) = Store[y] : &:r1218_2, r1218_1 +# 1219| v1219_1(void) = NoOp : +#-----| Goto -> Block 4 + +# 1221| Block 2 +# 1221| v1221_1(void) = NoOp : +# 1222| r1222_1(int) = Constant[3] : +# 1222| r1222_2(glval) = VariableAddress[y] : +# 1222| m1222_3(int) = Store[y] : &:r1222_2, r1222_1 +# 1223| v1223_1(void) = NoOp : +#-----| Goto -> Block 4 + +# 1225| Block 3 +# 1225| v1225_1(void) = NoOp : +# 1226| r1226_1(int) = Constant[4] : +# 1226| r1226_2(glval) = VariableAddress[y] : +# 1226| m1226_3(int) = Store[y] : &:r1226_2, r1226_1 +#-----| Goto -> Block 4 + +# 1227| Block 4 +# 1227| m1227_1(int) = Phi : from 1:m1218_3, from 2:m1222_3, from 3:m1226_3 +# 1227| v1227_2(void) = NoOp : +# 1228| r1228_1(glval) = VariableAddress[z] : +# 1228| r1228_2(glval) = VariableAddress[y] : +# 1228| r1228_3(int) = Load[y] : &:r1228_2, m1227_1 +# 1228| m1228_4(int) = Store[z] : &:r1228_1, r1228_3 +# 1229| v1229_1(void) = NoOp : +# 1214| v1214_7(void) = ReturnVoid : +# 1214| v1214_8(void) = AliasedUse : m1214_3 +# 1214| v1214_9(void) = ExitFunction : + +# 1231| int staticLocalInit(int) +# 1231| Block 0 +# 1231| v1231_1(void) = EnterFunction : +# 1231| m1231_2(unknown) = AliasedDefinition : +# 1231| m1231_3(unknown) = InitializeNonLocal : +# 1231| m1231_4(unknown) = Chi : total:m1231_2, partial:m1231_3 +# 1231| r1231_5(glval) = VariableAddress[x] : +# 1231| m1231_6(int) = InitializeParameter[x] : &:r1231_5 +# 1234| r1234_1(glval) = VariableAddress[c#init] : +# 1234| r1234_2(bool) = Load[c#init] : &:r1234_1, ~m1231_3 +# 1234| v1234_3(void) = ConditionalBranch : r1234_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 1234| Block 1 +# 1234| r1234_4(glval) = VariableAddress[c] : +# 1234| r1234_5(glval) = VariableAddress[x] : +# 1234| r1234_6(int) = Load[x] : &:r1234_5, m1231_6 +# 1234| m1234_7(int) = Store[c] : &:r1234_4, r1234_6 +# 1234| m1234_8(unknown) = Chi : total:m1231_4, partial:m1234_7 +# 1234| r1234_9(bool) = Constant[1] : +# 1234| m1234_10(bool) = Store[c#init] : &:r1234_1, r1234_9 +# 1234| m1234_11(unknown) = Chi : total:m1234_8, partial:m1234_10 +#-----| Goto -> Block 2 + +# 1237| Block 2 +# 1237| m1237_1(int) = Phi : from 0:~m1231_3, from 1:m1234_7 +# 1237| m1237_2(unknown) = Phi : from 0:~m1231_4, from 1:~m1234_11 +# 1237| r1237_3(glval) = VariableAddress[#return] : +# 1237| r1237_4(glval) = VariableAddress[a] : +# 1237| r1237_5(int) = Load[a] : &:r1237_4, ~m1237_2 +# 1237| r1237_6(glval) = VariableAddress[b] : +# 1237| r1237_7(int) = Load[b] : &:r1237_6, ~m1237_2 +# 1237| r1237_8(int) = Add : r1237_5, r1237_7 +# 1237| r1237_9(glval) = VariableAddress[c] : +# 1237| r1237_10(int) = Load[c] : &:r1237_9, m1237_1 +# 1237| r1237_11(int) = Add : r1237_8, r1237_10 +# 1237| r1237_12(glval) = VariableAddress[d] : +# 1237| r1237_13(int) = Load[d] : &:r1237_12, ~m1237_2 +# 1237| r1237_14(int) = Add : r1237_11, r1237_13 +# 1237| m1237_15(int) = Store[#return] : &:r1237_3, r1237_14 +# 1231| r1231_7(glval) = VariableAddress[#return] : +# 1231| v1231_8(void) = ReturnValue : &:r1231_7, m1237_15 +# 1231| v1231_9(void) = AliasedUse : ~m1237_2 +# 1231| v1231_10(void) = ExitFunction : + +# 1232| int a +# 1232| Block 0 +# 1232| v1232_1(void) = EnterFunction : +# 1232| m1232_2(unknown) = AliasedDefinition : +# 1232| r1232_3(glval) = VariableAddress[a] : +# 1232| r1232_4(int) = Constant[0] : +# 1232| m1232_5(int) = Store[a] : &:r1232_3, r1232_4 +# 1232| m1232_6(unknown) = Chi : total:m1232_2, partial:m1232_5 +# 1232| v1232_7(void) = ReturnVoid : +# 1232| v1232_8(void) = AliasedUse : ~m1232_6 +# 1232| v1232_9(void) = ExitFunction : + +# 1233| int b +# 1233| Block 0 +# 1233| v1233_1(void) = EnterFunction : +# 1233| m1233_2(unknown) = AliasedDefinition : +# 1233| r1233_3(glval) = VariableAddress[b] : +# 1233| r1233_4(int) = Constant[4] : +# 1233| m1233_5(int) = Store[b] : &:r1233_3, r1233_4 +# 1233| m1233_6(unknown) = Chi : total:m1233_2, partial:m1233_5 +# 1233| v1233_7(void) = ReturnVoid : +# 1233| v1233_8(void) = AliasedUse : ~m1233_6 +# 1233| v1233_9(void) = ExitFunction : + +# 1240| void staticLocalWithConstructor(char const*) +# 1240| Block 0 +# 1240| v1240_1(void) = EnterFunction : +# 1240| m1240_2(unknown) = AliasedDefinition : +# 1240| m1240_3(unknown) = InitializeNonLocal : +# 1240| m1240_4(unknown) = Chi : total:m1240_2, partial:m1240_3 +# 1240| r1240_5(glval) = VariableAddress[dynamic] : +# 1240| m1240_6(char *) = InitializeParameter[dynamic] : &:r1240_5 +# 1240| r1240_7(char *) = Load[dynamic] : &:r1240_5, m1240_6 +# 1240| m1240_8(unknown) = InitializeIndirection[dynamic] : &:r1240_7 +# 1241| r1241_1(glval) = VariableAddress[a#init] : +# 1241| r1241_2(bool) = Load[a#init] : &:r1241_1, ~m1240_3 +# 1241| v1241_3(void) = ConditionalBranch : r1241_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 1241| Block 1 +# 1241| r1241_4(glval) = VariableAddress[a] : +#-----| r0_1(glval) = FunctionAddress[String] : +#-----| v0_2(void) = Call[String] : func:r0_1, this:r1241_4 +#-----| m0_3(unknown) = ^CallSideEffect : ~m1240_4 +#-----| m0_4(unknown) = Chi : total:m1240_4, partial:m0_3 +#-----| m0_5(String) = ^IndirectMayWriteSideEffect[-1] : &:r1241_4 +#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 +# 1241| r1241_5(bool) = Constant[1] : +# 1241| m1241_6(bool) = Store[a#init] : &:r1241_1, r1241_5 +# 1241| m1241_7(unknown) = Chi : total:m0_6, partial:m1241_6 +#-----| Goto -> Block 2 + +# 1242| Block 2 +# 1242| m1242_1(unknown) = Phi : from 0:~m1240_4, from 1:~m1241_7 +# 1242| r1242_2(glval) = VariableAddress[b#init] : +# 1242| r1242_3(bool) = Load[b#init] : &:r1242_2, ~m1242_1 +# 1242| v1242_4(void) = ConditionalBranch : r1242_3 +#-----| False -> Block 3 +#-----| True -> Block 4 + +# 1242| Block 3 +# 1242| r1242_5(glval) = VariableAddress[b] : +# 1242| r1242_6(glval) = FunctionAddress[String] : +# 1242| r1242_7(glval) = StringConstant["static"] : +# 1242| r1242_8(char *) = Convert : r1242_7 +# 1242| v1242_9(void) = Call[String] : func:r1242_6, this:r1242_5, 0:r1242_8 +# 1242| m1242_10(unknown) = ^CallSideEffect : ~m1242_1 +# 1242| m1242_11(unknown) = Chi : total:m1242_1, partial:m1242_10 +# 1242| v1242_12(void) = ^BufferReadSideEffect[0] : &:r1242_8, ~m1240_3 +# 1242| m1242_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1242_5 +# 1242| m1242_14(unknown) = Chi : total:m1242_11, partial:m1242_13 +# 1242| r1242_15(bool) = Constant[1] : +# 1242| m1242_16(bool) = Store[b#init] : &:r1242_2, r1242_15 +# 1242| m1242_17(unknown) = Chi : total:m1242_14, partial:m1242_16 +#-----| Goto -> Block 4 + +# 1243| Block 4 +# 1243| m1243_1(unknown) = Phi : from 2:~m1242_1, from 3:~m1242_17 +# 1243| r1243_2(glval) = VariableAddress[c#init] : +# 1243| r1243_3(bool) = Load[c#init] : &:r1243_2, ~m1243_1 +# 1243| v1243_4(void) = ConditionalBranch : r1243_3 +#-----| False -> Block 5 +#-----| True -> Block 6 + +# 1243| Block 5 +# 1243| r1243_5(glval) = VariableAddress[c] : +# 1243| r1243_6(glval) = FunctionAddress[String] : +# 1243| r1243_7(glval) = VariableAddress[dynamic] : +# 1243| r1243_8(char *) = Load[dynamic] : &:r1243_7, m1240_6 +# 1243| v1243_9(void) = Call[String] : func:r1243_6, this:r1243_5, 0:r1243_8 +# 1243| m1243_10(unknown) = ^CallSideEffect : ~m1243_1 +# 1243| m1243_11(unknown) = Chi : total:m1243_1, partial:m1243_10 +# 1243| v1243_12(void) = ^BufferReadSideEffect[0] : &:r1243_8, ~m1240_8 +# 1243| m1243_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1243_5 +# 1243| m1243_14(unknown) = Chi : total:m1243_11, partial:m1243_13 +# 1243| r1243_15(bool) = Constant[1] : +# 1243| m1243_16(bool) = Store[c#init] : &:r1243_2, r1243_15 +# 1243| m1243_17(unknown) = Chi : total:m1243_14, partial:m1243_16 +#-----| Goto -> Block 6 + +# 1244| Block 6 +# 1244| m1244_1(unknown) = Phi : from 4:~m1243_1, from 5:~m1243_17 +# 1244| v1244_2(void) = NoOp : +# 1240| v1240_9(void) = ReturnIndirection[dynamic] : &:r1240_7, m1240_8 +# 1240| v1240_10(void) = ReturnVoid : +# 1240| v1240_11(void) = AliasedUse : ~m1244_1 +# 1240| v1240_12(void) = ExitFunction : + +# 1251| void test_strings(char*, char*) +# 1251| Block 0 +# 1251| v1251_1(void) = EnterFunction : +# 1251| m1251_2(unknown) = AliasedDefinition : +# 1251| m1251_3(unknown) = InitializeNonLocal : +# 1251| m1251_4(unknown) = Chi : total:m1251_2, partial:m1251_3 +# 1251| r1251_5(glval) = VariableAddress[s1] : +# 1251| m1251_6(char *) = InitializeParameter[s1] : &:r1251_5 +# 1251| r1251_7(char *) = Load[s1] : &:r1251_5, m1251_6 +# 1251| m1251_8(unknown) = InitializeIndirection[s1] : &:r1251_7 +# 1251| r1251_9(glval) = VariableAddress[s2] : +# 1251| m1251_10(char *) = InitializeParameter[s2] : &:r1251_9 +# 1251| r1251_11(char *) = Load[s2] : &:r1251_9, m1251_10 +# 1251| m1251_12(unknown) = InitializeIndirection[s2] : &:r1251_11 +# 1252| r1252_1(glval) = VariableAddress[buffer] : +# 1252| m1252_2(char[1024]) = Uninitialized[buffer] : &:r1252_1 +# 1252| r1252_3(int) = Constant[0] : +# 1252| r1252_4(glval) = PointerAdd[1] : r1252_1, r1252_3 +# 1252| r1252_5(char) = Constant[0] : +# 1252| m1252_6(char) = Store[?] : &:r1252_4, r1252_5 +# 1252| m1252_7(char[1024]) = Chi : total:m1252_2, partial:m1252_6 +# 1252| r1252_8(int) = Constant[1] : +# 1252| r1252_9(glval) = PointerAdd[1] : r1252_1, r1252_8 +# 1252| r1252_10(unknown[1023]) = Constant[0] : +# 1252| m1252_11(unknown[1023]) = Store[?] : &:r1252_9, r1252_10 +# 1252| m1252_12(char[1024]) = Chi : total:m1252_7, partial:m1252_11 +# 1254| r1254_1(glval) = FunctionAddress[strcpy] : +# 1254| r1254_2(glval) = VariableAddress[buffer] : +# 1254| r1254_3(char *) = Convert : r1254_2 +# 1254| r1254_4(glval) = VariableAddress[s1] : +# 1254| r1254_5(char *) = Load[s1] : &:r1254_4, m1251_6 +# 1254| r1254_6(char *) = Convert : r1254_5 +# 1254| r1254_7(char *) = Call[strcpy] : func:r1254_1, 0:r1254_3, 1:r1254_6 +# 1254| v1254_8(void) = ^BufferReadSideEffect[1] : &:r1254_6, ~m1251_8 +# 1254| m1254_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1254_3 +# 1254| m1254_10(char[1024]) = Chi : total:m1252_12, partial:m1254_9 +# 1255| r1255_1(glval) = FunctionAddress[strcat] : +# 1255| r1255_2(glval) = VariableAddress[buffer] : +# 1255| r1255_3(char *) = Convert : r1255_2 +# 1255| r1255_4(glval) = VariableAddress[s2] : +# 1255| r1255_5(char *) = Load[s2] : &:r1255_4, m1251_10 +# 1255| r1255_6(char *) = Convert : r1255_5 +# 1255| r1255_7(char *) = Call[strcat] : func:r1255_1, 0:r1255_3, 1:r1255_6 +# 1255| v1255_8(void) = ^BufferReadSideEffect[0] : &:r1255_3, ~m1254_10 +# 1255| v1255_9(void) = ^BufferReadSideEffect[1] : &:r1255_6, ~m1251_12 +# 1255| m1255_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1255_3 +# 1255| m1255_11(char[1024]) = Chi : total:m1254_10, partial:m1255_10 +# 1256| v1256_1(void) = NoOp : +# 1251| v1251_13(void) = ReturnIndirection[s1] : &:r1251_7, m1251_8 +# 1251| v1251_14(void) = ReturnIndirection[s2] : &:r1251_11, m1251_12 +# 1251| v1251_15(void) = ReturnVoid : +# 1251| v1251_16(void) = AliasedUse : m1251_3 +# 1251| v1251_17(void) = ExitFunction : + +# 1261| void A::static_member(A*, int) +# 1261| Block 0 +# 1261| v1261_1(void) = EnterFunction : +# 1261| m1261_2(unknown) = AliasedDefinition : +# 1261| m1261_3(unknown) = InitializeNonLocal : +# 1261| m1261_4(unknown) = Chi : total:m1261_2, partial:m1261_3 +# 1261| r1261_5(glval) = VariableAddress[a] : +# 1261| m1261_6(A *) = InitializeParameter[a] : &:r1261_5 +# 1261| r1261_7(A *) = Load[a] : &:r1261_5, m1261_6 +# 1261| m1261_8(unknown) = InitializeIndirection[a] : &:r1261_7 +# 1261| r1261_9(glval) = VariableAddress[x] : +# 1261| m1261_10(int) = InitializeParameter[x] : &:r1261_9 +# 1262| r1262_1(glval) = VariableAddress[x] : +# 1262| r1262_2(int) = Load[x] : &:r1262_1, m1261_10 +# 1262| r1262_3(glval) = VariableAddress[a] : +# 1262| r1262_4(A *) = Load[a] : &:r1262_3, m1261_6 +# 1262| r1262_5(glval) = FieldAddress[member] : r1262_4 +# 1262| m1262_6(int) = Store[?] : &:r1262_5, r1262_2 +# 1262| m1262_7(unknown) = Chi : total:m1261_8, partial:m1262_6 +# 1263| v1263_1(void) = NoOp : +# 1261| v1261_11(void) = ReturnIndirection[a] : &:r1261_7, m1262_7 +# 1261| v1261_12(void) = ReturnVoid : +# 1261| v1261_13(void) = AliasedUse : m1261_3 +# 1261| v1261_14(void) = ExitFunction : + +# 1270| void test_static_member_functions(int, A*) +# 1270| Block 0 +# 1270| v1270_1(void) = EnterFunction : +# 1270| m1270_2(unknown) = AliasedDefinition : +# 1270| m1270_3(unknown) = InitializeNonLocal : +# 1270| m1270_4(unknown) = Chi : total:m1270_2, partial:m1270_3 +# 1270| r1270_5(glval) = VariableAddress[int_arg] : +# 1270| m1270_6(int) = InitializeParameter[int_arg] : &:r1270_5 +# 1270| r1270_7(glval) = VariableAddress[a_arg] : +# 1270| m1270_8(A *) = InitializeParameter[a_arg] : &:r1270_7 +# 1270| r1270_9(A *) = Load[a_arg] : &:r1270_7, m1270_8 +# 1270| m1270_10(unknown) = InitializeIndirection[a_arg] : &:r1270_9 +# 1271| r1271_1(glval) = VariableAddress[c] : +# 1271| m1271_2(C) = Uninitialized[c] : &:r1271_1 +# 1271| r1271_3(glval) = FunctionAddress[C] : +# 1271| v1271_4(void) = Call[C] : func:r1271_3, this:r1271_1 +# 1271| m1271_5(unknown) = ^CallSideEffect : ~m1270_4 +# 1271| m1271_6(unknown) = Chi : total:m1270_4, partial:m1271_5 +# 1271| m1271_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1271_1 +# 1271| m1271_8(C) = Chi : total:m1271_2, partial:m1271_7 +# 1272| r1272_1(glval) = VariableAddress[c] : +# 1272| r1272_2(glval) = FunctionAddress[StaticMemberFunction] : +# 1272| r1272_3(int) = Constant[10] : +# 1272| r1272_4(int) = Call[StaticMemberFunction] : func:r1272_2, 0:r1272_3 +# 1272| m1272_5(unknown) = ^CallSideEffect : ~m1271_6 +# 1272| m1272_6(unknown) = Chi : total:m1271_6, partial:m1272_5 +# 1273| r1273_1(glval) = FunctionAddress[StaticMemberFunction] : +# 1273| r1273_2(int) = Constant[10] : +# 1273| r1273_3(int) = Call[StaticMemberFunction] : func:r1273_1, 0:r1273_2 +# 1273| m1273_4(unknown) = ^CallSideEffect : ~m1272_6 +# 1273| m1273_5(unknown) = Chi : total:m1272_6, partial:m1273_4 +# 1275| r1275_1(glval) = VariableAddress[a] : +# 1275| m1275_2(A) = Uninitialized[a] : &:r1275_1 +# 1276| r1276_1(glval) = VariableAddress[a] : +# 1276| r1276_2(glval) = FunctionAddress[static_member] : +# 1276| r1276_3(glval) = VariableAddress[a] : +# 1276| r1276_4(A *) = CopyValue : r1276_3 +# 1276| r1276_5(glval) = VariableAddress[int_arg] : +# 1276| r1276_6(int) = Load[int_arg] : &:r1276_5, m1270_6 +# 1276| v1276_7(void) = Call[static_member] : func:r1276_2, 0:r1276_4, 1:r1276_6 +# 1276| m1276_8(unknown) = ^CallSideEffect : ~m1273_5 +# 1276| m1276_9(unknown) = Chi : total:m1273_5, partial:m1276_8 +# 1276| v1276_10(void) = ^BufferReadSideEffect[0] : &:r1276_4, ~m1275_2 +# 1276| m1276_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1276_4 +# 1276| m1276_12(A) = Chi : total:m1275_2, partial:m1276_11 +# 1277| r1277_1(glval) = FunctionAddress[static_member] : +# 1277| r1277_2(glval) = VariableAddress[a] : +# 1277| r1277_3(A *) = CopyValue : r1277_2 +# 1277| r1277_4(glval) = VariableAddress[int_arg] : +# 1277| r1277_5(int) = Load[int_arg] : &:r1277_4, m1270_6 +# 1277| v1277_6(void) = Call[static_member] : func:r1277_1, 0:r1277_3, 1:r1277_5 +# 1277| m1277_7(unknown) = ^CallSideEffect : ~m1276_9 +# 1277| m1277_8(unknown) = Chi : total:m1276_9, partial:m1277_7 +# 1277| v1277_9(void) = ^BufferReadSideEffect[0] : &:r1277_3, ~m1276_12 +# 1277| m1277_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1277_3 +# 1277| m1277_11(A) = Chi : total:m1276_12, partial:m1277_10 +# 1279| r1279_1(glval) = VariableAddress[a] : +# 1279| r1279_2(A *) = CopyValue : r1279_1 +# 1279| r1279_3(glval) = FunctionAddress[static_member] : +# 1279| r1279_4(glval) = VariableAddress[a_arg] : +# 1279| r1279_5(A *) = Load[a_arg] : &:r1279_4, m1270_8 +# 1279| r1279_6(glval) = VariableAddress[int_arg] : +# 1279| r1279_7(int) = Load[int_arg] : &:r1279_6, m1270_6 +# 1279| r1279_8(int) = Constant[2] : +# 1279| r1279_9(int) = Add : r1279_7, r1279_8 +# 1279| v1279_10(void) = Call[static_member] : func:r1279_3, 0:r1279_5, 1:r1279_9 +# 1279| m1279_11(unknown) = ^CallSideEffect : ~m1277_8 +# 1279| m1279_12(unknown) = Chi : total:m1277_8, partial:m1279_11 +# 1279| v1279_13(void) = ^BufferReadSideEffect[0] : &:r1279_5, ~m1270_10 +# 1279| m1279_14(unknown) = ^BufferMayWriteSideEffect[0] : &:r1279_5 +# 1279| m1279_15(unknown) = Chi : total:m1270_10, partial:m1279_14 +# 1280| r1280_1(glval) = VariableAddress[a_arg] : +# 1280| r1280_2(A *) = Load[a_arg] : &:r1280_1, m1270_8 +# 1280| r1280_3(glval) = CopyValue : r1280_2 +# 1280| r1280_4(glval) = FunctionAddress[static_member] : +# 1280| r1280_5(glval) = VariableAddress[a] : +# 1280| r1280_6(A *) = CopyValue : r1280_5 +# 1280| r1280_7(int) = Constant[99] : +# 1280| v1280_8(void) = Call[static_member] : func:r1280_4, 0:r1280_6, 1:r1280_7 +# 1280| m1280_9(unknown) = ^CallSideEffect : ~m1279_12 +# 1280| m1280_10(unknown) = Chi : total:m1279_12, partial:m1280_9 +# 1280| v1280_11(void) = ^BufferReadSideEffect[0] : &:r1280_6, ~m1277_11 +# 1280| m1280_12(unknown) = ^BufferMayWriteSideEffect[0] : &:r1280_6 +# 1280| m1280_13(A) = Chi : total:m1277_11, partial:m1280_12 +# 1281| r1281_1(glval) = VariableAddress[a_arg] : +# 1281| r1281_2(A *) = Load[a_arg] : &:r1281_1, m1270_8 +# 1281| r1281_3(glval) = FunctionAddress[static_member] : +# 1281| r1281_4(glval) = VariableAddress[a_arg] : +# 1281| r1281_5(A *) = Load[a_arg] : &:r1281_4, m1270_8 +# 1281| r1281_6(int) = Constant[-1] : +# 1281| v1281_7(void) = Call[static_member] : func:r1281_3, 0:r1281_5, 1:r1281_6 +# 1281| m1281_8(unknown) = ^CallSideEffect : ~m1280_10 +# 1281| m1281_9(unknown) = Chi : total:m1280_10, partial:m1281_8 +# 1281| v1281_10(void) = ^BufferReadSideEffect[0] : &:r1281_5, ~m1279_15 +# 1281| m1281_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1281_5 +# 1281| m1281_12(unknown) = Chi : total:m1279_15, partial:m1281_11 +# 1283| r1283_1(glval) = VariableAddress[a] : +# 1283| r1283_2(glval) = FunctionAddress[static_member_without_def] : +# 1283| v1283_3(void) = Call[static_member_without_def] : func:r1283_2 +# 1283| m1283_4(unknown) = ^CallSideEffect : ~m1281_9 +# 1283| m1283_5(unknown) = Chi : total:m1281_9, partial:m1283_4 +# 1284| r1284_1(glval) = FunctionAddress[static_member_without_def] : +# 1284| v1284_2(void) = Call[static_member_without_def] : func:r1284_1 +# 1284| m1284_3(unknown) = ^CallSideEffect : ~m1283_5 +# 1284| m1284_4(unknown) = Chi : total:m1283_5, partial:m1284_3 +# 1286| r1286_1(glval) = FunctionAddress[getAnInstanceOfA] : +# 1286| r1286_2(A *) = Call[getAnInstanceOfA] : func:r1286_1 +# 1286| m1286_3(unknown) = ^CallSideEffect : ~m1284_4 +# 1286| m1286_4(unknown) = Chi : total:m1284_4, partial:m1286_3 +# 1286| r1286_5(glval) = FunctionAddress[static_member_without_def] : +# 1286| v1286_6(void) = Call[static_member_without_def] : func:r1286_5 +# 1286| m1286_7(unknown) = ^CallSideEffect : ~m1286_4 +# 1286| m1286_8(unknown) = Chi : total:m1286_4, partial:m1286_7 +# 1287| v1287_1(void) = NoOp : +# 1270| v1270_11(void) = ReturnIndirection[a_arg] : &:r1270_9, m1281_12 +# 1270| v1270_12(void) = ReturnVoid : +# 1270| v1270_13(void) = AliasedUse : ~m1286_8 +# 1270| v1270_14(void) = ExitFunction : + +# 1289| int missingReturnValue(bool, int) +# 1289| Block 0 +# 1289| v1289_1(void) = EnterFunction : +# 1289| m1289_2(unknown) = AliasedDefinition : +# 1289| m1289_3(unknown) = InitializeNonLocal : +# 1289| m1289_4(unknown) = Chi : total:m1289_2, partial:m1289_3 +# 1289| r1289_5(glval) = VariableAddress[b] : +# 1289| m1289_6(bool) = InitializeParameter[b] : &:r1289_5 +# 1289| r1289_7(glval) = VariableAddress[x] : +# 1289| m1289_8(int) = InitializeParameter[x] : &:r1289_7 +# 1290| r1290_1(glval) = VariableAddress[b] : +# 1290| r1290_2(bool) = Load[b] : &:r1290_1, m1289_6 +# 1290| v1290_3(void) = ConditionalBranch : r1290_2 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 1289| Block 1 +# 1289| m1289_9(int) = Phi : from 2:m1291_4, from 3:m1293_2 +# 1289| r1289_10(glval) = VariableAddress[#return] : +# 1289| v1289_11(void) = ReturnValue : &:r1289_10, m1289_9 +# 1289| v1289_12(void) = AliasedUse : m1289_3 +# 1289| v1289_13(void) = ExitFunction : + +# 1291| Block 2 +# 1291| r1291_1(glval) = VariableAddress[#return] : +# 1291| r1291_2(glval) = VariableAddress[x] : +# 1291| r1291_3(int) = Load[x] : &:r1291_2, m1289_8 +# 1291| m1291_4(int) = Store[#return] : &:r1291_1, r1291_3 +#-----| Goto -> Block 1 + +# 1293| Block 3 +# 1293| r1293_1(glval) = VariableAddress[#return] : +# 1293| m1293_2(int) = Uninitialized[#return] : &:r1293_1 +#-----| Goto -> Block 1 + +# 1295| void returnVoid(int, int) +# 1295| Block 0 +# 1295| v1295_1(void) = EnterFunction : +# 1295| m1295_2(unknown) = AliasedDefinition : +# 1295| m1295_3(unknown) = InitializeNonLocal : +# 1295| m1295_4(unknown) = Chi : total:m1295_2, partial:m1295_3 +# 1295| r1295_5(glval) = VariableAddress[x] : +# 1295| m1295_6(int) = InitializeParameter[x] : &:r1295_5 +# 1295| r1295_7(glval) = VariableAddress[y] : +# 1295| m1295_8(int) = InitializeParameter[y] : &:r1295_7 +# 1296| r1296_1(glval) = FunctionAddress[IntegerOps] : +# 1296| r1296_2(glval) = VariableAddress[x] : +# 1296| r1296_3(int) = Load[x] : &:r1296_2, m1295_6 +# 1296| r1296_4(glval) = VariableAddress[y] : +# 1296| r1296_5(int) = Load[y] : &:r1296_4, m1295_8 +# 1296| v1296_6(void) = Call[IntegerOps] : func:r1296_1, 0:r1296_3, 1:r1296_5 +# 1296| m1296_7(unknown) = ^CallSideEffect : ~m1295_4 +# 1296| m1296_8(unknown) = Chi : total:m1295_4, partial:m1296_7 +# 1296| v1296_9(void) = NoOp : +# 1295| v1295_9(void) = ReturnVoid : +# 1295| v1295_10(void) = AliasedUse : ~m1296_8 +# 1295| v1295_11(void) = ExitFunction : + +# 1299| void gccBinaryConditional(bool, int, long) +# 1299| Block 0 +# 1299| v1299_1(void) = EnterFunction : +# 1299| m1299_2(unknown) = AliasedDefinition : +# 1299| m1299_3(unknown) = InitializeNonLocal : +# 1299| m1299_4(unknown) = Chi : total:m1299_2, partial:m1299_3 +# 1299| r1299_5(glval) = VariableAddress[b] : +# 1299| m1299_6(bool) = InitializeParameter[b] : &:r1299_5 +# 1299| r1299_7(glval) = VariableAddress[x] : +# 1299| m1299_8(int) = InitializeParameter[x] : &:r1299_7 +# 1299| r1299_9(glval) = VariableAddress[y] : +# 1299| m1299_10(long) = InitializeParameter[y] : &:r1299_9 +# 1300| r1300_1(glval) = VariableAddress[z] : +# 1300| r1300_2(glval) = VariableAddress[x] : +# 1300| r1300_3(int) = Load[x] : &:r1300_2, m1299_8 +# 1300| m1300_4(int) = Store[z] : &:r1300_1, r1300_3 +# 1301| r1301_1(glval) = VariableAddress[b] : +# 1301| r1301_2(bool) = Load[b] : &:r1301_1, m1299_6 +# 1301| v1301_3(void) = ConditionalBranch : r1301_2 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 1301| Block 1 +# 1301| m1301_4(int) = Phi : from 2:m1301_10, from 3:m1301_14 +# 1301| r1301_5(glval) = VariableAddress[#temp1301:9] : +# 1301| r1301_6(int) = Load[#temp1301:9] : &:r1301_5, m1301_4 +# 1301| r1301_7(glval) = VariableAddress[z] : +# 1301| m1301_8(int) = Store[z] : &:r1301_7, r1301_6 +# 1302| r1302_1(glval) = VariableAddress[b] : +# 1302| r1302_2(bool) = Load[b] : &:r1302_1, m1299_6 +# 1302| v1302_3(void) = ConditionalBranch : r1302_2 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 1301| Block 2 +# 1301| r1301_9(glval) = VariableAddress[#temp1301:9] : +# 1301| m1301_10(int) = Store[#temp1301:9] : &:r1301_9, r1301_2 +#-----| Goto -> Block 1 + +# 1301| Block 3 +# 1301| r1301_11(glval) = VariableAddress[x] : +# 1301| r1301_12(int) = Load[x] : &:r1301_11, m1299_8 +# 1301| r1301_13(glval) = VariableAddress[#temp1301:9] : +# 1301| m1301_14(int) = Store[#temp1301:9] : &:r1301_13, r1301_12 +#-----| Goto -> Block 1 + +# 1302| Block 4 +# 1302| m1302_4(long) = Phi : from 5:m1302_11, from 6:m1302_15 +# 1302| r1302_5(glval) = VariableAddress[#temp1302:9] : +# 1302| r1302_6(long) = Load[#temp1302:9] : &:r1302_5, m1302_4 +# 1302| r1302_7(int) = Convert : r1302_6 +# 1302| r1302_8(glval) = VariableAddress[z] : +# 1302| m1302_9(int) = Store[z] : &:r1302_8, r1302_7 +# 1303| r1303_1(glval) = VariableAddress[x] : +# 1303| r1303_2(int) = Load[x] : &:r1303_1, m1299_8 +# 1303| r1303_3(int) = Constant[0] : +# 1303| r1303_4(bool) = CompareNE : r1303_2, r1303_3 +# 1303| v1303_5(void) = ConditionalBranch : r1303_4 +#-----| False -> Block 9 +#-----| True -> Block 8 + +# 1302| Block 5 +# 1302| r1302_10(glval) = VariableAddress[#temp1302:9] : +# 1302| m1302_11(long) = Store[#temp1302:9] : &:r1302_10, r1302_2 +#-----| Goto -> Block 4 + +# 1302| Block 6 +# 1302| r1302_12(glval) = VariableAddress[y] : +# 1302| r1302_13(long) = Load[y] : &:r1302_12, m1299_10 +# 1302| r1302_14(glval) = VariableAddress[#temp1302:9] : +# 1302| m1302_15(long) = Store[#temp1302:9] : &:r1302_14, r1302_13 +#-----| Goto -> Block 4 + +# 1303| Block 7 +# 1303| m1303_6(int) = Phi : from 8:m1303_12, from 9:m1303_16 +# 1303| r1303_7(glval) = VariableAddress[#temp1303:9] : +# 1303| r1303_8(int) = Load[#temp1303:9] : &:r1303_7, m1303_6 +# 1303| r1303_9(glval) = VariableAddress[z] : +# 1303| m1303_10(int) = Store[z] : &:r1303_9, r1303_8 +# 1304| r1304_1(glval) = VariableAddress[x] : +# 1304| r1304_2(int) = Load[x] : &:r1304_1, m1299_8 +# 1304| r1304_3(int) = Constant[0] : +# 1304| r1304_4(bool) = CompareNE : r1304_2, r1304_3 +# 1304| v1304_5(void) = ConditionalBranch : r1304_4 +#-----| False -> Block 12 +#-----| True -> Block 11 + +# 1303| Block 8 +# 1303| r1303_11(glval) = VariableAddress[#temp1303:9] : +# 1303| m1303_12(int) = Store[#temp1303:9] : &:r1303_11, r1303_2 +#-----| Goto -> Block 7 + +# 1303| Block 9 +# 1303| r1303_13(glval) = VariableAddress[x] : +# 1303| r1303_14(int) = Load[x] : &:r1303_13, m1299_8 +# 1303| r1303_15(glval) = VariableAddress[#temp1303:9] : +# 1303| m1303_16(int) = Store[#temp1303:9] : &:r1303_15, r1303_14 +#-----| Goto -> Block 7 + +# 1304| Block 10 +# 1304| m1304_6(long) = Phi : from 11:m1304_13, from 12:m1304_17 +# 1304| r1304_7(glval) = VariableAddress[#temp1304:9] : +# 1304| r1304_8(long) = Load[#temp1304:9] : &:r1304_7, m1304_6 +# 1304| r1304_9(int) = Convert : r1304_8 +# 1304| r1304_10(glval) = VariableAddress[z] : +# 1304| m1304_11(int) = Store[z] : &:r1304_10, r1304_9 +# 1305| r1305_1(glval) = VariableAddress[y] : +# 1305| r1305_2(long) = Load[y] : &:r1305_1, m1299_10 +# 1305| r1305_3(long) = Constant[0] : +# 1305| r1305_4(bool) = CompareNE : r1305_2, r1305_3 +# 1305| v1305_5(void) = ConditionalBranch : r1305_4 +#-----| False -> Block 15 +#-----| True -> Block 14 + +# 1304| Block 11 +# 1304| r1304_12(glval) = VariableAddress[#temp1304:9] : +# 1304| m1304_13(long) = Store[#temp1304:9] : &:r1304_12, r1304_2 +#-----| Goto -> Block 10 + +# 1304| Block 12 +# 1304| r1304_14(glval) = VariableAddress[y] : +# 1304| r1304_15(long) = Load[y] : &:r1304_14, m1299_10 +# 1304| r1304_16(glval) = VariableAddress[#temp1304:9] : +# 1304| m1304_17(long) = Store[#temp1304:9] : &:r1304_16, r1304_15 +#-----| Goto -> Block 10 + +# 1305| Block 13 +# 1305| m1305_6(long) = Phi : from 14:m1305_13, from 15:m1305_18 +# 1305| r1305_7(glval) = VariableAddress[#temp1305:9] : +# 1305| r1305_8(long) = Load[#temp1305:9] : &:r1305_7, m1305_6 +# 1305| r1305_9(int) = Convert : r1305_8 +# 1305| r1305_10(glval) = VariableAddress[z] : +# 1305| m1305_11(int) = Store[z] : &:r1305_10, r1305_9 +# 1306| r1306_1(glval) = VariableAddress[y] : +# 1306| r1306_2(long) = Load[y] : &:r1306_1, m1299_10 +# 1306| r1306_3(long) = Constant[0] : +# 1306| r1306_4(bool) = CompareNE : r1306_2, r1306_3 +# 1306| v1306_5(void) = ConditionalBranch : r1306_4 +#-----| False -> Block 18 +#-----| True -> Block 17 + +# 1305| Block 14 +# 1305| r1305_12(glval) = VariableAddress[#temp1305:9] : +# 1305| m1305_13(long) = Store[#temp1305:9] : &:r1305_12, r1305_2 +#-----| Goto -> Block 13 + +# 1305| Block 15 +# 1305| r1305_14(glval) = VariableAddress[x] : +# 1305| r1305_15(int) = Load[x] : &:r1305_14, m1299_8 +# 1305| r1305_16(long) = Convert : r1305_15 +# 1305| r1305_17(glval) = VariableAddress[#temp1305:9] : +# 1305| m1305_18(long) = Store[#temp1305:9] : &:r1305_17, r1305_16 +#-----| Goto -> Block 13 + +# 1306| Block 16 +# 1306| m1306_6(long) = Phi : from 17:m1306_13, from 18:m1306_17 +# 1306| r1306_7(glval) = VariableAddress[#temp1306:9] : +# 1306| r1306_8(long) = Load[#temp1306:9] : &:r1306_7, m1306_6 +# 1306| r1306_9(int) = Convert : r1306_8 +# 1306| r1306_10(glval) = VariableAddress[z] : +# 1306| m1306_11(int) = Store[z] : &:r1306_10, r1306_9 +# 1308| r1308_1(glval) = VariableAddress[x] : +# 1308| r1308_2(int) = Load[x] : &:r1308_1, m1299_8 +# 1308| r1308_3(int) = Constant[0] : +# 1308| r1308_4(bool) = CompareNE : r1308_2, r1308_3 +# 1308| v1308_5(void) = ConditionalBranch : r1308_4 +#-----| False -> Block 25 +#-----| True -> Block 24 + +# 1306| Block 17 +# 1306| r1306_12(glval) = VariableAddress[#temp1306:9] : +# 1306| m1306_13(long) = Store[#temp1306:9] : &:r1306_12, r1306_2 +#-----| Goto -> Block 16 + +# 1306| Block 18 +# 1306| r1306_14(glval) = VariableAddress[y] : +# 1306| r1306_15(long) = Load[y] : &:r1306_14, m1299_10 +# 1306| r1306_16(glval) = VariableAddress[#temp1306:9] : +# 1306| m1306_17(long) = Store[#temp1306:9] : &:r1306_16, r1306_15 +#-----| Goto -> Block 16 + +# 1308| Block 19 +# 1308| m1308_6(int) = Phi : from 20:m1308_12, from 26:m1308_34 +# 1308| r1308_7(glval) = VariableAddress[#temp1308:9] : +# 1308| r1308_8(int) = Load[#temp1308:9] : &:r1308_7, m1308_6 +# 1308| r1308_9(glval) = VariableAddress[z] : +# 1308| m1308_10(int) = Store[z] : &:r1308_9, r1308_8 +# 1309| v1309_1(void) = NoOp : +# 1299| v1299_11(void) = ReturnVoid : +# 1299| v1299_12(void) = AliasedUse : m1299_3 +# 1299| v1299_13(void) = ExitFunction : + +# 1308| Block 20 +# 1308| r1308_11(glval) = VariableAddress[#temp1308:9] : +# 1308| m1308_12(int) = Store[#temp1308:9] : &:r1308_11, r1308_18 +#-----| Goto -> Block 19 + +# 1308| Block 21 +# 1308| r1308_13(glval) = VariableAddress[#temp1308:10] : +# 1308| r1308_14(bool) = Constant[0] : +# 1308| m1308_15(bool) = Store[#temp1308:10] : &:r1308_13, r1308_14 +#-----| Goto -> Block 22 + +# 1308| Block 22 +# 1308| m1308_16(bool) = Phi : from 21:m1308_15, from 23:m1308_22 +# 1308| r1308_17(glval) = VariableAddress[#temp1308:10] : +# 1308| r1308_18(bool) = Load[#temp1308:10] : &:r1308_17, m1308_16 +# 1308| v1308_19(void) = ConditionalBranch : r1308_18 +#-----| False -> Block 26 +#-----| True -> Block 20 + +# 1308| Block 23 +# 1308| r1308_20(glval) = VariableAddress[#temp1308:10] : +# 1308| r1308_21(bool) = Constant[1] : +# 1308| m1308_22(bool) = Store[#temp1308:10] : &:r1308_20, r1308_21 +#-----| Goto -> Block 22 + +# 1308| Block 24 +# 1308| r1308_23(glval) = VariableAddress[b] : +# 1308| r1308_24(bool) = Load[b] : &:r1308_23, m1299_6 +# 1308| v1308_25(void) = ConditionalBranch : r1308_24 +#-----| False -> Block 25 +#-----| True -> Block 23 + +# 1308| Block 25 +# 1308| r1308_26(glval) = VariableAddress[y] : +# 1308| r1308_27(long) = Load[y] : &:r1308_26, m1299_10 +# 1308| r1308_28(long) = Constant[0] : +# 1308| r1308_29(bool) = CompareNE : r1308_27, r1308_28 +# 1308| v1308_30(void) = ConditionalBranch : r1308_29 +#-----| False -> Block 21 +#-----| True -> Block 23 + +# 1308| Block 26 +# 1308| r1308_31(glval) = VariableAddress[x] : +# 1308| r1308_32(int) = Load[x] : &:r1308_31, m1299_8 +# 1308| r1308_33(glval) = VariableAddress[#temp1308:9] : +# 1308| m1308_34(int) = Store[#temp1308:9] : &:r1308_33, r1308_32 +#-----| Goto -> Block 19 + +# 1314| int shortCircuitConditional(int, int) +# 1314| Block 0 +# 1314| v1314_1(void) = EnterFunction : +# 1314| m1314_2(unknown) = AliasedDefinition : +# 1314| m1314_3(unknown) = InitializeNonLocal : +# 1314| m1314_4(unknown) = Chi : total:m1314_2, partial:m1314_3 +# 1314| r1314_5(glval) = VariableAddress[x] : +# 1314| m1314_6(int) = InitializeParameter[x] : &:r1314_5 +# 1314| r1314_7(glval) = VariableAddress[y] : +# 1314| m1314_8(int) = InitializeParameter[y] : &:r1314_7 +# 1315| r1315_1(glval) = VariableAddress[#return] : +# 1315| r1315_2(glval) = FunctionAddress[predicateA] : +# 1315| r1315_3(bool) = Call[predicateA] : func:r1315_2 +# 1315| m1315_4(unknown) = ^CallSideEffect : ~m1314_4 +# 1315| m1315_5(unknown) = Chi : total:m1314_4, partial:m1315_4 +# 1315| v1315_6(void) = ConditionalBranch : r1315_3 +#-----| False -> Block 4 +#-----| True -> Block 2 + +# 1315| Block 1 +# 1315| m1315_7(unknown) = Phi : from 3:~m1315_15, from 4:~m1315_21 +# 1315| m1315_8(int) = Phi : from 3:m1315_20, from 4:m1315_25 +# 1315| r1315_9(glval) = VariableAddress[#temp1315:12] : +# 1315| r1315_10(int) = Load[#temp1315:12] : &:r1315_9, m1315_8 +# 1315| m1315_11(int) = Store[#return] : &:r1315_1, r1315_10 +# 1314| r1314_9(glval) = VariableAddress[#return] : +# 1314| v1314_10(void) = ReturnValue : &:r1314_9, m1315_11 +# 1314| v1314_11(void) = AliasedUse : ~m1315_7 +# 1314| v1314_12(void) = ExitFunction : + +# 1315| Block 2 +# 1315| r1315_12(glval) = FunctionAddress[predicateB] : +# 1315| r1315_13(bool) = Call[predicateB] : func:r1315_12 +# 1315| m1315_14(unknown) = ^CallSideEffect : ~m1315_5 +# 1315| m1315_15(unknown) = Chi : total:m1315_5, partial:m1315_14 +# 1315| v1315_16(void) = ConditionalBranch : r1315_13 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 1315| Block 3 +# 1315| r1315_17(glval) = VariableAddress[x] : +# 1315| r1315_18(int) = Load[x] : &:r1315_17, m1314_6 +# 1315| r1315_19(glval) = VariableAddress[#temp1315:12] : +# 1315| m1315_20(int) = Store[#temp1315:12] : &:r1315_19, r1315_18 +#-----| Goto -> Block 1 + +# 1315| Block 4 +# 1315| m1315_21(unknown) = Phi : from 0:~m1315_5, from 2:~m1315_15 +# 1315| r1315_22(glval) = VariableAddress[y] : +# 1315| r1315_23(int) = Load[y] : &:r1315_22, m1314_8 +# 1315| r1315_24(glval) = VariableAddress[#temp1315:12] : +# 1315| m1315_25(int) = Store[#temp1315:12] : &:r1315_24, r1315_23 +#-----| Goto -> Block 1 + +# 1320| void f(int*) +# 1320| Block 0 +# 1320| v1320_1(void) = EnterFunction : +# 1320| m1320_2(unknown) = AliasedDefinition : +# 1320| m1320_3(unknown) = InitializeNonLocal : +# 1320| m1320_4(unknown) = Chi : total:m1320_2, partial:m1320_3 +# 1320| r1320_5(glval) = VariableAddress[p] : +# 1320| m1320_6(int *) = InitializeParameter[p] : &:r1320_5 +# 1320| r1320_7(int *) = Load[p] : &:r1320_5, m1320_6 +# 1320| m1320_8(unknown) = InitializeIndirection[p] : &:r1320_7 +# 1322| r1322_1(glval) = FunctionAddress[operator new] : +# 1322| r1322_2(unsigned long) = Constant[4] : +# 1322| r1322_3(glval) = VariableAddress[p] : +# 1322| r1322_4(int *) = Load[p] : &:r1322_3, m1320_6 +# 1322| r1322_5(void *) = Convert : r1322_4 +# 1322| r1322_6(void *) = Call[operator new] : func:r1322_1, 0:r1322_2, 1:r1322_5 +# 1322| m1322_7(unknown) = ^CallSideEffect : ~m1320_4 +# 1322| m1322_8(unknown) = Chi : total:m1320_4, partial:m1322_7 +# 1322| m1322_9(unknown) = ^InitializeDynamicAllocation : &:r1322_6 +# 1322| r1322_10(int *) = Convert : r1322_6 +# 1323| v1323_1(void) = NoOp : +# 1320| v1320_9(void) = ReturnIndirection[p] : &:r1320_7, m1320_8 +# 1320| v1320_10(void) = ReturnVoid : +# 1320| v1320_11(void) = AliasedUse : ~m1322_8 +# 1320| v1320_12(void) = ExitFunction : + +# 1326| Point defaultConstruct() +# 1326| Block 0 +# 1326| v1326_1(void) = EnterFunction : +# 1326| m1326_2(unknown) = AliasedDefinition : +# 1326| m1326_3(unknown) = InitializeNonLocal : +# 1326| m1326_4(unknown) = Chi : total:m1326_2, partial:m1326_3 +# 1327| r1327_1(glval) = VariableAddress[#return] : +# 1327| r1327_2(Point) = Constant[0] : +# 1327| m1327_3(Point) = Store[#return] : &:r1327_1, r1327_2 +# 1326| r1326_5(glval) = VariableAddress[#return] : +# 1326| v1326_6(void) = ReturnValue : &:r1326_5, m1327_3 +# 1326| v1326_7(void) = AliasedUse : m1326_3 +# 1326| v1326_8(void) = ExitFunction : + +# 1326| String defaultConstruct() +# 1326| Block 0 +# 1326| v1326_1(void) = EnterFunction : +# 1326| m1326_2(unknown) = AliasedDefinition : +# 1326| m1326_3(unknown) = InitializeNonLocal : +# 1326| m1326_4(unknown) = Chi : total:m1326_2, partial:m1326_3 +# 1327| r1327_1(glval) = VariableAddress[#return] : +# 1327| m1327_2(String) = Uninitialized[#return] : &:r1327_1 +# 1327| r1327_3(glval) = FunctionAddress[String] : +# 1327| v1327_4(void) = Call[String] : func:r1327_3, this:r1327_1 +# 1327| m1327_5(unknown) = ^CallSideEffect : ~m1326_4 +# 1327| m1327_6(unknown) = Chi : total:m1326_4, partial:m1327_5 +# 1327| m1327_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r1327_1 +# 1327| m1327_8(String) = Chi : total:m1327_2, partial:m1327_7 +# 1326| r1326_5(glval) = VariableAddress[#return] : +# 1326| v1326_6(void) = ReturnValue : &:r1326_5, m1327_8 +# 1326| v1326_7(void) = AliasedUse : ~m1327_6 +# 1326| v1326_8(void) = ExitFunction : + +# 1326| copy_constructor defaultConstruct() +# 1326| Block 0 +# 1326| v1326_1(void) = EnterFunction : +# 1326| m1326_2(unknown) = AliasedDefinition : +# 1326| m1326_3(unknown) = InitializeNonLocal : +# 1326| m1326_4(unknown) = Chi : total:m1326_2, partial:m1326_3 +# 1327| r1327_1(glval) = VariableAddress[#return] : +# 1327| m1327_2(copy_constructor) = Uninitialized[#return] : &:r1327_1 +# 1327| r1327_3(glval) = FunctionAddress[copy_constructor] : +# 1327| v1327_4(void) = Call[copy_constructor] : func:r1327_3, this:r1327_1 +# 1327| m1327_5(unknown) = ^CallSideEffect : ~m1326_4 +# 1327| m1327_6(unknown) = Chi : total:m1326_4, partial:m1327_5 +# 1327| m1327_7(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1327_1 +# 1327| m1327_8(copy_constructor) = Chi : total:m1327_2, partial:m1327_7 +# 1326| r1326_5(glval) = VariableAddress[#return] : +# 1326| v1326_6(void) = ReturnValue : &:r1326_5, m1327_8 +# 1326| v1326_7(void) = AliasedUse : ~m1327_6 +# 1326| v1326_8(void) = ExitFunction : + +# 1326| destructor_only defaultConstruct() +# 1326| Block 0 +# 1326| v1326_1(void) = EnterFunction : +# 1326| m1326_2(unknown) = AliasedDefinition : +# 1326| m1326_3(unknown) = InitializeNonLocal : +# 1326| m1326_4(unknown) = Chi : total:m1326_2, partial:m1326_3 +# 1327| r1327_1(glval) = VariableAddress[#return] : +# 1327| r1327_2(destructor_only) = Constant[0] : +# 1327| m1327_3(destructor_only) = Store[#return] : &:r1327_1, r1327_2 +# 1326| r1326_5(glval) = VariableAddress[#return] : +# 1326| v1326_6(void) = ReturnValue : &:r1326_5, m1327_3 +# 1326| v1326_7(void) = AliasedUse : m1326_3 +# 1326| v1326_8(void) = ExitFunction : + +# 1365| void temporary_string() +# 1365| Block 0 +# 1365| v1365_1(void) = EnterFunction : +# 1365| m1365_2(unknown) = AliasedDefinition : +# 1365| m1365_3(unknown) = InitializeNonLocal : +# 1365| m1365_4(unknown) = Chi : total:m1365_2, partial:m1365_3 +# 1366| r1366_1(glval) = VariableAddress[s] : +# 1366| r1366_2(glval) = FunctionAddress[returnValue] : +# 1366| r1366_3(String) = Call[returnValue] : func:r1366_2 +# 1366| m1366_4(unknown) = ^CallSideEffect : ~m1365_4 +# 1366| m1366_5(unknown) = Chi : total:m1365_4, partial:m1366_4 +# 1366| m1366_6(String) = Store[s] : &:r1366_1, r1366_3 +# 1367| r1367_1(glval) = VariableAddress[rs] : +# 1367| r1367_2(glval) = VariableAddress[#temp1367:24] : +# 1367| r1367_3(glval) = FunctionAddress[returnValue] : +# 1367| r1367_4(String) = Call[returnValue] : func:r1367_3 +# 1367| m1367_5(unknown) = ^CallSideEffect : ~m1366_5 +# 1367| m1367_6(unknown) = Chi : total:m1366_5, partial:m1367_5 +# 1367| m1367_7(String) = Store[#temp1367:24] : &:r1367_2, r1367_4 +# 1367| r1367_8(glval) = Convert : r1367_2 +# 1367| r1367_9(String &) = CopyValue : r1367_8 +# 1367| m1367_10(String &) = Store[rs] : &:r1367_1, r1367_9 +# 1369| r1369_1(glval) = FunctionAddress[acceptRef] : +# 1369| r1369_2(glval) = VariableAddress[s] : +# 1369| r1369_3(glval) = Convert : r1369_2 +# 1369| r1369_4(String &) = CopyValue : r1369_3 +# 1369| v1369_5(void) = Call[acceptRef] : func:r1369_1, 0:r1369_4 +# 1369| m1369_6(unknown) = ^CallSideEffect : ~m1367_6 +# 1369| m1369_7(unknown) = Chi : total:m1367_6, partial:m1369_6 +# 1369| v1369_8(void) = ^BufferReadSideEffect[0] : &:r1369_4, ~m1366_6 +# 1370| r1370_1(glval) = FunctionAddress[acceptRef] : +# 1370| r1370_2(glval) = VariableAddress[#temp1370:23] : +# 1370| m1370_3(String) = Uninitialized[#temp1370:23] : &:r1370_2 +# 1370| r1370_4(glval) = FunctionAddress[String] : +# 1370| r1370_5(glval) = StringConstant["foo"] : +# 1370| r1370_6(char *) = Convert : r1370_5 +# 1370| v1370_7(void) = Call[String] : func:r1370_4, this:r1370_2, 0:r1370_6 +# 1370| m1370_8(unknown) = ^CallSideEffect : ~m1369_7 +# 1370| m1370_9(unknown) = Chi : total:m1369_7, partial:m1370_8 +# 1370| v1370_10(void) = ^BufferReadSideEffect[0] : &:r1370_6, ~m1365_3 +# 1370| m1370_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1370_2 +# 1370| m1370_12(String) = Chi : total:m1370_3, partial:m1370_11 +# 1370| r1370_13(String &) = CopyValue : r1370_2 +# 1370| v1370_14(void) = Call[acceptRef] : func:r1370_1, 0:r1370_13 +# 1370| m1370_15(unknown) = ^CallSideEffect : ~m1370_9 +# 1370| m1370_16(unknown) = Chi : total:m1370_9, partial:m1370_15 +# 1370| v1370_17(void) = ^BufferReadSideEffect[0] : &:r1370_13, ~m1370_12 +# 1371| r1371_1(glval) = FunctionAddress[acceptValue] : +# 1371| r1371_2(glval) = VariableAddress[#temp1371:17] : +# 1371| m1371_3(String) = Uninitialized[#temp1371:17] : &:r1371_2 +# 1371| r1371_4(glval) = FunctionAddress[String] : +# 1371| r1371_5(glval) = VariableAddress[s] : +# 1371| r1371_6(glval) = Convert : r1371_5 +# 1371| r1371_7(String &) = CopyValue : r1371_6 +# 1371| v1371_8(void) = Call[String] : func:r1371_4, this:r1371_2, 0:r1371_7 +# 1371| m1371_9(unknown) = ^CallSideEffect : ~m1370_16 +# 1371| m1371_10(unknown) = Chi : total:m1370_16, partial:m1371_9 +# 1371| v1371_11(void) = ^BufferReadSideEffect[0] : &:r1371_7, ~m1366_6 +# 1371| m1371_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r1371_2 +# 1371| m1371_13(String) = Chi : total:m1371_3, partial:m1371_12 +# 1371| r1371_14(String) = Load[#temp1371:17] : &:r1371_2, m1371_13 +# 1371| v1371_15(void) = Call[acceptValue] : func:r1371_1, 0:r1371_14 +# 1371| m1371_16(unknown) = ^CallSideEffect : ~m1371_10 +# 1371| m1371_17(unknown) = Chi : total:m1371_10, partial:m1371_16 +# 1372| r1372_1(glval) = FunctionAddress[acceptValue] : +# 1372| r1372_2(glval) = VariableAddress[#temp1372:25] : +# 1372| m1372_3(String) = Uninitialized[#temp1372:25] : &:r1372_2 +# 1372| r1372_4(glval) = FunctionAddress[String] : +# 1372| r1372_5(glval) = StringConstant["foo"] : +# 1372| r1372_6(char *) = Convert : r1372_5 +# 1372| v1372_7(void) = Call[String] : func:r1372_4, this:r1372_2, 0:r1372_6 +# 1372| m1372_8(unknown) = ^CallSideEffect : ~m1371_17 +# 1372| m1372_9(unknown) = Chi : total:m1371_17, partial:m1372_8 +# 1372| v1372_10(void) = ^BufferReadSideEffect[0] : &:r1372_6, ~m1365_3 +# 1372| m1372_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1372_2 +# 1372| m1372_12(String) = Chi : total:m1372_3, partial:m1372_11 +# 1372| r1372_13(String) = Load[#temp1372:25] : &:r1372_2, m1372_12 +# 1372| v1372_14(void) = Call[acceptValue] : func:r1372_1, 0:r1372_13 +# 1372| m1372_15(unknown) = ^CallSideEffect : ~m1372_9 +# 1372| m1372_16(unknown) = Chi : total:m1372_9, partial:m1372_15 +# 1373| r1373_1(glval) = VariableAddress[#temp1373:5] : +# 1373| m1373_2(String) = Uninitialized[#temp1373:5] : &:r1373_1 +# 1373| r1373_3(glval) = FunctionAddress[String] : +# 1373| v1373_4(void) = Call[String] : func:r1373_3, this:r1373_1 +# 1373| m1373_5(unknown) = ^CallSideEffect : ~m1372_16 +# 1373| m1373_6(unknown) = Chi : total:m1372_16, partial:m1373_5 +# 1373| m1373_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r1373_1 +# 1373| m1373_8(String) = Chi : total:m1373_2, partial:m1373_7 +# 1373| r1373_9(glval) = Convert : r1373_1 +# 1373| r1373_10(glval) = FunctionAddress[c_str] : +# 1373| r1373_11(char *) = Call[c_str] : func:r1373_10, this:r1373_9 +# 1373| m1373_12(unknown) = ^CallSideEffect : ~m1373_6 +# 1373| m1373_13(unknown) = Chi : total:m1373_6, partial:m1373_12 +# 1373| v1373_14(void) = ^IndirectReadSideEffect[-1] : &:r1373_9, m1373_8 +# 1374| r1374_1(glval) = VariableAddress[#temp1374:5] : +# 1374| r1374_2(glval) = FunctionAddress[returnValue] : +# 1374| r1374_3(String) = Call[returnValue] : func:r1374_2 +# 1374| m1374_4(unknown) = ^CallSideEffect : ~m1373_13 +# 1374| m1374_5(unknown) = Chi : total:m1373_13, partial:m1374_4 +# 1374| m1374_6(String) = Store[#temp1374:5] : &:r1374_1, r1374_3 +# 1374| r1374_7(glval) = Convert : r1374_1 +# 1374| r1374_8(glval) = FunctionAddress[c_str] : +# 1374| r1374_9(char *) = Call[c_str] : func:r1374_8, this:r1374_7 +# 1374| m1374_10(unknown) = ^CallSideEffect : ~m1374_5 +# 1374| m1374_11(unknown) = Chi : total:m1374_5, partial:m1374_10 +# 1374| v1374_12(void) = ^IndirectReadSideEffect[-1] : &:r1374_7, m1374_6 +# 1376| r1376_1(glval) = VariableAddress[#temp1376:5] : +# 1376| r1376_2(glval) = FunctionAddress[defaultConstruct] : +# 1376| r1376_3(String) = Call[defaultConstruct] : func:r1376_2 +# 1376| m1376_4(unknown) = ^CallSideEffect : ~m1374_11 +# 1376| m1376_5(unknown) = Chi : total:m1374_11, partial:m1376_4 +# 1376| m1376_6(String) = Store[#temp1376:5] : &:r1376_1, r1376_3 +# 1376| r1376_7(String) = Load[#temp1376:5] : &:r1376_1, m1376_6 +# 1377| v1377_1(void) = NoOp : +# 1365| v1365_5(void) = ReturnVoid : +# 1365| v1365_6(void) = AliasedUse : ~m1376_5 +# 1365| v1365_7(void) = ExitFunction : + +# 1379| void temporary_destructor_only() +# 1379| Block 0 +# 1379| v1379_1(void) = EnterFunction : +# 1379| m1379_2(unknown) = AliasedDefinition : +# 1379| m1379_3(unknown) = InitializeNonLocal : +# 1379| m1379_4(unknown) = Chi : total:m1379_2, partial:m1379_3 +# 1380| r1380_1(glval) = VariableAddress[d] : +# 1380| r1380_2(glval) = FunctionAddress[returnValue] : +# 1380| r1380_3(destructor_only) = Call[returnValue] : func:r1380_2 +# 1380| m1380_4(unknown) = ^CallSideEffect : ~m1379_4 +# 1380| m1380_5(unknown) = Chi : total:m1379_4, partial:m1380_4 +# 1380| m1380_6(destructor_only) = Store[d] : &:r1380_1, r1380_3 +# 1381| r1381_1(glval) = VariableAddress[rd] : +# 1381| r1381_2(glval) = VariableAddress[#temp1381:33] : +# 1381| r1381_3(glval) = FunctionAddress[returnValue] : +# 1381| r1381_4(destructor_only) = Call[returnValue] : func:r1381_3 +# 1381| m1381_5(unknown) = ^CallSideEffect : ~m1380_5 +# 1381| m1381_6(unknown) = Chi : total:m1380_5, partial:m1381_5 +# 1381| m1381_7(destructor_only) = Store[#temp1381:33] : &:r1381_2, r1381_4 +# 1381| r1381_8(glval) = Convert : r1381_2 +# 1381| r1381_9(destructor_only &) = CopyValue : r1381_8 +# 1381| m1381_10(destructor_only &) = Store[rd] : &:r1381_1, r1381_9 +# 1382| r1382_1(glval) = VariableAddress[d2] : +# 1382| m1382_2(destructor_only) = Uninitialized[d2] : &:r1382_1 +# 1383| r1383_1(glval) = FunctionAddress[acceptRef] : +# 1383| r1383_2(glval) = VariableAddress[d] : +# 1383| r1383_3(glval) = Convert : r1383_2 +# 1383| r1383_4(destructor_only &) = CopyValue : r1383_3 +# 1383| v1383_5(void) = Call[acceptRef] : func:r1383_1, 0:r1383_4 +# 1383| m1383_6(unknown) = ^CallSideEffect : ~m1381_6 +# 1383| m1383_7(unknown) = Chi : total:m1381_6, partial:m1383_6 +# 1383| v1383_8(void) = ^BufferReadSideEffect[0] : &:r1383_4, ~m1380_6 +# 1384| r1384_1(glval) = FunctionAddress[acceptValue] : +# 1384| r1384_2(glval) = VariableAddress[#temp1384:17] : +# 1384| r1384_3(glval) = VariableAddress[d] : +# 1384| r1384_4(destructor_only) = Load[d] : &:r1384_3, m1380_6 +# 1384| m1384_5(destructor_only) = Store[#temp1384:17] : &:r1384_2, r1384_4 +# 1384| r1384_6(destructor_only) = Load[#temp1384:17] : &:r1384_2, m1384_5 +# 1384| v1384_7(void) = Call[acceptValue] : func:r1384_1, 0:r1384_6 +# 1384| m1384_8(unknown) = ^CallSideEffect : ~m1383_7 +# 1384| m1384_9(unknown) = Chi : total:m1383_7, partial:m1384_8 +# 1385| r1385_1(glval) = VariableAddress[#temp1385:5] : +# 1385| r1385_2(destructor_only) = Constant[0] : +# 1385| m1385_3(destructor_only) = Store[#temp1385:5] : &:r1385_1, r1385_2 +# 1385| r1385_4(glval) = FunctionAddress[method] : +# 1385| v1385_5(void) = Call[method] : func:r1385_4, this:r1385_1 +# 1385| m1385_6(unknown) = ^CallSideEffect : ~m1384_9 +# 1385| m1385_7(unknown) = Chi : total:m1384_9, partial:m1385_6 +# 1385| v1385_8(void) = ^IndirectReadSideEffect[-1] : &:r1385_1, m1385_3 +# 1385| m1385_9(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1385_1 +# 1385| m1385_10(destructor_only) = Chi : total:m1385_3, partial:m1385_9 +# 1386| r1386_1(glval) = VariableAddress[#temp1386:5] : +# 1386| r1386_2(glval) = FunctionAddress[returnValue] : +# 1386| r1386_3(destructor_only) = Call[returnValue] : func:r1386_2 +# 1386| m1386_4(unknown) = ^CallSideEffect : ~m1385_7 +# 1386| m1386_5(unknown) = Chi : total:m1385_7, partial:m1386_4 +# 1386| m1386_6(destructor_only) = Store[#temp1386:5] : &:r1386_1, r1386_3 +# 1386| r1386_7(glval) = FunctionAddress[method] : +# 1386| v1386_8(void) = Call[method] : func:r1386_7, this:r1386_1 +# 1386| m1386_9(unknown) = ^CallSideEffect : ~m1386_5 +# 1386| m1386_10(unknown) = Chi : total:m1386_5, partial:m1386_9 +# 1386| v1386_11(void) = ^IndirectReadSideEffect[-1] : &:r1386_1, m1386_6 +# 1386| m1386_12(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1386_1 +# 1386| m1386_13(destructor_only) = Chi : total:m1386_6, partial:m1386_12 +# 1388| r1388_1(glval) = VariableAddress[#temp1388:5] : +# 1388| r1388_2(glval) = FunctionAddress[defaultConstruct] : +# 1388| r1388_3(destructor_only) = Call[defaultConstruct] : func:r1388_2 +# 1388| m1388_4(unknown) = ^CallSideEffect : ~m1386_10 +# 1388| m1388_5(unknown) = Chi : total:m1386_10, partial:m1388_4 +# 1388| m1388_6(destructor_only) = Store[#temp1388:5] : &:r1388_1, r1388_3 +# 1388| r1388_7(destructor_only) = Load[#temp1388:5] : &:r1388_1, m1388_6 +# 1389| v1389_1(void) = NoOp : +# 1379| v1379_5(void) = ReturnVoid : +# 1379| v1379_6(void) = AliasedUse : ~m1388_5 +# 1379| v1379_7(void) = ExitFunction : + +# 1391| void temporary_copy_constructor() +# 1391| Block 0 +# 1391| v1391_1(void) = EnterFunction : +# 1391| m1391_2(unknown) = AliasedDefinition : +# 1391| m1391_3(unknown) = InitializeNonLocal : +# 1391| m1391_4(unknown) = Chi : total:m1391_2, partial:m1391_3 +# 1392| r1392_1(glval) = VariableAddress[d] : +# 1392| r1392_2(glval) = FunctionAddress[returnValue] : +# 1392| r1392_3(copy_constructor) = Call[returnValue] : func:r1392_2 +# 1392| m1392_4(unknown) = ^CallSideEffect : ~m1391_4 +# 1392| m1392_5(unknown) = Chi : total:m1391_4, partial:m1392_4 +# 1392| m1392_6(copy_constructor) = Store[d] : &:r1392_1, r1392_3 +# 1393| r1393_1(glval) = VariableAddress[rd] : +# 1393| r1393_2(glval) = VariableAddress[#temp1393:34] : +# 1393| r1393_3(glval) = FunctionAddress[returnValue] : +# 1393| r1393_4(copy_constructor) = Call[returnValue] : func:r1393_3 +# 1393| m1393_5(unknown) = ^CallSideEffect : ~m1392_5 +# 1393| m1393_6(unknown) = Chi : total:m1392_5, partial:m1393_5 +# 1393| m1393_7(copy_constructor) = Store[#temp1393:34] : &:r1393_2, r1393_4 +# 1393| r1393_8(glval) = Convert : r1393_2 +# 1393| r1393_9(copy_constructor &) = CopyValue : r1393_8 +# 1393| m1393_10(copy_constructor &) = Store[rd] : &:r1393_1, r1393_9 +# 1394| r1394_1(glval) = VariableAddress[d2] : +# 1394| m1394_2(copy_constructor) = Uninitialized[d2] : &:r1394_1 +# 1394| r1394_3(glval) = FunctionAddress[copy_constructor] : +# 1394| v1394_4(void) = Call[copy_constructor] : func:r1394_3, this:r1394_1 +# 1394| m1394_5(unknown) = ^CallSideEffect : ~m1393_6 +# 1394| m1394_6(unknown) = Chi : total:m1393_6, partial:m1394_5 +# 1394| m1394_7(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1394_1 +# 1394| m1394_8(copy_constructor) = Chi : total:m1394_2, partial:m1394_7 +# 1395| r1395_1(glval) = FunctionAddress[acceptRef] : +# 1395| r1395_2(glval) = VariableAddress[d] : +# 1395| r1395_3(glval) = Convert : r1395_2 +# 1395| r1395_4(copy_constructor &) = CopyValue : r1395_3 +# 1395| v1395_5(void) = Call[acceptRef] : func:r1395_1, 0:r1395_4 +# 1395| m1395_6(unknown) = ^CallSideEffect : ~m1394_6 +# 1395| m1395_7(unknown) = Chi : total:m1394_6, partial:m1395_6 +# 1395| v1395_8(void) = ^BufferReadSideEffect[0] : &:r1395_4, ~m1392_6 +# 1396| r1396_1(glval) = FunctionAddress[acceptValue] : +# 1396| r1396_2(glval) = VariableAddress[#temp1396:17] : +# 1396| m1396_3(copy_constructor) = Uninitialized[#temp1396:17] : &:r1396_2 +# 1396| r1396_4(glval) = FunctionAddress[copy_constructor] : +# 1396| r1396_5(glval) = VariableAddress[d] : +# 1396| r1396_6(glval) = Convert : r1396_5 +# 1396| r1396_7(copy_constructor &) = CopyValue : r1396_6 +# 1396| v1396_8(void) = Call[copy_constructor] : func:r1396_4, this:r1396_2, 0:r1396_7 +# 1396| m1396_9(unknown) = ^CallSideEffect : ~m1395_7 +# 1396| m1396_10(unknown) = Chi : total:m1395_7, partial:m1396_9 +# 1396| v1396_11(void) = ^BufferReadSideEffect[0] : &:r1396_7, ~m1392_6 +# 1396| m1396_12(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1396_2 +# 1396| m1396_13(copy_constructor) = Chi : total:m1396_3, partial:m1396_12 +# 1396| r1396_14(copy_constructor) = Load[#temp1396:17] : &:r1396_2, m1396_13 +# 1396| v1396_15(void) = Call[acceptValue] : func:r1396_1, 0:r1396_14 +# 1396| m1396_16(unknown) = ^CallSideEffect : ~m1396_10 +# 1396| m1396_17(unknown) = Chi : total:m1396_10, partial:m1396_16 +# 1397| r1397_1(glval) = VariableAddress[#temp1397:5] : +# 1397| m1397_2(copy_constructor) = Uninitialized[#temp1397:5] : &:r1397_1 +# 1397| r1397_3(glval) = FunctionAddress[copy_constructor] : +# 1397| v1397_4(void) = Call[copy_constructor] : func:r1397_3, this:r1397_1 +# 1397| m1397_5(unknown) = ^CallSideEffect : ~m1396_17 +# 1397| m1397_6(unknown) = Chi : total:m1396_17, partial:m1397_5 +# 1397| m1397_7(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1397_1 +# 1397| m1397_8(copy_constructor) = Chi : total:m1397_2, partial:m1397_7 +# 1397| r1397_9(glval) = FunctionAddress[method] : +# 1397| v1397_10(void) = Call[method] : func:r1397_9, this:r1397_1 +# 1397| m1397_11(unknown) = ^CallSideEffect : ~m1397_6 +# 1397| m1397_12(unknown) = Chi : total:m1397_6, partial:m1397_11 +# 1397| v1397_13(void) = ^IndirectReadSideEffect[-1] : &:r1397_1, m1397_8 +# 1397| m1397_14(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1397_1 +# 1397| m1397_15(copy_constructor) = Chi : total:m1397_8, partial:m1397_14 +# 1398| r1398_1(glval) = VariableAddress[#temp1398:5] : +# 1398| r1398_2(glval) = FunctionAddress[returnValue] : +# 1398| r1398_3(copy_constructor) = Call[returnValue] : func:r1398_2 +# 1398| m1398_4(unknown) = ^CallSideEffect : ~m1397_12 +# 1398| m1398_5(unknown) = Chi : total:m1397_12, partial:m1398_4 +# 1398| m1398_6(copy_constructor) = Store[#temp1398:5] : &:r1398_1, r1398_3 +# 1398| r1398_7(glval) = FunctionAddress[method] : +# 1398| v1398_8(void) = Call[method] : func:r1398_7, this:r1398_1 +# 1398| m1398_9(unknown) = ^CallSideEffect : ~m1398_5 +# 1398| m1398_10(unknown) = Chi : total:m1398_5, partial:m1398_9 +# 1398| v1398_11(void) = ^IndirectReadSideEffect[-1] : &:r1398_1, m1398_6 +# 1398| m1398_12(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1398_1 +# 1398| m1398_13(copy_constructor) = Chi : total:m1398_6, partial:m1398_12 +# 1399| r1399_1(glval) = VariableAddress[#temp1399:5] : +# 1399| r1399_2(glval) = FunctionAddress[defaultConstruct] : +# 1399| r1399_3(copy_constructor) = Call[defaultConstruct] : func:r1399_2 +# 1399| m1399_4(unknown) = ^CallSideEffect : ~m1398_10 +# 1399| m1399_5(unknown) = Chi : total:m1398_10, partial:m1399_4 +# 1399| m1399_6(copy_constructor) = Store[#temp1399:5] : &:r1399_1, r1399_3 +# 1399| r1399_7(copy_constructor) = Load[#temp1399:5] : &:r1399_1, m1399_6 +# 1401| r1401_1(glval) = VariableAddress[y] : +# 1401| r1401_2(glval) = VariableAddress[#temp1401:13] : +# 1401| r1401_3(glval) = FunctionAddress[returnValue] : +# 1401| r1401_4(copy_constructor) = Call[returnValue] : func:r1401_3 +# 1401| m1401_5(unknown) = ^CallSideEffect : ~m1399_5 +# 1401| m1401_6(unknown) = Chi : total:m1399_5, partial:m1401_5 +# 1401| m1401_7(copy_constructor) = Store[#temp1401:13] : &:r1401_2, r1401_4 +# 1401| r1401_8(glval) = FieldAddress[y] : r1401_2 +# 1401| r1401_9(int) = Load[?] : &:r1401_8, ~m1401_7 +# 1401| m1401_10(int) = Store[y] : &:r1401_1, r1401_9 +# 1402| v1402_1(void) = NoOp : +# 1391| v1391_5(void) = ReturnVoid : +# 1391| v1391_6(void) = AliasedUse : ~m1401_6 +# 1391| v1391_7(void) = ExitFunction : + +# 1404| void temporary_point() +# 1404| Block 0 +# 1404| v1404_1(void) = EnterFunction : +# 1404| m1404_2(unknown) = AliasedDefinition : +# 1404| m1404_3(unknown) = InitializeNonLocal : +# 1404| m1404_4(unknown) = Chi : total:m1404_2, partial:m1404_3 +# 1405| r1405_1(glval) = VariableAddress[p] : +# 1405| r1405_2(glval) = FunctionAddress[returnValue] : +# 1405| r1405_3(Point) = Call[returnValue] : func:r1405_2 +# 1405| m1405_4(unknown) = ^CallSideEffect : ~m1404_4 +# 1405| m1405_5(unknown) = Chi : total:m1404_4, partial:m1405_4 +# 1405| m1405_6(Point) = Store[p] : &:r1405_1, r1405_3 +# 1406| r1406_1(glval) = VariableAddress[rp] : +# 1406| r1406_2(glval) = VariableAddress[#temp1406:23] : +# 1406| r1406_3(glval) = FunctionAddress[returnValue] : +# 1406| r1406_4(Point) = Call[returnValue] : func:r1406_3 +# 1406| m1406_5(unknown) = ^CallSideEffect : ~m1405_5 +# 1406| m1406_6(unknown) = Chi : total:m1405_5, partial:m1406_5 +# 1406| m1406_7(Point) = Store[#temp1406:23] : &:r1406_2, r1406_4 +# 1406| r1406_8(glval) = Convert : r1406_2 +# 1406| r1406_9(Point &) = CopyValue : r1406_8 +# 1406| m1406_10(Point &) = Store[rp] : &:r1406_1, r1406_9 +# 1408| r1408_1(glval) = FunctionAddress[acceptRef] : +# 1408| r1408_2(glval) = VariableAddress[p] : +# 1408| r1408_3(glval) = Convert : r1408_2 +# 1408| r1408_4(Point &) = CopyValue : r1408_3 +# 1408| v1408_5(void) = Call[acceptRef] : func:r1408_1, 0:r1408_4 +# 1408| m1408_6(unknown) = ^CallSideEffect : ~m1406_6 +# 1408| m1408_7(unknown) = Chi : total:m1406_6, partial:m1408_6 +# 1408| v1408_8(void) = ^BufferReadSideEffect[0] : &:r1408_4, ~m1405_6 +# 1409| r1409_1(glval) = FunctionAddress[acceptValue] : +# 1409| r1409_2(glval) = VariableAddress[p] : +# 1409| r1409_3(Point) = Load[p] : &:r1409_2, m1405_6 +# 1409| v1409_4(void) = Call[acceptValue] : func:r1409_1, 0:r1409_3 +# 1409| m1409_5(unknown) = ^CallSideEffect : ~m1408_7 +# 1409| m1409_6(unknown) = Chi : total:m1408_7, partial:m1409_5 +# 1410| r1410_1(int) = Constant[0] : +# 1411| r1411_1(glval) = VariableAddress[y] : +# 1411| r1411_2(glval) = FunctionAddress[returnValue] : +# 1411| r1411_3(Point) = Call[returnValue] : func:r1411_2 +# 1411| m1411_4(unknown) = ^CallSideEffect : ~m1409_6 +# 1411| m1411_5(unknown) = Chi : total:m1409_6, partial:m1411_4 +# 1411| r1411_6(glval) = VariableAddress[#temp1411:13] : +# 1411| m1411_7(Point) = Store[#temp1411:13] : &:r1411_6, r1411_3 +# 1411| r1411_8(glval) = FieldAddress[y] : r1411_6 +# 1411| r1411_9(int) = Load[?] : &:r1411_8, ~m1411_7 +# 1411| m1411_10(int) = Store[y] : &:r1411_1, r1411_9 +# 1413| r1413_1(glval) = FunctionAddress[defaultConstruct] : +# 1413| r1413_2(Point) = Call[defaultConstruct] : func:r1413_1 +# 1413| m1413_3(unknown) = ^CallSideEffect : ~m1411_5 +# 1413| m1413_4(unknown) = Chi : total:m1411_5, partial:m1413_3 +# 1414| v1414_1(void) = NoOp : +# 1404| v1404_5(void) = ReturnVoid : +# 1404| v1404_6(void) = AliasedUse : ~m1413_4 +# 1404| v1404_7(void) = ExitFunction : + +# 1421| void temporary_unusual_fields() +# 1421| Block 0 +# 1421| v1421_1(void) = EnterFunction : +# 1421| m1421_2(unknown) = AliasedDefinition : +# 1421| m1421_3(unknown) = InitializeNonLocal : +# 1421| m1421_4(unknown) = Chi : total:m1421_2, partial:m1421_3 +# 1422| r1422_1(glval) = VariableAddress[rx] : +# 1422| r1422_2(glval) = FunctionAddress[returnValue] : +# 1422| r1422_3(UnusualFields) = Call[returnValue] : func:r1422_2 +# 1422| m1422_4(unknown) = ^CallSideEffect : ~m1421_4 +# 1422| m1422_5(unknown) = Chi : total:m1421_4, partial:m1422_4 +# 1422| r1422_6(glval) = VariableAddress[#temp1422:21] : +# 1422| m1422_7(UnusualFields) = Store[#temp1422:21] : &:r1422_6, r1422_3 +# 1422| r1422_8(glval) = FieldAddress[r] : r1422_6 +# 1422| r1422_9(int &) = Load[?] : &:r1422_8, ~m1422_7 +# 1422| r1422_10(glval) = CopyValue : r1422_9 +# 1422| r1422_11(glval) = Convert : r1422_10 +# 1422| r1422_12(int &) = CopyValue : r1422_11 +# 1422| m1422_13(int &) = Store[rx] : &:r1422_1, r1422_12 +# 1423| r1423_1(glval) = VariableAddress[x] : +# 1423| r1423_2(glval) = FunctionAddress[returnValue] : +# 1423| r1423_3(UnusualFields) = Call[returnValue] : func:r1423_2 +# 1423| m1423_4(unknown) = ^CallSideEffect : ~m1422_5 +# 1423| m1423_5(unknown) = Chi : total:m1422_5, partial:m1423_4 +# 1423| r1423_6(glval) = VariableAddress[#temp1423:13] : +# 1423| m1423_7(UnusualFields) = Store[#temp1423:13] : &:r1423_6, r1423_3 +# 1423| r1423_8(glval) = FieldAddress[r] : r1423_6 +# 1423| r1423_9(int &) = Load[?] : &:r1423_8, ~m1423_7 +# 1423| r1423_10(int) = Load[?] : &:r1423_9, ~m1423_5 +# 1423| m1423_11(int) = Store[x] : &:r1423_1, r1423_10 +# 1425| r1425_1(glval) = VariableAddress[rf] : +# 1425| r1425_2(glval) = FunctionAddress[returnValue] : +# 1425| r1425_3(UnusualFields) = Call[returnValue] : func:r1425_2 +# 1425| m1425_4(unknown) = ^CallSideEffect : ~m1423_5 +# 1425| m1425_5(unknown) = Chi : total:m1423_5, partial:m1425_4 +# 1425| r1425_6(glval) = VariableAddress[#temp1425:23] : +# 1425| m1425_7(UnusualFields) = Store[#temp1425:23] : &:r1425_6, r1425_3 +# 1425| r1425_8(glval) = FieldAddress[a] : r1425_6 +# 1425| r1425_9(float *) = Convert : r1425_8 +# 1425| r1425_10(int) = Constant[3] : +# 1425| r1425_11(glval) = PointerAdd[4] : r1425_9, r1425_10 +# 1425| r1425_12(glval) = Convert : r1425_11 +# 1425| r1425_13(float &) = CopyValue : r1425_12 +# 1425| m1425_14(float &) = Store[rf] : &:r1425_1, r1425_13 +# 1426| r1426_1(glval) = VariableAddress[f] : +# 1426| r1426_2(glval) = FunctionAddress[returnValue] : +# 1426| r1426_3(UnusualFields) = Call[returnValue] : func:r1426_2 +# 1426| m1426_4(unknown) = ^CallSideEffect : ~m1425_5 +# 1426| m1426_5(unknown) = Chi : total:m1425_5, partial:m1426_4 +# 1426| r1426_6(glval) = VariableAddress[#temp1426:15] : +# 1426| m1426_7(UnusualFields) = Store[#temp1426:15] : &:r1426_6, r1426_3 +# 1426| r1426_8(glval) = FieldAddress[a] : r1426_6 +# 1426| r1426_9(float *) = Convert : r1426_8 +# 1426| r1426_10(int) = Constant[5] : +# 1426| r1426_11(glval) = PointerAdd[4] : r1426_9, r1426_10 +# 1426| r1426_12(float) = Load[?] : &:r1426_11, ~m1426_7 +# 1426| m1426_13(float) = Store[f] : &:r1426_1, r1426_12 +# 1427| v1427_1(void) = NoOp : +# 1421| v1421_5(void) = ReturnVoid : +# 1421| v1421_6(void) = AliasedUse : ~m1426_5 +# 1421| v1421_7(void) = ExitFunction : + +# 1443| void temporary_hierarchy() +# 1443| Block 0 +# 1443| v1443_1(void) = EnterFunction : +# 1443| m1443_2(unknown) = AliasedDefinition : +# 1443| m1443_3(unknown) = InitializeNonLocal : +# 1443| m1443_4(unknown) = Chi : total:m1443_2, partial:m1443_3 +# 1444| r1444_1(glval) = VariableAddress[b] : +#-----| r0_1(glval) = VariableAddress[#temp0:0] : +# 1444| r1444_2(glval) = FunctionAddress[returnValue] : +# 1444| r1444_3(POD_Middle) = Call[returnValue] : func:r1444_2 +# 1444| m1444_4(unknown) = ^CallSideEffect : ~m1443_4 +# 1444| m1444_5(unknown) = Chi : total:m1443_4, partial:m1444_4 +# 1444| m1444_6(POD_Middle) = Store[#temp0:0] : &:r0_1, r1444_3 +#-----| r0_2(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_1 +#-----| r0_3(POD_Base) = Load[?] : &:r0_2, ~m1444_6 +#-----| m0_4(POD_Base) = Store[b] : &:r1444_1, r0_3 +# 1445| r1445_1(glval) = VariableAddress[#temp1445:9] : +# 1445| r1445_2(glval) = FunctionAddress[returnValue] : +# 1445| r1445_3(POD_Derived) = Call[returnValue] : func:r1445_2 +# 1445| m1445_4(unknown) = ^CallSideEffect : ~m1444_5 +# 1445| m1445_5(unknown) = Chi : total:m1444_5, partial:m1445_4 +# 1445| m1445_6(POD_Derived) = Store[#temp1445:9] : &:r1445_1, r1445_3 +# 1445| r1445_7(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r1445_1 +# 1445| r1445_8(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r1445_7 +# 1445| r1445_9(POD_Base) = Load[?] : &:r1445_8, ~m1445_6 +# 1445| r1445_10(glval) = VariableAddress[b] : +# 1445| m1445_11(POD_Base) = Store[b] : &:r1445_10, r1445_9 +# 1446| r1446_1(glval) = VariableAddress[x] : +#-----| r0_5(glval) = VariableAddress[#temp0:0] : +# 1446| r1446_2(glval) = FunctionAddress[returnValue] : +# 1446| r1446_3(POD_Derived) = Call[returnValue] : func:r1446_2 +# 1446| m1446_4(unknown) = ^CallSideEffect : ~m1445_5 +# 1446| m1446_5(unknown) = Chi : total:m1445_5, partial:m1446_4 +# 1446| m1446_6(POD_Derived) = Store[#temp0:0] : &:r0_5, r1446_3 +#-----| r0_6(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_5 +#-----| r0_7(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_6 +# 1446| r1446_7(glval) = FieldAddress[x] : r0_7 +# 1446| r1446_8(int) = Load[?] : &:r1446_7, ~m1446_6 +# 1446| m1446_9(int) = Store[x] : &:r1446_1, r1446_8 +# 1447| r1447_1(glval) = VariableAddress[f] : +#-----| r0_8(glval) = VariableAddress[#temp0:0] : +# 1447| r1447_2(glval) = FunctionAddress[returnValue] : +# 1447| r1447_3(POD_Derived) = Call[returnValue] : func:r1447_2 +# 1447| m1447_4(unknown) = ^CallSideEffect : ~m1446_5 +# 1447| m1447_5(unknown) = Chi : total:m1446_5, partial:m1447_4 +# 1447| m1447_6(POD_Derived) = Store[#temp0:0] : &:r0_8, r1447_3 +#-----| r0_9(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_8 +#-----| r0_10(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_9 +#-----| r0_11(glval) = Convert : r0_10 +# 1447| r1447_7(glval) = FunctionAddress[f] : +# 1447| r1447_8(float) = Call[f] : func:r1447_7, this:r0_11 +# 1447| m1447_9(unknown) = ^CallSideEffect : ~m1447_5 +# 1447| m1447_10(unknown) = Chi : total:m1447_5, partial:m1447_9 +#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_11, ~m1447_6 +# 1447| m1447_11(float) = Store[f] : &:r1447_1, r1447_8 +# 1448| v1448_1(void) = NoOp : +# 1443| v1443_5(void) = ReturnVoid : +# 1443| v1443_6(void) = AliasedUse : ~m1447_10 +# 1443| v1443_7(void) = ExitFunction : + +# 1451| void Inheritance_Test_B::~Inheritance_Test_B() +# 1451| Block 0 +# 1451| v1451_1(void) = EnterFunction : +# 1451| m1451_2(unknown) = AliasedDefinition : +# 1451| m1451_3(unknown) = InitializeNonLocal : +# 1451| m1451_4(unknown) = Chi : total:m1451_2, partial:m1451_3 +# 1451| r1451_5(glval) = VariableAddress[#this] : +# 1451| m1451_6(glval) = InitializeParameter[#this] : &:r1451_5 +# 1451| r1451_7(glval) = Load[#this] : &:r1451_5, m1451_6 +# 1451| m1451_8(Inheritance_Test_B) = InitializeIndirection[#this] : &:r1451_7 +# 1451| v1451_9(void) = NoOp : +# 1451| v1451_10(void) = ReturnIndirection[#this] : &:r1451_7, m1451_8 +# 1451| v1451_11(void) = ReturnVoid : +# 1451| v1451_12(void) = AliasedUse : m1451_3 +# 1451| v1451_13(void) = ExitFunction : + +# 1457| void Inheritance_Test_A::Inheritance_Test_A() +# 1457| Block 0 +# 1457| v1457_1(void) = EnterFunction : +# 1457| m1457_2(unknown) = AliasedDefinition : +# 1457| m1457_3(unknown) = InitializeNonLocal : +# 1457| m1457_4(unknown) = Chi : total:m1457_2, partial:m1457_3 +# 1457| r1457_5(glval) = VariableAddress[#this] : +# 1457| m1457_6(glval) = InitializeParameter[#this] : &:r1457_5 +# 1457| r1457_7(glval) = Load[#this] : &:r1457_5, m1457_6 +# 1457| m1457_8(Inheritance_Test_A) = InitializeIndirection[#this] : &:r1457_7 +# 1457| r1457_9(glval) = FieldAddress[x] : m1457_6 +# 1457| r1457_10(int) = Constant[42] : +# 1457| m1457_11(int) = Store[?] : &:r1457_9, r1457_10 +# 1457| m1457_12(unknown) = Chi : total:m1457_8, partial:m1457_11 +# 1458| r1458_1(int) = Constant[3] : +# 1458| r1458_2(glval) = VariableAddress[#this] : +# 1458| r1458_3(Inheritance_Test_A *) = Load[#this] : &:r1458_2, m1457_6 +# 1458| r1458_4(glval) = FieldAddress[y] : r1458_3 +# 1458| m1458_5(int) = Store[?] : &:r1458_4, r1458_1 +# 1458| m1458_6(unknown) = Chi : total:m1457_12, partial:m1458_5 +# 1459| v1459_1(void) = NoOp : +# 1457| v1457_13(void) = ReturnIndirection[#this] : &:r1457_7, m1458_6 +# 1457| v1457_14(void) = ReturnVoid : +# 1457| v1457_15(void) = AliasedUse : m1457_3 +# 1457| v1457_16(void) = ExitFunction : + +# 1462| void array_structured_binding() +# 1462| Block 0 +# 1462| v1462_1(void) = EnterFunction : +# 1462| m1462_2(unknown) = AliasedDefinition : +# 1462| m1462_3(unknown) = InitializeNonLocal : +# 1462| m1462_4(unknown) = Chi : total:m1462_2, partial:m1462_3 +# 1463| r1463_1(glval) = VariableAddress[xs] : +# 1463| m1463_2(int[2]) = Uninitialized[xs] : &:r1463_1 +# 1463| r1463_3(int) = Constant[0] : +# 1463| r1463_4(glval) = PointerAdd[4] : r1463_1, r1463_3 +# 1463| r1463_5(int) = Constant[1] : +# 1463| m1463_6(int) = Store[?] : &:r1463_4, r1463_5 +# 1463| m1463_7(int[2]) = Chi : total:m1463_2, partial:m1463_6 +# 1463| r1463_8(int) = Constant[1] : +# 1463| r1463_9(glval) = PointerAdd[4] : r1463_1, r1463_8 +# 1463| r1463_10(int) = Constant[2] : +# 1463| m1463_11(int) = Store[?] : &:r1463_9, r1463_10 +# 1463| m1463_12(int[2]) = Chi : total:m1463_7, partial:m1463_11 +# 1466| r1466_1(glval) = VariableAddress[(unnamed local variable)] : +# 1466| r1466_2(glval) = VariableAddress[xs] : +# 1466| r1466_3(int(&)[2]) = CopyValue : r1466_2 +# 1466| m1466_4(int(&)[2]) = Store[(unnamed local variable)] : &:r1466_1, r1466_3 +# 1466| r1466_5(glval) = VariableAddress[x0] : +#-----| r0_1(glval) = VariableAddress[(unnamed local variable)] : +#-----| r0_2(int(&)[2]) = Load[(unnamed local variable)] : &:r0_1, m1466_4 +#-----| r0_3(glval) = CopyValue : r0_2 +#-----| r0_4(int *) = Convert : r0_3 +#-----| r0_5(unsigned long) = Constant[0] : +#-----| r0_6(glval) = PointerAdd[4] : r0_4, r0_5 +#-----| m0_7(int &) = Store[x0] : &:r1466_5, r0_6 +# 1466| r1466_6(glval) = VariableAddress[x1] : +#-----| r0_8(glval) = VariableAddress[(unnamed local variable)] : +#-----| r0_9(int(&)[2]) = Load[(unnamed local variable)] : &:r0_8, m1466_4 +#-----| r0_10(glval) = CopyValue : r0_9 +#-----| r0_11(int *) = Convert : r0_10 +#-----| r0_12(unsigned long) = Constant[1] : +#-----| r0_13(glval) = PointerAdd[4] : r0_11, r0_12 +#-----| m0_14(int &) = Store[x1] : &:r1466_6, r0_13 +# 1467| r1467_1(int) = Constant[3] : +# 1467| r1467_2(glval) = VariableAddress[x1] : +# 1467| r1467_3(int &) = Load[x1] : &:r1467_2, m0_14 +# 1467| m1467_4(int) = Store[?] : &:r1467_3, r1467_1 +# 1467| m1467_5(int[2]) = Chi : total:m1463_12, partial:m1467_4 +# 1468| r1468_1(glval) = VariableAddress[rx1] : +# 1468| r1468_2(glval) = VariableAddress[x1] : +# 1468| r1468_3(int &) = Load[x1] : &:r1468_2, m0_14 +# 1468| r1468_4(int &) = CopyValue : r1468_3 +# 1468| m1468_5(int &) = Store[rx1] : &:r1468_1, r1468_4 +# 1469| r1469_1(glval) = VariableAddress[x] : +# 1469| r1469_2(glval) = VariableAddress[x1] : +# 1469| r1469_3(int &) = Load[x1] : &:r1469_2, m0_14 +# 1469| r1469_4(int) = Load[?] : &:r1469_3, m1467_4 +# 1469| m1469_5(int) = Store[x] : &:r1469_1, r1469_4 +# 1473| r1473_1(glval) = VariableAddress[unnamed_local_variable] : +# 1473| r1473_2(glval) = VariableAddress[xs] : +# 1473| r1473_3(int(&)[2]) = CopyValue : r1473_2 +# 1473| m1473_4(int(&)[2]) = Store[unnamed_local_variable] : &:r1473_1, r1473_3 +# 1474| r1474_1(glval) = VariableAddress[x0] : +# 1474| r1474_2(glval) = VariableAddress[unnamed_local_variable] : +# 1474| r1474_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1474_2, m1473_4 +# 1474| r1474_4(glval) = CopyValue : r1474_3 +# 1474| r1474_5(int *) = Convert : r1474_4 +# 1474| r1474_6(int) = Constant[0] : +# 1474| r1474_7(glval) = PointerAdd[4] : r1474_5, r1474_6 +# 1474| r1474_8(int &) = CopyValue : r1474_7 +# 1474| m1474_9(int &) = Store[x0] : &:r1474_1, r1474_8 +# 1475| r1475_1(glval) = VariableAddress[x1] : +# 1475| r1475_2(glval) = VariableAddress[unnamed_local_variable] : +# 1475| r1475_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1475_2, m1473_4 +# 1475| r1475_4(glval) = CopyValue : r1475_3 +# 1475| r1475_5(int *) = Convert : r1475_4 +# 1475| r1475_6(int) = Constant[1] : +# 1475| r1475_7(glval) = PointerAdd[4] : r1475_5, r1475_6 +# 1475| r1475_8(int &) = CopyValue : r1475_7 +# 1475| m1475_9(int &) = Store[x1] : &:r1475_1, r1475_8 +# 1476| r1476_1(int) = Constant[3] : +# 1476| r1476_2(glval) = VariableAddress[x1] : +# 1476| r1476_3(int &) = Load[x1] : &:r1476_2, m1475_9 +# 1476| r1476_4(glval) = CopyValue : r1476_3 +# 1476| m1476_5(int) = Store[?] : &:r1476_4, r1476_1 +# 1476| m1476_6(int[2]) = Chi : total:m1467_5, partial:m1476_5 +# 1477| r1477_1(glval) = VariableAddress[rx1] : +# 1477| r1477_2(glval) = VariableAddress[x1] : +# 1477| r1477_3(int &) = Load[x1] : &:r1477_2, m1475_9 +# 1477| r1477_4(glval) = CopyValue : r1477_3 +# 1477| r1477_5(int &) = CopyValue : r1477_4 +# 1477| m1477_6(int &) = Store[rx1] : &:r1477_1, r1477_5 +# 1478| r1478_1(glval) = VariableAddress[x] : +# 1478| r1478_2(glval) = VariableAddress[x1] : +# 1478| r1478_3(int &) = Load[x1] : &:r1478_2, m1475_9 +# 1478| r1478_4(int) = Load[?] : &:r1478_3, m1476_5 +# 1478| m1478_5(int) = Store[x] : &:r1478_1, r1478_4 +# 1480| v1480_1(void) = NoOp : +# 1462| v1462_5(void) = ReturnVoid : +# 1462| v1462_6(void) = AliasedUse : m1462_3 +# 1462| v1462_7(void) = ExitFunction : + +# 1482| void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() +# 1482| Block 0 +# 1482| v1482_1(void) = EnterFunction : +# 1482| m1482_2(unknown) = AliasedDefinition : +# 1482| m1482_3(unknown) = InitializeNonLocal : +# 1482| m1482_4(unknown) = Chi : total:m1482_2, partial:m1482_3 +# 1482| r1482_5(glval) = VariableAddress[#this] : +# 1482| m1482_6(glval) = InitializeParameter[#this] : &:r1482_5 +# 1482| r1482_7(glval) = Load[#this] : &:r1482_5, m1482_6 +# 1482| m1482_8(StructuredBindingDataMemberMemberStruct) = InitializeIndirection[#this] : &:r1482_7 +# 1482| v1482_9(void) = NoOp : +# 1482| v1482_10(void) = ReturnIndirection[#this] : &:r1482_7, m1482_8 +# 1482| v1482_11(void) = ReturnVoid : +# 1482| v1482_12(void) = AliasedUse : m1482_3 +# 1482| v1482_13(void) = ExitFunction : + +# 1486| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() +# 1486| Block 0 +# 1486| v1486_1(void) = EnterFunction : +# 1486| m1486_2(unknown) = AliasedDefinition : +# 1486| m1486_3(unknown) = InitializeNonLocal : +# 1486| m1486_4(unknown) = Chi : total:m1486_2, partial:m1486_3 +# 1486| r1486_5(glval) = VariableAddress[#this] : +# 1486| m1486_6(glval) = InitializeParameter[#this] : &:r1486_5 +# 1486| r1486_7(glval) = Load[#this] : &:r1486_5, m1486_6 +# 1486| m1486_8(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1486_7 +# 1486| v1486_9(void) = NoOp : +# 1486| v1486_10(void) = ReturnIndirection[#this] : &:r1486_7, m1486_8 +# 1486| v1486_11(void) = ReturnVoid : +# 1486| v1486_12(void) = AliasedUse : m1486_3 +# 1486| v1486_13(void) = ExitFunction : + +# 1486| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) +# 1486| Block 0 +# 1486| v1486_1(void) = EnterFunction : +# 1486| m1486_2(unknown) = AliasedDefinition : +# 1486| m1486_3(unknown) = InitializeNonLocal : +# 1486| m1486_4(unknown) = Chi : total:m1486_2, partial:m1486_3 +# 1486| r1486_5(glval) = VariableAddress[#this] : +# 1486| m1486_6(glval) = InitializeParameter[#this] : &:r1486_5 +# 1486| r1486_7(glval) = Load[#this] : &:r1486_5, m1486_6 +# 1486| m1486_8(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1486_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(StructuredBindingDataMemberStruct &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 1486| r1486_9(glval) = FieldAddress[i] : m1486_6 +# 1486| r1486_10(glval) = VariableAddress[(unnamed parameter 0)] : +# 1486| r1486_11(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1486_10, m0_2 +# 1486| r1486_12(glval) = CopyValue : r1486_11 +# 1486| r1486_13(glval) = FieldAddress[i] : r1486_12 +# 1486| r1486_14(int) = Load[?] : &:r1486_13, ~m0_4 +# 1486| m1486_15(int) = Store[?] : &:r1486_9, r1486_14 +# 1486| m1486_16(unknown) = Chi : total:m1486_8, partial:m1486_15 +# 1486| r1486_17(glval) = FieldAddress[d] : m1486_6 +# 1486| r1486_18(glval) = VariableAddress[(unnamed parameter 0)] : +# 1486| r1486_19(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1486_18, m0_2 +# 1486| r1486_20(glval) = CopyValue : r1486_19 +# 1486| r1486_21(glval) = FieldAddress[d] : r1486_20 +# 1486| r1486_22(double) = Load[?] : &:r1486_21, ~m0_4 +# 1486| m1486_23(double) = Store[?] : &:r1486_17, r1486_22 +# 1486| m1486_24(unknown) = Chi : total:m1486_16, partial:m1486_23 +# 1486| r1486_25(glval) = FieldAddress[b] : m1486_6 +# 1486| r1486_26(glval) = VariableAddress[(unnamed parameter 0)] : +# 1486| r1486_27(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1486_26, m0_2 +# 1486| r1486_28(glval) = CopyValue : r1486_27 +# 1486| r1486_29(glval) = FieldAddress[b] : r1486_28 +# 1486| r1486_30(unsigned int) = Load[?] : &:r1486_29, ~m0_4 +# 1486| m1486_31(unsigned int) = Store[?] : &:r1486_25, r1486_30 +# 1486| m1486_32(unknown) = Chi : total:m1486_24, partial:m1486_31 +# 1486| r1486_33(glval) = FieldAddress[r] : m1486_6 +# 1486| r1486_34(glval) = VariableAddress[(unnamed parameter 0)] : +# 1486| r1486_35(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1486_34, m0_2 +# 1486| r1486_36(glval) = CopyValue : r1486_35 +# 1486| r1486_37(glval) = FieldAddress[r] : r1486_36 +# 1486| r1486_38(int &) = Load[?] : &:r1486_37, ~m0_4 +# 1486| m1486_39(int &) = Store[?] : &:r1486_33, r1486_38 +# 1486| m1486_40(unknown) = Chi : total:m1486_32, partial:m1486_39 +# 1486| r1486_41(glval) = FieldAddress[p] : m1486_6 +# 1486| r1486_42(glval) = VariableAddress[(unnamed parameter 0)] : +# 1486| r1486_43(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1486_42, m0_2 +# 1486| r1486_44(glval) = CopyValue : r1486_43 +# 1486| r1486_45(glval) = FieldAddress[p] : r1486_44 +# 1486| r1486_46(int *) = Load[?] : &:r1486_45, ~m0_4 +# 1486| m1486_47(int *) = Store[?] : &:r1486_41, r1486_46 +# 1486| m1486_48(unknown) = Chi : total:m1486_40, partial:m1486_47 +# 1486| r1486_49(glval) = FieldAddress[xs] : m1486_6 +# 1486| r1486_50(glval) = VariableAddress[(unnamed parameter 0)] : +# 1486| r1486_51(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1486_50, m0_2 +# 1486| r1486_52(glval) = CopyValue : r1486_51 +# 1486| r1486_53(glval) = FieldAddress[xs] : r1486_52 +# 1486| r1486_54(int[2]) = Load[?] : &:r1486_53, ~m0_4 +# 1486| m1486_55(int[2]) = Store[?] : &:r1486_49, r1486_54 +# 1486| m1486_56(unknown) = Chi : total:m1486_48, partial:m1486_55 +# 1486| r1486_57(glval) = FieldAddress[r_alt] : m1486_6 +# 1486| r1486_58(glval) = VariableAddress[(unnamed parameter 0)] : +# 1486| r1486_59(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1486_58, m0_2 +# 1486| r1486_60(glval) = CopyValue : r1486_59 +# 1486| r1486_61(glval) = FieldAddress[r_alt] : r1486_60 +# 1486| r1486_62(int &) = Load[?] : &:r1486_61, ~m0_4 +# 1486| m1486_63(int &) = Store[?] : &:r1486_57, r1486_62 +# 1486| m1486_64(unknown) = Chi : total:m1486_56, partial:m1486_63 +# 1486| r1486_65(glval) = FieldAddress[m] : m1486_6 +# 1486| r1486_66(glval) = VariableAddress[(unnamed parameter 0)] : +# 1486| r1486_67(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1486_66, m0_2 +# 1486| r1486_68(glval) = CopyValue : r1486_67 +# 1486| r1486_69(glval) = FieldAddress[m] : r1486_68 +# 1486| r1486_70(StructuredBindingDataMemberMemberStruct) = Load[?] : &:r1486_69, ~m0_4 +# 1486| m1486_71(StructuredBindingDataMemberMemberStruct) = Store[?] : &:r1486_65, r1486_70 +# 1486| m1486_72(unknown) = Chi : total:m1486_64, partial:m1486_71 +# 1486| v1486_73(void) = NoOp : +# 1486| v1486_74(void) = ReturnIndirection[#this] : &:r1486_7, m1486_72 +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 1486| v1486_75(void) = ReturnVoid : +# 1486| v1486_76(void) = AliasedUse : m1486_3 +# 1486| v1486_77(void) = ExitFunction : + +# 1499| void data_member_structured_binding() +# 1499| Block 0 +# 1499| v1499_1(void) = EnterFunction : +# 1499| m1499_2(unknown) = AliasedDefinition : +# 1499| m1499_3(unknown) = InitializeNonLocal : +# 1499| m1499_4(unknown) = Chi : total:m1499_2, partial:m1499_3 +# 1500| r1500_1(glval) = VariableAddress[s] : +# 1500| m1500_2(StructuredBindingDataMemberStruct) = Uninitialized[s] : &:r1500_1 +# 1500| r1500_3(glval) = FunctionAddress[StructuredBindingDataMemberStruct] : +# 1500| v1500_4(void) = Call[StructuredBindingDataMemberStruct] : func:r1500_3, this:r1500_1 +# 1500| m1500_5(unknown) = ^CallSideEffect : ~m1499_4 +# 1500| m1500_6(unknown) = Chi : total:m1499_4, partial:m1500_5 +# 1500| m1500_7(StructuredBindingDataMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1500_1 +# 1500| m1500_8(StructuredBindingDataMemberStruct) = Chi : total:m1500_2, partial:m1500_7 +# 1503| r1503_1(glval) = VariableAddress[(unnamed local variable)] : +# 1503| r1503_2(glval) = VariableAddress[s] : +# 1503| r1503_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1503_2, m1500_8 +# 1503| m1503_4(StructuredBindingDataMemberStruct) = Store[(unnamed local variable)] : &:r1503_1, r1503_3 +# 1503| r1503_5(glval) = VariableAddress[i] : +# 1503| r1503_6(glval) = VariableAddress[(unnamed local variable)] : +# 1503| r1503_7(glval) = FieldAddress[i] : r1503_6 +# 1503| m1503_8(int &) = Store[i] : &:r1503_5, r1503_7 +# 1503| r1503_9(glval) = VariableAddress[d] : +# 1503| r1503_10(glval) = VariableAddress[(unnamed local variable)] : +# 1503| r1503_11(glval) = FieldAddress[d] : r1503_10 +# 1503| m1503_12(double &) = Store[d] : &:r1503_9, r1503_11 +# 1503| r1503_13(glval) = VariableAddress[b] : +# 1503| r1503_14(glval) = VariableAddress[(unnamed local variable)] : +# 1503| r1503_15(glval) = FieldAddress[b] : r1503_14 +# 1503| m1503_16(unsigned int &) = Store[b] : &:r1503_13, r1503_15 +# 1503| r1503_17(glval) = VariableAddress[r] : +# 1503| r1503_18(glval) = VariableAddress[(unnamed local variable)] : +# 1503| r1503_19(glval) = FieldAddress[r] : r1503_18 +# 1503| r1503_20(int &) = Load[?] : &:r1503_19, ~m1503_4 +# 1503| r1503_21(glval) = CopyValue : r1503_20 +# 1503| m1503_22(int &) = Store[r] : &:r1503_17, r1503_21 +# 1503| r1503_23(glval) = VariableAddress[p] : +# 1503| r1503_24(glval) = VariableAddress[(unnamed local variable)] : +# 1503| r1503_25(glval) = FieldAddress[p] : r1503_24 +# 1503| m1503_26(int *&) = Store[p] : &:r1503_23, r1503_25 +# 1503| r1503_27(glval) = VariableAddress[xs] : +# 1503| r1503_28(glval) = VariableAddress[(unnamed local variable)] : +# 1503| r1503_29(glval) = FieldAddress[xs] : r1503_28 +# 1503| m1503_30(int(&)[2]) = Store[xs] : &:r1503_27, r1503_29 +# 1503| r1503_31(glval) = VariableAddress[r_alt] : +# 1503| r1503_32(glval) = VariableAddress[(unnamed local variable)] : +# 1503| r1503_33(glval) = FieldAddress[r_alt] : r1503_32 +# 1503| r1503_34(int &) = Load[?] : &:r1503_33, ~m1503_4 +# 1503| r1503_35(glval) = CopyValue : r1503_34 +# 1503| m1503_36(int &) = Store[r_alt] : &:r1503_31, r1503_35 +# 1503| r1503_37(glval) = VariableAddress[m] : +# 1503| r1503_38(glval) = VariableAddress[(unnamed local variable)] : +# 1503| r1503_39(glval) = FieldAddress[m] : r1503_38 +# 1503| m1503_40(StructuredBindingDataMemberMemberStruct &) = Store[m] : &:r1503_37, r1503_39 +# 1504| r1504_1(double) = Constant[4.0] : +# 1504| r1504_2(glval) = VariableAddress[d] : +# 1504| r1504_3(double &) = Load[d] : &:r1504_2, m1503_12 +# 1504| m1504_4(double) = Store[?] : &:r1504_3, r1504_1 +# 1504| m1504_5(StructuredBindingDataMemberStruct) = Chi : total:m1503_4, partial:m1504_4 +# 1505| r1505_1(glval) = VariableAddress[rd] : +# 1505| r1505_2(glval) = VariableAddress[d] : +# 1505| r1505_3(double &) = Load[d] : &:r1505_2, m1503_12 +# 1505| r1505_4(double &) = CopyValue : r1505_3 +# 1505| m1505_5(double &) = Store[rd] : &:r1505_1, r1505_4 +# 1506| r1506_1(glval) = VariableAddress[v] : +# 1506| r1506_2(glval) = VariableAddress[i] : +# 1506| r1506_3(int &) = Load[i] : &:r1506_2, m1503_8 +# 1506| r1506_4(int) = Load[?] : &:r1506_3, ~m1503_4 +# 1506| m1506_5(int) = Store[v] : &:r1506_1, r1506_4 +# 1507| r1507_1(int) = Constant[5] : +# 1507| r1507_2(glval) = VariableAddress[r] : +# 1507| r1507_3(int &) = Load[r] : &:r1507_2, m1503_22 +# 1507| m1507_4(int) = Store[?] : &:r1507_3, r1507_1 +# 1507| m1507_5(unknown) = Chi : total:m1500_6, partial:m1507_4 +# 1508| r1508_1(int) = Constant[6] : +# 1508| r1508_2(glval) = VariableAddress[p] : +# 1508| r1508_3(int *&) = Load[p] : &:r1508_2, m1503_26 +# 1508| r1508_4(int *) = Load[?] : &:r1508_3, ~m1503_4 +# 1508| r1508_5(glval) = CopyValue : r1508_4 +# 1508| m1508_6(int) = Store[?] : &:r1508_5, r1508_1 +# 1508| m1508_7(unknown) = Chi : total:m1507_5, partial:m1508_6 +# 1509| r1509_1(glval) = VariableAddress[rr] : +# 1509| r1509_2(glval) = VariableAddress[r] : +# 1509| r1509_3(int &) = Load[r] : &:r1509_2, m1503_22 +# 1509| r1509_4(int &) = CopyValue : r1509_3 +# 1509| m1509_5(int &) = Store[rr] : &:r1509_1, r1509_4 +# 1510| r1510_1(glval) = VariableAddress[pr] : +# 1510| r1510_2(glval) = VariableAddress[r] : +# 1510| r1510_3(int &) = Load[r] : &:r1510_2, m1503_22 +# 1510| r1510_4(int *) = CopyValue : r1510_3 +# 1510| m1510_5(int *) = Store[pr] : &:r1510_1, r1510_4 +# 1511| r1511_1(glval) = VariableAddress[w] : +# 1511| r1511_2(glval) = VariableAddress[r] : +# 1511| r1511_3(int &) = Load[r] : &:r1511_2, m1503_22 +# 1511| r1511_4(int) = Load[?] : &:r1511_3, ~m1508_7 +# 1511| m1511_5(int) = Store[w] : &:r1511_1, r1511_4 +# 1515| r1515_1(glval) = VariableAddress[unnamed_local_variable] : +# 1515| r1515_2(glval) = VariableAddress[s] : +# 1515| r1515_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1515_2, m1500_8 +# 1515| m1515_4(StructuredBindingDataMemberStruct) = Store[unnamed_local_variable] : &:r1515_1, r1515_3 +# 1516| r1516_1(glval) = VariableAddress[i] : +# 1516| r1516_2(glval) = VariableAddress[unnamed_local_variable] : +# 1516| r1516_3(glval) = FieldAddress[i] : r1516_2 +# 1516| r1516_4(int &) = CopyValue : r1516_3 +# 1516| m1516_5(int &) = Store[i] : &:r1516_1, r1516_4 +# 1517| r1517_1(glval) = VariableAddress[d] : +# 1517| r1517_2(glval) = VariableAddress[unnamed_local_variable] : +# 1517| r1517_3(glval) = FieldAddress[d] : r1517_2 +# 1517| r1517_4(double &) = CopyValue : r1517_3 +# 1517| m1517_5(double &) = Store[d] : &:r1517_1, r1517_4 +# 1519| r1519_1(glval) = VariableAddress[r] : +# 1519| r1519_2(glval) = VariableAddress[unnamed_local_variable] : +# 1519| r1519_3(glval) = FieldAddress[r] : r1519_2 +# 1519| r1519_4(int &) = Load[?] : &:r1519_3, ~m1515_4 +# 1519| r1519_5(glval) = CopyValue : r1519_4 +# 1519| r1519_6(int &) = CopyValue : r1519_5 +# 1519| m1519_7(int &) = Store[r] : &:r1519_1, r1519_6 +# 1520| r1520_1(glval) = VariableAddress[p] : +# 1520| r1520_2(glval) = VariableAddress[unnamed_local_variable] : +# 1520| r1520_3(glval) = FieldAddress[p] : r1520_2 +# 1520| r1520_4(int *&) = CopyValue : r1520_3 +# 1520| m1520_5(int *&) = Store[p] : &:r1520_1, r1520_4 +# 1521| r1521_1(double) = Constant[4.0] : +# 1521| r1521_2(glval) = VariableAddress[d] : +# 1521| r1521_3(double &) = Load[d] : &:r1521_2, m1517_5 +# 1521| r1521_4(glval) = CopyValue : r1521_3 +# 1521| m1521_5(double) = Store[?] : &:r1521_4, r1521_1 +# 1521| m1521_6(StructuredBindingDataMemberStruct) = Chi : total:m1515_4, partial:m1521_5 +# 1522| r1522_1(glval) = VariableAddress[rd] : +# 1522| r1522_2(glval) = VariableAddress[d] : +# 1522| r1522_3(double &) = Load[d] : &:r1522_2, m1517_5 +# 1522| r1522_4(glval) = CopyValue : r1522_3 +# 1522| r1522_5(double &) = CopyValue : r1522_4 +# 1522| m1522_6(double &) = Store[rd] : &:r1522_1, r1522_5 +# 1523| r1523_1(glval) = VariableAddress[v] : +# 1523| r1523_2(glval) = VariableAddress[i] : +# 1523| r1523_3(int &) = Load[i] : &:r1523_2, m1516_5 +# 1523| r1523_4(int) = Load[?] : &:r1523_3, ~m1515_4 +# 1523| m1523_5(int) = Store[v] : &:r1523_1, r1523_4 +# 1524| r1524_1(int) = Constant[5] : +# 1524| r1524_2(glval) = VariableAddress[r] : +# 1524| r1524_3(int &) = Load[r] : &:r1524_2, m1519_7 +# 1524| r1524_4(glval) = CopyValue : r1524_3 +# 1524| m1524_5(int) = Store[?] : &:r1524_4, r1524_1 +# 1524| m1524_6(unknown) = Chi : total:m1508_7, partial:m1524_5 +# 1525| r1525_1(int) = Constant[6] : +# 1525| r1525_2(glval) = VariableAddress[p] : +# 1525| r1525_3(int *&) = Load[p] : &:r1525_2, m1520_5 +# 1525| r1525_4(int *) = Load[?] : &:r1525_3, ~m1515_4 +# 1525| r1525_5(glval) = CopyValue : r1525_4 +# 1525| m1525_6(int) = Store[?] : &:r1525_5, r1525_1 +# 1525| m1525_7(unknown) = Chi : total:m1524_6, partial:m1525_6 +# 1526| r1526_1(glval) = VariableAddress[rr] : +# 1526| r1526_2(glval) = VariableAddress[r] : +# 1526| r1526_3(int &) = Load[r] : &:r1526_2, m1519_7 +# 1526| r1526_4(glval) = CopyValue : r1526_3 +# 1526| r1526_5(int &) = CopyValue : r1526_4 +# 1526| m1526_6(int &) = Store[rr] : &:r1526_1, r1526_5 +# 1527| r1527_1(glval) = VariableAddress[pr] : +# 1527| r1527_2(glval) = VariableAddress[r] : +# 1527| r1527_3(int &) = Load[r] : &:r1527_2, m1519_7 +# 1527| r1527_4(glval) = CopyValue : r1527_3 +# 1527| r1527_5(int *) = CopyValue : r1527_4 +# 1527| m1527_6(int *) = Store[pr] : &:r1527_1, r1527_5 +# 1528| r1528_1(glval) = VariableAddress[w] : +# 1528| r1528_2(glval) = VariableAddress[r] : +# 1528| r1528_3(int &) = Load[r] : &:r1528_2, m1519_7 +# 1528| r1528_4(int) = Load[?] : &:r1528_3, ~m1525_7 +# 1528| m1528_5(int) = Store[w] : &:r1528_1, r1528_4 +# 1530| v1530_1(void) = NoOp : +# 1499| v1499_5(void) = ReturnVoid : +# 1499| v1499_6(void) = AliasedUse : ~m1525_7 +# 1499| v1499_7(void) = ExitFunction : + +# 1539| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() +# 1539| Block 0 +# 1539| v1539_1(void) = EnterFunction : +# 1539| m1539_2(unknown) = AliasedDefinition : +# 1539| m1539_3(unknown) = InitializeNonLocal : +# 1539| m1539_4(unknown) = Chi : total:m1539_2, partial:m1539_3 +# 1539| r1539_5(glval) = VariableAddress[#this] : +# 1539| m1539_6(glval) = InitializeParameter[#this] : &:r1539_5 +# 1539| r1539_7(glval) = Load[#this] : &:r1539_5, m1539_6 +# 1539| m1539_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1539_7 +# 1539| v1539_9(void) = NoOp : +# 1539| v1539_10(void) = ReturnIndirection[#this] : &:r1539_7, m1539_8 +# 1539| v1539_11(void) = ReturnVoid : +# 1539| v1539_12(void) = AliasedUse : m1539_3 +# 1539| v1539_13(void) = ExitFunction : + +# 1539| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) +# 1539| Block 0 +# 1539| v1539_1(void) = EnterFunction : +# 1539| m1539_2(unknown) = AliasedDefinition : +# 1539| m1539_3(unknown) = InitializeNonLocal : +# 1539| m1539_4(unknown) = Chi : total:m1539_2, partial:m1539_3 +# 1539| r1539_5(glval) = VariableAddress[#this] : +# 1539| m1539_6(glval) = InitializeParameter[#this] : &:r1539_5 +# 1539| r1539_7(glval) = Load[#this] : &:r1539_5, m1539_6 +# 1539| m1539_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1539_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(StructuredBindingTupleRefGet &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 1539| r1539_9(glval) = FieldAddress[i] : m1539_6 +# 1539| r1539_10(glval) = VariableAddress[(unnamed parameter 0)] : +# 1539| r1539_11(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1539_10, m0_2 +# 1539| r1539_12(glval) = CopyValue : r1539_11 +# 1539| r1539_13(glval) = FieldAddress[i] : r1539_12 +# 1539| r1539_14(int) = Load[?] : &:r1539_13, ~m0_4 +# 1539| m1539_15(int) = Store[?] : &:r1539_9, r1539_14 +# 1539| m1539_16(unknown) = Chi : total:m1539_8, partial:m1539_15 +# 1539| r1539_17(glval) = FieldAddress[d] : m1539_6 +# 1539| r1539_18(glval) = VariableAddress[(unnamed parameter 0)] : +# 1539| r1539_19(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1539_18, m0_2 +# 1539| r1539_20(glval) = CopyValue : r1539_19 +# 1539| r1539_21(glval) = FieldAddress[d] : r1539_20 +# 1539| r1539_22(double) = Load[?] : &:r1539_21, ~m0_4 +# 1539| m1539_23(double) = Store[?] : &:r1539_17, r1539_22 +# 1539| m1539_24(unknown) = Chi : total:m1539_16, partial:m1539_23 +# 1539| r1539_25(glval) = FieldAddress[r] : m1539_6 +# 1539| r1539_26(glval) = VariableAddress[(unnamed parameter 0)] : +# 1539| r1539_27(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1539_26, m0_2 +# 1539| r1539_28(glval) = CopyValue : r1539_27 +# 1539| r1539_29(glval) = FieldAddress[r] : r1539_28 +# 1539| r1539_30(int &) = Load[?] : &:r1539_29, ~m0_4 +# 1539| m1539_31(int &) = Store[?] : &:r1539_25, r1539_30 +# 1539| m1539_32(unknown) = Chi : total:m1539_24, partial:m1539_31 +# 1539| v1539_33(void) = NoOp : +# 1539| v1539_34(void) = ReturnIndirection[#this] : &:r1539_7, m1539_32 +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 1539| v1539_35(void) = ReturnVoid : +# 1539| v1539_36(void) = AliasedUse : m1539_3 +# 1539| v1539_37(void) = ExitFunction : + +# 1567| std::tuple_element::type& StructuredBindingTupleRefGet::get() +# 1567| Block 0 +# 1567| v1567_1(void) = EnterFunction : +# 1567| m1567_2(unknown) = AliasedDefinition : +# 1567| m1567_3(unknown) = InitializeNonLocal : +# 1567| m1567_4(unknown) = Chi : total:m1567_2, partial:m1567_3 +# 1567| r1567_5(glval) = VariableAddress[#this] : +# 1567| m1567_6(glval) = InitializeParameter[#this] : &:r1567_5 +# 1567| r1567_7(glval) = Load[#this] : &:r1567_5, m1567_6 +# 1567| m1567_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1567_7 +# 1568| r1568_1(glval) = VariableAddress[#return] : +# 1568| r1568_2(glval) = VariableAddress[#this] : +# 1568| r1568_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1568_2, m1567_6 +# 1568| r1568_4(glval) = FieldAddress[i] : r1568_3 +#-----| r0_1(int &) = CopyValue : r1568_4 +#-----| m0_2(int &) = Store[#return] : &:r1568_1, r0_1 +# 1567| v1567_9(void) = ReturnIndirection[#this] : &:r1567_7, m1567_8 +# 1567| r1567_10(glval) = VariableAddress[#return] : +# 1567| v1567_11(void) = ReturnValue : &:r1567_10, m0_2 +# 1567| v1567_12(void) = AliasedUse : m1567_3 +# 1567| v1567_13(void) = ExitFunction : + +# 1571| std::tuple_element::type& StructuredBindingTupleRefGet::get() +# 1571| Block 0 +# 1571| v1571_1(void) = EnterFunction : +# 1571| m1571_2(unknown) = AliasedDefinition : +# 1571| m1571_3(unknown) = InitializeNonLocal : +# 1571| m1571_4(unknown) = Chi : total:m1571_2, partial:m1571_3 +# 1571| r1571_5(glval) = VariableAddress[#this] : +# 1571| m1571_6(glval) = InitializeParameter[#this] : &:r1571_5 +# 1571| r1571_7(glval) = Load[#this] : &:r1571_5, m1571_6 +# 1571| m1571_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1571_7 +# 1572| r1572_1(glval) = VariableAddress[#return] : +# 1572| r1572_2(glval) = VariableAddress[#this] : +# 1572| r1572_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1572_2, m1571_6 +# 1572| r1572_4(glval) = FieldAddress[d] : r1572_3 +#-----| r0_1(double &) = CopyValue : r1572_4 +#-----| m0_2(double &) = Store[#return] : &:r1572_1, r0_1 +# 1571| v1571_9(void) = ReturnIndirection[#this] : &:r1571_7, m1571_8 +# 1571| r1571_10(glval) = VariableAddress[#return] : +# 1571| v1571_11(void) = ReturnValue : &:r1571_10, m0_2 +# 1571| v1571_12(void) = AliasedUse : m1571_3 +# 1571| v1571_13(void) = ExitFunction : + +# 1575| std::tuple_element::type StructuredBindingTupleRefGet::get() +# 1575| Block 0 +# 1575| v1575_1(void) = EnterFunction : +# 1575| m1575_2(unknown) = AliasedDefinition : +# 1575| m1575_3(unknown) = InitializeNonLocal : +# 1575| m1575_4(unknown) = Chi : total:m1575_2, partial:m1575_3 +# 1575| r1575_5(glval) = VariableAddress[#this] : +# 1575| m1575_6(glval) = InitializeParameter[#this] : &:r1575_5 +# 1575| r1575_7(glval) = Load[#this] : &:r1575_5, m1575_6 +# 1575| m1575_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1575_7 +# 1576| r1576_1(glval) = VariableAddress[#return] : +# 1576| r1576_2(glval) = VariableAddress[#this] : +# 1576| r1576_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1576_2, m1575_6 +# 1576| r1576_4(glval) = FieldAddress[r] : r1576_3 +# 1576| r1576_5(int &) = Load[?] : &:r1576_4, ~m1575_8 +# 1576| r1576_6(glval) = CopyValue : r1576_5 +# 1576| r1576_7(int &) = CopyValue : r1576_6 +# 1576| m1576_8(int &) = Store[#return] : &:r1576_1, r1576_7 +# 1575| v1575_9(void) = ReturnIndirection[#this] : &:r1575_7, m1575_8 +# 1575| r1575_10(glval) = VariableAddress[#return] : +# 1575| v1575_11(void) = ReturnValue : &:r1575_10, m1576_8 +# 1575| v1575_12(void) = AliasedUse : m1575_3 +# 1575| v1575_13(void) = ExitFunction : + +# 1579| void tuple_structured_binding_ref_get() +# 1579| Block 0 +# 1579| v1579_1(void) = EnterFunction : +# 1579| m1579_2(unknown) = AliasedDefinition : +# 1579| m1579_3(unknown) = InitializeNonLocal : +# 1579| m1579_4(unknown) = Chi : total:m1579_2, partial:m1579_3 +# 1580| r1580_1(glval) = VariableAddress[t] : +# 1580| m1580_2(StructuredBindingTupleRefGet) = Uninitialized[t] : &:r1580_1 +# 1580| r1580_3(glval) = FunctionAddress[StructuredBindingTupleRefGet] : +# 1580| v1580_4(void) = Call[StructuredBindingTupleRefGet] : func:r1580_3, this:r1580_1 +# 1580| m1580_5(unknown) = ^CallSideEffect : ~m1579_4 +# 1580| m1580_6(unknown) = Chi : total:m1579_4, partial:m1580_5 +# 1580| m1580_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1580_1 +# 1580| m1580_8(StructuredBindingTupleRefGet) = Chi : total:m1580_2, partial:m1580_7 +# 1583| r1583_1(glval) = VariableAddress[(unnamed local variable)] : +# 1583| r1583_2(glval) = VariableAddress[t] : +# 1583| r1583_3(StructuredBindingTupleRefGet) = Load[t] : &:r1583_2, m1580_8 +# 1583| m1583_4(StructuredBindingTupleRefGet) = Store[(unnamed local variable)] : &:r1583_1, r1583_3 +# 1583| r1583_5(glval) = VariableAddress[i] : +# 1583| r1583_6(glval) = VariableAddress[(unnamed local variable)] : +# 1583| r1583_7(glval) = FunctionAddress[get] : +# 1583| r1583_8(int &) = Call[get] : func:r1583_7, this:r1583_6 +# 1583| m1583_9(unknown) = ^CallSideEffect : ~m1580_6 +# 1583| m1583_10(unknown) = Chi : total:m1580_6, partial:m1583_9 +# 1583| v1583_11(void) = ^IndirectReadSideEffect[-1] : &:r1583_6, m1583_4 +# 1583| m1583_12(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1583_6 +# 1583| m1583_13(StructuredBindingTupleRefGet) = Chi : total:m1583_4, partial:m1583_12 +# 1583| r1583_14(glval) = CopyValue : r1583_8 +# 1583| r1583_15(int &) = CopyValue : r1583_14 +# 1583| m1583_16(int &) = Store[i] : &:r1583_5, r1583_15 +# 1583| r1583_17(glval) = VariableAddress[d] : +# 1583| r1583_18(glval) = VariableAddress[(unnamed local variable)] : +# 1583| r1583_19(glval) = FunctionAddress[get] : +# 1583| r1583_20(double &) = Call[get] : func:r1583_19, this:r1583_18 +# 1583| m1583_21(unknown) = ^CallSideEffect : ~m1583_10 +# 1583| m1583_22(unknown) = Chi : total:m1583_10, partial:m1583_21 +# 1583| v1583_23(void) = ^IndirectReadSideEffect[-1] : &:r1583_18, m1583_13 +# 1583| m1583_24(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1583_18 +# 1583| m1583_25(StructuredBindingTupleRefGet) = Chi : total:m1583_13, partial:m1583_24 +# 1583| r1583_26(glval) = CopyValue : r1583_20 +# 1583| r1583_27(double &) = CopyValue : r1583_26 +# 1583| m1583_28(double &) = Store[d] : &:r1583_17, r1583_27 +# 1583| r1583_29(glval) = VariableAddress[r] : +# 1583| r1583_30(glval) = VariableAddress[(unnamed local variable)] : +# 1583| r1583_31(glval) = FunctionAddress[get] : +# 1583| r1583_32(int &) = Call[get] : func:r1583_31, this:r1583_30 +# 1583| m1583_33(unknown) = ^CallSideEffect : ~m1583_22 +# 1583| m1583_34(unknown) = Chi : total:m1583_22, partial:m1583_33 +# 1583| v1583_35(void) = ^IndirectReadSideEffect[-1] : &:r1583_30, m1583_25 +# 1583| m1583_36(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1583_30 +# 1583| m1583_37(StructuredBindingTupleRefGet) = Chi : total:m1583_25, partial:m1583_36 +# 1583| r1583_38(glval) = CopyValue : r1583_32 +# 1583| r1583_39(int &) = CopyValue : r1583_38 +# 1583| m1583_40(int &) = Store[r] : &:r1583_29, r1583_39 +# 1584| r1584_1(double) = Constant[4.0] : +# 1584| r1584_2(glval) = VariableAddress[d] : +# 1584| r1584_3(double &) = Load[d] : &:r1584_2, m1583_28 +# 1584| r1584_4(glval) = CopyValue : r1584_3 +# 1584| m1584_5(double) = Store[?] : &:r1584_4, r1584_1 +# 1584| m1584_6(StructuredBindingTupleRefGet) = Chi : total:m1583_37, partial:m1584_5 +# 1585| r1585_1(glval) = VariableAddress[rd] : +# 1585| r1585_2(glval) = VariableAddress[d] : +# 1585| r1585_3(double &) = Load[d] : &:r1585_2, m1583_28 +# 1585| r1585_4(glval) = CopyValue : r1585_3 +# 1585| r1585_5(double &) = CopyValue : r1585_4 +# 1585| m1585_6(double &) = Store[rd] : &:r1585_1, r1585_5 +# 1586| r1586_1(glval) = VariableAddress[v] : +# 1586| r1586_2(glval) = VariableAddress[i] : +# 1586| r1586_3(int &) = Load[i] : &:r1586_2, m1583_16 +# 1586| r1586_4(int) = Load[?] : &:r1586_3, ~m1583_37 +# 1586| m1586_5(int) = Store[v] : &:r1586_1, r1586_4 +# 1587| r1587_1(int) = Constant[5] : +# 1587| r1587_2(glval) = VariableAddress[r] : +# 1587| r1587_3(int &) = Load[r] : &:r1587_2, m1583_40 +# 1587| r1587_4(glval) = CopyValue : r1587_3 +# 1587| m1587_5(int) = Store[?] : &:r1587_4, r1587_1 +# 1587| m1587_6(unknown) = Chi : total:m1583_34, partial:m1587_5 +# 1588| r1588_1(glval) = VariableAddress[rr] : +# 1588| r1588_2(glval) = VariableAddress[r] : +# 1588| r1588_3(int &) = Load[r] : &:r1588_2, m1583_40 +# 1588| r1588_4(glval) = CopyValue : r1588_3 +# 1588| r1588_5(int &) = CopyValue : r1588_4 +# 1588| m1588_6(int &) = Store[rr] : &:r1588_1, r1588_5 +# 1589| r1589_1(glval) = VariableAddress[w] : +# 1589| r1589_2(glval) = VariableAddress[r] : +# 1589| r1589_3(int &) = Load[r] : &:r1589_2, m1583_40 +# 1589| r1589_4(int) = Load[?] : &:r1589_3, ~m1587_6 +# 1589| m1589_5(int) = Store[w] : &:r1589_1, r1589_4 +# 1593| r1593_1(glval) = VariableAddress[unnamed_local_variable] : +# 1593| r1593_2(glval) = VariableAddress[t] : +# 1593| r1593_3(StructuredBindingTupleRefGet) = Load[t] : &:r1593_2, m1580_8 +# 1593| m1593_4(StructuredBindingTupleRefGet) = Store[unnamed_local_variable] : &:r1593_1, r1593_3 +# 1594| r1594_1(glval) = VariableAddress[i] : +# 1594| r1594_2(glval) = VariableAddress[unnamed_local_variable] : +# 1594| r1594_3(glval) = FunctionAddress[get] : +# 1594| r1594_4(int &) = Call[get] : func:r1594_3, this:r1594_2 +# 1594| m1594_5(unknown) = ^CallSideEffect : ~m1587_6 +# 1594| m1594_6(unknown) = Chi : total:m1587_6, partial:m1594_5 +# 1594| v1594_7(void) = ^IndirectReadSideEffect[-1] : &:r1594_2, m1593_4 +# 1594| m1594_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1594_2 +# 1594| m1594_9(StructuredBindingTupleRefGet) = Chi : total:m1593_4, partial:m1594_8 +# 1594| r1594_10(glval) = CopyValue : r1594_4 +# 1594| r1594_11(int &) = CopyValue : r1594_10 +# 1594| m1594_12(int &) = Store[i] : &:r1594_1, r1594_11 +# 1595| r1595_1(glval) = VariableAddress[d] : +# 1595| r1595_2(glval) = VariableAddress[unnamed_local_variable] : +# 1595| r1595_3(glval) = FunctionAddress[get] : +# 1595| r1595_4(double &) = Call[get] : func:r1595_3, this:r1595_2 +# 1595| m1595_5(unknown) = ^CallSideEffect : ~m1594_6 +# 1595| m1595_6(unknown) = Chi : total:m1594_6, partial:m1595_5 +# 1595| v1595_7(void) = ^IndirectReadSideEffect[-1] : &:r1595_2, m1594_9 +# 1595| m1595_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1595_2 +# 1595| m1595_9(StructuredBindingTupleRefGet) = Chi : total:m1594_9, partial:m1595_8 +# 1595| r1595_10(glval) = CopyValue : r1595_4 +# 1595| r1595_11(double &) = CopyValue : r1595_10 +# 1595| m1595_12(double &) = Store[d] : &:r1595_1, r1595_11 +# 1596| r1596_1(glval) = VariableAddress[r] : +# 1596| r1596_2(glval) = VariableAddress[unnamed_local_variable] : +# 1596| r1596_3(glval) = FunctionAddress[get] : +# 1596| r1596_4(int &) = Call[get] : func:r1596_3, this:r1596_2 +# 1596| m1596_5(unknown) = ^CallSideEffect : ~m1595_6 +# 1596| m1596_6(unknown) = Chi : total:m1595_6, partial:m1596_5 +# 1596| v1596_7(void) = ^IndirectReadSideEffect[-1] : &:r1596_2, m1595_9 +# 1596| m1596_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1596_2 +# 1596| m1596_9(StructuredBindingTupleRefGet) = Chi : total:m1595_9, partial:m1596_8 +# 1596| r1596_10(glval) = CopyValue : r1596_4 +# 1596| r1596_11(int &) = CopyValue : r1596_10 +# 1596| m1596_12(int &) = Store[r] : &:r1596_1, r1596_11 +# 1597| r1597_1(double) = Constant[4.0] : +# 1597| r1597_2(glval) = VariableAddress[d] : +# 1597| r1597_3(double &) = Load[d] : &:r1597_2, m1595_12 +# 1597| r1597_4(glval) = CopyValue : r1597_3 +# 1597| m1597_5(double) = Store[?] : &:r1597_4, r1597_1 +# 1597| m1597_6(StructuredBindingTupleRefGet) = Chi : total:m1596_9, partial:m1597_5 +# 1598| r1598_1(glval) = VariableAddress[rd] : +# 1598| r1598_2(glval) = VariableAddress[d] : +# 1598| r1598_3(double &) = Load[d] : &:r1598_2, m1595_12 +# 1598| r1598_4(glval) = CopyValue : r1598_3 +# 1598| r1598_5(double &) = CopyValue : r1598_4 +# 1598| m1598_6(double &) = Store[rd] : &:r1598_1, r1598_5 +# 1599| r1599_1(glval) = VariableAddress[v] : +# 1599| r1599_2(glval) = VariableAddress[i] : +# 1599| r1599_3(int &) = Load[i] : &:r1599_2, m1594_12 +# 1599| r1599_4(int) = Load[?] : &:r1599_3, ~m1596_9 +# 1599| m1599_5(int) = Store[v] : &:r1599_1, r1599_4 +# 1600| r1600_1(int) = Constant[5] : +# 1600| r1600_2(glval) = VariableAddress[r] : +# 1600| r1600_3(int &) = Load[r] : &:r1600_2, m1596_12 +# 1600| r1600_4(glval) = CopyValue : r1600_3 +# 1600| m1600_5(int) = Store[?] : &:r1600_4, r1600_1 +# 1600| m1600_6(unknown) = Chi : total:m1596_6, partial:m1600_5 +# 1601| r1601_1(glval) = VariableAddress[rr] : +# 1601| r1601_2(glval) = VariableAddress[r] : +# 1601| r1601_3(int &) = Load[r] : &:r1601_2, m1596_12 +# 1601| r1601_4(glval) = CopyValue : r1601_3 +# 1601| r1601_5(int &) = CopyValue : r1601_4 +# 1601| m1601_6(int &) = Store[rr] : &:r1601_1, r1601_5 +# 1602| r1602_1(glval) = VariableAddress[w] : +# 1602| r1602_2(glval) = VariableAddress[r] : +# 1602| r1602_3(int &) = Load[r] : &:r1602_2, m1596_12 +# 1602| r1602_4(int) = Load[?] : &:r1602_3, ~m1600_6 +# 1602| m1602_5(int) = Store[w] : &:r1602_1, r1602_4 +# 1604| v1604_1(void) = NoOp : +# 1579| v1579_5(void) = ReturnVoid : +# 1579| v1579_6(void) = AliasedUse : ~m1600_6 +# 1579| v1579_7(void) = ExitFunction : + +# 1606| void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() +# 1606| Block 0 +# 1606| v1606_1(void) = EnterFunction : +# 1606| m1606_2(unknown) = AliasedDefinition : +# 1606| m1606_3(unknown) = InitializeNonLocal : +# 1606| m1606_4(unknown) = Chi : total:m1606_2, partial:m1606_3 +# 1606| r1606_5(glval) = VariableAddress[#this] : +# 1606| m1606_6(glval) = InitializeParameter[#this] : &:r1606_5 +# 1606| r1606_7(glval) = Load[#this] : &:r1606_5, m1606_6 +# 1606| m1606_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1606_7 +# 1606| v1606_9(void) = NoOp : +# 1606| v1606_10(void) = ReturnIndirection[#this] : &:r1606_7, m1606_8 +# 1606| v1606_11(void) = ReturnVoid : +# 1606| v1606_12(void) = AliasedUse : m1606_3 +# 1606| v1606_13(void) = ExitFunction : + +# 1633| std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1633| Block 0 +# 1633| v1633_1(void) = EnterFunction : +# 1633| m1633_2(unknown) = AliasedDefinition : +# 1633| m1633_3(unknown) = InitializeNonLocal : +# 1633| m1633_4(unknown) = Chi : total:m1633_2, partial:m1633_3 +# 1633| r1633_5(glval) = VariableAddress[#this] : +# 1633| m1633_6(glval) = InitializeParameter[#this] : &:r1633_5 +# 1633| r1633_7(glval) = Load[#this] : &:r1633_5, m1633_6 +# 1633| m1633_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1633_7 +# 1634| r1634_1(glval) = VariableAddress[#return] : +# 1634| r1634_2(glval) = VariableAddress[#this] : +# 1634| r1634_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1634_2, m1633_6 +# 1634| r1634_4(glval) = FieldAddress[i] : r1634_3 +# 1634| r1634_5(int) = Load[?] : &:r1634_4, ~m1633_8 +# 1634| m1634_6(int) = Store[#return] : &:r1634_1, r1634_5 +# 1633| v1633_9(void) = ReturnIndirection[#this] : &:r1633_7, m1633_8 +# 1633| r1633_10(glval) = VariableAddress[#return] : +# 1633| v1633_11(void) = ReturnValue : &:r1633_10, m1634_6 +# 1633| v1633_12(void) = AliasedUse : m1633_3 +# 1633| v1633_13(void) = ExitFunction : + +# 1637| std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1637| Block 0 +# 1637| v1637_1(void) = EnterFunction : +# 1637| m1637_2(unknown) = AliasedDefinition : +# 1637| m1637_3(unknown) = InitializeNonLocal : +# 1637| m1637_4(unknown) = Chi : total:m1637_2, partial:m1637_3 +# 1637| r1637_5(glval) = VariableAddress[#this] : +# 1637| m1637_6(glval) = InitializeParameter[#this] : &:r1637_5 +# 1637| r1637_7(glval) = Load[#this] : &:r1637_5, m1637_6 +# 1637| m1637_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1637_7 +# 1638| r1638_1(glval) = VariableAddress[#return] : +# 1638| r1638_2(glval) = VariableAddress[#this] : +# 1638| r1638_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1638_2, m1637_6 +# 1638| r1638_4(glval) = FieldAddress[r] : r1638_3 +# 1638| r1638_5(int &) = Load[?] : &:r1638_4, ~m1637_8 +# 1638| r1638_6(glval) = CopyValue : r1638_5 +# 1638| r1638_7(int &) = CopyValue : r1638_6 +# 1638| m1638_8(int &) = Store[#return] : &:r1638_1, r1638_7 +# 1637| v1637_9(void) = ReturnIndirection[#this] : &:r1637_7, m1637_8 +# 1637| r1637_10(glval) = VariableAddress[#return] : +# 1637| v1637_11(void) = ReturnValue : &:r1637_10, m1638_8 +# 1637| v1637_12(void) = AliasedUse : m1637_3 +# 1637| v1637_13(void) = ExitFunction : + +# 1641| std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1641| Block 0 +# 1641| v1641_1(void) = EnterFunction : +# 1641| m1641_2(unknown) = AliasedDefinition : +# 1641| m1641_3(unknown) = InitializeNonLocal : +# 1641| m1641_4(unknown) = Chi : total:m1641_2, partial:m1641_3 +# 1641| r1641_5(glval) = VariableAddress[#this] : +# 1641| m1641_6(glval) = InitializeParameter[#this] : &:r1641_5 +# 1641| r1641_7(glval) = Load[#this] : &:r1641_5, m1641_6 +# 1641| m1641_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1641_7 +# 1642| r1642_1(glval) = VariableAddress[#return] : +# 1642| r1642_2(glval) = VariableAddress[#temp1642:12] : +# 1642| r1642_3(int) = Constant[5] : +# 1642| m1642_4(int) = Store[#temp1642:12] : &:r1642_2, r1642_3 +# 1642| r1642_5(int &) = CopyValue : r1642_2 +# 1642| m1642_6(int &&) = Store[#return] : &:r1642_1, r1642_5 +# 1641| v1641_9(void) = ReturnIndirection[#this] : &:r1641_7, m1641_8 +# 1641| r1641_10(glval) = VariableAddress[#return] : +# 1641| v1641_11(void) = ReturnValue : &:r1641_10, m1642_6 +# 1641| v1641_12(void) = AliasedUse : m1641_3 +# 1641| v1641_13(void) = ExitFunction : + +# 1645| void tuple_structured_binding_no_ref_get() +# 1645| Block 0 +# 1645| v1645_1(void) = EnterFunction : +# 1645| m1645_2(unknown) = AliasedDefinition : +# 1645| m1645_3(unknown) = InitializeNonLocal : +# 1645| m1645_4(unknown) = Chi : total:m1645_2, partial:m1645_3 +# 1646| r1646_1(glval) = VariableAddress[t] : +# 1646| m1646_2(StructuredBindingTupleNoRefGet) = Uninitialized[t] : &:r1646_1 +# 1646| r1646_3(glval) = FunctionAddress[StructuredBindingTupleNoRefGet] : +# 1646| v1646_4(void) = Call[StructuredBindingTupleNoRefGet] : func:r1646_3, this:r1646_1 +# 1646| m1646_5(unknown) = ^CallSideEffect : ~m1645_4 +# 1646| m1646_6(unknown) = Chi : total:m1645_4, partial:m1646_5 +# 1646| m1646_7(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1646_1 +# 1646| m1646_8(StructuredBindingTupleNoRefGet) = Chi : total:m1646_2, partial:m1646_7 +# 1649| r1649_1(glval) = VariableAddress[(unnamed local variable)] : +# 1649| r1649_2(glval) = VariableAddress[t] : +# 1649| r1649_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1649_2 +# 1649| m1649_4(StructuredBindingTupleNoRefGet &) = Store[(unnamed local variable)] : &:r1649_1, r1649_3 +# 1649| r1649_5(glval) = VariableAddress[i] : +# 1649| r1649_6(glval) = VariableAddress[#temp1649:16] : +# 1649| r1649_7(glval) = VariableAddress[(unnamed local variable)] : +# 1649| r1649_8(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1649_7, m1649_4 +# 1649| r1649_9(glval) = CopyValue : r1649_8 +# 1649| r1649_10(glval) = FunctionAddress[get] : +# 1649| r1649_11(int) = Call[get] : func:r1649_10, this:r1649_9 +# 1649| m1649_12(unknown) = ^CallSideEffect : ~m1646_6 +# 1649| m1649_13(unknown) = Chi : total:m1646_6, partial:m1649_12 +# 1649| v1649_14(void) = ^IndirectReadSideEffect[-1] : &:r1649_9, m1646_8 +# 1649| m1649_15(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1649_9 +# 1649| m1649_16(StructuredBindingTupleNoRefGet) = Chi : total:m1646_8, partial:m1649_15 +# 1649| m1649_17(int) = Store[#temp1649:16] : &:r1649_6, r1649_11 +# 1649| r1649_18(int &) = CopyValue : r1649_6 +# 1649| m1649_19(int &&) = Store[i] : &:r1649_5, r1649_18 +# 1649| r1649_20(glval) = VariableAddress[r] : +# 1649| r1649_21(glval) = VariableAddress[(unnamed local variable)] : +# 1649| r1649_22(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1649_21, m1649_4 +# 1649| r1649_23(glval) = CopyValue : r1649_22 +# 1649| r1649_24(glval) = FunctionAddress[get] : +# 1649| r1649_25(int &) = Call[get] : func:r1649_24, this:r1649_23 +# 1649| m1649_26(unknown) = ^CallSideEffect : ~m1649_13 +# 1649| m1649_27(unknown) = Chi : total:m1649_13, partial:m1649_26 +# 1649| v1649_28(void) = ^IndirectReadSideEffect[-1] : &:r1649_23, m1649_16 +# 1649| m1649_29(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1649_23 +# 1649| m1649_30(StructuredBindingTupleNoRefGet) = Chi : total:m1649_16, partial:m1649_29 +# 1649| r1649_31(glval) = CopyValue : r1649_25 +# 1649| r1649_32(int &) = CopyValue : r1649_31 +# 1649| m1649_33(int &) = Store[r] : &:r1649_20, r1649_32 +# 1649| r1649_34(glval) = VariableAddress[rv] : +# 1649| r1649_35(glval) = VariableAddress[(unnamed local variable)] : +# 1649| r1649_36(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1649_35, m1649_4 +# 1649| r1649_37(glval) = CopyValue : r1649_36 +# 1649| r1649_38(glval) = FunctionAddress[get] : +# 1649| r1649_39(int &&) = Call[get] : func:r1649_38, this:r1649_37 +# 1649| m1649_40(unknown) = ^CallSideEffect : ~m1649_27 +# 1649| m1649_41(unknown) = Chi : total:m1649_27, partial:m1649_40 +# 1649| v1649_42(void) = ^IndirectReadSideEffect[-1] : &:r1649_37, m1649_30 +# 1649| m1649_43(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1649_37 +# 1649| m1649_44(StructuredBindingTupleNoRefGet) = Chi : total:m1649_30, partial:m1649_43 +# 1649| r1649_45(glval) = CopyValue : r1649_39 +# 1649| r1649_46(int &) = CopyValue : r1649_45 +# 1649| m1649_47(int &&) = Store[rv] : &:r1649_34, r1649_46 +# 1650| r1650_1(int) = Constant[4] : +# 1650| r1650_2(glval) = VariableAddress[i] : +# 1650| r1650_3(int &&) = Load[i] : &:r1650_2, m1649_19 +# 1650| r1650_4(glval) = CopyValue : r1650_3 +# 1650| m1650_5(int) = Store[?] : &:r1650_4, r1650_1 +# 1651| r1651_1(glval) = VariableAddress[ri] : +# 1651| r1651_2(glval) = VariableAddress[i] : +# 1651| r1651_3(int &&) = Load[i] : &:r1651_2, m1649_19 +# 1651| r1651_4(glval) = CopyValue : r1651_3 +# 1651| r1651_5(int &) = CopyValue : r1651_4 +# 1651| m1651_6(int &) = Store[ri] : &:r1651_1, r1651_5 +# 1652| r1652_1(glval) = VariableAddress[v] : +# 1652| r1652_2(glval) = VariableAddress[i] : +# 1652| r1652_3(int &&) = Load[i] : &:r1652_2, m1649_19 +# 1652| r1652_4(int) = Load[?] : &:r1652_3, m1650_5 +# 1652| m1652_5(int) = Store[v] : &:r1652_1, r1652_4 +# 1653| r1653_1(int) = Constant[5] : +# 1653| r1653_2(glval) = VariableAddress[r] : +# 1653| r1653_3(int &) = Load[r] : &:r1653_2, m1649_33 +# 1653| r1653_4(glval) = CopyValue : r1653_3 +# 1653| m1653_5(int) = Store[?] : &:r1653_4, r1653_1 +# 1653| m1653_6(unknown) = Chi : total:m1649_41, partial:m1653_5 +# 1654| r1654_1(glval) = VariableAddress[rr] : +# 1654| r1654_2(glval) = VariableAddress[r] : +# 1654| r1654_3(int &) = Load[r] : &:r1654_2, m1649_33 +# 1654| r1654_4(glval) = CopyValue : r1654_3 +# 1654| r1654_5(int &) = CopyValue : r1654_4 +# 1654| m1654_6(int &) = Store[rr] : &:r1654_1, r1654_5 +# 1655| r1655_1(glval) = VariableAddress[w] : +# 1655| r1655_2(glval) = VariableAddress[r] : +# 1655| r1655_3(int &) = Load[r] : &:r1655_2, m1649_33 +# 1655| r1655_4(int) = Load[?] : &:r1655_3, ~m1653_6 +# 1655| m1655_5(int) = Store[w] : &:r1655_1, r1655_4 +# 1659| r1659_1(glval) = VariableAddress[unnamed_local_variable] : +# 1659| r1659_2(glval) = VariableAddress[t] : +# 1659| r1659_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1659_2 +# 1659| m1659_4(StructuredBindingTupleNoRefGet &) = Store[unnamed_local_variable] : &:r1659_1, r1659_3 +# 1660| r1660_1(glval) = VariableAddress[i] : +# 1660| r1660_2(glval) = VariableAddress[#temp1660:20] : +# 1660| r1660_3(glval) = VariableAddress[unnamed_local_variable] : +# 1660| r1660_4(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1660_3, m1659_4 +# 1660| r1660_5(glval) = CopyValue : r1660_4 +# 1660| r1660_6(glval) = FunctionAddress[get] : +# 1660| r1660_7(int) = Call[get] : func:r1660_6, this:r1660_5 +# 1660| m1660_8(unknown) = ^CallSideEffect : ~m1653_6 +# 1660| m1660_9(unknown) = Chi : total:m1653_6, partial:m1660_8 +# 1660| v1660_10(void) = ^IndirectReadSideEffect[-1] : &:r1660_5, m1649_44 +# 1660| m1660_11(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1660_5 +# 1660| m1660_12(StructuredBindingTupleNoRefGet) = Chi : total:m1649_44, partial:m1660_11 +# 1660| m1660_13(int) = Store[#temp1660:20] : &:r1660_2, r1660_7 +# 1660| r1660_14(int &) = CopyValue : r1660_2 +# 1660| m1660_15(int &&) = Store[i] : &:r1660_1, r1660_14 +# 1661| r1661_1(glval) = VariableAddress[r] : +# 1661| r1661_2(glval) = VariableAddress[unnamed_local_variable] : +# 1661| r1661_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1661_2, m1659_4 +# 1661| r1661_4(glval) = CopyValue : r1661_3 +# 1661| r1661_5(glval) = FunctionAddress[get] : +# 1661| r1661_6(int &) = Call[get] : func:r1661_5, this:r1661_4 +# 1661| m1661_7(unknown) = ^CallSideEffect : ~m1660_9 +# 1661| m1661_8(unknown) = Chi : total:m1660_9, partial:m1661_7 +# 1661| v1661_9(void) = ^IndirectReadSideEffect[-1] : &:r1661_4, m1660_12 +# 1661| m1661_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1661_4 +# 1661| m1661_11(StructuredBindingTupleNoRefGet) = Chi : total:m1660_12, partial:m1661_10 +# 1661| r1661_12(glval) = CopyValue : r1661_6 +# 1661| r1661_13(int &) = CopyValue : r1661_12 +# 1661| m1661_14(int &) = Store[r] : &:r1661_1, r1661_13 +# 1662| r1662_1(glval) = VariableAddress[rv] : +# 1662| r1662_2(glval) = VariableAddress[unnamed_local_variable] : +# 1662| r1662_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1662_2, m1659_4 +# 1662| r1662_4(glval) = CopyValue : r1662_3 +# 1662| r1662_5(glval) = FunctionAddress[get] : +# 1662| r1662_6(int &&) = Call[get] : func:r1662_5, this:r1662_4 +# 1662| m1662_7(unknown) = ^CallSideEffect : ~m1661_8 +# 1662| m1662_8(unknown) = Chi : total:m1661_8, partial:m1662_7 +# 1662| v1662_9(void) = ^IndirectReadSideEffect[-1] : &:r1662_4, m1661_11 +# 1662| m1662_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1662_4 +# 1662| m1662_11(StructuredBindingTupleNoRefGet) = Chi : total:m1661_11, partial:m1662_10 +# 1662| r1662_12(glval) = CopyValue : r1662_6 +# 1662| r1662_13(int &) = CopyValue : r1662_12 +# 1662| m1662_14(int &&) = Store[rv] : &:r1662_1, r1662_13 +# 1663| r1663_1(int) = Constant[4] : +# 1663| r1663_2(glval) = VariableAddress[i] : +# 1663| r1663_3(int &&) = Load[i] : &:r1663_2, m1660_15 +# 1663| r1663_4(glval) = CopyValue : r1663_3 +# 1663| m1663_5(int) = Store[?] : &:r1663_4, r1663_1 +# 1664| r1664_1(glval) = VariableAddress[ri] : +# 1664| r1664_2(glval) = VariableAddress[i] : +# 1664| r1664_3(int &&) = Load[i] : &:r1664_2, m1660_15 +# 1664| r1664_4(glval) = CopyValue : r1664_3 +# 1664| r1664_5(int &) = CopyValue : r1664_4 +# 1664| m1664_6(int &) = Store[ri] : &:r1664_1, r1664_5 +# 1665| r1665_1(glval) = VariableAddress[v] : +# 1665| r1665_2(glval) = VariableAddress[i] : +# 1665| r1665_3(int &&) = Load[i] : &:r1665_2, m1660_15 +# 1665| r1665_4(int) = Load[?] : &:r1665_3, m1663_5 +# 1665| m1665_5(int) = Store[v] : &:r1665_1, r1665_4 +# 1666| r1666_1(int) = Constant[5] : +# 1666| r1666_2(glval) = VariableAddress[r] : +# 1666| r1666_3(int &) = Load[r] : &:r1666_2, m1661_14 +# 1666| r1666_4(glval) = CopyValue : r1666_3 +# 1666| m1666_5(int) = Store[?] : &:r1666_4, r1666_1 +# 1666| m1666_6(unknown) = Chi : total:m1662_8, partial:m1666_5 +# 1667| r1667_1(glval) = VariableAddress[rr] : +# 1667| r1667_2(glval) = VariableAddress[r] : +# 1667| r1667_3(int &) = Load[r] : &:r1667_2, m1661_14 +# 1667| r1667_4(glval) = CopyValue : r1667_3 +# 1667| r1667_5(int &) = CopyValue : r1667_4 +# 1667| m1667_6(int &) = Store[rr] : &:r1667_1, r1667_5 +# 1668| r1668_1(glval) = VariableAddress[w] : +# 1668| r1668_2(glval) = VariableAddress[r] : +# 1668| r1668_3(int &) = Load[r] : &:r1668_2, m1661_14 +# 1668| r1668_4(int) = Load[?] : &:r1668_3, ~m1666_6 +# 1668| m1668_5(int) = Store[w] : &:r1668_1, r1668_4 +# 1670| v1670_1(void) = NoOp : +# 1645| v1645_5(void) = ReturnVoid : +# 1645| v1645_6(void) = AliasedUse : ~m1666_6 +# 1645| v1645_7(void) = ExitFunction : + +# 1672| void array_structured_binding_non_ref_init() +# 1672| Block 0 +# 1672| v1672_1(void) = EnterFunction : +# 1672| m1672_2(unknown) = AliasedDefinition : +# 1672| m1672_3(unknown) = InitializeNonLocal : +# 1672| m1672_4(unknown) = Chi : total:m1672_2, partial:m1672_3 +# 1673| r1673_1(glval) = VariableAddress[xs] : +# 1673| m1673_2(int[2]) = Uninitialized[xs] : &:r1673_1 +# 1673| r1673_3(int) = Constant[0] : +# 1673| r1673_4(glval) = PointerAdd[4] : r1673_1, r1673_3 +# 1673| r1673_5(int) = Constant[1] : +# 1673| m1673_6(int) = Store[?] : &:r1673_4, r1673_5 +# 1673| m1673_7(int[2]) = Chi : total:m1673_2, partial:m1673_6 +# 1673| r1673_8(int) = Constant[1] : +# 1673| r1673_9(glval) = PointerAdd[4] : r1673_1, r1673_8 +# 1673| r1673_10(int) = Constant[2] : +# 1673| m1673_11(int) = Store[?] : &:r1673_9, r1673_10 +# 1673| m1673_12(int[2]) = Chi : total:m1673_7, partial:m1673_11 +# 1674| r1674_1(glval) = VariableAddress[(unnamed local variable)] : +# 1674| r1674_2(glval) = VariableAddress[xs] : +# 1674| r1674_3(int[2]) = Load[xs] : &:r1674_2, m1673_12 +# 1674| m1674_4(int[2]) = Store[(unnamed local variable)] : &:r1674_1, r1674_3 +# 1674| r1674_5(glval) = VariableAddress[x0] : +#-----| r0_1(glval) = VariableAddress[(unnamed local variable)] : +#-----| r0_2(int *) = Convert : r0_1 +#-----| r0_3(unsigned long) = Constant[0] : +#-----| r0_4(glval) = PointerAdd[4] : r0_2, r0_3 +#-----| m0_5(int &) = Store[x0] : &:r1674_5, r0_4 +# 1674| r1674_6(glval) = VariableAddress[x1] : +#-----| r0_6(glval) = VariableAddress[(unnamed local variable)] : +#-----| r0_7(int *) = Convert : r0_6 +#-----| r0_8(unsigned long) = Constant[1] : +#-----| r0_9(glval) = PointerAdd[4] : r0_7, r0_8 +#-----| m0_10(int &) = Store[x1] : &:r1674_6, r0_9 +# 1675| v1675_1(void) = NoOp : +# 1672| v1672_5(void) = ReturnVoid : +# 1672| v1672_6(void) = AliasedUse : m1672_3 +# 1672| v1672_7(void) = ExitFunction : + +# 1680| void CapturedLambdaMyObj::CapturedLambdaMyObj() +# 1680| Block 0 +# 1680| v1680_1(void) = EnterFunction : +# 1680| m1680_2(unknown) = AliasedDefinition : +# 1680| m1680_3(unknown) = InitializeNonLocal : +# 1680| m1680_4(unknown) = Chi : total:m1680_2, partial:m1680_3 +# 1680| r1680_5(glval) = VariableAddress[#this] : +# 1680| m1680_6(glval) = InitializeParameter[#this] : &:r1680_5 +# 1680| r1680_7(glval) = Load[#this] : &:r1680_5, m1680_6 +# 1680| m1680_8(CapturedLambdaMyObj) = InitializeIndirection[#this] : &:r1680_7 +# 1680| v1680_9(void) = NoOp : +# 1680| v1680_10(void) = ReturnIndirection[#this] : &:r1680_7, m1680_8 +# 1680| v1680_11(void) = ReturnVoid : +# 1680| v1680_12(void) = AliasedUse : m1680_3 +# 1680| v1680_13(void) = ExitFunction : + +# 1683| void captured_lambda(int, int&, int&&) +# 1683| Block 0 +# 1683| v1683_1(void) = EnterFunction : +# 1683| m1683_2(unknown) = AliasedDefinition : +# 1683| m1683_3(unknown) = InitializeNonLocal : +# 1683| m1683_4(unknown) = Chi : total:m1683_2, partial:m1683_3 +# 1683| r1683_5(glval) = VariableAddress[x] : +# 1683| m1683_6(int) = InitializeParameter[x] : &:r1683_5 +# 1683| r1683_7(glval) = VariableAddress[y] : +# 1683| m1683_8(int &) = InitializeParameter[y] : &:r1683_7 +# 1683| r1683_9(int &) = Load[y] : &:r1683_7, m1683_8 +# 1683| m1683_10(unknown) = InitializeIndirection[y] : &:r1683_9 +# 1683| r1683_11(glval) = VariableAddress[z] : +# 1683| m1683_12(int &&) = InitializeParameter[z] : &:r1683_11 +# 1683| r1683_13(int &&) = Load[z] : &:r1683_11, m1683_12 +# 1683| m1683_14(unknown) = InitializeIndirection[z] : &:r1683_13 +# 1685| r1685_1(glval) = VariableAddress[obj1] : +# 1685| r1685_2(glval) = VariableAddress[#temp1685:24] : +# 1685| m1685_3(CapturedLambdaMyObj) = Uninitialized[#temp1685:24] : &:r1685_2 +# 1685| r1685_4(glval) = FunctionAddress[CapturedLambdaMyObj] : +# 1685| v1685_5(void) = Call[CapturedLambdaMyObj] : func:r1685_4, this:r1685_2 +# 1685| m1685_6(unknown) = ^CallSideEffect : ~m1683_4 +# 1685| m1685_7(unknown) = Chi : total:m1683_4, partial:m1685_6 +# 1685| m1685_8(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1685_2 +# 1685| m1685_9(CapturedLambdaMyObj) = Chi : total:m1685_3, partial:m1685_8 +# 1685| r1685_10(glval) = Convert : r1685_2 +# 1685| r1685_11(CapturedLambdaMyObj &) = CopyValue : r1685_10 +# 1685| m1685_12(CapturedLambdaMyObj &) = Store[obj1] : &:r1685_1, r1685_11 +# 1686| r1686_1(glval) = VariableAddress[obj2] : +# 1686| m1686_2(CapturedLambdaMyObj) = Uninitialized[obj2] : &:r1686_1 +# 1686| r1686_3(glval) = FunctionAddress[CapturedLambdaMyObj] : +# 1686| v1686_4(void) = Call[CapturedLambdaMyObj] : func:r1686_3, this:r1686_1 +# 1686| m1686_5(unknown) = ^CallSideEffect : ~m1685_7 +# 1686| m1686_6(unknown) = Chi : total:m1685_7, partial:m1686_5 +# 1686| m1686_7(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1686_1 +# 1686| m1686_8(CapturedLambdaMyObj) = Chi : total:m1686_2, partial:m1686_7 +# 1688| r1688_1(glval) = VariableAddress[lambda_outer] : +# 1688| r1688_2(glval) = VariableAddress[#temp1688:24] : +# 1688| m1688_3(decltype([...](...){...})) = Uninitialized[#temp1688:24] : &:r1688_2 +# 1688| r1688_4(glval) = FieldAddress[obj1] : r1688_2 +# 1688| r1688_5(glval) = VariableAddress[obj1] : +# 1688| r1688_6(CapturedLambdaMyObj &) = Load[obj1] : &:r1688_5, m1685_12 +#-----| r0_1(CapturedLambdaMyObj) = Load[?] : &:r1688_6, m1685_9 +#-----| m0_2(CapturedLambdaMyObj) = Store[?] : &:r1688_4, r0_1 +#-----| m0_3(decltype([...](...){...})) = Chi : total:m1688_3, partial:m0_2 +# 1688| r1688_7(glval) = FieldAddress[obj2] : r1688_2 +# 1688| r1688_8(glval) = VariableAddress[obj2] : +# 1688| r1688_9(CapturedLambdaMyObj) = Load[obj2] : &:r1688_8, m1686_8 +# 1688| m1688_10(CapturedLambdaMyObj) = Store[?] : &:r1688_7, r1688_9 +# 1688| m1688_11(decltype([...](...){...})) = Chi : total:m0_3, partial:m1688_10 +# 1688| r1688_12(glval) = FieldAddress[x] : r1688_2 +# 1688| r1688_13(glval) = VariableAddress[x] : +# 1688| r1688_14(int) = Load[x] : &:r1688_13, m1683_6 +# 1688| m1688_15(int) = Store[?] : &:r1688_12, r1688_14 +# 1688| m1688_16(decltype([...](...){...})) = Chi : total:m1688_11, partial:m1688_15 +# 1688| r1688_17(glval) = FieldAddress[y] : r1688_2 +# 1688| r1688_18(glval) = VariableAddress[y] : +# 1688| r1688_19(int &) = Load[y] : &:r1688_18, m1683_8 +# 1690| r1690_1(int) = Load[?] : &:r1688_19, ~m1683_10 +# 1690| m1690_2(int) = Store[?] : &:r1688_17, r1690_1 +# 1690| m1690_3(decltype([...](...){...})) = Chi : total:m1688_16, partial:m1690_2 +# 1688| r1688_20(glval) = FieldAddress[z] : r1688_2 +# 1688| r1688_21(glval) = VariableAddress[z] : +# 1688| r1688_22(int &&) = Load[z] : &:r1688_21, m1683_12 +# 1690| r1690_4(int) = Load[?] : &:r1688_22, ~m1683_14 +# 1690| m1690_5(int) = Store[?] : &:r1688_20, r1690_4 +# 1690| m1690_6(decltype([...](...){...})) = Chi : total:m1690_3, partial:m1690_5 +# 1688| r1688_23(decltype([...](...){...})) = Load[#temp1688:24] : &:r1688_2, m1690_6 +# 1688| m1688_24(decltype([...](...){...})) = Store[lambda_outer] : &:r1688_1, r1688_23 +# 1691| v1691_1(void) = NoOp : +# 1683| v1683_15(void) = ReturnIndirection[y] : &:r1683_9, m1683_10 +# 1683| v1683_16(void) = ReturnIndirection[z] : &:r1683_13, m1683_14 +# 1683| v1683_17(void) = ReturnVoid : +# 1683| v1683_18(void) = AliasedUse : ~m1686_6 +# 1683| v1683_19(void) = ExitFunction : + +# 1688| void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const +# 1688| Block 0 +# 1688| v1688_1(void) = EnterFunction : +# 1688| m1688_2(unknown) = AliasedDefinition : +# 1688| m1688_3(unknown) = InitializeNonLocal : +# 1688| m1688_4(unknown) = Chi : total:m1688_2, partial:m1688_3 +# 1688| r1688_5(glval) = VariableAddress[#this] : +# 1688| m1688_6(glval) = InitializeParameter[#this] : &:r1688_5 +# 1688| r1688_7(glval) = Load[#this] : &:r1688_5, m1688_6 +# 1688| m1688_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1688_7 +# 1689| r1689_1(glval) = VariableAddress[lambda_inner] : +# 1689| r1689_2(glval) = VariableAddress[#temp1689:28] : +# 1689| m1689_3(decltype([...](...){...})) = Uninitialized[#temp1689:28] : &:r1689_2 +# 1689| r1689_4(glval) = FieldAddress[obj1] : r1689_2 +# 1689| r1689_5(glval) = VariableAddress[#this] : +# 1689| r1689_6(lambda [] type at line 1689, col. 29 *) = Load[#this] : &:r1689_5, m1688_6 +# 1689| r1689_7(glval) = FieldAddress[obj1] : r1689_6 +# 1689| r1689_8(CapturedLambdaMyObj) = Load[?] : &:r1689_7, ~m1688_8 +# 1689| m1689_9(CapturedLambdaMyObj) = Store[?] : &:r1689_4, r1689_8 +# 1689| m1689_10(decltype([...](...){...})) = Chi : total:m1689_3, partial:m1689_9 +# 1689| r1689_11(glval) = FieldAddress[obj2] : r1689_2 +# 1689| r1689_12(glval) = VariableAddress[#this] : +# 1689| r1689_13(lambda [] type at line 1689, col. 29 *) = Load[#this] : &:r1689_12, m1688_6 +# 1689| r1689_14(glval) = FieldAddress[obj2] : r1689_13 +# 1689| r1689_15(CapturedLambdaMyObj) = Load[?] : &:r1689_14, ~m1688_8 +# 1689| m1689_16(CapturedLambdaMyObj) = Store[?] : &:r1689_11, r1689_15 +# 1689| m1689_17(decltype([...](...){...})) = Chi : total:m1689_10, partial:m1689_16 +# 1689| r1689_18(glval) = FieldAddress[x] : r1689_2 +# 1689| r1689_19(glval) = VariableAddress[#this] : +# 1689| r1689_20(lambda [] type at line 1688, col. 25 *) = Load[#this] : &:r1689_19, m1688_6 +# 1689| r1689_21(glval) = FieldAddress[x] : r1689_20 +# 1689| r1689_22(int) = Load[?] : &:r1689_21, ~m1688_8 +# 1689| m1689_23(int) = Store[?] : &:r1689_18, r1689_22 +# 1689| m1689_24(decltype([...](...){...})) = Chi : total:m1689_17, partial:m1689_23 +# 1689| r1689_25(glval) = FieldAddress[y] : r1689_2 +# 1689| r1689_26(glval) = VariableAddress[#this] : +# 1689| r1689_27(lambda [] type at line 1688, col. 25 *) = Load[#this] : &:r1689_26, m1688_6 +# 1689| r1689_28(glval) = FieldAddress[y] : r1689_27 +# 1689| r1689_29(int) = Load[?] : &:r1689_28, ~m1688_8 +# 1689| m1689_30(int) = Store[?] : &:r1689_25, r1689_29 +# 1689| m1689_31(decltype([...](...){...})) = Chi : total:m1689_24, partial:m1689_30 +# 1689| r1689_32(glval) = FieldAddress[z] : r1689_2 +# 1689| r1689_33(glval) = VariableAddress[#this] : +# 1689| r1689_34(lambda [] type at line 1688, col. 25 *) = Load[#this] : &:r1689_33, m1688_6 +# 1689| r1689_35(glval) = FieldAddress[z] : r1689_34 +# 1689| r1689_36(int) = Load[?] : &:r1689_35, ~m1688_8 +# 1689| m1689_37(int) = Store[?] : &:r1689_32, r1689_36 +# 1689| m1689_38(decltype([...](...){...})) = Chi : total:m1689_31, partial:m1689_37 +# 1689| r1689_39(decltype([...](...){...})) = Load[#temp1689:28] : &:r1689_2, m1689_38 +# 1689| m1689_40(decltype([...](...){...})) = Store[lambda_inner] : &:r1689_1, r1689_39 +# 1690| v1690_1(void) = NoOp : +# 1688| v1688_9(void) = ReturnIndirection[#this] : &:r1688_7, m1688_8 +# 1688| v1688_10(void) = ReturnVoid : +# 1688| v1688_11(void) = AliasedUse : m1688_3 +# 1688| v1688_12(void) = ExitFunction : + +# 1689| void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const)::(lambda [] type at line 1689, col. 29)::operator()() const +# 1689| Block 0 +# 1689| v1689_1(void) = EnterFunction : +# 1689| m1689_2(unknown) = AliasedDefinition : +# 1689| m1689_3(unknown) = InitializeNonLocal : +# 1689| m1689_4(unknown) = Chi : total:m1689_2, partial:m1689_3 +# 1689| r1689_5(glval) = VariableAddress[#this] : +# 1689| m1689_6(glval) = InitializeParameter[#this] : &:r1689_5 +# 1689| r1689_7(glval) = Load[#this] : &:r1689_5, m1689_6 +# 1689| m1689_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1689_7 +# 1689| v1689_9(void) = NoOp : +# 1689| v1689_10(void) = NoOp : +# 1689| v1689_11(void) = ReturnIndirection[#this] : &:r1689_7, m1689_8 +# 1689| v1689_12(void) = ReturnVoid : +# 1689| v1689_13(void) = AliasedUse : m1689_3 +# 1689| v1689_14(void) = ExitFunction : + +# 1693| int goto_on_same_line() +# 1693| Block 0 +# 1693| v1693_1(void) = EnterFunction : +# 1693| m1693_2(unknown) = AliasedDefinition : +# 1693| m1693_3(unknown) = InitializeNonLocal : +# 1693| m1693_4(unknown) = Chi : total:m1693_2, partial:m1693_3 +# 1694| r1694_1(glval) = VariableAddress[x] : +# 1694| r1694_2(int) = Constant[42] : +# 1694| m1694_3(int) = Store[x] : &:r1694_1, r1694_2 +# 1695| v1695_1(void) = NoOp : +# 1695| v1695_2(void) = NoOp : +# 1696| r1696_1(glval) = VariableAddress[#return] : +# 1696| r1696_2(glval) = VariableAddress[x] : +# 1696| r1696_3(int) = Load[x] : &:r1696_2, m1694_3 +# 1696| m1696_4(int) = Store[#return] : &:r1696_1, r1696_3 +# 1693| r1693_5(glval) = VariableAddress[#return] : +# 1693| v1693_6(void) = ReturnValue : &:r1693_5, m1696_4 +# 1693| v1693_7(void) = AliasedUse : m1693_3 +# 1693| v1693_8(void) = ExitFunction : + +# 1701| void TrivialLambdaClass::m() const +# 1701| Block 0 +# 1701| v1701_1(void) = EnterFunction : +# 1701| m1701_2(unknown) = AliasedDefinition : +# 1701| m1701_3(unknown) = InitializeNonLocal : +# 1701| m1701_4(unknown) = Chi : total:m1701_2, partial:m1701_3 +# 1701| r1701_5(glval) = VariableAddress[#this] : +# 1701| m1701_6(glval) = InitializeParameter[#this] : &:r1701_5 +# 1701| r1701_7(glval) = Load[#this] : &:r1701_5, m1701_6 +# 1701| m1701_8(TrivialLambdaClass) = InitializeIndirection[#this] : &:r1701_7 +# 1702| r1702_1(glval) = VariableAddress[l_m_outer] : +# 1702| r1702_2(glval) = VariableAddress[#temp1702:25] : +# 1702| m1702_3(decltype([...](...){...})) = Uninitialized[#temp1702:25] : &:r1702_2 +# 1702| r1702_4(glval) = FieldAddress[(captured this)] : r1702_2 +# 1702| r1702_5(glval) = VariableAddress[#this] : +# 1702| r1702_6(TrivialLambdaClass *) = Load[#this] : &:r1702_5, m1701_6 +# 1702| r1702_7(TrivialLambdaClass) = Load[?] : &:r1702_6, ~m1701_8 +# 1702| m1702_8(TrivialLambdaClass) = Store[?] : &:r1702_4, r1702_7 +# 1702| r1702_9(decltype([...](...){...})) = Load[#temp1702:25] : &:r1702_2, ~m1702_8 +# 1702| m1702_10(decltype([...](...){...})) = Store[l_m_outer] : &:r1702_1, r1702_9 +# 1709| v1709_1(void) = NoOp : +# 1701| v1701_9(void) = ReturnIndirection[#this] : &:r1701_7, m1701_8 +# 1701| v1701_10(void) = ReturnVoid : +# 1701| v1701_11(void) = AliasedUse : m1701_3 +# 1701| v1701_12(void) = ExitFunction : + +# 1702| void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const +# 1702| Block 0 +# 1702| v1702_1(void) = EnterFunction : +# 1702| m1702_2(unknown) = AliasedDefinition : +# 1702| m1702_3(unknown) = InitializeNonLocal : +# 1702| m1702_4(unknown) = Chi : total:m1702_2, partial:m1702_3 +# 1702| r1702_5(glval) = VariableAddress[#this] : +# 1702| m1702_6(glval) = InitializeParameter[#this] : &:r1702_5 +# 1702| r1702_7(glval) = Load[#this] : &:r1702_5, m1702_6 +# 1702| m1702_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1702_7 +# 1703| r1703_1(glval) = VariableAddress[#this] : +# 1703| r1703_2(lambda [] type at line 1702, col. 26 *) = Load[#this] : &:r1703_1, m1702_6 +# 1703| r1703_3(glval) = FieldAddress[(captured this)] : r1703_2 +# 1703| r1703_4(TrivialLambdaClass *) = CopyValue : r1703_3 +# 1703| r1703_5(glval) = FunctionAddress[m] : +# 1703| v1703_6(void) = Call[m] : func:r1703_5, this:r1703_4 +# 1703| m1703_7(unknown) = ^CallSideEffect : ~m1702_4 +# 1703| m1703_8(unknown) = Chi : total:m1702_4, partial:m1703_7 +# 1703| v1703_9(void) = ^IndirectReadSideEffect[-1] : &:r1703_4, ~m1702_8 +# 1705| r1705_1(glval) = VariableAddress[l_m_inner] : +# 1705| r1705_2(glval) = VariableAddress[#temp1705:29] : +# 1705| m1705_3(decltype([...](...){...})) = Uninitialized[#temp1705:29] : &:r1705_2 +# 1705| r1705_4(glval) = FieldAddress[(captured this)] : r1705_2 +# 1705| r1705_5(glval) = VariableAddress[#this] : +# 1705| r1705_6(lambda [] type at line 1705, col. 30 *) = Load[#this] : &:r1705_5, m1702_6 +# 1705| r1705_7(glval) = FieldAddress[(captured this)] : r1705_6 +# 1705| r1705_8(TrivialLambdaClass) = Load[?] : &:r1705_7, ~m1702_8 +# 1705| m1705_9(TrivialLambdaClass) = Store[?] : &:r1705_4, r1705_8 +# 1705| r1705_10(decltype([...](...){...})) = Load[#temp1705:29] : &:r1705_2, ~m1705_9 +# 1705| m1705_11(decltype([...](...){...})) = Store[l_m_inner] : &:r1705_1, r1705_10 +# 1708| v1708_1(void) = NoOp : +# 1702| v1702_9(void) = ReturnIndirection[#this] : &:r1702_7, m1702_8 +# 1702| v1702_10(void) = ReturnVoid : +# 1702| v1702_11(void) = AliasedUse : ~m1703_8 +# 1702| v1702_12(void) = ExitFunction : + +# 1705| void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30)::operator()() const +# 1705| Block 0 +# 1705| v1705_1(void) = EnterFunction : +# 1705| m1705_2(unknown) = AliasedDefinition : +# 1705| m1705_3(unknown) = InitializeNonLocal : +# 1705| m1705_4(unknown) = Chi : total:m1705_2, partial:m1705_3 +# 1705| r1705_5(glval) = VariableAddress[#this] : +# 1705| m1705_6(glval) = InitializeParameter[#this] : &:r1705_5 +# 1705| r1705_7(glval) = Load[#this] : &:r1705_5, m1705_6 +# 1705| m1705_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1705_7 +# 1706| r1706_1(glval) = VariableAddress[#this] : +# 1706| r1706_2(lambda [] type at line 1705, col. 30 *) = Load[#this] : &:r1706_1, m1705_6 +# 1706| r1706_3(glval) = FieldAddress[(captured this)] : r1706_2 +# 1706| r1706_4(TrivialLambdaClass *) = CopyValue : r1706_3 +# 1706| r1706_5(glval) = FunctionAddress[m] : +# 1706| v1706_6(void) = Call[m] : func:r1706_5, this:r1706_4 +# 1706| m1706_7(unknown) = ^CallSideEffect : ~m1705_4 +# 1706| m1706_8(unknown) = Chi : total:m1705_4, partial:m1706_7 +# 1706| v1706_9(void) = ^IndirectReadSideEffect[-1] : &:r1706_4, ~m1705_8 +# 1707| v1707_1(void) = NoOp : +# 1705| v1705_9(void) = ReturnIndirection[#this] : &:r1705_7, m1705_8 +# 1705| v1705_10(void) = ReturnVoid : +# 1705| v1705_11(void) = AliasedUse : ~m1706_8 +# 1705| v1705_12(void) = ExitFunction : + +# 1712| void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) +# 1712| Block 0 +# 1712| v1712_1(void) = EnterFunction : +# 1712| m1712_2(unknown) = AliasedDefinition : +# 1712| m1712_3(unknown) = InitializeNonLocal : +# 1712| m1712_4(unknown) = Chi : total:m1712_2, partial:m1712_3 +# 1712| r1712_5(glval) = VariableAddress[p1] : +# 1712| m1712_6(TrivialLambdaClass) = InitializeParameter[p1] : &:r1712_5 +# 1712| r1712_7(glval) = VariableAddress[p2] : +# 1712| m1712_8(TrivialLambdaClass &) = InitializeParameter[p2] : &:r1712_7 +# 1712| r1712_9(TrivialLambdaClass &) = Load[p2] : &:r1712_7, m1712_8 +# 1712| m1712_10(unknown) = InitializeIndirection[p2] : &:r1712_9 +# 1712| r1712_11(glval) = VariableAddress[p3] : +# 1712| m1712_12(TrivialLambdaClass &&) = InitializeParameter[p3] : &:r1712_11 +# 1712| r1712_13(TrivialLambdaClass &&) = Load[p3] : &:r1712_11, m1712_12 +# 1712| m1712_14(unknown) = InitializeIndirection[p3] : &:r1712_13 +# 1713| r1713_1(glval) = VariableAddress[l1] : +# 1713| m1713_2(TrivialLambdaClass) = Uninitialized[l1] : &:r1713_1 +# 1714| r1714_1(glval) = VariableAddress[l2] : +# 1714| r1714_2(glval) = VariableAddress[#temp1714:36] : +# 1714| r1714_3(glval) = VariableAddress[#temp1714:36] : +# 1714| r1714_4(TrivialLambdaClass) = Constant[0] : +# 1714| m1714_5(TrivialLambdaClass) = Store[#temp1714:36] : &:r1714_3, r1714_4 +# 1714| r1714_6(TrivialLambdaClass) = Load[#temp1714:36] : &:r1714_3, m1714_5 +# 1714| m1714_7(TrivialLambdaClass) = Store[#temp1714:36] : &:r1714_2, r1714_6 +# 1714| r1714_8(glval) = Convert : r1714_2 +# 1714| r1714_9(TrivialLambdaClass &) = CopyValue : r1714_8 +# 1714| m1714_10(TrivialLambdaClass &) = Store[l2] : &:r1714_1, r1714_9 +# 1716| r1716_1(glval) = VariableAddress[l_outer1] : +# 1716| r1716_2(glval) = VariableAddress[#temp1716:20] : +# 1716| m1716_3(decltype([...](...){...})) = Uninitialized[#temp1716:20] : &:r1716_2 +# 1716| r1716_4(glval) = FieldAddress[p1] : r1716_2 +# 1716| r1716_5(glval) = VariableAddress[p1] : +# 1716| r1716_6(TrivialLambdaClass) = Load[p1] : &:r1716_5, m1712_6 +# 1716| m1716_7(TrivialLambdaClass) = Store[?] : &:r1716_4, r1716_6 +# 1716| m1716_8(decltype([...](...){...})) = Chi : total:m1716_3, partial:m1716_7 +# 1716| r1716_9(glval) = FieldAddress[p2] : r1716_2 +# 1716| r1716_10(glval) = VariableAddress[p2] : +# 1716| r1716_11(TrivialLambdaClass &) = Load[p2] : &:r1716_10, m1712_8 +#-----| r0_1(TrivialLambdaClass) = Load[?] : &:r1716_11, ~m1712_10 +#-----| m0_2(TrivialLambdaClass) = Store[?] : &:r1716_9, r0_1 +#-----| m0_3(decltype([...](...){...})) = Chi : total:m1716_8, partial:m0_2 +# 1716| r1716_12(glval) = FieldAddress[p3] : r1716_2 +# 1716| r1716_13(glval) = VariableAddress[p3] : +# 1716| r1716_14(TrivialLambdaClass &&) = Load[p3] : &:r1716_13, m1712_12 +#-----| r0_4(TrivialLambdaClass) = Load[?] : &:r1716_14, ~m1712_14 +#-----| m0_5(TrivialLambdaClass) = Store[?] : &:r1716_12, r0_4 +#-----| m0_6(decltype([...](...){...})) = Chi : total:m0_3, partial:m0_5 +# 1716| r1716_15(glval) = FieldAddress[l1] : r1716_2 +# 1716| r1716_16(glval) = VariableAddress[l1] : +# 1716| r1716_17(TrivialLambdaClass) = Load[l1] : &:r1716_16, m1713_2 +# 1716| m1716_18(TrivialLambdaClass) = Store[?] : &:r1716_15, r1716_17 +# 1716| m1716_19(decltype([...](...){...})) = Chi : total:m0_6, partial:m1716_18 +# 1716| r1716_20(glval) = FieldAddress[l2] : r1716_2 +# 1716| r1716_21(glval) = VariableAddress[l2] : +# 1716| r1716_22(TrivialLambdaClass &) = Load[l2] : &:r1716_21, m1714_10 +#-----| r0_7(TrivialLambdaClass) = Load[?] : &:r1716_22, m1714_7 +#-----| m0_8(TrivialLambdaClass) = Store[?] : &:r1716_20, r0_7 +#-----| m0_9(decltype([...](...){...})) = Chi : total:m1716_19, partial:m0_8 +# 1716| r1716_23(decltype([...](...){...})) = Load[#temp1716:20] : &:r1716_2, m0_9 +# 1716| m1716_24(decltype([...](...){...})) = Store[l_outer1] : &:r1716_1, r1716_23 +# 1719| v1719_1(void) = NoOp : +# 1712| v1712_15(void) = ReturnIndirection[p2] : &:r1712_9, m1712_10 +# 1712| v1712_16(void) = ReturnIndirection[p3] : &:r1712_13, m1712_14 +# 1712| v1712_17(void) = ReturnVoid : +# 1712| v1712_18(void) = AliasedUse : m1712_3 +# 1712| v1712_19(void) = ExitFunction : + +# 1716| void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const +# 1716| Block 0 +# 1716| v1716_1(void) = EnterFunction : +# 1716| m1716_2(unknown) = AliasedDefinition : +# 1716| m1716_3(unknown) = InitializeNonLocal : +# 1716| m1716_4(unknown) = Chi : total:m1716_2, partial:m1716_3 +# 1716| r1716_5(glval) = VariableAddress[#this] : +# 1716| m1716_6(glval) = InitializeParameter[#this] : &:r1716_5 +# 1716| r1716_7(glval) = Load[#this] : &:r1716_5, m1716_6 +# 1716| m1716_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1716_7 +# 1717| r1717_1(glval) = VariableAddress[l_inner1] : +# 1717| r1717_2(glval) = VariableAddress[#temp1717:24] : +# 1717| m1717_3(decltype([...](...){...})) = Uninitialized[#temp1717:24] : &:r1717_2 +# 1717| r1717_4(glval) = FieldAddress[p1] : r1717_2 +# 1717| r1717_5(glval) = VariableAddress[#this] : +# 1717| r1717_6(lambda [] type at line 1717, col. 25 *) = Load[#this] : &:r1717_5, m1716_6 +# 1717| r1717_7(glval) = FieldAddress[p1] : r1717_6 +# 1717| r1717_8(TrivialLambdaClass) = Load[?] : &:r1717_7, ~m1716_8 +# 1717| m1717_9(TrivialLambdaClass) = Store[?] : &:r1717_4, r1717_8 +# 1717| r1717_10(decltype([...](...){...})) = Load[#temp1717:24] : &:r1717_2, ~m1717_9 +# 1717| m1717_11(decltype([...](...){...})) = Store[l_inner1] : &:r1717_1, r1717_10 +# 1718| v1718_1(void) = NoOp : +# 1716| v1716_9(void) = ReturnIndirection[#this] : &:r1716_7, m1716_8 +# 1716| v1716_10(void) = ReturnVoid : +# 1716| v1716_11(void) = AliasedUse : m1716_3 +# 1716| v1716_12(void) = ExitFunction : + +# 1717| void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25)::operator()() const +# 1717| Block 0 +# 1717| v1717_1(void) = EnterFunction : +# 1717| m1717_2(unknown) = AliasedDefinition : +# 1717| m1717_3(unknown) = InitializeNonLocal : +# 1717| m1717_4(unknown) = Chi : total:m1717_2, partial:m1717_3 +# 1717| r1717_5(glval) = VariableAddress[#this] : +# 1717| m1717_6(glval) = InitializeParameter[#this] : &:r1717_5 +# 1717| r1717_7(glval) = Load[#this] : &:r1717_5, m1717_6 +# 1717| m1717_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1717_7 +# 1717| v1717_9(void) = NoOp : +# 1717| v1717_10(void) = ReturnIndirection[#this] : &:r1717_7, m1717_8 +# 1717| v1717_11(void) = ReturnVoid : +# 1717| v1717_12(void) = AliasedUse : m1717_3 +# 1717| v1717_13(void) = ExitFunction : + +# 1724| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() +# 1724| Block 0 +# 1724| v1724_1(void) = EnterFunction : +# 1724| m1724_2(unknown) = AliasedDefinition : +# 1724| m1724_3(unknown) = InitializeNonLocal : +# 1724| m1724_4(unknown) = Chi : total:m1724_2, partial:m1724_3 +# 1724| r1724_5(glval) = VariableAddress[#this] : +# 1724| m1724_6(glval) = InitializeParameter[#this] : &:r1724_5 +# 1724| r1724_7(glval) = Load[#this] : &:r1724_5, m1724_6 +# 1724| m1724_8(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1724_7 +# 1724| v1724_9(void) = NoOp : +# 1724| v1724_10(void) = ReturnIndirection[#this] : &:r1724_7, m1724_8 +# 1724| v1724_11(void) = ReturnVoid : +# 1724| v1724_12(void) = AliasedUse : m1724_3 +# 1724| v1724_13(void) = ExitFunction : + +# 1725| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) +# 1725| Block 0 +# 1725| v1725_1(void) = EnterFunction : +# 1725| m1725_2(unknown) = AliasedDefinition : +# 1725| m1725_3(unknown) = InitializeNonLocal : +# 1725| m1725_4(unknown) = Chi : total:m1725_2, partial:m1725_3 +# 1725| r1725_5(glval) = VariableAddress[#this] : +# 1725| m1725_6(glval) = InitializeParameter[#this] : &:r1725_5 +# 1725| r1725_7(glval) = Load[#this] : &:r1725_5, m1725_6 +# 1725| m1725_8(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1725_7 +# 1725| r1725_9(glval) = VariableAddress[c] : +# 1725| m1725_10(CopyConstructorWithImplicitArgumentClass &) = InitializeParameter[c] : &:r1725_9 +# 1725| r1725_11(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1725_9, m1725_10 +# 1725| m1725_12(unknown) = InitializeIndirection[c] : &:r1725_11 +# 1726| r1726_1(glval) = VariableAddress[c] : +# 1726| r1726_2(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1726_1, m1725_10 +# 1726| r1726_3(glval) = CopyValue : r1726_2 +# 1726| r1726_4(glval) = FieldAddress[x] : r1726_3 +# 1726| r1726_5(int) = Load[?] : &:r1726_4, ~m1725_12 +# 1726| r1726_6(glval) = VariableAddress[#this] : +# 1726| r1726_7(CopyConstructorWithImplicitArgumentClass *) = Load[#this] : &:r1726_6, m1725_6 +# 1726| r1726_8(glval) = FieldAddress[x] : r1726_7 +# 1726| m1726_9(int) = Store[?] : &:r1726_8, r1726_5 +# 1726| m1726_10(unknown) = Chi : total:m1725_8, partial:m1726_9 +# 1727| v1727_1(void) = NoOp : +# 1725| v1725_13(void) = ReturnIndirection[#this] : &:r1725_7, m1726_10 +# 1725| v1725_14(void) = ReturnIndirection[c] : &:r1725_11, m1725_12 +# 1725| v1725_15(void) = ReturnVoid : +# 1725| v1725_16(void) = AliasedUse : m1725_3 +# 1725| v1725_17(void) = ExitFunction : + +# 1733| void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() +# 1733| Block 0 +# 1733| v1733_1(void) = EnterFunction : +# 1733| m1733_2(unknown) = AliasedDefinition : +# 1733| m1733_3(unknown) = InitializeNonLocal : +# 1733| m1733_4(unknown) = Chi : total:m1733_2, partial:m1733_3 +# 1733| r1733_5(glval) = VariableAddress[#this] : +# 1733| m1733_6(glval) = InitializeParameter[#this] : &:r1733_5 +# 1733| r1733_7(glval) = Load[#this] : &:r1733_5, m1733_6 +# 1733| m1733_8(CopyConstructorWithBitwiseCopyClass) = InitializeIndirection[#this] : &:r1733_7 +# 1733| v1733_9(void) = NoOp : +# 1733| v1733_10(void) = ReturnIndirection[#this] : &:r1733_7, m1733_8 +# 1733| v1733_11(void) = ReturnVoid : +# 1733| v1733_12(void) = AliasedUse : m1733_3 +# 1733| v1733_13(void) = ExitFunction : + +# 1736| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) +# 1736| Block 0 +# 1736| v1736_1(void) = EnterFunction : +# 1736| m1736_2(unknown) = AliasedDefinition : +# 1736| m1736_3(unknown) = InitializeNonLocal : +# 1736| m1736_4(unknown) = Chi : total:m1736_2, partial:m1736_3 +# 1736| r1736_5(glval) = VariableAddress[#this] : +# 1736| m1736_6(glval) = InitializeParameter[#this] : &:r1736_5 +# 1736| r1736_7(glval) = Load[#this] : &:r1736_5, m1736_6 +# 1736| m1736_8(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1736_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 1736| r1736_9(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1736_6 +# 1736| r1736_10(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1736| r1736_11(glval) = VariableAddress[(unnamed parameter 0)] : +# 1736| r1736_12(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r1736_11, m0_2 +# 1736| r1736_13(glval) = CopyValue : r1736_12 +# 1736| r1736_14(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1736_13 +# 1736| r1736_15(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1736_14 +# 1736| v1736_16(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1736_10, this:r1736_9, 0:r1736_15 +# 1736| m1736_17(unknown) = ^CallSideEffect : ~m1736_4 +# 1736| m1736_18(unknown) = Chi : total:m1736_4, partial:m1736_17 +# 1736| v1736_19(void) = ^BufferReadSideEffect[0] : &:r1736_15, ~m0_4 +# 1736| m1736_20(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1736_9 +# 1736| m1736_21(unknown) = Chi : total:m1736_8, partial:m1736_20 +# 1736| v1736_22(void) = NoOp : +# 1736| v1736_23(void) = ReturnIndirection[#this] : &:r1736_7, m1736_21 +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 1736| v1736_24(void) = ReturnVoid : +# 1736| v1736_25(void) = AliasedUse : ~m1736_18 +# 1736| v1736_26(void) = ExitFunction : + +# 1740| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() +# 1740| Block 0 +# 1740| v1740_1(void) = EnterFunction : +# 1740| m1740_2(unknown) = AliasedDefinition : +# 1740| m1740_3(unknown) = InitializeNonLocal : +# 1740| m1740_4(unknown) = Chi : total:m1740_2, partial:m1740_3 +# 1740| r1740_5(glval) = VariableAddress[#this] : +# 1740| m1740_6(glval) = InitializeParameter[#this] : &:r1740_5 +# 1740| r1740_7(glval) = Load[#this] : &:r1740_5, m1740_6 +# 1740| m1740_8(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1740_7 +# 1740| r1740_9(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1740_6 +# 1740| r1740_10(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1740| v1740_11(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1740_10, this:r1740_9 +# 1740| m1740_12(unknown) = ^CallSideEffect : ~m1740_4 +# 1740| m1740_13(unknown) = Chi : total:m1740_4, partial:m1740_12 +# 1740| m1740_14(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1740_9 +# 1740| m1740_15(unknown) = Chi : total:m1740_8, partial:m1740_14 +# 1740| r1740_16(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithBitwiseCopyClass] : m1740_6 +# 1740| r1740_17(glval) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : +# 1740| v1740_18(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1740_17, this:r1740_16 +# 1740| m1740_19(unknown) = ^CallSideEffect : ~m1740_13 +# 1740| m1740_20(unknown) = Chi : total:m1740_13, partial:m1740_19 +# 1740| m1740_21(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1740_16 +# 1740| m1740_22(unknown) = Chi : total:m1740_15, partial:m1740_21 +# 1740| v1740_23(void) = NoOp : +# 1740| v1740_24(void) = ReturnIndirection[#this] : &:r1740_7, m1740_22 +# 1740| v1740_25(void) = ReturnVoid : +# 1740| v1740_26(void) = AliasedUse : ~m1740_20 +# 1740| v1740_27(void) = ExitFunction : + +# 1743| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) +# 1743| Block 0 +# 1743| v1743_1(void) = EnterFunction : +# 1743| m1743_2(unknown) = AliasedDefinition : +# 1743| m1743_3(unknown) = InitializeNonLocal : +# 1743| m1743_4(unknown) = Chi : total:m1743_2, partial:m1743_3 +# 1743| r1743_5(glval) = VariableAddress[#this] : +# 1743| m1743_6(glval) = InitializeParameter[#this] : &:r1743_5 +# 1743| r1743_7(glval) = Load[#this] : &:r1743_5, m1743_6 +# 1743| m1743_8(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1743_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(CopyConstructorTestVirtualClass &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 1743| r1743_9(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1743_6 +# 1743| r1743_10(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1743| r1743_11(glval) = VariableAddress[(unnamed parameter 0)] : +# 1743| r1743_12(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r1743_11, m0_2 +# 1743| r1743_13(glval) = CopyValue : r1743_12 +# 1743| r1743_14(glval) = ConvertToVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1743_13 +# 1743| r1743_15(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1743_14 +# 1743| v1743_16(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1743_10, this:r1743_9, 0:r1743_15 +# 1743| m1743_17(unknown) = ^CallSideEffect : ~m1743_4 +# 1743| m1743_18(unknown) = Chi : total:m1743_4, partial:m1743_17 +# 1743| v1743_19(void) = ^BufferReadSideEffect[0] : &:r1743_15, ~m0_4 +# 1743| m1743_20(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1743_9 +# 1743| m1743_21(unknown) = Chi : total:m1743_18, partial:m1743_20 +# 1743| v1743_22(void) = NoOp : +# 1743| v1743_23(void) = ReturnIndirection[#this] : &:r1743_7, m1743_8 +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 1743| v1743_24(void) = ReturnVoid : +# 1743| v1743_25(void) = AliasedUse : ~m1743_21 +# 1743| v1743_26(void) = ExitFunction : + +# 1747| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() +# 1747| Block 0 +# 1747| v1747_1(void) = EnterFunction : +# 1747| m1747_2(unknown) = AliasedDefinition : +# 1747| m1747_3(unknown) = InitializeNonLocal : +# 1747| m1747_4(unknown) = Chi : total:m1747_2, partial:m1747_3 +# 1747| r1747_5(glval) = VariableAddress[#this] : +# 1747| m1747_6(glval) = InitializeParameter[#this] : &:r1747_5 +# 1747| r1747_7(glval) = Load[#this] : &:r1747_5, m1747_6 +# 1747| m1747_8(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1747_7 +# 1747| r1747_9(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1747_6 +# 1747| r1747_10(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1747| v1747_11(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1747_10, this:r1747_9 +# 1747| m1747_12(unknown) = ^CallSideEffect : ~m1747_4 +# 1747| m1747_13(unknown) = Chi : total:m1747_4, partial:m1747_12 +# 1747| m1747_14(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1747_9 +# 1747| m1747_15(unknown) = Chi : total:m1747_13, partial:m1747_14 +# 1747| r1747_16(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithBitwiseCopyClass] : m1747_6 +# 1747| r1747_17(glval) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : +# 1747| v1747_18(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1747_17, this:r1747_16 +# 1747| m1747_19(unknown) = ^CallSideEffect : ~m1747_15 +# 1747| m1747_20(unknown) = Chi : total:m1747_15, partial:m1747_19 +# 1747| m1747_21(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1747_16 +# 1747| m1747_22(unknown) = Chi : total:m1747_20, partial:m1747_21 +# 1747| v1747_23(void) = NoOp : +# 1747| v1747_24(void) = ReturnIndirection[#this] : &:r1747_7, m1747_8 +# 1747| v1747_25(void) = ReturnVoid : +# 1747| v1747_26(void) = AliasedUse : ~m1747_22 +# 1747| v1747_27(void) = ExitFunction : + +# 1750| int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) +# 1750| Block 0 +# 1750| v1750_1(void) = EnterFunction : +# 1750| m1750_2(unknown) = AliasedDefinition : +# 1750| m1750_3(unknown) = InitializeNonLocal : +# 1750| m1750_4(unknown) = Chi : total:m1750_2, partial:m1750_3 +# 1751| r1751_1(glval) = VariableAddress[x] : +# 1751| m1751_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[x] : &:r1751_1 +# 1751| r1751_3(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1751_1, m1751_2 +# 1751| m1751_4(unknown) = InitializeIndirection[x] : &:r1751_3 +# 1752| r1752_1(glval) = VariableAddress[y] : +# 1752| m1752_2(CopyConstructorTestVirtualClass &) = InitializeParameter[y] : &:r1752_1 +# 1752| r1752_3(CopyConstructorTestVirtualClass &) = Load[y] : &:r1752_1, m1752_2 +# 1752| m1752_4(unknown) = InitializeIndirection[y] : &:r1752_3 +# 1753| r1753_1(glval) = VariableAddress[cx] : +# 1753| m1753_2(CopyConstructorTestNonVirtualClass) = Uninitialized[cx] : &:r1753_1 +# 1753| r1753_3(glval) = FunctionAddress[CopyConstructorTestNonVirtualClass] : +# 1753| r1753_4(glval) = VariableAddress[x] : +# 1753| r1753_5(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1753_4, m1751_2 +# 1753| r1753_6(glval) = CopyValue : r1753_5 +# 1753| r1753_7(CopyConstructorTestNonVirtualClass &) = CopyValue : r1753_6 +# 1753| v1753_8(void) = Call[CopyConstructorTestNonVirtualClass] : func:r1753_3, this:r1753_1, 0:r1753_7 +# 1753| m1753_9(unknown) = ^CallSideEffect : ~m1750_4 +# 1753| m1753_10(unknown) = Chi : total:m1750_4, partial:m1753_9 +# 1753| v1753_11(void) = ^BufferReadSideEffect[0] : &:r1753_7, ~m1751_4 +# 1753| m1753_12(CopyConstructorTestNonVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1753_1 +# 1753| m1753_13(CopyConstructorTestNonVirtualClass) = Chi : total:m1753_2, partial:m1753_12 +# 1754| r1754_1(glval) = VariableAddress[cy] : +# 1754| m1754_2(CopyConstructorTestVirtualClass) = Uninitialized[cy] : &:r1754_1 +# 1754| r1754_3(glval) = FunctionAddress[CopyConstructorTestVirtualClass] : +# 1754| r1754_4(glval) = VariableAddress[y] : +# 1754| r1754_5(CopyConstructorTestVirtualClass &) = Load[y] : &:r1754_4, m1752_2 +# 1754| r1754_6(glval) = CopyValue : r1754_5 +# 1754| r1754_7(CopyConstructorTestVirtualClass &) = CopyValue : r1754_6 +# 1754| v1754_8(void) = Call[CopyConstructorTestVirtualClass] : func:r1754_3, this:r1754_1, 0:r1754_7 +# 1754| m1754_9(unknown) = ^CallSideEffect : ~m1753_10 +# 1754| m1754_10(unknown) = Chi : total:m1753_10, partial:m1754_9 +# 1754| v1754_11(void) = ^BufferReadSideEffect[0] : &:r1754_7, ~m1752_4 +# 1754| m1754_12(CopyConstructorTestVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1754_1 +# 1754| m1754_13(CopyConstructorTestVirtualClass) = Chi : total:m1754_2, partial:m1754_12 +# 1755| r1755_1(glval) = VariableAddress[#return] : +# 1755| m1755_2(int) = Uninitialized[#return] : &:r1755_1 +# 1751| v1751_5(void) = ReturnIndirection[x] : &:r1751_3, m1751_4 +# 1752| v1752_5(void) = ReturnIndirection[y] : &:r1752_3, m1752_4 +# 1750| r1750_5(glval) = VariableAddress[#return] : +# 1750| v1750_6(void) = ReturnValue : &:r1750_5, m1755_2 +# 1750| v1750_7(void) = AliasedUse : ~m1754_10 +# 1750| v1750_8(void) = ExitFunction : + +# 1757| void if_initialization(int) +# 1757| Block 0 +# 1757| v1757_1(void) = EnterFunction : +# 1757| m1757_2(unknown) = AliasedDefinition : +# 1757| m1757_3(unknown) = InitializeNonLocal : +# 1757| m1757_4(unknown) = Chi : total:m1757_2, partial:m1757_3 +# 1757| r1757_5(glval) = VariableAddress[x] : +# 1757| m1757_6(int) = InitializeParameter[x] : &:r1757_5 +# 1758| r1758_1(glval) = VariableAddress[y] : +# 1758| r1758_2(glval) = VariableAddress[x] : +# 1758| r1758_3(int) = Load[x] : &:r1758_2, m1757_6 +# 1758| m1758_4(int) = Store[y] : &:r1758_1, r1758_3 +# 1758| r1758_5(glval) = VariableAddress[x] : +# 1758| r1758_6(int) = Load[x] : &:r1758_5, m1757_6 +# 1758| r1758_7(int) = Constant[1] : +# 1758| r1758_8(int) = Add : r1758_6, r1758_7 +# 1758| r1758_9(int) = Constant[0] : +# 1758| r1758_10(bool) = CompareNE : r1758_8, r1758_9 +# 1758| v1758_11(void) = ConditionalBranch : r1758_10 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 1759| Block 1 +# 1759| r1759_1(glval) = VariableAddress[x] : +# 1759| r1759_2(int) = Load[x] : &:r1759_1, m1757_6 +# 1759| r1759_3(glval) = VariableAddress[y] : +# 1759| r1759_4(int) = Load[y] : &:r1759_3, m1758_4 +# 1759| r1759_5(int) = Add : r1759_2, r1759_4 +# 1759| r1759_6(glval) = VariableAddress[x] : +# 1759| m1759_7(int) = Store[x] : &:r1759_6, r1759_5 +#-----| Goto -> Block 2 + +# 1762| Block 2 +# 1762| m1762_1(int) = Phi : from 0:m1757_6, from 1:m1759_7 +# 1762| r1762_2(glval) = VariableAddress[w] : +# 1762| m1762_3(int) = Uninitialized[w] : &:r1762_2 +# 1763| r1763_1(glval) = VariableAddress[x] : +# 1763| r1763_2(int) = Load[x] : &:r1763_1, m1762_1 +# 1763| r1763_3(glval) = VariableAddress[w] : +# 1763| m1763_4(int) = Store[w] : &:r1763_3, r1763_2 +# 1763| r1763_5(glval) = VariableAddress[x] : +# 1763| r1763_6(int) = Load[x] : &:r1763_5, m1762_1 +# 1763| r1763_7(int) = Constant[1] : +# 1763| r1763_8(int) = Add : r1763_6, r1763_7 +# 1763| r1763_9(int) = Constant[0] : +# 1763| r1763_10(bool) = CompareNE : r1763_8, r1763_9 +# 1763| v1763_11(void) = ConditionalBranch : r1763_10 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 1764| Block 3 +# 1764| r1764_1(glval) = VariableAddress[x] : +# 1764| r1764_2(int) = Load[x] : &:r1764_1, m1762_1 +# 1764| r1764_3(glval) = VariableAddress[w] : +# 1764| r1764_4(int) = Load[w] : &:r1764_3, m1763_4 +# 1764| r1764_5(int) = Add : r1764_2, r1764_4 +# 1764| r1764_6(glval) = VariableAddress[x] : +# 1764| m1764_7(int) = Store[x] : &:r1764_6, r1764_5 +#-----| Goto -> Block 4 + +# 1767| Block 4 +# 1767| m1767_1(int) = Phi : from 2:m1762_1, from 3:m1764_7 +# 1767| r1767_2(glval) = VariableAddress[x] : +# 1767| r1767_3(int) = Load[x] : &:r1767_2, m1767_1 +# 1767| r1767_4(glval) = VariableAddress[w] : +# 1767| m1767_5(int) = Store[w] : &:r1767_4, r1767_3 +# 1767| r1767_6(glval) = VariableAddress[w2] : +# 1767| r1767_7(glval) = VariableAddress[w] : +# 1767| r1767_8(int) = Load[w] : &:r1767_7, m1767_5 +# 1767| m1767_9(int) = Store[w2] : &:r1767_6, r1767_8 +# 1767| r1767_10(glval) = VariableAddress[w2] : +# 1767| r1767_11(int) = Load[w2] : &:r1767_10, m1767_9 +# 1767| r1767_12(int) = Constant[0] : +# 1767| r1767_13(bool) = CompareNE : r1767_11, r1767_12 +# 1767| r1767_14(bool) = CopyValue : r1767_13 +# 1767| v1767_15(void) = ConditionalBranch : r1767_14 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 1768| Block 5 +# 1768| r1768_1(glval) = VariableAddress[x] : +# 1768| r1768_2(int) = Load[x] : &:r1768_1, m1767_1 +# 1768| r1768_3(glval) = VariableAddress[w] : +# 1768| r1768_4(int) = Load[w] : &:r1768_3, m1767_5 +# 1768| r1768_5(int) = Add : r1768_2, r1768_4 +# 1768| r1768_6(glval) = VariableAddress[x] : +# 1768| m1768_7(int) = Store[x] : &:r1768_6, r1768_5 +#-----| Goto -> Block 6 + +# 1771| Block 6 +# 1771| m1771_1(int) = Phi : from 4:m1767_1, from 5:m1768_7 +# 1771| r1771_2(glval) = VariableAddress[v] : +# 1771| r1771_3(glval) = VariableAddress[x] : +# 1771| r1771_4(int) = Load[x] : &:r1771_3, m1771_1 +# 1771| m1771_5(int) = Store[v] : &:r1771_2, r1771_4 +# 1771| r1771_6(glval) = VariableAddress[v2] : +# 1771| r1771_7(glval) = VariableAddress[v] : +# 1771| r1771_8(int) = Load[v] : &:r1771_7, m1771_5 +# 1771| m1771_9(int) = Store[v2] : &:r1771_6, r1771_8 +# 1771| r1771_10(glval) = VariableAddress[v2] : +# 1771| r1771_11(int) = Load[v2] : &:r1771_10, m1771_9 +# 1771| r1771_12(int) = Constant[0] : +# 1771| r1771_13(bool) = CompareNE : r1771_11, r1771_12 +# 1771| r1771_14(bool) = CopyValue : r1771_13 +# 1771| v1771_15(void) = ConditionalBranch : r1771_14 +#-----| False -> Block 8 +#-----| True -> Block 7 + +# 1772| Block 7 +# 1772| r1772_1(glval) = VariableAddress[x] : +# 1772| r1772_2(int) = Load[x] : &:r1772_1, m1771_1 +# 1772| r1772_3(glval) = VariableAddress[v] : +# 1772| r1772_4(int) = Load[v] : &:r1772_3, m1771_5 +# 1772| r1772_5(int) = Add : r1772_2, r1772_4 +# 1772| r1772_6(glval) = VariableAddress[x] : +# 1772| m1772_7(int) = Store[x] : &:r1772_6, r1772_5 +#-----| Goto -> Block 8 + +# 1775| Block 8 +# 1775| m1775_1(int) = Phi : from 6:m1771_1, from 7:m1772_7 +# 1775| r1775_2(glval) = VariableAddress[z] : +# 1775| r1775_3(glval) = VariableAddress[x] : +# 1775| r1775_4(int) = Load[x] : &:r1775_3, m1775_1 +# 1775| m1775_5(int) = Store[z] : &:r1775_2, r1775_4 +# 1776| r1776_1(glval) = VariableAddress[z] : +# 1776| r1776_2(int) = Load[z] : &:r1776_1, m1775_5 +# 1776| r1776_3(int) = Constant[0] : +# 1776| r1776_4(bool) = CompareNE : r1776_2, r1776_3 +# 1776| v1776_5(void) = ConditionalBranch : r1776_4 +#-----| False -> Block 10 +#-----| True -> Block 9 + +# 1777| Block 9 +# 1777| r1777_1(glval) = VariableAddress[x] : +# 1777| r1777_2(int) = Load[x] : &:r1777_1, m1775_1 +# 1777| r1777_3(glval) = VariableAddress[z] : +# 1777| r1777_4(int) = Load[z] : &:r1777_3, m1775_5 +# 1777| r1777_5(int) = Add : r1777_2, r1777_4 +# 1777| r1777_6(glval) = VariableAddress[x] : +# 1777| m1777_7(int) = Store[x] : &:r1777_6, r1777_5 +#-----| Goto -> Block 10 + +# 1780| Block 10 +# 1780| m1780_1(int) = Phi : from 8:m1775_1, from 9:m1777_7 +# 1780| r1780_2(glval) = VariableAddress[z2] : +# 1780| r1780_3(glval) = VariableAddress[z] : +# 1780| r1780_4(int) = Load[z] : &:r1780_3, m1775_5 +# 1780| m1780_5(int) = Store[z2] : &:r1780_2, r1780_4 +# 1780| r1780_6(glval) = VariableAddress[z2] : +# 1780| r1780_7(int) = Load[z2] : &:r1780_6, m1780_5 +# 1780| r1780_8(int) = Constant[0] : +# 1780| r1780_9(bool) = CompareNE : r1780_7, r1780_8 +# 1780| r1780_10(bool) = CopyValue : r1780_9 +# 1780| v1780_11(void) = ConditionalBranch : r1780_10 +#-----| False -> Block 12 +#-----| True -> Block 11 + +# 1781| Block 11 +# 1781| r1781_1(glval) = VariableAddress[z2] : +# 1781| r1781_2(int) = Load[z2] : &:r1781_1, m1780_5 +# 1781| r1781_3(glval) = VariableAddress[x] : +# 1781| r1781_4(int) = Load[x] : &:r1781_3, m1780_1 +# 1781| r1781_5(int) = Add : r1781_4, r1781_2 +# 1781| m1781_6(int) = Store[x] : &:r1781_3, r1781_5 +#-----| Goto -> Block 12 + +# 1783| Block 12 +# 1783| v1783_1(void) = NoOp : +# 1757| v1757_7(void) = ReturnVoid : +# 1757| v1757_8(void) = AliasedUse : m1757_3 +# 1757| v1757_9(void) = ExitFunction : + +# 1785| void switch_initialization(int) +# 1785| Block 0 +# 1785| v1785_1(void) = EnterFunction : +# 1785| m1785_2(unknown) = AliasedDefinition : +# 1785| m1785_3(unknown) = InitializeNonLocal : +# 1785| m1785_4(unknown) = Chi : total:m1785_2, partial:m1785_3 +# 1785| r1785_5(glval) = VariableAddress[x] : +# 1785| m1785_6(int) = InitializeParameter[x] : &:r1785_5 +# 1786| r1786_1(glval) = VariableAddress[y] : +# 1786| r1786_2(glval) = VariableAddress[x] : +# 1786| r1786_3(int) = Load[x] : &:r1786_2, m1785_6 +# 1786| m1786_4(int) = Store[y] : &:r1786_1, r1786_3 +# 1786| r1786_5(glval) = VariableAddress[x] : +# 1786| r1786_6(int) = Load[x] : &:r1786_5, m1785_6 +# 1786| r1786_7(int) = Constant[1] : +# 1786| r1786_8(int) = Add : r1786_6, r1786_7 +# 1786| v1786_9(void) = Switch : r1786_8 +#-----| Default -> Block 1 + +# 1787| Block 1 +# 1787| v1787_1(void) = NoOp : +# 1788| r1788_1(glval) = VariableAddress[x] : +# 1788| r1788_2(int) = Load[x] : &:r1788_1, m1785_6 +# 1788| r1788_3(glval) = VariableAddress[y] : +# 1788| r1788_4(int) = Load[y] : &:r1788_3, m1786_4 +# 1788| r1788_5(int) = Add : r1788_2, r1788_4 +# 1788| r1788_6(glval) = VariableAddress[x] : +# 1788| m1788_7(int) = Store[x] : &:r1788_6, r1788_5 +# 1791| r1791_1(glval) = VariableAddress[w] : +# 1791| m1791_2(int) = Uninitialized[w] : &:r1791_1 +# 1792| r1792_1(glval) = VariableAddress[x] : +# 1792| r1792_2(int) = Load[x] : &:r1792_1, m1788_7 +# 1792| r1792_3(glval) = VariableAddress[w] : +# 1792| m1792_4(int) = Store[w] : &:r1792_3, r1792_2 +# 1792| r1792_5(glval) = VariableAddress[x] : +# 1792| r1792_6(int) = Load[x] : &:r1792_5, m1788_7 +# 1792| r1792_7(int) = Constant[1] : +# 1792| r1792_8(int) = Add : r1792_6, r1792_7 +# 1792| v1792_9(void) = Switch : r1792_8 +#-----| Default -> Block 2 + +# 1793| Block 2 +# 1793| v1793_1(void) = NoOp : +# 1794| r1794_1(glval) = VariableAddress[x] : +# 1794| r1794_2(int) = Load[x] : &:r1794_1, m1788_7 +# 1794| r1794_3(glval) = VariableAddress[w] : +# 1794| r1794_4(int) = Load[w] : &:r1794_3, m1792_4 +# 1794| r1794_5(int) = Add : r1794_2, r1794_4 +# 1794| r1794_6(glval) = VariableAddress[x] : +# 1794| m1794_7(int) = Store[x] : &:r1794_6, r1794_5 +# 1797| r1797_1(glval) = VariableAddress[x] : +# 1797| r1797_2(int) = Load[x] : &:r1797_1, m1794_7 +# 1797| r1797_3(glval) = VariableAddress[w] : +# 1797| m1797_4(int) = Store[w] : &:r1797_3, r1797_2 +# 1797| r1797_5(glval) = VariableAddress[w2] : +# 1797| r1797_6(glval) = VariableAddress[w] : +# 1797| r1797_7(int) = Load[w] : &:r1797_6, m1797_4 +# 1797| m1797_8(int) = Store[w2] : &:r1797_5, r1797_7 +# 1797| r1797_9(glval) = VariableAddress[w2] : +# 1797| r1797_10(int) = Load[w2] : &:r1797_9, m1797_8 +# 1797| r1797_11(int) = CopyValue : r1797_10 +# 1797| v1797_12(void) = Switch : r1797_11 +#-----| Default -> Block 3 + +# 1798| Block 3 +# 1798| v1798_1(void) = NoOp : +# 1799| r1799_1(glval) = VariableAddress[x] : +# 1799| r1799_2(int) = Load[x] : &:r1799_1, m1794_7 +# 1799| r1799_3(glval) = VariableAddress[w] : +# 1799| r1799_4(int) = Load[w] : &:r1799_3, m1797_4 +# 1799| r1799_5(int) = Add : r1799_2, r1799_4 +# 1799| r1799_6(glval) = VariableAddress[x] : +# 1799| m1799_7(int) = Store[x] : &:r1799_6, r1799_5 +# 1802| r1802_1(glval) = VariableAddress[v] : +# 1802| r1802_2(glval) = VariableAddress[x] : +# 1802| r1802_3(int) = Load[x] : &:r1802_2, m1799_7 +# 1802| m1802_4(int) = Store[v] : &:r1802_1, r1802_3 +# 1802| r1802_5(glval) = VariableAddress[v2] : +# 1802| r1802_6(glval) = VariableAddress[v] : +# 1802| r1802_7(int) = Load[v] : &:r1802_6, m1802_4 +# 1802| m1802_8(int) = Store[v2] : &:r1802_5, r1802_7 +# 1802| r1802_9(glval) = VariableAddress[v2] : +# 1802| r1802_10(int) = Load[v2] : &:r1802_9, m1802_8 +# 1802| r1802_11(int) = CopyValue : r1802_10 +# 1802| v1802_12(void) = Switch : r1802_11 +#-----| Default -> Block 4 + +# 1803| Block 4 +# 1803| v1803_1(void) = NoOp : +# 1804| r1804_1(glval) = VariableAddress[x] : +# 1804| r1804_2(int) = Load[x] : &:r1804_1, m1799_7 +# 1804| r1804_3(glval) = VariableAddress[v] : +# 1804| r1804_4(int) = Load[v] : &:r1804_3, m1802_4 +# 1804| r1804_5(int) = Add : r1804_2, r1804_4 +# 1804| r1804_6(glval) = VariableAddress[x] : +# 1804| m1804_7(int) = Store[x] : &:r1804_6, r1804_5 +# 1807| r1807_1(glval) = VariableAddress[z] : +# 1807| r1807_2(glval) = VariableAddress[x] : +# 1807| r1807_3(int) = Load[x] : &:r1807_2, m1804_7 +# 1807| m1807_4(int) = Store[z] : &:r1807_1, r1807_3 +# 1808| r1808_1(glval) = VariableAddress[z] : +# 1808| r1808_2(int) = Load[z] : &:r1808_1, m1807_4 +# 1808| v1808_3(void) = Switch : r1808_2 +#-----| Default -> Block 5 + +# 1809| Block 5 +# 1809| v1809_1(void) = NoOp : +# 1810| r1810_1(glval) = VariableAddress[x] : +# 1810| r1810_2(int) = Load[x] : &:r1810_1, m1804_7 +# 1810| r1810_3(glval) = VariableAddress[z] : +# 1810| r1810_4(int) = Load[z] : &:r1810_3, m1807_4 +# 1810| r1810_5(int) = Add : r1810_2, r1810_4 +# 1810| r1810_6(glval) = VariableAddress[x] : +# 1810| m1810_7(int) = Store[x] : &:r1810_6, r1810_5 +# 1813| r1813_1(glval) = VariableAddress[z2] : +# 1813| r1813_2(glval) = VariableAddress[z] : +# 1813| r1813_3(int) = Load[z] : &:r1813_2, m1807_4 +# 1813| m1813_4(int) = Store[z2] : &:r1813_1, r1813_3 +# 1813| r1813_5(glval) = VariableAddress[z2] : +# 1813| r1813_6(int) = Load[z2] : &:r1813_5, m1813_4 +# 1813| r1813_7(int) = CopyValue : r1813_6 +# 1813| v1813_8(void) = Switch : r1813_7 +#-----| Default -> Block 6 + +# 1814| Block 6 +# 1814| v1814_1(void) = NoOp : +# 1815| r1815_1(glval) = VariableAddress[z2] : +# 1815| r1815_2(int) = Load[z2] : &:r1815_1, m1813_4 +# 1815| r1815_3(glval) = VariableAddress[x] : +# 1815| r1815_4(int) = Load[x] : &:r1815_3, m1810_7 +# 1815| r1815_5(int) = Add : r1815_4, r1815_2 +# 1815| m1815_6(int) = Store[x] : &:r1815_3, r1815_5 +# 1817| v1817_1(void) = NoOp : +# 1785| v1785_7(void) = ReturnVoid : +# 1785| v1785_8(void) = AliasedUse : m1785_3 +# 1785| v1785_9(void) = ExitFunction : + +# 1821| int global_2 +# 1821| Block 0 +# 1821| v1821_1(void) = EnterFunction : +# 1821| m1821_2(unknown) = AliasedDefinition : +# 1821| r1821_3(glval) = VariableAddress[global_2] : +# 1821| r1821_4(int) = Constant[1] : +# 1821| m1821_5(int) = Store[global_2] : &:r1821_3, r1821_4 +# 1821| m1821_6(unknown) = Chi : total:m1821_2, partial:m1821_5 +# 1821| v1821_7(void) = ReturnVoid : +# 1821| v1821_8(void) = AliasedUse : ~m1821_6 +# 1821| v1821_9(void) = ExitFunction : + +# 1825| constructor_only global_4 +# 1825| Block 0 +# 1825| v1825_1(void) = EnterFunction : +# 1825| m1825_2(unknown) = AliasedDefinition : +# 1825| r1825_3(glval) = VariableAddress[global_4] : +# 1825| r1825_4(glval) = FunctionAddress[constructor_only] : +# 1825| r1825_5(int) = Constant[1] : +# 1825| v1825_6(void) = Call[constructor_only] : func:r1825_4, this:r1825_3, 0:r1825_5 +# 1825| m1825_7(unknown) = ^CallSideEffect : ~m1825_2 +# 1825| m1825_8(unknown) = Chi : total:m1825_2, partial:m1825_7 +# 1825| m1825_9(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1825_3 +# 1825| m1825_10(unknown) = Chi : total:m1825_8, partial:m1825_9 +# 1825| v1825_11(void) = ReturnVoid : +# 1825| v1825_12(void) = AliasedUse : ~m1825_10 +# 1825| v1825_13(void) = ExitFunction : + +# 1827| constructor_only global_5 +# 1827| Block 0 +# 1827| v1827_1(void) = EnterFunction : +# 1827| m1827_2(unknown) = AliasedDefinition : +# 1827| r1827_3(glval) = VariableAddress[global_5] : +# 1827| r1827_4(glval) = FunctionAddress[constructor_only] : +# 1827| r1827_5(int) = Constant[2] : +# 1827| v1827_6(void) = Call[constructor_only] : func:r1827_4, this:r1827_3, 0:r1827_5 +# 1827| m1827_7(unknown) = ^CallSideEffect : ~m1827_2 +# 1827| m1827_8(unknown) = Chi : total:m1827_2, partial:m1827_7 +# 1827| m1827_9(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1827_3 +# 1827| m1827_10(unknown) = Chi : total:m1827_8, partial:m1827_9 +# 1827| v1827_11(void) = ReturnVoid : +# 1827| v1827_12(void) = AliasedUse : ~m1827_10 +# 1827| v1827_13(void) = ExitFunction : + +# 1829| char* global_string +# 1829| Block 0 +# 1829| v1829_1(void) = EnterFunction : +# 1829| m1829_2(unknown) = AliasedDefinition : +# 1829| r1829_3(glval) = VariableAddress[global_string] : +# 1829| r1829_4(glval) = StringConstant["global string"] : +# 1829| r1829_5(char *) = Convert : r1829_4 +# 1829| r1829_6(char *) = Convert : r1829_5 +# 1829| m1829_7(char *) = Store[global_string] : &:r1829_3, r1829_6 +# 1829| m1829_8(unknown) = Chi : total:m1829_2, partial:m1829_7 +# 1829| v1829_9(void) = ReturnVoid : +# 1829| v1829_10(void) = AliasedUse : ~m1829_8 +# 1829| v1829_11(void) = ExitFunction : + +# 1831| int global_6 +# 1831| Block 0 +# 1831| v1831_1(void) = EnterFunction : +# 1831| m1831_2(unknown) = AliasedDefinition : +# 1831| r1831_3(glval) = VariableAddress[global_6] : +# 1831| r1831_4(glval) = VariableAddress[global_2] : +# 1831| r1831_5(int) = Load[global_2] : &:r1831_4, ~m1831_2 +# 1831| m1831_6(int) = Store[global_6] : &:r1831_3, r1831_5 +# 1831| m1831_7(unknown) = Chi : total:m1831_2, partial:m1831_6 +# 1831| v1831_8(void) = ReturnVoid : +# 1831| v1831_9(void) = AliasedUse : ~m1831_7 +# 1831| v1831_10(void) = ExitFunction : + +# 1834| block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) +# 1834| Block 0 +# 1834| v1834_1(void) = EnterFunction : +# 1834| m1834_2(unknown) = AliasedDefinition : +# 1834| m1834_3(unknown) = InitializeNonLocal : +# 1834| m1834_4(unknown) = Chi : total:m1834_2, partial:m1834_3 +# 1834| r1834_5(glval) = VariableAddress[#this] : +# 1834| m1834_6(glval) = InitializeParameter[#this] : &:r1834_5 +# 1834| r1834_7(glval) = Load[#this] : &:r1834_5, m1834_6 +# 1834| m1834_8(A) = InitializeIndirection[#this] : &:r1834_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(A &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(A &&) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +#-----| r0_5(glval) = VariableAddress[#this] : +#-----| r0_6(A *) = Load[#this] : &:r0_5, m1834_6 +#-----| r0_7(glval[1]>) = FieldAddress[e] : r0_6 +#-----| r0_8(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| r0_9(A &&) = Load[(unnamed parameter 0)] : &:r0_8, m0_2 +#-----| r0_10(glval) = CopyValue : r0_9 +#-----| r0_11(glval[1]>) = FieldAddress[e] : r0_10 +#-----| r0_12(enum [1]) = Load[?] : &:r0_11, ~m0_4 +#-----| m0_13(enum [1]) = Store[?] : &:r0_7, r0_12 +#-----| m0_14(unknown) = Chi : total:m1834_8, partial:m0_13 +#-----| r0_15(glval) = VariableAddress[#return] : +#-----| r0_16(glval) = VariableAddress[#this] : +#-----| r0_17(A *) = Load[#this] : &:r0_16, m1834_6 +#-----| r0_18(glval) = CopyValue : r0_17 +#-----| r0_19(A &) = CopyValue : r0_18 +#-----| m0_20(A &) = Store[#return] : &:r0_15, r0_19 +# 1834| v1834_9(void) = ReturnIndirection[#this] : &:r1834_7, m0_14 +#-----| v0_21(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 1834| r1834_10(glval) = VariableAddress[#return] : +# 1834| v1834_11(void) = ReturnValue : &:r1834_10, m0_20 +# 1834| v1834_12(void) = AliasedUse : m1834_3 +# 1834| v1834_13(void) = ExitFunction : + +# 1839| block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) +# 1839| Block 0 +# 1839| v1839_1(void) = EnterFunction : +# 1839| m1839_2(unknown) = AliasedDefinition : +# 1839| m1839_3(unknown) = InitializeNonLocal : +# 1839| m1839_4(unknown) = Chi : total:m1839_2, partial:m1839_3 +# 1839| r1839_5(glval) = VariableAddress[#this] : +# 1839| m1839_6(glval) = InitializeParameter[#this] : &:r1839_5 +# 1839| r1839_7(glval) = Load[#this] : &:r1839_5, m1839_6 +# 1839| m1839_8(B) = InitializeIndirection[#this] : &:r1839_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(B &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(B &&) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 1839| r1839_9(glval) = VariableAddress[#this] : +# 1839| r1839_10(B *) = Load[#this] : &:r1839_9, m1839_6 +#-----| r0_5(A *) = ConvertToNonVirtualBase[B : A] : r1839_10 +# 1839| r1839_11(glval) = FunctionAddress[operator=] : +# 1839| r1839_12(glval) = VariableAddress[(unnamed parameter 0)] : +# 1839| r1839_13(B &&) = Load[(unnamed parameter 0)] : &:r1839_12, m0_2 +#-----| r0_6(glval) = CopyValue : r1839_13 +# 1839| r1839_14(B *) = CopyValue : r0_6 +#-----| r0_7(A *) = ConvertToNonVirtualBase[B : A] : r1839_14 +# 1839| r1839_15(glval) = CopyValue : r0_7 +#-----| r0_8(A &) = CopyValue : r1839_15 +# 1839| r1839_16(A &) = Call[operator=] : func:r1839_11, this:r0_5, 0:r0_8 +# 1839| m1839_17(unknown) = ^CallSideEffect : ~m1839_4 +# 1839| m1839_18(unknown) = Chi : total:m1839_4, partial:m1839_17 +#-----| v0_9(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m1839_8 +#-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_8, ~m0_4 +#-----| m0_11(A) = ^IndirectMayWriteSideEffect[-1] : &:r0_5 +#-----| m0_12(unknown) = Chi : total:m1839_8, partial:m0_11 +#-----| m0_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r0_8 +#-----| m0_14(unknown) = Chi : total:m0_4, partial:m0_13 +#-----| r0_15(glval) = CopyValue : r1839_16 +#-----| r0_16(glval) = VariableAddress[#return] : +#-----| r0_17(glval) = VariableAddress[#this] : +#-----| r0_18(B *) = Load[#this] : &:r0_17, m1839_6 +#-----| r0_19(glval) = CopyValue : r0_18 +#-----| r0_20(B &) = CopyValue : r0_19 +#-----| m0_21(B &) = Store[#return] : &:r0_16, r0_20 +# 1839| v1839_19(void) = ReturnIndirection[#this] : &:r1839_7, m0_12 +#-----| v0_22(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_14 +# 1839| r1839_20(glval) = VariableAddress[#return] : +# 1839| v1839_21(void) = ReturnValue : &:r1839_20, m0_21 +# 1839| v1839_22(void) = AliasedUse : ~m1839_18 +# 1839| v1839_23(void) = ExitFunction : + +# 1843| void block_assignment::foo() +# 1843| Block 0 +# 1843| v1843_1(void) = EnterFunction : +# 1843| m1843_2(unknown) = AliasedDefinition : +# 1843| m1843_3(unknown) = InitializeNonLocal : +# 1843| m1843_4(unknown) = Chi : total:m1843_2, partial:m1843_3 +# 1844| r1844_1(glval) = VariableAddress[v] : +# 1844| m1844_2(B) = Uninitialized[v] : &:r1844_1 +# 1844| r1844_3(glval) = FunctionAddress[B] : +# 1844| r1844_4(A *) = Constant[0] : +# 1844| v1844_5(void) = Call[B] : func:r1844_3, this:r1844_1, 0:r1844_4 +# 1844| m1844_6(unknown) = ^CallSideEffect : ~m1843_4 +# 1844| m1844_7(unknown) = Chi : total:m1843_4, partial:m1844_6 +# 1844| v1844_8(void) = ^BufferReadSideEffect[0] : &:r1844_4, ~m1844_7 +# 1844| m1844_9(B) = ^IndirectMayWriteSideEffect[-1] : &:r1844_1 +# 1844| m1844_10(B) = Chi : total:m1844_2, partial:m1844_9 +# 1844| m1844_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1844_4 +# 1844| m1844_12(unknown) = Chi : total:m1844_7, partial:m1844_11 +# 1845| r1845_1(glval) = VariableAddress[v] : +# 1845| r1845_2(glval) = FunctionAddress[operator=] : +# 1845| r1845_3(glval) = VariableAddress[#temp1845:13] : +# 1845| m1845_4(B) = Uninitialized[#temp1845:13] : &:r1845_3 +# 1845| r1845_5(glval) = FunctionAddress[B] : +# 1845| r1845_6(A *) = Constant[0] : +# 1845| v1845_7(void) = Call[B] : func:r1845_5, this:r1845_3, 0:r1845_6 +# 1845| m1845_8(unknown) = ^CallSideEffect : ~m1844_12 +# 1845| m1845_9(unknown) = Chi : total:m1844_12, partial:m1845_8 +# 1845| v1845_10(void) = ^BufferReadSideEffect[0] : &:r1845_6, ~m1845_9 +# 1845| m1845_11(B) = ^IndirectMayWriteSideEffect[-1] : &:r1845_3 +# 1845| m1845_12(B) = Chi : total:m1845_4, partial:m1845_11 +# 1845| m1845_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r1845_6 +# 1845| m1845_14(unknown) = Chi : total:m1845_9, partial:m1845_13 +# 1845| r1845_15(B &) = CopyValue : r1845_3 +# 1845| r1845_16(B &) = Call[operator=] : func:r1845_2, this:r1845_1, 0:r1845_15 +# 1845| m1845_17(unknown) = ^CallSideEffect : ~m1845_14 +# 1845| m1845_18(unknown) = Chi : total:m1845_14, partial:m1845_17 +# 1845| v1845_19(void) = ^IndirectReadSideEffect[-1] : &:r1845_1, m1844_10 +# 1845| v1845_20(void) = ^BufferReadSideEffect[0] : &:r1845_15, ~m1845_12 +# 1845| m1845_21(B) = ^IndirectMayWriteSideEffect[-1] : &:r1845_1 +# 1845| m1845_22(B) = Chi : total:m1844_10, partial:m1845_21 +# 1845| m1845_23(unknown) = ^BufferMayWriteSideEffect[0] : &:r1845_15 +# 1845| m1845_24(B) = Chi : total:m1845_12, partial:m1845_23 +# 1845| r1845_25(glval) = CopyValue : r1845_16 +# 1846| v1846_1(void) = NoOp : +# 1843| v1843_5(void) = ReturnVoid : +# 1843| v1843_6(void) = AliasedUse : ~m1845_18 +# 1843| v1843_7(void) = ExitFunction : + +# 1849| void magicvars() +# 1849| Block 0 +# 1849| v1849_1(void) = EnterFunction : +# 1849| m1849_2(unknown) = AliasedDefinition : +# 1849| m1849_3(unknown) = InitializeNonLocal : +# 1849| m1849_4(unknown) = Chi : total:m1849_2, partial:m1849_3 +# 1850| r1850_1(glval) = VariableAddress[pf] : +# 1850| r1850_2(glval) = VariableAddress[__PRETTY_FUNCTION__] : +# 1850| r1850_3(char *) = Convert : r1850_2 +# 1850| m1850_4(char *) = Store[pf] : &:r1850_1, r1850_3 +# 1851| r1851_1(glval) = VariableAddress[strfunc] : +# 1851| r1851_2(glval) = VariableAddress[__func__] : +# 1851| r1851_3(char *) = Convert : r1851_2 +# 1851| m1851_4(char *) = Store[strfunc] : &:r1851_1, r1851_3 +# 1852| v1852_1(void) = NoOp : +# 1849| v1849_5(void) = ReturnVoid : +# 1849| v1849_6(void) = AliasedUse : m1849_3 +# 1849| v1849_7(void) = ExitFunction : + +# 1862| void* missing_declaration_entries::Bar1::missing_type_decl_entry(missing_declaration_entries::Bar1::pointer) +# 1862| Block 0 +# 1862| v1862_1(void) = EnterFunction : +# 1862| m1862_2(unknown) = AliasedDefinition : +# 1862| m1862_3(unknown) = InitializeNonLocal : +# 1862| m1862_4(unknown) = Chi : total:m1862_2, partial:m1862_3 +# 1862| r1862_5(glval) = VariableAddress[#this] : +# 1862| m1862_6(glval>) = InitializeParameter[#this] : &:r1862_5 +# 1862| r1862_7(glval>) = Load[#this] : &:r1862_5, m1862_6 +# 1862| m1862_8(Bar1) = InitializeIndirection[#this] : &:r1862_7 +# 1862| r1862_9(glval) = VariableAddress[p] : +# 1862| m1862_10(S *) = InitializeParameter[p] : &:r1862_9 +# 1862| r1862_11(S *) = Load[p] : &:r1862_9, m1862_10 +# 1862| m1862_12(unknown) = InitializeIndirection[p] : &:r1862_11 +# 1864| r1864_1(glval) = VariableAddress[#return] : +# 1864| r1864_2(glval) = VariableAddress[p] : +# 1864| r1864_3(S *) = Load[p] : &:r1864_2, m1862_10 +# 1864| r1864_4(void *) = Convert : r1864_3 +# 1864| m1864_5(void *) = Store[#return] : &:r1864_1, r1864_4 +# 1862| v1862_13(void) = ReturnIndirection[#this] : &:r1862_7, m1862_8 +# 1862| v1862_14(void) = ReturnIndirection[p] : &:r1862_11, m1862_12 +# 1862| r1862_15(glval) = VariableAddress[#return] : +# 1862| v1862_16(void) = ReturnValue : &:r1862_15, m1864_5 +# 1862| v1862_17(void) = AliasedUse : m1862_3 +# 1862| v1862_18(void) = ExitFunction : + +# 1868| void missing_declaration_entries::test1() +# 1868| Block 0 +# 1868| v1868_1(void) = EnterFunction : +# 1868| m1868_2(unknown) = AliasedDefinition : +# 1868| m1868_3(unknown) = InitializeNonLocal : +# 1868| m1868_4(unknown) = Chi : total:m1868_2, partial:m1868_3 +# 1869| r1869_1(glval>) = VariableAddress[b] : +# 1869| m1869_2(Bar1) = Uninitialized[b] : &:r1869_1 +# 1870| r1870_1(glval>) = VariableAddress[b] : +# 1870| r1870_2(glval) = FunctionAddress[missing_type_decl_entry] : +# 1870| r1870_3(S *) = Constant[0] : +# 1870| r1870_4(void *) = Call[missing_type_decl_entry] : func:r1870_2, this:r1870_1, 0:r1870_3 +# 1870| m1870_5(unknown) = ^CallSideEffect : ~m1868_4 +# 1870| m1870_6(unknown) = Chi : total:m1868_4, partial:m1870_5 +# 1870| v1870_7(void) = ^IndirectReadSideEffect[-1] : &:r1870_1, m1869_2 +# 1870| v1870_8(void) = ^BufferReadSideEffect[0] : &:r1870_3, ~m1870_6 +# 1870| m1870_9(Bar1) = ^IndirectMayWriteSideEffect[-1] : &:r1870_1 +# 1870| m1870_10(Bar1) = Chi : total:m1869_2, partial:m1870_9 +# 1870| m1870_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1870_3 +# 1870| m1870_12(unknown) = Chi : total:m1870_6, partial:m1870_11 +# 1871| v1871_1(void) = NoOp : +# 1868| v1868_5(void) = ReturnVoid : +# 1868| v1868_6(void) = AliasedUse : ~m1870_12 +# 1868| v1868_7(void) = ExitFunction : + +# 1875| int missing_declaration_entries::Bar2::two_missing_variable_declaration_entries() +# 1875| Block 0 +# 1875| v1875_1(void) = EnterFunction : +# 1875| m1875_2(unknown) = AliasedDefinition : +# 1875| m1875_3(unknown) = InitializeNonLocal : +# 1875| m1875_4(unknown) = Chi : total:m1875_2, partial:m1875_3 +# 1875| r1875_5(glval) = VariableAddress[#this] : +# 1875| m1875_6(glval>) = InitializeParameter[#this] : &:r1875_5 +# 1875| r1875_7(glval>) = Load[#this] : &:r1875_5, m1875_6 +# 1875| m1875_8(Bar2) = InitializeIndirection[#this] : &:r1875_7 +# 1876| r1876_1(glval) = VariableAddress[x] : +# 1876| m1876_2(int[10]) = Uninitialized[x] : &:r1876_1 +# 1876| r1876_3(glval) = VariableAddress[y] : +# 1876| m1876_4(int[10]) = Uninitialized[y] : &:r1876_3 +# 1877| r1877_1(int) = Constant[10] : +# 1877| r1877_2(glval) = VariableAddress[x] : +# 1877| r1877_3(int *) = Convert : r1877_2 +# 1877| r1877_4(glval) = CopyValue : r1877_3 +# 1877| m1877_5(int) = Store[?] : &:r1877_4, r1877_1 +# 1877| m1877_6(int[10]) = Chi : total:m1876_2, partial:m1877_5 +# 1878| r1878_1(int) = Constant[10] : +# 1878| r1878_2(glval) = VariableAddress[y] : +# 1878| r1878_3(int *) = Convert : r1878_2 +# 1878| r1878_4(glval) = CopyValue : r1878_3 +# 1878| m1878_5(int) = Store[?] : &:r1878_4, r1878_1 +# 1878| m1878_6(int[10]) = Chi : total:m1876_4, partial:m1878_5 +# 1879| r1879_1(glval) = VariableAddress[#return] : +# 1879| r1879_2(glval) = VariableAddress[x] : +# 1879| r1879_3(int *) = Convert : r1879_2 +# 1879| r1879_4(int) = Load[?] : &:r1879_3, m1877_5 +# 1879| r1879_5(glval) = VariableAddress[y] : +# 1879| r1879_6(int *) = Convert : r1879_5 +# 1879| r1879_7(int) = Load[?] : &:r1879_6, m1878_5 +# 1879| r1879_8(int) = Add : r1879_4, r1879_7 +# 1879| m1879_9(int) = Store[#return] : &:r1879_1, r1879_8 +# 1875| v1875_9(void) = ReturnIndirection[#this] : &:r1875_7, m1875_8 +# 1875| r1875_10(glval) = VariableAddress[#return] : +# 1875| v1875_11(void) = ReturnValue : &:r1875_10, m1879_9 +# 1875| v1875_12(void) = AliasedUse : m1875_3 +# 1875| v1875_13(void) = ExitFunction : + +# 1883| void missing_declaration_entries::test2() +# 1883| Block 0 +# 1883| v1883_1(void) = EnterFunction : +# 1883| m1883_2(unknown) = AliasedDefinition : +# 1883| m1883_3(unknown) = InitializeNonLocal : +# 1883| m1883_4(unknown) = Chi : total:m1883_2, partial:m1883_3 +# 1884| r1884_1(glval>) = VariableAddress[b] : +# 1884| m1884_2(Bar2) = Uninitialized[b] : &:r1884_1 +# 1885| r1885_1(glval>) = VariableAddress[b] : +# 1885| r1885_2(glval) = FunctionAddress[two_missing_variable_declaration_entries] : +# 1885| r1885_3(int) = Call[two_missing_variable_declaration_entries] : func:r1885_2, this:r1885_1 +# 1885| m1885_4(unknown) = ^CallSideEffect : ~m1883_4 +# 1885| m1885_5(unknown) = Chi : total:m1883_4, partial:m1885_4 +# 1885| v1885_6(void) = ^IndirectReadSideEffect[-1] : &:r1885_1, m1884_2 +# 1885| m1885_7(Bar2) = ^IndirectMayWriteSideEffect[-1] : &:r1885_1 +# 1885| m1885_8(Bar2) = Chi : total:m1884_2, partial:m1885_7 +# 1886| v1886_1(void) = NoOp : +# 1883| v1883_5(void) = ReturnVoid : +# 1883| v1883_6(void) = AliasedUse : ~m1885_5 +# 1883| v1883_7(void) = ExitFunction : + +# 1889| char global_template +# 1889| Block 0 +# 1889| v1889_1(void) = EnterFunction : +# 1889| m1889_2(unknown) = AliasedDefinition : +# 1889| r1889_3(glval) = VariableAddress[global_template] : +# 1889| r1889_4(char) = Constant[42] : +# 1889| m1889_5(char) = Store[global_template] : &:r1889_3, r1889_4 +# 1889| m1889_6(unknown) = Chi : total:m1889_2, partial:m1889_5 +# 1889| v1889_7(void) = ReturnVoid : +# 1889| v1889_8(void) = AliasedUse : ~m1889_6 +# 1889| v1889_9(void) = ExitFunction : + +# 1889| int global_template +# 1889| Block 0 +# 1889| v1889_1(void) = EnterFunction : +# 1889| m1889_2(unknown) = AliasedDefinition : +# 1889| r1889_3(glval) = VariableAddress[global_template] : +# 1889| r1889_4(int) = Constant[42] : +# 1889| m1889_5(int) = Store[global_template] : &:r1889_3, r1889_4 +# 1889| m1889_6(unknown) = Chi : total:m1889_2, partial:m1889_5 +# 1889| v1889_7(void) = ReturnVoid : +# 1889| v1889_8(void) = AliasedUse : ~m1889_6 +# 1889| v1889_9(void) = ExitFunction : + +# 1891| int test_global_template_int() +# 1891| Block 0 +# 1891| v1891_1(void) = EnterFunction : +# 1891| m1891_2(unknown) = AliasedDefinition : +# 1891| m1891_3(unknown) = InitializeNonLocal : +# 1891| m1891_4(unknown) = Chi : total:m1891_2, partial:m1891_3 +# 1892| r1892_1(glval) = VariableAddress[local_int] : +# 1892| r1892_2(glval) = VariableAddress[global_template] : +# 1892| r1892_3(int) = Load[global_template] : &:r1892_2, ~m1891_3 +# 1892| m1892_4(int) = Store[local_int] : &:r1892_1, r1892_3 +# 1893| r1893_1(glval) = VariableAddress[local_char] : +# 1893| r1893_2(glval) = VariableAddress[global_template] : +# 1893| r1893_3(char) = Load[global_template] : &:r1893_2, ~m1891_3 +# 1893| m1893_4(char) = Store[local_char] : &:r1893_1, r1893_3 +# 1894| r1894_1(glval) = VariableAddress[#return] : +# 1894| r1894_2(glval) = VariableAddress[local_int] : +# 1894| r1894_3(int) = Load[local_int] : &:r1894_2, m1892_4 +# 1894| r1894_4(glval) = VariableAddress[local_char] : +# 1894| r1894_5(char) = Load[local_char] : &:r1894_4, m1893_4 +# 1894| r1894_6(int) = Convert : r1894_5 +# 1894| r1894_7(int) = Add : r1894_3, r1894_6 +# 1894| m1894_8(int) = Store[#return] : &:r1894_1, r1894_7 +# 1891| r1891_5(glval) = VariableAddress[#return] : +# 1891| v1891_6(void) = ReturnValue : &:r1891_5, m1894_8 +# 1891| v1891_7(void) = AliasedUse : m1891_3 +# 1891| v1891_8(void) = ExitFunction : + +# 1899| int noreturnTest(int) +# 1899| Block 0 +# 1899| v1899_1(void) = EnterFunction : +# 1899| m1899_2(unknown) = AliasedDefinition : +# 1899| m1899_3(unknown) = InitializeNonLocal : +# 1899| m1899_4(unknown) = Chi : total:m1899_2, partial:m1899_3 +# 1899| r1899_5(glval) = VariableAddress[x] : +# 1899| m1899_6(int) = InitializeParameter[x] : &:r1899_5 +# 1900| r1900_1(glval) = VariableAddress[x] : +# 1900| r1900_2(int) = Load[x] : &:r1900_1, m1899_6 +# 1900| r1900_3(int) = Constant[10] : +# 1900| r1900_4(bool) = CompareLT : r1900_2, r1900_3 +# 1900| v1900_5(void) = ConditionalBranch : r1900_4 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 1901| Block 1 +# 1901| r1901_1(glval) = VariableAddress[#return] : +# 1901| r1901_2(glval) = VariableAddress[x] : +# 1901| r1901_3(int) = Load[x] : &:r1901_2, m1899_6 +# 1901| m1901_4(int) = Store[#return] : &:r1901_1, r1901_3 +# 1899| r1899_7(glval) = VariableAddress[#return] : +# 1899| v1899_8(void) = ReturnValue : &:r1899_7, m1901_4 +# 1899| v1899_9(void) = AliasedUse : m1899_3 +# 1899| v1899_10(void) = ExitFunction : + +# 1903| Block 2 +# 1903| r1903_1(glval) = FunctionAddress[noreturnFunc] : +# 1903| v1903_2(void) = Call[noreturnFunc] : func:r1903_1 +# 1903| m1903_3(unknown) = ^CallSideEffect : ~m1899_4 +# 1903| m1903_4(unknown) = Chi : total:m1899_4, partial:m1903_3 +# 1899| v1899_11(void) = Unreached : + +# 1907| int noreturnTest2(int) +# 1907| Block 0 +# 1907| v1907_1(void) = EnterFunction : +# 1907| m1907_2(unknown) = AliasedDefinition : +# 1907| m1907_3(unknown) = InitializeNonLocal : +# 1907| m1907_4(unknown) = Chi : total:m1907_2, partial:m1907_3 +# 1907| r1907_5(glval) = VariableAddress[x] : +# 1907| m1907_6(int) = InitializeParameter[x] : &:r1907_5 +# 1908| r1908_1(glval) = VariableAddress[x] : +# 1908| r1908_2(int) = Load[x] : &:r1908_1, m1907_6 +# 1908| r1908_3(int) = Constant[10] : +# 1908| r1908_4(bool) = CompareLT : r1908_2, r1908_3 +# 1908| v1908_5(void) = ConditionalBranch : r1908_4 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 1909| Block 1 +# 1909| r1909_1(glval) = FunctionAddress[noreturnFunc] : +# 1909| v1909_2(void) = Call[noreturnFunc] : func:r1909_1 +# 1909| m1909_3(unknown) = ^CallSideEffect : ~m1907_4 +# 1909| m1909_4(unknown) = Chi : total:m1907_4, partial:m1909_3 +# 1907| v1907_7(void) = Unreached : + +# 1911| Block 2 +# 1911| r1911_1(glval) = VariableAddress[#return] : +# 1911| r1911_2(glval) = VariableAddress[x] : +# 1911| r1911_3(int) = Load[x] : &:r1911_2, m1907_6 +# 1911| m1911_4(int) = Store[#return] : &:r1911_1, r1911_3 +# 1907| r1907_8(glval) = VariableAddress[#return] : +# 1907| v1907_9(void) = ReturnValue : &:r1907_8, m1911_4 +# 1907| v1907_10(void) = AliasedUse : m1907_3 +# 1907| v1907_11(void) = ExitFunction : + +# 1914| int static_function(int) +# 1914| Block 0 +# 1914| v1914_1(void) = EnterFunction : +# 1914| m1914_2(unknown) = AliasedDefinition : +# 1914| m1914_3(unknown) = InitializeNonLocal : +# 1914| m1914_4(unknown) = Chi : total:m1914_2, partial:m1914_3 +# 1914| r1914_5(glval) = VariableAddress[x] : +# 1914| m1914_6(int) = InitializeParameter[x] : &:r1914_5 +# 1915| r1915_1(glval) = VariableAddress[#return] : +# 1915| r1915_2(glval) = VariableAddress[x] : +# 1915| r1915_3(int) = Load[x] : &:r1915_2, m1914_6 +# 1915| m1915_4(int) = Store[#return] : &:r1915_1, r1915_3 +# 1914| r1914_7(glval) = VariableAddress[#return] : +# 1914| v1914_8(void) = ReturnValue : &:r1914_7, m1915_4 +# 1914| v1914_9(void) = AliasedUse : m1914_3 +# 1914| v1914_10(void) = ExitFunction : + +# 1918| void test_static_functions_with_assignments() +# 1918| Block 0 +# 1918| v1918_1(void) = EnterFunction : +# 1918| m1918_2(unknown) = AliasedDefinition : +# 1918| m1918_3(unknown) = InitializeNonLocal : +# 1918| m1918_4(unknown) = Chi : total:m1918_2, partial:m1918_3 +# 1919| r1919_1(glval) = VariableAddress[c] : +# 1919| m1919_2(C) = Uninitialized[c] : &:r1919_1 +# 1919| r1919_3(glval) = FunctionAddress[C] : +# 1919| v1919_4(void) = Call[C] : func:r1919_3, this:r1919_1 +# 1919| m1919_5(unknown) = ^CallSideEffect : ~m1918_4 +# 1919| m1919_6(unknown) = Chi : total:m1918_4, partial:m1919_5 +# 1919| m1919_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1919_1 +# 1919| m1919_8(C) = Chi : total:m1919_2, partial:m1919_7 +# 1920| r1920_1(glval) = VariableAddress[x] : +# 1920| m1920_2(int) = Uninitialized[x] : &:r1920_1 +# 1921| r1921_1(glval) = VariableAddress[c] : +# 1921| r1921_2(glval) = FunctionAddress[StaticMemberFunction] : +# 1921| r1921_3(int) = Constant[10] : +# 1921| r1921_4(int) = Call[StaticMemberFunction] : func:r1921_2, 0:r1921_3 +# 1921| m1921_5(unknown) = ^CallSideEffect : ~m1919_6 +# 1921| m1921_6(unknown) = Chi : total:m1919_6, partial:m1921_5 +# 1921| r1921_7(glval) = VariableAddress[x] : +# 1921| m1921_8(int) = Store[x] : &:r1921_7, r1921_4 +# 1922| r1922_1(glval) = VariableAddress[y] : +# 1922| m1922_2(int) = Uninitialized[y] : &:r1922_1 +# 1923| r1923_1(glval) = FunctionAddress[StaticMemberFunction] : +# 1923| r1923_2(int) = Constant[10] : +# 1923| r1923_3(int) = Call[StaticMemberFunction] : func:r1923_1, 0:r1923_2 +# 1923| m1923_4(unknown) = ^CallSideEffect : ~m1921_6 +# 1923| m1923_5(unknown) = Chi : total:m1921_6, partial:m1923_4 +# 1923| r1923_6(glval) = VariableAddress[y] : +# 1923| m1923_7(int) = Store[y] : &:r1923_6, r1923_3 +# 1924| r1924_1(glval) = VariableAddress[z] : +# 1924| m1924_2(int) = Uninitialized[z] : &:r1924_1 +# 1925| r1925_1(glval) = FunctionAddress[static_function] : +# 1925| r1925_2(int) = Constant[10] : +# 1925| r1925_3(int) = Call[static_function] : func:r1925_1, 0:r1925_2 +# 1925| m1925_4(unknown) = ^CallSideEffect : ~m1923_5 +# 1925| m1925_5(unknown) = Chi : total:m1923_5, partial:m1925_4 +# 1925| r1925_6(glval) = VariableAddress[z] : +# 1925| m1925_7(int) = Store[z] : &:r1925_6, r1925_3 +# 1926| v1926_1(void) = NoOp : +# 1918| v1918_5(void) = ReturnVoid : +# 1918| v1918_6(void) = AliasedUse : ~m1925_5 +# 1918| v1918_7(void) = ExitFunction : + +# 1928| void test_double_assign() +# 1928| Block 0 +# 1928| v1928_1(void) = EnterFunction : +# 1928| m1928_2(unknown) = AliasedDefinition : +# 1928| m1928_3(unknown) = InitializeNonLocal : +# 1928| m1928_4(unknown) = Chi : total:m1928_2, partial:m1928_3 +# 1929| r1929_1(glval) = VariableAddress[i] : +# 1929| m1929_2(int) = Uninitialized[i] : &:r1929_1 +# 1929| r1929_3(glval) = VariableAddress[j] : +# 1929| m1929_4(int) = Uninitialized[j] : &:r1929_3 +# 1930| r1930_1(int) = Constant[40] : +# 1930| r1930_2(glval) = VariableAddress[j] : +# 1930| m1930_3(int) = Store[j] : &:r1930_2, r1930_1 +# 1930| r1930_4(int) = CopyValue : r1930_1 +# 1930| r1930_5(glval) = VariableAddress[i] : +# 1930| m1930_6(int) = Store[i] : &:r1930_5, r1930_4 +# 1931| v1931_1(void) = NoOp : +# 1928| v1928_5(void) = ReturnVoid : +# 1928| v1928_6(void) = AliasedUse : m1928_3 +# 1928| v1928_7(void) = ExitFunction : + +# 1933| void test_assign_with_assign_operation() +# 1933| Block 0 +# 1933| v1933_1(void) = EnterFunction : +# 1933| m1933_2(unknown) = AliasedDefinition : +# 1933| m1933_3(unknown) = InitializeNonLocal : +# 1933| m1933_4(unknown) = Chi : total:m1933_2, partial:m1933_3 +# 1934| r1934_1(glval) = VariableAddress[i] : +# 1934| m1934_2(int) = Uninitialized[i] : &:r1934_1 +# 1934| r1934_3(glval) = VariableAddress[j] : +# 1934| r1934_4(int) = Constant[0] : +# 1934| m1934_5(int) = Store[j] : &:r1934_3, r1934_4 +# 1935| r1935_1(int) = Constant[40] : +# 1935| r1935_2(glval) = VariableAddress[j] : +# 1935| r1935_3(int) = Load[j] : &:r1935_2, m1934_5 +# 1935| r1935_4(int) = Add : r1935_3, r1935_1 +# 1935| m1935_5(int) = Store[j] : &:r1935_2, r1935_4 +# 1935| r1935_6(glval) = VariableAddress[i] : +# 1935| m1935_7(int) = Store[i] : &:r1935_6, r1935_4 +# 1936| v1936_1(void) = NoOp : +# 1933| v1933_5(void) = ReturnVoid : +# 1933| v1933_6(void) = AliasedUse : m1933_3 +# 1933| v1933_7(void) = ExitFunction : + +# 1942| D& D::ReferenceStaticMemberFunction() +# 1942| Block 0 +# 1942| v1942_1(void) = EnterFunction : +# 1942| m1942_2(unknown) = AliasedDefinition : +# 1942| m1942_3(unknown) = InitializeNonLocal : +# 1942| m1942_4(unknown) = Chi : total:m1942_2, partial:m1942_3 +# 1943| r1943_1(glval) = VariableAddress[#return] : +# 1943| r1943_2(glval) = VariableAddress[x] : +# 1943| r1943_3(D &) = CopyValue : r1943_2 +# 1943| m1943_4(D &) = Store[#return] : &:r1943_1, r1943_3 +# 1942| r1942_5(glval) = VariableAddress[#return] : +# 1942| v1942_6(void) = ReturnValue : &:r1942_5, m1943_4 +# 1942| v1942_7(void) = AliasedUse : m1942_3 +# 1942| v1942_8(void) = ExitFunction : + +# 1945| D D::ObjectStaticMemberFunction() +# 1945| Block 0 +# 1945| v1945_1(void) = EnterFunction : +# 1945| m1945_2(unknown) = AliasedDefinition : +# 1945| m1945_3(unknown) = InitializeNonLocal : +# 1945| m1945_4(unknown) = Chi : total:m1945_2, partial:m1945_3 +# 1946| r1946_1(glval) = VariableAddress[#return] : +# 1946| r1946_2(glval) = VariableAddress[x] : +# 1946| r1946_3(D) = Load[x] : &:r1946_2, ~m1945_3 +# 1946| m1946_4(D) = Store[#return] : &:r1946_1, r1946_3 +# 1945| r1945_5(glval) = VariableAddress[#return] : +# 1945| v1945_6(void) = ReturnValue : &:r1945_5, m1946_4 +# 1945| v1945_7(void) = AliasedUse : m1945_3 +# 1945| v1945_8(void) = ExitFunction : + +# 1950| void test_static_member_functions_with_reference_return() +# 1950| Block 0 +# 1950| v1950_1(void) = EnterFunction : +# 1950| m1950_2(unknown) = AliasedDefinition : +# 1950| m1950_3(unknown) = InitializeNonLocal : +# 1950| m1950_4(unknown) = Chi : total:m1950_2, partial:m1950_3 +# 1951| r1951_1(glval) = VariableAddress[d] : +# 1951| m1951_2(D) = Uninitialized[d] : &:r1951_1 +# 1953| r1953_1(glval) = VariableAddress[d] : +# 1953| r1953_2(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 1953| r1953_3(D &) = Call[ReferenceStaticMemberFunction] : func:r1953_2 +# 1953| m1953_4(unknown) = ^CallSideEffect : ~m1950_4 +# 1953| m1953_5(unknown) = Chi : total:m1950_4, partial:m1953_4 +# 1953| r1953_6(glval) = CopyValue : r1953_3 +# 1954| r1954_1(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 1954| r1954_2(D &) = Call[ReferenceStaticMemberFunction] : func:r1954_1 +# 1954| m1954_3(unknown) = ^CallSideEffect : ~m1953_5 +# 1954| m1954_4(unknown) = Chi : total:m1953_5, partial:m1954_3 +# 1954| r1954_5(glval) = CopyValue : r1954_2 +# 1955| r1955_1(glval) = VariableAddress[d] : +# 1955| r1955_2(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 1955| r1955_3(D) = Call[ObjectStaticMemberFunction] : func:r1955_2 +# 1955| m1955_4(unknown) = ^CallSideEffect : ~m1954_4 +# 1955| m1955_5(unknown) = Chi : total:m1954_4, partial:m1955_4 +# 1956| r1956_1(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 1956| r1956_2(D) = Call[ObjectStaticMemberFunction] : func:r1956_1 +# 1956| m1956_3(unknown) = ^CallSideEffect : ~m1955_5 +# 1956| m1956_4(unknown) = Chi : total:m1955_5, partial:m1956_3 +# 1958| r1958_1(glval) = VariableAddress[x] : +# 1958| m1958_2(D) = Uninitialized[x] : &:r1958_1 +# 1959| r1959_1(glval) = VariableAddress[d] : +# 1959| r1959_2(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 1959| r1959_3(D &) = Call[ReferenceStaticMemberFunction] : func:r1959_2 +# 1959| m1959_4(unknown) = ^CallSideEffect : ~m1956_4 +# 1959| m1959_5(unknown) = Chi : total:m1956_4, partial:m1959_4 +# 1959| r1959_6(D) = Load[?] : &:r1959_3, ~m1959_5 +# 1959| r1959_7(glval) = VariableAddress[x] : +# 1959| m1959_8(D) = Store[x] : &:r1959_7, r1959_6 +# 1960| r1960_1(glval) = VariableAddress[y] : +# 1960| m1960_2(D) = Uninitialized[y] : &:r1960_1 +# 1961| r1961_1(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 1961| r1961_2(D &) = Call[ReferenceStaticMemberFunction] : func:r1961_1 +# 1961| m1961_3(unknown) = ^CallSideEffect : ~m1959_5 +# 1961| m1961_4(unknown) = Chi : total:m1959_5, partial:m1961_3 +# 1961| r1961_5(D) = Load[?] : &:r1961_2, ~m1961_4 +# 1961| r1961_6(glval) = VariableAddress[y] : +# 1961| m1961_7(D) = Store[y] : &:r1961_6, r1961_5 +# 1962| r1962_1(glval) = VariableAddress[j] : +# 1962| m1962_2(D) = Uninitialized[j] : &:r1962_1 +# 1963| r1963_1(glval) = VariableAddress[d] : +# 1963| r1963_2(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 1963| r1963_3(D) = Call[ObjectStaticMemberFunction] : func:r1963_2 +# 1963| m1963_4(unknown) = ^CallSideEffect : ~m1961_4 +# 1963| m1963_5(unknown) = Chi : total:m1961_4, partial:m1963_4 +# 1963| r1963_6(glval) = VariableAddress[j] : +# 1963| m1963_7(D) = Store[j] : &:r1963_6, r1963_3 +# 1964| r1964_1(glval) = VariableAddress[k] : +# 1964| m1964_2(D) = Uninitialized[k] : &:r1964_1 +# 1965| r1965_1(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 1965| r1965_2(D) = Call[ObjectStaticMemberFunction] : func:r1965_1 +# 1965| m1965_3(unknown) = ^CallSideEffect : ~m1963_5 +# 1965| m1965_4(unknown) = Chi : total:m1963_5, partial:m1965_3 +# 1965| r1965_5(glval) = VariableAddress[k] : +# 1965| m1965_6(D) = Store[k] : &:r1965_5, r1965_2 +# 1966| v1966_1(void) = NoOp : +# 1950| v1950_5(void) = ReturnVoid : +# 1950| v1950_6(void) = AliasedUse : ~m1965_4 +# 1950| v1950_7(void) = ExitFunction : + +# 1968| void test_volatile() +# 1968| Block 0 +# 1968| v1968_1(void) = EnterFunction : +# 1968| m1968_2(unknown) = AliasedDefinition : +# 1968| m1968_3(unknown) = InitializeNonLocal : +# 1968| m1968_4(unknown) = Chi : total:m1968_2, partial:m1968_3 +# 1969| r1969_1(glval) = VariableAddress[x] : +# 1969| m1969_2(int) = Uninitialized[x] : &:r1969_1 +# 1970| r1970_1(glval) = VariableAddress[x] : +# 1970| r1970_2(int) = Load[x] : &:r1970_1, m1969_2 +# 1971| v1971_1(void) = NoOp : +# 1968| v1968_5(void) = ReturnVoid : +# 1968| v1968_6(void) = AliasedUse : m1968_3 +# 1968| v1968_7(void) = ExitFunction : + +# 1979| void value_category_test() +# 1979| Block 0 +# 1979| v1979_1(void) = EnterFunction : +# 1979| m1979_2(unknown) = AliasedDefinition : +# 1979| m1979_3(unknown) = InitializeNonLocal : +# 1979| m1979_4(unknown) = Chi : total:m1979_2, partial:m1979_3 +# 1980| r1980_1(glval) = VariableAddress[c] : +# 1980| m1980_2(ValCat) = Uninitialized[c] : &:r1980_1 +#-----| r0_1(glval) = VariableAddress[#temp0:0] : +#-----| m0_2(ValCat) = Uninitialized[#temp0:0] : &:r0_1 +#-----| r0_3(ValCat) = Load[#temp0:0] : &:r0_1, m0_2 +# 1982| r1982_1(glval) = VariableAddress[c] : +# 1982| r1982_2(glval) = FunctionAddress[lvalue] : +# 1982| r1982_3(ValCat &) = Call[lvalue] : func:r1982_2 +# 1982| m1982_4(unknown) = ^CallSideEffect : ~m1979_4 +# 1982| m1982_5(unknown) = Chi : total:m1979_4, partial:m1982_4 +# 1982| r1982_6(glval) = CopyValue : r1982_3 +# 1982| m1982_7(ValCat) = Store[?] : &:r1982_6, r0_3 +# 1982| m1982_8(unknown) = Chi : total:m1982_5, partial:m1982_7 +#-----| r0_4(glval) = VariableAddress[#temp0:0] : +#-----| m0_5(ValCat) = Uninitialized[#temp0:0] : &:r0_4 +#-----| r0_6(ValCat) = Load[#temp0:0] : &:r0_4, m0_5 +# 1983| r1983_1(glval) = VariableAddress[c] : +# 1983| r1983_2(glval) = FunctionAddress[xvalue] : +# 1983| r1983_3(ValCat &&) = Call[xvalue] : func:r1983_2 +# 1983| m1983_4(unknown) = ^CallSideEffect : ~m1982_8 +# 1983| m1983_5(unknown) = Chi : total:m1982_8, partial:m1983_4 +# 1983| r1983_6(glval) = CopyValue : r1983_3 +# 1983| m1983_7(ValCat) = Store[?] : &:r1983_6, r0_6 +# 1983| m1983_8(unknown) = Chi : total:m1983_5, partial:m1983_7 +#-----| r0_7(glval) = VariableAddress[#temp0:0] : +#-----| m0_8(ValCat) = Uninitialized[#temp0:0] : &:r0_7 +#-----| r0_9(ValCat) = Load[#temp0:0] : &:r0_7, m0_8 +# 1984| r1984_1(glval) = VariableAddress[#temp1984:5] : +# 1984| r1984_2(glval) = VariableAddress[c] : +# 1984| r1984_3(glval) = FunctionAddress[prvalue] : +# 1984| r1984_4(ValCat) = Call[prvalue] : func:r1984_3 +# 1984| m1984_5(unknown) = ^CallSideEffect : ~m1983_8 +# 1984| m1984_6(unknown) = Chi : total:m1983_8, partial:m1984_5 +# 1984| m1984_7(ValCat) = Store[#temp1984:5] : &:r1984_1, r1984_4 +# 1984| m1984_8(ValCat) = Store[#temp1984:5] : &:r1984_1, r0_9 +#-----| r0_10(glval) = VariableAddress[#temp0:0] : +#-----| m0_11(ValCat) = Uninitialized[#temp0:0] : &:r0_10 +#-----| r0_12(ValCat) = Load[#temp0:0] : &:r0_10, m0_11 +# 1985| r1985_1(glval) = FunctionAddress[lvalue] : +# 1985| r1985_2(ValCat &) = Call[lvalue] : func:r1985_1 +# 1985| m1985_3(unknown) = ^CallSideEffect : ~m1984_6 +# 1985| m1985_4(unknown) = Chi : total:m1984_6, partial:m1985_3 +# 1985| r1985_5(glval) = CopyValue : r1985_2 +# 1985| m1985_6(ValCat) = Store[?] : &:r1985_5, r0_12 +# 1985| m1985_7(unknown) = Chi : total:m1985_4, partial:m1985_6 +#-----| r0_13(glval) = VariableAddress[#temp0:0] : +#-----| m0_14(ValCat) = Uninitialized[#temp0:0] : &:r0_13 +#-----| r0_15(ValCat) = Load[#temp0:0] : &:r0_13, m0_14 +# 1986| r1986_1(glval) = FunctionAddress[xvalue] : +# 1986| r1986_2(ValCat &&) = Call[xvalue] : func:r1986_1 +# 1986| m1986_3(unknown) = ^CallSideEffect : ~m1985_7 +# 1986| m1986_4(unknown) = Chi : total:m1985_7, partial:m1986_3 +# 1986| r1986_5(glval) = CopyValue : r1986_2 +# 1986| m1986_6(ValCat) = Store[?] : &:r1986_5, r0_15 +# 1986| m1986_7(unknown) = Chi : total:m1986_4, partial:m1986_6 +#-----| r0_16(glval) = VariableAddress[#temp0:0] : +#-----| m0_17(ValCat) = Uninitialized[#temp0:0] : &:r0_16 +#-----| r0_18(ValCat) = Load[#temp0:0] : &:r0_16, m0_17 +# 1987| r1987_1(glval) = VariableAddress[#temp1987:5] : +# 1987| r1987_2(glval) = FunctionAddress[prvalue] : +# 1987| r1987_3(ValCat) = Call[prvalue] : func:r1987_2 +# 1987| m1987_4(unknown) = ^CallSideEffect : ~m1986_7 +# 1987| m1987_5(unknown) = Chi : total:m1986_7, partial:m1987_4 +# 1987| m1987_6(ValCat) = Store[#temp1987:5] : &:r1987_1, r1987_3 +# 1987| m1987_7(ValCat) = Store[#temp1987:5] : &:r1987_1, r0_18 +# 1988| v1988_1(void) = NoOp : +# 1979| v1979_5(void) = ReturnVoid : +# 1979| v1979_6(void) = AliasedUse : ~m1987_5 +# 1979| v1979_7(void) = ExitFunction : + +# 1990| void SetStaticFuncPtr() +# 1990| Block 0 +# 1990| v1990_1(void) = EnterFunction : +# 1990| m1990_2(unknown) = AliasedDefinition : +# 1990| m1990_3(unknown) = InitializeNonLocal : +# 1990| m1990_4(unknown) = Chi : total:m1990_2, partial:m1990_3 +# 1991| r1991_1(glval) = VariableAddress[c] : +# 1991| m1991_2(C) = Uninitialized[c] : &:r1991_1 +# 1991| r1991_3(glval) = FunctionAddress[C] : +# 1991| v1991_4(void) = Call[C] : func:r1991_3, this:r1991_1 +# 1991| m1991_5(unknown) = ^CallSideEffect : ~m1990_4 +# 1991| m1991_6(unknown) = Chi : total:m1990_4, partial:m1991_5 +# 1991| m1991_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1991_1 +# 1991| m1991_8(C) = Chi : total:m1991_2, partial:m1991_7 +# 1992| r1992_1(glval<..(*)(..)>) = VariableAddress[pfn] : +# 1992| r1992_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : +# 1992| m1992_3(..(*)(..)) = Store[pfn] : &:r1992_1, r1992_2 +# 1993| r1993_1(glval) = VariableAddress[c] : +# 1993| r1993_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : +# 1993| r1993_3(glval<..(*)(..)>) = VariableAddress[pfn] : +# 1993| m1993_4(..(*)(..)) = Store[pfn] : &:r1993_3, r1993_2 +# 1994| v1994_1(void) = NoOp : +# 1990| v1990_5(void) = ReturnVoid : +# 1990| v1990_6(void) = AliasedUse : ~m1991_6 +# 1990| v1990_7(void) = ExitFunction : + +# 1996| void TernaryTestInt(bool, int, int, int) +# 1996| Block 0 +# 1996| v1996_1(void) = EnterFunction : +# 1996| m1996_2(unknown) = AliasedDefinition : +# 1996| m1996_3(unknown) = InitializeNonLocal : +# 1996| m1996_4(unknown) = Chi : total:m1996_2, partial:m1996_3 +# 1996| r1996_5(glval) = VariableAddress[a] : +# 1996| m1996_6(bool) = InitializeParameter[a] : &:r1996_5 +# 1996| r1996_7(glval) = VariableAddress[x] : +# 1996| m1996_8(int) = InitializeParameter[x] : &:r1996_7 +# 1996| r1996_9(glval) = VariableAddress[y] : +# 1996| m1996_10(int) = InitializeParameter[y] : &:r1996_9 +# 1996| r1996_11(glval) = VariableAddress[z] : +# 1996| m1996_12(int) = InitializeParameter[z] : &:r1996_11 +# 1997| r1997_1(glval) = VariableAddress[a] : +# 1997| r1997_2(bool) = Load[a] : &:r1997_1, m1996_6 +# 1997| v1997_3(void) = ConditionalBranch : r1997_2 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 1997| Block 1 +# 1997| m1997_4(int) = Phi : from 2:m1997_12, from 3:m1997_16 +# 1997| r1997_5(glval) = VariableAddress[#temp1997:9] : +# 1997| r1997_6(int) = Load[#temp1997:9] : &:r1997_5, m1997_4 +# 1997| r1997_7(glval) = VariableAddress[z] : +# 1997| m1997_8(int) = Store[z] : &:r1997_7, r1997_6 +# 1998| r1998_1(glval) = VariableAddress[a] : +# 1998| r1998_2(bool) = Load[a] : &:r1998_1, m1996_6 +# 1998| v1998_3(void) = ConditionalBranch : r1998_2 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 1997| Block 2 +# 1997| r1997_9(glval) = VariableAddress[x] : +# 1997| r1997_10(int) = Load[x] : &:r1997_9, m1996_8 +# 1997| r1997_11(glval) = VariableAddress[#temp1997:9] : +# 1997| m1997_12(int) = Store[#temp1997:9] : &:r1997_11, r1997_10 +#-----| Goto -> Block 1 + +# 1997| Block 3 +# 1997| r1997_13(glval) = VariableAddress[y] : +# 1997| r1997_14(int) = Load[y] : &:r1997_13, m1996_10 +# 1997| r1997_15(glval) = VariableAddress[#temp1997:9] : +# 1997| m1997_16(int) = Store[#temp1997:9] : &:r1997_15, r1997_14 +#-----| Goto -> Block 1 + +# 1998| Block 4 +# 1998| m1998_4(int) = Phi : from 5:m1998_12, from 6:m1998_15 +# 1998| r1998_5(glval) = VariableAddress[#temp1998:9] : +# 1998| r1998_6(int) = Load[#temp1998:9] : &:r1998_5, m1998_4 +# 1998| r1998_7(glval) = VariableAddress[z] : +# 1998| m1998_8(int) = Store[z] : &:r1998_7, r1998_6 +# 1999| r1999_1(glval) = VariableAddress[a] : +# 1999| r1999_2(bool) = Load[a] : &:r1999_1, m1996_6 +# 1999| v1999_3(void) = ConditionalBranch : r1999_2 +#-----| False -> Block 9 +#-----| True -> Block 8 + +# 1998| Block 5 +# 1998| r1998_9(glval) = VariableAddress[x] : +# 1998| r1998_10(int) = Load[x] : &:r1998_9, m1996_8 +# 1998| r1998_11(glval) = VariableAddress[#temp1998:9] : +# 1998| m1998_12(int) = Store[#temp1998:9] : &:r1998_11, r1998_10 +#-----| Goto -> Block 4 + +# 1998| Block 6 +# 1998| r1998_13(int) = Constant[5] : +# 1998| r1998_14(glval) = VariableAddress[#temp1998:9] : +# 1998| m1998_15(int) = Store[#temp1998:9] : &:r1998_14, r1998_13 +#-----| Goto -> Block 4 + +# 1999| Block 7 +# 1999| m1999_4(int) = Phi : from 8:m1999_11, from 9:m1999_14 +# 1999| r1999_5(glval) = VariableAddress[#temp1999:9] : +# 1999| r1999_6(int) = Load[#temp1999:9] : &:r1999_5, m1999_4 +# 1999| r1999_7(glval) = VariableAddress[z] : +# 1999| m1999_8(int) = Store[z] : &:r1999_7, r1999_6 +# 2000| r2000_1(int) = Constant[7] : +# 2000| r2000_2(glval) = VariableAddress[a] : +# 2000| r2000_3(bool) = Load[a] : &:r2000_2, m1996_6 +# 2000| v2000_4(void) = ConditionalBranch : r2000_3 +#-----| False -> Block 12 +#-----| True -> Block 11 + +# 1999| Block 8 +# 1999| r1999_9(int) = Constant[3] : +# 1999| r1999_10(glval) = VariableAddress[#temp1999:9] : +# 1999| m1999_11(int) = Store[#temp1999:9] : &:r1999_10, r1999_9 +#-----| Goto -> Block 7 + +# 1999| Block 9 +# 1999| r1999_12(int) = Constant[5] : +# 1999| r1999_13(glval) = VariableAddress[#temp1999:9] : +# 1999| m1999_14(int) = Store[#temp1999:9] : &:r1999_13, r1999_12 +#-----| Goto -> Block 7 + +# 2000| Block 10 +# 2000| m2000_5(glval) = Phi : from 11:m2000_12, from 12:m2000_15 +# 2000| r2000_6(glval) = VariableAddress[#temp2000:6] : +# 2000| r2000_7(glval) = Load[#temp2000:6] : &:r2000_6, m2000_5 +# 2000| m2000_8(int) = Store[?] : &:r2000_7, r2000_1 +# 2000| m2000_9(unknown) = Chi : total:m1996_4, partial:m2000_8 +# 2001| v2001_1(void) = NoOp : +# 1996| v1996_13(void) = ReturnVoid : +# 1996| v1996_14(void) = AliasedUse : ~m2000_9 +# 1996| v1996_15(void) = ExitFunction : + +# 2000| Block 11 +# 2000| r2000_10(glval) = VariableAddress[x] : +# 2000| r2000_11(glval) = VariableAddress[#temp2000:6] : +# 2000| m2000_12(glval) = Store[#temp2000:6] : &:r2000_11, r2000_10 +#-----| Goto -> Block 10 + +# 2000| Block 12 +# 2000| r2000_13(glval) = VariableAddress[y] : +# 2000| r2000_14(glval) = VariableAddress[#temp2000:6] : +# 2000| m2000_15(glval) = Store[#temp2000:6] : &:r2000_14, r2000_13 +#-----| Goto -> Block 10 + +# 2006| void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) +# 2006| Block 0 +# 2006| v2006_1(void) = EnterFunction : +# 2006| m2006_2(unknown) = AliasedDefinition : +# 2006| m2006_3(unknown) = InitializeNonLocal : +# 2006| m2006_4(unknown) = Chi : total:m2006_2, partial:m2006_3 +# 2006| r2006_5(glval) = VariableAddress[a] : +# 2006| m2006_6(bool) = InitializeParameter[a] : &:r2006_5 +# 2006| r2006_7(glval) = VariableAddress[x] : +# 2006| m2006_8(TernaryPodObj) = InitializeParameter[x] : &:r2006_7 +# 2006| r2006_9(glval) = VariableAddress[y] : +# 2006| m2006_10(TernaryPodObj) = InitializeParameter[y] : &:r2006_9 +# 2006| r2006_11(glval) = VariableAddress[z] : +# 2006| m2006_12(TernaryPodObj) = InitializeParameter[z] : &:r2006_11 +# 2007| r2007_1(glval) = VariableAddress[a] : +# 2007| r2007_2(bool) = Load[a] : &:r2007_1, m2006_6 +# 2007| v2007_3(void) = ConditionalBranch : r2007_2 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 2007| Block 1 +# 2007| m2007_4(TernaryPodObj) = Phi : from 2:m2007_12, from 3:m2007_16 +# 2007| r2007_5(glval) = VariableAddress[#temp2007:9] : +# 2007| r2007_6(TernaryPodObj) = Load[#temp2007:9] : &:r2007_5, m2007_4 +# 2007| r2007_7(glval) = VariableAddress[z] : +# 2007| m2007_8(TernaryPodObj) = Store[z] : &:r2007_7, r2007_6 +# 2008| r2008_1(glval) = VariableAddress[#temp2008:9] : +# 2008| r2008_2(glval) = VariableAddress[a] : +# 2008| r2008_3(bool) = Load[a] : &:r2008_2, m2006_6 +# 2008| v2008_4(void) = ConditionalBranch : r2008_3 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 2007| Block 2 +# 2007| r2007_9(glval) = VariableAddress[x] : +# 2007| r2007_10(TernaryPodObj) = Load[x] : &:r2007_9, m2006_8 +# 2007| r2007_11(glval) = VariableAddress[#temp2007:9] : +# 2007| m2007_12(TernaryPodObj) = Store[#temp2007:9] : &:r2007_11, r2007_10 +#-----| Goto -> Block 1 + +# 2007| Block 3 +# 2007| r2007_13(glval) = VariableAddress[y] : +# 2007| r2007_14(TernaryPodObj) = Load[y] : &:r2007_13, m2006_10 +# 2007| r2007_15(glval) = VariableAddress[#temp2007:9] : +# 2007| m2007_16(TernaryPodObj) = Store[#temp2007:9] : &:r2007_15, r2007_14 +#-----| Goto -> Block 1 + +# 2008| Block 4 +# 2008| m2008_5(TernaryPodObj) = Phi : from 5:m2008_18, from 6:m2008_24 +# 2008| r2008_6(glval) = VariableAddress[#temp2008:9] : +# 2008| r2008_7(TernaryPodObj) = Load[#temp2008:9] : &:r2008_6, m2008_5 +# 2008| m2008_8(TernaryPodObj) = Store[#temp2008:9] : &:r2008_1, r2008_7 +# 2008| r2008_9(TernaryPodObj) = Load[#temp2008:9] : &:r2008_1, m2008_8 +# 2008| r2008_10(glval) = VariableAddress[z] : +# 2008| m2008_11(TernaryPodObj) = Store[z] : &:r2008_10, r2008_9 +# 2009| r2009_1(glval) = VariableAddress[#temp2009:9] : +# 2009| r2009_2(glval) = VariableAddress[a] : +# 2009| r2009_3(bool) = Load[a] : &:r2009_2, m2006_6 +# 2009| v2009_4(void) = ConditionalBranch : r2009_3 +#-----| False -> Block 9 +#-----| True -> Block 8 + +# 2008| Block 5 +# 2008| r2008_12(glval) = VariableAddress[#temp2008:13] : +# 2008| r2008_13(glval) = VariableAddress[x] : +# 2008| r2008_14(TernaryPodObj) = Load[x] : &:r2008_13, m2006_8 +# 2008| m2008_15(TernaryPodObj) = Store[#temp2008:13] : &:r2008_12, r2008_14 +# 2008| r2008_16(TernaryPodObj) = Load[#temp2008:13] : &:r2008_12, m2008_15 +# 2008| r2008_17(glval) = VariableAddress[#temp2008:9] : +# 2008| m2008_18(TernaryPodObj) = Store[#temp2008:9] : &:r2008_17, r2008_16 +#-----| Goto -> Block 4 + +# 2008| Block 6 +# 2008| r2008_19(glval) = VariableAddress[#temp2008:17] : +# 2008| r2008_20(TernaryPodObj) = Constant[0] : +# 2008| m2008_21(TernaryPodObj) = Store[#temp2008:17] : &:r2008_19, r2008_20 +# 2008| r2008_22(TernaryPodObj) = Load[#temp2008:17] : &:r2008_19, m2008_21 +# 2008| r2008_23(glval) = VariableAddress[#temp2008:9] : +# 2008| m2008_24(TernaryPodObj) = Store[#temp2008:9] : &:r2008_23, r2008_22 +#-----| Goto -> Block 4 + +# 2009| Block 7 +# 2009| m2009_5(TernaryPodObj) = Phi : from 8:m2009_17, from 9:m2009_23 +# 2009| r2009_6(glval) = VariableAddress[#temp2009:9] : +# 2009| r2009_7(TernaryPodObj) = Load[#temp2009:9] : &:r2009_6, m2009_5 +# 2009| m2009_8(TernaryPodObj) = Store[#temp2009:9] : &:r2009_1, r2009_7 +# 2009| r2009_9(TernaryPodObj) = Load[#temp2009:9] : &:r2009_1, m2009_8 +# 2009| r2009_10(glval) = VariableAddress[z] : +# 2009| m2009_11(TernaryPodObj) = Store[z] : &:r2009_10, r2009_9 +# 2010| r2010_1(glval) = VariableAddress[#temp2010:23] : +# 2010| r2010_2(TernaryPodObj) = Constant[0] : +# 2010| m2010_3(TernaryPodObj) = Store[#temp2010:23] : &:r2010_1, r2010_2 +# 2010| r2010_4(TernaryPodObj) = Load[#temp2010:23] : &:r2010_1, m2010_3 +# 2010| r2010_5(glval) = VariableAddress[a] : +# 2010| r2010_6(bool) = Load[a] : &:r2010_5, m2006_6 +# 2010| v2010_7(void) = ConditionalBranch : r2010_6 +#-----| False -> Block 12 +#-----| True -> Block 11 + +# 2009| Block 8 +# 2009| r2009_12(glval) = VariableAddress[#temp2009:13] : +# 2009| r2009_13(TernaryPodObj) = Constant[0] : +# 2009| m2009_14(TernaryPodObj) = Store[#temp2009:13] : &:r2009_12, r2009_13 +# 2009| r2009_15(TernaryPodObj) = Load[#temp2009:13] : &:r2009_12, m2009_14 +# 2009| r2009_16(glval) = VariableAddress[#temp2009:9] : +# 2009| m2009_17(TernaryPodObj) = Store[#temp2009:9] : &:r2009_16, r2009_15 +#-----| Goto -> Block 7 + +# 2009| Block 9 +# 2009| r2009_18(glval) = VariableAddress[#temp2009:31] : +# 2009| r2009_19(TernaryPodObj) = Constant[0] : +# 2009| m2009_20(TernaryPodObj) = Store[#temp2009:31] : &:r2009_18, r2009_19 +# 2009| r2009_21(TernaryPodObj) = Load[#temp2009:31] : &:r2009_18, m2009_20 +# 2009| r2009_22(glval) = VariableAddress[#temp2009:9] : +# 2009| m2009_23(TernaryPodObj) = Store[#temp2009:9] : &:r2009_22, r2009_21 +#-----| Goto -> Block 7 + +# 2010| Block 10 +# 2010| m2010_8(TernaryPodObj) = Phi : from 11:m2010_18, from 12:m2010_22 +# 2010| r2010_9(glval) = VariableAddress[#temp2010:10] : +# 2010| r2010_10(TernaryPodObj) = Load[#temp2010:10] : &:r2010_9, m2010_8 +# 2010| r2010_11(glval) = VariableAddress[z] : +# 2010| m2010_12(TernaryPodObj) = Store[z] : &:r2010_11, r2010_10 +# 2010| r2010_13(glval) = CopyValue : r2010_11 +# 2010| m2010_14(TernaryPodObj) = Store[?] : &:r2010_13, r2010_4 +# 2011| v2011_1(void) = NoOp : +# 2006| v2006_13(void) = ReturnVoid : +# 2006| v2006_14(void) = AliasedUse : m2006_3 +# 2006| v2006_15(void) = ExitFunction : + +# 2010| Block 11 +# 2010| r2010_15(glval) = VariableAddress[x] : +# 2010| r2010_16(TernaryPodObj) = Load[x] : &:r2010_15, m2006_8 +# 2010| r2010_17(glval) = VariableAddress[#temp2010:10] : +# 2010| m2010_18(TernaryPodObj) = Store[#temp2010:10] : &:r2010_17, r2010_16 +#-----| Goto -> Block 10 + +# 2010| Block 12 +# 2010| r2010_19(glval) = VariableAddress[y] : +# 2010| r2010_20(TernaryPodObj) = Load[y] : &:r2010_19, m2006_10 +# 2010| r2010_21(glval) = VariableAddress[#temp2010:10] : +# 2010| m2010_22(TernaryPodObj) = Store[#temp2010:10] : &:r2010_21, r2010_20 +#-----| Goto -> Block 10 + +# 2013| TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) +# 2013| Block 0 +# 2013| v2013_1(void) = EnterFunction : +# 2013| m2013_2(unknown) = AliasedDefinition : +# 2013| m2013_3(unknown) = InitializeNonLocal : +# 2013| m2013_4(unknown) = Chi : total:m2013_2, partial:m2013_3 +# 2013| r2013_5(glval) = VariableAddress[#this] : +# 2013| m2013_6(glval) = InitializeParameter[#this] : &:r2013_5 +# 2013| r2013_7(glval) = Load[#this] : &:r2013_5, m2013_6 +# 2013| m2013_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2013_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(TernaryNonPodObj &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(TernaryNonPodObj &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +#-----| r0_5(glval) = VariableAddress[#return] : +#-----| r0_6(glval) = VariableAddress[#this] : +#-----| r0_7(TernaryNonPodObj *) = Load[#this] : &:r0_6, m2013_6 +#-----| r0_8(glval) = CopyValue : r0_7 +#-----| r0_9(TernaryNonPodObj &) = CopyValue : r0_8 +#-----| m0_10(TernaryNonPodObj &) = Store[#return] : &:r0_5, r0_9 +# 2013| v2013_9(void) = ReturnIndirection[#this] : &:r2013_7, m2013_8 +#-----| v0_11(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 2013| r2013_10(glval) = VariableAddress[#return] : +# 2013| v2013_11(void) = ReturnValue : &:r2013_10, m0_10 +# 2013| v2013_12(void) = AliasedUse : m2013_3 +# 2013| v2013_13(void) = ExitFunction : + +# 2013| void TernaryNonPodObj::TernaryNonPodObj() +# 2013| Block 0 +# 2013| v2013_1(void) = EnterFunction : +# 2013| m2013_2(unknown) = AliasedDefinition : +# 2013| m2013_3(unknown) = InitializeNonLocal : +# 2013| m2013_4(unknown) = Chi : total:m2013_2, partial:m2013_3 +# 2013| r2013_5(glval) = VariableAddress[#this] : +# 2013| m2013_6(glval) = InitializeParameter[#this] : &:r2013_5 +# 2013| r2013_7(glval) = Load[#this] : &:r2013_5, m2013_6 +# 2013| m2013_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2013_7 +# 2013| v2013_9(void) = NoOp : +# 2013| v2013_10(void) = ReturnIndirection[#this] : &:r2013_7, m2013_8 +# 2013| v2013_11(void) = ReturnVoid : +# 2013| v2013_12(void) = AliasedUse : m2013_3 +# 2013| v2013_13(void) = ExitFunction : + +# 2013| void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) +# 2013| Block 0 +# 2013| v2013_1(void) = EnterFunction : +# 2013| m2013_2(unknown) = AliasedDefinition : +# 2013| m2013_3(unknown) = InitializeNonLocal : +# 2013| m2013_4(unknown) = Chi : total:m2013_2, partial:m2013_3 +# 2013| r2013_5(glval) = VariableAddress[#this] : +# 2013| m2013_6(glval) = InitializeParameter[#this] : &:r2013_5 +# 2013| r2013_7(glval) = Load[#this] : &:r2013_5, m2013_6 +# 2013| m2013_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2013_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(TernaryNonPodObj &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(TernaryNonPodObj &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 2013| v2013_9(void) = NoOp : +# 2013| v2013_10(void) = ReturnIndirection[#this] : &:r2013_7, m2013_8 +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 2013| v2013_11(void) = ReturnVoid : +# 2013| v2013_12(void) = AliasedUse : m2013_3 +# 2013| v2013_13(void) = ExitFunction : + +# 2014| void TernaryNonPodObj::~TernaryNonPodObj() +# 2014| Block 0 +# 2014| v2014_1(void) = EnterFunction : +# 2014| m2014_2(unknown) = AliasedDefinition : +# 2014| m2014_3(unknown) = InitializeNonLocal : +# 2014| m2014_4(unknown) = Chi : total:m2014_2, partial:m2014_3 +# 2014| r2014_5(glval) = VariableAddress[#this] : +# 2014| m2014_6(glval) = InitializeParameter[#this] : &:r2014_5 +# 2014| r2014_7(glval) = Load[#this] : &:r2014_5, m2014_6 +# 2014| m2014_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2014_7 +# 2014| v2014_9(void) = NoOp : +# 2014| v2014_10(void) = ReturnIndirection[#this] : &:r2014_7, m2014_8 +# 2014| v2014_11(void) = ReturnVoid : +# 2014| v2014_12(void) = AliasedUse : m2014_3 +# 2014| v2014_13(void) = ExitFunction : + +# 2017| void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) +# 2017| Block 0 +# 2017| v2017_1(void) = EnterFunction : +# 2017| m2017_2(unknown) = AliasedDefinition : +# 2017| m2017_3(unknown) = InitializeNonLocal : +# 2017| m2017_4(unknown) = Chi : total:m2017_2, partial:m2017_3 +# 2017| r2017_5(glval) = VariableAddress[a] : +# 2017| m2017_6(bool) = InitializeParameter[a] : &:r2017_5 +# 2017| r2017_7(glval) = VariableAddress[x] : +# 2017| m2017_8(TernaryNonPodObj) = InitializeParameter[x] : &:r2017_7 +# 2017| r2017_9(glval) = VariableAddress[y] : +# 2017| m2017_10(TernaryNonPodObj) = InitializeParameter[y] : &:r2017_9 +# 2017| r2017_11(glval) = VariableAddress[z] : +# 2017| m2017_12(TernaryNonPodObj) = InitializeParameter[z] : &:r2017_11 +# 2018| r2018_1(glval) = VariableAddress[z] : +# 2018| r2018_2(glval) = FunctionAddress[operator=] : +# 2018| r2018_3(glval) = VariableAddress[a] : +# 2018| r2018_4(bool) = Load[a] : &:r2018_3, m2017_6 +# 2018| v2018_5(void) = ConditionalBranch : r2018_4 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 2018| Block 1 +# 2018| m2018_6(glval) = Phi : from 2:m2018_21, from 3:m2018_24 +# 2018| r2018_7(glval) = VariableAddress[#temp2018:9] : +# 2018| r2018_8(glval) = Load[#temp2018:9] : &:r2018_7, m2018_6 +# 2018| r2018_9(glval) = Convert : r2018_8 +# 2018| r2018_10(TernaryNonPodObj &) = CopyValue : r2018_9 +# 2018| r2018_11(TernaryNonPodObj &) = Call[operator=] : func:r2018_2, this:r2018_1, 0:r2018_10 +# 2018| m2018_12(unknown) = ^CallSideEffect : ~m2017_4 +# 2018| m2018_13(unknown) = Chi : total:m2017_4, partial:m2018_12 +# 2018| v2018_14(void) = ^IndirectReadSideEffect[-1] : &:r2018_1, m2017_12 +# 2018| v2018_15(void) = ^BufferReadSideEffect[0] : &:r2018_10, ~m2018_13 +# 2018| m2018_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2018_1 +# 2018| m2018_17(TernaryNonPodObj) = Chi : total:m2017_12, partial:m2018_16 +# 2018| r2018_18(glval) = CopyValue : r2018_11 +# 2019| r2019_1(glval) = VariableAddress[z] : +# 2019| r2019_2(glval) = FunctionAddress[operator=] : +# 2019| r2019_3(glval) = VariableAddress[#temp2019:9] : +# 2019| r2019_4(glval) = VariableAddress[a] : +# 2019| r2019_5(bool) = Load[a] : &:r2019_4, m2017_6 +# 2019| v2019_6(void) = ConditionalBranch : r2019_5 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 2018| Block 2 +# 2018| r2018_19(glval) = VariableAddress[x] : +# 2018| r2018_20(glval) = VariableAddress[#temp2018:9] : +# 2018| m2018_21(glval) = Store[#temp2018:9] : &:r2018_20, r2018_19 +#-----| Goto -> Block 1 + +# 2018| Block 3 +# 2018| r2018_22(glval) = VariableAddress[y] : +# 2018| r2018_23(glval) = VariableAddress[#temp2018:9] : +# 2018| m2018_24(glval) = Store[#temp2018:9] : &:r2018_23, r2018_22 +#-----| Goto -> Block 1 + +# 2019| Block 4 +# 2019| m2019_7(unknown) = Phi : from 5:~m2019_30, from 6:~m2019_42 +# 2019| m2019_8(TernaryNonPodObj) = Phi : from 5:m2019_36, from 6:m2019_47 +# 2019| r2019_9(glval) = VariableAddress[#temp2019:9] : +# 2019| r2019_10(TernaryNonPodObj) = Load[#temp2019:9] : &:r2019_9, m2019_8 +# 2019| m2019_11(TernaryNonPodObj) = Store[#temp2019:9] : &:r2019_3, r2019_10 +# 2019| r2019_12(glval) = Convert : r2019_3 +# 2019| r2019_13(TernaryNonPodObj &) = CopyValue : r2019_12 +# 2019| r2019_14(TernaryNonPodObj &) = Call[operator=] : func:r2019_2, this:r2019_1, 0:r2019_13 +# 2019| m2019_15(unknown) = ^CallSideEffect : ~m2019_7 +# 2019| m2019_16(unknown) = Chi : total:m2019_7, partial:m2019_15 +# 2019| v2019_17(void) = ^IndirectReadSideEffect[-1] : &:r2019_1, m2018_17 +# 2019| v2019_18(void) = ^BufferReadSideEffect[0] : &:r2019_13, ~m2019_11 +# 2019| m2019_19(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2019_1 +# 2019| m2019_20(TernaryNonPodObj) = Chi : total:m2018_17, partial:m2019_19 +# 2019| r2019_21(glval) = CopyValue : r2019_14 +# 2020| r2020_1(glval) = VariableAddress[z] : +# 2020| r2020_2(glval) = FunctionAddress[operator=] : +# 2020| r2020_3(glval) = VariableAddress[#temp2020:9] : +# 2020| r2020_4(glval) = VariableAddress[a] : +# 2020| r2020_5(bool) = Load[a] : &:r2020_4, m2017_6 +# 2020| v2020_6(void) = ConditionalBranch : r2020_5 +#-----| False -> Block 9 +#-----| True -> Block 8 + +# 2019| Block 5 +# 2019| r2019_22(glval) = VariableAddress[#temp2019:13] : +# 2019| m2019_23(TernaryNonPodObj) = Uninitialized[#temp2019:13] : &:r2019_22 +# 2019| r2019_24(glval) = FunctionAddress[TernaryNonPodObj] : +# 2019| r2019_25(glval) = VariableAddress[x] : +# 2019| r2019_26(glval) = Convert : r2019_25 +# 2019| r2019_27(TernaryNonPodObj &) = CopyValue : r2019_26 +# 2019| v2019_28(void) = Call[TernaryNonPodObj] : func:r2019_24, this:r2019_22, 0:r2019_27 +# 2019| m2019_29(unknown) = ^CallSideEffect : ~m2018_13 +# 2019| m2019_30(unknown) = Chi : total:m2018_13, partial:m2019_29 +# 2019| v2019_31(void) = ^BufferReadSideEffect[0] : &:r2019_27, ~m2017_8 +# 2019| m2019_32(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2019_22 +# 2019| m2019_33(TernaryNonPodObj) = Chi : total:m2019_23, partial:m2019_32 +# 2019| r2019_34(TernaryNonPodObj) = Load[#temp2019:13] : &:r2019_22, m2019_33 +# 2019| r2019_35(glval) = VariableAddress[#temp2019:9] : +# 2019| m2019_36(TernaryNonPodObj) = Store[#temp2019:9] : &:r2019_35, r2019_34 +#-----| Goto -> Block 4 + +# 2019| Block 6 +# 2019| r2019_37(glval) = VariableAddress[#temp2019:17] : +# 2019| m2019_38(TernaryNonPodObj) = Uninitialized[#temp2019:17] : &:r2019_37 +# 2019| r2019_39(glval) = FunctionAddress[TernaryNonPodObj] : +# 2019| v2019_40(void) = Call[TernaryNonPodObj] : func:r2019_39, this:r2019_37 +# 2019| m2019_41(unknown) = ^CallSideEffect : ~m2018_13 +# 2019| m2019_42(unknown) = Chi : total:m2018_13, partial:m2019_41 +# 2019| m2019_43(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2019_37 +# 2019| m2019_44(TernaryNonPodObj) = Chi : total:m2019_38, partial:m2019_43 +# 2019| r2019_45(TernaryNonPodObj) = Load[#temp2019:17] : &:r2019_37, m2019_44 +# 2019| r2019_46(glval) = VariableAddress[#temp2019:9] : +# 2019| m2019_47(TernaryNonPodObj) = Store[#temp2019:9] : &:r2019_46, r2019_45 +#-----| Goto -> Block 4 + +# 2020| Block 7 +# 2020| m2020_7(unknown) = Phi : from 8:~m2020_27, from 9:~m2020_38 +# 2020| m2020_8(TernaryNonPodObj) = Phi : from 8:m2020_32, from 9:m2020_43 +# 2020| r2020_9(glval) = VariableAddress[#temp2020:9] : +# 2020| r2020_10(TernaryNonPodObj) = Load[#temp2020:9] : &:r2020_9, m2020_8 +# 2020| m2020_11(TernaryNonPodObj) = Store[#temp2020:9] : &:r2020_3, r2020_10 +# 2020| r2020_12(glval) = Convert : r2020_3 +# 2020| r2020_13(TernaryNonPodObj &) = CopyValue : r2020_12 +# 2020| r2020_14(TernaryNonPodObj &) = Call[operator=] : func:r2020_2, this:r2020_1, 0:r2020_13 +# 2020| m2020_15(unknown) = ^CallSideEffect : ~m2020_7 +# 2020| m2020_16(unknown) = Chi : total:m2020_7, partial:m2020_15 +# 2020| v2020_17(void) = ^IndirectReadSideEffect[-1] : &:r2020_1, m2019_20 +# 2020| v2020_18(void) = ^BufferReadSideEffect[0] : &:r2020_13, ~m2020_11 +# 2020| m2020_19(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2020_1 +# 2020| m2020_20(TernaryNonPodObj) = Chi : total:m2019_20, partial:m2020_19 +# 2020| r2020_21(glval) = CopyValue : r2020_14 +# 2021| r2021_1(glval) = VariableAddress[z] : +# 2021| r2021_2(glval) = FunctionAddress[operator=] : +# 2021| r2021_3(glval) = VariableAddress[a] : +# 2021| r2021_4(bool) = Load[a] : &:r2021_3, m2017_6 +# 2021| v2021_5(void) = ConditionalBranch : r2021_4 +#-----| False -> Block 12 +#-----| True -> Block 11 + +# 2020| Block 8 +# 2020| r2020_22(glval) = VariableAddress[#temp2020:13] : +# 2020| m2020_23(TernaryNonPodObj) = Uninitialized[#temp2020:13] : &:r2020_22 +# 2020| r2020_24(glval) = FunctionAddress[TernaryNonPodObj] : +# 2020| v2020_25(void) = Call[TernaryNonPodObj] : func:r2020_24, this:r2020_22 +# 2020| m2020_26(unknown) = ^CallSideEffect : ~m2019_16 +# 2020| m2020_27(unknown) = Chi : total:m2019_16, partial:m2020_26 +# 2020| m2020_28(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2020_22 +# 2020| m2020_29(TernaryNonPodObj) = Chi : total:m2020_23, partial:m2020_28 +# 2020| r2020_30(TernaryNonPodObj) = Load[#temp2020:13] : &:r2020_22, m2020_29 +# 2020| r2020_31(glval) = VariableAddress[#temp2020:9] : +# 2020| m2020_32(TernaryNonPodObj) = Store[#temp2020:9] : &:r2020_31, r2020_30 +#-----| Goto -> Block 7 + +# 2020| Block 9 +# 2020| r2020_33(glval) = VariableAddress[#temp2020:34] : +# 2020| m2020_34(TernaryNonPodObj) = Uninitialized[#temp2020:34] : &:r2020_33 +# 2020| r2020_35(glval) = FunctionAddress[TernaryNonPodObj] : +# 2020| v2020_36(void) = Call[TernaryNonPodObj] : func:r2020_35, this:r2020_33 +# 2020| m2020_37(unknown) = ^CallSideEffect : ~m2019_16 +# 2020| m2020_38(unknown) = Chi : total:m2019_16, partial:m2020_37 +# 2020| m2020_39(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2020_33 +# 2020| m2020_40(TernaryNonPodObj) = Chi : total:m2020_34, partial:m2020_39 +# 2020| r2020_41(TernaryNonPodObj) = Load[#temp2020:34] : &:r2020_33, m2020_40 +# 2020| r2020_42(glval) = VariableAddress[#temp2020:9] : +# 2020| m2020_43(TernaryNonPodObj) = Store[#temp2020:9] : &:r2020_42, r2020_41 +#-----| Goto -> Block 7 + +# 2021| Block 10 +# 2021| m2021_6(glval) = Phi : from 11:m2021_40, from 12:m2021_43 +# 2021| r2021_7(glval) = VariableAddress[#temp2021:10] : +# 2021| r2021_8(glval) = Load[#temp2021:10] : &:r2021_7, m2021_6 +# 2021| r2021_9(glval) = Convert : r2021_8 +# 2021| r2021_10(TernaryNonPodObj &) = CopyValue : r2021_9 +# 2021| r2021_11(TernaryNonPodObj &) = Call[operator=] : func:r2021_2, this:r2021_1, 0:r2021_10 +# 2021| m2021_12(unknown) = ^CallSideEffect : ~m2020_16 +# 2021| m2021_13(unknown) = Chi : total:m2020_16, partial:m2021_12 +# 2021| v2021_14(void) = ^IndirectReadSideEffect[-1] : &:r2021_1, m2020_20 +# 2021| v2021_15(void) = ^BufferReadSideEffect[0] : &:r2021_10, ~m2021_13 +# 2021| m2021_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2021_1 +# 2021| m2021_17(TernaryNonPodObj) = Chi : total:m2020_20, partial:m2021_16 +# 2021| r2021_18(glval) = CopyValue : r2021_11 +# 2021| r2021_19(glval) = FunctionAddress[operator=] : +# 2021| r2021_20(glval) = VariableAddress[#temp2021:23] : +# 2021| m2021_21(TernaryNonPodObj) = Uninitialized[#temp2021:23] : &:r2021_20 +# 2021| r2021_22(glval) = FunctionAddress[TernaryNonPodObj] : +# 2021| v2021_23(void) = Call[TernaryNonPodObj] : func:r2021_22, this:r2021_20 +# 2021| m2021_24(unknown) = ^CallSideEffect : ~m2021_13 +# 2021| m2021_25(unknown) = Chi : total:m2021_13, partial:m2021_24 +# 2021| m2021_26(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2021_20 +# 2021| m2021_27(TernaryNonPodObj) = Chi : total:m2021_21, partial:m2021_26 +# 2021| r2021_28(glval) = Convert : r2021_20 +# 2021| r2021_29(TernaryNonPodObj &) = CopyValue : r2021_28 +# 2021| r2021_30(TernaryNonPodObj &) = Call[operator=] : func:r2021_19, this:r2021_18, 0:r2021_29 +# 2021| m2021_31(unknown) = ^CallSideEffect : ~m2021_25 +# 2021| m2021_32(unknown) = Chi : total:m2021_25, partial:m2021_31 +# 2021| v2021_33(void) = ^IndirectReadSideEffect[-1] : &:r2021_18, m2021_17 +# 2021| v2021_34(void) = ^BufferReadSideEffect[0] : &:r2021_29, ~m2021_27 +# 2021| m2021_35(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2021_18 +# 2021| m2021_36(TernaryNonPodObj) = Chi : total:m2021_17, partial:m2021_35 +# 2021| r2021_37(glval) = CopyValue : r2021_30 +# 2022| v2022_1(void) = NoOp : +# 2017| v2017_13(void) = ReturnVoid : +# 2017| v2017_14(void) = AliasedUse : ~m2021_32 +# 2017| v2017_15(void) = ExitFunction : + +# 2021| Block 11 +# 2021| r2021_38(glval) = VariableAddress[x] : +# 2021| r2021_39(glval) = VariableAddress[#temp2021:10] : +# 2021| m2021_40(glval) = Store[#temp2021:10] : &:r2021_39, r2021_38 +#-----| Goto -> Block 10 + +# 2021| Block 12 +# 2021| r2021_41(glval) = VariableAddress[y] : +# 2021| r2021_42(glval) = VariableAddress[#temp2021:10] : +# 2021| m2021_43(glval) = Store[#temp2021:10] : &:r2021_42, r2021_41 +#-----| Goto -> Block 10 + +# 2026| unsigned int CommaTest(unsigned int) +# 2026| Block 0 +# 2026| v2026_1(void) = EnterFunction : +# 2026| m2026_2(unknown) = AliasedDefinition : +# 2026| m2026_3(unknown) = InitializeNonLocal : +# 2026| m2026_4(unknown) = Chi : total:m2026_2, partial:m2026_3 +# 2026| r2026_5(glval) = VariableAddress[x] : +# 2026| m2026_6(unsigned int) = InitializeParameter[x] : &:r2026_5 +# 2027| r2027_1(glval) = VariableAddress[y] : +# 2027| m2027_2(unsigned int) = Uninitialized[y] : &:r2027_1 +# 2028| r2028_1(glval) = VariableAddress[x] : +# 2028| r2028_2(unsigned int) = Load[x] : &:r2028_1, m2026_6 +# 2028| r2028_3(unsigned int) = Constant[100] : +# 2028| r2028_4(bool) = CompareLT : r2028_2, r2028_3 +# 2028| v2028_5(void) = ConditionalBranch : r2028_4 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 2028| Block 1 +# 2028| m2028_6(unknown) = Phi : from 2:~m2029_6, from 3:~m2030_6 +# 2028| m2028_7(unsigned int) = Phi : from 2:m2028_13, from 3:m2028_15 +# 2028| r2028_8(glval) = VariableAddress[#temp2028:7] : +# 2028| r2028_9(unsigned int) = Load[#temp2028:7] : &:r2028_8, m2028_7 +# 2028| r2028_10(glval) = VariableAddress[y] : +# 2028| m2028_11(unsigned int) = Store[y] : &:r2028_10, r2028_9 +# 2031| r2031_1(glval) = VariableAddress[#return] : +# 2031| m2031_2(unsigned int) = Uninitialized[#return] : &:r2031_1 +# 2026| r2026_7(glval) = VariableAddress[#return] : +# 2026| v2026_8(void) = ReturnValue : &:r2026_7, m2031_2 +# 2026| v2026_9(void) = AliasedUse : ~m2028_6 +# 2026| v2026_10(void) = ExitFunction : + +# 2029| Block 2 +# 2029| r2029_1(glval) = FunctionAddress[CommaTestHelper] : +# 2029| r2029_2(glval) = VariableAddress[x] : +# 2029| r2029_3(unsigned int) = Load[x] : &:r2029_2, m2026_6 +# 2029| v2029_4(void) = Call[CommaTestHelper] : func:r2029_1, 0:r2029_3 +# 2029| m2029_5(unknown) = ^CallSideEffect : ~m2026_4 +# 2029| m2029_6(unknown) = Chi : total:m2026_4, partial:m2029_5 +# 2029| r2029_7(glval) = VariableAddress[x] : +# 2029| r2029_8(unsigned int) = Load[x] : &:r2029_7, m2026_6 +# 2029| r2029_9(unsigned int) = CopyValue : r2029_8 +# 2028| r2028_12(glval) = VariableAddress[#temp2028:7] : +# 2028| m2028_13(unsigned int) = Store[#temp2028:7] : &:r2028_12, r2029_9 +#-----| Goto -> Block 1 + +# 2030| Block 3 +# 2030| r2030_1(glval) = FunctionAddress[CommaTestHelper] : +# 2030| r2030_2(glval) = VariableAddress[x] : +# 2030| r2030_3(unsigned int) = Load[x] : &:r2030_2, m2026_6 +# 2030| v2030_4(void) = Call[CommaTestHelper] : func:r2030_1, 0:r2030_3 +# 2030| m2030_5(unknown) = ^CallSideEffect : ~m2026_4 +# 2030| m2030_6(unknown) = Chi : total:m2026_4, partial:m2030_5 +# 2030| r2030_7(int) = Constant[10] : +# 2030| r2030_8(int) = CopyValue : r2030_7 +# 2030| r2030_9(unsigned int) = Convert : r2030_8 +# 2028| r2028_14(glval) = VariableAddress[#temp2028:7] : +# 2028| m2028_15(unsigned int) = Store[#temp2028:7] : &:r2028_14, r2030_9 +#-----| Goto -> Block 1 + +# 2033| void NewDeleteMem() +# 2033| Block 0 +# 2033| v2033_1(void) = EnterFunction : +# 2033| m2033_2(unknown) = AliasedDefinition : +# 2033| m2033_3(unknown) = InitializeNonLocal : +# 2033| m2033_4(unknown) = Chi : total:m2033_2, partial:m2033_3 +# 2034| r2034_1(glval) = VariableAddress[x] : +# 2034| r2034_2(glval) = FunctionAddress[operator new] : +# 2034| r2034_3(unsigned long) = Constant[4] : +# 2034| r2034_4(void *) = Call[operator new] : func:r2034_2, 0:r2034_3 +# 2034| m2034_5(unknown) = ^CallSideEffect : ~m2033_4 +# 2034| m2034_6(unknown) = Chi : total:m2033_4, partial:m2034_5 +# 2034| m2034_7(unknown) = ^InitializeDynamicAllocation : &:r2034_4 +# 2034| r2034_8(int *) = Convert : r2034_4 +# 2034| m2034_9(int *) = Store[x] : &:r2034_1, r2034_8 +# 2035| r2035_1(int) = Constant[6] : +# 2035| r2035_2(glval) = VariableAddress[x] : +# 2035| r2035_3(int *) = Load[x] : &:r2035_2, m2034_9 +# 2035| r2035_4(glval) = CopyValue : r2035_3 +# 2035| m2035_5(int) = Store[?] : &:r2035_4, r2035_1 +# 2035| m2035_6(unknown) = Chi : total:m2034_7, partial:m2035_5 +# 2036| r2036_1(glval) = FunctionAddress[operator delete] : +# 2036| r2036_2(glval) = VariableAddress[x] : +# 2036| r2036_3(int *) = Load[x] : &:r2036_2, m2034_9 +# 2036| v2036_4(void) = Call[operator delete] : func:r2036_1, 0:r2036_3 +# 2036| m2036_5(unknown) = ^CallSideEffect : ~m2034_6 +# 2036| m2036_6(unknown) = Chi : total:m2034_6, partial:m2036_5 +# 2037| v2037_1(void) = NoOp : +# 2033| v2033_5(void) = ReturnVoid : +# 2033| v2033_6(void) = AliasedUse : ~m2036_6 +# 2033| v2033_7(void) = ExitFunction : + +# 2039| void Base2::Base2() +# 2039| Block 0 +# 2039| v2039_1(void) = EnterFunction : +# 2039| m2039_2(unknown) = AliasedDefinition : +# 2039| m2039_3(unknown) = InitializeNonLocal : +# 2039| m2039_4(unknown) = Chi : total:m2039_2, partial:m2039_3 +# 2039| r2039_5(glval) = VariableAddress[#this] : +# 2039| m2039_6(glval) = InitializeParameter[#this] : &:r2039_5 +# 2039| r2039_7(glval) = Load[#this] : &:r2039_5, m2039_6 +# 2039| m2039_8(Base2) = InitializeIndirection[#this] : &:r2039_7 +# 2039| v2039_9(void) = NoOp : +# 2039| v2039_10(void) = ReturnIndirection[#this] : &:r2039_7, m2039_8 +# 2039| v2039_11(void) = ReturnVoid : +# 2039| v2039_12(void) = AliasedUse : m2039_3 +# 2039| v2039_13(void) = ExitFunction : + +# 2041| void Base2::operator delete(void*) +# 2041| Block 0 +# 2041| v2041_1(void) = EnterFunction : +# 2041| m2041_2(unknown) = AliasedDefinition : +# 2041| m2041_3(unknown) = InitializeNonLocal : +# 2041| m2041_4(unknown) = Chi : total:m2041_2, partial:m2041_3 +# 2041| r2041_5(glval) = VariableAddress[p] : +# 2041| m2041_6(void *) = InitializeParameter[p] : &:r2041_5 +# 2041| r2041_7(void *) = Load[p] : &:r2041_5, m2041_6 +# 2041| m2041_8(unknown) = InitializeIndirection[p] : &:r2041_7 +# 2042| v2042_1(void) = NoOp : +# 2041| v2041_9(void) = ReturnIndirection[p] : &:r2041_7, m2041_8 +# 2041| v2041_10(void) = ReturnVoid : +# 2041| v2041_11(void) = AliasedUse : m2041_3 +# 2041| v2041_12(void) = ExitFunction : + +# 2043| void Base2::~Base2() +# 2043| Block 0 +# 2043| v2043_1(void) = EnterFunction : +# 2043| m2043_2(unknown) = AliasedDefinition : +# 2043| m2043_3(unknown) = InitializeNonLocal : +# 2043| m2043_4(unknown) = Chi : total:m2043_2, partial:m2043_3 +# 2043| r2043_5(glval) = VariableAddress[#this] : +# 2043| m2043_6(glval) = InitializeParameter[#this] : &:r2043_5 +# 2043| r2043_7(glval) = Load[#this] : &:r2043_5, m2043_6 +# 2043| m2043_8(Base2) = InitializeIndirection[#this] : &:r2043_7 +# 2043| v2043_9(void) = NoOp : +# 2043| v2043_10(void) = ReturnIndirection[#this] : &:r2043_7, m2043_8 +# 2043| v2043_11(void) = ReturnVoid : +# 2043| v2043_12(void) = AliasedUse : m2043_3 +# 2043| v2043_13(void) = ExitFunction : + +# 2046| void Derived2::Derived2() +# 2046| Block 0 +# 2046| v2046_1(void) = EnterFunction : +# 2046| m2046_2(unknown) = AliasedDefinition : +# 2046| m2046_3(unknown) = InitializeNonLocal : +# 2046| m2046_4(unknown) = Chi : total:m2046_2, partial:m2046_3 +# 2046| r2046_5(glval) = VariableAddress[#this] : +# 2046| m2046_6(glval) = InitializeParameter[#this] : &:r2046_5 +# 2046| r2046_7(glval) = Load[#this] : &:r2046_5, m2046_6 +# 2046| m2046_8(Derived2) = InitializeIndirection[#this] : &:r2046_7 +# 2046| r2046_9(glval) = ConvertToNonVirtualBase[Derived2 : Base2] : m2046_6 +# 2046| r2046_10(glval) = FunctionAddress[Base2] : +# 2046| v2046_11(void) = Call[Base2] : func:r2046_10, this:r2046_9 +# 2046| m2046_12(unknown) = ^CallSideEffect : ~m2046_4 +# 2046| m2046_13(unknown) = Chi : total:m2046_4, partial:m2046_12 +# 2046| m2046_14(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2046_9 +# 2046| m2046_15(unknown) = Chi : total:m2046_8, partial:m2046_14 +# 2046| v2046_16(void) = NoOp : +# 2046| v2046_17(void) = ReturnIndirection[#this] : &:r2046_7, m2046_15 +# 2046| v2046_18(void) = ReturnVoid : +# 2046| v2046_19(void) = AliasedUse : ~m2046_13 +# 2046| v2046_20(void) = ExitFunction : + +# 2049| void Derived2::~Derived2() +# 2049| Block 0 +# 2049| v2049_1(void) = EnterFunction : +# 2049| m2049_2(unknown) = AliasedDefinition : +# 2049| m2049_3(unknown) = InitializeNonLocal : +# 2049| m2049_4(unknown) = Chi : total:m2049_2, partial:m2049_3 +# 2049| r2049_5(glval) = VariableAddress[#this] : +# 2049| m2049_6(glval) = InitializeParameter[#this] : &:r2049_5 +# 2049| r2049_7(glval) = Load[#this] : &:r2049_5, m2049_6 +# 2049| m2049_8(Derived2) = InitializeIndirection[#this] : &:r2049_7 +# 2049| v2049_9(void) = NoOp : +# 2049| r2049_10(glval) = ConvertToNonVirtualBase[Derived2 : Base2] : m2049_6 +# 2049| r2049_11(glval) = FunctionAddress[~Base2] : +# 2049| v2049_12(void) = Call[~Base2] : func:r2049_11, this:r2049_10 +# 2049| m2049_13(unknown) = ^CallSideEffect : ~m2049_4 +# 2049| m2049_14(unknown) = Chi : total:m2049_4, partial:m2049_13 +# 2049| v2049_15(void) = ReturnIndirection[#this] : &:r2049_7, m2049_8 +# 2049| v2049_16(void) = ReturnVoid : +# 2049| v2049_17(void) = AliasedUse : ~m2049_14 +# 2049| v2049_18(void) = ExitFunction : + +# 2051| void Derived2::operator delete(void*) +# 2051| Block 0 +# 2051| v2051_1(void) = EnterFunction : +# 2051| m2051_2(unknown) = AliasedDefinition : +# 2051| m2051_3(unknown) = InitializeNonLocal : +# 2051| m2051_4(unknown) = Chi : total:m2051_2, partial:m2051_3 +# 2051| r2051_5(glval) = VariableAddress[p] : +# 2051| m2051_6(void *) = InitializeParameter[p] : &:r2051_5 +# 2051| r2051_7(void *) = Load[p] : &:r2051_5, m2051_6 +# 2051| m2051_8(unknown) = InitializeIndirection[p] : &:r2051_7 +# 2052| v2052_1(void) = NoOp : +# 2051| v2051_9(void) = ReturnIndirection[p] : &:r2051_7, m2051_8 +# 2051| v2051_10(void) = ReturnVoid : +# 2051| v2051_11(void) = AliasedUse : m2051_3 +# 2051| v2051_12(void) = ExitFunction : + +# 2056| int virtual_delete() +# 2056| Block 0 +# 2056| v2056_1(void) = EnterFunction : +# 2056| m2056_2(unknown) = AliasedDefinition : +# 2056| m2056_3(unknown) = InitializeNonLocal : +# 2056| m2056_4(unknown) = Chi : total:m2056_2, partial:m2056_3 +# 2058| r2058_1(glval) = VariableAddress[b1] : +# 2058| r2058_2(glval) = FunctionAddress[operator new] : +# 2058| r2058_3(unsigned long) = Constant[8] : +# 2058| r2058_4(void *) = Call[operator new] : func:r2058_2, 0:r2058_3 +# 2058| m2058_5(unknown) = ^CallSideEffect : ~m2056_4 +# 2058| m2058_6(unknown) = Chi : total:m2056_4, partial:m2058_5 +# 2058| m2058_7(unknown) = ^InitializeDynamicAllocation : &:r2058_4 +# 2058| r2058_8(Base2 *) = Convert : r2058_4 +# 2058| r2058_9(glval) = FunctionAddress[Base2] : +# 2058| v2058_10(void) = Call[Base2] : func:r2058_9, this:r2058_8 +# 2058| m2058_11(unknown) = ^CallSideEffect : ~m2058_6 +# 2058| m2058_12(unknown) = Chi : total:m2058_6, partial:m2058_11 +# 2058| m2058_13(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2058_8 +# 2058| m2058_14(unknown) = Chi : total:m2058_7, partial:m2058_13 +# 2058| m2058_15(Base2 *) = Store[b1] : &:r2058_1, r2058_8 +# 2059| r2059_1(glval) = VirtualDeleteFunctionAddress : +# 2059| r2059_2(glval) = VariableAddress[b1] : +# 2059| r2059_3(Base2 *) = Load[b1] : &:r2059_2, m2058_15 +# 2059| v2059_4(void) = Call[?] : func:r2059_1, 0:r2059_3 +# 2059| m2059_5(unknown) = ^CallSideEffect : ~m2058_12 +# 2059| m2059_6(unknown) = Chi : total:m2058_12, partial:m2059_5 +# 2061| r2061_1(glval) = VariableAddress[b2] : +# 2061| r2061_2(glval) = FunctionAddress[operator new] : +# 2061| r2061_3(unsigned long) = Constant[16] : +# 2061| r2061_4(void *) = Call[operator new] : func:r2061_2, 0:r2061_3 +# 2061| m2061_5(unknown) = ^CallSideEffect : ~m2059_6 +# 2061| m2061_6(unknown) = Chi : total:m2059_6, partial:m2061_5 +# 2061| m2061_7(unknown) = ^InitializeDynamicAllocation : &:r2061_4 +# 2061| r2061_8(Derived2 *) = Convert : r2061_4 +# 2061| r2061_9(glval) = FunctionAddress[Derived2] : +# 2061| v2061_10(void) = Call[Derived2] : func:r2061_9, this:r2061_8 +# 2061| m2061_11(unknown) = ^CallSideEffect : ~m2061_6 +# 2061| m2061_12(unknown) = Chi : total:m2061_6, partial:m2061_11 +# 2061| m2061_13(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2061_8 +# 2061| m2061_14(unknown) = Chi : total:m2061_7, partial:m2061_13 +# 2061| r2061_15(Base2 *) = ConvertToNonVirtualBase[Derived2 : Base2] : r2061_8 +# 2061| m2061_16(Base2 *) = Store[b2] : &:r2061_1, r2061_15 +# 2062| r2062_1(glval) = VirtualDeleteFunctionAddress : +# 2062| r2062_2(glval) = VariableAddress[b2] : +# 2062| r2062_3(Base2 *) = Load[b2] : &:r2062_2, m2061_16 +# 2062| v2062_4(void) = Call[?] : func:r2062_1, 0:r2062_3 +# 2062| m2062_5(unknown) = ^CallSideEffect : ~m2061_12 +# 2062| m2062_6(unknown) = Chi : total:m2061_12, partial:m2062_5 +# 2064| r2064_1(glval) = VariableAddress[d] : +# 2064| r2064_2(glval) = FunctionAddress[operator new] : +# 2064| r2064_3(unsigned long) = Constant[16] : +# 2064| r2064_4(void *) = Call[operator new] : func:r2064_2, 0:r2064_3 +# 2064| m2064_5(unknown) = ^CallSideEffect : ~m2062_6 +# 2064| m2064_6(unknown) = Chi : total:m2062_6, partial:m2064_5 +# 2064| m2064_7(unknown) = ^InitializeDynamicAllocation : &:r2064_4 +# 2064| r2064_8(Derived2 *) = Convert : r2064_4 +# 2064| r2064_9(glval) = FunctionAddress[Derived2] : +# 2064| v2064_10(void) = Call[Derived2] : func:r2064_9, this:r2064_8 +# 2064| m2064_11(unknown) = ^CallSideEffect : ~m2064_6 +# 2064| m2064_12(unknown) = Chi : total:m2064_6, partial:m2064_11 +# 2064| m2064_13(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2064_8 +# 2064| m2064_14(unknown) = Chi : total:m2064_7, partial:m2064_13 +# 2064| m2064_15(Derived2 *) = Store[d] : &:r2064_1, r2064_8 +# 2065| r2065_1(glval) = VirtualDeleteFunctionAddress : +# 2065| r2065_2(glval) = VariableAddress[d] : +# 2065| r2065_3(Derived2 *) = Load[d] : &:r2065_2, m2064_15 +# 2065| v2065_4(void) = Call[?] : func:r2065_1, 0:r2065_3 +# 2065| m2065_5(unknown) = ^CallSideEffect : ~m2064_12 +# 2065| m2065_6(unknown) = Chi : total:m2064_12, partial:m2065_5 +# 2066| r2066_1(glval) = VariableAddress[#return] : +# 2066| m2066_2(int) = Uninitialized[#return] : &:r2066_1 +# 2056| r2056_5(glval) = VariableAddress[#return] : +# 2056| v2056_6(void) = ReturnValue : &:r2056_5, m2066_2 +# 2056| v2056_7(void) = AliasedUse : ~m2065_6 +# 2056| v2056_8(void) = ExitFunction : + +# 2070| void test_constant_folding() +# 2070| Block 0 +# 2070| v2070_1(void) = EnterFunction : +# 2070| m2070_2(unknown) = AliasedDefinition : +# 2070| m2070_3(unknown) = InitializeNonLocal : +# 2070| m2070_4(unknown) = Chi : total:m2070_2, partial:m2070_3 +# 2071| r2071_1(glval) = VariableAddress[x] : +# 2071| r2071_2(int) = Constant[116] : +# 2071| m2071_3(int) = Store[x] : &:r2071_1, r2071_2 +# 2072| r2072_1(glval) = FunctionAddress[test_constant_folding_use] : +# 2072| r2072_2(int) = Constant[116] : +# 2072| v2072_3(void) = Call[test_constant_folding_use] : func:r2072_1, 0:r2072_2 +# 2072| m2072_4(unknown) = ^CallSideEffect : ~m2070_4 +# 2072| m2072_5(unknown) = Chi : total:m2070_4, partial:m2072_4 +# 2073| v2073_1(void) = NoOp : +# 2070| v2070_5(void) = ReturnVoid : +# 2070| v2070_6(void) = AliasedUse : ~m2072_5 +# 2070| v2070_7(void) = ExitFunction : + +# 2077| int NonExit() +# 2077| Block 0 +# 2077| v2077_1(void) = EnterFunction : +# 2077| m2077_2(unknown) = AliasedDefinition : +# 2077| m2077_3(unknown) = InitializeNonLocal : +# 2077| m2077_4(unknown) = Chi : total:m2077_2, partial:m2077_3 +# 2078| r2078_1(glval) = VariableAddress[x] : +# 2078| r2078_2(glval) = FunctionAddress[Add] : +# 2078| r2078_3(int) = Constant[3] : +# 2078| r2078_4(int) = Constant[4] : +# 2078| r2078_5(int) = Call[Add] : func:r2078_2, 0:r2078_3, 1:r2078_4 +# 2078| m2078_6(unknown) = ^CallSideEffect : ~m2077_4 +# 2078| m2078_7(unknown) = Chi : total:m2077_4, partial:m2078_6 +# 2078| m2078_8(int) = Store[x] : &:r2078_1, r2078_5 +# 2079| r2079_1(glval) = VariableAddress[x] : +# 2079| r2079_2(int) = Load[x] : &:r2079_1, m2078_8 +# 2079| r2079_3(int) = Constant[7] : +# 2079| r2079_4(bool) = CompareEQ : r2079_2, r2079_3 +# 2079| v2079_5(void) = ConditionalBranch : r2079_4 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2080| Block 1 +# 2080| r2080_1(glval) = FunctionAddress[exit] : +# 2080| r2080_2(int) = Constant[3] : +# 2080| v2080_3(void) = Call[exit] : func:r2080_1, 0:r2080_2 +# 2080| m2080_4(unknown) = ^CallSideEffect : ~m2078_7 +# 2080| m2080_5(unknown) = Chi : total:m2078_7, partial:m2080_4 +# 2077| v2077_5(void) = Unreached : + +# 2081| Block 2 +# 2081| r2081_1(glval) = FunctionAddress[VoidFunc] : +# 2081| v2081_2(void) = Call[VoidFunc] : func:r2081_1 +# 2081| m2081_3(unknown) = ^CallSideEffect : ~m2078_7 +# 2081| m2081_4(unknown) = Chi : total:m2078_7, partial:m2081_3 +# 2082| r2082_1(glval) = VariableAddress[#return] : +# 2082| r2082_2(glval) = VariableAddress[x] : +# 2082| r2082_3(int) = Load[x] : &:r2082_2, m2078_8 +# 2082| m2082_4(int) = Store[#return] : &:r2082_1, r2082_3 +# 2077| r2077_6(glval) = VariableAddress[#return] : +# 2077| v2077_7(void) = ReturnValue : &:r2077_6, m2082_4 +# 2077| v2077_8(void) = AliasedUse : ~m2081_4 +# 2077| v2077_9(void) = ExitFunction : + +# 2085| void CallsNonExit() +# 2085| Block 0 +# 2085| v2085_1(void) = EnterFunction : +# 2085| m2085_2(unknown) = AliasedDefinition : +# 2085| m2085_3(unknown) = InitializeNonLocal : +# 2085| m2085_4(unknown) = Chi : total:m2085_2, partial:m2085_3 +# 2086| r2086_1(glval) = FunctionAddress[VoidFunc] : +# 2086| v2086_2(void) = Call[VoidFunc] : func:r2086_1 +# 2086| m2086_3(unknown) = ^CallSideEffect : ~m2085_4 +# 2086| m2086_4(unknown) = Chi : total:m2085_4, partial:m2086_3 +# 2087| r2087_1(glval) = FunctionAddress[exit] : +# 2087| r2087_2(int) = Constant[3] : +# 2087| v2087_3(void) = Call[exit] : func:r2087_1, 0:r2087_2 +# 2087| m2087_4(unknown) = ^CallSideEffect : ~m2086_4 +# 2087| m2087_5(unknown) = Chi : total:m2086_4, partial:m2087_4 +# 2085| v2085_5(void) = Unreached : + +# 2090| int TransNonExit() +# 2090| Block 0 +# 2090| v2090_1(void) = EnterFunction : +# 2090| m2090_2(unknown) = AliasedDefinition : +# 2090| m2090_3(unknown) = InitializeNonLocal : +# 2090| m2090_4(unknown) = Chi : total:m2090_2, partial:m2090_3 +# 2091| r2091_1(glval) = VariableAddress[x] : +# 2091| r2091_2(glval) = FunctionAddress[Add] : +# 2091| r2091_3(int) = Constant[3] : +# 2091| r2091_4(int) = Constant[4] : +# 2091| r2091_5(int) = Call[Add] : func:r2091_2, 0:r2091_3, 1:r2091_4 +# 2091| m2091_6(unknown) = ^CallSideEffect : ~m2090_4 +# 2091| m2091_7(unknown) = Chi : total:m2090_4, partial:m2091_6 +# 2091| m2091_8(int) = Store[x] : &:r2091_1, r2091_5 +# 2092| r2092_1(glval) = VariableAddress[x] : +# 2092| r2092_2(int) = Load[x] : &:r2092_1, m2091_8 +# 2092| r2092_3(int) = Constant[7] : +# 2092| r2092_4(bool) = CompareEQ : r2092_2, r2092_3 +# 2092| v2092_5(void) = ConditionalBranch : r2092_4 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2093| Block 1 +# 2093| r2093_1(glval) = FunctionAddress[CallsNonExit] : +# 2093| v2093_2(void) = Call[CallsNonExit] : func:r2093_1 +# 2090| v2090_5(void) = Unreached : + +# 2094| Block 2 +# 2094| r2094_1(glval) = FunctionAddress[VoidFunc] : +# 2094| v2094_2(void) = Call[VoidFunc] : func:r2094_1 +# 2094| m2094_3(unknown) = ^CallSideEffect : ~m2091_7 +# 2094| m2094_4(unknown) = Chi : total:m2091_7, partial:m2094_3 +# 2095| r2095_1(glval) = VariableAddress[#return] : +# 2095| r2095_2(glval) = VariableAddress[x] : +# 2095| r2095_3(int) = Load[x] : &:r2095_2, m2091_8 +# 2095| m2095_4(int) = Store[#return] : &:r2095_1, r2095_3 +# 2090| r2090_6(glval) = VariableAddress[#return] : +# 2090| v2090_7(void) = ReturnValue : &:r2090_6, m2095_4 +# 2090| v2090_8(void) = AliasedUse : ~m2094_4 +# 2090| v2090_9(void) = ExitFunction : + +perf-regression.cpp: +# 6| void Big::Big() +# 6| Block 0 +# 6| v6_1(void) = EnterFunction : +# 6| m6_2(unknown) = AliasedDefinition : +# 6| m6_3(unknown) = InitializeNonLocal : +# 6| m6_4(unknown) = Chi : total:m6_2, partial:m6_3 +# 6| r6_5(glval) = VariableAddress[#this] : +# 6| m6_6(glval) = InitializeParameter[#this] : &:r6_5 +# 6| r6_7(glval) = Load[#this] : &:r6_5, m6_6 +# 6| m6_8(Big) = InitializeIndirection[#this] : &:r6_7 +# 6| r6_9(glval) = FieldAddress[buffer] : m6_6 +# 6| r6_10(int) = Constant[0] : +# 6| r6_11(glval) = PointerAdd[1] : r6_9, r6_10 +# 6| r6_12(unknown[1073741824]) = Constant[0] : +# 6| m6_13(unknown[1073741824]) = Store[?] : &:r6_11, r6_12 +# 6| m6_14(unknown) = Chi : total:m6_8, partial:m6_13 +# 6| v6_15(void) = NoOp : +# 6| v6_16(void) = ReturnIndirection[#this] : &:r6_7, m6_14 +# 6| v6_17(void) = ReturnVoid : +# 6| v6_18(void) = AliasedUse : m6_3 +# 6| v6_19(void) = ExitFunction : + +# 9| int main() +# 9| Block 0 +# 9| v9_1(void) = EnterFunction : +# 9| m9_2(unknown) = AliasedDefinition : +# 9| m9_3(unknown) = InitializeNonLocal : +# 9| m9_4(unknown) = Chi : total:m9_2, partial:m9_3 +# 10| r10_1(glval) = VariableAddress[big] : +# 10| r10_2(glval) = FunctionAddress[operator new] : +# 10| r10_3(unsigned long) = Constant[1073741824] : +# 10| r10_4(void *) = Call[operator new] : func:r10_2, 0:r10_3 +# 10| m10_5(unknown) = ^CallSideEffect : ~m9_4 +# 10| m10_6(unknown) = Chi : total:m9_4, partial:m10_5 +# 10| m10_7(unknown) = ^InitializeDynamicAllocation : &:r10_4 +# 10| r10_8(Big *) = Convert : r10_4 +# 10| r10_9(glval) = FunctionAddress[Big] : +# 10| v10_10(void) = Call[Big] : func:r10_9, this:r10_8 +# 10| m10_11(unknown) = ^CallSideEffect : ~m10_6 +# 10| m10_12(unknown) = Chi : total:m10_6, partial:m10_11 +# 10| m10_13(Big) = ^IndirectMayWriteSideEffect[-1] : &:r10_8 +# 10| m10_14(unknown) = Chi : total:m10_7, partial:m10_13 +# 10| m10_15(Big *) = Store[big] : &:r10_1, r10_8 +# 12| r12_1(glval) = VariableAddress[#return] : +# 12| r12_2(int) = Constant[0] : +# 12| m12_3(int) = Store[#return] : &:r12_1, r12_2 +# 9| r9_5(glval) = VariableAddress[#return] : +# 9| v9_6(void) = ReturnValue : &:r9_5, m12_3 +# 9| v9_7(void) = AliasedUse : ~m10_12 +# 9| v9_8(void) = ExitFunction : + +smart_ptr.cpp: +# 10| void call_unique_ptr_arg(int*) +# 10| Block 0 +# 10| v10_1(void) = EnterFunction : +# 10| m10_2(unknown) = AliasedDefinition : +# 10| m10_3(unknown) = InitializeNonLocal : +# 10| m10_4(unknown) = Chi : total:m10_2, partial:m10_3 +# 10| r10_5(glval) = VariableAddress[p] : +# 10| m10_6(int *) = InitializeParameter[p] : &:r10_5 +# 10| r10_7(int *) = Load[p] : &:r10_5, m10_6 +# 10| m10_8(unknown) = InitializeIndirection[p] : &:r10_7 +# 11| r11_1(glval>>) = VariableAddress[up] : +# 11| m11_2(unique_ptr>) = Uninitialized[up] : &:r11_1 +# 11| r11_3(glval) = FunctionAddress[unique_ptr] : +# 11| r11_4(glval) = VariableAddress[p] : +# 11| r11_5(int *) = Load[p] : &:r11_4, m10_6 +# 11| v11_6(void) = Call[unique_ptr] : func:r11_3, this:r11_1, 0:r11_5 +# 11| m11_7(unknown) = ^CallSideEffect : ~m10_4 +# 11| m11_8(unknown) = Chi : total:m10_4, partial:m11_7 +# 11| m11_9(unique_ptr>) = ^IndirectMustWriteSideEffect[-1] : &:r11_1 +# 12| r12_1(glval) = FunctionAddress[unique_ptr_arg] : +# 12| r12_2(glval>>) = VariableAddress[#temp12:20] : +# 12| r12_3(glval) = FunctionAddress[move] : +# 12| r12_4(glval>>) = VariableAddress[up] : +# 12| r12_5(unique_ptr> &) = CopyValue : r12_4 +# 12| r12_6(unique_ptr> &&) = Call[move] : func:r12_3, 0:r12_5 +# 12| r12_7(unique_ptr>) = Load[?] : &:r12_6, m11_9 +# 12| m12_8(unique_ptr>) = Store[#temp12:20] : &:r12_2, r12_7 +# 12| r12_9(unique_ptr>) = Load[#temp12:20] : &:r12_2, m12_8 +# 12| v12_10(void) = Call[unique_ptr_arg] : func:r12_1, 0:r12_9 +# 12| m12_11(unknown) = ^CallSideEffect : ~m11_8 +# 12| m12_12(unknown) = Chi : total:m11_8, partial:m12_11 +# 12| v12_13(void) = ^BufferReadSideEffect[0] : &:r12_9, ~m10_8 +# 12| m12_14(unknown) = ^BufferMayWriteSideEffect[0] : &:r12_9 +# 12| m12_15(unknown) = Chi : total:m10_8, partial:m12_14 +# 13| v13_1(void) = NoOp : +# 10| v10_9(void) = ReturnIndirection[p] : &:r10_7, m12_15 +# 10| v10_10(void) = ReturnVoid : +# 10| v10_11(void) = AliasedUse : ~m12_12 +# 10| v10_12(void) = ExitFunction : + +# 17| void call_shared_ptr_arg(float*) +# 17| Block 0 +# 17| v17_1(void) = EnterFunction : +# 17| m17_2(unknown) = AliasedDefinition : +# 17| m17_3(unknown) = InitializeNonLocal : +# 17| m17_4(unknown) = Chi : total:m17_2, partial:m17_3 +# 17| r17_5(glval) = VariableAddress[p] : +# 17| m17_6(float *) = InitializeParameter[p] : &:r17_5 +# 17| r17_7(float *) = Load[p] : &:r17_5, m17_6 +# 17| m17_8(unknown) = InitializeIndirection[p] : &:r17_7 +# 18| r18_1(glval>) = VariableAddress[sp] : +# 18| m18_2(shared_ptr) = Uninitialized[sp] : &:r18_1 +# 18| r18_3(glval) = FunctionAddress[shared_ptr] : +# 18| r18_4(glval) = VariableAddress[p] : +# 18| r18_5(float *) = Load[p] : &:r18_4, m17_6 +# 18| v18_6(void) = Call[shared_ptr] : func:r18_3, this:r18_1, 0:r18_5 +# 18| m18_7(unknown) = ^CallSideEffect : ~m17_4 +# 18| m18_8(unknown) = Chi : total:m17_4, partial:m18_7 +# 18| m18_9(shared_ptr) = ^IndirectMustWriteSideEffect[-1] : &:r18_1 +# 19| r19_1(glval) = FunctionAddress[shared_ptr_arg] : +# 19| r19_2(glval>) = VariableAddress[#temp19:20] : +# 19| m19_3(shared_ptr) = Uninitialized[#temp19:20] : &:r19_2 +# 19| r19_4(glval) = FunctionAddress[shared_ptr] : +# 19| r19_5(glval>) = VariableAddress[sp] : +# 19| r19_6(glval>) = Convert : r19_5 +# 19| r19_7(shared_ptr &) = CopyValue : r19_6 +# 19| v19_8(void) = Call[shared_ptr] : func:r19_4, this:r19_2, 0:r19_7 +# 19| m19_9(unknown) = ^CallSideEffect : ~m18_8 +# 19| m19_10(unknown) = Chi : total:m18_8, partial:m19_9 +# 19| v19_11(void) = ^IndirectReadSideEffect[0] : &:r19_7, m18_9 +# 19| m19_12(shared_ptr) = ^IndirectMustWriteSideEffect[-1] : &:r19_2 +# 19| r19_13(shared_ptr) = Load[#temp19:20] : &:r19_2, m19_12 +# 19| v19_14(void) = Call[shared_ptr_arg] : func:r19_1, 0:r19_13 +# 19| m19_15(unknown) = ^CallSideEffect : ~m19_10 +# 19| m19_16(unknown) = Chi : total:m19_10, partial:m19_15 +# 19| v19_17(void) = ^BufferReadSideEffect[0] : &:r19_13, ~m17_8 +# 19| m19_18(unknown) = ^BufferMayWriteSideEffect[0] : &:r19_13 +# 19| m19_19(unknown) = Chi : total:m17_8, partial:m19_18 +# 20| v20_1(void) = NoOp : +# 17| v17_9(void) = ReturnIndirection[p] : &:r17_7, m19_19 +# 17| v17_10(void) = ReturnVoid : +# 17| v17_11(void) = AliasedUse : ~m19_16 +# 17| v17_12(void) = ExitFunction : + +# 28| void call_shared_ptr_consts() +# 28| Block 0 +# 28| v28_1(void) = EnterFunction : +# 28| m28_2(unknown) = AliasedDefinition : +# 28| m28_3(unknown) = InitializeNonLocal : +# 28| m28_4(unknown) = Chi : total:m28_2, partial:m28_3 +# 29| r29_1(glval>) = VariableAddress[sp_const_int] : +# 29| m29_2(shared_ptr) = Uninitialized[sp_const_int] : &:r29_1 +# 31| r31_1(glval) = FunctionAddress[shared_ptr_const_int] : +# 31| r31_2(glval>) = VariableAddress[#temp31:26] : +# 31| m31_3(shared_ptr) = Uninitialized[#temp31:26] : &:r31_2 +# 31| r31_4(glval) = FunctionAddress[shared_ptr] : +# 31| r31_5(glval>) = VariableAddress[sp_const_int] : +# 31| r31_6(glval>) = Convert : r31_5 +# 31| r31_7(shared_ptr &) = CopyValue : r31_6 +# 31| v31_8(void) = Call[shared_ptr] : func:r31_4, this:r31_2, 0:r31_7 +# 31| m31_9(unknown) = ^CallSideEffect : ~m28_4 +# 31| m31_10(unknown) = Chi : total:m28_4, partial:m31_9 +# 31| v31_11(void) = ^IndirectReadSideEffect[0] : &:r31_7, m29_2 +# 31| m31_12(shared_ptr) = ^IndirectMustWriteSideEffect[-1] : &:r31_2 +# 31| r31_13(shared_ptr) = Load[#temp31:26] : &:r31_2, m31_12 +# 31| v31_14(void) = Call[shared_ptr_const_int] : func:r31_1, 0:r31_13 +# 31| m31_15(unknown) = ^CallSideEffect : ~m31_10 +# 31| m31_16(unknown) = Chi : total:m31_10, partial:m31_15 +# 31| v31_17(void) = ^BufferReadSideEffect[0] : &:r31_13, ~m31_16 +# 33| r33_1(glval>) = VariableAddress[sp_const_int_pointer] : +# 33| m33_2(shared_ptr) = Uninitialized[sp_const_int_pointer] : &:r33_1 +# 35| r35_1(glval) = FunctionAddress[shared_ptr_const_int_ptr] : +# 35| r35_2(glval>) = VariableAddress[#temp35:30] : +# 35| m35_3(shared_ptr) = Uninitialized[#temp35:30] : &:r35_2 +# 35| r35_4(glval) = FunctionAddress[shared_ptr] : +# 35| r35_5(glval>) = VariableAddress[sp_const_int_pointer] : +# 35| r35_6(glval>) = Convert : r35_5 +# 35| r35_7(shared_ptr &) = CopyValue : r35_6 +# 35| v35_8(void) = Call[shared_ptr] : func:r35_4, this:r35_2, 0:r35_7 +# 35| m35_9(unknown) = ^CallSideEffect : ~m31_16 +# 35| m35_10(unknown) = Chi : total:m31_16, partial:m35_9 +# 35| v35_11(void) = ^IndirectReadSideEffect[0] : &:r35_7, m33_2 +# 35| m35_12(shared_ptr) = ^IndirectMustWriteSideEffect[-1] : &:r35_2 +# 35| r35_13(shared_ptr) = Load[#temp35:30] : &:r35_2, m35_12 +# 35| v35_14(void) = Call[shared_ptr_const_int_ptr] : func:r35_1, 0:r35_13 +# 35| m35_15(unknown) = ^CallSideEffect : ~m35_10 +# 35| m35_16(unknown) = Chi : total:m35_10, partial:m35_15 +# 35| v35_17(void) = ^BufferReadSideEffect[0] : &:r35_13, ~m35_16 +# 35| m35_18(unknown) = ^BufferMayWriteSideEffect[0] : &:r35_13 +# 35| m35_19(unknown) = Chi : total:m35_16, partial:m35_18 +# 37| r37_1(glval>>) = VariableAddress[sp_sp_const_int] : +# 37| m37_2(shared_ptr>) = Uninitialized[sp_sp_const_int] : &:r37_1 +# 39| r39_1(glval) = FunctionAddress[shared_ptr_shared_ptr_const_int] : +# 39| r39_2(glval>>) = VariableAddress[#temp39:37] : +# 39| m39_3(shared_ptr>) = Uninitialized[#temp39:37] : &:r39_2 +# 39| r39_4(glval) = FunctionAddress[shared_ptr] : +# 39| r39_5(glval>>) = VariableAddress[sp_sp_const_int] : +# 39| r39_6(glval>>) = Convert : r39_5 +# 39| r39_7(shared_ptr> &) = CopyValue : r39_6 +# 39| v39_8(void) = Call[shared_ptr] : func:r39_4, this:r39_2, 0:r39_7 +# 39| m39_9(unknown) = ^CallSideEffect : ~m35_19 +# 39| m39_10(unknown) = Chi : total:m35_19, partial:m39_9 +# 39| v39_11(void) = ^IndirectReadSideEffect[0] : &:r39_7, m37_2 +# 39| m39_12(shared_ptr>) = ^IndirectMustWriteSideEffect[-1] : &:r39_2 +# 39| r39_13(shared_ptr>) = Load[#temp39:37] : &:r39_2, m39_12 +# 39| v39_14(void) = Call[shared_ptr_shared_ptr_const_int] : func:r39_1, 0:r39_13 +# 39| m39_15(unknown) = ^CallSideEffect : ~m39_10 +# 39| m39_16(unknown) = Chi : total:m39_10, partial:m39_15 +# 39| v39_17(void) = ^BufferReadSideEffect[0] : &:r39_13, ~m39_16 +# 39| m39_18(unknown) = ^BufferMayWriteSideEffect[0] : &:r39_13 +# 39| m39_19(unknown) = Chi : total:m39_16, partial:m39_18 +# 41| r41_1(glval>>) = VariableAddress[sp_const_sp_int] : +# 41| m41_2(shared_ptr>) = Uninitialized[sp_const_sp_int] : &:r41_1 +# 43| r43_1(glval) = FunctionAddress[shared_ptr_const_shared_ptr_int] : +# 43| r43_2(glval>>) = VariableAddress[#temp43:37] : +# 43| m43_3(shared_ptr>) = Uninitialized[#temp43:37] : &:r43_2 +# 43| r43_4(glval) = FunctionAddress[shared_ptr] : +# 43| r43_5(glval>>) = VariableAddress[sp_const_sp_int] : +# 43| r43_6(glval>>) = Convert : r43_5 +# 43| r43_7(shared_ptr> &) = CopyValue : r43_6 +# 43| v43_8(void) = Call[shared_ptr] : func:r43_4, this:r43_2, 0:r43_7 +# 43| m43_9(unknown) = ^CallSideEffect : ~m39_19 +# 43| m43_10(unknown) = Chi : total:m39_19, partial:m43_9 +# 43| v43_11(void) = ^IndirectReadSideEffect[0] : &:r43_7, m41_2 +# 43| m43_12(shared_ptr>) = ^IndirectMustWriteSideEffect[-1] : &:r43_2 +# 43| r43_13(shared_ptr>) = Load[#temp43:37] : &:r43_2, m43_12 +# 43| v43_14(void) = Call[shared_ptr_const_shared_ptr_int] : func:r43_1, 0:r43_13 +# 43| m43_15(unknown) = ^CallSideEffect : ~m43_10 +# 43| m43_16(unknown) = Chi : total:m43_10, partial:m43_15 +# 43| v43_17(void) = ^BufferReadSideEffect[0] : &:r43_13, ~m43_16 +# 43| m43_18(unknown) = ^BufferMayWriteSideEffect[0] : &:r43_13 +# 43| m43_19(unknown) = Chi : total:m43_16, partial:m43_18 +# 45| r45_1(glval>>) = VariableAddress[sp_const_sp_const_int] : +# 45| m45_2(shared_ptr>) = Uninitialized[sp_const_sp_const_int] : &:r45_1 +# 47| r47_1(glval) = FunctionAddress[shared_ptr_const_shared_ptr_const_int] : +# 47| r47_2(glval>>) = VariableAddress[#temp47:43] : +# 47| m47_3(shared_ptr>) = Uninitialized[#temp47:43] : &:r47_2 +# 47| r47_4(glval) = FunctionAddress[shared_ptr] : +# 47| r47_5(glval>>) = VariableAddress[sp_const_sp_const_int] : +# 47| r47_6(glval>>) = Convert : r47_5 +# 47| r47_7(shared_ptr> &) = CopyValue : r47_6 +# 47| v47_8(void) = Call[shared_ptr] : func:r47_4, this:r47_2, 0:r47_7 +# 47| m47_9(unknown) = ^CallSideEffect : ~m43_19 +# 47| m47_10(unknown) = Chi : total:m43_19, partial:m47_9 +# 47| v47_11(void) = ^IndirectReadSideEffect[0] : &:r47_7, m45_2 +# 47| m47_12(shared_ptr>) = ^IndirectMustWriteSideEffect[-1] : &:r47_2 +# 47| r47_13(shared_ptr>) = Load[#temp47:43] : &:r47_2, m47_12 +# 47| v47_14(void) = Call[shared_ptr_const_shared_ptr_const_int] : func:r47_1, 0:r47_13 +# 47| m47_15(unknown) = ^CallSideEffect : ~m47_10 +# 47| m47_16(unknown) = Chi : total:m47_10, partial:m47_15 +# 47| v47_17(void) = ^BufferReadSideEffect[0] : &:r47_13, ~m47_16 +# 48| v48_1(void) = NoOp : +# 28| v28_5(void) = ReturnVoid : +# 28| v28_6(void) = AliasedUse : ~m47_16 +# 28| v28_7(void) = ExitFunction : + +struct_init.cpp: +# 9| Info infos_in_file[] +# 9| Block 0 +# 9| v9_1(void) = EnterFunction : +# 9| m9_2(unknown) = AliasedDefinition : +# 9| r9_3(glval) = VariableAddress[infos_in_file] : +# 9| r9_4(int) = Constant[0] : +# 9| r9_5(glval) = PointerAdd[16] : r9_3, r9_4 +# 10| r10_1(glval) = FieldAddress[name] : r9_5 +# 10| r10_2(glval) = StringConstant["1"] : +# 10| r10_3(char *) = Convert : r10_2 +# 10| m10_4(char *) = Store[?] : &:r10_1, r10_3 +# 10| m10_5(unknown) = Chi : total:m9_2, partial:m10_4 +# 10| r10_6(glval<..(*)(..)>) = FieldAddress[handler] : r9_5 +# 10| r10_7(..(*)(..)) = FunctionAddress[handler1] : +# 10| m10_8(..(*)(..)) = Store[?] : &:r10_6, r10_7 +# 10| m10_9(unknown) = Chi : total:m10_5, partial:m10_8 +# 9| r9_6(int) = Constant[1] : +# 9| r9_7(glval) = PointerAdd[16] : r9_3, r9_6 +# 11| r11_1(glval) = FieldAddress[name] : r9_7 +# 11| r11_2(glval) = StringConstant["3"] : +# 11| r11_3(char *) = Convert : r11_2 +# 11| m11_4(char *) = Store[?] : &:r11_1, r11_3 +# 11| m11_5(unknown) = Chi : total:m10_9, partial:m11_4 +# 11| r11_6(glval<..(*)(..)>) = FieldAddress[handler] : r9_7 +# 11| r11_7(glval<..()(..)>) = FunctionAddress[handler2] : +# 11| r11_8(..(*)(..)) = CopyValue : r11_7 +# 11| m11_9(..(*)(..)) = Store[?] : &:r11_6, r11_8 +# 11| m11_10(unknown) = Chi : total:m11_5, partial:m11_9 +# 9| v9_8(void) = ReturnVoid : +# 9| v9_9(void) = AliasedUse : ~m11_10 +# 9| v9_10(void) = ExitFunction : + +# 16| void let_info_escape(Info*) +# 16| Block 0 +# 16| v16_1(void) = EnterFunction : +# 16| m16_2(unknown) = AliasedDefinition : +# 16| m16_3(unknown) = InitializeNonLocal : +# 16| m16_4(unknown) = Chi : total:m16_2, partial:m16_3 +# 16| r16_5(glval) = VariableAddress[info] : +# 16| m16_6(Info *) = InitializeParameter[info] : &:r16_5 +# 16| r16_7(Info *) = Load[info] : &:r16_5, m16_6 +# 16| m16_8(unknown) = InitializeIndirection[info] : &:r16_7 +# 17| r17_1(glval) = VariableAddress[info] : +# 17| r17_2(Info *) = Load[info] : &:r17_1, m16_6 +# 17| r17_3(glval) = VariableAddress[global_pointer] : +# 17| m17_4(Info *) = Store[global_pointer] : &:r17_3, r17_2 +# 17| m17_5(unknown) = Chi : total:m16_4, partial:m17_4 +# 18| v18_1(void) = NoOp : +# 16| v16_9(void) = ReturnIndirection[info] : &:r16_7, m16_8 +# 16| v16_10(void) = ReturnVoid : +# 16| v16_11(void) = AliasedUse : ~m17_5 +# 16| v16_12(void) = ExitFunction : + +# 20| void declare_static_infos() +# 20| Block 0 +# 20| v20_1(void) = EnterFunction : +# 20| m20_2(unknown) = AliasedDefinition : +# 20| m20_3(unknown) = InitializeNonLocal : +# 20| m20_4(unknown) = Chi : total:m20_2, partial:m20_3 +# 25| r25_1(glval) = FunctionAddress[let_info_escape] : +# 25| r25_2(glval) = VariableAddress[static_infos] : +# 25| r25_3(Info *) = Convert : r25_2 +# 25| v25_4(void) = Call[let_info_escape] : func:r25_1, 0:r25_3 +# 25| m25_5(unknown) = ^CallSideEffect : ~m20_4 +# 25| m25_6(unknown) = Chi : total:m20_4, partial:m25_5 +# 25| v25_7(void) = ^BufferReadSideEffect[0] : &:r25_3, ~m25_6 +# 25| m25_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r25_3 +# 25| m25_9(unknown) = Chi : total:m25_6, partial:m25_8 +# 26| v26_1(void) = NoOp : +# 20| v20_5(void) = ReturnVoid : +# 20| v20_6(void) = AliasedUse : ~m25_9 +# 20| v20_7(void) = ExitFunction : + +# 21| Info[] static_infos +# 21| Block 0 +# 21| v21_1(void) = EnterFunction : +# 21| m21_2(unknown) = AliasedDefinition : +# 21| r21_3(glval) = VariableAddress[static_infos] : +# 21| r21_4(int) = Constant[0] : +# 21| r21_5(glval) = PointerAdd[16] : r21_3, r21_4 +# 22| r22_1(glval) = FieldAddress[name] : r21_5 +# 22| r22_2(glval) = StringConstant["1"] : +# 22| r22_3(char *) = Convert : r22_2 +# 22| m22_4(char *) = Store[?] : &:r22_1, r22_3 +# 22| m22_5(unknown) = Chi : total:m21_2, partial:m22_4 +# 22| r22_6(glval<..(*)(..)>) = FieldAddress[handler] : r21_5 +# 22| r22_7(..(*)(..)) = FunctionAddress[handler1] : +# 22| m22_8(..(*)(..)) = Store[?] : &:r22_6, r22_7 +# 22| m22_9(unknown) = Chi : total:m22_5, partial:m22_8 +# 21| r21_6(int) = Constant[1] : +# 21| r21_7(glval) = PointerAdd[16] : r21_3, r21_6 +# 23| r23_1(glval) = FieldAddress[name] : r21_7 +# 23| r23_2(glval) = StringConstant["2"] : +# 23| r23_3(char *) = Convert : r23_2 +# 23| m23_4(char *) = Store[?] : &:r23_1, r23_3 +# 23| m23_5(unknown) = Chi : total:m22_9, partial:m23_4 +# 23| r23_6(glval<..(*)(..)>) = FieldAddress[handler] : r21_7 +# 23| r23_7(glval<..()(..)>) = FunctionAddress[handler2] : +# 23| r23_8(..(*)(..)) = CopyValue : r23_7 +# 23| m23_9(..(*)(..)) = Store[?] : &:r23_6, r23_8 +# 23| m23_10(unknown) = Chi : total:m23_5, partial:m23_9 +# 21| v21_8(void) = ReturnVoid : +# 21| v21_9(void) = AliasedUse : ~m23_10 +# 21| v21_10(void) = ExitFunction : + +# 28| void declare_local_infos() +# 28| Block 0 +# 28| v28_1(void) = EnterFunction : +# 28| m28_2(unknown) = AliasedDefinition : +# 28| m28_3(unknown) = InitializeNonLocal : +# 28| m28_4(unknown) = Chi : total:m28_2, partial:m28_3 +# 29| r29_1(glval) = VariableAddress[local_infos] : +# 29| m29_2(Info[2]) = Uninitialized[local_infos] : &:r29_1 +# 29| r29_3(int) = Constant[0] : +# 29| r29_4(glval) = PointerAdd[16] : r29_1, r29_3 +# 30| r30_1(glval) = FieldAddress[name] : r29_4 +# 30| r30_2(glval) = StringConstant["1"] : +# 30| r30_3(char *) = Convert : r30_2 +# 30| m30_4(char *) = Store[?] : &:r30_1, r30_3 +# 30| m30_5(Info[2]) = Chi : total:m29_2, partial:m30_4 +# 30| r30_6(glval<..(*)(..)>) = FieldAddress[handler] : r29_4 +# 30| r30_7(..(*)(..)) = FunctionAddress[handler1] : +# 30| m30_8(..(*)(..)) = Store[?] : &:r30_6, r30_7 +# 30| m30_9(Info[2]) = Chi : total:m30_5, partial:m30_8 +# 29| r29_5(int) = Constant[1] : +# 29| r29_6(glval) = PointerAdd[16] : r29_1, r29_5 +# 31| r31_1(glval) = FieldAddress[name] : r29_6 +# 31| r31_2(glval) = StringConstant["2"] : +# 31| r31_3(char *) = Convert : r31_2 +# 31| m31_4(char *) = Store[?] : &:r31_1, r31_3 +# 31| m31_5(Info[2]) = Chi : total:m30_9, partial:m31_4 +# 31| r31_6(glval<..(*)(..)>) = FieldAddress[handler] : r29_6 +# 31| r31_7(glval<..()(..)>) = FunctionAddress[handler2] : +# 31| r31_8(..(*)(..)) = CopyValue : r31_7 +# 31| m31_9(..(*)(..)) = Store[?] : &:r31_6, r31_8 +# 31| m31_10(Info[2]) = Chi : total:m31_5, partial:m31_9 +# 33| r33_1(glval) = FunctionAddress[let_info_escape] : +# 33| r33_2(glval) = VariableAddress[local_infos] : +# 33| r33_3(Info *) = Convert : r33_2 +# 33| v33_4(void) = Call[let_info_escape] : func:r33_1, 0:r33_3 +# 33| m33_5(unknown) = ^CallSideEffect : ~m28_4 +# 33| m33_6(unknown) = Chi : total:m28_4, partial:m33_5 +# 33| v33_7(void) = ^BufferReadSideEffect[0] : &:r33_3, ~m31_10 +# 33| m33_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r33_3 +# 33| m33_9(Info[2]) = Chi : total:m31_10, partial:m33_8 +# 34| v34_1(void) = NoOp : +# 28| v28_5(void) = ReturnVoid : +# 28| v28_6(void) = AliasedUse : ~m33_6 +# 28| v28_7(void) = ExitFunction : + +# 36| void declare_static_runtime_infos(char const*) +# 36| Block 0 +# 36| v36_1(void) = EnterFunction : +# 36| m36_2(unknown) = AliasedDefinition : +# 36| m36_3(unknown) = InitializeNonLocal : +# 36| m36_4(unknown) = Chi : total:m36_2, partial:m36_3 +# 36| r36_5(glval) = VariableAddress[name1] : +# 36| m36_6(char *) = InitializeParameter[name1] : &:r36_5 +# 36| r36_7(char *) = Load[name1] : &:r36_5, m36_6 +# 36| m36_8(unknown) = InitializeIndirection[name1] : &:r36_7 +# 37| r37_1(glval) = VariableAddress[static_infos#init] : +# 37| r37_2(bool) = Load[static_infos#init] : &:r37_1, ~m36_3 +# 37| v37_3(void) = ConditionalBranch : r37_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 37| Block 1 +# 37| r37_4(glval) = VariableAddress[static_infos] : +# 37| r37_5(int) = Constant[0] : +# 37| r37_6(glval) = PointerAdd[16] : r37_4, r37_5 +# 38| r38_1(glval) = FieldAddress[name] : r37_6 +# 38| r38_2(glval) = VariableAddress[name1] : +# 38| r38_3(char *) = Load[name1] : &:r38_2, m36_6 +# 38| m38_4(char *) = Store[?] : &:r38_1, r38_3 +# 38| m38_5(unknown) = Chi : total:m36_4, partial:m38_4 +# 38| r38_6(glval<..(*)(..)>) = FieldAddress[handler] : r37_6 +# 38| r38_7(..(*)(..)) = FunctionAddress[handler1] : +# 38| m38_8(..(*)(..)) = Store[?] : &:r38_6, r38_7 +# 38| m38_9(unknown) = Chi : total:m38_5, partial:m38_8 +# 37| r37_7(int) = Constant[1] : +# 37| r37_8(glval) = PointerAdd[16] : r37_4, r37_7 +# 39| r39_1(glval) = FieldAddress[name] : r37_8 +# 39| r39_2(glval) = StringConstant["2"] : +# 39| r39_3(char *) = Convert : r39_2 +# 39| m39_4(char *) = Store[?] : &:r39_1, r39_3 +# 39| m39_5(unknown) = Chi : total:m38_9, partial:m39_4 +# 39| r39_6(glval<..(*)(..)>) = FieldAddress[handler] : r37_8 +# 39| r39_7(glval<..()(..)>) = FunctionAddress[handler2] : +# 39| r39_8(..(*)(..)) = CopyValue : r39_7 +# 39| m39_9(..(*)(..)) = Store[?] : &:r39_6, r39_8 +# 39| m39_10(unknown) = Chi : total:m39_5, partial:m39_9 +# 37| r37_9(bool) = Constant[1] : +# 37| m37_10(bool) = Store[static_infos#init] : &:r37_1, r37_9 +# 37| m37_11(unknown) = Chi : total:m39_10, partial:m37_10 +#-----| Goto -> Block 2 + +# 41| Block 2 +# 41| m41_1(unknown) = Phi : from 0:~m36_4, from 1:~m37_11 +# 41| r41_2(glval) = FunctionAddress[let_info_escape] : +# 41| r41_3(glval) = VariableAddress[static_infos] : +# 41| r41_4(Info *) = Convert : r41_3 +# 41| v41_5(void) = Call[let_info_escape] : func:r41_2, 0:r41_4 +# 41| m41_6(unknown) = ^CallSideEffect : ~m41_1 +# 41| m41_7(unknown) = Chi : total:m41_1, partial:m41_6 +# 41| v41_8(void) = ^BufferReadSideEffect[0] : &:r41_4, ~m41_7 +# 41| m41_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r41_4 +# 41| m41_10(unknown) = Chi : total:m41_7, partial:m41_9 +# 42| v42_1(void) = NoOp : +# 36| v36_9(void) = ReturnIndirection[name1] : &:r36_7, m36_8 +# 36| v36_10(void) = ReturnVoid : +# 36| v36_11(void) = AliasedUse : ~m41_10 +# 36| v36_12(void) = ExitFunction : + +try_except.c: +# 6| void f() +# 6| Block 0 +# 6| v6_1(void) = EnterFunction : +# 6| m6_2(unknown) = AliasedDefinition : +# 6| m6_3(unknown) = InitializeNonLocal : +# 6| m6_4(unknown) = Chi : total:m6_2, partial:m6_3 +# 7| r7_1(glval) = VariableAddress[x] : +# 7| m7_2(int) = Uninitialized[x] : &:r7_1 +# 7| r7_3(glval) = VariableAddress[y] : +# 7| r7_4(int) = Constant[0] : +# 7| m7_5(int) = Store[y] : &:r7_3, r7_4 +# 9| r9_1(glval) = FunctionAddress[ProbeFunction] : +# 9| r9_2(int) = Constant[0] : +# 9| v9_3(void) = Call[ProbeFunction] : func:r9_1, 0:r9_2 +# 9| m9_4(unknown) = ^CallSideEffect : ~m6_4 +# 9| m9_5(unknown) = Chi : total:m6_4, partial:m9_4 +# 10| r10_1(glval) = VariableAddress[y] : +# 10| r10_2(int) = Load[y] : &:r10_1, m7_5 +# 10| r10_3(glval) = VariableAddress[x] : +# 10| m10_4(int) = Store[x] : &:r10_3, r10_2 +# 11| r11_1(glval) = FunctionAddress[ProbeFunction] : +# 11| r11_2(int) = Constant[0] : +# 11| v11_3(void) = Call[ProbeFunction] : func:r11_1, 0:r11_2 +# 11| m11_4(unknown) = ^CallSideEffect : ~m9_5 +# 11| m11_5(unknown) = Chi : total:m9_5, partial:m11_4 +# 16| v16_1(void) = NoOp : +# 6| v6_5(void) = ReturnVoid : +# 6| v6_6(void) = AliasedUse : ~m11_5 +# 6| v6_7(void) = ExitFunction : + +# 6| Block 1 +# 6| v6_8(void) = Unreached : + +# 18| void g() +# 18| Block 0 +# 18| v18_1(void) = EnterFunction : +# 18| m18_2(unknown) = AliasedDefinition : +# 18| m18_3(unknown) = InitializeNonLocal : +# 18| m18_4(unknown) = Chi : total:m18_2, partial:m18_3 +# 19| r19_1(glval) = VariableAddress[x] : +# 19| m19_2(int) = Uninitialized[x] : &:r19_1 +# 19| r19_3(glval) = VariableAddress[y] : +# 19| r19_4(int) = Constant[0] : +# 19| m19_5(int) = Store[y] : &:r19_3, r19_4 +# 21| r21_1(glval) = FunctionAddress[ProbeFunction] : +# 21| r21_2(int) = Constant[0] : +# 21| v21_3(void) = Call[ProbeFunction] : func:r21_1, 0:r21_2 +# 21| m21_4(unknown) = ^CallSideEffect : ~m18_4 +# 21| m21_5(unknown) = Chi : total:m18_4, partial:m21_4 +# 22| r22_1(glval) = VariableAddress[y] : +# 22| r22_2(int) = Load[y] : &:r22_1, m19_5 +# 22| r22_3(glval) = VariableAddress[x] : +# 22| m22_4(int) = Store[x] : &:r22_3, r22_2 +# 23| r23_1(glval) = FunctionAddress[ProbeFunction] : +# 23| r23_2(int) = Constant[0] : +# 23| v23_3(void) = Call[ProbeFunction] : func:r23_1, 0:r23_2 +# 23| m23_4(unknown) = ^CallSideEffect : ~m21_5 +# 23| m23_5(unknown) = Chi : total:m21_5, partial:m23_4 +# 26| r26_1(glval) = FunctionAddress[sink] : +# 26| r26_2(glval) = VariableAddress[x] : +# 26| r26_3(int) = Load[x] : &:r26_2, m22_4 +# 26| v26_4(void) = Call[sink] : func:r26_1, 0:r26_3 +# 26| m26_5(unknown) = ^CallSideEffect : ~m23_5 +# 26| m26_6(unknown) = Chi : total:m23_5, partial:m26_5 +# 28| v28_1(void) = NoOp : +# 18| v18_5(void) = ReturnVoid : +# 18| v18_6(void) = AliasedUse : ~m26_6 +# 18| v18_7(void) = ExitFunction : + +# 32| void h(int) +# 32| Block 0 +# 32| v32_1(void) = EnterFunction : +# 32| m32_2(unknown) = AliasedDefinition : +# 32| m32_3(unknown) = InitializeNonLocal : +# 32| m32_4(unknown) = Chi : total:m32_2, partial:m32_3 +# 32| r32_5(glval) = VariableAddress[b] : +# 32| m32_6(int) = InitializeParameter[b] : &:r32_5 +# 33| r33_1(glval) = VariableAddress[x] : +# 33| r33_2(int) = Constant[0] : +# 33| m33_3(int) = Store[x] : &:r33_1, r33_2 +# 35| r35_1(glval) = VariableAddress[b] : +# 35| r35_2(int) = Load[b] : &:r35_1, m32_6 +# 35| v35_3(void) = ConditionalBranch : r35_2 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 36| Block 1 +# 36| r36_1(glval) = FunctionAddress[AfxThrowMemoryException] : +# 36| v36_2(void) = Call[AfxThrowMemoryException] : func:r36_1 +# 36| m36_3(unknown) = ^CallSideEffect : ~m32_4 +# 36| m36_4(unknown) = Chi : total:m32_4, partial:m36_3 +#-----| Goto -> Block 2 + +# 42| Block 2 +# 42| m42_1(unknown) = Phi : from 0:~m32_4, from 1:~m36_4 +# 42| v42_2(void) = NoOp : +# 32| v32_7(void) = ReturnVoid : +# 32| v32_8(void) = AliasedUse : ~m42_1 +# 32| v32_9(void) = ExitFunction : + +# 32| Block 3 +# 32| v32_10(void) = Unreached : + +try_except.cpp: +# 6| void f_cpp() +# 6| Block 0 +# 6| v6_1(void) = EnterFunction : +# 6| m6_2(unknown) = AliasedDefinition : +# 6| m6_3(unknown) = InitializeNonLocal : +# 6| m6_4(unknown) = Chi : total:m6_2, partial:m6_3 +# 7| r7_1(glval) = VariableAddress[x] : +# 7| m7_2(int) = Uninitialized[x] : &:r7_1 +# 7| r7_3(glval) = VariableAddress[y] : +# 7| r7_4(int) = Constant[0] : +# 7| m7_5(int) = Store[y] : &:r7_3, r7_4 +# 9| r9_1(glval) = FunctionAddress[ProbeFunction] : +# 9| r9_2(int) = Constant[0] : +# 9| v9_3(void) = Call[ProbeFunction] : func:r9_1, 0:r9_2 +# 9| m9_4(unknown) = ^CallSideEffect : ~m6_4 +# 9| m9_5(unknown) = Chi : total:m6_4, partial:m9_4 +# 10| r10_1(glval) = VariableAddress[y] : +# 10| r10_2(int) = Load[y] : &:r10_1, m7_5 +# 10| r10_3(glval) = VariableAddress[x] : +# 10| m10_4(int) = Store[x] : &:r10_3, r10_2 +# 11| r11_1(glval) = FunctionAddress[ProbeFunction] : +# 11| r11_2(int) = Constant[0] : +# 11| v11_3(void) = Call[ProbeFunction] : func:r11_1, 0:r11_2 +# 11| m11_4(unknown) = ^CallSideEffect : ~m9_5 +# 11| m11_5(unknown) = Chi : total:m9_5, partial:m11_4 +# 16| v16_1(void) = NoOp : +# 6| v6_5(void) = ReturnVoid : +# 6| v6_6(void) = AliasedUse : ~m11_5 +# 6| v6_7(void) = ExitFunction : + +# 6| Block 1 +# 6| v6_8(void) = Unreached : + +# 18| void g_cpp() +# 18| Block 0 +# 18| v18_1(void) = EnterFunction : +# 18| m18_2(unknown) = AliasedDefinition : +# 18| m18_3(unknown) = InitializeNonLocal : +# 18| m18_4(unknown) = Chi : total:m18_2, partial:m18_3 +# 19| r19_1(glval) = VariableAddress[x] : +# 19| m19_2(int) = Uninitialized[x] : &:r19_1 +# 19| r19_3(glval) = VariableAddress[y] : +# 19| r19_4(int) = Constant[0] : +# 19| m19_5(int) = Store[y] : &:r19_3, r19_4 +# 21| r21_1(glval) = FunctionAddress[ProbeFunction] : +# 21| r21_2(int) = Constant[0] : +# 21| v21_3(void) = Call[ProbeFunction] : func:r21_1, 0:r21_2 +# 21| m21_4(unknown) = ^CallSideEffect : ~m18_4 +# 21| m21_5(unknown) = Chi : total:m18_4, partial:m21_4 +# 22| r22_1(glval) = VariableAddress[y] : +# 22| r22_2(int) = Load[y] : &:r22_1, m19_5 +# 22| r22_3(glval) = VariableAddress[x] : +# 22| m22_4(int) = Store[x] : &:r22_3, r22_2 +# 23| r23_1(glval) = FunctionAddress[ProbeFunction] : +# 23| r23_2(int) = Constant[0] : +# 23| v23_3(void) = Call[ProbeFunction] : func:r23_1, 0:r23_2 +# 23| m23_4(unknown) = ^CallSideEffect : ~m21_5 +# 23| m23_5(unknown) = Chi : total:m21_5, partial:m23_4 +# 26| r26_1(glval) = FunctionAddress[sink] : +# 26| r26_2(glval) = VariableAddress[x] : +# 26| r26_3(int) = Load[x] : &:r26_2, m22_4 +# 26| v26_4(void) = Call[sink] : func:r26_1, 0:r26_3 +# 26| m26_5(unknown) = ^CallSideEffect : ~m23_5 +# 26| m26_6(unknown) = Chi : total:m23_5, partial:m26_5 +# 28| v28_1(void) = NoOp : +# 18| v18_5(void) = ReturnVoid : +# 18| v18_6(void) = AliasedUse : ~m26_6 +# 18| v18_7(void) = ExitFunction : + +# 32| void h_cpp(int) +# 32| Block 0 +# 32| v32_1(void) = EnterFunction : +# 32| m32_2(unknown) = AliasedDefinition : +# 32| m32_3(unknown) = InitializeNonLocal : +# 32| m32_4(unknown) = Chi : total:m32_2, partial:m32_3 +# 32| r32_5(glval) = VariableAddress[b] : +# 32| m32_6(int) = InitializeParameter[b] : &:r32_5 +# 33| r33_1(glval) = VariableAddress[x] : +# 33| r33_2(int) = Constant[0] : +# 33| m33_3(int) = Store[x] : &:r33_1, r33_2 +# 35| r35_1(glval) = VariableAddress[b] : +# 35| r35_2(int) = Load[b] : &:r35_1, m32_6 +# 35| r35_3(int) = Constant[0] : +# 35| r35_4(bool) = CompareNE : r35_2, r35_3 +# 35| v35_5(void) = ConditionalBranch : r35_4 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 36| Block 1 +# 36| r36_1(glval) = FunctionAddress[AfxThrowMemoryException] : +# 36| v36_2(void) = Call[AfxThrowMemoryException] : func:r36_1 +# 36| m36_3(unknown) = ^CallSideEffect : ~m32_4 +# 36| m36_4(unknown) = Chi : total:m32_4, partial:m36_3 +#-----| Goto -> Block 2 + +# 42| Block 2 +# 42| m42_1(unknown) = Phi : from 0:~m32_4, from 1:~m36_4 +# 42| v42_2(void) = NoOp : +# 32| v32_7(void) = ReturnVoid : +# 32| v32_8(void) = AliasedUse : ~m42_1 +# 32| v32_9(void) = ExitFunction : + +# 32| Block 3 +# 32| v32_10(void) = Unreached : + +# 44| void throw_cpp(int) +# 44| Block 0 +# 44| v44_1(void) = EnterFunction : +# 44| m44_2(unknown) = AliasedDefinition : +# 44| m44_3(unknown) = InitializeNonLocal : +# 44| m44_4(unknown) = Chi : total:m44_2, partial:m44_3 +# 44| r44_5(glval) = VariableAddress[b] : +# 44| m44_6(int) = InitializeParameter[b] : &:r44_5 +# 45| r45_1(glval) = VariableAddress[x] : +# 45| r45_2(int) = Constant[0] : +# 45| m45_3(int) = Store[x] : &:r45_1, r45_2 +# 47| r47_1(glval) = VariableAddress[b] : +# 47| r47_2(int) = Load[b] : &:r47_1, m44_6 +# 47| r47_3(int) = Constant[0] : +# 47| r47_4(bool) = CompareNE : r47_2, r47_3 +# 47| v47_5(void) = ConditionalBranch : r47_4 +#-----| False -> Block 6 +#-----| True -> Block 1 + +# 48| Block 1 +# 48| r48_1(glval) = VariableAddress[#throw48:13] : +# 48| r48_2(int) = Constant[1] : +# 48| m48_3(int) = Store[#throw48:13] : &:r48_1, r48_2 +# 48| v48_4(void) = ThrowValue : &:r48_1, m48_3 +#-----| Exception -> Block 4 + +# 51| Block 2 +# 51| r51_1(int) = Constant[0] : +# 51| r51_2(bool) = CompareEQ : r51_7, r51_1 +# 51| v51_3(void) = ConditionalBranch : r51_2 +#-----| False -> Block 3 +#-----| True -> Block 7 + +# 51| Block 3 +# 51| r51_4(int) = Constant[1] : +# 51| r51_5(bool) = CompareEQ : r51_7, r51_4 +# 51| v51_6(void) = ConditionalBranch : r51_5 +#-----| False -> Block 7 +#-----| True -> Block 5 + +# 51| Block 4 +# 51| r51_7(int) = Constant[1] : +# 51| r51_8(int) = Constant[-1] : +# 51| r51_9(bool) = CompareEQ : r51_7, r51_8 +# 51| v51_10(void) = ConditionalBranch : r51_9 +#-----| False -> Block 2 +#-----| True -> Block 7 + +# 52| Block 5 +# 52| r52_1(glval) = FunctionAddress[sink] : +# 52| r52_2(glval) = VariableAddress[x] : +# 52| r52_3(int) = Load[x] : &:r52_2, m45_3 +# 52| v52_4(void) = Call[sink] : func:r52_1, 0:r52_3 +# 52| m52_5(unknown) = ^CallSideEffect : ~m44_4 +# 52| m52_6(unknown) = Chi : total:m44_4, partial:m52_5 +#-----| Goto -> Block 6 + +# 54| Block 6 +# 54| m54_1(unknown) = Phi : from 0:~m44_4, from 5:~m52_6 +# 54| v54_2(void) = NoOp : +# 44| v44_7(void) = ReturnVoid : +# 44| v44_8(void) = AliasedUse : ~m54_1 +# 44| v44_9(void) = ExitFunction : + +# 44| Block 7 +# 44| v44_10(void) = Unreached : diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.ql b/cpp/ql/test/library-tests/ir/ir/aliased_ir.ql new file mode 100644 index 00000000000..0488fd09dbe --- /dev/null +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.ql @@ -0,0 +1,11 @@ +/** + * @kind graph + */ + +private import cpp +private import semmle.code.cpp.ir.implementation.aliased_ssa.PrintIR +private import PrintConfig + +private class PrintConfig extends PrintIRConfiguration { + override predicate shouldPrintDeclaration(Declaration decl) { shouldDumpDeclaration(decl) } +} From 970e881697b0e8a3301eb068e779a3810cd11664 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 7 Sep 2023 15:03:51 +0200 Subject: [PATCH 251/788] Python: Follow naming convention --- .../semmle/python/security/dataflow/NoSQLInjectionQuery.qll | 4 ++-- .../Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll index da3432e44ad..8c6f06949d6 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll @@ -11,7 +11,7 @@ private import NoSQLInjectionCustomizations::NoSqlInjection as C /** * A taint-tracking configuration for detecting NoSQL injection vulnerabilities. */ -module Config implements DataFlow::StateConfigSig { +module NoSQLInjectionConfig implements DataFlow::StateConfigSig { class FlowState = C::FlowState; predicate isSource(DataFlow::Node source, FlowState state) { @@ -57,4 +57,4 @@ module Config implements DataFlow::StateConfigSig { } } -module Flow = TaintTracking::GlobalWithState; +module Flow = TaintTracking::GlobalWithState; diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql index f3709acc913..e71c10b3d56 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python import experimental.dataflow.TestUtil.DataflowQueryTest import semmle.python.security.dataflow.NoSQLInjectionQuery -import FromTaintTrackingStateConfig +import FromTaintTrackingStateConfig From b07d085157e64ab774e99201da4244f9249d7b70 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 7 Sep 2023 15:04:27 +0200 Subject: [PATCH 252/788] Python: make test PoC a proper package --- .../query-tests/Security/CWE-943-NoSqlInjection/PoC/__init.py__ | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/__init.py__ diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/__init.py__ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/__init.py__ new file mode 100644 index 00000000000..e69de29bb2d From 75fdde543f56a6db080b66e394b89b9538bbe6bd Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 7 Sep 2023 14:13:26 +0100 Subject: [PATCH 253/788] Ruby: Use a newtype instead of DataFlow::FlowState for hardcoded-data --- ...dedDataInterpretedAsCodeCustomizations.qll | 50 ++++++++++++++++--- .../HardcodedDataInterpretedAsCodeQuery.qll | 26 +++++----- 2 files changed, 55 insertions(+), 21 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeCustomizations.qll index 0c1ce882a74..0a0f9a5312b 100644 --- a/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeCustomizations.qll @@ -19,19 +19,40 @@ module HardcodedDataInterpretedAsCode { * Flow states used to distinguish value-preserving flow from taint flow. */ module FlowState { - /** Flow state used to track value-preserving flow. */ - DataFlow::FlowState data() { result = "data" } + /** + * Flow state used to track value-preserving flow. + * DEPRECATED: Use `Data()` + */ + deprecated DataFlow::FlowState data() { result = "data" } - /** Flow state used to tainted data (non-value preserving flow). */ - DataFlow::FlowState taint() { result = "taint" } + /** + * Flow state used to tainted data (non-value preserving flow). + * DEPRECATED: Use `Taint()` + */ + deprecated DataFlow::FlowState taint() { result = "taint" } + + /** + * Flow states used to distinguish value-preserving flow from taint flow. + */ + newtype State = + Data() or + Taint() } /** * A data flow source for hard-coded data. */ abstract class Source extends DataFlow::Node { - /** Gets a flow label for which this is a source. */ - DataFlow::FlowState getLabel() { result = FlowState::data() } + /** + * Gets a flow label for which this is a source. + * DEPRECATED: Use `getALabel()` + */ + deprecated DataFlow::FlowState getLabel() { result = FlowState::data() } + + /** + * Gets a flow label for which this is a source. + */ + FlowState::State getALabel() { result = FlowState::Data() } } /** @@ -41,13 +62,26 @@ module HardcodedDataInterpretedAsCode { /** Gets a description of what kind of sink this is. */ abstract string getKind(); - /** Gets a flow label for which this is a sink. */ - DataFlow::FlowState getLabel() { + /** + * Gets a flow label for which this is a sink. + * DEPRECATED: Use `getALabel()` + */ + deprecated DataFlow::FlowState getLabel() { // We want to ignore value-flow and only consider taint-flow, since the // source is just a hex string, and evaluating that directly will just // cause a syntax error. result = FlowState::taint() } + + /** + * Gets a flow label for which this is a sink. + */ + FlowState::State getALabel() { + // We want to ignore value-flow and only consider taint-flow, since the + // source is just a hex string, and evaluating that directly will just + // cause a syntax error. + result = FlowState::Taint() + } } /** A sanitizer for hard-coded data. */ diff --git a/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeQuery.qll b/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeQuery.qll index 927b48933e5..09238116dd8 100644 --- a/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeQuery.qll @@ -45,33 +45,33 @@ deprecated class Configuration extends DataFlow::Configuration { } } -/* - * We implement `DataFlow::ConfigSig` rather than - * `TaintTracking::ConfigSig`, so that we can set the flow state to - * `"taint"` on a taint step. - */ - private module Config implements DataFlow::StateConfigSig { - class FlowState = DataFlow::FlowState; + class FlowState = FlowState::State; - predicate isSource(DataFlow::Node source, FlowState label) { source.(Source).getLabel() = label } + predicate isSource(DataFlow::Node source, FlowState label) { source.(Source).getALabel() = label } - predicate isSink(DataFlow::Node sink, FlowState label) { sink.(Sink).getLabel() = label } + predicate isSink(DataFlow::Node sink, FlowState label) { sink.(Sink).getALabel() = label } predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } predicate isAdditionalFlowStep( - DataFlow::Node nodeFrom, DataFlow::FlowState stateFrom, DataFlow::Node nodeTo, - DataFlow::FlowState stateTo + DataFlow::Node nodeFrom, FlowState stateFrom, DataFlow::Node nodeTo, FlowState stateTo ) { defaultAdditionalTaintStep(nodeFrom, nodeTo) and // This is a taint step, so the flow state becomes `taint`. - stateFrom = [FlowState::data(), FlowState::taint()] and - stateTo = FlowState::taint() + ( + stateFrom = FlowState::Taint() + or + stateFrom = FlowState::Data() + ) and + stateTo = FlowState::Taint() } } /** * Taint-tracking for reasoning about hard-coded data being interpreted as code. + * We implement `DataFlow::GlobalWithState` rather than + * `TaintTracking::GlobalWithState`, so that we can set the flow state to + * `Taint()` on a taint step. */ module HardcodedDataInterpretedAsCodeFlow = DataFlow::GlobalWithState; From a893911dba061a2918d3154aa5349b5469ff23e8 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 7 Sep 2023 14:22:18 +0100 Subject: [PATCH 254/788] Ruby: Use a newtype instead of DataFlow::FlowState for insecure-download --- .../InsecureDownloadCustomizations.qll | 52 +++++++++++++++---- .../ruby/security/InsecureDownloadQuery.qll | 10 ++-- 2 files changed, 47 insertions(+), 15 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/InsecureDownloadCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/InsecureDownloadCustomizations.qll index 12bd40efd21..7724d581b45 100644 --- a/ruby/ql/lib/codeql/ruby/security/InsecureDownloadCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/InsecureDownloadCustomizations.qll @@ -21,8 +21,11 @@ module InsecureDownload { abstract class Source extends DataFlow::Node { /** * Gets a flow-label for this source. + * DEPRECATED: Use `getAFlowLabel()` */ - abstract DataFlow::FlowState getALabel(); + abstract deprecated DataFlow::FlowState getALabel(); + + abstract Label::State getAFlowLabel(); } /** @@ -36,8 +39,11 @@ module InsecureDownload { /** * Gets a flow-label where this sink is vulnerable. + * DEPRECATED: Use `getAFlowLabel()` */ - abstract DataFlow::FlowState getALabel(); + abstract deprecated DataFlow::FlowState getALabel(); + + abstract Label::State getAFlowLabel(); } /** @@ -51,24 +57,35 @@ module InsecureDownload { module Label { /** * A flow-label for a URL that is downloaded over an insecure connection. + * DEPRECATED: Use `InsecureState()` */ - class Insecure extends DataFlow::FlowState { + deprecated class Insecure extends DataFlow::FlowState { Insecure() { this = "insecure" } } /** * A flow-label for a URL that is sensitive. + * DEPRECATED: Use `SensitiveState()` */ - class Sensitive extends DataFlow::FlowState { + deprecated class Sensitive extends DataFlow::FlowState { Sensitive() { this = "sensitive" } } /** * A flow-label for file URLs that are both sensitive and downloaded over an insecure connection. + * DEPRECATED: Use `SensitiveInsecureState()` */ - class SensitiveInsecure extends DataFlow::FlowState { + deprecated class SensitiveInsecure extends DataFlow::FlowState { SensitiveInsecure() { this = "sensitiveInsecure" } } + + /** + * Flow-labels for reasoning about download of sensitive file through insecure connection. + */ + newtype State = + InsecureState() or + SensitiveState() or + SensitiveInsecureState() } /** @@ -88,12 +105,19 @@ module InsecureDownload { * seen as a source for downloads of sensitive files through an insecure connection. */ class InsecureFileUrl extends Source, InsecureUrl { - override DataFlow::FlowState getALabel() { + deprecated override DataFlow::FlowState getALabel() { result instanceof Label::Insecure or hasUnsafeExtension(str) and result instanceof Label::SensitiveInsecure } + + override Label::State getAFlowLabel() { + result = Label::InsecureState() + or + hasUnsafeExtension(str) and + result = Label::SensitiveInsecureState() + } } /** @@ -103,7 +127,9 @@ module InsecureDownload { class SensitiveFileName extends Source { SensitiveFileName() { hasUnsafeExtension(this.asExpr().getConstantValue().getString()) } - override DataFlow::FlowState getALabel() { result instanceof Label::Sensitive } + deprecated override DataFlow::FlowState getALabel() { result instanceof Label::Sensitive } + + override Label::State getAFlowLabel() { result = Label::SensitiveState() } } /** @@ -145,11 +171,17 @@ module InsecureDownload { override DataFlow::Node getDownloadCall() { result = req } - override DataFlow::FlowState getALabel() { + deprecated override DataFlow::FlowState getALabel() { result instanceof Label::SensitiveInsecure or any(req.getAUrlPart()) instanceof InsecureUrl and result instanceof Label::Sensitive } + + override Label::State getAFlowLabel() { + result = Label::SensitiveInsecureState() + or + any(req.getAUrlPart()) instanceof InsecureUrl and result = Label::SensitiveState() + } } /** @@ -191,7 +223,9 @@ module InsecureDownload { ) } - override DataFlow::FlowState getALabel() { result instanceof Label::Insecure } + deprecated override DataFlow::FlowState getALabel() { result instanceof Label::Insecure } + + override Label::State getAFlowLabel() { result = Label::InsecureState() } override DataFlow::Node getDownloadCall() { result = request } } diff --git a/ruby/ql/lib/codeql/ruby/security/InsecureDownloadQuery.qll b/ruby/ql/lib/codeql/ruby/security/InsecureDownloadQuery.qll index db869500885..69fae550194 100644 --- a/ruby/ql/lib/codeql/ruby/security/InsecureDownloadQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/InsecureDownloadQuery.qll @@ -33,15 +33,13 @@ deprecated class Configuration extends DataFlow::Configuration { } private module InsecureDownloadConfig implements DataFlow::StateConfigSig { - class FlowState = string; + class FlowState = Label::State; - predicate isSource(DataFlow::Node source, DataFlow::FlowState label) { - source.(Source).getALabel() = label + predicate isSource(DataFlow::Node source, FlowState label) { + source.(Source).getAFlowLabel() = label } - predicate isSink(DataFlow::Node sink, DataFlow::FlowState label) { - sink.(Sink).getALabel() = label - } + predicate isSink(DataFlow::Node sink, FlowState label) { sink.(Sink).getAFlowLabel() = label } predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } } From 13300a2e2f7f1c1ccbf2b349ba3a014b9f593cfe Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 7 Sep 2023 14:24:46 +0100 Subject: [PATCH 255/788] Ruby: un-private PathGraph imports --- ruby/ql/src/experimental/decompression-api/DecompressionApi.ql | 2 +- .../manually-check-http-verb/ManuallyCheckHttpVerb.ql | 2 +- ruby/ql/src/experimental/weak-params/WeakParams.ql | 2 +- ruby/ql/src/queries/security/cwe-094/CodeInjection.ql | 2 +- .../queries/security/cwe-506/HardcodedDataInterpretedAsCode.ql | 2 +- ruby/ql/src/queries/security/cwe-611/Xxe.ql | 2 +- ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql | 2 +- ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ruby/ql/src/experimental/decompression-api/DecompressionApi.ql b/ruby/ql/src/experimental/decompression-api/DecompressionApi.ql index 0b00ac1a11c..5869e5862fb 100644 --- a/ruby/ql/src/experimental/decompression-api/DecompressionApi.ql +++ b/ruby/ql/src/experimental/decompression-api/DecompressionApi.ql @@ -43,7 +43,7 @@ private module DecompressionApiConfig implements DataFlow::ConfigSig { private module DecompressionApiFlow = TaintTracking::Global; -private import DecompressionApiFlow::PathGraph +import DecompressionApiFlow::PathGraph from DecompressionApiFlow::PathNode source, DecompressionApiFlow::PathNode sink where DecompressionApiFlow::flowPath(source, sink) diff --git a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql index 7843a046617..557b7daefd3 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -90,7 +90,7 @@ private module HttpVerbConfig implements DataFlow::ConfigSig { private module HttpVerbFlow = TaintTracking::Global; -private import HttpVerbFlow::PathGraph +import HttpVerbFlow::PathGraph from HttpVerbFlow::PathNode source, HttpVerbFlow::PathNode sink where HttpVerbFlow::flowPath(source, sink) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index 0d4c6aeb506..8b1654c6368 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -50,7 +50,7 @@ private module WeakParamsConfig implements DataFlow::ConfigSig { private module WeakParamsFlow = TaintTracking::Global; -private import WeakParamsFlow::PathGraph +import WeakParamsFlow::PathGraph from WeakParamsFlow::PathNode source, WeakParamsFlow::PathNode sink where WeakParamsFlow::flowPath(source, sink) diff --git a/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql b/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql index efeebced372..128060c0de8 100644 --- a/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql +++ b/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql @@ -16,7 +16,7 @@ private import codeql.ruby.AST private import codeql.ruby.security.CodeInjectionQuery -private import CodeInjectionFlow::PathGraph +import CodeInjectionFlow::PathGraph from CodeInjectionFlow::PathNode source, CodeInjectionFlow::PathNode sink, Source sourceNode where diff --git a/ruby/ql/src/queries/security/cwe-506/HardcodedDataInterpretedAsCode.ql b/ruby/ql/src/queries/security/cwe-506/HardcodedDataInterpretedAsCode.ql index 08444a9beb6..83b0bd655c0 100644 --- a/ruby/ql/src/queries/security/cwe-506/HardcodedDataInterpretedAsCode.ql +++ b/ruby/ql/src/queries/security/cwe-506/HardcodedDataInterpretedAsCode.ql @@ -13,7 +13,7 @@ */ private import codeql.ruby.security.HardcodedDataInterpretedAsCodeQuery -private import HardcodedDataInterpretedAsCodeFlow::PathGraph +import HardcodedDataInterpretedAsCodeFlow::PathGraph from HardcodedDataInterpretedAsCodeFlow::PathNode source, diff --git a/ruby/ql/src/queries/security/cwe-611/Xxe.ql b/ruby/ql/src/queries/security/cwe-611/Xxe.ql index 45f0402dd39..ba1df49549b 100644 --- a/ruby/ql/src/queries/security/cwe-611/Xxe.ql +++ b/ruby/ql/src/queries/security/cwe-611/Xxe.ql @@ -35,7 +35,7 @@ private module XxeConfig implements DataFlow::ConfigSig { private module XxeFlow = TaintTracking::Global; -private import XxeFlow::PathGraph +import XxeFlow::PathGraph from XxeFlow::PathNode source, XxeFlow::PathNode sink where XxeFlow::flowPath(source, sink) diff --git a/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql b/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql index 7915422e1d6..5580118e933 100644 --- a/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql +++ b/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql @@ -58,7 +58,7 @@ private module PermissivePermissionsConfig implements DataFlow::ConfigSig { private module PermissivePermissionsFlow = DataFlow::Global; -private import PermissivePermissionsFlow::PathGraph +import PermissivePermissionsFlow::PathGraph from PermissivePermissionsFlow::PathNode source, PermissivePermissionsFlow::PathNode sink, diff --git a/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql b/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql index d722672fe8b..e37bc91f258 100644 --- a/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql +++ b/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql @@ -151,7 +151,7 @@ private module HardcodedCredentialsConfig implements DataFlow::ConfigSig { private module HardcodedCredentialsFlow = DataFlow::Global; -private import HardcodedCredentialsFlow::PathGraph +import HardcodedCredentialsFlow::PathGraph from HardcodedCredentialsFlow::PathNode source, HardcodedCredentialsFlow::PathNode sink where HardcodedCredentialsFlow::flowPath(source, sink) From 0aee7f6ac6f5c814783d3cae155feec5fec8deef Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 7 Sep 2023 14:47:02 +0100 Subject: [PATCH 256/788] Ruby: qlformat --- .../codeql/ruby/experimental/UnicodeBypassValidationQuery.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll b/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll index f4c4a59823f..e4d0fe8f3be 100644 --- a/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll +++ b/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll @@ -52,8 +52,8 @@ deprecated class Configuration extends TaintTracking::Configuration { DataFlow::Node nodeFrom, DataFlow::FlowState stateFrom, DataFlow::Node nodeTo, DataFlow::FlowState stateTo ) { - UnicodeBypassValidationConfig::isAdditionalFlowStep(nodeFrom, this.convertState(stateFrom), nodeTo, - this.convertState(stateTo)) + UnicodeBypassValidationConfig::isAdditionalFlowStep(nodeFrom, this.convertState(stateFrom), + nodeTo, this.convertState(stateTo)) } /* A Unicode Tranformation (Unicode tranformation) is considered a sink when the algorithm used is either NFC or NFKC. */ From 7cfcbf6b710c2f6f84003bbe28e5e94ee464f652 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 5 Sep 2023 15:16:26 +0200 Subject: [PATCH 257/788] Java: add extensible type to endpoint class in application mode --- .../AutomodelApplicationModeCharacteristics.qll | 15 ++++++++++++++- .../AutomodelApplicationModeExtractCandidates.ql | 5 +++-- ...modelApplicationModeExtractCandidates.expected | 8 ++++---- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 90ec5e93f8b..bd54274a88c 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -51,6 +51,8 @@ abstract private class ApplicationModeEndpoint extends TApplicationModeEndpoint abstract DataFlow::Node asNode(); + abstract string getExtensibleType(); + abstract string toString(); } @@ -69,6 +71,8 @@ class ExplicitArgument extends ApplicationModeEndpoint, TExplicitArgument { override DataFlow::Node asNode() { result = arg } + override string getExtensibleType() { result = "sinkModel" } + override string toString() { result = arg.toString() } } @@ -86,6 +90,8 @@ class InstanceArgument extends ApplicationModeEndpoint, TInstanceArgument { override DataFlow::Node asNode() { result = arg } + override string getExtensibleType() { result = "sinkModel" } + override string toString() { result = arg.toString() } } @@ -111,6 +117,8 @@ class ImplicitVarargsArray extends ApplicationModeEndpoint, TImplicitVarargsArra override DataFlow::Node asNode() { result = vararg } + override string getExtensibleType() { result = "sinkModel" } + override string toString() { result = vararg.toString() } } @@ -168,9 +176,11 @@ module ApplicationCandidatesImpl implements SharedCharacteristics::CandidateSig ) } + // XXX how to extend to support sources? additional predicate sinkSpec( Endpoint e, string package, string type, string name, string signature, string ext, string input ) { + e.getExtensibleType() = "sinkModel" and ApplicationModeGetCallable::getCallable(e).hasQualifiedName(package, type, name) and signature = ExternalFlow::paramsString(ApplicationModeGetCallable::getCallable(e)) and ext = "" and @@ -407,7 +417,10 @@ private class CannotBeTaintedCharacteristic extends CharacteristicsImpl::LikelyN { CannotBeTaintedCharacteristic() { this = "cannot be tainted" } - override predicate appliesToEndpoint(Endpoint e) { not this.isKnownOutNodeForStep(e) } + override predicate appliesToEndpoint(Endpoint e) { + // XXX consider source candidate endpoints + not this.isKnownOutNodeForStep(e) + } /** * Holds if the node `n` is known as the predecessor in a modeled flow step. diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql index b46a25b088d..f71c5aa712e 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql @@ -85,7 +85,7 @@ where sinkType, ", " ) select endpoint.asNode(), - message + "\nrelated locations: $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@.", // + message + "\nrelated locations: $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, CallContext()), "CallContext", // package, "package", // type, "type", // @@ -94,4 +94,5 @@ select endpoint.asNode(), signature, "signature", // input, "input", // isVarargsArray, "isVarargsArray", // - alreadyAiModeled, "alreadyAiModeled" + alreadyAiModeled, "alreadyAiModeled", // + endpoint.getExtensibleType().(DollarAtString), "extensibleType" diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected index 77d51830c67..ff3c006f3ca 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected @@ -1,4 +1,4 @@ -| Test.java:16:3:16:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:16:3:16:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | -| Test.java:21:3:21:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:21:3:21:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | -| Test.java:34:4:34:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | -| Test.java:53:4:53:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | +| Test.java:16:3:16:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:16:3:16:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:21:3:21:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:21:3:21:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:34:4:34:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:53:4:53:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | From eb1e29d2844557090b619c6d495641b2de901125 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 5 Sep 2023 15:51:08 +0200 Subject: [PATCH 258/788] Java: add new endpoint class for source candidates in application mode --- ...utomodelApplicationModeCharacteristics.qll | 45 ++++++++++++++++--- ...cationModeExtractNegativeExamples.expected | 1 + .../Test.java | 2 +- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index bd54274a88c..c25943666ba 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -35,7 +35,8 @@ newtype TApplicationModeEndpoint = argExpr.isVararg() and not exists(int i | i < idx and call.getArgument(i).(Argument).isVararg()) ) - } + } or + TMethodCall(Call call) { not call instanceof ConstructorCall } /** * An endpoint is a node that is a candidate for modeling. @@ -122,6 +123,25 @@ class ImplicitVarargsArray extends ApplicationModeEndpoint, TImplicitVarargsArra override string toString() { result = vararg.toString() } } +/** + * An endpoint that represents a method call. + */ +class MethodCall extends ApplicationModeEndpoint, TMethodCall { + Call call; + + MethodCall() { this = TMethodCall(call) } + + override predicate isArgOf(Call c, int idx) { c = call and idx = -1 } + + override Top asTop() { result = call } + + override DataFlow::Node asNode() { result.asExpr() = call } + + override string getExtensibleType() { result = "sourceModel" } + + override string toString() { result = call.toString() } +} + /** * A candidates implementation. * @@ -275,6 +295,7 @@ private class UnexploitableIsCharacteristic extends CharacteristicsImpl::NotASin UnexploitableIsCharacteristic() { this = "unexploitable (is-style boolean method)" } override predicate appliesToEndpoint(Endpoint e) { + e.getExtensibleType() = "sinkModel" and not ApplicationCandidatesImpl::isSink(e, _, _) and ApplicationModeGetCallable::getCallable(e).getName().matches("is%") and ApplicationModeGetCallable::getCallable(e).getReturnType() instanceof BooleanType @@ -293,6 +314,7 @@ private class UnexploitableExistsCharacteristic extends CharacteristicsImpl::Not UnexploitableExistsCharacteristic() { this = "unexploitable (existence-checking boolean method)" } override predicate appliesToEndpoint(Endpoint e) { + e.getExtensibleType() = "sinkModel" and not ApplicationCandidatesImpl::isSink(e, _, _) and exists(Callable callable | callable = ApplicationModeGetCallable::getCallable(e) and @@ -309,6 +331,7 @@ private class ExceptionCharacteristic extends CharacteristicsImpl::NotASinkChara ExceptionCharacteristic() { this = "exception" } override predicate appliesToEndpoint(Endpoint e) { + e.getExtensibleType() = "sinkModel" and ApplicationModeGetCallable::getCallable(e).getDeclaringType().getASupertype*() instanceof TypeThrowable } @@ -323,9 +346,13 @@ private class IsMaDTaintStepCharacteristic extends CharacteristicsImpl::NotASink IsMaDTaintStepCharacteristic() { this = "taint step" } override predicate appliesToEndpoint(Endpoint e) { - FlowSummaryImpl::Private::Steps::summaryThroughStepValue(e.asNode(), _, _) or - FlowSummaryImpl::Private::Steps::summaryThroughStepTaint(e.asNode(), _, _) or - FlowSummaryImpl::Private::Steps::summaryGetterStep(e.asNode(), _, _, _) or + e.getExtensibleType() = "sinkModel" and + FlowSummaryImpl::Private::Steps::summaryThroughStepValue(e.asNode(), _, _) + or + FlowSummaryImpl::Private::Steps::summaryThroughStepTaint(e.asNode(), _, _) + or + FlowSummaryImpl::Private::Steps::summaryGetterStep(e.asNode(), _, _, _) + or FlowSummaryImpl::Private::Steps::summarySetterStep(e.asNode(), _, _, _) } } @@ -340,6 +367,7 @@ private class ArgumentToLocalCall extends CharacteristicsImpl::UninterestingToMo ArgumentToLocalCall() { this = "argument to local call" } override predicate appliesToEndpoint(Endpoint e) { + e.getExtensibleType() = "sinkModel" and ApplicationModeGetCallable::getCallable(e).fromSource() } } @@ -351,6 +379,7 @@ private class ExcludedFromModeling extends CharacteristicsImpl::UninterestingToM ExcludedFromModeling() { this = "excluded from modeling" } override predicate appliesToEndpoint(Endpoint e) { + e.getExtensibleType() = "sinkModel" and ModelExclusions::isUninterestingForModels(ApplicationModeGetCallable::getCallable(e)) } } @@ -364,6 +393,7 @@ private class NonPublicMethodCharacteristic extends CharacteristicsImpl::Uninter NonPublicMethodCharacteristic() { this = "non-public method" } override predicate appliesToEndpoint(Endpoint e) { + e.getExtensibleType() = "sinkModel" and not ApplicationModeGetCallable::getCallable(e).isPublic() } } @@ -386,6 +416,7 @@ private class OtherArgumentToModeledMethodCharacteristic extends Characteristics } override predicate appliesToEndpoint(Endpoint e) { + e.getExtensibleType() = "sinkModel" and not ApplicationCandidatesImpl::isSink(e, _, _) and exists(Endpoint otherSink | ApplicationCandidatesImpl::isSink(otherSink, _, "manual") and @@ -403,7 +434,10 @@ private class OtherArgumentToModeledMethodCharacteristic extends Characteristics private class FunctionValueCharacteristic extends CharacteristicsImpl::LikelyNotASinkCharacteristic { FunctionValueCharacteristic() { this = "function value" } - override predicate appliesToEndpoint(Endpoint e) { e.asNode().asExpr() instanceof FunctionalExpr } + override predicate appliesToEndpoint(Endpoint e) { + e.getExtensibleType() = "sinkModel" and + e.asNode().asExpr() instanceof FunctionalExpr + } } /** @@ -419,6 +453,7 @@ private class CannotBeTaintedCharacteristic extends CharacteristicsImpl::LikelyN override predicate appliesToEndpoint(Endpoint e) { // XXX consider source candidate endpoints + e.getExtensibleType() = "sinkModel" and not this.isKnownOutNodeForStep(e) } diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected index 1ca68cb2281..c07e3f2a32e 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected @@ -1,2 +1,3 @@ +| Test.java:45:10:47:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | Test.java:45:10:47:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | | Test.java:46:4:46:5 | f2 | known non-sink\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | Test.java:45:10:47:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | | Test.java:52:4:52:4 | p | taint step\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java index 1a660f7752f..b10faf372d6 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java @@ -42,7 +42,7 @@ class Test { } public static int compareFiles(File f1, File f2) { - return f1.compareTo( + return f1.compareTo( // compareTo call is a known sanitizer f2 // negative example (modeled as not a sink) ); } From 937e452ce09b38cb4a74cb837ee87cef4a11ff4d Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 5 Sep 2023 16:09:35 +0200 Subject: [PATCH 259/788] Java: add extensibleType to sampling keys --- .../src/AutomodelApplicationModeExtractCandidates.ql | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql index f71c5aa712e..bf10649aea7 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql @@ -25,17 +25,19 @@ private import AutomodelJavaUtil bindingset[limit] private Endpoint getSampleForSignature( int limit, string package, string type, string subtypes, string name, string signature, - string input, string isVarargs + string input, string isVarargs, string extensibleType ) { exists(int n, int num_endpoints, ApplicationModeMetadataExtractor meta | num_endpoints = count(Endpoint e | + e.getExtensibleType() = extensibleType and meta.hasMetadata(e, package, type, subtypes, name, signature, input, isVarargs) ) | result = rank[n](Endpoint e, Location loc | loc = e.asTop().getLocation() and + e.getExtensibleType() = extensibleType and meta.hasMetadata(e, package, type, subtypes, name, signature, input, isVarargs) | e @@ -55,13 +57,14 @@ private Endpoint getSampleForSignature( from Endpoint endpoint, string message, ApplicationModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, - DollarAtString input, DollarAtString isVarargsArray, DollarAtString alreadyAiModeled + DollarAtString input, DollarAtString isVarargsArray, DollarAtString alreadyAiModeled, DollarAtString extensibleType where + endpoint.getExtensibleType() = "sinkModel" and not exists(CharacteristicsImpl::UninterestingToModelCharacteristic u | u.appliesToEndpoint(endpoint) ) and endpoint = - getSampleForSignature(9, package, type, subtypes, name, signature, input, isVarargsArray) and + getSampleForSignature(9, package, type, subtypes, name, signature, input, isVarargsArray, extensibleType) and // If a node is already a known sink for any of our existing ATM queries and is already modeled as a MaD sink, we // don't include it as a candidate. Otherwise, we might include it as a candidate for query A, but the model will // label it as a sink for one of the sink types of query B, for which it's already a known sink. This would result in @@ -95,4 +98,4 @@ select endpoint.asNode(), input, "input", // isVarargsArray, "isVarargsArray", // alreadyAiModeled, "alreadyAiModeled", // - endpoint.getExtensibleType().(DollarAtString), "extensibleType" + extensibleType, "extensibleType" From f55d950be31461b06d48c647c98838ab3ea2b0b0 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 5 Sep 2023 16:15:40 +0200 Subject: [PATCH 260/788] Java: update application mode extraction test expectations after adding source candidates --- .../src/AutomodelApplicationModeExtractCandidates.ql | 1 - ...utomodelApplicationModeExtractCandidates.expected | 6 ++++++ .../AutomodelApplicationModeExtraction/Test.java | 12 ++++++------ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql index bf10649aea7..cc6c8e65fcd 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql @@ -59,7 +59,6 @@ from DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, DollarAtString input, DollarAtString isVarargsArray, DollarAtString alreadyAiModeled, DollarAtString extensibleType where - endpoint.getExtensibleType() = "sinkModel" and not exists(CharacteristicsImpl::UninterestingToModelCharacteristic u | u.appliesToEndpoint(endpoint) ) and diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected index ff3c006f3ca..d227c7fbb95 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected @@ -1,4 +1,10 @@ | Test.java:16:3:16:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:16:3:16:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | Test.java:21:3:21:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:21:3:21:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:21:3:21:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:21:3:21:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:25:3:29:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:33:10:35:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:34:4:34:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:39:10:41:3 | getInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:39:10:41:3 | getInputStream(...) | CallContext | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://Test:1:1:1:1 | Test | type | file://false:1:1:1:1 | false | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://(Path):1:1:1:1 | (Path) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:40:4:40:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:40:4:40:22 | get(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:51:3:56:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:53:4:53:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java index b10faf372d6..663457dc52b 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java @@ -18,11 +18,11 @@ class Test { } public static void callSupplier(Supplier supplier) { - supplier.get(); // Argument[this] is a candidate + supplier.get(); // Argument[this] is a sink candidate; the call is a source candidate } public static void copyFiles(Path source, Path target, CopyOption option) throws Exception { - Files.copy( + Files.copy( // the call is a source candidate source, // positive example (known sink) target, // positive example (known sink) option // no candidate (not modeled, but source and target are modeled) @@ -30,14 +30,14 @@ class Test { } public static InputStream getInputStream(Path openPath) throws Exception { - return Files.newInputStream( + return Files.newInputStream( // the call is a source candidate openPath // positive example (known sink), candidate ("only" ai-modeled, and useful as a candidate in regression testing) ); } public static InputStream getInputStream(String openPath) throws Exception { - return Test.getInputStream( - Paths.get(openPath) // no candidate (argument to local call) + return Test.getInputStream( // the call is a source candidate + Paths.get(openPath) // no sink candidate (argument to local call); the call is a source candidate ); } @@ -48,7 +48,7 @@ class Test { } public static void FilesWalkExample(Path p, FileVisitOption o) throws Exception { - Files.walk( + Files.walk( // the call is a source candidate p, // negative example (modeled as a taint step) o, // the implicit varargs array is a candidate o // not a candidate (only the first arg corresponding to a varargs array From a526b79211565043d5d6968ed630050cd9da7592 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 5 Sep 2023 16:43:50 +0200 Subject: [PATCH 261/788] Java: enable unexploitable is/exists characteristics also for source candidates --- .../automodel/src/AutomodelApplicationModeCharacteristics.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index c25943666ba..2950c8cb02c 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -295,7 +295,6 @@ private class UnexploitableIsCharacteristic extends CharacteristicsImpl::NotASin UnexploitableIsCharacteristic() { this = "unexploitable (is-style boolean method)" } override predicate appliesToEndpoint(Endpoint e) { - e.getExtensibleType() = "sinkModel" and not ApplicationCandidatesImpl::isSink(e, _, _) and ApplicationModeGetCallable::getCallable(e).getName().matches("is%") and ApplicationModeGetCallable::getCallable(e).getReturnType() instanceof BooleanType @@ -314,7 +313,6 @@ private class UnexploitableExistsCharacteristic extends CharacteristicsImpl::Not UnexploitableExistsCharacteristic() { this = "unexploitable (existence-checking boolean method)" } override predicate appliesToEndpoint(Endpoint e) { - e.getExtensibleType() = "sinkModel" and not ApplicationCandidatesImpl::isSink(e, _, _) and exists(Callable callable | callable = ApplicationModeGetCallable::getCallable(e) and From afc5aedd0aa9f1710d1c0837b3f33191f30667fa Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 5 Sep 2023 16:49:42 +0200 Subject: [PATCH 262/788] Java: enable exception characteristic also for source candidates --- .../ql/automodel/src/AutomodelApplicationModeCharacteristics.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 2950c8cb02c..5ecc8a1b9a4 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -329,7 +329,6 @@ private class ExceptionCharacteristic extends CharacteristicsImpl::NotASinkChara ExceptionCharacteristic() { this = "exception" } override predicate appliesToEndpoint(Endpoint e) { - e.getExtensibleType() = "sinkModel" and ApplicationModeGetCallable::getCallable(e).getDeclaringType().getASupertype*() instanceof TypeThrowable } From 344aa9cb6b727bbebd6e30b38771c98217327c7f Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 5 Sep 2023 16:50:06 +0200 Subject: [PATCH 263/788] Java: enable local call characteristic also for source candidates --- .../src/AutomodelApplicationModeCharacteristics.qll | 5 ++--- .../AutomodelApplicationModeExtractCandidates.expected | 1 - .../test/AutomodelApplicationModeExtraction/Test.java | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 5ecc8a1b9a4..0a2eecf9fcc 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -360,11 +360,10 @@ private class IsMaDTaintStepCharacteristic extends CharacteristicsImpl::NotASink * The reason is that we would expect data/taint flow into the method implementation to uncover * any sinks that are present there. */ -private class ArgumentToLocalCall extends CharacteristicsImpl::UninterestingToModelCharacteristic { - ArgumentToLocalCall() { this = "argument to local call" } +private class LocalCall extends CharacteristicsImpl::UninterestingToModelCharacteristic { + LocalCall() { this = "local call" } override predicate appliesToEndpoint(Endpoint e) { - e.getExtensibleType() = "sinkModel" and ApplicationModeGetCallable::getCallable(e).fromSource() } } diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected index d227c7fbb95..6dfb83f89fa 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected @@ -4,7 +4,6 @@ | Test.java:25:3:29:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:33:10:35:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:34:4:34:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:39:10:41:3 | getInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:39:10:41:3 | getInputStream(...) | CallContext | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://Test:1:1:1:1 | Test | type | file://false:1:1:1:1 | false | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://(Path):1:1:1:1 | (Path) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:40:4:40:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:40:4:40:22 | get(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:51:3:56:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:53:4:53:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java index 663457dc52b..cb655a06ad1 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java @@ -36,7 +36,7 @@ class Test { } public static InputStream getInputStream(String openPath) throws Exception { - return Test.getInputStream( // the call is a source candidate + return Test.getInputStream( // the call is not a source candidate (argument to local call) Paths.get(openPath) // no sink candidate (argument to local call); the call is a source candidate ); } From caaf2f83d71cd4f7402425768da3b0219b0c5373 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 5 Sep 2023 16:54:32 +0200 Subject: [PATCH 264/788] Java: enable model exclusion characteristic also for source candidates --- .../ql/automodel/src/AutomodelApplicationModeCharacteristics.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 0a2eecf9fcc..80e9c4bbc68 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -375,7 +375,6 @@ private class ExcludedFromModeling extends CharacteristicsImpl::UninterestingToM ExcludedFromModeling() { this = "excluded from modeling" } override predicate appliesToEndpoint(Endpoint e) { - e.getExtensibleType() = "sinkModel" and ModelExclusions::isUninterestingForModels(ApplicationModeGetCallable::getCallable(e)) } } From 902a585b47eacfea88120ebcc92a58c490aabe6c Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 6 Sep 2023 09:24:25 +0200 Subject: [PATCH 265/788] Java: remove isArgOf predicate --- ...utomodelApplicationModeCharacteristics.qll | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 80e9c4bbc68..6e146b1afec 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -42,11 +42,9 @@ newtype TApplicationModeEndpoint = * An endpoint is a node that is a candidate for modeling. */ abstract private class ApplicationModeEndpoint extends TApplicationModeEndpoint { - abstract predicate isArgOf(Call c, int idx); + abstract Call getCall(); - Call getCall() { this.isArgOf(result, _) } - - int getArgIndex() { this.isArgOf(_, result) } + abstract int getArgIndex(); abstract Top asTop(); @@ -66,7 +64,9 @@ class ExplicitArgument extends ApplicationModeEndpoint, TExplicitArgument { ExplicitArgument() { this = TExplicitArgument(call, arg) } - override predicate isArgOf(Call c, int idx) { c = call and this.asTop() = c.getArgument(idx) } + override Call getCall() { result = call } + + override int getArgIndex() { this.asTop() = call.getArgument(result) } override Top asTop() { result = arg.asExpr() } @@ -83,9 +83,9 @@ class InstanceArgument extends ApplicationModeEndpoint, TInstanceArgument { InstanceArgument() { this = TInstanceArgument(call, arg) } - override predicate isArgOf(Call c, int idx) { - c = call and this.asTop() = c.getQualifier() and idx = -1 - } + override Call getCall() { result = call } + + override int getArgIndex() { result = -1 } override Top asTop() { if exists(arg.asExpr()) then result = arg.asExpr() else result = call } @@ -112,7 +112,9 @@ class ImplicitVarargsArray extends ApplicationModeEndpoint, TImplicitVarargsArra ImplicitVarargsArray() { this = TImplicitVarargsArray(call, vararg, idx) } - override predicate isArgOf(Call c, int i) { c = call and i = idx } + override Call getCall() { result = call } + + override int getArgIndex() { result = idx } override Top asTop() { result = this.getCall() } @@ -131,7 +133,9 @@ class MethodCall extends ApplicationModeEndpoint, TMethodCall { MethodCall() { this = TMethodCall(call) } - override predicate isArgOf(Call c, int idx) { c = call and idx = -1 } + override Call getCall() { result = call } + + override int getArgIndex() { result = -1 } override Top asTop() { result = call } From 8d133f86c7f2c513fe407db8c9c6c93917ff684e Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 6 Sep 2023 09:40:35 +0200 Subject: [PATCH 266/788] Java: replace getArgIndex by getMaDInput --- ...utomodelApplicationModeCharacteristics.qll | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 6e146b1afec..ac5d44af1d2 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -44,7 +44,7 @@ newtype TApplicationModeEndpoint = abstract private class ApplicationModeEndpoint extends TApplicationModeEndpoint { abstract Call getCall(); - abstract int getArgIndex(); + abstract string getMaDInput(); abstract Top asTop(); @@ -66,7 +66,11 @@ class ExplicitArgument extends ApplicationModeEndpoint, TExplicitArgument { override Call getCall() { result = call } - override int getArgIndex() { this.asTop() = call.getArgument(result) } + private int getArgIndex() { this.asTop() = call.getArgument(result) } + + override string getMaDInput() { + result = "Argument[" + this.getArgIndex() + "]" + } override Top asTop() { result = arg.asExpr() } @@ -85,7 +89,7 @@ class InstanceArgument extends ApplicationModeEndpoint, TInstanceArgument { override Call getCall() { result = call } - override int getArgIndex() { result = -1 } + override string getMaDInput() { result = "Argument[this]" } override Top asTop() { if exists(arg.asExpr()) then result = arg.asExpr() else result = call } @@ -114,7 +118,9 @@ class ImplicitVarargsArray extends ApplicationModeEndpoint, TImplicitVarargsArra override Call getCall() { result = call } - override int getArgIndex() { result = idx } + override string getMaDInput() { + result = "Argument[" + idx + "]" + } override Top asTop() { result = this.getCall() } @@ -135,7 +141,7 @@ class MethodCall extends ApplicationModeEndpoint, TMethodCall { override Call getCall() { result = call } - override int getArgIndex() { result = -1 } + override string getMaDInput() { result = "Argument[this]" } override Top asTop() { result = call } @@ -208,7 +214,7 @@ module ApplicationCandidatesImpl implements SharedCharacteristics::CandidateSig ApplicationModeGetCallable::getCallable(e).hasQualifiedName(package, type, name) and signature = ExternalFlow::paramsString(ApplicationModeGetCallable::getCallable(e)) and ext = "" and - input = AutomodelJavaUtil::getArgumentForIndex(e.getArgIndex()) + input = e.getMaDInput() } /** @@ -267,7 +273,7 @@ class ApplicationModeMetadataExtractor extends string { ) { exists(Callable callable | e.getCall().getCallee() = callable and - input = AutomodelJavaUtil::getArgumentForIndex(e.getArgIndex()) and + input = e.getMaDInput() and package = callable.getDeclaringType().getPackage().getName() and // we're using the erased types because the MaD convention is to not specify type parameters. // Whether something is or isn't a sink doesn't usually depend on the type parameters. From fcabca45810678ea5837ea5568d62cd73df7ed23 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 6 Sep 2023 10:17:33 +0200 Subject: [PATCH 267/788] Java: Export MaD output in application mode extraction queries --- ...utomodelApplicationModeCharacteristics.qll | 42 +++++++++++-------- ...tomodelApplicationModeExtractCandidates.ql | 17 ++++---- ...lApplicationModeExtractNegativeExamples.ql | 7 ++-- ...lApplicationModeExtractPositiveExamples.ql | 7 ++-- ...lApplicationModeExtractCandidates.expected | 18 ++++---- ...cationModeExtractNegativeExamples.expected | 6 +-- ...cationModeExtractPositiveExamples.expected | 6 +-- 7 files changed, 57 insertions(+), 46 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index ac5d44af1d2..19a559ad3cb 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -46,11 +46,21 @@ abstract private class ApplicationModeEndpoint extends TApplicationModeEndpoint abstract string getMaDInput(); + abstract string getMaDOutput(); + abstract Top asTop(); abstract DataFlow::Node asNode(); - abstract string getExtensibleType(); + string getExtensibleType() { + // XXX the sourceModel still implements a bogus getMaDInput() method, so we can't use this yet + if /* not exists(this.getMaDInput()) and */ exists(this.getMaDOutput()) + then result = "sourceModel" + else + if exists(this.getMaDInput()) and not exists(this.getMaDOutput()) + then result = "sinkModel" + else none() // if both exist, it would be a summaryModel (not yet supported) + } abstract string toString(); } @@ -68,16 +78,14 @@ class ExplicitArgument extends ApplicationModeEndpoint, TExplicitArgument { private int getArgIndex() { this.asTop() = call.getArgument(result) } - override string getMaDInput() { - result = "Argument[" + this.getArgIndex() + "]" - } + override string getMaDInput() { result = "Argument[" + this.getArgIndex() + "]" } + + override string getMaDOutput() { none() } override Top asTop() { result = arg.asExpr() } override DataFlow::Node asNode() { result = arg } - override string getExtensibleType() { result = "sinkModel" } - override string toString() { result = arg.toString() } } @@ -91,12 +99,12 @@ class InstanceArgument extends ApplicationModeEndpoint, TInstanceArgument { override string getMaDInput() { result = "Argument[this]" } + override string getMaDOutput() { none() } + override Top asTop() { if exists(arg.asExpr()) then result = arg.asExpr() else result = call } override DataFlow::Node asNode() { result = arg } - override string getExtensibleType() { result = "sinkModel" } - override string toString() { result = arg.toString() } } @@ -118,16 +126,14 @@ class ImplicitVarargsArray extends ApplicationModeEndpoint, TImplicitVarargsArra override Call getCall() { result = call } - override string getMaDInput() { - result = "Argument[" + idx + "]" - } + override string getMaDInput() { result = "Argument[" + idx + "]" } + + override string getMaDOutput() { none() } override Top asTop() { result = this.getCall() } override DataFlow::Node asNode() { result = vararg } - override string getExtensibleType() { result = "sinkModel" } - override string toString() { result = vararg.toString() } } @@ -143,12 +149,12 @@ class MethodCall extends ApplicationModeEndpoint, TMethodCall { override string getMaDInput() { result = "Argument[this]" } + override string getMaDOutput() { result = "ReturnValue" } + override Top asTop() { result = call } override DataFlow::Node asNode() { result.asExpr() = call } - override string getExtensibleType() { result = "sourceModel" } - override string toString() { result = call.toString() } } @@ -210,7 +216,6 @@ module ApplicationCandidatesImpl implements SharedCharacteristics::CandidateSig additional predicate sinkSpec( Endpoint e, string package, string type, string name, string signature, string ext, string input ) { - e.getExtensibleType() = "sinkModel" and ApplicationModeGetCallable::getCallable(e).hasQualifiedName(package, type, name) and signature = ExternalFlow::paramsString(ApplicationModeGetCallable::getCallable(e)) and ext = "" and @@ -269,11 +274,12 @@ class ApplicationModeMetadataExtractor extends string { predicate hasMetadata( Endpoint e, string package, string type, string subtypes, string name, string signature, - string input, string isVarargsArray + string input, string output, string isVarargsArray ) { exists(Callable callable | e.getCall().getCallee() = callable and - input = e.getMaDInput() and + (if exists(e.getMaDInput()) then input = e.getMaDInput() else input = "") and + (if exists(e.getMaDOutput()) then output = e.getMaDOutput() else output = "") and package = callable.getDeclaringType().getPackage().getName() and // we're using the erased types because the MaD convention is to not specify type parameters. // Whether something is or isn't a sink doesn't usually depend on the type parameters. diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql index cc6c8e65fcd..f44c71fe5d4 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql @@ -25,20 +25,20 @@ private import AutomodelJavaUtil bindingset[limit] private Endpoint getSampleForSignature( int limit, string package, string type, string subtypes, string name, string signature, - string input, string isVarargs, string extensibleType + string input, string output, string isVarargs, string extensibleType ) { exists(int n, int num_endpoints, ApplicationModeMetadataExtractor meta | num_endpoints = count(Endpoint e | e.getExtensibleType() = extensibleType and - meta.hasMetadata(e, package, type, subtypes, name, signature, input, isVarargs) + meta.hasMetadata(e, package, type, subtypes, name, signature, input, output, isVarargs) ) | result = rank[n](Endpoint e, Location loc | loc = e.asTop().getLocation() and e.getExtensibleType() = extensibleType and - meta.hasMetadata(e, package, type, subtypes, name, signature, input, isVarargs) + meta.hasMetadata(e, package, type, subtypes, name, signature, input, output, isVarargs) | e order by @@ -57,13 +57,15 @@ private Endpoint getSampleForSignature( from Endpoint endpoint, string message, ApplicationModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, - DollarAtString input, DollarAtString isVarargsArray, DollarAtString alreadyAiModeled, DollarAtString extensibleType + DollarAtString input, DollarAtString output, DollarAtString isVarargsArray, + DollarAtString alreadyAiModeled, DollarAtString extensibleType where not exists(CharacteristicsImpl::UninterestingToModelCharacteristic u | u.appliesToEndpoint(endpoint) ) and endpoint = - getSampleForSignature(9, package, type, subtypes, name, signature, input, isVarargsArray, extensibleType) and + getSampleForSignature(9, package, type, subtypes, name, signature, input, output, + isVarargsArray, extensibleType) and // If a node is already a known sink for any of our existing ATM queries and is already modeled as a MaD sink, we // don't include it as a candidate. Otherwise, we might include it as a candidate for query A, but the model will // label it as a sink for one of the sink types of query B, for which it's already a known sink. This would result in @@ -75,7 +77,7 @@ where alreadyAiModeled.matches("%ai-%") and CharacteristicsImpl::isSink(endpoint, _, alreadyAiModeled) ) and - meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, isVarargsArray) and + meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and includeAutomodelCandidate(package, type, name, signature) and // The message is the concatenation of all sink types for which this endpoint is known neither to be a sink nor to be // a non-sink, and we surface only endpoints that have at least one such sink type. @@ -87,7 +89,7 @@ where sinkType, ", " ) select endpoint.asNode(), - message + "\nrelated locations: $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@.", // + message + "\nrelated locations: $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, CallContext()), "CallContext", // package, "package", // type, "type", // @@ -95,6 +97,7 @@ select endpoint.asNode(), name, "name", // method name signature, "signature", // input, "input", // + output, "output", // isVarargsArray, "isVarargsArray", // alreadyAiModeled, "alreadyAiModeled", // extensibleType, "extensibleType" diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql index a1cb9c8961a..96726ee0e4f 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql @@ -44,7 +44,7 @@ from Endpoint endpoint, EndpointCharacteristic characteristic, float confidence, string message, ApplicationModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, DollarAtString input, - DollarAtString isVarargsArray + DollarAtString output, DollarAtString isVarargsArray where endpoint = getSampleForCharacteristic(characteristic, 100) and confidence >= SharedCharacteristics::highConfidence() and @@ -52,7 +52,7 @@ where // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly // certain about in the prompt. not erroneousEndpoints(endpoint, _, _, _, _, false) and - meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, isVarargsArray) and + meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and // It's valid for a node to satisfy the logic for both `isSink` and `isSanitizer`, but in that case it will be // treated by the actual query as a sanitizer, since the final logic is something like // `isSink(n) and not isSanitizer(n)`. We don't want to include such nodes as negative examples in the prompt, because @@ -65,7 +65,7 @@ where ) and message = characteristic select endpoint.asNode(), - message + "\nrelated locations: $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@.", // + message + "\nrelated locations: $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, CallContext()), "CallContext", // package, "package", // type, "type", // @@ -73,4 +73,5 @@ select endpoint.asNode(), name, "name", // signature, "signature", // input, "input", // + output, "output", // isVarargsArray, "isVarargsArray" // diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql index 7341f512702..23d7094e99e 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql @@ -15,17 +15,17 @@ private import AutomodelJavaUtil from Endpoint endpoint, SinkType sinkType, ApplicationModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, - DollarAtString signature, DollarAtString input, DollarAtString isVarargsArray + DollarAtString signature, DollarAtString input, DollarAtString output, DollarAtString isVarargsArray where // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly // certain about in the prompt. not erroneousEndpoints(endpoint, _, _, _, _, false) and - meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, isVarargsArray) and + meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and // Extract positive examples of sinks belonging to the existing ATM query configurations. CharacteristicsImpl::isKnownSink(endpoint, sinkType, _) and exists(CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, CallContext())) select endpoint.asNode(), - sinkType + "\nrelated locations: $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@.", // + sinkType + "\nrelated locations: $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, CallContext()), "CallContext", // package, "package", // type, "type", // @@ -33,4 +33,5 @@ select endpoint.asNode(), name, "name", // signature, "signature", // input, "input", // + output, "output", // isVarargsArray, "isVarargsArray" diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected index 6dfb83f89fa..21db07ccdc3 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected @@ -1,9 +1,9 @@ -| Test.java:16:3:16:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:16:3:16:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:21:3:21:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:21:3:21:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:21:3:21:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:21:3:21:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:25:3:29:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:33:10:35:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:34:4:34:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:40:4:40:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:40:4:40:22 | get(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:51:3:56:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:53:4:53:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:16:3:16:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:16:3:16:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:21:3:21:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:21:3:21:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:21:3:21:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:21:3:21:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:25:3:29:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:33:10:35:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:34:4:34:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:40:4:40:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:40:4:40:22 | get(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:51:3:56:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:53:4:53:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected index c07e3f2a32e..98c338f8ede 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected @@ -1,3 +1,3 @@ -| Test.java:45:10:47:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | Test.java:45:10:47:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:46:4:46:5 | f2 | known non-sink\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | Test.java:45:10:47:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:52:4:52:4 | p | taint step\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:45:10:47:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:45:10:47:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:46:4:46:5 | f2 | known non-sink\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:45:10:47:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:52:4:52:4 | p | taint step\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected index e07f92f4baf..80aae081241 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected @@ -1,3 +1,3 @@ -| Test.java:26:4:26:9 | source | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:27:4:27:9 | target | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:34:4:34:11 | openPath | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:26:4:26:9 | source | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:27:4:27:9 | target | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:34:4:34:11 | openPath | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | From dff8259e7862a76c4940c6324b386d73c6702c76 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 6 Sep 2023 13:37:54 +0200 Subject: [PATCH 268/788] Java: support remote sources in automodel positive example extraction --- ...utomodelApplicationModeCharacteristics.qll | 16 ++++++ ...tomodelApplicationModeExtractCandidates.ql | 2 +- ...lApplicationModeExtractPositiveExamples.ql | 6 +-- .../automodel/src/AutomodelEndpointTypes.qll | 17 ++++--- .../AutomodelFrameworkModeCharacteristics.qll | 4 ++ ...AutomodelFrameworkModeExtractCandidates.ql | 2 +- ...delFrameworkModeExtractPositiveExamples.ql | 2 +- java/ql/automodel/src/AutomodelJavaUtil.qll | 3 ++ .../src/AutomodelSharedCharacteristics.qll | 51 +++++++++++++++++-- ...lApplicationModeExtractCandidates.expected | 20 ++++---- ...cationModeExtractNegativeExamples.expected | 6 +-- ...cationModeExtractPositiveExamples.expected | 7 +-- .../Test.java | 5 ++ 13 files changed, 110 insertions(+), 31 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 19a559ad3cb..3379ce665cf 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -205,6 +205,13 @@ module ApplicationCandidatesImpl implements SharedCharacteristics::CandidateSig isCustomSink(e, kind) and provenance = "custom-sink" } + predicate isSource(Endpoint e, string kind, string provenance) { + exists(string package, string type, string name, string signature, string ext, string output | + sourceSpec(e, package, type, name, signature, ext, output) and + ExternalFlow::sourceModel(package, type, _, name, [signature, ""], ext, output, kind, provenance) + ) + } + predicate isNeutral(Endpoint e) { exists(string package, string type, string name, string signature | sinkSpec(e, package, type, name, signature, _, _) and @@ -222,6 +229,15 @@ module ApplicationCandidatesImpl implements SharedCharacteristics::CandidateSig input = e.getMaDInput() } + additional predicate sourceSpec( + Endpoint e, string package, string type, string name, string signature, string ext, string output + ) { + ApplicationModeGetCallable::getCallable(e).hasQualifiedName(package, type, name) and + signature = ExternalFlow::paramsString(ApplicationModeGetCallable::getCallable(e)) and + ext = "" and + output = e.getMaDOutput() + } + /** * Gets the related location for the given endpoint. * diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql index f44c71fe5d4..e27c22fe13f 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql @@ -83,7 +83,7 @@ where // a non-sink, and we surface only endpoints that have at least one such sink type. message = strictconcat(AutomodelEndpointTypes::SinkType sinkType | - not CharacteristicsImpl::isKnownSink(endpoint, sinkType, _) and + not CharacteristicsImpl::isKnownAs(endpoint, sinkType, _) and CharacteristicsImpl::isSinkCandidate(endpoint, sinkType) | sinkType, ", " diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql index 23d7094e99e..9a0433ded42 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql @@ -13,7 +13,7 @@ private import AutomodelEndpointTypes private import AutomodelJavaUtil from - Endpoint endpoint, SinkType sinkType, ApplicationModeMetadataExtractor meta, + Endpoint endpoint, EndpointType endpointType, ApplicationModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, DollarAtString input, DollarAtString output, DollarAtString isVarargsArray where @@ -22,10 +22,10 @@ where not erroneousEndpoints(endpoint, _, _, _, _, false) and meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and // Extract positive examples of sinks belonging to the existing ATM query configurations. - CharacteristicsImpl::isKnownSink(endpoint, sinkType, _) and + CharacteristicsImpl::isKnownAs(endpoint, endpointType, _) and exists(CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, CallContext())) select endpoint.asNode(), - sinkType + "\nrelated locations: $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@.", // + endpointType + "\nrelated locations: $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, CallContext()), "CallContext", // package, "package", // type, "type", // diff --git a/java/ql/automodel/src/AutomodelEndpointTypes.qll b/java/ql/automodel/src/AutomodelEndpointTypes.qll index 618fa4bc7dd..e7eaed15541 100644 --- a/java/ql/automodel/src/AutomodelEndpointTypes.qll +++ b/java/ql/automodel/src/AutomodelEndpointTypes.qll @@ -28,12 +28,6 @@ abstract class SinkType extends EndpointType { SinkType() { any() } } -/** A class for source types that can be predicted by a classifier. */ -abstract class SourceType extends EndpointType { - bindingset[this] - SourceType() { any() } -} - /** The `Negative` class for non-sinks. */ class NegativeSinkType extends SinkType { NegativeSinkType() { this = "non-sink" } @@ -58,3 +52,14 @@ class RequestForgerySinkType extends SinkType { class CommandInjectionSinkType extends SinkType { CommandInjectionSinkType() { this = "command-injection" } } + +/** A class for source types that can be predicted by a classifier. */ +abstract class SourceType extends EndpointType { + bindingset[this] + SourceType() { any() } +} + +/** A source of remote data. */ +class RemoteSourceType extends SourceType { + RemoteSourceType() { this = "remote" } +} diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index 02d945437e3..020e15a3eaa 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -117,6 +117,10 @@ module FrameworkCandidatesImpl implements SharedCharacteristics::CandidateSig { ) } + predicate isSource(Endpoint e, string kind, string provenance) { + none() // TODO: implement + } + predicate isNeutral(Endpoint e) { exists(string package, string type, string name, string signature | sinkSpec(e, package, type, name, signature, _, _) and diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql index c3de8a208d5..e06594d0d39 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql @@ -40,7 +40,7 @@ where // a non-sink, and we surface only endpoints that have at least one such sink type. message = strictconcat(AutomodelEndpointTypes::SinkType sinkType | - not CharacteristicsImpl::isKnownSink(endpoint, sinkType, _) and + not CharacteristicsImpl::isKnownAs(endpoint, sinkType, _) and CharacteristicsImpl::isSinkCandidate(endpoint, sinkType) | sinkType, ", " diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql index 3807de45c5a..dfbaaef35e5 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql @@ -22,7 +22,7 @@ where not erroneousEndpoints(endpoint, _, _, _, _, false) and meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, parameterName) and // Extract positive examples of sinks belonging to the existing ATM query configurations. - CharacteristicsImpl::isKnownSink(endpoint, sinkType, _) + CharacteristicsImpl::isKnownAs(endpoint, sinkType, _) select endpoint, sinkType + "\nrelated locations: $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, MethodDoc()), "MethodDoc", // diff --git a/java/ql/automodel/src/AutomodelJavaUtil.qll b/java/ql/automodel/src/AutomodelJavaUtil.qll index a224fc291a2..8fd8702bfc4 100644 --- a/java/ql/automodel/src/AutomodelJavaUtil.qll +++ b/java/ql/automodel/src/AutomodelJavaUtil.qll @@ -39,6 +39,9 @@ predicate isKnownKind(string kind, AutomodelEndpointTypes::EndpointType type) { or kind = "command-injection" and type instanceof AutomodelEndpointTypes::CommandInjectionSinkType + or + kind = "remote" and + type instanceof AutomodelEndpointTypes::RemoteSourceType } /** Gets the models-as-data description for the method argument with the index `index`. */ diff --git a/java/ql/automodel/src/AutomodelSharedCharacteristics.qll b/java/ql/automodel/src/AutomodelSharedCharacteristics.qll index 845f8385e5b..0bb78ea2f24 100644 --- a/java/ql/automodel/src/AutomodelSharedCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelSharedCharacteristics.qll @@ -62,6 +62,11 @@ signature module CandidateSig { */ predicate isSink(Endpoint e, string kind, string provenance); + /** + * Holds if `e` is a sink with the label `kind`, and provenance `provenance`. + */ + predicate isSource(Endpoint e, string kind, string provenance); + /** * Holds if `e` is not a sink of any kind. */ @@ -92,16 +97,16 @@ module SharedCharacteristics { predicate isNeutral = Candidate::isNeutral/1; /** - * Holds if `sink` is a known sink of type `endpointType`. + * Holds if `endpoint` is modeled as `endpointType` (endpoint type must not be negative). */ - predicate isKnownSink( - Candidate::Endpoint sink, Candidate::EndpointType endpointType, + predicate isKnownAs( + Candidate::Endpoint endpoint, Candidate::EndpointType endpointType, EndpointCharacteristic characteristic ) { // If the list of characteristics includes positive indicators with maximal confidence for this class, then it's a // known sink for the class. not endpointType instanceof Candidate::NegativeEndpointType and - characteristic.appliesToEndpoint(sink) and + characteristic.appliesToEndpoint(endpoint) and characteristic.hasImplications(endpointType, true, maximalConfidence()) } @@ -209,6 +214,25 @@ module SharedCharacteristics { } } + /** + * A high-confidence characteristic that indicates that an endpoint is a source of a specified type. These endpoints can + * be used as positive samples for training or for a few-shot prompt. + */ + abstract class SourceCharacteristic extends EndpointCharacteristic { + bindingset[this] + SourceCharacteristic() { any() } + + abstract Candidate::EndpointType getSourceType(); + + final override predicate hasImplications( + Candidate::EndpointType endpointType, boolean isPositiveIndicator, float confidence + ) { + endpointType = this.getSourceType() and + isPositiveIndicator = true and + confidence = maximalConfidence() + } + } + /** * A high-confidence characteristic that indicates that an endpoint is not a sink of any type. These endpoints can be * used as negative samples for training or for a few-shot prompt. @@ -292,6 +316,25 @@ module SharedCharacteristics { override Candidate::EndpointType getSinkType() { result = endpointType } } + private class KnownSourceCharacteristic extends SourceCharacteristic { + string madKind; + Candidate::EndpointType endpointType; + string provenance; + + KnownSourceCharacteristic() { + Candidate::isKnownKind(madKind, endpointType) and + // bind "this" to a unique string differing from that of the SinkType classes + this = madKind + "_" + provenance + "_characteristic" and + Candidate::isSource(_, madKind, provenance) + } + + override predicate appliesToEndpoint(Candidate::Endpoint e) { + Candidate::isSource(e, madKind, provenance) + } + + override Candidate::EndpointType getSourceType() { result = endpointType } + } + /** * A negative characteristic that indicates that an endpoint was manually modeled as a neutral model. */ diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected index 21db07ccdc3..6ef3ee17b32 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected @@ -1,9 +1,11 @@ -| Test.java:16:3:16:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:16:3:16:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:21:3:21:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:21:3:21:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:21:3:21:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:21:3:21:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:25:3:29:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:33:10:35:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:34:4:34:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:40:4:40:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:40:4:40:22 | get(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:51:3:56:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:53:4:53:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:17:3:17:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:17:3:17:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:22:3:22:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:22:3:22:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:22:3:22:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:22:3:22:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:26:3:30:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:26:3:30:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:34:10:36:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:34:10:36:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:35:4:35:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:34:10:36:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:41:4:41:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:41:4:41:22 | get(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:52:3:57:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:52:3:57:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:54:4:54:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:52:3:57:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:61:3:61:3 | c | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:61:3:61:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:61:3:61:20 | getInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:61:3:61:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected index 98c338f8ede..7f2654d1777 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected @@ -1,3 +1,3 @@ -| Test.java:45:10:47:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:45:10:47:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:46:4:46:5 | f2 | known non-sink\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:45:10:47:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:52:4:52:4 | p | taint step\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:51:3:56:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:46:10:48:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:46:10:48:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:47:4:47:5 | f2 | known non-sink\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:46:10:48:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:53:4:53:4 | p | taint step\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:52:3:57:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected index 80aae081241..f8c7e8b9b1c 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected @@ -1,3 +1,4 @@ -| Test.java:26:4:26:9 | source | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:27:4:27:9 | target | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:25:3:29:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:34:4:34:11 | openPath | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:33:10:35:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:27:4:27:9 | source | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:26:3:30:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:28:4:28:9 | target | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:26:3:30:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:35:4:35:11 | openPath | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:34:10:36:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:61:3:61:20 | getInputStream(...) | remote\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:61:3:61:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java index cb655a06ad1..f72a512c26a 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java @@ -9,6 +9,7 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; import java.io.File; import java.nio.file.FileVisitOption; +import java.net.URLConnection; class Test { public static void main(String[] args) throws Exception { @@ -55,4 +56,8 @@ class Test { // is extracted) ); } + + public static void WebSocketExample(URLConnection c) throws Exception { + c.getInputStream(); // the call is a source example, c is a sink candidate + } } From 6f7d78183fe79eae09a201ed1abdbe301635fb40 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 6 Sep 2023 17:04:04 +0200 Subject: [PATCH 269/788] Java: add endpoints for parameters of overridden methods in automodel application mode --- ...utomodelApplicationModeCharacteristics.qll | 52 ++++++++++++++++--- ...tomodelApplicationModeExtractCandidates.ql | 10 ++-- ...lApplicationModeExtractCandidates.expected | 1 + .../Test.java | 6 +++ 4 files changed, 57 insertions(+), 12 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 3379ce665cf..5c745bcc2ce 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -36,12 +36,18 @@ newtype TApplicationModeEndpoint = not exists(int i | i < idx and call.getArgument(i).(Argument).isVararg()) ) } or - TMethodCall(Call call) { not call instanceof ConstructorCall } + TMethodCall(Call call) { not call instanceof ConstructorCall } or + TOverriddenParameter(Parameter p) { + not p.getCallable().callsConstructor(_) and + p.getCallable().(Method).overrides(_) + } /** * An endpoint is a node that is a candidate for modeling. */ abstract private class ApplicationModeEndpoint extends TApplicationModeEndpoint { + abstract Callable getCallable(); + abstract Call getCall(); abstract string getMaDInput(); @@ -74,6 +80,8 @@ class ExplicitArgument extends ApplicationModeEndpoint, TExplicitArgument { ExplicitArgument() { this = TExplicitArgument(call, arg) } + override Callable getCallable() { result = call.getCallee() } + override Call getCall() { result = call } private int getArgIndex() { this.asTop() = call.getArgument(result) } @@ -95,6 +103,8 @@ class InstanceArgument extends ApplicationModeEndpoint, TInstanceArgument { InstanceArgument() { this = TInstanceArgument(call, arg) } + override Callable getCallable() { result = call.getCallee() } + override Call getCall() { result = call } override string getMaDInput() { result = "Argument[this]" } @@ -124,13 +134,15 @@ class ImplicitVarargsArray extends ApplicationModeEndpoint, TImplicitVarargsArra ImplicitVarargsArray() { this = TImplicitVarargsArray(call, vararg, idx) } + override Callable getCallable() { result = call.getCallee() } + override Call getCall() { result = call } override string getMaDInput() { result = "Argument[" + idx + "]" } override string getMaDOutput() { none() } - override Top asTop() { result = this.getCall() } + override Top asTop() { result = call } override DataFlow::Node asNode() { result = vararg } @@ -145,6 +157,8 @@ class MethodCall extends ApplicationModeEndpoint, TMethodCall { MethodCall() { this = TMethodCall(call) } + override Callable getCallable() { result = call.getCallee() } + override Call getCall() { result = call } override string getMaDInput() { result = "Argument[this]" } @@ -158,6 +172,28 @@ class MethodCall extends ApplicationModeEndpoint, TMethodCall { override string toString() { result = call.toString() } } +class OverriddenParameter extends ApplicationModeEndpoint, TOverriddenParameter { + Parameter p; + + OverriddenParameter() { this = TOverriddenParameter(p) } + + override Callable getCallable() { result = p.getCallable() } + + override Call getCall() { none() } + + private int getArgIndex() { p.getCallable().getParameter(result) = p } + + override string getMaDInput() { none() } + + override string getMaDOutput() { result = "Parameter[" + this.getArgIndex() + "]" } + + override Top asTop() { result = p } + + override DataFlow::Node asNode() { result.(DataFlow::ParameterNode).asParameter() = p } + + override string toString() { result = p.toString() } +} + /** * A candidates implementation. * @@ -208,7 +244,8 @@ module ApplicationCandidatesImpl implements SharedCharacteristics::CandidateSig predicate isSource(Endpoint e, string kind, string provenance) { exists(string package, string type, string name, string signature, string ext, string output | sourceSpec(e, package, type, name, signature, ext, output) and - ExternalFlow::sourceModel(package, type, _, name, [signature, ""], ext, output, kind, provenance) + ExternalFlow::sourceModel(package, type, _, name, [signature, ""], ext, output, kind, + provenance) ) } @@ -230,7 +267,8 @@ module ApplicationCandidatesImpl implements SharedCharacteristics::CandidateSig } additional predicate sourceSpec( - Endpoint e, string package, string type, string name, string signature, string ext, string output + Endpoint e, string package, string type, string name, string signature, string ext, + string output ) { ApplicationModeGetCallable::getCallable(e).hasQualifiedName(package, type, name) and signature = ExternalFlow::paramsString(ApplicationModeGetCallable::getCallable(e)) and @@ -293,7 +331,7 @@ class ApplicationModeMetadataExtractor extends string { string input, string output, string isVarargsArray ) { exists(Callable callable | - e.getCall().getCallee() = callable and + e.getCallable() = callable and (if exists(e.getMaDInput()) then input = e.getMaDInput() else input = "") and (if exists(e.getMaDOutput()) then output = e.getMaDOutput() else output = "") and package = callable.getDeclaringType().getPackage().getName() and @@ -328,8 +366,8 @@ private class UnexploitableIsCharacteristic extends CharacteristicsImpl::NotASin override predicate appliesToEndpoint(Endpoint e) { not ApplicationCandidatesImpl::isSink(e, _, _) and - ApplicationModeGetCallable::getCallable(e).getName().matches("is%") and - ApplicationModeGetCallable::getCallable(e).getReturnType() instanceof BooleanType + e.getCallable().getName().matches("is%") and + e.getCallable().getReturnType() instanceof BooleanType } } diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql index e27c22fe13f..60182884bb4 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql @@ -66,11 +66,11 @@ where endpoint = getSampleForSignature(9, package, type, subtypes, name, signature, input, output, isVarargsArray, extensibleType) and - // If a node is already a known sink for any of our existing ATM queries and is already modeled as a MaD sink, we - // don't include it as a candidate. Otherwise, we might include it as a candidate for query A, but the model will - // label it as a sink for one of the sink types of query B, for which it's already a known sink. This would result in - // overlap between our detected sinks and the pre-existing modeling. We assume that, if a sink has already been - // modeled in a MaD model, then it doesn't belong to any additional sink types, and we don't need to reexamine it. + // If a node is already modeled in MaD, we don't include it as a candidate. Otherwise, we might include it as a + // candidate for query A, but the model will label it as a sink for one of the sink types of query B, for which it's + // already a known sink. This would result in overlap between our detected sinks and the pre-existing modeling. We + // assume that, if a sink has already been modeled in a MaD model, then it doesn't belong to any additional sink + // types, and we don't need to reexamine it. ( not CharacteristicsImpl::isSink(endpoint, _, _) and alreadyAiModeled = "" or diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected index 6ef3ee17b32..43796af788e 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected @@ -9,3 +9,4 @@ | Test.java:54:4:54:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:52:3:57:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | Test.java:61:3:61:3 | c | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:61:3:61:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | Test.java:61:3:61:20 | getInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:61:3:61:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:66:24:66:31 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:66:24:66:31 | o | CallContext | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://OverrideTest:1:1:1:1 | OverrideTest | type | file://true:1:1:1:1 | true | subtypes | file://equals:1:1:1:1 | equals | name | file://(Object):1:1:1:1 | (Object) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java index f72a512c26a..f257ef2f188 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java @@ -61,3 +61,9 @@ class Test { c.getInputStream(); // the call is a source example, c is a sink candidate } } + +class OverrideTest { + public boolean equals(Object o) { // o is a source candidate because it overrides an existing method + return false; + } +} From 1e1b59ed52b7bbf888b99a86371bc1870bc158ba Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Thu, 7 Sep 2023 10:47:27 +0200 Subject: [PATCH 270/788] Java: automodel: additionally consider sources for alreadyAiModeled property --- .../src/AutomodelApplicationModeExtractCandidates.ql | 4 ++-- java/ql/automodel/src/AutomodelSharedCharacteristics.qll | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql index 60182884bb4..85d3e513a36 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql @@ -72,10 +72,10 @@ where // assume that, if a sink has already been modeled in a MaD model, then it doesn't belong to any additional sink // types, and we don't need to reexamine it. ( - not CharacteristicsImpl::isSink(endpoint, _, _) and alreadyAiModeled = "" + not CharacteristicsImpl::isModeled(endpoint, _, _, _) and alreadyAiModeled = "" or alreadyAiModeled.matches("%ai-%") and - CharacteristicsImpl::isSink(endpoint, _, alreadyAiModeled) + CharacteristicsImpl::isModeled(endpoint, _, _, alreadyAiModeled) ) and meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and includeAutomodelCandidate(package, type, name, signature) and diff --git a/java/ql/automodel/src/AutomodelSharedCharacteristics.qll b/java/ql/automodel/src/AutomodelSharedCharacteristics.qll index 0bb78ea2f24..992d9c08332 100644 --- a/java/ql/automodel/src/AutomodelSharedCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelSharedCharacteristics.qll @@ -96,6 +96,12 @@ module SharedCharacteristics { predicate isNeutral = Candidate::isNeutral/1; + predicate isModeled(Candidate::Endpoint e, string kind, string extensibleKind, string provenance) { + Candidate::isSink(e, kind, provenance) and extensibleKind = "sinkModel" + or + Candidate::isSource(e, kind, provenance) and extensibleKind = "sourceModel" + } + /** * Holds if `endpoint` is modeled as `endpointType` (endpoint type must not be negative). */ From 31219491232887236c40ecf8e43e6871526be205 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Thu, 7 Sep 2023 12:20:56 +0200 Subject: [PATCH 271/788] Java: automodel application mode: test case for overridden method candidate --- .../src/AutomodelApplicationModeCharacteristics.qll | 11 ++++++++++- ...AutomodelApplicationModeExtractCandidates.expected | 3 ++- .../PluginImpl.java | 8 ++++++++ .../hudson/Plugin.java | 5 +++++ 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 java/ql/automodel/test/AutomodelApplicationModeExtraction/PluginImpl.java create mode 100644 java/ql/automodel/test/AutomodelApplicationModeExtraction/hudson/Plugin.java diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 5c745bcc2ce..c96f49151a5 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -177,7 +177,16 @@ class OverriddenParameter extends ApplicationModeEndpoint, TOverriddenParameter OverriddenParameter() { this = TOverriddenParameter(p) } - override Callable getCallable() { result = p.getCallable() } + override Callable getCallable() { + // XXX: we're returning the overriding callable here. This means that the + // candidate model will be about the overriding method, not the overridden + // method (which is more general). + // Doing it this way: + // - (+) makes the decision easier for the user + // - (+) is simplest, implementation-wise + // - (-) produces a less general model + result = p.getCallable() + } override Call getCall() { none() } diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected index 43796af788e..f4d9b697396 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected @@ -1,3 +1,5 @@ +| PluginImpl.java:5:27:5:37 | name | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:27:5:37 | name | CallContext | file://:1:1:1:1 | | package | file://PluginImpl:1:1:1:1 | PluginImpl | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| PluginImpl.java:5:40:5:51 | value | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:40:5:51 | value | CallContext | file://:1:1:1:1 | | package | file://PluginImpl:1:1:1:1 | PluginImpl | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[1]:1:1:1:1 | Parameter[1] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:17:3:17:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:17:3:17:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | Test.java:22:3:22:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:22:3:22:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | Test.java:22:3:22:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:22:3:22:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | @@ -8,5 +10,4 @@ | Test.java:52:3:57:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:52:3:57:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:54:4:54:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:52:3:57:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | Test.java:61:3:61:3 | c | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:61:3:61:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:61:3:61:20 | getInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:61:3:61:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:66:24:66:31 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:66:24:66:31 | o | CallContext | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://OverrideTest:1:1:1:1 | OverrideTest | type | file://true:1:1:1:1 | true | subtypes | file://equals:1:1:1:1 | equals | name | file://(Object):1:1:1:1 | (Object) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/PluginImpl.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/PluginImpl.java new file mode 100644 index 00000000000..5125fe1fc7d --- /dev/null +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/PluginImpl.java @@ -0,0 +1,8 @@ +import hudson.Plugin; + +public class PluginImpl implements Plugin { + @Override + public void configure(String name, String value) { + // ... + } +} diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/hudson/Plugin.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/hudson/Plugin.java new file mode 100644 index 00000000000..e37d3415f87 --- /dev/null +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/hudson/Plugin.java @@ -0,0 +1,5 @@ +package hudson; + +public interface Plugin { + public void configure(String name, String value); +} From c173d9ae40cba1ebe63b2f0fdff2755175761005 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Thu, 7 Sep 2023 15:13:11 +0200 Subject: [PATCH 272/788] Java: automodel application mode: generate models for overridden method candidates --- ...utomodelApplicationModeCharacteristics.qll | 28 +++++++++---------- ...lApplicationModeExtractCandidates.expected | 26 ++++++++--------- ...cationModeExtractNegativeExamples.expected | 7 +++-- ...cationModeExtractPositiveExamples.expected | 8 +++--- .../PluginImpl.java | 2 +- .../Test.java | 9 +++--- .../hudson/Plugin.java | 4 +-- 7 files changed, 42 insertions(+), 42 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index c96f49151a5..b369573d359 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -37,9 +37,9 @@ newtype TApplicationModeEndpoint = ) } or TMethodCall(Call call) { not call instanceof ConstructorCall } or - TOverriddenParameter(Parameter p) { + TOverriddenParameter(Parameter p, Method overriddenMethod) { not p.getCallable().callsConstructor(_) and - p.getCallable().(Method).overrides(_) + p.getCallable().(Method).overrides(overriddenMethod) } /** @@ -174,18 +174,16 @@ class MethodCall extends ApplicationModeEndpoint, TMethodCall { class OverriddenParameter extends ApplicationModeEndpoint, TOverriddenParameter { Parameter p; + Method overriddenMethod; - OverriddenParameter() { this = TOverriddenParameter(p) } + OverriddenParameter() { this = TOverriddenParameter(p, overriddenMethod) } override Callable getCallable() { - // XXX: we're returning the overriding callable here. This means that the - // candidate model will be about the overriding method, not the overridden - // method (which is more general). - // Doing it this way: - // - (+) makes the decision easier for the user - // - (+) is simplest, implementation-wise - // - (-) produces a less general model - result = p.getCallable() + // NB: we're returning the overridden callable here. This means that the + // candidate model will be about the overridden method, not the overriding + // method. This is a more general model, that also applies to other + // subclasses of the overridden class. + result = overriddenMethod } override Call getCall() { none() } @@ -269,8 +267,8 @@ module ApplicationCandidatesImpl implements SharedCharacteristics::CandidateSig additional predicate sinkSpec( Endpoint e, string package, string type, string name, string signature, string ext, string input ) { - ApplicationModeGetCallable::getCallable(e).hasQualifiedName(package, type, name) and - signature = ExternalFlow::paramsString(ApplicationModeGetCallable::getCallable(e)) and + e.getCallable().hasQualifiedName(package, type, name) and + signature = ExternalFlow::paramsString(e.getCallable()) and ext = "" and input = e.getMaDInput() } @@ -279,8 +277,8 @@ module ApplicationCandidatesImpl implements SharedCharacteristics::CandidateSig Endpoint e, string package, string type, string name, string signature, string ext, string output ) { - ApplicationModeGetCallable::getCallable(e).hasQualifiedName(package, type, name) and - signature = ExternalFlow::paramsString(ApplicationModeGetCallable::getCallable(e)) and + e.getCallable().hasQualifiedName(package, type, name) and + signature = ExternalFlow::paramsString(e.getCallable()) and ext = "" and output = e.getMaDOutput() } diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected index f4d9b697396..c67f068d858 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected @@ -1,13 +1,13 @@ -| PluginImpl.java:5:27:5:37 | name | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:27:5:37 | name | CallContext | file://:1:1:1:1 | | package | file://PluginImpl:1:1:1:1 | PluginImpl | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| PluginImpl.java:5:40:5:51 | value | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:40:5:51 | value | CallContext | file://:1:1:1:1 | | package | file://PluginImpl:1:1:1:1 | PluginImpl | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[1]:1:1:1:1 | Parameter[1] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:17:3:17:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:17:3:17:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:22:3:22:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:22:3:22:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:22:3:22:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:22:3:22:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:26:3:30:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:26:3:30:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:34:10:36:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:34:10:36:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:35:4:35:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:34:10:36:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:41:4:41:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:41:4:41:22 | get(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:52:3:57:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:52:3:57:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:54:4:54:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:52:3:57:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:61:3:61:3 | c | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:61:3:61:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:66:24:66:31 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:66:24:66:31 | o | CallContext | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://OverrideTest:1:1:1:1 | OverrideTest | type | file://true:1:1:1:1 | true | subtypes | file://equals:1:1:1:1 | equals | name | file://(Object):1:1:1:1 | (Object) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| PluginImpl.java:5:27:5:37 | name | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:27:5:37 | name | CallContext | file://hudson:1:1:1:1 | hudson | package | file://Plugin:1:1:1:1 | Plugin | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| PluginImpl.java:5:40:5:51 | value | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:40:5:51 | value | CallContext | file://hudson:1:1:1:1 | hudson | package | file://Plugin:1:1:1:1 | Plugin | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[1]:1:1:1:1 | Parameter[1] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:18:3:18:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:18:3:18:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:23:3:23:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:23:3:23:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:23:3:23:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:23:3:23:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:27:3:31:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:35:10:37:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:36:4:36:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:42:4:42:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:42:4:42:22 | get(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:53:3:58:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:55:4:55:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:62:3:62:3 | c | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:62:3:62:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:67:30:67:47 | writer | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:67:30:67:47 | writer | CallContext | file://java.lang:1:1:1:1 | java.lang | package | file://Throwable:1:1:1:1 | Throwable | type | file://true:1:1:1:1 | true | subtypes | file://printStackTrace:1:1:1:1 | printStackTrace | name | file://(PrintWriter):1:1:1:1 | (PrintWriter) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected index 7f2654d1777..267e47bc871 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected @@ -1,3 +1,4 @@ -| Test.java:46:10:48:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:46:10:48:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:47:4:47:5 | f2 | known non-sink\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:46:10:48:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:53:4:53:4 | p | taint step\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:52:3:57:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:47:10:49:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:47:10:49:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:48:4:48:5 | f2 | known non-sink\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:47:10:49:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:54:4:54:4 | p | taint step\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:66:7:66:18 | this | exception\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:66:7:66:18 | super(...) | CallContext | file://java.lang:1:1:1:1 | java.lang | package | file://Exception:1:1:1:1 | Exception | type | file://true:1:1:1:1 | true | subtypes | file://Exception:1:1:1:1 | Exception | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected index f8c7e8b9b1c..085ebbd2987 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected @@ -1,4 +1,4 @@ -| Test.java:27:4:27:9 | source | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:26:3:30:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:28:4:28:9 | target | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:26:3:30:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:35:4:35:11 | openPath | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:34:10:36:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:61:3:61:20 | getInputStream(...) | remote\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:61:3:61:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:28:4:28:9 | source | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:29:4:29:9 | target | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:36:4:36:11 | openPath | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:62:3:62:20 | getInputStream(...) | remote\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:62:3:62:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/PluginImpl.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/PluginImpl.java index 5125fe1fc7d..11c0384f759 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/PluginImpl.java +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/PluginImpl.java @@ -1,6 +1,6 @@ import hudson.Plugin; -public class PluginImpl implements Plugin { +public class PluginImpl extends Plugin { @Override public void configure(String name, String value) { // ... diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java index f257ef2f188..4887285eb71 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java @@ -1,6 +1,7 @@ package com.github.codeql.test; import java.io.InputStream; +import java.io.PrintWriter; import java.nio.file.CopyOption; import java.nio.file.Files; import java.nio.file.Path; @@ -47,7 +48,7 @@ class Test { f2 // negative example (modeled as not a sink) ); } - + public static void FilesWalkExample(Path p, FileVisitOption o) throws Exception { Files.walk( // the call is a source candidate p, // negative example (modeled as a taint step) @@ -62,8 +63,8 @@ class Test { } } -class OverrideTest { - public boolean equals(Object o) { // o is a source candidate because it overrides an existing method - return false; +class OverrideTest extends Exception { + public void printStackTrace(PrintWriter writer) { // writer is a source candidate because it overrides an existing method + return; } } diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/hudson/Plugin.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/hudson/Plugin.java index e37d3415f87..f88d8ab35fd 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/hudson/Plugin.java +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/hudson/Plugin.java @@ -1,5 +1,5 @@ package hudson; -public interface Plugin { - public void configure(String name, String value); +public class Plugin { + public void configure(String name, String value) {} } From 836a5822f31978bafbec1283d9934be423df5dee Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Thu, 7 Sep 2023 15:44:03 +0200 Subject: [PATCH 273/788] Java: Automodel App Mode: remove bogus implementation --- .../src/AutomodelApplicationModeCharacteristics.qll | 9 ++++++--- .../AutomodelApplicationModeExtractCandidates.expected | 10 +++++----- ...odelApplicationModeExtractNegativeExamples.expected | 2 +- ...odelApplicationModeExtractPositiveExamples.expected | 2 +- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index b369573d359..810a46045eb 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -59,8 +59,7 @@ abstract private class ApplicationModeEndpoint extends TApplicationModeEndpoint abstract DataFlow::Node asNode(); string getExtensibleType() { - // XXX the sourceModel still implements a bogus getMaDInput() method, so we can't use this yet - if /* not exists(this.getMaDInput()) and */ exists(this.getMaDOutput()) + if not exists(this.getMaDInput()) and exists(this.getMaDOutput()) then result = "sourceModel" else if exists(this.getMaDInput()) and not exists(this.getMaDOutput()) @@ -161,7 +160,7 @@ class MethodCall extends ApplicationModeEndpoint, TMethodCall { override Call getCall() { result = call } - override string getMaDInput() { result = "Argument[this]" } + override string getMaDInput() { none() } override string getMaDOutput() { result = "ReturnValue" } @@ -172,6 +171,10 @@ class MethodCall extends ApplicationModeEndpoint, TMethodCall { override string toString() { result = call.toString() } } +/** + * An endpoint that represents a parameter of an overridden method that may be + * a source. + */ class OverriddenParameter extends ApplicationModeEndpoint, TOverriddenParameter { Parameter p; Method overriddenMethod; diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected index c67f068d858..a5bc12867cf 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected @@ -2,12 +2,12 @@ | PluginImpl.java:5:40:5:51 | value | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:40:5:51 | value | CallContext | file://hudson:1:1:1:1 | hudson | package | file://Plugin:1:1:1:1 | Plugin | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[1]:1:1:1:1 | Parameter[1] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:18:3:18:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:18:3:18:24 | set(...) | CallContext | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | Test.java:23:3:23:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:23:3:23:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:23:3:23:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:23:3:23:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:27:3:31:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:35:10:37:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:23:3:23:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:23:3:23:16 | get(...) | CallContext | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:27:3:31:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:35:10:37:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:36:4:36:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:42:4:42:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:42:4:42:22 | get(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:53:3:58:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:42:4:42:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:42:4:42:22 | get(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:53:3:58:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | Test.java:55:4:55:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | Test.java:62:3:62:3 | c | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:62:3:62:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | Test.java:67:30:67:47 | writer | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:67:30:67:47 | writer | CallContext | file://java.lang:1:1:1:1 | java.lang | package | file://Throwable:1:1:1:1 | Throwable | type | file://true:1:1:1:1 | true | subtypes | file://printStackTrace:1:1:1:1 | printStackTrace | name | file://(PrintWriter):1:1:1:1 | (PrintWriter) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected index 267e47bc871..4fa671e9570 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected @@ -1,4 +1,4 @@ -| Test.java:47:10:49:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:47:10:49:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:47:10:49:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:47:10:49:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | | Test.java:48:4:48:5 | f2 | known non-sink\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:47:10:49:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | | Test.java:54:4:54:4 | p | taint step\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | | Test.java:66:7:66:18 | this | exception\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:66:7:66:18 | super(...) | CallContext | file://java.lang:1:1:1:1 | java.lang | package | file://Exception:1:1:1:1 | Exception | type | file://true:1:1:1:1 | true | subtypes | file://Exception:1:1:1:1 | Exception | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected index 085ebbd2987..dcbabe2bc37 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected @@ -1,4 +1,4 @@ | Test.java:28:4:28:9 | source | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | | Test.java:29:4:29:9 | target | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | | Test.java:36:4:36:11 | openPath | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:62:3:62:20 | getInputStream(...) | remote\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:62:3:62:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:62:3:62:20 | getInputStream(...) | remote\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:62:3:62:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | From c4f5213d680d54c95fe62a83a507d16d3ba6c7eb Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Thu, 7 Sep 2023 15:48:51 +0200 Subject: [PATCH 274/788] Java: format --- .../src/AutomodelApplicationModeExtractPositiveExamples.ql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql index 9a0433ded42..5ff5a73af60 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql @@ -15,7 +15,8 @@ private import AutomodelJavaUtil from Endpoint endpoint, EndpointType endpointType, ApplicationModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, - DollarAtString signature, DollarAtString input, DollarAtString output, DollarAtString isVarargsArray + DollarAtString signature, DollarAtString input, DollarAtString output, + DollarAtString isVarargsArray where // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly // certain about in the prompt. From 4a01de13efd981f3d4c866eca55cbcf9ffde0979 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 7 Sep 2023 14:54:50 +0100 Subject: [PATCH 275/788] Ruby: avoid toString in query warning --- .../codeql/ruby/security/CodeInjectionCustomizations.qll | 7 ++++++- ruby/ql/src/queries/security/cwe-094/CodeInjection.ql | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll index a265e785e47..c0a5ecdfee1 100644 --- a/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll @@ -31,7 +31,12 @@ module CodeInjection { /** Flow states used to distinguish whether an attacker controls the entire string. */ class State extends TState { - string toString() { + string toString() { result = this.getStringRepresentation() } + + /** + * Gets a canonical string representation of this state. + */ + string getStringRepresentation() { this = TSubString() and result = "substring" or this = TFull() and result = "full" diff --git a/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql b/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql index 128060c0de8..79ae0d9c672 100644 --- a/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql +++ b/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql @@ -29,7 +29,7 @@ where otherSink) and otherSink.getNode() = sink.getNode() | - otherSink order by otherSink.getState().toString() + otherSink order by otherSink.getState().getStringRepresentation() ) select sink.getNode(), source, sink, "This code execution depends on a $@.", sourceNode, "user-provided value" From 947fa0de625c2996272042eb0241b150ad5bd511 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 7 Sep 2023 14:57:04 +0100 Subject: [PATCH 276/788] Ruby: fix qldoc warnings --- .../codeql/ruby/security/CodeInjectionCustomizations.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll index c0a5ecdfee1..f174210e1fd 100644 --- a/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll @@ -29,7 +29,7 @@ module CodeInjection { TFull() or TSubString() - /** Flow states used to distinguish whether an attacker controls the entire string. */ + /** A flow state used to distinguish whether an attacker controls the entire string. */ class State extends TState { string toString() { result = this.getStringRepresentation() } @@ -44,12 +44,12 @@ module CodeInjection { } /** - * Flow state used for normal tainted data, where an attacker might only control a substring. + * A flow state used for normal tainted data, where an attacker might only control a substring. */ class SubString extends State, TSubString { } /** - * Flow state used for data that is entirely controlled by the attacker. + * A flow state used for data that is entirely controlled by the attacker. */ class Full extends State, TFull { } } From 5fe942e642365fbeead7245182f4b79bde7b01aa Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 7 Sep 2023 15:56:44 +0000 Subject: [PATCH 277/788] Swift: flow through writeable keypaths --- .../dataflow/internal/DataFlowPrivate.qll | 114 ++++++++++++++++++ .../dataflow/dataflow/DataFlow.expected | 35 ++++++ .../dataflow/dataflow/LocalFlow.expected | 26 ++++ .../dataflow/dataflow/test.swift | 12 +- 4 files changed, 185 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index a84abfa2d7c..4c52e5156ea 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -57,6 +57,22 @@ private class KeyPathComponentNodeImpl extends TKeyPathComponentNode, NodeImpl { KeyPathComponent getComponent() { result = component } } +private class KeyPathComponentPostUpdateNode extends TKeyPathComponentPostUpdateNode, NodeImpl { + KeyPathComponent component; + + KeyPathComponentPostUpdateNode() { this = TKeyPathComponentPostUpdateNode(component) } + + override Location getLocationImpl() { result = component.getLocation() } + + override string toStringImpl() { result = "[post] " + component.toString() } + + override DataFlowCallable getEnclosingCallable() { + result.asSourceCallable() = component.getKeyPathExpr() + } + + KeyPathComponent getComponent() { result = component } +} + private class PatternNodeImpl extends PatternNode, NodeImpl { override Location getLocationImpl() { result = pattern.getLocation() } @@ -96,6 +112,9 @@ private module Cached { TKeyPathParameterNode(EntryNode entry) { entry.getScope() instanceof KeyPathExpr } or TKeyPathReturnNode(ExitNode exit) { exit.getScope() instanceof KeyPathExpr } or TKeyPathComponentNode(KeyPathComponent component) or + TKeyPathParameterPostUpdateNode(EntryNode entry) { entry.getScope() instanceof KeyPathExpr } or + TKeyPathReturnPostUpdateNode(ExitNode exit) { exit.getScope() instanceof KeyPathExpr } or + TKeyPathComponentPostUpdateNode(KeyPathComponent component) or TExprPostUpdateNode(CfgNode n) { // Obviously, the base of setters needs a post-update node n = any(PropertySetterCfgNode setter).getBase() @@ -105,6 +124,8 @@ private module Cached { or n = any(PropertyObserverCfgNode getter).getBase() or + n = any(KeyPathApplicationExprCfgNode expr).getBase() + or // Arguments that are `inout` expressions needs a post-update node, // as well as any class-like argument (since a field can be modified). // Finally, qualifiers and bases of member reference need post-update nodes to support reverse reads. @@ -227,6 +248,17 @@ private module Cached { nodeTo.(KeyPathComponentNodeImpl).getComponent() = nodeFrom.(KeyPathParameterNode).getComponent(0) or + nodeFrom.(KeyPathComponentPostUpdateNode).getComponent() = + nodeTo.(KeyPathParameterPostUpdateNode).getComponent(0) + or + // Flow to the result of a keypath assignment + // TODO: is there a cleaner way to do this? + exists(KeyPathApplicationExpr apply, AssignExpr assign | + apply = assign.getDest() and + nodeTo.asExpr() = apply and + nodeFrom.asExpr() = assign.getSource() + ) + or // flow through a flow summary (extension of `SummaryModelCsv`) FlowSummaryImpl::Private::Steps::summaryLocalStep(nodeFrom.(FlowSummaryNode).getSummaryNode(), nodeTo.(FlowSummaryNode).getSummaryNode(), true) @@ -383,6 +415,56 @@ class FlowSummaryNode extends NodeImpl, TFlowSummaryNode { override string toStringImpl() { result = this.getSummaryNode().toString() } } +class KeyPathParameterPostUpdateNode extends NodeImpl, ReturnNode, PostUpdateNodeImpl, + TKeyPathParameterPostUpdateNode +{ + private EntryNode entry; + + KeyPathParameterPostUpdateNode() { this = TKeyPathParameterPostUpdateNode(entry) } + + override KeyPathParameterNode getPreUpdateNode() { + result.getKeyPathExpr() = this.getKeyPathExpr() + } + + override Location getLocationImpl() { result = entry.getLocation() } + + override string toStringImpl() { result = "[post] " + entry.toString() } + + override DataFlowCallable getEnclosingCallable() { result.asSourceCallable() = entry.getScope() } + + KeyPathComponent getComponent(int i) { result = entry.getScope().(KeyPathExpr).getComponent(i) } + + KeyPathComponent getAComponent() { result = this.getComponent(_) } + + KeyPathExpr getKeyPathExpr() { result = entry.getScope() } + + override ReturnKind getKind() { result.(ParamReturnKind).getIndex() = -1 } +} + +class KeyPathReturnPostUpdateNode extends NodeImpl, ParameterNodeImpl, PostUpdateNodeImpl, + TKeyPathReturnPostUpdateNode +{ + private ExitNode exit; + + KeyPathReturnPostUpdateNode() { this = TKeyPathReturnPostUpdateNode(exit) } + + override KeyPathParameterNode getPreUpdateNode() { + result.getKeyPathExpr() = this.getKeyPathExpr() + } + + override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { + c.asSourceCallable() = this.getKeyPathExpr() and pos = TPositionalParameter(0) // TODO: new parameter type? + } + + override Location getLocationImpl() { result = exit.getLocation() } + + override string toStringImpl() { result = "[post] " + exit.toString() } + + override DataFlowCallable getEnclosingCallable() { result.asSourceCallable() = exit.getScope() } + + KeyPathExpr getKeyPathExpr() { result = exit.getScope() } +} + /** A data-flow node that represents a call argument. */ abstract class ArgumentNode extends Node { /** Holds if this argument occurs at the given position in the given call. */ @@ -476,6 +558,20 @@ private module ArgumentNodes { pos = TThisArgument() } } + + class KeyPathAssignmentArgumentNode extends ArgumentNode { + private KeyPathApplicationExprCfgNode keyPath; + + KeyPathAssignmentArgumentNode() { + keyPath = this.getCfgNode() and + exists(AssignExpr assign | assign.getDest() = keyPath.getNode().asAstNode()) + } + + override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { + call.asKeyPath() = keyPath and + pos = TPositionalArgument(0) // TODO: new parameter type? + } + } } import ArgumentNodes @@ -735,6 +831,24 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { c instanceof OptionalSomeContentSet ) or + // store through a component in a key-path expression chain + exists(KeyPathComponent component | + component = node2.(KeyPathComponentPostUpdateNode).getComponent() and + ( + c.isSingleton(any(Content::FieldContent ct | ct.getField() = component.getDeclRef())) + or + c.isSingleton(any(Content::ArrayContent ac)) and + component.isSubscript() + ) + | + // the previous node is either the next element in the chain + node1.(KeyPathComponentPostUpdateNode).getComponent() = component.getNextComponent() + or + // or the return node, if this is the last component in the chain + not exists(component.getNextComponent()) and + node1.(KeyPathReturnPostUpdateNode).getKeyPathExpr() = component.getKeyPathExpr() + ) + or FlowSummaryImpl::Private::Steps::summaryStoreStep(node1.(FlowSummaryNode).getSummaryNode(), c, node2.(FlowSummaryNode).getSummaryNode()) } diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index 29a61ed56f6..928936731ca 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -1,12 +1,14 @@ edges | file://:0:0:0:0 | KeyPathComponent | test.swift:663:13:663:29 | exit #keyPath(...) [some:0] | | file://:0:0:0:0 | self [a, x] | file://:0:0:0:0 | .a [x] | +| file://:0:0:0:0 | self [s, x] | file://:0:0:0:0 | .s [x] | | file://:0:0:0:0 | self [str] | file://:0:0:0:0 | .str | | file://:0:0:0:0 | self [v2, some:0] | file://:0:0:0:0 | .v2 [some:0] | | file://:0:0:0:0 | self [v2] | file://:0:0:0:0 | .v2 | | file://:0:0:0:0 | self [v3] | file://:0:0:0:0 | .v3 | | file://:0:0:0:0 | self [x, some:0] | file://:0:0:0:0 | .x [some:0] | | file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | +| file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v2] | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v3] | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [x] | @@ -299,6 +301,7 @@ edges | test.swift:599:24:599:32 | call to source3() | test.swift:599:13:599:33 | call to MyClass.init(s:) [str] | | test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | test.swift:585:9:585:9 | self [str] | | test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | test.swift:600:13:600:43 | .str | +| test.swift:615:7:615:7 | self [x] | file://:0:0:0:0 | self [x] | | test.swift:617:8:617:11 | x | test.swift:618:14:618:14 | x | | test.swift:618:5:618:5 | [post] self [x] | test.swift:617:3:619:3 | self[return] [x] | | test.swift:618:14:618:14 | x | test.swift:618:5:618:5 | [post] self [x] | @@ -314,6 +317,7 @@ edges | test.swift:627:38:627:38 | KeyPathComponent [x] | test.swift:627:36:627:38 | exit #keyPath(...) | | test.swift:628:13:628:13 | s [x] | test.swift:627:36:627:38 | enter #keyPath(...) [x] | | test.swift:628:13:628:13 | s [x] | test.swift:628:13:628:32 | \\...[...] | +| test.swift:632:7:632:7 | self [s, x] | file://:0:0:0:0 | self [s, x] | | test.swift:634:8:634:11 | s [x] | test.swift:635:14:635:14 | s [x] | | test.swift:635:5:635:5 | [post] self [s, x] | test.swift:634:3:636:3 | self[return] [s, x] | | test.swift:635:14:635:14 | s [x] | test.swift:635:5:635:5 | [post] self [s, x] | @@ -438,13 +442,26 @@ edges | test.swift:766:29:766:29 | KeyPathComponent [x] | test.swift:766:13:766:29 | exit #keyPath(...) | | test.swift:767:15:767:15 | s2 [s, some:0, x] | test.swift:766:13:766:29 | enter #keyPath(...) [s, some:0, x] | | test.swift:767:15:767:15 | s2 [s, some:0, x] | test.swift:767:15:767:28 | \\...[...] | +| test.swift:773:11:773:17 | [post] exit #keyPath(...) | test.swift:773:17:773:17 | [post] KeyPathComponent [x] | +| test.swift:773:15:773:15 | [post] KeyPathComponent [s, x] | test.swift:773:11:773:17 | [post] enter #keyPath(...) [s, x] | +| test.swift:773:17:773:17 | [post] KeyPathComponent [x] | test.swift:773:15:773:15 | [post] KeyPathComponent [s, x] | +| test.swift:774:3:774:3 | [post] s2 [s, x] | test.swift:775:13:775:13 | s2 [s, x] | +| test.swift:774:3:774:16 | \\...[...] | test.swift:773:11:773:17 | [post] exit #keyPath(...) | +| test.swift:774:3:774:16 | \\...[...] | test.swift:774:3:774:3 | [post] s2 [s, x] | +| test.swift:774:20:774:27 | call to source() | test.swift:774:3:774:16 | \\...[...] | +| test.swift:775:13:775:13 | s2 [s, x] | test.swift:632:7:632:7 | self [s, x] | +| test.swift:775:13:775:13 | s2 [s, x] | test.swift:775:13:775:16 | .s [x] | +| test.swift:775:13:775:16 | .s [x] | test.swift:615:7:615:7 | self [x] | +| test.swift:775:13:775:16 | .s [x] | test.swift:775:13:775:18 | .x | nodes | file://:0:0:0:0 | .a [x] | semmle.label | .a [x] | +| file://:0:0:0:0 | .s [x] | semmle.label | .s [x] | | file://:0:0:0:0 | .str | semmle.label | .str | | file://:0:0:0:0 | .v2 | semmle.label | .v2 | | file://:0:0:0:0 | .v2 [some:0] | semmle.label | .v2 [some:0] | | file://:0:0:0:0 | .v3 | semmle.label | .v3 | | file://:0:0:0:0 | .x | semmle.label | .x | +| file://:0:0:0:0 | .x | semmle.label | .x | | file://:0:0:0:0 | .x [some:0] | semmle.label | .x [some:0] | | file://:0:0:0:0 | KeyPathComponent | semmle.label | KeyPathComponent | | file://:0:0:0:0 | [post] self [v2, some:0] | semmle.label | [post] self [v2, some:0] | @@ -453,12 +470,14 @@ nodes | file://:0:0:0:0 | [post] self [x, some:0] | semmle.label | [post] self [x, some:0] | | file://:0:0:0:0 | [post] self [x] | semmle.label | [post] self [x] | | file://:0:0:0:0 | self [a, x] | semmle.label | self [a, x] | +| file://:0:0:0:0 | self [s, x] | semmle.label | self [s, x] | | file://:0:0:0:0 | self [str] | semmle.label | self [str] | | file://:0:0:0:0 | self [v2, some:0] | semmle.label | self [v2, some:0] | | file://:0:0:0:0 | self [v2] | semmle.label | self [v2] | | file://:0:0:0:0 | self [v3] | semmle.label | self [v3] | | file://:0:0:0:0 | self [x, some:0] | semmle.label | self [x, some:0] | | file://:0:0:0:0 | self [x] | semmle.label | self [x] | +| file://:0:0:0:0 | self [x] | semmle.label | self [x] | | file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | @@ -769,6 +788,7 @@ nodes | test.swift:599:24:599:32 | call to source3() | semmle.label | call to source3() | | test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | semmle.label | call to MyClass.init(contentsOfFile:) [str] | | test.swift:600:13:600:43 | .str | semmle.label | .str | +| test.swift:615:7:615:7 | self [x] | semmle.label | self [x] | | test.swift:617:3:619:3 | self[return] [x] | semmle.label | self[return] [x] | | test.swift:617:8:617:11 | x | semmle.label | x | | test.swift:618:5:618:5 | [post] self [x] | semmle.label | [post] self [x] | @@ -785,6 +805,7 @@ nodes | test.swift:627:38:627:38 | KeyPathComponent [x] | semmle.label | KeyPathComponent [x] | | test.swift:628:13:628:13 | s [x] | semmle.label | s [x] | | test.swift:628:13:628:32 | \\...[...] | semmle.label | \\...[...] | +| test.swift:632:7:632:7 | self [s, x] | semmle.label | self [s, x] | | test.swift:634:3:636:3 | self[return] [s, x] | semmle.label | self[return] [s, x] | | test.swift:634:8:634:11 | s [x] | semmle.label | s [x] | | test.swift:635:5:635:5 | [post] self [s, x] | semmle.label | [post] self [s, x] | @@ -915,6 +936,16 @@ nodes | test.swift:766:29:766:29 | KeyPathComponent [x] | semmle.label | KeyPathComponent [x] | | test.swift:767:15:767:15 | s2 [s, some:0, x] | semmle.label | s2 [s, some:0, x] | | test.swift:767:15:767:28 | \\...[...] | semmle.label | \\...[...] | +| test.swift:773:11:773:17 | [post] enter #keyPath(...) [s, x] | semmle.label | [post] enter #keyPath(...) [s, x] | +| test.swift:773:11:773:17 | [post] exit #keyPath(...) | semmle.label | [post] exit #keyPath(...) | +| test.swift:773:15:773:15 | [post] KeyPathComponent [s, x] | semmle.label | [post] KeyPathComponent [s, x] | +| test.swift:773:17:773:17 | [post] KeyPathComponent [x] | semmle.label | [post] KeyPathComponent [x] | +| test.swift:774:3:774:3 | [post] s2 [s, x] | semmle.label | [post] s2 [s, x] | +| test.swift:774:3:774:16 | \\...[...] | semmle.label | \\...[...] | +| test.swift:774:20:774:27 | call to source() | semmle.label | call to source() | +| test.swift:775:13:775:13 | s2 [s, x] | semmle.label | s2 [s, x] | +| test.swift:775:13:775:16 | .s [x] | semmle.label | .s [x] | +| test.swift:775:13:775:18 | .x | semmle.label | .x | subpaths | test.swift:75:22:75:22 | x | test.swift:65:16:65:28 | arg1 | test.swift:65:1:70:1 | arg2[return] | test.swift:75:32:75:32 | [post] y | | test.swift:114:19:114:19 | arg | test.swift:109:9:109:14 | arg | test.swift:110:12:110:12 | arg | test.swift:114:12:114:22 | call to ... | @@ -969,6 +1000,9 @@ subpaths | test.swift:764:18:764:25 | call to source() | test.swift:617:8:617:11 | x | test.swift:617:3:619:3 | self[return] [x] | test.swift:764:13:764:26 | call to S.init(x:) [x] | | test.swift:765:29:765:29 | s [some:0, x] | test.swift:655:8:655:12 | s [some:0, x] | test.swift:655:3:657:3 | self[return] [s, some:0, x] | test.swift:765:14:765:30 | call to S2_Optional.init(s:) [s, some:0, x] | | test.swift:767:15:767:15 | s2 [s, some:0, x] | test.swift:766:13:766:29 | enter #keyPath(...) [s, some:0, x] | test.swift:766:13:766:29 | exit #keyPath(...) | test.swift:767:15:767:28 | \\...[...] | +| test.swift:774:3:774:16 | \\...[...] | test.swift:773:11:773:17 | [post] exit #keyPath(...) | test.swift:773:11:773:17 | [post] enter #keyPath(...) [s, x] | test.swift:774:3:774:3 | [post] s2 [s, x] | +| test.swift:775:13:775:13 | s2 [s, x] | test.swift:632:7:632:7 | self [s, x] | file://:0:0:0:0 | .s [x] | test.swift:775:13:775:16 | .s [x] | +| test.swift:775:13:775:16 | .s [x] | test.swift:615:7:615:7 | self [x] | file://:0:0:0:0 | .x | test.swift:775:13:775:18 | .x | #select | test.swift:7:15:7:15 | t1 | test.swift:6:19:6:26 | call to source() | test.swift:7:15:7:15 | t1 | result | | test.swift:9:15:9:15 | t1 | test.swift:6:19:6:26 | call to source() | test.swift:9:15:9:15 | t1 | result | @@ -1070,3 +1104,4 @@ subpaths | test.swift:756:15:756:21 | ...! | test.swift:746:14:746:21 | call to source() | test.swift:756:15:756:21 | ...! | result | | test.swift:757:15:757:19 | .v3 | test.swift:747:14:747:21 | call to source() | test.swift:757:15:757:19 | .v3 | result | | test.swift:767:15:767:28 | \\...[...] | test.swift:764:18:764:25 | call to source() | test.swift:767:15:767:28 | \\...[...] | result | +| test.swift:775:13:775:18 | .x | test.swift:774:20:774:27 | call to source() | test.swift:775:13:775:18 | .x | result | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected index 0f16b590c26..fc82386dbe4 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected @@ -686,6 +686,9 @@ | test.swift:611:36:611:36 | [post] n | test.swift:611:35:611:36 | &... | | test.swift:611:36:611:36 | n | test.swift:611:35:611:36 | &... | | test.swift:615:7:615:7 | self | test.swift:615:7:615:7 | SSA def(self) | +| test.swift:615:7:615:7 | self | test.swift:615:7:615:7 | SSA def(self) | +| test.swift:615:7:615:7 | self | test.swift:615:7:615:7 | SSA def(self) | +| test.swift:615:7:615:7 | value | test.swift:615:7:615:7 | SSA def(value) | | test.swift:617:3:617:3 | SSA def(self) | test.swift:618:5:618:5 | self | | test.swift:617:3:617:3 | self | test.swift:617:3:617:3 | SSA def(self) | | test.swift:617:8:617:11 | SSA def(x) | test.swift:618:14:618:14 | x | @@ -699,13 +702,19 @@ | test.swift:624:7:624:7 | f | test.swift:624:7:624:7 | SSA def(f) | | test.swift:624:11:624:14 | #keyPath(...) | test.swift:624:7:624:7 | f | | test.swift:624:11:624:14 | enter #keyPath(...) | test.swift:624:14:624:14 | KeyPathComponent | +| test.swift:624:14:624:14 | [post] KeyPathComponent | test.swift:624:11:624:14 | [post] enter #keyPath(...) | +| test.swift:625:13:625:13 | [post] s | test.swift:628:13:628:13 | s | | test.swift:625:13:625:13 | s | test.swift:628:13:628:13 | s | | test.swift:627:7:627:7 | SSA def(inferred) | test.swift:628:24:628:24 | inferred | | test.swift:627:7:627:7 | inferred | test.swift:627:7:627:7 | SSA def(inferred) | | test.swift:627:7:627:32 | ... as ... | test.swift:627:7:627:7 | inferred | | test.swift:627:36:627:38 | #keyPath(...) | test.swift:627:7:627:32 | ... as ... | | test.swift:627:36:627:38 | enter #keyPath(...) | test.swift:627:38:627:38 | KeyPathComponent | +| test.swift:627:38:627:38 | [post] KeyPathComponent | test.swift:627:36:627:38 | [post] enter #keyPath(...) | | test.swift:632:7:632:7 | self | test.swift:632:7:632:7 | SSA def(self) | +| test.swift:632:7:632:7 | self | test.swift:632:7:632:7 | SSA def(self) | +| test.swift:632:7:632:7 | self | test.swift:632:7:632:7 | SSA def(self) | +| test.swift:632:7:632:7 | value | test.swift:632:7:632:7 | SSA def(value) | | test.swift:634:3:634:3 | SSA def(self) | test.swift:635:5:635:5 | self | | test.swift:634:3:634:3 | self | test.swift:634:3:634:3 | SSA def(self) | | test.swift:634:8:634:11 | SSA def(s) | test.swift:635:14:635:14 | s | @@ -722,6 +731,7 @@ | test.swift:642:7:642:7 | f | test.swift:642:7:642:7 | SSA def(f) | | test.swift:642:11:642:17 | #keyPath(...) | test.swift:642:7:642:7 | f | | test.swift:642:11:642:17 | enter #keyPath(...) | test.swift:642:15:642:15 | KeyPathComponent | +| test.swift:642:15:642:15 | [post] KeyPathComponent | test.swift:642:11:642:17 | [post] enter #keyPath(...) | | test.swift:647:9:647:9 | SSA def(array) | test.swift:649:15:649:15 | array | | test.swift:647:9:647:9 | array | test.swift:647:9:647:9 | SSA def(array) | | test.swift:647:17:647:26 | [...] | test.swift:647:9:647:9 | array | @@ -729,6 +739,7 @@ | test.swift:648:9:648:9 | f | test.swift:648:9:648:9 | SSA def(f) | | test.swift:648:13:648:22 | #keyPath(...) | test.swift:648:9:648:9 | f | | test.swift:648:13:648:22 | enter #keyPath(...) | test.swift:648:20:648:22 | KeyPathComponent | +| test.swift:648:20:648:22 | [post] KeyPathComponent | test.swift:648:13:648:22 | [post] enter #keyPath(...) | | test.swift:653:7:653:7 | self | test.swift:653:7:653:7 | SSA def(self) | | test.swift:655:3:655:3 | SSA def(self) | test.swift:656:5:656:5 | self | | test.swift:655:3:655:3 | self | test.swift:655:3:655:3 | SSA def(self) | @@ -746,6 +757,7 @@ | test.swift:663:9:663:9 | f | test.swift:663:9:663:9 | SSA def(f) | | test.swift:663:13:663:29 | #keyPath(...) | test.swift:663:9:663:9 | f | | test.swift:663:13:663:29 | enter #keyPath(...) | test.swift:663:26:663:26 | KeyPathComponent | +| test.swift:663:26:663:26 | [post] KeyPathComponent | test.swift:663:13:663:29 | [post] enter #keyPath(...) | | test.swift:664:15:664:28 | \\...[...] | test.swift:664:15:664:29 | ...! | | test.swift:668:9:668:9 | SSA def(x) | test.swift:672:9:672:9 | x | | test.swift:668:9:668:9 | x | test.swift:668:9:668:9 | SSA def(x) | @@ -924,3 +936,17 @@ | test.swift:766:9:766:9 | f | test.swift:766:9:766:9 | SSA def(f) | | test.swift:766:13:766:29 | #keyPath(...) | test.swift:766:9:766:9 | f | | test.swift:766:13:766:29 | enter #keyPath(...) | test.swift:766:26:766:26 | KeyPathComponent | +| test.swift:766:26:766:26 | [post] KeyPathComponent | test.swift:766:13:766:29 | [post] enter #keyPath(...) | +| test.swift:771:7:771:7 | SSA def(s2) | test.swift:772:13:772:13 | s2 | +| test.swift:771:7:771:7 | s2 | test.swift:771:7:771:7 | SSA def(s2) | +| test.swift:771:12:771:25 | call to S2.init(s:) | test.swift:771:7:771:7 | s2 | +| test.swift:772:13:772:13 | [post] s2 | test.swift:774:3:774:3 | s2 | +| test.swift:772:13:772:13 | s2 | test.swift:774:3:774:3 | s2 | +| test.swift:773:7:773:7 | SSA def(f) | test.swift:774:15:774:15 | f | +| test.swift:773:7:773:7 | f | test.swift:773:7:773:7 | SSA def(f) | +| test.swift:773:11:773:17 | #keyPath(...) | test.swift:773:7:773:7 | f | +| test.swift:773:11:773:17 | enter #keyPath(...) | test.swift:773:15:773:15 | KeyPathComponent | +| test.swift:773:15:773:15 | [post] KeyPathComponent | test.swift:773:11:773:17 | [post] enter #keyPath(...) | +| test.swift:774:3:774:3 | [post] s2 | test.swift:775:13:775:13 | s2 | +| test.swift:774:3:774:3 | s2 | test.swift:775:13:775:13 | s2 | +| test.swift:774:20:774:27 | call to source() | test.swift:774:3:774:16 | \\...[...] | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/test.swift b/swift/ql/test/library-tests/dataflow/dataflow/test.swift index 5634719e9f9..5df5191077a 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/test.swift +++ b/swift/ql/test/library-tests/dataflow/dataflow/test.swift @@ -612,7 +612,7 @@ func inoutConstructor() { } struct S { - let x: Int + var x: Int init(x: Int) { self.x = x @@ -629,7 +629,7 @@ func testKeyPath() { } struct S2 { - let s: S + var s: S init(s: S) { self.s = s @@ -766,3 +766,11 @@ func testOptionalKeyPathForce() { let f = \S2_Optional.s!.x sink(arg: s2[keyPath: f]) // $ flow=764 } + +func testNestedKeyPathWrite() { + var s2 = S2(s: S(x: 1)) + sink(arg: s2.s.x) + var f = \S2.s.x + s2[keyPath: f] = source() + sink(arg: s2.s.x) // $ flow=774 +} From 4f4491a8766d70f04df90cc2ace37d85a500c44d Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 7 Sep 2023 16:14:05 +0000 Subject: [PATCH 278/788] Swift: autoformat --- swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index df86bd47eac..4d4f76d533d 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -761,7 +761,7 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { c instanceof OptionalSomeContentSet ) or - // assignment to a dictionary value via subscript operator, with intermediate step + // assignment to a dictionary value via subscript operator, with intermediate step // `dict[key] = value` exists(AssignExpr assign, SubscriptExpr subscript | subscript = assign.getDest() and From 0fff540addf372744102674860c58658ecae5350 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 7 Sep 2023 16:14:23 +0000 Subject: [PATCH 279/788] Swift: update a test expectation for dictionary flow --- swift/ql/test/library-tests/dataflow/taint/libraries/int.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/int.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/int.swift index f6d2dd40f35..457b432dd44 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/int.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/int.swift @@ -161,7 +161,7 @@ func taintCollections(array: inout Array, contiguousArray: inout Contiguous dictionary[0] = source2() sink(arg: dictionary) - sink(arg: dictionary[0]!) // $ MISSING: tainted=162 + sink(arg: dictionary[0]!) // tainted=162 dictionary.withContiguousStorageIfAvailable({ buffer in sink(arg: buffer) From 603f2cd3b21de1f2d3f4668816658aa50f4e7461 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 7 Sep 2023 19:35:02 +0000 Subject: [PATCH 280/788] Swift: fix test expectation properly --- swift/ql/test/library-tests/dataflow/taint/libraries/int.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/int.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/int.swift index 457b432dd44..c4cd65dade5 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/int.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/int.swift @@ -161,7 +161,7 @@ func taintCollections(array: inout Array, contiguousArray: inout Contiguous dictionary[0] = source2() sink(arg: dictionary) - sink(arg: dictionary[0]!) // tainted=162 + sink(arg: dictionary[0]!) // $ tainted=162 dictionary.withContiguousStorageIfAvailable({ buffer in sink(arg: buffer) From 0d79158bb1e6479af3215abbe00f5c0d46e279fd Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 7 Sep 2023 20:15:12 +0000 Subject: [PATCH 281/788] Swift: remove TODOs after deciding not to do them --- .../ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 4c52e5156ea..d2b37fc2d09 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -453,7 +453,7 @@ class KeyPathReturnPostUpdateNode extends NodeImpl, ParameterNodeImpl, PostUpdat } override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { - c.asSourceCallable() = this.getKeyPathExpr() and pos = TPositionalParameter(0) // TODO: new parameter type? + c.asSourceCallable() = this.getKeyPathExpr() and pos = TPositionalParameter(0) } override Location getLocationImpl() { result = exit.getLocation() } @@ -569,7 +569,7 @@ private module ArgumentNodes { override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { call.asKeyPath() = keyPath and - pos = TPositionalArgument(0) // TODO: new parameter type? + pos = TPositionalArgument(0) } } } From 66a4f1bf7463fa007ba59358344cec0b8c88f9fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Sep 2023 04:04:05 +0000 Subject: [PATCH 282/788] Bump chrono from 0.4.29 to 0.4.30 in /ql Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.29 to 0.4.30. - [Release notes](https://github.com/chronotope/chrono/releases) - [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md) - [Commits](https://github.com/chronotope/chrono/compare/v0.4.29...v0.4.30) --- updated-dependencies: - dependency-name: chrono dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- ql/Cargo.lock | Bin 32919 -> 32461 bytes ql/buramu/Cargo.toml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ql/Cargo.lock b/ql/Cargo.lock index 84b910fc54a498b4962bb453a9bab582e0cfdfe1..e9b0aa0b57b5f336cbbe810f50fbb20259d88e7f 100644 GIT binary patch delta 118 zcmV-+0Ez#Xfdb9_0kFXh0W*^^3Q#{}WoBeFWj8oCGh||9WMW}9V>e?tF=a71Ib%0w zV`4cpHeq68G+{PjG+|>iF*!9fFfd|cW@0cgVl`xCI5(3qCKi)t4oZ`3F&LBUaVfL= Y4$(-H&{_twzgWl&lb~q{vt(v78Y9{%8~^|S delta 345 zcmZ9GyGjF56h$!zLeN+#C)D(1DnQOi1c{fyETo{(+D$ z7&{B`e+0ovN?|t(7OegCyYsqgz1IgVNmadfcO7yYC;)O))@imLNmxLeK$2jgG&!4c z5fe+pG51=!!~kTFy=Nh-x_wkVc5Zj)#dEA4;B5Wb`MEi6AZst;tSlzu?nO5fLl`Q( zEdpDzF1dgSK?d-~IBfzz5C|p_7~CQU(0O8Syfc_nN`{*w+HH!5qk?_bZ+Ek$D~qgO ztw!hTkNfZaUhzLGhN8ET2IbgI%cseFFrCFk5tp!ea|I3*YO>y0Z!KX=$&v~&p_V~` eCFuyg${{icC6&ZRXeQZ7k5IiWPu4Ht^7IeJ0%^_w diff --git a/ql/buramu/Cargo.toml b/ql/buramu/Cargo.toml index 91019a794fb..59edbf224a8 100644 --- a/ql/buramu/Cargo.toml +++ b/ql/buramu/Cargo.toml @@ -7,6 +7,6 @@ edition = "2018" [dependencies] lazy_static = "1.4.0" -chrono = "0.4.29" +chrono = "0.4.30" rayon = "1.7.0" regex = "1.9.5" From 4effc11fdb3f037930d7e38f818e2f3a0cf93ced Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Fri, 8 Sep 2023 09:16:56 +0200 Subject: [PATCH 283/788] Java: comments --- ...utomodelApplicationModeCharacteristics.qll | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 810a46045eb..7b6bebe9a51 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -46,16 +46,32 @@ newtype TApplicationModeEndpoint = * An endpoint is a node that is a candidate for modeling. */ abstract private class ApplicationModeEndpoint extends TApplicationModeEndpoint { + /** + * Gets the callable to be modeled that this endpoint represents. + */ abstract Callable getCallable(); abstract Call getCall(); + /** + * Gets the input (if any) for this endpoint, eg.: `Argument[0]`. + * + * For endpoints that are source candidates, this will be `none()`. + */ abstract string getMaDInput(); + /** + * Gets the output (if any) for this endpoint, eg.: `ReturnValue`. + * + * For endpoints that are sink candidates, this will be `none()`. + */ abstract string getMaDOutput(); abstract Top asTop(); + /** + * Converts the endpoint to a node that can be used in a data flow graph. + */ abstract DataFlow::Node asNode(); string getExtensibleType() { @@ -149,7 +165,8 @@ class ImplicitVarargsArray extends ApplicationModeEndpoint, TImplicitVarargsArra } /** - * An endpoint that represents a method call. + * An endpoint that represents a method call. The `ReturnValue` of a method call + * may be a source. */ class MethodCall extends ApplicationModeEndpoint, TMethodCall { Call call; From 9b8948bc2ec5e5fcb042f443d43c17c735c0703d Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 8 Sep 2023 10:47:52 +0200 Subject: [PATCH 284/788] C#: Remove test explorer recommendations (superseded by C# dev kit) --- csharp/.vscode/extensions.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/csharp/.vscode/extensions.json b/csharp/.vscode/extensions.json index f3f5506ca71..ac1e764ade7 100644 --- a/csharp/.vscode/extensions.json +++ b/csharp/.vscode/extensions.json @@ -1,9 +1,7 @@ { "recommendations": [ - "formulahendry.dotnet-test-explorer", "gaoshan0621.csharp-format-usings", "github.vscode-codeql", - "hbenl.vscode-test-explorer", "ms-dotnettools.csharp", "ms-dotnettools.csdevkit" ], From e208a7aed6774e004462042f9c269d51afa08fd8 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Fri, 8 Sep 2023 11:26:01 +0100 Subject: [PATCH 285/788] CPP: Add change notes for the non-returning function improvements. --- cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md | 5 +++++ cpp/ql/src/change-notes/2023-09-08-unreachble-edges.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md create mode 100644 cpp/ql/src/change-notes/2023-09-08-unreachble-edges.md diff --git a/cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md b/cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md new file mode 100644 index 00000000000..56dc5773b14 --- /dev/null +++ b/cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* Functions that do not return due to calling functions that don't return (e.g. `exit`) are now detected as + non returning in the IR and dataflow. \ No newline at end of file diff --git a/cpp/ql/src/change-notes/2023-09-08-unreachble-edges.md b/cpp/ql/src/change-notes/2023-09-08-unreachble-edges.md new file mode 100644 index 00000000000..1839120619b --- /dev/null +++ b/cpp/ql/src/change-notes/2023-09-08-unreachble-edges.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* The queries `cpp/double-free` and `cpp/use-after-free` find fewer false positives + in cases where a non-returning function is called. \ No newline at end of file From d91cd21204c9951ff5675ef063387fafbcab5a08 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Fri, 8 Sep 2023 13:37:54 +0200 Subject: [PATCH 286/788] Python: rename file --- .../CWE-943-NoSqlInjection/PoC/{__init.py__ => __init__.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/{__init.py__ => __init__.py} (100%) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/__init.py__ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/__init__.py similarity index 100% rename from python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/__init.py__ rename to python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/__init__.py From 704c7ee1047103f42b3e1c90cea7b0c29cc4c15d Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Fri, 8 Sep 2023 13:54:26 +0200 Subject: [PATCH 287/788] Java: Apply suggestions from code review Co-authored-by: Taus --- .../ql/automodel/src/AutomodelApplicationModeCharacteristics.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index 7b6bebe9a51..bc3d07cc637 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -544,7 +544,6 @@ private class CannotBeTaintedCharacteristic extends CharacteristicsImpl::LikelyN CannotBeTaintedCharacteristic() { this = "cannot be tainted" } override predicate appliesToEndpoint(Endpoint e) { - // XXX consider source candidate endpoints e.getExtensibleType() = "sinkModel" and not this.isKnownOutNodeForStep(e) } From bbedd72260a654deb715163d2acf6726d0609fec Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Fri, 8 Sep 2023 13:57:21 +0200 Subject: [PATCH 288/788] Java: Automodel App Mode: rename MethodCall to MethodReturnValue --- .../src/AutomodelApplicationModeCharacteristics.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index bc3d07cc637..b65d7ba89aa 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -36,7 +36,7 @@ newtype TApplicationModeEndpoint = not exists(int i | i < idx and call.getArgument(i).(Argument).isVararg()) ) } or - TMethodCall(Call call) { not call instanceof ConstructorCall } or + TMethodReturnValue(Call call) { not call instanceof ConstructorCall } or TOverriddenParameter(Parameter p, Method overriddenMethod) { not p.getCallable().callsConstructor(_) and p.getCallable().(Method).overrides(overriddenMethod) @@ -168,10 +168,10 @@ class ImplicitVarargsArray extends ApplicationModeEndpoint, TImplicitVarargsArra * An endpoint that represents a method call. The `ReturnValue` of a method call * may be a source. */ -class MethodCall extends ApplicationModeEndpoint, TMethodCall { +class MethodReturnValue extends ApplicationModeEndpoint, TMethodReturnValue { Call call; - MethodCall() { this = TMethodCall(call) } + MethodReturnValue() { this = TMethodReturnValue(call) } override Callable getCallable() { result = call.getCallee() } From ecbf2d8b1377974fb593139b8a380c46dcfaefdc Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 8 Sep 2023 14:14:06 +0200 Subject: [PATCH 289/788] C#: Exclude CIL arguments from `ArgumentNode` when they are compiled from source --- .../semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll | 3 +++ .../semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll index 0c57c2cea3b..b4d66a31d6b 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -415,6 +415,9 @@ class CilDataFlowCall extends DataFlowCall, TCilCall { CilDataFlowCall() { this = TCilCall(call) } + /** Gets the underlying CIL call. */ + CIL::Call getCilCall() { result = call } + override DataFlowCallable getARuntimeTarget() { // There is no dispatch library for CIL, so do not consider overrides for now result.getUnderlyingCallable() = getCallableForDataFlow(call.getTarget()) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index f4b5abf69c6..e2ee1a0f13b 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -1181,7 +1181,7 @@ private module ArgumentNodes { ExplicitArgumentNode() { this.asExpr() instanceof Argument or - this.asExpr() = any(CIL::Call call).getAnArgument() + this.asExpr() = any(CilDataFlowCall cc).getCilCall().getAnArgument() } override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { From 96911001388bc6e168210f353db4d211bfaa2564 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 8 Sep 2023 15:09:08 +0200 Subject: [PATCH 290/788] C#: Poor mans quoting of arguments on windows. --- csharp/tools/tracing-config.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/csharp/tools/tracing-config.lua b/csharp/tools/tracing-config.lua index 716a6f42cee..1b63cb9caeb 100644 --- a/csharp/tools/tracing-config.lua +++ b/csharp/tools/tracing-config.lua @@ -84,6 +84,10 @@ function RegisterExtractorPack(id) dotnetRunNeedsSeparator = false dotnetRunInjectionIndex = i end + -- if we encounter a whitespace, we explicitly need to quote the argument. + if OperatingSystem == 'windows' and arg:match('%s') then + argv[i] = '"' .. arg .. '"' + end end if match then local injections = { '-p:UseSharedCompilation=false', '-p:EmitCompilerGeneratedFiles=true' } From 11987d3ebf1c4774357a55fc8dc98a3a43ea7a55 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 6 Sep 2023 14:16:25 +0200 Subject: [PATCH 291/788] C#: Add integration test with quoted arguments. --- .../ql/integration-tests/all-platforms/dotnet_run/test.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py b/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py index 52a0be310cc..583d5cc2476 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py +++ b/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py @@ -53,3 +53,9 @@ check_diagnostics(test_db="test7-db") s = run_codeql_database_create_stdout(['dotnet clean', 'rm -rf test7-db', 'dotnet build', 'dotnet run --no-build hello world'], "test8-db") check_build_out("hello, world", s) check_diagnostics(test_db="test8-db") + + +# two arguments, no '--' (first argument quoted) +s = run_codeql_database_create_stdout(['dotnet clean', 'rm -rf test8-db', 'dotnet run "hello world part1" part2'], "test9-db") +check_build_out("hello world part1, part2", s) +check_diagnostics(test_db="test9-db") From 1082b1d4d159b3112944f4557b65a7fc27e790b5 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Fri, 8 Sep 2023 15:19:46 +0000 Subject: [PATCH 292/788] Swift: use PostUpdateNodeImpl for more postupdate nodes --- .../dataflow/internal/DataFlowPrivate.qll | 26 +++++-------------- .../dataflow/dataflow/DataFlow.expected | 1 + 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index d2b37fc2d09..7147ae29ed2 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -57,7 +57,7 @@ private class KeyPathComponentNodeImpl extends TKeyPathComponentNode, NodeImpl { KeyPathComponent getComponent() { result = component } } -private class KeyPathComponentPostUpdateNode extends TKeyPathComponentPostUpdateNode, NodeImpl { +private class KeyPathComponentPostUpdateNode extends TKeyPathComponentPostUpdateNode, NodeImpl, PostUpdateNodeImpl { KeyPathComponent component; KeyPathComponentPostUpdateNode() { this = TKeyPathComponentPostUpdateNode(component) } @@ -70,6 +70,10 @@ private class KeyPathComponentPostUpdateNode extends TKeyPathComponentPostUpdate result.asSourceCallable() = component.getKeyPathExpr() } + override KeyPathComponentNodeImpl getPreUpdateNode() { + result.getComponent() = this.getComponent() + } + KeyPathComponent getComponent() { result = component } } @@ -448,7 +452,7 @@ class KeyPathReturnPostUpdateNode extends NodeImpl, ParameterNodeImpl, PostUpdat KeyPathReturnPostUpdateNode() { this = TKeyPathReturnPostUpdateNode(exit) } - override KeyPathParameterNode getPreUpdateNode() { + override KeyPathReturnNodeImpl getPreUpdateNode() { result.getKeyPathExpr() = this.getKeyPathExpr() } @@ -831,24 +835,6 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { c instanceof OptionalSomeContentSet ) or - // store through a component in a key-path expression chain - exists(KeyPathComponent component | - component = node2.(KeyPathComponentPostUpdateNode).getComponent() and - ( - c.isSingleton(any(Content::FieldContent ct | ct.getField() = component.getDeclRef())) - or - c.isSingleton(any(Content::ArrayContent ac)) and - component.isSubscript() - ) - | - // the previous node is either the next element in the chain - node1.(KeyPathComponentPostUpdateNode).getComponent() = component.getNextComponent() - or - // or the return node, if this is the last component in the chain - not exists(component.getNextComponent()) and - node1.(KeyPathReturnPostUpdateNode).getKeyPathExpr() = component.getKeyPathExpr() - ) - or FlowSummaryImpl::Private::Steps::summaryStoreStep(node1.(FlowSummaryNode).getSummaryNode(), c, node2.(FlowSummaryNode).getSummaryNode()) } diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index 928936731ca..2aac26e9536 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -1001,6 +1001,7 @@ subpaths | test.swift:765:29:765:29 | s [some:0, x] | test.swift:655:8:655:12 | s [some:0, x] | test.swift:655:3:657:3 | self[return] [s, some:0, x] | test.swift:765:14:765:30 | call to S2_Optional.init(s:) [s, some:0, x] | | test.swift:767:15:767:15 | s2 [s, some:0, x] | test.swift:766:13:766:29 | enter #keyPath(...) [s, some:0, x] | test.swift:766:13:766:29 | exit #keyPath(...) | test.swift:767:15:767:28 | \\...[...] | | test.swift:774:3:774:16 | \\...[...] | test.swift:773:11:773:17 | [post] exit #keyPath(...) | test.swift:773:11:773:17 | [post] enter #keyPath(...) [s, x] | test.swift:774:3:774:3 | [post] s2 [s, x] | +| test.swift:774:3:774:16 | \\...[...] | test.swift:773:11:773:17 | [post] exit #keyPath(...) | test.swift:773:15:773:15 | [post] KeyPathComponent [s, x] | test.swift:774:3:774:3 | [post] s2 [s, x] | | test.swift:775:13:775:13 | s2 [s, x] | test.swift:632:7:632:7 | self [s, x] | file://:0:0:0:0 | .s [x] | test.swift:775:13:775:16 | .s [x] | | test.swift:775:13:775:16 | .s [x] | test.swift:615:7:615:7 | self [x] | file://:0:0:0:0 | .x | test.swift:775:13:775:18 | .x | #select From 5fe44b65b7d48ec374d0dc3c3dc04d37d9a00552 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Fri, 8 Sep 2023 16:55:06 +0100 Subject: [PATCH 293/788] CPP: Avoid CP with edgekind in non-returning analysis --- .../implementation/raw/internal/reachability/ReachableBlock.qll | 2 +- .../unaliased_ssa/internal/reachability/ReachableBlock.qll | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlock.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlock.qll index 954ff26afcc..bd7a1f8da2b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlock.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/reachability/ReachableBlock.qll @@ -11,7 +11,7 @@ predicate isInfeasibleInstructionSuccessor(Instruction instr, EdgeKind kind) { instr.getSuccessor(kind) instanceof UnreachedInstruction and kind instanceof GotoEdge or - isCallToNonReturningFunction(instr) + isCallToNonReturningFunction(instr) and exists(instr.getSuccessor(kind)) } /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlock.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlock.qll index 954ff26afcc..bd7a1f8da2b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlock.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/ReachableBlock.qll @@ -11,7 +11,7 @@ predicate isInfeasibleInstructionSuccessor(Instruction instr, EdgeKind kind) { instr.getSuccessor(kind) instanceof UnreachedInstruction and kind instanceof GotoEdge or - isCallToNonReturningFunction(instr) + isCallToNonReturningFunction(instr) and exists(instr.getSuccessor(kind)) } /** From 589293948856d1c33ade842b900c7a14479fda9e Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Fri, 8 Sep 2023 17:47:04 +0100 Subject: [PATCH 294/788] CPP:Fix chnage note spelling --- cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md b/cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md index 56dc5773b14..6b2fff3d176 100644 --- a/cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md +++ b/cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md @@ -2,4 +2,4 @@ category: minorAnalysis --- * Functions that do not return due to calling functions that don't return (e.g. `exit`) are now detected as - non returning in the IR and dataflow. \ No newline at end of file + non-returning in the IR and dataflow. \ No newline at end of file From 93140cb061034f6778fa8ce5d7a589a4e3fed5e7 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Mon, 11 Sep 2023 11:17:08 +0200 Subject: [PATCH 295/788] Python: import all frameworks Are there any frameworks we do _not_ want here? --- .../python/security/dataflow/SqlInjectionCustomizations.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll index 61172dc192a..e10e404450a 100644 --- a/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll @@ -9,7 +9,7 @@ private import semmle.python.dataflow.new.DataFlow private import semmle.python.Concepts private import semmle.python.dataflow.new.RemoteFlowSources private import semmle.python.dataflow.new.BarrierGuards -private import semmle.python.frameworks.SqlAlchemy +private import semmle.python.Frameworks /** * Provides default sources, sinks and sanitizers for detecting From 8475464fbe43edbab1b5b763630dd9e3d34e640f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 11 Sep 2023 09:58:25 +0200 Subject: [PATCH 296/788] C#: Cleanup hotfix version of quoting. --- csharp/ql/integration-tests/all-platforms/dotnet_run/test.py | 1 - csharp/tools/tracing-config.lua | 4 ---- 2 files changed, 5 deletions(-) diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py b/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py index 583d5cc2476..65e8309dac0 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py +++ b/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py @@ -54,7 +54,6 @@ s = run_codeql_database_create_stdout(['dotnet clean', 'rm -rf test7-db', 'dotne check_build_out("hello, world", s) check_diagnostics(test_db="test8-db") - # two arguments, no '--' (first argument quoted) s = run_codeql_database_create_stdout(['dotnet clean', 'rm -rf test8-db', 'dotnet run "hello world part1" part2'], "test9-db") check_build_out("hello world part1, part2", s) diff --git a/csharp/tools/tracing-config.lua b/csharp/tools/tracing-config.lua index 1b63cb9caeb..716a6f42cee 100644 --- a/csharp/tools/tracing-config.lua +++ b/csharp/tools/tracing-config.lua @@ -84,10 +84,6 @@ function RegisterExtractorPack(id) dotnetRunNeedsSeparator = false dotnetRunInjectionIndex = i end - -- if we encounter a whitespace, we explicitly need to quote the argument. - if OperatingSystem == 'windows' and arg:match('%s') then - argv[i] = '"' .. arg .. '"' - end end if match then local injections = { '-p:UseSharedCompilation=false', '-p:EmitCompilerGeneratedFiles=true' } From d4a1c297aa8549315f50414bef1600ca39735c2f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 6 Sep 2023 11:35:45 +0200 Subject: [PATCH 297/788] C#: Quote arguments containing whitespaces on windows in the tracer. --- csharp/tools/tracing-config.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/csharp/tools/tracing-config.lua b/csharp/tools/tracing-config.lua index 716a6f42cee..c2534aed559 100644 --- a/csharp/tools/tracing-config.lua +++ b/csharp/tools/tracing-config.lua @@ -64,7 +64,7 @@ function RegisterExtractorPack(id) -- for `dotnet test`, we should not append `-p:UseSharedCompilation=false` to the command line -- if an `exe` or `dll` is passed as an argument as the call is forwarded to vstest. - if testMatch and (arg:match('%.exe$') or arg:match('%.dll')) then + if testMatch and (arg:match('%.exe$') or arg:match('%.dll')) then match = false break end @@ -110,7 +110,7 @@ function RegisterExtractorPack(id) invocation = { path = AbsolutifyExtractorPath(id, compilerPath), arguments = { - commandLineString = table.concat(argv, " ") + commandLineString = ArgvToCommandLineString(argv) } } } @@ -174,7 +174,7 @@ function RegisterExtractorPack(id) seenCompilerCall = true end if seenCompilerCall then - table.insert(extractorArgs, '"' .. arg .. '"') + table.insert(extractorArgs, arg) end end @@ -184,7 +184,7 @@ function RegisterExtractorPack(id) invocation = { path = AbsolutifyExtractorPath(id, extractor), arguments = { - commandLineString = table.concat(extractorArgs, " ") + commandLineString = ArgvToCommandLineString(extractorArgs) } } } From d13f4210eb2e704d328d8d28e79f457ee4a811d8 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 11 Sep 2023 10:51:35 +0100 Subject: [PATCH 298/788] Fix space handling in Golang configure-baseline scripts --- go/codeql-tools/configure-baseline.cmd | 4 ++-- go/codeql-tools/configure-baseline.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go/codeql-tools/configure-baseline.cmd b/go/codeql-tools/configure-baseline.cmd index 7812c14a102..285c3d66829 100644 --- a/go/codeql-tools/configure-baseline.cmd +++ b/go/codeql-tools/configure-baseline.cmd @@ -1,6 +1,6 @@ @echo off if exist vendor\modules.txt ( - type %CODEQL_EXTRACTOR_GO_ROOT%\tools\baseline-config-vendor.json + type "%CODEQL_EXTRACTOR_GO_ROOT%\tools\baseline-config-vendor.json" ) else ( - type %CODEQL_EXTRACTOR_GO_ROOT%\tools\baseline-config-empty.json + type "%CODEQL_EXTRACTOR_GO_ROOT%\tools\baseline-config-empty.json" ) diff --git a/go/codeql-tools/configure-baseline.sh b/go/codeql-tools/configure-baseline.sh index 4883045f342..f426773c3ba 100755 --- a/go/codeql-tools/configure-baseline.sh +++ b/go/codeql-tools/configure-baseline.sh @@ -1,7 +1,7 @@ #!/bin/sh if [ -f vendor/modules.txt ]; then - cat $CODEQL_EXTRACTOR_GO_ROOT/tools/baseline-config-vendor.json + cat "$CODEQL_EXTRACTOR_GO_ROOT/tools/baseline-config-vendor.json" else - cat $CODEQL_EXTRACTOR_GO_ROOT/tools/baseline-config-empty.json + cat "$CODEQL_EXTRACTOR_GO_ROOT/tools/baseline-config-empty.json" fi From 6bfaa90fe48fedc3d40fd9a1a05c7f2d4b2655cf Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 31 Aug 2023 13:30:24 +0200 Subject: [PATCH 299/788] C#: Avoid explicitly restoring the projects in the restored solution files. --- .../DependencyManager.cs | 36 +++++++---- .../DotNet.cs | 62 +++++++++++++++---- .../IDotNet.cs | 3 +- .../Semmle.Extraction.Tests/FileContent.cs | 1 - .../Semmle.Extraction.Tests/Runtime.cs | 8 ++- 5 files changed, 82 insertions(+), 28 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 6644e003872..8f2572871f4 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -103,8 +103,9 @@ namespace Semmle.Extraction.CSharp.DependencyFetching progressMonitor.MissingNuGet(); } - Restore(solutions); - Restore(allProjects); + var restoredProjects = RestoreSolutions(solutions); + var projects = allProjects.Except(restoredProjects); + RestoreProjects(projects); DownloadMissingPackages(allFiles); } @@ -351,16 +352,26 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } - private bool Restore(string target, string? pathToNugetConfig = null) => - dotnet.RestoreToDirectory(target, packageDirectory.DirInfo.FullName, pathToNugetConfig); + private bool RestoreProject(string project, string? pathToNugetConfig = null) => + dotnet.RestoreProjectToDirectory(project, packageDirectory.DirInfo.FullName, pathToNugetConfig); - private void Restore(IEnumerable targets, string? pathToNugetConfig = null) - { - foreach (var target in targets) - { - Restore(target, pathToNugetConfig); - } - } + private bool RestoreSolution(string solution, out IList projects) => + dotnet.RestoreSolutionToDirectory(solution, packageDirectory.DirInfo.FullName, out projects); + + /// + /// Executes `dotnet restore` on all solution files in solutions. + /// Returns a list of projects that are up to date with respect to restore. + /// + /// A list of paths to solution files. + private IEnumerable RestoreSolutions(IEnumerable solutions) => + solutions.SelectMany(solution => + { + RestoreSolution(solution, out var restoredProjects); + return restoredProjects; + }); + + private void RestoreProjects(IEnumerable projects) => + Parallel.ForEach(projects, new ParallelOptions { MaxDegreeOfParallelism = options.Threads }, project => RestoreProject(project)); private void DownloadMissingPackages(List allFiles) { @@ -401,10 +412,9 @@ namespace Semmle.Extraction.CSharp.DependencyFetching continue; } - success = Restore(tempDir.DirInfo.FullName, nugetConfig); + success = RestoreProject(tempDir.DirInfo.FullName, nugetConfig); // TODO: the restore might fail, we could retry with a prerelease (*-* instead of *) version of the package. - if (!success) { progressMonitor.FailedToRestoreNugetPackage(package); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs index 35c541a195f..4adf7fa1c5d 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; +using System.Linq; +using System.Text.RegularExpressions; using Semmle.Util; namespace Semmle.Extraction.CSharp.DependencyFetching @@ -9,7 +11,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// /// Utilities to run the "dotnet" command. /// - internal class DotNet : IDotNet + internal partial class DotNet : IDotNet { private readonly ProgressMonitor progressMonitor; private readonly string dotnet; @@ -41,7 +43,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private bool RunCommand(string args) { progressMonitor.RunningProcess($"{dotnet} {args}"); - using var proc = Process.Start(this.MakeDotnetStartInfo(args, redirectStandardOutput: false)); + using var proc = Process.Start(MakeDotnetStartInfo(args, redirectStandardOutput: false)); proc?.WaitForExit(); var exitCode = proc?.ExitCode ?? -1; if (exitCode != 0) @@ -52,14 +54,51 @@ namespace Semmle.Extraction.CSharp.DependencyFetching return true; } - public bool RestoreToDirectory(string projectOrSolutionFile, string packageDirectory, string? pathToNugetConfig = null) + private bool RunCommand(string args, out IList output) { - var args = $"restore --no-dependencies \"{projectOrSolutionFile}\" --packages \"{packageDirectory}\" /p:DisableImplicitNuGetFallbackFolder=true"; + progressMonitor.RunningProcess($"{dotnet} {args}"); + var pi = MakeDotnetStartInfo(args, redirectStandardOutput: true); + var exitCode = pi.ReadOutput(out output); + if (exitCode != 0) + { + progressMonitor.CommandFailed(dotnet, args, exitCode); + return false; + } + return true; + } + + private static string GetRestoreArgs(string projectOrSolutionFile, string packageDirectory) => + $"restore --no-dependencies \"{projectOrSolutionFile}\" --packages \"{packageDirectory}\" /p:DisableImplicitNuGetFallbackFolder=true"; + + public bool RestoreProjectToDirectory(string projectFile, string packageDirectory, string? pathToNugetConfig = null) + { + var args = GetRestoreArgs(projectFile, packageDirectory); if (pathToNugetConfig != null) + { args += $" --configfile \"{pathToNugetConfig}\""; + } return RunCommand(args); } + public bool RestoreSolutionToDirectory(string solutionFile, string packageDirectory, out IList projects) + { + var args = GetRestoreArgs(solutionFile, packageDirectory); + args += " --verbosity normal"; + if (RunCommand(args, out var output)) + { + var regex = RestoreProjectRegex(); + projects = output + .Select(line => regex.Match(line)) + .Where(match => match.Success) + .Select(match => match.Groups[1].Value) + .ToList(); + return true; + } + + projects = new List(); + return false; + } + public bool New(string folder) { var args = $"new console --no-restore --output \"{folder}\""; @@ -78,16 +117,12 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private IList GetListed(string args, string artifact) { - progressMonitor.RunningProcess($"{dotnet} {args}"); - var pi = this.MakeDotnetStartInfo(args, redirectStandardOutput: true); - var exitCode = pi.ReadOutput(out var artifacts); - if (exitCode != 0) + if (RunCommand(args, out var artifacts)) { - progressMonitor.CommandFailed(dotnet, args, exitCode); - return new List(); + progressMonitor.LogInfo($"Found {artifact}s: {string.Join("\n", artifacts)}"); + return artifacts; } - progressMonitor.LogInfo($"Found {artifact}s: {string.Join("\n", artifacts)}"); - return artifacts; + return new List(); } public bool Exec(string execArgs) @@ -95,5 +130,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching var args = $"exec {execArgs}"; return RunCommand(args); } + + [GeneratedRegex("Restored\\s+(.+\\.csproj)", RegexOptions.Compiled)] + private static partial Regex RestoreProjectRegex(); } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs index daee32b6cc4..9a3f8b5ec64 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs @@ -4,7 +4,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { internal interface IDotNet { - bool RestoreToDirectory(string project, string directory, string? pathToNugetConfig = null); + bool RestoreProjectToDirectory(string project, string directory, string? pathToNugetConfig = null); + bool RestoreSolutionToDirectory(string solution, string directory, out IList projects); bool New(string folder); bool AddPackage(string folder, string package); IList GetListedRuntimes(); diff --git a/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs b/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs index 131096769e1..00a7238103e 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs @@ -1,6 +1,5 @@ using Xunit; using System.Collections.Generic; -using System.Linq; using Semmle.Util.Logging; using Semmle.Extraction.CSharp.DependencyFetching; diff --git a/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs b/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs index 78e2270a883..75b3f98b688 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs @@ -18,7 +18,13 @@ namespace Semmle.Extraction.Tests public bool New(string folder) => true; - public bool RestoreToDirectory(string project, string directory, string? pathToNugetConfig = null) => true; + public bool RestoreProjectToDirectory(string project, string directory, string? pathToNugetConfig = null) => true; + + public bool RestoreSolutionToDirectory(string solution, string directory, out IList projects) + { + projects = new List(); + return true; + } public IList GetListedRuntimes() => runtimes; From 154a36934d87a21e1cc0932960bf9d15fb694fa7 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Mon, 11 Sep 2023 14:49:03 +0200 Subject: [PATCH 300/788] Python: Add test for function --- .../CWE-943-NoSqlInjection/PoC/server.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py index f2b4a4f0a43..a94583d8177 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py @@ -46,6 +46,32 @@ def by_where(): post = posts.find_one({'$where': 'this.author === "'+author+'"'}) # $ result=BAD return show_post(post, author) + +@app.route('/byFunction', methods=['GET']) +def by_function(): + author = request.args['author'] + search = { + "body": 'function(author) { return(author === "'+author+'") }', + "args": [ "$author" ], + "lang": "js" + } + # Use `" | "a" === "a` as author + # making the query `this.author === "" | "a" === "a"` + # Found by http://127.0.0.1:5000/byFunction?author=%22%20|%20%22a%22%20===%20%22a + post = posts.find_one({'$expr': {'$function': search}}) # $ MISING: result=BAD + return show_post(post, author) + +@app.route('/byFunctionArg', methods=['GET']) +def by_function_arg(): + author = request.args['author'] + search = { + "body": 'function(author, target) { return(author === target) }', + "args": [ "$author", author ], + "lang": "js" + } + post = posts.find_one({'$expr': {'$function': search}}) # $ result=OK + return show_post(post, author) + @app.route('/', methods=['GET']) def show_routes(): links = [] From 7d05446483849c584e8f632e5526974f76722a47 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 11 Sep 2023 14:11:11 +0100 Subject: [PATCH 301/788] Swift: Formatting. --- .../security/CleartextStoragePreferencesExtensions.qll | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll index b3306dabc9f..8527a8da7ed 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll @@ -33,7 +33,9 @@ class CleartextStoragePreferencesAdditionalFlowStep extends Unit { abstract predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo); } -/** The `DataFlow::Node` of an expression that gets written to the user defaults database */ +/** + * The `DataFlow::Node` of an expression that gets written to the user defaults database. + */ private class UserDefaultsStore extends CleartextStoragePreferencesSink { UserDefaultsStore() { exists(CallExpr call | @@ -45,7 +47,9 @@ private class UserDefaultsStore extends CleartextStoragePreferencesSink { override string getStoreName() { result = "the user defaults database" } } -/** The `DataFlow::Node` of an expression that gets written to the iCloud-backed NSUbiquitousKeyValueStore */ +/** + * The `DataFlow::Node` of an expression that gets written to the iCloud-backed `NSUbiquitousKeyValueStore`. + */ private class NSUbiquitousKeyValueStore extends CleartextStoragePreferencesSink { NSUbiquitousKeyValueStore() { exists(CallExpr call | From d9f63e1ed3ee01a580fa19fd03bb2590daeb3ccb Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Mon, 11 Sep 2023 15:54:00 +0200 Subject: [PATCH 302/788] Python: Split modelling of query operators `$where` and `$function` behave quite differently. --- .../ql/lib/semmle/python/frameworks/NoSQL.qll | 31 +++++++++++++++---- .../CWE-943-NoSqlInjection/PoC/server.py | 9 +++--- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/NoSQL.qll b/python/ql/lib/semmle/python/frameworks/NoSQL.qll index ba17d593a60..d7a0848ae9c 100644 --- a/python/ql/lib/semmle/python/frameworks/NoSQL.qll +++ b/python/ql/lib/semmle/python/frameworks/NoSQL.qll @@ -99,9 +99,6 @@ private module NoSql { ] } - /** Gets the name of a mongo query operator that will interpret JavaScript. */ - private string mongoQueryOperator() { result in ["$where", "$function"] } - /** * Gets a reference to a `Mongo` collection method call * @@ -125,12 +122,34 @@ private module NoSql { override predicate vulnerableToStrings() { none() } } - private class MongoCollectionQueryOperator extends API::CallNode, NoSqlQuery::Range { + /** The `$where` query operator executes a string as JavaScript. */ + private class WhereQueryOperator extends API::CallNode, NoSqlQuery::Range { DataFlow::Node query; - MongoCollectionQueryOperator() { + WhereQueryOperator() { this = mongoCollection().getMember(mongoCollectionMethodName()).getACall() and - query = this.getParameter(0).getSubscript(mongoQueryOperator()).asSink() + query = this.getParameter(0).getSubscript("$where").asSink() + } + + override DataFlow::Node getQuery() { result = query } + + override predicate interpretsDict() { none() } + + override predicate vulnerableToStrings() { any() } + } + + /** The `$function` query operator executes its `body` string as JavaScript. */ + private class FunctionQueryOperator extends API::CallNode, NoSqlQuery::Range { + DataFlow::Node query; + + FunctionQueryOperator() { + this = mongoCollection().getMember(mongoCollectionMethodName()).getACall() and + query = + this.getParameter(0) + .getASubscript*() + .getSubscript("$function") + .getSubscript("body") + .asSink() } override DataFlow::Node getQuery() { result = query } diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py index a94583d8177..6a0099a4f5d 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py @@ -46,30 +46,29 @@ def by_where(): post = posts.find_one({'$where': 'this.author === "'+author+'"'}) # $ result=BAD return show_post(post, author) - @app.route('/byFunction', methods=['GET']) def by_function(): author = request.args['author'] search = { - "body": 'function(author) { return(author === "'+author+'") }', + "body": 'function(author) { return(author === "'+author+'") }', # $ result=BAD "args": [ "$author" ], "lang": "js" } # Use `" | "a" === "a` as author # making the query `this.author === "" | "a" === "a"` # Found by http://127.0.0.1:5000/byFunction?author=%22%20|%20%22a%22%20===%20%22a - post = posts.find_one({'$expr': {'$function': search}}) # $ MISING: result=BAD + post = posts.find_one({'$expr': {'$function': search}}) # $ result=BAD return show_post(post, author) @app.route('/byFunctionArg', methods=['GET']) def by_function_arg(): author = request.args['author'] search = { - "body": 'function(author, target) { return(author === target) }', + "body": 'function(author, target) { return(author === target) }', # $ result=OK "args": [ "$author", author ], "lang": "js" } - post = posts.find_one({'$expr': {'$function': search}}) # $ result=OK + post = posts.find_one({'$expr': {'$function': search}}) # $ SPURIOUS: result=BAD return show_post(post, author) @app.route('/', methods=['GET']) From e038f606407d5b76587e48d99ce7c61a76dba64f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 11 Sep 2023 14:21:42 +0100 Subject: [PATCH 303/788] Swift: Convert some sinks to CSV. --- .../CleartextTransmissionExtensions.qll | 45 ++++++------------- 1 file changed, 13 insertions(+), 32 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll index a9dedff2f6c..52aa062f0cb 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll @@ -30,38 +30,6 @@ class CleartextTransmissionAdditionalFlowStep extends Unit { abstract predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo); } -/** - * An `Expr` that is transmitted with `NWConnection.send`. - */ -private class NWConnectionSendSink extends CleartextTransmissionSink { - NWConnectionSendSink() { - // `content` arg to `NWConnection.send` is a sink - exists(CallExpr call | - call.getStaticTarget() - .(Method) - .hasQualifiedName("NWConnection", "send(content:contentContext:isComplete:completion:)") and - call.getArgument(0).getExpr() = this.asExpr() - ) - } -} - -/** - * An `Expr` that is used to form a `URL`. Such expressions are very likely to - * be transmitted over a network, because that's what URLs are for. - */ -private class UrlSink extends CleartextTransmissionSink { - UrlSink() { - // `string` arg in `URL.init` is a sink - // (we assume here that the URL goes on to be used in a network operation) - exists(CallExpr call | - call.getStaticTarget() - .(Method) - .hasQualifiedName("URL", ["init(string:)", "init(string:relativeTo:)"]) and - call.getArgument(0).getExpr() = this.asExpr() - ) - } -} - /** * An `Expr` that transmitted through the Alamofire library. */ @@ -98,3 +66,16 @@ private class CleartextTransmissionDefaultBarrier extends CleartextTransmissionB private class DefaultCleartextTransmissionSink extends CleartextTransmissionSink { DefaultCleartextTransmissionSink() { sinkNode(this, "transmission") } } + +private class TransmissionSinks extends SinkModelCsv { + override predicate row(string row) { + row = + [ + ";NWConnection;true;send(content:contentContext:isComplete:completion:);;;Argument[0];transmission", + // an `Expr` that is used to form a `URL` is very likely to be transmitted over a network, because + // that's what URLs are for. + ";URL;true;init(string:);;;Argument[0];transmission", + ";URL;true;init(string:relativeTo:);;;Argument[0];transmission", + ] + } +} From a063d7d5104c12f785532cdc9b6358cb87a84777 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Mon, 11 Sep 2023 16:33:20 +0200 Subject: [PATCH 304/788] Python: sinks -> decodings Query operators that interpret JavaScript are no longer considered sinks. Instead they are considered decodings and the output is the tainted dictionary. The state changes to `DictInput` to reflect that the user now controls a dangerous dictionary. This fixes the spurious result and moves the error reporting to a more logical place. --- .../ql/lib/semmle/python/frameworks/NoSQL.qll | 43 +++++++++++-------- .../dataflow/NoSQLInjectionCustomizations.qll | 2 +- .../NoSqlInjection.expected | 20 ++++++--- .../CWE-943-NoSqlInjection/PoC/server.py | 6 +-- 4 files changed, 44 insertions(+), 27 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/NoSQL.qll b/python/ql/lib/semmle/python/frameworks/NoSQL.qll index d7a0848ae9c..f122f4b2000 100644 --- a/python/ql/lib/semmle/python/frameworks/NoSQL.qll +++ b/python/ql/lib/semmle/python/frameworks/NoSQL.qll @@ -123,40 +123,49 @@ private module NoSql { } /** The `$where` query operator executes a string as JavaScript. */ - private class WhereQueryOperator extends API::CallNode, NoSqlQuery::Range { + private class WhereQueryOperator extends DataFlow::Node, Decoding::Range { + API::Node dictionary; DataFlow::Node query; WhereQueryOperator() { - this = mongoCollection().getMember(mongoCollectionMethodName()).getACall() and - query = this.getParameter(0).getSubscript("$where").asSink() + dictionary = + mongoCollection().getMember(mongoCollectionMethodName()).getACall().getParameter(0) and + query = dictionary.getSubscript("$where").asSink() and + this = dictionary.asSink() } - override DataFlow::Node getQuery() { result = query } + override DataFlow::Node getAnInput() { result = query } - override predicate interpretsDict() { none() } + override DataFlow::Node getOutput() { result = this } - override predicate vulnerableToStrings() { any() } + override string getFormat() { result = "NoSQL" } + + override predicate mayExecuteInput() { any() } } /** The `$function` query operator executes its `body` string as JavaScript. */ - private class FunctionQueryOperator extends API::CallNode, NoSqlQuery::Range { + private class FunctionQueryOperator extends DataFlow::Node, Decoding::Range { + API::Node dictionary; DataFlow::Node query; FunctionQueryOperator() { - this = mongoCollection().getMember(mongoCollectionMethodName()).getACall() and - query = - this.getParameter(0) - .getASubscript*() - .getSubscript("$function") - .getSubscript("body") - .asSink() + dictionary = + mongoCollection() + .getMember(mongoCollectionMethodName()) + .getACall() + .getParameter(0) + .getASubscript*() and + query = dictionary.getSubscript("$function").getSubscript("body").asSink() and + this = dictionary.asSink() } - override DataFlow::Node getQuery() { result = query } + override DataFlow::Node getAnInput() { result = query } - override predicate interpretsDict() { none() } + override DataFlow::Node getOutput() { result = this } - override predicate vulnerableToStrings() { any() } + override string getFormat() { result = "NoSQL" } + + override predicate mayExecuteInput() { any() } } /** diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll index d3348b8df8d..debefd525a7 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll @@ -75,7 +75,7 @@ module NoSqlInjection { /** A JSON decoding converts a string to a dictionary. */ class JsonDecoding extends Decoding, StringToDictConversion { - JsonDecoding() { this.getFormat() = "JSON" } + JsonDecoding() { this.getFormat() in ["JSON", "NoSQL"] } override DataFlow::Node getAnInput() { result = Decoding.super.getAnInput() } diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected index 89b0684744c..fdabe8cb977 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected @@ -2,14 +2,19 @@ edges | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:1:26:1:32 | GSSA Variable request | | PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:26:21:26:27 | ControlFlowNode for request | | PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:42:14:42:20 | ControlFlowNode for request | +| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:51:14:51:20 | ControlFlowNode for request | | PoC/server.py:26:5:26:17 | SSA variable author_string | PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | | PoC/server.py:26:21:26:27 | ControlFlowNode for request | PoC/server.py:26:5:26:17 | SSA variable author_string | | PoC/server.py:27:5:27:10 | SSA variable author | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | | PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | PoC/server.py:27:5:27:10 | SSA variable author | | PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | -| PoC/server.py:42:5:42:10 | SSA variable author | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | | PoC/server.py:42:5:42:10 | SSA variable author | PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | | PoC/server.py:42:14:42:20 | ControlFlowNode for request | PoC/server.py:42:5:42:10 | SSA variable author | +| PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | +| PoC/server.py:51:5:51:10 | SSA variable author | PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | +| PoC/server.py:51:14:51:20 | ControlFlowNode for request | PoC/server.py:51:5:51:10 | SSA variable author | +| PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | PoC/server.py:60:37:60:57 | ControlFlowNode for Dict | +| PoC/server.py:60:37:60:57 | ControlFlowNode for Dict | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | flask_mongoengine_bad.py:19:21:19:27 | ControlFlowNode for request | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | flask_mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | @@ -76,16 +81,16 @@ edges | pymongo_test.py:13:5:13:15 | SSA variable json_search | pymongo_test.py:15:42:15:62 | ControlFlowNode for Dict | | pymongo_test.py:13:19:13:43 | ControlFlowNode for Attribute() | pymongo_test.py:13:5:13:15 | SSA variable json_search | | pymongo_test.py:13:30:13:42 | ControlFlowNode for unsafe_search | pymongo_test.py:13:19:13:43 | ControlFlowNode for Attribute() | -| pymongo_test.py:29:5:29:12 | SSA variable event_id | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | | pymongo_test.py:29:5:29:12 | SSA variable event_id | pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | | pymongo_test.py:29:16:29:51 | ControlFlowNode for Attribute() | pymongo_test.py:29:5:29:12 | SSA variable event_id | | pymongo_test.py:29:27:29:33 | ControlFlowNode for request | pymongo_test.py:29:27:29:50 | ControlFlowNode for Subscript | | pymongo_test.py:29:27:29:50 | ControlFlowNode for Subscript | pymongo_test.py:29:16:29:51 | ControlFlowNode for Attribute() | -| pymongo_test.py:39:5:39:12 | SSA variable event_id | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | +| pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | | pymongo_test.py:39:5:39:12 | SSA variable event_id | pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | | pymongo_test.py:39:16:39:51 | ControlFlowNode for Attribute() | pymongo_test.py:39:5:39:12 | SSA variable event_id | | pymongo_test.py:39:27:39:33 | ControlFlowNode for request | pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | | pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | pymongo_test.py:39:16:39:51 | ControlFlowNode for Attribute() | +| pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | nodes | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | PoC/server.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | @@ -99,6 +104,11 @@ nodes | PoC/server.py:42:14:42:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | | PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | +| PoC/server.py:51:5:51:10 | SSA variable author | semmle.label | SSA variable author | +| PoC/server.py:51:14:51:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | +| PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:60:37:60:57 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | | flask_mongoengine_bad.py:19:5:19:17 | SSA variable unsafe_search | semmle.label | SSA variable unsafe_search | @@ -183,7 +193,7 @@ subpaths #select | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | -| PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | This NoSQL query contains an unsanitized $@. | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | @@ -195,6 +205,4 @@ subpaths | mongoengine_bad.py:61:29:61:49 | ControlFlowNode for Dict | mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | mongoengine_bad.py:61:29:61:49 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | pymongo_test.py:15:42:15:62 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:15:42:15:62 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | -| pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | -| pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py index 6a0099a4f5d..4f608c5e584 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py @@ -50,7 +50,7 @@ def by_where(): def by_function(): author = request.args['author'] search = { - "body": 'function(author) { return(author === "'+author+'") }', # $ result=BAD + "body": 'function(author) { return(author === "'+author+'") }', "args": [ "$author" ], "lang": "js" } @@ -64,11 +64,11 @@ def by_function(): def by_function_arg(): author = request.args['author'] search = { - "body": 'function(author, target) { return(author === target) }', # $ result=OK + "body": 'function(author, target) { return(author === target) }', "args": [ "$author", author ], "lang": "js" } - post = posts.find_one({'$expr': {'$function': search}}) # $ SPURIOUS: result=BAD + post = posts.find_one({'$expr': {'$function': search}}) # $ result=OK return show_post(post, author) @app.route('/', methods=['GET']) From 43eee2b4b37c49413a87310fba5886deb04bb034 Mon Sep 17 00:00:00 2001 From: Chuan-kai Lin Date: Mon, 11 Sep 2023 10:37:15 -0700 Subject: [PATCH 305/788] Document assume_small_delta deprecation --- docs/codeql/ql-language-reference/annotations.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/codeql/ql-language-reference/annotations.rst b/docs/codeql/ql-language-reference/annotations.rst index c87b479857e..f99a9dc2e18 100644 --- a/docs/codeql/ql-language-reference/annotations.rst +++ b/docs/codeql/ql-language-reference/annotations.rst @@ -435,9 +435,11 @@ For more information, see ":ref:`Binding `." **Available for**: |characteristic predicates|, |member predicates|, |non-member predicates| -The ``pragma[assume_small_delta]`` annotation changes the compilation of the annotated recursive predicate. -If the compiler normally generates the join orders ``order_<1>``, ``order_<2>``, ``order_<3>``, and ``standard_order``, -applying this annotation makes ``standard_order`` the same as ``order_<3>`` and removes the (now redundant) ``order_<3>`` join order. +.. pull-quote:: Important + + This annotation is deprecated. + +The ``pragma[assume_small_delta]`` annotation has no effect and can be safely removed. .. _language: From aa5820c0611d1e1a044caa18816e402641e07e42 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 11 Sep 2023 19:33:37 +0100 Subject: [PATCH 306/788] Swift: Add some test cases. --- .../Security/CWE-311/SensitiveExprs.expected | 1 + .../query-tests/Security/CWE-311/testSend.swift | 14 ++++++++++++++ .../Security/CWE-312/cleartextLoggingTest.swift | 14 ++++++++++++++ .../Security/CWE-312/testUserDefaults.swift | 14 ++++++++++++++ 4 files changed, 43 insertions(+) diff --git a/swift/ql/test/query-tests/Security/CWE-311/SensitiveExprs.expected b/swift/ql/test/query-tests/Security/CWE-311/SensitiveExprs.expected index 2b93ec420b8..1ab1da921d7 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/SensitiveExprs.expected +++ b/swift/ql/test/query-tests/Security/CWE-311/SensitiveExprs.expected @@ -133,6 +133,7 @@ | testSend.swift:78:27:78:30 | .CarePlanID | label:CarePlanID, type:private information | | testSend.swift:79:27:79:30 | .BankCardNo | label:BankCardNo, type:private information | | testSend.swift:80:27:80:30 | .MyCreditRating | label:MyCreditRating, type:private information | +| testSend.swift:94:27:94:30 | .password | label:password, type:credential | | testURL.swift:17:54:17:54 | passwd | label:passwd, type:credential | | testURL.swift:19:55:19:55 | account_no | label:account_no, type:private information | | testURL.swift:20:55:20:55 | credit_card_no | label:credit_card_no, type:private information | diff --git a/swift/ql/test/query-tests/Security/CWE-311/testSend.swift b/swift/ql/test/query-tests/Security/CWE-311/testSend.swift index cd94a60136b..77db1b25da9 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/testSend.swift +++ b/swift/ql/test/query-tests/Security/CWE-311/testSend.swift @@ -80,3 +80,17 @@ func test2(password : String, license_key: String, ms: MyStruct, connection : NW connection.send(content: ms.MyCreditRating, completion: .idempotent) // BAD connection.send(content: ms.OneTimeCode, completion: .idempotent) // BAD [NOT DETECTED] } + +struct MyOuter { + struct MyInner { + var value: String + } + + var password: MyInner + var harmless: MyInner +} + +func test3(mo : MyOuter, connection : NWConnection) { + connection.send(content: mo.password.value, completion: .idempotent) // BAD [NOT DETECTED] + connection.send(content: mo.harmless.value, completion: .idempotent) // GOOD +} diff --git a/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift b/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift index 8f8cd40c7cf..00d6e50ada9 100644 --- a/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift +++ b/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift @@ -159,3 +159,17 @@ func test3(x: String) { NSLog(z.harmless) // Safe NSLog(z.password) // $ hasCleartextLogging=160 } + +struct MyOuter { + struct MyInner { + var value: String + } + + var password: MyInner + var harmless: MyInner +} + +func test3(mo : MyOuter) { + NSLog(mo.password.value) // BAD [NOT DETECTED] + NSLog(mo.harmless.value) // GOOD +} diff --git a/swift/ql/test/query-tests/Security/CWE-312/testUserDefaults.swift b/swift/ql/test/query-tests/Security/CWE-312/testUserDefaults.swift index 343b5a9f0a1..fb50a82a783 100644 --- a/swift/ql/test/query-tests/Security/CWE-312/testUserDefaults.swift +++ b/swift/ql/test/query-tests/Security/CWE-312/testUserDefaults.swift @@ -68,3 +68,17 @@ func test4(passwd: String) { UserDefaults.standard.set(y, forKey: "myKey") // GOOD (not sensitive) UserDefaults.standard.set(z, forKey: "myKey") // GOOD (not sensitive) } + +struct MyOuter { + struct MyInner { + var value: String + } + + var password: MyInner + var harmless: MyInner +} + +func test5(mo : MyOuter) { + UserDefaults.standard.set(mo.password.value, forKey: "myKey") // BAD [NOT DETECTED] + UserDefaults.standard.set(mo.harmless.value, forKey: "myKey") // GOOD +} From ae0fcf791b7fc37155960e60296af5241f51277e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 11 Sep 2023 22:25:17 +0100 Subject: [PATCH 307/788] Swift: Expand the additional taint step from the cleartext storage database query to the other sensitive data queries. --- .../swift/security/CleartextLoggingExtensions.qll | 10 ++++++++++ .../CleartextStoragePreferencesExtensions.qll | 11 +++++++++++ .../security/CleartextTransmissionExtensions.qll | 11 +++++++++++ .../Security/CWE-311/CleartextTransmission.expected | 11 +++++++++++ .../test/query-tests/Security/CWE-311/testSend.swift | 2 +- .../CWE-312/CleartextStoragePreferences.expected | 11 +++++++++++ .../Security/CWE-312/cleartextLoggingTest.swift | 4 ++-- .../Security/CWE-312/testUserDefaults.swift | 2 +- 8 files changed, 58 insertions(+), 4 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll index 21bf855d1fc..773e9eec26e 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll @@ -83,6 +83,16 @@ private class OsLogPrivacyRef extends MemberRefExpr { predicate isPublic() { optionName = "public" } } +/** + * An additional taint step for cleartext logging vulnerabilities. + */ +private class CleartextLoggingFieldAdditionalFlowStep extends CleartextLoggingAdditionalFlowStep { + override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + // if an object is sensitive, its fields are always sensitive. + nodeTo.asExpr().(MemberRefExpr).getBase() = nodeFrom.asExpr() + } +} + private class LoggingSinks extends SinkModelCsv { override predicate row(string row) { row = diff --git a/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll index 8527a8da7ed..26f3c02fb1f 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll @@ -89,6 +89,17 @@ private class CleartextStoragePreferencesDefaultBarrier extends CleartextStorage } } +/** + * An additional taint step for cleartext preferences storage vulnerabilities. + */ +private class CleartextStoragePreferencesFieldAdditionalFlowStep extends CleartextStoragePreferencesAdditionalFlowStep +{ + override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + // if an object is sensitive, its fields are always sensitive. + nodeTo.asExpr().(MemberRefExpr).getBase() = nodeFrom.asExpr() + } +} + /** * A sink defined in a CSV model. */ diff --git a/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll index 52aa062f0cb..835c5952ec5 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll @@ -60,6 +60,17 @@ private class CleartextTransmissionDefaultBarrier extends CleartextTransmissionB } } +/** + * An additional taint step for cleartext transmission vulnerabilities. + */ +private class CleartextTransmissionFieldAdditionalFlowStep extends CleartextTransmissionAdditionalFlowStep +{ + override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + // if an object is sensitive, its fields are always sensitive. + nodeTo.asExpr().(MemberRefExpr).getBase() = nodeFrom.asExpr() + } +} + /** * A sink defined in a CSV model. */ diff --git a/swift/ql/test/query-tests/Security/CWE-311/CleartextTransmission.expected b/swift/ql/test/query-tests/Security/CWE-311/CleartextTransmission.expected index 52e5ca35b47..cd995cbcabe 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/CleartextTransmission.expected +++ b/swift/ql/test/query-tests/Security/CWE-311/CleartextTransmission.expected @@ -1,4 +1,5 @@ edges +| file://:0:0:0:0 | self | file://:0:0:0:0 | .value | | testAlamofire.swift:150:45:150:45 | password | testAlamofire.swift:150:13:150:45 | ... .+(_:_:) ... | | testAlamofire.swift:152:51:152:51 | password | testAlamofire.swift:152:19:152:51 | ... .+(_:_:) ... | | testAlamofire.swift:154:38:154:38 | email | testAlamofire.swift:154:14:154:46 | ... .+(_:_:) ... | @@ -10,6 +11,9 @@ edges | testSend.swift:60:13:60:25 | call to pad(_:) | testSend.swift:67:27:67:27 | str3 | | testSend.swift:60:17:60:17 | password | testSend.swift:41:10:41:18 | data | | testSend.swift:60:17:60:17 | password | testSend.swift:60:13:60:25 | call to pad(_:) | +| testSend.swift:86:7:86:7 | self | file://:0:0:0:0 | self | +| testSend.swift:94:27:94:30 | .password | testSend.swift:86:7:86:7 | self | +| testSend.swift:94:27:94:30 | .password | testSend.swift:94:27:94:39 | .value | | testURL.swift:17:54:17:54 | passwd | testURL.swift:17:22:17:54 | ... .+(_:_:) ... | | testURL.swift:19:55:19:55 | account_no | testURL.swift:19:22:19:55 | ... .+(_:_:) ... | | testURL.swift:20:55:20:55 | credit_card_no | testURL.swift:20:22:20:55 | ... .+(_:_:) ... | @@ -17,6 +21,8 @@ edges | testURL.swift:30:57:30:57 | a_homeaddr_z | testURL.swift:30:22:30:57 | ... .+(_:_:) ... | | testURL.swift:32:55:32:55 | resident_ID | testURL.swift:32:22:32:55 | ... .+(_:_:) ... | nodes +| file://:0:0:0:0 | .value | semmle.label | .value | +| file://:0:0:0:0 | self | semmle.label | self | | testAlamofire.swift:150:13:150:45 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | | testAlamofire.swift:150:45:150:45 | password | semmle.label | password | | testAlamofire.swift:152:19:152:51 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | @@ -43,6 +49,9 @@ nodes | testSend.swift:78:27:78:30 | .CarePlanID | semmle.label | .CarePlanID | | testSend.swift:79:27:79:30 | .BankCardNo | semmle.label | .BankCardNo | | testSend.swift:80:27:80:30 | .MyCreditRating | semmle.label | .MyCreditRating | +| testSend.swift:86:7:86:7 | self | semmle.label | self | +| testSend.swift:94:27:94:30 | .password | semmle.label | .password | +| testSend.swift:94:27:94:39 | .value | semmle.label | .value | | testURL.swift:17:22:17:54 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | | testURL.swift:17:54:17:54 | passwd | semmle.label | passwd | | testURL.swift:19:22:19:55 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | @@ -58,6 +67,7 @@ nodes | testURL.swift:32:55:32:55 | resident_ID | semmle.label | resident_ID | subpaths | testSend.swift:60:17:60:17 | password | testSend.swift:41:10:41:18 | data | testSend.swift:41:45:41:45 | data | testSend.swift:60:13:60:25 | call to pad(_:) | +| testSend.swift:94:27:94:30 | .password | testSend.swift:86:7:86:7 | self | file://:0:0:0:0 | .value | testSend.swift:94:27:94:39 | .value | #select | testAlamofire.swift:150:13:150:45 | ... .+(_:_:) ... | testAlamofire.swift:150:45:150:45 | password | testAlamofire.swift:150:13:150:45 | ... .+(_:_:) ... | This operation transmits '... .+(_:_:) ...', which may contain unencrypted sensitive data from $@. | testAlamofire.swift:150:45:150:45 | password | password | | testAlamofire.swift:152:19:152:51 | ... .+(_:_:) ... | testAlamofire.swift:152:51:152:51 | password | testAlamofire.swift:152:19:152:51 | ... .+(_:_:) ... | This operation transmits '... .+(_:_:) ...', which may contain unencrypted sensitive data from $@. | testAlamofire.swift:152:51:152:51 | password | password | @@ -74,6 +84,7 @@ subpaths | testSend.swift:78:27:78:30 | .CarePlanID | testSend.swift:78:27:78:30 | .CarePlanID | testSend.swift:78:27:78:30 | .CarePlanID | This operation transmits '.CarePlanID', which may contain unencrypted sensitive data from $@. | testSend.swift:78:27:78:30 | .CarePlanID | .CarePlanID | | testSend.swift:79:27:79:30 | .BankCardNo | testSend.swift:79:27:79:30 | .BankCardNo | testSend.swift:79:27:79:30 | .BankCardNo | This operation transmits '.BankCardNo', which may contain unencrypted sensitive data from $@. | testSend.swift:79:27:79:30 | .BankCardNo | .BankCardNo | | testSend.swift:80:27:80:30 | .MyCreditRating | testSend.swift:80:27:80:30 | .MyCreditRating | testSend.swift:80:27:80:30 | .MyCreditRating | This operation transmits '.MyCreditRating', which may contain unencrypted sensitive data from $@. | testSend.swift:80:27:80:30 | .MyCreditRating | .MyCreditRating | +| testSend.swift:94:27:94:39 | .value | testSend.swift:94:27:94:30 | .password | testSend.swift:94:27:94:39 | .value | This operation transmits '.value', which may contain unencrypted sensitive data from $@. | testSend.swift:94:27:94:30 | .password | .password | | testURL.swift:17:22:17:54 | ... .+(_:_:) ... | testURL.swift:17:54:17:54 | passwd | testURL.swift:17:22:17:54 | ... .+(_:_:) ... | This operation transmits '... .+(_:_:) ...', which may contain unencrypted sensitive data from $@. | testURL.swift:17:54:17:54 | passwd | passwd | | testURL.swift:19:22:19:55 | ... .+(_:_:) ... | testURL.swift:19:55:19:55 | account_no | testURL.swift:19:22:19:55 | ... .+(_:_:) ... | This operation transmits '... .+(_:_:) ...', which may contain unencrypted sensitive data from $@. | testURL.swift:19:55:19:55 | account_no | account_no | | testURL.swift:20:22:20:55 | ... .+(_:_:) ... | testURL.swift:20:55:20:55 | credit_card_no | testURL.swift:20:22:20:55 | ... .+(_:_:) ... | This operation transmits '... .+(_:_:) ...', which may contain unencrypted sensitive data from $@. | testURL.swift:20:55:20:55 | credit_card_no | credit_card_no | diff --git a/swift/ql/test/query-tests/Security/CWE-311/testSend.swift b/swift/ql/test/query-tests/Security/CWE-311/testSend.swift index 77db1b25da9..8acb83e51c1 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/testSend.swift +++ b/swift/ql/test/query-tests/Security/CWE-311/testSend.swift @@ -91,6 +91,6 @@ struct MyOuter { } func test3(mo : MyOuter, connection : NWConnection) { - connection.send(content: mo.password.value, completion: .idempotent) // BAD [NOT DETECTED] + connection.send(content: mo.password.value, completion: .idempotent) // BAD connection.send(content: mo.harmless.value, completion: .idempotent) // GOOD } diff --git a/swift/ql/test/query-tests/Security/CWE-312/CleartextStoragePreferences.expected b/swift/ql/test/query-tests/Security/CWE-312/CleartextStoragePreferences.expected index 823733bb3ab..69865237e18 100644 --- a/swift/ql/test/query-tests/Security/CWE-312/CleartextStoragePreferences.expected +++ b/swift/ql/test/query-tests/Security/CWE-312/CleartextStoragePreferences.expected @@ -1,4 +1,5 @@ edges +| file://:0:0:0:0 | self | file://:0:0:0:0 | .value | | testNSUbiquitousKeyValueStore.swift:41:24:41:24 | x | testNSUbiquitousKeyValueStore.swift:42:40:42:40 | x | | testNSUbiquitousKeyValueStore.swift:44:10:44:22 | call to getPassword() | testNSUbiquitousKeyValueStore.swift:45:40:45:40 | y | | testNSUbiquitousKeyValueStore.swift:55:10:55:10 | passwd | testNSUbiquitousKeyValueStore.swift:59:40:59:40 | x | @@ -9,7 +10,12 @@ edges | testUserDefaults.swift:55:10:55:10 | passwd | testUserDefaults.swift:59:28:59:28 | x | | testUserDefaults.swift:56:10:56:10 | passwd | testUserDefaults.swift:60:28:60:28 | y | | testUserDefaults.swift:57:10:57:10 | passwd | testUserDefaults.swift:61:28:61:28 | z | +| testUserDefaults.swift:74:7:74:7 | self | file://:0:0:0:0 | self | +| testUserDefaults.swift:82:28:82:31 | .password | testUserDefaults.swift:74:7:74:7 | self | +| testUserDefaults.swift:82:28:82:31 | .password | testUserDefaults.swift:82:28:82:40 | .value | nodes +| file://:0:0:0:0 | .value | semmle.label | .value | +| file://:0:0:0:0 | self | semmle.label | self | | testNSUbiquitousKeyValueStore.swift:28:12:28:12 | password | semmle.label | password | | testNSUbiquitousKeyValueStore.swift:41:24:41:24 | x | semmle.label | x | | testNSUbiquitousKeyValueStore.swift:42:40:42:40 | x | semmle.label | x | @@ -34,7 +40,11 @@ nodes | testUserDefaults.swift:59:28:59:28 | x | semmle.label | x | | testUserDefaults.swift:60:28:60:28 | y | semmle.label | y | | testUserDefaults.swift:61:28:61:28 | z | semmle.label | z | +| testUserDefaults.swift:74:7:74:7 | self | semmle.label | self | +| testUserDefaults.swift:82:28:82:31 | .password | semmle.label | .password | +| testUserDefaults.swift:82:28:82:40 | .value | semmle.label | .value | subpaths +| testUserDefaults.swift:82:28:82:31 | .password | testUserDefaults.swift:74:7:74:7 | self | file://:0:0:0:0 | .value | testUserDefaults.swift:82:28:82:40 | .value | #select | testNSUbiquitousKeyValueStore.swift:28:12:28:12 | password | testNSUbiquitousKeyValueStore.swift:28:12:28:12 | password | testNSUbiquitousKeyValueStore.swift:28:12:28:12 | password | This operation stores 'password' in iCloud. It may contain unencrypted sensitive data from $@. | testNSUbiquitousKeyValueStore.swift:28:12:28:12 | password | password | | testNSUbiquitousKeyValueStore.swift:42:40:42:40 | x | testNSUbiquitousKeyValueStore.swift:41:24:41:24 | x | testNSUbiquitousKeyValueStore.swift:42:40:42:40 | x | This operation stores 'x' in iCloud. It may contain unencrypted sensitive data from $@. | testNSUbiquitousKeyValueStore.swift:41:24:41:24 | x | x | @@ -50,3 +60,4 @@ subpaths | testUserDefaults.swift:59:28:59:28 | x | testUserDefaults.swift:55:10:55:10 | passwd | testUserDefaults.swift:59:28:59:28 | x | This operation stores 'x' in the user defaults database. It may contain unencrypted sensitive data from $@. | testUserDefaults.swift:55:10:55:10 | passwd | passwd | | testUserDefaults.swift:60:28:60:28 | y | testUserDefaults.swift:56:10:56:10 | passwd | testUserDefaults.swift:60:28:60:28 | y | This operation stores 'y' in the user defaults database. It may contain unencrypted sensitive data from $@. | testUserDefaults.swift:56:10:56:10 | passwd | passwd | | testUserDefaults.swift:61:28:61:28 | z | testUserDefaults.swift:57:10:57:10 | passwd | testUserDefaults.swift:61:28:61:28 | z | This operation stores 'z' in the user defaults database. It may contain unencrypted sensitive data from $@. | testUserDefaults.swift:57:10:57:10 | passwd | passwd | +| testUserDefaults.swift:82:28:82:40 | .value | testUserDefaults.swift:82:28:82:31 | .password | testUserDefaults.swift:82:28:82:40 | .value | This operation stores '.value' in the user defaults database. It may contain unencrypted sensitive data from $@. | testUserDefaults.swift:82:28:82:31 | .password | .password | diff --git a/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift b/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift index 00d6e50ada9..d45fdfb81e5 100644 --- a/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift +++ b/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift @@ -170,6 +170,6 @@ struct MyOuter { } func test3(mo : MyOuter) { - NSLog(mo.password.value) // BAD [NOT DETECTED] - NSLog(mo.harmless.value) // GOOD + NSLog(mo.password.value) // $ hasCleartextLogging=173 + NSLog(mo.harmless.value) // Safe } diff --git a/swift/ql/test/query-tests/Security/CWE-312/testUserDefaults.swift b/swift/ql/test/query-tests/Security/CWE-312/testUserDefaults.swift index fb50a82a783..10a1a04eedf 100644 --- a/swift/ql/test/query-tests/Security/CWE-312/testUserDefaults.swift +++ b/swift/ql/test/query-tests/Security/CWE-312/testUserDefaults.swift @@ -79,6 +79,6 @@ struct MyOuter { } func test5(mo : MyOuter) { - UserDefaults.standard.set(mo.password.value, forKey: "myKey") // BAD [NOT DETECTED] + UserDefaults.standard.set(mo.password.value, forKey: "myKey") // BAD UserDefaults.standard.set(mo.harmless.value, forKey: "myKey") // GOOD } From b6417ca2120d3d33182e7a98c663fd0420d37c96 Mon Sep 17 00:00:00 2001 From: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> Date: Mon, 4 Sep 2023 01:54:06 +0200 Subject: [PATCH 308/788] Java: Fix alert message The signing key that is being set, is _not_ what is being parsed. A _JWT_ is being parsed, that will then be verified using the set key. (Or in our case not, because we're looking for security problems :P) --- java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql b/java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql index 077d7a67370..6645e6c54ec 100644 --- a/java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql +++ b/java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql @@ -16,5 +16,5 @@ import MissingJwtSignatureCheckFlow::PathGraph from MissingJwtSignatureCheckFlow::PathNode source, MissingJwtSignatureCheckFlow::PathNode sink where MissingJwtSignatureCheckFlow::flowPath(source, sink) -select sink.getNode(), source, sink, "This parses a $@, but the signature is not verified.", +select sink.getNode(), source, sink, "This sets a $@, but the signature is not verified.", source.getNode(), "JWT signing key" From 0115ba0df34eb5abb1d514386eb446009a2f34a7 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Mon, 11 Sep 2023 15:19:18 +0200 Subject: [PATCH 309/788] Java: Automodel: drive-by, add extensibleType metadata to app mode +/- extraction --- .../AutomodelApplicationModeExtractNegativeExamples.ql | 6 ++++-- .../AutomodelApplicationModeExtractPositiveExamples.ql | 6 ++++-- ...tomodelApplicationModeExtractNegativeExamples.expected | 8 ++++---- ...tomodelApplicationModeExtractPositiveExamples.expected | 8 ++++---- .../test/AutomodelApplicationModeExtraction/Test.java | 4 ++-- 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql index 96726ee0e4f..69ca05e7f38 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql @@ -44,9 +44,10 @@ from Endpoint endpoint, EndpointCharacteristic characteristic, float confidence, string message, ApplicationModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, DollarAtString input, - DollarAtString output, DollarAtString isVarargsArray + DollarAtString output, DollarAtString isVarargsArray, DollarAtString extensibleType where endpoint = getSampleForCharacteristic(characteristic, 100) and + extensibleType = endpoint.getExtensibleType() and confidence >= SharedCharacteristics::highConfidence() and characteristic.hasImplications(any(NegativeSinkType negative), true, confidence) and // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly @@ -74,4 +75,5 @@ select endpoint.asNode(), signature, "signature", // input, "input", // output, "output", // - isVarargsArray, "isVarargsArray" // + isVarargsArray, "isVarargsArray", // + extensibleType, "extensibleType" diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql index 5ff5a73af60..89213c0ab96 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql @@ -16,11 +16,12 @@ from Endpoint endpoint, EndpointType endpointType, ApplicationModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, DollarAtString input, DollarAtString output, - DollarAtString isVarargsArray + DollarAtString isVarargsArray, DollarAtString extensibleType where // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly // certain about in the prompt. not erroneousEndpoints(endpoint, _, _, _, _, false) and + extensibleType = endpoint.getExtensibleType() and meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and // Extract positive examples of sinks belonging to the existing ATM query configurations. CharacteristicsImpl::isKnownAs(endpoint, endpointType, _) and @@ -35,4 +36,5 @@ select endpoint.asNode(), signature, "signature", // input, "input", // output, "output", // - isVarargsArray, "isVarargsArray" + isVarargsArray, "isVarargsArray", // + extensibleType, "extensibleType" diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected index 4fa671e9570..15ce3ad6136 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected @@ -1,4 +1,4 @@ -| Test.java:47:10:49:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:47:10:49:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:48:4:48:5 | f2 | known non-sink\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:47:10:49:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:54:4:54:4 | p | taint step\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:66:7:66:18 | this | exception\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:66:7:66:18 | super(...) | CallContext | file://java.lang:1:1:1:1 | java.lang | package | file://Exception:1:1:1:1 | Exception | type | file://true:1:1:1:1 | true | subtypes | file://Exception:1:1:1:1 | Exception | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:47:10:49:3 | compareTo(...) | known sanitizer\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:47:10:49:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:48:4:48:5 | f2 | known non-sink\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:47:10:49:3 | compareTo(...) | CallContext | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:54:4:54:4 | p | taint step\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:66:7:66:18 | this | exception\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:66:7:66:18 | super(...) | CallContext | file://java.lang:1:1:1:1 | java.lang | package | file://Exception:1:1:1:1 | Exception | type | file://true:1:1:1:1 | true | subtypes | file://Exception:1:1:1:1 | Exception | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected index dcbabe2bc37..450f13c9c1e 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected @@ -1,4 +1,4 @@ -| Test.java:28:4:28:9 | source | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:29:4:29:9 | target | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:36:4:36:11 | openPath | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | -| Test.java:62:3:62:20 | getInputStream(...) | remote\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:62:3:62:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | +| Test.java:28:4:28:9 | source | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:29:4:29:9 | target | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:36:4:36:11 | openPath | path-injection\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:62:3:62:20 | getInputStream(...) | remote\nrelated locations: $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:62:3:62:20 | getInputStream(...) | CallContext | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java index 4887285eb71..0bfb83ad520 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java @@ -45,8 +45,8 @@ class Test { public static int compareFiles(File f1, File f2) { return f1.compareTo( // compareTo call is a known sanitizer - f2 // negative example (modeled as not a sink) - ); + f2 // negative sink example (modeled as not a sink) + ); // the call is a negative source candidate (sanitizer) } public static void FilesWalkExample(Path p, FileVisitOption o) throws Exception { From 7d2c12e63dd44ac60a567de1766f01265c23df08 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 12 Sep 2023 10:28:36 +0100 Subject: [PATCH 310/788] C++: Handle the extent of 'new[]' in 'getConvertedResultExpressionImpl0' and add a few more comments. --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 16 ++++++++++++++++ .../raw/internal/TranslatedExpr.qll | 4 +--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index cb80756e324..c01e5861aef 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1088,15 +1088,31 @@ private module GetConvertedResultExpression { } private Expr getConvertedResultExpressionImpl0(Instruction instr) { + // For an expression such as `i += 2` we pretend that the generated + // `StoreInstruction` contains the result of the expression even though + // this isn't totally aligned with the C/C++ standard. exists(TranslatedAssignOperation tao | result = tao.getExpr() and instr = tao.getInstruction(any(AssignmentStoreTag tag)) ) or + // Similarly for `i++` and `++i` we pretend that the generated + // `StoreInstruction` is contains the result of the expression even though + // this isn't totally aligned with the C/C++ standard. exists(TranslatedCrementOperation tco | result = tco.getExpr() and instr = tco.getInstruction(any(CrementStoreTag tag)) ) + or + // IR construction inserts an additional cast to a `size_t` on the extent + // of a `new[]` expression. The resulting `ConvertInstruction` doesn't have + // a result for `getConvertedResultExpression`. We remap this here so that + // this `ConvertInstruction` maps to the result of the expression that + // represents the extent. + exists(TranslatedNonConstantAllocationSize tas | + result = tas.getExtent().getExpr() and + instr = tas.getInstruction(any(AllocationExtentConvertTag tag)) + ) } private Expr getConvertedResultExpressionImpl(Instruction instr) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll index 5589786ce39..707b5b02842 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll @@ -1956,9 +1956,7 @@ class TranslatedNonConstantAllocationSize extends TranslatedAllocationSize { result = this.getExtent().getResult() } - private TranslatedExpr getExtent() { - result = getTranslatedExpr(expr.getExtent().getFullyConverted()) - } + TranslatedExpr getExtent() { result = getTranslatedExpr(expr.getExtent().getFullyConverted()) } } /** From ff28f45058d5c3bb35cf43d82e4a75cc5cf45ad1 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 12 Sep 2023 10:28:46 +0100 Subject: [PATCH 311/788] C++: Accept test changes. --- .../AllocMultiplicationOverflow.expected | 8 ++++---- .../TaintedAllocationSize/TaintedAllocationSize.expected | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected index 6b8917fb22a..fe7246092b6 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected @@ -8,8 +8,8 @@ nodes | test.cpp:19:34:19:38 | ... * ... | semmle.label | ... * ... | | test.cpp:22:17:22:21 | ... * ... | semmle.label | ... * ... | | test.cpp:23:33:23:37 | size1 | semmle.label | size1 | -| test.cpp:30:18:30:32 | new[] | semmle.label | new[] | -| test.cpp:31:18:31:32 | new[] | semmle.label | new[] | +| test.cpp:30:18:30:32 | ... * ... | semmle.label | ... * ... | +| test.cpp:31:18:31:32 | ... * ... | semmle.label | ... * ... | | test.cpp:37:24:37:27 | size | semmle.label | size | | test.cpp:37:46:37:49 | size | semmle.label | size | | test.cpp:45:36:45:40 | ... * ... | semmle.label | ... * ... | @@ -21,8 +21,8 @@ subpaths | test.cpp:15:31:15:35 | ... * ... | test.cpp:15:31:15:35 | ... * ... | test.cpp:15:31:15:35 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:15:31:15:35 | ... * ... | multiplication | | test.cpp:19:34:19:38 | ... * ... | test.cpp:19:34:19:38 | ... * ... | test.cpp:19:34:19:38 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:19:34:19:38 | ... * ... | multiplication | | test.cpp:23:33:23:37 | size1 | test.cpp:22:17:22:21 | ... * ... | test.cpp:23:33:23:37 | size1 | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:22:17:22:21 | ... * ... | multiplication | -| test.cpp:30:18:30:32 | new[] | test.cpp:30:18:30:32 | new[] | test.cpp:30:18:30:32 | new[] | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:30:18:30:32 | new[] | multiplication | -| test.cpp:31:18:31:32 | new[] | test.cpp:31:18:31:32 | new[] | test.cpp:31:18:31:32 | new[] | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:31:18:31:32 | new[] | multiplication | +| test.cpp:30:18:30:32 | ... * ... | test.cpp:30:18:30:32 | ... * ... | test.cpp:30:18:30:32 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:30:18:30:32 | ... * ... | multiplication | +| test.cpp:31:18:31:32 | ... * ... | test.cpp:31:18:31:32 | ... * ... | test.cpp:31:18:31:32 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:31:18:31:32 | ... * ... | multiplication | | test.cpp:37:46:37:49 | size | test.cpp:45:36:45:40 | ... * ... | test.cpp:37:46:37:49 | size | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:45:36:45:40 | ... * ... | multiplication | | test.cpp:45:36:45:40 | ... * ... | test.cpp:45:36:45:40 | ... * ... | test.cpp:45:36:45:40 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:45:36:45:40 | ... * ... | multiplication | | test.cpp:46:36:46:40 | ... * ... | test.cpp:46:36:46:40 | ... * ... | test.cpp:46:36:46:40 | ... * ... | Potentially overflowing value from $@ is used in the size of this allocation. | test.cpp:46:36:46:40 | ... * ... | multiplication | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected index eb13ca42267..e8e611e1961 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected @@ -3,7 +3,7 @@ edges | test.cpp:39:27:39:30 | argv indirection | test.cpp:44:38:44:63 | ... * ... | | test.cpp:39:27:39:30 | argv indirection | test.cpp:46:38:46:63 | ... + ... | | test.cpp:39:27:39:30 | argv indirection | test.cpp:49:32:49:35 | size | -| test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | new[] | +| test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | size | | test.cpp:39:27:39:30 | argv indirection | test.cpp:53:35:53:60 | ... * ... | | test.cpp:124:18:124:23 | call to getenv | test.cpp:128:24:128:41 | ... * ... | | test.cpp:124:18:124:31 | call to getenv indirection | test.cpp:128:24:128:41 | ... * ... | @@ -40,7 +40,7 @@ nodes | test.cpp:44:38:44:63 | ... * ... | semmle.label | ... * ... | | test.cpp:46:38:46:63 | ... + ... | semmle.label | ... + ... | | test.cpp:49:32:49:35 | size | semmle.label | size | -| test.cpp:50:17:50:30 | new[] | semmle.label | new[] | +| test.cpp:50:17:50:30 | size | semmle.label | size | | test.cpp:53:35:53:60 | ... * ... | semmle.label | ... * ... | | test.cpp:124:18:124:23 | call to getenv | semmle.label | call to getenv | | test.cpp:124:18:124:31 | call to getenv indirection | semmle.label | call to getenv indirection | @@ -82,7 +82,7 @@ subpaths | test.cpp:44:31:44:36 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:44:38:44:63 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:46:31:46:36 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:46:38:46:63 | ... + ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:49:25:49:30 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:49:32:49:35 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | -| test.cpp:50:17:50:30 | new[] | test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | new[] | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | +| test.cpp:50:17:50:30 | new[] | test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:53:21:53:27 | call to realloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:53:35:53:60 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) | | test.cpp:128:17:128:22 | call to malloc | test.cpp:124:18:124:23 | call to getenv | test.cpp:128:24:128:41 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:124:18:124:23 | call to getenv | user input (an environment variable) | | test.cpp:128:17:128:22 | call to malloc | test.cpp:124:18:124:31 | call to getenv indirection | test.cpp:128:24:128:41 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:124:18:124:31 | call to getenv indirection | user input (an environment variable) | From d8a99e6b7d51d9bc74b261e7eaddab0100a3ba17 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 12 Sep 2023 11:13:58 +0100 Subject: [PATCH 312/788] Kotlin: Regenerate expected test output It's now in the order generated by the new CLI. This means that changes in test output are easier to understand. --- .../annotation_classes/classes.expected | 22 +-- .../kotlin/library-tests/arrays/test.expected | 14 +- .../library-tests/classes/superTypes.expected | 186 +++++++++--------- .../controlflow/basic/getASuccessor.expected | 2 +- .../kotlin/library-tests/enum/test.expected | 8 +- .../extensions/parameters.expected | 38 ++-- .../field-initializer-flow/test.expected | 2 +- .../java-map-methods/test.expected | 4 +- .../java_and_kotlin/test.expected | 10 +- .../visibility.expected | 12 +- .../private-anonymous-types/test.expected | 12 +- .../properties/properties.expected | 48 ++--- .../special-method-getters/test.expected | 2 +- .../kotlin/library-tests/stmts/stmts.expected | 144 +++++++------- .../kotlin/library-tests/this/this.expected | 18 +- .../variables/variables.expected | 20 +- 16 files changed, 271 insertions(+), 271 deletions(-) diff --git a/java/ql/test/kotlin/library-tests/annotation_classes/classes.expected b/java/ql/test/kotlin/library-tests/annotation_classes/classes.expected index 01f5581b73a..94b71230531 100644 --- a/java/ql/test/kotlin/library-tests/annotation_classes/classes.expected +++ b/java/ql/test/kotlin/library-tests/annotation_classes/classes.expected @@ -1,3 +1,14 @@ +#select +| Annot0j.java:1:19:1:25 | Annot0j | Interface | +| Annot1j.java:1:19:1:25 | Annot1j | Interface | +| def.kt:0:0:0:0 | DefKt | Class | +| def.kt:5:1:21:60 | Annot0k | Interface | +| def.kt:23:1:31:1 | Annot1k | Interface | +| def.kt:33:1:33:10 | X | Class | +| def.kt:34:1:36:1 | Y | Class | +| def.kt:38:1:43:1 | Z | Class | +| use.java:1:14:1:16 | use | Class | +| use.java:14:18:14:18 | Z | Class | annotationDeclarations | Annot0j.java:1:19:1:25 | Annot0j | Annot0j.java:2:9:2:11 | abc | | Annot1j.java:1:19:1:25 | Annot1j | Annot1j.java:2:9:2:9 | a | @@ -69,14 +80,3 @@ annotationValues | use.java:13:5:13:88 | Annot1k | use.java:13:57:13:66 | {...} | | use.java:13:5:13:88 | Annot1k | use.java:13:73:13:87 | Annot0k | | use.java:13:73:13:87 | Annot0k | use.java:13:86:13:86 | 2 | -#select -| Annot0j.java:1:19:1:25 | Annot0j | Interface | -| Annot1j.java:1:19:1:25 | Annot1j | Interface | -| def.kt:0:0:0:0 | DefKt | Class | -| def.kt:5:1:21:60 | Annot0k | Interface | -| def.kt:23:1:31:1 | Annot1k | Interface | -| def.kt:33:1:33:10 | X | Class | -| def.kt:34:1:36:1 | Y | Class | -| def.kt:38:1:43:1 | Z | Class | -| use.java:1:14:1:16 | use | Class | -| use.java:14:18:14:18 | Z | Class | diff --git a/java/ql/test/kotlin/library-tests/arrays/test.expected b/java/ql/test/kotlin/library-tests/arrays/test.expected index 7693b3acd6b..efdc5179609 100644 --- a/java/ql/test/kotlin/library-tests/arrays/test.expected +++ b/java/ql/test/kotlin/library-tests/arrays/test.expected @@ -1,3 +1,10 @@ +#select +| primitiveArrays.kt:5:12:5:24 | a | file://:0:0:0:0 | Integer[] | Integer | Integer | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | +| primitiveArrays.kt:5:27:5:40 | b | file://:0:0:0:0 | Integer[] | Integer | Integer | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | +| primitiveArrays.kt:5:43:5:53 | c | file://:0:0:0:0 | int[] | int | int | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | +| primitiveArrays.kt:5:56:5:76 | d | file://:0:0:0:0 | Integer[][] | Integer[] | Integer | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | +| primitiveArrays.kt:5:79:5:98 | e | file://:0:0:0:0 | Integer[][] | Integer[] | Integer | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | +| primitiveArrays.kt:5:101:5:118 | f | file://:0:0:0:0 | int[][] | int[] | int | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | cloneMethods | file://:0:0:0:0 | clone | clone() | file://:0:0:0:0 | Integer[] | file://:0:0:0:0 | Integer[] | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | | file://:0:0:0:0 | clone | clone() | file://:0:0:0:0 | Integer[][] | file://:0:0:0:0 | Integer[][] | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | @@ -21,10 +28,3 @@ sourceSignatures | arrayIterators.kt:1:1:13:1 | test | test(java.lang.Integer[],int[],boolean[]) | | primitiveArrays.kt:3:1:7:1 | Test | Test() | | primitiveArrays.kt:5:3:5:123 | test | test(java.lang.Integer[],java.lang.Integer[],int[],java.lang.Integer[][],java.lang.Integer[][],int[][]) | -#select -| primitiveArrays.kt:5:12:5:24 | a | file://:0:0:0:0 | Integer[] | Integer | Integer | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | -| primitiveArrays.kt:5:27:5:40 | b | file://:0:0:0:0 | Integer[] | Integer | Integer | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | -| primitiveArrays.kt:5:43:5:53 | c | file://:0:0:0:0 | int[] | int | int | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | -| primitiveArrays.kt:5:56:5:76 | d | file://:0:0:0:0 | Integer[][] | Integer[] | Integer | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | -| primitiveArrays.kt:5:79:5:98 | e | file://:0:0:0:0 | Integer[][] | Integer[] | Integer | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | -| primitiveArrays.kt:5:101:5:118 | f | file://:0:0:0:0 | int[][] | int[] | int | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass | diff --git a/java/ql/test/kotlin/library-tests/classes/superTypes.expected b/java/ql/test/kotlin/library-tests/classes/superTypes.expected index 31b8979e0b3..57b683230dd 100644 --- a/java/ql/test/kotlin/library-tests/classes/superTypes.expected +++ b/java/ql/test/kotlin/library-tests/classes/superTypes.expected @@ -1,3 +1,96 @@ +#select +| classes.kt:2:1:2:18 | ClassOne | file:///Object.class:0:0:0:0 | Object | +| classes.kt:4:1:6:1 | ClassTwo | file:///Object.class:0:0:0:0 | Object | +| classes.kt:8:1:10:1 | ClassThree | file:///Object.class:0:0:0:0 | Object | +| classes.kt:12:1:15:1 | ClassFour | classes.kt:8:1:10:1 | ClassThree | +| classes.kt:17:1:18:1 | ClassFive | classes.kt:12:1:15:1 | ClassFour | +| classes.kt:28:1:30:1 | ClassSix | classes.kt:12:1:15:1 | ClassFour | +| classes.kt:28:1:30:1 | ClassSix | classes.kt:20:1:22:1 | IF1 | +| classes.kt:28:1:30:1 | ClassSix | classes.kt:24:1:26:1 | IF2 | +| classes.kt:34:1:47:1 | ClassSeven | file:///Object.class:0:0:0:0 | Object | +| classes.kt:49:1:51:1 | Direction | file:///Enum.class:0:0:0:0 | Enum | +| classes.kt:53:1:57:1 | Color | file:///Enum.class:0:0:0:0 | Enum | +| classes.kt:63:1:91:1 | Class1 | file:///Object.class:0:0:0:0 | Object | +| classes.kt:66:20:66:54 | new Object(...) { ... } | classes.kt:59:1:59:23 | Interface1 | +| classes.kt:66:20:66:54 | new Object(...) { ... } | classes.kt:60:1:60:23 | Interface2 | +| classes.kt:68:20:68:74 | new Object(...) { ... } | classes.kt:59:1:59:23 | Interface1 | +| classes.kt:68:20:68:74 | new Object(...) { ... } | classes.kt:60:1:60:23 | Interface2 | +| classes.kt:68:20:68:74 | new Object(...) { ... } | file:///Interface3.class:0:0:0:0 | Interface3 | +| classes.kt:72:16:77:10 | new Object(...) { ... } | classes.kt:59:1:59:23 | Interface1 | +| classes.kt:72:16:77:10 | new Object(...) { ... } | classes.kt:60:1:60:23 | Interface2 | +| classes.kt:75:24:75:33 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | +| classes.kt:81:16:81:38 | new Interface1(...) { ... } | classes.kt:59:1:59:23 | Interface1 | +| classes.kt:85:16:85:25 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | +| classes.kt:89:16:89:44 | new Interface3(...) { ... } | file:///Interface3.class:0:0:0:0 | Interface3 | +| classes.kt:93:1:93:26 | pulicClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:94:1:94:29 | privateClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:95:1:95:31 | internalClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:96:1:96:34 | noExplicitVisibilityClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:98:1:104:1 | nestedClassVisibilities | file:///Object.class:0:0:0:0 | Object | +| classes.kt:99:5:99:36 | pulicNestedClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:100:5:100:43 | protectedNestedClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:101:5:101:39 | privateNestedClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:102:5:102:41 | internalNestedClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:103:5:103:44 | noExplicitVisibilityNestedClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:106:1:106:27 | sealedClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:107:1:107:23 | openClass | file:///Object.class:0:0:0:0 | Object | +| classes.kt:109:1:136:1 | C1 | file:///Object.class:0:0:0:0 | Object | +| classes.kt:111:9:113:9 | Local1 | file:///Object.class:0:0:0:0 | Object | +| classes.kt:118:9:123:9 | | file:///Object.class:0:0:0:0 | Object | +| classes.kt:119:13:121:13 | Local2 | file:///Object.class:0:0:0:0 | Object | +| classes.kt:127:16:134:9 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | +| classes.kt:129:17:131:17 | Local3 | file:///Object.class:0:0:0:0 | Object | +| classes.kt:138:1:148:1 | Cl0 | file:///Object.class:0:0:0:0 | Object | +| classes.kt:140:9:146:9 | | file:///Object.class:0:0:0:0 | Object | +| classes.kt:141:13:145:13 | Cl1 | file:///Object.class:0:0:0:0 | Object | +| classes.kt:150:1:156:1 | Cl00 | file:///Object.class:0:0:0:0 | Object | +| classes.kt:151:5:155:5 | Cl01 | file:///Object.class:0:0:0:0 | Object | +| classes.kt:159:5:159:14 | X | file:///Object.class:0:0:0:0 | Object | +| classes.kt:162:13:162:22 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | +| file:///C1$$Local3.class:0:0:0:0 | Local3 | file:///Object.class:0:0:0:0 | Object | +| file:///C1$Local1.class:0:0:0:0 | Local1 | file:///Object.class:0:0:0:0 | Object | +| file:///C1$Local2.class:0:0:0:0 | Local2 | file:///Object.class:0:0:0:0 | Object | +| file:///Generic.class:0:0:0:0 | Generic | file:///Object.class:0:0:0:0 | Object | +| file:///Generic.class:0:0:0:0 | Generic | generic_anonymous.kt:1:1:9:1 | Generic<> | +| file:///Generic.class:0:0:0:0 | Generic | file:///Object.class:0:0:0:0 | Object | +| file:///Generic.class:0:0:0:0 | Generic | generic_anonymous.kt:1:1:9:1 | Generic<> | +| file:///SuperChain1.class:0:0:0:0 | SuperChain1 | file:///Object.class:0:0:0:0 | Object | +| file:///SuperChain1.class:0:0:0:0 | SuperChain1 | file:///Object.class:0:0:0:0 | Object | +| file:///SuperChain2.class:0:0:0:0 | SuperChain2 | file:///SuperChain1.class:0:0:0:0 | SuperChain1 | +| generic_anonymous.kt:1:1:9:1 | Generic | file:///Object.class:0:0:0:0 | Object | +| generic_anonymous.kt:1:1:9:1 | Generic | generic_anonymous.kt:1:1:9:1 | Generic<> | +| generic_anonymous.kt:1:1:9:1 | Generic<> | file:///Object.class:0:0:0:0 | Object | +| generic_anonymous.kt:3:19:5:3 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | +| generic_anonymous.kt:3:19:5:3 | new Object(...) { ... }<> | file:///Object.class:0:0:0:0 | Object | +| generic_anonymous.kt:15:1:33:1 | Outer | file:///Object.class:0:0:0:0 | Object | +| generic_anonymous.kt:25:9:31:9 | | file:///Object.class:0:0:0:0 | Object | +| generic_anonymous.kt:26:13:26:37 | new Object(...) { ... } | file:///Outer$C0.class:0:0:0:0 | C0 | +| generic_anonymous.kt:26:13:26:37 | new Object(...) { ... } | file:///Outer$C1.class:0:0:0:0 | C1 | +| generic_anonymous.kt:27:13:27:37 | new Object(...) { ... } | file:///Outer$C0.class:0:0:0:0 | C0 | +| generic_anonymous.kt:27:13:27:37 | new Object(...) { ... } | file:///Outer$C1.class:0:0:0:0 | C1 | +| generic_anonymous.kt:28:13:28:41 | new Object(...) { ... } | file:///Outer$C0.class:0:0:0:0 | C0 | +| generic_anonymous.kt:28:13:28:41 | new Object(...) { ... } | file:///Outer$C1.class:0:0:0:0 | C1 | +| generic_anonymous.kt:29:13:29:29 | new C0(...) { ... } | file:///Outer$C0.class:0:0:0:0 | C0 | +| generic_anonymous.kt:30:13:30:33 | new C0(...) { ... } | file:///Outer$C0.class:0:0:0:0 | C0 | +| localClassField.kt:1:1:11:1 | A | file:///Object.class:0:0:0:0 | Object | +| localClassField.kt:3:9:3:19 | L | file:///Object.class:0:0:0:0 | Object | +| localClassField.kt:8:9:8:19 | L | file:///Object.class:0:0:0:0 | Object | +| local_anonymous.kt:3:1:36:1 | Class1 | file:///Object.class:0:0:0:0 | Object | +| local_anonymous.kt:5:16:7:9 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | +| local_anonymous.kt:11:9:11:24 | | file:///Object.class:0:0:0:0 | Object | +| local_anonymous.kt:16:23:16:49 | new Function2(...) { ... } | file:///Function2.class:0:0:0:0 | Function2 | +| local_anonymous.kt:16:23:16:49 | new Function2(...) { ... } | file:///Object.class:0:0:0:0 | Object | +| local_anonymous.kt:17:23:17:49 | new Function2(...) { ... } | file:///Function2.class:0:0:0:0 | Function2 | +| local_anonymous.kt:17:23:17:49 | new Function2(...) { ... } | file:///Object.class:0:0:0:0 | Object | +| local_anonymous.kt:21:21:21:31 | new Function1(...) { ... } | file:///Function1.class:0:0:0:0 | Function1 | +| local_anonymous.kt:21:21:21:31 | new Function1(...) { ... } | file:///FunctionReference.class:0:0:0:0 | FunctionReference | +| local_anonymous.kt:25:9:25:27 | LocalClass | file:///Object.class:0:0:0:0 | Object | +| local_anonymous.kt:29:31:35:5 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | +| local_anonymous.kt:39:1:45:1 | Class2 | file:///Object.class:0:0:0:0 | Object | +| local_anonymous.kt:40:14:44:5 | new Interface2(...) { ... } | local_anonymous.kt:38:1:38:23 | Interface2 | +| superChain.kt:1:1:1:33 | SuperChain1 | file:///Object.class:0:0:0:0 | Object | +| superChain.kt:2:1:2:60 | SuperChain2 | file:///SuperChain1.class:0:0:0:0 | SuperChain1 | +| superChain.kt:3:1:3:60 | SuperChain3 | file:///SuperChain2.class:0:0:0:0 | SuperChain2 | extendsOrImplements | classes.kt:2:1:2:18 | ClassOne | file:///Object.class:0:0:0:0 | Object | extends | | classes.kt:4:1:6:1 | ClassTwo | file:///Object.class:0:0:0:0 | Object | extends | @@ -103,96 +196,3 @@ extendsOrImplements | superChain.kt:1:1:1:33 | SuperChain1 | file:///Object.class:0:0:0:0 | Object | extends | | superChain.kt:2:1:2:60 | SuperChain2 | file:///SuperChain1.class:0:0:0:0 | SuperChain1 | extends | | superChain.kt:3:1:3:60 | SuperChain3 | file:///SuperChain2.class:0:0:0:0 | SuperChain2 | extends | -#select -| classes.kt:2:1:2:18 | ClassOne | file:///Object.class:0:0:0:0 | Object | -| classes.kt:4:1:6:1 | ClassTwo | file:///Object.class:0:0:0:0 | Object | -| classes.kt:8:1:10:1 | ClassThree | file:///Object.class:0:0:0:0 | Object | -| classes.kt:12:1:15:1 | ClassFour | classes.kt:8:1:10:1 | ClassThree | -| classes.kt:17:1:18:1 | ClassFive | classes.kt:12:1:15:1 | ClassFour | -| classes.kt:28:1:30:1 | ClassSix | classes.kt:12:1:15:1 | ClassFour | -| classes.kt:28:1:30:1 | ClassSix | classes.kt:20:1:22:1 | IF1 | -| classes.kt:28:1:30:1 | ClassSix | classes.kt:24:1:26:1 | IF2 | -| classes.kt:34:1:47:1 | ClassSeven | file:///Object.class:0:0:0:0 | Object | -| classes.kt:49:1:51:1 | Direction | file:///Enum.class:0:0:0:0 | Enum | -| classes.kt:53:1:57:1 | Color | file:///Enum.class:0:0:0:0 | Enum | -| classes.kt:63:1:91:1 | Class1 | file:///Object.class:0:0:0:0 | Object | -| classes.kt:66:20:66:54 | new Object(...) { ... } | classes.kt:59:1:59:23 | Interface1 | -| classes.kt:66:20:66:54 | new Object(...) { ... } | classes.kt:60:1:60:23 | Interface2 | -| classes.kt:68:20:68:74 | new Object(...) { ... } | classes.kt:59:1:59:23 | Interface1 | -| classes.kt:68:20:68:74 | new Object(...) { ... } | classes.kt:60:1:60:23 | Interface2 | -| classes.kt:68:20:68:74 | new Object(...) { ... } | file:///Interface3.class:0:0:0:0 | Interface3 | -| classes.kt:72:16:77:10 | new Object(...) { ... } | classes.kt:59:1:59:23 | Interface1 | -| classes.kt:72:16:77:10 | new Object(...) { ... } | classes.kt:60:1:60:23 | Interface2 | -| classes.kt:75:24:75:33 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | -| classes.kt:81:16:81:38 | new Interface1(...) { ... } | classes.kt:59:1:59:23 | Interface1 | -| classes.kt:85:16:85:25 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | -| classes.kt:89:16:89:44 | new Interface3(...) { ... } | file:///Interface3.class:0:0:0:0 | Interface3 | -| classes.kt:93:1:93:26 | pulicClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:94:1:94:29 | privateClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:95:1:95:31 | internalClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:96:1:96:34 | noExplicitVisibilityClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:98:1:104:1 | nestedClassVisibilities | file:///Object.class:0:0:0:0 | Object | -| classes.kt:99:5:99:36 | pulicNestedClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:100:5:100:43 | protectedNestedClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:101:5:101:39 | privateNestedClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:102:5:102:41 | internalNestedClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:103:5:103:44 | noExplicitVisibilityNestedClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:106:1:106:27 | sealedClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:107:1:107:23 | openClass | file:///Object.class:0:0:0:0 | Object | -| classes.kt:109:1:136:1 | C1 | file:///Object.class:0:0:0:0 | Object | -| classes.kt:111:9:113:9 | Local1 | file:///Object.class:0:0:0:0 | Object | -| classes.kt:118:9:123:9 | | file:///Object.class:0:0:0:0 | Object | -| classes.kt:119:13:121:13 | Local2 | file:///Object.class:0:0:0:0 | Object | -| classes.kt:127:16:134:9 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | -| classes.kt:129:17:131:17 | Local3 | file:///Object.class:0:0:0:0 | Object | -| classes.kt:138:1:148:1 | Cl0 | file:///Object.class:0:0:0:0 | Object | -| classes.kt:140:9:146:9 | | file:///Object.class:0:0:0:0 | Object | -| classes.kt:141:13:145:13 | Cl1 | file:///Object.class:0:0:0:0 | Object | -| classes.kt:150:1:156:1 | Cl00 | file:///Object.class:0:0:0:0 | Object | -| classes.kt:151:5:155:5 | Cl01 | file:///Object.class:0:0:0:0 | Object | -| classes.kt:159:5:159:14 | X | file:///Object.class:0:0:0:0 | Object | -| classes.kt:162:13:162:22 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | -| file:///C1$$Local3.class:0:0:0:0 | Local3 | file:///Object.class:0:0:0:0 | Object | -| file:///C1$Local1.class:0:0:0:0 | Local1 | file:///Object.class:0:0:0:0 | Object | -| file:///C1$Local2.class:0:0:0:0 | Local2 | file:///Object.class:0:0:0:0 | Object | -| file:///Generic.class:0:0:0:0 | Generic | file:///Object.class:0:0:0:0 | Object | -| file:///Generic.class:0:0:0:0 | Generic | generic_anonymous.kt:1:1:9:1 | Generic<> | -| file:///Generic.class:0:0:0:0 | Generic | file:///Object.class:0:0:0:0 | Object | -| file:///Generic.class:0:0:0:0 | Generic | generic_anonymous.kt:1:1:9:1 | Generic<> | -| file:///SuperChain1.class:0:0:0:0 | SuperChain1 | file:///Object.class:0:0:0:0 | Object | -| file:///SuperChain1.class:0:0:0:0 | SuperChain1 | file:///Object.class:0:0:0:0 | Object | -| file:///SuperChain2.class:0:0:0:0 | SuperChain2 | file:///SuperChain1.class:0:0:0:0 | SuperChain1 | -| generic_anonymous.kt:1:1:9:1 | Generic | file:///Object.class:0:0:0:0 | Object | -| generic_anonymous.kt:1:1:9:1 | Generic | generic_anonymous.kt:1:1:9:1 | Generic<> | -| generic_anonymous.kt:1:1:9:1 | Generic<> | file:///Object.class:0:0:0:0 | Object | -| generic_anonymous.kt:3:19:5:3 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | -| generic_anonymous.kt:3:19:5:3 | new Object(...) { ... }<> | file:///Object.class:0:0:0:0 | Object | -| generic_anonymous.kt:15:1:33:1 | Outer | file:///Object.class:0:0:0:0 | Object | -| generic_anonymous.kt:25:9:31:9 | | file:///Object.class:0:0:0:0 | Object | -| generic_anonymous.kt:26:13:26:37 | new Object(...) { ... } | file:///Outer$C0.class:0:0:0:0 | C0 | -| generic_anonymous.kt:26:13:26:37 | new Object(...) { ... } | file:///Outer$C1.class:0:0:0:0 | C1 | -| generic_anonymous.kt:27:13:27:37 | new Object(...) { ... } | file:///Outer$C0.class:0:0:0:0 | C0 | -| generic_anonymous.kt:27:13:27:37 | new Object(...) { ... } | file:///Outer$C1.class:0:0:0:0 | C1 | -| generic_anonymous.kt:28:13:28:41 | new Object(...) { ... } | file:///Outer$C0.class:0:0:0:0 | C0 | -| generic_anonymous.kt:28:13:28:41 | new Object(...) { ... } | file:///Outer$C1.class:0:0:0:0 | C1 | -| generic_anonymous.kt:29:13:29:29 | new C0(...) { ... } | file:///Outer$C0.class:0:0:0:0 | C0 | -| generic_anonymous.kt:30:13:30:33 | new C0(...) { ... } | file:///Outer$C0.class:0:0:0:0 | C0 | -| localClassField.kt:1:1:11:1 | A | file:///Object.class:0:0:0:0 | Object | -| localClassField.kt:3:9:3:19 | L | file:///Object.class:0:0:0:0 | Object | -| localClassField.kt:8:9:8:19 | L | file:///Object.class:0:0:0:0 | Object | -| local_anonymous.kt:3:1:36:1 | Class1 | file:///Object.class:0:0:0:0 | Object | -| local_anonymous.kt:5:16:7:9 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | -| local_anonymous.kt:11:9:11:24 | | file:///Object.class:0:0:0:0 | Object | -| local_anonymous.kt:16:23:16:49 | new Function2(...) { ... } | file:///Function2.class:0:0:0:0 | Function2 | -| local_anonymous.kt:16:23:16:49 | new Function2(...) { ... } | file:///Object.class:0:0:0:0 | Object | -| local_anonymous.kt:17:23:17:49 | new Function2(...) { ... } | file:///Function2.class:0:0:0:0 | Function2 | -| local_anonymous.kt:17:23:17:49 | new Function2(...) { ... } | file:///Object.class:0:0:0:0 | Object | -| local_anonymous.kt:21:21:21:31 | new Function1(...) { ... } | file:///Function1.class:0:0:0:0 | Function1 | -| local_anonymous.kt:21:21:21:31 | new Function1(...) { ... } | file:///FunctionReference.class:0:0:0:0 | FunctionReference | -| local_anonymous.kt:25:9:25:27 | LocalClass | file:///Object.class:0:0:0:0 | Object | -| local_anonymous.kt:29:31:35:5 | new Object(...) { ... } | file:///Object.class:0:0:0:0 | Object | -| local_anonymous.kt:39:1:45:1 | Class2 | file:///Object.class:0:0:0:0 | Object | -| local_anonymous.kt:40:14:44:5 | new Interface2(...) { ... } | local_anonymous.kt:38:1:38:23 | Interface2 | -| superChain.kt:1:1:1:33 | SuperChain1 | file:///Object.class:0:0:0:0 | Object | -| superChain.kt:2:1:2:60 | SuperChain2 | file:///SuperChain1.class:0:0:0:0 | SuperChain1 | -| superChain.kt:3:1:3:60 | SuperChain3 | file:///SuperChain2.class:0:0:0:0 | SuperChain2 | diff --git a/java/ql/test/kotlin/library-tests/controlflow/basic/getASuccessor.expected b/java/ql/test/kotlin/library-tests/controlflow/basic/getASuccessor.expected index 36544bd2d93..993e707744e 100644 --- a/java/ql/test/kotlin/library-tests/controlflow/basic/getASuccessor.expected +++ b/java/ql/test/kotlin/library-tests/controlflow/basic/getASuccessor.expected @@ -1,4 +1,3 @@ -missingSuccessor #select | Test.kt:0:0:0:0 | TestKt | Class | file://:0:0:0:0 | | | | Test.kt:3:1:80:1 | Test | Class | file://:0:0:0:0 | | | @@ -259,3 +258,4 @@ missingSuccessor | Test.kt:122:12:122:16 | false | BooleanLiteral | Test.kt:118:1:124:1 | fn_when | Method | | Test.kt:122:12:122:16 | true | BooleanLiteral | Test.kt:122:12:122:16 | ; | ExprStmt | | Test.kt:123:8:123:10 | { ... } | BlockStmt | Test.kt:118:1:124:1 | fn_when | Method | +missingSuccessor diff --git a/java/ql/test/kotlin/library-tests/enum/test.expected b/java/ql/test/kotlin/library-tests/enum/test.expected index 2484ff2e2ba..b8be8ed4152 100644 --- a/java/ql/test/kotlin/library-tests/enum/test.expected +++ b/java/ql/test/kotlin/library-tests/enum/test.expected @@ -1,7 +1,3 @@ -enumConstants -| enumUser.kt:3:16:3:17 | A | -| enumUser.kt:3:19:3:20 | B | -| enumUser.kt:3:22:3:22 | C | #select | addAll | | addRange | @@ -35,3 +31,7 @@ enumConstants | usesEnum | | valueOf | | writeReplace | +enumConstants +| enumUser.kt:3:16:3:17 | A | +| enumUser.kt:3:19:3:20 | B | +| enumUser.kt:3:22:3:22 | C | diff --git a/java/ql/test/kotlin/library-tests/extensions/parameters.expected b/java/ql/test/kotlin/library-tests/extensions/parameters.expected index 65906e57dd2..dfbf92eb4f9 100644 --- a/java/ql/test/kotlin/library-tests/extensions/parameters.expected +++ b/java/ql/test/kotlin/library-tests/extensions/parameters.expected @@ -1,3 +1,22 @@ +#select +| extensions.kt:3:5:3:38 | someClassMethod | extensions.kt:3:25:3:34 | p1 | 0 | +| extensions.kt:6:5:6:41 | anotherClassMethod | extensions.kt:6:28:6:37 | p1 | 0 | +| extensions.kt:9:1:9:36 | someFun | extensions.kt:9:5:9:13 | | 0 | +| extensions.kt:9:1:9:36 | someFun | extensions.kt:9:23:9:32 | p1 | 1 | +| extensions.kt:10:1:10:42 | anotherFun | extensions.kt:10:5:10:16 | | 0 | +| extensions.kt:10:1:10:42 | anotherFun | extensions.kt:10:29:10:38 | p1 | 1 | +| extensions.kt:12:1:12:36 | bothFun | extensions.kt:12:5:12:13 | | 0 | +| extensions.kt:12:1:12:36 | bothFun | extensions.kt:12:23:12:32 | p1 | 1 | +| extensions.kt:13:1:13:39 | bothFun | extensions.kt:13:5:13:16 | | 0 | +| extensions.kt:13:1:13:39 | bothFun | extensions.kt:13:26:13:35 | p1 | 1 | +| extensions.kt:15:1:15:57 | bothFunDiffTypes | extensions.kt:15:5:15:13 | | 0 | +| extensions.kt:15:1:15:57 | bothFunDiffTypes | extensions.kt:15:32:15:38 | p1 | 1 | +| extensions.kt:16:1:16:70 | bothFunDiffTypes | extensions.kt:16:5:16:16 | | 0 | +| extensions.kt:16:1:16:70 | bothFunDiffTypes | extensions.kt:16:35:16:44 | p1 | 1 | +| extensions.kt:18:1:18:51 | bar | extensions.kt:18:5:18:10 | | 0 | +| extensions.kt:18:1:18:51 | bar | extensions.kt:18:16:18:25 | p1 | 1 | +| extensions.kt:30:5:30:55 | baz | extensions.kt:30:9:30:14 | | 0 | +| extensions.kt:30:5:30:55 | baz | extensions.kt:30:20:30:29 | p1 | 1 | parametersWithArgs | extensions.kt:3:25:3:34 | p1 | 0 | extensions.kt:21:34:21:36 | "foo" | | extensions.kt:6:28:6:37 | p1 | 0 | extensions.kt:25:40:25:42 | "foo" | @@ -28,22 +47,3 @@ extensionParameter | extensions.kt:16:5:16:16 | | | extensions.kt:18:5:18:10 | | | extensions.kt:30:9:30:14 | | -#select -| extensions.kt:3:5:3:38 | someClassMethod | extensions.kt:3:25:3:34 | p1 | 0 | -| extensions.kt:6:5:6:41 | anotherClassMethod | extensions.kt:6:28:6:37 | p1 | 0 | -| extensions.kt:9:1:9:36 | someFun | extensions.kt:9:5:9:13 | | 0 | -| extensions.kt:9:1:9:36 | someFun | extensions.kt:9:23:9:32 | p1 | 1 | -| extensions.kt:10:1:10:42 | anotherFun | extensions.kt:10:5:10:16 | | 0 | -| extensions.kt:10:1:10:42 | anotherFun | extensions.kt:10:29:10:38 | p1 | 1 | -| extensions.kt:12:1:12:36 | bothFun | extensions.kt:12:5:12:13 | | 0 | -| extensions.kt:12:1:12:36 | bothFun | extensions.kt:12:23:12:32 | p1 | 1 | -| extensions.kt:13:1:13:39 | bothFun | extensions.kt:13:5:13:16 | | 0 | -| extensions.kt:13:1:13:39 | bothFun | extensions.kt:13:26:13:35 | p1 | 1 | -| extensions.kt:15:1:15:57 | bothFunDiffTypes | extensions.kt:15:5:15:13 | | 0 | -| extensions.kt:15:1:15:57 | bothFunDiffTypes | extensions.kt:15:32:15:38 | p1 | 1 | -| extensions.kt:16:1:16:70 | bothFunDiffTypes | extensions.kt:16:5:16:16 | | 0 | -| extensions.kt:16:1:16:70 | bothFunDiffTypes | extensions.kt:16:35:16:44 | p1 | 1 | -| extensions.kt:18:1:18:51 | bar | extensions.kt:18:5:18:10 | | 0 | -| extensions.kt:18:1:18:51 | bar | extensions.kt:18:16:18:25 | p1 | 1 | -| extensions.kt:30:5:30:55 | baz | extensions.kt:30:9:30:14 | | 0 | -| extensions.kt:30:5:30:55 | baz | extensions.kt:30:20:30:29 | p1 | 1 | diff --git a/java/ql/test/kotlin/library-tests/field-initializer-flow/test.expected b/java/ql/test/kotlin/library-tests/field-initializer-flow/test.expected index a959250456f..5c6353b87c9 100644 --- a/java/ql/test/kotlin/library-tests/field-initializer-flow/test.expected +++ b/java/ql/test/kotlin/library-tests/field-initializer-flow/test.expected @@ -1,3 +1,3 @@ isFinalField | test.kt:3:3:3:18 | x | -#select \ No newline at end of file +#select diff --git a/java/ql/test/kotlin/library-tests/java-map-methods/test.expected b/java/ql/test/kotlin/library-tests/java-map-methods/test.expected index 66fb9f6ea55..813df1c237a 100644 --- a/java/ql/test/kotlin/library-tests/java-map-methods/test.expected +++ b/java/ql/test/kotlin/library-tests/java-map-methods/test.expected @@ -1,7 +1,7 @@ -diagnostics -| file://:0:0:0:0 | Couldn't find a Java equivalent function to kotlin.Number.toChar in java.lang.Number | #select | Integer | | Iterable | | Object | | int | +diagnostics +| file://:0:0:0:0 | Couldn't find a Java equivalent function to kotlin.Number.toChar in java.lang.Number | diff --git a/java/ql/test/kotlin/library-tests/java_and_kotlin/test.expected b/java/ql/test/kotlin/library-tests/java_and_kotlin/test.expected index fa37843355f..3ae886713c3 100644 --- a/java/ql/test/kotlin/library-tests/java_and_kotlin/test.expected +++ b/java/ql/test/kotlin/library-tests/java_and_kotlin/test.expected @@ -1,3 +1,8 @@ +#select +| Java.java:5:3:5:26 | kotlinFun(...) | Kotlin.kt:2:2:4:2 | kotlinFun | +| Java.java:11:11:11:22 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 | +| Kotlin.kt:13:40:13:51 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 | +| Kotlin.kt:14:48:14:59 | fn1(...) | Kotlin.kt:9:18:9:46 | fn1 | methods | Java.java:4:7:4:13 | javaFun | javaFun() | | Java.java:10:17:10:19 | fn0 | fn0(int) | @@ -12,8 +17,3 @@ overrides | Kotlin.kt:14:22:14:59 | fn1 | Kotlin.kt:9:18:9:46 | fn1 | signature_mismatch | Kotlin.kt:9:18:9:46 | fn1 | fn1(int) | -#select -| Java.java:5:3:5:26 | kotlinFun(...) | Kotlin.kt:2:2:4:2 | kotlinFun | -| Java.java:11:11:11:22 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 | -| Kotlin.kt:13:40:13:51 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 | -| Kotlin.kt:14:48:14:59 | fn1(...) | Kotlin.kt:9:18:9:46 | fn1 | diff --git a/java/ql/test/kotlin/library-tests/java_and_kotlin_internal/visibility.expected b/java/ql/test/kotlin/library-tests/java_and_kotlin_internal/visibility.expected index 378da6dd22f..43e5e8eefbe 100644 --- a/java/ql/test/kotlin/library-tests/java_and_kotlin_internal/visibility.expected +++ b/java/ql/test/kotlin/library-tests/java_and_kotlin_internal/visibility.expected @@ -1,3 +1,9 @@ +#select +| Kotlin.kt:2:11:3:2 | kotlinFun$main | final | +| Kotlin.kt:2:11:3:2 | kotlinFun$main | internal | +| Kotlin.kt:6:10:6:36 | topLevelKotlinFun | final | +| Kotlin.kt:6:10:6:36 | topLevelKotlinFun | internal | +| Kotlin.kt:6:10:6:36 | topLevelKotlinFun | static | isPublic isInternal | Kotlin.kt:2:11:3:2 | kotlinFun$main | @@ -8,9 +14,3 @@ modifiers_methods | file://:0:0:0:0 | internal | Kotlin.kt:2:11:3:2 | kotlinFun$main | | file://:0:0:0:0 | internal | Kotlin.kt:6:10:6:36 | topLevelKotlinFun | | file://:0:0:0:0 | static | Kotlin.kt:6:10:6:36 | topLevelKotlinFun | -#select -| Kotlin.kt:2:11:3:2 | kotlinFun$main | final | -| Kotlin.kt:2:11:3:2 | kotlinFun$main | internal | -| Kotlin.kt:6:10:6:36 | topLevelKotlinFun | final | -| Kotlin.kt:6:10:6:36 | topLevelKotlinFun | internal | -| Kotlin.kt:6:10:6:36 | topLevelKotlinFun | static | diff --git a/java/ql/test/kotlin/library-tests/private-anonymous-types/test.expected b/java/ql/test/kotlin/library-tests/private-anonymous-types/test.expected index 40de73eadd9..766185e4931 100644 --- a/java/ql/test/kotlin/library-tests/private-anonymous-types/test.expected +++ b/java/ql/test/kotlin/library-tests/private-anonymous-types/test.expected @@ -1,9 +1,3 @@ -enclosingTypes -| file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A | -| file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A | -| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:7:1:22:1 | A | -| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:7:1:22:1 | A | -| test.kt:13:33:15:3 | new If(...) { ... }<> | test.kt:7:1:22:1 | A<> | #select | file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A$.class:0:0:0:0 | | | file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A$.class:0:0:0:0 | | @@ -34,3 +28,9 @@ enclosingTypes | test.kt:13:33:15:3 | new If(...) { ... } | test.kt:13:33:15:3 | | | test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:5:14:22 | x | | test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:14:14:22 | getX | +enclosingTypes +| file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A | +| file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A | +| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:7:1:22:1 | A | +| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:7:1:22:1 | A | +| test.kt:13:33:15:3 | new If(...) { ... }<> | test.kt:7:1:22:1 | A<> | diff --git a/java/ql/test/kotlin/library-tests/properties/properties.expected b/java/ql/test/kotlin/library-tests/properties/properties.expected index 01c82187a81..1f60e9054b2 100644 --- a/java/ql/test/kotlin/library-tests/properties/properties.expected +++ b/java/ql/test/kotlin/library-tests/properties/properties.expected @@ -1,27 +1,3 @@ -fieldDeclarations -| properties.kt:2:27:2:50 | int constructorProp; | properties.kt:2:27:2:50 | constructorProp | 0 | -| properties.kt:2:53:2:83 | int mutableConstructorProp; | properties.kt:2:53:2:83 | mutableConstructorProp | 0 | -| properties.kt:3:5:3:25 | int modifiableInt; | properties.kt:3:5:3:25 | modifiableInt | 0 | -| properties.kt:4:5:4:24 | int immutableInt; | properties.kt:4:5:4:24 | immutableInt | 0 | -| properties.kt:5:5:5:26 | int typedProp; | properties.kt:5:5:5:26 | typedProp | 0 | -| properties.kt:7:5:7:30 | int initialisedInInit; | properties.kt:7:5:7:30 | initialisedInInit | 0 | -| properties.kt:11:5:11:40 | int useConstructorArg; | properties.kt:11:5:11:40 | useConstructorArg | 0 | -| properties.kt:19:5:20:15 | int defaultGetter; | properties.kt:19:5:20:15 | defaultGetter | 0 | -| properties.kt:21:5:22:15 | int varDefaultGetter; | properties.kt:21:5:22:15 | varDefaultGetter | 0 | -| properties.kt:23:5:24:15 | int varDefaultSetter; | properties.kt:23:5:24:15 | varDefaultSetter | 0 | -| properties.kt:25:5:27:15 | int varDefaultGetterSetter; | properties.kt:25:5:27:15 | varDefaultGetterSetter | 0 | -| properties.kt:28:5:29:22 | int overrideGetter; | properties.kt:28:5:29:22 | overrideGetter | 0 | -| properties.kt:30:5:31:29 | int overrideGetterUseField; | properties.kt:30:5:31:29 | overrideGetterUseField | 0 | -| properties.kt:32:5:33:29 | int useField; | properties.kt:32:5:33:29 | useField | 0 | -| properties.kt:34:5:34:36 | String lateInitVar; | properties.kt:34:5:34:36 | lateInitVar | 0 | -| properties.kt:35:5:35:32 | int privateProp; | properties.kt:35:5:35:32 | privateProp | 0 | -| properties.kt:36:5:36:36 | int protectedProp; | properties.kt:36:5:36:36 | protectedProp | 0 | -| properties.kt:37:5:37:30 | int publicProp; | properties.kt:37:5:37:30 | publicProp | 0 | -| properties.kt:38:5:38:34 | int internalProp; | properties.kt:38:5:38:34 | internalProp | 0 | -| properties.kt:67:1:67:23 | int constVal; | properties.kt:67:1:67:23 | constVal | 0 | -| properties.kt:70:5:70:16 | int prop; | properties.kt:70:5:70:16 | prop | 0 | -| properties.kt:84:5:84:29 | int data; | properties.kt:84:5:84:29 | data | 0 | -| properties.kt:92:5:93:18 | int data; | properties.kt:92:5:93:18 | data | 0 | #select | properties.kt:2:27:2:50 | constructorProp | properties.kt:2:27:2:50 | getConstructorProp | file://:0:0:0:0 | | properties.kt:2:27:2:50 | constructorProp | public | | properties.kt:2:53:2:83 | mutableConstructorProp | properties.kt:2:53:2:83 | getMutableConstructorProp | properties.kt:2:53:2:83 | setMutableConstructorProp | properties.kt:2:53:2:83 | mutableConstructorProp | public | @@ -52,3 +28,27 @@ fieldDeclarations | properties.kt:80:1:81:13 | x | properties.kt:81:5:81:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:84:5:84:29 | data | properties.kt:84:13:84:29 | getData$private | properties.kt:84:13:84:29 | setData$private | properties.kt:84:5:84:29 | data | private | | properties.kt:92:5:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:13:93:18 | setData$private | properties.kt:92:5:93:18 | data | private | +fieldDeclarations +| properties.kt:2:27:2:50 | int constructorProp; | properties.kt:2:27:2:50 | constructorProp | 0 | +| properties.kt:2:53:2:83 | int mutableConstructorProp; | properties.kt:2:53:2:83 | mutableConstructorProp | 0 | +| properties.kt:3:5:3:25 | int modifiableInt; | properties.kt:3:5:3:25 | modifiableInt | 0 | +| properties.kt:4:5:4:24 | int immutableInt; | properties.kt:4:5:4:24 | immutableInt | 0 | +| properties.kt:5:5:5:26 | int typedProp; | properties.kt:5:5:5:26 | typedProp | 0 | +| properties.kt:7:5:7:30 | int initialisedInInit; | properties.kt:7:5:7:30 | initialisedInInit | 0 | +| properties.kt:11:5:11:40 | int useConstructorArg; | properties.kt:11:5:11:40 | useConstructorArg | 0 | +| properties.kt:19:5:20:15 | int defaultGetter; | properties.kt:19:5:20:15 | defaultGetter | 0 | +| properties.kt:21:5:22:15 | int varDefaultGetter; | properties.kt:21:5:22:15 | varDefaultGetter | 0 | +| properties.kt:23:5:24:15 | int varDefaultSetter; | properties.kt:23:5:24:15 | varDefaultSetter | 0 | +| properties.kt:25:5:27:15 | int varDefaultGetterSetter; | properties.kt:25:5:27:15 | varDefaultGetterSetter | 0 | +| properties.kt:28:5:29:22 | int overrideGetter; | properties.kt:28:5:29:22 | overrideGetter | 0 | +| properties.kt:30:5:31:29 | int overrideGetterUseField; | properties.kt:30:5:31:29 | overrideGetterUseField | 0 | +| properties.kt:32:5:33:29 | int useField; | properties.kt:32:5:33:29 | useField | 0 | +| properties.kt:34:5:34:36 | String lateInitVar; | properties.kt:34:5:34:36 | lateInitVar | 0 | +| properties.kt:35:5:35:32 | int privateProp; | properties.kt:35:5:35:32 | privateProp | 0 | +| properties.kt:36:5:36:36 | int protectedProp; | properties.kt:36:5:36:36 | protectedProp | 0 | +| properties.kt:37:5:37:30 | int publicProp; | properties.kt:37:5:37:30 | publicProp | 0 | +| properties.kt:38:5:38:34 | int internalProp; | properties.kt:38:5:38:34 | internalProp | 0 | +| properties.kt:67:1:67:23 | int constVal; | properties.kt:67:1:67:23 | constVal | 0 | +| properties.kt:70:5:70:16 | int prop; | properties.kt:70:5:70:16 | prop | 0 | +| properties.kt:84:5:84:29 | int data; | properties.kt:84:5:84:29 | data | 0 | +| properties.kt:92:5:93:18 | int data; | properties.kt:92:5:93:18 | data | 0 | diff --git a/java/ql/test/kotlin/library-tests/special-method-getters/test.expected b/java/ql/test/kotlin/library-tests/special-method-getters/test.expected index 64b59974fa9..7bdebe05c72 100644 --- a/java/ql/test/kotlin/library-tests/special-method-getters/test.expected +++ b/java/ql/test/kotlin/library-tests/special-method-getters/test.expected @@ -1,4 +1,3 @@ -diag #select | test.kt:1:81:1:89 | length(...) | java.lang.CharSequence | length | | test.kt:1:93:1:100 | size(...) | java.util.Collection | size | @@ -9,3 +8,4 @@ diag | test.kt:1:131:1:145 | size(...) | java.util.Collection | size | | test.kt:1:149:1:159 | entrySet(...) | java.util.Map | entrySet | | test.kt:1:149:1:164 | size(...) | java.util.Set> | size | +diag diff --git a/java/ql/test/kotlin/library-tests/stmts/stmts.expected b/java/ql/test/kotlin/library-tests/stmts/stmts.expected index 716bea1649a..a374ed7e222 100644 --- a/java/ql/test/kotlin/library-tests/stmts/stmts.expected +++ b/java/ql/test/kotlin/library-tests/stmts/stmts.expected @@ -1,75 +1,3 @@ -enclosing -| stmts.kt:3:5:6:5 | ; | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:3:8:4:5 | ... -> ... | stmts.kt:3:5:6:5 | ; | -| stmts.kt:3:15:4:5 | { ... } | stmts.kt:3:8:4:5 | ... -> ... | -| stmts.kt:4:15:5:5 | ... -> ... | stmts.kt:3:5:6:5 | ; | -| stmts.kt:4:22:5:5 | { ... } | stmts.kt:4:15:5:5 | ... -> ... | -| stmts.kt:5:12:6:5 | ... -> ... | stmts.kt:3:5:6:5 | ; | -| stmts.kt:5:12:6:5 | { ... } | stmts.kt:5:12:6:5 | ... -> ... | -| stmts.kt:7:5:8:16 | while (...) | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:8:9:8:16 | return ... | stmts.kt:7:5:8:16 | while (...) | -| stmts.kt:9:5:11:5 | while (...) | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:9:18:11:5 | { ... } | stmts.kt:9:5:11:5 | while (...) | -| stmts.kt:10:9:10:16 | return ... | stmts.kt:9:18:11:5 | { ... } | -| stmts.kt:12:5:14:18 | do ... while (...) | stmts.kt:12:5:14:18 | { ... } | -| stmts.kt:12:5:14:18 | { ... } | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:12:8:14:5 | { ... } | stmts.kt:12:5:14:18 | do ... while (...) | -| stmts.kt:13:9:13:16 | return ... | stmts.kt:12:8:14:5 | { ... } | -| stmts.kt:15:9:15:9 | var ...; | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:17:9:17:10 | var ...; | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:17:26:17:58 | ... -> ... | stmts.kt:17:9:17:10 | var ...; | -| stmts.kt:17:26:17:58 | ... -> ... | stmts.kt:17:9:17:10 | var ...; | -| stmts.kt:17:35:17:43 | { ... } | stmts.kt:17:26:17:58 | ... -> ... | -| stmts.kt:17:37:17:37 | ; | stmts.kt:17:35:17:43 | { ... } | -| stmts.kt:17:50:17:58 | { ... } | stmts.kt:17:26:17:58 | ... -> ... | -| stmts.kt:17:52:17:52 | ; | stmts.kt:17:50:17:58 | { ... } | -| stmts.kt:18:9:18:10 | var ...; | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:18:26:18:56 | ... -> ... | stmts.kt:18:9:18:10 | var ...; | -| stmts.kt:18:26:18:56 | ... -> ... | stmts.kt:18:9:18:10 | var ...; | -| stmts.kt:18:37:18:37 | ; | stmts.kt:18:26:18:56 | ... -> ... | -| stmts.kt:18:52:18:52 | ; | stmts.kt:18:26:18:56 | ... -> ... | -| stmts.kt:19:5:19:16 | return ... | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:23:11:27:5 |
  • Containers library
  • +
  • +RAII +
  • diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime_c_api_call.cpp b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime_c_api_call.cpp new file mode 100644 index 00000000000..02cd1360a42 --- /dev/null +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime_c_api_call.cpp @@ -0,0 +1,14 @@ +void c_api(const char*); + +void bad_call_c_api() { + // BAD: the memory returned by `c_str()` is freed when the temporary string is destroyed + const char* p = std::string("hello").c_str(); + c_api(p); +} + +void good_call_c_api() { + // GOOD: the "hello" string outlives the pointer returned by `c_str()`, so it's safe to pass it to `c_api()` + std::string hello("hello"); + const char* p = hello.c_str(); + c_api(p); +} diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.cpp b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime_iterator_invalidation.cpp similarity index 54% rename from cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.cpp rename to cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime_iterator_invalidation.cpp index 937d20eead9..2fa8294f452 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.cpp +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime_iterator_invalidation.cpp @@ -1,18 +1,3 @@ -void c_api(const char*); - -void bad_call_c_api() { - // BAD: the memory returned by `c_str()` is freed when the temporary string is destroyed - const char* p = std::string("hello").c_str(); - c_api(p); -} - -void good_call_c_api() { - // GOOD: the "hello" string outlives the pointer returned by `c_str()`, so it's safe to pass it to `c_api()` - std::string hello("hello"); - const char* p = hello.c_str(); - c_api(p); -} - void bad_remove_even_numbers(std::vector& v) { // BAD: the iterator is invalidated after the call to `erase`. for(std::vector::iterator it = v.begin(); it != v.end(); ++it) { From 7db082f3fd8a9362a6ec76393a2563daf879707c Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 13 Sep 2023 13:04:26 +0200 Subject: [PATCH 348/788] Java: Add VS Code model editor queries --- .../dataflow/internal/ModelExclusions.qll | 2 +- .../src/utils/modeleditor/AutomodelVsCode.qll | 139 ++++++++++++++++++ .../FetchApplicationModeMethods.ql | 29 ++++ .../modeleditor/FetchFrameworkModeMethods.ql | 23 +++ .../FetchApplicationModeMethods.expected | 8 + .../FetchApplicationModeMethods.qlref | 1 + .../FetchFrameworkModeMethods.expected | 5 + .../FetchFrameworkModeMethods.qlref | 1 + .../github/codeql/test/NonPublicClass.java | 7 + .../com/github/codeql/test/PublicClass.java | 21 +++ .../github/codeql/test/PublicInterface.java | 9 ++ .../suite-helpers/code-scanning-selectors.yml | 1 + .../security-and-quality-selectors.yml | 1 + .../security-experimental-selectors.yml | 1 + .../security-extended-selectors.yml | 1 + 15 files changed, 248 insertions(+), 1 deletion(-) create mode 100644 java/ql/src/utils/modeleditor/AutomodelVsCode.qll create mode 100644 java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql create mode 100644 java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql create mode 100644 java/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected create mode 100644 java/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref create mode 100644 java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected create mode 100644 java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref create mode 100644 java/ql/test/utils/modeleditor/com/github/codeql/test/NonPublicClass.java create mode 100644 java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java create mode 100644 java/ql/test/utils/modeleditor/com/github/codeql/test/PublicInterface.java diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ModelExclusions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ModelExclusions.qll index 5f1996989ad..b797cf5d939 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ModelExclusions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ModelExclusions.qll @@ -25,7 +25,7 @@ class TestLibrary extends RefType { } /** Holds if the given file is a test file. */ -private predicate isInTestFile(File file) { +predicate isInTestFile(File file) { file.getAbsolutePath().matches(["%/test/%", "%/guava-tests/%", "%/guava-testlib/%"]) and not file.getAbsolutePath().matches(["%/ql/test/%", "%/ql/automodel/test/%"]) // allows our test cases to work } diff --git a/java/ql/src/utils/modeleditor/AutomodelVsCode.qll b/java/ql/src/utils/modeleditor/AutomodelVsCode.qll new file mode 100644 index 00000000000..2e8fe70c29e --- /dev/null +++ b/java/ql/src/utils/modeleditor/AutomodelVsCode.qll @@ -0,0 +1,139 @@ +/** Provides classes and predicates related to handling APIs for the VS Code extension. */ + +private import java +private import semmle.code.java.dataflow.DataFlow +private import semmle.code.java.dataflow.ExternalFlow +private import semmle.code.java.dataflow.FlowSources +private import semmle.code.java.dataflow.FlowSummary +private import semmle.code.java.dataflow.internal.DataFlowPrivate +private import semmle.code.java.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl +private import semmle.code.java.dataflow.TaintTracking +private import semmle.code.java.dataflow.internal.ModelExclusions + +/** Holds if the given callable/method is not worth supporting. */ +private predicate isUninteresting(Callable c) { + c.getDeclaringType() instanceof TestLibrary or + c.(Constructor).isParameterless() or + c.getDeclaringType() instanceof AnonymousClass +} + +/** + * A callable method from either the Standard Library, a 3rd party library or from the source. + */ +class CallableMethod extends Callable { + CallableMethod() { not isUninteresting(this) } + + /** + * Gets information about the external API in the form expected by the MaD modeling framework. + */ + string getApiName() { + result = + this.getDeclaringType().getPackage() + "." + this.getDeclaringType().nestedName() + "#" + + this.getName() + paramsString(this) + } + + private string getJarName() { + result = this.getCompilationUnit().getParentContainer*().(JarFile).getBaseName() + } + + private string getJarVersion() { + result = this.getCompilationUnit().getParentContainer*().(JarFile).getSpecificationVersion() + } + + /** + * Gets the jar file containing this API. Normalizes the Java Runtime to "rt.jar" despite the presence of modules. + */ + string jarContainer() { + result = this.getJarName() + or + not exists(this.getJarName()) and result = "rt.jar" + } + + /** + * Gets the version of the JAR file containing this API. Empty if no version is found in the JAR. + */ + string jarVersion() { + result = this.getJarVersion() + or + not exists(this.getJarVersion()) and result = "" + } + + /** Gets a node that is an input to a call to this API. */ + private DataFlow::Node getAnInput() { + exists(Call call | call.getCallee().getSourceDeclaration() = this | + result.asExpr().(Argument).getCall() = call or + result.(ArgumentNode).getCall().asCall() = call + ) + } + + /** Gets a node that is an output from a call to this API. */ + private DataFlow::Node getAnOutput() { + exists(Call call | call.getCallee().getSourceDeclaration() = this | + result.asExpr() = call or + result.(DataFlow::PostUpdateNode).getPreUpdateNode().(ArgumentNode).getCall().asCall() = call + ) + } + + /** Holds if this API has a supported summary. */ + pragma[nomagic] + predicate hasSummary() { + this = any(SummarizedCallable sc).asCallable() or + TaintTracking::localAdditionalTaintStep(this.getAnInput(), _) + } + + pragma[nomagic] + predicate isSource() { + this.getAnOutput() instanceof RemoteFlowSource or sourceNode(this.getAnOutput(), _) + } + + /** Holds if this API is a known sink. */ + pragma[nomagic] + predicate isSink() { sinkNode(this.getAnInput(), _) } + + /** Holds if this API is a known neutral. */ + pragma[nomagic] + predicate isNeutral() { + exists( + string namespace, string type, string name, string signature, string kind, string provenance + | + neutralModel(namespace, type, name, signature, kind, provenance) and + this = interpretElement(namespace, type, false, name, signature, "") + ) + } + + /** + * Holds if this API is supported by existing CodeQL libraries, that is, it is either a + * recognized source, sink or neutral or it has a flow summary. + */ + predicate isSupported() { + this.hasSummary() or this.isSource() or this.isSink() or this.isNeutral() + } +} + +boolean isSupported(CallableMethod method) { + method.isSupported() and result = true + or + not method.isSupported() and result = false +} + +string supportedType(CallableMethod method) { + method.isSink() and result = "sink" + or + method.isSource() and result = "source" + or + method.hasSummary() and result = "summary" + or + method.isNeutral() and result = "neutral" + or + not method.isSupported() and result = "" +} + +string methodClassification(Call method) { + isInTestFile(method.getLocation().getFile()) and result = "test" + or + method.getFile() instanceof GeneratedFile and result = "generated" + or + not isInTestFile(method.getLocation().getFile()) and + not method.getFile() instanceof GeneratedFile and + result = "source" +} diff --git a/java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql b/java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql new file mode 100644 index 00000000000..c49770e94af --- /dev/null +++ b/java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql @@ -0,0 +1,29 @@ +/** + * @name Fetch model editor methods (application mode) + * @description A list of 3rd party APIs used in the codebase. Excludes test and generated code. + * @kind problem + * @problem.severity recommendation + * @id java/utils/modeleditor/fetch-application-mode-methods + * @tags modeleditor fetch methods application-mode + */ + +private import java +private import AutomodelVsCode + +class ExternalApi extends CallableMethod { + ExternalApi() { not this.fromSource() } +} + +private Call aUsage(ExternalApi api) { result.getCallee().getSourceDeclaration() = api } + +from + ExternalApi externalApi, string apiName, boolean supported, Call usage, string type, + string classification +where + apiName = externalApi.getApiName() and + supported = isSupported(externalApi) and + usage = aUsage(externalApi) and + type = supportedType(externalApi) and + classification = methodClassification(usage) +select usage, apiName, supported.toString(), "supported", externalApi.jarContainer(), + externalApi.jarVersion(), type, "type", classification, "classification" diff --git a/java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql b/java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql new file mode 100644 index 00000000000..d115105d190 --- /dev/null +++ b/java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql @@ -0,0 +1,23 @@ +/** + * @name Fetch model editor methods (framework mode) + * @description A list of APIs callable by consumers. Excludes test and generated code. + * @kind problem + * @problem.severity recommendation + * @id java/utils/modeleditor/fetch-framework-mode-methods + * @tags modeleditor fetch methods framework-mode + */ + +private import java +private import semmle.code.java.dataflow.internal.ModelExclusions +private import AutomodelVsCode + +class PublicMethodFromSource extends CallableMethod, ModelApi { } + +from PublicMethodFromSource publicMethod, string apiName, boolean supported, string type +where + apiName = publicMethod.getApiName() and + supported = isSupported(publicMethod) and + type = supportedType(publicMethod) +select publicMethod, apiName, supported.toString(), "supported", + publicMethod.getCompilationUnit().getParentContainer().getBaseName(), "library", type, "type", + "unknown", "classification" diff --git a/java/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected b/java/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected new file mode 100644 index 00000000000..22273baa31e --- /dev/null +++ b/java/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected @@ -0,0 +1,8 @@ +| com/github/codeql/test/NonPublicClass.java:5:5:5:28 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:7:5:7:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:11:5:11:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:15:5:15:45 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:15:24:15:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:15:24:15:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | supported | rt.jar | | summary | type | source | classification | +| com/github/codeql/test/PublicClass.java:19:5:19:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicInterface.java:7:7:7:29 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | diff --git a/java/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref b/java/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref new file mode 100644 index 00000000000..9d245465731 --- /dev/null +++ b/java/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref @@ -0,0 +1 @@ +utils/modeleditor/FetchApplicationModeMethods.ql \ No newline at end of file diff --git a/java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected b/java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected new file mode 100644 index 00000000000..9586e695a16 --- /dev/null +++ b/java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected @@ -0,0 +1,5 @@ +| com/github/codeql/test/PublicClass.java:6:15:6:19 | stuff | com.github.codeql.test.PublicClass#stuff(String) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicClass.java:10:22:10:32 | staticStuff | com.github.codeql.test.PublicClass#staticStuff(String) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicClass.java:14:18:14:31 | nonPublicStuff | com.github.codeql.test.PublicClass#nonPublicStuff(String) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicInterface#stuff(String) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | com.github.codeql.test.PublicInterface#staticStuff(String) | false | supported | test | library | | type | unknown | classification | diff --git a/java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref b/java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref new file mode 100644 index 00000000000..39bdee5a08d --- /dev/null +++ b/java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref @@ -0,0 +1 @@ +utils/modeleditor/FetchFrameworkModeMethods.ql \ No newline at end of file diff --git a/java/ql/test/utils/modeleditor/com/github/codeql/test/NonPublicClass.java b/java/ql/test/utils/modeleditor/com/github/codeql/test/NonPublicClass.java new file mode 100644 index 00000000000..5ad1f42123a --- /dev/null +++ b/java/ql/test/utils/modeleditor/com/github/codeql/test/NonPublicClass.java @@ -0,0 +1,7 @@ +package com.github.codeql.test; + +class NonPublicClass { + public void noCandidates(String here) { + System.out.println(here); + } +} diff --git a/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java new file mode 100644 index 00000000000..4e9228c167a --- /dev/null +++ b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java @@ -0,0 +1,21 @@ +package com.github.codeql.test; + +import java.nio.file.Paths; + +public class PublicClass { + public void stuff(String arg) { + System.out.println(arg); + } + + public static void staticStuff(String arg) { + System.out.println(arg); + } + + protected void nonPublicStuff(String arg) { + System.out.println(Paths.get("foo", arg)); + } + + void packagePrivateStuff(String arg) { + System.out.println(arg); + } +} diff --git a/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicInterface.java b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicInterface.java new file mode 100644 index 00000000000..cde005d4c4a --- /dev/null +++ b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicInterface.java @@ -0,0 +1,9 @@ +package com.github.codeql.test; + +public interface PublicInterface { + public void stuff(String arg); + + public static void staticStuff(String arg) { + System.out.println(arg); + } +} diff --git a/misc/suite-helpers/code-scanning-selectors.yml b/misc/suite-helpers/code-scanning-selectors.yml index a237728316b..37f4243fc6a 100644 --- a/misc/suite-helpers/code-scanning-selectors.yml +++ b/misc/suite-helpers/code-scanning-selectors.yml @@ -30,4 +30,5 @@ - /Diagnostics/Internal/.*/ - exclude: tags contain: + - modeleditor - modelgenerator diff --git a/misc/suite-helpers/security-and-quality-selectors.yml b/misc/suite-helpers/security-and-quality-selectors.yml index 90a22352b80..da45710e0b7 100644 --- a/misc/suite-helpers/security-and-quality-selectors.yml +++ b/misc/suite-helpers/security-and-quality-selectors.yml @@ -31,4 +31,5 @@ - /Diagnostics/Internal/.*/ - exclude: tags contain: + - modeleditor - modelgenerator diff --git a/misc/suite-helpers/security-experimental-selectors.yml b/misc/suite-helpers/security-experimental-selectors.yml index 1ea42707b75..cf881a864f9 100644 --- a/misc/suite-helpers/security-experimental-selectors.yml +++ b/misc/suite-helpers/security-experimental-selectors.yml @@ -42,4 +42,5 @@ - /Diagnostics/Internal/.*/ - exclude: tags contain: + - modeleditor - model-generator diff --git a/misc/suite-helpers/security-extended-selectors.yml b/misc/suite-helpers/security-extended-selectors.yml index aff154d0d30..8e5845b70e6 100644 --- a/misc/suite-helpers/security-extended-selectors.yml +++ b/misc/suite-helpers/security-extended-selectors.yml @@ -36,4 +36,5 @@ - /Diagnostics/Internal/.*/ - exclude: tags contain: + - modeleditor - modelgenerator From 585fb9db7ee9e6780f503d7f4c4b9e828634faa3 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 13 Sep 2023 13:12:55 +0200 Subject: [PATCH 349/788] C#: Add VS Code model editor queries --- .../src/utils/modeleditor/AutomodelVsCode.qll | 176 ++++++++++++++++++ .../FetchApplicationModeMethods.ql | 32 ++++ .../modeleditor/FetchFrameworkModeMethods.ql | 25 +++ .../FetchApplicationModeMethods.expected | 8 + .../FetchApplicationModeMethods.qlref | 1 + .../FetchFrameworkModeMethods.expected | 5 + .../FetchFrameworkModeMethods.qlref | 1 + .../test/utils/modeleditor/NonPublicClass.cs | 11 ++ .../ql/test/utils/modeleditor/PublicClass.cs | 26 +++ .../test/utils/modeleditor/PublicInterface.cs | 13 ++ .../suite-helpers/code-scanning-selectors.yml | 1 + .../security-and-quality-selectors.yml | 1 + .../security-experimental-selectors.yml | 1 + .../security-extended-selectors.yml | 1 + 14 files changed, 302 insertions(+) create mode 100644 csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll create mode 100644 csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql create mode 100644 csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql create mode 100644 csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected create mode 100644 csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref create mode 100644 csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected create mode 100644 csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref create mode 100644 csharp/ql/test/utils/modeleditor/NonPublicClass.cs create mode 100644 csharp/ql/test/utils/modeleditor/PublicClass.cs create mode 100644 csharp/ql/test/utils/modeleditor/PublicInterface.cs diff --git a/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll b/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll new file mode 100644 index 00000000000..09c33fafa5e --- /dev/null +++ b/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll @@ -0,0 +1,176 @@ +/** Provides classes and predicates related to handling APIs for the VS Code extension. */ + +private import csharp +private import dotnet +private import semmle.code.csharp.dispatch.Dispatch +private import semmle.code.csharp.dataflow.ExternalFlow +private import semmle.code.csharp.dataflow.FlowSummary +private import semmle.code.csharp.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon +private import semmle.code.csharp.dataflow.internal.DataFlowPrivate +private import semmle.code.csharp.dataflow.internal.DataFlowDispatch as DataFlowDispatch +private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl +private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate +private import semmle.code.csharp.frameworks.Test +private import semmle.code.csharp.security.dataflow.flowsources.Remote + +pragma[nomagic] +private predicate isTestNamespace(Namespace ns) { + ns.getFullName() + .matches([ + "NUnit.Framework%", "Xunit%", "Microsoft.VisualStudio.TestTools.UnitTesting%", "Moq%" + ]) +} + +/** + * A test library. + */ +class TestLibrary extends RefType { + TestLibrary() { isTestNamespace(this.getNamespace()) } +} + +/** Holds if the given callable is not worth supporting. */ +private predicate isUninteresting(DotNet::Declaration c) { + c.getDeclaringType() instanceof TestLibrary or + c.(Constructor).isParameterless() or + c.getDeclaringType() instanceof AnonymousClass +} + +/** + * An callable method from either the C# Standard Library, a 3rd party library, or from the source. + */ +class CallableMethod extends DotNet::Declaration { + CallableMethod() { + this.(Modifiable).isEffectivelyPublic() and + not isUninteresting(this) + } + + /** + * Gets the unbound type, name and parameter types of this API. + */ + bindingset[this] + private string getSignature() { + result = + nestedName(this.getDeclaringType().getUnboundDeclaration()) + "#" + this.getName() + "(" + + parameterQualifiedTypeNamesToString(this) + ")" + } + + /** + * Gets the namespace of this API. + */ + bindingset[this] + string getNamespace() { this.getDeclaringType().hasQualifiedName(result, _) } + + /** + * Gets the namespace and signature of this API. + */ + bindingset[this] + string getApiName() { result = this.getNamespace() + "." + this.getSignature() } + + private string getDllName() { result = this.getLocation().(Assembly).getName() } + + private string getDllVersion() { result = this.getLocation().(Assembly).getVersion().toString() } + + string dllName() { + result = this.getDllName() + or + not exists(this.getDllName()) and result = this.getFile().getBaseName() + } + + string dllVersion() { + result = this.getDllVersion() + or + not exists(this.getDllVersion()) and result = "" + } + + /** Gets a node that is an input to a call to this API. */ + private ArgumentNode getAnInput() { + result + .getCall() + .(DataFlowDispatch::NonDelegateDataFlowCall) + .getATarget(_) + .getUnboundDeclaration() = this + } + + /** Gets a node that is an output from a call to this API. */ + private DataFlow::Node getAnOutput() { + exists( + Call c, DataFlowDispatch::NonDelegateDataFlowCall dc, DataFlowImplCommon::ReturnKindExt ret + | + dc.getDispatchCall().getCall() = c and + c.getTarget().getUnboundDeclaration() = this + | + result = ret.getAnOutNode(dc) + ) + } + + /** Holds if this API has a supported summary. */ + pragma[nomagic] + predicate hasSummary() { + this instanceof SummarizedCallable + or + defaultAdditionalTaintStep(this.getAnInput(), _) + } + + /** Holds if this API is a known source. */ + pragma[nomagic] + predicate isSource() { + this.getAnOutput() instanceof RemoteFlowSource or sourceNode(this.getAnOutput(), _) + } + + /** Holds if this API is a known sink. */ + pragma[nomagic] + predicate isSink() { sinkNode(this.getAnInput(), _) } + + /** Holds if this API is a known neutral. */ + pragma[nomagic] + predicate isNeutral() { this instanceof FlowSummaryImpl::Public::NeutralCallable } + + /** + * Holds if this API is supported by existing CodeQL libraries, that is, it is either a + * recognized source, sink or neutral or it has a flow summary. + */ + predicate isSupported() { + this.hasSummary() or this.isSource() or this.isSink() or this.isNeutral() + } +} + +boolean isSupported(CallableMethod callableMethod) { + callableMethod.isSupported() and result = true + or + not callableMethod.isSupported() and + result = false +} + +string supportedType(CallableMethod method) { + method.isSink() and result = "sink" + or + method.isSource() and result = "source" + or + method.hasSummary() and result = "summary" + or + method.isNeutral() and result = "neutral" + or + not method.isSupported() and result = "" +} + +string methodClassification(Call method) { + method.getFile() instanceof TestFile and result = "test" + or + not method.getFile() instanceof TestFile and + result = "source" +} + +/** + * Gets the nested name of the declaration. + * + * If the declaration is not a nested type, the result is the same as `getName()`. + * Otherwise the name of the nested type is prefixed with a `+` and appended to + * the name of the enclosing type, which might be a nested type as well. + */ +private string nestedName(Declaration declaration) { + not exists(declaration.getDeclaringType().getUnboundDeclaration()) and + result = declaration.getName() + or + nestedName(declaration.getDeclaringType().getUnboundDeclaration()) + "+" + declaration.getName() = + result +} diff --git a/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql b/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql new file mode 100644 index 00000000000..434684b7b87 --- /dev/null +++ b/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql @@ -0,0 +1,32 @@ +/** + * @name Fetch model editor methods (application mode) + * @description A list of 3rd party APIs used in the codebase. Excludes test and generated code. + * @kind problem + * @problem.severity recommendation + * @id csharp/utils/modeleditor/fetch-application-mode-methods + * @tags modeleditor fetch methods application-mode + */ + +private import csharp +private import AutomodelVsCode + +class ExternalApi extends CallableMethod { + ExternalApi() { + this.isUnboundDeclaration() and + this.fromLibrary() and + this.(Modifiable).isEffectivelyPublic() + } +} + +private Call aUsage(ExternalApi api) { result.getTarget().getUnboundDeclaration() = api } + +from + ExternalApi api, string apiName, boolean supported, Call usage, string type, string classification +where + apiName = api.getApiName() and + supported = isSupported(api) and + usage = aUsage(api) and + type = supportedType(api) and + classification = methodClassification(usage) +select usage, apiName, supported.toString(), "supported", api.dllName(), api.dllVersion(), type, + "type", classification, "classification" diff --git a/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql b/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql new file mode 100644 index 00000000000..1371749d12d --- /dev/null +++ b/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql @@ -0,0 +1,25 @@ +/** + * @name Fetch model editor methods (framework mode) + * @description A list of APIs callable by consumers. Excludes test and generated code. + * @kind problem + * @problem.severity recommendation + * @id csharp/utils/modeleditor/fetch-framework-mode-methods + * @tags modeleditor fetch methods framework-mode + */ + +private import csharp +private import dotnet +private import semmle.code.csharp.frameworks.Test +private import AutomodelVsCode + +class PublicMethod extends CallableMethod { + PublicMethod() { this.fromSource() and not this.getFile() instanceof TestFile } +} + +from PublicMethod publicMethod, string apiName, boolean supported, string type +where + apiName = publicMethod.getApiName() and + supported = isSupported(publicMethod) and + type = supportedType(publicMethod) +select publicMethod, apiName, supported.toString(), "supported", + publicMethod.getFile().getBaseName(), "library", type, "type", "unknown", "classification" diff --git a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected new file mode 100644 index 00000000000..2423ed13887 --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected @@ -0,0 +1,8 @@ +| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicClass.cs:9:9:9:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicClass.cs:14:9:14:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicClass.cs:19:9:19:51 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | supported | System.Console | 7.0.0.0 | source | type | source | classification | +| PublicClass.cs:24:9:24:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicInterface.cs:11:9:11:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | diff --git a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref new file mode 100644 index 00000000000..9d245465731 --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref @@ -0,0 +1 @@ +utils/modeleditor/FetchApplicationModeMethods.ql \ No newline at end of file diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected new file mode 100644 index 00000000000..f1e64507d98 --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected @@ -0,0 +1,5 @@ +| PublicClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicClass#stuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | +| PublicClass.cs:12:24:12:34 | staticStuff | GitHub.CodeQL.PublicClass#staticStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | +| PublicClass.cs:17:20:17:33 | nonPublicStuff | GitHub.CodeQL.PublicClass#nonPublicStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | +| PublicInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicInterface#stuff(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | +| PublicInterface.cs:9:17:9:27 | staticStuff | GitHub.CodeQL.PublicInterface#staticStuff(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref new file mode 100644 index 00000000000..39bdee5a08d --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref @@ -0,0 +1 @@ +utils/modeleditor/FetchFrameworkModeMethods.ql \ No newline at end of file diff --git a/csharp/ql/test/utils/modeleditor/NonPublicClass.cs b/csharp/ql/test/utils/modeleditor/NonPublicClass.cs new file mode 100644 index 00000000000..f2550bc81c6 --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/NonPublicClass.cs @@ -0,0 +1,11 @@ +using System; + +namespace GitHub.CodeQL; + +class NonPublicClass +{ + public void noCandidates(String here) + { + Console.WriteLine(here); + } +} diff --git a/csharp/ql/test/utils/modeleditor/PublicClass.cs b/csharp/ql/test/utils/modeleditor/PublicClass.cs new file mode 100644 index 00000000000..06090e228a5 --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/PublicClass.cs @@ -0,0 +1,26 @@ +using System; + +namespace GitHub.CodeQL; + +public class PublicClass +{ + public void stuff(String arg) + { + Console.WriteLine(arg); + } + + public static void staticStuff(String arg) + { + Console.WriteLine(arg); + } + + protected void nonPublicStuff(String arg) + { + Console.WriteLine(arg + Console.ReadLine()); + } + + internal void internalStuff(String arg) + { + Console.WriteLine(arg); + } +} diff --git a/csharp/ql/test/utils/modeleditor/PublicInterface.cs b/csharp/ql/test/utils/modeleditor/PublicInterface.cs new file mode 100644 index 00000000000..d3248702f6c --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/PublicInterface.cs @@ -0,0 +1,13 @@ +using System; + +namespace GitHub.CodeQL; + +public interface PublicInterface +{ + void stuff(String arg); + + static void staticStuff(String arg) + { + Console.WriteLine(arg); + } +} diff --git a/misc/suite-helpers/code-scanning-selectors.yml b/misc/suite-helpers/code-scanning-selectors.yml index a237728316b..37f4243fc6a 100644 --- a/misc/suite-helpers/code-scanning-selectors.yml +++ b/misc/suite-helpers/code-scanning-selectors.yml @@ -30,4 +30,5 @@ - /Diagnostics/Internal/.*/ - exclude: tags contain: + - modeleditor - modelgenerator diff --git a/misc/suite-helpers/security-and-quality-selectors.yml b/misc/suite-helpers/security-and-quality-selectors.yml index 90a22352b80..da45710e0b7 100644 --- a/misc/suite-helpers/security-and-quality-selectors.yml +++ b/misc/suite-helpers/security-and-quality-selectors.yml @@ -31,4 +31,5 @@ - /Diagnostics/Internal/.*/ - exclude: tags contain: + - modeleditor - modelgenerator diff --git a/misc/suite-helpers/security-experimental-selectors.yml b/misc/suite-helpers/security-experimental-selectors.yml index 1ea42707b75..cf881a864f9 100644 --- a/misc/suite-helpers/security-experimental-selectors.yml +++ b/misc/suite-helpers/security-experimental-selectors.yml @@ -42,4 +42,5 @@ - /Diagnostics/Internal/.*/ - exclude: tags contain: + - modeleditor - model-generator diff --git a/misc/suite-helpers/security-extended-selectors.yml b/misc/suite-helpers/security-extended-selectors.yml index aff154d0d30..8e5845b70e6 100644 --- a/misc/suite-helpers/security-extended-selectors.yml +++ b/misc/suite-helpers/security-extended-selectors.yml @@ -36,4 +36,5 @@ - /Diagnostics/Internal/.*/ - exclude: tags contain: + - modeleditor - modelgenerator From 0cd4e32ed8c4290764967394a617643370890558 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 13 Sep 2023 12:15:40 +0100 Subject: [PATCH 350/788] C++: Add AST consistency query. --- cpp/ql/src/Metrics/Internal/ASTConsistency.ql | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 cpp/ql/src/Metrics/Internal/ASTConsistency.ql diff --git a/cpp/ql/src/Metrics/Internal/ASTConsistency.ql b/cpp/ql/src/Metrics/Internal/ASTConsistency.ql new file mode 100644 index 00000000000..8fad2106a90 --- /dev/null +++ b/cpp/ql/src/Metrics/Internal/ASTConsistency.ql @@ -0,0 +1,18 @@ +/** + * @name Count AST inconsistencies + * @description Counts the various AST inconsistencies that may occur. + * This query is for internal use only and may change without notice. + * @kind table + * @id cpp/count-ast-inconsistencies + */ + +import cpp + +predicate hasDuplicateFunctionEntryPointLocation(Function func) { + count(func.getEntryPoint().getLocation()) > 1 +} + +predicate hasDuplicateFunctionEntryPoint(Function func) { count(func.getEntryPoint()) > 1 } + +select count(Function f | hasDuplicateFunctionEntryPoint(f) | f) as duplicateFunctionEntryPoint, + count(Function f | hasDuplicateFunctionEntryPointLocation(f) | f) as duplicateFunctionEntryPointLocation From 0c10fa0c87b276d7bc4c1194952dd8cc79144c79 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Wed, 13 Sep 2023 12:21:30 +0100 Subject: [PATCH 351/788] CPP: Add a location to TranslatedElement to help with debugging IR creation --- .../cpp/ir/implementation/raw/internal/TranslatedElement.qll | 3 +++ .../cpp/ir/implementation/raw/internal/TranslatedGlobalVar.qll | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll index 409d76f4fd5..0d19ea2885f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll @@ -824,6 +824,9 @@ abstract class TranslatedElement extends TTranslatedElement { /** DEPRECATED: Alias for getAst */ deprecated Locatable getAST() { result = this.getAst() } + /** Gets the location of this element. */ + Location getLocation() { result = this.getAst().getLocation() } + /** * Get the first instruction to be executed in the evaluation of this element. */ diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedGlobalVar.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedGlobalVar.qll index ea09270dfbf..345fe6fbabf 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedGlobalVar.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedGlobalVar.qll @@ -22,8 +22,6 @@ class TranslatedStaticStorageDurationVarInit extends TranslatedRootElement, final override Declaration getFunction() { result = var } - final Location getLocation() { result = var.getLocation() } - override Instruction getFirstInstruction() { result = this.getInstruction(EnterFunctionTag()) } override TranslatedElement getChild(int n) { From b5ec99cb2fa357ccaace6d31fc0ed841e4fc42bf Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Wed, 13 Sep 2023 12:27:25 +0100 Subject: [PATCH 352/788] Ruby: fix missing qldoc --- .../codeql/ruby/security/CodeInjectionCustomizations.qll | 3 +++ .../HardcodedDataInterpretedAsCodeCustomizations.qll | 2 ++ .../ruby/security/InsecureDownloadCustomizations.qll | 9 +++++++++ 3 files changed, 14 insertions(+) diff --git a/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll index f174210e1fd..36a20f150c9 100644 --- a/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll @@ -31,6 +31,9 @@ module CodeInjection { /** A flow state used to distinguish whether an attacker controls the entire string. */ class State extends TState { + /** + * Gets a string representation of this state. + */ string toString() { result = this.getStringRepresentation() } /** diff --git a/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeCustomizations.qll index 0a0f9a5312b..daba69f6ca2 100644 --- a/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/HardcodedDataInterpretedAsCodeCustomizations.qll @@ -35,7 +35,9 @@ module HardcodedDataInterpretedAsCode { * Flow states used to distinguish value-preserving flow from taint flow. */ newtype State = + /** Flow state used to track value-preserving flow. */ Data() or + /** Flow state used to tainted data (non-value preserving flow). */ Taint() } diff --git a/ruby/ql/lib/codeql/ruby/security/InsecureDownloadCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/InsecureDownloadCustomizations.qll index 7724d581b45..cbd4dd88e7a 100644 --- a/ruby/ql/lib/codeql/ruby/security/InsecureDownloadCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/InsecureDownloadCustomizations.qll @@ -25,6 +25,9 @@ module InsecureDownload { */ abstract deprecated DataFlow::FlowState getALabel(); + /** + * Gets a flow-label for this source. + */ abstract Label::State getAFlowLabel(); } @@ -43,6 +46,9 @@ module InsecureDownload { */ abstract deprecated DataFlow::FlowState getALabel(); + /** + * Gets a flow-label where this sink is vulnerable. + */ abstract Label::State getAFlowLabel(); } @@ -83,8 +89,11 @@ module InsecureDownload { * Flow-labels for reasoning about download of sensitive file through insecure connection. */ newtype State = + /** A flow-label for a URL that is downloaded over an insecure connection. */ InsecureState() or + /** A flow-label for a URL that is sensitive. */ SensitiveState() or + /** A flow-label for file URLs that are both sensitive and downloaded over an insecure connection. */ SensitiveInsecureState() } From 0127b779b5dd49da3b9b4e3ba23133ef5e519e5f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 13 Sep 2023 11:25:39 +0200 Subject: [PATCH 353/788] C#: Address review comments. --- .../DependencyManager.cs | 27 ++++++++++++++----- .../DotNet.cs | 22 +++++++++------ .../IDotNet.cs | 4 +-- .../Semmle.Extraction.Tests/Runtime.cs | 13 ++++++--- 4 files changed, 46 insertions(+), 20 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 8f2572871f4..facfb73543e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -352,10 +352,10 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } - private bool RestoreProject(string project, string? pathToNugetConfig = null) => - dotnet.RestoreProjectToDirectory(project, packageDirectory.DirInfo.FullName, pathToNugetConfig); + private bool RestoreProject(string project, out string stdout, string? pathToNugetConfig = null) => + dotnet.RestoreProjectToDirectory(project, packageDirectory.DirInfo.FullName, out stdout, pathToNugetConfig); - private bool RestoreSolution(string solution, out IList projects) => + private bool RestoreSolution(string solution, out IEnumerable projects) => dotnet.RestoreSolutionToDirectory(solution, packageDirectory.DirInfo.FullName, out projects); /// @@ -370,8 +370,22 @@ namespace Semmle.Extraction.CSharp.DependencyFetching return restoredProjects; }); - private void RestoreProjects(IEnumerable projects) => - Parallel.ForEach(projects, new ParallelOptions { MaxDegreeOfParallelism = options.Threads }, project => RestoreProject(project)); + private void RestoreProjects(IEnumerable projects) + { + var stdoutLines = projects + .AsParallel() + .WithDegreeOfParallelism(options.Threads) + .Select(project => + { + RestoreProject(project, out var stdout); + return stdout; + }) + .ToList(); + foreach (var line in stdoutLines) + { + Console.WriteLine(line); + } + } private void DownloadMissingPackages(List allFiles) { @@ -412,7 +426,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching continue; } - success = RestoreProject(tempDir.DirInfo.FullName, nugetConfig); + success = RestoreProject(tempDir.DirInfo.FullName, out var stdout, nugetConfig); + Console.WriteLine(stdout); // TODO: the restore might fail, we could retry with a prerelease (*-* instead of *) version of the package. if (!success) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs index 4adf7fa1c5d..ac8434f7b8f 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs @@ -33,12 +33,17 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } } - private ProcessStartInfo MakeDotnetStartInfo(string args, bool redirectStandardOutput) => - new ProcessStartInfo(dotnet, args) + private ProcessStartInfo MakeDotnetStartInfo(string args, bool redirectStandardOutput) + { + var startInfo = new ProcessStartInfo(dotnet, args) { UseShellExecute = false, RedirectStandardOutput = redirectStandardOutput }; + // Set the .NET CLI language to English to avoid localized output. + startInfo.EnvironmentVariables["DOTNET_CLI_UI_LANGUAGE"] = "en"; + return startInfo; + } private bool RunCommand(string args) { @@ -70,17 +75,19 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private static string GetRestoreArgs(string projectOrSolutionFile, string packageDirectory) => $"restore --no-dependencies \"{projectOrSolutionFile}\" --packages \"{packageDirectory}\" /p:DisableImplicitNuGetFallbackFolder=true"; - public bool RestoreProjectToDirectory(string projectFile, string packageDirectory, string? pathToNugetConfig = null) + public bool RestoreProjectToDirectory(string projectFile, string packageDirectory, out string stdout, string? pathToNugetConfig = null) { var args = GetRestoreArgs(projectFile, packageDirectory); if (pathToNugetConfig != null) { args += $" --configfile \"{pathToNugetConfig}\""; } - return RunCommand(args); + var success = RunCommand(args, out var output); + stdout = string.Join("\n", output); + return success; } - public bool RestoreSolutionToDirectory(string solutionFile, string packageDirectory, out IList projects) + public bool RestoreSolutionToDirectory(string solutionFile, string packageDirectory, out IEnumerable projects) { var args = GetRestoreArgs(solutionFile, packageDirectory); args += " --verbosity normal"; @@ -90,12 +97,11 @@ namespace Semmle.Extraction.CSharp.DependencyFetching projects = output .Select(line => regex.Match(line)) .Where(match => match.Success) - .Select(match => match.Groups[1].Value) - .ToList(); + .Select(match => match.Groups[1].Value); return true; } - projects = new List(); + projects = Array.Empty(); return false; } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs index 9a3f8b5ec64..f4fe6714ea7 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs @@ -4,8 +4,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { internal interface IDotNet { - bool RestoreProjectToDirectory(string project, string directory, string? pathToNugetConfig = null); - bool RestoreSolutionToDirectory(string solution, string directory, out IList projects); + bool RestoreProjectToDirectory(string project, string directory, out string stdout, string? pathToNugetConfig = null); + bool RestoreSolutionToDirectory(string solutionFile, string packageDirectory, out IEnumerable projects); bool New(string folder); bool AddPackage(string folder, string package); IList GetListedRuntimes(); diff --git a/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs b/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs index 75b3f98b688..64d06c9a1e7 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs @@ -1,4 +1,5 @@ using Xunit; +using System; using System.Collections.Generic; using Semmle.Extraction.CSharp.DependencyFetching; @@ -18,11 +19,15 @@ namespace Semmle.Extraction.Tests public bool New(string folder) => true; - public bool RestoreProjectToDirectory(string project, string directory, string? pathToNugetConfig = null) => true; - - public bool RestoreSolutionToDirectory(string solution, string directory, out IList projects) + public bool RestoreProjectToDirectory(string project, string directory, out string stdout, string? pathToNugetConfig = null) { - projects = new List(); + stdout = ""; + return true; + } + + public bool RestoreSolutionToDirectory(string solution, string directory, out IEnumerable projects) + { + projects = Array.Empty(); return true; } From 7d931492d8f4e6845c550c20cfcb2a1951a746c1 Mon Sep 17 00:00:00 2001 From: yoff Date: Wed, 13 Sep 2023 13:37:18 +0200 Subject: [PATCH 354/788] Update python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll Co-authored-by: Rasmus Wriedt Larsen --- .../python/security/dataflow/SqlInjectionCustomizations.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll index e10e404450a..fd2f08934c3 100644 --- a/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll @@ -9,7 +9,6 @@ private import semmle.python.dataflow.new.DataFlow private import semmle.python.Concepts private import semmle.python.dataflow.new.RemoteFlowSources private import semmle.python.dataflow.new.BarrierGuards -private import semmle.python.Frameworks /** * Provides default sources, sinks and sanitizers for detecting From f3a78efe03a28fd370b18c60ce304bdf81c433dd Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 13 Sep 2023 14:04:20 +0200 Subject: [PATCH 355/788] Ruby: Fix semantic merge conflict --- .../DataFlowConsistency.ql | 4 +++ .../dataflow/internal/DataFlowPrivate.qll | 28 +++++++++++-------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/ruby/ql/consistency-queries/DataFlowConsistency.ql b/ruby/ql/consistency-queries/DataFlowConsistency.ql index d064eeb3701..c0dd1757128 100644 --- a/ruby/ql/consistency-queries/DataFlowConsistency.ql +++ b/ruby/ql/consistency-queries/DataFlowConsistency.ql @@ -43,6 +43,10 @@ private module Input implements InputSig { arg.asExpr().getASuccessor(any(SuccessorTypes::ConditionalSuccessor c)).getASuccessor*() = n and n.getASplit() instanceof Split::ConditionalCompletionSplit ) + or + // Synthetic block parameter nodes are passed directly as lambda-self reference + // arguments to all `yield` calls + arg instanceof ArgumentNodes::BlockParameterArgumentNode } } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 010067604e9..f53fb80fcea 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -916,7 +916,7 @@ private module ParameterNodes { * The value of a block parameter at function entry, viewed as a node in a data * flow graph. */ - class BlockParameterNode extends ParameterNodeImpl, ArgumentNode, TBlockParameterNode { + class BlockParameterNode extends ParameterNodeImpl, TBlockParameterNode { private MethodBase method; BlockParameterNode() { this = TBlockParameterNode(method) } @@ -935,16 +935,6 @@ private module ParameterNodes { this.getMethod() = result.getExpr().(YieldCall).getEnclosingMethod() } - // needed for variable capture flow - override predicate sourceArgumentOf(CfgNodes::ExprNodes::CallCfgNode call, ArgumentPosition pos) { - call = this.getAYieldCall() and - pos.isLambdaSelf() - } - - override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { - this.sourceArgumentOf(call.asCall(), pos) - } - override CfgScope getCfgScope() { result = method } override Location getLocationImpl() { @@ -1199,7 +1189,7 @@ abstract class ArgumentNode extends Node { final DataFlowCall getCall() { this.argumentOf(result, _) } } -private module ArgumentNodes { +module ArgumentNodes { /** A data-flow node that represents an explicit call argument. */ class ExplicitArgumentNode extends ArgumentNode { Argument arg; @@ -1215,6 +1205,20 @@ private module ArgumentNodes { } } + class BlockParameterArgumentNode extends BlockParameterNode, ArgumentNode { + BlockParameterArgumentNode() { exists(this.getAYieldCall()) } + + // needed for variable capture flow + override predicate sourceArgumentOf(CfgNodes::ExprNodes::CallCfgNode call, ArgumentPosition pos) { + call = this.getAYieldCall() and + pos.isLambdaSelf() + } + + override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { + this.sourceArgumentOf(call.asCall(), pos) + } + } + private class SummaryArgumentNode extends FlowSummaryNode, ArgumentNode { private DataFlowCall call_; private ArgumentPosition pos_; From f15cbb9316455ffc04e93b3ef112da7c15d9952b Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 13 Sep 2023 13:46:40 +0200 Subject: [PATCH 356/788] Ruby: Simplify `viableSourceCallableNonInit` --- .../dataflow/internal/DataFlowDispatch.qll | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll index 5f1337f7a5c..b3610cde997 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll @@ -309,8 +309,14 @@ predicate isUserDefinedNew(SingletonMethod new) { } private Callable viableSourceCallableNonInit(RelevantCall call) { - result = getTarget(call) and - not result = blockCall(call) // handled by `lambdaCreation`/`lambdaCall` + result = getTargetInstance(call, _) + or + result = getTargetSingleton(call, _) + or + exists(Module cls, string method | + superCall(call, cls, method) and + result = lookupMethod(cls.getAnImmediateAncestor(), method) + ) } private Callable viableSourceCallableInit(RelevantCall call) { result = getInitializeTarget(call) } @@ -400,14 +406,7 @@ private module Cached { cached CfgScope getTarget(RelevantCall call) { - result = getTargetInstance(call, _) - or - result = getTargetSingleton(call, _) - or - exists(Module cls, string method | - superCall(call, cls, method) and - result = lookupMethod(cls.getAnImmediateAncestor(), method) - ) + result = viableSourceCallableNonInit(call) or result = blockCall(call) } From 95296f15182c1abc939ed29b2eea4b589a952441 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 13 Sep 2023 14:45:47 +0200 Subject: [PATCH 357/788] Java: Use don't care expression for kind and provenance --- java/ql/src/utils/modeleditor/AutomodelVsCode.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/utils/modeleditor/AutomodelVsCode.qll b/java/ql/src/utils/modeleditor/AutomodelVsCode.qll index 2e8fe70c29e..d5a5b9a8111 100644 --- a/java/ql/src/utils/modeleditor/AutomodelVsCode.qll +++ b/java/ql/src/utils/modeleditor/AutomodelVsCode.qll @@ -94,9 +94,9 @@ class CallableMethod extends Callable { pragma[nomagic] predicate isNeutral() { exists( - string namespace, string type, string name, string signature, string kind, string provenance + string namespace, string type, string name, string signature | - neutralModel(namespace, type, name, signature, kind, provenance) and + neutralModel(namespace, type, name, signature, _, _) and this = interpretElement(namespace, type, false, name, signature, "") ) } From 0434cce4c3f4af451b49923203f77451726f2737 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 13 Sep 2023 14:54:03 +0200 Subject: [PATCH 358/788] Java: Fix formatting of AutomodelVsCode.qll file --- java/ql/src/utils/modeleditor/AutomodelVsCode.qll | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/java/ql/src/utils/modeleditor/AutomodelVsCode.qll b/java/ql/src/utils/modeleditor/AutomodelVsCode.qll index d5a5b9a8111..ed67e2ace35 100644 --- a/java/ql/src/utils/modeleditor/AutomodelVsCode.qll +++ b/java/ql/src/utils/modeleditor/AutomodelVsCode.qll @@ -93,9 +93,7 @@ class CallableMethod extends Callable { /** Holds if this API is a known neutral. */ pragma[nomagic] predicate isNeutral() { - exists( - string namespace, string type, string name, string signature - | + exists(string namespace, string type, string name, string signature | neutralModel(namespace, type, name, signature, _, _) and this = interpretElement(namespace, type, false, name, signature, "") ) From 110a4c81e3163f5bed1fb81b1052b128d0f872cb Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 31 Aug 2023 14:51:45 +0200 Subject: [PATCH 359/788] Java: Minor perf fix. --- java/ql/lib/semmle/code/java/frameworks/Thrift.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/java/ql/lib/semmle/code/java/frameworks/Thrift.qll b/java/ql/lib/semmle/code/java/frameworks/Thrift.qll index de30b1b338d..4e07a2730dc 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Thrift.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Thrift.qll @@ -8,6 +8,7 @@ import java * A file detected as generated by the Apache Thrift Compiler. */ class ThriftGeneratedFile extends GeneratedFile { + cached ThriftGeneratedFile() { exists(JavadocElement t | t.getFile() = this | exists(string msg | msg = t.getText() | msg.regexpMatch("(?i).*\\bAutogenerated by Thrift.*")) From a7b677ba40de9a134bc3ddf038054b8ef2d4061e Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 31 Aug 2023 14:52:25 +0200 Subject: [PATCH 360/788] Java: Bugfix for SuperAccess.isOwnInstanceAccess(). --- java/ql/lib/semmle/code/java/Expr.qll | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/Expr.qll b/java/ql/lib/semmle/code/java/Expr.qll index 312d7767ac2..8a1b977f55a 100644 --- a/java/ql/lib/semmle/code/java/Expr.qll +++ b/java/ql/lib/semmle/code/java/Expr.qll @@ -1670,13 +1670,25 @@ abstract class InstanceAccess extends Expr { /** Holds if this instance access is to an enclosing instance of type `t`. */ predicate isEnclosingInstanceAccess(RefType t) { t = this.getQualifier().getType().(RefType).getSourceDeclaration() and - t != this.getEnclosingCallable().getDeclaringType() + t != this.getEnclosingCallable().getDeclaringType() and + not this.isSuperInterfaceAccess() or - not exists(this.getQualifier()) and + (not exists(this.getQualifier()) or this.isSuperInterfaceAccess()) and exists(LambdaExpr lam | lam.asMethod() = this.getEnclosingCallable() | t = lam.getAnonymousClass().getEnclosingType() ) } + + // A default method on an interface, `I`, may be invoked using `I.super.m()`. + // This always refers to the implemented interfaces of `this`. This form of + // qualified `super` cannot be combined with accessing an enclosing instance. + // JLS 15.11.2. "Accessing Superclass Members using super" + // JLS 15.12. "Method Invocation Expressions" + // JLS 15.12.1. "Compile-Time Step 1: Determine Type to Search" + private predicate isSuperInterfaceAccess() { + this instanceof SuperAccess and + this.getQualifier().getType().(RefType).getSourceDeclaration() instanceof Interface + } } /** From 300425540a5d3ad865af513c94a1b46157e6344b Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 31 Aug 2023 14:54:25 +0200 Subject: [PATCH 361/788] Java: Minor improvement to TypeFlow for super accesses. --- .../ql/lib/semmle/code/java/dataflow/TypeFlow.qll | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll b/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll index 6d1946a47f6..c4b95645bc8 100644 --- a/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll @@ -440,6 +440,18 @@ predicate arrayInstanceOfGuarded(ArrayAccess aa, RefType t) { ) } +/** + * Holds if `t` is the type of the `this` value corresponding to the the + * `SuperAccess`. As the `SuperAccess` expression has the type of the supertype, + * the type `t` is a stronger type bound. + */ +private predicate superAccess(SuperAccess sup, RefType t) { + sup.isEnclosingInstanceAccess(t) + or + sup.isOwnInstanceAccess() and + t = sup.getEnclosingCallable().getDeclaringType() +} + /** * Holds if `n` has type `t` and this information is discarded, such that `t` * might be a better type bound for nodes where `n` flows to. This might include @@ -452,7 +464,8 @@ private predicate typeFlowBaseCand(TypeFlowNode n, RefType t) { downcastSuccessor(n.asExpr(), srctype) or instanceOfGuarded(n.asExpr(), srctype) or arrayInstanceOfGuarded(n.asExpr(), srctype) or - n.asExpr().(FunctionalExpr).getConstructedType() = srctype + n.asExpr().(FunctionalExpr).getConstructedType() = srctype or + superAccess(n.asExpr(), srctype) | t = srctype.(BoundedType).getAnUltimateUpperBoundType() or From c8094d34a7702a2133a52fe14a8f06473f993c26 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 3 Aug 2023 10:00:33 +0200 Subject: [PATCH 362/788] Dataflow: Add type-based call-edge pruning. --- .../dataflow/internal/DataFlowPrivate.qll | 7 +- .../java/dataflow/internal/DataFlowUtil.qll | 33 ++ shared/dataflow/codeql/dataflow/DataFlow.qll | 5 + .../codeql/dataflow/internal/DataFlowImpl.qll | 352 ++++++++++++----- .../dataflow/internal/DataFlowImplCommon.qll | 361 ++++++++++++++++++ 5 files changed, 663 insertions(+), 95 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll index 556baa60f96..6223c9eae7a 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll @@ -326,13 +326,18 @@ string ppReprType(DataFlowType t) { else result = t.toString() } +pragma[nomagic] +private predicate compatibleTypes0(DataFlowType t1, DataFlowType t2) { + erasedHaveIntersection(t1, t2) +} + /** * Holds if `t1` and `t2` are compatible, that is, whether data can flow from * a node of type `t1` to a node of type `t2`. */ bindingset[t1, t2] pragma[inline_late] -predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { erasedHaveIntersection(t1, t2) } +predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { compatibleTypes0(t1, t2) } /** A node that performs a type cast. */ class CastNode extends ExprNode { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll index 080724d8f0c..4f48b066055 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll @@ -133,6 +133,39 @@ private module Cached { } } +/** + * Holds if the value of `node2` is given by `node1`. + */ +predicate localMustFlowStep(Node node1, Node node2) { + exists(Callable c | node1.(InstanceParameterNode).getCallable() = c | + exists(InstanceAccess ia | + ia = node2.asExpr() and ia.getEnclosingCallable() = c and ia.isOwnInstanceAccess() + ) + or + c = + node2.(ImplicitInstanceAccess).getInstanceAccess().(OwnInstanceAccess).getEnclosingCallable() + ) + or + exists(SsaImplicitInit init | + init.isParameterDefinition(node1.asParameter()) and init.getAUse() = node2.asExpr() + ) + or + exists(SsaExplicitUpdate upd | + upd.getDefiningExpr().(VariableAssign).getSource() = node1.asExpr() and + upd.getAUse() = node2.asExpr() + ) + or + node2.asExpr().(CastingExpr).getExpr() = node1.asExpr() + or + node2.asExpr().(AssignExpr).getSource() = node1.asExpr() + or + node1 = + unique(FlowSummaryNode n1 | + FlowSummaryImpl::Private::Steps::summaryLocalStep(n1.getSummaryNode(), + node2.(FlowSummaryNode).getSummaryNode(), true) + ) +} + import Cached private predicate capturedVariableRead(Node n) { diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index ce2c518f478..67948db0ee8 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -197,6 +197,11 @@ signature module InputSig { */ predicate allowParameterReturnInSelf(ParameterNode p); + /** + * Holds if the value of `node2` is given by `node1`. + */ + predicate localMustFlowStep(Node node1, Node node2); + class LambdaCallKind; /** Holds if `creation` is an expression that creates a lambda of kind `kind` for `c`. */ diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 23caaee0cce..3e62803b09d 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1289,36 +1289,11 @@ module MakeImpl { ap instanceof ApNil ) or - exists(NodeEx mid | - fwdFlow(mid, state, _, _, _, _, t, ap, apa) and - jumpStepEx(mid, node) and - cc = ccNone() and - summaryCtx = TParamNodeNone() and - argT instanceof TypOption::None and - argAp = apNone() - ) - or - exists(NodeEx mid | - fwdFlow(mid, state, _, _, _, _, _, ap, apa) and - additionalJumpStep(mid, node) and - cc = ccNone() and - summaryCtx = TParamNodeNone() and - argT instanceof TypOption::None and - argAp = apNone() and - t = getNodeTyp(node) and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0 | - fwdFlow(mid, state0, _, _, _, _, _, ap, apa) and - additionalJumpStateStep(mid, state0, node, state) and - cc = ccNone() and - summaryCtx = TParamNodeNone() and - argT instanceof TypOption::None and - argAp = apNone() and - t = getNodeTyp(node) and - ap instanceof ApNil - ) + fwdFlowJump(node, state, t, ap, apa) and + cc = ccNone() and + summaryCtx = TParamNodeNone() and + argT instanceof TypOption::None and + argAp = apNone() or // store exists(Content c, Typ t0, Ap ap0 | @@ -1346,7 +1321,7 @@ module MakeImpl { ) or // flow out of a callable - fwdFlowOut(node, state, cc, summaryCtx, argT, argAp, t, ap, apa) + fwdFlowOut(_, _, node, state, cc, summaryCtx, argT, argAp, t, ap, apa) or // flow through a callable exists( @@ -1360,6 +1335,27 @@ module MakeImpl { ) } + private predicate fwdFlowJump(NodeEx node, FlowState state, Typ t, Ap ap, ApApprox apa) { + exists(NodeEx mid | + fwdFlow(mid, state, _, _, _, _, t, ap, apa) and + jumpStepEx(mid, node) + ) + or + exists(NodeEx mid | + fwdFlow(mid, state, _, _, _, _, _, ap, apa) and + additionalJumpStep(mid, node) and + t = getNodeTyp(node) and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0 | + fwdFlow(mid, state0, _, _, _, _, _, ap, apa) and + additionalJumpStateStep(mid, state0, node, state) and + t = getNodeTyp(node) and + ap instanceof ApNil + ) + } + pragma[nomagic] private predicate fwdFlowStore( NodeEx node1, Typ t1, Ap ap1, Content c, Typ t2, NodeEx node2, FlowState state, Cc cc, @@ -1455,11 +1451,12 @@ module MakeImpl { } pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, CcCall innercc, - ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa + private predicate fwdFlowInCand( + DataFlowCall call, DataFlowCallable inner, ParamNodeEx p, FlowState state, Cc outercc, + CcCall innercc, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, + ApApprox apa ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow, DataFlowCallable inner | + exists(ArgNodeEx arg, boolean allowsFieldFlow | fwdFlow(arg, state, outercc, summaryCtx, argT, argAp, t, ap, apa) and ( inner = viableImplCallContextReducedInlineLate(call, arg, outercc) @@ -1473,6 +1470,19 @@ module MakeImpl { ) } + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, CcCall innercc, + ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa + ) { + exists(DataFlowCallable inner, boolean cc | + fwdFlowInCand(call, inner, p, state, outercc, innercc, summaryCtx, argT, argAp, t, ap, + apa) and + FwdTypeFlow::typeFlowValidEdgeIn(call, inner, cc) and + if outercc instanceof CcCall then cc = true else cc = false + ) + } + bindingset[ctx, result] pragma[inline_late] private DataFlowCallable viableImplCallContextReducedReverseInlineLate( @@ -1501,16 +1511,12 @@ module MakeImpl { flowOutOfCallApa(call, c, ret, _, out, allowsFieldFlow, apa) } - // inline to reduce number of iterations - pragma[inline] - private predicate fwdFlowOut( - NodeEx out, FlowState state, CcNoCall outercc, ParamNodeOption summaryCtx, TypOption argT, - ApOption argAp, Typ t, Ap ap, ApApprox apa + pragma[nomagic] + private predicate fwdFlowOutCand( + DataFlowCall call, DataFlowCallable inner, NodeEx out, FlowState state, CcNoCall outercc, + ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | + exists(RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc | fwdFlow(ret, state, innercc, summaryCtx, argT, argAp, t, ap, apa) and inner = ret.getEnclosingCallable() and ( @@ -1526,6 +1532,63 @@ module MakeImpl { ) } + private predicate fwdFlowOut( + DataFlowCall call, DataFlowCallable inner, NodeEx out, FlowState state, CcNoCall outercc, + ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa + ) { + fwdFlowOutCand(call, inner, out, state, outercc, summaryCtx, argT, argAp, t, ap, apa) and + FwdTypeFlow::typeFlowValidEdgeOut(call, inner) + } + + private module FwdTypeFlowInput implements TypeFlowInput { + predicate relevantCallEdgeIn(DataFlowCall call, DataFlowCallable c) { + flowIntoCallApa(call, c, _, _, _, _) + } + + predicate relevantCallEdgeOut(DataFlowCall call, DataFlowCallable c) { + flowOutOfCallApa(call, c, _, _, _, _, _) + } + + pragma[nomagic] + predicate dataFlowTakenCallEdgeIn(DataFlowCall call, DataFlowCallable c, boolean cc) { + exists(ParamNodeEx p, Cc outercc | + fwdFlowIn(call, p, _, outercc, _, _, _, _, _, _, _) and + c = p.getEnclosingCallable() and + if outercc instanceof CcCall then cc = true else cc = false + ) + } + + pragma[nomagic] + predicate dataFlowTakenCallEdgeOut(DataFlowCall call, DataFlowCallable c) { + fwdFlowOut(call, c, _, _, _, _, _, _, _, _, _) + } + + predicate dataFlowNonCallEntry(DataFlowCallable c, boolean cc) { + exists(NodeEx node, FlowState state | + sourceNode(node, state) and + (if hasSourceCallCtx() then cc = true else cc = false) and + PrevStage::revFlow(node, state, getApprox(any(ApNil nil))) and + c = node.getEnclosingCallable() + ) + or + exists(NodeEx node | + cc = false and + fwdFlowJump(node, _, _, _, _) and + c = node.getEnclosingCallable() + ) + } + } + + private module FwdTypeFlow = TypeFlow; + + private predicate flowIntoCallApaValid( + DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, + boolean allowsFieldFlow, ApApprox apa + ) { + flowIntoCallApa(call, c, arg, p, allowsFieldFlow, apa) and + FwdTypeFlow::typeFlowValidEdgeIn(call, c, _) + } + pragma[nomagic] private predicate fwdFlowRetFromArg( RetNodeEx ret, FlowState state, CcCall ccc, ParamNodeEx summaryCtx, Typ argT, Ap argAp, @@ -1625,7 +1688,7 @@ module MakeImpl { exists(ApApprox argApa, Typ argT | returnFlowsThrough(_, _, _, _, pragma[only_bind_into](p), pragma[only_bind_into](argT), pragma[only_bind_into](argAp), ap) and - flowIntoCallApa(call, _, pragma[only_bind_into](arg), p, allowsFieldFlow, argApa) and + flowIntoCallApaValid(call, _, pragma[only_bind_into](arg), p, allowsFieldFlow, argApa) and fwdFlow(arg, _, _, _, _, _, pragma[only_bind_into](argT), pragma[only_bind_into](argAp), argApa) and if allowsFieldFlow = false then argAp instanceof ApNil else any() @@ -1633,9 +1696,11 @@ module MakeImpl { } pragma[nomagic] - private predicate flowIntoCallAp(DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, Ap ap) { + private predicate flowIntoCallAp( + DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, Ap ap + ) { exists(ApApprox apa, boolean allowsFieldFlow | - flowIntoCallApa(call, _, arg, p, allowsFieldFlow, apa) and + flowIntoCallApaValid(call, c, arg, p, allowsFieldFlow, apa) and fwdFlow(arg, _, _, _, _, _, _, ap, apa) and if allowsFieldFlow = false then ap instanceof ApNil else any() ) @@ -1643,13 +1708,17 @@ module MakeImpl { pragma[nomagic] private predicate flowOutOfCallAp( - DataFlowCall call, RetNodeEx ret, ReturnPosition pos, NodeEx out, Ap ap + DataFlowCall call, DataFlowCallable c, RetNodeEx ret, ReturnPosition pos, NodeEx out, + Ap ap ) { exists(ApApprox apa, boolean allowsFieldFlow | - flowOutOfCallApa(call, _, ret, _, out, allowsFieldFlow, apa) and + flowOutOfCallApa(call, c, ret, _, out, allowsFieldFlow, apa) and fwdFlow(ret, _, _, _, _, _, _, ap, apa) and pos = ret.getReturnPosition() and if allowsFieldFlow = false then ap instanceof ApNil else any() + | + FwdTypeFlow::typeFlowValidEdgeIn(call, c, _) or + FwdTypeFlow::typeFlowValidEdgeOut(call, c) ) } @@ -1694,28 +1763,9 @@ module MakeImpl { ap instanceof ApNil ) or - exists(NodeEx mid | - jumpStepEx(node, mid) and - revFlow(mid, state, _, _, ap) and - returnCtx = TReturnCtxNone() and - returnAp = apNone() - ) - or - exists(NodeEx mid | - additionalJumpStep(node, mid) and - revFlow(pragma[only_bind_into](mid), state, _, _, ap) and - returnCtx = TReturnCtxNone() and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0 | - additionalJumpStateStep(node, state, mid, state0) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, ap) and - returnCtx = TReturnCtxNone() and - returnAp = apNone() and - ap instanceof ApNil - ) + revFlowJump(node, state, ap) and + returnCtx = TReturnCtxNone() and + returnAp = apNone() or // store exists(Ap ap0, Content c | @@ -1730,11 +1780,9 @@ module MakeImpl { ) or // flow into a callable - exists(ParamNodeEx p | - revFlow(p, state, TReturnCtxNone(), returnAp, ap) and - flowIntoCallAp(_, node, p, ap) and - returnCtx = TReturnCtxNone() - ) + revFlowIn(_, _, node, state, ap) and + returnCtx = TReturnCtxNone() and + returnAp = apNone() or // flow through a callable exists(DataFlowCall call, ParamNodeEx p, Ap innerReturnAp | @@ -1755,6 +1803,25 @@ module MakeImpl { ) } + private predicate revFlowJump(NodeEx node, FlowState state, Ap ap) { + exists(NodeEx mid | + jumpStepEx(node, mid) and + revFlow(mid, state, _, _, ap) + ) + or + exists(NodeEx mid | + additionalJumpStep(node, mid) and + revFlow(pragma[only_bind_into](mid), state, _, _, ap) and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0 | + additionalJumpStateStep(node, state, mid, state0) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, ap) and + ap instanceof ApNil + ) + } + pragma[nomagic] private predicate revFlowStore( Ap ap0, Content c, Ap ap, Typ t, NodeEx node, FlowState state, NodeEx mid, @@ -1777,14 +1844,81 @@ module MakeImpl { ) } + private module RevTypeFlowInput implements TypeFlowInput { + predicate relevantCallEdgeIn(DataFlowCall call, DataFlowCallable c) { + flowOutOfCallAp(call, c, _, _, _, _) + } + + predicate relevantCallEdgeOut(DataFlowCall call, DataFlowCallable c) { + flowIntoCallAp(call, c, _, _, _) + } + + pragma[nomagic] + predicate dataFlowTakenCallEdgeIn(DataFlowCall call, DataFlowCallable c, boolean cc) { + exists(RetNodeEx ret, ReturnCtx returnCtx | + revFlowOut(call, ret, _, _, returnCtx, _, _) and + c = ret.getEnclosingCallable() and + if returnCtx instanceof TReturnCtxNone then cc = false else cc = true + ) + } + + pragma[nomagic] + predicate dataFlowTakenCallEdgeOut(DataFlowCall call, DataFlowCallable c) { + revFlowIn(call, c, _, _, _) + } + + predicate dataFlowNonCallEntry(DataFlowCallable c, boolean cc) { + exists(NodeEx node, FlowState state, ApNil nil | + fwdFlow(node, state, _, _, _, _, _, nil, _) and + sinkNode(node, state) and + (if hasSinkCallCtx() then cc = true else cc = false) and + c = node.getEnclosingCallable() + ) + or + exists(NodeEx node | + cc = false and + revFlowJump(node, _, _) and + c = node.getEnclosingCallable() + ) + } + } + + private module RevTypeFlow = TypeFlow; + + private predicate flowIntoCallApValid( + DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, Ap ap + ) { + flowIntoCallAp(call, c, arg, p, ap) and + RevTypeFlow::typeFlowValidEdgeOut(call, c) + } + + private predicate flowOutOfCallApValid( + DataFlowCall call, RetNodeEx ret, ReturnPosition pos, NodeEx out, Ap ap, boolean cc + ) { + exists(DataFlowCallable c | + flowOutOfCallAp(call, c, ret, pos, out, ap) and + RevTypeFlow::typeFlowValidEdgeIn(call, c, cc) + ) + } + + private predicate revFlowIn( + DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, FlowState state, Ap ap + ) { + exists(ParamNodeEx p | + revFlow(p, state, TReturnCtxNone(), _, ap) and + flowIntoCallApValid(call, c, arg, p, ap) + ) + } + pragma[nomagic] private predicate revFlowOut( DataFlowCall call, RetNodeEx ret, ReturnPosition pos, FlowState state, ReturnCtx returnCtx, ApOption returnAp, Ap ap ) { - exists(NodeEx out | + exists(NodeEx out, boolean cc | revFlow(out, state, returnCtx, returnAp, ap) and - flowOutOfCallAp(call, ret, pos, out, ap) + flowOutOfCallApValid(call, ret, pos, out, ap, cc) and + if returnCtx instanceof TReturnCtxNone then cc = false else cc = true ) } @@ -1921,7 +2055,8 @@ module MakeImpl { } additional predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, int calledges, + int tfnodes, int tftuples ) { fwd = true and nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, _, _, _, _)) and @@ -1932,7 +2067,13 @@ module MakeImpl { count(NodeEx n, FlowState state, Cc cc, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap | fwdFlow(n, state, cc, summaryCtx, argT, argAp, t, ap, _) - ) + ) and + calledges = + count(DataFlowCall call, DataFlowCallable c | + FwdTypeFlowInput::dataFlowTakenCallEdgeIn(call, c, _) or + FwdTypeFlowInput::dataFlowTakenCallEdgeOut(call, c) + ) and + FwdTypeFlow::typeFlowStats(tfnodes, tftuples) or fwd = false and nodes = count(NodeEx node | revFlow(node, _, _, _, _)) and @@ -1942,7 +2083,13 @@ module MakeImpl { tuples = count(NodeEx n, FlowState state, ReturnCtx returnCtx, ApOption retAp, Ap ap | revFlow(n, state, returnCtx, retAp, ap) - ) + ) and + calledges = + count(DataFlowCall call, DataFlowCallable c | + RevTypeFlowInput::dataFlowTakenCallEdgeIn(call, c, _) or + RevTypeFlowInput::dataFlowTakenCallEdgeOut(call, c) + ) and + RevTypeFlow::typeFlowStats(tfnodes, tftuples) } /* End: Stage logic. */ } @@ -3972,51 +4119,68 @@ module MakeImpl { * Calculates per-stage metrics for data flow. */ predicate stageStats( - int n, string stage, int nodes, int fields, int conscand, int states, int tuples + int n, string stage, int nodes, int fields, int conscand, int states, int tuples, + int calledges, int tfnodes, int tftuples ) { stage = "1 Fwd" and n = 10 and - Stage1::stats(true, nodes, fields, conscand, states, tuples) + Stage1::stats(true, nodes, fields, conscand, states, tuples) and + calledges = -1 and + tfnodes = -1 and + tftuples = -1 or stage = "1 Rev" and n = 15 and - Stage1::stats(false, nodes, fields, conscand, states, tuples) + Stage1::stats(false, nodes, fields, conscand, states, tuples) and + calledges = -1 and + tfnodes = -1 and + tftuples = -1 or stage = "2 Fwd" and n = 20 and - Stage2::stats(true, nodes, fields, conscand, states, tuples) + Stage2::stats(true, nodes, fields, conscand, states, tuples, calledges, tfnodes, tftuples) or stage = "2 Rev" and n = 25 and - Stage2::stats(false, nodes, fields, conscand, states, tuples) + Stage2::stats(false, nodes, fields, conscand, states, tuples, calledges, tfnodes, tftuples) or stage = "3 Fwd" and n = 30 and - Stage3::stats(true, nodes, fields, conscand, states, tuples) + Stage3::stats(true, nodes, fields, conscand, states, tuples, calledges, tfnodes, tftuples) or stage = "3 Rev" and n = 35 and - Stage3::stats(false, nodes, fields, conscand, states, tuples) + Stage3::stats(false, nodes, fields, conscand, states, tuples, calledges, tfnodes, tftuples) or stage = "4 Fwd" and n = 40 and - Stage4::stats(true, nodes, fields, conscand, states, tuples) + Stage4::stats(true, nodes, fields, conscand, states, tuples, calledges, tfnodes, tftuples) or stage = "4 Rev" and n = 45 and - Stage4::stats(false, nodes, fields, conscand, states, tuples) + Stage4::stats(false, nodes, fields, conscand, states, tuples, calledges, tfnodes, tftuples) or stage = "5 Fwd" and n = 50 and - Stage5::stats(true, nodes, fields, conscand, states, tuples) + Stage5::stats(true, nodes, fields, conscand, states, tuples, calledges, tfnodes, tftuples) or stage = "5 Rev" and n = 55 and - Stage5::stats(false, nodes, fields, conscand, states, tuples) + Stage5::stats(false, nodes, fields, conscand, states, tuples, calledges, tfnodes, tftuples) or - stage = "6 Fwd" and n = 60 and finalStats(true, nodes, fields, conscand, states, tuples) + stage = "6 Fwd" and + n = 60 and + finalStats(true, nodes, fields, conscand, states, tuples) and + calledges = -1 and + tfnodes = -1 and + tftuples = -1 or - stage = "6 Rev" and n = 65 and finalStats(false, nodes, fields, conscand, states, tuples) + stage = "6 Rev" and + n = 65 and + finalStats(false, nodes, fields, conscand, states, tuples) and + calledges = -1 and + tfnodes = -1 and + tftuples = -1 } module FlowExploration { diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll index 6fb53e04331..c1f7965c20d 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll @@ -890,6 +890,9 @@ module MakeImplCommon { cached predicate allowParameterReturnInSelfCached(ParamNode p) { allowParameterReturnInSelf(p) } + cached + predicate paramMustFlow(ParamNode p, ArgNode arg) { localMustFlowStep+(p, arg) } + cached newtype TCallContext = TAnyCallContext() or @@ -958,6 +961,364 @@ module MakeImplCommon { TApproxAccessPathFrontSome(ApproxAccessPathFront apf) } + bindingset[t1, t2] + pragma[inline_late] + private predicate typeStrongerThan0(DataFlowType t1, DataFlowType t2) { typeStrongerThan(t1, t2) } + + private predicate callEdge(DataFlowCall call, DataFlowCallable c, ArgNode arg, ParamNode p) { + viableParamArg(call, p, arg) and + c = getNodeEnclosingCallable(p) + } + + signature module TypeFlowInput { + /** Holds if the edge is possibly needed in the direction `call` to `c`. */ + predicate relevantCallEdgeIn(DataFlowCall call, DataFlowCallable c); + + /** Holds if the edge is possibly needed in the direction `c` to `call`. */ + predicate relevantCallEdgeOut(DataFlowCall call, DataFlowCallable c); + + /** + * Holds if the edge is followed in data flow in the direction `call` to `c` + * and the call context `cc`. + */ + predicate dataFlowTakenCallEdgeIn(DataFlowCall call, DataFlowCallable c, boolean cc); + + /** + * Holds if the edge is followed in data flow in the direction `c` to `call`. + */ + predicate dataFlowTakenCallEdgeOut(DataFlowCall call, DataFlowCallable c); + + /** + * Holds if data flow enters `c` with call context `cc` without using a call + * edge. + */ + predicate dataFlowNonCallEntry(DataFlowCallable c, boolean cc); + } + + /** + * Given a call graph for a set of flow paths, this module calculates the type + * flow between parameter and argument nodes in the cases where it is possible + * for a type to first be weakened and then strengthened again. When the + * stronger types at the end-points of such a type flow path are incompatible, + * the call relevant call edges can be excluded as impossible. + * + * The predicates `relevantCallEdgeIn` and `relevantCallEdgeOut` give the + * graph to be explored prior to the recursion, and the other three predicates + * are calculated in mutual recursion with the output of this module, which is + * given in `typeFlowValidEdgeIn` and `typeFlowValidEdgeOut`. + */ + module TypeFlow { + private predicate relevantCallEdge( + DataFlowCall call, DataFlowCallable c, ArgNode arg, ParamNode p + ) { + callEdge(call, c, arg, p) and + ( + Input::relevantCallEdgeIn(call, c) or + Input::relevantCallEdgeOut(call, c) + ) + } + + /** + * Holds if a sequence calls may propagates the value of `p` to some + * argument-to-parameter call edge that strengthens the static type. + */ + pragma[nomagic] + private predicate trackedParamTypeCand(ParamNode p) { + exists(ArgNode arg | + trackedArgTypeCand(arg) and + paramMustFlow(p, arg) + ) + } + + /** + * Holds if a sequence calls may propagates the value of `arg` to some + * argument-to-parameter call edge that strengthens the static type. + */ + pragma[nomagic] + private predicate trackedArgTypeCand(ArgNode arg) { + exists(ParamNode p, DataFlowType at, DataFlowType pt | + at = getNodeType(arg) and + pt = getNodeType(p) and + relevantCallEdge(_, _, arg, p) and + typeStrongerThan0(pt, at) + ) + or + exists(ParamNode p, DataFlowType at, DataFlowType pt | + at = getNodeType(arg) and + pt = getNodeType(p) and + paramMustFlow(p, arg) and + relevantCallEdge(_, _, arg, _) and + typeStrongerThan0(at, pt) + ) + or + exists(ParamNode p | + trackedParamTypeCand(p) and + relevantCallEdge(_, _, arg, p) + ) + } + + /** + * Holds if `p` is part of a value-propagating call path where the + * end-points have stronger types than the intermediate parameter and + * argument nodes. + */ + private predicate trackedParamType(ParamNode p) { + exists( + DataFlowCall call1, DataFlowCallable c1, ArgNode argOut, DataFlowCall call2, + DataFlowCallable c2, ArgNode argIn + | + trackedParamTypeCand(p) and + callEdge(call1, c1, argOut, _) and + Input::relevantCallEdgeOut(call1, c1) and + trackedArgTypeCand(argOut) and + paramMustFlow(p, argOut) and + callEdge(call2, c2, argIn, _) and + Input::relevantCallEdgeIn(call2, c2) and + trackedArgTypeCand(argIn) and + paramMustFlow(p, argIn) + ) + or + exists(ArgNode arg, DataFlowType at, DataFlowType pt | + trackedParamTypeCand(p) and + at = getNodeType(arg) and + pt = getNodeType(p) and + relevantCallEdge(_, _, arg, p) and + typeStrongerThan0(at, pt) + ) + or + exists(ArgNode arg | + trackedArgType(arg) and + relevantCallEdge(_, _, arg, p) and + trackedParamTypeCand(p) + ) + } + + /** + * Holds if `arg` is part of a value-propagating call path where the + * end-points have stronger types than the intermediate parameter and + * argument nodes. + */ + private predicate trackedArgType(ArgNode arg) { + exists(ParamNode p | + trackedParamType(p) and + paramMustFlow(p, arg) and + trackedArgTypeCand(arg) + ) + } + + pragma[nomagic] + private predicate returnCallDeterminesParam(DataFlowCall call, ParamNode p) { + exists(ArgNode arg | + trackedArgType(arg) and + arg.argumentOf(call, _) and + paramMustFlow(p, arg) + ) + } + + private predicate returnCallLeavesParamUndetermined(DataFlowCall call, ParamNode p) { + trackedParamType(p) and + call.getEnclosingCallable() = getNodeEnclosingCallable(p) and + not returnCallDeterminesParam(call, p) + } + + pragma[nomagic] + private predicate trackedParamWithType(ParamNode p, DataFlowType t, DataFlowCallable c) { + trackedParamType(p) and + c = getNodeEnclosingCallable(p) and + nodeDataFlowType(p, t) + } + + pragma[nomagic] + private predicate dataFlowTakenCallEdgeIn( + DataFlowCall call, DataFlowCallable c, ArgNode arg, ParamNode p, boolean cc + ) { + Input::dataFlowTakenCallEdgeIn(call, c, cc) and + callEdge(call, c, arg, p) and + trackedParamType(p) + } + + pragma[nomagic] + private predicate dataFlowTakenCallEdgeOut( + DataFlowCall call, DataFlowCallable c, ArgNode arg, ParamNode p + ) { + Input::dataFlowTakenCallEdgeOut(call, c) and + callEdge(call, c, arg, p) and + trackedArgType(arg) and + paramMustFlow(_, arg) + } + + /** + * Holds if `t` is a possible type for an argument reaching the tracked + * parameter `p` through an in-going edge in the current data flow stage. + */ + pragma[nomagic] + private predicate typeFlowParamTypeCand(ParamNode p, DataFlowType t) { + exists(ArgNode arg, boolean outercc | + dataFlowTakenCallEdgeIn(_, _, arg, p, outercc) and + if trackedArgType(arg) then typeFlowArgType(arg, t, outercc) else nodeDataFlowType(arg, t) + ) + } + + /** + * Holds if `t` is a possible type for the tracked parameter `p` in the call + * context `cc` and that the current data flow stage has reached this + * context. + */ + private predicate typeFlowParamType(ParamNode p, DataFlowType t, boolean cc) { + exists(DataFlowCallable c | + Input::dataFlowNonCallEntry(c, cc) and + trackedParamWithType(p, t, c) + ) + or + exists(DataFlowType t1, DataFlowType t2 | + cc = true and + typeFlowParamTypeCand(p, t1) and + nodeDataFlowType(p, t2) and + if typeStrongerThan(t2, t1) then t = t2 else (compatibleTypes(t1, t2) and t = t1) + ) + or + exists(ArgNode arg, DataFlowType t1, DataFlowType t2 | + cc = false and + typeFlowArgTypeFromReturn(arg, t1) and + paramMustFlow(p, arg) and + nodeDataFlowType(p, t2) and + if typeStrongerThan(t2, t1) then t = t2 else (compatibleTypes(t1, t2) and t = t1) + ) + or + exists(DataFlowCall call | + cc = false and + Input::dataFlowTakenCallEdgeOut(call, _) and + returnCallLeavesParamUndetermined(call, p) and + nodeDataFlowType(p, t) + ) + } + + /** + * Holds if `t` is a possible type for the tracked argument `arg` and that + * the current data flow stage has reached the call of `arg` from one of its + * call targets. + */ + private predicate typeFlowArgTypeFromReturn(ArgNode arg, DataFlowType t) { + exists(ParamNode p, DataFlowType t1, DataFlowType t2 | + dataFlowTakenCallEdgeOut(_, _, arg, p) and + (if trackedParamType(p) then typeFlowParamType(p, t1, false) else nodeDataFlowType(p, t1)) and + nodeDataFlowType(arg, t2) and + if typeStrongerThan(t2, t1) then t = t2 else (compatibleTypes(t1, t2) and t = t1) + ) + } + + /** + * Holds if `t` is a possible type for the tracked argument `arg` in the call + * context `cc` and that the current data flow stage has reached this + * context. + */ + private predicate typeFlowArgType(ArgNode arg, DataFlowType t, boolean cc) { + trackedArgType(arg) and + ( + exists(ParamNode p, DataFlowType t1, DataFlowType t2 | + paramMustFlow(p, arg) and + typeFlowParamType(p, t1, cc) and + nodeDataFlowType(arg, t2) and + if typeStrongerThan(t2, t1) then t = t2 else (compatibleTypes(t1, t2) and t = t1) + ) + or + cc = [true, false] and + not paramMustFlow(_, arg) and + nodeDataFlowType(arg, t) + ) + } + + predicate typeFlowStats(int nodes, int tuples) { + nodes = + count(Node n | + typeFlowParamType(n, _, _) or typeFlowArgTypeFromReturn(n, _) or typeFlowArgType(n, _, _) + ) and + tuples = + count(Node n, DataFlowType t, boolean cc | + typeFlowParamType(n, t, cc) + or + typeFlowArgTypeFromReturn(n, t) and cc = false + or + typeFlowArgType(n, t, cc) + ) + } + + /** + * Holds if the `arg`-to-`p` edge should be considered for validation of the + * corresponding call edge in the in-going direction. + */ + private predicate relevantArgParamIn(ArgNode arg, ParamNode p, DataFlowType pt) { + exists(DataFlowCall call, DataFlowCallable c | + Input::relevantCallEdgeIn(call, c) and + callEdge(call, c, arg, p) and + paramMustFlow(_, arg) and + trackedArgType(arg) and + nodeDataFlowType(p, pt) + ) + } + + /** + * Holds if there is a possible type for `arg` in the call context `cc` that + * is consistent with the static type of `p`. + */ + private predicate validArgParamIn(ArgNode arg, ParamNode p, boolean cc) { + exists(DataFlowType t1, DataFlowType t2 | + typeFlowArgType(arg, t1, cc) and + relevantArgParamIn(arg, p, t2) and + compatibleTypes(t1, t2) + ) + } + + /** + * Holds if the edge `call`-to-`c` is valid in the in-going direction in the + * call context `cc`. + */ + predicate typeFlowValidEdgeIn(DataFlowCall call, DataFlowCallable c, boolean cc) { + Input::relevantCallEdgeIn(call, c) and + cc = [true, false] and + forall(ArgNode arg, ParamNode p | + callEdge(call, c, arg, p) and trackedArgType(arg) and paramMustFlow(_, arg) + | + validArgParamIn(arg, p, cc) + ) + } + + /** + * Holds if the `arg`-to-`p` edge should be considered for validation of the + * corresponding call edge in the out-going direction. + */ + private predicate relevantArgParamOut(ArgNode arg, ParamNode p, DataFlowType argt) { + exists(DataFlowCall call, DataFlowCallable c | + Input::relevantCallEdgeOut(call, c) and + callEdge(call, c, arg, p) and + trackedParamType(p) and + nodeDataFlowType(arg, argt) + ) + } + + /** + * Holds if there is a possible type for `p` in the call context `false` + * that is consistent with the static type of `arg`. + */ + private predicate validArgParamOut(ArgNode arg, ParamNode p) { + exists(DataFlowType t1, DataFlowType t2 | + typeFlowParamType(p, t1, false) and + relevantArgParamOut(arg, p, t2) and + compatibleTypes(t1, t2) + ) + } + + /** + * Holds if the edge `call`-to-`c` is valid in the out-going direction. + */ + predicate typeFlowValidEdgeOut(DataFlowCall call, DataFlowCallable c) { + Input::relevantCallEdgeOut(call, c) and + forall(ArgNode arg, ParamNode p | callEdge(call, c, arg, p) and trackedParamType(p) | + validArgParamOut(arg, p) + ) + } + } + /** * Holds if the call context `call` either improves virtual dispatch in * `callable` or if it allows us to prune unreachable nodes in `callable`. From e677c1ffe6a0b0f6e575b45270af329454db2cde Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 4 Sep 2023 14:04:32 +0200 Subject: [PATCH 363/788] Java: Add qltest --- .../dataflow/typeflow-dispatch/A.java | 60 +++++++++++++++++++ .../dataflow/typeflow-dispatch/test.expected | 0 .../dataflow/typeflow-dispatch/test.ql | 2 + 3 files changed, 62 insertions(+) create mode 100644 java/ql/test/library-tests/dataflow/typeflow-dispatch/A.java create mode 100644 java/ql/test/library-tests/dataflow/typeflow-dispatch/test.expected create mode 100644 java/ql/test/library-tests/dataflow/typeflow-dispatch/test.ql diff --git a/java/ql/test/library-tests/dataflow/typeflow-dispatch/A.java b/java/ql/test/library-tests/dataflow/typeflow-dispatch/A.java new file mode 100644 index 00000000000..f40f5a69d4c --- /dev/null +++ b/java/ql/test/library-tests/dataflow/typeflow-dispatch/A.java @@ -0,0 +1,60 @@ +import java.util.*; +import java.util.function.*; + +public class A { + static String source(String tag) { return null; } + + static void sink(Object o) { } + + interface MyConsumer { + void run(Object o); + } + + void apply(MyConsumer f, Object x) { + f.run(x); + } + + void apply_wrap(MyConsumer f, Object x) { + apply(f, x); + } + + void testLambdaDispatch1() { + apply_wrap(x -> { sink(x); }, source("A")); // $ hasValueFlow=A + apply_wrap(x -> { sink(x); }, null); // no flow + apply_wrap(x -> { }, source("B")); + apply_wrap(x -> { }, null); + } + + void forEach_wrap(List l, Consumer f) { + l.forEach(f); + } + + void testLambdaDispatch2() { + List tainted = new ArrayList<>(); + tainted.add(source("L")); + List safe = new ArrayList<>(); + forEach_wrap(safe, x -> { sink(x); }); // no flow + forEach_wrap(tainted, x -> { sink(x); }); // $ hasValueFlow=L + } + + static class TaintedClass { + public String toString() { return source("TaintedClass"); } + } + + static class SafeClass { + public String toString() { return "safe"; } + } + + String convertToString(Object o) { + return o.toString(); + } + + String convertToString_wrap(Object o) { + return convertToString(o); + } + + void testToString1() { + String unused = convertToString_wrap(new TaintedClass()); + sink(convertToString_wrap(new SafeClass())); // no flow + } +} diff --git a/java/ql/test/library-tests/dataflow/typeflow-dispatch/test.expected b/java/ql/test/library-tests/dataflow/typeflow-dispatch/test.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/dataflow/typeflow-dispatch/test.ql b/java/ql/test/library-tests/dataflow/typeflow-dispatch/test.ql new file mode 100644 index 00000000000..50e3f8d2f7d --- /dev/null +++ b/java/ql/test/library-tests/dataflow/typeflow-dispatch/test.ql @@ -0,0 +1,2 @@ +import TestUtilities.InlineFlowTest +import DefaultFlowTest From 1750d00fbec40ccb0ca2528901abe5e7cad22dc9 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 4 Sep 2023 16:12:48 +0200 Subject: [PATCH 364/788] C#: Add localMustFlowStep --- .../dataflow/internal/DataFlowPrivate.qll | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index dd8438900bd..c1c851d18fd 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -533,8 +533,36 @@ module LocalFlow { ) and not exists(getALastEvalNode(result)) } + + /** + * Holds if the value of `node2` is given by `node1`. + */ + predicate localMustFlowStep(Node node1, Node node2) { + exists(Callable c, Expr e | + node1.(InstanceParameterNode).getCallable() = c and + node2.asExpr() = e and + (e instanceof ThisAccess or e instanceof BaseAccess) and + c = e.getEnclosingCallable() + ) + or + hasNodePath(any(LocalExprStepConfiguration x), node1, node2) and + (node2 instanceof SsaDefinitionExtNode or node2.asExpr() instanceof Cast) + or + exists(SsaImpl::Definition def | + def = getSsaDefinitionExt(node1) and + exists(SsaImpl::getAReadAtNode(def, node2.(ExprNode).getControlFlowNode())) + ) + or + node1 = + unique(FlowSummaryNode n1 | + FlowSummaryImpl::Private::Steps::summaryLocalStep(n1.getSummaryNode(), + node2.(FlowSummaryNode).getSummaryNode(), true) + ) + } } +predicate localMustFlowStep = LocalFlow::localMustFlowStep/2; + /** * This is the local flow predicate that is used as a building block in global * data flow. It excludes SSA flow through instance fields, as flow through fields From f5a4b792bd792818bfe388e1d948126c753cc055 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 4 Sep 2023 16:17:10 +0200 Subject: [PATCH 365/788] C++/Go/Python/Ruby/Swift: Add dummy localMustFlowStep. --- .../lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll | 2 ++ .../semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll | 2 ++ go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll | 2 ++ .../lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll | 2 ++ ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll | 2 ++ swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll | 2 ++ 6 files changed, 12 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll index 00eca92b3e4..a62e080dfb0 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll @@ -208,6 +208,8 @@ predicate expectsContent(Node n, ContentSet c) { none() } predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { none() } +predicate localMustFlowStep(Node node1, Node node2) { none() } + /** Gets the type of `n` used for type pruning. */ Type getNodeType(Node n) { suppressUnusedNode(n) and diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll index 7e4b87e3853..066e177fea0 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll @@ -804,6 +804,8 @@ predicate expectsContent(Node n, ContentSet c) { none() } predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { none() } +predicate localMustFlowStep(Node node1, Node node2) { none() } + /** Gets the type of `n` used for type pruning. */ DataFlowType getNodeType(Node n) { suppressUnusedNode(n) and diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll index 4c718bbe279..525106603ab 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll @@ -205,6 +205,8 @@ predicate expectsContent(Node n, ContentSet c) { predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { none() } +predicate localMustFlowStep(Node node1, Node node2) { none() } + /** Gets the type of `n` used for type pruning. */ DataFlowType getNodeType(Node n) { result = TTodoDataFlowType() and exists(n) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll index e98d4d2de62..45e2a541eda 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll @@ -539,6 +539,8 @@ predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { any() } predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { none() } +predicate localMustFlowStep(Node node1, Node node2) { none() } + /** * Gets the type of `node`. */ diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index f53fb80fcea..8eb3cfdd2ec 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -1697,6 +1697,8 @@ private predicate mustHaveLambdaType(CfgNodes::ExprCfgNode e, Callable c) { ) } +predicate localMustFlowStep(Node node1, Node node2) { none() } + /** Gets the type of `n` used for type pruning. */ DataFlowType getNodeType(Node n) { result = TLambdaDataFlowType(n.(LambdaSelfReferenceNode).getCallable()) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 3255afb19db..3e1ccc15a20 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -1038,6 +1038,8 @@ class DataFlowType extends TDataFlowType { predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { none() } +predicate localMustFlowStep(Node node1, Node node2) { none() } + /** Gets the type of `n` used for type pruning. */ DataFlowType getNodeType(Node n) { any() // return the singleton DataFlowType until we support type pruning for Swift From 47f68504a82af70c9c3f2bb0221953cc6ef103eb Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 8 Sep 2023 13:40:31 +0200 Subject: [PATCH 366/788] Dataflow: Postpone typeflow calledge pruning until stage 3. --- .../codeql/dataflow/internal/DataFlowImpl.qll | 8 +++ .../dataflow/internal/DataFlowImplCommon.qll | 61 +++++++++++-------- 2 files changed, 45 insertions(+), 24 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 3e62803b09d..335fadc6817 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1185,6 +1185,8 @@ module MakeImpl { bindingset[typ, contentType] predicate typecheckStore(Typ typ, DataFlowType contentType); + + default predicate enableTypeFlow() { any() } } module Stage implements StageSig { @@ -1541,6 +1543,8 @@ module MakeImpl { } private module FwdTypeFlowInput implements TypeFlowInput { + predicate enableTypeFlow = Param::enableTypeFlow/0; + predicate relevantCallEdgeIn(DataFlowCall call, DataFlowCallable c) { flowIntoCallApa(call, c, _, _, _, _) } @@ -1845,6 +1849,8 @@ module MakeImpl { } private module RevTypeFlowInput implements TypeFlowInput { + predicate enableTypeFlow = Param::enableTypeFlow/0; + predicate relevantCallEdgeIn(DataFlowCall call, DataFlowCallable c) { flowOutOfCallAp(call, c, _, _, _, _) } @@ -2306,6 +2312,8 @@ module MakeImpl { bindingset[typ, contentType] predicate typecheckStore(Typ typ, DataFlowType contentType) { any() } + + predicate enableTypeFlow() { none() } } private module Stage2 implements StageSig { diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll index c1f7965c20d..14508eb89ee 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll @@ -971,6 +971,8 @@ module MakeImplCommon { } signature module TypeFlowInput { + predicate enableTypeFlow(); + /** Holds if the edge is possibly needed in the direction `call` to `c`. */ predicate relevantCallEdgeIn(DataFlowCall call, DataFlowCallable c); @@ -1036,24 +1038,27 @@ module MakeImplCommon { */ pragma[nomagic] private predicate trackedArgTypeCand(ArgNode arg) { - exists(ParamNode p, DataFlowType at, DataFlowType pt | - at = getNodeType(arg) and - pt = getNodeType(p) and - relevantCallEdge(_, _, arg, p) and - typeStrongerThan0(pt, at) - ) - or - exists(ParamNode p, DataFlowType at, DataFlowType pt | - at = getNodeType(arg) and - pt = getNodeType(p) and - paramMustFlow(p, arg) and - relevantCallEdge(_, _, arg, _) and - typeStrongerThan0(at, pt) - ) - or - exists(ParamNode p | - trackedParamTypeCand(p) and - relevantCallEdge(_, _, arg, p) + Input::enableTypeFlow() and + ( + exists(ParamNode p, DataFlowType at, DataFlowType pt | + at = getNodeType(arg) and + pt = getNodeType(p) and + relevantCallEdge(_, _, arg, p) and + typeStrongerThan0(pt, at) + ) + or + exists(ParamNode p, DataFlowType at, DataFlowType pt | + at = getNodeType(arg) and + pt = getNodeType(p) and + paramMustFlow(p, arg) and + relevantCallEdge(_, _, arg, _) and + typeStrongerThan0(at, pt) + ) + or + exists(ParamNode p | + trackedParamTypeCand(p) and + relevantCallEdge(_, _, arg, p) + ) ) } @@ -1276,10 +1281,14 @@ module MakeImplCommon { predicate typeFlowValidEdgeIn(DataFlowCall call, DataFlowCallable c, boolean cc) { Input::relevantCallEdgeIn(call, c) and cc = [true, false] and - forall(ArgNode arg, ParamNode p | - callEdge(call, c, arg, p) and trackedArgType(arg) and paramMustFlow(_, arg) - | - validArgParamIn(arg, p, cc) + ( + not Input::enableTypeFlow() + or + forall(ArgNode arg, ParamNode p | + callEdge(call, c, arg, p) and trackedArgType(arg) and paramMustFlow(_, arg) + | + validArgParamIn(arg, p, cc) + ) ) } @@ -1313,8 +1322,12 @@ module MakeImplCommon { */ predicate typeFlowValidEdgeOut(DataFlowCall call, DataFlowCallable c) { Input::relevantCallEdgeOut(call, c) and - forall(ArgNode arg, ParamNode p | callEdge(call, c, arg, p) and trackedParamType(p) | - validArgParamOut(arg, p) + ( + not Input::enableTypeFlow() + or + forall(ArgNode arg, ParamNode p | callEdge(call, c, arg, p) and trackedParamType(p) | + validArgParamOut(arg, p) + ) ) } } From 13e7e6b98356ccf53662e5fdfc1be9614141441d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 12 Sep 2023 14:17:23 +0200 Subject: [PATCH 367/788] Dataflow: Improve fwd-taken call edge predicate and improve fwd-to-rev call edge pruning. --- .../codeql/dataflow/internal/DataFlowImpl.qll | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 335fadc6817..c437f17868b 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1555,8 +1555,9 @@ module MakeImpl { pragma[nomagic] predicate dataFlowTakenCallEdgeIn(DataFlowCall call, DataFlowCallable c, boolean cc) { - exists(ParamNodeEx p, Cc outercc | - fwdFlowIn(call, p, _, outercc, _, _, _, _, _, _, _) and + exists(ParamNodeEx p, Cc outercc, FlowState state, Cc innercc, Typ t, Ap ap | + fwdFlowIn(call, p, state, outercc, innercc, _, _, _, t, ap, _) and + fwdFlow1(p, state, innercc, _, _, _, t, _, ap, _) and c = p.getEnclosingCallable() and if outercc instanceof CcCall then cc = true else cc = false ) @@ -1564,7 +1565,10 @@ module MakeImpl { pragma[nomagic] predicate dataFlowTakenCallEdgeOut(DataFlowCall call, DataFlowCallable c) { - fwdFlowOut(call, c, _, _, _, _, _, _, _, _, _) + exists(NodeEx node, FlowState state, Cc cc, Typ t, Ap ap | + fwdFlowOut(call, c, node, state, cc, _, _, _, t, ap, _) and + fwdFlow1(node, state, cc, _, _, _, t, _, ap, _) + ) } predicate dataFlowNonCallEntry(DataFlowCallable c, boolean cc) { @@ -1585,12 +1589,12 @@ module MakeImpl { private module FwdTypeFlow = TypeFlow; - private predicate flowIntoCallApaValid( + private predicate flowIntoCallApaTaken( DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { flowIntoCallApa(call, c, arg, p, allowsFieldFlow, apa) and - FwdTypeFlow::typeFlowValidEdgeIn(call, c, _) + FwdTypeFlowInput::dataFlowTakenCallEdgeIn(call, c, _) } pragma[nomagic] @@ -1692,7 +1696,7 @@ module MakeImpl { exists(ApApprox argApa, Typ argT | returnFlowsThrough(_, _, _, _, pragma[only_bind_into](p), pragma[only_bind_into](argT), pragma[only_bind_into](argAp), ap) and - flowIntoCallApaValid(call, _, pragma[only_bind_into](arg), p, allowsFieldFlow, argApa) and + flowIntoCallApaTaken(call, _, pragma[only_bind_into](arg), p, allowsFieldFlow, argApa) and fwdFlow(arg, _, _, _, _, _, pragma[only_bind_into](argT), pragma[only_bind_into](argAp), argApa) and if allowsFieldFlow = false then argAp instanceof ApNil else any() @@ -1704,7 +1708,7 @@ module MakeImpl { DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, Ap ap ) { exists(ApApprox apa, boolean allowsFieldFlow | - flowIntoCallApaValid(call, c, arg, p, allowsFieldFlow, apa) and + flowIntoCallApaTaken(call, c, arg, p, allowsFieldFlow, apa) and fwdFlow(arg, _, _, _, _, _, _, ap, apa) and if allowsFieldFlow = false then ap instanceof ApNil else any() ) @@ -1721,8 +1725,8 @@ module MakeImpl { pos = ret.getReturnPosition() and if allowsFieldFlow = false then ap instanceof ApNil else any() | - FwdTypeFlow::typeFlowValidEdgeIn(call, c, _) or - FwdTypeFlow::typeFlowValidEdgeOut(call, c) + FwdTypeFlowInput::dataFlowTakenCallEdgeIn(call, c, _) or + FwdTypeFlowInput::dataFlowTakenCallEdgeOut(call, c) ) } From f456bf8d574fc56e4a87f0f14c59b4da85c4b90a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 12 Sep 2023 14:25:17 +0200 Subject: [PATCH 368/788] Dataflow: Add change note. --- shared/dataflow/change-notes/2023-09-12-typeflow.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 shared/dataflow/change-notes/2023-09-12-typeflow.md diff --git a/shared/dataflow/change-notes/2023-09-12-typeflow.md b/shared/dataflow/change-notes/2023-09-12-typeflow.md new file mode 100644 index 00000000000..e5f01035478 --- /dev/null +++ b/shared/dataflow/change-notes/2023-09-12-typeflow.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Added support for type-based call edge pruning. This removes data flow call edges that are incompatible with the set of flow paths that reach it based on type information. This improves dispatch precision for constructs like lambdas, `Object.toString()` calls, and the visitor pattern. For now this is only enabled for Java and C#. From b456ba217ae56e0baba0547769fb08ce963f7e21 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 13 Sep 2023 11:40:36 +0200 Subject: [PATCH 369/788] Dataflow: Improve rev-to-fwd call edge pruning. --- .../codeql/dataflow/internal/DataFlowImpl.qll | 175 ++++++++---------- 1 file changed, 76 insertions(+), 99 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index c437f17868b..8d334a6fe53 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -917,22 +917,46 @@ module MakeImpl { ) } + predicate callEdgeArgParam( + DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, + boolean allowsFieldFlow, Ap ap + ) { + flowIntoCallNodeCand1(call, arg, p, allowsFieldFlow) and + c = p.getEnclosingCallable() and + exists(ap) + } + + predicate callEdgeReturn( + DataFlowCall call, DataFlowCallable c, RetNodeEx ret, ReturnKindExt kind, NodeEx out, + boolean allowsFieldFlow, Ap ap + ) { + flowOutOfCallNodeCand1(call, ret, kind, out, allowsFieldFlow) and + c = ret.getEnclosingCallable() and + exists(ap) + } + additional predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, int calledges ) { fwd = true and nodes = count(NodeEx node | fwdFlow(node)) and fields = count(Content f0 | fwdFlowConsCand(f0)) and conscand = -1 and states = count(FlowState state | fwdFlowState(state)) and - tuples = count(NodeEx n, boolean b | fwdFlow(n, b)) + tuples = count(NodeEx n, boolean b | fwdFlow(n, b)) and + calledges = -1 or fwd = false and nodes = count(NodeEx node | revFlow(node, _)) and fields = count(Content f0 | revFlowConsCand(f0)) and conscand = -1 and states = count(FlowState state | revFlowState(state)) and - tuples = count(NodeEx n, boolean b | revFlow(n, b)) + tuples = count(NodeEx n, boolean b | revFlow(n, b)) and + calledges = + count(DataFlowCall call, DataFlowCallable c | + callEdgeArgParam(call, c, _, _, _, _) or + callEdgeReturn(call, c, _, _, _, _, _) + ) } /* End: Stage 1 logic. */ } @@ -1093,6 +1117,16 @@ module MakeImpl { ); predicate readStepCand(NodeEx n1, Content c, NodeEx n2); + + predicate callEdgeArgParam( + DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, + boolean allowsFieldFlow, Ap ap + ); + + predicate callEdgeReturn( + DataFlowCall call, DataFlowCallable c, RetNodeEx ret, ReturnKindExt kind, NodeEx out, + boolean allowsFieldFlow, Ap ap + ); } private module MkStage { @@ -1172,14 +1206,6 @@ module MakeImpl { Typ t, LocalCc lcc ); - predicate flowOutOfCall( - DataFlowCall call, RetNodeEx ret, ReturnKindExt kind, NodeEx out, boolean allowsFieldFlow - ); - - predicate flowIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow - ); - bindingset[node, state, t0, ap] predicate filter(NodeEx node, FlowState state, Typ t0, Ap ap, Typ t); @@ -1202,35 +1228,13 @@ module MakeImpl { PrevStage::revFlow(node) and result = getTyp(node.getDataFlowType()) } - pragma[nomagic] - private predicate flowIntoCallApa( - DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, - boolean allowsFieldFlow, ApApprox apa - ) { - flowIntoCall(call, arg, p, allowsFieldFlow) and - PrevStage::revFlowAp(p, pragma[only_bind_into](apa)) and - PrevStage::revFlowAp(arg, pragma[only_bind_into](apa)) and - c = p.getEnclosingCallable() - } - - pragma[nomagic] - private predicate flowOutOfCallApa( - DataFlowCall call, DataFlowCallable c, RetNodeEx ret, ReturnKindExt kind, NodeEx out, - boolean allowsFieldFlow, ApApprox apa - ) { - flowOutOfCall(call, ret, kind, out, allowsFieldFlow) and - PrevStage::revFlowAp(out, pragma[only_bind_into](apa)) and - PrevStage::revFlowAp(ret, pragma[only_bind_into](apa)) and - c = ret.getEnclosingCallable() - } - pragma[nomagic] private predicate flowThroughOutOfCall( DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, ApApprox argApa, ApApprox apa ) { exists(ReturnKindExt kind | - flowOutOfCallApa(call, _, ret, kind, out, allowsFieldFlow, apa) and + PrevStage::callEdgeReturn(call, _, ret, kind, out, allowsFieldFlow, apa) and PrevStage::callMayFlowThroughRev(call) and PrevStage::returnMayFlowThrough(ret, argApa, apa, kind) and matchesCall(ccc, call) @@ -1434,7 +1438,7 @@ module MakeImpl { DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { - flowIntoCallApa(call, c, arg, p, allowsFieldFlow, apa) + PrevStage::callEdgeArgParam(call, c, arg, p, allowsFieldFlow, apa) } bindingset[call, ctx] @@ -1499,7 +1503,7 @@ module MakeImpl { DataFlowCall call, DataFlowCallable c, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, ApApprox apa ) { - flowOutOfCallApa(call, c, ret, _, out, allowsFieldFlow, apa) + PrevStage::callEdgeReturn(call, c, ret, _, out, allowsFieldFlow, apa) } bindingset[c, ret, apa, innercc] @@ -1510,7 +1514,7 @@ module MakeImpl { ApApprox apa, CcNoCall innercc ) { viableImplNotCallContextReducedReverse(innercc) and - flowOutOfCallApa(call, c, ret, _, out, allowsFieldFlow, apa) + PrevStage::callEdgeReturn(call, c, ret, _, out, allowsFieldFlow, apa) } pragma[nomagic] @@ -1546,11 +1550,11 @@ module MakeImpl { predicate enableTypeFlow = Param::enableTypeFlow/0; predicate relevantCallEdgeIn(DataFlowCall call, DataFlowCallable c) { - flowIntoCallApa(call, c, _, _, _, _) + PrevStage::callEdgeArgParam(call, c, _, _, _, _) } predicate relevantCallEdgeOut(DataFlowCall call, DataFlowCallable c) { - flowOutOfCallApa(call, c, _, _, _, _, _) + PrevStage::callEdgeReturn(call, c, _, _, _, _, _) } pragma[nomagic] @@ -1593,7 +1597,7 @@ module MakeImpl { DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { - flowIntoCallApa(call, c, arg, p, allowsFieldFlow, apa) and + PrevStage::callEdgeArgParam(call, c, arg, p, allowsFieldFlow, apa) and FwdTypeFlowInput::dataFlowTakenCallEdgeIn(call, c, _) } @@ -1720,7 +1724,7 @@ module MakeImpl { Ap ap ) { exists(ApApprox apa, boolean allowsFieldFlow | - flowOutOfCallApa(call, c, ret, _, out, allowsFieldFlow, apa) and + PrevStage::callEdgeReturn(call, c, ret, _, out, allowsFieldFlow, apa) and fwdFlow(ret, _, _, _, _, _, _, ap, apa) and pos = ret.getReturnPosition() and if allowsFieldFlow = false then ap instanceof ApNil else any() @@ -2064,6 +2068,35 @@ module MakeImpl { ) } + predicate callEdgeArgParam( + DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, + boolean allowsFieldFlow, Ap ap + ) { + exists(FlowState state | + flowIntoCallAp(call, c, arg, p, ap) and + revFlow(arg, pragma[only_bind_into](state), pragma[only_bind_into](ap)) and + revFlow(p, pragma[only_bind_into](state), pragma[only_bind_into](ap)) and + allowsFieldFlow = true + | + RevTypeFlowInput::dataFlowTakenCallEdgeIn(call, c, _) or + RevTypeFlowInput::dataFlowTakenCallEdgeOut(call, c) + ) + } + + predicate callEdgeReturn( + DataFlowCall call, DataFlowCallable c, RetNodeEx ret, ReturnKindExt kind, NodeEx out, + boolean allowsFieldFlow, Ap ap + ) { + exists(FlowState state, ReturnPosition pos | + flowOutOfCallAp(call, c, ret, pos, out, ap) and + revFlow(ret, pragma[only_bind_into](state), pragma[only_bind_into](ap)) and + revFlow(out, pragma[only_bind_into](state), pragma[only_bind_into](ap)) and + kind = pos.getKind() and + allowsFieldFlow = true and + RevTypeFlowInput::dataFlowTakenCallEdgeIn(call, c, _) + ) + } + additional predicate stats( boolean fwd, int nodes, int fields, int conscand, int states, int tuples, int calledges, int tfnodes, int tftuples @@ -2287,10 +2320,6 @@ module MakeImpl { exists(lcc) } - predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - - predicate flowIntoCall = flowIntoCallNodeCand1/4; - pragma[nomagic] private predicate expectsContentCand(NodeEx node) { exists(Content c | @@ -2544,10 +2573,6 @@ module MakeImpl { exists(lcc) } - predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - - predicate flowIntoCall = flowIntoCallNodeCand2/4; - pragma[nomagic] private predicate expectsContentCand(NodeEx node, Ap ap) { exists(Content c | @@ -2639,29 +2664,6 @@ module MakeImpl { exists(lcc) } - pragma[nomagic] - predicate flowOutOfCall( - DataFlowCall call, RetNodeEx node1, ReturnKindExt kind, NodeEx node2, - boolean allowsFieldFlow - ) { - exists(FlowState state | - flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlow(node1, pragma[only_bind_into](state), _) - ) - } - - pragma[nomagic] - predicate flowIntoCall( - DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow - ) { - exists(FlowState state | - flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlow(node1, pragma[only_bind_into](state), _) - ) - } - pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c) { PrevStage::revFlow(node) and @@ -2944,29 +2946,6 @@ module MakeImpl { PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) } - pragma[nomagic] - predicate flowOutOfCall( - DataFlowCall call, RetNodeEx node1, ReturnKindExt kind, NodeEx node2, - boolean allowsFieldFlow - ) { - exists(FlowState state | - flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlow(node1, pragma[only_bind_into](state), _) - ) - } - - pragma[nomagic] - predicate flowIntoCall( - DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow - ) { - exists(FlowState state | - flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlow(node1, pragma[only_bind_into](state), _) - ) - } - bindingset[node, state, t0, ap] predicate filter(NodeEx node, FlowState state, Typ t0, Ap ap, Typ t) { strengthenType(node, t0, t) and @@ -4136,15 +4115,13 @@ module MakeImpl { ) { stage = "1 Fwd" and n = 10 and - Stage1::stats(true, nodes, fields, conscand, states, tuples) and - calledges = -1 and + Stage1::stats(true, nodes, fields, conscand, states, tuples, calledges) and tfnodes = -1 and tftuples = -1 or stage = "1 Rev" and n = 15 and - Stage1::stats(false, nodes, fields, conscand, states, tuples) and - calledges = -1 and + Stage1::stats(false, nodes, fields, conscand, states, tuples, calledges) and tfnodes = -1 and tftuples = -1 or From b63d51811454747c4ee037a1ddbcbc70942224ab Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 13 Sep 2023 12:50:28 +0200 Subject: [PATCH 370/788] Dataflow: Minor perf tweak. --- shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 8d334a6fe53..4460bba4646 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1459,8 +1459,7 @@ module MakeImpl { pragma[nomagic] private predicate fwdFlowInCand( DataFlowCall call, DataFlowCallable inner, ParamNodeEx p, FlowState state, Cc outercc, - CcCall innercc, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, - ApApprox apa + ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa ) { exists(ArgNodeEx arg, boolean allowsFieldFlow | fwdFlow(arg, state, outercc, summaryCtx, argT, argAp, t, ap, apa) and @@ -1471,7 +1470,6 @@ module MakeImpl { ) and flowIntoCallApaInlineLate(call, inner, arg, p, allowsFieldFlow, apa) | - innercc = getCallContextCall(call, inner) and if allowsFieldFlow = false then ap instanceof ApNil else any() ) } @@ -1482,9 +1480,9 @@ module MakeImpl { ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa ) { exists(DataFlowCallable inner, boolean cc | - fwdFlowInCand(call, inner, p, state, outercc, innercc, summaryCtx, argT, argAp, t, ap, - apa) and + fwdFlowInCand(call, inner, p, state, outercc, summaryCtx, argT, argAp, t, ap, apa) and FwdTypeFlow::typeFlowValidEdgeIn(call, inner, cc) and + innercc = getCallContextCall(call, inner) and if outercc instanceof CcCall then cc = true else cc = false ) } From 74787bfba88b0c1645cc2f6e43ca13b9467d2613 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 13 Sep 2023 13:10:15 +0200 Subject: [PATCH 371/788] Dataflow: One more minor perf tweak. --- shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 4460bba4646..7d9ef3e2404 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1517,7 +1517,7 @@ module MakeImpl { pragma[nomagic] private predicate fwdFlowOutCand( - DataFlowCall call, DataFlowCallable inner, NodeEx out, FlowState state, CcNoCall outercc, + DataFlowCall call, DataFlowCallable inner, NodeEx out, FlowState state, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa ) { exists(RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc | @@ -1531,7 +1531,6 @@ module MakeImpl { innercc) ) | - outercc = getCallContextReturn(inner, call) and if allowsFieldFlow = false then ap instanceof ApNil else any() ) } @@ -1540,8 +1539,9 @@ module MakeImpl { DataFlowCall call, DataFlowCallable inner, NodeEx out, FlowState state, CcNoCall outercc, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa ) { - fwdFlowOutCand(call, inner, out, state, outercc, summaryCtx, argT, argAp, t, ap, apa) and - FwdTypeFlow::typeFlowValidEdgeOut(call, inner) + fwdFlowOutCand(call, inner, out, state, summaryCtx, argT, argAp, t, ap, apa) and + FwdTypeFlow::typeFlowValidEdgeOut(call, inner) and + outercc = getCallContextReturn(inner, call) } private module FwdTypeFlowInput implements TypeFlowInput { From 84ec823ac07cc513f7168151f8db7e53fc01f52c Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 13 Sep 2023 16:07:47 +0200 Subject: [PATCH 372/788] C#: Add some explanatory comments about parallel restore. --- .../DependencyManager.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index facfb73543e..5d026722134 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -360,6 +360,9 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// /// Executes `dotnet restore` on all solution files in solutions. + /// As opposed to RestoreProjects this is not run in parallel using PLINQ + /// as `dotnet restore` on a solution already uses multiple threads for restoring + /// the projects (this can be disabled with the `--disable-parallel` flag). /// Returns a list of projects that are up to date with respect to restore. /// /// A list of paths to solution files. @@ -370,6 +373,13 @@ namespace Semmle.Extraction.CSharp.DependencyFetching return restoredProjects; }); + /// + /// Executes `dotnet restore` on all projects in projects. + /// This is done in parallel for performance reasons. + /// To ensure that output is not interleaved, the output of each + /// restore is collected and printed. + /// + /// A list of paths to project files. private void RestoreProjects(IEnumerable projects) { var stdoutLines = projects From 8c3e778be65d7c1b01cd732c64c746f89f359c55 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 12 Sep 2023 23:29:34 +0100 Subject: [PATCH 373/788] Java: Port regex mode flag character fix from Python. --- java/ql/lib/semmle/code/java/regex/regex.qll | 39 ++++++++++++++----- .../security/CWE-730/ExpRedosTest.java | 2 +- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/java/ql/lib/semmle/code/java/regex/regex.qll b/java/ql/lib/semmle/code/java/regex/regex.qll index 1533f549f89..a131ac0deb5 100644 --- a/java/ql/lib/semmle/code/java/regex/regex.qll +++ b/java/ql/lib/semmle/code/java/regex/regex.qll @@ -473,9 +473,10 @@ abstract class RegexString extends StringLiteral { } /** - * Holds if a parse mode starts between `start` and `end`. + * Holds if the initial part of a parse mode, not containing any + * mode characters is between `start` and `end`. */ - private predicate flagGroupStart(int start, int end) { + private predicate flagGroupStartNoModes(int start, int end) { this.isGroupStart(start) and this.getChar(start + 1) = "?" and this.getChar(start + 2) in ["i", "m", "s", "u", "x", "U"] and @@ -483,17 +484,35 @@ abstract class RegexString extends StringLiteral { } /** - * Holds if a parse mode group is between `start` and `end`, and includes the - * mode flag `c`. For example the following span, with mode flag `i`: + * Holds if `pos` contains a mode character from the + * flag group starting at `start`. + */ + private predicate modeCharacter(int start, int pos) { + this.flagGroupStartNoModes(start, pos) + or + this.modeCharacter(start, pos - 1) and + this.getChar(pos) in ["i", "m", "s", "u", "x", "U"] + } + + /** + * Holds if a parse mode group is between `start` and `end`. + */ + private predicate flagGroupStart(int start, int end) { + this.flagGroupStartNoModes(start, _) and + end = max(int i | this.modeCharacter(start, i) | i + 1) + } + + /** + * Holds if a parse mode group of this regex includes the mode flag `c`. + * For example the following parse mode group, with mode flag `i`: * ``` * (?i) * ``` */ - private predicate flagGroup(int start, int end, string c) { - exists(int inStart, int inEnd | - this.flagGroupStart(start, inStart) and - this.groupContents(start, end, inStart, inEnd) and - this.getChar([inStart .. inEnd - 1]) = c + private predicate flag(string c) { + exists(int pos | + this.modeCharacter(_, pos) and + this.getChar(pos) = c ) } @@ -502,7 +521,7 @@ abstract class RegexString extends StringLiteral { * it is defined by a prefix. */ string getModeFromPrefix() { - exists(string c | this.flagGroup(_, _, c) | + exists(string c | this.flag(c) | c = "i" and result = "IGNORECASE" or c = "m" and result = "MULTILINE" diff --git a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java b/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java index 28742c161e6..c9e66e69f59 100644 --- a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java +++ b/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java @@ -434,7 +434,7 @@ class ExpRedosTest { "((aa|a*+)b)*c", // $ MISSING: hasExpRedos // BAD - testsing - "(?is)(a|aa?)*b" // $ hasExpRedos hasPrefixMsg="starting with 'is' and " hasPump=a + "(?is)(a|aa?)*b" // $ hasExpRedos hasPrefixMsg= hasPump=a }; void test() { From 1c81bd52e61175e56ed9b114f1fccc365926c75f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 13 Sep 2023 09:21:52 +0100 Subject: [PATCH 374/788] Java: Change note. --- java/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md diff --git a/java/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md b/java/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md new file mode 100644 index 00000000000..d13350726a8 --- /dev/null +++ b/java/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* The regular expressions library no longer incorrectly matches mode flag characters against the input. From af3d8c88bb9f7f8274b94c5cc69dfaa522a7a76b Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 13 Sep 2023 17:58:31 +0100 Subject: [PATCH 375/788] Java: Fix test comment. --- java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java b/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java index c9e66e69f59..56017ee12e8 100644 --- a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java +++ b/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java @@ -433,7 +433,7 @@ class ExpRedosTest { // BAD - but not detected due to the way possessive quantifiers are approximated "((aa|a*+)b)*c", // $ MISSING: hasExpRedos - // BAD - testsing + // BAD - testing mode flag groups "(?is)(a|aa?)*b" // $ hasExpRedos hasPrefixMsg= hasPump=a }; From df60f560a28b228f8717cbf6070742eda1f045ff Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 12 Sep 2023 22:35:02 +0100 Subject: [PATCH 376/788] Swift: Add demonstrative test case. --- swift/ql/test/query-tests/Security/CWE-1333/ReDoS.expected | 7 ++++--- swift/ql/test/query-tests/Security/CWE-1333/ReDoS.swift | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.expected b/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.expected index ef9d74258b7..f1cf7c1c8a4 100644 --- a/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.expected +++ b/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.expected @@ -2,6 +2,7 @@ | ReDoS.swift:65:22:65:22 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | | ReDoS.swift:66:22:66:22 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | | ReDoS.swift:69:18:69:18 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | -| ReDoS.swift:75:46:75:46 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | -| ReDoS.swift:77:57:77:57 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | -| ReDoS.swift:80:57:80:57 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | +| ReDoS.swift:73:26:73:33 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings starting with 'isx' and containing many repetitions of '\\n'. | +| ReDoS.swift:77:46:77:46 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | +| ReDoS.swift:79:57:79:57 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | +| ReDoS.swift:82:57:82:57 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | diff --git a/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.swift b/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.swift index ef099f555df..486360b7e36 100644 --- a/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.swift +++ b/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.swift @@ -70,6 +70,8 @@ func myRegexpTests(myUrl: URL) throws { let regex = try Regex(str) _ = try regex.firstMatch(in: tainted) + _ = try Regex(#"(?is)X(?:.|\n)*Y"#) // BAD - suggested attack should begin with 'x' or 'X', *not* 'isx' or 'isX' [WRONG] + // NSRegularExpression _ = try? NSRegularExpression(pattern: "((a*)*b)") // DUBIOUS (never used) [FLAGGED] From 200d9a4dfb31981910102a50c39713332b5e5bf2 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 12 Sep 2023 22:18:17 +0100 Subject: [PATCH 377/788] Swift: Port regex mode flag character fix from Python. --- .../swift/regex/internal/ParseRegex.qll | 39 +++++++++++---- .../test/library-tests/regex/parse.expected | 48 ++++++------------- swift/ql/test/library-tests/regex/regex.swift | 2 +- .../Security/CWE-1333/ReDoS.expected | 2 +- .../query-tests/Security/CWE-1333/ReDoS.swift | 2 +- 5 files changed, 47 insertions(+), 46 deletions(-) diff --git a/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll b/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll index f49f61cb365..50c9bd817d8 100644 --- a/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll +++ b/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll @@ -277,9 +277,10 @@ abstract class RegExp extends Expr { private predicate isGroupStart(int i) { this.nonEscapedCharAt(i) = "(" and not this.inCharSet(i) } /** - * Holds if a parse mode starts between `start` and `end`. + * Holds if the initial part of a parse mode, not containing any + * mode characters is between `start` and `end`. */ - private predicate flagGroupStart(int start, int end) { + private predicate flagGroupStartNoModes(int start, int end) { this.isGroupStart(start) and this.getChar(start + 1) = "?" and this.getChar(start + 2) in ["i", "x", "s", "m", "w"] and @@ -287,17 +288,35 @@ abstract class RegExp extends Expr { } /** - * Holds if a parse mode group is between `start` and `end`, and includes the - * mode flag `c`. For example the following span, with mode flag `i`: + * Holds if `pos` contains a mode character from the + * flag group starting at `start`. + */ + private predicate modeCharacter(int start, int pos) { + this.flagGroupStartNoModes(start, pos) + or + this.modeCharacter(start, pos - 1) and + this.getChar(pos) in ["i", "x", "s", "m", "w"] + } + + /** + * Holds if a parse mode group is between `start` and `end`. + */ + private predicate flagGroupStart(int start, int end) { + this.flagGroupStartNoModes(start, _) and + end = max(int i | this.modeCharacter(start, i) | i + 1) + } + + /** + * Holds if a parse mode group of this regex includes the mode flag `c`. + * For example the following parse mode group, with mode flag `i`: * ``` * (?i) * ``` */ - private predicate flagGroup(int start, int end, string c) { - exists(int inStart, int inEnd | - this.flagGroupStart(start, inStart) and - this.groupContents(start, end, inStart, inEnd) and - this.getChar([inStart .. inEnd - 1]) = c + private predicate flag(string c) { + exists(int pos | + this.modeCharacter(_, pos) and + this.getChar(pos) = c ) } @@ -305,7 +324,7 @@ abstract class RegExp extends Expr { * Gets a mode of this regular expression string if it is defined by a mode prefix. */ string getModeFromPrefix() { - exists(string c | this.flagGroup(_, _, c) | + exists(string c | this.flag(c) | c = "i" and result = "IGNORECASE" // case insensitive or c = "x" and result = "VERBOSE" // ignores whitespace and `#` comments within patterns diff --git a/swift/ql/test/library-tests/regex/parse.expected b/swift/ql/test/library-tests/regex/parse.expected index c38c5aa6331..eae4b750aae 100644 --- a/swift/ql/test/library-tests/regex/parse.expected +++ b/swift/ql/test/library-tests/regex/parse.expected @@ -1618,16 +1618,13 @@ redos_variants.swift: # 142| [RegExpConstant, RegExpNormalChar] ! -# 146| [RegExpGroup] (?s) -#-----| 0 -> [RegExpConstant, RegExpNormalChar] s +# 146| [RegExpZeroWidthMatch] (?s) # 146| [RegExpSequence] (?s)(.|\n)*! -#-----| 0 -> [RegExpGroup] (?s) +#-----| 0 -> [RegExpZeroWidthMatch] (?s) #-----| 1 -> [RegExpStar] (.|\n)* #-----| 2 -> [RegExpConstant, RegExpNormalChar] ! -# 146| [RegExpConstant, RegExpNormalChar] s - # 146| [RegExpGroup] (.|\n) #-----| 0 -> [RegExpAlt] .|\n @@ -6492,47 +6489,38 @@ regex.swift: # 206| [RegExpNamedCharacterProperty] [:aaaaa:] -# 211| [RegExpGroup] (?i) -#-----| 0 -> [RegExpConstant, RegExpNormalChar] i +# 211| [RegExpZeroWidthMatch] (?i) # 211| [RegExpSequence] (?i)abc -#-----| 0 -> [RegExpGroup] (?i) +#-----| 0 -> [RegExpZeroWidthMatch] (?i) #-----| 1 -> [RegExpConstant, RegExpNormalChar] abc -# 211| [RegExpConstant, RegExpNormalChar] i - # 211| [RegExpConstant, RegExpNormalChar] abc -# 212| [RegExpGroup] (?s) -#-----| 0 -> [RegExpConstant, RegExpNormalChar] s +# 212| [RegExpZeroWidthMatch] (?s) # 212| [RegExpSequence] (?s)abc -#-----| 0 -> [RegExpGroup] (?s) +#-----| 0 -> [RegExpZeroWidthMatch] (?s) #-----| 1 -> [RegExpConstant, RegExpNormalChar] abc -# 212| [RegExpConstant, RegExpNormalChar] s - # 212| [RegExpConstant, RegExpNormalChar] abc -# 213| [RegExpGroup] (?is) -#-----| 0 -> [RegExpConstant, RegExpNormalChar] is +# 213| [RegExpZeroWidthMatch] (?is) # 213| [RegExpSequence] (?is)abc -#-----| 0 -> [RegExpGroup] (?is) +#-----| 0 -> [RegExpZeroWidthMatch] (?is) #-----| 1 -> [RegExpConstant, RegExpNormalChar] abc -# 213| [RegExpConstant, RegExpNormalChar] is - # 213| [RegExpConstant, RegExpNormalChar] abc # 214| [RegExpGroup] (?i-s) -#-----| 0 -> [RegExpConstant, RegExpNormalChar] i-s +#-----| 0 -> [RegExpConstant, RegExpNormalChar] -s # 214| [RegExpSequence] (?i-s)abc #-----| 0 -> [RegExpGroup] (?i-s) #-----| 1 -> [RegExpConstant, RegExpNormalChar] abc -# 214| [RegExpConstant, RegExpNormalChar] i-s +# 214| [RegExpConstant, RegExpNormalChar] -s # 214| [RegExpConstant, RegExpNormalChar] abc @@ -6540,13 +6528,10 @@ regex.swift: # 217| [RegExpSequence] abc(?i)def #-----| 0 -> [RegExpConstant, RegExpNormalChar] abc -#-----| 1 -> [RegExpGroup] (?i) +#-----| 1 -> [RegExpZeroWidthMatch] (?i) #-----| 2 -> [RegExpConstant, RegExpNormalChar] def -# 217| [RegExpGroup] (?i) -#-----| 0 -> [RegExpConstant, RegExpNormalChar] i - -# 217| [RegExpConstant, RegExpNormalChar] i +# 217| [RegExpZeroWidthMatch] (?i) # 217| [RegExpConstant, RegExpNormalChar] def @@ -6558,16 +6543,13 @@ regex.swift: #-----| 2 -> [RegExpConstant, RegExpNormalChar] ghi # 218| [RegExpGroup] (?i:def) -#-----| 0 -> [RegExpConstant, RegExpNormalChar] i:def +#-----| 0 -> [RegExpConstant, RegExpNormalChar] :def -# 218| [RegExpConstant, RegExpNormalChar] i:def +# 218| [RegExpConstant, RegExpNormalChar] :def # 218| [RegExpConstant, RegExpNormalChar] ghi -# 219| [RegExpGroup] (?i) -#-----| 0 -> [RegExpConstant, RegExpNormalChar] i - -# 219| [RegExpConstant, RegExpNormalChar] i +# 219| [RegExpZeroWidthMatch] (?i) # 219| [RegExpConstant, RegExpNormalChar] abc diff --git a/swift/ql/test/library-tests/regex/regex.swift b/swift/ql/test/library-tests/regex/regex.swift index 867d0f613b4..286f3da1338 100644 --- a/swift/ql/test/library-tests/regex/regex.swift +++ b/swift/ql/test/library-tests/regex/regex.swift @@ -211,7 +211,7 @@ func myRegexpMethodsTests(b: Bool, str_unknown: String) throws { _ = try Regex("(?i)abc").firstMatch(in: input) // $ input=input modes=IGNORECASE regex=(?i)abc _ = try Regex("(?s)abc").firstMatch(in: input) // $ input=input modes=DOTALL regex=(?s)abc _ = try Regex("(?is)abc").firstMatch(in: input) // $ input=input modes="DOTALL | IGNORECASE" regex=(?is)abc - _ = try Regex("(?i-s)abc").firstMatch(in: input) // $ input=input regex=(?i-s)abc MISSING: modes=IGNORECASE SPURIOUS: modes="DOTALL | IGNORECASE" + _ = try Regex("(?i-s)abc").firstMatch(in: input) // $ input=input regex=(?i-s)abc modes=IGNORECASE // these cases use parse modes on localized areas of the regex, which we don't currently support _ = try Regex("abc(?i)def").firstMatch(in: input) // $ input=input modes=IGNORECASE regex=abc(?i)def diff --git a/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.expected b/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.expected index f1cf7c1c8a4..dc90ccefd9f 100644 --- a/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.expected +++ b/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.expected @@ -2,7 +2,7 @@ | ReDoS.swift:65:22:65:22 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | | ReDoS.swift:66:22:66:22 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | | ReDoS.swift:69:18:69:18 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | -| ReDoS.swift:73:26:73:33 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings starting with 'isx' and containing many repetitions of '\\n'. | +| ReDoS.swift:73:26:73:33 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings starting with 'x' and containing many repetitions of '\\n'. | | ReDoS.swift:77:46:77:46 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | | ReDoS.swift:79:57:79:57 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | | ReDoS.swift:82:57:82:57 | a* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | diff --git a/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.swift b/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.swift index 486360b7e36..0349bac0669 100644 --- a/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.swift +++ b/swift/ql/test/query-tests/Security/CWE-1333/ReDoS.swift @@ -70,7 +70,7 @@ func myRegexpTests(myUrl: URL) throws { let regex = try Regex(str) _ = try regex.firstMatch(in: tainted) - _ = try Regex(#"(?is)X(?:.|\n)*Y"#) // BAD - suggested attack should begin with 'x' or 'X', *not* 'isx' or 'isX' [WRONG] + _ = try Regex(#"(?is)X(?:.|\n)*Y"#) // BAD - suggested attack should begin with 'x' or 'X', *not* 'isx' or 'isX' // NSRegularExpression From d01a3e26d6d77946e3f208f8c71975b6a2b5892e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 12 Sep 2023 22:54:43 +0100 Subject: [PATCH 378/788] Swift: Change note. --- .../ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md diff --git a/swift/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md b/swift/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md new file mode 100644 index 00000000000..d13350726a8 --- /dev/null +++ b/swift/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* The regular expressions library no longer incorrectly matches mode flag characters against the input. From 6aa8daeeb69aeb817eea2dbac5b03800d8df0177 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 13 Sep 2023 19:06:54 +0100 Subject: [PATCH 379/788] Swift: Fix inline expectations. --- .../dataflow/dataflow/DataFlowInline.expected | 10 ---------- .../test/library-tests/dataflow/dataflow/test.swift | 12 ++++++------ 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlowInline.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlowInline.expected index 869a8bbc645..48de9172b36 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlowInline.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlowInline.expected @@ -1,12 +1,2 @@ failures testFailures -| test.swift:846:15:846:21 | ...[...] | Unexpected result: flow=871 | -| test.swift:846:24:847:1 | // $ flow=863\n | Missing result:flow=863 | -| test.swift:850:15:850:15 | v | Unexpected result: flow=872 | -| test.swift:850:18:851:1 | // $ flow=864\n | Missing result:flow=864 | -| test.swift:859:15:859:21 | ...[...] | Unexpected result: flow=873 | -| test.swift:859:24:860:1 | // $ SPURIOUS: flow=865\n | Fixed spurious result:flow=865 | -| test.swift:860:15:860:21 | ...[...] | Unexpected result: flow=873 | -| test.swift:860:24:861:1 | // $ flow=865\n | Missing result:flow=865 | -| test.swift:867:15:867:38 | \\...[...] | Unexpected result: flow=873 | -| test.swift:867:41:868:1 | // $ flow=865\n | Missing result:flow=865 | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/test.swift b/swift/ql/test/library-tests/dataflow/dataflow/test.swift index 506d8b015c2..d3dc57f8ef1 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/test.swift +++ b/swift/ql/test/library-tests/dataflow/dataflow/test.swift @@ -843,11 +843,11 @@ func testNestedKeyPathWrite() { func testVarargs1(args: Int...) { sink(arg: args) - sink(arg: args[0]) // $ flow=863 + sink(arg: args[0]) // $ flow=871 } func testVarargs2(_ v: Int, _ args: Int...) { - sink(arg: v) // $ flow=864 + sink(arg: v) // $ flow=872 sink(arg: args) sink(arg: args[0]) sink(arg: args[1]) @@ -856,15 +856,15 @@ func testVarargs2(_ v: Int, _ args: Int...) { func testVarargs3(_ v: Int, _ args: Int...) { sink(arg: v) sink(arg: args) - sink(arg: args[0]) // $ SPURIOUS: flow=865 - sink(arg: args[1]) // $ flow=865 + sink(arg: args[0]) // $ SPURIOUS: flow=873 + sink(arg: args[1]) // $ flow=873 for arg in args { - sink(arg: arg) // $ MISSING: flow=865 + sink(arg: arg) // $ MISSING: flow=873 } let myKeyPath = \[Int][1] - sink(arg: args[keyPath: myKeyPath]) // $ flow=865 + sink(arg: args[keyPath: myKeyPath]) // $ flow=873 } func testVarargsCaller() { From fdd349c1a3e774d37d276c7737366cc4b8fcb283 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Wed, 13 Sep 2023 20:11:21 +0200 Subject: [PATCH 380/788] fix out of bounds string access in isUsingDecl --- javascript/extractor/src/com/semmle/jcorn/Parser.java | 3 ++- .../AST/ExplicitResource/printAst.expected | 11 ++++++++--- .../test/library-tests/AST/ExplicitResource/tst.html | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 javascript/ql/test/library-tests/AST/ExplicitResource/tst.html diff --git a/javascript/extractor/src/com/semmle/jcorn/Parser.java b/javascript/extractor/src/com/semmle/jcorn/Parser.java index b7325021b72..361d5e6f390 100644 --- a/javascript/extractor/src/com/semmle/jcorn/Parser.java +++ b/javascript/extractor/src/com/semmle/jcorn/Parser.java @@ -2708,7 +2708,8 @@ public class Parser { Matcher m = Whitespace.skipWhiteSpace.matcher(this.input); m.find(this.pos); int next = m.end(); - return !Whitespace.lineBreakG.matcher(inputSubstring(this.pos, next)).matches() + return this.input.length() > next && + !Whitespace.lineBreakG.matcher(inputSubstring(this.pos, next)).matches() && Identifiers.isIdentifierChar(this.input.codePointAt(next), false); } diff --git a/javascript/ql/test/library-tests/AST/ExplicitResource/printAst.expected b/javascript/ql/test/library-tests/AST/ExplicitResource/printAst.expected index 48ecc28df26..3514287b1f4 100644 --- a/javascript/ql/test/library-tests/AST/ExplicitResource/printAst.expected +++ b/javascript/ql/test/library-tests/AST/ExplicitResource/printAst.expected @@ -4,8 +4,11 @@ nodes | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | +| tst.html:1:5:1:9 | [ExprStmt] using | semmle.label | [ExprStmt] using | +| tst.html:1:5:1:9 | [ExprStmt] using | semmle.order | 1 | +| tst.html:1:5:1:9 | [VarRef] using | semmle.label | [VarRef] using | | tst.js:1:1:10:1 | [FunctionDeclStmt] functio ... } } | semmle.label | [FunctionDeclStmt] functio ... } } | -| tst.js:1:1:10:1 | [FunctionDeclStmt] functio ... } } | semmle.order | 1 | +| tst.js:1:1:10:1 | [FunctionDeclStmt] functio ... } } | semmle.order | 2 | | tst.js:1:10:1:10 | [VarDecl] g | semmle.label | [VarDecl] g | | tst.js:1:14:10:1 | [BlockStmt] { u ... } } | semmle.label | [BlockStmt] { u ... } } | | tst.js:2:5:2:33 | [DeclStmt] using stream = ... | semmle.label | [DeclStmt] using stream = ... | @@ -28,7 +31,7 @@ nodes | tst.js:6:45:9:5 | [BlockStmt] { ... ; } | semmle.label | [BlockStmt] { ... ; } | | tst.js:8:9:8:14 | [BreakStmt] break; | semmle.label | [BreakStmt] break; | | tst.js:12:1:21:1 | [FunctionDeclStmt] async f ... nd"); } | semmle.label | [FunctionDeclStmt] async f ... nd"); } | -| tst.js:12:1:21:1 | [FunctionDeclStmt] async f ... nd"); } | semmle.order | 2 | +| tst.js:12:1:21:1 | [FunctionDeclStmt] async f ... nd"); } | semmle.order | 3 | | tst.js:12:16:12:16 | [VarDecl] h | semmle.label | [VarDecl] h | | tst.js:12:20:21:1 | [BlockStmt] { a ... nd"); } | semmle.label | [BlockStmt] { a ... nd"); } | | tst.js:13:5:13:39 | [DeclStmt] using stream = ... | semmle.label | [DeclStmt] using stream = ... | @@ -51,7 +54,7 @@ nodes | tst.js:20:13:20:15 | [Label] log | semmle.label | [Label] log | | tst.js:20:17:20:21 | [Literal] "end" | semmle.label | [Literal] "end" | | tst.js:23:1:29:1 | [FunctionDeclStmt] functio ... ing); } | semmle.label | [FunctionDeclStmt] functio ... ing); } | -| tst.js:23:1:29:1 | [FunctionDeclStmt] functio ... ing); } | semmle.order | 3 | +| tst.js:23:1:29:1 | [FunctionDeclStmt] functio ... ing); } | semmle.order | 4 | | tst.js:23:10:23:18 | [VarDecl] usesUsing | semmle.label | [VarDecl] usesUsing | | tst.js:23:22:29:1 | [BlockStmt] { u ... ing); } | semmle.label | [BlockStmt] { u ... ing); } | | tst.js:24:5:24:9 | [VarRef] using | semmle.label | [VarRef] using | @@ -77,6 +80,8 @@ edges | file://:0:0:0:0 | (Arguments) | tst.js:28:11:28:15 | [VarRef] using | semmle.order | 0 | | file://:0:0:0:0 | (Parameters) | tst.js:25:20:25:22 | [SimpleParameter] foo | semmle.label | 0 | | file://:0:0:0:0 | (Parameters) | tst.js:25:20:25:22 | [SimpleParameter] foo | semmle.order | 0 | +| tst.html:1:5:1:9 | [ExprStmt] using | tst.html:1:5:1:9 | [VarRef] using | semmle.label | 1 | +| tst.html:1:5:1:9 | [ExprStmt] using | tst.html:1:5:1:9 | [VarRef] using | semmle.order | 1 | | tst.js:1:1:10:1 | [FunctionDeclStmt] functio ... } } | tst.js:1:10:1:10 | [VarDecl] g | semmle.label | 0 | | tst.js:1:1:10:1 | [FunctionDeclStmt] functio ... } } | tst.js:1:10:1:10 | [VarDecl] g | semmle.order | 0 | | tst.js:1:1:10:1 | [FunctionDeclStmt] functio ... } } | tst.js:1:14:10:1 | [BlockStmt] { u ... } } | semmle.label | 5 | diff --git a/javascript/ql/test/library-tests/AST/ExplicitResource/tst.html b/javascript/ql/test/library-tests/AST/ExplicitResource/tst.html new file mode 100644 index 00000000000..cbf383d716b --- /dev/null +++ b/javascript/ql/test/library-tests/AST/ExplicitResource/tst.html @@ -0,0 +1,2 @@ +<%= using %> + \ No newline at end of file From 43ca192ceba928b3402cf37a8dc8148f65d92be3 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Wed, 13 Sep 2023 18:26:06 +0000 Subject: [PATCH 381/788] Swift: remove ArrayContent in UnsafeJsEvalQuery --- swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll index deebcd46e6b..af9305b3ef9 100644 --- a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll +++ b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll @@ -30,10 +30,7 @@ module UnsafeJsEvalConfig implements DataFlow::ConfigSig { or isAdditionalFlowStep(node, _) ) and - ( - c.getAReadContent() instanceof DataFlow::Content::ArrayContent or - c.getAReadContent() instanceof DataFlow::Content::CollectionContent - ) + c.getAReadContent() instanceof DataFlow::Content::CollectionContent } } From 0b66be5f072d4f38fc261aa28e12810740e0cefb Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Wed, 13 Sep 2023 18:29:03 +0000 Subject: [PATCH 382/788] Swift: restore ArrayElement as an alias for CollectionElement --- swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll b/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll index 3b7469a1ed0..30bf72346ff 100644 --- a/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll +++ b/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll @@ -497,6 +497,9 @@ predicate parseContent(AccessPathToken component, Content content) { or parseEnum(component, content) or + component.getName() = "ArrayElement" and + content instanceof Content::CollectionContent + or component.getName() = "CollectionElement" and content instanceof Content::CollectionContent } From 86bd2168ec746930316204afc7cb2bd522ec3d7a Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Wed, 13 Sep 2023 18:34:30 +0000 Subject: [PATCH 383/788] Swift: breaking change note for array content removal --- .../lib/change-notes/2023-09-13-array-content-unification.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-09-13-array-content-unification.md diff --git a/swift/ql/lib/change-notes/2023-09-13-array-content-unification.md b/swift/ql/lib/change-notes/2023-09-13-array-content-unification.md new file mode 100644 index 00000000000..4f198101b98 --- /dev/null +++ b/swift/ql/lib/change-notes/2023-09-13-array-content-unification.md @@ -0,0 +1,5 @@ +--- +category: breaking +--- + +* The `ArrayContent` type in the data flow library has been removed and its uses have been replaced with the `CollectionContent` type, to better reflect the hierarchy of the Swift standard library. Uses of `ArrayElement` in model files will be interpreted as referring to `CollectionContent`. From 20de4c625c67fdd4a76029e01452c2310566bc5d Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Wed, 13 Sep 2023 18:57:27 +0000 Subject: [PATCH 384/788] Swift: autoformat DataFlowPrivate --- .../lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 4ccd6a4bb02..fb330d48ed9 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -970,7 +970,7 @@ predicate readStep(Node node1, ContentSet c, Node node2) { exists(SubscriptExpr subscript | subscript.getBase() = node1.asExpr() and subscript = node2.asExpr() and - c.isSingleton(any(Content::CollectionContent ac)) + c.isSingleton(any(Content::CollectionContent ac)) ) or // read of a dictionary value via subscript operator @@ -1092,9 +1092,7 @@ class DataFlowExpr = Expr; * Holds if access paths with `c` at their head always should be tracked at high * precision. This disables adaptive access path precision for such access paths. */ -predicate forceHighPrecision(Content c) { - c instanceof Content::CollectionContent -} +predicate forceHighPrecision(Content c) { c instanceof Content::CollectionContent } /** * Holds if the node `n` is unreachable when the call context is `call`. From e25832496001a5e546d7596941eaa6870375134d Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 27 Mar 2023 13:42:11 +0200 Subject: [PATCH 385/788] Ruby: Allow for implicit array reads at all sinks during taint tracking --- .../internal/TaintTrackingPrivate.qll | 5 +- .../codeql/ruby/frameworks/ActiveRecord.qll | 7 +- .../lib/codeql/ruby/frameworks/core/Array.qll | 50 +- .../security/UnsafeCodeConstructionQuery.qll | 6 - .../UnsafeShellCommandConstructionQuery.qll | 6 - .../dataflow/array-flow/array-flow.expected | 2579 ++++++++--------- .../dataflow/array-flow/array_flow.rb | 7 +- .../type-tracking-array-flow.expected | 68 +- .../flow-summaries/semantics.expected | 6 + .../dataflow/string-flow/string_flow.rb | 2 +- .../dataflow/summaries/Summaries.expected | 6 + .../dataflow/summaries/summaries.rb | 2 +- .../type-tracker/TypeTracker.expected | 14 - .../action_controller/params-flow.expected | 18 + .../active_record/ActiveRecord.expected | 1 - .../active_support/active_support.rb | 2 +- .../security/cwe-079/ReflectedXSS.expected | 10 + .../security/cwe-079/StoredXSS.expected | 10 + .../security/cwe-089/SqlInjection.expected | 13 +- .../CodeInjection/CodeInjection.expected | 10 + .../security/cwe-117/LogInjection.expected | 13 + .../RegExpInjection.expected | 10 + .../cwe-134/TaintedFormatString.expected | 3 + 23 files changed, 1452 insertions(+), 1396 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll index 060f1d33bda..4786fd11259 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll @@ -17,7 +17,10 @@ predicate defaultTaintSanitizer(DataFlow::Node node) { none() } * of `c` at sinks and inputs to additional taint steps. */ bindingset[node] -predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::ContentSet c) { none() } +predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::ContentSet c) { + exists(node) and + c.isElementOfTypeOrUnknown("int") +} private CfgNodes::ExprNodes::VariableWriteAccessCfgNode variablesInPattern( CfgNodes::ExprNodes::CasePatternCfgNode p diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 4a5d342eeba..dca2ad0cee9 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -201,11 +201,8 @@ private predicate sqlFragmentArgumentInner(DataFlow::CallNode call, DataFlow::No } private predicate sqlFragmentArgument(DataFlow::CallNode call, DataFlow::Node sink) { - exists(DataFlow::Node arg | - sqlFragmentArgumentInner(call, arg) and - sink = [arg, arg.(DataFlow::ArrayLiteralNode).getElement(0)] and - unsafeSqlExpr(sink.asExpr().getExpr()) - ) + sqlFragmentArgumentInner(call, sink) and + unsafeSqlExpr(sink.asExpr().getExpr()) } // An expression that, if tainted by unsanitized input, should not be used as diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll index a6f5a5e36ff..6d0c22da2f0 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll @@ -210,9 +210,28 @@ module Array { } } + private predicate isKnownRange(RangeLiteral rl, int start, int end) { + ( + // Either an explicit, positive beginning index... + start = rl.getBegin().getConstantValue().getInt() and start >= 0 + or + // Or a begin-less one, since `..n` is equivalent to `0..n` + not exists(rl.getBegin()) and start = 0 + ) and + // There must be an explicit end. An end-less range like `2..` is not + // treated as a known range, since we don't track the length of the array. + exists(int e | e = rl.getEnd().getConstantValue().getInt() and e >= 0 | + rl.isInclusive() and end = e + or + rl.isExclusive() and end = e - 1 + ) + } + /** * A call to `[]` with an unknown argument, which could be either an index or - * a range. + * a range. To avoid spurious flow, we are going to ignore the possibility + * that the argument might be a range (unless it is an explicit range literal, + * see `ElementReferenceRangeReadUnknownSummary`). */ private class ElementReferenceReadUnknownSummary extends ElementReferenceReadSummary { ElementReferenceReadUnknownSummary() { @@ -223,7 +242,7 @@ module Array { override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { input = "Argument[self].Element[any]" and - output = ["ReturnValue", "ReturnValue.Element[?]"] and + output = "ReturnValue" and preservesValue = true } } @@ -242,24 +261,8 @@ module Array { ) or mc.getNumberOfArguments() = 1 and - exists(RangeLiteral rl | - rl = mc.getArgument(0) and - ( - // Either an explicit, positive beginning index... - start = rl.getBegin().getConstantValue().getInt() and start >= 0 - or - // Or a begin-less one, since `..n` is equivalent to `0..n` - not exists(rl.getBegin()) and start = 0 - ) and - // There must be an explicit end. An end-less range like `2..` is not - // treated as a known range, since we don't track the length of the array. - exists(int e | e = rl.getEnd().getConstantValue().getInt() and e >= 0 | - rl.isInclusive() and end = e - or - rl.isExclusive() and end = e - 1 - ) and - this = methodName + "(" + start + ".." + end + ")" - ) + isKnownRange(mc.getArgument(0), start, end) and + this = methodName + "(" + start + ".." + end + ")" } override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { @@ -291,12 +294,7 @@ module Array { ) or mc.getNumberOfArguments() = 1 and - exists(RangeLiteral rl | rl = mc.getArgument(0) | - exists(rl.getBegin()) and - not exists(int b | b = rl.getBegin().getConstantValue().getInt() and b >= 0) - or - not exists(int e | e = rl.getEnd().getConstantValue().getInt() and e >= 0) - ) + mc.getArgument(0) = any(RangeLiteral range | not isKnownRange(range, _, _)) ) } diff --git a/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll index de6a1dd574f..4cf57f36071 100644 --- a/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll @@ -32,12 +32,6 @@ deprecated class Configuration extends TaintTracking::Configuration { override DataFlow::FlowFeature getAFeature() { result instanceof DataFlow::FeatureHasSourceCallContext } - - override predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet set) { - // allow implicit reads of array elements - this.isSink(node) and - set.isElementOfTypeOrUnknown("int") - } } private module UnsafeCodeConstructionConfig implements DataFlow::ConfigSig { diff --git a/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll index 9a116c4b206..7576702a2d4 100644 --- a/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll @@ -34,12 +34,6 @@ deprecated class Configuration extends TaintTracking::Configuration { override DataFlow::FlowFeature getAFeature() { result instanceof DataFlow::FeatureHasSourceCallContext } - - override predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet set) { - // allow implicit reads of array elements - this.isSink(node) and - set.isElementOfTypeOrUnknown("int") - } } private module UnsafeShellCommandConstructionConfig implements DataFlow::ConfigSig { diff --git a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected index 0408a194c99..0d61ff1515b 100644 --- a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected @@ -1481,22 +1481,22 @@ edges | array_flow.rb:1202:10:1202:10 | b [element] | array_flow.rb:1202:10:1202:13 | ...[...] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1211:9:1211:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1214:9:1214:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1220:9:1220:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1225:9:1225:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1229:9:1229:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1234:9:1234:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1239:9:1239:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1243:9:1243:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1247:9:1247:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1252:9:1252:9 | a [element 2] | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1221:9:1221:9 | a [element 2] | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1226:9:1226:9 | a [element 2] | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1230:9:1230:9 | a [element 2] | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1235:9:1235:9 | a [element 2] | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1240:9:1240:9 | a [element 2] | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1244:9:1244:9 | a [element 2] | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1248:9:1248:9 | a [element 2] | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1253:9:1253:9 | a [element 2] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1208:9:1208:9 | a [element 4] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1211:9:1211:9 | a [element 4] | | array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1214:9:1214:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1220:9:1220:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1225:9:1225:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1239:9:1239:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1243:9:1243:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1252:9:1252:9 | a [element 4] | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1221:9:1221:9 | a [element 4] | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1226:9:1226:9 | a [element 4] | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1240:9:1240:9 | a [element 4] | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1244:9:1244:9 | a [element 4] | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1253:9:1253:9 | a [element 4] | | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1206:5:1206:5 | a [element 2] | | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1206:5:1206:5 | a [element 4] | | array_flow.rb:1208:5:1208:5 | b | array_flow.rb:1209:10:1209:10 | b | @@ -1507,612 +1507,607 @@ edges | array_flow.rb:1211:9:1211:9 | a [element 4] | array_flow.rb:1211:9:1211:19 | call to slice | | array_flow.rb:1211:9:1211:19 | call to slice | array_flow.rb:1211:5:1211:5 | b | | array_flow.rb:1214:5:1214:5 | b | array_flow.rb:1216:10:1216:10 | b | -| array_flow.rb:1214:5:1214:5 | b [element] | array_flow.rb:1218:10:1218:10 | b [element] | | array_flow.rb:1214:9:1214:9 | a [element 2] | array_flow.rb:1214:9:1214:17 | call to slice | -| array_flow.rb:1214:9:1214:9 | a [element 2] | array_flow.rb:1214:9:1214:17 | call to slice [element] | | array_flow.rb:1214:9:1214:9 | a [element 4] | array_flow.rb:1214:9:1214:17 | call to slice | -| array_flow.rb:1214:9:1214:9 | a [element 4] | array_flow.rb:1214:9:1214:17 | call to slice [element] | | array_flow.rb:1214:9:1214:17 | call to slice | array_flow.rb:1214:5:1214:5 | b | -| array_flow.rb:1214:9:1214:17 | call to slice [element] | array_flow.rb:1214:5:1214:5 | b [element] | -| array_flow.rb:1218:10:1218:10 | b [element] | array_flow.rb:1218:10:1218:13 | ...[...] | -| array_flow.rb:1220:5:1220:5 | b [element 0] | array_flow.rb:1221:10:1221:10 | b [element 0] | -| array_flow.rb:1220:5:1220:5 | b [element 2] | array_flow.rb:1223:10:1223:10 | b [element 2] | -| array_flow.rb:1220:9:1220:9 | a [element 2] | array_flow.rb:1220:9:1220:21 | call to slice [element 0] | -| array_flow.rb:1220:9:1220:9 | a [element 4] | array_flow.rb:1220:9:1220:21 | call to slice [element 2] | -| array_flow.rb:1220:9:1220:21 | call to slice [element 0] | array_flow.rb:1220:5:1220:5 | b [element 0] | -| array_flow.rb:1220:9:1220:21 | call to slice [element 2] | array_flow.rb:1220:5:1220:5 | b [element 2] | -| array_flow.rb:1221:10:1221:10 | b [element 0] | array_flow.rb:1221:10:1221:13 | ...[...] | -| array_flow.rb:1223:10:1223:10 | b [element 2] | array_flow.rb:1223:10:1223:13 | ...[...] | -| array_flow.rb:1225:5:1225:5 | b [element] | array_flow.rb:1226:10:1226:10 | b [element] | -| array_flow.rb:1225:5:1225:5 | b [element] | array_flow.rb:1227:10:1227:10 | b [element] | -| array_flow.rb:1225:9:1225:9 | a [element 2] | array_flow.rb:1225:9:1225:21 | call to slice [element] | -| array_flow.rb:1225:9:1225:9 | a [element 4] | array_flow.rb:1225:9:1225:21 | call to slice [element] | -| array_flow.rb:1225:9:1225:21 | call to slice [element] | array_flow.rb:1225:5:1225:5 | b [element] | -| array_flow.rb:1226:10:1226:10 | b [element] | array_flow.rb:1226:10:1226:13 | ...[...] | +| array_flow.rb:1221:5:1221:5 | b [element 0] | array_flow.rb:1222:10:1222:10 | b [element 0] | +| array_flow.rb:1221:5:1221:5 | b [element 2] | array_flow.rb:1224:10:1224:10 | b [element 2] | +| array_flow.rb:1221:9:1221:9 | a [element 2] | array_flow.rb:1221:9:1221:21 | call to slice [element 0] | +| array_flow.rb:1221:9:1221:9 | a [element 4] | array_flow.rb:1221:9:1221:21 | call to slice [element 2] | +| array_flow.rb:1221:9:1221:21 | call to slice [element 0] | array_flow.rb:1221:5:1221:5 | b [element 0] | +| array_flow.rb:1221:9:1221:21 | call to slice [element 2] | array_flow.rb:1221:5:1221:5 | b [element 2] | +| array_flow.rb:1222:10:1222:10 | b [element 0] | array_flow.rb:1222:10:1222:13 | ...[...] | +| array_flow.rb:1224:10:1224:10 | b [element 2] | array_flow.rb:1224:10:1224:13 | ...[...] | +| array_flow.rb:1226:5:1226:5 | b [element] | array_flow.rb:1227:10:1227:10 | b [element] | +| array_flow.rb:1226:5:1226:5 | b [element] | array_flow.rb:1228:10:1228:10 | b [element] | +| array_flow.rb:1226:9:1226:9 | a [element 2] | array_flow.rb:1226:9:1226:21 | call to slice [element] | +| array_flow.rb:1226:9:1226:9 | a [element 4] | array_flow.rb:1226:9:1226:21 | call to slice [element] | +| array_flow.rb:1226:9:1226:21 | call to slice [element] | array_flow.rb:1226:5:1226:5 | b [element] | | array_flow.rb:1227:10:1227:10 | b [element] | array_flow.rb:1227:10:1227:13 | ...[...] | -| array_flow.rb:1229:5:1229:5 | b [element 0] | array_flow.rb:1230:10:1230:10 | b [element 0] | -| array_flow.rb:1229:9:1229:9 | a [element 2] | array_flow.rb:1229:9:1229:21 | call to slice [element 0] | -| array_flow.rb:1229:9:1229:21 | call to slice [element 0] | array_flow.rb:1229:5:1229:5 | b [element 0] | -| array_flow.rb:1230:10:1230:10 | b [element 0] | array_flow.rb:1230:10:1230:13 | ...[...] | -| array_flow.rb:1234:5:1234:5 | b [element 0] | array_flow.rb:1235:10:1235:10 | b [element 0] | -| array_flow.rb:1234:9:1234:9 | a [element 2] | array_flow.rb:1234:9:1234:22 | call to slice [element 0] | -| array_flow.rb:1234:9:1234:22 | call to slice [element 0] | array_flow.rb:1234:5:1234:5 | b [element 0] | -| array_flow.rb:1235:10:1235:10 | b [element 0] | array_flow.rb:1235:10:1235:13 | ...[...] | -| array_flow.rb:1239:5:1239:5 | b [element] | array_flow.rb:1240:10:1240:10 | b [element] | -| array_flow.rb:1239:5:1239:5 | b [element] | array_flow.rb:1241:10:1241:10 | b [element] | -| array_flow.rb:1239:9:1239:9 | a [element 2] | array_flow.rb:1239:9:1239:21 | call to slice [element] | -| array_flow.rb:1239:9:1239:9 | a [element 4] | array_flow.rb:1239:9:1239:21 | call to slice [element] | -| array_flow.rb:1239:9:1239:21 | call to slice [element] | array_flow.rb:1239:5:1239:5 | b [element] | -| array_flow.rb:1240:10:1240:10 | b [element] | array_flow.rb:1240:10:1240:13 | ...[...] | +| array_flow.rb:1228:10:1228:10 | b [element] | array_flow.rb:1228:10:1228:13 | ...[...] | +| array_flow.rb:1230:5:1230:5 | b [element 0] | array_flow.rb:1231:10:1231:10 | b [element 0] | +| array_flow.rb:1230:9:1230:9 | a [element 2] | array_flow.rb:1230:9:1230:21 | call to slice [element 0] | +| array_flow.rb:1230:9:1230:21 | call to slice [element 0] | array_flow.rb:1230:5:1230:5 | b [element 0] | +| array_flow.rb:1231:10:1231:10 | b [element 0] | array_flow.rb:1231:10:1231:13 | ...[...] | +| array_flow.rb:1235:5:1235:5 | b [element 0] | array_flow.rb:1236:10:1236:10 | b [element 0] | +| array_flow.rb:1235:9:1235:9 | a [element 2] | array_flow.rb:1235:9:1235:22 | call to slice [element 0] | +| array_flow.rb:1235:9:1235:22 | call to slice [element 0] | array_flow.rb:1235:5:1235:5 | b [element 0] | +| array_flow.rb:1236:10:1236:10 | b [element 0] | array_flow.rb:1236:10:1236:13 | ...[...] | +| array_flow.rb:1240:5:1240:5 | b [element] | array_flow.rb:1241:10:1241:10 | b [element] | +| array_flow.rb:1240:5:1240:5 | b [element] | array_flow.rb:1242:10:1242:10 | b [element] | +| array_flow.rb:1240:9:1240:9 | a [element 2] | array_flow.rb:1240:9:1240:21 | call to slice [element] | +| array_flow.rb:1240:9:1240:9 | a [element 4] | array_flow.rb:1240:9:1240:21 | call to slice [element] | +| array_flow.rb:1240:9:1240:21 | call to slice [element] | array_flow.rb:1240:5:1240:5 | b [element] | | array_flow.rb:1241:10:1241:10 | b [element] | array_flow.rb:1241:10:1241:13 | ...[...] | -| array_flow.rb:1243:5:1243:5 | b [element] | array_flow.rb:1244:10:1244:10 | b [element] | -| array_flow.rb:1243:5:1243:5 | b [element] | array_flow.rb:1245:10:1245:10 | b [element] | -| array_flow.rb:1243:9:1243:9 | a [element 2] | array_flow.rb:1243:9:1243:24 | call to slice [element] | -| array_flow.rb:1243:9:1243:9 | a [element 4] | array_flow.rb:1243:9:1243:24 | call to slice [element] | -| array_flow.rb:1243:9:1243:24 | call to slice [element] | array_flow.rb:1243:5:1243:5 | b [element] | -| array_flow.rb:1244:10:1244:10 | b [element] | array_flow.rb:1244:10:1244:13 | ...[...] | +| array_flow.rb:1242:10:1242:10 | b [element] | array_flow.rb:1242:10:1242:13 | ...[...] | +| array_flow.rb:1244:5:1244:5 | b [element] | array_flow.rb:1245:10:1245:10 | b [element] | +| array_flow.rb:1244:5:1244:5 | b [element] | array_flow.rb:1246:10:1246:10 | b [element] | +| array_flow.rb:1244:9:1244:9 | a [element 2] | array_flow.rb:1244:9:1244:24 | call to slice [element] | +| array_flow.rb:1244:9:1244:9 | a [element 4] | array_flow.rb:1244:9:1244:24 | call to slice [element] | +| array_flow.rb:1244:9:1244:24 | call to slice [element] | array_flow.rb:1244:5:1244:5 | b [element] | | array_flow.rb:1245:10:1245:10 | b [element] | array_flow.rb:1245:10:1245:13 | ...[...] | -| array_flow.rb:1247:5:1247:5 | b [element 2] | array_flow.rb:1250:10:1250:10 | b [element 2] | -| array_flow.rb:1247:9:1247:9 | a [element 2] | array_flow.rb:1247:9:1247:20 | call to slice [element 2] | -| array_flow.rb:1247:9:1247:20 | call to slice [element 2] | array_flow.rb:1247:5:1247:5 | b [element 2] | -| array_flow.rb:1250:10:1250:10 | b [element 2] | array_flow.rb:1250:10:1250:13 | ...[...] | -| array_flow.rb:1252:5:1252:5 | b [element] | array_flow.rb:1253:10:1253:10 | b [element] | -| array_flow.rb:1252:5:1252:5 | b [element] | array_flow.rb:1254:10:1254:10 | b [element] | -| array_flow.rb:1252:5:1252:5 | b [element] | array_flow.rb:1255:10:1255:10 | b [element] | -| array_flow.rb:1252:9:1252:9 | a [element 2] | array_flow.rb:1252:9:1252:20 | call to slice [element] | -| array_flow.rb:1252:9:1252:9 | a [element 4] | array_flow.rb:1252:9:1252:20 | call to slice [element] | -| array_flow.rb:1252:9:1252:20 | call to slice [element] | array_flow.rb:1252:5:1252:5 | b [element] | -| array_flow.rb:1253:10:1253:10 | b [element] | array_flow.rb:1253:10:1253:13 | ...[...] | +| array_flow.rb:1246:10:1246:10 | b [element] | array_flow.rb:1246:10:1246:13 | ...[...] | +| array_flow.rb:1248:5:1248:5 | b [element 2] | array_flow.rb:1251:10:1251:10 | b [element 2] | +| array_flow.rb:1248:9:1248:9 | a [element 2] | array_flow.rb:1248:9:1248:20 | call to slice [element 2] | +| array_flow.rb:1248:9:1248:20 | call to slice [element 2] | array_flow.rb:1248:5:1248:5 | b [element 2] | +| array_flow.rb:1251:10:1251:10 | b [element 2] | array_flow.rb:1251:10:1251:13 | ...[...] | +| array_flow.rb:1253:5:1253:5 | b [element] | array_flow.rb:1254:10:1254:10 | b [element] | +| array_flow.rb:1253:5:1253:5 | b [element] | array_flow.rb:1255:10:1255:10 | b [element] | +| array_flow.rb:1253:5:1253:5 | b [element] | array_flow.rb:1256:10:1256:10 | b [element] | +| array_flow.rb:1253:9:1253:9 | a [element 2] | array_flow.rb:1253:9:1253:20 | call to slice [element] | +| array_flow.rb:1253:9:1253:9 | a [element 4] | array_flow.rb:1253:9:1253:20 | call to slice [element] | +| array_flow.rb:1253:9:1253:20 | call to slice [element] | array_flow.rb:1253:5:1253:5 | b [element] | | array_flow.rb:1254:10:1254:10 | b [element] | array_flow.rb:1254:10:1254:13 | ...[...] | | array_flow.rb:1255:10:1255:10 | b [element] | array_flow.rb:1255:10:1255:13 | ...[...] | -| array_flow.rb:1259:5:1259:5 | a [element 2] | array_flow.rb:1260:9:1260:9 | a [element 2] | -| array_flow.rb:1259:5:1259:5 | a [element 4] | array_flow.rb:1260:9:1260:9 | a [element 4] | -| array_flow.rb:1259:16:1259:28 | call to source | array_flow.rb:1259:5:1259:5 | a [element 2] | -| array_flow.rb:1259:34:1259:46 | call to source | array_flow.rb:1259:5:1259:5 | a [element 4] | -| array_flow.rb:1260:5:1260:5 | b | array_flow.rb:1261:10:1261:10 | b | -| array_flow.rb:1260:9:1260:9 | [post] a [element 3] | array_flow.rb:1265:10:1265:10 | a [element 3] | -| array_flow.rb:1260:9:1260:9 | a [element 2] | array_flow.rb:1260:9:1260:19 | call to slice! | -| array_flow.rb:1260:9:1260:9 | a [element 4] | array_flow.rb:1260:9:1260:9 | [post] a [element 3] | -| array_flow.rb:1260:9:1260:19 | call to slice! | array_flow.rb:1260:5:1260:5 | b | -| array_flow.rb:1265:10:1265:10 | a [element 3] | array_flow.rb:1265:10:1265:13 | ...[...] | -| array_flow.rb:1267:5:1267:5 | a [element 2] | array_flow.rb:1268:9:1268:9 | a [element 2] | -| array_flow.rb:1267:5:1267:5 | a [element 4] | array_flow.rb:1268:9:1268:9 | a [element 4] | -| array_flow.rb:1267:16:1267:28 | call to source | array_flow.rb:1267:5:1267:5 | a [element 2] | -| array_flow.rb:1267:34:1267:46 | call to source | array_flow.rb:1267:5:1267:5 | a [element 4] | -| array_flow.rb:1268:5:1268:5 | b | array_flow.rb:1274:10:1274:10 | b | -| array_flow.rb:1268:5:1268:5 | b [element] | array_flow.rb:1276:10:1276:10 | b [element] | -| array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1269:10:1269:10 | a [element] | -| array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1270:10:1270:10 | a [element] | -| array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1271:10:1271:10 | a [element] | -| array_flow.rb:1268:9:1268:9 | [post] a [element] | array_flow.rb:1272:10:1272:10 | a [element] | -| array_flow.rb:1268:9:1268:9 | a [element 2] | array_flow.rb:1268:9:1268:9 | [post] a [element] | -| array_flow.rb:1268:9:1268:9 | a [element 2] | array_flow.rb:1268:9:1268:19 | call to slice! | -| array_flow.rb:1268:9:1268:9 | a [element 2] | array_flow.rb:1268:9:1268:19 | call to slice! [element] | -| array_flow.rb:1268:9:1268:9 | a [element 4] | array_flow.rb:1268:9:1268:9 | [post] a [element] | -| array_flow.rb:1268:9:1268:9 | a [element 4] | array_flow.rb:1268:9:1268:19 | call to slice! | -| array_flow.rb:1268:9:1268:9 | a [element 4] | array_flow.rb:1268:9:1268:19 | call to slice! [element] | -| array_flow.rb:1268:9:1268:19 | call to slice! | array_flow.rb:1268:5:1268:5 | b | -| array_flow.rb:1268:9:1268:19 | call to slice! [element] | array_flow.rb:1268:5:1268:5 | b [element] | -| array_flow.rb:1269:10:1269:10 | a [element] | array_flow.rb:1269:10:1269:13 | ...[...] | +| array_flow.rb:1256:10:1256:10 | b [element] | array_flow.rb:1256:10:1256:13 | ...[...] | +| array_flow.rb:1260:5:1260:5 | a [element 2] | array_flow.rb:1261:9:1261:9 | a [element 2] | +| array_flow.rb:1260:5:1260:5 | a [element 4] | array_flow.rb:1261:9:1261:9 | a [element 4] | +| array_flow.rb:1260:16:1260:28 | call to source | array_flow.rb:1260:5:1260:5 | a [element 2] | +| array_flow.rb:1260:34:1260:46 | call to source | array_flow.rb:1260:5:1260:5 | a [element 4] | +| array_flow.rb:1261:5:1261:5 | b | array_flow.rb:1262:10:1262:10 | b | +| array_flow.rb:1261:9:1261:9 | [post] a [element 3] | array_flow.rb:1266:10:1266:10 | a [element 3] | +| array_flow.rb:1261:9:1261:9 | a [element 2] | array_flow.rb:1261:9:1261:19 | call to slice! | +| array_flow.rb:1261:9:1261:9 | a [element 4] | array_flow.rb:1261:9:1261:9 | [post] a [element 3] | +| array_flow.rb:1261:9:1261:19 | call to slice! | array_flow.rb:1261:5:1261:5 | b | +| array_flow.rb:1266:10:1266:10 | a [element 3] | array_flow.rb:1266:10:1266:13 | ...[...] | +| array_flow.rb:1268:5:1268:5 | a [element 2] | array_flow.rb:1269:9:1269:9 | a [element 2] | +| array_flow.rb:1268:5:1268:5 | a [element 4] | array_flow.rb:1269:9:1269:9 | a [element 4] | +| array_flow.rb:1268:16:1268:28 | call to source | array_flow.rb:1268:5:1268:5 | a [element 2] | +| array_flow.rb:1268:34:1268:46 | call to source | array_flow.rb:1268:5:1268:5 | a [element 4] | +| array_flow.rb:1269:5:1269:5 | b | array_flow.rb:1275:10:1275:10 | b | +| array_flow.rb:1269:5:1269:5 | b [element] | array_flow.rb:1277:10:1277:10 | b [element] | +| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1270:10:1270:10 | a [element] | +| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1271:10:1271:10 | a [element] | +| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1272:10:1272:10 | a [element] | +| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1273:10:1273:10 | a [element] | +| array_flow.rb:1269:9:1269:9 | a [element 2] | array_flow.rb:1269:9:1269:9 | [post] a [element] | +| array_flow.rb:1269:9:1269:9 | a [element 2] | array_flow.rb:1269:9:1269:19 | call to slice! | +| array_flow.rb:1269:9:1269:9 | a [element 2] | array_flow.rb:1269:9:1269:19 | call to slice! [element] | +| array_flow.rb:1269:9:1269:9 | a [element 4] | array_flow.rb:1269:9:1269:9 | [post] a [element] | +| array_flow.rb:1269:9:1269:9 | a [element 4] | array_flow.rb:1269:9:1269:19 | call to slice! | +| array_flow.rb:1269:9:1269:9 | a [element 4] | array_flow.rb:1269:9:1269:19 | call to slice! [element] | +| array_flow.rb:1269:9:1269:19 | call to slice! | array_flow.rb:1269:5:1269:5 | b | +| array_flow.rb:1269:9:1269:19 | call to slice! [element] | array_flow.rb:1269:5:1269:5 | b [element] | | array_flow.rb:1270:10:1270:10 | a [element] | array_flow.rb:1270:10:1270:13 | ...[...] | | array_flow.rb:1271:10:1271:10 | a [element] | array_flow.rb:1271:10:1271:13 | ...[...] | | array_flow.rb:1272:10:1272:10 | a [element] | array_flow.rb:1272:10:1272:13 | ...[...] | -| array_flow.rb:1276:10:1276:10 | b [element] | array_flow.rb:1276:10:1276:13 | ...[...] | -| array_flow.rb:1278:5:1278:5 | a [element 2] | array_flow.rb:1279:9:1279:9 | a [element 2] | -| array_flow.rb:1278:5:1278:5 | a [element 4] | array_flow.rb:1279:9:1279:9 | a [element 4] | -| array_flow.rb:1278:16:1278:28 | call to source | array_flow.rb:1278:5:1278:5 | a [element 2] | -| array_flow.rb:1278:34:1278:46 | call to source | array_flow.rb:1278:5:1278:5 | a [element 4] | -| array_flow.rb:1279:5:1279:5 | b [element 0] | array_flow.rb:1280:10:1280:10 | b [element 0] | -| array_flow.rb:1279:5:1279:5 | b [element 2] | array_flow.rb:1282:10:1282:10 | b [element 2] | -| array_flow.rb:1279:9:1279:9 | a [element 2] | array_flow.rb:1279:9:1279:22 | call to slice! [element 0] | -| array_flow.rb:1279:9:1279:9 | a [element 4] | array_flow.rb:1279:9:1279:22 | call to slice! [element 2] | -| array_flow.rb:1279:9:1279:22 | call to slice! [element 0] | array_flow.rb:1279:5:1279:5 | b [element 0] | -| array_flow.rb:1279:9:1279:22 | call to slice! [element 2] | array_flow.rb:1279:5:1279:5 | b [element 2] | -| array_flow.rb:1280:10:1280:10 | b [element 0] | array_flow.rb:1280:10:1280:13 | ...[...] | -| array_flow.rb:1282:10:1282:10 | b [element 2] | array_flow.rb:1282:10:1282:13 | ...[...] | -| array_flow.rb:1289:5:1289:5 | a [element 2] | array_flow.rb:1290:9:1290:9 | a [element 2] | -| array_flow.rb:1289:5:1289:5 | a [element 4] | array_flow.rb:1290:9:1290:9 | a [element 4] | -| array_flow.rb:1289:16:1289:28 | call to source | array_flow.rb:1289:5:1289:5 | a [element 2] | -| array_flow.rb:1289:34:1289:46 | call to source | array_flow.rb:1289:5:1289:5 | a [element 4] | -| array_flow.rb:1290:5:1290:5 | b [element 0] | array_flow.rb:1291:10:1291:10 | b [element 0] | -| array_flow.rb:1290:9:1290:9 | [post] a [element 2] | array_flow.rb:1296:10:1296:10 | a [element 2] | -| array_flow.rb:1290:9:1290:9 | a [element 2] | array_flow.rb:1290:9:1290:22 | call to slice! [element 0] | -| array_flow.rb:1290:9:1290:9 | a [element 4] | array_flow.rb:1290:9:1290:9 | [post] a [element 2] | -| array_flow.rb:1290:9:1290:22 | call to slice! [element 0] | array_flow.rb:1290:5:1290:5 | b [element 0] | -| array_flow.rb:1291:10:1291:10 | b [element 0] | array_flow.rb:1291:10:1291:13 | ...[...] | -| array_flow.rb:1296:10:1296:10 | a [element 2] | array_flow.rb:1296:10:1296:13 | ...[...] | -| array_flow.rb:1300:5:1300:5 | a [element 2] | array_flow.rb:1301:9:1301:9 | a [element 2] | -| array_flow.rb:1300:5:1300:5 | a [element 4] | array_flow.rb:1301:9:1301:9 | a [element 4] | -| array_flow.rb:1300:16:1300:28 | call to source | array_flow.rb:1300:5:1300:5 | a [element 2] | -| array_flow.rb:1300:34:1300:46 | call to source | array_flow.rb:1300:5:1300:5 | a [element 4] | -| array_flow.rb:1301:5:1301:5 | b [element 0] | array_flow.rb:1302:10:1302:10 | b [element 0] | -| array_flow.rb:1301:9:1301:9 | [post] a [element 2] | array_flow.rb:1307:10:1307:10 | a [element 2] | -| array_flow.rb:1301:9:1301:9 | a [element 2] | array_flow.rb:1301:9:1301:23 | call to slice! [element 0] | -| array_flow.rb:1301:9:1301:9 | a [element 4] | array_flow.rb:1301:9:1301:9 | [post] a [element 2] | -| array_flow.rb:1301:9:1301:23 | call to slice! [element 0] | array_flow.rb:1301:5:1301:5 | b [element 0] | -| array_flow.rb:1302:10:1302:10 | b [element 0] | array_flow.rb:1302:10:1302:13 | ...[...] | -| array_flow.rb:1307:10:1307:10 | a [element 2] | array_flow.rb:1307:10:1307:13 | ...[...] | -| array_flow.rb:1311:5:1311:5 | a [element 2] | array_flow.rb:1312:9:1312:9 | a [element 2] | -| array_flow.rb:1311:5:1311:5 | a [element 4] | array_flow.rb:1312:9:1312:9 | a [element 4] | -| array_flow.rb:1311:16:1311:28 | call to source | array_flow.rb:1311:5:1311:5 | a [element 2] | -| array_flow.rb:1311:34:1311:46 | call to source | array_flow.rb:1311:5:1311:5 | a [element 4] | -| array_flow.rb:1312:5:1312:5 | b [element] | array_flow.rb:1313:10:1313:10 | b [element] | -| array_flow.rb:1312:5:1312:5 | b [element] | array_flow.rb:1314:10:1314:10 | b [element] | -| array_flow.rb:1312:5:1312:5 | b [element] | array_flow.rb:1315:10:1315:10 | b [element] | -| array_flow.rb:1312:9:1312:9 | [post] a [element] | array_flow.rb:1316:10:1316:10 | a [element] | -| array_flow.rb:1312:9:1312:9 | [post] a [element] | array_flow.rb:1317:10:1317:10 | a [element] | -| array_flow.rb:1312:9:1312:9 | [post] a [element] | array_flow.rb:1318:10:1318:10 | a [element] | -| array_flow.rb:1312:9:1312:9 | a [element 2] | array_flow.rb:1312:9:1312:9 | [post] a [element] | -| array_flow.rb:1312:9:1312:9 | a [element 2] | array_flow.rb:1312:9:1312:22 | call to slice! [element] | -| array_flow.rb:1312:9:1312:9 | a [element 4] | array_flow.rb:1312:9:1312:9 | [post] a [element] | -| array_flow.rb:1312:9:1312:9 | a [element 4] | array_flow.rb:1312:9:1312:22 | call to slice! [element] | -| array_flow.rb:1312:9:1312:22 | call to slice! [element] | array_flow.rb:1312:5:1312:5 | b [element] | -| array_flow.rb:1313:10:1313:10 | b [element] | array_flow.rb:1313:10:1313:13 | ...[...] | +| array_flow.rb:1273:10:1273:10 | a [element] | array_flow.rb:1273:10:1273:13 | ...[...] | +| array_flow.rb:1277:10:1277:10 | b [element] | array_flow.rb:1277:10:1277:13 | ...[...] | +| array_flow.rb:1279:5:1279:5 | a [element 2] | array_flow.rb:1280:9:1280:9 | a [element 2] | +| array_flow.rb:1279:5:1279:5 | a [element 4] | array_flow.rb:1280:9:1280:9 | a [element 4] | +| array_flow.rb:1279:16:1279:28 | call to source | array_flow.rb:1279:5:1279:5 | a [element 2] | +| array_flow.rb:1279:34:1279:46 | call to source | array_flow.rb:1279:5:1279:5 | a [element 4] | +| array_flow.rb:1280:5:1280:5 | b [element 0] | array_flow.rb:1281:10:1281:10 | b [element 0] | +| array_flow.rb:1280:5:1280:5 | b [element 2] | array_flow.rb:1283:10:1283:10 | b [element 2] | +| array_flow.rb:1280:9:1280:9 | a [element 2] | array_flow.rb:1280:9:1280:22 | call to slice! [element 0] | +| array_flow.rb:1280:9:1280:9 | a [element 4] | array_flow.rb:1280:9:1280:22 | call to slice! [element 2] | +| array_flow.rb:1280:9:1280:22 | call to slice! [element 0] | array_flow.rb:1280:5:1280:5 | b [element 0] | +| array_flow.rb:1280:9:1280:22 | call to slice! [element 2] | array_flow.rb:1280:5:1280:5 | b [element 2] | +| array_flow.rb:1281:10:1281:10 | b [element 0] | array_flow.rb:1281:10:1281:13 | ...[...] | +| array_flow.rb:1283:10:1283:10 | b [element 2] | array_flow.rb:1283:10:1283:13 | ...[...] | +| array_flow.rb:1290:5:1290:5 | a [element 2] | array_flow.rb:1291:9:1291:9 | a [element 2] | +| array_flow.rb:1290:5:1290:5 | a [element 4] | array_flow.rb:1291:9:1291:9 | a [element 4] | +| array_flow.rb:1290:16:1290:28 | call to source | array_flow.rb:1290:5:1290:5 | a [element 2] | +| array_flow.rb:1290:34:1290:46 | call to source | array_flow.rb:1290:5:1290:5 | a [element 4] | +| array_flow.rb:1291:5:1291:5 | b [element 0] | array_flow.rb:1292:10:1292:10 | b [element 0] | +| array_flow.rb:1291:9:1291:9 | [post] a [element 2] | array_flow.rb:1297:10:1297:10 | a [element 2] | +| array_flow.rb:1291:9:1291:9 | a [element 2] | array_flow.rb:1291:9:1291:22 | call to slice! [element 0] | +| array_flow.rb:1291:9:1291:9 | a [element 4] | array_flow.rb:1291:9:1291:9 | [post] a [element 2] | +| array_flow.rb:1291:9:1291:22 | call to slice! [element 0] | array_flow.rb:1291:5:1291:5 | b [element 0] | +| array_flow.rb:1292:10:1292:10 | b [element 0] | array_flow.rb:1292:10:1292:13 | ...[...] | +| array_flow.rb:1297:10:1297:10 | a [element 2] | array_flow.rb:1297:10:1297:13 | ...[...] | +| array_flow.rb:1301:5:1301:5 | a [element 2] | array_flow.rb:1302:9:1302:9 | a [element 2] | +| array_flow.rb:1301:5:1301:5 | a [element 4] | array_flow.rb:1302:9:1302:9 | a [element 4] | +| array_flow.rb:1301:16:1301:28 | call to source | array_flow.rb:1301:5:1301:5 | a [element 2] | +| array_flow.rb:1301:34:1301:46 | call to source | array_flow.rb:1301:5:1301:5 | a [element 4] | +| array_flow.rb:1302:5:1302:5 | b [element 0] | array_flow.rb:1303:10:1303:10 | b [element 0] | +| array_flow.rb:1302:9:1302:9 | [post] a [element 2] | array_flow.rb:1308:10:1308:10 | a [element 2] | +| array_flow.rb:1302:9:1302:9 | a [element 2] | array_flow.rb:1302:9:1302:23 | call to slice! [element 0] | +| array_flow.rb:1302:9:1302:9 | a [element 4] | array_flow.rb:1302:9:1302:9 | [post] a [element 2] | +| array_flow.rb:1302:9:1302:23 | call to slice! [element 0] | array_flow.rb:1302:5:1302:5 | b [element 0] | +| array_flow.rb:1303:10:1303:10 | b [element 0] | array_flow.rb:1303:10:1303:13 | ...[...] | +| array_flow.rb:1308:10:1308:10 | a [element 2] | array_flow.rb:1308:10:1308:13 | ...[...] | +| array_flow.rb:1312:5:1312:5 | a [element 2] | array_flow.rb:1313:9:1313:9 | a [element 2] | +| array_flow.rb:1312:5:1312:5 | a [element 4] | array_flow.rb:1313:9:1313:9 | a [element 4] | +| array_flow.rb:1312:16:1312:28 | call to source | array_flow.rb:1312:5:1312:5 | a [element 2] | +| array_flow.rb:1312:34:1312:46 | call to source | array_flow.rb:1312:5:1312:5 | a [element 4] | +| array_flow.rb:1313:5:1313:5 | b [element] | array_flow.rb:1314:10:1314:10 | b [element] | +| array_flow.rb:1313:5:1313:5 | b [element] | array_flow.rb:1315:10:1315:10 | b [element] | +| array_flow.rb:1313:5:1313:5 | b [element] | array_flow.rb:1316:10:1316:10 | b [element] | +| array_flow.rb:1313:9:1313:9 | [post] a [element] | array_flow.rb:1317:10:1317:10 | a [element] | +| array_flow.rb:1313:9:1313:9 | [post] a [element] | array_flow.rb:1318:10:1318:10 | a [element] | +| array_flow.rb:1313:9:1313:9 | [post] a [element] | array_flow.rb:1319:10:1319:10 | a [element] | +| array_flow.rb:1313:9:1313:9 | a [element 2] | array_flow.rb:1313:9:1313:9 | [post] a [element] | +| array_flow.rb:1313:9:1313:9 | a [element 2] | array_flow.rb:1313:9:1313:22 | call to slice! [element] | +| array_flow.rb:1313:9:1313:9 | a [element 4] | array_flow.rb:1313:9:1313:9 | [post] a [element] | +| array_flow.rb:1313:9:1313:9 | a [element 4] | array_flow.rb:1313:9:1313:22 | call to slice! [element] | +| array_flow.rb:1313:9:1313:22 | call to slice! [element] | array_flow.rb:1313:5:1313:5 | b [element] | | array_flow.rb:1314:10:1314:10 | b [element] | array_flow.rb:1314:10:1314:13 | ...[...] | | array_flow.rb:1315:10:1315:10 | b [element] | array_flow.rb:1315:10:1315:13 | ...[...] | -| array_flow.rb:1316:10:1316:10 | a [element] | array_flow.rb:1316:10:1316:13 | ...[...] | +| array_flow.rb:1316:10:1316:10 | b [element] | array_flow.rb:1316:10:1316:13 | ...[...] | | array_flow.rb:1317:10:1317:10 | a [element] | array_flow.rb:1317:10:1317:13 | ...[...] | | array_flow.rb:1318:10:1318:10 | a [element] | array_flow.rb:1318:10:1318:13 | ...[...] | -| array_flow.rb:1320:5:1320:5 | a [element 2] | array_flow.rb:1321:9:1321:9 | a [element 2] | -| array_flow.rb:1320:5:1320:5 | a [element 4] | array_flow.rb:1321:9:1321:9 | a [element 4] | -| array_flow.rb:1320:16:1320:28 | call to source | array_flow.rb:1320:5:1320:5 | a [element 2] | -| array_flow.rb:1320:34:1320:46 | call to source | array_flow.rb:1320:5:1320:5 | a [element 4] | -| array_flow.rb:1321:5:1321:5 | b [element] | array_flow.rb:1322:10:1322:10 | b [element] | -| array_flow.rb:1321:5:1321:5 | b [element] | array_flow.rb:1323:10:1323:10 | b [element] | -| array_flow.rb:1321:5:1321:5 | b [element] | array_flow.rb:1324:10:1324:10 | b [element] | -| array_flow.rb:1321:9:1321:9 | [post] a [element] | array_flow.rb:1325:10:1325:10 | a [element] | -| array_flow.rb:1321:9:1321:9 | [post] a [element] | array_flow.rb:1326:10:1326:10 | a [element] | -| array_flow.rb:1321:9:1321:9 | [post] a [element] | array_flow.rb:1327:10:1327:10 | a [element] | -| array_flow.rb:1321:9:1321:9 | a [element 2] | array_flow.rb:1321:9:1321:9 | [post] a [element] | -| array_flow.rb:1321:9:1321:9 | a [element 2] | array_flow.rb:1321:9:1321:22 | call to slice! [element] | -| array_flow.rb:1321:9:1321:9 | a [element 4] | array_flow.rb:1321:9:1321:9 | [post] a [element] | -| array_flow.rb:1321:9:1321:9 | a [element 4] | array_flow.rb:1321:9:1321:22 | call to slice! [element] | -| array_flow.rb:1321:9:1321:22 | call to slice! [element] | array_flow.rb:1321:5:1321:5 | b [element] | -| array_flow.rb:1322:10:1322:10 | b [element] | array_flow.rb:1322:10:1322:13 | ...[...] | +| array_flow.rb:1319:10:1319:10 | a [element] | array_flow.rb:1319:10:1319:13 | ...[...] | +| array_flow.rb:1321:5:1321:5 | a [element 2] | array_flow.rb:1322:9:1322:9 | a [element 2] | +| array_flow.rb:1321:5:1321:5 | a [element 4] | array_flow.rb:1322:9:1322:9 | a [element 4] | +| array_flow.rb:1321:16:1321:28 | call to source | array_flow.rb:1321:5:1321:5 | a [element 2] | +| array_flow.rb:1321:34:1321:46 | call to source | array_flow.rb:1321:5:1321:5 | a [element 4] | +| array_flow.rb:1322:5:1322:5 | b [element] | array_flow.rb:1323:10:1323:10 | b [element] | +| array_flow.rb:1322:5:1322:5 | b [element] | array_flow.rb:1324:10:1324:10 | b [element] | +| array_flow.rb:1322:5:1322:5 | b [element] | array_flow.rb:1325:10:1325:10 | b [element] | +| array_flow.rb:1322:9:1322:9 | [post] a [element] | array_flow.rb:1326:10:1326:10 | a [element] | +| array_flow.rb:1322:9:1322:9 | [post] a [element] | array_flow.rb:1327:10:1327:10 | a [element] | +| array_flow.rb:1322:9:1322:9 | [post] a [element] | array_flow.rb:1328:10:1328:10 | a [element] | +| array_flow.rb:1322:9:1322:9 | a [element 2] | array_flow.rb:1322:9:1322:9 | [post] a [element] | +| array_flow.rb:1322:9:1322:9 | a [element 2] | array_flow.rb:1322:9:1322:22 | call to slice! [element] | +| array_flow.rb:1322:9:1322:9 | a [element 4] | array_flow.rb:1322:9:1322:9 | [post] a [element] | +| array_flow.rb:1322:9:1322:9 | a [element 4] | array_flow.rb:1322:9:1322:22 | call to slice! [element] | +| array_flow.rb:1322:9:1322:22 | call to slice! [element] | array_flow.rb:1322:5:1322:5 | b [element] | | array_flow.rb:1323:10:1323:10 | b [element] | array_flow.rb:1323:10:1323:13 | ...[...] | | array_flow.rb:1324:10:1324:10 | b [element] | array_flow.rb:1324:10:1324:13 | ...[...] | -| array_flow.rb:1325:10:1325:10 | a [element] | array_flow.rb:1325:10:1325:13 | ...[...] | +| array_flow.rb:1325:10:1325:10 | b [element] | array_flow.rb:1325:10:1325:13 | ...[...] | | array_flow.rb:1326:10:1326:10 | a [element] | array_flow.rb:1326:10:1326:13 | ...[...] | | array_flow.rb:1327:10:1327:10 | a [element] | array_flow.rb:1327:10:1327:13 | ...[...] | -| array_flow.rb:1329:5:1329:5 | a [element 2] | array_flow.rb:1330:9:1330:9 | a [element 2] | -| array_flow.rb:1329:5:1329:5 | a [element 4] | array_flow.rb:1330:9:1330:9 | a [element 4] | -| array_flow.rb:1329:16:1329:28 | call to source | array_flow.rb:1329:5:1329:5 | a [element 2] | -| array_flow.rb:1329:34:1329:46 | call to source | array_flow.rb:1329:5:1329:5 | a [element 4] | -| array_flow.rb:1330:5:1330:5 | b [element] | array_flow.rb:1331:10:1331:10 | b [element] | -| array_flow.rb:1330:5:1330:5 | b [element] | array_flow.rb:1332:10:1332:10 | b [element] | -| array_flow.rb:1330:5:1330:5 | b [element] | array_flow.rb:1333:10:1333:10 | b [element] | -| array_flow.rb:1330:9:1330:9 | [post] a [element] | array_flow.rb:1334:10:1334:10 | a [element] | -| array_flow.rb:1330:9:1330:9 | [post] a [element] | array_flow.rb:1335:10:1335:10 | a [element] | -| array_flow.rb:1330:9:1330:9 | [post] a [element] | array_flow.rb:1336:10:1336:10 | a [element] | -| array_flow.rb:1330:9:1330:9 | a [element 2] | array_flow.rb:1330:9:1330:9 | [post] a [element] | -| array_flow.rb:1330:9:1330:9 | a [element 2] | array_flow.rb:1330:9:1330:25 | call to slice! [element] | -| array_flow.rb:1330:9:1330:9 | a [element 4] | array_flow.rb:1330:9:1330:9 | [post] a [element] | -| array_flow.rb:1330:9:1330:9 | a [element 4] | array_flow.rb:1330:9:1330:25 | call to slice! [element] | -| array_flow.rb:1330:9:1330:25 | call to slice! [element] | array_flow.rb:1330:5:1330:5 | b [element] | -| array_flow.rb:1331:10:1331:10 | b [element] | array_flow.rb:1331:10:1331:13 | ...[...] | +| array_flow.rb:1328:10:1328:10 | a [element] | array_flow.rb:1328:10:1328:13 | ...[...] | +| array_flow.rb:1330:5:1330:5 | a [element 2] | array_flow.rb:1331:9:1331:9 | a [element 2] | +| array_flow.rb:1330:5:1330:5 | a [element 4] | array_flow.rb:1331:9:1331:9 | a [element 4] | +| array_flow.rb:1330:16:1330:28 | call to source | array_flow.rb:1330:5:1330:5 | a [element 2] | +| array_flow.rb:1330:34:1330:46 | call to source | array_flow.rb:1330:5:1330:5 | a [element 4] | +| array_flow.rb:1331:5:1331:5 | b [element] | array_flow.rb:1332:10:1332:10 | b [element] | +| array_flow.rb:1331:5:1331:5 | b [element] | array_flow.rb:1333:10:1333:10 | b [element] | +| array_flow.rb:1331:5:1331:5 | b [element] | array_flow.rb:1334:10:1334:10 | b [element] | +| array_flow.rb:1331:9:1331:9 | [post] a [element] | array_flow.rb:1335:10:1335:10 | a [element] | +| array_flow.rb:1331:9:1331:9 | [post] a [element] | array_flow.rb:1336:10:1336:10 | a [element] | +| array_flow.rb:1331:9:1331:9 | [post] a [element] | array_flow.rb:1337:10:1337:10 | a [element] | +| array_flow.rb:1331:9:1331:9 | a [element 2] | array_flow.rb:1331:9:1331:9 | [post] a [element] | +| array_flow.rb:1331:9:1331:9 | a [element 2] | array_flow.rb:1331:9:1331:25 | call to slice! [element] | +| array_flow.rb:1331:9:1331:9 | a [element 4] | array_flow.rb:1331:9:1331:9 | [post] a [element] | +| array_flow.rb:1331:9:1331:9 | a [element 4] | array_flow.rb:1331:9:1331:25 | call to slice! [element] | +| array_flow.rb:1331:9:1331:25 | call to slice! [element] | array_flow.rb:1331:5:1331:5 | b [element] | | array_flow.rb:1332:10:1332:10 | b [element] | array_flow.rb:1332:10:1332:13 | ...[...] | | array_flow.rb:1333:10:1333:10 | b [element] | array_flow.rb:1333:10:1333:13 | ...[...] | -| array_flow.rb:1334:10:1334:10 | a [element] | array_flow.rb:1334:10:1334:13 | ...[...] | +| array_flow.rb:1334:10:1334:10 | b [element] | array_flow.rb:1334:10:1334:13 | ...[...] | | array_flow.rb:1335:10:1335:10 | a [element] | array_flow.rb:1335:10:1335:13 | ...[...] | | array_flow.rb:1336:10:1336:10 | a [element] | array_flow.rb:1336:10:1336:13 | ...[...] | -| array_flow.rb:1338:5:1338:5 | a [element 2] | array_flow.rb:1339:9:1339:9 | a [element 2] | -| array_flow.rb:1338:5:1338:5 | a [element 4] | array_flow.rb:1339:9:1339:9 | a [element 4] | -| array_flow.rb:1338:16:1338:28 | call to source | array_flow.rb:1338:5:1338:5 | a [element 2] | -| array_flow.rb:1338:34:1338:46 | call to source | array_flow.rb:1338:5:1338:5 | a [element 4] | -| array_flow.rb:1339:5:1339:5 | b [element 2] | array_flow.rb:1342:10:1342:10 | b [element 2] | -| array_flow.rb:1339:9:1339:9 | [post] a [element 1] | array_flow.rb:1344:10:1344:10 | a [element 1] | -| array_flow.rb:1339:9:1339:9 | a [element 2] | array_flow.rb:1339:9:1339:21 | call to slice! [element 2] | -| array_flow.rb:1339:9:1339:9 | a [element 4] | array_flow.rb:1339:9:1339:9 | [post] a [element 1] | -| array_flow.rb:1339:9:1339:21 | call to slice! [element 2] | array_flow.rb:1339:5:1339:5 | b [element 2] | -| array_flow.rb:1342:10:1342:10 | b [element 2] | array_flow.rb:1342:10:1342:13 | ...[...] | -| array_flow.rb:1344:10:1344:10 | a [element 1] | array_flow.rb:1344:10:1344:13 | ...[...] | -| array_flow.rb:1347:5:1347:5 | a [element 2] | array_flow.rb:1348:9:1348:9 | a [element 2] | -| array_flow.rb:1347:5:1347:5 | a [element 4] | array_flow.rb:1348:9:1348:9 | a [element 4] | -| array_flow.rb:1347:16:1347:28 | call to source | array_flow.rb:1347:5:1347:5 | a [element 2] | -| array_flow.rb:1347:34:1347:46 | call to source | array_flow.rb:1347:5:1347:5 | a [element 4] | -| array_flow.rb:1348:5:1348:5 | b [element] | array_flow.rb:1349:10:1349:10 | b [element] | -| array_flow.rb:1348:5:1348:5 | b [element] | array_flow.rb:1350:10:1350:10 | b [element] | -| array_flow.rb:1348:5:1348:5 | b [element] | array_flow.rb:1351:10:1351:10 | b [element] | -| array_flow.rb:1348:9:1348:9 | [post] a [element] | array_flow.rb:1352:10:1352:10 | a [element] | -| array_flow.rb:1348:9:1348:9 | [post] a [element] | array_flow.rb:1353:10:1353:10 | a [element] | -| array_flow.rb:1348:9:1348:9 | [post] a [element] | array_flow.rb:1354:10:1354:10 | a [element] | -| array_flow.rb:1348:9:1348:9 | a [element 2] | array_flow.rb:1348:9:1348:9 | [post] a [element] | -| array_flow.rb:1348:9:1348:9 | a [element 2] | array_flow.rb:1348:9:1348:21 | call to slice! [element] | -| array_flow.rb:1348:9:1348:9 | a [element 4] | array_flow.rb:1348:9:1348:9 | [post] a [element] | -| array_flow.rb:1348:9:1348:9 | a [element 4] | array_flow.rb:1348:9:1348:21 | call to slice! [element] | -| array_flow.rb:1348:9:1348:21 | call to slice! [element] | array_flow.rb:1348:5:1348:5 | b [element] | -| array_flow.rb:1349:10:1349:10 | b [element] | array_flow.rb:1349:10:1349:13 | ...[...] | +| array_flow.rb:1337:10:1337:10 | a [element] | array_flow.rb:1337:10:1337:13 | ...[...] | +| array_flow.rb:1339:5:1339:5 | a [element 2] | array_flow.rb:1340:9:1340:9 | a [element 2] | +| array_flow.rb:1339:5:1339:5 | a [element 4] | array_flow.rb:1340:9:1340:9 | a [element 4] | +| array_flow.rb:1339:16:1339:28 | call to source | array_flow.rb:1339:5:1339:5 | a [element 2] | +| array_flow.rb:1339:34:1339:46 | call to source | array_flow.rb:1339:5:1339:5 | a [element 4] | +| array_flow.rb:1340:5:1340:5 | b [element 2] | array_flow.rb:1343:10:1343:10 | b [element 2] | +| array_flow.rb:1340:9:1340:9 | [post] a [element 1] | array_flow.rb:1345:10:1345:10 | a [element 1] | +| array_flow.rb:1340:9:1340:9 | a [element 2] | array_flow.rb:1340:9:1340:21 | call to slice! [element 2] | +| array_flow.rb:1340:9:1340:9 | a [element 4] | array_flow.rb:1340:9:1340:9 | [post] a [element 1] | +| array_flow.rb:1340:9:1340:21 | call to slice! [element 2] | array_flow.rb:1340:5:1340:5 | b [element 2] | +| array_flow.rb:1343:10:1343:10 | b [element 2] | array_flow.rb:1343:10:1343:13 | ...[...] | +| array_flow.rb:1345:10:1345:10 | a [element 1] | array_flow.rb:1345:10:1345:13 | ...[...] | +| array_flow.rb:1348:5:1348:5 | a [element 2] | array_flow.rb:1349:9:1349:9 | a [element 2] | +| array_flow.rb:1348:5:1348:5 | a [element 4] | array_flow.rb:1349:9:1349:9 | a [element 4] | +| array_flow.rb:1348:16:1348:28 | call to source | array_flow.rb:1348:5:1348:5 | a [element 2] | +| array_flow.rb:1348:34:1348:46 | call to source | array_flow.rb:1348:5:1348:5 | a [element 4] | +| array_flow.rb:1349:5:1349:5 | b [element] | array_flow.rb:1350:10:1350:10 | b [element] | +| array_flow.rb:1349:5:1349:5 | b [element] | array_flow.rb:1351:10:1351:10 | b [element] | +| array_flow.rb:1349:5:1349:5 | b [element] | array_flow.rb:1352:10:1352:10 | b [element] | +| array_flow.rb:1349:9:1349:9 | [post] a [element] | array_flow.rb:1353:10:1353:10 | a [element] | +| array_flow.rb:1349:9:1349:9 | [post] a [element] | array_flow.rb:1354:10:1354:10 | a [element] | +| array_flow.rb:1349:9:1349:9 | [post] a [element] | array_flow.rb:1355:10:1355:10 | a [element] | +| array_flow.rb:1349:9:1349:9 | a [element 2] | array_flow.rb:1349:9:1349:9 | [post] a [element] | +| array_flow.rb:1349:9:1349:9 | a [element 2] | array_flow.rb:1349:9:1349:21 | call to slice! [element] | +| array_flow.rb:1349:9:1349:9 | a [element 4] | array_flow.rb:1349:9:1349:9 | [post] a [element] | +| array_flow.rb:1349:9:1349:9 | a [element 4] | array_flow.rb:1349:9:1349:21 | call to slice! [element] | +| array_flow.rb:1349:9:1349:21 | call to slice! [element] | array_flow.rb:1349:5:1349:5 | b [element] | | array_flow.rb:1350:10:1350:10 | b [element] | array_flow.rb:1350:10:1350:13 | ...[...] | | array_flow.rb:1351:10:1351:10 | b [element] | array_flow.rb:1351:10:1351:13 | ...[...] | -| array_flow.rb:1352:10:1352:10 | a [element] | array_flow.rb:1352:10:1352:13 | ...[...] | +| array_flow.rb:1352:10:1352:10 | b [element] | array_flow.rb:1352:10:1352:13 | ...[...] | | array_flow.rb:1353:10:1353:10 | a [element] | array_flow.rb:1353:10:1353:13 | ...[...] | | array_flow.rb:1354:10:1354:10 | a [element] | array_flow.rb:1354:10:1354:13 | ...[...] | -| array_flow.rb:1358:5:1358:5 | a [element 2] | array_flow.rb:1359:9:1359:9 | a [element 2] | -| array_flow.rb:1358:16:1358:26 | call to source | array_flow.rb:1358:5:1358:5 | a [element 2] | -| array_flow.rb:1359:9:1359:9 | a [element 2] | array_flow.rb:1359:27:1359:27 | x | -| array_flow.rb:1359:27:1359:27 | x | array_flow.rb:1360:14:1360:14 | x | -| array_flow.rb:1366:5:1366:5 | a [element 2] | array_flow.rb:1367:9:1367:9 | a [element 2] | -| array_flow.rb:1366:16:1366:26 | call to source | array_flow.rb:1366:5:1366:5 | a [element 2] | -| array_flow.rb:1367:9:1367:9 | a [element 2] | array_flow.rb:1367:28:1367:28 | x | -| array_flow.rb:1367:28:1367:28 | x | array_flow.rb:1368:14:1368:14 | x | -| array_flow.rb:1374:5:1374:5 | a [element 2] | array_flow.rb:1375:9:1375:9 | a [element 2] | -| array_flow.rb:1374:16:1374:26 | call to source | array_flow.rb:1374:5:1374:5 | a [element 2] | -| array_flow.rb:1375:9:1375:9 | a [element 2] | array_flow.rb:1375:26:1375:26 | x | -| array_flow.rb:1375:9:1375:9 | a [element 2] | array_flow.rb:1375:29:1375:29 | y | -| array_flow.rb:1375:26:1375:26 | x | array_flow.rb:1376:14:1376:14 | x | -| array_flow.rb:1375:29:1375:29 | y | array_flow.rb:1377:14:1377:14 | y | -| array_flow.rb:1382:5:1382:5 | a [element 2] | array_flow.rb:1383:9:1383:9 | a [element 2] | -| array_flow.rb:1382:5:1382:5 | a [element 2] | array_flow.rb:1386:9:1386:9 | a [element 2] | -| array_flow.rb:1382:16:1382:26 | call to source | array_flow.rb:1382:5:1382:5 | a [element 2] | -| array_flow.rb:1383:5:1383:5 | b [element] | array_flow.rb:1384:10:1384:10 | b [element] | -| array_flow.rb:1383:5:1383:5 | b [element] | array_flow.rb:1385:10:1385:10 | b [element] | -| array_flow.rb:1383:9:1383:9 | a [element 2] | array_flow.rb:1383:9:1383:14 | call to sort [element] | -| array_flow.rb:1383:9:1383:14 | call to sort [element] | array_flow.rb:1383:5:1383:5 | b [element] | -| array_flow.rb:1384:10:1384:10 | b [element] | array_flow.rb:1384:10:1384:13 | ...[...] | +| array_flow.rb:1355:10:1355:10 | a [element] | array_flow.rb:1355:10:1355:13 | ...[...] | +| array_flow.rb:1359:5:1359:5 | a [element 2] | array_flow.rb:1360:9:1360:9 | a [element 2] | +| array_flow.rb:1359:16:1359:26 | call to source | array_flow.rb:1359:5:1359:5 | a [element 2] | +| array_flow.rb:1360:9:1360:9 | a [element 2] | array_flow.rb:1360:27:1360:27 | x | +| array_flow.rb:1360:27:1360:27 | x | array_flow.rb:1361:14:1361:14 | x | +| array_flow.rb:1367:5:1367:5 | a [element 2] | array_flow.rb:1368:9:1368:9 | a [element 2] | +| array_flow.rb:1367:16:1367:26 | call to source | array_flow.rb:1367:5:1367:5 | a [element 2] | +| array_flow.rb:1368:9:1368:9 | a [element 2] | array_flow.rb:1368:28:1368:28 | x | +| array_flow.rb:1368:28:1368:28 | x | array_flow.rb:1369:14:1369:14 | x | +| array_flow.rb:1375:5:1375:5 | a [element 2] | array_flow.rb:1376:9:1376:9 | a [element 2] | +| array_flow.rb:1375:16:1375:26 | call to source | array_flow.rb:1375:5:1375:5 | a [element 2] | +| array_flow.rb:1376:9:1376:9 | a [element 2] | array_flow.rb:1376:26:1376:26 | x | +| array_flow.rb:1376:9:1376:9 | a [element 2] | array_flow.rb:1376:29:1376:29 | y | +| array_flow.rb:1376:26:1376:26 | x | array_flow.rb:1377:14:1377:14 | x | +| array_flow.rb:1376:29:1376:29 | y | array_flow.rb:1378:14:1378:14 | y | +| array_flow.rb:1383:5:1383:5 | a [element 2] | array_flow.rb:1384:9:1384:9 | a [element 2] | +| array_flow.rb:1383:5:1383:5 | a [element 2] | array_flow.rb:1387:9:1387:9 | a [element 2] | +| array_flow.rb:1383:16:1383:26 | call to source | array_flow.rb:1383:5:1383:5 | a [element 2] | +| array_flow.rb:1384:5:1384:5 | b [element] | array_flow.rb:1385:10:1385:10 | b [element] | +| array_flow.rb:1384:5:1384:5 | b [element] | array_flow.rb:1386:10:1386:10 | b [element] | +| array_flow.rb:1384:9:1384:9 | a [element 2] | array_flow.rb:1384:9:1384:14 | call to sort [element] | +| array_flow.rb:1384:9:1384:14 | call to sort [element] | array_flow.rb:1384:5:1384:5 | b [element] | | array_flow.rb:1385:10:1385:10 | b [element] | array_flow.rb:1385:10:1385:13 | ...[...] | -| array_flow.rb:1386:5:1386:5 | c [element] | array_flow.rb:1391:10:1391:10 | c [element] | -| array_flow.rb:1386:5:1386:5 | c [element] | array_flow.rb:1392:10:1392:10 | c [element] | -| array_flow.rb:1386:9:1386:9 | a [element 2] | array_flow.rb:1386:9:1390:7 | call to sort [element] | -| array_flow.rb:1386:9:1386:9 | a [element 2] | array_flow.rb:1386:20:1386:20 | x | -| array_flow.rb:1386:9:1386:9 | a [element 2] | array_flow.rb:1386:23:1386:23 | y | -| array_flow.rb:1386:9:1390:7 | call to sort [element] | array_flow.rb:1386:5:1386:5 | c [element] | -| array_flow.rb:1386:20:1386:20 | x | array_flow.rb:1387:14:1387:14 | x | -| array_flow.rb:1386:23:1386:23 | y | array_flow.rb:1388:14:1388:14 | y | -| array_flow.rb:1391:10:1391:10 | c [element] | array_flow.rb:1391:10:1391:13 | ...[...] | +| array_flow.rb:1386:10:1386:10 | b [element] | array_flow.rb:1386:10:1386:13 | ...[...] | +| array_flow.rb:1387:5:1387:5 | c [element] | array_flow.rb:1392:10:1392:10 | c [element] | +| array_flow.rb:1387:5:1387:5 | c [element] | array_flow.rb:1393:10:1393:10 | c [element] | +| array_flow.rb:1387:9:1387:9 | a [element 2] | array_flow.rb:1387:9:1391:7 | call to sort [element] | +| array_flow.rb:1387:9:1387:9 | a [element 2] | array_flow.rb:1387:20:1387:20 | x | +| array_flow.rb:1387:9:1387:9 | a [element 2] | array_flow.rb:1387:23:1387:23 | y | +| array_flow.rb:1387:9:1391:7 | call to sort [element] | array_flow.rb:1387:5:1387:5 | c [element] | +| array_flow.rb:1387:20:1387:20 | x | array_flow.rb:1388:14:1388:14 | x | +| array_flow.rb:1387:23:1387:23 | y | array_flow.rb:1389:14:1389:14 | y | | array_flow.rb:1392:10:1392:10 | c [element] | array_flow.rb:1392:10:1392:13 | ...[...] | -| array_flow.rb:1396:5:1396:5 | a [element 2] | array_flow.rb:1397:9:1397:9 | a [element 2] | -| array_flow.rb:1396:16:1396:26 | call to source | array_flow.rb:1396:5:1396:5 | a [element 2] | -| array_flow.rb:1397:5:1397:5 | b [element] | array_flow.rb:1398:10:1398:10 | b [element] | -| array_flow.rb:1397:5:1397:5 | b [element] | array_flow.rb:1399:10:1399:10 | b [element] | -| array_flow.rb:1397:9:1397:9 | [post] a [element] | array_flow.rb:1400:10:1400:10 | a [element] | -| array_flow.rb:1397:9:1397:9 | [post] a [element] | array_flow.rb:1401:10:1401:10 | a [element] | -| array_flow.rb:1397:9:1397:9 | a [element 2] | array_flow.rb:1397:9:1397:9 | [post] a [element] | -| array_flow.rb:1397:9:1397:9 | a [element 2] | array_flow.rb:1397:9:1397:15 | call to sort! [element] | -| array_flow.rb:1397:9:1397:15 | call to sort! [element] | array_flow.rb:1397:5:1397:5 | b [element] | -| array_flow.rb:1398:10:1398:10 | b [element] | array_flow.rb:1398:10:1398:13 | ...[...] | +| array_flow.rb:1393:10:1393:10 | c [element] | array_flow.rb:1393:10:1393:13 | ...[...] | +| array_flow.rb:1397:5:1397:5 | a [element 2] | array_flow.rb:1398:9:1398:9 | a [element 2] | +| array_flow.rb:1397:16:1397:26 | call to source | array_flow.rb:1397:5:1397:5 | a [element 2] | +| array_flow.rb:1398:5:1398:5 | b [element] | array_flow.rb:1399:10:1399:10 | b [element] | +| array_flow.rb:1398:5:1398:5 | b [element] | array_flow.rb:1400:10:1400:10 | b [element] | +| array_flow.rb:1398:9:1398:9 | [post] a [element] | array_flow.rb:1401:10:1401:10 | a [element] | +| array_flow.rb:1398:9:1398:9 | [post] a [element] | array_flow.rb:1402:10:1402:10 | a [element] | +| array_flow.rb:1398:9:1398:9 | a [element 2] | array_flow.rb:1398:9:1398:9 | [post] a [element] | +| array_flow.rb:1398:9:1398:9 | a [element 2] | array_flow.rb:1398:9:1398:15 | call to sort! [element] | +| array_flow.rb:1398:9:1398:15 | call to sort! [element] | array_flow.rb:1398:5:1398:5 | b [element] | | array_flow.rb:1399:10:1399:10 | b [element] | array_flow.rb:1399:10:1399:13 | ...[...] | -| array_flow.rb:1400:10:1400:10 | a [element] | array_flow.rb:1400:10:1400:13 | ...[...] | +| array_flow.rb:1400:10:1400:10 | b [element] | array_flow.rb:1400:10:1400:13 | ...[...] | | array_flow.rb:1401:10:1401:10 | a [element] | array_flow.rb:1401:10:1401:13 | ...[...] | -| array_flow.rb:1403:5:1403:5 | a [element 2] | array_flow.rb:1404:9:1404:9 | a [element 2] | -| array_flow.rb:1403:16:1403:26 | call to source | array_flow.rb:1403:5:1403:5 | a [element 2] | -| array_flow.rb:1404:5:1404:5 | b [element] | array_flow.rb:1409:10:1409:10 | b [element] | -| array_flow.rb:1404:5:1404:5 | b [element] | array_flow.rb:1410:10:1410:10 | b [element] | -| array_flow.rb:1404:9:1404:9 | [post] a [element] | array_flow.rb:1411:10:1411:10 | a [element] | -| array_flow.rb:1404:9:1404:9 | [post] a [element] | array_flow.rb:1412:10:1412:10 | a [element] | -| array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:9:1404:9 | [post] a [element] | -| array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:9:1408:7 | call to sort! [element] | -| array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:21:1404:21 | x | -| array_flow.rb:1404:9:1404:9 | a [element 2] | array_flow.rb:1404:24:1404:24 | y | -| array_flow.rb:1404:9:1408:7 | call to sort! [element] | array_flow.rb:1404:5:1404:5 | b [element] | -| array_flow.rb:1404:21:1404:21 | x | array_flow.rb:1405:14:1405:14 | x | -| array_flow.rb:1404:24:1404:24 | y | array_flow.rb:1406:14:1406:14 | y | -| array_flow.rb:1409:10:1409:10 | b [element] | array_flow.rb:1409:10:1409:13 | ...[...] | +| array_flow.rb:1402:10:1402:10 | a [element] | array_flow.rb:1402:10:1402:13 | ...[...] | +| array_flow.rb:1404:5:1404:5 | a [element 2] | array_flow.rb:1405:9:1405:9 | a [element 2] | +| array_flow.rb:1404:16:1404:26 | call to source | array_flow.rb:1404:5:1404:5 | a [element 2] | +| array_flow.rb:1405:5:1405:5 | b [element] | array_flow.rb:1410:10:1410:10 | b [element] | +| array_flow.rb:1405:5:1405:5 | b [element] | array_flow.rb:1411:10:1411:10 | b [element] | +| array_flow.rb:1405:9:1405:9 | [post] a [element] | array_flow.rb:1412:10:1412:10 | a [element] | +| array_flow.rb:1405:9:1405:9 | [post] a [element] | array_flow.rb:1413:10:1413:10 | a [element] | +| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:9:1405:9 | [post] a [element] | +| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:9:1409:7 | call to sort! [element] | +| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:21:1405:21 | x | +| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:24:1405:24 | y | +| array_flow.rb:1405:9:1409:7 | call to sort! [element] | array_flow.rb:1405:5:1405:5 | b [element] | +| array_flow.rb:1405:21:1405:21 | x | array_flow.rb:1406:14:1406:14 | x | +| array_flow.rb:1405:24:1405:24 | y | array_flow.rb:1407:14:1407:14 | y | | array_flow.rb:1410:10:1410:10 | b [element] | array_flow.rb:1410:10:1410:13 | ...[...] | -| array_flow.rb:1411:10:1411:10 | a [element] | array_flow.rb:1411:10:1411:13 | ...[...] | +| array_flow.rb:1411:10:1411:10 | b [element] | array_flow.rb:1411:10:1411:13 | ...[...] | | array_flow.rb:1412:10:1412:10 | a [element] | array_flow.rb:1412:10:1412:13 | ...[...] | -| array_flow.rb:1416:5:1416:5 | a [element 2] | array_flow.rb:1417:9:1417:9 | a [element 2] | -| array_flow.rb:1416:16:1416:26 | call to source | array_flow.rb:1416:5:1416:5 | a [element 2] | -| array_flow.rb:1417:5:1417:5 | b [element] | array_flow.rb:1421:10:1421:10 | b [element] | -| array_flow.rb:1417:5:1417:5 | b [element] | array_flow.rb:1422:10:1422:10 | b [element] | -| array_flow.rb:1417:9:1417:9 | a [element 2] | array_flow.rb:1417:9:1420:7 | call to sort_by [element] | -| array_flow.rb:1417:9:1417:9 | a [element 2] | array_flow.rb:1417:23:1417:23 | x | -| array_flow.rb:1417:9:1420:7 | call to sort_by [element] | array_flow.rb:1417:5:1417:5 | b [element] | -| array_flow.rb:1417:23:1417:23 | x | array_flow.rb:1418:14:1418:14 | x | -| array_flow.rb:1421:10:1421:10 | b [element] | array_flow.rb:1421:10:1421:13 | ...[...] | +| array_flow.rb:1413:10:1413:10 | a [element] | array_flow.rb:1413:10:1413:13 | ...[...] | +| array_flow.rb:1417:5:1417:5 | a [element 2] | array_flow.rb:1418:9:1418:9 | a [element 2] | +| array_flow.rb:1417:16:1417:26 | call to source | array_flow.rb:1417:5:1417:5 | a [element 2] | +| array_flow.rb:1418:5:1418:5 | b [element] | array_flow.rb:1422:10:1422:10 | b [element] | +| array_flow.rb:1418:5:1418:5 | b [element] | array_flow.rb:1423:10:1423:10 | b [element] | +| array_flow.rb:1418:9:1418:9 | a [element 2] | array_flow.rb:1418:9:1421:7 | call to sort_by [element] | +| array_flow.rb:1418:9:1418:9 | a [element 2] | array_flow.rb:1418:23:1418:23 | x | +| array_flow.rb:1418:9:1421:7 | call to sort_by [element] | array_flow.rb:1418:5:1418:5 | b [element] | +| array_flow.rb:1418:23:1418:23 | x | array_flow.rb:1419:14:1419:14 | x | | array_flow.rb:1422:10:1422:10 | b [element] | array_flow.rb:1422:10:1422:13 | ...[...] | -| array_flow.rb:1426:5:1426:5 | a [element 2] | array_flow.rb:1427:9:1427:9 | a [element 2] | -| array_flow.rb:1426:16:1426:26 | call to source | array_flow.rb:1426:5:1426:5 | a [element 2] | -| array_flow.rb:1427:5:1427:5 | b [element] | array_flow.rb:1433:10:1433:10 | b [element] | -| array_flow.rb:1427:5:1427:5 | b [element] | array_flow.rb:1434:10:1434:10 | b [element] | -| array_flow.rb:1427:9:1427:9 | [post] a [element] | array_flow.rb:1431:10:1431:10 | a [element] | -| array_flow.rb:1427:9:1427:9 | [post] a [element] | array_flow.rb:1432:10:1432:10 | a [element] | -| array_flow.rb:1427:9:1427:9 | a [element 2] | array_flow.rb:1427:9:1427:9 | [post] a [element] | -| array_flow.rb:1427:9:1427:9 | a [element 2] | array_flow.rb:1427:9:1430:7 | call to sort_by! [element] | -| array_flow.rb:1427:9:1427:9 | a [element 2] | array_flow.rb:1427:24:1427:24 | x | -| array_flow.rb:1427:9:1430:7 | call to sort_by! [element] | array_flow.rb:1427:5:1427:5 | b [element] | -| array_flow.rb:1427:24:1427:24 | x | array_flow.rb:1428:14:1428:14 | x | -| array_flow.rb:1431:10:1431:10 | a [element] | array_flow.rb:1431:10:1431:13 | ...[...] | +| array_flow.rb:1423:10:1423:10 | b [element] | array_flow.rb:1423:10:1423:13 | ...[...] | +| array_flow.rb:1427:5:1427:5 | a [element 2] | array_flow.rb:1428:9:1428:9 | a [element 2] | +| array_flow.rb:1427:16:1427:26 | call to source | array_flow.rb:1427:5:1427:5 | a [element 2] | +| array_flow.rb:1428:5:1428:5 | b [element] | array_flow.rb:1434:10:1434:10 | b [element] | +| array_flow.rb:1428:5:1428:5 | b [element] | array_flow.rb:1435:10:1435:10 | b [element] | +| array_flow.rb:1428:9:1428:9 | [post] a [element] | array_flow.rb:1432:10:1432:10 | a [element] | +| array_flow.rb:1428:9:1428:9 | [post] a [element] | array_flow.rb:1433:10:1433:10 | a [element] | +| array_flow.rb:1428:9:1428:9 | a [element 2] | array_flow.rb:1428:9:1428:9 | [post] a [element] | +| array_flow.rb:1428:9:1428:9 | a [element 2] | array_flow.rb:1428:9:1431:7 | call to sort_by! [element] | +| array_flow.rb:1428:9:1428:9 | a [element 2] | array_flow.rb:1428:24:1428:24 | x | +| array_flow.rb:1428:9:1431:7 | call to sort_by! [element] | array_flow.rb:1428:5:1428:5 | b [element] | +| array_flow.rb:1428:24:1428:24 | x | array_flow.rb:1429:14:1429:14 | x | | array_flow.rb:1432:10:1432:10 | a [element] | array_flow.rb:1432:10:1432:13 | ...[...] | -| array_flow.rb:1433:10:1433:10 | b [element] | array_flow.rb:1433:10:1433:13 | ...[...] | +| array_flow.rb:1433:10:1433:10 | a [element] | array_flow.rb:1433:10:1433:13 | ...[...] | | array_flow.rb:1434:10:1434:10 | b [element] | array_flow.rb:1434:10:1434:13 | ...[...] | -| array_flow.rb:1438:5:1438:5 | a [element 2] | array_flow.rb:1439:9:1439:9 | a [element 2] | -| array_flow.rb:1438:16:1438:26 | call to source | array_flow.rb:1438:5:1438:5 | a [element 2] | -| array_flow.rb:1439:9:1439:9 | a [element 2] | array_flow.rb:1439:19:1439:19 | x | -| array_flow.rb:1439:19:1439:19 | x | array_flow.rb:1440:14:1440:14 | x | -| array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1447:9:1447:9 | a [element 2] | -| array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1452:9:1452:9 | a [element 2] | -| array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1458:9:1458:9 | a [element 2] | -| array_flow.rb:1446:5:1446:5 | a [element 2] | array_flow.rb:1465:9:1465:9 | a [element 2] | -| array_flow.rb:1446:5:1446:5 | a [element 3] | array_flow.rb:1447:9:1447:9 | a [element 3] | -| array_flow.rb:1446:5:1446:5 | a [element 3] | array_flow.rb:1458:9:1458:9 | a [element 3] | -| array_flow.rb:1446:16:1446:28 | call to source | array_flow.rb:1446:5:1446:5 | a [element 2] | -| array_flow.rb:1446:31:1446:43 | call to source | array_flow.rb:1446:5:1446:5 | a [element 3] | -| array_flow.rb:1447:5:1447:5 | b [element 2] | array_flow.rb:1450:10:1450:10 | b [element 2] | -| array_flow.rb:1447:5:1447:5 | b [element 3] | array_flow.rb:1451:10:1451:10 | b [element 3] | -| array_flow.rb:1447:9:1447:9 | a [element 2] | array_flow.rb:1447:9:1447:17 | call to take [element 2] | -| array_flow.rb:1447:9:1447:9 | a [element 3] | array_flow.rb:1447:9:1447:17 | call to take [element 3] | -| array_flow.rb:1447:9:1447:17 | call to take [element 2] | array_flow.rb:1447:5:1447:5 | b [element 2] | -| array_flow.rb:1447:9:1447:17 | call to take [element 3] | array_flow.rb:1447:5:1447:5 | b [element 3] | -| array_flow.rb:1450:10:1450:10 | b [element 2] | array_flow.rb:1450:10:1450:13 | ...[...] | -| array_flow.rb:1451:10:1451:10 | b [element 3] | array_flow.rb:1451:10:1451:13 | ...[...] | -| array_flow.rb:1452:5:1452:5 | b [element 2] | array_flow.rb:1455:10:1455:10 | b [element 2] | -| array_flow.rb:1452:5:1452:5 | b [element 2] | array_flow.rb:1457:10:1457:10 | b [element 2] | -| array_flow.rb:1452:9:1452:9 | a [element 2] | array_flow.rb:1452:9:1452:17 | call to take [element 2] | -| array_flow.rb:1452:9:1452:17 | call to take [element 2] | array_flow.rb:1452:5:1452:5 | b [element 2] | -| array_flow.rb:1455:10:1455:10 | b [element 2] | array_flow.rb:1455:10:1455:13 | ...[...] | -| array_flow.rb:1457:10:1457:10 | b [element 2] | array_flow.rb:1457:10:1457:13 | ...[...] | -| array_flow.rb:1458:5:1458:5 | b [element 2] | array_flow.rb:1461:10:1461:10 | b [element 2] | -| array_flow.rb:1458:5:1458:5 | b [element 2] | array_flow.rb:1463:10:1463:10 | b [element 2] | -| array_flow.rb:1458:5:1458:5 | b [element 3] | array_flow.rb:1462:10:1462:10 | b [element 3] | -| array_flow.rb:1458:5:1458:5 | b [element 3] | array_flow.rb:1463:10:1463:10 | b [element 3] | -| array_flow.rb:1458:9:1458:9 | a [element 2] | array_flow.rb:1458:9:1458:19 | call to take [element 2] | -| array_flow.rb:1458:9:1458:9 | a [element 3] | array_flow.rb:1458:9:1458:19 | call to take [element 3] | -| array_flow.rb:1458:9:1458:19 | call to take [element 2] | array_flow.rb:1458:5:1458:5 | b [element 2] | -| array_flow.rb:1458:9:1458:19 | call to take [element 3] | array_flow.rb:1458:5:1458:5 | b [element 3] | -| array_flow.rb:1461:10:1461:10 | b [element 2] | array_flow.rb:1461:10:1461:13 | ...[...] | -| array_flow.rb:1462:10:1462:10 | b [element 3] | array_flow.rb:1462:10:1462:13 | ...[...] | -| array_flow.rb:1463:10:1463:10 | b [element 2] | array_flow.rb:1463:10:1463:13 | ...[...] | +| array_flow.rb:1435:10:1435:10 | b [element] | array_flow.rb:1435:10:1435:13 | ...[...] | +| array_flow.rb:1439:5:1439:5 | a [element 2] | array_flow.rb:1440:9:1440:9 | a [element 2] | +| array_flow.rb:1439:16:1439:26 | call to source | array_flow.rb:1439:5:1439:5 | a [element 2] | +| array_flow.rb:1440:9:1440:9 | a [element 2] | array_flow.rb:1440:19:1440:19 | x | +| array_flow.rb:1440:19:1440:19 | x | array_flow.rb:1441:14:1441:14 | x | +| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1448:9:1448:9 | a [element 2] | +| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1453:9:1453:9 | a [element 2] | +| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1459:9:1459:9 | a [element 2] | +| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1466:9:1466:9 | a [element 2] | +| array_flow.rb:1447:5:1447:5 | a [element 3] | array_flow.rb:1448:9:1448:9 | a [element 3] | +| array_flow.rb:1447:5:1447:5 | a [element 3] | array_flow.rb:1459:9:1459:9 | a [element 3] | +| array_flow.rb:1447:16:1447:28 | call to source | array_flow.rb:1447:5:1447:5 | a [element 2] | +| array_flow.rb:1447:31:1447:43 | call to source | array_flow.rb:1447:5:1447:5 | a [element 3] | +| array_flow.rb:1448:5:1448:5 | b [element 2] | array_flow.rb:1451:10:1451:10 | b [element 2] | +| array_flow.rb:1448:5:1448:5 | b [element 3] | array_flow.rb:1452:10:1452:10 | b [element 3] | +| array_flow.rb:1448:9:1448:9 | a [element 2] | array_flow.rb:1448:9:1448:17 | call to take [element 2] | +| array_flow.rb:1448:9:1448:9 | a [element 3] | array_flow.rb:1448:9:1448:17 | call to take [element 3] | +| array_flow.rb:1448:9:1448:17 | call to take [element 2] | array_flow.rb:1448:5:1448:5 | b [element 2] | +| array_flow.rb:1448:9:1448:17 | call to take [element 3] | array_flow.rb:1448:5:1448:5 | b [element 3] | +| array_flow.rb:1451:10:1451:10 | b [element 2] | array_flow.rb:1451:10:1451:13 | ...[...] | +| array_flow.rb:1452:10:1452:10 | b [element 3] | array_flow.rb:1452:10:1452:13 | ...[...] | +| array_flow.rb:1453:5:1453:5 | b [element 2] | array_flow.rb:1456:10:1456:10 | b [element 2] | +| array_flow.rb:1453:5:1453:5 | b [element 2] | array_flow.rb:1458:10:1458:10 | b [element 2] | +| array_flow.rb:1453:9:1453:9 | a [element 2] | array_flow.rb:1453:9:1453:17 | call to take [element 2] | +| array_flow.rb:1453:9:1453:17 | call to take [element 2] | array_flow.rb:1453:5:1453:5 | b [element 2] | +| array_flow.rb:1456:10:1456:10 | b [element 2] | array_flow.rb:1456:10:1456:13 | ...[...] | +| array_flow.rb:1458:10:1458:10 | b [element 2] | array_flow.rb:1458:10:1458:13 | ...[...] | +| array_flow.rb:1459:5:1459:5 | b [element 2] | array_flow.rb:1462:10:1462:10 | b [element 2] | +| array_flow.rb:1459:5:1459:5 | b [element 2] | array_flow.rb:1464:10:1464:10 | b [element 2] | +| array_flow.rb:1459:5:1459:5 | b [element 3] | array_flow.rb:1463:10:1463:10 | b [element 3] | +| array_flow.rb:1459:5:1459:5 | b [element 3] | array_flow.rb:1464:10:1464:10 | b [element 3] | +| array_flow.rb:1459:9:1459:9 | a [element 2] | array_flow.rb:1459:9:1459:19 | call to take [element 2] | +| array_flow.rb:1459:9:1459:9 | a [element 3] | array_flow.rb:1459:9:1459:19 | call to take [element 3] | +| array_flow.rb:1459:9:1459:19 | call to take [element 2] | array_flow.rb:1459:5:1459:5 | b [element 2] | +| array_flow.rb:1459:9:1459:19 | call to take [element 3] | array_flow.rb:1459:5:1459:5 | b [element 3] | +| array_flow.rb:1462:10:1462:10 | b [element 2] | array_flow.rb:1462:10:1462:13 | ...[...] | | array_flow.rb:1463:10:1463:10 | b [element 3] | array_flow.rb:1463:10:1463:13 | ...[...] | -| array_flow.rb:1464:5:1464:5 | [post] a [element] | array_flow.rb:1465:9:1465:9 | a [element] | -| array_flow.rb:1464:12:1464:24 | call to source | array_flow.rb:1464:5:1464:5 | [post] a [element] | -| array_flow.rb:1465:5:1465:5 | b [element 2] | array_flow.rb:1466:10:1466:10 | b [element 2] | -| array_flow.rb:1465:5:1465:5 | b [element] | array_flow.rb:1466:10:1466:10 | b [element] | -| array_flow.rb:1465:9:1465:9 | a [element 2] | array_flow.rb:1465:9:1465:17 | call to take [element 2] | -| array_flow.rb:1465:9:1465:9 | a [element] | array_flow.rb:1465:9:1465:17 | call to take [element] | -| array_flow.rb:1465:9:1465:17 | call to take [element 2] | array_flow.rb:1465:5:1465:5 | b [element 2] | -| array_flow.rb:1465:9:1465:17 | call to take [element] | array_flow.rb:1465:5:1465:5 | b [element] | -| array_flow.rb:1466:10:1466:10 | b [element 2] | array_flow.rb:1466:10:1466:13 | ...[...] | -| array_flow.rb:1466:10:1466:10 | b [element] | array_flow.rb:1466:10:1466:13 | ...[...] | -| array_flow.rb:1470:5:1470:5 | a [element 2] | array_flow.rb:1471:9:1471:9 | a [element 2] | -| array_flow.rb:1470:16:1470:26 | call to source | array_flow.rb:1470:5:1470:5 | a [element 2] | -| array_flow.rb:1471:5:1471:5 | b [element 2] | array_flow.rb:1477:10:1477:10 | b [element 2] | -| array_flow.rb:1471:9:1471:9 | a [element 2] | array_flow.rb:1471:9:1474:7 | call to take_while [element 2] | -| array_flow.rb:1471:9:1471:9 | a [element 2] | array_flow.rb:1471:26:1471:26 | x | -| array_flow.rb:1471:9:1474:7 | call to take_while [element 2] | array_flow.rb:1471:5:1471:5 | b [element 2] | -| array_flow.rb:1471:26:1471:26 | x | array_flow.rb:1472:14:1472:14 | x | -| array_flow.rb:1477:10:1477:10 | b [element 2] | array_flow.rb:1477:10:1477:13 | ...[...] | -| array_flow.rb:1483:5:1483:5 | a [element 3] | array_flow.rb:1484:9:1484:9 | a [element 3] | -| array_flow.rb:1483:19:1483:29 | call to source | array_flow.rb:1483:5:1483:5 | a [element 3] | -| array_flow.rb:1484:5:1484:5 | b [element 3] | array_flow.rb:1485:10:1485:10 | b [element 3] | -| array_flow.rb:1484:9:1484:9 | a [element 3] | array_flow.rb:1484:9:1484:14 | call to to_a [element 3] | -| array_flow.rb:1484:9:1484:14 | call to to_a [element 3] | array_flow.rb:1484:5:1484:5 | b [element 3] | -| array_flow.rb:1485:10:1485:10 | b [element 3] | array_flow.rb:1485:10:1485:13 | ...[...] | -| array_flow.rb:1489:5:1489:5 | a [element 2] | array_flow.rb:1490:9:1490:9 | a [element 2] | -| array_flow.rb:1489:16:1489:26 | call to source | array_flow.rb:1489:5:1489:5 | a [element 2] | -| array_flow.rb:1490:5:1490:5 | b [element 2] | array_flow.rb:1493:10:1493:10 | b [element 2] | -| array_flow.rb:1490:9:1490:9 | a [element 2] | array_flow.rb:1490:9:1490:16 | call to to_ary [element 2] | -| array_flow.rb:1490:9:1490:16 | call to to_ary [element 2] | array_flow.rb:1490:5:1490:5 | b [element 2] | -| array_flow.rb:1493:10:1493:10 | b [element 2] | array_flow.rb:1493:10:1493:13 | ...[...] | -| array_flow.rb:1506:5:1506:5 | a [element 0, element 1] | array_flow.rb:1507:9:1507:9 | a [element 0, element 1] | -| array_flow.rb:1506:5:1506:5 | a [element 1, element 1] | array_flow.rb:1507:9:1507:9 | a [element 1, element 1] | -| array_flow.rb:1506:5:1506:5 | a [element 2, element 1] | array_flow.rb:1507:9:1507:9 | a [element 2, element 1] | -| array_flow.rb:1506:14:1506:26 | call to source | array_flow.rb:1506:5:1506:5 | a [element 0, element 1] | -| array_flow.rb:1506:34:1506:46 | call to source | array_flow.rb:1506:5:1506:5 | a [element 1, element 1] | -| array_flow.rb:1506:54:1506:66 | call to source | array_flow.rb:1506:5:1506:5 | a [element 2, element 1] | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 0] | array_flow.rb:1511:10:1511:10 | b [element 1, element 0] | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 1] | array_flow.rb:1512:10:1512:10 | b [element 1, element 1] | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 2] | array_flow.rb:1513:10:1513:10 | b [element 1, element 2] | -| array_flow.rb:1507:9:1507:9 | a [element 0, element 1] | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 0] | -| array_flow.rb:1507:9:1507:9 | a [element 1, element 1] | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 1] | -| array_flow.rb:1507:9:1507:9 | a [element 2, element 1] | array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 2] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 0] | array_flow.rb:1507:5:1507:5 | b [element 1, element 0] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 1] | array_flow.rb:1507:5:1507:5 | b [element 1, element 1] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 2] | array_flow.rb:1507:5:1507:5 | b [element 1, element 2] | -| array_flow.rb:1511:10:1511:10 | b [element 1, element 0] | array_flow.rb:1511:10:1511:13 | ...[...] [element 0] | -| array_flow.rb:1511:10:1511:13 | ...[...] [element 0] | array_flow.rb:1511:10:1511:16 | ...[...] | -| array_flow.rb:1512:10:1512:10 | b [element 1, element 1] | array_flow.rb:1512:10:1512:13 | ...[...] [element 1] | -| array_flow.rb:1512:10:1512:13 | ...[...] [element 1] | array_flow.rb:1512:10:1512:16 | ...[...] | -| array_flow.rb:1513:10:1513:10 | b [element 1, element 2] | array_flow.rb:1513:10:1513:13 | ...[...] [element 2] | -| array_flow.rb:1513:10:1513:13 | ...[...] [element 2] | array_flow.rb:1513:10:1513:16 | ...[...] | -| array_flow.rb:1517:5:1517:5 | a [element 2] | array_flow.rb:1520:9:1520:9 | a [element 2] | -| array_flow.rb:1517:16:1517:28 | call to source | array_flow.rb:1517:5:1517:5 | a [element 2] | -| array_flow.rb:1518:5:1518:5 | b [element 1] | array_flow.rb:1520:17:1520:17 | b [element 1] | -| array_flow.rb:1518:13:1518:25 | call to source | array_flow.rb:1518:5:1518:5 | b [element 1] | -| array_flow.rb:1519:5:1519:5 | c [element 1] | array_flow.rb:1520:20:1520:20 | c [element 1] | -| array_flow.rb:1519:13:1519:25 | call to source | array_flow.rb:1519:5:1519:5 | c [element 1] | -| array_flow.rb:1520:5:1520:5 | d [element] | array_flow.rb:1521:10:1521:10 | d [element] | -| array_flow.rb:1520:5:1520:5 | d [element] | array_flow.rb:1522:10:1522:10 | d [element] | -| array_flow.rb:1520:5:1520:5 | d [element] | array_flow.rb:1523:10:1523:10 | d [element] | -| array_flow.rb:1520:9:1520:9 | a [element 2] | array_flow.rb:1520:9:1520:21 | call to union [element] | -| array_flow.rb:1520:9:1520:21 | call to union [element] | array_flow.rb:1520:5:1520:5 | d [element] | -| array_flow.rb:1520:17:1520:17 | b [element 1] | array_flow.rb:1520:9:1520:21 | call to union [element] | -| array_flow.rb:1520:20:1520:20 | c [element 1] | array_flow.rb:1520:9:1520:21 | call to union [element] | -| array_flow.rb:1521:10:1521:10 | d [element] | array_flow.rb:1521:10:1521:13 | ...[...] | +| array_flow.rb:1464:10:1464:10 | b [element 2] | array_flow.rb:1464:10:1464:13 | ...[...] | +| array_flow.rb:1464:10:1464:10 | b [element 3] | array_flow.rb:1464:10:1464:13 | ...[...] | +| array_flow.rb:1465:5:1465:5 | [post] a [element] | array_flow.rb:1466:9:1466:9 | a [element] | +| array_flow.rb:1465:12:1465:24 | call to source | array_flow.rb:1465:5:1465:5 | [post] a [element] | +| array_flow.rb:1466:5:1466:5 | b [element 2] | array_flow.rb:1467:10:1467:10 | b [element 2] | +| array_flow.rb:1466:5:1466:5 | b [element] | array_flow.rb:1467:10:1467:10 | b [element] | +| array_flow.rb:1466:9:1466:9 | a [element 2] | array_flow.rb:1466:9:1466:17 | call to take [element 2] | +| array_flow.rb:1466:9:1466:9 | a [element] | array_flow.rb:1466:9:1466:17 | call to take [element] | +| array_flow.rb:1466:9:1466:17 | call to take [element 2] | array_flow.rb:1466:5:1466:5 | b [element 2] | +| array_flow.rb:1466:9:1466:17 | call to take [element] | array_flow.rb:1466:5:1466:5 | b [element] | +| array_flow.rb:1467:10:1467:10 | b [element 2] | array_flow.rb:1467:10:1467:13 | ...[...] | +| array_flow.rb:1467:10:1467:10 | b [element] | array_flow.rb:1467:10:1467:13 | ...[...] | +| array_flow.rb:1471:5:1471:5 | a [element 2] | array_flow.rb:1472:9:1472:9 | a [element 2] | +| array_flow.rb:1471:16:1471:26 | call to source | array_flow.rb:1471:5:1471:5 | a [element 2] | +| array_flow.rb:1472:5:1472:5 | b [element 2] | array_flow.rb:1478:10:1478:10 | b [element 2] | +| array_flow.rb:1472:9:1472:9 | a [element 2] | array_flow.rb:1472:9:1475:7 | call to take_while [element 2] | +| array_flow.rb:1472:9:1472:9 | a [element 2] | array_flow.rb:1472:26:1472:26 | x | +| array_flow.rb:1472:9:1475:7 | call to take_while [element 2] | array_flow.rb:1472:5:1472:5 | b [element 2] | +| array_flow.rb:1472:26:1472:26 | x | array_flow.rb:1473:14:1473:14 | x | +| array_flow.rb:1478:10:1478:10 | b [element 2] | array_flow.rb:1478:10:1478:13 | ...[...] | +| array_flow.rb:1484:5:1484:5 | a [element 3] | array_flow.rb:1485:9:1485:9 | a [element 3] | +| array_flow.rb:1484:19:1484:29 | call to source | array_flow.rb:1484:5:1484:5 | a [element 3] | +| array_flow.rb:1485:5:1485:5 | b [element 3] | array_flow.rb:1486:10:1486:10 | b [element 3] | +| array_flow.rb:1485:9:1485:9 | a [element 3] | array_flow.rb:1485:9:1485:14 | call to to_a [element 3] | +| array_flow.rb:1485:9:1485:14 | call to to_a [element 3] | array_flow.rb:1485:5:1485:5 | b [element 3] | +| array_flow.rb:1486:10:1486:10 | b [element 3] | array_flow.rb:1486:10:1486:13 | ...[...] | +| array_flow.rb:1490:5:1490:5 | a [element 2] | array_flow.rb:1491:9:1491:9 | a [element 2] | +| array_flow.rb:1490:16:1490:26 | call to source | array_flow.rb:1490:5:1490:5 | a [element 2] | +| array_flow.rb:1491:5:1491:5 | b [element 2] | array_flow.rb:1494:10:1494:10 | b [element 2] | +| array_flow.rb:1491:9:1491:9 | a [element 2] | array_flow.rb:1491:9:1491:16 | call to to_ary [element 2] | +| array_flow.rb:1491:9:1491:16 | call to to_ary [element 2] | array_flow.rb:1491:5:1491:5 | b [element 2] | +| array_flow.rb:1494:10:1494:10 | b [element 2] | array_flow.rb:1494:10:1494:13 | ...[...] | +| array_flow.rb:1507:5:1507:5 | a [element 0, element 1] | array_flow.rb:1508:9:1508:9 | a [element 0, element 1] | +| array_flow.rb:1507:5:1507:5 | a [element 1, element 1] | array_flow.rb:1508:9:1508:9 | a [element 1, element 1] | +| array_flow.rb:1507:5:1507:5 | a [element 2, element 1] | array_flow.rb:1508:9:1508:9 | a [element 2, element 1] | +| array_flow.rb:1507:14:1507:26 | call to source | array_flow.rb:1507:5:1507:5 | a [element 0, element 1] | +| array_flow.rb:1507:34:1507:46 | call to source | array_flow.rb:1507:5:1507:5 | a [element 1, element 1] | +| array_flow.rb:1507:54:1507:66 | call to source | array_flow.rb:1507:5:1507:5 | a [element 2, element 1] | +| array_flow.rb:1508:5:1508:5 | b [element 1, element 0] | array_flow.rb:1512:10:1512:10 | b [element 1, element 0] | +| array_flow.rb:1508:5:1508:5 | b [element 1, element 1] | array_flow.rb:1513:10:1513:10 | b [element 1, element 1] | +| array_flow.rb:1508:5:1508:5 | b [element 1, element 2] | array_flow.rb:1514:10:1514:10 | b [element 1, element 2] | +| array_flow.rb:1508:9:1508:9 | a [element 0, element 1] | array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 0] | +| array_flow.rb:1508:9:1508:9 | a [element 1, element 1] | array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 1] | +| array_flow.rb:1508:9:1508:9 | a [element 2, element 1] | array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 2] | +| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 0] | array_flow.rb:1508:5:1508:5 | b [element 1, element 0] | +| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 1] | array_flow.rb:1508:5:1508:5 | b [element 1, element 1] | +| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 2] | array_flow.rb:1508:5:1508:5 | b [element 1, element 2] | +| array_flow.rb:1512:10:1512:10 | b [element 1, element 0] | array_flow.rb:1512:10:1512:13 | ...[...] [element 0] | +| array_flow.rb:1512:10:1512:13 | ...[...] [element 0] | array_flow.rb:1512:10:1512:16 | ...[...] | +| array_flow.rb:1513:10:1513:10 | b [element 1, element 1] | array_flow.rb:1513:10:1513:13 | ...[...] [element 1] | +| array_flow.rb:1513:10:1513:13 | ...[...] [element 1] | array_flow.rb:1513:10:1513:16 | ...[...] | +| array_flow.rb:1514:10:1514:10 | b [element 1, element 2] | array_flow.rb:1514:10:1514:13 | ...[...] [element 2] | +| array_flow.rb:1514:10:1514:13 | ...[...] [element 2] | array_flow.rb:1514:10:1514:16 | ...[...] | +| array_flow.rb:1518:5:1518:5 | a [element 2] | array_flow.rb:1521:9:1521:9 | a [element 2] | +| array_flow.rb:1518:16:1518:28 | call to source | array_flow.rb:1518:5:1518:5 | a [element 2] | +| array_flow.rb:1519:5:1519:5 | b [element 1] | array_flow.rb:1521:17:1521:17 | b [element 1] | +| array_flow.rb:1519:13:1519:25 | call to source | array_flow.rb:1519:5:1519:5 | b [element 1] | +| array_flow.rb:1520:5:1520:5 | c [element 1] | array_flow.rb:1521:20:1521:20 | c [element 1] | +| array_flow.rb:1520:13:1520:25 | call to source | array_flow.rb:1520:5:1520:5 | c [element 1] | +| array_flow.rb:1521:5:1521:5 | d [element] | array_flow.rb:1522:10:1522:10 | d [element] | +| array_flow.rb:1521:5:1521:5 | d [element] | array_flow.rb:1523:10:1523:10 | d [element] | +| array_flow.rb:1521:5:1521:5 | d [element] | array_flow.rb:1524:10:1524:10 | d [element] | +| array_flow.rb:1521:9:1521:9 | a [element 2] | array_flow.rb:1521:9:1521:21 | call to union [element] | +| array_flow.rb:1521:9:1521:21 | call to union [element] | array_flow.rb:1521:5:1521:5 | d [element] | +| array_flow.rb:1521:17:1521:17 | b [element 1] | array_flow.rb:1521:9:1521:21 | call to union [element] | +| array_flow.rb:1521:20:1521:20 | c [element 1] | array_flow.rb:1521:9:1521:21 | call to union [element] | | array_flow.rb:1522:10:1522:10 | d [element] | array_flow.rb:1522:10:1522:13 | ...[...] | | array_flow.rb:1523:10:1523:10 | d [element] | array_flow.rb:1523:10:1523:13 | ...[...] | -| array_flow.rb:1527:5:1527:5 | a [element 3] | array_flow.rb:1529:9:1529:9 | a [element 3] | -| array_flow.rb:1527:5:1527:5 | a [element 3] | array_flow.rb:1533:9:1533:9 | a [element 3] | -| array_flow.rb:1527:5:1527:5 | a [element 4] | array_flow.rb:1529:9:1529:9 | a [element 4] | -| array_flow.rb:1527:5:1527:5 | a [element 4] | array_flow.rb:1533:9:1533:9 | a [element 4] | -| array_flow.rb:1527:19:1527:31 | call to source | array_flow.rb:1527:5:1527:5 | a [element 3] | -| array_flow.rb:1527:34:1527:46 | call to source | array_flow.rb:1527:5:1527:5 | a [element 4] | -| array_flow.rb:1529:5:1529:5 | b [element] | array_flow.rb:1530:10:1530:10 | b [element] | -| array_flow.rb:1529:5:1529:5 | b [element] | array_flow.rb:1531:10:1531:10 | b [element] | -| array_flow.rb:1529:9:1529:9 | a [element 3] | array_flow.rb:1529:9:1529:14 | call to uniq [element] | -| array_flow.rb:1529:9:1529:9 | a [element 4] | array_flow.rb:1529:9:1529:14 | call to uniq [element] | -| array_flow.rb:1529:9:1529:14 | call to uniq [element] | array_flow.rb:1529:5:1529:5 | b [element] | -| array_flow.rb:1530:10:1530:10 | b [element] | array_flow.rb:1530:10:1530:13 | ...[...] | +| array_flow.rb:1524:10:1524:10 | d [element] | array_flow.rb:1524:10:1524:13 | ...[...] | +| array_flow.rb:1528:5:1528:5 | a [element 3] | array_flow.rb:1530:9:1530:9 | a [element 3] | +| array_flow.rb:1528:5:1528:5 | a [element 3] | array_flow.rb:1534:9:1534:9 | a [element 3] | +| array_flow.rb:1528:5:1528:5 | a [element 4] | array_flow.rb:1530:9:1530:9 | a [element 4] | +| array_flow.rb:1528:5:1528:5 | a [element 4] | array_flow.rb:1534:9:1534:9 | a [element 4] | +| array_flow.rb:1528:19:1528:31 | call to source | array_flow.rb:1528:5:1528:5 | a [element 3] | +| array_flow.rb:1528:34:1528:46 | call to source | array_flow.rb:1528:5:1528:5 | a [element 4] | +| array_flow.rb:1530:5:1530:5 | b [element] | array_flow.rb:1531:10:1531:10 | b [element] | +| array_flow.rb:1530:5:1530:5 | b [element] | array_flow.rb:1532:10:1532:10 | b [element] | +| array_flow.rb:1530:9:1530:9 | a [element 3] | array_flow.rb:1530:9:1530:14 | call to uniq [element] | +| array_flow.rb:1530:9:1530:9 | a [element 4] | array_flow.rb:1530:9:1530:14 | call to uniq [element] | +| array_flow.rb:1530:9:1530:14 | call to uniq [element] | array_flow.rb:1530:5:1530:5 | b [element] | | array_flow.rb:1531:10:1531:10 | b [element] | array_flow.rb:1531:10:1531:13 | ...[...] | -| array_flow.rb:1533:5:1533:5 | c [element] | array_flow.rb:1537:10:1537:10 | c [element] | -| array_flow.rb:1533:9:1533:9 | a [element 3] | array_flow.rb:1533:9:1536:7 | call to uniq [element] | -| array_flow.rb:1533:9:1533:9 | a [element 3] | array_flow.rb:1533:20:1533:20 | x | -| array_flow.rb:1533:9:1533:9 | a [element 4] | array_flow.rb:1533:9:1536:7 | call to uniq [element] | -| array_flow.rb:1533:9:1533:9 | a [element 4] | array_flow.rb:1533:20:1533:20 | x | -| array_flow.rb:1533:9:1536:7 | call to uniq [element] | array_flow.rb:1533:5:1533:5 | c [element] | -| array_flow.rb:1533:20:1533:20 | x | array_flow.rb:1534:14:1534:14 | x | -| array_flow.rb:1537:10:1537:10 | c [element] | array_flow.rb:1537:10:1537:13 | ...[...] | -| array_flow.rb:1541:5:1541:5 | a [element 2] | array_flow.rb:1542:9:1542:9 | a [element 2] | -| array_flow.rb:1541:5:1541:5 | a [element 3] | array_flow.rb:1542:9:1542:9 | a [element 3] | -| array_flow.rb:1541:16:1541:28 | call to source | array_flow.rb:1541:5:1541:5 | a [element 2] | -| array_flow.rb:1541:31:1541:43 | call to source | array_flow.rb:1541:5:1541:5 | a [element 3] | -| array_flow.rb:1542:5:1542:5 | b [element] | array_flow.rb:1543:10:1543:10 | b [element] | -| array_flow.rb:1542:5:1542:5 | b [element] | array_flow.rb:1544:10:1544:10 | b [element] | -| array_flow.rb:1542:9:1542:9 | [post] a [element] | array_flow.rb:1545:10:1545:10 | a [element] | -| array_flow.rb:1542:9:1542:9 | [post] a [element] | array_flow.rb:1546:10:1546:10 | a [element] | -| array_flow.rb:1542:9:1542:9 | a [element 2] | array_flow.rb:1542:9:1542:9 | [post] a [element] | -| array_flow.rb:1542:9:1542:9 | a [element 2] | array_flow.rb:1542:9:1542:15 | call to uniq! [element] | -| array_flow.rb:1542:9:1542:9 | a [element 3] | array_flow.rb:1542:9:1542:9 | [post] a [element] | -| array_flow.rb:1542:9:1542:9 | a [element 3] | array_flow.rb:1542:9:1542:15 | call to uniq! [element] | -| array_flow.rb:1542:9:1542:15 | call to uniq! [element] | array_flow.rb:1542:5:1542:5 | b [element] | -| array_flow.rb:1543:10:1543:10 | b [element] | array_flow.rb:1543:10:1543:13 | ...[...] | +| array_flow.rb:1532:10:1532:10 | b [element] | array_flow.rb:1532:10:1532:13 | ...[...] | +| array_flow.rb:1534:5:1534:5 | c [element] | array_flow.rb:1538:10:1538:10 | c [element] | +| array_flow.rb:1534:9:1534:9 | a [element 3] | array_flow.rb:1534:9:1537:7 | call to uniq [element] | +| array_flow.rb:1534:9:1534:9 | a [element 3] | array_flow.rb:1534:20:1534:20 | x | +| array_flow.rb:1534:9:1534:9 | a [element 4] | array_flow.rb:1534:9:1537:7 | call to uniq [element] | +| array_flow.rb:1534:9:1534:9 | a [element 4] | array_flow.rb:1534:20:1534:20 | x | +| array_flow.rb:1534:9:1537:7 | call to uniq [element] | array_flow.rb:1534:5:1534:5 | c [element] | +| array_flow.rb:1534:20:1534:20 | x | array_flow.rb:1535:14:1535:14 | x | +| array_flow.rb:1538:10:1538:10 | c [element] | array_flow.rb:1538:10:1538:13 | ...[...] | +| array_flow.rb:1542:5:1542:5 | a [element 2] | array_flow.rb:1543:9:1543:9 | a [element 2] | +| array_flow.rb:1542:5:1542:5 | a [element 3] | array_flow.rb:1543:9:1543:9 | a [element 3] | +| array_flow.rb:1542:16:1542:28 | call to source | array_flow.rb:1542:5:1542:5 | a [element 2] | +| array_flow.rb:1542:31:1542:43 | call to source | array_flow.rb:1542:5:1542:5 | a [element 3] | +| array_flow.rb:1543:5:1543:5 | b [element] | array_flow.rb:1544:10:1544:10 | b [element] | +| array_flow.rb:1543:5:1543:5 | b [element] | array_flow.rb:1545:10:1545:10 | b [element] | +| array_flow.rb:1543:9:1543:9 | [post] a [element] | array_flow.rb:1546:10:1546:10 | a [element] | +| array_flow.rb:1543:9:1543:9 | [post] a [element] | array_flow.rb:1547:10:1547:10 | a [element] | +| array_flow.rb:1543:9:1543:9 | a [element 2] | array_flow.rb:1543:9:1543:9 | [post] a [element] | +| array_flow.rb:1543:9:1543:9 | a [element 2] | array_flow.rb:1543:9:1543:15 | call to uniq! [element] | +| array_flow.rb:1543:9:1543:9 | a [element 3] | array_flow.rb:1543:9:1543:9 | [post] a [element] | +| array_flow.rb:1543:9:1543:9 | a [element 3] | array_flow.rb:1543:9:1543:15 | call to uniq! [element] | +| array_flow.rb:1543:9:1543:15 | call to uniq! [element] | array_flow.rb:1543:5:1543:5 | b [element] | | array_flow.rb:1544:10:1544:10 | b [element] | array_flow.rb:1544:10:1544:13 | ...[...] | -| array_flow.rb:1545:10:1545:10 | a [element] | array_flow.rb:1545:10:1545:13 | ...[...] | +| array_flow.rb:1545:10:1545:10 | b [element] | array_flow.rb:1545:10:1545:13 | ...[...] | | array_flow.rb:1546:10:1546:10 | a [element] | array_flow.rb:1546:10:1546:13 | ...[...] | -| array_flow.rb:1548:5:1548:5 | a [element 2] | array_flow.rb:1549:9:1549:9 | a [element 2] | -| array_flow.rb:1548:5:1548:5 | a [element 3] | array_flow.rb:1549:9:1549:9 | a [element 3] | -| array_flow.rb:1548:16:1548:28 | call to source | array_flow.rb:1548:5:1548:5 | a [element 2] | -| array_flow.rb:1548:31:1548:43 | call to source | array_flow.rb:1548:5:1548:5 | a [element 3] | -| array_flow.rb:1549:5:1549:5 | b [element] | array_flow.rb:1553:10:1553:10 | b [element] | -| array_flow.rb:1549:5:1549:5 | b [element] | array_flow.rb:1554:10:1554:10 | b [element] | -| array_flow.rb:1549:9:1549:9 | [post] a [element] | array_flow.rb:1555:10:1555:10 | a [element] | -| array_flow.rb:1549:9:1549:9 | [post] a [element] | array_flow.rb:1556:10:1556:10 | a [element] | -| array_flow.rb:1549:9:1549:9 | a [element 2] | array_flow.rb:1549:9:1549:9 | [post] a [element] | -| array_flow.rb:1549:9:1549:9 | a [element 2] | array_flow.rb:1549:9:1552:7 | call to uniq! [element] | -| array_flow.rb:1549:9:1549:9 | a [element 2] | array_flow.rb:1549:21:1549:21 | x | -| array_flow.rb:1549:9:1549:9 | a [element 3] | array_flow.rb:1549:9:1549:9 | [post] a [element] | -| array_flow.rb:1549:9:1549:9 | a [element 3] | array_flow.rb:1549:9:1552:7 | call to uniq! [element] | -| array_flow.rb:1549:9:1549:9 | a [element 3] | array_flow.rb:1549:21:1549:21 | x | -| array_flow.rb:1549:9:1552:7 | call to uniq! [element] | array_flow.rb:1549:5:1549:5 | b [element] | -| array_flow.rb:1549:21:1549:21 | x | array_flow.rb:1550:14:1550:14 | x | -| array_flow.rb:1553:10:1553:10 | b [element] | array_flow.rb:1553:10:1553:13 | ...[...] | +| array_flow.rb:1547:10:1547:10 | a [element] | array_flow.rb:1547:10:1547:13 | ...[...] | +| array_flow.rb:1549:5:1549:5 | a [element 2] | array_flow.rb:1550:9:1550:9 | a [element 2] | +| array_flow.rb:1549:5:1549:5 | a [element 3] | array_flow.rb:1550:9:1550:9 | a [element 3] | +| array_flow.rb:1549:16:1549:28 | call to source | array_flow.rb:1549:5:1549:5 | a [element 2] | +| array_flow.rb:1549:31:1549:43 | call to source | array_flow.rb:1549:5:1549:5 | a [element 3] | +| array_flow.rb:1550:5:1550:5 | b [element] | array_flow.rb:1554:10:1554:10 | b [element] | +| array_flow.rb:1550:5:1550:5 | b [element] | array_flow.rb:1555:10:1555:10 | b [element] | +| array_flow.rb:1550:9:1550:9 | [post] a [element] | array_flow.rb:1556:10:1556:10 | a [element] | +| array_flow.rb:1550:9:1550:9 | [post] a [element] | array_flow.rb:1557:10:1557:10 | a [element] | +| array_flow.rb:1550:9:1550:9 | a [element 2] | array_flow.rb:1550:9:1550:9 | [post] a [element] | +| array_flow.rb:1550:9:1550:9 | a [element 2] | array_flow.rb:1550:9:1553:7 | call to uniq! [element] | +| array_flow.rb:1550:9:1550:9 | a [element 2] | array_flow.rb:1550:21:1550:21 | x | +| array_flow.rb:1550:9:1550:9 | a [element 3] | array_flow.rb:1550:9:1550:9 | [post] a [element] | +| array_flow.rb:1550:9:1550:9 | a [element 3] | array_flow.rb:1550:9:1553:7 | call to uniq! [element] | +| array_flow.rb:1550:9:1550:9 | a [element 3] | array_flow.rb:1550:21:1550:21 | x | +| array_flow.rb:1550:9:1553:7 | call to uniq! [element] | array_flow.rb:1550:5:1550:5 | b [element] | +| array_flow.rb:1550:21:1550:21 | x | array_flow.rb:1551:14:1551:14 | x | | array_flow.rb:1554:10:1554:10 | b [element] | array_flow.rb:1554:10:1554:13 | ...[...] | -| array_flow.rb:1555:10:1555:10 | a [element] | array_flow.rb:1555:10:1555:13 | ...[...] | +| array_flow.rb:1555:10:1555:10 | b [element] | array_flow.rb:1555:10:1555:13 | ...[...] | | array_flow.rb:1556:10:1556:10 | a [element] | array_flow.rb:1556:10:1556:13 | ...[...] | -| array_flow.rb:1560:5:1560:5 | a [element 2] | array_flow.rb:1561:5:1561:5 | a [element 2] | -| array_flow.rb:1560:16:1560:28 | call to source | array_flow.rb:1560:5:1560:5 | a [element 2] | -| array_flow.rb:1561:5:1561:5 | [post] a [element 2] | array_flow.rb:1564:10:1564:10 | a [element 2] | -| array_flow.rb:1561:5:1561:5 | [post] a [element 5] | array_flow.rb:1567:10:1567:10 | a [element 5] | -| array_flow.rb:1561:5:1561:5 | a [element 2] | array_flow.rb:1561:5:1561:5 | [post] a [element 5] | -| array_flow.rb:1561:21:1561:33 | call to source | array_flow.rb:1561:5:1561:5 | [post] a [element 2] | -| array_flow.rb:1564:10:1564:10 | a [element 2] | array_flow.rb:1564:10:1564:13 | ...[...] | -| array_flow.rb:1567:10:1567:10 | a [element 5] | array_flow.rb:1567:10:1567:13 | ...[...] | -| array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1573:9:1573:9 | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1579:9:1579:9 | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1583:9:1583:9 | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 1] | array_flow.rb:1587:9:1587:9 | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 3] | array_flow.rb:1579:9:1579:9 | a [element 3] | -| array_flow.rb:1571:5:1571:5 | a [element 3] | array_flow.rb:1583:9:1583:9 | a [element 3] | -| array_flow.rb:1571:5:1571:5 | a [element 3] | array_flow.rb:1587:9:1587:9 | a [element 3] | -| array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1571:5:1571:5 | a [element 1] | -| array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1571:5:1571:5 | a [element 3] | -| array_flow.rb:1573:5:1573:5 | b [element 1] | array_flow.rb:1575:10:1575:10 | b [element 1] | -| array_flow.rb:1573:5:1573:5 | b [element 3] | array_flow.rb:1577:10:1577:10 | b [element 3] | -| array_flow.rb:1573:9:1573:9 | a [element 1] | array_flow.rb:1573:9:1573:31 | call to values_at [element 1] | -| array_flow.rb:1573:9:1573:9 | a [element 1] | array_flow.rb:1573:9:1573:31 | call to values_at [element 3] | -| array_flow.rb:1573:9:1573:31 | call to values_at [element 1] | array_flow.rb:1573:5:1573:5 | b [element 1] | -| array_flow.rb:1573:9:1573:31 | call to values_at [element 3] | array_flow.rb:1573:5:1573:5 | b [element 3] | -| array_flow.rb:1575:10:1575:10 | b [element 1] | array_flow.rb:1575:10:1575:13 | ...[...] | -| array_flow.rb:1577:10:1577:10 | b [element 3] | array_flow.rb:1577:10:1577:13 | ...[...] | -| array_flow.rb:1579:5:1579:5 | b [element] | array_flow.rb:1580:10:1580:10 | b [element] | -| array_flow.rb:1579:5:1579:5 | b [element] | array_flow.rb:1581:10:1581:10 | b [element] | -| array_flow.rb:1579:9:1579:9 | a [element 1] | array_flow.rb:1579:9:1579:25 | call to values_at [element] | -| array_flow.rb:1579:9:1579:9 | a [element 3] | array_flow.rb:1579:9:1579:25 | call to values_at [element] | -| array_flow.rb:1579:9:1579:25 | call to values_at [element] | array_flow.rb:1579:5:1579:5 | b [element] | -| array_flow.rb:1580:10:1580:10 | b [element] | array_flow.rb:1580:10:1580:13 | ...[...] | +| array_flow.rb:1557:10:1557:10 | a [element] | array_flow.rb:1557:10:1557:13 | ...[...] | +| array_flow.rb:1561:5:1561:5 | a [element 2] | array_flow.rb:1562:5:1562:5 | a [element 2] | +| array_flow.rb:1561:16:1561:28 | call to source | array_flow.rb:1561:5:1561:5 | a [element 2] | +| array_flow.rb:1562:5:1562:5 | [post] a [element 2] | array_flow.rb:1565:10:1565:10 | a [element 2] | +| array_flow.rb:1562:5:1562:5 | [post] a [element 5] | array_flow.rb:1568:10:1568:10 | a [element 5] | +| array_flow.rb:1562:5:1562:5 | a [element 2] | array_flow.rb:1562:5:1562:5 | [post] a [element 5] | +| array_flow.rb:1562:21:1562:33 | call to source | array_flow.rb:1562:5:1562:5 | [post] a [element 2] | +| array_flow.rb:1565:10:1565:10 | a [element 2] | array_flow.rb:1565:10:1565:13 | ...[...] | +| array_flow.rb:1568:10:1568:10 | a [element 5] | array_flow.rb:1568:10:1568:13 | ...[...] | +| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1574:9:1574:9 | a [element 1] | +| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1580:9:1580:9 | a [element 1] | +| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1584:9:1584:9 | a [element 1] | +| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1588:9:1588:9 | a [element 1] | +| array_flow.rb:1572:5:1572:5 | a [element 3] | array_flow.rb:1580:9:1580:9 | a [element 3] | +| array_flow.rb:1572:5:1572:5 | a [element 3] | array_flow.rb:1584:9:1584:9 | a [element 3] | +| array_flow.rb:1572:5:1572:5 | a [element 3] | array_flow.rb:1588:9:1588:9 | a [element 3] | +| array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1572:5:1572:5 | a [element 1] | +| array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1572:5:1572:5 | a [element 3] | +| array_flow.rb:1574:5:1574:5 | b [element 1] | array_flow.rb:1576:10:1576:10 | b [element 1] | +| array_flow.rb:1574:5:1574:5 | b [element 3] | array_flow.rb:1578:10:1578:10 | b [element 3] | +| array_flow.rb:1574:9:1574:9 | a [element 1] | array_flow.rb:1574:9:1574:31 | call to values_at [element 1] | +| array_flow.rb:1574:9:1574:9 | a [element 1] | array_flow.rb:1574:9:1574:31 | call to values_at [element 3] | +| array_flow.rb:1574:9:1574:31 | call to values_at [element 1] | array_flow.rb:1574:5:1574:5 | b [element 1] | +| array_flow.rb:1574:9:1574:31 | call to values_at [element 3] | array_flow.rb:1574:5:1574:5 | b [element 3] | +| array_flow.rb:1576:10:1576:10 | b [element 1] | array_flow.rb:1576:10:1576:13 | ...[...] | +| array_flow.rb:1578:10:1578:10 | b [element 3] | array_flow.rb:1578:10:1578:13 | ...[...] | +| array_flow.rb:1580:5:1580:5 | b [element] | array_flow.rb:1581:10:1581:10 | b [element] | +| array_flow.rb:1580:5:1580:5 | b [element] | array_flow.rb:1582:10:1582:10 | b [element] | +| array_flow.rb:1580:9:1580:9 | a [element 1] | array_flow.rb:1580:9:1580:25 | call to values_at [element] | +| array_flow.rb:1580:9:1580:9 | a [element 3] | array_flow.rb:1580:9:1580:25 | call to values_at [element] | +| array_flow.rb:1580:9:1580:25 | call to values_at [element] | array_flow.rb:1580:5:1580:5 | b [element] | | array_flow.rb:1581:10:1581:10 | b [element] | array_flow.rb:1581:10:1581:13 | ...[...] | -| array_flow.rb:1583:5:1583:5 | b [element] | array_flow.rb:1584:10:1584:10 | b [element] | -| array_flow.rb:1583:5:1583:5 | b [element] | array_flow.rb:1585:10:1585:10 | b [element] | -| array_flow.rb:1583:9:1583:9 | a [element 1] | array_flow.rb:1583:9:1583:26 | call to values_at [element] | -| array_flow.rb:1583:9:1583:9 | a [element 3] | array_flow.rb:1583:9:1583:26 | call to values_at [element] | -| array_flow.rb:1583:9:1583:26 | call to values_at [element] | array_flow.rb:1583:5:1583:5 | b [element] | -| array_flow.rb:1584:10:1584:10 | b [element] | array_flow.rb:1584:10:1584:13 | ...[...] | +| array_flow.rb:1582:10:1582:10 | b [element] | array_flow.rb:1582:10:1582:13 | ...[...] | +| array_flow.rb:1584:5:1584:5 | b [element] | array_flow.rb:1585:10:1585:10 | b [element] | +| array_flow.rb:1584:5:1584:5 | b [element] | array_flow.rb:1586:10:1586:10 | b [element] | +| array_flow.rb:1584:9:1584:9 | a [element 1] | array_flow.rb:1584:9:1584:26 | call to values_at [element] | +| array_flow.rb:1584:9:1584:9 | a [element 3] | array_flow.rb:1584:9:1584:26 | call to values_at [element] | +| array_flow.rb:1584:9:1584:26 | call to values_at [element] | array_flow.rb:1584:5:1584:5 | b [element] | | array_flow.rb:1585:10:1585:10 | b [element] | array_flow.rb:1585:10:1585:13 | ...[...] | -| array_flow.rb:1587:5:1587:5 | b [element 1] | array_flow.rb:1589:10:1589:10 | b [element 1] | -| array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1588:10:1588:10 | b [element] | -| array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1589:10:1589:10 | b [element] | -| array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1590:10:1590:10 | b [element] | -| array_flow.rb:1587:5:1587:5 | b [element] | array_flow.rb:1591:10:1591:10 | b [element] | -| array_flow.rb:1587:9:1587:9 | a [element 1] | array_flow.rb:1587:9:1587:28 | call to values_at [element] | -| array_flow.rb:1587:9:1587:9 | a [element 3] | array_flow.rb:1587:9:1587:28 | call to values_at [element 1] | -| array_flow.rb:1587:9:1587:9 | a [element 3] | array_flow.rb:1587:9:1587:28 | call to values_at [element] | -| array_flow.rb:1587:9:1587:28 | call to values_at [element 1] | array_flow.rb:1587:5:1587:5 | b [element 1] | -| array_flow.rb:1587:9:1587:28 | call to values_at [element] | array_flow.rb:1587:5:1587:5 | b [element] | -| array_flow.rb:1588:10:1588:10 | b [element] | array_flow.rb:1588:10:1588:13 | ...[...] | -| array_flow.rb:1589:10:1589:10 | b [element 1] | array_flow.rb:1589:10:1589:13 | ...[...] | +| array_flow.rb:1586:10:1586:10 | b [element] | array_flow.rb:1586:10:1586:13 | ...[...] | +| array_flow.rb:1588:5:1588:5 | b [element 1] | array_flow.rb:1590:10:1590:10 | b [element 1] | +| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1589:10:1589:10 | b [element] | +| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1590:10:1590:10 | b [element] | +| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1591:10:1591:10 | b [element] | +| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1592:10:1592:10 | b [element] | +| array_flow.rb:1588:9:1588:9 | a [element 1] | array_flow.rb:1588:9:1588:28 | call to values_at [element] | +| array_flow.rb:1588:9:1588:9 | a [element 3] | array_flow.rb:1588:9:1588:28 | call to values_at [element 1] | +| array_flow.rb:1588:9:1588:9 | a [element 3] | array_flow.rb:1588:9:1588:28 | call to values_at [element] | +| array_flow.rb:1588:9:1588:28 | call to values_at [element 1] | array_flow.rb:1588:5:1588:5 | b [element 1] | +| array_flow.rb:1588:9:1588:28 | call to values_at [element] | array_flow.rb:1588:5:1588:5 | b [element] | | array_flow.rb:1589:10:1589:10 | b [element] | array_flow.rb:1589:10:1589:13 | ...[...] | +| array_flow.rb:1590:10:1590:10 | b [element 1] | array_flow.rb:1590:10:1590:13 | ...[...] | | array_flow.rb:1590:10:1590:10 | b [element] | array_flow.rb:1590:10:1590:13 | ...[...] | | array_flow.rb:1591:10:1591:10 | b [element] | array_flow.rb:1591:10:1591:13 | ...[...] | -| array_flow.rb:1595:5:1595:5 | a [element 2] | array_flow.rb:1598:9:1598:9 | a [element 2] | -| array_flow.rb:1595:5:1595:5 | a [element 2] | array_flow.rb:1603:5:1603:5 | a [element 2] | -| array_flow.rb:1595:16:1595:28 | call to source | array_flow.rb:1595:5:1595:5 | a [element 2] | -| array_flow.rb:1596:5:1596:5 | b [element 1] | array_flow.rb:1598:15:1598:15 | b [element 1] | -| array_flow.rb:1596:5:1596:5 | b [element 1] | array_flow.rb:1603:11:1603:11 | b [element 1] | -| array_flow.rb:1596:13:1596:25 | call to source | array_flow.rb:1596:5:1596:5 | b [element 1] | -| array_flow.rb:1597:5:1597:5 | c [element 0] | array_flow.rb:1598:18:1598:18 | c [element 0] | -| array_flow.rb:1597:5:1597:5 | c [element 0] | array_flow.rb:1603:14:1603:14 | c [element 0] | -| array_flow.rb:1597:10:1597:22 | call to source | array_flow.rb:1597:5:1597:5 | c [element 0] | -| array_flow.rb:1598:5:1598:5 | d [element 0, element 2] | array_flow.rb:1600:10:1600:10 | d [element 0, element 2] | -| array_flow.rb:1598:5:1598:5 | d [element 1, element 1] | array_flow.rb:1601:10:1601:10 | d [element 1, element 1] | -| array_flow.rb:1598:5:1598:5 | d [element 2, element 0] | array_flow.rb:1602:10:1602:10 | d [element 2, element 0] | -| array_flow.rb:1598:9:1598:9 | a [element 2] | array_flow.rb:1598:9:1598:19 | call to zip [element 2, element 0] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 0, element 2] | array_flow.rb:1598:5:1598:5 | d [element 0, element 2] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 1, element 1] | array_flow.rb:1598:5:1598:5 | d [element 1, element 1] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 2, element 0] | array_flow.rb:1598:5:1598:5 | d [element 2, element 0] | -| array_flow.rb:1598:15:1598:15 | b [element 1] | array_flow.rb:1598:9:1598:19 | call to zip [element 1, element 1] | -| array_flow.rb:1598:18:1598:18 | c [element 0] | array_flow.rb:1598:9:1598:19 | call to zip [element 0, element 2] | -| array_flow.rb:1600:10:1600:10 | d [element 0, element 2] | array_flow.rb:1600:10:1600:13 | ...[...] [element 2] | -| array_flow.rb:1600:10:1600:13 | ...[...] [element 2] | array_flow.rb:1600:10:1600:16 | ...[...] | -| array_flow.rb:1601:10:1601:10 | d [element 1, element 1] | array_flow.rb:1601:10:1601:13 | ...[...] [element 1] | -| array_flow.rb:1601:10:1601:13 | ...[...] [element 1] | array_flow.rb:1601:10:1601:16 | ...[...] | -| array_flow.rb:1602:10:1602:10 | d [element 2, element 0] | array_flow.rb:1602:10:1602:13 | ...[...] [element 0] | -| array_flow.rb:1602:10:1602:13 | ...[...] [element 0] | array_flow.rb:1602:10:1602:16 | ...[...] | -| array_flow.rb:1603:5:1603:5 | a [element 2] | array_flow.rb:1603:21:1603:21 | x [element 0] | -| array_flow.rb:1603:11:1603:11 | b [element 1] | array_flow.rb:1603:21:1603:21 | x [element 1] | -| array_flow.rb:1603:14:1603:14 | c [element 0] | array_flow.rb:1603:21:1603:21 | x [element 2] | -| array_flow.rb:1603:21:1603:21 | x [element 0] | array_flow.rb:1604:14:1604:14 | x [element 0] | -| array_flow.rb:1603:21:1603:21 | x [element 1] | array_flow.rb:1605:14:1605:14 | x [element 1] | -| array_flow.rb:1603:21:1603:21 | x [element 2] | array_flow.rb:1606:14:1606:14 | x [element 2] | -| array_flow.rb:1604:14:1604:14 | x [element 0] | array_flow.rb:1604:14:1604:17 | ...[...] | -| array_flow.rb:1605:14:1605:14 | x [element 1] | array_flow.rb:1605:14:1605:17 | ...[...] | -| array_flow.rb:1606:14:1606:14 | x [element 2] | array_flow.rb:1606:14:1606:17 | ...[...] | -| array_flow.rb:1611:5:1611:5 | a [element 2] | array_flow.rb:1613:9:1613:9 | a [element 2] | -| array_flow.rb:1611:16:1611:28 | call to source | array_flow.rb:1611:5:1611:5 | a [element 2] | -| array_flow.rb:1612:5:1612:5 | b [element 1] | array_flow.rb:1613:13:1613:13 | b [element 1] | -| array_flow.rb:1612:13:1612:25 | call to source | array_flow.rb:1612:5:1612:5 | b [element 1] | -| array_flow.rb:1613:5:1613:5 | c [element] | array_flow.rb:1614:10:1614:10 | c [element] | -| array_flow.rb:1613:5:1613:5 | c [element] | array_flow.rb:1615:10:1615:10 | c [element] | -| array_flow.rb:1613:5:1613:5 | c [element] | array_flow.rb:1616:10:1616:10 | c [element] | -| array_flow.rb:1613:9:1613:9 | a [element 2] | array_flow.rb:1613:9:1613:13 | ... \| ... [element] | -| array_flow.rb:1613:9:1613:13 | ... \| ... [element] | array_flow.rb:1613:5:1613:5 | c [element] | -| array_flow.rb:1613:13:1613:13 | b [element 1] | array_flow.rb:1613:9:1613:13 | ... \| ... [element] | -| array_flow.rb:1614:10:1614:10 | c [element] | array_flow.rb:1614:10:1614:13 | ...[...] | +| array_flow.rb:1592:10:1592:10 | b [element] | array_flow.rb:1592:10:1592:13 | ...[...] | +| array_flow.rb:1596:5:1596:5 | a [element 2] | array_flow.rb:1599:9:1599:9 | a [element 2] | +| array_flow.rb:1596:5:1596:5 | a [element 2] | array_flow.rb:1604:5:1604:5 | a [element 2] | +| array_flow.rb:1596:16:1596:28 | call to source | array_flow.rb:1596:5:1596:5 | a [element 2] | +| array_flow.rb:1597:5:1597:5 | b [element 1] | array_flow.rb:1599:15:1599:15 | b [element 1] | +| array_flow.rb:1597:5:1597:5 | b [element 1] | array_flow.rb:1604:11:1604:11 | b [element 1] | +| array_flow.rb:1597:13:1597:25 | call to source | array_flow.rb:1597:5:1597:5 | b [element 1] | +| array_flow.rb:1598:5:1598:5 | c [element 0] | array_flow.rb:1599:18:1599:18 | c [element 0] | +| array_flow.rb:1598:5:1598:5 | c [element 0] | array_flow.rb:1604:14:1604:14 | c [element 0] | +| array_flow.rb:1598:10:1598:22 | call to source | array_flow.rb:1598:5:1598:5 | c [element 0] | +| array_flow.rb:1599:5:1599:5 | d [element 0, element 2] | array_flow.rb:1601:10:1601:10 | d [element 0, element 2] | +| array_flow.rb:1599:5:1599:5 | d [element 1, element 1] | array_flow.rb:1602:10:1602:10 | d [element 1, element 1] | +| array_flow.rb:1599:5:1599:5 | d [element 2, element 0] | array_flow.rb:1603:10:1603:10 | d [element 2, element 0] | +| array_flow.rb:1599:9:1599:9 | a [element 2] | array_flow.rb:1599:9:1599:19 | call to zip [element 2, element 0] | +| array_flow.rb:1599:9:1599:19 | call to zip [element 0, element 2] | array_flow.rb:1599:5:1599:5 | d [element 0, element 2] | +| array_flow.rb:1599:9:1599:19 | call to zip [element 1, element 1] | array_flow.rb:1599:5:1599:5 | d [element 1, element 1] | +| array_flow.rb:1599:9:1599:19 | call to zip [element 2, element 0] | array_flow.rb:1599:5:1599:5 | d [element 2, element 0] | +| array_flow.rb:1599:15:1599:15 | b [element 1] | array_flow.rb:1599:9:1599:19 | call to zip [element 1, element 1] | +| array_flow.rb:1599:18:1599:18 | c [element 0] | array_flow.rb:1599:9:1599:19 | call to zip [element 0, element 2] | +| array_flow.rb:1601:10:1601:10 | d [element 0, element 2] | array_flow.rb:1601:10:1601:13 | ...[...] [element 2] | +| array_flow.rb:1601:10:1601:13 | ...[...] [element 2] | array_flow.rb:1601:10:1601:16 | ...[...] | +| array_flow.rb:1602:10:1602:10 | d [element 1, element 1] | array_flow.rb:1602:10:1602:13 | ...[...] [element 1] | +| array_flow.rb:1602:10:1602:13 | ...[...] [element 1] | array_flow.rb:1602:10:1602:16 | ...[...] | +| array_flow.rb:1603:10:1603:10 | d [element 2, element 0] | array_flow.rb:1603:10:1603:13 | ...[...] [element 0] | +| array_flow.rb:1603:10:1603:13 | ...[...] [element 0] | array_flow.rb:1603:10:1603:16 | ...[...] | +| array_flow.rb:1604:5:1604:5 | a [element 2] | array_flow.rb:1604:21:1604:21 | x [element 0] | +| array_flow.rb:1604:11:1604:11 | b [element 1] | array_flow.rb:1604:21:1604:21 | x [element 1] | +| array_flow.rb:1604:14:1604:14 | c [element 0] | array_flow.rb:1604:21:1604:21 | x [element 2] | +| array_flow.rb:1604:21:1604:21 | x [element 0] | array_flow.rb:1605:14:1605:14 | x [element 0] | +| array_flow.rb:1604:21:1604:21 | x [element 1] | array_flow.rb:1606:14:1606:14 | x [element 1] | +| array_flow.rb:1604:21:1604:21 | x [element 2] | array_flow.rb:1607:14:1607:14 | x [element 2] | +| array_flow.rb:1605:14:1605:14 | x [element 0] | array_flow.rb:1605:14:1605:17 | ...[...] | +| array_flow.rb:1606:14:1606:14 | x [element 1] | array_flow.rb:1606:14:1606:17 | ...[...] | +| array_flow.rb:1607:14:1607:14 | x [element 2] | array_flow.rb:1607:14:1607:17 | ...[...] | +| array_flow.rb:1612:5:1612:5 | a [element 2] | array_flow.rb:1614:9:1614:9 | a [element 2] | +| array_flow.rb:1612:16:1612:28 | call to source | array_flow.rb:1612:5:1612:5 | a [element 2] | +| array_flow.rb:1613:5:1613:5 | b [element 1] | array_flow.rb:1614:13:1614:13 | b [element 1] | +| array_flow.rb:1613:13:1613:25 | call to source | array_flow.rb:1613:5:1613:5 | b [element 1] | +| array_flow.rb:1614:5:1614:5 | c [element] | array_flow.rb:1615:10:1615:10 | c [element] | +| array_flow.rb:1614:5:1614:5 | c [element] | array_flow.rb:1616:10:1616:10 | c [element] | +| array_flow.rb:1614:5:1614:5 | c [element] | array_flow.rb:1617:10:1617:10 | c [element] | +| array_flow.rb:1614:9:1614:9 | a [element 2] | array_flow.rb:1614:9:1614:13 | ... \| ... [element] | +| array_flow.rb:1614:9:1614:13 | ... \| ... [element] | array_flow.rb:1614:5:1614:5 | c [element] | +| array_flow.rb:1614:13:1614:13 | b [element 1] | array_flow.rb:1614:9:1614:13 | ... \| ... [element] | | array_flow.rb:1615:10:1615:10 | c [element] | array_flow.rb:1615:10:1615:13 | ...[...] | | array_flow.rb:1616:10:1616:10 | c [element] | array_flow.rb:1616:10:1616:13 | ...[...] | -| array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | array_flow.rb:1622:10:1622:10 | a [element, element 0] | -| array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | array_flow.rb:1625:10:1625:10 | a [element, element 0] | -| array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | array_flow.rb:1626:10:1626:10 | a [element, element 0] | -| array_flow.rb:1621:5:1621:8 | [post] ...[...] [element 0] | array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | -| array_flow.rb:1621:15:1621:27 | call to source | array_flow.rb:1621:5:1621:8 | [post] ...[...] [element 0] | -| array_flow.rb:1622:10:1622:10 | a [element, element 0] | array_flow.rb:1622:10:1622:13 | ...[...] [element 0] | -| array_flow.rb:1622:10:1622:13 | ...[...] [element 0] | array_flow.rb:1622:10:1622:16 | ...[...] | -| array_flow.rb:1624:5:1624:5 | [post] a [element 1, element 0] | array_flow.rb:1625:10:1625:10 | a [element 1, element 0] | -| array_flow.rb:1624:5:1624:8 | [post] ...[...] [element 0] | array_flow.rb:1624:5:1624:5 | [post] a [element 1, element 0] | -| array_flow.rb:1624:15:1624:27 | call to source | array_flow.rb:1624:5:1624:8 | [post] ...[...] [element 0] | -| array_flow.rb:1625:10:1625:10 | a [element 1, element 0] | array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | -| array_flow.rb:1625:10:1625:10 | a [element, element 0] | array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | -| array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | array_flow.rb:1625:10:1625:16 | ...[...] | +| array_flow.rb:1617:10:1617:10 | c [element] | array_flow.rb:1617:10:1617:13 | ...[...] | +| array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | array_flow.rb:1623:10:1623:10 | a [element, element 0] | +| array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | array_flow.rb:1626:10:1626:10 | a [element, element 0] | +| array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | array_flow.rb:1627:10:1627:10 | a [element, element 0] | +| array_flow.rb:1622:5:1622:8 | [post] ...[...] [element 0] | array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | +| array_flow.rb:1622:15:1622:27 | call to source | array_flow.rb:1622:5:1622:8 | [post] ...[...] [element 0] | +| array_flow.rb:1623:10:1623:10 | a [element, element 0] | array_flow.rb:1623:10:1623:13 | ...[...] [element 0] | +| array_flow.rb:1623:10:1623:13 | ...[...] [element 0] | array_flow.rb:1623:10:1623:16 | ...[...] | +| array_flow.rb:1625:5:1625:5 | [post] a [element 1, element 0] | array_flow.rb:1626:10:1626:10 | a [element 1, element 0] | +| array_flow.rb:1625:5:1625:8 | [post] ...[...] [element 0] | array_flow.rb:1625:5:1625:5 | [post] a [element 1, element 0] | +| array_flow.rb:1625:15:1625:27 | call to source | array_flow.rb:1625:5:1625:8 | [post] ...[...] [element 0] | +| array_flow.rb:1626:10:1626:10 | a [element 1, element 0] | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | | array_flow.rb:1626:10:1626:10 | a [element, element 0] | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | array_flow.rb:1626:10:1626:16 | ...[...] | -| array_flow.rb:1631:5:1631:5 | [post] a [element 0] | array_flow.rb:1640:10:1640:10 | a [element 0] | -| array_flow.rb:1631:5:1631:5 | [post] a [element 0] | array_flow.rb:1642:10:1642:10 | a [element 0] | -| array_flow.rb:1631:12:1631:24 | call to source | array_flow.rb:1631:5:1631:5 | [post] a [element 0] | -| array_flow.rb:1633:5:1633:5 | [post] a [element] | array_flow.rb:1638:10:1638:10 | a [element] | -| array_flow.rb:1633:5:1633:5 | [post] a [element] | array_flow.rb:1640:10:1640:10 | a [element] | -| array_flow.rb:1633:5:1633:5 | [post] a [element] | array_flow.rb:1642:10:1642:10 | a [element] | -| array_flow.rb:1633:16:1633:28 | call to source | array_flow.rb:1633:5:1633:5 | [post] a [element] | -| array_flow.rb:1635:5:1635:5 | [post] a [element] | array_flow.rb:1638:10:1638:10 | a [element] | -| array_flow.rb:1635:5:1635:5 | [post] a [element] | array_flow.rb:1640:10:1640:10 | a [element] | -| array_flow.rb:1635:5:1635:5 | [post] a [element] | array_flow.rb:1642:10:1642:10 | a [element] | -| array_flow.rb:1635:14:1635:26 | call to source | array_flow.rb:1635:5:1635:5 | [post] a [element] | -| array_flow.rb:1637:5:1637:5 | [post] a [element] | array_flow.rb:1638:10:1638:10 | a [element] | -| array_flow.rb:1637:5:1637:5 | [post] a [element] | array_flow.rb:1640:10:1640:10 | a [element] | -| array_flow.rb:1637:5:1637:5 | [post] a [element] | array_flow.rb:1642:10:1642:10 | a [element] | -| array_flow.rb:1637:16:1637:28 | call to source | array_flow.rb:1637:5:1637:5 | [post] a [element] | -| array_flow.rb:1638:10:1638:10 | a [element] | array_flow.rb:1638:10:1638:13 | ...[...] | -| array_flow.rb:1640:10:1640:10 | a [element 0] | array_flow.rb:1640:10:1640:17 | ...[...] | -| array_flow.rb:1640:10:1640:10 | a [element] | array_flow.rb:1640:10:1640:17 | ...[...] | -| array_flow.rb:1642:10:1642:10 | a [element 0] | array_flow.rb:1642:10:1642:15 | ...[...] | -| array_flow.rb:1642:10:1642:10 | a [element] | array_flow.rb:1642:10:1642:15 | ...[...] | +| array_flow.rb:1627:10:1627:10 | a [element, element 0] | array_flow.rb:1627:10:1627:13 | ...[...] [element 0] | +| array_flow.rb:1627:10:1627:13 | ...[...] [element 0] | array_flow.rb:1627:10:1627:16 | ...[...] | +| array_flow.rb:1632:5:1632:5 | [post] a [element 0] | array_flow.rb:1641:10:1641:10 | a [element 0] | +| array_flow.rb:1632:5:1632:5 | [post] a [element 0] | array_flow.rb:1643:10:1643:10 | a [element 0] | +| array_flow.rb:1632:12:1632:24 | call to source | array_flow.rb:1632:5:1632:5 | [post] a [element 0] | +| array_flow.rb:1634:5:1634:5 | [post] a [element] | array_flow.rb:1639:10:1639:10 | a [element] | +| array_flow.rb:1634:5:1634:5 | [post] a [element] | array_flow.rb:1641:10:1641:10 | a [element] | +| array_flow.rb:1634:5:1634:5 | [post] a [element] | array_flow.rb:1643:10:1643:10 | a [element] | +| array_flow.rb:1634:16:1634:28 | call to source | array_flow.rb:1634:5:1634:5 | [post] a [element] | +| array_flow.rb:1636:5:1636:5 | [post] a [element] | array_flow.rb:1639:10:1639:10 | a [element] | +| array_flow.rb:1636:5:1636:5 | [post] a [element] | array_flow.rb:1641:10:1641:10 | a [element] | +| array_flow.rb:1636:5:1636:5 | [post] a [element] | array_flow.rb:1643:10:1643:10 | a [element] | +| array_flow.rb:1636:14:1636:26 | call to source | array_flow.rb:1636:5:1636:5 | [post] a [element] | +| array_flow.rb:1638:5:1638:5 | [post] a [element] | array_flow.rb:1639:10:1639:10 | a [element] | +| array_flow.rb:1638:5:1638:5 | [post] a [element] | array_flow.rb:1641:10:1641:10 | a [element] | +| array_flow.rb:1638:5:1638:5 | [post] a [element] | array_flow.rb:1643:10:1643:10 | a [element] | +| array_flow.rb:1638:16:1638:28 | call to source | array_flow.rb:1638:5:1638:5 | [post] a [element] | +| array_flow.rb:1639:10:1639:10 | a [element] | array_flow.rb:1639:10:1639:13 | ...[...] | +| array_flow.rb:1641:10:1641:10 | a [element 0] | array_flow.rb:1641:10:1641:17 | ...[...] | +| array_flow.rb:1641:10:1641:10 | a [element] | array_flow.rb:1641:10:1641:17 | ...[...] | +| array_flow.rb:1643:10:1643:10 | a [element 0] | array_flow.rb:1643:10:1643:15 | ...[...] | +| array_flow.rb:1643:10:1643:10 | a [element] | array_flow.rb:1643:10:1643:15 | ...[...] | nodes | array_flow.rb:2:5:2:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:2:9:2:20 | * ... [element 0] | semmle.label | * ... [element 0] | @@ -3717,646 +3712,642 @@ nodes | array_flow.rb:1211:9:1211:19 | call to slice | semmle.label | call to slice | | array_flow.rb:1212:10:1212:10 | b | semmle.label | b | | array_flow.rb:1214:5:1214:5 | b | semmle.label | b | -| array_flow.rb:1214:5:1214:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1214:9:1214:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1214:9:1214:9 | a [element 4] | semmle.label | a [element 4] | | array_flow.rb:1214:9:1214:17 | call to slice | semmle.label | call to slice | -| array_flow.rb:1214:9:1214:17 | call to slice [element] | semmle.label | call to slice [element] | | array_flow.rb:1216:10:1216:10 | b | semmle.label | b | -| array_flow.rb:1218:10:1218:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1218:10:1218:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1220:5:1220:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1220:5:1220:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1220:9:1220:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1220:9:1220:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1220:9:1220:21 | call to slice [element 0] | semmle.label | call to slice [element 0] | -| array_flow.rb:1220:9:1220:21 | call to slice [element 2] | semmle.label | call to slice [element 2] | -| array_flow.rb:1221:10:1221:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1221:10:1221:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1223:10:1223:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1223:10:1223:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1225:5:1225:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1225:9:1225:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1225:9:1225:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1225:9:1225:21 | call to slice [element] | semmle.label | call to slice [element] | -| array_flow.rb:1226:10:1226:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1226:10:1226:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1221:5:1221:5 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1221:5:1221:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1221:9:1221:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1221:9:1221:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1221:9:1221:21 | call to slice [element 0] | semmle.label | call to slice [element 0] | +| array_flow.rb:1221:9:1221:21 | call to slice [element 2] | semmle.label | call to slice [element 2] | +| array_flow.rb:1222:10:1222:10 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1222:10:1222:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1224:10:1224:10 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1224:10:1224:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1226:5:1226:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1226:9:1226:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1226:9:1226:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1226:9:1226:21 | call to slice [element] | semmle.label | call to slice [element] | | array_flow.rb:1227:10:1227:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1227:10:1227:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1229:5:1229:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1229:9:1229:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1229:9:1229:21 | call to slice [element 0] | semmle.label | call to slice [element 0] | -| array_flow.rb:1230:10:1230:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1230:10:1230:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1234:5:1234:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1234:9:1234:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1234:9:1234:22 | call to slice [element 0] | semmle.label | call to slice [element 0] | -| array_flow.rb:1235:10:1235:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1235:10:1235:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1239:5:1239:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1239:9:1239:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1239:9:1239:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1239:9:1239:21 | call to slice [element] | semmle.label | call to slice [element] | -| array_flow.rb:1240:10:1240:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1240:10:1240:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1228:10:1228:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1228:10:1228:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1230:5:1230:5 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1230:9:1230:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1230:9:1230:21 | call to slice [element 0] | semmle.label | call to slice [element 0] | +| array_flow.rb:1231:10:1231:10 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1231:10:1231:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1235:5:1235:5 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1235:9:1235:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1235:9:1235:22 | call to slice [element 0] | semmle.label | call to slice [element 0] | +| array_flow.rb:1236:10:1236:10 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1236:10:1236:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1240:5:1240:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1240:9:1240:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1240:9:1240:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1240:9:1240:21 | call to slice [element] | semmle.label | call to slice [element] | | array_flow.rb:1241:10:1241:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1241:10:1241:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1243:5:1243:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1243:9:1243:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1243:9:1243:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1243:9:1243:24 | call to slice [element] | semmle.label | call to slice [element] | -| array_flow.rb:1244:10:1244:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1244:10:1244:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1242:10:1242:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1242:10:1242:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1244:5:1244:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1244:9:1244:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1244:9:1244:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1244:9:1244:24 | call to slice [element] | semmle.label | call to slice [element] | | array_flow.rb:1245:10:1245:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1245:10:1245:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1247:5:1247:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1247:9:1247:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1247:9:1247:20 | call to slice [element 2] | semmle.label | call to slice [element 2] | -| array_flow.rb:1250:10:1250:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1250:10:1250:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1252:5:1252:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1252:9:1252:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1252:9:1252:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1252:9:1252:20 | call to slice [element] | semmle.label | call to slice [element] | -| array_flow.rb:1253:10:1253:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1253:10:1253:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1246:10:1246:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1246:10:1246:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1248:5:1248:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1248:9:1248:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1248:9:1248:20 | call to slice [element 2] | semmle.label | call to slice [element 2] | +| array_flow.rb:1251:10:1251:10 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1251:10:1251:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1253:5:1253:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1253:9:1253:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1253:9:1253:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1253:9:1253:20 | call to slice [element] | semmle.label | call to slice [element] | | array_flow.rb:1254:10:1254:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1254:10:1254:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1255:10:1255:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1255:10:1255:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1259:5:1259:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1259:5:1259:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1259:16:1259:28 | call to source | semmle.label | call to source | -| array_flow.rb:1259:34:1259:46 | call to source | semmle.label | call to source | -| array_flow.rb:1260:5:1260:5 | b | semmle.label | b | -| array_flow.rb:1260:9:1260:9 | [post] a [element 3] | semmle.label | [post] a [element 3] | -| array_flow.rb:1260:9:1260:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1260:9:1260:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1260:9:1260:19 | call to slice! | semmle.label | call to slice! | -| array_flow.rb:1261:10:1261:10 | b | semmle.label | b | -| array_flow.rb:1265:10:1265:10 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1265:10:1265:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1267:5:1267:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1267:5:1267:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1267:16:1267:28 | call to source | semmle.label | call to source | -| array_flow.rb:1267:34:1267:46 | call to source | semmle.label | call to source | -| array_flow.rb:1268:5:1268:5 | b | semmle.label | b | -| array_flow.rb:1268:5:1268:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1268:9:1268:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1268:9:1268:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1268:9:1268:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1268:9:1268:19 | call to slice! | semmle.label | call to slice! | -| array_flow.rb:1268:9:1268:19 | call to slice! [element] | semmle.label | call to slice! [element] | -| array_flow.rb:1269:10:1269:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1269:10:1269:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1256:10:1256:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1256:10:1256:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1260:5:1260:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1260:5:1260:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1260:16:1260:28 | call to source | semmle.label | call to source | +| array_flow.rb:1260:34:1260:46 | call to source | semmle.label | call to source | +| array_flow.rb:1261:5:1261:5 | b | semmle.label | b | +| array_flow.rb:1261:9:1261:9 | [post] a [element 3] | semmle.label | [post] a [element 3] | +| array_flow.rb:1261:9:1261:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1261:9:1261:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1261:9:1261:19 | call to slice! | semmle.label | call to slice! | +| array_flow.rb:1262:10:1262:10 | b | semmle.label | b | +| array_flow.rb:1266:10:1266:10 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1266:10:1266:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1268:5:1268:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1268:5:1268:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1268:16:1268:28 | call to source | semmle.label | call to source | +| array_flow.rb:1268:34:1268:46 | call to source | semmle.label | call to source | +| array_flow.rb:1269:5:1269:5 | b | semmle.label | b | +| array_flow.rb:1269:5:1269:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1269:9:1269:9 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1269:9:1269:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1269:9:1269:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1269:9:1269:19 | call to slice! | semmle.label | call to slice! | +| array_flow.rb:1269:9:1269:19 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1270:10:1270:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1270:10:1270:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1271:10:1271:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1271:10:1271:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1272:10:1272:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1272:10:1272:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1274:10:1274:10 | b | semmle.label | b | -| array_flow.rb:1276:10:1276:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1276:10:1276:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1278:5:1278:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1278:5:1278:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1278:16:1278:28 | call to source | semmle.label | call to source | -| array_flow.rb:1278:34:1278:46 | call to source | semmle.label | call to source | -| array_flow.rb:1279:5:1279:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1279:5:1279:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1279:9:1279:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1279:9:1279:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1279:9:1279:22 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | -| array_flow.rb:1279:9:1279:22 | call to slice! [element 2] | semmle.label | call to slice! [element 2] | -| array_flow.rb:1280:10:1280:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1280:10:1280:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1282:10:1282:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1282:10:1282:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1289:5:1289:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1289:5:1289:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1289:16:1289:28 | call to source | semmle.label | call to source | -| array_flow.rb:1289:34:1289:46 | call to source | semmle.label | call to source | -| array_flow.rb:1290:5:1290:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1290:9:1290:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1290:9:1290:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1290:9:1290:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1290:9:1290:22 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | -| array_flow.rb:1291:10:1291:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1291:10:1291:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1296:10:1296:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1296:10:1296:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1300:5:1300:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1300:5:1300:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1300:16:1300:28 | call to source | semmle.label | call to source | -| array_flow.rb:1300:34:1300:46 | call to source | semmle.label | call to source | -| array_flow.rb:1301:5:1301:5 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1301:9:1301:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1301:9:1301:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1301:9:1301:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1301:9:1301:23 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | -| array_flow.rb:1302:10:1302:10 | b [element 0] | semmle.label | b [element 0] | -| array_flow.rb:1302:10:1302:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1307:10:1307:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1307:10:1307:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1311:5:1311:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1311:5:1311:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1311:16:1311:28 | call to source | semmle.label | call to source | -| array_flow.rb:1311:34:1311:46 | call to source | semmle.label | call to source | -| array_flow.rb:1312:5:1312:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1312:9:1312:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1312:9:1312:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1312:9:1312:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1312:9:1312:22 | call to slice! [element] | semmle.label | call to slice! [element] | -| array_flow.rb:1313:10:1313:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1313:10:1313:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1273:10:1273:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1273:10:1273:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1275:10:1275:10 | b | semmle.label | b | +| array_flow.rb:1277:10:1277:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1277:10:1277:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1279:5:1279:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1279:5:1279:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1279:16:1279:28 | call to source | semmle.label | call to source | +| array_flow.rb:1279:34:1279:46 | call to source | semmle.label | call to source | +| array_flow.rb:1280:5:1280:5 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1280:5:1280:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1280:9:1280:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1280:9:1280:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1280:9:1280:22 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | +| array_flow.rb:1280:9:1280:22 | call to slice! [element 2] | semmle.label | call to slice! [element 2] | +| array_flow.rb:1281:10:1281:10 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1281:10:1281:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1283:10:1283:10 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1283:10:1283:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1290:5:1290:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1290:5:1290:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1290:16:1290:28 | call to source | semmle.label | call to source | +| array_flow.rb:1290:34:1290:46 | call to source | semmle.label | call to source | +| array_flow.rb:1291:5:1291:5 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1291:9:1291:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | +| array_flow.rb:1291:9:1291:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1291:9:1291:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1291:9:1291:22 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | +| array_flow.rb:1292:10:1292:10 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1292:10:1292:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1297:10:1297:10 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1297:10:1297:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1301:5:1301:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1301:5:1301:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1301:16:1301:28 | call to source | semmle.label | call to source | +| array_flow.rb:1301:34:1301:46 | call to source | semmle.label | call to source | +| array_flow.rb:1302:5:1302:5 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1302:9:1302:9 | [post] a [element 2] | semmle.label | [post] a [element 2] | +| array_flow.rb:1302:9:1302:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1302:9:1302:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1302:9:1302:23 | call to slice! [element 0] | semmle.label | call to slice! [element 0] | +| array_flow.rb:1303:10:1303:10 | b [element 0] | semmle.label | b [element 0] | +| array_flow.rb:1303:10:1303:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1308:10:1308:10 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1308:10:1308:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1312:5:1312:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1312:5:1312:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1312:16:1312:28 | call to source | semmle.label | call to source | +| array_flow.rb:1312:34:1312:46 | call to source | semmle.label | call to source | +| array_flow.rb:1313:5:1313:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1313:9:1313:9 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1313:9:1313:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1313:9:1313:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1313:9:1313:22 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1314:10:1314:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1314:10:1314:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1315:10:1315:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1315:10:1315:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1316:10:1316:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1316:10:1316:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1316:10:1316:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1317:10:1317:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1317:10:1317:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1318:10:1318:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1318:10:1318:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1320:5:1320:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1320:5:1320:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1320:16:1320:28 | call to source | semmle.label | call to source | -| array_flow.rb:1320:34:1320:46 | call to source | semmle.label | call to source | -| array_flow.rb:1321:5:1321:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1321:9:1321:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1321:9:1321:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1321:9:1321:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1321:9:1321:22 | call to slice! [element] | semmle.label | call to slice! [element] | -| array_flow.rb:1322:10:1322:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1322:10:1322:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1319:10:1319:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1319:10:1319:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1321:5:1321:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1321:5:1321:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1321:16:1321:28 | call to source | semmle.label | call to source | +| array_flow.rb:1321:34:1321:46 | call to source | semmle.label | call to source | +| array_flow.rb:1322:5:1322:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1322:9:1322:9 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1322:9:1322:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1322:9:1322:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1322:9:1322:22 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1323:10:1323:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1323:10:1323:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1324:10:1324:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1324:10:1324:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1325:10:1325:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1325:10:1325:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1325:10:1325:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1326:10:1326:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1326:10:1326:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1327:10:1327:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1327:10:1327:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1329:5:1329:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1329:5:1329:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1329:16:1329:28 | call to source | semmle.label | call to source | -| array_flow.rb:1329:34:1329:46 | call to source | semmle.label | call to source | -| array_flow.rb:1330:5:1330:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1330:9:1330:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1330:9:1330:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1330:9:1330:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1330:9:1330:25 | call to slice! [element] | semmle.label | call to slice! [element] | -| array_flow.rb:1331:10:1331:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1331:10:1331:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1328:10:1328:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1328:10:1328:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1330:5:1330:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1330:5:1330:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1330:16:1330:28 | call to source | semmle.label | call to source | +| array_flow.rb:1330:34:1330:46 | call to source | semmle.label | call to source | +| array_flow.rb:1331:5:1331:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1331:9:1331:9 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1331:9:1331:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1331:9:1331:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1331:9:1331:25 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1332:10:1332:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1332:10:1332:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1333:10:1333:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1333:10:1333:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1334:10:1334:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1334:10:1334:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1334:10:1334:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1335:10:1335:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1335:10:1335:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1336:10:1336:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1336:10:1336:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1338:5:1338:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1338:5:1338:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1338:16:1338:28 | call to source | semmle.label | call to source | -| array_flow.rb:1338:34:1338:46 | call to source | semmle.label | call to source | -| array_flow.rb:1339:5:1339:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1339:9:1339:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | -| array_flow.rb:1339:9:1339:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1339:9:1339:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1339:9:1339:21 | call to slice! [element 2] | semmle.label | call to slice! [element 2] | -| array_flow.rb:1342:10:1342:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1342:10:1342:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1344:10:1344:10 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1344:10:1344:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1347:5:1347:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1347:5:1347:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1347:16:1347:28 | call to source | semmle.label | call to source | -| array_flow.rb:1347:34:1347:46 | call to source | semmle.label | call to source | -| array_flow.rb:1348:5:1348:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1348:9:1348:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1348:9:1348:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1348:9:1348:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1348:9:1348:21 | call to slice! [element] | semmle.label | call to slice! [element] | -| array_flow.rb:1349:10:1349:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1349:10:1349:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1337:10:1337:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1337:10:1337:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1339:5:1339:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1339:5:1339:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1339:16:1339:28 | call to source | semmle.label | call to source | +| array_flow.rb:1339:34:1339:46 | call to source | semmle.label | call to source | +| array_flow.rb:1340:5:1340:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1340:9:1340:9 | [post] a [element 1] | semmle.label | [post] a [element 1] | +| array_flow.rb:1340:9:1340:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1340:9:1340:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1340:9:1340:21 | call to slice! [element 2] | semmle.label | call to slice! [element 2] | +| array_flow.rb:1343:10:1343:10 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1343:10:1343:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1345:10:1345:10 | a [element 1] | semmle.label | a [element 1] | +| array_flow.rb:1345:10:1345:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1348:5:1348:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1348:5:1348:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1348:16:1348:28 | call to source | semmle.label | call to source | +| array_flow.rb:1348:34:1348:46 | call to source | semmle.label | call to source | +| array_flow.rb:1349:5:1349:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1349:9:1349:9 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1349:9:1349:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1349:9:1349:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1349:9:1349:21 | call to slice! [element] | semmle.label | call to slice! [element] | | array_flow.rb:1350:10:1350:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1350:10:1350:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1351:10:1351:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1351:10:1351:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1352:10:1352:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1352:10:1352:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1352:10:1352:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1353:10:1353:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1353:10:1353:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1354:10:1354:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1354:10:1354:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1358:5:1358:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1358:16:1358:26 | call to source | semmle.label | call to source | -| array_flow.rb:1359:9:1359:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1359:27:1359:27 | x | semmle.label | x | -| array_flow.rb:1360:14:1360:14 | x | semmle.label | x | -| array_flow.rb:1366:5:1366:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1366:16:1366:26 | call to source | semmle.label | call to source | -| array_flow.rb:1367:9:1367:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1367:28:1367:28 | x | semmle.label | x | -| array_flow.rb:1368:14:1368:14 | x | semmle.label | x | -| array_flow.rb:1374:5:1374:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1374:16:1374:26 | call to source | semmle.label | call to source | -| array_flow.rb:1375:9:1375:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1375:26:1375:26 | x | semmle.label | x | -| array_flow.rb:1375:29:1375:29 | y | semmle.label | y | -| array_flow.rb:1376:14:1376:14 | x | semmle.label | x | -| array_flow.rb:1377:14:1377:14 | y | semmle.label | y | -| array_flow.rb:1382:5:1382:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1382:16:1382:26 | call to source | semmle.label | call to source | -| array_flow.rb:1383:5:1383:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1383:9:1383:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1383:9:1383:14 | call to sort [element] | semmle.label | call to sort [element] | -| array_flow.rb:1384:10:1384:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1384:10:1384:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1355:10:1355:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1355:10:1355:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1359:5:1359:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1359:16:1359:26 | call to source | semmle.label | call to source | +| array_flow.rb:1360:9:1360:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1360:27:1360:27 | x | semmle.label | x | +| array_flow.rb:1361:14:1361:14 | x | semmle.label | x | +| array_flow.rb:1367:5:1367:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1367:16:1367:26 | call to source | semmle.label | call to source | +| array_flow.rb:1368:9:1368:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1368:28:1368:28 | x | semmle.label | x | +| array_flow.rb:1369:14:1369:14 | x | semmle.label | x | +| array_flow.rb:1375:5:1375:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1375:16:1375:26 | call to source | semmle.label | call to source | +| array_flow.rb:1376:9:1376:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1376:26:1376:26 | x | semmle.label | x | +| array_flow.rb:1376:29:1376:29 | y | semmle.label | y | +| array_flow.rb:1377:14:1377:14 | x | semmle.label | x | +| array_flow.rb:1378:14:1378:14 | y | semmle.label | y | +| array_flow.rb:1383:5:1383:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1383:16:1383:26 | call to source | semmle.label | call to source | +| array_flow.rb:1384:5:1384:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1384:9:1384:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1384:9:1384:14 | call to sort [element] | semmle.label | call to sort [element] | | array_flow.rb:1385:10:1385:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1385:10:1385:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1386:5:1386:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:1386:9:1386:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1386:9:1390:7 | call to sort [element] | semmle.label | call to sort [element] | -| array_flow.rb:1386:20:1386:20 | x | semmle.label | x | -| array_flow.rb:1386:23:1386:23 | y | semmle.label | y | -| array_flow.rb:1387:14:1387:14 | x | semmle.label | x | -| array_flow.rb:1388:14:1388:14 | y | semmle.label | y | -| array_flow.rb:1391:10:1391:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1391:10:1391:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1386:10:1386:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1386:10:1386:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1387:5:1387:5 | c [element] | semmle.label | c [element] | +| array_flow.rb:1387:9:1387:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1387:9:1391:7 | call to sort [element] | semmle.label | call to sort [element] | +| array_flow.rb:1387:20:1387:20 | x | semmle.label | x | +| array_flow.rb:1387:23:1387:23 | y | semmle.label | y | +| array_flow.rb:1388:14:1388:14 | x | semmle.label | x | +| array_flow.rb:1389:14:1389:14 | y | semmle.label | y | | array_flow.rb:1392:10:1392:10 | c [element] | semmle.label | c [element] | | array_flow.rb:1392:10:1392:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1396:5:1396:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1396:16:1396:26 | call to source | semmle.label | call to source | -| array_flow.rb:1397:5:1397:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1397:9:1397:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1397:9:1397:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1397:9:1397:15 | call to sort! [element] | semmle.label | call to sort! [element] | -| array_flow.rb:1398:10:1398:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1398:10:1398:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1393:10:1393:10 | c [element] | semmle.label | c [element] | +| array_flow.rb:1393:10:1393:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1397:5:1397:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1397:16:1397:26 | call to source | semmle.label | call to source | +| array_flow.rb:1398:5:1398:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1398:9:1398:9 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1398:9:1398:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1398:9:1398:15 | call to sort! [element] | semmle.label | call to sort! [element] | | array_flow.rb:1399:10:1399:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1399:10:1399:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1400:10:1400:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1400:10:1400:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1400:10:1400:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1401:10:1401:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1401:10:1401:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1403:5:1403:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1403:16:1403:26 | call to source | semmle.label | call to source | -| array_flow.rb:1404:5:1404:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1404:9:1404:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1404:9:1404:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1404:9:1408:7 | call to sort! [element] | semmle.label | call to sort! [element] | -| array_flow.rb:1404:21:1404:21 | x | semmle.label | x | -| array_flow.rb:1404:24:1404:24 | y | semmle.label | y | -| array_flow.rb:1405:14:1405:14 | x | semmle.label | x | -| array_flow.rb:1406:14:1406:14 | y | semmle.label | y | -| array_flow.rb:1409:10:1409:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1409:10:1409:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1402:10:1402:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1402:10:1402:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1404:5:1404:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1404:16:1404:26 | call to source | semmle.label | call to source | +| array_flow.rb:1405:5:1405:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1405:9:1405:9 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1405:9:1405:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1405:9:1409:7 | call to sort! [element] | semmle.label | call to sort! [element] | +| array_flow.rb:1405:21:1405:21 | x | semmle.label | x | +| array_flow.rb:1405:24:1405:24 | y | semmle.label | y | +| array_flow.rb:1406:14:1406:14 | x | semmle.label | x | +| array_flow.rb:1407:14:1407:14 | y | semmle.label | y | | array_flow.rb:1410:10:1410:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1410:10:1410:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1411:10:1411:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1411:10:1411:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1411:10:1411:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1412:10:1412:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1412:10:1412:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1416:5:1416:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1416:16:1416:26 | call to source | semmle.label | call to source | -| array_flow.rb:1417:5:1417:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1417:9:1417:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1417:9:1420:7 | call to sort_by [element] | semmle.label | call to sort_by [element] | -| array_flow.rb:1417:23:1417:23 | x | semmle.label | x | -| array_flow.rb:1418:14:1418:14 | x | semmle.label | x | -| array_flow.rb:1421:10:1421:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1421:10:1421:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1413:10:1413:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1413:10:1413:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1417:5:1417:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1417:16:1417:26 | call to source | semmle.label | call to source | +| array_flow.rb:1418:5:1418:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1418:9:1418:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1418:9:1421:7 | call to sort_by [element] | semmle.label | call to sort_by [element] | +| array_flow.rb:1418:23:1418:23 | x | semmle.label | x | +| array_flow.rb:1419:14:1419:14 | x | semmle.label | x | | array_flow.rb:1422:10:1422:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1422:10:1422:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1426:5:1426:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1426:16:1426:26 | call to source | semmle.label | call to source | -| array_flow.rb:1427:5:1427:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1427:9:1427:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1427:9:1427:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1427:9:1430:7 | call to sort_by! [element] | semmle.label | call to sort_by! [element] | -| array_flow.rb:1427:24:1427:24 | x | semmle.label | x | -| array_flow.rb:1428:14:1428:14 | x | semmle.label | x | -| array_flow.rb:1431:10:1431:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1431:10:1431:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1423:10:1423:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1423:10:1423:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1427:5:1427:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1427:16:1427:26 | call to source | semmle.label | call to source | +| array_flow.rb:1428:5:1428:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1428:9:1428:9 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1428:9:1428:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1428:9:1431:7 | call to sort_by! [element] | semmle.label | call to sort_by! [element] | +| array_flow.rb:1428:24:1428:24 | x | semmle.label | x | +| array_flow.rb:1429:14:1429:14 | x | semmle.label | x | | array_flow.rb:1432:10:1432:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1432:10:1432:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1433:10:1433:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1433:10:1433:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1433:10:1433:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1434:10:1434:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1434:10:1434:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1438:5:1438:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1438:16:1438:26 | call to source | semmle.label | call to source | -| array_flow.rb:1439:9:1439:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1439:19:1439:19 | x | semmle.label | x | -| array_flow.rb:1440:14:1440:14 | x | semmle.label | x | -| array_flow.rb:1446:5:1446:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1446:5:1446:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1446:16:1446:28 | call to source | semmle.label | call to source | -| array_flow.rb:1446:31:1446:43 | call to source | semmle.label | call to source | -| array_flow.rb:1447:5:1447:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1447:5:1447:5 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1447:9:1447:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1447:9:1447:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1447:9:1447:17 | call to take [element 2] | semmle.label | call to take [element 2] | -| array_flow.rb:1447:9:1447:17 | call to take [element 3] | semmle.label | call to take [element 3] | -| array_flow.rb:1450:10:1450:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1450:10:1450:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1451:10:1451:10 | b [element 3] | semmle.label | b [element 3] | +| array_flow.rb:1435:10:1435:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1435:10:1435:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1439:5:1439:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1439:16:1439:26 | call to source | semmle.label | call to source | +| array_flow.rb:1440:9:1440:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1440:19:1440:19 | x | semmle.label | x | +| array_flow.rb:1441:14:1441:14 | x | semmle.label | x | +| array_flow.rb:1447:5:1447:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1447:5:1447:5 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1447:16:1447:28 | call to source | semmle.label | call to source | +| array_flow.rb:1447:31:1447:43 | call to source | semmle.label | call to source | +| array_flow.rb:1448:5:1448:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1448:5:1448:5 | b [element 3] | semmle.label | b [element 3] | +| array_flow.rb:1448:9:1448:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1448:9:1448:9 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1448:9:1448:17 | call to take [element 2] | semmle.label | call to take [element 2] | +| array_flow.rb:1448:9:1448:17 | call to take [element 3] | semmle.label | call to take [element 3] | +| array_flow.rb:1451:10:1451:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1451:10:1451:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1452:5:1452:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1452:9:1452:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1452:9:1452:17 | call to take [element 2] | semmle.label | call to take [element 2] | -| array_flow.rb:1455:10:1455:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1455:10:1455:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1457:10:1457:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1457:10:1457:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1458:5:1458:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1458:5:1458:5 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1458:9:1458:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1458:9:1458:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1458:9:1458:19 | call to take [element 2] | semmle.label | call to take [element 2] | -| array_flow.rb:1458:9:1458:19 | call to take [element 3] | semmle.label | call to take [element 3] | -| array_flow.rb:1461:10:1461:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1461:10:1461:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1462:10:1462:10 | b [element 3] | semmle.label | b [element 3] | +| array_flow.rb:1452:10:1452:10 | b [element 3] | semmle.label | b [element 3] | +| array_flow.rb:1452:10:1452:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1453:5:1453:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1453:9:1453:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1453:9:1453:17 | call to take [element 2] | semmle.label | call to take [element 2] | +| array_flow.rb:1456:10:1456:10 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1456:10:1456:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1458:10:1458:10 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1458:10:1458:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1459:5:1459:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1459:5:1459:5 | b [element 3] | semmle.label | b [element 3] | +| array_flow.rb:1459:9:1459:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1459:9:1459:9 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1459:9:1459:19 | call to take [element 2] | semmle.label | call to take [element 2] | +| array_flow.rb:1459:9:1459:19 | call to take [element 3] | semmle.label | call to take [element 3] | +| array_flow.rb:1462:10:1462:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1462:10:1462:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1463:10:1463:10 | b [element 2] | semmle.label | b [element 2] | | array_flow.rb:1463:10:1463:10 | b [element 3] | semmle.label | b [element 3] | | array_flow.rb:1463:10:1463:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1464:5:1464:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1464:12:1464:24 | call to source | semmle.label | call to source | -| array_flow.rb:1465:5:1465:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1465:5:1465:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1465:9:1465:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1465:9:1465:9 | a [element] | semmle.label | a [element] | -| array_flow.rb:1465:9:1465:17 | call to take [element 2] | semmle.label | call to take [element 2] | -| array_flow.rb:1465:9:1465:17 | call to take [element] | semmle.label | call to take [element] | -| array_flow.rb:1466:10:1466:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1466:10:1466:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1466:10:1466:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1470:5:1470:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1470:16:1470:26 | call to source | semmle.label | call to source | -| array_flow.rb:1471:5:1471:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1471:9:1471:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1471:9:1474:7 | call to take_while [element 2] | semmle.label | call to take_while [element 2] | -| array_flow.rb:1471:26:1471:26 | x | semmle.label | x | -| array_flow.rb:1472:14:1472:14 | x | semmle.label | x | -| array_flow.rb:1477:10:1477:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1477:10:1477:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1483:5:1483:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1483:19:1483:29 | call to source | semmle.label | call to source | -| array_flow.rb:1484:5:1484:5 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1484:9:1484:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1484:9:1484:14 | call to to_a [element 3] | semmle.label | call to to_a [element 3] | -| array_flow.rb:1485:10:1485:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1485:10:1485:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1489:5:1489:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1489:16:1489:26 | call to source | semmle.label | call to source | -| array_flow.rb:1490:5:1490:5 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1490:9:1490:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1490:9:1490:16 | call to to_ary [element 2] | semmle.label | call to to_ary [element 2] | -| array_flow.rb:1493:10:1493:10 | b [element 2] | semmle.label | b [element 2] | -| array_flow.rb:1493:10:1493:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1506:5:1506:5 | a [element 0, element 1] | semmle.label | a [element 0, element 1] | -| array_flow.rb:1506:5:1506:5 | a [element 1, element 1] | semmle.label | a [element 1, element 1] | -| array_flow.rb:1506:5:1506:5 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | -| array_flow.rb:1506:14:1506:26 | call to source | semmle.label | call to source | -| array_flow.rb:1506:34:1506:46 | call to source | semmle.label | call to source | -| array_flow.rb:1506:54:1506:66 | call to source | semmle.label | call to source | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 0] | semmle.label | b [element 1, element 0] | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 1] | semmle.label | b [element 1, element 1] | -| array_flow.rb:1507:5:1507:5 | b [element 1, element 2] | semmle.label | b [element 1, element 2] | -| array_flow.rb:1507:9:1507:9 | a [element 0, element 1] | semmle.label | a [element 0, element 1] | -| array_flow.rb:1507:9:1507:9 | a [element 1, element 1] | semmle.label | a [element 1, element 1] | -| array_flow.rb:1507:9:1507:9 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 0] | semmle.label | call to transpose [element 1, element 0] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 1] | semmle.label | call to transpose [element 1, element 1] | -| array_flow.rb:1507:9:1507:19 | call to transpose [element 1, element 2] | semmle.label | call to transpose [element 1, element 2] | -| array_flow.rb:1511:10:1511:10 | b [element 1, element 0] | semmle.label | b [element 1, element 0] | -| array_flow.rb:1511:10:1511:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| array_flow.rb:1511:10:1511:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1512:10:1512:10 | b [element 1, element 1] | semmle.label | b [element 1, element 1] | -| array_flow.rb:1512:10:1512:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | +| array_flow.rb:1464:10:1464:10 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1464:10:1464:10 | b [element 3] | semmle.label | b [element 3] | +| array_flow.rb:1464:10:1464:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1465:5:1465:5 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1465:12:1465:24 | call to source | semmle.label | call to source | +| array_flow.rb:1466:5:1466:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1466:5:1466:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1466:9:1466:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1466:9:1466:9 | a [element] | semmle.label | a [element] | +| array_flow.rb:1466:9:1466:17 | call to take [element 2] | semmle.label | call to take [element 2] | +| array_flow.rb:1466:9:1466:17 | call to take [element] | semmle.label | call to take [element] | +| array_flow.rb:1467:10:1467:10 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1467:10:1467:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1467:10:1467:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1471:5:1471:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1471:16:1471:26 | call to source | semmle.label | call to source | +| array_flow.rb:1472:5:1472:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1472:9:1472:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1472:9:1475:7 | call to take_while [element 2] | semmle.label | call to take_while [element 2] | +| array_flow.rb:1472:26:1472:26 | x | semmle.label | x | +| array_flow.rb:1473:14:1473:14 | x | semmle.label | x | +| array_flow.rb:1478:10:1478:10 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1478:10:1478:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1484:5:1484:5 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1484:19:1484:29 | call to source | semmle.label | call to source | +| array_flow.rb:1485:5:1485:5 | b [element 3] | semmle.label | b [element 3] | +| array_flow.rb:1485:9:1485:9 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1485:9:1485:14 | call to to_a [element 3] | semmle.label | call to to_a [element 3] | +| array_flow.rb:1486:10:1486:10 | b [element 3] | semmle.label | b [element 3] | +| array_flow.rb:1486:10:1486:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1490:5:1490:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1490:16:1490:26 | call to source | semmle.label | call to source | +| array_flow.rb:1491:5:1491:5 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1491:9:1491:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1491:9:1491:16 | call to to_ary [element 2] | semmle.label | call to to_ary [element 2] | +| array_flow.rb:1494:10:1494:10 | b [element 2] | semmle.label | b [element 2] | +| array_flow.rb:1494:10:1494:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1507:5:1507:5 | a [element 0, element 1] | semmle.label | a [element 0, element 1] | +| array_flow.rb:1507:5:1507:5 | a [element 1, element 1] | semmle.label | a [element 1, element 1] | +| array_flow.rb:1507:5:1507:5 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | +| array_flow.rb:1507:14:1507:26 | call to source | semmle.label | call to source | +| array_flow.rb:1507:34:1507:46 | call to source | semmle.label | call to source | +| array_flow.rb:1507:54:1507:66 | call to source | semmle.label | call to source | +| array_flow.rb:1508:5:1508:5 | b [element 1, element 0] | semmle.label | b [element 1, element 0] | +| array_flow.rb:1508:5:1508:5 | b [element 1, element 1] | semmle.label | b [element 1, element 1] | +| array_flow.rb:1508:5:1508:5 | b [element 1, element 2] | semmle.label | b [element 1, element 2] | +| array_flow.rb:1508:9:1508:9 | a [element 0, element 1] | semmle.label | a [element 0, element 1] | +| array_flow.rb:1508:9:1508:9 | a [element 1, element 1] | semmle.label | a [element 1, element 1] | +| array_flow.rb:1508:9:1508:9 | a [element 2, element 1] | semmle.label | a [element 2, element 1] | +| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 0] | semmle.label | call to transpose [element 1, element 0] | +| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 1] | semmle.label | call to transpose [element 1, element 1] | +| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 2] | semmle.label | call to transpose [element 1, element 2] | +| array_flow.rb:1512:10:1512:10 | b [element 1, element 0] | semmle.label | b [element 1, element 0] | +| array_flow.rb:1512:10:1512:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | | array_flow.rb:1512:10:1512:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1513:10:1513:10 | b [element 1, element 2] | semmle.label | b [element 1, element 2] | -| array_flow.rb:1513:10:1513:13 | ...[...] [element 2] | semmle.label | ...[...] [element 2] | +| array_flow.rb:1513:10:1513:10 | b [element 1, element 1] | semmle.label | b [element 1, element 1] | +| array_flow.rb:1513:10:1513:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:1513:10:1513:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1517:5:1517:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1517:16:1517:28 | call to source | semmle.label | call to source | -| array_flow.rb:1518:5:1518:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1518:13:1518:25 | call to source | semmle.label | call to source | -| array_flow.rb:1519:5:1519:5 | c [element 1] | semmle.label | c [element 1] | +| array_flow.rb:1514:10:1514:10 | b [element 1, element 2] | semmle.label | b [element 1, element 2] | +| array_flow.rb:1514:10:1514:13 | ...[...] [element 2] | semmle.label | ...[...] [element 2] | +| array_flow.rb:1514:10:1514:16 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1518:5:1518:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1518:16:1518:28 | call to source | semmle.label | call to source | +| array_flow.rb:1519:5:1519:5 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1519:13:1519:25 | call to source | semmle.label | call to source | -| array_flow.rb:1520:5:1520:5 | d [element] | semmle.label | d [element] | -| array_flow.rb:1520:9:1520:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1520:9:1520:21 | call to union [element] | semmle.label | call to union [element] | -| array_flow.rb:1520:17:1520:17 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1520:20:1520:20 | c [element 1] | semmle.label | c [element 1] | -| array_flow.rb:1521:10:1521:10 | d [element] | semmle.label | d [element] | -| array_flow.rb:1521:10:1521:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1520:5:1520:5 | c [element 1] | semmle.label | c [element 1] | +| array_flow.rb:1520:13:1520:25 | call to source | semmle.label | call to source | +| array_flow.rb:1521:5:1521:5 | d [element] | semmle.label | d [element] | +| array_flow.rb:1521:9:1521:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1521:9:1521:21 | call to union [element] | semmle.label | call to union [element] | +| array_flow.rb:1521:17:1521:17 | b [element 1] | semmle.label | b [element 1] | +| array_flow.rb:1521:20:1521:20 | c [element 1] | semmle.label | c [element 1] | | array_flow.rb:1522:10:1522:10 | d [element] | semmle.label | d [element] | | array_flow.rb:1522:10:1522:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1523:10:1523:10 | d [element] | semmle.label | d [element] | | array_flow.rb:1523:10:1523:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1527:5:1527:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1527:5:1527:5 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1527:19:1527:31 | call to source | semmle.label | call to source | -| array_flow.rb:1527:34:1527:46 | call to source | semmle.label | call to source | -| array_flow.rb:1529:5:1529:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1529:9:1529:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1529:9:1529:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1529:9:1529:14 | call to uniq [element] | semmle.label | call to uniq [element] | -| array_flow.rb:1530:10:1530:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1530:10:1530:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1524:10:1524:10 | d [element] | semmle.label | d [element] | +| array_flow.rb:1524:10:1524:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1528:5:1528:5 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1528:5:1528:5 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1528:19:1528:31 | call to source | semmle.label | call to source | +| array_flow.rb:1528:34:1528:46 | call to source | semmle.label | call to source | +| array_flow.rb:1530:5:1530:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1530:9:1530:9 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1530:9:1530:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1530:9:1530:14 | call to uniq [element] | semmle.label | call to uniq [element] | | array_flow.rb:1531:10:1531:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1531:10:1531:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1533:5:1533:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:1533:9:1533:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1533:9:1533:9 | a [element 4] | semmle.label | a [element 4] | -| array_flow.rb:1533:9:1536:7 | call to uniq [element] | semmle.label | call to uniq [element] | -| array_flow.rb:1533:20:1533:20 | x | semmle.label | x | -| array_flow.rb:1534:14:1534:14 | x | semmle.label | x | -| array_flow.rb:1537:10:1537:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1537:10:1537:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1541:5:1541:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1541:5:1541:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1541:16:1541:28 | call to source | semmle.label | call to source | -| array_flow.rb:1541:31:1541:43 | call to source | semmle.label | call to source | -| array_flow.rb:1542:5:1542:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1542:9:1542:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1542:9:1542:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1542:9:1542:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1542:9:1542:15 | call to uniq! [element] | semmle.label | call to uniq! [element] | -| array_flow.rb:1543:10:1543:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1543:10:1543:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1532:10:1532:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1532:10:1532:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1534:5:1534:5 | c [element] | semmle.label | c [element] | +| array_flow.rb:1534:9:1534:9 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1534:9:1534:9 | a [element 4] | semmle.label | a [element 4] | +| array_flow.rb:1534:9:1537:7 | call to uniq [element] | semmle.label | call to uniq [element] | +| array_flow.rb:1534:20:1534:20 | x | semmle.label | x | +| array_flow.rb:1535:14:1535:14 | x | semmle.label | x | +| array_flow.rb:1538:10:1538:10 | c [element] | semmle.label | c [element] | +| array_flow.rb:1538:10:1538:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1542:5:1542:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1542:5:1542:5 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1542:16:1542:28 | call to source | semmle.label | call to source | +| array_flow.rb:1542:31:1542:43 | call to source | semmle.label | call to source | +| array_flow.rb:1543:5:1543:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1543:9:1543:9 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1543:9:1543:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1543:9:1543:9 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1543:9:1543:15 | call to uniq! [element] | semmle.label | call to uniq! [element] | | array_flow.rb:1544:10:1544:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1544:10:1544:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1545:10:1545:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1545:10:1545:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1545:10:1545:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1546:10:1546:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1546:10:1546:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1548:5:1548:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1548:5:1548:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1548:16:1548:28 | call to source | semmle.label | call to source | -| array_flow.rb:1548:31:1548:43 | call to source | semmle.label | call to source | -| array_flow.rb:1549:5:1549:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1549:9:1549:9 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1549:9:1549:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1549:9:1549:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1549:9:1552:7 | call to uniq! [element] | semmle.label | call to uniq! [element] | -| array_flow.rb:1549:21:1549:21 | x | semmle.label | x | -| array_flow.rb:1550:14:1550:14 | x | semmle.label | x | -| array_flow.rb:1553:10:1553:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1553:10:1553:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1547:10:1547:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1547:10:1547:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1549:5:1549:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1549:5:1549:5 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1549:16:1549:28 | call to source | semmle.label | call to source | +| array_flow.rb:1549:31:1549:43 | call to source | semmle.label | call to source | +| array_flow.rb:1550:5:1550:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1550:9:1550:9 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1550:9:1550:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1550:9:1550:9 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1550:9:1553:7 | call to uniq! [element] | semmle.label | call to uniq! [element] | +| array_flow.rb:1550:21:1550:21 | x | semmle.label | x | +| array_flow.rb:1551:14:1551:14 | x | semmle.label | x | | array_flow.rb:1554:10:1554:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1554:10:1554:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1555:10:1555:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1555:10:1555:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1555:10:1555:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1556:10:1556:10 | a [element] | semmle.label | a [element] | | array_flow.rb:1556:10:1556:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1560:5:1560:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1560:16:1560:28 | call to source | semmle.label | call to source | -| array_flow.rb:1561:5:1561:5 | [post] a [element 2] | semmle.label | [post] a [element 2] | -| array_flow.rb:1561:5:1561:5 | [post] a [element 5] | semmle.label | [post] a [element 5] | +| array_flow.rb:1557:10:1557:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1557:10:1557:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1561:5:1561:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1561:21:1561:33 | call to source | semmle.label | call to source | -| array_flow.rb:1564:10:1564:10 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1564:10:1564:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1567:10:1567:10 | a [element 5] | semmle.label | a [element 5] | -| array_flow.rb:1567:10:1567:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1571:5:1571:5 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1571:5:1571:5 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1571:13:1571:25 | call to source | semmle.label | call to source | -| array_flow.rb:1571:31:1571:43 | call to source | semmle.label | call to source | -| array_flow.rb:1573:5:1573:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1573:5:1573:5 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1573:9:1573:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1573:9:1573:31 | call to values_at [element 1] | semmle.label | call to values_at [element 1] | -| array_flow.rb:1573:9:1573:31 | call to values_at [element 3] | semmle.label | call to values_at [element 3] | -| array_flow.rb:1575:10:1575:10 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1575:10:1575:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1577:10:1577:10 | b [element 3] | semmle.label | b [element 3] | -| array_flow.rb:1577:10:1577:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1579:5:1579:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1579:9:1579:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1579:9:1579:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1579:9:1579:25 | call to values_at [element] | semmle.label | call to values_at [element] | -| array_flow.rb:1580:10:1580:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1580:10:1580:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1561:16:1561:28 | call to source | semmle.label | call to source | +| array_flow.rb:1562:5:1562:5 | [post] a [element 2] | semmle.label | [post] a [element 2] | +| array_flow.rb:1562:5:1562:5 | [post] a [element 5] | semmle.label | [post] a [element 5] | +| array_flow.rb:1562:5:1562:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1562:21:1562:33 | call to source | semmle.label | call to source | +| array_flow.rb:1565:10:1565:10 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1565:10:1565:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1568:10:1568:10 | a [element 5] | semmle.label | a [element 5] | +| array_flow.rb:1568:10:1568:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1572:5:1572:5 | a [element 1] | semmle.label | a [element 1] | +| array_flow.rb:1572:5:1572:5 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1572:13:1572:25 | call to source | semmle.label | call to source | +| array_flow.rb:1572:31:1572:43 | call to source | semmle.label | call to source | +| array_flow.rb:1574:5:1574:5 | b [element 1] | semmle.label | b [element 1] | +| array_flow.rb:1574:5:1574:5 | b [element 3] | semmle.label | b [element 3] | +| array_flow.rb:1574:9:1574:9 | a [element 1] | semmle.label | a [element 1] | +| array_flow.rb:1574:9:1574:31 | call to values_at [element 1] | semmle.label | call to values_at [element 1] | +| array_flow.rb:1574:9:1574:31 | call to values_at [element 3] | semmle.label | call to values_at [element 3] | +| array_flow.rb:1576:10:1576:10 | b [element 1] | semmle.label | b [element 1] | +| array_flow.rb:1576:10:1576:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1578:10:1578:10 | b [element 3] | semmle.label | b [element 3] | +| array_flow.rb:1578:10:1578:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1580:5:1580:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1580:9:1580:9 | a [element 1] | semmle.label | a [element 1] | +| array_flow.rb:1580:9:1580:9 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1580:9:1580:25 | call to values_at [element] | semmle.label | call to values_at [element] | | array_flow.rb:1581:10:1581:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1581:10:1581:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1583:5:1583:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1583:9:1583:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1583:9:1583:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1583:9:1583:26 | call to values_at [element] | semmle.label | call to values_at [element] | -| array_flow.rb:1584:10:1584:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1584:10:1584:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1582:10:1582:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1582:10:1582:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1584:5:1584:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1584:9:1584:9 | a [element 1] | semmle.label | a [element 1] | +| array_flow.rb:1584:9:1584:9 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1584:9:1584:26 | call to values_at [element] | semmle.label | call to values_at [element] | | array_flow.rb:1585:10:1585:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1585:10:1585:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1587:5:1587:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1587:5:1587:5 | b [element] | semmle.label | b [element] | -| array_flow.rb:1587:9:1587:9 | a [element 1] | semmle.label | a [element 1] | -| array_flow.rb:1587:9:1587:9 | a [element 3] | semmle.label | a [element 3] | -| array_flow.rb:1587:9:1587:28 | call to values_at [element 1] | semmle.label | call to values_at [element 1] | -| array_flow.rb:1587:9:1587:28 | call to values_at [element] | semmle.label | call to values_at [element] | -| array_flow.rb:1588:10:1588:10 | b [element] | semmle.label | b [element] | -| array_flow.rb:1588:10:1588:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1589:10:1589:10 | b [element 1] | semmle.label | b [element 1] | +| array_flow.rb:1586:10:1586:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1586:10:1586:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1588:5:1588:5 | b [element 1] | semmle.label | b [element 1] | +| array_flow.rb:1588:5:1588:5 | b [element] | semmle.label | b [element] | +| array_flow.rb:1588:9:1588:9 | a [element 1] | semmle.label | a [element 1] | +| array_flow.rb:1588:9:1588:9 | a [element 3] | semmle.label | a [element 3] | +| array_flow.rb:1588:9:1588:28 | call to values_at [element 1] | semmle.label | call to values_at [element 1] | +| array_flow.rb:1588:9:1588:28 | call to values_at [element] | semmle.label | call to values_at [element] | | array_flow.rb:1589:10:1589:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1589:10:1589:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1590:10:1590:10 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1590:10:1590:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1590:10:1590:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1591:10:1591:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1591:10:1591:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1595:5:1595:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1595:16:1595:28 | call to source | semmle.label | call to source | -| array_flow.rb:1596:5:1596:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1596:13:1596:25 | call to source | semmle.label | call to source | -| array_flow.rb:1597:5:1597:5 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:1597:10:1597:22 | call to source | semmle.label | call to source | -| array_flow.rb:1598:5:1598:5 | d [element 0, element 2] | semmle.label | d [element 0, element 2] | -| array_flow.rb:1598:5:1598:5 | d [element 1, element 1] | semmle.label | d [element 1, element 1] | -| array_flow.rb:1598:5:1598:5 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | -| array_flow.rb:1598:9:1598:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 0, element 2] | semmle.label | call to zip [element 0, element 2] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 1, element 1] | semmle.label | call to zip [element 1, element 1] | -| array_flow.rb:1598:9:1598:19 | call to zip [element 2, element 0] | semmle.label | call to zip [element 2, element 0] | -| array_flow.rb:1598:15:1598:15 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1598:18:1598:18 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:1600:10:1600:10 | d [element 0, element 2] | semmle.label | d [element 0, element 2] | -| array_flow.rb:1600:10:1600:13 | ...[...] [element 2] | semmle.label | ...[...] [element 2] | -| array_flow.rb:1600:10:1600:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1601:10:1601:10 | d [element 1, element 1] | semmle.label | d [element 1, element 1] | -| array_flow.rb:1601:10:1601:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | +| array_flow.rb:1592:10:1592:10 | b [element] | semmle.label | b [element] | +| array_flow.rb:1592:10:1592:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1596:5:1596:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1596:16:1596:28 | call to source | semmle.label | call to source | +| array_flow.rb:1597:5:1597:5 | b [element 1] | semmle.label | b [element 1] | +| array_flow.rb:1597:13:1597:25 | call to source | semmle.label | call to source | +| array_flow.rb:1598:5:1598:5 | c [element 0] | semmle.label | c [element 0] | +| array_flow.rb:1598:10:1598:22 | call to source | semmle.label | call to source | +| array_flow.rb:1599:5:1599:5 | d [element 0, element 2] | semmle.label | d [element 0, element 2] | +| array_flow.rb:1599:5:1599:5 | d [element 1, element 1] | semmle.label | d [element 1, element 1] | +| array_flow.rb:1599:5:1599:5 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | +| array_flow.rb:1599:9:1599:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1599:9:1599:19 | call to zip [element 0, element 2] | semmle.label | call to zip [element 0, element 2] | +| array_flow.rb:1599:9:1599:19 | call to zip [element 1, element 1] | semmle.label | call to zip [element 1, element 1] | +| array_flow.rb:1599:9:1599:19 | call to zip [element 2, element 0] | semmle.label | call to zip [element 2, element 0] | +| array_flow.rb:1599:15:1599:15 | b [element 1] | semmle.label | b [element 1] | +| array_flow.rb:1599:18:1599:18 | c [element 0] | semmle.label | c [element 0] | +| array_flow.rb:1601:10:1601:10 | d [element 0, element 2] | semmle.label | d [element 0, element 2] | +| array_flow.rb:1601:10:1601:13 | ...[...] [element 2] | semmle.label | ...[...] [element 2] | | array_flow.rb:1601:10:1601:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1602:10:1602:10 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | -| array_flow.rb:1602:10:1602:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | +| array_flow.rb:1602:10:1602:10 | d [element 1, element 1] | semmle.label | d [element 1, element 1] | +| array_flow.rb:1602:10:1602:13 | ...[...] [element 1] | semmle.label | ...[...] [element 1] | | array_flow.rb:1602:10:1602:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1603:5:1603:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1603:11:1603:11 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1603:14:1603:14 | c [element 0] | semmle.label | c [element 0] | -| array_flow.rb:1603:21:1603:21 | x [element 0] | semmle.label | x [element 0] | -| array_flow.rb:1603:21:1603:21 | x [element 1] | semmle.label | x [element 1] | -| array_flow.rb:1603:21:1603:21 | x [element 2] | semmle.label | x [element 2] | -| array_flow.rb:1604:14:1604:14 | x [element 0] | semmle.label | x [element 0] | -| array_flow.rb:1604:14:1604:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1605:14:1605:14 | x [element 1] | semmle.label | x [element 1] | +| array_flow.rb:1603:10:1603:10 | d [element 2, element 0] | semmle.label | d [element 2, element 0] | +| array_flow.rb:1603:10:1603:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | +| array_flow.rb:1603:10:1603:16 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1604:5:1604:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1604:11:1604:11 | b [element 1] | semmle.label | b [element 1] | +| array_flow.rb:1604:14:1604:14 | c [element 0] | semmle.label | c [element 0] | +| array_flow.rb:1604:21:1604:21 | x [element 0] | semmle.label | x [element 0] | +| array_flow.rb:1604:21:1604:21 | x [element 1] | semmle.label | x [element 1] | +| array_flow.rb:1604:21:1604:21 | x [element 2] | semmle.label | x [element 2] | +| array_flow.rb:1605:14:1605:14 | x [element 0] | semmle.label | x [element 0] | | array_flow.rb:1605:14:1605:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1606:14:1606:14 | x [element 2] | semmle.label | x [element 2] | +| array_flow.rb:1606:14:1606:14 | x [element 1] | semmle.label | x [element 1] | | array_flow.rb:1606:14:1606:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1611:5:1611:5 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1611:16:1611:28 | call to source | semmle.label | call to source | -| array_flow.rb:1612:5:1612:5 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1612:13:1612:25 | call to source | semmle.label | call to source | -| array_flow.rb:1613:5:1613:5 | c [element] | semmle.label | c [element] | -| array_flow.rb:1613:9:1613:9 | a [element 2] | semmle.label | a [element 2] | -| array_flow.rb:1613:9:1613:13 | ... \| ... [element] | semmle.label | ... \| ... [element] | -| array_flow.rb:1613:13:1613:13 | b [element 1] | semmle.label | b [element 1] | -| array_flow.rb:1614:10:1614:10 | c [element] | semmle.label | c [element] | -| array_flow.rb:1614:10:1614:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1607:14:1607:14 | x [element 2] | semmle.label | x [element 2] | +| array_flow.rb:1607:14:1607:17 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1612:5:1612:5 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1612:16:1612:28 | call to source | semmle.label | call to source | +| array_flow.rb:1613:5:1613:5 | b [element 1] | semmle.label | b [element 1] | +| array_flow.rb:1613:13:1613:25 | call to source | semmle.label | call to source | +| array_flow.rb:1614:5:1614:5 | c [element] | semmle.label | c [element] | +| array_flow.rb:1614:9:1614:9 | a [element 2] | semmle.label | a [element 2] | +| array_flow.rb:1614:9:1614:13 | ... \| ... [element] | semmle.label | ... \| ... [element] | +| array_flow.rb:1614:13:1614:13 | b [element 1] | semmle.label | b [element 1] | | array_flow.rb:1615:10:1615:10 | c [element] | semmle.label | c [element] | | array_flow.rb:1615:10:1615:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1616:10:1616:10 | c [element] | semmle.label | c [element] | | array_flow.rb:1616:10:1616:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1621:5:1621:5 | [post] a [element, element 0] | semmle.label | [post] a [element, element 0] | -| array_flow.rb:1621:5:1621:8 | [post] ...[...] [element 0] | semmle.label | [post] ...[...] [element 0] | -| array_flow.rb:1621:15:1621:27 | call to source | semmle.label | call to source | -| array_flow.rb:1622:10:1622:10 | a [element, element 0] | semmle.label | a [element, element 0] | -| array_flow.rb:1622:10:1622:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| array_flow.rb:1622:10:1622:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1624:5:1624:5 | [post] a [element 1, element 0] | semmle.label | [post] a [element 1, element 0] | -| array_flow.rb:1624:5:1624:8 | [post] ...[...] [element 0] | semmle.label | [post] ...[...] [element 0] | -| array_flow.rb:1624:15:1624:27 | call to source | semmle.label | call to source | -| array_flow.rb:1625:10:1625:10 | a [element 1, element 0] | semmle.label | a [element 1, element 0] | -| array_flow.rb:1625:10:1625:10 | a [element, element 0] | semmle.label | a [element, element 0] | -| array_flow.rb:1625:10:1625:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | -| array_flow.rb:1625:10:1625:16 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1617:10:1617:10 | c [element] | semmle.label | c [element] | +| array_flow.rb:1617:10:1617:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | semmle.label | [post] a [element, element 0] | +| array_flow.rb:1622:5:1622:8 | [post] ...[...] [element 0] | semmle.label | [post] ...[...] [element 0] | +| array_flow.rb:1622:15:1622:27 | call to source | semmle.label | call to source | +| array_flow.rb:1623:10:1623:10 | a [element, element 0] | semmle.label | a [element, element 0] | +| array_flow.rb:1623:10:1623:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | +| array_flow.rb:1623:10:1623:16 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1625:5:1625:5 | [post] a [element 1, element 0] | semmle.label | [post] a [element 1, element 0] | +| array_flow.rb:1625:5:1625:8 | [post] ...[...] [element 0] | semmle.label | [post] ...[...] [element 0] | +| array_flow.rb:1625:15:1625:27 | call to source | semmle.label | call to source | +| array_flow.rb:1626:10:1626:10 | a [element 1, element 0] | semmle.label | a [element 1, element 0] | | array_flow.rb:1626:10:1626:10 | a [element, element 0] | semmle.label | a [element, element 0] | | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | | array_flow.rb:1626:10:1626:16 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1631:5:1631:5 | [post] a [element 0] | semmle.label | [post] a [element 0] | -| array_flow.rb:1631:12:1631:24 | call to source | semmle.label | call to source | -| array_flow.rb:1633:5:1633:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1633:16:1633:28 | call to source | semmle.label | call to source | -| array_flow.rb:1635:5:1635:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1635:14:1635:26 | call to source | semmle.label | call to source | -| array_flow.rb:1637:5:1637:5 | [post] a [element] | semmle.label | [post] a [element] | -| array_flow.rb:1637:16:1637:28 | call to source | semmle.label | call to source | -| array_flow.rb:1638:10:1638:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1638:10:1638:13 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1640:10:1640:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1640:10:1640:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1640:10:1640:17 | ...[...] | semmle.label | ...[...] | -| array_flow.rb:1642:10:1642:10 | a [element 0] | semmle.label | a [element 0] | -| array_flow.rb:1642:10:1642:10 | a [element] | semmle.label | a [element] | -| array_flow.rb:1642:10:1642:15 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1627:10:1627:10 | a [element, element 0] | semmle.label | a [element, element 0] | +| array_flow.rb:1627:10:1627:13 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | +| array_flow.rb:1627:10:1627:16 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1632:5:1632:5 | [post] a [element 0] | semmle.label | [post] a [element 0] | +| array_flow.rb:1632:12:1632:24 | call to source | semmle.label | call to source | +| array_flow.rb:1634:5:1634:5 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1634:16:1634:28 | call to source | semmle.label | call to source | +| array_flow.rb:1636:5:1636:5 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1636:14:1636:26 | call to source | semmle.label | call to source | +| array_flow.rb:1638:5:1638:5 | [post] a [element] | semmle.label | [post] a [element] | +| array_flow.rb:1638:16:1638:28 | call to source | semmle.label | call to source | +| array_flow.rb:1639:10:1639:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1639:10:1639:13 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1641:10:1641:10 | a [element 0] | semmle.label | a [element 0] | +| array_flow.rb:1641:10:1641:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1641:10:1641:17 | ...[...] | semmle.label | ...[...] | +| array_flow.rb:1643:10:1643:10 | a [element 0] | semmle.label | a [element 0] | +| array_flow.rb:1643:10:1643:10 | a [element] | semmle.label | a [element] | +| array_flow.rb:1643:10:1643:15 | ...[...] | semmle.label | ...[...] | subpaths #select | array_flow.rb:3:10:3:13 | ...[...] | array_flow.rb:2:10:2:20 | call to source | array_flow.rb:3:10:3:13 | ...[...] | $@ | array_flow.rb:2:10:2:20 | call to source | call to source | @@ -4833,226 +4824,224 @@ subpaths | array_flow.rb:1212:10:1212:10 | b | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1212:10:1212:10 | b | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | | array_flow.rb:1216:10:1216:10 | b | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1216:10:1216:10 | b | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | | array_flow.rb:1216:10:1216:10 | b | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1216:10:1216:10 | b | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | -| array_flow.rb:1218:10:1218:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1218:10:1218:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | -| array_flow.rb:1218:10:1218:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1218:10:1218:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | -| array_flow.rb:1221:10:1221:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1221:10:1221:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | -| array_flow.rb:1223:10:1223:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1223:10:1223:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | -| array_flow.rb:1226:10:1226:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1226:10:1226:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | -| array_flow.rb:1226:10:1226:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1226:10:1226:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | +| array_flow.rb:1222:10:1222:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1222:10:1222:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | +| array_flow.rb:1224:10:1224:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1224:10:1224:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | | array_flow.rb:1227:10:1227:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1227:10:1227:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | | array_flow.rb:1227:10:1227:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1227:10:1227:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | -| array_flow.rb:1230:10:1230:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1230:10:1230:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | -| array_flow.rb:1235:10:1235:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1235:10:1235:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | -| array_flow.rb:1240:10:1240:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1240:10:1240:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | -| array_flow.rb:1240:10:1240:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1240:10:1240:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | +| array_flow.rb:1228:10:1228:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1228:10:1228:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | +| array_flow.rb:1228:10:1228:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1228:10:1228:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | +| array_flow.rb:1231:10:1231:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1231:10:1231:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | +| array_flow.rb:1236:10:1236:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1236:10:1236:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | | array_flow.rb:1241:10:1241:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1241:10:1241:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | | array_flow.rb:1241:10:1241:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1241:10:1241:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | -| array_flow.rb:1244:10:1244:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1244:10:1244:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | -| array_flow.rb:1244:10:1244:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1244:10:1244:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | +| array_flow.rb:1242:10:1242:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1242:10:1242:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | +| array_flow.rb:1242:10:1242:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1242:10:1242:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | | array_flow.rb:1245:10:1245:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1245:10:1245:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | | array_flow.rb:1245:10:1245:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1245:10:1245:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | -| array_flow.rb:1250:10:1250:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1250:10:1250:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | -| array_flow.rb:1253:10:1253:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1253:10:1253:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | -| array_flow.rb:1253:10:1253:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1253:10:1253:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | +| array_flow.rb:1246:10:1246:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1246:10:1246:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | +| array_flow.rb:1246:10:1246:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1246:10:1246:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | +| array_flow.rb:1251:10:1251:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1251:10:1251:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | | array_flow.rb:1254:10:1254:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1254:10:1254:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | | array_flow.rb:1254:10:1254:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1254:10:1254:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | | array_flow.rb:1255:10:1255:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1255:10:1255:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | | array_flow.rb:1255:10:1255:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1255:10:1255:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | -| array_flow.rb:1261:10:1261:10 | b | array_flow.rb:1259:16:1259:28 | call to source | array_flow.rb:1261:10:1261:10 | b | $@ | array_flow.rb:1259:16:1259:28 | call to source | call to source | -| array_flow.rb:1265:10:1265:13 | ...[...] | array_flow.rb:1259:34:1259:46 | call to source | array_flow.rb:1265:10:1265:13 | ...[...] | $@ | array_flow.rb:1259:34:1259:46 | call to source | call to source | -| array_flow.rb:1269:10:1269:13 | ...[...] | array_flow.rb:1267:16:1267:28 | call to source | array_flow.rb:1269:10:1269:13 | ...[...] | $@ | array_flow.rb:1267:16:1267:28 | call to source | call to source | -| array_flow.rb:1269:10:1269:13 | ...[...] | array_flow.rb:1267:34:1267:46 | call to source | array_flow.rb:1269:10:1269:13 | ...[...] | $@ | array_flow.rb:1267:34:1267:46 | call to source | call to source | -| array_flow.rb:1270:10:1270:13 | ...[...] | array_flow.rb:1267:16:1267:28 | call to source | array_flow.rb:1270:10:1270:13 | ...[...] | $@ | array_flow.rb:1267:16:1267:28 | call to source | call to source | -| array_flow.rb:1270:10:1270:13 | ...[...] | array_flow.rb:1267:34:1267:46 | call to source | array_flow.rb:1270:10:1270:13 | ...[...] | $@ | array_flow.rb:1267:34:1267:46 | call to source | call to source | -| array_flow.rb:1271:10:1271:13 | ...[...] | array_flow.rb:1267:16:1267:28 | call to source | array_flow.rb:1271:10:1271:13 | ...[...] | $@ | array_flow.rb:1267:16:1267:28 | call to source | call to source | -| array_flow.rb:1271:10:1271:13 | ...[...] | array_flow.rb:1267:34:1267:46 | call to source | array_flow.rb:1271:10:1271:13 | ...[...] | $@ | array_flow.rb:1267:34:1267:46 | call to source | call to source | -| array_flow.rb:1272:10:1272:13 | ...[...] | array_flow.rb:1267:16:1267:28 | call to source | array_flow.rb:1272:10:1272:13 | ...[...] | $@ | array_flow.rb:1267:16:1267:28 | call to source | call to source | -| array_flow.rb:1272:10:1272:13 | ...[...] | array_flow.rb:1267:34:1267:46 | call to source | array_flow.rb:1272:10:1272:13 | ...[...] | $@ | array_flow.rb:1267:34:1267:46 | call to source | call to source | -| array_flow.rb:1274:10:1274:10 | b | array_flow.rb:1267:16:1267:28 | call to source | array_flow.rb:1274:10:1274:10 | b | $@ | array_flow.rb:1267:16:1267:28 | call to source | call to source | -| array_flow.rb:1274:10:1274:10 | b | array_flow.rb:1267:34:1267:46 | call to source | array_flow.rb:1274:10:1274:10 | b | $@ | array_flow.rb:1267:34:1267:46 | call to source | call to source | -| array_flow.rb:1276:10:1276:13 | ...[...] | array_flow.rb:1267:16:1267:28 | call to source | array_flow.rb:1276:10:1276:13 | ...[...] | $@ | array_flow.rb:1267:16:1267:28 | call to source | call to source | -| array_flow.rb:1276:10:1276:13 | ...[...] | array_flow.rb:1267:34:1267:46 | call to source | array_flow.rb:1276:10:1276:13 | ...[...] | $@ | array_flow.rb:1267:34:1267:46 | call to source | call to source | -| array_flow.rb:1280:10:1280:13 | ...[...] | array_flow.rb:1278:16:1278:28 | call to source | array_flow.rb:1280:10:1280:13 | ...[...] | $@ | array_flow.rb:1278:16:1278:28 | call to source | call to source | -| array_flow.rb:1282:10:1282:13 | ...[...] | array_flow.rb:1278:34:1278:46 | call to source | array_flow.rb:1282:10:1282:13 | ...[...] | $@ | array_flow.rb:1278:34:1278:46 | call to source | call to source | -| array_flow.rb:1291:10:1291:13 | ...[...] | array_flow.rb:1289:16:1289:28 | call to source | array_flow.rb:1291:10:1291:13 | ...[...] | $@ | array_flow.rb:1289:16:1289:28 | call to source | call to source | -| array_flow.rb:1296:10:1296:13 | ...[...] | array_flow.rb:1289:34:1289:46 | call to source | array_flow.rb:1296:10:1296:13 | ...[...] | $@ | array_flow.rb:1289:34:1289:46 | call to source | call to source | -| array_flow.rb:1302:10:1302:13 | ...[...] | array_flow.rb:1300:16:1300:28 | call to source | array_flow.rb:1302:10:1302:13 | ...[...] | $@ | array_flow.rb:1300:16:1300:28 | call to source | call to source | -| array_flow.rb:1307:10:1307:13 | ...[...] | array_flow.rb:1300:34:1300:46 | call to source | array_flow.rb:1307:10:1307:13 | ...[...] | $@ | array_flow.rb:1300:34:1300:46 | call to source | call to source | -| array_flow.rb:1313:10:1313:13 | ...[...] | array_flow.rb:1311:16:1311:28 | call to source | array_flow.rb:1313:10:1313:13 | ...[...] | $@ | array_flow.rb:1311:16:1311:28 | call to source | call to source | -| array_flow.rb:1313:10:1313:13 | ...[...] | array_flow.rb:1311:34:1311:46 | call to source | array_flow.rb:1313:10:1313:13 | ...[...] | $@ | array_flow.rb:1311:34:1311:46 | call to source | call to source | -| array_flow.rb:1314:10:1314:13 | ...[...] | array_flow.rb:1311:16:1311:28 | call to source | array_flow.rb:1314:10:1314:13 | ...[...] | $@ | array_flow.rb:1311:16:1311:28 | call to source | call to source | -| array_flow.rb:1314:10:1314:13 | ...[...] | array_flow.rb:1311:34:1311:46 | call to source | array_flow.rb:1314:10:1314:13 | ...[...] | $@ | array_flow.rb:1311:34:1311:46 | call to source | call to source | -| array_flow.rb:1315:10:1315:13 | ...[...] | array_flow.rb:1311:16:1311:28 | call to source | array_flow.rb:1315:10:1315:13 | ...[...] | $@ | array_flow.rb:1311:16:1311:28 | call to source | call to source | -| array_flow.rb:1315:10:1315:13 | ...[...] | array_flow.rb:1311:34:1311:46 | call to source | array_flow.rb:1315:10:1315:13 | ...[...] | $@ | array_flow.rb:1311:34:1311:46 | call to source | call to source | -| array_flow.rb:1316:10:1316:13 | ...[...] | array_flow.rb:1311:16:1311:28 | call to source | array_flow.rb:1316:10:1316:13 | ...[...] | $@ | array_flow.rb:1311:16:1311:28 | call to source | call to source | -| array_flow.rb:1316:10:1316:13 | ...[...] | array_flow.rb:1311:34:1311:46 | call to source | array_flow.rb:1316:10:1316:13 | ...[...] | $@ | array_flow.rb:1311:34:1311:46 | call to source | call to source | -| array_flow.rb:1317:10:1317:13 | ...[...] | array_flow.rb:1311:16:1311:28 | call to source | array_flow.rb:1317:10:1317:13 | ...[...] | $@ | array_flow.rb:1311:16:1311:28 | call to source | call to source | -| array_flow.rb:1317:10:1317:13 | ...[...] | array_flow.rb:1311:34:1311:46 | call to source | array_flow.rb:1317:10:1317:13 | ...[...] | $@ | array_flow.rb:1311:34:1311:46 | call to source | call to source | -| array_flow.rb:1318:10:1318:13 | ...[...] | array_flow.rb:1311:16:1311:28 | call to source | array_flow.rb:1318:10:1318:13 | ...[...] | $@ | array_flow.rb:1311:16:1311:28 | call to source | call to source | -| array_flow.rb:1318:10:1318:13 | ...[...] | array_flow.rb:1311:34:1311:46 | call to source | array_flow.rb:1318:10:1318:13 | ...[...] | $@ | array_flow.rb:1311:34:1311:46 | call to source | call to source | -| array_flow.rb:1322:10:1322:13 | ...[...] | array_flow.rb:1320:16:1320:28 | call to source | array_flow.rb:1322:10:1322:13 | ...[...] | $@ | array_flow.rb:1320:16:1320:28 | call to source | call to source | -| array_flow.rb:1322:10:1322:13 | ...[...] | array_flow.rb:1320:34:1320:46 | call to source | array_flow.rb:1322:10:1322:13 | ...[...] | $@ | array_flow.rb:1320:34:1320:46 | call to source | call to source | -| array_flow.rb:1323:10:1323:13 | ...[...] | array_flow.rb:1320:16:1320:28 | call to source | array_flow.rb:1323:10:1323:13 | ...[...] | $@ | array_flow.rb:1320:16:1320:28 | call to source | call to source | -| array_flow.rb:1323:10:1323:13 | ...[...] | array_flow.rb:1320:34:1320:46 | call to source | array_flow.rb:1323:10:1323:13 | ...[...] | $@ | array_flow.rb:1320:34:1320:46 | call to source | call to source | -| array_flow.rb:1324:10:1324:13 | ...[...] | array_flow.rb:1320:16:1320:28 | call to source | array_flow.rb:1324:10:1324:13 | ...[...] | $@ | array_flow.rb:1320:16:1320:28 | call to source | call to source | -| array_flow.rb:1324:10:1324:13 | ...[...] | array_flow.rb:1320:34:1320:46 | call to source | array_flow.rb:1324:10:1324:13 | ...[...] | $@ | array_flow.rb:1320:34:1320:46 | call to source | call to source | -| array_flow.rb:1325:10:1325:13 | ...[...] | array_flow.rb:1320:16:1320:28 | call to source | array_flow.rb:1325:10:1325:13 | ...[...] | $@ | array_flow.rb:1320:16:1320:28 | call to source | call to source | -| array_flow.rb:1325:10:1325:13 | ...[...] | array_flow.rb:1320:34:1320:46 | call to source | array_flow.rb:1325:10:1325:13 | ...[...] | $@ | array_flow.rb:1320:34:1320:46 | call to source | call to source | -| array_flow.rb:1326:10:1326:13 | ...[...] | array_flow.rb:1320:16:1320:28 | call to source | array_flow.rb:1326:10:1326:13 | ...[...] | $@ | array_flow.rb:1320:16:1320:28 | call to source | call to source | -| array_flow.rb:1326:10:1326:13 | ...[...] | array_flow.rb:1320:34:1320:46 | call to source | array_flow.rb:1326:10:1326:13 | ...[...] | $@ | array_flow.rb:1320:34:1320:46 | call to source | call to source | -| array_flow.rb:1327:10:1327:13 | ...[...] | array_flow.rb:1320:16:1320:28 | call to source | array_flow.rb:1327:10:1327:13 | ...[...] | $@ | array_flow.rb:1320:16:1320:28 | call to source | call to source | -| array_flow.rb:1327:10:1327:13 | ...[...] | array_flow.rb:1320:34:1320:46 | call to source | array_flow.rb:1327:10:1327:13 | ...[...] | $@ | array_flow.rb:1320:34:1320:46 | call to source | call to source | -| array_flow.rb:1331:10:1331:13 | ...[...] | array_flow.rb:1329:16:1329:28 | call to source | array_flow.rb:1331:10:1331:13 | ...[...] | $@ | array_flow.rb:1329:16:1329:28 | call to source | call to source | -| array_flow.rb:1331:10:1331:13 | ...[...] | array_flow.rb:1329:34:1329:46 | call to source | array_flow.rb:1331:10:1331:13 | ...[...] | $@ | array_flow.rb:1329:34:1329:46 | call to source | call to source | -| array_flow.rb:1332:10:1332:13 | ...[...] | array_flow.rb:1329:16:1329:28 | call to source | array_flow.rb:1332:10:1332:13 | ...[...] | $@ | array_flow.rb:1329:16:1329:28 | call to source | call to source | -| array_flow.rb:1332:10:1332:13 | ...[...] | array_flow.rb:1329:34:1329:46 | call to source | array_flow.rb:1332:10:1332:13 | ...[...] | $@ | array_flow.rb:1329:34:1329:46 | call to source | call to source | -| array_flow.rb:1333:10:1333:13 | ...[...] | array_flow.rb:1329:16:1329:28 | call to source | array_flow.rb:1333:10:1333:13 | ...[...] | $@ | array_flow.rb:1329:16:1329:28 | call to source | call to source | -| array_flow.rb:1333:10:1333:13 | ...[...] | array_flow.rb:1329:34:1329:46 | call to source | array_flow.rb:1333:10:1333:13 | ...[...] | $@ | array_flow.rb:1329:34:1329:46 | call to source | call to source | -| array_flow.rb:1334:10:1334:13 | ...[...] | array_flow.rb:1329:16:1329:28 | call to source | array_flow.rb:1334:10:1334:13 | ...[...] | $@ | array_flow.rb:1329:16:1329:28 | call to source | call to source | -| array_flow.rb:1334:10:1334:13 | ...[...] | array_flow.rb:1329:34:1329:46 | call to source | array_flow.rb:1334:10:1334:13 | ...[...] | $@ | array_flow.rb:1329:34:1329:46 | call to source | call to source | -| array_flow.rb:1335:10:1335:13 | ...[...] | array_flow.rb:1329:16:1329:28 | call to source | array_flow.rb:1335:10:1335:13 | ...[...] | $@ | array_flow.rb:1329:16:1329:28 | call to source | call to source | -| array_flow.rb:1335:10:1335:13 | ...[...] | array_flow.rb:1329:34:1329:46 | call to source | array_flow.rb:1335:10:1335:13 | ...[...] | $@ | array_flow.rb:1329:34:1329:46 | call to source | call to source | -| array_flow.rb:1336:10:1336:13 | ...[...] | array_flow.rb:1329:16:1329:28 | call to source | array_flow.rb:1336:10:1336:13 | ...[...] | $@ | array_flow.rb:1329:16:1329:28 | call to source | call to source | -| array_flow.rb:1336:10:1336:13 | ...[...] | array_flow.rb:1329:34:1329:46 | call to source | array_flow.rb:1336:10:1336:13 | ...[...] | $@ | array_flow.rb:1329:34:1329:46 | call to source | call to source | -| array_flow.rb:1342:10:1342:13 | ...[...] | array_flow.rb:1338:16:1338:28 | call to source | array_flow.rb:1342:10:1342:13 | ...[...] | $@ | array_flow.rb:1338:16:1338:28 | call to source | call to source | -| array_flow.rb:1344:10:1344:13 | ...[...] | array_flow.rb:1338:34:1338:46 | call to source | array_flow.rb:1344:10:1344:13 | ...[...] | $@ | array_flow.rb:1338:34:1338:46 | call to source | call to source | -| array_flow.rb:1349:10:1349:13 | ...[...] | array_flow.rb:1347:16:1347:28 | call to source | array_flow.rb:1349:10:1349:13 | ...[...] | $@ | array_flow.rb:1347:16:1347:28 | call to source | call to source | -| array_flow.rb:1349:10:1349:13 | ...[...] | array_flow.rb:1347:34:1347:46 | call to source | array_flow.rb:1349:10:1349:13 | ...[...] | $@ | array_flow.rb:1347:34:1347:46 | call to source | call to source | -| array_flow.rb:1350:10:1350:13 | ...[...] | array_flow.rb:1347:16:1347:28 | call to source | array_flow.rb:1350:10:1350:13 | ...[...] | $@ | array_flow.rb:1347:16:1347:28 | call to source | call to source | -| array_flow.rb:1350:10:1350:13 | ...[...] | array_flow.rb:1347:34:1347:46 | call to source | array_flow.rb:1350:10:1350:13 | ...[...] | $@ | array_flow.rb:1347:34:1347:46 | call to source | call to source | -| array_flow.rb:1351:10:1351:13 | ...[...] | array_flow.rb:1347:16:1347:28 | call to source | array_flow.rb:1351:10:1351:13 | ...[...] | $@ | array_flow.rb:1347:16:1347:28 | call to source | call to source | -| array_flow.rb:1351:10:1351:13 | ...[...] | array_flow.rb:1347:34:1347:46 | call to source | array_flow.rb:1351:10:1351:13 | ...[...] | $@ | array_flow.rb:1347:34:1347:46 | call to source | call to source | -| array_flow.rb:1352:10:1352:13 | ...[...] | array_flow.rb:1347:16:1347:28 | call to source | array_flow.rb:1352:10:1352:13 | ...[...] | $@ | array_flow.rb:1347:16:1347:28 | call to source | call to source | -| array_flow.rb:1352:10:1352:13 | ...[...] | array_flow.rb:1347:34:1347:46 | call to source | array_flow.rb:1352:10:1352:13 | ...[...] | $@ | array_flow.rb:1347:34:1347:46 | call to source | call to source | -| array_flow.rb:1353:10:1353:13 | ...[...] | array_flow.rb:1347:16:1347:28 | call to source | array_flow.rb:1353:10:1353:13 | ...[...] | $@ | array_flow.rb:1347:16:1347:28 | call to source | call to source | -| array_flow.rb:1353:10:1353:13 | ...[...] | array_flow.rb:1347:34:1347:46 | call to source | array_flow.rb:1353:10:1353:13 | ...[...] | $@ | array_flow.rb:1347:34:1347:46 | call to source | call to source | -| array_flow.rb:1354:10:1354:13 | ...[...] | array_flow.rb:1347:16:1347:28 | call to source | array_flow.rb:1354:10:1354:13 | ...[...] | $@ | array_flow.rb:1347:16:1347:28 | call to source | call to source | -| array_flow.rb:1354:10:1354:13 | ...[...] | array_flow.rb:1347:34:1347:46 | call to source | array_flow.rb:1354:10:1354:13 | ...[...] | $@ | array_flow.rb:1347:34:1347:46 | call to source | call to source | -| array_flow.rb:1360:14:1360:14 | x | array_flow.rb:1358:16:1358:26 | call to source | array_flow.rb:1360:14:1360:14 | x | $@ | array_flow.rb:1358:16:1358:26 | call to source | call to source | -| array_flow.rb:1368:14:1368:14 | x | array_flow.rb:1366:16:1366:26 | call to source | array_flow.rb:1368:14:1368:14 | x | $@ | array_flow.rb:1366:16:1366:26 | call to source | call to source | -| array_flow.rb:1376:14:1376:14 | x | array_flow.rb:1374:16:1374:26 | call to source | array_flow.rb:1376:14:1376:14 | x | $@ | array_flow.rb:1374:16:1374:26 | call to source | call to source | -| array_flow.rb:1377:14:1377:14 | y | array_flow.rb:1374:16:1374:26 | call to source | array_flow.rb:1377:14:1377:14 | y | $@ | array_flow.rb:1374:16:1374:26 | call to source | call to source | -| array_flow.rb:1384:10:1384:13 | ...[...] | array_flow.rb:1382:16:1382:26 | call to source | array_flow.rb:1384:10:1384:13 | ...[...] | $@ | array_flow.rb:1382:16:1382:26 | call to source | call to source | -| array_flow.rb:1385:10:1385:13 | ...[...] | array_flow.rb:1382:16:1382:26 | call to source | array_flow.rb:1385:10:1385:13 | ...[...] | $@ | array_flow.rb:1382:16:1382:26 | call to source | call to source | -| array_flow.rb:1387:14:1387:14 | x | array_flow.rb:1382:16:1382:26 | call to source | array_flow.rb:1387:14:1387:14 | x | $@ | array_flow.rb:1382:16:1382:26 | call to source | call to source | -| array_flow.rb:1388:14:1388:14 | y | array_flow.rb:1382:16:1382:26 | call to source | array_flow.rb:1388:14:1388:14 | y | $@ | array_flow.rb:1382:16:1382:26 | call to source | call to source | -| array_flow.rb:1391:10:1391:13 | ...[...] | array_flow.rb:1382:16:1382:26 | call to source | array_flow.rb:1391:10:1391:13 | ...[...] | $@ | array_flow.rb:1382:16:1382:26 | call to source | call to source | -| array_flow.rb:1392:10:1392:13 | ...[...] | array_flow.rb:1382:16:1382:26 | call to source | array_flow.rb:1392:10:1392:13 | ...[...] | $@ | array_flow.rb:1382:16:1382:26 | call to source | call to source | -| array_flow.rb:1398:10:1398:13 | ...[...] | array_flow.rb:1396:16:1396:26 | call to source | array_flow.rb:1398:10:1398:13 | ...[...] | $@ | array_flow.rb:1396:16:1396:26 | call to source | call to source | -| array_flow.rb:1399:10:1399:13 | ...[...] | array_flow.rb:1396:16:1396:26 | call to source | array_flow.rb:1399:10:1399:13 | ...[...] | $@ | array_flow.rb:1396:16:1396:26 | call to source | call to source | -| array_flow.rb:1400:10:1400:13 | ...[...] | array_flow.rb:1396:16:1396:26 | call to source | array_flow.rb:1400:10:1400:13 | ...[...] | $@ | array_flow.rb:1396:16:1396:26 | call to source | call to source | -| array_flow.rb:1401:10:1401:13 | ...[...] | array_flow.rb:1396:16:1396:26 | call to source | array_flow.rb:1401:10:1401:13 | ...[...] | $@ | array_flow.rb:1396:16:1396:26 | call to source | call to source | -| array_flow.rb:1405:14:1405:14 | x | array_flow.rb:1403:16:1403:26 | call to source | array_flow.rb:1405:14:1405:14 | x | $@ | array_flow.rb:1403:16:1403:26 | call to source | call to source | -| array_flow.rb:1406:14:1406:14 | y | array_flow.rb:1403:16:1403:26 | call to source | array_flow.rb:1406:14:1406:14 | y | $@ | array_flow.rb:1403:16:1403:26 | call to source | call to source | -| array_flow.rb:1409:10:1409:13 | ...[...] | array_flow.rb:1403:16:1403:26 | call to source | array_flow.rb:1409:10:1409:13 | ...[...] | $@ | array_flow.rb:1403:16:1403:26 | call to source | call to source | -| array_flow.rb:1410:10:1410:13 | ...[...] | array_flow.rb:1403:16:1403:26 | call to source | array_flow.rb:1410:10:1410:13 | ...[...] | $@ | array_flow.rb:1403:16:1403:26 | call to source | call to source | -| array_flow.rb:1411:10:1411:13 | ...[...] | array_flow.rb:1403:16:1403:26 | call to source | array_flow.rb:1411:10:1411:13 | ...[...] | $@ | array_flow.rb:1403:16:1403:26 | call to source | call to source | -| array_flow.rb:1412:10:1412:13 | ...[...] | array_flow.rb:1403:16:1403:26 | call to source | array_flow.rb:1412:10:1412:13 | ...[...] | $@ | array_flow.rb:1403:16:1403:26 | call to source | call to source | -| array_flow.rb:1418:14:1418:14 | x | array_flow.rb:1416:16:1416:26 | call to source | array_flow.rb:1418:14:1418:14 | x | $@ | array_flow.rb:1416:16:1416:26 | call to source | call to source | -| array_flow.rb:1421:10:1421:13 | ...[...] | array_flow.rb:1416:16:1416:26 | call to source | array_flow.rb:1421:10:1421:13 | ...[...] | $@ | array_flow.rb:1416:16:1416:26 | call to source | call to source | -| array_flow.rb:1422:10:1422:13 | ...[...] | array_flow.rb:1416:16:1416:26 | call to source | array_flow.rb:1422:10:1422:13 | ...[...] | $@ | array_flow.rb:1416:16:1416:26 | call to source | call to source | -| array_flow.rb:1428:14:1428:14 | x | array_flow.rb:1426:16:1426:26 | call to source | array_flow.rb:1428:14:1428:14 | x | $@ | array_flow.rb:1426:16:1426:26 | call to source | call to source | -| array_flow.rb:1431:10:1431:13 | ...[...] | array_flow.rb:1426:16:1426:26 | call to source | array_flow.rb:1431:10:1431:13 | ...[...] | $@ | array_flow.rb:1426:16:1426:26 | call to source | call to source | -| array_flow.rb:1432:10:1432:13 | ...[...] | array_flow.rb:1426:16:1426:26 | call to source | array_flow.rb:1432:10:1432:13 | ...[...] | $@ | array_flow.rb:1426:16:1426:26 | call to source | call to source | -| array_flow.rb:1433:10:1433:13 | ...[...] | array_flow.rb:1426:16:1426:26 | call to source | array_flow.rb:1433:10:1433:13 | ...[...] | $@ | array_flow.rb:1426:16:1426:26 | call to source | call to source | -| array_flow.rb:1434:10:1434:13 | ...[...] | array_flow.rb:1426:16:1426:26 | call to source | array_flow.rb:1434:10:1434:13 | ...[...] | $@ | array_flow.rb:1426:16:1426:26 | call to source | call to source | -| array_flow.rb:1440:14:1440:14 | x | array_flow.rb:1438:16:1438:26 | call to source | array_flow.rb:1440:14:1440:14 | x | $@ | array_flow.rb:1438:16:1438:26 | call to source | call to source | -| array_flow.rb:1450:10:1450:13 | ...[...] | array_flow.rb:1446:16:1446:28 | call to source | array_flow.rb:1450:10:1450:13 | ...[...] | $@ | array_flow.rb:1446:16:1446:28 | call to source | call to source | -| array_flow.rb:1451:10:1451:13 | ...[...] | array_flow.rb:1446:31:1446:43 | call to source | array_flow.rb:1451:10:1451:13 | ...[...] | $@ | array_flow.rb:1446:31:1446:43 | call to source | call to source | -| array_flow.rb:1455:10:1455:13 | ...[...] | array_flow.rb:1446:16:1446:28 | call to source | array_flow.rb:1455:10:1455:13 | ...[...] | $@ | array_flow.rb:1446:16:1446:28 | call to source | call to source | -| array_flow.rb:1457:10:1457:13 | ...[...] | array_flow.rb:1446:16:1446:28 | call to source | array_flow.rb:1457:10:1457:13 | ...[...] | $@ | array_flow.rb:1446:16:1446:28 | call to source | call to source | -| array_flow.rb:1461:10:1461:13 | ...[...] | array_flow.rb:1446:16:1446:28 | call to source | array_flow.rb:1461:10:1461:13 | ...[...] | $@ | array_flow.rb:1446:16:1446:28 | call to source | call to source | -| array_flow.rb:1462:10:1462:13 | ...[...] | array_flow.rb:1446:31:1446:43 | call to source | array_flow.rb:1462:10:1462:13 | ...[...] | $@ | array_flow.rb:1446:31:1446:43 | call to source | call to source | -| array_flow.rb:1463:10:1463:13 | ...[...] | array_flow.rb:1446:16:1446:28 | call to source | array_flow.rb:1463:10:1463:13 | ...[...] | $@ | array_flow.rb:1446:16:1446:28 | call to source | call to source | -| array_flow.rb:1463:10:1463:13 | ...[...] | array_flow.rb:1446:31:1446:43 | call to source | array_flow.rb:1463:10:1463:13 | ...[...] | $@ | array_flow.rb:1446:31:1446:43 | call to source | call to source | -| array_flow.rb:1466:10:1466:13 | ...[...] | array_flow.rb:1446:16:1446:28 | call to source | array_flow.rb:1466:10:1466:13 | ...[...] | $@ | array_flow.rb:1446:16:1446:28 | call to source | call to source | -| array_flow.rb:1466:10:1466:13 | ...[...] | array_flow.rb:1464:12:1464:24 | call to source | array_flow.rb:1466:10:1466:13 | ...[...] | $@ | array_flow.rb:1464:12:1464:24 | call to source | call to source | -| array_flow.rb:1472:14:1472:14 | x | array_flow.rb:1470:16:1470:26 | call to source | array_flow.rb:1472:14:1472:14 | x | $@ | array_flow.rb:1470:16:1470:26 | call to source | call to source | -| array_flow.rb:1477:10:1477:13 | ...[...] | array_flow.rb:1470:16:1470:26 | call to source | array_flow.rb:1477:10:1477:13 | ...[...] | $@ | array_flow.rb:1470:16:1470:26 | call to source | call to source | -| array_flow.rb:1485:10:1485:13 | ...[...] | array_flow.rb:1483:19:1483:29 | call to source | array_flow.rb:1485:10:1485:13 | ...[...] | $@ | array_flow.rb:1483:19:1483:29 | call to source | call to source | -| array_flow.rb:1493:10:1493:13 | ...[...] | array_flow.rb:1489:16:1489:26 | call to source | array_flow.rb:1493:10:1493:13 | ...[...] | $@ | array_flow.rb:1489:16:1489:26 | call to source | call to source | -| array_flow.rb:1511:10:1511:16 | ...[...] | array_flow.rb:1506:14:1506:26 | call to source | array_flow.rb:1511:10:1511:16 | ...[...] | $@ | array_flow.rb:1506:14:1506:26 | call to source | call to source | -| array_flow.rb:1512:10:1512:16 | ...[...] | array_flow.rb:1506:34:1506:46 | call to source | array_flow.rb:1512:10:1512:16 | ...[...] | $@ | array_flow.rb:1506:34:1506:46 | call to source | call to source | -| array_flow.rb:1513:10:1513:16 | ...[...] | array_flow.rb:1506:54:1506:66 | call to source | array_flow.rb:1513:10:1513:16 | ...[...] | $@ | array_flow.rb:1506:54:1506:66 | call to source | call to source | -| array_flow.rb:1521:10:1521:13 | ...[...] | array_flow.rb:1517:16:1517:28 | call to source | array_flow.rb:1521:10:1521:13 | ...[...] | $@ | array_flow.rb:1517:16:1517:28 | call to source | call to source | -| array_flow.rb:1521:10:1521:13 | ...[...] | array_flow.rb:1518:13:1518:25 | call to source | array_flow.rb:1521:10:1521:13 | ...[...] | $@ | array_flow.rb:1518:13:1518:25 | call to source | call to source | -| array_flow.rb:1521:10:1521:13 | ...[...] | array_flow.rb:1519:13:1519:25 | call to source | array_flow.rb:1521:10:1521:13 | ...[...] | $@ | array_flow.rb:1519:13:1519:25 | call to source | call to source | -| array_flow.rb:1522:10:1522:13 | ...[...] | array_flow.rb:1517:16:1517:28 | call to source | array_flow.rb:1522:10:1522:13 | ...[...] | $@ | array_flow.rb:1517:16:1517:28 | call to source | call to source | -| array_flow.rb:1522:10:1522:13 | ...[...] | array_flow.rb:1518:13:1518:25 | call to source | array_flow.rb:1522:10:1522:13 | ...[...] | $@ | array_flow.rb:1518:13:1518:25 | call to source | call to source | +| array_flow.rb:1256:10:1256:13 | ...[...] | array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1256:10:1256:13 | ...[...] | $@ | array_flow.rb:1206:16:1206:28 | call to source | call to source | +| array_flow.rb:1256:10:1256:13 | ...[...] | array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1256:10:1256:13 | ...[...] | $@ | array_flow.rb:1206:34:1206:46 | call to source | call to source | +| array_flow.rb:1262:10:1262:10 | b | array_flow.rb:1260:16:1260:28 | call to source | array_flow.rb:1262:10:1262:10 | b | $@ | array_flow.rb:1260:16:1260:28 | call to source | call to source | +| array_flow.rb:1266:10:1266:13 | ...[...] | array_flow.rb:1260:34:1260:46 | call to source | array_flow.rb:1266:10:1266:13 | ...[...] | $@ | array_flow.rb:1260:34:1260:46 | call to source | call to source | +| array_flow.rb:1270:10:1270:13 | ...[...] | array_flow.rb:1268:16:1268:28 | call to source | array_flow.rb:1270:10:1270:13 | ...[...] | $@ | array_flow.rb:1268:16:1268:28 | call to source | call to source | +| array_flow.rb:1270:10:1270:13 | ...[...] | array_flow.rb:1268:34:1268:46 | call to source | array_flow.rb:1270:10:1270:13 | ...[...] | $@ | array_flow.rb:1268:34:1268:46 | call to source | call to source | +| array_flow.rb:1271:10:1271:13 | ...[...] | array_flow.rb:1268:16:1268:28 | call to source | array_flow.rb:1271:10:1271:13 | ...[...] | $@ | array_flow.rb:1268:16:1268:28 | call to source | call to source | +| array_flow.rb:1271:10:1271:13 | ...[...] | array_flow.rb:1268:34:1268:46 | call to source | array_flow.rb:1271:10:1271:13 | ...[...] | $@ | array_flow.rb:1268:34:1268:46 | call to source | call to source | +| array_flow.rb:1272:10:1272:13 | ...[...] | array_flow.rb:1268:16:1268:28 | call to source | array_flow.rb:1272:10:1272:13 | ...[...] | $@ | array_flow.rb:1268:16:1268:28 | call to source | call to source | +| array_flow.rb:1272:10:1272:13 | ...[...] | array_flow.rb:1268:34:1268:46 | call to source | array_flow.rb:1272:10:1272:13 | ...[...] | $@ | array_flow.rb:1268:34:1268:46 | call to source | call to source | +| array_flow.rb:1273:10:1273:13 | ...[...] | array_flow.rb:1268:16:1268:28 | call to source | array_flow.rb:1273:10:1273:13 | ...[...] | $@ | array_flow.rb:1268:16:1268:28 | call to source | call to source | +| array_flow.rb:1273:10:1273:13 | ...[...] | array_flow.rb:1268:34:1268:46 | call to source | array_flow.rb:1273:10:1273:13 | ...[...] | $@ | array_flow.rb:1268:34:1268:46 | call to source | call to source | +| array_flow.rb:1275:10:1275:10 | b | array_flow.rb:1268:16:1268:28 | call to source | array_flow.rb:1275:10:1275:10 | b | $@ | array_flow.rb:1268:16:1268:28 | call to source | call to source | +| array_flow.rb:1275:10:1275:10 | b | array_flow.rb:1268:34:1268:46 | call to source | array_flow.rb:1275:10:1275:10 | b | $@ | array_flow.rb:1268:34:1268:46 | call to source | call to source | +| array_flow.rb:1277:10:1277:13 | ...[...] | array_flow.rb:1268:16:1268:28 | call to source | array_flow.rb:1277:10:1277:13 | ...[...] | $@ | array_flow.rb:1268:16:1268:28 | call to source | call to source | +| array_flow.rb:1277:10:1277:13 | ...[...] | array_flow.rb:1268:34:1268:46 | call to source | array_flow.rb:1277:10:1277:13 | ...[...] | $@ | array_flow.rb:1268:34:1268:46 | call to source | call to source | +| array_flow.rb:1281:10:1281:13 | ...[...] | array_flow.rb:1279:16:1279:28 | call to source | array_flow.rb:1281:10:1281:13 | ...[...] | $@ | array_flow.rb:1279:16:1279:28 | call to source | call to source | +| array_flow.rb:1283:10:1283:13 | ...[...] | array_flow.rb:1279:34:1279:46 | call to source | array_flow.rb:1283:10:1283:13 | ...[...] | $@ | array_flow.rb:1279:34:1279:46 | call to source | call to source | +| array_flow.rb:1292:10:1292:13 | ...[...] | array_flow.rb:1290:16:1290:28 | call to source | array_flow.rb:1292:10:1292:13 | ...[...] | $@ | array_flow.rb:1290:16:1290:28 | call to source | call to source | +| array_flow.rb:1297:10:1297:13 | ...[...] | array_flow.rb:1290:34:1290:46 | call to source | array_flow.rb:1297:10:1297:13 | ...[...] | $@ | array_flow.rb:1290:34:1290:46 | call to source | call to source | +| array_flow.rb:1303:10:1303:13 | ...[...] | array_flow.rb:1301:16:1301:28 | call to source | array_flow.rb:1303:10:1303:13 | ...[...] | $@ | array_flow.rb:1301:16:1301:28 | call to source | call to source | +| array_flow.rb:1308:10:1308:13 | ...[...] | array_flow.rb:1301:34:1301:46 | call to source | array_flow.rb:1308:10:1308:13 | ...[...] | $@ | array_flow.rb:1301:34:1301:46 | call to source | call to source | +| array_flow.rb:1314:10:1314:13 | ...[...] | array_flow.rb:1312:16:1312:28 | call to source | array_flow.rb:1314:10:1314:13 | ...[...] | $@ | array_flow.rb:1312:16:1312:28 | call to source | call to source | +| array_flow.rb:1314:10:1314:13 | ...[...] | array_flow.rb:1312:34:1312:46 | call to source | array_flow.rb:1314:10:1314:13 | ...[...] | $@ | array_flow.rb:1312:34:1312:46 | call to source | call to source | +| array_flow.rb:1315:10:1315:13 | ...[...] | array_flow.rb:1312:16:1312:28 | call to source | array_flow.rb:1315:10:1315:13 | ...[...] | $@ | array_flow.rb:1312:16:1312:28 | call to source | call to source | +| array_flow.rb:1315:10:1315:13 | ...[...] | array_flow.rb:1312:34:1312:46 | call to source | array_flow.rb:1315:10:1315:13 | ...[...] | $@ | array_flow.rb:1312:34:1312:46 | call to source | call to source | +| array_flow.rb:1316:10:1316:13 | ...[...] | array_flow.rb:1312:16:1312:28 | call to source | array_flow.rb:1316:10:1316:13 | ...[...] | $@ | array_flow.rb:1312:16:1312:28 | call to source | call to source | +| array_flow.rb:1316:10:1316:13 | ...[...] | array_flow.rb:1312:34:1312:46 | call to source | array_flow.rb:1316:10:1316:13 | ...[...] | $@ | array_flow.rb:1312:34:1312:46 | call to source | call to source | +| array_flow.rb:1317:10:1317:13 | ...[...] | array_flow.rb:1312:16:1312:28 | call to source | array_flow.rb:1317:10:1317:13 | ...[...] | $@ | array_flow.rb:1312:16:1312:28 | call to source | call to source | +| array_flow.rb:1317:10:1317:13 | ...[...] | array_flow.rb:1312:34:1312:46 | call to source | array_flow.rb:1317:10:1317:13 | ...[...] | $@ | array_flow.rb:1312:34:1312:46 | call to source | call to source | +| array_flow.rb:1318:10:1318:13 | ...[...] | array_flow.rb:1312:16:1312:28 | call to source | array_flow.rb:1318:10:1318:13 | ...[...] | $@ | array_flow.rb:1312:16:1312:28 | call to source | call to source | +| array_flow.rb:1318:10:1318:13 | ...[...] | array_flow.rb:1312:34:1312:46 | call to source | array_flow.rb:1318:10:1318:13 | ...[...] | $@ | array_flow.rb:1312:34:1312:46 | call to source | call to source | +| array_flow.rb:1319:10:1319:13 | ...[...] | array_flow.rb:1312:16:1312:28 | call to source | array_flow.rb:1319:10:1319:13 | ...[...] | $@ | array_flow.rb:1312:16:1312:28 | call to source | call to source | +| array_flow.rb:1319:10:1319:13 | ...[...] | array_flow.rb:1312:34:1312:46 | call to source | array_flow.rb:1319:10:1319:13 | ...[...] | $@ | array_flow.rb:1312:34:1312:46 | call to source | call to source | +| array_flow.rb:1323:10:1323:13 | ...[...] | array_flow.rb:1321:16:1321:28 | call to source | array_flow.rb:1323:10:1323:13 | ...[...] | $@ | array_flow.rb:1321:16:1321:28 | call to source | call to source | +| array_flow.rb:1323:10:1323:13 | ...[...] | array_flow.rb:1321:34:1321:46 | call to source | array_flow.rb:1323:10:1323:13 | ...[...] | $@ | array_flow.rb:1321:34:1321:46 | call to source | call to source | +| array_flow.rb:1324:10:1324:13 | ...[...] | array_flow.rb:1321:16:1321:28 | call to source | array_flow.rb:1324:10:1324:13 | ...[...] | $@ | array_flow.rb:1321:16:1321:28 | call to source | call to source | +| array_flow.rb:1324:10:1324:13 | ...[...] | array_flow.rb:1321:34:1321:46 | call to source | array_flow.rb:1324:10:1324:13 | ...[...] | $@ | array_flow.rb:1321:34:1321:46 | call to source | call to source | +| array_flow.rb:1325:10:1325:13 | ...[...] | array_flow.rb:1321:16:1321:28 | call to source | array_flow.rb:1325:10:1325:13 | ...[...] | $@ | array_flow.rb:1321:16:1321:28 | call to source | call to source | +| array_flow.rb:1325:10:1325:13 | ...[...] | array_flow.rb:1321:34:1321:46 | call to source | array_flow.rb:1325:10:1325:13 | ...[...] | $@ | array_flow.rb:1321:34:1321:46 | call to source | call to source | +| array_flow.rb:1326:10:1326:13 | ...[...] | array_flow.rb:1321:16:1321:28 | call to source | array_flow.rb:1326:10:1326:13 | ...[...] | $@ | array_flow.rb:1321:16:1321:28 | call to source | call to source | +| array_flow.rb:1326:10:1326:13 | ...[...] | array_flow.rb:1321:34:1321:46 | call to source | array_flow.rb:1326:10:1326:13 | ...[...] | $@ | array_flow.rb:1321:34:1321:46 | call to source | call to source | +| array_flow.rb:1327:10:1327:13 | ...[...] | array_flow.rb:1321:16:1321:28 | call to source | array_flow.rb:1327:10:1327:13 | ...[...] | $@ | array_flow.rb:1321:16:1321:28 | call to source | call to source | +| array_flow.rb:1327:10:1327:13 | ...[...] | array_flow.rb:1321:34:1321:46 | call to source | array_flow.rb:1327:10:1327:13 | ...[...] | $@ | array_flow.rb:1321:34:1321:46 | call to source | call to source | +| array_flow.rb:1328:10:1328:13 | ...[...] | array_flow.rb:1321:16:1321:28 | call to source | array_flow.rb:1328:10:1328:13 | ...[...] | $@ | array_flow.rb:1321:16:1321:28 | call to source | call to source | +| array_flow.rb:1328:10:1328:13 | ...[...] | array_flow.rb:1321:34:1321:46 | call to source | array_flow.rb:1328:10:1328:13 | ...[...] | $@ | array_flow.rb:1321:34:1321:46 | call to source | call to source | +| array_flow.rb:1332:10:1332:13 | ...[...] | array_flow.rb:1330:16:1330:28 | call to source | array_flow.rb:1332:10:1332:13 | ...[...] | $@ | array_flow.rb:1330:16:1330:28 | call to source | call to source | +| array_flow.rb:1332:10:1332:13 | ...[...] | array_flow.rb:1330:34:1330:46 | call to source | array_flow.rb:1332:10:1332:13 | ...[...] | $@ | array_flow.rb:1330:34:1330:46 | call to source | call to source | +| array_flow.rb:1333:10:1333:13 | ...[...] | array_flow.rb:1330:16:1330:28 | call to source | array_flow.rb:1333:10:1333:13 | ...[...] | $@ | array_flow.rb:1330:16:1330:28 | call to source | call to source | +| array_flow.rb:1333:10:1333:13 | ...[...] | array_flow.rb:1330:34:1330:46 | call to source | array_flow.rb:1333:10:1333:13 | ...[...] | $@ | array_flow.rb:1330:34:1330:46 | call to source | call to source | +| array_flow.rb:1334:10:1334:13 | ...[...] | array_flow.rb:1330:16:1330:28 | call to source | array_flow.rb:1334:10:1334:13 | ...[...] | $@ | array_flow.rb:1330:16:1330:28 | call to source | call to source | +| array_flow.rb:1334:10:1334:13 | ...[...] | array_flow.rb:1330:34:1330:46 | call to source | array_flow.rb:1334:10:1334:13 | ...[...] | $@ | array_flow.rb:1330:34:1330:46 | call to source | call to source | +| array_flow.rb:1335:10:1335:13 | ...[...] | array_flow.rb:1330:16:1330:28 | call to source | array_flow.rb:1335:10:1335:13 | ...[...] | $@ | array_flow.rb:1330:16:1330:28 | call to source | call to source | +| array_flow.rb:1335:10:1335:13 | ...[...] | array_flow.rb:1330:34:1330:46 | call to source | array_flow.rb:1335:10:1335:13 | ...[...] | $@ | array_flow.rb:1330:34:1330:46 | call to source | call to source | +| array_flow.rb:1336:10:1336:13 | ...[...] | array_flow.rb:1330:16:1330:28 | call to source | array_flow.rb:1336:10:1336:13 | ...[...] | $@ | array_flow.rb:1330:16:1330:28 | call to source | call to source | +| array_flow.rb:1336:10:1336:13 | ...[...] | array_flow.rb:1330:34:1330:46 | call to source | array_flow.rb:1336:10:1336:13 | ...[...] | $@ | array_flow.rb:1330:34:1330:46 | call to source | call to source | +| array_flow.rb:1337:10:1337:13 | ...[...] | array_flow.rb:1330:16:1330:28 | call to source | array_flow.rb:1337:10:1337:13 | ...[...] | $@ | array_flow.rb:1330:16:1330:28 | call to source | call to source | +| array_flow.rb:1337:10:1337:13 | ...[...] | array_flow.rb:1330:34:1330:46 | call to source | array_flow.rb:1337:10:1337:13 | ...[...] | $@ | array_flow.rb:1330:34:1330:46 | call to source | call to source | +| array_flow.rb:1343:10:1343:13 | ...[...] | array_flow.rb:1339:16:1339:28 | call to source | array_flow.rb:1343:10:1343:13 | ...[...] | $@ | array_flow.rb:1339:16:1339:28 | call to source | call to source | +| array_flow.rb:1345:10:1345:13 | ...[...] | array_flow.rb:1339:34:1339:46 | call to source | array_flow.rb:1345:10:1345:13 | ...[...] | $@ | array_flow.rb:1339:34:1339:46 | call to source | call to source | +| array_flow.rb:1350:10:1350:13 | ...[...] | array_flow.rb:1348:16:1348:28 | call to source | array_flow.rb:1350:10:1350:13 | ...[...] | $@ | array_flow.rb:1348:16:1348:28 | call to source | call to source | +| array_flow.rb:1350:10:1350:13 | ...[...] | array_flow.rb:1348:34:1348:46 | call to source | array_flow.rb:1350:10:1350:13 | ...[...] | $@ | array_flow.rb:1348:34:1348:46 | call to source | call to source | +| array_flow.rb:1351:10:1351:13 | ...[...] | array_flow.rb:1348:16:1348:28 | call to source | array_flow.rb:1351:10:1351:13 | ...[...] | $@ | array_flow.rb:1348:16:1348:28 | call to source | call to source | +| array_flow.rb:1351:10:1351:13 | ...[...] | array_flow.rb:1348:34:1348:46 | call to source | array_flow.rb:1351:10:1351:13 | ...[...] | $@ | array_flow.rb:1348:34:1348:46 | call to source | call to source | +| array_flow.rb:1352:10:1352:13 | ...[...] | array_flow.rb:1348:16:1348:28 | call to source | array_flow.rb:1352:10:1352:13 | ...[...] | $@ | array_flow.rb:1348:16:1348:28 | call to source | call to source | +| array_flow.rb:1352:10:1352:13 | ...[...] | array_flow.rb:1348:34:1348:46 | call to source | array_flow.rb:1352:10:1352:13 | ...[...] | $@ | array_flow.rb:1348:34:1348:46 | call to source | call to source | +| array_flow.rb:1353:10:1353:13 | ...[...] | array_flow.rb:1348:16:1348:28 | call to source | array_flow.rb:1353:10:1353:13 | ...[...] | $@ | array_flow.rb:1348:16:1348:28 | call to source | call to source | +| array_flow.rb:1353:10:1353:13 | ...[...] | array_flow.rb:1348:34:1348:46 | call to source | array_flow.rb:1353:10:1353:13 | ...[...] | $@ | array_flow.rb:1348:34:1348:46 | call to source | call to source | +| array_flow.rb:1354:10:1354:13 | ...[...] | array_flow.rb:1348:16:1348:28 | call to source | array_flow.rb:1354:10:1354:13 | ...[...] | $@ | array_flow.rb:1348:16:1348:28 | call to source | call to source | +| array_flow.rb:1354:10:1354:13 | ...[...] | array_flow.rb:1348:34:1348:46 | call to source | array_flow.rb:1354:10:1354:13 | ...[...] | $@ | array_flow.rb:1348:34:1348:46 | call to source | call to source | +| array_flow.rb:1355:10:1355:13 | ...[...] | array_flow.rb:1348:16:1348:28 | call to source | array_flow.rb:1355:10:1355:13 | ...[...] | $@ | array_flow.rb:1348:16:1348:28 | call to source | call to source | +| array_flow.rb:1355:10:1355:13 | ...[...] | array_flow.rb:1348:34:1348:46 | call to source | array_flow.rb:1355:10:1355:13 | ...[...] | $@ | array_flow.rb:1348:34:1348:46 | call to source | call to source | +| array_flow.rb:1361:14:1361:14 | x | array_flow.rb:1359:16:1359:26 | call to source | array_flow.rb:1361:14:1361:14 | x | $@ | array_flow.rb:1359:16:1359:26 | call to source | call to source | +| array_flow.rb:1369:14:1369:14 | x | array_flow.rb:1367:16:1367:26 | call to source | array_flow.rb:1369:14:1369:14 | x | $@ | array_flow.rb:1367:16:1367:26 | call to source | call to source | +| array_flow.rb:1377:14:1377:14 | x | array_flow.rb:1375:16:1375:26 | call to source | array_flow.rb:1377:14:1377:14 | x | $@ | array_flow.rb:1375:16:1375:26 | call to source | call to source | +| array_flow.rb:1378:14:1378:14 | y | array_flow.rb:1375:16:1375:26 | call to source | array_flow.rb:1378:14:1378:14 | y | $@ | array_flow.rb:1375:16:1375:26 | call to source | call to source | +| array_flow.rb:1385:10:1385:13 | ...[...] | array_flow.rb:1383:16:1383:26 | call to source | array_flow.rb:1385:10:1385:13 | ...[...] | $@ | array_flow.rb:1383:16:1383:26 | call to source | call to source | +| array_flow.rb:1386:10:1386:13 | ...[...] | array_flow.rb:1383:16:1383:26 | call to source | array_flow.rb:1386:10:1386:13 | ...[...] | $@ | array_flow.rb:1383:16:1383:26 | call to source | call to source | +| array_flow.rb:1388:14:1388:14 | x | array_flow.rb:1383:16:1383:26 | call to source | array_flow.rb:1388:14:1388:14 | x | $@ | array_flow.rb:1383:16:1383:26 | call to source | call to source | +| array_flow.rb:1389:14:1389:14 | y | array_flow.rb:1383:16:1383:26 | call to source | array_flow.rb:1389:14:1389:14 | y | $@ | array_flow.rb:1383:16:1383:26 | call to source | call to source | +| array_flow.rb:1392:10:1392:13 | ...[...] | array_flow.rb:1383:16:1383:26 | call to source | array_flow.rb:1392:10:1392:13 | ...[...] | $@ | array_flow.rb:1383:16:1383:26 | call to source | call to source | +| array_flow.rb:1393:10:1393:13 | ...[...] | array_flow.rb:1383:16:1383:26 | call to source | array_flow.rb:1393:10:1393:13 | ...[...] | $@ | array_flow.rb:1383:16:1383:26 | call to source | call to source | +| array_flow.rb:1399:10:1399:13 | ...[...] | array_flow.rb:1397:16:1397:26 | call to source | array_flow.rb:1399:10:1399:13 | ...[...] | $@ | array_flow.rb:1397:16:1397:26 | call to source | call to source | +| array_flow.rb:1400:10:1400:13 | ...[...] | array_flow.rb:1397:16:1397:26 | call to source | array_flow.rb:1400:10:1400:13 | ...[...] | $@ | array_flow.rb:1397:16:1397:26 | call to source | call to source | +| array_flow.rb:1401:10:1401:13 | ...[...] | array_flow.rb:1397:16:1397:26 | call to source | array_flow.rb:1401:10:1401:13 | ...[...] | $@ | array_flow.rb:1397:16:1397:26 | call to source | call to source | +| array_flow.rb:1402:10:1402:13 | ...[...] | array_flow.rb:1397:16:1397:26 | call to source | array_flow.rb:1402:10:1402:13 | ...[...] | $@ | array_flow.rb:1397:16:1397:26 | call to source | call to source | +| array_flow.rb:1406:14:1406:14 | x | array_flow.rb:1404:16:1404:26 | call to source | array_flow.rb:1406:14:1406:14 | x | $@ | array_flow.rb:1404:16:1404:26 | call to source | call to source | +| array_flow.rb:1407:14:1407:14 | y | array_flow.rb:1404:16:1404:26 | call to source | array_flow.rb:1407:14:1407:14 | y | $@ | array_flow.rb:1404:16:1404:26 | call to source | call to source | +| array_flow.rb:1410:10:1410:13 | ...[...] | array_flow.rb:1404:16:1404:26 | call to source | array_flow.rb:1410:10:1410:13 | ...[...] | $@ | array_flow.rb:1404:16:1404:26 | call to source | call to source | +| array_flow.rb:1411:10:1411:13 | ...[...] | array_flow.rb:1404:16:1404:26 | call to source | array_flow.rb:1411:10:1411:13 | ...[...] | $@ | array_flow.rb:1404:16:1404:26 | call to source | call to source | +| array_flow.rb:1412:10:1412:13 | ...[...] | array_flow.rb:1404:16:1404:26 | call to source | array_flow.rb:1412:10:1412:13 | ...[...] | $@ | array_flow.rb:1404:16:1404:26 | call to source | call to source | +| array_flow.rb:1413:10:1413:13 | ...[...] | array_flow.rb:1404:16:1404:26 | call to source | array_flow.rb:1413:10:1413:13 | ...[...] | $@ | array_flow.rb:1404:16:1404:26 | call to source | call to source | +| array_flow.rb:1419:14:1419:14 | x | array_flow.rb:1417:16:1417:26 | call to source | array_flow.rb:1419:14:1419:14 | x | $@ | array_flow.rb:1417:16:1417:26 | call to source | call to source | +| array_flow.rb:1422:10:1422:13 | ...[...] | array_flow.rb:1417:16:1417:26 | call to source | array_flow.rb:1422:10:1422:13 | ...[...] | $@ | array_flow.rb:1417:16:1417:26 | call to source | call to source | +| array_flow.rb:1423:10:1423:13 | ...[...] | array_flow.rb:1417:16:1417:26 | call to source | array_flow.rb:1423:10:1423:13 | ...[...] | $@ | array_flow.rb:1417:16:1417:26 | call to source | call to source | +| array_flow.rb:1429:14:1429:14 | x | array_flow.rb:1427:16:1427:26 | call to source | array_flow.rb:1429:14:1429:14 | x | $@ | array_flow.rb:1427:16:1427:26 | call to source | call to source | +| array_flow.rb:1432:10:1432:13 | ...[...] | array_flow.rb:1427:16:1427:26 | call to source | array_flow.rb:1432:10:1432:13 | ...[...] | $@ | array_flow.rb:1427:16:1427:26 | call to source | call to source | +| array_flow.rb:1433:10:1433:13 | ...[...] | array_flow.rb:1427:16:1427:26 | call to source | array_flow.rb:1433:10:1433:13 | ...[...] | $@ | array_flow.rb:1427:16:1427:26 | call to source | call to source | +| array_flow.rb:1434:10:1434:13 | ...[...] | array_flow.rb:1427:16:1427:26 | call to source | array_flow.rb:1434:10:1434:13 | ...[...] | $@ | array_flow.rb:1427:16:1427:26 | call to source | call to source | +| array_flow.rb:1435:10:1435:13 | ...[...] | array_flow.rb:1427:16:1427:26 | call to source | array_flow.rb:1435:10:1435:13 | ...[...] | $@ | array_flow.rb:1427:16:1427:26 | call to source | call to source | +| array_flow.rb:1441:14:1441:14 | x | array_flow.rb:1439:16:1439:26 | call to source | array_flow.rb:1441:14:1441:14 | x | $@ | array_flow.rb:1439:16:1439:26 | call to source | call to source | +| array_flow.rb:1451:10:1451:13 | ...[...] | array_flow.rb:1447:16:1447:28 | call to source | array_flow.rb:1451:10:1451:13 | ...[...] | $@ | array_flow.rb:1447:16:1447:28 | call to source | call to source | +| array_flow.rb:1452:10:1452:13 | ...[...] | array_flow.rb:1447:31:1447:43 | call to source | array_flow.rb:1452:10:1452:13 | ...[...] | $@ | array_flow.rb:1447:31:1447:43 | call to source | call to source | +| array_flow.rb:1456:10:1456:13 | ...[...] | array_flow.rb:1447:16:1447:28 | call to source | array_flow.rb:1456:10:1456:13 | ...[...] | $@ | array_flow.rb:1447:16:1447:28 | call to source | call to source | +| array_flow.rb:1458:10:1458:13 | ...[...] | array_flow.rb:1447:16:1447:28 | call to source | array_flow.rb:1458:10:1458:13 | ...[...] | $@ | array_flow.rb:1447:16:1447:28 | call to source | call to source | +| array_flow.rb:1462:10:1462:13 | ...[...] | array_flow.rb:1447:16:1447:28 | call to source | array_flow.rb:1462:10:1462:13 | ...[...] | $@ | array_flow.rb:1447:16:1447:28 | call to source | call to source | +| array_flow.rb:1463:10:1463:13 | ...[...] | array_flow.rb:1447:31:1447:43 | call to source | array_flow.rb:1463:10:1463:13 | ...[...] | $@ | array_flow.rb:1447:31:1447:43 | call to source | call to source | +| array_flow.rb:1464:10:1464:13 | ...[...] | array_flow.rb:1447:16:1447:28 | call to source | array_flow.rb:1464:10:1464:13 | ...[...] | $@ | array_flow.rb:1447:16:1447:28 | call to source | call to source | +| array_flow.rb:1464:10:1464:13 | ...[...] | array_flow.rb:1447:31:1447:43 | call to source | array_flow.rb:1464:10:1464:13 | ...[...] | $@ | array_flow.rb:1447:31:1447:43 | call to source | call to source | +| array_flow.rb:1467:10:1467:13 | ...[...] | array_flow.rb:1447:16:1447:28 | call to source | array_flow.rb:1467:10:1467:13 | ...[...] | $@ | array_flow.rb:1447:16:1447:28 | call to source | call to source | +| array_flow.rb:1467:10:1467:13 | ...[...] | array_flow.rb:1465:12:1465:24 | call to source | array_flow.rb:1467:10:1467:13 | ...[...] | $@ | array_flow.rb:1465:12:1465:24 | call to source | call to source | +| array_flow.rb:1473:14:1473:14 | x | array_flow.rb:1471:16:1471:26 | call to source | array_flow.rb:1473:14:1473:14 | x | $@ | array_flow.rb:1471:16:1471:26 | call to source | call to source | +| array_flow.rb:1478:10:1478:13 | ...[...] | array_flow.rb:1471:16:1471:26 | call to source | array_flow.rb:1478:10:1478:13 | ...[...] | $@ | array_flow.rb:1471:16:1471:26 | call to source | call to source | +| array_flow.rb:1486:10:1486:13 | ...[...] | array_flow.rb:1484:19:1484:29 | call to source | array_flow.rb:1486:10:1486:13 | ...[...] | $@ | array_flow.rb:1484:19:1484:29 | call to source | call to source | +| array_flow.rb:1494:10:1494:13 | ...[...] | array_flow.rb:1490:16:1490:26 | call to source | array_flow.rb:1494:10:1494:13 | ...[...] | $@ | array_flow.rb:1490:16:1490:26 | call to source | call to source | +| array_flow.rb:1512:10:1512:16 | ...[...] | array_flow.rb:1507:14:1507:26 | call to source | array_flow.rb:1512:10:1512:16 | ...[...] | $@ | array_flow.rb:1507:14:1507:26 | call to source | call to source | +| array_flow.rb:1513:10:1513:16 | ...[...] | array_flow.rb:1507:34:1507:46 | call to source | array_flow.rb:1513:10:1513:16 | ...[...] | $@ | array_flow.rb:1507:34:1507:46 | call to source | call to source | +| array_flow.rb:1514:10:1514:16 | ...[...] | array_flow.rb:1507:54:1507:66 | call to source | array_flow.rb:1514:10:1514:16 | ...[...] | $@ | array_flow.rb:1507:54:1507:66 | call to source | call to source | +| array_flow.rb:1522:10:1522:13 | ...[...] | array_flow.rb:1518:16:1518:28 | call to source | array_flow.rb:1522:10:1522:13 | ...[...] | $@ | array_flow.rb:1518:16:1518:28 | call to source | call to source | | array_flow.rb:1522:10:1522:13 | ...[...] | array_flow.rb:1519:13:1519:25 | call to source | array_flow.rb:1522:10:1522:13 | ...[...] | $@ | array_flow.rb:1519:13:1519:25 | call to source | call to source | -| array_flow.rb:1523:10:1523:13 | ...[...] | array_flow.rb:1517:16:1517:28 | call to source | array_flow.rb:1523:10:1523:13 | ...[...] | $@ | array_flow.rb:1517:16:1517:28 | call to source | call to source | -| array_flow.rb:1523:10:1523:13 | ...[...] | array_flow.rb:1518:13:1518:25 | call to source | array_flow.rb:1523:10:1523:13 | ...[...] | $@ | array_flow.rb:1518:13:1518:25 | call to source | call to source | +| array_flow.rb:1522:10:1522:13 | ...[...] | array_flow.rb:1520:13:1520:25 | call to source | array_flow.rb:1522:10:1522:13 | ...[...] | $@ | array_flow.rb:1520:13:1520:25 | call to source | call to source | +| array_flow.rb:1523:10:1523:13 | ...[...] | array_flow.rb:1518:16:1518:28 | call to source | array_flow.rb:1523:10:1523:13 | ...[...] | $@ | array_flow.rb:1518:16:1518:28 | call to source | call to source | | array_flow.rb:1523:10:1523:13 | ...[...] | array_flow.rb:1519:13:1519:25 | call to source | array_flow.rb:1523:10:1523:13 | ...[...] | $@ | array_flow.rb:1519:13:1519:25 | call to source | call to source | -| array_flow.rb:1530:10:1530:13 | ...[...] | array_flow.rb:1527:19:1527:31 | call to source | array_flow.rb:1530:10:1530:13 | ...[...] | $@ | array_flow.rb:1527:19:1527:31 | call to source | call to source | -| array_flow.rb:1530:10:1530:13 | ...[...] | array_flow.rb:1527:34:1527:46 | call to source | array_flow.rb:1530:10:1530:13 | ...[...] | $@ | array_flow.rb:1527:34:1527:46 | call to source | call to source | -| array_flow.rb:1531:10:1531:13 | ...[...] | array_flow.rb:1527:19:1527:31 | call to source | array_flow.rb:1531:10:1531:13 | ...[...] | $@ | array_flow.rb:1527:19:1527:31 | call to source | call to source | -| array_flow.rb:1531:10:1531:13 | ...[...] | array_flow.rb:1527:34:1527:46 | call to source | array_flow.rb:1531:10:1531:13 | ...[...] | $@ | array_flow.rb:1527:34:1527:46 | call to source | call to source | -| array_flow.rb:1534:14:1534:14 | x | array_flow.rb:1527:19:1527:31 | call to source | array_flow.rb:1534:14:1534:14 | x | $@ | array_flow.rb:1527:19:1527:31 | call to source | call to source | -| array_flow.rb:1534:14:1534:14 | x | array_flow.rb:1527:34:1527:46 | call to source | array_flow.rb:1534:14:1534:14 | x | $@ | array_flow.rb:1527:34:1527:46 | call to source | call to source | -| array_flow.rb:1537:10:1537:13 | ...[...] | array_flow.rb:1527:19:1527:31 | call to source | array_flow.rb:1537:10:1537:13 | ...[...] | $@ | array_flow.rb:1527:19:1527:31 | call to source | call to source | -| array_flow.rb:1537:10:1537:13 | ...[...] | array_flow.rb:1527:34:1527:46 | call to source | array_flow.rb:1537:10:1537:13 | ...[...] | $@ | array_flow.rb:1527:34:1527:46 | call to source | call to source | -| array_flow.rb:1543:10:1543:13 | ...[...] | array_flow.rb:1541:16:1541:28 | call to source | array_flow.rb:1543:10:1543:13 | ...[...] | $@ | array_flow.rb:1541:16:1541:28 | call to source | call to source | -| array_flow.rb:1543:10:1543:13 | ...[...] | array_flow.rb:1541:31:1541:43 | call to source | array_flow.rb:1543:10:1543:13 | ...[...] | $@ | array_flow.rb:1541:31:1541:43 | call to source | call to source | -| array_flow.rb:1544:10:1544:13 | ...[...] | array_flow.rb:1541:16:1541:28 | call to source | array_flow.rb:1544:10:1544:13 | ...[...] | $@ | array_flow.rb:1541:16:1541:28 | call to source | call to source | -| array_flow.rb:1544:10:1544:13 | ...[...] | array_flow.rb:1541:31:1541:43 | call to source | array_flow.rb:1544:10:1544:13 | ...[...] | $@ | array_flow.rb:1541:31:1541:43 | call to source | call to source | -| array_flow.rb:1545:10:1545:13 | ...[...] | array_flow.rb:1541:16:1541:28 | call to source | array_flow.rb:1545:10:1545:13 | ...[...] | $@ | array_flow.rb:1541:16:1541:28 | call to source | call to source | -| array_flow.rb:1545:10:1545:13 | ...[...] | array_flow.rb:1541:31:1541:43 | call to source | array_flow.rb:1545:10:1545:13 | ...[...] | $@ | array_flow.rb:1541:31:1541:43 | call to source | call to source | -| array_flow.rb:1546:10:1546:13 | ...[...] | array_flow.rb:1541:16:1541:28 | call to source | array_flow.rb:1546:10:1546:13 | ...[...] | $@ | array_flow.rb:1541:16:1541:28 | call to source | call to source | -| array_flow.rb:1546:10:1546:13 | ...[...] | array_flow.rb:1541:31:1541:43 | call to source | array_flow.rb:1546:10:1546:13 | ...[...] | $@ | array_flow.rb:1541:31:1541:43 | call to source | call to source | -| array_flow.rb:1550:14:1550:14 | x | array_flow.rb:1548:16:1548:28 | call to source | array_flow.rb:1550:14:1550:14 | x | $@ | array_flow.rb:1548:16:1548:28 | call to source | call to source | -| array_flow.rb:1550:14:1550:14 | x | array_flow.rb:1548:31:1548:43 | call to source | array_flow.rb:1550:14:1550:14 | x | $@ | array_flow.rb:1548:31:1548:43 | call to source | call to source | -| array_flow.rb:1553:10:1553:13 | ...[...] | array_flow.rb:1548:16:1548:28 | call to source | array_flow.rb:1553:10:1553:13 | ...[...] | $@ | array_flow.rb:1548:16:1548:28 | call to source | call to source | -| array_flow.rb:1553:10:1553:13 | ...[...] | array_flow.rb:1548:31:1548:43 | call to source | array_flow.rb:1553:10:1553:13 | ...[...] | $@ | array_flow.rb:1548:31:1548:43 | call to source | call to source | -| array_flow.rb:1554:10:1554:13 | ...[...] | array_flow.rb:1548:16:1548:28 | call to source | array_flow.rb:1554:10:1554:13 | ...[...] | $@ | array_flow.rb:1548:16:1548:28 | call to source | call to source | -| array_flow.rb:1554:10:1554:13 | ...[...] | array_flow.rb:1548:31:1548:43 | call to source | array_flow.rb:1554:10:1554:13 | ...[...] | $@ | array_flow.rb:1548:31:1548:43 | call to source | call to source | -| array_flow.rb:1555:10:1555:13 | ...[...] | array_flow.rb:1548:16:1548:28 | call to source | array_flow.rb:1555:10:1555:13 | ...[...] | $@ | array_flow.rb:1548:16:1548:28 | call to source | call to source | -| array_flow.rb:1555:10:1555:13 | ...[...] | array_flow.rb:1548:31:1548:43 | call to source | array_flow.rb:1555:10:1555:13 | ...[...] | $@ | array_flow.rb:1548:31:1548:43 | call to source | call to source | -| array_flow.rb:1556:10:1556:13 | ...[...] | array_flow.rb:1548:16:1548:28 | call to source | array_flow.rb:1556:10:1556:13 | ...[...] | $@ | array_flow.rb:1548:16:1548:28 | call to source | call to source | -| array_flow.rb:1556:10:1556:13 | ...[...] | array_flow.rb:1548:31:1548:43 | call to source | array_flow.rb:1556:10:1556:13 | ...[...] | $@ | array_flow.rb:1548:31:1548:43 | call to source | call to source | -| array_flow.rb:1564:10:1564:13 | ...[...] | array_flow.rb:1561:21:1561:33 | call to source | array_flow.rb:1564:10:1564:13 | ...[...] | $@ | array_flow.rb:1561:21:1561:33 | call to source | call to source | -| array_flow.rb:1567:10:1567:13 | ...[...] | array_flow.rb:1560:16:1560:28 | call to source | array_flow.rb:1567:10:1567:13 | ...[...] | $@ | array_flow.rb:1560:16:1560:28 | call to source | call to source | -| array_flow.rb:1575:10:1575:13 | ...[...] | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1575:10:1575:13 | ...[...] | $@ | array_flow.rb:1571:13:1571:25 | call to source | call to source | -| array_flow.rb:1577:10:1577:13 | ...[...] | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1577:10:1577:13 | ...[...] | $@ | array_flow.rb:1571:13:1571:25 | call to source | call to source | -| array_flow.rb:1580:10:1580:13 | ...[...] | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1580:10:1580:13 | ...[...] | $@ | array_flow.rb:1571:13:1571:25 | call to source | call to source | -| array_flow.rb:1580:10:1580:13 | ...[...] | array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1580:10:1580:13 | ...[...] | $@ | array_flow.rb:1571:31:1571:43 | call to source | call to source | -| array_flow.rb:1581:10:1581:13 | ...[...] | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1581:10:1581:13 | ...[...] | $@ | array_flow.rb:1571:13:1571:25 | call to source | call to source | -| array_flow.rb:1581:10:1581:13 | ...[...] | array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1581:10:1581:13 | ...[...] | $@ | array_flow.rb:1571:31:1571:43 | call to source | call to source | -| array_flow.rb:1584:10:1584:13 | ...[...] | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1584:10:1584:13 | ...[...] | $@ | array_flow.rb:1571:13:1571:25 | call to source | call to source | -| array_flow.rb:1584:10:1584:13 | ...[...] | array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1584:10:1584:13 | ...[...] | $@ | array_flow.rb:1571:31:1571:43 | call to source | call to source | -| array_flow.rb:1585:10:1585:13 | ...[...] | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1585:10:1585:13 | ...[...] | $@ | array_flow.rb:1571:13:1571:25 | call to source | call to source | -| array_flow.rb:1585:10:1585:13 | ...[...] | array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1585:10:1585:13 | ...[...] | $@ | array_flow.rb:1571:31:1571:43 | call to source | call to source | -| array_flow.rb:1588:10:1588:13 | ...[...] | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1588:10:1588:13 | ...[...] | $@ | array_flow.rb:1571:13:1571:25 | call to source | call to source | -| array_flow.rb:1588:10:1588:13 | ...[...] | array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1588:10:1588:13 | ...[...] | $@ | array_flow.rb:1571:31:1571:43 | call to source | call to source | -| array_flow.rb:1589:10:1589:13 | ...[...] | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1589:10:1589:13 | ...[...] | $@ | array_flow.rb:1571:13:1571:25 | call to source | call to source | -| array_flow.rb:1589:10:1589:13 | ...[...] | array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1589:10:1589:13 | ...[...] | $@ | array_flow.rb:1571:31:1571:43 | call to source | call to source | -| array_flow.rb:1590:10:1590:13 | ...[...] | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1590:10:1590:13 | ...[...] | $@ | array_flow.rb:1571:13:1571:25 | call to source | call to source | -| array_flow.rb:1590:10:1590:13 | ...[...] | array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1590:10:1590:13 | ...[...] | $@ | array_flow.rb:1571:31:1571:43 | call to source | call to source | -| array_flow.rb:1591:10:1591:13 | ...[...] | array_flow.rb:1571:13:1571:25 | call to source | array_flow.rb:1591:10:1591:13 | ...[...] | $@ | array_flow.rb:1571:13:1571:25 | call to source | call to source | -| array_flow.rb:1591:10:1591:13 | ...[...] | array_flow.rb:1571:31:1571:43 | call to source | array_flow.rb:1591:10:1591:13 | ...[...] | $@ | array_flow.rb:1571:31:1571:43 | call to source | call to source | -| array_flow.rb:1600:10:1600:16 | ...[...] | array_flow.rb:1597:10:1597:22 | call to source | array_flow.rb:1600:10:1600:16 | ...[...] | $@ | array_flow.rb:1597:10:1597:22 | call to source | call to source | -| array_flow.rb:1601:10:1601:16 | ...[...] | array_flow.rb:1596:13:1596:25 | call to source | array_flow.rb:1601:10:1601:16 | ...[...] | $@ | array_flow.rb:1596:13:1596:25 | call to source | call to source | -| array_flow.rb:1602:10:1602:16 | ...[...] | array_flow.rb:1595:16:1595:28 | call to source | array_flow.rb:1602:10:1602:16 | ...[...] | $@ | array_flow.rb:1595:16:1595:28 | call to source | call to source | -| array_flow.rb:1604:14:1604:17 | ...[...] | array_flow.rb:1595:16:1595:28 | call to source | array_flow.rb:1604:14:1604:17 | ...[...] | $@ | array_flow.rb:1595:16:1595:28 | call to source | call to source | -| array_flow.rb:1605:14:1605:17 | ...[...] | array_flow.rb:1596:13:1596:25 | call to source | array_flow.rb:1605:14:1605:17 | ...[...] | $@ | array_flow.rb:1596:13:1596:25 | call to source | call to source | -| array_flow.rb:1606:14:1606:17 | ...[...] | array_flow.rb:1597:10:1597:22 | call to source | array_flow.rb:1606:14:1606:17 | ...[...] | $@ | array_flow.rb:1597:10:1597:22 | call to source | call to source | -| array_flow.rb:1614:10:1614:13 | ...[...] | array_flow.rb:1611:16:1611:28 | call to source | array_flow.rb:1614:10:1614:13 | ...[...] | $@ | array_flow.rb:1611:16:1611:28 | call to source | call to source | -| array_flow.rb:1614:10:1614:13 | ...[...] | array_flow.rb:1612:13:1612:25 | call to source | array_flow.rb:1614:10:1614:13 | ...[...] | $@ | array_flow.rb:1612:13:1612:25 | call to source | call to source | -| array_flow.rb:1615:10:1615:13 | ...[...] | array_flow.rb:1611:16:1611:28 | call to source | array_flow.rb:1615:10:1615:13 | ...[...] | $@ | array_flow.rb:1611:16:1611:28 | call to source | call to source | -| array_flow.rb:1615:10:1615:13 | ...[...] | array_flow.rb:1612:13:1612:25 | call to source | array_flow.rb:1615:10:1615:13 | ...[...] | $@ | array_flow.rb:1612:13:1612:25 | call to source | call to source | -| array_flow.rb:1616:10:1616:13 | ...[...] | array_flow.rb:1611:16:1611:28 | call to source | array_flow.rb:1616:10:1616:13 | ...[...] | $@ | array_flow.rb:1611:16:1611:28 | call to source | call to source | -| array_flow.rb:1616:10:1616:13 | ...[...] | array_flow.rb:1612:13:1612:25 | call to source | array_flow.rb:1616:10:1616:13 | ...[...] | $@ | array_flow.rb:1612:13:1612:25 | call to source | call to source | -| array_flow.rb:1622:10:1622:16 | ...[...] | array_flow.rb:1621:15:1621:27 | call to source | array_flow.rb:1622:10:1622:16 | ...[...] | $@ | array_flow.rb:1621:15:1621:27 | call to source | call to source | -| array_flow.rb:1625:10:1625:16 | ...[...] | array_flow.rb:1621:15:1621:27 | call to source | array_flow.rb:1625:10:1625:16 | ...[...] | $@ | array_flow.rb:1621:15:1621:27 | call to source | call to source | -| array_flow.rb:1625:10:1625:16 | ...[...] | array_flow.rb:1624:15:1624:27 | call to source | array_flow.rb:1625:10:1625:16 | ...[...] | $@ | array_flow.rb:1624:15:1624:27 | call to source | call to source | -| array_flow.rb:1626:10:1626:16 | ...[...] | array_flow.rb:1621:15:1621:27 | call to source | array_flow.rb:1626:10:1626:16 | ...[...] | $@ | array_flow.rb:1621:15:1621:27 | call to source | call to source | -| array_flow.rb:1638:10:1638:13 | ...[...] | array_flow.rb:1633:16:1633:28 | call to source | array_flow.rb:1638:10:1638:13 | ...[...] | $@ | array_flow.rb:1633:16:1633:28 | call to source | call to source | -| array_flow.rb:1638:10:1638:13 | ...[...] | array_flow.rb:1635:14:1635:26 | call to source | array_flow.rb:1638:10:1638:13 | ...[...] | $@ | array_flow.rb:1635:14:1635:26 | call to source | call to source | -| array_flow.rb:1638:10:1638:13 | ...[...] | array_flow.rb:1637:16:1637:28 | call to source | array_flow.rb:1638:10:1638:13 | ...[...] | $@ | array_flow.rb:1637:16:1637:28 | call to source | call to source | -| array_flow.rb:1640:10:1640:17 | ...[...] | array_flow.rb:1631:12:1631:24 | call to source | array_flow.rb:1640:10:1640:17 | ...[...] | $@ | array_flow.rb:1631:12:1631:24 | call to source | call to source | -| array_flow.rb:1640:10:1640:17 | ...[...] | array_flow.rb:1633:16:1633:28 | call to source | array_flow.rb:1640:10:1640:17 | ...[...] | $@ | array_flow.rb:1633:16:1633:28 | call to source | call to source | -| array_flow.rb:1640:10:1640:17 | ...[...] | array_flow.rb:1635:14:1635:26 | call to source | array_flow.rb:1640:10:1640:17 | ...[...] | $@ | array_flow.rb:1635:14:1635:26 | call to source | call to source | -| array_flow.rb:1640:10:1640:17 | ...[...] | array_flow.rb:1637:16:1637:28 | call to source | array_flow.rb:1640:10:1640:17 | ...[...] | $@ | array_flow.rb:1637:16:1637:28 | call to source | call to source | -| array_flow.rb:1642:10:1642:15 | ...[...] | array_flow.rb:1631:12:1631:24 | call to source | array_flow.rb:1642:10:1642:15 | ...[...] | $@ | array_flow.rb:1631:12:1631:24 | call to source | call to source | -| array_flow.rb:1642:10:1642:15 | ...[...] | array_flow.rb:1633:16:1633:28 | call to source | array_flow.rb:1642:10:1642:15 | ...[...] | $@ | array_flow.rb:1633:16:1633:28 | call to source | call to source | -| array_flow.rb:1642:10:1642:15 | ...[...] | array_flow.rb:1635:14:1635:26 | call to source | array_flow.rb:1642:10:1642:15 | ...[...] | $@ | array_flow.rb:1635:14:1635:26 | call to source | call to source | -| array_flow.rb:1642:10:1642:15 | ...[...] | array_flow.rb:1637:16:1637:28 | call to source | array_flow.rb:1642:10:1642:15 | ...[...] | $@ | array_flow.rb:1637:16:1637:28 | call to source | call to source | +| array_flow.rb:1523:10:1523:13 | ...[...] | array_flow.rb:1520:13:1520:25 | call to source | array_flow.rb:1523:10:1523:13 | ...[...] | $@ | array_flow.rb:1520:13:1520:25 | call to source | call to source | +| array_flow.rb:1524:10:1524:13 | ...[...] | array_flow.rb:1518:16:1518:28 | call to source | array_flow.rb:1524:10:1524:13 | ...[...] | $@ | array_flow.rb:1518:16:1518:28 | call to source | call to source | +| array_flow.rb:1524:10:1524:13 | ...[...] | array_flow.rb:1519:13:1519:25 | call to source | array_flow.rb:1524:10:1524:13 | ...[...] | $@ | array_flow.rb:1519:13:1519:25 | call to source | call to source | +| array_flow.rb:1524:10:1524:13 | ...[...] | array_flow.rb:1520:13:1520:25 | call to source | array_flow.rb:1524:10:1524:13 | ...[...] | $@ | array_flow.rb:1520:13:1520:25 | call to source | call to source | +| array_flow.rb:1531:10:1531:13 | ...[...] | array_flow.rb:1528:19:1528:31 | call to source | array_flow.rb:1531:10:1531:13 | ...[...] | $@ | array_flow.rb:1528:19:1528:31 | call to source | call to source | +| array_flow.rb:1531:10:1531:13 | ...[...] | array_flow.rb:1528:34:1528:46 | call to source | array_flow.rb:1531:10:1531:13 | ...[...] | $@ | array_flow.rb:1528:34:1528:46 | call to source | call to source | +| array_flow.rb:1532:10:1532:13 | ...[...] | array_flow.rb:1528:19:1528:31 | call to source | array_flow.rb:1532:10:1532:13 | ...[...] | $@ | array_flow.rb:1528:19:1528:31 | call to source | call to source | +| array_flow.rb:1532:10:1532:13 | ...[...] | array_flow.rb:1528:34:1528:46 | call to source | array_flow.rb:1532:10:1532:13 | ...[...] | $@ | array_flow.rb:1528:34:1528:46 | call to source | call to source | +| array_flow.rb:1535:14:1535:14 | x | array_flow.rb:1528:19:1528:31 | call to source | array_flow.rb:1535:14:1535:14 | x | $@ | array_flow.rb:1528:19:1528:31 | call to source | call to source | +| array_flow.rb:1535:14:1535:14 | x | array_flow.rb:1528:34:1528:46 | call to source | array_flow.rb:1535:14:1535:14 | x | $@ | array_flow.rb:1528:34:1528:46 | call to source | call to source | +| array_flow.rb:1538:10:1538:13 | ...[...] | array_flow.rb:1528:19:1528:31 | call to source | array_flow.rb:1538:10:1538:13 | ...[...] | $@ | array_flow.rb:1528:19:1528:31 | call to source | call to source | +| array_flow.rb:1538:10:1538:13 | ...[...] | array_flow.rb:1528:34:1528:46 | call to source | array_flow.rb:1538:10:1538:13 | ...[...] | $@ | array_flow.rb:1528:34:1528:46 | call to source | call to source | +| array_flow.rb:1544:10:1544:13 | ...[...] | array_flow.rb:1542:16:1542:28 | call to source | array_flow.rb:1544:10:1544:13 | ...[...] | $@ | array_flow.rb:1542:16:1542:28 | call to source | call to source | +| array_flow.rb:1544:10:1544:13 | ...[...] | array_flow.rb:1542:31:1542:43 | call to source | array_flow.rb:1544:10:1544:13 | ...[...] | $@ | array_flow.rb:1542:31:1542:43 | call to source | call to source | +| array_flow.rb:1545:10:1545:13 | ...[...] | array_flow.rb:1542:16:1542:28 | call to source | array_flow.rb:1545:10:1545:13 | ...[...] | $@ | array_flow.rb:1542:16:1542:28 | call to source | call to source | +| array_flow.rb:1545:10:1545:13 | ...[...] | array_flow.rb:1542:31:1542:43 | call to source | array_flow.rb:1545:10:1545:13 | ...[...] | $@ | array_flow.rb:1542:31:1542:43 | call to source | call to source | +| array_flow.rb:1546:10:1546:13 | ...[...] | array_flow.rb:1542:16:1542:28 | call to source | array_flow.rb:1546:10:1546:13 | ...[...] | $@ | array_flow.rb:1542:16:1542:28 | call to source | call to source | +| array_flow.rb:1546:10:1546:13 | ...[...] | array_flow.rb:1542:31:1542:43 | call to source | array_flow.rb:1546:10:1546:13 | ...[...] | $@ | array_flow.rb:1542:31:1542:43 | call to source | call to source | +| array_flow.rb:1547:10:1547:13 | ...[...] | array_flow.rb:1542:16:1542:28 | call to source | array_flow.rb:1547:10:1547:13 | ...[...] | $@ | array_flow.rb:1542:16:1542:28 | call to source | call to source | +| array_flow.rb:1547:10:1547:13 | ...[...] | array_flow.rb:1542:31:1542:43 | call to source | array_flow.rb:1547:10:1547:13 | ...[...] | $@ | array_flow.rb:1542:31:1542:43 | call to source | call to source | +| array_flow.rb:1551:14:1551:14 | x | array_flow.rb:1549:16:1549:28 | call to source | array_flow.rb:1551:14:1551:14 | x | $@ | array_flow.rb:1549:16:1549:28 | call to source | call to source | +| array_flow.rb:1551:14:1551:14 | x | array_flow.rb:1549:31:1549:43 | call to source | array_flow.rb:1551:14:1551:14 | x | $@ | array_flow.rb:1549:31:1549:43 | call to source | call to source | +| array_flow.rb:1554:10:1554:13 | ...[...] | array_flow.rb:1549:16:1549:28 | call to source | array_flow.rb:1554:10:1554:13 | ...[...] | $@ | array_flow.rb:1549:16:1549:28 | call to source | call to source | +| array_flow.rb:1554:10:1554:13 | ...[...] | array_flow.rb:1549:31:1549:43 | call to source | array_flow.rb:1554:10:1554:13 | ...[...] | $@ | array_flow.rb:1549:31:1549:43 | call to source | call to source | +| array_flow.rb:1555:10:1555:13 | ...[...] | array_flow.rb:1549:16:1549:28 | call to source | array_flow.rb:1555:10:1555:13 | ...[...] | $@ | array_flow.rb:1549:16:1549:28 | call to source | call to source | +| array_flow.rb:1555:10:1555:13 | ...[...] | array_flow.rb:1549:31:1549:43 | call to source | array_flow.rb:1555:10:1555:13 | ...[...] | $@ | array_flow.rb:1549:31:1549:43 | call to source | call to source | +| array_flow.rb:1556:10:1556:13 | ...[...] | array_flow.rb:1549:16:1549:28 | call to source | array_flow.rb:1556:10:1556:13 | ...[...] | $@ | array_flow.rb:1549:16:1549:28 | call to source | call to source | +| array_flow.rb:1556:10:1556:13 | ...[...] | array_flow.rb:1549:31:1549:43 | call to source | array_flow.rb:1556:10:1556:13 | ...[...] | $@ | array_flow.rb:1549:31:1549:43 | call to source | call to source | +| array_flow.rb:1557:10:1557:13 | ...[...] | array_flow.rb:1549:16:1549:28 | call to source | array_flow.rb:1557:10:1557:13 | ...[...] | $@ | array_flow.rb:1549:16:1549:28 | call to source | call to source | +| array_flow.rb:1557:10:1557:13 | ...[...] | array_flow.rb:1549:31:1549:43 | call to source | array_flow.rb:1557:10:1557:13 | ...[...] | $@ | array_flow.rb:1549:31:1549:43 | call to source | call to source | +| array_flow.rb:1565:10:1565:13 | ...[...] | array_flow.rb:1562:21:1562:33 | call to source | array_flow.rb:1565:10:1565:13 | ...[...] | $@ | array_flow.rb:1562:21:1562:33 | call to source | call to source | +| array_flow.rb:1568:10:1568:13 | ...[...] | array_flow.rb:1561:16:1561:28 | call to source | array_flow.rb:1568:10:1568:13 | ...[...] | $@ | array_flow.rb:1561:16:1561:28 | call to source | call to source | +| array_flow.rb:1576:10:1576:13 | ...[...] | array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1576:10:1576:13 | ...[...] | $@ | array_flow.rb:1572:13:1572:25 | call to source | call to source | +| array_flow.rb:1578:10:1578:13 | ...[...] | array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1578:10:1578:13 | ...[...] | $@ | array_flow.rb:1572:13:1572:25 | call to source | call to source | +| array_flow.rb:1581:10:1581:13 | ...[...] | array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1581:10:1581:13 | ...[...] | $@ | array_flow.rb:1572:13:1572:25 | call to source | call to source | +| array_flow.rb:1581:10:1581:13 | ...[...] | array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1581:10:1581:13 | ...[...] | $@ | array_flow.rb:1572:31:1572:43 | call to source | call to source | +| array_flow.rb:1582:10:1582:13 | ...[...] | array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1582:10:1582:13 | ...[...] | $@ | array_flow.rb:1572:13:1572:25 | call to source | call to source | +| array_flow.rb:1582:10:1582:13 | ...[...] | array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1582:10:1582:13 | ...[...] | $@ | array_flow.rb:1572:31:1572:43 | call to source | call to source | +| array_flow.rb:1585:10:1585:13 | ...[...] | array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1585:10:1585:13 | ...[...] | $@ | array_flow.rb:1572:13:1572:25 | call to source | call to source | +| array_flow.rb:1585:10:1585:13 | ...[...] | array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1585:10:1585:13 | ...[...] | $@ | array_flow.rb:1572:31:1572:43 | call to source | call to source | +| array_flow.rb:1586:10:1586:13 | ...[...] | array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1586:10:1586:13 | ...[...] | $@ | array_flow.rb:1572:13:1572:25 | call to source | call to source | +| array_flow.rb:1586:10:1586:13 | ...[...] | array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1586:10:1586:13 | ...[...] | $@ | array_flow.rb:1572:31:1572:43 | call to source | call to source | +| array_flow.rb:1589:10:1589:13 | ...[...] | array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1589:10:1589:13 | ...[...] | $@ | array_flow.rb:1572:13:1572:25 | call to source | call to source | +| array_flow.rb:1589:10:1589:13 | ...[...] | array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1589:10:1589:13 | ...[...] | $@ | array_flow.rb:1572:31:1572:43 | call to source | call to source | +| array_flow.rb:1590:10:1590:13 | ...[...] | array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1590:10:1590:13 | ...[...] | $@ | array_flow.rb:1572:13:1572:25 | call to source | call to source | +| array_flow.rb:1590:10:1590:13 | ...[...] | array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1590:10:1590:13 | ...[...] | $@ | array_flow.rb:1572:31:1572:43 | call to source | call to source | +| array_flow.rb:1591:10:1591:13 | ...[...] | array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1591:10:1591:13 | ...[...] | $@ | array_flow.rb:1572:13:1572:25 | call to source | call to source | +| array_flow.rb:1591:10:1591:13 | ...[...] | array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1591:10:1591:13 | ...[...] | $@ | array_flow.rb:1572:31:1572:43 | call to source | call to source | +| array_flow.rb:1592:10:1592:13 | ...[...] | array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1592:10:1592:13 | ...[...] | $@ | array_flow.rb:1572:13:1572:25 | call to source | call to source | +| array_flow.rb:1592:10:1592:13 | ...[...] | array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1592:10:1592:13 | ...[...] | $@ | array_flow.rb:1572:31:1572:43 | call to source | call to source | +| array_flow.rb:1601:10:1601:16 | ...[...] | array_flow.rb:1598:10:1598:22 | call to source | array_flow.rb:1601:10:1601:16 | ...[...] | $@ | array_flow.rb:1598:10:1598:22 | call to source | call to source | +| array_flow.rb:1602:10:1602:16 | ...[...] | array_flow.rb:1597:13:1597:25 | call to source | array_flow.rb:1602:10:1602:16 | ...[...] | $@ | array_flow.rb:1597:13:1597:25 | call to source | call to source | +| array_flow.rb:1603:10:1603:16 | ...[...] | array_flow.rb:1596:16:1596:28 | call to source | array_flow.rb:1603:10:1603:16 | ...[...] | $@ | array_flow.rb:1596:16:1596:28 | call to source | call to source | +| array_flow.rb:1605:14:1605:17 | ...[...] | array_flow.rb:1596:16:1596:28 | call to source | array_flow.rb:1605:14:1605:17 | ...[...] | $@ | array_flow.rb:1596:16:1596:28 | call to source | call to source | +| array_flow.rb:1606:14:1606:17 | ...[...] | array_flow.rb:1597:13:1597:25 | call to source | array_flow.rb:1606:14:1606:17 | ...[...] | $@ | array_flow.rb:1597:13:1597:25 | call to source | call to source | +| array_flow.rb:1607:14:1607:17 | ...[...] | array_flow.rb:1598:10:1598:22 | call to source | array_flow.rb:1607:14:1607:17 | ...[...] | $@ | array_flow.rb:1598:10:1598:22 | call to source | call to source | +| array_flow.rb:1615:10:1615:13 | ...[...] | array_flow.rb:1612:16:1612:28 | call to source | array_flow.rb:1615:10:1615:13 | ...[...] | $@ | array_flow.rb:1612:16:1612:28 | call to source | call to source | +| array_flow.rb:1615:10:1615:13 | ...[...] | array_flow.rb:1613:13:1613:25 | call to source | array_flow.rb:1615:10:1615:13 | ...[...] | $@ | array_flow.rb:1613:13:1613:25 | call to source | call to source | +| array_flow.rb:1616:10:1616:13 | ...[...] | array_flow.rb:1612:16:1612:28 | call to source | array_flow.rb:1616:10:1616:13 | ...[...] | $@ | array_flow.rb:1612:16:1612:28 | call to source | call to source | +| array_flow.rb:1616:10:1616:13 | ...[...] | array_flow.rb:1613:13:1613:25 | call to source | array_flow.rb:1616:10:1616:13 | ...[...] | $@ | array_flow.rb:1613:13:1613:25 | call to source | call to source | +| array_flow.rb:1617:10:1617:13 | ...[...] | array_flow.rb:1612:16:1612:28 | call to source | array_flow.rb:1617:10:1617:13 | ...[...] | $@ | array_flow.rb:1612:16:1612:28 | call to source | call to source | +| array_flow.rb:1617:10:1617:13 | ...[...] | array_flow.rb:1613:13:1613:25 | call to source | array_flow.rb:1617:10:1617:13 | ...[...] | $@ | array_flow.rb:1613:13:1613:25 | call to source | call to source | +| array_flow.rb:1623:10:1623:16 | ...[...] | array_flow.rb:1622:15:1622:27 | call to source | array_flow.rb:1623:10:1623:16 | ...[...] | $@ | array_flow.rb:1622:15:1622:27 | call to source | call to source | +| array_flow.rb:1626:10:1626:16 | ...[...] | array_flow.rb:1622:15:1622:27 | call to source | array_flow.rb:1626:10:1626:16 | ...[...] | $@ | array_flow.rb:1622:15:1622:27 | call to source | call to source | +| array_flow.rb:1626:10:1626:16 | ...[...] | array_flow.rb:1625:15:1625:27 | call to source | array_flow.rb:1626:10:1626:16 | ...[...] | $@ | array_flow.rb:1625:15:1625:27 | call to source | call to source | +| array_flow.rb:1627:10:1627:16 | ...[...] | array_flow.rb:1622:15:1622:27 | call to source | array_flow.rb:1627:10:1627:16 | ...[...] | $@ | array_flow.rb:1622:15:1622:27 | call to source | call to source | +| array_flow.rb:1639:10:1639:13 | ...[...] | array_flow.rb:1634:16:1634:28 | call to source | array_flow.rb:1639:10:1639:13 | ...[...] | $@ | array_flow.rb:1634:16:1634:28 | call to source | call to source | +| array_flow.rb:1639:10:1639:13 | ...[...] | array_flow.rb:1636:14:1636:26 | call to source | array_flow.rb:1639:10:1639:13 | ...[...] | $@ | array_flow.rb:1636:14:1636:26 | call to source | call to source | +| array_flow.rb:1639:10:1639:13 | ...[...] | array_flow.rb:1638:16:1638:28 | call to source | array_flow.rb:1639:10:1639:13 | ...[...] | $@ | array_flow.rb:1638:16:1638:28 | call to source | call to source | +| array_flow.rb:1641:10:1641:17 | ...[...] | array_flow.rb:1632:12:1632:24 | call to source | array_flow.rb:1641:10:1641:17 | ...[...] | $@ | array_flow.rb:1632:12:1632:24 | call to source | call to source | +| array_flow.rb:1641:10:1641:17 | ...[...] | array_flow.rb:1634:16:1634:28 | call to source | array_flow.rb:1641:10:1641:17 | ...[...] | $@ | array_flow.rb:1634:16:1634:28 | call to source | call to source | +| array_flow.rb:1641:10:1641:17 | ...[...] | array_flow.rb:1636:14:1636:26 | call to source | array_flow.rb:1641:10:1641:17 | ...[...] | $@ | array_flow.rb:1636:14:1636:26 | call to source | call to source | +| array_flow.rb:1641:10:1641:17 | ...[...] | array_flow.rb:1638:16:1638:28 | call to source | array_flow.rb:1641:10:1641:17 | ...[...] | $@ | array_flow.rb:1638:16:1638:28 | call to source | call to source | +| array_flow.rb:1643:10:1643:15 | ...[...] | array_flow.rb:1632:12:1632:24 | call to source | array_flow.rb:1643:10:1643:15 | ...[...] | $@ | array_flow.rb:1632:12:1632:24 | call to source | call to source | +| array_flow.rb:1643:10:1643:15 | ...[...] | array_flow.rb:1634:16:1634:28 | call to source | array_flow.rb:1643:10:1643:15 | ...[...] | $@ | array_flow.rb:1634:16:1634:28 | call to source | call to source | +| array_flow.rb:1643:10:1643:15 | ...[...] | array_flow.rb:1636:14:1636:26 | call to source | array_flow.rb:1643:10:1643:15 | ...[...] | $@ | array_flow.rb:1636:14:1636:26 | call to source | call to source | +| array_flow.rb:1643:10:1643:15 | ...[...] | array_flow.rb:1638:16:1638:28 | call to source | array_flow.rb:1643:10:1643:15 | ...[...] | $@ | array_flow.rb:1638:16:1638:28 | call to source | call to source | diff --git a/ruby/ql/test/library-tests/dataflow/array-flow/array_flow.rb b/ruby/ql/test/library-tests/dataflow/array-flow/array_flow.rb index 6c617945c2e..fb5ee3c728a 100644 --- a/ruby/ql/test/library-tests/dataflow/array-flow/array_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/array-flow/array_flow.rb @@ -355,7 +355,7 @@ def m40(i) a = [0, 1, source(40.1), [0, source(40.2)]] sink(a.dig(0)) sink(a.dig(2)) # $ hasValueFlow=40.1 - sink(a.dig(i)) # $ hasValueFlow=40.1 + sink(a.dig(i)) # $ hasValueFlow=40.1 $ hasTaintFlow=40.2 sink(a.dig(3,0)) sink(a.dig(3,1)) # $ hasValueFlow=40.2 end @@ -1214,8 +1214,9 @@ def m111(i) b = a.slice i # If `i` is an integer: sink b # $ hasValueFlow=111.1 $ hasValueFlow=111.2 - # If `i` is a range/aseq: - sink b[0] # $ hasValueFlow=111.1 $ hasValueFlow=111.2 + # Could in principle happen if `i` is a range/aseq, but we don't model that + # Instead, flow happens because the array read is lifted to a taint step + sink b[0] # $ SPURIOUS: hasTaintFlow=111.1 $ SPURIOUS: hasTaintFlow=111.2 b = a.slice(2, 3) sink b[0] # $ hasValueFlow=111.1 diff --git a/ruby/ql/test/library-tests/dataflow/array-flow/type-tracking-array-flow.expected b/ruby/ql/test/library-tests/dataflow/array-flow/type-tracking-array-flow.expected index d4416fc3e56..4352b9471cf 100644 --- a/ruby/ql/test/library-tests/dataflow/array-flow/type-tracking-array-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/array-flow/type-tracking-array-flow.expected @@ -1,4 +1,3 @@ -failures testFailures | array_flow.rb:107:10:107:13 | ...[...] | Unexpected result: hasValueFlow=11.2 | | array_flow.rb:179:28:179:46 | # $ hasValueFlow=19 | Missing result:hasValueFlow=19 | @@ -109,55 +108,56 @@ testFailures | array_flow.rb:1168:10:1168:13 | ...[...] | Unexpected result: hasValueFlow=108.2 | | array_flow.rb:1170:10:1170:13 | ...[...] | Unexpected result: hasValueFlow=108.1 | | array_flow.rb:1172:10:1172:13 | ...[...] | Unexpected result: hasValueFlow=108.2 | -| array_flow.rb:1223:10:1223:13 | ...[...] | Unexpected result: hasValueFlow=111.1 | -| array_flow.rb:1232:10:1232:13 | ...[...] | Unexpected result: hasValueFlow=111.1 | -| array_flow.rb:1237:10:1237:13 | ...[...] | Unexpected result: hasValueFlow=111.1 | -| array_flow.rb:1261:10:1261:10 | b | Unexpected result: hasValueFlow=112.2 | -| array_flow.rb:1264:10:1264:13 | ...[...] | Unexpected result: hasValueFlow=112.1 | -| array_flow.rb:1264:10:1264:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | -| array_flow.rb:1285:10:1285:13 | ...[...] | Unexpected result: hasValueFlow=112.1 | -| array_flow.rb:1287:10:1287:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | -| array_flow.rb:1291:10:1291:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | -| array_flow.rb:1296:10:1296:13 | ...[...] | Unexpected result: hasValueFlow=112.1 | -| array_flow.rb:1298:10:1298:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | -| array_flow.rb:1302:10:1302:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | -| array_flow.rb:1307:10:1307:13 | ...[...] | Unexpected result: hasValueFlow=112.1 | -| array_flow.rb:1309:10:1309:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | -| array_flow.rb:1341:10:1341:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | -| array_flow.rb:1345:10:1345:13 | ...[...] | Unexpected result: hasValueFlow=112.1 | -| array_flow.rb:1448:10:1448:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | +| array_flow.rb:1224:10:1224:13 | ...[...] | Unexpected result: hasValueFlow=111.1 | +| array_flow.rb:1233:10:1233:13 | ...[...] | Unexpected result: hasValueFlow=111.1 | +| array_flow.rb:1238:10:1238:13 | ...[...] | Unexpected result: hasValueFlow=111.1 | +| array_flow.rb:1262:10:1262:10 | b | Unexpected result: hasValueFlow=112.2 | +| array_flow.rb:1265:10:1265:13 | ...[...] | Unexpected result: hasValueFlow=112.1 | +| array_flow.rb:1265:10:1265:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | +| array_flow.rb:1286:10:1286:13 | ...[...] | Unexpected result: hasValueFlow=112.1 | +| array_flow.rb:1288:10:1288:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | +| array_flow.rb:1292:10:1292:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | +| array_flow.rb:1297:10:1297:13 | ...[...] | Unexpected result: hasValueFlow=112.1 | +| array_flow.rb:1299:10:1299:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | +| array_flow.rb:1303:10:1303:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | +| array_flow.rb:1308:10:1308:13 | ...[...] | Unexpected result: hasValueFlow=112.1 | +| array_flow.rb:1310:10:1310:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | +| array_flow.rb:1342:10:1342:13 | ...[...] | Unexpected result: hasValueFlow=112.2 | +| array_flow.rb:1346:10:1346:13 | ...[...] | Unexpected result: hasValueFlow=112.1 | | array_flow.rb:1449:10:1449:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | | array_flow.rb:1450:10:1450:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | | array_flow.rb:1451:10:1451:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | -| array_flow.rb:1453:10:1453:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | +| array_flow.rb:1452:10:1452:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | | array_flow.rb:1454:10:1454:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | | array_flow.rb:1455:10:1455:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | -| array_flow.rb:1456:10:1456:13 | ...[...] | Unexpected result: hasValueFlow=121.2 | | array_flow.rb:1456:10:1456:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | | array_flow.rb:1457:10:1457:13 | ...[...] | Unexpected result: hasValueFlow=121.2 | | array_flow.rb:1457:10:1457:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | -| array_flow.rb:1459:10:1459:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | +| array_flow.rb:1458:10:1458:13 | ...[...] | Unexpected result: hasValueFlow=121.2 | +| array_flow.rb:1458:10:1458:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | | array_flow.rb:1460:10:1460:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | | array_flow.rb:1461:10:1461:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | | array_flow.rb:1462:10:1462:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | | array_flow.rb:1463:10:1463:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | -| array_flow.rb:1511:18:1511:39 | # $ hasValueFlow=128.1 | Missing result:hasValueFlow=128.1 | -| array_flow.rb:1512:18:1512:39 | # $ hasValueFlow=128.2 | Missing result:hasValueFlow=128.2 | -| array_flow.rb:1513:18:1513:39 | # $ hasValueFlow=128.3 | Missing result:hasValueFlow=128.3 | -| array_flow.rb:1562:10:1562:13 | ...[...] | Unexpected result: hasValueFlow=132.1 | -| array_flow.rb:1562:10:1562:13 | ...[...] | Unexpected result: hasValueFlow=132.2 | +| array_flow.rb:1464:10:1464:13 | ...[...] | Unexpected result: hasValueFlow=121.3 | +| array_flow.rb:1512:18:1512:39 | # $ hasValueFlow=128.1 | Missing result:hasValueFlow=128.1 | +| array_flow.rb:1513:18:1513:39 | # $ hasValueFlow=128.2 | Missing result:hasValueFlow=128.2 | +| array_flow.rb:1514:18:1514:39 | # $ hasValueFlow=128.3 | Missing result:hasValueFlow=128.3 | | array_flow.rb:1563:10:1563:13 | ...[...] | Unexpected result: hasValueFlow=132.1 | | array_flow.rb:1563:10:1563:13 | ...[...] | Unexpected result: hasValueFlow=132.2 | | array_flow.rb:1564:10:1564:13 | ...[...] | Unexpected result: hasValueFlow=132.1 | +| array_flow.rb:1564:10:1564:13 | ...[...] | Unexpected result: hasValueFlow=132.2 | | array_flow.rb:1565:10:1565:13 | ...[...] | Unexpected result: hasValueFlow=132.1 | -| array_flow.rb:1565:10:1565:13 | ...[...] | Unexpected result: hasValueFlow=132.2 | | array_flow.rb:1566:10:1566:13 | ...[...] | Unexpected result: hasValueFlow=132.1 | | array_flow.rb:1566:10:1566:13 | ...[...] | Unexpected result: hasValueFlow=132.2 | +| array_flow.rb:1567:10:1567:13 | ...[...] | Unexpected result: hasValueFlow=132.1 | | array_flow.rb:1567:10:1567:13 | ...[...] | Unexpected result: hasValueFlow=132.2 | -| array_flow.rb:1600:18:1600:39 | # $ hasValueFlow=134.3 | Missing result:hasValueFlow=134.3 | -| array_flow.rb:1601:18:1601:39 | # $ hasValueFlow=134.2 | Missing result:hasValueFlow=134.2 | -| array_flow.rb:1602:18:1602:39 | # $ hasValueFlow=134.1 | Missing result:hasValueFlow=134.1 | -| array_flow.rb:1622:19:1622:40 | # $ hasValueFlow=136.1 | Missing result:hasValueFlow=136.1 | -| array_flow.rb:1625:19:1625:70 | # $ hasValueFlow=136.2 $ SPURIOUS hasValueFlow=136.1 | Missing result:hasValueFlow=136.1 | -| array_flow.rb:1625:19:1625:70 | # $ hasValueFlow=136.2 $ SPURIOUS hasValueFlow=136.1 | Missing result:hasValueFlow=136.2 | -| array_flow.rb:1626:19:1626:40 | # $ hasValueFlow=136.1 | Missing result:hasValueFlow=136.1 | +| array_flow.rb:1568:10:1568:13 | ...[...] | Unexpected result: hasValueFlow=132.2 | +| array_flow.rb:1601:18:1601:39 | # $ hasValueFlow=134.3 | Missing result:hasValueFlow=134.3 | +| array_flow.rb:1602:18:1602:39 | # $ hasValueFlow=134.2 | Missing result:hasValueFlow=134.2 | +| array_flow.rb:1603:18:1603:39 | # $ hasValueFlow=134.1 | Missing result:hasValueFlow=134.1 | +| array_flow.rb:1623:19:1623:40 | # $ hasValueFlow=136.1 | Missing result:hasValueFlow=136.1 | +| array_flow.rb:1626:19:1626:70 | # $ hasValueFlow=136.2 $ SPURIOUS hasValueFlow=136.1 | Missing result:hasValueFlow=136.1 | +| array_flow.rb:1626:19:1626:70 | # $ hasValueFlow=136.2 $ SPURIOUS hasValueFlow=136.1 | Missing result:hasValueFlow=136.2 | +| array_flow.rb:1627:19:1627:40 | # $ hasValueFlow=136.1 | Missing result:hasValueFlow=136.1 | +failures diff --git a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected index 145a9b78952..ee92948044d 100644 --- a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected +++ b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected @@ -74,10 +74,14 @@ edges | semantics.rb:60:5:60:5 | a | semantics.rb:66:14:66:15 | &... | | semantics.rb:60:9:60:18 | call to source | semantics.rb:60:5:60:5 | a | | semantics.rb:60:9:60:18 | call to source | semantics.rb:60:5:60:5 | a | +| semantics.rb:61:10:61:15 | call to s10 [element 0] | semantics.rb:61:10:61:15 | call to s10 | | semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 | | semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 | +| semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 [element 0] | +| semantics.rb:62:10:62:18 | call to s10 [element 1] | semantics.rb:62:10:62:18 | call to s10 | | semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 | | semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 | +| semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 [element 1] | | semantics.rb:63:19:63:19 | a | semantics.rb:63:10:63:20 | call to s10 | | semantics.rb:63:19:63:19 | a | semantics.rb:63:10:63:20 | call to s10 | | semantics.rb:64:27:64:27 | a | semantics.rb:64:10:64:28 | call to s10 | @@ -1118,10 +1122,12 @@ nodes | semantics.rb:60:9:60:18 | call to source | semmle.label | call to source | | semantics.rb:61:10:61:15 | call to s10 | semmle.label | call to s10 | | semantics.rb:61:10:61:15 | call to s10 | semmle.label | call to s10 | +| semantics.rb:61:10:61:15 | call to s10 [element 0] | semmle.label | call to s10 [element 0] | | semantics.rb:61:14:61:14 | a | semmle.label | a | | semantics.rb:61:14:61:14 | a | semmle.label | a | | semantics.rb:62:10:62:18 | call to s10 | semmle.label | call to s10 | | semantics.rb:62:10:62:18 | call to s10 | semmle.label | call to s10 | +| semantics.rb:62:10:62:18 | call to s10 [element 1] | semmle.label | call to s10 [element 1] | | semantics.rb:62:17:62:17 | a | semmle.label | a | | semantics.rb:62:17:62:17 | a | semmle.label | a | | semantics.rb:63:10:63:20 | call to s10 | semmle.label | call to s10 | diff --git a/ruby/ql/test/library-tests/dataflow/string-flow/string_flow.rb b/ruby/ql/test/library-tests/dataflow/string-flow/string_flow.rb index 3336aaae74b..5ec846bcedd 100644 --- a/ruby/ql/test/library-tests/dataflow/string-flow/string_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/string-flow/string_flow.rb @@ -216,7 +216,7 @@ def m_partition sink b[0] # $ hasTaintFlow=a sink b[1] # $ hasTaintFlow=a sink b[2] # $ hasTaintFlow=a - sink b[3] + sink b[3] # $ hasTaintFlow=a (because of the flow summary for Array#partition) end def m_replace diff --git a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected index bbfebfb4233..bdee5aaba8c 100644 --- a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected +++ b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected @@ -28,6 +28,7 @@ edges | summaries.rb:1:11:1:36 | call to identity | summaries.rb:128:14:128:20 | tainted | | summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | | summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | | summaries.rb:1:11:1:36 | call to identity | summaries.rb:132:21:132:27 | tainted | | summaries.rb:1:11:1:36 | call to identity | summaries.rb:132:21:132:27 | tainted | | summaries.rb:1:11:1:36 | call to identity | summaries.rb:135:26:135:32 | tainted | @@ -229,6 +230,7 @@ edges | summaries.rb:112:6:112:6 | x [@value] | summaries.rb:112:6:112:16 | call to get_value | | summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:128:14:128:20 | tainted | | summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:131:16:131:22 | tainted | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:131:16:131:22 | tainted | | summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:132:21:132:27 | tainted | | summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:135:26:135:32 | tainted | | summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:137:23:137:29 | tainted | @@ -248,6 +250,7 @@ edges | summaries.rb:122:33:122:33 | [post] z | summaries.rb:125:6:125:6 | z | | summaries.rb:128:1:128:1 | [post] x | summaries.rb:129:6:129:6 | x | | summaries.rb:128:14:128:20 | tainted | summaries.rb:128:1:128:1 | [post] x | +| summaries.rb:131:16:131:22 | tainted | summaries.rb:131:1:131:23 | * | | summaries.rb:157:14:160:3 | do ... end [captured tainted] | summaries.rb:158:15:158:21 | tainted | | summaries.rb:157:14:160:3 | do ... end [captured tainted] | summaries.rb:158:15:158:21 | tainted | nodes @@ -466,6 +469,8 @@ nodes | summaries.rb:128:1:128:1 | [post] x | semmle.label | [post] x | | summaries.rb:128:14:128:20 | tainted | semmle.label | tainted | | summaries.rb:129:6:129:6 | x | semmle.label | x | +| summaries.rb:131:1:131:23 | * | semmle.label | * | +| summaries.rb:131:16:131:22 | tainted | semmle.label | tainted | | summaries.rb:131:16:131:22 | tainted | semmle.label | tainted | | summaries.rb:131:16:131:22 | tainted | semmle.label | tainted | | summaries.rb:132:21:132:27 | tainted | semmle.label | tainted | @@ -579,6 +584,7 @@ invalidSpecComponent | summaries.rb:124:6:124:6 | y | summaries.rb:1:20:1:36 | call to source | summaries.rb:124:6:124:6 | y | $@ | summaries.rb:1:20:1:36 | call to source | call to source | | summaries.rb:125:6:125:6 | z | summaries.rb:1:20:1:36 | call to source | summaries.rb:125:6:125:6 | z | $@ | summaries.rb:1:20:1:36 | call to source | call to source | | summaries.rb:129:6:129:6 | x | summaries.rb:1:20:1:36 | call to source | summaries.rb:129:6:129:6 | x | $@ | summaries.rb:1:20:1:36 | call to source | call to source | +| summaries.rb:131:1:131:23 | * | summaries.rb:1:20:1:36 | call to source | summaries.rb:131:1:131:23 | * | $@ | summaries.rb:1:20:1:36 | call to source | call to source | | summaries.rb:131:16:131:22 | tainted | summaries.rb:1:20:1:36 | call to source | summaries.rb:131:16:131:22 | tainted | $@ | summaries.rb:1:20:1:36 | call to source | call to source | | summaries.rb:131:16:131:22 | tainted | summaries.rb:1:20:1:36 | call to source | summaries.rb:131:16:131:22 | tainted | $@ | summaries.rb:1:20:1:36 | call to source | call to source | | summaries.rb:132:21:132:27 | tainted | summaries.rb:1:20:1:36 | call to source | summaries.rb:132:21:132:27 | tainted | $@ | summaries.rb:1:20:1:36 | call to source | call to source | diff --git a/ruby/ql/test/library-tests/dataflow/summaries/summaries.rb b/ruby/ql/test/library-tests/dataflow/summaries/summaries.rb index 12907abb0a3..3b1da4ab637 100644 --- a/ruby/ql/test/library-tests/dataflow/summaries/summaries.rb +++ b/ruby/ql/test/library-tests/dataflow/summaries/summaries.rb @@ -128,7 +128,7 @@ x = Foo.new x.flowToSelf(tainted) sink(x) # $ hasTaintFlow=tainted -Foo.sinkAnyArg(tainted) # $ hasValueFlow=tainted +Foo.sinkAnyArg(tainted) # $ hasValueFlow=tainted $ hasTaintFlow=tainted Foo.sinkAnyArg(key: tainted) # $ hasValueFlow=tainted Foo.sinkAnyNamedArg(tainted) diff --git a/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected index 15884246b73..3cd903c1910 100644 --- a/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected @@ -159,9 +159,7 @@ track | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element | type_tracker.rb:38:13:38:25 | call to [] | -| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element | type_tracker.rb:44:5:44:13 | ...[...] | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element | type_tracker.rb:50:14:50:26 | call to [] | -| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 0 | type_tracker.rb:35:11:35:15 | * | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 0 or unknown | type_tracker.rb:35:11:35:15 | call to [] | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 0 or unknown | type_tracker.rb:42:14:42:26 | call to [] | @@ -223,32 +221,26 @@ track | type_tracker.rb:42:14:42:26 | call to [] | type tracker without call steps | type_tracker.rb:42:14:42:26 | call to [] | | type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps | type_tracker.rb:42:15:42:15 | 1 | | type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps with content element | type_tracker.rb:44:5:44:13 | ...[...] | | type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:42:14:42:26 | * | | type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps with content element 0 or unknown | type_tracker.rb:42:14:42:26 | call to [] | | type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps | type_tracker.rb:42:17:42:17 | 2 | | type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps with content element | type_tracker.rb:44:5:44:13 | ...[...] | | type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:42:14:42:26 | * | | type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps with content element 1 or unknown | type_tracker.rb:42:14:42:26 | call to [] | | type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps | type_tracker.rb:42:19:42:19 | 3 | | type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps with content element | type_tracker.rb:44:5:44:13 | ...[...] | | type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:42:14:42:26 | * | | type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps with content element 2 or unknown | type_tracker.rb:42:14:42:26 | call to [] | | type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps | type_tracker.rb:42:21:42:21 | 4 | | type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps with content element | type_tracker.rb:44:5:44:13 | ...[...] | | type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:42:14:42:26 | * | | type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps with content element 3 or unknown | type_tracker.rb:42:14:42:26 | call to [] | | type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps | type_tracker.rb:42:23:42:23 | 5 | | type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps with content element | type_tracker.rb:44:5:44:13 | ...[...] | | type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:42:14:42:26 | * | | type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps with content element 4 or unknown | type_tracker.rb:42:14:42:26 | call to [] | | type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps | type_tracker.rb:42:25:42:25 | 6 | | type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps with content element | type_tracker.rb:44:5:44:13 | ...[...] | | type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:42:14:42:26 | * | | type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps with content element 5 or unknown | type_tracker.rb:42:14:42:26 | call to [] | | type_tracker.rb:43:5:43:10 | [post] array2 | type tracker without call steps | type_tracker.rb:43:5:43:10 | [post] array2 | @@ -298,32 +290,26 @@ track | type_tracker.rb:50:14:50:26 | call to [] | type tracker without call steps | type_tracker.rb:50:14:50:26 | call to [] | | type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps | type_tracker.rb:50:15:50:15 | 1 | | type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps with content element | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:50:14:50:26 | * | | type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps with content element 0 or unknown | type_tracker.rb:50:14:50:26 | call to [] | | type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps | type_tracker.rb:50:17:50:17 | 2 | | type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps with content element | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:50:14:50:26 | * | | type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps with content element 1 or unknown | type_tracker.rb:50:14:50:26 | call to [] | | type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps | type_tracker.rb:50:19:50:19 | 3 | | type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps with content element | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:50:14:50:26 | * | | type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps with content element 2 or unknown | type_tracker.rb:50:14:50:26 | call to [] | | type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps | type_tracker.rb:50:21:50:21 | 4 | | type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps with content element | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:50:14:50:26 | * | | type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps with content element 3 or unknown | type_tracker.rb:50:14:50:26 | call to [] | | type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps | type_tracker.rb:50:23:50:23 | 5 | | type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps with content element | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:50:14:50:26 | * | | type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps with content element 4 or unknown | type_tracker.rb:50:14:50:26 | call to [] | | type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps | type_tracker.rb:50:25:50:25 | 6 | | type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps with content element | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:50:14:50:26 | * | | type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps with content element 5 or unknown | type_tracker.rb:50:14:50:26 | call to [] | | type_tracker.rb:51:5:51:10 | [post] array4 | type tracker without call steps | type_tracker.rb:51:5:51:10 | [post] array4 | diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected index 5e50735684d..26bf3db4028 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected +++ b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected @@ -60,20 +60,32 @@ edges | params_flow.rb:83:10:83:15 | call to params | params_flow.rb:83:10:83:27 | call to to_unsafe_h | | params_flow.rb:87:10:87:15 | call to params | params_flow.rb:87:10:87:30 | call to to_unsafe_hash | | params_flow.rb:91:10:91:15 | call to params | params_flow.rb:91:10:91:40 | call to transform_keys | +| params_flow.rb:91:10:91:15 | call to params | params_flow.rb:91:10:91:40 | call to transform_keys [element] | +| params_flow.rb:91:10:91:40 | call to transform_keys [element] | params_flow.rb:91:10:91:40 | call to transform_keys | | params_flow.rb:95:10:95:15 | call to params | params_flow.rb:95:10:95:41 | call to transform_keys! | | params_flow.rb:99:10:99:15 | call to params | params_flow.rb:99:10:99:42 | call to transform_values | | params_flow.rb:103:10:103:15 | call to params | params_flow.rb:103:10:103:43 | call to transform_values! | | params_flow.rb:107:10:107:15 | call to params | params_flow.rb:107:10:107:33 | call to values_at | +| params_flow.rb:107:10:107:15 | call to params | params_flow.rb:107:10:107:33 | call to values_at [element 0] | +| params_flow.rb:107:10:107:15 | call to params | params_flow.rb:107:10:107:33 | call to values_at [element 1] | +| params_flow.rb:107:10:107:33 | call to values_at [element 0] | params_flow.rb:107:10:107:33 | call to values_at | +| params_flow.rb:107:10:107:33 | call to values_at [element 1] | params_flow.rb:107:10:107:33 | call to values_at | | params_flow.rb:111:10:111:15 | call to params | params_flow.rb:111:10:111:29 | call to merge | +| params_flow.rb:112:10:112:29 | call to merge [element 0] | params_flow.rb:112:10:112:29 | call to merge | | params_flow.rb:112:23:112:28 | call to params | params_flow.rb:112:10:112:29 | call to merge | +| params_flow.rb:112:23:112:28 | call to params | params_flow.rb:112:10:112:29 | call to merge [element 0] | | params_flow.rb:116:10:116:15 | call to params | params_flow.rb:116:10:116:37 | call to reverse_merge | | params_flow.rb:117:31:117:36 | call to params | params_flow.rb:117:10:117:37 | call to reverse_merge | | params_flow.rb:121:10:121:15 | call to params | params_flow.rb:121:10:121:43 | call to with_defaults | | params_flow.rb:122:31:122:36 | call to params | params_flow.rb:122:10:122:37 | call to with_defaults | | params_flow.rb:126:10:126:15 | call to params | params_flow.rb:126:10:126:30 | call to merge! | +| params_flow.rb:127:10:127:30 | call to merge! [element 0] | params_flow.rb:127:10:127:30 | call to merge! | | params_flow.rb:127:24:127:29 | call to params | params_flow.rb:127:10:127:30 | call to merge! | +| params_flow.rb:127:24:127:29 | call to params | params_flow.rb:127:10:127:30 | call to merge! [element 0] | | params_flow.rb:130:5:130:5 | [post] p | params_flow.rb:131:10:131:10 | p | +| params_flow.rb:130:5:130:5 | [post] p [element 0] | params_flow.rb:131:10:131:10 | p | | params_flow.rb:130:14:130:19 | call to params | params_flow.rb:130:5:130:5 | [post] p | +| params_flow.rb:130:14:130:19 | call to params | params_flow.rb:130:5:130:5 | [post] p [element 0] | | params_flow.rb:135:10:135:15 | call to params | params_flow.rb:135:10:135:38 | call to reverse_merge! | | params_flow.rb:136:32:136:37 | call to params | params_flow.rb:136:10:136:38 | call to reverse_merge! | | params_flow.rb:139:5:139:5 | [post] p | params_flow.rb:140:10:140:10 | p | @@ -172,6 +184,7 @@ nodes | params_flow.rb:87:10:87:30 | call to to_unsafe_hash | semmle.label | call to to_unsafe_hash | | params_flow.rb:91:10:91:15 | call to params | semmle.label | call to params | | params_flow.rb:91:10:91:40 | call to transform_keys | semmle.label | call to transform_keys | +| params_flow.rb:91:10:91:40 | call to transform_keys [element] | semmle.label | call to transform_keys [element] | | params_flow.rb:95:10:95:15 | call to params | semmle.label | call to params | | params_flow.rb:95:10:95:41 | call to transform_keys! | semmle.label | call to transform_keys! | | params_flow.rb:99:10:99:15 | call to params | semmle.label | call to params | @@ -180,9 +193,12 @@ nodes | params_flow.rb:103:10:103:43 | call to transform_values! | semmle.label | call to transform_values! | | params_flow.rb:107:10:107:15 | call to params | semmle.label | call to params | | params_flow.rb:107:10:107:33 | call to values_at | semmle.label | call to values_at | +| params_flow.rb:107:10:107:33 | call to values_at [element 0] | semmle.label | call to values_at [element 0] | +| params_flow.rb:107:10:107:33 | call to values_at [element 1] | semmle.label | call to values_at [element 1] | | params_flow.rb:111:10:111:15 | call to params | semmle.label | call to params | | params_flow.rb:111:10:111:29 | call to merge | semmle.label | call to merge | | params_flow.rb:112:10:112:29 | call to merge | semmle.label | call to merge | +| params_flow.rb:112:10:112:29 | call to merge [element 0] | semmle.label | call to merge [element 0] | | params_flow.rb:112:23:112:28 | call to params | semmle.label | call to params | | params_flow.rb:116:10:116:15 | call to params | semmle.label | call to params | | params_flow.rb:116:10:116:37 | call to reverse_merge | semmle.label | call to reverse_merge | @@ -195,8 +211,10 @@ nodes | params_flow.rb:126:10:126:15 | call to params | semmle.label | call to params | | params_flow.rb:126:10:126:30 | call to merge! | semmle.label | call to merge! | | params_flow.rb:127:10:127:30 | call to merge! | semmle.label | call to merge! | +| params_flow.rb:127:10:127:30 | call to merge! [element 0] | semmle.label | call to merge! [element 0] | | params_flow.rb:127:24:127:29 | call to params | semmle.label | call to params | | params_flow.rb:130:5:130:5 | [post] p | semmle.label | [post] p | +| params_flow.rb:130:5:130:5 | [post] p [element 0] | semmle.label | [post] p [element 0] | | params_flow.rb:130:14:130:19 | call to params | semmle.label | call to params | | params_flow.rb:131:10:131:10 | p | semmle.label | p | | params_flow.rb:135:10:135:15 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected index a3ee4ebebf5..d7195d11ad7 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected +++ b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected @@ -109,7 +109,6 @@ activeRecordSqlExecutionRanges | ActiveRecord.rb:28:30:28:44 | ...[...] | | ActiveRecord.rb:29:20:29:42 | "id = '#{...}'" | | ActiveRecord.rb:30:21:30:45 | call to [] | -| ActiveRecord.rb:30:22:30:44 | "id = '#{...}'" | | ActiveRecord.rb:31:16:31:21 | <<-SQL | | ActiveRecord.rb:34:20:34:47 | "user.id = '#{...}'" | | ActiveRecord.rb:46:20:46:32 | ... + ... | diff --git a/ruby/ql/test/library-tests/frameworks/active_support/active_support.rb b/ruby/ql/test/library-tests/frameworks/active_support/active_support.rb index 661f2ecd0cf..a614a27eaf4 100644 --- a/ruby/ql/test/library-tests/frameworks/active_support/active_support.rb +++ b/ruby/ql/test/library-tests/frameworks/active_support/active_support.rb @@ -244,7 +244,7 @@ def m_safe_buffer_insert b = source "b" x = ActionView::SafeBuffer.new(a) y = x.insert(i, b) - sink y # $hasTaintFlow=a + sink y # $hasTaintFlow=a $hasTaintFlow=b end def m_safe_buffer_prepend diff --git a/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected b/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected index 290ae4feec1..284cd463d02 100644 --- a/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected +++ b/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected @@ -24,13 +24,19 @@ edges | app/controllers/foo/bars_controller.rb:30:5:30:7 | str | app/controllers/foo/bars_controller.rb:31:5:31:7 | str | | app/controllers/foo/bars_controller.rb:30:11:30:16 | call to params | app/controllers/foo/bars_controller.rb:30:11:30:28 | ...[...] | | app/controllers/foo/bars_controller.rb:30:11:30:28 | ...[...] | app/controllers/foo/bars_controller.rb:30:5:30:7 | str | +| app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | +| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | +| app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | | app/views/foo/bars/show.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | app/views/foo/bars/show.html.erb:8:9:8:36 | ...[...] | | app/views/foo/bars/show.html.erb:12:9:12:21 | call to local_assigns [element :display_text] | app/views/foo/bars/show.html.erb:12:9:12:26 | ...[...] | | app/views/foo/bars/show.html.erb:17:15:17:27 | call to local_assigns [element :display_text] | app/views/foo/bars/show.html.erb:17:15:17:32 | ...[...] | | app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | | app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | +| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | +| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | | app/views/foo/bars/show.html.erb:43:76:43:87 | call to display_text | app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... | +| app/views/foo/bars/show.html.erb:43:76:43:87 | call to display_text | app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... [element] | | app/views/foo/bars/show.html.erb:53:29:53:34 | call to params | app/views/foo/bars/show.html.erb:53:29:53:44 | ...[...] | | app/views/foo/bars/show.html.erb:56:13:56:18 | call to params | app/views/foo/bars/show.html.erb:56:13:56:28 | ...[...] | | app/views/foo/bars/show.html.erb:73:19:73:24 | call to params | app/views/foo/bars/show.html.erb:73:19:73:34 | ...[...] | @@ -56,8 +62,11 @@ nodes | app/controllers/foo/bars_controller.rb:30:11:30:28 | ...[...] | semmle.label | ...[...] | | app/controllers/foo/bars_controller.rb:31:5:31:7 | str | semmle.label | str | | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | semmle.label | call to display_text | +| app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | semmle.label | call to display_text [element] | +| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | semmle.label | call to local_assigns [element :display_text, element] | | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | semmle.label | call to local_assigns [element :display_text] | | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | semmle.label | ...[...] | +| app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | semmle.label | ...[...] [element] | | app/views/foo/bars/show.html.erb:2:18:2:30 | @user_website | semmle.label | @user_website | | app/views/foo/bars/show.html.erb:5:9:5:20 | call to display_text | semmle.label | call to display_text | | app/views/foo/bars/show.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | semmle.label | call to local_assigns [element :display_text] | @@ -69,6 +78,7 @@ nodes | app/views/foo/bars/show.html.erb:35:3:35:14 | call to display_text | semmle.label | call to display_text | | app/views/foo/bars/show.html.erb:40:3:40:16 | @instance_text | semmle.label | @instance_text | | app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... | semmle.label | ... + ... | +| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... [element] | semmle.label | ... + ... [element] | | app/views/foo/bars/show.html.erb:43:76:43:87 | call to display_text | semmle.label | call to display_text | | app/views/foo/bars/show.html.erb:46:5:46:13 | call to user_name | semmle.label | call to user_name | | app/views/foo/bars/show.html.erb:50:5:50:18 | call to user_name_memo | semmle.label | call to user_name_memo | diff --git a/ruby/ql/test/query-tests/security/cwe-079/StoredXSS.expected b/ruby/ql/test/query-tests/security/cwe-079/StoredXSS.expected index 04f4dd2dd1a..2cf4aff6400 100644 --- a/ruby/ql/test/query-tests/security/cwe-079/StoredXSS.expected +++ b/ruby/ql/test/query-tests/security/cwe-079/StoredXSS.expected @@ -9,13 +9,19 @@ edges | app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:14:15:14:27 | call to local_assigns [element :display_text] | | app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:32:3:32:14 | call to display_text | | app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:40:76:40:87 | call to display_text | +| app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | +| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | +| app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | | app/views/foo/stores/show.html.erb:5:9:5:21 | call to local_assigns [element :display_text] | app/views/foo/stores/show.html.erb:5:9:5:36 | ...[...] | | app/views/foo/stores/show.html.erb:9:9:9:21 | call to local_assigns [element :display_text] | app/views/foo/stores/show.html.erb:9:9:9:26 | ...[...] | | app/views/foo/stores/show.html.erb:14:15:14:27 | call to local_assigns [element :display_text] | app/views/foo/stores/show.html.erb:14:15:14:32 | ...[...] | | app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | | app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | +| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | +| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | | app/views/foo/stores/show.html.erb:40:76:40:87 | call to display_text | app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... | +| app/views/foo/stores/show.html.erb:40:76:40:87 | call to display_text | app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... [element] | | app/views/foo/stores/show.html.erb:86:17:86:28 | call to handle | app/views/foo/stores/show.html.erb:86:3:86:29 | call to sprintf | nodes | app/controllers/foo/stores_controller.rb:8:5:8:6 | dt | semmle.label | dt | @@ -23,8 +29,11 @@ nodes | app/controllers/foo/stores_controller.rb:9:22:9:23 | dt | semmle.label | dt | | app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | semmle.label | dt | | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | semmle.label | call to display_text | +| app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | semmle.label | call to display_text [element] | +| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | semmle.label | call to local_assigns [element :display_text, element] | | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | semmle.label | call to local_assigns [element :display_text] | | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | semmle.label | ...[...] | +| app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | semmle.label | ...[...] [element] | | app/views/foo/stores/show.html.erb:2:9:2:20 | call to display_text | semmle.label | call to display_text | | app/views/foo/stores/show.html.erb:5:9:5:21 | call to local_assigns [element :display_text] | semmle.label | call to local_assigns [element :display_text] | | app/views/foo/stores/show.html.erb:5:9:5:36 | ...[...] | semmle.label | ...[...] | @@ -35,6 +44,7 @@ nodes | app/views/foo/stores/show.html.erb:32:3:32:14 | call to display_text | semmle.label | call to display_text | | app/views/foo/stores/show.html.erb:37:3:37:16 | @instance_text | semmle.label | @instance_text | | app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... | semmle.label | ... + ... | +| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... [element] | semmle.label | ... + ... [element] | | app/views/foo/stores/show.html.erb:40:76:40:87 | call to display_text | semmle.label | call to display_text | | app/views/foo/stores/show.html.erb:46:5:46:16 | call to handle | semmle.label | call to handle | | app/views/foo/stores/show.html.erb:63:3:63:18 | call to handle | semmle.label | call to handle | diff --git a/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected index 161cdcc7751..06f2394f732 100644 --- a/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected @@ -8,8 +8,10 @@ edges | ActiveRecordInjection.rb:43:29:43:39 | ...[...] | ActiveRecordInjection.rb:43:20:43:42 | "id = '#{...}'" | | ActiveRecordInjection.rb:48:30:48:35 | call to params | ActiveRecordInjection.rb:48:30:48:40 | ...[...] | | ActiveRecordInjection.rb:48:30:48:40 | ...[...] | ActiveRecordInjection.rb:48:21:48:43 | "id = '#{...}'" | +| ActiveRecordInjection.rb:52:22:52:44 | "id = '#{...}'" | ActiveRecordInjection.rb:52:21:52:45 | call to [] | | ActiveRecordInjection.rb:52:31:52:36 | call to params | ActiveRecordInjection.rb:52:31:52:41 | ...[...] | | ActiveRecordInjection.rb:52:31:52:41 | ...[...] | ActiveRecordInjection.rb:52:22:52:44 | "id = '#{...}'" | +| ActiveRecordInjection.rb:57:23:57:45 | "id = '#{...}'" | ActiveRecordInjection.rb:57:22:57:46 | call to [] | | ActiveRecordInjection.rb:57:32:57:37 | call to params | ActiveRecordInjection.rb:57:32:57:42 | ...[...] | | ActiveRecordInjection.rb:57:32:57:42 | ...[...] | ActiveRecordInjection.rb:57:23:57:45 | "id = '#{...}'" | | ActiveRecordInjection.rb:62:21:62:26 | call to params | ActiveRecordInjection.rb:62:21:62:35 | ...[...] | @@ -35,6 +37,9 @@ edges | ActiveRecordInjection.rb:103:11:103:12 | ps | ActiveRecordInjection.rb:103:11:103:17 | ...[...] | | ActiveRecordInjection.rb:103:11:103:17 | ...[...] | ActiveRecordInjection.rb:103:5:103:7 | uid | | ActiveRecordInjection.rb:104:5:104:9 | uidEq | ActiveRecordInjection.rb:108:20:108:32 | ... + ... | +| ActiveRecordInjection.rb:104:5:104:9 | uidEq | ActiveRecordInjection.rb:108:28:108:32 | uidEq | +| ActiveRecordInjection.rb:108:20:108:32 | ... + ... [element] | ActiveRecordInjection.rb:108:20:108:32 | ... + ... | +| ActiveRecordInjection.rb:108:28:108:32 | uidEq | ActiveRecordInjection.rb:108:20:108:32 | ... + ... [element] | | ActiveRecordInjection.rb:141:21:141:26 | call to params | ActiveRecordInjection.rb:141:21:141:44 | ...[...] | | ActiveRecordInjection.rb:141:21:141:26 | call to params | ActiveRecordInjection.rb:141:21:141:44 | ...[...] | | ActiveRecordInjection.rb:141:21:141:44 | ...[...] | ActiveRecordInjection.rb:20:22:20:30 | condition | @@ -85,9 +90,11 @@ nodes | ActiveRecordInjection.rb:48:21:48:43 | "id = '#{...}'" | semmle.label | "id = '#{...}'" | | ActiveRecordInjection.rb:48:30:48:35 | call to params | semmle.label | call to params | | ActiveRecordInjection.rb:48:30:48:40 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:52:21:52:45 | call to [] | semmle.label | call to [] | | ActiveRecordInjection.rb:52:22:52:44 | "id = '#{...}'" | semmle.label | "id = '#{...}'" | | ActiveRecordInjection.rb:52:31:52:36 | call to params | semmle.label | call to params | | ActiveRecordInjection.rb:52:31:52:41 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:57:22:57:46 | call to [] | semmle.label | call to [] | | ActiveRecordInjection.rb:57:23:57:45 | "id = '#{...}'" | semmle.label | "id = '#{...}'" | | ActiveRecordInjection.rb:57:32:57:37 | call to params | semmle.label | call to params | | ActiveRecordInjection.rb:57:32:57:42 | ...[...] | semmle.label | ...[...] | @@ -125,6 +132,8 @@ nodes | ActiveRecordInjection.rb:103:11:103:17 | ...[...] | semmle.label | ...[...] | | ActiveRecordInjection.rb:104:5:104:9 | uidEq | semmle.label | uidEq | | ActiveRecordInjection.rb:108:20:108:32 | ... + ... | semmle.label | ... + ... | +| ActiveRecordInjection.rb:108:20:108:32 | ... + ... [element] | semmle.label | ... + ... [element] | +| ActiveRecordInjection.rb:108:28:108:32 | uidEq | semmle.label | uidEq | | ActiveRecordInjection.rb:141:21:141:26 | call to params | semmle.label | call to params | | ActiveRecordInjection.rb:141:21:141:44 | ...[...] | semmle.label | ...[...] | | ActiveRecordInjection.rb:141:21:141:44 | ...[...] | semmle.label | ...[...] | @@ -172,8 +181,8 @@ subpaths | ActiveRecordInjection.rb:39:18:39:32 | ...[...] | ActiveRecordInjection.rb:39:18:39:23 | call to params | ActiveRecordInjection.rb:39:18:39:32 | ...[...] | This SQL query depends on a $@. | ActiveRecordInjection.rb:39:18:39:23 | call to params | user-provided value | | ActiveRecordInjection.rb:43:20:43:42 | "id = '#{...}'" | ActiveRecordInjection.rb:43:29:43:34 | call to params | ActiveRecordInjection.rb:43:20:43:42 | "id = '#{...}'" | This SQL query depends on a $@. | ActiveRecordInjection.rb:43:29:43:34 | call to params | user-provided value | | ActiveRecordInjection.rb:48:21:48:43 | "id = '#{...}'" | ActiveRecordInjection.rb:48:30:48:35 | call to params | ActiveRecordInjection.rb:48:21:48:43 | "id = '#{...}'" | This SQL query depends on a $@. | ActiveRecordInjection.rb:48:30:48:35 | call to params | user-provided value | -| ActiveRecordInjection.rb:52:22:52:44 | "id = '#{...}'" | ActiveRecordInjection.rb:52:31:52:36 | call to params | ActiveRecordInjection.rb:52:22:52:44 | "id = '#{...}'" | This SQL query depends on a $@. | ActiveRecordInjection.rb:52:31:52:36 | call to params | user-provided value | -| ActiveRecordInjection.rb:57:23:57:45 | "id = '#{...}'" | ActiveRecordInjection.rb:57:32:57:37 | call to params | ActiveRecordInjection.rb:57:23:57:45 | "id = '#{...}'" | This SQL query depends on a $@. | ActiveRecordInjection.rb:57:32:57:37 | call to params | user-provided value | +| ActiveRecordInjection.rb:52:21:52:45 | call to [] | ActiveRecordInjection.rb:52:31:52:36 | call to params | ActiveRecordInjection.rb:52:21:52:45 | call to [] | This SQL query depends on a $@. | ActiveRecordInjection.rb:52:31:52:36 | call to params | user-provided value | +| ActiveRecordInjection.rb:57:22:57:46 | call to [] | ActiveRecordInjection.rb:57:32:57:37 | call to params | ActiveRecordInjection.rb:57:22:57:46 | call to [] | This SQL query depends on a $@. | ActiveRecordInjection.rb:57:32:57:37 | call to params | user-provided value | | ActiveRecordInjection.rb:61:16:61:21 | <<-SQL | ActiveRecordInjection.rb:62:21:62:26 | call to params | ActiveRecordInjection.rb:61:16:61:21 | <<-SQL | This SQL query depends on a $@. | ActiveRecordInjection.rb:62:21:62:26 | call to params | user-provided value | | ActiveRecordInjection.rb:68:20:68:47 | "user.id = '#{...}'" | ActiveRecordInjection.rb:68:34:68:39 | call to params | ActiveRecordInjection.rb:68:20:68:47 | "user.id = '#{...}'" | This SQL query depends on a $@. | ActiveRecordInjection.rb:68:34:68:39 | call to params | user-provided value | | ActiveRecordInjection.rb:74:32:74:54 | "id = '#{...}'" | ActiveRecordInjection.rb:74:41:74:46 | call to params | ActiveRecordInjection.rb:74:32:74:54 | "id = '#{...}'" | This SQL query depends on a $@. | ActiveRecordInjection.rb:74:41:74:46 | call to params | user-provided value | diff --git a/ruby/ql/test/query-tests/security/cwe-094/CodeInjection/CodeInjection.expected b/ruby/ql/test/query-tests/security/cwe-094/CodeInjection/CodeInjection.expected index 5212480064f..8b9e7e3abed 100644 --- a/ruby/ql/test/query-tests/security/cwe-094/CodeInjection/CodeInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-094/CodeInjection/CodeInjection.expected @@ -17,7 +17,9 @@ edges | CodeInjection.rb:38:24:38:27 | code | CodeInjection.rb:38:10:38:28 | call to escape | | CodeInjection.rb:38:24:38:27 | code | CodeInjection.rb:38:10:38:28 | call to escape | | CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:80:16:80:19 | code | +| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:86:10:86:25 | ... + ... | | CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:86:10:86:37 | ... + ... | +| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:86:22:86:25 | code | | CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:88:10:88:32 | "prefix_#{...}_suffix" | | CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:90:10:90:13 | code | | CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:90:10:90:13 | code | @@ -25,6 +27,10 @@ edges | CodeInjection.rb:78:12:78:17 | call to params | CodeInjection.rb:78:12:78:24 | ...[...] | | CodeInjection.rb:78:12:78:24 | ...[...] | CodeInjection.rb:78:5:78:8 | code | | CodeInjection.rb:78:12:78:24 | ...[...] | CodeInjection.rb:78:5:78:8 | code | +| CodeInjection.rb:86:10:86:25 | ... + ... | CodeInjection.rb:86:10:86:37 | ... + ... | +| CodeInjection.rb:86:10:86:25 | ... + ... [element] | CodeInjection.rb:86:10:86:37 | ... + ... [element] | +| CodeInjection.rb:86:10:86:37 | ... + ... [element] | CodeInjection.rb:86:10:86:37 | ... + ... | +| CodeInjection.rb:86:22:86:25 | code | CodeInjection.rb:86:10:86:25 | ... + ... [element] | | CodeInjection.rb:101:3:102:5 | self in index [@foo] | CodeInjection.rb:111:3:113:5 | self in baz [@foo] | | CodeInjection.rb:101:3:102:5 | self in index [@foo] | CodeInjection.rb:111:3:113:5 | self in baz [@foo] | | CodeInjection.rb:105:5:105:8 | [post] self [@foo] | CodeInjection.rb:108:3:109:5 | self in bar [@foo] | @@ -68,7 +74,11 @@ nodes | CodeInjection.rb:78:12:78:24 | ...[...] | semmle.label | ...[...] | | CodeInjection.rb:78:12:78:24 | ...[...] | semmle.label | ...[...] | | CodeInjection.rb:80:16:80:19 | code | semmle.label | code | +| CodeInjection.rb:86:10:86:25 | ... + ... | semmle.label | ... + ... | +| CodeInjection.rb:86:10:86:25 | ... + ... [element] | semmle.label | ... + ... [element] | | CodeInjection.rb:86:10:86:37 | ... + ... | semmle.label | ... + ... | +| CodeInjection.rb:86:10:86:37 | ... + ... [element] | semmle.label | ... + ... [element] | +| CodeInjection.rb:86:22:86:25 | code | semmle.label | code | | CodeInjection.rb:88:10:88:32 | "prefix_#{...}_suffix" | semmle.label | "prefix_#{...}_suffix" | | CodeInjection.rb:90:10:90:13 | code | semmle.label | code | | CodeInjection.rb:90:10:90:13 | code | semmle.label | code | diff --git a/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected b/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected index c2cbd5dd2ed..e3ea62b535d 100644 --- a/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected @@ -1,19 +1,27 @@ edges | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:16:19:16:29 | unsanitized | | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:17:19:17:41 | ... + ... | +| app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:17:31:17:41 | unsanitized | | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:23:20:23:30 | unsanitized | | app/controllers/users_controller.rb:15:19:15:24 | call to params | app/controllers/users_controller.rb:15:19:15:30 | ...[...] | | app/controllers/users_controller.rb:15:19:15:30 | ...[...] | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | +| app/controllers/users_controller.rb:17:19:17:41 | ... + ... [element] | app/controllers/users_controller.rb:17:19:17:41 | ... + ... | +| app/controllers/users_controller.rb:17:31:17:41 | unsanitized | app/controllers/users_controller.rb:17:19:17:41 | ... + ... [element] | | app/controllers/users_controller.rb:23:20:23:30 | unsanitized | app/controllers/users_controller.rb:23:20:23:44 | call to sub | | app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:24:18:26:7 | do ... end [captured unsanitized2] | | app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:27:16:27:39 | ... + ... | +| app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:27:28:27:39 | unsanitized2 | | app/controllers/users_controller.rb:24:18:26:7 | do ... end [captured unsanitized2] | app/controllers/users_controller.rb:25:7:25:18 | unsanitized2 | +| app/controllers/users_controller.rb:27:16:27:39 | ... + ... [element] | app/controllers/users_controller.rb:27:16:27:39 | ... + ... | +| app/controllers/users_controller.rb:27:28:27:39 | unsanitized2 | app/controllers/users_controller.rb:27:16:27:39 | ... + ... [element] | | app/controllers/users_controller.rb:33:19:33:25 | call to cookies | app/controllers/users_controller.rb:33:19:33:31 | ...[...] | | app/controllers/users_controller.rb:33:19:33:31 | ...[...] | app/controllers/users_controller.rb:34:31:34:45 | { ... } [captured unsanitized] | | app/controllers/users_controller.rb:33:19:33:31 | ...[...] | app/controllers/users_controller.rb:35:31:35:57 | { ... } [captured unsanitized] | | app/controllers/users_controller.rb:34:31:34:45 | { ... } [captured unsanitized] | app/controllers/users_controller.rb:34:33:34:43 | unsanitized | | app/controllers/users_controller.rb:35:31:35:57 | { ... } [captured unsanitized] | app/controllers/users_controller.rb:35:45:35:55 | unsanitized | +| app/controllers/users_controller.rb:35:33:35:55 | ... + ... [element] | app/controllers/users_controller.rb:35:33:35:55 | ... + ... | | app/controllers/users_controller.rb:35:45:35:55 | unsanitized | app/controllers/users_controller.rb:35:33:35:55 | ... + ... | +| app/controllers/users_controller.rb:35:45:35:55 | unsanitized | app/controllers/users_controller.rb:35:33:35:55 | ... + ... [element] | | app/controllers/users_controller.rb:49:19:49:24 | call to params | app/controllers/users_controller.rb:49:19:49:30 | ...[...] | nodes | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | semmle.label | unsanitized | @@ -21,17 +29,22 @@ nodes | app/controllers/users_controller.rb:15:19:15:30 | ...[...] | semmle.label | ...[...] | | app/controllers/users_controller.rb:16:19:16:29 | unsanitized | semmle.label | unsanitized | | app/controllers/users_controller.rb:17:19:17:41 | ... + ... | semmle.label | ... + ... | +| app/controllers/users_controller.rb:17:19:17:41 | ... + ... [element] | semmle.label | ... + ... [element] | +| app/controllers/users_controller.rb:17:31:17:41 | unsanitized | semmle.label | unsanitized | | app/controllers/users_controller.rb:23:20:23:30 | unsanitized | semmle.label | unsanitized | | app/controllers/users_controller.rb:23:20:23:44 | call to sub | semmle.label | call to sub | | app/controllers/users_controller.rb:24:18:26:7 | do ... end [captured unsanitized2] | semmle.label | do ... end [captured unsanitized2] | | app/controllers/users_controller.rb:25:7:25:18 | unsanitized2 | semmle.label | unsanitized2 | | app/controllers/users_controller.rb:27:16:27:39 | ... + ... | semmle.label | ... + ... | +| app/controllers/users_controller.rb:27:16:27:39 | ... + ... [element] | semmle.label | ... + ... [element] | +| app/controllers/users_controller.rb:27:28:27:39 | unsanitized2 | semmle.label | unsanitized2 | | app/controllers/users_controller.rb:33:19:33:25 | call to cookies | semmle.label | call to cookies | | app/controllers/users_controller.rb:33:19:33:31 | ...[...] | semmle.label | ...[...] | | app/controllers/users_controller.rb:34:31:34:45 | { ... } [captured unsanitized] | semmle.label | { ... } [captured unsanitized] | | app/controllers/users_controller.rb:34:33:34:43 | unsanitized | semmle.label | unsanitized | | app/controllers/users_controller.rb:35:31:35:57 | { ... } [captured unsanitized] | semmle.label | { ... } [captured unsanitized] | | app/controllers/users_controller.rb:35:33:35:55 | ... + ... | semmle.label | ... + ... | +| app/controllers/users_controller.rb:35:33:35:55 | ... + ... [element] | semmle.label | ... + ... [element] | | app/controllers/users_controller.rb:35:45:35:55 | unsanitized | semmle.label | unsanitized | | app/controllers/users_controller.rb:49:19:49:24 | call to params | semmle.label | call to params | | app/controllers/users_controller.rb:49:19:49:30 | ...[...] | semmle.label | ...[...] | diff --git a/ruby/ql/test/query-tests/security/cwe-1333-regexp-injection/RegExpInjection.expected b/ruby/ql/test/query-tests/security/cwe-1333-regexp-injection/RegExpInjection.expected index 1ad302b6f69..3857229d278 100644 --- a/ruby/ql/test/query-tests/security/cwe-1333-regexp-injection/RegExpInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-1333-regexp-injection/RegExpInjection.expected @@ -9,11 +9,17 @@ edges | RegExpInjection.rb:16:12:16:17 | call to params | RegExpInjection.rb:16:12:16:24 | ...[...] | | RegExpInjection.rb:16:12:16:24 | ...[...] | RegExpInjection.rb:16:5:16:8 | name | | RegExpInjection.rb:22:5:22:8 | name | RegExpInjection.rb:23:24:23:33 | ... + ... | +| RegExpInjection.rb:22:5:22:8 | name | RegExpInjection.rb:23:30:23:33 | name | | RegExpInjection.rb:22:12:22:17 | call to params | RegExpInjection.rb:22:12:22:24 | ...[...] | | RegExpInjection.rb:22:12:22:24 | ...[...] | RegExpInjection.rb:22:5:22:8 | name | +| RegExpInjection.rb:23:24:23:33 | ... + ... [element] | RegExpInjection.rb:23:24:23:33 | ... + ... | +| RegExpInjection.rb:23:30:23:33 | name | RegExpInjection.rb:23:24:23:33 | ... + ... [element] | | RegExpInjection.rb:54:5:54:8 | name | RegExpInjection.rb:55:28:55:37 | ... + ... | +| RegExpInjection.rb:54:5:54:8 | name | RegExpInjection.rb:55:34:55:37 | name | | RegExpInjection.rb:54:12:54:17 | call to params | RegExpInjection.rb:54:12:54:24 | ...[...] | | RegExpInjection.rb:54:12:54:24 | ...[...] | RegExpInjection.rb:54:5:54:8 | name | +| RegExpInjection.rb:55:28:55:37 | ... + ... [element] | RegExpInjection.rb:55:28:55:37 | ... + ... | +| RegExpInjection.rb:55:34:55:37 | name | RegExpInjection.rb:55:28:55:37 | ... + ... [element] | nodes | RegExpInjection.rb:4:5:4:8 | name | semmle.label | name | | RegExpInjection.rb:4:12:4:17 | call to params | semmle.label | call to params | @@ -31,10 +37,14 @@ nodes | RegExpInjection.rb:22:12:22:17 | call to params | semmle.label | call to params | | RegExpInjection.rb:22:12:22:24 | ...[...] | semmle.label | ...[...] | | RegExpInjection.rb:23:24:23:33 | ... + ... | semmle.label | ... + ... | +| RegExpInjection.rb:23:24:23:33 | ... + ... [element] | semmle.label | ... + ... [element] | +| RegExpInjection.rb:23:30:23:33 | name | semmle.label | name | | RegExpInjection.rb:54:5:54:8 | name | semmle.label | name | | RegExpInjection.rb:54:12:54:17 | call to params | semmle.label | call to params | | RegExpInjection.rb:54:12:54:24 | ...[...] | semmle.label | ...[...] | | RegExpInjection.rb:55:28:55:37 | ... + ... | semmle.label | ... + ... | +| RegExpInjection.rb:55:28:55:37 | ... + ... [element] | semmle.label | ... + ... [element] | +| RegExpInjection.rb:55:34:55:37 | name | semmle.label | name | subpaths #select | RegExpInjection.rb:5:13:5:21 | /#{...}/ | RegExpInjection.rb:4:12:4:17 | call to params | RegExpInjection.rb:5:13:5:21 | /#{...}/ | This regular expression depends on a $@. | RegExpInjection.rb:4:12:4:17 | call to params | user-provided value | diff --git a/ruby/ql/test/query-tests/security/cwe-134/TaintedFormatString.expected b/ruby/ql/test/query-tests/security/cwe-134/TaintedFormatString.expected index 26f2b0ea05b..de044832e23 100644 --- a/ruby/ql/test/query-tests/security/cwe-134/TaintedFormatString.expected +++ b/ruby/ql/test/query-tests/security/cwe-134/TaintedFormatString.expected @@ -8,8 +8,10 @@ edges | tainted_format_string.rb:21:27:21:32 | call to params | tainted_format_string.rb:21:27:21:41 | ...[...] | | tainted_format_string.rb:22:20:22:25 | call to params | tainted_format_string.rb:22:20:22:34 | ...[...] | | tainted_format_string.rb:28:19:28:24 | call to params | tainted_format_string.rb:28:19:28:33 | ...[...] | +| tainted_format_string.rb:33:12:33:46 | ... + ... [element] | tainted_format_string.rb:33:12:33:46 | ... + ... | | tainted_format_string.rb:33:32:33:37 | call to params | tainted_format_string.rb:33:32:33:46 | ...[...] | | tainted_format_string.rb:33:32:33:46 | ...[...] | tainted_format_string.rb:33:12:33:46 | ... + ... | +| tainted_format_string.rb:33:32:33:46 | ...[...] | tainted_format_string.rb:33:12:33:46 | ... + ... [element] | | tainted_format_string.rb:36:30:36:35 | call to params | tainted_format_string.rb:36:30:36:44 | ...[...] | | tainted_format_string.rb:36:30:36:44 | ...[...] | tainted_format_string.rb:36:12:36:46 | "A log message: #{...}" | | tainted_format_string.rb:39:22:39:27 | call to params | tainted_format_string.rb:39:22:39:36 | ...[...] | @@ -36,6 +38,7 @@ nodes | tainted_format_string.rb:28:19:28:24 | call to params | semmle.label | call to params | | tainted_format_string.rb:28:19:28:33 | ...[...] | semmle.label | ...[...] | | tainted_format_string.rb:33:12:33:46 | ... + ... | semmle.label | ... + ... | +| tainted_format_string.rb:33:12:33:46 | ... + ... [element] | semmle.label | ... + ... [element] | | tainted_format_string.rb:33:32:33:37 | call to params | semmle.label | call to params | | tainted_format_string.rb:33:32:33:46 | ...[...] | semmle.label | ...[...] | | tainted_format_string.rb:36:12:36:46 | "A log message: #{...}" | semmle.label | "A log message: #{...}" | From 7ebd51163e42560388177f05043347a25c517f84 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 15 Aug 2023 17:24:16 +0100 Subject: [PATCH 386/788] Ruby: Handle more splat arg flow Allow flow from a splat argument to a positional parameter in cases where there are positional arguments left of the splat. For example: def foo(x, y, z); end foo(1, *[2, 3]) --- .../dataflow/internal/DataFlowDispatch.qll | 12 ++- .../dataflow/internal/DataFlowPrivate.qll | 27 ++++-- .../dataflow/local/TaintStep.expected | 12 --- .../dataflow/params/params-flow.expected | 96 +++++++++++++++++++ .../dataflow/params/params_flow.rb | 20 ++-- .../type-tracker/TypeTracker.expected | 6 -- 6 files changed, 133 insertions(+), 40 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll index 5f1337f7a5c..7241222766a 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll @@ -472,7 +472,11 @@ private module Cached { TSplatParameterPosition(int pos) { exists(Parameter p | p.getPosition() = pos and p instanceof SplatParameter) } or - TSynthSplatParameterPosition() or + TSynthSplatParameterPosition(int pos) { + // `pos` is the position of the splat _argument_ that is matched to the + // `SynthSplatParameterNode` with this position. + exists(ArgumentPosition a | a.isSplat(pos)) + } or TSynthArgSplatParameterPosition() or TAnyParameterPosition() or TAnyKeywordParameterPosition() @@ -1301,7 +1305,7 @@ class ParameterPosition extends TParameterPosition { predicate isSynthHashSplat() { this = TSynthHashSplatParameterPosition() } - predicate isSynthSplat() { this = TSynthSplatParameterPosition() } + predicate isSynthSplat(int n) { this = TSynthSplatParameterPosition(n) } // A fake position to indicate that this parameter node holds content from a synth arg splat node predicate isSynthArgSplat() { this = TSynthArgSplatParameterPosition() } @@ -1339,7 +1343,7 @@ class ParameterPosition extends TParameterPosition { or this.isAnyNamed() and result = "any-named" or - this.isSynthSplat() and result = "synthetic *" + exists(int pos | this.isSynthSplat(pos) and result = "synthetic * (position " + pos + ")") or this.isSynthArgSplat() and result = "synthetic * (from *args)" or @@ -1442,7 +1446,7 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { or ppos.isSplat(0) and apos.isSynthSplat() or - ppos.isSynthSplat() and apos.isSplat(0) + exists(int n | ppos.isSynthSplat(n) and apos.isSplat(n)) or apos.isSynthSplat() and ppos.isSynthArgSplat() or diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index f53fb80fcea..6cb3791ee29 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -448,9 +448,11 @@ private module Cached { TSynthHashSplatParameterNode(DataFlowCallable c) { isParameterNode(_, c, any(ParameterPosition p | p.isKeyword(_))) } or - TSynthSplatParameterNode(DataFlowCallable c) { + TSynthSplatParameterNode(DataFlowCallable c, int n) { exists(c.asCallable()) and // exclude library callables - isParameterNode(_, c, any(ParameterPosition p | p.isPositional(_))) + isParameterNode(_, c, any(ParameterPosition p | p.isPositional(_))) and + // `n` is the position of the splat argument that is matched to this node + exists(ArgumentPosition pos | pos.isSplat(n)) } or TSynthSplatArgParameterNode(DataFlowCallable c) { exists(c.asCallable()) and // exclude library callables @@ -1037,11 +1039,20 @@ private module ParameterNodes { * ```rb * foo(a, *[b]) * ``` + * + * TODO: we do now support the above, but we don't support this case: + * + * ```rb + * foo(a, *[b], c) + * ``` + * + * Update this documentation. */ class SynthSplatParameterNode extends ParameterNodeImpl, TSynthSplatParameterNode { private DataFlowCallable callable; + private int n; - SynthSplatParameterNode() { this = TSynthSplatParameterNode(callable) } + SynthSplatParameterNode() { this = TSynthSplatParameterNode(callable, n) } /** * Gets a parameter which will contain the value given by `c`, assuming @@ -1053,13 +1064,13 @@ private module ParameterNodes { * end * ``` * - * Then `getAParameter(element 0) = x` and `getAParameter(element 1) = y`. + * then `getAParameter(element 0) = x` and `getAParameter(element 1) = y`. */ ParameterNode getAParameter(ContentSet c) { - exists(int n | - isParameterNode(result, callable, (any(ParameterPosition p | p.isPositional(n)))) and + exists(int m | + isParameterNode(result, callable, (any(ParameterPosition p | p.isPositional(m)))) and ( - c = getPositionalContent(n) + c = getPositionalContent(m - n) or c.isSingleton(TUnknownElementContent()) ) @@ -1069,7 +1080,7 @@ private module ParameterNodes { final override Parameter getParameter() { none() } final override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { - c = callable and pos.isSynthSplat() + c = callable and pos.isSynthSplat(n) } final override CfgScope getCfgScope() { result = callable.asCallable() } diff --git a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected index 237c067be1b..534ba42e288 100644 --- a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected +++ b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected @@ -2796,7 +2796,6 @@ | UseUseExplosion.rb:21:3675:21:3680 | call to use | UseUseExplosion.rb:21:3670:21:3680 | else ... | | UseUseExplosion.rb:21:3686:21:3696 | else ... | UseUseExplosion.rb:21:9:21:3700 | if ... | | UseUseExplosion.rb:21:3691:21:3696 | call to use | UseUseExplosion.rb:21:3686:21:3696 | else ... | -| UseUseExplosion.rb:24:5:25:7 | synthetic *args | UseUseExplosion.rb:24:13:24:13 | i | | UseUseExplosion.rb:24:5:25:7 | use | UseUseExplosion.rb:1:1:26:3 | C | | file://:0:0:0:0 | [summary param] position 0 in & | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in & | | file://:0:0:0:0 | [summary param] position 0 in + | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in + | @@ -2841,7 +2840,6 @@ | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in Hash[] | file://:0:0:0:0 | [summary] read: Argument[0].Element[any].Element[1] in Hash[] | | local_dataflow.rb:1:1:7:3 | self (foo) | local_dataflow.rb:3:8:3:10 | self | | local_dataflow.rb:1:1:7:3 | self in foo | local_dataflow.rb:1:1:7:3 | self (foo) | -| local_dataflow.rb:1:1:7:3 | synthetic *args | local_dataflow.rb:1:9:1:9 | a | | local_dataflow.rb:1:1:150:3 | | local_dataflow.rb:10:9:10:9 | x | | local_dataflow.rb:1:1:150:3 | self (local_dataflow.rb) | local_dataflow.rb:49:1:53:3 | self | | local_dataflow.rb:1:9:1:9 | a | local_dataflow.rb:1:9:1:9 | a | @@ -2879,7 +2877,6 @@ | local_dataflow.rb:10:5:13:3 | __synth__0__1 | local_dataflow.rb:10:5:13:3 | __synth__0__1 | | local_dataflow.rb:10:5:13:3 | __synth__0__1 | local_dataflow.rb:10:9:10:9 | x | | local_dataflow.rb:10:5:13:3 | call to each | local_dataflow.rb:10:5:13:3 | ... | -| local_dataflow.rb:10:5:13:3 | synthetic *args | local_dataflow.rb:10:5:13:3 | __synth__0__1 | | local_dataflow.rb:10:9:10:9 | ... = ... | local_dataflow.rb:10:9:10:9 | if ... | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [false] ! ... | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [true] ! ... | @@ -2898,7 +2895,6 @@ | local_dataflow.rb:15:1:17:3 | __synth__0__1 | local_dataflow.rb:15:1:17:3 | __synth__0__1 | | local_dataflow.rb:15:1:17:3 | __synth__0__1 | local_dataflow.rb:15:5:15:5 | x | | local_dataflow.rb:15:1:17:3 | call to each | local_dataflow.rb:15:1:17:3 | ... | -| local_dataflow.rb:15:1:17:3 | synthetic *args | local_dataflow.rb:15:1:17:3 | __synth__0__1 | | local_dataflow.rb:15:5:15:5 | ... = ... | local_dataflow.rb:15:5:15:5 | if ... | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [false] ! ... | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [true] ! ... | @@ -2914,7 +2910,6 @@ | local_dataflow.rb:19:1:21:3 | __synth__0__1 | local_dataflow.rb:19:1:21:3 | __synth__0__1 | | local_dataflow.rb:19:1:21:3 | __synth__0__1 | local_dataflow.rb:19:5:19:5 | x | | local_dataflow.rb:19:1:21:3 | call to each | local_dataflow.rb:19:1:21:3 | ... | -| local_dataflow.rb:19:1:21:3 | synthetic *args | local_dataflow.rb:19:1:21:3 | __synth__0__1 | | local_dataflow.rb:19:5:19:5 | ... = ... | local_dataflow.rb:19:5:19:5 | if ... | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [false] ! ... | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [true] ! ... | @@ -2933,13 +2928,11 @@ | local_dataflow.rb:30:14:30:20 | "class" | local_dataflow.rb:30:5:30:24 | C | | local_dataflow.rb:32:5:32:25 | bar | local_dataflow.rb:32:1:32:1 | x | | local_dataflow.rb:32:5:32:25 | bar | local_dataflow.rb:32:1:32:25 | ... = ... | -| local_dataflow.rb:34:1:39:3 | synthetic *args | local_dataflow.rb:34:7:34:7 | x | | local_dataflow.rb:34:7:34:7 | x | local_dataflow.rb:34:7:34:7 | x | | local_dataflow.rb:34:7:34:7 | x | local_dataflow.rb:35:6:35:6 | x | | local_dataflow.rb:35:6:35:6 | x | local_dataflow.rb:35:6:35:11 | ... == ... | | local_dataflow.rb:35:11:35:11 | 4 | local_dataflow.rb:35:6:35:11 | ... == ... | | local_dataflow.rb:36:13:36:13 | 7 | local_dataflow.rb:36:6:36:13 | return | -| local_dataflow.rb:41:1:47:3 | synthetic *args | local_dataflow.rb:41:7:41:7 | x | | local_dataflow.rb:41:7:41:7 | x | local_dataflow.rb:41:7:41:7 | x | | local_dataflow.rb:41:7:41:7 | x | local_dataflow.rb:42:6:42:6 | x | | local_dataflow.rb:42:6:42:6 | x | local_dataflow.rb:42:6:42:11 | ... == ... | @@ -2958,10 +2951,8 @@ | local_dataflow.rb:51:20:51:20 | x | local_dataflow.rb:51:20:51:24 | ... < ... | | local_dataflow.rb:51:24:51:24 | 9 | local_dataflow.rb:51:20:51:24 | ... < ... | | local_dataflow.rb:55:5:55:13 | Array | local_dataflow.rb:55:5:55:13 | call to [] | -| local_dataflow.rb:57:1:58:3 | synthetic *args | local_dataflow.rb:57:9:57:9 | x | | local_dataflow.rb:60:1:90:3 | self (test_case) | local_dataflow.rb:78:12:78:20 | self | | local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:60:1:90:3 | self (test_case) | -| local_dataflow.rb:60:1:90:3 | synthetic *args | local_dataflow.rb:60:15:60:15 | x | | local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:60:15:60:15 | x | | local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:61:12:61:12 | x | | local_dataflow.rb:61:7:68:5 | SSA phi read(x) | local_dataflow.rb:69:12:69:12 | x | @@ -3134,7 +3125,6 @@ | local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:3:118:31 | call to tap | | local_dataflow.rb:118:3:118:11 | self | local_dataflow.rb:119:3:119:31 | self | | local_dataflow.rb:118:17:118:31 | self | local_dataflow.rb:118:23:118:29 | self | -| local_dataflow.rb:118:17:118:31 | synthetic *args | local_dataflow.rb:118:20:118:20 | x | | local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:20:118:20 | x | | local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:28:118:28 | x | | local_dataflow.rb:119:3:119:31 | [post] self | local_dataflow.rb:119:8:119:16 | self | @@ -3149,10 +3139,8 @@ | local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap | | local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup | | local_dataflow.rb:123:26:123:45 | self | local_dataflow.rb:123:32:123:43 | self | -| local_dataflow.rb:123:26:123:45 | synthetic *args | local_dataflow.rb:123:29:123:29 | x | | local_dataflow.rb:126:1:128:3 | self (use) | local_dataflow.rb:127:3:127:8 | self | | local_dataflow.rb:126:1:128:3 | self in use | local_dataflow.rb:126:1:128:3 | self (use) | -| local_dataflow.rb:126:1:128:3 | synthetic *args | local_dataflow.rb:126:9:126:9 | x | | local_dataflow.rb:130:1:150:3 | self (use_use_madness) | local_dataflow.rb:132:6:132:11 | self | | local_dataflow.rb:130:1:150:3 | self in use_use_madness | local_dataflow.rb:130:1:150:3 | self (use_use_madness) | | local_dataflow.rb:131:3:131:3 | x | local_dataflow.rb:132:10:132:10 | x | diff --git a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected index 986533e1932..cce71bf42ea 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected @@ -40,7 +40,11 @@ edges | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:41:24:41:29 | ** ... [element :p1] | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:41:26:41:29 | args [element :p1] | params_flow.rb:41:24:41:29 | ** ... [element :p1] | +| params_flow.rb:43:1:43:4 | args [element 0] | params_flow.rb:44:24:44:27 | args [element 0] | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:43:1:43:4 | args [element 0] | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:44:23:44:27 | * ... [element 0] | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:44:24:44:27 | args [element 0] | params_flow.rb:44:23:44:27 | * ... [element 0] | | params_flow.rb:46:1:46:4 | args [element 0] | params_flow.rb:47:13:47:16 | args [element 0] | | params_flow.rb:46:1:46:4 | args [element 1] | params_flow.rb:47:13:47:16 | args [element 1] | | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:46:1:46:4 | args [element 0] | @@ -78,20 +82,57 @@ edges | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:69:17:69:17 | y | | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:69:24:69:24 | w | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:1:80:4 | args [element 0] | params_flow.rb:81:22:81:25 | args [element 0] | +| params_flow.rb:80:1:80:4 | args [element 2] | params_flow.rb:81:22:81:25 | args [element 2] | +| params_flow.rb:80:1:80:4 | args [element 3] | params_flow.rb:81:22:81:25 | args [element 3] | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:80:1:80:4 | args [element 0] | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:80:1:80:4 | args [element 2] | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:80:1:80:4 | args [element 3] | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:69:14:69:14 | x | +| params_flow.rb:81:21:81:25 | * ... [element 0] | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:81:21:81:25 | * ... [element 2] | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:81:21:81:25 | * ... [element 3] | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:81:22:81:25 | args [element 0] | params_flow.rb:81:21:81:25 | * ... [element 0] | +| params_flow.rb:81:22:81:25 | args [element 2] | params_flow.rb:81:21:81:25 | * ... [element 2] | +| params_flow.rb:81:22:81:25 | args [element 3] | params_flow.rb:81:21:81:25 | * ... [element 3] | | params_flow.rb:83:14:83:14 | t | params_flow.rb:84:10:84:10 | t | | params_flow.rb:83:17:83:17 | u | params_flow.rb:85:10:85:10 | u | +| params_flow.rb:83:20:83:20 | v | params_flow.rb:86:10:86:10 | v | | params_flow.rb:83:23:83:23 | w | params_flow.rb:87:10:87:10 | w | +| params_flow.rb:83:26:83:26 | x | params_flow.rb:88:10:88:10 | x | +| params_flow.rb:83:29:83:29 | y | params_flow.rb:89:10:89:10 | y | +| params_flow.rb:93:1:93:4 | args [element 0] | params_flow.rb:94:33:94:36 | args [element 0] | +| params_flow.rb:93:1:93:4 | args [element 1] | params_flow.rb:94:33:94:36 | args [element 1] | +| params_flow.rb:93:1:93:4 | args [element 2] | params_flow.rb:94:33:94:36 | args [element 2] | +| params_flow.rb:93:1:93:4 | args [element 3] | params_flow.rb:94:33:94:36 | args [element 3] | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:93:1:93:4 | args [element 0] | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:93:1:93:4 | args [element 1] | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:93:1:93:4 | args [element 2] | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:93:1:93:4 | args [element 3] | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:83:14:83:14 | t | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:94:32:94:36 | * ... [element 0] | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:94:32:94:36 | * ... [element 1] | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:94:32:94:36 | * ... [element 2] | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:94:32:94:36 | * ... [element 3] | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:94:33:94:36 | args [element 0] | params_flow.rb:94:32:94:36 | * ... [element 0] | +| params_flow.rb:94:33:94:36 | args [element 1] | params_flow.rb:94:32:94:36 | * ... [element 1] | +| params_flow.rb:94:33:94:36 | args [element 2] | params_flow.rb:94:32:94:36 | * ... [element 2] | +| params_flow.rb:94:33:94:36 | args [element 3] | params_flow.rb:94:32:94:36 | * ... [element 3] | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:83:23:83:23 | w | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:69:14:69:14 | x | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:96:32:96:65 | * ... [element 1] | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:32:96:65 | * ... [element 2] | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:32:96:65 | * ... [element 1] | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:32:96:65 | * ... [element 2] | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:69:24:69:24 | w | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:69:27:69:27 | r | | params_flow.rb:98:19:98:19 | a | params_flow.rb:99:10:99:10 | a | | params_flow.rb:98:31:98:31 | b | params_flow.rb:102:10:102:10 | b | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:98:19:98:19 | a | +| params_flow.rb:105:26:105:48 | * ... [element 1] | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:26:105:48 | * ... [element 1] | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:98:19:98:19 | a | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:98:31:98:31 | b | | params_flow.rb:108:37:108:37 | a | params_flow.rb:109:10:109:10 | a | @@ -167,7 +208,11 @@ nodes | params_flow.rb:41:13:41:21 | call to taint | semmle.label | call to taint | | params_flow.rb:41:24:41:29 | ** ... [element :p1] | semmle.label | ** ... [element :p1] | | params_flow.rb:41:26:41:29 | args [element :p1] | semmle.label | args [element :p1] | +| params_flow.rb:43:1:43:4 | args [element 0] | semmle.label | args [element 0] | +| params_flow.rb:43:9:43:17 | call to taint | semmle.label | call to taint | | params_flow.rb:44:12:44:20 | call to taint | semmle.label | call to taint | +| params_flow.rb:44:23:44:27 | * ... [element 0] | semmle.label | * ... [element 0] | +| params_flow.rb:44:24:44:27 | args [element 0] | semmle.label | args [element 0] | | params_flow.rb:46:1:46:4 | args [element 0] | semmle.label | args [element 0] | | params_flow.rb:46:1:46:4 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:46:9:46:17 | call to taint | semmle.label | call to taint | @@ -212,18 +257,56 @@ nodes | params_flow.rb:78:21:78:29 | call to taint | semmle.label | call to taint | | params_flow.rb:78:43:78:51 | call to taint | semmle.label | call to taint | | params_flow.rb:78:54:78:62 | call to taint | semmle.label | call to taint | +| params_flow.rb:80:1:80:4 | args [element 0] | semmle.label | args [element 0] | +| params_flow.rb:80:1:80:4 | args [element 2] | semmle.label | args [element 2] | +| params_flow.rb:80:1:80:4 | args [element 3] | semmle.label | args [element 3] | +| params_flow.rb:80:9:80:17 | call to taint | semmle.label | call to taint | +| params_flow.rb:80:31:80:39 | call to taint | semmle.label | call to taint | +| params_flow.rb:80:42:80:50 | call to taint | semmle.label | call to taint | | params_flow.rb:81:10:81:18 | call to taint | semmle.label | call to taint | +| params_flow.rb:81:21:81:25 | * ... [element 0] | semmle.label | * ... [element 0] | +| params_flow.rb:81:21:81:25 | * ... [element 2] | semmle.label | * ... [element 2] | +| params_flow.rb:81:21:81:25 | * ... [element 3] | semmle.label | * ... [element 3] | +| params_flow.rb:81:22:81:25 | args [element 0] | semmle.label | args [element 0] | +| params_flow.rb:81:22:81:25 | args [element 2] | semmle.label | args [element 2] | +| params_flow.rb:81:22:81:25 | args [element 3] | semmle.label | args [element 3] | | params_flow.rb:83:14:83:14 | t | semmle.label | t | | params_flow.rb:83:17:83:17 | u | semmle.label | u | +| params_flow.rb:83:20:83:20 | v | semmle.label | v | | params_flow.rb:83:23:83:23 | w | semmle.label | w | +| params_flow.rb:83:26:83:26 | x | semmle.label | x | +| params_flow.rb:83:29:83:29 | y | semmle.label | y | | params_flow.rb:84:10:84:10 | t | semmle.label | t | | params_flow.rb:85:10:85:10 | u | semmle.label | u | +| params_flow.rb:86:10:86:10 | v | semmle.label | v | | params_flow.rb:87:10:87:10 | w | semmle.label | w | +| params_flow.rb:88:10:88:10 | x | semmle.label | x | +| params_flow.rb:89:10:89:10 | y | semmle.label | y | +| params_flow.rb:93:1:93:4 | args [element 0] | semmle.label | args [element 0] | +| params_flow.rb:93:1:93:4 | args [element 1] | semmle.label | args [element 1] | +| params_flow.rb:93:1:93:4 | args [element 2] | semmle.label | args [element 2] | +| params_flow.rb:93:1:93:4 | args [element 3] | semmle.label | args [element 3] | +| params_flow.rb:93:9:93:17 | call to taint | semmle.label | call to taint | +| params_flow.rb:93:20:93:28 | call to taint | semmle.label | call to taint | +| params_flow.rb:93:31:93:39 | call to taint | semmle.label | call to taint | +| params_flow.rb:93:42:93:50 | call to taint | semmle.label | call to taint | | params_flow.rb:94:10:94:18 | call to taint | semmle.label | call to taint | | params_flow.rb:94:21:94:29 | call to taint | semmle.label | call to taint | +| params_flow.rb:94:32:94:36 | * ... [element 0] | semmle.label | * ... [element 0] | +| params_flow.rb:94:32:94:36 | * ... [element 1] | semmle.label | * ... [element 1] | +| params_flow.rb:94:32:94:36 | * ... [element 2] | semmle.label | * ... [element 2] | +| params_flow.rb:94:32:94:36 | * ... [element 3] | semmle.label | * ... [element 3] | +| params_flow.rb:94:33:94:36 | args [element 0] | semmle.label | args [element 0] | +| params_flow.rb:94:33:94:36 | args [element 1] | semmle.label | args [element 1] | +| params_flow.rb:94:33:94:36 | args [element 2] | semmle.label | args [element 2] | +| params_flow.rb:94:33:94:36 | args [element 3] | semmle.label | args [element 3] | | params_flow.rb:94:39:94:47 | call to taint | semmle.label | call to taint | | params_flow.rb:96:10:96:18 | call to taint | semmle.label | call to taint | | params_flow.rb:96:21:96:29 | call to taint | semmle.label | call to taint | +| params_flow.rb:96:32:96:65 | * ... [element 1] | semmle.label | * ... [element 1] | +| params_flow.rb:96:32:96:65 | * ... [element 2] | semmle.label | * ... [element 2] | +| params_flow.rb:96:45:96:53 | call to taint | semmle.label | call to taint | +| params_flow.rb:96:56:96:64 | call to taint | semmle.label | call to taint | | params_flow.rb:96:68:96:76 | call to taint | semmle.label | call to taint | | params_flow.rb:96:79:96:87 | call to taint | semmle.label | call to taint | | params_flow.rb:98:19:98:19 | a | semmle.label | a | @@ -231,6 +314,8 @@ nodes | params_flow.rb:99:10:99:10 | a | semmle.label | a | | params_flow.rb:102:10:102:10 | b | semmle.label | b | | params_flow.rb:105:15:105:23 | call to taint | semmle.label | call to taint | +| params_flow.rb:105:26:105:48 | * ... [element 1] | semmle.label | * ... [element 1] | +| params_flow.rb:105:39:105:47 | call to taint | semmle.label | call to taint | | params_flow.rb:106:15:106:23 | call to taint | semmle.label | call to taint | | params_flow.rb:106:37:106:45 | call to taint | semmle.label | call to taint | | params_flow.rb:108:37:108:37 | a | semmle.label | a | @@ -268,6 +353,7 @@ subpaths | params_flow.rb:10:10:10:11 | p1 | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:10:10:10:11 | p1 | $@ | params_flow.rb:46:9:46:17 | call to taint | call to taint | | params_flow.rb:10:10:10:11 | p1 | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:10:10:10:11 | p1 | $@ | params_flow.rb:117:19:117:27 | call to taint | call to taint | | params_flow.rb:11:10:11:11 | p2 | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:11:10:11:11 | p2 | $@ | params_flow.rb:14:22:14:29 | call to taint | call to taint | +| params_flow.rb:11:10:11:11 | p2 | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:11:10:11:11 | p2 | $@ | params_flow.rb:43:9:43:17 | call to taint | call to taint | | params_flow.rb:11:10:11:11 | p2 | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:11:10:11:11 | p2 | $@ | params_flow.rb:46:20:46:28 | call to taint | call to taint | | params_flow.rb:11:10:11:11 | p2 | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:11:10:11:11 | p2 | $@ | params_flow.rb:117:19:117:27 | call to taint | call to taint | | params_flow.rb:17:10:17:11 | p1 | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:17:10:17:11 | p1 | $@ | params_flow.rb:21:13:21:20 | call to taint | call to taint | @@ -295,19 +381,29 @@ subpaths | params_flow.rb:70:10:70:10 | x | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:70:10:70:10 | x | $@ | params_flow.rb:81:10:81:18 | call to taint | call to taint | | params_flow.rb:70:10:70:10 | x | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:70:10:70:10 | x | $@ | params_flow.rb:96:10:96:18 | call to taint | call to taint | | params_flow.rb:71:10:71:10 | y | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:71:10:71:10 | y | $@ | params_flow.rb:78:21:78:29 | call to taint | call to taint | +| params_flow.rb:71:10:71:10 | y | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:71:10:71:10 | y | $@ | params_flow.rb:80:9:80:17 | call to taint | call to taint | | params_flow.rb:71:10:71:10 | y | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:71:10:71:10 | y | $@ | params_flow.rb:96:21:96:29 | call to taint | call to taint | | params_flow.rb:74:10:74:10 | w | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:74:10:74:10 | w | $@ | params_flow.rb:78:43:78:51 | call to taint | call to taint | +| params_flow.rb:74:10:74:10 | w | params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:74:10:74:10 | w | $@ | params_flow.rb:80:31:80:39 | call to taint | call to taint | +| params_flow.rb:74:10:74:10 | w | params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:74:10:74:10 | w | $@ | params_flow.rb:96:45:96:53 | call to taint | call to taint | | params_flow.rb:74:10:74:10 | w | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:74:10:74:10 | w | $@ | params_flow.rb:96:68:96:76 | call to taint | call to taint | | params_flow.rb:75:10:75:10 | r | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:75:10:75:10 | r | $@ | params_flow.rb:78:54:78:62 | call to taint | call to taint | +| params_flow.rb:75:10:75:10 | r | params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:75:10:75:10 | r | $@ | params_flow.rb:80:42:80:50 | call to taint | call to taint | +| params_flow.rb:75:10:75:10 | r | params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:75:10:75:10 | r | $@ | params_flow.rb:96:56:96:64 | call to taint | call to taint | | params_flow.rb:75:10:75:10 | r | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:75:10:75:10 | r | $@ | params_flow.rb:96:79:96:87 | call to taint | call to taint | | params_flow.rb:84:10:84:10 | t | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:84:10:84:10 | t | $@ | params_flow.rb:94:10:94:18 | call to taint | call to taint | | params_flow.rb:84:10:84:10 | t | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:84:10:84:10 | t | $@ | params_flow.rb:130:9:130:17 | call to taint | call to taint | | params_flow.rb:85:10:85:10 | u | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:85:10:85:10 | u | $@ | params_flow.rb:94:21:94:29 | call to taint | call to taint | | params_flow.rb:85:10:85:10 | u | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:85:10:85:10 | u | $@ | params_flow.rb:130:20:130:28 | call to taint | call to taint | | params_flow.rb:85:10:85:10 | u | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:85:10:85:10 | u | $@ | params_flow.rb:131:17:131:25 | call to taint | call to taint | +| params_flow.rb:86:10:86:10 | v | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:86:10:86:10 | v | $@ | params_flow.rb:93:9:93:17 | call to taint | call to taint | +| params_flow.rb:87:10:87:10 | w | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:87:10:87:10 | w | $@ | params_flow.rb:93:20:93:28 | call to taint | call to taint | | params_flow.rb:87:10:87:10 | w | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:87:10:87:10 | w | $@ | params_flow.rb:94:39:94:47 | call to taint | call to taint | +| params_flow.rb:88:10:88:10 | x | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:88:10:88:10 | x | $@ | params_flow.rb:93:31:93:39 | call to taint | call to taint | +| params_flow.rb:89:10:89:10 | y | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:89:10:89:10 | y | $@ | params_flow.rb:93:42:93:50 | call to taint | call to taint | | params_flow.rb:99:10:99:10 | a | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:99:10:99:10 | a | $@ | params_flow.rb:105:15:105:23 | call to taint | call to taint | | params_flow.rb:99:10:99:10 | a | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:99:10:99:10 | a | $@ | params_flow.rb:106:15:106:23 | call to taint | call to taint | +| params_flow.rb:102:10:102:10 | b | params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:102:10:102:10 | b | $@ | params_flow.rb:105:39:105:47 | call to taint | call to taint | | params_flow.rb:102:10:102:10 | b | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:102:10:102:10 | b | $@ | params_flow.rb:106:37:106:45 | call to taint | call to taint | | params_flow.rb:109:10:109:10 | a | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:109:10:109:10 | a | $@ | params_flow.rb:114:33:114:41 | call to taint | call to taint | | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:110:10:110:13 | ...[...] | $@ | params_flow.rb:114:44:114:52 | call to taint | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/params/params_flow.rb b/ruby/ql/test/library-tests/dataflow/params/params_flow.rb index 7d664613dea..b83fa45eb74 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/params/params_flow.rb @@ -8,7 +8,7 @@ end def positional(p1, p2) sink p1 # $ hasValueFlow=1 $ hasValueFlow=16 $ hasValueFlow=18 $ hasValueFlow=61 - sink p2 # $ hasValueFlow=2 $ hasValueFlow=19 $ hasValueFlow=61 $ MISSING: hasValueFlow=17 + sink p2 # $ hasValueFlow=2 $ hasValueFlow=19 $ hasValueFlow=61 $ hasValueFlow=17 end positional(taint(1), taint(2)) @@ -68,11 +68,11 @@ splatstuff(*args) def splatmid(x, y, *z, w, r) sink x # $ hasValueFlow=27 $ hasValueFlow=32 $ hasValueFlow=45 - sink y # $ hasValueFlow=28 $ hasValueFlow=46 $ MISSING: hasValueFlow=33 + sink y # $ hasValueFlow=28 $ hasValueFlow=46 $ hasValueFlow=33 sink z[0] # MISSING: $ hasValueFlow=47 $ hasValueFlow=29 $ hasValueFlow=34 sink z[1] # $ MISSING: hasValueFlow=48 $ hasValueFlow=35 - sink w # $ hasValueFlow=30 $ hasValueFlow=50 $ MISSING: hasValueFlow=36 - sink r # $ hasValueFlow=31 $ hasValueFlow=51 $ MISSING: hasValueFlow=37 + sink w # $ hasValueFlow=30 $ hasValueFlow=50 $ MISSING: hasValueFlow=36 $ SPURIOUS: hasValueFlow=35 $ hasValueFlow=48 + sink r # $ hasValueFlow=31 $ hasValueFlow=51 $ MISSING: hasValueFlow=37 $ SPURIOUS: hasValueFlow=36 $ hasValueFlow=49 end splatmid(taint(27), taint(28), taint(29), taint(30), taint(31)) @@ -83,10 +83,10 @@ splatmid(taint(32), *args, taint(37)) def pos_many(t, u, v, w, x, y, z) sink t # $ hasValueFlow=38 $ hasValueFlow=66 sink u # $ hasValueFlow=39 $ hasValueFlow=67 $ SPURIOUS: hasValueFlow=68 - sink v # $ MISSING: hasValueFlow=40 - sink w # $ MISSING: hasValueFlow=41 $ SPURIOUS: hasValueFlow=44 - sink x # $ MISSING: hasValueFlow=42 - sink y # $ MISSING: hasValueFlow=43 + sink v # $ hasValueFlow=40 + sink w # $ hasValueFlow=41 $ SPURIOUS: hasValueFlow=44 + sink x # $ hasValueFlow=42 + sink y # $ hasValueFlow=43 sink z # $ MISSING: hasValueFlow=44 end @@ -98,8 +98,8 @@ splatmid(taint(45), taint(46), *[taint(47), taint(48), taint(49)], taint(50), ta def splatmidsmall(a, *splats, b) sink a # $ hasValueFlow=52 $ hasValueFlow=55 sink splats[0] # $ MISSING: hasValueFlow=53 - sink splats[1] # $ MISSING: hasValueFlow=54 - sink b # $ hasValueFlow=57 + sink splats[1] + sink b # $ hasValueFlow=57 $ hasValueFlow=54 end splatmidsmall(taint(52), *[taint(53), taint(54)]) diff --git a/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected index 15884246b73..9f2ed4725f5 100644 --- a/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected @@ -7,7 +7,6 @@ track | type_tracker.rb:2:5:5:7 | field= | type tracker without call steps | type_tracker.rb:2:5:5:7 | field= | | type_tracker.rb:2:5:5:7 | self in field= | type tracker with call steps | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:2:5:5:7 | self in field= | type tracker without call steps | type_tracker.rb:2:5:5:7 | self in field= | -| type_tracker.rb:2:5:5:7 | synthetic *args | type tracker without call steps | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:3:14:3:23 | call to field | @@ -58,7 +57,6 @@ track | type_tracker.rb:18:1:21:3 | &block | type tracker without call steps | type_tracker.rb:18:1:21:3 | &block | | type_tracker.rb:18:1:21:3 | positional | type tracker without call steps | type_tracker.rb:18:1:21:3 | positional | | type_tracker.rb:18:1:21:3 | self in positional | type tracker without call steps | type_tracker.rb:18:1:21:3 | self in positional | -| type_tracker.rb:18:1:21:3 | synthetic *args | type tracker without call steps | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps with content element 0 | type_tracker.rb:19:5:19:11 | * | @@ -150,7 +148,6 @@ track | type_tracker.rb:32:26:32:26 | 8 | type tracker without call steps with content element :p1 | type_tracker.rb:32:1:32:27 | ** | | type_tracker.rb:34:1:53:3 | &block | type tracker without call steps | type_tracker.rb:34:1:53:3 | &block | | type_tracker.rb:34:1:53:3 | self in throughArray | type tracker without call steps | type_tracker.rb:34:1:53:3 | self in throughArray | -| type_tracker.rb:34:1:53:3 | synthetic *args | type tracker without call steps | type_tracker.rb:34:1:53:3 | synthetic *args | | type_tracker.rb:34:1:53:3 | throughArray | type tracker without call steps | type_tracker.rb:34:1:53:3 | throughArray | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:34:18:34:20 | obj | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:34:18:34:20 | obj | @@ -357,7 +354,6 @@ trackEnd | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:7:5:9:7 | self (field) | | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:8:9:8:14 | self | -| type_tracker.rb:2:5:5:7 | synthetic *args | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | @@ -429,7 +425,6 @@ trackEnd | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:18:1:21:3 | self in positional | | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:19:5:19:11 | self | | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:20:5:20:11 | self | -| type_tracker.rb:18:1:21:3 | synthetic *args | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | @@ -522,7 +517,6 @@ trackEnd | type_tracker.rb:32:26:32:26 | 8 | type_tracker.rb:32:26:32:26 | 8 | | type_tracker.rb:34:1:53:3 | &block | type_tracker.rb:34:1:53:3 | &block | | type_tracker.rb:34:1:53:3 | self in throughArray | type_tracker.rb:34:1:53:3 | self in throughArray | -| type_tracker.rb:34:1:53:3 | synthetic *args | type_tracker.rb:34:1:53:3 | synthetic *args | | type_tracker.rb:34:1:53:3 | throughArray | type_tracker.rb:34:1:53:3 | throughArray | | type_tracker.rb:34:18:34:20 | obj | type_tracker.rb:34:18:34:20 | obj | | type_tracker.rb:34:18:34:20 | obj | type_tracker.rb:34:18:34:20 | obj | From ef63ea8399c910489eac17bf2ac0e5dc743ff2c7 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Wed, 23 Aug 2023 13:02:04 +0100 Subject: [PATCH 387/788] Ruby: Update fixture --- .../dataflow/params/TypeTracker.expected | 360 ++++++++++++++++++ 1 file changed, 360 insertions(+) diff --git a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected index 785af87c24a..8aa67259ded 100644 --- a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected @@ -2,6 +2,8 @@ track | params_flow.rb:1:1:3:3 | &block | type tracker without call steps | params_flow.rb:1:1:3:3 | &block | | params_flow.rb:1:1:3:3 | self in taint | type tracker without call steps | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:3:3 | synthetic *args | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:1:1:3:3 | synthetic *args | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:1:1:3:3 | synthetic *args | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:1:1:3:3 | taint | type tracker without call steps | params_flow.rb:1:1:3:3 | taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | @@ -35,7 +37,10 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:20:83:20 | v | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:29:83:29 | y | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:98:19:98:19 | a | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:108:37:108:37 | a | @@ -63,7 +68,10 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | @@ -73,18 +81,33 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:111:5:111:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:134:5:134:16 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :c | params_flow.rb:108:1:112:3 | **kwargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | **kwargs | @@ -296,6 +319,8 @@ track | params_flow.rb:5:1:7:3 | self in sink | type tracker without call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:5:1:7:3 | sink | type tracker without call steps | params_flow.rb:5:1:7:3 | sink | | params_flow.rb:5:1:7:3 | synthetic *args | type tracker without call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:5:1:7:3 | synthetic *args | type tracker without call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:5:1:7:3 | synthetic *args | type tracker without call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:5:10:5:10 | x | type tracker without call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | type tracker without call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | type tracker without call steps with content element 0 | params_flow.rb:6:5:6:10 | * | @@ -370,6 +395,8 @@ track | params_flow.rb:9:1:12:3 | self in positional | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:9:1:12:3 | self in positional | type tracker without call steps | params_flow.rb:9:1:12:3 | self in positional | | params_flow.rb:9:1:12:3 | synthetic *args | type tracker without call steps | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:9:1:12:3 | synthetic *args | type tracker without call steps | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:9:1:12:3 | synthetic *args | type tracker without call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:9:16:9:17 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:9:16:9:17 | p1 | type tracker without call steps | params_flow.rb:9:16:9:17 | p1 | @@ -906,14 +933,29 @@ track | params_flow.rb:43:1:43:4 | args | type tracker without call steps | params_flow.rb:43:1:43:4 | args | | params_flow.rb:43:8:43:18 | * | type tracker without call steps | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:8:43:18 | Array | type tracker without call steps | params_flow.rb:43:8:43:18 | Array | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps | params_flow.rb:43:8:43:18 | call to [] | | params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:43:9:43:17 | * | type tracker without call steps | params_flow.rb:43:9:43:17 | * | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:43:8:43:18 | call to [] | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:43:15:43:16 | 17 | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | * | @@ -935,6 +977,7 @@ track | params_flow.rb:44:18:44:19 | 16 | type tracker without call steps | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:44:18:44:19 | 16 | type tracker without call steps | params_flow.rb:44:18:44:19 | 16 | | params_flow.rb:44:18:44:19 | 16 | type tracker without call steps with content element 0 | params_flow.rb:44:12:44:20 | * | +| params_flow.rb:44:23:44:27 | * ... | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:23:44:27 | * ... | type tracker without call steps | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:46:1:46:4 | args | type tracker without call steps | params_flow.rb:46:1:46:4 | args | | params_flow.rb:46:8:46:29 | * | type tracker without call steps | params_flow.rb:46:8:46:29 | * | @@ -999,6 +1042,8 @@ track | params_flow.rb:49:1:53:3 | self in posargs | type tracker without call steps | params_flow.rb:49:1:53:3 | self in posargs | | params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:49:13:49:14 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:49:13:49:14 | p1 | type tracker without call steps | params_flow.rb:49:13:49:14 | p1 | @@ -1077,6 +1122,7 @@ track | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps | params_flow.rb:57:8:57:18 | call to [] | | params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | @@ -1085,6 +1131,7 @@ track | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | * | @@ -1095,6 +1142,7 @@ track | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps | params_flow.rb:57:15:57:16 | 22 | @@ -1117,6 +1165,7 @@ track | params_flow.rb:58:15:58:16 | 23 | type tracker without call steps | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:58:15:58:16 | 23 | type tracker without call steps | params_flow.rb:58:15:58:16 | 23 | | params_flow.rb:58:15:58:16 | 23 | type tracker without call steps with content element 0 | params_flow.rb:58:9:58:17 | * | +| params_flow.rb:58:20:58:24 | * ... | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:58:20:58:24 | * ... | type tracker with call steps | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:58:20:58:24 | * ... | type tracker without call steps | params_flow.rb:58:20:58:24 | * ... | | params_flow.rb:60:1:60:4 | args | type tracker without call steps | params_flow.rb:60:1:60:4 | args | @@ -1212,6 +1261,8 @@ track | params_flow.rb:69:1:76:3 | self in splatmid | type tracker without call steps | params_flow.rb:69:1:76:3 | self in splatmid | | params_flow.rb:69:1:76:3 | splatmid | type tracker without call steps | params_flow.rb:69:1:76:3 | splatmid | | params_flow.rb:69:1:76:3 | synthetic *args | type tracker without call steps | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:69:1:76:3 | synthetic *args | type tracker without call steps | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:69:1:76:3 | synthetic *args | type tracker without call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:69:14:69:14 | x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:14:69:14 | x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:69:14:69:14 | x | type tracker without call steps | params_flow.rb:69:14:69:14 | x | @@ -1340,14 +1391,29 @@ track | params_flow.rb:80:1:80:4 | args | type tracker without call steps | params_flow.rb:80:1:80:4 | args | | params_flow.rb:80:8:80:51 | * | type tracker without call steps | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:8:80:51 | Array | type tracker without call steps | params_flow.rb:80:8:80:51 | Array | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:9:80:17 | * | type tracker without call steps | params_flow.rb:80:9:80:17 | * | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:80:15:80:16 | 33 | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | * | @@ -1355,11 +1421,13 @@ track | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:20:80:28 | * | type tracker without call steps | params_flow.rb:80:20:80:28 | * | +| params_flow.rb:80:20:80:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:26:80:27 | 34 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:80:26:80:27 | 34 | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 0 | params_flow.rb:80:20:80:28 | * | @@ -1367,11 +1435,21 @@ track | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:31:80:39 | * | type tracker without call steps | params_flow.rb:80:31:80:39 | * | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:80:37:80:38 | 35 | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 0 | params_flow.rb:80:31:80:39 | * | @@ -1379,11 +1457,21 @@ track | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:42:80:50 | * | type tracker without call steps | params_flow.rb:80:42:80:50 | * | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 3 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 3 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:80:48:80:49 | 36 | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 0 | params_flow.rb:80:42:80:50 | * | @@ -1405,6 +1493,7 @@ track | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps | params_flow.rb:81:16:81:17 | 32 | | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps with content element 0 | params_flow.rb:81:10:81:18 | * | +| params_flow.rb:81:21:81:25 | * ... | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:21:81:25 | * ... | type tracker without call steps | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:81:28:81:36 | * | type tracker without call steps | params_flow.rb:81:28:81:36 | * | | params_flow.rb:81:28:81:36 | call to taint | type tracker without call steps | params_flow.rb:81:28:81:36 | call to taint | @@ -1417,6 +1506,8 @@ track | params_flow.rb:83:1:91:3 | self in pos_many | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:83:1:91:3 | self in pos_many | type tracker without call steps | params_flow.rb:83:1:91:3 | self in pos_many | | params_flow.rb:83:1:91:3 | synthetic *args | type tracker without call steps | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:83:1:91:3 | synthetic *args | type tracker without call steps | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:83:1:91:3 | synthetic *args | type tracker without call steps | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:83:14:83:14 | t | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:14:83:14 | t | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:14:83:14 | t | type tracker without call steps | params_flow.rb:83:14:83:14 | t | @@ -1471,14 +1562,29 @@ track | params_flow.rb:93:1:93:4 | args | type tracker without call steps | params_flow.rb:93:1:93:4 | args | | params_flow.rb:93:8:93:51 | * | type tracker without call steps | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:8:93:51 | Array | type tracker without call steps | params_flow.rb:93:8:93:51 | Array | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:9:93:17 | * | type tracker without call steps | params_flow.rb:93:9:93:17 | * | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:93:15:93:16 | 40 | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | * | @@ -1486,11 +1592,21 @@ track | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:20:93:28 | * | type tracker without call steps | params_flow.rb:93:20:93:28 | * | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:93:26:93:27 | 41 | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 0 | params_flow.rb:93:20:93:28 | * | @@ -1498,11 +1614,21 @@ track | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:31:93:39 | * | type tracker without call steps | params_flow.rb:93:31:93:39 | * | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 2 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 2 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:93:37:93:38 | 42 | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 0 | params_flow.rb:93:31:93:39 | * | @@ -1510,11 +1636,21 @@ track | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:42:93:50 | * | type tracker without call steps | params_flow.rb:93:42:93:50 | * | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 3 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 3 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:93:48:93:49 | 43 | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 0 | params_flow.rb:93:42:93:50 | * | @@ -1550,6 +1686,7 @@ track | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps | params_flow.rb:94:27:94:28 | 39 | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps with content element 0 | params_flow.rb:94:21:94:29 | * | +| params_flow.rb:94:32:94:36 | * ... | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:32:94:36 | * ... | type tracker without call steps | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:94:39:94:47 | * | type tracker without call steps | params_flow.rb:94:39:94:47 | * | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | @@ -1594,17 +1731,21 @@ track | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps | params_flow.rb:96:27:96:28 | 46 | | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps with content element 0 | params_flow.rb:96:21:96:29 | * | +| params_flow.rb:96:32:96:65 | * ... | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:32:96:65 | * ... | type tracker without call steps | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:33:96:65 | * | type tracker without call steps | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:33:96:65 | Array | type tracker without call steps | params_flow.rb:96:33:96:65 | Array | +| params_flow.rb:96:33:96:65 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:34:96:42 | * | type tracker without call steps | params_flow.rb:96:34:96:42 | * | +| params_flow.rb:96:34:96:42 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:40:96:41 | 47 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:40:96:41 | 47 | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | * | @@ -1612,11 +1753,21 @@ track | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:45:96:53 | * | type tracker without call steps | params_flow.rb:96:45:96:53 | * | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:51:96:52 | 48 | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 0 | params_flow.rb:96:45:96:53 | * | @@ -1624,11 +1775,21 @@ track | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:56:96:64 | * | type tracker without call steps | params_flow.rb:96:56:96:64 | * | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:62:96:63 | 49 | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 0 | params_flow.rb:96:56:96:64 | * | @@ -1668,6 +1829,8 @@ track | params_flow.rb:98:1:103:3 | self in splatmidsmall | type tracker without call steps | params_flow.rb:98:1:103:3 | self in splatmidsmall | | params_flow.rb:98:1:103:3 | splatmidsmall | type tracker without call steps | params_flow.rb:98:1:103:3 | splatmidsmall | | params_flow.rb:98:1:103:3 | synthetic *args | type tracker without call steps | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:98:1:103:3 | synthetic *args | type tracker without call steps | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:98:1:103:3 | synthetic *args | type tracker without call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:98:19:98:19 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:19:98:19 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:98:19:98:19 | a | type tracker without call steps | params_flow.rb:98:19:98:19 | a | @@ -1719,17 +1882,21 @@ track | params_flow.rb:105:21:105:22 | 52 | type tracker without call steps | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:105:21:105:22 | 52 | type tracker without call steps | params_flow.rb:105:21:105:22 | 52 | | params_flow.rb:105:21:105:22 | 52 | type tracker without call steps with content element 0 | params_flow.rb:105:15:105:23 | * | +| params_flow.rb:105:26:105:48 | * ... | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:26:105:48 | * ... | type tracker without call steps | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:27:105:48 | * | type tracker without call steps | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:27:105:48 | Array | type tracker without call steps | params_flow.rb:105:27:105:48 | Array | +| params_flow.rb:105:27:105:48 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:28:105:36 | * | type tracker without call steps | params_flow.rb:105:28:105:36 | * | +| params_flow.rb:105:28:105:36 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:34:105:35 | 53 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content element 0 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:34:105:35 | 53 | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | * | @@ -1737,11 +1904,21 @@ track | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:39:105:47 | * | type tracker without call steps | params_flow.rb:105:39:105:47 | * | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 1 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:45:105:46 | 54 | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 0 | params_flow.rb:105:39:105:47 | * | @@ -1797,6 +1974,8 @@ track | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | type tracker without call steps | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | | params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:108:37:108:37 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:37:108:37 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:108:37:108:37 | a | type tracker without call steps | params_flow.rb:108:37:108:37 | a | @@ -2206,6 +2385,8 @@ trackEnd | params_flow.rb:1:1:3:3 | &block | params_flow.rb:1:1:3:3 | &block | | params_flow.rb:1:1:3:3 | self in taint | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:3:3 | synthetic *args | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:1:1:3:3 | synthetic *args | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:1:1:3:3 | synthetic *args | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:1:1:3:3 | taint | params_flow.rb:1:1:3:3 | taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:1:1:137:45 | self (params_flow.rb) | @@ -2464,11 +2645,20 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:14:83:14 | t | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:17:83:17 | u | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:20:83:20 | v | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:23:83:23 | w | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:29:83:29 | y | | params_flow.rb:1:11:1:11 | x | params_flow.rb:84:10:84:10 | t | | params_flow.rb:1:11:1:11 | x | params_flow.rb:85:10:85:10 | u | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:86:10:86:10 | v | | params_flow.rb:1:11:1:11 | x | params_flow.rb:87:10:87:10 | w | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:88:10:88:10 | x | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:89:10:89:10 | y | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:31:93:39 | call to taint | @@ -2527,6 +2717,8 @@ trackEnd | params_flow.rb:5:1:7:3 | self in sink | params_flow.rb:6:5:6:10 | self | | params_flow.rb:5:1:7:3 | sink | params_flow.rb:5:1:7:3 | sink | | params_flow.rb:5:1:7:3 | synthetic *args | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:5:1:7:3 | synthetic *args | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:5:1:7:3 | synthetic *args | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | @@ -2607,6 +2799,8 @@ trackEnd | params_flow.rb:9:1:12:3 | self in positional | params_flow.rb:10:5:10:11 | self | | params_flow.rb:9:1:12:3 | self in positional | params_flow.rb:11:5:11:11 | self | | params_flow.rb:9:1:12:3 | synthetic *args | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:9:1:12:3 | synthetic *args | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:9:1:12:3 | synthetic *args | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:6:10:6:10 | x | @@ -3177,15 +3371,33 @@ trackEnd | params_flow.rb:43:1:43:4 | args | params_flow.rb:43:1:43:4 | args | | params_flow.rb:43:8:43:18 | * | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:8:43:18 | Array | params_flow.rb:43:8:43:18 | Array | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:1:43:4 | args | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:1:43:18 | ... = ... | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:8:43:18 | call to [] | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:44:24:44:27 | args | | params_flow.rb:43:9:43:17 | * | params_flow.rb:43:9:43:17 | * | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:43:15:43:16 | 17 | | params_flow.rb:44:1:44:28 | call to positional | params_flow.rb:44:1:44:28 | call to positional | @@ -3208,6 +3420,7 @@ trackEnd | params_flow.rb:44:18:44:19 | 16 | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:44:18:44:19 | 16 | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:44:18:44:19 | 16 | params_flow.rb:44:18:44:19 | 16 | +| params_flow.rb:44:23:44:27 | * ... | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:23:44:27 | * ... | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:46:1:46:4 | args | params_flow.rb:46:1:46:4 | args | | params_flow.rb:46:8:46:29 | * | params_flow.rb:46:8:46:29 | * | @@ -3275,6 +3488,8 @@ trackEnd | params_flow.rb:49:1:53:3 | self in posargs | params_flow.rb:52:5:52:21 | self | | params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:6:10:6:10 | x | @@ -3398,6 +3613,7 @@ trackEnd | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:50:10:50:11 | p1 | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:58:15:58:16 | 23 | +| params_flow.rb:58:20:58:24 | * ... | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:58:20:58:24 | * ... | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:58:20:58:24 | * ... | params_flow.rb:49:18:49:24 | posargs | | params_flow.rb:58:20:58:24 | * ... | params_flow.rb:51:11:51:17 | posargs | @@ -3508,6 +3724,8 @@ trackEnd | params_flow.rb:69:1:76:3 | self in splatmid | params_flow.rb:75:5:75:10 | self | | params_flow.rb:69:1:76:3 | splatmid | params_flow.rb:69:1:76:3 | splatmid | | params_flow.rb:69:1:76:3 | synthetic *args | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:69:1:76:3 | synthetic *args | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:69:1:76:3 | synthetic *args | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:69:14:69:14 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:14:69:14 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:14:69:14 | x | params_flow.rb:6:10:6:10 | x | @@ -3656,15 +3874,33 @@ trackEnd | params_flow.rb:80:1:80:4 | args | params_flow.rb:80:1:80:4 | args | | params_flow.rb:80:8:80:51 | * | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:8:80:51 | Array | params_flow.rb:80:8:80:51 | Array | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:1:80:4 | args | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:1:80:51 | ... = ... | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:81:22:81:25 | args | | params_flow.rb:80:9:80:17 | * | params_flow.rb:80:9:80:17 | * | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:80:15:80:16 | 33 | | params_flow.rb:80:20:80:28 | * | params_flow.rb:80:20:80:28 | * | @@ -3675,17 +3911,41 @@ trackEnd | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:80:26:80:27 | 34 | | params_flow.rb:80:31:80:39 | * | params_flow.rb:80:31:80:39 | * | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:74:10:74:10 | w | | params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:80:37:80:38 | 35 | | params_flow.rb:80:42:80:50 | * | params_flow.rb:80:42:80:50 | * | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:75:10:75:10 | r | | params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:75:10:75:10 | r | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:80:48:80:49 | 36 | | params_flow.rb:81:1:81:37 | call to splatmid | params_flow.rb:81:1:81:37 | call to splatmid | @@ -3708,6 +3968,7 @@ trackEnd | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:70:10:70:10 | x | | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:81:16:81:17 | 32 | +| params_flow.rb:81:21:81:25 | * ... | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:21:81:25 | * ... | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:81:28:81:36 | * | params_flow.rb:81:28:81:36 | * | | params_flow.rb:81:28:81:36 | call to taint | params_flow.rb:81:28:81:36 | call to taint | @@ -3731,6 +3992,8 @@ trackEnd | params_flow.rb:83:1:91:3 | self in pos_many | params_flow.rb:89:5:89:10 | self | | params_flow.rb:83:1:91:3 | self in pos_many | params_flow.rb:90:5:90:10 | self | | params_flow.rb:83:1:91:3 | synthetic *args | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:83:1:91:3 | synthetic *args | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:83:1:91:3 | synthetic *args | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:83:14:83:14 | t | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:14:83:14 | t | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:14:83:14 | t | params_flow.rb:6:10:6:10 | x | @@ -3799,36 +4062,90 @@ trackEnd | params_flow.rb:93:1:93:4 | args | params_flow.rb:93:1:93:4 | args | | params_flow.rb:93:8:93:51 | * | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:8:93:51 | Array | params_flow.rb:93:8:93:51 | Array | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:1:93:4 | args | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:1:93:51 | ... = ... | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:94:33:94:36 | args | | params_flow.rb:93:9:93:17 | * | params_flow.rb:93:9:93:17 | * | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:93:15:93:16 | 40 | | params_flow.rb:93:20:93:28 | * | params_flow.rb:93:20:93:28 | * | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:87:10:87:10 | w | | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:87:10:87:10 | w | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:93:26:93:27 | 41 | | params_flow.rb:93:31:93:39 | * | params_flow.rb:93:31:93:39 | * | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:88:10:88:10 | x | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:88:10:88:10 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:93:37:93:38 | 42 | | params_flow.rb:93:42:93:50 | * | params_flow.rb:93:42:93:50 | * | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:89:10:89:10 | y | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:89:10:89:10 | y | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:93:48:93:49 | 43 | | params_flow.rb:94:1:94:48 | call to pos_many | params_flow.rb:94:1:94:48 | call to pos_many | @@ -3870,6 +4187,7 @@ trackEnd | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:85:10:85:10 | u | | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:94:27:94:28 | 39 | +| params_flow.rb:94:32:94:36 | * ... | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:32:94:36 | * ... | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:94:39:94:47 | * | params_flow.rb:94:39:94:47 | * | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3929,6 +4247,7 @@ trackEnd | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:71:10:71:10 | y | | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:96:27:96:28 | 46 | +| params_flow.rb:96:32:96:65 | * ... | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:32:96:65 | * ... | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:33:96:65 | * | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:33:96:65 | Array | params_flow.rb:96:33:96:65 | Array | @@ -3941,17 +4260,41 @@ trackEnd | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:40:96:41 | 47 | | params_flow.rb:96:45:96:53 | * | params_flow.rb:96:45:96:53 | * | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:74:10:74:10 | w | | params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:51:96:52 | 48 | | params_flow.rb:96:56:96:64 | * | params_flow.rb:96:56:96:64 | * | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:75:10:75:10 | r | | params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:75:10:75:10 | r | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:62:96:63 | 49 | | params_flow.rb:96:68:96:76 | * | params_flow.rb:96:68:96:76 | * | @@ -4004,6 +4347,8 @@ trackEnd | params_flow.rb:98:1:103:3 | self in splatmidsmall | params_flow.rb:102:5:102:10 | self | | params_flow.rb:98:1:103:3 | splatmidsmall | params_flow.rb:98:1:103:3 | splatmidsmall | | params_flow.rb:98:1:103:3 | synthetic *args | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:98:1:103:3 | synthetic *args | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:98:1:103:3 | synthetic *args | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:98:19:98:19 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:19:98:19 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:19:98:19 | a | params_flow.rb:6:10:6:10 | x | @@ -4065,6 +4410,7 @@ trackEnd | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:99:10:99:10 | a | | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:105:21:105:22 | 52 | +| params_flow.rb:105:26:105:48 | * ... | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:26:105:48 | * ... | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:27:105:48 | * | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:27:105:48 | Array | params_flow.rb:105:27:105:48 | Array | @@ -4077,10 +4423,22 @@ trackEnd | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:34:105:35 | 53 | | params_flow.rb:105:39:105:47 | * | params_flow.rb:105:39:105:47 | * | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:102:10:102:10 | b | | params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:102:10:102:10 | b | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:45:105:46 | 54 | | params_flow.rb:106:1:106:46 | * | params_flow.rb:106:1:106:46 | * | @@ -4143,6 +4501,8 @@ trackEnd | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | | params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:108:37:108:37 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:37:108:37 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:37:108:37 | a | params_flow.rb:6:10:6:10 | x | From 9ccd8cd24880cdf87cd8112313a335c3a00c4b9f Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Wed, 23 Aug 2023 14:21:06 +0100 Subject: [PATCH 388/788] Ruby: Update documentation --- .../dataflow/internal/DataFlowPrivate.qll | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 6cb3791ee29..56558f62770 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -1025,46 +1025,43 @@ private module ParameterNodes { * For example, in the following code: * * ```rb - * def foo(x, y); end + * def foo(x, y, z); end * - * foo(*[a, b]) + * foo(a, *[b, c]) * ``` * - * We want `a` to flow to `x` and `b` to flow to `y`. We do this by constructing + * We want `b` to flow to `y` and `c` to flow to `z`. We do this by constructing * a `SynthSplatParameterNode` for the method `foo`, and matching the splat argument to this * parameter node via `parameterMatch/2`. We then add read steps from this node to parameters - * `x` and `y`, for content at indices 0 and 1 respectively (see `readStep`). + * `y` and `z`, for content at indices 0 and 1 respectively (see `readStep`). * - * We don't yet correctly handle cases where the splat argument is not the first argument, e.g. in - * ```rb - * foo(a, *[b]) - * ``` - * - * TODO: we do now support the above, but we don't support this case: + * This node stores the index of the splat argument it is matched to, which allows us to shift + * indices correctly when adding read steps. Without this, in the example above we would erroneously + * get a read step to `x` and index 0 and `y` and index 1 etc. * + * We don't yet correctly handle cases where a positional argument follows the splat argument, e.g. in * ```rb * foo(a, *[b], c) * ``` - * - * Update this documentation. */ class SynthSplatParameterNode extends ParameterNodeImpl, TSynthSplatParameterNode { private DataFlowCallable callable; + // The position of the splat argument that is matched to this node private int n; SynthSplatParameterNode() { this = TSynthSplatParameterNode(callable, n) } /** - * Gets a parameter which will contain the value given by `c`, assuming - * that the method was called with a single splat argument. - * For example, if the synth splat parameter is for the following method + * Gets a parameter which will contain the value given by `c`. + * For example, if the synth splat parameter is for the following method and method call: * * ```rb - * def foo(x, y, a:, *rest) - * end + * def foo(x, y, a:, *rest); end + * + * foo(arg1, *args) * ``` * - * then `getAParameter(element 0) = x` and `getAParameter(element 1) = y`. + * then `getAParameter(element 0) = y`. */ ParameterNode getAParameter(ContentSet c) { exists(int m | From 3c8683428bcf2b0b6a6ea0f691b61cf39b16d7cd Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Fri, 25 Aug 2023 10:13:05 +0100 Subject: [PATCH 389/788] Ruby: Model more splat flow (alternative approach) --- .../dataflow/internal/DataFlowDispatch.qll | 12 +- .../dataflow/internal/DataFlowPrivate.qll | 107 +++++++++++++----- .../dataflow/params/params_flow.rb | 2 +- 3 files changed, 84 insertions(+), 37 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll index 7241222766a..613a48c619c 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll @@ -472,11 +472,7 @@ private module Cached { TSplatParameterPosition(int pos) { exists(Parameter p | p.getPosition() = pos and p instanceof SplatParameter) } or - TSynthSplatParameterPosition(int pos) { - // `pos` is the position of the splat _argument_ that is matched to the - // `SynthSplatParameterNode` with this position. - exists(ArgumentPosition a | a.isSplat(pos)) - } or + TSynthSplatParameterPosition() or TSynthArgSplatParameterPosition() or TAnyParameterPosition() or TAnyKeywordParameterPosition() @@ -1305,7 +1301,7 @@ class ParameterPosition extends TParameterPosition { predicate isSynthHashSplat() { this = TSynthHashSplatParameterPosition() } - predicate isSynthSplat(int n) { this = TSynthSplatParameterPosition(n) } + predicate isSynthSplat() { this = TSynthSplatParameterPosition() } // A fake position to indicate that this parameter node holds content from a synth arg splat node predicate isSynthArgSplat() { this = TSynthArgSplatParameterPosition() } @@ -1343,7 +1339,7 @@ class ParameterPosition extends TParameterPosition { or this.isAnyNamed() and result = "any-named" or - exists(int pos | this.isSynthSplat(pos) and result = "synthetic * (position " + pos + ")") + this.isSynthSplat() and result = "synthetic *" or this.isSynthArgSplat() and result = "synthetic * (from *args)" or @@ -1446,7 +1442,7 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { or ppos.isSplat(0) and apos.isSynthSplat() or - exists(int n | ppos.isSynthSplat(n) and apos.isSplat(n)) + ppos.isSynthSplat() and apos.isSynthSplat() or apos.isSynthSplat() and ppos.isSynthArgSplat() or diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 56558f62770..0e6d099e1c0 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -448,15 +448,14 @@ private module Cached { TSynthHashSplatParameterNode(DataFlowCallable c) { isParameterNode(_, c, any(ParameterPosition p | p.isKeyword(_))) } or - TSynthSplatParameterNode(DataFlowCallable c, int n) { + TSynthSplatParameterNode(DataFlowCallable c) { exists(c.asCallable()) and // exclude library callables - isParameterNode(_, c, any(ParameterPosition p | p.isPositional(_))) and + isParameterNode(_, c, any(ParameterPosition p | p.isPositional(_))) // `n` is the position of the splat argument that is matched to this node - exists(ArgumentPosition pos | pos.isSplat(n)) } or TSynthSplatArgParameterNode(DataFlowCallable c) { - exists(c.asCallable()) and // exclude library callables - isParameterNode(_, c, any(ParameterPosition p | p.isSplat(_))) + exists(c.asCallable()) // exclude library callables + // and isParameterNode(_, c, any(ParameterPosition p | p.isSplat(_))) } or TSynthSplatParameterElementNode(DataFlowCallable c, int n) { exists(c.asCallable()) and // exclude library callables @@ -478,15 +477,17 @@ private module Cached { or c.getAnArgument() instanceof CfgNodes::ExprNodes::PairCfgNode } or - TSynthSplatArgumentNode(CfgNodes::ExprNodes::CallCfgNode c) { - exists(Argument arg, ArgumentPosition pos | pos.isPositional(_) | arg.isArgumentOf(c, pos)) and - not exists(Argument arg, ArgumentPosition pos | pos.isSplat(_) | arg.isArgumentOf(c, pos)) + TSynthSplatArgumentNode(CfgNodes::ExprNodes::CallCfgNode c) or + TSynthSplatArgumentElementNode(CfgNodes::ExprNodes::CallCfgNode c, int n) { + n in [0 .. 10] and + exists(Argument arg, ArgumentPosition pos | pos.isSplat(_) and arg.isArgumentOf(c, pos)) } or TCaptureNode(VariableCapture::Flow::SynthesizedCaptureNode cn) class TSourceParameterNode = TNormalParameterNode or TBlockParameterNode or TSelfParameterNode or - TSynthHashSplatParameterNode or TSynthSplatParameterNode or TSynthSplatArgParameterNode; + TSynthHashSplatParameterNode or TSynthSplatParameterNode or TSynthSplatArgParameterNode or + TSynthSplatArgumentElementNode; cached Location getLocation(NodeImpl n) { result = n.getLocationImpl() } @@ -1037,7 +1038,7 @@ private module ParameterNodes { * * This node stores the index of the splat argument it is matched to, which allows us to shift * indices correctly when adding read steps. Without this, in the example above we would erroneously - * get a read step to `x` and index 0 and `y` and index 1 etc. + * get a read step to `x` at index 0 and `y` at index 1 etc. * * We don't yet correctly handle cases where a positional argument follows the splat argument, e.g. in * ```rb @@ -1046,10 +1047,8 @@ private module ParameterNodes { */ class SynthSplatParameterNode extends ParameterNodeImpl, TSynthSplatParameterNode { private DataFlowCallable callable; - // The position of the splat argument that is matched to this node - private int n; - SynthSplatParameterNode() { this = TSynthSplatParameterNode(callable, n) } + SynthSplatParameterNode() { this = TSynthSplatParameterNode(callable) } /** * Gets a parameter which will contain the value given by `c`. @@ -1064,10 +1063,10 @@ private module ParameterNodes { * then `getAParameter(element 0) = y`. */ ParameterNode getAParameter(ContentSet c) { - exists(int m | - isParameterNode(result, callable, (any(ParameterPosition p | p.isPositional(m)))) and + exists(int n | + isParameterNode(result, callable, (any(ParameterPosition p | p.isPositional(n)))) and ( - c = getPositionalContent(m - n) + c = getPositionalContent(n) or c.isSingleton(TUnknownElementContent()) ) @@ -1077,7 +1076,7 @@ private module ParameterNodes { final override Parameter getParameter() { none() } final override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { - c = callable and pos.isSynthSplat(n) + c = callable and pos.isSynthSplat() } final override CfgScope getCfgScope() { result = callable.asCallable() } @@ -1132,12 +1131,7 @@ private module ParameterNodes { int getStorePosition() { result = pos } - int getReadPosition() { - exists(int splatPos | - exists(this.getSplatParameterNode(splatPos)) and - result = pos + splatPos - ) - } + int getReadPosition() { result = pos } final override CfgScope getCfgScope() { result = callable.asCallable() } @@ -1322,6 +1316,23 @@ module ArgumentNodes { override string toStringImpl() { result = "*" } } + + class SynthSplatArgumentElementNode extends NodeImpl, TSynthSplatArgumentElementNode { + CfgNodes::ExprNodes::CallCfgNode c; + int n; + + SynthSplatArgumentElementNode() { this = TSynthSplatArgumentElementNode(c, n) } + + CfgNodes::ExprNodes::CallCfgNode getCall() { result = c } + + int getPosition() { result = n } + + override CfgScope getCfgScope() { result = c.getExpr().getCfgScope() } + + override Location getLocationImpl() { result = c.getLocation() } + + override string toStringImpl() { result = "*[" + n + "]" } + } } import ArgumentNodes @@ -1592,11 +1603,19 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { FlowSummaryImpl::Private::Steps::summaryStoreStep(node1.(FlowSummaryNode).getSummaryNode(), c, node2.(FlowSummaryNode).getSummaryNode()) or - node1 = - any(SynthSplatParameterElementNode elemNode | - node2 = elemNode.getSplatParameterNode(_) and - c = getPositionalContent(elemNode.getStorePosition()) - ) + exists(SynthSplatParameterElementNode elemNode, int splatPos | + node1 = elemNode and + node2 = elemNode.getSplatParameterNode(splatPos) and + c = getPositionalContent(elemNode.getStorePosition() - splatPos) + ) + or + // Store from TSynthSplatArgumentElementNode(n) + // into TSynthSplatArgumentNode[n] + exists(CfgNodes::ExprNodes::CallCfgNode call, int n | + node1 = TSynthSplatArgumentElementNode(call, n) and + node2 = TSynthSplatArgumentNode(call) and + c = getPositionalContent(n) + ) or storeStepCommon(node1, c, node2) or @@ -1611,6 +1630,38 @@ predicate readStepCommon(Node node1, ContentSet c, Node node2) { node2 = node1.(SynthHashSplatParameterNode).getAKeywordParameter(c) or node2 = node1.(SynthSplatParameterNode).getAParameter(c) + or + // TODO: convert into the above form + synthSplatArgumentElementReadStep(node1, c, node2) + or + // read from SynthSplatArgParameterNode[n] to nth positional parameter + exists(SynthSplatArgParameterNode argParamNode, NormalParameterNode posNode, int n | + argParamNode = node1 and + posNode = node2 and + posNode + .isParameterOf(argParamNode.getEnclosingCallable(), + any(ParameterPosition p | p.isPositional(n))) and + c = getPositionalContent(n) + ) +} + +// read from splat arg to synth splat arg element +predicate synthSplatArgumentElementReadStep( + Node node1, ContentSet c, SynthSplatArgumentElementNode node2 +) { + exists(int n, int splatPos, CfgNodes::ExprNodes::CallCfgNode call | + // Don't propagate taint on the `self` element of the splat + // since that won't (probably) won't reach the parameters of the callable. + // This saves a node per call. + n >= 0 and + node1.asExpr().(Argument).isArgumentOf(call, any(ArgumentPosition p | p.isSplat(splatPos))) and + node2.getCall() = call and + node2.getPosition() = n + splatPos and + ( + c = getPositionalContent(n) or + c.isSingleton(TUnknownElementContent()) + ) + ) } /** diff --git a/ruby/ql/test/library-tests/dataflow/params/params_flow.rb b/ruby/ql/test/library-tests/dataflow/params/params_flow.rb index b83fa45eb74..fe179d4e119 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/params/params_flow.rb @@ -48,7 +48,7 @@ positional(*args) def posargs(p1, *posargs) sink p1 # $ hasValueFlow=20 $ hasValueFlow=23 $ hasValueFlow=24 - sink (posargs[0]) # $ hasValueFlow=22 $ hasValueFlow=21 $ MISSING: hasValueFlow=25 + sink (posargs[0]) # $ hasValueFlow=22 $ hasValueFlow=21 $ hasValueFlow=25 sink (posargs[1]) end From 4d3aecfff63551ff0d68885c59eb2d203f096f16 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Sep 2023 09:50:37 +0200 Subject: [PATCH 390/788] Swift: rename `base_types` to `syntactic_base_types` in `TypeDecl` --- swift/ql/.generated.list | 24 +++++++++--------- swift/ql/.gitattributes | 10 ++++---- swift/ql/lib/codeql/swift/generated/Raw.qll | 7 ++++-- .../codeql/swift/generated/decl/TypeDecl.qll | 25 +++++++++++-------- swift/ql/lib/swift.dbscheme | 4 +-- .../AssociatedTypeDecl/AssociatedTypeDecl.ql | 6 ++--- ...=> AssociatedTypeDecl_getInheritedType.ql} | 2 +- .../generated/decl/ClassDecl/ClassDecl.ql | 6 ++--- ...eType.ql => ClassDecl_getInheritedType.ql} | 2 +- .../generated/decl/EnumDecl/EnumDecl.ql | 6 ++--- ...seType.ql => EnumDecl_getInheritedType.ql} | 2 +- .../generated/decl/ModuleDecl/ModuleDecl.ql | 6 ++--- ...Type.ql => ModuleDecl_getInheritedType.ql} | 2 +- .../decl/OpaqueTypeDecl/OpaqueTypeDecl.ql | 8 +++--- ....ql => OpaqueTypeDecl_getInheritedType.ql} | 2 +- swift/schema.py | 5 +++- 16 files changed, 64 insertions(+), 53 deletions(-) rename swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/{AssociatedTypeDecl_getBaseType.ql => AssociatedTypeDecl_getInheritedType.ql} (78%) rename swift/ql/test/extractor-tests/generated/decl/ClassDecl/{ClassDecl_getBaseType.ql => ClassDecl_getInheritedType.ql} (77%) rename swift/ql/test/extractor-tests/generated/decl/EnumDecl/{EnumDecl_getBaseType.ql => EnumDecl_getInheritedType.ql} (77%) rename swift/ql/test/extractor-tests/generated/decl/ModuleDecl/{ModuleDecl_getBaseType.ql => ModuleDecl_getInheritedType.ql} (78%) rename swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/{OpaqueTypeDecl_getBaseType.ql => OpaqueTypeDecl_getInheritedType.ql} (78%) diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index f4a8f20d820..fcde34a9b87 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -382,7 +382,7 @@ lib/codeql/swift/generated/OtherAvailabilitySpec.qll 0e26a203b26ff0581b7396b0c6d lib/codeql/swift/generated/ParentChild.qll f8647fba02b9acca7bf2870dfaee5709e2d3e3a12d27b012dd1e17f7df2e56e5 75d3501c2a59d931dd537321475687a73ff517e5caaae4ce2e0c2daec0d94df4 lib/codeql/swift/generated/PlatformVersionAvailabilitySpec.qll f82d9ca416fe8bd59b5531b65b1c74c9f317b3297a6101544a11339a1cffce38 7f5c6d3309e66c134107afe55bae76dfc9a72cb7cdd6d4c3706b6b34cee09fa0 lib/codeql/swift/generated/PureSynthConstructors.qll 173c0dd59396a1de26fe870e3bc2766c46de689da2a4d8807cb62023bbce1a98 173c0dd59396a1de26fe870e3bc2766c46de689da2a4d8807cb62023bbce1a98 -lib/codeql/swift/generated/Raw.qll 7904614a526f13c336402c38e8632c8ee32e0ee7a6b5a9c2ace22fab0a5927f8 273f958f5052ae025e7361dbfd6a7a505da5fa6b4f418e83aa2a1d5f8602c54d +lib/codeql/swift/generated/Raw.qll dc586049687382446884061d6856a4f773b9e1af5c2a791b80224e493680f530 47e8281a5df6844087a8746797b5cd0da2522bb855a3c65c3441f3e5fa90015f lib/codeql/swift/generated/Synth.qll 551fdf7e4b53f9ee1314d1bb42c2638cf82f45bfa1f40a635dfa7b6072e4418c 9ab178464700a19951fc5285acacda4913addee81515d8e072b3d7055935a814 lib/codeql/swift/generated/SynthConstructors.qll 2f801bd8b0db829b0253cd459ed3253c1fdfc55dce68ebc53e7fec138ef0aca4 2f801bd8b0db829b0253cd459ed3253c1fdfc55dce68ebc53e7fec138ef0aca4 lib/codeql/swift/generated/UnknownFile.qll 0fcf9beb8de79440bcdfff4bb6ab3dd139bd273e6c32754e05e6a632651e85f6 0fcf9beb8de79440bcdfff4bb6ab3dd139bd273e6c32754e05e6a632651e85f6 @@ -427,7 +427,7 @@ lib/codeql/swift/generated/decl/StructDecl.qll 9343b001dfeec83a6b41e88dc1ec75744 lib/codeql/swift/generated/decl/SubscriptDecl.qll c0bb8fd0d9d363c253251ea4b6cdceebd316708ce61f49e321318f7ce80ea153 dda76edc25ce4b3c31bcd7cc707143e22c3f887658e8071c646668f445b9f601 lib/codeql/swift/generated/decl/TopLevelCodeDecl.qll f9b4f8b413e5fd3c0d48910013fe2443143d2ee237084cf3e4eb668d5bc8f460 5c85641375f5b9e658c9467f5c4913e50d4228718aad950e94f55a28edbe28c7 lib/codeql/swift/generated/decl/TypeAliasDecl.qll b9c4baf4a2eb67d21535da5cbb9894945d66b8aecf8bd91cb8aa8c964188c82f a69db19c25da7232a9139400578cb7eda8b56eb55c7c45d38aa50cc0c063947f -lib/codeql/swift/generated/decl/TypeDecl.qll 21d075b1fb55ce2e89ad73e62edbe1ad3ca429ea5a1c6096ca7aca7eaeea9772 c099f32a24d1be26b7b6e7478b481f8086c74f67cc840a843466715afc069784 +lib/codeql/swift/generated/decl/TypeDecl.qll 893820fbf7b4ecf7f00607aa059ec30d9ec1e88e354598edb109c7be59fb5f64 e99a7b09c72ad07cafbf23b4acb6e9e44f04752626c03d1f19c9357f7274f6db lib/codeql/swift/generated/decl/ValueDecl.qll f34e3414f8700150ccd221aed26e58f64ed43d708a3ccb3c50eff5c12f083303 c2926bebba6bfb997f8a610f7bfd13114b21e92ba0243247543984d6ea71a33e lib/codeql/swift/generated/decl/VarDecl.qll d326cd9d4e892e6ad2f02847e476218d0f1f1ca012c1bfeca7d656af34c870b4 a2cac56e67fdc32d6f33eac180ca4831cd355343280e2d69cd5a8e17a77a89ce lib/codeql/swift/generated/expr/AbiSafeConversionExpr.qll f4c913df3f1c139a0533f9a3a2f2e07aee96ab723c957fc7153d68564e4fdd6d f4c913df3f1c139a0533f9a3a2f2e07aee96ab723c957fc7153d68564e4fdd6d @@ -673,14 +673,14 @@ test/extractor-tests/generated/decl/Accessor/Accessor_getMember.ql d0b6260b9d63e test/extractor-tests/generated/decl/Accessor/Accessor_getName.ql d01afe57e4161131b4fafb9fad59fc6d0f6220802ff178f433a913d903d9fc49 c9dbae26272c008d1b9ae5fc83d0958c657e9baed8c5e87cb4782ffa7684c382 test/extractor-tests/generated/decl/Accessor/Accessor_getParam.ql 818a352cf9ee3a9b0592f8b668e0ca540e3ee4351004d38323ca8d95e04630a1 ca8b5b7cdbd5c7c4eab30bdb7dcfb60e7c59deb5d37a8b021b36fb0f5efec79c test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.ql 260ce6a4fc2a650826a5c372fa1df63d28112623a1671189ea5f44c0d8d45bc2 6f45476da7cf37d450c07ab9651e12f928e104ba6d7f4bf173a265b9b72c89eb -test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql 74579a1907817168b5014ebcb69ab9a85687189c73145f1a7c2d4b334af4eb30 5d1f265f0e6c1d2392a9e37a42a8e184a16e473836c1a45b5dbc4daccc4aeabb -test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getBaseType.ql 39d26252c242eec5aaef23951bd76755a4d3cdceff7349b15067fefb2ece14b3 214fdbaa77d32ee6f21bcccf112d46c9d26006552081cc1f90cbb00a527a9d7f +test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql a3a2c651b0a25ccb2ef245e5ed271fb4884901673e6c83443a6d895a98afc351 f0429f289b38968ad943883c533eaa3e55958029f62fa31a9bc17b0324a54a6a +test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql 651ca27e51c5281b6892f0256e7c043c47648a4d8839e4505a5cf4fed97fc4f9 c1a46a7de16d4592eadeced97aca26b9566d1abedb17c010f37a23f798932e0b test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.ql e662e651d84bddcf49445d7bf5732d0dad30242d32b90f86e40de0010d48fd9c a6b7028468490a12c0a9f4c535cbd5e6c50a6c3519c9d2552d34f9411f904718 test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql 950e94dc10f8a8589a6b6ead39faaecfb5739c1e40f381e09c5e015d14507a25 38ab48ca3e647c60bee985732631c6e43116180c36d90132a25fe4f620087482 test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.ql fcb4dd4da4d4b13db46f20458513334fb54bcfcec3ddf8cc86798eefe49f31e3 545096ab96006aa9e9058b9cd0c62d2f102f2fe6813880cf9c4eb42374b7ad9c -test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql a76c9710142c368206ceb26df38e9d182833641d1c5f2df178b03eb196b812f2 6661f2af1e7cddcc44735d2bbc7ecc40af69587024b7d8db74ff205dd8db2e6d -test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getBaseType.ql 5f4fddbb3fb3d003f1485dc4c5a56f7d0d26dfc1d691540085654c4c66e70e69 0b5a5b757ca92e664ef136d26ac682aa5a0e071494d9f09d85f66cd13807e81d +test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql 57a7249119f08ad63f5015b9319a446e46117daf22c3b78266f1f4e2e66b4c9f 176618e7a58bcbeeffbdee2025f16f1defeeed48f9186c49d3496adcb6c3d97b test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.ql ca0b73a4f31eea47def7a1de017de36b5fdaec96ae98edb03ff00611bfcac572 f9badd62887a30113484496532b3ff9b67ff5047eb5a311aa2ec2e4d91321e0e +test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql 5ff7bc8bd0e076c71071093044870bb5db3611f6ddeb3e4528b109750819a20b f4c69715f834c7f8a5b5f23d2b5637b3ab9b54339079c992ae6ae3b9c8103908 test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.ql f73881b14bb4eaf83dacf60b9e46d440227f90566e2dfb8908a55567626ccdda f78a7261f7ccfe01ca55f7279bd5a1a302fc65ba36b13e779426d173c7465b84 test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql 66c20b9245c7f6aa6dabb81e00717a3441ea02176aed2b63e35aa7828d4282cc 4fd1cee669d972dc7295f5640985868e74f570e4ced8750793afb8fa889f438e test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.ql 22ed8e1f4c57fae2e39087837380f359d6e0c478ce6af272bcaddab2e55beb26 8b1248b8d1da45992ec8d926d0cd2a77eb43f667c41469227b6ea2b60196d94a @@ -694,9 +694,9 @@ test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyW test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.ql 40274aac8b67cb6a285bf91ccdc725ae1556b13ebcc6854a43e759b029733687 44e569aac32148bcce4cd5e8ebb33d7418580b7f5f03dfbd18635db9965b28d9 test/extractor-tests/generated/decl/Deinitializer/MISSING_SOURCE.txt 66846d526b0bc4328735c3c4dd9c390a9325da5b5dfd42ec07622f9c7108a7d7 66846d526b0bc4328735c3c4dd9c390a9325da5b5dfd42ec07622f9c7108a7d7 test/extractor-tests/generated/decl/EnumCaseDecl/MISSING_SOURCE.txt 66846d526b0bc4328735c3c4dd9c390a9325da5b5dfd42ec07622f9c7108a7d7 66846d526b0bc4328735c3c4dd9c390a9325da5b5dfd42ec07622f9c7108a7d7 -test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql e1906b751a4b72081a61b175e016f5182fdd0e27518f16017d17e14c65dd4268 8a1dd50e951ed2c25f18823ff8b9ab36dc2dc49703801dd48da443bc384bd9b4 -test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getBaseType.ql 4ace6176a57dd4c759356ddbefc28b25481c80bdeddfeb396d91b07db55af22a d0d1337ccbba45a648fe68fefc51006e14506d4fb7211fb2bde45f7761c4dbf1 +test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql b0befc31c0f68c850cc00ceb7e1c051d930d5cfffc03b5f871de62103425b6d1 13ead91987d0da290a1e3f3e3c9e59df6aaded94e8de2f486c00a9c76706dabb test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.ql 3a0927f87a21d69bfc309f5f7faedb3d0cc2956c071b16c38b2b4acd36f24ea9 aafed56a1744579f05b3817adef6a5fd011d1b5cb7da2db230a43b6f55a04649 +test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql abb969cd2200a8a7fd39b25ae6a7b6f75fdb6b359c1565e35b18dbe550cbc815 e7b69579675d3bccfe08f1bc1e0bbe5379fb7411597a9d6387f4b7afc8d7dba3 test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.ql 621870b7dbeaeefa93cbbfc102e97810b15d39b49db685019c9e3cbf2423ffef e110630f0ba8f588e7f8ebc56a1a31c2ca2f22f2cc763baa76854beb3b3a4ece test/extractor-tests/generated/decl/EnumElementDecl/MISSING_SOURCE.txt 66846d526b0bc4328735c3c4dd9c390a9325da5b5dfd42ec07622f9c7108a7d7 66846d526b0bc4328735c3c4dd9c390a9325da5b5dfd42ec07622f9c7108a7d7 test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql 71523b034d2abc6225f433f140841a35a466e82c04cbf07bdb3a9e384024fedb 919c66eeff004324b48249fd746c38891f6f8723f1281ad60126cf4b3c1febe0 @@ -713,10 +713,10 @@ test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.ql 0 test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getMember.ql 6d48d3a93bc96dba3bda71ec9d9d6282615c2228a58da6167c169fafaedb3e17 8560b23d0f52b845c81727ce09c0b2f9647965c83d7de165e8cd3d91be5bdd42 test/extractor-tests/generated/decl/InfixOperatorDecl/MISSING_SOURCE.txt 66846d526b0bc4328735c3c4dd9c390a9325da5b5dfd42ec07622f9c7108a7d7 66846d526b0bc4328735c3c4dd9c390a9325da5b5dfd42ec07622f9c7108a7d7 test/extractor-tests/generated/decl/Initializer/MISSING_SOURCE.txt 66846d526b0bc4328735c3c4dd9c390a9325da5b5dfd42ec07622f9c7108a7d7 66846d526b0bc4328735c3c4dd9c390a9325da5b5dfd42ec07622f9c7108a7d7 -test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql f9216e83077ebc0cb5a5bf2d7368af86167a1bfd378f9cd5592fd484a1bbc5dd 1c2de61cb064474340db10de4399c49f15eb0a5669e6dc9587d8b4f656b0134f +test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql d096e82574438b1e6d646b8762217dc74f9f9c40b01d642ef6a0286a55ecad9d 3eae6049885efcd3ffd6117af31cd12d792492b1591a88444a8e4a7fa31ac187 test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.ql 321619519c5cffefda78f11f2c85a199af76fccbfcc51126c7a558ba12fdfd80 30e48eb820ba9d7f3ec30bf4536c0f84280c5f2ca8c63427f6b77d74a092e68b test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.ql 65fae5b1a7db3a11fd837ed78c663e8907306c36695ae73e4e29559755276fbe 3ddef1a7af7a636e66674fadb3e727ad18655a9ecb4c73fd3d6aca202f1191fb -test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.ql 54a4bd2cfa666271ae9092285bb7217b082c88483d614066cfb599fc8ab84305 8b24ab8e93efe3922cb192eb5de5f517763058782e83e8732153421adddd68e1 +test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql 2de3deb0a2a19d534ef158a1a4813eaf0e427ec48138ba23aefc9ec5ef577172 c510faa43f4cfaeca1032defaec976d220db976d6deb0b083924badfeabc4c1c test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.ql a4663d47cf0a16a07167b9a64d56f8ba8e504a78142c7e216d1df69879df9130 3f6a4080e33bddd1e34fa25519d855811c256182055db4989be8150fcddd541b test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql a56ea8bf7080ba76cee7a1fca2b3e63f09d644663c15e405c8a62ee9506335d3 3b18f5200b09ccbe3087c57d30a50169fc84241a76c406e2b090cf8d214e5596 test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.ql 91688f59415c479a7e39f61eeccbac09a4fe3fcfdd94f198d7bdbef39ccc892c 760497101fd872d513641b810cae91ff9e436f3c20f4c31b72d36c2d49492ef9 @@ -726,9 +726,9 @@ test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getMember.ql f44 test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.ql c7cf5b81a8db16ef44c84eb861d4a7f41ce2b9ad733f8853b66d6dc64ed315a3 8000fad2b9b56077e8a262ec2899d765026bd07836622b0cb48327e6d6e9c0a0 test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.ql ae3ba8026861c4f79e1810457331e838790cbf11537d1b1e2ba38bf3fea5a7cd 10e7c69956784f01e3455d29cd934358347afd4317cf08e12e0385559eb4fd1f test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.ql d7d05f91e9ef0c083780b9215e761efc753dbef98789bd7d21c5e40fce322826 ec8e6262e15730532e12dcb6faaf24b10bc5a2c7b0e1ec97fe1d5ed047b1994d -test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql 16ccca5a90cc3133ab085ccb843416abc103f2fcf3423a84fbd7f5c15a5c7f17 242d7ea07842ee3fb0f9905b5cbc0ea744f1116c4591c5f133025260991bfdeb -test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getBaseType.ql d030fd55ea5a5443c03e8ba1a024c03e3c68c96c948c850131f59fbac6409402 46816c1a75a4cf11db95884733382e46d5573b6c1116d5de0bfe5ae91fed4c3d +test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql 1e5dc0bedae6ad10d785c44d2137ef976ac97a59e3282ebf2cdc1bd0c7d59737 e9eb956d10fa0f6c73222100b3a4aef9560fe179506ff839612d297f390236a1 test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.ql c147420a91c157ee37a900dd7739bdb386fba5eeaadd84e609d2642d3fdbf2e0 cf1c981b6cb7b84944e9430cfe361905dcc396d4356d7f20a0ba993352bd5b02 +test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql 60417e02e2d2b7fceaec90910e8a2fbf2ee1b4bb68db79c8038ce5927d80a861 66176cfd7f6a2d230b8da444f3cf5ca95a8fa7ce77f9614cacb308f30cbff6ef test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.ql aa601966925c03f066624f4297b01ccc21cfeaba8e803e29c42cc9ef954258b6 4559e1d5257dcfb6cf414538f57fc015e483c06381048066c28b31324a2db09c test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.ql 2b4264a68817f53ddd73e4fd80e9f7c3a5fcfa4d0692135e2d3b10c8a8379d98 c2efac460b655e726d898b2b80cbfce24820a922e26935804ddd21ae9c474085 test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql 44e04f4d8753f19be04200f6a6fe5f5e8ed77c1a7c4026ae0ff640878ec19650 2a4d994754aa0560d12c15ff39bbc4b7d83116e7b4a9ea46f432a6a267a661de diff --git a/swift/ql/.gitattributes b/swift/ql/.gitattributes index 0826b0e6966..102e27a5f31 100644 --- a/swift/ql/.gitattributes +++ b/swift/ql/.gitattributes @@ -676,13 +676,13 @@ /test/extractor-tests/generated/decl/Accessor/Accessor_getParam.ql linguist-generated /test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.ql linguist-generated /test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql linguist-generated -/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getBaseType.ql linguist-generated +/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql linguist-generated /test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql linguist-generated /test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql linguist-generated -/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getBaseType.ql linguist-generated /test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.ql linguist-generated +/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql linguist-generated /test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql linguist-generated /test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.ql linguist-generated @@ -697,8 +697,8 @@ /test/extractor-tests/generated/decl/Deinitializer/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/EnumCaseDecl/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql linguist-generated -/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getBaseType.ql linguist-generated /test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.ql linguist-generated +/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql linguist-generated /test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/EnumElementDecl/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql linguist-generated @@ -718,7 +718,7 @@ /test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql linguist-generated /test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.ql linguist-generated /test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.ql linguist-generated -/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.ql linguist-generated +/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql linguist-generated /test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql linguist-generated /test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.ql linguist-generated @@ -729,8 +729,8 @@ /test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.ql linguist-generated /test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.ql linguist-generated /test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql linguist-generated -/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getBaseType.ql linguist-generated /test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.ql linguist-generated +/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql linguist-generated /test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.ql linguist-generated /test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql linguist-generated diff --git a/swift/ql/lib/codeql/swift/generated/Raw.qll b/swift/ql/lib/codeql/swift/generated/Raw.qll index 122cb0291da..508d81b0107 100644 --- a/swift/ql/lib/codeql/swift/generated/Raw.qll +++ b/swift/ql/lib/codeql/swift/generated/Raw.qll @@ -574,9 +574,12 @@ module Raw { string getName() { type_decls(this, result) } /** - * Gets the `index`th base type of this type declaration (0-based). + * Gets the `index`th inherited type of this type declaration (0-based). + * + * This only returns the types effectively appearing in the declaration. In particular it + * will not resolve `TypeAliasDecl`s or consider base types added by extensions. */ - Type getBaseType(int index) { type_decl_base_types(this, index, result) } + Type getInheritedType(int index) { type_decl_inherited_types(this, index, result) } } /** diff --git a/swift/ql/lib/codeql/swift/generated/decl/TypeDecl.qll b/swift/ql/lib/codeql/swift/generated/decl/TypeDecl.qll index bae701326d2..fa51bff12b3 100644 --- a/swift/ql/lib/codeql/swift/generated/decl/TypeDecl.qll +++ b/swift/ql/lib/codeql/swift/generated/decl/TypeDecl.qll @@ -12,36 +12,41 @@ module Generated { string getName() { result = Synth::convertTypeDeclToRaw(this).(Raw::TypeDecl).getName() } /** - * Gets the `index`th base type of this type declaration (0-based). + * Gets the `index`th inherited type of this type declaration (0-based). * * This includes nodes from the "hidden" AST. It can be overridden in subclasses to change the * behavior of both the `Immediate` and non-`Immediate` versions. */ - Type getImmediateBaseType(int index) { + Type getImmediateInheritedType(int index) { result = Synth::convertTypeFromRaw(Synth::convertTypeDeclToRaw(this) .(Raw::TypeDecl) - .getBaseType(index)) + .getInheritedType(index)) } /** - * Gets the `index`th base type of this type declaration (0-based). + * Gets the `index`th inherited type of this type declaration (0-based). + * + * This only returns the types effectively appearing in the declaration. In particular it + * will not resolve `TypeAliasDecl`s or consider base types added by extensions. */ - final Type getBaseType(int index) { + final Type getInheritedType(int index) { exists(Type immediate | - immediate = this.getImmediateBaseType(index) and + immediate = this.getImmediateInheritedType(index) and result = immediate.resolve() ) } /** - * Gets any of the base types of this type declaration. + * Gets any of the inherited types of this type declaration. */ - final Type getABaseType() { result = this.getBaseType(_) } + final Type getAnInheritedType() { result = this.getInheritedType(_) } /** - * Gets the number of base types of this type declaration. + * Gets the number of inherited types of this type declaration. */ - final int getNumberOfBaseTypes() { result = count(int i | exists(this.getBaseType(i))) } + final int getNumberOfInheritedTypes() { + result = count(int i | exists(this.getInheritedType(i))) + } } } diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 147e087e57e..f5a22f5168a 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -464,10 +464,10 @@ type_decls( //dir=decl ); #keyset[id, index] -type_decl_base_types( //dir=decl +type_decl_inherited_types( //dir=decl int id: @type_decl ref, int index: int ref, - int base_type: @type_or_none ref + int inherited_type: @type_or_none ref ); @abstract_type_param_decl = diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql index 65a0cf42d42..4538a8100ba 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql @@ -4,7 +4,7 @@ import TestUtils from AssociatedTypeDecl x, ModuleDecl getModule, int getNumberOfMembers, Type getInterfaceType, - string getName, int getNumberOfBaseTypes + string getName, int getNumberOfInheritedTypes where toBeTested(x) and not x.isUnknown() and @@ -12,6 +12,6 @@ where getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType = x.getInterfaceType() and getName = x.getName() and - getNumberOfBaseTypes = x.getNumberOfBaseTypes() + getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", - getInterfaceType, "getName:", getName, "getNumberOfBaseTypes:", getNumberOfBaseTypes + getInterfaceType, "getName:", getName, "getNumberOfInheritedTypes:", getNumberOfInheritedTypes diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getBaseType.ql b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql similarity index 78% rename from swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getBaseType.ql rename to swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql index 23bd9d6d88f..81f5c36778b 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getBaseType.ql +++ b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql @@ -4,4 +4,4 @@ import TestUtils from AssociatedTypeDecl x, int index where toBeTested(x) and not x.isUnknown() -select x, index, x.getBaseType(index) +select x, index, x.getInheritedType(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql index ab598e4aa65..08f0892e290 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql @@ -4,7 +4,7 @@ import TestUtils from ClassDecl x, int getNumberOfGenericTypeParams, ModuleDecl getModule, int getNumberOfMembers, - Type getInterfaceType, string getName, int getNumberOfBaseTypes, Type getType + Type getInterfaceType, string getName, int getNumberOfInheritedTypes, Type getType where toBeTested(x) and not x.isUnknown() and @@ -13,8 +13,8 @@ where getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType = x.getInterfaceType() and getName = x.getName() and - getNumberOfBaseTypes = x.getNumberOfBaseTypes() and + getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and getType = x.getType() select x, "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", getInterfaceType, "getName:", - getName, "getNumberOfBaseTypes:", getNumberOfBaseTypes, "getType:", getType + getName, "getNumberOfInheritedTypes:", getNumberOfInheritedTypes, "getType:", getType diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getBaseType.ql b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql similarity index 77% rename from swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getBaseType.ql rename to swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql index f380b590a08..4385cfb54ab 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getBaseType.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql @@ -4,4 +4,4 @@ import TestUtils from ClassDecl x, int index where toBeTested(x) and not x.isUnknown() -select x, index, x.getBaseType(index) +select x, index, x.getInheritedType(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql index 23db36f60b3..3b2187a3237 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql @@ -4,7 +4,7 @@ import TestUtils from EnumDecl x, int getNumberOfGenericTypeParams, ModuleDecl getModule, int getNumberOfMembers, - Type getInterfaceType, string getName, int getNumberOfBaseTypes, Type getType + Type getInterfaceType, string getName, int getNumberOfInheritedTypes, Type getType where toBeTested(x) and not x.isUnknown() and @@ -13,8 +13,8 @@ where getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType = x.getInterfaceType() and getName = x.getName() and - getNumberOfBaseTypes = x.getNumberOfBaseTypes() and + getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and getType = x.getType() select x, "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", getInterfaceType, "getName:", - getName, "getNumberOfBaseTypes:", getNumberOfBaseTypes, "getType:", getType + getName, "getNumberOfInheritedTypes:", getNumberOfInheritedTypes, "getType:", getType diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getBaseType.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql similarity index 77% rename from swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getBaseType.ql rename to swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql index dbe1ee039c6..7f96641d2f8 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getBaseType.ql +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql @@ -4,4 +4,4 @@ import TestUtils from EnumDecl x, int index where toBeTested(x) and not x.isUnknown() -select x, index, x.getBaseType(index) +select x, index, x.getInheritedType(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql index 23dad2539f7..3f1347e1344 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql @@ -4,7 +4,7 @@ import TestUtils from ModuleDecl x, ModuleDecl getModule, int getNumberOfMembers, Type getInterfaceType, string getName, - int getNumberOfBaseTypes, string isBuiltinModule, string isSystemModule, + int getNumberOfInheritedTypes, string isBuiltinModule, string isSystemModule, int getNumberOfImportedModules, int getNumberOfExportedModules where toBeTested(x) and @@ -13,13 +13,13 @@ where getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType = x.getInterfaceType() and getName = x.getName() and - getNumberOfBaseTypes = x.getNumberOfBaseTypes() and + getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and (if x.isBuiltinModule() then isBuiltinModule = "yes" else isBuiltinModule = "no") and (if x.isSystemModule() then isSystemModule = "yes" else isSystemModule = "no") and getNumberOfImportedModules = x.getNumberOfImportedModules() and getNumberOfExportedModules = x.getNumberOfExportedModules() select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", - getInterfaceType, "getName:", getName, "getNumberOfBaseTypes:", getNumberOfBaseTypes, + getInterfaceType, "getName:", getName, "getNumberOfInheritedTypes:", getNumberOfInheritedTypes, "isBuiltinModule:", isBuiltinModule, "isSystemModule:", isSystemModule, "getNumberOfImportedModules:", getNumberOfImportedModules, "getNumberOfExportedModules:", getNumberOfExportedModules diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.ql b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql similarity index 78% rename from swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.ql rename to swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql index 0c0cec75d86..4b5c5d49849 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql @@ -4,4 +4,4 @@ import TestUtils from ModuleDecl x, int index where toBeTested(x) and not x.isUnknown() -select x, index, x.getBaseType(index) +select x, index, x.getInheritedType(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql index c670f77da2b..84350f85394 100644 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql @@ -4,8 +4,8 @@ import TestUtils from OpaqueTypeDecl x, int getNumberOfGenericTypeParams, ModuleDecl getModule, int getNumberOfMembers, - Type getInterfaceType, string getName, int getNumberOfBaseTypes, ValueDecl getNamingDeclaration, - int getNumberOfOpaqueGenericParams + Type getInterfaceType, string getName, int getNumberOfInheritedTypes, + ValueDecl getNamingDeclaration, int getNumberOfOpaqueGenericParams where toBeTested(x) and not x.isUnknown() and @@ -14,10 +14,10 @@ where getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType = x.getInterfaceType() and getName = x.getName() and - getNumberOfBaseTypes = x.getNumberOfBaseTypes() and + getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and getNamingDeclaration = x.getNamingDeclaration() and getNumberOfOpaqueGenericParams = x.getNumberOfOpaqueGenericParams() select x, "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", getInterfaceType, "getName:", - getName, "getNumberOfBaseTypes:", getNumberOfBaseTypes, "getNamingDeclaration:", + getName, "getNumberOfInheritedTypes:", getNumberOfInheritedTypes, "getNamingDeclaration:", getNamingDeclaration, "getNumberOfOpaqueGenericParams:", getNumberOfOpaqueGenericParams diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getBaseType.ql b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql similarity index 78% rename from swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getBaseType.ql rename to swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql index 55877a60147..1b016585c41 100644 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getBaseType.ql +++ b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql @@ -4,4 +4,4 @@ import TestUtils from OpaqueTypeDecl x, int index where toBeTested(x) and not x.isUnknown() -select x, index, x.getBaseType(index) +select x, index, x.getInheritedType(index) diff --git a/swift/schema.py b/swift/schema.py index 246cf5d0226..5cc1320fd9c 100644 --- a/swift/schema.py +++ b/swift/schema.py @@ -261,7 +261,10 @@ class PrefixOperatorDecl(OperatorDecl): class TypeDecl(ValueDecl): name: string - base_types: list[Type] + inherited_types: list[Type] | desc(""" + This only returns the types effectively appearing in the declaration. In particular it + will not resolve `TypeAliasDecl`s or consider base types added by extensions. + """) class AbstractTypeParamDecl(TypeDecl): pass From cf1667c3259e30534a2a8c831e709d11325370f4 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Sep 2023 10:05:17 +0200 Subject: [PATCH 391/788] Swift: update extractor after schema changes --- swift/extractor/translators/DeclTranslator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/extractor/translators/DeclTranslator.cpp b/swift/extractor/translators/DeclTranslator.cpp index 2abfa820534..d7ec3c6cd1b 100644 --- a/swift/extractor/translators/DeclTranslator.cpp +++ b/swift/extractor/translators/DeclTranslator.cpp @@ -271,7 +271,7 @@ void DeclTranslator::fillTypeDecl(const swift::TypeDecl& decl, codeql::TypeDecl& entry.name = decl.getNameStr().str(); for (auto& typeLoc : decl.getInherited()) { if (auto type = typeLoc.getType()) { - entry.base_types.push_back(dispatcher.fetchLabel(type)); + entry.inherited_types.push_back(dispatcher.fetchLabel(type)); } } fillValueDecl(decl, entry); From 8d02bcc3cb6c111c480f2f3a8265ee69ddeb87e6 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Sep 2023 10:18:24 +0200 Subject: [PATCH 392/788] Swift: change non-generated `TypeDecl.ql` --- .../codeql/swift/elements/decl/TypeDecl.qll | 36 ++++++++++++++++--- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll b/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll index d66418758fb..e89bbb921b4 100644 --- a/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll +++ b/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll @@ -20,26 +20,52 @@ class TypeDecl extends Generated::TypeDecl { override string toString() { result = this.getName() } /** - * Gets the declaration of the `index`th base type of this type declaration (0-based). + * Gets the `index`th base type of this type declaration (0-based). + * + * This is the same as `getImmediateInheritedType`. + * DEPRECATED: either use `getImmediateInheritedType` or unindexed `getABaseType`. */ - TypeDecl getBaseTypeDecl(int i) { result = this.getBaseType(i).(AnyGenericType).getDeclaration() } + deprecated Type getImmediateBaseType(int index) { result = this.getImmediateInheritedType(index) } + + /** + * Gets the `index`th base type of this type declaration (0-based). + * This is the same as `getInheritedType`. + * DEPRECATED: use `getInheritedType` or unindexed `getABaseType`. + */ + deprecated Type getBaseType(int index) { result = this.getInheritedType(index) } + + /** + * Gets any of the base types of this type declaration. + */ + Type getABaseType() { + // TODO generalize this to resolve `TypeAliasDecl`s and consider bases added by extensions + result = this.getAnInheritedType() + } + + /** + * Gets the declaration of the `index`th base type of this type declaration (0-based). + * DEPRECATED: The index is not very meaningful here. Use `getABaseTypeDecl`. + */ + deprecated TypeDecl getBaseTypeDecl(int i) { + result = this.getBaseType(i).(AnyGenericType).getDeclaration() + } /** * Gets the declaration of any of the base types of this type declaration. */ - TypeDecl getABaseTypeDecl() { result = this.getBaseTypeDecl(_) } + TypeDecl getABaseTypeDecl() { result = this.getABaseType().(AnyGenericType).getDeclaration() } /** * Gets a declaration that has this type as its `index`th base type. * - * DEPRECATED: The index is not very meaningful here. Use `getADerivedTypeDecl` or `getBaseTypeDecl`. + * DEPRECATED: The index is not very meaningful here. Use `getADerivedTypeDecl` or `getABaseTypeDecl`. */ deprecated TypeDecl getDerivedTypeDecl(int i) { result.getBaseTypeDecl(i) = this } /** * Gets the declaration of any type derived from this type declaration. */ - TypeDecl getADerivedTypeDecl() { result.getBaseTypeDecl(_) = this } + TypeDecl getADerivedTypeDecl() { result.getABaseTypeDecl() = this } /** * Gets the full name of this `TypeDecl`. For example in: From 270c6407f084163bd4a27d7f5a76b0e37ee3917f Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Sep 2023 10:18:41 +0200 Subject: [PATCH 393/788] Swift: accept test changes --- .../decl/AssociatedTypeDecl/AssociatedTypeDecl.expected | 4 ++-- ...ected => AssociatedTypeDecl_getInheritedType.expected} | 0 .../generated/decl/ClassDecl/ClassDecl.expected | 6 +++--- ...eType.expected => ClassDecl_getInheritedType.expected} | 0 .../generated/decl/EnumDecl/EnumDecl.expected | 8 ++++---- ...seType.expected => EnumDecl_getInheritedType.expected} | 0 .../generated/decl/ModuleDecl/ModuleDecl.expected | 6 +++--- ...Type.expected => ModuleDecl_getInheritedType.expected} | 0 .../generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected | 8 ++++---- ....expected => OpaqueTypeDecl_getInheritedType.expected} | 0 10 files changed, 16 insertions(+), 16 deletions(-) rename swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/{AssociatedTypeDecl_getBaseType.expected => AssociatedTypeDecl_getInheritedType.expected} (100%) rename swift/ql/test/extractor-tests/generated/decl/ClassDecl/{ClassDecl_getBaseType.expected => ClassDecl_getInheritedType.expected} (100%) rename swift/ql/test/extractor-tests/generated/decl/EnumDecl/{EnumDecl_getBaseType.expected => EnumDecl_getInheritedType.expected} (100%) rename swift/ql/test/extractor-tests/generated/decl/ModuleDecl/{ModuleDecl_getBaseType.expected => ModuleDecl_getInheritedType.expected} (100%) rename swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/{OpaqueTypeDecl_getBaseType.expected => OpaqueTypeDecl_getInheritedType.expected} (100%) diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected index 79a4b545a1c..ee463332f1d 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected @@ -1,2 +1,2 @@ -| associated_type.swift:2:5:2:20 | Bar | getModule: | file://:0:0:0:0 | associated_type | getNumberOfMembers: | 0 | getInterfaceType: | Self.Bar.Type | getName: | Bar | getNumberOfBaseTypes: | 0 | -| associated_type.swift:3:5:3:25 | Baz | getModule: | file://:0:0:0:0 | associated_type | getNumberOfMembers: | 0 | getInterfaceType: | Self.Baz.Type | getName: | Baz | getNumberOfBaseTypes: | 1 | +| associated_type.swift:2:5:2:20 | Bar | getModule: | file://:0:0:0:0 | associated_type | getNumberOfMembers: | 0 | getInterfaceType: | Self.Bar.Type | getName: | Bar | getNumberOfInheritedTypes: | 0 | +| associated_type.swift:3:5:3:25 | Baz | getModule: | file://:0:0:0:0 | associated_type | getNumberOfMembers: | 0 | getInterfaceType: | Self.Baz.Type | getName: | Baz | getNumberOfInheritedTypes: | 1 | diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getBaseType.expected b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.expected similarity index 100% rename from swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getBaseType.expected rename to swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.expected diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected index 43cbe67c9bd..c09b98045cf 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected @@ -1,3 +1,3 @@ -| class.swift:1:1:7:1 | Foo | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 4 | getInterfaceType: | Foo.Type | getName: | Foo | getNumberOfBaseTypes: | 0 | getType: | Foo | -| class.swift:11:1:14:1 | Generic | getNumberOfGenericTypeParams: | 2 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 6 | getInterfaceType: | Generic.Type | getName: | Generic | getNumberOfBaseTypes: | 0 | getType: | Generic | -| class.swift:16:1:17:1 | Baz | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 2 | getInterfaceType: | Baz.Type | getName: | Baz | getNumberOfBaseTypes: | 2 | getType: | Baz | +| class.swift:1:1:7:1 | Foo | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 4 | getInterfaceType: | Foo.Type | getName: | Foo | getNumberOfInheritedTypes: | 0 | getType: | Foo | +| class.swift:11:1:14:1 | Generic | getNumberOfGenericTypeParams: | 2 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 6 | getInterfaceType: | Generic.Type | getName: | Generic | getNumberOfInheritedTypes: | 0 | getType: | Generic | +| class.swift:16:1:17:1 | Baz | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 2 | getInterfaceType: | Baz.Type | getName: | Baz | getNumberOfInheritedTypes: | 2 | getType: | Baz | diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getBaseType.expected b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.expected similarity index 100% rename from swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getBaseType.expected rename to swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.expected diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected index a9012ac5945..8f511981738 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected @@ -1,4 +1,4 @@ -| enums.swift:1:1:4:1 | EnumValues | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 11 | getInterfaceType: | EnumValues.Type | getName: | EnumValues | getNumberOfBaseTypes: | 0 | getType: | EnumValues | -| enums.swift:7:1:10:1 | EnumValuesWithBase | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 11 | getInterfaceType: | EnumValuesWithBase.Type | getName: | EnumValuesWithBase | getNumberOfBaseTypes: | 1 | getType: | EnumValuesWithBase | -| enums.swift:12:1:16:1 | EnumWithParams | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 6 | getInterfaceType: | EnumWithParams.Type | getName: | EnumWithParams | getNumberOfBaseTypes: | 0 | getType: | EnumWithParams | -| enums.swift:18:1:21:1 | GenericEnum | getNumberOfGenericTypeParams: | 1 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 4 | getInterfaceType: | GenericEnum.Type | getName: | GenericEnum | getNumberOfBaseTypes: | 0 | getType: | GenericEnum | +| enums.swift:1:1:4:1 | EnumValues | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 11 | getInterfaceType: | EnumValues.Type | getName: | EnumValues | getNumberOfInheritedTypes: | 0 | getType: | EnumValues | +| enums.swift:7:1:10:1 | EnumValuesWithBase | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 11 | getInterfaceType: | EnumValuesWithBase.Type | getName: | EnumValuesWithBase | getNumberOfInheritedTypes: | 1 | getType: | EnumValuesWithBase | +| enums.swift:12:1:16:1 | EnumWithParams | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 6 | getInterfaceType: | EnumWithParams.Type | getName: | EnumWithParams | getNumberOfInheritedTypes: | 0 | getType: | EnumWithParams | +| enums.swift:18:1:21:1 | GenericEnum | getNumberOfGenericTypeParams: | 1 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 4 | getInterfaceType: | GenericEnum.Type | getName: | GenericEnum | getNumberOfInheritedTypes: | 0 | getType: | GenericEnum | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getBaseType.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.expected similarity index 100% rename from swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getBaseType.expected rename to swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.expected diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected index e28d4ef33b5..dbbc1c70157 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected @@ -1,3 +1,3 @@ -| file://:0:0:0:0 | Foo | getModule: | file://:0:0:0:0 | Foo | getNumberOfMembers: | 0 | getInterfaceType: | module | getName: | Foo | getNumberOfBaseTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 4 | getNumberOfExportedModules: | 1 | -| file://:0:0:0:0 | __ObjC | getModule: | file://:0:0:0:0 | __ObjC | getNumberOfMembers: | 0 | getInterfaceType: | module<__ObjC> | getName: | __ObjC | getNumberOfBaseTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 1 | getNumberOfExportedModules: | 0 | -| file://:0:0:0:0 | default_module_name | getModule: | file://:0:0:0:0 | default_module_name | getNumberOfMembers: | 0 | getInterfaceType: | module | getName: | default_module_name | getNumberOfBaseTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 4 | getNumberOfExportedModules: | 0 | +| file://:0:0:0:0 | Foo | getModule: | file://:0:0:0:0 | Foo | getNumberOfMembers: | 0 | getInterfaceType: | module | getName: | Foo | getNumberOfInheritedTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 4 | getNumberOfExportedModules: | 1 | +| file://:0:0:0:0 | __ObjC | getModule: | file://:0:0:0:0 | __ObjC | getNumberOfMembers: | 0 | getInterfaceType: | module<__ObjC> | getName: | __ObjC | getNumberOfInheritedTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 1 | getNumberOfExportedModules: | 0 | +| file://:0:0:0:0 | default_module_name | getModule: | file://:0:0:0:0 | default_module_name | getNumberOfMembers: | 0 | getInterfaceType: | module | getName: | default_module_name | getNumberOfInheritedTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 4 | getNumberOfExportedModules: | 0 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.expected b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.expected similarity index 100% rename from swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.expected rename to swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.expected diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected index 7f14995c689..c93a86b2164 100644 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected @@ -1,4 +1,4 @@ -| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some Base).Type | getName: | _ | getNumberOfBaseTypes: | 0 | getNamingDeclaration: | opaque_types.swift:9:1:9:51 | baz(_:) | getNumberOfOpaqueGenericParams: | 1 | -| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some P).Type | getName: | _ | getNumberOfBaseTypes: | 0 | getNamingDeclaration: | opaque_types.swift:5:1:5:45 | bar(_:) | getNumberOfOpaqueGenericParams: | 1 | -| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some P).Type | getName: | _ | getNumberOfBaseTypes: | 0 | getNamingDeclaration: | opaque_types.swift:13:1:13:59 | bazz() | getNumberOfOpaqueGenericParams: | 1 | -| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some SignedInteger).Type | getName: | _ | getNumberOfBaseTypes: | 0 | getNamingDeclaration: | opaque_types.swift:1:1:1:45 | foo() | getNumberOfOpaqueGenericParams: | 1 | +| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some Base).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:9:1:9:51 | baz(_:) | getNumberOfOpaqueGenericParams: | 1 | +| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some P).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:5:1:5:45 | bar(_:) | getNumberOfOpaqueGenericParams: | 1 | +| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some P).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:13:1:13:59 | bazz() | getNumberOfOpaqueGenericParams: | 1 | +| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some SignedInteger).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:1:1:1:45 | foo() | getNumberOfOpaqueGenericParams: | 1 | diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getBaseType.expected b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.expected similarity index 100% rename from swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getBaseType.expected rename to swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.expected From fc51f4a80ee059a8d14a640b0e7b902ea778d208 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Sep 2023 10:22:59 +0200 Subject: [PATCH 394/788] Swift: add update/downgrade scripts --- .../old.dbscheme | 2618 +++++++++++++++++ .../swift.dbscheme | 2618 +++++++++++++++++ .../upgrade.properties | 4 + .../old.dbscheme | 2618 +++++++++++++++++ .../swift.dbscheme | 2618 +++++++++++++++++ .../upgrade.properties | 4 + 6 files changed, 10480 insertions(+) create mode 100644 swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/old.dbscheme create mode 100644 swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/swift.dbscheme create mode 100644 swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/upgrade.properties create mode 100644 swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/old.dbscheme create mode 100644 swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/swift.dbscheme create mode 100644 swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/upgrade.properties diff --git a/swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/old.dbscheme b/swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/old.dbscheme new file mode 100644 index 00000000000..f5a22f5168a --- /dev/null +++ b/swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/old.dbscheme @@ -0,0 +1,2618 @@ +// generated by codegen/codegen.py + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @callable +| @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +@availability_spec = + @other_availability_spec +| @platform_version_availability_spec +; + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +other_availability_specs( + unique int id: @other_availability_spec +); + +platform_version_availability_specs( + unique int id: @platform_version_availability_spec, + string platform: string ref, + string version: string ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unresolved_type_conversion_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + string name: string ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int sequence: @expr_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @l_value_type +| @module_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @opaque_type_archetype_type +| @opened_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +opened_archetype_types( //dir=type + unique int id: @opened_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/swift.dbscheme b/swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/swift.dbscheme new file mode 100644 index 00000000000..147e087e57e --- /dev/null +++ b/swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/swift.dbscheme @@ -0,0 +1,2618 @@ +// generated by codegen/codegen.py + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @callable +| @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +@availability_spec = + @other_availability_spec +| @platform_version_availability_spec +; + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +other_availability_specs( + unique int id: @other_availability_spec +); + +platform_version_availability_specs( + unique int id: @platform_version_availability_spec, + string platform: string ref, + string version: string ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_base_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int base_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unresolved_type_conversion_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + string name: string ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int sequence: @expr_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @l_value_type +| @module_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @opaque_type_archetype_type +| @opened_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +opened_archetype_types( //dir=type + unique int id: @opened_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/upgrade.properties b/swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/upgrade.properties new file mode 100644 index 00000000000..e7643ff85ba --- /dev/null +++ b/swift/downgrades/f5a22f5168adfd7f308b5941c11852c925edd638/upgrade.properties @@ -0,0 +1,4 @@ +description: Undo rename `base_types` to `inherited_types` in `@type_decl +compatibility: full +type_decl_base_types.rel: reorder type_decl_inherited_types(int id, int index, int type) id index type +type_decl_inherited_types.rel: delete diff --git a/swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/old.dbscheme b/swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/old.dbscheme new file mode 100644 index 00000000000..147e087e57e --- /dev/null +++ b/swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/old.dbscheme @@ -0,0 +1,2618 @@ +// generated by codegen/codegen.py + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @callable +| @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +@availability_spec = + @other_availability_spec +| @platform_version_availability_spec +; + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +other_availability_specs( + unique int id: @other_availability_spec +); + +platform_version_availability_specs( + unique int id: @platform_version_availability_spec, + string platform: string ref, + string version: string ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_base_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int base_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unresolved_type_conversion_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + string name: string ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int sequence: @expr_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @l_value_type +| @module_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @opaque_type_archetype_type +| @opened_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +opened_archetype_types( //dir=type + unique int id: @opened_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/swift.dbscheme b/swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/swift.dbscheme new file mode 100644 index 00000000000..f5a22f5168a --- /dev/null +++ b/swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/swift.dbscheme @@ -0,0 +1,2618 @@ +// generated by codegen/codegen.py + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @callable +| @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +@availability_spec = + @other_availability_spec +| @platform_version_availability_spec +; + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +other_availability_specs( + unique int id: @other_availability_spec +); + +platform_version_availability_specs( + unique int id: @platform_version_availability_spec, + string platform: string ref, + string version: string ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unresolved_type_conversion_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + string name: string ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int sequence: @expr_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @l_value_type +| @module_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @opaque_type_archetype_type +| @opened_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +opened_archetype_types( //dir=type + unique int id: @opened_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/upgrade.properties b/swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/upgrade.properties new file mode 100644 index 00000000000..9234d15665c --- /dev/null +++ b/swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/upgrade.properties @@ -0,0 +1,4 @@ +description: Rename `base_types` to `inherited_types` in `@type_decl +compatibility: full +type_decl_inherited_types.rel: reorder type_decl_base_types(int id, int index, int type) id index type +type_decl_base_types.rel: delete From 168aca0af497c4ea396592ab4ac067bb38a21ead Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Sep 2023 10:25:16 +0200 Subject: [PATCH 395/788] Swift: add release notes --- swift/ql/lib/change-notes/2023-09-14-rename-base-types.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-09-14-rename-base-types.md diff --git a/swift/ql/lib/change-notes/2023-09-14-rename-base-types.md b/swift/ql/lib/change-notes/2023-09-14-rename-base-types.md new file mode 100644 index 00000000000..c0f7d24f8e5 --- /dev/null +++ b/swift/ql/lib/change-notes/2023-09-14-rename-base-types.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- + +* Renamed `TypeDecl.getBaseType/1` to `getInheritedType`. From 4c1beea46516859b15f692488ba7c27e5c41ee0a Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 5 Sep 2023 13:56:29 +0100 Subject: [PATCH 396/788] Ruby: Address review comments --- .../dataflow/internal/DataFlowPrivate.qll | 34 +- .../dataflow/local/Nodes.expected | 31 + .../dataflow/local/TaintStep.expected | 24 + .../dataflow/params/TypeTracker.expected | 2193 ++++++++++++----- .../dataflow/params/params-flow.expected | 90 +- .../type-tracker/TypeTracker.expected | 32 + 6 files changed, 1782 insertions(+), 622 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 0e6d099e1c0..6ad59c23e90 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -451,11 +451,9 @@ private module Cached { TSynthSplatParameterNode(DataFlowCallable c) { exists(c.asCallable()) and // exclude library callables isParameterNode(_, c, any(ParameterPosition p | p.isPositional(_))) - // `n` is the position of the splat argument that is matched to this node } or TSynthSplatArgParameterNode(DataFlowCallable c) { exists(c.asCallable()) // exclude library callables - // and isParameterNode(_, c, any(ParameterPosition p | p.isSplat(_))) } or TSynthSplatParameterElementNode(DataFlowCallable c, int n) { exists(c.asCallable()) and // exclude library callables @@ -479,15 +477,14 @@ private module Cached { } or TSynthSplatArgumentNode(CfgNodes::ExprNodes::CallCfgNode c) or TSynthSplatArgumentElementNode(CfgNodes::ExprNodes::CallCfgNode c, int n) { - n in [0 .. 10] and + n in [-1 .. 10] and exists(Argument arg, ArgumentPosition pos | pos.isSplat(_) and arg.isArgumentOf(c, pos)) } or TCaptureNode(VariableCapture::Flow::SynthesizedCaptureNode cn) class TSourceParameterNode = TNormalParameterNode or TBlockParameterNode or TSelfParameterNode or - TSynthHashSplatParameterNode or TSynthSplatParameterNode or TSynthSplatArgParameterNode or - TSynthSplatArgumentElementNode; + TSynthHashSplatParameterNode or TSynthSplatParameterNode or TSynthSplatArgParameterNode; cached Location getLocation(NodeImpl n) { result = n.getLocationImpl() } @@ -1612,9 +1609,14 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { // Store from TSynthSplatArgumentElementNode(n) // into TSynthSplatArgumentNode[n] exists(CfgNodes::ExprNodes::CallCfgNode call, int n | - node1 = TSynthSplatArgumentElementNode(call, n) and node2 = TSynthSplatArgumentNode(call) and - c = getPositionalContent(n) + node1 = TSynthSplatArgumentElementNode(call, n) and + ( + c = getPositionalContent(n) + or + n = -1 and + c.isSingleton(TUnknownElementContent()) + ) ) or storeStepCommon(node1, c, node2) @@ -1649,21 +1651,25 @@ predicate readStepCommon(Node node1, ContentSet c, Node node2) { predicate synthSplatArgumentElementReadStep( Node node1, ContentSet c, SynthSplatArgumentElementNode node2 ) { - exists(int n, int splatPos, CfgNodes::ExprNodes::CallCfgNode call | - // Don't propagate taint on the `self` element of the splat - // since that won't (probably) won't reach the parameters of the callable. - // This saves a node per call. - n >= 0 and + exists(int splatPos, CfgNodes::ExprNodes::CallCfgNode call | node1.asExpr().(Argument).isArgumentOf(call, any(ArgumentPosition p | p.isSplat(splatPos))) and node2.getCall() = call and - node2.getPosition() = n + splatPos and ( - c = getPositionalContent(n) or + exists(int n | + node2.getPosition() = n + splatPos and + c = getPositionalContent(n) + ) + or + node2.getPosition() = -1 and c.isSingleton(TUnknownElementContent()) ) ) } +predicate readStepFromSynthSplatParam(SynthSplatParameterNode node1, ContentSet c, Node node2) { + readStep(node1, c, node2) +} + /** * Holds if there is a read step of content `c` from `node1` to `node2`. */ diff --git a/ruby/ql/test/library-tests/dataflow/local/Nodes.expected b/ruby/ql/test/library-tests/dataflow/local/Nodes.expected index 05af88f05c7..ac8dee1a187 100644 --- a/ruby/ql/test/library-tests/dataflow/local/Nodes.expected +++ b/ruby/ql/test/library-tests/dataflow/local/Nodes.expected @@ -1234,21 +1234,34 @@ arg | local_dataflow.rb:9:10:9:10 | 1 | local_dataflow.rb:9:9:9:15 | call to [] | position 0 | | local_dataflow.rb:9:12:9:12 | 2 | local_dataflow.rb:9:9:9:15 | call to [] | position 1 | | local_dataflow.rb:9:14:9:14 | 3 | local_dataflow.rb:9:9:9:15 | call to [] | position 2 | +| local_dataflow.rb:10:5:13:3 | * | local_dataflow.rb:10:5:13:3 | call to each | synthetic * | | local_dataflow.rb:10:5:13:3 | { ... } | local_dataflow.rb:10:5:13:3 | call to each | block | +| local_dataflow.rb:10:9:10:9 | * | local_dataflow.rb:10:9:10:9 | [false] ! ... | synthetic * | +| local_dataflow.rb:10:9:10:9 | * | local_dataflow.rb:10:9:10:9 | [true] ! ... | synthetic * | +| local_dataflow.rb:10:9:10:9 | * | local_dataflow.rb:10:9:10:9 | defined? ... | synthetic * | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [false] ! ... | self | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [true] ! ... | self | | local_dataflow.rb:10:9:10:9 | x | local_dataflow.rb:10:9:10:9 | defined? ... | self | | local_dataflow.rb:10:14:10:18 | array | local_dataflow.rb:10:5:13:3 | call to each | self | +| local_dataflow.rb:11:1:11:2 | * | local_dataflow.rb:11:1:11:2 | call to do | synthetic * | | local_dataflow.rb:11:1:11:2 | self | local_dataflow.rb:11:1:11:2 | call to do | self | | local_dataflow.rb:12:3:12:5 | * | local_dataflow.rb:12:3:12:5 | call to p | synthetic * | | local_dataflow.rb:12:3:12:5 | self | local_dataflow.rb:12:3:12:5 | call to p | self | | local_dataflow.rb:12:5:12:5 | x | local_dataflow.rb:12:3:12:5 | call to p | position 0 | +| local_dataflow.rb:15:1:17:3 | * | local_dataflow.rb:15:1:17:3 | call to each | synthetic * | | local_dataflow.rb:15:1:17:3 | { ... } | local_dataflow.rb:15:1:17:3 | call to each | block | +| local_dataflow.rb:15:5:15:5 | * | local_dataflow.rb:15:5:15:5 | [false] ! ... | synthetic * | +| local_dataflow.rb:15:5:15:5 | * | local_dataflow.rb:15:5:15:5 | [true] ! ... | synthetic * | +| local_dataflow.rb:15:5:15:5 | * | local_dataflow.rb:15:5:15:5 | defined? ... | synthetic * | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [false] ! ... | self | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [true] ! ... | self | | local_dataflow.rb:15:5:15:5 | x | local_dataflow.rb:15:5:15:5 | defined? ... | self | | local_dataflow.rb:15:10:15:14 | array | local_dataflow.rb:15:1:17:3 | call to each | self | +| local_dataflow.rb:19:1:21:3 | * | local_dataflow.rb:19:1:21:3 | call to each | synthetic * | | local_dataflow.rb:19:1:21:3 | { ... } | local_dataflow.rb:19:1:21:3 | call to each | block | +| local_dataflow.rb:19:5:19:5 | * | local_dataflow.rb:19:5:19:5 | [false] ! ... | synthetic * | +| local_dataflow.rb:19:5:19:5 | * | local_dataflow.rb:19:5:19:5 | [true] ! ... | synthetic * | +| local_dataflow.rb:19:5:19:5 | * | local_dataflow.rb:19:5:19:5 | defined? ... | synthetic * | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [false] ! ... | self | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [true] ! ... | self | | local_dataflow.rb:19:5:19:5 | x | local_dataflow.rb:19:5:19:5 | defined? ... | self | @@ -1262,6 +1275,7 @@ arg | local_dataflow.rb:42:6:42:6 | x | local_dataflow.rb:42:6:42:11 | ... == ... | self | | local_dataflow.rb:42:6:42:11 | * | local_dataflow.rb:42:6:42:11 | ... == ... | synthetic * | | local_dataflow.rb:42:11:42:11 | 4 | local_dataflow.rb:42:6:42:11 | ... == ... | position 0 | +| local_dataflow.rb:49:1:53:3 | * | local_dataflow.rb:49:1:53:3 | call to m | synthetic * | | local_dataflow.rb:49:1:53:3 | self | local_dataflow.rb:49:1:53:3 | call to m | self | | local_dataflow.rb:49:3:53:3 | do ... end | local_dataflow.rb:49:1:53:3 | call to m | block | | local_dataflow.rb:50:18:50:18 | x | local_dataflow.rb:50:18:50:22 | ... < ... | self | @@ -1393,6 +1407,7 @@ arg | local_dataflow.rb:112:8:112:16 | * | local_dataflow.rb:112:8:112:16 | call to source | synthetic * | | local_dataflow.rb:112:8:112:16 | call to source | local_dataflow.rb:112:8:112:20 | call to dup | self | | local_dataflow.rb:112:8:112:16 | self | local_dataflow.rb:112:8:112:16 | call to source | self | +| local_dataflow.rb:112:8:112:20 | * | local_dataflow.rb:112:8:112:20 | call to dup | synthetic * | | local_dataflow.rb:112:8:112:20 | call to dup | local_dataflow.rb:112:3:112:21 | call to sink | position 0 | | local_dataflow.rb:112:15:112:15 | 1 | local_dataflow.rb:112:8:112:16 | call to source | position 0 | | local_dataflow.rb:113:3:113:25 | * | local_dataflow.rb:113:3:113:25 | call to sink | synthetic * | @@ -1400,7 +1415,9 @@ arg | local_dataflow.rb:113:8:113:16 | * | local_dataflow.rb:113:8:113:16 | call to source | synthetic * | | local_dataflow.rb:113:8:113:16 | call to source | local_dataflow.rb:113:8:113:20 | call to dup | self | | local_dataflow.rb:113:8:113:16 | self | local_dataflow.rb:113:8:113:16 | call to source | self | +| local_dataflow.rb:113:8:113:20 | * | local_dataflow.rb:113:8:113:20 | call to dup | synthetic * | | local_dataflow.rb:113:8:113:20 | call to dup | local_dataflow.rb:113:8:113:24 | call to dup | self | +| local_dataflow.rb:113:8:113:24 | * | local_dataflow.rb:113:8:113:24 | call to dup | synthetic * | | local_dataflow.rb:113:8:113:24 | call to dup | local_dataflow.rb:113:3:113:25 | call to sink | position 0 | | local_dataflow.rb:113:15:113:15 | 1 | local_dataflow.rb:113:8:113:16 | call to source | position 0 | | local_dataflow.rb:117:3:117:24 | * | local_dataflow.rb:117:3:117:24 | call to sink | synthetic * | @@ -1408,12 +1425,14 @@ arg | local_dataflow.rb:117:8:117:16 | * | local_dataflow.rb:117:8:117:16 | call to source | synthetic * | | local_dataflow.rb:117:8:117:16 | call to source | local_dataflow.rb:117:8:117:23 | call to tap | self | | local_dataflow.rb:117:8:117:16 | self | local_dataflow.rb:117:8:117:16 | call to source | self | +| local_dataflow.rb:117:8:117:23 | * | local_dataflow.rb:117:8:117:23 | call to tap | synthetic * | | local_dataflow.rb:117:8:117:23 | call to tap | local_dataflow.rb:117:3:117:24 | call to sink | position 0 | | local_dataflow.rb:117:15:117:15 | 1 | local_dataflow.rb:117:8:117:16 | call to source | position 0 | | local_dataflow.rb:117:22:117:23 | { ... } | local_dataflow.rb:117:8:117:23 | call to tap | block | | local_dataflow.rb:118:3:118:11 | * | local_dataflow.rb:118:3:118:11 | call to source | synthetic * | | local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:3:118:31 | call to tap | self | | local_dataflow.rb:118:3:118:11 | self | local_dataflow.rb:118:3:118:11 | call to source | self | +| local_dataflow.rb:118:3:118:31 | * | local_dataflow.rb:118:3:118:31 | call to tap | synthetic * | | local_dataflow.rb:118:10:118:10 | 1 | local_dataflow.rb:118:3:118:11 | call to source | position 0 | | local_dataflow.rb:118:17:118:31 | { ... } | local_dataflow.rb:118:3:118:31 | call to tap | block | | local_dataflow.rb:118:23:118:29 | * | local_dataflow.rb:118:23:118:29 | call to sink | synthetic * | @@ -1424,7 +1443,9 @@ arg | local_dataflow.rb:119:8:119:16 | * | local_dataflow.rb:119:8:119:16 | call to source | synthetic * | | local_dataflow.rb:119:8:119:16 | call to source | local_dataflow.rb:119:8:119:23 | call to tap | self | | local_dataflow.rb:119:8:119:16 | self | local_dataflow.rb:119:8:119:16 | call to source | self | +| local_dataflow.rb:119:8:119:23 | * | local_dataflow.rb:119:8:119:23 | call to tap | synthetic * | | local_dataflow.rb:119:8:119:23 | call to tap | local_dataflow.rb:119:8:119:30 | call to tap | self | +| local_dataflow.rb:119:8:119:30 | * | local_dataflow.rb:119:8:119:30 | call to tap | synthetic * | | local_dataflow.rb:119:8:119:30 | call to tap | local_dataflow.rb:119:3:119:31 | call to sink | position 0 | | local_dataflow.rb:119:15:119:15 | 1 | local_dataflow.rb:119:8:119:16 | call to source | position 0 | | local_dataflow.rb:119:22:119:23 | { ... } | local_dataflow.rb:119:8:119:23 | call to tap | block | @@ -1434,14 +1455,18 @@ arg | local_dataflow.rb:123:8:123:16 | * | local_dataflow.rb:123:8:123:16 | call to source | synthetic * | | local_dataflow.rb:123:8:123:16 | call to source | local_dataflow.rb:123:8:123:20 | call to dup | self | | local_dataflow.rb:123:8:123:16 | self | local_dataflow.rb:123:8:123:16 | call to source | self | +| local_dataflow.rb:123:8:123:20 | * | local_dataflow.rb:123:8:123:20 | call to dup | synthetic * | | local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap | self | +| local_dataflow.rb:123:8:123:45 | * | local_dataflow.rb:123:8:123:45 | call to tap | synthetic * | | local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup | self | +| local_dataflow.rb:123:8:123:49 | * | local_dataflow.rb:123:8:123:49 | call to dup | synthetic * | | local_dataflow.rb:123:8:123:49 | call to dup | local_dataflow.rb:123:3:123:50 | call to sink | position 0 | | local_dataflow.rb:123:15:123:15 | 1 | local_dataflow.rb:123:8:123:16 | call to source | position 0 | | local_dataflow.rb:123:26:123:45 | { ... } | local_dataflow.rb:123:8:123:45 | call to tap | block | | local_dataflow.rb:123:32:123:43 | * | local_dataflow.rb:123:32:123:43 | call to puts | synthetic * | | local_dataflow.rb:123:32:123:43 | self | local_dataflow.rb:123:32:123:43 | call to puts | self | | local_dataflow.rb:123:37:123:43 | "hello" | local_dataflow.rb:123:32:123:43 | call to puts | position 0 | +| local_dataflow.rb:127:3:127:8 | * | local_dataflow.rb:127:3:127:8 | call to rand | synthetic * | | local_dataflow.rb:127:3:127:8 | self | local_dataflow.rb:127:3:127:8 | call to rand | self | | local_dataflow.rb:132:6:132:11 | * | local_dataflow.rb:132:6:132:11 | call to use | synthetic * | | local_dataflow.rb:132:6:132:11 | self | local_dataflow.rb:132:6:132:11 | call to use | self | @@ -1471,6 +1496,8 @@ arg | local_dataflow.rb:137:10:137:26 | * | local_dataflow.rb:137:10:137:26 | [false] ... && ... | synthetic * | | local_dataflow.rb:137:10:137:26 | * | local_dataflow.rb:137:10:137:26 | [true] ... && ... | synthetic * | | local_dataflow.rb:137:14:137:14 | x | local_dataflow.rb:137:10:137:15 | call to use | position 0 | +| local_dataflow.rb:137:20:137:26 | * | local_dataflow.rb:137:20:137:26 | [false] ! ... | synthetic * | +| local_dataflow.rb:137:20:137:26 | * | local_dataflow.rb:137:20:137:26 | [true] ! ... | synthetic * | | local_dataflow.rb:137:20:137:26 | [false] ! ... | local_dataflow.rb:137:10:137:26 | [false] ... && ... | position 0 | | local_dataflow.rb:137:20:137:26 | [true] ! ... | local_dataflow.rb:137:10:137:26 | [true] ... && ... | position 0 | | local_dataflow.rb:137:21:137:26 | * | local_dataflow.rb:137:21:137:26 | call to use | synthetic * | @@ -1478,6 +1505,8 @@ arg | local_dataflow.rb:137:21:137:26 | call to use | local_dataflow.rb:137:20:137:26 | [true] ! ... | self | | local_dataflow.rb:137:21:137:26 | self | local_dataflow.rb:137:21:137:26 | call to use | self | | local_dataflow.rb:137:25:137:25 | x | local_dataflow.rb:137:21:137:26 | call to use | position 0 | +| local_dataflow.rb:141:8:141:14 | * | local_dataflow.rb:141:8:141:14 | [false] ! ... | synthetic * | +| local_dataflow.rb:141:8:141:14 | * | local_dataflow.rb:141:8:141:14 | [true] ! ... | synthetic * | | local_dataflow.rb:141:8:141:14 | [false] ! ... | local_dataflow.rb:141:8:141:37 | [false] ... \|\| ... | self | | local_dataflow.rb:141:8:141:14 | [false] ! ... | local_dataflow.rb:141:8:141:37 | [true] ... \|\| ... | self | | local_dataflow.rb:141:8:141:14 | [true] ! ... | local_dataflow.rb:141:8:141:37 | [true] ... \|\| ... | self | @@ -1497,6 +1526,8 @@ arg | local_dataflow.rb:141:20:141:36 | * | local_dataflow.rb:141:20:141:36 | [false] ... && ... | synthetic * | | local_dataflow.rb:141:20:141:36 | * | local_dataflow.rb:141:20:141:36 | [true] ... && ... | synthetic * | | local_dataflow.rb:141:24:141:24 | x | local_dataflow.rb:141:20:141:25 | call to use | position 0 | +| local_dataflow.rb:141:30:141:36 | * | local_dataflow.rb:141:30:141:36 | [false] ! ... | synthetic * | +| local_dataflow.rb:141:30:141:36 | * | local_dataflow.rb:141:30:141:36 | [true] ! ... | synthetic * | | local_dataflow.rb:141:30:141:36 | [false] ! ... | local_dataflow.rb:141:20:141:36 | [false] ... && ... | position 0 | | local_dataflow.rb:141:30:141:36 | [true] ! ... | local_dataflow.rb:141:20:141:36 | [true] ... && ... | position 0 | | local_dataflow.rb:141:31:141:36 | * | local_dataflow.rb:141:31:141:36 | call to use | synthetic * | diff --git a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected index 534ba42e288..995e1de3ba3 100644 --- a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected +++ b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected @@ -2796,6 +2796,8 @@ | UseUseExplosion.rb:21:3675:21:3680 | call to use | UseUseExplosion.rb:21:3670:21:3680 | else ... | | UseUseExplosion.rb:21:3686:21:3696 | else ... | UseUseExplosion.rb:21:9:21:3700 | if ... | | UseUseExplosion.rb:21:3691:21:3696 | call to use | UseUseExplosion.rb:21:3686:21:3696 | else ... | +| UseUseExplosion.rb:24:5:25:7 | synthetic *args | UseUseExplosion.rb:24:13:24:13 | i | +| UseUseExplosion.rb:24:5:25:7 | synthetic *args | UseUseExplosion.rb:24:13:24:13 | i | | UseUseExplosion.rb:24:5:25:7 | use | UseUseExplosion.rb:1:1:26:3 | C | | file://:0:0:0:0 | [summary param] position 0 in & | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in & | | file://:0:0:0:0 | [summary param] position 0 in + | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in + | @@ -2840,6 +2842,8 @@ | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in Hash[] | file://:0:0:0:0 | [summary] read: Argument[0].Element[any].Element[1] in Hash[] | | local_dataflow.rb:1:1:7:3 | self (foo) | local_dataflow.rb:3:8:3:10 | self | | local_dataflow.rb:1:1:7:3 | self in foo | local_dataflow.rb:1:1:7:3 | self (foo) | +| local_dataflow.rb:1:1:7:3 | synthetic *args | local_dataflow.rb:1:9:1:9 | a | +| local_dataflow.rb:1:1:7:3 | synthetic *args | local_dataflow.rb:1:9:1:9 | a | | local_dataflow.rb:1:1:150:3 | | local_dataflow.rb:10:9:10:9 | x | | local_dataflow.rb:1:1:150:3 | self (local_dataflow.rb) | local_dataflow.rb:49:1:53:3 | self | | local_dataflow.rb:1:9:1:9 | a | local_dataflow.rb:1:9:1:9 | a | @@ -2877,6 +2881,8 @@ | local_dataflow.rb:10:5:13:3 | __synth__0__1 | local_dataflow.rb:10:5:13:3 | __synth__0__1 | | local_dataflow.rb:10:5:13:3 | __synth__0__1 | local_dataflow.rb:10:9:10:9 | x | | local_dataflow.rb:10:5:13:3 | call to each | local_dataflow.rb:10:5:13:3 | ... | +| local_dataflow.rb:10:5:13:3 | synthetic *args | local_dataflow.rb:10:5:13:3 | __synth__0__1 | +| local_dataflow.rb:10:5:13:3 | synthetic *args | local_dataflow.rb:10:5:13:3 | __synth__0__1 | | local_dataflow.rb:10:9:10:9 | ... = ... | local_dataflow.rb:10:9:10:9 | if ... | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [false] ! ... | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [true] ! ... | @@ -2895,6 +2901,8 @@ | local_dataflow.rb:15:1:17:3 | __synth__0__1 | local_dataflow.rb:15:1:17:3 | __synth__0__1 | | local_dataflow.rb:15:1:17:3 | __synth__0__1 | local_dataflow.rb:15:5:15:5 | x | | local_dataflow.rb:15:1:17:3 | call to each | local_dataflow.rb:15:1:17:3 | ... | +| local_dataflow.rb:15:1:17:3 | synthetic *args | local_dataflow.rb:15:1:17:3 | __synth__0__1 | +| local_dataflow.rb:15:1:17:3 | synthetic *args | local_dataflow.rb:15:1:17:3 | __synth__0__1 | | local_dataflow.rb:15:5:15:5 | ... = ... | local_dataflow.rb:15:5:15:5 | if ... | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [false] ! ... | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [true] ! ... | @@ -2910,6 +2918,8 @@ | local_dataflow.rb:19:1:21:3 | __synth__0__1 | local_dataflow.rb:19:1:21:3 | __synth__0__1 | | local_dataflow.rb:19:1:21:3 | __synth__0__1 | local_dataflow.rb:19:5:19:5 | x | | local_dataflow.rb:19:1:21:3 | call to each | local_dataflow.rb:19:1:21:3 | ... | +| local_dataflow.rb:19:1:21:3 | synthetic *args | local_dataflow.rb:19:1:21:3 | __synth__0__1 | +| local_dataflow.rb:19:1:21:3 | synthetic *args | local_dataflow.rb:19:1:21:3 | __synth__0__1 | | local_dataflow.rb:19:5:19:5 | ... = ... | local_dataflow.rb:19:5:19:5 | if ... | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [false] ! ... | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [true] ! ... | @@ -2928,11 +2938,15 @@ | local_dataflow.rb:30:14:30:20 | "class" | local_dataflow.rb:30:5:30:24 | C | | local_dataflow.rb:32:5:32:25 | bar | local_dataflow.rb:32:1:32:1 | x | | local_dataflow.rb:32:5:32:25 | bar | local_dataflow.rb:32:1:32:25 | ... = ... | +| local_dataflow.rb:34:1:39:3 | synthetic *args | local_dataflow.rb:34:7:34:7 | x | +| local_dataflow.rb:34:1:39:3 | synthetic *args | local_dataflow.rb:34:7:34:7 | x | | local_dataflow.rb:34:7:34:7 | x | local_dataflow.rb:34:7:34:7 | x | | local_dataflow.rb:34:7:34:7 | x | local_dataflow.rb:35:6:35:6 | x | | local_dataflow.rb:35:6:35:6 | x | local_dataflow.rb:35:6:35:11 | ... == ... | | local_dataflow.rb:35:11:35:11 | 4 | local_dataflow.rb:35:6:35:11 | ... == ... | | local_dataflow.rb:36:13:36:13 | 7 | local_dataflow.rb:36:6:36:13 | return | +| local_dataflow.rb:41:1:47:3 | synthetic *args | local_dataflow.rb:41:7:41:7 | x | +| local_dataflow.rb:41:1:47:3 | synthetic *args | local_dataflow.rb:41:7:41:7 | x | | local_dataflow.rb:41:7:41:7 | x | local_dataflow.rb:41:7:41:7 | x | | local_dataflow.rb:41:7:41:7 | x | local_dataflow.rb:42:6:42:6 | x | | local_dataflow.rb:42:6:42:6 | x | local_dataflow.rb:42:6:42:11 | ... == ... | @@ -2951,8 +2965,12 @@ | local_dataflow.rb:51:20:51:20 | x | local_dataflow.rb:51:20:51:24 | ... < ... | | local_dataflow.rb:51:24:51:24 | 9 | local_dataflow.rb:51:20:51:24 | ... < ... | | local_dataflow.rb:55:5:55:13 | Array | local_dataflow.rb:55:5:55:13 | call to [] | +| local_dataflow.rb:57:1:58:3 | synthetic *args | local_dataflow.rb:57:9:57:9 | x | +| local_dataflow.rb:57:1:58:3 | synthetic *args | local_dataflow.rb:57:9:57:9 | x | | local_dataflow.rb:60:1:90:3 | self (test_case) | local_dataflow.rb:78:12:78:20 | self | | local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:60:1:90:3 | self (test_case) | +| local_dataflow.rb:60:1:90:3 | synthetic *args | local_dataflow.rb:60:15:60:15 | x | +| local_dataflow.rb:60:1:90:3 | synthetic *args | local_dataflow.rb:60:15:60:15 | x | | local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:60:15:60:15 | x | | local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:61:12:61:12 | x | | local_dataflow.rb:61:7:68:5 | SSA phi read(x) | local_dataflow.rb:69:12:69:12 | x | @@ -3125,6 +3143,8 @@ | local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:3:118:31 | call to tap | | local_dataflow.rb:118:3:118:11 | self | local_dataflow.rb:119:3:119:31 | self | | local_dataflow.rb:118:17:118:31 | self | local_dataflow.rb:118:23:118:29 | self | +| local_dataflow.rb:118:17:118:31 | synthetic *args | local_dataflow.rb:118:20:118:20 | x | +| local_dataflow.rb:118:17:118:31 | synthetic *args | local_dataflow.rb:118:20:118:20 | x | | local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:20:118:20 | x | | local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:28:118:28 | x | | local_dataflow.rb:119:3:119:31 | [post] self | local_dataflow.rb:119:8:119:16 | self | @@ -3139,8 +3159,12 @@ | local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap | | local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup | | local_dataflow.rb:123:26:123:45 | self | local_dataflow.rb:123:32:123:43 | self | +| local_dataflow.rb:123:26:123:45 | synthetic *args | local_dataflow.rb:123:29:123:29 | x | +| local_dataflow.rb:123:26:123:45 | synthetic *args | local_dataflow.rb:123:29:123:29 | x | | local_dataflow.rb:126:1:128:3 | self (use) | local_dataflow.rb:127:3:127:8 | self | | local_dataflow.rb:126:1:128:3 | self in use | local_dataflow.rb:126:1:128:3 | self (use) | +| local_dataflow.rb:126:1:128:3 | synthetic *args | local_dataflow.rb:126:9:126:9 | x | +| local_dataflow.rb:126:1:128:3 | synthetic *args | local_dataflow.rb:126:9:126:9 | x | | local_dataflow.rb:130:1:150:3 | self (use_use_madness) | local_dataflow.rb:132:6:132:11 | self | | local_dataflow.rb:130:1:150:3 | self in use_use_madness | local_dataflow.rb:130:1:150:3 | self (use_use_madness) | | local_dataflow.rb:131:3:131:3 | x | local_dataflow.rb:132:10:132:10 | x | diff --git a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected index 8aa67259ded..c60c07f8b77 100644 --- a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected @@ -3,7 +3,6 @@ track | params_flow.rb:1:1:3:3 | self in taint | type tracker without call steps | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:3:3 | synthetic *args | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:1:1:3:3 | synthetic *args | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:1:1:3:3 | synthetic *args | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:1:1:3:3 | taint | type tracker without call steps | params_flow.rb:1:1:3:3 | taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | @@ -30,6 +29,7 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:65:10:65:13 | ...[...] | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:69:17:69:17 | y | @@ -37,18 +37,18 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:20:83:20 | v | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:29:83:29 | y | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:98:19:98:19 | a | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:108:37:108:37 | a | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | @@ -58,56 +58,63 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:65:5:65:13 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:109:5:109:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:111:5:111:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:134:5:134:16 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :c | params_flow.rb:108:1:112:3 | **kwargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | **kwargs | @@ -137,16 +144,23 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:40:16:40:24 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:41:13:41:21 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:46:20:46:28 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:47:1:47:17 | *[0] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:60:20:60:28 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:61:1:61:14 | *[0] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:63:8:63:16 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:78:10:78:18 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:78:21:78:29 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:78:32:78:40 | call to taint | @@ -156,15 +170,26 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:1:81:37 | *[3] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:28:81:36 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:1:94:48 | *[4] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:39:94:47 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | @@ -172,6 +197,8 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:68:96:76 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:79:96:87 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | @@ -182,13 +209,19 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:114:44:114:52 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:114:58:114:66 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:117:19:117:27 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:130:9:130:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:130:20:130:28 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:131:1:131:46 | *[0] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:131:17:131:25 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:1:137:44 | *[0] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:1:137:44 | *[1] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:34:137:42 | call to taint | @@ -197,14 +230,20 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:14:1:14:30 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:44:1:44:28 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:55:1:55:29 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:58:1:58:25 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:105:1:105:49 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:114:1:114:67 | * | @@ -242,6 +281,8 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:106:1:106:46 | * | @@ -250,6 +291,7 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:47:12:47:16 | * ... | @@ -271,6 +313,7 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:106:1:106:46 | * | @@ -286,11 +329,14 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 4 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :c | params_flow.rb:114:1:114:67 | ** | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:21:1:21:35 | ** | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:22:1:22:35 | ** | @@ -320,7 +366,6 @@ track | params_flow.rb:5:1:7:3 | sink | type tracker without call steps | params_flow.rb:5:1:7:3 | sink | | params_flow.rb:5:1:7:3 | synthetic *args | type tracker without call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:5:1:7:3 | synthetic *args | type tracker without call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:5:1:7:3 | synthetic *args | type tracker without call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:5:10:5:10 | x | type tracker without call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | type tracker without call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | type tracker without call steps with content element 0 | params_flow.rb:6:5:6:10 | * | @@ -396,55 +441,88 @@ track | params_flow.rb:9:1:12:3 | self in positional | type tracker without call steps | params_flow.rb:9:1:12:3 | self in positional | | params_flow.rb:9:1:12:3 | synthetic *args | type tracker without call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:9:1:12:3 | synthetic *args | type tracker without call steps | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:9:1:12:3 | synthetic *args | type tracker without call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:9:16:9:17 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:9:16:9:17 | p1 | type tracker without call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:9:16:9:17 | p1 | type tracker without call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:9:16:9:17 | p1 | type tracker without call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:9:20:9:21 | p2 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:9:20:9:21 | p2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:9:20:9:21 | p2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:9:20:9:21 | p2 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:9:20:9:21 | p2 | type tracker without call steps | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:9:20:9:21 | p2 | type tracker without call steps | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:9:20:9:21 | p2 | type tracker without call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:10:5:10:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:10:5:10:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:10:5:10:11 | * | type tracker without call steps | params_flow.rb:10:5:10:11 | * | | params_flow.rb:10:5:10:11 | call to sink | type tracker without call steps | params_flow.rb:10:5:10:11 | call to sink | +| params_flow.rb:11:5:11:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:11:5:11:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:11:5:11:11 | * | type tracker without call steps | params_flow.rb:11:5:11:11 | * | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:11:5:11:11 | call to sink | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:14:1:14:30 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:44:1:44:28 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:47:1:47:17 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:118:1:118:14 | call to positional | +| params_flow.rb:14:1:14:30 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:14:1:14:30 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:1:14:30 | * | type tracker without call steps | params_flow.rb:14:1:14:30 | * | | params_flow.rb:14:1:14:30 | call to positional | type tracker without call steps | params_flow.rb:14:1:14:30 | call to positional | +| params_flow.rb:14:12:14:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:14:12:14:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:14:12:14:19 | * | type tracker without call steps | params_flow.rb:14:12:14:19 | * | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:14:12:14:19 | call to taint | type tracker without call steps | params_flow.rb:14:12:14:19 | call to taint | | params_flow.rb:14:12:14:19 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:14:1:14:30 | * | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:14:18:14:18 | 1 | type tracker without call steps | params_flow.rb:14:12:14:19 | call to taint | | params_flow.rb:14:18:14:18 | 1 | type tracker without call steps | params_flow.rb:14:18:14:18 | 1 | | params_flow.rb:14:18:14:18 | 1 | type tracker without call steps with content element 0 | params_flow.rb:14:1:14:30 | * | | params_flow.rb:14:18:14:18 | 1 | type tracker without call steps with content element 0 | params_flow.rb:14:12:14:19 | * | +| params_flow.rb:14:22:14:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:14:22:14:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:14:22:14:29 | * | type tracker without call steps | params_flow.rb:14:22:14:29 | * | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:22:14:29 | call to taint | type tracker without call steps | params_flow.rb:14:22:14:29 | call to taint | | params_flow.rb:14:22:14:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:14:1:14:30 | * | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:28:14:28 | 2 | type tracker without call steps | params_flow.rb:14:22:14:29 | call to taint | | params_flow.rb:14:28:14:28 | 2 | type tracker without call steps | params_flow.rb:14:28:14:28 | 2 | | params_flow.rb:14:28:14:28 | 2 | type tracker without call steps with content element 0 | params_flow.rb:14:22:14:29 | * | @@ -454,18 +532,27 @@ track | params_flow.rb:16:1:19:3 | keyword | type tracker without call steps | params_flow.rb:16:1:19:3 | keyword | | params_flow.rb:16:1:19:3 | self in keyword | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:16:1:19:3 | self in keyword | type tracker without call steps | params_flow.rb:16:1:19:3 | self in keyword | +| params_flow.rb:16:1:19:3 | synthetic *args | type tracker without call steps | params_flow.rb:16:1:19:3 | synthetic *args | | params_flow.rb:16:13:16:14 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:16:13:16:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:16:13:16:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:16:13:16:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:16:13:16:14 | p1 | type tracker without call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:16:13:16:14 | p1 | type tracker without call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:16:13:16:14 | p1 | type tracker without call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:16:18:16:19 | p2 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:16:18:16:19 | p2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:16:18:16:19 | p2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:16:18:16:19 | p2 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:16:18:16:19 | p2 | type tracker without call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:16:18:16:19 | p2 | type tracker without call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:16:18:16:19 | p2 | type tracker without call steps with content element 0 | params_flow.rb:18:5:18:11 | * | +| params_flow.rb:17:5:17:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:17:5:17:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:17:5:17:11 | * | type tracker without call steps | params_flow.rb:17:5:17:11 | * | | params_flow.rb:17:5:17:11 | call to sink | type tracker without call steps | params_flow.rb:17:5:17:11 | call to sink | +| params_flow.rb:18:5:18:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:18:5:18:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:18:5:18:11 | * | type tracker without call steps | params_flow.rb:18:5:18:11 | * | | params_flow.rb:18:5:18:11 | call to sink | type tracker without call steps | params_flow.rb:18:5:18:11 | call to sink | | params_flow.rb:18:5:18:11 | call to sink | type tracker without call steps | params_flow.rb:21:1:21:35 | call to keyword | @@ -477,9 +564,13 @@ track | params_flow.rb:21:1:21:35 | call to keyword | type tracker without call steps | params_flow.rb:21:1:21:35 | call to keyword | | params_flow.rb:21:9:21:10 | :p1 | type tracker without call steps | params_flow.rb:21:9:21:10 | :p1 | | params_flow.rb:21:9:21:20 | Pair | type tracker without call steps | params_flow.rb:21:9:21:20 | Pair | +| params_flow.rb:21:13:21:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:21:13:21:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:21:13:21:20 | * | type tracker without call steps | params_flow.rb:21:13:21:20 | * | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | +| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -488,6 +579,10 @@ track | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | +| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -497,9 +592,13 @@ track | params_flow.rb:21:19:21:19 | 3 | type tracker without call steps with content element :p1 | params_flow.rb:21:1:21:35 | ** | | params_flow.rb:21:23:21:24 | :p2 | type tracker without call steps | params_flow.rb:21:23:21:24 | :p2 | | params_flow.rb:21:23:21:34 | Pair | type tracker without call steps | params_flow.rb:21:23:21:34 | Pair | +| params_flow.rb:21:27:21:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:21:27:21:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:21:27:21:34 | * | type tracker without call steps | params_flow.rb:21:27:21:34 | * | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | +| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -508,6 +607,10 @@ track | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | +| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -520,9 +623,13 @@ track | params_flow.rb:22:1:22:35 | call to keyword | type tracker without call steps | params_flow.rb:22:1:22:35 | call to keyword | | params_flow.rb:22:9:22:10 | :p2 | type tracker without call steps | params_flow.rb:22:9:22:10 | :p2 | | params_flow.rb:22:9:22:20 | Pair | type tracker without call steps | params_flow.rb:22:9:22:20 | Pair | +| params_flow.rb:22:13:22:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:22:13:22:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:22:13:22:20 | * | type tracker without call steps | params_flow.rb:22:13:22:20 | * | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | +| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -531,6 +638,10 @@ track | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | +| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -540,9 +651,13 @@ track | params_flow.rb:22:19:22:19 | 5 | type tracker without call steps with content element :p2 | params_flow.rb:22:1:22:35 | ** | | params_flow.rb:22:23:22:24 | :p1 | type tracker without call steps | params_flow.rb:22:23:22:24 | :p1 | | params_flow.rb:22:23:22:34 | Pair | type tracker without call steps | params_flow.rb:22:23:22:34 | Pair | +| params_flow.rb:22:27:22:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:22:27:22:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:22:27:22:34 | * | type tracker without call steps | params_flow.rb:22:27:22:34 | * | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | +| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -551,6 +666,10 @@ track | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | +| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -563,9 +682,13 @@ track | params_flow.rb:23:1:23:41 | call to keyword | type tracker without call steps | params_flow.rb:23:1:23:41 | call to keyword | | params_flow.rb:23:9:23:11 | :p2 | type tracker without call steps | params_flow.rb:23:9:23:11 | :p2 | | params_flow.rb:23:9:23:23 | Pair | type tracker without call steps | params_flow.rb:23:9:23:23 | Pair | +| params_flow.rb:23:16:23:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:23:16:23:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:23:16:23:23 | * | type tracker without call steps | params_flow.rb:23:16:23:23 | * | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | +| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -574,6 +697,10 @@ track | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | +| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -583,9 +710,13 @@ track | params_flow.rb:23:22:23:22 | 7 | type tracker without call steps with content element :p2 | params_flow.rb:23:1:23:41 | ** | | params_flow.rb:23:26:23:28 | :p1 | type tracker without call steps | params_flow.rb:23:26:23:28 | :p1 | | params_flow.rb:23:26:23:40 | Pair | type tracker without call steps | params_flow.rb:23:26:23:40 | Pair | +| params_flow.rb:23:33:23:40 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:23:33:23:40 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:23:33:23:40 | * | type tracker without call steps | params_flow.rb:23:33:23:40 | * | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | +| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -594,6 +725,10 @@ track | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | +| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -606,42 +741,61 @@ track | params_flow.rb:25:1:31:3 | kwargs | type tracker without call steps | params_flow.rb:25:1:31:3 | kwargs | | params_flow.rb:25:1:31:3 | self in kwargs | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:25:1:31:3 | self in kwargs | type tracker without call steps | params_flow.rb:25:1:31:3 | self in kwargs | +| params_flow.rb:25:1:31:3 | synthetic *args | type tracker without call steps | params_flow.rb:25:1:31:3 | synthetic *args | | params_flow.rb:25:12:25:13 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:25:12:25:13 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:25:12:25:13 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:25:12:25:13 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:25:12:25:13 | p1 | type tracker without call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:25:12:25:13 | p1 | type tracker without call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:25:12:25:13 | p1 | type tracker without call steps with content element 0 | params_flow.rb:26:5:26:11 | * | | params_flow.rb:25:17:25:24 | **kwargs | type tracker without call steps | params_flow.rb:25:17:25:24 | **kwargs | | params_flow.rb:25:19:25:24 | kwargs | type tracker without call steps | params_flow.rb:25:19:25:24 | kwargs | +| params_flow.rb:26:5:26:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:26:5:26:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:26:5:26:11 | * | type tracker without call steps | params_flow.rb:26:5:26:11 | * | | params_flow.rb:26:5:26:11 | call to sink | type tracker without call steps | params_flow.rb:26:5:26:11 | call to sink | +| params_flow.rb:27:5:27:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:27:5:27:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:27:5:27:22 | * | type tracker without call steps | params_flow.rb:27:5:27:22 | * | | params_flow.rb:27:5:27:22 | call to sink | type tracker without call steps | params_flow.rb:27:5:27:22 | call to sink | | params_flow.rb:27:11:27:21 | * | type tracker without call steps | params_flow.rb:27:11:27:21 | * | | params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:27:11:27:21 | ...[...] | type tracker without call steps | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:27:11:27:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:27:5:27:22 | * | | params_flow.rb:27:18:27:20 | :p1 | type tracker without call steps | params_flow.rb:27:18:27:20 | :p1 | | params_flow.rb:27:18:27:20 | :p1 | type tracker without call steps with content element 0 | params_flow.rb:27:11:27:21 | * | +| params_flow.rb:28:5:28:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:28:5:28:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:28:5:28:22 | * | type tracker without call steps | params_flow.rb:28:5:28:22 | * | | params_flow.rb:28:5:28:22 | call to sink | type tracker without call steps | params_flow.rb:28:5:28:22 | call to sink | | params_flow.rb:28:11:28:21 | * | type tracker without call steps | params_flow.rb:28:11:28:21 | * | | params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:28:11:28:21 | ...[...] | type tracker without call steps | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:28:11:28:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:28:5:28:22 | * | | params_flow.rb:28:18:28:20 | :p2 | type tracker without call steps | params_flow.rb:28:18:28:20 | :p2 | | params_flow.rb:28:18:28:20 | :p2 | type tracker without call steps with content element 0 | params_flow.rb:28:11:28:21 | * | +| params_flow.rb:29:5:29:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:29:5:29:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:29:5:29:22 | * | type tracker without call steps | params_flow.rb:29:5:29:22 | * | | params_flow.rb:29:5:29:22 | call to sink | type tracker without call steps | params_flow.rb:29:5:29:22 | call to sink | | params_flow.rb:29:11:29:21 | * | type tracker without call steps | params_flow.rb:29:11:29:21 | * | | params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:29:11:29:21 | ...[...] | type tracker without call steps | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:29:11:29:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:29:5:29:22 | * | | params_flow.rb:29:18:29:20 | :p3 | type tracker without call steps | params_flow.rb:29:18:29:20 | :p3 | | params_flow.rb:29:18:29:20 | :p3 | type tracker without call steps with content element 0 | params_flow.rb:29:11:29:21 | * | +| params_flow.rb:30:5:30:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:30:5:30:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:30:5:30:22 | * | type tracker without call steps | params_flow.rb:30:5:30:22 | * | | params_flow.rb:30:5:30:22 | call to sink | type tracker without call steps | params_flow.rb:30:5:30:22 | call to sink | | params_flow.rb:30:5:30:22 | call to sink | type tracker without call steps | params_flow.rb:33:1:33:58 | call to kwargs | @@ -649,6 +803,8 @@ track | params_flow.rb:30:5:30:22 | call to sink | type tracker without call steps | params_flow.rb:38:1:38:14 | call to kwargs | | params_flow.rb:30:11:30:21 | * | type tracker without call steps | params_flow.rb:30:11:30:21 | * | | params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:30:11:30:21 | ...[...] | type tracker without call steps | params_flow.rb:30:11:30:21 | ...[...] | | params_flow.rb:30:11:30:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:30:5:30:22 | * | @@ -660,10 +816,14 @@ track | params_flow.rb:33:1:33:58 | call to kwargs | type tracker without call steps | params_flow.rb:33:1:33:58 | call to kwargs | | params_flow.rb:33:8:33:9 | :p1 | type tracker without call steps | params_flow.rb:33:8:33:9 | :p1 | | params_flow.rb:33:8:33:19 | Pair | type tracker without call steps | params_flow.rb:33:8:33:19 | Pair | +| params_flow.rb:33:12:33:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:12:33:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:12:33:19 | * | type tracker without call steps | params_flow.rb:33:12:33:19 | * | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | +| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | @@ -675,6 +835,10 @@ track | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | @@ -686,9 +850,13 @@ track | params_flow.rb:33:18:33:18 | 9 | type tracker without call steps with content element :p1 | params_flow.rb:33:1:33:58 | ** | | params_flow.rb:33:22:33:23 | :p2 | type tracker without call steps | params_flow.rb:33:22:33:23 | :p2 | | params_flow.rb:33:22:33:34 | Pair | type tracker without call steps | params_flow.rb:33:22:33:34 | Pair | +| params_flow.rb:33:26:33:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:26:33:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:26:33:34 | * | type tracker without call steps | params_flow.rb:33:26:33:34 | * | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | +| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | @@ -698,6 +866,10 @@ track | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | +| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | @@ -708,9 +880,13 @@ track | params_flow.rb:33:32:33:33 | 10 | type tracker without call steps with content element :p2 | params_flow.rb:33:1:33:58 | ** | | params_flow.rb:33:37:33:38 | :p3 | type tracker without call steps | params_flow.rb:33:37:33:38 | :p3 | | params_flow.rb:33:37:33:49 | Pair | type tracker without call steps | params_flow.rb:33:37:33:49 | Pair | +| params_flow.rb:33:41:33:49 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:41:33:49 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:41:33:49 | * | type tracker without call steps | params_flow.rb:33:41:33:49 | * | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | +| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | @@ -720,6 +896,10 @@ track | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | +| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | @@ -732,6 +912,8 @@ track | params_flow.rb:33:52:33:57 | Pair | type tracker without call steps | params_flow.rb:33:52:33:57 | Pair | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps | params_flow.rb:30:11:30:21 | ...[...] | +| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:30:5:30:22 | * | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element :p4 | params_flow.rb:25:1:31:3 | **kwargs | @@ -744,9 +926,13 @@ track | params_flow.rb:34:8:34:32 | call to [] | type tracker without call steps | params_flow.rb:34:8:34:32 | call to [] | | params_flow.rb:34:10:34:11 | :p3 | type tracker without call steps | params_flow.rb:34:10:34:11 | :p3 | | params_flow.rb:34:10:34:22 | Pair | type tracker without call steps | params_flow.rb:34:10:34:22 | Pair | +| params_flow.rb:34:14:34:22 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:34:14:34:22 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:34:14:34:22 | * | type tracker without call steps | params_flow.rb:34:14:34:22 | * | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | +| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | @@ -758,6 +944,10 @@ track | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | +| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | @@ -772,6 +962,8 @@ track | params_flow.rb:34:25:34:30 | Pair | type tracker without call steps | params_flow.rb:34:25:34:30 | Pair | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps | params_flow.rb:30:11:30:21 | ...[...] | +| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:30:5:30:22 | * | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element :p4 | params_flow.rb:25:1:31:3 | **kwargs | @@ -786,10 +978,14 @@ track | params_flow.rb:35:1:35:29 | call to kwargs | type tracker without call steps | params_flow.rb:35:1:35:29 | call to kwargs | | params_flow.rb:35:8:35:9 | :p1 | type tracker without call steps | params_flow.rb:35:8:35:9 | :p1 | | params_flow.rb:35:8:35:20 | Pair | type tracker without call steps | params_flow.rb:35:8:35:20 | Pair | +| params_flow.rb:35:12:35:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:35:12:35:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:35:12:35:20 | * | type tracker without call steps | params_flow.rb:35:12:35:20 | * | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | +| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | @@ -801,6 +997,10 @@ track | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | @@ -819,10 +1019,14 @@ track | params_flow.rb:37:8:37:44 | call to [] | type tracker without call steps | params_flow.rb:37:8:37:44 | call to [] | | params_flow.rb:37:9:37:11 | :p1 | type tracker without call steps | params_flow.rb:37:9:37:11 | :p1 | | params_flow.rb:37:9:37:24 | Pair | type tracker without call steps | params_flow.rb:37:9:37:24 | Pair | +| params_flow.rb:37:16:37:24 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:37:16:37:24 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:37:16:37:24 | * | type tracker without call steps | params_flow.rb:37:16:37:24 | * | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | +| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | @@ -836,6 +1040,10 @@ track | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | +| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | @@ -849,9 +1057,13 @@ track | params_flow.rb:37:22:37:23 | 14 | type tracker without call steps with content element :p1 | params_flow.rb:38:8:38:13 | ** ... | | params_flow.rb:37:27:37:29 | :p2 | type tracker without call steps | params_flow.rb:37:27:37:29 | :p2 | | params_flow.rb:37:27:37:42 | Pair | type tracker without call steps | params_flow.rb:37:27:37:42 | Pair | +| params_flow.rb:37:34:37:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:37:34:37:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:37:34:37:42 | * | type tracker without call steps | params_flow.rb:37:34:37:42 | * | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | +| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | @@ -863,6 +1075,10 @@ track | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | +| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | @@ -883,9 +1099,13 @@ track | params_flow.rb:40:8:40:26 | call to [] | type tracker without call steps | params_flow.rb:40:8:40:26 | call to [] | | params_flow.rb:40:9:40:11 | :p1 | type tracker without call steps | params_flow.rb:40:9:40:11 | :p1 | | params_flow.rb:40:9:40:24 | Pair | type tracker without call steps | params_flow.rb:40:9:40:24 | Pair | +| params_flow.rb:40:16:40:24 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:40:16:40:24 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:40:16:40:24 | * | type tracker without call steps | params_flow.rb:40:16:40:24 | * | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | +| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -896,6 +1116,10 @@ track | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | +| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -910,9 +1134,13 @@ track | params_flow.rb:41:1:41:30 | call to keyword | type tracker without call steps | params_flow.rb:41:1:41:30 | call to keyword | | params_flow.rb:41:9:41:10 | :p2 | type tracker without call steps | params_flow.rb:41:9:41:10 | :p2 | | params_flow.rb:41:9:41:21 | Pair | type tracker without call steps | params_flow.rb:41:9:41:21 | Pair | +| params_flow.rb:41:13:41:21 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:41:13:41:21 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:41:13:41:21 | * | type tracker without call steps | params_flow.rb:41:13:41:21 | * | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | +| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -921,6 +1149,10 @@ track | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | +| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -933,108 +1165,126 @@ track | params_flow.rb:43:1:43:4 | args | type tracker without call steps | params_flow.rb:43:1:43:4 | args | | params_flow.rb:43:8:43:18 | * | type tracker without call steps | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:8:43:18 | Array | type tracker without call steps | params_flow.rb:43:8:43:18 | Array | -| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps | params_flow.rb:43:8:43:18 | call to [] | +| params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | +| params_flow.rb:43:9:43:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:43:9:43:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:43:9:43:17 | * | type tracker without call steps | params_flow.rb:43:9:43:17 | * | -| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | +| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:43:8:43:18 | call to [] | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:43:15:43:16 | 17 | +| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 | params_flow.rb:43:9:43:17 | * | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 or unknown | params_flow.rb:43:8:43:18 | call to [] | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | +| params_flow.rb:44:1:44:28 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:44:1:44:28 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:44:1:44:28 | * | type tracker without call steps | params_flow.rb:44:1:44:28 | * | +| params_flow.rb:44:1:44:28 | *[1] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | +| params_flow.rb:44:1:44:28 | *[2] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[2] | +| params_flow.rb:44:1:44:28 | *[3] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[3] | +| params_flow.rb:44:1:44:28 | *[4] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[4] | +| params_flow.rb:44:1:44:28 | *[5] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[5] | +| params_flow.rb:44:1:44:28 | *[6] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[6] | +| params_flow.rb:44:1:44:28 | *[7] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[7] | +| params_flow.rb:44:1:44:28 | *[8] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[8] | +| params_flow.rb:44:1:44:28 | *[9] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[9] | +| params_flow.rb:44:1:44:28 | *[10] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[10] | +| params_flow.rb:44:1:44:28 | *[-1] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[-1] | | params_flow.rb:44:1:44:28 | call to positional | type tracker without call steps | params_flow.rb:44:1:44:28 | call to positional | +| params_flow.rb:44:12:44:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:44:12:44:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:44:12:44:20 | * | type tracker without call steps | params_flow.rb:44:12:44:20 | * | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:44:12:44:20 | call to taint | type tracker without call steps | params_flow.rb:44:12:44:20 | call to taint | +| params_flow.rb:44:12:44:20 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:44:1:44:28 | * | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:44:18:44:19 | 16 | type tracker without call steps | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:44:18:44:19 | 16 | type tracker without call steps | params_flow.rb:44:18:44:19 | 16 | +| params_flow.rb:44:18:44:19 | 16 | type tracker without call steps with content element 0 | params_flow.rb:44:1:44:28 | * | | params_flow.rb:44:18:44:19 | 16 | type tracker without call steps with content element 0 | params_flow.rb:44:12:44:20 | * | -| params_flow.rb:44:23:44:27 | * ... | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:23:44:27 | * ... | type tracker without call steps | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:46:1:46:4 | args | type tracker without call steps | params_flow.rb:46:1:46:4 | args | | params_flow.rb:46:8:46:29 | * | type tracker without call steps | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:8:46:29 | Array | type tracker without call steps | params_flow.rb:46:8:46:29 | Array | -| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:46:8:46:29 | call to [] | type tracker without call steps | params_flow.rb:46:8:46:29 | call to [] | +| params_flow.rb:46:8:46:29 | call to [] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[0] | | params_flow.rb:46:8:46:29 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:46:9:46:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:46:9:46:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:9:46:17 | * | type tracker without call steps | params_flow.rb:46:9:46:17 | * | -| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps | params_flow.rb:46:9:46:17 | call to taint | +| params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps | params_flow.rb:47:1:47:17 | *[0] | | params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:46:15:46:16 | 18 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps | params_flow.rb:46:15:46:16 | 18 | +| params_flow.rb:46:15:46:16 | 18 | type tracker without call steps | params_flow.rb:47:1:47:17 | *[0] | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 | params_flow.rb:46:9:46:17 | * | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 or unknown | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:46:20:46:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:46:20:46:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:20:46:28 | * | type tracker without call steps | params_flow.rb:46:20:46:28 | * | -| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps | params_flow.rb:46:20:46:28 | call to taint | +| params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:46:26:46:27 | 19 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 1 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps | params_flow.rb:46:20:46:28 | call to taint | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps | params_flow.rb:46:26:46:27 | 19 | +| params_flow.rb:46:26:46:27 | 19 | type tracker without call steps | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 0 | params_flow.rb:46:20:46:28 | * | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 or unknown | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 or unknown | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:47:1:47:17 | *[0] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[0] | +| params_flow.rb:47:1:47:17 | *[1] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[1] | +| params_flow.rb:47:1:47:17 | *[2] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[2] | +| params_flow.rb:47:1:47:17 | *[3] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[3] | +| params_flow.rb:47:1:47:17 | *[4] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[4] | +| params_flow.rb:47:1:47:17 | *[5] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[5] | +| params_flow.rb:47:1:47:17 | *[6] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[6] | +| params_flow.rb:47:1:47:17 | *[7] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[7] | +| params_flow.rb:47:1:47:17 | *[8] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[8] | +| params_flow.rb:47:1:47:17 | *[9] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[9] | +| params_flow.rb:47:1:47:17 | *[10] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[10] | +| params_flow.rb:47:1:47:17 | *[-1] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[-1] | | params_flow.rb:47:1:47:17 | call to positional | type tracker without call steps | params_flow.rb:47:1:47:17 | call to positional | -| params_flow.rb:47:12:47:16 | * ... | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:47:12:47:16 | * ... | type tracker without call steps | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:49:1:53:3 | &block | type tracker without call steps | params_flow.rb:49:1:53:3 | &block | | params_flow.rb:49:1:53:3 | posargs | type tracker without call steps | params_flow.rb:49:1:53:3 | posargs | @@ -1042,26 +1292,34 @@ track | params_flow.rb:49:1:53:3 | self in posargs | type tracker without call steps | params_flow.rb:49:1:53:3 | self in posargs | | params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:49:13:49:14 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:49:13:49:14 | p1 | type tracker without call steps | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:49:13:49:14 | p1 | type tracker without call steps | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:49:13:49:14 | p1 | type tracker without call steps with content element 0 | params_flow.rb:50:5:50:11 | * | | params_flow.rb:49:17:49:24 | *posargs | type tracker without call steps | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:49:18:49:24 | posargs | type tracker without call steps | params_flow.rb:49:18:49:24 | posargs | +| params_flow.rb:50:5:50:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:50:5:50:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:50:5:50:11 | * | type tracker without call steps | params_flow.rb:50:5:50:11 | * | | params_flow.rb:50:5:50:11 | call to sink | type tracker without call steps | params_flow.rb:50:5:50:11 | call to sink | +| params_flow.rb:51:5:51:21 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:51:5:51:21 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:51:5:51:21 | * | type tracker without call steps | params_flow.rb:51:5:51:21 | * | | params_flow.rb:51:5:51:21 | call to sink | type tracker without call steps | params_flow.rb:51:5:51:21 | call to sink | | params_flow.rb:51:11:51:20 | * | type tracker without call steps | params_flow.rb:51:11:51:20 | * | | params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:51:11:51:20 | ...[...] | type tracker without call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:51:11:51:20 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:51:5:51:21 | * | | params_flow.rb:51:19:51:19 | 0 | type tracker without call steps | params_flow.rb:51:19:51:19 | 0 | | params_flow.rb:51:19:51:19 | 0 | type tracker without call steps with content element 0 | params_flow.rb:51:11:51:20 | * | +| params_flow.rb:52:5:52:21 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:52:5:52:21 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:52:5:52:21 | * | type tracker without call steps | params_flow.rb:52:5:52:21 | * | | params_flow.rb:52:5:52:21 | call to sink | type tracker without call steps | params_flow.rb:52:5:52:21 | call to sink | | params_flow.rb:52:5:52:21 | call to sink | type tracker without call steps | params_flow.rb:55:1:55:29 | call to posargs | @@ -1069,48 +1327,77 @@ track | params_flow.rb:52:5:52:21 | call to sink | type tracker without call steps | params_flow.rb:61:1:61:14 | call to posargs | | params_flow.rb:52:11:52:20 | * | type tracker without call steps | params_flow.rb:52:11:52:20 | * | | params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:52:11:52:20 | ...[...] | type tracker without call steps | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:52:11:52:20 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:52:19:52:19 | 1 | type tracker without call steps | params_flow.rb:52:19:52:19 | 1 | | params_flow.rb:52:19:52:19 | 1 | type tracker without call steps with content element 0 | params_flow.rb:52:11:52:20 | * | | params_flow.rb:55:1:55:29 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:55:1:55:29 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:55:1:55:29 | * | type tracker without call steps | params_flow.rb:55:1:55:29 | * | | params_flow.rb:55:1:55:29 | call to posargs | type tracker without call steps | params_flow.rb:55:1:55:29 | call to posargs | +| params_flow.rb:55:9:55:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:55:9:55:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:55:9:55:17 | * | type tracker without call steps | params_flow.rb:55:9:55:17 | * | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | +| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | | params_flow.rb:55:9:55:17 | call to taint | type tracker without call steps | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:55:9:55:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:55:1:55:29 | * | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | | params_flow.rb:55:15:55:16 | 20 | type tracker without call steps | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:55:15:55:16 | 20 | type tracker without call steps | params_flow.rb:55:15:55:16 | 20 | | params_flow.rb:55:15:55:16 | 20 | type tracker without call steps with content element 0 | params_flow.rb:55:1:55:29 | * | | params_flow.rb:55:15:55:16 | 20 | type tracker without call steps with content element 0 | params_flow.rb:55:9:55:17 | * | +| params_flow.rb:55:20:55:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:55:20:55:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:55:20:55:28 | * | type tracker without call steps | params_flow.rb:55:20:55:28 | * | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:55:20:55:28 | call to taint | type tracker without call steps | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:55:20:55:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:55:1:55:29 | * | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:55:26:55:27 | 21 | type tracker without call steps | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:55:26:55:27 | 21 | type tracker without call steps | params_flow.rb:55:26:55:27 | 21 | | params_flow.rb:55:26:55:27 | 21 | type tracker without call steps with content element 0 | params_flow.rb:55:20:55:28 | * | @@ -1120,120 +1407,180 @@ track | params_flow.rb:57:8:57:18 | Array | type tracker without call steps | params_flow.rb:57:8:57:18 | Array | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | -| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps | params_flow.rb:57:8:57:18 | call to [] | +| params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | +| params_flow.rb:57:9:57:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:57:9:57:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:57:9:57:17 | * | type tracker without call steps | params_flow.rb:57:9:57:17 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | -| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | +| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:57:8:57:18 | call to [] | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps | params_flow.rb:57:15:57:16 | 22 | +| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | * | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 | params_flow.rb:57:9:57:17 | * | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 or unknown | params_flow.rb:57:8:57:18 | call to [] | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | +| params_flow.rb:58:1:58:25 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:58:1:58:25 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:58:1:58:25 | * | type tracker without call steps | params_flow.rb:58:1:58:25 | * | +| params_flow.rb:58:1:58:25 | *[1] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | +| params_flow.rb:58:1:58:25 | *[2] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[2] | +| params_flow.rb:58:1:58:25 | *[3] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[3] | +| params_flow.rb:58:1:58:25 | *[4] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[4] | +| params_flow.rb:58:1:58:25 | *[5] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[5] | +| params_flow.rb:58:1:58:25 | *[6] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[6] | +| params_flow.rb:58:1:58:25 | *[7] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[7] | +| params_flow.rb:58:1:58:25 | *[8] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[8] | +| params_flow.rb:58:1:58:25 | *[9] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[9] | +| params_flow.rb:58:1:58:25 | *[10] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[10] | +| params_flow.rb:58:1:58:25 | *[-1] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[-1] | | params_flow.rb:58:1:58:25 | call to posargs | type tracker without call steps | params_flow.rb:58:1:58:25 | call to posargs | +| params_flow.rb:58:9:58:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:58:9:58:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:58:9:58:17 | * | type tracker without call steps | params_flow.rb:58:9:58:17 | * | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | | params_flow.rb:58:9:58:17 | call to taint | type tracker without call steps | params_flow.rb:58:9:58:17 | call to taint | +| params_flow.rb:58:9:58:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:58:1:58:25 | * | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | | params_flow.rb:58:15:58:16 | 23 | type tracker without call steps | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:58:15:58:16 | 23 | type tracker without call steps | params_flow.rb:58:15:58:16 | 23 | +| params_flow.rb:58:15:58:16 | 23 | type tracker without call steps with content element 0 | params_flow.rb:58:1:58:25 | * | | params_flow.rb:58:15:58:16 | 23 | type tracker without call steps with content element 0 | params_flow.rb:58:9:58:17 | * | -| params_flow.rb:58:20:58:24 | * ... | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:58:20:58:24 | * ... | type tracker with call steps | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:58:20:58:24 | * ... | type tracker without call steps | params_flow.rb:58:20:58:24 | * ... | | params_flow.rb:60:1:60:4 | args | type tracker without call steps | params_flow.rb:60:1:60:4 | args | | params_flow.rb:60:8:60:29 | * | type tracker without call steps | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:8:60:29 | Array | type tracker without call steps | params_flow.rb:60:8:60:29 | Array | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:60:8:60:29 | call to [] | type tracker without call steps | params_flow.rb:60:8:60:29 | call to [] | +| params_flow.rb:60:8:60:29 | call to [] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[0] | | params_flow.rb:60:8:60:29 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:60:9:60:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:60:9:60:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:9:60:17 | * | type tracker without call steps | params_flow.rb:60:9:60:17 | * | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps | params_flow.rb:60:9:60:17 | call to taint | +| params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps | params_flow.rb:61:1:61:14 | *[0] | | params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:60:8:60:29 | call to [] | | params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps | params_flow.rb:60:15:60:16 | 24 | +| params_flow.rb:60:15:60:16 | 24 | type tracker without call steps | params_flow.rb:61:1:61:14 | *[0] | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 | params_flow.rb:60:9:60:17 | * | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 or unknown | params_flow.rb:60:8:60:29 | call to [] | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:60:20:60:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:60:20:60:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:20:60:28 | * | type tracker without call steps | params_flow.rb:60:20:60:28 | * | -| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps | params_flow.rb:60:20:60:28 | call to taint | +| params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:60:8:60:29 | call to [] | | params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:60:26:60:27 | 25 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 1 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps | params_flow.rb:60:20:60:28 | call to taint | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps | params_flow.rb:60:26:60:27 | 25 | +| params_flow.rb:60:26:60:27 | 25 | type tracker without call steps | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 0 | params_flow.rb:60:20:60:28 | * | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 or unknown | params_flow.rb:60:8:60:29 | call to [] | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 or unknown | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:61:1:61:14 | *[0] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[0] | +| params_flow.rb:61:1:61:14 | *[1] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[1] | +| params_flow.rb:61:1:61:14 | *[2] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[2] | +| params_flow.rb:61:1:61:14 | *[3] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[3] | +| params_flow.rb:61:1:61:14 | *[4] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[4] | +| params_flow.rb:61:1:61:14 | *[5] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[5] | +| params_flow.rb:61:1:61:14 | *[6] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[6] | +| params_flow.rb:61:1:61:14 | *[7] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[7] | +| params_flow.rb:61:1:61:14 | *[8] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[8] | +| params_flow.rb:61:1:61:14 | *[9] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[9] | +| params_flow.rb:61:1:61:14 | *[10] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[10] | +| params_flow.rb:61:1:61:14 | *[-1] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[-1] | | params_flow.rb:61:1:61:14 | call to posargs | type tracker without call steps | params_flow.rb:61:1:61:14 | call to posargs | -| params_flow.rb:61:9:61:13 | * ... | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:61:9:61:13 | * ... | type tracker without call steps | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:63:1:63:4 | args | type tracker without call steps | params_flow.rb:63:1:63:4 | args | +| params_flow.rb:63:8:63:16 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:63:8:63:16 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:63:8:63:16 | * | type tracker without call steps | params_flow.rb:63:8:63:16 | * | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps | params_flow.rb:65:10:65:13 | ...[...] | +| params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:65:5:65:13 | * | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:63:8:63:16 | call to taint | type tracker without call steps | params_flow.rb:63:8:63:16 | call to taint | +| params_flow.rb:63:8:63:16 | call to taint | type tracker without call steps | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:63:8:63:16 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:67:12:67:16 | * ... | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps | params_flow.rb:65:10:65:13 | ...[...] | +| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:65:5:65:13 | * | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps | params_flow.rb:63:14:63:15 | 26 | +| params_flow.rb:63:14:63:15 | 26 | type tracker without call steps | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps with content element 0 | params_flow.rb:63:8:63:16 | * | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps with content element 0 or unknown | params_flow.rb:67:12:67:16 | * ... | | params_flow.rb:64:1:66:3 | &block | type tracker without call steps | params_flow.rb:64:1:66:3 | &block | @@ -1243,16 +1590,32 @@ track | params_flow.rb:64:1:66:3 | synthetic *args | type tracker without call steps | params_flow.rb:64:1:66:3 | synthetic *args | | params_flow.rb:64:16:64:17 | *x | type tracker without call steps | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:64:17:64:17 | x | type tracker without call steps | params_flow.rb:64:17:64:17 | x | +| params_flow.rb:65:5:65:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:65:5:65:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:65:5:65:13 | * | type tracker without call steps | params_flow.rb:65:5:65:13 | * | | params_flow.rb:65:5:65:13 | call to sink | type tracker without call steps | params_flow.rb:65:5:65:13 | call to sink | | params_flow.rb:65:5:65:13 | call to sink | type tracker without call steps | params_flow.rb:67:1:67:17 | call to splatstuff | | params_flow.rb:65:10:65:13 | * | type tracker without call steps | params_flow.rb:65:10:65:13 | * | | params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:65:10:65:13 | ...[...] | type tracker without call steps | params_flow.rb:65:10:65:13 | ...[...] | | params_flow.rb:65:10:65:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:65:5:65:13 | * | | params_flow.rb:65:12:65:12 | 0 | type tracker without call steps | params_flow.rb:65:12:65:12 | 0 | | params_flow.rb:65:12:65:12 | 0 | type tracker without call steps with content element 0 | params_flow.rb:65:10:65:13 | * | +| params_flow.rb:67:1:67:17 | *[0] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[0] | +| params_flow.rb:67:1:67:17 | *[1] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[1] | +| params_flow.rb:67:1:67:17 | *[2] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[2] | +| params_flow.rb:67:1:67:17 | *[3] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[3] | +| params_flow.rb:67:1:67:17 | *[4] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[4] | +| params_flow.rb:67:1:67:17 | *[5] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[5] | +| params_flow.rb:67:1:67:17 | *[6] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[6] | +| params_flow.rb:67:1:67:17 | *[7] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[7] | +| params_flow.rb:67:1:67:17 | *[8] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[8] | +| params_flow.rb:67:1:67:17 | *[9] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[9] | +| params_flow.rb:67:1:67:17 | *[10] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[10] | +| params_flow.rb:67:1:67:17 | *[-1] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[-1] | | params_flow.rb:67:1:67:17 | call to splatstuff | type tracker without call steps | params_flow.rb:67:1:67:17 | call to splatstuff | | params_flow.rb:67:12:67:16 | * ... | type tracker with call steps | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:67:12:67:16 | * ... | type tracker without call steps | params_flow.rb:67:12:67:16 | * ... | @@ -1262,13 +1625,16 @@ track | params_flow.rb:69:1:76:3 | splatmid | type tracker without call steps | params_flow.rb:69:1:76:3 | splatmid | | params_flow.rb:69:1:76:3 | synthetic *args | type tracker without call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:69:1:76:3 | synthetic *args | type tracker without call steps | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:69:1:76:3 | synthetic *args | type tracker without call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:69:14:69:14 | x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:69:14:69:14 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:69:14:69:14 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:69:14:69:14 | x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:69:14:69:14 | x | type tracker without call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:69:14:69:14 | x | type tracker without call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:69:14:69:14 | x | type tracker without call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:69:17:69:17 | y | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:69:17:69:17 | y | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:69:17:69:17 | y | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:69:17:69:17 | y | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:69:17:69:17 | y | type tracker without call steps | params_flow.rb:69:17:69:17 | y | | params_flow.rb:69:17:69:17 | y | type tracker without call steps | params_flow.rb:69:17:69:17 | y | @@ -1276,114 +1642,192 @@ track | params_flow.rb:69:20:69:21 | *z | type tracker without call steps | params_flow.rb:69:20:69:21 | *z | | params_flow.rb:69:21:69:21 | z | type tracker without call steps | params_flow.rb:69:21:69:21 | z | | params_flow.rb:69:24:69:24 | w | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:69:24:69:24 | w | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:69:24:69:24 | w | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:69:24:69:24 | w | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:69:24:69:24 | w | type tracker without call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:69:24:69:24 | w | type tracker without call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:69:24:69:24 | w | type tracker without call steps with content element 0 | params_flow.rb:74:5:74:10 | * | | params_flow.rb:69:27:69:27 | r | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:69:27:69:27 | r | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:69:27:69:27 | r | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:69:27:69:27 | r | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:69:27:69:27 | r | type tracker without call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:69:27:69:27 | r | type tracker without call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:69:27:69:27 | r | type tracker without call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:70:5:70:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:70:5:70:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:70:5:70:10 | * | type tracker without call steps | params_flow.rb:70:5:70:10 | * | | params_flow.rb:70:5:70:10 | call to sink | type tracker without call steps | params_flow.rb:70:5:70:10 | call to sink | +| params_flow.rb:71:5:71:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:71:5:71:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:71:5:71:10 | * | type tracker without call steps | params_flow.rb:71:5:71:10 | * | | params_flow.rb:71:5:71:10 | call to sink | type tracker without call steps | params_flow.rb:71:5:71:10 | call to sink | +| params_flow.rb:72:5:72:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:72:5:72:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:72:5:72:13 | * | type tracker without call steps | params_flow.rb:72:5:72:13 | * | | params_flow.rb:72:5:72:13 | call to sink | type tracker without call steps | params_flow.rb:72:5:72:13 | call to sink | | params_flow.rb:72:10:72:13 | * | type tracker without call steps | params_flow.rb:72:10:72:13 | * | | params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:72:10:72:13 | ...[...] | type tracker without call steps | params_flow.rb:72:10:72:13 | ...[...] | | params_flow.rb:72:10:72:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:72:5:72:13 | * | | params_flow.rb:72:12:72:12 | 0 | type tracker without call steps | params_flow.rb:72:12:72:12 | 0 | | params_flow.rb:72:12:72:12 | 0 | type tracker without call steps with content element 0 | params_flow.rb:72:10:72:13 | * | +| params_flow.rb:73:5:73:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:73:5:73:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:73:5:73:13 | * | type tracker without call steps | params_flow.rb:73:5:73:13 | * | | params_flow.rb:73:5:73:13 | call to sink | type tracker without call steps | params_flow.rb:73:5:73:13 | call to sink | | params_flow.rb:73:10:73:13 | * | type tracker without call steps | params_flow.rb:73:10:73:13 | * | | params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:73:10:73:13 | ...[...] | type tracker without call steps | params_flow.rb:73:10:73:13 | ...[...] | | params_flow.rb:73:10:73:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:73:5:73:13 | * | | params_flow.rb:73:12:73:12 | 1 | type tracker without call steps | params_flow.rb:73:12:73:12 | 1 | | params_flow.rb:73:12:73:12 | 1 | type tracker without call steps with content element 0 | params_flow.rb:73:10:73:13 | * | +| params_flow.rb:74:5:74:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:74:5:74:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:74:5:74:10 | * | type tracker without call steps | params_flow.rb:74:5:74:10 | * | | params_flow.rb:74:5:74:10 | call to sink | type tracker without call steps | params_flow.rb:74:5:74:10 | call to sink | +| params_flow.rb:75:5:75:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:75:5:75:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:75:5:75:10 | * | type tracker without call steps | params_flow.rb:75:5:75:10 | * | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:75:5:75:10 | call to sink | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:78:1:78:63 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:81:1:81:37 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:96:1:96:88 | call to splatmid | +| params_flow.rb:78:1:78:63 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:1:78:63 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:1:78:63 | * | type tracker without call steps | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:1:78:63 | call to splatmid | type tracker without call steps | params_flow.rb:78:1:78:63 | call to splatmid | +| params_flow.rb:78:10:78:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:10:78:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:10:78:18 | * | type tracker without call steps | params_flow.rb:78:10:78:18 | * | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps | params_flow.rb:69:14:69:14 | x | +| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:78:10:78:18 | call to taint | type tracker without call steps | params_flow.rb:78:10:78:18 | call to taint | | params_flow.rb:78:10:78:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps | params_flow.rb:69:14:69:14 | x | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:78:16:78:17 | 27 | type tracker without call steps | params_flow.rb:78:10:78:18 | call to taint | | params_flow.rb:78:16:78:17 | 27 | type tracker without call steps | params_flow.rb:78:16:78:17 | 27 | | params_flow.rb:78:16:78:17 | 27 | type tracker without call steps with content element 0 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:16:78:17 | 27 | type tracker without call steps with content element 0 | params_flow.rb:78:10:78:18 | * | +| params_flow.rb:78:21:78:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:21:78:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:21:78:29 | * | type tracker without call steps | params_flow.rb:78:21:78:29 | * | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:21:78:29 | call to taint | type tracker without call steps | params_flow.rb:78:21:78:29 | call to taint | | params_flow.rb:78:21:78:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:27:78:28 | 28 | type tracker without call steps | params_flow.rb:78:21:78:29 | call to taint | | params_flow.rb:78:27:78:28 | 28 | type tracker without call steps | params_flow.rb:78:27:78:28 | 28 | | params_flow.rb:78:27:78:28 | 28 | type tracker without call steps with content element 0 | params_flow.rb:78:21:78:29 | * | | params_flow.rb:78:27:78:28 | 28 | type tracker without call steps with content element 1 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:78:32:78:40 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:32:78:40 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:32:78:40 | * | type tracker without call steps | params_flow.rb:78:32:78:40 | * | +| params_flow.rb:78:32:78:40 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:32:78:40 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:32:78:40 | call to taint | type tracker without call steps | params_flow.rb:78:32:78:40 | call to taint | | params_flow.rb:78:32:78:40 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:38:78:39 | 29 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:38:78:39 | 29 | type tracker without call steps | params_flow.rb:78:32:78:40 | call to taint | | params_flow.rb:78:38:78:39 | 29 | type tracker without call steps | params_flow.rb:78:38:78:39 | 29 | | params_flow.rb:78:38:78:39 | 29 | type tracker without call steps with content element 0 | params_flow.rb:78:32:78:40 | * | | params_flow.rb:78:38:78:39 | 29 | type tracker without call steps with content element 2 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:78:43:78:51 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:43:78:51 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:43:78:51 | * | type tracker without call steps | params_flow.rb:78:43:78:51 | * | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:43:78:51 | call to taint | type tracker without call steps | params_flow.rb:78:43:78:51 | call to taint | | params_flow.rb:78:43:78:51 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:49:78:50 | 30 | type tracker without call steps | params_flow.rb:78:43:78:51 | call to taint | | params_flow.rb:78:49:78:50 | 30 | type tracker without call steps | params_flow.rb:78:49:78:50 | 30 | | params_flow.rb:78:49:78:50 | 30 | type tracker without call steps with content element 0 | params_flow.rb:78:43:78:51 | * | | params_flow.rb:78:49:78:50 | 30 | type tracker without call steps with content element 3 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:78:54:78:62 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:54:78:62 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:54:78:62 | * | type tracker without call steps | params_flow.rb:78:54:78:62 | * | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:54:78:62 | call to taint | type tracker without call steps | params_flow.rb:78:54:78:62 | call to taint | | params_flow.rb:78:54:78:62 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:60:78:61 | 31 | type tracker without call steps | params_flow.rb:78:54:78:62 | call to taint | | params_flow.rb:78:60:78:61 | 31 | type tracker without call steps | params_flow.rb:78:60:78:61 | 31 | | params_flow.rb:78:60:78:61 | 31 | type tracker without call steps with content element 0 | params_flow.rb:78:54:78:62 | * | @@ -1391,170 +1835,222 @@ track | params_flow.rb:80:1:80:4 | args | type tracker without call steps | params_flow.rb:80:1:80:4 | args | | params_flow.rb:80:8:80:51 | * | type tracker without call steps | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:8:80:51 | Array | type tracker without call steps | params_flow.rb:80:8:80:51 | Array | -| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:9:80:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:9:80:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:9:80:17 | * | type tracker without call steps | params_flow.rb:80:9:80:17 | * | -| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps | params_flow.rb:80:9:80:17 | call to taint | +| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:80:15:80:16 | 33 | +| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 | params_flow.rb:80:9:80:17 | * | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:20:80:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:20:80:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:20:80:28 | * | type tracker without call steps | params_flow.rb:80:20:80:28 | * | -| params_flow.rb:80:20:80:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | +| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:26:80:27 | 34 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:80:26:80:27 | 34 | +| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 0 | params_flow.rb:80:20:80:28 | * | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:31:80:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:31:80:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:31:80:39 | * | type tracker without call steps | params_flow.rb:80:31:80:39 | * | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | +| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[3] | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:80:37:80:38 | 35 | +| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[3] | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 0 | params_flow.rb:80:31:80:39 | * | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:42:80:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:42:80:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:42:80:50 | * | type tracker without call steps | params_flow.rb:80:42:80:50 | * | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 3 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | +| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 3 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:80:48:80:49 | 36 | +| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 0 | params_flow.rb:80:42:80:50 | * | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:81:1:81:37 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:81:1:81:37 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:81:1:81:37 | * | type tracker without call steps | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:81:1:81:37 | *[1] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | +| params_flow.rb:81:1:81:37 | *[2] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | +| params_flow.rb:81:1:81:37 | *[3] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[3] | +| params_flow.rb:81:1:81:37 | *[4] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[4] | +| params_flow.rb:81:1:81:37 | *[5] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[5] | +| params_flow.rb:81:1:81:37 | *[6] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[6] | +| params_flow.rb:81:1:81:37 | *[7] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[7] | +| params_flow.rb:81:1:81:37 | *[8] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[8] | +| params_flow.rb:81:1:81:37 | *[9] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[9] | +| params_flow.rb:81:1:81:37 | *[10] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[10] | +| params_flow.rb:81:1:81:37 | *[-1] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[-1] | | params_flow.rb:81:1:81:37 | call to splatmid | type tracker without call steps | params_flow.rb:81:1:81:37 | call to splatmid | +| params_flow.rb:81:10:81:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:81:10:81:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:81:10:81:18 | * | type tracker without call steps | params_flow.rb:81:10:81:18 | * | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps | params_flow.rb:69:14:69:14 | x | +| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:81:10:81:18 | call to taint | type tracker without call steps | params_flow.rb:81:10:81:18 | call to taint | +| params_flow.rb:81:10:81:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps | params_flow.rb:69:14:69:14 | x | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps | params_flow.rb:81:16:81:17 | 32 | +| params_flow.rb:81:16:81:17 | 32 | type tracker without call steps with content element 0 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps with content element 0 | params_flow.rb:81:10:81:18 | * | -| params_flow.rb:81:21:81:25 | * ... | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:21:81:25 | * ... | type tracker without call steps | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:81:28:81:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:81:28:81:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:81:28:81:36 | * | type tracker without call steps | params_flow.rb:81:28:81:36 | * | +| params_flow.rb:81:28:81:36 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:81:28:81:36 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:28:81:36 | call to taint | type tracker without call steps | params_flow.rb:81:28:81:36 | call to taint | +| params_flow.rb:81:28:81:36 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:81:34:81:35 | 37 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:34:81:35 | 37 | type tracker without call steps | params_flow.rb:81:28:81:36 | call to taint | | params_flow.rb:81:34:81:35 | 37 | type tracker without call steps | params_flow.rb:81:34:81:35 | 37 | | params_flow.rb:81:34:81:35 | 37 | type tracker without call steps with content element 0 | params_flow.rb:81:28:81:36 | * | +| params_flow.rb:81:34:81:35 | 37 | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:83:1:91:3 | &block | type tracker without call steps | params_flow.rb:83:1:91:3 | &block | | params_flow.rb:83:1:91:3 | pos_many | type tracker without call steps | params_flow.rb:83:1:91:3 | pos_many | | params_flow.rb:83:1:91:3 | self in pos_many | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:83:1:91:3 | self in pos_many | type tracker without call steps | params_flow.rb:83:1:91:3 | self in pos_many | | params_flow.rb:83:1:91:3 | synthetic *args | type tracker without call steps | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:83:1:91:3 | synthetic *args | type tracker without call steps | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:83:1:91:3 | synthetic *args | type tracker without call steps | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:83:14:83:14 | t | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:83:14:83:14 | t | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:83:14:83:14 | t | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:14:83:14 | t | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:14:83:14 | t | type tracker without call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:83:14:83:14 | t | type tracker without call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:83:14:83:14 | t | type tracker without call steps with content element 0 | params_flow.rb:84:5:84:10 | * | | params_flow.rb:83:17:83:17 | u | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:83:17:83:17 | u | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:83:17:83:17 | u | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:17:83:17 | u | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:17:83:17 | u | type tracker without call steps | params_flow.rb:83:17:83:17 | u | | params_flow.rb:83:17:83:17 | u | type tracker without call steps | params_flow.rb:83:17:83:17 | u | | params_flow.rb:83:17:83:17 | u | type tracker without call steps with content element 0 | params_flow.rb:85:5:85:10 | * | | params_flow.rb:83:20:83:20 | v | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:83:20:83:20 | v | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:83:20:83:20 | v | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:20:83:20 | v | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:20:83:20 | v | type tracker without call steps | params_flow.rb:83:20:83:20 | v | | params_flow.rb:83:20:83:20 | v | type tracker without call steps | params_flow.rb:83:20:83:20 | v | | params_flow.rb:83:20:83:20 | v | type tracker without call steps with content element 0 | params_flow.rb:86:5:86:10 | * | | params_flow.rb:83:23:83:23 | w | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:83:23:83:23 | w | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:83:23:83:23 | w | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:23:83:23 | w | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:23:83:23 | w | type tracker without call steps | params_flow.rb:83:23:83:23 | w | | params_flow.rb:83:23:83:23 | w | type tracker without call steps | params_flow.rb:83:23:83:23 | w | | params_flow.rb:83:23:83:23 | w | type tracker without call steps with content element 0 | params_flow.rb:87:5:87:10 | * | | params_flow.rb:83:26:83:26 | x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:83:26:83:26 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:83:26:83:26 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:26:83:26 | x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:26:83:26 | x | type tracker without call steps | params_flow.rb:83:26:83:26 | x | | params_flow.rb:83:26:83:26 | x | type tracker without call steps | params_flow.rb:83:26:83:26 | x | | params_flow.rb:83:26:83:26 | x | type tracker without call steps with content element 0 | params_flow.rb:88:5:88:10 | * | | params_flow.rb:83:29:83:29 | y | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:83:29:83:29 | y | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:83:29:83:29 | y | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:29:83:29 | y | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:29:83:29 | y | type tracker without call steps | params_flow.rb:83:29:83:29 | y | | params_flow.rb:83:29:83:29 | y | type tracker without call steps | params_flow.rb:83:29:83:29 | y | | params_flow.rb:83:29:83:29 | y | type tracker without call steps with content element 0 | params_flow.rb:89:5:89:10 | * | | params_flow.rb:83:32:83:32 | z | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:83:32:83:32 | z | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:83:32:83:32 | z | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:32:83:32 | z | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:32:83:32 | z | type tracker without call steps | params_flow.rb:83:32:83:32 | z | | params_flow.rb:83:32:83:32 | z | type tracker without call steps | params_flow.rb:83:32:83:32 | z | | params_flow.rb:83:32:83:32 | z | type tracker without call steps with content element 0 | params_flow.rb:90:5:90:10 | * | +| params_flow.rb:84:5:84:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:84:5:84:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:84:5:84:10 | * | type tracker without call steps | params_flow.rb:84:5:84:10 | * | | params_flow.rb:84:5:84:10 | call to sink | type tracker without call steps | params_flow.rb:84:5:84:10 | call to sink | +| params_flow.rb:85:5:85:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:85:5:85:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:85:5:85:10 | * | type tracker without call steps | params_flow.rb:85:5:85:10 | * | | params_flow.rb:85:5:85:10 | call to sink | type tracker without call steps | params_flow.rb:85:5:85:10 | call to sink | +| params_flow.rb:86:5:86:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:86:5:86:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:86:5:86:10 | * | type tracker without call steps | params_flow.rb:86:5:86:10 | * | | params_flow.rb:86:5:86:10 | call to sink | type tracker without call steps | params_flow.rb:86:5:86:10 | call to sink | +| params_flow.rb:87:5:87:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:87:5:87:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:87:5:87:10 | * | type tracker without call steps | params_flow.rb:87:5:87:10 | * | | params_flow.rb:87:5:87:10 | call to sink | type tracker without call steps | params_flow.rb:87:5:87:10 | call to sink | +| params_flow.rb:88:5:88:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:88:5:88:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:88:5:88:10 | * | type tracker without call steps | params_flow.rb:88:5:88:10 | * | | params_flow.rb:88:5:88:10 | call to sink | type tracker without call steps | params_flow.rb:88:5:88:10 | call to sink | +| params_flow.rb:89:5:89:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:89:5:89:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:89:5:89:10 | * | type tracker without call steps | params_flow.rb:89:5:89:10 | * | | params_flow.rb:89:5:89:10 | call to sink | type tracker without call steps | params_flow.rb:89:5:89:10 | call to sink | +| params_flow.rb:90:5:90:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:90:5:90:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:90:5:90:10 | * | type tracker without call steps | params_flow.rb:90:5:90:10 | * | | params_flow.rb:90:5:90:10 | call to sink | type tracker without call steps | params_flow.rb:90:5:90:10 | call to sink | | params_flow.rb:90:5:90:10 | call to sink | type tracker without call steps | params_flow.rb:94:1:94:48 | call to pos_many | @@ -1562,276 +2058,375 @@ track | params_flow.rb:93:1:93:4 | args | type tracker without call steps | params_flow.rb:93:1:93:4 | args | | params_flow.rb:93:8:93:51 | * | type tracker without call steps | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:8:93:51 | Array | type tracker without call steps | params_flow.rb:93:8:93:51 | Array | -| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | -| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:9:93:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:9:93:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:9:93:17 | * | type tracker without call steps | params_flow.rb:93:9:93:17 | * | -| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | -| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | +| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:93:15:93:16 | 40 | +| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 | params_flow.rb:93:9:93:17 | * | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:20:93:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:20:93:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:20:93:28 | * | type tracker without call steps | params_flow.rb:93:20:93:28 | * | -| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | -| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | +| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:93:26:93:27 | 41 | +| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 0 | params_flow.rb:93:20:93:28 | * | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:31:93:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:31:93:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:31:93:39 | * | type tracker without call steps | params_flow.rb:93:31:93:39 | * | -| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | -| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 2 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | +| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[4] | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 2 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:93:37:93:38 | 42 | +| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[4] | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 0 | params_flow.rb:93:31:93:39 | * | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:42:93:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:42:93:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:42:93:50 | * | type tracker without call steps | params_flow.rb:93:42:93:50 | * | -| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | -| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 3 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | +| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 3 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:93:48:93:49 | 43 | +| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 0 | params_flow.rb:93:42:93:50 | * | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:94:1:94:48 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:1:94:48 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:1:94:48 | * | type tracker without call steps | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:94:1:94:48 | *[2] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | +| params_flow.rb:94:1:94:48 | *[3] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | +| params_flow.rb:94:1:94:48 | *[4] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[4] | +| params_flow.rb:94:1:94:48 | *[5] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[5] | +| params_flow.rb:94:1:94:48 | *[6] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[6] | +| params_flow.rb:94:1:94:48 | *[7] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[7] | +| params_flow.rb:94:1:94:48 | *[8] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[8] | +| params_flow.rb:94:1:94:48 | *[9] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[9] | +| params_flow.rb:94:1:94:48 | *[10] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[10] | +| params_flow.rb:94:1:94:48 | *[-1] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[-1] | | params_flow.rb:94:1:94:48 | call to pos_many | type tracker without call steps | params_flow.rb:94:1:94:48 | call to pos_many | +| params_flow.rb:94:10:94:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:10:94:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:10:94:18 | * | type tracker without call steps | params_flow.rb:94:10:94:18 | * | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | | params_flow.rb:94:10:94:18 | call to taint | type tracker without call steps | params_flow.rb:94:10:94:18 | call to taint | +| params_flow.rb:94:10:94:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | | params_flow.rb:94:16:94:17 | 38 | type tracker without call steps | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:94:16:94:17 | 38 | type tracker without call steps | params_flow.rb:94:16:94:17 | 38 | +| params_flow.rb:94:16:94:17 | 38 | type tracker without call steps with content element 0 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:16:94:17 | 38 | type tracker without call steps with content element 0 | params_flow.rb:94:10:94:18 | * | +| params_flow.rb:94:21:94:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:21:94:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:21:94:29 | * | type tracker without call steps | params_flow.rb:94:21:94:29 | * | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:21:94:29 | call to taint | type tracker without call steps | params_flow.rb:94:21:94:29 | call to taint | +| params_flow.rb:94:21:94:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps | params_flow.rb:94:27:94:28 | 39 | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps with content element 0 | params_flow.rb:94:21:94:29 | * | -| params_flow.rb:94:32:94:36 | * ... | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:27:94:28 | 39 | type tracker without call steps with content element 1 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:32:94:36 | * ... | type tracker without call steps | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:94:39:94:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:39:94:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:39:94:47 | * | type tracker without call steps | params_flow.rb:94:39:94:47 | * | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:39:94:47 | call to taint | type tracker without call steps | params_flow.rb:94:39:94:47 | call to taint | +| params_flow.rb:94:39:94:47 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:45:94:46 | 44 | type tracker without call steps | params_flow.rb:94:39:94:47 | call to taint | | params_flow.rb:94:45:94:46 | 44 | type tracker without call steps | params_flow.rb:94:45:94:46 | 44 | | params_flow.rb:94:45:94:46 | 44 | type tracker without call steps with content element 0 | params_flow.rb:94:39:94:47 | * | +| params_flow.rb:94:45:94:46 | 44 | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:96:1:96:88 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:1:96:88 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:1:96:88 | * | type tracker without call steps | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:1:96:88 | *[2] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | +| params_flow.rb:96:1:96:88 | *[3] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | +| params_flow.rb:96:1:96:88 | *[4] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[4] | +| params_flow.rb:96:1:96:88 | *[5] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[5] | +| params_flow.rb:96:1:96:88 | *[6] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[6] | +| params_flow.rb:96:1:96:88 | *[7] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[7] | +| params_flow.rb:96:1:96:88 | *[8] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[8] | +| params_flow.rb:96:1:96:88 | *[9] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[9] | +| params_flow.rb:96:1:96:88 | *[10] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[10] | +| params_flow.rb:96:1:96:88 | *[-1] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[-1] | | params_flow.rb:96:1:96:88 | call to splatmid | type tracker without call steps | params_flow.rb:96:1:96:88 | call to splatmid | +| params_flow.rb:96:10:96:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:10:96:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:10:96:18 | * | type tracker without call steps | params_flow.rb:96:10:96:18 | * | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps | params_flow.rb:69:14:69:14 | x | +| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:96:10:96:18 | call to taint | type tracker without call steps | params_flow.rb:96:10:96:18 | call to taint | +| params_flow.rb:96:10:96:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps | params_flow.rb:69:14:69:14 | x | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:96:16:96:17 | 45 | type tracker without call steps | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:96:16:96:17 | 45 | type tracker without call steps | params_flow.rb:96:16:96:17 | 45 | +| params_flow.rb:96:16:96:17 | 45 | type tracker without call steps with content element 0 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:16:96:17 | 45 | type tracker without call steps with content element 0 | params_flow.rb:96:10:96:18 | * | +| params_flow.rb:96:21:96:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:21:96:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:21:96:29 | * | type tracker without call steps | params_flow.rb:96:21:96:29 | * | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:21:96:29 | call to taint | type tracker without call steps | params_flow.rb:96:21:96:29 | call to taint | +| params_flow.rb:96:21:96:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps | params_flow.rb:96:27:96:28 | 46 | | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps with content element 0 | params_flow.rb:96:21:96:29 | * | -| params_flow.rb:96:32:96:65 | * ... | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:27:96:28 | 46 | type tracker without call steps with content element 1 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:32:96:65 | * ... | type tracker without call steps | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:33:96:65 | * | type tracker without call steps | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:33:96:65 | Array | type tracker without call steps | params_flow.rb:96:33:96:65 | Array | -| params_flow.rb:96:33:96:65 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:96:34:96:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:34:96:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:34:96:42 | * | type tracker without call steps | params_flow.rb:96:34:96:42 | * | -| params_flow.rb:96:34:96:42 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:40:96:41 | 47 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content element 0 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:40:96:41 | 47 | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 | params_flow.rb:96:34:96:42 | * | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:45:96:53 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:45:96:53 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:45:96:53 | * | type tracker without call steps | params_flow.rb:96:45:96:53 | * | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 1 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:51:96:52 | 48 | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 0 | params_flow.rb:96:45:96:53 | * | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:56:96:64 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:56:96:64 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:56:96:64 | * | type tracker without call steps | params_flow.rb:96:56:96:64 | * | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 2 or unknown | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:62:96:63 | 49 | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 0 | params_flow.rb:96:56:96:64 | * | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:68:96:76 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:68:96:76 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:68:96:76 | * | type tracker without call steps | params_flow.rb:96:68:96:76 | * | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:68:96:76 | call to taint | type tracker without call steps | params_flow.rb:96:68:96:76 | call to taint | +| params_flow.rb:96:68:96:76 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:74:96:75 | 50 | type tracker without call steps | params_flow.rb:96:68:96:76 | call to taint | | params_flow.rb:96:74:96:75 | 50 | type tracker without call steps | params_flow.rb:96:74:96:75 | 50 | | params_flow.rb:96:74:96:75 | 50 | type tracker without call steps with content element 0 | params_flow.rb:96:68:96:76 | * | +| params_flow.rb:96:74:96:75 | 50 | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:79:96:87 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:79:96:87 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:79:96:87 | * | type tracker without call steps | params_flow.rb:96:79:96:87 | * | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:79:96:87 | call to taint | type tracker without call steps | params_flow.rb:96:79:96:87 | call to taint | +| params_flow.rb:96:79:96:87 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:85:96:86 | 51 | type tracker without call steps | params_flow.rb:96:79:96:87 | call to taint | | params_flow.rb:96:85:96:86 | 51 | type tracker without call steps | params_flow.rb:96:85:96:86 | 51 | | params_flow.rb:96:85:96:86 | 51 | type tracker without call steps with content element 0 | params_flow.rb:96:79:96:87 | * | +| params_flow.rb:96:85:96:86 | 51 | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:98:1:103:3 | &block | type tracker without call steps | params_flow.rb:98:1:103:3 | &block | | params_flow.rb:98:1:103:3 | self in splatmidsmall | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:98:1:103:3 | self in splatmidsmall | type tracker without call steps | params_flow.rb:98:1:103:3 | self in splatmidsmall | | params_flow.rb:98:1:103:3 | splatmidsmall | type tracker without call steps | params_flow.rb:98:1:103:3 | splatmidsmall | | params_flow.rb:98:1:103:3 | synthetic *args | type tracker without call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:98:1:103:3 | synthetic *args | type tracker without call steps | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:98:1:103:3 | synthetic *args | type tracker without call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:98:19:98:19 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:98:19:98:19 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:98:19:98:19 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:98:19:98:19 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:98:19:98:19 | a | type tracker without call steps | params_flow.rb:98:19:98:19 | a | | params_flow.rb:98:19:98:19 | a | type tracker without call steps | params_flow.rb:98:19:98:19 | a | @@ -1839,130 +2434,205 @@ track | params_flow.rb:98:22:98:28 | *splats | type tracker without call steps | params_flow.rb:98:22:98:28 | *splats | | params_flow.rb:98:23:98:28 | splats | type tracker without call steps | params_flow.rb:98:23:98:28 | splats | | params_flow.rb:98:31:98:31 | b | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:98:31:98:31 | b | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:98:31:98:31 | b | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:98:31:98:31 | b | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:98:31:98:31 | b | type tracker without call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:98:31:98:31 | b | type tracker without call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:98:31:98:31 | b | type tracker without call steps with content element 0 | params_flow.rb:102:5:102:10 | * | +| params_flow.rb:99:5:99:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:99:5:99:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:99:5:99:10 | * | type tracker without call steps | params_flow.rb:99:5:99:10 | * | | params_flow.rb:99:5:99:10 | call to sink | type tracker without call steps | params_flow.rb:99:5:99:10 | call to sink | +| params_flow.rb:100:5:100:18 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:100:5:100:18 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:100:5:100:18 | * | type tracker without call steps | params_flow.rb:100:5:100:18 | * | | params_flow.rb:100:5:100:18 | call to sink | type tracker without call steps | params_flow.rb:100:5:100:18 | call to sink | | params_flow.rb:100:10:100:18 | * | type tracker without call steps | params_flow.rb:100:10:100:18 | * | | params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:100:10:100:18 | ...[...] | type tracker without call steps | params_flow.rb:100:10:100:18 | ...[...] | | params_flow.rb:100:10:100:18 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:100:5:100:18 | * | | params_flow.rb:100:17:100:17 | 0 | type tracker without call steps | params_flow.rb:100:17:100:17 | 0 | | params_flow.rb:100:17:100:17 | 0 | type tracker without call steps with content element 0 | params_flow.rb:100:10:100:18 | * | +| params_flow.rb:101:5:101:18 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:101:5:101:18 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:101:5:101:18 | * | type tracker without call steps | params_flow.rb:101:5:101:18 | * | | params_flow.rb:101:5:101:18 | call to sink | type tracker without call steps | params_flow.rb:101:5:101:18 | call to sink | | params_flow.rb:101:10:101:18 | * | type tracker without call steps | params_flow.rb:101:10:101:18 | * | | params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:101:10:101:18 | ...[...] | type tracker without call steps | params_flow.rb:101:10:101:18 | ...[...] | | params_flow.rb:101:10:101:18 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:101:5:101:18 | * | | params_flow.rb:101:17:101:17 | 1 | type tracker without call steps | params_flow.rb:101:17:101:17 | 1 | | params_flow.rb:101:17:101:17 | 1 | type tracker without call steps with content element 0 | params_flow.rb:101:10:101:18 | * | +| params_flow.rb:102:5:102:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:102:5:102:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:102:5:102:10 | * | type tracker without call steps | params_flow.rb:102:5:102:10 | * | | params_flow.rb:102:5:102:10 | call to sink | type tracker without call steps | params_flow.rb:102:5:102:10 | call to sink | | params_flow.rb:102:5:102:10 | call to sink | type tracker without call steps | params_flow.rb:105:1:105:49 | call to splatmidsmall | | params_flow.rb:102:5:102:10 | call to sink | type tracker without call steps | params_flow.rb:106:1:106:46 | call to splatmidsmall | +| params_flow.rb:105:1:105:49 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:1:105:49 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:1:105:49 | * | type tracker without call steps | params_flow.rb:105:1:105:49 | * | +| params_flow.rb:105:1:105:49 | *[1] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | +| params_flow.rb:105:1:105:49 | *[2] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | +| params_flow.rb:105:1:105:49 | *[3] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[3] | +| params_flow.rb:105:1:105:49 | *[4] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[4] | +| params_flow.rb:105:1:105:49 | *[5] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[5] | +| params_flow.rb:105:1:105:49 | *[6] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[6] | +| params_flow.rb:105:1:105:49 | *[7] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[7] | +| params_flow.rb:105:1:105:49 | *[8] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[8] | +| params_flow.rb:105:1:105:49 | *[9] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[9] | +| params_flow.rb:105:1:105:49 | *[10] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[10] | +| params_flow.rb:105:1:105:49 | *[-1] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[-1] | | params_flow.rb:105:1:105:49 | call to splatmidsmall | type tracker without call steps | params_flow.rb:105:1:105:49 | call to splatmidsmall | +| params_flow.rb:105:15:105:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:15:105:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:15:105:23 | * | type tracker without call steps | params_flow.rb:105:15:105:23 | * | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps | params_flow.rb:98:19:98:19 | a | +| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:105:15:105:23 | call to taint | type tracker without call steps | params_flow.rb:105:15:105:23 | call to taint | +| params_flow.rb:105:15:105:23 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:105:1:105:49 | * | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps | params_flow.rb:98:19:98:19 | a | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:105:21:105:22 | 52 | type tracker without call steps | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:105:21:105:22 | 52 | type tracker without call steps | params_flow.rb:105:21:105:22 | 52 | +| params_flow.rb:105:21:105:22 | 52 | type tracker without call steps with content element 0 | params_flow.rb:105:1:105:49 | * | | params_flow.rb:105:21:105:22 | 52 | type tracker without call steps with content element 0 | params_flow.rb:105:15:105:23 | * | -| params_flow.rb:105:26:105:48 | * ... | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:26:105:48 | * ... | type tracker without call steps | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:27:105:48 | * | type tracker without call steps | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:27:105:48 | Array | type tracker without call steps | params_flow.rb:105:27:105:48 | Array | -| params_flow.rb:105:27:105:48 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | +| params_flow.rb:105:28:105:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:28:105:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:28:105:36 | * | type tracker without call steps | params_flow.rb:105:28:105:36 | * | -| params_flow.rb:105:28:105:36 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:34:105:35 | 53 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content element 0 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:34:105:35 | 53 | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 | params_flow.rb:105:28:105:36 | * | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:39:105:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:39:105:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:39:105:47 | * | type tracker without call steps | params_flow.rb:105:39:105:47 | * | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 1 or unknown | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:45:105:46 | 54 | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 0 | params_flow.rb:105:39:105:47 | * | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:106:1:106:46 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:1:106:46 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:1:106:46 | * | type tracker without call steps | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:1:106:46 | call to splatmidsmall | type tracker without call steps | params_flow.rb:106:1:106:46 | call to splatmidsmall | +| params_flow.rb:106:15:106:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:15:106:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:15:106:23 | * | type tracker without call steps | params_flow.rb:106:15:106:23 | * | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps | params_flow.rb:98:19:98:19 | a | +| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:106:15:106:23 | call to taint | type tracker without call steps | params_flow.rb:106:15:106:23 | call to taint | | params_flow.rb:106:15:106:23 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps | params_flow.rb:98:19:98:19 | a | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:106:21:106:22 | 55 | type tracker without call steps | params_flow.rb:106:15:106:23 | call to taint | | params_flow.rb:106:21:106:22 | 55 | type tracker without call steps | params_flow.rb:106:21:106:22 | 55 | | params_flow.rb:106:21:106:22 | 55 | type tracker without call steps with content element 0 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:21:106:22 | 55 | type tracker without call steps with content element 0 | params_flow.rb:106:15:106:23 | * | +| params_flow.rb:106:26:106:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:26:106:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:26:106:34 | * | type tracker without call steps | params_flow.rb:106:26:106:34 | * | +| params_flow.rb:106:26:106:34 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:26:106:34 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:26:106:34 | call to taint | type tracker without call steps | params_flow.rb:106:26:106:34 | call to taint | | params_flow.rb:106:26:106:34 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:32:106:33 | 56 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:32:106:33 | 56 | type tracker without call steps | params_flow.rb:106:26:106:34 | call to taint | | params_flow.rb:106:32:106:33 | 56 | type tracker without call steps | params_flow.rb:106:32:106:33 | 56 | | params_flow.rb:106:32:106:33 | 56 | type tracker without call steps with content element 0 | params_flow.rb:106:26:106:34 | * | | params_flow.rb:106:32:106:33 | 56 | type tracker without call steps with content element 1 | params_flow.rb:106:1:106:46 | * | +| params_flow.rb:106:37:106:45 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:37:106:45 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:37:106:45 | * | type tracker without call steps | params_flow.rb:106:37:106:45 | * | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | +| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:37:106:45 | call to taint | type tracker without call steps | params_flow.rb:106:37:106:45 | call to taint | | params_flow.rb:106:37:106:45 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:43:106:44 | 57 | type tracker without call steps | params_flow.rb:106:37:106:45 | call to taint | | params_flow.rb:106:43:106:44 | 57 | type tracker without call steps | params_flow.rb:106:43:106:44 | 57 | | params_flow.rb:106:43:106:44 | 57 | type tracker without call steps with content element 0 | params_flow.rb:106:37:106:45 | * | @@ -1974,9 +2644,9 @@ track | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | type tracker without call steps | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | | params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:108:37:108:37 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:108:37:108:37 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:108:37:108:37 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:108:37:108:37 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:108:37:108:37 | a | type tracker without call steps | params_flow.rb:108:37:108:37 | a | | params_flow.rb:108:37:108:37 | a | type tracker without call steps | params_flow.rb:108:37:108:37 | a | @@ -1984,72 +2654,101 @@ track | params_flow.rb:108:40:108:41 | *b | type tracker without call steps | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:108:41:108:41 | b | type tracker without call steps | params_flow.rb:108:41:108:41 | b | | params_flow.rb:108:44:108:44 | c | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:108:44:108:44 | c | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:108:44:108:44 | c | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:108:44:108:44 | c | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:108:44:108:44 | c | type tracker without call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:108:44:108:44 | c | type tracker without call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:108:44:108:44 | c | type tracker without call steps with content element 0 | params_flow.rb:111:5:111:10 | * | +| params_flow.rb:109:5:109:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:109:5:109:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:109:5:109:10 | * | type tracker without call steps | params_flow.rb:109:5:109:10 | * | | params_flow.rb:109:5:109:10 | call to sink | type tracker without call steps | params_flow.rb:109:5:109:10 | call to sink | +| params_flow.rb:110:5:110:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:110:5:110:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:110:5:110:13 | * | type tracker without call steps | params_flow.rb:110:5:110:13 | * | | params_flow.rb:110:5:110:13 | call to sink | type tracker without call steps | params_flow.rb:110:5:110:13 | call to sink | | params_flow.rb:110:10:110:13 | * | type tracker without call steps | params_flow.rb:110:10:110:13 | * | | params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:110:10:110:13 | ...[...] | type tracker without call steps | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:110:10:110:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:110:5:110:13 | * | | params_flow.rb:110:12:110:12 | 0 | type tracker without call steps | params_flow.rb:110:12:110:12 | 0 | | params_flow.rb:110:12:110:12 | 0 | type tracker without call steps with content element 0 | params_flow.rb:110:10:110:13 | * | +| params_flow.rb:111:5:111:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:111:5:111:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:111:5:111:10 | * | type tracker without call steps | params_flow.rb:111:5:111:10 | * | | params_flow.rb:111:5:111:10 | call to sink | type tracker without call steps | params_flow.rb:111:5:111:10 | call to sink | | params_flow.rb:111:5:111:10 | call to sink | type tracker without call steps | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | | params_flow.rb:114:1:114:67 | * | type tracker with call steps | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:114:1:114:67 | * | type tracker with call steps | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:114:1:114:67 | * | type tracker without call steps | params_flow.rb:114:1:114:67 | * | | params_flow.rb:114:1:114:67 | ** | type tracker with call steps | params_flow.rb:108:1:112:3 | **kwargs | | params_flow.rb:114:1:114:67 | ** | type tracker without call steps | params_flow.rb:114:1:114:67 | ** | | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | type tracker without call steps | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | +| params_flow.rb:114:33:114:41 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:33:114:41 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:33:114:41 | * | type tracker without call steps | params_flow.rb:114:33:114:41 | * | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps | params_flow.rb:108:37:108:37 | a | +| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | +| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:109:5:109:10 | * | +| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | | params_flow.rb:114:33:114:41 | call to taint | type tracker without call steps | params_flow.rb:114:33:114:41 | call to taint | | params_flow.rb:114:33:114:41 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:114:1:114:67 | * | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps | params_flow.rb:108:37:108:37 | a | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:109:5:109:10 | * | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | | params_flow.rb:114:39:114:40 | 58 | type tracker without call steps | params_flow.rb:114:33:114:41 | call to taint | | params_flow.rb:114:39:114:40 | 58 | type tracker without call steps | params_flow.rb:114:39:114:40 | 58 | | params_flow.rb:114:39:114:40 | 58 | type tracker without call steps with content element 0 | params_flow.rb:114:1:114:67 | * | | params_flow.rb:114:39:114:40 | 58 | type tracker without call steps with content element 0 | params_flow.rb:114:33:114:41 | * | +| params_flow.rb:114:44:114:52 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:44:114:52 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:44:114:52 | * | type tracker without call steps | params_flow.rb:114:44:114:52 | * | -| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | -| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | -| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | | params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:114:44:114:52 | call to taint | type tracker without call steps | params_flow.rb:114:44:114:52 | call to taint | | params_flow.rb:114:44:114:52 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:114:1:114:67 | * | | params_flow.rb:114:50:114:51 | 59 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | -| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | -| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 1 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:114:50:114:51 | 59 | type tracker without call steps | params_flow.rb:114:44:114:52 | call to taint | | params_flow.rb:114:50:114:51 | 59 | type tracker without call steps | params_flow.rb:114:50:114:51 | 59 | | params_flow.rb:114:50:114:51 | 59 | type tracker without call steps with content element 0 | params_flow.rb:114:44:114:52 | * | | params_flow.rb:114:50:114:51 | 59 | type tracker without call steps with content element 1 | params_flow.rb:114:1:114:67 | * | | params_flow.rb:114:55:114:55 | :c | type tracker without call steps | params_flow.rb:114:55:114:55 | :c | | params_flow.rb:114:55:114:66 | Pair | type tracker without call steps | params_flow.rb:114:55:114:66 | Pair | +| params_flow.rb:114:58:114:66 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:58:114:66 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:58:114:66 | * | type tracker without call steps | params_flow.rb:114:58:114:66 | * | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps | params_flow.rb:108:44:108:44 | c | +| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:111:5:111:10 | * | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element :c | params_flow.rb:108:1:112:3 | **kwargs | @@ -2058,6 +2757,10 @@ track | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps | params_flow.rb:108:44:108:44 | c | +| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:111:5:111:10 | * | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element :c | params_flow.rb:108:1:112:3 | **kwargs | @@ -2067,117 +2770,143 @@ track | params_flow.rb:114:64:114:65 | 60 | type tracker without call steps with content element :c | params_flow.rb:114:1:114:67 | ** | | params_flow.rb:116:1:116:1 | x | type tracker without call steps | params_flow.rb:116:1:116:1 | x | | params_flow.rb:116:5:116:6 | Array | type tracker without call steps | params_flow.rb:116:5:116:6 | Array | -| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:116:5:116:6 | call to [] | type tracker without call steps | params_flow.rb:116:5:116:6 | call to [] | +| params_flow.rb:116:5:116:6 | call to [] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[0] | | params_flow.rb:116:5:116:6 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:118:12:118:13 | * ... | -| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:117:1:117:1 | [post] x | type tracker without call steps | params_flow.rb:117:1:117:1 | [post] x | +| params_flow.rb:117:1:117:1 | [post] x | type tracker without call steps | params_flow.rb:118:1:118:14 | *[0] | | params_flow.rb:117:1:117:1 | [post] x | type tracker without call steps with content element 0 or unknown | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:117:1:117:15 | * | type tracker without call steps | params_flow.rb:117:1:117:15 | * | | params_flow.rb:117:1:117:15 | call to []= | type tracker without call steps | params_flow.rb:117:1:117:15 | call to []= | | params_flow.rb:117:3:117:14 | call to some_index | type tracker without call steps | params_flow.rb:117:3:117:14 | call to some_index | | params_flow.rb:117:3:117:14 | call to some_index | type tracker without call steps with content element 0 | params_flow.rb:117:1:117:15 | * | +| params_flow.rb:117:19:117:27 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:117:19:117:27 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:117:19:117:27 | * | type tracker without call steps | params_flow.rb:117:19:117:27 | * | | params_flow.rb:117:19:117:27 | __synth__0 | type tracker without call steps | params_flow.rb:117:19:117:27 | __synth__0 | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps | params_flow.rb:117:19:117:27 | call to taint | +| params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content attribute [] | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content element | params_flow.rb:116:5:116:6 | call to [] | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content element | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:117:1:117:15 | * | | params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps | params_flow.rb:117:19:117:27 | call to taint | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps | params_flow.rb:117:25:117:26 | 61 | +| params_flow.rb:117:25:117:26 | 61 | type tracker without call steps | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content attribute [] | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element | params_flow.rb:116:5:116:6 | call to [] | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element 0 | params_flow.rb:117:19:117:27 | * | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element 1 | params_flow.rb:117:1:117:15 | * | +| params_flow.rb:118:1:118:14 | *[0] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[0] | +| params_flow.rb:118:1:118:14 | *[1] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[1] | +| params_flow.rb:118:1:118:14 | *[2] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[2] | +| params_flow.rb:118:1:118:14 | *[3] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[3] | +| params_flow.rb:118:1:118:14 | *[4] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[4] | +| params_flow.rb:118:1:118:14 | *[5] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[5] | +| params_flow.rb:118:1:118:14 | *[6] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[6] | +| params_flow.rb:118:1:118:14 | *[7] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[7] | +| params_flow.rb:118:1:118:14 | *[8] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[8] | +| params_flow.rb:118:1:118:14 | *[9] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[9] | +| params_flow.rb:118:1:118:14 | *[10] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[10] | +| params_flow.rb:118:1:118:14 | *[-1] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:118:1:118:14 | call to positional | type tracker without call steps | params_flow.rb:118:1:118:14 | call to positional | -| params_flow.rb:118:12:118:13 | * ... | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:118:12:118:13 | * ... | type tracker without call steps | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:120:1:126:3 | &block | type tracker without call steps | params_flow.rb:120:1:126:3 | &block | | params_flow.rb:120:1:126:3 | destruct | type tracker without call steps | params_flow.rb:120:1:126:3 | destruct | | params_flow.rb:120:1:126:3 | self in destruct | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:120:1:126:3 | self in destruct | type tracker without call steps | params_flow.rb:120:1:126:3 | self in destruct | +| params_flow.rb:120:1:126:3 | synthetic *args | type tracker without call steps | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:120:15:120:15 | a | type tracker without call steps | params_flow.rb:120:15:120:15 | a | | params_flow.rb:120:17:120:17 | b | type tracker without call steps | params_flow.rb:120:17:120:17 | b | | params_flow.rb:120:22:120:22 | c | type tracker without call steps | params_flow.rb:120:22:120:22 | c | | params_flow.rb:120:25:120:25 | d | type tracker without call steps | params_flow.rb:120:25:120:25 | d | | params_flow.rb:120:27:120:27 | e | type tracker without call steps | params_flow.rb:120:27:120:27 | e | +| params_flow.rb:121:5:121:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:121:5:121:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:121:5:121:10 | * | type tracker without call steps | params_flow.rb:121:5:121:10 | * | | params_flow.rb:121:5:121:10 | call to sink | type tracker without call steps | params_flow.rb:121:5:121:10 | call to sink | | params_flow.rb:121:10:121:10 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:121:10:121:10 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:121:10:121:10 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:121:10:121:10 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:121:10:121:10 | a | type tracker without call steps | params_flow.rb:121:10:121:10 | a | | params_flow.rb:121:10:121:10 | a | type tracker without call steps with content element 0 | params_flow.rb:121:5:121:10 | * | +| params_flow.rb:122:5:122:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:122:5:122:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:122:5:122:10 | * | type tracker without call steps | params_flow.rb:122:5:122:10 | * | | params_flow.rb:122:5:122:10 | call to sink | type tracker without call steps | params_flow.rb:122:5:122:10 | call to sink | | params_flow.rb:122:10:122:10 | b | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:122:10:122:10 | b | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:122:10:122:10 | b | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:122:10:122:10 | b | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:122:10:122:10 | b | type tracker without call steps | params_flow.rb:122:10:122:10 | b | | params_flow.rb:122:10:122:10 | b | type tracker without call steps with content element 0 | params_flow.rb:122:5:122:10 | * | +| params_flow.rb:123:5:123:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:123:5:123:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:123:5:123:10 | * | type tracker without call steps | params_flow.rb:123:5:123:10 | * | | params_flow.rb:123:5:123:10 | call to sink | type tracker without call steps | params_flow.rb:123:5:123:10 | call to sink | | params_flow.rb:123:10:123:10 | c | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:123:10:123:10 | c | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:123:10:123:10 | c | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:123:10:123:10 | c | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:123:10:123:10 | c | type tracker without call steps | params_flow.rb:123:10:123:10 | c | | params_flow.rb:123:10:123:10 | c | type tracker without call steps with content element 0 | params_flow.rb:123:5:123:10 | * | +| params_flow.rb:124:5:124:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:124:5:124:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:124:5:124:10 | * | type tracker without call steps | params_flow.rb:124:5:124:10 | * | | params_flow.rb:124:5:124:10 | call to sink | type tracker without call steps | params_flow.rb:124:5:124:10 | call to sink | | params_flow.rb:124:10:124:10 | d | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:124:10:124:10 | d | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:124:10:124:10 | d | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:124:10:124:10 | d | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:124:10:124:10 | d | type tracker without call steps | params_flow.rb:124:10:124:10 | d | | params_flow.rb:124:10:124:10 | d | type tracker without call steps with content element 0 | params_flow.rb:124:5:124:10 | * | +| params_flow.rb:125:5:125:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:125:5:125:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:125:5:125:10 | * | type tracker without call steps | params_flow.rb:125:5:125:10 | * | | params_flow.rb:125:5:125:10 | call to sink | type tracker without call steps | params_flow.rb:125:5:125:10 | call to sink | | params_flow.rb:125:5:125:10 | call to sink | type tracker without call steps | params_flow.rb:128:1:128:61 | call to destruct | | params_flow.rb:125:10:125:10 | e | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:125:10:125:10 | e | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:125:10:125:10 | e | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:125:10:125:10 | e | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:125:10:125:10 | e | type tracker without call steps | params_flow.rb:125:10:125:10 | e | | params_flow.rb:125:10:125:10 | e | type tracker without call steps with content element 0 | params_flow.rb:125:5:125:10 | * | +| params_flow.rb:128:1:128:61 | * | type tracker with call steps | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:128:1:128:61 | * | type tracker without call steps | params_flow.rb:128:1:128:61 | * | | params_flow.rb:128:1:128:61 | call to destruct | type tracker without call steps | params_flow.rb:128:1:128:61 | call to destruct | | params_flow.rb:128:10:128:31 | * | type tracker without call steps | params_flow.rb:128:10:128:31 | * | | params_flow.rb:128:10:128:31 | Array | type tracker without call steps | params_flow.rb:128:10:128:31 | Array | +| params_flow.rb:128:10:128:31 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:128:10:128:31 | call to [] | type tracker without call steps | params_flow.rb:128:10:128:31 | call to [] | | params_flow.rb:128:10:128:31 | call to [] | type tracker without call steps with content element 0 | params_flow.rb:128:1:128:61 | * | +| params_flow.rb:128:11:128:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:11:128:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:11:128:19 | * | type tracker without call steps | params_flow.rb:128:11:128:19 | * | | params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | * | | params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:10:128:31 | call to [] | | params_flow.rb:128:17:128:18 | 62 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:128:17:128:18 | 62 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:17:128:18 | 62 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps | params_flow.rb:128:17:128:18 | 62 | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | * | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 | params_flow.rb:128:11:128:19 | * | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:128:22:128:30 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:22:128:30 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:22:128:30 | * | type tracker without call steps | params_flow.rb:128:22:128:30 | * | | params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | * | | params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:10:128:31 | call to [] | | params_flow.rb:128:28:128:29 | 63 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:128:28:128:29 | 63 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:28:128:29 | 63 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:28:128:29 | 63 | type tracker without call steps | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:128:28:128:29 | 63 | type tracker without call steps | params_flow.rb:128:28:128:29 | 63 | | params_flow.rb:128:28:128:29 | 63 | type tracker without call steps with content element 0 | params_flow.rb:128:22:128:30 | * | @@ -2185,13 +2914,18 @@ track | params_flow.rb:128:28:128:29 | 63 | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:10:128:31 | call to [] | | params_flow.rb:128:34:128:60 | * | type tracker without call steps | params_flow.rb:128:34:128:60 | * | | params_flow.rb:128:34:128:60 | Array | type tracker without call steps | params_flow.rb:128:34:128:60 | Array | +| params_flow.rb:128:34:128:60 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:128:34:128:60 | call to [] | type tracker without call steps | params_flow.rb:128:34:128:60 | call to [] | | params_flow.rb:128:34:128:60 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:128:1:128:61 | * | +| params_flow.rb:128:35:128:43 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:35:128:43 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:35:128:43 | * | type tracker without call steps | params_flow.rb:128:35:128:43 | * | | params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | * | | params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:34:128:60 | call to [] | | params_flow.rb:128:41:128:42 | 64 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:128:41:128:42 | 64 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:41:128:42 | 64 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:41:128:42 | 64 | type tracker without call steps | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:128:41:128:42 | 64 | type tracker without call steps | params_flow.rb:128:41:128:42 | 64 | | params_flow.rb:128:41:128:42 | 64 | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | * | @@ -2205,11 +2939,15 @@ track | params_flow.rb:128:47:128:47 | 0 | type tracker without call steps | params_flow.rb:128:47:128:47 | 0 | | params_flow.rb:128:47:128:47 | 0 | type tracker without call steps with content element 0 | params_flow.rb:128:46:128:59 | * | | params_flow.rb:128:47:128:47 | 0 | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:46:128:59 | call to [] | +| params_flow.rb:128:50:128:58 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:50:128:58 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:50:128:58 | * | type tracker without call steps | params_flow.rb:128:50:128:58 | * | | params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | * | | params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:46:128:59 | call to [] | | params_flow.rb:128:56:128:57 | 65 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:128:56:128:57 | 65 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:56:128:57 | 65 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:56:128:57 | 65 | type tracker without call steps | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:128:56:128:57 | 65 | type tracker without call steps | params_flow.rb:128:56:128:57 | 65 | | params_flow.rb:128:56:128:57 | 65 | type tracker without call steps with content element 0 | params_flow.rb:128:50:128:58 | * | @@ -2218,94 +2956,130 @@ track | params_flow.rb:130:1:130:4 | args | type tracker without call steps | params_flow.rb:130:1:130:4 | args | | params_flow.rb:130:8:130:29 | * | type tracker without call steps | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:8:130:29 | Array | type tracker without call steps | params_flow.rb:130:8:130:29 | Array | -| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | -| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:130:8:130:29 | call to [] | type tracker without call steps | params_flow.rb:130:8:130:29 | call to [] | +| params_flow.rb:130:8:130:29 | call to [] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[0] | | params_flow.rb:130:8:130:29 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:130:9:130:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:130:9:130:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:9:130:17 | * | type tracker without call steps | params_flow.rb:130:9:130:17 | * | -| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | -| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps | params_flow.rb:130:9:130:17 | call to taint | +| params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps | params_flow.rb:131:1:131:46 | *[0] | | params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:130:8:130:29 | call to [] | | params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | | params_flow.rb:130:15:130:16 | 66 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps | params_flow.rb:130:9:130:17 | call to taint | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps | params_flow.rb:130:15:130:16 | 66 | +| params_flow.rb:130:15:130:16 | 66 | type tracker without call steps | params_flow.rb:131:1:131:46 | *[0] | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 | params_flow.rb:130:9:130:17 | * | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 or unknown | params_flow.rb:130:8:130:29 | call to [] | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:130:20:130:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:130:20:130:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:20:130:28 | * | type tracker without call steps | params_flow.rb:130:20:130:28 | * | -| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | -| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps | params_flow.rb:130:20:130:28 | call to taint | +| params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:130:8:130:29 | call to [] | | params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:131:10:131:14 | * ... | | params_flow.rb:130:26:130:27 | 67 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps | params_flow.rb:130:20:130:28 | call to taint | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps | params_flow.rb:130:26:130:27 | 67 | +| params_flow.rb:130:26:130:27 | 67 | type tracker without call steps | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 0 | params_flow.rb:130:20:130:28 | * | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 or unknown | params_flow.rb:130:8:130:29 | call to [] | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 or unknown | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:131:1:131:46 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:1:131:46 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:1:131:46 | * | type tracker without call steps | params_flow.rb:131:1:131:46 | * | +| params_flow.rb:131:1:131:46 | *[0] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[0] | +| params_flow.rb:131:1:131:46 | *[1] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[1] | +| params_flow.rb:131:1:131:46 | *[2] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[2] | +| params_flow.rb:131:1:131:46 | *[3] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[3] | +| params_flow.rb:131:1:131:46 | *[4] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[4] | +| params_flow.rb:131:1:131:46 | *[5] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[5] | +| params_flow.rb:131:1:131:46 | *[6] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[6] | +| params_flow.rb:131:1:131:46 | *[7] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[7] | +| params_flow.rb:131:1:131:46 | *[8] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[8] | +| params_flow.rb:131:1:131:46 | *[9] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[9] | +| params_flow.rb:131:1:131:46 | *[10] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[10] | +| params_flow.rb:131:1:131:46 | *[-1] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[-1] | | params_flow.rb:131:1:131:46 | call to pos_many | type tracker without call steps | params_flow.rb:131:1:131:46 | call to pos_many | -| params_flow.rb:131:10:131:14 | * ... | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:10:131:14 | * ... | type tracker without call steps | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:131:17:131:25 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:131:17:131:25 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:131:17:131:25 | * | type tracker without call steps | params_flow.rb:131:17:131:25 | * | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:17:131:25 | call to taint | type tracker without call steps | params_flow.rb:131:17:131:25 | call to taint | +| params_flow.rb:131:17:131:25 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:23:131:24 | 68 | type tracker without call steps | params_flow.rb:131:17:131:25 | call to taint | | params_flow.rb:131:23:131:24 | 68 | type tracker without call steps | params_flow.rb:131:23:131:24 | 68 | | params_flow.rb:131:23:131:24 | 68 | type tracker without call steps with content element 0 | params_flow.rb:131:17:131:25 | * | +| params_flow.rb:131:23:131:24 | 68 | type tracker without call steps with content element 1 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | +| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:28:131:30 | nil | type tracker without call steps | params_flow.rb:131:28:131:30 | nil | +| params_flow.rb:131:28:131:30 | nil | type tracker without call steps with content element 2 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:33:131:35 | nil | type tracker without call steps | params_flow.rb:131:33:131:35 | nil | +| params_flow.rb:131:33:131:35 | nil | type tracker without call steps with content element 3 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | +| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:38:131:40 | nil | type tracker without call steps | params_flow.rb:131:38:131:40 | nil | +| params_flow.rb:131:38:131:40 | nil | type tracker without call steps with content element 4 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | +| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:43:131:45 | nil | type tracker without call steps | params_flow.rb:131:43:131:45 | nil | +| params_flow.rb:131:43:131:45 | nil | type tracker without call steps with content element 5 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:133:1:135:3 | &block | type tracker without call steps | params_flow.rb:133:1:135:3 | &block | | params_flow.rb:133:1:135:3 | self in splatall | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:133:1:135:3 | self in splatall | type tracker without call steps | params_flow.rb:133:1:135:3 | self in splatall | @@ -2313,44 +3087,72 @@ track | params_flow.rb:133:1:135:3 | synthetic *args | type tracker without call steps | params_flow.rb:133:1:135:3 | synthetic *args | | params_flow.rb:133:14:133:18 | *args | type tracker without call steps | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:133:15:133:18 | args | type tracker without call steps | params_flow.rb:133:15:133:18 | args | +| params_flow.rb:134:5:134:16 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:134:5:134:16 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:134:5:134:16 | * | type tracker without call steps | params_flow.rb:134:5:134:16 | * | | params_flow.rb:134:5:134:16 | call to sink | type tracker without call steps | params_flow.rb:134:5:134:16 | call to sink | | params_flow.rb:134:5:134:16 | call to sink | type tracker without call steps | params_flow.rb:137:1:137:44 | call to splatall | | params_flow.rb:134:10:134:16 | * | type tracker without call steps | params_flow.rb:134:10:134:16 | * | | params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:134:10:134:16 | ...[...] | type tracker without call steps | params_flow.rb:134:10:134:16 | ...[...] | | params_flow.rb:134:10:134:16 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:134:5:134:16 | * | | params_flow.rb:134:15:134:15 | 1 | type tracker without call steps | params_flow.rb:134:15:134:15 | 1 | | params_flow.rb:134:15:134:15 | 1 | type tracker without call steps with content element 0 | params_flow.rb:134:10:134:16 | * | +| params_flow.rb:137:1:137:44 | *[0] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[0] | +| params_flow.rb:137:1:137:44 | *[1] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[1] | +| params_flow.rb:137:1:137:44 | *[2] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[2] | +| params_flow.rb:137:1:137:44 | *[3] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[3] | +| params_flow.rb:137:1:137:44 | *[4] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[4] | +| params_flow.rb:137:1:137:44 | *[5] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[5] | +| params_flow.rb:137:1:137:44 | *[6] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[6] | +| params_flow.rb:137:1:137:44 | *[7] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[7] | +| params_flow.rb:137:1:137:44 | *[8] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[8] | +| params_flow.rb:137:1:137:44 | *[9] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[9] | +| params_flow.rb:137:1:137:44 | *[10] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[10] | +| params_flow.rb:137:1:137:44 | *[-1] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[-1] | | params_flow.rb:137:1:137:44 | call to splatall | type tracker without call steps | params_flow.rb:137:1:137:44 | call to splatall | | params_flow.rb:137:10:137:43 | * ... | type tracker with call steps | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:137:10:137:43 | * ... | type tracker without call steps | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:11:137:43 | * | type tracker without call steps | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:11:137:43 | Array | type tracker without call steps | params_flow.rb:137:11:137:43 | Array | | params_flow.rb:137:11:137:43 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:11:137:43 | call to [] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:11:137:43 | call to [] | type tracker without call steps | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:11:137:43 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:137:12:137:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:137:12:137:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:12:137:20 | * | type tracker without call steps | params_flow.rb:137:12:137:20 | * | | params_flow.rb:137:12:137:20 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:18:137:19 | 69 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:137:18:137:19 | 69 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:137:18:137:19 | 69 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:18:137:19 | 69 | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:18:137:19 | 69 | type tracker without call steps | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps | params_flow.rb:137:18:137:19 | 69 | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 | params_flow.rb:137:12:137:20 | * | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:23:137:31 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:137:23:137:31 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:23:137:31 | * | type tracker without call steps | params_flow.rb:137:23:137:31 | * | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps | params_flow.rb:134:10:134:16 | ...[...] | +| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:134:5:134:16 | * | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps | params_flow.rb:137:1:137:44 | *[1] | | params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:10:137:43 | * ... | @@ -2358,23 +3160,34 @@ track | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps | params_flow.rb:134:10:134:16 | ...[...] | +| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:134:5:134:16 | * | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:29:137:30 | 70 | type tracker without call steps | params_flow.rb:137:1:137:44 | *[1] | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps | params_flow.rb:137:29:137:30 | 70 | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 0 | params_flow.rb:137:23:137:31 | * | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:34:137:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:137:34:137:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:34:137:42 | * | type tracker without call steps | params_flow.rb:137:34:137:42 | * | | params_flow.rb:137:34:137:42 | call to taint | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps | params_flow.rb:137:34:137:42 | call to taint | | params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:40:137:41 | 71 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:137:40:137:41 | 71 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:137:40:137:41 | 71 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:40:137:41 | 71 | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:40:137:41 | 71 | type tracker without call steps | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps | params_flow.rb:137:34:137:42 | call to taint | | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps | params_flow.rb:137:40:137:41 | 71 | | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 0 | params_flow.rb:137:34:137:42 | * | @@ -2386,7 +3199,6 @@ trackEnd | params_flow.rb:1:1:3:3 | self in taint | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:3:3 | synthetic *args | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:1:1:3:3 | synthetic *args | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:1:1:3:3 | synthetic *args | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:1:1:3:3 | taint | params_flow.rb:1:1:3:3 | taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:1:1:137:45 | self (params_flow.rb) | @@ -2599,24 +3411,33 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:40:16:40:24 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:41:13:41:21 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:43:9:43:17 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:46:20:46:28 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:47:1:47:17 | *[0] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:1:11:1:11 | x | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:1:11:1:11 | x | params_flow.rb:50:10:50:11 | p1 | | params_flow.rb:1:11:1:11 | x | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:1:11:1:11 | x | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:52:10:52:21 | ( ... ) | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:57:9:57:17 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:60:20:60:28 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:61:1:61:14 | *[0] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:63:1:63:4 | args | | params_flow.rb:1:11:1:11 | x | params_flow.rb:63:1:63:16 | ... = ... | | params_flow.rb:1:11:1:11 | x | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:65:10:65:13 | ...[...] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:67:13:67:16 | args | | params_flow.rb:1:11:1:11 | x | params_flow.rb:69:14:69:14 | x | | params_flow.rb:1:11:1:11 | x | params_flow.rb:69:14:69:14 | x | @@ -2639,33 +3460,35 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:80:42:80:50 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:81:1:81:37 | *[1] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:81:1:81:37 | *[2] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:81:1:81:37 | *[3] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:81:28:81:36 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:14:83:14 | t | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:14:83:14 | t | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:17:83:17 | u | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:20:83:20 | v | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:23:83:23 | w | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:29:83:29 | y | | params_flow.rb:1:11:1:11 | x | params_flow.rb:84:10:84:10 | t | | params_flow.rb:1:11:1:11 | x | params_flow.rb:85:10:85:10 | u | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:86:10:86:10 | v | | params_flow.rb:1:11:1:11 | x | params_flow.rb:87:10:87:10 | w | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:88:10:88:10 | x | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:89:10:89:10 | y | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:42:93:50 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:94:1:94:48 | *[2] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:94:1:94:48 | *[3] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:94:1:94:48 | *[4] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:94:39:94:47 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:96:1:96:88 | *[2] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:96:1:96:88 | *[3] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:96:34:96:42 | call to taint | @@ -2679,6 +3502,8 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:98:31:98:31 | b | | params_flow.rb:1:11:1:11 | x | params_flow.rb:99:10:99:10 | a | | params_flow.rb:1:11:1:11 | x | params_flow.rb:102:10:102:10 | b | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:105:1:105:49 | *[1] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:105:39:105:47 | call to taint | @@ -2700,14 +3525,20 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:117:19:117:27 | ... = ... | | params_flow.rb:1:11:1:11 | x | params_flow.rb:117:19:117:27 | __synth__0 | | params_flow.rb:1:11:1:11 | x | params_flow.rb:117:19:117:27 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:130:9:130:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:130:20:130:28 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:131:1:131:46 | *[0] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:131:17:131:25 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:134:10:134:16 | ...[...] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:137:1:137:44 | *[0] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:137:1:137:44 | *[1] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:137:34:137:42 | call to taint | @@ -2718,7 +3549,6 @@ trackEnd | params_flow.rb:5:1:7:3 | sink | params_flow.rb:5:1:7:3 | sink | | params_flow.rb:5:1:7:3 | synthetic *args | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:5:1:7:3 | synthetic *args | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:5:1:7:3 | synthetic *args | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | @@ -2800,7 +3630,6 @@ trackEnd | params_flow.rb:9:1:12:3 | self in positional | params_flow.rb:11:5:11:11 | self | | params_flow.rb:9:1:12:3 | synthetic *args | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:9:1:12:3 | synthetic *args | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:9:1:12:3 | synthetic *args | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:6:10:6:10 | x | @@ -2815,16 +3644,24 @@ trackEnd | params_flow.rb:9:20:9:21 | p2 | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:9:20:9:21 | p2 | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:9:20:9:21 | p2 | params_flow.rb:11:10:11:11 | p2 | +| params_flow.rb:10:5:10:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:10:5:10:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:10:5:10:11 | * | params_flow.rb:10:5:10:11 | * | | params_flow.rb:10:5:10:11 | call to sink | params_flow.rb:10:5:10:11 | call to sink | +| params_flow.rb:11:5:11:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:11:5:11:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:11:5:11:11 | * | params_flow.rb:11:5:11:11 | * | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:11:5:11:11 | call to sink | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:14:1:14:30 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:44:1:44:28 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:47:1:47:17 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:118:1:118:14 | call to positional | +| params_flow.rb:14:1:14:30 | * | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:14:1:14:30 | * | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:1:14:30 | * | params_flow.rb:14:1:14:30 | * | | params_flow.rb:14:1:14:30 | call to positional | params_flow.rb:14:1:14:30 | call to positional | +| params_flow.rb:14:12:14:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:14:12:14:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:14:12:14:19 | * | params_flow.rb:14:12:14:19 | * | | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -2844,6 +3681,8 @@ trackEnd | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:14:12:14:19 | call to taint | | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:14:18:14:18 | 1 | +| params_flow.rb:14:22:14:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:14:22:14:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:14:22:14:29 | * | params_flow.rb:14:22:14:29 | * | | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -2873,6 +3712,7 @@ trackEnd | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:16:1:19:3 | self in keyword | | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:17:5:17:11 | self | | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:18:5:18:11 | self | +| params_flow.rb:16:1:19:3 | synthetic *args | params_flow.rb:16:1:19:3 | synthetic *args | | params_flow.rb:16:13:16:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:16:13:16:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:16:13:16:14 | p1 | params_flow.rb:6:10:6:10 | x | @@ -2887,8 +3727,12 @@ trackEnd | params_flow.rb:16:18:16:19 | p2 | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:16:18:16:19 | p2 | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:16:18:16:19 | p2 | params_flow.rb:18:10:18:11 | p2 | +| params_flow.rb:17:5:17:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:17:5:17:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:17:5:17:11 | * | params_flow.rb:17:5:17:11 | * | | params_flow.rb:17:5:17:11 | call to sink | params_flow.rb:17:5:17:11 | call to sink | +| params_flow.rb:18:5:18:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:18:5:18:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:18:5:18:11 | * | params_flow.rb:18:5:18:11 | * | | params_flow.rb:18:5:18:11 | call to sink | params_flow.rb:18:5:18:11 | call to sink | | params_flow.rb:18:5:18:11 | call to sink | params_flow.rb:21:1:21:35 | call to keyword | @@ -2900,6 +3744,8 @@ trackEnd | params_flow.rb:21:1:21:35 | call to keyword | params_flow.rb:21:1:21:35 | call to keyword | | params_flow.rb:21:9:21:10 | :p1 | params_flow.rb:21:9:21:10 | :p1 | | params_flow.rb:21:9:21:20 | Pair | params_flow.rb:21:9:21:20 | Pair | +| params_flow.rb:21:13:21:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:21:13:21:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:21:13:21:20 | * | params_flow.rb:21:13:21:20 | * | | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -2921,6 +3767,8 @@ trackEnd | params_flow.rb:21:19:21:19 | 3 | params_flow.rb:21:19:21:19 | 3 | | params_flow.rb:21:23:21:24 | :p2 | params_flow.rb:21:23:21:24 | :p2 | | params_flow.rb:21:23:21:34 | Pair | params_flow.rb:21:23:21:34 | Pair | +| params_flow.rb:21:27:21:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:21:27:21:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:21:27:21:34 | * | params_flow.rb:21:27:21:34 | * | | params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -2945,6 +3793,8 @@ trackEnd | params_flow.rb:22:1:22:35 | call to keyword | params_flow.rb:22:1:22:35 | call to keyword | | params_flow.rb:22:9:22:10 | :p2 | params_flow.rb:22:9:22:10 | :p2 | | params_flow.rb:22:9:22:20 | Pair | params_flow.rb:22:9:22:20 | Pair | +| params_flow.rb:22:13:22:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:22:13:22:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:22:13:22:20 | * | params_flow.rb:22:13:22:20 | * | | params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -2966,6 +3816,8 @@ trackEnd | params_flow.rb:22:19:22:19 | 5 | params_flow.rb:22:19:22:19 | 5 | | params_flow.rb:22:23:22:24 | :p1 | params_flow.rb:22:23:22:24 | :p1 | | params_flow.rb:22:23:22:34 | Pair | params_flow.rb:22:23:22:34 | Pair | +| params_flow.rb:22:27:22:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:22:27:22:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:22:27:22:34 | * | params_flow.rb:22:27:22:34 | * | | params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -2990,6 +3842,8 @@ trackEnd | params_flow.rb:23:1:23:41 | call to keyword | params_flow.rb:23:1:23:41 | call to keyword | | params_flow.rb:23:9:23:11 | :p2 | params_flow.rb:23:9:23:11 | :p2 | | params_flow.rb:23:9:23:23 | Pair | params_flow.rb:23:9:23:23 | Pair | +| params_flow.rb:23:16:23:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:23:16:23:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:23:16:23:23 | * | params_flow.rb:23:16:23:23 | * | | params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3011,6 +3865,8 @@ trackEnd | params_flow.rb:23:22:23:22 | 7 | params_flow.rb:23:22:23:22 | 7 | | params_flow.rb:23:26:23:28 | :p1 | params_flow.rb:23:26:23:28 | :p1 | | params_flow.rb:23:26:23:40 | Pair | params_flow.rb:23:26:23:40 | Pair | +| params_flow.rb:23:33:23:40 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:23:33:23:40 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:23:33:23:40 | * | params_flow.rb:23:33:23:40 | * | | params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3043,6 +3899,7 @@ trackEnd | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:28:5:28:22 | self | | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:29:5:29:22 | self | | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:30:5:30:22 | self | +| params_flow.rb:25:1:31:3 | synthetic *args | params_flow.rb:25:1:31:3 | synthetic *args | | params_flow.rb:25:12:25:13 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:25:12:25:13 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:25:12:25:13 | p1 | params_flow.rb:6:10:6:10 | x | @@ -3057,8 +3914,12 @@ trackEnd | params_flow.rb:25:17:25:24 | **kwargs | params_flow.rb:29:11:29:16 | kwargs | | params_flow.rb:25:17:25:24 | **kwargs | params_flow.rb:30:11:30:16 | kwargs | | params_flow.rb:25:19:25:24 | kwargs | params_flow.rb:25:19:25:24 | kwargs | +| params_flow.rb:26:5:26:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:26:5:26:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:26:5:26:11 | * | params_flow.rb:26:5:26:11 | * | | params_flow.rb:26:5:26:11 | call to sink | params_flow.rb:26:5:26:11 | call to sink | +| params_flow.rb:27:5:27:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:27:5:27:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:27:5:27:22 | * | params_flow.rb:27:5:27:22 | * | | params_flow.rb:27:5:27:22 | call to sink | params_flow.rb:27:5:27:22 | call to sink | | params_flow.rb:27:11:27:21 | * | params_flow.rb:27:11:27:21 | * | @@ -3068,6 +3929,8 @@ trackEnd | params_flow.rb:27:11:27:21 | ...[...] | params_flow.rb:27:10:27:22 | ( ... ) | | params_flow.rb:27:11:27:21 | ...[...] | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:27:18:27:20 | :p1 | params_flow.rb:27:18:27:20 | :p1 | +| params_flow.rb:28:5:28:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:28:5:28:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:28:5:28:22 | * | params_flow.rb:28:5:28:22 | * | | params_flow.rb:28:5:28:22 | call to sink | params_flow.rb:28:5:28:22 | call to sink | | params_flow.rb:28:11:28:21 | * | params_flow.rb:28:11:28:21 | * | @@ -3077,6 +3940,8 @@ trackEnd | params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:28:10:28:22 | ( ... ) | | params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:28:18:28:20 | :p2 | params_flow.rb:28:18:28:20 | :p2 | +| params_flow.rb:29:5:29:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:29:5:29:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:29:5:29:22 | * | params_flow.rb:29:5:29:22 | * | | params_flow.rb:29:5:29:22 | call to sink | params_flow.rb:29:5:29:22 | call to sink | | params_flow.rb:29:11:29:21 | * | params_flow.rb:29:11:29:21 | * | @@ -3086,6 +3951,8 @@ trackEnd | params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:29:10:29:22 | ( ... ) | | params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:29:18:29:20 | :p3 | params_flow.rb:29:18:29:20 | :p3 | +| params_flow.rb:30:5:30:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:30:5:30:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:30:5:30:22 | * | params_flow.rb:30:5:30:22 | * | | params_flow.rb:30:5:30:22 | call to sink | params_flow.rb:30:5:30:22 | call to sink | | params_flow.rb:30:5:30:22 | call to sink | params_flow.rb:33:1:33:58 | call to kwargs | @@ -3109,6 +3976,8 @@ trackEnd | params_flow.rb:33:1:33:58 | call to kwargs | params_flow.rb:33:1:33:58 | call to kwargs | | params_flow.rb:33:8:33:9 | :p1 | params_flow.rb:33:8:33:9 | :p1 | | params_flow.rb:33:8:33:19 | Pair | params_flow.rb:33:8:33:19 | Pair | +| params_flow.rb:33:12:33:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:12:33:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:12:33:19 | * | params_flow.rb:33:12:33:19 | * | | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3134,6 +4003,8 @@ trackEnd | params_flow.rb:33:18:33:18 | 9 | params_flow.rb:33:18:33:18 | 9 | | params_flow.rb:33:22:33:23 | :p2 | params_flow.rb:33:22:33:23 | :p2 | | params_flow.rb:33:22:33:34 | Pair | params_flow.rb:33:22:33:34 | Pair | +| params_flow.rb:33:26:33:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:26:33:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:26:33:34 | * | params_flow.rb:33:26:33:34 | * | | params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3153,6 +4024,8 @@ trackEnd | params_flow.rb:33:32:33:33 | 10 | params_flow.rb:33:32:33:33 | 10 | | params_flow.rb:33:37:33:38 | :p3 | params_flow.rb:33:37:33:38 | :p3 | | params_flow.rb:33:37:33:49 | Pair | params_flow.rb:33:37:33:49 | Pair | +| params_flow.rb:33:41:33:49 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:33:41:33:49 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:41:33:49 | * | params_flow.rb:33:41:33:49 | * | | params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3187,6 +4060,8 @@ trackEnd | params_flow.rb:34:8:34:32 | call to [] | params_flow.rb:35:25:35:28 | args | | params_flow.rb:34:10:34:11 | :p3 | params_flow.rb:34:10:34:11 | :p3 | | params_flow.rb:34:10:34:22 | Pair | params_flow.rb:34:10:34:22 | Pair | +| params_flow.rb:34:14:34:22 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:34:14:34:22 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:34:14:34:22 | * | params_flow.rb:34:14:34:22 | * | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3223,6 +4098,8 @@ trackEnd | params_flow.rb:35:1:35:29 | call to kwargs | params_flow.rb:35:1:35:29 | call to kwargs | | params_flow.rb:35:8:35:9 | :p1 | params_flow.rb:35:8:35:9 | :p1 | | params_flow.rb:35:8:35:20 | Pair | params_flow.rb:35:8:35:20 | Pair | +| params_flow.rb:35:12:35:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:35:12:35:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:35:12:35:20 | * | params_flow.rb:35:12:35:20 | * | | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3263,6 +4140,8 @@ trackEnd | params_flow.rb:37:8:37:44 | call to [] | params_flow.rb:38:10:38:13 | args | | params_flow.rb:37:9:37:11 | :p1 | params_flow.rb:37:9:37:11 | :p1 | | params_flow.rb:37:9:37:24 | Pair | params_flow.rb:37:9:37:24 | Pair | +| params_flow.rb:37:16:37:24 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:37:16:37:24 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:37:16:37:24 | * | params_flow.rb:37:16:37:24 | * | | params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3288,6 +4167,8 @@ trackEnd | params_flow.rb:37:22:37:23 | 14 | params_flow.rb:37:22:37:23 | 14 | | params_flow.rb:37:27:37:29 | :p2 | params_flow.rb:37:27:37:29 | :p2 | | params_flow.rb:37:27:37:42 | Pair | params_flow.rb:37:27:37:42 | Pair | +| params_flow.rb:37:34:37:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:37:34:37:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:37:34:37:42 | * | params_flow.rb:37:34:37:42 | * | | params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3323,6 +4204,8 @@ trackEnd | params_flow.rb:40:8:40:26 | call to [] | params_flow.rb:41:26:41:29 | args | | params_flow.rb:40:9:40:11 | :p1 | params_flow.rb:40:9:40:11 | :p1 | | params_flow.rb:40:9:40:24 | Pair | params_flow.rb:40:9:40:24 | Pair | +| params_flow.rb:40:16:40:24 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:40:16:40:24 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:40:16:40:24 | * | params_flow.rb:40:16:40:24 | * | | params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3347,6 +4230,8 @@ trackEnd | params_flow.rb:41:1:41:30 | call to keyword | params_flow.rb:41:1:41:30 | call to keyword | | params_flow.rb:41:9:41:10 | :p2 | params_flow.rb:41:9:41:10 | :p2 | | params_flow.rb:41:9:41:21 | Pair | params_flow.rb:41:9:41:21 | Pair | +| params_flow.rb:41:13:41:21 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:41:13:41:21 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:41:13:41:21 | * | params_flow.rb:41:13:41:21 | * | | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3371,36 +4256,39 @@ trackEnd | params_flow.rb:43:1:43:4 | args | params_flow.rb:43:1:43:4 | args | | params_flow.rb:43:8:43:18 | * | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:8:43:18 | Array | params_flow.rb:43:8:43:18 | Array | -| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:1:43:4 | args | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:1:43:18 | ... = ... | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:8:43:18 | call to [] | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:44:24:44:27 | args | +| params_flow.rb:43:9:43:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:43:9:43:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:43:9:43:17 | * | params_flow.rb:43:9:43:17 | * | -| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:43:9:43:17 | call to taint | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:43:15:43:16 | 17 | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:44:1:44:28 | *[1] | +| params_flow.rb:44:1:44:28 | * | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:44:1:44:28 | * | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:44:1:44:28 | * | params_flow.rb:44:1:44:28 | * | +| params_flow.rb:44:1:44:28 | *[1] | params_flow.rb:44:1:44:28 | *[1] | +| params_flow.rb:44:1:44:28 | *[2] | params_flow.rb:44:1:44:28 | *[2] | +| params_flow.rb:44:1:44:28 | *[3] | params_flow.rb:44:1:44:28 | *[3] | +| params_flow.rb:44:1:44:28 | *[4] | params_flow.rb:44:1:44:28 | *[4] | +| params_flow.rb:44:1:44:28 | *[5] | params_flow.rb:44:1:44:28 | *[5] | +| params_flow.rb:44:1:44:28 | *[6] | params_flow.rb:44:1:44:28 | *[6] | +| params_flow.rb:44:1:44:28 | *[7] | params_flow.rb:44:1:44:28 | *[7] | +| params_flow.rb:44:1:44:28 | *[8] | params_flow.rb:44:1:44:28 | *[8] | +| params_flow.rb:44:1:44:28 | *[9] | params_flow.rb:44:1:44:28 | *[9] | +| params_flow.rb:44:1:44:28 | *[10] | params_flow.rb:44:1:44:28 | *[10] | +| params_flow.rb:44:1:44:28 | *[-1] | params_flow.rb:44:1:44:28 | *[-1] | | params_flow.rb:44:1:44:28 | call to positional | params_flow.rb:44:1:44:28 | call to positional | +| params_flow.rb:44:12:44:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:44:12:44:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:44:12:44:20 | * | params_flow.rb:44:12:44:20 | * | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3420,61 +4308,50 @@ trackEnd | params_flow.rb:44:18:44:19 | 16 | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:44:18:44:19 | 16 | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:44:18:44:19 | 16 | params_flow.rb:44:18:44:19 | 16 | -| params_flow.rb:44:23:44:27 | * ... | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:23:44:27 | * ... | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:46:1:46:4 | args | params_flow.rb:46:1:46:4 | args | | params_flow.rb:46:8:46:29 | * | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:8:46:29 | Array | params_flow.rb:46:8:46:29 | Array | -| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:46:1:46:4 | args | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:46:1:46:29 | ... = ... | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:46:8:46:29 | call to [] | +| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:47:1:47:17 | *[0] | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:47:13:47:16 | args | +| params_flow.rb:46:9:46:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:46:9:46:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:9:46:17 | * | params_flow.rb:46:9:46:17 | * | -| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:46:9:46:17 | call to taint | +| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:47:1:47:17 | *[0] | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:46:15:46:16 | 18 | +| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:47:1:47:17 | *[0] | +| params_flow.rb:46:20:46:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:46:20:46:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:20:46:28 | * | params_flow.rb:46:20:46:28 | * | -| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:46:20:46:28 | call to taint | +| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:46:20:46:28 | call to taint | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:46:26:46:27 | 19 | +| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:47:1:47:17 | *[1] | +| params_flow.rb:47:1:47:17 | *[0] | params_flow.rb:47:1:47:17 | *[0] | +| params_flow.rb:47:1:47:17 | *[1] | params_flow.rb:47:1:47:17 | *[1] | +| params_flow.rb:47:1:47:17 | *[2] | params_flow.rb:47:1:47:17 | *[2] | +| params_flow.rb:47:1:47:17 | *[3] | params_flow.rb:47:1:47:17 | *[3] | +| params_flow.rb:47:1:47:17 | *[4] | params_flow.rb:47:1:47:17 | *[4] | +| params_flow.rb:47:1:47:17 | *[5] | params_flow.rb:47:1:47:17 | *[5] | +| params_flow.rb:47:1:47:17 | *[6] | params_flow.rb:47:1:47:17 | *[6] | +| params_flow.rb:47:1:47:17 | *[7] | params_flow.rb:47:1:47:17 | *[7] | +| params_flow.rb:47:1:47:17 | *[8] | params_flow.rb:47:1:47:17 | *[8] | +| params_flow.rb:47:1:47:17 | *[9] | params_flow.rb:47:1:47:17 | *[9] | +| params_flow.rb:47:1:47:17 | *[10] | params_flow.rb:47:1:47:17 | *[10] | +| params_flow.rb:47:1:47:17 | *[-1] | params_flow.rb:47:1:47:17 | *[-1] | | params_flow.rb:47:1:47:17 | call to positional | params_flow.rb:47:1:47:17 | call to positional | -| params_flow.rb:47:12:47:16 | * ... | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:47:12:47:16 | * ... | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:49:1:53:3 | &block | params_flow.rb:49:1:53:3 | &block | | params_flow.rb:49:1:53:3 | posargs | params_flow.rb:49:1:53:3 | posargs | @@ -3488,8 +4365,6 @@ trackEnd | params_flow.rb:49:1:53:3 | self in posargs | params_flow.rb:52:5:52:21 | self | | params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:6:10:6:10 | x | @@ -3502,8 +4377,12 @@ trackEnd | params_flow.rb:49:17:49:24 | *posargs | params_flow.rb:51:11:51:17 | posargs | | params_flow.rb:49:17:49:24 | *posargs | params_flow.rb:52:11:52:17 | posargs | | params_flow.rb:49:18:49:24 | posargs | params_flow.rb:49:18:49:24 | posargs | +| params_flow.rb:50:5:50:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:50:5:50:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:50:5:50:11 | * | params_flow.rb:50:5:50:11 | * | | params_flow.rb:50:5:50:11 | call to sink | params_flow.rb:50:5:50:11 | call to sink | +| params_flow.rb:51:5:51:21 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:51:5:51:21 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:51:5:51:21 | * | params_flow.rb:51:5:51:21 | * | | params_flow.rb:51:5:51:21 | call to sink | params_flow.rb:51:5:51:21 | call to sink | | params_flow.rb:51:11:51:20 | * | params_flow.rb:51:11:51:20 | * | @@ -3513,6 +4392,8 @@ trackEnd | params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:51:19:51:19 | 0 | params_flow.rb:51:19:51:19 | 0 | +| params_flow.rb:52:5:52:21 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:52:5:52:21 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:52:5:52:21 | * | params_flow.rb:52:5:52:21 | * | | params_flow.rb:52:5:52:21 | call to sink | params_flow.rb:52:5:52:21 | call to sink | | params_flow.rb:52:5:52:21 | call to sink | params_flow.rb:55:1:55:29 | call to posargs | @@ -3526,8 +4407,11 @@ trackEnd | params_flow.rb:52:11:52:20 | ...[...] | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:52:19:52:19 | 1 | params_flow.rb:52:19:52:19 | 1 | | params_flow.rb:55:1:55:29 | * | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:55:1:55:29 | * | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:55:1:55:29 | * | params_flow.rb:55:1:55:29 | * | | params_flow.rb:55:1:55:29 | call to posargs | params_flow.rb:55:1:55:29 | call to posargs | +| params_flow.rb:55:9:55:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:55:9:55:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:55:9:55:17 | * | params_flow.rb:55:9:55:17 | * | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3535,6 +4419,8 @@ trackEnd | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:50:10:50:11 | p1 | +| params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:1:11:1:11 | x | @@ -3545,14 +4431,18 @@ trackEnd | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:50:10:50:11 | p1 | +| params_flow.rb:55:15:55:16 | 20 | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:55:15:55:16 | 20 | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:55:15:55:16 | 20 | +| params_flow.rb:55:20:55:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:55:20:55:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:55:20:55:28 | * | params_flow.rb:55:20:55:28 | * | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | -| params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:52:10:52:21 | ( ... ) | +| params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:1:11:1:11 | x | @@ -3560,8 +4450,8 @@ trackEnd | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:55:26:55:27 | 21 | params_flow.rb:51:10:51:21 | ( ... ) | -| params_flow.rb:55:26:55:27 | 21 | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:55:26:55:27 | 21 | params_flow.rb:52:10:52:21 | ( ... ) | +| params_flow.rb:55:26:55:27 | 21 | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:55:26:55:27 | 21 | | params_flow.rb:57:1:57:4 | args | params_flow.rb:57:1:57:4 | args | @@ -3575,7 +4465,10 @@ trackEnd | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:57:1:57:4 | args | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:57:1:57:18 | ... = ... | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:57:8:57:18 | call to [] | +| params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:58:21:58:24 | args | +| params_flow.rb:57:9:57:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:57:9:57:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:57:9:57:17 | * | params_flow.rb:57:9:57:17 | * | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3583,6 +4476,7 @@ trackEnd | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:57:9:57:17 | call to taint | +| params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:2:5:2:5 | x | @@ -3593,7 +4487,24 @@ trackEnd | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:57:9:57:17 | call to taint | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:57:15:57:16 | 22 | +| params_flow.rb:57:15:57:16 | 22 | params_flow.rb:58:1:58:25 | *[1] | +| params_flow.rb:58:1:58:25 | * | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:58:1:58:25 | * | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:58:1:58:25 | * | params_flow.rb:58:1:58:25 | * | +| params_flow.rb:58:1:58:25 | *[1] | params_flow.rb:58:1:58:25 | *[1] | +| params_flow.rb:58:1:58:25 | *[2] | params_flow.rb:58:1:58:25 | *[2] | +| params_flow.rb:58:1:58:25 | *[3] | params_flow.rb:58:1:58:25 | *[3] | +| params_flow.rb:58:1:58:25 | *[4] | params_flow.rb:58:1:58:25 | *[4] | +| params_flow.rb:58:1:58:25 | *[5] | params_flow.rb:58:1:58:25 | *[5] | +| params_flow.rb:58:1:58:25 | *[6] | params_flow.rb:58:1:58:25 | *[6] | +| params_flow.rb:58:1:58:25 | *[7] | params_flow.rb:58:1:58:25 | *[7] | +| params_flow.rb:58:1:58:25 | *[8] | params_flow.rb:58:1:58:25 | *[8] | +| params_flow.rb:58:1:58:25 | *[9] | params_flow.rb:58:1:58:25 | *[9] | +| params_flow.rb:58:1:58:25 | *[10] | params_flow.rb:58:1:58:25 | *[10] | +| params_flow.rb:58:1:58:25 | *[-1] | params_flow.rb:58:1:58:25 | *[-1] | | params_flow.rb:58:1:58:25 | call to posargs | params_flow.rb:58:1:58:25 | call to posargs | +| params_flow.rb:58:9:58:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:58:9:58:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:58:9:58:17 | * | params_flow.rb:58:9:58:17 | * | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3601,6 +4512,8 @@ trackEnd | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:50:10:50:11 | p1 | +| params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:1:11:1:11 | x | @@ -3611,9 +4524,10 @@ trackEnd | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:50:10:50:11 | p1 | +| params_flow.rb:58:15:58:16 | 23 | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:58:15:58:16 | 23 | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:58:15:58:16 | 23 | -| params_flow.rb:58:20:58:24 | * ... | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:58:20:58:24 | * ... | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:58:20:58:24 | * ... | params_flow.rb:49:18:49:24 | posargs | | params_flow.rb:58:20:58:24 | * ... | params_flow.rb:51:11:51:17 | posargs | @@ -3622,46 +4536,50 @@ trackEnd | params_flow.rb:60:1:60:4 | args | params_flow.rb:60:1:60:4 | args | | params_flow.rb:60:8:60:29 | * | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:8:60:29 | Array | params_flow.rb:60:8:60:29 | Array | -| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:50:10:50:11 | p1 | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:60:1:60:4 | args | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:60:1:60:29 | ... = ... | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:60:8:60:29 | call to [] | +| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:61:1:61:14 | *[0] | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:61:10:61:13 | args | +| params_flow.rb:60:9:60:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:60:9:60:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:9:60:17 | * | params_flow.rb:60:9:60:17 | * | -| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:50:10:50:11 | p1 | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:60:9:60:17 | call to taint | +| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:61:1:61:14 | *[0] | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:50:10:50:11 | p1 | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:60:15:60:16 | 24 | +| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:61:1:61:14 | *[0] | +| params_flow.rb:60:20:60:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:60:20:60:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:20:60:28 | * | params_flow.rb:60:20:60:28 | * | | params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:60:20:60:28 | call to taint | +| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:60:20:60:28 | call to taint | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:60:26:60:27 | 25 | +| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:61:1:61:14 | *[1] | +| params_flow.rb:61:1:61:14 | *[0] | params_flow.rb:61:1:61:14 | *[0] | +| params_flow.rb:61:1:61:14 | *[1] | params_flow.rb:61:1:61:14 | *[1] | +| params_flow.rb:61:1:61:14 | *[2] | params_flow.rb:61:1:61:14 | *[2] | +| params_flow.rb:61:1:61:14 | *[3] | params_flow.rb:61:1:61:14 | *[3] | +| params_flow.rb:61:1:61:14 | *[4] | params_flow.rb:61:1:61:14 | *[4] | +| params_flow.rb:61:1:61:14 | *[5] | params_flow.rb:61:1:61:14 | *[5] | +| params_flow.rb:61:1:61:14 | *[6] | params_flow.rb:61:1:61:14 | *[6] | +| params_flow.rb:61:1:61:14 | *[7] | params_flow.rb:61:1:61:14 | *[7] | +| params_flow.rb:61:1:61:14 | *[8] | params_flow.rb:61:1:61:14 | *[8] | +| params_flow.rb:61:1:61:14 | *[9] | params_flow.rb:61:1:61:14 | *[9] | +| params_flow.rb:61:1:61:14 | *[10] | params_flow.rb:61:1:61:14 | *[10] | +| params_flow.rb:61:1:61:14 | *[-1] | params_flow.rb:61:1:61:14 | *[-1] | | params_flow.rb:61:1:61:14 | call to posargs | params_flow.rb:61:1:61:14 | call to posargs | -| params_flow.rb:61:9:61:13 | * ... | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:61:9:61:13 | * ... | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:63:1:63:4 | args | params_flow.rb:63:1:63:4 | args | +| params_flow.rb:63:8:63:16 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:63:8:63:16 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:63:8:63:16 | * | params_flow.rb:63:8:63:16 | * | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3670,6 +4588,7 @@ trackEnd | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:63:1:63:16 | ... = ... | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:65:10:65:13 | ...[...] | +| params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:67:13:67:16 | args | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:1:11:1:11 | x | @@ -3682,6 +4601,7 @@ trackEnd | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:63:14:63:15 | 26 | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:65:10:65:13 | ...[...] | +| params_flow.rb:63:14:63:15 | 26 | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:67:13:67:16 | args | | params_flow.rb:64:1:66:3 | &block | params_flow.rb:64:1:66:3 | &block | | params_flow.rb:64:1:66:3 | self in splatstuff | params_flow.rb:5:1:7:3 | self (sink) | @@ -3696,6 +4616,8 @@ trackEnd | params_flow.rb:64:16:64:17 | *x | params_flow.rb:64:17:64:17 | x | | params_flow.rb:64:16:64:17 | *x | params_flow.rb:65:10:65:10 | x | | params_flow.rb:64:17:64:17 | x | params_flow.rb:64:17:64:17 | x | +| params_flow.rb:65:5:65:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:65:5:65:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:65:5:65:13 | * | params_flow.rb:65:5:65:13 | * | | params_flow.rb:65:5:65:13 | call to sink | params_flow.rb:65:5:65:13 | call to sink | | params_flow.rb:65:5:65:13 | call to sink | params_flow.rb:67:1:67:17 | call to splatstuff | @@ -3705,6 +4627,18 @@ trackEnd | params_flow.rb:65:10:65:13 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:65:10:65:13 | ...[...] | params_flow.rb:65:10:65:13 | ...[...] | | params_flow.rb:65:12:65:12 | 0 | params_flow.rb:65:12:65:12 | 0 | +| params_flow.rb:67:1:67:17 | *[0] | params_flow.rb:67:1:67:17 | *[0] | +| params_flow.rb:67:1:67:17 | *[1] | params_flow.rb:67:1:67:17 | *[1] | +| params_flow.rb:67:1:67:17 | *[2] | params_flow.rb:67:1:67:17 | *[2] | +| params_flow.rb:67:1:67:17 | *[3] | params_flow.rb:67:1:67:17 | *[3] | +| params_flow.rb:67:1:67:17 | *[4] | params_flow.rb:67:1:67:17 | *[4] | +| params_flow.rb:67:1:67:17 | *[5] | params_flow.rb:67:1:67:17 | *[5] | +| params_flow.rb:67:1:67:17 | *[6] | params_flow.rb:67:1:67:17 | *[6] | +| params_flow.rb:67:1:67:17 | *[7] | params_flow.rb:67:1:67:17 | *[7] | +| params_flow.rb:67:1:67:17 | *[8] | params_flow.rb:67:1:67:17 | *[8] | +| params_flow.rb:67:1:67:17 | *[9] | params_flow.rb:67:1:67:17 | *[9] | +| params_flow.rb:67:1:67:17 | *[10] | params_flow.rb:67:1:67:17 | *[10] | +| params_flow.rb:67:1:67:17 | *[-1] | params_flow.rb:67:1:67:17 | *[-1] | | params_flow.rb:67:1:67:17 | call to splatstuff | params_flow.rb:67:1:67:17 | call to splatstuff | | params_flow.rb:67:12:67:16 | * ... | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:67:12:67:16 | * ... | params_flow.rb:64:17:64:17 | x | @@ -3725,7 +4659,6 @@ trackEnd | params_flow.rb:69:1:76:3 | splatmid | params_flow.rb:69:1:76:3 | splatmid | | params_flow.rb:69:1:76:3 | synthetic *args | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:69:1:76:3 | synthetic *args | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:69:1:76:3 | synthetic *args | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:69:14:69:14 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:14:69:14 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:14:69:14 | x | params_flow.rb:6:10:6:10 | x | @@ -3759,10 +4692,16 @@ trackEnd | params_flow.rb:69:27:69:27 | r | params_flow.rb:69:27:69:27 | r | | params_flow.rb:69:27:69:27 | r | params_flow.rb:69:27:69:27 | r | | params_flow.rb:69:27:69:27 | r | params_flow.rb:75:10:75:10 | r | +| params_flow.rb:70:5:70:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:70:5:70:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:70:5:70:10 | * | params_flow.rb:70:5:70:10 | * | | params_flow.rb:70:5:70:10 | call to sink | params_flow.rb:70:5:70:10 | call to sink | +| params_flow.rb:71:5:71:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:71:5:71:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:71:5:71:10 | * | params_flow.rb:71:5:71:10 | * | | params_flow.rb:71:5:71:10 | call to sink | params_flow.rb:71:5:71:10 | call to sink | +| params_flow.rb:72:5:72:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:72:5:72:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:72:5:72:13 | * | params_flow.rb:72:5:72:13 | * | | params_flow.rb:72:5:72:13 | call to sink | params_flow.rb:72:5:72:13 | call to sink | | params_flow.rb:72:10:72:13 | * | params_flow.rb:72:10:72:13 | * | @@ -3771,6 +4710,8 @@ trackEnd | params_flow.rb:72:10:72:13 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:72:10:72:13 | ...[...] | params_flow.rb:72:10:72:13 | ...[...] | | params_flow.rb:72:12:72:12 | 0 | params_flow.rb:72:12:72:12 | 0 | +| params_flow.rb:73:5:73:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:73:5:73:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:73:5:73:13 | * | params_flow.rb:73:5:73:13 | * | | params_flow.rb:73:5:73:13 | call to sink | params_flow.rb:73:5:73:13 | call to sink | | params_flow.rb:73:10:73:13 | * | params_flow.rb:73:10:73:13 | * | @@ -3779,15 +4720,23 @@ trackEnd | params_flow.rb:73:10:73:13 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:73:10:73:13 | ...[...] | params_flow.rb:73:10:73:13 | ...[...] | | params_flow.rb:73:12:73:12 | 1 | params_flow.rb:73:12:73:12 | 1 | +| params_flow.rb:74:5:74:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:74:5:74:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:74:5:74:10 | * | params_flow.rb:74:5:74:10 | * | | params_flow.rb:74:5:74:10 | call to sink | params_flow.rb:74:5:74:10 | call to sink | +| params_flow.rb:75:5:75:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:75:5:75:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:75:5:75:10 | * | params_flow.rb:75:5:75:10 | * | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:75:5:75:10 | call to sink | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:78:1:78:63 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:81:1:81:37 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:96:1:96:88 | call to splatmid | +| params_flow.rb:78:1:78:63 | * | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:1:78:63 | * | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:1:78:63 | * | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:1:78:63 | call to splatmid | params_flow.rb:78:1:78:63 | call to splatmid | +| params_flow.rb:78:10:78:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:10:78:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:10:78:18 | * | params_flow.rb:78:10:78:18 | * | | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3807,6 +4756,8 @@ trackEnd | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:70:10:70:10 | x | | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:78:10:78:18 | call to taint | | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:78:16:78:17 | 27 | +| params_flow.rb:78:21:78:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:21:78:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:21:78:29 | * | params_flow.rb:78:21:78:29 | * | | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3826,6 +4777,8 @@ trackEnd | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:71:10:71:10 | y | | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:78:21:78:29 | call to taint | | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:78:27:78:28 | 28 | +| params_flow.rb:78:32:78:40 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:32:78:40 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:32:78:40 | * | params_flow.rb:78:32:78:40 | * | | params_flow.rb:78:32:78:40 | call to taint | params_flow.rb:78:32:78:40 | call to taint | | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:1:11:1:11 | x | @@ -3833,6 +4786,8 @@ trackEnd | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:78:32:78:40 | call to taint | | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:78:38:78:39 | 29 | +| params_flow.rb:78:43:78:51 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:43:78:51 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:43:78:51 | * | params_flow.rb:78:43:78:51 | * | | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3852,6 +4807,8 @@ trackEnd | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:78:43:78:51 | call to taint | | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:78:49:78:50 | 30 | +| params_flow.rb:78:54:78:62 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:78:54:78:62 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:54:78:62 | * | params_flow.rb:78:54:78:62 | * | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3874,81 +4831,72 @@ trackEnd | params_flow.rb:80:1:80:4 | args | params_flow.rb:80:1:80:4 | args | | params_flow.rb:80:8:80:51 | * | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:8:80:51 | Array | params_flow.rb:80:8:80:51 | Array | -| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:1:80:4 | args | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:1:80:51 | ... = ... | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:81:22:81:25 | args | +| params_flow.rb:80:9:80:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:9:80:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:9:80:17 | * | params_flow.rb:80:9:80:17 | * | -| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:80:9:80:17 | call to taint | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:80:15:80:16 | 33 | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:81:1:81:37 | *[1] | +| params_flow.rb:80:20:80:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:20:80:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:20:80:28 | * | params_flow.rb:80:20:80:28 | * | | params_flow.rb:80:20:80:28 | call to taint | params_flow.rb:80:20:80:28 | call to taint | +| params_flow.rb:80:20:80:28 | call to taint | params_flow.rb:81:1:81:37 | *[2] | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:80:26:80:27 | 34 | +| params_flow.rb:80:26:80:27 | 34 | params_flow.rb:81:1:81:37 | *[2] | +| params_flow.rb:80:31:80:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:31:80:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:31:80:39 | * | params_flow.rb:80:31:80:39 | * | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:74:10:74:10 | w | | params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:80:31:80:39 | call to taint | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:81:1:81:37 | *[3] | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:80:37:80:38 | 35 | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:81:1:81:37 | *[3] | +| params_flow.rb:80:42:80:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:42:80:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:42:80:50 | * | params_flow.rb:80:42:80:50 | * | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:75:10:75:10 | r | | params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:80:42:80:50 | call to taint | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:75:10:75:10 | r | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:80:48:80:49 | 36 | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:81:1:81:37 | *[4] | +| params_flow.rb:81:1:81:37 | * | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:81:1:81:37 | * | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:81:1:81:37 | * | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:81:1:81:37 | *[1] | params_flow.rb:81:1:81:37 | *[1] | +| params_flow.rb:81:1:81:37 | *[2] | params_flow.rb:81:1:81:37 | *[2] | +| params_flow.rb:81:1:81:37 | *[3] | params_flow.rb:81:1:81:37 | *[3] | +| params_flow.rb:81:1:81:37 | *[4] | params_flow.rb:81:1:81:37 | *[4] | +| params_flow.rb:81:1:81:37 | *[5] | params_flow.rb:81:1:81:37 | *[5] | +| params_flow.rb:81:1:81:37 | *[6] | params_flow.rb:81:1:81:37 | *[6] | +| params_flow.rb:81:1:81:37 | *[7] | params_flow.rb:81:1:81:37 | *[7] | +| params_flow.rb:81:1:81:37 | *[8] | params_flow.rb:81:1:81:37 | *[8] | +| params_flow.rb:81:1:81:37 | *[9] | params_flow.rb:81:1:81:37 | *[9] | +| params_flow.rb:81:1:81:37 | *[10] | params_flow.rb:81:1:81:37 | *[10] | +| params_flow.rb:81:1:81:37 | *[-1] | params_flow.rb:81:1:81:37 | *[-1] | | params_flow.rb:81:1:81:37 | call to splatmid | params_flow.rb:81:1:81:37 | call to splatmid | +| params_flow.rb:81:10:81:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:81:10:81:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:81:10:81:18 | * | params_flow.rb:81:10:81:18 | * | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3968,8 +4916,9 @@ trackEnd | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:70:10:70:10 | x | | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:81:16:81:17 | 32 | -| params_flow.rb:81:21:81:25 | * ... | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:21:81:25 | * ... | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:81:28:81:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:81:28:81:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:81:28:81:36 | * | params_flow.rb:81:28:81:36 | * | | params_flow.rb:81:28:81:36 | call to taint | params_flow.rb:81:28:81:36 | call to taint | | params_flow.rb:81:34:81:35 | 37 | params_flow.rb:1:11:1:11 | x | @@ -3993,7 +4942,6 @@ trackEnd | params_flow.rb:83:1:91:3 | self in pos_many | params_flow.rb:90:5:90:10 | self | | params_flow.rb:83:1:91:3 | synthetic *args | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:83:1:91:3 | synthetic *args | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:83:1:91:3 | synthetic *args | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:83:14:83:14 | t | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:14:83:14 | t | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:14:83:14 | t | params_flow.rb:6:10:6:10 | x | @@ -4043,18 +4991,32 @@ trackEnd | params_flow.rb:83:32:83:32 | z | params_flow.rb:83:32:83:32 | z | | params_flow.rb:83:32:83:32 | z | params_flow.rb:83:32:83:32 | z | | params_flow.rb:83:32:83:32 | z | params_flow.rb:90:10:90:10 | z | +| params_flow.rb:84:5:84:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:84:5:84:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:84:5:84:10 | * | params_flow.rb:84:5:84:10 | * | | params_flow.rb:84:5:84:10 | call to sink | params_flow.rb:84:5:84:10 | call to sink | +| params_flow.rb:85:5:85:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:85:5:85:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:85:5:85:10 | * | params_flow.rb:85:5:85:10 | * | | params_flow.rb:85:5:85:10 | call to sink | params_flow.rb:85:5:85:10 | call to sink | +| params_flow.rb:86:5:86:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:86:5:86:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:86:5:86:10 | * | params_flow.rb:86:5:86:10 | * | | params_flow.rb:86:5:86:10 | call to sink | params_flow.rb:86:5:86:10 | call to sink | +| params_flow.rb:87:5:87:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:87:5:87:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:87:5:87:10 | * | params_flow.rb:87:5:87:10 | * | | params_flow.rb:87:5:87:10 | call to sink | params_flow.rb:87:5:87:10 | call to sink | +| params_flow.rb:88:5:88:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:88:5:88:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:88:5:88:10 | * | params_flow.rb:88:5:88:10 | * | | params_flow.rb:88:5:88:10 | call to sink | params_flow.rb:88:5:88:10 | call to sink | +| params_flow.rb:89:5:89:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:89:5:89:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:89:5:89:10 | * | params_flow.rb:89:5:89:10 | * | | params_flow.rb:89:5:89:10 | call to sink | params_flow.rb:89:5:89:10 | call to sink | +| params_flow.rb:90:5:90:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:90:5:90:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:90:5:90:10 | * | params_flow.rb:90:5:90:10 | * | | params_flow.rb:90:5:90:10 | call to sink | params_flow.rb:90:5:90:10 | call to sink | | params_flow.rb:90:5:90:10 | call to sink | params_flow.rb:94:1:94:48 | call to pos_many | @@ -4062,93 +5024,71 @@ trackEnd | params_flow.rb:93:1:93:4 | args | params_flow.rb:93:1:93:4 | args | | params_flow.rb:93:8:93:51 | * | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:8:93:51 | Array | params_flow.rb:93:8:93:51 | Array | -| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:1:93:4 | args | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:1:93:51 | ... = ... | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:94:33:94:36 | args | +| params_flow.rb:93:9:93:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:9:93:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:9:93:17 | * | params_flow.rb:93:9:93:17 | * | -| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:93:9:93:17 | call to taint | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:93:15:93:16 | 40 | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:94:1:94:48 | *[2] | +| params_flow.rb:93:20:93:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:20:93:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:20:93:28 | * | params_flow.rb:93:20:93:28 | * | -| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:87:10:87:10 | w | | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:93:20:93:28 | call to taint | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:94:1:94:48 | *[3] | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:87:10:87:10 | w | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:93:26:93:27 | 41 | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:94:1:94:48 | *[3] | +| params_flow.rb:93:31:93:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:31:93:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:31:93:39 | * | params_flow.rb:93:31:93:39 | * | -| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:88:10:88:10 | x | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:93:31:93:39 | call to taint | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:94:1:94:48 | *[4] | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:88:10:88:10 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:93:37:93:38 | 42 | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:94:1:94:48 | *[4] | +| params_flow.rb:93:42:93:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:42:93:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:42:93:50 | * | params_flow.rb:93:42:93:50 | * | -| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:89:10:89:10 | y | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:93:42:93:50 | call to taint | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:89:10:89:10 | y | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:93:48:93:49 | 43 | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:94:1:94:48 | *[5] | +| params_flow.rb:94:1:94:48 | * | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:1:94:48 | * | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:1:94:48 | * | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:94:1:94:48 | *[2] | params_flow.rb:94:1:94:48 | *[2] | +| params_flow.rb:94:1:94:48 | *[3] | params_flow.rb:94:1:94:48 | *[3] | +| params_flow.rb:94:1:94:48 | *[4] | params_flow.rb:94:1:94:48 | *[4] | +| params_flow.rb:94:1:94:48 | *[5] | params_flow.rb:94:1:94:48 | *[5] | +| params_flow.rb:94:1:94:48 | *[6] | params_flow.rb:94:1:94:48 | *[6] | +| params_flow.rb:94:1:94:48 | *[7] | params_flow.rb:94:1:94:48 | *[7] | +| params_flow.rb:94:1:94:48 | *[8] | params_flow.rb:94:1:94:48 | *[8] | +| params_flow.rb:94:1:94:48 | *[9] | params_flow.rb:94:1:94:48 | *[9] | +| params_flow.rb:94:1:94:48 | *[10] | params_flow.rb:94:1:94:48 | *[10] | +| params_flow.rb:94:1:94:48 | *[-1] | params_flow.rb:94:1:94:48 | *[-1] | | params_flow.rb:94:1:94:48 | call to pos_many | params_flow.rb:94:1:94:48 | call to pos_many | +| params_flow.rb:94:10:94:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:10:94:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:10:94:18 | * | params_flow.rb:94:10:94:18 | * | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4168,6 +5108,8 @@ trackEnd | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:84:10:84:10 | t | | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:94:16:94:17 | 38 | +| params_flow.rb:94:21:94:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:21:94:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:21:94:29 | * | params_flow.rb:94:21:94:29 | * | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4187,8 +5129,9 @@ trackEnd | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:85:10:85:10 | u | | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:94:27:94:28 | 39 | -| params_flow.rb:94:32:94:36 | * ... | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:32:94:36 | * ... | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:94:39:94:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:94:39:94:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:39:94:47 | * | params_flow.rb:94:39:94:47 | * | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4208,7 +5151,22 @@ trackEnd | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:87:10:87:10 | w | | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:94:39:94:47 | call to taint | | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:94:45:94:46 | 44 | +| params_flow.rb:96:1:96:88 | * | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:1:96:88 | * | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:1:96:88 | * | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:1:96:88 | *[2] | params_flow.rb:96:1:96:88 | *[2] | +| params_flow.rb:96:1:96:88 | *[3] | params_flow.rb:96:1:96:88 | *[3] | +| params_flow.rb:96:1:96:88 | *[4] | params_flow.rb:96:1:96:88 | *[4] | +| params_flow.rb:96:1:96:88 | *[5] | params_flow.rb:96:1:96:88 | *[5] | +| params_flow.rb:96:1:96:88 | *[6] | params_flow.rb:96:1:96:88 | *[6] | +| params_flow.rb:96:1:96:88 | *[7] | params_flow.rb:96:1:96:88 | *[7] | +| params_flow.rb:96:1:96:88 | *[8] | params_flow.rb:96:1:96:88 | *[8] | +| params_flow.rb:96:1:96:88 | *[9] | params_flow.rb:96:1:96:88 | *[9] | +| params_flow.rb:96:1:96:88 | *[10] | params_flow.rb:96:1:96:88 | *[10] | +| params_flow.rb:96:1:96:88 | *[-1] | params_flow.rb:96:1:96:88 | *[-1] | | params_flow.rb:96:1:96:88 | call to splatmid | params_flow.rb:96:1:96:88 | call to splatmid | +| params_flow.rb:96:10:96:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:10:96:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:10:96:18 | * | params_flow.rb:96:10:96:18 | * | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4228,6 +5186,8 @@ trackEnd | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:70:10:70:10 | x | | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:96:16:96:17 | 45 | +| params_flow.rb:96:21:96:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:21:96:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:21:96:29 | * | params_flow.rb:96:21:96:29 | * | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4247,56 +5207,46 @@ trackEnd | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:71:10:71:10 | y | | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:96:27:96:28 | 46 | -| params_flow.rb:96:32:96:65 | * ... | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:32:96:65 | * ... | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:33:96:65 | * | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:33:96:65 | Array | params_flow.rb:96:33:96:65 | Array | +| params_flow.rb:96:33:96:65 | call to [] | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:33:96:65 | call to [] | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:34:96:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:34:96:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:34:96:42 | * | params_flow.rb:96:34:96:42 | * | +| params_flow.rb:96:34:96:42 | call to taint | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:34:96:42 | call to taint | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:40:96:41 | 47 | +| params_flow.rb:96:45:96:53 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:45:96:53 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:45:96:53 | * | params_flow.rb:96:45:96:53 | * | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:74:10:74:10 | w | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:1:96:88 | *[3] | | params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:74:10:74:10 | w | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:1:96:88 | *[3] | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:51:96:52 | 48 | +| params_flow.rb:96:56:96:64 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:56:96:64 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:56:96:64 | * | params_flow.rb:96:56:96:64 | * | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:75:10:75:10 | r | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:75:10:75:10 | r | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:62:96:63 | 49 | +| params_flow.rb:96:68:96:76 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:68:96:76 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:68:96:76 | * | params_flow.rb:96:68:96:76 | * | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4316,6 +5266,8 @@ trackEnd | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:96:68:96:76 | call to taint | | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:96:74:96:75 | 50 | +| params_flow.rb:96:79:96:87 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:96:79:96:87 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:79:96:87 | * | params_flow.rb:96:79:96:87 | * | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4348,7 +5300,6 @@ trackEnd | params_flow.rb:98:1:103:3 | splatmidsmall | params_flow.rb:98:1:103:3 | splatmidsmall | | params_flow.rb:98:1:103:3 | synthetic *args | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:98:1:103:3 | synthetic *args | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:98:1:103:3 | synthetic *args | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:98:19:98:19 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:19:98:19 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:19:98:19 | a | params_flow.rb:6:10:6:10 | x | @@ -4368,8 +5319,12 @@ trackEnd | params_flow.rb:98:31:98:31 | b | params_flow.rb:98:31:98:31 | b | | params_flow.rb:98:31:98:31 | b | params_flow.rb:98:31:98:31 | b | | params_flow.rb:98:31:98:31 | b | params_flow.rb:102:10:102:10 | b | +| params_flow.rb:99:5:99:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:99:5:99:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:99:5:99:10 | * | params_flow.rb:99:5:99:10 | * | | params_flow.rb:99:5:99:10 | call to sink | params_flow.rb:99:5:99:10 | call to sink | +| params_flow.rb:100:5:100:18 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:100:5:100:18 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:100:5:100:18 | * | params_flow.rb:100:5:100:18 | * | | params_flow.rb:100:5:100:18 | call to sink | params_flow.rb:100:5:100:18 | call to sink | | params_flow.rb:100:10:100:18 | * | params_flow.rb:100:10:100:18 | * | @@ -4378,6 +5333,8 @@ trackEnd | params_flow.rb:100:10:100:18 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:100:10:100:18 | ...[...] | params_flow.rb:100:10:100:18 | ...[...] | | params_flow.rb:100:17:100:17 | 0 | params_flow.rb:100:17:100:17 | 0 | +| params_flow.rb:101:5:101:18 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:101:5:101:18 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:101:5:101:18 | * | params_flow.rb:101:5:101:18 | * | | params_flow.rb:101:5:101:18 | call to sink | params_flow.rb:101:5:101:18 | call to sink | | params_flow.rb:101:10:101:18 | * | params_flow.rb:101:10:101:18 | * | @@ -4386,11 +5343,29 @@ trackEnd | params_flow.rb:101:10:101:18 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:101:10:101:18 | ...[...] | params_flow.rb:101:10:101:18 | ...[...] | | params_flow.rb:101:17:101:17 | 1 | params_flow.rb:101:17:101:17 | 1 | +| params_flow.rb:102:5:102:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:102:5:102:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:102:5:102:10 | * | params_flow.rb:102:5:102:10 | * | | params_flow.rb:102:5:102:10 | call to sink | params_flow.rb:102:5:102:10 | call to sink | | params_flow.rb:102:5:102:10 | call to sink | params_flow.rb:105:1:105:49 | call to splatmidsmall | | params_flow.rb:102:5:102:10 | call to sink | params_flow.rb:106:1:106:46 | call to splatmidsmall | +| params_flow.rb:105:1:105:49 | * | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:1:105:49 | * | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:1:105:49 | * | params_flow.rb:105:1:105:49 | * | +| params_flow.rb:105:1:105:49 | *[1] | params_flow.rb:105:1:105:49 | *[1] | +| params_flow.rb:105:1:105:49 | *[2] | params_flow.rb:105:1:105:49 | *[2] | +| params_flow.rb:105:1:105:49 | *[3] | params_flow.rb:105:1:105:49 | *[3] | +| params_flow.rb:105:1:105:49 | *[4] | params_flow.rb:105:1:105:49 | *[4] | +| params_flow.rb:105:1:105:49 | *[5] | params_flow.rb:105:1:105:49 | *[5] | +| params_flow.rb:105:1:105:49 | *[6] | params_flow.rb:105:1:105:49 | *[6] | +| params_flow.rb:105:1:105:49 | *[7] | params_flow.rb:105:1:105:49 | *[7] | +| params_flow.rb:105:1:105:49 | *[8] | params_flow.rb:105:1:105:49 | *[8] | +| params_flow.rb:105:1:105:49 | *[9] | params_flow.rb:105:1:105:49 | *[9] | +| params_flow.rb:105:1:105:49 | *[10] | params_flow.rb:105:1:105:49 | *[10] | +| params_flow.rb:105:1:105:49 | *[-1] | params_flow.rb:105:1:105:49 | *[-1] | | params_flow.rb:105:1:105:49 | call to splatmidsmall | params_flow.rb:105:1:105:49 | call to splatmidsmall | +| params_flow.rb:105:15:105:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:15:105:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:15:105:23 | * | params_flow.rb:105:15:105:23 | * | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4410,39 +5385,39 @@ trackEnd | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:99:10:99:10 | a | | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:105:21:105:22 | 52 | -| params_flow.rb:105:26:105:48 | * ... | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:26:105:48 | * ... | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:27:105:48 | * | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:27:105:48 | Array | params_flow.rb:105:27:105:48 | Array | +| params_flow.rb:105:27:105:48 | call to [] | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:27:105:48 | call to [] | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:28:105:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:28:105:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:28:105:36 | * | params_flow.rb:105:28:105:36 | * | +| params_flow.rb:105:28:105:36 | call to taint | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:28:105:36 | call to taint | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:34:105:35 | 53 | +| params_flow.rb:105:39:105:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:105:39:105:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:39:105:47 | * | params_flow.rb:105:39:105:47 | * | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:102:10:102:10 | b | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:102:10:102:10 | b | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:45:105:46 | 54 | +| params_flow.rb:106:1:106:46 | * | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:1:106:46 | * | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:1:106:46 | * | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:1:106:46 | call to splatmidsmall | params_flow.rb:106:1:106:46 | call to splatmidsmall | +| params_flow.rb:106:15:106:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:15:106:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:15:106:23 | * | params_flow.rb:106:15:106:23 | * | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4462,6 +5437,8 @@ trackEnd | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:99:10:99:10 | a | | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:106:15:106:23 | call to taint | | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:106:21:106:22 | 55 | +| params_flow.rb:106:26:106:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:26:106:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:26:106:34 | * | params_flow.rb:106:26:106:34 | * | | params_flow.rb:106:26:106:34 | call to taint | params_flow.rb:106:26:106:34 | call to taint | | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:1:11:1:11 | x | @@ -4469,6 +5446,8 @@ trackEnd | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:106:26:106:34 | call to taint | | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:106:32:106:33 | 56 | +| params_flow.rb:106:37:106:45 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:106:37:106:45 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:37:106:45 | * | params_flow.rb:106:37:106:45 | * | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4501,8 +5480,6 @@ trackEnd | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | | params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:108:37:108:37 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:37:108:37 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:37:108:37 | a | params_flow.rb:6:10:6:10 | x | @@ -4521,8 +5498,12 @@ trackEnd | params_flow.rb:108:44:108:44 | c | params_flow.rb:108:44:108:44 | c | | params_flow.rb:108:44:108:44 | c | params_flow.rb:108:44:108:44 | c | | params_flow.rb:108:44:108:44 | c | params_flow.rb:111:10:111:10 | c | +| params_flow.rb:109:5:109:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:109:5:109:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:109:5:109:10 | * | params_flow.rb:109:5:109:10 | * | | params_flow.rb:109:5:109:10 | call to sink | params_flow.rb:109:5:109:10 | call to sink | +| params_flow.rb:110:5:110:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:110:5:110:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:110:5:110:13 | * | params_flow.rb:110:5:110:13 | * | | params_flow.rb:110:5:110:13 | call to sink | params_flow.rb:110:5:110:13 | call to sink | | params_flow.rb:110:10:110:13 | * | params_flow.rb:110:10:110:13 | * | @@ -4531,14 +5512,19 @@ trackEnd | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:110:12:110:12 | 0 | params_flow.rb:110:12:110:12 | 0 | +| params_flow.rb:111:5:111:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:111:5:111:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:111:5:111:10 | * | params_flow.rb:111:5:111:10 | * | | params_flow.rb:111:5:111:10 | call to sink | params_flow.rb:111:5:111:10 | call to sink | | params_flow.rb:111:5:111:10 | call to sink | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | | params_flow.rb:114:1:114:67 | * | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:114:1:114:67 | * | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:114:1:114:67 | * | params_flow.rb:114:1:114:67 | * | | params_flow.rb:114:1:114:67 | ** | params_flow.rb:108:1:112:3 | **kwargs | | params_flow.rb:114:1:114:67 | ** | params_flow.rb:114:1:114:67 | ** | | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | +| params_flow.rb:114:33:114:41 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:33:114:41 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:33:114:41 | * | params_flow.rb:114:33:114:41 | * | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4546,6 +5532,7 @@ trackEnd | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:108:37:108:37 | a | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:108:37:108:37 | a | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:109:10:109:10 | a | +| params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:114:33:114:41 | call to taint | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:1:11:1:11 | x | @@ -4556,25 +5543,22 @@ trackEnd | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:108:37:108:37 | a | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:108:37:108:37 | a | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:109:10:109:10 | a | +| params_flow.rb:114:39:114:40 | 58 | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:114:33:114:41 | call to taint | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:114:39:114:40 | 58 | +| params_flow.rb:114:44:114:52 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:44:114:52 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:44:114:52 | * | params_flow.rb:114:44:114:52 | * | -| params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:114:44:114:52 | call to taint | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:114:50:114:51 | 59 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:114:50:114:51 | 59 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:114:50:114:51 | 59 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:114:50:114:51 | 59 | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:114:44:114:52 | call to taint | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:114:50:114:51 | 59 | | params_flow.rb:114:55:114:55 | :c | params_flow.rb:114:55:114:55 | :c | | params_flow.rb:114:55:114:66 | Pair | params_flow.rb:114:55:114:66 | Pair | +| params_flow.rb:114:58:114:66 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:114:58:114:66 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:58:114:66 | * | params_flow.rb:114:58:114:66 | * | | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4596,64 +5580,51 @@ trackEnd | params_flow.rb:114:64:114:65 | 60 | params_flow.rb:114:64:114:65 | 60 | | params_flow.rb:116:1:116:1 | x | params_flow.rb:116:1:116:1 | x | | params_flow.rb:116:5:116:6 | Array | params_flow.rb:116:5:116:6 | Array | -| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:116:1:116:1 | x | | params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:116:1:116:6 | ... = ... | | params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:116:5:116:6 | call to [] | | params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:117:1:117:1 | x | +| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:118:1:118:14 | *[0] | | params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:118:13:118:13 | x | -| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:117:1:117:1 | [post] x | +| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:118:1:118:14 | *[0] | | params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:118:13:118:13 | x | | params_flow.rb:117:1:117:15 | * | params_flow.rb:117:1:117:15 | * | | params_flow.rb:117:1:117:15 | call to []= | params_flow.rb:117:1:117:15 | call to []= | | params_flow.rb:117:3:117:14 | call to some_index | params_flow.rb:117:3:117:14 | call to some_index | +| params_flow.rb:117:19:117:27 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:117:19:117:27 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:117:19:117:27 | * | params_flow.rb:117:19:117:27 | * | | params_flow.rb:117:19:117:27 | __synth__0 | params_flow.rb:117:19:117:27 | __synth__0 | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:10:10:10:11 | p1 | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:1:117:15 | __synth__0 | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:1:117:27 | ... | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:19:117:27 | ... = ... | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:19:117:27 | __synth__0 | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:19:117:27 | call to taint | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:10:10:10:11 | p1 | -| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:1:117:15 | __synth__0 | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:1:117:27 | ... | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:19:117:27 | ... = ... | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:19:117:27 | __synth__0 | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:19:117:27 | call to taint | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:25:117:26 | 61 | +| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:118:1:118:14 | *[-1] | +| params_flow.rb:118:1:118:14 | *[0] | params_flow.rb:118:1:118:14 | *[0] | +| params_flow.rb:118:1:118:14 | *[1] | params_flow.rb:118:1:118:14 | *[1] | +| params_flow.rb:118:1:118:14 | *[2] | params_flow.rb:118:1:118:14 | *[2] | +| params_flow.rb:118:1:118:14 | *[3] | params_flow.rb:118:1:118:14 | *[3] | +| params_flow.rb:118:1:118:14 | *[4] | params_flow.rb:118:1:118:14 | *[4] | +| params_flow.rb:118:1:118:14 | *[5] | params_flow.rb:118:1:118:14 | *[5] | +| params_flow.rb:118:1:118:14 | *[6] | params_flow.rb:118:1:118:14 | *[6] | +| params_flow.rb:118:1:118:14 | *[7] | params_flow.rb:118:1:118:14 | *[7] | +| params_flow.rb:118:1:118:14 | *[8] | params_flow.rb:118:1:118:14 | *[8] | +| params_flow.rb:118:1:118:14 | *[9] | params_flow.rb:118:1:118:14 | *[9] | +| params_flow.rb:118:1:118:14 | *[10] | params_flow.rb:118:1:118:14 | *[10] | +| params_flow.rb:118:1:118:14 | *[-1] | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:118:1:118:14 | call to positional | params_flow.rb:118:1:118:14 | call to positional | -| params_flow.rb:118:12:118:13 | * ... | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:118:12:118:13 | * ... | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:120:1:126:3 | &block | params_flow.rb:120:1:126:3 | &block | | params_flow.rb:120:1:126:3 | destruct | params_flow.rb:120:1:126:3 | destruct | @@ -4667,35 +5638,46 @@ trackEnd | params_flow.rb:120:1:126:3 | self in destruct | params_flow.rb:123:5:123:10 | self | | params_flow.rb:120:1:126:3 | self in destruct | params_flow.rb:124:5:124:10 | self | | params_flow.rb:120:1:126:3 | self in destruct | params_flow.rb:125:5:125:10 | self | +| params_flow.rb:120:1:126:3 | synthetic *args | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:120:15:120:15 | a | params_flow.rb:120:15:120:15 | a | | params_flow.rb:120:17:120:17 | b | params_flow.rb:120:17:120:17 | b | | params_flow.rb:120:22:120:22 | c | params_flow.rb:120:22:120:22 | c | | params_flow.rb:120:25:120:25 | d | params_flow.rb:120:25:120:25 | d | | params_flow.rb:120:27:120:27 | e | params_flow.rb:120:27:120:27 | e | +| params_flow.rb:121:5:121:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:121:5:121:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:121:5:121:10 | * | params_flow.rb:121:5:121:10 | * | | params_flow.rb:121:5:121:10 | call to sink | params_flow.rb:121:5:121:10 | call to sink | | params_flow.rb:121:10:121:10 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:121:10:121:10 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:121:10:121:10 | a | params_flow.rb:6:10:6:10 | x | | params_flow.rb:121:10:121:10 | a | params_flow.rb:121:10:121:10 | a | +| params_flow.rb:122:5:122:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:122:5:122:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:122:5:122:10 | * | params_flow.rb:122:5:122:10 | * | | params_flow.rb:122:5:122:10 | call to sink | params_flow.rb:122:5:122:10 | call to sink | | params_flow.rb:122:10:122:10 | b | params_flow.rb:5:10:5:10 | x | | params_flow.rb:122:10:122:10 | b | params_flow.rb:5:10:5:10 | x | | params_flow.rb:122:10:122:10 | b | params_flow.rb:6:10:6:10 | x | | params_flow.rb:122:10:122:10 | b | params_flow.rb:122:10:122:10 | b | +| params_flow.rb:123:5:123:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:123:5:123:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:123:5:123:10 | * | params_flow.rb:123:5:123:10 | * | | params_flow.rb:123:5:123:10 | call to sink | params_flow.rb:123:5:123:10 | call to sink | | params_flow.rb:123:10:123:10 | c | params_flow.rb:5:10:5:10 | x | | params_flow.rb:123:10:123:10 | c | params_flow.rb:5:10:5:10 | x | | params_flow.rb:123:10:123:10 | c | params_flow.rb:6:10:6:10 | x | | params_flow.rb:123:10:123:10 | c | params_flow.rb:123:10:123:10 | c | +| params_flow.rb:124:5:124:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:124:5:124:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:124:5:124:10 | * | params_flow.rb:124:5:124:10 | * | | params_flow.rb:124:5:124:10 | call to sink | params_flow.rb:124:5:124:10 | call to sink | | params_flow.rb:124:10:124:10 | d | params_flow.rb:5:10:5:10 | x | | params_flow.rb:124:10:124:10 | d | params_flow.rb:5:10:5:10 | x | | params_flow.rb:124:10:124:10 | d | params_flow.rb:6:10:6:10 | x | | params_flow.rb:124:10:124:10 | d | params_flow.rb:124:10:124:10 | d | +| params_flow.rb:125:5:125:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:125:5:125:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:125:5:125:10 | * | params_flow.rb:125:5:125:10 | * | | params_flow.rb:125:5:125:10 | call to sink | params_flow.rb:125:5:125:10 | call to sink | | params_flow.rb:125:5:125:10 | call to sink | params_flow.rb:128:1:128:61 | call to destruct | @@ -4703,11 +5685,14 @@ trackEnd | params_flow.rb:125:10:125:10 | e | params_flow.rb:5:10:5:10 | x | | params_flow.rb:125:10:125:10 | e | params_flow.rb:6:10:6:10 | x | | params_flow.rb:125:10:125:10 | e | params_flow.rb:125:10:125:10 | e | +| params_flow.rb:128:1:128:61 | * | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:128:1:128:61 | * | params_flow.rb:128:1:128:61 | * | | params_flow.rb:128:1:128:61 | call to destruct | params_flow.rb:128:1:128:61 | call to destruct | | params_flow.rb:128:10:128:31 | * | params_flow.rb:128:10:128:31 | * | | params_flow.rb:128:10:128:31 | Array | params_flow.rb:128:10:128:31 | Array | | params_flow.rb:128:10:128:31 | call to [] | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:128:11:128:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:11:128:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:11:128:19 | * | params_flow.rb:128:11:128:19 | * | | params_flow.rb:128:11:128:19 | call to taint | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:1:11:1:11 | x | @@ -4715,6 +5700,8 @@ trackEnd | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:128:17:128:18 | 62 | +| params_flow.rb:128:22:128:30 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:22:128:30 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:22:128:30 | * | params_flow.rb:128:22:128:30 | * | | params_flow.rb:128:22:128:30 | call to taint | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:128:28:128:29 | 63 | params_flow.rb:1:11:1:11 | x | @@ -4725,6 +5712,8 @@ trackEnd | params_flow.rb:128:34:128:60 | * | params_flow.rb:128:34:128:60 | * | | params_flow.rb:128:34:128:60 | Array | params_flow.rb:128:34:128:60 | Array | | params_flow.rb:128:34:128:60 | call to [] | params_flow.rb:128:34:128:60 | call to [] | +| params_flow.rb:128:35:128:43 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:35:128:43 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:35:128:43 | * | params_flow.rb:128:35:128:43 | * | | params_flow.rb:128:35:128:43 | call to taint | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:128:41:128:42 | 64 | params_flow.rb:1:11:1:11 | x | @@ -4736,6 +5725,8 @@ trackEnd | params_flow.rb:128:46:128:59 | Array | params_flow.rb:128:46:128:59 | Array | | params_flow.rb:128:46:128:59 | call to [] | params_flow.rb:128:46:128:59 | call to [] | | params_flow.rb:128:47:128:47 | 0 | params_flow.rb:128:47:128:47 | 0 | +| params_flow.rb:128:50:128:58 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:50:128:58 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:50:128:58 | * | params_flow.rb:128:50:128:58 | * | | params_flow.rb:128:50:128:58 | call to taint | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:128:56:128:57 | 65 | params_flow.rb:1:11:1:11 | x | @@ -4746,57 +5737,52 @@ trackEnd | params_flow.rb:130:1:130:4 | args | params_flow.rb:130:1:130:4 | args | | params_flow.rb:130:8:130:29 | * | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:8:130:29 | Array | params_flow.rb:130:8:130:29 | Array | -| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:84:10:84:10 | t | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:130:1:130:4 | args | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:130:1:130:29 | ... = ... | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:130:8:130:29 | call to [] | +| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:131:1:131:46 | *[0] | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:131:11:131:14 | args | +| params_flow.rb:130:9:130:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:130:9:130:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:9:130:17 | * | params_flow.rb:130:9:130:17 | * | -| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:84:10:84:10 | t | | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:130:9:130:17 | call to taint | +| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:131:1:131:46 | *[0] | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:84:10:84:10 | t | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:130:9:130:17 | call to taint | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:130:15:130:16 | 66 | +| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:131:1:131:46 | *[0] | +| params_flow.rb:130:20:130:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:130:20:130:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:20:130:28 | * | params_flow.rb:130:20:130:28 | * | -| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:85:10:85:10 | u | | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:130:20:130:28 | call to taint | +| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:85:10:85:10 | u | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:130:20:130:28 | call to taint | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:130:26:130:27 | 67 | +| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:131:1:131:46 | *[1] | +| params_flow.rb:131:1:131:46 | * | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:1:131:46 | * | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:1:131:46 | * | params_flow.rb:131:1:131:46 | * | +| params_flow.rb:131:1:131:46 | *[0] | params_flow.rb:131:1:131:46 | *[0] | +| params_flow.rb:131:1:131:46 | *[1] | params_flow.rb:131:1:131:46 | *[1] | +| params_flow.rb:131:1:131:46 | *[2] | params_flow.rb:131:1:131:46 | *[2] | +| params_flow.rb:131:1:131:46 | *[3] | params_flow.rb:131:1:131:46 | *[3] | +| params_flow.rb:131:1:131:46 | *[4] | params_flow.rb:131:1:131:46 | *[4] | +| params_flow.rb:131:1:131:46 | *[5] | params_flow.rb:131:1:131:46 | *[5] | +| params_flow.rb:131:1:131:46 | *[6] | params_flow.rb:131:1:131:46 | *[6] | +| params_flow.rb:131:1:131:46 | *[7] | params_flow.rb:131:1:131:46 | *[7] | +| params_flow.rb:131:1:131:46 | *[8] | params_flow.rb:131:1:131:46 | *[8] | +| params_flow.rb:131:1:131:46 | *[9] | params_flow.rb:131:1:131:46 | *[9] | +| params_flow.rb:131:1:131:46 | *[10] | params_flow.rb:131:1:131:46 | *[10] | +| params_flow.rb:131:1:131:46 | *[-1] | params_flow.rb:131:1:131:46 | *[-1] | | params_flow.rb:131:1:131:46 | call to pos_many | params_flow.rb:131:1:131:46 | call to pos_many | -| params_flow.rb:131:10:131:14 | * ... | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:10:131:14 | * ... | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:131:17:131:25 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:131:17:131:25 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:131:17:131:25 | * | params_flow.rb:131:17:131:25 | * | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4857,6 +5843,8 @@ trackEnd | params_flow.rb:133:14:133:18 | *args | params_flow.rb:133:15:133:18 | args | | params_flow.rb:133:14:133:18 | *args | params_flow.rb:134:10:134:13 | args | | params_flow.rb:133:15:133:18 | args | params_flow.rb:133:15:133:18 | args | +| params_flow.rb:134:5:134:16 | * | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:134:5:134:16 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:134:5:134:16 | * | params_flow.rb:134:5:134:16 | * | | params_flow.rb:134:5:134:16 | call to sink | params_flow.rb:134:5:134:16 | call to sink | | params_flow.rb:134:5:134:16 | call to sink | params_flow.rb:137:1:137:44 | call to splatall | @@ -4866,6 +5854,18 @@ trackEnd | params_flow.rb:134:10:134:16 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:134:10:134:16 | ...[...] | params_flow.rb:134:10:134:16 | ...[...] | | params_flow.rb:134:15:134:15 | 1 | params_flow.rb:134:15:134:15 | 1 | +| params_flow.rb:137:1:137:44 | *[0] | params_flow.rb:137:1:137:44 | *[0] | +| params_flow.rb:137:1:137:44 | *[1] | params_flow.rb:137:1:137:44 | *[1] | +| params_flow.rb:137:1:137:44 | *[2] | params_flow.rb:137:1:137:44 | *[2] | +| params_flow.rb:137:1:137:44 | *[3] | params_flow.rb:137:1:137:44 | *[3] | +| params_flow.rb:137:1:137:44 | *[4] | params_flow.rb:137:1:137:44 | *[4] | +| params_flow.rb:137:1:137:44 | *[5] | params_flow.rb:137:1:137:44 | *[5] | +| params_flow.rb:137:1:137:44 | *[6] | params_flow.rb:137:1:137:44 | *[6] | +| params_flow.rb:137:1:137:44 | *[7] | params_flow.rb:137:1:137:44 | *[7] | +| params_flow.rb:137:1:137:44 | *[8] | params_flow.rb:137:1:137:44 | *[8] | +| params_flow.rb:137:1:137:44 | *[9] | params_flow.rb:137:1:137:44 | *[9] | +| params_flow.rb:137:1:137:44 | *[10] | params_flow.rb:137:1:137:44 | *[10] | +| params_flow.rb:137:1:137:44 | *[-1] | params_flow.rb:137:1:137:44 | *[-1] | | params_flow.rb:137:1:137:44 | call to splatall | params_flow.rb:137:1:137:44 | call to splatall | | params_flow.rb:137:10:137:43 | * ... | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:137:10:137:43 | * ... | params_flow.rb:133:15:133:18 | args | @@ -4873,19 +5873,27 @@ trackEnd | params_flow.rb:137:10:137:43 | * ... | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:11:137:43 | * | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:11:137:43 | Array | params_flow.rb:137:11:137:43 | Array | +| params_flow.rb:137:11:137:43 | call to [] | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:11:137:43 | call to [] | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:12:137:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:137:12:137:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:12:137:20 | * | params_flow.rb:137:12:137:20 | * | +| params_flow.rb:137:12:137:20 | call to taint | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:12:137:20 | call to taint | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:137:18:137:19 | 69 | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:137:18:137:19 | 69 | +| params_flow.rb:137:23:137:31 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:137:23:137:31 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:23:137:31 | * | params_flow.rb:137:23:137:31 | * | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:134:10:134:16 | ...[...] | +| params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:1:137:44 | *[1] | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:1:11:1:11 | x | @@ -4894,13 +5902,18 @@ trackEnd | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:6:10:6:10 | x | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:134:10:134:16 | ...[...] | +| params_flow.rb:137:29:137:30 | 70 | params_flow.rb:137:1:137:44 | *[1] | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:137:29:137:30 | 70 | +| params_flow.rb:137:34:137:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:137:34:137:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:34:137:42 | * | params_flow.rb:137:34:137:42 | * | +| params_flow.rb:137:34:137:42 | call to taint | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:137:34:137:42 | call to taint | params_flow.rb:137:34:137:42 | call to taint | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:137:40:137:41 | 71 | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:137:34:137:42 | call to taint | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:137:40:137:41 | 71 | forwardButNoBackwardFlow diff --git a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected index cce71bf42ea..e4708ee711e 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected @@ -42,15 +42,18 @@ edges | params_flow.rb:41:26:41:29 | args [element :p1] | params_flow.rb:41:24:41:29 | ** ... [element :p1] | | params_flow.rb:43:1:43:4 | args [element 0] | params_flow.rb:44:24:44:27 | args [element 0] | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:43:1:43:4 | args [element 0] | +| params_flow.rb:44:1:44:28 | *[1] | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:44:23:44:27 | * ... [element 0] | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:44:23:44:27 | * ... [element 0] | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:44:24:44:27 | args [element 0] | params_flow.rb:44:23:44:27 | * ... [element 0] | | params_flow.rb:46:1:46:4 | args [element 0] | params_flow.rb:47:13:47:16 | args [element 0] | | params_flow.rb:46:1:46:4 | args [element 1] | params_flow.rb:47:13:47:16 | args [element 1] | | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:46:1:46:4 | args [element 0] | | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:46:1:46:4 | args [element 1] | -| params_flow.rb:47:12:47:16 | * ... [element 0] | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:47:12:47:16 | * ... [element 1] | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:47:1:47:17 | *[0] | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:47:1:47:17 | *[1] | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:47:12:47:16 | * ... [element 0] | params_flow.rb:47:1:47:17 | *[0] | +| params_flow.rb:47:12:47:16 | * ... [element 1] | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:47:13:47:16 | args [element 0] | params_flow.rb:47:12:47:16 | * ... [element 0] | | params_flow.rb:47:13:47:16 | args [element 1] | params_flow.rb:47:12:47:16 | * ... [element 1] | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:50:10:50:11 | p1 | @@ -61,18 +64,28 @@ edges | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:49:17:49:24 | *posargs [element 0] | | params_flow.rb:57:1:57:4 | args [element 0] | params_flow.rb:58:21:58:24 | args [element 0] | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:57:1:57:4 | args [element 0] | +| params_flow.rb:58:1:58:25 | *[1] | params_flow.rb:49:17:49:24 | *posargs [element 0] | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:20:58:24 | * ... [element 0] | params_flow.rb:49:17:49:24 | *posargs [element 0] | +| params_flow.rb:58:20:58:24 | * ... [element 0] | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:58:21:58:24 | args [element 0] | params_flow.rb:58:20:58:24 | * ... [element 0] | | params_flow.rb:60:1:60:4 | args [element 0] | params_flow.rb:61:10:61:13 | args [element 0] | +| params_flow.rb:60:1:60:4 | args [element 1] | params_flow.rb:61:10:61:13 | args [element 1] | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:60:1:60:4 | args [element 0] | -| params_flow.rb:61:9:61:13 | * ... [element 0] | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:60:1:60:4 | args [element 1] | +| params_flow.rb:61:1:61:14 | *[0] | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:61:1:61:14 | *[1] | params_flow.rb:49:17:49:24 | *posargs [element 0] | +| params_flow.rb:61:9:61:13 | * ... [element 0] | params_flow.rb:61:1:61:14 | *[0] | +| params_flow.rb:61:9:61:13 | * ... [element 1] | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:61:10:61:13 | args [element 0] | params_flow.rb:61:9:61:13 | * ... [element 0] | +| params_flow.rb:61:10:61:13 | args [element 1] | params_flow.rb:61:9:61:13 | * ... [element 1] | | params_flow.rb:63:1:63:4 | args | params_flow.rb:67:13:67:16 | args | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:63:1:63:4 | args | | params_flow.rb:64:16:64:17 | *x [element 0] | params_flow.rb:65:10:65:10 | x [element 0] | | params_flow.rb:65:10:65:10 | x [element 0] | params_flow.rb:65:10:65:13 | ...[...] | +| params_flow.rb:67:1:67:17 | *[0] | params_flow.rb:64:16:64:17 | *x [element 0] | | params_flow.rb:67:12:67:16 | * ... [element 0] | params_flow.rb:64:16:64:17 | *x [element 0] | +| params_flow.rb:67:12:67:16 | * ... [element 0] | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:67:13:67:16 | args | params_flow.rb:67:12:67:16 | * ... [element 0] | | params_flow.rb:69:14:69:14 | x | params_flow.rb:70:10:70:10 | x | | params_flow.rb:69:17:69:17 | y | params_flow.rb:71:10:71:10 | y | @@ -88,10 +101,13 @@ edges | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:80:1:80:4 | args [element 0] | | params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:80:1:80:4 | args [element 2] | | params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:80:1:80:4 | args [element 3] | +| params_flow.rb:81:1:81:37 | *[1] | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:81:1:81:37 | *[3] | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:81:1:81:37 | *[4] | params_flow.rb:69:27:69:27 | r | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:81:21:81:25 | * ... [element 0] | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:81:21:81:25 | * ... [element 2] | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:81:21:81:25 | * ... [element 3] | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:81:21:81:25 | * ... [element 0] | params_flow.rb:81:1:81:37 | *[1] | +| params_flow.rb:81:21:81:25 | * ... [element 2] | params_flow.rb:81:1:81:37 | *[3] | +| params_flow.rb:81:21:81:25 | * ... [element 3] | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:81:22:81:25 | args [element 0] | params_flow.rb:81:21:81:25 | * ... [element 0] | | params_flow.rb:81:22:81:25 | args [element 2] | params_flow.rb:81:21:81:25 | * ... [element 2] | | params_flow.rb:81:22:81:25 | args [element 3] | params_flow.rb:81:21:81:25 | * ... [element 3] | @@ -109,29 +125,36 @@ edges | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:93:1:93:4 | args [element 1] | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:93:1:93:4 | args [element 2] | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:93:1:93:4 | args [element 3] | +| params_flow.rb:94:1:94:48 | *[2] | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:94:1:94:48 | *[3] | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:94:1:94:48 | *[4] | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:94:1:94:48 | *[5] | params_flow.rb:83:29:83:29 | y | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:83:14:83:14 | t | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:94:32:94:36 | * ... [element 0] | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:94:32:94:36 | * ... [element 1] | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:94:32:94:36 | * ... [element 2] | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:94:32:94:36 | * ... [element 3] | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:94:32:94:36 | * ... [element 0] | params_flow.rb:94:1:94:48 | *[2] | +| params_flow.rb:94:32:94:36 | * ... [element 1] | params_flow.rb:94:1:94:48 | *[3] | +| params_flow.rb:94:32:94:36 | * ... [element 2] | params_flow.rb:94:1:94:48 | *[4] | +| params_flow.rb:94:32:94:36 | * ... [element 3] | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:94:33:94:36 | args [element 0] | params_flow.rb:94:32:94:36 | * ... [element 0] | | params_flow.rb:94:33:94:36 | args [element 1] | params_flow.rb:94:32:94:36 | * ... [element 1] | | params_flow.rb:94:33:94:36 | args [element 2] | params_flow.rb:94:32:94:36 | * ... [element 2] | | params_flow.rb:94:33:94:36 | args [element 3] | params_flow.rb:94:32:94:36 | * ... [element 3] | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:96:1:96:88 | *[3] | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:1:96:88 | *[4] | params_flow.rb:69:27:69:27 | r | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:69:14:69:14 | x | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:96:32:96:65 | * ... [element 1] | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:32:96:65 | * ... [element 2] | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:32:96:65 | * ... [element 1] | params_flow.rb:96:1:96:88 | *[3] | +| params_flow.rb:96:32:96:65 | * ... [element 2] | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:32:96:65 | * ... [element 1] | | params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:32:96:65 | * ... [element 2] | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:69:24:69:24 | w | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:69:27:69:27 | r | | params_flow.rb:98:19:98:19 | a | params_flow.rb:99:10:99:10 | a | | params_flow.rb:98:31:98:31 | b | params_flow.rb:102:10:102:10 | b | +| params_flow.rb:105:1:105:49 | *[2] | params_flow.rb:98:31:98:31 | b | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:98:19:98:19 | a | -| params_flow.rb:105:26:105:48 | * ... [element 1] | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:26:105:48 | * ... [element 1] | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:26:105:48 | * ... [element 1] | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:98:19:98:19 | a | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:98:31:98:31 | b | @@ -144,21 +167,26 @@ edges | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:108:44:108:44 | c | | params_flow.rb:117:1:117:1 | [post] x [element] | params_flow.rb:118:13:118:13 | x [element] | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:1:117:1 | [post] x [element] | -| params_flow.rb:118:12:118:13 | * ... [element] | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:118:12:118:13 | * ... [element] | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:118:1:118:14 | *[-1] | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:118:1:118:14 | *[-1] | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:118:12:118:13 | * ... [element] | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:118:13:118:13 | x [element] | params_flow.rb:118:12:118:13 | * ... [element] | | params_flow.rb:130:1:130:4 | args [element 0] | params_flow.rb:131:11:131:14 | args [element 0] | | params_flow.rb:130:1:130:4 | args [element 1] | params_flow.rb:131:11:131:14 | args [element 1] | | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:130:1:130:4 | args [element 0] | | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:130:1:130:4 | args [element 1] | -| params_flow.rb:131:10:131:14 | * ... [element 0] | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:131:10:131:14 | * ... [element 1] | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:131:1:131:46 | *[0] | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:131:1:131:46 | *[1] | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:131:10:131:14 | * ... [element 0] | params_flow.rb:131:1:131:46 | *[0] | +| params_flow.rb:131:10:131:14 | * ... [element 1] | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:131:11:131:14 | args [element 0] | params_flow.rb:131:10:131:14 | * ... [element 0] | | params_flow.rb:131:11:131:14 | args [element 1] | params_flow.rb:131:10:131:14 | * ... [element 1] | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:83:17:83:17 | u | | params_flow.rb:133:14:133:18 | *args [element 1] | params_flow.rb:134:10:134:13 | args [element 1] | | params_flow.rb:134:10:134:13 | args [element 1] | params_flow.rb:134:10:134:16 | ...[...] | +| params_flow.rb:137:1:137:44 | *[1] | params_flow.rb:133:14:133:18 | *args [element 1] | | params_flow.rb:137:10:137:43 | * ... [element 1] | params_flow.rb:133:14:133:18 | *args [element 1] | +| params_flow.rb:137:10:137:43 | * ... [element 1] | params_flow.rb:137:1:137:44 | *[1] | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:10:137:43 | * ... [element 1] | nodes | params_flow.rb:9:16:9:17 | p1 | semmle.label | p1 | @@ -210,6 +238,7 @@ nodes | params_flow.rb:41:26:41:29 | args [element :p1] | semmle.label | args [element :p1] | | params_flow.rb:43:1:43:4 | args [element 0] | semmle.label | args [element 0] | | params_flow.rb:43:9:43:17 | call to taint | semmle.label | call to taint | +| params_flow.rb:44:1:44:28 | *[1] | semmle.label | *[1] | | params_flow.rb:44:12:44:20 | call to taint | semmle.label | call to taint | | params_flow.rb:44:23:44:27 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:44:24:44:27 | args [element 0] | semmle.label | args [element 0] | @@ -217,6 +246,8 @@ nodes | params_flow.rb:46:1:46:4 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:46:9:46:17 | call to taint | semmle.label | call to taint | | params_flow.rb:46:20:46:28 | call to taint | semmle.label | call to taint | +| params_flow.rb:47:1:47:17 | *[0] | semmle.label | *[0] | +| params_flow.rb:47:1:47:17 | *[1] | semmle.label | *[1] | | params_flow.rb:47:12:47:16 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:47:12:47:16 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:47:13:47:16 | args [element 0] | semmle.label | args [element 0] | @@ -231,18 +262,26 @@ nodes | params_flow.rb:55:20:55:28 | call to taint | semmle.label | call to taint | | params_flow.rb:57:1:57:4 | args [element 0] | semmle.label | args [element 0] | | params_flow.rb:57:9:57:17 | call to taint | semmle.label | call to taint | +| params_flow.rb:58:1:58:25 | *[1] | semmle.label | *[1] | | params_flow.rb:58:9:58:17 | call to taint | semmle.label | call to taint | | params_flow.rb:58:20:58:24 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:58:21:58:24 | args [element 0] | semmle.label | args [element 0] | | params_flow.rb:60:1:60:4 | args [element 0] | semmle.label | args [element 0] | +| params_flow.rb:60:1:60:4 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:60:9:60:17 | call to taint | semmle.label | call to taint | +| params_flow.rb:60:20:60:28 | call to taint | semmle.label | call to taint | +| params_flow.rb:61:1:61:14 | *[0] | semmle.label | *[0] | +| params_flow.rb:61:1:61:14 | *[1] | semmle.label | *[1] | | params_flow.rb:61:9:61:13 | * ... [element 0] | semmle.label | * ... [element 0] | +| params_flow.rb:61:9:61:13 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:61:10:61:13 | args [element 0] | semmle.label | args [element 0] | +| params_flow.rb:61:10:61:13 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:63:1:63:4 | args | semmle.label | args | | params_flow.rb:63:8:63:16 | call to taint | semmle.label | call to taint | | params_flow.rb:64:16:64:17 | *x [element 0] | semmle.label | *x [element 0] | | params_flow.rb:65:10:65:10 | x [element 0] | semmle.label | x [element 0] | | params_flow.rb:65:10:65:13 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:67:1:67:17 | *[0] | semmle.label | *[0] | | params_flow.rb:67:12:67:16 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:67:13:67:16 | args | semmle.label | args | | params_flow.rb:69:14:69:14 | x | semmle.label | x | @@ -263,6 +302,9 @@ nodes | params_flow.rb:80:9:80:17 | call to taint | semmle.label | call to taint | | params_flow.rb:80:31:80:39 | call to taint | semmle.label | call to taint | | params_flow.rb:80:42:80:50 | call to taint | semmle.label | call to taint | +| params_flow.rb:81:1:81:37 | *[1] | semmle.label | *[1] | +| params_flow.rb:81:1:81:37 | *[3] | semmle.label | *[3] | +| params_flow.rb:81:1:81:37 | *[4] | semmle.label | *[4] | | params_flow.rb:81:10:81:18 | call to taint | semmle.label | call to taint | | params_flow.rb:81:21:81:25 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:81:21:81:25 | * ... [element 2] | semmle.label | * ... [element 2] | @@ -290,6 +332,10 @@ nodes | params_flow.rb:93:20:93:28 | call to taint | semmle.label | call to taint | | params_flow.rb:93:31:93:39 | call to taint | semmle.label | call to taint | | params_flow.rb:93:42:93:50 | call to taint | semmle.label | call to taint | +| params_flow.rb:94:1:94:48 | *[2] | semmle.label | *[2] | +| params_flow.rb:94:1:94:48 | *[3] | semmle.label | *[3] | +| params_flow.rb:94:1:94:48 | *[4] | semmle.label | *[4] | +| params_flow.rb:94:1:94:48 | *[5] | semmle.label | *[5] | | params_flow.rb:94:10:94:18 | call to taint | semmle.label | call to taint | | params_flow.rb:94:21:94:29 | call to taint | semmle.label | call to taint | | params_flow.rb:94:32:94:36 | * ... [element 0] | semmle.label | * ... [element 0] | @@ -301,6 +347,8 @@ nodes | params_flow.rb:94:33:94:36 | args [element 2] | semmle.label | args [element 2] | | params_flow.rb:94:33:94:36 | args [element 3] | semmle.label | args [element 3] | | params_flow.rb:94:39:94:47 | call to taint | semmle.label | call to taint | +| params_flow.rb:96:1:96:88 | *[3] | semmle.label | *[3] | +| params_flow.rb:96:1:96:88 | *[4] | semmle.label | *[4] | | params_flow.rb:96:10:96:18 | call to taint | semmle.label | call to taint | | params_flow.rb:96:21:96:29 | call to taint | semmle.label | call to taint | | params_flow.rb:96:32:96:65 | * ... [element 1] | semmle.label | * ... [element 1] | @@ -313,6 +361,7 @@ nodes | params_flow.rb:98:31:98:31 | b | semmle.label | b | | params_flow.rb:99:10:99:10 | a | semmle.label | a | | params_flow.rb:102:10:102:10 | b | semmle.label | b | +| params_flow.rb:105:1:105:49 | *[2] | semmle.label | *[2] | | params_flow.rb:105:15:105:23 | call to taint | semmle.label | call to taint | | params_flow.rb:105:26:105:48 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:105:39:105:47 | call to taint | semmle.label | call to taint | @@ -330,12 +379,15 @@ nodes | params_flow.rb:114:58:114:66 | call to taint | semmle.label | call to taint | | params_flow.rb:117:1:117:1 | [post] x [element] | semmle.label | [post] x [element] | | params_flow.rb:117:19:117:27 | call to taint | semmle.label | call to taint | +| params_flow.rb:118:1:118:14 | *[-1] | semmle.label | *[-1] | | params_flow.rb:118:12:118:13 | * ... [element] | semmle.label | * ... [element] | | params_flow.rb:118:13:118:13 | x [element] | semmle.label | x [element] | | params_flow.rb:130:1:130:4 | args [element 0] | semmle.label | args [element 0] | | params_flow.rb:130:1:130:4 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:130:9:130:17 | call to taint | semmle.label | call to taint | | params_flow.rb:130:20:130:28 | call to taint | semmle.label | call to taint | +| params_flow.rb:131:1:131:46 | *[0] | semmle.label | *[0] | +| params_flow.rb:131:1:131:46 | *[1] | semmle.label | *[1] | | params_flow.rb:131:10:131:14 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:131:10:131:14 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:131:11:131:14 | args [element 0] | semmle.label | args [element 0] | @@ -344,6 +396,7 @@ nodes | params_flow.rb:133:14:133:18 | *args [element 1] | semmle.label | *args [element 1] | | params_flow.rb:134:10:134:13 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:134:10:134:16 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:137:1:137:44 | *[1] | semmle.label | *[1] | | params_flow.rb:137:10:137:43 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:137:23:137:31 | call to taint | semmle.label | call to taint | subpaths @@ -376,6 +429,7 @@ subpaths | params_flow.rb:50:10:50:11 | p1 | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:50:10:50:11 | p1 | $@ | params_flow.rb:60:9:60:17 | call to taint | call to taint | | params_flow.rb:51:10:51:21 | ( ... ) | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | $@ | params_flow.rb:55:20:55:28 | call to taint | call to taint | | params_flow.rb:51:10:51:21 | ( ... ) | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | $@ | params_flow.rb:57:9:57:17 | call to taint | call to taint | +| params_flow.rb:51:10:51:21 | ( ... ) | params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | $@ | params_flow.rb:60:20:60:28 | call to taint | call to taint | | params_flow.rb:65:10:65:13 | ...[...] | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:65:10:65:13 | ...[...] | $@ | params_flow.rb:63:8:63:16 | call to taint | call to taint | | params_flow.rb:70:10:70:10 | x | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:70:10:70:10 | x | $@ | params_flow.rb:78:10:78:18 | call to taint | call to taint | | params_flow.rb:70:10:70:10 | x | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:70:10:70:10 | x | $@ | params_flow.rb:81:10:81:18 | call to taint | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected index 9f2ed4725f5..9d6d22de5cb 100644 --- a/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected @@ -7,6 +7,8 @@ track | type_tracker.rb:2:5:5:7 | field= | type tracker without call steps | type_tracker.rb:2:5:5:7 | field= | | type_tracker.rb:2:5:5:7 | self in field= | type tracker with call steps | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:2:5:5:7 | self in field= | type tracker without call steps | type_tracker.rb:2:5:5:7 | self in field= | +| type_tracker.rb:2:5:5:7 | synthetic *args | type tracker without call steps | type_tracker.rb:2:5:5:7 | synthetic *args | +| type_tracker.rb:2:5:5:7 | synthetic *args | type tracker without call steps | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:3:14:3:23 | call to field | @@ -23,6 +25,7 @@ track | type_tracker.rb:7:5:9:7 | &block | type tracker without call steps | type_tracker.rb:7:5:9:7 | &block | | type_tracker.rb:7:5:9:7 | field | type tracker without call steps | type_tracker.rb:7:5:9:7 | field | | type_tracker.rb:7:5:9:7 | self in field | type tracker without call steps | type_tracker.rb:7:5:9:7 | self in field | +| type_tracker.rb:7:5:9:7 | synthetic *args | type tracker without call steps | type_tracker.rb:7:5:9:7 | synthetic *args | | type_tracker.rb:8:9:8:14 | @field | type tracker without call steps | type_tracker.rb:3:14:3:23 | call to field | | type_tracker.rb:8:9:8:14 | @field | type tracker without call steps | type_tracker.rb:8:9:8:14 | @field | | type_tracker.rb:8:9:8:14 | @field | type tracker without call steps | type_tracker.rb:15:10:15:18 | call to field | @@ -31,6 +34,7 @@ track | type_tracker.rb:12:1:16:3 | &block | type tracker without call steps | type_tracker.rb:12:1:16:3 | &block | | type_tracker.rb:12:1:16:3 | m | type tracker without call steps | type_tracker.rb:12:1:16:3 | m | | type_tracker.rb:12:1:16:3 | self in m | type tracker without call steps | type_tracker.rb:12:1:16:3 | self in m | +| type_tracker.rb:12:1:16:3 | synthetic *args | type tracker without call steps | type_tracker.rb:12:1:16:3 | synthetic *args | | type_tracker.rb:13:5:13:7 | var | type tracker without call steps | type_tracker.rb:13:5:13:7 | var | | type_tracker.rb:13:11:13:19 | Container | type tracker without call steps | type_tracker.rb:13:11:13:19 | Container | | type_tracker.rb:13:11:13:23 | call to new | type tracker with call steps | type_tracker.rb:2:5:5:7 | self in field= | @@ -38,11 +42,15 @@ track | type_tracker.rb:13:11:13:23 | call to new | type tracker without call steps | type_tracker.rb:13:11:13:23 | call to new | | type_tracker.rb:14:5:14:7 | [post] var | type tracker with call steps | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:14:5:14:7 | [post] var | type tracker without call steps | type_tracker.rb:14:5:14:7 | [post] var | +| type_tracker.rb:14:5:14:13 | * | type tracker with call steps | type_tracker.rb:2:5:5:7 | synthetic *args | +| type_tracker.rb:14:5:14:13 | * | type tracker with call steps | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:14:5:14:13 | * | type tracker without call steps | type_tracker.rb:14:5:14:13 | * | | type_tracker.rb:14:5:14:13 | call to field= | type tracker without call steps | type_tracker.rb:14:5:14:13 | call to field= | | type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps | type_tracker.rb:8:9:8:14 | @field | | type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps with content attribute field | type_tracker.rb:7:5:9:7 | self in field | +| type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps with content element 0 | type_tracker.rb:2:5:5:7 | synthetic *args | +| type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps with content element 0 | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps | type_tracker.rb:14:5:14:13 | call to field= | | type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps | type_tracker.rb:14:17:14:23 | "hello" | | type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps | type_tracker.rb:15:10:15:18 | call to field | @@ -57,6 +65,8 @@ track | type_tracker.rb:18:1:21:3 | &block | type tracker without call steps | type_tracker.rb:18:1:21:3 | &block | | type_tracker.rb:18:1:21:3 | positional | type tracker without call steps | type_tracker.rb:18:1:21:3 | positional | | type_tracker.rb:18:1:21:3 | self in positional | type tracker without call steps | type_tracker.rb:18:1:21:3 | self in positional | +| type_tracker.rb:18:1:21:3 | synthetic *args | type tracker without call steps | type_tracker.rb:18:1:21:3 | synthetic *args | +| type_tracker.rb:18:1:21:3 | synthetic *args | type tracker without call steps | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps with content element 0 | type_tracker.rb:19:5:19:11 | * | @@ -68,20 +78,27 @@ track | type_tracker.rb:20:5:20:11 | * | type tracker without call steps | type_tracker.rb:20:5:20:11 | * | | type_tracker.rb:20:5:20:11 | call to puts | type tracker without call steps | type_tracker.rb:20:5:20:11 | call to puts | | type_tracker.rb:20:5:20:11 | call to puts | type tracker without call steps | type_tracker.rb:23:1:23:16 | call to positional | +| type_tracker.rb:23:1:23:16 | * | type tracker with call steps | type_tracker.rb:18:1:21:3 | synthetic *args | +| type_tracker.rb:23:1:23:16 | * | type tracker with call steps | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:23:1:23:16 | * | type tracker without call steps | type_tracker.rb:23:1:23:16 | * | | type_tracker.rb:23:1:23:16 | call to positional | type tracker without call steps | type_tracker.rb:23:1:23:16 | call to positional | | type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps | type_tracker.rb:18:16:18:17 | p1 | +| type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps with content element 0 | type_tracker.rb:18:1:21:3 | synthetic *args | +| type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps with content element 0 | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps with content element 0 | type_tracker.rb:19:5:19:11 | * | | type_tracker.rb:23:12:23:12 | 1 | type tracker without call steps | type_tracker.rb:23:12:23:12 | 1 | | type_tracker.rb:23:12:23:12 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:23:1:23:16 | * | | type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps | type_tracker.rb:18:20:18:21 | p2 | | type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps with content element 0 | type_tracker.rb:20:5:20:11 | * | +| type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps with content element 1 | type_tracker.rb:18:1:21:3 | synthetic *args | +| type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps with content element 1 | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:23:15:23:15 | 2 | type tracker without call steps | type_tracker.rb:23:15:23:15 | 2 | | type_tracker.rb:23:15:23:15 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:23:1:23:16 | * | | type_tracker.rb:25:1:28:3 | &block | type tracker without call steps | type_tracker.rb:25:1:28:3 | &block | | type_tracker.rb:25:1:28:3 | **kwargs | type tracker without call steps | type_tracker.rb:25:1:28:3 | **kwargs | | type_tracker.rb:25:1:28:3 | keyword | type tracker without call steps | type_tracker.rb:25:1:28:3 | keyword | | type_tracker.rb:25:1:28:3 | self in keyword | type tracker without call steps | type_tracker.rb:25:1:28:3 | self in keyword | +| type_tracker.rb:25:1:28:3 | synthetic *args | type tracker without call steps | type_tracker.rb:25:1:28:3 | synthetic *args | | type_tracker.rb:25:13:25:14 | p1 | type tracker without call steps | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type tracker without call steps | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type tracker without call steps with content element 0 | type_tracker.rb:26:5:26:11 | * | @@ -148,6 +165,8 @@ track | type_tracker.rb:32:26:32:26 | 8 | type tracker without call steps with content element :p1 | type_tracker.rb:32:1:32:27 | ** | | type_tracker.rb:34:1:53:3 | &block | type tracker without call steps | type_tracker.rb:34:1:53:3 | &block | | type_tracker.rb:34:1:53:3 | self in throughArray | type tracker without call steps | type_tracker.rb:34:1:53:3 | self in throughArray | +| type_tracker.rb:34:1:53:3 | synthetic *args | type tracker without call steps | type_tracker.rb:34:1:53:3 | synthetic *args | +| type_tracker.rb:34:1:53:3 | synthetic *args | type tracker without call steps | type_tracker.rb:34:1:53:3 | synthetic *args | | type_tracker.rb:34:1:53:3 | throughArray | type tracker without call steps | type_tracker.rb:34:1:53:3 | throughArray | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:34:18:34:20 | obj | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:34:18:34:20 | obj | @@ -354,6 +373,8 @@ trackEnd | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:7:5:9:7 | self (field) | | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:8:9:8:14 | self | +| type_tracker.rb:2:5:5:7 | synthetic *args | type_tracker.rb:2:5:5:7 | synthetic *args | +| type_tracker.rb:2:5:5:7 | synthetic *args | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | @@ -373,6 +394,7 @@ trackEnd | type_tracker.rb:7:5:9:7 | self in field | type_tracker.rb:7:5:9:7 | self (field) | | type_tracker.rb:7:5:9:7 | self in field | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:7:5:9:7 | self in field | type_tracker.rb:8:9:8:14 | self | +| type_tracker.rb:7:5:9:7 | synthetic *args | type_tracker.rb:7:5:9:7 | synthetic *args | | type_tracker.rb:8:9:8:14 | @field | type_tracker.rb:3:14:3:23 | call to field | | type_tracker.rb:8:9:8:14 | @field | type_tracker.rb:8:9:8:14 | @field | | type_tracker.rb:8:9:8:14 | @field | type_tracker.rb:15:10:15:18 | call to field | @@ -381,6 +403,7 @@ trackEnd | type_tracker.rb:12:1:16:3 | self in m | type_tracker.rb:12:1:16:3 | self (m) | | type_tracker.rb:12:1:16:3 | self in m | type_tracker.rb:12:1:16:3 | self in m | | type_tracker.rb:12:1:16:3 | self in m | type_tracker.rb:15:5:15:18 | self | +| type_tracker.rb:12:1:16:3 | synthetic *args | type_tracker.rb:12:1:16:3 | synthetic *args | | type_tracker.rb:13:5:13:7 | var | type_tracker.rb:13:5:13:7 | var | | type_tracker.rb:13:11:13:19 | Container | type_tracker.rb:13:11:13:19 | Container | | type_tracker.rb:13:11:13:23 | call to new | type_tracker.rb:2:5:5:7 | self (field=) | @@ -401,6 +424,8 @@ trackEnd | type_tracker.rb:14:5:14:7 | [post] var | type_tracker.rb:8:9:8:14 | self | | type_tracker.rb:14:5:14:7 | [post] var | type_tracker.rb:14:5:14:7 | [post] var | | type_tracker.rb:14:5:14:7 | [post] var | type_tracker.rb:15:10:15:12 | var | +| type_tracker.rb:14:5:14:13 | * | type_tracker.rb:2:5:5:7 | synthetic *args | +| type_tracker.rb:14:5:14:13 | * | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:14:5:14:13 | * | type_tracker.rb:14:5:14:13 | * | | type_tracker.rb:14:5:14:13 | call to field= | type_tracker.rb:14:5:14:13 | call to field= | | type_tracker.rb:14:17:14:23 | "hello" | type_tracker.rb:2:16:2:18 | val | @@ -425,6 +450,8 @@ trackEnd | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:18:1:21:3 | self in positional | | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:19:5:19:11 | self | | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:20:5:20:11 | self | +| type_tracker.rb:18:1:21:3 | synthetic *args | type_tracker.rb:18:1:21:3 | synthetic *args | +| type_tracker.rb:18:1:21:3 | synthetic *args | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | @@ -438,6 +465,8 @@ trackEnd | type_tracker.rb:20:5:20:11 | * | type_tracker.rb:20:5:20:11 | * | | type_tracker.rb:20:5:20:11 | call to puts | type_tracker.rb:20:5:20:11 | call to puts | | type_tracker.rb:20:5:20:11 | call to puts | type_tracker.rb:23:1:23:16 | call to positional | +| type_tracker.rb:23:1:23:16 | * | type_tracker.rb:18:1:21:3 | synthetic *args | +| type_tracker.rb:23:1:23:16 | * | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:23:1:23:16 | * | type_tracker.rb:23:1:23:16 | * | | type_tracker.rb:23:1:23:16 | call to positional | type_tracker.rb:23:1:23:16 | call to positional | | type_tracker.rb:23:12:23:12 | 1 | type_tracker.rb:18:16:18:17 | p1 | @@ -455,6 +484,7 @@ trackEnd | type_tracker.rb:25:1:28:3 | self in keyword | type_tracker.rb:25:1:28:3 | self in keyword | | type_tracker.rb:25:1:28:3 | self in keyword | type_tracker.rb:26:5:26:11 | self | | type_tracker.rb:25:1:28:3 | self in keyword | type_tracker.rb:27:5:27:11 | self | +| type_tracker.rb:25:1:28:3 | synthetic *args | type_tracker.rb:25:1:28:3 | synthetic *args | | type_tracker.rb:25:13:25:14 | p1 | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type_tracker.rb:25:13:25:14 | p1 | @@ -517,6 +547,8 @@ trackEnd | type_tracker.rb:32:26:32:26 | 8 | type_tracker.rb:32:26:32:26 | 8 | | type_tracker.rb:34:1:53:3 | &block | type_tracker.rb:34:1:53:3 | &block | | type_tracker.rb:34:1:53:3 | self in throughArray | type_tracker.rb:34:1:53:3 | self in throughArray | +| type_tracker.rb:34:1:53:3 | synthetic *args | type_tracker.rb:34:1:53:3 | synthetic *args | +| type_tracker.rb:34:1:53:3 | synthetic *args | type_tracker.rb:34:1:53:3 | synthetic *args | | type_tracker.rb:34:1:53:3 | throughArray | type_tracker.rb:34:1:53:3 | throughArray | | type_tracker.rb:34:18:34:20 | obj | type_tracker.rb:34:18:34:20 | obj | | type_tracker.rb:34:18:34:20 | obj | type_tracker.rb:34:18:34:20 | obj | From 5a6a52b767c7af40adcdf40a34b5c9f3c2c9c658 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Fri, 8 Sep 2023 12:04:09 +0100 Subject: [PATCH 397/788] Ruby: Use fewer SynthSplatArgumentElementNodes In cases such as def f(x, *y); end f(*[1, 2]) we don't need any `SynthSplatArgumentElementNodes`. We get flow from the splat argument to a `SynthSplatParameterNode` via `parameterMatch`, then from element 0 of the synth splat to the positional param `x` via a read step. We add a read step from element 1 to `SynthSplatParameterElementNode(1)`. From there we get flow to element 0 of `*y` via an existing store step. --- .../dataflow/internal/DataFlowDispatch.qll | 2 + .../dataflow/internal/DataFlowPrivate.qll | 16 +++++--- .../dataflow/params/params-flow.expected | 37 +++++-------------- 3 files changed, 22 insertions(+), 33 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll index 613a48c619c..ae14de420b2 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll @@ -1444,6 +1444,8 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { or ppos.isSynthSplat() and apos.isSynthSplat() or + ppos.isSynthSplat() and apos.isSplat(0) + or apos.isSynthSplat() and ppos.isSynthArgSplat() or // Exact splat match diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 6ad59c23e90..e1418e53dec 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -478,7 +478,9 @@ private module Cached { TSynthSplatArgumentNode(CfgNodes::ExprNodes::CallCfgNode c) or TSynthSplatArgumentElementNode(CfgNodes::ExprNodes::CallCfgNode c, int n) { n in [-1 .. 10] and - exists(Argument arg, ArgumentPosition pos | pos.isSplat(_) and arg.isArgumentOf(c, pos)) + exists(Argument arg, ArgumentPosition pos | + pos.isSplat(any(int p | p > 0)) and arg.isArgumentOf(c, pos) + ) } or TCaptureNode(VariableCapture::Flow::SynthesizedCaptureNode cn) @@ -1666,10 +1668,6 @@ predicate synthSplatArgumentElementReadStep( ) } -predicate readStepFromSynthSplatParam(SynthSplatParameterNode node1, ContentSet c, Node node2) { - readStep(node1, c, node2) -} - /** * Holds if there is a read step of content `c` from `node1` to `node2`. */ @@ -1709,6 +1707,14 @@ predicate readStep(Node node1, ContentSet c, Node node2) { or VariableCapture::readStep(node1, any(Content::CapturedVariableContent v | c.isSingleton(v)), node2) or + // Read from SynthSplatParameterNode into SynthSplatParameterElementNode + // This models flow from elements in a splat argument to elements in a splat parameter, where there are preceding positional parameters. + node2 = + any(SynthSplatParameterElementNode e | + node1.(SynthSplatParameterNode).isParameterOf(e.getEnclosingCallable(), _) and + c = getPositionalContent(e.getReadPosition()) + ) + or readStepCommon(node1, c, node2) } diff --git a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected index e4708ee711e..2fb96ccabb6 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected @@ -1,4 +1,5 @@ testFailures +failures edges | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:9:20:9:21 | p2 | params_flow.rb:11:10:11:11 | p2 | @@ -50,10 +51,8 @@ edges | params_flow.rb:46:1:46:4 | args [element 1] | params_flow.rb:47:13:47:16 | args [element 1] | | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:46:1:46:4 | args [element 0] | | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:46:1:46:4 | args [element 1] | -| params_flow.rb:47:1:47:17 | *[0] | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:47:1:47:17 | *[1] | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:47:12:47:16 | * ... [element 0] | params_flow.rb:47:1:47:17 | *[0] | -| params_flow.rb:47:12:47:16 | * ... [element 1] | params_flow.rb:47:1:47:17 | *[1] | +| params_flow.rb:47:12:47:16 | * ... [element 0] | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:47:12:47:16 | * ... [element 1] | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:47:13:47:16 | args [element 0] | params_flow.rb:47:12:47:16 | * ... [element 0] | | params_flow.rb:47:13:47:16 | args [element 1] | params_flow.rb:47:12:47:16 | * ... [element 1] | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:50:10:50:11 | p1 | @@ -73,19 +72,15 @@ edges | params_flow.rb:60:1:60:4 | args [element 1] | params_flow.rb:61:10:61:13 | args [element 1] | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:60:1:60:4 | args [element 0] | | params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:60:1:60:4 | args [element 1] | -| params_flow.rb:61:1:61:14 | *[0] | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:61:1:61:14 | *[1] | params_flow.rb:49:17:49:24 | *posargs [element 0] | -| params_flow.rb:61:9:61:13 | * ... [element 0] | params_flow.rb:61:1:61:14 | *[0] | -| params_flow.rb:61:9:61:13 | * ... [element 1] | params_flow.rb:61:1:61:14 | *[1] | +| params_flow.rb:61:9:61:13 | * ... [element 0] | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:61:9:61:13 | * ... [element 1] | params_flow.rb:49:17:49:24 | *posargs [element 0] | | params_flow.rb:61:10:61:13 | args [element 0] | params_flow.rb:61:9:61:13 | * ... [element 0] | | params_flow.rb:61:10:61:13 | args [element 1] | params_flow.rb:61:9:61:13 | * ... [element 1] | | params_flow.rb:63:1:63:4 | args | params_flow.rb:67:13:67:16 | args | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:63:1:63:4 | args | | params_flow.rb:64:16:64:17 | *x [element 0] | params_flow.rb:65:10:65:10 | x [element 0] | | params_flow.rb:65:10:65:10 | x [element 0] | params_flow.rb:65:10:65:13 | ...[...] | -| params_flow.rb:67:1:67:17 | *[0] | params_flow.rb:64:16:64:17 | *x [element 0] | | params_flow.rb:67:12:67:16 | * ... [element 0] | params_flow.rb:64:16:64:17 | *x [element 0] | -| params_flow.rb:67:12:67:16 | * ... [element 0] | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:67:13:67:16 | args | params_flow.rb:67:12:67:16 | * ... [element 0] | | params_flow.rb:69:14:69:14 | x | params_flow.rb:70:10:70:10 | x | | params_flow.rb:69:17:69:17 | y | params_flow.rb:71:10:71:10 | y | @@ -167,26 +162,21 @@ edges | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:108:44:108:44 | c | | params_flow.rb:117:1:117:1 | [post] x [element] | params_flow.rb:118:13:118:13 | x [element] | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:1:117:1 | [post] x [element] | -| params_flow.rb:118:1:118:14 | *[-1] | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:118:1:118:14 | *[-1] | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:118:12:118:13 | * ... [element] | params_flow.rb:118:1:118:14 | *[-1] | +| params_flow.rb:118:12:118:13 | * ... [element] | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:118:12:118:13 | * ... [element] | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:118:13:118:13 | x [element] | params_flow.rb:118:12:118:13 | * ... [element] | | params_flow.rb:130:1:130:4 | args [element 0] | params_flow.rb:131:11:131:14 | args [element 0] | | params_flow.rb:130:1:130:4 | args [element 1] | params_flow.rb:131:11:131:14 | args [element 1] | | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:130:1:130:4 | args [element 0] | | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:130:1:130:4 | args [element 1] | -| params_flow.rb:131:1:131:46 | *[0] | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:131:1:131:46 | *[1] | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:131:10:131:14 | * ... [element 0] | params_flow.rb:131:1:131:46 | *[0] | -| params_flow.rb:131:10:131:14 | * ... [element 1] | params_flow.rb:131:1:131:46 | *[1] | +| params_flow.rb:131:10:131:14 | * ... [element 0] | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:131:10:131:14 | * ... [element 1] | params_flow.rb:83:17:83:17 | u | | params_flow.rb:131:11:131:14 | args [element 0] | params_flow.rb:131:10:131:14 | * ... [element 0] | | params_flow.rb:131:11:131:14 | args [element 1] | params_flow.rb:131:10:131:14 | * ... [element 1] | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:83:17:83:17 | u | | params_flow.rb:133:14:133:18 | *args [element 1] | params_flow.rb:134:10:134:13 | args [element 1] | | params_flow.rb:134:10:134:13 | args [element 1] | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:137:1:137:44 | *[1] | params_flow.rb:133:14:133:18 | *args [element 1] | | params_flow.rb:137:10:137:43 | * ... [element 1] | params_flow.rb:133:14:133:18 | *args [element 1] | -| params_flow.rb:137:10:137:43 | * ... [element 1] | params_flow.rb:137:1:137:44 | *[1] | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:10:137:43 | * ... [element 1] | nodes | params_flow.rb:9:16:9:17 | p1 | semmle.label | p1 | @@ -246,8 +236,6 @@ nodes | params_flow.rb:46:1:46:4 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:46:9:46:17 | call to taint | semmle.label | call to taint | | params_flow.rb:46:20:46:28 | call to taint | semmle.label | call to taint | -| params_flow.rb:47:1:47:17 | *[0] | semmle.label | *[0] | -| params_flow.rb:47:1:47:17 | *[1] | semmle.label | *[1] | | params_flow.rb:47:12:47:16 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:47:12:47:16 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:47:13:47:16 | args [element 0] | semmle.label | args [element 0] | @@ -270,8 +258,6 @@ nodes | params_flow.rb:60:1:60:4 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:60:9:60:17 | call to taint | semmle.label | call to taint | | params_flow.rb:60:20:60:28 | call to taint | semmle.label | call to taint | -| params_flow.rb:61:1:61:14 | *[0] | semmle.label | *[0] | -| params_flow.rb:61:1:61:14 | *[1] | semmle.label | *[1] | | params_flow.rb:61:9:61:13 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:61:9:61:13 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:61:10:61:13 | args [element 0] | semmle.label | args [element 0] | @@ -281,7 +267,6 @@ nodes | params_flow.rb:64:16:64:17 | *x [element 0] | semmle.label | *x [element 0] | | params_flow.rb:65:10:65:10 | x [element 0] | semmle.label | x [element 0] | | params_flow.rb:65:10:65:13 | ...[...] | semmle.label | ...[...] | -| params_flow.rb:67:1:67:17 | *[0] | semmle.label | *[0] | | params_flow.rb:67:12:67:16 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:67:13:67:16 | args | semmle.label | args | | params_flow.rb:69:14:69:14 | x | semmle.label | x | @@ -379,15 +364,12 @@ nodes | params_flow.rb:114:58:114:66 | call to taint | semmle.label | call to taint | | params_flow.rb:117:1:117:1 | [post] x [element] | semmle.label | [post] x [element] | | params_flow.rb:117:19:117:27 | call to taint | semmle.label | call to taint | -| params_flow.rb:118:1:118:14 | *[-1] | semmle.label | *[-1] | | params_flow.rb:118:12:118:13 | * ... [element] | semmle.label | * ... [element] | | params_flow.rb:118:13:118:13 | x [element] | semmle.label | x [element] | | params_flow.rb:130:1:130:4 | args [element 0] | semmle.label | args [element 0] | | params_flow.rb:130:1:130:4 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:130:9:130:17 | call to taint | semmle.label | call to taint | | params_flow.rb:130:20:130:28 | call to taint | semmle.label | call to taint | -| params_flow.rb:131:1:131:46 | *[0] | semmle.label | *[0] | -| params_flow.rb:131:1:131:46 | *[1] | semmle.label | *[1] | | params_flow.rb:131:10:131:14 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:131:10:131:14 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:131:11:131:14 | args [element 0] | semmle.label | args [element 0] | @@ -396,7 +378,6 @@ nodes | params_flow.rb:133:14:133:18 | *args [element 1] | semmle.label | *args [element 1] | | params_flow.rb:134:10:134:13 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:134:10:134:16 | ...[...] | semmle.label | ...[...] | -| params_flow.rb:137:1:137:44 | *[1] | semmle.label | *[1] | | params_flow.rb:137:10:137:43 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:137:23:137:31 | call to taint | semmle.label | call to taint | subpaths From e11a4b63e9cc2f9dfc23a4043985527b5461dbf8 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 8 Sep 2023 13:20:26 +0200 Subject: [PATCH 398/788] Ruby: Remove `SynthSplatArgParameterNode` --- .../dataflow/internal/DataFlowDispatch.qll | 13 +- .../dataflow/internal/DataFlowPrivate.qll | 53 +- .../ruby/typetracking/TypeTrackerSpecific.qll | 4 +- .../dataflow/local/TaintStep.expected | 12 - .../dataflow/params/TypeTracker.expected | 1047 +++++------------ .../type-tracker/TypeTracker.expected | 19 - 6 files changed, 279 insertions(+), 869 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll index ae14de420b2..fca7301f053 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll @@ -473,7 +473,6 @@ private module Cached { exists(Parameter p | p.getPosition() = pos and p instanceof SplatParameter) } or TSynthSplatParameterPosition() or - TSynthArgSplatParameterPosition() or TAnyParameterPosition() or TAnyKeywordParameterPosition() } @@ -1303,9 +1302,6 @@ class ParameterPosition extends TParameterPosition { predicate isSynthSplat() { this = TSynthSplatParameterPosition() } - // A fake position to indicate that this parameter node holds content from a synth arg splat node - predicate isSynthArgSplat() { this = TSynthArgSplatParameterPosition() } - predicate isSplat(int n) { this = TSplatParameterPosition(n) } /** @@ -1341,8 +1337,6 @@ class ParameterPosition extends TParameterPosition { or this.isSynthSplat() and result = "synthetic *" or - this.isSynthArgSplat() and result = "synthetic * (from *args)" - or exists(int pos | this.isSplat(pos) and result = "* (position " + pos + ")") } } @@ -1442,11 +1436,8 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { or ppos.isSplat(0) and apos.isSynthSplat() or - ppos.isSynthSplat() and apos.isSynthSplat() - or - ppos.isSynthSplat() and apos.isSplat(0) - or - apos.isSynthSplat() and ppos.isSynthArgSplat() + ppos.isSynthSplat() and + (apos.isSynthSplat() or apos.isSplat(0)) or // Exact splat match exists(int n | apos.isSplat(n) and ppos.isSplat(n)) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index e1418e53dec..82e9215dd77 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -452,9 +452,6 @@ private module Cached { exists(c.asCallable()) and // exclude library callables isParameterNode(_, c, any(ParameterPosition p | p.isPositional(_))) } or - TSynthSplatArgParameterNode(DataFlowCallable c) { - exists(c.asCallable()) // exclude library callables - } or TSynthSplatParameterElementNode(DataFlowCallable c, int n) { exists(c.asCallable()) and // exclude library callables isParameterNode(_, c, any(ParameterPosition p | p.isSplat(_))) and @@ -486,7 +483,7 @@ private module Cached { class TSourceParameterNode = TNormalParameterNode or TBlockParameterNode or TSelfParameterNode or - TSynthHashSplatParameterNode or TSynthSplatParameterNode or TSynthSplatArgParameterNode; + TSynthHashSplatParameterNode or TSynthSplatParameterNode; cached Location getLocation(NodeImpl n) { result = n.getLocationImpl() } @@ -694,8 +691,6 @@ predicate nodeIsHidden(Node n) { or n instanceof SynthSplatArgumentNode or - n instanceof SynthSplatArgParameterNode - or n instanceof SynthSplatParameterElementNode or n instanceof LambdaSelfReferenceNode @@ -1087,31 +1082,6 @@ private module ParameterNodes { final override string toStringImpl() { result = "synthetic *args" } } - /** - * A node that holds all positional arguments passed in a call to `c`. - * This is a mirror of the `SynthSplatArgumentNode` on the callable side. - * See `SynthSplatArgumentNode` for more information. - */ - class SynthSplatArgParameterNode extends ParameterNodeImpl, TSynthSplatArgParameterNode { - private DataFlowCallable callable; - - SynthSplatArgParameterNode() { this = TSynthSplatArgParameterNode(callable) } - - final override Parameter getParameter() { none() } - - final override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { - c = callable and pos.isSynthArgSplat() - } - - final override CfgScope getCfgScope() { result = callable.asCallable() } - - final override DataFlowCallable getEnclosingCallable() { result = callable } - - final override Location getLocationImpl() { result = callable.getLocation() } - - final override string toStringImpl() { result = "synthetic *args" } - } - /** * A node that holds the content of a specific positional argument. * See `SynthSplatArgumentNode` for more information. @@ -1285,9 +1255,9 @@ module ArgumentNodes { * * 1. We want `3` to flow to `z[0]` and `4` to flow to `z[1]`. We model this by first storing all arguments * in a synthetic argument node `SynthSplatArgumentNode` (see `storeStepCommon`). - * 2. We match this to an analogous parameter node `SynthSplatArgParameterNode` on the callee side + * 2. We match this to an analogous parameter node `SynthSplatParameterNode` on the callee side * (see `parameterMatch`). - * 3. For each content element stored in the `SynthSplatArgParameterNode`, we add a read step to a separate + * 3. For each content element stored in the `SynthSplatParameterNode`, we add a read step to a separate * `SynthSplatParameterElementNode`, which is parameterized by the element index (see `readStep`). * 4. Finally, we add store steps from these `SynthSplatParameterElementNode`s to the real splat parameter node * (see `storeStep`). @@ -1638,12 +1608,12 @@ predicate readStepCommon(Node node1, ContentSet c, Node node2) { // TODO: convert into the above form synthSplatArgumentElementReadStep(node1, c, node2) or - // read from SynthSplatArgParameterNode[n] to nth positional parameter - exists(SynthSplatArgParameterNode argParamNode, NormalParameterNode posNode, int n | - argParamNode = node1 and + // read from SynthSplatParameterNode[n] to nth positional parameter + exists(SynthSplatParameterNode paramNode, NormalParameterNode posNode, int n | + paramNode = node1 and posNode = node2 and posNode - .isParameterOf(argParamNode.getEnclosingCallable(), + .isParameterOf(paramNode.getEnclosingCallable(), any(ParameterPosition p | p.isPositional(n))) and c = getPositionalContent(n) ) @@ -1655,6 +1625,7 @@ predicate synthSplatArgumentElementReadStep( ) { exists(int splatPos, CfgNodes::ExprNodes::CallCfgNode call | node1.asExpr().(Argument).isArgumentOf(call, any(ArgumentPosition p | p.isSplat(splatPos))) and + splatPos > 0 and node2.getCall() = call and ( exists(int n | @@ -1698,17 +1669,9 @@ predicate readStep(Node node1, ContentSet c, Node node2) { FlowSummaryImpl::Private::Steps::summaryReadStep(node1.(FlowSummaryNode).getSummaryNode(), c, node2.(FlowSummaryNode).getSummaryNode()) or - // Read from SynthSplatArgParameterNode into SynthSplatParameterElementNode - node2 = - any(SynthSplatParameterElementNode e | - node1.(SynthSplatArgParameterNode).isParameterOf(e.getEnclosingCallable(), _) and - c = getPositionalContent(e.getReadPosition()) - ) - or VariableCapture::readStep(node1, any(Content::CapturedVariableContent v | c.isSingleton(v)), node2) or // Read from SynthSplatParameterNode into SynthSplatParameterElementNode - // This models flow from elements in a splat argument to elements in a splat parameter, where there are preceding positional parameters. node2 = any(SynthSplatParameterElementNode e | node1.(SynthSplatParameterNode).isParameterOf(e.getEnclosingCallable(), _) and diff --git a/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll index 7a19210739a..ac1debd86a9 100644 --- a/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll @@ -334,9 +334,7 @@ predicate readStoreStepIntoSourceNode( Node nodeFrom, Node nodeTo, DataFlow::ContentSet loadContent, DataFlow::ContentSet storeContent ) { exists(DataFlowPrivate::SynthSplatParameterElementNode mid | - nodeFrom - .(DataFlowPrivate::SynthSplatArgParameterNode) - .isParameterOf(mid.getEnclosingCallable(), _) and + nodeFrom.(DataFlowPrivate::SynthSplatParameterNode).isParameterOf(mid.getEnclosingCallable(), _) and loadContent = DataFlowPrivate::getPositionalContent(mid.getReadPosition()) and nodeTo = mid.getSplatParameterNode(_) and storeContent = DataFlowPrivate::getPositionalContent(mid.getStorePosition()) diff --git a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected index 995e1de3ba3..237c067be1b 100644 --- a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected +++ b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected @@ -2797,7 +2797,6 @@ | UseUseExplosion.rb:21:3686:21:3696 | else ... | UseUseExplosion.rb:21:9:21:3700 | if ... | | UseUseExplosion.rb:21:3691:21:3696 | call to use | UseUseExplosion.rb:21:3686:21:3696 | else ... | | UseUseExplosion.rb:24:5:25:7 | synthetic *args | UseUseExplosion.rb:24:13:24:13 | i | -| UseUseExplosion.rb:24:5:25:7 | synthetic *args | UseUseExplosion.rb:24:13:24:13 | i | | UseUseExplosion.rb:24:5:25:7 | use | UseUseExplosion.rb:1:1:26:3 | C | | file://:0:0:0:0 | [summary param] position 0 in & | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in & | | file://:0:0:0:0 | [summary param] position 0 in + | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in + | @@ -2843,7 +2842,6 @@ | local_dataflow.rb:1:1:7:3 | self (foo) | local_dataflow.rb:3:8:3:10 | self | | local_dataflow.rb:1:1:7:3 | self in foo | local_dataflow.rb:1:1:7:3 | self (foo) | | local_dataflow.rb:1:1:7:3 | synthetic *args | local_dataflow.rb:1:9:1:9 | a | -| local_dataflow.rb:1:1:7:3 | synthetic *args | local_dataflow.rb:1:9:1:9 | a | | local_dataflow.rb:1:1:150:3 | | local_dataflow.rb:10:9:10:9 | x | | local_dataflow.rb:1:1:150:3 | self (local_dataflow.rb) | local_dataflow.rb:49:1:53:3 | self | | local_dataflow.rb:1:9:1:9 | a | local_dataflow.rb:1:9:1:9 | a | @@ -2882,7 +2880,6 @@ | local_dataflow.rb:10:5:13:3 | __synth__0__1 | local_dataflow.rb:10:9:10:9 | x | | local_dataflow.rb:10:5:13:3 | call to each | local_dataflow.rb:10:5:13:3 | ... | | local_dataflow.rb:10:5:13:3 | synthetic *args | local_dataflow.rb:10:5:13:3 | __synth__0__1 | -| local_dataflow.rb:10:5:13:3 | synthetic *args | local_dataflow.rb:10:5:13:3 | __synth__0__1 | | local_dataflow.rb:10:9:10:9 | ... = ... | local_dataflow.rb:10:9:10:9 | if ... | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [false] ! ... | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [true] ! ... | @@ -2902,7 +2899,6 @@ | local_dataflow.rb:15:1:17:3 | __synth__0__1 | local_dataflow.rb:15:5:15:5 | x | | local_dataflow.rb:15:1:17:3 | call to each | local_dataflow.rb:15:1:17:3 | ... | | local_dataflow.rb:15:1:17:3 | synthetic *args | local_dataflow.rb:15:1:17:3 | __synth__0__1 | -| local_dataflow.rb:15:1:17:3 | synthetic *args | local_dataflow.rb:15:1:17:3 | __synth__0__1 | | local_dataflow.rb:15:5:15:5 | ... = ... | local_dataflow.rb:15:5:15:5 | if ... | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [false] ! ... | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [true] ! ... | @@ -2919,7 +2915,6 @@ | local_dataflow.rb:19:1:21:3 | __synth__0__1 | local_dataflow.rb:19:5:19:5 | x | | local_dataflow.rb:19:1:21:3 | call to each | local_dataflow.rb:19:1:21:3 | ... | | local_dataflow.rb:19:1:21:3 | synthetic *args | local_dataflow.rb:19:1:21:3 | __synth__0__1 | -| local_dataflow.rb:19:1:21:3 | synthetic *args | local_dataflow.rb:19:1:21:3 | __synth__0__1 | | local_dataflow.rb:19:5:19:5 | ... = ... | local_dataflow.rb:19:5:19:5 | if ... | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [false] ! ... | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [true] ! ... | @@ -2939,14 +2934,12 @@ | local_dataflow.rb:32:5:32:25 | bar | local_dataflow.rb:32:1:32:1 | x | | local_dataflow.rb:32:5:32:25 | bar | local_dataflow.rb:32:1:32:25 | ... = ... | | local_dataflow.rb:34:1:39:3 | synthetic *args | local_dataflow.rb:34:7:34:7 | x | -| local_dataflow.rb:34:1:39:3 | synthetic *args | local_dataflow.rb:34:7:34:7 | x | | local_dataflow.rb:34:7:34:7 | x | local_dataflow.rb:34:7:34:7 | x | | local_dataflow.rb:34:7:34:7 | x | local_dataflow.rb:35:6:35:6 | x | | local_dataflow.rb:35:6:35:6 | x | local_dataflow.rb:35:6:35:11 | ... == ... | | local_dataflow.rb:35:11:35:11 | 4 | local_dataflow.rb:35:6:35:11 | ... == ... | | local_dataflow.rb:36:13:36:13 | 7 | local_dataflow.rb:36:6:36:13 | return | | local_dataflow.rb:41:1:47:3 | synthetic *args | local_dataflow.rb:41:7:41:7 | x | -| local_dataflow.rb:41:1:47:3 | synthetic *args | local_dataflow.rb:41:7:41:7 | x | | local_dataflow.rb:41:7:41:7 | x | local_dataflow.rb:41:7:41:7 | x | | local_dataflow.rb:41:7:41:7 | x | local_dataflow.rb:42:6:42:6 | x | | local_dataflow.rb:42:6:42:6 | x | local_dataflow.rb:42:6:42:11 | ... == ... | @@ -2966,11 +2959,9 @@ | local_dataflow.rb:51:24:51:24 | 9 | local_dataflow.rb:51:20:51:24 | ... < ... | | local_dataflow.rb:55:5:55:13 | Array | local_dataflow.rb:55:5:55:13 | call to [] | | local_dataflow.rb:57:1:58:3 | synthetic *args | local_dataflow.rb:57:9:57:9 | x | -| local_dataflow.rb:57:1:58:3 | synthetic *args | local_dataflow.rb:57:9:57:9 | x | | local_dataflow.rb:60:1:90:3 | self (test_case) | local_dataflow.rb:78:12:78:20 | self | | local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:60:1:90:3 | self (test_case) | | local_dataflow.rb:60:1:90:3 | synthetic *args | local_dataflow.rb:60:15:60:15 | x | -| local_dataflow.rb:60:1:90:3 | synthetic *args | local_dataflow.rb:60:15:60:15 | x | | local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:60:15:60:15 | x | | local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:61:12:61:12 | x | | local_dataflow.rb:61:7:68:5 | SSA phi read(x) | local_dataflow.rb:69:12:69:12 | x | @@ -3144,7 +3135,6 @@ | local_dataflow.rb:118:3:118:11 | self | local_dataflow.rb:119:3:119:31 | self | | local_dataflow.rb:118:17:118:31 | self | local_dataflow.rb:118:23:118:29 | self | | local_dataflow.rb:118:17:118:31 | synthetic *args | local_dataflow.rb:118:20:118:20 | x | -| local_dataflow.rb:118:17:118:31 | synthetic *args | local_dataflow.rb:118:20:118:20 | x | | local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:20:118:20 | x | | local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:28:118:28 | x | | local_dataflow.rb:119:3:119:31 | [post] self | local_dataflow.rb:119:8:119:16 | self | @@ -3160,11 +3150,9 @@ | local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup | | local_dataflow.rb:123:26:123:45 | self | local_dataflow.rb:123:32:123:43 | self | | local_dataflow.rb:123:26:123:45 | synthetic *args | local_dataflow.rb:123:29:123:29 | x | -| local_dataflow.rb:123:26:123:45 | synthetic *args | local_dataflow.rb:123:29:123:29 | x | | local_dataflow.rb:126:1:128:3 | self (use) | local_dataflow.rb:127:3:127:8 | self | | local_dataflow.rb:126:1:128:3 | self in use | local_dataflow.rb:126:1:128:3 | self (use) | | local_dataflow.rb:126:1:128:3 | synthetic *args | local_dataflow.rb:126:9:126:9 | x | -| local_dataflow.rb:126:1:128:3 | synthetic *args | local_dataflow.rb:126:9:126:9 | x | | local_dataflow.rb:130:1:150:3 | self (use_use_madness) | local_dataflow.rb:132:6:132:11 | self | | local_dataflow.rb:130:1:150:3 | self in use_use_madness | local_dataflow.rb:130:1:150:3 | self (use_use_madness) | | local_dataflow.rb:131:3:131:3 | x | local_dataflow.rb:132:10:132:10 | x | diff --git a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected index c60c07f8b77..448682de267 100644 --- a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected @@ -2,7 +2,6 @@ track | params_flow.rb:1:1:3:3 | &block | type tracker without call steps | params_flow.rb:1:1:3:3 | &block | | params_flow.rb:1:1:3:3 | self in taint | type tracker without call steps | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:3:3 | synthetic *args | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:1:1:3:3 | synthetic *args | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:1:1:3:3 | taint | type tracker without call steps | params_flow.rb:1:1:3:3 | taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | @@ -44,11 +43,10 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | @@ -58,62 +56,52 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:65:5:65:13 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:109:5:109:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:111:5:111:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:134:5:134:16 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:108:40:108:41 | *b | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :c | params_flow.rb:108:1:112:3 | **kwargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -148,8 +136,6 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:46:20:46:28 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:47:1:47:17 | *[0] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | @@ -157,10 +143,7 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:60:20:60:28 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:61:1:61:14 | *[0] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:63:8:63:16 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:78:10:78:18 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:78:21:78:29 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:78:32:78:40 | call to taint | @@ -209,19 +192,13 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:114:44:114:52 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:114:58:114:66 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:117:19:117:27 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:130:9:130:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:130:20:130:28 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:131:1:131:46 | *[0] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:131:17:131:25 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:1:137:44 | *[0] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:1:137:44 | *[1] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:34:137:42 | call to taint | @@ -365,7 +342,6 @@ track | params_flow.rb:5:1:7:3 | self in sink | type tracker without call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:5:1:7:3 | sink | type tracker without call steps | params_flow.rb:5:1:7:3 | sink | | params_flow.rb:5:1:7:3 | synthetic *args | type tracker without call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:5:1:7:3 | synthetic *args | type tracker without call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:5:10:5:10 | x | type tracker without call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | type tracker without call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | type tracker without call steps with content element 0 | params_flow.rb:6:5:6:10 | * | @@ -440,27 +416,22 @@ track | params_flow.rb:9:1:12:3 | self in positional | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:9:1:12:3 | self in positional | type tracker without call steps | params_flow.rb:9:1:12:3 | self in positional | | params_flow.rb:9:1:12:3 | synthetic *args | type tracker without call steps | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:9:1:12:3 | synthetic *args | type tracker without call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:9:16:9:17 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:9:16:9:17 | p1 | type tracker without call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:9:16:9:17 | p1 | type tracker without call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:9:16:9:17 | p1 | type tracker without call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:9:20:9:21 | p2 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:20:9:21 | p2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:9:20:9:21 | p2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:9:20:9:21 | p2 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:9:20:9:21 | p2 | type tracker without call steps | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:9:20:9:21 | p2 | type tracker without call steps | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:9:20:9:21 | p2 | type tracker without call steps with content element 0 | params_flow.rb:11:5:11:11 | * | | params_flow.rb:10:5:10:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:10:5:10:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:10:5:10:11 | * | type tracker without call steps | params_flow.rb:10:5:10:11 | * | | params_flow.rb:10:5:10:11 | call to sink | type tracker without call steps | params_flow.rb:10:5:10:11 | call to sink | | params_flow.rb:11:5:11:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:11:5:11:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:11:5:11:11 | * | type tracker without call steps | params_flow.rb:11:5:11:11 | * | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:11:5:11:11 | call to sink | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:14:1:14:30 | call to positional | @@ -468,19 +439,15 @@ track | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:47:1:47:17 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:118:1:118:14 | call to positional | | params_flow.rb:14:1:14:30 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:14:1:14:30 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:1:14:30 | * | type tracker without call steps | params_flow.rb:14:1:14:30 | * | | params_flow.rb:14:1:14:30 | call to positional | type tracker without call steps | params_flow.rb:14:1:14:30 | call to positional | | params_flow.rb:14:12:14:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:12:14:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:14:12:14:19 | * | type tracker without call steps | params_flow.rb:14:12:14:19 | * | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:14:12:14:19 | call to taint | type tracker without call steps | params_flow.rb:14:12:14:19 | call to taint | | params_flow.rb:14:12:14:19 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:14:1:14:30 | * | @@ -488,41 +455,32 @@ track | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:14:18:14:18 | 1 | type tracker without call steps | params_flow.rb:14:12:14:19 | call to taint | | params_flow.rb:14:18:14:18 | 1 | type tracker without call steps | params_flow.rb:14:18:14:18 | 1 | | params_flow.rb:14:18:14:18 | 1 | type tracker without call steps with content element 0 | params_flow.rb:14:1:14:30 | * | | params_flow.rb:14:18:14:18 | 1 | type tracker without call steps with content element 0 | params_flow.rb:14:12:14:19 | * | | params_flow.rb:14:22:14:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:22:14:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:14:22:14:29 | * | type tracker without call steps | params_flow.rb:14:22:14:29 | * | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:22:14:29 | call to taint | type tracker without call steps | params_flow.rb:14:22:14:29 | call to taint | | params_flow.rb:14:22:14:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:14:1:14:30 | * | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:28:14:28 | 2 | type tracker without call steps | params_flow.rb:14:22:14:29 | call to taint | | params_flow.rb:14:28:14:28 | 2 | type tracker without call steps | params_flow.rb:14:28:14:28 | 2 | | params_flow.rb:14:28:14:28 | 2 | type tracker without call steps with content element 0 | params_flow.rb:14:22:14:29 | * | @@ -532,27 +490,22 @@ track | params_flow.rb:16:1:19:3 | keyword | type tracker without call steps | params_flow.rb:16:1:19:3 | keyword | | params_flow.rb:16:1:19:3 | self in keyword | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:16:1:19:3 | self in keyword | type tracker without call steps | params_flow.rb:16:1:19:3 | self in keyword | -| params_flow.rb:16:1:19:3 | synthetic *args | type tracker without call steps | params_flow.rb:16:1:19:3 | synthetic *args | | params_flow.rb:16:13:16:14 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:16:13:16:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:16:13:16:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:16:13:16:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:16:13:16:14 | p1 | type tracker without call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:16:13:16:14 | p1 | type tracker without call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:16:13:16:14 | p1 | type tracker without call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:16:18:16:19 | p2 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:16:18:16:19 | p2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:16:18:16:19 | p2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:16:18:16:19 | p2 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:16:18:16:19 | p2 | type tracker without call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:16:18:16:19 | p2 | type tracker without call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:16:18:16:19 | p2 | type tracker without call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:17:5:17:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:17:5:17:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:17:5:17:11 | * | type tracker without call steps | params_flow.rb:17:5:17:11 | * | | params_flow.rb:17:5:17:11 | call to sink | type tracker without call steps | params_flow.rb:17:5:17:11 | call to sink | | params_flow.rb:18:5:18:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:18:5:18:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:18:5:18:11 | * | type tracker without call steps | params_flow.rb:18:5:18:11 | * | | params_flow.rb:18:5:18:11 | call to sink | type tracker without call steps | params_flow.rb:18:5:18:11 | call to sink | | params_flow.rb:18:5:18:11 | call to sink | type tracker without call steps | params_flow.rb:21:1:21:35 | call to keyword | @@ -565,12 +518,10 @@ track | params_flow.rb:21:9:21:10 | :p1 | type tracker without call steps | params_flow.rb:21:9:21:10 | :p1 | | params_flow.rb:21:9:21:20 | Pair | type tracker without call steps | params_flow.rb:21:9:21:20 | Pair | | params_flow.rb:21:13:21:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:13:21:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:21:13:21:20 | * | type tracker without call steps | params_flow.rb:21:13:21:20 | * | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -580,8 +531,6 @@ track | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | @@ -593,12 +542,10 @@ track | params_flow.rb:21:23:21:24 | :p2 | type tracker without call steps | params_flow.rb:21:23:21:24 | :p2 | | params_flow.rb:21:23:21:34 | Pair | type tracker without call steps | params_flow.rb:21:23:21:34 | Pair | | params_flow.rb:21:27:21:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:27:21:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:21:27:21:34 | * | type tracker without call steps | params_flow.rb:21:27:21:34 | * | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -608,8 +555,6 @@ track | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | @@ -624,12 +569,10 @@ track | params_flow.rb:22:9:22:10 | :p2 | type tracker without call steps | params_flow.rb:22:9:22:10 | :p2 | | params_flow.rb:22:9:22:20 | Pair | type tracker without call steps | params_flow.rb:22:9:22:20 | Pair | | params_flow.rb:22:13:22:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:13:22:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:22:13:22:20 | * | type tracker without call steps | params_flow.rb:22:13:22:20 | * | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -639,8 +582,6 @@ track | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | @@ -652,12 +593,10 @@ track | params_flow.rb:22:23:22:24 | :p1 | type tracker without call steps | params_flow.rb:22:23:22:24 | :p1 | | params_flow.rb:22:23:22:34 | Pair | type tracker without call steps | params_flow.rb:22:23:22:34 | Pair | | params_flow.rb:22:27:22:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:27:22:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:22:27:22:34 | * | type tracker without call steps | params_flow.rb:22:27:22:34 | * | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -667,8 +606,6 @@ track | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | @@ -683,12 +620,10 @@ track | params_flow.rb:23:9:23:11 | :p2 | type tracker without call steps | params_flow.rb:23:9:23:11 | :p2 | | params_flow.rb:23:9:23:23 | Pair | type tracker without call steps | params_flow.rb:23:9:23:23 | Pair | | params_flow.rb:23:16:23:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:16:23:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:23:16:23:23 | * | type tracker without call steps | params_flow.rb:23:16:23:23 | * | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -698,8 +633,6 @@ track | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | @@ -711,12 +644,10 @@ track | params_flow.rb:23:26:23:28 | :p1 | type tracker without call steps | params_flow.rb:23:26:23:28 | :p1 | | params_flow.rb:23:26:23:40 | Pair | type tracker without call steps | params_flow.rb:23:26:23:40 | Pair | | params_flow.rb:23:33:23:40 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:33:23:40 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:23:33:23:40 | * | type tracker without call steps | params_flow.rb:23:33:23:40 | * | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -726,8 +657,6 @@ track | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | @@ -741,10 +670,8 @@ track | params_flow.rb:25:1:31:3 | kwargs | type tracker without call steps | params_flow.rb:25:1:31:3 | kwargs | | params_flow.rb:25:1:31:3 | self in kwargs | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:25:1:31:3 | self in kwargs | type tracker without call steps | params_flow.rb:25:1:31:3 | self in kwargs | -| params_flow.rb:25:1:31:3 | synthetic *args | type tracker without call steps | params_flow.rb:25:1:31:3 | synthetic *args | | params_flow.rb:25:12:25:13 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:25:12:25:13 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:25:12:25:13 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:25:12:25:13 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:25:12:25:13 | p1 | type tracker without call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:25:12:25:13 | p1 | type tracker without call steps | params_flow.rb:25:12:25:13 | p1 | @@ -752,50 +679,42 @@ track | params_flow.rb:25:17:25:24 | **kwargs | type tracker without call steps | params_flow.rb:25:17:25:24 | **kwargs | | params_flow.rb:25:19:25:24 | kwargs | type tracker without call steps | params_flow.rb:25:19:25:24 | kwargs | | params_flow.rb:26:5:26:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:26:5:26:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:26:5:26:11 | * | type tracker without call steps | params_flow.rb:26:5:26:11 | * | | params_flow.rb:26:5:26:11 | call to sink | type tracker without call steps | params_flow.rb:26:5:26:11 | call to sink | | params_flow.rb:27:5:27:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:27:5:27:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:27:5:27:22 | * | type tracker without call steps | params_flow.rb:27:5:27:22 | * | | params_flow.rb:27:5:27:22 | call to sink | type tracker without call steps | params_flow.rb:27:5:27:22 | call to sink | | params_flow.rb:27:11:27:21 | * | type tracker without call steps | params_flow.rb:27:11:27:21 | * | | params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:27:11:27:21 | ...[...] | type tracker without call steps | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:27:11:27:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:27:5:27:22 | * | | params_flow.rb:27:18:27:20 | :p1 | type tracker without call steps | params_flow.rb:27:18:27:20 | :p1 | | params_flow.rb:27:18:27:20 | :p1 | type tracker without call steps with content element 0 | params_flow.rb:27:11:27:21 | * | | params_flow.rb:28:5:28:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:28:5:28:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:28:5:28:22 | * | type tracker without call steps | params_flow.rb:28:5:28:22 | * | | params_flow.rb:28:5:28:22 | call to sink | type tracker without call steps | params_flow.rb:28:5:28:22 | call to sink | | params_flow.rb:28:11:28:21 | * | type tracker without call steps | params_flow.rb:28:11:28:21 | * | | params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:28:11:28:21 | ...[...] | type tracker without call steps | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:28:11:28:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:28:5:28:22 | * | | params_flow.rb:28:18:28:20 | :p2 | type tracker without call steps | params_flow.rb:28:18:28:20 | :p2 | | params_flow.rb:28:18:28:20 | :p2 | type tracker without call steps with content element 0 | params_flow.rb:28:11:28:21 | * | | params_flow.rb:29:5:29:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:29:5:29:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:29:5:29:22 | * | type tracker without call steps | params_flow.rb:29:5:29:22 | * | | params_flow.rb:29:5:29:22 | call to sink | type tracker without call steps | params_flow.rb:29:5:29:22 | call to sink | | params_flow.rb:29:11:29:21 | * | type tracker without call steps | params_flow.rb:29:11:29:21 | * | | params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:29:11:29:21 | ...[...] | type tracker without call steps | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:29:11:29:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:29:5:29:22 | * | | params_flow.rb:29:18:29:20 | :p3 | type tracker without call steps | params_flow.rb:29:18:29:20 | :p3 | | params_flow.rb:29:18:29:20 | :p3 | type tracker without call steps with content element 0 | params_flow.rb:29:11:29:21 | * | | params_flow.rb:30:5:30:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:30:5:30:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:30:5:30:22 | * | type tracker without call steps | params_flow.rb:30:5:30:22 | * | | params_flow.rb:30:5:30:22 | call to sink | type tracker without call steps | params_flow.rb:30:5:30:22 | call to sink | | params_flow.rb:30:5:30:22 | call to sink | type tracker without call steps | params_flow.rb:33:1:33:58 | call to kwargs | @@ -804,7 +723,6 @@ track | params_flow.rb:30:11:30:21 | * | type tracker without call steps | params_flow.rb:30:11:30:21 | * | | params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:30:11:30:21 | ...[...] | type tracker without call steps | params_flow.rb:30:11:30:21 | ...[...] | | params_flow.rb:30:11:30:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:30:5:30:22 | * | @@ -817,13 +735,11 @@ track | params_flow.rb:33:8:33:9 | :p1 | type tracker without call steps | params_flow.rb:33:8:33:9 | :p1 | | params_flow.rb:33:8:33:19 | Pair | type tracker without call steps | params_flow.rb:33:8:33:19 | Pair | | params_flow.rb:33:12:33:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:12:33:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:12:33:19 | * | type tracker without call steps | params_flow.rb:33:12:33:19 | * | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | @@ -836,8 +752,6 @@ track | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | @@ -851,12 +765,10 @@ track | params_flow.rb:33:22:33:23 | :p2 | type tracker without call steps | params_flow.rb:33:22:33:23 | :p2 | | params_flow.rb:33:22:33:34 | Pair | type tracker without call steps | params_flow.rb:33:22:33:34 | Pair | | params_flow.rb:33:26:33:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:26:33:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:26:33:34 | * | type tracker without call steps | params_flow.rb:33:26:33:34 | * | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | @@ -867,8 +779,6 @@ track | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | @@ -881,12 +791,10 @@ track | params_flow.rb:33:37:33:38 | :p3 | type tracker without call steps | params_flow.rb:33:37:33:38 | :p3 | | params_flow.rb:33:37:33:49 | Pair | type tracker without call steps | params_flow.rb:33:37:33:49 | Pair | | params_flow.rb:33:41:33:49 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:41:33:49 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:41:33:49 | * | type tracker without call steps | params_flow.rb:33:41:33:49 | * | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | @@ -897,8 +805,6 @@ track | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | @@ -913,7 +819,6 @@ track | params_flow.rb:33:56:33:57 | "" | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps | params_flow.rb:30:11:30:21 | ...[...] | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:30:5:30:22 | * | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element :p4 | params_flow.rb:25:1:31:3 | **kwargs | @@ -927,12 +832,10 @@ track | params_flow.rb:34:10:34:11 | :p3 | type tracker without call steps | params_flow.rb:34:10:34:11 | :p3 | | params_flow.rb:34:10:34:22 | Pair | type tracker without call steps | params_flow.rb:34:10:34:22 | Pair | | params_flow.rb:34:14:34:22 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:34:14:34:22 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:34:14:34:22 | * | type tracker without call steps | params_flow.rb:34:14:34:22 | * | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | @@ -945,8 +848,6 @@ track | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | @@ -963,7 +864,6 @@ track | params_flow.rb:34:29:34:30 | "" | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps | params_flow.rb:30:11:30:21 | ...[...] | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:30:5:30:22 | * | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element :p4 | params_flow.rb:25:1:31:3 | **kwargs | @@ -979,13 +879,11 @@ track | params_flow.rb:35:8:35:9 | :p1 | type tracker without call steps | params_flow.rb:35:8:35:9 | :p1 | | params_flow.rb:35:8:35:20 | Pair | type tracker without call steps | params_flow.rb:35:8:35:20 | Pair | | params_flow.rb:35:12:35:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:35:12:35:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:35:12:35:20 | * | type tracker without call steps | params_flow.rb:35:12:35:20 | * | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | @@ -998,8 +896,6 @@ track | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | @@ -1020,13 +916,11 @@ track | params_flow.rb:37:9:37:11 | :p1 | type tracker without call steps | params_flow.rb:37:9:37:11 | :p1 | | params_flow.rb:37:9:37:24 | Pair | type tracker without call steps | params_flow.rb:37:9:37:24 | Pair | | params_flow.rb:37:16:37:24 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:16:37:24 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:37:16:37:24 | * | type tracker without call steps | params_flow.rb:37:16:37:24 | * | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | @@ -1041,8 +935,6 @@ track | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | @@ -1058,12 +950,10 @@ track | params_flow.rb:37:27:37:29 | :p2 | type tracker without call steps | params_flow.rb:37:27:37:29 | :p2 | | params_flow.rb:37:27:37:42 | Pair | type tracker without call steps | params_flow.rb:37:27:37:42 | Pair | | params_flow.rb:37:34:37:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:34:37:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:37:34:37:42 | * | type tracker without call steps | params_flow.rb:37:34:37:42 | * | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | @@ -1076,8 +966,6 @@ track | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | @@ -1100,12 +988,10 @@ track | params_flow.rb:40:9:40:11 | :p1 | type tracker without call steps | params_flow.rb:40:9:40:11 | :p1 | | params_flow.rb:40:9:40:24 | Pair | type tracker without call steps | params_flow.rb:40:9:40:24 | Pair | | params_flow.rb:40:16:40:24 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:40:16:40:24 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:40:16:40:24 | * | type tracker without call steps | params_flow.rb:40:16:40:24 | * | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | @@ -1117,8 +1003,6 @@ track | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | @@ -1135,12 +1019,10 @@ track | params_flow.rb:41:9:41:10 | :p2 | type tracker without call steps | params_flow.rb:41:9:41:10 | :p2 | | params_flow.rb:41:9:41:21 | Pair | type tracker without call steps | params_flow.rb:41:9:41:21 | Pair | | params_flow.rb:41:13:41:21 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:41:13:41:21 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:41:13:41:21 | * | type tracker without call steps | params_flow.rb:41:13:41:21 | * | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | @@ -1150,8 +1032,6 @@ track | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | @@ -1169,7 +1049,6 @@ track | params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:43:9:43:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:43:9:43:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:43:9:43:17 | * | type tracker without call steps | params_flow.rb:43:9:43:17 | * | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | @@ -1178,7 +1057,6 @@ track | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:43:15:43:16 | 17 | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | @@ -1187,7 +1065,6 @@ track | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 or unknown | params_flow.rb:43:8:43:18 | call to [] | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:44:1:44:28 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:44:1:44:28 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:1:44:28 | * | type tracker without call steps | params_flow.rb:44:1:44:28 | * | | params_flow.rb:44:1:44:28 | *[1] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:44:1:44:28 | *[2] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[2] | @@ -1202,15 +1079,12 @@ track | params_flow.rb:44:1:44:28 | *[-1] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[-1] | | params_flow.rb:44:1:44:28 | call to positional | type tracker without call steps | params_flow.rb:44:1:44:28 | call to positional | | params_flow.rb:44:12:44:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:44:12:44:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:44:12:44:20 | * | type tracker without call steps | params_flow.rb:44:12:44:20 | * | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:44:12:44:20 | call to taint | type tracker without call steps | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:44:12:44:20 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:44:1:44:28 | * | @@ -1218,12 +1092,9 @@ track | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | | params_flow.rb:44:18:44:19 | 16 | type tracker without call steps | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:44:18:44:19 | 16 | type tracker without call steps | params_flow.rb:44:18:44:19 | 16 | @@ -1233,68 +1104,76 @@ track | params_flow.rb:46:1:46:4 | args | type tracker without call steps | params_flow.rb:46:1:46:4 | args | | params_flow.rb:46:8:46:29 | * | type tracker without call steps | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:8:46:29 | Array | type tracker without call steps | params_flow.rb:46:8:46:29 | Array | +| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:46:8:46:29 | call to [] | type tracker without call steps | params_flow.rb:46:8:46:29 | call to [] | -| params_flow.rb:46:8:46:29 | call to [] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[0] | | params_flow.rb:46:8:46:29 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:46:9:46:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:9:46:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:9:46:17 | * | type tracker without call steps | params_flow.rb:46:9:46:17 | * | +| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps | params_flow.rb:46:9:46:17 | call to taint | -| params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps | params_flow.rb:47:1:47:17 | *[0] | | params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:46:15:46:16 | 18 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps | params_flow.rb:46:15:46:16 | 18 | -| params_flow.rb:46:15:46:16 | 18 | type tracker without call steps | params_flow.rb:47:1:47:17 | *[0] | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 | params_flow.rb:46:9:46:17 | * | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 or unknown | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:46:20:46:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:20:46:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:20:46:28 | * | type tracker without call steps | params_flow.rb:46:20:46:28 | * | +| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps | params_flow.rb:46:20:46:28 | call to taint | -| params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:46:26:46:27 | 19 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 1 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps | params_flow.rb:46:20:46:28 | call to taint | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps | params_flow.rb:46:26:46:27 | 19 | -| params_flow.rb:46:26:46:27 | 19 | type tracker without call steps | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 0 | params_flow.rb:46:20:46:28 | * | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 or unknown | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 or unknown | params_flow.rb:47:12:47:16 | * ... | -| params_flow.rb:47:1:47:17 | *[0] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[0] | -| params_flow.rb:47:1:47:17 | *[1] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[1] | -| params_flow.rb:47:1:47:17 | *[2] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[2] | -| params_flow.rb:47:1:47:17 | *[3] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[3] | -| params_flow.rb:47:1:47:17 | *[4] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[4] | -| params_flow.rb:47:1:47:17 | *[5] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[5] | -| params_flow.rb:47:1:47:17 | *[6] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[6] | -| params_flow.rb:47:1:47:17 | *[7] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[7] | -| params_flow.rb:47:1:47:17 | *[8] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[8] | -| params_flow.rb:47:1:47:17 | *[9] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[9] | -| params_flow.rb:47:1:47:17 | *[10] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[10] | -| params_flow.rb:47:1:47:17 | *[-1] | type tracker without call steps | params_flow.rb:47:1:47:17 | *[-1] | | params_flow.rb:47:1:47:17 | call to positional | type tracker without call steps | params_flow.rb:47:1:47:17 | call to positional | +| params_flow.rb:47:12:47:16 | * ... | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:47:12:47:16 | * ... | type tracker without call steps | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:49:1:53:3 | &block | type tracker without call steps | params_flow.rb:49:1:53:3 | &block | | params_flow.rb:49:1:53:3 | posargs | type tracker without call steps | params_flow.rb:49:1:53:3 | posargs | | params_flow.rb:49:1:53:3 | self in posargs | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:49:1:53:3 | self in posargs | type tracker without call steps | params_flow.rb:49:1:53:3 | self in posargs | | params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:49:13:49:14 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:49:13:49:14 | p1 | type tracker without call steps | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:49:13:49:14 | p1 | type tracker without call steps | params_flow.rb:49:13:49:14 | p1 | @@ -1302,24 +1181,20 @@ track | params_flow.rb:49:17:49:24 | *posargs | type tracker without call steps | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:49:18:49:24 | posargs | type tracker without call steps | params_flow.rb:49:18:49:24 | posargs | | params_flow.rb:50:5:50:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:50:5:50:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:50:5:50:11 | * | type tracker without call steps | params_flow.rb:50:5:50:11 | * | | params_flow.rb:50:5:50:11 | call to sink | type tracker without call steps | params_flow.rb:50:5:50:11 | call to sink | | params_flow.rb:51:5:51:21 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:51:5:51:21 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:51:5:51:21 | * | type tracker without call steps | params_flow.rb:51:5:51:21 | * | | params_flow.rb:51:5:51:21 | call to sink | type tracker without call steps | params_flow.rb:51:5:51:21 | call to sink | | params_flow.rb:51:11:51:20 | * | type tracker without call steps | params_flow.rb:51:11:51:20 | * | | params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:51:11:51:20 | ...[...] | type tracker without call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:51:11:51:20 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:51:5:51:21 | * | | params_flow.rb:51:19:51:19 | 0 | type tracker without call steps | params_flow.rb:51:19:51:19 | 0 | | params_flow.rb:51:19:51:19 | 0 | type tracker without call steps with content element 0 | params_flow.rb:51:11:51:20 | * | | params_flow.rb:52:5:52:21 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:52:5:52:21 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:52:5:52:21 | * | type tracker without call steps | params_flow.rb:52:5:52:21 | * | | params_flow.rb:52:5:52:21 | call to sink | type tracker without call steps | params_flow.rb:52:5:52:21 | call to sink | | params_flow.rb:52:5:52:21 | call to sink | type tracker without call steps | params_flow.rb:55:1:55:29 | call to posargs | @@ -1328,27 +1203,22 @@ track | params_flow.rb:52:11:52:20 | * | type tracker without call steps | params_flow.rb:52:11:52:20 | * | | params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:52:11:52:20 | ...[...] | type tracker without call steps | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:52:11:52:20 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:52:19:52:19 | 1 | type tracker without call steps | params_flow.rb:52:19:52:19 | 1 | | params_flow.rb:52:19:52:19 | 1 | type tracker without call steps with content element 0 | params_flow.rb:52:11:52:20 | * | | params_flow.rb:55:1:55:29 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:1:55:29 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:55:1:55:29 | * | type tracker without call steps | params_flow.rb:55:1:55:29 | * | | params_flow.rb:55:1:55:29 | call to posargs | type tracker without call steps | params_flow.rb:55:1:55:29 | call to posargs | | params_flow.rb:55:9:55:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:9:55:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:55:9:55:17 | * | type tracker without call steps | params_flow.rb:55:9:55:17 | * | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | @@ -1359,12 +1229,9 @@ track | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | @@ -1373,16 +1240,13 @@ track | params_flow.rb:55:15:55:16 | 20 | type tracker without call steps with content element 0 | params_flow.rb:55:1:55:29 | * | | params_flow.rb:55:15:55:16 | 20 | type tracker without call steps with content element 0 | params_flow.rb:55:9:55:17 | * | | params_flow.rb:55:20:55:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:20:55:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:55:20:55:28 | * | type tracker without call steps | params_flow.rb:55:20:55:28 | * | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:55:20:55:28 | call to taint | type tracker without call steps | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:55:20:55:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:55:1:55:29 | * | @@ -1390,13 +1254,10 @@ track | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:55:26:55:27 | 21 | type tracker without call steps | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:55:26:55:27 | 21 | type tracker without call steps | params_flow.rb:55:26:55:27 | 21 | @@ -1408,7 +1269,6 @@ track | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | @@ -1416,12 +1276,10 @@ track | params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | | params_flow.rb:57:9:57:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:57:9:57:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:57:9:57:17 | * | type tracker without call steps | params_flow.rb:57:9:57:17 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | @@ -1434,8 +1292,6 @@ track | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | @@ -1448,7 +1304,6 @@ track | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 or unknown | params_flow.rb:57:8:57:18 | call to [] | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | | params_flow.rb:58:1:58:25 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:58:1:58:25 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:58:1:58:25 | * | type tracker without call steps | params_flow.rb:58:1:58:25 | * | | params_flow.rb:58:1:58:25 | *[1] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:58:1:58:25 | *[2] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[2] | @@ -1463,16 +1318,13 @@ track | params_flow.rb:58:1:58:25 | *[-1] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[-1] | | params_flow.rb:58:1:58:25 | call to posargs | type tracker without call steps | params_flow.rb:58:1:58:25 | call to posargs | | params_flow.rb:58:9:58:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:58:9:58:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:58:9:58:17 | * | type tracker without call steps | params_flow.rb:58:9:58:17 | * | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | @@ -1483,12 +1335,9 @@ track | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | @@ -1501,121 +1350,121 @@ track | params_flow.rb:60:1:60:4 | args | type tracker without call steps | params_flow.rb:60:1:60:4 | args | | params_flow.rb:60:8:60:29 | * | type tracker without call steps | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:8:60:29 | Array | type tracker without call steps | params_flow.rb:60:8:60:29 | Array | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:60:8:60:29 | call to [] | type tracker without call steps | params_flow.rb:60:8:60:29 | call to [] | -| params_flow.rb:60:8:60:29 | call to [] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[0] | | params_flow.rb:60:8:60:29 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:60:9:60:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:9:60:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:9:60:17 | * | type tracker without call steps | params_flow.rb:60:9:60:17 | * | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps | params_flow.rb:60:9:60:17 | call to taint | -| params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps | params_flow.rb:61:1:61:14 | *[0] | | params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:60:8:60:29 | call to [] | | params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps | params_flow.rb:60:15:60:16 | 24 | -| params_flow.rb:60:15:60:16 | 24 | type tracker without call steps | params_flow.rb:61:1:61:14 | *[0] | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 | params_flow.rb:60:9:60:17 | * | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 or unknown | params_flow.rb:60:8:60:29 | call to [] | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:60:20:60:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:20:60:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:20:60:28 | * | type tracker without call steps | params_flow.rb:60:20:60:28 | * | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps | params_flow.rb:60:20:60:28 | call to taint | -| params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:60:8:60:29 | call to [] | | params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:60:26:60:27 | 25 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 1 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps | params_flow.rb:60:20:60:28 | call to taint | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps | params_flow.rb:60:26:60:27 | 25 | -| params_flow.rb:60:26:60:27 | 25 | type tracker without call steps | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 0 | params_flow.rb:60:20:60:28 | * | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 or unknown | params_flow.rb:60:8:60:29 | call to [] | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 or unknown | params_flow.rb:61:9:61:13 | * ... | -| params_flow.rb:61:1:61:14 | *[0] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[0] | -| params_flow.rb:61:1:61:14 | *[1] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[1] | -| params_flow.rb:61:1:61:14 | *[2] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[2] | -| params_flow.rb:61:1:61:14 | *[3] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[3] | -| params_flow.rb:61:1:61:14 | *[4] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[4] | -| params_flow.rb:61:1:61:14 | *[5] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[5] | -| params_flow.rb:61:1:61:14 | *[6] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[6] | -| params_flow.rb:61:1:61:14 | *[7] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[7] | -| params_flow.rb:61:1:61:14 | *[8] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[8] | -| params_flow.rb:61:1:61:14 | *[9] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[9] | -| params_flow.rb:61:1:61:14 | *[10] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[10] | -| params_flow.rb:61:1:61:14 | *[-1] | type tracker without call steps | params_flow.rb:61:1:61:14 | *[-1] | | params_flow.rb:61:1:61:14 | call to posargs | type tracker without call steps | params_flow.rb:61:1:61:14 | call to posargs | +| params_flow.rb:61:9:61:13 | * ... | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:61:9:61:13 | * ... | type tracker without call steps | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:63:1:63:4 | args | type tracker without call steps | params_flow.rb:63:1:63:4 | args | | params_flow.rb:63:8:63:16 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:63:8:63:16 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:63:8:63:16 | * | type tracker without call steps | params_flow.rb:63:8:63:16 | * | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps | params_flow.rb:65:10:65:13 | ...[...] | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:65:5:65:13 | * | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:63:8:63:16 | call to taint | type tracker without call steps | params_flow.rb:63:8:63:16 | call to taint | -| params_flow.rb:63:8:63:16 | call to taint | type tracker without call steps | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:63:8:63:16 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:67:12:67:16 | * ... | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps | params_flow.rb:65:10:65:13 | ...[...] | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:65:5:65:13 | * | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps | params_flow.rb:63:14:63:15 | 26 | -| params_flow.rb:63:14:63:15 | 26 | type tracker without call steps | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps with content element 0 | params_flow.rb:63:8:63:16 | * | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps with content element 0 or unknown | params_flow.rb:67:12:67:16 | * ... | | params_flow.rb:64:1:66:3 | &block | type tracker without call steps | params_flow.rb:64:1:66:3 | &block | | params_flow.rb:64:1:66:3 | self in splatstuff | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:64:1:66:3 | self in splatstuff | type tracker without call steps | params_flow.rb:64:1:66:3 | self in splatstuff | | params_flow.rb:64:1:66:3 | splatstuff | type tracker without call steps | params_flow.rb:64:1:66:3 | splatstuff | -| params_flow.rb:64:1:66:3 | synthetic *args | type tracker without call steps | params_flow.rb:64:1:66:3 | synthetic *args | | params_flow.rb:64:16:64:17 | *x | type tracker without call steps | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:64:17:64:17 | x | type tracker without call steps | params_flow.rb:64:17:64:17 | x | | params_flow.rb:65:5:65:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:65:5:65:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:65:5:65:13 | * | type tracker without call steps | params_flow.rb:65:5:65:13 | * | | params_flow.rb:65:5:65:13 | call to sink | type tracker without call steps | params_flow.rb:65:5:65:13 | call to sink | | params_flow.rb:65:5:65:13 | call to sink | type tracker without call steps | params_flow.rb:67:1:67:17 | call to splatstuff | | params_flow.rb:65:10:65:13 | * | type tracker without call steps | params_flow.rb:65:10:65:13 | * | | params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:65:10:65:13 | ...[...] | type tracker without call steps | params_flow.rb:65:10:65:13 | ...[...] | | params_flow.rb:65:10:65:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:65:5:65:13 | * | | params_flow.rb:65:12:65:12 | 0 | type tracker without call steps | params_flow.rb:65:12:65:12 | 0 | | params_flow.rb:65:12:65:12 | 0 | type tracker without call steps with content element 0 | params_flow.rb:65:10:65:13 | * | -| params_flow.rb:67:1:67:17 | *[0] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[0] | -| params_flow.rb:67:1:67:17 | *[1] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[1] | -| params_flow.rb:67:1:67:17 | *[2] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[2] | -| params_flow.rb:67:1:67:17 | *[3] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[3] | -| params_flow.rb:67:1:67:17 | *[4] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[4] | -| params_flow.rb:67:1:67:17 | *[5] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[5] | -| params_flow.rb:67:1:67:17 | *[6] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[6] | -| params_flow.rb:67:1:67:17 | *[7] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[7] | -| params_flow.rb:67:1:67:17 | *[8] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[8] | -| params_flow.rb:67:1:67:17 | *[9] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[9] | -| params_flow.rb:67:1:67:17 | *[10] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[10] | -| params_flow.rb:67:1:67:17 | *[-1] | type tracker without call steps | params_flow.rb:67:1:67:17 | *[-1] | | params_flow.rb:67:1:67:17 | call to splatstuff | type tracker without call steps | params_flow.rb:67:1:67:17 | call to splatstuff | | params_flow.rb:67:12:67:16 | * ... | type tracker with call steps | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:67:12:67:16 | * ... | type tracker without call steps | params_flow.rb:67:12:67:16 | * ... | @@ -1624,17 +1473,14 @@ track | params_flow.rb:69:1:76:3 | self in splatmid | type tracker without call steps | params_flow.rb:69:1:76:3 | self in splatmid | | params_flow.rb:69:1:76:3 | splatmid | type tracker without call steps | params_flow.rb:69:1:76:3 | splatmid | | params_flow.rb:69:1:76:3 | synthetic *args | type tracker without call steps | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:69:1:76:3 | synthetic *args | type tracker without call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:69:14:69:14 | x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:14:69:14 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:69:14:69:14 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:69:14:69:14 | x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:69:14:69:14 | x | type tracker without call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:69:14:69:14 | x | type tracker without call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:69:14:69:14 | x | type tracker without call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:69:17:69:17 | y | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:17:69:17 | y | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:69:17:69:17 | y | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:69:17:69:17 | y | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:69:17:69:17 | y | type tracker without call steps | params_flow.rb:69:17:69:17 | y | | params_flow.rb:69:17:69:17 | y | type tracker without call steps | params_flow.rb:69:17:69:17 | y | @@ -1643,77 +1489,63 @@ track | params_flow.rb:69:21:69:21 | z | type tracker without call steps | params_flow.rb:69:21:69:21 | z | | params_flow.rb:69:24:69:24 | w | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:24:69:24 | w | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:69:24:69:24 | w | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:69:24:69:24 | w | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:69:24:69:24 | w | type tracker without call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:69:24:69:24 | w | type tracker without call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:69:24:69:24 | w | type tracker without call steps with content element 0 | params_flow.rb:74:5:74:10 | * | | params_flow.rb:69:27:69:27 | r | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:27:69:27 | r | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:69:27:69:27 | r | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:69:27:69:27 | r | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:69:27:69:27 | r | type tracker without call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:69:27:69:27 | r | type tracker without call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:69:27:69:27 | r | type tracker without call steps with content element 0 | params_flow.rb:75:5:75:10 | * | | params_flow.rb:70:5:70:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:70:5:70:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:70:5:70:10 | * | type tracker without call steps | params_flow.rb:70:5:70:10 | * | | params_flow.rb:70:5:70:10 | call to sink | type tracker without call steps | params_flow.rb:70:5:70:10 | call to sink | | params_flow.rb:71:5:71:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:71:5:71:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:71:5:71:10 | * | type tracker without call steps | params_flow.rb:71:5:71:10 | * | | params_flow.rb:71:5:71:10 | call to sink | type tracker without call steps | params_flow.rb:71:5:71:10 | call to sink | | params_flow.rb:72:5:72:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:72:5:72:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:72:5:72:13 | * | type tracker without call steps | params_flow.rb:72:5:72:13 | * | | params_flow.rb:72:5:72:13 | call to sink | type tracker without call steps | params_flow.rb:72:5:72:13 | call to sink | | params_flow.rb:72:10:72:13 | * | type tracker without call steps | params_flow.rb:72:10:72:13 | * | | params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:72:10:72:13 | ...[...] | type tracker without call steps | params_flow.rb:72:10:72:13 | ...[...] | | params_flow.rb:72:10:72:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:72:5:72:13 | * | | params_flow.rb:72:12:72:12 | 0 | type tracker without call steps | params_flow.rb:72:12:72:12 | 0 | | params_flow.rb:72:12:72:12 | 0 | type tracker without call steps with content element 0 | params_flow.rb:72:10:72:13 | * | | params_flow.rb:73:5:73:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:73:5:73:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:73:5:73:13 | * | type tracker without call steps | params_flow.rb:73:5:73:13 | * | | params_flow.rb:73:5:73:13 | call to sink | type tracker without call steps | params_flow.rb:73:5:73:13 | call to sink | | params_flow.rb:73:10:73:13 | * | type tracker without call steps | params_flow.rb:73:10:73:13 | * | | params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:73:10:73:13 | ...[...] | type tracker without call steps | params_flow.rb:73:10:73:13 | ...[...] | | params_flow.rb:73:10:73:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:73:5:73:13 | * | | params_flow.rb:73:12:73:12 | 1 | type tracker without call steps | params_flow.rb:73:12:73:12 | 1 | | params_flow.rb:73:12:73:12 | 1 | type tracker without call steps with content element 0 | params_flow.rb:73:10:73:13 | * | | params_flow.rb:74:5:74:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:74:5:74:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:74:5:74:10 | * | type tracker without call steps | params_flow.rb:74:5:74:10 | * | | params_flow.rb:74:5:74:10 | call to sink | type tracker without call steps | params_flow.rb:74:5:74:10 | call to sink | | params_flow.rb:75:5:75:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:75:5:75:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:75:5:75:10 | * | type tracker without call steps | params_flow.rb:75:5:75:10 | * | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:75:5:75:10 | call to sink | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:78:1:78:63 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:81:1:81:37 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:96:1:96:88 | call to splatmid | | params_flow.rb:78:1:78:63 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:1:78:63 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:1:78:63 | * | type tracker without call steps | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:1:78:63 | call to splatmid | type tracker without call steps | params_flow.rb:78:1:78:63 | call to splatmid | | params_flow.rb:78:10:78:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:10:78:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:10:78:18 | * | type tracker without call steps | params_flow.rb:78:10:78:18 | * | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:78:10:78:18 | call to taint | type tracker without call steps | params_flow.rb:78:10:78:18 | call to taint | | params_flow.rb:78:10:78:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:78:1:78:63 | * | @@ -1721,113 +1553,88 @@ track | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:78:16:78:17 | 27 | type tracker without call steps | params_flow.rb:78:10:78:18 | call to taint | | params_flow.rb:78:16:78:17 | 27 | type tracker without call steps | params_flow.rb:78:16:78:17 | 27 | | params_flow.rb:78:16:78:17 | 27 | type tracker without call steps with content element 0 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:16:78:17 | 27 | type tracker without call steps with content element 0 | params_flow.rb:78:10:78:18 | * | | params_flow.rb:78:21:78:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:21:78:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:21:78:29 | * | type tracker without call steps | params_flow.rb:78:21:78:29 | * | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps | params_flow.rb:69:17:69:17 | y | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:21:78:29 | call to taint | type tracker without call steps | params_flow.rb:78:21:78:29 | call to taint | | params_flow.rb:78:21:78:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps | params_flow.rb:69:17:69:17 | y | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:27:78:28 | 28 | type tracker without call steps | params_flow.rb:78:21:78:29 | call to taint | | params_flow.rb:78:27:78:28 | 28 | type tracker without call steps | params_flow.rb:78:27:78:28 | 28 | | params_flow.rb:78:27:78:28 | 28 | type tracker without call steps with content element 0 | params_flow.rb:78:21:78:29 | * | | params_flow.rb:78:27:78:28 | 28 | type tracker without call steps with content element 1 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:32:78:40 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:32:78:40 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:32:78:40 | * | type tracker without call steps | params_flow.rb:78:32:78:40 | * | | params_flow.rb:78:32:78:40 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:32:78:40 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:32:78:40 | call to taint | type tracker without call steps | params_flow.rb:78:32:78:40 | call to taint | | params_flow.rb:78:32:78:40 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:38:78:39 | 29 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:38:78:39 | 29 | type tracker without call steps | params_flow.rb:78:32:78:40 | call to taint | | params_flow.rb:78:38:78:39 | 29 | type tracker without call steps | params_flow.rb:78:38:78:39 | 29 | | params_flow.rb:78:38:78:39 | 29 | type tracker without call steps with content element 0 | params_flow.rb:78:32:78:40 | * | | params_flow.rb:78:38:78:39 | 29 | type tracker without call steps with content element 2 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:43:78:51 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:43:78:51 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:43:78:51 | * | type tracker without call steps | params_flow.rb:78:43:78:51 | * | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:43:78:51 | call to taint | type tracker without call steps | params_flow.rb:78:43:78:51 | call to taint | | params_flow.rb:78:43:78:51 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:49:78:50 | 30 | type tracker without call steps | params_flow.rb:78:43:78:51 | call to taint | | params_flow.rb:78:49:78:50 | 30 | type tracker without call steps | params_flow.rb:78:49:78:50 | 30 | | params_flow.rb:78:49:78:50 | 30 | type tracker without call steps with content element 0 | params_flow.rb:78:43:78:51 | * | | params_flow.rb:78:49:78:50 | 30 | type tracker without call steps with content element 3 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:54:78:62 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:54:78:62 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:54:78:62 | * | type tracker without call steps | params_flow.rb:78:54:78:62 | * | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:54:78:62 | call to taint | type tracker without call steps | params_flow.rb:78:54:78:62 | call to taint | | params_flow.rb:78:54:78:62 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:60:78:61 | 31 | type tracker without call steps | params_flow.rb:78:54:78:62 | call to taint | | params_flow.rb:78:60:78:61 | 31 | type tracker without call steps | params_flow.rb:78:60:78:61 | 31 | | params_flow.rb:78:60:78:61 | 31 | type tracker without call steps with content element 0 | params_flow.rb:78:54:78:62 | * | @@ -1839,7 +1646,6 @@ track | params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:9:80:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:9:80:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:9:80:17 | * | type tracker without call steps | params_flow.rb:80:9:80:17 | * | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | @@ -1848,7 +1654,6 @@ track | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:80:15:80:16 | 33 | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | @@ -1857,7 +1662,6 @@ track | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:20:80:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:20:80:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:20:80:28 | * | type tracker without call steps | params_flow.rb:80:20:80:28 | * | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | @@ -1866,7 +1670,6 @@ track | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:26:80:27 | 34 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:80:26:80:27 | 34 | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | @@ -1875,7 +1678,6 @@ track | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:31:80:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:31:80:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:31:80:39 | * | type tracker without call steps | params_flow.rb:80:31:80:39 | * | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[3] | @@ -1884,7 +1686,6 @@ track | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:80:37:80:38 | 35 | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[3] | @@ -1893,7 +1694,6 @@ track | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:42:80:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:42:80:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:42:80:50 | * | type tracker without call steps | params_flow.rb:80:42:80:50 | * | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[4] | @@ -1902,7 +1702,6 @@ track | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:80:48:80:49 | 36 | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[4] | @@ -1911,7 +1710,6 @@ track | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:81:1:81:37 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:81:1:81:37 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:1:81:37 | * | type tracker without call steps | params_flow.rb:81:1:81:37 | * | | params_flow.rb:81:1:81:37 | *[1] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:81:1:81:37 | *[2] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | @@ -1926,15 +1724,12 @@ track | params_flow.rb:81:1:81:37 | *[-1] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[-1] | | params_flow.rb:81:1:81:37 | call to splatmid | type tracker without call steps | params_flow.rb:81:1:81:37 | call to splatmid | | params_flow.rb:81:10:81:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:10:81:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:81:10:81:18 | * | type tracker without call steps | params_flow.rb:81:10:81:18 | * | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:81:10:81:18 | call to taint | type tracker without call steps | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:81:10:81:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:81:1:81:37 | * | @@ -1942,12 +1737,9 @@ track | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps | params_flow.rb:81:16:81:17 | 32 | @@ -1955,16 +1747,12 @@ track | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps with content element 0 | params_flow.rb:81:10:81:18 | * | | params_flow.rb:81:21:81:25 | * ... | type tracker without call steps | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:81:28:81:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:28:81:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:81:28:81:36 | * | type tracker without call steps | params_flow.rb:81:28:81:36 | * | | params_flow.rb:81:28:81:36 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:81:28:81:36 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:28:81:36 | call to taint | type tracker without call steps | params_flow.rb:81:28:81:36 | call to taint | | params_flow.rb:81:28:81:36 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:81:34:81:35 | 37 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:34:81:35 | 37 | type tracker without call steps | params_flow.rb:81:28:81:36 | call to taint | | params_flow.rb:81:34:81:35 | 37 | type tracker without call steps | params_flow.rb:81:34:81:35 | 37 | @@ -1975,82 +1763,67 @@ track | params_flow.rb:83:1:91:3 | self in pos_many | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:83:1:91:3 | self in pos_many | type tracker without call steps | params_flow.rb:83:1:91:3 | self in pos_many | | params_flow.rb:83:1:91:3 | synthetic *args | type tracker without call steps | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:83:1:91:3 | synthetic *args | type tracker without call steps | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:83:14:83:14 | t | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:14:83:14 | t | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:14:83:14 | t | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:14:83:14 | t | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:14:83:14 | t | type tracker without call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:83:14:83:14 | t | type tracker without call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:83:14:83:14 | t | type tracker without call steps with content element 0 | params_flow.rb:84:5:84:10 | * | | params_flow.rb:83:17:83:17 | u | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:17:83:17 | u | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:17:83:17 | u | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:17:83:17 | u | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:17:83:17 | u | type tracker without call steps | params_flow.rb:83:17:83:17 | u | | params_flow.rb:83:17:83:17 | u | type tracker without call steps | params_flow.rb:83:17:83:17 | u | | params_flow.rb:83:17:83:17 | u | type tracker without call steps with content element 0 | params_flow.rb:85:5:85:10 | * | | params_flow.rb:83:20:83:20 | v | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:20:83:20 | v | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:20:83:20 | v | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:20:83:20 | v | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:20:83:20 | v | type tracker without call steps | params_flow.rb:83:20:83:20 | v | | params_flow.rb:83:20:83:20 | v | type tracker without call steps | params_flow.rb:83:20:83:20 | v | | params_flow.rb:83:20:83:20 | v | type tracker without call steps with content element 0 | params_flow.rb:86:5:86:10 | * | | params_flow.rb:83:23:83:23 | w | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:23:83:23 | w | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:23:83:23 | w | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:23:83:23 | w | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:23:83:23 | w | type tracker without call steps | params_flow.rb:83:23:83:23 | w | | params_flow.rb:83:23:83:23 | w | type tracker without call steps | params_flow.rb:83:23:83:23 | w | | params_flow.rb:83:23:83:23 | w | type tracker without call steps with content element 0 | params_flow.rb:87:5:87:10 | * | | params_flow.rb:83:26:83:26 | x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:26:83:26 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:26:83:26 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:26:83:26 | x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:26:83:26 | x | type tracker without call steps | params_flow.rb:83:26:83:26 | x | | params_flow.rb:83:26:83:26 | x | type tracker without call steps | params_flow.rb:83:26:83:26 | x | | params_flow.rb:83:26:83:26 | x | type tracker without call steps with content element 0 | params_flow.rb:88:5:88:10 | * | | params_flow.rb:83:29:83:29 | y | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:29:83:29 | y | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:29:83:29 | y | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:29:83:29 | y | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:29:83:29 | y | type tracker without call steps | params_flow.rb:83:29:83:29 | y | | params_flow.rb:83:29:83:29 | y | type tracker without call steps | params_flow.rb:83:29:83:29 | y | | params_flow.rb:83:29:83:29 | y | type tracker without call steps with content element 0 | params_flow.rb:89:5:89:10 | * | | params_flow.rb:83:32:83:32 | z | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:32:83:32 | z | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:32:83:32 | z | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:83:32:83:32 | z | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:83:32:83:32 | z | type tracker without call steps | params_flow.rb:83:32:83:32 | z | | params_flow.rb:83:32:83:32 | z | type tracker without call steps | params_flow.rb:83:32:83:32 | z | | params_flow.rb:83:32:83:32 | z | type tracker without call steps with content element 0 | params_flow.rb:90:5:90:10 | * | | params_flow.rb:84:5:84:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:84:5:84:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:84:5:84:10 | * | type tracker without call steps | params_flow.rb:84:5:84:10 | * | | params_flow.rb:84:5:84:10 | call to sink | type tracker without call steps | params_flow.rb:84:5:84:10 | call to sink | | params_flow.rb:85:5:85:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:85:5:85:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:85:5:85:10 | * | type tracker without call steps | params_flow.rb:85:5:85:10 | * | | params_flow.rb:85:5:85:10 | call to sink | type tracker without call steps | params_flow.rb:85:5:85:10 | call to sink | | params_flow.rb:86:5:86:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:86:5:86:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:86:5:86:10 | * | type tracker without call steps | params_flow.rb:86:5:86:10 | * | | params_flow.rb:86:5:86:10 | call to sink | type tracker without call steps | params_flow.rb:86:5:86:10 | call to sink | | params_flow.rb:87:5:87:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:87:5:87:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:87:5:87:10 | * | type tracker without call steps | params_flow.rb:87:5:87:10 | * | | params_flow.rb:87:5:87:10 | call to sink | type tracker without call steps | params_flow.rb:87:5:87:10 | call to sink | | params_flow.rb:88:5:88:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:88:5:88:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:88:5:88:10 | * | type tracker without call steps | params_flow.rb:88:5:88:10 | * | | params_flow.rb:88:5:88:10 | call to sink | type tracker without call steps | params_flow.rb:88:5:88:10 | call to sink | | params_flow.rb:89:5:89:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:89:5:89:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:89:5:89:10 | * | type tracker without call steps | params_flow.rb:89:5:89:10 | * | | params_flow.rb:89:5:89:10 | call to sink | type tracker without call steps | params_flow.rb:89:5:89:10 | call to sink | | params_flow.rb:90:5:90:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:90:5:90:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:90:5:90:10 | * | type tracker without call steps | params_flow.rb:90:5:90:10 | * | | params_flow.rb:90:5:90:10 | call to sink | type tracker without call steps | params_flow.rb:90:5:90:10 | call to sink | | params_flow.rb:90:5:90:10 | call to sink | type tracker without call steps | params_flow.rb:94:1:94:48 | call to pos_many | @@ -2062,7 +1835,6 @@ track | params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:9:93:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:9:93:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:9:93:17 | * | type tracker without call steps | params_flow.rb:93:9:93:17 | * | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | @@ -2071,7 +1843,6 @@ track | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:93:15:93:16 | 40 | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | @@ -2080,7 +1851,6 @@ track | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:20:93:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:20:93:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:20:93:28 | * | type tracker without call steps | params_flow.rb:93:20:93:28 | * | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | @@ -2089,7 +1859,6 @@ track | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:93:26:93:27 | 41 | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | @@ -2098,7 +1867,6 @@ track | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:31:93:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:31:93:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:31:93:39 | * | type tracker without call steps | params_flow.rb:93:31:93:39 | * | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[4] | @@ -2107,7 +1875,6 @@ track | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:93:37:93:38 | 42 | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[4] | @@ -2116,7 +1883,6 @@ track | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:42:93:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:42:93:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:42:93:50 | * | type tracker without call steps | params_flow.rb:93:42:93:50 | * | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[5] | @@ -2125,7 +1891,6 @@ track | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:93:48:93:49 | 43 | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[5] | @@ -2134,7 +1899,6 @@ track | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:94:1:94:48 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:1:94:48 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:1:94:48 | * | type tracker without call steps | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:1:94:48 | *[2] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:94:1:94:48 | *[3] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | @@ -2148,15 +1912,12 @@ track | params_flow.rb:94:1:94:48 | *[-1] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[-1] | | params_flow.rb:94:1:94:48 | call to pos_many | type tracker without call steps | params_flow.rb:94:1:94:48 | call to pos_many | | params_flow.rb:94:10:94:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:10:94:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:10:94:18 | * | type tracker without call steps | params_flow.rb:94:10:94:18 | * | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | | params_flow.rb:94:10:94:18 | call to taint | type tracker without call steps | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:94:10:94:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:94:1:94:48 | * | @@ -2164,76 +1925,60 @@ track | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | | params_flow.rb:94:16:94:17 | 38 | type tracker without call steps | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:94:16:94:17 | 38 | type tracker without call steps | params_flow.rb:94:16:94:17 | 38 | | params_flow.rb:94:16:94:17 | 38 | type tracker without call steps with content element 0 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:16:94:17 | 38 | type tracker without call steps with content element 0 | params_flow.rb:94:10:94:18 | * | | params_flow.rb:94:21:94:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:21:94:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:21:94:29 | * | type tracker without call steps | params_flow.rb:94:21:94:29 | * | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps | params_flow.rb:83:17:83:17 | u | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:21:94:29 | call to taint | type tracker without call steps | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:94:21:94:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps | params_flow.rb:83:17:83:17 | u | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps | params_flow.rb:94:27:94:28 | 39 | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps with content element 0 | params_flow.rb:94:21:94:29 | * | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps with content element 1 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:32:94:36 | * ... | type tracker without call steps | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:94:39:94:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:39:94:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:39:94:47 | * | type tracker without call steps | params_flow.rb:94:39:94:47 | * | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps | params_flow.rb:83:23:83:23 | w | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:39:94:47 | call to taint | type tracker without call steps | params_flow.rb:94:39:94:47 | call to taint | | params_flow.rb:94:39:94:47 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps | params_flow.rb:83:23:83:23 | w | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:45:94:46 | 44 | type tracker without call steps | params_flow.rb:94:39:94:47 | call to taint | | params_flow.rb:94:45:94:46 | 44 | type tracker without call steps | params_flow.rb:94:45:94:46 | 44 | | params_flow.rb:94:45:94:46 | 44 | type tracker without call steps with content element 0 | params_flow.rb:94:39:94:47 | * | | params_flow.rb:94:45:94:46 | 44 | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:96:1:96:88 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:1:96:88 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:1:96:88 | * | type tracker without call steps | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:1:96:88 | *[2] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:1:96:88 | *[3] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | @@ -2247,15 +1992,12 @@ track | params_flow.rb:96:1:96:88 | *[-1] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[-1] | | params_flow.rb:96:1:96:88 | call to splatmid | type tracker without call steps | params_flow.rb:96:1:96:88 | call to splatmid | | params_flow.rb:96:10:96:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:10:96:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:10:96:18 | * | type tracker without call steps | params_flow.rb:96:10:96:18 | * | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:96:10:96:18 | call to taint | type tracker without call steps | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:96:10:96:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:96:1:96:88 | * | @@ -2263,41 +2005,32 @@ track | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | | params_flow.rb:96:16:96:17 | 45 | type tracker without call steps | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:96:16:96:17 | 45 | type tracker without call steps | params_flow.rb:96:16:96:17 | 45 | | params_flow.rb:96:16:96:17 | 45 | type tracker without call steps with content element 0 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:16:96:17 | 45 | type tracker without call steps with content element 0 | params_flow.rb:96:10:96:18 | * | | params_flow.rb:96:21:96:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:21:96:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:21:96:29 | * | type tracker without call steps | params_flow.rb:96:21:96:29 | * | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps | params_flow.rb:69:17:69:17 | y | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:21:96:29 | call to taint | type tracker without call steps | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:96:21:96:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps | params_flow.rb:69:17:69:17 | y | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps | params_flow.rb:96:27:96:28 | 46 | | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps with content element 0 | params_flow.rb:96:21:96:29 | * | @@ -2309,7 +2042,6 @@ track | params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:34:96:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:34:96:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:34:96:42 | * | type tracker without call steps | params_flow.rb:96:34:96:42 | * | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | @@ -2318,7 +2050,6 @@ track | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:40:96:41 | 47 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:40:96:41 | 47 | @@ -2327,7 +2058,6 @@ track | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:45:96:53 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:45:96:53 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:45:96:53 | * | type tracker without call steps | params_flow.rb:96:45:96:53 | * | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps | params_flow.rb:96:45:96:53 | call to taint | @@ -2336,7 +2066,6 @@ track | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:51:96:52 | 48 | @@ -2345,7 +2074,6 @@ track | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:56:96:64 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:56:96:64 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:56:96:64 | * | type tracker without call steps | params_flow.rb:96:56:96:64 | * | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | @@ -2354,7 +2082,6 @@ track | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:62:96:63 | 49 | @@ -2363,57 +2090,45 @@ track | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:68:96:76 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:68:96:76 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:68:96:76 | * | type tracker without call steps | params_flow.rb:96:68:96:76 | * | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:68:96:76 | call to taint | type tracker without call steps | params_flow.rb:96:68:96:76 | call to taint | | params_flow.rb:96:68:96:76 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:74:96:75 | 50 | type tracker without call steps | params_flow.rb:96:68:96:76 | call to taint | | params_flow.rb:96:74:96:75 | 50 | type tracker without call steps | params_flow.rb:96:74:96:75 | 50 | | params_flow.rb:96:74:96:75 | 50 | type tracker without call steps with content element 0 | params_flow.rb:96:68:96:76 | * | | params_flow.rb:96:74:96:75 | 50 | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:79:96:87 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:79:96:87 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:79:96:87 | * | type tracker without call steps | params_flow.rb:96:79:96:87 | * | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:79:96:87 | call to taint | type tracker without call steps | params_flow.rb:96:79:96:87 | call to taint | | params_flow.rb:96:79:96:87 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:85:96:86 | 51 | type tracker without call steps | params_flow.rb:96:79:96:87 | call to taint | | params_flow.rb:96:85:96:86 | 51 | type tracker without call steps | params_flow.rb:96:85:96:86 | 51 | | params_flow.rb:96:85:96:86 | 51 | type tracker without call steps with content element 0 | params_flow.rb:96:79:96:87 | * | @@ -2423,10 +2138,8 @@ track | params_flow.rb:98:1:103:3 | self in splatmidsmall | type tracker without call steps | params_flow.rb:98:1:103:3 | self in splatmidsmall | | params_flow.rb:98:1:103:3 | splatmidsmall | type tracker without call steps | params_flow.rb:98:1:103:3 | splatmidsmall | | params_flow.rb:98:1:103:3 | synthetic *args | type tracker without call steps | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:98:1:103:3 | synthetic *args | type tracker without call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:98:19:98:19 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:19:98:19 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:98:19:98:19 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:98:19:98:19 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:98:19:98:19 | a | type tracker without call steps | params_flow.rb:98:19:98:19 | a | | params_flow.rb:98:19:98:19 | a | type tracker without call steps | params_flow.rb:98:19:98:19 | a | @@ -2435,49 +2148,41 @@ track | params_flow.rb:98:23:98:28 | splats | type tracker without call steps | params_flow.rb:98:23:98:28 | splats | | params_flow.rb:98:31:98:31 | b | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:31:98:31 | b | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:98:31:98:31 | b | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:98:31:98:31 | b | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:98:31:98:31 | b | type tracker without call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:98:31:98:31 | b | type tracker without call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:98:31:98:31 | b | type tracker without call steps with content element 0 | params_flow.rb:102:5:102:10 | * | | params_flow.rb:99:5:99:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:99:5:99:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:99:5:99:10 | * | type tracker without call steps | params_flow.rb:99:5:99:10 | * | | params_flow.rb:99:5:99:10 | call to sink | type tracker without call steps | params_flow.rb:99:5:99:10 | call to sink | | params_flow.rb:100:5:100:18 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:100:5:100:18 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:100:5:100:18 | * | type tracker without call steps | params_flow.rb:100:5:100:18 | * | | params_flow.rb:100:5:100:18 | call to sink | type tracker without call steps | params_flow.rb:100:5:100:18 | call to sink | | params_flow.rb:100:10:100:18 | * | type tracker without call steps | params_flow.rb:100:10:100:18 | * | | params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:100:10:100:18 | ...[...] | type tracker without call steps | params_flow.rb:100:10:100:18 | ...[...] | | params_flow.rb:100:10:100:18 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:100:5:100:18 | * | | params_flow.rb:100:17:100:17 | 0 | type tracker without call steps | params_flow.rb:100:17:100:17 | 0 | | params_flow.rb:100:17:100:17 | 0 | type tracker without call steps with content element 0 | params_flow.rb:100:10:100:18 | * | | params_flow.rb:101:5:101:18 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:101:5:101:18 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:101:5:101:18 | * | type tracker without call steps | params_flow.rb:101:5:101:18 | * | | params_flow.rb:101:5:101:18 | call to sink | type tracker without call steps | params_flow.rb:101:5:101:18 | call to sink | | params_flow.rb:101:10:101:18 | * | type tracker without call steps | params_flow.rb:101:10:101:18 | * | | params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:101:10:101:18 | ...[...] | type tracker without call steps | params_flow.rb:101:10:101:18 | ...[...] | | params_flow.rb:101:10:101:18 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:101:5:101:18 | * | | params_flow.rb:101:17:101:17 | 1 | type tracker without call steps | params_flow.rb:101:17:101:17 | 1 | | params_flow.rb:101:17:101:17 | 1 | type tracker without call steps with content element 0 | params_flow.rb:101:10:101:18 | * | | params_flow.rb:102:5:102:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:102:5:102:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:102:5:102:10 | * | type tracker without call steps | params_flow.rb:102:5:102:10 | * | | params_flow.rb:102:5:102:10 | call to sink | type tracker without call steps | params_flow.rb:102:5:102:10 | call to sink | | params_flow.rb:102:5:102:10 | call to sink | type tracker without call steps | params_flow.rb:105:1:105:49 | call to splatmidsmall | | params_flow.rb:102:5:102:10 | call to sink | type tracker without call steps | params_flow.rb:106:1:106:46 | call to splatmidsmall | | params_flow.rb:105:1:105:49 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:105:1:105:49 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:1:105:49 | * | type tracker without call steps | params_flow.rb:105:1:105:49 | * | | params_flow.rb:105:1:105:49 | *[1] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:1:105:49 | *[2] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | @@ -2492,15 +2197,12 @@ track | params_flow.rb:105:1:105:49 | *[-1] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[-1] | | params_flow.rb:105:1:105:49 | call to splatmidsmall | type tracker without call steps | params_flow.rb:105:1:105:49 | call to splatmidsmall | | params_flow.rb:105:15:105:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:15:105:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:15:105:23 | * | type tracker without call steps | params_flow.rb:105:15:105:23 | * | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps | params_flow.rb:98:19:98:19 | a | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:105:15:105:23 | call to taint | type tracker without call steps | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:105:15:105:23 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:105:1:105:49 | * | @@ -2508,12 +2210,9 @@ track | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps | params_flow.rb:98:19:98:19 | a | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:105:21:105:22 | 52 | type tracker without call steps | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:105:21:105:22 | 52 | type tracker without call steps | params_flow.rb:105:21:105:22 | 52 | @@ -2526,7 +2225,6 @@ track | params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:28:105:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:28:105:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:28:105:36 | * | type tracker without call steps | params_flow.rb:105:28:105:36 | * | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | @@ -2535,7 +2233,6 @@ track | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:34:105:35 | 53 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:34:105:35 | 53 | @@ -2544,7 +2241,6 @@ track | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:39:105:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:39:105:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:39:105:47 | * | type tracker without call steps | params_flow.rb:105:39:105:47 | * | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | @@ -2553,7 +2249,6 @@ track | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:45:105:46 | 54 | @@ -2562,19 +2257,15 @@ track | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:106:1:106:46 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:1:106:46 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:1:106:46 | * | type tracker without call steps | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:1:106:46 | call to splatmidsmall | type tracker without call steps | params_flow.rb:106:1:106:46 | call to splatmidsmall | | params_flow.rb:106:15:106:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:15:106:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:15:106:23 | * | type tracker without call steps | params_flow.rb:106:15:106:23 | * | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps | params_flow.rb:98:19:98:19 | a | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:106:15:106:23 | call to taint | type tracker without call steps | params_flow.rb:106:15:106:23 | call to taint | | params_flow.rb:106:15:106:23 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:106:1:106:46 | * | @@ -2582,57 +2273,44 @@ track | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps | params_flow.rb:98:19:98:19 | a | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:106:21:106:22 | 55 | type tracker without call steps | params_flow.rb:106:15:106:23 | call to taint | | params_flow.rb:106:21:106:22 | 55 | type tracker without call steps | params_flow.rb:106:21:106:22 | 55 | | params_flow.rb:106:21:106:22 | 55 | type tracker without call steps with content element 0 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:21:106:22 | 55 | type tracker without call steps with content element 0 | params_flow.rb:106:15:106:23 | * | | params_flow.rb:106:26:106:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:26:106:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:26:106:34 | * | type tracker without call steps | params_flow.rb:106:26:106:34 | * | | params_flow.rb:106:26:106:34 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:26:106:34 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:26:106:34 | call to taint | type tracker without call steps | params_flow.rb:106:26:106:34 | call to taint | | params_flow.rb:106:26:106:34 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:32:106:33 | 56 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:32:106:33 | 56 | type tracker without call steps | params_flow.rb:106:26:106:34 | call to taint | | params_flow.rb:106:32:106:33 | 56 | type tracker without call steps | params_flow.rb:106:32:106:33 | 56 | | params_flow.rb:106:32:106:33 | 56 | type tracker without call steps with content element 0 | params_flow.rb:106:26:106:34 | * | | params_flow.rb:106:32:106:33 | 56 | type tracker without call steps with content element 1 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:37:106:45 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:37:106:45 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:37:106:45 | * | type tracker without call steps | params_flow.rb:106:37:106:45 | * | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:37:106:45 | call to taint | type tracker without call steps | params_flow.rb:106:37:106:45 | call to taint | | params_flow.rb:106:37:106:45 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:43:106:44 | 57 | type tracker without call steps | params_flow.rb:106:37:106:45 | call to taint | | params_flow.rb:106:43:106:44 | 57 | type tracker without call steps | params_flow.rb:106:43:106:44 | 57 | | params_flow.rb:106:43:106:44 | 57 | type tracker without call steps with content element 0 | params_flow.rb:106:37:106:45 | * | @@ -2643,10 +2321,8 @@ track | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | type tracker without call steps | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | type tracker without call steps | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | | params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:108:37:108:37 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:37:108:37 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:108:37:108:37 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:108:37:108:37 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:108:37:108:37 | a | type tracker without call steps | params_flow.rb:108:37:108:37 | a | | params_flow.rb:108:37:108:37 | a | type tracker without call steps | params_flow.rb:108:37:108:37 | a | @@ -2655,50 +2331,41 @@ track | params_flow.rb:108:41:108:41 | b | type tracker without call steps | params_flow.rb:108:41:108:41 | b | | params_flow.rb:108:44:108:44 | c | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:44:108:44 | c | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:108:44:108:44 | c | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:108:44:108:44 | c | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:108:44:108:44 | c | type tracker without call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:108:44:108:44 | c | type tracker without call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:108:44:108:44 | c | type tracker without call steps with content element 0 | params_flow.rb:111:5:111:10 | * | | params_flow.rb:109:5:109:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:109:5:109:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:109:5:109:10 | * | type tracker without call steps | params_flow.rb:109:5:109:10 | * | | params_flow.rb:109:5:109:10 | call to sink | type tracker without call steps | params_flow.rb:109:5:109:10 | call to sink | | params_flow.rb:110:5:110:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:110:5:110:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:110:5:110:13 | * | type tracker without call steps | params_flow.rb:110:5:110:13 | * | | params_flow.rb:110:5:110:13 | call to sink | type tracker without call steps | params_flow.rb:110:5:110:13 | call to sink | | params_flow.rb:110:10:110:13 | * | type tracker without call steps | params_flow.rb:110:10:110:13 | * | | params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:110:10:110:13 | ...[...] | type tracker without call steps | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:110:10:110:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:110:5:110:13 | * | | params_flow.rb:110:12:110:12 | 0 | type tracker without call steps | params_flow.rb:110:12:110:12 | 0 | | params_flow.rb:110:12:110:12 | 0 | type tracker without call steps with content element 0 | params_flow.rb:110:10:110:13 | * | | params_flow.rb:111:5:111:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:111:5:111:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:111:5:111:10 | * | type tracker without call steps | params_flow.rb:111:5:111:10 | * | | params_flow.rb:111:5:111:10 | call to sink | type tracker without call steps | params_flow.rb:111:5:111:10 | call to sink | | params_flow.rb:111:5:111:10 | call to sink | type tracker without call steps | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | | params_flow.rb:114:1:114:67 | * | type tracker with call steps | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:1:114:67 | * | type tracker with call steps | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:114:1:114:67 | * | type tracker without call steps | params_flow.rb:114:1:114:67 | * | | params_flow.rb:114:1:114:67 | ** | type tracker with call steps | params_flow.rb:108:1:112:3 | **kwargs | | params_flow.rb:114:1:114:67 | ** | type tracker without call steps | params_flow.rb:114:1:114:67 | ** | | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | type tracker without call steps | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | | params_flow.rb:114:33:114:41 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:33:114:41 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:33:114:41 | * | type tracker without call steps | params_flow.rb:114:33:114:41 | * | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps | params_flow.rb:108:37:108:37 | a | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:109:5:109:10 | * | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | @@ -2709,12 +2376,9 @@ track | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps | params_flow.rb:108:37:108:37 | a | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:109:5:109:10 | * | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | @@ -2723,17 +2387,13 @@ track | params_flow.rb:114:39:114:40 | 58 | type tracker without call steps with content element 0 | params_flow.rb:114:1:114:67 | * | | params_flow.rb:114:39:114:40 | 58 | type tracker without call steps with content element 0 | params_flow.rb:114:33:114:41 | * | | params_flow.rb:114:44:114:52 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:44:114:52 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:44:114:52 | * | type tracker without call steps | params_flow.rb:114:44:114:52 | * | | params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:114:44:114:52 | call to taint | type tracker without call steps | params_flow.rb:114:44:114:52 | call to taint | | params_flow.rb:114:44:114:52 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:114:1:114:67 | * | | params_flow.rb:114:50:114:51 | 59 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 1 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:114:50:114:51 | 59 | type tracker without call steps | params_flow.rb:114:44:114:52 | call to taint | @@ -2743,12 +2403,10 @@ track | params_flow.rb:114:55:114:55 | :c | type tracker without call steps | params_flow.rb:114:55:114:55 | :c | | params_flow.rb:114:55:114:66 | Pair | type tracker without call steps | params_flow.rb:114:55:114:66 | Pair | | params_flow.rb:114:58:114:66 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:58:114:66 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:58:114:66 | * | type tracker without call steps | params_flow.rb:114:58:114:66 | * | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:111:5:111:10 | * | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element :c | params_flow.rb:108:1:112:3 | **kwargs | @@ -2758,8 +2416,6 @@ track | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:111:5:111:10 | * | @@ -2770,143 +2426,137 @@ track | params_flow.rb:114:64:114:65 | 60 | type tracker without call steps with content element :c | params_flow.rb:114:1:114:67 | ** | | params_flow.rb:116:1:116:1 | x | type tracker without call steps | params_flow.rb:116:1:116:1 | x | | params_flow.rb:116:5:116:6 | Array | type tracker without call steps | params_flow.rb:116:5:116:6 | Array | +| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:116:5:116:6 | call to [] | type tracker without call steps | params_flow.rb:116:5:116:6 | call to [] | -| params_flow.rb:116:5:116:6 | call to [] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[0] | | params_flow.rb:116:5:116:6 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:118:12:118:13 | * ... | +| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:117:1:117:1 | [post] x | type tracker without call steps | params_flow.rb:117:1:117:1 | [post] x | -| params_flow.rb:117:1:117:1 | [post] x | type tracker without call steps | params_flow.rb:118:1:118:14 | *[0] | | params_flow.rb:117:1:117:1 | [post] x | type tracker without call steps with content element 0 or unknown | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:117:1:117:15 | * | type tracker without call steps | params_flow.rb:117:1:117:15 | * | | params_flow.rb:117:1:117:15 | call to []= | type tracker without call steps | params_flow.rb:117:1:117:15 | call to []= | | params_flow.rb:117:3:117:14 | call to some_index | type tracker without call steps | params_flow.rb:117:3:117:14 | call to some_index | | params_flow.rb:117:3:117:14 | call to some_index | type tracker without call steps with content element 0 | params_flow.rb:117:1:117:15 | * | | params_flow.rb:117:19:117:27 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:117:19:117:27 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:117:19:117:27 | * | type tracker without call steps | params_flow.rb:117:19:117:27 | * | | params_flow.rb:117:19:117:27 | __synth__0 | type tracker without call steps | params_flow.rb:117:19:117:27 | __synth__0 | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps | params_flow.rb:117:19:117:27 | call to taint | -| params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content attribute [] | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content element | params_flow.rb:116:5:116:6 | call to [] | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content element | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:117:1:117:15 | * | | params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps | params_flow.rb:117:19:117:27 | call to taint | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps | params_flow.rb:117:25:117:26 | 61 | -| params_flow.rb:117:25:117:26 | 61 | type tracker without call steps | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content attribute [] | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element | params_flow.rb:116:5:116:6 | call to [] | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element 0 | params_flow.rb:117:19:117:27 | * | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element 1 | params_flow.rb:117:1:117:15 | * | -| params_flow.rb:118:1:118:14 | *[0] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[0] | -| params_flow.rb:118:1:118:14 | *[1] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[1] | -| params_flow.rb:118:1:118:14 | *[2] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[2] | -| params_flow.rb:118:1:118:14 | *[3] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[3] | -| params_flow.rb:118:1:118:14 | *[4] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[4] | -| params_flow.rb:118:1:118:14 | *[5] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[5] | -| params_flow.rb:118:1:118:14 | *[6] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[6] | -| params_flow.rb:118:1:118:14 | *[7] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[7] | -| params_flow.rb:118:1:118:14 | *[8] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[8] | -| params_flow.rb:118:1:118:14 | *[9] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[9] | -| params_flow.rb:118:1:118:14 | *[10] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[10] | -| params_flow.rb:118:1:118:14 | *[-1] | type tracker without call steps | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:118:1:118:14 | call to positional | type tracker without call steps | params_flow.rb:118:1:118:14 | call to positional | +| params_flow.rb:118:12:118:13 | * ... | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:118:12:118:13 | * ... | type tracker without call steps | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:120:1:126:3 | &block | type tracker without call steps | params_flow.rb:120:1:126:3 | &block | | params_flow.rb:120:1:126:3 | destruct | type tracker without call steps | params_flow.rb:120:1:126:3 | destruct | | params_flow.rb:120:1:126:3 | self in destruct | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:120:1:126:3 | self in destruct | type tracker without call steps | params_flow.rb:120:1:126:3 | self in destruct | -| params_flow.rb:120:1:126:3 | synthetic *args | type tracker without call steps | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:120:15:120:15 | a | type tracker without call steps | params_flow.rb:120:15:120:15 | a | | params_flow.rb:120:17:120:17 | b | type tracker without call steps | params_flow.rb:120:17:120:17 | b | | params_flow.rb:120:22:120:22 | c | type tracker without call steps | params_flow.rb:120:22:120:22 | c | | params_flow.rb:120:25:120:25 | d | type tracker without call steps | params_flow.rb:120:25:120:25 | d | | params_flow.rb:120:27:120:27 | e | type tracker without call steps | params_flow.rb:120:27:120:27 | e | | params_flow.rb:121:5:121:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:121:5:121:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:121:5:121:10 | * | type tracker without call steps | params_flow.rb:121:5:121:10 | * | | params_flow.rb:121:5:121:10 | call to sink | type tracker without call steps | params_flow.rb:121:5:121:10 | call to sink | | params_flow.rb:121:10:121:10 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:121:10:121:10 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:121:10:121:10 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:121:10:121:10 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:121:10:121:10 | a | type tracker without call steps | params_flow.rb:121:10:121:10 | a | | params_flow.rb:121:10:121:10 | a | type tracker without call steps with content element 0 | params_flow.rb:121:5:121:10 | * | | params_flow.rb:122:5:122:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:122:5:122:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:122:5:122:10 | * | type tracker without call steps | params_flow.rb:122:5:122:10 | * | | params_flow.rb:122:5:122:10 | call to sink | type tracker without call steps | params_flow.rb:122:5:122:10 | call to sink | | params_flow.rb:122:10:122:10 | b | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:122:10:122:10 | b | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:122:10:122:10 | b | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:122:10:122:10 | b | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:122:10:122:10 | b | type tracker without call steps | params_flow.rb:122:10:122:10 | b | | params_flow.rb:122:10:122:10 | b | type tracker without call steps with content element 0 | params_flow.rb:122:5:122:10 | * | | params_flow.rb:123:5:123:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:123:5:123:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:123:5:123:10 | * | type tracker without call steps | params_flow.rb:123:5:123:10 | * | | params_flow.rb:123:5:123:10 | call to sink | type tracker without call steps | params_flow.rb:123:5:123:10 | call to sink | | params_flow.rb:123:10:123:10 | c | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:123:10:123:10 | c | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:123:10:123:10 | c | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:123:10:123:10 | c | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:123:10:123:10 | c | type tracker without call steps | params_flow.rb:123:10:123:10 | c | | params_flow.rb:123:10:123:10 | c | type tracker without call steps with content element 0 | params_flow.rb:123:5:123:10 | * | | params_flow.rb:124:5:124:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:124:5:124:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:124:5:124:10 | * | type tracker without call steps | params_flow.rb:124:5:124:10 | * | | params_flow.rb:124:5:124:10 | call to sink | type tracker without call steps | params_flow.rb:124:5:124:10 | call to sink | | params_flow.rb:124:10:124:10 | d | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:124:10:124:10 | d | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:124:10:124:10 | d | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:124:10:124:10 | d | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:124:10:124:10 | d | type tracker without call steps | params_flow.rb:124:10:124:10 | d | | params_flow.rb:124:10:124:10 | d | type tracker without call steps with content element 0 | params_flow.rb:124:5:124:10 | * | | params_flow.rb:125:5:125:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:125:5:125:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:125:5:125:10 | * | type tracker without call steps | params_flow.rb:125:5:125:10 | * | | params_flow.rb:125:5:125:10 | call to sink | type tracker without call steps | params_flow.rb:125:5:125:10 | call to sink | | params_flow.rb:125:5:125:10 | call to sink | type tracker without call steps | params_flow.rb:128:1:128:61 | call to destruct | | params_flow.rb:125:10:125:10 | e | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:125:10:125:10 | e | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:125:10:125:10 | e | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:125:10:125:10 | e | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:125:10:125:10 | e | type tracker without call steps | params_flow.rb:125:10:125:10 | e | | params_flow.rb:125:10:125:10 | e | type tracker without call steps with content element 0 | params_flow.rb:125:5:125:10 | * | -| params_flow.rb:128:1:128:61 | * | type tracker with call steps | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:128:1:128:61 | * | type tracker without call steps | params_flow.rb:128:1:128:61 | * | | params_flow.rb:128:1:128:61 | call to destruct | type tracker without call steps | params_flow.rb:128:1:128:61 | call to destruct | | params_flow.rb:128:10:128:31 | * | type tracker without call steps | params_flow.rb:128:10:128:31 | * | | params_flow.rb:128:10:128:31 | Array | type tracker without call steps | params_flow.rb:128:10:128:31 | Array | -| params_flow.rb:128:10:128:31 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:128:10:128:31 | call to [] | type tracker without call steps | params_flow.rb:128:10:128:31 | call to [] | | params_flow.rb:128:10:128:31 | call to [] | type tracker without call steps with content element 0 | params_flow.rb:128:1:128:61 | * | | params_flow.rb:128:11:128:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:11:128:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:11:128:19 | * | type tracker without call steps | params_flow.rb:128:11:128:19 | * | | params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | * | | params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:10:128:31 | call to [] | | params_flow.rb:128:17:128:18 | 62 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:17:128:18 | 62 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:17:128:18 | 62 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps | params_flow.rb:128:17:128:18 | 62 | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | * | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 | params_flow.rb:128:11:128:19 | * | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:10:128:31 | call to [] | | params_flow.rb:128:22:128:30 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:22:128:30 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:22:128:30 | * | type tracker without call steps | params_flow.rb:128:22:128:30 | * | | params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | * | | params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:10:128:31 | call to [] | | params_flow.rb:128:28:128:29 | 63 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:28:128:29 | 63 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:28:128:29 | 63 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:28:128:29 | 63 | type tracker without call steps | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:128:28:128:29 | 63 | type tracker without call steps | params_flow.rb:128:28:128:29 | 63 | | params_flow.rb:128:28:128:29 | 63 | type tracker without call steps with content element 0 | params_flow.rb:128:22:128:30 | * | @@ -2914,18 +2564,15 @@ track | params_flow.rb:128:28:128:29 | 63 | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:10:128:31 | call to [] | | params_flow.rb:128:34:128:60 | * | type tracker without call steps | params_flow.rb:128:34:128:60 | * | | params_flow.rb:128:34:128:60 | Array | type tracker without call steps | params_flow.rb:128:34:128:60 | Array | -| params_flow.rb:128:34:128:60 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:128:34:128:60 | call to [] | type tracker without call steps | params_flow.rb:128:34:128:60 | call to [] | | params_flow.rb:128:34:128:60 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:128:1:128:61 | * | | params_flow.rb:128:35:128:43 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:35:128:43 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:35:128:43 | * | type tracker without call steps | params_flow.rb:128:35:128:43 | * | | params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | * | | params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:34:128:60 | call to [] | | params_flow.rb:128:41:128:42 | 64 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:41:128:42 | 64 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:41:128:42 | 64 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:41:128:42 | 64 | type tracker without call steps | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:128:41:128:42 | 64 | type tracker without call steps | params_flow.rb:128:41:128:42 | 64 | | params_flow.rb:128:41:128:42 | 64 | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | * | @@ -2940,14 +2587,12 @@ track | params_flow.rb:128:47:128:47 | 0 | type tracker without call steps with content element 0 | params_flow.rb:128:46:128:59 | * | | params_flow.rb:128:47:128:47 | 0 | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:46:128:59 | call to [] | | params_flow.rb:128:50:128:58 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:50:128:58 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:50:128:58 | * | type tracker without call steps | params_flow.rb:128:50:128:58 | * | | params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | * | | params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:46:128:59 | call to [] | | params_flow.rb:128:56:128:57 | 65 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:56:128:57 | 65 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:56:128:57 | 65 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:56:128:57 | 65 | type tracker without call steps | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:128:56:128:57 | 65 | type tracker without call steps | params_flow.rb:128:56:128:57 | 65 | | params_flow.rb:128:56:128:57 | 65 | type tracker without call steps with content element 0 | params_flow.rb:128:50:128:58 | * | @@ -2956,86 +2601,89 @@ track | params_flow.rb:130:1:130:4 | args | type tracker without call steps | params_flow.rb:130:1:130:4 | args | | params_flow.rb:130:8:130:29 | * | type tracker without call steps | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:8:130:29 | Array | type tracker without call steps | params_flow.rb:130:8:130:29 | Array | +| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | +| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:130:8:130:29 | call to [] | type tracker without call steps | params_flow.rb:130:8:130:29 | call to [] | -| params_flow.rb:130:8:130:29 | call to [] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[0] | | params_flow.rb:130:8:130:29 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | | params_flow.rb:130:9:130:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:9:130:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:9:130:17 | * | type tracker without call steps | params_flow.rb:130:9:130:17 | * | +| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | +| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps | params_flow.rb:130:9:130:17 | call to taint | -| params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps | params_flow.rb:131:1:131:46 | *[0] | | params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:130:8:130:29 | call to [] | | params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | | params_flow.rb:130:15:130:16 | 66 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps | params_flow.rb:130:9:130:17 | call to taint | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps | params_flow.rb:130:15:130:16 | 66 | -| params_flow.rb:130:15:130:16 | 66 | type tracker without call steps | params_flow.rb:131:1:131:46 | *[0] | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 | params_flow.rb:130:9:130:17 | * | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 or unknown | params_flow.rb:130:8:130:29 | call to [] | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | | params_flow.rb:130:20:130:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:20:130:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:20:130:28 | * | type tracker without call steps | params_flow.rb:130:20:130:28 | * | +| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps | params_flow.rb:130:20:130:28 | call to taint | -| params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:130:8:130:29 | call to [] | | params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:131:10:131:14 | * ... | | params_flow.rb:130:26:130:27 | 67 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps | params_flow.rb:83:17:83:17 | u | | params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps | params_flow.rb:130:20:130:28 | call to taint | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps | params_flow.rb:130:26:130:27 | 67 | -| params_flow.rb:130:26:130:27 | 67 | type tracker without call steps | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 0 | params_flow.rb:130:20:130:28 | * | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 or unknown | params_flow.rb:130:8:130:29 | call to [] | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 or unknown | params_flow.rb:131:10:131:14 | * ... | | params_flow.rb:131:1:131:46 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:131:1:131:46 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:1:131:46 | * | type tracker without call steps | params_flow.rb:131:1:131:46 | * | -| params_flow.rb:131:1:131:46 | *[0] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[0] | -| params_flow.rb:131:1:131:46 | *[1] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[1] | -| params_flow.rb:131:1:131:46 | *[2] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[2] | -| params_flow.rb:131:1:131:46 | *[3] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[3] | -| params_flow.rb:131:1:131:46 | *[4] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[4] | -| params_flow.rb:131:1:131:46 | *[5] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[5] | -| params_flow.rb:131:1:131:46 | *[6] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[6] | -| params_flow.rb:131:1:131:46 | *[7] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[7] | -| params_flow.rb:131:1:131:46 | *[8] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[8] | -| params_flow.rb:131:1:131:46 | *[9] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[9] | -| params_flow.rb:131:1:131:46 | *[10] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[10] | -| params_flow.rb:131:1:131:46 | *[-1] | type tracker without call steps | params_flow.rb:131:1:131:46 | *[-1] | | params_flow.rb:131:1:131:46 | call to pos_many | type tracker without call steps | params_flow.rb:131:1:131:46 | call to pos_many | +| params_flow.rb:131:10:131:14 | * ... | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:10:131:14 | * ... | type tracker without call steps | params_flow.rb:131:10:131:14 | * ... | | params_flow.rb:131:17:131:25 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:131:17:131:25 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:131:17:131:25 | * | type tracker without call steps | params_flow.rb:131:17:131:25 | * | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps | params_flow.rb:83:17:83:17 | u | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:17:131:25 | call to taint | type tracker without call steps | params_flow.rb:131:17:131:25 | call to taint | | params_flow.rb:131:17:131:25 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps | params_flow.rb:83:17:83:17 | u | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:23:131:24 | 68 | type tracker without call steps | params_flow.rb:131:17:131:25 | call to taint | | params_flow.rb:131:23:131:24 | 68 | type tracker without call steps | params_flow.rb:131:23:131:24 | 68 | | params_flow.rb:131:23:131:24 | 68 | type tracker without call steps with content element 0 | params_flow.rb:131:17:131:25 | * | @@ -3043,99 +2691,71 @@ track | params_flow.rb:131:28:131:30 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps | params_flow.rb:83:20:83:20 | v | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:28:131:30 | nil | type tracker without call steps | params_flow.rb:131:28:131:30 | nil | | params_flow.rb:131:28:131:30 | nil | type tracker without call steps with content element 2 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps | params_flow.rb:83:23:83:23 | w | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:33:131:35 | nil | type tracker without call steps | params_flow.rb:131:33:131:35 | nil | | params_flow.rb:131:33:131:35 | nil | type tracker without call steps with content element 3 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps | params_flow.rb:83:26:83:26 | x | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:38:131:40 | nil | type tracker without call steps | params_flow.rb:131:38:131:40 | nil | | params_flow.rb:131:38:131:40 | nil | type tracker without call steps with content element 4 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps | params_flow.rb:83:29:83:29 | y | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:43:131:45 | nil | type tracker without call steps | params_flow.rb:131:43:131:45 | nil | | params_flow.rb:131:43:131:45 | nil | type tracker without call steps with content element 5 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:133:1:135:3 | &block | type tracker without call steps | params_flow.rb:133:1:135:3 | &block | | params_flow.rb:133:1:135:3 | self in splatall | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:133:1:135:3 | self in splatall | type tracker without call steps | params_flow.rb:133:1:135:3 | self in splatall | | params_flow.rb:133:1:135:3 | splatall | type tracker without call steps | params_flow.rb:133:1:135:3 | splatall | -| params_flow.rb:133:1:135:3 | synthetic *args | type tracker without call steps | params_flow.rb:133:1:135:3 | synthetic *args | | params_flow.rb:133:14:133:18 | *args | type tracker without call steps | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:133:15:133:18 | args | type tracker without call steps | params_flow.rb:133:15:133:18 | args | | params_flow.rb:134:5:134:16 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:134:5:134:16 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:134:5:134:16 | * | type tracker without call steps | params_flow.rb:134:5:134:16 | * | | params_flow.rb:134:5:134:16 | call to sink | type tracker without call steps | params_flow.rb:134:5:134:16 | call to sink | | params_flow.rb:134:5:134:16 | call to sink | type tracker without call steps | params_flow.rb:137:1:137:44 | call to splatall | | params_flow.rb:134:10:134:16 | * | type tracker without call steps | params_flow.rb:134:10:134:16 | * | | params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:134:10:134:16 | ...[...] | type tracker without call steps | params_flow.rb:134:10:134:16 | ...[...] | | params_flow.rb:134:10:134:16 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:134:5:134:16 | * | | params_flow.rb:134:15:134:15 | 1 | type tracker without call steps | params_flow.rb:134:15:134:15 | 1 | | params_flow.rb:134:15:134:15 | 1 | type tracker without call steps with content element 0 | params_flow.rb:134:10:134:16 | * | -| params_flow.rb:137:1:137:44 | *[0] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[0] | -| params_flow.rb:137:1:137:44 | *[1] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[1] | -| params_flow.rb:137:1:137:44 | *[2] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[2] | -| params_flow.rb:137:1:137:44 | *[3] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[3] | -| params_flow.rb:137:1:137:44 | *[4] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[4] | -| params_flow.rb:137:1:137:44 | *[5] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[5] | -| params_flow.rb:137:1:137:44 | *[6] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[6] | -| params_flow.rb:137:1:137:44 | *[7] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[7] | -| params_flow.rb:137:1:137:44 | *[8] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[8] | -| params_flow.rb:137:1:137:44 | *[9] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[9] | -| params_flow.rb:137:1:137:44 | *[10] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[10] | -| params_flow.rb:137:1:137:44 | *[-1] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[-1] | | params_flow.rb:137:1:137:44 | call to splatall | type tracker without call steps | params_flow.rb:137:1:137:44 | call to splatall | | params_flow.rb:137:10:137:43 | * ... | type tracker with call steps | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:137:10:137:43 | * ... | type tracker without call steps | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:11:137:43 | * | type tracker without call steps | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:11:137:43 | Array | type tracker without call steps | params_flow.rb:137:11:137:43 | Array | | params_flow.rb:137:11:137:43 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:137:11:137:43 | call to [] | type tracker without call steps | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:11:137:43 | call to [] | type tracker without call steps | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:11:137:43 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:12:137:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:12:137:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:12:137:20 | * | type tracker without call steps | params_flow.rb:137:12:137:20 | * | | params_flow.rb:137:12:137:20 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:18:137:19 | 69 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:18:137:19 | 69 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:18:137:19 | 69 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:18:137:19 | 69 | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:137:18:137:19 | 69 | type tracker without call steps | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps | params_flow.rb:137:18:137:19 | 69 | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | * | @@ -3143,16 +2763,13 @@ track | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:23:137:31 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:23:137:31 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:23:137:31 | * | type tracker without call steps | params_flow.rb:137:23:137:31 | * | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps | params_flow.rb:134:10:134:16 | ...[...] | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:134:5:134:16 | * | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps | params_flow.rb:137:1:137:44 | *[1] | | params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:10:137:43 | * ... | @@ -3161,13 +2778,10 @@ track | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps | params_flow.rb:134:10:134:16 | ...[...] | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:134:5:134:16 | * | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:137:29:137:30 | 70 | type tracker without call steps | params_flow.rb:137:1:137:44 | *[1] | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps | params_flow.rb:137:29:137:30 | 70 | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 0 | params_flow.rb:137:23:137:31 | * | @@ -3175,19 +2789,15 @@ track | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:34:137:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:34:137:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:34:137:42 | * | type tracker without call steps | params_flow.rb:137:34:137:42 | * | | params_flow.rb:137:34:137:42 | call to taint | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps | params_flow.rb:137:34:137:42 | call to taint | | params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:40:137:41 | 71 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:40:137:41 | 71 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:40:137:41 | 71 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:40:137:41 | 71 | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:137:40:137:41 | 71 | type tracker without call steps | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps | params_flow.rb:137:34:137:42 | call to taint | | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps | params_flow.rb:137:40:137:41 | 71 | | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 0 | params_flow.rb:137:34:137:42 | * | @@ -3198,7 +2808,6 @@ trackEnd | params_flow.rb:1:1:3:3 | &block | params_flow.rb:1:1:3:3 | &block | | params_flow.rb:1:1:3:3 | self in taint | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:3:3 | synthetic *args | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:1:1:3:3 | synthetic *args | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:1:1:3:3 | taint | params_flow.rb:1:1:3:3 | taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:1:1:137:45 | self (params_flow.rb) | @@ -3415,8 +3024,6 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:46:20:46:28 | call to taint | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:47:1:47:17 | *[0] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:1:11:1:11 | x | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:1:11:1:11 | x | params_flow.rb:50:10:50:11 | p1 | @@ -3431,13 +3038,10 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:60:20:60:28 | call to taint | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:61:1:61:14 | *[0] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:63:1:63:4 | args | | params_flow.rb:1:11:1:11 | x | params_flow.rb:63:1:63:16 | ... = ... | | params_flow.rb:1:11:1:11 | x | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:65:10:65:13 | ...[...] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:67:13:67:16 | args | | params_flow.rb:1:11:1:11 | x | params_flow.rb:69:14:69:14 | x | | params_flow.rb:1:11:1:11 | x | params_flow.rb:69:14:69:14 | x | @@ -3525,20 +3129,14 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:117:19:117:27 | ... = ... | | params_flow.rb:1:11:1:11 | x | params_flow.rb:117:19:117:27 | __synth__0 | | params_flow.rb:1:11:1:11 | x | params_flow.rb:117:19:117:27 | call to taint | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:130:9:130:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:130:20:130:28 | call to taint | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:131:1:131:46 | *[0] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:131:17:131:25 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:137:1:137:44 | *[0] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:137:1:137:44 | *[1] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:137:34:137:42 | call to taint | @@ -3548,7 +3146,6 @@ trackEnd | params_flow.rb:5:1:7:3 | self in sink | params_flow.rb:6:5:6:10 | self | | params_flow.rb:5:1:7:3 | sink | params_flow.rb:5:1:7:3 | sink | | params_flow.rb:5:1:7:3 | synthetic *args | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:5:1:7:3 | synthetic *args | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | @@ -3629,7 +3226,6 @@ trackEnd | params_flow.rb:9:1:12:3 | self in positional | params_flow.rb:10:5:10:11 | self | | params_flow.rb:9:1:12:3 | self in positional | params_flow.rb:11:5:11:11 | self | | params_flow.rb:9:1:12:3 | synthetic *args | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:9:1:12:3 | synthetic *args | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:6:10:6:10 | x | @@ -3645,11 +3241,9 @@ trackEnd | params_flow.rb:9:20:9:21 | p2 | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:9:20:9:21 | p2 | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:10:5:10:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:10:5:10:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:10:5:10:11 | * | params_flow.rb:10:5:10:11 | * | | params_flow.rb:10:5:10:11 | call to sink | params_flow.rb:10:5:10:11 | call to sink | | params_flow.rb:11:5:11:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:11:5:11:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:11:5:11:11 | * | params_flow.rb:11:5:11:11 | * | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:11:5:11:11 | call to sink | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:14:1:14:30 | call to positional | @@ -3657,11 +3251,9 @@ trackEnd | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:47:1:47:17 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:118:1:118:14 | call to positional | | params_flow.rb:14:1:14:30 | * | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:14:1:14:30 | * | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:14:1:14:30 | * | params_flow.rb:14:1:14:30 | * | | params_flow.rb:14:1:14:30 | call to positional | params_flow.rb:14:1:14:30 | call to positional | | params_flow.rb:14:12:14:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:12:14:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:14:12:14:19 | * | params_flow.rb:14:12:14:19 | * | | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3682,7 +3274,6 @@ trackEnd | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:14:12:14:19 | call to taint | | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:14:18:14:18 | 1 | | params_flow.rb:14:22:14:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:22:14:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:14:22:14:29 | * | params_flow.rb:14:22:14:29 | * | | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3712,7 +3303,6 @@ trackEnd | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:16:1:19:3 | self in keyword | | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:17:5:17:11 | self | | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:18:5:18:11 | self | -| params_flow.rb:16:1:19:3 | synthetic *args | params_flow.rb:16:1:19:3 | synthetic *args | | params_flow.rb:16:13:16:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:16:13:16:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:16:13:16:14 | p1 | params_flow.rb:6:10:6:10 | x | @@ -3728,11 +3318,9 @@ trackEnd | params_flow.rb:16:18:16:19 | p2 | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:16:18:16:19 | p2 | params_flow.rb:18:10:18:11 | p2 | | params_flow.rb:17:5:17:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:17:5:17:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:17:5:17:11 | * | params_flow.rb:17:5:17:11 | * | | params_flow.rb:17:5:17:11 | call to sink | params_flow.rb:17:5:17:11 | call to sink | | params_flow.rb:18:5:18:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:18:5:18:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:18:5:18:11 | * | params_flow.rb:18:5:18:11 | * | | params_flow.rb:18:5:18:11 | call to sink | params_flow.rb:18:5:18:11 | call to sink | | params_flow.rb:18:5:18:11 | call to sink | params_flow.rb:21:1:21:35 | call to keyword | @@ -3745,7 +3333,6 @@ trackEnd | params_flow.rb:21:9:21:10 | :p1 | params_flow.rb:21:9:21:10 | :p1 | | params_flow.rb:21:9:21:20 | Pair | params_flow.rb:21:9:21:20 | Pair | | params_flow.rb:21:13:21:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:13:21:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:21:13:21:20 | * | params_flow.rb:21:13:21:20 | * | | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3768,7 +3355,6 @@ trackEnd | params_flow.rb:21:23:21:24 | :p2 | params_flow.rb:21:23:21:24 | :p2 | | params_flow.rb:21:23:21:34 | Pair | params_flow.rb:21:23:21:34 | Pair | | params_flow.rb:21:27:21:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:27:21:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:21:27:21:34 | * | params_flow.rb:21:27:21:34 | * | | params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3794,7 +3380,6 @@ trackEnd | params_flow.rb:22:9:22:10 | :p2 | params_flow.rb:22:9:22:10 | :p2 | | params_flow.rb:22:9:22:20 | Pair | params_flow.rb:22:9:22:20 | Pair | | params_flow.rb:22:13:22:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:13:22:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:22:13:22:20 | * | params_flow.rb:22:13:22:20 | * | | params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3817,7 +3402,6 @@ trackEnd | params_flow.rb:22:23:22:24 | :p1 | params_flow.rb:22:23:22:24 | :p1 | | params_flow.rb:22:23:22:34 | Pair | params_flow.rb:22:23:22:34 | Pair | | params_flow.rb:22:27:22:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:27:22:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:22:27:22:34 | * | params_flow.rb:22:27:22:34 | * | | params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3843,7 +3427,6 @@ trackEnd | params_flow.rb:23:9:23:11 | :p2 | params_flow.rb:23:9:23:11 | :p2 | | params_flow.rb:23:9:23:23 | Pair | params_flow.rb:23:9:23:23 | Pair | | params_flow.rb:23:16:23:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:16:23:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:23:16:23:23 | * | params_flow.rb:23:16:23:23 | * | | params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3866,7 +3449,6 @@ trackEnd | params_flow.rb:23:26:23:28 | :p1 | params_flow.rb:23:26:23:28 | :p1 | | params_flow.rb:23:26:23:40 | Pair | params_flow.rb:23:26:23:40 | Pair | | params_flow.rb:23:33:23:40 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:33:23:40 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:23:33:23:40 | * | params_flow.rb:23:33:23:40 | * | | params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -3899,7 +3481,6 @@ trackEnd | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:28:5:28:22 | self | | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:29:5:29:22 | self | | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:30:5:30:22 | self | -| params_flow.rb:25:1:31:3 | synthetic *args | params_flow.rb:25:1:31:3 | synthetic *args | | params_flow.rb:25:12:25:13 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:25:12:25:13 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:25:12:25:13 | p1 | params_flow.rb:6:10:6:10 | x | @@ -3915,11 +3496,9 @@ trackEnd | params_flow.rb:25:17:25:24 | **kwargs | params_flow.rb:30:11:30:16 | kwargs | | params_flow.rb:25:19:25:24 | kwargs | params_flow.rb:25:19:25:24 | kwargs | | params_flow.rb:26:5:26:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:26:5:26:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:26:5:26:11 | * | params_flow.rb:26:5:26:11 | * | | params_flow.rb:26:5:26:11 | call to sink | params_flow.rb:26:5:26:11 | call to sink | | params_flow.rb:27:5:27:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:27:5:27:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:27:5:27:22 | * | params_flow.rb:27:5:27:22 | * | | params_flow.rb:27:5:27:22 | call to sink | params_flow.rb:27:5:27:22 | call to sink | | params_flow.rb:27:11:27:21 | * | params_flow.rb:27:11:27:21 | * | @@ -3930,7 +3509,6 @@ trackEnd | params_flow.rb:27:11:27:21 | ...[...] | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:27:18:27:20 | :p1 | params_flow.rb:27:18:27:20 | :p1 | | params_flow.rb:28:5:28:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:28:5:28:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:28:5:28:22 | * | params_flow.rb:28:5:28:22 | * | | params_flow.rb:28:5:28:22 | call to sink | params_flow.rb:28:5:28:22 | call to sink | | params_flow.rb:28:11:28:21 | * | params_flow.rb:28:11:28:21 | * | @@ -3941,7 +3519,6 @@ trackEnd | params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:28:18:28:20 | :p2 | params_flow.rb:28:18:28:20 | :p2 | | params_flow.rb:29:5:29:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:29:5:29:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:29:5:29:22 | * | params_flow.rb:29:5:29:22 | * | | params_flow.rb:29:5:29:22 | call to sink | params_flow.rb:29:5:29:22 | call to sink | | params_flow.rb:29:11:29:21 | * | params_flow.rb:29:11:29:21 | * | @@ -3952,7 +3529,6 @@ trackEnd | params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:29:18:29:20 | :p3 | params_flow.rb:29:18:29:20 | :p3 | | params_flow.rb:30:5:30:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:30:5:30:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:30:5:30:22 | * | params_flow.rb:30:5:30:22 | * | | params_flow.rb:30:5:30:22 | call to sink | params_flow.rb:30:5:30:22 | call to sink | | params_flow.rb:30:5:30:22 | call to sink | params_flow.rb:33:1:33:58 | call to kwargs | @@ -3977,7 +3553,6 @@ trackEnd | params_flow.rb:33:8:33:9 | :p1 | params_flow.rb:33:8:33:9 | :p1 | | params_flow.rb:33:8:33:19 | Pair | params_flow.rb:33:8:33:19 | Pair | | params_flow.rb:33:12:33:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:12:33:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:12:33:19 | * | params_flow.rb:33:12:33:19 | * | | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4004,7 +3579,6 @@ trackEnd | params_flow.rb:33:22:33:23 | :p2 | params_flow.rb:33:22:33:23 | :p2 | | params_flow.rb:33:22:33:34 | Pair | params_flow.rb:33:22:33:34 | Pair | | params_flow.rb:33:26:33:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:26:33:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:26:33:34 | * | params_flow.rb:33:26:33:34 | * | | params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4025,7 +3599,6 @@ trackEnd | params_flow.rb:33:37:33:38 | :p3 | params_flow.rb:33:37:33:38 | :p3 | | params_flow.rb:33:37:33:49 | Pair | params_flow.rb:33:37:33:49 | Pair | | params_flow.rb:33:41:33:49 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:41:33:49 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:33:41:33:49 | * | params_flow.rb:33:41:33:49 | * | | params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4061,7 +3634,6 @@ trackEnd | params_flow.rb:34:10:34:11 | :p3 | params_flow.rb:34:10:34:11 | :p3 | | params_flow.rb:34:10:34:22 | Pair | params_flow.rb:34:10:34:22 | Pair | | params_flow.rb:34:14:34:22 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:34:14:34:22 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:34:14:34:22 | * | params_flow.rb:34:14:34:22 | * | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4099,7 +3671,6 @@ trackEnd | params_flow.rb:35:8:35:9 | :p1 | params_flow.rb:35:8:35:9 | :p1 | | params_flow.rb:35:8:35:20 | Pair | params_flow.rb:35:8:35:20 | Pair | | params_flow.rb:35:12:35:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:35:12:35:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:35:12:35:20 | * | params_flow.rb:35:12:35:20 | * | | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4141,7 +3712,6 @@ trackEnd | params_flow.rb:37:9:37:11 | :p1 | params_flow.rb:37:9:37:11 | :p1 | | params_flow.rb:37:9:37:24 | Pair | params_flow.rb:37:9:37:24 | Pair | | params_flow.rb:37:16:37:24 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:16:37:24 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:37:16:37:24 | * | params_flow.rb:37:16:37:24 | * | | params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4168,7 +3738,6 @@ trackEnd | params_flow.rb:37:27:37:29 | :p2 | params_flow.rb:37:27:37:29 | :p2 | | params_flow.rb:37:27:37:42 | Pair | params_flow.rb:37:27:37:42 | Pair | | params_flow.rb:37:34:37:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:34:37:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:37:34:37:42 | * | params_flow.rb:37:34:37:42 | * | | params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4205,7 +3774,6 @@ trackEnd | params_flow.rb:40:9:40:11 | :p1 | params_flow.rb:40:9:40:11 | :p1 | | params_flow.rb:40:9:40:24 | Pair | params_flow.rb:40:9:40:24 | Pair | | params_flow.rb:40:16:40:24 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:40:16:40:24 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:40:16:40:24 | * | params_flow.rb:40:16:40:24 | * | | params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4231,7 +3799,6 @@ trackEnd | params_flow.rb:41:9:41:10 | :p2 | params_flow.rb:41:9:41:10 | :p2 | | params_flow.rb:41:9:41:21 | Pair | params_flow.rb:41:9:41:21 | Pair | | params_flow.rb:41:13:41:21 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:41:13:41:21 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:41:13:41:21 | * | params_flow.rb:41:13:41:21 | * | | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4262,7 +3829,6 @@ trackEnd | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:44:24:44:27 | args | | params_flow.rb:43:9:43:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:43:9:43:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:43:9:43:17 | * | params_flow.rb:43:9:43:17 | * | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:44:1:44:28 | *[1] | @@ -4273,7 +3839,6 @@ trackEnd | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:43:15:43:16 | 17 | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:44:1:44:28 | * | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:44:1:44:28 | * | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:1:44:28 | * | params_flow.rb:44:1:44:28 | * | | params_flow.rb:44:1:44:28 | *[1] | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:44:1:44:28 | *[2] | params_flow.rb:44:1:44:28 | *[2] | @@ -4288,7 +3853,6 @@ trackEnd | params_flow.rb:44:1:44:28 | *[-1] | params_flow.rb:44:1:44:28 | *[-1] | | params_flow.rb:44:1:44:28 | call to positional | params_flow.rb:44:1:44:28 | call to positional | | params_flow.rb:44:12:44:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:44:12:44:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:44:12:44:20 | * | params_flow.rb:44:12:44:20 | * | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4312,46 +3876,58 @@ trackEnd | params_flow.rb:46:1:46:4 | args | params_flow.rb:46:1:46:4 | args | | params_flow.rb:46:8:46:29 | * | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:8:46:29 | Array | params_flow.rb:46:8:46:29 | Array | +| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:46:1:46:4 | args | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:46:1:46:29 | ... = ... | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:46:8:46:29 | call to [] | -| params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:47:1:47:17 | *[0] | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:47:13:47:16 | args | | params_flow.rb:46:9:46:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:9:46:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:9:46:17 | * | params_flow.rb:46:9:46:17 | * | +| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:46:9:46:17 | call to taint | -| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:47:1:47:17 | *[0] | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:46:15:46:16 | 18 | -| params_flow.rb:46:15:46:16 | 18 | params_flow.rb:47:1:47:17 | *[0] | -| params_flow.rb:46:20:46:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:20:46:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:46:20:46:28 | * | params_flow.rb:46:20:46:28 | * | +| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:46:20:46:28 | call to taint | -| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:47:1:47:17 | *[1] | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:46:20:46:28 | call to taint | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:46:26:46:27 | 19 | -| params_flow.rb:46:26:46:27 | 19 | params_flow.rb:47:1:47:17 | *[1] | -| params_flow.rb:47:1:47:17 | *[0] | params_flow.rb:47:1:47:17 | *[0] | -| params_flow.rb:47:1:47:17 | *[1] | params_flow.rb:47:1:47:17 | *[1] | -| params_flow.rb:47:1:47:17 | *[2] | params_flow.rb:47:1:47:17 | *[2] | -| params_flow.rb:47:1:47:17 | *[3] | params_flow.rb:47:1:47:17 | *[3] | -| params_flow.rb:47:1:47:17 | *[4] | params_flow.rb:47:1:47:17 | *[4] | -| params_flow.rb:47:1:47:17 | *[5] | params_flow.rb:47:1:47:17 | *[5] | -| params_flow.rb:47:1:47:17 | *[6] | params_flow.rb:47:1:47:17 | *[6] | -| params_flow.rb:47:1:47:17 | *[7] | params_flow.rb:47:1:47:17 | *[7] | -| params_flow.rb:47:1:47:17 | *[8] | params_flow.rb:47:1:47:17 | *[8] | -| params_flow.rb:47:1:47:17 | *[9] | params_flow.rb:47:1:47:17 | *[9] | -| params_flow.rb:47:1:47:17 | *[10] | params_flow.rb:47:1:47:17 | *[10] | -| params_flow.rb:47:1:47:17 | *[-1] | params_flow.rb:47:1:47:17 | *[-1] | | params_flow.rb:47:1:47:17 | call to positional | params_flow.rb:47:1:47:17 | call to positional | +| params_flow.rb:47:12:47:16 | * ... | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:47:12:47:16 | * ... | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:49:1:53:3 | &block | params_flow.rb:49:1:53:3 | &block | | params_flow.rb:49:1:53:3 | posargs | params_flow.rb:49:1:53:3 | posargs | @@ -4364,7 +3940,6 @@ trackEnd | params_flow.rb:49:1:53:3 | self in posargs | params_flow.rb:51:5:51:21 | self | | params_flow.rb:49:1:53:3 | self in posargs | params_flow.rb:52:5:52:21 | self | | params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:6:10:6:10 | x | @@ -4378,11 +3953,9 @@ trackEnd | params_flow.rb:49:17:49:24 | *posargs | params_flow.rb:52:11:52:17 | posargs | | params_flow.rb:49:18:49:24 | posargs | params_flow.rb:49:18:49:24 | posargs | | params_flow.rb:50:5:50:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:50:5:50:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:50:5:50:11 | * | params_flow.rb:50:5:50:11 | * | | params_flow.rb:50:5:50:11 | call to sink | params_flow.rb:50:5:50:11 | call to sink | | params_flow.rb:51:5:51:21 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:51:5:51:21 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:51:5:51:21 | * | params_flow.rb:51:5:51:21 | * | | params_flow.rb:51:5:51:21 | call to sink | params_flow.rb:51:5:51:21 | call to sink | | params_flow.rb:51:11:51:20 | * | params_flow.rb:51:11:51:20 | * | @@ -4393,7 +3966,6 @@ trackEnd | params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:51:19:51:19 | 0 | params_flow.rb:51:19:51:19 | 0 | | params_flow.rb:52:5:52:21 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:52:5:52:21 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:52:5:52:21 | * | params_flow.rb:52:5:52:21 | * | | params_flow.rb:52:5:52:21 | call to sink | params_flow.rb:52:5:52:21 | call to sink | | params_flow.rb:52:5:52:21 | call to sink | params_flow.rb:55:1:55:29 | call to posargs | @@ -4407,11 +3979,9 @@ trackEnd | params_flow.rb:52:11:52:20 | ...[...] | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:52:19:52:19 | 1 | params_flow.rb:52:19:52:19 | 1 | | params_flow.rb:55:1:55:29 | * | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:1:55:29 | * | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:55:1:55:29 | * | params_flow.rb:55:1:55:29 | * | | params_flow.rb:55:1:55:29 | call to posargs | params_flow.rb:55:1:55:29 | call to posargs | | params_flow.rb:55:9:55:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:9:55:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:55:9:55:17 | * | params_flow.rb:55:9:55:17 | * | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4436,7 +4006,6 @@ trackEnd | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:55:15:55:16 | 20 | | params_flow.rb:55:20:55:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:20:55:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:55:20:55:28 | * | params_flow.rb:55:20:55:28 | * | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4468,7 +4037,6 @@ trackEnd | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:58:21:58:24 | args | | params_flow.rb:57:9:57:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:57:9:57:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:57:9:57:17 | * | params_flow.rb:57:9:57:17 | * | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4489,7 +4057,6 @@ trackEnd | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:57:15:57:16 | 22 | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:58:1:58:25 | * | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:58:1:58:25 | * | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:58:1:58:25 | * | params_flow.rb:58:1:58:25 | * | | params_flow.rb:58:1:58:25 | *[1] | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:58:1:58:25 | *[2] | params_flow.rb:58:1:58:25 | *[2] | @@ -4504,7 +4071,6 @@ trackEnd | params_flow.rb:58:1:58:25 | *[-1] | params_flow.rb:58:1:58:25 | *[-1] | | params_flow.rb:58:1:58:25 | call to posargs | params_flow.rb:58:1:58:25 | call to posargs | | params_flow.rb:58:9:58:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:58:9:58:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:58:9:58:17 | * | params_flow.rb:58:9:58:17 | * | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4536,50 +4102,65 @@ trackEnd | params_flow.rb:60:1:60:4 | args | params_flow.rb:60:1:60:4 | args | | params_flow.rb:60:8:60:29 | * | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:8:60:29 | Array | params_flow.rb:60:8:60:29 | Array | +| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:50:10:50:11 | p1 | +| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:60:1:60:4 | args | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:60:1:60:29 | ... = ... | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:60:8:60:29 | call to [] | -| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:61:1:61:14 | *[0] | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:61:10:61:13 | args | | params_flow.rb:60:9:60:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:9:60:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:9:60:17 | * | params_flow.rb:60:9:60:17 | * | +| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:50:10:50:11 | p1 | +| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:60:9:60:17 | call to taint | -| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:61:1:61:14 | *[0] | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:50:10:50:11 | p1 | +| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:60:15:60:16 | 24 | -| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:61:1:61:14 | *[0] | -| params_flow.rb:60:20:60:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:20:60:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:60:20:60:28 | * | params_flow.rb:60:20:60:28 | * | +| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:52:10:52:21 | ( ... ) | +| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:60:20:60:28 | call to taint | -| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:61:1:61:14 | *[1] | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:52:10:52:21 | ( ... ) | +| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:60:20:60:28 | call to taint | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:60:26:60:27 | 25 | -| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:61:1:61:14 | *[1] | -| params_flow.rb:61:1:61:14 | *[0] | params_flow.rb:61:1:61:14 | *[0] | -| params_flow.rb:61:1:61:14 | *[1] | params_flow.rb:61:1:61:14 | *[1] | -| params_flow.rb:61:1:61:14 | *[2] | params_flow.rb:61:1:61:14 | *[2] | -| params_flow.rb:61:1:61:14 | *[3] | params_flow.rb:61:1:61:14 | *[3] | -| params_flow.rb:61:1:61:14 | *[4] | params_flow.rb:61:1:61:14 | *[4] | -| params_flow.rb:61:1:61:14 | *[5] | params_flow.rb:61:1:61:14 | *[5] | -| params_flow.rb:61:1:61:14 | *[6] | params_flow.rb:61:1:61:14 | *[6] | -| params_flow.rb:61:1:61:14 | *[7] | params_flow.rb:61:1:61:14 | *[7] | -| params_flow.rb:61:1:61:14 | *[8] | params_flow.rb:61:1:61:14 | *[8] | -| params_flow.rb:61:1:61:14 | *[9] | params_flow.rb:61:1:61:14 | *[9] | -| params_flow.rb:61:1:61:14 | *[10] | params_flow.rb:61:1:61:14 | *[10] | -| params_flow.rb:61:1:61:14 | *[-1] | params_flow.rb:61:1:61:14 | *[-1] | | params_flow.rb:61:1:61:14 | call to posargs | params_flow.rb:61:1:61:14 | call to posargs | +| params_flow.rb:61:9:61:13 | * ... | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:61:9:61:13 | * ... | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:63:1:63:4 | args | params_flow.rb:63:1:63:4 | args | | params_flow.rb:63:8:63:16 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:63:8:63:16 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:63:8:63:16 | * | params_flow.rb:63:8:63:16 | * | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4588,7 +4169,6 @@ trackEnd | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:63:1:63:16 | ... = ... | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:65:10:65:13 | ...[...] | -| params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:67:13:67:16 | args | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:1:11:1:11 | x | @@ -4601,7 +4181,6 @@ trackEnd | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:63:14:63:15 | 26 | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:65:10:65:13 | ...[...] | -| params_flow.rb:63:14:63:15 | 26 | params_flow.rb:67:1:67:17 | *[0] | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:67:13:67:16 | args | | params_flow.rb:64:1:66:3 | &block | params_flow.rb:64:1:66:3 | &block | | params_flow.rb:64:1:66:3 | self in splatstuff | params_flow.rb:5:1:7:3 | self (sink) | @@ -4611,13 +4190,11 @@ trackEnd | params_flow.rb:64:1:66:3 | self in splatstuff | params_flow.rb:64:1:66:3 | self in splatstuff | | params_flow.rb:64:1:66:3 | self in splatstuff | params_flow.rb:65:5:65:13 | self | | params_flow.rb:64:1:66:3 | splatstuff | params_flow.rb:64:1:66:3 | splatstuff | -| params_flow.rb:64:1:66:3 | synthetic *args | params_flow.rb:64:1:66:3 | synthetic *args | | params_flow.rb:64:16:64:17 | *x | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:64:16:64:17 | *x | params_flow.rb:64:17:64:17 | x | | params_flow.rb:64:16:64:17 | *x | params_flow.rb:65:10:65:10 | x | | params_flow.rb:64:17:64:17 | x | params_flow.rb:64:17:64:17 | x | | params_flow.rb:65:5:65:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:65:5:65:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:65:5:65:13 | * | params_flow.rb:65:5:65:13 | * | | params_flow.rb:65:5:65:13 | call to sink | params_flow.rb:65:5:65:13 | call to sink | | params_flow.rb:65:5:65:13 | call to sink | params_flow.rb:67:1:67:17 | call to splatstuff | @@ -4627,18 +4204,6 @@ trackEnd | params_flow.rb:65:10:65:13 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:65:10:65:13 | ...[...] | params_flow.rb:65:10:65:13 | ...[...] | | params_flow.rb:65:12:65:12 | 0 | params_flow.rb:65:12:65:12 | 0 | -| params_flow.rb:67:1:67:17 | *[0] | params_flow.rb:67:1:67:17 | *[0] | -| params_flow.rb:67:1:67:17 | *[1] | params_flow.rb:67:1:67:17 | *[1] | -| params_flow.rb:67:1:67:17 | *[2] | params_flow.rb:67:1:67:17 | *[2] | -| params_flow.rb:67:1:67:17 | *[3] | params_flow.rb:67:1:67:17 | *[3] | -| params_flow.rb:67:1:67:17 | *[4] | params_flow.rb:67:1:67:17 | *[4] | -| params_flow.rb:67:1:67:17 | *[5] | params_flow.rb:67:1:67:17 | *[5] | -| params_flow.rb:67:1:67:17 | *[6] | params_flow.rb:67:1:67:17 | *[6] | -| params_flow.rb:67:1:67:17 | *[7] | params_flow.rb:67:1:67:17 | *[7] | -| params_flow.rb:67:1:67:17 | *[8] | params_flow.rb:67:1:67:17 | *[8] | -| params_flow.rb:67:1:67:17 | *[9] | params_flow.rb:67:1:67:17 | *[9] | -| params_flow.rb:67:1:67:17 | *[10] | params_flow.rb:67:1:67:17 | *[10] | -| params_flow.rb:67:1:67:17 | *[-1] | params_flow.rb:67:1:67:17 | *[-1] | | params_flow.rb:67:1:67:17 | call to splatstuff | params_flow.rb:67:1:67:17 | call to splatstuff | | params_flow.rb:67:12:67:16 | * ... | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:67:12:67:16 | * ... | params_flow.rb:64:17:64:17 | x | @@ -4658,7 +4223,6 @@ trackEnd | params_flow.rb:69:1:76:3 | self in splatmid | params_flow.rb:75:5:75:10 | self | | params_flow.rb:69:1:76:3 | splatmid | params_flow.rb:69:1:76:3 | splatmid | | params_flow.rb:69:1:76:3 | synthetic *args | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:69:1:76:3 | synthetic *args | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:69:14:69:14 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:14:69:14 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:14:69:14 | x | params_flow.rb:6:10:6:10 | x | @@ -4693,15 +4257,12 @@ trackEnd | params_flow.rb:69:27:69:27 | r | params_flow.rb:69:27:69:27 | r | | params_flow.rb:69:27:69:27 | r | params_flow.rb:75:10:75:10 | r | | params_flow.rb:70:5:70:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:70:5:70:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:70:5:70:10 | * | params_flow.rb:70:5:70:10 | * | | params_flow.rb:70:5:70:10 | call to sink | params_flow.rb:70:5:70:10 | call to sink | | params_flow.rb:71:5:71:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:71:5:71:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:71:5:71:10 | * | params_flow.rb:71:5:71:10 | * | | params_flow.rb:71:5:71:10 | call to sink | params_flow.rb:71:5:71:10 | call to sink | | params_flow.rb:72:5:72:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:72:5:72:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:72:5:72:13 | * | params_flow.rb:72:5:72:13 | * | | params_flow.rb:72:5:72:13 | call to sink | params_flow.rb:72:5:72:13 | call to sink | | params_flow.rb:72:10:72:13 | * | params_flow.rb:72:10:72:13 | * | @@ -4711,7 +4272,6 @@ trackEnd | params_flow.rb:72:10:72:13 | ...[...] | params_flow.rb:72:10:72:13 | ...[...] | | params_flow.rb:72:12:72:12 | 0 | params_flow.rb:72:12:72:12 | 0 | | params_flow.rb:73:5:73:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:73:5:73:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:73:5:73:13 | * | params_flow.rb:73:5:73:13 | * | | params_flow.rb:73:5:73:13 | call to sink | params_flow.rb:73:5:73:13 | call to sink | | params_flow.rb:73:10:73:13 | * | params_flow.rb:73:10:73:13 | * | @@ -4721,22 +4281,18 @@ trackEnd | params_flow.rb:73:10:73:13 | ...[...] | params_flow.rb:73:10:73:13 | ...[...] | | params_flow.rb:73:12:73:12 | 1 | params_flow.rb:73:12:73:12 | 1 | | params_flow.rb:74:5:74:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:74:5:74:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:74:5:74:10 | * | params_flow.rb:74:5:74:10 | * | | params_flow.rb:74:5:74:10 | call to sink | params_flow.rb:74:5:74:10 | call to sink | | params_flow.rb:75:5:75:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:75:5:75:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:75:5:75:10 | * | params_flow.rb:75:5:75:10 | * | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:75:5:75:10 | call to sink | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:78:1:78:63 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:81:1:81:37 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:96:1:96:88 | call to splatmid | | params_flow.rb:78:1:78:63 | * | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:1:78:63 | * | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:78:1:78:63 | * | params_flow.rb:78:1:78:63 | * | | params_flow.rb:78:1:78:63 | call to splatmid | params_flow.rb:78:1:78:63 | call to splatmid | | params_flow.rb:78:10:78:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:10:78:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:10:78:18 | * | params_flow.rb:78:10:78:18 | * | | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4757,7 +4313,6 @@ trackEnd | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:78:10:78:18 | call to taint | | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:78:16:78:17 | 27 | | params_flow.rb:78:21:78:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:21:78:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:21:78:29 | * | params_flow.rb:78:21:78:29 | * | | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4778,7 +4333,6 @@ trackEnd | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:78:21:78:29 | call to taint | | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:78:27:78:28 | 28 | | params_flow.rb:78:32:78:40 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:32:78:40 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:32:78:40 | * | params_flow.rb:78:32:78:40 | * | | params_flow.rb:78:32:78:40 | call to taint | params_flow.rb:78:32:78:40 | call to taint | | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:1:11:1:11 | x | @@ -4787,7 +4341,6 @@ trackEnd | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:78:32:78:40 | call to taint | | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:78:38:78:39 | 29 | | params_flow.rb:78:43:78:51 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:43:78:51 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:43:78:51 | * | params_flow.rb:78:43:78:51 | * | | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4808,7 +4361,6 @@ trackEnd | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:78:43:78:51 | call to taint | | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:78:49:78:50 | 30 | | params_flow.rb:78:54:78:62 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:54:78:62 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:78:54:78:62 | * | params_flow.rb:78:54:78:62 | * | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4837,7 +4389,6 @@ trackEnd | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:81:22:81:25 | args | | params_flow.rb:80:9:80:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:9:80:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:9:80:17 | * | params_flow.rb:80:9:80:17 | * | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:81:1:81:37 | *[1] | @@ -4848,7 +4399,6 @@ trackEnd | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:80:15:80:16 | 33 | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:20:80:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:20:80:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:20:80:28 | * | params_flow.rb:80:20:80:28 | * | | params_flow.rb:80:20:80:28 | call to taint | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:20:80:28 | call to taint | params_flow.rb:81:1:81:37 | *[2] | @@ -4859,7 +4409,6 @@ trackEnd | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:80:26:80:27 | 34 | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:81:1:81:37 | *[2] | | params_flow.rb:80:31:80:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:31:80:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:31:80:39 | * | params_flow.rb:80:31:80:39 | * | | params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:81:1:81:37 | *[3] | @@ -4870,7 +4419,6 @@ trackEnd | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:80:37:80:38 | 35 | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:81:1:81:37 | *[3] | | params_flow.rb:80:42:80:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:42:80:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:42:80:50 | * | params_flow.rb:80:42:80:50 | * | | params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:81:1:81:37 | *[4] | @@ -4881,7 +4429,6 @@ trackEnd | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:80:48:80:49 | 36 | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:81:1:81:37 | * | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:81:1:81:37 | * | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:1:81:37 | * | params_flow.rb:81:1:81:37 | * | | params_flow.rb:81:1:81:37 | *[1] | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:81:1:81:37 | *[2] | params_flow.rb:81:1:81:37 | *[2] | @@ -4896,7 +4443,6 @@ trackEnd | params_flow.rb:81:1:81:37 | *[-1] | params_flow.rb:81:1:81:37 | *[-1] | | params_flow.rb:81:1:81:37 | call to splatmid | params_flow.rb:81:1:81:37 | call to splatmid | | params_flow.rb:81:10:81:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:10:81:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:81:10:81:18 | * | params_flow.rb:81:10:81:18 | * | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -4918,7 +4464,6 @@ trackEnd | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:81:16:81:17 | 32 | | params_flow.rb:81:21:81:25 | * ... | params_flow.rb:81:21:81:25 | * ... | | params_flow.rb:81:28:81:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:28:81:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:81:28:81:36 | * | params_flow.rb:81:28:81:36 | * | | params_flow.rb:81:28:81:36 | call to taint | params_flow.rb:81:28:81:36 | call to taint | | params_flow.rb:81:34:81:35 | 37 | params_flow.rb:1:11:1:11 | x | @@ -4941,7 +4486,6 @@ trackEnd | params_flow.rb:83:1:91:3 | self in pos_many | params_flow.rb:89:5:89:10 | self | | params_flow.rb:83:1:91:3 | self in pos_many | params_flow.rb:90:5:90:10 | self | | params_flow.rb:83:1:91:3 | synthetic *args | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:83:1:91:3 | synthetic *args | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:83:14:83:14 | t | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:14:83:14 | t | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:14:83:14 | t | params_flow.rb:6:10:6:10 | x | @@ -4992,31 +4536,24 @@ trackEnd | params_flow.rb:83:32:83:32 | z | params_flow.rb:83:32:83:32 | z | | params_flow.rb:83:32:83:32 | z | params_flow.rb:90:10:90:10 | z | | params_flow.rb:84:5:84:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:84:5:84:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:84:5:84:10 | * | params_flow.rb:84:5:84:10 | * | | params_flow.rb:84:5:84:10 | call to sink | params_flow.rb:84:5:84:10 | call to sink | | params_flow.rb:85:5:85:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:85:5:85:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:85:5:85:10 | * | params_flow.rb:85:5:85:10 | * | | params_flow.rb:85:5:85:10 | call to sink | params_flow.rb:85:5:85:10 | call to sink | | params_flow.rb:86:5:86:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:86:5:86:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:86:5:86:10 | * | params_flow.rb:86:5:86:10 | * | | params_flow.rb:86:5:86:10 | call to sink | params_flow.rb:86:5:86:10 | call to sink | | params_flow.rb:87:5:87:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:87:5:87:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:87:5:87:10 | * | params_flow.rb:87:5:87:10 | * | | params_flow.rb:87:5:87:10 | call to sink | params_flow.rb:87:5:87:10 | call to sink | | params_flow.rb:88:5:88:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:88:5:88:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:88:5:88:10 | * | params_flow.rb:88:5:88:10 | * | | params_flow.rb:88:5:88:10 | call to sink | params_flow.rb:88:5:88:10 | call to sink | | params_flow.rb:89:5:89:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:89:5:89:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:89:5:89:10 | * | params_flow.rb:89:5:89:10 | * | | params_flow.rb:89:5:89:10 | call to sink | params_flow.rb:89:5:89:10 | call to sink | | params_flow.rb:90:5:90:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:90:5:90:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:90:5:90:10 | * | params_flow.rb:90:5:90:10 | * | | params_flow.rb:90:5:90:10 | call to sink | params_flow.rb:90:5:90:10 | call to sink | | params_flow.rb:90:5:90:10 | call to sink | params_flow.rb:94:1:94:48 | call to pos_many | @@ -5030,7 +4567,6 @@ trackEnd | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:94:33:94:36 | args | | params_flow.rb:93:9:93:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:9:93:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:9:93:17 | * | params_flow.rb:93:9:93:17 | * | | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:94:1:94:48 | *[2] | @@ -5041,7 +4577,6 @@ trackEnd | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:93:15:93:16 | 40 | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:20:93:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:20:93:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:20:93:28 | * | params_flow.rb:93:20:93:28 | * | | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:94:1:94:48 | *[3] | @@ -5052,7 +4587,6 @@ trackEnd | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:93:26:93:27 | 41 | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:94:1:94:48 | *[3] | | params_flow.rb:93:31:93:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:31:93:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:31:93:39 | * | params_flow.rb:93:31:93:39 | * | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:94:1:94:48 | *[4] | @@ -5063,7 +4597,6 @@ trackEnd | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:93:37:93:38 | 42 | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:94:1:94:48 | *[4] | | params_flow.rb:93:42:93:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:42:93:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:42:93:50 | * | params_flow.rb:93:42:93:50 | * | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:94:1:94:48 | *[5] | @@ -5074,7 +4607,6 @@ trackEnd | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:93:48:93:49 | 43 | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:94:1:94:48 | * | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:1:94:48 | * | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:1:94:48 | * | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:1:94:48 | *[2] | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:94:1:94:48 | *[3] | params_flow.rb:94:1:94:48 | *[3] | @@ -5088,7 +4620,6 @@ trackEnd | params_flow.rb:94:1:94:48 | *[-1] | params_flow.rb:94:1:94:48 | *[-1] | | params_flow.rb:94:1:94:48 | call to pos_many | params_flow.rb:94:1:94:48 | call to pos_many | | params_flow.rb:94:10:94:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:10:94:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:10:94:18 | * | params_flow.rb:94:10:94:18 | * | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5109,7 +4640,6 @@ trackEnd | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:94:16:94:17 | 38 | | params_flow.rb:94:21:94:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:21:94:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:21:94:29 | * | params_flow.rb:94:21:94:29 | * | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5131,7 +4661,6 @@ trackEnd | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:94:27:94:28 | 39 | | params_flow.rb:94:32:94:36 | * ... | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:94:39:94:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:39:94:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:39:94:47 | * | params_flow.rb:94:39:94:47 | * | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5152,7 +4681,6 @@ trackEnd | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:94:39:94:47 | call to taint | | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:94:45:94:46 | 44 | | params_flow.rb:96:1:96:88 | * | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:1:96:88 | * | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:1:96:88 | * | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:1:96:88 | *[2] | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:1:96:88 | *[3] | params_flow.rb:96:1:96:88 | *[3] | @@ -5166,7 +4694,6 @@ trackEnd | params_flow.rb:96:1:96:88 | *[-1] | params_flow.rb:96:1:96:88 | *[-1] | | params_flow.rb:96:1:96:88 | call to splatmid | params_flow.rb:96:1:96:88 | call to splatmid | | params_flow.rb:96:10:96:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:10:96:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:10:96:18 | * | params_flow.rb:96:10:96:18 | * | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5187,7 +4714,6 @@ trackEnd | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:96:16:96:17 | 45 | | params_flow.rb:96:21:96:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:21:96:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:21:96:29 | * | params_flow.rb:96:21:96:29 | * | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5213,7 +4739,6 @@ trackEnd | params_flow.rb:96:33:96:65 | call to [] | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:33:96:65 | call to [] | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:34:96:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:34:96:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:34:96:42 | * | params_flow.rb:96:34:96:42 | * | | params_flow.rb:96:34:96:42 | call to taint | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:34:96:42 | call to taint | params_flow.rb:96:34:96:42 | call to taint | @@ -5224,7 +4749,6 @@ trackEnd | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:40:96:41 | 47 | | params_flow.rb:96:45:96:53 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:45:96:53 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:45:96:53 | * | params_flow.rb:96:45:96:53 | * | | params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:1:96:88 | *[3] | | params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:45:96:53 | call to taint | @@ -5235,7 +4759,6 @@ trackEnd | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:51:96:52 | 48 | | params_flow.rb:96:56:96:64 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:56:96:64 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:56:96:64 | * | params_flow.rb:96:56:96:64 | * | | params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:56:96:64 | call to taint | @@ -5246,7 +4769,6 @@ trackEnd | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:62:96:63 | 49 | | params_flow.rb:96:68:96:76 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:68:96:76 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:68:96:76 | * | params_flow.rb:96:68:96:76 | * | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5267,7 +4789,6 @@ trackEnd | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:96:68:96:76 | call to taint | | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:96:74:96:75 | 50 | | params_flow.rb:96:79:96:87 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:79:96:87 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:79:96:87 | * | params_flow.rb:96:79:96:87 | * | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5299,7 +4820,6 @@ trackEnd | params_flow.rb:98:1:103:3 | self in splatmidsmall | params_flow.rb:102:5:102:10 | self | | params_flow.rb:98:1:103:3 | splatmidsmall | params_flow.rb:98:1:103:3 | splatmidsmall | | params_flow.rb:98:1:103:3 | synthetic *args | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:98:1:103:3 | synthetic *args | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:98:19:98:19 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:19:98:19 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:19:98:19 | a | params_flow.rb:6:10:6:10 | x | @@ -5320,11 +4840,9 @@ trackEnd | params_flow.rb:98:31:98:31 | b | params_flow.rb:98:31:98:31 | b | | params_flow.rb:98:31:98:31 | b | params_flow.rb:102:10:102:10 | b | | params_flow.rb:99:5:99:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:99:5:99:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:99:5:99:10 | * | params_flow.rb:99:5:99:10 | * | | params_flow.rb:99:5:99:10 | call to sink | params_flow.rb:99:5:99:10 | call to sink | | params_flow.rb:100:5:100:18 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:100:5:100:18 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:100:5:100:18 | * | params_flow.rb:100:5:100:18 | * | | params_flow.rb:100:5:100:18 | call to sink | params_flow.rb:100:5:100:18 | call to sink | | params_flow.rb:100:10:100:18 | * | params_flow.rb:100:10:100:18 | * | @@ -5334,7 +4852,6 @@ trackEnd | params_flow.rb:100:10:100:18 | ...[...] | params_flow.rb:100:10:100:18 | ...[...] | | params_flow.rb:100:17:100:17 | 0 | params_flow.rb:100:17:100:17 | 0 | | params_flow.rb:101:5:101:18 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:101:5:101:18 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:101:5:101:18 | * | params_flow.rb:101:5:101:18 | * | | params_flow.rb:101:5:101:18 | call to sink | params_flow.rb:101:5:101:18 | call to sink | | params_flow.rb:101:10:101:18 | * | params_flow.rb:101:10:101:18 | * | @@ -5344,13 +4861,11 @@ trackEnd | params_flow.rb:101:10:101:18 | ...[...] | params_flow.rb:101:10:101:18 | ...[...] | | params_flow.rb:101:17:101:17 | 1 | params_flow.rb:101:17:101:17 | 1 | | params_flow.rb:102:5:102:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:102:5:102:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:102:5:102:10 | * | params_flow.rb:102:5:102:10 | * | | params_flow.rb:102:5:102:10 | call to sink | params_flow.rb:102:5:102:10 | call to sink | | params_flow.rb:102:5:102:10 | call to sink | params_flow.rb:105:1:105:49 | call to splatmidsmall | | params_flow.rb:102:5:102:10 | call to sink | params_flow.rb:106:1:106:46 | call to splatmidsmall | | params_flow.rb:105:1:105:49 | * | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:105:1:105:49 | * | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:1:105:49 | * | params_flow.rb:105:1:105:49 | * | | params_flow.rb:105:1:105:49 | *[1] | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:1:105:49 | *[2] | params_flow.rb:105:1:105:49 | *[2] | @@ -5365,7 +4880,6 @@ trackEnd | params_flow.rb:105:1:105:49 | *[-1] | params_flow.rb:105:1:105:49 | *[-1] | | params_flow.rb:105:1:105:49 | call to splatmidsmall | params_flow.rb:105:1:105:49 | call to splatmidsmall | | params_flow.rb:105:15:105:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:15:105:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:15:105:23 | * | params_flow.rb:105:15:105:23 | * | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5391,7 +4905,6 @@ trackEnd | params_flow.rb:105:27:105:48 | call to [] | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:27:105:48 | call to [] | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:28:105:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:28:105:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:28:105:36 | * | params_flow.rb:105:28:105:36 | * | | params_flow.rb:105:28:105:36 | call to taint | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:28:105:36 | call to taint | params_flow.rb:105:28:105:36 | call to taint | @@ -5402,7 +4915,6 @@ trackEnd | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:34:105:35 | 53 | | params_flow.rb:105:39:105:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:39:105:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:39:105:47 | * | params_flow.rb:105:39:105:47 | * | | params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:39:105:47 | call to taint | @@ -5413,11 +4925,9 @@ trackEnd | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:45:105:46 | 54 | | params_flow.rb:106:1:106:46 | * | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:1:106:46 | * | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:1:106:46 | * | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:1:106:46 | call to splatmidsmall | params_flow.rb:106:1:106:46 | call to splatmidsmall | | params_flow.rb:106:15:106:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:15:106:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:15:106:23 | * | params_flow.rb:106:15:106:23 | * | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5438,7 +4948,6 @@ trackEnd | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:106:15:106:23 | call to taint | | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:106:21:106:22 | 55 | | params_flow.rb:106:26:106:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:26:106:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:26:106:34 | * | params_flow.rb:106:26:106:34 | * | | params_flow.rb:106:26:106:34 | call to taint | params_flow.rb:106:26:106:34 | call to taint | | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:1:11:1:11 | x | @@ -5447,7 +4956,6 @@ trackEnd | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:106:26:106:34 | call to taint | | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:106:32:106:33 | 56 | | params_flow.rb:106:37:106:45 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:37:106:45 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:106:37:106:45 | * | params_flow.rb:106:37:106:45 | * | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5479,7 +4987,6 @@ trackEnd | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | params_flow.rb:111:5:111:10 | self | | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | | params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:108:37:108:37 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:37:108:37 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:37:108:37 | a | params_flow.rb:6:10:6:10 | x | @@ -5499,11 +5006,9 @@ trackEnd | params_flow.rb:108:44:108:44 | c | params_flow.rb:108:44:108:44 | c | | params_flow.rb:108:44:108:44 | c | params_flow.rb:111:10:111:10 | c | | params_flow.rb:109:5:109:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:109:5:109:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:109:5:109:10 | * | params_flow.rb:109:5:109:10 | * | | params_flow.rb:109:5:109:10 | call to sink | params_flow.rb:109:5:109:10 | call to sink | | params_flow.rb:110:5:110:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:110:5:110:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:110:5:110:13 | * | params_flow.rb:110:5:110:13 | * | | params_flow.rb:110:5:110:13 | call to sink | params_flow.rb:110:5:110:13 | call to sink | | params_flow.rb:110:10:110:13 | * | params_flow.rb:110:10:110:13 | * | @@ -5513,18 +5018,15 @@ trackEnd | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:110:12:110:12 | 0 | params_flow.rb:110:12:110:12 | 0 | | params_flow.rb:111:5:111:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:111:5:111:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:111:5:111:10 | * | params_flow.rb:111:5:111:10 | * | | params_flow.rb:111:5:111:10 | call to sink | params_flow.rb:111:5:111:10 | call to sink | | params_flow.rb:111:5:111:10 | call to sink | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | | params_flow.rb:114:1:114:67 | * | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:1:114:67 | * | params_flow.rb:108:1:112:3 | synthetic *args | | params_flow.rb:114:1:114:67 | * | params_flow.rb:114:1:114:67 | * | | params_flow.rb:114:1:114:67 | ** | params_flow.rb:108:1:112:3 | **kwargs | | params_flow.rb:114:1:114:67 | ** | params_flow.rb:114:1:114:67 | ** | | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | | params_flow.rb:114:33:114:41 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:33:114:41 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:33:114:41 | * | params_flow.rb:114:33:114:41 | * | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5547,7 +5049,6 @@ trackEnd | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:114:33:114:41 | call to taint | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:114:39:114:40 | 58 | | params_flow.rb:114:44:114:52 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:44:114:52 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:44:114:52 | * | params_flow.rb:114:44:114:52 | * | | params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:114:44:114:52 | call to taint | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:1:11:1:11 | x | @@ -5558,7 +5059,6 @@ trackEnd | params_flow.rb:114:55:114:55 | :c | params_flow.rb:114:55:114:55 | :c | | params_flow.rb:114:55:114:66 | Pair | params_flow.rb:114:55:114:66 | Pair | | params_flow.rb:114:58:114:66 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:58:114:66 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:114:58:114:66 | * | params_flow.rb:114:58:114:66 | * | | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5580,51 +5080,65 @@ trackEnd | params_flow.rb:114:64:114:65 | 60 | params_flow.rb:114:64:114:65 | 60 | | params_flow.rb:116:1:116:1 | x | params_flow.rb:116:1:116:1 | x | | params_flow.rb:116:5:116:6 | Array | params_flow.rb:116:5:116:6 | Array | +| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:116:1:116:1 | x | | params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:116:1:116:6 | ... = ... | | params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:116:5:116:6 | call to [] | | params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:117:1:117:1 | x | -| params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:118:1:118:14 | *[0] | | params_flow.rb:116:5:116:6 | call to [] | params_flow.rb:118:13:118:13 | x | +| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:117:1:117:1 | [post] x | -| params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:118:1:118:14 | *[0] | | params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:118:13:118:13 | x | | params_flow.rb:117:1:117:15 | * | params_flow.rb:117:1:117:15 | * | | params_flow.rb:117:1:117:15 | call to []= | params_flow.rb:117:1:117:15 | call to []= | | params_flow.rb:117:3:117:14 | call to some_index | params_flow.rb:117:3:117:14 | call to some_index | | params_flow.rb:117:19:117:27 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:117:19:117:27 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:117:19:117:27 | * | params_flow.rb:117:19:117:27 | * | | params_flow.rb:117:19:117:27 | __synth__0 | params_flow.rb:117:19:117:27 | __synth__0 | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:10:10:10:11 | p1 | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:1:117:15 | __synth__0 | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:1:117:27 | ... | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:19:117:27 | ... = ... | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:19:117:27 | __synth__0 | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:19:117:27 | call to taint | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:10:10:10:11 | p1 | +| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:1:117:15 | __synth__0 | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:1:117:27 | ... | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:19:117:27 | ... = ... | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:19:117:27 | __synth__0 | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:19:117:27 | call to taint | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:25:117:26 | 61 | -| params_flow.rb:117:25:117:26 | 61 | params_flow.rb:118:1:118:14 | *[-1] | -| params_flow.rb:118:1:118:14 | *[0] | params_flow.rb:118:1:118:14 | *[0] | -| params_flow.rb:118:1:118:14 | *[1] | params_flow.rb:118:1:118:14 | *[1] | -| params_flow.rb:118:1:118:14 | *[2] | params_flow.rb:118:1:118:14 | *[2] | -| params_flow.rb:118:1:118:14 | *[3] | params_flow.rb:118:1:118:14 | *[3] | -| params_flow.rb:118:1:118:14 | *[4] | params_flow.rb:118:1:118:14 | *[4] | -| params_flow.rb:118:1:118:14 | *[5] | params_flow.rb:118:1:118:14 | *[5] | -| params_flow.rb:118:1:118:14 | *[6] | params_flow.rb:118:1:118:14 | *[6] | -| params_flow.rb:118:1:118:14 | *[7] | params_flow.rb:118:1:118:14 | *[7] | -| params_flow.rb:118:1:118:14 | *[8] | params_flow.rb:118:1:118:14 | *[8] | -| params_flow.rb:118:1:118:14 | *[9] | params_flow.rb:118:1:118:14 | *[9] | -| params_flow.rb:118:1:118:14 | *[10] | params_flow.rb:118:1:118:14 | *[10] | -| params_flow.rb:118:1:118:14 | *[-1] | params_flow.rb:118:1:118:14 | *[-1] | | params_flow.rb:118:1:118:14 | call to positional | params_flow.rb:118:1:118:14 | call to positional | +| params_flow.rb:118:12:118:13 | * ... | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:118:12:118:13 | * ... | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:120:1:126:3 | &block | params_flow.rb:120:1:126:3 | &block | | params_flow.rb:120:1:126:3 | destruct | params_flow.rb:120:1:126:3 | destruct | @@ -5638,14 +5152,12 @@ trackEnd | params_flow.rb:120:1:126:3 | self in destruct | params_flow.rb:123:5:123:10 | self | | params_flow.rb:120:1:126:3 | self in destruct | params_flow.rb:124:5:124:10 | self | | params_flow.rb:120:1:126:3 | self in destruct | params_flow.rb:125:5:125:10 | self | -| params_flow.rb:120:1:126:3 | synthetic *args | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:120:15:120:15 | a | params_flow.rb:120:15:120:15 | a | | params_flow.rb:120:17:120:17 | b | params_flow.rb:120:17:120:17 | b | | params_flow.rb:120:22:120:22 | c | params_flow.rb:120:22:120:22 | c | | params_flow.rb:120:25:120:25 | d | params_flow.rb:120:25:120:25 | d | | params_flow.rb:120:27:120:27 | e | params_flow.rb:120:27:120:27 | e | | params_flow.rb:121:5:121:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:121:5:121:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:121:5:121:10 | * | params_flow.rb:121:5:121:10 | * | | params_flow.rb:121:5:121:10 | call to sink | params_flow.rb:121:5:121:10 | call to sink | | params_flow.rb:121:10:121:10 | a | params_flow.rb:5:10:5:10 | x | @@ -5653,7 +5165,6 @@ trackEnd | params_flow.rb:121:10:121:10 | a | params_flow.rb:6:10:6:10 | x | | params_flow.rb:121:10:121:10 | a | params_flow.rb:121:10:121:10 | a | | params_flow.rb:122:5:122:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:122:5:122:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:122:5:122:10 | * | params_flow.rb:122:5:122:10 | * | | params_flow.rb:122:5:122:10 | call to sink | params_flow.rb:122:5:122:10 | call to sink | | params_flow.rb:122:10:122:10 | b | params_flow.rb:5:10:5:10 | x | @@ -5661,7 +5172,6 @@ trackEnd | params_flow.rb:122:10:122:10 | b | params_flow.rb:6:10:6:10 | x | | params_flow.rb:122:10:122:10 | b | params_flow.rb:122:10:122:10 | b | | params_flow.rb:123:5:123:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:123:5:123:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:123:5:123:10 | * | params_flow.rb:123:5:123:10 | * | | params_flow.rb:123:5:123:10 | call to sink | params_flow.rb:123:5:123:10 | call to sink | | params_flow.rb:123:10:123:10 | c | params_flow.rb:5:10:5:10 | x | @@ -5669,7 +5179,6 @@ trackEnd | params_flow.rb:123:10:123:10 | c | params_flow.rb:6:10:6:10 | x | | params_flow.rb:123:10:123:10 | c | params_flow.rb:123:10:123:10 | c | | params_flow.rb:124:5:124:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:124:5:124:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:124:5:124:10 | * | params_flow.rb:124:5:124:10 | * | | params_flow.rb:124:5:124:10 | call to sink | params_flow.rb:124:5:124:10 | call to sink | | params_flow.rb:124:10:124:10 | d | params_flow.rb:5:10:5:10 | x | @@ -5677,7 +5186,6 @@ trackEnd | params_flow.rb:124:10:124:10 | d | params_flow.rb:6:10:6:10 | x | | params_flow.rb:124:10:124:10 | d | params_flow.rb:124:10:124:10 | d | | params_flow.rb:125:5:125:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:125:5:125:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:125:5:125:10 | * | params_flow.rb:125:5:125:10 | * | | params_flow.rb:125:5:125:10 | call to sink | params_flow.rb:125:5:125:10 | call to sink | | params_flow.rb:125:5:125:10 | call to sink | params_flow.rb:128:1:128:61 | call to destruct | @@ -5685,14 +5193,12 @@ trackEnd | params_flow.rb:125:10:125:10 | e | params_flow.rb:5:10:5:10 | x | | params_flow.rb:125:10:125:10 | e | params_flow.rb:6:10:6:10 | x | | params_flow.rb:125:10:125:10 | e | params_flow.rb:125:10:125:10 | e | -| params_flow.rb:128:1:128:61 | * | params_flow.rb:120:1:126:3 | synthetic *args | | params_flow.rb:128:1:128:61 | * | params_flow.rb:128:1:128:61 | * | | params_flow.rb:128:1:128:61 | call to destruct | params_flow.rb:128:1:128:61 | call to destruct | | params_flow.rb:128:10:128:31 | * | params_flow.rb:128:10:128:31 | * | | params_flow.rb:128:10:128:31 | Array | params_flow.rb:128:10:128:31 | Array | | params_flow.rb:128:10:128:31 | call to [] | params_flow.rb:128:10:128:31 | call to [] | | params_flow.rb:128:11:128:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:11:128:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:11:128:19 | * | params_flow.rb:128:11:128:19 | * | | params_flow.rb:128:11:128:19 | call to taint | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:1:11:1:11 | x | @@ -5701,7 +5207,6 @@ trackEnd | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:128:17:128:18 | 62 | | params_flow.rb:128:22:128:30 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:22:128:30 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:22:128:30 | * | params_flow.rb:128:22:128:30 | * | | params_flow.rb:128:22:128:30 | call to taint | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:128:28:128:29 | 63 | params_flow.rb:1:11:1:11 | x | @@ -5713,7 +5218,6 @@ trackEnd | params_flow.rb:128:34:128:60 | Array | params_flow.rb:128:34:128:60 | Array | | params_flow.rb:128:34:128:60 | call to [] | params_flow.rb:128:34:128:60 | call to [] | | params_flow.rb:128:35:128:43 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:35:128:43 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:35:128:43 | * | params_flow.rb:128:35:128:43 | * | | params_flow.rb:128:35:128:43 | call to taint | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:128:41:128:42 | 64 | params_flow.rb:1:11:1:11 | x | @@ -5726,7 +5230,6 @@ trackEnd | params_flow.rb:128:46:128:59 | call to [] | params_flow.rb:128:46:128:59 | call to [] | | params_flow.rb:128:47:128:47 | 0 | params_flow.rb:128:47:128:47 | 0 | | params_flow.rb:128:50:128:58 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:50:128:58 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:128:50:128:58 | * | params_flow.rb:128:50:128:58 | * | | params_flow.rb:128:50:128:58 | call to taint | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:128:56:128:57 | 65 | params_flow.rb:1:11:1:11 | x | @@ -5737,52 +5240,62 @@ trackEnd | params_flow.rb:130:1:130:4 | args | params_flow.rb:130:1:130:4 | args | | params_flow.rb:130:8:130:29 | * | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:8:130:29 | Array | params_flow.rb:130:8:130:29 | Array | +| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:84:10:84:10 | t | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:130:1:130:4 | args | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:130:1:130:29 | ... = ... | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:130:8:130:29 | call to [] | -| params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:131:1:131:46 | *[0] | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:131:11:131:14 | args | | params_flow.rb:130:9:130:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:9:130:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:9:130:17 | * | params_flow.rb:130:9:130:17 | * | +| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:84:10:84:10 | t | | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:130:9:130:17 | call to taint | -| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:131:1:131:46 | *[0] | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:84:10:84:10 | t | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:130:9:130:17 | call to taint | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:130:15:130:16 | 66 | -| params_flow.rb:130:15:130:16 | 66 | params_flow.rb:131:1:131:46 | *[0] | -| params_flow.rb:130:20:130:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:20:130:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:130:20:130:28 | * | params_flow.rb:130:20:130:28 | * | +| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:85:10:85:10 | u | | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:130:20:130:28 | call to taint | -| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:131:1:131:46 | *[1] | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:85:10:85:10 | u | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:130:20:130:28 | call to taint | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:130:26:130:27 | 67 | -| params_flow.rb:130:26:130:27 | 67 | params_flow.rb:131:1:131:46 | *[1] | -| params_flow.rb:131:1:131:46 | * | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:1:131:46 | * | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:1:131:46 | * | params_flow.rb:131:1:131:46 | * | -| params_flow.rb:131:1:131:46 | *[0] | params_flow.rb:131:1:131:46 | *[0] | -| params_flow.rb:131:1:131:46 | *[1] | params_flow.rb:131:1:131:46 | *[1] | -| params_flow.rb:131:1:131:46 | *[2] | params_flow.rb:131:1:131:46 | *[2] | -| params_flow.rb:131:1:131:46 | *[3] | params_flow.rb:131:1:131:46 | *[3] | -| params_flow.rb:131:1:131:46 | *[4] | params_flow.rb:131:1:131:46 | *[4] | -| params_flow.rb:131:1:131:46 | *[5] | params_flow.rb:131:1:131:46 | *[5] | -| params_flow.rb:131:1:131:46 | *[6] | params_flow.rb:131:1:131:46 | *[6] | -| params_flow.rb:131:1:131:46 | *[7] | params_flow.rb:131:1:131:46 | *[7] | -| params_flow.rb:131:1:131:46 | *[8] | params_flow.rb:131:1:131:46 | *[8] | -| params_flow.rb:131:1:131:46 | *[9] | params_flow.rb:131:1:131:46 | *[9] | -| params_flow.rb:131:1:131:46 | *[10] | params_flow.rb:131:1:131:46 | *[10] | -| params_flow.rb:131:1:131:46 | *[-1] | params_flow.rb:131:1:131:46 | *[-1] | | params_flow.rb:131:1:131:46 | call to pos_many | params_flow.rb:131:1:131:46 | call to pos_many | +| params_flow.rb:131:10:131:14 | * ... | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:131:10:131:14 | * ... | params_flow.rb:131:10:131:14 | * ... | | params_flow.rb:131:17:131:25 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:131:17:131:25 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:131:17:131:25 | * | params_flow.rb:131:17:131:25 | * | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5838,13 +5351,11 @@ trackEnd | params_flow.rb:133:1:135:3 | self in splatall | params_flow.rb:133:1:135:3 | self in splatall | | params_flow.rb:133:1:135:3 | self in splatall | params_flow.rb:134:5:134:16 | self | | params_flow.rb:133:1:135:3 | splatall | params_flow.rb:133:1:135:3 | splatall | -| params_flow.rb:133:1:135:3 | synthetic *args | params_flow.rb:133:1:135:3 | synthetic *args | | params_flow.rb:133:14:133:18 | *args | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:133:14:133:18 | *args | params_flow.rb:133:15:133:18 | args | | params_flow.rb:133:14:133:18 | *args | params_flow.rb:134:10:134:13 | args | | params_flow.rb:133:15:133:18 | args | params_flow.rb:133:15:133:18 | args | | params_flow.rb:134:5:134:16 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:134:5:134:16 | * | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:134:5:134:16 | * | params_flow.rb:134:5:134:16 | * | | params_flow.rb:134:5:134:16 | call to sink | params_flow.rb:134:5:134:16 | call to sink | | params_flow.rb:134:5:134:16 | call to sink | params_flow.rb:137:1:137:44 | call to splatall | @@ -5854,18 +5365,6 @@ trackEnd | params_flow.rb:134:10:134:16 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:134:10:134:16 | ...[...] | params_flow.rb:134:10:134:16 | ...[...] | | params_flow.rb:134:15:134:15 | 1 | params_flow.rb:134:15:134:15 | 1 | -| params_flow.rb:137:1:137:44 | *[0] | params_flow.rb:137:1:137:44 | *[0] | -| params_flow.rb:137:1:137:44 | *[1] | params_flow.rb:137:1:137:44 | *[1] | -| params_flow.rb:137:1:137:44 | *[2] | params_flow.rb:137:1:137:44 | *[2] | -| params_flow.rb:137:1:137:44 | *[3] | params_flow.rb:137:1:137:44 | *[3] | -| params_flow.rb:137:1:137:44 | *[4] | params_flow.rb:137:1:137:44 | *[4] | -| params_flow.rb:137:1:137:44 | *[5] | params_flow.rb:137:1:137:44 | *[5] | -| params_flow.rb:137:1:137:44 | *[6] | params_flow.rb:137:1:137:44 | *[6] | -| params_flow.rb:137:1:137:44 | *[7] | params_flow.rb:137:1:137:44 | *[7] | -| params_flow.rb:137:1:137:44 | *[8] | params_flow.rb:137:1:137:44 | *[8] | -| params_flow.rb:137:1:137:44 | *[9] | params_flow.rb:137:1:137:44 | *[9] | -| params_flow.rb:137:1:137:44 | *[10] | params_flow.rb:137:1:137:44 | *[10] | -| params_flow.rb:137:1:137:44 | *[-1] | params_flow.rb:137:1:137:44 | *[-1] | | params_flow.rb:137:1:137:44 | call to splatall | params_flow.rb:137:1:137:44 | call to splatall | | params_flow.rb:137:10:137:43 | * ... | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:137:10:137:43 | * ... | params_flow.rb:133:15:133:18 | args | @@ -5873,27 +5372,21 @@ trackEnd | params_flow.rb:137:10:137:43 | * ... | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:137:11:137:43 | * | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:11:137:43 | Array | params_flow.rb:137:11:137:43 | Array | -| params_flow.rb:137:11:137:43 | call to [] | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:11:137:43 | call to [] | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:12:137:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:12:137:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:12:137:20 | * | params_flow.rb:137:12:137:20 | * | -| params_flow.rb:137:12:137:20 | call to taint | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:12:137:20 | call to taint | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:137:18:137:19 | 69 | params_flow.rb:137:1:137:44 | *[0] | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:137:18:137:19 | 69 | | params_flow.rb:137:23:137:31 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:23:137:31 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:23:137:31 | * | params_flow.rb:137:23:137:31 | * | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:1:137:44 | *[1] | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:1:11:1:11 | x | @@ -5902,18 +5395,14 @@ trackEnd | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:6:10:6:10 | x | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:137:29:137:30 | 70 | params_flow.rb:137:1:137:44 | *[1] | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:137:29:137:30 | 70 | | params_flow.rb:137:34:137:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:34:137:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:137:34:137:42 | * | params_flow.rb:137:34:137:42 | * | -| params_flow.rb:137:34:137:42 | call to taint | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:137:34:137:42 | call to taint | params_flow.rb:137:34:137:42 | call to taint | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:137:40:137:41 | 71 | params_flow.rb:137:1:137:44 | *[2] | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:137:34:137:42 | call to taint | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:137:40:137:41 | 71 | forwardButNoBackwardFlow diff --git a/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected index 9d6d22de5cb..a2f209fc59d 100644 --- a/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected @@ -8,7 +8,6 @@ track | type_tracker.rb:2:5:5:7 | self in field= | type tracker with call steps | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:2:5:5:7 | self in field= | type tracker without call steps | type_tracker.rb:2:5:5:7 | self in field= | | type_tracker.rb:2:5:5:7 | synthetic *args | type tracker without call steps | type_tracker.rb:2:5:5:7 | synthetic *args | -| type_tracker.rb:2:5:5:7 | synthetic *args | type tracker without call steps | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:3:14:3:23 | call to field | @@ -25,7 +24,6 @@ track | type_tracker.rb:7:5:9:7 | &block | type tracker without call steps | type_tracker.rb:7:5:9:7 | &block | | type_tracker.rb:7:5:9:7 | field | type tracker without call steps | type_tracker.rb:7:5:9:7 | field | | type_tracker.rb:7:5:9:7 | self in field | type tracker without call steps | type_tracker.rb:7:5:9:7 | self in field | -| type_tracker.rb:7:5:9:7 | synthetic *args | type tracker without call steps | type_tracker.rb:7:5:9:7 | synthetic *args | | type_tracker.rb:8:9:8:14 | @field | type tracker without call steps | type_tracker.rb:3:14:3:23 | call to field | | type_tracker.rb:8:9:8:14 | @field | type tracker without call steps | type_tracker.rb:8:9:8:14 | @field | | type_tracker.rb:8:9:8:14 | @field | type tracker without call steps | type_tracker.rb:15:10:15:18 | call to field | @@ -34,7 +32,6 @@ track | type_tracker.rb:12:1:16:3 | &block | type tracker without call steps | type_tracker.rb:12:1:16:3 | &block | | type_tracker.rb:12:1:16:3 | m | type tracker without call steps | type_tracker.rb:12:1:16:3 | m | | type_tracker.rb:12:1:16:3 | self in m | type tracker without call steps | type_tracker.rb:12:1:16:3 | self in m | -| type_tracker.rb:12:1:16:3 | synthetic *args | type tracker without call steps | type_tracker.rb:12:1:16:3 | synthetic *args | | type_tracker.rb:13:5:13:7 | var | type tracker without call steps | type_tracker.rb:13:5:13:7 | var | | type_tracker.rb:13:11:13:19 | Container | type tracker without call steps | type_tracker.rb:13:11:13:19 | Container | | type_tracker.rb:13:11:13:23 | call to new | type tracker with call steps | type_tracker.rb:2:5:5:7 | self in field= | @@ -43,14 +40,12 @@ track | type_tracker.rb:14:5:14:7 | [post] var | type tracker with call steps | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:14:5:14:7 | [post] var | type tracker without call steps | type_tracker.rb:14:5:14:7 | [post] var | | type_tracker.rb:14:5:14:13 | * | type tracker with call steps | type_tracker.rb:2:5:5:7 | synthetic *args | -| type_tracker.rb:14:5:14:13 | * | type tracker with call steps | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:14:5:14:13 | * | type tracker without call steps | type_tracker.rb:14:5:14:13 | * | | type_tracker.rb:14:5:14:13 | call to field= | type tracker without call steps | type_tracker.rb:14:5:14:13 | call to field= | | type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps | type_tracker.rb:8:9:8:14 | @field | | type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps with content attribute field | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps with content element 0 | type_tracker.rb:2:5:5:7 | synthetic *args | -| type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps with content element 0 | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps | type_tracker.rb:14:5:14:13 | call to field= | | type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps | type_tracker.rb:14:17:14:23 | "hello" | | type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps | type_tracker.rb:15:10:15:18 | call to field | @@ -66,7 +61,6 @@ track | type_tracker.rb:18:1:21:3 | positional | type tracker without call steps | type_tracker.rb:18:1:21:3 | positional | | type_tracker.rb:18:1:21:3 | self in positional | type tracker without call steps | type_tracker.rb:18:1:21:3 | self in positional | | type_tracker.rb:18:1:21:3 | synthetic *args | type tracker without call steps | type_tracker.rb:18:1:21:3 | synthetic *args | -| type_tracker.rb:18:1:21:3 | synthetic *args | type tracker without call steps | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps with content element 0 | type_tracker.rb:19:5:19:11 | * | @@ -79,26 +73,22 @@ track | type_tracker.rb:20:5:20:11 | call to puts | type tracker without call steps | type_tracker.rb:20:5:20:11 | call to puts | | type_tracker.rb:20:5:20:11 | call to puts | type tracker without call steps | type_tracker.rb:23:1:23:16 | call to positional | | type_tracker.rb:23:1:23:16 | * | type tracker with call steps | type_tracker.rb:18:1:21:3 | synthetic *args | -| type_tracker.rb:23:1:23:16 | * | type tracker with call steps | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:23:1:23:16 | * | type tracker without call steps | type_tracker.rb:23:1:23:16 | * | | type_tracker.rb:23:1:23:16 | call to positional | type tracker without call steps | type_tracker.rb:23:1:23:16 | call to positional | | type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps with content element 0 | type_tracker.rb:18:1:21:3 | synthetic *args | -| type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps with content element 0 | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps with content element 0 | type_tracker.rb:19:5:19:11 | * | | type_tracker.rb:23:12:23:12 | 1 | type tracker without call steps | type_tracker.rb:23:12:23:12 | 1 | | type_tracker.rb:23:12:23:12 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:23:1:23:16 | * | | type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps | type_tracker.rb:18:20:18:21 | p2 | | type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps with content element 0 | type_tracker.rb:20:5:20:11 | * | | type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps with content element 1 | type_tracker.rb:18:1:21:3 | synthetic *args | -| type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps with content element 1 | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:23:15:23:15 | 2 | type tracker without call steps | type_tracker.rb:23:15:23:15 | 2 | | type_tracker.rb:23:15:23:15 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:23:1:23:16 | * | | type_tracker.rb:25:1:28:3 | &block | type tracker without call steps | type_tracker.rb:25:1:28:3 | &block | | type_tracker.rb:25:1:28:3 | **kwargs | type tracker without call steps | type_tracker.rb:25:1:28:3 | **kwargs | | type_tracker.rb:25:1:28:3 | keyword | type tracker without call steps | type_tracker.rb:25:1:28:3 | keyword | | type_tracker.rb:25:1:28:3 | self in keyword | type tracker without call steps | type_tracker.rb:25:1:28:3 | self in keyword | -| type_tracker.rb:25:1:28:3 | synthetic *args | type tracker without call steps | type_tracker.rb:25:1:28:3 | synthetic *args | | type_tracker.rb:25:13:25:14 | p1 | type tracker without call steps | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type tracker without call steps | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type tracker without call steps with content element 0 | type_tracker.rb:26:5:26:11 | * | @@ -166,7 +156,6 @@ track | type_tracker.rb:34:1:53:3 | &block | type tracker without call steps | type_tracker.rb:34:1:53:3 | &block | | type_tracker.rb:34:1:53:3 | self in throughArray | type tracker without call steps | type_tracker.rb:34:1:53:3 | self in throughArray | | type_tracker.rb:34:1:53:3 | synthetic *args | type tracker without call steps | type_tracker.rb:34:1:53:3 | synthetic *args | -| type_tracker.rb:34:1:53:3 | synthetic *args | type tracker without call steps | type_tracker.rb:34:1:53:3 | synthetic *args | | type_tracker.rb:34:1:53:3 | throughArray | type tracker without call steps | type_tracker.rb:34:1:53:3 | throughArray | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:34:18:34:20 | obj | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:34:18:34:20 | obj | @@ -374,7 +363,6 @@ trackEnd | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:8:9:8:14 | self | | type_tracker.rb:2:5:5:7 | synthetic *args | type_tracker.rb:2:5:5:7 | synthetic *args | -| type_tracker.rb:2:5:5:7 | synthetic *args | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | @@ -394,7 +382,6 @@ trackEnd | type_tracker.rb:7:5:9:7 | self in field | type_tracker.rb:7:5:9:7 | self (field) | | type_tracker.rb:7:5:9:7 | self in field | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:7:5:9:7 | self in field | type_tracker.rb:8:9:8:14 | self | -| type_tracker.rb:7:5:9:7 | synthetic *args | type_tracker.rb:7:5:9:7 | synthetic *args | | type_tracker.rb:8:9:8:14 | @field | type_tracker.rb:3:14:3:23 | call to field | | type_tracker.rb:8:9:8:14 | @field | type_tracker.rb:8:9:8:14 | @field | | type_tracker.rb:8:9:8:14 | @field | type_tracker.rb:15:10:15:18 | call to field | @@ -403,7 +390,6 @@ trackEnd | type_tracker.rb:12:1:16:3 | self in m | type_tracker.rb:12:1:16:3 | self (m) | | type_tracker.rb:12:1:16:3 | self in m | type_tracker.rb:12:1:16:3 | self in m | | type_tracker.rb:12:1:16:3 | self in m | type_tracker.rb:15:5:15:18 | self | -| type_tracker.rb:12:1:16:3 | synthetic *args | type_tracker.rb:12:1:16:3 | synthetic *args | | type_tracker.rb:13:5:13:7 | var | type_tracker.rb:13:5:13:7 | var | | type_tracker.rb:13:11:13:19 | Container | type_tracker.rb:13:11:13:19 | Container | | type_tracker.rb:13:11:13:23 | call to new | type_tracker.rb:2:5:5:7 | self (field=) | @@ -425,7 +411,6 @@ trackEnd | type_tracker.rb:14:5:14:7 | [post] var | type_tracker.rb:14:5:14:7 | [post] var | | type_tracker.rb:14:5:14:7 | [post] var | type_tracker.rb:15:10:15:12 | var | | type_tracker.rb:14:5:14:13 | * | type_tracker.rb:2:5:5:7 | synthetic *args | -| type_tracker.rb:14:5:14:13 | * | type_tracker.rb:2:5:5:7 | synthetic *args | | type_tracker.rb:14:5:14:13 | * | type_tracker.rb:14:5:14:13 | * | | type_tracker.rb:14:5:14:13 | call to field= | type_tracker.rb:14:5:14:13 | call to field= | | type_tracker.rb:14:17:14:23 | "hello" | type_tracker.rb:2:16:2:18 | val | @@ -451,7 +436,6 @@ trackEnd | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:19:5:19:11 | self | | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:20:5:20:11 | self | | type_tracker.rb:18:1:21:3 | synthetic *args | type_tracker.rb:18:1:21:3 | synthetic *args | -| type_tracker.rb:18:1:21:3 | synthetic *args | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | @@ -466,7 +450,6 @@ trackEnd | type_tracker.rb:20:5:20:11 | call to puts | type_tracker.rb:20:5:20:11 | call to puts | | type_tracker.rb:20:5:20:11 | call to puts | type_tracker.rb:23:1:23:16 | call to positional | | type_tracker.rb:23:1:23:16 | * | type_tracker.rb:18:1:21:3 | synthetic *args | -| type_tracker.rb:23:1:23:16 | * | type_tracker.rb:18:1:21:3 | synthetic *args | | type_tracker.rb:23:1:23:16 | * | type_tracker.rb:23:1:23:16 | * | | type_tracker.rb:23:1:23:16 | call to positional | type_tracker.rb:23:1:23:16 | call to positional | | type_tracker.rb:23:12:23:12 | 1 | type_tracker.rb:18:16:18:17 | p1 | @@ -484,7 +467,6 @@ trackEnd | type_tracker.rb:25:1:28:3 | self in keyword | type_tracker.rb:25:1:28:3 | self in keyword | | type_tracker.rb:25:1:28:3 | self in keyword | type_tracker.rb:26:5:26:11 | self | | type_tracker.rb:25:1:28:3 | self in keyword | type_tracker.rb:27:5:27:11 | self | -| type_tracker.rb:25:1:28:3 | synthetic *args | type_tracker.rb:25:1:28:3 | synthetic *args | | type_tracker.rb:25:13:25:14 | p1 | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type_tracker.rb:25:13:25:14 | p1 | @@ -548,7 +530,6 @@ trackEnd | type_tracker.rb:34:1:53:3 | &block | type_tracker.rb:34:1:53:3 | &block | | type_tracker.rb:34:1:53:3 | self in throughArray | type_tracker.rb:34:1:53:3 | self in throughArray | | type_tracker.rb:34:1:53:3 | synthetic *args | type_tracker.rb:34:1:53:3 | synthetic *args | -| type_tracker.rb:34:1:53:3 | synthetic *args | type_tracker.rb:34:1:53:3 | synthetic *args | | type_tracker.rb:34:1:53:3 | throughArray | type_tracker.rb:34:1:53:3 | throughArray | | type_tracker.rb:34:18:34:20 | obj | type_tracker.rb:34:18:34:20 | obj | | type_tracker.rb:34:18:34:20 | obj | type_tracker.rb:34:18:34:20 | obj | From bf51cbad884d71f6a8efae2ed12c2446f195240e Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Fri, 8 Sep 2023 13:22:02 +0100 Subject: [PATCH 399/788] Ruby: Update test fixture --- ruby/ql/test/library-tests/dataflow/params/params-flow.expected | 1 - 1 file changed, 1 deletion(-) diff --git a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected index 2fb96ccabb6..fddb517eee9 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected @@ -1,5 +1,4 @@ testFailures -failures edges | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:9:20:9:21 | p2 | params_flow.rb:11:10:11:11 | p2 | From 97ed5b8afb9932e2c97f6b1580adc379ee3e62de Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 13 Sep 2023 20:38:09 +0200 Subject: [PATCH 400/788] Ruby: Improvments to splat flow - Only step through a `SynthSplatParameterElementNode` when there is a splat parameter at index > 0. - Model read+stores via `SynthSplatArgumentElementNode` as a single read-store step in type tracking. --- .../dataflow/internal/DataFlowPrivate.qll | 56 +- .../ruby/typetracking/TypeTrackerSpecific.qll | 5 + .../dataflow/params/TypeTracker.expected | 621 +++++++++++------- 3 files changed, 419 insertions(+), 263 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 82e9215dd77..29fbc932852 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -454,7 +454,7 @@ private module Cached { } or TSynthSplatParameterElementNode(DataFlowCallable c, int n) { exists(c.asCallable()) and // exclude library callables - isParameterNode(_, c, any(ParameterPosition p | p.isSplat(_))) and + isParameterNode(_, c, any(ParameterPosition p | p.isSplat(any(int i | i > 0)))) and n in [0 .. 10] } or TExprPostUpdateNode(CfgNodes::ExprCfgNode n) { @@ -1214,7 +1214,7 @@ module ArgumentNodes { * part of the method signature, such that those cannot end up in the hash-splat * parameter. */ - class SynthHashSplatArgumentNode extends ArgumentNode, TSynthHashSplatArgumentNode { + class SynthHashSplatArgumentNode extends ArgumentNode, NodeImpl, TSynthHashSplatArgumentNode { CfgNodes::ExprNodes::CallCfgNode c; SynthHashSplatArgumentNode() { this = TSynthHashSplatArgumentNode(c) } @@ -1227,12 +1227,6 @@ module ArgumentNodes { call = c and pos.isHashSplat() } - } - - private class SynthHashSplatArgumentNodeImpl extends NodeImpl, TSynthHashSplatArgumentNode { - CfgNodes::ExprNodes::CallCfgNode c; - - SynthHashSplatArgumentNodeImpl() { this = TSynthHashSplatArgumentNode(c) } override CfgScope getCfgScope() { result = c.getExpr().getCfgScope() } @@ -1541,6 +1535,23 @@ predicate storeStepCommon(Node node1, ContentSet c, Node node2) { ) } +// Store from TSynthSplatArgumentElementNode(n) +// into TSynthSplatArgumentNode[n] +predicate synthSplatArgumentElementStoreStep( + SynthSplatArgumentElementNode node1, ContentSet c, SynthSplatArgumentNode node2 +) { + exists(CfgNodes::ExprNodes::CallCfgNode call, int n | + node2 = TSynthSplatArgumentNode(call) and + node1 = TSynthSplatArgumentElementNode(call, n) and + ( + c = getPositionalContent(n) + or + n = -1 and + c.isSingleton(TUnknownElementContent()) + ) + ) +} + /** * Holds if data can flow from `node1` to `node2` via an assignment to * content `c`. @@ -1578,18 +1589,7 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { c = getPositionalContent(elemNode.getStorePosition() - splatPos) ) or - // Store from TSynthSplatArgumentElementNode(n) - // into TSynthSplatArgumentNode[n] - exists(CfgNodes::ExprNodes::CallCfgNode call, int n | - node2 = TSynthSplatArgumentNode(call) and - node1 = TSynthSplatArgumentElementNode(call, n) and - ( - c = getPositionalContent(n) - or - n = -1 and - c.isSingleton(TUnknownElementContent()) - ) - ) + synthSplatArgumentElementStoreStep(node1, c, node2) or storeStepCommon(node1, c, node2) or @@ -1604,19 +1604,6 @@ predicate readStepCommon(Node node1, ContentSet c, Node node2) { node2 = node1.(SynthHashSplatParameterNode).getAKeywordParameter(c) or node2 = node1.(SynthSplatParameterNode).getAParameter(c) - or - // TODO: convert into the above form - synthSplatArgumentElementReadStep(node1, c, node2) - or - // read from SynthSplatParameterNode[n] to nth positional parameter - exists(SynthSplatParameterNode paramNode, NormalParameterNode posNode, int n | - paramNode = node1 and - posNode = node2 and - posNode - .isParameterOf(paramNode.getEnclosingCallable(), - any(ParameterPosition p | p.isPositional(n))) and - c = getPositionalContent(n) - ) } // read from splat arg to synth splat arg element @@ -1678,6 +1665,9 @@ predicate readStep(Node node1, ContentSet c, Node node2) { c = getPositionalContent(e.getReadPosition()) ) or + // TODO: convert into the above form + synthSplatArgumentElementReadStep(node1, c, node2) + or readStepCommon(node1, c, node2) } diff --git a/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll index ac1debd86a9..6e438c5efa1 100644 --- a/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll @@ -339,6 +339,11 @@ predicate readStoreStepIntoSourceNode( nodeTo = mid.getSplatParameterNode(_) and storeContent = DataFlowPrivate::getPositionalContent(mid.getStorePosition()) ) + or + exists(DataFlowPrivate::SynthSplatArgumentElementNode mid | + DataFlowPrivate::synthSplatArgumentElementReadStep(nodeFrom, loadContent, mid) and + DataFlowPrivate::synthSplatArgumentElementStoreStep(mid, storeContent, nodeTo) + ) } /** diff --git a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected index 448682de267..e5b06c97332 100644 --- a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected @@ -36,7 +36,10 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:20:83:20 | v | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:83:29:83:29 | y | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:98:19:98:19 | a | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:108:37:108:37 | a | @@ -69,7 +72,10 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | @@ -98,11 +104,14 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :c | params_flow.rb:108:1:112:3 | **kwargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | **kwargs | @@ -132,14 +141,12 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:40:16:40:24 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:41:13:41:21 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:46:20:46:28 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:60:20:60:28 | call to taint | @@ -153,26 +160,15 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:1:81:37 | *[3] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:81:28:81:36 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:1:94:48 | *[4] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:94:39:94:47 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | @@ -180,8 +176,6 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:68:96:76 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:96:79:96:87 | call to taint | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | @@ -252,15 +246,19 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:14:1:14:30 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:44:1:44:28 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:55:1:55:29 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:58:1:58:25 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:105:1:105:49 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:114:1:114:67 | * | @@ -292,7 +290,10 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:105:1:105:49 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:106:1:106:46 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | @@ -305,6 +306,7 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:78:1:78:63 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | @@ -313,7 +315,10 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 4 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 4 | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 4 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 5 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :c | params_flow.rb:114:1:114:67 | ** | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:21:1:21:35 | ** | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:22:1:22:35 | ** | @@ -1045,38 +1050,45 @@ track | params_flow.rb:43:1:43:4 | args | type tracker without call steps | params_flow.rb:43:1:43:4 | args | | params_flow.rb:43:8:43:18 | * | type tracker without call steps | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:8:43:18 | Array | type tracker without call steps | params_flow.rb:43:8:43:18 | Array | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps | params_flow.rb:43:8:43:18 | call to [] | -| params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | +| params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:44:1:44:28 | * | | params_flow.rb:43:9:43:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:43:9:43:17 | * | type tracker without call steps | params_flow.rb:43:9:43:17 | * | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | -| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:43:8:43:18 | call to [] | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | +| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:44:1:44:28 | * | | params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:43:15:43:16 | 17 | -| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 | params_flow.rb:43:9:43:17 | * | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 or unknown | params_flow.rb:43:8:43:18 | call to [] | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | +| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 1 | params_flow.rb:44:1:44:28 | * | | params_flow.rb:44:1:44:28 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:1:44:28 | * | type tracker without call steps | params_flow.rb:44:1:44:28 | * | -| params_flow.rb:44:1:44:28 | *[1] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[1] | -| params_flow.rb:44:1:44:28 | *[2] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[2] | -| params_flow.rb:44:1:44:28 | *[3] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[3] | -| params_flow.rb:44:1:44:28 | *[4] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[4] | -| params_flow.rb:44:1:44:28 | *[5] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[5] | -| params_flow.rb:44:1:44:28 | *[6] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[6] | -| params_flow.rb:44:1:44:28 | *[7] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[7] | -| params_flow.rb:44:1:44:28 | *[8] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[8] | -| params_flow.rb:44:1:44:28 | *[9] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[9] | -| params_flow.rb:44:1:44:28 | *[10] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[10] | -| params_flow.rb:44:1:44:28 | *[-1] | type tracker without call steps | params_flow.rb:44:1:44:28 | *[-1] | | params_flow.rb:44:1:44:28 | call to positional | type tracker without call steps | params_flow.rb:44:1:44:28 | call to positional | | params_flow.rb:44:12:44:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:44:12:44:20 | * | type tracker without call steps | params_flow.rb:44:12:44:20 | * | @@ -1268,54 +1280,55 @@ track | params_flow.rb:57:8:57:18 | Array | type tracker without call steps | params_flow.rb:57:8:57:18 | Array | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps | params_flow.rb:57:8:57:18 | call to [] | -| params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | +| params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:58:1:58:25 | * | | params_flow.rb:57:9:57:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:57:9:57:17 | * | type tracker without call steps | params_flow.rb:57:9:57:17 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | -| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | * | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:57:8:57:18 | call to [] | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | +| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:58:1:58:25 | * | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps | params_flow.rb:57:15:57:16 | 22 | -| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | * | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 | params_flow.rb:57:9:57:17 | * | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 or unknown | params_flow.rb:57:8:57:18 | call to [] | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | +| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 1 | params_flow.rb:58:1:58:25 | * | | params_flow.rb:58:1:58:25 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:58:1:58:25 | * | type tracker without call steps | params_flow.rb:58:1:58:25 | * | -| params_flow.rb:58:1:58:25 | *[1] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[1] | -| params_flow.rb:58:1:58:25 | *[2] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[2] | -| params_flow.rb:58:1:58:25 | *[3] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[3] | -| params_flow.rb:58:1:58:25 | *[4] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[4] | -| params_flow.rb:58:1:58:25 | *[5] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[5] | -| params_flow.rb:58:1:58:25 | *[6] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[6] | -| params_flow.rb:58:1:58:25 | *[7] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[7] | -| params_flow.rb:58:1:58:25 | *[8] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[8] | -| params_flow.rb:58:1:58:25 | *[9] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[9] | -| params_flow.rb:58:1:58:25 | *[10] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[10] | -| params_flow.rb:58:1:58:25 | *[-1] | type tracker without call steps | params_flow.rb:58:1:58:25 | *[-1] | | params_flow.rb:58:1:58:25 | call to posargs | type tracker without call steps | params_flow.rb:58:1:58:25 | call to posargs | | params_flow.rb:58:9:58:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:58:9:58:17 | * | type tracker without call steps | params_flow.rb:58:9:58:17 | * | @@ -1642,86 +1655,119 @@ track | params_flow.rb:80:1:80:4 | args | type tracker without call steps | params_flow.rb:80:1:80:4 | args | | params_flow.rb:80:8:80:51 | * | type tracker without call steps | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:8:80:51 | Array | type tracker without call steps | params_flow.rb:80:8:80:51 | Array | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:80:9:80:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:9:80:17 | * | type tracker without call steps | params_flow.rb:80:9:80:17 | * | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps | params_flow.rb:80:9:80:17 | call to taint | -| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:69:17:69:17 | y | | params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:80:15:80:16 | 33 | -| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 | params_flow.rb:80:9:80:17 | * | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 1 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:80:20:80:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:20:80:28 | * | type tracker without call steps | params_flow.rb:80:20:80:28 | * | +| params_flow.rb:80:20:80:28 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | -| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:80:26:80:27 | 34 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:80:26:80:27 | 34 | -| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 0 | params_flow.rb:80:20:80:28 | * | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:80:31:80:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:31:80:39 | * | type tracker without call steps | params_flow.rb:80:31:80:39 | * | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | -| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[3] | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:80:37:80:38 | 35 | -| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[3] | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 0 | params_flow.rb:80:31:80:39 | * | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 3 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:80:42:80:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:42:80:50 | * | type tracker without call steps | params_flow.rb:80:42:80:50 | * | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | -| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:80:48:80:49 | 36 | -| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 0 | params_flow.rb:80:42:80:50 | * | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 or unknown | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 4 | params_flow.rb:81:1:81:37 | * | | params_flow.rb:81:1:81:37 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:1:81:37 | * | type tracker without call steps | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:81:1:81:37 | *[1] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[1] | -| params_flow.rb:81:1:81:37 | *[2] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[2] | -| params_flow.rb:81:1:81:37 | *[3] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[3] | -| params_flow.rb:81:1:81:37 | *[4] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[4] | -| params_flow.rb:81:1:81:37 | *[5] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[5] | -| params_flow.rb:81:1:81:37 | *[6] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[6] | -| params_flow.rb:81:1:81:37 | *[7] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[7] | -| params_flow.rb:81:1:81:37 | *[8] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[8] | -| params_flow.rb:81:1:81:37 | *[9] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[9] | -| params_flow.rb:81:1:81:37 | *[10] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[10] | -| params_flow.rb:81:1:81:37 | *[-1] | type tracker without call steps | params_flow.rb:81:1:81:37 | *[-1] | | params_flow.rb:81:1:81:37 | call to splatmid | type tracker without call steps | params_flow.rb:81:1:81:37 | call to splatmid | | params_flow.rb:81:10:81:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:81:10:81:18 | * | type tracker without call steps | params_flow.rb:81:10:81:18 | * | @@ -1831,85 +1877,129 @@ track | params_flow.rb:93:1:93:4 | args | type tracker without call steps | params_flow.rb:93:1:93:4 | args | | params_flow.rb:93:8:93:51 | * | type tracker without call steps | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:8:93:51 | Array | type tracker without call steps | params_flow.rb:93:8:93:51 | Array | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps with content element 2 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:93:9:93:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:9:93:17 | * | type tracker without call steps | params_flow.rb:93:9:93:17 | * | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | -| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:83:20:83:20 | v | | params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:93:15:93:16 | 40 | -| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 | params_flow.rb:93:9:93:17 | * | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 2 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:93:20:93:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:20:93:28 | * | type tracker without call steps | params_flow.rb:93:20:93:28 | * | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | -| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:83:23:83:23 | w | | params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:93:26:93:27 | 41 | -| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 0 | params_flow.rb:93:20:93:28 | * | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:93:31:93:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:31:93:39 | * | type tracker without call steps | params_flow.rb:93:31:93:39 | * | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | -| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[4] | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:83:26:83:26 | x | | params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:93:37:93:38 | 42 | -| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[4] | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 0 | params_flow.rb:93:31:93:39 | * | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 4 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:93:42:93:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:42:93:50 | * | type tracker without call steps | params_flow.rb:93:42:93:50 | * | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | -| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 5 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:83:29:83:29 | y | | params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:93:48:93:49 | 43 | -| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 0 | params_flow.rb:93:42:93:50 | * | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 5 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:1:94:48 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:1:94:48 | * | type tracker without call steps | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:94:1:94:48 | *[2] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[2] | -| params_flow.rb:94:1:94:48 | *[3] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[3] | -| params_flow.rb:94:1:94:48 | *[4] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[4] | -| params_flow.rb:94:1:94:48 | *[5] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[5] | -| params_flow.rb:94:1:94:48 | *[6] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[6] | -| params_flow.rb:94:1:94:48 | *[7] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[7] | -| params_flow.rb:94:1:94:48 | *[8] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[8] | -| params_flow.rb:94:1:94:48 | *[9] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[9] | -| params_flow.rb:94:1:94:48 | *[10] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[10] | -| params_flow.rb:94:1:94:48 | *[-1] | type tracker without call steps | params_flow.rb:94:1:94:48 | *[-1] | | params_flow.rb:94:1:94:48 | call to pos_many | type tracker without call steps | params_flow.rb:94:1:94:48 | call to pos_many | | params_flow.rb:94:10:94:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:10:94:18 | * | type tracker without call steps | params_flow.rb:94:10:94:18 | * | @@ -1980,16 +2070,6 @@ track | params_flow.rb:94:45:94:46 | 44 | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | | params_flow.rb:96:1:96:88 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:1:96:88 | * | type tracker without call steps | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:96:1:96:88 | *[2] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | -| params_flow.rb:96:1:96:88 | *[3] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | -| params_flow.rb:96:1:96:88 | *[4] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[4] | -| params_flow.rb:96:1:96:88 | *[5] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[5] | -| params_flow.rb:96:1:96:88 | *[6] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[6] | -| params_flow.rb:96:1:96:88 | *[7] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[7] | -| params_flow.rb:96:1:96:88 | *[8] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[8] | -| params_flow.rb:96:1:96:88 | *[9] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[9] | -| params_flow.rb:96:1:96:88 | *[10] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[10] | -| params_flow.rb:96:1:96:88 | *[-1] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[-1] | | params_flow.rb:96:1:96:88 | call to splatmid | type tracker without call steps | params_flow.rb:96:1:96:88 | call to splatmid | | params_flow.rb:96:10:96:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:10:96:18 | * | type tracker without call steps | params_flow.rb:96:10:96:18 | * | @@ -2038,57 +2118,84 @@ track | params_flow.rb:96:32:96:65 | * ... | type tracker without call steps | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:33:96:65 | * | type tracker without call steps | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:33:96:65 | Array | type tracker without call steps | params_flow.rb:96:33:96:65 | Array | -| params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | +| params_flow.rb:96:33:96:65 | call to [] | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps with content element 2 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:34:96:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:34:96:42 | * | type tracker without call steps | params_flow.rb:96:34:96:42 | * | -| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | +| params_flow.rb:96:34:96:42 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:40:96:41 | 47 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:1:96:88 | *[2] | +| params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:40:96:41 | 47 | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 | params_flow.rb:96:34:96:42 | * | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 2 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:45:96:53 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:45:96:53 | * | type tracker without call steps | params_flow.rb:96:45:96:53 | * | -| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:1:96:88 | *[3] | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:51:96:52 | 48 | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 0 | params_flow.rb:96:45:96:53 | * | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:56:96:64 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:56:96:64 | * | type tracker without call steps | params_flow.rb:96:56:96:64 | * | -| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps | params_flow.rb:96:1:96:88 | *[4] | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:1:96:88 | *[4] | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:62:96:63 | 49 | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 0 | params_flow.rb:96:56:96:64 | * | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:68:96:76 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:68:96:76 | * | type tracker without call steps | params_flow.rb:96:68:96:76 | * | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | @@ -2184,17 +2291,6 @@ track | params_flow.rb:102:5:102:10 | call to sink | type tracker without call steps | params_flow.rb:106:1:106:46 | call to splatmidsmall | | params_flow.rb:105:1:105:49 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:1:105:49 | * | type tracker without call steps | params_flow.rb:105:1:105:49 | * | -| params_flow.rb:105:1:105:49 | *[1] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | -| params_flow.rb:105:1:105:49 | *[2] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | -| params_flow.rb:105:1:105:49 | *[3] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[3] | -| params_flow.rb:105:1:105:49 | *[4] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[4] | -| params_flow.rb:105:1:105:49 | *[5] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[5] | -| params_flow.rb:105:1:105:49 | *[6] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[6] | -| params_flow.rb:105:1:105:49 | *[7] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[7] | -| params_flow.rb:105:1:105:49 | *[8] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[8] | -| params_flow.rb:105:1:105:49 | *[9] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[9] | -| params_flow.rb:105:1:105:49 | *[10] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[10] | -| params_flow.rb:105:1:105:49 | *[-1] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[-1] | | params_flow.rb:105:1:105:49 | call to splatmidsmall | type tracker without call steps | params_flow.rb:105:1:105:49 | call to splatmidsmall | | params_flow.rb:105:15:105:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:15:105:23 | * | type tracker without call steps | params_flow.rb:105:15:105:23 | * | @@ -2221,41 +2317,56 @@ track | params_flow.rb:105:26:105:48 | * ... | type tracker without call steps | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:27:105:48 | * | type tracker without call steps | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:27:105:48 | Array | type tracker without call steps | params_flow.rb:105:27:105:48 | Array | -| params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | +| params_flow.rb:105:27:105:48 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | +| params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:105:1:105:49 | * | | params_flow.rb:105:28:105:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:28:105:36 | * | type tracker without call steps | params_flow.rb:105:28:105:36 | * | -| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | +| params_flow.rb:105:28:105:36 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:105:1:105:49 | * | | params_flow.rb:105:34:105:35 | 53 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:1:105:49 | *[1] | +| params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:34:105:35 | 53 | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 | params_flow.rb:105:28:105:36 | * | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 1 | params_flow.rb:105:1:105:49 | * | | params_flow.rb:105:39:105:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:39:105:47 | * | type tracker without call steps | params_flow.rb:105:39:105:47 | * | -| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:105:1:105:49 | * | | params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:1:105:49 | *[2] | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:45:105:46 | 54 | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 0 | params_flow.rb:105:39:105:47 | * | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 2 | params_flow.rb:105:1:105:49 | * | | params_flow.rb:106:1:106:46 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:106:1:106:46 | * | type tracker without call steps | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:1:106:46 | call to splatmidsmall | type tracker without call steps | params_flow.rb:106:1:106:46 | call to splatmidsmall | @@ -3020,7 +3131,6 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:40:16:40:24 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:41:13:41:21 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:43:9:43:17 | call to taint | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:46:20:46:28 | call to taint | @@ -3034,7 +3144,6 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:57:9:57:17 | call to taint | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:60:20:60:28 | call to taint | @@ -3064,35 +3173,33 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:80:42:80:50 | call to taint | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:81:1:81:37 | *[1] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:81:1:81:37 | *[2] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:81:1:81:37 | *[3] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:81:28:81:36 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:14:83:14 | t | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:14:83:14 | t | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:17:83:17 | u | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:17:83:17 | u | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:20:83:20 | v | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:23:83:23 | w | | params_flow.rb:1:11:1:11 | x | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:83:29:83:29 | y | | params_flow.rb:1:11:1:11 | x | params_flow.rb:84:10:84:10 | t | | params_flow.rb:1:11:1:11 | x | params_flow.rb:85:10:85:10 | u | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:86:10:86:10 | v | | params_flow.rb:1:11:1:11 | x | params_flow.rb:87:10:87:10 | w | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:88:10:88:10 | x | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:89:10:89:10 | y | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:93:42:93:50 | call to taint | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:94:1:94:48 | *[2] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:94:1:94:48 | *[3] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:94:1:94:48 | *[4] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:94:39:94:47 | call to taint | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:96:1:96:88 | *[2] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:96:1:96:88 | *[3] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:96:1:96:88 | *[4] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:96:34:96:42 | call to taint | @@ -3106,8 +3213,6 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:98:31:98:31 | b | | params_flow.rb:1:11:1:11 | x | params_flow.rb:99:10:99:10 | a | | params_flow.rb:1:11:1:11 | x | params_flow.rb:102:10:102:10 | b | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:105:1:105:49 | *[1] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:105:1:105:49 | *[2] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:105:39:105:47 | call to taint | @@ -3823,34 +3928,38 @@ trackEnd | params_flow.rb:43:1:43:4 | args | params_flow.rb:43:1:43:4 | args | | params_flow.rb:43:8:43:18 | * | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:8:43:18 | Array | params_flow.rb:43:8:43:18 | Array | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:1:43:4 | args | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:1:43:18 | ... = ... | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:8:43:18 | call to [] | -| params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:44:24:44:27 | args | | params_flow.rb:43:9:43:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:43:9:43:17 | * | params_flow.rb:43:9:43:17 | * | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:43:9:43:17 | call to taint | -| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:43:15:43:16 | 17 | -| params_flow.rb:43:15:43:16 | 17 | params_flow.rb:44:1:44:28 | *[1] | | params_flow.rb:44:1:44:28 | * | params_flow.rb:9:1:12:3 | synthetic *args | | params_flow.rb:44:1:44:28 | * | params_flow.rb:44:1:44:28 | * | -| params_flow.rb:44:1:44:28 | *[1] | params_flow.rb:44:1:44:28 | *[1] | -| params_flow.rb:44:1:44:28 | *[2] | params_flow.rb:44:1:44:28 | *[2] | -| params_flow.rb:44:1:44:28 | *[3] | params_flow.rb:44:1:44:28 | *[3] | -| params_flow.rb:44:1:44:28 | *[4] | params_flow.rb:44:1:44:28 | *[4] | -| params_flow.rb:44:1:44:28 | *[5] | params_flow.rb:44:1:44:28 | *[5] | -| params_flow.rb:44:1:44:28 | *[6] | params_flow.rb:44:1:44:28 | *[6] | -| params_flow.rb:44:1:44:28 | *[7] | params_flow.rb:44:1:44:28 | *[7] | -| params_flow.rb:44:1:44:28 | *[8] | params_flow.rb:44:1:44:28 | *[8] | -| params_flow.rb:44:1:44:28 | *[9] | params_flow.rb:44:1:44:28 | *[9] | -| params_flow.rb:44:1:44:28 | *[10] | params_flow.rb:44:1:44:28 | *[10] | -| params_flow.rb:44:1:44:28 | *[-1] | params_flow.rb:44:1:44:28 | *[-1] | | params_flow.rb:44:1:44:28 | call to positional | params_flow.rb:44:1:44:28 | call to positional | | params_flow.rb:44:12:44:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:44:12:44:20 | * | params_flow.rb:44:12:44:20 | * | @@ -4031,10 +4140,11 @@ trackEnd | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:52:10:52:21 | ( ... ) | +| params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:57:1:57:4 | args | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:57:1:57:18 | ... = ... | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:57:8:57:18 | call to [] | -| params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:58:21:58:24 | args | | params_flow.rb:57:9:57:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:57:9:57:17 | * | params_flow.rb:57:9:57:17 | * | @@ -4043,8 +4153,9 @@ trackEnd | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:52:10:52:21 | ( ... ) | +| params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:57:9:57:17 | call to taint | -| params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:2:5:2:5 | x | @@ -4053,22 +4164,12 @@ trackEnd | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:6:10:6:10 | x | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:15:57:16 | 22 | params_flow.rb:52:10:52:21 | ( ... ) | +| params_flow.rb:57:15:57:16 | 22 | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:57:9:57:17 | call to taint | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:57:15:57:16 | 22 | -| params_flow.rb:57:15:57:16 | 22 | params_flow.rb:58:1:58:25 | *[1] | | params_flow.rb:58:1:58:25 | * | params_flow.rb:49:1:53:3 | synthetic *args | | params_flow.rb:58:1:58:25 | * | params_flow.rb:58:1:58:25 | * | -| params_flow.rb:58:1:58:25 | *[1] | params_flow.rb:58:1:58:25 | *[1] | -| params_flow.rb:58:1:58:25 | *[2] | params_flow.rb:58:1:58:25 | *[2] | -| params_flow.rb:58:1:58:25 | *[3] | params_flow.rb:58:1:58:25 | *[3] | -| params_flow.rb:58:1:58:25 | *[4] | params_flow.rb:58:1:58:25 | *[4] | -| params_flow.rb:58:1:58:25 | *[5] | params_flow.rb:58:1:58:25 | *[5] | -| params_flow.rb:58:1:58:25 | *[6] | params_flow.rb:58:1:58:25 | *[6] | -| params_flow.rb:58:1:58:25 | *[7] | params_flow.rb:58:1:58:25 | *[7] | -| params_flow.rb:58:1:58:25 | *[8] | params_flow.rb:58:1:58:25 | *[8] | -| params_flow.rb:58:1:58:25 | *[9] | params_flow.rb:58:1:58:25 | *[9] | -| params_flow.rb:58:1:58:25 | *[10] | params_flow.rb:58:1:58:25 | *[10] | -| params_flow.rb:58:1:58:25 | *[-1] | params_flow.rb:58:1:58:25 | *[-1] | | params_flow.rb:58:1:58:25 | call to posargs | params_flow.rb:58:1:58:25 | call to posargs | | params_flow.rb:58:9:58:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:58:9:58:17 | * | params_flow.rb:58:9:58:17 | * | @@ -4383,64 +4484,86 @@ trackEnd | params_flow.rb:80:1:80:4 | args | params_flow.rb:80:1:80:4 | args | | params_flow.rb:80:8:80:51 | * | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:8:80:51 | Array | params_flow.rb:80:8:80:51 | Array | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:1:80:4 | args | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:1:80:51 | ... = ... | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:81:22:81:25 | args | | params_flow.rb:80:9:80:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:9:80:17 | * | params_flow.rb:80:9:80:17 | * | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:80:9:80:17 | call to taint | -| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:80:15:80:16 | 33 | -| params_flow.rb:80:15:80:16 | 33 | params_flow.rb:81:1:81:37 | *[1] | | params_flow.rb:80:20:80:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:20:80:28 | * | params_flow.rb:80:20:80:28 | * | | params_flow.rb:80:20:80:28 | call to taint | params_flow.rb:80:20:80:28 | call to taint | -| params_flow.rb:80:20:80:28 | call to taint | params_flow.rb:81:1:81:37 | *[2] | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:80:26:80:27 | 34 | -| params_flow.rb:80:26:80:27 | 34 | params_flow.rb:81:1:81:37 | *[2] | | params_flow.rb:80:31:80:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:31:80:39 | * | params_flow.rb:80:31:80:39 | * | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:74:10:74:10 | w | | params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:80:31:80:39 | call to taint | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:81:1:81:37 | *[3] | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:80:37:80:38 | 35 | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:81:1:81:37 | *[3] | | params_flow.rb:80:42:80:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:80:42:80:50 | * | params_flow.rb:80:42:80:50 | * | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:75:10:75:10 | r | | params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:80:42:80:50 | call to taint | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:75:10:75:10 | r | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:80:48:80:49 | 36 | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:81:1:81:37 | *[4] | | params_flow.rb:81:1:81:37 | * | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:1:81:37 | * | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:81:1:81:37 | *[1] | params_flow.rb:81:1:81:37 | *[1] | -| params_flow.rb:81:1:81:37 | *[2] | params_flow.rb:81:1:81:37 | *[2] | -| params_flow.rb:81:1:81:37 | *[3] | params_flow.rb:81:1:81:37 | *[3] | -| params_flow.rb:81:1:81:37 | *[4] | params_flow.rb:81:1:81:37 | *[4] | -| params_flow.rb:81:1:81:37 | *[5] | params_flow.rb:81:1:81:37 | *[5] | -| params_flow.rb:81:1:81:37 | *[6] | params_flow.rb:81:1:81:37 | *[6] | -| params_flow.rb:81:1:81:37 | *[7] | params_flow.rb:81:1:81:37 | *[7] | -| params_flow.rb:81:1:81:37 | *[8] | params_flow.rb:81:1:81:37 | *[8] | -| params_flow.rb:81:1:81:37 | *[9] | params_flow.rb:81:1:81:37 | *[9] | -| params_flow.rb:81:1:81:37 | *[10] | params_flow.rb:81:1:81:37 | *[10] | -| params_flow.rb:81:1:81:37 | *[-1] | params_flow.rb:81:1:81:37 | *[-1] | | params_flow.rb:81:1:81:37 | call to splatmid | params_flow.rb:81:1:81:37 | call to splatmid | | params_flow.rb:81:10:81:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:81:10:81:18 | * | params_flow.rb:81:10:81:18 | * | @@ -4561,63 +4684,98 @@ trackEnd | params_flow.rb:93:1:93:4 | args | params_flow.rb:93:1:93:4 | args | | params_flow.rb:93:8:93:51 | * | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:8:93:51 | Array | params_flow.rb:93:8:93:51 | Array | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:1:93:4 | args | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:1:93:51 | ... = ... | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:94:33:94:36 | args | | params_flow.rb:93:9:93:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:9:93:17 | * | params_flow.rb:93:9:93:17 | * | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:93:9:93:17 | call to taint | -| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:93:15:93:16 | 40 | -| params_flow.rb:93:15:93:16 | 40 | params_flow.rb:94:1:94:48 | *[2] | | params_flow.rb:93:20:93:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:20:93:28 | * | params_flow.rb:93:20:93:28 | * | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:87:10:87:10 | w | | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:93:20:93:28 | call to taint | -| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:94:1:94:48 | *[3] | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:87:10:87:10 | w | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:93:26:93:27 | 41 | -| params_flow.rb:93:26:93:27 | 41 | params_flow.rb:94:1:94:48 | *[3] | | params_flow.rb:93:31:93:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:31:93:39 | * | params_flow.rb:93:31:93:39 | * | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:88:10:88:10 | x | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:93:31:93:39 | call to taint | -| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:94:1:94:48 | *[4] | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:88:10:88:10 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:93:37:93:38 | 42 | -| params_flow.rb:93:37:93:38 | 42 | params_flow.rb:94:1:94:48 | *[4] | | params_flow.rb:93:42:93:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:93:42:93:50 | * | params_flow.rb:93:42:93:50 | * | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:89:10:89:10 | y | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:93:42:93:50 | call to taint | -| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:83:29:83:29 | y | +| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:89:10:89:10 | y | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:93:48:93:49 | 43 | -| params_flow.rb:93:48:93:49 | 43 | params_flow.rb:94:1:94:48 | *[5] | | params_flow.rb:94:1:94:48 | * | params_flow.rb:83:1:91:3 | synthetic *args | | params_flow.rb:94:1:94:48 | * | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:94:1:94:48 | *[2] | params_flow.rb:94:1:94:48 | *[2] | -| params_flow.rb:94:1:94:48 | *[3] | params_flow.rb:94:1:94:48 | *[3] | -| params_flow.rb:94:1:94:48 | *[4] | params_flow.rb:94:1:94:48 | *[4] | -| params_flow.rb:94:1:94:48 | *[5] | params_flow.rb:94:1:94:48 | *[5] | -| params_flow.rb:94:1:94:48 | *[6] | params_flow.rb:94:1:94:48 | *[6] | -| params_flow.rb:94:1:94:48 | *[7] | params_flow.rb:94:1:94:48 | *[7] | -| params_flow.rb:94:1:94:48 | *[8] | params_flow.rb:94:1:94:48 | *[8] | -| params_flow.rb:94:1:94:48 | *[9] | params_flow.rb:94:1:94:48 | *[9] | -| params_flow.rb:94:1:94:48 | *[10] | params_flow.rb:94:1:94:48 | *[10] | -| params_flow.rb:94:1:94:48 | *[-1] | params_flow.rb:94:1:94:48 | *[-1] | | params_flow.rb:94:1:94:48 | call to pos_many | params_flow.rb:94:1:94:48 | call to pos_many | | params_flow.rb:94:10:94:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:94:10:94:18 | * | params_flow.rb:94:10:94:18 | * | @@ -4682,16 +4840,6 @@ trackEnd | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:94:45:94:46 | 44 | | params_flow.rb:96:1:96:88 | * | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:96:1:96:88 | * | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:96:1:96:88 | *[2] | params_flow.rb:96:1:96:88 | *[2] | -| params_flow.rb:96:1:96:88 | *[3] | params_flow.rb:96:1:96:88 | *[3] | -| params_flow.rb:96:1:96:88 | *[4] | params_flow.rb:96:1:96:88 | *[4] | -| params_flow.rb:96:1:96:88 | *[5] | params_flow.rb:96:1:96:88 | *[5] | -| params_flow.rb:96:1:96:88 | *[6] | params_flow.rb:96:1:96:88 | *[6] | -| params_flow.rb:96:1:96:88 | *[7] | params_flow.rb:96:1:96:88 | *[7] | -| params_flow.rb:96:1:96:88 | *[8] | params_flow.rb:96:1:96:88 | *[8] | -| params_flow.rb:96:1:96:88 | *[9] | params_flow.rb:96:1:96:88 | *[9] | -| params_flow.rb:96:1:96:88 | *[10] | params_flow.rb:96:1:96:88 | *[10] | -| params_flow.rb:96:1:96:88 | *[-1] | params_flow.rb:96:1:96:88 | *[-1] | | params_flow.rb:96:1:96:88 | call to splatmid | params_flow.rb:96:1:96:88 | call to splatmid | | params_flow.rb:96:10:96:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:10:96:18 | * | params_flow.rb:96:10:96:18 | * | @@ -4736,36 +4884,53 @@ trackEnd | params_flow.rb:96:32:96:65 | * ... | params_flow.rb:96:32:96:65 | * ... | | params_flow.rb:96:33:96:65 | * | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:33:96:65 | Array | params_flow.rb:96:33:96:65 | Array | -| params_flow.rb:96:33:96:65 | call to [] | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:33:96:65 | call to [] | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:34:96:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:34:96:42 | * | params_flow.rb:96:34:96:42 | * | -| params_flow.rb:96:34:96:42 | call to taint | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:34:96:42 | call to taint | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:1:96:88 | *[2] | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:40:96:41 | 47 | | params_flow.rb:96:45:96:53 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:45:96:53 | * | params_flow.rb:96:45:96:53 | * | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:1:96:88 | *[3] | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:74:10:74:10 | w | | params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:1:96:88 | *[3] | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:69:24:69:24 | w | +| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:51:96:52 | 48 | | params_flow.rb:96:56:96:64 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:96:56:96:64 | * | params_flow.rb:96:56:96:64 | * | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:1:96:88 | *[4] | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:75:10:75:10 | r | | params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:1:96:88 | *[4] | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:69:27:69:27 | r | +| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:75:10:75:10 | r | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:62:96:63 | 49 | | params_flow.rb:96:68:96:76 | * | params_flow.rb:1:1:3:3 | synthetic *args | @@ -4867,17 +5032,6 @@ trackEnd | params_flow.rb:102:5:102:10 | call to sink | params_flow.rb:106:1:106:46 | call to splatmidsmall | | params_flow.rb:105:1:105:49 | * | params_flow.rb:98:1:103:3 | synthetic *args | | params_flow.rb:105:1:105:49 | * | params_flow.rb:105:1:105:49 | * | -| params_flow.rb:105:1:105:49 | *[1] | params_flow.rb:105:1:105:49 | *[1] | -| params_flow.rb:105:1:105:49 | *[2] | params_flow.rb:105:1:105:49 | *[2] | -| params_flow.rb:105:1:105:49 | *[3] | params_flow.rb:105:1:105:49 | *[3] | -| params_flow.rb:105:1:105:49 | *[4] | params_flow.rb:105:1:105:49 | *[4] | -| params_flow.rb:105:1:105:49 | *[5] | params_flow.rb:105:1:105:49 | *[5] | -| params_flow.rb:105:1:105:49 | *[6] | params_flow.rb:105:1:105:49 | *[6] | -| params_flow.rb:105:1:105:49 | *[7] | params_flow.rb:105:1:105:49 | *[7] | -| params_flow.rb:105:1:105:49 | *[8] | params_flow.rb:105:1:105:49 | *[8] | -| params_flow.rb:105:1:105:49 | *[9] | params_flow.rb:105:1:105:49 | *[9] | -| params_flow.rb:105:1:105:49 | *[10] | params_flow.rb:105:1:105:49 | *[10] | -| params_flow.rb:105:1:105:49 | *[-1] | params_flow.rb:105:1:105:49 | *[-1] | | params_flow.rb:105:1:105:49 | call to splatmidsmall | params_flow.rb:105:1:105:49 | call to splatmidsmall | | params_flow.rb:105:15:105:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:15:105:23 | * | params_flow.rb:105:15:105:23 | * | @@ -4902,26 +5056,33 @@ trackEnd | params_flow.rb:105:26:105:48 | * ... | params_flow.rb:105:26:105:48 | * ... | | params_flow.rb:105:27:105:48 | * | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:27:105:48 | Array | params_flow.rb:105:27:105:48 | Array | -| params_flow.rb:105:27:105:48 | call to [] | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:27:105:48 | call to [] | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:28:105:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:28:105:36 | * | params_flow.rb:105:28:105:36 | * | -| params_flow.rb:105:28:105:36 | call to taint | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:28:105:36 | call to taint | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:1:105:49 | *[1] | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:34:105:35 | 53 | | params_flow.rb:105:39:105:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | | params_flow.rb:105:39:105:47 | * | params_flow.rb:105:39:105:47 | * | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:1:105:49 | *[2] | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:102:10:102:10 | b | | params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:1:105:49 | *[2] | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:98:31:98:31 | b | +| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:102:10:102:10 | b | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:45:105:46 | 54 | | params_flow.rb:106:1:106:46 | * | params_flow.rb:98:1:103:3 | synthetic *args | From 29a8a82e92fe7c8c04ad54534c499fe9b9b7a739 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Thu, 14 Sep 2023 09:22:36 +0100 Subject: [PATCH 401/788] Ruby: add more docs for splat flow --- .../dataflow/internal/DataFlowPrivate.qll | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 29fbc932852..9f33714940d 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -1280,6 +1280,16 @@ module ArgumentNodes { override string toStringImpl() { result = "*" } } + /** + * A data-flow node that holds data from values inside splat arguments. + * For example, in the following call + * + * ```rb + * foo(1, 2, *[3, 4]) + * ``` + * + * We add read steps such that `3` flows into `SynthSplatArgumentElementNode(2)` and `4` flows into `SynthSplatArgumentElementNode(3)`. + */ class SynthSplatArgumentElementNode extends NodeImpl, TSynthSplatArgumentElementNode { CfgNodes::ExprNodes::CallCfgNode c; int n; @@ -1535,8 +1545,18 @@ predicate storeStepCommon(Node node1, ContentSet c, Node node2) { ) } -// Store from TSynthSplatArgumentElementNode(n) -// into TSynthSplatArgumentNode[n] +/** + * A store step from a `SynthSplatArgumentElementNode` into a `SynthSplatArgumentNode`. + * For example in + * + * ```rb + * foo(1, 2, *[3, 4]) + * ``` + * + * We have flow from `3` into `SynthSplatArgumentElementNode(2)`. This step stores the value from this node into element `2` of the `SynthSplatArgumentNode`. + * + * This allows us to match values inside splat arguments to the correct parameter in the callable. + */ predicate synthSplatArgumentElementStoreStep( SynthSplatArgumentElementNode node1, ContentSet c, SynthSplatArgumentNode node2 ) { @@ -1606,7 +1626,15 @@ predicate readStepCommon(Node node1, ContentSet c, Node node2) { node2 = node1.(SynthSplatParameterNode).getAParameter(c) } -// read from splat arg to synth splat arg element +/** + * A read step from a splat argument to a `SynthSplatArgumentElementNode`. + * For example in + * ```rb + * foo(x, y, *[1, 2]) + * ``` + * + * we read `1` into `SynthSplatArgumentElementNode(2)` and `2` into `SynthSplatArgumentElementNode(3)`. + */ predicate synthSplatArgumentElementReadStep( Node node1, ContentSet c, SynthSplatArgumentElementNode node2 ) { @@ -1665,7 +1693,6 @@ predicate readStep(Node node1, ContentSet c, Node node2) { c = getPositionalContent(e.getReadPosition()) ) or - // TODO: convert into the above form synthSplatArgumentElementReadStep(node1, c, node2) or readStepCommon(node1, c, node2) From 4168245fc0a9efb86720649d218a5cd6df557e70 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Thu, 14 Sep 2023 10:02:27 +0100 Subject: [PATCH 402/788] Ruby: Fix doc comments --- .../ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 9f33714940d..4f1faf27ec1 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -474,6 +474,7 @@ private module Cached { } or TSynthSplatArgumentNode(CfgNodes::ExprNodes::CallCfgNode c) or TSynthSplatArgumentElementNode(CfgNodes::ExprNodes::CallCfgNode c, int n) { + // we use -1 to represent data at an unknown index n in [-1 .. 10] and exists(Argument arg, ArgumentPosition pos | pos.isSplat(any(int p | p > 0)) and arg.isArgumentOf(c, pos) @@ -1546,7 +1547,7 @@ predicate storeStepCommon(Node node1, ContentSet c, Node node2) { } /** - * A store step from a `SynthSplatArgumentElementNode` into a `SynthSplatArgumentNode`. + * Holds if data can flow from a `SynthSplatArgumentElementNode` into a `SynthSplatArgumentNode` via a store step. * For example in * * ```rb @@ -1627,7 +1628,7 @@ predicate readStepCommon(Node node1, ContentSet c, Node node2) { } /** - * A read step from a splat argument to a `SynthSplatArgumentElementNode`. + * Holds if data can flow from a splat argument to a `SynthSplatArgumentElementNode` via a read step. * For example in * ```rb * foo(x, y, *[1, 2]) From d79a2c7674eda04f26a4c1b4c2d9318fc520191f Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Thu, 14 Sep 2023 12:49:47 +0100 Subject: [PATCH 403/788] CPP:Make __is_trivial a builtin operation. --- .../old.dbscheme | 2213 +++++++++++++++++ .../semmlecode.cpp.dbscheme | 2212 ++++++++++++++++ .../upgrade.properties | 2 + .../code/cpp/exprs/BuiltInOperations.qll | 18 + cpp/ql/lib/semmlecode.cpp.dbscheme | 1 + .../old.dbscheme | 2212 ++++++++++++++++ .../semmlecode.cpp.dbscheme | 2213 +++++++++++++++++ .../upgrade.properties | 2 + .../builtins/type_traits/clang.cpp | 7 + .../builtins/type_traits/expr.expected | 4 + 10 files changed, 8884 insertions(+) create mode 100644 cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/old.dbscheme create mode 100644 cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/upgrade.properties diff --git a/cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/old.dbscheme b/cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/old.dbscheme new file mode 100644 index 00000000000..dbe9c8eb5fc --- /dev/null +++ b/cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/old.dbscheme @@ -0,0 +1,2213 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref, + int handle: @variable ref, + int promise: @variable ref +); + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @functionorblock ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator. For example: + * ``` + * int a; + * decltype(1+a) b; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * would change the semantics of this decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @usertype.kind of + 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +| 5 = @typedef // classic C: typedef typedef type name +| 6 = @template +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +| 14 = @using_alias // a using name = type style typedef +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +is_proxy_class_for( + unique int id: @usertype ref, + unique int templ_param_id: @usertype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int ref); +*/ + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + /* TODO | @fixedpointtype */ + | @routinetype + | @ptrtomember + | @decltype; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + | @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 3 = size_and_alignment + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_expr ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_expr ref +); + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + ; + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@runtime_sizeof_or_alignof = @runtime_sizeof | @runtime_alignof; + +sizeof_bind( + unique int expr: @runtime_sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_stmt ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +for_initialization( + unique int for_stmt: @stmt_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + unique int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/semmlecode.cpp.dbscheme b/cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..d77c09d8bdc --- /dev/null +++ b/cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/semmlecode.cpp.dbscheme @@ -0,0 +1,2212 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref, + int handle: @variable ref, + int promise: @variable ref +); + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @functionorblock ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator. For example: + * ``` + * int a; + * decltype(1+a) b; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * would change the semantics of this decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @usertype.kind of + 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +| 5 = @typedef // classic C: typedef typedef type name +| 6 = @template +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +| 14 = @using_alias // a using name = type style typedef +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +is_proxy_class_for( + unique int id: @usertype ref, + unique int templ_param_id: @usertype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int ref); +*/ + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + /* TODO | @fixedpointtype */ + | @routinetype + | @ptrtomember + | @decltype; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + | @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 3 = size_and_alignment + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_expr ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_expr ref +); + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + ; + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@runtime_sizeof_or_alignof = @runtime_sizeof | @runtime_alignof; + +sizeof_bind( + unique int expr: @runtime_sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_stmt ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +for_initialization( + unique int for_stmt: @stmt_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + unique int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/upgrade.properties b/cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/upgrade.properties new file mode 100644 index 00000000000..643101117e5 --- /dev/null +++ b/cpp/downgrades/dbe9c8eb5fc6f54b7ae08c7317d0795b24961564/upgrade.properties @@ -0,0 +1,2 @@ +description: Make __is_trivial a builtin operation +compatibility: full diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll index c0ffa96297b..ba924d58da5 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll @@ -1547,3 +1547,21 @@ class BuiltInBitCast extends BuiltInOperation, @builtinbitcast { override string getAPrimaryQlClass() { result = "BuiltInBitCast" } } + +/** + * A C++ `__is_trivial` built-in operation (used by some implementations of the + * `` header). + * + * Returns `true` if a type is a trivial type. + * ``` + * template + * struct is_trivial + * : public integral_constant + * {}; + * ``` + */ +class BuiltInIsTrivial extends BuiltInOperation, @istrivialexpr { + override string toString() { result = "__is_trivial" } + + override string getAPrimaryQlClass() { result = "BuiltInIsTrivial" } +} diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index d77c09d8bdc..dbe9c8eb5fc 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -1755,6 +1755,7 @@ case @expr.kind of | @istriviallydestructibleexpr | @istriviallyassignableexpr | @isnothrowassignableexpr + | @istrivialexpr | @isstandardlayoutexpr | @istriviallycopyableexpr | @isliteraltypeexpr diff --git a/cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/old.dbscheme b/cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/old.dbscheme new file mode 100644 index 00000000000..d77c09d8bdc --- /dev/null +++ b/cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/old.dbscheme @@ -0,0 +1,2212 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref, + int handle: @variable ref, + int promise: @variable ref +); + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @functionorblock ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator. For example: + * ``` + * int a; + * decltype(1+a) b; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * would change the semantics of this decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @usertype.kind of + 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +| 5 = @typedef // classic C: typedef typedef type name +| 6 = @template +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +| 14 = @using_alias // a using name = type style typedef +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +is_proxy_class_for( + unique int id: @usertype ref, + unique int templ_param_id: @usertype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int ref); +*/ + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + /* TODO | @fixedpointtype */ + | @routinetype + | @ptrtomember + | @decltype; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + | @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 3 = size_and_alignment + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_expr ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_expr ref +); + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + ; + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@runtime_sizeof_or_alignof = @runtime_sizeof | @runtime_alignof; + +sizeof_bind( + unique int expr: @runtime_sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_stmt ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +for_initialization( + unique int for_stmt: @stmt_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + unique int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..dbe9c8eb5fc --- /dev/null +++ b/cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/semmlecode.cpp.dbscheme @@ -0,0 +1,2213 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref, + int handle: @variable ref, + int promise: @variable ref +); + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @functionorblock ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator. For example: + * ``` + * int a; + * decltype(1+a) b; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * would change the semantics of this decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @usertype.kind of + 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +| 5 = @typedef // classic C: typedef typedef type name +| 6 = @template +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +| 14 = @using_alias // a using name = type style typedef +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +is_proxy_class_for( + unique int id: @usertype ref, + unique int templ_param_id: @usertype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int ref); +*/ + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + /* TODO | @fixedpointtype */ + | @routinetype + | @ptrtomember + | @decltype; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + | @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 3 = size_and_alignment + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_expr ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_expr ref +); + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + ; + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@runtime_sizeof_or_alignof = @runtime_sizeof | @runtime_alignof; + +sizeof_bind( + unique int expr: @runtime_sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_stmt ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +for_initialization( + unique int for_stmt: @stmt_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + unique int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/upgrade.properties b/cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/upgrade.properties new file mode 100644 index 00000000000..643101117e5 --- /dev/null +++ b/cpp/ql/lib/upgrades/d77c09d8bdc172c9201dec293de1e14c931d3f05/upgrade.properties @@ -0,0 +1,2 @@ +description: Make __is_trivial a builtin operation +compatibility: full diff --git a/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp b/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp index 8cb32567820..2c25f188138 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp +++ b/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp @@ -86,3 +86,10 @@ bool bok_is_void2 = __is_void(int); bool bok_is_volatile1 = __is_volatile(volatile int); bool bok_is_volatile2 = __is_volatile(int); + +struct S2 { + S2() {} +}; + +bool bok_is_trivial1 = __is_trivial(int); +bool bok_is_trivial2 = __is_trivial(S2); diff --git a/cpp/ql/test/library-tests/builtins/type_traits/expr.expected b/cpp/ql/test/library-tests/builtins/type_traits/expr.expected index 010d68711c6..9cc6ec6ec92 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/expr.expected +++ b/cpp/ql/test/library-tests/builtins/type_traits/expr.expected @@ -121,6 +121,10 @@ | clang.cpp:87:25:87:51 | volatile int | | | | clang.cpp:88:25:88:42 | __is_volatile | int | 0 | | clang.cpp:88:25:88:42 | int | | | +| clang.cpp:94:24:94:40 | __is_trivial | int | 1 | +| clang.cpp:94:24:94:40 | int | | | +| clang.cpp:95:24:95:39 | S2 | | | +| clang.cpp:95:24:95:39 | __is_trivial | S2 | 0 | | file://:0:0:0:0 | 0 | | 0 | | file://:0:0:0:0 | 1 | | 1 | | file://:0:0:0:0 | 2 | | 2 | From 8768b9e3dd6181dab0b1b827eccd80ee0fd1781c Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 14 Sep 2023 14:49:57 +0200 Subject: [PATCH 404/788] C#: Fix tracer issue with dotnet dotnet. --- csharp/tools/tracing-config.lua | 34 +++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/csharp/tools/tracing-config.lua b/csharp/tools/tracing-config.lua index c2534aed559..bfc146b76ea 100644 --- a/csharp/tools/tracing-config.lua +++ b/csharp/tools/tracing-config.lua @@ -5,20 +5,40 @@ function RegisterExtractorPack(id) local extractor = Exify(GetPlatformToolsDirectory() .. 'Semmle.Extraction.CSharp.Driver') + local function isDotnet(name) + return name == 'dotnet' or name == 'dotnet.exe' + end + + local function isDotnetPath(path) + return path:match('dotnet[.]exe$') or path:match('dotnet$') + end + + local function isPossibleDotnetSubcommand(arg) + -- dotnet options start with either - or / (both are legal) + -- It is possible to run dotnet with dotnet, e.g., `dotnet dotnet build` + -- but we shouldn't consider `dotnet` to be a subcommand. + local firstCharacter = string.sub(arg, 1, 1) + return not (firstCharacter == '-') and + not (firstCharacter == '/') and + not isDotnetPath(arg) + end + function DotnetMatcherBuild(compilerName, compilerPath, compilerArguments, _languageId) - if compilerName ~= 'dotnet' and compilerName ~= 'dotnet.exe' then + if not isDotnet(compilerName) then return nil end -- The dotnet CLI has the following usage instructions: - -- dotnet [sdk-options] [command] [command-options] [arguments] + -- dotnet [sdk-options] [command] [command-options] [arguments] OR + -- dotnet [runtime-options] [path-to-application] [arguments] -- we are interested in dotnet build, which has the following usage instructions: -- dotnet [options] build [...] -- For now, parse the command line as follows: -- Everything that starts with `-` (or `/`) will be ignored. - -- The first non-option argument is treated as the command. - -- if that's `build`, we append `-p:UseSharedCompilation=false` to the command line, + -- The first non-option argument is treated as the command (except if it is dotnet itself). + -- if that's `build` or similar, we append `-p:UseSharedCompilation=false` + -- and `-p:EmitCompilerGeneratedFiles=true` to the command line, -- otherwise we do nothing. local match = false local testMatch = false @@ -36,9 +56,7 @@ function RegisterExtractorPack(id) NativeArgumentsToArgv(compilerArguments.nativeArgumentPointer) end for i, arg in ipairs(argv) do - -- dotnet options start with either - or / (both are legal) - local firstCharacter = string.sub(arg, 1, 1) - if not (firstCharacter == '-') and not (firstCharacter == '/') then + if isPossibleDotnetSubcommand(arg) then if (not match) and inSubCommandPosition then Log(1, 'Dotnet subcommand detected: %s', arg) end @@ -80,7 +98,7 @@ function RegisterExtractorPack(id) end -- if we see an option to `dotnet run` (e.g., `--project`), inject just prior -- to the last option - if firstCharacter == '-' then + if string.sub(arg, 1, 1) == '-' then dotnetRunNeedsSeparator = false dotnetRunInjectionIndex = i end From e577fb68bd38811b6901040d410701913d0951f5 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 14 Sep 2023 14:59:49 +0200 Subject: [PATCH 405/788] C#: Add integration test for dotnet dotnet. --- csharp/ql/integration-tests/all-platforms/dotnet_run/test.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py b/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py index 65e8309dac0..ef306b1842b 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py +++ b/csharp/ql/integration-tests/all-platforms/dotnet_run/test.py @@ -58,3 +58,8 @@ check_diagnostics(test_db="test8-db") s = run_codeql_database_create_stdout(['dotnet clean', 'rm -rf test8-db', 'dotnet run "hello world part1" part2'], "test9-db") check_build_out("hello world part1, part2", s) check_diagnostics(test_db="test9-db") + +# two arguments, no '--' (second argument quoted) and using dotnet to execute dotnet +s = run_codeql_database_create_stdout(['dotnet clean', 'rm -rf test9-db', 'dotnet dotnet run part1 "hello world part2"'], "test10-db") +check_build_out("part1, hello world part2", s) +check_diagnostics(test_db="test10-db") From 2a55034e5505dbcfc32b8c47c7dd4f69746571ac Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 12 Sep 2023 15:58:10 +0100 Subject: [PATCH 406/788] C++: Add failing test. --- .../guard-condition-regression-test.cpp | 19 +++++++++ .../guard-condition-regression-test.expected | 2 + .../guard-condition-regression-test.ql | 40 +++++++++++++++++++ .../dataflow/dataflow-tests/test.expected | 2 +- 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.cpp create mode 100644 cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.expected create mode 100644 cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.ql diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.cpp b/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.cpp new file mode 100644 index 00000000000..070076e341b --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.cpp @@ -0,0 +1,19 @@ +int source(); +void gard_condition_sink(int); +void use(int); +/* + This test checks that we hit the node corresponding to the expression node that wraps `source` + in the condition `source >= 0`. +*/ +void test_guard_condition(int source, bool b) +{ + if (b) { + use(source); + } + + if (source >= 0) { + use(source); + } + + gard_condition_sink(source); // $ SPURIOUS: guard-condition-regression +} \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.expected new file mode 100644 index 00000000000..8ec8033d086 --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.expected @@ -0,0 +1,2 @@ +testFailures +failures diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.ql b/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.ql new file mode 100644 index 00000000000..49b650a0793 --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.ql @@ -0,0 +1,40 @@ +import TestUtilities.InlineExpectationsTest +private import cpp +private import semmle.code.cpp.ir.dataflow.DataFlow +private import semmle.code.cpp.controlflow.IRGuards + +module IRTestAllocationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source.asParameter().getName().matches("source%") and + source.getLocation().getFile().getBaseName() = "guard-condition-regression-test.cpp" + } + + predicate isSink(DataFlow::Node sink) { + exists(FunctionCall call, Expr e | e = call.getAnArgument() | + call.getTarget().getName() = "gard_condition_sink" and + sink.asExpr() = e + ) + } + + predicate isBarrier(DataFlow::Node node) { + exists(GuardCondition gc | node.asExpr() = gc.getAChild*()) + } +} + +private module Flow = DataFlow::Global; + +module GuardConditionRegressionTest implements TestSig { + string getARelevantTag() { result = "guard-condition-regression" } + + predicate hasActualResult(Location location, string element, string tag, string value) { + exists(DataFlow::Node sink | + Flow::flowTo(sink) and + location = sink.getLocation() and + element = sink.toString() and + tag = "guard-condition-regression" and + value = "" + ) + } +} + +import MakeTest diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.expected index 0260ed62b05..d4756e8d808 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.expected @@ -5,5 +5,5 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (test. WARNING: Module DataFlow has been deprecated and may be removed in future (test.ql:40,25-33) WARNING: Module DataFlow has been deprecated and may be removed in future (test.ql:42,17-25) WARNING: Module DataFlow has been deprecated and may be removed in future (test.ql:46,20-28) -failures testFailures +failures From 36b7b6cffe629bf55fa5a5606ef2532c97512a9a Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 14 Sep 2023 14:02:03 +0100 Subject: [PATCH 407/788] C++: Fix phi-phi flow. --- .../lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll index 7c34dc43d07..967734f1cfd 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll @@ -766,7 +766,7 @@ predicate fromPhiNode(SsaPhiNode nodeFrom, Node nodeTo) { or exists(PhiNode phiTo | phi != phiTo and - lastRefRedefExt(phi, _, _, phiTo) and + lastRefRedefExt(phi, bb1, i1, phiTo) and nodeTo.(SsaPhiNode).getPhiNode() = phiTo ) ) From b0566af938f9d3d6316388a2dbdabd684a057161 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 14 Sep 2023 14:04:12 +0100 Subject: [PATCH 408/788] C++: Accept test changes. --- .../dataflow/dataflow-tests/guard-condition-regression-test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.cpp b/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.cpp index 070076e341b..39a9d78e143 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.cpp +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/guard-condition-regression-test.cpp @@ -15,5 +15,5 @@ void test_guard_condition(int source, bool b) use(source); } - gard_condition_sink(source); // $ SPURIOUS: guard-condition-regression + gard_condition_sink(source); // clean } \ No newline at end of file From 6ad78eba05e4458bd98c4cb44978bf6129ff8dcb Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 14 Sep 2023 13:08:36 +0000 Subject: [PATCH 409/788] Swift: ArrayContent aliased to CollectionContent --- .../lib/change-notes/2023-09-13-array-content-unification.md | 4 ++-- .../ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/change-notes/2023-09-13-array-content-unification.md b/swift/ql/lib/change-notes/2023-09-13-array-content-unification.md index 4f198101b98..4185581839d 100644 --- a/swift/ql/lib/change-notes/2023-09-13-array-content-unification.md +++ b/swift/ql/lib/change-notes/2023-09-13-array-content-unification.md @@ -1,5 +1,5 @@ --- -category: breaking +category: deprecated --- -* The `ArrayContent` type in the data flow library has been removed and its uses have been replaced with the `CollectionContent` type, to better reflect the hierarchy of the Swift standard library. Uses of `ArrayElement` in model files will be interpreted as referring to `CollectionContent`. +* The `ArrayContent` type in the data flow library has been deprecated and made an alias for the `CollectionContent` type, to better reflect the hierarchy of the Swift standard library. Uses of `ArrayElement` in model files will be interpreted as referring to `CollectionContent`. diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll index 5eef1683348..11d63134029 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll @@ -229,6 +229,11 @@ module Content { class CollectionContent extends Content, TCollectionContent { override string toString() { result = "Collection element" } } + + /** + * DEPRECATED: An element of a collection. This is an alias for the general CollectionContent. + */ + deprecated class ArrayContent = CollectionContent; } /** From 62953cb2504c8fe0601e9b5ec5da401d9bebc9ed Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 14 Sep 2023 09:11:35 -0400 Subject: [PATCH 410/788] Swift: document "ArrayElement" case in MaD Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com> --- swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll b/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll index 30bf72346ff..128883d125d 100644 --- a/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll +++ b/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll @@ -497,6 +497,7 @@ predicate parseContent(AccessPathToken component, Content content) { or parseEnum(component, content) or + // map legacy "ArrayElement" specification components to `CollectionContent` component.getName() = "ArrayElement" and content instanceof Content::CollectionContent or From 52d924924ba813c875d7f59e6f27f9d3398e5069 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Thu, 14 Sep 2023 11:54:11 +0100 Subject: [PATCH 411/788] Kotlin: Extract LighterAST comments as well as PSI comments --- .../src/main/kotlin/KotlinFileExtractor.kt | 13 +- .../main/kotlin/comments/CommentExtractor.kt | 219 +++++------------- .../kotlin/comments/CommentExtractorPSI.kt | 112 +++++++++ .../v_1_4_32/CommentExtractorLighterAST.kt | 11 + .../CommentExtractorLighterAST.kt | 111 +++++++++ 5 files changed, 302 insertions(+), 164 deletions(-) create mode 100644 java/kotlin-extractor/src/main/kotlin/comments/CommentExtractorPSI.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/CommentExtractorLighterAST.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 0d047f934d7..ed3298e6caa 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -1,6 +1,7 @@ package com.github.codeql -import com.github.codeql.comments.CommentExtractor +import com.github.codeql.comments.CommentExtractorPSI +import com.github.codeql.comments.CommentExtractorLighterAST import com.github.codeql.utils.* import com.github.codeql.utils.versions.* import com.semmle.extractor.java.OdasaOutput @@ -127,7 +128,15 @@ open class KotlinFileExtractor( } } extractStaticInitializer(file, { extractFileClass(file) }) - CommentExtractor(this, file, tw.fileId).extract() + val psiCommentsExtracted = CommentExtractorPSI(this, file, tw.fileId).extract() + val lighterAstCommentsExtracted = CommentExtractorLighterAST(this, file, tw.fileId).extract() + if (psiCommentsExtracted == lighterAstCommentsExtracted) { + if (psiCommentsExtracted) { + logger.warnElement("Found both PSI and LightAST comments in ${file.path}.", file) + } else { + logger.warnElement("Comments could not be processed in ${file.path}.", file) + } + } if (!declarationStack.isEmpty()) { logger.errorElement("Declaration stack is not empty after processing the file", file) diff --git a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt index 6a6b67b20aa..c6c3bb9de20 100644 --- a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt @@ -1,187 +1,82 @@ package com.github.codeql.comments import com.github.codeql.* -import com.github.codeql.utils.IrVisitorLookup import com.github.codeql.utils.isLocalFunction -import com.github.codeql.utils.Psi2IrFacade -import com.github.codeql.utils.versions.getPsi2Ir -import com.intellij.psi.PsiComment -import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.config.KotlinCompilerVersion import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrExpression -import org.jetbrains.kotlin.ir.util.isAnonymousObject import org.jetbrains.kotlin.ir.util.parentClassOrNull -import org.jetbrains.kotlin.kdoc.psi.api.KDoc -import org.jetbrains.kotlin.lexer.KtTokens -import org.jetbrains.kotlin.psi.KtVisitor -import org.jetbrains.kotlin.psi.psiUtil.endOffset -import org.jetbrains.kotlin.psi.psiUtil.startOffset -class CommentExtractor(private val fileExtractor: KotlinFileExtractor, private val file: IrFile, private val fileLabel: Label) { - private val tw = fileExtractor.tw - private val logger = fileExtractor.logger +open class CommentExtractor(protected val fileExtractor: KotlinFileExtractor, protected val file: IrFile, protected val fileLabel: Label) { + protected val tw = fileExtractor.tw + protected val logger = fileExtractor.logger - fun extract() { - val psi2Ir = getPsi2Ir() - if (psi2Ir == null) { - logger.warn("Comments will not be extracted as Kotlin version is too old (${KotlinCompilerVersion.getVersion()})") - return + protected fun getLabel(element: IrElement): Label? { + if (element == file) + return fileLabel + + if (element is IrValueParameter && element.index == -1) { + // Don't attribute comments to the implicit `this` parameter of a function. + return null } - val ktFile = psi2Ir.getKtFile(file) - if (ktFile == null) { - logger.warn("Comments are not being processed in ${file.path}.") - return + + val label: String + val existingLabel = if (element is IrVariable) { + // local variables are not named globally, so we need to get them from the variable label cache + label = "variable ${element.name.asString()}" + tw.getExistingVariableLabelFor(element) + } else if (element is IrFunction && element.isLocalFunction()) { + // local functions are not named globally, so we need to get them from the local function label cache + label = "local function ${element.name.asString()}" + fileExtractor.getExistingLocallyVisibleFunctionLabel(element) + } else { + label = getLabelForNamedElement(element) ?: return null + tw.getExistingLabelFor(label) } - val commentVisitor = mkCommentVisitor(psi2Ir) - ktFile.accept(commentVisitor) + if (existingLabel == null) { + logger.warn("Couldn't get existing label for $label") + return null + } + return existingLabel } - private fun mkCommentVisitor(psi2Ir: Psi2IrFacade): KtVisitor = - object : KtVisitor() { - override fun visitElement(element: PsiElement) { - element.acceptChildren(this) - - // Slightly hacky, but `visitComment` doesn't seem to visit comments with `tokenType` `KtTokens.DOC_COMMENT` - if (element is PsiComment){ - visitCommentElement(element) - } - } - - private fun visitCommentElement(comment: PsiComment) { - val type: CommentType = when (comment.tokenType) { - KtTokens.EOL_COMMENT -> { - CommentType.SingleLine - } - KtTokens.BLOCK_COMMENT -> { - CommentType.Block - } - KtTokens.DOC_COMMENT -> { - CommentType.Doc - } - else -> { - logger.warn("Unhandled comment token type: ${comment.tokenType}") - return - } - } - - val commentLabel = tw.getFreshIdLabel() - tw.writeKtComments(commentLabel, type.value, comment.text) - val locId = tw.getLocation(comment.startOffset, comment.endOffset) - tw.writeHasLocation(commentLabel, locId) - - if (comment.tokenType != KtTokens.DOC_COMMENT) { - return - } - - if (comment !is KDoc) { - logger.warn("Unexpected comment type with DocComment token type.") - return - } - - for (sec in comment.getAllSections()) { - val commentSectionLabel = tw.getFreshIdLabel() - tw.writeKtCommentSections(commentSectionLabel, commentLabel, sec.getContent()) - val name = sec.name - if (name != null) { - tw.writeKtCommentSectionNames(commentSectionLabel, name) - } - val subjectName = sec.getSubjectName() - if (subjectName != null) { - tw.writeKtCommentSectionSubjectNames(commentSectionLabel, subjectName) - } - } - - // Only storing the owner of doc comments: - val ownerPsi = getKDocOwner(comment) ?: return - - val owners = mutableListOf() - file.accept(IrVisitorLookup(psi2Ir, ownerPsi, file), owners) - - for (ownerIr in owners) { - val ownerLabel = getLabel(ownerIr) - if (ownerLabel != null) { - tw.writeKtCommentOwners(commentLabel, ownerLabel) - } - } - } - - private fun getKDocOwner(comment: KDoc) : PsiElement? { - val owner = comment.owner - if (owner == null) { - logger.warn("Couldn't get owner of KDoc. The comment is extracted without an owner.") - } - return owner - } - - private fun getLabel(element: IrElement): Label? { - if (element == file) - return fileLabel - - if (element is IrValueParameter && element.index == -1) { - // Don't attribute comments to the implicit `this` parameter of a function. - return null - } - - val label: String - val existingLabel = if (element is IrVariable) { - // local variables are not named globally, so we need to get them from the variable label cache - label = "variable ${element.name.asString()}" - tw.getExistingVariableLabelFor(element) - } else if (element is IrFunction && element.isLocalFunction()) { - // local functions are not named globally, so we need to get them from the local function label cache - label = "local function ${element.name.asString()}" - fileExtractor.getExistingLocallyVisibleFunctionLabel(element) + private fun getLabelForNamedElement(element: IrElement) : String? { + when (element) { + is IrClass -> return fileExtractor.getClassLabel(element, listOf()).classLabel + is IrTypeParameter -> return fileExtractor.getTypeParameterLabel(element) + is IrFunction -> { + return if (element.isLocalFunction()) { + null } else { - label = getLabelForNamedElement(element) ?: return null - tw.getExistingLabelFor(label) + fileExtractor.getFunctionLabel(element, null) } - if (existingLabel == null) { - logger.warn("Couldn't get existing label for $label") + } + is IrValueParameter -> return fileExtractor.getValueParameterLabel(element, null) + is IrProperty -> return fileExtractor.getPropertyLabel(element) + is IrField -> return fileExtractor.getFieldLabel(element) + is IrEnumEntry -> return fileExtractor.getEnumEntryLabel(element) + is IrTypeAlias -> return fileExtractor.getTypeAliasLabel(element) + + is IrAnonymousInitializer -> { + val parentClass = element.parentClassOrNull + if (parentClass == null) { + logger.warnElement("Parent of anonymous initializer is not a class", element) return null } - return existingLabel + // Assign the comment to the class. The content of the `init` blocks might be extracted in multiple constructors. + return getLabelForNamedElement(parentClass) } - private fun getLabelForNamedElement(element: IrElement) : String? { - when (element) { - is IrClass -> return fileExtractor.getClassLabel(element, listOf()).classLabel - is IrTypeParameter -> return fileExtractor.getTypeParameterLabel(element) - is IrFunction -> { - return if (element.isLocalFunction()) { - null - } else { - fileExtractor.getFunctionLabel(element, null) - } - } - is IrValueParameter -> return fileExtractor.getValueParameterLabel(element, null) - is IrProperty -> return fileExtractor.getPropertyLabel(element) - is IrField -> return fileExtractor.getFieldLabel(element) - is IrEnumEntry -> return fileExtractor.getEnumEntryLabel(element) - is IrTypeAlias -> return fileExtractor.getTypeAliasLabel(element) + // Fresh entities, not named elements: + is IrBody -> return null + is IrExpression -> return null - is IrAnonymousInitializer -> { - val parentClass = element.parentClassOrNull - if (parentClass == null) { - logger.warnElement("Parent of anonymous initializer is not a class", element) - return null - } - // Assign the comment to the class. The content of the `init` blocks might be extracted in multiple constructors. - return getLabelForNamedElement(parentClass) - } - - // Fresh entities, not named elements: - is IrBody -> return null - is IrExpression -> return null - - // todo add others: - else -> { - logger.warnElement("Unhandled element type found during comment extraction: ${element::class}", element) - return null - } - } + // todo add others: + else -> { + logger.warnElement("Unhandled element type found during comment extraction: ${element::class}", element) + return null + } } } } diff --git a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractorPSI.kt b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractorPSI.kt new file mode 100644 index 00000000000..24871035cad --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractorPSI.kt @@ -0,0 +1,112 @@ +package com.github.codeql.comments + +import com.github.codeql.* +import com.github.codeql.utils.IrVisitorLookup +import com.github.codeql.utils.Psi2IrFacade +import com.github.codeql.utils.versions.getPsi2Ir +import com.intellij.psi.PsiComment +import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.ir.IrElement +import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.kdoc.psi.api.KDoc +import org.jetbrains.kotlin.lexer.KtTokens +import org.jetbrains.kotlin.psi.KtVisitor +import org.jetbrains.kotlin.psi.psiUtil.endOffset +import org.jetbrains.kotlin.psi.psiUtil.startOffset + +class CommentExtractorPSI(fileExtractor: KotlinFileExtractor, file: IrFile, fileLabel: Label): CommentExtractor(fileExtractor, file, fileLabel) { + // Returns true if it extracted the comments; false otherwise. + fun extract(): Boolean { + val psi2Ir = getPsi2Ir() + if (psi2Ir == null) { + logger.warn("Comments will not be extracted as Kotlin version is too old (${KotlinCompilerVersion.getVersion()})") + return false + } + val ktFile = psi2Ir.getKtFile(file) + if (ktFile == null) { + return false + } + val commentVisitor = mkCommentVisitor(psi2Ir) + ktFile.accept(commentVisitor) + return true + } + + private fun mkCommentVisitor(psi2Ir: Psi2IrFacade): KtVisitor = + object : KtVisitor() { + override fun visitElement(element: PsiElement) { + element.acceptChildren(this) + + // Slightly hacky, but `visitComment` doesn't seem to visit comments with `tokenType` `KtTokens.DOC_COMMENT` + if (element is PsiComment){ + visitCommentElement(element) + } + } + + private fun visitCommentElement(comment: PsiComment) { + val type: CommentType = when (comment.tokenType) { + KtTokens.EOL_COMMENT -> { + CommentType.SingleLine + } + KtTokens.BLOCK_COMMENT -> { + CommentType.Block + } + KtTokens.DOC_COMMENT -> { + CommentType.Doc + } + else -> { + logger.warn("Unhandled comment token type: ${comment.tokenType}") + return + } + } + + val commentLabel = tw.getFreshIdLabel() + tw.writeKtComments(commentLabel, type.value, comment.text) + val locId = tw.getLocation(comment.startOffset, comment.endOffset) + tw.writeHasLocation(commentLabel, locId) + + if (comment.tokenType != KtTokens.DOC_COMMENT) { + return + } + + if (comment !is KDoc) { + logger.warn("Unexpected comment type with DocComment token type.") + return + } + + for (sec in comment.getAllSections()) { + val commentSectionLabel = tw.getFreshIdLabel() + tw.writeKtCommentSections(commentSectionLabel, commentLabel, sec.getContent()) + val name = sec.name + if (name != null) { + tw.writeKtCommentSectionNames(commentSectionLabel, name) + } + val subjectName = sec.getSubjectName() + if (subjectName != null) { + tw.writeKtCommentSectionSubjectNames(commentSectionLabel, subjectName) + } + } + + // Only storing the owner of doc comments: + val ownerPsi = getKDocOwner(comment) ?: return + + val owners = mutableListOf() + file.accept(IrVisitorLookup(psi2Ir, ownerPsi, file), owners) + + for (ownerIr in owners) { + val ownerLabel = getLabel(ownerIr) + if (ownerLabel != null) { + tw.writeKtCommentOwners(commentLabel, ownerLabel) + } + } + } + + private fun getKDocOwner(comment: KDoc) : PsiElement? { + val owner = comment.owner + if (owner == null) { + logger.warn("Couldn't get owner of KDoc. The comment is extracted without an owner.") + } + return owner + } + } +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/CommentExtractorLighterAST.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/CommentExtractorLighterAST.kt new file mode 100644 index 00000000000..f52c5fc85e6 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/CommentExtractorLighterAST.kt @@ -0,0 +1,11 @@ +package com.github.codeql.comments + +import com.github.codeql.* +import org.jetbrains.kotlin.ir.declarations.* + +class CommentExtractorLighterAST(fileExtractor: KotlinFileExtractor, file: IrFile, fileLabel: Label): CommentExtractor(fileExtractor, file, fileLabel) { + // We don't support LighterAST with old Kotlin versions + fun extract(): Boolean { + return false + } +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt new file mode 100644 index 00000000000..286cf3a48d0 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt @@ -0,0 +1,111 @@ +package com.github.codeql.comments + +import com.github.codeql.* +import com.intellij.lang.LighterASTNode +import com.intellij.util.diff.FlyweightCapableTreeStructure +import org.jetbrains.kotlin.fir.backend.FirMetadataSource +import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.IrElement +import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET +import org.jetbrains.kotlin.ir.util.SYNTHETIC_OFFSET +import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid +import org.jetbrains.kotlin.ir.visitors.acceptVoid +import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid +import org.jetbrains.kotlin.kdoc.lexer.KDocTokens +import org.jetbrains.kotlin.lexer.KtTokens +import org.jetbrains.kotlin.psi.psiUtil.endOffset +import org.jetbrains.kotlin.psi.psiUtil.startOffset +import org.jetbrains.kotlin.util.getChildren + +class CommentExtractorLighterAST(fileExtractor: KotlinFileExtractor, file: IrFile, fileLabel: Label): CommentExtractor(fileExtractor, file, fileLabel) { + // Returns true if it extracted the comments; false otherwise. + fun extract(): Boolean { + val sourceElement = (file.metadata as? FirMetadataSource.File)?.files?.get(0)?.source + val treeStructure = sourceElement?.treeStructure + if (treeStructure == null) { + return false + } + + val owners = findKDocOwners(file) + extractComments(treeStructure.root, treeStructure, owners) + return true + } + + private fun findKDocOwners(file: IrFile): Map> { + fun LighterASTNode.isKDocComment() = this.tokenType == KDocTokens.KDOC + + val kDocOwners = mutableMapOf>() + val visitor = object : IrElementVisitorVoid { + override fun visitElement(element: IrElement) { + val metadata = (element as? IrMetadataSourceOwner)?.metadata + val sourceElement = (metadata as? FirMetadataSource)?.fir?.source + val treeStructure = sourceElement?.treeStructure + + if (treeStructure != null) { + sourceElement.lighterASTNode.getChildren(treeStructure).firstOrNull { it.isKDocComment() } + ?.let { kDoc -> + // LighterASTNodes are not stable, so we can't + // use the node itself as the key. But the + // startOffset should uniquely identify them + // anyway. + val startOffset = kDoc.startOffset + if (startOffset != UNDEFINED_OFFSET && startOffset != SYNTHETIC_OFFSET) { + kDocOwners.getOrPut(startOffset, {mutableListOf()}).add(element) + } + } + } + + element.acceptChildrenVoid(this) + } + } + file.acceptVoid(visitor) + return kDocOwners + } + + private fun extractComments(node: LighterASTNode, treeStructure: FlyweightCapableTreeStructure, owners: Map>) { + node.getChildren(treeStructure).forEach { + if (KtTokens.COMMENTS.contains(it.tokenType)) { + extractComment(it, owners) + } else { + extractComments(it, treeStructure, owners) + } + } + } + + private fun extractComment(comment: LighterASTNode, owners: Map>) { + val type: CommentType = when (comment.tokenType) { + KtTokens.EOL_COMMENT -> { + CommentType.SingleLine + } + KtTokens.BLOCK_COMMENT -> { + CommentType.Block + } + KtTokens.DOC_COMMENT -> { + CommentType.Doc + } + else -> { + logger.warn("Unhandled comment token type: ${comment.tokenType}") + return + } + } + + val commentLabel = tw.getFreshIdLabel() + tw.writeKtComments(commentLabel, type.value, comment.toString()) + val locId = tw.getLocation(comment.startOffset, comment.endOffset) + tw.writeHasLocation(commentLabel, locId) + + if (comment.tokenType != KtTokens.DOC_COMMENT) { + return + } + + // TODO: The PSI comment extractor extracts comment.getAllSections() + // here, so we should too + + for (owner in owners.getOrDefault(comment.startOffset, listOf())) { + val ownerLabel = getLabel(owner) + if (ownerLabel != null) { + tw.writeKtCommentOwners(commentLabel, ownerLabel) + } + } + } +} From e5ac7620e306fddacb54adb372eb088b9fd76774 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Thu, 14 Sep 2023 15:44:32 +0100 Subject: [PATCH 412/788] Kotlin: Add more tests to the "gradle sequential" set --- .../kotlin/compiler_arguments/force_sequential_test_execution | 3 +++ .../kotlin/gradle_groovy_app/force_sequential_test_execution | 3 +++ .../force_sequential_test_execution | 3 +++ .../kotlin/kotlin_kfunction/force_sequential_test_execution | 3 +++ 4 files changed, 12 insertions(+) create mode 100644 java/ql/integration-tests/all-platforms/kotlin/compiler_arguments/force_sequential_test_execution create mode 100644 java/ql/integration-tests/all-platforms/kotlin/gradle_groovy_app/force_sequential_test_execution create mode 100644 java/ql/integration-tests/all-platforms/kotlin/gradle_kotlinx_serialization/force_sequential_test_execution create mode 100644 java/ql/integration-tests/all-platforms/kotlin/kotlin_kfunction/force_sequential_test_execution diff --git a/java/ql/integration-tests/all-platforms/kotlin/compiler_arguments/force_sequential_test_execution b/java/ql/integration-tests/all-platforms/kotlin/compiler_arguments/force_sequential_test_execution new file mode 100644 index 00000000000..b0e2500b259 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/kotlin/compiler_arguments/force_sequential_test_execution @@ -0,0 +1,3 @@ +# We currently have a bug where gradle tests become flaky when executed in parallel +# - sometimes, gradle fails to connect to the gradle daemon. +# Therefore, force this test to run sequentially. diff --git a/java/ql/integration-tests/all-platforms/kotlin/gradle_groovy_app/force_sequential_test_execution b/java/ql/integration-tests/all-platforms/kotlin/gradle_groovy_app/force_sequential_test_execution new file mode 100644 index 00000000000..b0e2500b259 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/kotlin/gradle_groovy_app/force_sequential_test_execution @@ -0,0 +1,3 @@ +# We currently have a bug where gradle tests become flaky when executed in parallel +# - sometimes, gradle fails to connect to the gradle daemon. +# Therefore, force this test to run sequentially. diff --git a/java/ql/integration-tests/all-platforms/kotlin/gradle_kotlinx_serialization/force_sequential_test_execution b/java/ql/integration-tests/all-platforms/kotlin/gradle_kotlinx_serialization/force_sequential_test_execution new file mode 100644 index 00000000000..b0e2500b259 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/kotlin/gradle_kotlinx_serialization/force_sequential_test_execution @@ -0,0 +1,3 @@ +# We currently have a bug where gradle tests become flaky when executed in parallel +# - sometimes, gradle fails to connect to the gradle daemon. +# Therefore, force this test to run sequentially. diff --git a/java/ql/integration-tests/all-platforms/kotlin/kotlin_kfunction/force_sequential_test_execution b/java/ql/integration-tests/all-platforms/kotlin/kotlin_kfunction/force_sequential_test_execution new file mode 100644 index 00000000000..b0e2500b259 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/kotlin/kotlin_kfunction/force_sequential_test_execution @@ -0,0 +1,3 @@ +# We currently have a bug where gradle tests become flaky when executed in parallel +# - sometimes, gradle fails to connect to the gradle daemon. +# Therefore, force this test to run sequentially. From b18de9e6417c60b51d2371c98394f4033d2683e4 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 14 Sep 2023 17:12:58 +0100 Subject: [PATCH 413/788] C++: Add a named base case predicate for 'dereferencedByOperation' that can be used in queries. --- .../code/cpp/controlflow/Dereferenced.qll | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/Dereferenced.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/Dereferenced.qll index a8f14b89159..38300645239 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/Dereferenced.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/Dereferenced.qll @@ -26,17 +26,18 @@ predicate callDereferences(FunctionCall fc, int i) { } /** - * Holds if evaluation of `op` dereferences `e`. + * Holds if evaluation of `op` dereferences `e` directly. + * + * This predicate does not recurse through function calls or arithmetic operations. To find + * such cases, use `dereferencedByOperation`. */ -predicate dereferencedByOperation(Expr op, Expr e) { +predicate directDereferencedByOperation(Expr op, Expr e) { exists(PointerDereferenceExpr deref | deref.getAChild() = e and deref = op and not deref.getParent*() instanceof SizeofOperator ) or - exists(CrementOperation crement | dereferencedByOperation(e, op) and crement.getOperand() = e) - or exists(ArrayExpr ae | ( not ae.getParent() instanceof AddressOfExpr and @@ -50,6 +51,24 @@ predicate dereferencedByOperation(Expr op, Expr e) { ) ) or + // ptr->Field + e = op.(FieldAccess).getQualifier() and isClassPointerType(e.getType()) + or + // ptr->method() + e = op.(Call).getQualifier() and isClassPointerType(e.getType()) +} + +/** + * Holds if evaluation of `op` dereferences `e`. + * + * This includes the set of operations identified via `directDereferencedByOperation`, as well + * as calls to function that are known to dereference an argument. + */ +predicate dereferencedByOperation(Expr op, Expr e) { + directDereferencedByOperation(op, e) + or + exists(CrementOperation crement | dereferencedByOperation(e, op) and crement.getOperand() = e) + or exists(AddressOfExpr addof, ArrayExpr ae | dereferencedByOperation(addof, op) and addof.getOperand() = ae and @@ -74,12 +93,6 @@ predicate dereferencedByOperation(Expr op, Expr e) { e = fc.getArgument(i) and op = fc ) - or - // ptr->Field - e = op.(FieldAccess).getQualifier() and isClassPointerType(e.getType()) - or - // ptr->method() - e = op.(Call).getQualifier() and isClassPointerType(e.getType()) } private predicate isClassPointerType(Type t) { From c0f897374949bfec08c63c59155e0612eb6b8246 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 16 Aug 2023 11:14:04 +0100 Subject: [PATCH 414/788] Add test for extracting a Java AST with an error expression Also note that ErrorExpr can occur outside upgrade/downgrade scripts --- java/ql/lib/semmle/code/java/Expr.qll | 3 +- .../library-tests/errorexpr/PrintAst.expected | 30 +++++++++++++++++++ .../library-tests/errorexpr/PrintAst.qlref | 1 + .../ql/test/library-tests/errorexpr/Test.java | 13 ++++++++ java/ql/test/library-tests/errorexpr/options | 1 + 5 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 java/ql/test/library-tests/errorexpr/PrintAst.expected create mode 100644 java/ql/test/library-tests/errorexpr/PrintAst.qlref create mode 100644 java/ql/test/library-tests/errorexpr/Test.java create mode 100644 java/ql/test/library-tests/errorexpr/options diff --git a/java/ql/lib/semmle/code/java/Expr.qll b/java/ql/lib/semmle/code/java/Expr.qll index 312d7767ac2..0ac6d83e7fe 100644 --- a/java/ql/lib/semmle/code/java/Expr.qll +++ b/java/ql/lib/semmle/code/java/Expr.qll @@ -276,7 +276,8 @@ class ExprParent extends @exprparent, Top { } * An error expression. * * These may be generated by upgrade or downgrade scripts when databases - * cannot be fully converted. + * cannot be fully converted, or generated by the extractor when extracting + * source code containing errors. */ class ErrorExpr extends Expr, @errorexpr { override string toString() { result = "" } diff --git a/java/ql/test/library-tests/errorexpr/PrintAst.expected b/java/ql/test/library-tests/errorexpr/PrintAst.expected new file mode 100644 index 00000000000..175835c7d8a --- /dev/null +++ b/java/ql/test/library-tests/errorexpr/PrintAst.expected @@ -0,0 +1,30 @@ +Test.java: +# 0| [CompilationUnit] Test +# 1| 1: [Class] Test +# 3| 2: [Method] yield +# 3| 3: [TypeAccess] int +#-----| 4: (Parameters) +# 3| 0: [Parameter] x +# 3| 0: [TypeAccess] int +# 3| 5: [BlockStmt] { ... } +# 3| 0: [ReturnStmt] return ... +# 3| 0: [VarAccess] x +# 5| 3: [Method] secondCall +# 5| 3: [TypeAccess] void +# 5| 5: [BlockStmt] { ... } +# 7| 4: [Method] yieldWrapper +# 7| 3: [TypeAccess] int +#-----| 4: (Parameters) +# 7| 0: [Parameter] x +# 7| 0: [TypeAccess] int +# 7| 5: [BlockStmt] { ... } +# 8| 0: [LocalVariableDeclStmt] var ...; +# 8| 0: [TypeAccess] int +# 8| 1: [LocalVariableDeclExpr] ret +# 8| 0: [ErrorExpr] +# 8| 0: [MethodAccess] yield(...) +# 8| 0: [VarAccess] x +# 9| 1: [ExprStmt] ; +# 9| 0: [MethodAccess] secondCall(...) +# 10| 2: [ReturnStmt] return ... +# 10| 0: [VarAccess] ret diff --git a/java/ql/test/library-tests/errorexpr/PrintAst.qlref b/java/ql/test/library-tests/errorexpr/PrintAst.qlref new file mode 100644 index 00000000000..c7fd5faf239 --- /dev/null +++ b/java/ql/test/library-tests/errorexpr/PrintAst.qlref @@ -0,0 +1 @@ +semmle/code/java/PrintAst.ql \ No newline at end of file diff --git a/java/ql/test/library-tests/errorexpr/Test.java b/java/ql/test/library-tests/errorexpr/Test.java new file mode 100644 index 00000000000..e4f4b7626f8 --- /dev/null +++ b/java/ql/test/library-tests/errorexpr/Test.java @@ -0,0 +1,13 @@ +public class Test { + + public int yield(int x) { return x; } + + public void secondCall() { } + + public int yieldWrapper(int x) { + int ret = yield(x); + secondCall(); + return ret; + } + +} diff --git a/java/ql/test/library-tests/errorexpr/options b/java/ql/test/library-tests/errorexpr/options new file mode 100644 index 00000000000..ea577f8c43e --- /dev/null +++ b/java/ql/test/library-tests/errorexpr/options @@ -0,0 +1 @@ +//semmle-extractor-options: --no-strict-javac-errors --javac-args -source 17 -target 17 From 4b5651bde93f0cd97ec14966383d5f144a5125bf Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 16 Aug 2023 16:51:24 +0100 Subject: [PATCH 415/788] Add test for Java extracting ErrorType --- .../library-tests/errortype/ErrorTypes.expected | 1 + java/ql/test/library-tests/errortype/ErrorTypes.ql | 3 +++ .../test/library-tests/errortype/PrintAst.expected | 14 ++++++++++++++ .../ql/test/library-tests/errortype/PrintAst.qlref | 1 + java/ql/test/library-tests/errortype/Test.java | 10 ++++++++++ java/ql/test/library-tests/errortype/options | 1 + 6 files changed, 30 insertions(+) create mode 100644 java/ql/test/library-tests/errortype/ErrorTypes.expected create mode 100644 java/ql/test/library-tests/errortype/ErrorTypes.ql create mode 100644 java/ql/test/library-tests/errortype/PrintAst.expected create mode 100644 java/ql/test/library-tests/errortype/PrintAst.qlref create mode 100644 java/ql/test/library-tests/errortype/Test.java create mode 100644 java/ql/test/library-tests/errortype/options diff --git a/java/ql/test/library-tests/errortype/ErrorTypes.expected b/java/ql/test/library-tests/errortype/ErrorTypes.expected new file mode 100644 index 00000000000..9214eaa8336 --- /dev/null +++ b/java/ql/test/library-tests/errortype/ErrorTypes.expected @@ -0,0 +1 @@ +| Test.java:7:12:7:14 | nsc | diff --git a/java/ql/test/library-tests/errortype/ErrorTypes.ql b/java/ql/test/library-tests/errortype/ErrorTypes.ql new file mode 100644 index 00000000000..c1f85da65c2 --- /dev/null +++ b/java/ql/test/library-tests/errortype/ErrorTypes.ql @@ -0,0 +1,3 @@ +import java + +select any(Expr e | e.getType() instanceof ErrorType) diff --git a/java/ql/test/library-tests/errortype/PrintAst.expected b/java/ql/test/library-tests/errortype/PrintAst.expected new file mode 100644 index 00000000000..76609c9cdeb --- /dev/null +++ b/java/ql/test/library-tests/errortype/PrintAst.expected @@ -0,0 +1,14 @@ +Test.java: +# 6| [TypeAccess] NoSuchClass +# 0| [CompilationUnit] Test +#-----| -1: (Imports) +# 1| 1: [ImportType] import NoSuchClass +# 3| 1: [Class] Test +# 5| 2: [Method] test +# 5| 3: [TypeAccess] NoSuchClass +# 5| 5: [BlockStmt] { ... } +# 6| 0: [LocalVariableDeclStmt] var ...; +# 6| 0: [TypeAccess] NoSuchClass +# 6| 1: [LocalVariableDeclExpr] nsc +# 7| 1: [ReturnStmt] return ... +# 7| 0: [VarAccess] nsc diff --git a/java/ql/test/library-tests/errortype/PrintAst.qlref b/java/ql/test/library-tests/errortype/PrintAst.qlref new file mode 100644 index 00000000000..c7fd5faf239 --- /dev/null +++ b/java/ql/test/library-tests/errortype/PrintAst.qlref @@ -0,0 +1 @@ +semmle/code/java/PrintAst.ql \ No newline at end of file diff --git a/java/ql/test/library-tests/errortype/Test.java b/java/ql/test/library-tests/errortype/Test.java new file mode 100644 index 00000000000..67f40611c90 --- /dev/null +++ b/java/ql/test/library-tests/errortype/Test.java @@ -0,0 +1,10 @@ +import nosuchpackage.NoSuchClass; + +public class Test { + + public NoSuchClass test() { + NoSuchClass nsc = new NoSuchClass(); + return nsc; + } + +} diff --git a/java/ql/test/library-tests/errortype/options b/java/ql/test/library-tests/errortype/options new file mode 100644 index 00000000000..ea577f8c43e --- /dev/null +++ b/java/ql/test/library-tests/errortype/options @@ -0,0 +1 @@ +//semmle-extractor-options: --no-strict-javac-errors --javac-args -source 17 -target 17 From c47ba000d6f78b9b5a0c0492aa5a9c9bed6b900c Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 11 Sep 2023 22:04:32 +0100 Subject: [PATCH 416/788] Add test exercising the case of a missing type used as an interface This induces the TypeEnter phase to create an ErrorType with a parameter, which in turn used to cause a stack overflow in comparing the TypeWrapper objects involved. Note the output remains somewhat broken, exposing an type, but at least the overflow is resolved. --- .../test/library-tests/errortype-with-params/Diags.expected | 1 + java/ql/test/library-tests/errortype-with-params/Diags.ql | 4 ++++ .../library-tests/errortype-with-params/ErrorTypes.expected | 0 .../test/library-tests/errortype-with-params/ErrorTypes.ql | 3 +++ .../library-tests/errortype-with-params/PrintAst.expected | 6 ++++++ .../test/library-tests/errortype-with-params/PrintAst.qlref | 1 + java/ql/test/library-tests/errortype-with-params/Test.java | 1 + java/ql/test/library-tests/errortype-with-params/options | 1 + 8 files changed, 17 insertions(+) create mode 100644 java/ql/test/library-tests/errortype-with-params/Diags.expected create mode 100644 java/ql/test/library-tests/errortype-with-params/Diags.ql create mode 100644 java/ql/test/library-tests/errortype-with-params/ErrorTypes.expected create mode 100644 java/ql/test/library-tests/errortype-with-params/ErrorTypes.ql create mode 100644 java/ql/test/library-tests/errortype-with-params/PrintAst.expected create mode 100644 java/ql/test/library-tests/errortype-with-params/PrintAst.qlref create mode 100644 java/ql/test/library-tests/errortype-with-params/Test.java create mode 100644 java/ql/test/library-tests/errortype-with-params/options diff --git a/java/ql/test/library-tests/errortype-with-params/Diags.expected b/java/ql/test/library-tests/errortype-with-params/Diags.expected new file mode 100644 index 00000000000..5bbf0362cfa --- /dev/null +++ b/java/ql/test/library-tests/errortype-with-params/Diags.expected @@ -0,0 +1 @@ +| Test.java:0:0:0:0 | 1 | diff --git a/java/ql/test/library-tests/errortype-with-params/Diags.ql b/java/ql/test/library-tests/errortype-with-params/Diags.ql new file mode 100644 index 00000000000..1774650beff --- /dev/null +++ b/java/ql/test/library-tests/errortype-with-params/Diags.ql @@ -0,0 +1,4 @@ +import java +import semmle.code.java.Diagnostics + +select any(Diagnostic d | not d.toString().matches("Not rewriting trap file for%")) diff --git a/java/ql/test/library-tests/errortype-with-params/ErrorTypes.expected b/java/ql/test/library-tests/errortype-with-params/ErrorTypes.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/errortype-with-params/ErrorTypes.ql b/java/ql/test/library-tests/errortype-with-params/ErrorTypes.ql new file mode 100644 index 00000000000..c1f85da65c2 --- /dev/null +++ b/java/ql/test/library-tests/errortype-with-params/ErrorTypes.ql @@ -0,0 +1,3 @@ +import java + +select any(Expr e | e.getType() instanceof ErrorType) diff --git a/java/ql/test/library-tests/errortype-with-params/PrintAst.expected b/java/ql/test/library-tests/errortype-with-params/PrintAst.expected new file mode 100644 index 00000000000..1c2e7a4f31e --- /dev/null +++ b/java/ql/test/library-tests/errortype-with-params/PrintAst.expected @@ -0,0 +1,6 @@ +Test.java: +# 0| [CompilationUnit] Test +# 1| 1: [Class] Test +#-----| -1: (Base Types) +# 1| 0: [TypeAccess] +# 1| 0: [TypeAccess] String diff --git a/java/ql/test/library-tests/errortype-with-params/PrintAst.qlref b/java/ql/test/library-tests/errortype-with-params/PrintAst.qlref new file mode 100644 index 00000000000..c7fd5faf239 --- /dev/null +++ b/java/ql/test/library-tests/errortype-with-params/PrintAst.qlref @@ -0,0 +1 @@ +semmle/code/java/PrintAst.ql \ No newline at end of file diff --git a/java/ql/test/library-tests/errortype-with-params/Test.java b/java/ql/test/library-tests/errortype-with-params/Test.java new file mode 100644 index 00000000000..9255d9a1ec3 --- /dev/null +++ b/java/ql/test/library-tests/errortype-with-params/Test.java @@ -0,0 +1 @@ +public class Test implements Unavailable { } diff --git a/java/ql/test/library-tests/errortype-with-params/options b/java/ql/test/library-tests/errortype-with-params/options new file mode 100644 index 00000000000..ea577f8c43e --- /dev/null +++ b/java/ql/test/library-tests/errortype-with-params/options @@ -0,0 +1 @@ +//semmle-extractor-options: --no-strict-javac-errors --javac-args -source 17 -target 17 From 6ea7b195db4b174798c884e05112f791da7f51ee Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 12 Sep 2023 18:07:13 +0100 Subject: [PATCH 417/788] Add test for a module declaration made in a file named other than module-info.java This triggers a weird corner case in our extractor, which used to throw a null pointer exception. --- .../test/library-tests/module-info-wrong-name/Diags.expected | 1 + java/ql/test/library-tests/module-info-wrong-name/Diags.ql | 4 ++++ .../module-info-wrong-name/module-info-wrong-name.java | 3 +++ java/ql/test/library-tests/module-info-wrong-name/options | 1 + .../test/library-tests/module-info-wrong-name/somepkg/D.java | 5 +++++ 5 files changed, 14 insertions(+) create mode 100644 java/ql/test/library-tests/module-info-wrong-name/Diags.expected create mode 100644 java/ql/test/library-tests/module-info-wrong-name/Diags.ql create mode 100644 java/ql/test/library-tests/module-info-wrong-name/module-info-wrong-name.java create mode 100644 java/ql/test/library-tests/module-info-wrong-name/options create mode 100644 java/ql/test/library-tests/module-info-wrong-name/somepkg/D.java diff --git a/java/ql/test/library-tests/module-info-wrong-name/Diags.expected b/java/ql/test/library-tests/module-info-wrong-name/Diags.expected new file mode 100644 index 00000000000..03a518c430b --- /dev/null +++ b/java/ql/test/library-tests/module-info-wrong-name/Diags.expected @@ -0,0 +1 @@ +| module-info-wrong-name.java:0:0:0:0 | 2 | diff --git a/java/ql/test/library-tests/module-info-wrong-name/Diags.ql b/java/ql/test/library-tests/module-info-wrong-name/Diags.ql new file mode 100644 index 00000000000..1774650beff --- /dev/null +++ b/java/ql/test/library-tests/module-info-wrong-name/Diags.ql @@ -0,0 +1,4 @@ +import java +import semmle.code.java.Diagnostics + +select any(Diagnostic d | not d.toString().matches("Not rewriting trap file for%")) diff --git a/java/ql/test/library-tests/module-info-wrong-name/module-info-wrong-name.java b/java/ql/test/library-tests/module-info-wrong-name/module-info-wrong-name.java new file mode 100644 index 00000000000..51d51bce394 --- /dev/null +++ b/java/ql/test/library-tests/module-info-wrong-name/module-info-wrong-name.java @@ -0,0 +1,3 @@ +module module.with.wrong.name { + exports somepkg; +} diff --git a/java/ql/test/library-tests/module-info-wrong-name/options b/java/ql/test/library-tests/module-info-wrong-name/options new file mode 100644 index 00000000000..ea577f8c43e --- /dev/null +++ b/java/ql/test/library-tests/module-info-wrong-name/options @@ -0,0 +1 @@ +//semmle-extractor-options: --no-strict-javac-errors --javac-args -source 17 -target 17 diff --git a/java/ql/test/library-tests/module-info-wrong-name/somepkg/D.java b/java/ql/test/library-tests/module-info-wrong-name/somepkg/D.java new file mode 100644 index 00000000000..21645a89fe5 --- /dev/null +++ b/java/ql/test/library-tests/module-info-wrong-name/somepkg/D.java @@ -0,0 +1,5 @@ +package somepkg; + +public class SomeClass { + public static void someMethod() {} +} From 9670f20bd7b6a3a23c945bf37864fe458ed56371 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 13 Sep 2023 16:11:10 +0100 Subject: [PATCH 418/788] Add test for method reference whose LHS has unknown type This can happen when imports or source classes are missing. --- .../unknown-method-reference-lhs/Diags.expected | 2 ++ .../library-tests/unknown-method-reference-lhs/Diags.ql | 4 ++++ .../library-tests/unknown-method-reference-lhs/Test.java | 7 +++++++ .../library-tests/unknown-method-reference-lhs/options | 1 + 4 files changed, 14 insertions(+) create mode 100644 java/ql/test/library-tests/unknown-method-reference-lhs/Diags.expected create mode 100644 java/ql/test/library-tests/unknown-method-reference-lhs/Diags.ql create mode 100644 java/ql/test/library-tests/unknown-method-reference-lhs/Test.java create mode 100644 java/ql/test/library-tests/unknown-method-reference-lhs/options diff --git a/java/ql/test/library-tests/unknown-method-reference-lhs/Diags.expected b/java/ql/test/library-tests/unknown-method-reference-lhs/Diags.expected new file mode 100644 index 00000000000..6809f2285ef --- /dev/null +++ b/java/ql/test/library-tests/unknown-method-reference-lhs/Diags.expected @@ -0,0 +1,2 @@ +| Test.java:0:0:0:0 | 1 | +| Test.java:4:13:4:30 | Unable to extract method reference Unavailable.f()::g with no owner type | diff --git a/java/ql/test/library-tests/unknown-method-reference-lhs/Diags.ql b/java/ql/test/library-tests/unknown-method-reference-lhs/Diags.ql new file mode 100644 index 00000000000..1774650beff --- /dev/null +++ b/java/ql/test/library-tests/unknown-method-reference-lhs/Diags.ql @@ -0,0 +1,4 @@ +import java +import semmle.code.java.Diagnostics + +select any(Diagnostic d | not d.toString().matches("Not rewriting trap file for%")) diff --git a/java/ql/test/library-tests/unknown-method-reference-lhs/Test.java b/java/ql/test/library-tests/unknown-method-reference-lhs/Test.java new file mode 100644 index 00000000000..2f2109514ae --- /dev/null +++ b/java/ql/test/library-tests/unknown-method-reference-lhs/Test.java @@ -0,0 +1,7 @@ +public class Test { + + public static void test() { + var x = Unavailable.f()::g; + } + +} diff --git a/java/ql/test/library-tests/unknown-method-reference-lhs/options b/java/ql/test/library-tests/unknown-method-reference-lhs/options new file mode 100644 index 00000000000..ea577f8c43e --- /dev/null +++ b/java/ql/test/library-tests/unknown-method-reference-lhs/options @@ -0,0 +1 @@ +//semmle-extractor-options: --no-strict-javac-errors --javac-args -source 17 -target 17 From b1e128b5c1608c545fd86d1fbd6c74b2741f0a97 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 14 Sep 2023 14:23:49 +0100 Subject: [PATCH 419/788] Pretty-print a ClassInstanceExpr without a bound constructor nicely --- java/ql/lib/semmle/code/java/Expr.qll | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/Expr.qll b/java/ql/lib/semmle/code/java/Expr.qll index 0ac6d83e7fe..9179801d743 100644 --- a/java/ql/lib/semmle/code/java/Expr.qll +++ b/java/ql/lib/semmle/code/java/Expr.qll @@ -1244,7 +1244,11 @@ class ClassInstanceExpr extends Expr, ConstructorCall, @classinstancexpr { override Stmt getEnclosingStmt() { result = Expr.super.getEnclosingStmt() } /** Gets a printable representation of this expression. */ - override string toString() { result = "new " + this.getConstructor().getName() + "(...)" } + override string toString() { + result = "new " + this.getConstructor().getName() + "(...)" + or + not exists(this.getConstructor()) and result = "" + } override string getAPrimaryQlClass() { result = "ClassInstanceExpr" } } From a1a764042767745cc647c652e5a34197e57a0161 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 14 Sep 2023 14:21:42 +0100 Subject: [PATCH 420/788] Give ErrorExpr default control flow This prevents a CFG dead-end because of one ErrorExpr --- java/ql/lib/semmle/code/java/ControlFlowGraph.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index 229c526d270..1ca3732ee93 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -477,6 +477,8 @@ private module ControlFlowGraphImpl { or this instanceof Call // includes both expressions and statements or + this instanceof ErrorExpr + or this instanceof ReturnStmt or this instanceof ThrowStmt From 8f940c311ae41b7ca30837dd984db9d2cfe2a27c Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 14 Sep 2023 14:35:41 +0100 Subject: [PATCH 421/788] Update expectations and add expected diagnostics --- .../test/library-tests/errortype-with-params/Diags.expected | 2 +- java/ql/test/library-tests/errortype-with-params/Test.java | 2 ++ java/ql/test/library-tests/errortype/Diags.expected | 3 +++ java/ql/test/library-tests/errortype/Diags.ql | 4 ++++ java/ql/test/library-tests/errortype/PrintAst.expected | 3 ++- java/ql/test/library-tests/errortype/Test.java | 4 ++++ .../test/library-tests/module-info-wrong-name/Diags.expected | 2 +- .../module-info-wrong-name/module-info-wrong-name.java | 2 ++ 8 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 java/ql/test/library-tests/errortype/Diags.expected create mode 100644 java/ql/test/library-tests/errortype/Diags.ql diff --git a/java/ql/test/library-tests/errortype-with-params/Diags.expected b/java/ql/test/library-tests/errortype-with-params/Diags.expected index 5bbf0362cfa..7f1b6e729f7 100644 --- a/java/ql/test/library-tests/errortype-with-params/Diags.expected +++ b/java/ql/test/library-tests/errortype-with-params/Diags.expected @@ -1 +1 @@ -| Test.java:0:0:0:0 | 1 | +| file://:0:0:0:0 | 1 errors during annotation processing | diff --git a/java/ql/test/library-tests/errortype-with-params/Test.java b/java/ql/test/library-tests/errortype-with-params/Test.java index 9255d9a1ec3..384d2395a2a 100644 --- a/java/ql/test/library-tests/errortype-with-params/Test.java +++ b/java/ql/test/library-tests/errortype-with-params/Test.java @@ -1 +1,3 @@ public class Test implements Unavailable { } + +// Diagnostic Matches: 1 errors during annotation processing diff --git a/java/ql/test/library-tests/errortype/Diags.expected b/java/ql/test/library-tests/errortype/Diags.expected new file mode 100644 index 00000000000..6dd6f1d91a1 --- /dev/null +++ b/java/ql/test/library-tests/errortype/Diags.expected @@ -0,0 +1,3 @@ +| Test.java:0:0:0:0 | 2 javac errors | +| Test.java:6:23:6:39 | Unexpected symbol for constructor: new NoSuchClass() | +| file://:0:0:0:0 | 2 errors during annotation processing | diff --git a/java/ql/test/library-tests/errortype/Diags.ql b/java/ql/test/library-tests/errortype/Diags.ql new file mode 100644 index 00000000000..1774650beff --- /dev/null +++ b/java/ql/test/library-tests/errortype/Diags.ql @@ -0,0 +1,4 @@ +import java +import semmle.code.java.Diagnostics + +select any(Diagnostic d | not d.toString().matches("Not rewriting trap file for%")) diff --git a/java/ql/test/library-tests/errortype/PrintAst.expected b/java/ql/test/library-tests/errortype/PrintAst.expected index 76609c9cdeb..d0780a453e9 100644 --- a/java/ql/test/library-tests/errortype/PrintAst.expected +++ b/java/ql/test/library-tests/errortype/PrintAst.expected @@ -1,5 +1,4 @@ Test.java: -# 6| [TypeAccess] NoSuchClass # 0| [CompilationUnit] Test #-----| -1: (Imports) # 1| 1: [ImportType] import NoSuchClass @@ -10,5 +9,7 @@ Test.java: # 6| 0: [LocalVariableDeclStmt] var ...; # 6| 0: [TypeAccess] NoSuchClass # 6| 1: [LocalVariableDeclExpr] nsc +# 6| 0: [ClassInstanceExpr] +# 6| -3: [TypeAccess] NoSuchClass # 7| 1: [ReturnStmt] return ... # 7| 0: [VarAccess] nsc diff --git a/java/ql/test/library-tests/errortype/Test.java b/java/ql/test/library-tests/errortype/Test.java index 67f40611c90..25fc6591972 100644 --- a/java/ql/test/library-tests/errortype/Test.java +++ b/java/ql/test/library-tests/errortype/Test.java @@ -8,3 +8,7 @@ public class Test { } } + +// Diagnostic Matches: Unexpected symbol for constructor: new NoSuchClass() +// Diagnostic Matches: 2 javac errors +// Diagnostic Matches: 2 errors during annotation processing diff --git a/java/ql/test/library-tests/module-info-wrong-name/Diags.expected b/java/ql/test/library-tests/module-info-wrong-name/Diags.expected index 03a518c430b..12201a5eaba 100644 --- a/java/ql/test/library-tests/module-info-wrong-name/Diags.expected +++ b/java/ql/test/library-tests/module-info-wrong-name/Diags.expected @@ -1 +1 @@ -| module-info-wrong-name.java:0:0:0:0 | 2 | +| file://:0:0:0:0 | 2 errors during annotation processing | diff --git a/java/ql/test/library-tests/module-info-wrong-name/module-info-wrong-name.java b/java/ql/test/library-tests/module-info-wrong-name/module-info-wrong-name.java index 51d51bce394..3adfbc27708 100644 --- a/java/ql/test/library-tests/module-info-wrong-name/module-info-wrong-name.java +++ b/java/ql/test/library-tests/module-info-wrong-name/module-info-wrong-name.java @@ -1,3 +1,5 @@ module module.with.wrong.name { exports somepkg; } + +// Diagnostic Matches: 2 errors during annotation processing From d9f7180b5c91b4ea74f4df548e67374fc15c076a Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 14 Sep 2023 17:38:42 +0100 Subject: [PATCH 422/788] Add missing diagnostic expectations --- java/ql/test/library-tests/errorexpr/Test.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/ql/test/library-tests/errorexpr/Test.java b/java/ql/test/library-tests/errorexpr/Test.java index e4f4b7626f8..cd18f0564ce 100644 --- a/java/ql/test/library-tests/errorexpr/Test.java +++ b/java/ql/test/library-tests/errorexpr/Test.java @@ -11,3 +11,7 @@ public class Test { } } + +// Diagnostic Matches: Erroneous node in tree: (ERROR) +// Diagnostic Matches: In file Test.java:8:15 no end location for JCMethodInvocation : yield(x) +// Diagnostic Matches: 1 errors during annotation processing From 5f6a40b9e8cc4557aac41d6f0dc5633980940311 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 14 Sep 2023 17:41:08 +0100 Subject: [PATCH 423/788] Note Kotlin test no longer has CFG dead-ends if ErrorExpr participates in the CFG --- .../kotlin/library-tests/exprs/CONSISTENCY/cfgDeadEnds.expected | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 java/ql/test/kotlin/library-tests/exprs/CONSISTENCY/cfgDeadEnds.expected diff --git a/java/ql/test/kotlin/library-tests/exprs/CONSISTENCY/cfgDeadEnds.expected b/java/ql/test/kotlin/library-tests/exprs/CONSISTENCY/cfgDeadEnds.expected deleted file mode 100644 index d7025aaef88..00000000000 --- a/java/ql/test/kotlin/library-tests/exprs/CONSISTENCY/cfgDeadEnds.expected +++ /dev/null @@ -1,2 +0,0 @@ -| exprs.kt:278:52:278:66 | | ErrorExpr | unexpected dead end | -| exprs.kt:278:52:278:66 | { ... } | BlockStmt | unexpected dead end | From c83a29c27f2297ae19ac58b30a5328b0c11d08f0 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 14 Sep 2023 21:19:04 +0200 Subject: [PATCH 424/788] Ruby: Fix a bad join Before ``` Evaluated relational algebra for predicate Sinatra#e09174a3::Sinatra::ErbLocalsAccessSummary#fff@22c05bb6 with tuple counts: 212957 ~2195% {1} r1 = JOIN _Constant#54e8b051::ConstantValue::getStringlikeValue#0#dispred#ff_Expr#6fb2af19::Expr::getConstantV__#shared WITH Expr#6fb2af19::Pair::getKey#0#dispred#ff_1#join_rhs ON FIRST 1 OUTPUT Lhs.1 43862468 ~6045% {2} r2 = JOIN r1 WITH Call#841c84e8::MethodCall::getMethodName#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.0 43862468 ~6581% {2} r3 = JOIN r2 WITH AST#a6718388::AstNode::getLocation#0#dispred#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1 43844886 ~40661% {2} r4 = JOIN r3 WITH locations_default ON FIRST 1 OUTPUT Rhs.1, Lhs.1 15004 ~8295% {3} r5 = JOIN r4 WITH project#Sinatra#e09174a3::Sinatra::ErbLocalsHashSyntheticGlobal#ffff_201#join_rhs ON FIRST 1 OUTPUT Rhs.2, Lhs.1, Rhs.1 15004 ~8890% {3} r6 = SCAN r5 OUTPUT ("sinatra_erb_locals_access()" ++ In.0 ++ "#" ++ In.1), In.2, In.1 return r6 ``` After ``` Evaluated relational algebra for predicate Sinatra#e09174a3::Sinatra::ErbLocalsAccessSummary#fff@f6249cga with tuple counts: 10237 ~0% {3} r1 = JOIN locations_default_10#join_rhs WITH project#Sinatra#e09174a3::Sinatra::ErbLocalsHashSyntheticGlobal#ffff_201#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2 4015 ~5% {3} r2 = JOIN r1 WITH AST#a6718388::AstNode::getLocation#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2 825 ~96% {3} r3 = JOIN r2 WITH Call#841c84e8::MethodCall::getMethodName#0#dispred#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2 940 ~0% {4} r4 = JOIN r3 WITH Constant#54e8b051::ConstantValue::getStringlikeValue#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.0 325402 ~0% {4} r5 = JOIN r4 WITH Expr#6fb2af19::Expr::getConstantValue#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3 231819 ~133147% {3} r6 = JOIN r5 WITH Expr#6fb2af19::Pair::getKey#0#dispred#ff_1#join_rhs ON FIRST 1 OUTPUT Lhs.2, Lhs.3, Lhs.1 231819 ~138805% {3} r7 = SCAN r6 OUTPUT ("sinatra_erb_locals_access()" ++ In.0 ++ "#" ++ In.1), In.2, In.1 return r7 ``` --- ruby/ql/lib/codeql/ruby/frameworks/Sinatra.qll | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Sinatra.qll b/ruby/ql/lib/codeql/ruby/frameworks/Sinatra.qll index dcec7524bc2..01795386a30 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Sinatra.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Sinatra.qll @@ -179,6 +179,12 @@ module Sinatra { } } + bindingset[local] + pragma[inline_late] + private predicate isPairKey(string local) { + local = any(Pair p).getKey().getConstantValue().getStringlikeValue() + } + /** * A summary for accessing a local variable in an ERB template. * This is the second half of the modeling of the flow from the `locals` @@ -192,7 +198,7 @@ module Sinatra { ErbLocalsAccessSummary() { this = "sinatra_erb_locals_access()" + global.getId() + "#" + local and local = any(MethodCall c | c.getLocation().getFile() = global.getErbFile()).getMethodName() and - local = any(Pair p).getKey().getConstantValue().getStringlikeValue() + isPairKey(local) } override MethodCall getACall() { From c5001a86f6ed048f86899afcdd94790d4e373ed9 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 14 Sep 2023 20:45:54 +0100 Subject: [PATCH 425/788] Fix test expectations --- .../library-tests/unknown-method-reference-lhs/Diags.expected | 2 +- .../test/library-tests/unknown-method-reference-lhs/Test.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/java/ql/test/library-tests/unknown-method-reference-lhs/Diags.expected b/java/ql/test/library-tests/unknown-method-reference-lhs/Diags.expected index 6809f2285ef..c5f9f210946 100644 --- a/java/ql/test/library-tests/unknown-method-reference-lhs/Diags.expected +++ b/java/ql/test/library-tests/unknown-method-reference-lhs/Diags.expected @@ -1,2 +1,2 @@ -| Test.java:0:0:0:0 | 1 | +| Test.java:0:0:0:0 | 1 javac errors | | Test.java:4:13:4:30 | Unable to extract method reference Unavailable.f()::g with no owner type | diff --git a/java/ql/test/library-tests/unknown-method-reference-lhs/Test.java b/java/ql/test/library-tests/unknown-method-reference-lhs/Test.java index 2f2109514ae..0d3e46297d7 100644 --- a/java/ql/test/library-tests/unknown-method-reference-lhs/Test.java +++ b/java/ql/test/library-tests/unknown-method-reference-lhs/Test.java @@ -5,3 +5,6 @@ public class Test { } } + +// Diagnostic Matches: 1 javac errors +// Diagnostic Matches: Unable to extract method reference Unavailable.f()::g with no owner type From d725bd91690eec1edeac10770855e03210e9fb65 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Fri, 15 Sep 2023 10:52:30 +0200 Subject: [PATCH 426/788] C#: Generate source file with implicit usings in Standalone --- .../DependencyManager.cs | 130 ++++++++++++++---- .../FileContent.cs | 56 +++++++- .../Git.cs | 61 -------- .../Semmle.Util/EnvironmentVariables.cs | 2 + 4 files changed, 158 insertions(+), 91 deletions(-) delete mode 100644 csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Git.cs diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 5d026722134..e8d9b7760c7 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -30,9 +30,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private readonly DotNet dotnet; private readonly FileContent fileContent; private readonly TemporaryDirectory packageDirectory; - private TemporaryDirectory? razorWorkingDirectory; - private readonly Git git; - + private readonly TemporaryDirectory tempWorkingDirectory; /// /// Performs C# dependency fetching. @@ -60,20 +58,21 @@ namespace Semmle.Extraction.CSharp.DependencyFetching this.progressMonitor.FindingFiles(srcDir); packageDirectory = new TemporaryDirectory(ComputeTempDirectory(sourceDir.FullName)); - var allFiles = GetAllFiles().ToList(); - var smallFiles = allFiles.SelectSmallFiles(progressMonitor).SelectFileNames(); - this.fileContent = new FileContent(progressMonitor, smallFiles); - this.allSources = allFiles.SelectFileNamesByExtension(".cs").ToList(); - var allProjects = allFiles.SelectFileNamesByExtension(".csproj"); + tempWorkingDirectory = new TemporaryDirectory(GetTemporaryWorkingDirectory()); + + var allFiles = GetAllFiles(); + var binaryFileExtensions = new HashSet(new[] { ".dll", ".exe" }); // TODO: add more binary file extensions. + var allNonBinaryFiles = allFiles.Where(f => !binaryFileExtensions.Contains(f.Extension.ToLowerInvariant())).ToList(); + var smallNonBinaryFiles = allNonBinaryFiles.SelectSmallFiles(progressMonitor).SelectFileNames(); + this.fileContent = new FileContent(progressMonitor, smallNonBinaryFiles); + this.allSources = allNonBinaryFiles.SelectFileNamesByExtension(".cs").ToList(); + var allProjects = allNonBinaryFiles.SelectFileNamesByExtension(".csproj"); var solutions = options.SolutionFile is not null ? new[] { options.SolutionFile } - : allFiles.SelectFileNamesByExtension(".sln"); - - // If DLL reference paths are specified on the command-line, use those to discover - // assemblies. Otherwise (the default), query the git CLI to determine which DLL files - // are tracked as part of the repository. - this.git = new Git(this.progressMonitor); - var dllDirNames = options.DllDirs.Count == 0 ? this.git.ListFiles("*.dll") : options.DllDirs.Select(Path.GetFullPath).ToList(); + : allNonBinaryFiles.SelectFileNamesByExtension(".sln"); + var dllDirNames = options.DllDirs.Count == 0 + ? allFiles.SelectFileNamesByExtension(".dll").ToList() + : options.DllDirs.Select(Path.GetFullPath).ToList(); // Find DLLs in the .Net / Asp.Net Framework if (options.ScanNetFrameworkDlls) @@ -106,7 +105,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching var restoredProjects = RestoreSolutions(solutions); var projects = allProjects.Except(restoredProjects); RestoreProjects(projects); - DownloadMissingPackages(allFiles); + DownloadMissingPackages(allNonBinaryFiles); } assemblyCache = new AssemblyCache(dllDirNames, progressMonitor); @@ -134,9 +133,11 @@ namespace Semmle.Extraction.CSharp.DependencyFetching if (bool.TryParse(webViewExtractionOption, out var shouldExtractWebViews) && shouldExtractWebViews) { - GenerateSourceFilesFromWebViews(allFiles); + GenerateSourceFilesFromWebViews(allNonBinaryFiles); } + GenerateSourceFileFromImplicitUsings(); + progressMonitor.Summary( AllSourceFiles.Count(), ProjectSourceFiles.Count(), @@ -149,6 +150,46 @@ namespace Semmle.Extraction.CSharp.DependencyFetching DateTime.Now - startTime); } + private void GenerateSourceFileFromImplicitUsings() + { + var usings = new HashSet(); + if (!fileContent.UseImplicitUsings) + { + return; + } + + // Hardcoded values from https://learn.microsoft.com/en-us/dotnet/core/project-sdk/overview#implicit-using-directives + usings.UnionWith(new[] { "System", "System.Collections.Generic", "System.IO", "System.Linq", "System.Net.Http", "System.Threading", + "System.Threading.Tasks" }); + + if (fileContent.UseAspNetDlls) + { + usings.UnionWith(new[] { "System.Net.Http.Json", "Microsoft.AspNetCore.Builder", "Microsoft.AspNetCore.Hosting", + "Microsoft.AspNetCore.Http", "Microsoft.AspNetCore.Routing", "Microsoft.Extensions.Configuration", + "Microsoft.Extensions.DependencyInjection", "Microsoft.Extensions.Hosting", "Microsoft.Extensions.Logging" }); + } + + usings.UnionWith(fileContent.CustomImplicitUsings); + + if (usings.Count > 0) + { + var tempDir = GetTemporaryWorkingDirectory("implicitUsings"); + var path = Path.Combine(tempDir, "GlobalUsings.g.cs"); + using (var writer = new StreamWriter(path)) + { + writer.WriteLine("// "); + writer.WriteLine(""); + + foreach (var u in usings.OrderBy(u => u)) + { + writer.WriteLine($"global using global::{u};"); + } + } + + this.allSources.Add(path); + } + } + private void GenerateSourceFilesFromWebViews(List allFiles) { progressMonitor.LogInfo($"Generating source files from cshtml and razor files."); @@ -165,8 +206,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching try { var razor = new Razor(sdk, dotnet, progressMonitor); - razorWorkingDirectory = new TemporaryDirectory(ComputeTempDirectory(sourceDir.FullName, "razor")); - var generatedFiles = razor.GenerateFiles(views, usedReferences.Keys, razorWorkingDirectory.ToString()); + var targetDir = GetTemporaryWorkingDirectory("razor"); + var generatedFiles = razor.GenerateFiles(views, usedReferences.Keys, targetDir); this.allSources.AddRange(generatedFiles); } catch (Exception ex) @@ -180,16 +221,25 @@ namespace Semmle.Extraction.CSharp.DependencyFetching public DependencyManager(string srcDir) : this(srcDir, DependencyOptions.Default, new ConsoleLogger(Verbosity.Info)) { } - private IEnumerable GetAllFiles() => - sourceDir.GetFiles("*.*", new EnumerationOptions { RecurseSubdirectories = true }) - .Where(d => d.Extension != ".dll" && !options.ExcludesFile(d.FullName)); + private IEnumerable GetAllFiles() + { + var files = sourceDir.GetFiles("*.*", new EnumerationOptions { RecurseSubdirectories = true }) + .Where(d => !options.ExcludesFile(d.FullName)); + + if (options.DotNetPath != null) + { + files = files.Where(f => !f.FullName.StartsWith(options.DotNetPath, StringComparison.OrdinalIgnoreCase)); + } + + return files; + } /// /// Computes a unique temp directory for the packages associated /// with this source tree. Use a SHA1 of the directory name. /// /// The full path of the temp directory. - private static string ComputeTempDirectory(string srcDir, string subfolderName = "packages") + private static string ComputeTempDirectory(string srcDir) { var bytes = Encoding.Unicode.GetBytes(srcDir); var sha = SHA1.HashData(bytes); @@ -197,7 +247,35 @@ namespace Semmle.Extraction.CSharp.DependencyFetching foreach (var b in sha.Take(8)) sb.AppendFormat("{0:x2}", b); - return Path.Combine(Path.GetTempPath(), "GitHub", subfolderName, sb.ToString()); + return Path.Combine(Path.GetTempPath(), "GitHub", "packages", sb.ToString()); + } + + private static string GetTemporaryWorkingDirectory() + { + var tempFolder = EnvironmentVariables.GetScratchDirectory(); + + if (string.IsNullOrEmpty(tempFolder)) + { + var tempPath = Path.GetTempPath(); + var name = Guid.NewGuid().ToString("N").ToUpper(); + tempFolder = Path.Combine(tempPath, "GitHub", name); + } + + return tempFolder; + } + + /// + /// Creates a temporary directory with the given subfolder name. + /// The created directory might be inside the repo folder, and it is deleted when the object is disposed. + /// + /// + /// + private string GetTemporaryWorkingDirectory(string subfolder) + { + var temp = Path.Combine(tempWorkingDirectory.ToString(), subfolder); + Directory.CreateDirectory(temp); + + return temp; } /// @@ -424,7 +502,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching foreach (var package in notYetDownloadedPackages) { progressMonitor.NugetInstall(package); - using var tempDir = new TemporaryDirectory(ComputeTempDirectory(package)); + using var tempDir = new TemporaryDirectory(GetTemporaryWorkingDirectory(package)); var success = dotnet.New(tempDir.DirInfo.FullName); if (!success) { @@ -467,7 +545,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching public void Dispose() { packageDirectory?.Dispose(); - razorWorkingDirectory?.Dispose(); + tempWorkingDirectory?.Dispose(); } } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs index 35bdce4750d..1dd0ad42318 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs @@ -19,6 +19,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private readonly IUnsafeFileReader unsafeFileReader; private readonly IEnumerable files; private readonly HashSet allPackages = new HashSet(); + private readonly HashSet implicitUsingNamespaces = new HashSet(); private readonly Initializer initialize; public HashSet AllPackages @@ -48,6 +49,26 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } } + private bool useImplicitUsings = false; + + public bool UseImplicitUsings + { + get + { + initialize.Run(); + return useImplicitUsings; + } + } + + public HashSet CustomImplicitUsings + { + get + { + initialize.Run(); + return implicitUsingNamespaces; + } + } + internal FileContent(ProgressMonitor progressMonitor, IEnumerable files, IUnsafeFileReader unsafeFileReader) @@ -62,7 +83,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching public FileContent(ProgressMonitor progressMonitor, IEnumerable files) : this(progressMonitor, files, new UnsafeFileReader()) { } - private static string GetGroup(ReadOnlySpan input, ValueMatch valueMatch, string groupPrefix) + private static string GetGroup(ReadOnlySpan input, ValueMatch valueMatch, string groupPrefix, bool toLower) { var match = input.Slice(valueMatch.Index, valueMatch.Length); var includeIndex = match.IndexOf(groupPrefix, StringComparison.InvariantCultureIgnoreCase); @@ -76,7 +97,14 @@ namespace Semmle.Extraction.CSharp.DependencyFetching var quoteIndex1 = match.IndexOf("\""); var quoteIndex2 = match.Slice(quoteIndex1 + 1).IndexOf("\""); - return match.Slice(quoteIndex1 + 1, quoteIndex2).ToString().ToLowerInvariant(); + var result = match.Slice(quoteIndex1 + 1, quoteIndex2).ToString(); + + if (toLower) + { + result = result.ToLowerInvariant(); + } + + return result; } private static bool IsGroupMatch(ReadOnlySpan line, Regex regex, string groupPrefix, string value) @@ -84,7 +112,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching foreach (var valueMatch in regex.EnumerateMatches(line)) { // We can't get the group from the ValueMatch, so doing it manually: - if (GetGroup(line, valueMatch, groupPrefix) == value.ToLowerInvariant()) + if (GetGroup(line, valueMatch, groupPrefix, toLower: true) == value.ToLowerInvariant()) { return true; } @@ -105,7 +133,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching foreach (var valueMatch in PackageReference().EnumerateMatches(line)) { // We can't get the group from the ValueMatch, so doing it manually: - var packageName = GetGroup(line, valueMatch, "Include"); + var packageName = GetGroup(line, valueMatch, "Include", toLower: true); if (!string.IsNullOrEmpty(packageName)) { allPackages.Add(packageName); @@ -119,6 +147,23 @@ namespace Semmle.Extraction.CSharp.DependencyFetching IsGroupMatch(line, ProjectSdk(), "Sdk", "Microsoft.NET.Sdk.Web") || IsGroupMatch(line, FrameworkReference(), "Include", "Microsoft.AspNetCore.App"); } + + // Determine if implicit usings are used. + if (!useImplicitUsings) + { + useImplicitUsings = line.Contains("enable".AsSpan(), StringComparison.Ordinal) || + line.Contains("true".AsSpan(), StringComparison.Ordinal); + } + + // Find all custom implicit usings. + foreach (var valueMatch in CustomImplicitUsingDeclarations().EnumerateMatches(line)) + { + var ns = GetGroup(line, valueMatch, "Include", toLower: false); + if (!string.IsNullOrEmpty(ns)) + { + implicitUsingNamespaces.Add(ns); + } + } } } catch (Exception ex) @@ -136,6 +181,9 @@ namespace Semmle.Extraction.CSharp.DependencyFetching [GeneratedRegex("<(.*\\s)?Project.*\\sSdk=\"(.*?)\".*/?>", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline)] private static partial Regex ProjectSdk(); + + [GeneratedRegex("", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline)] + private static partial Regex CustomImplicitUsingDeclarations(); } internal interface IUnsafeFileReader diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Git.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Git.cs deleted file mode 100644 index d8baf49483b..00000000000 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Git.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; - -namespace Semmle.Extraction.CSharp.DependencyFetching -{ - /// - /// Utilities for querying information from the git CLI. - /// - internal class Git - { - private readonly ProgressMonitor progressMonitor; - private const string git = "git"; - - public Git(ProgressMonitor progressMonitor) - { - this.progressMonitor = progressMonitor; - } - - /// - /// Lists all files matching which are tracked in the - /// current git repository. - /// - /// The file pattern. - /// A list of all tracked files which match . - /// - public List ListFiles(string pattern) - { - var results = new List(); - var args = string.Join(' ', "ls-files", $"\"{pattern}\""); - - progressMonitor.RunningProcess($"{git} {args}"); - var pi = new ProcessStartInfo(git, args) - { - UseShellExecute = false, - RedirectStandardOutput = true - }; - - using var p = new Process() { StartInfo = pi }; - p.OutputDataReceived += new DataReceivedEventHandler((sender, e) => - { - if (!string.IsNullOrWhiteSpace(e.Data)) - { - results.Add(e.Data); - } - }); - p.Start(); - p.BeginOutputReadLine(); - p.WaitForExit(); - - if (p.ExitCode != 0) - { - progressMonitor.CommandFailed(git, args, p.ExitCode); - throw new Exception($"{git} {args} failed"); - } - - return results; - } - - } -} diff --git a/csharp/extractor/Semmle.Util/EnvironmentVariables.cs b/csharp/extractor/Semmle.Util/EnvironmentVariables.cs index 9dcccf6d878..e6735e8741a 100644 --- a/csharp/extractor/Semmle.Util/EnvironmentVariables.cs +++ b/csharp/extractor/Semmle.Util/EnvironmentVariables.cs @@ -7,6 +7,8 @@ namespace Semmle.Util public static string? GetExtractorOption(string name) => Environment.GetEnvironmentVariable($"CODEQL_EXTRACTOR_CSHARP_OPTION_{name.ToUpper()}"); + public static string? GetScratchDirectory() => Environment.GetEnvironmentVariable("CODEQL_EXTRACTOR_CSHARP_SCRATCH_DIR"); + public static int GetDefaultNumberOfThreads() { if (!int.TryParse(Environment.GetEnvironmentVariable("CODEQL_THREADS"), out var threads) || threads == -1) From a510a7b4c0ac75fec829053372f02b473e4d1bae Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 1 Aug 2023 10:29:08 +0100 Subject: [PATCH 427/788] Add insecure direct object reference definitions and factor out those from missing access control --- .../csharp/security/auth/ActionMethods.qll | 107 ++++++++++++++++++ .../InsecureDirectObjectRefrerenceQuery.qll | 28 +++++ ...MissingFunctionLevelAccessControlQuery.qll | 91 +-------------- 3 files changed, 136 insertions(+), 90 deletions(-) create mode 100644 csharp/ql/lib/semmle/code/csharp/security/auth/ActionMethods.qll create mode 100644 csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectRefrerenceQuery.qll diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/ActionMethods.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/ActionMethods.qll new file mode 100644 index 00000000000..b3d8dc2701b --- /dev/null +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/ActionMethods.qll @@ -0,0 +1,107 @@ +/** Common definitions for queries checking for access control measures on action methods. */ + +import csharp +import semmle.code.csharp.frameworks.microsoft.AspNetCore +import semmle.code.csharp.frameworks.system.web.UI + +/** A method representing an action for a web endpoint. */ +abstract class ActionMethod extends Method { + /** + * Gets a string that can indicate what this method does to determine if it should have an auth check; + * such as its method name, class name, or file path. + */ + string getADescription() { + result = [this.getName(), this.getDeclaringType().getBaseClass*().getName(), this.getARoute()] + } + + /** Holds if this method may represent a stateful action such as editing or deleting */ + predicate isEdit() { + exists(string str | + str = + this.getADescription() + // separate camelCase words + .regexpReplaceAll("([a-z])([A-Z])", "$1_$2") + .toLowerCase() and + str.regexpMatch(".*(edit|delete|modify|change).*") and + not str.regexpMatch(".*(on_?change|changed).*") + ) + } + + /** Holds if this method may be intended to be restricted to admin users */ + predicate isAdmin() { + this.getADescription() + // separate camelCase words + .regexpReplaceAll("([a-z])([A-Z])", "$1_$2") + .toLowerCase() + .regexpMatch(".*(admin|superuser).*") + } + + /** Holds if this method may need an authorization check. */ + predicate needsAuth() { this.isEdit() or this.isAdmin() } + + /** Gets a callable for which if it contains an auth check, this method should be considered authenticated. */ + Callable getAnAuthorizingCallable() { result = this } + + /** + * Gets a possible url route that could refer to this action, + * which would be covered by `` configurations specifying a prefix of it. + */ + string getARoute() { result = this.getDeclaringType().getFile().getRelativePath() } +} + +/** An action method in the MVC framework. */ +private class MvcActionMethod extends ActionMethod { + MvcActionMethod() { this = any(MicrosoftAspNetCoreMvcController c).getAnActionMethod() } +} + +/** An action method on a subclass of `System.Web.UI.Page`. */ +private class WebFormActionMethod extends ActionMethod { + WebFormActionMethod() { + this.getDeclaringType().getBaseClass+() instanceof SystemWebUIPageClass and + this.getAParameter().getType().getName().matches("%EventArgs") + } + + override Callable getAnAuthorizingCallable() { + result = super.getAnAuthorizingCallable() + or + result.getDeclaringType() = this.getDeclaringType() and + result.getName() = "Page_Load" + } + + override string getARoute() { + exists(string physicalRoute | physicalRoute = super.getARoute() | + result = physicalRoute + or + exists(string absolutePhysical | + virtualRouteMapping(result, absolutePhysical) and + physicalRouteMatches(absolutePhysical, physicalRoute) + ) + ) + } +} + +/** + * Holds if `virtualRoute` is a URL path + * that can map to the corresponding `physicalRoute` filepath + * through a call to `MapPageRoute` + */ +private predicate virtualRouteMapping(string virtualRoute, string physicalRoute) { + exists(MethodCall mapPageRouteCall, StringLiteral virtualLit, StringLiteral physicalLit | + mapPageRouteCall + .getTarget() + .hasQualifiedName("System.Web.Routing", "RouteCollection", "MapPageRoute") and + virtualLit = mapPageRouteCall.getArgument(1) and + physicalLit = mapPageRouteCall.getArgument(2) and + virtualLit.getValue() = virtualRoute and + physicalLit.getValue() = physicalRoute + ) +} + +/** Holds if the filepath `route` can refer to `actual` after expanding a '~". */ +bindingset[route, actual] +private predicate physicalRouteMatches(string route, string actual) { + route = actual + or + route.charAt(0) = "~" and + exists(string dir | actual = dir + route.suffix(1) + ".cs") +} diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectRefrerenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectRefrerenceQuery.qll new file mode 100644 index 00000000000..1596f98f714 --- /dev/null +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectRefrerenceQuery.qll @@ -0,0 +1,28 @@ +/** Definitions for the Insecure Direct Object Reference query */ + +import csharp +import semmle.code.csharp.dataflow.flowsources.Remote +import ActionMethods + +private predicate needsChecks(ActionMethod m) { m.isEdit() and not m.isAdmin() } + +private predicate hasIdParameter(ActionMethod m) { + exists(RemoteFlowSource src | src.getEnclosingCallable() = m | + src.asParameter().getName().toLowerCase().matches("%id") + or + exists(StringLiteral idStr | + idStr.getValue().toLowerCase().matches("%id") and + idStr.getParent*() = src.asExpr() + ) + ) +} + +private predicate checksUser(ActionMethod m) { + exists(Callable c | c.getName().toLowerCase().matches("%user%") | m.calls*(c)) +} + +predicate hasInsecureDirectObjectReference(ActionMethod m) { + needsChecks(m) and + hasIdParameter(m) and + not checksUser(m) +} diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/MissingFunctionLevelAccessControlQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/MissingFunctionLevelAccessControlQuery.qll index 7623cb6b9f7..75fd0194ec4 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/MissingFunctionLevelAccessControlQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/MissingFunctionLevelAccessControlQuery.qll @@ -4,96 +4,7 @@ import csharp import semmle.code.csharp.frameworks.microsoft.AspNetCore import semmle.code.csharp.frameworks.system.web.UI import semmle.code.asp.WebConfig - -/** A method representing an action for a web endpoint. */ -abstract class ActionMethod extends Method { - /** - * Gets a string that can indicate what this method does to determine if it should have an auth check; - * such as its method name, class name, or file path. - */ - string getADescription() { - result = - [ - this.getName(), this.getDeclaringType().getBaseClass*().getName(), - this.getDeclaringType().getFile().getRelativePath() - ] - } - - /** Holds if this method may need an authorization check. */ - predicate needsAuth() { - this.getADescription() - .regexpReplaceAll("([a-z])([A-Z])", "$1_$2") - // separate camelCase words - .toLowerCase() - .regexpMatch(".*(edit|delete|modify|admin|superuser).*") - } - - /** Gets a callable for which if it contains an auth check, this method should be considered authenticated. */ - Callable getAnAuthorizingCallable() { result = this } - - /** - * Gets a possible url route that could refer to this action, - * which would be covered by `` configurations specifying a prefix of it. - */ - string getARoute() { result = this.getDeclaringType().getFile().getRelativePath() } -} - -/** An action method in the MVC framework. */ -private class MvcActionMethod extends ActionMethod { - MvcActionMethod() { this = any(MicrosoftAspNetCoreMvcController c).getAnActionMethod() } -} - -/** An action method on a subclass of `System.Web.UI.Page`. */ -private class WebFormActionMethod extends ActionMethod { - WebFormActionMethod() { - this.getDeclaringType().getBaseClass+() instanceof SystemWebUIPageClass and - this.getAParameter().getType().getName().matches("%EventArgs") - } - - override Callable getAnAuthorizingCallable() { - result = super.getAnAuthorizingCallable() - or - result.getDeclaringType() = this.getDeclaringType() and - result.getName() = "Page_Load" - } - - override string getARoute() { - exists(string physicalRoute | physicalRoute = super.getARoute() | - result = physicalRoute - or - exists(string absolutePhysical | - virtualRouteMapping(result, absolutePhysical) and - physicalRouteMatches(absolutePhysical, physicalRoute) - ) - ) - } -} - -/** - * Holds if `virtualRoute` is a URL path - * that can map to the corresponding `physicalRoute` filepath - * through a call to `MapPageRoute` - */ -private predicate virtualRouteMapping(string virtualRoute, string physicalRoute) { - exists(MethodCall mapPageRouteCall, StringLiteral virtualLit, StringLiteral physicalLit | - mapPageRouteCall - .getTarget() - .hasQualifiedName("System.Web.Routing", "RouteCollection", "MapPageRoute") and - virtualLit = mapPageRouteCall.getArgument(1) and - physicalLit = mapPageRouteCall.getArgument(2) and - virtualLit.getValue() = virtualRoute and - physicalLit.getValue() = physicalRoute - ) -} - -/** Holds if the filepath `route` can refer to `actual` after expanding a '~". */ -bindingset[route, actual] -private predicate physicalRouteMatches(string route, string actual) { - route = actual - or - route.charAt(0) = "~" and - exists(string dir | actual = dir + route.suffix(1) + ".cs") -} +import ActionMethods /** An expression that indicates that some authorization/authentication check is being performed. */ class AuthExpr extends Expr { From 5d1289672b7b85b09ab4ef316cb3e827c4c2b2b0 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 3 Aug 2023 16:31:39 +0100 Subject: [PATCH 428/788] Add IDOR query --- .../InsecureDirectObjectRefrerenceQuery.qll | 31 ++++++++++++++++--- .../CWE-939/InsecureDirectObjectReference.ql | 19 ++++++++++++ 2 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectRefrerenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectRefrerenceQuery.qll index 1596f98f714..c51a120ce85 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectRefrerenceQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectRefrerenceQuery.qll @@ -4,25 +4,46 @@ import csharp import semmle.code.csharp.dataflow.flowsources.Remote import ActionMethods +/** + * Holds if `m` is a method that may require checks + * against the current user to modify a particular resource. + */ +// We exclude admin methods as it may be expected that an admin user should be able to modify any resource. +// Other queries check that there are authorization checks in place for admin methods. private predicate needsChecks(ActionMethod m) { m.isEdit() and not m.isAdmin() } +private Expr getParentExpr(Expr ex) { result = ex.getParent() } + +/** + * Holds if `m` has a parameter or access a remote flow source + * that may indicate that it's used as the ID for some resource + */ private predicate hasIdParameter(ActionMethod m) { exists(RemoteFlowSource src | src.getEnclosingCallable() = m | - src.asParameter().getName().toLowerCase().matches("%id") + src.asParameter().getName().toLowerCase().matches(["%id", "%idx"]) or exists(StringLiteral idStr | - idStr.getValue().toLowerCase().matches("%id") and - idStr.getParent*() = src.asExpr() + idStr.getValue().toLowerCase().matches(["%id", "%idx"]) and + getParentExpr*(src.asExpr()) = getParentExpr*(idStr) ) ) } +/** Holds if `m` at some point in its call graph may make some kind of check against the current user. */ private predicate checksUser(ActionMethod m) { - exists(Callable c | c.getName().toLowerCase().matches("%user%") | m.calls*(c)) + exists(Property p | p.getName().toLowerCase().matches(["%user%", "%session%"]) | + m.calls*(p.getGetter()) + ) } +/** + * Holds if `m` is a method that modifies a particular resource based on + * and ID provided by user input, but does not check anything based on the current user + * to determine if they should modify this resource. + */ predicate hasInsecureDirectObjectReference(ActionMethod m) { needsChecks(m) and hasIdParameter(m) and - not checksUser(m) + not checksUser(m) and + exists(m.getBody()) } diff --git a/csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql b/csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql new file mode 100644 index 00000000000..3ae3aade9ec --- /dev/null +++ b/csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql @@ -0,0 +1,19 @@ +/** + * @name Insecure Direct Object Reference + * @description Using user input to control which object is modified without + * proper authorization checks allows an attacker to modify arbitrary objects. + * @kind path-problem + * @problem.severity error + * @precision medium + * @id cs/insecure-direct0object-reference + * @tags security + * external/cwe/639 + */ + +import csharp +import semmle.code.csharp.security.auth.InsecureDirectObjectRefrerenceQuery + +from ActionMethod m +where hasInsecureDirectObjectReference(m) +select m, + "This method may not verify which users should be able to access resources of the provided ID." From 251f875304223047d8a097e4df8e7bf311a90873 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 3 Aug 2023 16:32:37 +0100 Subject: [PATCH 429/788] Fix filenme typo --- ...frerenceQuery.qll => InsecureDirectObjectReferenceQuery.qll} | 0 .../Security Features/CWE-939/InsecureDirectObjectReference.ql | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename csharp/ql/lib/semmle/code/csharp/security/auth/{InsecureDirectObjectRefrerenceQuery.qll => InsecureDirectObjectReferenceQuery.qll} (100%) diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectRefrerenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll similarity index 100% rename from csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectRefrerenceQuery.qll rename to csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll diff --git a/csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql b/csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql index 3ae3aade9ec..70f76b8f37d 100644 --- a/csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql +++ b/csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql @@ -11,7 +11,7 @@ */ import csharp -import semmle.code.csharp.security.auth.InsecureDirectObjectRefrerenceQuery +import semmle.code.csharp.security.auth.InsecureDirectObjectReferenceQuery from ActionMethod m where hasInsecureDirectObjectReference(m) From 2edd73eb60770e33c35af3f5e3b520412d59c518 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 4 Aug 2023 16:01:01 +0100 Subject: [PATCH 430/788] Fix typos in filepath + metadata, add severity --- .../{CWE-939 => CWE-639}/InsecureDirectObjectReference.ql | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) rename csharp/ql/src/Security Features/{CWE-939 => CWE-639}/InsecureDirectObjectReference.ql (82%) diff --git a/csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql similarity index 82% rename from csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql rename to csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql index 70f76b8f37d..35c8187a89c 100644 --- a/csharp/ql/src/Security Features/CWE-939/InsecureDirectObjectReference.ql +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql @@ -2,12 +2,13 @@ * @name Insecure Direct Object Reference * @description Using user input to control which object is modified without * proper authorization checks allows an attacker to modify arbitrary objects. - * @kind path-problem + * @kind problem * @problem.severity error + * @security-severity 7.5 * @precision medium - * @id cs/insecure-direct0object-reference + * @id cs/insecure-direct-object-reference * @tags security - * external/cwe/639 + * external/cwe-639 */ import csharp From 20d42dfd7d602440d41ea6db8dd814f97e82d98f Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 14 Aug 2023 21:01:19 +0100 Subject: [PATCH 431/788] Add tests for webforms case --- .../CWE-639/WebFormsTests/EditComment.aspx.cs | 28 +++++++++++++++++++ .../InsecureDirectObjectReference.expected | 1 + .../InsecureDirectObjectReference.qlref | 1 + .../CWE-639/WebFormsTests/options | 1 + csharp/ql/test/resources/stubs/System.Web.cs | 1 + 5 files changed, 32 insertions(+) create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/EditComment.aspx.cs create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.expected create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.qlref create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/EditComment.aspx.cs b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/EditComment.aspx.cs new file mode 100644 index 00000000000..974869a0af4 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/EditComment.aspx.cs @@ -0,0 +1,28 @@ +using System; +using System.Web.UI; + +class EditComment : System.Web.UI.Page { + + // BAD - Any user can access this method. + protected void btn1_Click(object sender, EventArgs e) { + string commentId = Request.QueryString["Id"]; + Comment comment = getCommentById(commentId); + comment.Text = "xyz"; + } + + // GOOD - The user ID is verified. + protected void btn2_Click(object sender, EventArgs e) { + string commentId = Request.QueryString["Id"]; + Comment comment = getCommentById(commentId); + if (comment.AuthorName == User.Identity.Name){ + comment.Text = "xyz"; + } + } + + class Comment { + public string Text { get; set; } + public string AuthorName { get; } + } + + Comment getCommentById(string id) { return null; } +} \ No newline at end of file diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.expected b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.expected new file mode 100644 index 00000000000..b1cd126cdb8 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.expected @@ -0,0 +1 @@ +| EditComment.aspx.cs:7:20:7:29 | btn1_Click | This method may not verify which users should be able to access resources of the provided ID. | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.qlref b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.qlref new file mode 100644 index 00000000000..4756d5a76a4 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.qlref @@ -0,0 +1 @@ +Security Features/CWE-639/InsecureDirectObjectReference.ql \ No newline at end of file diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options new file mode 100644 index 00000000000..23b1e160263 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options @@ -0,0 +1 @@ +semmle-extractor-options: /r:System.Collections.Specialized.dll ${testdir}/../../../../resources/stubs/System.Web.cs \ No newline at end of file diff --git a/csharp/ql/test/resources/stubs/System.Web.cs b/csharp/ql/test/resources/stubs/System.Web.cs index c3c8a0a753f..0f055fcc123 100644 --- a/csharp/ql/test/resources/stubs/System.Web.cs +++ b/csharp/ql/test/resources/stubs/System.Web.cs @@ -82,6 +82,7 @@ namespace System.Web.UI public class Page { public System.Security.Principal.IPrincipal User { get; } + public System.Web.HttpRequest Request { get; } } interface IPostBackDataHandler From 009a7bfc87ccc38dcdcd37471fa74a1f5d11eb3d Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 17 Aug 2023 15:51:48 +0100 Subject: [PATCH 432/788] Add MVC tests --- .../CWE-639/MVCTests/CommentController.cs | 22 +++++++++++++++++++ .../InsecureDirectObjectReference.expected | 1 + .../InsecureDirectObjectReference.qlref | 1 + .../CWE-639/MVCTests/options | 3 +++ 4 files changed, 27 insertions(+) create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.qlref create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/options diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs new file mode 100644 index 00000000000..52d8bc4e536 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs @@ -0,0 +1,22 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; + +public class CommentController : Controller { + // BAD: Any user can access this. + public ActionResult Edit1(int commentId, string text) { + editComment(commentId, text); + return View(); + } + + // GOOD: The user's authorization is checked. + public ActionResult Edit2(int commentId, string text) { + if (canEditComment(commentId, User.Identity.Name)){ + editComment(commentId, text); + } + return View(); + } + + void editComment(int commentId, string text) { } + + bool canEditComment(int commentId, string userName) { return false; } +} \ No newline at end of file diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected new file mode 100644 index 00000000000..7b74a0c41a6 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected @@ -0,0 +1 @@ +| CommentController.cs:6:25:6:29 | Edit1 | This method may not verify which users should be able to access resources of the provided ID. | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.qlref b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.qlref new file mode 100644 index 00000000000..4756d5a76a4 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.qlref @@ -0,0 +1 @@ +Security Features/CWE-639/InsecureDirectObjectReference.ql \ No newline at end of file diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/options b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/options new file mode 100644 index 00000000000..c69b0d035a6 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/options @@ -0,0 +1,3 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj \ No newline at end of file From f8b1b3843852544d1fbae25e44bde3ab42e6a42f Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 17 Aug 2023 17:22:43 +0100 Subject: [PATCH 433/788] Update alert message and make user checks more precise --- .../security/auth/InsecureDirectObjectReferenceQuery.qll | 7 +++++-- .../CWE-639/InsecureDirectObjectReference.ql | 2 +- .../MVCTests/InsecureDirectObjectReference.expected | 2 +- .../WebFormsTests/InsecureDirectObjectReference.expected | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll index c51a120ce85..462af455af3 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll @@ -22,6 +22,7 @@ private predicate hasIdParameter(ActionMethod m) { exists(RemoteFlowSource src | src.getEnclosingCallable() = m | src.asParameter().getName().toLowerCase().matches(["%id", "%idx"]) or + // handle cases like `Request.QueryString["Id"]` exists(StringLiteral idStr | idStr.getValue().toLowerCase().matches(["%id", "%idx"]) and getParentExpr*(src.asExpr()) = getParentExpr*(idStr) @@ -31,8 +32,10 @@ private predicate hasIdParameter(ActionMethod m) { /** Holds if `m` at some point in its call graph may make some kind of check against the current user. */ private predicate checksUser(ActionMethod m) { - exists(Property p | p.getName().toLowerCase().matches(["%user%", "%session%"]) | - m.calls*(p.getGetter()) + exists(Callable c, string name | name = c.getName().toLowerCase() | + name.matches(["%user%", "%session%"]) and + not name.matches("%get%by%") and // methods like `getUserById` or `getXByUsername` aren't likely to be referring to the current user + m.calls*(c) ) } diff --git a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql index 35c8187a89c..885e909f741 100644 --- a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql @@ -17,4 +17,4 @@ import semmle.code.csharp.security.auth.InsecureDirectObjectReferenceQuery from ActionMethod m where hasInsecureDirectObjectReference(m) select m, - "This method may not verify which users should be able to access resources of the provided ID." + "This method may be missing authorization checks for which users can access the resource of the provided ID." diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected index 7b74a0c41a6..30a52e475f4 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected @@ -1 +1 @@ -| CommentController.cs:6:25:6:29 | Edit1 | This method may not verify which users should be able to access resources of the provided ID. | +| CommentController.cs:6:25:6:29 | Edit1 | This method may be missing authorization checks for which users can access the resource of the provided ID. | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.expected b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.expected index b1cd126cdb8..8cb9e542f31 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/InsecureDirectObjectReference.expected @@ -1 +1 @@ -| EditComment.aspx.cs:7:20:7:29 | btn1_Click | This method may not verify which users should be able to access resources of the provided ID. | +| EditComment.aspx.cs:7:20:7:29 | btn1_Click | This method may be missing authorization checks for which users can access the resource of the provided ID. | From 3e6750ba4cb580abf193eab827bee145f10803f8 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 21 Aug 2023 10:23:27 +0100 Subject: [PATCH 434/788] Add documentation --- .../InsecureDirectObjectReference.qhelp | 30 +++++++++++++++++++ .../CWE-639/WebFormsExample.cs | 15 ++++++++++ 2 files changed, 45 insertions(+) create mode 100644 csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp create mode 100644 csharp/ql/src/Security Features/CWE-639/WebFormsExample.cs diff --git a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp new file mode 100644 index 00000000000..fc31d45267d --- /dev/null +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp @@ -0,0 +1,30 @@ + + + +

    When an action method accepts an ID parameter used to control which resource (e.g. a comment, a user profile, etc) +is being accessed/modified, checks should me made to ensure that the current user is authorized to access that resource. +Otherwise, an attacker could access an arbitrary resource by modifying the ID parameter.

    + +
    + +

    +Ensure that the current user is authorized to access the resource of the provided ID. +

    + +
    + +

    In the following example, in the case marked BAD, there is no authorization check, so any user is able to edit any comment. +In the case marked GOOD, there is a check that the current usr matches the author of the comment.

    + + + +
    + + +
  • OWASP - Insecure Direct Object Refrences.
  • +
  • OWASP - Testing for Insecure Direct Object References.
  • + +
    +
    \ No newline at end of file diff --git a/csharp/ql/src/Security Features/CWE-639/WebFormsExample.cs b/csharp/ql/src/Security Features/CWE-639/WebFormsExample.cs new file mode 100644 index 00000000000..48f870db451 --- /dev/null +++ b/csharp/ql/src/Security Features/CWE-639/WebFormsExample.cs @@ -0,0 +1,15 @@ + // BAD - Any user can access this method. + protected void btn1_Click(object sender, EventArgs e) { + string commentId = Request.QueryString["Id"]; + Comment comment = getCommentById(commentId); + comment.Body = inputCommentBody.Text; + } + + // GOOD - The user ID is verified. + protected void btn2_Click(object sender, EventArgs e) { + string commentId = Request.QueryString["Id"]; + Comment comment = getCommentById(commentId); + if (comment.AuthorName == User.Identity.Name){ + comment.Body = inputCommentBody.Text; + } + } \ No newline at end of file From 4967fe0b7772ef8291b280f48768a00b338a79a4 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 21 Aug 2023 10:31:07 +0100 Subject: [PATCH 435/788] Add change note + update query ID --- .../CWE-639/InsecureDirectObjectReference.ql | 2 +- .../2023-08-21-insecure-direct-object-reference.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 csharp/ql/src/change-notes/2023-08-21-insecure-direct-object-reference.md diff --git a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql index 885e909f741..85b6b56f7bc 100644 --- a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql @@ -6,7 +6,7 @@ * @problem.severity error * @security-severity 7.5 * @precision medium - * @id cs/insecure-direct-object-reference + * @id cs/web/insecure-direct-object-reference * @tags security * external/cwe-639 */ diff --git a/csharp/ql/src/change-notes/2023-08-21-insecure-direct-object-reference.md b/csharp/ql/src/change-notes/2023-08-21-insecure-direct-object-reference.md new file mode 100644 index 00000000000..edbb1134739 --- /dev/null +++ b/csharp/ql/src/change-notes/2023-08-21-insecure-direct-object-reference.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query, `cs/web/insecure-direct-object-reference`, to find instances of missing authorization checks for resources selected by an ID parameter. \ No newline at end of file From 9f25c71ca679dd352476d10398a9b7a33061a532 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 24 Aug 2023 11:02:21 +0100 Subject: [PATCH 436/788] Apply minor reveiw suggstions --- .../security/auth/InsecureDirectObjectReferenceQuery.qll | 4 ++-- .../CWE-639/InsecureDirectObjectReference.qhelp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll index 462af455af3..3d2db41a83c 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll @@ -12,7 +12,7 @@ import ActionMethods // Other queries check that there are authorization checks in place for admin methods. private predicate needsChecks(ActionMethod m) { m.isEdit() and not m.isAdmin() } -private Expr getParentExpr(Expr ex) { result = ex.getParent() } +private Expr getParentExpr(Expr ex) { result.getAChildExpr() = ex } /** * Holds if `m` has a parameter or access a remote flow source @@ -41,7 +41,7 @@ private predicate checksUser(ActionMethod m) { /** * Holds if `m` is a method that modifies a particular resource based on - * and ID provided by user input, but does not check anything based on the current user + * an ID provided by user input, but does not check anything based on the current user * to determine if they should modify this resource. */ predicate hasInsecureDirectObjectReference(ActionMethod m) { diff --git a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp index fc31d45267d..8e82ac6f1bb 100644 --- a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp @@ -5,7 +5,7 @@

    When an action method accepts an ID parameter used to control which resource (e.g. a comment, a user profile, etc) is being accessed/modified, checks should me made to ensure that the current user is authorized to access that resource. -Otherwise, an attacker could access an arbitrary resource by modifying the ID parameter.

    +Otherwise, an attacker could access an arbitrary resource by guessing the ID parameter.

    From 86abd338e5cd62de4e1e1a0c2ffebb64e62db283 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 24 Aug 2023 11:06:04 +0100 Subject: [PATCH 437/788] Update test options --- .../Security Features/CWE-639/WebFormsTests/options | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options index 23b1e160263..a5d7077ef37 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options @@ -1 +1,3 @@ -semmle-extractor-options: /r:System.Collections.Specialized.dll ${testdir}/../../../../resources/stubs/System.Web.cs \ No newline at end of file +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs \ No newline at end of file From a022893f0fc635580fa0dfee360d0412c4949eb2 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 25 Aug 2023 10:48:40 +0100 Subject: [PATCH 438/788] Add additional example to qhelp + additional resource --- .../InsecureDirectObjectReference.qhelp | 3 ++ .../Security Features/CWE-639/MVCExample.cs | 35 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 csharp/ql/src/Security Features/CWE-639/MVCExample.cs diff --git a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp index 8e82ac6f1bb..23af52944c4 100644 --- a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp @@ -18,6 +18,8 @@ Ensure that the current user is authorized to access the resource of the provide

    In the following example, in the case marked BAD, there is no authorization check, so any user is able to edit any comment. In the case marked GOOD, there is a check that the current usr matches the author of the comment.

    +

    The following example shows a similar case for the ASP.NET Core framweork.

    + @@ -25,6 +27,7 @@ In the case marked GOOD, there is a check that the current usr matches the autho
  • OWASP - Insecure Direct Object Refrences.
  • OWASP - Testing for Insecure Direct Object References.
  • +
  • Microsoft Learn = Resource-based authorization in ASP.NET Core.
  • \ No newline at end of file diff --git a/csharp/ql/src/Security Features/CWE-639/MVCExample.cs b/csharp/ql/src/Security Features/CWE-639/MVCExample.cs new file mode 100644 index 00000000000..36e692309cb --- /dev/null +++ b/csharp/ql/src/Security Features/CWE-639/MVCExample.cs @@ -0,0 +1,35 @@ +public class CommentController : Controller { + private readonly IAuthorizationService _authorizationService; + private readonly IDocumentRepository _commentRepository; + + public CommentController(IAuthorizationService authorizationService, + ICommentRepository commentRepository) + { + _authorizationService = authorizationService; + _commentRepository = commentRepository; + } + + // BAD: Any user can access this. + public async Task Edit1(int commentId, string text) { + Comment comment = _commentRepository.Find(commentId); + + comment.Text = text; + + return View(); + } + + // GOOD: An authorization check is made. + public async Task Edit2(int commentId, string text) { + Comment comment = _commentRepository.Find(commentId); + + var authResult = await _authorizationService.AuthorizeAsync(User, Comment, "EditPolicy"); + + if (authResult.Succeeded) { + comment.Text = text; + return View(); + } + else { + return ForbidResult(); + } + } +} \ No newline at end of file From 0a27da08d6801f5f83012c3e0faf03cc6f638740 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 25 Aug 2023 11:05:00 +0100 Subject: [PATCH 439/788] Minor changes from review suggestions to shared logic between this and missing access control Use case insensitive regex, factor out page load to improve possible bad joins make needsAuth not a member predicate --- .../csharp/security/auth/ActionMethods.qll | 22 +++++++++---------- ...MissingFunctionLevelAccessControlQuery.qll | 7 ++++-- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/ActionMethods.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/ActionMethods.qll index b3d8dc2701b..81ba6c70a06 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/ActionMethods.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/ActionMethods.qll @@ -20,10 +20,9 @@ abstract class ActionMethod extends Method { str = this.getADescription() // separate camelCase words - .regexpReplaceAll("([a-z])([A-Z])", "$1_$2") - .toLowerCase() and - str.regexpMatch(".*(edit|delete|modify|change).*") and - not str.regexpMatch(".*(on_?change|changed).*") + .regexpReplaceAll("([a-z])([A-Z])", "$1_$2") and + str.regexpMatch("(?i).*(edit|delete|modify|change).*") and + not str.regexpMatch("(?i).*(on_?change|changed).*") ) } @@ -32,13 +31,9 @@ abstract class ActionMethod extends Method { this.getADescription() // separate camelCase words .regexpReplaceAll("([a-z])([A-Z])", "$1_$2") - .toLowerCase() - .regexpMatch(".*(admin|superuser).*") + .regexpMatch("(?i).*(admin|superuser).*") } - /** Holds if this method may need an authorization check. */ - predicate needsAuth() { this.isEdit() or this.isAdmin() } - /** Gets a callable for which if it contains an auth check, this method should be considered authenticated. */ Callable getAnAuthorizingCallable() { result = this } @@ -64,8 +59,7 @@ private class WebFormActionMethod extends ActionMethod { override Callable getAnAuthorizingCallable() { result = super.getAnAuthorizingCallable() or - result.getDeclaringType() = this.getDeclaringType() and - result.getName() = "Page_Load" + pageLoad(result, this.getDeclaringType()) } override string getARoute() { @@ -80,6 +74,12 @@ private class WebFormActionMethod extends ActionMethod { } } +pragma[nomagic] +private predicate pageLoad(Callable c, Type decl) { + c.getName() = "Page_Load" and + decl = c.getDeclaringType() +} + /** * Holds if `virtualRoute` is a URL path * that can map to the corresponding `physicalRoute` filepath diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/MissingFunctionLevelAccessControlQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/MissingFunctionLevelAccessControlQuery.qll index 75fd0194ec4..79a39f093ee 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/MissingFunctionLevelAccessControlQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/MissingFunctionLevelAccessControlQuery.qll @@ -6,6 +6,9 @@ import semmle.code.csharp.frameworks.system.web.UI import semmle.code.asp.WebConfig import ActionMethods +/** Holds if the method `m` may need an authorization check. */ +predicate needsAuth(ActionMethod m) { m.isEdit() or m.isAdmin() } + /** An expression that indicates that some authorization/authentication check is being performed. */ class AuthExpr extends Expr { AuthExpr() { @@ -25,7 +28,7 @@ class AuthExpr extends Expr { /** Holds if `m` is a method that should have an auth check, and does indeed have one. */ predicate hasAuthViaCode(ActionMethod m) { - m.needsAuth() and + needsAuth(m) and exists(Callable caller, AuthExpr auth | m.getAnAuthorizingCallable().calls*(caller) and auth.getEnclosingCallable() = caller @@ -86,7 +89,7 @@ predicate hasAuthViaAttribute(ActionMethod m) { /** Holds if `m` is a method that should have an auth check, but is missing it. */ predicate missingAuth(ActionMethod m) { - m.needsAuth() and + needsAuth(m) and not hasAuthViaCode(m) and not hasAuthViaXml(m) and not hasAuthViaAttribute(m) and From ac450505457ad3fcee6a1c217db01ed5e7a0bc45 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 11 Sep 2023 15:16:29 +0100 Subject: [PATCH 440/788] Add checks for authorization attributes --- .../InsecureDirectObjectReferenceQuery.qll | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll index 3d2db41a83c..05bb4ac9245 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll @@ -39,6 +39,36 @@ private predicate checksUser(ActionMethod m) { ) } +/** Holds if `m`, its containing class, or a parent class has an attribute that extends `AuthorizeAttribute` */ +private predicate hasAuthorizeAttribute(ActionMethod m) { + exists(Attribute attr | + attr.getType() + .getABaseType*() + .hasQualifiedName("Microsoft.AspNetCore.Authorization", "AuthorizeAttribute") + | + attr = m.getAnAttribute() or + attr = m.getDeclaringType().getABaseType*().getAnAttribute() + ) +} + +/** Holds if `m`, its containing class, or a parent class has an attribute that extends `AllowAnonymousAttribute` */ +private predicate hasAllowAnonymousAttribute(ActionMethod m) { + exists(Attribute attr | + attr.getType() + .getABaseType*() + .hasQualifiedName("Microsoft.AspNetCore.Authorization", "AllowAnonymousAttribute") + | + attr = m.getAnAttribute() or + attr = m.getDeclaringType().getABaseType*().getAnAttribute() + ) +} + +/** Hols if `m` is authorized via an `Authorize` attribute */ +private predicate isAuthorizedViaAttribute(ActionMethod m) { + hasAuthorizeAttribute(m) and + not hasAllowAnonymousAttribute(m) +} + /** * Holds if `m` is a method that modifies a particular resource based on * an ID provided by user input, but does not check anything based on the current user @@ -48,5 +78,6 @@ predicate hasInsecureDirectObjectReference(ActionMethod m) { needsChecks(m) and hasIdParameter(m) and not checksUser(m) and - exists(m.getBody()) + not isAuthorizedViaAttribute(m) and + exists(m.getBody().getAChildStmt()) } From 6a95ed64ff9621f4861f86d9200712a235a88196 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 13 Sep 2023 16:05:01 +0100 Subject: [PATCH 441/788] Add test cases for authorization from attributes --- .../CWE-639/MVCTests/CommentController.cs | 15 ++++++++++++++ .../InsecureDirectObjectReference.expected | 2 ++ .../CWE-639/MVCTests/ProfileController.cs | 20 +++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/ProfileController.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs index 52d8bc4e536..891e8374c1c 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs @@ -16,6 +16,21 @@ public class CommentController : Controller { return View(); } + // GOOD: The Authorize attribute is used + [Authorize] + public ActionResult Edit3(int commentId, string text) { + editComment(commentId, text); + return View(); + } + + // BAD: The AllowAnonymous attribute overrides the Authorize attribute + [Authorize] + [AllowAnonymous] + public ActionResult Edit4(int commentId, string text) { + editComment(commentId, text); + return View(); + } + void editComment(int commentId, string text) { } bool canEditComment(int commentId, string userName) { return false; } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected index 30a52e475f4..2c6bc2b1059 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected @@ -1 +1,3 @@ | CommentController.cs:6:25:6:29 | Edit1 | This method may be missing authorization checks for which users can access the resource of the provided ID. | +| CommentController.cs:29:25:29:29 | Edit4 | This method may be missing authorization checks for which users can access the resource of the provided ID. | +| ProfileController.cs:14:25:14:29 | Edit2 | This method may be missing authorization checks for which users can access the resource of the provided ID. | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/ProfileController.cs b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/ProfileController.cs new file mode 100644 index 00000000000..43eb9319479 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/ProfileController.cs @@ -0,0 +1,20 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; + +[Authorize] +public class ProfileController : Controller { + // GOOD: The Authorize attribute of the class restricts access to this method. + public ActionResult Edit1(int profileId, string text) { + editProfileName(profileId, text); + return View(); + } + + // BAD: The AllowAnonymous attribute therides the Authorize attribute on the class. + [AllowAnonymous] + public ActionResult Edit2(int profileId, string text) { + editProfileName(profileId, text); + return View(); + } + + void editProfileName(int profileId, string text) { } +} \ No newline at end of file From a2dce6be1487a3b3e99bcf39a8bb177c992324f4 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 14 Sep 2023 16:15:45 +0100 Subject: [PATCH 442/788] Check for authorize attributes in more namespaces and on overridden methods --- .../auth/InsecureDirectObjectReferenceQuery.qll | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll index 05bb4ac9245..a081be92cf6 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll @@ -44,9 +44,11 @@ private predicate hasAuthorizeAttribute(ActionMethod m) { exists(Attribute attr | attr.getType() .getABaseType*() - .hasQualifiedName("Microsoft.AspNetCore.Authorization", "AuthorizeAttribute") + .hasQualifiedName([ + "Microsoft.AspNetCore.Authorization", "System.Web.Mvc", "System.Web.Http" + ], "AuthorizeAttribute") | - attr = m.getAnAttribute() or + attr = m.getOverridee*().getAnAttribute() or attr = m.getDeclaringType().getABaseType*().getAnAttribute() ) } @@ -56,14 +58,16 @@ private predicate hasAllowAnonymousAttribute(ActionMethod m) { exists(Attribute attr | attr.getType() .getABaseType*() - .hasQualifiedName("Microsoft.AspNetCore.Authorization", "AllowAnonymousAttribute") + .hasQualifiedName([ + "Microsoft.AspNetCore.Authorization", "System.Web.Mvc", "System.Web.Http" + ], "AllowAnonymousAttribute") | - attr = m.getAnAttribute() or + attr = m.getOverridee*().getAnAttribute() or attr = m.getDeclaringType().getABaseType*().getAnAttribute() ) } -/** Hols if `m` is authorized via an `Authorize` attribute */ +/** Holds if `m` is authorized via an `Authorize` attribute */ private predicate isAuthorizedViaAttribute(ActionMethod m) { hasAuthorizeAttribute(m) and not hasAllowAnonymousAttribute(m) From 6d704be7d2bdc5a18829432a835e221f60957d5b Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 14 Sep 2023 17:35:53 +0100 Subject: [PATCH 443/788] Rewrite checks for index expressions in terms of dataflow --- .../security/auth/InsecureDirectObjectReferenceQuery.qll | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll index a081be92cf6..b2731ebdb5d 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll @@ -2,6 +2,8 @@ import csharp import semmle.code.csharp.dataflow.flowsources.Remote +import DataFlow as DF +import TaintTracking as TT import ActionMethods /** @@ -12,8 +14,6 @@ import ActionMethods // Other queries check that there are authorization checks in place for admin methods. private predicate needsChecks(ActionMethod m) { m.isEdit() and not m.isAdmin() } -private Expr getParentExpr(Expr ex) { result.getAChildExpr() = ex } - /** * Holds if `m` has a parameter or access a remote flow source * that may indicate that it's used as the ID for some resource @@ -23,9 +23,10 @@ private predicate hasIdParameter(ActionMethod m) { src.asParameter().getName().toLowerCase().matches(["%id", "%idx"]) or // handle cases like `Request.QueryString["Id"]` - exists(StringLiteral idStr | + exists(StringLiteral idStr, IndexerCall idx | idStr.getValue().toLowerCase().matches(["%id", "%idx"]) and - getParentExpr*(src.asExpr()) = getParentExpr*(idStr) + TT::localTaint(src, DataFlow::exprNode(idx.getQualifier())) and + DF::localExprFlow(idStr, idx.getArgument(0)) ) ) } From c34fef1eb64fbb9b63fa6e6f328bf0386e6ddc64 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Fri, 15 Sep 2023 13:35:25 +0200 Subject: [PATCH 444/788] Adjust integration tests after path changes and generating file with global usings --- .../all-platforms/cshtml_standalone/Files.expected | 1 + .../all-platforms/cshtml_standalone/Files.ql | 11 +++++++---- .../all-platforms/standalone/Files.expected | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/Files.expected b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/Files.expected index 853daba72d3..ee3b14ffc8f 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/Files.expected @@ -1,3 +1,4 @@ | Program.cs | | Views/Home/Index.cshtml | | _semmle_code_target_codeql_csharp_integration_tests_ql_csharp_ql_integration_tests_all_platforms_cshtml_standalone_Views_Home_Index_cshtml.g.cs | +| test-db/working/implicitUsings/GlobalUsings.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/Files.ql b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/Files.ql index db5c1b8c8d0..2d983b86b7c 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/Files.ql +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/Files.ql @@ -1,14 +1,17 @@ import csharp private string getPath(File f) { - result = f.getRelativePath() + result = f.getRelativePath() and + not exists( + result + .indexOf("_semmle_code_target_codeql_csharp_integration_tests_ql_csharp_ql_integration_tests_all_platforms_cshtml_standalone_") + ) or - not exists(f.getRelativePath()) and exists(int index | index = - f.getBaseName() + f.getRelativePath() .indexOf("_semmle_code_target_codeql_csharp_integration_tests_ql_csharp_ql_integration_tests_all_platforms_cshtml_standalone_") and - result = f.getBaseName().substring(index, f.getBaseName().length()) + result = f.getRelativePath().substring(index, f.getRelativePath().length()) ) } diff --git a/csharp/ql/integration-tests/all-platforms/standalone/Files.expected b/csharp/ql/integration-tests/all-platforms/standalone/Files.expected index 2085aa342e7..50089b3c59c 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/standalone/Files.expected @@ -1 +1,2 @@ | Program.cs:0:0:0:0 | Program.cs | +| test-db/working/implicitUsings/GlobalUsings.g.cs:0:0:0:0 | test-db/working/implicitUsings/GlobalUsings.g.cs | From e62fcf9a45f6309cc0bdcf36c3314926b4b6bc2b Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 15 Sep 2023 12:37:34 +0100 Subject: [PATCH 445/788] Fix formatting mistake --- java/ql/lib/semmle/code/java/Expr.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/Expr.qll b/java/ql/lib/semmle/code/java/Expr.qll index 9179801d743..785d5a72c0b 100644 --- a/java/ql/lib/semmle/code/java/Expr.qll +++ b/java/ql/lib/semmle/code/java/Expr.qll @@ -1247,7 +1247,8 @@ class ClassInstanceExpr extends Expr, ConstructorCall, @classinstancexpr { override string toString() { result = "new " + this.getConstructor().getName() + "(...)" or - not exists(this.getConstructor()) and result = "" + not exists(this.getConstructor()) and + result = "" } override string getAPrimaryQlClass() { result = "ClassInstanceExpr" } From a63bb1bbedfe5464ed5f6559e873dadd9eea935c Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 15 Sep 2023 12:58:44 +0100 Subject: [PATCH 446/788] Tidy --- .../go/security/SqlInjectionCustomizations.qll | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll b/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll index 99f24b6a473..7cd99ab5508 100644 --- a/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll +++ b/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll @@ -25,15 +25,6 @@ module SqlInjection { */ abstract class Sanitizer extends DataFlow::Node { } - /** - * A numeric- or boolean-typed node, considered a sanitizer for sql injection. - */ - class NumericOrBooleanSanitizer extends Sanitizer { - NumericOrBooleanSanitizer() { - this.getType() instanceof NumericType or this.getType() instanceof BoolType - } - } - /** * DEPRECATED: Use `Sanitizer` instead. * @@ -49,4 +40,13 @@ module SqlInjection { /** A NoSql query, considered as a taint sink for SQL injection. */ class NoSqlQueryAsSink extends Sink instanceof NoSql::Query { } + + /** + * A numeric- or boolean-typed node, considered a sanitizer for sql injection. + */ + class NumericOrBooleanSanitizer extends Sanitizer { + NumericOrBooleanSanitizer() { + this.getType() instanceof NumericType or this.getType() instanceof BoolType + } + } } From 68ad5b7c003deb64c2886efd3385dc9b63cd73da Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 15 Sep 2023 16:35:29 +0100 Subject: [PATCH 447/788] Restrict logic for checking for id parameters on index expressions for performance --- .../security/auth/InsecureDirectObjectReferenceQuery.qll | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll index b2731ebdb5d..20a0de568a9 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll @@ -2,7 +2,6 @@ import csharp import semmle.code.csharp.dataflow.flowsources.Remote -import DataFlow as DF import TaintTracking as TT import ActionMethods @@ -26,7 +25,7 @@ private predicate hasIdParameter(ActionMethod m) { exists(StringLiteral idStr, IndexerCall idx | idStr.getValue().toLowerCase().matches(["%id", "%idx"]) and TT::localTaint(src, DataFlow::exprNode(idx.getQualifier())) and - DF::localExprFlow(idStr, idx.getArgument(0)) + idStr = idx.getArgument(0) ) ) } From eb2f5898bd12b7e9ebe733a2f4635de7b4ee4b85 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 15 Sep 2023 16:39:51 +0100 Subject: [PATCH 448/788] Fix typos --- .../CWE-639/InsecureDirectObjectReference.qhelp | 2 +- .../Security Features/CWE-639/MVCTests/ProfileController.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp index 23af52944c4..8cc9357fd3f 100644 --- a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp @@ -18,7 +18,7 @@ Ensure that the current user is authorized to access the resource of the provide

    In the following example, in the case marked BAD, there is no authorization check, so any user is able to edit any comment. In the case marked GOOD, there is a check that the current usr matches the author of the comment.

    -

    The following example shows a similar case for the ASP.NET Core framweork.

    +

    The following example shows a similar case for the ASP.NET Core framework.

    diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/ProfileController.cs b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/ProfileController.cs index 43eb9319479..a41c32db641 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/ProfileController.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/ProfileController.cs @@ -9,7 +9,7 @@ public class ProfileController : Controller { return View(); } - // BAD: The AllowAnonymous attribute therides the Authorize attribute on the class. + // BAD: The AllowAnonymous attribute overrides the Authorize attribute on the class. [AllowAnonymous] public ActionResult Edit2(int profileId, string text) { editProfileName(profileId, text); From 868836e747868c7f776ad237e781037813305418 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 15 Sep 2023 16:40:12 +0100 Subject: [PATCH 449/788] Update severity --- .../Security Features/CWE-639/InsecureDirectObjectReference.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql index 85b6b56f7bc..06129ec88ec 100644 --- a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql @@ -3,7 +3,7 @@ * @description Using user input to control which object is modified without * proper authorization checks allows an attacker to modify arbitrary objects. * @kind problem - * @problem.severity error + * @problem.severity warning * @security-severity 7.5 * @precision medium * @id cs/web/insecure-direct-object-reference From 46b15fa6f2b705ae6d7f1a976811455f2acebb0f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Sat, 16 Sep 2023 01:33:16 +0100 Subject: [PATCH 450/788] C++: Fix join of non-linear joins. --- .../semantic/analysis/RangeAnalysisStage.qll | 49 +++++++++++++------ 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/RangeAnalysisStage.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/RangeAnalysisStage.qll index 8f701cbc111..806dfffbec9 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/RangeAnalysisStage.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/RangeAnalysisStage.qll @@ -917,25 +917,46 @@ module RangeStage< bounded(cast.getOperand(), b, delta, upper, fromBackEdge, origdelta, reason) } + pragma[nomagic] + private predicate initialBoundedUpper(SemExpr e) { + exists(D::Delta d | + initialBounded(e, _, d, false, _, _, _) and + D::toFloat(d) >= 0 + ) + } + + private predicate noOverflow0(SemExpr e, boolean upper) { + exists(boolean lower | lower = upper.booleanNot() | + semExprDoesNotOverflow(lower, e) + or + upper = [true, false] and + not potentiallyOverflowingExpr(lower, e) + ) + } + + pragma[nomagic] + private predicate initialBoundedLower(SemExpr e) { + exists(D::Delta d | + initialBounded(e, _, d, true, _, _, _) and + D::toFloat(d) <= 0 + ) + } + + pragma[nomagic] + private predicate noOverflow(SemExpr e, boolean upper) { + noOverflow0(e, upper) + or + upper = true and initialBoundedUpper(e) + or + upper = false and initialBoundedLower(e) + } + predicate bounded( SemExpr e, SemBound b, D::Delta delta, boolean upper, boolean fromBackEdge, D::Delta origdelta, SemReason reason ) { initialBounded(e, b, delta, upper, fromBackEdge, origdelta, reason) and - ( - semExprDoesNotOverflow(upper.booleanNot(), e) - or - not potentiallyOverflowingExpr(upper.booleanNot(), e) - or - exists(D::Delta otherDelta | - initialBounded(e, _, otherDelta, upper.booleanNot(), _, _, _) and - ( - upper = true and D::toFloat(otherDelta) >= 0 - or - upper = false and D::toFloat(otherDelta) <= 0 - ) - ) - ) + noOverflow(e, upper) } predicate potentiallyOverflowingExpr(boolean positively, SemExpr expr) { From 0ae4b628a3e658a09b7203ffa4d0360bd61e2102 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 00:15:17 +0000 Subject: [PATCH 451/788] Add changed framework coverage reports --- java/documentation/library-coverage/coverage.csv | 10 +++++----- java/documentation/library-coverage/coverage.rst | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index 8505172207a..ffa8ed5c7b5 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -39,7 +39,7 @@ freemarker.template,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,, groovy.lang,26,,,,,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, groovy.text,1,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, groovy.util,5,,,,,,,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -hudson,68,4,2334,,4,3,,,,4,,,,,,,,,,51,,,,,,,,,6,,,,,,,,,,4,2258,76 +hudson,68,4,2647,,4,3,,,,4,,,,,,,,,,51,,,,,,,,,6,,,,,,,,,,4,2571,76 io.jsonwebtoken,,2,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,4, io.netty.bootstrap,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,,,,,, io.netty.buffer,,,207,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,77 @@ -83,7 +83,7 @@ javax.ws.rs.core,3,,149,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,2,,,,,,94,55 javax.xml.bind.attachment,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, javax.xml.transform,2,,6,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,1,,,,6, javax.xml.xpath,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,, -jenkins,,,446,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,423,23 +jenkins,,,523,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,500,23 jodd.json,,,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10 kotlin,16,,1849,,,,,,,,,,,,,,,,,14,,,,,,,,,2,,,,,,,,,,,1836,13 net.sf.json,2,,338,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,321,17 @@ -143,11 +143,11 @@ org.hibernate,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,, org.influxdb,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, org.jboss.logging,324,,,,,,,,,,,,,,,,324,,,,,,,,,,,,,,,,,,,,,,,, org.jdbi.v3.core,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,, -org.jenkins.ui.icon,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,41,1 -org.jenkins.ui.symbol,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,24,8 +org.jenkins.ui.icon,,,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48,1 +org.jenkins.ui.symbol,,,33,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,8 org.jooq,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,, org.json,,,236,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,198,38 -org.kohsuke.stapler,20,24,343,,,,,,,2,,,,,,,,,,9,,,,,,,,,4,,,,,5,,,,,24,332,11 +org.kohsuke.stapler,20,24,363,,,,,,,2,,,,,,,,,,9,,,,,,,,,4,,,,,5,,,,,24,352,11 org.mvel2,16,,,,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,,,, org.openjdk.jmh.runner.options,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,, org.owasp.esapi,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index a1ed654189b..d926edff7b7 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -22,6 +22,6 @@ Java framework & library support Java extensions,"``javax.*``, ``jakarta.*``",67,681,40,4,4,,1,1,4 Kotlin Standard Library,``kotlin*``,,1849,16,14,,,,,2 `Spring `_,``org.springframework.*``,29,483,115,4,,28,14,,35 - Others,"``actions.osgi``, ``antlr``, ``cn.hutool.core.codec``, ``com.alibaba.druid.sql``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``com.thoughtworks.xstream``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.influxdb``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",126,10084,656,89,6,18,18,,200 - Totals,,287,18465,2148,288,16,122,33,1,393 + Others,"``actions.osgi``, ``antlr``, ``cn.hutool.core.codec``, ``com.alibaba.druid.sql``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``com.thoughtworks.xstream``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.influxdb``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",126,10502,656,89,6,18,18,,200 + Totals,,287,18883,2148,288,16,122,33,1,393 From f3a746c32487f38961c3eb356dc5040d55712672 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 03:10:03 +0000 Subject: [PATCH 452/788] Bump chrono from 0.4.30 to 0.4.31 in /ql Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.30 to 0.4.31. - [Release notes](https://github.com/chronotope/chrono/releases) - [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md) - [Commits](https://github.com/chronotope/chrono/compare/v0.4.30...v0.4.31) --- updated-dependencies: - dependency-name: chrono dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- ql/Cargo.lock | Bin 32461 -> 32461 bytes ql/buramu/Cargo.toml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ql/Cargo.lock b/ql/Cargo.lock index e9b0aa0b57b5f336cbbe810f50fbb20259d88e7f..45c71250d52c10ddfddaab89f4377b144a83e213 100644 GIT binary patch delta 87 zcmV~$!3}^Q3;@6|fIgkUrxjZ2#~CzE&{FX0E-qr?2L2g|#Jk#DZSMIx2lsw#Ync-< qs+iB}Euc)`F{Er74T}g7EWyB#RVdFCg)K+s5*Jf{!#KQWU#=e{avSvk delta 87 zcmV~$xeb6Y3;;l-MS_k!V#SH$juBYFPeRKsEP})Y&@&PeckdV8FPzVKz_2dfx?`hC o$<;M1& diff --git a/ql/buramu/Cargo.toml b/ql/buramu/Cargo.toml index 59edbf224a8..75e48b9d163 100644 --- a/ql/buramu/Cargo.toml +++ b/ql/buramu/Cargo.toml @@ -7,6 +7,6 @@ edition = "2018" [dependencies] lazy_static = "1.4.0" -chrono = "0.4.30" +chrono = "0.4.31" rayon = "1.7.0" regex = "1.9.5" From 9c0682848e768a8dc7e8c5ceab2627deb89c59ed Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Sat, 17 Jun 2023 10:06:32 +0200 Subject: [PATCH 453/788] use final class aliases to use `extends` instead of `instanceof` in the shared libraries --- .../codeql/regex/OverlyLargeRangeQuery.qll | 10 ++--- .../codeql/regex/nfa/BadTagFilterQuery.qll | 12 +----- shared/regex/codeql/regex/nfa/NfaUtils.qll | 38 +++++-------------- .../regex/codeql/regex/nfa/RegexpMatching.qll | 14 ++----- .../regex/nfa/SuperlinearBackTracking.qll | 17 ++------- .../util/suppression/AlertSuppression.qll | 36 +++++++----------- 6 files changed, 33 insertions(+), 94 deletions(-) diff --git a/shared/regex/codeql/regex/OverlyLargeRangeQuery.qll b/shared/regex/codeql/regex/OverlyLargeRangeQuery.qll index 8d3a0b9c0ff..aad6e400583 100644 --- a/shared/regex/codeql/regex/OverlyLargeRangeQuery.qll +++ b/shared/regex/codeql/regex/OverlyLargeRangeQuery.qll @@ -82,8 +82,10 @@ module Make { bindingset[char] int toCodePoint(string char) { result.toUnicode() = char } + final private class FinalRegExpCharacterRange = RegExpCharacterRange; + /** A character range that appears to be overly wide. */ - class OverlyWideRange instanceof RegExpCharacterRange { + class OverlyWideRange extends FinalRegExpCharacterRange { OverlyWideRange() { exists(int low, int high, int numChars | isRange(this, low, high) and @@ -111,12 +113,6 @@ module Make { /** Gets a string representation of a character class that matches the same chars as this range. */ string printEquivalent() { result = RangePrinter::printEquivalentCharClass(this) } - - /** Gets a string representation of this range. */ - string toString() { result = super.toString() } - - /** Holds if `lo` is the lower bound of this character range and `hi` the upper bound. */ - predicate isRange(string lo, string hi) { super.isRange(lo, hi) } } /** Gets a range that should not be reported as an overly wide range. */ diff --git a/shared/regex/codeql/regex/nfa/BadTagFilterQuery.qll b/shared/regex/codeql/regex/nfa/BadTagFilterQuery.qll index 193879f139e..0d040bc6f64 100644 --- a/shared/regex/codeql/regex/nfa/BadTagFilterQuery.qll +++ b/shared/regex/codeql/regex/nfa/BadTagFilterQuery.qll @@ -55,7 +55,7 @@ module Make { /** * A regexp that matches some string from the `isBadTagFilterCandidate` predicate. */ - class HtmlMatchingRegExp instanceof RootTerm { + class HtmlMatchingRegExp extends RootTerm { HtmlMatchingRegExp() { RegexpMatching::matches(this, _) } /** Holds if this regexp matched `str`, where `str` is one of the string from `isBadTagFilterCandidate`. */ @@ -65,16 +65,6 @@ module Make { predicate fillsCaptureGroup(string str, int g) { RegexpMatching::fillsCaptureGroup(this, str, g) } - - /** Gets a string representation of this term. */ - string toString() { result = super.toString() } - - /** Holds if this term has the specified location. */ - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } } /** diff --git a/shared/regex/codeql/regex/nfa/NfaUtils.qll b/shared/regex/codeql/regex/nfa/NfaUtils.qll index 2b14fe28aca..c888b426d5e 100644 --- a/shared/regex/codeql/regex/nfa/NfaUtils.qll +++ b/shared/regex/codeql/regex/nfa/NfaUtils.qll @@ -74,10 +74,12 @@ module Make { forex(RegExpTerm child | child = t.(RegExpSequence).getAChild() | matchesEpsilon(child)) } + final private class FinalRegExpSubPattern = RegExpSubPattern; + /** * A lookahead/lookbehind that matches the empty string. */ - class EmptyPositiveSubPattern instanceof RegExpSubPattern { + class EmptyPositiveSubPattern extends FinalRegExpSubPattern { EmptyPositiveSubPattern() { ( this instanceof RegExpPositiveLookahead @@ -86,19 +88,18 @@ module Make { ) and matchesEpsilon(this.getOperand()) } - - /** Gets a string representation of this sub-pattern. */ - string toString() { result = super.toString() } } /** DEPRECATED: Use `EmptyPositiveSubPattern` instead. */ deprecated class EmptyPositiveSubPatttern = EmptyPositiveSubPattern; + final private class FinalRegExpTerm = RegExpTerm; + /** * A branch in a disjunction that is the root node in a literal, or a literal * whose root node is not a disjunction. */ - class RegExpRoot instanceof RegExpTerm { + class RegExpRoot extends FinalRegExpTerm { RegExpRoot() { exists(RegExpParent parent | exists(RegExpAlt alt | @@ -122,12 +123,6 @@ module Make { // not excluded for library specific reasons not isExcluded(super.getRootTerm().getParent()) } - - /** Gets a string representation of this root term. */ - string toString() { result = this.(RegExpTerm).toString() } - - /** Gets the outermost term of this regular expression. */ - RegExpTerm getRootTerm() { result = super.getRootTerm() } } /** @@ -146,17 +141,8 @@ module Make { /** * A regexp term that is relevant for this ReDoS analysis. */ - class RelevantRegExpTerm instanceof RegExpTerm { + class RelevantRegExpTerm extends FinalRegExpTerm { RelevantRegExpTerm() { getRoot(this).isRelevant() } - - /** Gets a string representation of this term. */ - string toString() { result = super.toString() } - - /** Gets the raw source text of this term. */ - string getRawValue() { result = super.getRawValue() } - - /** Gets the outermost term of this regular expression. */ - RegExpTerm getRootTerm() { result = super.getRootTerm() } } /** @@ -864,7 +850,7 @@ module Make { * which represents the state of the NFA before starting to * match `t`, or the `i`th character in `t` if `t` is a constant. */ - class State extends TState { + final class State extends TState { RegExpTerm repr; State() { @@ -1056,16 +1042,10 @@ module Make { } /** A state within a regular expression that contains a candidate state. */ - class RelevantState instanceof State { + class RelevantState extends State { RelevantState() { exists(State s | isCandidate(s) | getRoot(s.getRepr()) = getRoot(this.getRepr())) } - - /** Gets a string representation for this state in a regular expression. */ - string toString() { result = State.super.toString() } - - /** Gets the term represented by this state. */ - RegExpTerm getRepr() { result = State.super.getRepr() } } } diff --git a/shared/regex/codeql/regex/nfa/RegexpMatching.qll b/shared/regex/codeql/regex/nfa/RegexpMatching.qll index 447a6f00b98..fae1cea5f8c 100644 --- a/shared/regex/codeql/regex/nfa/RegexpMatching.qll +++ b/shared/regex/codeql/regex/nfa/RegexpMatching.qll @@ -13,19 +13,11 @@ module Make { private import TreeImpl import NfaUtils::Make + final private class FinalRegExpTerm = RegExpTerm; + /** A root term */ - class RootTerm instanceof RegExpTerm { + final class RootTerm extends FinalRegExpTerm { RootTerm() { this.isRootTerm() } - - /** Gets a string representation of this term. */ - string toString() { result = super.toString() } - - /** Holds if this term has the specified location. */ - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } } /** diff --git a/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll b/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll index 43d8e8a73db..b3c6e64837b 100644 --- a/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll +++ b/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll @@ -418,11 +418,13 @@ module Make { "' can start matching anywhere after the start of the preceeding " + prev } + final private class FinalInfiniteRepetitionQuantifier = InfiniteRepetitionQuantifier; + /** * A term that may cause a regular expression engine to perform a * polynomial number of match attempts, relative to the input length. */ - class PolynomialBackTrackingTerm instanceof InfiniteRepetitionQuantifier { + class PolynomialBackTrackingTerm extends FinalInfiniteRepetitionQuantifier { string reason; string pump; string prefixMsg; @@ -463,18 +465,5 @@ module Make { * Gets the reason for the number of match attempts. */ string getReason() { result = reason } - - /** Gets a string representation of this term. */ - string toString() { result = super.toString() } - - /** Gets the outermost term of this regular expression. */ - RegExpTerm getRootTerm() { result = super.getRootTerm() } - - /** Holds if this term has the specific location. */ - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } } } diff --git a/shared/util/codeql/util/suppression/AlertSuppression.qll b/shared/util/codeql/util/suppression/AlertSuppression.qll index 1576ac4692f..fad8d96566c 100644 --- a/shared/util/codeql/util/suppression/AlertSuppression.qll +++ b/shared/util/codeql/util/suppression/AlertSuppression.qll @@ -5,12 +5,23 @@ signature class AstNode { } signature class SingleLineComment { + /** Gets a textual representation of this element. */ string toString(); + /** + * Holds if this element is at the specified location. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `filepath`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ); + /** + * Gets the text of this suppression comment. + */ string getText(); } @@ -18,28 +29,12 @@ signature class SingleLineComment { * Constructs an alert suppression query. */ module Make { + final private class FinalCommnent = Comment; + /** * An alert suppression comment. */ - abstract class SuppressionComment instanceof Comment { - /** - * Gets the text of this suppression comment. - */ - string getText() { result = super.getText() } - - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - + abstract class SuppressionComment extends FinalCommnent { /** Gets the suppression annotation in this comment. */ abstract string getAnnotation(); @@ -53,9 +48,6 @@ module Make { /** Gets the scope of this suppression. */ SuppressionScope getScope() { this = result.getSuppressionComment() } - - /** Gets a textual representation of this element. */ - string toString() { result = super.toString() } } private class LgtmSuppressionComment extends SuppressionComment { From d15420c42c5e58432c1ef63e17e7e9bda27a3aac Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Sep 2023 10:07:01 +0100 Subject: [PATCH 454/788] Swift: Consequences of change in main on the test internals. --- .../dataflow/dataflow/DataFlow.expected | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index ddf1114d042..8efe10c62b6 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -519,25 +519,25 @@ edges | test.swift:841:13:841:13 | s2 [s, x] | test.swift:841:13:841:16 | .s [x] | | test.swift:841:13:841:16 | .s [x] | test.swift:615:7:615:7 | self [x] | | test.swift:841:13:841:16 | .s [x] | test.swift:841:13:841:18 | .x | -| test.swift:844:19:844:28 | args [Array element] | test.swift:846:15:846:15 | args [Array element] | -| test.swift:846:15:846:15 | args [Array element] | test.swift:846:15:846:21 | ...[...] | +| test.swift:844:19:844:28 | args [Collection element] | test.swift:846:15:846:15 | args [Collection element] | +| test.swift:846:15:846:15 | args [Collection element] | test.swift:846:15:846:21 | ...[...] | | test.swift:849:19:849:24 | v | test.swift:850:15:850:15 | v | -| test.swift:856:29:856:40 | args [Array element] | test.swift:859:15:859:15 | args [Array element] | -| test.swift:856:29:856:40 | args [Array element] | test.swift:860:15:860:15 | args [Array element] | -| test.swift:856:29:856:40 | args [Array element] | test.swift:867:15:867:15 | args [Array element] | -| test.swift:859:15:859:15 | args [Array element] | test.swift:859:15:859:21 | ...[...] | -| test.swift:860:15:860:15 | args [Array element] | test.swift:860:15:860:21 | ...[...] | -| test.swift:866:21:866:29 | enter #keyPath(...) [Array element] | test.swift:866:27:866:29 | KeyPathComponent [Array element] | -| test.swift:866:27:866:29 | KeyPathComponent [Array element] | test.swift:866:21:866:29 | exit #keyPath(...) | -| test.swift:867:15:867:15 | args [Array element] | test.swift:866:21:866:29 | enter #keyPath(...) [Array element] | -| test.swift:867:15:867:15 | args [Array element] | test.swift:867:15:867:38 | \\...[...] | -| test.swift:871:24:871:31 | [...] [Array element] | test.swift:844:19:844:28 | args [Array element] | -| test.swift:871:24:871:31 | [...] [Array element] | test.swift:871:24:871:31 | [...] [Array element] | -| test.swift:871:24:871:31 | call to source() | test.swift:871:24:871:31 | [...] [Array element] | +| test.swift:856:29:856:40 | args [Collection element] | test.swift:859:15:859:15 | args [Collection element] | +| test.swift:856:29:856:40 | args [Collection element] | test.swift:860:15:860:15 | args [Collection element] | +| test.swift:856:29:856:40 | args [Collection element] | test.swift:867:15:867:15 | args [Collection element] | +| test.swift:859:15:859:15 | args [Collection element] | test.swift:859:15:859:21 | ...[...] | +| test.swift:860:15:860:15 | args [Collection element] | test.swift:860:15:860:21 | ...[...] | +| test.swift:866:21:866:29 | enter #keyPath(...) [Collection element] | test.swift:866:27:866:29 | KeyPathComponent [Collection element] | +| test.swift:866:27:866:29 | KeyPathComponent [Collection element] | test.swift:866:21:866:29 | exit #keyPath(...) | +| test.swift:867:15:867:15 | args [Collection element] | test.swift:866:21:866:29 | enter #keyPath(...) [Collection element] | +| test.swift:867:15:867:15 | args [Collection element] | test.swift:867:15:867:38 | \\...[...] | +| test.swift:871:24:871:31 | [...] [Collection element] | test.swift:844:19:844:28 | args [Collection element] | +| test.swift:871:24:871:31 | [...] [Collection element] | test.swift:871:24:871:31 | [...] [Collection element] | +| test.swift:871:24:871:31 | call to source() | test.swift:871:24:871:31 | [...] [Collection element] | | test.swift:872:18:872:25 | call to source() | test.swift:849:19:849:24 | v | -| test.swift:873:21:873:31 | [...] [Array element] | test.swift:856:29:856:40 | args [Array element] | -| test.swift:873:21:873:31 | [...] [Array element] | test.swift:873:21:873:31 | [...] [Array element] | -| test.swift:873:24:873:31 | call to source() | test.swift:873:21:873:31 | [...] [Array element] | +| test.swift:873:21:873:31 | [...] [Collection element] | test.swift:856:29:856:40 | args [Collection element] | +| test.swift:873:21:873:31 | [...] [Collection element] | test.swift:873:21:873:31 | [...] [Collection element] | +| test.swift:873:24:873:31 | call to source() | test.swift:873:21:873:31 | [...] [Collection element] | nodes | file://:0:0:0:0 | .a [x] | semmle.label | .a [x] | | file://:0:0:0:0 | .s [x] | semmle.label | .s [x] | @@ -1101,27 +1101,27 @@ nodes | test.swift:841:13:841:13 | s2 [s, x] | semmle.label | s2 [s, x] | | test.swift:841:13:841:16 | .s [x] | semmle.label | .s [x] | | test.swift:841:13:841:18 | .x | semmle.label | .x | -| test.swift:844:19:844:28 | args [Array element] | semmle.label | args [Array element] | -| test.swift:846:15:846:15 | args [Array element] | semmle.label | args [Array element] | +| test.swift:844:19:844:28 | args [Collection element] | semmle.label | args [Collection element] | +| test.swift:846:15:846:15 | args [Collection element] | semmle.label | args [Collection element] | | test.swift:846:15:846:21 | ...[...] | semmle.label | ...[...] | | test.swift:849:19:849:24 | v | semmle.label | v | | test.swift:850:15:850:15 | v | semmle.label | v | -| test.swift:856:29:856:40 | args [Array element] | semmle.label | args [Array element] | -| test.swift:859:15:859:15 | args [Array element] | semmle.label | args [Array element] | +| test.swift:856:29:856:40 | args [Collection element] | semmle.label | args [Collection element] | +| test.swift:859:15:859:15 | args [Collection element] | semmle.label | args [Collection element] | | test.swift:859:15:859:21 | ...[...] | semmle.label | ...[...] | -| test.swift:860:15:860:15 | args [Array element] | semmle.label | args [Array element] | +| test.swift:860:15:860:15 | args [Collection element] | semmle.label | args [Collection element] | | test.swift:860:15:860:21 | ...[...] | semmle.label | ...[...] | -| test.swift:866:21:866:29 | enter #keyPath(...) [Array element] | semmle.label | enter #keyPath(...) [Array element] | +| test.swift:866:21:866:29 | enter #keyPath(...) [Collection element] | semmle.label | enter #keyPath(...) [Collection element] | | test.swift:866:21:866:29 | exit #keyPath(...) | semmle.label | exit #keyPath(...) | -| test.swift:866:27:866:29 | KeyPathComponent [Array element] | semmle.label | KeyPathComponent [Array element] | -| test.swift:867:15:867:15 | args [Array element] | semmle.label | args [Array element] | +| test.swift:866:27:866:29 | KeyPathComponent [Collection element] | semmle.label | KeyPathComponent [Collection element] | +| test.swift:867:15:867:15 | args [Collection element] | semmle.label | args [Collection element] | | test.swift:867:15:867:38 | \\...[...] | semmle.label | \\...[...] | -| test.swift:871:24:871:31 | [...] [Array element] | semmle.label | [...] [Array element] | -| test.swift:871:24:871:31 | [...] [Array element] | semmle.label | [...] [Array element] | +| test.swift:871:24:871:31 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| test.swift:871:24:871:31 | [...] [Collection element] | semmle.label | [...] [Collection element] | | test.swift:871:24:871:31 | call to source() | semmle.label | call to source() | | test.swift:872:18:872:25 | call to source() | semmle.label | call to source() | -| test.swift:873:21:873:31 | [...] [Array element] | semmle.label | [...] [Array element] | -| test.swift:873:21:873:31 | [...] [Array element] | semmle.label | [...] [Array element] | +| test.swift:873:21:873:31 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| test.swift:873:21:873:31 | [...] [Collection element] | semmle.label | [...] [Collection element] | | test.swift:873:24:873:31 | call to source() | semmle.label | call to source() | subpaths | test.swift:75:22:75:22 | x | test.swift:65:16:65:28 | arg1 | test.swift:65:1:70:1 | arg2[return] | test.swift:75:32:75:32 | [post] y | @@ -1188,7 +1188,7 @@ subpaths | test.swift:840:3:840:16 | \\...[...] | test.swift:839:11:839:17 | [post] exit #keyPath(...) | test.swift:839:15:839:15 | [post] KeyPathComponent [s, x] | test.swift:840:3:840:3 | [post] s2 [s, x] | | test.swift:841:13:841:13 | s2 [s, x] | test.swift:632:7:632:7 | self [s, x] | file://:0:0:0:0 | .s [x] | test.swift:841:13:841:16 | .s [x] | | test.swift:841:13:841:16 | .s [x] | test.swift:615:7:615:7 | self [x] | file://:0:0:0:0 | .x | test.swift:841:13:841:18 | .x | -| test.swift:867:15:867:15 | args [Array element] | test.swift:866:21:866:29 | enter #keyPath(...) [Array element] | test.swift:866:21:866:29 | exit #keyPath(...) | test.swift:867:15:867:38 | \\...[...] | +| test.swift:867:15:867:15 | args [Collection element] | test.swift:866:21:866:29 | enter #keyPath(...) [Collection element] | test.swift:866:21:866:29 | exit #keyPath(...) | test.swift:867:15:867:38 | \\...[...] | #select | test.swift:7:15:7:15 | t1 | test.swift:6:19:6:26 | call to source() | test.swift:7:15:7:15 | t1 | result | | test.swift:9:15:9:15 | t1 | test.swift:6:19:6:26 | call to source() | test.swift:9:15:9:15 | t1 | result | From 86b0fae77ed570f75b9f710ceedd14b987fa383a Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Sep 2023 10:28:45 +0100 Subject: [PATCH 455/788] Swift: Update uses of deprecated ArrayContent. --- swift/ql/lib/codeql/swift/security/CleartextLoggingQuery.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CleartextLoggingQuery.qll b/swift/ql/lib/codeql/swift/security/CleartextLoggingQuery.qll index 08fed61c7d9..b5d3217e483 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextLoggingQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextLoggingQuery.qll @@ -27,9 +27,9 @@ module CleartextLoggingConfig implements DataFlow::ConfigSig { } predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c) { - // flow out from array content at the sink. + // flow out from collection content at the sink. isSink(node) and - c.getAReadContent() instanceof DataFlow::Content::ArrayContent + c.getAReadContent() instanceof DataFlow::Content::CollectionContent } } From c7ccfac93805b1091f415fe83f83ef7c399684bb Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Mon, 18 Sep 2023 10:51:48 +0100 Subject: [PATCH 456/788] CPP: Simplify some code in IRGuards. --- cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index 49b7e0c8b6d..5a0c561dc3f 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -240,7 +240,7 @@ private class GuardConditionFromIR extends GuardCondition { */ private predicate controlsBlock(BasicBlock controlled, boolean testIsTrue) { exists(IRBlock irb | - forex(IRGuardCondition inst | inst = ir | inst.controls(irb, testIsTrue)) and + ir.controls(irb, testIsTrue) and irb.getAnInstruction().getAst().(ControlFlowNode).getBasicBlock() = controlled and not isUnreachedBlock(irb) ) From 874f91c7ae7cd6114ec02e1515d084b06faf3d44 Mon Sep 17 00:00:00 2001 From: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> Date: Mon, 18 Sep 2023 12:25:31 +0200 Subject: [PATCH 457/788] Java: Further alert message improvement Co-authored-by: Tony Torralba --- java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql b/java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql index 6645e6c54ec..cd6af9a8462 100644 --- a/java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql +++ b/java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql @@ -16,5 +16,5 @@ import MissingJwtSignatureCheckFlow::PathGraph from MissingJwtSignatureCheckFlow::PathNode source, MissingJwtSignatureCheckFlow::PathNode sink where MissingJwtSignatureCheckFlow::flowPath(source, sink) -select sink.getNode(), source, sink, "This sets a $@, but the signature is not verified.", +select sink.getNode(), source, sink, "This parser sets a $@, but the signature is not verified.", source.getNode(), "JWT signing key" From 53561b7883499097010cb19bf5c54e7d7415b394 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 18 Sep 2023 11:45:18 +0100 Subject: [PATCH 458/788] C++: Add tests for sized allocation without a need for a synthesized conversion. --- .../library-tests/ir/ir/PrintAST.expected | 89 +++++++++++++++++++ .../library-tests/ir/ir/aliased_ir.expected | 81 +++++++++++++++++ cpp/ql/test/library-tests/ir/ir/ir.cpp | 9 ++ .../ir/ir/operand_locations.expected | 78 ++++++++++++++++ .../test/library-tests/ir/ir/raw_ir.expected | 74 +++++++++++++++ 5 files changed, 331 insertions(+) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index a698e72a23f..65caa9704c5 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -15846,6 +15846,95 @@ ir.cpp: # 2095| getExpr(): [VariableAccess] x # 2095| Type = [IntType] int # 2095| ValueCategory = prvalue(load) +# 2098| [TopLevelFunction] void newArrayCorrectType(size_t) +# 2098| : +# 2098| getParameter(0): [Parameter] n +# 2098| Type = [CTypedefType,Size_t] size_t +# 2098| getEntryPoint(): [BlockStmt] { ... } +# 2099| getStmt(0): [ExprStmt] ExprStmt +# 2099| getExpr(): [NewArrayExpr] new[] +# 2099| Type = [IntPointerType] int * +# 2099| ValueCategory = prvalue +# 2099| getExtent(): [VariableAccess] n +# 2099| Type = [CTypedefType,Size_t] size_t +# 2099| ValueCategory = prvalue(load) +# 2100| getStmt(1): [ExprStmt] ExprStmt +# 2100| getExpr(): [NewArrayExpr] new[] +# 2100| Type = [IntPointerType] int * +# 2100| ValueCategory = prvalue +# 2100| getAllocatorCall(): [FunctionCall] call to operator new[] +# 2100| Type = [VoidPointerType] void * +# 2100| ValueCategory = prvalue +# 2100| getArgument(0): [ErrorExpr] +# 2100| Type = [LongType] unsigned long +# 2100| ValueCategory = prvalue +# 2100| getArgument(1): [Literal] 1.0 +# 2100| Type = [FloatType] float +# 2100| Value = [Literal] 1.0 +# 2100| ValueCategory = prvalue +# 2100| getExtent(): [VariableAccess] n +# 2100| Type = [CTypedefType,Size_t] size_t +# 2100| ValueCategory = prvalue(load) +# 2101| getStmt(2): [ExprStmt] ExprStmt +# 2101| getExpr(): [NewArrayExpr] new[] +# 2101| Type = [PointerType] String * +# 2101| ValueCategory = prvalue +# 2101| getInitializer(): [ArrayAggregateLiteral] {...} +# 2101| Type = [ArrayType] String[] +# 2101| ValueCategory = prvalue +# 2101| getAnElementExpr(0): [ConstructorCall] call to String +# 2101| Type = [VoidType] void +# 2101| ValueCategory = prvalue +# 2101| getExtent(): [VariableAccess] n +# 2101| Type = [CTypedefType,Size_t] size_t +# 2101| ValueCategory = prvalue(load) +# 2102| getStmt(3): [ExprStmt] ExprStmt +# 2102| getExpr(): [NewArrayExpr] new[] +# 2102| Type = [PointerType] Overaligned * +# 2102| ValueCategory = prvalue +# 2102| getExtent(): [VariableAccess] n +# 2102| Type = [CTypedefType,Size_t] size_t +# 2102| ValueCategory = prvalue(load) +# 2102| getAlignmentArgument(): [Literal] 128 +# 2102| Type = [ScopedEnum] align_val_t +# 2102| Value = [Literal] 128 +# 2102| ValueCategory = prvalue +# 2103| getStmt(4): [ExprStmt] ExprStmt +# 2103| getExpr(): [NewArrayExpr] new[] +# 2103| Type = [PointerType] DefaultCtorWithDefaultParam * +# 2103| ValueCategory = prvalue +# 2103| getInitializer(): [ArrayAggregateLiteral] {...} +# 2103| Type = [ArrayType] DefaultCtorWithDefaultParam[] +# 2103| ValueCategory = prvalue +# 2103| getAnElementExpr(0): [ConstructorCall] call to DefaultCtorWithDefaultParam +# 2103| Type = [VoidType] void +# 2103| ValueCategory = prvalue +# 2103| getExtent(): [VariableAccess] n +# 2103| Type = [CTypedefType,Size_t] size_t +# 2103| ValueCategory = prvalue(load) +# 2104| getStmt(5): [ExprStmt] ExprStmt +# 2104| getExpr(): [NewArrayExpr] new[] +# 2104| Type = [IntPointerType] int * +# 2104| ValueCategory = prvalue +# 2104| getInitializer(): [ArrayAggregateLiteral] {...} +# 2104| Type = [ArrayType] int[3] +# 2104| ValueCategory = prvalue +# 2104| getAnElementExpr(0): [Literal] 0 +# 2104| Type = [IntType] int +# 2104| Value = [Literal] 0 +# 2104| ValueCategory = prvalue +# 2104| getAnElementExpr(1): [Literal] 1 +# 2104| Type = [IntType] int +# 2104| Value = [Literal] 1 +# 2104| ValueCategory = prvalue +# 2104| getAnElementExpr(2): [Literal] 2 +# 2104| Type = [IntType] int +# 2104| Value = [Literal] 2 +# 2104| ValueCategory = prvalue +# 2104| getExtent(): [VariableAccess] n +# 2104| Type = [CTypedefType,Size_t] size_t +# 2104| ValueCategory = prvalue(load) +# 2105| getStmt(6): [ReturnStmt] return ... perf-regression.cpp: # 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&) # 4| : diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected index 43525ccf1db..e4177d0c672 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -12215,6 +12215,87 @@ ir.cpp: # 2090| v2090_8(void) = AliasedUse : ~m2094_4 # 2090| v2090_9(void) = ExitFunction : +# 2098| void newArrayCorrectType(size_t) +# 2098| Block 0 +# 2098| v2098_1(void) = EnterFunction : +# 2098| m2098_2(unknown) = AliasedDefinition : +# 2098| m2098_3(unknown) = InitializeNonLocal : +# 2098| m2098_4(unknown) = Chi : total:m2098_2, partial:m2098_3 +# 2098| r2098_5(glval) = VariableAddress[n] : +# 2098| m2098_6(unsigned long) = InitializeParameter[n] : &:r2098_5 +# 2099| r2099_1(glval) = FunctionAddress[operator new[]] : +# 2099| r2099_2(glval) = VariableAddress[n] : +# 2099| r2099_3(unsigned long) = Load[n] : &:r2099_2, m2098_6 +# 2099| r2099_4(unsigned long) = Convert : r2099_3 +# 2099| r2099_5(unsigned long) = Constant[4] : +# 2099| r2099_6(unsigned long) = Mul : r2099_4, r2099_5 +# 2099| r2099_7(void *) = Call[operator new[]] : func:r2099_1, 0:r2099_6 +# 2099| m2099_8(unknown) = ^CallSideEffect : ~m2098_4 +# 2099| m2099_9(unknown) = Chi : total:m2098_4, partial:m2099_8 +# 2099| m2099_10(unknown) = ^InitializeDynamicAllocation : &:r2099_7 +# 2099| r2099_11(int *) = Convert : r2099_7 +# 2100| r2100_1(glval) = FunctionAddress[operator new[]] : +# 2100| r2100_2(glval) = VariableAddress[n] : +# 2100| r2100_3(unsigned long) = Load[n] : &:r2100_2, m2098_6 +# 2100| r2100_4(unsigned long) = Convert : r2100_3 +# 2100| r2100_5(unsigned long) = Constant[4] : +# 2100| r2100_6(unsigned long) = Mul : r2100_4, r2100_5 +# 2100| r2100_7(float) = Constant[1.0] : +# 2100| r2100_8(void *) = Call[operator new[]] : func:r2100_1, 0:r2100_6, 1:r2100_7 +# 2100| m2100_9(unknown) = ^CallSideEffect : ~m2099_9 +# 2100| m2100_10(unknown) = Chi : total:m2099_9, partial:m2100_9 +# 2100| m2100_11(unknown) = ^InitializeDynamicAllocation : &:r2100_8 +# 2100| r2100_12(int *) = Convert : r2100_8 +# 2101| r2101_1(glval) = FunctionAddress[operator new[]] : +# 2101| r2101_2(glval) = VariableAddress[n] : +# 2101| r2101_3(unsigned long) = Load[n] : &:r2101_2, m2098_6 +# 2101| r2101_4(unsigned long) = Convert : r2101_3 +# 2101| r2101_5(unsigned long) = Constant[8] : +# 2101| r2101_6(unsigned long) = Mul : r2101_4, r2101_5 +# 2101| r2101_7(void *) = Call[operator new[]] : func:r2101_1, 0:r2101_6 +# 2101| m2101_8(unknown) = ^CallSideEffect : ~m2100_10 +# 2101| m2101_9(unknown) = Chi : total:m2100_10, partial:m2101_8 +# 2101| m2101_10(unknown) = ^InitializeDynamicAllocation : &:r2101_7 +# 2101| r2101_11(String *) = Convert : r2101_7 +# 2102| r2102_1(glval) = FunctionAddress[operator new[]] : +# 2102| r2102_2(glval) = VariableAddress[n] : +# 2102| r2102_3(unsigned long) = Load[n] : &:r2102_2, m2098_6 +# 2102| r2102_4(unsigned long) = Convert : r2102_3 +# 2102| r2102_5(unsigned long) = Constant[256] : +# 2102| r2102_6(unsigned long) = Mul : r2102_4, r2102_5 +# 2102| r2102_7(align_val_t) = Constant[128] : +# 2102| r2102_8(void *) = Call[operator new[]] : func:r2102_1, 0:r2102_6, 1:r2102_7 +# 2102| m2102_9(unknown) = ^CallSideEffect : ~m2101_9 +# 2102| m2102_10(unknown) = Chi : total:m2101_9, partial:m2102_9 +# 2102| m2102_11(unknown) = ^InitializeDynamicAllocation : &:r2102_8 +# 2102| r2102_12(Overaligned *) = Convert : r2102_8 +# 2103| r2103_1(glval) = FunctionAddress[operator new[]] : +# 2103| r2103_2(glval) = VariableAddress[n] : +# 2103| r2103_3(unsigned long) = Load[n] : &:r2103_2, m2098_6 +# 2103| r2103_4(unsigned long) = Convert : r2103_3 +# 2103| r2103_5(unsigned long) = Constant[1] : +# 2103| r2103_6(unsigned long) = Mul : r2103_4, r2103_5 +# 2103| r2103_7(void *) = Call[operator new[]] : func:r2103_1, 0:r2103_6 +# 2103| m2103_8(unknown) = ^CallSideEffect : ~m2102_10 +# 2103| m2103_9(unknown) = Chi : total:m2102_10, partial:m2103_8 +# 2103| m2103_10(unknown) = ^InitializeDynamicAllocation : &:r2103_7 +# 2103| r2103_11(DefaultCtorWithDefaultParam *) = Convert : r2103_7 +# 2104| r2104_1(glval) = FunctionAddress[operator new[]] : +# 2104| r2104_2(glval) = VariableAddress[n] : +# 2104| r2104_3(unsigned long) = Load[n] : &:r2104_2, m2098_6 +# 2104| r2104_4(unsigned long) = Convert : r2104_3 +# 2104| r2104_5(unsigned long) = Constant[4] : +# 2104| r2104_6(unsigned long) = Mul : r2104_4, r2104_5 +# 2104| r2104_7(void *) = Call[operator new[]] : func:r2104_1, 0:r2104_6 +# 2104| m2104_8(unknown) = ^CallSideEffect : ~m2103_9 +# 2104| m2104_9(unknown) = Chi : total:m2103_9, partial:m2104_8 +# 2104| m2104_10(unknown) = ^InitializeDynamicAllocation : &:r2104_7 +# 2104| r2104_11(int *) = Convert : r2104_7 +# 2105| v2105_1(void) = NoOp : +# 2098| v2098_7(void) = ReturnVoid : +# 2098| v2098_8(void) = AliasedUse : ~m2104_9 +# 2098| v2098_9(void) = ExitFunction : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index 9ad813d02b0..813f7c2448a 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -2095,4 +2095,13 @@ int TransNonExit() { return x; } +void newArrayCorrectType(size_t n) { + new int[n]; // No constructor + new(1.0f) int[n]; // Placement new, no constructor + new String[n]; // Constructor + new Overaligned[n]; // Aligned new + new DefaultCtorWithDefaultParam[n]; + new int[n] { 0, 1, 2 }; +} + // semmle-extractor-options: -std=c++17 --clang diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index 4fa5ceca8a3..1247b2139f8 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -9896,6 +9896,84 @@ | ir.cpp:2095:12:2095:12 | Address | &:r2095_2 | | ir.cpp:2095:12:2095:12 | Load | m2091_8 | | ir.cpp:2095:12:2095:12 | StoreValue | r2095_3 | +| ir.cpp:2098:6:2098:24 | ChiPartial | partial:m2098_3 | +| ir.cpp:2098:6:2098:24 | ChiTotal | total:m2098_2 | +| ir.cpp:2098:6:2098:24 | SideEffect | ~m2104_9 | +| ir.cpp:2098:33:2098:33 | Address | &:r2098_5 | +| ir.cpp:2099:3:2099:12 | Address | &:r2099_7 | +| ir.cpp:2099:3:2099:12 | Arg(0) | 0:r2099_6 | +| ir.cpp:2099:3:2099:12 | CallTarget | func:r2099_1 | +| ir.cpp:2099:3:2099:12 | ChiPartial | partial:m2099_8 | +| ir.cpp:2099:3:2099:12 | ChiTotal | total:m2098_4 | +| ir.cpp:2099:3:2099:12 | Left | r2099_4 | +| ir.cpp:2099:3:2099:12 | Right | r2099_5 | +| ir.cpp:2099:3:2099:12 | SideEffect | ~m2098_4 | +| ir.cpp:2099:3:2099:12 | Unary | r2099_7 | +| ir.cpp:2099:11:2099:11 | Address | &:r2099_2 | +| ir.cpp:2099:11:2099:11 | Load | m2098_6 | +| ir.cpp:2099:11:2099:11 | Unary | r2099_3 | +| ir.cpp:2100:3:2100:18 | Address | &:r2100_8 | +| ir.cpp:2100:3:2100:18 | Arg(0) | 0:r2100_6 | +| ir.cpp:2100:3:2100:18 | CallTarget | func:r2100_1 | +| ir.cpp:2100:3:2100:18 | ChiPartial | partial:m2100_9 | +| ir.cpp:2100:3:2100:18 | ChiTotal | total:m2099_9 | +| ir.cpp:2100:3:2100:18 | Left | r2100_4 | +| ir.cpp:2100:3:2100:18 | Right | r2100_5 | +| ir.cpp:2100:3:2100:18 | SideEffect | ~m2099_9 | +| ir.cpp:2100:3:2100:18 | Unary | r2100_8 | +| ir.cpp:2100:7:2100:10 | Arg(1) | 1:r2100_7 | +| ir.cpp:2100:17:2100:17 | Address | &:r2100_2 | +| ir.cpp:2100:17:2100:17 | Load | m2098_6 | +| ir.cpp:2100:17:2100:17 | Unary | r2100_3 | +| ir.cpp:2101:3:2101:15 | Address | &:r2101_7 | +| ir.cpp:2101:3:2101:15 | Arg(0) | 0:r2101_6 | +| ir.cpp:2101:3:2101:15 | CallTarget | func:r2101_1 | +| ir.cpp:2101:3:2101:15 | ChiPartial | partial:m2101_8 | +| ir.cpp:2101:3:2101:15 | ChiTotal | total:m2100_10 | +| ir.cpp:2101:3:2101:15 | Left | r2101_4 | +| ir.cpp:2101:3:2101:15 | Right | r2101_5 | +| ir.cpp:2101:3:2101:15 | SideEffect | ~m2100_10 | +| ir.cpp:2101:3:2101:15 | Unary | r2101_7 | +| ir.cpp:2101:14:2101:14 | Address | &:r2101_2 | +| ir.cpp:2101:14:2101:14 | Load | m2098_6 | +| ir.cpp:2101:14:2101:14 | Unary | r2101_3 | +| ir.cpp:2102:3:2102:20 | Address | &:r2102_8 | +| ir.cpp:2102:3:2102:20 | Arg(0) | 0:r2102_6 | +| ir.cpp:2102:3:2102:20 | CallTarget | func:r2102_1 | +| ir.cpp:2102:3:2102:20 | ChiPartial | partial:m2102_9 | +| ir.cpp:2102:3:2102:20 | ChiTotal | total:m2101_9 | +| ir.cpp:2102:3:2102:20 | Left | r2102_4 | +| ir.cpp:2102:3:2102:20 | Right | r2102_5 | +| ir.cpp:2102:3:2102:20 | SideEffect | ~m2101_9 | +| ir.cpp:2102:3:2102:20 | Unary | r2102_8 | +| ir.cpp:2102:19:2102:19 | Address | &:r2102_2 | +| ir.cpp:2102:19:2102:19 | Load | m2098_6 | +| ir.cpp:2102:19:2102:19 | Unary | r2102_3 | +| ir.cpp:2102:21:2102:21 | Arg(1) | 1:r2102_7 | +| ir.cpp:2103:3:2103:36 | Address | &:r2103_7 | +| ir.cpp:2103:3:2103:36 | Arg(0) | 0:r2103_6 | +| ir.cpp:2103:3:2103:36 | CallTarget | func:r2103_1 | +| ir.cpp:2103:3:2103:36 | ChiPartial | partial:m2103_8 | +| ir.cpp:2103:3:2103:36 | ChiTotal | total:m2102_10 | +| ir.cpp:2103:3:2103:36 | Left | r2103_4 | +| ir.cpp:2103:3:2103:36 | Right | r2103_5 | +| ir.cpp:2103:3:2103:36 | SideEffect | ~m2102_10 | +| ir.cpp:2103:3:2103:36 | Unary | r2103_7 | +| ir.cpp:2103:35:2103:35 | Address | &:r2103_2 | +| ir.cpp:2103:35:2103:35 | Load | m2098_6 | +| ir.cpp:2103:35:2103:35 | Unary | r2103_3 | +| ir.cpp:2104:3:2104:24 | Address | &:r2104_7 | +| ir.cpp:2104:3:2104:24 | Arg(0) | 0:r2104_6 | +| ir.cpp:2104:3:2104:24 | CallTarget | func:r2104_1 | +| ir.cpp:2104:3:2104:24 | ChiPartial | partial:m2104_8 | +| ir.cpp:2104:3:2104:24 | ChiTotal | total:m2103_9 | +| ir.cpp:2104:3:2104:24 | Left | r2104_4 | +| ir.cpp:2104:3:2104:24 | Right | r2104_5 | +| ir.cpp:2104:3:2104:24 | SideEffect | ~m2103_9 | +| ir.cpp:2104:3:2104:24 | Unary | r2104_7 | +| ir.cpp:2104:11:2104:11 | Address | &:r2104_2 | +| ir.cpp:2104:11:2104:11 | Load | m2098_6 | +| ir.cpp:2104:11:2104:11 | Unary | r2104_3 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_7 | diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index 0c4521f5e6a..50c4a07ac9f 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -11429,6 +11429,80 @@ ir.cpp: # 2090| v2090_6(void) = AliasedUse : ~m? # 2090| v2090_7(void) = ExitFunction : +# 2098| void newArrayCorrectType(size_t) +# 2098| Block 0 +# 2098| v2098_1(void) = EnterFunction : +# 2098| mu2098_2(unknown) = AliasedDefinition : +# 2098| mu2098_3(unknown) = InitializeNonLocal : +# 2098| r2098_4(glval) = VariableAddress[n] : +# 2098| mu2098_5(unsigned long) = InitializeParameter[n] : &:r2098_4 +# 2099| r2099_1(glval) = FunctionAddress[operator new[]] : +# 2099| r2099_2(glval) = VariableAddress[n] : +# 2099| r2099_3(unsigned long) = Load[n] : &:r2099_2, ~m? +# 2099| r2099_4(unsigned long) = Convert : r2099_3 +# 2099| r2099_5(unsigned long) = Constant[4] : +# 2099| r2099_6(unsigned long) = Mul : r2099_4, r2099_5 +# 2099| r2099_7(void *) = Call[operator new[]] : func:r2099_1, 0:r2099_6 +# 2099| mu2099_8(unknown) = ^CallSideEffect : ~m? +# 2099| mu2099_9(unknown) = ^InitializeDynamicAllocation : &:r2099_7 +# 2099| r2099_10(int *) = Convert : r2099_7 +# 2100| r2100_1(glval) = FunctionAddress[operator new[]] : +# 2100| r2100_2(glval) = VariableAddress[n] : +# 2100| r2100_3(unsigned long) = Load[n] : &:r2100_2, ~m? +# 2100| r2100_4(unsigned long) = Convert : r2100_3 +# 2100| r2100_5(unsigned long) = Constant[4] : +# 2100| r2100_6(unsigned long) = Mul : r2100_4, r2100_5 +# 2100| r2100_7(float) = Constant[1.0] : +# 2100| r2100_8(void *) = Call[operator new[]] : func:r2100_1, 0:r2100_6, 1:r2100_7 +# 2100| mu2100_9(unknown) = ^CallSideEffect : ~m? +# 2100| mu2100_10(unknown) = ^InitializeDynamicAllocation : &:r2100_8 +# 2100| r2100_11(int *) = Convert : r2100_8 +# 2101| r2101_1(glval) = FunctionAddress[operator new[]] : +# 2101| r2101_2(glval) = VariableAddress[n] : +# 2101| r2101_3(unsigned long) = Load[n] : &:r2101_2, ~m? +# 2101| r2101_4(unsigned long) = Convert : r2101_3 +# 2101| r2101_5(unsigned long) = Constant[8] : +# 2101| r2101_6(unsigned long) = Mul : r2101_4, r2101_5 +# 2101| r2101_7(void *) = Call[operator new[]] : func:r2101_1, 0:r2101_6 +# 2101| mu2101_8(unknown) = ^CallSideEffect : ~m? +# 2101| mu2101_9(unknown) = ^InitializeDynamicAllocation : &:r2101_7 +# 2101| r2101_10(String *) = Convert : r2101_7 +# 2102| r2102_1(glval) = FunctionAddress[operator new[]] : +# 2102| r2102_2(glval) = VariableAddress[n] : +# 2102| r2102_3(unsigned long) = Load[n] : &:r2102_2, ~m? +# 2102| r2102_4(unsigned long) = Convert : r2102_3 +# 2102| r2102_5(unsigned long) = Constant[256] : +# 2102| r2102_6(unsigned long) = Mul : r2102_4, r2102_5 +# 2102| r2102_7(align_val_t) = Constant[128] : +# 2102| r2102_8(void *) = Call[operator new[]] : func:r2102_1, 0:r2102_6, 1:r2102_7 +# 2102| mu2102_9(unknown) = ^CallSideEffect : ~m? +# 2102| mu2102_10(unknown) = ^InitializeDynamicAllocation : &:r2102_8 +# 2102| r2102_11(Overaligned *) = Convert : r2102_8 +# 2103| r2103_1(glval) = FunctionAddress[operator new[]] : +# 2103| r2103_2(glval) = VariableAddress[n] : +# 2103| r2103_3(unsigned long) = Load[n] : &:r2103_2, ~m? +# 2103| r2103_4(unsigned long) = Convert : r2103_3 +# 2103| r2103_5(unsigned long) = Constant[1] : +# 2103| r2103_6(unsigned long) = Mul : r2103_4, r2103_5 +# 2103| r2103_7(void *) = Call[operator new[]] : func:r2103_1, 0:r2103_6 +# 2103| mu2103_8(unknown) = ^CallSideEffect : ~m? +# 2103| mu2103_9(unknown) = ^InitializeDynamicAllocation : &:r2103_7 +# 2103| r2103_10(DefaultCtorWithDefaultParam *) = Convert : r2103_7 +# 2104| r2104_1(glval) = FunctionAddress[operator new[]] : +# 2104| r2104_2(glval) = VariableAddress[n] : +# 2104| r2104_3(unsigned long) = Load[n] : &:r2104_2, ~m? +# 2104| r2104_4(unsigned long) = Convert : r2104_3 +# 2104| r2104_5(unsigned long) = Constant[4] : +# 2104| r2104_6(unsigned long) = Mul : r2104_4, r2104_5 +# 2104| r2104_7(void *) = Call[operator new[]] : func:r2104_1, 0:r2104_6 +# 2104| mu2104_8(unknown) = ^CallSideEffect : ~m? +# 2104| mu2104_9(unknown) = ^InitializeDynamicAllocation : &:r2104_7 +# 2104| r2104_10(int *) = Convert : r2104_7 +# 2105| v2105_1(void) = NoOp : +# 2098| v2098_6(void) = ReturnVoid : +# 2098| v2098_7(void) = AliasedUse : ~m? +# 2098| v2098_8(void) = ExitFunction : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 From 38b100531be4c5b761dab5b799648bcda8ca3bde Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 18 Sep 2023 11:46:11 +0100 Subject: [PATCH 459/788] C++: Only add conversion when necessary. --- .../raw/internal/TranslatedExpr.qll | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll index 707b5b02842..84ac1d4c96c 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll @@ -1906,8 +1906,10 @@ class TranslatedNonConstantAllocationSize extends TranslatedAllocationSize { final override predicate hasInstruction(Opcode opcode, InstructionTag tag, CppType resultType) { resultType = getTypeForPRValue(expr.getAllocator().getParameter(0).getType()) and ( + this.extentNeedsConversion() and // Convert the extent to `size_t`, because the AST doesn't do this already. - tag = AllocationExtentConvertTag() and opcode instanceof Opcode::Convert + tag = AllocationExtentConvertTag() and + opcode instanceof Opcode::Convert or tag = AllocationElementSizeTag() and opcode instanceof Opcode::Constant or @@ -1918,6 +1920,7 @@ class TranslatedNonConstantAllocationSize extends TranslatedAllocationSize { final override Instruction getInstructionSuccessor(InstructionTag tag, EdgeKind kind) { kind instanceof GotoEdge and ( + this.extentNeedsConversion() and tag = AllocationExtentConvertTag() and result = this.getInstruction(AllocationElementSizeTag()) or @@ -1933,7 +1936,9 @@ class TranslatedNonConstantAllocationSize extends TranslatedAllocationSize { final override Instruction getChildSuccessor(TranslatedElement child) { child = this.getExtent() and - result = this.getInstruction(AllocationExtentConvertTag()) + if this.extentNeedsConversion() + then result = this.getInstruction(AllocationExtentConvertTag()) + else result = this.getInstruction(AllocationElementSizeTag()) } final override string getInstructionConstantValue(InstructionTag tag) { @@ -1945,18 +1950,32 @@ class TranslatedNonConstantAllocationSize extends TranslatedAllocationSize { tag = AllocationSizeTag() and ( operandTag instanceof LeftOperandTag and - result = this.getInstruction(AllocationExtentConvertTag()) + ( + if this.extentNeedsConversion() + then result = this.getInstruction(AllocationExtentConvertTag()) + else result = this.getExtent().getResult() + ) or operandTag instanceof RightOperandTag and result = this.getInstruction(AllocationElementSizeTag()) ) or + this.extentNeedsConversion() and tag = AllocationExtentConvertTag() and operandTag instanceof UnaryOperandTag and result = this.getExtent().getResult() } TranslatedExpr getExtent() { result = getTranslatedExpr(expr.getExtent().getFullyConverted()) } + + /** + * Holds if the result of `expr.getExtent()` does not have the same type as + * the allocator's size parameter. + */ + private predicate extentNeedsConversion() { + expr.getExtent().getFullyConverted().getUnspecifiedType() != + expr.getAllocator().getParameter(0).getUnspecifiedType() + } } /** From 0e9f5f6b8ef0abaa0e76d6ca8550085a4b62bfcd Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 18 Sep 2023 11:46:19 +0100 Subject: [PATCH 460/788] C++: Accept test changes. --- .../library-tests/ir/ir/aliased_ir.expected | 96 ++++++------- .../ir/ir/operand_locations.expected | 104 +++++++------- .../test/library-tests/ir/ir/raw_ir.expected | 136 +++++++++--------- 3 files changed, 159 insertions(+), 177 deletions(-) diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected index e4177d0c672..6ca990145d5 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -12226,74 +12226,68 @@ ir.cpp: # 2099| r2099_1(glval) = FunctionAddress[operator new[]] : # 2099| r2099_2(glval) = VariableAddress[n] : # 2099| r2099_3(unsigned long) = Load[n] : &:r2099_2, m2098_6 -# 2099| r2099_4(unsigned long) = Convert : r2099_3 -# 2099| r2099_5(unsigned long) = Constant[4] : -# 2099| r2099_6(unsigned long) = Mul : r2099_4, r2099_5 -# 2099| r2099_7(void *) = Call[operator new[]] : func:r2099_1, 0:r2099_6 -# 2099| m2099_8(unknown) = ^CallSideEffect : ~m2098_4 -# 2099| m2099_9(unknown) = Chi : total:m2098_4, partial:m2099_8 -# 2099| m2099_10(unknown) = ^InitializeDynamicAllocation : &:r2099_7 -# 2099| r2099_11(int *) = Convert : r2099_7 +# 2099| r2099_4(unsigned long) = Constant[4] : +# 2099| r2099_5(unsigned long) = Mul : r2099_3, r2099_4 +# 2099| r2099_6(void *) = Call[operator new[]] : func:r2099_1, 0:r2099_5 +# 2099| m2099_7(unknown) = ^CallSideEffect : ~m2098_4 +# 2099| m2099_8(unknown) = Chi : total:m2098_4, partial:m2099_7 +# 2099| m2099_9(unknown) = ^InitializeDynamicAllocation : &:r2099_6 +# 2099| r2099_10(int *) = Convert : r2099_6 # 2100| r2100_1(glval) = FunctionAddress[operator new[]] : # 2100| r2100_2(glval) = VariableAddress[n] : # 2100| r2100_3(unsigned long) = Load[n] : &:r2100_2, m2098_6 -# 2100| r2100_4(unsigned long) = Convert : r2100_3 -# 2100| r2100_5(unsigned long) = Constant[4] : -# 2100| r2100_6(unsigned long) = Mul : r2100_4, r2100_5 -# 2100| r2100_7(float) = Constant[1.0] : -# 2100| r2100_8(void *) = Call[operator new[]] : func:r2100_1, 0:r2100_6, 1:r2100_7 -# 2100| m2100_9(unknown) = ^CallSideEffect : ~m2099_9 -# 2100| m2100_10(unknown) = Chi : total:m2099_9, partial:m2100_9 -# 2100| m2100_11(unknown) = ^InitializeDynamicAllocation : &:r2100_8 -# 2100| r2100_12(int *) = Convert : r2100_8 +# 2100| r2100_4(unsigned long) = Constant[4] : +# 2100| r2100_5(unsigned long) = Mul : r2100_3, r2100_4 +# 2100| r2100_6(float) = Constant[1.0] : +# 2100| r2100_7(void *) = Call[operator new[]] : func:r2100_1, 0:r2100_5, 1:r2100_6 +# 2100| m2100_8(unknown) = ^CallSideEffect : ~m2099_8 +# 2100| m2100_9(unknown) = Chi : total:m2099_8, partial:m2100_8 +# 2100| m2100_10(unknown) = ^InitializeDynamicAllocation : &:r2100_7 +# 2100| r2100_11(int *) = Convert : r2100_7 # 2101| r2101_1(glval) = FunctionAddress[operator new[]] : # 2101| r2101_2(glval) = VariableAddress[n] : # 2101| r2101_3(unsigned long) = Load[n] : &:r2101_2, m2098_6 -# 2101| r2101_4(unsigned long) = Convert : r2101_3 -# 2101| r2101_5(unsigned long) = Constant[8] : -# 2101| r2101_6(unsigned long) = Mul : r2101_4, r2101_5 -# 2101| r2101_7(void *) = Call[operator new[]] : func:r2101_1, 0:r2101_6 -# 2101| m2101_8(unknown) = ^CallSideEffect : ~m2100_10 -# 2101| m2101_9(unknown) = Chi : total:m2100_10, partial:m2101_8 -# 2101| m2101_10(unknown) = ^InitializeDynamicAllocation : &:r2101_7 -# 2101| r2101_11(String *) = Convert : r2101_7 +# 2101| r2101_4(unsigned long) = Constant[8] : +# 2101| r2101_5(unsigned long) = Mul : r2101_3, r2101_4 +# 2101| r2101_6(void *) = Call[operator new[]] : func:r2101_1, 0:r2101_5 +# 2101| m2101_7(unknown) = ^CallSideEffect : ~m2100_9 +# 2101| m2101_8(unknown) = Chi : total:m2100_9, partial:m2101_7 +# 2101| m2101_9(unknown) = ^InitializeDynamicAllocation : &:r2101_6 +# 2101| r2101_10(String *) = Convert : r2101_6 # 2102| r2102_1(glval) = FunctionAddress[operator new[]] : # 2102| r2102_2(glval) = VariableAddress[n] : # 2102| r2102_3(unsigned long) = Load[n] : &:r2102_2, m2098_6 -# 2102| r2102_4(unsigned long) = Convert : r2102_3 -# 2102| r2102_5(unsigned long) = Constant[256] : -# 2102| r2102_6(unsigned long) = Mul : r2102_4, r2102_5 -# 2102| r2102_7(align_val_t) = Constant[128] : -# 2102| r2102_8(void *) = Call[operator new[]] : func:r2102_1, 0:r2102_6, 1:r2102_7 -# 2102| m2102_9(unknown) = ^CallSideEffect : ~m2101_9 -# 2102| m2102_10(unknown) = Chi : total:m2101_9, partial:m2102_9 -# 2102| m2102_11(unknown) = ^InitializeDynamicAllocation : &:r2102_8 -# 2102| r2102_12(Overaligned *) = Convert : r2102_8 +# 2102| r2102_4(unsigned long) = Constant[256] : +# 2102| r2102_5(unsigned long) = Mul : r2102_3, r2102_4 +# 2102| r2102_6(align_val_t) = Constant[128] : +# 2102| r2102_7(void *) = Call[operator new[]] : func:r2102_1, 0:r2102_5, 1:r2102_6 +# 2102| m2102_8(unknown) = ^CallSideEffect : ~m2101_8 +# 2102| m2102_9(unknown) = Chi : total:m2101_8, partial:m2102_8 +# 2102| m2102_10(unknown) = ^InitializeDynamicAllocation : &:r2102_7 +# 2102| r2102_11(Overaligned *) = Convert : r2102_7 # 2103| r2103_1(glval) = FunctionAddress[operator new[]] : # 2103| r2103_2(glval) = VariableAddress[n] : # 2103| r2103_3(unsigned long) = Load[n] : &:r2103_2, m2098_6 -# 2103| r2103_4(unsigned long) = Convert : r2103_3 -# 2103| r2103_5(unsigned long) = Constant[1] : -# 2103| r2103_6(unsigned long) = Mul : r2103_4, r2103_5 -# 2103| r2103_7(void *) = Call[operator new[]] : func:r2103_1, 0:r2103_6 -# 2103| m2103_8(unknown) = ^CallSideEffect : ~m2102_10 -# 2103| m2103_9(unknown) = Chi : total:m2102_10, partial:m2103_8 -# 2103| m2103_10(unknown) = ^InitializeDynamicAllocation : &:r2103_7 -# 2103| r2103_11(DefaultCtorWithDefaultParam *) = Convert : r2103_7 +# 2103| r2103_4(unsigned long) = Constant[1] : +# 2103| r2103_5(unsigned long) = Mul : r2103_3, r2103_4 +# 2103| r2103_6(void *) = Call[operator new[]] : func:r2103_1, 0:r2103_5 +# 2103| m2103_7(unknown) = ^CallSideEffect : ~m2102_9 +# 2103| m2103_8(unknown) = Chi : total:m2102_9, partial:m2103_7 +# 2103| m2103_9(unknown) = ^InitializeDynamicAllocation : &:r2103_6 +# 2103| r2103_10(DefaultCtorWithDefaultParam *) = Convert : r2103_6 # 2104| r2104_1(glval) = FunctionAddress[operator new[]] : # 2104| r2104_2(glval) = VariableAddress[n] : # 2104| r2104_3(unsigned long) = Load[n] : &:r2104_2, m2098_6 -# 2104| r2104_4(unsigned long) = Convert : r2104_3 -# 2104| r2104_5(unsigned long) = Constant[4] : -# 2104| r2104_6(unsigned long) = Mul : r2104_4, r2104_5 -# 2104| r2104_7(void *) = Call[operator new[]] : func:r2104_1, 0:r2104_6 -# 2104| m2104_8(unknown) = ^CallSideEffect : ~m2103_9 -# 2104| m2104_9(unknown) = Chi : total:m2103_9, partial:m2104_8 -# 2104| m2104_10(unknown) = ^InitializeDynamicAllocation : &:r2104_7 -# 2104| r2104_11(int *) = Convert : r2104_7 +# 2104| r2104_4(unsigned long) = Constant[4] : +# 2104| r2104_5(unsigned long) = Mul : r2104_3, r2104_4 +# 2104| r2104_6(void *) = Call[operator new[]] : func:r2104_1, 0:r2104_5 +# 2104| m2104_7(unknown) = ^CallSideEffect : ~m2103_8 +# 2104| m2104_8(unknown) = Chi : total:m2103_8, partial:m2104_7 +# 2104| m2104_9(unknown) = ^InitializeDynamicAllocation : &:r2104_6 +# 2104| r2104_10(int *) = Convert : r2104_6 # 2105| v2105_1(void) = NoOp : # 2098| v2098_7(void) = ReturnVoid : -# 2098| v2098_8(void) = AliasedUse : ~m2104_9 +# 2098| v2098_8(void) = AliasedUse : ~m2104_8 # 2098| v2098_9(void) = ExitFunction : perf-regression.cpp: diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index 1247b2139f8..4c2a4d4a5a5 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -9898,82 +9898,76 @@ | ir.cpp:2095:12:2095:12 | StoreValue | r2095_3 | | ir.cpp:2098:6:2098:24 | ChiPartial | partial:m2098_3 | | ir.cpp:2098:6:2098:24 | ChiTotal | total:m2098_2 | -| ir.cpp:2098:6:2098:24 | SideEffect | ~m2104_9 | +| ir.cpp:2098:6:2098:24 | SideEffect | ~m2104_8 | | ir.cpp:2098:33:2098:33 | Address | &:r2098_5 | -| ir.cpp:2099:3:2099:12 | Address | &:r2099_7 | -| ir.cpp:2099:3:2099:12 | Arg(0) | 0:r2099_6 | +| ir.cpp:2099:3:2099:12 | Address | &:r2099_6 | +| ir.cpp:2099:3:2099:12 | Arg(0) | 0:r2099_5 | | ir.cpp:2099:3:2099:12 | CallTarget | func:r2099_1 | -| ir.cpp:2099:3:2099:12 | ChiPartial | partial:m2099_8 | +| ir.cpp:2099:3:2099:12 | ChiPartial | partial:m2099_7 | | ir.cpp:2099:3:2099:12 | ChiTotal | total:m2098_4 | -| ir.cpp:2099:3:2099:12 | Left | r2099_4 | -| ir.cpp:2099:3:2099:12 | Right | r2099_5 | +| ir.cpp:2099:3:2099:12 | Right | r2099_4 | | ir.cpp:2099:3:2099:12 | SideEffect | ~m2098_4 | -| ir.cpp:2099:3:2099:12 | Unary | r2099_7 | +| ir.cpp:2099:3:2099:12 | Unary | r2099_6 | | ir.cpp:2099:11:2099:11 | Address | &:r2099_2 | +| ir.cpp:2099:11:2099:11 | Left | r2099_3 | | ir.cpp:2099:11:2099:11 | Load | m2098_6 | -| ir.cpp:2099:11:2099:11 | Unary | r2099_3 | -| ir.cpp:2100:3:2100:18 | Address | &:r2100_8 | -| ir.cpp:2100:3:2100:18 | Arg(0) | 0:r2100_6 | +| ir.cpp:2100:3:2100:18 | Address | &:r2100_7 | +| ir.cpp:2100:3:2100:18 | Arg(0) | 0:r2100_5 | | ir.cpp:2100:3:2100:18 | CallTarget | func:r2100_1 | -| ir.cpp:2100:3:2100:18 | ChiPartial | partial:m2100_9 | -| ir.cpp:2100:3:2100:18 | ChiTotal | total:m2099_9 | -| ir.cpp:2100:3:2100:18 | Left | r2100_4 | -| ir.cpp:2100:3:2100:18 | Right | r2100_5 | -| ir.cpp:2100:3:2100:18 | SideEffect | ~m2099_9 | -| ir.cpp:2100:3:2100:18 | Unary | r2100_8 | -| ir.cpp:2100:7:2100:10 | Arg(1) | 1:r2100_7 | +| ir.cpp:2100:3:2100:18 | ChiPartial | partial:m2100_8 | +| ir.cpp:2100:3:2100:18 | ChiTotal | total:m2099_8 | +| ir.cpp:2100:3:2100:18 | Right | r2100_4 | +| ir.cpp:2100:3:2100:18 | SideEffect | ~m2099_8 | +| ir.cpp:2100:3:2100:18 | Unary | r2100_7 | +| ir.cpp:2100:7:2100:10 | Arg(1) | 1:r2100_6 | | ir.cpp:2100:17:2100:17 | Address | &:r2100_2 | +| ir.cpp:2100:17:2100:17 | Left | r2100_3 | | ir.cpp:2100:17:2100:17 | Load | m2098_6 | -| ir.cpp:2100:17:2100:17 | Unary | r2100_3 | -| ir.cpp:2101:3:2101:15 | Address | &:r2101_7 | -| ir.cpp:2101:3:2101:15 | Arg(0) | 0:r2101_6 | +| ir.cpp:2101:3:2101:15 | Address | &:r2101_6 | +| ir.cpp:2101:3:2101:15 | Arg(0) | 0:r2101_5 | | ir.cpp:2101:3:2101:15 | CallTarget | func:r2101_1 | -| ir.cpp:2101:3:2101:15 | ChiPartial | partial:m2101_8 | -| ir.cpp:2101:3:2101:15 | ChiTotal | total:m2100_10 | -| ir.cpp:2101:3:2101:15 | Left | r2101_4 | -| ir.cpp:2101:3:2101:15 | Right | r2101_5 | -| ir.cpp:2101:3:2101:15 | SideEffect | ~m2100_10 | -| ir.cpp:2101:3:2101:15 | Unary | r2101_7 | +| ir.cpp:2101:3:2101:15 | ChiPartial | partial:m2101_7 | +| ir.cpp:2101:3:2101:15 | ChiTotal | total:m2100_9 | +| ir.cpp:2101:3:2101:15 | Right | r2101_4 | +| ir.cpp:2101:3:2101:15 | SideEffect | ~m2100_9 | +| ir.cpp:2101:3:2101:15 | Unary | r2101_6 | | ir.cpp:2101:14:2101:14 | Address | &:r2101_2 | +| ir.cpp:2101:14:2101:14 | Left | r2101_3 | | ir.cpp:2101:14:2101:14 | Load | m2098_6 | -| ir.cpp:2101:14:2101:14 | Unary | r2101_3 | -| ir.cpp:2102:3:2102:20 | Address | &:r2102_8 | -| ir.cpp:2102:3:2102:20 | Arg(0) | 0:r2102_6 | +| ir.cpp:2102:3:2102:20 | Address | &:r2102_7 | +| ir.cpp:2102:3:2102:20 | Arg(0) | 0:r2102_5 | | ir.cpp:2102:3:2102:20 | CallTarget | func:r2102_1 | -| ir.cpp:2102:3:2102:20 | ChiPartial | partial:m2102_9 | -| ir.cpp:2102:3:2102:20 | ChiTotal | total:m2101_9 | -| ir.cpp:2102:3:2102:20 | Left | r2102_4 | -| ir.cpp:2102:3:2102:20 | Right | r2102_5 | -| ir.cpp:2102:3:2102:20 | SideEffect | ~m2101_9 | -| ir.cpp:2102:3:2102:20 | Unary | r2102_8 | +| ir.cpp:2102:3:2102:20 | ChiPartial | partial:m2102_8 | +| ir.cpp:2102:3:2102:20 | ChiTotal | total:m2101_8 | +| ir.cpp:2102:3:2102:20 | Right | r2102_4 | +| ir.cpp:2102:3:2102:20 | SideEffect | ~m2101_8 | +| ir.cpp:2102:3:2102:20 | Unary | r2102_7 | | ir.cpp:2102:19:2102:19 | Address | &:r2102_2 | +| ir.cpp:2102:19:2102:19 | Left | r2102_3 | | ir.cpp:2102:19:2102:19 | Load | m2098_6 | -| ir.cpp:2102:19:2102:19 | Unary | r2102_3 | -| ir.cpp:2102:21:2102:21 | Arg(1) | 1:r2102_7 | -| ir.cpp:2103:3:2103:36 | Address | &:r2103_7 | -| ir.cpp:2103:3:2103:36 | Arg(0) | 0:r2103_6 | +| ir.cpp:2102:21:2102:21 | Arg(1) | 1:r2102_6 | +| ir.cpp:2103:3:2103:36 | Address | &:r2103_6 | +| ir.cpp:2103:3:2103:36 | Arg(0) | 0:r2103_5 | | ir.cpp:2103:3:2103:36 | CallTarget | func:r2103_1 | -| ir.cpp:2103:3:2103:36 | ChiPartial | partial:m2103_8 | -| ir.cpp:2103:3:2103:36 | ChiTotal | total:m2102_10 | -| ir.cpp:2103:3:2103:36 | Left | r2103_4 | -| ir.cpp:2103:3:2103:36 | Right | r2103_5 | -| ir.cpp:2103:3:2103:36 | SideEffect | ~m2102_10 | -| ir.cpp:2103:3:2103:36 | Unary | r2103_7 | +| ir.cpp:2103:3:2103:36 | ChiPartial | partial:m2103_7 | +| ir.cpp:2103:3:2103:36 | ChiTotal | total:m2102_9 | +| ir.cpp:2103:3:2103:36 | Right | r2103_4 | +| ir.cpp:2103:3:2103:36 | SideEffect | ~m2102_9 | +| ir.cpp:2103:3:2103:36 | Unary | r2103_6 | | ir.cpp:2103:35:2103:35 | Address | &:r2103_2 | +| ir.cpp:2103:35:2103:35 | Left | r2103_3 | | ir.cpp:2103:35:2103:35 | Load | m2098_6 | -| ir.cpp:2103:35:2103:35 | Unary | r2103_3 | -| ir.cpp:2104:3:2104:24 | Address | &:r2104_7 | -| ir.cpp:2104:3:2104:24 | Arg(0) | 0:r2104_6 | +| ir.cpp:2104:3:2104:24 | Address | &:r2104_6 | +| ir.cpp:2104:3:2104:24 | Arg(0) | 0:r2104_5 | | ir.cpp:2104:3:2104:24 | CallTarget | func:r2104_1 | -| ir.cpp:2104:3:2104:24 | ChiPartial | partial:m2104_8 | -| ir.cpp:2104:3:2104:24 | ChiTotal | total:m2103_9 | -| ir.cpp:2104:3:2104:24 | Left | r2104_4 | -| ir.cpp:2104:3:2104:24 | Right | r2104_5 | -| ir.cpp:2104:3:2104:24 | SideEffect | ~m2103_9 | -| ir.cpp:2104:3:2104:24 | Unary | r2104_7 | +| ir.cpp:2104:3:2104:24 | ChiPartial | partial:m2104_7 | +| ir.cpp:2104:3:2104:24 | ChiTotal | total:m2103_8 | +| ir.cpp:2104:3:2104:24 | Right | r2104_4 | +| ir.cpp:2104:3:2104:24 | SideEffect | ~m2103_8 | +| ir.cpp:2104:3:2104:24 | Unary | r2104_6 | | ir.cpp:2104:11:2104:11 | Address | &:r2104_2 | +| ir.cpp:2104:11:2104:11 | Left | r2104_3 | | ir.cpp:2104:11:2104:11 | Load | m2098_6 | -| ir.cpp:2104:11:2104:11 | Unary | r2104_3 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_7 | diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index 50c4a07ac9f..cbf7c564214 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -11431,77 +11431,71 @@ ir.cpp: # 2098| void newArrayCorrectType(size_t) # 2098| Block 0 -# 2098| v2098_1(void) = EnterFunction : -# 2098| mu2098_2(unknown) = AliasedDefinition : -# 2098| mu2098_3(unknown) = InitializeNonLocal : -# 2098| r2098_4(glval) = VariableAddress[n] : -# 2098| mu2098_5(unsigned long) = InitializeParameter[n] : &:r2098_4 -# 2099| r2099_1(glval) = FunctionAddress[operator new[]] : -# 2099| r2099_2(glval) = VariableAddress[n] : -# 2099| r2099_3(unsigned long) = Load[n] : &:r2099_2, ~m? -# 2099| r2099_4(unsigned long) = Convert : r2099_3 -# 2099| r2099_5(unsigned long) = Constant[4] : -# 2099| r2099_6(unsigned long) = Mul : r2099_4, r2099_5 -# 2099| r2099_7(void *) = Call[operator new[]] : func:r2099_1, 0:r2099_6 -# 2099| mu2099_8(unknown) = ^CallSideEffect : ~m? -# 2099| mu2099_9(unknown) = ^InitializeDynamicAllocation : &:r2099_7 -# 2099| r2099_10(int *) = Convert : r2099_7 -# 2100| r2100_1(glval) = FunctionAddress[operator new[]] : -# 2100| r2100_2(glval) = VariableAddress[n] : -# 2100| r2100_3(unsigned long) = Load[n] : &:r2100_2, ~m? -# 2100| r2100_4(unsigned long) = Convert : r2100_3 -# 2100| r2100_5(unsigned long) = Constant[4] : -# 2100| r2100_6(unsigned long) = Mul : r2100_4, r2100_5 -# 2100| r2100_7(float) = Constant[1.0] : -# 2100| r2100_8(void *) = Call[operator new[]] : func:r2100_1, 0:r2100_6, 1:r2100_7 -# 2100| mu2100_9(unknown) = ^CallSideEffect : ~m? -# 2100| mu2100_10(unknown) = ^InitializeDynamicAllocation : &:r2100_8 -# 2100| r2100_11(int *) = Convert : r2100_8 -# 2101| r2101_1(glval) = FunctionAddress[operator new[]] : -# 2101| r2101_2(glval) = VariableAddress[n] : -# 2101| r2101_3(unsigned long) = Load[n] : &:r2101_2, ~m? -# 2101| r2101_4(unsigned long) = Convert : r2101_3 -# 2101| r2101_5(unsigned long) = Constant[8] : -# 2101| r2101_6(unsigned long) = Mul : r2101_4, r2101_5 -# 2101| r2101_7(void *) = Call[operator new[]] : func:r2101_1, 0:r2101_6 -# 2101| mu2101_8(unknown) = ^CallSideEffect : ~m? -# 2101| mu2101_9(unknown) = ^InitializeDynamicAllocation : &:r2101_7 -# 2101| r2101_10(String *) = Convert : r2101_7 -# 2102| r2102_1(glval) = FunctionAddress[operator new[]] : -# 2102| r2102_2(glval) = VariableAddress[n] : -# 2102| r2102_3(unsigned long) = Load[n] : &:r2102_2, ~m? -# 2102| r2102_4(unsigned long) = Convert : r2102_3 -# 2102| r2102_5(unsigned long) = Constant[256] : -# 2102| r2102_6(unsigned long) = Mul : r2102_4, r2102_5 -# 2102| r2102_7(align_val_t) = Constant[128] : -# 2102| r2102_8(void *) = Call[operator new[]] : func:r2102_1, 0:r2102_6, 1:r2102_7 -# 2102| mu2102_9(unknown) = ^CallSideEffect : ~m? -# 2102| mu2102_10(unknown) = ^InitializeDynamicAllocation : &:r2102_8 -# 2102| r2102_11(Overaligned *) = Convert : r2102_8 -# 2103| r2103_1(glval) = FunctionAddress[operator new[]] : -# 2103| r2103_2(glval) = VariableAddress[n] : -# 2103| r2103_3(unsigned long) = Load[n] : &:r2103_2, ~m? -# 2103| r2103_4(unsigned long) = Convert : r2103_3 -# 2103| r2103_5(unsigned long) = Constant[1] : -# 2103| r2103_6(unsigned long) = Mul : r2103_4, r2103_5 -# 2103| r2103_7(void *) = Call[operator new[]] : func:r2103_1, 0:r2103_6 -# 2103| mu2103_8(unknown) = ^CallSideEffect : ~m? -# 2103| mu2103_9(unknown) = ^InitializeDynamicAllocation : &:r2103_7 -# 2103| r2103_10(DefaultCtorWithDefaultParam *) = Convert : r2103_7 -# 2104| r2104_1(glval) = FunctionAddress[operator new[]] : -# 2104| r2104_2(glval) = VariableAddress[n] : -# 2104| r2104_3(unsigned long) = Load[n] : &:r2104_2, ~m? -# 2104| r2104_4(unsigned long) = Convert : r2104_3 -# 2104| r2104_5(unsigned long) = Constant[4] : -# 2104| r2104_6(unsigned long) = Mul : r2104_4, r2104_5 -# 2104| r2104_7(void *) = Call[operator new[]] : func:r2104_1, 0:r2104_6 -# 2104| mu2104_8(unknown) = ^CallSideEffect : ~m? -# 2104| mu2104_9(unknown) = ^InitializeDynamicAllocation : &:r2104_7 -# 2104| r2104_10(int *) = Convert : r2104_7 -# 2105| v2105_1(void) = NoOp : -# 2098| v2098_6(void) = ReturnVoid : -# 2098| v2098_7(void) = AliasedUse : ~m? -# 2098| v2098_8(void) = ExitFunction : +# 2098| v2098_1(void) = EnterFunction : +# 2098| mu2098_2(unknown) = AliasedDefinition : +# 2098| mu2098_3(unknown) = InitializeNonLocal : +# 2098| r2098_4(glval) = VariableAddress[n] : +# 2098| mu2098_5(unsigned long) = InitializeParameter[n] : &:r2098_4 +# 2099| r2099_1(glval) = FunctionAddress[operator new[]] : +# 2099| r2099_2(glval) = VariableAddress[n] : +# 2099| r2099_3(unsigned long) = Load[n] : &:r2099_2, ~m? +# 2099| r2099_4(unsigned long) = Constant[4] : +# 2099| r2099_5(unsigned long) = Mul : r2099_3, r2099_4 +# 2099| r2099_6(void *) = Call[operator new[]] : func:r2099_1, 0:r2099_5 +# 2099| mu2099_7(unknown) = ^CallSideEffect : ~m? +# 2099| mu2099_8(unknown) = ^InitializeDynamicAllocation : &:r2099_6 +# 2099| r2099_9(int *) = Convert : r2099_6 +# 2100| r2100_1(glval) = FunctionAddress[operator new[]] : +# 2100| r2100_2(glval) = VariableAddress[n] : +# 2100| r2100_3(unsigned long) = Load[n] : &:r2100_2, ~m? +# 2100| r2100_4(unsigned long) = Constant[4] : +# 2100| r2100_5(unsigned long) = Mul : r2100_3, r2100_4 +# 2100| r2100_6(float) = Constant[1.0] : +# 2100| r2100_7(void *) = Call[operator new[]] : func:r2100_1, 0:r2100_5, 1:r2100_6 +# 2100| mu2100_8(unknown) = ^CallSideEffect : ~m? +# 2100| mu2100_9(unknown) = ^InitializeDynamicAllocation : &:r2100_7 +# 2100| r2100_10(int *) = Convert : r2100_7 +# 2101| r2101_1(glval) = FunctionAddress[operator new[]] : +# 2101| r2101_2(glval) = VariableAddress[n] : +# 2101| r2101_3(unsigned long) = Load[n] : &:r2101_2, ~m? +# 2101| r2101_4(unsigned long) = Constant[8] : +# 2101| r2101_5(unsigned long) = Mul : r2101_3, r2101_4 +# 2101| r2101_6(void *) = Call[operator new[]] : func:r2101_1, 0:r2101_5 +# 2101| mu2101_7(unknown) = ^CallSideEffect : ~m? +# 2101| mu2101_8(unknown) = ^InitializeDynamicAllocation : &:r2101_6 +# 2101| r2101_9(String *) = Convert : r2101_6 +# 2102| r2102_1(glval) = FunctionAddress[operator new[]] : +# 2102| r2102_2(glval) = VariableAddress[n] : +# 2102| r2102_3(unsigned long) = Load[n] : &:r2102_2, ~m? +# 2102| r2102_4(unsigned long) = Constant[256] : +# 2102| r2102_5(unsigned long) = Mul : r2102_3, r2102_4 +# 2102| r2102_6(align_val_t) = Constant[128] : +# 2102| r2102_7(void *) = Call[operator new[]] : func:r2102_1, 0:r2102_5, 1:r2102_6 +# 2102| mu2102_8(unknown) = ^CallSideEffect : ~m? +# 2102| mu2102_9(unknown) = ^InitializeDynamicAllocation : &:r2102_7 +# 2102| r2102_10(Overaligned *) = Convert : r2102_7 +# 2103| r2103_1(glval) = FunctionAddress[operator new[]] : +# 2103| r2103_2(glval) = VariableAddress[n] : +# 2103| r2103_3(unsigned long) = Load[n] : &:r2103_2, ~m? +# 2103| r2103_4(unsigned long) = Constant[1] : +# 2103| r2103_5(unsigned long) = Mul : r2103_3, r2103_4 +# 2103| r2103_6(void *) = Call[operator new[]] : func:r2103_1, 0:r2103_5 +# 2103| mu2103_7(unknown) = ^CallSideEffect : ~m? +# 2103| mu2103_8(unknown) = ^InitializeDynamicAllocation : &:r2103_6 +# 2103| r2103_9(DefaultCtorWithDefaultParam *) = Convert : r2103_6 +# 2104| r2104_1(glval) = FunctionAddress[operator new[]] : +# 2104| r2104_2(glval) = VariableAddress[n] : +# 2104| r2104_3(unsigned long) = Load[n] : &:r2104_2, ~m? +# 2104| r2104_4(unsigned long) = Constant[4] : +# 2104| r2104_5(unsigned long) = Mul : r2104_3, r2104_4 +# 2104| r2104_6(void *) = Call[operator new[]] : func:r2104_1, 0:r2104_5 +# 2104| mu2104_7(unknown) = ^CallSideEffect : ~m? +# 2104| mu2104_8(unknown) = ^InitializeDynamicAllocation : &:r2104_6 +# 2104| r2104_9(int *) = Convert : r2104_6 +# 2105| v2105_1(void) = NoOp : +# 2098| v2098_6(void) = ReturnVoid : +# 2098| v2098_7(void) = AliasedUse : ~m? +# 2098| v2098_8(void) = ExitFunction : perf-regression.cpp: # 6| void Big::Big() From fa814a5276cadcf10bb14c998dc1c357218ce2df Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Mon, 18 Sep 2023 12:47:50 +0200 Subject: [PATCH 461/788] Add test cases for implicit using parsing --- .../Semmle.Extraction.Tests/FileContent.cs | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs b/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs index 00a7238103e..e6915900e2b 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs @@ -90,5 +90,60 @@ namespace Semmle.Extraction.Tests Assert.Contains("Microsoft.CodeAnalysis.NetAnalyzers".ToLowerInvariant(), allPackages); Assert.Contains("StyleCop.Analyzers".ToLowerInvariant(), allPackages); } + + private static void ImplicitUsingsTest(string line, bool expected) + { + // Setup + var lines = new List() + { + line + }; + var fileContent = new TestFileContent(lines); + + // Execute + var useImplicitUsings = fileContent.UseImplicitUsings; + + // Verify + Assert.Equal(expected, useImplicitUsings); + } + + [Fact] + public void TestFileContent_ImplicitUsings0() + { + ImplicitUsingsTest("false", false); + } + + [Fact] + public void TestFileContent_ImplicitUsings1() + { + ImplicitUsingsTest("true", true); + } + + [Fact] + public void TestFileContent_ImplicitUsings2() + { + ImplicitUsingsTest("enable", true); + } + + [Fact] + public void TestFileContent_ImplicitUsingsAdditional() + { + // Setup + var lines = new List() + { + "", + "", + "", + }; + var fileContent = new TestFileContent(lines); + + // Execute + var customImplicitUsings = fileContent.CustomImplicitUsings; + + // Verify + Assert.Equal(2, customImplicitUsings.Count); + Assert.Contains("Ns0.Ns1", customImplicitUsings); + Assert.Contains("Ns2", customImplicitUsings); + } } } From b13d02643469b6d965c2a669c57fc64978eb4aa5 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 18 Sep 2023 13:15:26 +0200 Subject: [PATCH 462/788] Dataflow: Review fixes. --- .../dataflow/internal/DataFlowPrivate.qll | 6 ++- .../codeql/dataflow/internal/DataFlowImpl.qll | 45 +++++++++---------- .../dataflow/internal/DataFlowImplCommon.qll | 30 ++++++++++--- 3 files changed, 49 insertions(+), 32 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index c1c851d18fd..b77bb173135 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -546,7 +546,11 @@ module LocalFlow { ) or hasNodePath(any(LocalExprStepConfiguration x), node1, node2) and - (node2 instanceof SsaDefinitionExtNode or node2.asExpr() instanceof Cast) + ( + node2 instanceof SsaDefinitionExtNode or + node2.asExpr() instanceof Cast or + node2.asExpr() instanceof AssignExpr + ) or exists(SsaImpl::Definition def | def = getSsaDefinitionExt(node1) and diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 7d9ef3e2404..3ea0df26059 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1316,7 +1316,7 @@ module MakeImpl { ) or // flow into a callable - fwdFlowIn(_, node, state, _, cc, _, _, _, t, ap, apa) and + fwdFlowIn(_, _, node, state, _, cc, _, _, _, t, ap, apa, _) and if PrevStage::parameterMayFlowThrough(node, apa) then ( summaryCtx = TParamNodeSome(node.asNode()) and @@ -1476,15 +1476,14 @@ module MakeImpl { pragma[nomagic] private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, CcCall innercc, - ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa + DataFlowCall call, DataFlowCallable inner, ParamNodeEx p, FlowState state, Cc outercc, + CcCall innercc, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, + ApApprox apa, boolean cc ) { - exists(DataFlowCallable inner, boolean cc | - fwdFlowInCand(call, inner, p, state, outercc, summaryCtx, argT, argAp, t, ap, apa) and - FwdTypeFlow::typeFlowValidEdgeIn(call, inner, cc) and - innercc = getCallContextCall(call, inner) and - if outercc instanceof CcCall then cc = true else cc = false - ) + fwdFlowInCand(call, inner, p, state, outercc, summaryCtx, argT, argAp, t, ap, apa) and + FwdTypeFlow::typeFlowValidEdgeIn(call, inner, cc) and + innercc = getCallContextCall(call, inner) and + if outercc instanceof CcCall then cc = true else cc = false } bindingset[ctx, result] @@ -1535,6 +1534,7 @@ module MakeImpl { ) } + pragma[nomagic] private predicate fwdFlowOut( DataFlowCall call, DataFlowCallable inner, NodeEx out, FlowState state, CcNoCall outercc, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa @@ -1557,11 +1557,9 @@ module MakeImpl { pragma[nomagic] predicate dataFlowTakenCallEdgeIn(DataFlowCall call, DataFlowCallable c, boolean cc) { - exists(ParamNodeEx p, Cc outercc, FlowState state, Cc innercc, Typ t, Ap ap | - fwdFlowIn(call, p, state, outercc, innercc, _, _, _, t, ap, _) and - fwdFlow1(p, state, innercc, _, _, _, t, _, ap, _) and - c = p.getEnclosingCallable() and - if outercc instanceof CcCall then cc = true else cc = false + exists(ParamNodeEx p, FlowState state, Cc innercc, Typ t, Ap ap | + fwdFlowIn(call, c, p, state, _, innercc, _, _, _, t, ap, _, cc) and + fwdFlow1(p, state, innercc, _, _, _, t, _, ap, _) ) } @@ -1647,8 +1645,8 @@ module MakeImpl { ApOption argAp, ParamNodeEx p, Typ t, Ap ap ) { exists(ApApprox apa | - fwdFlowIn(call, pragma[only_bind_into](p), _, cc, innerCc, summaryCtx, argT, argAp, t, - ap, pragma[only_bind_into](apa)) and + fwdFlowIn(call, _, pragma[only_bind_into](p), _, cc, innerCc, summaryCtx, argT, argAp, + t, ap, pragma[only_bind_into](apa), _) and PrevStage::parameterMayFlowThrough(p, apa) and PrevStage::callMayFlowThroughRev(call) ) @@ -1802,7 +1800,7 @@ module MakeImpl { or // flow out of a callable exists(ReturnPosition pos | - revFlowOut(_, node, pos, state, _, _, ap) and + revFlowOut(_, node, pos, state, _, _, _, ap) and if returnFlowsThrough(node, pos, state, _, _, _, _, ap) then ( returnCtx = TReturnCtxMaybeFlowThrough(pos) and @@ -1867,10 +1865,9 @@ module MakeImpl { pragma[nomagic] predicate dataFlowTakenCallEdgeIn(DataFlowCall call, DataFlowCallable c, boolean cc) { - exists(RetNodeEx ret, ReturnCtx returnCtx | - revFlowOut(call, ret, _, _, returnCtx, _, _) and - c = ret.getEnclosingCallable() and - if returnCtx instanceof TReturnCtxNone then cc = false else cc = true + exists(RetNodeEx ret | + revFlowOut(call, ret, _, _, _, cc, _, _) and + c = ret.getEnclosingCallable() ) } @@ -1925,9 +1922,9 @@ module MakeImpl { pragma[nomagic] private predicate revFlowOut( DataFlowCall call, RetNodeEx ret, ReturnPosition pos, FlowState state, - ReturnCtx returnCtx, ApOption returnAp, Ap ap + ReturnCtx returnCtx, boolean cc, ApOption returnAp, Ap ap ) { - exists(NodeEx out, boolean cc | + exists(NodeEx out | revFlow(out, state, returnCtx, returnAp, ap) and flowOutOfCallApValid(call, ret, pos, out, ap, cc) and if returnCtx instanceof TReturnCtxNone then cc = false else cc = true @@ -1963,7 +1960,7 @@ module MakeImpl { DataFlowCall call, ReturnCtx returnCtx, ApOption returnAp, ReturnPosition pos, Ap ap ) { exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, pos, state, returnCtx, returnAp, ap) and + revFlowOut(call, ret, pos, state, returnCtx, _, returnAp, ap) and returnFlowsThrough(ret, pos, state, ccc, _, _, _, ap) and matchesCall(ccc, call) ) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll index 14508eb89ee..62cfc3051a4 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll @@ -1002,7 +1002,7 @@ module MakeImplCommon { * flow between parameter and argument nodes in the cases where it is possible * for a type to first be weakened and then strengthened again. When the * stronger types at the end-points of such a type flow path are incompatible, - * the call relevant call edges can be excluded as impossible. + * the relevant call edges can be excluded as impossible. * * The predicates `relevantCallEdgeIn` and `relevantCallEdgeOut` give the * graph to be explored prior to the recursion, and the other three predicates @@ -1021,7 +1021,7 @@ module MakeImplCommon { } /** - * Holds if a sequence calls may propagates the value of `p` to some + * Holds if a sequence of calls may propagate the value of `p` to some * argument-to-parameter call edge that strengthens the static type. */ pragma[nomagic] @@ -1033,7 +1033,7 @@ module MakeImplCommon { } /** - * Holds if a sequence calls may propagates the value of `arg` to some + * Holds if a sequence of calls may propagate the value of `arg` to some * argument-to-parameter call edge that strengthens the static type. */ pragma[nomagic] @@ -1048,6 +1048,9 @@ module MakeImplCommon { ) or exists(ParamNode p, DataFlowType at, DataFlowType pt | + // A call edge may implicitly strengthen a type by ensuring that a + // specific argument node was reached if the type of that argument was + // strengthened via a cast. at = getNodeType(arg) and pt = getNodeType(p) and paramMustFlow(p, arg) and @@ -1072,6 +1075,10 @@ module MakeImplCommon { DataFlowCall call1, DataFlowCallable c1, ArgNode argOut, DataFlowCall call2, DataFlowCallable c2, ArgNode argIn | + // Data flow may exit `call1` and enter `call2`. If a stronger type is + // known for `argOut`, `argIn` may reach a strengthening, and both are + // determined by the same parameter `p` so we know they're equal, then + // we should track those nodes. trackedParamTypeCand(p) and callEdge(call1, c1, argOut, _) and Input::relevantCallEdgeOut(call1, c1) and @@ -1152,6 +1159,15 @@ module MakeImplCommon { paramMustFlow(_, arg) } + /** + * Gets the strongest of the two types `t1` and `t2`. If neither type is + * stronger then compatibility is checked and `t1` is returned. + */ + bindingset[t1, t2] + DataFlowType getStrongestType(DataFlowType t1, DataFlowType t2) { + if typeStrongerThan(t2, t1) then result = t2 else (compatibleTypes(t1, t2) and result = t1) + } + /** * Holds if `t` is a possible type for an argument reaching the tracked * parameter `p` through an in-going edge in the current data flow stage. @@ -1179,7 +1195,7 @@ module MakeImplCommon { cc = true and typeFlowParamTypeCand(p, t1) and nodeDataFlowType(p, t2) and - if typeStrongerThan(t2, t1) then t = t2 else (compatibleTypes(t1, t2) and t = t1) + t = getStrongestType(t1, t2) ) or exists(ArgNode arg, DataFlowType t1, DataFlowType t2 | @@ -1187,7 +1203,7 @@ module MakeImplCommon { typeFlowArgTypeFromReturn(arg, t1) and paramMustFlow(p, arg) and nodeDataFlowType(p, t2) and - if typeStrongerThan(t2, t1) then t = t2 else (compatibleTypes(t1, t2) and t = t1) + t = getStrongestType(t1, t2) ) or exists(DataFlowCall call | @@ -1208,7 +1224,7 @@ module MakeImplCommon { dataFlowTakenCallEdgeOut(_, _, arg, p) and (if trackedParamType(p) then typeFlowParamType(p, t1, false) else nodeDataFlowType(p, t1)) and nodeDataFlowType(arg, t2) and - if typeStrongerThan(t2, t1) then t = t2 else (compatibleTypes(t1, t2) and t = t1) + t = getStrongestType(t1, t2) ) } @@ -1224,7 +1240,7 @@ module MakeImplCommon { paramMustFlow(p, arg) and typeFlowParamType(p, t1, cc) and nodeDataFlowType(arg, t2) and - if typeStrongerThan(t2, t1) then t = t2 else (compatibleTypes(t1, t2) and t = t1) + t = getStrongestType(t1, t2) ) or cc = [true, false] and From 0cc74a2691d6d19186dcc8ef3f105b71ebd6b179 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 18 Sep 2023 13:33:49 +0200 Subject: [PATCH 463/788] C#: Extract TestLibrary to separate module --- csharp/ql/src/Telemetry/ExternalApi.qll | 15 +-------------- csharp/ql/src/Telemetry/TestLibrary.qll | 17 +++++++++++++++++ .../src/utils/modeleditor/AutomodelVsCode.qll | 15 +-------------- 3 files changed, 19 insertions(+), 28 deletions(-) create mode 100644 csharp/ql/src/Telemetry/TestLibrary.qll diff --git a/csharp/ql/src/Telemetry/ExternalApi.qll b/csharp/ql/src/Telemetry/ExternalApi.qll index 7be4f104837..36769524379 100644 --- a/csharp/ql/src/Telemetry/ExternalApi.qll +++ b/csharp/ql/src/Telemetry/ExternalApi.qll @@ -12,20 +12,7 @@ private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl as FlowSumma private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate private import semmle.code.csharp.security.dataflow.flowsources.Remote -pragma[nomagic] -private predicate isTestNamespace(Namespace ns) { - ns.getFullName() - .matches([ - "NUnit.Framework%", "Xunit%", "Microsoft.VisualStudio.TestTools.UnitTesting%", "Moq%" - ]) -} - -/** - * A test library. - */ -class TestLibrary extends RefType { - TestLibrary() { isTestNamespace(this.getNamespace()) } -} +private import TestLibrary /** Holds if the given callable is not worth supporting. */ private predicate isUninteresting(DotNet::Callable c) { diff --git a/csharp/ql/src/Telemetry/TestLibrary.qll b/csharp/ql/src/Telemetry/TestLibrary.qll new file mode 100644 index 00000000000..deca6d79bec --- /dev/null +++ b/csharp/ql/src/Telemetry/TestLibrary.qll @@ -0,0 +1,17 @@ +private import csharp +private import dotnet + +pragma[nomagic] +private predicate isTestNamespace(Namespace ns) { + ns.getFullName() + .matches([ + "NUnit.Framework%", "Xunit%", "Microsoft.VisualStudio.TestTools.UnitTesting%", "Moq%" + ]) +} + +/** + * A test library. + */ +class TestLibrary extends RefType { + TestLibrary() { isTestNamespace(this.getNamespace()) } +} diff --git a/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll b/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll index 09c33fafa5e..1516c466473 100644 --- a/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll +++ b/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll @@ -13,20 +13,7 @@ private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate private import semmle.code.csharp.frameworks.Test private import semmle.code.csharp.security.dataflow.flowsources.Remote -pragma[nomagic] -private predicate isTestNamespace(Namespace ns) { - ns.getFullName() - .matches([ - "NUnit.Framework%", "Xunit%", "Microsoft.VisualStudio.TestTools.UnitTesting%", "Moq%" - ]) -} - -/** - * A test library. - */ -class TestLibrary extends RefType { - TestLibrary() { isTestNamespace(this.getNamespace()) } -} +private import Telemetry.TestLibrary /** Holds if the given callable is not worth supporting. */ private predicate isUninteresting(DotNet::Declaration c) { From e524e358f0359e55a1af87289ec9c24830cd20e5 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 18 Sep 2023 13:39:44 +0200 Subject: [PATCH 464/788] C#: Check accessor declaration for publicness --- csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll | 2 +- .../utils/modeleditor/FetchApplicationModeMethods.expected | 2 +- .../utils/modeleditor/FetchFrameworkModeMethods.expected | 6 +++++- csharp/ql/test/utils/modeleditor/PublicClass.cs | 4 +++- csharp/ql/test/utils/modeleditor/PublicInterface.cs | 2 ++ 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll b/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll index 1516c466473..10227723d32 100644 --- a/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll +++ b/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll @@ -27,7 +27,7 @@ private predicate isUninteresting(DotNet::Declaration c) { */ class CallableMethod extends DotNet::Declaration { CallableMethod() { - this.(Modifiable).isEffectivelyPublic() and + [this.(Modifiable), this.(Accessor).getDeclaration()].isEffectivelyPublic() and not isUninteresting(this) } diff --git a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected index 2423ed13887..827a0335cae 100644 --- a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected +++ b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected @@ -5,4 +5,4 @@ | PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | | PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | supported | System.Console | 7.0.0.0 | source | type | source | classification | | PublicClass.cs:24:9:24:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicInterface.cs:11:9:11:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected index f1e64507d98..2d8d2b1cc5c 100644 --- a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected +++ b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected @@ -1,5 +1,9 @@ | PublicClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicClass#stuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | | PublicClass.cs:12:24:12:34 | staticStuff | GitHub.CodeQL.PublicClass#staticStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | | PublicClass.cs:17:20:17:33 | nonPublicStuff | GitHub.CodeQL.PublicClass#nonPublicStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | +| PublicClass.cs:27:45:27:47 | get_PublicProperty | GitHub.CodeQL.PublicClass#get_PublicProperty() | false | supported | PublicClass.cs | library | | type | unknown | classification | +| PublicClass.cs:27:50:27:52 | set_PublicProperty | GitHub.CodeQL.PublicClass#set_PublicProperty(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | | PublicInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicInterface#stuff(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | -| PublicInterface.cs:9:17:9:27 | staticStuff | GitHub.CodeQL.PublicInterface#staticStuff(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | +| PublicInterface.cs:9:29:9:31 | get_PublicProperty | GitHub.CodeQL.PublicInterface#get_PublicProperty() | false | supported | PublicInterface.cs | library | | type | unknown | classification | +| PublicInterface.cs:9:34:9:36 | set_PublicProperty | GitHub.CodeQL.PublicInterface#set_PublicProperty(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | +| PublicInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicInterface#staticStuff(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | diff --git a/csharp/ql/test/utils/modeleditor/PublicClass.cs b/csharp/ql/test/utils/modeleditor/PublicClass.cs index 06090e228a5..dd5383a627d 100644 --- a/csharp/ql/test/utils/modeleditor/PublicClass.cs +++ b/csharp/ql/test/utils/modeleditor/PublicClass.cs @@ -2,7 +2,7 @@ using System; namespace GitHub.CodeQL; -public class PublicClass +public class PublicClass : PublicInterface { public void stuff(String arg) { @@ -23,4 +23,6 @@ public class PublicClass { Console.WriteLine(arg); } + + string PublicInterface.PublicProperty { get; set; } } diff --git a/csharp/ql/test/utils/modeleditor/PublicInterface.cs b/csharp/ql/test/utils/modeleditor/PublicInterface.cs index d3248702f6c..e6d81703769 100644 --- a/csharp/ql/test/utils/modeleditor/PublicInterface.cs +++ b/csharp/ql/test/utils/modeleditor/PublicInterface.cs @@ -6,6 +6,8 @@ public interface PublicInterface { void stuff(String arg); + string PublicProperty { get; set; } + static void staticStuff(String arg) { Console.WriteLine(arg); From ff2cef3d6bd4e883498bcd1c0d18640aa510733a Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 18 Sep 2023 13:44:32 +0200 Subject: [PATCH 465/788] C#: Switch from Declaration to Callable --- csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll b/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll index 10227723d32..04b3365d36d 100644 --- a/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll +++ b/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll @@ -16,7 +16,7 @@ private import semmle.code.csharp.security.dataflow.flowsources.Remote private import Telemetry.TestLibrary /** Holds if the given callable is not worth supporting. */ -private predicate isUninteresting(DotNet::Declaration c) { +private predicate isUninteresting(DotNet::Callable c) { c.getDeclaringType() instanceof TestLibrary or c.(Constructor).isParameterless() or c.getDeclaringType() instanceof AnonymousClass @@ -25,7 +25,7 @@ private predicate isUninteresting(DotNet::Declaration c) { /** * An callable method from either the C# Standard Library, a 3rd party library, or from the source. */ -class CallableMethod extends DotNet::Declaration { +class CallableMethod extends DotNet::Callable { CallableMethod() { [this.(Modifiable), this.(Accessor).getDeclaration()].isEffectivelyPublic() and not isUninteresting(this) From 8472b84cad8e6f534711bddbb082d6324c75244e Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 18 Sep 2023 13:49:16 +0200 Subject: [PATCH 466/788] C#: Remove unnecessary isEffectivelyPublic predicate --- csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql b/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql index 434684b7b87..d57f1f5e0ca 100644 --- a/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql +++ b/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql @@ -13,8 +13,7 @@ private import AutomodelVsCode class ExternalApi extends CallableMethod { ExternalApi() { this.isUnboundDeclaration() and - this.fromLibrary() and - this.(Modifiable).isEffectivelyPublic() + this.fromLibrary() } } From ad1743ecde84bf42e37e85290fc099a313716415 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Mon, 18 Sep 2023 13:40:41 +0200 Subject: [PATCH 467/788] Python: Modernize modeling of `BaseHTTPRequestHandler` --- .../lib/semmle/python/frameworks/Stdlib.qll | 146 +++++++++++++----- 1 file changed, 106 insertions(+), 40 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index c0714c618a7..ec79a6dfddf 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -1815,51 +1815,95 @@ private module StdlibPrivate { // --------------------------------------------------------------------------- // BaseHTTPServer (Python 2 only) // --------------------------------------------------------------------------- - /** Gets a reference to the `BaseHttpServer` module. */ - API::Node baseHttpServer() { result = API::moduleImport("BaseHTTPServer") } + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Gets a reference to the `BaseHttpServer` module. + */ + deprecated API::Node baseHttpServer() { result = API::moduleImport("BaseHTTPServer") } - /** Provides models for the `BaseHttpServer` module. */ - module BaseHttpServer { + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Provides models for the `BaseHttpServer` module. + */ + deprecated module BaseHttpServer { /** + * DEPRECATED: Use API-graphs directly instead. + * * Provides models for the `BaseHTTPServer.BaseHTTPRequestHandler` class (Python 2 only). */ - module BaseHttpRequestHandler { - /** Gets a reference to the `BaseHttpServer.BaseHttpRequestHandler` class. */ - API::Node classRef() { result = baseHttpServer().getMember("BaseHTTPRequestHandler") } + deprecated module BaseHttpRequestHandler { + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Gets a reference to the `BaseHttpServer.BaseHttpRequestHandler` class. + */ + deprecated API::Node classRef() { + result = baseHttpServer().getMember("BaseHTTPRequestHandler") + } } } // --------------------------------------------------------------------------- // SimpleHTTPServer (Python 2 only) // --------------------------------------------------------------------------- - /** Gets a reference to the `SimpleHttpServer` module. */ - API::Node simpleHttpServer() { result = API::moduleImport("SimpleHTTPServer") } + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Gets a reference to the `SimpleHttpServer` module. + */ + deprecated API::Node simpleHttpServer() { result = API::moduleImport("SimpleHTTPServer") } - /** Provides models for the `SimpleHttpServer` module. */ - module SimpleHttpServer { + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Provides models for the `SimpleHttpServer` module. + */ + deprecated module SimpleHttpServer { /** + * DEPRECATED: Use API-graphs directly instead. + * * Provides models for the `SimpleHTTPServer.SimpleHTTPRequestHandler` class (Python 2 only). */ - module SimpleHttpRequestHandler { - /** Gets a reference to the `SimpleHttpServer.SimpleHttpRequestHandler` class. */ - API::Node classRef() { result = simpleHttpServer().getMember("SimpleHTTPRequestHandler") } + deprecated module SimpleHttpRequestHandler { + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Gets a reference to the `SimpleHttpServer.SimpleHttpRequestHandler` class. + */ + deprecated API::Node classRef() { + result = simpleHttpServer().getMember("SimpleHTTPRequestHandler") + } } } // --------------------------------------------------------------------------- // CGIHTTPServer (Python 2 only) // --------------------------------------------------------------------------- - /** Gets a reference to the `CGIHTTPServer` module. */ - API::Node cgiHttpServer() { result = API::moduleImport("CGIHTTPServer") } + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Gets a reference to the `CGIHTTPServer` module. + */ + deprecated API::Node cgiHttpServer() { result = API::moduleImport("CGIHTTPServer") } /** Provides models for the `CGIHTTPServer` module. */ - module CgiHttpServer { + deprecated module CgiHttpServer { /** + * DEPRECATED: Use API-graphs directly instead. + * * Provides models for the `CGIHTTPServer.CGIHTTPRequestHandler` class (Python 2 only). */ - module CgiHttpRequestHandler { - /** Gets a reference to the `CGIHTTPServer.CgiHttpRequestHandler` class. */ - API::Node classRef() { result = cgiHttpServer().getMember("CGIHTTPRequestHandler") } + deprecated module CgiHttpRequestHandler { + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Gets a reference to the `CGIHTTPServer.CgiHttpRequestHandler` class. + */ + deprecated API::Node classRef() { + result = cgiHttpServer().getMember("CGIHTTPRequestHandler") + } } /** DEPRECATED: Alias for CgiHttpRequestHandler */ @@ -1872,47 +1916,69 @@ private module StdlibPrivate { // --------------------------------------------------------------------------- // http (Python 3 only) // --------------------------------------------------------------------------- - /** Gets a reference to the `http` module. */ - API::Node http() { result = API::moduleImport("http") } + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Gets a reference to the `http` module. + */ + deprecated API::Node http() { result = API::moduleImport("http") } /** Provides models for the `http` module. */ - module StdlibHttp { + deprecated module StdlibHttp { // ------------------------------------------------------------------------- // http.server // ------------------------------------------------------------------------- - /** Gets a reference to the `http.server` module. */ - API::Node server() { result = http().getMember("server") } + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Gets a reference to the `http.server` module. + */ + deprecated API::Node server() { result = http().getMember("server") } - /** Provides models for the `http.server` module */ - module Server { + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Provides models for the `http.server` module + */ + deprecated module Server { /** + * DEPRECATED: Use API-graphs directly instead. + * * Provides models for the `http.server.BaseHTTPRequestHandler` class (Python 3 only). * * See https://docs.python.org/3.9/library/http.server.html#http.server.BaseHTTPRequestHandler. */ - module BaseHttpRequestHandler { + deprecated module BaseHttpRequestHandler { /** Gets a reference to the `http.server.BaseHttpRequestHandler` class. */ - API::Node classRef() { result = server().getMember("BaseHTTPRequestHandler") } + deprecated API::Node classRef() { result = server().getMember("BaseHTTPRequestHandler") } } /** + * DEPRECATED: Use API-graphs directly instead. + * * Provides models for the `http.server.SimpleHTTPRequestHandler` class (Python 3 only). * * See https://docs.python.org/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler. */ - module SimpleHttpRequestHandler { + deprecated module SimpleHttpRequestHandler { /** Gets a reference to the `http.server.SimpleHttpRequestHandler` class. */ - API::Node classRef() { result = server().getMember("SimpleHTTPRequestHandler") } + deprecated API::Node classRef() { result = server().getMember("SimpleHTTPRequestHandler") } } /** + * DEPRECATED: Use API-graphs directly instead. + * * Provides models for the `http.server.CGIHTTPRequestHandler` class (Python 3 only). * * See https://docs.python.org/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler. */ - module CgiHttpRequestHandler { - /** Gets a reference to the `http.server.CGIHTTPRequestHandler` class. */ - API::Node classRef() { result = server().getMember("CGIHTTPRequestHandler") } + deprecated module CgiHttpRequestHandler { + /** + * DEPRECATED: Use API-graphs directly instead. + * + * Gets a reference to the `http.server.CGIHTTPRequestHandler` class. + */ + deprecated API::Node classRef() { result = server().getMember("CGIHTTPRequestHandler") } } /** DEPRECATED: Alias for CgiHttpRequestHandler */ @@ -1933,13 +1999,13 @@ private module StdlibPrivate { result = [ // Python 2 - BaseHttpServer::BaseHttpRequestHandler::classRef(), - SimpleHttpServer::SimpleHttpRequestHandler::classRef(), - CgiHttpServer::CgiHttpRequestHandler::classRef(), + API::moduleImport("BaseHTTPServer").getMember("BaseHTTPRequestHandler"), + API::moduleImport("SimpleHTTPServer").getMember("SimpleHTTPRequestHandler"), + API::moduleImport("CGIHTTPServer").getMember("CGIHTTPRequestHandler"), // Python 3 - StdlibHttp::Server::BaseHttpRequestHandler::classRef(), - StdlibHttp::Server::SimpleHttpRequestHandler::classRef(), - StdlibHttp::Server::CgiHttpRequestHandler::classRef() + API::moduleImport("http").getMember("server").getMember("BaseHTTPRequestHandler"), + API::moduleImport("http").getMember("server").getMember("SimpleHTTPRequestHandler"), + API::moduleImport("http").getMember("server").getMember("CGIHTTPRequestHandler"), ].getASubclass*() } From a5db939234f5a89b875f372fe85736d96c041ea6 Mon Sep 17 00:00:00 2001 From: Anders Starcke Henriksen Date: Mon, 18 Sep 2023 14:29:09 +0200 Subject: [PATCH 468/788] Release automodel queries version 0.0.3 --- java/ql/automodel/src/qlpack.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index 851dbe69e82..1fe48a3541c 100644 --- a/java/ql/automodel/src/qlpack.yml +++ b/java/ql/automodel/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-automodel-queries -version: 0.0.3-dev +version: 0.0.4-dev groups: - java - automodel From 4614b1ae9cadaf39da9de6f8912d16ca4f3d384f Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Mon, 18 Sep 2023 14:34:03 +0200 Subject: [PATCH 469/788] Python: add change note --- .../change-notes/2023-09-18-promoted-nosql-injection-query.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 python/ql/src/change-notes/2023-09-18-promoted-nosql-injection-query.md diff --git a/python/ql/src/change-notes/2023-09-18-promoted-nosql-injection-query.md b/python/ql/src/change-notes/2023-09-18-promoted-nosql-injection-query.md new file mode 100644 index 00000000000..2b30fd492d5 --- /dev/null +++ b/python/ql/src/change-notes/2023-09-18-promoted-nosql-injection-query.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now available in the default security suite. From f468b2a3d149675a30213d56db3bc49a957831e7 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 18 Sep 2023 14:58:20 +0200 Subject: [PATCH 470/788] C#: Add tests for generic interfaces/classes/methods --- .../FetchApplicationModeMethods.expected | 3 +++ .../FetchFrameworkModeMethods.expected | 8 ++++++++ .../test/utils/modeleditor/PublicGenericClass.cs | 16 ++++++++++++++++ .../utils/modeleditor/PublicGenericInterface.cs | 15 +++++++++++++++ 4 files changed, 42 insertions(+) create mode 100644 csharp/ql/test/utils/modeleditor/PublicGenericClass.cs create mode 100644 csharp/ql/test/utils/modeleditor/PublicGenericInterface.cs diff --git a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected index 827a0335cae..87a66a7e6a1 100644 --- a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected +++ b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected @@ -5,4 +5,7 @@ | PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | | PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | supported | System.Console | 7.0.0.0 | source | type | source | classification | | PublicClass.cs:24:9:24:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System.Console#WriteLine(System.Object) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System.Console#WriteLine(System.Object) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | | PublicInterface.cs:13:9:13:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected index 2d8d2b1cc5c..e8eddfca527 100644 --- a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected +++ b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected @@ -3,6 +3,14 @@ | PublicClass.cs:17:20:17:33 | nonPublicStuff | GitHub.CodeQL.PublicClass#nonPublicStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | | PublicClass.cs:27:45:27:47 | get_PublicProperty | GitHub.CodeQL.PublicClass#get_PublicProperty() | false | supported | PublicClass.cs | library | | type | unknown | classification | | PublicClass.cs:27:50:27:52 | set_PublicProperty | GitHub.CodeQL.PublicClass#set_PublicProperty(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | +| PublicGenericClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicGenericClass<,>#stuff(T) | false | supported | PublicGenericClass.cs | library | | type | unknown | classification | +| PublicGenericClass.cs:12:17:12:26 | stuff2<> | GitHub.CodeQL.PublicGenericClass<,>#stuff2<>(T2) | false | supported | PublicGenericClass.cs | library | | type | unknown | classification | +| PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicGenericInterface<>#stuff(T) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | +| PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicGenericInterface<>#stuff(T) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | +| PublicGenericInterface.cs:9:10:9:19 | stuff2<> | GitHub.CodeQL.PublicGenericInterface<>#stuff2<>(T2) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | +| PublicGenericInterface.cs:9:10:9:19 | stuff2<> | GitHub.CodeQL.PublicGenericInterface<>#stuff2<>(T2) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | +| PublicGenericInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicGenericInterface<>#staticStuff(System.String) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | +| PublicGenericInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicGenericInterface<>#staticStuff(System.String) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | | PublicInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicInterface#stuff(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | | PublicInterface.cs:9:29:9:31 | get_PublicProperty | GitHub.CodeQL.PublicInterface#get_PublicProperty() | false | supported | PublicInterface.cs | library | | type | unknown | classification | | PublicInterface.cs:9:34:9:36 | set_PublicProperty | GitHub.CodeQL.PublicInterface#set_PublicProperty(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | diff --git a/csharp/ql/test/utils/modeleditor/PublicGenericClass.cs b/csharp/ql/test/utils/modeleditor/PublicGenericClass.cs new file mode 100644 index 00000000000..7edc38dbed9 --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/PublicGenericClass.cs @@ -0,0 +1,16 @@ +using System; + +namespace GitHub.CodeQL; + +public class PublicGenericClass : PublicGenericInterface +{ + public void stuff(T arg) + { + Console.WriteLine(arg); + } + + public void stuff2(T2 arg) + { + Console.WriteLine(arg); + } +} diff --git a/csharp/ql/test/utils/modeleditor/PublicGenericInterface.cs b/csharp/ql/test/utils/modeleditor/PublicGenericInterface.cs new file mode 100644 index 00000000000..9053f854b3a --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/PublicGenericInterface.cs @@ -0,0 +1,15 @@ +using System; + +namespace GitHub.CodeQL; + +public interface PublicGenericInterface +{ + void stuff(T arg); + + void stuff2(T2 arg); + + static void staticStuff(String arg) + { + Console.WriteLine(arg); + } +} From 4693f72d5fc72e40abc5b48a226e9104f06460af Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 18 Sep 2023 15:30:38 +0200 Subject: [PATCH 471/788] C#: Rename CallableMethod to Endpoint --- .../src/utils/modeleditor/AutomodelVsCode.qll | 23 +++++++++---------- .../FetchApplicationModeMethods.ql | 21 +++++++++-------- .../modeleditor/FetchFrameworkModeMethods.ql | 16 ++++++------- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll b/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll index 04b3365d36d..0cac66b5f71 100644 --- a/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll +++ b/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll @@ -12,7 +12,6 @@ private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl as FlowSumma private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate private import semmle.code.csharp.frameworks.Test private import semmle.code.csharp.security.dataflow.flowsources.Remote - private import Telemetry.TestLibrary /** Holds if the given callable is not worth supporting. */ @@ -25,8 +24,8 @@ private predicate isUninteresting(DotNet::Callable c) { /** * An callable method from either the C# Standard Library, a 3rd party library, or from the source. */ -class CallableMethod extends DotNet::Callable { - CallableMethod() { +class Endpoint extends DotNet::Callable { + Endpoint() { [this.(Modifiable), this.(Accessor).getDeclaration()].isEffectivelyPublic() and not isUninteresting(this) } @@ -121,23 +120,23 @@ class CallableMethod extends DotNet::Callable { } } -boolean isSupported(CallableMethod callableMethod) { - callableMethod.isSupported() and result = true +boolean isSupported(Endpoint endpoint) { + endpoint.isSupported() and result = true or - not callableMethod.isSupported() and + not endpoint.isSupported() and result = false } -string supportedType(CallableMethod method) { - method.isSink() and result = "sink" +string supportedType(Endpoint endpoint) { + endpoint.isSink() and result = "sink" or - method.isSource() and result = "source" + endpoint.isSource() and result = "source" or - method.hasSummary() and result = "summary" + endpoint.hasSummary() and result = "summary" or - method.isNeutral() and result = "neutral" + endpoint.isNeutral() and result = "neutral" or - not method.isSupported() and result = "" + not endpoint.isSupported() and result = "" } string methodClassification(Call method) { diff --git a/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql b/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql index d57f1f5e0ca..ac30075e5e7 100644 --- a/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql +++ b/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql @@ -10,22 +10,23 @@ private import csharp private import AutomodelVsCode -class ExternalApi extends CallableMethod { - ExternalApi() { +class ExternalEndpoint extends Endpoint { + ExternalEndpoint() { this.isUnboundDeclaration() and this.fromLibrary() } } -private Call aUsage(ExternalApi api) { result.getTarget().getUnboundDeclaration() = api } +private Call aUsage(ExternalEndpoint api) { result.getTarget().getUnboundDeclaration() = api } from - ExternalApi api, string apiName, boolean supported, Call usage, string type, string classification + ExternalEndpoint endpoint, string apiName, boolean supported, Call usage, string type, + string classification where - apiName = api.getApiName() and - supported = isSupported(api) and - usage = aUsage(api) and - type = supportedType(api) and + apiName = endpoint.getApiName() and + supported = isSupported(endpoint) and + usage = aUsage(endpoint) and + type = supportedType(endpoint) and classification = methodClassification(usage) -select usage, apiName, supported.toString(), "supported", api.dllName(), api.dllVersion(), type, - "type", classification, "classification" +select usage, apiName, supported.toString(), "supported", endpoint.dllName(), endpoint.dllVersion(), + type, "type", classification, "classification" diff --git a/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql b/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql index 1371749d12d..8d6be191398 100644 --- a/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql +++ b/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql @@ -12,14 +12,14 @@ private import dotnet private import semmle.code.csharp.frameworks.Test private import AutomodelVsCode -class PublicMethod extends CallableMethod { - PublicMethod() { this.fromSource() and not this.getFile() instanceof TestFile } +class PublicEndpointFromSource extends Endpoint { + PublicEndpointFromSource() { this.fromSource() and not this.getFile() instanceof TestFile } } -from PublicMethod publicMethod, string apiName, boolean supported, string type +from PublicEndpointFromSource endpoint, string apiName, boolean supported, string type where - apiName = publicMethod.getApiName() and - supported = isSupported(publicMethod) and - type = supportedType(publicMethod) -select publicMethod, apiName, supported.toString(), "supported", - publicMethod.getFile().getBaseName(), "library", type, "type", "unknown", "classification" + apiName = endpoint.getApiName() and + supported = isSupported(endpoint) and + type = supportedType(endpoint) +select endpoint, apiName, supported.toString(), "supported", endpoint.getFile().getBaseName(), + "library", type, "type", "unknown", "classification" From 93972a49d7ed3d461a272d2fbfa58dba5b9c1178 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 18 Sep 2023 15:34:24 +0200 Subject: [PATCH 472/788] C#: Rename AutomodelVsCode to ModelEditor --- csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql | 2 +- csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql | 2 +- .../utils/modeleditor/{AutomodelVsCode.qll => ModelEditor.qll} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename csharp/ql/src/utils/modeleditor/{AutomodelVsCode.qll => ModelEditor.qll} (100%) diff --git a/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql b/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql index ac30075e5e7..2f5529a3124 100644 --- a/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql +++ b/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql @@ -8,7 +8,7 @@ */ private import csharp -private import AutomodelVsCode +private import ModelEditor class ExternalEndpoint extends Endpoint { ExternalEndpoint() { diff --git a/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql b/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql index 8d6be191398..fede41907b9 100644 --- a/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql +++ b/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql @@ -10,7 +10,7 @@ private import csharp private import dotnet private import semmle.code.csharp.frameworks.Test -private import AutomodelVsCode +private import ModelEditor class PublicEndpointFromSource extends Endpoint { PublicEndpointFromSource() { this.fromSource() and not this.getFile() instanceof TestFile } diff --git a/csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll b/csharp/ql/src/utils/modeleditor/ModelEditor.qll similarity index 100% rename from csharp/ql/src/utils/modeleditor/AutomodelVsCode.qll rename to csharp/ql/src/utils/modeleditor/ModelEditor.qll From 81a8eeed460dd66a506eeaa431e9c922820b1e67 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 18 Sep 2023 15:45:30 +0200 Subject: [PATCH 473/788] C#: Only include unbound declarations in endpoints --- csharp/ql/src/utils/modeleditor/ModelEditor.qll | 4 +++- .../test/utils/modeleditor/FetchFrameworkModeMethods.expected | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/csharp/ql/src/utils/modeleditor/ModelEditor.qll b/csharp/ql/src/utils/modeleditor/ModelEditor.qll index 0cac66b5f71..4a2e90e8b72 100644 --- a/csharp/ql/src/utils/modeleditor/ModelEditor.qll +++ b/csharp/ql/src/utils/modeleditor/ModelEditor.qll @@ -27,7 +27,9 @@ private predicate isUninteresting(DotNet::Callable c) { class Endpoint extends DotNet::Callable { Endpoint() { [this.(Modifiable), this.(Accessor).getDeclaration()].isEffectivelyPublic() and - not isUninteresting(this) + not isUninteresting(this) and + this.isUnboundDeclaration() and + this.getDeclaringType().isUnboundDeclaration() } /** diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected index e8eddfca527..0cc231e8b39 100644 --- a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected +++ b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected @@ -6,10 +6,7 @@ | PublicGenericClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicGenericClass<,>#stuff(T) | false | supported | PublicGenericClass.cs | library | | type | unknown | classification | | PublicGenericClass.cs:12:17:12:26 | stuff2<> | GitHub.CodeQL.PublicGenericClass<,>#stuff2<>(T2) | false | supported | PublicGenericClass.cs | library | | type | unknown | classification | | PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicGenericInterface<>#stuff(T) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | -| PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicGenericInterface<>#stuff(T) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | | PublicGenericInterface.cs:9:10:9:19 | stuff2<> | GitHub.CodeQL.PublicGenericInterface<>#stuff2<>(T2) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | -| PublicGenericInterface.cs:9:10:9:19 | stuff2<> | GitHub.CodeQL.PublicGenericInterface<>#stuff2<>(T2) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | -| PublicGenericInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicGenericInterface<>#staticStuff(System.String) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | | PublicGenericInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicGenericInterface<>#staticStuff(System.String) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | | PublicInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicInterface#stuff(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | | PublicInterface.cs:9:29:9:31 | get_PublicProperty | GitHub.CodeQL.PublicInterface#get_PublicProperty() | false | supported | PublicInterface.cs | library | | type | unknown | classification | From 948e36a4c53d5fefb7086e9b933e63569f6dc289 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 18 Sep 2023 15:47:50 +0200 Subject: [PATCH 474/788] C#: Update comment for Endpoint --- csharp/ql/src/utils/modeleditor/ModelEditor.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/utils/modeleditor/ModelEditor.qll b/csharp/ql/src/utils/modeleditor/ModelEditor.qll index 4a2e90e8b72..38d8b9f280e 100644 --- a/csharp/ql/src/utils/modeleditor/ModelEditor.qll +++ b/csharp/ql/src/utils/modeleditor/ModelEditor.qll @@ -22,7 +22,7 @@ private predicate isUninteresting(DotNet::Callable c) { } /** - * An callable method from either the C# Standard Library, a 3rd party library, or from the source. + * A callable method or accessor from either the C# Standard Library, a 3rd party library, or from the source. */ class Endpoint extends DotNet::Callable { Endpoint() { From 489561f4f124ec664c550cb16a3a13ee8f26ed8d Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 18 Sep 2023 15:49:59 +0200 Subject: [PATCH 475/788] C#: Fix formatting of ExternalApi --- csharp/ql/src/Telemetry/ExternalApi.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/csharp/ql/src/Telemetry/ExternalApi.qll b/csharp/ql/src/Telemetry/ExternalApi.qll index 36769524379..a7889318bc4 100644 --- a/csharp/ql/src/Telemetry/ExternalApi.qll +++ b/csharp/ql/src/Telemetry/ExternalApi.qll @@ -11,7 +11,6 @@ private import semmle.code.csharp.dataflow.internal.DataFlowDispatch as DataFlow private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate private import semmle.code.csharp.security.dataflow.flowsources.Remote - private import TestLibrary /** Holds if the given callable is not worth supporting. */ From e45edca1030c8143feef698f79434062e9ac4241 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Mon, 18 Sep 2023 14:55:11 +0100 Subject: [PATCH 476/788] Ruby: remove unused import --- .../security/UnsafeShellCommandConstructionCustomizations.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionCustomizations.qll index 95096207689..b114095cdbd 100644 --- a/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionCustomizations.qll @@ -6,7 +6,6 @@ private import ruby private import codeql.ruby.DataFlow -private import codeql.ruby.DataFlow2 private import codeql.ruby.ApiGraphs private import codeql.ruby.frameworks.core.Gem::Gem as Gem private import codeql.ruby.Concepts as Concepts From daad69bb3062fb0bfc333955f9af391d4d20e9f8 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 18 Sep 2023 16:36:11 +0200 Subject: [PATCH 477/788] Data flow: Fix two consistency checks --- .../internal/DataFlowImplConsistency.qll | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll index a744f57b4b4..edbd54a20f9 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll @@ -262,21 +262,33 @@ module MakeConsistency< not Input::viableImplInCallContextTooLargeExclude(call, ctx, callable) } + private predicate uniqueParameterNodeAtPositionInclude( + DataFlowCallable c, ParameterPosition pos, Node p + ) { + not Input::uniqueParameterNodeAtPositionExclude(c, pos, p) and + isParameterNode(p, c, pos) + } + query predicate uniqueParameterNodeAtPosition( DataFlowCallable c, ParameterPosition pos, Node p, string msg ) { - not Input::uniqueParameterNodeAtPositionExclude(c, pos, p) and - isParameterNode(p, c, pos) and - not exists(unique(Node p0 | isParameterNode(p0, c, pos))) and + uniqueParameterNodeAtPositionInclude(c, pos, p) and + not exists(unique(Node p0 | uniqueParameterNodeAtPositionInclude(c, pos, p0))) and msg = "Parameters with overlapping positions." } + private predicate uniqueParameterNodePositionInclude( + DataFlowCallable c, ParameterPosition pos, Node p + ) { + not Input::uniqueParameterNodePositionExclude(c, pos, p) and + isParameterNode(p, c, pos) + } + query predicate uniqueParameterNodePosition( DataFlowCallable c, ParameterPosition pos, Node p, string msg ) { - not Input::uniqueParameterNodePositionExclude(c, pos, p) and - isParameterNode(p, c, pos) and - not exists(unique(ParameterPosition pos0 | isParameterNode(p, c, pos0))) and + uniqueParameterNodePositionInclude(c, pos, p) and + not exists(unique(ParameterPosition pos0 | uniqueParameterNodePositionInclude(c, pos0, p))) and msg = "Parameter node with multiple positions." } @@ -297,13 +309,14 @@ module MakeConsistency< msg = "Missing call for argument node." } - query predicate multipleArgumentCall(ArgumentNode arg, DataFlowCall call, string msg) { + private predicate multipleArgumentCallInclude(ArgumentNode arg, DataFlowCall call) { isArgumentNode(arg, call, _) and - not Input::multipleArgumentCallExclude(arg, call) and - strictcount(DataFlowCall call0 | - isArgumentNode(arg, call0, _) and - not Input::multipleArgumentCallExclude(arg, call0) - ) > 1 and + not Input::multipleArgumentCallExclude(arg, call) + } + + query predicate multipleArgumentCall(ArgumentNode arg, DataFlowCall call, string msg) { + multipleArgumentCallInclude(arg, call) and + strictcount(DataFlowCall call0 | multipleArgumentCallInclude(arg, call0)) > 1 and msg = "Multiple calls for argument node." } } From bc0b2e5318681c61edfa40f0afb4fcc11ef81650 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 18 Sep 2023 16:25:54 +0100 Subject: [PATCH 478/788] C++: Fix the return type and parameter type of 'malloc' in test. --- .../CWE/CWE-193/InvalidPointerDeref.expected | 77 +++++++------------ .../query-tests/Security/CWE/CWE-193/test.cpp | 28 +++---- 2 files changed, 42 insertions(+), 63 deletions(-) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected index e30b1d5472f..1e78180fa37 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected @@ -1,9 +1,9 @@ edges -| test.cpp:4:15:4:20 | call to malloc | test.cpp:5:15:5:22 | ... + ... | -| test.cpp:4:15:4:20 | call to malloc | test.cpp:5:15:5:22 | ... + ... | -| test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | -| test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | -| test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | * ... | +| test.cpp:4:15:4:33 | call to malloc | test.cpp:5:15:5:22 | ... + ... | +| test.cpp:4:15:4:33 | call to malloc | test.cpp:5:15:5:22 | ... + ... | +| test.cpp:4:15:4:33 | call to malloc | test.cpp:6:14:6:15 | * ... | +| test.cpp:4:15:4:33 | call to malloc | test.cpp:6:14:6:15 | * ... | +| test.cpp:4:15:4:33 | call to malloc | test.cpp:8:14:8:21 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:5:15:5:22 | ... + ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | @@ -12,12 +12,12 @@ edges | test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | * ... | | test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | * ... | | test.cpp:6:14:6:15 | * ... | test.cpp:8:14:8:21 | * ... | -| test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | * ... | -| test.cpp:28:15:28:20 | call to malloc | test.cpp:29:15:29:28 | ... + ... | -| test.cpp:28:15:28:20 | call to malloc | test.cpp:29:15:29:28 | ... + ... | -| test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | -| test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | -| test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | * ... | +| test.cpp:16:15:16:33 | call to malloc | test.cpp:20:14:20:21 | * ... | +| test.cpp:28:15:28:37 | call to malloc | test.cpp:29:15:29:28 | ... + ... | +| test.cpp:28:15:28:37 | call to malloc | test.cpp:29:15:29:28 | ... + ... | +| test.cpp:28:15:28:37 | call to malloc | test.cpp:30:14:30:15 | * ... | +| test.cpp:28:15:28:37 | call to malloc | test.cpp:30:14:30:15 | * ... | +| test.cpp:28:15:28:37 | call to malloc | test.cpp:32:14:32:21 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:29:15:29:28 | ... + ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | @@ -26,22 +26,9 @@ edges | test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... | | test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... | | test.cpp:30:14:30:15 | * ... | test.cpp:32:14:32:21 | * ... | -| test.cpp:40:15:40:20 | call to malloc | test.cpp:41:15:41:28 | ... + ... | -| test.cpp:40:15:40:20 | call to malloc | test.cpp:41:15:41:28 | ... + ... | -| test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | -| test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | -| test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | * ... | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:41:15:41:28 | ... + ... | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:42:14:42:15 | * ... | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:44:14:44:21 | * ... | -| test.cpp:41:15:41:28 | ... + ... | test.cpp:44:14:44:21 | * ... | -| test.cpp:42:14:42:15 | * ... | test.cpp:44:14:44:21 | * ... | | test.cpp:51:33:51:35 | end | test.cpp:60:34:60:37 | mk_array output argument | -| test.cpp:52:19:52:24 | call to malloc | test.cpp:53:5:53:23 | ... = ... | -| test.cpp:52:19:52:24 | call to malloc | test.cpp:53:12:53:23 | ... + ... | +| test.cpp:52:19:52:37 | call to malloc | test.cpp:53:5:53:23 | ... = ... | +| test.cpp:52:19:52:37 | call to malloc | test.cpp:53:12:53:23 | ... + ... | | test.cpp:53:5:53:23 | ... = ... | test.cpp:51:33:51:35 | end | | test.cpp:53:12:53:23 | ... + ... | test.cpp:53:5:53:23 | ... = ... | | test.cpp:60:34:60:37 | mk_array output argument | test.cpp:67:9:67:14 | ... = ... | @@ -183,8 +170,8 @@ edges | test.cpp:781:14:781:27 | new[] | test.cpp:786:18:786:27 | access to array | | test.cpp:792:60:792:62 | end | test.cpp:800:40:800:43 | mk_array_no_field_flow output argument | | test.cpp:792:60:792:62 | end | test.cpp:832:40:832:43 | mk_array_no_field_flow output argument | -| test.cpp:793:14:793:19 | call to malloc | test.cpp:794:5:794:24 | ... = ... | -| test.cpp:793:14:793:19 | call to malloc | test.cpp:794:12:794:24 | ... + ... | +| test.cpp:793:14:793:32 | call to malloc | test.cpp:794:5:794:24 | ... = ... | +| test.cpp:793:14:793:32 | call to malloc | test.cpp:794:12:794:24 | ... + ... | | test.cpp:794:5:794:24 | ... = ... | test.cpp:792:60:792:62 | end | | test.cpp:794:12:794:24 | ... + ... | test.cpp:794:5:794:24 | ... = ... | | test.cpp:800:40:800:43 | mk_array_no_field_flow output argument | test.cpp:807:7:807:12 | ... = ... | @@ -194,28 +181,22 @@ edges | test.cpp:832:40:832:43 | mk_array_no_field_flow output argument | test.cpp:833:37:833:39 | end | | test.cpp:833:37:833:39 | end | test.cpp:815:52:815:54 | end | nodes -| test.cpp:4:15:4:20 | call to malloc | semmle.label | call to malloc | +| test.cpp:4:15:4:33 | call to malloc | semmle.label | call to malloc | | test.cpp:5:15:5:22 | ... + ... | semmle.label | ... + ... | | test.cpp:5:15:5:22 | ... + ... | semmle.label | ... + ... | | test.cpp:6:14:6:15 | * ... | semmle.label | * ... | | test.cpp:6:14:6:15 | * ... | semmle.label | * ... | | test.cpp:8:14:8:21 | * ... | semmle.label | * ... | -| test.cpp:16:15:16:20 | call to malloc | semmle.label | call to malloc | +| test.cpp:16:15:16:33 | call to malloc | semmle.label | call to malloc | | test.cpp:20:14:20:21 | * ... | semmle.label | * ... | -| test.cpp:28:15:28:20 | call to malloc | semmle.label | call to malloc | +| test.cpp:28:15:28:37 | call to malloc | semmle.label | call to malloc | | test.cpp:29:15:29:28 | ... + ... | semmle.label | ... + ... | | test.cpp:29:15:29:28 | ... + ... | semmle.label | ... + ... | | test.cpp:30:14:30:15 | * ... | semmle.label | * ... | | test.cpp:30:14:30:15 | * ... | semmle.label | * ... | | test.cpp:32:14:32:21 | * ... | semmle.label | * ... | -| test.cpp:40:15:40:20 | call to malloc | semmle.label | call to malloc | -| test.cpp:41:15:41:28 | ... + ... | semmle.label | ... + ... | -| test.cpp:41:15:41:28 | ... + ... | semmle.label | ... + ... | -| test.cpp:42:14:42:15 | * ... | semmle.label | * ... | -| test.cpp:42:14:42:15 | * ... | semmle.label | * ... | -| test.cpp:44:14:44:21 | * ... | semmle.label | * ... | | test.cpp:51:33:51:35 | end | semmle.label | end | -| test.cpp:52:19:52:24 | call to malloc | semmle.label | call to malloc | +| test.cpp:52:19:52:37 | call to malloc | semmle.label | call to malloc | | test.cpp:53:5:53:23 | ... = ... | semmle.label | ... = ... | | test.cpp:53:12:53:23 | ... + ... | semmle.label | ... + ... | | test.cpp:60:34:60:37 | mk_array output argument | semmle.label | mk_array output argument | @@ -313,7 +294,7 @@ nodes | test.cpp:781:14:781:27 | new[] | semmle.label | new[] | | test.cpp:786:18:786:27 | access to array | semmle.label | access to array | | test.cpp:792:60:792:62 | end | semmle.label | end | -| test.cpp:793:14:793:19 | call to malloc | semmle.label | call to malloc | +| test.cpp:793:14:793:32 | call to malloc | semmle.label | call to malloc | | test.cpp:794:5:794:24 | ... = ... | semmle.label | ... = ... | | test.cpp:794:12:794:24 | ... + ... | semmle.label | ... + ... | | test.cpp:800:40:800:43 | mk_array_no_field_flow output argument | semmle.label | mk_array_no_field_flow output argument | @@ -325,14 +306,12 @@ nodes | test.cpp:833:37:833:39 | end | semmle.label | end | subpaths #select -| test.cpp:6:14:6:15 | * ... | test.cpp:4:15:4:20 | call to malloc | test.cpp:6:14:6:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | -| test.cpp:8:14:8:21 | * ... | test.cpp:4:15:4:20 | call to malloc | test.cpp:8:14:8:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:4:15:4:20 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | -| test.cpp:20:14:20:21 | * ... | test.cpp:16:15:16:20 | call to malloc | test.cpp:20:14:20:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:16:15:16:20 | call to malloc | call to malloc | test.cpp:17:19:17:22 | size | size | -| test.cpp:30:14:30:15 | * ... | test.cpp:28:15:28:20 | call to malloc | test.cpp:30:14:30:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | -| test.cpp:32:14:32:21 | * ... | test.cpp:28:15:28:20 | call to malloc | test.cpp:32:14:32:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:28:15:28:20 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | -| test.cpp:42:14:42:15 | * ... | test.cpp:40:15:40:20 | call to malloc | test.cpp:42:14:42:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | -| test.cpp:44:14:44:21 | * ... | test.cpp:40:15:40:20 | call to malloc | test.cpp:44:14:44:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:40:15:40:20 | call to malloc | call to malloc | test.cpp:41:20:41:27 | ... - ... | ... - ... | -| test.cpp:67:9:67:14 | ... = ... | test.cpp:52:19:52:24 | call to malloc | test.cpp:67:9:67:14 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:52:19:52:24 | call to malloc | call to malloc | test.cpp:53:20:53:23 | size | size | +| test.cpp:6:14:6:15 | * ... | test.cpp:4:15:4:33 | call to malloc | test.cpp:6:14:6:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:33 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | +| test.cpp:8:14:8:21 | * ... | test.cpp:4:15:4:33 | call to malloc | test.cpp:8:14:8:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:4:15:4:33 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | +| test.cpp:20:14:20:21 | * ... | test.cpp:16:15:16:33 | call to malloc | test.cpp:20:14:20:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:16:15:16:33 | call to malloc | call to malloc | test.cpp:17:19:17:22 | size | size | +| test.cpp:30:14:30:15 | * ... | test.cpp:28:15:28:37 | call to malloc | test.cpp:30:14:30:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:28:15:28:37 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | +| test.cpp:32:14:32:21 | * ... | test.cpp:28:15:28:37 | call to malloc | test.cpp:32:14:32:21 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:28:15:28:37 | call to malloc | call to malloc | test.cpp:29:20:29:27 | ... + ... | ... + ... | +| test.cpp:67:9:67:14 | ... = ... | test.cpp:52:19:52:37 | call to malloc | test.cpp:67:9:67:14 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:52:19:52:37 | call to malloc | call to malloc | test.cpp:53:20:53:23 | size | size | | test.cpp:201:5:201:19 | ... = ... | test.cpp:194:15:194:33 | call to malloc | test.cpp:201:5:201:19 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:194:15:194:33 | call to malloc | call to malloc | test.cpp:195:21:195:23 | len | len | | test.cpp:213:5:213:13 | ... = ... | test.cpp:205:15:205:33 | call to malloc | test.cpp:213:5:213:13 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:205:15:205:33 | call to malloc | call to malloc | test.cpp:206:21:206:23 | len | len | | test.cpp:232:3:232:20 | ... = ... | test.cpp:231:18:231:30 | new[] | test.cpp:232:3:232:20 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:231:18:231:30 | new[] | new[] | test.cpp:232:11:232:15 | index | index | @@ -359,5 +338,5 @@ subpaths | test.cpp:772:16:772:29 | access to array | test.cpp:754:18:754:31 | new[] | test.cpp:772:16:772:29 | access to array | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:754:18:754:31 | new[] | new[] | test.cpp:767:22:767:28 | ... + ... | ... + ... | | test.cpp:772:16:772:29 | access to array | test.cpp:754:18:754:31 | new[] | test.cpp:772:16:772:29 | access to array | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:754:18:754:31 | new[] | new[] | test.cpp:772:22:772:28 | ... + ... | ... + ... | | test.cpp:786:18:786:27 | access to array | test.cpp:781:14:781:27 | new[] | test.cpp:786:18:786:27 | access to array | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:781:14:781:27 | new[] | new[] | test.cpp:786:20:786:26 | ... + ... | ... + ... | -| test.cpp:807:7:807:12 | ... = ... | test.cpp:793:14:793:19 | call to malloc | test.cpp:807:7:807:12 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:793:14:793:19 | call to malloc | call to malloc | test.cpp:794:21:794:24 | size | size | -| test.cpp:821:7:821:12 | ... = ... | test.cpp:793:14:793:19 | call to malloc | test.cpp:821:7:821:12 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:793:14:793:19 | call to malloc | call to malloc | test.cpp:794:21:794:24 | size | size | +| test.cpp:807:7:807:12 | ... = ... | test.cpp:793:14:793:32 | call to malloc | test.cpp:807:7:807:12 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:793:14:793:32 | call to malloc | call to malloc | test.cpp:794:21:794:24 | size | size | +| test.cpp:821:7:821:12 | ... = ... | test.cpp:793:14:793:32 | call to malloc | test.cpp:821:7:821:12 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:793:14:793:32 | call to malloc | call to malloc | test.cpp:794:21:794:24 | size | size | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp index aba60b79ebf..de41ae75821 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp @@ -1,7 +1,7 @@ -char *malloc(int size); +void* malloc(unsigned long size); void test1(int size) { - char* p = malloc(size); + char* p = (char*)malloc(size); char* q = p + size; // $ alloc=L4 char a = *q; // $ deref=L6 // BAD char b = *(q - 1); // GOOD @@ -13,7 +13,7 @@ void test1(int size) { } void test2(int size) { - char* p = malloc(size); + char* p = (char*)malloc(size); char* q = p + size - 1; // $ alloc=L16 char a = *q; // GOOD char b = *(q - 1); // GOOD @@ -25,7 +25,7 @@ void test2(int size) { } void test3(int size) { - char* p = malloc(size + 1); + char* p = (char*)malloc(size + 1); char* q = p + (size + 1); // $ alloc=L28+1 char a = *q; // $ deref=L30 // BAD char b = *(q - 1); // GOOD @@ -37,11 +37,11 @@ void test3(int size) { } void test4(int size) { - char* p = malloc(size - 1); - char* q = p + (size - 1); // $ alloc=L40-1 - char a = *q; // $ deref=L42 // BAD + char* p = (char*)malloc(size - 1); + char* q = p + (size - 1); // $ MISSING: alloc=L40-1 + char a = *q; // $ MISSING: deref=L42 // BAD [NOT DETECTED] char b = *(q - 1); // GOOD - char c = *(q + 1); // $ deref=L44+1 // BAD + char c = *(q + 1); // $ MISSING: deref=L44+1 // BAD [NOT DETECTED] char d = *(q + size); // BAD [NOT DETECTED] char e = *(q - size); // GOOD char f = *(q + size + 1); // BAD [NOT DETECTED] @@ -49,7 +49,7 @@ void test4(int size) { } char* mk_array(int size, char** end) { - char* begin = malloc(size); + char* begin = (char*)malloc(size); *end = begin + size; // $ alloc=L52 return begin; @@ -79,7 +79,7 @@ struct array_t { array_t mk_array(int size) { array_t arr; - arr.begin = malloc(size); + arr.begin = (char*)malloc(size); arr.end = arr.begin + size; // $ MISSING: alloc=L82 return arr; @@ -121,7 +121,7 @@ void test7(int size) { void test8(int size) { array_t arr; - char* p = malloc(size); + char* p = (char*)malloc(size); arr.begin = p; arr.end = p + size; // $ alloc=L124 @@ -140,7 +140,7 @@ void test8(int size) { array_t *mk_array_p(int size) { array_t *arr = (array_t*) malloc(sizeof(array_t)); - arr->begin = malloc(size); + arr->begin = (char*)malloc(size); arr->end = arr->begin + size; // $ MISSING: alloc=L143 return arr; @@ -185,7 +185,7 @@ void deref_plus_one(char* q) { } void test11(unsigned size) { - char *p = malloc(size); + char *p = (char*)malloc(size); char *q = p + size - 1; // $ alloc=L188 deref_plus_one(q); } @@ -790,7 +790,7 @@ void test38_simple(unsigned size, unsigned pos, unsigned numParams) { } void mk_array_no_field_flow(int size, char** begin, char** end) { - *begin = malloc(size); + *begin = (char*)malloc(size); *end = *begin + size; // $ alloc=L793 } From 8a2d4852c6605d55ae41bf27ff3b57e76515c9d5 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 18 Sep 2023 16:48:03 +0100 Subject: [PATCH 479/788] C++: Add another testcase. --- .../CWE/CWE-193/InvalidPointerDeref.expected | 8 ++++++++ .../query-tests/Security/CWE/CWE-193/test.cpp | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected index 1e78180fa37..717777f83fa 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected @@ -180,6 +180,8 @@ edges | test.cpp:815:52:815:54 | end | test.cpp:821:7:821:12 | ... = ... | | test.cpp:832:40:832:43 | mk_array_no_field_flow output argument | test.cpp:833:37:833:39 | end | | test.cpp:833:37:833:39 | end | test.cpp:815:52:815:54 | end | +| test.cpp:841:18:841:35 | call to malloc | test.cpp:842:3:842:20 | ... = ... | +| test.cpp:848:20:848:37 | call to malloc | test.cpp:849:5:849:22 | ... = ... | nodes | test.cpp:4:15:4:33 | call to malloc | semmle.label | call to malloc | | test.cpp:5:15:5:22 | ... + ... | semmle.label | ... + ... | @@ -304,6 +306,10 @@ nodes | test.cpp:821:7:821:12 | ... = ... | semmle.label | ... = ... | | test.cpp:832:40:832:43 | mk_array_no_field_flow output argument | semmle.label | mk_array_no_field_flow output argument | | test.cpp:833:37:833:39 | end | semmle.label | end | +| test.cpp:841:18:841:35 | call to malloc | semmle.label | call to malloc | +| test.cpp:842:3:842:20 | ... = ... | semmle.label | ... = ... | +| test.cpp:848:20:848:37 | call to malloc | semmle.label | call to malloc | +| test.cpp:849:5:849:22 | ... = ... | semmle.label | ... = ... | subpaths #select | test.cpp:6:14:6:15 | * ... | test.cpp:4:15:4:33 | call to malloc | test.cpp:6:14:6:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:33 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | @@ -340,3 +346,5 @@ subpaths | test.cpp:786:18:786:27 | access to array | test.cpp:781:14:781:27 | new[] | test.cpp:786:18:786:27 | access to array | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:781:14:781:27 | new[] | new[] | test.cpp:786:20:786:26 | ... + ... | ... + ... | | test.cpp:807:7:807:12 | ... = ... | test.cpp:793:14:793:32 | call to malloc | test.cpp:807:7:807:12 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:793:14:793:32 | call to malloc | call to malloc | test.cpp:794:21:794:24 | size | size | | test.cpp:821:7:821:12 | ... = ... | test.cpp:793:14:793:32 | call to malloc | test.cpp:821:7:821:12 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:793:14:793:32 | call to malloc | call to malloc | test.cpp:794:21:794:24 | size | size | +| test.cpp:842:3:842:20 | ... = ... | test.cpp:841:18:841:35 | call to malloc | test.cpp:842:3:842:20 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:841:18:841:35 | call to malloc | call to malloc | test.cpp:842:11:842:15 | index | index | +| test.cpp:849:5:849:22 | ... = ... | test.cpp:848:20:848:37 | call to malloc | test.cpp:849:5:849:22 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:848:20:848:37 | call to malloc | call to malloc | test.cpp:849:13:849:17 | index | index | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp index de41ae75821..056a231a17d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp @@ -832,3 +832,20 @@ void test7_no_field_flow(int size) { mk_array_no_field_flow(size, &begin, &end); test7_callee_no_field_flow(begin, end); } + +void test15_with_malloc(unsigned long index) { + unsigned long size = index + 13; + if(size < index) { + return; + } + int* newname = (int*)malloc(size); + newname[index] = 0; // $ SPURIOUS: alloc=L841 deref=L842 // GOOD [FALSE POSITIVE] +} + +void test16_with_malloc(unsigned long index) { + unsigned long size = index + 13; + if(size >= index) { + int* newname = (int*)malloc(size); + newname[index] = 0; // $ SPURIOUS: alloc=L848 deref=L849 // GOOD [FALSE POSITIVE] + } +} \ No newline at end of file From d2e66a1186d049687cd625fee03ac8db938a8f12 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 18 Sep 2023 17:55:19 +0100 Subject: [PATCH 480/788] C++: Ignore addresses of 'InitializeDynamicAllocationInstruction' in 'unique' when converting between instructions and expression in dataflow. --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 66aac6a81e1..2945f8ec04b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1066,6 +1066,10 @@ private module GetConvertedResultExpression { private import semmle.code.cpp.ir.implementation.raw.internal.TranslatedExpr private import semmle.code.cpp.ir.implementation.raw.internal.InstructionTag + private Operand getAnInitializeDynamicAllocationInstructionAddress() { + result = any(InitializeDynamicAllocationInstruction init).getAllocationAddressOperand() + } + /** * Gets the expression that should be returned as the result expression from `instr`. * @@ -1074,7 +1078,16 @@ private module GetConvertedResultExpression { */ Expr getConvertedResultExpression(Instruction instr, int n) { // Only fully converted instructions has a result for `asConvertedExpr` - not conversionFlow(unique( | | getAUse(instr)), _, false, false) and + not conversionFlow(unique(Operand op | + // The address operand of a `InitializeDynamicAllocationInstruction` is + // special: we need to handle it during dataflow (since it's + // effectively a store to an indirection), but it doesn't appear in + // source syntax, so dataflow node <-> expression conversion shouldn't + // care about it. + op = getAUse(instr) and not op = getAnInitializeDynamicAllocationInstructionAddress() + | + op + ), _, false, false) and result = getConvertedResultExpressionImpl(instr) and n = 0 or From fda52a568d37f54cffc2088c41508c62eccee8c3 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 18 Sep 2023 17:55:25 +0100 Subject: [PATCH 481/788] C++: Accept test changes. --- .../SAMATE/OverrunWriteProductFlow.expected | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected index 4f0f81569dd..c2d7723194d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected @@ -47,25 +47,19 @@ edges | test.cpp:207:17:207:19 | str indirection [string] | test.cpp:207:22:207:27 | string | | test.cpp:214:24:214:24 | p | test.cpp:216:10:216:10 | p | | test.cpp:220:27:220:54 | call to malloc | test.cpp:222:15:222:20 | buffer | -| test.cpp:220:43:220:48 | call to malloc | test.cpp:222:15:222:20 | buffer | | test.cpp:222:15:222:20 | buffer | test.cpp:214:24:214:24 | p | | test.cpp:228:27:228:54 | call to malloc | test.cpp:232:10:232:15 | buffer | -| test.cpp:228:43:228:48 | call to malloc | test.cpp:232:10:232:15 | buffer | | test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:26 | ... = ... | | test.cpp:236:5:236:26 | ... = ... | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | | test.cpp:241:20:241:38 | call to malloc | test.cpp:242:22:242:27 | buffer | -| test.cpp:241:27:241:32 | call to malloc | test.cpp:242:22:242:27 | buffer | | test.cpp:242:16:242:19 | set_string output argument [string] | test.cpp:243:12:243:14 | str indirection [string] | | test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | | test.cpp:242:22:242:27 | buffer | test.cpp:242:16:242:19 | set_string output argument [string] | | test.cpp:243:12:243:14 | str indirection [string] | test.cpp:243:12:243:21 | string | | test.cpp:249:14:249:33 | call to my_alloc | test.cpp:250:12:250:12 | p | | test.cpp:256:9:256:25 | call to malloc | test.cpp:257:12:257:12 | p | -| test.cpp:256:17:256:22 | call to malloc | test.cpp:257:12:257:12 | p | | test.cpp:262:15:262:30 | call to malloc | test.cpp:266:12:266:12 | p | -| test.cpp:262:22:262:27 | call to malloc | test.cpp:266:12:266:12 | p | | test.cpp:264:13:264:30 | call to malloc | test.cpp:266:12:266:12 | p | -| test.cpp:264:20:264:25 | call to malloc | test.cpp:266:12:266:12 | p | nodes | test.cpp:16:11:16:21 | mk_string_t indirection [string] | semmle.label | mk_string_t indirection [string] | | test.cpp:18:5:18:30 | ... = ... | semmle.label | ... = ... | @@ -116,16 +110,13 @@ nodes | test.cpp:214:24:214:24 | p | semmle.label | p | | test.cpp:216:10:216:10 | p | semmle.label | p | | test.cpp:220:27:220:54 | call to malloc | semmle.label | call to malloc | -| test.cpp:220:43:220:48 | call to malloc | semmle.label | call to malloc | | test.cpp:222:15:222:20 | buffer | semmle.label | buffer | | test.cpp:228:27:228:54 | call to malloc | semmle.label | call to malloc | -| test.cpp:228:43:228:48 | call to malloc | semmle.label | call to malloc | | test.cpp:232:10:232:15 | buffer | semmle.label | buffer | | test.cpp:235:40:235:45 | buffer | semmle.label | buffer | | test.cpp:236:5:236:26 | ... = ... | semmle.label | ... = ... | | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | semmle.label | p_str indirection [post update] [string] | | test.cpp:241:20:241:38 | call to malloc | semmle.label | call to malloc | -| test.cpp:241:27:241:32 | call to malloc | semmle.label | call to malloc | | test.cpp:242:16:242:19 | set_string output argument [string] | semmle.label | set_string output argument [string] | | test.cpp:242:22:242:27 | buffer | semmle.label | buffer | | test.cpp:243:12:243:14 | str indirection [string] | semmle.label | str indirection [string] | @@ -133,12 +124,9 @@ nodes | test.cpp:249:14:249:33 | call to my_alloc | semmle.label | call to my_alloc | | test.cpp:250:12:250:12 | p | semmle.label | p | | test.cpp:256:9:256:25 | call to malloc | semmle.label | call to malloc | -| test.cpp:256:17:256:22 | call to malloc | semmle.label | call to malloc | | test.cpp:257:12:257:12 | p | semmle.label | p | | test.cpp:262:15:262:30 | call to malloc | semmle.label | call to malloc | -| test.cpp:262:22:262:27 | call to malloc | semmle.label | call to malloc | | test.cpp:264:13:264:30 | call to malloc | semmle.label | call to malloc | -| test.cpp:264:20:264:25 | call to malloc | semmle.label | call to malloc | | test.cpp:266:12:266:12 | p | semmle.label | p | subpaths | test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | test.cpp:242:16:242:19 | set_string output argument [string] | @@ -159,7 +147,5 @@ subpaths | test.cpp:203:9:203:15 | call to strncpy | test.cpp:147:19:147:24 | call to malloc | test.cpp:203:22:203:27 | string | This write may overflow $@ by 2 elements. | test.cpp:203:22:203:27 | string | string | | test.cpp:207:9:207:15 | call to strncpy | test.cpp:147:19:147:24 | call to malloc | test.cpp:207:22:207:27 | string | This write may overflow $@ by 3 elements. | test.cpp:207:22:207:27 | string | string | | test.cpp:243:5:243:10 | call to memset | test.cpp:241:20:241:38 | call to malloc | test.cpp:243:12:243:21 | string | This write may overflow $@ by 1 element. | test.cpp:243:16:243:21 | string | string | -| test.cpp:243:5:243:10 | call to memset | test.cpp:241:27:241:32 | call to malloc | test.cpp:243:12:243:21 | string | This write may overflow $@ by 1 element. | test.cpp:243:16:243:21 | string | string | | test.cpp:250:5:250:10 | call to memset | test.cpp:249:14:249:33 | call to my_alloc | test.cpp:250:12:250:12 | p | This write may overflow $@ by 1 element. | test.cpp:250:12:250:12 | p | p | | test.cpp:266:5:266:10 | call to memset | test.cpp:262:15:262:30 | call to malloc | test.cpp:266:12:266:12 | p | This write may overflow $@ by 1 element. | test.cpp:266:12:266:12 | p | p | -| test.cpp:266:5:266:10 | call to memset | test.cpp:262:22:262:27 | call to malloc | test.cpp:266:12:266:12 | p | This write may overflow $@ by 1 element. | test.cpp:266:12:266:12 | p | p | From ef8a997c999112bbb025cc376ca1a9d6ba35c229 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 11 Sep 2023 23:40:39 +0100 Subject: [PATCH 482/788] Swift: Extend the test. --- .../type/nominaltype/nominaltype.expected | 41 ++++++++++-------- .../type/nominaltype/nominaltype.swift | 43 +++++++++++++++++-- .../type/nominaltype/nominaltypedecl.expected | 31 +++++++------ .../type/nominaltype/nominaltypedecl.ql | 4 +- 4 files changed, 82 insertions(+), 37 deletions(-) diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected index d4243b80f62..9a330aa415e 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected @@ -1,19 +1,22 @@ -| nominaltype.swift:54:6:54:6 | a | A | getFullName:A, getName:A, getUnderlyingType:A | -| nominaltype.swift:55:6:55:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias, getUnderlyingType:A | -| nominaltype.swift:56:6:56:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias, getUnderlyingType:A? | -| nominaltype.swift:57:6:57:6 | b1 | B1 | getABaseType:A, getFullName:B1, getName:B1, getUnderlyingType:B1 | -| nominaltype.swift:58:6:58:6 | b2 | B2 | getABaseType:A_alias, getFullName:B2, getName:B2, getUnderlyingType:B2 | -| nominaltype.swift:59:6:59:6 | b1_alias | B1_alias | getABaseType:A, getAliasedType:B1, getFullName:B1_alias, getName:B1_alias, getUnderlyingType:B1 | -| nominaltype.swift:60:6:60:6 | b2_alias | B2_alias | getABaseType:A_alias, getAliasedType:B2, getFullName:B2_alias, getName:B2_alias, getUnderlyingType:B2 | -| nominaltype.swift:61:6:61:6 | p | P | getFullName:P, getName:P, getUnderlyingType:P | -| nominaltype.swift:62:6:62:6 | p_alias | P_alias | getFullName:P_alias, getName:P_alias, getUnderlyingType:P_alias | -| nominaltype.swift:63:6:63:6 | c1 | C1 | getABaseType:P, getFullName:C1, getName:C1, getUnderlyingType:C1 | -| nominaltype.swift:64:6:64:6 | c2 | C2 | getABaseType:P_alias, getFullName:C2, getName:C2, getUnderlyingType:C2 | -| nominaltype.swift:65:6:65:6 | c1_alias | C1_alias | getABaseType:P, getAliasedType:C1, getFullName:C1_alias, getName:C1_alias, getUnderlyingType:C1 | -| nominaltype.swift:66:6:66:6 | c2_alias | C2_alias | getABaseType:P_alias, getAliasedType:C2, getFullName:C2_alias, getName:C2_alias, getUnderlyingType:C2 | -| nominaltype.swift:67:6:67:6 | o | Outer | getFullName:Outer, getName:Outer, getUnderlyingType:Outer | -| nominaltype.swift:68:6:68:6 | oi | Outer.Inner | getFullName:Outer.Inner, getName:Inner, getUnderlyingType:Outer.Inner | -| nominaltype.swift:69:6:69:6 | oia | Outer.Inner.InnerAlias | getABaseType:FixedWidthInteger, getABaseType:SignedInteger, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getAliasedType:Int, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias, getUnderlyingType:Int | -| nominaltype.swift:70:6:70:6 | aa | Any? | getFullName:Any?, getName:Any?, getUnderlyingType:Any? | -| nominaltype.swift:71:6:71:6 | p1p2 | P1P2 | getFullName:P1P2, getName:P1P2, getUnderlyingType:P1P2 | -| nominaltype.swift:72:6:72:6 | boxInt | Box | getFullName:Box, getName:Box, getUnderlyingType:Box | +| nominaltype.swift:88:6:88:6 | i | Int | getABaseType:FixedWidthInteger, getABaseType:SignedInteger, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getFullName:Int, getName:Int, getUnderlyingType:Int | +| nominaltype.swift:89:6:89:6 | j | Any? | getFullName:Any?, getName:Any?, getUnderlyingType:Any? | +| nominaltype.swift:90:6:90:6 | a | A | getFullName:A, getName:A, getUnderlyingType:A | +| nominaltype.swift:91:6:91:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias, getUnderlyingType:A | +| nominaltype.swift:92:6:92:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias, getUnderlyingType:A? | +| nominaltype.swift:93:6:93:6 | b1 | B1 | getABaseType:A, getFullName:B1, getName:B1, getUnderlyingType:B1 | +| nominaltype.swift:94:6:94:6 | b2 | B2 | getABaseType:A_alias, getFullName:B2, getName:B2, getUnderlyingType:B2 | +| nominaltype.swift:95:6:95:6 | b1_alias | B1_alias | getABaseType:A, getAliasedType:B1, getFullName:B1_alias, getName:B1_alias, getUnderlyingType:B1 | +| nominaltype.swift:96:6:96:6 | b2_alias | B2_alias | getABaseType:A_alias, getAliasedType:B2, getFullName:B2_alias, getName:B2_alias, getUnderlyingType:B2 | +| nominaltype.swift:97:6:97:6 | p | P | getFullName:P, getName:P, getUnderlyingType:P | +| nominaltype.swift:98:6:98:6 | p_alias | P_alias | getFullName:P_alias, getName:P_alias, getUnderlyingType:P_alias | +| nominaltype.swift:99:6:99:6 | c1 | C1 | getABaseType:P, getFullName:C1, getName:C1, getUnderlyingType:C1 | +| nominaltype.swift:100:6:100:6 | c2 | C2 | getABaseType:P_alias, getFullName:C2, getName:C2, getUnderlyingType:C2 | +| nominaltype.swift:101:6:101:6 | c1_alias | C1_alias | getABaseType:P, getAliasedType:C1, getFullName:C1_alias, getName:C1_alias, getUnderlyingType:C1 | +| nominaltype.swift:102:6:102:6 | c2_alias | C2_alias | getABaseType:P_alias, getAliasedType:C2, getFullName:C2_alias, getName:C2_alias, getUnderlyingType:C2 | +| nominaltype.swift:103:6:103:6 | o | Outer | getFullName:Outer, getName:Outer, getUnderlyingType:Outer | +| nominaltype.swift:104:6:104:6 | oi | Outer.Inner | getFullName:Outer.Inner, getName:Inner, getUnderlyingType:Outer.Inner | +| nominaltype.swift:105:6:105:6 | oia | Outer.Inner.InnerAlias | getAliasedType:A, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias, getUnderlyingType:A | +| nominaltype.swift:106:6:106:6 | p1p2 | P1P2 | getFullName:P1P2, getName:P1P2, getUnderlyingType:P1P2 | +| nominaltype.swift:107:6:107:6 | boxInt | Box | getFullName:Box, getName:Box, getUnderlyingType:Box | +| nominaltype.swift:108:6:108:6 | d1 | D1 | getFullName:D1, getName:D1, getUnderlyingType:D1 | +| nominaltype.swift:109:6:109:6 | d2 | D2_alias | getAliasedType:D2, getFullName:D2_alias, getName:D2_alias, getUnderlyingType:D2 | diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.swift b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.swift index 26f73c49f55..b674e13cd71 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.swift +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.swift @@ -16,6 +16,8 @@ typealias B1_alias = B1 typealias B2_alias = B2 +// --- + protocol P { } @@ -31,12 +33,16 @@ typealias C1_alias = C1 typealias C2_alias = C2 +// --- + class Outer { class Inner { - typealias InnerAlias = Int + typealias InnerAlias = A } } +// --- + protocol P1 { } @@ -45,12 +51,42 @@ protocol P2 { typealias P1P2 = P1 & P2 +// --- + class Box { } +// --- +class D1 { +} + +protocol P3 { +} + +extension D1 : P3 { +} + +// --- + +class D2 { +} + +typealias D2_alias = D2 + +protocol P4 { +} + +typealias P4_alias = P4 + +extension D2_alias : P4_alias { +} + +// --- func test() { + var i : Int + var j : Any? var a : A var a_alias : A_alias var a_optional_alias : A_optional_alias @@ -67,7 +103,8 @@ func test() { var o : Outer var oi : Outer.Inner var oia : Outer.Inner.InnerAlias - var aa : Any? var p1p2 : P1P2 - var boxInt : Box + var boxInt : Box + var d1: D1 + var d2: D2_alias } diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected index b62b789b1a8..f5039a03cb8 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected @@ -1,14 +1,17 @@ -| nominaltype.swift:54:6:54:6 | a | A | getFullName:A, getName:A | -| nominaltype.swift:55:6:55:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias | -| nominaltype.swift:56:6:56:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias | -| nominaltype.swift:57:6:57:6 | b1 | B1 | getABaseType:A, getFullName:B1, getName:B1 | -| nominaltype.swift:58:6:58:6 | b2 | B2 | getABaseType:A_alias, getFullName:B2, getName:B2 | -| nominaltype.swift:59:6:59:6 | b1_alias | B1_alias | getAliasedType:B1, getFullName:B1_alias, getName:B1_alias | -| nominaltype.swift:60:6:60:6 | b2_alias | B2_alias | getAliasedType:B2, getFullName:B2_alias, getName:B2_alias | -| nominaltype.swift:63:6:63:6 | c1 | C1 | getABaseType:P, getFullName:C1, getName:C1 | -| nominaltype.swift:64:6:64:6 | c2 | C2 | getABaseType:P_alias, getFullName:C2, getName:C2 | -| nominaltype.swift:65:6:65:6 | c1_alias | C1_alias | getAliasedType:C1, getFullName:C1_alias, getName:C1_alias | -| nominaltype.swift:66:6:66:6 | c2_alias | C2_alias | getAliasedType:C2, getFullName:C2_alias, getName:C2_alias | -| nominaltype.swift:67:6:67:6 | o | Outer | getFullName:Outer, getName:Outer | -| nominaltype.swift:68:6:68:6 | oi | Inner | getFullName:Outer.Inner, getName:Inner | -| nominaltype.swift:69:6:69:6 | oia | InnerAlias | getAliasedType:Int, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias | +| nominaltype.swift:88:6:88:6 | i | Int | getABaseType:FixedWidthInteger, getABaseType:SignedInteger, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getABaseTypeDecl:FixedWidthInteger, getABaseTypeDecl:SignedInteger, getABaseTypeDecl:_ExpressibleByBuiltinIntegerLiteral, getFullName:Int, getName:Int | +| nominaltype.swift:90:6:90:6 | a | A | getFullName:A, getName:A | +| nominaltype.swift:91:6:91:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias | +| nominaltype.swift:92:6:92:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias | +| nominaltype.swift:93:6:93:6 | b1 | B1 | getABaseType:A, getABaseTypeDecl:A, getFullName:B1, getName:B1 | +| nominaltype.swift:94:6:94:6 | b2 | B2 | getABaseType:A_alias, getFullName:B2, getName:B2 | +| nominaltype.swift:95:6:95:6 | b1_alias | B1_alias | getAliasedType:B1, getFullName:B1_alias, getName:B1_alias | +| nominaltype.swift:96:6:96:6 | b2_alias | B2_alias | getAliasedType:B2, getFullName:B2_alias, getName:B2_alias | +| nominaltype.swift:99:6:99:6 | c1 | C1 | getABaseType:P, getABaseTypeDecl:P, getFullName:C1, getName:C1 | +| nominaltype.swift:100:6:100:6 | c2 | C2 | getABaseType:P_alias, getFullName:C2, getName:C2 | +| nominaltype.swift:101:6:101:6 | c1_alias | C1_alias | getAliasedType:C1, getFullName:C1_alias, getName:C1_alias | +| nominaltype.swift:102:6:102:6 | c2_alias | C2_alias | getAliasedType:C2, getFullName:C2_alias, getName:C2_alias | +| nominaltype.swift:103:6:103:6 | o | Outer | getFullName:Outer, getName:Outer | +| nominaltype.swift:104:6:104:6 | oi | Inner | getFullName:Outer.Inner, getName:Inner | +| nominaltype.swift:105:6:105:6 | oia | InnerAlias | getAliasedType:A, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias | +| nominaltype.swift:108:6:108:6 | d1 | D1 | getFullName:D1, getName:D1 | +| nominaltype.swift:109:6:109:6 | d2 | D2_alias | getAliasedType:D2, getFullName:D2_alias, getName:D2_alias | diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.ql b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.ql index be1e4c58efa..83fb434a7f7 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.ql +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.ql @@ -7,7 +7,9 @@ string describe(TypeDecl td) { or result = "getAliasedType:" + td.(TypeAliasDecl).getAliasedType().toString() or - result = "getABaseType:" + td.(NominalTypeDecl).getABaseType().toString() + result = "getABaseType:" + td.getABaseType().toString() + or + result = "getABaseTypeDecl:" + td.getABaseTypeDecl().toString() } from VarDecl v, TypeDecl td From fd8d186b34562b64d4ded5dab3c37836dc089703 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Mon, 18 Sep 2023 17:37:43 +0200 Subject: [PATCH 483/788] Python: Add debug queries For manually debugging things, it's nice to be able to share debug queries. I had the DebugStats.ql lying around from way back, and thought it was kinda cute. I've extended it with a bunch of things, not too sure if they're all important, but I think it's kinda fun to see the distribution of things :blush: --- python/ql/src/meta/debug/DebugStats.ql | 101 +++++++++++++++++++ python/ql/src/meta/debug/SimpleClassDebug.ql | 26 +++++ 2 files changed, 127 insertions(+) create mode 100644 python/ql/src/meta/debug/DebugStats.ql create mode 100644 python/ql/src/meta/debug/SimpleClassDebug.ql diff --git a/python/ql/src/meta/debug/DebugStats.ql b/python/ql/src/meta/debug/DebugStats.ql new file mode 100644 index 00000000000..5ebbe963943 --- /dev/null +++ b/python/ql/src/meta/debug/DebugStats.ql @@ -0,0 +1,101 @@ +import python + +from string msg, int cnt, int sort +where + sort = 0 and + msg = "Lines of code in DB" and + cnt = sum(Module m | | m.getMetrics().getNumberOfLinesOfCode()) + or + sort = 1 and + msg = "Lines of code in repo" and + cnt = + sum(Module m | exists(m.getFile().getRelativePath()) | m.getMetrics().getNumberOfLinesOfCode()) + or + sort = 2 and + msg = "Files" and + cnt = count(File f) + or + sort = 10 and msg = "----------" and cnt = 0 + or + sort = 11 and + msg = "Modules" and + cnt = count(Module m) + or + sort = 12 and + msg = "Classes" and + cnt = count(Class c) + or + sort = 13 and + msg = "Functions" and + cnt = count(Function f) + or + sort = 14 and + msg = "async functions" and + cnt = count(Function f | f.isAsync()) + or + sort = 15 and + msg = "*args params" and + cnt = count(Function f | f.hasVarArg()) + or + sort = 16 and + msg = "**kwargs params" and + cnt = count(Function f | f.hasKwArg()) + or + sort = 20 and msg = "----------" and cnt = 0 + or + sort = 21 and + msg = "call" and + cnt = count(Call c) + or + sort = 22 and + msg = "for loop" and + cnt = count(For f) + or + sort = 23 and + msg = "comprehension" and + cnt = count(Comp c) + or + sort = 24 and + msg = "attribute" and + cnt = count(Attribute a) + or + sort = 25 and + msg = "assignment" and + cnt = count(Assign a) + or + sort = 26 and + msg = "await" and + cnt = count(Await a) + or + sort = 27 and + msg = "yield" and + cnt = count(Yield y) + or + sort = 28 and + msg = "with" and + cnt = count(With w) + or + sort = 29 and + msg = "raise" and + cnt = count(Raise r) + or + sort = 30 and + msg = "return" and + cnt = count(Return r) + or + sort = 31 and + msg = "match" and + cnt = count(MatchStmt m) + or + sort = 32 and + msg = "from ... import ..." and + cnt = count(Import i | i.isFromImport()) + or + sort = 33 and + msg = "import ..." and + cnt = count(Import i | not i.isFromImport()) + or + sort = 34 and + msg = "import *" and + cnt = count(ImportStar i) +select sort, msg, cnt order by sort diff --git a/python/ql/src/meta/debug/SimpleClassDebug.ql b/python/ql/src/meta/debug/SimpleClassDebug.ql new file mode 100644 index 00000000000..017d3f858e9 --- /dev/null +++ b/python/ql/src/meta/debug/SimpleClassDebug.ql @@ -0,0 +1,26 @@ +/** + * Fill in your class name and file path below, to inspect the class hierarchy. + */ + +import python +import semmle.python.dataflow.new.internal.DataFlowPublic +import semmle.python.dataflow.new.internal.DataFlowPrivate + +predicate interestingClass(Class cls) { + cls.getName() = "YourClassName" + // and cls.getLocation().getFile().getAbsolutePath().matches("%/folder/file.py") +} + +query predicate superClasses(Class cls, Class super_) { + interestingClass(cls) and + super_ = getADirectSuperclass+(cls) +} + +query predicate subClasses(Class cls, Class super_) { + interestingClass(cls) and + super_ = getADirectSubclass+(cls) +} + +from Class cls +where interestingClass(cls) +select cls From 4f39cb65c215111a69bf8ed8440e64b3db412b0c Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Sep 2023 19:57:04 +0100 Subject: [PATCH 484/788] ed test --- .../type/nominaltype/nominaltype.expected | 42 +++++++++---------- .../type/nominaltype/nominaltype.swift | 10 +---- .../type/nominaltype/nominaltypedecl.expected | 32 +++++++------- 3 files changed, 37 insertions(+), 47 deletions(-) diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected index 9a330aa415e..35b87914c18 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected @@ -1,22 +1,20 @@ -| nominaltype.swift:88:6:88:6 | i | Int | getABaseType:FixedWidthInteger, getABaseType:SignedInteger, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getFullName:Int, getName:Int, getUnderlyingType:Int | -| nominaltype.swift:89:6:89:6 | j | Any? | getFullName:Any?, getName:Any?, getUnderlyingType:Any? | -| nominaltype.swift:90:6:90:6 | a | A | getFullName:A, getName:A, getUnderlyingType:A | -| nominaltype.swift:91:6:91:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias, getUnderlyingType:A | -| nominaltype.swift:92:6:92:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias, getUnderlyingType:A? | -| nominaltype.swift:93:6:93:6 | b1 | B1 | getABaseType:A, getFullName:B1, getName:B1, getUnderlyingType:B1 | -| nominaltype.swift:94:6:94:6 | b2 | B2 | getABaseType:A_alias, getFullName:B2, getName:B2, getUnderlyingType:B2 | -| nominaltype.swift:95:6:95:6 | b1_alias | B1_alias | getABaseType:A, getAliasedType:B1, getFullName:B1_alias, getName:B1_alias, getUnderlyingType:B1 | -| nominaltype.swift:96:6:96:6 | b2_alias | B2_alias | getABaseType:A_alias, getAliasedType:B2, getFullName:B2_alias, getName:B2_alias, getUnderlyingType:B2 | -| nominaltype.swift:97:6:97:6 | p | P | getFullName:P, getName:P, getUnderlyingType:P | -| nominaltype.swift:98:6:98:6 | p_alias | P_alias | getFullName:P_alias, getName:P_alias, getUnderlyingType:P_alias | -| nominaltype.swift:99:6:99:6 | c1 | C1 | getABaseType:P, getFullName:C1, getName:C1, getUnderlyingType:C1 | -| nominaltype.swift:100:6:100:6 | c2 | C2 | getABaseType:P_alias, getFullName:C2, getName:C2, getUnderlyingType:C2 | -| nominaltype.swift:101:6:101:6 | c1_alias | C1_alias | getABaseType:P, getAliasedType:C1, getFullName:C1_alias, getName:C1_alias, getUnderlyingType:C1 | -| nominaltype.swift:102:6:102:6 | c2_alias | C2_alias | getABaseType:P_alias, getAliasedType:C2, getFullName:C2_alias, getName:C2_alias, getUnderlyingType:C2 | -| nominaltype.swift:103:6:103:6 | o | Outer | getFullName:Outer, getName:Outer, getUnderlyingType:Outer | -| nominaltype.swift:104:6:104:6 | oi | Outer.Inner | getFullName:Outer.Inner, getName:Inner, getUnderlyingType:Outer.Inner | -| nominaltype.swift:105:6:105:6 | oia | Outer.Inner.InnerAlias | getAliasedType:A, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias, getUnderlyingType:A | -| nominaltype.swift:106:6:106:6 | p1p2 | P1P2 | getFullName:P1P2, getName:P1P2, getUnderlyingType:P1P2 | -| nominaltype.swift:107:6:107:6 | boxInt | Box | getFullName:Box, getName:Box, getUnderlyingType:Box | -| nominaltype.swift:108:6:108:6 | d1 | D1 | getFullName:D1, getName:D1, getUnderlyingType:D1 | -| nominaltype.swift:109:6:109:6 | d2 | D2_alias | getAliasedType:D2, getFullName:D2_alias, getName:D2_alias, getUnderlyingType:D2 | +| nominaltype.swift:84:6:84:6 | i | Int | getABaseType:FixedWidthInteger, getABaseType:SignedInteger, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getFullName:Int, getName:Int, getUnderlyingType:Int | +| nominaltype.swift:85:6:85:6 | j | Any? | getFullName:Any?, getName:Any?, getUnderlyingType:Any? | +| nominaltype.swift:86:6:86:6 | a | A | getFullName:A, getName:A, getUnderlyingType:A | +| nominaltype.swift:87:6:87:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias, getUnderlyingType:A | +| nominaltype.swift:88:6:88:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias, getUnderlyingType:A? | +| nominaltype.swift:89:6:89:6 | b1 | B1 | getABaseType:A, getFullName:B1, getName:B1, getUnderlyingType:B1 | +| nominaltype.swift:90:6:90:6 | b2 | B2 | getABaseType:A_alias, getFullName:B2, getName:B2, getUnderlyingType:B2 | +| nominaltype.swift:91:6:91:6 | b1_alias | B1_alias | getABaseType:A, getAliasedType:B1, getFullName:B1_alias, getName:B1_alias, getUnderlyingType:B1 | +| nominaltype.swift:92:6:92:6 | b2_alias | B2_alias | getABaseType:A_alias, getAliasedType:B2, getFullName:B2_alias, getName:B2_alias, getUnderlyingType:B2 | +| nominaltype.swift:93:6:93:6 | p | P | getFullName:P, getName:P, getUnderlyingType:P | +| nominaltype.swift:94:6:94:6 | p_alias | P_alias | getFullName:P_alias, getName:P_alias, getUnderlyingType:P_alias | +| nominaltype.swift:95:6:95:6 | c1 | C1 | getABaseType:P, getFullName:C1, getName:C1, getUnderlyingType:C1 | +| nominaltype.swift:96:6:96:6 | c2 | C2 | getABaseType:P_alias, getFullName:C2, getName:C2, getUnderlyingType:C2 | +| nominaltype.swift:97:6:97:6 | o | Outer | getFullName:Outer, getName:Outer, getUnderlyingType:Outer | +| nominaltype.swift:98:6:98:6 | oi | Outer.Inner | getFullName:Outer.Inner, getName:Inner, getUnderlyingType:Outer.Inner | +| nominaltype.swift:99:6:99:6 | oia | Outer.Inner.InnerAlias | getAliasedType:A, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias, getUnderlyingType:A | +| nominaltype.swift:100:6:100:6 | p1p2 | P1P2 | getFullName:P1P2, getName:P1P2, getUnderlyingType:P1P2 | +| nominaltype.swift:101:6:101:6 | boxInt | Box | getFullName:Box, getName:Box, getUnderlyingType:Box | +| nominaltype.swift:102:6:102:6 | d1 | D1 | getFullName:D1, getName:D1, getUnderlyingType:D1 | +| nominaltype.swift:103:6:103:6 | d2 | D2 | getFullName:D2, getName:D2, getUnderlyingType:D2 | diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.swift b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.swift index b674e13cd71..0bc56d9c5da 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.swift +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.swift @@ -29,10 +29,6 @@ class C1 : P { class C2 : P_alias { } -typealias C1_alias = C1 - -typealias C2_alias = C2 - // --- class Outer { @@ -79,7 +75,7 @@ protocol P4 { typealias P4_alias = P4 -extension D2_alias : P4_alias { +extension D2 : P4_alias { } // --- @@ -98,13 +94,11 @@ func test() { var p_alias : P_alias var c1 : C1 var c2 : C2 - var c1_alias : C1_alias - var c2_alias : C2_alias var o : Outer var oi : Outer.Inner var oia : Outer.Inner.InnerAlias var p1p2 : P1P2 var boxInt : Box var d1: D1 - var d2: D2_alias + var d2: D2 } diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected index f5039a03cb8..9a49fe5c67f 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected @@ -1,17 +1,15 @@ -| nominaltype.swift:88:6:88:6 | i | Int | getABaseType:FixedWidthInteger, getABaseType:SignedInteger, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getABaseTypeDecl:FixedWidthInteger, getABaseTypeDecl:SignedInteger, getABaseTypeDecl:_ExpressibleByBuiltinIntegerLiteral, getFullName:Int, getName:Int | -| nominaltype.swift:90:6:90:6 | a | A | getFullName:A, getName:A | -| nominaltype.swift:91:6:91:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias | -| nominaltype.swift:92:6:92:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias | -| nominaltype.swift:93:6:93:6 | b1 | B1 | getABaseType:A, getABaseTypeDecl:A, getFullName:B1, getName:B1 | -| nominaltype.swift:94:6:94:6 | b2 | B2 | getABaseType:A_alias, getFullName:B2, getName:B2 | -| nominaltype.swift:95:6:95:6 | b1_alias | B1_alias | getAliasedType:B1, getFullName:B1_alias, getName:B1_alias | -| nominaltype.swift:96:6:96:6 | b2_alias | B2_alias | getAliasedType:B2, getFullName:B2_alias, getName:B2_alias | -| nominaltype.swift:99:6:99:6 | c1 | C1 | getABaseType:P, getABaseTypeDecl:P, getFullName:C1, getName:C1 | -| nominaltype.swift:100:6:100:6 | c2 | C2 | getABaseType:P_alias, getFullName:C2, getName:C2 | -| nominaltype.swift:101:6:101:6 | c1_alias | C1_alias | getAliasedType:C1, getFullName:C1_alias, getName:C1_alias | -| nominaltype.swift:102:6:102:6 | c2_alias | C2_alias | getAliasedType:C2, getFullName:C2_alias, getName:C2_alias | -| nominaltype.swift:103:6:103:6 | o | Outer | getFullName:Outer, getName:Outer | -| nominaltype.swift:104:6:104:6 | oi | Inner | getFullName:Outer.Inner, getName:Inner | -| nominaltype.swift:105:6:105:6 | oia | InnerAlias | getAliasedType:A, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias | -| nominaltype.swift:108:6:108:6 | d1 | D1 | getFullName:D1, getName:D1 | -| nominaltype.swift:109:6:109:6 | d2 | D2_alias | getAliasedType:D2, getFullName:D2_alias, getName:D2_alias | +| nominaltype.swift:84:6:84:6 | i | Int | getABaseType:FixedWidthInteger, getABaseType:SignedInteger, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getABaseTypeDecl:FixedWidthInteger, getABaseTypeDecl:SignedInteger, getABaseTypeDecl:_ExpressibleByBuiltinIntegerLiteral, getFullName:Int, getName:Int | +| nominaltype.swift:86:6:86:6 | a | A | getFullName:A, getName:A | +| nominaltype.swift:87:6:87:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias | +| nominaltype.swift:88:6:88:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias | +| nominaltype.swift:89:6:89:6 | b1 | B1 | getABaseType:A, getABaseTypeDecl:A, getFullName:B1, getName:B1 | +| nominaltype.swift:90:6:90:6 | b2 | B2 | getABaseType:A_alias, getFullName:B2, getName:B2 | +| nominaltype.swift:91:6:91:6 | b1_alias | B1_alias | getAliasedType:B1, getFullName:B1_alias, getName:B1_alias | +| nominaltype.swift:92:6:92:6 | b2_alias | B2_alias | getAliasedType:B2, getFullName:B2_alias, getName:B2_alias | +| nominaltype.swift:95:6:95:6 | c1 | C1 | getABaseType:P, getABaseTypeDecl:P, getFullName:C1, getName:C1 | +| nominaltype.swift:96:6:96:6 | c2 | C2 | getABaseType:P_alias, getFullName:C2, getName:C2 | +| nominaltype.swift:97:6:97:6 | o | Outer | getFullName:Outer, getName:Outer | +| nominaltype.swift:98:6:98:6 | oi | Inner | getFullName:Outer.Inner, getName:Inner | +| nominaltype.swift:99:6:99:6 | oia | InnerAlias | getAliasedType:A, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias | +| nominaltype.swift:102:6:102:6 | d1 | D1 | getFullName:D1, getName:D1 | +| nominaltype.swift:103:6:103:6 | d2 | D2 | getFullName:D2, getName:D2 | From b048268042dd458ed4fc9f7c7441b60013b655ea Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Sep 2023 18:49:26 +0100 Subject: [PATCH 485/788] Swift: Add some QLDoc. --- swift/ql/lib/codeql/swift/elements/decl/TypeAliasDecl.qll | 7 ++++++- swift/ql/lib/codeql/swift/elements/type/NominalType.qll | 3 +++ swift/ql/lib/codeql/swift/elements/type/TypeAliasType.qll | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/elements/decl/TypeAliasDecl.qll b/swift/ql/lib/codeql/swift/elements/decl/TypeAliasDecl.qll index 015ee32349e..0b410002b2b 100644 --- a/swift/ql/lib/codeql/swift/elements/decl/TypeAliasDecl.qll +++ b/swift/ql/lib/codeql/swift/elements/decl/TypeAliasDecl.qll @@ -1,4 +1,9 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file private import codeql.swift.generated.decl.TypeAliasDecl +/** + * A declaration of a type alias to another type. For example: + * ``` + * typealias MyInt = Int + * ``` + */ class TypeAliasDecl extends Generated::TypeAliasDecl { } diff --git a/swift/ql/lib/codeql/swift/elements/type/NominalType.qll b/swift/ql/lib/codeql/swift/elements/type/NominalType.qll index 0e65cdc2f94..30775064bff 100644 --- a/swift/ql/lib/codeql/swift/elements/type/NominalType.qll +++ b/swift/ql/lib/codeql/swift/elements/type/NominalType.qll @@ -2,6 +2,9 @@ private import codeql.swift.generated.type.NominalType private import codeql.swift.elements.decl.NominalTypeDecl private import codeql.swift.elements.type.Type +/** + * A class, struct, enum or protocol. + */ class NominalType extends Generated::NominalType { override Type getABaseType() { result = this.getDeclaration().(NominalTypeDecl).getABaseType() } diff --git a/swift/ql/lib/codeql/swift/elements/type/TypeAliasType.qll b/swift/ql/lib/codeql/swift/elements/type/TypeAliasType.qll index 1d8e8fb1fd2..42d943d564e 100644 --- a/swift/ql/lib/codeql/swift/elements/type/TypeAliasType.qll +++ b/swift/ql/lib/codeql/swift/elements/type/TypeAliasType.qll @@ -1,6 +1,12 @@ private import codeql.swift.elements.type.Type private import codeql.swift.generated.type.TypeAliasType +/** + * A type alias to another type. For example: + * ``` + * typealias MyInt = Int + * ``` + */ class TypeAliasType extends Generated::TypeAliasType { /** * Gets the aliased type of this type alias type. From c78f5ce4cc275508ccac95e08170c40fafdd45a1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 12 Sep 2023 14:55:44 +0100 Subject: [PATCH 486/788] Swift: Move NominalType.getABaseType() implementation out from NominalType (inconsistent, difficult to find) to Type. --- swift/ql/lib/codeql/swift/elements/type/NominalType.qll | 8 +------- swift/ql/lib/codeql/swift/elements/type/Type.qll | 5 ++++- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/swift/ql/lib/codeql/swift/elements/type/NominalType.qll b/swift/ql/lib/codeql/swift/elements/type/NominalType.qll index 30775064bff..bea26b68486 100644 --- a/swift/ql/lib/codeql/swift/elements/type/NominalType.qll +++ b/swift/ql/lib/codeql/swift/elements/type/NominalType.qll @@ -1,12 +1,6 @@ private import codeql.swift.generated.type.NominalType -private import codeql.swift.elements.decl.NominalTypeDecl -private import codeql.swift.elements.type.Type /** * A class, struct, enum or protocol. */ -class NominalType extends Generated::NominalType { - override Type getABaseType() { result = this.getDeclaration().(NominalTypeDecl).getABaseType() } - - NominalType getADerivedType() { result.getABaseType() = this } -} +class NominalType extends Generated::NominalType { } diff --git a/swift/ql/lib/codeql/swift/elements/type/Type.qll b/swift/ql/lib/codeql/swift/elements/type/Type.qll index 9572229584a..00a1b467063 100644 --- a/swift/ql/lib/codeql/swift/elements/type/Type.qll +++ b/swift/ql/lib/codeql/swift/elements/type/Type.qll @@ -1,4 +1,5 @@ private import codeql.swift.generated.type.Type +private import codeql.swift.elements.type.AnyGenericType /** * A Swift type. @@ -53,5 +54,7 @@ class Type extends Generated::Type { * typealias B_alias = B * ``` */ - Type getABaseType() { none() } + Type getABaseType() { result = this.(AnyGenericType).getDeclaration().getABaseType() } + + Type getADerivedType() { result.getABaseType() = this } } From f604b28ab5b4e962dc7f9351eb57011016cdb9e5 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Sep 2023 19:32:29 +0100 Subject: [PATCH 487/788] Swift: Resolve type aliases (1) in base class declarations, not before them and (2) consistently. This is not behaviour preserving. --- .../codeql/swift/elements/decl/TypeDecl.qll | 28 +++++++++++++++---- .../lib/codeql/swift/elements/type/Type.qll | 20 ++++++++----- .../swift/elements/type/TypeAliasType.qll | 2 -- .../type/nominaltype/nominaltype.expected | 8 +++--- .../type/nominaltype/nominaltypedecl.expected | 4 +-- 5 files changed, 42 insertions(+), 20 deletions(-) diff --git a/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll b/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll index e89bbb921b4..898935c349f 100644 --- a/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll +++ b/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll @@ -35,11 +35,17 @@ class TypeDecl extends Generated::TypeDecl { deprecated Type getBaseType(int index) { result = this.getInheritedType(index) } /** - * Gets any of the base types of this type declaration. + * Gets any of the base types of this type declaration. Expands type aliases, for example + * in the following code, `B` has base type `A`. + * ``` + * typealias A_alias = A + * + * class B : A_alias {} + * ``` */ Type getABaseType() { - // TODO generalize this to resolve `TypeAliasDecl`s and consider bases added by extensions - result = this.getAnInheritedType() + // TODO generalize this to consider bases added by extensions + result = this.getAnInheritedType().getUnderlyingType() } /** @@ -51,7 +57,13 @@ class TypeDecl extends Generated::TypeDecl { } /** - * Gets the declaration of any of the base types of this type declaration. + * Gets the declaration of any of the base types of this type declaration. Expands type + * aliases, for example in the following code, `B` has base type decl `A`. + * ``` + * typealias A_alias = A + * + * class B : A_alias {} + * ``` */ TypeDecl getABaseTypeDecl() { result = this.getABaseType().(AnyGenericType).getDeclaration() } @@ -63,7 +75,13 @@ class TypeDecl extends Generated::TypeDecl { deprecated TypeDecl getDerivedTypeDecl(int i) { result.getBaseTypeDecl(i) = this } /** - * Gets the declaration of any type derived from this type declaration. + * Gets the declaration of any type derived from this type declaration. Expands type aliases, + * for example in the following code, `B` is derived from `A`. + * ``` + * typealias A_alias = A + * + * class B : A_alias {} + * ``` */ TypeDecl getADerivedTypeDecl() { result.getABaseTypeDecl() = this } diff --git a/swift/ql/lib/codeql/swift/elements/type/Type.qll b/swift/ql/lib/codeql/swift/elements/type/Type.qll index 00a1b467063..74e8d1fccc5 100644 --- a/swift/ql/lib/codeql/swift/elements/type/Type.qll +++ b/swift/ql/lib/codeql/swift/elements/type/Type.qll @@ -43,18 +43,24 @@ class Type extends Generated::Type { Type getUnderlyingType() { result = this } /** - * Gets any base type of this type. For a `typealias`, this is a base type - * of the aliased type. For example in the following code, both `B` and - * `B_alias` have base type `A`. + * Gets any base type of this type. Expands type aliases, for example in the following + * code, `B` has base type `A`. * ``` - * class A {} + * typealias A_alias = A * - * class B : A {} - * - * typealias B_alias = B + * class B : A_alias {} * ``` */ Type getABaseType() { result = this.(AnyGenericType).getDeclaration().getABaseType() } + /** + * Gets a type derived from this type. Expands type aliases, for example in the following + * code, `B` derives from type `A`. + * ``` + * typealias A_alias = A + * + * class B : A_alias {} + * ``` + */ Type getADerivedType() { result.getABaseType() = this } } diff --git a/swift/ql/lib/codeql/swift/elements/type/TypeAliasType.qll b/swift/ql/lib/codeql/swift/elements/type/TypeAliasType.qll index 42d943d564e..d9e9e4e2cbe 100644 --- a/swift/ql/lib/codeql/swift/elements/type/TypeAliasType.qll +++ b/swift/ql/lib/codeql/swift/elements/type/TypeAliasType.qll @@ -19,6 +19,4 @@ class TypeAliasType extends Generated::TypeAliasType { Type getAliasedType() { result = this.getDecl().getAliasedType() } override Type getUnderlyingType() { result = this.getAliasedType().getUnderlyingType() } - - override Type getABaseType() { result = this.getAliasedType().getABaseType() } } diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected index 35b87914c18..d3a59d9663b 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected @@ -4,13 +4,13 @@ | nominaltype.swift:87:6:87:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias, getUnderlyingType:A | | nominaltype.swift:88:6:88:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias, getUnderlyingType:A? | | nominaltype.swift:89:6:89:6 | b1 | B1 | getABaseType:A, getFullName:B1, getName:B1, getUnderlyingType:B1 | -| nominaltype.swift:90:6:90:6 | b2 | B2 | getABaseType:A_alias, getFullName:B2, getName:B2, getUnderlyingType:B2 | -| nominaltype.swift:91:6:91:6 | b1_alias | B1_alias | getABaseType:A, getAliasedType:B1, getFullName:B1_alias, getName:B1_alias, getUnderlyingType:B1 | -| nominaltype.swift:92:6:92:6 | b2_alias | B2_alias | getABaseType:A_alias, getAliasedType:B2, getFullName:B2_alias, getName:B2_alias, getUnderlyingType:B2 | +| nominaltype.swift:90:6:90:6 | b2 | B2 | getABaseType:A, getFullName:B2, getName:B2, getUnderlyingType:B2 | +| nominaltype.swift:91:6:91:6 | b1_alias | B1_alias | getAliasedType:B1, getFullName:B1_alias, getName:B1_alias, getUnderlyingType:B1 | +| nominaltype.swift:92:6:92:6 | b2_alias | B2_alias | getAliasedType:B2, getFullName:B2_alias, getName:B2_alias, getUnderlyingType:B2 | | nominaltype.swift:93:6:93:6 | p | P | getFullName:P, getName:P, getUnderlyingType:P | | nominaltype.swift:94:6:94:6 | p_alias | P_alias | getFullName:P_alias, getName:P_alias, getUnderlyingType:P_alias | | nominaltype.swift:95:6:95:6 | c1 | C1 | getABaseType:P, getFullName:C1, getName:C1, getUnderlyingType:C1 | -| nominaltype.swift:96:6:96:6 | c2 | C2 | getABaseType:P_alias, getFullName:C2, getName:C2, getUnderlyingType:C2 | +| nominaltype.swift:96:6:96:6 | c2 | C2 | getABaseType:P, getFullName:C2, getName:C2, getUnderlyingType:C2 | | nominaltype.swift:97:6:97:6 | o | Outer | getFullName:Outer, getName:Outer, getUnderlyingType:Outer | | nominaltype.swift:98:6:98:6 | oi | Outer.Inner | getFullName:Outer.Inner, getName:Inner, getUnderlyingType:Outer.Inner | | nominaltype.swift:99:6:99:6 | oia | Outer.Inner.InnerAlias | getAliasedType:A, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias, getUnderlyingType:A | diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected index 9a49fe5c67f..dbee369405c 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected @@ -3,11 +3,11 @@ | nominaltype.swift:87:6:87:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias | | nominaltype.swift:88:6:88:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias | | nominaltype.swift:89:6:89:6 | b1 | B1 | getABaseType:A, getABaseTypeDecl:A, getFullName:B1, getName:B1 | -| nominaltype.swift:90:6:90:6 | b2 | B2 | getABaseType:A_alias, getFullName:B2, getName:B2 | +| nominaltype.swift:90:6:90:6 | b2 | B2 | getABaseType:A, getABaseTypeDecl:A, getFullName:B2, getName:B2 | | nominaltype.swift:91:6:91:6 | b1_alias | B1_alias | getAliasedType:B1, getFullName:B1_alias, getName:B1_alias | | nominaltype.swift:92:6:92:6 | b2_alias | B2_alias | getAliasedType:B2, getFullName:B2_alias, getName:B2_alias | | nominaltype.swift:95:6:95:6 | c1 | C1 | getABaseType:P, getABaseTypeDecl:P, getFullName:C1, getName:C1 | -| nominaltype.swift:96:6:96:6 | c2 | C2 | getABaseType:P_alias, getFullName:C2, getName:C2 | +| nominaltype.swift:96:6:96:6 | c2 | C2 | getABaseType:P, getABaseTypeDecl:P, getFullName:C2, getName:C2 | | nominaltype.swift:97:6:97:6 | o | Outer | getFullName:Outer, getName:Outer | | nominaltype.swift:98:6:98:6 | oi | Inner | getFullName:Outer.Inner, getName:Inner | | nominaltype.swift:99:6:99:6 | oia | InnerAlias | getAliasedType:A, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias | From 37edcad1b0dd83a824df361ab23791c7fe5f811b Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Sep 2023 19:52:27 +0100 Subject: [PATCH 488/788] Swift: Go through protocols added in extensions also. --- .../codeql/swift/elements/decl/TypeDecl.qll | 23 +++++++++++++------ .../lib/codeql/swift/elements/type/Type.qll | 4 ++-- .../type/nominaltype/nominaltype.expected | 6 ++--- .../type/nominaltype/nominaltypedecl.expected | 6 ++--- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll b/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll index 898935c349f..e75e2ff9b40 100644 --- a/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll +++ b/swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll @@ -35,8 +35,9 @@ class TypeDecl extends Generated::TypeDecl { deprecated Type getBaseType(int index) { result = this.getInheritedType(index) } /** - * Gets any of the base types of this type declaration. Expands type aliases, for example - * in the following code, `B` has base type `A`. + * Gets any of the base types of this type declaration. Expands protocols added in + * extensions and expands type aliases. For example in the following code, `B` has + * base type `A`: * ``` * typealias A_alias = A * @@ -44,8 +45,14 @@ class TypeDecl extends Generated::TypeDecl { * ``` */ Type getABaseType() { - // TODO generalize this to consider bases added by extensions + // direct base type result = this.getAnInheritedType().getUnderlyingType() + or + // protocol added in an extension of the type + exists(ExtensionDecl ed | + ed.getExtendedTypeDecl() = this and + ed.getAProtocol().getType() = result + ) } /** @@ -57,8 +64,9 @@ class TypeDecl extends Generated::TypeDecl { } /** - * Gets the declaration of any of the base types of this type declaration. Expands type - * aliases, for example in the following code, `B` has base type decl `A`. + * Gets the declaration of any of the base types of this type declaration. Expands + * protocols added in extensions and expands type aliases. For example in the following + * code, `B` has base type `A`. * ``` * typealias A_alias = A * @@ -75,8 +83,9 @@ class TypeDecl extends Generated::TypeDecl { deprecated TypeDecl getDerivedTypeDecl(int i) { result.getBaseTypeDecl(i) = this } /** - * Gets the declaration of any type derived from this type declaration. Expands type aliases, - * for example in the following code, `B` is derived from `A`. + * Gets the declaration of any type derived from this type declaration. Expands protocols + * added in extensions and expands type aliases. For example in the following code, `B` + * is derived from `A`. * ``` * typealias A_alias = A * diff --git a/swift/ql/lib/codeql/swift/elements/type/Type.qll b/swift/ql/lib/codeql/swift/elements/type/Type.qll index 74e8d1fccc5..b5d30140e83 100644 --- a/swift/ql/lib/codeql/swift/elements/type/Type.qll +++ b/swift/ql/lib/codeql/swift/elements/type/Type.qll @@ -43,8 +43,8 @@ class Type extends Generated::Type { Type getUnderlyingType() { result = this } /** - * Gets any base type of this type. Expands type aliases, for example in the following - * code, `B` has base type `A`. + * Gets any base type of this type. Expands protocols added in extensions and expands + * type aliases. For example in the following code, `B` has base type `A`: * ``` * typealias A_alias = A * diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected index d3a59d9663b..4df2f5dcfdc 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltype.expected @@ -1,4 +1,4 @@ -| nominaltype.swift:84:6:84:6 | i | Int | getABaseType:FixedWidthInteger, getABaseType:SignedInteger, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getFullName:Int, getName:Int, getUnderlyingType:Int | +| nominaltype.swift:84:6:84:6 | i | Int | getABaseType:CVarArg, getABaseType:CodingKeyRepresentable, getABaseType:CustomReflectable, getABaseType:Decodable, getABaseType:Encodable, getABaseType:Equatable, getABaseType:FixedWidthInteger, getABaseType:Hashable, getABaseType:MirrorPath, getABaseType:SIMDScalar, getABaseType:Sendable, getABaseType:SignedInteger, getABaseType:_CustomPlaygroundQuickLookable, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getABaseType:_HasCustomAnyHashableRepresentation, getFullName:Int, getName:Int, getUnderlyingType:Int | | nominaltype.swift:85:6:85:6 | j | Any? | getFullName:Any?, getName:Any?, getUnderlyingType:Any? | | nominaltype.swift:86:6:86:6 | a | A | getFullName:A, getName:A, getUnderlyingType:A | | nominaltype.swift:87:6:87:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias, getUnderlyingType:A | @@ -16,5 +16,5 @@ | nominaltype.swift:99:6:99:6 | oia | Outer.Inner.InnerAlias | getAliasedType:A, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias, getUnderlyingType:A | | nominaltype.swift:100:6:100:6 | p1p2 | P1P2 | getFullName:P1P2, getName:P1P2, getUnderlyingType:P1P2 | | nominaltype.swift:101:6:101:6 | boxInt | Box | getFullName:Box, getName:Box, getUnderlyingType:Box | -| nominaltype.swift:102:6:102:6 | d1 | D1 | getFullName:D1, getName:D1, getUnderlyingType:D1 | -| nominaltype.swift:103:6:103:6 | d2 | D2 | getFullName:D2, getName:D2, getUnderlyingType:D2 | +| nominaltype.swift:102:6:102:6 | d1 | D1 | getABaseType:P3, getFullName:D1, getName:D1, getUnderlyingType:D1 | +| nominaltype.swift:103:6:103:6 | d2 | D2 | getABaseType:P4, getFullName:D2, getName:D2, getUnderlyingType:D2 | diff --git a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected index dbee369405c..e4bdf96ab7f 100644 --- a/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected +++ b/swift/ql/test/library-tests/elements/type/nominaltype/nominaltypedecl.expected @@ -1,4 +1,4 @@ -| nominaltype.swift:84:6:84:6 | i | Int | getABaseType:FixedWidthInteger, getABaseType:SignedInteger, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getABaseTypeDecl:FixedWidthInteger, getABaseTypeDecl:SignedInteger, getABaseTypeDecl:_ExpressibleByBuiltinIntegerLiteral, getFullName:Int, getName:Int | +| nominaltype.swift:84:6:84:6 | i | Int | getABaseType:CVarArg, getABaseType:CodingKeyRepresentable, getABaseType:CustomReflectable, getABaseType:Decodable, getABaseType:Encodable, getABaseType:Equatable, getABaseType:FixedWidthInteger, getABaseType:Hashable, getABaseType:MirrorPath, getABaseType:SIMDScalar, getABaseType:Sendable, getABaseType:SignedInteger, getABaseType:_CustomPlaygroundQuickLookable, getABaseType:_ExpressibleByBuiltinIntegerLiteral, getABaseType:_HasCustomAnyHashableRepresentation, getABaseTypeDecl:CVarArg, getABaseTypeDecl:CodingKeyRepresentable, getABaseTypeDecl:CustomReflectable, getABaseTypeDecl:Decodable, getABaseTypeDecl:Encodable, getABaseTypeDecl:Equatable, getABaseTypeDecl:FixedWidthInteger, getABaseTypeDecl:Hashable, getABaseTypeDecl:MirrorPath, getABaseTypeDecl:SIMDScalar, getABaseTypeDecl:Sendable, getABaseTypeDecl:SignedInteger, getABaseTypeDecl:_CustomPlaygroundQuickLookable, getABaseTypeDecl:_ExpressibleByBuiltinIntegerLiteral, getABaseTypeDecl:_HasCustomAnyHashableRepresentation, getFullName:Int, getName:Int | | nominaltype.swift:86:6:86:6 | a | A | getFullName:A, getName:A | | nominaltype.swift:87:6:87:6 | a_alias | A_alias | getAliasedType:A, getFullName:A_alias, getName:A_alias | | nominaltype.swift:88:6:88:6 | a_optional_alias | A_optional_alias | getAliasedType:A?, getFullName:A_optional_alias, getName:A_optional_alias | @@ -11,5 +11,5 @@ | nominaltype.swift:97:6:97:6 | o | Outer | getFullName:Outer, getName:Outer | | nominaltype.swift:98:6:98:6 | oi | Inner | getFullName:Outer.Inner, getName:Inner | | nominaltype.swift:99:6:99:6 | oia | InnerAlias | getAliasedType:A, getFullName:Outer.Inner.InnerAlias, getName:InnerAlias | -| nominaltype.swift:102:6:102:6 | d1 | D1 | getFullName:D1, getName:D1 | -| nominaltype.swift:103:6:103:6 | d2 | D2 | getFullName:D2, getName:D2 | +| nominaltype.swift:102:6:102:6 | d1 | D1 | getABaseType:P3, getABaseTypeDecl:P3, getFullName:D1, getName:D1 | +| nominaltype.swift:103:6:103:6 | d2 | D2 | getABaseType:P4, getABaseTypeDecl:P4, getFullName:D2, getName:D2 | From df29f3974bbb522e830d8e9828aed51c543b60ee Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Sep 2023 20:50:47 +0100 Subject: [PATCH 489/788] Swift: Update uses of getABaseType() and similar to do things correctly now. --- .../codeql/swift/dataflow/internal/TaintTrackingPublic.qll | 2 +- .../swift/security/CleartextStorageDatabaseExtensions.qll | 4 ++-- .../codeql/swift/security/CleartextStorageDatabaseQuery.qll | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPublic.qll b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPublic.qll index f2faec07be9..b6170db1b2a 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPublic.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPublic.qll @@ -31,7 +31,7 @@ predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::ContentSet cs) // So when the node is a `PostUpdateNode` we allow any sequence of implicit read steps of an appropriate // type to make sure we arrive at the sink with an empty access path. exists(NominalTypeDecl d, Decl cx | - node.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr().getType() = + node.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr().getType().getUnderlyingType() = d.getType().getABaseType*() and cx.asNominalTypeDecl() = d and cs.getAReadContent().(DataFlow::Content::FieldContent).getField() = cx.getAMember() diff --git a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll index cb7e8c53ec8..b8d20b3a56b 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll @@ -49,7 +49,7 @@ private class CoreDataStore extends CleartextStorageDatabaseSink { // with `coreDataObj.data` is a sink. // (ideally this would be only members with the `@NSManaged` attribute) exists(NominalType t, Expr e | - t.getABaseType*().getUnderlyingType().getName() = "NSManagedObject" and + t.getUnderlyingType().getABaseType*().getName() = "NSManagedObject" and this.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr() = e and e.getFullyConverted().getType() = t and not e.(DeclRefExpr).getDecl() instanceof SelfParamDecl @@ -67,7 +67,7 @@ private class RealmStore extends CleartextStorageDatabaseSink instanceof DataFlo // example in `realmObj.data = sensitive` the post-update node corresponding // with `realmObj.data` is a sink. exists(NominalType t, Expr e | - t.getABaseType*().getUnderlyingType().getName() = "RealmSwiftObject" and + t.getUnderlyingType().getABaseType*().getName() = "RealmSwiftObject" and this.getPreUpdateNode().asExpr() = e and e.getFullyConverted().getType() = t and not e.(DeclRefExpr).getDecl() instanceof SelfParamDecl diff --git a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll index fc8430ddc2e..9432887db9d 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll @@ -34,7 +34,7 @@ module CleartextStorageDatabaseConfig implements DataFlow::ConfigSig { // for example in `realmObj.data = sensitive`. isSink(node) and exists(NominalTypeDecl d, Decl cx | - d.getType().getABaseType*().getUnderlyingType().getName() = + d.getType().getUnderlyingType().getABaseType*().getName() = ["NSManagedObject", "RealmSwiftObject"] and cx.asNominalTypeDecl() = d and c.getAReadContent().(DataFlow::Content::FieldContent).getField() = cx.getAMember() From bcf990b362caa2e9367cdb0b52bea1dca7c9da14 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Sep 2023 22:04:39 +0100 Subject: [PATCH 490/788] Swift: Add change note. --- swift/ql/lib/change-notes/2023-09-18-get-a-base-type.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-09-18-get-a-base-type.md diff --git a/swift/ql/lib/change-notes/2023-09-18-get-a-base-type.md b/swift/ql/lib/change-notes/2023-09-18-get-a-base-type.md new file mode 100644 index 00000000000..482b8346b64 --- /dev/null +++ b/swift/ql/lib/change-notes/2023-09-18-get-a-base-type.md @@ -0,0 +1,9 @@ +--- +category: majorAnalysis +--- + +* The predicates `getABaseType`, `getABaseTypeDecl`, `getADerivedType` and `getADerivedTypeDecl` on `Type` and `TypeDecl` now behave more usefully and consistently. They now explore through type aliases used in base class declarations, and include protocols added in extensions. + +To examine base class declarations at a low level without these enhancements, use `TypeDecl.getInheritedType`. + +`Type.getABaseType` (only) previously resolved a type alias it was called directly on. This behaviour no longer exists. To find any base type of a type that could be an alias, the construct `Type.getUnderlyingType().getABaseType*()` is recommended. From 562dbf1b8d42b07635775df0a1dcdb39ee876693 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 19 Sep 2023 00:15:19 +0000 Subject: [PATCH 491/788] Add changed framework coverage reports --- java/documentation/library-coverage/coverage.csv | 11 +++++++++++ java/documentation/library-coverage/coverage.rst | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index ffa8ed5c7b5..5896aa87136 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -108,6 +108,17 @@ org.apache.commons.logging,6,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,, org.apache.commons.net,9,12,,,,,,,,,,,,,,,,,,3,,,,,,,,,6,,,,,,,,,,12,, org.apache.commons.ognl,6,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,, org.apache.commons.text,,,272,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,220,52 +org.apache.cxf.catalog,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, +org.apache.cxf.common.classloader,3,,,,,,,,,,,,,,,,,,,1,,,,,,,,,2,,,,,,,,,,,, +org.apache.cxf.common.jaxb,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.common.logging,6,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.configuration.jsse,2,,,,,,,,1,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.helpers,10,,,,,,,,,,,,,,,,,,,5,,,,,,,,,,,,,,,5,,,,,, +org.apache.cxf.resource,9,,,,,,,,,,,,,,,,,,,4,,,,,,,,,5,,,,,,,,,,,, +org.apache.cxf.staxutils,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.tools.corba.utils,4,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.tools.util,10,,,,,,,,,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.transform,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,, org.apache.directory.ldap.client.api,1,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, org.apache.hadoop.fs,,,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10, org.apache.hadoop.hive.metastore,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,,,, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index d926edff7b7..6e0018b095b 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -22,6 +22,6 @@ Java framework & library support Java extensions,"``javax.*``, ``jakarta.*``",67,681,40,4,4,,1,1,4 Kotlin Standard Library,``kotlin*``,,1849,16,14,,,,,2 `Spring `_,``org.springframework.*``,29,483,115,4,,28,14,,35 - Others,"``actions.osgi``, ``antlr``, ``cn.hutool.core.codec``, ``com.alibaba.druid.sql``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``com.thoughtworks.xstream``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.influxdb``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",126,10502,656,89,6,18,18,,200 - Totals,,287,18883,2148,288,16,122,33,1,393 + Others,"``actions.osgi``, ``antlr``, ``cn.hutool.core.codec``, ``com.alibaba.druid.sql``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``com.thoughtworks.xstream``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.influxdb``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",126,10502,706,116,6,18,18,,208 + Totals,,287,18883,2198,315,16,122,33,1,401 From f00b6e27a7c40ade0cf4fd85cea7a54c5d89b91c Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 5 Sep 2023 09:55:50 +0200 Subject: [PATCH 492/788] C#: Re-factor Dotnet to enable unit testing. --- .../DotNet.cs | 66 ++++--------------- .../DotnetCommand.cs | 61 +++++++++++++++++ .../IDotnetCommand.cs | 23 +++++++ 3 files changed, 98 insertions(+), 52 deletions(-) create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotnetCommand.cs diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs index ac8434f7b8f..8f1251b7e0e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs @@ -1,10 +1,8 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.IO; using System.Linq; using System.Text.RegularExpressions; -using Semmle.Util; namespace Semmle.Extraction.CSharp.DependencyFetching { @@ -13,65 +11,29 @@ namespace Semmle.Extraction.CSharp.DependencyFetching ///
    internal partial class DotNet : IDotNet { + private readonly IDotnetCommand dotnet; private readonly ProgressMonitor progressMonitor; - private readonly string dotnet; - public DotNet(IDependencyOptions options, ProgressMonitor progressMonitor) + internal DotNet(IDotnetCommand dotnet, ProgressMonitor progressMonitor) { this.progressMonitor = progressMonitor; - this.dotnet = Path.Combine(options.DotNetPath ?? string.Empty, "dotnet"); + this.dotnet = dotnet; Info(); } + public DotNet(IDependencyOptions options, ProgressMonitor progressMonitor) : this(new DotnetCommand(progressMonitor, Path.Combine(options.DotNetPath ?? string.Empty, "dotnet")), progressMonitor) { } + + private void Info() { // TODO: make sure the below `dotnet` version is matching the one specified in global.json - var res = RunCommand("--info"); + var res = dotnet.RunCommand("--info"); if (!res) { - throw new Exception($"{dotnet} --info failed."); + throw new Exception($"{dotnet.Exec} --info failed."); } } - private ProcessStartInfo MakeDotnetStartInfo(string args, bool redirectStandardOutput) - { - var startInfo = new ProcessStartInfo(dotnet, args) - { - UseShellExecute = false, - RedirectStandardOutput = redirectStandardOutput - }; - // Set the .NET CLI language to English to avoid localized output. - startInfo.EnvironmentVariables["DOTNET_CLI_UI_LANGUAGE"] = "en"; - return startInfo; - } - - private bool RunCommand(string args) - { - progressMonitor.RunningProcess($"{dotnet} {args}"); - using var proc = Process.Start(MakeDotnetStartInfo(args, redirectStandardOutput: false)); - proc?.WaitForExit(); - var exitCode = proc?.ExitCode ?? -1; - if (exitCode != 0) - { - progressMonitor.CommandFailed(dotnet, args, exitCode); - return false; - } - return true; - } - - private bool RunCommand(string args, out IList output) - { - progressMonitor.RunningProcess($"{dotnet} {args}"); - var pi = MakeDotnetStartInfo(args, redirectStandardOutput: true); - var exitCode = pi.ReadOutput(out output); - if (exitCode != 0) - { - progressMonitor.CommandFailed(dotnet, args, exitCode); - return false; - } - return true; - } - private static string GetRestoreArgs(string projectOrSolutionFile, string packageDirectory) => $"restore --no-dependencies \"{projectOrSolutionFile}\" --packages \"{packageDirectory}\" /p:DisableImplicitNuGetFallbackFolder=true"; @@ -82,7 +44,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { args += $" --configfile \"{pathToNugetConfig}\""; } - var success = RunCommand(args, out var output); + var success = dotnet.RunCommand(args, out var output); stdout = string.Join("\n", output); return success; } @@ -91,7 +53,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { var args = GetRestoreArgs(solutionFile, packageDirectory); args += " --verbosity normal"; - if (RunCommand(args, out var output)) + if (dotnet.RunCommand(args, out var output)) { var regex = RestoreProjectRegex(); projects = output @@ -108,13 +70,13 @@ namespace Semmle.Extraction.CSharp.DependencyFetching public bool New(string folder) { var args = $"new console --no-restore --output \"{folder}\""; - return RunCommand(args); + return dotnet.RunCommand(args); } public bool AddPackage(string folder, string package) { var args = $"add \"{folder}\" package \"{package}\" --no-restore"; - return RunCommand(args); + return dotnet.RunCommand(args); } public IList GetListedRuntimes() => GetListed("--list-runtimes", "runtime"); @@ -123,7 +85,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private IList GetListed(string args, string artifact) { - if (RunCommand(args, out var artifacts)) + if (dotnet.RunCommand(args, out var artifacts)) { progressMonitor.LogInfo($"Found {artifact}s: {string.Join("\n", artifacts)}"); return artifacts; @@ -134,7 +96,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching public bool Exec(string execArgs) { var args = $"exec {execArgs}"; - return RunCommand(args); + return dotnet.RunCommand(args); } [GeneratedRegex("Restored\\s+(.+\\.csproj)", RegexOptions.Compiled)] diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs new file mode 100644 index 00000000000..7805f0edd45 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs @@ -0,0 +1,61 @@ +using System.Collections.Generic; +using System.Diagnostics; +using Semmle.Util; + +namespace Semmle.Extraction.CSharp.DependencyFetching +{ + /// + /// Low level utilities to run the "dotnet" command. + /// + internal sealed class DotnetCommand : IDotnetCommand + { + private readonly ProgressMonitor progressMonitor; + + public string Exec { get; } + + public DotnetCommand(ProgressMonitor progressMonitor, string exec) + { + this.progressMonitor = progressMonitor; + this.Exec = exec; + } + + private ProcessStartInfo MakeDotnetStartInfo(string args, bool redirectStandardOutput) + { + var startInfo = new ProcessStartInfo(Exec, args) + { + UseShellExecute = false, + RedirectStandardOutput = redirectStandardOutput + }; + // Set the .NET CLI language to English to avoid localized output. + startInfo.EnvironmentVariables["DOTNET_CLI_UI_LANGUAGE"] = "en"; + return startInfo; + } + + public bool RunCommand(string args) + { + progressMonitor.RunningProcess($"{Exec} {args}"); + using var proc = Process.Start(MakeDotnetStartInfo(args, redirectStandardOutput: false)); + proc?.WaitForExit(); + var exitCode = proc?.ExitCode ?? -1; + if (exitCode != 0) + { + progressMonitor.CommandFailed(Exec, args, exitCode); + return false; + } + return true; + } + + public bool RunCommand(string args, out IList output) + { + progressMonitor.RunningProcess($"{Exec} {args}"); + var pi = MakeDotnetStartInfo(args, redirectStandardOutput: true); + var exitCode = pi.ReadOutput(out output); + if (exitCode != 0) + { + progressMonitor.CommandFailed(Exec, args, exitCode); + return false; + } + return true; + } + } +} diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotnetCommand.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotnetCommand.cs new file mode 100644 index 00000000000..d3b5d25f601 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotnetCommand.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; + +namespace Semmle.Extraction.CSharp.DependencyFetching +{ + internal interface IDotnetCommand + { + /// + /// The name of the dotnet executable. + /// + string Exec { get; } + + /// + /// Execute `dotnet ` and return true if the command succeeded, otherwise false. + /// + bool RunCommand(string args); + + /// + /// Execute `dotnet ` and return true if the command succeeded, otherwise false. + /// The output of the command is returned in `output`. + /// + bool RunCommand(string args, out IList output); + } +} From d60055b148416a3fc26d9430b287787c748e0357 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 5 Sep 2023 10:47:05 +0200 Subject: [PATCH 493/788] C#: Add unit tests for DotNet. --- .../Semmle.Extraction.Tests/DotNet.cs | 240 ++++++++++++++++++ .../Semmle.Extraction.Tests/FileContent.cs | 9 - .../Semmle.Extraction.Tests/LoggerStub.cs | 11 + 3 files changed, 251 insertions(+), 9 deletions(-) create mode 100644 csharp/extractor/Semmle.Extraction.Tests/DotNet.cs create mode 100644 csharp/extractor/Semmle.Extraction.Tests/LoggerStub.cs diff --git a/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs b/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs new file mode 100644 index 00000000000..ee0f9673c28 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs @@ -0,0 +1,240 @@ +using Xunit; +using System.Collections.Generic; +using Semmle.Extraction.CSharp.DependencyFetching; +using System; +using System.Linq; + +namespace Semmle.Extraction.Tests +{ + internal class DotnetCommandStub : IDotnetCommand + { + private readonly IList output; + private string lastArgs = ""; + public bool Success { get; set; } = true; + + public DotnetCommandStub(IList output) + { + this.output = output; + } + + public string Exec => "dotnet"; + + public bool RunCommand(string args) + { + lastArgs = args; + return Success; + } + + public bool RunCommand(string args, out IList output) + { + lastArgs = args; + output = this.output; + return Success; + } + + public string GetLastArgs() => lastArgs; + } + + public class DotNetTests + { + + private static IDotNet MakeDotnet(IDotnetCommand dotnetCommand) => + new DotNet(dotnetCommand, new ProgressMonitor(new LoggerStub())); + + private static IList MakeDotnetRestoreOutput() => + new List { + " Determining projects to restore...", + " Restored /path/to/project.csproj (in 1.23 sec).", + " Other output...", + " More output...", + " Restored /path/to/project2.csproj (in 4.56 sec).", + " Other output...", + }; + + private static IList MakeDotnetListRuntimesOutput() => + new List { + "Microsoft.AspNetCore.App 7.0.2 [/path/dotnet/shared/Microsoft.AspNetCore.App]", + "Microsoft.NETCore.App 7.0.2 [/path/dotnet/shared/Microsoft.NETCore.App]" + }; + + [Fact] + public void TestDotnetInfo() + { + // Setup + var dotnetCommand = new DotnetCommandStub(new List()); + + // Execute + var _ = MakeDotnet(dotnetCommand); + + // Verify + var lastArgs = dotnetCommand.GetLastArgs(); + Assert.Equal("--info", lastArgs); + } + + [Fact] + public void TestDotnetInfoFailure() + { + // Setup + var dotnetCommand = new DotnetCommandStub(new List()) { Success = false }; + + // Execute + try + { + var _ = MakeDotnet(dotnetCommand); + } + + // Verify + catch (Exception e) + { + Assert.Equal("dotnet --info failed.", e.Message); + return; + } + Assert.Fail("Expected exception"); + } + + [Fact] + public void TestDotnetRestoreProjectToDirectory1() + { + // Setup + var dotnetCommand = new DotnetCommandStub(new List()); + var dotnet = MakeDotnet(dotnetCommand); + + // Execute + dotnet.RestoreProjectToDirectory("myproject.csproj", "mypackages", out var _); + + // Verify + var lastArgs = dotnetCommand.GetLastArgs(); + Assert.Equal("restore --no-dependencies \"myproject.csproj\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true", lastArgs); + } + + [Fact] + public void TestDotnetRestoreProjectToDirectory2() + { + // Setup + var dotnetCommand = new DotnetCommandStub(new List()); + var dotnet = MakeDotnet(dotnetCommand); + + // Execute + dotnet.RestoreProjectToDirectory("myproject.csproj", "mypackages", out var _, "myconfig.config"); + + // Verify + var lastArgs = dotnetCommand.GetLastArgs(); + Assert.Equal("restore --no-dependencies \"myproject.csproj\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --configfile \"myconfig.config\"", lastArgs); + } + + [Fact] + public void TestDotnetRestoreSolutionToDirectory1() + { + // Setup + var dotnetCommand = new DotnetCommandStub(MakeDotnetRestoreOutput()); + var dotnet = MakeDotnet(dotnetCommand); + + // Execute + dotnet.RestoreSolutionToDirectory("mysolution.sln", "mypackages", out var projects); + + // Verify + var lastArgs = dotnetCommand.GetLastArgs(); + Assert.Equal("restore --no-dependencies \"mysolution.sln\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal", lastArgs); + Assert.Equal(2, projects.Count()); + Assert.Contains("/path/to/project.csproj", projects); + Assert.Contains("/path/to/project2.csproj", projects); + } + + [Fact] + public void TestDotnetRestoreSolutionToDirectory2() + { + // Setup + var dotnetCommand = new DotnetCommandStub(MakeDotnetRestoreOutput()); + var dotnet = MakeDotnet(dotnetCommand); + dotnetCommand.Success = false; + + // Execute + dotnet.RestoreSolutionToDirectory("mysolution.sln", "mypackages", out var projects); + + // Verify + var lastArgs = dotnetCommand.GetLastArgs(); + Assert.Equal("restore --no-dependencies \"mysolution.sln\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal", lastArgs); + Assert.Empty(projects); + } + + [Fact] + public void TestDotnetNew() + { + // Setup + var dotnetCommand = new DotnetCommandStub(new List()); + var dotnet = MakeDotnet(dotnetCommand); + + // Execute + dotnet.New("myfolder"); + + // Verify + var lastArgs = dotnetCommand.GetLastArgs(); + Assert.Equal("new console --no-restore --output \"myfolder\"", lastArgs); + } + + [Fact] + public void TestDotnetAddPackage() + { + // Setup + var dotnetCommand = new DotnetCommandStub(new List()); + var dotnet = MakeDotnet(dotnetCommand); + + // Execute + dotnet.AddPackage("myfolder", "mypackage"); + + // Verify + var lastArgs = dotnetCommand.GetLastArgs(); + Assert.Equal("add \"myfolder\" package \"mypackage\" --no-restore", lastArgs); + } + + [Fact] + public void TestDotnetGetListedRuntimes1() + { + // Setup + var dotnetCommand = new DotnetCommandStub(MakeDotnetListRuntimesOutput()); + var dotnet = MakeDotnet(dotnetCommand); + + // Execute + var runtimes = dotnet.GetListedRuntimes(); + + // Verify + var lastArgs = dotnetCommand.GetLastArgs(); + Assert.Equal("--list-runtimes", lastArgs); + Assert.Equal(2, runtimes.Count); + Assert.Contains("Microsoft.AspNetCore.App 7.0.2 [/path/dotnet/shared/Microsoft.AspNetCore.App]", runtimes); + Assert.Contains("Microsoft.NETCore.App 7.0.2 [/path/dotnet/shared/Microsoft.NETCore.App]", runtimes); + } + + [Fact] + public void TestDotnetGetListedRuntimes2() + { + // Setup + var dotnetCommand = new DotnetCommandStub(MakeDotnetListRuntimesOutput()); + var dotnet = MakeDotnet(dotnetCommand); + dotnetCommand.Success = false; + + // Execute + var runtimes = dotnet.GetListedRuntimes(); + + // Verify + var lastArgs = dotnetCommand.GetLastArgs(); + Assert.Equal("--list-runtimes", lastArgs); + Assert.Empty(runtimes); + } + + [Fact] + public void TestDotnetExec() + { + // Setup + var dotnetCommand = new DotnetCommandStub(new List()); + var dotnet = MakeDotnet(dotnetCommand); + + // Execute + dotnet.Exec("myarg1 myarg2"); + + // Verify + var lastArgs = dotnetCommand.GetLastArgs(); + Assert.Equal("exec myarg1 myarg2", lastArgs); + } + } +} diff --git a/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs b/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs index e6915900e2b..4c50cfaa8d1 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs @@ -1,18 +1,9 @@ using Xunit; using System.Collections.Generic; -using Semmle.Util.Logging; using Semmle.Extraction.CSharp.DependencyFetching; namespace Semmle.Extraction.Tests { - - internal class LoggerStub : ILogger - { - public void Log(Severity severity, string message) { } - - public void Dispose() { } - } - internal class UnsafeFileReaderStub : IUnsafeFileReader { private readonly List lines; diff --git a/csharp/extractor/Semmle.Extraction.Tests/LoggerStub.cs b/csharp/extractor/Semmle.Extraction.Tests/LoggerStub.cs new file mode 100644 index 00000000000..78e85b8d60f --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.Tests/LoggerStub.cs @@ -0,0 +1,11 @@ +using Semmle.Util.Logging; + +namespace Semmle.Extraction.Tests +{ + internal class LoggerStub : ILogger + { + public void Log(Severity severity, string message) { } + + public void Dispose() { } + } +} From 05c5f3e0506e9035b3ada402fb06a4b008c4c029 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 15 Sep 2023 11:49:07 +0200 Subject: [PATCH 494/788] C#: Make ReadOutput more robust and re-factor RunCommand methods. --- .../DotnetCommand.cs | 24 +++++++------------ .../Semmle.Util/ProcessStartInfoExtensions.cs | 17 ++++++++----- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs index 7805f0edd45..826cf57e737 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs @@ -31,24 +31,10 @@ namespace Semmle.Extraction.CSharp.DependencyFetching return startInfo; } - public bool RunCommand(string args) + private bool RunCommandAux(string args, bool redirectStandardOutput, out IList output) { progressMonitor.RunningProcess($"{Exec} {args}"); - using var proc = Process.Start(MakeDotnetStartInfo(args, redirectStandardOutput: false)); - proc?.WaitForExit(); - var exitCode = proc?.ExitCode ?? -1; - if (exitCode != 0) - { - progressMonitor.CommandFailed(Exec, args, exitCode); - return false; - } - return true; - } - - public bool RunCommand(string args, out IList output) - { - progressMonitor.RunningProcess($"{Exec} {args}"); - var pi = MakeDotnetStartInfo(args, redirectStandardOutput: true); + var pi = MakeDotnetStartInfo(args, redirectStandardOutput); var exitCode = pi.ReadOutput(out output); if (exitCode != 0) { @@ -57,5 +43,11 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } return true; } + + public bool RunCommand(string args) => + RunCommandAux(args, redirectStandardOutput: false, out _); + + public bool RunCommand(string args, out IList output) => + RunCommandAux(args, redirectStandardOutput: true, out output); } } diff --git a/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs b/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs index ac1dc1cb148..8c58fb1876b 100644 --- a/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs +++ b/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs @@ -19,14 +19,19 @@ namespace Semmle.Util return -1; } - string? s; - do + if (pi.RedirectStandardOutput && !pi.UseShellExecute) { - s = process.StandardOutput.ReadLine(); - if (s is not null) - stdout.Add(s); + string? s; + do + { + s = process.StandardOutput.ReadLine(); + if (s is not null) + { + stdout.Add(s); + } + } + while (s is not null); } - while (s is not null); process.WaitForExit(); return process.ExitCode; } From 82e56e6dae2a4e569405db2760c9a48f31675006 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 15 Sep 2023 13:52:17 +0200 Subject: [PATCH 495/788] C#: Rename DotnetCommand to DotNetCliInvoker. --- .../DotNet.cs | 6 +- .../{DotnetCommand.cs => DotNetCliInvoker.cs} | 4 +- ...IDotnetCommand.cs => IDotNetCliInvoker.cs} | 2 +- .../Semmle.Extraction.Tests/DotNet.cs | 76 +++++++++---------- 4 files changed, 44 insertions(+), 44 deletions(-) rename csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/{DotnetCommand.cs => DotNetCliInvoker.cs} (92%) rename csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/{IDotnetCommand.cs => IDotNetCliInvoker.cs} (94%) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs index 8f1251b7e0e..28f994766d3 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs @@ -11,17 +11,17 @@ namespace Semmle.Extraction.CSharp.DependencyFetching ///
    internal partial class DotNet : IDotNet { - private readonly IDotnetCommand dotnet; + private readonly IDotNetCliInvoker dotnet; private readonly ProgressMonitor progressMonitor; - internal DotNet(IDotnetCommand dotnet, ProgressMonitor progressMonitor) + internal DotNet(IDotNetCliInvoker dotnet, ProgressMonitor progressMonitor) { this.progressMonitor = progressMonitor; this.dotnet = dotnet; Info(); } - public DotNet(IDependencyOptions options, ProgressMonitor progressMonitor) : this(new DotnetCommand(progressMonitor, Path.Combine(options.DotNetPath ?? string.Empty, "dotnet")), progressMonitor) { } + public DotNet(IDependencyOptions options, ProgressMonitor progressMonitor) : this(new DotNetCliInvoker(progressMonitor, Path.Combine(options.DotNetPath ?? string.Empty, "dotnet")), progressMonitor) { } private void Info() diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs similarity index 92% rename from csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs rename to csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs index 826cf57e737..4a461e18f7b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetCommand.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs @@ -7,13 +7,13 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// /// Low level utilities to run the "dotnet" command. /// - internal sealed class DotnetCommand : IDotnetCommand + internal sealed class DotNetCliInvoker : IDotNetCliInvoker { private readonly ProgressMonitor progressMonitor; public string Exec { get; } - public DotnetCommand(ProgressMonitor progressMonitor, string exec) + public DotNetCliInvoker(ProgressMonitor progressMonitor, string exec) { this.progressMonitor = progressMonitor; this.Exec = exec; diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotnetCommand.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNetCliInvoker.cs similarity index 94% rename from csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotnetCommand.cs rename to csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNetCliInvoker.cs index d3b5d25f601..aad4a28a401 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotnetCommand.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNetCliInvoker.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; namespace Semmle.Extraction.CSharp.DependencyFetching { - internal interface IDotnetCommand + internal interface IDotNetCliInvoker { /// /// The name of the dotnet executable. diff --git a/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs b/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs index ee0f9673c28..4ded8cbef94 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs @@ -6,13 +6,13 @@ using System.Linq; namespace Semmle.Extraction.Tests { - internal class DotnetCommandStub : IDotnetCommand + internal class DotNetCliInvokerStub : IDotNetCliInvoker { private readonly IList output; private string lastArgs = ""; public bool Success { get; set; } = true; - public DotnetCommandStub(IList output) + public DotNetCliInvokerStub(IList output) { this.output = output; } @@ -38,8 +38,8 @@ namespace Semmle.Extraction.Tests public class DotNetTests { - private static IDotNet MakeDotnet(IDotnetCommand dotnetCommand) => - new DotNet(dotnetCommand, new ProgressMonitor(new LoggerStub())); + private static IDotNet MakeDotnet(IDotNetCliInvoker dotnetCliInvoker) => + new DotNet(dotnetCliInvoker, new ProgressMonitor(new LoggerStub())); private static IList MakeDotnetRestoreOutput() => new List { @@ -61,13 +61,13 @@ namespace Semmle.Extraction.Tests public void TestDotnetInfo() { // Setup - var dotnetCommand = new DotnetCommandStub(new List()); + var dotnetCliInvoker = new DotNetCliInvokerStub(new List()); // Execute - var _ = MakeDotnet(dotnetCommand); + var _ = MakeDotnet(dotnetCliInvoker); // Verify - var lastArgs = dotnetCommand.GetLastArgs(); + var lastArgs = dotnetCliInvoker.GetLastArgs(); Assert.Equal("--info", lastArgs); } @@ -75,12 +75,12 @@ namespace Semmle.Extraction.Tests public void TestDotnetInfoFailure() { // Setup - var dotnetCommand = new DotnetCommandStub(new List()) { Success = false }; + var dotnetCliInvoker = new DotNetCliInvokerStub(new List()) { Success = false }; // Execute try { - var _ = MakeDotnet(dotnetCommand); + var _ = MakeDotnet(dotnetCliInvoker); } // Verify @@ -96,14 +96,14 @@ namespace Semmle.Extraction.Tests public void TestDotnetRestoreProjectToDirectory1() { // Setup - var dotnetCommand = new DotnetCommandStub(new List()); - var dotnet = MakeDotnet(dotnetCommand); + var dotnetCliInvoker = new DotNetCliInvokerStub(new List()); + var dotnet = MakeDotnet(dotnetCliInvoker); // Execute dotnet.RestoreProjectToDirectory("myproject.csproj", "mypackages", out var _); // Verify - var lastArgs = dotnetCommand.GetLastArgs(); + var lastArgs = dotnetCliInvoker.GetLastArgs(); Assert.Equal("restore --no-dependencies \"myproject.csproj\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true", lastArgs); } @@ -111,14 +111,14 @@ namespace Semmle.Extraction.Tests public void TestDotnetRestoreProjectToDirectory2() { // Setup - var dotnetCommand = new DotnetCommandStub(new List()); - var dotnet = MakeDotnet(dotnetCommand); + var dotnetCliInvoker = new DotNetCliInvokerStub(new List()); + var dotnet = MakeDotnet(dotnetCliInvoker); // Execute dotnet.RestoreProjectToDirectory("myproject.csproj", "mypackages", out var _, "myconfig.config"); // Verify - var lastArgs = dotnetCommand.GetLastArgs(); + var lastArgs = dotnetCliInvoker.GetLastArgs(); Assert.Equal("restore --no-dependencies \"myproject.csproj\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --configfile \"myconfig.config\"", lastArgs); } @@ -126,14 +126,14 @@ namespace Semmle.Extraction.Tests public void TestDotnetRestoreSolutionToDirectory1() { // Setup - var dotnetCommand = new DotnetCommandStub(MakeDotnetRestoreOutput()); - var dotnet = MakeDotnet(dotnetCommand); + var dotnetCliInvoker = new DotNetCliInvokerStub(MakeDotnetRestoreOutput()); + var dotnet = MakeDotnet(dotnetCliInvoker); // Execute dotnet.RestoreSolutionToDirectory("mysolution.sln", "mypackages", out var projects); // Verify - var lastArgs = dotnetCommand.GetLastArgs(); + var lastArgs = dotnetCliInvoker.GetLastArgs(); Assert.Equal("restore --no-dependencies \"mysolution.sln\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal", lastArgs); Assert.Equal(2, projects.Count()); Assert.Contains("/path/to/project.csproj", projects); @@ -144,15 +144,15 @@ namespace Semmle.Extraction.Tests public void TestDotnetRestoreSolutionToDirectory2() { // Setup - var dotnetCommand = new DotnetCommandStub(MakeDotnetRestoreOutput()); - var dotnet = MakeDotnet(dotnetCommand); - dotnetCommand.Success = false; + var dotnetCliInvoker = new DotNetCliInvokerStub(MakeDotnetRestoreOutput()); + var dotnet = MakeDotnet(dotnetCliInvoker); + dotnetCliInvoker.Success = false; // Execute dotnet.RestoreSolutionToDirectory("mysolution.sln", "mypackages", out var projects); // Verify - var lastArgs = dotnetCommand.GetLastArgs(); + var lastArgs = dotnetCliInvoker.GetLastArgs(); Assert.Equal("restore --no-dependencies \"mysolution.sln\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal", lastArgs); Assert.Empty(projects); } @@ -161,14 +161,14 @@ namespace Semmle.Extraction.Tests public void TestDotnetNew() { // Setup - var dotnetCommand = new DotnetCommandStub(new List()); - var dotnet = MakeDotnet(dotnetCommand); + var dotnetCliInvoker = new DotNetCliInvokerStub(new List()); + var dotnet = MakeDotnet(dotnetCliInvoker); // Execute dotnet.New("myfolder"); // Verify - var lastArgs = dotnetCommand.GetLastArgs(); + var lastArgs = dotnetCliInvoker.GetLastArgs(); Assert.Equal("new console --no-restore --output \"myfolder\"", lastArgs); } @@ -176,14 +176,14 @@ namespace Semmle.Extraction.Tests public void TestDotnetAddPackage() { // Setup - var dotnetCommand = new DotnetCommandStub(new List()); - var dotnet = MakeDotnet(dotnetCommand); + var dotnetCliInvoker = new DotNetCliInvokerStub(new List()); + var dotnet = MakeDotnet(dotnetCliInvoker); // Execute dotnet.AddPackage("myfolder", "mypackage"); // Verify - var lastArgs = dotnetCommand.GetLastArgs(); + var lastArgs = dotnetCliInvoker.GetLastArgs(); Assert.Equal("add \"myfolder\" package \"mypackage\" --no-restore", lastArgs); } @@ -191,14 +191,14 @@ namespace Semmle.Extraction.Tests public void TestDotnetGetListedRuntimes1() { // Setup - var dotnetCommand = new DotnetCommandStub(MakeDotnetListRuntimesOutput()); - var dotnet = MakeDotnet(dotnetCommand); + var dotnetCliInvoker = new DotNetCliInvokerStub(MakeDotnetListRuntimesOutput()); + var dotnet = MakeDotnet(dotnetCliInvoker); // Execute var runtimes = dotnet.GetListedRuntimes(); // Verify - var lastArgs = dotnetCommand.GetLastArgs(); + var lastArgs = dotnetCliInvoker.GetLastArgs(); Assert.Equal("--list-runtimes", lastArgs); Assert.Equal(2, runtimes.Count); Assert.Contains("Microsoft.AspNetCore.App 7.0.2 [/path/dotnet/shared/Microsoft.AspNetCore.App]", runtimes); @@ -209,15 +209,15 @@ namespace Semmle.Extraction.Tests public void TestDotnetGetListedRuntimes2() { // Setup - var dotnetCommand = new DotnetCommandStub(MakeDotnetListRuntimesOutput()); - var dotnet = MakeDotnet(dotnetCommand); - dotnetCommand.Success = false; + var dotnetCliInvoker = new DotNetCliInvokerStub(MakeDotnetListRuntimesOutput()); + var dotnet = MakeDotnet(dotnetCliInvoker); + dotnetCliInvoker.Success = false; // Execute var runtimes = dotnet.GetListedRuntimes(); // Verify - var lastArgs = dotnetCommand.GetLastArgs(); + var lastArgs = dotnetCliInvoker.GetLastArgs(); Assert.Equal("--list-runtimes", lastArgs); Assert.Empty(runtimes); } @@ -226,14 +226,14 @@ namespace Semmle.Extraction.Tests public void TestDotnetExec() { // Setup - var dotnetCommand = new DotnetCommandStub(new List()); - var dotnet = MakeDotnet(dotnetCommand); + var dotnetCliInvoker = new DotNetCliInvokerStub(new List()); + var dotnet = MakeDotnet(dotnetCliInvoker); // Execute dotnet.Exec("myarg1 myarg2"); // Verify - var lastArgs = dotnetCommand.GetLastArgs(); + var lastArgs = dotnetCliInvoker.GetLastArgs(); Assert.Equal("exec myarg1 myarg2", lastArgs); } } From 1fd85f4fe3528a341c4fb2da00698c8c39be4d69 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 15 Sep 2023 14:13:09 +0200 Subject: [PATCH 496/788] C#: Rename DotNet to DotNetCliWrapper. --- .../DependencyManager.cs | 4 ++-- .../{DotNet.cs => DotNetCliWrapper.cs} | 6 +++--- .../Semmle.Extraction.CSharp.DependencyFetching/Razor.cs | 4 ++-- .../{DotNet.cs => DotNetCliWrapper.cs} | 5 ++--- 4 files changed, 9 insertions(+), 10 deletions(-) rename csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/{DotNet.cs => DotNetCliWrapper.cs} (90%) rename csharp/extractor/Semmle.Extraction.Tests/{DotNet.cs => DotNetCliWrapper.cs} (98%) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index e8d9b7760c7..35dc463e30c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -27,7 +27,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private int conflictedReferences = 0; private readonly IDependencyOptions options; private readonly DirectoryInfo sourceDir; - private readonly DotNet dotnet; + private readonly DotNetCliWrapper dotnet; private readonly FileContent fileContent; private readonly TemporaryDirectory packageDirectory; private readonly TemporaryDirectory tempWorkingDirectory; @@ -47,7 +47,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching try { - this.dotnet = new DotNet(options, progressMonitor); + this.dotnet = new DotNetCliWrapper(options, progressMonitor); } catch { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliWrapper.cs similarity index 90% rename from csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs rename to csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliWrapper.cs index 28f994766d3..29dfe287bbb 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliWrapper.cs @@ -9,19 +9,19 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// /// Utilities to run the "dotnet" command. /// - internal partial class DotNet : IDotNet + internal partial class DotNetCliWrapper : IDotNet { private readonly IDotNetCliInvoker dotnet; private readonly ProgressMonitor progressMonitor; - internal DotNet(IDotNetCliInvoker dotnet, ProgressMonitor progressMonitor) + internal DotNetCliWrapper(IDotNetCliInvoker dotnet, ProgressMonitor progressMonitor) { this.progressMonitor = progressMonitor; this.dotnet = dotnet; Info(); } - public DotNet(IDependencyOptions options, ProgressMonitor progressMonitor) : this(new DotNetCliInvoker(progressMonitor, Path.Combine(options.DotNetPath ?? string.Empty, "dotnet")), progressMonitor) { } + public DotNetCliWrapper(IDependencyOptions options, ProgressMonitor progressMonitor) : this(new DotNetCliInvoker(progressMonitor, Path.Combine(options.DotNetPath ?? string.Empty, "dotnet")), progressMonitor) { } private void Info() diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs index 1cfe6b18791..79bfe44657d 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs @@ -10,11 +10,11 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { private readonly DotnetVersion sdk; private readonly ProgressMonitor progressMonitor; - private readonly DotNet dotNet; + private readonly DotNetCliWrapper dotNet; private readonly string sourceGeneratorFolder; private readonly string cscPath; - public Razor(DotnetVersion sdk, DotNet dotNet, ProgressMonitor progressMonitor) + public Razor(DotnetVersion sdk, DotNetCliWrapper dotNet, ProgressMonitor progressMonitor) { this.sdk = sdk; this.progressMonitor = progressMonitor; diff --git a/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs b/csharp/extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs similarity index 98% rename from csharp/extractor/Semmle.Extraction.Tests/DotNet.cs rename to csharp/extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs index 4ded8cbef94..ddfd8696dcc 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs @@ -35,11 +35,10 @@ namespace Semmle.Extraction.Tests public string GetLastArgs() => lastArgs; } - public class DotNetTests + public class DotNetCliWrapperTests { - private static IDotNet MakeDotnet(IDotNetCliInvoker dotnetCliInvoker) => - new DotNet(dotnetCliInvoker, new ProgressMonitor(new LoggerStub())); + new DotNetCliWrapper(dotnetCliInvoker, new ProgressMonitor(new LoggerStub())); private static IList MakeDotnetRestoreOutput() => new List { From 31327f4f731639a1728f6ffab253727dedb149d2 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 15 Sep 2023 14:25:49 +0200 Subject: [PATCH 497/788] C#: Only access the DotNetCliWrapper using the IDotNet interface. --- .../DependencyManager.cs | 4 ++-- .../DotNetCliWrapper.cs | 7 +++++-- .../Semmle.Extraction.CSharp.DependencyFetching/Razor.cs | 4 ++-- .../extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 35dc463e30c..239553b30e8 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -27,7 +27,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private int conflictedReferences = 0; private readonly IDependencyOptions options; private readonly DirectoryInfo sourceDir; - private readonly DotNetCliWrapper dotnet; + private readonly IDotNet dotnet; private readonly FileContent fileContent; private readonly TemporaryDirectory packageDirectory; private readonly TemporaryDirectory tempWorkingDirectory; @@ -47,7 +47,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching try { - this.dotnet = new DotNetCliWrapper(options, progressMonitor); + this.dotnet = DotNetCliWrapper.Make(options, progressMonitor); } catch { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliWrapper.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliWrapper.cs index 29dfe287bbb..b11945aec40 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliWrapper.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliWrapper.cs @@ -14,15 +14,18 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private readonly IDotNetCliInvoker dotnet; private readonly ProgressMonitor progressMonitor; - internal DotNetCliWrapper(IDotNetCliInvoker dotnet, ProgressMonitor progressMonitor) + private DotNetCliWrapper(IDotNetCliInvoker dotnet, ProgressMonitor progressMonitor) { this.progressMonitor = progressMonitor; this.dotnet = dotnet; Info(); } - public DotNetCliWrapper(IDependencyOptions options, ProgressMonitor progressMonitor) : this(new DotNetCliInvoker(progressMonitor, Path.Combine(options.DotNetPath ?? string.Empty, "dotnet")), progressMonitor) { } + private DotNetCliWrapper(IDependencyOptions options, ProgressMonitor progressMonitor) : this(new DotNetCliInvoker(progressMonitor, Path.Combine(options.DotNetPath ?? string.Empty, "dotnet")), progressMonitor) { } + internal static IDotNet Make(IDotNetCliInvoker dotnet, ProgressMonitor progressMonitor) => new DotNetCliWrapper(dotnet, progressMonitor); + + public static IDotNet Make(IDependencyOptions options, ProgressMonitor progressMonitor) => new DotNetCliWrapper(options, progressMonitor); private void Info() { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs index 79bfe44657d..4346d0af494 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs @@ -10,11 +10,11 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { private readonly DotnetVersion sdk; private readonly ProgressMonitor progressMonitor; - private readonly DotNetCliWrapper dotNet; + private readonly IDotNet dotNet; private readonly string sourceGeneratorFolder; private readonly string cscPath; - public Razor(DotnetVersion sdk, DotNetCliWrapper dotNet, ProgressMonitor progressMonitor) + public Razor(DotnetVersion sdk, IDotNet dotNet, ProgressMonitor progressMonitor) { this.sdk = sdk; this.progressMonitor = progressMonitor; diff --git a/csharp/extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs b/csharp/extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs index ddfd8696dcc..2dd2f599f79 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs @@ -38,7 +38,7 @@ namespace Semmle.Extraction.Tests public class DotNetCliWrapperTests { private static IDotNet MakeDotnet(IDotNetCliInvoker dotnetCliInvoker) => - new DotNetCliWrapper(dotnetCliInvoker, new ProgressMonitor(new LoggerStub())); + DotNetCliWrapper.Make(dotnetCliInvoker, new ProgressMonitor(new LoggerStub())); private static IList MakeDotnetRestoreOutput() => new List { From 6c0afab0aae5f107c9c9c0107e69e87f790cd94f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 15 Sep 2023 14:29:49 +0200 Subject: [PATCH 498/788] C#: Rename DotnetVersion to DotNetVersion. --- .../{DotnetVersion.cs => DotNetVersion.cs} | 6 +++--- .../Razor.cs | 4 ++-- .../Runtime.cs | 12 ++++++------ .../Sdk.cs | 8 ++++---- 4 files changed, 15 insertions(+), 15 deletions(-) rename csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/{DotnetVersion.cs => DotNetVersion.cs} (94%) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetVersion.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetVersion.cs similarity index 94% rename from csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetVersion.cs rename to csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetVersion.cs index 6d52b410412..f62c279d240 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotnetVersion.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetVersion.cs @@ -3,7 +3,7 @@ using System.IO; namespace Semmle.Extraction.CSharp.DependencyFetching { - internal record DotnetVersion : IComparable + internal record DotNetVersion : IComparable { private readonly string dir; private readonly Version version; @@ -48,7 +48,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } - public DotnetVersion(string dir, string version, string preReleaseVersionType, string preReleaseVersion) + public DotNetVersion(string dir, string version, string preReleaseVersionType, string preReleaseVersion) { this.dir = dir; this.version = Version.Parse(version); @@ -59,7 +59,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } } - public int CompareTo(DotnetVersion? other) + public int CompareTo(DotNetVersion? other) { var c = version.CompareTo(other?.version); if (c == 0 && IsPreRelease) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs index 4346d0af494..a9c8268d94b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Razor.cs @@ -8,13 +8,13 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { internal class Razor { - private readonly DotnetVersion sdk; + private readonly DotNetVersion sdk; private readonly ProgressMonitor progressMonitor; private readonly IDotNet dotNet; private readonly string sourceGeneratorFolder; private readonly string cscPath; - public Razor(DotnetVersion sdk, IDotNet dotNet, ProgressMonitor progressMonitor) + public Razor(DotNetVersion sdk, IDotNet dotNet, ProgressMonitor progressMonitor) { this.sdk = sdk; this.progressMonitor = progressMonitor; diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Runtime.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Runtime.cs index 9d1c6054d9b..3928e8f689e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Runtime.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Runtime.cs @@ -17,8 +17,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private const string aspNetCoreApp = "Microsoft.AspNetCore.App"; private readonly IDotNet dotNet; - private readonly Lazy> newestRuntimes; - private Dictionary NewestRuntimes => newestRuntimes.Value; + private readonly Lazy> newestRuntimes; + private Dictionary NewestRuntimes => newestRuntimes.Value; private static string ExecutingRuntime => RuntimeEnvironment.GetRuntimeDirectory(); public Runtime(IDotNet dotNet) @@ -36,17 +36,17 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// It is assume that the format of a listed runtime is something like: /// Microsoft.NETCore.App 7.0.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App] /// - private static Dictionary ParseRuntimes(IList listed) + private static Dictionary ParseRuntimes(IList listed) { // Parse listed runtimes. - var runtimes = new Dictionary(); + var runtimes = new Dictionary(); var regex = RuntimeRegex(); listed.ForEach(r => { var match = regex.Match(r); if (match.Success) { - runtimes.AddOrUpdateToLatest(match.Groups[1].Value, new DotnetVersion(match.Groups[6].Value, match.Groups[2].Value, match.Groups[4].Value, match.Groups[5].Value)); + runtimes.AddOrUpdateToLatest(match.Groups[1].Value, new DotNetVersion(match.Groups[6].Value, match.Groups[2].Value, match.Groups[4].Value, match.Groups[5].Value)); } }); @@ -56,7 +56,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// /// Returns a dictionary mapping runtimes to their newest version. /// - internal Dictionary GetNewestRuntimes() + internal Dictionary GetNewestRuntimes() { var listed = dotNet.GetListedRuntimes(); return ParseRuntimes(listed); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Sdk.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Sdk.cs index 88d40373465..8661cd41b93 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Sdk.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Sdk.cs @@ -14,23 +14,23 @@ namespace Semmle.Extraction.CSharp.DependencyFetching [GeneratedRegex(@"^(\d+\.\d+\.\d+)(-([a-z]+)\.(\d+\.\d+\.\d+))?\s\[(.+)\]$")] private static partial Regex SdkRegex(); - private static HashSet ParseSdks(IList listed) + private static HashSet ParseSdks(IList listed) { - var sdks = new HashSet(); + var sdks = new HashSet(); var regex = SdkRegex(); listed.ForEach(r => { var match = regex.Match(r); if (match.Success) { - sdks.Add(new DotnetVersion(match.Groups[5].Value, match.Groups[1].Value, match.Groups[3].Value, match.Groups[4].Value)); + sdks.Add(new DotNetVersion(match.Groups[5].Value, match.Groups[1].Value, match.Groups[3].Value, match.Groups[4].Value)); } }); return sdks; } - public DotnetVersion? GetNewestSdk() + public DotNetVersion? GetNewestSdk() { var listed = dotNet.GetListedSdks(); var sdks = ParseSdks(listed); From 34240f7328efa72d7ca0ae0e9c38375a75731479 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 10:08:08 +0100 Subject: [PATCH 499/788] Swift: Accept generated changes. --- swift/ql/.generated.list | 1 - swift/ql/.gitattributes | 1 - 2 files changed, 2 deletions(-) diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index 1510c1dae29..a9256547e83 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -57,7 +57,6 @@ lib/codeql/swift/elements/decl/StructDecl.qll 708711bf4236f32174caa256f3b19e00b6 lib/codeql/swift/elements/decl/StructDeclConstructor.qll 653fef1ce7a5924f9db110dfab4ebc191b6688fa14ebeb6cf2a09fe338f00646 c7ed15002c41b7dd11a5dd768e0f6f1fe241c680d155364404c64d6251adee5c lib/codeql/swift/elements/decl/SubscriptDeclConstructor.qll 3a88617b41f96827cb6edd596d6d95ebcf5baf99ba113bdd298276666c6aeadf 166e04fc72507cb27e2c16ad2d5217074f8678d286cb6d0980e5b84125648abe lib/codeql/swift/elements/decl/TopLevelCodeDeclConstructor.qll 6920a4e7aec45ae2a561cef95b9082b861f81c16c259698541f317481645e194 4bd65820b93a5ec7332dd1bbf59326fc19b77e94c122ad65d41393c84e6ac581 -lib/codeql/swift/elements/decl/TypeAliasDecl.qll 984c5802c35e595388f7652cef1a50fb963b32342ab4f9d813b7200a0e6a37ca 630dc9cbf20603855c599a9f86037ba0d889ad3d2c2b6f9ac17508d398bff9e3 lib/codeql/swift/elements/decl/TypeAliasDeclConstructor.qll ba70bb69b3a14283def254cc1859c29963838f624b3f1062a200a8df38f1edd5 96ac51d1b3156d4139e583f7f803e9eb95fe25cc61c12986e1b2972a781f9c8b lib/codeql/swift/elements/expr/AbiSafeConversionExpr.qll 39b856c89b8aff769b75051fd9e319f2d064c602733eaa6fed90d8f626516306 a87738539276438cef63145461adf25309d1938cfac367f53f53d33db9b12844 lib/codeql/swift/elements/expr/AbiSafeConversionExprConstructor.qll 7d70e7c47a9919efcb1ebcbf70e69cab1be30dd006297b75f6d72b25ae75502a e7a741c42401963f0c1da414b3ae779adeba091e9b8f56c9abf2a686e3a04d52 diff --git a/swift/ql/.gitattributes b/swift/ql/.gitattributes index 339595afe10..a487b874c15 100644 --- a/swift/ql/.gitattributes +++ b/swift/ql/.gitattributes @@ -59,7 +59,6 @@ /lib/codeql/swift/elements/decl/StructDeclConstructor.qll linguist-generated /lib/codeql/swift/elements/decl/SubscriptDeclConstructor.qll linguist-generated /lib/codeql/swift/elements/decl/TopLevelCodeDeclConstructor.qll linguist-generated -/lib/codeql/swift/elements/decl/TypeAliasDecl.qll linguist-generated /lib/codeql/swift/elements/decl/TypeAliasDeclConstructor.qll linguist-generated /lib/codeql/swift/elements/expr/AbiSafeConversionExpr.qll linguist-generated /lib/codeql/swift/elements/expr/AbiSafeConversionExprConstructor.qll linguist-generated From a3da11a9622308c2724fc047e43ba440ff99e3c4 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 19 Sep 2023 11:12:36 +0200 Subject: [PATCH 500/788] C#: Rename DotNetCliWrapper to DotNet. --- .../DependencyManager.cs | 2 +- .../{DotNetCliWrapper.cs => DotNet.cs} | 30 +++++++++---------- .../{DotNetCliWrapper.cs => DotNet.cs} | 4 +-- 3 files changed, 18 insertions(+), 18 deletions(-) rename csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/{DotNetCliWrapper.cs => DotNet.cs} (72%) rename csharp/extractor/Semmle.Extraction.Tests/{DotNetCliWrapper.cs => DotNet.cs} (98%) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 239553b30e8..9a3bfeb624e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -47,7 +47,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching try { - this.dotnet = DotNetCliWrapper.Make(options, progressMonitor); + this.dotnet = DotNet.Make(options, progressMonitor); } catch { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliWrapper.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs similarity index 72% rename from csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliWrapper.cs rename to csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs index b11945aec40..4e2e7354436 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliWrapper.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs @@ -9,31 +9,31 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// /// Utilities to run the "dotnet" command. /// - internal partial class DotNetCliWrapper : IDotNet + internal partial class DotNet : IDotNet { - private readonly IDotNetCliInvoker dotnet; + private readonly IDotNetCliInvoker dotnetCliInvoker; private readonly ProgressMonitor progressMonitor; - private DotNetCliWrapper(IDotNetCliInvoker dotnet, ProgressMonitor progressMonitor) + private DotNet(IDotNetCliInvoker dotnetCliInvoker, ProgressMonitor progressMonitor) { this.progressMonitor = progressMonitor; - this.dotnet = dotnet; + this.dotnetCliInvoker = dotnetCliInvoker; Info(); } - private DotNetCliWrapper(IDependencyOptions options, ProgressMonitor progressMonitor) : this(new DotNetCliInvoker(progressMonitor, Path.Combine(options.DotNetPath ?? string.Empty, "dotnet")), progressMonitor) { } + private DotNet(IDependencyOptions options, ProgressMonitor progressMonitor) : this(new DotNetCliInvoker(progressMonitor, Path.Combine(options.DotNetPath ?? string.Empty, "dotnet")), progressMonitor) { } - internal static IDotNet Make(IDotNetCliInvoker dotnet, ProgressMonitor progressMonitor) => new DotNetCliWrapper(dotnet, progressMonitor); + internal static IDotNet Make(IDotNetCliInvoker dotnetCliInvoker, ProgressMonitor progressMonitor) => new DotNet(dotnetCliInvoker, progressMonitor); - public static IDotNet Make(IDependencyOptions options, ProgressMonitor progressMonitor) => new DotNetCliWrapper(options, progressMonitor); + public static IDotNet Make(IDependencyOptions options, ProgressMonitor progressMonitor) => new DotNet(options, progressMonitor); private void Info() { // TODO: make sure the below `dotnet` version is matching the one specified in global.json - var res = dotnet.RunCommand("--info"); + var res = dotnetCliInvoker.RunCommand("--info"); if (!res) { - throw new Exception($"{dotnet.Exec} --info failed."); + throw new Exception($"{dotnetCliInvoker.Exec} --info failed."); } } @@ -47,7 +47,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { args += $" --configfile \"{pathToNugetConfig}\""; } - var success = dotnet.RunCommand(args, out var output); + var success = dotnetCliInvoker.RunCommand(args, out var output); stdout = string.Join("\n", output); return success; } @@ -56,7 +56,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { var args = GetRestoreArgs(solutionFile, packageDirectory); args += " --verbosity normal"; - if (dotnet.RunCommand(args, out var output)) + if (dotnetCliInvoker.RunCommand(args, out var output)) { var regex = RestoreProjectRegex(); projects = output @@ -73,13 +73,13 @@ namespace Semmle.Extraction.CSharp.DependencyFetching public bool New(string folder) { var args = $"new console --no-restore --output \"{folder}\""; - return dotnet.RunCommand(args); + return dotnetCliInvoker.RunCommand(args); } public bool AddPackage(string folder, string package) { var args = $"add \"{folder}\" package \"{package}\" --no-restore"; - return dotnet.RunCommand(args); + return dotnetCliInvoker.RunCommand(args); } public IList GetListedRuntimes() => GetListed("--list-runtimes", "runtime"); @@ -88,7 +88,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private IList GetListed(string args, string artifact) { - if (dotnet.RunCommand(args, out var artifacts)) + if (dotnetCliInvoker.RunCommand(args, out var artifacts)) { progressMonitor.LogInfo($"Found {artifact}s: {string.Join("\n", artifacts)}"); return artifacts; @@ -99,7 +99,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching public bool Exec(string execArgs) { var args = $"exec {execArgs}"; - return dotnet.RunCommand(args); + return dotnetCliInvoker.RunCommand(args); } [GeneratedRegex("Restored\\s+(.+\\.csproj)", RegexOptions.Compiled)] diff --git a/csharp/extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs b/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs similarity index 98% rename from csharp/extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs rename to csharp/extractor/Semmle.Extraction.Tests/DotNet.cs index 2dd2f599f79..fda9e4c49fc 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/DotNetCliWrapper.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs @@ -35,10 +35,10 @@ namespace Semmle.Extraction.Tests public string GetLastArgs() => lastArgs; } - public class DotNetCliWrapperTests + public class DotNetTests { private static IDotNet MakeDotnet(IDotNetCliInvoker dotnetCliInvoker) => - DotNetCliWrapper.Make(dotnetCliInvoker, new ProgressMonitor(new LoggerStub())); + DotNet.Make(dotnetCliInvoker, new ProgressMonitor(new LoggerStub())); private static IList MakeDotnetRestoreOutput() => new List { From 311daa253945f945fff9682d265f980a84a9f673 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 10:39:59 +0100 Subject: [PATCH 501/788] Swift: Accept fixed test case having merged in main. --- .../library-tests/dataflow/dataflow/DataFlowInline.expected | 1 - swift/ql/test/library-tests/dataflow/dataflow/test.swift | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlowInline.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlowInline.expected index 75cfac32cc2..48de9172b36 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlowInline.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlowInline.expected @@ -1,3 +1,2 @@ failures testFailures -| test.swift:709:15:709:21 | ...[...] | Fixed missing result:flow=708 | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/test.swift b/swift/ql/test/library-tests/dataflow/dataflow/test.swift index d3dc57f8ef1..a4bed4bcf7e 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/test.swift +++ b/swift/ql/test/library-tests/dataflow/dataflow/test.swift @@ -706,7 +706,7 @@ func testArray() { sink(arg: arr4[0]) // $ MISSING: flow=692 var arr5 = Array(repeating: source(), count: 2) - sink(arg: arr5[0]) // $ MISSING: flow=708 + sink(arg: arr5[0]) // $ flow=708 var arr6 = [1,2,3] arr6.insert(source(), at: 2) From 42054539f4e5b89af7f6e588481f557affb9da92 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 19 Sep 2023 12:12:15 +0200 Subject: [PATCH 502/788] Dataflow: Minor review fixes. --- shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 3ea0df26059..e4182a32a4b 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1725,6 +1725,7 @@ module MakeImpl { pos = ret.getReturnPosition() and if allowsFieldFlow = false then ap instanceof ApNil else any() | + // both directions are needed for flow-through FwdTypeFlowInput::dataFlowTakenCallEdgeIn(call, c, _) or FwdTypeFlowInput::dataFlowTakenCallEdgeOut(call, c) ) @@ -1894,6 +1895,7 @@ module MakeImpl { private module RevTypeFlow = TypeFlow; + pragma[nomagic] private predicate flowIntoCallApValid( DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, Ap ap ) { @@ -1901,6 +1903,7 @@ module MakeImpl { RevTypeFlow::typeFlowValidEdgeOut(call, c) } + pragma[nomagic] private predicate flowOutOfCallApValid( DataFlowCall call, RetNodeEx ret, ReturnPosition pos, NodeEx out, Ap ap, boolean cc ) { @@ -2071,8 +2074,12 @@ module MakeImpl { flowIntoCallAp(call, c, arg, p, ap) and revFlow(arg, pragma[only_bind_into](state), pragma[only_bind_into](ap)) and revFlow(p, pragma[only_bind_into](state), pragma[only_bind_into](ap)) and + // allowsFieldFlow has already been checked in flowIntoCallAp, since + // `Ap` is at least as precise as a boolean from Stage 2 and + // forward, so no need to check it again later. allowsFieldFlow = true | + // both directions are needed for flow-through RevTypeFlowInput::dataFlowTakenCallEdgeIn(call, c, _) or RevTypeFlowInput::dataFlowTakenCallEdgeOut(call, c) ) From 1e95a5a38a9ffd1c109dd2c0d94cfb20b3239d08 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 19 Sep 2023 12:06:51 +0200 Subject: [PATCH 503/788] Java: Consider AssignOps in ArithExpr --- .../2023-09-19-arithexpr-assignop.md | 4 ++++ .../semmle/code/java/arithmetic/Overflow.qll | 22 ++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 java/ql/lib/change-notes/2023-09-19-arithexpr-assignop.md diff --git a/java/ql/lib/change-notes/2023-09-19-arithexpr-assignop.md b/java/ql/lib/change-notes/2023-09-19-arithexpr-assignop.md new file mode 100644 index 00000000000..38901500226 --- /dev/null +++ b/java/ql/lib/change-notes/2023-09-19-arithexpr-assignop.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Improved the class `ArithExpr` of the `Overflow.qll` module to also include compound operators. Because of this, new alerts may be raised in queries related to overflows/underflows. diff --git a/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll b/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll index 4e9eb75ec13..e92d8352fe9 100644 --- a/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll +++ b/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll @@ -80,11 +80,19 @@ class ArithExpr extends Expr { ( this instanceof UnaryAssignExpr or this instanceof AddExpr or + this instanceof AssignAddExpr or this instanceof MulExpr or + this instanceof AssignMulExpr or this instanceof SubExpr or - this instanceof DivExpr + this instanceof AssignSubExpr or + this instanceof DivExpr or + this instanceof AssignDivExpr ) and - forall(Expr e | e = this.(BinaryExpr).getAnOperand() or e = this.(UnaryAssignExpr).getExpr() | + forall(Expr e | + e = this.(BinaryExpr).getAnOperand() or + e = this.(UnaryAssignExpr).getExpr() or + e = this.(AssignOp).getSource() + | e.getType() instanceof NumType ) } @@ -103,17 +111,21 @@ class ArithExpr extends Expr { */ Expr getLeftOperand() { result = this.(BinaryExpr).getLeftOperand() or - result = this.(UnaryAssignExpr).getExpr() + result = this.(UnaryAssignExpr).getExpr() or + result = this.(AssignOp).getDest() } /** * Gets the right-hand operand if this is a binary expression. */ - Expr getRightOperand() { result = this.(BinaryExpr).getRightOperand() } + Expr getRightOperand() { + result = this.(BinaryExpr).getRightOperand() or result = this.(AssignOp).getRhs() + } /** Gets an operand of this arithmetic expression. */ Expr getAnOperand() { result = this.(BinaryExpr).getAnOperand() or - result = this.(UnaryAssignExpr).getExpr() + result = this.(UnaryAssignExpr).getExpr() or + result = this.(AssignOp).getSource() } } From 2d05b85bb49d01d3f1cca8468a3e47fb5f0b2c89 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 10:45:37 +0100 Subject: [PATCH 504/788] Swift: Fix uses of legacy CArrayElement. --- .../frameworks/StandardLibrary/Array.qll | 9 +++---- .../frameworks/StandardLibrary/CInterop.qll | 2 +- .../dataflow/taint/core/Taint.expected | 26 +++++++++---------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll index 168d7af67b0..007647bf01e 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Array.qll @@ -19,11 +19,10 @@ private class ArraySummaries extends SummaryModelCsv { override predicate row(string row) { row = [ - ";Array;true;init(_:);;;Argument[0];ReturnValue.ArrayElement;value", - ";Array;true;init(_:);;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value", - ";Array;true;init(_:);;;Argument[0].CollectionElement;ReturnValue.ArrayElement;value", - ";Array;true;init(repeating:count:);;;Argument[0];ReturnValue.ArrayElement;value", - ";Array;true;init(arrayLiteral:);;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value", + ";Array;true;init(_:);;;Argument[0];ReturnValue.CollectionElement;value", + ";Array;true;init(_:);;;Argument[0].CollectionElement;ReturnValue.CollectionElement;value", + ";Array;true;init(repeating:count:);;;Argument[0];ReturnValue.CollectionElement;value", + ";Array;true;init(arrayLiteral:);;;Argument[0].CollectionElement;ReturnValue.CollectionElement;value", ";Array;true;insert(_:at:);;;Argument[0];Argument[-1].CollectionElement;value", ";Array;true;insert(_:at:);;;Argument[1];Argument[-1];taint", ";Array;true;withUnsafeBufferPointer(_:);;;Argument[-1];Argument[0].Parameter[0].CollectionElement;taint", diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/CInterop.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/CInterop.qll index ac7d5c5b67e..35a7cafe1e9 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/CInterop.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/CInterop.qll @@ -7,6 +7,6 @@ private import codeql.swift.dataflow.ExternalFlow private class CInteropSummaries extends SummaryModelCsv { override predicate row(string row) { - row = ";;false;getVaList(_:);;;Argument[0].ArrayElement;ReturnValue;value" + row = ";;false;getVaList(_:);;;Argument[0].CollectionElement;ReturnValue;value" } } diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 440a286dfb9..2fcfd5c16eb 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -5,15 +5,15 @@ edges | conversions.swift:30:19:30:29 | call to sourceInt() | conversions.swift:30:12:30:30 | call to String.init(_:) | | conversions.swift:31:12:31:30 | call to String.init(_:) | conversions.swift:31:12:31:32 | .utf8 | | conversions.swift:31:19:31:29 | call to sourceInt() | conversions.swift:31:12:31:30 | call to String.init(_:) | -| conversions.swift:33:12:33:30 | [...] [Array element] | conversions.swift:35:12:35:12 | arr [Array element] | -| conversions.swift:33:12:33:30 | [...] [Array element] | conversions.swift:37:20:37:20 | arr [Array element] | -| conversions.swift:33:19:33:29 | call to sourceInt() | conversions.swift:33:12:33:30 | [...] [Array element] | -| conversions.swift:35:12:35:12 | arr [Array element] | conversions.swift:35:12:35:17 | ...[...] | -| conversions.swift:37:12:37:23 | call to Array.init(_:) [Array element] | conversions.swift:37:12:37:26 | ...[...] | -| conversions.swift:37:20:37:20 | arr [Array element] | conversions.swift:37:12:37:23 | call to Array.init(_:) [Array element] | -| conversions.swift:39:12:39:39 | call to Array.init(_:) [Array element] | conversions.swift:39:12:39:42 | ...[...] | +| conversions.swift:33:12:33:30 | [...] [Collection element] | conversions.swift:35:12:35:12 | arr [Collection element] | +| conversions.swift:33:12:33:30 | [...] [Collection element] | conversions.swift:37:20:37:20 | arr [Collection element] | +| conversions.swift:33:19:33:29 | call to sourceInt() | conversions.swift:33:12:33:30 | [...] [Collection element] | +| conversions.swift:35:12:35:12 | arr [Collection element] | conversions.swift:35:12:35:17 | ...[...] | +| conversions.swift:37:12:37:23 | call to Array.init(_:) [Collection element] | conversions.swift:37:12:37:26 | ...[...] | +| conversions.swift:37:20:37:20 | arr [Collection element] | conversions.swift:37:12:37:23 | call to Array.init(_:) [Collection element] | +| conversions.swift:39:12:39:39 | call to Array.init(_:) [Collection element] | conversions.swift:39:12:39:42 | ...[...] | | conversions.swift:39:20:39:33 | call to sourceString() | conversions.swift:39:20:39:35 | .utf8 | -| conversions.swift:39:20:39:35 | .utf8 | conversions.swift:39:12:39:39 | call to Array.init(_:) [Array element] | +| conversions.swift:39:20:39:35 | .utf8 | conversions.swift:39:12:39:39 | call to Array.init(_:) [Collection element] | | conversions.swift:41:13:41:23 | call to sourceInt() | conversions.swift:42:13:42:13 | v | | conversions.swift:45:18:45:41 | call to numericCast(_:) | conversions.swift:46:12:46:12 | v2 | | conversions.swift:45:30:45:40 | call to sourceInt() | conversions.swift:45:18:45:41 | call to numericCast(_:) | @@ -147,14 +147,14 @@ nodes | conversions.swift:31:12:31:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | | conversions.swift:31:12:31:32 | .utf8 | semmle.label | .utf8 | | conversions.swift:31:19:31:29 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:33:12:33:30 | [...] [Array element] | semmle.label | [...] [Array element] | +| conversions.swift:33:12:33:30 | [...] [Collection element] | semmle.label | [...] [Collection element] | | conversions.swift:33:19:33:29 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:35:12:35:12 | arr [Array element] | semmle.label | arr [Array element] | +| conversions.swift:35:12:35:12 | arr [Collection element] | semmle.label | arr [Collection element] | | conversions.swift:35:12:35:17 | ...[...] | semmle.label | ...[...] | -| conversions.swift:37:12:37:23 | call to Array.init(_:) [Array element] | semmle.label | call to Array.init(_:) [Array element] | +| conversions.swift:37:12:37:23 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | | conversions.swift:37:12:37:26 | ...[...] | semmle.label | ...[...] | -| conversions.swift:37:20:37:20 | arr [Array element] | semmle.label | arr [Array element] | -| conversions.swift:39:12:39:39 | call to Array.init(_:) [Array element] | semmle.label | call to Array.init(_:) [Array element] | +| conversions.swift:37:20:37:20 | arr [Collection element] | semmle.label | arr [Collection element] | +| conversions.swift:39:12:39:39 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | | conversions.swift:39:12:39:42 | ...[...] | semmle.label | ...[...] | | conversions.swift:39:20:39:33 | call to sourceString() | semmle.label | call to sourceString() | | conversions.swift:39:20:39:35 | .utf8 | semmle.label | .utf8 | From 48d1b667cf75fc77794cd4d1ac28bb168f7aa2ab Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 11:22:12 +0100 Subject: [PATCH 505/788] Swift: Autoformat. --- .../lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll index a985bb7f0ed..904982846c0 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll @@ -46,6 +46,8 @@ private class NumericFieldsInheritTaint extends TaintInheritingContent, NumericFieldsInheritTaint() { this.getField().hasQualifiedName("FixedWidthInteger", ["littleEndian", "bigEndian"]) or - this.getField().hasQualifiedName(["Double", "Float", "Float80", "FloatingPoint"], ["exponent", "significand"]) + this.getField() + .hasQualifiedName(["Double", "Float", "Float80", "FloatingPoint"], + ["exponent", "significand"]) } } From 158008ac4ff3627aeaa617fff0491302ca6a1f2d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:08:08 +0100 Subject: [PATCH 506/788] Swift: New results in tests. --- .../Security/CWE-078/CommandInjection.expected | 9 +++++++++ .../query-tests/Security/CWE-089/SQLite.swift | 2 +- .../Security/CWE-089/SqlInjection.expected | 14 ++++++++++++++ .../Security/CWE-089/sqlite3_c_api.swift | 2 +- .../Security/CWE-094/UnsafeJsEval.expected | 16 ++++++++++++++++ .../CWE-134/UncontrolledFormatString.expected | 18 ++++++++++++++++++ .../CWE-134/UncontrolledFormatString.swift | 4 ++-- 7 files changed, 61 insertions(+), 4 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index a015cb69b64..5d4c4a63b58 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -7,9 +7,11 @@ edges | CommandInjection.swift:69:12:69:12 | userControlledString | CommandInjection.swift:75:27:75:27 | userControlledString | | CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:75:27:75:27 | userControlledString | | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | CommandInjection.swift:69:8:69:12 | let ...? [some:0, some:0] | | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:69:8:69:12 | let ...? [some:0] | | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | | CommandInjection.swift:75:2:75:2 | [post] task1 [arguments] | CommandInjection.swift:75:2:75:2 | [post] task1 | | CommandInjection.swift:75:20:75:47 | [...] | CommandInjection.swift:75:2:75:2 | [post] task1 [arguments] | | CommandInjection.swift:75:27:75:27 | userControlledString | CommandInjection.swift:75:20:75:47 | [...] | @@ -17,8 +19,10 @@ edges | CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | | CommandInjection.swift:78:5:78:9 | let ...? [some:0] | CommandInjection.swift:78:9:78:9 | validatedString | | CommandInjection.swift:78:9:78:9 | validatedString | CommandInjection.swift:81:31:81:31 | validatedString | +| CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) | CommandInjection.swift:81:31:81:31 | validatedString | | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | CommandInjection.swift:78:5:78:9 | let ...? [some:0] | | CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:58:22:58:33 | command | +| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) | | CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:58:22:58:33 | command [some:0] | | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | @@ -29,6 +33,8 @@ edges | CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:114:36:114:36 | userControlledString | | CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:115:28:115:28 | userControlledString | | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:114:36:114:36 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:115:28:115:28 | userControlledString | | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:99:8:99:12 | let ...? [some:0] | | CommandInjection.swift:114:2:114:2 | [post] task3 [executableURL] | CommandInjection.swift:114:2:114:2 | [post] task3 | | CommandInjection.swift:114:24:114:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:114:24:114:57 | ...! | @@ -90,6 +96,7 @@ edges | CommandInjection.swift:180:9:180:13 | let ...? [some:0] | CommandInjection.swift:180:13:180:13 | userControlledString | | CommandInjection.swift:180:13:180:13 | userControlledString | CommandInjection.swift:184:19:184:19 | userControlledString | | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) [some:0] | +| CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:184:19:184:19 | userControlledString | | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:180:9:180:13 | let ...? [some:0] | | CommandInjection.swift:184:18:184:39 | [...] | CommandInjection.swift:186:18:186:18 | tainted1 | | CommandInjection.swift:184:18:184:39 | [...] | CommandInjection.swift:187:19:187:19 | tainted1 | @@ -139,6 +146,7 @@ nodes | CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | | CommandInjection.swift:78:5:78:9 | let ...? [some:0] | semmle.label | let ...? [some:0] | | CommandInjection.swift:78:9:78:9 | validatedString | semmle.label | validatedString | +| CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) | semmle.label | call to validateCommand(_:) | | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | semmle.label | call to validateCommand(_:) [some:0] | | CommandInjection.swift:78:43:78:43 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | @@ -240,6 +248,7 @@ nodes | file://:0:0:0:0 | url | semmle.label | url | | file://:0:0:0:0 | url | semmle.label | url | subpaths +| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:58:22:58:33 | command | CommandInjection.swift:62:16:62:16 | command | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) | | CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:58:22:58:33 | command | CommandInjection.swift:62:16:62:16 | command [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:58:22:58:33 | command [some:0] | CommandInjection.swift:62:16:62:16 | command [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | #select diff --git a/swift/ql/test/query-tests/Security/CWE-089/SQLite.swift b/swift/ql/test/query-tests/Security/CWE-089/SQLite.swift index f9a6b41340c..7746c02a9d5 100644 --- a/swift/ql/test/query-tests/Security/CWE-089/SQLite.swift +++ b/swift/ql/test/query-tests/Security/CWE-089/SQLite.swift @@ -74,7 +74,7 @@ func test_sqlite_swift_api(db: Connection) throws { try db.execute(unsafeQuery2) // BAD try db.execute(unsafeQuery3) // BAD try db.execute(safeQuery1) // GOOD - try db.execute(safeQuery2) // GOOD + try db.execute(safeQuery2) // GOOD [FALSE POSITIVE] // --- prepared statements --- diff --git a/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected b/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected index a4617e9b811..65b3383cdef 100644 --- a/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected @@ -82,6 +82,7 @@ edges | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:349:84:349:84 | remoteString | | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:350:69:350:69 | remoteString | | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:351:84:351:84 | remoteString | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:63:25:63:25 | remoteString | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:73:17:73:17 | unsafeQuery1 | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:74:17:74:17 | unsafeQuery2 | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:75:17:75:17 | unsafeQuery3 | @@ -97,6 +98,9 @@ edges | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:117:16:117:16 | unsafeQuery1 | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:119:16:119:16 | unsafeQuery1 | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:132:20:132:20 | remoteString | +| SQLite.swift:63:21:63:37 | call to Self.init(_:) | SQLite.swift:77:17:77:17 | safeQuery2 | +| SQLite.swift:63:25:63:25 | remoteString | SQLite.swift:63:21:63:37 | call to Self.init(_:) | +| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:123:25:123:25 | remoteString | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | @@ -104,6 +108,8 @@ edges | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | +| sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | +| sqlite3_c_api.swift:123:25:123:25 | remoteString | sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | | sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | | sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | sqlite3_c_api.swift:190:2:190:2 | data | | sqlite3_c_api.swift:190:2:190:2 | data | sqlite3_c_api.swift:190:21:190:21 | [post] buffer | @@ -207,9 +213,12 @@ nodes | GRDB.swift:350:69:350:69 | remoteString | semmle.label | remoteString | | GRDB.swift:351:84:351:84 | remoteString | semmle.label | remoteString | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| SQLite.swift:63:21:63:37 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| SQLite.swift:63:25:63:25 | remoteString | semmle.label | remoteString | | SQLite.swift:73:17:73:17 | unsafeQuery1 | semmle.label | unsafeQuery1 | | SQLite.swift:74:17:74:17 | unsafeQuery2 | semmle.label | unsafeQuery2 | | SQLite.swift:75:17:75:17 | unsafeQuery3 | semmle.label | unsafeQuery3 | +| SQLite.swift:77:17:77:17 | safeQuery2 | semmle.label | safeQuery2 | | SQLite.swift:83:29:83:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | | SQLite.swift:95:32:95:32 | remoteString | semmle.label | remoteString | | SQLite.swift:100:29:100:29 | unsafeQuery1 | semmle.label | unsafeQuery1 | @@ -223,9 +232,12 @@ nodes | SQLite.swift:119:16:119:16 | unsafeQuery1 | semmle.label | unsafeQuery1 | | SQLite.swift:132:20:132:20 | remoteString | semmle.label | remoteString | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| sqlite3_c_api.swift:123:25:123:25 | remoteString | semmle.label | remoteString | | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | semmle.label | unsafeQuery1 | | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | semmle.label | unsafeQuery2 | | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | semmle.label | unsafeQuery3 | +| sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | semmle.label | safeQuery2 | | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | semmle.label | unsafeQuery3 | | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | @@ -324,6 +336,7 @@ subpaths | SQLite.swift:73:17:73:17 | unsafeQuery1 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:73:17:73:17 | unsafeQuery1 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:74:17:74:17 | unsafeQuery2 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:74:17:74:17 | unsafeQuery2 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:75:17:75:17 | unsafeQuery3 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:75:17:75:17 | unsafeQuery3 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | +| SQLite.swift:77:17:77:17 | safeQuery2 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:77:17:77:17 | safeQuery2 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:83:29:83:29 | unsafeQuery3 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:83:29:83:29 | unsafeQuery3 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:95:32:95:32 | remoteString | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:95:32:95:32 | remoteString | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:100:29:100:29 | unsafeQuery1 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:100:29:100:29 | unsafeQuery1 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | @@ -339,6 +352,7 @@ subpaths | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | +| sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-089/sqlite3_c_api.swift b/swift/ql/test/query-tests/Security/CWE-089/sqlite3_c_api.swift index 8498d89d68d..06846cd2072 100644 --- a/swift/ql/test/query-tests/Security/CWE-089/sqlite3_c_api.swift +++ b/swift/ql/test/query-tests/Security/CWE-089/sqlite3_c_api.swift @@ -134,7 +134,7 @@ func test_sqlite3_c_api(db: OpaquePointer?, buffer: UnsafeMutablePointer) let result2 = sqlite3_exec(db, unsafeQuery2, nil, nil, nil) // BAD let result3 = sqlite3_exec(db, unsafeQuery3, nil, nil, nil) // BAD let result4 = sqlite3_exec(db, safeQuery1, nil, nil, nil) // GOOD - let result5 = sqlite3_exec(db, safeQuery2, nil, nil, nil) // GOOD + let result5 = sqlite3_exec(db, safeQuery2, nil, nil, nil) // GOOD [FALSE POSITIVE] // --- prepared statements --- diff --git a/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected b/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected index da56e96c094..fa14ba0ccdd 100644 --- a/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected +++ b/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected @@ -4,6 +4,7 @@ edges | UnsafeJsEval.swift:201:21:201:35 | call to getRemoteData() | UnsafeJsEval.swift:205:7:205:7 | remoteString | | UnsafeJsEval.swift:201:21:201:35 | call to getRemoteData() | UnsafeJsEval.swift:208:7:208:39 | ... .+(_:_:) ... | | UnsafeJsEval.swift:201:21:201:35 | call to getRemoteData() | UnsafeJsEval.swift:211:24:211:37 | .utf8 | +| UnsafeJsEval.swift:201:21:201:35 | call to getRemoteData() | UnsafeJsEval.swift:217:35:217:35 | remoteString | | UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:265:13:265:13 | string | | UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:268:13:268:13 | string | | UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:276:13:276:13 | string | @@ -32,6 +33,16 @@ edges | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:285:13:285:13 | string | | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:299:13:299:13 | string | | UnsafeJsEval.swift:214:24:214:24 | remoteData | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | +| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:265:13:265:13 | string | +| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:268:13:268:13 | string | +| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:276:13:276:13 | string | +| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:279:13:279:13 | string | +| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:285:13:285:13 | string | +| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:299:13:299:13 | string | +| UnsafeJsEval.swift:217:24:217:53 | call to String.init(_:) | UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | +| UnsafeJsEval.swift:217:31:217:47 | call to Self.init(_:) | UnsafeJsEval.swift:217:31:217:52 | ... ??(_:_:) ... | +| UnsafeJsEval.swift:217:31:217:52 | ... ??(_:_:) ... | UnsafeJsEval.swift:217:24:217:53 | call to String.init(_:) | +| UnsafeJsEval.swift:217:35:217:35 | remoteString | UnsafeJsEval.swift:217:31:217:47 | call to Self.init(_:) | | UnsafeJsEval.swift:265:13:265:13 | string | UnsafeJsEval.swift:266:43:266:43 | string | | UnsafeJsEval.swift:266:43:266:43 | string | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | | UnsafeJsEval.swift:268:13:268:13 | string | UnsafeJsEval.swift:269:43:269:43 | string | @@ -67,6 +78,11 @@ nodes | UnsafeJsEval.swift:211:24:211:37 | .utf8 | semmle.label | .utf8 | | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | semmle.label | call to String.init(decoding:as:) | | UnsafeJsEval.swift:214:24:214:24 | remoteData | semmle.label | remoteData | +| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | +| UnsafeJsEval.swift:217:24:217:53 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| UnsafeJsEval.swift:217:31:217:47 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| UnsafeJsEval.swift:217:31:217:52 | ... ??(_:_:) ... | semmle.label | ... ??(_:_:) ... | +| UnsafeJsEval.swift:217:35:217:35 | remoteString | semmle.label | remoteString | | UnsafeJsEval.swift:265:13:265:13 | string | semmle.label | string | | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | semmle.label | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | | UnsafeJsEval.swift:266:43:266:43 | string | semmle.label | string | diff --git a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected index 3a2d4eb80c6..016c07cc252 100644 --- a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected +++ b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected @@ -12,10 +12,18 @@ edges | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:85:72:85:72 | tainted | | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:88:11:88:11 | tainted | | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:91:61:91:61 | tainted | +| UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:93:26:93:26 | tainted | +| UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:97:27:97:27 | tainted | | UncontrolledFormatString.swift:81:47:81:47 | tainted | UncontrolledFormatString.swift:81:30:81:54 | call to NSString.init(string:) | | UncontrolledFormatString.swift:82:65:82:65 | tainted | UncontrolledFormatString.swift:82:48:82:72 | call to NSString.init(string:) | | UncontrolledFormatString.swift:84:54:84:54 | tainted | UncontrolledFormatString.swift:84:37:84:61 | call to NSString.init(string:) | | UncontrolledFormatString.swift:85:72:85:72 | tainted | UncontrolledFormatString.swift:85:55:85:79 | call to NSString.init(string:) | +| UncontrolledFormatString.swift:93:22:93:33 | call to Self.init(_:) | UncontrolledFormatString.swift:95:28:95:28 | taintedSan | +| UncontrolledFormatString.swift:93:26:93:26 | tainted | UncontrolledFormatString.swift:93:22:93:33 | call to Self.init(_:) | +| UncontrolledFormatString.swift:97:23:97:34 | call to Self.init(_:) | UncontrolledFormatString.swift:98:30:98:30 | taintedVal2 | +| UncontrolledFormatString.swift:97:27:97:27 | tainted | UncontrolledFormatString.swift:97:23:97:34 | call to Self.init(_:) | +| UncontrolledFormatString.swift:98:23:98:41 | call to String.init(_:) | UncontrolledFormatString.swift:99:28:99:28 | taintedSan2 | +| UncontrolledFormatString.swift:98:30:98:30 | taintedVal2 | UncontrolledFormatString.swift:98:23:98:41 | call to String.init(_:) | nodes | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | UncontrolledFormatString.swift:70:28:70:28 | tainted | semmle.label | tainted | @@ -35,6 +43,14 @@ nodes | UncontrolledFormatString.swift:85:72:85:72 | tainted | semmle.label | tainted | | UncontrolledFormatString.swift:88:11:88:11 | tainted | semmle.label | tainted | | UncontrolledFormatString.swift:91:61:91:61 | tainted | semmle.label | tainted | +| UncontrolledFormatString.swift:93:22:93:33 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| UncontrolledFormatString.swift:93:26:93:26 | tainted | semmle.label | tainted | +| UncontrolledFormatString.swift:95:28:95:28 | taintedSan | semmle.label | taintedSan | +| UncontrolledFormatString.swift:97:23:97:34 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| UncontrolledFormatString.swift:97:27:97:27 | tainted | semmle.label | tainted | +| UncontrolledFormatString.swift:98:23:98:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| UncontrolledFormatString.swift:98:30:98:30 | taintedVal2 | semmle.label | taintedVal2 | +| UncontrolledFormatString.swift:99:28:99:28 | taintedSan2 | semmle.label | taintedSan2 | subpaths #select | UncontrolledFormatString.swift:70:28:70:28 | tainted | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:70:28:70:28 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | @@ -50,3 +66,5 @@ subpaths | UncontrolledFormatString.swift:85:55:85:79 | call to NSString.init(string:) | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:85:55:85:79 | call to NSString.init(string:) | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:88:11:88:11 | tainted | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:88:11:88:11 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:91:61:91:61 | tainted | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:91:61:91:61 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | +| UncontrolledFormatString.swift:95:28:95:28 | taintedSan | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:95:28:95:28 | taintedSan | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | +| UncontrolledFormatString.swift:99:28:99:28 | taintedSan2 | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:99:28:99:28 | taintedSan2 | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.swift b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.swift index e5665eedeac..d534ca552e3 100644 --- a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.swift +++ b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.swift @@ -92,9 +92,9 @@ func tests() { let taintedVal = Int(tainted)! let taintedSan = "\(taintedVal)" - let q = String(format: taintedSan) // GOOD: sufficiently sanitized + let q = String(format: taintedSan) // GOOD: sufficiently sanitized [FALSE POSITIVE] let taintedVal2 = Int(tainted) ?? 0 let taintedSan2 = String(taintedVal2) - let r = String(format: taintedSan2) // GOOD: sufficiently sanitized + let r = String(format: taintedSan2) // GOOD: sufficiently sanitized [FALSE POSITIVE] } From dfd7f1e78b490e05a8e63c5e313ca86ba45c0cea Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Mon, 18 Sep 2023 12:32:44 +0200 Subject: [PATCH 507/788] C#: Parallelize restore logic of missing packages --- .../DependencyManager.cs | 53 +++++++++++-------- .../DotNet.cs | 22 +++++--- .../IDotNet.cs | 4 +- .../Semmle.Extraction.Tests/DotNet.cs | 4 +- .../Semmle.Extraction.Tests/Runtime.cs | 12 ++++- 5 files changed, 59 insertions(+), 36 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 9a3bfeb624e..718d90d529d 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -499,29 +499,38 @@ namespace Semmle.Extraction.CSharp.DependencyFetching var alreadyDownloadedPackages = Directory.GetDirectories(packageDirectory.DirInfo.FullName) .Select(d => Path.GetFileName(d).ToLowerInvariant()); var notYetDownloadedPackages = fileContent.AllPackages.Except(alreadyDownloadedPackages); - foreach (var package in notYetDownloadedPackages) + + var stdoutLines = notYetDownloadedPackages + .AsParallel() + .WithDegreeOfParallelism(options.Threads) + .Select(package => + { + progressMonitor.NugetInstall(package); + using var tempDir = new TemporaryDirectory(ComputeTempDirectory(package)); + var success = dotnet.New(tempDir.DirInfo.FullName, out var stdout1); + if (!success) + { + return new[] { stdout1 }; + } + + success = dotnet.AddPackage(tempDir.DirInfo.FullName, package, out var stdout2); + if (!success) + { + return new[] { stdout1, stdout2 }; + } + + success = RestoreProject(tempDir.DirInfo.FullName, out var stdout3, nugetConfig); + // TODO: the restore might fail, we could retry with a prerelease (*-* instead of *) version of the package. + if (!success) + { + progressMonitor.FailedToRestoreNugetPackage(package); + } + return new[] { stdout1, stdout2, stdout3 }; + }) + .ToList(); + foreach (var line in stdoutLines.SelectMany(l => l)) { - progressMonitor.NugetInstall(package); - using var tempDir = new TemporaryDirectory(GetTemporaryWorkingDirectory(package)); - var success = dotnet.New(tempDir.DirInfo.FullName); - if (!success) - { - continue; - } - success = dotnet.AddPackage(tempDir.DirInfo.FullName, package); - if (!success) - { - continue; - } - - success = RestoreProject(tempDir.DirInfo.FullName, out var stdout, nugetConfig); - Console.WriteLine(stdout); - - // TODO: the restore might fail, we could retry with a prerelease (*-* instead of *) version of the package. - if (!success) - { - progressMonitor.FailedToRestoreNugetPackage(package); - } + Console.WriteLine(line); } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs index 4e2e7354436..3e221a5a82e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs @@ -37,6 +37,13 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } } + private bool RunCommand(string args, out string stdout) + { + var success = dotnetCliInvoker.RunCommand(args, out var output); + stdout = string.Join("\n", output); + return success; + } + private static string GetRestoreArgs(string projectOrSolutionFile, string packageDirectory) => $"restore --no-dependencies \"{projectOrSolutionFile}\" --packages \"{packageDirectory}\" /p:DisableImplicitNuGetFallbackFolder=true"; @@ -47,9 +54,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { args += $" --configfile \"{pathToNugetConfig}\""; } - var success = dotnetCliInvoker.RunCommand(args, out var output); - stdout = string.Join("\n", output); - return success; + + return RunCommand(args, out stdout); } public bool RestoreSolutionToDirectory(string solutionFile, string packageDirectory, out IEnumerable projects) @@ -70,16 +76,16 @@ namespace Semmle.Extraction.CSharp.DependencyFetching return false; } - public bool New(string folder) + public bool New(string folder, out string stdout) { var args = $"new console --no-restore --output \"{folder}\""; - return dotnetCliInvoker.RunCommand(args); + return RunCommand(args, out stdout); } - public bool AddPackage(string folder, string package) + public bool AddPackage(string folder, string package, out string stdout) { var args = $"add \"{folder}\" package \"{package}\" --no-restore"; - return dotnetCliInvoker.RunCommand(args); + return RunCommand(args, out stdout); } public IList GetListedRuntimes() => GetListed("--list-runtimes", "runtime"); @@ -88,7 +94,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private IList GetListed(string args, string artifact) { - if (dotnetCliInvoker.RunCommand(args, out var artifacts)) + if (dotnetCliInvoker.RunCommand(args, out IList artifacts)) { progressMonitor.LogInfo($"Found {artifact}s: {string.Join("\n", artifacts)}"); return artifacts; diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs index f4fe6714ea7..832f211293b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs @@ -6,8 +6,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { bool RestoreProjectToDirectory(string project, string directory, out string stdout, string? pathToNugetConfig = null); bool RestoreSolutionToDirectory(string solutionFile, string packageDirectory, out IEnumerable projects); - bool New(string folder); - bool AddPackage(string folder, string package); + bool New(string folder, out string stdout); + bool AddPackage(string folder, string package, out string stdout); IList GetListedRuntimes(); IList GetListedSdks(); bool Exec(string execArgs); diff --git a/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs b/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs index fda9e4c49fc..97aeff37c0b 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs @@ -164,7 +164,7 @@ namespace Semmle.Extraction.Tests var dotnet = MakeDotnet(dotnetCliInvoker); // Execute - dotnet.New("myfolder"); + dotnet.New("myfolder", out var _); // Verify var lastArgs = dotnetCliInvoker.GetLastArgs(); @@ -179,7 +179,7 @@ namespace Semmle.Extraction.Tests var dotnet = MakeDotnet(dotnetCliInvoker); // Execute - dotnet.AddPackage("myfolder", "mypackage"); + dotnet.AddPackage("myfolder", "mypackage", out var _); // Verify var lastArgs = dotnetCliInvoker.GetLastArgs(); diff --git a/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs b/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs index 64d06c9a1e7..6596fff55d9 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs @@ -15,9 +15,17 @@ namespace Semmle.Extraction.Tests this.runtimes = runtimes; this.sdks = sdks; } - public bool AddPackage(string folder, string package) => true; + public bool AddPackage(string folder, string package, out string stdout) + { + stdout = ""; + return true; + } - public bool New(string folder) => true; + public bool New(string folder, out string stdout) + { + stdout = ""; + return true; + } public bool RestoreProjectToDirectory(string project, string directory, out string stdout, string? pathToNugetConfig = null) { From dd7904969f02fd55abb339618e2de605d603b527 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Tue, 19 Sep 2023 14:51:03 +0200 Subject: [PATCH 508/788] C#: Remove unnecessary isUnboundDeclaration predicates --- csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql | 1 - csharp/ql/src/utils/modeleditor/ModelEditor.qll | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql b/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql index 2f5529a3124..c942970fa5b 100644 --- a/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql +++ b/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql @@ -12,7 +12,6 @@ private import ModelEditor class ExternalEndpoint extends Endpoint { ExternalEndpoint() { - this.isUnboundDeclaration() and this.fromLibrary() } } diff --git a/csharp/ql/src/utils/modeleditor/ModelEditor.qll b/csharp/ql/src/utils/modeleditor/ModelEditor.qll index 38d8b9f280e..f91e7d8aa9c 100644 --- a/csharp/ql/src/utils/modeleditor/ModelEditor.qll +++ b/csharp/ql/src/utils/modeleditor/ModelEditor.qll @@ -28,8 +28,7 @@ class Endpoint extends DotNet::Callable { Endpoint() { [this.(Modifiable), this.(Accessor).getDeclaration()].isEffectivelyPublic() and not isUninteresting(this) and - this.isUnboundDeclaration() and - this.getDeclaringType().isUnboundDeclaration() + this.isUnboundDeclaration() } /** From 14a2b7f79f9704a18512517bd9c14f39ad64e7cf Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Tue, 19 Sep 2023 14:55:57 +0200 Subject: [PATCH 509/788] C#: Add tests for private methods and accessors --- .../modeleditor/FetchApplicationModeMethods.expected | 5 ++++- .../utils/modeleditor/FetchFrameworkModeMethods.expected | 6 +++--- csharp/ql/test/utils/modeleditor/PublicClass.cs | 8 +++++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected index 87a66a7e6a1..9dcdbdf846a 100644 --- a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected +++ b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected @@ -4,7 +4,10 @@ | PublicClass.cs:19:9:19:51 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | | PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | | PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | supported | System.Console | 7.0.0.0 | source | type | source | classification | -| PublicClass.cs:24:9:24:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicClass.cs:24:9:24:46 | call to method Write | System.Console#Write(System.Object) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicClass.cs:24:23:24:45 | access to property BackgroundColor | System.Console#get_BackgroundColor() | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicClass.cs:25:9:25:31 | access to property ForegroundColor | System.Console#set_ForegroundColor(System.ConsoleColor) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| PublicClass.cs:30:9:30:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | | PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System.Console#WriteLine(System.Object) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | | PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System.Console#WriteLine(System.Object) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | | PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected index 0cc231e8b39..177ed1d98ec 100644 --- a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected +++ b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected @@ -1,8 +1,8 @@ | PublicClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicClass#stuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | | PublicClass.cs:12:24:12:34 | staticStuff | GitHub.CodeQL.PublicClass#staticStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | -| PublicClass.cs:17:20:17:33 | nonPublicStuff | GitHub.CodeQL.PublicClass#nonPublicStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | -| PublicClass.cs:27:45:27:47 | get_PublicProperty | GitHub.CodeQL.PublicClass#get_PublicProperty() | false | supported | PublicClass.cs | library | | type | unknown | classification | -| PublicClass.cs:27:50:27:52 | set_PublicProperty | GitHub.CodeQL.PublicClass#set_PublicProperty(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | +| PublicClass.cs:17:20:17:33 | protectedStuff | GitHub.CodeQL.PublicClass#protectedStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | +| PublicClass.cs:33:45:33:47 | get_PublicProperty | GitHub.CodeQL.PublicClass#get_PublicProperty() | false | supported | PublicClass.cs | library | | type | unknown | classification | +| PublicClass.cs:33:50:33:52 | set_PublicProperty | GitHub.CodeQL.PublicClass#set_PublicProperty(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | | PublicGenericClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicGenericClass<,>#stuff(T) | false | supported | PublicGenericClass.cs | library | | type | unknown | classification | | PublicGenericClass.cs:12:17:12:26 | stuff2<> | GitHub.CodeQL.PublicGenericClass<,>#stuff2<>(T2) | false | supported | PublicGenericClass.cs | library | | type | unknown | classification | | PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicGenericInterface<>#stuff(T) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | diff --git a/csharp/ql/test/utils/modeleditor/PublicClass.cs b/csharp/ql/test/utils/modeleditor/PublicClass.cs index dd5383a627d..05f5c4c4609 100644 --- a/csharp/ql/test/utils/modeleditor/PublicClass.cs +++ b/csharp/ql/test/utils/modeleditor/PublicClass.cs @@ -14,11 +14,17 @@ public class PublicClass : PublicInterface Console.WriteLine(arg); } - protected void nonPublicStuff(String arg) + protected void protectedStuff(String arg) { Console.WriteLine(arg + Console.ReadLine()); } + private void privateStuff(String arg) + { + Console.Write(Console.BackgroundColor); + Console.ForegroundColor = ConsoleColor.Red; + } + internal void internalStuff(String arg) { Console.WriteLine(arg); From edc93dfeb747225990b756f4df609f2e7d8d4f7a Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 19 Sep 2023 11:34:43 +0200 Subject: [PATCH 510/788] Add managed thread ID to extractor log messages --- .../Semmle.Autobuild.Shared/Autobuilder.cs | 2 +- .../Semmle.Autobuild.Shared/BuildActions.cs | 2 +- .../Semmle.Extraction.CIL.Driver/Program.cs | 2 +- .../DependencyManager.cs | 76 +++++++------------ .../DotNet.cs | 22 ++---- .../DotNetCliInvoker.cs | 14 ++-- .../IDotNet.cs | 6 +- .../Extractor.cs | 2 +- .../Options.cs | 5 +- .../Extractor/Extractor.cs | 4 +- .../Semmle.Extraction.Tests/DotNet.cs | 8 +- .../Semmle.Extraction.Tests/Runtime.cs | 18 +---- csharp/extractor/Semmle.Util/Logger.cs | 18 ++++- .../Semmle.Util/ProcessStartInfoExtensions.cs | 13 +++- 14 files changed, 85 insertions(+), 107 deletions(-) diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs b/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs index 6bed39efe76..c6cf3e32b7e 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs @@ -267,7 +267,7 @@ namespace Semmle.Autobuild.Shared protected DiagnosticClassifier DiagnosticClassifier { get; } - private readonly ILogger logger = new ConsoleLogger(Verbosity.Info); + private readonly ILogger logger = new ConsoleLogger(Verbosity.Info, logThreadId: false); private readonly IDiagnosticsWriter diagnostics; diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/BuildActions.cs b/csharp/autobuilder/Semmle.Autobuild.Shared/BuildActions.cs index f917e3efc8a..d3988a2bc3e 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/BuildActions.cs +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/BuildActions.cs @@ -237,7 +237,7 @@ namespace Semmle.Autobuild.Shared int IBuildActions.RunProcess(string cmd, string args, string? workingDirectory, IDictionary? environment, out IList stdOut) { var pi = GetProcessStartInfo(cmd, args, workingDirectory, environment, true); - return pi.ReadOutput(out stdOut); + return pi.ReadOutput(out stdOut, printToConsole: false); } void IBuildActions.DirectoryDelete(string dir, bool recursive) => Directory.Delete(dir, recursive); diff --git a/csharp/extractor/Semmle.Extraction.CIL.Driver/Program.cs b/csharp/extractor/Semmle.Extraction.CIL.Driver/Program.cs index 86450a91135..cb70bfe9c38 100644 --- a/csharp/extractor/Semmle.Extraction.CIL.Driver/Program.cs +++ b/csharp/extractor/Semmle.Extraction.CIL.Driver/Program.cs @@ -38,7 +38,7 @@ namespace Semmle.Extraction.CIL.Driver } var options = new ExtractorOptions(args); - using var logger = new ConsoleLogger(options.Verbosity); + using var logger = new ConsoleLogger(options.Verbosity, logThreadId: false); var actions = options.AssembliesToExtract .Select(asm => asm.Filename) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 718d90d529d..acac1dcb3ae 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -219,7 +219,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } } - public DependencyManager(string srcDir) : this(srcDir, DependencyOptions.Default, new ConsoleLogger(Verbosity.Info)) { } + public DependencyManager(string srcDir) : this(srcDir, DependencyOptions.Default, new ConsoleLogger(Verbosity.Info, logThreadId: true)) { } private IEnumerable GetAllFiles() { @@ -430,8 +430,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } - private bool RestoreProject(string project, out string stdout, string? pathToNugetConfig = null) => - dotnet.RestoreProjectToDirectory(project, packageDirectory.DirInfo.FullName, out stdout, pathToNugetConfig); + private bool RestoreProject(string project, string? pathToNugetConfig = null) => + dotnet.RestoreProjectToDirectory(project, packageDirectory.DirInfo.FullName, pathToNugetConfig); private bool RestoreSolution(string solution, out IEnumerable projects) => dotnet.RestoreSolutionToDirectory(solution, packageDirectory.DirInfo.FullName, out projects); @@ -454,25 +454,14 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// /// Executes `dotnet restore` on all projects in projects. /// This is done in parallel for performance reasons. - /// To ensure that output is not interleaved, the output of each - /// restore is collected and printed. /// /// A list of paths to project files. private void RestoreProjects(IEnumerable projects) { - var stdoutLines = projects - .AsParallel() - .WithDegreeOfParallelism(options.Threads) - .Select(project => - { - RestoreProject(project, out var stdout); - return stdout; - }) - .ToList(); - foreach (var line in stdoutLines) + Parallel.ForEach(projects, new ParallelOptions { MaxDegreeOfParallelism = options.Threads }, project => { - Console.WriteLine(line); - } + RestoreProject(project); + }); } private void DownloadMissingPackages(List allFiles) @@ -500,38 +489,29 @@ namespace Semmle.Extraction.CSharp.DependencyFetching .Select(d => Path.GetFileName(d).ToLowerInvariant()); var notYetDownloadedPackages = fileContent.AllPackages.Except(alreadyDownloadedPackages); - var stdoutLines = notYetDownloadedPackages - .AsParallel() - .WithDegreeOfParallelism(options.Threads) - .Select(package => - { - progressMonitor.NugetInstall(package); - using var tempDir = new TemporaryDirectory(ComputeTempDirectory(package)); - var success = dotnet.New(tempDir.DirInfo.FullName, out var stdout1); - if (!success) - { - return new[] { stdout1 }; - } - - success = dotnet.AddPackage(tempDir.DirInfo.FullName, package, out var stdout2); - if (!success) - { - return new[] { stdout1, stdout2 }; - } - - success = RestoreProject(tempDir.DirInfo.FullName, out var stdout3, nugetConfig); - // TODO: the restore might fail, we could retry with a prerelease (*-* instead of *) version of the package. - if (!success) - { - progressMonitor.FailedToRestoreNugetPackage(package); - } - return new[] { stdout1, stdout2, stdout3 }; - }) - .ToList(); - foreach (var line in stdoutLines.SelectMany(l => l)) + Parallel.ForEach(notYetDownloadedPackages, new ParallelOptions { MaxDegreeOfParallelism = options.Threads }, package => { - Console.WriteLine(line); - } + progressMonitor.NugetInstall(package); + using var tempDir = new TemporaryDirectory(ComputeTempDirectory(package)); + var success = dotnet.New(tempDir.DirInfo.FullName); + if (!success) + { + return; + } + + success = dotnet.AddPackage(tempDir.DirInfo.FullName, package); + if (!success) + { + return; + } + + success = RestoreProject(tempDir.DirInfo.FullName, nugetConfig); + // TODO: the restore might fail, we could retry with a prerelease (*-* instead of *) version of the package. + if (!success) + { + progressMonitor.FailedToRestoreNugetPackage(package); + } + }); } private void AnalyseSolutions(IEnumerable solutions) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs index 3e221a5a82e..8a5db9fed12 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs @@ -37,17 +37,10 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } } - private bool RunCommand(string args, out string stdout) - { - var success = dotnetCliInvoker.RunCommand(args, out var output); - stdout = string.Join("\n", output); - return success; - } - private static string GetRestoreArgs(string projectOrSolutionFile, string packageDirectory) => $"restore --no-dependencies \"{projectOrSolutionFile}\" --packages \"{packageDirectory}\" /p:DisableImplicitNuGetFallbackFolder=true"; - public bool RestoreProjectToDirectory(string projectFile, string packageDirectory, out string stdout, string? pathToNugetConfig = null) + public bool RestoreProjectToDirectory(string projectFile, string packageDirectory, string? pathToNugetConfig = null) { var args = GetRestoreArgs(projectFile, packageDirectory); if (pathToNugetConfig != null) @@ -55,7 +48,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching args += $" --configfile \"{pathToNugetConfig}\""; } - return RunCommand(args, out stdout); + return dotnetCliInvoker.RunCommand(args); } public bool RestoreSolutionToDirectory(string solutionFile, string packageDirectory, out IEnumerable projects) @@ -76,16 +69,16 @@ namespace Semmle.Extraction.CSharp.DependencyFetching return false; } - public bool New(string folder, out string stdout) + public bool New(string folder) { var args = $"new console --no-restore --output \"{folder}\""; - return RunCommand(args, out stdout); + return dotnetCliInvoker.RunCommand(args); } - public bool AddPackage(string folder, string package, out string stdout) + public bool AddPackage(string folder, string package) { var args = $"add \"{folder}\" package \"{package}\" --no-restore"; - return RunCommand(args, out stdout); + return dotnetCliInvoker.RunCommand(args); } public IList GetListedRuntimes() => GetListed("--list-runtimes", "runtime"); @@ -94,9 +87,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private IList GetListed(string args, string artifact) { - if (dotnetCliInvoker.RunCommand(args, out IList artifacts)) + if (dotnetCliInvoker.RunCommand(args, out var artifacts)) { - progressMonitor.LogInfo($"Found {artifact}s: {string.Join("\n", artifacts)}"); return artifacts; } return new List(); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs index 4a461e18f7b..3e1ca0fedb1 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs @@ -19,23 +19,23 @@ namespace Semmle.Extraction.CSharp.DependencyFetching this.Exec = exec; } - private ProcessStartInfo MakeDotnetStartInfo(string args, bool redirectStandardOutput) + private ProcessStartInfo MakeDotnetStartInfo(string args) { var startInfo = new ProcessStartInfo(Exec, args) { UseShellExecute = false, - RedirectStandardOutput = redirectStandardOutput + RedirectStandardOutput = true }; // Set the .NET CLI language to English to avoid localized output. startInfo.EnvironmentVariables["DOTNET_CLI_UI_LANGUAGE"] = "en"; return startInfo; } - private bool RunCommandAux(string args, bool redirectStandardOutput, out IList output) + private bool RunCommandAux(string args, out IList output) { progressMonitor.RunningProcess($"{Exec} {args}"); - var pi = MakeDotnetStartInfo(args, redirectStandardOutput); - var exitCode = pi.ReadOutput(out output); + var pi = MakeDotnetStartInfo(args); + var exitCode = pi.ReadOutput(out output, true); if (exitCode != 0) { progressMonitor.CommandFailed(Exec, args, exitCode); @@ -45,9 +45,9 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } public bool RunCommand(string args) => - RunCommandAux(args, redirectStandardOutput: false, out _); + RunCommandAux(args, out _); public bool RunCommand(string args, out IList output) => - RunCommandAux(args, redirectStandardOutput: true, out output); + RunCommandAux(args, out output); } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs index 832f211293b..0612d772880 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNet.cs @@ -4,10 +4,10 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { internal interface IDotNet { - bool RestoreProjectToDirectory(string project, string directory, out string stdout, string? pathToNugetConfig = null); + bool RestoreProjectToDirectory(string project, string directory, string? pathToNugetConfig = null); bool RestoreSolutionToDirectory(string solutionFile, string packageDirectory, out IEnumerable projects); - bool New(string folder, out string stdout); - bool AddPackage(string folder, string package, out string stdout); + bool New(string folder); + bool AddPackage(string folder, string package); IList GetListedRuntimes(); IList GetListedSdks(); bool Exec(string execArgs); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Extractor.cs b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Extractor.cs index a9f43af2bea..0724ad88dfd 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Extractor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Extractor.cs @@ -119,7 +119,7 @@ namespace Semmle.Extraction.CSharp.Standalone var stopwatch = new Stopwatch(); stopwatch.Start(); - using var logger = new ConsoleLogger(options.Verbosity); + using var logger = new ConsoleLogger(options.Verbosity, logThreadId: true); logger.Log(Severity.Info, "Running C# standalone extractor"); using var a = new Analysis(logger, options); var sourceFileCount = a.Extraction.Sources.Count; diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs index 07c45e375de..09ef54e8d9c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs @@ -2,6 +2,7 @@ using System.IO; using Semmle.Util; using Semmle.Util.Logging; using Semmle.Extraction.CSharp.DependencyFetching; +using System; namespace Semmle.Extraction.CSharp.Standalone { @@ -64,7 +65,7 @@ namespace Semmle.Extraction.CSharp.Standalone var fi = new FileInfo(dependencies.SolutionFile); if (!fi.Exists) { - System.Console.WriteLine("Error: The solution {0} does not exist", fi.FullName); + System.Console.WriteLine($"[{Environment.CurrentManagedThreadId:D3}] Error: The solution {fi.FullName} does not exist"); Errors = true; } return true; @@ -72,7 +73,7 @@ namespace Semmle.Extraction.CSharp.Standalone public override void InvalidArgument(string argument) { - System.Console.WriteLine($"Error: Invalid argument {argument}"); + System.Console.WriteLine($"[{Environment.CurrentManagedThreadId:D3}] Error: Invalid argument {argument}"); Errors = true; } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs index 0eb29849b8d..33674808f90 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs @@ -71,9 +71,9 @@ namespace Semmle.Extraction.CSharp public static ILogger MakeLogger(Verbosity verbosity, bool includeConsole) { - var fileLogger = new FileLogger(verbosity, GetCSharpLogPath()); + var fileLogger = new FileLogger(verbosity, GetCSharpLogPath(), logThreadId: true); return includeConsole - ? new CombinedLogger(new ConsoleLogger(verbosity), fileLogger) + ? new CombinedLogger(new ConsoleLogger(verbosity, logThreadId: true), fileLogger) : (ILogger)fileLogger; } diff --git a/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs b/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs index 97aeff37c0b..f7ede993808 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/DotNet.cs @@ -99,7 +99,7 @@ namespace Semmle.Extraction.Tests var dotnet = MakeDotnet(dotnetCliInvoker); // Execute - dotnet.RestoreProjectToDirectory("myproject.csproj", "mypackages", out var _); + dotnet.RestoreProjectToDirectory("myproject.csproj", "mypackages"); // Verify var lastArgs = dotnetCliInvoker.GetLastArgs(); @@ -114,7 +114,7 @@ namespace Semmle.Extraction.Tests var dotnet = MakeDotnet(dotnetCliInvoker); // Execute - dotnet.RestoreProjectToDirectory("myproject.csproj", "mypackages", out var _, "myconfig.config"); + dotnet.RestoreProjectToDirectory("myproject.csproj", "mypackages", "myconfig.config"); // Verify var lastArgs = dotnetCliInvoker.GetLastArgs(); @@ -164,7 +164,7 @@ namespace Semmle.Extraction.Tests var dotnet = MakeDotnet(dotnetCliInvoker); // Execute - dotnet.New("myfolder", out var _); + dotnet.New("myfolder"); // Verify var lastArgs = dotnetCliInvoker.GetLastArgs(); @@ -179,7 +179,7 @@ namespace Semmle.Extraction.Tests var dotnet = MakeDotnet(dotnetCliInvoker); // Execute - dotnet.AddPackage("myfolder", "mypackage", out var _); + dotnet.AddPackage("myfolder", "mypackage"); // Verify var lastArgs = dotnetCliInvoker.GetLastArgs(); diff --git a/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs b/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs index 6596fff55d9..2afd467f8d4 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/Runtime.cs @@ -15,23 +15,11 @@ namespace Semmle.Extraction.Tests this.runtimes = runtimes; this.sdks = sdks; } - public bool AddPackage(string folder, string package, out string stdout) - { - stdout = ""; - return true; - } + public bool AddPackage(string folder, string package) => true; - public bool New(string folder, out string stdout) - { - stdout = ""; - return true; - } + public bool New(string folder) => true; - public bool RestoreProjectToDirectory(string project, string directory, out string stdout, string? pathToNugetConfig = null) - { - stdout = ""; - return true; - } + public bool RestoreProjectToDirectory(string project, string directory, string? pathToNugetConfig = null) => true; public bool RestoreSolutionToDirectory(string solution, string directory, out IEnumerable projects) { diff --git a/csharp/extractor/Semmle.Util/Logger.cs b/csharp/extractor/Semmle.Util/Logger.cs index 1182046f693..747d43368b8 100644 --- a/csharp/extractor/Semmle.Util/Logger.cs +++ b/csharp/extractor/Semmle.Util/Logger.cs @@ -59,10 +59,12 @@ namespace Semmle.Util.Logging { private readonly StreamWriter writer; private readonly Verbosity verbosity; + private readonly bool logThreadId; - public FileLogger(Verbosity verbosity, string outputFile) + public FileLogger(Verbosity verbosity, string outputFile, bool logThreadId) { this.verbosity = verbosity; + this.logThreadId = logThreadId; try { @@ -93,7 +95,10 @@ namespace Semmle.Util.Logging public void Log(Severity s, string text) { if (verbosity.Includes(s)) - writer.WriteLine(GetSeverityPrefix(s) + text); + { + var threadId = this.logThreadId ? $"[{Environment.CurrentManagedThreadId:D3}] " : ""; + writer.WriteLine(threadId + GetSeverityPrefix(s) + text); + } } } @@ -103,10 +108,12 @@ namespace Semmle.Util.Logging public sealed class ConsoleLogger : ILogger { private readonly Verbosity verbosity; + private readonly bool logThreadId; - public ConsoleLogger(Verbosity verbosity) + public ConsoleLogger(Verbosity verbosity, bool logThreadId) { this.verbosity = verbosity; + this.logThreadId = logThreadId; } public void Dispose() { } @@ -136,7 +143,10 @@ namespace Semmle.Util.Logging public void Log(Severity s, string text) { if (verbosity.Includes(s)) - GetConsole(s).WriteLine(GetSeverityPrefix(s) + text); + { + var threadId = this.logThreadId ? $"[{Environment.CurrentManagedThreadId:D3}] " : ""; + GetConsole(s).WriteLine(threadId + GetSeverityPrefix(s) + text); + } } } diff --git a/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs b/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs index 8c58fb1876b..3f2150c224e 100644 --- a/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs +++ b/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Diagnostics; namespace Semmle.Util @@ -7,9 +8,11 @@ namespace Semmle.Util { /// /// Runs this process, and returns the exit code, as well as the contents - /// of stdout in . + /// of stdout in . If + /// is true, then stdout is printed to the console and each line is prefixed + /// with the thread id. /// - public static int ReadOutput(this ProcessStartInfo pi, out IList stdout) + public static int ReadOutput(this ProcessStartInfo pi, out IList stdout, bool printToConsole) { stdout = new List(); using var process = Process.Start(pi); @@ -27,6 +30,10 @@ namespace Semmle.Util s = process.StandardOutput.ReadLine(); if (s is not null) { + if (printToConsole) + { + Console.WriteLine($"[{Environment.CurrentManagedThreadId:D3}] {s}"); + } stdout.Add(s); } } From 7ef5971337b4a6248db0c4b8314e2f90e84e649c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 19 Sep 2023 13:58:08 +0100 Subject: [PATCH 511/788] C++: Use 'size_t' explicitly in test. --- .../query-tests/Security/CWE/CWE-193/test.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp index 056a231a17d..79966058a02 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp @@ -1,4 +1,4 @@ -void* malloc(unsigned long size); +using size_t = decltype(sizeof 0); void* malloc(size_t size); void test1(int size) { char* p = (char*)malloc(size); @@ -215,7 +215,7 @@ void test13(unsigned len, unsigned index) { bool unknown(); -void test14(unsigned long n, char *p) { +void test14(size_t n, char *p) { while (unknown()) { n++; p = (char *)malloc(n); @@ -706,7 +706,7 @@ void deref(char* q) { char x = *q; // $ deref=L714->L705->L706 // BAD } -void test35(unsigned long size, char* q) +void test35(size_t size, char* q) { char* p = new char[size]; char* end = p + size; // $ alloc=L711 @@ -734,10 +734,10 @@ void test36(unsigned size, unsigned n) { } } -void test37(unsigned long n) +void test37(size_t n) { int *p = new int[n]; - for (unsigned long i = n; i != 0u; i--) + for (size_t i = n; i != 0u; i--) { p[n - i] = 0; // GOOD } @@ -833,8 +833,8 @@ void test7_no_field_flow(int size) { test7_callee_no_field_flow(begin, end); } -void test15_with_malloc(unsigned long index) { - unsigned long size = index + 13; +void test15_with_malloc(size_t index) { + size_t size = index + 13; if(size < index) { return; } @@ -842,8 +842,8 @@ void test15_with_malloc(unsigned long index) { newname[index] = 0; // $ SPURIOUS: alloc=L841 deref=L842 // GOOD [FALSE POSITIVE] } -void test16_with_malloc(unsigned long index) { - unsigned long size = index + 13; +void test16_with_malloc(size_t index) { + size_t size = index + 13; if(size >= index) { int* newname = (int*)malloc(size); newname[index] = 0; // $ SPURIOUS: alloc=L848 deref=L849 // GOOD [FALSE POSITIVE] From c78cd73edfddf4faae8a3167e4b585ee21f2de53 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 19 Sep 2023 14:16:50 +0200 Subject: [PATCH 512/788] Refactor process starting and stdout and stderr reading --- .../Semmle.Autobuild.Shared/BuildActions.cs | 36 +++-------- .../DotNetCliInvoker.cs | 15 ++++- .../Semmle.Util/ProcessStartInfoExtensions.cs | 62 ++++++++++++------- 3 files changed, 62 insertions(+), 51 deletions(-) diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/BuildActions.cs b/csharp/autobuilder/Semmle.Autobuild.Shared/BuildActions.cs index d3988a2bc3e..4c66d867b6d 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/BuildActions.cs +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/BuildActions.cs @@ -187,12 +187,12 @@ namespace Semmle.Autobuild.Shared bool IBuildActions.FileExists(string file) => File.Exists(file); - private static ProcessStartInfo GetProcessStartInfo(string exe, string arguments, string? workingDirectory, IDictionary? environment, bool redirectStandardOutput) + private static ProcessStartInfo GetProcessStartInfo(string exe, string arguments, string? workingDirectory, IDictionary? environment) { var pi = new ProcessStartInfo(exe, arguments) { UseShellExecute = false, - RedirectStandardOutput = redirectStandardOutput + RedirectStandardOutput = true }; if (workingDirectory is not null) pi.WorkingDirectory = workingDirectory; @@ -204,40 +204,22 @@ namespace Semmle.Autobuild.Shared int IBuildActions.RunProcess(string exe, string args, string? workingDirectory, System.Collections.Generic.IDictionary? env, BuildOutputHandler onOutput, BuildOutputHandler onError) { - var pi = GetProcessStartInfo(exe, args, workingDirectory, env, true); - using var p = new Process - { - StartInfo = pi - }; - p.StartInfo.RedirectStandardError = true; - p.OutputDataReceived += new DataReceivedEventHandler((sender, e) => onOutput(e.Data)); - p.ErrorDataReceived += new DataReceivedEventHandler((sender, e) => onError(e.Data)); + var pi = GetProcessStartInfo(exe, args, workingDirectory, env); + pi.RedirectStandardError = true; - p.Start(); - - p.BeginErrorReadLine(); - p.BeginOutputReadLine(); - - p.WaitForExit(); - return p.ExitCode; + return pi.ReadOutput(out _, onOut: s => onOutput(s), onError: s => onError(s)); } int IBuildActions.RunProcess(string cmd, string args, string? workingDirectory, IDictionary? environment) { - var pi = GetProcessStartInfo(cmd, args, workingDirectory, environment, false); - using var p = Process.Start(pi); - if (p is null) - { - return -1; - } - p.WaitForExit(); - return p.ExitCode; + var pi = GetProcessStartInfo(cmd, args, workingDirectory, environment); + return pi.ReadOutput(out _, onOut: Console.WriteLine, onError: null); } int IBuildActions.RunProcess(string cmd, string args, string? workingDirectory, IDictionary? environment, out IList stdOut) { - var pi = GetProcessStartInfo(cmd, args, workingDirectory, environment, true); - return pi.ReadOutput(out stdOut, printToConsole: false); + var pi = GetProcessStartInfo(cmd, args, workingDirectory, environment); + return pi.ReadOutput(out stdOut, onOut: null, onError: null); } void IBuildActions.DirectoryDelete(string dir, bool recursive) => Directory.Delete(dir, recursive); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs index 3e1ca0fedb1..5e7c2b60803 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Diagnostics; using Semmle.Util; @@ -24,7 +25,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching var startInfo = new ProcessStartInfo(Exec, args) { UseShellExecute = false, - RedirectStandardOutput = true + RedirectStandardOutput = true, + RedirectStandardError = true }; // Set the .NET CLI language to English to avoid localized output. startInfo.EnvironmentVariables["DOTNET_CLI_UI_LANGUAGE"] = "en"; @@ -35,7 +37,16 @@ namespace Semmle.Extraction.CSharp.DependencyFetching { progressMonitor.RunningProcess($"{Exec} {args}"); var pi = MakeDotnetStartInfo(args); - var exitCode = pi.ReadOutput(out output, true); + var threadId = $"[{Environment.CurrentManagedThreadId:D3}]"; + void onOut(string s) + { + Console.Out.WriteLine($"{threadId} {s}"); + } + void onError(string s) + { + Console.Error.WriteLine($"{threadId} {s}"); + } + var exitCode = pi.ReadOutput(out output, onOut, onError); if (exitCode != 0) { progressMonitor.CommandFailed(Exec, args, exitCode); diff --git a/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs b/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs index 3f2150c224e..e4468cc9c40 100644 --- a/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs +++ b/csharp/extractor/Semmle.Util/ProcessStartInfoExtensions.cs @@ -8,38 +8,56 @@ namespace Semmle.Util { /// /// Runs this process, and returns the exit code, as well as the contents - /// of stdout in . If - /// is true, then stdout is printed to the console and each line is prefixed - /// with the thread id. + /// of stdout in . /// - public static int ReadOutput(this ProcessStartInfo pi, out IList stdout, bool printToConsole) + public static int ReadOutput(this ProcessStartInfo pi, out IList stdout, Action? onOut, Action? onError) { - stdout = new List(); - using var process = Process.Start(pi); - - if (process is null) + var @out = new List(); + using var process = new Process { - return -1; - } + StartInfo = pi + }; - if (pi.RedirectStandardOutput && !pi.UseShellExecute) + if (process.StartInfo.RedirectStandardOutput && !pi.UseShellExecute) { - string? s; - do + process.OutputDataReceived += new DataReceivedEventHandler((sender, e) => { - s = process.StandardOutput.ReadLine(); - if (s is not null) + if (e.Data == null) { - if (printToConsole) - { - Console.WriteLine($"[{Environment.CurrentManagedThreadId:D3}] {s}"); - } - stdout.Add(s); + return; } - } - while (s is not null); + + onOut?.Invoke(e.Data); + @out.Add(e.Data); + }); } + if (process.StartInfo.RedirectStandardError && !pi.UseShellExecute) + { + process.ErrorDataReceived += new DataReceivedEventHandler((sender, e) => + { + if (e.Data == null) + { + return; + } + + onError?.Invoke(e.Data); + }); + } + + process.Start(); + + if (process.StartInfo.RedirectStandardError) + { + process.BeginErrorReadLine(); + } + + if (process.StartInfo.RedirectStandardOutput) + { + process.BeginOutputReadLine(); + } + process.WaitForExit(); + stdout = @out; return process.ExitCode; } } From ee9a5c751c80183bff417999fbeaf52f09021f31 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:21:27 +0100 Subject: [PATCH 513/788] Swift: Add numeric barrier for to the JS eval query. --- .../swift/security/UnsafeJsEvalExtensions.qll | 22 ++++++++++++++----- .../Security/CWE-094/UnsafeJsEval.expected | 16 -------------- 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll index b1c353aff3c..3eb65e6460f 100644 --- a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll @@ -30,7 +30,7 @@ class UnsafeJsEvalAdditionalFlowStep extends Unit { } /** - * A default SQL injection sink for the `WKWebView` interface. + * A default javascript evaluation sink for the `WKWebView` interface. */ private class WKWebViewDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { WKWebViewDefaultUnsafeJsEvalSink() { @@ -50,7 +50,7 @@ private class WKWebViewDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { } /** - * A default SQL injection sink for the `WKUserContentController` interface. + * A default javascript evaluation sink for the `WKUserContentController` interface. */ private class WKUserContentControllerDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { WKUserContentControllerDefaultUnsafeJsEvalSink() { @@ -61,7 +61,7 @@ private class WKUserContentControllerDefaultUnsafeJsEvalSink extends UnsafeJsEva } /** - * A default SQL injection sink for the `UIWebView` and `WebView` interfaces. + * A default javascript evaluation sink for the `UIWebView` and `WebView` interfaces. */ private class UIWebViewDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { UIWebViewDefaultUnsafeJsEvalSink() { @@ -74,7 +74,7 @@ private class UIWebViewDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { } /** - * A default SQL injection sink for the `JSContext` interface. + * A default javascript evaluation sink for the `JSContext` interface. */ private class JSContextDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { JSContextDefaultUnsafeJsEvalSink() { @@ -87,7 +87,7 @@ private class JSContextDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { } /** - * A default SQL injection sink for the `JSEvaluateScript` function. + * A default javascript evaluation sink for the `JSEvaluateScript` function. */ private class JSEvaluateScriptDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { JSEvaluateScriptDefaultUnsafeJsEvalSink() { @@ -98,7 +98,7 @@ private class JSEvaluateScriptDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { } /** - * A default SQL injection additional taint step. + * A default javascript evaluation additional taint step. */ private class DefaultUnsafeJsEvalAdditionalFlowStep extends UnsafeJsEvalAdditionalFlowStep { override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { @@ -120,3 +120,13 @@ private class DefaultUnsafeJsEvalAdditionalFlowStep extends UnsafeJsEvalAddition private class DefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { DefaultUnsafeJsEvalSink() { sinkNode(this, "code-injection") } } + +/** + * A barrier for javascript evaluation. + */ +private class UnsafeJsEvalDefaultBarrier extends UnsafeJsEvalBarrier { + UnsafeJsEvalDefaultBarrier() { + // any numeric type + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + } +} diff --git a/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected b/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected index fa14ba0ccdd..da56e96c094 100644 --- a/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected +++ b/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected @@ -4,7 +4,6 @@ edges | UnsafeJsEval.swift:201:21:201:35 | call to getRemoteData() | UnsafeJsEval.swift:205:7:205:7 | remoteString | | UnsafeJsEval.swift:201:21:201:35 | call to getRemoteData() | UnsafeJsEval.swift:208:7:208:39 | ... .+(_:_:) ... | | UnsafeJsEval.swift:201:21:201:35 | call to getRemoteData() | UnsafeJsEval.swift:211:24:211:37 | .utf8 | -| UnsafeJsEval.swift:201:21:201:35 | call to getRemoteData() | UnsafeJsEval.swift:217:35:217:35 | remoteString | | UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:265:13:265:13 | string | | UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:268:13:268:13 | string | | UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:276:13:276:13 | string | @@ -33,16 +32,6 @@ edges | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:285:13:285:13 | string | | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:299:13:299:13 | string | | UnsafeJsEval.swift:214:24:214:24 | remoteData | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | -| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:265:13:265:13 | string | -| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:268:13:268:13 | string | -| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:276:13:276:13 | string | -| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:279:13:279:13 | string | -| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:285:13:285:13 | string | -| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | UnsafeJsEval.swift:299:13:299:13 | string | -| UnsafeJsEval.swift:217:24:217:53 | call to String.init(_:) | UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | -| UnsafeJsEval.swift:217:31:217:47 | call to Self.init(_:) | UnsafeJsEval.swift:217:31:217:52 | ... ??(_:_:) ... | -| UnsafeJsEval.swift:217:31:217:52 | ... ??(_:_:) ... | UnsafeJsEval.swift:217:24:217:53 | call to String.init(_:) | -| UnsafeJsEval.swift:217:35:217:35 | remoteString | UnsafeJsEval.swift:217:31:217:47 | call to Self.init(_:) | | UnsafeJsEval.swift:265:13:265:13 | string | UnsafeJsEval.swift:266:43:266:43 | string | | UnsafeJsEval.swift:266:43:266:43 | string | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | | UnsafeJsEval.swift:268:13:268:13 | string | UnsafeJsEval.swift:269:43:269:43 | string | @@ -78,11 +67,6 @@ nodes | UnsafeJsEval.swift:211:24:211:37 | .utf8 | semmle.label | .utf8 | | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | semmle.label | call to String.init(decoding:as:) | | UnsafeJsEval.swift:214:24:214:24 | remoteData | semmle.label | remoteData | -| UnsafeJsEval.swift:217:7:217:57 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | -| UnsafeJsEval.swift:217:24:217:53 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| UnsafeJsEval.swift:217:31:217:47 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| UnsafeJsEval.swift:217:31:217:52 | ... ??(_:_:) ... | semmle.label | ... ??(_:_:) ... | -| UnsafeJsEval.swift:217:35:217:35 | remoteString | semmle.label | remoteString | | UnsafeJsEval.swift:265:13:265:13 | string | semmle.label | string | | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | semmle.label | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | | UnsafeJsEval.swift:266:43:266:43 | string | semmle.label | string | From 903b0f5bab5b6dbf30eb87c9573af3770d0fbc54 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:31:48 +0100 Subject: [PATCH 514/788] Swift: Add numeric barrier for the SQL Injinjection query. --- .../swift/security/SqlInjectionExtensions.qll | 10 ++++++++++ .../test/query-tests/Security/CWE-089/SQLite.swift | 2 +- .../Security/CWE-089/SqlInjection.expected | 14 -------------- .../Security/CWE-089/sqlite3_c_api.swift | 2 +- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll index 1aac3571f53..48b2cadb3a8 100644 --- a/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll @@ -153,3 +153,13 @@ private class GrdbDefaultSqlInjectionSink extends SqlInjectionSink { private class DefaultSqlInjectionSink extends SqlInjectionSink { DefaultSqlInjectionSink() { sinkNode(this, "sql-injection") } } + +/** + * A barrier for SQL injection. + */ +private class SqlInjectionDefaultBarrier extends SqlInjectionBarrier { + SqlInjectionDefaultBarrier() { + // any numeric type + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + } +} diff --git a/swift/ql/test/query-tests/Security/CWE-089/SQLite.swift b/swift/ql/test/query-tests/Security/CWE-089/SQLite.swift index 7746c02a9d5..f9a6b41340c 100644 --- a/swift/ql/test/query-tests/Security/CWE-089/SQLite.swift +++ b/swift/ql/test/query-tests/Security/CWE-089/SQLite.swift @@ -74,7 +74,7 @@ func test_sqlite_swift_api(db: Connection) throws { try db.execute(unsafeQuery2) // BAD try db.execute(unsafeQuery3) // BAD try db.execute(safeQuery1) // GOOD - try db.execute(safeQuery2) // GOOD [FALSE POSITIVE] + try db.execute(safeQuery2) // GOOD // --- prepared statements --- diff --git a/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected b/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected index 65b3383cdef..a4617e9b811 100644 --- a/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected @@ -82,7 +82,6 @@ edges | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:349:84:349:84 | remoteString | | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:350:69:350:69 | remoteString | | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:351:84:351:84 | remoteString | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:63:25:63:25 | remoteString | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:73:17:73:17 | unsafeQuery1 | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:74:17:74:17 | unsafeQuery2 | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:75:17:75:17 | unsafeQuery3 | @@ -98,9 +97,6 @@ edges | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:117:16:117:16 | unsafeQuery1 | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:119:16:119:16 | unsafeQuery1 | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:132:20:132:20 | remoteString | -| SQLite.swift:63:21:63:37 | call to Self.init(_:) | SQLite.swift:77:17:77:17 | safeQuery2 | -| SQLite.swift:63:25:63:25 | remoteString | SQLite.swift:63:21:63:37 | call to Self.init(_:) | -| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:123:25:123:25 | remoteString | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | @@ -108,8 +104,6 @@ edges | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | -| sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | -| sqlite3_c_api.swift:123:25:123:25 | remoteString | sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | | sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | | sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | sqlite3_c_api.swift:190:2:190:2 | data | | sqlite3_c_api.swift:190:2:190:2 | data | sqlite3_c_api.swift:190:21:190:21 | [post] buffer | @@ -213,12 +207,9 @@ nodes | GRDB.swift:350:69:350:69 | remoteString | semmle.label | remoteString | | GRDB.swift:351:84:351:84 | remoteString | semmle.label | remoteString | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | -| SQLite.swift:63:21:63:37 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| SQLite.swift:63:25:63:25 | remoteString | semmle.label | remoteString | | SQLite.swift:73:17:73:17 | unsafeQuery1 | semmle.label | unsafeQuery1 | | SQLite.swift:74:17:74:17 | unsafeQuery2 | semmle.label | unsafeQuery2 | | SQLite.swift:75:17:75:17 | unsafeQuery3 | semmle.label | unsafeQuery3 | -| SQLite.swift:77:17:77:17 | safeQuery2 | semmle.label | safeQuery2 | | SQLite.swift:83:29:83:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | | SQLite.swift:95:32:95:32 | remoteString | semmle.label | remoteString | | SQLite.swift:100:29:100:29 | unsafeQuery1 | semmle.label | unsafeQuery1 | @@ -232,12 +223,9 @@ nodes | SQLite.swift:119:16:119:16 | unsafeQuery1 | semmle.label | unsafeQuery1 | | SQLite.swift:132:20:132:20 | remoteString | semmle.label | remoteString | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | -| sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| sqlite3_c_api.swift:123:25:123:25 | remoteString | semmle.label | remoteString | | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | semmle.label | unsafeQuery1 | | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | semmle.label | unsafeQuery2 | | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | semmle.label | unsafeQuery3 | -| sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | semmle.label | safeQuery2 | | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | semmle.label | unsafeQuery3 | | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | @@ -336,7 +324,6 @@ subpaths | SQLite.swift:73:17:73:17 | unsafeQuery1 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:73:17:73:17 | unsafeQuery1 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:74:17:74:17 | unsafeQuery2 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:74:17:74:17 | unsafeQuery2 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:75:17:75:17 | unsafeQuery3 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:75:17:75:17 | unsafeQuery3 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | -| SQLite.swift:77:17:77:17 | safeQuery2 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:77:17:77:17 | safeQuery2 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:83:29:83:29 | unsafeQuery3 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:83:29:83:29 | unsafeQuery3 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:95:32:95:32 | remoteString | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:95:32:95:32 | remoteString | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:100:29:100:29 | unsafeQuery1 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:100:29:100:29 | unsafeQuery1 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | @@ -352,7 +339,6 @@ subpaths | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | -| sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-089/sqlite3_c_api.swift b/swift/ql/test/query-tests/Security/CWE-089/sqlite3_c_api.swift index 06846cd2072..8498d89d68d 100644 --- a/swift/ql/test/query-tests/Security/CWE-089/sqlite3_c_api.swift +++ b/swift/ql/test/query-tests/Security/CWE-089/sqlite3_c_api.swift @@ -134,7 +134,7 @@ func test_sqlite3_c_api(db: OpaquePointer?, buffer: UnsafeMutablePointer) let result2 = sqlite3_exec(db, unsafeQuery2, nil, nil, nil) // BAD let result3 = sqlite3_exec(db, unsafeQuery3, nil, nil, nil) // BAD let result4 = sqlite3_exec(db, safeQuery1, nil, nil, nil) // GOOD - let result5 = sqlite3_exec(db, safeQuery2, nil, nil, nil) // GOOD [FALSE POSITIVE] + let result5 = sqlite3_exec(db, safeQuery2, nil, nil, nil) // GOOD // --- prepared statements --- From f98de85e36b0542dc99cc547b2157a97d46dcf78 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 14:09:22 +0100 Subject: [PATCH 515/788] Swift: Add numeric barrier for command injection query. --- .../swift/security/CommandInjectionExtensions.qll | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll index 5b1cc065ec2..5d78e82e76d 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll @@ -69,3 +69,13 @@ private class CommandInjectionSinks extends SinkModelCsv { ] } } + +/** + * A barrier for command injection vulnerabilities. + */ +private class CommandInjectionDefaultBarrier extends CommandInjectionBarrier { + CommandInjectionDefaultBarrier() { + // any numeric type + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + } +} From 2983295ba35225fc3261c65e12db70f63aa3f825 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 14:19:12 +0100 Subject: [PATCH 516/788] Swift: Add numeric barrier for uncontrolled format string query. --- .../UncontrolledFormatStringExtensions.qll | 10 ++++++++++ .../CWE-134/UncontrolledFormatString.expected | 18 ------------------ .../CWE-134/UncontrolledFormatString.swift | 4 ++-- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll b/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll index c2d587a35c2..835d4b1e65c 100644 --- a/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll @@ -42,3 +42,13 @@ private class DefaultUncontrolledFormatStringSink extends UncontrolledFormatStri sinkNode(this, "format-string") } } + +/** + * A barrier for uncontrolled format string vulnerabilities. + */ +private class UncontrolledFormatStringDefaultBarrier extends UncontrolledFormatStringBarrier { + UncontrolledFormatStringDefaultBarrier() { + // any numeric type + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + } +} diff --git a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected index 016c07cc252..3a2d4eb80c6 100644 --- a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected +++ b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected @@ -12,18 +12,10 @@ edges | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:85:72:85:72 | tainted | | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:88:11:88:11 | tainted | | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:91:61:91:61 | tainted | -| UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:93:26:93:26 | tainted | -| UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:97:27:97:27 | tainted | | UncontrolledFormatString.swift:81:47:81:47 | tainted | UncontrolledFormatString.swift:81:30:81:54 | call to NSString.init(string:) | | UncontrolledFormatString.swift:82:65:82:65 | tainted | UncontrolledFormatString.swift:82:48:82:72 | call to NSString.init(string:) | | UncontrolledFormatString.swift:84:54:84:54 | tainted | UncontrolledFormatString.swift:84:37:84:61 | call to NSString.init(string:) | | UncontrolledFormatString.swift:85:72:85:72 | tainted | UncontrolledFormatString.swift:85:55:85:79 | call to NSString.init(string:) | -| UncontrolledFormatString.swift:93:22:93:33 | call to Self.init(_:) | UncontrolledFormatString.swift:95:28:95:28 | taintedSan | -| UncontrolledFormatString.swift:93:26:93:26 | tainted | UncontrolledFormatString.swift:93:22:93:33 | call to Self.init(_:) | -| UncontrolledFormatString.swift:97:23:97:34 | call to Self.init(_:) | UncontrolledFormatString.swift:98:30:98:30 | taintedVal2 | -| UncontrolledFormatString.swift:97:27:97:27 | tainted | UncontrolledFormatString.swift:97:23:97:34 | call to Self.init(_:) | -| UncontrolledFormatString.swift:98:23:98:41 | call to String.init(_:) | UncontrolledFormatString.swift:99:28:99:28 | taintedSan2 | -| UncontrolledFormatString.swift:98:30:98:30 | taintedVal2 | UncontrolledFormatString.swift:98:23:98:41 | call to String.init(_:) | nodes | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | UncontrolledFormatString.swift:70:28:70:28 | tainted | semmle.label | tainted | @@ -43,14 +35,6 @@ nodes | UncontrolledFormatString.swift:85:72:85:72 | tainted | semmle.label | tainted | | UncontrolledFormatString.swift:88:11:88:11 | tainted | semmle.label | tainted | | UncontrolledFormatString.swift:91:61:91:61 | tainted | semmle.label | tainted | -| UncontrolledFormatString.swift:93:22:93:33 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| UncontrolledFormatString.swift:93:26:93:26 | tainted | semmle.label | tainted | -| UncontrolledFormatString.swift:95:28:95:28 | taintedSan | semmle.label | taintedSan | -| UncontrolledFormatString.swift:97:23:97:34 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| UncontrolledFormatString.swift:97:27:97:27 | tainted | semmle.label | tainted | -| UncontrolledFormatString.swift:98:23:98:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| UncontrolledFormatString.swift:98:30:98:30 | taintedVal2 | semmle.label | taintedVal2 | -| UncontrolledFormatString.swift:99:28:99:28 | taintedSan2 | semmle.label | taintedSan2 | subpaths #select | UncontrolledFormatString.swift:70:28:70:28 | tainted | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:70:28:70:28 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | @@ -66,5 +50,3 @@ subpaths | UncontrolledFormatString.swift:85:55:85:79 | call to NSString.init(string:) | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:85:55:85:79 | call to NSString.init(string:) | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:88:11:88:11 | tainted | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:88:11:88:11 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:91:61:91:61 | tainted | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:91:61:91:61 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | -| UncontrolledFormatString.swift:95:28:95:28 | taintedSan | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:95:28:95:28 | taintedSan | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | -| UncontrolledFormatString.swift:99:28:99:28 | taintedSan2 | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:99:28:99:28 | taintedSan2 | This format string depends on $@. | UncontrolledFormatString.swift:64:24:64:77 | call to String.init(contentsOf:) | this user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.swift b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.swift index d534ca552e3..e5665eedeac 100644 --- a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.swift +++ b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.swift @@ -92,9 +92,9 @@ func tests() { let taintedVal = Int(tainted)! let taintedSan = "\(taintedVal)" - let q = String(format: taintedSan) // GOOD: sufficiently sanitized [FALSE POSITIVE] + let q = String(format: taintedSan) // GOOD: sufficiently sanitized let taintedVal2 = Int(tainted) ?? 0 let taintedSan2 = String(taintedVal2) - let r = String(format: taintedSan2) // GOOD: sufficiently sanitized [FALSE POSITIVE] + let r = String(format: taintedSan2) // GOOD: sufficiently sanitized } From 597554609827c6320bc78c6bb08216d0bd7eb3a5 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 14:21:04 +0100 Subject: [PATCH 517/788] Swift: Add numeric barrier for predicate injection query as well. --- .../swift/security/PredicateInjectionExtensions.qll | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll index e703d1d21e8..9e5a8a8e57b 100644 --- a/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll @@ -39,3 +39,13 @@ private class PredicateInjectionSinkCsv extends SinkModelCsv { ] } } + +/** + * A barrier for predicate injection vulnerabilities vulnerabilities. + */ +private class PredicateInjectionDefaultBarrier extends PredicateInjectionBarrier { + PredicateInjectionDefaultBarrier() { + // any numeric type + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + } +} From f58dd7303ca46567df6ff08b4752c4cc8a38261c Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Mon, 4 Sep 2023 10:04:00 +0200 Subject: [PATCH 518/788] fix typo --- docs/prepare-db-upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prepare-db-upgrade.md b/docs/prepare-db-upgrade.md index 8db7e8fc630..8828e4acb4f 100644 --- a/docs/prepare-db-upgrade.md +++ b/docs/prepare-db-upgrade.md @@ -37,7 +37,7 @@ The `compatibility` field takes one of four values: * **breaking**: the step is unsafe and will prevent certain queries from working. -The `some_relation.rel` line(s) are the actions required to perform the database upgrade. Do a diff on the the new vs old `.dbscheme` file to get an idea of what they have to achieve. Sometimes you won't need any upgrade commands – this happens when the dbscheme has changed in "cosmetic" ways, for example by adding/removing comments or changing union type relationships, but still retains the same on-disk format for all tables; the purpose of the upgrade script is then to document the fact that it's safe to replace the old dbscheme with the new one. +The `some_relation.rel` line(s) are the actions required to perform the database upgrade. Do a diff on the new vs old `.dbscheme` file to get an idea of what they have to achieve. Sometimes you won't need any upgrade commands – this happens when the dbscheme has changed in "cosmetic" ways, for example by adding/removing comments or changing union type relationships, but still retains the same on-disk format for all tables; the purpose of the upgrade script is then to document the fact that it's safe to replace the old dbscheme with the new one. Ideally, your downgrade script will perfectly revert the changes applied by the upgrade script, such that applying the upgrade and then the downgrade will result in the same database you started with. From 278d0fb7984ad9bfcabf159856bd72219d93338c Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Mon, 4 Sep 2023 10:06:37 +0200 Subject: [PATCH 519/788] fix typo --- docs/qldoc-style-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/qldoc-style-guide.md b/docs/qldoc-style-guide.md index b8329e7a338..b4c356bf189 100644 --- a/docs/qldoc-style-guide.md +++ b/docs/qldoc-style-guide.md @@ -30,7 +30,7 @@ Valid QL comments are known as QLDoc. This document describes the recommended st 1. Public declarations must be documented. 1. Non-public declarations should be documented. 1. Declarations in query files should be documented. -1. Library files (`.qll` files) should be have a documentation comment at the top of the file. +1. Library files (`.qll` files) should have a documentation comment at the top of the file. 1. Query files, except for tests, must have a QLDoc query documentation comment at the top of the file. ## QLDoc for predicates From 884f41b6f090c5c42ef7a338a17c8962863153b3 Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Mon, 4 Sep 2023 10:10:01 +0200 Subject: [PATCH 520/788] fix typo --- docs/codeql/ql-language-reference/expressions.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/ql-language-reference/expressions.rst b/docs/codeql/ql-language-reference/expressions.rst index 29771fde93d..020c778a3d7 100644 --- a/docs/codeql/ql-language-reference/expressions.rst +++ b/docs/codeql/ql-language-reference/expressions.rst @@ -557,7 +557,7 @@ for a given ``f``. In this query, oranges are available at two different prices, and the default ``sum`` aggregate returns a single line where Alice buys an orange at a price of 100, another orange at a price of 1, and an apple -at a price of 100, totalling 201. On the other hand, in the the +at a price of 100, totalling 201. On the other hand, in the *monotonic* semantics for ``sum``, Alice always buys one orange and one apple, and a line of output is produced for each *way* she can complete her shopping list. From 473f17c0e6108cff832f604346583616a1a6f381 Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Mon, 4 Sep 2023 10:11:40 +0200 Subject: [PATCH 521/788] fix typo --- docs/codeql/ql-language-reference/annotations.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/ql-language-reference/annotations.rst b/docs/codeql/ql-language-reference/annotations.rst index f99a9dc2e18..fa1f9bfc76e 100644 --- a/docs/codeql/ql-language-reference/annotations.rst +++ b/docs/codeql/ql-language-reference/annotations.rst @@ -302,7 +302,7 @@ after join ordering. This can be useful to prevent the optimiser from choosing a sub-optimal join order. For instance, in the example below, the ``pragma[inline_late]`` and -``bindingset[x]`` annotations specifiy that calls to ``p`` should be join ordered +``bindingset[x]`` annotations specify that calls to ``p`` should be join ordered in a context where ``x`` is already bound. This forces the join orderer to order ``q(x)`` before ``p(x)``, which is more computationally efficient than ordering ``p(x)`` before ``q(x)``. From 32a2930c2ffe1784158328ae60785b2a92a2c3e1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 14:47:56 +0100 Subject: [PATCH 522/788] Swift: Accept bad tag filter test fixes. --- .../Security/CWE-116/BadTagFilter.expected | 6 ++++++ .../ql/test/query-tests/Security/CWE-116/test.swift | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-116/BadTagFilter.expected b/swift/ql/test/query-tests/Security/CWE-116/BadTagFilter.expected index 2f9dbc0e765..452c8c44033 100644 --- a/swift/ql/test/query-tests/Security/CWE-116/BadTagFilter.expected +++ b/swift/ql/test/query-tests/Security/CWE-116/BadTagFilter.expected @@ -1,18 +1,24 @@ | test.swift:79:26:79:48 | .*?<\\/script> | This regular expression does not match script end tags like . | +| test.swift:83:27:83:54 | (?is).*?<\\/script> | This regular expression does not match script end tags like . | | test.swift:86:27:86:49 | .*?<\\/script> | This regular expression does not match script end tags like . | | test.swift:90:50:90:72 | .*?<\\/script> | This regular expression does not match script end tags like . | | test.swift:113:26:113:35 | )\|([^\\/\\s>]+)[\\S\\s]*?> | Comments ending with --> are matched differently from comments ending with --!>. The first is matched with capture group 1 and comments ending with --!> are matched with capture group 2. | diff --git a/swift/ql/test/query-tests/Security/CWE-116/test.swift b/swift/ql/test/query-tests/Security/CWE-116/test.swift index 7a5412cf868..e2e88135dd6 100644 --- a/swift/ql/test/query-tests/Security/CWE-116/test.swift +++ b/swift/ql/test/query-tests/Security/CWE-116/test.swift @@ -79,7 +79,7 @@ func myRegexpVariantsTests(myUrl: URL) throws { let re1 = try Regex(#".*?<\/script>"#).ignoresCase(true) _ = try re1.firstMatch(in: tainted) - // BAD - doesn't match `` [NOT DETECTED - all regexs with mode flags are currently missed by the query] + // BAD - doesn't match `` let re2a = try Regex(#"(?is).*?<\/script>"#) _ = try re2a.firstMatch(in: tainted) // BAD - doesn't match `` @@ -125,7 +125,7 @@ func myRegexpVariantsTests(myUrl: URL) throws { let re9 = try Regex(#".*?<\/script[^>]*>"#).ignoresCase(true).dotMatchesNewlines(true) _ = try re9.firstMatch(in: tainted) - // BAD - does not match double quotes for attribute values [NOT DETECTED] + // BAD - does not match double quotes for attribute values let re10a = try Regex(#"(?is).*?<\/script[^>]*>"#) _ = try re10a.firstMatch(in: tainted) // BAD - does not match double quotes for attribute values @@ -136,7 +136,7 @@ func myRegexpVariantsTests(myUrl: URL) throws { let ns10 = try NSRegularExpression(pattern: #".*?<\/script[^>]*>"#, options: options10) _ = ns10.firstMatch(in: tainted, range: NSMakeRange(0, tainted.utf16.count)) - // BAD - does not match tabs between attributes [NOT DETECTED] + // BAD - does not match tabs between attributes let re11a = try Regex(#"(?is).*?<\/script[^>]*>"#) _ = try re11a.firstMatch(in: tainted) // BAD - does not match tabs between attributes @@ -147,7 +147,7 @@ func myRegexpVariantsTests(myUrl: URL) throws { let ns11 = try NSRegularExpression(pattern: #".*?<\/script[^>]*>"#, options: options11) _ = ns11.firstMatch(in: tainted, range: NSMakeRange(0, tainted.utf16.count)) - // BAD - does not match uppercase SCRIPT tags [NOT DETECTED] + // BAD - does not match uppercase SCRIPT tags let re12a = try Regex(#"(?s).*?<\/script[^>]*>"#) _ = try re12a.firstMatch(in: tainted) // BAD - does not match uppercase SCRIPT tags @@ -157,7 +157,7 @@ func myRegexpVariantsTests(myUrl: URL) throws { let ns12 = try NSRegularExpression(pattern: #".*?<\/script[^>]*>"#, options: .dotMatchesLineSeparators) _ = ns12.firstMatch(in: tainted, range: NSMakeRange(0, tainted.utf16.count)) - // BAD - does not match mixed case script tags [NOT DETECTED] + // BAD - does not match mixed case script tags let re13a = try Regex(#"(?s)<(script|SCRIPT).*?>.*?<\/(script|SCRIPT)[^>]*>"#) _ = try re13a.firstMatch(in: tainted) // BAD - does not match mixed case script tags @@ -167,7 +167,7 @@ func myRegexpVariantsTests(myUrl: URL) throws { let ns13 = try NSRegularExpression(pattern: #"<(script|SCRIPT).*?>.*?<\/(script|SCRIPT)[^>]*>"#, options: .dotMatchesLineSeparators) _ = ns13.firstMatch(in: tainted, range: NSMakeRange(0, tainted.utf16.count)) - // BAD - doesn't match newlines in the end tag [NOT DETECTED] + // BAD - doesn't match newlines in the end tag let re14a = try Regex(#"(?i)]*?>[\s\S]*?<\/script.*>"#) _ = try re14a.firstMatch(in: tainted) // BAD - doesn't match newlines in the end tag From eace7a4bbff80f9ced9994b56a3d9408f295e56e Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Tue, 19 Sep 2023 15:49:35 +0200 Subject: [PATCH 523/788] C#: Add tests for supported framework methods --- .../FetchFrameworkModeMethods.expected | 4 ++++ .../FetchFrameworkModeMethods.ext.yml | 24 +++++++++++++++++++ .../ql/test/utils/modeleditor/PublicClass.cs | 20 ++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.ext.yml diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected index 177ed1d98ec..c1fdfc764c9 100644 --- a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected +++ b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected @@ -3,6 +3,10 @@ | PublicClass.cs:17:20:17:33 | protectedStuff | GitHub.CodeQL.PublicClass#protectedStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | | PublicClass.cs:33:45:33:47 | get_PublicProperty | GitHub.CodeQL.PublicClass#get_PublicProperty() | false | supported | PublicClass.cs | library | | type | unknown | classification | | PublicClass.cs:33:50:33:52 | set_PublicProperty | GitHub.CodeQL.PublicClass#set_PublicProperty(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | +| PublicClass.cs:35:19:35:30 | summaryStuff | GitHub.CodeQL.PublicClass#summaryStuff(System.String) | true | supported | PublicClass.cs | library | summary | type | unknown | classification | +| PublicClass.cs:40:19:40:29 | sourceStuff | GitHub.CodeQL.PublicClass#sourceStuff() | true | supported | PublicClass.cs | library | source | type | unknown | classification | +| PublicClass.cs:45:17:45:25 | sinkStuff | GitHub.CodeQL.PublicClass#sinkStuff(System.String) | true | supported | PublicClass.cs | library | sink | type | unknown | classification | +| PublicClass.cs:50:17:50:28 | neutralStuff | GitHub.CodeQL.PublicClass#neutralStuff(System.String) | true | supported | PublicClass.cs | library | neutral | type | unknown | classification | | PublicGenericClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicGenericClass<,>#stuff(T) | false | supported | PublicGenericClass.cs | library | | type | unknown | classification | | PublicGenericClass.cs:12:17:12:26 | stuff2<> | GitHub.CodeQL.PublicGenericClass<,>#stuff2<>(T2) | false | supported | PublicGenericClass.cs | library | | type | unknown | classification | | PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicGenericInterface<>#stuff(T) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.ext.yml b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.ext.yml new file mode 100644 index 00000000000..f624dfea64a --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.ext.yml @@ -0,0 +1,24 @@ +extensions: + - addsTo: + pack: codeql/csharp-all + extensible: sourceModel + data: + - ["GitHub.CodeQL","PublicClass",true,"sourceStuff","()","","ReturnValue","remote","manual"] + + - addsTo: + pack: codeql/csharp-all + extensible: sinkModel + data: + - ["GitHub.CodeQL","PublicClass",true,"sinkStuff","(System.String)","","Argument[0]","sql-injection","manual"] + + - addsTo: + pack: codeql/csharp-all + extensible: summaryModel + data: + - ["GitHub.CodeQL","PublicClass",true,"summaryStuff","(System.String)","","Argument[0]","ReturnValue","taint","manual"] + + - addsTo: + pack: codeql/csharp-all + extensible: neutralModel + data: + - ["GitHub.CodeQL","PublicClass","neutralStuff","(System.String)","summary","manual"] diff --git a/csharp/ql/test/utils/modeleditor/PublicClass.cs b/csharp/ql/test/utils/modeleditor/PublicClass.cs index 05f5c4c4609..bd10a76472b 100644 --- a/csharp/ql/test/utils/modeleditor/PublicClass.cs +++ b/csharp/ql/test/utils/modeleditor/PublicClass.cs @@ -31,4 +31,24 @@ public class PublicClass : PublicInterface } string PublicInterface.PublicProperty { get; set; } + + public string summaryStuff(String arg) + { + return arg; + } + + public string sourceStuff() + { + return "stuff"; + } + + public void sinkStuff(String arg) + { + // do nothing + } + + public void neutralStuff(String arg) + { + // do nothing + } } From 044fb9f320a0028319bf94501f9c917280c130fe Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Tue, 19 Sep 2023 15:51:12 +0200 Subject: [PATCH 524/788] C#: Rename queries from fetch methods to endpoints --- ...etchApplicationModeMethods.ql => ApplicationModeEndpoints.ql} | 0 .../{FetchFrameworkModeMethods.ql => FrameworkModeEndpoints.ql} | 0 ...ionModeMethods.expected => ApplicationModeEndpoints.expected} | 0 csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.qlref | 1 + .../ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref | 1 - csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref | 1 - ...eworkModeMethods.expected => FrameworkModeEndpoints.expected} | 0 ...ameworkModeMethods.ext.yml => FrameworkModeEndpoints.ext.yml} | 0 csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.qlref | 1 + 9 files changed, 2 insertions(+), 2 deletions(-) rename csharp/ql/src/utils/modeleditor/{FetchApplicationModeMethods.ql => ApplicationModeEndpoints.ql} (100%) rename csharp/ql/src/utils/modeleditor/{FetchFrameworkModeMethods.ql => FrameworkModeEndpoints.ql} (100%) rename csharp/ql/test/utils/modeleditor/{FetchApplicationModeMethods.expected => ApplicationModeEndpoints.expected} (100%) create mode 100644 csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.qlref delete mode 100644 csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref delete mode 100644 csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref rename csharp/ql/test/utils/modeleditor/{FetchFrameworkModeMethods.expected => FrameworkModeEndpoints.expected} (100%) rename csharp/ql/test/utils/modeleditor/{FetchFrameworkModeMethods.ext.yml => FrameworkModeEndpoints.ext.yml} (100%) create mode 100644 csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.qlref diff --git a/csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql similarity index 100% rename from csharp/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql rename to csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql diff --git a/csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql similarity index 100% rename from csharp/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql rename to csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql diff --git a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected similarity index 100% rename from csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected rename to csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected diff --git a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.qlref b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.qlref new file mode 100644 index 00000000000..4787fa5d4b2 --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.qlref @@ -0,0 +1 @@ +utils/modeleditor/ApplicationModeEndpoints.ql \ No newline at end of file diff --git a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref b/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref deleted file mode 100644 index 9d245465731..00000000000 --- a/csharp/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref +++ /dev/null @@ -1 +0,0 @@ -utils/modeleditor/FetchApplicationModeMethods.ql \ No newline at end of file diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref b/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref deleted file mode 100644 index 39bdee5a08d..00000000000 --- a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref +++ /dev/null @@ -1 +0,0 @@ -utils/modeleditor/FetchFrameworkModeMethods.ql \ No newline at end of file diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected b/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected similarity index 100% rename from csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected rename to csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected diff --git a/csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.ext.yml b/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.ext.yml similarity index 100% rename from csharp/ql/test/utils/modeleditor/FetchFrameworkModeMethods.ext.yml rename to csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.ext.yml diff --git a/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.qlref b/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.qlref new file mode 100644 index 00000000000..5ae87455edd --- /dev/null +++ b/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.qlref @@ -0,0 +1 @@ +utils/modeleditor/FrameworkModeEndpoints.ql \ No newline at end of file From 3ebb9e16bed07323395109d43d892b7fd9bae001 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Tue, 19 Sep 2023 15:54:15 +0200 Subject: [PATCH 525/788] C#: Update query id/tags and documentation --- .../utils/modeleditor/ApplicationModeEndpoints.ql | 12 +++++------- .../src/utils/modeleditor/FrameworkModeEndpoints.ql | 8 ++++---- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index c942970fa5b..c8f6347d2c3 100644 --- a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -1,19 +1,17 @@ /** - * @name Fetch model editor methods (application mode) - * @description A list of 3rd party APIs used in the codebase. Excludes test and generated code. + * @name Fetch endpoints for use in the model editor (application mode) + * @description A list of 3rd party endpoints (methods and attributes) used in the codebase. Excludes test and generated code. * @kind problem * @problem.severity recommendation - * @id csharp/utils/modeleditor/fetch-application-mode-methods - * @tags modeleditor fetch methods application-mode + * @id csharp/utils/modeleditor/application-mode-endpoints + * @tags modeleditor endpoints application-mode */ private import csharp private import ModelEditor class ExternalEndpoint extends Endpoint { - ExternalEndpoint() { - this.fromLibrary() - } + ExternalEndpoint() { this.fromLibrary() } } private Call aUsage(ExternalEndpoint api) { result.getTarget().getUnboundDeclaration() = api } diff --git a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index fede41907b9..125bceee641 100644 --- a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -1,10 +1,10 @@ /** - * @name Fetch model editor methods (framework mode) - * @description A list of APIs callable by consumers. Excludes test and generated code. + * @name Fetch endpoints for use in the model editor (framework mode) + * @description A list of endpoints accessible (methods and attributes) for consumers of the library. Excludes test and generated code. * @kind problem * @problem.severity recommendation - * @id csharp/utils/modeleditor/fetch-framework-mode-methods - * @tags modeleditor fetch methods framework-mode + * @id csharp/utils/modeleditor/framework-mode-endpoints + * @tags modeleditor endpoints framework-mode */ private import csharp From e011951e1f11b17224bf1bf3586e8333ff8bb335 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 14:58:29 +0100 Subject: [PATCH 526/788] Swift: Added change note for the new barriers. --- swift/ql/src/change-notes/2023-09-19-numeric-barriers.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/src/change-notes/2023-09-19-numeric-barriers.md diff --git a/swift/ql/src/change-notes/2023-09-19-numeric-barriers.md b/swift/ql/src/change-notes/2023-09-19-numeric-barriers.md new file mode 100644 index 00000000000..568ed104d66 --- /dev/null +++ b/swift/ql/src/change-notes/2023-09-19-numeric-barriers.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Adder barriers for numeric type values to the injection-like queries, to reduce false positive results where the user input that can be injected is constrainted to a numerical value. The queries updated by this change are: "Predicate built from user-controlled sources" (`swift/predicate-injection`), "Database query built from user-controlled sources" (`swift/sql-injection`), "Uncontrolled format string" (`swift/uncontrolled-format-string`) and "JavaScript Injection" (`swift/unsafe-js-eval`). From cc30c062b86ec66ca63ba3410745031c617012ce Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Tue, 19 Sep 2023 16:08:43 +0200 Subject: [PATCH 527/788] Misc: Update auto labeler for shared dataflow pack --- .github/labeler.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index 5401e6afd71..baa8f5ff05f 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -45,11 +45,7 @@ documentation: # Since these are all shared files that need to be synced, just pick _one_ copy of each. "DataFlow Library": - - "java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll" - - "java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll" - - "java/ql/lib/semmle/code/java/dataflow/internal/tainttracking1/TaintTrackingImpl.qll" - - "java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll" - - "java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll" + - "shared/dataflow/**/*" "ATM": - javascript/ql/experimental/adaptivethreatmodeling/**/* From 8a0e202b63ecc6af076dd6980814476ff0baf516 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 15:18:03 +0100 Subject: [PATCH 528/788] CPP: Fix typos. --- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 66aac6a81e1..7e5d1a6b0e5 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1069,11 +1069,11 @@ private module GetConvertedResultExpression { /** * Gets the expression that should be returned as the result expression from `instr`. * - * Note that this predicate may return multiple results in cases where a conversion belond to a + * Note that this predicate may return multiple results in cases where a conversion belongs to a * different AST element than its operand. */ Expr getConvertedResultExpression(Instruction instr, int n) { - // Only fully converted instructions has a result for `asConvertedExpr` + // Only fully converted instructions have a result for `asConvertedExpr` not conversionFlow(unique( | | getAUse(instr)), _, false, false) and result = getConvertedResultExpressionImpl(instr) and n = 0 From 935b7600ca46a8cba9f8b129a22b4a23a91d68e2 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 15:19:00 +0100 Subject: [PATCH 529/788] Swift: Fix typos. --- .../ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll | 2 +- .../swift/security/CleartextStorageDatabaseExtensions.qll | 2 +- .../swift/security/CleartextStoragePreferencesExtensions.qll | 2 +- .../codeql/swift/security/CleartextTransmissionExtensions.qll | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll index 9d630221d94..e329b8876e3 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll @@ -30,7 +30,7 @@ private class DefaultCleartextLoggingSink extends CleartextLoggingSink { } /** - * An barrier for cleartext logging vulnerabilities. + * A barrier for cleartext logging vulnerabilities. * - encryption; encrypted values are not cleartext. * - booleans; these are more likely to be settings, rather than actual sensitive data. */ diff --git a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll index cb7e8c53ec8..77baa2e7e2e 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll @@ -114,7 +114,7 @@ private class CleartextStorageDatabaseSinks extends SinkModelCsv { } /** - * An barrier for cleartext database storage vulnerabilities. + * A barrier for cleartext database storage vulnerabilities. * - encryption; encrypted values are not cleartext. * - booleans; these are more likely to be settings, rather than actual sensitive data. */ diff --git a/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll index 26f3c02fb1f..99080c3ff73 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesExtensions.qll @@ -78,7 +78,7 @@ private class NSUserDefaultsControllerStore extends CleartextStoragePreferencesS } /** - * An barrier for cleartext preferences storage vulnerabilities. + * A barrier for cleartext preferences storage vulnerabilities. * - encryption; encrypted values are not cleartext. * - booleans; these are more likely to be settings, rather than actual sensitive data. */ diff --git a/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll index 835c5952ec5..752dc278cce 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextTransmissionExtensions.qll @@ -49,7 +49,7 @@ private class AlamofireTransmittedSink extends CleartextTransmissionSink { } /** - * An barrier for cleartext transmission vulnerabilities. + * A barrier for cleartext transmission vulnerabilities. * - encryption; encrypted values are not cleartext. * - booleans; these are more likely to be settings, rather than actual sensitive data. */ From 5611bda7ee7a971963c6b586e01430e82d420f4c Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 19 Sep 2023 17:04:28 +0200 Subject: [PATCH 530/788] Python: add test for `$accumulator` --- .../CWE-943-NoSqlInjection/PoC/server.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py index 4f608c5e584..74618fa1bbe 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py @@ -71,6 +71,26 @@ def by_function_arg(): post = posts.find_one({'$expr': {'$function': search}}) # $ result=OK return show_post(post, author) +@app.route('/byGroup', methods=['GET']) +def by_group(): + author = request.args['author'] + accumulator = { + "init": 'function() { return "Not found" }', + "accumulate": 'function(state, author) { return (author === "'+author+'") ? author : state }', + "accumulateArgs": ["$author"], + "merge": 'function(state1, state2) { return (state1 === "Not found") ? state2 : state1 }' + } + group = { + "_id": "null", + "author": { "$accumulator": accumulator } + } + # Use `" | "a" === "a` as author + # making the query `this.author === "" | "a" === "a"` + # Found by http://127.0.0.1:5000/byGroup?author=%22%20|%20%22a%22%20===%20%22a + post = posts.aggregate([{ "$group": group }]).next() # $ MISSING: result=BAD + app.logger.error("post", post) + return show_post(post, author) + @app.route('/', methods=['GET']) def show_routes(): links = [] From ae159924a3384457043caf2a74ff1c26bf440583 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 15:04:33 +0100 Subject: [PATCH 531/788] Swift: Add numeric barrier to the regular expression injection query as well. --- .../swift/security/regex/RegexInjectionExtensions.qll | 10 ++++++++++ .../ql/src/change-notes/2023-09-19-numeric-barriers.md | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll index 3c6003b8bc8..75cf303ed62 100644 --- a/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll @@ -57,3 +57,13 @@ private class RegexInjectionSinks extends SinkModelCsv { ] } } + +/** + * A barrier for regular expression injection vulnerabilities. + */ +private class RegexInjectionDefaultBarrier extends RegexInjectionBarrier { + RegexInjectionDefaultBarrier() { + // any numeric type + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + } +} diff --git a/swift/ql/src/change-notes/2023-09-19-numeric-barriers.md b/swift/ql/src/change-notes/2023-09-19-numeric-barriers.md index 568ed104d66..0fd9989afe1 100644 --- a/swift/ql/src/change-notes/2023-09-19-numeric-barriers.md +++ b/swift/ql/src/change-notes/2023-09-19-numeric-barriers.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Adder barriers for numeric type values to the injection-like queries, to reduce false positive results where the user input that can be injected is constrainted to a numerical value. The queries updated by this change are: "Predicate built from user-controlled sources" (`swift/predicate-injection`), "Database query built from user-controlled sources" (`swift/sql-injection`), "Uncontrolled format string" (`swift/uncontrolled-format-string`) and "JavaScript Injection" (`swift/unsafe-js-eval`). +* Adder barriers for numeric type values to the injection-like queries, to reduce false positive results where the user input that can be injected is constrainted to a numerical value. The queries updated by this change are: "Predicate built from user-controlled sources" (`swift/predicate-injection`), "Database query built from user-controlled sources" (`swift/sql-injection`), "Uncontrolled format string" (`swift/uncontrolled-format-string`), "JavaScript Injection" (`swift/unsafe-js-eval`) and "Regular expression injection" (`swift/regex-injection`). From f8c5a9a264947e406b2ce39895bddb2004f04ffe Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 18:17:13 +0100 Subject: [PATCH 532/788] Swift: Test localizedStringWithFormat a bit better. --- .../dataflow/taint/libraries/TaintInline.expected | 2 +- .../library-tests/dataflow/taint/libraries/nsstring.swift | 8 ++++---- .../library-tests/dataflow/taint/libraries/string.swift | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/TaintInline.expected b/swift/ql/test/library-tests/dataflow/taint/libraries/TaintInline.expected index 48de9172b36..8ec8033d086 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/TaintInline.expected +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/TaintInline.expected @@ -1,2 +1,2 @@ -failures testFailures +failures diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/nsstring.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/nsstring.swift index 8f961b35d17..93ca2f14fc4 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/nsstring.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/nsstring.swift @@ -52,7 +52,7 @@ class NSString : NSObject, NSCopying, NSMutableCopying { func copy(with zone: NSZone? = nil) -> Any { return 0 } func mutableCopy(with zone: NSZone? = nil) -> Any { return 0 } - class func localizedStringWithFormat(_ format: NSString, _ args: CVarArg) -> Self { return (nil as Self?)! } + class func localizedStringWithFormat(_ format: NSString, _ args: CVarArg...) -> Self { return (nil as Self?)! } class func path(withComponents components: [String]) -> String { return "" } class func string(withCString bytes: UnsafePointer) -> Any? { return nil } class func string(withCString bytes: UnsafePointer, length: Int) -> Any? { return nil } @@ -185,7 +185,7 @@ func sourceUnsafeMutableRawPointer() -> UnsafeMutableRawPointer { return (nil as func sourceCString() -> UnsafePointer { return (nil as UnsafePointer?)! } func sourceData() -> Data { return Data(0) } func sourceStringArray() -> [String] { return [] } - +func sourceInt() -> Int { return 0 } func sink(arg: Any) {} func taintThroughInterpolatedStrings() { @@ -244,8 +244,8 @@ func taintThroughInterpolatedStrings() { let harmless = NSString(string: "harmless") let myRange = NSRange(location:0, length: 128) - - sink(arg: NSString.localizedStringWithFormat(sourceNSString(), (nil as CVarArg?)!)) // $ tainted=248 + sink(arg: NSString.localizedStringWithFormat(NSString(string: "%i %s %i"), 1, sourceInt(), 3)) // $ MISSING: tainted=247 + sink(arg: NSString.localizedStringWithFormat(sourceNSString(), 1, 2, 3)) // $ tainted=248 sink(arg: sourceNSString().character(at: 0)) // $ tainted=249 sink(arg: sourceNSString().cString(using: 0)!) // $ tainted=250 sink(arg: sourceNSString().cString()) // $ tainted=251 diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift index 2544512646f..653fbeef61a 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift @@ -226,6 +226,7 @@ func taintThroughSimpleStringOperations() { sink(arg: String(format: tainted, locale: nil, 1, 2, 3)) // $ tainted=217 sink(arg: String(format: tainted, locale: nil, arguments: [])) // $ tainted=217 sink(arg: String.localizedStringWithFormat(tainted, 1, 2, 3)) // $ tainted=217 + sink(arg: String.localizedStringWithFormat("%i %s %i", 1, tainted, 3)) // $ tainted=217 sink(arg: String(format: "%s", tainted)) // $ tainted=217 sink(arg: String(format: "%i %i %i", 1, 2, taintedInt)) // $ tainted=218 @@ -235,7 +236,6 @@ func taintThroughSimpleStringOperations() { sink(arg: tainted.dropFirst(10)) // $ tainted=217 sink(arg: tainted.dropLast(10)) // $ tainted=217 sink(arg: tainted.substring(from: tainted.startIndex)) // $ tainted=217 - sink(arg: tainted.lowercased()) // $ tainted=217 sink(arg: tainted.uppercased()) // $ tainted=217 sink(arg: tainted.lowercased(with: nil)) // $ tainted=217 From 11218f79c6a1309f3d17872ed09b053e439a0b6d Mon Sep 17 00:00:00 2001 From: Phill MV Date: Tue, 19 Sep 2023 14:43:54 -0400 Subject: [PATCH 533/788] s/Replace/ReplaceAll/ in LogInjectionGood.go --- go/ql/src/Security/CWE-117/LogInjectionGood.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/ql/src/Security/CWE-117/LogInjectionGood.go b/go/ql/src/Security/CWE-117/LogInjectionGood.go index 7b80fa99ccf..a43fa04bbbd 100644 --- a/go/ql/src/Security/CWE-117/LogInjectionGood.go +++ b/go/ql/src/Security/CWE-117/LogInjectionGood.go @@ -9,7 +9,7 @@ import ( // GOOD: The user-provided value is escaped before being written to the log. func handlerGood(req *http.Request) { username := req.URL.Query()["username"][0] - escapedUsername := strings.Replace(username, "\n", "", -1) - escapedUsername = strings.Replace(escapedUsername, "\r", "", -1) + escapedUsername := strings.ReplaceAll(username, "\n", "", -1) + escapedUsername = strings.ReplaceAll(escapedUsername, "\r", "", -1) log.Printf("user %s logged in.\n", escapedUsername) } From 30c37ca8cba10da4fe10eef193f5e6e7a91703ae Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 19 Sep 2023 18:26:11 +0200 Subject: [PATCH 534/788] =?UTF-8?q?Python:=20model=20`=C2=A7accumulator`?= =?UTF-8?q?=20also=20slightly=20rearrange=20the=20modelling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ql/lib/semmle/python/frameworks/NoSQL.qll | 51 +++++++++++++++++-- .../NoSqlInjection.expected | 19 +++++-- .../CWE-943-NoSqlInjection/PoC/server.py | 3 +- 3 files changed, 65 insertions(+), 8 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/NoSQL.qll b/python/ql/lib/semmle/python/frameworks/NoSQL.qll index f122f4b2000..ea69f565aa0 100644 --- a/python/ql/lib/semmle/python/frameworks/NoSQL.qll +++ b/python/ql/lib/semmle/python/frameworks/NoSQL.qll @@ -122,6 +122,16 @@ private module NoSql { override predicate vulnerableToStrings() { none() } } + private class MongoCollectionAggregation extends API::CallNode, NoSqlQuery::Range { + MongoCollectionAggregation() { this = mongoCollection().getMember("aggregate").getACall() } + + override DataFlow::Node getQuery() { result = this.getParameter(0).getASubscript().asSink() } + + override predicate interpretsDict() { any() } + + override predicate vulnerableToStrings() { none() } + } + /** The `$where` query operator executes a string as JavaScript. */ private class WhereQueryOperator extends DataFlow::Node, Decoding::Range { API::Node dictionary; @@ -143,7 +153,11 @@ private module NoSql { override predicate mayExecuteInput() { any() } } - /** The `$function` query operator executes its `body` string as JavaScript. */ + /** + * The `$function` query operator executes its `body` string as JavaScript. + * + * See https://www.mongodb.com/docs/manual/reference/operator/aggregation/function/#mongodb-expression-exp.-function + */ private class FunctionQueryOperator extends DataFlow::Node, Decoding::Range { API::Node dictionary; DataFlow::Node query; @@ -154,8 +168,39 @@ private module NoSql { .getMember(mongoCollectionMethodName()) .getACall() .getParameter(0) - .getASubscript*() and - query = dictionary.getSubscript("$function").getSubscript("body").asSink() and + .getASubscript*() + .getSubscript("$function") and + query = dictionary.getSubscript("body").asSink() and + this = dictionary.asSink() + } + + override DataFlow::Node getAnInput() { result = query } + + override DataFlow::Node getOutput() { result = this } + + override string getFormat() { result = "NoSQL" } + + override predicate mayExecuteInput() { any() } + } + + /** + * The `$accumulator` query operator executes strings in some of its fields as JavaScript. + * + * See https://www.mongodb.com/docs/manual/reference/operator/aggregation/accumulator/#mongodb-group-grp.-accumulator + */ + private class AccumulatorQueryOperator extends DataFlow::Node, Decoding::Range { + API::Node dictionary; + DataFlow::Node query; + + AccumulatorQueryOperator() { + dictionary = + mongoCollection() + .getMember("aggregate") + .getACall() + .getParameter(0) + .getASubscript*() + .getSubscript("$accumulator") and + query = dictionary.getSubscript(["init", "accumulate", "merge", "finalize"]).asSink() and this = dictionary.asSink() } diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected index fdabe8cb977..ac13418edcd 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected @@ -3,6 +3,7 @@ edges | PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:26:21:26:27 | ControlFlowNode for request | | PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:42:14:42:20 | ControlFlowNode for request | | PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:51:14:51:20 | ControlFlowNode for request | +| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:76:14:76:20 | ControlFlowNode for request | | PoC/server.py:26:5:26:17 | SSA variable author_string | PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | | PoC/server.py:26:21:26:27 | ControlFlowNode for request | PoC/server.py:26:5:26:17 | SSA variable author_string | | PoC/server.py:27:5:27:10 | SSA variable author | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | @@ -13,8 +14,13 @@ edges | PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | | PoC/server.py:51:5:51:10 | SSA variable author | PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | | PoC/server.py:51:14:51:20 | ControlFlowNode for request | PoC/server.py:51:5:51:10 | SSA variable author | -| PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | PoC/server.py:60:37:60:57 | ControlFlowNode for Dict | -| PoC/server.py:60:37:60:57 | ControlFlowNode for Dict | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | +| PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | PoC/server.py:60:51:60:56 | ControlFlowNode for search | +| PoC/server.py:60:51:60:56 | ControlFlowNode for search | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | +| PoC/server.py:76:5:76:10 | SSA variable author | PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | +| PoC/server.py:76:14:76:20 | ControlFlowNode for request | PoC/server.py:76:5:76:10 | SSA variable author | +| PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | PoC/server.py:85:37:85:47 | ControlFlowNode for accumulator | +| PoC/server.py:83:5:83:9 | SSA variable group | PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | +| PoC/server.py:85:37:85:47 | ControlFlowNode for accumulator | PoC/server.py:83:5:83:9 | SSA variable group | | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | flask_mongoengine_bad.py:19:21:19:27 | ControlFlowNode for request | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | flask_mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | @@ -108,7 +114,13 @@ nodes | PoC/server.py:51:14:51:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | -| PoC/server.py:60:37:60:57 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:60:51:60:56 | ControlFlowNode for search | semmle.label | ControlFlowNode for search | +| PoC/server.py:76:5:76:10 | SSA variable author | semmle.label | SSA variable author | +| PoC/server.py:76:14:76:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | +| PoC/server.py:83:5:83:9 | SSA variable group | semmle.label | SSA variable group | +| PoC/server.py:85:37:85:47 | ControlFlowNode for accumulator | semmle.label | ControlFlowNode for accumulator | +| PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | | flask_mongoengine_bad.py:19:5:19:17 | SSA variable unsafe_search | semmle.label | SSA variable unsafe_search | @@ -194,6 +206,7 @@ subpaths | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | This NoSQL query contains an unsanitized $@. | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py index 74618fa1bbe..611fd90d3ed 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py @@ -87,8 +87,7 @@ def by_group(): # Use `" | "a" === "a` as author # making the query `this.author === "" | "a" === "a"` # Found by http://127.0.0.1:5000/byGroup?author=%22%20|%20%22a%22%20===%20%22a - post = posts.aggregate([{ "$group": group }]).next() # $ MISSING: result=BAD - app.logger.error("post", post) + post = posts.aggregate([{ "$group": group }]).next() # $ result=BAD return show_post(post, author) @app.route('/', methods=['GET']) From 1b74b49bb3e952f221996c87e3f57244947516f2 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 22:43:08 +0100 Subject: [PATCH 535/788] Swift: Improve NSString models for varargs functions. --- .../swift/frameworks/StandardLibrary/NsString.qll | 15 ++++++++++----- .../dataflow/taint/libraries/nsstring.swift | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/NsString.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/NsString.qll index f866ba23a17..2044c7757a2 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/NsString.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/NsString.qll @@ -50,8 +50,10 @@ private class NsStringSummaries extends SummaryModelCsv { ";NSString;true;init(format:arguments:);;;Argument[0..1];ReturnValue;taint", ";NSString;true;init(format:locale:arguments:);;;Argument[0];ReturnValue;taint", ";NSString;true;init(format:locale:arguments:);;;Argument[2];ReturnValue;taint", - ";NSString;true;init(format:_:);;;Argument[0];ReturnValue;taint", //0.. - ";NSString;true;init(format:locale:_:);;;Argument[0];ReturnValue;taint", //0,2.. + ";NSString;true;init(format:_:);;;Argument[0];ReturnValue;taint", + ";NSString;true;init(format:_:);;;Argument[1].CollectionElement;ReturnValue;taint", + ";NSString;true;init(format:locale:_:);;;Argument[0];ReturnValue;taint", + ";NSString;true;init(format:locale:_:);;;Argument[2].CollectionElement;ReturnValue;taint", ";NSString;true;init(data:encoding:);;;Argument[0];ReturnValue;taint", ";NSString;true;init(contentsOfFile:);;;Argument[0];ReturnValue;taint", ";NSString;true;init(contentsOfFile:encoding:);;;Argument[0];ReturnValue;taint", @@ -60,7 +62,8 @@ private class NsStringSummaries extends SummaryModelCsv { ";NSString;true;init(contentsOf:encoding:);;;Argument[0];ReturnValue;taint", ";NSString;true;init(contentsOf:usedEncoding:);;;Argument[0];ReturnValue;taint", ";NSString;true;init(coder:);;;Argument[0];ReturnValue;taint", - ";NSString;true;localizedStringWithFormat(_:_:);;;Argument[0];ReturnValue;taint", //0.. + ";NSString;true;localizedStringWithFormat(_:_:);;;Argument[0];ReturnValue;taint", + ";NSString;true;localizedStringWithFormat(_:_:);;;Argument[1].CollectionElement;ReturnValue;taint", ";NSString;true;character(at:);;;Argument[-1];ReturnValue;taint", ";NSString;true;getCharacters(_:);;;Argument[-1];Argument[0];taint", ";NSString;true;getCharacters(_:range:);;;Argument[-1];Argument[0];taint", @@ -72,7 +75,8 @@ private class NsStringSummaries extends SummaryModelCsv { ";NSString;true;getCString(_:maxLength:);;;Argument[-1];Argument[0];taint", ";NSString;true;getCString(_:maxLength:encoding:);;;Argument[-1];Argument[0];taint", ";NSString;true;getCString(_:maxLength:range:remaining:);;;Argument[-1];Argument[0];taint", - ";NSString;true;appendingFormat(_:_:);;;Argument[-1..0];ReturnValue;taint", // -1.. + ";NSString;true;appendingFormat(_:_:);;;Argument[-1..0];ReturnValue;taint", + ";NSString;true;appendingFormat(_:_:);;;Argument[1].CollectionElement;ReturnValue;taint", ";NSString;true;appending(_:);;;Argument[-1..0];ReturnValue;taint", ";NSString;true;padding(toLength:withPad:startingAt:);;;Argument[-1];ReturnValue;taint", ";NSString;true;padding(toLength:withPad:startingAt:);;;Argument[1];ReturnValue;taint", @@ -119,7 +123,8 @@ private class NsStringSummaries extends SummaryModelCsv { ";NSMutableString;true;replaceCharacters(in:with:);;;Argument[1];Argument[-1];taint", ";NSMutableString;true;replaceOccurrences(of:with:options:range:);;;Argument[1];Argument[-1];taint", ";NSMutableString;true;setString(_:);;;Argument[0];Argument[-1];taint", - ";NSMutableString;true;appendFormat(_:_:);;;Argument[0];Argument[-1];taint", //0.. + ";NSMutableString;true;appendFormat(_:_:);;;Argument[0];Argument[-1];taint", + ";NSMutableString;true;appendFormat(_:_:);;;Argument[1].CollectionElement;Argument[-1];taint", ] } } diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/nsstring.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/nsstring.swift index 93ca2f14fc4..3be4e4d1264 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/nsstring.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/nsstring.swift @@ -244,7 +244,7 @@ func taintThroughInterpolatedStrings() { let harmless = NSString(string: "harmless") let myRange = NSRange(location:0, length: 128) - sink(arg: NSString.localizedStringWithFormat(NSString(string: "%i %s %i"), 1, sourceInt(), 3)) // $ MISSING: tainted=247 + sink(arg: NSString.localizedStringWithFormat(NSString(string: "%i %i %i"), 1, sourceInt(), 3)) // $ tainted=247 sink(arg: NSString.localizedStringWithFormat(sourceNSString(), 1, 2, 3)) // $ tainted=248 sink(arg: sourceNSString().character(at: 0)) // $ tainted=249 sink(arg: sourceNSString().cString(using: 0)!) // $ tainted=250 From af315c507279b63c2fde7eef6f54a5ea8e653773 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Sep 2023 22:51:40 +0100 Subject: [PATCH 536/788] Swift: Change note. --- swift/ql/lib/change-notes/2023-09-29-nsstring.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-09-29-nsstring.md diff --git a/swift/ql/lib/change-notes/2023-09-29-nsstring.md b/swift/ql/lib/change-notes/2023-09-29-nsstring.md new file mode 100644 index 00000000000..b1c80653226 --- /dev/null +++ b/swift/ql/lib/change-notes/2023-09-29-nsstring.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- + +* Modelled varargs function in `NSString` more accurately. From 475fe3a2a5c6b29c9b095fd05eb70f9f309d4032 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 18 Sep 2023 14:35:41 +0100 Subject: [PATCH 537/788] Attempt to improve performance in checksUser --- .../InsecureDirectObjectReferenceQuery.qll | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll index 20a0de568a9..d96c29ecb19 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll @@ -2,6 +2,7 @@ import csharp import semmle.code.csharp.dataflow.flowsources.Remote +import DataFlow as DF import TaintTracking as TT import ActionMethods @@ -25,20 +26,30 @@ private predicate hasIdParameter(ActionMethod m) { exists(StringLiteral idStr, IndexerCall idx | idStr.getValue().toLowerCase().matches(["%id", "%idx"]) and TT::localTaint(src, DataFlow::exprNode(idx.getQualifier())) and - idStr = idx.getArgument(0) + DF::localExprFlow(idStr, idx.getArgument(0)) ) ) } +private predicate authorizingCallable(Callable c) { + exists(string name | name = c.getName().toLowerCase() | + name.matches(["%user%", "%session%"]) and + not name.matches("%get%by%") // methods like `getUserById` or `getXByUsername` aren't likely to be referring to the current user + ) +} + /** Holds if `m` at some point in its call graph may make some kind of check against the current user. */ private predicate checksUser(ActionMethod m) { - exists(Callable c, string name | name = c.getName().toLowerCase() | - name.matches(["%user%", "%session%"]) and - not name.matches("%get%by%") and // methods like `getUserById` or `getXByUsername` aren't likely to be referring to the current user - m.calls*(c) + exists(Callable c | + authorizingCallable(c) and + callsPlus(m, c) ) } +private predicate calls(Callable c1, Callable c2) { c1.calls(c2) } + +private predicate callsPlus(Callable c1, Callable c2) = fastTC(calls/2)(c1, c2) + /** Holds if `m`, its containing class, or a parent class has an attribute that extends `AuthorizeAttribute` */ private predicate hasAuthorizeAttribute(ActionMethod m) { exists(Attribute attr | From 4497e22195204a36a83860b58db95c7f2bd7a22c Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 20 Sep 2023 04:10:51 +0100 Subject: [PATCH 538/788] Add an additional example and additional test cases for authorize attribute cases --- .../InsecureDirectObjectReference.qhelp | 7 +-- .../Security Features/CWE-639/MVCExample.cs | 10 ++++ .../InsecureDirectObjectReference.expected | 3 ++ .../CWE-639/MVCTests/MiscTestControllers.cs | 46 +++++++++++++++++++ 4 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/MiscTestControllers.cs diff --git a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp index 8cc9357fd3f..5e8b522ac4c 100644 --- a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp @@ -18,16 +18,17 @@ Ensure that the current user is authorized to access the resource of the provide

    In the following example, in the case marked BAD, there is no authorization check, so any user is able to edit any comment. In the case marked GOOD, there is a check that the current usr matches the author of the comment.

    -

    The following example shows a similar case for the ASP.NET Core framework.

    +

    The following example shows a similar case for the ASP.NET Core framework. In the third case, the `Authorize` attribute is used +to restrict the method to only administrators, which are expected to be able to access arbitrary resources. +

    -
  • OWASP - Insecure Direct Object Refrences.
  • OWASP - Testing for Insecure Direct Object References.
  • -
  • Microsoft Learn = Resource-based authorization in ASP.NET Core.
  • +
  • Microsoft Learn - Resource-based authorization in ASP.NET Core.
  • \ No newline at end of file diff --git a/csharp/ql/src/Security Features/CWE-639/MVCExample.cs b/csharp/ql/src/Security Features/CWE-639/MVCExample.cs index 36e692309cb..4137bccb395 100644 --- a/csharp/ql/src/Security Features/CWE-639/MVCExample.cs +++ b/csharp/ql/src/Security Features/CWE-639/MVCExample.cs @@ -32,4 +32,14 @@ public class CommentController : Controller { return ForbidResult(); } } + + // GOOD: Only users with the `admin` role can access this method. + [Authorize(Roles="admin")] + public async Task Edit3(int commentId, string text) { + Comment comment = _commentRepository.Find(commentId); + + comment.Text = text; + + return View(); + } } \ No newline at end of file diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected index 2c6bc2b1059..061b87dc6af 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected @@ -1,3 +1,6 @@ | CommentController.cs:6:25:6:29 | Edit1 | This method may be missing authorization checks for which users can access the resource of the provided ID. | | CommentController.cs:29:25:29:29 | Edit4 | This method may be missing authorization checks for which users can access the resource of the provided ID. | +| MiscTestControllers.cs:26:33:26:40 | EditAnon | This method may be missing authorization checks for which users can access the resource of the provided ID. | +| MiscTestControllers.cs:34:34:34:41 | EditAnon | This method may be missing authorization checks for which users can access the resource of the provided ID. | +| MiscTestControllers.cs:45:25:45:29 | Edit4 | This method may be missing authorization checks for which users can access the resource of the provided ID. | | ProfileController.cs:14:25:14:29 | Edit2 | This method may be missing authorization checks for which users can access the resource of the provided ID. | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/MiscTestControllers.cs b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/MiscTestControllers.cs new file mode 100644 index 00000000000..3966d418a93 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/MiscTestControllers.cs @@ -0,0 +1,46 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; + +public class BaseController : Controller { + // GOOD + [Authorize] + public virtual ActionResult Edit1(int id) { return View(); } +} + +class MyAuthorizeAttribute : AuthorizeAttribute { } +class MyAllowAnonymousAttribute : AllowAnonymousAttribute { } + +public class AController : BaseController { + // GOOD - Authorize is inherited from overridden method + public override ActionResult Edit1(int id) { return View(); } + + // GOOD - A subclass of Authorize is used + [MyAuthorize] + public ActionResult Edit2(int id) { return View(); } +} + +[Authorize] +public class BaseAuthController : Controller { + // BAD - A subclass of AllowAnonymous is used + [MyAllowAnonymous] + public virtual ActionResult EditAnon(int id) { return View(); } +} + +public class BController : BaseAuthController { + // GOOD - Authorize is inherited from parent class + public ActionResult Edit3(int id) { return View(); } + + // BAD - MyAllowAnonymous is inherited from overridden method + public override ActionResult EditAnon(int id) { return View(); } +} + +[AllowAnonymous] +public class BaseAnonController : Controller { + +} + +public class CController : BaseAnonController { + // BAD - AllowAnonymous is inherited from base class and overrides Authorize + [Authorize] + public ActionResult Edit4(int id) { return View(); } +} \ No newline at end of file From 1442bddf360190b01349e2470efabb7e8b5a31e8 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 20 Sep 2023 09:50:35 +0200 Subject: [PATCH 539/788] Ruby: Fix bad join Before ``` Evaluated relational algebra for predicate DataFlowPublic#e1781e31::BarrierGuard#PolynomialReDoSCustomizations#32063fa3::PolynomialReDoS::lengthGuard#::getAMaybeGuardedCapturedDef#0#f@3c903abq with tuple counts: 280924 ~0% {2} r1 = SCAN Ssa#da392372::Make#SsaImpl#ff97b16a::SsaInput#::Definition::definesAt#3#dispred#ffff OUTPUT In.2, In.0 280924 ~0% {2} r2 = JOIN r1 WITH BasicBlocks#d5fe3e99::BasicBlock::getScope#0#dispred#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1 103843 ~1% {2} r3 = JOIN r2 WITH SSA#304893e3::Ssa::CapturedEntryDefinition#f ON FIRST 1 OUTPUT Lhs.0, Lhs.1 103843 ~5% {3} r4 = JOIN r3 WITH Ssa#da392372::Make#SsaImpl#ff97b16a::SsaInput#::Definition::getSourceVariable#0#dispred#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 19665045 ~0% {3} r5 = JOIN r4 WITH Ssa#da392372::Make#SsaImpl#ff97b16a::SsaInput#::Definition::getSourceVariable#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.1 19497860 ~0% {3} r6 = JOIN r5 WITH Call#841c84e8::MethodCall::getBlock#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2 19496808 ~0% {3} r7 = JOIN r6 WITH CfgNodes#ace8e412::ExprCfgNode::getExpr#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2 19496808 ~0% {3} r8 = JOIN r7 WITH CfgNodes#ace8e412::ExprNodes::CallCfgNode#ff ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2 19496808 ~0% {3} r9 = JOIN r8 WITH ControlFlowGraph#46cebcbd::CfgNode::getBasicBlock#0#dispred#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2 19496808 ~3% {4} r10 = SCAN r9 OUTPUT In.0, true, In.1, In.2 49434 ~7% {3} r11 = JOIN r10 WITH DataFlowPublic#e1781e31::guardControlsBlock#3#fff_120#join_rhs ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.3 117 ~4% {3} r12 = JOIN r11 WITH PolynomialReDoSCustomizations#32063fa3::PolynomialReDoS::lengthGuard#3#cpe#12#ff ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.1 0 ~0% {1} r13 = JOIN r12 WITH SsaImpl#ff97b16a::Cached::getARead#1#ff ON FIRST 2 OUTPUT Lhs.2 return r13 ``` After ``` Evaluated relational algebra for predicate DataFlowPublic#e1781e31::BarrierGuard#PolynomialReDoSCustomizations#32063fa3::PolynomialReDoS::lengthGuard#::getAMaybeGuardedCapturedDef#0#f@137a23jm with tuple counts: 280924 ~0% {2} r1 = SCAN Ssa#da392372::Make#SsaImpl#ff97b16a::SsaInput#::Definition::definesAt#3#dispred#ffff OUTPUT In.2, In.0 280924 ~0% {2} r2 = JOIN r1 WITH BasicBlocks#d5fe3e99::BasicBlock::getScope#0#dispred#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1 103843 ~1% {2} r3 = JOIN r2 WITH SSA#304893e3::Ssa::CapturedEntryDefinition#f ON FIRST 1 OUTPUT Lhs.1, Lhs.0 102517 ~1% {2} r4 = JOIN r3 WITH Call#841c84e8::MethodCall::getBlock#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 102378 ~2% {2} r5 = JOIN r4 WITH CfgNodes#ace8e412::ExprCfgNode::getExpr#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 102378 ~2% {2} r6 = JOIN r5 WITH CfgNodes#ace8e412::ExprNodes::CallCfgNode#ff ON FIRST 1 OUTPUT Lhs.0, Lhs.1 102378 ~0% {2} r7 = JOIN r6 WITH ControlFlowGraph#46cebcbd::CfgNode::getBasicBlock#0#dispred#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1 102378 ~0% {3} r8 = SCAN r7 OUTPUT In.0, true, In.1 7417 ~5% {2} r9 = JOIN r8 WITH DataFlowPublic#e1781e31::guardControlsBlock#3#fff_120#join_rhs ON FIRST 2 OUTPUT Rhs.2, Lhs.2 22 ~0% {2} r10 = JOIN r9 WITH PolynomialReDoSCustomizations#32063fa3::PolynomialReDoS::lengthGuard#3#cpe#12#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1 12 ~0% {2} r11 = JOIN r10 WITH SsaImpl#ff97b16a::Cached::getARead#1#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 12 ~0% {2} r12 = JOIN r11 WITH Ssa#da392372::Make#SsaImpl#ff97b16a::SsaInput#::Definition::getSourceVariable#0#dispred#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1 0 ~0% {1} r13 = JOIN r12 WITH Ssa#da392372::Make#SsaImpl#ff97b16a::SsaInput#::Definition::getSourceVariable#0#dispred#ff ON FIRST 2 OUTPUT Lhs.0 return r13 ``` --- .../ruby/dataflow/internal/DataFlowPublic.qll | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll index 99c9549b72f..96f419581cd 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll @@ -740,6 +740,12 @@ class ContentSet extends TContentSet { */ signature predicate guardChecksSig(CfgNodes::AstCfgNode g, CfgNode e, boolean branch); +bindingset[def1, def2] +pragma[inline_late] +private predicate sameSourceVariable(Ssa::Definition def1, Ssa::Definition def2) { + def1.getSourceVariable() = def2.getSourceVariable() +} + /** * Provides a set of barrier nodes for a guard that validates an expression. * @@ -784,9 +790,9 @@ module BarrierGuard { | def.getARead() = testedNode and guardChecks(g, testedNode, branch) and - def.getSourceVariable() = result.getSourceVariable() and guardControlsBlock(g, call.getBasicBlock(), branch) and - result.getBasicBlock().getScope() = call.getExpr().(MethodCall).getBlock() + result.getBasicBlock().getScope() = call.getExpr().(MethodCall).getBlock() and + sameSourceVariable(def, result) ) } } @@ -849,9 +855,9 @@ abstract deprecated class BarrierGuard extends CfgNodes::ExprCfgNode { | def.getARead() = testedNode and this.checks(testedNode, branch) and - def.getSourceVariable() = result.getSourceVariable() and this.controlsBlock(call.getBasicBlock(), branch) and - result.getBasicBlock().getScope() = call.getExpr().(MethodCall).getBlock() + result.getBasicBlock().getScope() = call.getExpr().(MethodCall).getBlock() and + sameSourceVariable(def, result) ) } From d7bd8c7ffd5edca4cfa014cfc37793c9b4058400 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 20 Sep 2023 10:19:33 +0200 Subject: [PATCH 540/788] Shared/TypeTracking: Add support for flow from non-LocalSourceNode source and bugfix in smallstep. --- .../codeql/typetracking/TypeTracking.qll | 57 +++++++++++++++---- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/shared/typetracking/codeql/typetracking/TypeTracking.qll b/shared/typetracking/codeql/typetracking/TypeTracking.qll index 24411405c65..4f338f59378 100644 --- a/shared/typetracking/codeql/typetracking/TypeTracking.qll +++ b/shared/typetracking/codeql/typetracking/TypeTracking.qll @@ -478,16 +478,14 @@ module TypeTracking { } pragma[nomagic] - private predicate smallStepProj(LocalSourceNode nodeFrom, StepSummary summary) { + private predicate smallStepProj(Node nodeFrom, StepSummary summary) { smallStep(nodeFrom, _, summary) } bindingset[t, nodeFrom] pragma[inline_late] pragma[noopt] - private TypeTracker smallStepInlineLate( - TypeTracker t, LocalSourceNode nodeFrom, LocalSourceNode nodeTo - ) { + private TypeTracker smallStepInlineLate(TypeTracker t, Node nodeFrom, LocalSourceNode nodeTo) { exists(StepSummary summary | smallStepProj(nodeFrom, summary) and result = append(t, summary) and @@ -657,7 +655,7 @@ module TypeTracking { pragma[inline_late] pragma[noopt] private TypeBackTracker backSmallStepInlineLate( - TypeBackTracker t, LocalSourceNode nodeFrom, LocalSourceNode nodeTo + TypeBackTracker t, Node nodeFrom, LocalSourceNode nodeTo ) { exists(StepSummary summary | backSmallStepProj(nodeTo, summary) and @@ -803,16 +801,35 @@ module TypeTracking { * those sources. */ module TypeTrack { + pragma[nomagic] + private predicate sourceSimpleLocalSmallSteps(Node src, Node n) { + source(src) and + not src instanceof LocalSourceNode and + simpleLocalSmallStep*(src, n) + } + + private predicate firstStep(TypeTracker tt, Node src, LocalSourceNode n2) { + exists(Node n1, TypeTracker tt0 | + sourceSimpleLocalSmallSteps(src, n1) and + tt0.start() and + tt = smallStepInlineLate(tt0, n1, n2) + ) + } + private Node flow(TypeTracker tt) { tt.start() and source(result) or + firstStep(tt, _, result) + or exists(TypeTracker ttMid | tt = ttMid.step(flow(ttMid), result)) } /** - * Holds if the given source flows to `n`. + * Holds if a source flows to `n`. */ - predicate flowsTo(Node n) { flowsTo(flow(TypeTracker::end()), n) } + predicate flowsTo(Node n) { + flowsTo(flow(TypeTracker::end()), n) or sourceSimpleLocalSmallSteps(_, n) + } /** * Given a sink definition, constructs the relation of edges that can be used @@ -849,7 +866,10 @@ module TypeTracking { string toString() { result = this.getNode().toString() + this.ppContent() } /** Holds if this is a source. */ - predicate isSource() { source(this.getNode()) and this.getTypeTracker().start() } + predicate isSource() { + source(this.getNode()) and + (this.getTypeTracker().start() or this instanceof TPathNodeSink) + } /** Holds if this is a sink. */ predicate isSink() { this instanceof TPathNodeSink } @@ -857,7 +877,11 @@ module TypeTracking { private predicate edgeCand(Node n1, TypeTracker tt1, Node n2, TypeTracker tt2) { n1 = flow(tt1) and - tt2 = tt1.step(n1, n2) + ( + tt2 = tt1.step(n1, n2) + or + tt1.start() and firstStep(tt2, n1, n2) + ) } private predicate edgeCand(PathNodeFwd n1, PathNodeFwd n2) { @@ -871,7 +895,13 @@ module TypeTracking { or n1.getTypeTracker().end() and flowsTo(n1.getNode(), n2.getNode()) and + n1.getNode() != n2.getNode() and n2 instanceof TPathNodeSink + or + sourceSimpleLocalSmallSteps(n1.getNode(), n2.getNode()) and + n1.getNode() != n2.getNode() and + n1.isSource() and + n2.isSink() } private predicate reachRev(PathNodeFwd n) { @@ -896,8 +926,15 @@ module TypeTracking { private predicate stepPlus(PathNode n1, PathNode n2) = fastTC(edges/2)(n1, n2) + /** + * DEPRECATED: Use `flowPath` instead. + * + * Holds if there is a path between `source` and `sink`. + */ + deprecated predicate hasFlow(PathNode source, PathNode sink) { flowPath(source, sink) } + /** Holds if there is a path between `source` and `sink`. */ - predicate hasFlow(PathNode source, PathNode sink) { + predicate flowPath(PathNode source, PathNode sink) { source.isSource() and sink.isSink() and (source = sink or stepPlus(source, sink)) From d7e965f863df8ee98713ffaf0e25fe0e58538bee Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 20 Sep 2023 10:21:21 +0200 Subject: [PATCH 541/788] Dataflow: Add lightweight api based on TypeTracking. --- .../dataflow/internal/DataFlowImplCommon.qll | 75 +++++++++++++++++++ shared/dataflow/qlpack.yml | 1 + 2 files changed, 76 insertions(+) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll index 6fb53e04331..c0b0973f0db 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll @@ -1,4 +1,5 @@ private import codeql.dataflow.DataFlow +private import codeql.typetracking.TypeTracking as Tt module MakeImplCommon { private import Lang @@ -52,8 +53,82 @@ module MakeImplCommon { class FeatureEqualSourceSinkCallContext extends FlowFeature, TFeatureEqualSourceSinkCallContext { override string toString() { result = "FeatureEqualSourceSinkCallContext" } } + + signature predicate sourceNode(Node n); + + /** + * EXPERIMENTAL: This API is subject to change without notice. + * + * Given a source definition, this constructs a simple forward flow + * computation with an access path limit of 1. + */ + module SimpleGlobal { + import TypeTracking::TypeTrack + } } + private module TypeTrackingInput implements Tt::TypeTrackingInput { + final class Node = Lang::Node; + + class LocalSourceNode extends Node { + LocalSourceNode() { + storeStep(_, this, _) or + loadStep(_, this, _) or + jumpStepCached(_, this) or + this instanceof ParamNode or + this instanceof OutNodeExt + } + } + + final private class LangContentSet = Lang::ContentSet; + + class Content extends LangContentSet { + string toString() { result = "Content" } + } + + class ContentFilter extends Content { + Content getAMatchingContent() { result = this } + } + + predicate compatibleContents(Content storeContents, Content loadContents) { + storeContents.getAStoreContent() = loadContents.getAReadContent() + } + + predicate simpleLocalSmallStep = simpleLocalFlowStepExt/2; + + predicate levelStepNoCall(Node n1, LocalSourceNode n2) { none() } + + predicate levelStepCall(Node n1, LocalSourceNode n2) { + argumentValueFlowsThrough(n1, TReadStepTypesNone(), n2) + } + + predicate storeStep(Node n1, Node n2, Content f) { storeSet(n1, f, n2, _, _) } + + predicate loadStep(Node n1, LocalSourceNode n2, Content f) { + readSet(n1, f, n2) + or + argumentValueFlowsThrough(n1, TReadStepTypesSome(_, f, _), n2) + } + + predicate loadStoreStep(Node nodeFrom, Node nodeTo, Content f1, Content f2) { none() } + + predicate withContentStep(Node nodeFrom, LocalSourceNode nodeTo, ContentFilter f) { none() } + + predicate withoutContentStep(Node nodeFrom, LocalSourceNode nodeTo, ContentFilter f) { none() } + + predicate jumpStep(Node n1, LocalSourceNode n2) { jumpStepCached(n1, n2) } + + predicate callStep(Node n1, LocalSourceNode n2) { viableParamArg(_, n2, n1) } + + predicate returnStep(Node n1, LocalSourceNode n2) { + viableReturnPosOut(_, getReturnPosition(n1), n2) + } + + predicate hasFeatureBacktrackStoreTarget() { none() } + } + + private module TypeTracking = Tt::TypeTracking; + /** * The cost limits for the `AccessPathFront` to `AccessPathApprox` expansion. * diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 62a35f1ccc8..42bdbb50379 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -4,5 +4,6 @@ groups: shared library: true dependencies: codeql/ssa: ${workspace} + codeql/typetracking: ${workspace} codeql/util: ${workspace} warnOnImplicitThis: true From 5c40d553b479587af427ba3d9b30a22b0b42c6d9 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 20 Sep 2023 10:21:53 +0200 Subject: [PATCH 542/788] Java: Switch XmlParsers lib to lightweight data flow. --- java/ql/lib/ext/java.lang.model.yml | 1 + .../semmle/code/java/security/XmlParsers.qll | 238 +++++++----------- .../CWE-611/DocumentBuilderTests.java | 2 +- 3 files changed, 92 insertions(+), 149 deletions(-) diff --git a/java/ql/lib/ext/java.lang.model.yml b/java/ql/lib/ext/java.lang.model.yml index 6022da5a486..7974a234f27 100644 --- a/java/ql/lib/ext/java.lang.model.yml +++ b/java/ql/lib/ext/java.lang.model.yml @@ -130,6 +130,7 @@ extensions: - ["java.lang", "Thread", True, "getName", "()", "", "Argument[this].SyntheticField[java.lang.Thread.name]", "ReturnValue", "value", "manual"] - ["java.lang", "ThreadLocal", True, "get", "()", "", "Argument[this].SyntheticField[java.lang.ThreadLocal.value]", "ReturnValue", "value", "manual"] - ["java.lang", "ThreadLocal", True, "set", "(Object)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.ThreadLocal.value]", "value", "manual"] + - ["java.lang", "ThreadLocal", False, "withInitial", "(Supplier)", "", "Argument[0].ReturnValue", "ReturnValue.SyntheticField[java.lang.ThreadLocal.value]", "value", "manual"] - ["java.lang", "Throwable", False, "Throwable", "(Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] - ["java.lang", "Throwable", False, "Throwable", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - ["java.lang", "Throwable", True, "getCause", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/semmle/code/java/security/XmlParsers.qll b/java/ql/lib/semmle/code/java/security/XmlParsers.qll index 71f896ef255..cf8ef5e8775 100644 --- a/java/ql/lib/semmle/code/java/security/XmlParsers.qll +++ b/java/ql/lib/semmle/code/java/security/XmlParsers.qll @@ -82,41 +82,16 @@ class DocumentBuilderParse extends XmlParserCall { override Expr getSink() { result = this.getArgument(0) } override predicate isSafe() { - SafeDocumentBuilderToDocumentBuilderParseFlow::flowToExpr(this.getQualifier()) + SafeDocumentBuilderToDocumentBuilderParseFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) } } -private module SafeDocumentBuilderToDocumentBuilderParseFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof SafeDocumentBuilder } - - predicate isSink(DataFlow::Node sink) { - sink.asExpr() = any(DocumentBuilderParse dbp).getQualifier() - } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - exists(RefType t, ReturnStmt ret, Method m | - node2.asExpr().(ClassInstanceExpr).getConstructedType().getSourceDeclaration() = t and - t.getASourceSupertype+().hasQualifiedName("java.lang", "ThreadLocal") and - ret.getResult() = node1.asExpr() and - ret.getEnclosingCallable() = m and - m.hasName("initialValue") and - m.getDeclaringType() = t - ) - or - exists(MethodAccess ma, Method m | - ma = node2.asExpr() and - ma.getQualifier() = node1.asExpr() and - ma.getMethod() = m and - m.hasName("get") and - m.getDeclaringType().getSourceDeclaration().hasQualifiedName("java.lang", "ThreadLocal") - ) - } - - int fieldFlowBranchLimit() { result = 0 } +private predicate safeDocumentBuilderNode(DataFlow::Node src) { + src.asExpr() instanceof SafeDocumentBuilder } private module SafeDocumentBuilderToDocumentBuilderParseFlow = - DataFlow::Global; + DataFlow::SimpleGlobal; /** * A `ParserConfig` specific to `DocumentBuilderFactory`. @@ -176,27 +151,19 @@ private class DocumentBuilderConstruction extends MethodAccess { } } -private module SafeDocumentBuilderFactoryToDocumentBuilderConstructionFlowConfig implements - DataFlow::ConfigSig -{ - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof SafeDocumentBuilderFactory } - - predicate isSink(DataFlow::Node sink) { - sink.asExpr() = any(DocumentBuilderConstruction dbc).getQualifier() - } - - int fieldFlowBranchLimit() { result = 0 } +private predicate safeDocumentBuilderFactoryNode(DataFlow::Node src) { + src.asExpr() instanceof SafeDocumentBuilderFactory } private module SafeDocumentBuilderFactoryToDocumentBuilderConstructionFlow = - DataFlow::Global; + DataFlow::SimpleGlobal; /** * A `DocumentBuilder` created from a safely configured `DocumentBuilderFactory`. */ class SafeDocumentBuilder extends DocumentBuilderConstruction { SafeDocumentBuilder() { - SafeDocumentBuilderFactoryToDocumentBuilderConstructionFlow::flowToExpr(this.getQualifier()) + SafeDocumentBuilderFactoryToDocumentBuilderConstructionFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) } } @@ -226,23 +193,16 @@ class XmlInputFactoryStreamReader extends XmlParserCall { } override predicate isSafe() { - SafeXmlInputFactoryToXmlInputFactoryReaderFlow::flowToExpr(this.getQualifier()) + SafeXmlInputFactoryToXmlInputFactoryReaderFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) } } -private module SafeXmlInputFactoryToXmlInputFactoryReaderFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof SafeXmlInputFactory } - - predicate isSink(DataFlow::Node sink) { - sink.asExpr() = any(XmlInputFactoryStreamReader xifsr).getQualifier() or - sink.asExpr() = any(XmlInputFactoryEventReader xifer).getQualifier() - } - - int fieldFlowBranchLimit() { result = 0 } +private predicate safeXmlInputFactoryNode(DataFlow::Node src) { + src.asExpr() instanceof SafeXmlInputFactory } private module SafeXmlInputFactoryToXmlInputFactoryReaderFlow = - DataFlow::Global; + DataFlow::SimpleGlobal; /** A call to `XMLInputFactory.createEventReader`. */ class XmlInputFactoryEventReader extends XmlParserCall { @@ -261,7 +221,7 @@ class XmlInputFactoryEventReader extends XmlParserCall { } override predicate isSafe() { - SafeXmlInputFactoryToXmlInputFactoryReaderFlow::flowToExpr(this.getQualifier()) + SafeXmlInputFactoryToXmlInputFactoryReaderFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) } } @@ -353,20 +313,13 @@ class SaxBuilderParse extends XmlParserCall { override Expr getSink() { result = this.getArgument(0) } override predicate isSafe() { - SafeSaxBuilderToSaxBuilderParseFlow::flowToExpr(this.getQualifier()) + SafeSaxBuilderToSaxBuilderParseFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) } } -private module SafeSaxBuilderToSaxBuilderParseFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof SafeSaxBuilder } +private predicate safeSaxBuilderNode(DataFlow::Node src) { src.asExpr() instanceof SafeSaxBuilder } - predicate isSink(DataFlow::Node sink) { sink.asExpr() = any(SaxBuilderParse sax).getQualifier() } - - int fieldFlowBranchLimit() { result = 0 } -} - -private module SafeSaxBuilderToSaxBuilderParseFlow = - DataFlow::Global; +private module SafeSaxBuilderToSaxBuilderParseFlow = DataFlow::SimpleGlobal; /** * A `ParserConfig` specific to `SAXBuilder`. @@ -426,7 +379,9 @@ class SaxParserParse extends XmlParserCall { override Expr getSink() { result = this.getArgument(0) } - override predicate isSafe() { SafeSaxParserFlow::flowToExpr(this.getQualifier()) } + override predicate isSafe() { + SafeSaxParserFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) + } } /** A `ParserConfig` that is specific to `SaxParserFactory`. */ @@ -473,44 +428,23 @@ class SafeSaxParserFactory extends VarAccess { } } -private module SafeSaxParserFactoryToNewSaxParserFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof SafeSaxParserFactory } - - predicate isSink(DataFlow::Node sink) { - exists(MethodAccess ma, Method m | - sink.asExpr() = ma.getQualifier() and - ma.getMethod() = m and - m.getDeclaringType() instanceof SaxParserFactory and - m.hasName("newSAXParser") - ) - } - - int fieldFlowBranchLimit() { result = 0 } +private predicate safeSaxParserFactoryNode(DataFlow::Node src) { + src.asExpr() instanceof SafeSaxParserFactory } private module SafeSaxParserFactoryToNewSaxParserFlow = - DataFlow::Global; + DataFlow::SimpleGlobal; -private module SafeSaxParserFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof SafeSaxParser } +private predicate safeSaxParserNode(DataFlow::Node src) { src.asExpr() instanceof SafeSaxParser } - predicate isSink(DataFlow::Node sink) { - exists(MethodAccess ma | - sink.asExpr() = ma.getQualifier() and ma.getMethod().getDeclaringType() instanceof SaxParser - ) - } - - int fieldFlowBranchLimit() { result = 0 } -} - -private module SafeSaxParserFlow = DataFlow::Global; +private module SafeSaxParserFlow = DataFlow::SimpleGlobal; /** A `SaxParser` created from a safely configured `SaxParserFactory`. */ class SafeSaxParser extends MethodAccess { SafeSaxParser() { this.getMethod().getDeclaringType() instanceof SaxParserFactory and this.getMethod().hasName("newSAXParser") and - SafeSaxParserFactoryToNewSaxParserFlow::flowToExpr(this.getQualifier()) + SafeSaxParserFactoryToNewSaxParserFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) } } @@ -534,7 +468,9 @@ class SaxReaderRead extends XmlParserCall { override Expr getSink() { result = this.getArgument(0) } - override predicate isSafe() { SafeSaxReaderFlow::flowToExpr(this.getQualifier()) } + override predicate isSafe() { + SafeSaxReaderFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) + } } /** A `ParserConfig` specific to `SaxReader`. */ @@ -548,19 +484,9 @@ class SaxReaderConfig extends ParserConfig { } } -private module SafeSaxReaderFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof SafeSaxReader } +private predicate safeSaxReaderNode(DataFlow::Node src) { src.asExpr() instanceof SafeSaxReader } - predicate isSink(DataFlow::Node sink) { - exists(MethodAccess ma | - sink.asExpr() = ma.getQualifier() and ma.getMethod().getDeclaringType() instanceof SaxReader - ) - } - - int fieldFlowBranchLimit() { result = 0 } -} - -private module SafeSaxReaderFlow = DataFlow::Global; +private module SafeSaxReaderFlow = DataFlow::SimpleGlobal; /** A safely configured `SaxReader`. */ class SafeSaxReader extends VarAccess { @@ -612,8 +538,8 @@ class XmlReaderParse extends XmlParserCall { override Expr getSink() { result = this.getArgument(0) } override predicate isSafe() { - exists(ExplicitlySafeXmlReader sr | sr.flowsTo(this.getQualifier())) or - exists(CreatedSafeXmlReader cr | cr.flowsTo(this.getQualifier())) + ExplicitlySafeXmlReaderFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) or + CreatedSafeXmlReaderFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) } } @@ -628,7 +554,7 @@ class XmlReaderConfig extends ParserConfig { } } -private module ExplicitlySafeXmlReaderFlowConfig implements DataFlow::ConfigSig { +deprecated private module ExplicitlySafeXmlReaderFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof ExplicitlySafeXmlReader } predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof SafeXmlReaderFlowSink } @@ -636,7 +562,14 @@ private module ExplicitlySafeXmlReaderFlowConfig implements DataFlow::ConfigSig int fieldFlowBranchLimit() { result = 0 } } -private module ExplicitlySafeXmlReaderFlow = DataFlow::Global; +private predicate explicitlySafeXmlReaderNode(DataFlow::Node src) { + src.asExpr() instanceof ExplicitlySafeXmlReader +} + +deprecated private module ExplicitlySafeXmlReaderFlowDeprecated = + DataFlow::Global; + +private module ExplicitlySafeXmlReaderFlow = DataFlow::SimpleGlobal; /** An argument to a safe XML reader. */ class SafeXmlReaderFlowSink extends Expr { @@ -680,13 +613,13 @@ class ExplicitlySafeXmlReader extends VarAccess { ) } - /** Holds if `SafeXmlReaderFlowSink` detects flow from this to `sink` */ - predicate flowsTo(SafeXmlReaderFlowSink sink) { - ExplicitlySafeXmlReaderFlow::flow(DataFlow::exprNode(this), DataFlow::exprNode(sink)) + /** DEPRECATED. Holds if `SafeXmlReaderFlowSink` detects flow from this to `sink` */ + deprecated predicate flowsTo(SafeXmlReaderFlowSink sink) { + ExplicitlySafeXmlReaderFlowDeprecated::flow(DataFlow::exprNode(this), DataFlow::exprNode(sink)) } } -private module CreatedSafeXmlReaderFlowConfig implements DataFlow::ConfigSig { +deprecated private module CreatedSafeXmlReaderFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CreatedSafeXmlReader } predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof SafeXmlReaderFlowSink } @@ -694,7 +627,14 @@ private module CreatedSafeXmlReaderFlowConfig implements DataFlow::ConfigSig { int fieldFlowBranchLimit() { result = 0 } } -private module CreatedSafeXmlReaderFlow = DataFlow::Global; +private predicate createdSafeXmlReaderNode(DataFlow::Node src) { + src.asExpr() instanceof CreatedSafeXmlReader +} + +deprecated private module CreatedSafeXmlReaderFlowDeprecated = + DataFlow::Global; + +private module CreatedSafeXmlReaderFlow = DataFlow::SimpleGlobal; /** An `XmlReader` that is obtained from a safe source. */ class CreatedSafeXmlReader extends Call { @@ -702,12 +642,12 @@ class CreatedSafeXmlReader extends Call { //Obtained from SAXParser this.(MethodAccess).getMethod().getDeclaringType() instanceof SaxParser and this.(MethodAccess).getMethod().hasName("getXMLReader") and - SafeSaxParserFlow::flowToExpr(this.getQualifier()) + SafeSaxParserFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) or //Obtained from SAXReader this.(MethodAccess).getMethod().getDeclaringType() instanceof SaxReader and this.(MethodAccess).getMethod().hasName("getXMLReader") and - SafeSaxReaderFlow::flowToExpr(this.getQualifier()) + SafeSaxReaderFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) or exists(RefType secureReader, string package | this.(ClassInstanceExpr).getConstructedType() = secureReader and @@ -716,9 +656,9 @@ class CreatedSafeXmlReader extends Call { ) } - /** Holds if `CreatedSafeXmlReaderFlowConfig` detects flow from this to `sink` */ - predicate flowsTo(SafeXmlReaderFlowSink sink) { - CreatedSafeXmlReaderFlow::flow(DataFlow::exprNode(this), DataFlow::exprNode(sink)) + /** DEPRECATED. Holds if `CreatedSafeXmlReaderFlowConfig` detects flow from this to `sink` */ + deprecated predicate flowsTo(SafeXmlReaderFlowSink sink) { + CreatedSafeXmlReaderFlowDeprecated::flow(DataFlow::exprNode(this), DataFlow::exprNode(sink)) } } @@ -747,8 +687,8 @@ class ConstructedSaxSource extends ClassInstanceExpr { /** Holds if the resulting `SaxSource` is safe. */ predicate isSafe() { - exists(CreatedSafeXmlReader safeReader | safeReader.flowsTo(this.getArgument(0))) or - exists(ExplicitlySafeXmlReader safeReader | safeReader.flowsTo(this.getArgument(0))) + CreatedSafeXmlReaderFlow::flowsTo(DataFlow::exprNode(this.getArgument(0))) or + ExplicitlySafeXmlReaderFlow::flowsTo(DataFlow::exprNode(this.getArgument(0))) } } @@ -769,8 +709,8 @@ class SafeSaxSource extends Expr { exists(Variable v | v = this.(VarAccess).getVariable() | exists(SaxSourceSetReader s | s.getQualifier() = v.getAnAccess() | ( - exists(CreatedSafeXmlReader safeReader | safeReader.flowsTo(s.getArgument(0))) or - exists(ExplicitlySafeXmlReader safeReader | safeReader.flowsTo(s.getArgument(0))) + CreatedSafeXmlReaderFlow::flowsTo(DataFlow::exprNode(s.getArgument(0))) or + ExplicitlySafeXmlReaderFlow::flowsTo(DataFlow::exprNode(s.getArgument(0))) ) ) ) @@ -859,22 +799,16 @@ class TransformerTransform extends XmlParserCall { override Expr getSink() { result = this.getArgument(0) } override predicate isSafe() { - SafeTransformerToTransformerTransformFlow::flowToExpr(this.getQualifier()) + SafeTransformerToTransformerTransformFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) } } -private module SafeTransformerToTransformerTransformFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof SafeTransformer } - - predicate isSink(DataFlow::Node sink) { - sink.asExpr() = any(TransformerTransform tt).getQualifier() - } - - int fieldFlowBranchLimit() { result = 0 } +private predicate safeTransformerNode(DataFlow::Node src) { + src.asExpr() instanceof SafeTransformer } private module SafeTransformerToTransformerTransformFlow = - DataFlow::Global; + DataFlow::SimpleGlobal; /** A call to `Transformer.newTransformer` with source. */ class TransformerFactorySource extends XmlParserCall { @@ -888,7 +822,9 @@ class TransformerFactorySource extends XmlParserCall { override Expr getSink() { result = this.getArgument(0) } - override predicate isSafe() { SafeTransformerFactoryFlow::flowToExpr(this.getQualifier()) } + override predicate isSafe() { + SafeTransformerFactoryFlow2::flowsTo(DataFlow::exprNode(this.getQualifier())) + } } /** A `ParserConfig` specific to `TransformerFactory`. */ @@ -903,7 +839,7 @@ class TransformerFactoryConfig extends TransformerConfig { } /** - * DEPRECATED: Use `SafeTransformerFactoryFlow` instead. + * DEPRECATED. * * A dataflow configuration that identifies `TransformerFactory` and `SAXTransformerFactory` * instances that have been safely configured. @@ -924,10 +860,12 @@ deprecated class SafeTransformerFactoryFlowConfig extends DataFlow3::Configurati } /** + * DEPRECATED. + * * A dataflow configuration that identifies `TransformerFactory` and `SAXTransformerFactory` * instances that have been safely configured. */ -module SafeTransformerFactoryFlowConfig implements DataFlow::ConfigSig { +deprecated module SafeTransformerFactoryFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof SafeTransformerFactory } predicate isSink(DataFlow::Node sink) { @@ -940,11 +878,19 @@ module SafeTransformerFactoryFlowConfig implements DataFlow::ConfigSig { int fieldFlowBranchLimit() { result = 0 } } +private predicate safeTransformerFactoryNode(DataFlow::Node src) { + src.asExpr() instanceof SafeTransformerFactory +} + /** + * DEPRECATED. + * * Identifies `TransformerFactory` and `SAXTransformerFactory` * instances that have been safely configured. */ -module SafeTransformerFactoryFlow = DataFlow::Global; +deprecated module SafeTransformerFactoryFlow = DataFlow::Global; + +private module SafeTransformerFactoryFlow2 = DataFlow::SimpleGlobal; /** A safely configured `TransformerFactory`. */ class SafeTransformerFactory extends VarAccess { @@ -967,7 +913,7 @@ class SafeTransformer extends MethodAccess { this.getMethod() = m and m.getDeclaringType() instanceof TransformerFactory and m.hasName("newTransformer") and - SafeTransformerFactoryFlow::flowToExpr(this.getQualifier()) + SafeTransformerFactoryFlow2::flowsTo(DataFlow::exprNode(this.getQualifier())) ) } } @@ -989,7 +935,9 @@ class SaxTransformerFactoryNewXmlFilter extends XmlParserCall { override Expr getSink() { result = this.getArgument(0) } - override predicate isSafe() { SafeTransformerFactoryFlow::flowToExpr(this.getQualifier()) } + override predicate isSafe() { + SafeTransformerFactoryFlow2::flowsTo(DataFlow::exprNode(this.getQualifier())) + } } /* Schema: https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#schemafactory */ @@ -1022,22 +970,16 @@ class SchemaFactoryNewSchema extends XmlParserCall { override Expr getSink() { result = this.getArgument(0) } override predicate isSafe() { - SafeSchemaFactoryToSchemaFactoryNewSchemaFlow::flowToExpr(this.getQualifier()) + SafeSchemaFactoryToSchemaFactoryNewSchemaFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) } } -private module SafeSchemaFactoryToSchemaFactoryNewSchemaFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof SafeSchemaFactory } - - predicate isSink(DataFlow::Node sink) { - sink.asExpr() = any(SchemaFactoryNewSchema sfns).getQualifier() - } - - int fieldFlowBranchLimit() { result = 0 } +private predicate safeSchemaFactoryNode(DataFlow::Node src) { + src.asExpr() instanceof SafeSchemaFactory } private module SafeSchemaFactoryToSchemaFactoryNewSchemaFlow = - DataFlow::Global; + DataFlow::SimpleGlobal; /** A safely configured `SchemaFactory`. */ class SafeSchemaFactory extends VarAccess { diff --git a/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java b/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java index 98d95686301..5761bb53136 100644 --- a/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java +++ b/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java @@ -129,7 +129,7 @@ class DocumentBuilderTests { public void disableExternalEntities2(Socket sock) throws Exception { DocumentBuilder builder = XML_DOCUMENT_BUILDER.get(); - builder.parse(sock.getInputStream()); // safe + builder.parse(sock.getInputStream()); // $ SPURIOUS: hasTaintFlow } } From fb1ce2ab706ca6b0e3006ccc3e20a34ce9a471d9 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 20 Sep 2023 09:51:35 +0100 Subject: [PATCH 543/788] C++: Lift 'getParameter' to 'ParameterNode'. --- .../semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index da5c02f0e76..6454aa04ea1 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1354,6 +1354,9 @@ class ParameterNode extends Node { * pointer-indirection parameters are at further negative positions. */ predicate isParameterOf(Function f, ParameterPosition pos) { none() } // overridden by subclasses + + /** Gets the `Parameter` associated with this node, if it exists. */ + Parameter getParameter() { none() } } /** An explicit positional parameter, including `this`, but not `...`. */ @@ -1376,10 +1379,9 @@ private class ExplicitParameterNode extends ParameterNode, DirectParameterNode { f.getParameter(pos.(DirectPosition).getIndex()) = instr.getParameter() } - /** Gets the `Parameter` associated with this node. */ - Parameter getParameter() { result = instr.getParameter() } - override string toStringImpl() { result = instr.getParameter().toString() } + + override Parameter getParameter() { result = instr.getParameter() } } /** An implicit `this` parameter. */ From 22d66b6d816d3aa6e8bca8ec4eb1de07ed15b443 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 20 Sep 2023 09:56:10 +0100 Subject: [PATCH 544/788] Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll --- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 6454aa04ea1..db95fa94f9f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1356,7 +1356,7 @@ class ParameterNode extends Node { predicate isParameterOf(Function f, ParameterPosition pos) { none() } // overridden by subclasses /** Gets the `Parameter` associated with this node, if it exists. */ - Parameter getParameter() { none() } + Parameter getParameter() { none() } // overridden by subclasses } /** An explicit positional parameter, including `this`, but not `...`. */ From a8afa05b1d4bf4fa70d78f6886f01c59aa731161 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 20 Sep 2023 10:00:53 +0100 Subject: [PATCH 545/788] Correct ReplaceAll params ReplaceAll doesn't take a count argument --- go/ql/src/Security/CWE-117/LogInjectionGood.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/ql/src/Security/CWE-117/LogInjectionGood.go b/go/ql/src/Security/CWE-117/LogInjectionGood.go index a43fa04bbbd..74bc5e75b2d 100644 --- a/go/ql/src/Security/CWE-117/LogInjectionGood.go +++ b/go/ql/src/Security/CWE-117/LogInjectionGood.go @@ -9,7 +9,7 @@ import ( // GOOD: The user-provided value is escaped before being written to the log. func handlerGood(req *http.Request) { username := req.URL.Query()["username"][0] - escapedUsername := strings.ReplaceAll(username, "\n", "", -1) - escapedUsername = strings.ReplaceAll(escapedUsername, "\r", "", -1) + escapedUsername := strings.ReplaceAll(username, "\n", "") + escapedUsername = strings.ReplaceAll(escapedUsername, "\r", "") log.Printf("user %s logged in.\n", escapedUsername) } From 3acf5244b09f9b4ae49bbd6881b95c060428e793 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 20 Sep 2023 10:25:10 +0000 Subject: [PATCH 546/788] Post-release preparation for codeql-cli-2.14.6 --- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/automodel/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 23c8a5593dd..d1469e24fa5 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.9.3 +version: 0.9.4-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index d85dae260a0..785271a7454 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.7.5 +version: 0.7.6-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index de6d857f7ae..f27f54c8e23 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.6.5 +version: 1.6.6-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index b2855e50867..718c84a66de 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.6.5 +version: 1.6.6-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 319ef1d781c..10e94f2e69f 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.7.5 +version: 0.7.6-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index ddc99c0a13e..70110b90b07 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.7.5 +version: 0.7.6-dev groups: - csharp - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 61c006e894e..ff7976ed425 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.6.5 +version: 0.6.6-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index c3c6b0df51c..91b210245e7 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.6.5 +version: 0.6.6-dev groups: - go - queries diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index 87974b2c5f5..d41368cab93 100644 --- a/java/ql/automodel/src/qlpack.yml +++ b/java/ql/automodel/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-automodel-queries -version: 0.0.4 +version: 0.0.5-dev groups: - java - automodel diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index e3f7e966156..09f5b00eefe 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.7.5 +version: 0.7.6-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index e7d3e14d880..93f9595e72e 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.7.5 +version: 0.7.6-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 50798281f5c..d2467d48ad1 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.7.5 +version: 0.7.6-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 5d978202522..64fe425b70d 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.7.5 +version: 0.7.6-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 5e3add410c0..c88ef654f92 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.6.5 +version: 0.6.6-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 7f76cb20cd3..e962a60573a 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.10.5 +version: 0.10.6-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index bbe68653fc5..970db8a598e 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.8.5 +version: 0.8.6-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 81e1c241ca1..02d99493d03 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.7.5 +version: 0.7.6-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index cb0621cc44c..3718a3c7563 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.7.5 +version: 0.7.6-dev groups: - ruby - queries diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 68b4a88ec7e..c4242a69317 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.0.4 +version: 0.0.5-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 9bd4452560f..8dded993f02 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.0.4 +version: 0.0.5-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 211a7384f65..11ab6bf34db 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 0.1.5 +version: 0.1.6-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index df4e7e2e9d3..9e0cfd4d3a5 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.1.5 +version: 0.1.6-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index d83c72e7972..a3826b28cb3 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.1.5 +version: 0.1.6-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 41c2bfde5cf..c37770a1d37 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,6 +1,6 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 0.1.5 +version: 0.1.6-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index fed0ae85568..4cb45c66292 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.1.5 +version: 0.1.6-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 7737a5ee37f..a990f517346 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.1.5 +version: 0.1.6-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index fd17261ec66..1ba74dbe554 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.1.5 +version: 0.1.6-dev groups: shared library: true dependencies: diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 77f50d2cd66..ebca3f050c1 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.1.5 +version: 0.1.6-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 094cee96f3b..a53253fd065 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.2.5 +version: 0.2.6-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 5fcc0bf1601..414c836aba7 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.2.5 +version: 0.2.6-dev groups: - swift - queries From 45432f211c8bfed8f9fc9f163a41647a6f5ee1fc Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 20 Sep 2023 13:01:24 +0200 Subject: [PATCH 547/788] C#: Identify whether callables in the source code are supported in terms of MaD. --- .../code/csharp/dataflow/ExternalFlow.qll | 14 +++++++ .../modeleditor/ApplicationModeEndpoints.ql | 40 +++++++++++++++++++ .../modeleditor/FrameworkModeEndpoints.ql | 9 ++++- .../ql/src/utils/modeleditor/ModelEditor.qll | 40 ++----------------- 4 files changed, 65 insertions(+), 38 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll index 755b8023040..7f09f70014b 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll @@ -418,6 +418,20 @@ Element interpretElement( ) } +/** + * A callable where there exists a MaD sink model that applies to it. + */ +class SinkCallable extends Callable { + SinkCallable() { sinkElement(this, _, _, _) } +} + +/** + * A callable where there exists a MaD source model that applies to it. + */ +class SourceCallable extends Callable { + SourceCallable() { sourceElement(this, _, _, _) } +} + cached private module Cached { /** diff --git a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index c8f6347d2c3..272229cbdac 100644 --- a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -8,10 +8,50 @@ */ private import csharp +private import semmle.code.csharp.dataflow.ExternalFlow +private import semmle.code.csharp.dataflow.FlowSummary +private import semmle.code.csharp.dataflow.internal.DataFlowDispatch as DataFlowDispatch +private import semmle.code.csharp.dataflow.internal.DataFlowPrivate +private import semmle.code.csharp.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon +private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate +private import semmle.code.csharp.security.dataflow.flowsources.Remote private import ModelEditor class ExternalEndpoint extends Endpoint { ExternalEndpoint() { this.fromLibrary() } + + /** Gets a node that is an input to a call to this API. */ + private ArgumentNode getAnInput() { + result + .getCall() + .(DataFlowDispatch::NonDelegateDataFlowCall) + .getATarget(_) + .getUnboundDeclaration() = this + } + + /** Gets a node that is an output from a call to this API. */ + private DataFlow::Node getAnOutput() { + exists( + Call c, DataFlowDispatch::NonDelegateDataFlowCall dc, DataFlowImplCommon::ReturnKindExt ret + | + dc.getDispatchCall().getCall() = c and + c.getTarget().getUnboundDeclaration() = this + | + result = ret.getAnOutNode(dc) + ) + } + + override predicate hasSummary() { + this instanceof SummarizedCallable + or + defaultAdditionalTaintStep(this.getAnInput(), _) + } + + override predicate isSource() { + this.getAnOutput() instanceof RemoteFlowSource or sourceNode(this.getAnOutput(), _) + } + + override predicate isSink() { sinkNode(this.getAnInput(), _) } } private Call aUsage(ExternalEndpoint api) { result.getTarget().getUnboundDeclaration() = api } diff --git a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index 125bceee641..381aeeafce7 100644 --- a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -8,12 +8,19 @@ */ private import csharp -private import dotnet +private import semmle.code.csharp.dataflow.ExternalFlow +private import semmle.code.csharp.dataflow.FlowSummary private import semmle.code.csharp.frameworks.Test private import ModelEditor class PublicEndpointFromSource extends Endpoint { PublicEndpointFromSource() { this.fromSource() and not this.getFile() instanceof TestFile } + + override predicate hasSummary() { this instanceof SummarizedCallable } + + override predicate isSource() { this instanceof SourceCallable } + + override predicate isSink() { this instanceof SinkCallable } } from PublicEndpointFromSource endpoint, string apiName, boolean supported, string type diff --git a/csharp/ql/src/utils/modeleditor/ModelEditor.qll b/csharp/ql/src/utils/modeleditor/ModelEditor.qll index f91e7d8aa9c..11424dac83a 100644 --- a/csharp/ql/src/utils/modeleditor/ModelEditor.qll +++ b/csharp/ql/src/utils/modeleditor/ModelEditor.qll @@ -2,16 +2,9 @@ private import csharp private import dotnet -private import semmle.code.csharp.dispatch.Dispatch -private import semmle.code.csharp.dataflow.ExternalFlow -private import semmle.code.csharp.dataflow.FlowSummary -private import semmle.code.csharp.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon private import semmle.code.csharp.dataflow.internal.DataFlowPrivate -private import semmle.code.csharp.dataflow.internal.DataFlowDispatch as DataFlowDispatch private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl -private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate private import semmle.code.csharp.frameworks.Test -private import semmle.code.csharp.security.dataflow.flowsources.Remote private import Telemetry.TestLibrary /** Holds if the given callable is not worth supporting. */ @@ -69,44 +62,17 @@ class Endpoint extends DotNet::Callable { not exists(this.getDllVersion()) and result = "" } - /** Gets a node that is an input to a call to this API. */ - private ArgumentNode getAnInput() { - result - .getCall() - .(DataFlowDispatch::NonDelegateDataFlowCall) - .getATarget(_) - .getUnboundDeclaration() = this - } - - /** Gets a node that is an output from a call to this API. */ - private DataFlow::Node getAnOutput() { - exists( - Call c, DataFlowDispatch::NonDelegateDataFlowCall dc, DataFlowImplCommon::ReturnKindExt ret - | - dc.getDispatchCall().getCall() = c and - c.getTarget().getUnboundDeclaration() = this - | - result = ret.getAnOutNode(dc) - ) - } - /** Holds if this API has a supported summary. */ pragma[nomagic] - predicate hasSummary() { - this instanceof SummarizedCallable - or - defaultAdditionalTaintStep(this.getAnInput(), _) - } + abstract predicate hasSummary(); /** Holds if this API is a known source. */ pragma[nomagic] - predicate isSource() { - this.getAnOutput() instanceof RemoteFlowSource or sourceNode(this.getAnOutput(), _) - } + abstract predicate isSource(); /** Holds if this API is a known sink. */ pragma[nomagic] - predicate isSink() { sinkNode(this.getAnInput(), _) } + abstract predicate isSink(); /** Holds if this API is a known neutral. */ pragma[nomagic] From 50a9219a3b2d52b0e0e3fcf20daff66aa93451d4 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 20 Sep 2023 13:08:01 +0200 Subject: [PATCH 548/788] C#: Re-factor most of the logic out of the model editor query files. --- .../modeleditor/ApplicationModeEndpoints.ql | 49 ++----------------- .../ApplicationModeEndpointsQuery.qll | 46 +++++++++++++++++ .../modeleditor/FrameworkModeEndpoints.ql | 18 ++----- .../FrameworkModeEndpointsQuery.qll | 15 ++++++ 4 files changed, 67 insertions(+), 61 deletions(-) create mode 100644 csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll create mode 100644 csharp/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll diff --git a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index 272229cbdac..334c8a9a64d 100644 --- a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -7,52 +7,9 @@ * @tags modeleditor endpoints application-mode */ -private import csharp -private import semmle.code.csharp.dataflow.ExternalFlow -private import semmle.code.csharp.dataflow.FlowSummary -private import semmle.code.csharp.dataflow.internal.DataFlowDispatch as DataFlowDispatch -private import semmle.code.csharp.dataflow.internal.DataFlowPrivate -private import semmle.code.csharp.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon -private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate -private import semmle.code.csharp.security.dataflow.flowsources.Remote -private import ModelEditor - -class ExternalEndpoint extends Endpoint { - ExternalEndpoint() { this.fromLibrary() } - - /** Gets a node that is an input to a call to this API. */ - private ArgumentNode getAnInput() { - result - .getCall() - .(DataFlowDispatch::NonDelegateDataFlowCall) - .getATarget(_) - .getUnboundDeclaration() = this - } - - /** Gets a node that is an output from a call to this API. */ - private DataFlow::Node getAnOutput() { - exists( - Call c, DataFlowDispatch::NonDelegateDataFlowCall dc, DataFlowImplCommon::ReturnKindExt ret - | - dc.getDispatchCall().getCall() = c and - c.getTarget().getUnboundDeclaration() = this - | - result = ret.getAnOutNode(dc) - ) - } - - override predicate hasSummary() { - this instanceof SummarizedCallable - or - defaultAdditionalTaintStep(this.getAnInput(), _) - } - - override predicate isSource() { - this.getAnOutput() instanceof RemoteFlowSource or sourceNode(this.getAnOutput(), _) - } - - override predicate isSink() { sinkNode(this.getAnInput(), _) } -} +import csharp +import ApplicationModeEndpointsQuery +import ModelEditor private Call aUsage(ExternalEndpoint api) { result.getTarget().getUnboundDeclaration() = api } diff --git a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll new file mode 100644 index 00000000000..9076cb87d90 --- /dev/null +++ b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll @@ -0,0 +1,46 @@ +private import csharp +private import semmle.code.csharp.dataflow.ExternalFlow +private import semmle.code.csharp.dataflow.FlowSummary +private import semmle.code.csharp.dataflow.internal.DataFlowDispatch as DataFlowDispatch +private import semmle.code.csharp.dataflow.internal.DataFlowPrivate +private import semmle.code.csharp.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon +private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate +private import semmle.code.csharp.security.dataflow.flowsources.Remote +private import ModelEditor + +class ExternalEndpoint extends Endpoint { + ExternalEndpoint() { this.fromLibrary() } + + /** Gets a node that is an input to a call to this API. */ + private ArgumentNode getAnInput() { + result + .getCall() + .(DataFlowDispatch::NonDelegateDataFlowCall) + .getATarget(_) + .getUnboundDeclaration() = this + } + + /** Gets a node that is an output from a call to this API. */ + private DataFlow::Node getAnOutput() { + exists( + Call c, DataFlowDispatch::NonDelegateDataFlowCall dc, DataFlowImplCommon::ReturnKindExt ret + | + dc.getDispatchCall().getCall() = c and + c.getTarget().getUnboundDeclaration() = this + | + result = ret.getAnOutNode(dc) + ) + } + + override predicate hasSummary() { + this instanceof SummarizedCallable + or + defaultAdditionalTaintStep(this.getAnInput(), _) + } + + override predicate isSource() { + this.getAnOutput() instanceof RemoteFlowSource or sourceNode(this.getAnOutput(), _) + } + + override predicate isSink() { sinkNode(this.getAnInput(), _) } +} diff --git a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index 381aeeafce7..71de3b55be3 100644 --- a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -7,21 +7,9 @@ * @tags modeleditor endpoints framework-mode */ -private import csharp -private import semmle.code.csharp.dataflow.ExternalFlow -private import semmle.code.csharp.dataflow.FlowSummary -private import semmle.code.csharp.frameworks.Test -private import ModelEditor - -class PublicEndpointFromSource extends Endpoint { - PublicEndpointFromSource() { this.fromSource() and not this.getFile() instanceof TestFile } - - override predicate hasSummary() { this instanceof SummarizedCallable } - - override predicate isSource() { this instanceof SourceCallable } - - override predicate isSink() { this instanceof SinkCallable } -} +import csharp +import FrameworkModeEndpointsQuery +import ModelEditor from PublicEndpointFromSource endpoint, string apiName, boolean supported, string type where diff --git a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll new file mode 100644 index 00000000000..5826cac1a6e --- /dev/null +++ b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll @@ -0,0 +1,15 @@ +private import csharp +private import semmle.code.csharp.dataflow.ExternalFlow +private import semmle.code.csharp.dataflow.FlowSummary +private import semmle.code.csharp.frameworks.Test +private import ModelEditor + +class PublicEndpointFromSource extends Endpoint { + PublicEndpointFromSource() { this.fromSource() and not this.getFile() instanceof TestFile } + + override predicate hasSummary() { this instanceof SummarizedCallable } + + override predicate isSource() { this instanceof SourceCallable } + + override predicate isSink() { this instanceof SinkCallable } +} From 13dd9a6c37c62f2293e67d6b7588f5bcf2e04aa9 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 20 Sep 2023 13:43:38 +0200 Subject: [PATCH 549/788] C#: Address review comments. --- csharp/ql/src/Telemetry/ExternalApi.qll | 5 ++-- .../ApplicationModeEndpointsQuery.qll | 12 ++++----- .../FrameworkModeEndpointsQuery.qll | 6 ++--- .../ql/src/utils/modeleditor/ModelEditor.qll | 26 ++++++++----------- 4 files changed, 22 insertions(+), 27 deletions(-) diff --git a/csharp/ql/src/Telemetry/ExternalApi.qll b/csharp/ql/src/Telemetry/ExternalApi.qll index a7889318bc4..0f1ec6c2931 100644 --- a/csharp/ql/src/Telemetry/ExternalApi.qll +++ b/csharp/ql/src/Telemetry/ExternalApi.qll @@ -1,7 +1,6 @@ /** Provides classes and predicates related to handling APIs from external libraries. */ private import csharp -private import dotnet private import semmle.code.csharp.dispatch.Dispatch private import semmle.code.csharp.dataflow.ExternalFlow private import semmle.code.csharp.dataflow.FlowSummary @@ -14,7 +13,7 @@ private import semmle.code.csharp.security.dataflow.flowsources.Remote private import TestLibrary /** Holds if the given callable is not worth supporting. */ -private predicate isUninteresting(DotNet::Callable c) { +private predicate isUninteresting(Callable c) { c.getDeclaringType() instanceof TestLibrary or c.(Constructor).isParameterless() } @@ -22,7 +21,7 @@ private predicate isUninteresting(DotNet::Callable c) { /** * An external API from either the C# Standard Library or a 3rd party library. */ -class ExternalApi extends DotNet::Callable { +class ExternalApi extends Callable { ExternalApi() { this.isUnboundDeclaration() and this.fromLibrary() and diff --git a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll index 9076cb87d90..1e2c58e9893 100644 --- a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll +++ b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll @@ -1,6 +1,5 @@ private import csharp private import semmle.code.csharp.dataflow.ExternalFlow -private import semmle.code.csharp.dataflow.FlowSummary private import semmle.code.csharp.dataflow.internal.DataFlowDispatch as DataFlowDispatch private import semmle.code.csharp.dataflow.internal.DataFlowPrivate private import semmle.code.csharp.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon @@ -8,6 +7,9 @@ private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate private import semmle.code.csharp.security.dataflow.flowsources.Remote private import ModelEditor +/** + * A class of effectively public callables in library code. + */ class ExternalEndpoint extends Endpoint { ExternalEndpoint() { this.fromLibrary() } @@ -22,18 +24,16 @@ class ExternalEndpoint extends Endpoint { /** Gets a node that is an output from a call to this API. */ private DataFlow::Node getAnOutput() { - exists( - Call c, DataFlowDispatch::NonDelegateDataFlowCall dc, DataFlowImplCommon::ReturnKindExt ret - | + exists(Call c, DataFlowDispatch::NonDelegateDataFlowCall dc | dc.getDispatchCall().getCall() = c and c.getTarget().getUnboundDeclaration() = this | - result = ret.getAnOutNode(dc) + result = DataFlowDispatch::getAnOutNode(dc, _) ) } override predicate hasSummary() { - this instanceof SummarizedCallable + Endpoint.super.hasSummary() or defaultAdditionalTaintStep(this.getAnInput(), _) } diff --git a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll index 5826cac1a6e..b83060ed17f 100644 --- a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll +++ b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll @@ -1,14 +1,14 @@ private import csharp private import semmle.code.csharp.dataflow.ExternalFlow -private import semmle.code.csharp.dataflow.FlowSummary private import semmle.code.csharp.frameworks.Test private import ModelEditor +/** + * A class of effectively public callables from source code. + */ class PublicEndpointFromSource extends Endpoint { PublicEndpointFromSource() { this.fromSource() and not this.getFile() instanceof TestFile } - override predicate hasSummary() { this instanceof SummarizedCallable } - override predicate isSource() { this instanceof SourceCallable } override predicate isSink() { this instanceof SinkCallable } diff --git a/csharp/ql/src/utils/modeleditor/ModelEditor.qll b/csharp/ql/src/utils/modeleditor/ModelEditor.qll index 11424dac83a..1b34b8e2e91 100644 --- a/csharp/ql/src/utils/modeleditor/ModelEditor.qll +++ b/csharp/ql/src/utils/modeleditor/ModelEditor.qll @@ -1,14 +1,14 @@ /** Provides classes and predicates related to handling APIs for the VS Code extension. */ private import csharp -private import dotnet +private import semmle.code.csharp.dataflow.FlowSummary private import semmle.code.csharp.dataflow.internal.DataFlowPrivate private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl private import semmle.code.csharp.frameworks.Test private import Telemetry.TestLibrary /** Holds if the given callable is not worth supporting. */ -private predicate isUninteresting(DotNet::Callable c) { +private predicate isUninteresting(Callable c) { c.getDeclaringType() instanceof TestLibrary or c.(Constructor).isParameterless() or c.getDeclaringType() instanceof AnonymousClass @@ -17,7 +17,7 @@ private predicate isUninteresting(DotNet::Callable c) { /** * A callable method or accessor from either the C# Standard Library, a 3rd party library, or from the source. */ -class Endpoint extends DotNet::Callable { +class Endpoint extends Callable { Endpoint() { [this.(Modifiable), this.(Accessor).getDeclaration()].isEffectivelyPublic() and not isUninteresting(this) and @@ -64,7 +64,7 @@ class Endpoint extends DotNet::Callable { /** Holds if this API has a supported summary. */ pragma[nomagic] - abstract predicate hasSummary(); + predicate hasSummary() { this instanceof SummarizedCallable } /** Holds if this API is a known source. */ pragma[nomagic] @@ -88,10 +88,7 @@ class Endpoint extends DotNet::Callable { } boolean isSupported(Endpoint endpoint) { - endpoint.isSupported() and result = true - or - not endpoint.isSupported() and - result = false + if endpoint.isSupported() then result = true else result = false } string supportedType(Endpoint endpoint) { @@ -114,16 +111,15 @@ string methodClassification(Call method) { } /** - * Gets the nested name of the declaration. + * Gets the nested name of the type `t`. * - * If the declaration is not a nested type, the result is the same as `getName()`. + * If the type is not a nested type, the result is the same as `getName()`. * Otherwise the name of the nested type is prefixed with a `+` and appended to * the name of the enclosing type, which might be a nested type as well. */ -private string nestedName(Declaration declaration) { - not exists(declaration.getDeclaringType().getUnboundDeclaration()) and - result = declaration.getName() +private string nestedName(Type t) { + not exists(t.getDeclaringType().getUnboundDeclaration()) and + result = t.getName() or - nestedName(declaration.getDeclaringType().getUnboundDeclaration()) + "+" + declaration.getName() = - result + nestedName(t.getDeclaringType().getUnboundDeclaration()) + "+" + t.getName() = result } From 082a45400de4da765da21d5c7b80fdb69057d7e6 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 20 Sep 2023 13:51:05 +0200 Subject: [PATCH 550/788] Java: Rename AutomodelVsCode to ModelEditor --- java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql | 2 +- java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql | 2 +- .../utils/modeleditor/{AutomodelVsCode.qll => ModelEditor.qll} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename java/ql/src/utils/modeleditor/{AutomodelVsCode.qll => ModelEditor.qll} (100%) diff --git a/java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql b/java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql index c49770e94af..6ae03203372 100644 --- a/java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql +++ b/java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql @@ -8,7 +8,7 @@ */ private import java -private import AutomodelVsCode +private import ModelEditor class ExternalApi extends CallableMethod { ExternalApi() { not this.fromSource() } diff --git a/java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql b/java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql index d115105d190..3ebf2e50f39 100644 --- a/java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql +++ b/java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql @@ -9,7 +9,7 @@ private import java private import semmle.code.java.dataflow.internal.ModelExclusions -private import AutomodelVsCode +private import ModelEditor class PublicMethodFromSource extends CallableMethod, ModelApi { } diff --git a/java/ql/src/utils/modeleditor/AutomodelVsCode.qll b/java/ql/src/utils/modeleditor/ModelEditor.qll similarity index 100% rename from java/ql/src/utils/modeleditor/AutomodelVsCode.qll rename to java/ql/src/utils/modeleditor/ModelEditor.qll From fe7ce0ae0b959ccb0a7875a095c344dfb1be7da3 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 20 Sep 2023 13:52:49 +0200 Subject: [PATCH 551/788] Java: Rename queries from fetch methods to endpoints --- ...etchApplicationModeMethods.ql => ApplicationModeEndpoints.ql} | 0 .../{FetchFrameworkModeMethods.ql => FrameworkModeEndpoints.ql} | 0 ...ionModeMethods.expected => ApplicationModeEndpoints.expected} | 0 java/ql/test/utils/modeleditor/ApplicationModeEndpoints.qlref | 1 + java/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref | 1 - java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref | 1 - ...eworkModeMethods.expected => FrameworkModeEndpoints.expected} | 0 java/ql/test/utils/modeleditor/FrameworkModeEndpoints.qlref | 1 + 8 files changed, 2 insertions(+), 2 deletions(-) rename java/ql/src/utils/modeleditor/{FetchApplicationModeMethods.ql => ApplicationModeEndpoints.ql} (100%) rename java/ql/src/utils/modeleditor/{FetchFrameworkModeMethods.ql => FrameworkModeEndpoints.ql} (100%) rename java/ql/test/utils/modeleditor/{FetchApplicationModeMethods.expected => ApplicationModeEndpoints.expected} (100%) create mode 100644 java/ql/test/utils/modeleditor/ApplicationModeEndpoints.qlref delete mode 100644 java/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref delete mode 100644 java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref rename java/ql/test/utils/modeleditor/{FetchFrameworkModeMethods.expected => FrameworkModeEndpoints.expected} (100%) create mode 100644 java/ql/test/utils/modeleditor/FrameworkModeEndpoints.qlref diff --git a/java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql similarity index 100% rename from java/ql/src/utils/modeleditor/FetchApplicationModeMethods.ql rename to java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql diff --git a/java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql similarity index 100% rename from java/ql/src/utils/modeleditor/FetchFrameworkModeMethods.ql rename to java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql diff --git a/java/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected similarity index 100% rename from java/ql/test/utils/modeleditor/FetchApplicationModeMethods.expected rename to java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected diff --git a/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.qlref b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.qlref new file mode 100644 index 00000000000..4787fa5d4b2 --- /dev/null +++ b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.qlref @@ -0,0 +1 @@ +utils/modeleditor/ApplicationModeEndpoints.ql \ No newline at end of file diff --git a/java/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref b/java/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref deleted file mode 100644 index 9d245465731..00000000000 --- a/java/ql/test/utils/modeleditor/FetchApplicationModeMethods.qlref +++ /dev/null @@ -1 +0,0 @@ -utils/modeleditor/FetchApplicationModeMethods.ql \ No newline at end of file diff --git a/java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref b/java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref deleted file mode 100644 index 39bdee5a08d..00000000000 --- a/java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.qlref +++ /dev/null @@ -1 +0,0 @@ -utils/modeleditor/FetchFrameworkModeMethods.ql \ No newline at end of file diff --git a/java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected similarity index 100% rename from java/ql/test/utils/modeleditor/FetchFrameworkModeMethods.expected rename to java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected diff --git a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.qlref b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.qlref new file mode 100644 index 00000000000..5ae87455edd --- /dev/null +++ b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.qlref @@ -0,0 +1 @@ +utils/modeleditor/FrameworkModeEndpoints.ql \ No newline at end of file From fee964007771d182413b0503d8af397337832281 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 20 Sep 2023 13:54:35 +0200 Subject: [PATCH 552/788] Java: Update query id/tags and documentation --- java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql | 8 ++++---- java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index 6ae03203372..20e989ffeba 100644 --- a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -1,10 +1,10 @@ /** - * @name Fetch model editor methods (application mode) - * @description A list of 3rd party APIs used in the codebase. Excludes test and generated code. + * @name Fetch endpoints for use in the model editor (application mode) + * @description A list of 3rd party endpoints (methods) used in the codebase. Excludes test and generated code. * @kind problem * @problem.severity recommendation - * @id java/utils/modeleditor/fetch-application-mode-methods - * @tags modeleditor fetch methods application-mode + * @id java/utils/modeleditor/application-mode-endpoints + * @tags modeleditor endpoints application-mode */ private import java diff --git a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index 3ebf2e50f39..102015a08af 100644 --- a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -1,10 +1,10 @@ /** - * @name Fetch model editor methods (framework mode) - * @description A list of APIs callable by consumers. Excludes test and generated code. + * @name Fetch endpoints for use in the model editor (framework mode) + * @description A list of endpoints accessible (methods) for consumers of the library. Excludes test and generated code. * @kind problem * @problem.severity recommendation - * @id java/utils/modeleditor/fetch-framework-mode-methods - * @tags modeleditor fetch methods framework-mode + * @id java/utils/modeleditor/framework-mode-endpoints + * @tags modeleditor endpoints framework-mode */ private import java From 6e78aac6cc61f637da21a6f7dc94abd8a46213f5 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 20 Sep 2023 13:57:27 +0200 Subject: [PATCH 553/788] Java: Rename CallableMethod to Endpoint --- .../modeleditor/ApplicationModeEndpoints.ql | 24 +++++++------- .../modeleditor/FrameworkModeEndpoints.ql | 14 ++++---- java/ql/src/utils/modeleditor/ModelEditor.qll | 32 +++++++++---------- 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index 20e989ffeba..f8216ea6bcb 100644 --- a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -10,20 +10,22 @@ private import java private import ModelEditor -class ExternalApi extends CallableMethod { - ExternalApi() { not this.fromSource() } +class ExternalEndpoint extends Endpoint { + ExternalEndpoint() { not this.fromSource() } } -private Call aUsage(ExternalApi api) { result.getCallee().getSourceDeclaration() = api } +private Call aUsage(ExternalEndpoint endpoint) { + result.getCallee().getSourceDeclaration() = endpoint +} from - ExternalApi externalApi, string apiName, boolean supported, Call usage, string type, + ExternalEndpoint endpoint, string apiName, boolean supported, Call usage, string type, string classification where - apiName = externalApi.getApiName() and - supported = isSupported(externalApi) and - usage = aUsage(externalApi) and - type = supportedType(externalApi) and - classification = methodClassification(usage) -select usage, apiName, supported.toString(), "supported", externalApi.jarContainer(), - externalApi.jarVersion(), type, "type", classification, "classification" + apiName = endpoint.getApiName() and + supported = isSupported(endpoint) and + usage = aUsage(endpoint) and + type = supportedType(endpoint) and + classification = usageClassification(usage) +select usage, apiName, supported.toString(), "supported", endpoint.jarContainer(), + endpoint.jarVersion(), type, "type", classification, "classification" diff --git a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index 102015a08af..d0e55f5145e 100644 --- a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -11,13 +11,13 @@ private import java private import semmle.code.java.dataflow.internal.ModelExclusions private import ModelEditor -class PublicMethodFromSource extends CallableMethod, ModelApi { } +class PublicEndpointFromSource extends Endpoint, ModelApi { } -from PublicMethodFromSource publicMethod, string apiName, boolean supported, string type +from PublicEndpointFromSource endpoint, string apiName, boolean supported, string type where - apiName = publicMethod.getApiName() and - supported = isSupported(publicMethod) and - type = supportedType(publicMethod) -select publicMethod, apiName, supported.toString(), "supported", - publicMethod.getCompilationUnit().getParentContainer().getBaseName(), "library", type, "type", + apiName = endpoint.getApiName() and + supported = isSupported(endpoint) and + type = supportedType(endpoint) +select endpoint, apiName, supported.toString(), "supported", + endpoint.getCompilationUnit().getParentContainer().getBaseName(), "library", type, "type", "unknown", "classification" diff --git a/java/ql/src/utils/modeleditor/ModelEditor.qll b/java/ql/src/utils/modeleditor/ModelEditor.qll index ed67e2ace35..562d6e8a206 100644 --- a/java/ql/src/utils/modeleditor/ModelEditor.qll +++ b/java/ql/src/utils/modeleditor/ModelEditor.qll @@ -20,8 +20,8 @@ private predicate isUninteresting(Callable c) { /** * A callable method from either the Standard Library, a 3rd party library or from the source. */ -class CallableMethod extends Callable { - CallableMethod() { not isUninteresting(this) } +class Endpoint extends Callable { + Endpoint() { not isUninteresting(this) } /** * Gets information about the external API in the form expected by the MaD modeling framework. @@ -108,30 +108,30 @@ class CallableMethod extends Callable { } } -boolean isSupported(CallableMethod method) { - method.isSupported() and result = true +boolean isSupported(Endpoint endpoint) { + endpoint.isSupported() and result = true or - not method.isSupported() and result = false + not endpoint.isSupported() and result = false } -string supportedType(CallableMethod method) { - method.isSink() and result = "sink" +string supportedType(Endpoint endpoint) { + endpoint.isSink() and result = "sink" or - method.isSource() and result = "source" + endpoint.isSource() and result = "source" or - method.hasSummary() and result = "summary" + endpoint.hasSummary() and result = "summary" or - method.isNeutral() and result = "neutral" + endpoint.isNeutral() and result = "neutral" or - not method.isSupported() and result = "" + not endpoint.isSupported() and result = "" } -string methodClassification(Call method) { - isInTestFile(method.getLocation().getFile()) and result = "test" +string usageClassification(Call usage) { + isInTestFile(usage.getLocation().getFile()) and result = "test" or - method.getFile() instanceof GeneratedFile and result = "generated" + usage.getFile() instanceof GeneratedFile and result = "generated" or - not isInTestFile(method.getLocation().getFile()) and - not method.getFile() instanceof GeneratedFile and + not isInTestFile(usage.getLocation().getFile()) and + not usage.getFile() instanceof GeneratedFile and result = "source" } From 8e55189b8411ae182cf9b16addfde2bb833383e0 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 20 Sep 2023 14:02:34 +0200 Subject: [PATCH 554/788] Java: Add tests for generic interfaces/classes/methods --- .../modeleditor/ApplicationModeEndpoints.expected | 3 +++ .../modeleditor/FrameworkModeEndpoints.expected | 5 +++++ .../com/github/codeql/test/PublicGenericClass.java | 13 +++++++++++++ .../github/codeql/test/PublicGenericInterface.java | 10 ++++++++++ 4 files changed, 31 insertions(+) create mode 100644 java/ql/test/utils/modeleditor/com/github/codeql/test/PublicGenericClass.java create mode 100644 java/ql/test/utils/modeleditor/com/github/codeql/test/PublicGenericInterface.java diff --git a/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected index 22273baa31e..24e411a6f7f 100644 --- a/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected +++ b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected @@ -5,4 +5,7 @@ | com/github/codeql/test/PublicClass.java:15:24:15:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | supported | rt.jar | | sink | type | source | classification | | com/github/codeql/test/PublicClass.java:15:24:15:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | supported | rt.jar | | summary | type | source | classification | | com/github/codeql/test/PublicClass.java:19:5:19:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicGenericClass.java:7:5:7:27 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicGenericClass.java:11:5:11:27 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicGenericInterface.java:8:7:8:29 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | | com/github/codeql/test/PublicInterface.java:7:7:7:29 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | diff --git a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected index 9586e695a16..e96f3c74791 100644 --- a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected +++ b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected @@ -1,5 +1,10 @@ | com/github/codeql/test/PublicClass.java:6:15:6:19 | stuff | com.github.codeql.test.PublicClass#stuff(String) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicClass.java:10:22:10:32 | staticStuff | com.github.codeql.test.PublicClass#staticStuff(String) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicClass.java:14:18:14:31 | nonPublicStuff | com.github.codeql.test.PublicClass#nonPublicStuff(String) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicGenericClass.java:6:15:6:19 | stuff | com.github.codeql.test.PublicGenericClass#stuff(Object) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicGenericClass.java:10:20:10:25 | stuff2 | com.github.codeql.test.PublicGenericClass#stuff2(Object) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicGenericInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicGenericInterface#stuff(Object) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicGenericInterface.java:5:22:5:27 | stuff2 | com.github.codeql.test.PublicGenericInterface#stuff2(Object) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicGenericInterface.java:7:24:7:34 | staticStuff | com.github.codeql.test.PublicGenericInterface#staticStuff(String) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicInterface#stuff(String) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | com.github.codeql.test.PublicInterface#staticStuff(String) | false | supported | test | library | | type | unknown | classification | diff --git a/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicGenericClass.java b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicGenericClass.java new file mode 100644 index 00000000000..a14dd64a5b9 --- /dev/null +++ b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicGenericClass.java @@ -0,0 +1,13 @@ +package com.github.codeql.test; + +import java.nio.file.Paths; + +public class PublicGenericClass implements PublicGenericInterface { + public void stuff(T arg) { + System.out.println(arg); + } + + public void stuff2(T3 arg) { + System.out.println(arg); + } +} diff --git a/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicGenericInterface.java b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicGenericInterface.java new file mode 100644 index 00000000000..030de29b681 --- /dev/null +++ b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicGenericInterface.java @@ -0,0 +1,10 @@ +package com.github.codeql.test; + +public interface PublicGenericInterface { + public void stuff(T arg); + public void stuff2(T2 arg); + + public static void staticStuff(String arg) { + System.out.println(arg); + } +} From 6adbc406a7ca076728bf8633b8df89e867063f67 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 20 Sep 2023 14:05:28 +0200 Subject: [PATCH 555/788] Java: Add tests for private methods --- .../ApplicationModeEndpoints.expected | 16 ++++++++++------ .../modeleditor/FrameworkModeEndpoints.expected | 6 +++--- .../com/github/codeql/test/PublicClass.java | 7 ++++++- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected index 24e411a6f7f..a8e696c2514 100644 --- a/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected +++ b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected @@ -1,10 +1,14 @@ | com/github/codeql/test/NonPublicClass.java:5:5:5:28 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:7:5:7:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:11:5:11:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:15:5:15:45 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:15:24:15:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:15:24:15:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | supported | rt.jar | | summary | type | source | classification | -| com/github/codeql/test/PublicClass.java:19:5:19:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:8:5:8:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:12:5:12:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:16:5:16:45 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:16:24:16:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:16:24:16:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | supported | rt.jar | | summary | type | source | classification | +| com/github/codeql/test/PublicClass.java:20:5:20:68 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:20:24:20:47 | getDefault(...) | java.nio.file.FileSystems#getDefault() | false | supported | rt.jar | | | type | source | classification | +| com/github/codeql/test/PublicClass.java:20:24:20:67 | getPath(...) | java.nio.file.FileSystem#getPath(String,String[]) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/PublicClass.java:20:24:20:67 | getPath(...) | java.nio.file.FileSystem#getPath(String,String[]) | true | supported | rt.jar | | summary | type | source | classification | +| com/github/codeql/test/PublicClass.java:24:5:24:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | | com/github/codeql/test/PublicGenericClass.java:7:5:7:27 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | | com/github/codeql/test/PublicGenericClass.java:11:5:11:27 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | | com/github/codeql/test/PublicGenericInterface.java:8:7:8:29 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | diff --git a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected index e96f3c74791..24990101415 100644 --- a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected +++ b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected @@ -1,6 +1,6 @@ -| com/github/codeql/test/PublicClass.java:6:15:6:19 | stuff | com.github.codeql.test.PublicClass#stuff(String) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicClass.java:10:22:10:32 | staticStuff | com.github.codeql.test.PublicClass#staticStuff(String) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicClass.java:14:18:14:31 | nonPublicStuff | com.github.codeql.test.PublicClass#nonPublicStuff(String) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicClass.java:7:15:7:19 | stuff | com.github.codeql.test.PublicClass#stuff(String) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicClass.java:11:22:11:32 | staticStuff | com.github.codeql.test.PublicClass#staticStuff(String) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicClass.java:15:18:15:31 | protectedStuff | com.github.codeql.test.PublicClass#protectedStuff(String) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicGenericClass.java:6:15:6:19 | stuff | com.github.codeql.test.PublicGenericClass#stuff(Object) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicGenericClass.java:10:20:10:25 | stuff2 | com.github.codeql.test.PublicGenericClass#stuff2(Object) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicGenericInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicGenericInterface#stuff(Object) | false | supported | test | library | | type | unknown | classification | diff --git a/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java index 4e9228c167a..83fe2a1d6ed 100644 --- a/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java +++ b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java @@ -1,5 +1,6 @@ package com.github.codeql.test; +import java.nio.file.FileSystems; import java.nio.file.Paths; public class PublicClass { @@ -11,10 +12,14 @@ public class PublicClass { System.out.println(arg); } - protected void nonPublicStuff(String arg) { + protected void protectedStuff(String arg) { System.out.println(Paths.get("foo", arg)); } + private void privateStuff(String arg) { + System.out.println(FileSystems.getDefault().getPath("foo", arg)); + } + void packagePrivateStuff(String arg) { System.out.println(arg); } From 509b7fe0f86f9ed0345a316900b333f1052a4ea8 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 20 Sep 2023 14:11:00 +0200 Subject: [PATCH 556/788] Java: Add tests for supported framework methods --- .../FrameworkModeEndpoints.expected | 4 ++++ .../FrameworkModeEndpoints.ext.yml | 24 +++++++++++++++++++ .../com/github/codeql/test/PublicClass.java | 16 +++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 java/ql/test/utils/modeleditor/FrameworkModeEndpoints.ext.yml diff --git a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected index 24990101415..f5d435ae7b3 100644 --- a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected +++ b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected @@ -1,6 +1,10 @@ | com/github/codeql/test/PublicClass.java:7:15:7:19 | stuff | com.github.codeql.test.PublicClass#stuff(String) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicClass.java:11:22:11:32 | staticStuff | com.github.codeql.test.PublicClass#staticStuff(String) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicClass.java:15:18:15:31 | protectedStuff | com.github.codeql.test.PublicClass#protectedStuff(String) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicClass.java:27:17:27:28 | summaryStuff | com.github.codeql.test.PublicClass#summaryStuff(String) | true | supported | test | library | summary | type | unknown | classification | +| com/github/codeql/test/PublicClass.java:31:17:31:27 | sourceStuff | com.github.codeql.test.PublicClass#sourceStuff() | true | supported | test | library | source | type | unknown | classification | +| com/github/codeql/test/PublicClass.java:35:15:35:23 | sinkStuff | com.github.codeql.test.PublicClass#sinkStuff(String) | true | supported | test | library | sink | type | unknown | classification | +| com/github/codeql/test/PublicClass.java:39:15:39:26 | neutralStuff | com.github.codeql.test.PublicClass#neutralStuff(String) | true | supported | test | library | neutral | type | unknown | classification | | com/github/codeql/test/PublicGenericClass.java:6:15:6:19 | stuff | com.github.codeql.test.PublicGenericClass#stuff(Object) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicGenericClass.java:10:20:10:25 | stuff2 | com.github.codeql.test.PublicGenericClass#stuff2(Object) | false | supported | test | library | | type | unknown | classification | | com/github/codeql/test/PublicGenericInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicGenericInterface#stuff(Object) | false | supported | test | library | | type | unknown | classification | diff --git a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.ext.yml b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.ext.yml new file mode 100644 index 00000000000..93ad471385a --- /dev/null +++ b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.ext.yml @@ -0,0 +1,24 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sourceModel + data: + - ["com.github.codeql.test","PublicClass",true,"sourceStuff","()","","ReturnValue","remote","manual"] + + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["com.github.codeql.test","PublicClass",true,"sinkStuff","(String)","","Argument[0]","sql-injection","manual"] + + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["com.github.codeql.test","PublicClass",true,"summaryStuff","(String)","","Argument[0]","ReturnValue","taint","manual"] + + - addsTo: + pack: codeql/java-all + extensible: neutralModel + data: + - ["com.github.codeql.test","PublicClass","neutralStuff","(String)","summary","manual"] diff --git a/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java index 83fe2a1d6ed..b53f70eaf15 100644 --- a/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java +++ b/java/ql/test/utils/modeleditor/com/github/codeql/test/PublicClass.java @@ -23,4 +23,20 @@ public class PublicClass { void packagePrivateStuff(String arg) { System.out.println(arg); } + + public String summaryStuff(String arg) { + return arg; + } + + public String sourceStuff() { + return "stuff"; + } + + public void sinkStuff(String arg) { + // do nothing + } + + public void neutralStuff(String arg) { + // do nothing + } } From 73ebd21c334dd9ae7d815bb914f35593263a0fbc Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 20 Sep 2023 14:13:28 +0200 Subject: [PATCH 557/788] Java: Refactor most of the logic out of the model editor query files --- .../ql/src/utils/modeleditor/ApplicationModeEndpoints.ql | 5 +---- .../utils/modeleditor/ApplicationModeEndpointsQuery.qll | 9 +++++++++ java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql | 4 +--- .../utils/modeleditor/FrameworkModeEndpointsQuery.qll | 8 ++++++++ 4 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 java/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll create mode 100644 java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll diff --git a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index f8216ea6bcb..0b3d4d42f85 100644 --- a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -8,12 +8,9 @@ */ private import java +private import ApplicationModeEndpointsQuery private import ModelEditor -class ExternalEndpoint extends Endpoint { - ExternalEndpoint() { not this.fromSource() } -} - private Call aUsage(ExternalEndpoint endpoint) { result.getCallee().getSourceDeclaration() = endpoint } diff --git a/java/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll b/java/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll new file mode 100644 index 00000000000..9ca9c25d1a8 --- /dev/null +++ b/java/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll @@ -0,0 +1,9 @@ +private import java +private import ModelEditor + +/** + * A class of effectively public callables in library code. + */ +class ExternalEndpoint extends Endpoint { + ExternalEndpoint() { not this.fromSource() } +} diff --git a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index d0e55f5145e..d46d13c0b81 100644 --- a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -8,11 +8,9 @@ */ private import java -private import semmle.code.java.dataflow.internal.ModelExclusions +private import FrameworkModeEndpointsQuery private import ModelEditor -class PublicEndpointFromSource extends Endpoint, ModelApi { } - from PublicEndpointFromSource endpoint, string apiName, boolean supported, string type where apiName = endpoint.getApiName() and diff --git a/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll b/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll new file mode 100644 index 00000000000..6cdea482ae6 --- /dev/null +++ b/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll @@ -0,0 +1,8 @@ +private import java +private import semmle.code.java.dataflow.internal.ModelExclusions +private import ModelEditor + +/** + * A class of effectively public callables from source code. + */ +class PublicEndpointFromSource extends Endpoint, ModelApi { } From 9e2984770faf1ea6d2ddab25ad26a7d08836fdc4 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 20 Sep 2023 14:25:06 +0200 Subject: [PATCH 558/788] Java: Fix identification of supported endpoints in framework mode --- .../ApplicationModeEndpointsQuery.qll | 31 ++++++++++++++++++ .../FrameworkModeEndpointsQuery.qll | 8 ++++- java/ql/src/utils/modeleditor/ModelEditor.qll | 32 +++---------------- 3 files changed, 42 insertions(+), 29 deletions(-) diff --git a/java/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll b/java/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll index 9ca9c25d1a8..1b26eba5685 100644 --- a/java/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll +++ b/java/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll @@ -1,4 +1,7 @@ private import java +private import semmle.code.java.dataflow.ExternalFlow +private import semmle.code.java.dataflow.FlowSources +private import semmle.code.java.dataflow.internal.DataFlowPrivate private import ModelEditor /** @@ -6,4 +9,32 @@ private import ModelEditor */ class ExternalEndpoint extends Endpoint { ExternalEndpoint() { not this.fromSource() } + + /** Gets a node that is an input to a call to this API. */ + private DataFlow::Node getAnInput() { + exists(Call call | call.getCallee().getSourceDeclaration() = this | + result.asExpr().(Argument).getCall() = call or + result.(ArgumentNode).getCall().asCall() = call + ) + } + + /** Gets a node that is an output from a call to this API. */ + private DataFlow::Node getAnOutput() { + exists(Call call | call.getCallee().getSourceDeclaration() = this | + result.asExpr() = call or + result.(DataFlow::PostUpdateNode).getPreUpdateNode().(ArgumentNode).getCall().asCall() = call + ) + } + + override predicate hasSummary() { + Endpoint.super.hasSummary() + or + TaintTracking::localAdditionalTaintStep(this.getAnInput(), _) + } + + override predicate isSource() { + this.getAnOutput() instanceof RemoteFlowSource or sourceNode(this.getAnOutput(), _) + } + + override predicate isSink() { sinkNode(this.getAnInput(), _) } } diff --git a/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll b/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll index 6cdea482ae6..4920ed4f011 100644 --- a/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll +++ b/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll @@ -1,8 +1,14 @@ private import java +private import semmle.code.java.dataflow.internal.DataFlowPrivate +private import semmle.code.java.dataflow.internal.FlowSummaryImplSpecific private import semmle.code.java.dataflow.internal.ModelExclusions private import ModelEditor /** * A class of effectively public callables from source code. */ -class PublicEndpointFromSource extends Endpoint, ModelApi { } +class PublicEndpointFromSource extends Endpoint, ModelApi { + override predicate isSource() { sourceElement(this, _, _, _) } + + override predicate isSink() { sinkElement(this, _, _, _) } +} diff --git a/java/ql/src/utils/modeleditor/ModelEditor.qll b/java/ql/src/utils/modeleditor/ModelEditor.qll index 562d6e8a206..85ac8b3fc74 100644 --- a/java/ql/src/utils/modeleditor/ModelEditor.qll +++ b/java/ql/src/utils/modeleditor/ModelEditor.qll @@ -1,12 +1,8 @@ /** Provides classes and predicates related to handling APIs for the VS Code extension. */ private import java -private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.dataflow.ExternalFlow -private import semmle.code.java.dataflow.FlowSources private import semmle.code.java.dataflow.FlowSummary -private import semmle.code.java.dataflow.internal.DataFlowPrivate -private import semmle.code.java.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl private import semmle.code.java.dataflow.TaintTracking private import semmle.code.java.dataflow.internal.ModelExclusions @@ -58,37 +54,17 @@ class Endpoint extends Callable { not exists(this.getJarVersion()) and result = "" } - /** Gets a node that is an input to a call to this API. */ - private DataFlow::Node getAnInput() { - exists(Call call | call.getCallee().getSourceDeclaration() = this | - result.asExpr().(Argument).getCall() = call or - result.(ArgumentNode).getCall().asCall() = call - ) - } - - /** Gets a node that is an output from a call to this API. */ - private DataFlow::Node getAnOutput() { - exists(Call call | call.getCallee().getSourceDeclaration() = this | - result.asExpr() = call or - result.(DataFlow::PostUpdateNode).getPreUpdateNode().(ArgumentNode).getCall().asCall() = call - ) - } - /** Holds if this API has a supported summary. */ pragma[nomagic] - predicate hasSummary() { - this = any(SummarizedCallable sc).asCallable() or - TaintTracking::localAdditionalTaintStep(this.getAnInput(), _) - } + predicate hasSummary() { this = any(SummarizedCallable sc).asCallable() } + /** Holds if this API is a known source. */ pragma[nomagic] - predicate isSource() { - this.getAnOutput() instanceof RemoteFlowSource or sourceNode(this.getAnOutput(), _) - } + abstract predicate isSource(); /** Holds if this API is a known sink. */ pragma[nomagic] - predicate isSink() { sinkNode(this.getAnInput(), _) } + abstract predicate isSink(); /** Holds if this API is a known neutral. */ pragma[nomagic] From 0b84dee65ee07128efcb5ddb87f82f0fec29d2a8 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 20 Sep 2023 14:34:27 +0200 Subject: [PATCH 559/788] C#: Minor improvements to the ExternalApi implementation. --- csharp/ql/src/Telemetry/ExternalApi.qll | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/csharp/ql/src/Telemetry/ExternalApi.qll b/csharp/ql/src/Telemetry/ExternalApi.qll index 7be4f104837..088bf1106fa 100644 --- a/csharp/ql/src/Telemetry/ExternalApi.qll +++ b/csharp/ql/src/Telemetry/ExternalApi.qll @@ -77,13 +77,11 @@ class ExternalApi extends DotNet::Callable { /** Gets a node that is an output from a call to this API. */ private DataFlow::Node getAnOutput() { - exists( - Call c, DataFlowDispatch::NonDelegateDataFlowCall dc, DataFlowImplCommon::ReturnKindExt ret - | + exists(Call c, DataFlowDispatch::NonDelegateDataFlowCall dc | dc.getDispatchCall().getCall() = c and c.getTarget().getUnboundDeclaration() = this | - result = ret.getAnOutNode(dc) + result = DataFlowDispatch::getAnOutNode(dc, _) ) } @@ -119,18 +117,17 @@ class ExternalApi extends DotNet::Callable { } /** - * Gets the nested name of the declaration. + * Gets the nested name of the type `t`. * - * If the declaration is not a nested type, the result is the same as \`getName()\`. + * If the type is not a nested type, the result is the same as \`getName()\`. * Otherwise the name of the nested type is prefixed with a \`+\` and appended to * the name of the enclosing type, which might be a nested type as well. */ -private string nestedName(Declaration declaration) { - not exists(declaration.getDeclaringType().getUnboundDeclaration()) and - result = declaration.getName() +private string nestedName(Type t) { + not exists(t.getDeclaringType().getUnboundDeclaration()) and + result = t.getName() or - nestedName(declaration.getDeclaringType().getUnboundDeclaration()) + "+" + declaration.getName() = - result + nestedName(t.getDeclaringType().getUnboundDeclaration()) + "+" + t.getName() = result } /** From d285afba08f9be936266ff9b644c1b34824d3bfc Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 20 Sep 2023 14:52:49 +0200 Subject: [PATCH 560/788] Typetracking: minor perf fix. --- shared/typetracking/codeql/typetracking/TypeTracking.qll | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/shared/typetracking/codeql/typetracking/TypeTracking.qll b/shared/typetracking/codeql/typetracking/TypeTracking.qll index 4f338f59378..94cca417a86 100644 --- a/shared/typetracking/codeql/typetracking/TypeTracking.qll +++ b/shared/typetracking/codeql/typetracking/TypeTracking.qll @@ -805,7 +805,12 @@ module TypeTracking { private predicate sourceSimpleLocalSmallSteps(Node src, Node n) { source(src) and not src instanceof LocalSourceNode and - simpleLocalSmallStep*(src, n) + src = n + or + exists(Node mid | + sourceSimpleLocalSmallSteps(src, mid) and + simpleLocalSmallStep(mid, n) + ) } private predicate firstStep(TypeTracker tt, Node src, LocalSourceNode n2) { From 7c085ecc61b17c187d134fd3c6ed5bc209fbd08f Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 20 Sep 2023 15:23:18 +0200 Subject: [PATCH 561/788] Python: Add test for `map_reduce` Also log requirement for old versions of `pymongo` --- .../CWE-943-NoSqlInjection/PoC/requirements.txt | 2 +- .../Security/CWE-943-NoSqlInjection/PoC/server.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/requirements.txt b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/requirements.txt index a98715ed1e4..36b23617953 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/requirements.txt +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/requirements.txt @@ -1,2 +1,2 @@ flask -pymongo +pymongo==3.9 diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py index 611fd90d3ed..a0ce2944f69 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py @@ -90,6 +90,21 @@ def by_group(): post = posts.aggregate([{ "$group": group }]).next() # $ result=BAD return show_post(post, author) +# works with pymongo 3.9, `map_reduce` is removed in pymongo 4.0 +@app.route('/byMapReduce', methods=['GET']) +def by_map_reduce(): + author = request.args['author'] + mapper = 'function() { emit(this.author, this.author === "'+author+'") }' + reducer = "function(key, values) { return values.some( x => x ) }" + results = posts.map_reduce(mapper, reducer, "results") + # Use `" | "a" === "a` as author + # making the query `this.author === "" | "a" === "a"` + # Found by http://127.0.0.1:5000/byMapReduce?author=%22%20|%20%22a%22%20===%20%22a + post = results.find_one({'value': True}) # $ MISSING: result=BAD + if(post): + post["author"] = post["_id"] + return show_post(post, author) + @app.route('/', methods=['GET']) def show_routes(): links = [] From d29585c8b77f9bd4334722970a90f924c58571ba Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Wed, 20 Sep 2023 15:23:58 +0200 Subject: [PATCH 562/788] C#: Remove platform-specific runtime nuget packages from the reference list in Standalone --- .../DependencyManager.cs | 28 +++++++++++++++++++ .../ProgressMonitor.cs | 3 ++ 2 files changed, 31 insertions(+) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 9a3bfeb624e..4476272f261 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -116,6 +116,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching UseReference(filename); } + RemoveRuntimeNugetPackageReferences(); ResolveConflicts(); // Output the findings @@ -150,6 +151,33 @@ namespace Semmle.Extraction.CSharp.DependencyFetching DateTime.Now - startTime); } + private void RemoveRuntimeNugetPackageReferences() + { + if (!options.UseNuGet) + { + return; + } + + var packageFolder = packageDirectory.DirInfo.FullName.ToLowerInvariant(); + var runtimePackageNamePrefixes = new[] + { + Path.Combine(packageFolder, "microsoft.netcore.app.runtime"), + Path.Combine(packageFolder, "microsoft.aspnetcore.app.runtime"), + Path.Combine(packageFolder, "microsoft.windowsdesktop.app.runtime"), + }; + + foreach (var filename in usedReferences.Keys) + { + var lowerFilename = filename.ToLowerInvariant(); + + if (runtimePackageNamePrefixes.Any(prefix => lowerFilename.StartsWith(prefix))) + { + usedReferences.Remove(filename); + progressMonitor.RemovedReference(filename); + } + } + } + private void GenerateSourceFileFromImplicitUsings() { var usings = new HashSet(); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/ProgressMonitor.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/ProgressMonitor.cs index fe4c7ef54f6..e9204e18ef3 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/ProgressMonitor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/ProgressMonitor.cs @@ -57,6 +57,9 @@ namespace Semmle.Extraction.CSharp.DependencyFetching public void ResolvedReference(string filename) => LogInfo($"Resolved {filename}"); + public void RemovedReference(string filename) => + LogInfo($"Reference {filename} has been removed"); + public void Summary(int existingSources, int usedSources, int missingSources, int references, int unresolvedReferences, int resolvedConflicts, int totalProjects, int failedProjects, From 4ec8b3f02fac3f8132b4627acb4b790fd207de52 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 20 Sep 2023 15:44:12 +0200 Subject: [PATCH 563/788] Python: Model `map_reduce` --- .../ql/lib/semmle/python/frameworks/NoSQL.qll | 20 +++++++++++++++++++ .../NoSqlInjection.expected | 9 +++++++++ .../CWE-943-NoSqlInjection/PoC/server.py | 7 +++++-- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/NoSQL.qll b/python/ql/lib/semmle/python/frameworks/NoSQL.qll index ea69f565aa0..eb777b7199d 100644 --- a/python/ql/lib/semmle/python/frameworks/NoSQL.qll +++ b/python/ql/lib/semmle/python/frameworks/NoSQL.qll @@ -132,6 +132,26 @@ private module NoSql { override predicate vulnerableToStrings() { none() } } + private class MongoMapReduce extends API::CallNode, NoSqlQuery::Range { + MongoMapReduce() { this = mongoCollection().getMember("map_reduce").getACall() } + + override DataFlow::Node getQuery() { result in [this.getArg(0), this.getArg(1)] } + + override predicate interpretsDict() { none() } + + override predicate vulnerableToStrings() { any() } + } + + private class MongoMapReduceQuery extends API::CallNode, NoSqlQuery::Range { + MongoMapReduceQuery() { this = mongoCollection().getMember("map_reduce").getACall() } + + override DataFlow::Node getQuery() { result in [this.getArgByName("query")] } + + override predicate interpretsDict() { any() } + + override predicate vulnerableToStrings() { none() } + } + /** The `$where` query operator executes a string as JavaScript. */ private class WhereQueryOperator extends DataFlow::Node, Decoding::Range { API::Node dictionary; diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected index ac13418edcd..0eae28cecc1 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected @@ -4,6 +4,7 @@ edges | PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:42:14:42:20 | ControlFlowNode for request | | PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:51:14:51:20 | ControlFlowNode for request | | PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:76:14:76:20 | ControlFlowNode for request | +| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:96:14:96:20 | ControlFlowNode for request | | PoC/server.py:26:5:26:17 | SSA variable author_string | PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | | PoC/server.py:26:21:26:27 | ControlFlowNode for request | PoC/server.py:26:5:26:17 | SSA variable author_string | | PoC/server.py:27:5:27:10 | SSA variable author | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | @@ -21,6 +22,9 @@ edges | PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | PoC/server.py:85:37:85:47 | ControlFlowNode for accumulator | | PoC/server.py:83:5:83:9 | SSA variable group | PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | | PoC/server.py:85:37:85:47 | ControlFlowNode for accumulator | PoC/server.py:83:5:83:9 | SSA variable group | +| PoC/server.py:96:5:96:10 | SSA variable author | PoC/server.py:97:5:97:10 | SSA variable mapper | +| PoC/server.py:96:14:96:20 | ControlFlowNode for request | PoC/server.py:96:5:96:10 | SSA variable author | +| PoC/server.py:97:5:97:10 | SSA variable mapper | PoC/server.py:100:9:100:14 | ControlFlowNode for mapper | | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | flask_mongoengine_bad.py:19:21:19:27 | ControlFlowNode for request | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | flask_mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | @@ -121,6 +125,10 @@ nodes | PoC/server.py:83:5:83:9 | SSA variable group | semmle.label | SSA variable group | | PoC/server.py:85:37:85:47 | ControlFlowNode for accumulator | semmle.label | ControlFlowNode for accumulator | | PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:96:5:96:10 | SSA variable author | semmle.label | SSA variable author | +| PoC/server.py:96:14:96:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:97:5:97:10 | SSA variable mapper | semmle.label | SSA variable mapper | +| PoC/server.py:100:9:100:14 | ControlFlowNode for mapper | semmle.label | ControlFlowNode for mapper | | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | | flask_mongoengine_bad.py:19:5:19:17 | SSA variable unsafe_search | semmle.label | SSA variable unsafe_search | @@ -207,6 +215,7 @@ subpaths | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:100:9:100:14 | ControlFlowNode for mapper | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:100:9:100:14 | ControlFlowNode for mapper | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | This NoSQL query contains an unsanitized $@. | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py index a0ce2944f69..893d972baad 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py @@ -96,11 +96,14 @@ def by_map_reduce(): author = request.args['author'] mapper = 'function() { emit(this.author, this.author === "'+author+'") }' reducer = "function(key, values) { return values.some( x => x ) }" - results = posts.map_reduce(mapper, reducer, "results") + results = posts.map_reduce( + mapper, # $ result=BAD + reducer, # $ result=OK + "results") # Use `" | "a" === "a` as author # making the query `this.author === "" | "a" === "a"` # Found by http://127.0.0.1:5000/byMapReduce?author=%22%20|%20%22a%22%20===%20%22a - post = results.find_one({'value': True}) # $ MISSING: result=BAD + post = results.find_one({'value': True}) if(post): post["author"] = post["_id"] return show_post(post, author) From 12dab88ec7bffac9ecd387c34ad133aa5dfe45d9 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 20 Sep 2023 15:49:35 +0200 Subject: [PATCH 564/788] Python: rename concept `NoSqlQuery` -> `NoSqlExecution` --- python/ql/lib/semmle/python/Concepts.qll | 4 ++-- python/ql/lib/semmle/python/frameworks/NoSQL.qll | 10 +++++----- .../dataflow/NoSQLInjectionCustomizations.qll | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/python/ql/lib/semmle/python/Concepts.qll b/python/ql/lib/semmle/python/Concepts.qll index ea6310e326c..5966000583c 100644 --- a/python/ql/lib/semmle/python/Concepts.qll +++ b/python/ql/lib/semmle/python/Concepts.qll @@ -379,7 +379,7 @@ module SqlExecution { } /** Provides a class for modeling NoSql execution APIs. */ -module NoSqlQuery { +module NoSqlExecution { /** * A data-flow node that executes NoSQL queries. * @@ -404,7 +404,7 @@ module NoSqlQuery { * Extend this class to refine existing API models. If you want to model new APIs, * extend `NoSQLQuery::Range` instead. */ -class NoSqlQuery extends DataFlow::Node instanceof NoSqlQuery::Range { +class NoSqlExecution extends DataFlow::Node instanceof NoSqlExecution::Range { /** Gets the argument that specifies the NoSql query to be executed. */ DataFlow::Node getQuery() { result = super.getQuery() } diff --git a/python/ql/lib/semmle/python/frameworks/NoSQL.qll b/python/ql/lib/semmle/python/frameworks/NoSQL.qll index eb777b7199d..9365dfa45e2 100644 --- a/python/ql/lib/semmle/python/frameworks/NoSQL.qll +++ b/python/ql/lib/semmle/python/frameworks/NoSQL.qll @@ -110,7 +110,7 @@ private module NoSql { * * `mongo.db.user.find({'name': safe_search})` would be a collection method call. */ - private class MongoCollectionCall extends DataFlow::CallCfgNode, NoSqlQuery::Range { + private class MongoCollectionCall extends DataFlow::CallCfgNode, NoSqlExecution::Range { MongoCollectionCall() { this = mongoCollection().getMember(mongoCollectionMethodName()).getACall() } @@ -122,7 +122,7 @@ private module NoSql { override predicate vulnerableToStrings() { none() } } - private class MongoCollectionAggregation extends API::CallNode, NoSqlQuery::Range { + private class MongoCollectionAggregation extends API::CallNode, NoSqlExecution::Range { MongoCollectionAggregation() { this = mongoCollection().getMember("aggregate").getACall() } override DataFlow::Node getQuery() { result = this.getParameter(0).getASubscript().asSink() } @@ -132,7 +132,7 @@ private module NoSql { override predicate vulnerableToStrings() { none() } } - private class MongoMapReduce extends API::CallNode, NoSqlQuery::Range { + private class MongoMapReduce extends API::CallNode, NoSqlExecution::Range { MongoMapReduce() { this = mongoCollection().getMember("map_reduce").getACall() } override DataFlow::Node getQuery() { result in [this.getArg(0), this.getArg(1)] } @@ -142,7 +142,7 @@ private module NoSql { override predicate vulnerableToStrings() { any() } } - private class MongoMapReduceQuery extends API::CallNode, NoSqlQuery::Range { + private class MongoMapReduceQuery extends API::CallNode, NoSqlExecution::Range { MongoMapReduceQuery() { this = mongoCollection().getMember("map_reduce").getACall() } override DataFlow::Node getQuery() { result in [this.getArgByName("query")] } @@ -248,7 +248,7 @@ private module NoSql { * * `Movie.objects(__raw__=json_search)` would be the result. */ - private class MongoEngineObjectsCall extends DataFlow::CallCfgNode, NoSqlQuery::Range { + private class MongoEngineObjectsCall extends DataFlow::CallCfgNode, NoSqlExecution::Range { MongoEngineObjectsCall() { this = [mongoEngine(), flask_MongoEngine()] diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll index debefd525a7..6026ae01f07 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll @@ -60,17 +60,17 @@ module NoSqlInjection { class RemoteFlowSourceAsStringSource extends RemoteFlowSource, StringSource { } /** A NoSQL query that is vulnerable to user controlled strings. */ - class NoSqlQueryAsStringSink extends StringSink { - NoSqlQueryAsStringSink() { - exists(NoSqlQuery noSqlQuery | this = noSqlQuery.getQuery() | - noSqlQuery.vulnerableToStrings() + class NoSqlExecutionAsStringSink extends StringSink { + NoSqlExecutionAsStringSink() { + exists(NoSqlExecution noSqlExecution | this = noSqlExecution.getQuery() | + noSqlExecution.vulnerableToStrings() ) } } /** A NoSQL query that is vulnerable to user controlled dictionaries. */ - class NoSqlQueryAsDictSink extends DictSink { - NoSqlQueryAsDictSink() { this = any(NoSqlQuery noSqlQuery).getQuery() } + class NoSqlExecutionAsDictSink extends DictSink { + NoSqlExecutionAsDictSink() { this = any(NoSqlExecution noSqlExecution).getQuery() } } /** A JSON decoding converts a string to a dictionary. */ From fef5a49fcba99cfbfb5075a756eba990b5375971 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 20 Sep 2023 15:36:15 +0100 Subject: [PATCH 565/788] Swift: Remove now duplicate extension logic. --- .../lib/codeql/swift/dataflow/ExternalFlow.qll | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll b/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll index 128883d125d..524e5f5720a 100644 --- a/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll +++ b/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll @@ -417,14 +417,6 @@ private Element interpretElement0( subtypes = true and declWithMethod.asNominalTypeDecl() = namedTypeDecl.getADerivedTypeDecl*() or - // member declared in a type that's extended with a protocol that is the named type - exists(ExtensionDecl e | - e.getExtendedTypeDecl().getADerivedTypeDecl*() = declWithMethod.asNominalTypeDecl() - | - subtypes = true and - e.getAProtocol() = namedTypeDecl.getADerivedTypeDecl*() - ) - or // member declared directly in the named type (or an extension of it) subtypes = false and declWithMethod.asNominalTypeDecl() = namedTypeDecl @@ -442,14 +434,6 @@ private Element interpretElement0( subtypes = true and declWithField.asNominalTypeDecl() = namedTypeDecl.getADerivedTypeDecl*() or - // field declared in a type that's extended with a protocol that is the named type - exists(ExtensionDecl e | - e.getExtendedTypeDecl().getADerivedTypeDecl*() = declWithField.asNominalTypeDecl() - | - subtypes = true and - e.getAProtocol() = namedTypeDecl.getADerivedTypeDecl*() - ) - or // field declared directly in the named type (or an extension of it) subtypes = false and declWithField.asNominalTypeDecl() = namedTypeDecl From 9de6230bbf31da39d2356bb6e583bf2b25c51b3a Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Wed, 20 Sep 2023 18:31:09 +0100 Subject: [PATCH 566/788] CPP: Add use after free false positive example. --- .../query-tests/Critical/MemoryFreed/MemoryFreed.expected | 1 + .../Critical/MemoryFreed/MemoryMayNotBeFreed.expected | 1 + .../query-tests/Critical/MemoryFreed/UseAfterFree.expected | 2 ++ cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp | 6 ++++++ 4 files changed, 10 insertions(+) diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected index a9aa883efad..26424477fcb 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected @@ -26,6 +26,7 @@ | test.cpp:128:15:128:16 | v4 | | test.cpp:185:10:185:12 | cpy | | test.cpp:199:10:199:12 | cpy | +| test.cpp:205:7:205:11 | ... = ... | | test_free.cpp:11:10:11:10 | a | | test_free.cpp:14:10:14:10 | a | | test_free.cpp:16:10:16:10 | a | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryMayNotBeFreed.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryMayNotBeFreed.expected index fa069b8b46a..01c81db9c3b 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryMayNotBeFreed.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryMayNotBeFreed.expected @@ -1 +1,2 @@ +| test.cpp:203:12:203:17 | call to malloc | This memory allocation may not be released at $@. | test.cpp:206:1:206:1 | return ... | this exit point | | test_free.cpp:36:22:36:35 | ... = ... | This memory allocation may not be released at $@. | test_free.cpp:38:1:38:1 | return ... | this exit point | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected index b4ac51dc72e..e89e2227cea 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected @@ -13,6 +13,7 @@ edges | test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | | test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | nodes +| test.cpp:205:7:205:11 | ... = ... | semmle.label | ... = ... | | test_free.cpp:11:10:11:10 | a | semmle.label | a | | test_free.cpp:12:5:12:5 | a | semmle.label | a | | test_free.cpp:13:5:13:6 | * ... | semmle.label | * ... | @@ -40,6 +41,7 @@ nodes | test_free.cpp:246:9:246:10 | * ... | semmle.label | * ... | subpaths #select +| test.cpp:205:7:205:11 | ... = ... | test.cpp:205:7:205:11 | ... = ... | test.cpp:205:7:205:11 | ... = ... | Memory may have been previously freed by $@. | test.cpp:205:2:205:5 | call to free | call to free | | test_free.cpp:12:5:12:5 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:12:5:12:5 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | | test_free.cpp:13:5:13:6 | * ... | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | * ... | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | | test_free.cpp:45:5:45:5 | a | test_free.cpp:42:27:42:27 | a | test_free.cpp:45:5:45:5 | a | Memory may have been previously freed by $@. | test_free.cpp:42:22:42:25 | call to free | call to free | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp b/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp index 4f05f9d4954..4cee840a062 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp @@ -198,3 +198,9 @@ void test_strndupa_dealloc() { char *cpy = strndupa(msg, 4); free(cpy); // BAD [NOT DETECTED] } + +void test_free_malloc() { + void *a = malloc(10); + void *b; + free(b = a); +} \ No newline at end of file From d0849311a69cc6e6decf45056c14b43bfc3f8e20 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Wed, 20 Sep 2023 18:31:55 +0100 Subject: [PATCH 567/788] CPP: Fix use after free FPs by elimnatiing freeing nodes rather than freeing expressions. --- cpp/ql/src/Critical/UseAfterFree.ql | 4 ++-- .../query-tests/Critical/MemoryFreed/UseAfterFree.expected | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cpp/ql/src/Critical/UseAfterFree.ql b/cpp/ql/src/Critical/UseAfterFree.ql index a4d1ee7be2f..61599544844 100644 --- a/cpp/ql/src/Critical/UseAfterFree.ql +++ b/cpp/ql/src/Critical/UseAfterFree.ql @@ -31,7 +31,7 @@ private predicate externalCallNeverDereferences(FormattingFunctionCall call, int predicate isUse0(DataFlow::Node n, Expr e) { e = n.asExpr() and - not isFree(_, e, _) and + not isFree(n, _, _) and ( e = any(PointerDereferenceExpr pde).getOperand() or @@ -43,7 +43,7 @@ predicate isUse0(DataFlow::Node n, Expr e) { or // Assume any function without a body will dereference the pointer exists(int i, Call call, Function f | - n.asExpr() = call.getArgument(i) and + e = call.getArgument(i) and f = call.getTarget() and not f.hasEntryPoint() and // Exclude known functions we know won't dereference the pointer. diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected index e89e2227cea..b4ac51dc72e 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected @@ -13,7 +13,6 @@ edges | test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | | test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | nodes -| test.cpp:205:7:205:11 | ... = ... | semmle.label | ... = ... | | test_free.cpp:11:10:11:10 | a | semmle.label | a | | test_free.cpp:12:5:12:5 | a | semmle.label | a | | test_free.cpp:13:5:13:6 | * ... | semmle.label | * ... | @@ -41,7 +40,6 @@ nodes | test_free.cpp:246:9:246:10 | * ... | semmle.label | * ... | subpaths #select -| test.cpp:205:7:205:11 | ... = ... | test.cpp:205:7:205:11 | ... = ... | test.cpp:205:7:205:11 | ... = ... | Memory may have been previously freed by $@. | test.cpp:205:2:205:5 | call to free | call to free | | test_free.cpp:12:5:12:5 | a | test_free.cpp:11:10:11:10 | a | test_free.cpp:12:5:12:5 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | | test_free.cpp:13:5:13:6 | * ... | test_free.cpp:11:10:11:10 | a | test_free.cpp:13:5:13:6 | * ... | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | | test_free.cpp:45:5:45:5 | a | test_free.cpp:42:27:42:27 | a | test_free.cpp:45:5:45:5 | a | Memory may have been previously freed by $@. | test_free.cpp:42:22:42:25 | call to free | call to free | From 292a9481e6f609e9af9cbac9cd5904e54e7f4e83 Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:02:14 +0000 Subject: [PATCH 568/788] Pending changes exported from your codespace --- ...classes-for-working-with-java-programs.rst | 2 +- .../analyzing-data-flow-in-java.rst | 6 +++--- .../basic-query-for-cpp-code.rst | 2 +- .../basic-query-for-java-code.rst | 4 ++-- .../basic-query-for-javascript-code.rst | 6 +++--- .../codeql-for-java.rst | 10 +++++----- .../codeql-for-javascript.rst | 4 ++-- .../codeql-library-for-java.rst | 20 +++++++++---------- docs/codeql/query-help/javascript-cwe.md | 4 ++-- docs/codeql/reusables/extractors.rst | 6 +++--- .../about-codeql-queries.rst | 2 +- .../about-data-flow-analysis.rst | 2 +- .../creating-path-queries.rst | 4 ++-- .../query-help-files.rst | 2 +- docs/query-metadata-style-guide.md | 2 +- 15 files changed, 38 insertions(+), 38 deletions(-) diff --git a/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst b/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst index 7d41785ea89..40af6084c19 100644 --- a/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst +++ b/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst @@ -3,7 +3,7 @@ Abstract syntax tree classes for working with Java programs =========================================================== -CodeQL has a large selection of classes for representing the abstract syntax tree of Java programs. +CodeQL has a large selection of classes for representing the abstract syntax tree of Java and Kotlin programs. .. include:: ../reusables/abstract-syntax-tree.rst diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst index 06ca7fe413f..2db91cae2dc 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst @@ -1,9 +1,9 @@ .. _analyzing-data-flow-in-java: -Analyzing data flow in Java +Analyzing data flow in Java and Kotlin =========================== -You can use CodeQL to track the flow of data through a Java program to its use. +You can use CodeQL to track the flow of data through a Java/Kotlin program to its use. .. include:: ../reusables/kotlin-beta-note.rst @@ -12,7 +12,7 @@ You can use CodeQL to track the flow of data through a Java program to its use. About this article ------------------ -This article describes how data flow analysis is implemented in the CodeQL libraries for Java and includes examples to help you write your own data flow queries. +This article describes how data flow analysis is implemented in the CodeQL libraries for Java/Kotlin and includes examples to help you write your own data flow queries. The following sections describe how to use the libraries for local data flow, global data flow, and taint tracking. For a more general introduction to modeling data flow, see ":ref:`About data flow analysis `." diff --git a/docs/codeql/codeql-language-guides/basic-query-for-cpp-code.rst b/docs/codeql/codeql-language-guides/basic-query-for-cpp-code.rst index 47a762b4d3e..6b5675c8514 100644 --- a/docs/codeql/codeql-language-guides/basic-query-for-cpp-code.rst +++ b/docs/codeql/codeql-language-guides/basic-query-for-cpp-code.rst @@ -52,7 +52,7 @@ After the initial ``import`` statement, this simple query comprises three parts +---------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | Query part | Purpose | Details | +===============================================================+===================================================================================================================+========================================================================================================================+ -| ``import cpp`` | Imports the standard CodeQL libraries for C/C++. | Every query begins with one or more ``import`` statements. | +| ``import c-cpp`` | Imports the standard CodeQL libraries for C/C++. | Every query begins with one or more ``import`` statements. | +---------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | ``from IfStmt ifstmt, BlockStmt block`` | Defines the variables for the query. | We use: | | | Declarations are of the form: | | diff --git a/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst b/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst index a7d783804b9..3f3fd36affb 100644 --- a/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst +++ b/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst @@ -70,7 +70,7 @@ After the initial ``import`` statement, this simple query comprises three parts +--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ | Query part | Purpose | Details | +==================================================================================================+===================================================================================================================+===================================================================================================+ -| ``import java`` | Imports the standard CodeQL libraries for Java and Kotlin. | Every query begins with one or more ``import`` statements. | +| ``import java-kotlin`` | Imports the standard CodeQL libraries for Java and Kotlin. | Every query begins with one or more ``import`` statements. | +--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ | ``from MethodAccess ma`` | Defines the variables for the query. | We use: | | | Declarations are of the form: | | @@ -133,7 +133,7 @@ Further reading .. Article-specific substitutions for the reusables used in docs/codeql/reusables/vs-code-basic-instructions -.. |language-text| replace:: Java +.. |language-text| replace:: Java/Kotlin .. |language-code| replace:: ``java`` diff --git a/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst b/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst index 90cb3f77cfd..c810de4eaf1 100644 --- a/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst +++ b/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst @@ -1,6 +1,6 @@ .. _basic-query-for-javascript-code: -Basic query for JavaScript code +Basic query for JavaScript and TypeScript code =============================== Learn to write and run a simple CodeQL query using Visual Studio Code with the CodeQL extension. @@ -10,7 +10,7 @@ Learn to write and run a simple CodeQL query using Visual Studio Code with the C About the query --------------- -In JavaScript, any expression can be turned into an expression statement. While this is sometimes convenient, it can be dangerous. For example, imagine a programmer wants to assign a new value to a variable ``x`` by means of an assignment ``x = 42``. However, they accidentally type two equals signs, producing the comparison statement ``x == 42``. This is valid JavaScript, so no error is generated. The statement simply compares ``x`` to ``42``, and then discards the result of the comparison. +In JavaScript and TypeScript, any expression can be turned into an expression statement. While this is sometimes convenient, it can be dangerous. For example, imagine a programmer wants to assign a new value to a variable ``x`` by means of an assignment ``x = 42``. However, they accidentally type two equals signs, producing the comparison statement ``x == 42``. This is valid JavaScript, so no error is generated. The statement simply compares ``x`` to ``42``, and then discards the result of the comparison. The query you will run finds instances of this problem. The query searches for expressions ``e`` that are pure—that is, their evaluation does not lead to any side effects—but appear as an expression statement. @@ -50,7 +50,7 @@ After the initial ``import`` statement, this simple query comprises three parts +---------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | Query part | Purpose | Details | +===============================================================+===================================================================================================================+========================================================================================================================+ -| ``import javascript`` | Imports the standard CodeQL libraries for JavaScript. | Every query begins with one or more ``import`` statements. | +| ``import javascript-typescript`` | Imports the standard CodeQL libraries for JavaScript and TypeScript. | Every query begins with one or more ``import`` statements. | +---------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | ``from Expr e`` | Defines the variables for the query. | ``e`` is declared as a variable that ranges over expressions. | | | Declarations are of the form: | | diff --git a/docs/codeql/codeql-language-guides/codeql-for-java.rst b/docs/codeql/codeql-language-guides/codeql-for-java.rst index dc486b828a9..4c63faea1d9 100644 --- a/docs/codeql/codeql-language-guides/codeql-for-java.rst +++ b/docs/codeql/codeql-language-guides/codeql-for-java.rst @@ -10,7 +10,7 @@ Experiment and learn how to write effective and efficient queries for CodeQL dat .. pull-quote:: Enabling Kotlin support - CodeQL treats Java and Kotlin as parts of the same language, so to enable Kotlin support you should enable ``java`` as a language. + CodeQL treats Java and Kotlin as parts of the same language, so to enable Kotlin support you should enable ``java-kotlin`` as a language. .. toctree:: :hidden: @@ -26,11 +26,11 @@ Experiment and learn how to write effective and efficient queries for CodeQL dat working-with-source-locations abstract-syntax-tree-classes-for-working-with-java-programs -- :doc:`Basic query for Java code `: Learn to write and run a simple CodeQL query. +- :doc:`Basic query for Java and Kotlin code `: Learn to write and run a simple CodeQL query. -- :doc:`CodeQL library for Java `: When analyzing Java code, you can use the large collection of classes in the CodeQL library for Java. +- :doc:`CodeQL library for Java and Kotlin `: When analyzing Java/Kotlin code, you can use the large collection of classes in the CodeQL library for Java/Kotlin. -- :doc:`Analyzing data flow in Java `: You can use CodeQL to track the flow of data through a Java program to its use. +- :doc:`Analyzing data flow in Java and Kotlin `: You can use CodeQL to track the flow of data through a Java/Kotlin program to its use. - :doc:`Java types `: You can use CodeQL to find out information about data types used in Java code. This allows you to write queries to identify specific type-related issues. @@ -44,4 +44,4 @@ Experiment and learn how to write effective and efficient queries for CodeQL dat - :doc:`Working with source locations `: You can use the location of entities within Java code to look for potential errors. Locations allow you to deduce the presence, or absence, of white space which, in some cases, may indicate a problem. -- :doc:`Abstract syntax tree classes for working with Java programs `: CodeQL has a large selection of classes for representing the abstract syntax tree of Java programs. +- :doc:`Abstract syntax tree classes for working with Java and Kotlin programs `: CodeQL has a large selection of classes for representing the abstract syntax tree of Java/Kotlin programs. diff --git a/docs/codeql/codeql-language-guides/codeql-for-javascript.rst b/docs/codeql/codeql-language-guides/codeql-for-javascript.rst index be3950c53ec..c7d8b640b21 100644 --- a/docs/codeql/codeql-language-guides/codeql-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/codeql-for-javascript.rst @@ -3,7 +3,7 @@ CodeQL for JavaScript ===================== -Experiment and learn how to write effective and efficient queries for CodeQL databases generated from JavaScript codebases. +Experiment and learn how to write effective and efficient queries for CodeQL databases generated from JavaScript and TypeScript codebases. .. toctree:: :hidden: @@ -18,7 +18,7 @@ Experiment and learn how to write effective and efficient queries for CodeQL dat abstract-syntax-tree-classes-for-working-with-javascript-and-typescript-programs data-flow-cheat-sheet-for-javascript -- :doc:`Basic query for JavaScript code `: Learn to write and run a simple CodeQL query. +- :doc:`Basic query for JavaScript and TypeScript code `: Learn to write and run a simple CodeQL query. - :doc:`CodeQL library for JavaScript `: When you're analyzing a JavaScript program, you can make use of the large collection of classes in the CodeQL library for JavaScript. diff --git a/docs/codeql/codeql-language-guides/codeql-library-for-java.rst b/docs/codeql/codeql-language-guides/codeql-library-for-java.rst index 319afdf29c0..4359d382591 100644 --- a/docs/codeql/codeql-language-guides/codeql-library-for-java.rst +++ b/docs/codeql/codeql-language-guides/codeql-library-for-java.rst @@ -1,14 +1,14 @@ .. _codeql-library-for-java: -CodeQL library for Java +CodeQL library for Java and Kotlin ======================= -When you're analyzing a Java program, you can make use of the large collection of classes in the CodeQL library for Java. +When you're analyzing a Java/Kotlin program, you can make use of the large collection of classes in the CodeQL library for Java/Kotlin. -About the CodeQL library for Java +About the CodeQL library for Java and Kotlin --------------------------------- -There is an extensive library for analyzing CodeQL databases extracted from Java projects. The classes in this library present the data from a database in an object-oriented form and provide abstractions and predicates to help you with common analysis tasks. +There is an extensive library for analyzing CodeQL databases extracted from Java/Kotlin projects. The classes in this library present the data from a database in an object-oriented form and provide abstractions and predicates to help you with common analysis tasks. The library is implemented as a set of QL modules, that is, files with the extension ``.qll``. The module ``java.qll`` imports all the core Java library modules, so you can include the complete library by beginning your query with: @@ -27,7 +27,7 @@ The rest of this article briefly summarizes the most important classes and predi Summary of the library classes ------------------------------ -The most important classes in the standard Java library can be grouped into five main categories: +The most important classes in the standard Java/Kotlin library can be grouped into five main categories: #. Classes for representing program elements (such as classes and methods) #. Classes for representing AST nodes (such as statements and expressions) @@ -192,7 +192,7 @@ The wildcards ``? extends Number`` and ``? super Float`` are represented by clas For dealing with generic methods, there are classes ``GenericMethod``, ``ParameterizedMethod`` and ``RawMethod``, which are entirely analogous to the like-named classes for representing generic types. -For more information on working with types, see the :doc:`Types in Java `. +For more information on working with types, see the :doc:`Types in Java and Kotlin `. Variables ~~~~~~~~~ @@ -206,7 +206,7 @@ Class ``Variable`` represents a variable `in the Java sense `." +Classes in this category represent abstract syntax tree (AST) nodes, that is, statements (class ``Stmt``) and expressions (class ``Expr``). For a full list of expression and statement types available in the standard QL library, see ":doc:`Abstract syntax tree classes for working with Java and Kotlin programs `." Both ``Expr`` and ``Stmt`` provide member predicates for exploring the abstract syntax tree of a program: @@ -254,12 +254,12 @@ Finally, here is a query that finds method bodies: As these examples show, the parent node of an expression is not always an expression: it may also be a statement, for example, an ``IfStmt``. Similarly, the parent node of a statement is not always a statement: it may also be a method or a constructor. To capture this, the QL Java library provides two abstract class ``ExprParent`` and ``StmtParent``, the former representing any node that may be the parent node of an expression, and the latter any node that may be the parent node of a statement. -For more information on working with AST classes, see the :doc:`article on overflow-prone comparisons in Java `. +For more information on working with AST classes, see the :doc:`article on overflow-prone comparisons in Java and Kotlin `. Metadata -------- -Java programs have several kinds of metadata, in addition to the program code proper. In particular, there are `annotations `__ and `Javadoc `__ comments. Since this metadata is interesting both for enhancing code analysis and as an analysis subject in its own right, the QL library defines classes for accessing it. +Java/Kotlin programs have several kinds of metadata, in addition to the program code proper. In particular, there are `annotations `__ and `Javadoc `__ comments. Since this metadata is interesting both for enhancing code analysis and as an analysis subject in its own right, the QL library defines classes for accessing it. For annotations, class ``Annotatable`` is a superclass of all program elements that can be annotated. This includes packages, reference types, fields, methods, constructors, and local variable declarations. For every such element, its predicate ``getAnAnnotation`` allows you to retrieve any annotations the element may have. For example, the following query finds all annotations on constructors: @@ -344,7 +344,7 @@ Most large projects include some methods with a very high cyclomatic complexity. Call graph ---------- -CodeQL databases generated from Java code bases include precomputed information about the program's call graph, that is, which methods or constructors a given call may dispatch to at runtime. +CodeQL databases generated from Java and Kotlin code bases include precomputed information about the program's call graph, that is, which methods or constructors a given call may dispatch to at runtime. The class ``Callable``, introduced above, includes both methods and constructors. Call expressions are abstracted using class ``Call``, which includes method calls, ``new`` expressions, and explicit constructor calls using ``this`` or ``super``. diff --git a/docs/codeql/query-help/javascript-cwe.md b/docs/codeql/query-help/javascript-cwe.md index 628d07a38bf..8d05f243c72 100644 --- a/docs/codeql/query-help/javascript-cwe.md +++ b/docs/codeql/query-help/javascript-cwe.md @@ -1,6 +1,6 @@ -# CWE coverage for JavaScript +# CWE coverage for JavaScript and TypeScript -An overview of CWE coverage for JavaScript in the latest release of CodeQL. +An overview of CWE coverage for JavaScript and TypeScript in the latest release of CodeQL. ## Overview diff --git a/docs/codeql/reusables/extractors.rst b/docs/codeql/reusables/extractors.rst index bfcd7571cb7..e1976ab0e6a 100644 --- a/docs/codeql/reusables/extractors.rst +++ b/docs/codeql/reusables/extractors.rst @@ -5,15 +5,15 @@ * - Language - Identifier * - C/C++ - - ``cpp`` + - ``c-cpp`` * - C# - ``csharp`` * - Go - ``go`` * - Java/Kotlin - - ``java`` + - ``java-kotlin`` * - JavaScript/TypeScript - - ``javascript`` + - ``javascript-typescript`` * - Python - ``python`` * - Ruby diff --git a/docs/codeql/writing-codeql-queries/about-codeql-queries.rst b/docs/codeql/writing-codeql-queries/about-codeql-queries.rst index 9a3957ac6a1..0405c047483 100644 --- a/docs/codeql/writing-codeql-queries/about-codeql-queries.rst +++ b/docs/codeql/writing-codeql-queries/about-codeql-queries.rst @@ -74,7 +74,7 @@ When writing your own alert queries, you would typically import the standard lib - :ref:`CodeQL library guide for C and C++ ` - :ref:`CodeQL library guide for C# ` - :ref:`CodeQL library guide for Go ` -- :ref:`CodeQL library guide for Java ` +- :ref:`CodeQL library guide for Java and Kotlin ` - :ref:`CodeQL library guide for JavaScript ` - :ref:`CodeQL library guide for Python ` - :ref:`CodeQL library guide for Ruby ` diff --git a/docs/codeql/writing-codeql-queries/about-data-flow-analysis.rst b/docs/codeql/writing-codeql-queries/about-data-flow-analysis.rst index 52a1e7b91b5..1fde2e7ac2f 100644 --- a/docs/codeql/writing-codeql-queries/about-data-flow-analysis.rst +++ b/docs/codeql/writing-codeql-queries/about-data-flow-analysis.rst @@ -18,7 +18,7 @@ See the following tutorials for more information about analyzing data flow in sp - ":ref:`Analyzing data flow in C/C++ `" - ":ref:`Analyzing data flow in C# `" -- ":ref:`Analyzing data flow in Java `" +- ":ref:`Analyzing data flow in Java/Kotlin `" - ":ref:`Analyzing data flow in JavaScript/TypeScript `" - ":ref:`Analyzing data flow in Python `" - ":ref:`Analyzing data flow in Ruby `" diff --git a/docs/codeql/writing-codeql-queries/creating-path-queries.rst b/docs/codeql/writing-codeql-queries/creating-path-queries.rst index 9d2e5eee687..1e1b8d1f7a6 100644 --- a/docs/codeql/writing-codeql-queries/creating-path-queries.rst +++ b/docs/codeql/writing-codeql-queries/creating-path-queries.rst @@ -28,7 +28,7 @@ For more language-specific information on analyzing data flow, see: - ":ref:`Analyzing data flow in C/C++ `" - ":ref:`Analyzing data flow in C# `" -- ":ref:`Analyzing data flow in Java `" +- ":ref:`Analyzing data flow in Java/Kotlin `" - ":ref:`Analyzing data flow in JavaScript/TypeScript `" - ":ref:`Analyzing data flow in Python `" - ":ref:`Analyzing data flow in Ruby `" @@ -123,7 +123,7 @@ Declaring sources and sinks You must provide information about the ``source`` and ``sink`` in your path query. These are objects that correspond to the nodes of the paths that you are exploring. The name and the type of the ``source`` and the ``sink`` must be declared in the ``from`` statement of the query, and the types must be compatible with the nodes of the graph computed by the ``edges`` predicate. -If you are querying C/C++, C#, Go, Java, JavaScript, Python, or Ruby code (and you have used ``import MyFlow::PathGraph`` in your query), the definitions of the ``source`` and ``sink`` are accessed via the module resulting from the application of the ``Global<..>`` module in the data flow library. You should declare both of these objects in the ``from`` statement. +If you are querying C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, or Ruby code (and you have used ``import MyFlow::PathGraph`` in your query), the definitions of the ``source`` and ``sink`` are accessed via the module resulting from the application of the ``Global<..>`` module in the data flow library. You should declare both of these objects in the ``from`` statement. For example: .. code-block:: ql diff --git a/docs/codeql/writing-codeql-queries/query-help-files.rst b/docs/codeql/writing-codeql-queries/query-help-files.rst index 480fb7d846c..e4464514f7a 100644 --- a/docs/codeql/writing-codeql-queries/query-help-files.rst +++ b/docs/codeql/writing-codeql-queries/query-help-files.rst @@ -15,7 +15,7 @@ For more information about how to write useful query help in a style that is con You can access the query help for CodeQL queries by visiting `CodeQL query help `__. You can also access the raw query help files in the `GitHub repository `__. - For example, see the `JavaScript security queries `__ and `C/C++ critical queries `__. + For example, see the `JavaScript/TypeScript security queries `__ and `C/C++ critical queries `__. Overview ======== diff --git a/docs/query-metadata-style-guide.md b/docs/query-metadata-style-guide.md index 61ca21b8aa8..0f658fe8409 100644 --- a/docs/query-metadata-style-guide.md +++ b/docs/query-metadata-style-guide.md @@ -70,7 +70,7 @@ You must specify an `@id` property for your query. It must be unique and should * C and C++: `cpp` * C#: `cs` * Go: `go` -* Java: `java` +* Java and Kotlin: `java` * JavaScript and TypeScript: `js` * Python: `py` From d0554a05f91fba10dbec31b8117e68409408513f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Sep 2023 03:10:09 +0000 Subject: [PATCH 569/788] Bump rayon from 1.7.0 to 1.8.0 in /ql Bumps [rayon](https://github.com/rayon-rs/rayon) from 1.7.0 to 1.8.0. - [Changelog](https://github.com/rayon-rs/rayon/blob/master/RELEASES.md) - [Commits](https://github.com/rayon-rs/rayon/compare/rayon-core-v1.7.0...rayon-core-v1.8.0) --- updated-dependencies: - dependency-name: rayon dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- ql/Cargo.lock | Bin 32461 -> 32175 bytes ql/buramu/Cargo.toml | 2 +- ql/extractor/Cargo.toml | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ql/Cargo.lock b/ql/Cargo.lock index 45c71250d52c10ddfddaab89f4377b144a83e213..1bae58542a075958323dbb746d07229facc66116 100644 GIT binary patch delta 179 zcmWm6I|>3Z5CBlN-NH^q?F13D$z(G5bZg;)rQ2C%CfQSX0qdMVFQBj|@Bp4j1hs#> z*QdI_tH*jaEa#U^xt_Zwh<1q;CUy>uM`G*=0~sbX5bjDf6N3T!1Y zlxICI-TqMNqUvMwli0J3$z$&=#3;s7b~Z!sBnebVA)*8HN&{)mWCa;|^`CuCWfv#q O)UL{CF&%F0)_(y|gEZg( delta 310 zcmXxgJ4!=A6o6q;SR~r|h&Go9hKR__otZP|6cWLtNEtya<(zq-ph;BX9#YRj6tV&r zAh-{gAOUaV2L2EJ_utmnruEV9?uUDx&C+A9^Ojy-ALg^_qUx!0SH5qi!;ot+39Uy@ z-db?l2GS`jE1ZKk$}FtWB&an=G zUg}uK>@-0#UP3_6k|ZeQOsZAmMQ<8c#29TX17Q(c6Q6{Xi^q*J+y+E zoJ1gi?3$SO0ERRu29Ss>gybSc%c69Q!juCj0L@7f7Co-o{~ylEXgp|Fz1i~VE-aR1 OdVEyoldbh?e1d; Date: Thu, 21 Sep 2023 10:17:22 +0200 Subject: [PATCH 570/788] Revert "Revert "Swift: use C++20 constraints and concepts to simplify code"" --- misc/codegen/templates/trap_tags_h.mustache | 2 +- swift/extractor/infra/SwiftDispatcher.h | 69 +++------ .../infra/SwiftLocationExtractor.cpp | 67 ++------- .../extractor/infra/SwiftLocationExtractor.h | 141 +++++++++--------- swift/extractor/print_unextracted/main.cpp | 6 +- swift/extractor/translators/TranslatorBase.h | 52 ++----- swift/extractor/trap/TrapLabel.h | 8 +- 7 files changed, 120 insertions(+), 225 deletions(-) diff --git a/misc/codegen/templates/trap_tags_h.mustache b/misc/codegen/templates/trap_tags_h.mustache index c444d28afcb..6b1f4b9ac3a 100644 --- a/misc/codegen/templates/trap_tags_h.mustache +++ b/misc/codegen/templates/trap_tags_h.mustache @@ -6,7 +6,7 @@ namespace codeql { {{#tags}} // {{id}} -struct {{name}}Tag {{#has_bases}}: {{#bases}}{{^first}}, {{/first}}{{base}}Tag{{/bases}} {{/has_bases}}{ +struct {{name}}Tag {{#has_bases}}: {{#bases}}{{^first}}, {{/first}}virtual {{base}}Tag{{/bases}} {{/has_bases}}{ static constexpr const char* prefix = "{{name}}"; }; {{/tags}} diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index 7a1548c4f53..c76ba31fad5 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -38,19 +38,6 @@ class SwiftDispatcher { const swift::PoundAvailableInfo*, const swift::AvailabilitySpec*>; - template - static constexpr bool IsFetchable = std::is_constructible_v; - - template - static constexpr bool IsLocatable = - std::is_base_of_v> && !std::is_base_of_v>; - - template - static constexpr bool IsDeclPointer = std::is_convertible_v; - - template - static constexpr bool IsTypePointer = std::is_convertible_v; - public: // all references and pointers passed as parameters to this constructor are supposed to outlive // the SwiftDispatcher @@ -76,7 +63,7 @@ class SwiftDispatcher { using Label = std::remove_reference_t; if (!label.valid()) { const char* action; - if constexpr (std::is_base_of_v) { + if constexpr (std::derived_from) { action = "replacing with unspecified element"; label = emitUnspecified(idOf(entry), field, index); } else { @@ -132,7 +119,7 @@ class SwiftDispatcher { template std::optional> idOf(const E& entry) { - if constexpr (HasId::value) { + if constexpr (requires { entry.id; }) { return entry.id; } else { return std::nullopt; @@ -142,13 +129,14 @@ class SwiftDispatcher { // This method gives a TRAP label for already emitted AST node. // If the AST node was not emitted yet, then the emission is dispatched to a corresponding // visitor (see `visit(T *)` methods below). - template >* = nullptr> - TrapLabelOf fetchLabel(const E& e, swift::Type type = {}) { - if constexpr (std::is_constructible_v) { - if (!e) { - // this will be treated on emission - return undefined_label; - } + // clang-format off + template + requires std::constructible_from + TrapLabelOf fetchLabel(const E* e, swift::Type type = {}) { + // clang-format on + if (!e) { + // this will be treated on emission + return undefined_label; } auto& stored = store[e]; if (!stored.valid()) { @@ -174,8 +162,11 @@ class SwiftDispatcher { return ret; } - template >* = nullptr> + // clang-format off + template + requires std::constructible_from TrapLabelOf fetchLabel(const E& e) { + // clang-format on return fetchLabel(&e); } @@ -184,7 +175,8 @@ class SwiftDispatcher { auto createEntry(const E& e) { auto found = store.find(&e); CODEQL_ASSERT(found != store.end(), "createEntry called on non-fetched label"); - auto label = TrapLabel>::unsafeCreateFromUntyped(found->second); + using Tag = ConcreteTrapTagOf; + auto label = TrapLabel::unsafeCreateFromUntyped(found->second); if constexpr (IsLocatable) { locationExtractor.attachLocation(sourceManager, e, label); } @@ -195,7 +187,8 @@ class SwiftDispatcher { // an example is swift::Argument, that are created on the fly and thus have no stable pointer template auto createUncachedEntry(const E& e) { - auto label = trap.createTypedLabel>(); + using Tag = TrapTagOf; + auto label = trap.createTypedLabel(); locationExtractor.attachLocation(sourceManager, &e, label); return TrapClassOf{label}; } @@ -218,7 +211,7 @@ class SwiftDispatcher { auto fetchRepeatedLabels(Iterable&& arg) { using Label = decltype(fetchLabel(*arg.begin())); TrapLabelVectorWrapper ret; - if constexpr (HasSize::value) { + if constexpr (requires { arg.size(); }) { ret.data.reserve(arg.size()); } for (auto&& e : arg) { @@ -251,7 +244,7 @@ class SwiftDispatcher { private: template UntypedTrapLabel createLabel(const E& e, swift::Type type) { - if constexpr (IsDeclPointer || IsTypePointer) { + if constexpr (requires { name(e); }) { if (auto mangledName = name(e)) { if (shouldVisit(e)) { toBeVisited.emplace_back(e, type); @@ -266,7 +259,7 @@ class SwiftDispatcher { template bool shouldVisit(const E& e) { - if constexpr (IsDeclPointer) { + if constexpr (std::convertible_to) { encounteredModules.insert(e->getModuleContext()); if (bodyEmissionStrategy.shouldEmitDeclBody(*e)) { extractedDeclaration(e); @@ -295,18 +288,6 @@ class SwiftDispatcher { module->isNonSwiftModule(); } - template - struct HasSize : std::false_type {}; - - template - struct HasSize().size(), void())> : std::true_type {}; - - template - struct HasId : std::false_type {}; - - template - struct HasId().id, void())> : std::true_type {}; - template TrapLabel fetchLabelFromUnion(const llvm::PointerUnion u) { TrapLabel ret{}; @@ -324,7 +305,7 @@ class SwiftDispatcher { // on `BraceStmt`/`IfConfigDecl` elements), we cannot encounter a standalone `TypeRepr` there, // so we skip this case; extracting `TypeRepr`s here would be problematic as we would not be // able to provide the corresponding type - if constexpr (!std::is_same_v) { + if constexpr (!std::same_as) { if (auto e = u.template dyn_cast()) { output = fetchLabel(e); return true; @@ -348,10 +329,8 @@ class SwiftDispatcher { virtual void visit(const swift::TypeBase* type) = 0; virtual void visit(const swift::CapturedValue* capture) = 0; - template >* = nullptr> - void visit(const T* e, swift::Type) { - visit(e); - } + template + requires(!std::derived_from) void visit(const T* e, swift::Type) { visit(e); } const swift::SourceManager& sourceManager; SwiftExtractorState& state; diff --git a/swift/extractor/infra/SwiftLocationExtractor.cpp b/swift/extractor/infra/SwiftLocationExtractor.cpp index fd9ae9487b9..577b73aa983 100644 --- a/swift/extractor/infra/SwiftLocationExtractor.cpp +++ b/swift/extractor/infra/SwiftLocationExtractor.cpp @@ -12,19 +12,24 @@ using namespace codeql; +swift::SourceRange detail::getSourceRange(const swift::Token& token) { + const auto charRange = token.getRange(); + return {charRange.getStart(), charRange.getEnd()}; +} + void SwiftLocationExtractor::attachLocationImpl(const swift::SourceManager& sourceManager, - swift::SourceLoc start, - swift::SourceLoc end, + const swift::SourceRange& range, TrapLabel locatableLabel) { - if (!start.isValid() || !end.isValid()) { + if (!range) { // invalid locations seem to come from entities synthesized by the compiler return; } - auto file = resolvePath(sourceManager.getDisplayNameForLoc(start)); + auto file = resolvePath(sourceManager.getDisplayNameForLoc(range.Start)); DbLocation entry{{}}; entry.file = fetchFileLabel(file); - std::tie(entry.start_line, entry.start_column) = sourceManager.getLineAndColumnInBuffer(start); - std::tie(entry.end_line, entry.end_column) = sourceManager.getLineAndColumnInBuffer(end); + std::tie(entry.start_line, entry.start_column) = + sourceManager.getLineAndColumnInBuffer(range.Start); + std::tie(entry.end_line, entry.end_column) = sourceManager.getLineAndColumnInBuffer(range.End); SwiftMangledName locName{"loc", entry.file, ':', entry.start_line, ':', entry.start_column, ':', entry.end_line, ':', entry.end_column}; entry.id = trap.createTypedLabel(locName); @@ -43,56 +48,6 @@ TrapLabel SwiftLocationExtractor::emitFile(const std::filesystem::path& return fetchFileLabel(resolvePath(file)); } -void SwiftLocationExtractor::attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::SourceRange& range, - TrapLabel locatableLabel) { - attachLocationImpl(sourceManager, range.Start, range.End, locatableLabel); -} - -void SwiftLocationExtractor::attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::CapturedValue* capture, - TrapLabel locatableLabel) { - attachLocationImpl(sourceManager, capture->getLoc(), locatableLabel); -} - -void SwiftLocationExtractor::attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::IfConfigClause* clause, - TrapLabel locatableLabel) { - attachLocationImpl(sourceManager, clause->Loc, locatableLabel); -} - -void SwiftLocationExtractor::attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::AvailabilitySpec* spec, - TrapLabel locatableLabel) { - attachLocationImpl(sourceManager, spec->getSourceRange(), locatableLabel); -} - -void SwiftLocationExtractor::attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::KeyPathExpr::Component* component, - TrapLabel locatableLabel) { - attachLocationImpl(sourceManager, component->getSourceRange().Start, - component->getSourceRange().End, locatableLabel); -} - -void SwiftLocationExtractor::attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::Token* token, - TrapLabel locatableLabel) { - attachLocationImpl(sourceManager, token->getRange().getStart(), token->getRange().getEnd(), - locatableLabel); -} - -void SwiftLocationExtractor::attachLocationImpl(const swift::SourceManager& sourceManager, - swift::SourceLoc loc, - TrapLabel locatableLabel) { - attachLocationImpl(sourceManager, loc, loc, locatableLabel); -} - -void SwiftLocationExtractor::attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::DiagnosticInfo* diagInfo, - TrapLabel locatableLabel) { - attachLocationImpl(sourceManager, diagInfo->Loc, locatableLabel); -} - TrapLabel SwiftLocationExtractor::fetchFileLabel(const std::filesystem::path& file) { if (store.count(file)) { return store[file]; diff --git a/swift/extractor/infra/SwiftLocationExtractor.h b/swift/extractor/infra/SwiftLocationExtractor.h index 40b0ade944c..65ef79c0018 100644 --- a/swift/extractor/infra/SwiftLocationExtractor.h +++ b/swift/extractor/infra/SwiftLocationExtractor.h @@ -15,104 +15,99 @@ namespace codeql { class TrapDomain; -class SwiftLocationExtractor { - template - struct HasSpecializedImplementation : std::false_type {}; +namespace detail { +template +concept HasSourceRange = requires(T e) { + e.getSourceRange(); +}; +template +concept HasStartAndEndLoc = requires(T e) { + e.getStartLoc(); + e.getEndLoc(); +} +&&!(HasSourceRange); + +template +concept HasOneLoc = requires(T e) { + e.getLoc(); +} +&&!(HasSourceRange)&&(!HasStartAndEndLoc); + +template +concept HasOneLocField = requires(T e) { + e.Loc; +}; + +swift::SourceRange getSourceRange(const HasSourceRange auto& locatable) { + return locatable.getSourceRange(); +} + +swift::SourceRange getSourceRange(const HasStartAndEndLoc auto& locatable) { + if (locatable.getStartLoc() && locatable.getEndLoc()) { + return {locatable.getStartLoc(), locatable.getEndLoc()}; + } + return {locatable.getStartLoc()}; +} + +swift::SourceRange getSourceRange(const HasOneLoc auto& locatable) { + return {locatable.getLoc()}; +} + +swift::SourceRange getSourceRange(const HasOneLocField auto& locatable) { + return {locatable.Loc}; +} + +swift::SourceRange getSourceRange(const swift::Token& token); + +template +swift::SourceRange getSourceRange(const llvm::MutableArrayRef& locatables) { + if (locatables.empty()) { + return {}; + } + auto startRange = getSourceRange(locatables.front()); + auto endRange = getSourceRange(locatables.back()); + if (startRange.Start && endRange.End) { + return {startRange.Start, endRange.End}; + } + return {startRange.Start}; +} +} // namespace detail + +template +concept IsLocatable = requires(E e) { + detail::getSourceRange(e); +}; + +class SwiftLocationExtractor { public: explicit SwiftLocationExtractor(TrapDomain& trap) : trap(trap) {} TrapLabel emitFile(swift::SourceFile* file); TrapLabel emitFile(const std::filesystem::path& file); - template - void attachLocation(const swift::SourceManager& sourceManager, - const Locatable& locatable, - TrapLabel locatableLabel) { - attachLocation(sourceManager, &locatable, locatableLabel); - } - // Emits a Location TRAP entry and attaches it to a `Locatable` trap label - template ::value>* = nullptr> void attachLocation(const swift::SourceManager& sourceManager, - const Locatable* locatable, + const IsLocatable auto& locatable, TrapLabel locatableLabel) { - attachLocationImpl(sourceManager, locatable->getStartLoc(), locatable->getEndLoc(), - locatableLabel); + attachLocationImpl(sourceManager, detail::getSourceRange(locatable), locatableLabel); } - template ::value>* = nullptr> void attachLocation(const swift::SourceManager& sourceManager, - const Locatable* locatable, + const IsLocatable auto* locatable, TrapLabel locatableLabel) { - attachLocationImpl(sourceManager, locatable, locatableLabel); + attachLocation(sourceManager, *locatable, locatableLabel); } private: - // Emits a Location TRAP entry for a list of swift entities and attaches it to a `Locatable` trap - // label - template - void attachLocationImpl(const swift::SourceManager& sourceManager, - const llvm::MutableArrayRef* locatables, - TrapLabel locatableLabel) { - if (locatables->empty()) { - return; - } - attachLocationImpl(sourceManager, locatables->front().getStartLoc(), - locatables->back().getEndLoc(), locatableLabel); - } - - void attachLocationImpl(const swift::SourceManager& sourceManager, - swift::SourceLoc start, - swift::SourceLoc end, - TrapLabel locatableLabel); - - void attachLocationImpl(const swift::SourceManager& sourceManager, - swift::SourceLoc loc, - TrapLabel locatableLabel); - void attachLocationImpl(const swift::SourceManager& sourceManager, const swift::SourceRange& range, TrapLabel locatableLabel); - void attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::CapturedValue* capture, - TrapLabel locatableLabel); - - void attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::IfConfigClause* clause, - TrapLabel locatableLabel); - - void attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::AvailabilitySpec* spec, - TrapLabel locatableLabel); - - void attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::Token* token, - TrapLabel locatableLabel); - - void attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::DiagnosticInfo* token, - TrapLabel locatableLabel); - - void attachLocationImpl(const swift::SourceManager& sourceManager, - const swift::KeyPathExpr::Component* component, - TrapLabel locatableLabel); - private: TrapLabel fetchFileLabel(const std::filesystem::path& file); TrapDomain& trap; std::unordered_map, codeql::PathHash> store; }; -template -struct SwiftLocationExtractor::HasSpecializedImplementation< - Locatable, - decltype(std::declval().attachLocationImpl( - std::declval(), - std::declval(), - std::declval>()))> : std::true_type {}; - } // namespace codeql diff --git a/swift/extractor/print_unextracted/main.cpp b/swift/extractor/print_unextracted/main.cpp index 09832ce992e..22af3304677 100644 --- a/swift/extractor/print_unextracted/main.cpp +++ b/swift/extractor/print_unextracted/main.cpp @@ -13,9 +13,9 @@ using namespace codeql; int main() { std::map> unextracted; -#define CHECK_CLASS(KIND, CLASS, PARENT) \ - if (KIND##Translator::getPolicyFor##CLASS##KIND() == TranslatorPolicy::emitUnknown) { \ - unextracted[#KIND].push_back(#CLASS #KIND); \ +#define CHECK_CLASS(KIND, CLASS, PARENT) \ + if constexpr (KIND##Translator::getPolicyFor##CLASS##KIND() == TranslatorPolicy::emitUnknown) { \ + unextracted[#KIND].push_back(#CLASS #KIND); \ } #define DECL(CLASS, PARENT) CHECK_CLASS(Decl, CLASS, PARENT) diff --git a/swift/extractor/translators/TranslatorBase.h b/swift/extractor/translators/TranslatorBase.h index f3438fac39c..76ddad10dc6 100644 --- a/swift/extractor/translators/TranslatorBase.h +++ b/swift/extractor/translators/TranslatorBase.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include @@ -18,45 +20,6 @@ class TranslatorBase { : dispatcher{dispatcher}, logger{"translator/" + std::string(name)} {} }; -// define by macro metaprogramming member checkers -// see https://fekir.info/post/detect-member-variables/ for technical details -#define DEFINE_TRANSLATE_CHECKER(KIND, CLASS, PARENT) \ - template \ - struct HasTranslate##CLASS##KIND : std::false_type {}; \ - \ - template \ - struct HasTranslate##CLASS##KIND().translate##CLASS##KIND( \ - std::declval()), \ - void())> : std::true_type {}; - -DEFINE_TRANSLATE_CHECKER(Decl, , ) -#define DECL(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(Decl, CLASS, PARENT) -#define ABSTRACT_DECL(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(Decl, CLASS, PARENT) -#include "swift/AST/DeclNodes.def" - -DEFINE_TRANSLATE_CHECKER(Stmt, , ) -#define STMT(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(Stmt, CLASS, PARENT) -#define ABSTRACT_STMT(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(Stmt, CLASS, PARENT) -#include "swift/AST/StmtNodes.def" - -DEFINE_TRANSLATE_CHECKER(Expr, , ) -#define EXPR(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(Expr, CLASS, PARENT) -#define ABSTRACT_EXPR(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(Expr, CLASS, PARENT) -#include "swift/AST/ExprNodes.def" - -DEFINE_TRANSLATE_CHECKER(Pattern, , ) -#define PATTERN(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(Pattern, CLASS, PARENT) -#include "swift/AST/PatternNodes.def" - -DEFINE_TRANSLATE_CHECKER(Type, , ) -#define TYPE(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(Type, CLASS, PARENT) -#define ABSTRACT_TYPE(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(Type, CLASS, PARENT) -#include "swift/AST/TypeNodes.def" - -DEFINE_TRANSLATE_CHECKER(TypeRepr, , ) -#define TYPEREPR(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(TypeRepr, CLASS, PARENT) -#define ABSTRACT_TYPEREPR(CLASS, PARENT) DEFINE_TRANSLATE_CHECKER(TypeRepr, CLASS, PARENT) -#include "swift/AST/TypeReprNodes.def" } // namespace detail enum class TranslatorPolicy { @@ -76,11 +39,15 @@ enum class TranslatorPolicy { #define DEFINE_VISIT(KIND, CLASS, PARENT) \ public: \ static constexpr TranslatorPolicy getPolicyFor##CLASS##KIND() { \ - if constexpr (std::is_same_v, void>) { \ + if constexpr (std::same_as, void>) { \ return TranslatorPolicy::ignore; \ - } else if constexpr (detail::HasTranslate##CLASS##KIND::value) { \ + } else if constexpr (requires(CrtpSubclass x, swift::CLASS##KIND e) { \ + x.translate##CLASS##KIND(e); \ + }) { \ return TranslatorPolicy::translate; \ - } else if constexpr (detail::HasTranslate##PARENT::value) { \ + } else if constexpr (requires(CrtpSubclass x, swift::CLASS##KIND e) { \ + x.translate##PARENT(e); \ + }) { \ return TranslatorPolicy::translateParent; \ } else { \ return TranslatorPolicy::emitUnknown; \ @@ -92,7 +59,6 @@ enum class TranslatorPolicy { constexpr auto policy = getPolicyFor##CLASS##KIND(); \ if constexpr (policy == TranslatorPolicy::ignore) { \ LOG_ERROR("Unexpected " #CLASS #KIND); \ - return; \ } else if constexpr (policy == TranslatorPolicy::translate) { \ dispatcher.emit(static_cast(this)->translate##CLASS##KIND(*e)); \ } else if constexpr (policy == TranslatorPolicy::translateParent) { \ diff --git a/swift/extractor/trap/TrapLabel.h b/swift/extractor/trap/TrapLabel.h index 629aa3e0033..e0091a6d536 100644 --- a/swift/extractor/trap/TrapLabel.h +++ b/swift/extractor/trap/TrapLabel.h @@ -9,6 +9,7 @@ #include #include #include +#include namespace codeql { @@ -82,9 +83,8 @@ class TrapLabel : public UntypedTrapLabel { static TrapLabel unsafeCreateFromUntyped(UntypedTrapLabel label) { return TrapLabel{label.id_}; } template - TrapLabel(const TrapLabel& other) : UntypedTrapLabel(other) { - static_assert(std::is_base_of_v, "wrong label assignment!"); - } + requires std::derived_from TrapLabel(const TrapLabel& other) + : UntypedTrapLabel(other) {} }; // wrapper class to allow directly assigning a vector of TrapLabel to a vector of @@ -96,8 +96,8 @@ struct TrapLabelVectorWrapper { std::vector> data; template + requires std::derived_from operator std::vector>() && { - static_assert(std::is_base_of_v, "wrong label assignment!"); // reinterpret_cast is safe because TrapLabel instances differ only on the type, not the // underlying data return std::move(reinterpret_cast>&>(data)); From 2429a5383de01d3622d4205369144c9723fb76d4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 22 Aug 2023 11:44:55 +0200 Subject: [PATCH 571/788] C#: Move `NestPaths` to `Semmle.Util` --- .../Semmle.Extraction.Tests/TrapWriter.cs | 52 ------------------- .../extractor/Semmle.Extraction/TrapWriter.cs | 36 +------------ .../extractor/Semmle.Util.Tests/FileUtils.cs | 43 +++++++++++++++ csharp/extractor/Semmle.Util/FileUtils.cs | 33 ++++++++++++ 4 files changed, 78 insertions(+), 86 deletions(-) delete mode 100644 csharp/extractor/Semmle.Extraction.Tests/TrapWriter.cs diff --git a/csharp/extractor/Semmle.Extraction.Tests/TrapWriter.cs b/csharp/extractor/Semmle.Extraction.Tests/TrapWriter.cs deleted file mode 100644 index 54e0a9db25a..00000000000 --- a/csharp/extractor/Semmle.Extraction.Tests/TrapWriter.cs +++ /dev/null @@ -1,52 +0,0 @@ -using Xunit; -using Semmle.Util.Logging; -using Semmle.Util; - -namespace Semmle.Extraction.Tests -{ - public class TrapWriterTests - { - [Fact] - public void NestedPaths() - { - string tempDir = System.IO.Path.GetTempPath(); - string root1, root2, root3; - - if (Win32.IsWindows()) - { - root1 = "E:"; - root2 = "e:"; - root3 = @"\"; - } - else - { - root1 = "/E_"; - root2 = "/e_"; - root3 = "/"; - } - - using var logger = new LoggerMock(); - - Assert.Equal($@"C:\Temp\source_archive\def.cs", TrapWriter.NestPaths(logger, @"C:\Temp\source_archive", "def.cs").Replace('/', '\\')); - - Assert.Equal(@"C:\Temp\source_archive\def.cs", TrapWriter.NestPaths(logger, @"C:\Temp\source_archive", "def.cs").Replace('/', '\\')); - - Assert.Equal(@"C:\Temp\source_archive\E_\source\def.cs", TrapWriter.NestPaths(logger, @"C:\Temp\source_archive", $@"{root1}\source\def.cs").Replace('/', '\\')); - - Assert.Equal(@"C:\Temp\source_archive\e_\source\def.cs", TrapWriter.NestPaths(logger, @"C:\Temp\source_archive", $@"{root2}\source\def.cs").Replace('/', '\\')); - - Assert.Equal(@"C:\Temp\source_archive\source\def.cs", TrapWriter.NestPaths(logger, @"C:\Temp\source_archive", $@"{root3}source\def.cs").Replace('/', '\\')); - - Assert.Equal(@"C:\Temp\source_archive\source\def.cs", TrapWriter.NestPaths(logger, @"C:\Temp\source_archive", $@"{root3}source\def.cs").Replace('/', '\\')); - - Assert.Equal(@"C:\Temp\source_archive\diskstation\share\source\def.cs", TrapWriter.NestPaths(logger, @"C:\Temp\source_archive", $@"{root3}{root3}diskstation\share\source\def.cs").Replace('/', '\\')); - } - - private sealed class LoggerMock : ILogger - { - public void Dispose() { } - - public void Log(Severity s, string text) { } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction/TrapWriter.cs b/csharp/extractor/Semmle.Extraction/TrapWriter.cs index 3757e632e72..58d71ccaf38 100644 --- a/csharp/extractor/Semmle.Extraction/TrapWriter.cs +++ b/csharp/extractor/Semmle.Extraction/TrapWriter.cs @@ -216,7 +216,7 @@ namespace Semmle.Extraction private void ArchiveContents(PathTransformer.ITransformedPath transformedPath, string contents) { - var dest = NestPaths(logger, archive, transformedPath.Value); + var dest = FileUtils.NestPaths(logger, archive, transformedPath.Value); var tmpSrcFile = Path.GetTempFileName(); File.WriteAllText(tmpSrcFile, contents, utf8); try @@ -231,38 +231,6 @@ namespace Semmle.Extraction } } - public static string NestPaths(ILogger logger, string? outerpath, string innerpath) - { - var nested = innerpath; - if (!string.IsNullOrEmpty(outerpath)) - { - // Remove all leading path separators / or \ - // For example, UNC paths have two leading \\ - innerpath = innerpath.TrimStart(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); - - if (innerpath.Length > 1 && innerpath[1] == ':') - innerpath = innerpath[0] + "_" + innerpath.Substring(2); - - nested = Path.Combine(outerpath, innerpath); - } - try - { - var directoryName = Path.GetDirectoryName(nested); - if (directoryName is null) - { - logger.Log(Severity.Warning, "Failed to get directory name from path '" + nested + "'."); - throw new InvalidOperationException(); - } - Directory.CreateDirectory(directoryName); - } - catch (PathTooLongException) - { - logger.Log(Severity.Warning, "Failed to create parent directory of '" + nested + "': Path too long."); - throw; - } - return nested; - } - private static string TrapExtension(CompressionMode compression) { switch (compression) @@ -280,7 +248,7 @@ namespace Semmle.Extraction if (string.IsNullOrEmpty(folder)) folder = Directory.GetCurrentDirectory(); - return NestPaths(logger, folder, filename); + return FileUtils.NestPaths(logger, folder, filename); } } } diff --git a/csharp/extractor/Semmle.Util.Tests/FileUtils.cs b/csharp/extractor/Semmle.Util.Tests/FileUtils.cs index b3feedde436..cbc82d4b814 100644 --- a/csharp/extractor/Semmle.Util.Tests/FileUtils.cs +++ b/csharp/extractor/Semmle.Util.Tests/FileUtils.cs @@ -1,5 +1,6 @@ using Xunit; using Semmle.Util; +using Semmle.Util.Logging; namespace SemmleTests.Semmle.Util { @@ -16,5 +17,47 @@ namespace SemmleTests.Semmle.Util Assert.Equal(Win32.IsWindows() ? @"foo\bar" : "foo/bar", FileUtils.ConvertToNative("foo/bar")); } + + [Fact] + public void NestedPaths() + { + string root1, root2, root3; + + if (Win32.IsWindows()) + { + root1 = "E:"; + root2 = "e:"; + root3 = @"\"; + } + else + { + root1 = "/E_"; + root2 = "/e_"; + root3 = "/"; + } + + using var logger = new LoggerMock(); + + Assert.Equal($@"C:\Temp\source_archive\def.cs", FileUtils.NestPaths(logger, @"C:\Temp\source_archive", "def.cs").Replace('/', '\\')); + + Assert.Equal(@"C:\Temp\source_archive\def.cs", FileUtils.NestPaths(logger, @"C:\Temp\source_archive", "def.cs").Replace('/', '\\')); + + Assert.Equal(@"C:\Temp\source_archive\E_\source\def.cs", FileUtils.NestPaths(logger, @"C:\Temp\source_archive", $@"{root1}\source\def.cs").Replace('/', '\\')); + + Assert.Equal(@"C:\Temp\source_archive\e_\source\def.cs", FileUtils.NestPaths(logger, @"C:\Temp\source_archive", $@"{root2}\source\def.cs").Replace('/', '\\')); + + Assert.Equal(@"C:\Temp\source_archive\source\def.cs", FileUtils.NestPaths(logger, @"C:\Temp\source_archive", $@"{root3}source\def.cs").Replace('/', '\\')); + + Assert.Equal(@"C:\Temp\source_archive\source\def.cs", FileUtils.NestPaths(logger, @"C:\Temp\source_archive", $@"{root3}source\def.cs").Replace('/', '\\')); + + Assert.Equal(@"C:\Temp\source_archive\diskstation\share\source\def.cs", FileUtils.NestPaths(logger, @"C:\Temp\source_archive", $@"{root3}{root3}diskstation\share\source\def.cs").Replace('/', '\\')); + } + + private sealed class LoggerMock : ILogger + { + public void Dispose() { } + + public void Log(Severity s, string text) { } + } } } diff --git a/csharp/extractor/Semmle.Util/FileUtils.cs b/csharp/extractor/Semmle.Util/FileUtils.cs index 90d0cc0a635..ad8cb6cbec3 100644 --- a/csharp/extractor/Semmle.Util/FileUtils.cs +++ b/csharp/extractor/Semmle.Util/FileUtils.cs @@ -5,6 +5,7 @@ using System.Net.Http; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; +using Semmle.Util.Logging; namespace Semmle.Util { @@ -110,5 +111,37 @@ namespace Semmle.Util /// public static void DownloadFile(string address, string fileName) => DownloadFileAsync(address, fileName).Wait(); + + public static string NestPaths(ILogger logger, string? outerpath, string innerpath) + { + var nested = innerpath; + if (!string.IsNullOrEmpty(outerpath)) + { + // Remove all leading path separators / or \ + // For example, UNC paths have two leading \\ + innerpath = innerpath.TrimStart(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + + if (innerpath.Length > 1 && innerpath[1] == ':') + innerpath = innerpath[0] + "_" + innerpath.Substring(2); + + nested = Path.Combine(outerpath, innerpath); + } + try + { + var directoryName = Path.GetDirectoryName(nested); + if (directoryName is null) + { + logger.Log(Severity.Warning, "Failed to get directory name from path '" + nested + "'."); + throw new InvalidOperationException(); + } + Directory.CreateDirectory(directoryName); + } + catch (PathTooLongException) + { + logger.Log(Severity.Warning, "Failed to create parent directory of '" + nested + "': Path too long."); + throw; + } + return nested; + } } } From 6021d00f7e2c92f38ff1b724de7cadef664a8744 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 20 Sep 2023 11:22:58 +0200 Subject: [PATCH 572/788] C#: Move some methods into newly created `Semmle.Extraction.CSharp.Util` project --- csharp/CSharp.sln | 9 +- .../Semmle.Extraction.CSharp.Util.csproj | 17 +++ .../SymbolExtensions.cs | 131 ++++++++++++++++++ .../Entities/Event.cs | 1 + .../Entities/Expression.cs | 5 +- .../Entities/Expressions/ImplicitCast.cs | 1 + .../ObjectCreation/DateTimeObjectCreation.cs | 1 + .../Entities/Indexer.cs | 1 + .../Entities/OrdinaryMethod.cs | 4 +- .../Entities/Property.cs | 1 + .../Entities/Statements/ForEach.cs | 2 +- .../Entities/Statements/LocalFunction.cs | 2 +- .../Entities/Types/Type.cs | 2 +- .../Entities/UserOperator.cs | 113 +-------------- .../Populators/DirectiveVisitor.cs | 8 +- .../Semmle.Extraction.CSharp.csproj | 2 +- .../SymbolExtensions.cs | 13 -- 17 files changed, 177 insertions(+), 136 deletions(-) create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.Util/Semmle.Extraction.CSharp.Util.csproj create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.Util/SymbolExtensions.cs diff --git a/csharp/CSharp.sln b/csharp/CSharp.sln index ee00f406c7a..fb71dacc3fe 100644 --- a/csharp/CSharp.sln +++ b/csharp/CSharp.sln @@ -1,5 +1,4 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.27130.2036 MinimumVisualStudioVersion = 10.0.40219.1 @@ -15,6 +14,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.De EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Standalone", "extractor\Semmle.Extraction.CSharp.Standalone\Semmle.Extraction.CSharp.Standalone.csproj", "{D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Util", "extractor\Semmle.Extraction.CSharp.Util\Semmle.Extraction.CSharp.Util.csproj", "{998A0D4C-8BFC-4513-A28D-4816AFB89882}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CIL.Driver", "extractor\Semmle.Extraction.CIL.Driver\Semmle.Extraction.CIL.Driver.csproj", "{EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Driver", "extractor\Semmle.Extraction.CSharp.Driver\Semmle.Extraction.CSharp.Driver.csproj", "{C36453BF-0C82-448A-B15D-26947503A2D3}" @@ -85,6 +86,10 @@ Global {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Debug|Any CPU.Build.0 = Debug|Any CPU {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Release|Any CPU.ActiveCfg = Release|Any CPU {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Release|Any CPU.Build.0 = Release|Any CPU + {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Util/Semmle.Extraction.CSharp.Util.csproj b/csharp/extractor/Semmle.Extraction.CSharp.Util/Semmle.Extraction.CSharp.Util.csproj new file mode 100644 index 00000000000..f279bfa4d18 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.Util/Semmle.Extraction.CSharp.Util.csproj @@ -0,0 +1,17 @@ + + + net7.0 + Semmle.Extraction.CSharp.Util + Semmle.Extraction.CSharp.Util + false + true + win-x64;linux-x64;osx-x64 + enable + + + + + + + + \ No newline at end of file diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Util/SymbolExtensions.cs b/csharp/extractor/Semmle.Extraction.CSharp.Util/SymbolExtensions.cs new file mode 100644 index 00000000000..141189091b0 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.Util/SymbolExtensions.cs @@ -0,0 +1,131 @@ +using System.Text.RegularExpressions; +using Microsoft.CodeAnalysis; + +namespace Semmle.Extraction.CSharp.Util +{ + public static partial class SymbolExtensions + { + /// + /// Gets the name of this symbol. + /// + /// If the symbol implements an explicit interface, only the + /// name of the member being implemented is included, not the + /// explicit prefix. + /// + public static string GetName(this ISymbol symbol, bool useMetadataName = false) + { + var name = useMetadataName ? symbol.MetadataName : symbol.Name; + return symbol.CanBeReferencedByName ? name : name.Substring(symbol.Name.LastIndexOf('.') + 1); + } + + /// + /// Convert an operator method name in to a symbolic name. + /// A return value indicates whether the conversion succeeded. + /// + public static bool TryGetOperatorSymbol(this ISymbol symbol, out string operatorName) + { + static bool TryGetOperatorSymbolFromName(string methodName, out string operatorName) + { + var success = true; + switch (methodName) + { + case "op_LogicalNot": + operatorName = "!"; + break; + case "op_BitwiseAnd": + operatorName = "&"; + break; + case "op_Equality": + operatorName = "=="; + break; + case "op_Inequality": + operatorName = "!="; + break; + case "op_UnaryPlus": + case "op_Addition": + operatorName = "+"; + break; + case "op_UnaryNegation": + case "op_Subtraction": + operatorName = "-"; + break; + case "op_Multiply": + operatorName = "*"; + break; + case "op_Division": + operatorName = "/"; + break; + case "op_Modulus": + operatorName = "%"; + break; + case "op_GreaterThan": + operatorName = ">"; + break; + case "op_GreaterThanOrEqual": + operatorName = ">="; + break; + case "op_LessThan": + operatorName = "<"; + break; + case "op_LessThanOrEqual": + operatorName = "<="; + break; + case "op_Decrement": + operatorName = "--"; + break; + case "op_Increment": + operatorName = "++"; + break; + case "op_Implicit": + operatorName = "implicit conversion"; + break; + case "op_Explicit": + operatorName = "explicit conversion"; + break; + case "op_OnesComplement": + operatorName = "~"; + break; + case "op_RightShift": + operatorName = ">>"; + break; + case "op_UnsignedRightShift": + operatorName = ">>>"; + break; + case "op_LeftShift": + operatorName = "<<"; + break; + case "op_BitwiseOr": + operatorName = "|"; + break; + case "op_ExclusiveOr": + operatorName = "^"; + break; + case "op_True": + operatorName = "true"; + break; + case "op_False": + operatorName = "false"; + break; + default: + var match = CheckedRegex().Match(methodName); + if (match.Success) + { + TryGetOperatorSymbolFromName("op_" + match.Groups[1], out var uncheckedName); + operatorName = "checked " + uncheckedName; + break; + } + operatorName = methodName; + success = false; + break; + } + return success; + } + + var methodName = symbol.GetName(useMetadataName: false); + return TryGetOperatorSymbolFromName(methodName, out operatorName); + } + + [GeneratedRegex("^op_Checked(.*)$")] + private static partial Regex CheckedRegex(); + } +} diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Event.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Event.cs index e8e873f4492..888e1ba7304 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Event.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Event.cs @@ -2,6 +2,7 @@ using System.IO; using System.Linq; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; +using Semmle.Extraction.CSharp.Util; namespace Semmle.Extraction.CSharp.Entities { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression.cs index 83c9b8b1689..6c5ac993ca6 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression.cs @@ -6,6 +6,7 @@ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using Semmle.Extraction.CSharp.Entities.Expressions; +using Semmle.Extraction.CSharp.Util; using Semmle.Extraction.Kinds; namespace Semmle.Extraction.CSharp.Entities @@ -205,7 +206,7 @@ namespace Semmle.Extraction.CSharp.Entities { // this can happen in VB.NET cx.ExtractionError($"Extracting default argument value 'object {parameter.Name} = default' instead of 'object {parameter.Name} = {defaultValue}'. The latter is not supported in C#.", - null, null, severity: Util.Logging.Severity.Warning); + null, null, severity: Semmle.Util.Logging.Severity.Warning); // we're generating a default expression: return Default.CreateGenerated(cx, parent, childIndex, location, ValueAsString(null)); @@ -250,7 +251,7 @@ namespace Semmle.Extraction.CSharp.Entities var callType = GetCallType(Context, node); if (callType == CallType.Dynamic) { - UserOperator.TryGetOperatorSymbol(method.Name, out var operatorName); + method.TryGetOperatorSymbol(out var operatorName); trapFile.dynamic_member_name(this, operatorName); return; } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/ImplicitCast.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/ImplicitCast.cs index ebd7379ee67..d2762f20a07 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/ImplicitCast.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/ImplicitCast.cs @@ -1,5 +1,6 @@ using System.Linq; using Microsoft.CodeAnalysis; +using Semmle.Extraction.CSharp.Util; using Semmle.Extraction.Kinds; namespace Semmle.Extraction.CSharp.Entities.Expressions diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/ObjectCreation/DateTimeObjectCreation.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/ObjectCreation/DateTimeObjectCreation.cs index 1f18251dad5..e9f40b1bc67 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/ObjectCreation/DateTimeObjectCreation.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/ObjectCreation/DateTimeObjectCreation.cs @@ -1,6 +1,7 @@ using System.IO; using System.Linq; using Microsoft.CodeAnalysis; +using Semmle.Extraction.CSharp.Util; using Semmle.Extraction.Kinds; namespace Semmle.Extraction.CSharp.Entities.Expressions diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Indexer.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Indexer.cs index d7376498753..1c41974a3a2 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Indexer.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Indexer.cs @@ -2,6 +2,7 @@ using System.IO; using System.Linq; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; +using Semmle.Extraction.CSharp.Util; namespace Semmle.Extraction.CSharp.Entities { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/OrdinaryMethod.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/OrdinaryMethod.cs index fdbbc5478d2..26db581fe4e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/OrdinaryMethod.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/OrdinaryMethod.cs @@ -3,7 +3,7 @@ using System.Linq; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; using Semmle.Extraction.CSharp.Populators; - +using Semmle.Extraction.CSharp.Util; namespace Semmle.Extraction.CSharp.Entities { @@ -51,7 +51,7 @@ namespace Semmle.Extraction.CSharp.Entities { if (method.MethodKind == MethodKind.ReducedExtension) { - cx.Extractor.Logger.Log(Util.Logging.Severity.Warning, "Reduced extension method symbols should not be directly extracted."); + cx.Extractor.Logger.Log(Semmle.Util.Logging.Severity.Warning, "Reduced extension method symbols should not be directly extracted."); } return OrdinaryMethodFactory.Instance.CreateEntityFromSymbol(cx, method); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Property.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Property.cs index 9fcc0ddb4c8..08fa4335452 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Property.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Property.cs @@ -5,6 +5,7 @@ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; using Semmle.Extraction.CSharp.Entities.Expressions; using Semmle.Extraction.Kinds; +using Semmle.Extraction.CSharp.Util; namespace Semmle.Extraction.CSharp.Entities { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Statements/ForEach.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Statements/ForEach.cs index 49456052f3b..102f79f3c5e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Statements/ForEach.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Statements/ForEach.cs @@ -44,7 +44,7 @@ namespace Semmle.Extraction.CSharp.Entities.Statements if (info.Equals(default)) { - Context.ExtractionError("Could not get foreach statement info", null, Context.CreateLocation(this.ReportingLocation), severity: Util.Logging.Severity.Info); + Context.ExtractionError("Could not get foreach statement info", null, Context.CreateLocation(this.ReportingLocation), severity: Semmle.Util.Logging.Severity.Info); return; } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Statements/LocalFunction.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Statements/LocalFunction.cs index 9c6a579c368..3d8523cdff6 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Statements/LocalFunction.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Statements/LocalFunction.cs @@ -34,7 +34,7 @@ namespace Semmle.Extraction.CSharp.Entities.Statements { if (Symbol is null) { - Context.ExtractionError("Could not get local function symbol", null, Context.CreateLocation(this.ReportingLocation), severity: Util.Logging.Severity.Warning); + Context.ExtractionError("Could not get local function symbol", null, Context.CreateLocation(this.ReportingLocation), severity: Semmle.Util.Logging.Severity.Warning); return; } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs index 8c93d630d15..4f51ae74c93 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs @@ -87,7 +87,7 @@ namespace Semmle.Extraction.CSharp.Entities var hasExpandingCycle = GenericsRecursionGraph.HasExpandingCycle(Symbol); if (hasExpandingCycle) { - Context.ExtractionError("Found recursive generic inheritance hierarchy. Base class of type is not extracted", Symbol.ToDisplayString(), Context.CreateLocation(ReportingLocation), severity: Util.Logging.Severity.Warning); + Context.ExtractionError("Found recursive generic inheritance hierarchy. Base class of type is not extracted", Symbol.ToDisplayString(), Context.CreateLocation(ReportingLocation), severity: Semmle.Util.Logging.Severity.Warning); } // Visit base types diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs index 3bba37d74b3..f2fc4b85d7f 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs @@ -1,8 +1,8 @@ using System.IO; using System.Linq; -using System.Text.RegularExpressions; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; +using Semmle.Extraction.CSharp.Util; namespace Semmle.Extraction.CSharp.Entities { @@ -79,108 +79,7 @@ namespace Semmle.Extraction.CSharp.Entities return true; } - /// - /// Convert an operator method name in to a symbolic name. - /// A return value indicates whether the conversion succeeded. - /// - /// The method name. - /// The converted operator name. - public static bool TryGetOperatorSymbol(string methodName, out string operatorName) - { - var success = true; - switch (methodName) - { - case "op_LogicalNot": - operatorName = "!"; - break; - case "op_BitwiseAnd": - operatorName = "&"; - break; - case "op_Equality": - operatorName = "=="; - break; - case "op_Inequality": - operatorName = "!="; - break; - case "op_UnaryPlus": - case "op_Addition": - operatorName = "+"; - break; - case "op_UnaryNegation": - case "op_Subtraction": - operatorName = "-"; - break; - case "op_Multiply": - operatorName = "*"; - break; - case "op_Division": - operatorName = "/"; - break; - case "op_Modulus": - operatorName = "%"; - break; - case "op_GreaterThan": - operatorName = ">"; - break; - case "op_GreaterThanOrEqual": - operatorName = ">="; - break; - case "op_LessThan": - operatorName = "<"; - break; - case "op_LessThanOrEqual": - operatorName = "<="; - break; - case "op_Decrement": - operatorName = "--"; - break; - case "op_Increment": - operatorName = "++"; - break; - case "op_Implicit": - operatorName = "implicit conversion"; - break; - case "op_Explicit": - operatorName = "explicit conversion"; - break; - case "op_OnesComplement": - operatorName = "~"; - break; - case "op_RightShift": - operatorName = ">>"; - break; - case "op_UnsignedRightShift": - operatorName = ">>>"; - break; - case "op_LeftShift": - operatorName = "<<"; - break; - case "op_BitwiseOr": - operatorName = "|"; - break; - case "op_ExclusiveOr": - operatorName = "^"; - break; - case "op_True": - operatorName = "true"; - break; - case "op_False": - operatorName = "false"; - break; - default: - var match = Regex.Match(methodName, "^op_Checked(.*)$"); - if (match.Success) - { - TryGetOperatorSymbol("op_" + match.Groups[1], out var uncheckedName); - operatorName = "checked " + uncheckedName; - break; - } - operatorName = methodName; - success = false; - break; - } - return success; - } + /// /// Converts a method name into a symbolic name. @@ -191,12 +90,8 @@ namespace Semmle.Extraction.CSharp.Entities /// The converted name. private static string OperatorSymbol(Context cx, IMethodSymbol method) { - if (method.ExplicitInterfaceImplementations.Any()) - return OperatorSymbol(cx, method.ExplicitInterfaceImplementations.First()); - - var methodName = method.Name; - if (!TryGetOperatorSymbol(methodName, out var result)) - cx.ModelError(method, $"Unhandled operator name in OperatorSymbol(): '{methodName}'"); + if (!method.TryGetOperatorSymbol(out var result)) + cx.ModelError(method, $"Unhandled operator name in OperatorSymbol(): '{method.Name}'"); return result; } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Populators/DirectiveVisitor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Populators/DirectiveVisitor.cs index 0751be3191c..b80d5175a8d 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Populators/DirectiveVisitor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Populators/DirectiveVisitor.cs @@ -59,7 +59,7 @@ namespace Semmle.Extraction.CSharp.Populators if (regionStarts.Count == 0) { cx.ExtractionError("Couldn't find start region", null, - cx.CreateLocation(node.GetLocation()), null, Util.Logging.Severity.Warning); + cx.CreateLocation(node.GetLocation()), null, Semmle.Util.Logging.Severity.Warning); return; } @@ -94,7 +94,7 @@ namespace Semmle.Extraction.CSharp.Populators if (ifStarts.Count == 0) { cx.ExtractionError("Couldn't find start if", null, - cx.CreateLocation(node.GetLocation()), null, Util.Logging.Severity.Warning); + cx.CreateLocation(node.GetLocation()), null, Semmle.Util.Logging.Severity.Warning); return; } @@ -107,7 +107,7 @@ namespace Semmle.Extraction.CSharp.Populators if (ifStarts.Count == 0) { cx.ExtractionError("Couldn't find start if", null, - cx.CreateLocation(node.GetLocation()), null, Util.Logging.Severity.Warning); + cx.CreateLocation(node.GetLocation()), null, Semmle.Util.Logging.Severity.Warning); return; } @@ -122,7 +122,7 @@ namespace Semmle.Extraction.CSharp.Populators if (ifStarts.Count == 0) { cx.ExtractionError("Couldn't find start if", null, - cx.CreateLocation(node.GetLocation()), null, Util.Logging.Severity.Warning); + cx.CreateLocation(node.GetLocation()), null, Semmle.Util.Logging.Severity.Warning); return; } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj b/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj index a06a1df38f2..f274b8ff97e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj +++ b/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj @@ -6,12 +6,12 @@ false true win-x64;linux-x64;osx-x64 - win-x64;linux-x64;osx-x64 enable + diff --git a/csharp/extractor/Semmle.Extraction.CSharp/SymbolExtensions.cs b/csharp/extractor/Semmle.Extraction.CSharp/SymbolExtensions.cs index 901d699c2a8..03932e4cd0d 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/SymbolExtensions.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/SymbolExtensions.cs @@ -55,19 +55,6 @@ namespace Semmle.Extraction.CSharp : type; } - /// - /// Gets the name of this symbol. - /// - /// If the symbol implements an explicit interface, only the - /// name of the member being implemented is included, not the - /// explicit prefix. - /// - public static string GetName(this ISymbol symbol, bool useMetadataName = false) - { - var name = useMetadataName ? symbol.MetadataName : symbol.Name; - return symbol.CanBeReferencedByName ? name : name.Substring(symbol.Name.LastIndexOf('.') + 1); - } - private static IEnumerable GetModifiers(this ISymbol symbol, Func> getModifierTokens) => symbol.DeclaringSyntaxReferences .Select(r => r.GetSyntax()) From e021fb46c8f704c810821dd1677dc88ecda7702c Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 20 Sep 2023 11:24:05 +0200 Subject: [PATCH 573/788] C#: Roslyn based stub generation --- csharp/CSharp.sln | 12 + .../Program.cs | 9 + ...tion.CSharp.DependencyStubGenerator.csproj | 18 + ...mle.Extraction.CSharp.StubGenerator.csproj | 18 + .../StubGenerator.cs | 84 ++ .../StubVisitor.cs | 835 ++++++++++++++++++ .../SymbolExtensions.cs | 9 + csharp/extractor/Semmle.Util/MemoizedFunc.cs | 48 + 8 files changed, 1033 insertions(+) create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Program.cs create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/Semmle.Extraction.CSharp.StubGenerator.csproj create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/SymbolExtensions.cs create mode 100644 csharp/extractor/Semmle.Util/MemoizedFunc.cs diff --git a/csharp/CSharp.sln b/csharp/CSharp.sln index fb71dacc3fe..3c9f3ef4e4f 100644 --- a/csharp/CSharp.sln +++ b/csharp/CSharp.sln @@ -14,6 +14,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.De EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Standalone", "extractor\Semmle.Extraction.CSharp.Standalone\Semmle.Extraction.CSharp.Standalone.csproj", "{D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.StubGenerator", "extractor\Semmle.Extraction.CSharp.StubGenerator\Semmle.Extraction.CSharp.StubGenerator.csproj", "{B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Util", "extractor\Semmle.Extraction.CSharp.Util\Semmle.Extraction.CSharp.Util.csproj", "{998A0D4C-8BFC-4513-A28D-4816AFB89882}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CIL.Driver", "extractor\Semmle.Extraction.CIL.Driver\Semmle.Extraction.CIL.Driver.csproj", "{EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}" @@ -30,6 +32,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.CSharp", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.CSharp.Tests", "autobuilder\Semmle.Autobuild.CSharp.Tests\Semmle.Autobuild.CSharp.Tests.csproj", "{34256E8F-866A-46C1-800E-3DF69FD1DCB7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Extraction.CSharp.DependencyStubGenerator", "extractor\Semmle.Extraction.CSharp.DependencyStubGenerator\Semmle.Extraction.CSharp.DependencyStubGenerator.csproj", "{0EDA21A3-ADD8-4C10-B494-58B12B526B76}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -90,6 +94,14 @@ Global {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Debug|Any CPU.Build.0 = Debug|Any CPU {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Release|Any CPU.ActiveCfg = Release|Any CPU {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Release|Any CPU.Build.0 = Release|Any CPU + {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Debug|Any CPU.Build.0 = Debug|Any CPU + {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Release|Any CPU.ActiveCfg = Release|Any CPU + {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Release|Any CPU.Build.0 = Release|Any CPU + {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Program.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Program.cs new file mode 100644 index 00000000000..7155e8ddc81 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Program.cs @@ -0,0 +1,9 @@ +using Semmle.Extraction.CSharp.DependencyFetching; +using Semmle.Extraction.CSharp.StubGenerator; +using Semmle.Util.Logging; + +var logger = new ConsoleLogger(Verbosity.Info); +using var dependencyManager = new DependencyManager(".", DependencyOptions.Default, logger); +StubGenerator.GenerateStubs(logger, dependencyManager.ReferenceFiles, "codeql_csharp_stubs"); + +return 0; diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj b/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj new file mode 100644 index 00000000000..2274d26be65 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj @@ -0,0 +1,18 @@ + + + + Exe + net7.0 + Semmle.Extraction.CSharp.DependencyStubGenerator + Semmle.Extraction.CSharp.DependencyStubGenerator + enable + enable + + + + + + + + + diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/Semmle.Extraction.CSharp.StubGenerator.csproj b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/Semmle.Extraction.CSharp.StubGenerator.csproj new file mode 100644 index 00000000000..1fc85eaa5de --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/Semmle.Extraction.CSharp.StubGenerator.csproj @@ -0,0 +1,18 @@ + + + net7.0 + Semmle.Extraction.CSharp.StubGenerator + Semmle.Extraction.CSharp.StubGenerator + false + win-x64;linux-x64;osx-x64 + enable + + + + + + + + + + \ No newline at end of file diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs new file mode 100644 index 00000000000..64ffc0e9a7b --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Semmle.Util; +using Semmle.Util.Logging; + +namespace Semmle.Extraction.CSharp.StubGenerator; + +public static class StubGenerator +{ + /// + /// Generates stubs for all the provided assembly paths. + /// + /// The paths of the assemblies to generate stubs for. + /// The path in which to store the stubs. + public static void GenerateStubs(ILogger logger, IEnumerable referencesPaths, string outputPath) + { + var stopWatch = new System.Diagnostics.Stopwatch(); + stopWatch.Start(); + + var threads = EnvironmentVariables.GetDefaultNumberOfThreads(); + + using var references = new BlockingCollection<(MetadataReference Reference, string Path)>(); + var referenceResolveTasks = GetResolvedReferenceTasks(referencesPaths, references); + + Parallel.Invoke( + new ParallelOptions { MaxDegreeOfParallelism = threads }, + referenceResolveTasks.ToArray()); + + logger.Log(Severity.Info, $"Generating stubs for {references.Count} assemblies."); + + var compilation = CSharpCompilation.Create( + "stubgenerator.dll", + null, + references.Select(tuple => tuple.Item1), + new CSharpCompilationOptions(OutputKind.ConsoleApplication, allowUnsafe: true)); + + var referenceStubTasks = references.Select(@ref => (Action)(() => StubReference(compilation, outputPath, @ref.Reference, @ref.Path))); + Parallel.Invoke( + new ParallelOptions { MaxDegreeOfParallelism = threads }, + referenceStubTasks.ToArray()); + + stopWatch.Stop(); + logger.Log(Severity.Info, $"Stub generation took {stopWatch.Elapsed}."); + } + + private static IEnumerable GetResolvedReferenceTasks(IEnumerable referencePaths, BlockingCollection<(MetadataReference, string)> references) + { + return referencePaths.Select(path => () => + { + var reference = MetadataReference.CreateFromFile(path); + references.Add((reference, path)); + }); + } + + private static void StubReference(CSharpCompilation compilation, string outputPath, MetadataReference reference, string path) + { + if (compilation.GetAssemblyOrModuleSymbol(reference) is IAssemblySymbol assembly) + { + var logger = new ConsoleLogger(Verbosity.Info); + using var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write); + using var writer = new StreamWriter(fileStream, new UTF8Encoding(false)); + + writer.WriteLine("// This file contains auto-generated code."); + writer.WriteLine($"// Generated from `{assembly.Identity}`."); + + var visitor = new StubVisitor(assembly, writer); + + visitor.StubAttributes(assembly.GetAttributes(), "assembly: "); + + foreach (var module in assembly.Modules) + { + module.GlobalNamespace.Accept(new StubVisitor(assembly, writer)); + } + } + } +} + diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs new file mode 100644 index 00000000000..6cb93eb65b9 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs @@ -0,0 +1,835 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using Microsoft.CodeAnalysis; +using Semmle.Extraction.CSharp.Util; +using Semmle.Util; + +namespace Semmle.Extraction.CSharp.StubGenerator; + +internal sealed class StubVisitor : SymbolVisitor +{ + private readonly IAssemblySymbol assembly; + private readonly TextWriter stubWriter; + private readonly MemoizedFunc isRelevantNamespace; + + public StubVisitor(IAssemblySymbol assembly, TextWriter stubWriter) + { + this.assembly = assembly; + this.stubWriter = stubWriter; + this.isRelevantNamespace = new(symbol => + symbol.GetTypeMembers().Any(IsRelevantNamedType) || + symbol.GetNamespaceMembers().Any(IsRelevantNamespace)); + } + + private static bool IsNotPublic(Accessibility accessibility) => + accessibility == Accessibility.Private || + accessibility == Accessibility.Internal || + accessibility == Accessibility.ProtectedAndInternal; + + private static bool IsRelevantBaseType(INamedTypeSymbol symbol) => + !IsNotPublic(symbol.DeclaredAccessibility) && + symbol.CanBeReferencedByName; + + private bool IsRelevantNamedType(INamedTypeSymbol symbol) => + IsRelevantBaseType(symbol) && + SymbolEqualityComparer.Default.Equals(symbol.ContainingAssembly, assembly); + + private bool IsRelevantNamespace(INamespaceSymbol symbol) => isRelevantNamespace[symbol]; + + private void StubExplicitInterface(ISymbol symbol, ISymbol? explicitInterfaceSymbol, bool writeName = true) + { + static bool ContainsTupleType(ITypeSymbol type) => + type is INamedTypeSymbol named && (named.IsTupleType || named.TypeArguments.Any(ContainsTupleType)) || + type is IArrayTypeSymbol array && ContainsTupleType(array.ElementType) || + type is IPointerTypeSymbol pointer && ContainsTupleType(pointer.PointedAtType); + + static bool EqualsModuloTupleElementNames(ITypeSymbol t1, ITypeSymbol t2) => + SymbolEqualityComparer.Default.Equals(t1, t2) || + ( + t1 is INamedTypeSymbol named1 && + t2 is INamedTypeSymbol named2 && + EqualsModuloTupleElementNames(named1.ConstructedFrom, named2.ConstructedFrom) && + named1.TypeArguments.Length == named2.TypeArguments.Length && + named1.TypeArguments.Zip(named2.TypeArguments).All(p => EqualsModuloTupleElementNames(p.First, p.Second)) + ) || + ( + t1 is IArrayTypeSymbol array1 && + t2 is IArrayTypeSymbol array2 && + EqualsModuloTupleElementNames(array1.ElementType, array2.ElementType) + ) || + ( + t1 is IPointerTypeSymbol pointer1 && + t2 is IPointerTypeSymbol pointer2 && + EqualsModuloTupleElementNames(pointer1.PointedAtType, pointer2.PointedAtType) + ); + + if (explicitInterfaceSymbol is not null) + { + var explicitInterfaceType = explicitInterfaceSymbol.ContainingType; + + // Workaround for when the explicit interface type contains named tuple types, + // in which case Roslyn may incorrectly forget the names of the tuple elements. + // + // For example, without this workaround we would incorrectly generate the following stub: + // + // ```csharp + // public sealed class UnorderedItemsCollection : System.Collections.Generic.IEnumerable<(TElement Element, TPriority Priority)>, ... + // { + // System.Collections.Generic.IEnumerator<(TElement Element, TPriority Priority)> System.Collections.Generic.IEnumerable<(TElement, TPriority)>.GetEnumerator() => throw null; + // } + // ``` + if (ContainsTupleType(explicitInterfaceType)) + { + explicitInterfaceType = symbol.ContainingType.Interfaces.First(i => ContainsTupleType(i) && EqualsModuloTupleElementNames(i, explicitInterfaceSymbol.ContainingType)); + } + + stubWriter.Write(explicitInterfaceType.GetQualifiedName()); + stubWriter.Write('.'); + if (writeName) + stubWriter.Write(explicitInterfaceSymbol.GetName()); + } + else if (writeName) + { + stubWriter.Write(symbol.GetName()); + } + } + + private void StubAccessibility(Accessibility accessibility) + { + switch (accessibility) + { + case Accessibility.Public: + stubWriter.Write("public "); + break; + case Accessibility.Protected or Accessibility.ProtectedOrInternal: + stubWriter.Write("protected "); + break; + case Accessibility.Internal: + stubWriter.Write("internal "); + break; + case Accessibility.ProtectedAndInternal or Accessibility.ProtectedOrInternal: + stubWriter.Write("protected internal "); + break; + default: + stubWriter.Write($"/* TODO: {accessibility} */"); + break; + } + } + + private void StubModifiers(ISymbol symbol, bool skipAccessibility = false) + { + if (symbol.ContainingType is ITypeSymbol containing && containing.TypeKind == TypeKind.Interface) + skipAccessibility = true; + + if (symbol is IMethodSymbol method && method.MethodKind == MethodKind.Constructor && symbol.IsStatic) + skipAccessibility = true; + + if (!skipAccessibility) + StubAccessibility(symbol.DeclaredAccessibility); + + if (symbol.IsAbstract) + { + if ( + // exclude interface declarations + (symbol is not INamedTypeSymbol type || type.TypeKind != TypeKind.Interface) && + // exclude non-static interface members + (symbol.ContainingType is not INamedTypeSymbol containingType || containingType.TypeKind != TypeKind.Interface || symbol.IsStatic)) + { + stubWriter.Write("abstract "); + } + } + + if (symbol.IsStatic) + stubWriter.Write("static "); + if (symbol.IsVirtual) + stubWriter.Write("virtual "); + if (symbol.IsOverride) + stubWriter.Write("override "); + if (symbol.IsSealed) + { + if (!(symbol is INamedTypeSymbol type && (type.TypeKind == TypeKind.Enum || type.TypeKind == TypeKind.Delegate || type.TypeKind == TypeKind.Struct))) + stubWriter.Write("sealed "); + } + if (symbol.IsExtern) + stubWriter.Write("extern "); + } + + public void StubTypedConstant(TypedConstant c) + { + switch (c.Kind) + { + case TypedConstantKind.Primitive: + if (c.Value is string s) + { + stubWriter.Write($"\"{s}\""); + } + else if (c.Value is char ch) + { + stubWriter.Write($"'{ch}'"); + } + else if (c.Value is bool b) + { + stubWriter.Write(b ? "true" : "false"); + } + else if (c.Value is int i) + { + stubWriter.Write(i); + } + else if (c.Value is long l) + { + stubWriter.Write(l); + } + else if (c.Value is float f) + { + stubWriter.Write(f); + } + else if (c.Value is double d) + { + stubWriter.Write(d); + } + else + { + stubWriter.Write("throw null"); + } + break; + case TypedConstantKind.Enum: + stubWriter.Write("throw null"); + break; + case TypedConstantKind.Array: + stubWriter.Write("new []{"); + WriteCommaSep(c.Values, StubTypedConstant); + stubWriter.Write("}"); + break; + default: + stubWriter.Write($"/* TODO: {c.Kind} */ throw null"); + break; + } + } + + private static readonly HashSet attributeAllowList = new() { + "System.FlagsAttribute" + }; + + private void StubAttribute(AttributeData a, string prefix) + { + if (a.AttributeClass is not INamedTypeSymbol @class) + return; + + var qualifiedName = @class.GetQualifiedName(); + if (!attributeAllowList.Contains(qualifiedName)) + return; + + stubWriter.Write($"[{prefix}{qualifiedName.AsSpan(0, @class.GetQualifiedName().Length - 9)}"); + if (a.ConstructorArguments.Any()) + { + stubWriter.Write("("); + WriteCommaSep(a.ConstructorArguments, StubTypedConstant); + stubWriter.Write(")"); + } + stubWriter.WriteLine("]"); + } + + public void StubAttributes(IEnumerable a, string prefix = "") + { + foreach (var attribute in a) + { + StubAttribute(attribute, prefix); + } + } + + private void StubEvent(IEventSymbol symbol, IEventSymbol? explicitInterfaceSymbol) + { + StubAttributes(symbol.GetAttributes()); + + StubModifiers(symbol, explicitInterfaceSymbol is not null); + stubWriter.Write("event "); + stubWriter.Write(symbol.Type.GetQualifiedName()); + stubWriter.Write(" "); + + StubExplicitInterface(symbol, explicitInterfaceSymbol); + + stubWriter.Write(" { "); + if (symbol.AddMethod is not null) + stubWriter.Write("add {} "); + if (symbol.RemoveMethod is not null) + stubWriter.Write("remove {} "); + stubWriter.WriteLine("}"); + } + + private static T[] FilterExplicitInterfaceImplementations(IEnumerable explicitInterfaceImplementations) where T : ISymbol => + explicitInterfaceImplementations.Where(i => IsRelevantBaseType(i.ContainingType)).ToArray(); + + public override void VisitEvent(IEventSymbol symbol) + { + var explicitInterfaceImplementations = FilterExplicitInterfaceImplementations(symbol.ExplicitInterfaceImplementations); + + if (IsNotPublic(symbol.DeclaredAccessibility) && explicitInterfaceImplementations.Length == 0) + return; + + foreach (var explicitInterfaceSymbol in explicitInterfaceImplementations) + { + StubEvent(symbol, explicitInterfaceSymbol); + } + + if (explicitInterfaceImplementations.Length == 0) + StubEvent(symbol, null); + } + + private static bool IsUnsafe(ITypeSymbol symbol) => + symbol.TypeKind == TypeKind.Pointer || + symbol.TypeKind == TypeKind.FunctionPointer || + (symbol is INamedTypeSymbol named && named.TypeArguments.Any(IsUnsafe)) || + (symbol is IArrayTypeSymbol at && IsUnsafe(at.ElementType)); + + private static readonly HashSet keywords = new() { + "abstract", "as", "base", "bool", "break", "byte", "case", "catch", "char", "checked", + "class", "const", "continue", "decimal", "default", "delegate", "do", "double", "else", + "enum", "event", "explicit", "extern", "false", "finally", "fixed", "float", "for", "foreach", + "goto", "if", "implicit", "in", "int", "interface", "internal", "is", "lock", "long", + "namespace", "new", "null", "object", "operator", "out", "override", "params", "private", + "protected", "public", "readonly", "ref", "return", "sbyte", "sealed", "short", "sizeof", + "stackalloc", "static", "string", "struct", "switch", "this", "throw", "true", "try", + "typeof", "uint", "ulong", "unchecked", "unsafe", "ushort", "using", "virtual", "void", + "volatile", "while" + }; + + private static string EscapeIdentifier(string identifier) + { + if (keywords.Contains(identifier)) + return "@" + identifier; + return identifier; + } + + public override void VisitField(IFieldSymbol symbol) + { + if (IsNotPublic(symbol.DeclaredAccessibility)) + return; + + StubAttributes(symbol.GetAttributes()); + + StubModifiers(symbol); + + if (IsUnsafe(symbol.Type)) + { + stubWriter.Write("unsafe "); + } + + stubWriter.Write(symbol.Type.GetQualifiedName()); + stubWriter.Write(" "); + stubWriter.Write(EscapeIdentifier(symbol.Name)); + stubWriter.WriteLine(";"); + } + + private void WriteCommaSep(IEnumerable items, Action writeItem) + { + var first = true; + foreach (var item in items) + { + if (!first) + { + stubWriter.Write(", "); + } + writeItem(item); + first = false; + } + } + + private void WriteStringCommaSep(IEnumerable items, Func writeItem) + { + WriteCommaSep(items, item => stubWriter.Write(writeItem(item))); + } + + private void StubTypeParameters(IEnumerable typeParameters) + { + if (!typeParameters.Any()) + return; + + stubWriter.Write('<'); + WriteStringCommaSep(typeParameters, typeParameter => typeParameter.Name); + stubWriter.Write('>'); + } + + private void StubTypeParameterConstraints(IEnumerable typeParameters) + { + if (!typeParameters.Any()) + return; + + var inheritsConstraints = typeParameters.Any(tp => + tp.DeclaringMethod is IMethodSymbol method && + (method.IsOverride || method.ExplicitInterfaceImplementations.Any())); + + foreach (var typeParameter in typeParameters) + { + var firstTypeParameterConstraint = true; + + void WriteTypeParameterConstraint(Action a) + { + if (firstTypeParameterConstraint) + { + stubWriter.Write($" where {typeParameter.Name} : "); + } + else + { + stubWriter.Write(", "); + } + a(); + firstTypeParameterConstraint = false; + } + + if (typeParameter.HasReferenceTypeConstraint) + { + WriteTypeParameterConstraint(() => stubWriter.Write("class")); + } + + if (typeParameter.HasValueTypeConstraint && + !typeParameter.HasUnmanagedTypeConstraint && + !typeParameter.ConstraintTypes.Any(t => t.GetQualifiedName() is "System.Enum")) + { + WriteTypeParameterConstraint(() => stubWriter.Write("struct")); + } + + if (inheritsConstraints) + continue; + + if (typeParameter.HasUnmanagedTypeConstraint) + { + WriteTypeParameterConstraint(() => stubWriter.Write("unmanaged")); + } + + var constraintTypes = typeParameter.ConstraintTypes.Select(t => t.GetQualifiedName()).Where(s => s is not "").ToArray(); + if (constraintTypes.Any()) + { + WriteTypeParameterConstraint(() => + { + WriteStringCommaSep(constraintTypes, constraintType => constraintType); + }); + } + + if (typeParameter.HasConstructorConstraint) + { + WriteTypeParameterConstraint(() => stubWriter.Write("new()")); + } + } + } + + private static INamedTypeSymbol? GetBaseType(INamedTypeSymbol symbol) + { + if (symbol.BaseType is INamedTypeSymbol @base && + @base.SpecialType != SpecialType.System_Object && + @base.SpecialType != SpecialType.System_ValueType) + { + return @base; + } + + return null; + } + + private static IMethodSymbol? GetBaseConstructor(INamedTypeSymbol symbol) + { + if (GetBaseType(symbol) is not INamedTypeSymbol @base) + return null; + + var containingTypes = new HashSet(SymbolEqualityComparer.Default); + var current = symbol; + while (current is not null) + { + containingTypes.Add(current); + current = current.ContainingType; + } + + var baseCtor = @base.Constructors. + Where(c => !c.IsStatic). + Where(c => + c.DeclaredAccessibility == Accessibility.Public || + c.DeclaredAccessibility == Accessibility.Protected || + c.DeclaredAccessibility == Accessibility.ProtectedOrInternal || + containingTypes.Contains(c.ContainingType) + ). + OrderBy(c => c.Parameters.Length).FirstOrDefault(); + + return baseCtor?.Parameters.Length > 0 ? baseCtor : null; + } + + private static IMethodSymbol? GetBaseConstructor(IMethodSymbol ctor) + { + if (ctor.MethodKind != MethodKind.Constructor) + return null; + + return GetBaseConstructor(ctor.ContainingType); + } + + private void StubParameters(ICollection parameters) + { + WriteCommaSep(parameters, parameter => + { + switch (parameter.RefKind) + { + case RefKind.None: + break; + case RefKind.Ref: + stubWriter.Write("ref "); + break; + case RefKind.Out: + stubWriter.Write("out "); + break; + case RefKind.In: + stubWriter.Write("in "); + break; + default: + stubWriter.Write($"/* TODO: {parameter.RefKind} */"); + break; + } + + if (parameter.IsParams) + stubWriter.Write("params "); + + stubWriter.Write(parameter.Type.GetQualifiedName()); + stubWriter.Write(" "); + stubWriter.Write(EscapeIdentifier(parameter.Name)); + + if (parameter.HasExplicitDefaultValue) + { + stubWriter.Write(" = "); + stubWriter.Write($"default({parameter.Type.GetQualifiedName()})"); + } + }); + } + + private void StubMethod(IMethodSymbol symbol, IMethodSymbol? explicitInterfaceSymbol, IMethodSymbol? baseCtor) + { + var methodKind = explicitInterfaceSymbol is null ? symbol.MethodKind : explicitInterfaceSymbol.MethodKind; + + var relevantMethods = new[] { + MethodKind.Constructor, + MethodKind.Conversion, + MethodKind.UserDefinedOperator, + MethodKind.Ordinary + }; + + if (!relevantMethods.Contains(methodKind)) + return; + + StubAttributes(symbol.GetAttributes()); + + StubModifiers(symbol, explicitInterfaceSymbol is not null); + + if (IsUnsafe(symbol.ReturnType) || symbol.Parameters.Any(p => IsUnsafe(p.Type))) + { + stubWriter.Write("unsafe "); + } + + if (explicitInterfaceSymbol is null && symbol.DeclaredAccessibility == Accessibility.Private) + { + stubWriter.Write("public "); + } + + if (methodKind == MethodKind.Constructor) + { + stubWriter.Write(symbol.ContainingType.Name); + } + else if (methodKind == MethodKind.Conversion) + { + if (!symbol.TryGetOperatorSymbol(out var operatorName)) + { + stubWriter.WriteLine($"/* TODO: {symbol.Name} */"); + return; + } + + switch (operatorName) + { + case "explicit conversion": + stubWriter.Write("explicit operator "); + break; + case "checked explicit conversion": + stubWriter.Write("explicit operator checked "); + break; + case "implicit conversion": + stubWriter.Write("implicit operator "); + break; + case "checked implicit conversion": + stubWriter.Write("implicit operator checked "); + break; + default: + stubWriter.Write($"/* TODO: {symbol.Name} */"); + break; + } + + stubWriter.Write(symbol.ReturnType.GetQualifiedName()); + } + else if (methodKind == MethodKind.UserDefinedOperator) + { + if (!symbol.TryGetOperatorSymbol(out var operatorName)) + { + stubWriter.WriteLine($"/* TODO: {symbol.Name} */"); + return; + } + + stubWriter.Write(symbol.ReturnType.GetQualifiedName()); + stubWriter.Write(" "); + StubExplicitInterface(symbol, explicitInterfaceSymbol, writeName: false); + stubWriter.Write("operator "); + stubWriter.Write(operatorName); + } + else + { + stubWriter.Write(symbol.ReturnType.GetQualifiedName()); + stubWriter.Write(" "); + StubExplicitInterface(symbol, explicitInterfaceSymbol); + StubTypeParameters(symbol.TypeParameters); + } + + stubWriter.Write("("); + + if (symbol.IsExtensionMethod) + { + stubWriter.Write("this "); + } + + StubParameters(symbol.Parameters); + + stubWriter.Write(")"); + + if (baseCtor is not null) + { + stubWriter.Write(" : base("); + WriteStringCommaSep(baseCtor.Parameters, parameter => $"default({parameter.Type.GetQualifiedName()})"); + stubWriter.Write(")"); + } + + StubTypeParameterConstraints(symbol.TypeParameters); + + if (symbol.IsAbstract) + stubWriter.WriteLine(";"); + else + stubWriter.WriteLine(" => throw null;"); + } + + public override void VisitMethod(IMethodSymbol symbol) + { + var baseCtor = GetBaseConstructor(symbol); + var explicitInterfaceImplementations = FilterExplicitInterfaceImplementations(symbol.ExplicitInterfaceImplementations); + + if (baseCtor is null && + ((IsNotPublic(symbol.DeclaredAccessibility) && explicitInterfaceImplementations.Length == 0) || + symbol.IsImplicitlyDeclared)) + { + return; + } + + foreach (var explicitInterfaceSymbol in explicitInterfaceImplementations) + { + StubMethod(symbol, explicitInterfaceSymbol, baseCtor); + } + + // Roslyn reports certain methods to be only explicit interface methods, such as + // `System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out int result)` + // in the `System.Int32` struct. However, we also need a non-explicit implementation + // in order for things to compile. + var roslynExplicitInterfaceWorkaround = + symbol.ContainingType.GetQualifiedName() is "int" && + explicitInterfaceImplementations.Any(i => i.ContainingType.GetQualifiedName() is "System.Numerics.INumberBase"); + + if (explicitInterfaceImplementations.Length == 0 || roslynExplicitInterfaceWorkaround) + StubMethod(symbol, null, baseCtor); + } + + public override void VisitNamedType(INamedTypeSymbol symbol) + { + if (!IsRelevantNamedType(symbol)) + { + return; + } + + if (symbol.TypeKind == TypeKind.Delegate) + { + var invokeMethod = symbol.DelegateInvokeMethod!; + StubAttributes(symbol.GetAttributes()); + StubModifiers(symbol); + + if (IsUnsafe(invokeMethod.ReturnType) || invokeMethod.Parameters.Any(p => IsUnsafe(p.Type))) + { + stubWriter.Write("unsafe "); + } + + stubWriter.Write("delegate "); + stubWriter.Write(invokeMethod.ReturnType.GetQualifiedName()); + stubWriter.Write($" {symbol.Name}"); + StubTypeParameters(symbol.TypeParameters); + stubWriter.Write("("); + StubParameters(invokeMethod.Parameters); + stubWriter.Write(")"); + StubTypeParameterConstraints(symbol.TypeParameters); + stubWriter.WriteLine(";"); + return; + } + + switch (symbol.TypeKind) + { + case TypeKind.Class: + StubAttributes(symbol.GetAttributes()); + StubModifiers(symbol); + // certain classes, such as `Microsoft.Extensions.Logging.LoggingBuilderExtensions` + // exist in multiple assemblies, so make them partial + if (symbol.IsStatic && symbol.Name.EndsWith("Extensions")) + stubWriter.Write("partial "); + stubWriter.Write("class "); + break; + case TypeKind.Enum: + StubAttributes(symbol.GetAttributes()); + StubModifiers(symbol); + stubWriter.Write("enum "); + break; + case TypeKind.Interface: + StubAttributes(symbol.GetAttributes()); + StubModifiers(symbol); + stubWriter.Write("interface "); + break; + case TypeKind.Struct: + StubAttributes(symbol.GetAttributes()); + StubModifiers(symbol); + stubWriter.Write("struct "); + break; + default: + return; + } + + stubWriter.Write(symbol.Name); + + StubTypeParameters(symbol.TypeParameters); + + if (symbol.TypeKind == TypeKind.Enum) + { + if (symbol.EnumUnderlyingType is INamedTypeSymbol enumBase && enumBase.SpecialType != SpecialType.System_Int32) + { + stubWriter.Write(" : "); + stubWriter.Write(enumBase.GetQualifiedName()); + } + } + else + { + var bases = symbol.Interfaces.Where(IsRelevantBaseType).ToList(); + if (GetBaseType(symbol) is INamedTypeSymbol @base && IsRelevantBaseType(@base)) + { + bases.Insert(0, @base); + } + + if (bases.Any()) + { + stubWriter.Write(" : "); + WriteStringCommaSep(bases, b => b.GetQualifiedName()); + } + } + + StubTypeParameterConstraints(symbol.TypeParameters); + + stubWriter.WriteLine(" {"); + + if (symbol.TypeKind == TypeKind.Enum) + { + foreach (var field in symbol.GetMembers().OfType().Where(field => field.ConstantValue is not null)) + { + stubWriter.Write(field.Name); + stubWriter.Write(" = "); + stubWriter.Write(field.ConstantValue); + stubWriter.WriteLine(","); + } + } + else + { + var seenCtor = false; + foreach (var childSymbol in symbol.GetMembers()) + { + seenCtor |= childSymbol is IMethodSymbol method && method.MethodKind == MethodKind.Constructor; + childSymbol.Accept(this); + } + + if (!seenCtor && GetBaseConstructor(symbol) is IMethodSymbol baseCtor) + { + stubWriter.Write($"internal {symbol.Name}() : base("); + WriteStringCommaSep(baseCtor.Parameters, parameter => $"default({parameter.Type.GetQualifiedName()})"); + stubWriter.WriteLine(") {}"); + } + } + + stubWriter.WriteLine("}"); + } + + public override void VisitNamespace(INamespaceSymbol symbol) + { + if (!IsRelevantNamespace(symbol)) + { + return; + } + + var isGlobal = symbol.IsGlobalNamespace; + + if (!isGlobal) + stubWriter.WriteLine($"namespace {symbol.Name} {{"); + + foreach (var childSymbol in symbol.GetMembers()) + { + childSymbol.Accept(this); + } + + if (!isGlobal) + stubWriter.WriteLine("}"); + } + + private void StubProperty(IPropertySymbol symbol, IPropertySymbol? explicitInterfaceSymbol) + { + if (symbol.Parameters.Any()) + { + var name = symbol.GetName(useMetadataName: true); + if (name is not "Item" && explicitInterfaceSymbol is null) + stubWriter.WriteLine($"[System.Runtime.CompilerServices.IndexerName(\"{name}\")]"); + } + + StubAttributes(symbol.GetAttributes()); + StubModifiers(symbol, explicitInterfaceSymbol is not null); + + if (IsUnsafe(symbol.Type) || symbol.Parameters.Any(p => IsUnsafe(p.Type))) + { + stubWriter.Write("unsafe "); + } + + stubWriter.Write(symbol.Type.GetQualifiedName()); + stubWriter.Write(" "); + + if (symbol.Parameters.Any()) + { + StubExplicitInterface(symbol, explicitInterfaceSymbol, writeName: false); + stubWriter.Write("this["); + StubParameters(symbol.Parameters); + stubWriter.Write("]"); + } + else + { + StubExplicitInterface(symbol, explicitInterfaceSymbol); + } + + stubWriter.Write(" { "); + if (symbol.GetMethod is not null) + stubWriter.Write(symbol.IsAbstract ? "get; " : "get => throw null; "); + if (symbol.SetMethod is not null) + stubWriter.Write(symbol.IsAbstract ? "set; " : "set {} "); + stubWriter.WriteLine("}"); + } + + public override void VisitProperty(IPropertySymbol symbol) + { + var explicitInterfaceImplementations = FilterExplicitInterfaceImplementations(symbol.ExplicitInterfaceImplementations); + + if (IsNotPublic(symbol.DeclaredAccessibility) && explicitInterfaceImplementations.Length == 0) + return; + + foreach (var explicitInterfaceImplementation in explicitInterfaceImplementations) + { + StubProperty(symbol, explicitInterfaceImplementation); + } + + if (explicitInterfaceImplementations.Length == 0) + StubProperty(symbol, null); + } +} \ No newline at end of file diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/SymbolExtensions.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/SymbolExtensions.cs new file mode 100644 index 00000000000..551dd2c9415 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/SymbolExtensions.cs @@ -0,0 +1,9 @@ +using Microsoft.CodeAnalysis; + +namespace Semmle.Extraction.CSharp.StubGenerator; + +public static class SymbolExtensions +{ + public static string GetQualifiedName(this ISymbol symbol) => + symbol.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat.WithGlobalNamespaceStyle(SymbolDisplayGlobalNamespaceStyle.Omitted)); +} diff --git a/csharp/extractor/Semmle.Util/MemoizedFunc.cs b/csharp/extractor/Semmle.Util/MemoizedFunc.cs new file mode 100644 index 00000000000..1db2c89b1e0 --- /dev/null +++ b/csharp/extractor/Semmle.Util/MemoizedFunc.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Collections.Concurrent; + +namespace Semmle.Util; + +public class MemoizedFunc where T1 : notnull +{ + private readonly Func f; + private readonly Dictionary cache = new(); + + public MemoizedFunc(Func f) + { + this.f = f; + } + + public T2 this[T1 s] + { + get + { + if (!cache.TryGetValue(s, out var t)) + { + t = f(s); + cache[s] = t; + } + return t; + } + } +} + +public class ConcurrentMemoizedFunc where T1 : notnull +{ + private readonly Func f; + private readonly ConcurrentDictionary cache = new(); + + public ConcurrentMemoizedFunc(Func f) + { + this.f = f; + } + + public T2 this[T1 s] + { + get + { + return cache.GetOrAdd(s, f); + } + } +} \ No newline at end of file From 8b2c233b61431bb8c7c97924302b268c330f4c2a Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 24 Aug 2023 11:21:49 +0200 Subject: [PATCH 574/788] C#: Use new stub generator in `make_stubs_nuget.py` --- csharp/ql/src/Stubs/helpers.py | 2 +- csharp/ql/src/Stubs/make_stubs_nuget.py | 55 ++++++++++++------------- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/csharp/ql/src/Stubs/helpers.py b/csharp/ql/src/Stubs/helpers.py index d54a012a98e..5f6034162de 100644 --- a/csharp/ql/src/Stubs/helpers.py +++ b/csharp/ql/src/Stubs/helpers.py @@ -9,7 +9,7 @@ def run_cmd(cmd, msg="Failed to run command"): exit(1) -def run_cmd_cwd(cmd, cwd, msg): +def run_cmd_cwd(cmd, cwd, msg="Failed to run command"): print('Change working directory to: ' + cwd) print('Running ' + ' '.join(cmd)) if subprocess.check_call(cmd, cwd=cwd): diff --git a/csharp/ql/src/Stubs/make_stubs_nuget.py b/csharp/ql/src/Stubs/make_stubs_nuget.py index 09aadc366fc..19d27933baf 100644 --- a/csharp/ql/src/Stubs/make_stubs_nuget.py +++ b/csharp/ql/src/Stubs/make_stubs_nuget.py @@ -18,19 +18,25 @@ def write_csproj_prefix(ioWrapper): print('Script to generate stub file from a nuget package') print(' Usage: python3 ' + sys.argv[0] + - ' NUGET_PACKAGE_NAME [VERSION=latest] [WORK_DIR=tempDir]') + ' TEMPLATE NUGET_PACKAGE_NAME [VERSION=latest] [WORK_DIR=tempDir]') print(' The script uses the dotnet cli, codeql cli, and dotnet format global tool') +print(' TEMPLATE should be either classlib or webapp, depending on the nuget package. For example, `Swashbuckle.AspNetCore.Swagger` should use `webapp` while `newtonsoft.json` should use `classlib`.') if len(sys.argv) < 2: + print("\nPlease supply a template name.") + exit(1) + +if len(sys.argv) < 3: print("\nPlease supply a nuget package name.") exit(1) thisScript = sys.argv[0] thisDir = os.path.abspath(os.path.dirname(thisScript)) -nuget = sys.argv[1] +template = sys.argv[1] +nuget = sys.argv[2] # /input contains a dotnet project that's being extracted -workDir = os.path.abspath(helpers.get_argv(3, "tempDir")) +workDir = os.path.abspath(helpers.get_argv(4, "tempDir")) projectNameIn = "input" projectDirIn = os.path.join(workDir, projectNameIn) @@ -57,10 +63,10 @@ outputName = "stub" outputFile = os.path.join(projectDirOut, outputName + '.cs') bqrsFile = os.path.join(rawOutputDir, outputName + '.bqrs') jsonFile = os.path.join(rawOutputDir, outputName + '.json') -version = helpers.get_argv(2, "latest") +version = helpers.get_argv(3, "latest") print("\n* Creating new input project") -run_cmd(['dotnet', 'new', 'classlib', "-f", "net7.0", "--language", "C#", '--name', +run_cmd(['dotnet', 'new', template, "-f", "net7.0", "--language", "C#", '--name', projectNameIn, '--output', projectDirIn]) helpers.remove_files(projectDirIn, '.cs') @@ -75,36 +81,27 @@ sdk_version = '7.0.102' print("\n* Creating new global.json file and setting SDK to " + sdk_version) run_cmd(['dotnet', 'new', 'globaljson', '--force', '--sdk-version', sdk_version, '--output', workDir]) -print("\n* Creating DB") -run_cmd(['codeql', 'database', 'create', dbDir, '--language=csharp', - '--command', 'dotnet build /t:rebuild ' + projectDirIn]) - -if not os.path.isdir(dbDir): - print("Expected database directory " + dbDir + " not found.") - exit(1) - -print("\n* Running stubbing CodeQL query") -run_cmd(['codeql', 'query', 'run', os.path.join( - thisDir, 'AllStubsFromReference.ql'), '--database', dbDir, '--output', bqrsFile]) - -run_cmd(['codeql', 'bqrs', 'decode', bqrsFile, '--output', - jsonFile, '--format=json']) +print("\n* Running stub generator") +helpers.run_cmd_cwd(['dotnet', 'run', '--project', thisDir + '/../../../extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj'], projectDirIn) print("\n* Creating new raw output project") rawSrcOutputDirName = 'src' rawSrcOutputDir = os.path.join(rawOutputDir, rawSrcOutputDirName) -run_cmd(['dotnet', 'new', 'classlib', "--language", "C#", +run_cmd(['dotnet', 'new', template, "--language", "C#", '--name', rawSrcOutputDirName, '--output', rawSrcOutputDir]) helpers.remove_files(rawSrcOutputDir, '.cs') -# load json from query result file and split it into separate .cs files +# copy each file from projectDirIn to rawSrcOutputDir pathInfos = {} -with open(jsonFile) as json_data: - data = json.load(json_data) - for row in data['#select']['tuples']: - pathInfos[row[3]] = os.path.join(rawSrcOutputDir, row[1] + '.cs') - with open(pathInfos[row[3]], 'a') as f: - f.write(row[4]) +codeqlStubsDir = os.path.join(projectDirIn, 'codeql_csharp_stubs') +for root, dirs, files in os.walk(codeqlStubsDir): + for file in files: + if file.endswith('.cs'): + path = os.path.join(root, file) + relPath, _ = os.path.splitext(os.path.relpath(path, codeqlStubsDir)) + origDllPath = "/" + relPath + ".dll" + pathInfos[origDllPath] = os.path.join(rawSrcOutputDir, file) + shutil.copy2(path, rawSrcOutputDir) print("\n --> Generated stub files: " + rawSrcOutputDir) @@ -214,6 +211,7 @@ with open(os.path.join(frameworksDir, 'Microsoft.NETCore.App', 'Microsoft.NETCor copiedFiles.add(pathInfo) shutil.copy2(pathInfos[pathInfo], frameworkDir) +exitCode = 0 for pathInfo in pathInfos: if pathInfo not in copiedFiles: print('Not copied to nuget or framework folder: ' + pathInfo) @@ -221,7 +219,8 @@ for pathInfo in pathInfos: if not os.path.exists(othersDir): os.makedirs(othersDir) shutil.copy2(pathInfos[pathInfo], othersDir) + exitCode = 1 print("\n --> Generated structured stub files: " + stubsDir) -exit(0) +exit(exitCode) From 3dadfa224374c38c735282a966d21ca4818112f5 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 21 Sep 2023 11:50:04 +0200 Subject: [PATCH 575/788] Dataflow: review fixes --- .../codeql/dataflow/internal/DataFlowImplCommon.qll | 13 +++++++++---- shared/util/codeql/util/Unit.qll | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll index c0b0973f0db..ac5b5a243a8 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll @@ -1,5 +1,6 @@ private import codeql.dataflow.DataFlow private import codeql.typetracking.TypeTracking as Tt +private import codeql.util.Unit module MakeImplCommon { private import Lang @@ -54,7 +55,10 @@ module MakeImplCommon { override string toString() { result = "FeatureEqualSourceSinkCallContext" } } - signature predicate sourceNode(Node n); + /** + * Holds if `source` is a relevant data flow source. + */ + signature predicate sourceNode(Node source); /** * EXPERIMENTAL: This API is subject to change without notice. @@ -86,8 +90,8 @@ module MakeImplCommon { string toString() { result = "Content" } } - class ContentFilter extends Content { - Content getAMatchingContent() { result = this } + class ContentFilter extends Unit { + Content getAMatchingContent() { none() } } predicate compatibleContents(Content storeContents, Content loadContents) { @@ -102,6 +106,7 @@ module MakeImplCommon { argumentValueFlowsThrough(n1, TReadStepTypesNone(), n2) } + // TODO: support setters predicate storeStep(Node n1, Node n2, Content f) { storeSet(n1, f, n2, _, _) } predicate loadStep(Node n1, LocalSourceNode n2, Content f) { @@ -720,7 +725,7 @@ module MakeImplCommon { * If a read step was taken, then `read` captures the `Content`, the * container type, and the content type. */ - pragma[nomagic] + cached predicate argumentValueFlowsThrough(ArgNode arg, ReadStepTypesOption read, Node out) { exists(DataFlowCall call, ReturnKind kind | argumentValueFlowsThrough0(call, arg, kind, read) and diff --git a/shared/util/codeql/util/Unit.qll b/shared/util/codeql/util/Unit.qll index e9611ed3df4..a0db9d7030f 100644 --- a/shared/util/codeql/util/Unit.qll +++ b/shared/util/codeql/util/Unit.qll @@ -4,7 +4,7 @@ private newtype TUnit = TMkUnit() /** The trivial type with a single element. */ -class Unit extends TUnit { +final class Unit extends TUnit { /** Gets a textual representation of this element. */ string toString() { result = "unit" } } From 58f45ea198aa4922659c0f6ddbda0c588f8cf4e4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 25 Aug 2023 13:27:08 +0200 Subject: [PATCH 576/788] C#: Regenerate `Newtonsoft.Json` stubs --- .../library-tests/dataflow/global/options | 2 +- .../library-tests/dataflow/library/options | 2 +- .../library-tests/frameworks/JsonNET/options | 2 +- .../options | 2 +- .../{13.0.1 => 13.0.3}/Newtonsoft.Json.cs | 2272 +++++++---------- .../{13.0.1 => 13.0.3}/Newtonsoft.Json.csproj | 0 6 files changed, 989 insertions(+), 1291 deletions(-) rename csharp/ql/test/resources/stubs/Newtonsoft.Json/{13.0.1 => 13.0.3}/Newtonsoft.Json.cs (72%) rename csharp/ql/test/resources/stubs/Newtonsoft.Json/{13.0.1 => 13.0.3}/Newtonsoft.Json.csproj (100%) diff --git a/csharp/ql/test/library-tests/dataflow/global/options b/csharp/ql/test/library-tests/dataflow/global/options index a4bf68c5e38..a2859a6265b 100644 --- a/csharp/ql/test/library-tests/dataflow/global/options +++ b/csharp/ql/test/library-tests/dataflow/global/options @@ -1,3 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs \ No newline at end of file diff --git a/csharp/ql/test/library-tests/dataflow/library/options b/csharp/ql/test/library-tests/dataflow/library/options index db937e0e642..6fb355b88a5 100644 --- a/csharp/ql/test/library-tests/dataflow/library/options +++ b/csharp/ql/test/library-tests/dataflow/library/options @@ -1,5 +1,5 @@ semmle-extractor-options: /nostdlib /noconfig -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/EntityFramework.cs diff --git a/csharp/ql/test/library-tests/frameworks/JsonNET/options b/csharp/ql/test/library-tests/frameworks/JsonNET/options index 04c8985075a..c1876368cd3 100644 --- a/csharp/ql/test/library-tests/frameworks/JsonNET/options +++ b/csharp/ql/test/library-tests/frameworks/JsonNET/options @@ -1 +1 @@ -semmle-extractor-options: /nostdlib /noconfig --load-sources-from-project:../../../resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj +semmle-extractor-options: /nostdlib /noconfig --load-sources-from-project:../../../resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options index 81ebad48b0d..750b4e67189 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options @@ -1,3 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.cs b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.cs similarity index 72% rename from csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.cs rename to csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.cs index b506c7f4cbc..910a1ac3b0e 100644 --- a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.cs +++ b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.cs @@ -1,150 +1,319 @@ // This file contains auto-generated code. - +// Generated from `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed`. namespace Newtonsoft { namespace Json { - // Generated from `Newtonsoft.Json.ConstructorHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` + namespace Bson + { + public class BsonObjectId + { + public BsonObjectId(byte[] value) => throw null; + public byte[] Value { get => throw null; } + } + public class BsonReader : Newtonsoft.Json.JsonReader + { + public override void Close() => throw null; + public BsonReader(System.IO.Stream stream) => throw null; + public BsonReader(System.IO.BinaryReader reader) => throw null; + public BsonReader(System.IO.Stream stream, bool readRootValueAsArray, System.DateTimeKind dateTimeKindHandling) => throw null; + public BsonReader(System.IO.BinaryReader reader, bool readRootValueAsArray, System.DateTimeKind dateTimeKindHandling) => throw null; + public System.DateTimeKind DateTimeKindHandling { get => throw null; set { } } + public bool JsonNet35BinaryCompatibility { get => throw null; set { } } + public override bool Read() => throw null; + public bool ReadRootValueAsArray { get => throw null; set { } } + } + public class BsonWriter : Newtonsoft.Json.JsonWriter + { + public override void Close() => throw null; + public BsonWriter(System.IO.Stream stream) => throw null; + public BsonWriter(System.IO.BinaryWriter writer) => throw null; + public System.DateTimeKind DateTimeKindHandling { get => throw null; set { } } + public override void Flush() => throw null; + public override void WriteComment(string text) => throw null; + protected override void WriteEnd(Newtonsoft.Json.JsonToken token) => throw null; + public override void WriteNull() => throw null; + public void WriteObjectId(byte[] value) => throw null; + public override void WritePropertyName(string name) => throw null; + public override void WriteRaw(string json) => throw null; + public override void WriteRawValue(string json) => throw null; + public void WriteRegex(string pattern, string options) => throw null; + public override void WriteStartArray() => throw null; + public override void WriteStartConstructor(string name) => throw null; + public override void WriteStartObject() => throw null; + public override void WriteUndefined() => throw null; + public override void WriteValue(object value) => throw null; + public override void WriteValue(string value) => throw null; + public override void WriteValue(int value) => throw null; + public override void WriteValue(uint value) => throw null; + public override void WriteValue(long value) => throw null; + public override void WriteValue(ulong value) => throw null; + public override void WriteValue(float value) => throw null; + public override void WriteValue(double value) => throw null; + public override void WriteValue(bool value) => throw null; + public override void WriteValue(short value) => throw null; + public override void WriteValue(ushort value) => throw null; + public override void WriteValue(char value) => throw null; + public override void WriteValue(byte value) => throw null; + public override void WriteValue(sbyte value) => throw null; + public override void WriteValue(decimal value) => throw null; + public override void WriteValue(System.DateTime value) => throw null; + public override void WriteValue(System.DateTimeOffset value) => throw null; + public override void WriteValue(byte[] value) => throw null; + public override void WriteValue(System.Guid value) => throw null; + public override void WriteValue(System.TimeSpan value) => throw null; + public override void WriteValue(System.Uri value) => throw null; + } + } public enum ConstructorHandling { - AllowNonPublicDefaultConstructor = 1, Default = 0, + AllowNonPublicDefaultConstructor = 1, + } + namespace Converters + { + public class BinaryConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type objectType) => throw null; + public BinaryConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class BsonObjectIdConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type objectType) => throw null; + public BsonObjectIdConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public abstract class CustomCreationConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type objectType) => throw null; + public override bool CanWrite { get => throw null; } + public abstract T Create(System.Type objectType); + protected CustomCreationConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class DataSetConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type valueType) => throw null; + public DataSetConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class DataTableConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type valueType) => throw null; + public DataTableConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public abstract class DateTimeConverterBase : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type objectType) => throw null; + protected DateTimeConverterBase() => throw null; + } + public class DiscriminatedUnionConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type objectType) => throw null; + public DiscriminatedUnionConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class EntityKeyMemberConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type objectType) => throw null; + public EntityKeyMemberConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class ExpandoObjectConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type objectType) => throw null; + public override bool CanWrite { get => throw null; } + public ExpandoObjectConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class IsoDateTimeConverter : Newtonsoft.Json.Converters.DateTimeConverterBase + { + public IsoDateTimeConverter() => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; set { } } + public string DateTimeFormat { get => throw null; set { } } + public System.Globalization.DateTimeStyles DateTimeStyles { get => throw null; set { } } + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class JavaScriptDateTimeConverter : Newtonsoft.Json.Converters.DateTimeConverterBase + { + public JavaScriptDateTimeConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class KeyValuePairConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type objectType) => throw null; + public KeyValuePairConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class RegexConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type objectType) => throw null; + public RegexConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class StringEnumConverter : Newtonsoft.Json.JsonConverter + { + public bool AllowIntegerValues { get => throw null; set { } } + public bool CamelCaseText { get => throw null; set { } } + public override bool CanConvert(System.Type objectType) => throw null; + public StringEnumConverter() => throw null; + public StringEnumConverter(bool camelCaseText) => throw null; + public StringEnumConverter(Newtonsoft.Json.Serialization.NamingStrategy namingStrategy, bool allowIntegerValues = default(bool)) => throw null; + public StringEnumConverter(System.Type namingStrategyType) => throw null; + public StringEnumConverter(System.Type namingStrategyType, object[] namingStrategyParameters) => throw null; + public StringEnumConverter(System.Type namingStrategyType, object[] namingStrategyParameters, bool allowIntegerValues) => throw null; + public Newtonsoft.Json.Serialization.NamingStrategy NamingStrategy { get => throw null; set { } } + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class UnixDateTimeConverter : Newtonsoft.Json.Converters.DateTimeConverterBase + { + public bool AllowPreEpoch { get => throw null; set { } } + public UnixDateTimeConverter() => throw null; + public UnixDateTimeConverter(bool allowPreEpoch) => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class VersionConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type objectType) => throw null; + public VersionConverter() => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } + public class XmlNodeConverter : Newtonsoft.Json.JsonConverter + { + public override bool CanConvert(System.Type valueType) => throw null; + public XmlNodeConverter() => throw null; + public string DeserializeRootElementName { get => throw null; set { } } + public bool EncodeSpecialCharacters { get => throw null; set { } } + public bool OmitRootObject { get => throw null; set { } } + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public bool WriteArrayAttribute { get => throw null; set { } } + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + } } - - // Generated from `Newtonsoft.Json.DateFormatHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum DateFormatHandling { IsoDateFormat = 0, MicrosoftDateFormat = 1, } - - // Generated from `Newtonsoft.Json.DateParseHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum DateParseHandling { + None = 0, DateTime = 1, DateTimeOffset = 2, - None = 0, } - - // Generated from `Newtonsoft.Json.DateTimeZoneHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum DateTimeZoneHandling { Local = 0, - RoundtripKind = 3, - Unspecified = 2, Utc = 1, + Unspecified = 2, + RoundtripKind = 3, } - - // Generated from `Newtonsoft.Json.DefaultJsonNameTable` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class DefaultJsonNameTable : Newtonsoft.Json.JsonNameTable { public string Add(string key) => throw null; public DefaultJsonNameTable() => throw null; - public override string Get(System.Char[] key, int start, int length) => throw null; + public override string Get(char[] key, int start, int length) => throw null; } - - // Generated from `Newtonsoft.Json.DefaultValueHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` [System.Flags] public enum DefaultValueHandling { - Ignore = 1, - IgnoreAndPopulate = 3, Include = 0, + Ignore = 1, Populate = 2, + IgnoreAndPopulate = 3, } - - // Generated from `Newtonsoft.Json.FloatFormatHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum FloatFormatHandling { - DefaultValue = 2, String = 0, Symbol = 1, + DefaultValue = 2, } - - // Generated from `Newtonsoft.Json.FloatParseHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum FloatParseHandling { - Decimal = 1, Double = 0, + Decimal = 1, } - - // Generated from `Newtonsoft.Json.Formatting` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum Formatting { - Indented = 1, None = 0, + Indented = 1, } - - // Generated from `Newtonsoft.Json.IArrayPool<>` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public interface IArrayPool { T[] Rent(int minimumLength); void Return(T[] array); } - - // Generated from `Newtonsoft.Json.IJsonLineInfo` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public interface IJsonLineInfo { bool HasLineInfo(); int LineNumber { get; } int LinePosition { get; } } - - // Generated from `Newtonsoft.Json.JsonArrayAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonArrayAttribute : Newtonsoft.Json.JsonContainerAttribute + public sealed class JsonArrayAttribute : Newtonsoft.Json.JsonContainerAttribute { - public bool AllowNullItems { get => throw null; set => throw null; } + public bool AllowNullItems { get => throw null; set { } } public JsonArrayAttribute() => throw null; public JsonArrayAttribute(bool allowNullItems) => throw null; public JsonArrayAttribute(string id) => throw null; } - - // Generated from `Newtonsoft.Json.JsonConstructorAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonConstructorAttribute : System.Attribute + public sealed class JsonConstructorAttribute : System.Attribute { public JsonConstructorAttribute() => throw null; } - - // Generated from `Newtonsoft.Json.JsonContainerAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public abstract class JsonContainerAttribute : System.Attribute { - public string Description { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public bool IsReference { get => throw null; set => throw null; } - public object[] ItemConverterParameters { get => throw null; set => throw null; } - public System.Type ItemConverterType { get => throw null; set => throw null; } - public bool ItemIsReference { get => throw null; set => throw null; } - public Newtonsoft.Json.ReferenceLoopHandling ItemReferenceLoopHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.TypeNameHandling ItemTypeNameHandling { get => throw null; set => throw null; } protected JsonContainerAttribute() => throw null; protected JsonContainerAttribute(string id) => throw null; - public object[] NamingStrategyParameters { get => throw null; set => throw null; } - public System.Type NamingStrategyType { get => throw null; set => throw null; } - public string Title { get => throw null; set => throw null; } + public string Description { get => throw null; set { } } + public string Id { get => throw null; set { } } + public bool IsReference { get => throw null; set { } } + public object[] ItemConverterParameters { get => throw null; set { } } + public System.Type ItemConverterType { get => throw null; set { } } + public bool ItemIsReference { get => throw null; set { } } + public Newtonsoft.Json.ReferenceLoopHandling ItemReferenceLoopHandling { get => throw null; set { } } + public Newtonsoft.Json.TypeNameHandling ItemTypeNameHandling { get => throw null; set { } } + public object[] NamingStrategyParameters { get => throw null; set { } } + public System.Type NamingStrategyType { get => throw null; set { } } + public string Title { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.JsonConvert` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public static class JsonConvert { - public static System.Func DefaultSettings { get => throw null; set => throw null; } + public static System.Func DefaultSettings { get => throw null; set { } } public static T DeserializeAnonymousType(string value, T anonymousTypeObject) => throw null; public static T DeserializeAnonymousType(string value, T anonymousTypeObject, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static object DeserializeObject(string value) => throw null; public static object DeserializeObject(string value, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static object DeserializeObject(string value, System.Type type) => throw null; - public static object DeserializeObject(string value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; - public static object DeserializeObject(string value, System.Type type, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public static T DeserializeObject(string value) => throw null; - public static T DeserializeObject(string value, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static T DeserializeObject(string value, params Newtonsoft.Json.JsonConverter[] converters) => throw null; - public static System.Xml.Linq.XDocument DeserializeXNode(string value) => throw null; - public static System.Xml.Linq.XDocument DeserializeXNode(string value, string deserializeRootElementName) => throw null; - public static System.Xml.Linq.XDocument DeserializeXNode(string value, string deserializeRootElementName, bool writeArrayAttribute) => throw null; - public static System.Xml.Linq.XDocument DeserializeXNode(string value, string deserializeRootElementName, bool writeArrayAttribute, bool encodeSpecialCharacters) => throw null; + public static T DeserializeObject(string value, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; + public static object DeserializeObject(string value, System.Type type, params Newtonsoft.Json.JsonConverter[] converters) => throw null; + public static object DeserializeObject(string value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static System.Xml.XmlDocument DeserializeXmlNode(string value) => throw null; public static System.Xml.XmlDocument DeserializeXmlNode(string value, string deserializeRootElementName) => throw null; public static System.Xml.XmlDocument DeserializeXmlNode(string value, string deserializeRootElementName, bool writeArrayAttribute) => throw null; public static System.Xml.XmlDocument DeserializeXmlNode(string value, string deserializeRootElementName, bool writeArrayAttribute, bool encodeSpecialCharacters) => throw null; + public static System.Xml.Linq.XDocument DeserializeXNode(string value) => throw null; + public static System.Xml.Linq.XDocument DeserializeXNode(string value, string deserializeRootElementName) => throw null; + public static System.Xml.Linq.XDocument DeserializeXNode(string value, string deserializeRootElementName, bool writeArrayAttribute) => throw null; + public static System.Xml.Linq.XDocument DeserializeXNode(string value, string deserializeRootElementName, bool writeArrayAttribute, bool encodeSpecialCharacters) => throw null; public static string False; public static string NaN; public static string NegativeInfinity; @@ -154,48 +323,46 @@ namespace Newtonsoft public static string PositiveInfinity; public static string SerializeObject(object value) => throw null; public static string SerializeObject(object value, Newtonsoft.Json.Formatting formatting) => throw null; - public static string SerializeObject(object value, Newtonsoft.Json.Formatting formatting, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; + public static string SerializeObject(object value, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public static string SerializeObject(object value, Newtonsoft.Json.Formatting formatting, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public static string SerializeObject(object value, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; - public static string SerializeObject(object value, System.Type type, Newtonsoft.Json.Formatting formatting, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static string SerializeObject(object value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; - public static string SerializeObject(object value, params Newtonsoft.Json.JsonConverter[] converters) => throw null; - public static string SerializeXNode(System.Xml.Linq.XObject node) => throw null; - public static string SerializeXNode(System.Xml.Linq.XObject node, Newtonsoft.Json.Formatting formatting) => throw null; - public static string SerializeXNode(System.Xml.Linq.XObject node, Newtonsoft.Json.Formatting formatting, bool omitRootObject) => throw null; + public static string SerializeObject(object value, Newtonsoft.Json.Formatting formatting, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; + public static string SerializeObject(object value, System.Type type, Newtonsoft.Json.Formatting formatting, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static string SerializeXmlNode(System.Xml.XmlNode node) => throw null; public static string SerializeXmlNode(System.Xml.XmlNode node, Newtonsoft.Json.Formatting formatting) => throw null; public static string SerializeXmlNode(System.Xml.XmlNode node, Newtonsoft.Json.Formatting formatting, bool omitRootObject) => throw null; + public static string SerializeXNode(System.Xml.Linq.XObject node) => throw null; + public static string SerializeXNode(System.Xml.Linq.XObject node, Newtonsoft.Json.Formatting formatting) => throw null; + public static string SerializeXNode(System.Xml.Linq.XObject node, Newtonsoft.Json.Formatting formatting, bool omitRootObject) => throw null; public static string ToString(System.DateTime value) => throw null; public static string ToString(System.DateTime value, Newtonsoft.Json.DateFormatHandling format, Newtonsoft.Json.DateTimeZoneHandling timeZoneHandling) => throw null; public static string ToString(System.DateTimeOffset value) => throw null; public static string ToString(System.DateTimeOffset value, Newtonsoft.Json.DateFormatHandling format) => throw null; + public static string ToString(bool value) => throw null; + public static string ToString(char value) => throw null; public static string ToString(System.Enum value) => throw null; + public static string ToString(int value) => throw null; + public static string ToString(short value) => throw null; + public static string ToString(ushort value) => throw null; + public static string ToString(uint value) => throw null; + public static string ToString(long value) => throw null; + public static string ToString(ulong value) => throw null; + public static string ToString(float value) => throw null; + public static string ToString(double value) => throw null; + public static string ToString(byte value) => throw null; + public static string ToString(sbyte value) => throw null; + public static string ToString(decimal value) => throw null; public static string ToString(System.Guid value) => throw null; public static string ToString(System.TimeSpan value) => throw null; public static string ToString(System.Uri value) => throw null; - public static string ToString(bool value) => throw null; - public static string ToString(System.Byte value) => throw null; - public static string ToString(System.Char value) => throw null; - public static string ToString(System.Decimal value) => throw null; - public static string ToString(double value) => throw null; - public static string ToString(float value) => throw null; - public static string ToString(int value) => throw null; - public static string ToString(System.Int64 value) => throw null; - public static string ToString(object value) => throw null; - public static string ToString(System.SByte value) => throw null; - public static string ToString(System.Int16 value) => throw null; public static string ToString(string value) => throw null; - public static string ToString(string value, System.Char delimiter) => throw null; - public static string ToString(string value, System.Char delimiter, Newtonsoft.Json.StringEscapeHandling stringEscapeHandling) => throw null; - public static string ToString(System.UInt32 value) => throw null; - public static string ToString(System.UInt64 value) => throw null; - public static string ToString(System.UInt16 value) => throw null; + public static string ToString(string value, char delimiter) => throw null; + public static string ToString(string value, char delimiter, Newtonsoft.Json.StringEscapeHandling stringEscapeHandling) => throw null; + public static string ToString(object value) => throw null; public static string True; public static string Undefined; } - - // Generated from `Newtonsoft.Json.JsonConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public abstract class JsonConverter { public abstract bool CanConvert(System.Type objectType); @@ -205,153 +372,113 @@ namespace Newtonsoft public abstract object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer); public abstract void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer); } - - // Generated from `Newtonsoft.Json.JsonConverter<>` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public abstract class JsonConverter : Newtonsoft.Json.JsonConverter { - public override bool CanConvert(System.Type objectType) => throw null; + public override sealed bool CanConvert(System.Type objectType) => throw null; protected JsonConverter() => throw null; + public override sealed object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; public abstract T ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, T existingValue, bool hasExistingValue, Newtonsoft.Json.JsonSerializer serializer); - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override sealed void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; public abstract void WriteJson(Newtonsoft.Json.JsonWriter writer, T value, Newtonsoft.Json.JsonSerializer serializer); - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; } - - // Generated from `Newtonsoft.Json.JsonConverterAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonConverterAttribute : System.Attribute + public sealed class JsonConverterAttribute : System.Attribute { public object[] ConverterParameters { get => throw null; } public System.Type ConverterType { get => throw null; } public JsonConverterAttribute(System.Type converterType) => throw null; public JsonConverterAttribute(System.Type converterType, params object[] converterParameters) => throw null; } - - // Generated from `Newtonsoft.Json.JsonConverterCollection` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonConverterCollection : System.Collections.ObjectModel.Collection { public JsonConverterCollection() => throw null; } - - // Generated from `Newtonsoft.Json.JsonDictionaryAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonDictionaryAttribute : Newtonsoft.Json.JsonContainerAttribute + public sealed class JsonDictionaryAttribute : Newtonsoft.Json.JsonContainerAttribute { public JsonDictionaryAttribute() => throw null; public JsonDictionaryAttribute(string id) => throw null; } - - // Generated from `Newtonsoft.Json.JsonException` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonException : System.Exception { public JsonException() => throw null; - public JsonException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public JsonException(string message) => throw null; public JsonException(string message, System.Exception innerException) => throw null; + public JsonException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `Newtonsoft.Json.JsonExtensionDataAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonExtensionDataAttribute : System.Attribute { public JsonExtensionDataAttribute() => throw null; - public bool ReadData { get => throw null; set => throw null; } - public bool WriteData { get => throw null; set => throw null; } + public bool ReadData { get => throw null; set { } } + public bool WriteData { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.JsonIgnoreAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonIgnoreAttribute : System.Attribute + public sealed class JsonIgnoreAttribute : System.Attribute { public JsonIgnoreAttribute() => throw null; } - - // Generated from `Newtonsoft.Json.JsonNameTable` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public abstract class JsonNameTable { - public abstract string Get(System.Char[] key, int start, int length); protected JsonNameTable() => throw null; + public abstract string Get(char[] key, int start, int length); } - - // Generated from `Newtonsoft.Json.JsonObjectAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonObjectAttribute : Newtonsoft.Json.JsonContainerAttribute + public sealed class JsonObjectAttribute : Newtonsoft.Json.JsonContainerAttribute { - public Newtonsoft.Json.NullValueHandling ItemNullValueHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.Required ItemRequired { get => throw null; set => throw null; } public JsonObjectAttribute() => throw null; public JsonObjectAttribute(Newtonsoft.Json.MemberSerialization memberSerialization) => throw null; public JsonObjectAttribute(string id) => throw null; - public Newtonsoft.Json.MemberSerialization MemberSerialization { get => throw null; set => throw null; } - public Newtonsoft.Json.MissingMemberHandling MissingMemberHandling { get => throw null; set => throw null; } + public Newtonsoft.Json.NullValueHandling ItemNullValueHandling { get => throw null; set { } } + public Newtonsoft.Json.Required ItemRequired { get => throw null; set { } } + public Newtonsoft.Json.MemberSerialization MemberSerialization { get => throw null; set { } } + public Newtonsoft.Json.MissingMemberHandling MissingMemberHandling { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.JsonPropertyAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonPropertyAttribute : System.Attribute + public sealed class JsonPropertyAttribute : System.Attribute { - public Newtonsoft.Json.DefaultValueHandling DefaultValueHandling { get => throw null; set => throw null; } - public bool IsReference { get => throw null; set => throw null; } - public object[] ItemConverterParameters { get => throw null; set => throw null; } - public System.Type ItemConverterType { get => throw null; set => throw null; } - public bool ItemIsReference { get => throw null; set => throw null; } - public Newtonsoft.Json.ReferenceLoopHandling ItemReferenceLoopHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.TypeNameHandling ItemTypeNameHandling { get => throw null; set => throw null; } public JsonPropertyAttribute() => throw null; public JsonPropertyAttribute(string propertyName) => throw null; - public object[] NamingStrategyParameters { get => throw null; set => throw null; } - public System.Type NamingStrategyType { get => throw null; set => throw null; } - public Newtonsoft.Json.NullValueHandling NullValueHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.ObjectCreationHandling ObjectCreationHandling { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - public string PropertyName { get => throw null; set => throw null; } - public Newtonsoft.Json.ReferenceLoopHandling ReferenceLoopHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.Required Required { get => throw null; set => throw null; } - public Newtonsoft.Json.TypeNameHandling TypeNameHandling { get => throw null; set => throw null; } + public Newtonsoft.Json.DefaultValueHandling DefaultValueHandling { get => throw null; set { } } + public bool IsReference { get => throw null; set { } } + public object[] ItemConverterParameters { get => throw null; set { } } + public System.Type ItemConverterType { get => throw null; set { } } + public bool ItemIsReference { get => throw null; set { } } + public Newtonsoft.Json.ReferenceLoopHandling ItemReferenceLoopHandling { get => throw null; set { } } + public Newtonsoft.Json.TypeNameHandling ItemTypeNameHandling { get => throw null; set { } } + public object[] NamingStrategyParameters { get => throw null; set { } } + public System.Type NamingStrategyType { get => throw null; set { } } + public Newtonsoft.Json.NullValueHandling NullValueHandling { get => throw null; set { } } + public Newtonsoft.Json.ObjectCreationHandling ObjectCreationHandling { get => throw null; set { } } + public int Order { get => throw null; set { } } + public string PropertyName { get => throw null; set { } } + public Newtonsoft.Json.ReferenceLoopHandling ReferenceLoopHandling { get => throw null; set { } } + public Newtonsoft.Json.Required Required { get => throw null; set { } } + public Newtonsoft.Json.TypeNameHandling TypeNameHandling { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.JsonReader` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public abstract class JsonReader : System.IDisposable + public abstract class JsonReader : System.IAsyncDisposable, System.IDisposable { - // Generated from `Newtonsoft.Json.JsonReader+State` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - protected internal enum State - { - Array = 6, - ArrayStart = 5, - Closed = 7, - Complete = 1, - Constructor = 10, - ConstructorStart = 9, - Error = 11, - Finished = 12, - Object = 4, - ObjectStart = 3, - PostValue = 8, - Property = 2, - Start = 0, - } - - public virtual void Close() => throw null; - public bool CloseInput { get => throw null; set => throw null; } - public System.Globalization.CultureInfo Culture { get => throw null; set => throw null; } + public bool CloseInput { get => throw null; set { } } + protected JsonReader() => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; set { } } protected Newtonsoft.Json.JsonReader.State CurrentState { get => throw null; } - public string DateFormatString { get => throw null; set => throw null; } - public Newtonsoft.Json.DateParseHandling DateParseHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.DateTimeZoneHandling DateTimeZoneHandling { get => throw null; set => throw null; } + public string DateFormatString { get => throw null; set { } } + public Newtonsoft.Json.DateParseHandling DateParseHandling { get => throw null; set { } } + public Newtonsoft.Json.DateTimeZoneHandling DateTimeZoneHandling { get => throw null; set { } } public virtual int Depth { get => throw null; } void System.IDisposable.Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public Newtonsoft.Json.FloatParseHandling FloatParseHandling { get => throw null; set => throw null; } - protected JsonReader() => throw null; - public int? MaxDepth { get => throw null; set => throw null; } + System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; + public Newtonsoft.Json.FloatParseHandling FloatParseHandling { get => throw null; set { } } + public int? MaxDepth { get => throw null; set { } } public virtual string Path { get => throw null; } - public virtual System.Char QuoteChar { get => throw null; set => throw null; } + public virtual char QuoteChar { get => throw null; set { } } public abstract bool Read(); public virtual bool? ReadAsBoolean() => throw null; public virtual System.Threading.Tasks.Task ReadAsBooleanAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Byte[] ReadAsBytes() => throw null; - public virtual System.Threading.Tasks.Task ReadAsBytesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual byte[] ReadAsBytes() => throw null; + public virtual System.Threading.Tasks.Task ReadAsBytesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.DateTime? ReadAsDateTime() => throw null; public virtual System.Threading.Tasks.Task ReadAsDateTimeAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.DateTimeOffset? ReadAsDateTimeOffset() => throw null; public virtual System.Threading.Tasks.Task ReadAsDateTimeOffsetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Decimal? ReadAsDecimal() => throw null; - public virtual System.Threading.Tasks.Task ReadAsDecimalAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual decimal? ReadAsDecimal() => throw null; + public virtual System.Threading.Tasks.Task ReadAsDecimalAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual double? ReadAsDouble() => throw null; public virtual System.Threading.Tasks.Task ReadAsDoubleAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual int? ReadAsInt32() => throw null; @@ -365,154 +492,159 @@ namespace Newtonsoft protected void SetToken(Newtonsoft.Json.JsonToken newToken, object value, bool updateIndex) => throw null; public void Skip() => throw null; public System.Threading.Tasks.Task SkipAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public bool SupportMultipleContent { get => throw null; set => throw null; } + protected enum State + { + Start = 0, + Complete = 1, + Property = 2, + ObjectStart = 3, + Object = 4, + ArrayStart = 5, + Array = 6, + Closed = 7, + PostValue = 8, + ConstructorStart = 9, + Constructor = 10, + Error = 11, + Finished = 12, + } + public bool SupportMultipleContent { get => throw null; set { } } public virtual Newtonsoft.Json.JsonToken TokenType { get => throw null; } public virtual object Value { get => throw null; } public virtual System.Type ValueType { get => throw null; } } - - // Generated from `Newtonsoft.Json.JsonReaderException` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonReaderException : Newtonsoft.Json.JsonException { public JsonReaderException() => throw null; - public JsonReaderException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public JsonReaderException(string message) => throw null; public JsonReaderException(string message, System.Exception innerException) => throw null; + public JsonReaderException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public JsonReaderException(string message, string path, int lineNumber, int linePosition, System.Exception innerException) => throw null; public int LineNumber { get => throw null; } public int LinePosition { get => throw null; } public string Path { get => throw null; } } - - // Generated from `Newtonsoft.Json.JsonRequiredAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonRequiredAttribute : System.Attribute + public sealed class JsonRequiredAttribute : System.Attribute { public JsonRequiredAttribute() => throw null; } - - // Generated from `Newtonsoft.Json.JsonSerializationException` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonSerializationException : Newtonsoft.Json.JsonException { public JsonSerializationException() => throw null; - public JsonSerializationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public JsonSerializationException(string message) => throw null; public JsonSerializationException(string message, System.Exception innerException) => throw null; + public JsonSerializationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public JsonSerializationException(string message, string path, int lineNumber, int linePosition, System.Exception innerException) => throw null; public int LineNumber { get => throw null; } public int LinePosition { get => throw null; } public string Path { get => throw null; } } - - // Generated from `Newtonsoft.Json.JsonSerializer` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonSerializer { - public virtual System.Runtime.Serialization.SerializationBinder Binder { get => throw null; set => throw null; } - public virtual bool CheckAdditionalContent { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.ConstructorHandling ConstructorHandling { get => throw null; set => throw null; } - public virtual System.Runtime.Serialization.StreamingContext Context { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.Serialization.IContractResolver ContractResolver { get => throw null; set => throw null; } + public virtual System.Runtime.Serialization.SerializationBinder Binder { get => throw null; set { } } + public virtual bool CheckAdditionalContent { get => throw null; set { } } + public virtual Newtonsoft.Json.ConstructorHandling ConstructorHandling { get => throw null; set { } } + public virtual System.Runtime.Serialization.StreamingContext Context { get => throw null; set { } } + public virtual Newtonsoft.Json.Serialization.IContractResolver ContractResolver { get => throw null; set { } } public virtual Newtonsoft.Json.JsonConverterCollection Converters { get => throw null; } public static Newtonsoft.Json.JsonSerializer Create() => throw null; public static Newtonsoft.Json.JsonSerializer Create(Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static Newtonsoft.Json.JsonSerializer CreateDefault() => throw null; public static Newtonsoft.Json.JsonSerializer CreateDefault(Newtonsoft.Json.JsonSerializerSettings settings) => throw null; - public virtual System.Globalization.CultureInfo Culture { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.DateFormatHandling DateFormatHandling { get => throw null; set => throw null; } - public virtual string DateFormatString { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.DateParseHandling DateParseHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.DateTimeZoneHandling DateTimeZoneHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.DefaultValueHandling DefaultValueHandling { get => throw null; set => throw null; } + public JsonSerializer() => throw null; + public virtual System.Globalization.CultureInfo Culture { get => throw null; set { } } + public virtual Newtonsoft.Json.DateFormatHandling DateFormatHandling { get => throw null; set { } } + public virtual string DateFormatString { get => throw null; set { } } + public virtual Newtonsoft.Json.DateParseHandling DateParseHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.DateTimeZoneHandling DateTimeZoneHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.DefaultValueHandling DefaultValueHandling { get => throw null; set { } } public object Deserialize(Newtonsoft.Json.JsonReader reader) => throw null; - public object Deserialize(Newtonsoft.Json.JsonReader reader, System.Type objectType) => throw null; public object Deserialize(System.IO.TextReader reader, System.Type objectType) => throw null; public T Deserialize(Newtonsoft.Json.JsonReader reader) => throw null; - public virtual System.Collections.IEqualityComparer EqualityComparer { get => throw null; set => throw null; } - public virtual event System.EventHandler Error; - public virtual Newtonsoft.Json.FloatFormatHandling FloatFormatHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.FloatParseHandling FloatParseHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.Formatting Formatting { get => throw null; set => throw null; } - public JsonSerializer() => throw null; - public virtual int? MaxDepth { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.MetadataPropertyHandling MetadataPropertyHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.MissingMemberHandling MissingMemberHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.NullValueHandling NullValueHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.ObjectCreationHandling ObjectCreationHandling { get => throw null; set => throw null; } - public void Populate(Newtonsoft.Json.JsonReader reader, object target) => throw null; + public object Deserialize(Newtonsoft.Json.JsonReader reader, System.Type objectType) => throw null; + public virtual System.Collections.IEqualityComparer EqualityComparer { get => throw null; set { } } + public virtual event System.EventHandler Error { add { } remove { } } + public virtual Newtonsoft.Json.FloatFormatHandling FloatFormatHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.FloatParseHandling FloatParseHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.Formatting Formatting { get => throw null; set { } } + public virtual int? MaxDepth { get => throw null; set { } } + public virtual Newtonsoft.Json.MetadataPropertyHandling MetadataPropertyHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.MissingMemberHandling MissingMemberHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.NullValueHandling NullValueHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.ObjectCreationHandling ObjectCreationHandling { get => throw null; set { } } public void Populate(System.IO.TextReader reader, object target) => throw null; - public virtual Newtonsoft.Json.PreserveReferencesHandling PreserveReferencesHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.ReferenceLoopHandling ReferenceLoopHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.Serialization.IReferenceResolver ReferenceResolver { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.Serialization.ISerializationBinder SerializationBinder { get => throw null; set => throw null; } - public void Serialize(Newtonsoft.Json.JsonWriter jsonWriter, object value) => throw null; - public void Serialize(Newtonsoft.Json.JsonWriter jsonWriter, object value, System.Type objectType) => throw null; + public void Populate(Newtonsoft.Json.JsonReader reader, object target) => throw null; + public virtual Newtonsoft.Json.PreserveReferencesHandling PreserveReferencesHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.ReferenceLoopHandling ReferenceLoopHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.Serialization.IReferenceResolver ReferenceResolver { get => throw null; set { } } + public virtual Newtonsoft.Json.Serialization.ISerializationBinder SerializationBinder { get => throw null; set { } } public void Serialize(System.IO.TextWriter textWriter, object value) => throw null; + public void Serialize(Newtonsoft.Json.JsonWriter jsonWriter, object value, System.Type objectType) => throw null; public void Serialize(System.IO.TextWriter textWriter, object value, System.Type objectType) => throw null; - public virtual Newtonsoft.Json.StringEscapeHandling StringEscapeHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.Serialization.ITraceWriter TraceWriter { get => throw null; set => throw null; } - public virtual System.Runtime.Serialization.Formatters.FormatterAssemblyStyle TypeNameAssemblyFormat { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.TypeNameAssemblyFormatHandling TypeNameAssemblyFormatHandling { get => throw null; set => throw null; } - public virtual Newtonsoft.Json.TypeNameHandling TypeNameHandling { get => throw null; set => throw null; } + public void Serialize(Newtonsoft.Json.JsonWriter jsonWriter, object value) => throw null; + public virtual Newtonsoft.Json.StringEscapeHandling StringEscapeHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.Serialization.ITraceWriter TraceWriter { get => throw null; set { } } + public virtual System.Runtime.Serialization.Formatters.FormatterAssemblyStyle TypeNameAssemblyFormat { get => throw null; set { } } + public virtual Newtonsoft.Json.TypeNameAssemblyFormatHandling TypeNameAssemblyFormatHandling { get => throw null; set { } } + public virtual Newtonsoft.Json.TypeNameHandling TypeNameHandling { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.JsonSerializerSettings` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonSerializerSettings { - public System.Runtime.Serialization.SerializationBinder Binder { get => throw null; set => throw null; } - public bool CheckAdditionalContent { get => throw null; set => throw null; } - public Newtonsoft.Json.ConstructorHandling ConstructorHandling { get => throw null; set => throw null; } - public System.Runtime.Serialization.StreamingContext Context { get => throw null; set => throw null; } - public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { get => throw null; set => throw null; } - public System.Collections.Generic.IList Converters { get => throw null; set => throw null; } - public System.Globalization.CultureInfo Culture { get => throw null; set => throw null; } - public Newtonsoft.Json.DateFormatHandling DateFormatHandling { get => throw null; set => throw null; } - public string DateFormatString { get => throw null; set => throw null; } - public Newtonsoft.Json.DateParseHandling DateParseHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.DateTimeZoneHandling DateTimeZoneHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.DefaultValueHandling DefaultValueHandling { get => throw null; set => throw null; } - public System.Collections.IEqualityComparer EqualityComparer { get => throw null; set => throw null; } - public System.EventHandler Error { get => throw null; set => throw null; } - public Newtonsoft.Json.FloatFormatHandling FloatFormatHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.FloatParseHandling FloatParseHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.Formatting Formatting { get => throw null; set => throw null; } + public System.Runtime.Serialization.SerializationBinder Binder { get => throw null; set { } } + public bool CheckAdditionalContent { get => throw null; set { } } + public Newtonsoft.Json.ConstructorHandling ConstructorHandling { get => throw null; set { } } + public System.Runtime.Serialization.StreamingContext Context { get => throw null; set { } } + public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { get => throw null; set { } } + public System.Collections.Generic.IList Converters { get => throw null; set { } } public JsonSerializerSettings() => throw null; - public int? MaxDepth { get => throw null; set => throw null; } - public Newtonsoft.Json.MetadataPropertyHandling MetadataPropertyHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.MissingMemberHandling MissingMemberHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.NullValueHandling NullValueHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.ObjectCreationHandling ObjectCreationHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.PreserveReferencesHandling PreserveReferencesHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.ReferenceLoopHandling ReferenceLoopHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.Serialization.IReferenceResolver ReferenceResolver { get => throw null; set => throw null; } - public System.Func ReferenceResolverProvider { get => throw null; set => throw null; } - public Newtonsoft.Json.Serialization.ISerializationBinder SerializationBinder { get => throw null; set => throw null; } - public Newtonsoft.Json.StringEscapeHandling StringEscapeHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.Serialization.ITraceWriter TraceWriter { get => throw null; set => throw null; } - public System.Runtime.Serialization.Formatters.FormatterAssemblyStyle TypeNameAssemblyFormat { get => throw null; set => throw null; } - public Newtonsoft.Json.TypeNameAssemblyFormatHandling TypeNameAssemblyFormatHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.TypeNameHandling TypeNameHandling { get => throw null; set => throw null; } + public JsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings original) => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; set { } } + public Newtonsoft.Json.DateFormatHandling DateFormatHandling { get => throw null; set { } } + public string DateFormatString { get => throw null; set { } } + public Newtonsoft.Json.DateParseHandling DateParseHandling { get => throw null; set { } } + public Newtonsoft.Json.DateTimeZoneHandling DateTimeZoneHandling { get => throw null; set { } } + public Newtonsoft.Json.DefaultValueHandling DefaultValueHandling { get => throw null; set { } } + public System.Collections.IEqualityComparer EqualityComparer { get => throw null; set { } } + public System.EventHandler Error { get => throw null; set { } } + public Newtonsoft.Json.FloatFormatHandling FloatFormatHandling { get => throw null; set { } } + public Newtonsoft.Json.FloatParseHandling FloatParseHandling { get => throw null; set { } } + public Newtonsoft.Json.Formatting Formatting { get => throw null; set { } } + public int? MaxDepth { get => throw null; set { } } + public Newtonsoft.Json.MetadataPropertyHandling MetadataPropertyHandling { get => throw null; set { } } + public Newtonsoft.Json.MissingMemberHandling MissingMemberHandling { get => throw null; set { } } + public Newtonsoft.Json.NullValueHandling NullValueHandling { get => throw null; set { } } + public Newtonsoft.Json.ObjectCreationHandling ObjectCreationHandling { get => throw null; set { } } + public Newtonsoft.Json.PreserveReferencesHandling PreserveReferencesHandling { get => throw null; set { } } + public Newtonsoft.Json.ReferenceLoopHandling ReferenceLoopHandling { get => throw null; set { } } + public Newtonsoft.Json.Serialization.IReferenceResolver ReferenceResolver { get => throw null; set { } } + public System.Func ReferenceResolverProvider { get => throw null; set { } } + public Newtonsoft.Json.Serialization.ISerializationBinder SerializationBinder { get => throw null; set { } } + public Newtonsoft.Json.StringEscapeHandling StringEscapeHandling { get => throw null; set { } } + public Newtonsoft.Json.Serialization.ITraceWriter TraceWriter { get => throw null; set { } } + public System.Runtime.Serialization.Formatters.FormatterAssemblyStyle TypeNameAssemblyFormat { get => throw null; set { } } + public Newtonsoft.Json.TypeNameAssemblyFormatHandling TypeNameAssemblyFormatHandling { get => throw null; set { } } + public Newtonsoft.Json.TypeNameHandling TypeNameHandling { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.JsonTextReader` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonTextReader : Newtonsoft.Json.JsonReader, Newtonsoft.Json.IJsonLineInfo { - public Newtonsoft.Json.IArrayPool ArrayPool { get => throw null; set => throw null; } + public Newtonsoft.Json.IArrayPool ArrayPool { get => throw null; set { } } public override void Close() => throw null; - public bool HasLineInfo() => throw null; public JsonTextReader(System.IO.TextReader reader) => throw null; + public bool HasLineInfo() => throw null; public int LineNumber { get => throw null; } public int LinePosition { get => throw null; } - public Newtonsoft.Json.JsonNameTable PropertyNameTable { get => throw null; set => throw null; } + public Newtonsoft.Json.JsonNameTable PropertyNameTable { get => throw null; set { } } public override bool Read() => throw null; public override bool? ReadAsBoolean() => throw null; public override System.Threading.Tasks.Task ReadAsBooleanAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Byte[] ReadAsBytes() => throw null; - public override System.Threading.Tasks.Task ReadAsBytesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override byte[] ReadAsBytes() => throw null; + public override System.Threading.Tasks.Task ReadAsBytesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.DateTime? ReadAsDateTime() => throw null; public override System.Threading.Tasks.Task ReadAsDateTimeAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.DateTimeOffset? ReadAsDateTimeOffset() => throw null; public override System.Threading.Tasks.Task ReadAsDateTimeOffsetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Decimal? ReadAsDecimal() => throw null; - public override System.Threading.Tasks.Task ReadAsDecimalAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override decimal? ReadAsDecimal() => throw null; + public override System.Threading.Tasks.Task ReadAsDecimalAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override double? ReadAsDouble() => throw null; public override System.Threading.Tasks.Task ReadAsDoubleAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override int? ReadAsInt32() => throw null; @@ -521,26 +653,24 @@ namespace Newtonsoft public override System.Threading.Tasks.Task ReadAsStringAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task ReadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - // Generated from `Newtonsoft.Json.JsonTextWriter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonTextWriter : Newtonsoft.Json.JsonWriter { - public Newtonsoft.Json.IArrayPool ArrayPool { get => throw null; set => throw null; } + public Newtonsoft.Json.IArrayPool ArrayPool { get => throw null; set { } } public override void Close() => throw null; public override System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public JsonTextWriter(System.IO.TextWriter textWriter) => throw null; public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Char IndentChar { get => throw null; set => throw null; } - public int Indentation { get => throw null; set => throw null; } - public JsonTextWriter(System.IO.TextWriter textWriter) => throw null; - public System.Char QuoteChar { get => throw null; set => throw null; } - public bool QuoteName { get => throw null; set => throw null; } + public int Indentation { get => throw null; set { } } + public char IndentChar { get => throw null; set { } } + public char QuoteChar { get => throw null; set { } } + public bool QuoteName { get => throw null; set { } } public override void WriteComment(string text) => throw null; public override System.Threading.Tasks.Task WriteCommentAsync(string text, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override void WriteEnd(Newtonsoft.Json.JsonToken token) => throw null; public override System.Threading.Tasks.Task WriteEndArrayAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteEndAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override System.Threading.Tasks.Task WriteEndAsync(Newtonsoft.Json.JsonToken token, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task WriteEndAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteEndConstructorAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteEndObjectAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override void WriteIndent() => throw null; @@ -564,155 +694,150 @@ namespace Newtonsoft public override System.Threading.Tasks.Task WriteStartObjectAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override void WriteUndefined() => throw null; public override System.Threading.Tasks.Task WriteUndefinedAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteValue(System.Byte[] value) => throw null; + public override void WriteValue(object value) => throw null; + public override void WriteValue(string value) => throw null; + public override void WriteValue(int value) => throw null; + public override void WriteValue(uint value) => throw null; + public override void WriteValue(long value) => throw null; + public override void WriteValue(ulong value) => throw null; + public override void WriteValue(float value) => throw null; + public override void WriteValue(float? value) => throw null; + public override void WriteValue(double value) => throw null; + public override void WriteValue(double? value) => throw null; + public override void WriteValue(bool value) => throw null; + public override void WriteValue(short value) => throw null; + public override void WriteValue(ushort value) => throw null; + public override void WriteValue(char value) => throw null; + public override void WriteValue(byte value) => throw null; + public override void WriteValue(sbyte value) => throw null; + public override void WriteValue(decimal value) => throw null; public override void WriteValue(System.DateTime value) => throw null; + public override void WriteValue(byte[] value) => throw null; public override void WriteValue(System.DateTimeOffset value) => throw null; public override void WriteValue(System.Guid value) => throw null; public override void WriteValue(System.TimeSpan value) => throw null; public override void WriteValue(System.Uri value) => throw null; - public override void WriteValue(bool value) => throw null; - public override void WriteValue(System.Byte value) => throw null; - public override void WriteValue(System.Char value) => throw null; - public override void WriteValue(System.Decimal value) => throw null; - public override void WriteValue(double value) => throw null; - public override void WriteValue(double? value) => throw null; - public override void WriteValue(float value) => throw null; - public override void WriteValue(float? value) => throw null; - public override void WriteValue(int value) => throw null; - public override void WriteValue(System.Int64 value) => throw null; - public override void WriteValue(object value) => throw null; - public override void WriteValue(System.SByte value) => throw null; - public override void WriteValue(System.Int16 value) => throw null; - public override void WriteValue(string value) => throw null; - public override void WriteValue(System.UInt32 value) => throw null; - public override void WriteValue(System.UInt64 value) => throw null; - public override void WriteValue(System.UInt16 value) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Byte[] value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(bool value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(bool? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(byte value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(byte? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(byte[] value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(char value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(char? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(System.DateTime value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(System.DateTime? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(System.DateTimeOffset value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(System.DateTimeOffset? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Guid value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Guid? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.TimeSpan value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.TimeSpan? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Uri value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(bool value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(bool? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Byte value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Byte? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Char value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Char? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Decimal value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Decimal? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(decimal value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(decimal? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(double value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(double? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(float value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(float? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(System.Guid value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(System.Guid? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(int value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(int? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Int64 value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Int64? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(long value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(long? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(object value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.SByte value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.SByte? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Int16 value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.Int16? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(sbyte value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(sbyte? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(short value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(short? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteValueAsync(string value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.UInt32 value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.UInt32? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.UInt64 value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.UInt64? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.UInt16 value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteValueAsync(System.UInt16? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(System.TimeSpan value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(System.TimeSpan? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(uint value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(uint? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(ulong value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(ulong? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(System.Uri value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(ushort value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteValueAsync(ushort? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override void WriteValueDelimiter() => throw null; protected override System.Threading.Tasks.Task WriteValueDelimiterAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override void WriteWhitespace(string ws) => throw null; public override System.Threading.Tasks.Task WriteWhitespaceAsync(string ws, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - // Generated from `Newtonsoft.Json.JsonToken` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum JsonToken { - Boolean = 10, - Bytes = 17, - Comment = 5, - Date = 16, - EndArray = 14, - EndConstructor = 15, - EndObject = 13, - Float = 8, - Integer = 7, None = 0, - Null = 11, - PropertyName = 4, - Raw = 6, + StartObject = 1, StartArray = 2, StartConstructor = 3, - StartObject = 1, + PropertyName = 4, + Comment = 5, + Raw = 6, + Integer = 7, + Float = 8, String = 9, + Boolean = 10, + Null = 11, Undefined = 12, + EndObject = 13, + EndArray = 14, + EndConstructor = 15, + Date = 16, + Bytes = 17, } - - // Generated from `Newtonsoft.Json.JsonValidatingReader` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonValidatingReader : Newtonsoft.Json.JsonReader, Newtonsoft.Json.IJsonLineInfo { public override void Close() => throw null; + public JsonValidatingReader(Newtonsoft.Json.JsonReader reader) => throw null; public override int Depth { get => throw null; } bool Newtonsoft.Json.IJsonLineInfo.HasLineInfo() => throw null; - public JsonValidatingReader(Newtonsoft.Json.JsonReader reader) => throw null; int Newtonsoft.Json.IJsonLineInfo.LineNumber { get => throw null; } int Newtonsoft.Json.IJsonLineInfo.LinePosition { get => throw null; } public override string Path { get => throw null; } - public override System.Char QuoteChar { get => throw null; set => throw null; } + public override char QuoteChar { get => throw null; set { } } public override bool Read() => throw null; public override bool? ReadAsBoolean() => throw null; - public override System.Byte[] ReadAsBytes() => throw null; + public override byte[] ReadAsBytes() => throw null; public override System.DateTime? ReadAsDateTime() => throw null; public override System.DateTimeOffset? ReadAsDateTimeOffset() => throw null; - public override System.Decimal? ReadAsDecimal() => throw null; + public override decimal? ReadAsDecimal() => throw null; public override double? ReadAsDouble() => throw null; public override int? ReadAsInt32() => throw null; public override string ReadAsString() => throw null; public Newtonsoft.Json.JsonReader Reader { get => throw null; } - public Newtonsoft.Json.Schema.JsonSchema Schema { get => throw null; set => throw null; } + public Newtonsoft.Json.Schema.JsonSchema Schema { get => throw null; set { } } public override Newtonsoft.Json.JsonToken TokenType { get => throw null; } - public event Newtonsoft.Json.Schema.ValidationEventHandler ValidationEventHandler; + public event Newtonsoft.Json.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } public override object Value { get => throw null; } public override System.Type ValueType { get => throw null; } } - - // Generated from `Newtonsoft.Json.JsonWriter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public abstract class JsonWriter : System.IDisposable + public abstract class JsonWriter : System.IAsyncDisposable, System.IDisposable { - public bool AutoCompleteOnClose { get => throw null; set => throw null; } + public bool AutoCompleteOnClose { get => throw null; set { } } public virtual void Close() => throw null; public virtual System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public bool CloseOutput { get => throw null; set => throw null; } - public System.Globalization.CultureInfo Culture { get => throw null; set => throw null; } - public Newtonsoft.Json.DateFormatHandling DateFormatHandling { get => throw null; set => throw null; } - public string DateFormatString { get => throw null; set => throw null; } - public Newtonsoft.Json.DateTimeZoneHandling DateTimeZoneHandling { get => throw null; set => throw null; } + public bool CloseOutput { get => throw null; set { } } + protected JsonWriter() => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; set { } } + public Newtonsoft.Json.DateFormatHandling DateFormatHandling { get => throw null; set { } } + public string DateFormatString { get => throw null; set { } } + public Newtonsoft.Json.DateTimeZoneHandling DateTimeZoneHandling { get => throw null; set { } } void System.IDisposable.Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public Newtonsoft.Json.FloatFormatHandling FloatFormatHandling { get => throw null; set => throw null; } + System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; + public Newtonsoft.Json.FloatFormatHandling FloatFormatHandling { get => throw null; set { } } public abstract void Flush(); public virtual System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public Newtonsoft.Json.Formatting Formatting { get => throw null; set => throw null; } - protected JsonWriter() => throw null; + public Newtonsoft.Json.Formatting Formatting { get => throw null; set { } } public string Path { get => throw null; } protected void SetWriteState(Newtonsoft.Json.JsonToken token, object value) => throw null; protected System.Threading.Tasks.Task SetWriteStateAsync(Newtonsoft.Json.JsonToken token, object value, System.Threading.CancellationToken cancellationToken) => throw null; - public Newtonsoft.Json.StringEscapeHandling StringEscapeHandling { get => throw null; set => throw null; } - protected internal int Top { get => throw null; } + public Newtonsoft.Json.StringEscapeHandling StringEscapeHandling { get => throw null; set { } } + protected int Top { get => throw null; } public virtual void WriteComment(string text) => throw null; public virtual System.Threading.Tasks.Task WriteCommentAsync(string text, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual void WriteEnd() => throw null; protected virtual void WriteEnd(Newtonsoft.Json.JsonToken token) => throw null; public virtual void WriteEndArray() => throw null; public virtual System.Threading.Tasks.Task WriteEndArrayAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteEndAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected virtual System.Threading.Tasks.Task WriteEndAsync(Newtonsoft.Json.JsonToken token, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task WriteEndAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual void WriteEndConstructor() => throw null; public virtual System.Threading.Tasks.Task WriteEndConstructorAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual void WriteEndObject() => throw null; @@ -740,509 +865,156 @@ namespace Newtonsoft public Newtonsoft.Json.WriteState WriteState { get => throw null; } public void WriteToken(Newtonsoft.Json.JsonReader reader) => throw null; public void WriteToken(Newtonsoft.Json.JsonReader reader, bool writeChildren) => throw null; - public void WriteToken(Newtonsoft.Json.JsonToken token) => throw null; public void WriteToken(Newtonsoft.Json.JsonToken token, object value) => throw null; + public void WriteToken(Newtonsoft.Json.JsonToken token) => throw null; public System.Threading.Tasks.Task WriteTokenAsync(Newtonsoft.Json.JsonReader reader, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task WriteTokenAsync(Newtonsoft.Json.JsonReader reader, bool writeChildren, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task WriteTokenAsync(Newtonsoft.Json.JsonToken token, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task WriteTokenAsync(Newtonsoft.Json.JsonToken token, object value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual void WriteUndefined() => throw null; public virtual System.Threading.Tasks.Task WriteUndefinedAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual void WriteValue(System.Byte[] value) => throw null; - public virtual void WriteValue(System.DateTime value) => throw null; - public virtual void WriteValue(System.DateTime? value) => throw null; - public virtual void WriteValue(System.DateTimeOffset value) => throw null; - public virtual void WriteValue(System.DateTimeOffset? value) => throw null; - public virtual void WriteValue(System.Guid value) => throw null; - public virtual void WriteValue(System.Guid? value) => throw null; - public virtual void WriteValue(System.TimeSpan value) => throw null; - public virtual void WriteValue(System.TimeSpan? value) => throw null; - public virtual void WriteValue(System.Uri value) => throw null; - public virtual void WriteValue(bool value) => throw null; - public virtual void WriteValue(bool? value) => throw null; - public virtual void WriteValue(System.Byte value) => throw null; - public virtual void WriteValue(System.Byte? value) => throw null; - public virtual void WriteValue(System.Char value) => throw null; - public virtual void WriteValue(System.Char? value) => throw null; - public virtual void WriteValue(System.Decimal value) => throw null; - public virtual void WriteValue(System.Decimal? value) => throw null; - public virtual void WriteValue(double value) => throw null; - public virtual void WriteValue(double? value) => throw null; - public virtual void WriteValue(float value) => throw null; - public virtual void WriteValue(float? value) => throw null; - public virtual void WriteValue(int value) => throw null; - public virtual void WriteValue(int? value) => throw null; - public virtual void WriteValue(System.Int64 value) => throw null; - public virtual void WriteValue(System.Int64? value) => throw null; - public virtual void WriteValue(object value) => throw null; - public virtual void WriteValue(System.SByte value) => throw null; - public virtual void WriteValue(System.SByte? value) => throw null; - public virtual void WriteValue(System.Int16 value) => throw null; - public virtual void WriteValue(System.Int16? value) => throw null; public virtual void WriteValue(string value) => throw null; - public virtual void WriteValue(System.UInt32 value) => throw null; - public virtual void WriteValue(System.UInt32? value) => throw null; - public virtual void WriteValue(System.UInt64 value) => throw null; - public virtual void WriteValue(System.UInt64? value) => throw null; - public virtual void WriteValue(System.UInt16 value) => throw null; - public virtual void WriteValue(System.UInt16? value) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Byte[] value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual void WriteValue(int value) => throw null; + public virtual void WriteValue(uint value) => throw null; + public virtual void WriteValue(long value) => throw null; + public virtual void WriteValue(ulong value) => throw null; + public virtual void WriteValue(float value) => throw null; + public virtual void WriteValue(double value) => throw null; + public virtual void WriteValue(bool value) => throw null; + public virtual void WriteValue(short value) => throw null; + public virtual void WriteValue(ushort value) => throw null; + public virtual void WriteValue(char value) => throw null; + public virtual void WriteValue(byte value) => throw null; + public virtual void WriteValue(sbyte value) => throw null; + public virtual void WriteValue(decimal value) => throw null; + public virtual void WriteValue(System.DateTime value) => throw null; + public virtual void WriteValue(System.DateTimeOffset value) => throw null; + public virtual void WriteValue(System.Guid value) => throw null; + public virtual void WriteValue(System.TimeSpan value) => throw null; + public virtual void WriteValue(int? value) => throw null; + public virtual void WriteValue(uint? value) => throw null; + public virtual void WriteValue(long? value) => throw null; + public virtual void WriteValue(ulong? value) => throw null; + public virtual void WriteValue(float? value) => throw null; + public virtual void WriteValue(double? value) => throw null; + public virtual void WriteValue(bool? value) => throw null; + public virtual void WriteValue(short? value) => throw null; + public virtual void WriteValue(ushort? value) => throw null; + public virtual void WriteValue(char? value) => throw null; + public virtual void WriteValue(byte? value) => throw null; + public virtual void WriteValue(sbyte? value) => throw null; + public virtual void WriteValue(decimal? value) => throw null; + public virtual void WriteValue(System.DateTime? value) => throw null; + public virtual void WriteValue(System.DateTimeOffset? value) => throw null; + public virtual void WriteValue(System.Guid? value) => throw null; + public virtual void WriteValue(System.TimeSpan? value) => throw null; + public virtual void WriteValue(byte[] value) => throw null; + public virtual void WriteValue(System.Uri value) => throw null; + public virtual void WriteValue(object value) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(bool value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(bool? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(byte value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(byte? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(byte[] value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(char value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(char? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(System.DateTime value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(System.DateTime? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(System.DateTimeOffset value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(System.DateTimeOffset? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Guid value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Guid? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.TimeSpan value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.TimeSpan? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Uri value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(bool value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(bool? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Byte value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Byte? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Char value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Char? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Decimal value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Decimal? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(decimal value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(decimal? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(double value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(double? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(float value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(float? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(System.Guid value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(System.Guid? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(int value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(int? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Int64 value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Int64? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(long value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(long? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(object value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.SByte value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.SByte? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Int16 value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.Int16? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(sbyte value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(sbyte? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(short value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(short? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(string value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.UInt32 value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.UInt32? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.UInt64 value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.UInt64? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.UInt16 value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteValueAsync(System.UInt16? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(System.TimeSpan value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(System.TimeSpan? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(uint value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(uint? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(ulong value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(ulong? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(System.Uri value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(ushort value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteValueAsync(ushort? value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected virtual void WriteValueDelimiter() => throw null; protected virtual System.Threading.Tasks.Task WriteValueDelimiterAsync(System.Threading.CancellationToken cancellationToken) => throw null; public virtual void WriteWhitespace(string ws) => throw null; public virtual System.Threading.Tasks.Task WriteWhitespaceAsync(string ws, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - // Generated from `Newtonsoft.Json.JsonWriterException` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonWriterException : Newtonsoft.Json.JsonException { public JsonWriterException() => throw null; - public JsonWriterException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public JsonWriterException(string message) => throw null; public JsonWriterException(string message, System.Exception innerException) => throw null; + public JsonWriterException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public JsonWriterException(string message, string path, System.Exception innerException) => throw null; public string Path { get => throw null; } } - - // Generated from `Newtonsoft.Json.MemberSerialization` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public enum MemberSerialization - { - Fields = 2, - OptIn = 1, - OptOut = 0, - } - - // Generated from `Newtonsoft.Json.MetadataPropertyHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public enum MetadataPropertyHandling - { - Default = 0, - Ignore = 2, - ReadAhead = 1, - } - - // Generated from `Newtonsoft.Json.MissingMemberHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public enum MissingMemberHandling - { - Error = 1, - Ignore = 0, - } - - // Generated from `Newtonsoft.Json.NullValueHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public enum NullValueHandling - { - Ignore = 1, - Include = 0, - } - - // Generated from `Newtonsoft.Json.ObjectCreationHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public enum ObjectCreationHandling - { - Auto = 0, - Replace = 2, - Reuse = 1, - } - - // Generated from `Newtonsoft.Json.PreserveReferencesHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - [System.Flags] - public enum PreserveReferencesHandling - { - All = 3, - Arrays = 2, - None = 0, - Objects = 1, - } - - // Generated from `Newtonsoft.Json.ReferenceLoopHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public enum ReferenceLoopHandling - { - Error = 0, - Ignore = 1, - Serialize = 2, - } - - // Generated from `Newtonsoft.Json.Required` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public enum Required - { - AllowNull = 1, - Always = 2, - Default = 0, - DisallowNull = 3, - } - - // Generated from `Newtonsoft.Json.StringEscapeHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public enum StringEscapeHandling - { - Default = 0, - EscapeHtml = 2, - EscapeNonAscii = 1, - } - - // Generated from `Newtonsoft.Json.TypeNameAssemblyFormatHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public enum TypeNameAssemblyFormatHandling - { - Full = 1, - Simple = 0, - } - - // Generated from `Newtonsoft.Json.TypeNameHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - [System.Flags] - public enum TypeNameHandling - { - All = 3, - Arrays = 2, - Auto = 4, - None = 0, - Objects = 1, - } - - // Generated from `Newtonsoft.Json.WriteState` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public enum WriteState - { - Array = 3, - Closed = 1, - Constructor = 4, - Error = 0, - Object = 2, - Property = 5, - Start = 6, - } - - namespace Bson - { - // Generated from `Newtonsoft.Json.Bson.BsonObjectId` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class BsonObjectId - { - public BsonObjectId(System.Byte[] value) => throw null; - public System.Byte[] Value { get => throw null; } - } - - // Generated from `Newtonsoft.Json.Bson.BsonReader` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class BsonReader : Newtonsoft.Json.JsonReader - { - public BsonReader(System.IO.BinaryReader reader) => throw null; - public BsonReader(System.IO.BinaryReader reader, bool readRootValueAsArray, System.DateTimeKind dateTimeKindHandling) => throw null; - public BsonReader(System.IO.Stream stream) => throw null; - public BsonReader(System.IO.Stream stream, bool readRootValueAsArray, System.DateTimeKind dateTimeKindHandling) => throw null; - public override void Close() => throw null; - public System.DateTimeKind DateTimeKindHandling { get => throw null; set => throw null; } - public bool JsonNet35BinaryCompatibility { get => throw null; set => throw null; } - public override bool Read() => throw null; - public bool ReadRootValueAsArray { get => throw null; set => throw null; } - } - - // Generated from `Newtonsoft.Json.Bson.BsonWriter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class BsonWriter : Newtonsoft.Json.JsonWriter - { - public BsonWriter(System.IO.BinaryWriter writer) => throw null; - public BsonWriter(System.IO.Stream stream) => throw null; - public override void Close() => throw null; - public System.DateTimeKind DateTimeKindHandling { get => throw null; set => throw null; } - public override void Flush() => throw null; - public override void WriteComment(string text) => throw null; - protected override void WriteEnd(Newtonsoft.Json.JsonToken token) => throw null; - public override void WriteNull() => throw null; - public void WriteObjectId(System.Byte[] value) => throw null; - public override void WritePropertyName(string name) => throw null; - public override void WriteRaw(string json) => throw null; - public override void WriteRawValue(string json) => throw null; - public void WriteRegex(string pattern, string options) => throw null; - public override void WriteStartArray() => throw null; - public override void WriteStartConstructor(string name) => throw null; - public override void WriteStartObject() => throw null; - public override void WriteUndefined() => throw null; - public override void WriteValue(System.Byte[] value) => throw null; - public override void WriteValue(System.DateTime value) => throw null; - public override void WriteValue(System.DateTimeOffset value) => throw null; - public override void WriteValue(System.Guid value) => throw null; - public override void WriteValue(System.TimeSpan value) => throw null; - public override void WriteValue(System.Uri value) => throw null; - public override void WriteValue(bool value) => throw null; - public override void WriteValue(System.Byte value) => throw null; - public override void WriteValue(System.Char value) => throw null; - public override void WriteValue(System.Decimal value) => throw null; - public override void WriteValue(double value) => throw null; - public override void WriteValue(float value) => throw null; - public override void WriteValue(int value) => throw null; - public override void WriteValue(System.Int64 value) => throw null; - public override void WriteValue(object value) => throw null; - public override void WriteValue(System.SByte value) => throw null; - public override void WriteValue(System.Int16 value) => throw null; - public override void WriteValue(string value) => throw null; - public override void WriteValue(System.UInt32 value) => throw null; - public override void WriteValue(System.UInt64 value) => throw null; - public override void WriteValue(System.UInt16 value) => throw null; - } - - } - namespace Converters - { - // Generated from `Newtonsoft.Json.Converters.BinaryConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class BinaryConverter : Newtonsoft.Json.JsonConverter - { - public BinaryConverter() => throw null; - public override bool CanConvert(System.Type objectType) => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.BsonObjectIdConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class BsonObjectIdConverter : Newtonsoft.Json.JsonConverter - { - public BsonObjectIdConverter() => throw null; - public override bool CanConvert(System.Type objectType) => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.CustomCreationConverter<>` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public abstract class CustomCreationConverter : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type objectType) => throw null; - public override bool CanWrite { get => throw null; } - public abstract T Create(System.Type objectType); - protected CustomCreationConverter() => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.DataSetConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class DataSetConverter : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type valueType) => throw null; - public DataSetConverter() => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.DataTableConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class DataTableConverter : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type valueType) => throw null; - public DataTableConverter() => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.DateTimeConverterBase` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public abstract class DateTimeConverterBase : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type objectType) => throw null; - protected DateTimeConverterBase() => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.DiscriminatedUnionConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class DiscriminatedUnionConverter : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type objectType) => throw null; - public DiscriminatedUnionConverter() => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.EntityKeyMemberConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class EntityKeyMemberConverter : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type objectType) => throw null; - public EntityKeyMemberConverter() => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.ExpandoObjectConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class ExpandoObjectConverter : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type objectType) => throw null; - public override bool CanWrite { get => throw null; } - public ExpandoObjectConverter() => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.IsoDateTimeConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class IsoDateTimeConverter : Newtonsoft.Json.Converters.DateTimeConverterBase - { - public System.Globalization.CultureInfo Culture { get => throw null; set => throw null; } - public string DateTimeFormat { get => throw null; set => throw null; } - public System.Globalization.DateTimeStyles DateTimeStyles { get => throw null; set => throw null; } - public IsoDateTimeConverter() => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.JavaScriptDateTimeConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JavaScriptDateTimeConverter : Newtonsoft.Json.Converters.DateTimeConverterBase - { - public JavaScriptDateTimeConverter() => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.KeyValuePairConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class KeyValuePairConverter : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type objectType) => throw null; - public KeyValuePairConverter() => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.RegexConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class RegexConverter : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type objectType) => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public RegexConverter() => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.StringEnumConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class StringEnumConverter : Newtonsoft.Json.JsonConverter - { - public bool AllowIntegerValues { get => throw null; set => throw null; } - public bool CamelCaseText { get => throw null; set => throw null; } - public override bool CanConvert(System.Type objectType) => throw null; - public Newtonsoft.Json.Serialization.NamingStrategy NamingStrategy { get => throw null; set => throw null; } - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public StringEnumConverter() => throw null; - public StringEnumConverter(Newtonsoft.Json.Serialization.NamingStrategy namingStrategy, bool allowIntegerValues = default(bool)) => throw null; - public StringEnumConverter(System.Type namingStrategyType) => throw null; - public StringEnumConverter(System.Type namingStrategyType, object[] namingStrategyParameters) => throw null; - public StringEnumConverter(System.Type namingStrategyType, object[] namingStrategyParameters, bool allowIntegerValues) => throw null; - public StringEnumConverter(bool camelCaseText) => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.UnixDateTimeConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class UnixDateTimeConverter : Newtonsoft.Json.Converters.DateTimeConverterBase - { - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public UnixDateTimeConverter() => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.VersionConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class VersionConverter : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type objectType) => throw null; - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public VersionConverter() => throw null; - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - } - - // Generated from `Newtonsoft.Json.Converters.XmlNodeConverter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class XmlNodeConverter : Newtonsoft.Json.JsonConverter - { - public override bool CanConvert(System.Type valueType) => throw null; - public string DeserializeRootElementName { get => throw null; set => throw null; } - public bool EncodeSpecialCharacters { get => throw null; set => throw null; } - public bool OmitRootObject { get => throw null; set => throw null; } - public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public bool WriteArrayAttribute { get => throw null; set => throw null; } - public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; - public XmlNodeConverter() => throw null; - } - - } namespace Linq { - // Generated from `Newtonsoft.Json.Linq.CommentHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum CommentHandling { Ignore = 0, Load = 1, } - - // Generated from `Newtonsoft.Json.Linq.DuplicatePropertyNameHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum DuplicatePropertyNameHandling { - Error = 2, - Ignore = 1, Replace = 0, + Ignore = 1, + Error = 2, } - - // Generated from `Newtonsoft.Json.Linq.Extensions` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public static class Extensions + public static partial class Extensions { public static Newtonsoft.Json.Linq.IJEnumerable Ancestors(this System.Collections.Generic.IEnumerable source) where T : Newtonsoft.Json.Linq.JToken => throw null; public static Newtonsoft.Json.Linq.IJEnumerable AncestorsAndSelf(this System.Collections.Generic.IEnumerable source) where T : Newtonsoft.Json.Linq.JToken => throw null; public static Newtonsoft.Json.Linq.IJEnumerable AsJEnumerable(this System.Collections.Generic.IEnumerable source) => throw null; public static Newtonsoft.Json.Linq.IJEnumerable AsJEnumerable(this System.Collections.Generic.IEnumerable source) where T : Newtonsoft.Json.Linq.JToken => throw null; - public static System.Collections.Generic.IEnumerable Children(this System.Collections.Generic.IEnumerable source) where T : Newtonsoft.Json.Linq.JToken => throw null; public static Newtonsoft.Json.Linq.IJEnumerable Children(this System.Collections.Generic.IEnumerable source) where T : Newtonsoft.Json.Linq.JToken => throw null; + public static System.Collections.Generic.IEnumerable Children(this System.Collections.Generic.IEnumerable source) where T : Newtonsoft.Json.Linq.JToken => throw null; public static Newtonsoft.Json.Linq.IJEnumerable Descendants(this System.Collections.Generic.IEnumerable source) where T : Newtonsoft.Json.Linq.JContainer => throw null; public static Newtonsoft.Json.Linq.IJEnumerable DescendantsAndSelf(this System.Collections.Generic.IEnumerable source) where T : Newtonsoft.Json.Linq.JContainer => throw null; public static Newtonsoft.Json.Linq.IJEnumerable Properties(this System.Collections.Generic.IEnumerable source) => throw null; - public static U Value(this System.Collections.Generic.IEnumerable value) where T : Newtonsoft.Json.Linq.JToken => throw null; public static U Value(this System.Collections.Generic.IEnumerable value) => throw null; - public static Newtonsoft.Json.Linq.IJEnumerable Values(this System.Collections.Generic.IEnumerable source) => throw null; + public static U Value(this System.Collections.Generic.IEnumerable value) where T : Newtonsoft.Json.Linq.JToken => throw null; public static Newtonsoft.Json.Linq.IJEnumerable Values(this System.Collections.Generic.IEnumerable source, object key) => throw null; - public static System.Collections.Generic.IEnumerable Values(this System.Collections.Generic.IEnumerable source) => throw null; + public static Newtonsoft.Json.Linq.IJEnumerable Values(this System.Collections.Generic.IEnumerable source) => throw null; public static System.Collections.Generic.IEnumerable Values(this System.Collections.Generic.IEnumerable source, object key) => throw null; + public static System.Collections.Generic.IEnumerable Values(this System.Collections.Generic.IEnumerable source) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.IJEnumerable<>` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public interface IJEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable where T : Newtonsoft.Json.Linq.JToken { Newtonsoft.Json.Linq.IJEnumerable this[object key] { get; } } - - // Generated from `Newtonsoft.Json.Linq.JArray` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JArray : Newtonsoft.Json.Linq.JContainer, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + public class JArray : Newtonsoft.Json.Linq.JContainer, System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public void Add(Newtonsoft.Json.Linq.JToken item) => throw null; protected override System.Collections.Generic.IList ChildrenTokens { get => throw null; } public void Clear() => throw null; public bool Contains(Newtonsoft.Json.Linq.JToken item) => throw null; public void CopyTo(Newtonsoft.Json.Linq.JToken[] array, int arrayIndex) => throw null; + public JArray() => throw null; + public JArray(Newtonsoft.Json.Linq.JArray other) => throw null; + public JArray(params object[] content) => throw null; + public JArray(object content) => throw null; public static Newtonsoft.Json.Linq.JArray FromObject(object o) => throw null; public static Newtonsoft.Json.Linq.JArray FromObject(object o, Newtonsoft.Json.JsonSerializer jsonSerializer) => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; public int IndexOf(Newtonsoft.Json.Linq.JToken item) => throw null; public void Insert(int index, Newtonsoft.Json.Linq.JToken item) => throw null; public bool IsReadOnly { get => throw null; } - public Newtonsoft.Json.Linq.JToken this[int index] { get => throw null; set => throw null; } - public override Newtonsoft.Json.Linq.JToken this[object key] { get => throw null; set => throw null; } - public JArray() => throw null; - public JArray(Newtonsoft.Json.Linq.JArray other) => throw null; - public JArray(object content) => throw null; - public JArray(params object[] content) => throw null; public static Newtonsoft.Json.Linq.JArray Load(Newtonsoft.Json.JsonReader reader) => throw null; public static Newtonsoft.Json.Linq.JArray Load(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; public static System.Threading.Tasks.Task LoadAsync(Newtonsoft.Json.JsonReader reader, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; @@ -1251,41 +1023,39 @@ namespace Newtonsoft public static Newtonsoft.Json.Linq.JArray Parse(string json, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; public bool Remove(Newtonsoft.Json.Linq.JToken item) => throw null; public void RemoveAt(int index) => throw null; + public override Newtonsoft.Json.Linq.JToken this[object key] { get => throw null; set { } } + public Newtonsoft.Json.Linq.JToken this[int index] { get => throw null; set { } } public override Newtonsoft.Json.Linq.JTokenType Type { get => throw null; } public override void WriteTo(Newtonsoft.Json.JsonWriter writer, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public override System.Threading.Tasks.Task WriteToAsync(Newtonsoft.Json.JsonWriter writer, System.Threading.CancellationToken cancellationToken, params Newtonsoft.Json.JsonConverter[] converters) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JConstructor` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JConstructor : Newtonsoft.Json.Linq.JContainer { protected override System.Collections.Generic.IList ChildrenTokens { get => throw null; } - public override Newtonsoft.Json.Linq.JToken this[object key] { get => throw null; set => throw null; } public JConstructor() => throw null; public JConstructor(Newtonsoft.Json.Linq.JConstructor other) => throw null; - public JConstructor(string name) => throw null; - public JConstructor(string name, object content) => throw null; public JConstructor(string name, params object[] content) => throw null; + public JConstructor(string name, object content) => throw null; + public JConstructor(string name) => throw null; public static Newtonsoft.Json.Linq.JConstructor Load(Newtonsoft.Json.JsonReader reader) => throw null; public static Newtonsoft.Json.Linq.JConstructor Load(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; public static System.Threading.Tasks.Task LoadAsync(Newtonsoft.Json.JsonReader reader, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task LoadAsync(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public string Name { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } + public override Newtonsoft.Json.Linq.JToken this[object key] { get => throw null; set { } } public override Newtonsoft.Json.Linq.JTokenType Type { get => throw null; } public override void WriteTo(Newtonsoft.Json.JsonWriter writer, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public override System.Threading.Tasks.Task WriteToAsync(Newtonsoft.Json.JsonWriter writer, System.Threading.CancellationToken cancellationToken, params Newtonsoft.Json.JsonConverter[] converters) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JContainer` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public abstract class JContainer : Newtonsoft.Json.Linq.JToken, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.IBindingList, System.ComponentModel.ITypedList + public abstract class JContainer : Newtonsoft.Json.Linq.JToken, System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.ComponentModel.ITypedList, System.ComponentModel.IBindingList, System.Collections.ICollection, System.Collections.IList, System.Collections.Specialized.INotifyCollectionChanged { - void System.Collections.Generic.ICollection.Add(Newtonsoft.Json.Linq.JToken item) => throw null; public virtual void Add(object content) => throw null; + void System.Collections.Generic.ICollection.Add(Newtonsoft.Json.Linq.JToken item) => throw null; int System.Collections.IList.Add(object value) => throw null; public void AddFirst(object content) => throw null; void System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor property) => throw null; + public event System.ComponentModel.AddingNewEventHandler AddingNew { add { } remove { } } object System.ComponentModel.IBindingList.AddNew() => throw null; - public event System.ComponentModel.AddingNewEventHandler AddingNew; bool System.ComponentModel.IBindingList.AllowEdit { get => throw null; } bool System.ComponentModel.IBindingList.AllowNew { get => throw null; } bool System.ComponentModel.IBindingList.AllowRemove { get => throw null; } @@ -1294,11 +1064,11 @@ namespace Newtonsoft protected abstract System.Collections.Generic.IList ChildrenTokens { get; } void System.Collections.Generic.ICollection.Clear() => throw null; void System.Collections.IList.Clear() => throw null; - public event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; + public event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged { add { } remove { } } bool System.Collections.Generic.ICollection.Contains(Newtonsoft.Json.Linq.JToken item) => throw null; bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; void System.Collections.Generic.ICollection.CopyTo(Newtonsoft.Json.Linq.JToken[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public Newtonsoft.Json.JsonWriter CreateWriter() => throw null; public System.Collections.Generic.IEnumerable Descendants() => throw null; @@ -1317,11 +1087,10 @@ namespace Newtonsoft bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.ComponentModel.IBindingList.IsSorted { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - Newtonsoft.Json.Linq.JToken System.Collections.Generic.IList.this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - internal JContainer() => throw null; + Newtonsoft.Json.Linq.JToken System.Collections.Generic.IList.this[int index] { get => throw null; set { } } + object System.Collections.IList.this[int index] { get => throw null; set { } } public override Newtonsoft.Json.Linq.JToken Last { get => throw null; } - public event System.ComponentModel.ListChangedEventHandler ListChanged; + public event System.ComponentModel.ListChangedEventHandler ListChanged { add { } remove { } } public void Merge(object content) => throw null; public void Merge(object content, Newtonsoft.Json.Linq.JsonMergeSettings settings) => throw null; protected virtual void OnAddingNew(System.ComponentModel.AddingNewEventArgs e) => throw null; @@ -1343,10 +1112,9 @@ namespace Newtonsoft object System.Collections.ICollection.SyncRoot { get => throw null; } public override System.Collections.Generic.IEnumerable Values() => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JEnumerable<>` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public struct JEnumerable : Newtonsoft.Json.Linq.IJEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IEquatable> where T : Newtonsoft.Json.Linq.JToken { + public JEnumerable(System.Collections.Generic.IEnumerable enumerable) => throw null; public static Newtonsoft.Json.Linq.JEnumerable Empty; public bool Equals(Newtonsoft.Json.Linq.JEnumerable other) => throw null; public override bool Equals(object obj) => throw null; @@ -1354,20 +1122,20 @@ namespace Newtonsoft System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public override int GetHashCode() => throw null; public Newtonsoft.Json.Linq.IJEnumerable this[object key] { get => throw null; } - // Stub generator skipped constructor - public JEnumerable(System.Collections.Generic.IEnumerable enumerable) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JObject` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JObject : Newtonsoft.Json.Linq.JContainer, System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.ComponentModel.ICustomTypeDescriptor, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging + public class JObject : Newtonsoft.Json.Linq.JContainer, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.ICustomTypeDescriptor, System.ComponentModel.INotifyPropertyChanging { - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(string propertyName, Newtonsoft.Json.Linq.JToken value) => throw null; + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; protected override System.Collections.Generic.IList ChildrenTokens { get => throw null; } void System.Collections.Generic.ICollection>.Clear() => throw null; bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair item) => throw null; public bool ContainsKey(string propertyName) => throw null; void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + public JObject() => throw null; + public JObject(Newtonsoft.Json.Linq.JObject other) => throw null; + public JObject(params object[] content) => throw null; + public JObject(object content) => throw null; public static Newtonsoft.Json.Linq.JObject FromObject(object o) => throw null; public static Newtonsoft.Json.Linq.JObject FromObject(object o, Newtonsoft.Json.JsonSerializer jsonSerializer) => throw null; System.ComponentModel.AttributeCollection System.ComponentModel.ICustomTypeDescriptor.GetAttributes() => throw null; @@ -1378,8 +1146,8 @@ namespace Newtonsoft System.ComponentModel.PropertyDescriptor System.ComponentModel.ICustomTypeDescriptor.GetDefaultProperty() => throw null; object System.ComponentModel.ICustomTypeDescriptor.GetEditor(System.Type editorBaseType) => throw null; public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; - System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents() => throw null; System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[] attributes) => throw null; + System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents() => throw null; protected override System.Dynamic.DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter) => throw null; System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetProperties() => throw null; System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[] attributes) => throw null; @@ -1387,12 +1155,6 @@ namespace Newtonsoft public Newtonsoft.Json.Linq.JToken GetValue(string propertyName) => throw null; public Newtonsoft.Json.Linq.JToken GetValue(string propertyName, System.StringComparison comparison) => throw null; bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } - public override Newtonsoft.Json.Linq.JToken this[object key] { get => throw null; set => throw null; } - public Newtonsoft.Json.Linq.JToken this[string propertyName] { get => throw null; set => throw null; } - public JObject() => throw null; - public JObject(Newtonsoft.Json.Linq.JObject other) => throw null; - public JObject(object content) => throw null; - public JObject(params object[] content) => throw null; System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } public static Newtonsoft.Json.Linq.JObject Load(Newtonsoft.Json.JsonReader reader) => throw null; public static Newtonsoft.Json.Linq.JObject Load(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; @@ -1405,11 +1167,13 @@ namespace Newtonsoft public System.Collections.Generic.IEnumerable Properties() => throw null; public Newtonsoft.Json.Linq.JProperty Property(string name) => throw null; public Newtonsoft.Json.Linq.JProperty Property(string name, System.StringComparison comparison) => throw null; - public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - public event System.ComponentModel.PropertyChangingEventHandler PropertyChanging; + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } + public event System.ComponentModel.PropertyChangingEventHandler PropertyChanging { add { } remove { } } public Newtonsoft.Json.Linq.JEnumerable PropertyValues() => throw null; - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; public bool Remove(string propertyName) => throw null; + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public override Newtonsoft.Json.Linq.JToken this[object key] { get => throw null; set { } } + public Newtonsoft.Json.Linq.JToken this[string propertyName] { get => throw null; set { } } public bool TryGetValue(string propertyName, System.StringComparison comparison, out Newtonsoft.Json.Linq.JToken value) => throw null; public bool TryGetValue(string propertyName, out Newtonsoft.Json.Linq.JToken value) => throw null; public override Newtonsoft.Json.Linq.JTokenType Type { get => throw null; } @@ -1417,41 +1181,35 @@ namespace Newtonsoft public override void WriteTo(Newtonsoft.Json.JsonWriter writer, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public override System.Threading.Tasks.Task WriteToAsync(Newtonsoft.Json.JsonWriter writer, System.Threading.CancellationToken cancellationToken, params Newtonsoft.Json.JsonConverter[] converters) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JProperty` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JProperty : Newtonsoft.Json.Linq.JContainer { protected override System.Collections.Generic.IList ChildrenTokens { get => throw null; } public JProperty(Newtonsoft.Json.Linq.JProperty other) => throw null; - public JProperty(string name, object content) => throw null; public JProperty(string name, params object[] content) => throw null; + public JProperty(string name, object content) => throw null; public static Newtonsoft.Json.Linq.JProperty Load(Newtonsoft.Json.JsonReader reader) => throw null; public static Newtonsoft.Json.Linq.JProperty Load(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; public static System.Threading.Tasks.Task LoadAsync(Newtonsoft.Json.JsonReader reader, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task LoadAsync(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public string Name { get => throw null; } public override Newtonsoft.Json.Linq.JTokenType Type { get => throw null; } - public Newtonsoft.Json.Linq.JToken Value { get => throw null; set => throw null; } + public Newtonsoft.Json.Linq.JToken Value { get => throw null; set { } } public override void WriteTo(Newtonsoft.Json.JsonWriter writer, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public override System.Threading.Tasks.Task WriteToAsync(Newtonsoft.Json.JsonWriter writer, System.Threading.CancellationToken cancellationToken, params Newtonsoft.Json.JsonConverter[] converters) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JPropertyDescriptor` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JPropertyDescriptor : System.ComponentModel.PropertyDescriptor { public override bool CanResetValue(object component) => throw null; public override System.Type ComponentType { get => throw null; } + public JPropertyDescriptor(string name) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; public override object GetValue(object component) => throw null; public override bool IsReadOnly { get => throw null; } - public JPropertyDescriptor(string name) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; protected override int NameHashCode { get => throw null; } public override System.Type PropertyType { get => throw null; } public override void ResetValue(object component) => throw null; public override void SetValue(object component, object value) => throw null; public override bool ShouldSerializeValue(object component) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JRaw` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JRaw : Newtonsoft.Json.Linq.JValue { public static Newtonsoft.Json.Linq.JRaw Create(Newtonsoft.Json.JsonReader reader) => throw null; @@ -1459,9 +1217,32 @@ namespace Newtonsoft public JRaw(Newtonsoft.Json.Linq.JRaw other) : base(default(Newtonsoft.Json.Linq.JValue)) => throw null; public JRaw(object rawJson) : base(default(Newtonsoft.Json.Linq.JValue)) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JToken` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public abstract class JToken : Newtonsoft.Json.IJsonLineInfo, Newtonsoft.Json.Linq.IJEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Dynamic.IDynamicMetaObjectProvider, System.ICloneable + public class JsonCloneSettings + { + public bool CopyAnnotations { get => throw null; set { } } + public JsonCloneSettings() => throw null; + } + public class JsonLoadSettings + { + public Newtonsoft.Json.Linq.CommentHandling CommentHandling { get => throw null; set { } } + public JsonLoadSettings() => throw null; + public Newtonsoft.Json.Linq.DuplicatePropertyNameHandling DuplicatePropertyNameHandling { get => throw null; set { } } + public Newtonsoft.Json.Linq.LineInfoHandling LineInfoHandling { get => throw null; set { } } + } + public class JsonMergeSettings + { + public JsonMergeSettings() => throw null; + public Newtonsoft.Json.Linq.MergeArrayHandling MergeArrayHandling { get => throw null; set { } } + public Newtonsoft.Json.Linq.MergeNullValueHandling MergeNullValueHandling { get => throw null; set { } } + public System.StringComparison PropertyNameComparison { get => throw null; set { } } + } + public class JsonSelectSettings + { + public JsonSelectSettings() => throw null; + public bool ErrorWhenNoMatch { get => throw null; set { } } + public System.TimeSpan? RegexMatchTimeout { get => throw null; set { } } + } + public abstract class JToken : Newtonsoft.Json.Linq.IJEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, Newtonsoft.Json.IJsonLineInfo, System.ICloneable, System.Dynamic.IDynamicMetaObjectProvider { public void AddAfterSelf(object content) => throw null; public void AddAnnotation(object annotation) => throw null; @@ -1469,62 +1250,134 @@ namespace Newtonsoft public System.Collections.Generic.IEnumerable AfterSelf() => throw null; public System.Collections.Generic.IEnumerable Ancestors() => throw null; public System.Collections.Generic.IEnumerable AncestorsAndSelf() => throw null; - public object Annotation(System.Type type) => throw null; public T Annotation() where T : class => throw null; - public System.Collections.Generic.IEnumerable Annotations(System.Type type) => throw null; + public object Annotation(System.Type type) => throw null; public System.Collections.Generic.IEnumerable Annotations() where T : class => throw null; + public System.Collections.Generic.IEnumerable Annotations(System.Type type) => throw null; public System.Collections.Generic.IEnumerable BeforeSelf() => throw null; public virtual Newtonsoft.Json.Linq.JEnumerable Children() => throw null; public Newtonsoft.Json.Linq.JEnumerable Children() where T : Newtonsoft.Json.Linq.JToken => throw null; object System.ICloneable.Clone() => throw null; public Newtonsoft.Json.JsonReader CreateReader() => throw null; public Newtonsoft.Json.Linq.JToken DeepClone() => throw null; + public Newtonsoft.Json.Linq.JToken DeepClone(Newtonsoft.Json.Linq.JsonCloneSettings settings) => throw null; public static bool DeepEquals(Newtonsoft.Json.Linq.JToken t1, Newtonsoft.Json.Linq.JToken t2) => throw null; public static Newtonsoft.Json.Linq.JTokenEqualityComparer EqualityComparer { get => throw null; } public virtual Newtonsoft.Json.Linq.JToken First { get => throw null; } public static Newtonsoft.Json.Linq.JToken FromObject(object o) => throw null; public static Newtonsoft.Json.Linq.JToken FromObject(object o, Newtonsoft.Json.JsonSerializer jsonSerializer) => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; protected virtual System.Dynamic.DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter) => throw null; System.Dynamic.DynamicMetaObject System.Dynamic.IDynamicMetaObjectProvider.GetMetaObject(System.Linq.Expressions.Expression parameter) => throw null; bool Newtonsoft.Json.IJsonLineInfo.HasLineInfo() => throw null; public abstract bool HasValues { get; } - public virtual Newtonsoft.Json.Linq.JToken this[object key] { get => throw null; set => throw null; } Newtonsoft.Json.Linq.IJEnumerable Newtonsoft.Json.Linq.IJEnumerable.this[object key] { get => throw null; } - internal JToken() => throw null; public virtual Newtonsoft.Json.Linq.JToken Last { get => throw null; } int Newtonsoft.Json.IJsonLineInfo.LineNumber { get => throw null; } int Newtonsoft.Json.IJsonLineInfo.LinePosition { get => throw null; } - public static Newtonsoft.Json.Linq.JToken Load(Newtonsoft.Json.JsonReader reader) => throw null; public static Newtonsoft.Json.Linq.JToken Load(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; + public static Newtonsoft.Json.Linq.JToken Load(Newtonsoft.Json.JsonReader reader) => throw null; public static System.Threading.Tasks.Task LoadAsync(Newtonsoft.Json.JsonReader reader, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task LoadAsync(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public Newtonsoft.Json.Linq.JToken Next { get => throw null; set => throw null; } - public Newtonsoft.Json.Linq.JContainer Parent { get => throw null; set => throw null; } + public Newtonsoft.Json.Linq.JToken Next { get => throw null; } + public static explicit operator bool(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator System.DateTimeOffset(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator bool?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator long(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator System.DateTime?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator System.DateTimeOffset?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator decimal?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator double?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator char?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator int(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator short(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator ushort(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator char(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator byte(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator sbyte(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator int?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator short?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator ushort?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator byte?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator sbyte?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator System.DateTime(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator long?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator float?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator decimal(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator uint?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator ulong?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator double(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator float(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator string(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator uint(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator ulong(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator byte[](Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator System.Guid(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator System.Guid?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator System.TimeSpan(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator System.TimeSpan?(Newtonsoft.Json.Linq.JToken value) => throw null; + public static explicit operator System.Uri(Newtonsoft.Json.Linq.JToken value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(bool value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(System.DateTimeOffset value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(byte value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(byte? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(sbyte value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(sbyte? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(bool? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(long value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(System.DateTime? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(System.DateTimeOffset? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(decimal? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(double? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(short value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(ushort value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(int value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(int? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(System.DateTime value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(long? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(float? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(decimal value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(short? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(ushort? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(uint? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(ulong? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(double value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(float value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(string value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(uint value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(ulong value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(byte[] value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(System.Uri value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(System.TimeSpan value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(System.TimeSpan? value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(System.Guid value) => throw null; + public static implicit operator Newtonsoft.Json.Linq.JToken(System.Guid? value) => throw null; + public Newtonsoft.Json.Linq.JContainer Parent { get => throw null; } public static Newtonsoft.Json.Linq.JToken Parse(string json) => throw null; public static Newtonsoft.Json.Linq.JToken Parse(string json, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; public string Path { get => throw null; } - public Newtonsoft.Json.Linq.JToken Previous { get => throw null; set => throw null; } + public Newtonsoft.Json.Linq.JToken Previous { get => throw null; } public static Newtonsoft.Json.Linq.JToken ReadFrom(Newtonsoft.Json.JsonReader reader) => throw null; public static Newtonsoft.Json.Linq.JToken ReadFrom(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; public static System.Threading.Tasks.Task ReadFromAsync(Newtonsoft.Json.JsonReader reader, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task ReadFromAsync(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public void Remove() => throw null; - public void RemoveAnnotations(System.Type type) => throw null; public void RemoveAnnotations() where T : class => throw null; + public void RemoveAnnotations(System.Type type) => throw null; public void Replace(Newtonsoft.Json.Linq.JToken value) => throw null; public Newtonsoft.Json.Linq.JToken Root { get => throw null; } public Newtonsoft.Json.Linq.JToken SelectToken(string path) => throw null; - public Newtonsoft.Json.Linq.JToken SelectToken(string path, Newtonsoft.Json.Linq.JsonSelectSettings settings) => throw null; public Newtonsoft.Json.Linq.JToken SelectToken(string path, bool errorWhenNoMatch) => throw null; + public Newtonsoft.Json.Linq.JToken SelectToken(string path, Newtonsoft.Json.Linq.JsonSelectSettings settings) => throw null; public System.Collections.Generic.IEnumerable SelectTokens(string path) => throw null; - public System.Collections.Generic.IEnumerable SelectTokens(string path, Newtonsoft.Json.Linq.JsonSelectSettings settings) => throw null; public System.Collections.Generic.IEnumerable SelectTokens(string path, bool errorWhenNoMatch) => throw null; - public object ToObject(System.Type objectType) => throw null; - public object ToObject(System.Type objectType, Newtonsoft.Json.JsonSerializer jsonSerializer) => throw null; + public System.Collections.Generic.IEnumerable SelectTokens(string path, Newtonsoft.Json.Linq.JsonSelectSettings settings) => throw null; + public virtual Newtonsoft.Json.Linq.JToken this[object key] { get => throw null; set { } } public T ToObject() => throw null; + public object ToObject(System.Type objectType) => throw null; public T ToObject(Newtonsoft.Json.JsonSerializer jsonSerializer) => throw null; + public object ToObject(System.Type objectType, Newtonsoft.Json.JsonSerializer jsonSerializer) => throw null; public override string ToString() => throw null; public string ToString(Newtonsoft.Json.Formatting formatting, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public abstract Newtonsoft.Json.Linq.JTokenType Type { get; } @@ -1533,132 +1386,52 @@ namespace Newtonsoft public abstract void WriteTo(Newtonsoft.Json.JsonWriter writer, params Newtonsoft.Json.JsonConverter[] converters); public virtual System.Threading.Tasks.Task WriteToAsync(Newtonsoft.Json.JsonWriter writer, System.Threading.CancellationToken cancellationToken, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public System.Threading.Tasks.Task WriteToAsync(Newtonsoft.Json.JsonWriter writer, params Newtonsoft.Json.JsonConverter[] converters) => throw null; - public static explicit operator System.Byte(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Byte?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Byte[](Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Char(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Char?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.DateTime(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.DateTime?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.DateTimeOffset(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.DateTimeOffset?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Decimal(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Decimal?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Guid(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Guid?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Int16(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Int16?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Int64(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Int64?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.SByte(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.SByte?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.TimeSpan(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.TimeSpan?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.UInt16(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.UInt16?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.UInt32(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.UInt32?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.UInt64(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.UInt64?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Uri(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator bool(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator bool?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator double(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator double?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator float(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator float?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator int(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator int?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator string(Newtonsoft.Json.Linq.JToken value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Byte[] value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.DateTime value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.DateTime? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.DateTimeOffset value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.DateTimeOffset? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Guid value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Guid? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.TimeSpan value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.TimeSpan? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Uri value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(bool value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(bool? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Byte value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Byte? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Decimal value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Decimal? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(double value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(double? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(float value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(float? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(int value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(int? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Int64 value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Int64? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.SByte value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.SByte? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Int16 value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.Int16? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(string value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.UInt32 value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.UInt32? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.UInt64 value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.UInt64? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.UInt16 value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.UInt16? value) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JTokenEqualityComparer` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JTokenEqualityComparer : System.Collections.Generic.IEqualityComparer { + public JTokenEqualityComparer() => throw null; public bool Equals(Newtonsoft.Json.Linq.JToken x, Newtonsoft.Json.Linq.JToken y) => throw null; public int GetHashCode(Newtonsoft.Json.Linq.JToken obj) => throw null; - public JTokenEqualityComparer() => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JTokenReader` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JTokenReader : Newtonsoft.Json.JsonReader, Newtonsoft.Json.IJsonLineInfo { - public Newtonsoft.Json.Linq.JToken CurrentToken { get => throw null; } - bool Newtonsoft.Json.IJsonLineInfo.HasLineInfo() => throw null; public JTokenReader(Newtonsoft.Json.Linq.JToken token) => throw null; public JTokenReader(Newtonsoft.Json.Linq.JToken token, string initialPath) => throw null; + public Newtonsoft.Json.Linq.JToken CurrentToken { get => throw null; } + bool Newtonsoft.Json.IJsonLineInfo.HasLineInfo() => throw null; int Newtonsoft.Json.IJsonLineInfo.LineNumber { get => throw null; } int Newtonsoft.Json.IJsonLineInfo.LinePosition { get => throw null; } public override string Path { get => throw null; } public override bool Read() => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JTokenType` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum JTokenType { - Array = 2, - Boolean = 9, - Bytes = 14, - Comment = 5, - Constructor = 3, - Date = 12, - Float = 7, - Guid = 15, - Integer = 6, None = 0, - Null = 10, Object = 1, + Array = 2, + Constructor = 3, Property = 4, - Raw = 13, + Comment = 5, + Integer = 6, + Float = 7, String = 8, - TimeSpan = 17, + Boolean = 9, + Null = 10, Undefined = 11, + Date = 12, + Raw = 13, + Bytes = 14, + Guid = 15, Uri = 16, + TimeSpan = 17, } - - // Generated from `Newtonsoft.Json.Linq.JTokenWriter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JTokenWriter : Newtonsoft.Json.JsonWriter { public override void Close() => throw null; + public JTokenWriter(Newtonsoft.Json.Linq.JContainer container) => throw null; + public JTokenWriter() => throw null; public Newtonsoft.Json.Linq.JToken CurrentToken { get => throw null; } public override void Flush() => throw null; - public JTokenWriter() => throw null; - public JTokenWriter(Newtonsoft.Json.Linq.JContainer container) => throw null; public Newtonsoft.Json.Linq.JToken Token { get => throw null; } public override void WriteComment(string text) => throw null; protected override void WriteEnd(Newtonsoft.Json.JsonToken token) => throw null; @@ -1669,278 +1442,269 @@ namespace Newtonsoft public override void WriteStartConstructor(string name) => throw null; public override void WriteStartObject() => throw null; public override void WriteUndefined() => throw null; - public override void WriteValue(System.Byte[] value) => throw null; + public override void WriteValue(object value) => throw null; + public override void WriteValue(string value) => throw null; + public override void WriteValue(int value) => throw null; + public override void WriteValue(uint value) => throw null; + public override void WriteValue(long value) => throw null; + public override void WriteValue(ulong value) => throw null; + public override void WriteValue(float value) => throw null; + public override void WriteValue(double value) => throw null; + public override void WriteValue(bool value) => throw null; + public override void WriteValue(short value) => throw null; + public override void WriteValue(ushort value) => throw null; + public override void WriteValue(char value) => throw null; + public override void WriteValue(byte value) => throw null; + public override void WriteValue(sbyte value) => throw null; + public override void WriteValue(decimal value) => throw null; public override void WriteValue(System.DateTime value) => throw null; public override void WriteValue(System.DateTimeOffset value) => throw null; - public override void WriteValue(System.Guid value) => throw null; + public override void WriteValue(byte[] value) => throw null; public override void WriteValue(System.TimeSpan value) => throw null; + public override void WriteValue(System.Guid value) => throw null; public override void WriteValue(System.Uri value) => throw null; - public override void WriteValue(bool value) => throw null; - public override void WriteValue(System.Byte value) => throw null; - public override void WriteValue(System.Char value) => throw null; - public override void WriteValue(System.Decimal value) => throw null; - public override void WriteValue(double value) => throw null; - public override void WriteValue(float value) => throw null; - public override void WriteValue(int value) => throw null; - public override void WriteValue(System.Int64 value) => throw null; - public override void WriteValue(object value) => throw null; - public override void WriteValue(System.SByte value) => throw null; - public override void WriteValue(System.Int16 value) => throw null; - public override void WriteValue(string value) => throw null; - public override void WriteValue(System.UInt32 value) => throw null; - public override void WriteValue(System.UInt64 value) => throw null; - public override void WriteValue(System.UInt16 value) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JValue` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JValue : Newtonsoft.Json.Linq.JToken, System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + public class JValue : Newtonsoft.Json.Linq.JToken, System.IEquatable, System.IFormattable, System.IComparable, System.IComparable, System.IConvertible { - public int CompareTo(Newtonsoft.Json.Linq.JValue obj) => throw null; int System.IComparable.CompareTo(object obj) => throw null; + public int CompareTo(Newtonsoft.Json.Linq.JValue obj) => throw null; public static Newtonsoft.Json.Linq.JValue CreateComment(string value) => throw null; public static Newtonsoft.Json.Linq.JValue CreateNull() => throw null; public static Newtonsoft.Json.Linq.JValue CreateString(string value) => throw null; public static Newtonsoft.Json.Linq.JValue CreateUndefined() => throw null; + public JValue(Newtonsoft.Json.Linq.JValue other) => throw null; + public JValue(long value) => throw null; + public JValue(decimal value) => throw null; + public JValue(char value) => throw null; + public JValue(ulong value) => throw null; + public JValue(double value) => throw null; + public JValue(float value) => throw null; + public JValue(System.DateTime value) => throw null; + public JValue(System.DateTimeOffset value) => throw null; + public JValue(bool value) => throw null; + public JValue(string value) => throw null; + public JValue(System.Guid value) => throw null; + public JValue(System.Uri value) => throw null; + public JValue(System.TimeSpan value) => throw null; + public JValue(object value) => throw null; public bool Equals(Newtonsoft.Json.Linq.JValue other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; protected override System.Dynamic.DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter) => throw null; System.TypeCode System.IConvertible.GetTypeCode() => throw null; public override bool HasValues { get => throw null; } - public JValue(System.DateTime value) => throw null; - public JValue(System.DateTimeOffset value) => throw null; - public JValue(System.Guid value) => throw null; - public JValue(Newtonsoft.Json.Linq.JValue other) => throw null; - public JValue(System.TimeSpan value) => throw null; - public JValue(System.Uri value) => throw null; - public JValue(bool value) => throw null; - public JValue(System.Char value) => throw null; - public JValue(System.Decimal value) => throw null; - public JValue(double value) => throw null; - public JValue(float value) => throw null; - public JValue(System.Int64 value) => throw null; - public JValue(object value) => throw null; - public JValue(string value) => throw null; - public JValue(System.UInt64 value) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; - public string ToString(System.IFormatProvider formatProvider) => throw null; public string ToString(string format) => throw null; + public string ToString(System.IFormatProvider formatProvider) => throw null; public string ToString(string format, System.IFormatProvider formatProvider) => throw null; object System.IConvertible.ToType(System.Type conversionType, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; public override Newtonsoft.Json.Linq.JTokenType Type { get => throw null; } - public object Value { get => throw null; set => throw null; } + public object Value { get => throw null; set { } } public override void WriteTo(Newtonsoft.Json.JsonWriter writer, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public override System.Threading.Tasks.Task WriteToAsync(Newtonsoft.Json.JsonWriter writer, System.Threading.CancellationToken cancellationToken, params Newtonsoft.Json.JsonConverter[] converters) => throw null; } - - // Generated from `Newtonsoft.Json.Linq.JsonLoadSettings` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonLoadSettings - { - public Newtonsoft.Json.Linq.CommentHandling CommentHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.Linq.DuplicatePropertyNameHandling DuplicatePropertyNameHandling { get => throw null; set => throw null; } - public JsonLoadSettings() => throw null; - public Newtonsoft.Json.Linq.LineInfoHandling LineInfoHandling { get => throw null; set => throw null; } - } - - // Generated from `Newtonsoft.Json.Linq.JsonMergeSettings` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonMergeSettings - { - public JsonMergeSettings() => throw null; - public Newtonsoft.Json.Linq.MergeArrayHandling MergeArrayHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.Linq.MergeNullValueHandling MergeNullValueHandling { get => throw null; set => throw null; } - public System.StringComparison PropertyNameComparison { get => throw null; set => throw null; } - } - - // Generated from `Newtonsoft.Json.Linq.JsonSelectSettings` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class JsonSelectSettings - { - public bool ErrorWhenNoMatch { get => throw null; set => throw null; } - public JsonSelectSettings() => throw null; - public System.TimeSpan? RegexMatchTimeout { get => throw null; set => throw null; } - } - - // Generated from `Newtonsoft.Json.Linq.LineInfoHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum LineInfoHandling { Ignore = 0, Load = 1, } - - // Generated from `Newtonsoft.Json.Linq.MergeArrayHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum MergeArrayHandling { Concat = 0, - Merge = 3, - Replace = 2, Union = 1, + Replace = 2, + Merge = 3, } - - // Generated from `Newtonsoft.Json.Linq.MergeNullValueHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` [System.Flags] public enum MergeNullValueHandling { Ignore = 0, Merge = 1, } - + } + public enum MemberSerialization + { + OptOut = 0, + OptIn = 1, + Fields = 2, + } + public enum MetadataPropertyHandling + { + Default = 0, + ReadAhead = 1, + Ignore = 2, + } + public enum MissingMemberHandling + { + Ignore = 0, + Error = 1, + } + public enum NullValueHandling + { + Include = 0, + Ignore = 1, + } + public enum ObjectCreationHandling + { + Auto = 0, + Reuse = 1, + Replace = 2, + } + [System.Flags] + public enum PreserveReferencesHandling + { + None = 0, + Objects = 1, + Arrays = 2, + All = 3, + } + public enum ReferenceLoopHandling + { + Error = 0, + Ignore = 1, + Serialize = 2, + } + public enum Required + { + Default = 0, + AllowNull = 1, + Always = 2, + DisallowNull = 3, } namespace Schema { - // Generated from `Newtonsoft.Json.Schema.Extensions` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public static class Extensions + public static partial class Extensions { public static bool IsValid(this Newtonsoft.Json.Linq.JToken source, Newtonsoft.Json.Schema.JsonSchema schema) => throw null; public static bool IsValid(this Newtonsoft.Json.Linq.JToken source, Newtonsoft.Json.Schema.JsonSchema schema, out System.Collections.Generic.IList errorMessages) => throw null; public static void Validate(this Newtonsoft.Json.Linq.JToken source, Newtonsoft.Json.Schema.JsonSchema schema) => throw null; public static void Validate(this Newtonsoft.Json.Linq.JToken source, Newtonsoft.Json.Schema.JsonSchema schema, Newtonsoft.Json.Schema.ValidationEventHandler validationEventHandler) => throw null; } - - // Generated from `Newtonsoft.Json.Schema.JsonSchema` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonSchema { - public Newtonsoft.Json.Schema.JsonSchema AdditionalItems { get => throw null; set => throw null; } - public Newtonsoft.Json.Schema.JsonSchema AdditionalProperties { get => throw null; set => throw null; } - public bool AllowAdditionalItems { get => throw null; set => throw null; } - public bool AllowAdditionalProperties { get => throw null; set => throw null; } - public Newtonsoft.Json.Linq.JToken Default { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } - public Newtonsoft.Json.Schema.JsonSchemaType? Disallow { get => throw null; set => throw null; } - public double? DivisibleBy { get => throw null; set => throw null; } - public System.Collections.Generic.IList Enum { get => throw null; set => throw null; } - public bool? ExclusiveMaximum { get => throw null; set => throw null; } - public bool? ExclusiveMinimum { get => throw null; set => throw null; } - public System.Collections.Generic.IList Extends { get => throw null; set => throw null; } - public string Format { get => throw null; set => throw null; } - public bool? Hidden { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Collections.Generic.IList Items { get => throw null; set => throw null; } + public Newtonsoft.Json.Schema.JsonSchema AdditionalItems { get => throw null; set { } } + public Newtonsoft.Json.Schema.JsonSchema AdditionalProperties { get => throw null; set { } } + public bool AllowAdditionalItems { get => throw null; set { } } + public bool AllowAdditionalProperties { get => throw null; set { } } public JsonSchema() => throw null; - public double? Maximum { get => throw null; set => throw null; } - public int? MaximumItems { get => throw null; set => throw null; } - public int? MaximumLength { get => throw null; set => throw null; } - public double? Minimum { get => throw null; set => throw null; } - public int? MinimumItems { get => throw null; set => throw null; } - public int? MinimumLength { get => throw null; set => throw null; } + public Newtonsoft.Json.Linq.JToken Default { get => throw null; set { } } + public string Description { get => throw null; set { } } + public Newtonsoft.Json.Schema.JsonSchemaType? Disallow { get => throw null; set { } } + public double? DivisibleBy { get => throw null; set { } } + public System.Collections.Generic.IList Enum { get => throw null; set { } } + public bool? ExclusiveMaximum { get => throw null; set { } } + public bool? ExclusiveMinimum { get => throw null; set { } } + public System.Collections.Generic.IList Extends { get => throw null; set { } } + public string Format { get => throw null; set { } } + public bool? Hidden { get => throw null; set { } } + public string Id { get => throw null; set { } } + public System.Collections.Generic.IList Items { get => throw null; set { } } + public double? Maximum { get => throw null; set { } } + public int? MaximumItems { get => throw null; set { } } + public int? MaximumLength { get => throw null; set { } } + public double? Minimum { get => throw null; set { } } + public int? MinimumItems { get => throw null; set { } } + public int? MinimumLength { get => throw null; set { } } public static Newtonsoft.Json.Schema.JsonSchema Parse(string json) => throw null; public static Newtonsoft.Json.Schema.JsonSchema Parse(string json, Newtonsoft.Json.Schema.JsonSchemaResolver resolver) => throw null; - public string Pattern { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary PatternProperties { get => throw null; set => throw null; } - public bool PositionalItemsValidation { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; set => throw null; } + public string Pattern { get => throw null; set { } } + public System.Collections.Generic.IDictionary PatternProperties { get => throw null; set { } } + public bool PositionalItemsValidation { get => throw null; set { } } + public System.Collections.Generic.IDictionary Properties { get => throw null; set { } } public static Newtonsoft.Json.Schema.JsonSchema Read(Newtonsoft.Json.JsonReader reader) => throw null; public static Newtonsoft.Json.Schema.JsonSchema Read(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Schema.JsonSchemaResolver resolver) => throw null; - public bool? ReadOnly { get => throw null; set => throw null; } - public bool? Required { get => throw null; set => throw null; } - public string Requires { get => throw null; set => throw null; } - public string Title { get => throw null; set => throw null; } + public bool? ReadOnly { get => throw null; set { } } + public bool? Required { get => throw null; set { } } + public string Requires { get => throw null; set { } } + public string Title { get => throw null; set { } } public override string ToString() => throw null; - public bool? Transient { get => throw null; set => throw null; } - public Newtonsoft.Json.Schema.JsonSchemaType? Type { get => throw null; set => throw null; } - public bool UniqueItems { get => throw null; set => throw null; } + public bool? Transient { get => throw null; set { } } + public Newtonsoft.Json.Schema.JsonSchemaType? Type { get => throw null; set { } } + public bool UniqueItems { get => throw null; set { } } public void WriteTo(Newtonsoft.Json.JsonWriter writer) => throw null; public void WriteTo(Newtonsoft.Json.JsonWriter writer, Newtonsoft.Json.Schema.JsonSchemaResolver resolver) => throw null; } - - // Generated from `Newtonsoft.Json.Schema.JsonSchemaException` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonSchemaException : Newtonsoft.Json.JsonException { public JsonSchemaException() => throw null; - public JsonSchemaException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public JsonSchemaException(string message) => throw null; public JsonSchemaException(string message, System.Exception innerException) => throw null; + public JsonSchemaException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public int LineNumber { get => throw null; } public int LinePosition { get => throw null; } public string Path { get => throw null; } } - - // Generated from `Newtonsoft.Json.Schema.JsonSchemaGenerator` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonSchemaGenerator { - public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { get => throw null; set => throw null; } + public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { get => throw null; set { } } + public JsonSchemaGenerator() => throw null; public Newtonsoft.Json.Schema.JsonSchema Generate(System.Type type) => throw null; public Newtonsoft.Json.Schema.JsonSchema Generate(System.Type type, Newtonsoft.Json.Schema.JsonSchemaResolver resolver) => throw null; - public Newtonsoft.Json.Schema.JsonSchema Generate(System.Type type, Newtonsoft.Json.Schema.JsonSchemaResolver resolver, bool rootSchemaNullable) => throw null; public Newtonsoft.Json.Schema.JsonSchema Generate(System.Type type, bool rootSchemaNullable) => throw null; - public JsonSchemaGenerator() => throw null; - public Newtonsoft.Json.Schema.UndefinedSchemaIdHandling UndefinedSchemaIdHandling { get => throw null; set => throw null; } + public Newtonsoft.Json.Schema.JsonSchema Generate(System.Type type, Newtonsoft.Json.Schema.JsonSchemaResolver resolver, bool rootSchemaNullable) => throw null; + public Newtonsoft.Json.Schema.UndefinedSchemaIdHandling UndefinedSchemaIdHandling { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.Schema.JsonSchemaResolver` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonSchemaResolver { - public virtual Newtonsoft.Json.Schema.JsonSchema GetSchema(string reference) => throw null; public JsonSchemaResolver() => throw null; - public System.Collections.Generic.IList LoadedSchemas { get => throw null; set => throw null; } + public virtual Newtonsoft.Json.Schema.JsonSchema GetSchema(string reference) => throw null; + public System.Collections.Generic.IList LoadedSchemas { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.Schema.JsonSchemaType` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` [System.Flags] public enum JsonSchemaType { - Any = 127, - Array = 32, - Boolean = 8, + None = 0, + String = 1, Float = 2, Integer = 4, - None = 0, - Null = 64, + Boolean = 8, Object = 16, - String = 1, + Array = 32, + Null = 64, + Any = 127, } - - // Generated from `Newtonsoft.Json.Schema.UndefinedSchemaIdHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum UndefinedSchemaIdHandling { None = 0, - UseAssemblyQualifiedName = 2, UseTypeName = 1, + UseAssemblyQualifiedName = 2, } - - // Generated from `Newtonsoft.Json.Schema.ValidationEventArgs` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class ValidationEventArgs : System.EventArgs { public Newtonsoft.Json.Schema.JsonSchemaException Exception { get => throw null; } public string Message { get => throw null; } public string Path { get => throw null; } } - - // Generated from `Newtonsoft.Json.Schema.ValidationEventHandler` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public delegate void ValidationEventHandler(object sender, Newtonsoft.Json.Schema.ValidationEventArgs e); - } namespace Serialization { - // Generated from `Newtonsoft.Json.Serialization.CamelCaseNamingStrategy` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class CamelCaseNamingStrategy : Newtonsoft.Json.Serialization.NamingStrategy { - public CamelCaseNamingStrategy() => throw null; public CamelCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames) => throw null; public CamelCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames, bool processExtensionDataNames) => throw null; + public CamelCaseNamingStrategy() => throw null; protected override string ResolvePropertyName(string name) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class CamelCasePropertyNamesContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver { public CamelCasePropertyNamesContractResolver() => throw null; public override Newtonsoft.Json.Serialization.JsonContract ResolveContract(System.Type type) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.DefaultContractResolver` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class DefaultContractResolver : Newtonsoft.Json.Serialization.IContractResolver { protected virtual Newtonsoft.Json.Serialization.JsonArrayContract CreateArrayContract(System.Type objectType) => throw null; @@ -1958,92 +1722,76 @@ namespace Newtonsoft protected virtual Newtonsoft.Json.Serialization.JsonProperty CreatePropertyFromConstructorParameter(Newtonsoft.Json.Serialization.JsonProperty matchingMemberProperty, System.Reflection.ParameterInfo parameterInfo) => throw null; protected virtual Newtonsoft.Json.Serialization.JsonStringContract CreateStringContract(System.Type objectType) => throw null; public DefaultContractResolver() => throw null; - public System.Reflection.BindingFlags DefaultMembersSearchFlags { get => throw null; set => throw null; } + public System.Reflection.BindingFlags DefaultMembersSearchFlags { get => throw null; set { } } public bool DynamicCodeGeneration { get => throw null; } public string GetResolvedPropertyName(string propertyName) => throw null; protected virtual System.Collections.Generic.List GetSerializableMembers(System.Type objectType) => throw null; - public bool IgnoreIsSpecifiedMembers { get => throw null; set => throw null; } - public bool IgnoreSerializableAttribute { get => throw null; set => throw null; } - public bool IgnoreSerializableInterface { get => throw null; set => throw null; } - public bool IgnoreShouldSerializeMembers { get => throw null; set => throw null; } - public Newtonsoft.Json.Serialization.NamingStrategy NamingStrategy { get => throw null; set => throw null; } + public bool IgnoreIsSpecifiedMembers { get => throw null; set { } } + public bool IgnoreSerializableAttribute { get => throw null; set { } } + public bool IgnoreSerializableInterface { get => throw null; set { } } + public bool IgnoreShouldSerializeMembers { get => throw null; set { } } + public Newtonsoft.Json.Serialization.NamingStrategy NamingStrategy { get => throw null; set { } } public virtual Newtonsoft.Json.Serialization.JsonContract ResolveContract(System.Type type) => throw null; protected virtual Newtonsoft.Json.JsonConverter ResolveContractConverter(System.Type objectType) => throw null; protected virtual string ResolveDictionaryKey(string dictionaryKey) => throw null; protected virtual string ResolveExtensionDataName(string extensionDataName) => throw null; protected virtual string ResolvePropertyName(string propertyName) => throw null; - public bool SerializeCompilerGeneratedMembers { get => throw null; set => throw null; } + public bool SerializeCompilerGeneratedMembers { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.Serialization.DefaultNamingStrategy` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class DefaultNamingStrategy : Newtonsoft.Json.Serialization.NamingStrategy { public DefaultNamingStrategy() => throw null; protected override string ResolvePropertyName(string name) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.DefaultSerializationBinder` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class DefaultSerializationBinder : System.Runtime.Serialization.SerializationBinder, Newtonsoft.Json.Serialization.ISerializationBinder { public override void BindToName(System.Type serializedType, out string assemblyName, out string typeName) => throw null; public override System.Type BindToType(string assemblyName, string typeName) => throw null; public DefaultSerializationBinder() => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.DiagnosticsTraceWriter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class DiagnosticsTraceWriter : Newtonsoft.Json.Serialization.ITraceWriter { public DiagnosticsTraceWriter() => throw null; - public System.Diagnostics.TraceLevel LevelFilter { get => throw null; set => throw null; } + public System.Diagnostics.TraceLevel LevelFilter { get => throw null; set { } } public void Trace(System.Diagnostics.TraceLevel level, string message, System.Exception ex) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.ErrorContext` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` + public class DynamicValueProvider : Newtonsoft.Json.Serialization.IValueProvider + { + public DynamicValueProvider(System.Reflection.MemberInfo memberInfo) => throw null; + public object GetValue(object target) => throw null; + public void SetValue(object target, object value) => throw null; + } public class ErrorContext { public System.Exception Error { get => throw null; } - public bool Handled { get => throw null; set => throw null; } + public bool Handled { get => throw null; set { } } public object Member { get => throw null; } public object OriginalObject { get => throw null; } public string Path { get => throw null; } } - - // Generated from `Newtonsoft.Json.Serialization.ErrorEventArgs` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class ErrorEventArgs : System.EventArgs { + public ErrorEventArgs(object currentObject, Newtonsoft.Json.Serialization.ErrorContext errorContext) => throw null; public object CurrentObject { get => throw null; } public Newtonsoft.Json.Serialization.ErrorContext ErrorContext { get => throw null; } - public ErrorEventArgs(object currentObject, Newtonsoft.Json.Serialization.ErrorContext errorContext) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.ExpressionValueProvider` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class ExpressionValueProvider : Newtonsoft.Json.Serialization.IValueProvider { public ExpressionValueProvider(System.Reflection.MemberInfo memberInfo) => throw null; public object GetValue(object target) => throw null; public void SetValue(object target, object value) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.ExtensionDataGetter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public delegate System.Collections.Generic.IEnumerable> ExtensionDataGetter(object o); - - // Generated from `Newtonsoft.Json.Serialization.ExtensionDataSetter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public delegate void ExtensionDataSetter(object o, string key, object value); - - // Generated from `Newtonsoft.Json.Serialization.IAttributeProvider` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public interface IAttributeProvider { - System.Collections.Generic.IList GetAttributes(System.Type attributeType, bool inherit); System.Collections.Generic.IList GetAttributes(bool inherit); + System.Collections.Generic.IList GetAttributes(System.Type attributeType, bool inherit); } - - // Generated from `Newtonsoft.Json.Serialization.IContractResolver` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public interface IContractResolver { Newtonsoft.Json.Serialization.JsonContract ResolveContract(System.Type type); } - - // Generated from `Newtonsoft.Json.Serialization.IReferenceResolver` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public interface IReferenceResolver { void AddReference(object context, string reference, object value); @@ -2051,58 +1799,44 @@ namespace Newtonsoft bool IsReferenced(object context, object value); object ResolveReference(object context, string reference); } - - // Generated from `Newtonsoft.Json.Serialization.ISerializationBinder` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public interface ISerializationBinder { void BindToName(System.Type serializedType, out string assemblyName, out string typeName); System.Type BindToType(string assemblyName, string typeName); } - - // Generated from `Newtonsoft.Json.Serialization.ITraceWriter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public interface ITraceWriter { System.Diagnostics.TraceLevel LevelFilter { get; } void Trace(System.Diagnostics.TraceLevel level, string message, System.Exception ex); } - - // Generated from `Newtonsoft.Json.Serialization.IValueProvider` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public interface IValueProvider { object GetValue(object target); void SetValue(object target, object value); } - - // Generated from `Newtonsoft.Json.Serialization.JsonArrayContract` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonArrayContract : Newtonsoft.Json.Serialization.JsonContainerContract { public System.Type CollectionItemType { get => throw null; } - public bool HasParameterizedCreator { get => throw null; set => throw null; } + public JsonArrayContract(System.Type underlyingType) => throw null; + public bool HasParameterizedCreator { get => throw null; set { } } public bool IsMultidimensionalArray { get => throw null; } - public JsonArrayContract(System.Type underlyingType) : base(default(System.Type)) => throw null; - public Newtonsoft.Json.Serialization.ObjectConstructor OverrideCreator { get => throw null; set => throw null; } + public Newtonsoft.Json.Serialization.ObjectConstructor OverrideCreator { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.Serialization.JsonContainerContract` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonContainerContract : Newtonsoft.Json.Serialization.JsonContract { - public Newtonsoft.Json.JsonConverter ItemConverter { get => throw null; set => throw null; } - public bool? ItemIsReference { get => throw null; set => throw null; } - public Newtonsoft.Json.ReferenceLoopHandling? ItemReferenceLoopHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.TypeNameHandling? ItemTypeNameHandling { get => throw null; set => throw null; } - internal JsonContainerContract(System.Type underlyingType) : base(default(System.Type)) => throw null; + public Newtonsoft.Json.JsonConverter ItemConverter { get => throw null; set { } } + public bool? ItemIsReference { get => throw null; set { } } + public Newtonsoft.Json.ReferenceLoopHandling? ItemReferenceLoopHandling { get => throw null; set { } } + public Newtonsoft.Json.TypeNameHandling? ItemTypeNameHandling { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.Serialization.JsonContract` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public abstract class JsonContract { - public Newtonsoft.Json.JsonConverter Converter { get => throw null; set => throw null; } - public System.Type CreatedType { get => throw null; set => throw null; } - public System.Func DefaultCreator { get => throw null; set => throw null; } - public bool DefaultCreatorNonPublic { get => throw null; set => throw null; } - public Newtonsoft.Json.JsonConverter InternalConverter { get => throw null; set => throw null; } - public bool? IsReference { get => throw null; set => throw null; } - internal JsonContract(System.Type underlyingType) => throw null; + public Newtonsoft.Json.JsonConverter Converter { get => throw null; set { } } + public System.Type CreatedType { get => throw null; set { } } + public System.Func DefaultCreator { get => throw null; set { } } + public bool DefaultCreatorNonPublic { get => throw null; set { } } + public Newtonsoft.Json.JsonConverter InternalConverter { get => throw null; } + public bool? IsReference { get => throw null; set { } } public System.Collections.Generic.IList OnDeserializedCallbacks { get => throw null; } public System.Collections.Generic.IList OnDeserializingCallbacks { get => throw null; } public System.Collections.Generic.IList OnErrorCallbacks { get => throw null; } @@ -2110,217 +1844,181 @@ namespace Newtonsoft public System.Collections.Generic.IList OnSerializingCallbacks { get => throw null; } public System.Type UnderlyingType { get => throw null; } } - - // Generated from `Newtonsoft.Json.Serialization.JsonDictionaryContract` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonDictionaryContract : Newtonsoft.Json.Serialization.JsonContainerContract { - public System.Func DictionaryKeyResolver { get => throw null; set => throw null; } + public JsonDictionaryContract(System.Type underlyingType) => throw null; + public System.Func DictionaryKeyResolver { get => throw null; set { } } public System.Type DictionaryKeyType { get => throw null; } public System.Type DictionaryValueType { get => throw null; } - public bool HasParameterizedCreator { get => throw null; set => throw null; } - public JsonDictionaryContract(System.Type underlyingType) : base(default(System.Type)) => throw null; - public Newtonsoft.Json.Serialization.ObjectConstructor OverrideCreator { get => throw null; set => throw null; } + public bool HasParameterizedCreator { get => throw null; set { } } + public Newtonsoft.Json.Serialization.ObjectConstructor OverrideCreator { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.Serialization.JsonDynamicContract` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonDynamicContract : Newtonsoft.Json.Serialization.JsonContainerContract { - public JsonDynamicContract(System.Type underlyingType) : base(default(System.Type)) => throw null; + public JsonDynamicContract(System.Type underlyingType) => throw null; public Newtonsoft.Json.Serialization.JsonPropertyCollection Properties { get => throw null; } - public System.Func PropertyNameResolver { get => throw null; set => throw null; } + public System.Func PropertyNameResolver { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.Serialization.JsonISerializableContract` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonISerializableContract : Newtonsoft.Json.Serialization.JsonContainerContract { - public Newtonsoft.Json.Serialization.ObjectConstructor ISerializableCreator { get => throw null; set => throw null; } - public JsonISerializableContract(System.Type underlyingType) : base(default(System.Type)) => throw null; + public JsonISerializableContract(System.Type underlyingType) => throw null; + public Newtonsoft.Json.Serialization.ObjectConstructor ISerializableCreator { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.Serialization.JsonLinqContract` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonLinqContract : Newtonsoft.Json.Serialization.JsonContract { - public JsonLinqContract(System.Type underlyingType) : base(default(System.Type)) => throw null; + public JsonLinqContract(System.Type underlyingType) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.JsonObjectContract` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonObjectContract : Newtonsoft.Json.Serialization.JsonContainerContract { public Newtonsoft.Json.Serialization.JsonPropertyCollection CreatorParameters { get => throw null; } - public Newtonsoft.Json.Serialization.ExtensionDataGetter ExtensionDataGetter { get => throw null; set => throw null; } - public System.Func ExtensionDataNameResolver { get => throw null; set => throw null; } - public Newtonsoft.Json.Serialization.ExtensionDataSetter ExtensionDataSetter { get => throw null; set => throw null; } - public System.Type ExtensionDataValueType { get => throw null; set => throw null; } - public Newtonsoft.Json.NullValueHandling? ItemNullValueHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.Required? ItemRequired { get => throw null; set => throw null; } - public JsonObjectContract(System.Type underlyingType) : base(default(System.Type)) => throw null; - public Newtonsoft.Json.MemberSerialization MemberSerialization { get => throw null; set => throw null; } - public Newtonsoft.Json.MissingMemberHandling? MissingMemberHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.Serialization.ObjectConstructor OverrideCreator { get => throw null; set => throw null; } + public JsonObjectContract(System.Type underlyingType) => throw null; + public Newtonsoft.Json.Serialization.ExtensionDataGetter ExtensionDataGetter { get => throw null; set { } } + public System.Func ExtensionDataNameResolver { get => throw null; set { } } + public Newtonsoft.Json.Serialization.ExtensionDataSetter ExtensionDataSetter { get => throw null; set { } } + public System.Type ExtensionDataValueType { get => throw null; set { } } + public Newtonsoft.Json.NullValueHandling? ItemNullValueHandling { get => throw null; set { } } + public Newtonsoft.Json.Required? ItemRequired { get => throw null; set { } } + public Newtonsoft.Json.MemberSerialization MemberSerialization { get => throw null; set { } } + public Newtonsoft.Json.MissingMemberHandling? MissingMemberHandling { get => throw null; set { } } + public Newtonsoft.Json.Serialization.ObjectConstructor OverrideCreator { get => throw null; set { } } public Newtonsoft.Json.Serialization.JsonPropertyCollection Properties { get => throw null; } } - - // Generated from `Newtonsoft.Json.Serialization.JsonPrimitiveContract` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonPrimitiveContract : Newtonsoft.Json.Serialization.JsonContract { - public JsonPrimitiveContract(System.Type underlyingType) : base(default(System.Type)) => throw null; + public JsonPrimitiveContract(System.Type underlyingType) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.JsonProperty` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonProperty { - public Newtonsoft.Json.Serialization.IAttributeProvider AttributeProvider { get => throw null; set => throw null; } - public Newtonsoft.Json.JsonConverter Converter { get => throw null; set => throw null; } - public System.Type DeclaringType { get => throw null; set => throw null; } - public object DefaultValue { get => throw null; set => throw null; } - public Newtonsoft.Json.DefaultValueHandling? DefaultValueHandling { get => throw null; set => throw null; } - public System.Predicate GetIsSpecified { get => throw null; set => throw null; } - public bool HasMemberAttribute { get => throw null; set => throw null; } - public bool Ignored { get => throw null; set => throw null; } - public bool? IsReference { get => throw null; set => throw null; } - public bool IsRequiredSpecified { get => throw null; } - public Newtonsoft.Json.JsonConverter ItemConverter { get => throw null; set => throw null; } - public bool? ItemIsReference { get => throw null; set => throw null; } - public Newtonsoft.Json.ReferenceLoopHandling? ItemReferenceLoopHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.TypeNameHandling? ItemTypeNameHandling { get => throw null; set => throw null; } + public Newtonsoft.Json.Serialization.IAttributeProvider AttributeProvider { get => throw null; set { } } + public Newtonsoft.Json.JsonConverter Converter { get => throw null; set { } } public JsonProperty() => throw null; - public Newtonsoft.Json.JsonConverter MemberConverter { get => throw null; set => throw null; } - public Newtonsoft.Json.NullValueHandling? NullValueHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.ObjectCreationHandling? ObjectCreationHandling { get => throw null; set => throw null; } - public int? Order { get => throw null; set => throw null; } - public string PropertyName { get => throw null; set => throw null; } - public System.Type PropertyType { get => throw null; set => throw null; } - public bool Readable { get => throw null; set => throw null; } - public Newtonsoft.Json.ReferenceLoopHandling? ReferenceLoopHandling { get => throw null; set => throw null; } - public Newtonsoft.Json.Required Required { get => throw null; set => throw null; } - public System.Action SetIsSpecified { get => throw null; set => throw null; } - public System.Predicate ShouldDeserialize { get => throw null; set => throw null; } - public System.Predicate ShouldSerialize { get => throw null; set => throw null; } + public System.Type DeclaringType { get => throw null; set { } } + public object DefaultValue { get => throw null; set { } } + public Newtonsoft.Json.DefaultValueHandling? DefaultValueHandling { get => throw null; set { } } + public System.Predicate GetIsSpecified { get => throw null; set { } } + public bool HasMemberAttribute { get => throw null; set { } } + public bool Ignored { get => throw null; set { } } + public bool? IsReference { get => throw null; set { } } + public bool IsRequiredSpecified { get => throw null; } + public Newtonsoft.Json.JsonConverter ItemConverter { get => throw null; set { } } + public bool? ItemIsReference { get => throw null; set { } } + public Newtonsoft.Json.ReferenceLoopHandling? ItemReferenceLoopHandling { get => throw null; set { } } + public Newtonsoft.Json.TypeNameHandling? ItemTypeNameHandling { get => throw null; set { } } + public Newtonsoft.Json.JsonConverter MemberConverter { get => throw null; set { } } + public Newtonsoft.Json.NullValueHandling? NullValueHandling { get => throw null; set { } } + public Newtonsoft.Json.ObjectCreationHandling? ObjectCreationHandling { get => throw null; set { } } + public int? Order { get => throw null; set { } } + public string PropertyName { get => throw null; set { } } + public System.Type PropertyType { get => throw null; set { } } + public bool Readable { get => throw null; set { } } + public Newtonsoft.Json.ReferenceLoopHandling? ReferenceLoopHandling { get => throw null; set { } } + public Newtonsoft.Json.Required Required { get => throw null; set { } } + public System.Action SetIsSpecified { get => throw null; set { } } + public System.Predicate ShouldDeserialize { get => throw null; set { } } + public System.Predicate ShouldSerialize { get => throw null; set { } } public override string ToString() => throw null; - public Newtonsoft.Json.TypeNameHandling? TypeNameHandling { get => throw null; set => throw null; } - public string UnderlyingName { get => throw null; set => throw null; } - public Newtonsoft.Json.Serialization.IValueProvider ValueProvider { get => throw null; set => throw null; } - public bool Writable { get => throw null; set => throw null; } + public Newtonsoft.Json.TypeNameHandling? TypeNameHandling { get => throw null; set { } } + public string UnderlyingName { get => throw null; set { } } + public Newtonsoft.Json.Serialization.IValueProvider ValueProvider { get => throw null; set { } } + public bool Writable { get => throw null; set { } } } - - // Generated from `Newtonsoft.Json.Serialization.JsonPropertyCollection` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonPropertyCollection : System.Collections.ObjectModel.KeyedCollection { public void AddProperty(Newtonsoft.Json.Serialization.JsonProperty property) => throw null; + public JsonPropertyCollection(System.Type type) => throw null; public Newtonsoft.Json.Serialization.JsonProperty GetClosestMatchProperty(string propertyName) => throw null; protected override string GetKeyForItem(Newtonsoft.Json.Serialization.JsonProperty item) => throw null; public Newtonsoft.Json.Serialization.JsonProperty GetProperty(string propertyName, System.StringComparison comparisonType) => throw null; - public JsonPropertyCollection(System.Type type) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.JsonStringContract` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonStringContract : Newtonsoft.Json.Serialization.JsonPrimitiveContract { public JsonStringContract(System.Type underlyingType) : base(default(System.Type)) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.KebabCaseNamingStrategy` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class KebabCaseNamingStrategy : Newtonsoft.Json.Serialization.NamingStrategy { - public KebabCaseNamingStrategy() => throw null; public KebabCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames) => throw null; public KebabCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames, bool processExtensionDataNames) => throw null; + public KebabCaseNamingStrategy() => throw null; protected override string ResolvePropertyName(string name) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.MemoryTraceWriter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class MemoryTraceWriter : Newtonsoft.Json.Serialization.ITraceWriter { - public System.Collections.Generic.IEnumerable GetTraceMessages() => throw null; - public System.Diagnostics.TraceLevel LevelFilter { get => throw null; set => throw null; } public MemoryTraceWriter() => throw null; + public System.Collections.Generic.IEnumerable GetTraceMessages() => throw null; + public System.Diagnostics.TraceLevel LevelFilter { get => throw null; set { } } public override string ToString() => throw null; public void Trace(System.Diagnostics.TraceLevel level, string message, System.Exception ex) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.NamingStrategy` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public abstract class NamingStrategy { - protected bool Equals(Newtonsoft.Json.Serialization.NamingStrategy other) => throw null; + protected NamingStrategy() => throw null; public override bool Equals(object obj) => throw null; + protected bool Equals(Newtonsoft.Json.Serialization.NamingStrategy other) => throw null; public virtual string GetDictionaryKey(string key) => throw null; public virtual string GetExtensionDataName(string name) => throw null; public override int GetHashCode() => throw null; public virtual string GetPropertyName(string name, bool hasSpecifiedName) => throw null; - protected NamingStrategy() => throw null; - public bool OverrideSpecifiedNames { get => throw null; set => throw null; } - public bool ProcessDictionaryKeys { get => throw null; set => throw null; } - public bool ProcessExtensionDataNames { get => throw null; set => throw null; } + public bool OverrideSpecifiedNames { get => throw null; set { } } + public bool ProcessDictionaryKeys { get => throw null; set { } } + public bool ProcessExtensionDataNames { get => throw null; set { } } protected abstract string ResolvePropertyName(string name); } - - // Generated from `Newtonsoft.Json.Serialization.ObjectConstructor<>` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public delegate object ObjectConstructor(params object[] args); - - // Generated from `Newtonsoft.Json.Serialization.OnErrorAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public class OnErrorAttribute : System.Attribute + public sealed class OnErrorAttribute : System.Attribute { public OnErrorAttribute() => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.ReflectionAttributeProvider` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class ReflectionAttributeProvider : Newtonsoft.Json.Serialization.IAttributeProvider { - public System.Collections.Generic.IList GetAttributes(System.Type attributeType, bool inherit) => throw null; - public System.Collections.Generic.IList GetAttributes(bool inherit) => throw null; public ReflectionAttributeProvider(object attributeProvider) => throw null; + public System.Collections.Generic.IList GetAttributes(bool inherit) => throw null; + public System.Collections.Generic.IList GetAttributes(System.Type attributeType, bool inherit) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.ReflectionValueProvider` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class ReflectionValueProvider : Newtonsoft.Json.Serialization.IValueProvider { - public object GetValue(object target) => throw null; public ReflectionValueProvider(System.Reflection.MemberInfo memberInfo) => throw null; + public object GetValue(object target) => throw null; public void SetValue(object target, object value) => throw null; } - - // Generated from `Newtonsoft.Json.Serialization.SerializationCallback` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public delegate void SerializationCallback(object o, System.Runtime.Serialization.StreamingContext context); - - // Generated from `Newtonsoft.Json.Serialization.SerializationErrorCallback` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public delegate void SerializationErrorCallback(object o, System.Runtime.Serialization.StreamingContext context, Newtonsoft.Json.Serialization.ErrorContext errorContext); - - // Generated from `Newtonsoft.Json.Serialization.SnakeCaseNamingStrategy` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class SnakeCaseNamingStrategy : Newtonsoft.Json.Serialization.NamingStrategy { - protected override string ResolvePropertyName(string name) => throw null; - public SnakeCaseNamingStrategy() => throw null; public SnakeCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames) => throw null; public SnakeCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames, bool processExtensionDataNames) => throw null; + public SnakeCaseNamingStrategy() => throw null; + protected override string ResolvePropertyName(string name) => throw null; } - - } - } -} -namespace System -{ - namespace Diagnostics - { - namespace CodeAnalysis - { - /* Duplicate type 'AllowNullAttribute' is not stubbed in this assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. */ - - /* Duplicate type 'DoesNotReturnIfAttribute' is not stubbed in this assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. */ - - /* Duplicate type 'MaybeNullAttribute' is not stubbed in this assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. */ - - /* Duplicate type 'NotNullAttribute' is not stubbed in this assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. */ - - /* Duplicate type 'NotNullWhenAttribute' is not stubbed in this assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. */ - - } - } - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. */ - + } + public enum StringEscapeHandling + { + Default = 0, + EscapeNonAscii = 1, + EscapeHtml = 2, + } + public enum TypeNameAssemblyFormatHandling + { + Simple = 0, + Full = 1, + } + [System.Flags] + public enum TypeNameHandling + { + None = 0, + Objects = 1, + Arrays = 2, + All = 3, + Auto = 4, + } + public enum WriteState + { + Error = 0, + Closed = 1, + Object = 2, + Array = 3, + Constructor = 4, + Property = 5, + Start = 6, } } } diff --git a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj similarity index 100% rename from csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj rename to csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj From c547adc9d46c089b9a89f413547e5aaaac1845fb Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 30 Aug 2023 10:58:42 +0200 Subject: [PATCH 577/788] C#: Regenerate `Microsoft.NetCore.App` stubs --- .../Microsoft.NETCore.App/Microsoft.CSharp.cs | 33 +- .../Microsoft.VisualBasic.Core.cs | 1570 +- .../Microsoft.VisualBasic.cs | 2 + .../Microsoft.Win32.Primitives.cs | 14 +- .../Microsoft.Win32.Registry.cs | 82 +- .../System.AppContext.cs | 2 + .../Microsoft.NETCore.App/System.Buffers.cs | 2 + .../System.Collections.Concurrent.cs | 93 +- .../System.Collections.Immutable.cs | 549 +- .../System.Collections.NonGeneric.cs | 88 +- .../System.Collections.Specialized.cs | 165 +- .../System.Collections.cs | 667 +- .../System.ComponentModel.Annotations.cs | 342 +- .../System.ComponentModel.DataAnnotations.cs | 2 + .../System.ComponentModel.EventBasedAsync.cs | 35 +- .../System.ComponentModel.Primitives.cs | 212 +- .../System.ComponentModel.TypeConverter.cs | 2870 +- .../System.ComponentModel.cs | 16 +- .../System.Configuration.cs | 2 + .../Microsoft.NETCore.App/System.Console.cs | 322 +- .../Microsoft.NETCore.App/System.Core.cs | 2 + .../System.Data.Common.cs | 4154 ++- .../System.Data.DataSetExtensions.cs | 2 + .../Microsoft.NETCore.App/System.Data.cs | 2 + .../System.Diagnostics.Contracts.cs | 52 +- .../System.Diagnostics.Debug.cs | 2 + .../System.Diagnostics.DiagnosticSource.cs | 333 +- .../System.Diagnostics.FileVersionInfo.cs | 4 +- .../System.Diagnostics.Process.cs | 196 +- .../System.Diagnostics.StackTrace.cs | 116 +- ...tem.Diagnostics.TextWriterTraceListener.cs | 25 +- .../System.Diagnostics.Tools.cs | 2 + .../System.Diagnostics.TraceSource.cs | 167 +- .../System.Diagnostics.Tracing.cs | 221 +- .../System.Drawing.Primitives.cs | 262 +- .../Microsoft.NETCore.App/System.Drawing.cs | 2 + .../System.Dynamic.Runtime.cs | 2 + .../System.Formats.Asn1.cs | 241 +- .../System.Formats.Tar.cs | 99 +- .../System.Globalization.Calendars.cs | 2 + .../System.Globalization.Extensions.cs | 2 + .../System.Globalization.cs | 2 + .../System.IO.Compression.Brotli.cs | 56 +- .../System.IO.Compression.FileSystem.cs | 2 + .../System.IO.Compression.ZipFile.cs | 7 +- .../System.IO.Compression.cs | 173 +- .../System.IO.FileSystem.AccessControl.cs | 65 +- .../System.IO.FileSystem.DriveInfo.cs | 26 +- .../System.IO.FileSystem.Primitives.cs | 2 + .../System.IO.FileSystem.Watcher.cs | 75 +- .../System.IO.FileSystem.cs | 2 + .../System.IO.IsolatedStorage.cs | 107 +- .../System.IO.MemoryMappedFiles.cs | 91 +- .../System.IO.Pipes.AccessControl.cs | 64 +- .../Microsoft.NETCore.App/System.IO.Pipes.cs | 111 +- .../System.IO.UnmanagedMemoryStream.cs | 2 + .../Microsoft.NETCore.App/System.IO.cs | 2 + .../System.Linq.Expressions.cs | 602 +- .../System.Linq.Parallel.cs | 165 +- .../System.Linq.Queryable.cs | 102 +- .../Microsoft.NETCore.App/System.Linq.cs | 176 +- .../Microsoft.NETCore.App/System.Memory.cs | 814 +- .../System.Net.Http.Json.cs | 74 +- .../Microsoft.NETCore.App/System.Net.Http.cs | 1102 +- .../System.Net.HttpListener.cs | 85 +- .../Microsoft.NETCore.App/System.Net.Mail.cs | 296 +- .../System.Net.NameResolution.cs | 9 +- .../System.Net.NetworkInformation.cs | 481 +- .../Microsoft.NETCore.App/System.Net.Ping.cs | 82 +- .../System.Net.Primitives.cs | 594 +- .../Microsoft.NETCore.App/System.Net.Quic.cs | 127 +- .../System.Net.Requests.cs | 816 +- .../System.Net.Security.cs | 971 +- .../System.Net.ServicePoint.cs | 51 +- .../System.Net.Sockets.cs | 831 +- .../System.Net.WebClient.cs | 202 +- .../System.Net.WebHeaderCollection.cs | 88 +- .../System.Net.WebProxy.cs | 31 +- .../System.Net.WebSockets.Client.cs | 43 +- .../System.Net.WebSockets.cs | 130 +- .../Microsoft.NETCore.App/System.Net.cs | 2 + .../System.Numerics.Vectors.cs | 418 +- .../Microsoft.NETCore.App/System.Numerics.cs | 2 + .../System.ObjectModel.cs | 85 +- .../System.Reflection.DispatchProxy.cs | 2 - .../System.Reflection.Emit.ILGeneration.cs | 46 +- .../System.Reflection.Emit.Lightweight.cs | 35 +- .../System.Reflection.Emit.cs | 112 +- .../System.Reflection.Extensions.cs | 2 + .../System.Reflection.Metadata.cs | 3364 +-- .../System.Reflection.Primitives.cs | 67 +- .../System.Reflection.TypeExtensions.cs | 22 +- .../System.Reflection.cs | 2 + .../System.Resources.Reader.cs | 2 + .../System.Resources.ResourceManager.cs | 2 + .../System.Resources.Writer.cs | 17 +- .../System.Runtime.CompilerServices.Unsafe.cs | 2 + ...System.Runtime.CompilerServices.VisualC.cs | 27 +- .../System.Runtime.Extensions.cs | 2 + .../System.Runtime.Handles.cs | 2 + ...stem.Runtime.InteropServices.JavaScript.cs | 289 +- ...time.InteropServices.RuntimeInformation.cs | 2 + .../System.Runtime.InteropServices.cs | 2721 +- .../System.Runtime.Intrinsics.cs | 7403 +++-- .../System.Runtime.Loader.cs | 44 +- .../System.Runtime.Numerics.cs | 463 +- ...System.Runtime.Serialization.Formatters.cs | 173 +- .../System.Runtime.Serialization.Json.cs | 46 +- ...System.Runtime.Serialization.Primitives.cs | 83 +- .../System.Runtime.Serialization.Xml.cs | 431 +- .../System.Runtime.Serialization.cs | 2 + .../Microsoft.NETCore.App/System.Runtime.cs | 23213 ++++++++-------- .../System.Security.AccessControl.cs | 400 +- .../System.Security.Claims.cs | 238 +- ...System.Security.Cryptography.Algorithms.cs | 2 + .../System.Security.Cryptography.Cng.cs | 2 + .../System.Security.Cryptography.Csp.cs | 2 + .../System.Security.Cryptography.Encoding.cs | 2 + .../System.Security.Cryptography.OpenSsl.cs | 2 + ...System.Security.Cryptography.Primitives.cs | 2 + ....Security.Cryptography.X509Certificates.cs | 2 + .../System.Security.Cryptography.cs | 3159 +-- .../System.Security.Principal.Windows.cs | 288 +- .../System.Security.Principal.cs | 2 + .../System.Security.SecureString.cs | 2 + .../Microsoft.NETCore.App/System.Security.cs | 2 + .../System.ServiceModel.Web.cs | 2 + .../System.ServiceProcess.cs | 2 + .../System.Text.Encoding.CodePages.cs | 4 +- .../System.Text.Encoding.Extensions.cs | 226 +- .../System.Text.Encoding.cs | 2 + .../System.Text.Encodings.Web.cs | 56 +- .../Microsoft.NETCore.App/System.Text.Json.cs | 1223 +- .../System.Text.RegularExpressions.cs | 282 +- .../System.Threading.Channels.cs | 53 +- .../System.Threading.Overlapped.cs | 56 +- .../System.Threading.Tasks.Dataflow.cs | 217 +- .../System.Threading.Tasks.Extensions.cs | 2 + .../System.Threading.Tasks.Parallel.cs | 70 +- .../System.Threading.Tasks.cs | 2 + .../System.Threading.Thread.cs | 119 +- .../System.Threading.ThreadPool.cs | 28 +- .../System.Threading.Timer.cs | 2 + .../Microsoft.NETCore.App/System.Threading.cs | 281 +- .../System.Transactions.Local.cs | 136 +- .../System.Transactions.cs | 2 + .../System.ValueTuple.cs | 2 + .../System.Web.HttpUtility.cs | 32 +- .../Microsoft.NETCore.App/System.Web.cs | 2 + .../Microsoft.NETCore.App/System.Windows.cs | 2 + .../Microsoft.NETCore.App/System.Xml.Linq.cs | 2 + .../System.Xml.ReaderWriter.cs | 3004 +- .../System.Xml.Serialization.cs | 2 + .../System.Xml.XDocument.cs | 274 +- .../System.Xml.XPath.XDocument.cs | 7 +- .../Microsoft.NETCore.App/System.Xml.XPath.cs | 11 +- .../System.Xml.XmlDocument.cs | 2 + .../System.Xml.XmlSerializer.cs | 444 +- .../Microsoft.NETCore.App/System.Xml.cs | 2 + .../Microsoft.NETCore.App/System.cs | 2 + .../Microsoft.NETCore.App/WindowsBase.cs | 2 + .../Microsoft.NETCore.App/mscorlib.cs | 2 + .../Microsoft.NETCore.App/netstandard.cs | 2 + 163 files changed, 33484 insertions(+), 37878 deletions(-) create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.CSharp.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.CSharp.cs index 659a790c78b..ae46fcb5677 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.CSharp.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.CSharp.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.CSharp, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace Microsoft { namespace CSharp @@ -21,39 +20,35 @@ namespace Microsoft public static System.Runtime.CompilerServices.CallSiteBinder SetMember(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, string name, System.Type context, System.Collections.Generic.IEnumerable argumentInfo) => throw null; public static System.Runtime.CompilerServices.CallSiteBinder UnaryOperation(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, System.Linq.Expressions.ExpressionType operation, System.Type context, System.Collections.Generic.IEnumerable argumentInfo) => throw null; } - - public class CSharpArgumentInfo + public sealed class CSharpArgumentInfo { public static Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo Create(Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags flags, string name) => throw null; } - [System.Flags] - public enum CSharpArgumentInfoFlags : int + public enum CSharpArgumentInfoFlags { - Constant = 2, - IsOut = 16, - IsRef = 8, - IsStaticType = 32, - NamedArgument = 4, None = 0, UseCompileTimeType = 1, + Constant = 2, + NamedArgument = 4, + IsRef = 8, + IsOut = 16, + IsStaticType = 32, } - [System.Flags] - public enum CSharpBinderFlags : int + public enum CSharpBinderFlags { - BinaryOperationLogical = 8, + None = 0, CheckedContext = 1, - ConvertArrayIndex = 32, - ConvertExplicit = 16, InvokeSimpleName = 2, InvokeSpecialName = 4, - None = 0, - ResultDiscarded = 256, + BinaryOperationLogical = 8, + ConvertExplicit = 16, + ConvertArrayIndex = 32, ResultIndexed = 64, ValueFromCompoundAssignment = 128, + ResultDiscarded = 256, } - public class RuntimeBinderException : System.Exception { public RuntimeBinderException() => throw null; @@ -61,7 +56,6 @@ namespace Microsoft public RuntimeBinderException(string message) => throw null; public RuntimeBinderException(string message, System.Exception innerException) => throw null; } - public class RuntimeBinderInternalCompilerException : System.Exception { public RuntimeBinderInternalCompilerException() => throw null; @@ -69,7 +63,6 @@ namespace Microsoft public RuntimeBinderInternalCompilerException(string message) => throw null; public RuntimeBinderInternalCompilerException(string message, System.Exception innerException) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs index c5e90da6fcc..981929b39bd 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.VisualBasic.Core, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace Microsoft { namespace VisualBasic @@ -8,33 +7,31 @@ namespace Microsoft public enum AppWinStyle : short { Hide = 0, - MaximizedFocus = 3, - MinimizedFocus = 2, - MinimizedNoFocus = 6, NormalFocus = 1, + MinimizedFocus = 2, + MaximizedFocus = 3, NormalNoFocus = 4, + MinimizedNoFocus = 6, } - - public enum CallType : int + public enum CallType { + Method = 1, Get = 2, Let = 4, - Method = 1, Set = 8, } - - public class Collection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + public sealed class Collection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { - int System.Collections.IList.Add(object value) => throw null; public void Add(object Item, string Key = default(string), object Before = default(object), object After = default(object)) => throw null; + int System.Collections.IList.Add(object value) => throw null; public void Clear() => throw null; void System.Collections.IList.Clear() => throw null; - public Collection() => throw null; - bool System.Collections.IList.Contains(object value) => throw null; public bool Contains(string Key) => throw null; + bool System.Collections.IList.Contains(object value) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } int System.Collections.ICollection.Count { get => throw null; } + public Collection() => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; int System.Collections.IList.IndexOf(object value) => throw null; @@ -42,18 +39,17 @@ namespace Microsoft bool System.Collections.IList.IsFixedSize { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public object this[int Index] { get => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public object this[object Index] { get => throw null; } - public object this[string Key] { get => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } public void Remove(int Index) => throw null; - void System.Collections.IList.Remove(object value) => throw null; public void Remove(string Key) => throw null; + void System.Collections.IList.Remove(object value) => throw null; void System.Collections.IList.RemoveAt(int index) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public object this[int Index] { get => throw null; } + public object this[object Index] { get => throw null; } + public object this[string Key] { get => throw null; } } - - public class ComClassAttribute : System.Attribute + public sealed class ComClassAttribute : System.Attribute { public string ClassID { get => throw null; } public ComClassAttribute() => throw null; @@ -62,756 +58,111 @@ namespace Microsoft public ComClassAttribute(string _ClassID, string _InterfaceID, string _EventId) => throw null; public string EventID { get => throw null; } public string InterfaceID { get => throw null; } - public bool InterfaceShadows { get => throw null; set => throw null; } + public bool InterfaceShadows { get => throw null; set { } } } - - public enum CompareMethod : int + public enum CompareMethod { Binary = 0, Text = 1, } - - public class Constants - { - public const Microsoft.VisualBasic.MsgBoxResult vbAbort = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbAbortRetryIgnore = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbApplicationModal = default; - public const Microsoft.VisualBasic.FileAttribute vbArchive = default; - public const Microsoft.VisualBasic.VariantType vbArray = default; - public const string vbBack = default; - public const Microsoft.VisualBasic.CompareMethod vbBinaryCompare = default; - public const Microsoft.VisualBasic.VariantType vbBoolean = default; - public const Microsoft.VisualBasic.VariantType vbByte = default; - public const Microsoft.VisualBasic.MsgBoxResult vbCancel = default; - public const string vbCr = default; - public const string vbCrLf = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbCritical = default; - public const Microsoft.VisualBasic.VariantType vbCurrency = default; - public const Microsoft.VisualBasic.VariantType vbDate = default; - public const Microsoft.VisualBasic.VariantType vbDecimal = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton1 = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton2 = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton3 = default; - public const Microsoft.VisualBasic.FileAttribute vbDirectory = default; - public const Microsoft.VisualBasic.VariantType vbDouble = default; - public const Microsoft.VisualBasic.VariantType vbEmpty = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbExclamation = default; - public const Microsoft.VisualBasic.TriState vbFalse = default; - public const Microsoft.VisualBasic.FirstWeekOfYear vbFirstFourDays = default; - public const Microsoft.VisualBasic.FirstWeekOfYear vbFirstFullWeek = default; - public const Microsoft.VisualBasic.FirstWeekOfYear vbFirstJan1 = default; - public const string vbFormFeed = default; - public const Microsoft.VisualBasic.FirstDayOfWeek vbFriday = default; - public const Microsoft.VisualBasic.DateFormat vbGeneralDate = default; - public const Microsoft.VisualBasic.CallType vbGet = default; - public const Microsoft.VisualBasic.FileAttribute vbHidden = default; - public const Microsoft.VisualBasic.AppWinStyle vbHide = default; - public const Microsoft.VisualBasic.VbStrConv vbHiragana = default; - public const Microsoft.VisualBasic.MsgBoxResult vbIgnore = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbInformation = default; - public const Microsoft.VisualBasic.VariantType vbInteger = default; - public const Microsoft.VisualBasic.VbStrConv vbKatakana = default; - public const Microsoft.VisualBasic.CallType vbLet = default; - public const string vbLf = default; - public const Microsoft.VisualBasic.VbStrConv vbLinguisticCasing = default; - public const Microsoft.VisualBasic.VariantType vbLong = default; - public const Microsoft.VisualBasic.DateFormat vbLongDate = default; - public const Microsoft.VisualBasic.DateFormat vbLongTime = default; - public const Microsoft.VisualBasic.VbStrConv vbLowerCase = default; - public const Microsoft.VisualBasic.AppWinStyle vbMaximizedFocus = default; - public const Microsoft.VisualBasic.CallType vbMethod = default; - public const Microsoft.VisualBasic.AppWinStyle vbMinimizedFocus = default; - public const Microsoft.VisualBasic.AppWinStyle vbMinimizedNoFocus = default; - public const Microsoft.VisualBasic.FirstDayOfWeek vbMonday = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxHelp = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxRight = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxRtlReading = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxSetForeground = default; - public const Microsoft.VisualBasic.VbStrConv vbNarrow = default; - public const string vbNewLine = default; - public const Microsoft.VisualBasic.MsgBoxResult vbNo = default; - public const Microsoft.VisualBasic.FileAttribute vbNormal = default; - public const Microsoft.VisualBasic.AppWinStyle vbNormalFocus = default; - public const Microsoft.VisualBasic.AppWinStyle vbNormalNoFocus = default; - public const Microsoft.VisualBasic.VariantType vbNull = default; - public const string vbNullChar = default; - public const string vbNullString = default; - public const Microsoft.VisualBasic.MsgBoxResult vbOK = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbOKCancel = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbOKOnly = default; - public const Microsoft.VisualBasic.VariantType vbObject = default; - public const int vbObjectError = default; - public const Microsoft.VisualBasic.VbStrConv vbProperCase = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbQuestion = default; - public const Microsoft.VisualBasic.FileAttribute vbReadOnly = default; - public const Microsoft.VisualBasic.MsgBoxResult vbRetry = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbRetryCancel = default; - public const Microsoft.VisualBasic.FirstDayOfWeek vbSaturday = default; - public const Microsoft.VisualBasic.CallType vbSet = default; - public const Microsoft.VisualBasic.DateFormat vbShortDate = default; - public const Microsoft.VisualBasic.DateFormat vbShortTime = default; - public const Microsoft.VisualBasic.VbStrConv vbSimplifiedChinese = default; - public const Microsoft.VisualBasic.VariantType vbSingle = default; - public const Microsoft.VisualBasic.VariantType vbString = default; - public const Microsoft.VisualBasic.FirstDayOfWeek vbSunday = default; - public const Microsoft.VisualBasic.FileAttribute vbSystem = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbSystemModal = default; - public const string vbTab = default; - public const Microsoft.VisualBasic.CompareMethod vbTextCompare = default; - public const Microsoft.VisualBasic.FirstDayOfWeek vbThursday = default; - public const Microsoft.VisualBasic.VbStrConv vbTraditionalChinese = default; - public const Microsoft.VisualBasic.TriState vbTrue = default; - public const Microsoft.VisualBasic.FirstDayOfWeek vbTuesday = default; - public const Microsoft.VisualBasic.VbStrConv vbUpperCase = default; - public const Microsoft.VisualBasic.TriState vbUseDefault = default; - public const Microsoft.VisualBasic.FirstWeekOfYear vbUseSystem = default; - public const Microsoft.VisualBasic.FirstDayOfWeek vbUseSystemDayOfWeek = default; - public const Microsoft.VisualBasic.VariantType vbUserDefinedType = default; - public const Microsoft.VisualBasic.VariantType vbVariant = default; - public const string vbVerticalTab = default; - public const Microsoft.VisualBasic.FileAttribute vbVolume = default; - public const Microsoft.VisualBasic.FirstDayOfWeek vbWednesday = default; - public const Microsoft.VisualBasic.VbStrConv vbWide = default; - public const Microsoft.VisualBasic.MsgBoxResult vbYes = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbYesNo = default; - public const Microsoft.VisualBasic.MsgBoxStyle vbYesNoCancel = default; - } - - public class ControlChars - { - public const System.Char Back = default; - public ControlChars() => throw null; - public const System.Char Cr = default; - public const string CrLf = default; - public const System.Char FormFeed = default; - public const System.Char Lf = default; - public const string NewLine = default; - public const System.Char NullChar = default; - public const System.Char Quote = default; - public const System.Char Tab = default; - public const System.Char VerticalTab = default; - } - - public class Conversion - { - public static object CTypeDynamic(object Expression, System.Type TargetType) => throw null; - public static TargetType CTypeDynamic(object Expression) => throw null; - public static string ErrorToString() => throw null; - public static string ErrorToString(int ErrorNumber) => throw null; - public static System.Decimal Fix(System.Decimal Number) => throw null; - public static double Fix(double Number) => throw null; - public static float Fix(float Number) => throw null; - public static int Fix(int Number) => throw null; - public static System.Int64 Fix(System.Int64 Number) => throw null; - public static object Fix(object Number) => throw null; - public static System.Int16 Fix(System.Int16 Number) => throw null; - public static string Hex(System.Byte Number) => throw null; - public static string Hex(int Number) => throw null; - public static string Hex(System.Int64 Number) => throw null; - public static string Hex(object Number) => throw null; - public static string Hex(System.SByte Number) => throw null; - public static string Hex(System.Int16 Number) => throw null; - public static string Hex(System.UInt32 Number) => throw null; - public static string Hex(System.UInt64 Number) => throw null; - public static string Hex(System.UInt16 Number) => throw null; - public static System.Decimal Int(System.Decimal Number) => throw null; - public static double Int(double Number) => throw null; - public static float Int(float Number) => throw null; - public static int Int(int Number) => throw null; - public static System.Int64 Int(System.Int64 Number) => throw null; - public static object Int(object Number) => throw null; - public static System.Int16 Int(System.Int16 Number) => throw null; - public static string Oct(System.Byte Number) => throw null; - public static string Oct(int Number) => throw null; - public static string Oct(System.Int64 Number) => throw null; - public static string Oct(object Number) => throw null; - public static string Oct(System.SByte Number) => throw null; - public static string Oct(System.Int16 Number) => throw null; - public static string Oct(System.UInt32 Number) => throw null; - public static string Oct(System.UInt64 Number) => throw null; - public static string Oct(System.UInt16 Number) => throw null; - public static string Str(object Number) => throw null; - public static int Val(System.Char Expression) => throw null; - public static double Val(object Expression) => throw null; - public static double Val(string InputStr) => throw null; - } - - public class DateAndTime - { - public static System.DateTime DateAdd(Microsoft.VisualBasic.DateInterval Interval, double Number, System.DateTime DateValue) => throw null; - public static System.DateTime DateAdd(string Interval, double Number, object DateValue) => throw null; - public static System.Int64 DateDiff(Microsoft.VisualBasic.DateInterval Interval, System.DateTime Date1, System.DateTime Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = default(Microsoft.VisualBasic.FirstDayOfWeek), Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = default(Microsoft.VisualBasic.FirstWeekOfYear)) => throw null; - public static System.Int64 DateDiff(string Interval, object Date1, object Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = default(Microsoft.VisualBasic.FirstDayOfWeek), Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = default(Microsoft.VisualBasic.FirstWeekOfYear)) => throw null; - public static int DatePart(Microsoft.VisualBasic.DateInterval Interval, System.DateTime DateValue, Microsoft.VisualBasic.FirstDayOfWeek FirstDayOfWeekValue = default(Microsoft.VisualBasic.FirstDayOfWeek), Microsoft.VisualBasic.FirstWeekOfYear FirstWeekOfYearValue = default(Microsoft.VisualBasic.FirstWeekOfYear)) => throw null; - public static int DatePart(string Interval, object DateValue, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = default(Microsoft.VisualBasic.FirstDayOfWeek), Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = default(Microsoft.VisualBasic.FirstWeekOfYear)) => throw null; - public static System.DateTime DateSerial(int Year, int Month, int Day) => throw null; - public static string DateString { get => throw null; set => throw null; } - public static System.DateTime DateValue(string StringDate) => throw null; - public static int Day(System.DateTime DateValue) => throw null; - public static int Hour(System.DateTime TimeValue) => throw null; - public static int Minute(System.DateTime TimeValue) => throw null; - public static int Month(System.DateTime DateValue) => throw null; - public static string MonthName(int Month, bool Abbreviate = default(bool)) => throw null; - public static System.DateTime Now { get => throw null; } - public static int Second(System.DateTime TimeValue) => throw null; - public static System.DateTime TimeOfDay { get => throw null; set => throw null; } - public static System.DateTime TimeSerial(int Hour, int Minute, int Second) => throw null; - public static string TimeString { get => throw null; set => throw null; } - public static System.DateTime TimeValue(string StringTime) => throw null; - public static double Timer { get => throw null; } - public static System.DateTime Today { get => throw null; set => throw null; } - public static int Weekday(System.DateTime DateValue, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = default(Microsoft.VisualBasic.FirstDayOfWeek)) => throw null; - public static string WeekdayName(int Weekday, bool Abbreviate = default(bool), Microsoft.VisualBasic.FirstDayOfWeek FirstDayOfWeekValue = default(Microsoft.VisualBasic.FirstDayOfWeek)) => throw null; - public static int Year(System.DateTime DateValue) => throw null; - } - - public enum DateFormat : int - { - GeneralDate = 0, - LongDate = 1, - LongTime = 3, - ShortDate = 2, - ShortTime = 4, - } - - public enum DateInterval : int - { - Day = 4, - DayOfYear = 3, - Hour = 7, - Minute = 8, - Month = 2, - Quarter = 1, - Second = 9, - WeekOfYear = 5, - Weekday = 6, - Year = 0, - } - - public enum DueDate : int - { - BegOfPeriod = 1, - EndOfPeriod = 0, - } - - public class ErrObject - { - public void Clear() => throw null; - public string Description { get => throw null; set => throw null; } - public int Erl { get => throw null; } - public System.Exception GetException() => throw null; - public int HelpContext { get => throw null; set => throw null; } - public string HelpFile { get => throw null; set => throw null; } - public int LastDllError { get => throw null; } - public int Number { get => throw null; set => throw null; } - public void Raise(int Number, object Source = default(object), object Description = default(object), object HelpFile = default(object), object HelpContext = default(object)) => throw null; - public string Source { get => throw null; set => throw null; } - } - - [System.Flags] - public enum FileAttribute : int - { - Archive = 32, - Directory = 16, - Hidden = 2, - Normal = 0, - ReadOnly = 1, - System = 4, - Volume = 8, - } - - public class FileSystem - { - public static void ChDir(string Path) => throw null; - public static void ChDrive(System.Char Drive) => throw null; - public static void ChDrive(string Drive) => throw null; - public static string CurDir() => throw null; - public static string CurDir(System.Char Drive) => throw null; - public static string Dir() => throw null; - public static string Dir(string PathName, Microsoft.VisualBasic.FileAttribute Attributes = default(Microsoft.VisualBasic.FileAttribute)) => throw null; - public static bool EOF(int FileNumber) => throw null; - public static Microsoft.VisualBasic.OpenMode FileAttr(int FileNumber) => throw null; - public static void FileClose(params int[] FileNumbers) => throw null; - public static void FileCopy(string Source, string Destination) => throw null; - public static System.DateTime FileDateTime(string PathName) => throw null; - public static void FileGet(int FileNumber, ref System.Array Value, System.Int64 RecordNumber = default(System.Int64), bool ArrayIsDynamic = default(bool), bool StringIsFixedLength = default(bool)) => throw null; - public static void FileGet(int FileNumber, ref System.DateTime Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref System.ValueType Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref bool Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref System.Byte Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref System.Char Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref System.Decimal Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref double Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref float Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref int Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref System.Int64 Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref System.Int16 Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileGet(int FileNumber, ref string Value, System.Int64 RecordNumber = default(System.Int64), bool StringIsFixedLength = default(bool)) => throw null; - public static void FileGetObject(int FileNumber, ref object Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static System.Int64 FileLen(string PathName) => throw null; - public static void FileOpen(int FileNumber, string FileName, Microsoft.VisualBasic.OpenMode Mode, Microsoft.VisualBasic.OpenAccess Access = default(Microsoft.VisualBasic.OpenAccess), Microsoft.VisualBasic.OpenShare Share = default(Microsoft.VisualBasic.OpenShare), int RecordLength = default(int)) => throw null; - public static void FilePut(int FileNumber, System.Array Value, System.Int64 RecordNumber = default(System.Int64), bool ArrayIsDynamic = default(bool), bool StringIsFixedLength = default(bool)) => throw null; - public static void FilePut(int FileNumber, System.DateTime Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, System.ValueType Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, bool Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, System.Byte Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, System.Char Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, System.Decimal Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, double Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, float Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, int Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, System.Int64 Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, System.Int16 Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FilePut(int FileNumber, string Value, System.Int64 RecordNumber = default(System.Int64), bool StringIsFixedLength = default(bool)) => throw null; - public static void FilePut(object FileNumber, object Value, object RecordNumber) => throw null; - public static void FilePutObject(int FileNumber, object Value, System.Int64 RecordNumber = default(System.Int64)) => throw null; - public static void FileWidth(int FileNumber, int RecordWidth) => throw null; - public static int FreeFile() => throw null; - public static Microsoft.VisualBasic.FileAttribute GetAttr(string PathName) => throw null; - public static void Input(int FileNumber, ref System.DateTime Value) => throw null; - public static void Input(int FileNumber, ref bool Value) => throw null; - public static void Input(int FileNumber, ref System.Byte Value) => throw null; - public static void Input(int FileNumber, ref System.Char Value) => throw null; - public static void Input(int FileNumber, ref System.Decimal Value) => throw null; - public static void Input(int FileNumber, ref double Value) => throw null; - public static void Input(int FileNumber, ref float Value) => throw null; - public static void Input(int FileNumber, ref int Value) => throw null; - public static void Input(int FileNumber, ref System.Int64 Value) => throw null; - public static void Input(int FileNumber, ref object Value) => throw null; - public static void Input(int FileNumber, ref System.Int16 Value) => throw null; - public static void Input(int FileNumber, ref string Value) => throw null; - public static string InputString(int FileNumber, int CharCount) => throw null; - public static void Kill(string PathName) => throw null; - public static System.Int64 LOF(int FileNumber) => throw null; - public static string LineInput(int FileNumber) => throw null; - public static System.Int64 Loc(int FileNumber) => throw null; - public static void Lock(int FileNumber) => throw null; - public static void Lock(int FileNumber, System.Int64 Record) => throw null; - public static void Lock(int FileNumber, System.Int64 FromRecord, System.Int64 ToRecord) => throw null; - public static void MkDir(string Path) => throw null; - public static void Print(int FileNumber, params object[] Output) => throw null; - public static void PrintLine(int FileNumber, params object[] Output) => throw null; - public static void Rename(string OldPath, string NewPath) => throw null; - public static void Reset() => throw null; - public static void RmDir(string Path) => throw null; - public static Microsoft.VisualBasic.SpcInfo SPC(System.Int16 Count) => throw null; - public static System.Int64 Seek(int FileNumber) => throw null; - public static void Seek(int FileNumber, System.Int64 Position) => throw null; - public static void SetAttr(string PathName, Microsoft.VisualBasic.FileAttribute Attributes) => throw null; - public static Microsoft.VisualBasic.TabInfo TAB() => throw null; - public static Microsoft.VisualBasic.TabInfo TAB(System.Int16 Column) => throw null; - public static void Unlock(int FileNumber) => throw null; - public static void Unlock(int FileNumber, System.Int64 Record) => throw null; - public static void Unlock(int FileNumber, System.Int64 FromRecord, System.Int64 ToRecord) => throw null; - public static void Write(int FileNumber, params object[] Output) => throw null; - public static void WriteLine(int FileNumber, params object[] Output) => throw null; - } - - public class Financial - { - public static double DDB(double Cost, double Salvage, double Life, double Period, double Factor = default(double)) => throw null; - public static double FV(double Rate, double NPer, double Pmt, double PV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; - public static double IPmt(double Rate, double Per, double NPer, double PV, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; - public static double IRR(ref double[] ValueArray, double Guess = default(double)) => throw null; - public static double MIRR(ref double[] ValueArray, double FinanceRate, double ReinvestRate) => throw null; - public static double NPV(double Rate, ref double[] ValueArray) => throw null; - public static double NPer(double Rate, double Pmt, double PV, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; - public static double PPmt(double Rate, double Per, double NPer, double PV, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; - public static double PV(double Rate, double NPer, double Pmt, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; - public static double Pmt(double Rate, double NPer, double PV, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; - public static double Rate(double NPer, double Pmt, double PV, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate), double Guess = default(double)) => throw null; - public static double SLN(double Cost, double Salvage, double Life) => throw null; - public static double SYD(double Cost, double Salvage, double Life, double Period) => throw null; - } - - public enum FirstDayOfWeek : int - { - Friday = 6, - Monday = 2, - Saturday = 7, - Sunday = 1, - System = 0, - Thursday = 5, - Tuesday = 3, - Wednesday = 4, - } - - public enum FirstWeekOfYear : int - { - FirstFourDays = 2, - FirstFullWeek = 3, - Jan1 = 1, - System = 0, - } - - public class HideModuleNameAttribute : System.Attribute - { - public HideModuleNameAttribute() => throw null; - } - - public class Information - { - public static int Erl() => throw null; - public static Microsoft.VisualBasic.ErrObject Err() => throw null; - public static bool IsArray(object VarName) => throw null; - public static bool IsDBNull(object Expression) => throw null; - public static bool IsDate(object Expression) => throw null; - public static bool IsError(object Expression) => throw null; - public static bool IsNothing(object Expression) => throw null; - public static bool IsNumeric(object Expression) => throw null; - public static bool IsReference(object Expression) => throw null; - public static int LBound(System.Array Array, int Rank = default(int)) => throw null; - public static int QBColor(int Color) => throw null; - public static int RGB(int Red, int Green, int Blue) => throw null; - public static string SystemTypeName(string VbName) => throw null; - public static string TypeName(object VarName) => throw null; - public static int UBound(System.Array Array, int Rank = default(int)) => throw null; - public static Microsoft.VisualBasic.VariantType VarType(object VarName) => throw null; - public static string VbTypeName(string UrtName) => throw null; - } - - public class Interaction - { - public static void AppActivate(int ProcessId) => throw null; - public static void AppActivate(string Title) => throw null; - public static void Beep() => throw null; - public static object CallByName(object ObjectRef, string ProcName, Microsoft.VisualBasic.CallType UseCallType, params object[] Args) => throw null; - public static object Choose(double Index, params object[] Choice) => throw null; - public static string Command() => throw null; - public static object CreateObject(string ProgId, string ServerName = default(string)) => throw null; - public static void DeleteSetting(string AppName, string Section = default(string), string Key = default(string)) => throw null; - public static string Environ(int Expression) => throw null; - public static string Environ(string Expression) => throw null; - public static string[] GetAllSettings(string AppName, string Section) => throw null; - public static object GetObject(string PathName = default(string), string Class = default(string)) => throw null; - public static string GetSetting(string AppName, string Section, string Key, string Default = default(string)) => throw null; - public static object IIf(bool Expression, object TruePart, object FalsePart) => throw null; - public static string InputBox(string Prompt, string Title = default(string), string DefaultResponse = default(string), int XPos = default(int), int YPos = default(int)) => throw null; - public static Microsoft.VisualBasic.MsgBoxResult MsgBox(object Prompt, Microsoft.VisualBasic.MsgBoxStyle Buttons = default(Microsoft.VisualBasic.MsgBoxStyle), object Title = default(object)) => throw null; - public static string Partition(System.Int64 Number, System.Int64 Start, System.Int64 Stop, System.Int64 Interval) => throw null; - public static void SaveSetting(string AppName, string Section, string Key, string Setting) => throw null; - public static int Shell(string PathName, Microsoft.VisualBasic.AppWinStyle Style = default(Microsoft.VisualBasic.AppWinStyle), bool Wait = default(bool), int Timeout = default(int)) => throw null; - public static object Switch(params object[] VarExpr) => throw null; - } - - public enum MsgBoxResult : int - { - Abort = 3, - Cancel = 2, - Ignore = 5, - No = 7, - Ok = 1, - Retry = 4, - Yes = 6, - } - - [System.Flags] - public enum MsgBoxStyle : int - { - AbortRetryIgnore = 2, - ApplicationModal = 0, - Critical = 16, - DefaultButton1 = 0, - DefaultButton2 = 256, - DefaultButton3 = 512, - Exclamation = 48, - Information = 64, - MsgBoxHelp = 16384, - MsgBoxRight = 524288, - MsgBoxRtlReading = 1048576, - MsgBoxSetForeground = 65536, - OkCancel = 1, - OkOnly = 0, - Question = 32, - RetryCancel = 5, - SystemModal = 4096, - YesNo = 4, - YesNoCancel = 3, - } - - public class MyGroupCollectionAttribute : System.Attribute - { - public string CreateMethod { get => throw null; } - public string DefaultInstanceAlias { get => throw null; } - public string DisposeMethod { get => throw null; } - public MyGroupCollectionAttribute(string typeToCollect, string createInstanceMethodName, string disposeInstanceMethodName, string defaultInstanceAlias) => throw null; - public string MyGroupName { get => throw null; } - } - - public enum OpenAccess : int - { - Default = -1, - Read = 1, - ReadWrite = 3, - Write = 2, - } - - public enum OpenMode : int - { - Append = 8, - Binary = 32, - Input = 1, - Output = 2, - Random = 4, - } - - public enum OpenShare : int - { - Default = -1, - LockRead = 2, - LockReadWrite = 0, - LockWrite = 1, - Shared = 3, - } - - public struct SpcInfo - { - public System.Int16 Count; - // Stub generator skipped constructor - } - - public class Strings - { - public static int Asc(System.Char String) => throw null; - public static int Asc(string String) => throw null; - public static int AscW(System.Char String) => throw null; - public static int AscW(string String) => throw null; - public static System.Char Chr(int CharCode) => throw null; - public static System.Char ChrW(int CharCode) => throw null; - public static string[] Filter(object[] Source, string Match, bool Include = default(bool), Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; - public static string[] Filter(string[] Source, string Match, bool Include = default(bool), Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; - public static string Format(object Expression, string Style = default(string)) => throw null; - public static string FormatCurrency(object Expression, int NumDigitsAfterDecimal = default(int), Microsoft.VisualBasic.TriState IncludeLeadingDigit = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState UseParensForNegativeNumbers = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState GroupDigits = default(Microsoft.VisualBasic.TriState)) => throw null; - public static string FormatDateTime(System.DateTime Expression, Microsoft.VisualBasic.DateFormat NamedFormat = default(Microsoft.VisualBasic.DateFormat)) => throw null; - public static string FormatNumber(object Expression, int NumDigitsAfterDecimal = default(int), Microsoft.VisualBasic.TriState IncludeLeadingDigit = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState UseParensForNegativeNumbers = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState GroupDigits = default(Microsoft.VisualBasic.TriState)) => throw null; - public static string FormatPercent(object Expression, int NumDigitsAfterDecimal = default(int), Microsoft.VisualBasic.TriState IncludeLeadingDigit = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState UseParensForNegativeNumbers = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState GroupDigits = default(Microsoft.VisualBasic.TriState)) => throw null; - public static System.Char GetChar(string str, int Index) => throw null; - public static int InStr(int Start, string String1, string String2, Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; - public static int InStr(string String1, string String2, Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; - public static int InStrRev(string StringCheck, string StringMatch, int Start = default(int), Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; - public static string Join(object[] SourceArray, string Delimiter = default(string)) => throw null; - public static string Join(string[] SourceArray, string Delimiter = default(string)) => throw null; - public static System.Char LCase(System.Char Value) => throw null; - public static string LCase(string Value) => throw null; - public static string LSet(string Source, int Length) => throw null; - public static string LTrim(string str) => throw null; - public static string Left(string str, int Length) => throw null; - public static int Len(System.DateTime Expression) => throw null; - public static int Len(bool Expression) => throw null; - public static int Len(System.Byte Expression) => throw null; - public static int Len(System.Char Expression) => throw null; - public static int Len(System.Decimal Expression) => throw null; - public static int Len(double Expression) => throw null; - public static int Len(float Expression) => throw null; - public static int Len(int Expression) => throw null; - public static int Len(System.Int64 Expression) => throw null; - public static int Len(object Expression) => throw null; - public static int Len(System.SByte Expression) => throw null; - public static int Len(System.Int16 Expression) => throw null; - public static int Len(string Expression) => throw null; - public static int Len(System.UInt32 Expression) => throw null; - public static int Len(System.UInt64 Expression) => throw null; - public static int Len(System.UInt16 Expression) => throw null; - public static string Mid(string str, int Start) => throw null; - public static string Mid(string str, int Start, int Length) => throw null; - public static string RSet(string Source, int Length) => throw null; - public static string RTrim(string str) => throw null; - public static string Replace(string Expression, string Find, string Replacement, int Start = default(int), int Count = default(int), Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; - public static string Right(string str, int Length) => throw null; - public static string Space(int Number) => throw null; - public static string[] Split(string Expression, string Delimiter = default(string), int Limit = default(int), Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; - public static int StrComp(string String1, string String2, Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; - public static string StrConv(string str, Microsoft.VisualBasic.VbStrConv Conversion, int LocaleID = default(int)) => throw null; - public static string StrDup(int Number, System.Char Character) => throw null; - public static object StrDup(int Number, object Character) => throw null; - public static string StrDup(int Number, string Character) => throw null; - public static string StrReverse(string Expression) => throw null; - public static string Trim(string str) => throw null; - public static System.Char UCase(System.Char Value) => throw null; - public static string UCase(string Value) => throw null; - } - - public struct TabInfo - { - public System.Int16 Column; - // Stub generator skipped constructor - } - - public enum TriState : int - { - False = 0, - True = -1, - UseDefault = -2, - } - - public class VBFixedArrayAttribute : System.Attribute - { - public int[] Bounds { get => throw null; } - public int Length { get => throw null; } - public VBFixedArrayAttribute(int UpperBound1) => throw null; - public VBFixedArrayAttribute(int UpperBound1, int UpperBound2) => throw null; - } - - public class VBFixedStringAttribute : System.Attribute - { - public int Length { get => throw null; } - public VBFixedStringAttribute(int Length) => throw null; - } - - public class VBMath - { - public static void Randomize() => throw null; - public static void Randomize(double Number) => throw null; - public static float Rnd() => throw null; - public static float Rnd(float Number) => throw null; - } - - public enum VariantType : int - { - Array = 8192, - Boolean = 11, - Byte = 17, - Char = 18, - Currency = 6, - DataObject = 13, - Date = 7, - Decimal = 14, - Double = 5, - Empty = 0, - Error = 10, - Integer = 3, - Long = 20, - Null = 1, - Object = 9, - Short = 2, - Single = 4, - String = 8, - UserDefinedType = 36, - Variant = 12, - } - - [System.Flags] - public enum VbStrConv : int - { - Hiragana = 32, - Katakana = 16, - LinguisticCasing = 1024, - Lowercase = 2, - Narrow = 8, - None = 0, - ProperCase = 3, - SimplifiedChinese = 256, - TraditionalChinese = 512, - Uppercase = 1, - Wide = 4, - } - namespace CompilerServices { - public class BooleanType + public sealed class BooleanType { public static bool FromObject(object Value) => throw null; public static bool FromString(string Value) => throw null; } - - public class ByteType + public sealed class ByteType { - public static System.Byte FromObject(object Value) => throw null; - public static System.Byte FromString(string Value) => throw null; + public static byte FromObject(object Value) => throw null; + public static byte FromString(string Value) => throw null; } - - public class CharArrayType + public sealed class CharArrayType { - public static System.Char[] FromObject(object Value) => throw null; - public static System.Char[] FromString(string Value) => throw null; + public static char[] FromObject(object Value) => throw null; + public static char[] FromString(string Value) => throw null; } - - public class CharType + public sealed class CharType { - public static System.Char FromObject(object Value) => throw null; - public static System.Char FromString(string Value) => throw null; + public static char FromObject(object Value) => throw null; + public static char FromString(string Value) => throw null; } - - public class Conversions + public sealed class Conversions { public static object ChangeType(object Expression, System.Type TargetType) => throw null; public static object FallbackUserDefinedConversion(object Expression, System.Type TargetType) => throw null; - public static string FromCharAndCount(System.Char Value, int Count) => throw null; - public static string FromCharArray(System.Char[] Value) => throw null; - public static string FromCharArraySubset(System.Char[] Value, int StartIndex, int Length) => throw null; + public static string FromCharAndCount(char Value, int Count) => throw null; + public static string FromCharArray(char[] Value) => throw null; + public static string FromCharArraySubset(char[] Value, int StartIndex, int Length) => throw null; public static bool ToBoolean(object Value) => throw null; public static bool ToBoolean(string Value) => throw null; - public static System.Byte ToByte(object Value) => throw null; - public static System.Byte ToByte(string Value) => throw null; - public static System.Char ToChar(object Value) => throw null; - public static System.Char ToChar(string Value) => throw null; - public static System.Char[] ToCharArrayRankOne(object Value) => throw null; - public static System.Char[] ToCharArrayRankOne(string Value) => throw null; + public static byte ToByte(object Value) => throw null; + public static byte ToByte(string Value) => throw null; + public static char ToChar(object Value) => throw null; + public static char ToChar(string Value) => throw null; + public static char[] ToCharArrayRankOne(object Value) => throw null; + public static char[] ToCharArrayRankOne(string Value) => throw null; public static System.DateTime ToDate(object Value) => throw null; public static System.DateTime ToDate(string Value) => throw null; - public static System.Decimal ToDecimal(bool Value) => throw null; - public static System.Decimal ToDecimal(object Value) => throw null; - public static System.Decimal ToDecimal(string Value) => throw null; + public static decimal ToDecimal(bool Value) => throw null; + public static decimal ToDecimal(object Value) => throw null; + public static decimal ToDecimal(string Value) => throw null; public static double ToDouble(object Value) => throw null; public static double ToDouble(string Value) => throw null; public static T ToGenericParameter(object Value) => throw null; public static int ToInteger(object Value) => throw null; public static int ToInteger(string Value) => throw null; - public static System.Int64 ToLong(object Value) => throw null; - public static System.Int64 ToLong(string Value) => throw null; - public static System.SByte ToSByte(object Value) => throw null; - public static System.SByte ToSByte(string Value) => throw null; - public static System.Int16 ToShort(object Value) => throw null; - public static System.Int16 ToShort(string Value) => throw null; + public static long ToLong(object Value) => throw null; + public static long ToLong(string Value) => throw null; + public static sbyte ToSByte(object Value) => throw null; + public static sbyte ToSByte(string Value) => throw null; + public static short ToShort(object Value) => throw null; + public static short ToShort(string Value) => throw null; public static float ToSingle(object Value) => throw null; public static float ToSingle(string Value) => throw null; - public static string ToString(System.DateTime Value) => throw null; public static string ToString(bool Value) => throw null; - public static string ToString(System.Byte Value) => throw null; - public static string ToString(System.Char Value) => throw null; - public static string ToString(System.Decimal Value) => throw null; - public static string ToString(System.Decimal Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; + public static string ToString(byte Value) => throw null; + public static string ToString(char Value) => throw null; + public static string ToString(System.DateTime Value) => throw null; + public static string ToString(decimal Value) => throw null; + public static string ToString(decimal Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; public static string ToString(double Value) => throw null; public static string ToString(double Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; + public static string ToString(short Value) => throw null; + public static string ToString(int Value) => throw null; + public static string ToString(long Value) => throw null; + public static string ToString(object Value) => throw null; public static string ToString(float Value) => throw null; public static string ToString(float Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; - public static string ToString(int Value) => throw null; - public static string ToString(System.Int64 Value) => throw null; - public static string ToString(object Value) => throw null; - public static string ToString(System.Int16 Value) => throw null; - public static string ToString(System.UInt32 Value) => throw null; - public static string ToString(System.UInt64 Value) => throw null; - public static System.UInt32 ToUInteger(object Value) => throw null; - public static System.UInt32 ToUInteger(string Value) => throw null; - public static System.UInt64 ToULong(object Value) => throw null; - public static System.UInt64 ToULong(string Value) => throw null; - public static System.UInt16 ToUShort(object Value) => throw null; - public static System.UInt16 ToUShort(string Value) => throw null; + public static string ToString(uint Value) => throw null; + public static string ToString(ulong Value) => throw null; + public static uint ToUInteger(object Value) => throw null; + public static uint ToUInteger(string Value) => throw null; + public static ulong ToULong(object Value) => throw null; + public static ulong ToULong(string Value) => throw null; + public static ushort ToUShort(object Value) => throw null; + public static ushort ToUShort(string Value) => throw null; } - - public class DateType + public sealed class DateType { public static System.DateTime FromObject(object Value) => throw null; public static System.DateTime FromString(string Value) => throw null; public static System.DateTime FromString(string Value, System.Globalization.CultureInfo culture) => throw null; } - - public class DecimalType + public sealed class DecimalType { - public static System.Decimal FromBoolean(bool Value) => throw null; - public static System.Decimal FromObject(object Value) => throw null; - public static System.Decimal FromObject(object Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; - public static System.Decimal FromString(string Value) => throw null; - public static System.Decimal FromString(string Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; - public static System.Decimal Parse(string Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; + public static decimal FromBoolean(bool Value) => throw null; + public static decimal FromObject(object Value) => throw null; + public static decimal FromObject(object Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; + public static decimal FromString(string Value) => throw null; + public static decimal FromString(string Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; + public static decimal Parse(string Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; } - - public class DesignerGeneratedAttribute : System.Attribute + public sealed class DesignerGeneratedAttribute : System.Attribute { public DesignerGeneratedAttribute() => throw null; } - - public class DoubleType + public sealed class DoubleType { public static double FromObject(object Value) => throw null; public static double FromObject(object Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; @@ -820,19 +171,16 @@ namespace Microsoft public static double Parse(string Value) => throw null; public static double Parse(string Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; } - - public class IncompleteInitialization : System.Exception + public sealed class IncompleteInitialization : System.Exception { public IncompleteInitialization() => throw null; } - - public class IntegerType + public sealed class IntegerType { public static int FromObject(object Value) => throw null; public static int FromString(string Value) => throw null; } - - public class LateBinding + public sealed class LateBinding { public static void LateCall(object o, System.Type objType, string name, object[] args, string[] paramnames, bool[] CopyBack) => throw null; public static object LateGet(object o, System.Type objType, string name, object[] args, string[] paramnames, bool[] CopyBack) => throw null; @@ -842,20 +190,17 @@ namespace Microsoft public static void LateSet(object o, System.Type objType, string name, object[] args, string[] paramnames) => throw null; public static void LateSetComplex(object o, System.Type objType, string name, object[] args, string[] paramnames, bool OptimisticSet, bool RValueBase) => throw null; } - - public class LikeOperator + public sealed class LikeOperator { public static object LikeObject(object Source, object Pattern, Microsoft.VisualBasic.CompareMethod CompareOption) => throw null; public static bool LikeString(string Source, string Pattern, Microsoft.VisualBasic.CompareMethod CompareOption) => throw null; } - - public class LongType + public sealed class LongType { - public static System.Int64 FromObject(object Value) => throw null; - public static System.Int64 FromString(string Value) => throw null; + public static long FromObject(object Value) => throw null; + public static long FromString(string Value) => throw null; } - - public class NewLateBinding + public sealed class NewLateBinding { public static object FallbackCall(object Instance, string MemberName, object[] Arguments, string[] ArgumentNames, bool IgnoreReturn) => throw null; public static object FallbackGet(object Instance, string MemberName, object[] Arguments, string[] ArgumentNames) => throw null; @@ -876,28 +221,25 @@ namespace Microsoft public static void LateSet(object Instance, System.Type Type, string MemberName, object[] Arguments, string[] ArgumentNames, System.Type[] TypeArguments, bool OptimisticSet, bool RValueBase, Microsoft.VisualBasic.CallType CallType) => throw null; public static void LateSetComplex(object Instance, System.Type Type, string MemberName, object[] Arguments, string[] ArgumentNames, System.Type[] TypeArguments, bool OptimisticSet, bool RValueBase) => throw null; } - - public class ObjectFlowControl + public sealed class ObjectFlowControl { - public class ForLoopControl + public static void CheckForSyncLockOnValueType(object Expression) => throw null; + public sealed class ForLoopControl { public static bool ForLoopInitObj(object Counter, object Start, object Limit, object StepValue, ref object LoopForResult, ref object CounterResult) => throw null; - public static bool ForNextCheckDec(System.Decimal count, System.Decimal limit, System.Decimal StepValue) => throw null; + public static bool ForNextCheckDec(decimal count, decimal limit, decimal StepValue) => throw null; public static bool ForNextCheckObj(object Counter, object LoopObj, ref object CounterResult) => throw null; public static bool ForNextCheckR4(float count, float limit, float StepValue) => throw null; public static bool ForNextCheckR8(double count, double limit, double StepValue) => throw null; } - - - public static void CheckForSyncLockOnValueType(object Expression) => throw null; } - - public class ObjectType + public sealed class ObjectType { public static object AddObj(object o1, object o2) => throw null; public static object BitAndObj(object obj1, object obj2) => throw null; public static object BitOrObj(object obj1, object obj2) => throw null; public static object BitXorObj(object obj1, object obj2) => throw null; + public ObjectType() => throw null; public static object DivObj(object o1, object o2) => throw null; public static object GetObjectValuePrimitive(object o) => throw null; public static object IDivObj(object o1, object o2) => throw null; @@ -907,7 +249,6 @@ namespace Microsoft public static object NegObj(object obj) => throw null; public static object NotObj(object obj) => throw null; public static int ObjTst(object o1, object o2, bool TextCompare) => throw null; - public ObjectType() => throw null; public static object PlusObj(object obj) => throw null; public static object PowObj(object obj1, object obj2) => throw null; public static object ShiftLeftObj(object o1, int amount) => throw null; @@ -916,8 +257,7 @@ namespace Microsoft public static object SubObj(object o1, object o2) => throw null; public static object XorObj(object obj1, object obj2) => throw null; } - - public class Operators + public sealed class Operators { public static object AddObject(object Left, object Right) => throw null; public static object AndObject(object Left, object Right) => throw null; @@ -950,18 +290,15 @@ namespace Microsoft public static object SubtractObject(object Left, object Right) => throw null; public static object XorObject(object Left, object Right) => throw null; } - - public class OptionCompareAttribute : System.Attribute + public sealed class OptionCompareAttribute : System.Attribute { public OptionCompareAttribute() => throw null; } - - public class OptionTextAttribute : System.Attribute + public sealed class OptionTextAttribute : System.Attribute { public OptionTextAttribute() => throw null; } - - public class ProjectData + public sealed class ProjectData { public static void ClearProjectError() => throw null; public static System.Exception CreateProjectError(int hr) => throw null; @@ -969,46 +306,41 @@ namespace Microsoft public static void SetProjectError(System.Exception ex) => throw null; public static void SetProjectError(System.Exception ex, int lErl) => throw null; } - - public class ShortType + public sealed class ShortType { - public static System.Int16 FromObject(object Value) => throw null; - public static System.Int16 FromString(string Value) => throw null; + public static short FromObject(object Value) => throw null; + public static short FromString(string Value) => throw null; } - - public class SingleType + public sealed class SingleType { public static float FromObject(object Value) => throw null; public static float FromObject(object Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; public static float FromString(string Value) => throw null; public static float FromString(string Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; } - - public class StandardModuleAttribute : System.Attribute + public sealed class StandardModuleAttribute : System.Attribute { public StandardModuleAttribute() => throw null; } - - public class StaticLocalInitFlag + public sealed class StaticLocalInitFlag { - public System.Int16 State; public StaticLocalInitFlag() => throw null; + public short State; } - - public class StringType + public sealed class StringType { public static string FromBoolean(bool Value) => throw null; - public static string FromByte(System.Byte Value) => throw null; - public static string FromChar(System.Char Value) => throw null; + public static string FromByte(byte Value) => throw null; + public static string FromChar(char Value) => throw null; public static string FromDate(System.DateTime Value) => throw null; - public static string FromDecimal(System.Decimal Value) => throw null; - public static string FromDecimal(System.Decimal Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; + public static string FromDecimal(decimal Value) => throw null; + public static string FromDecimal(decimal Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; public static string FromDouble(double Value) => throw null; public static string FromDouble(double Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; public static string FromInteger(int Value) => throw null; - public static string FromLong(System.Int64 Value) => throw null; + public static string FromLong(long Value) => throw null; public static string FromObject(object Value) => throw null; - public static string FromShort(System.Int16 Value) => throw null; + public static string FromShort(short Value) => throw null; public static string FromSingle(float Value) => throw null; public static string FromSingle(float Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; public static void MidStmtStr(ref string sDest, int StartPosition, int MaxInsertLength, string sInsert) => throw null; @@ -1017,14 +349,12 @@ namespace Microsoft public static bool StrLikeBinary(string Source, string Pattern) => throw null; public static bool StrLikeText(string Source, string Pattern) => throw null; } - - public class Utils + public sealed class Utils { public static System.Array CopyArray(System.Array arySrc, System.Array aryDest) => throw null; public static string GetResourceString(string ResourceKey, params string[] Args) => throw null; } - - public class Versioned + public sealed class Versioned { public static object CallByName(object Instance, string MethodName, Microsoft.VisualBasic.CallType UseCallType, params object[] Arguments) => throw null; public static bool IsNumeric(object Expression) => throw null; @@ -1032,22 +362,259 @@ namespace Microsoft public static string TypeName(object Expression) => throw null; public static string VbTypeName(string SystemName) => throw null; } - + } + public sealed class Constants + { + public static Microsoft.VisualBasic.MsgBoxResult vbAbort; + public static Microsoft.VisualBasic.MsgBoxStyle vbAbortRetryIgnore; + public static Microsoft.VisualBasic.MsgBoxStyle vbApplicationModal; + public static Microsoft.VisualBasic.FileAttribute vbArchive; + public static Microsoft.VisualBasic.VariantType vbArray; + public static string vbBack; + public static Microsoft.VisualBasic.CompareMethod vbBinaryCompare; + public static Microsoft.VisualBasic.VariantType vbBoolean; + public static Microsoft.VisualBasic.VariantType vbByte; + public static Microsoft.VisualBasic.MsgBoxResult vbCancel; + public static string vbCr; + public static Microsoft.VisualBasic.MsgBoxStyle vbCritical; + public static string vbCrLf; + public static Microsoft.VisualBasic.VariantType vbCurrency; + public static Microsoft.VisualBasic.VariantType vbDate; + public static Microsoft.VisualBasic.VariantType vbDecimal; + public static Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton1; + public static Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton2; + public static Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton3; + public static Microsoft.VisualBasic.FileAttribute vbDirectory; + public static Microsoft.VisualBasic.VariantType vbDouble; + public static Microsoft.VisualBasic.VariantType vbEmpty; + public static Microsoft.VisualBasic.MsgBoxStyle vbExclamation; + public static Microsoft.VisualBasic.TriState vbFalse; + public static Microsoft.VisualBasic.FirstWeekOfYear vbFirstFourDays; + public static Microsoft.VisualBasic.FirstWeekOfYear vbFirstFullWeek; + public static Microsoft.VisualBasic.FirstWeekOfYear vbFirstJan1; + public static string vbFormFeed; + public static Microsoft.VisualBasic.FirstDayOfWeek vbFriday; + public static Microsoft.VisualBasic.DateFormat vbGeneralDate; + public static Microsoft.VisualBasic.CallType vbGet; + public static Microsoft.VisualBasic.FileAttribute vbHidden; + public static Microsoft.VisualBasic.AppWinStyle vbHide; + public static Microsoft.VisualBasic.VbStrConv vbHiragana; + public static Microsoft.VisualBasic.MsgBoxResult vbIgnore; + public static Microsoft.VisualBasic.MsgBoxStyle vbInformation; + public static Microsoft.VisualBasic.VariantType vbInteger; + public static Microsoft.VisualBasic.VbStrConv vbKatakana; + public static Microsoft.VisualBasic.CallType vbLet; + public static string vbLf; + public static Microsoft.VisualBasic.VbStrConv vbLinguisticCasing; + public static Microsoft.VisualBasic.VariantType vbLong; + public static Microsoft.VisualBasic.DateFormat vbLongDate; + public static Microsoft.VisualBasic.DateFormat vbLongTime; + public static Microsoft.VisualBasic.VbStrConv vbLowerCase; + public static Microsoft.VisualBasic.AppWinStyle vbMaximizedFocus; + public static Microsoft.VisualBasic.CallType vbMethod; + public static Microsoft.VisualBasic.AppWinStyle vbMinimizedFocus; + public static Microsoft.VisualBasic.AppWinStyle vbMinimizedNoFocus; + public static Microsoft.VisualBasic.FirstDayOfWeek vbMonday; + public static Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxHelp; + public static Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxRight; + public static Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxRtlReading; + public static Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxSetForeground; + public static Microsoft.VisualBasic.VbStrConv vbNarrow; + public static string vbNewLine; + public static Microsoft.VisualBasic.MsgBoxResult vbNo; + public static Microsoft.VisualBasic.FileAttribute vbNormal; + public static Microsoft.VisualBasic.AppWinStyle vbNormalFocus; + public static Microsoft.VisualBasic.AppWinStyle vbNormalNoFocus; + public static Microsoft.VisualBasic.VariantType vbNull; + public static string vbNullChar; + public static string vbNullString; + public static Microsoft.VisualBasic.VariantType vbObject; + public static int vbObjectError; + public static Microsoft.VisualBasic.MsgBoxResult vbOK; + public static Microsoft.VisualBasic.MsgBoxStyle vbOKCancel; + public static Microsoft.VisualBasic.MsgBoxStyle vbOKOnly; + public static Microsoft.VisualBasic.VbStrConv vbProperCase; + public static Microsoft.VisualBasic.MsgBoxStyle vbQuestion; + public static Microsoft.VisualBasic.FileAttribute vbReadOnly; + public static Microsoft.VisualBasic.MsgBoxResult vbRetry; + public static Microsoft.VisualBasic.MsgBoxStyle vbRetryCancel; + public static Microsoft.VisualBasic.FirstDayOfWeek vbSaturday; + public static Microsoft.VisualBasic.CallType vbSet; + public static Microsoft.VisualBasic.DateFormat vbShortDate; + public static Microsoft.VisualBasic.DateFormat vbShortTime; + public static Microsoft.VisualBasic.VbStrConv vbSimplifiedChinese; + public static Microsoft.VisualBasic.VariantType vbSingle; + public static Microsoft.VisualBasic.VariantType vbString; + public static Microsoft.VisualBasic.FirstDayOfWeek vbSunday; + public static Microsoft.VisualBasic.FileAttribute vbSystem; + public static Microsoft.VisualBasic.MsgBoxStyle vbSystemModal; + public static string vbTab; + public static Microsoft.VisualBasic.CompareMethod vbTextCompare; + public static Microsoft.VisualBasic.FirstDayOfWeek vbThursday; + public static Microsoft.VisualBasic.VbStrConv vbTraditionalChinese; + public static Microsoft.VisualBasic.TriState vbTrue; + public static Microsoft.VisualBasic.FirstDayOfWeek vbTuesday; + public static Microsoft.VisualBasic.VbStrConv vbUpperCase; + public static Microsoft.VisualBasic.TriState vbUseDefault; + public static Microsoft.VisualBasic.VariantType vbUserDefinedType; + public static Microsoft.VisualBasic.FirstWeekOfYear vbUseSystem; + public static Microsoft.VisualBasic.FirstDayOfWeek vbUseSystemDayOfWeek; + public static Microsoft.VisualBasic.VariantType vbVariant; + public static string vbVerticalTab; + public static Microsoft.VisualBasic.FileAttribute vbVolume; + public static Microsoft.VisualBasic.FirstDayOfWeek vbWednesday; + public static Microsoft.VisualBasic.VbStrConv vbWide; + public static Microsoft.VisualBasic.MsgBoxResult vbYes; + public static Microsoft.VisualBasic.MsgBoxStyle vbYesNo; + public static Microsoft.VisualBasic.MsgBoxStyle vbYesNoCancel; + } + public sealed class ControlChars + { + public static char Back; + public static char Cr; + public static string CrLf; + public ControlChars() => throw null; + public static char FormFeed; + public static char Lf; + public static string NewLine; + public static char NullChar; + public static char Quote; + public static char Tab; + public static char VerticalTab; + } + public sealed class Conversion + { + public static object CTypeDynamic(object Expression, System.Type TargetType) => throw null; + public static TargetType CTypeDynamic(object Expression) => throw null; + public static string ErrorToString() => throw null; + public static string ErrorToString(int ErrorNumber) => throw null; + public static decimal Fix(decimal Number) => throw null; + public static double Fix(double Number) => throw null; + public static short Fix(short Number) => throw null; + public static int Fix(int Number) => throw null; + public static long Fix(long Number) => throw null; + public static object Fix(object Number) => throw null; + public static float Fix(float Number) => throw null; + public static string Hex(byte Number) => throw null; + public static string Hex(short Number) => throw null; + public static string Hex(int Number) => throw null; + public static string Hex(long Number) => throw null; + public static string Hex(object Number) => throw null; + public static string Hex(sbyte Number) => throw null; + public static string Hex(ushort Number) => throw null; + public static string Hex(uint Number) => throw null; + public static string Hex(ulong Number) => throw null; + public static decimal Int(decimal Number) => throw null; + public static double Int(double Number) => throw null; + public static short Int(short Number) => throw null; + public static int Int(int Number) => throw null; + public static long Int(long Number) => throw null; + public static object Int(object Number) => throw null; + public static float Int(float Number) => throw null; + public static string Oct(byte Number) => throw null; + public static string Oct(short Number) => throw null; + public static string Oct(int Number) => throw null; + public static string Oct(long Number) => throw null; + public static string Oct(object Number) => throw null; + public static string Oct(sbyte Number) => throw null; + public static string Oct(ushort Number) => throw null; + public static string Oct(uint Number) => throw null; + public static string Oct(ulong Number) => throw null; + public static string Str(object Number) => throw null; + public static int Val(char Expression) => throw null; + public static double Val(object Expression) => throw null; + public static double Val(string InputStr) => throw null; + } + public sealed class DateAndTime + { + public static System.DateTime DateAdd(Microsoft.VisualBasic.DateInterval Interval, double Number, System.DateTime DateValue) => throw null; + public static System.DateTime DateAdd(string Interval, double Number, object DateValue) => throw null; + public static long DateDiff(Microsoft.VisualBasic.DateInterval Interval, System.DateTime Date1, System.DateTime Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = default(Microsoft.VisualBasic.FirstDayOfWeek), Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = default(Microsoft.VisualBasic.FirstWeekOfYear)) => throw null; + public static long DateDiff(string Interval, object Date1, object Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = default(Microsoft.VisualBasic.FirstDayOfWeek), Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = default(Microsoft.VisualBasic.FirstWeekOfYear)) => throw null; + public static int DatePart(Microsoft.VisualBasic.DateInterval Interval, System.DateTime DateValue, Microsoft.VisualBasic.FirstDayOfWeek FirstDayOfWeekValue = default(Microsoft.VisualBasic.FirstDayOfWeek), Microsoft.VisualBasic.FirstWeekOfYear FirstWeekOfYearValue = default(Microsoft.VisualBasic.FirstWeekOfYear)) => throw null; + public static int DatePart(string Interval, object DateValue, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = default(Microsoft.VisualBasic.FirstDayOfWeek), Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = default(Microsoft.VisualBasic.FirstWeekOfYear)) => throw null; + public static System.DateTime DateSerial(int Year, int Month, int Day) => throw null; + public static string DateString { get => throw null; set { } } + public static System.DateTime DateValue(string StringDate) => throw null; + public static int Day(System.DateTime DateValue) => throw null; + public static int Hour(System.DateTime TimeValue) => throw null; + public static int Minute(System.DateTime TimeValue) => throw null; + public static int Month(System.DateTime DateValue) => throw null; + public static string MonthName(int Month, bool Abbreviate = default(bool)) => throw null; + public static System.DateTime Now { get => throw null; } + public static int Second(System.DateTime TimeValue) => throw null; + public static System.DateTime TimeOfDay { get => throw null; set { } } + public static double Timer { get => throw null; } + public static System.DateTime TimeSerial(int Hour, int Minute, int Second) => throw null; + public static string TimeString { get => throw null; set { } } + public static System.DateTime TimeValue(string StringTime) => throw null; + public static System.DateTime Today { get => throw null; set { } } + public static int Weekday(System.DateTime DateValue, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = default(Microsoft.VisualBasic.FirstDayOfWeek)) => throw null; + public static string WeekdayName(int Weekday, bool Abbreviate = default(bool), Microsoft.VisualBasic.FirstDayOfWeek FirstDayOfWeekValue = default(Microsoft.VisualBasic.FirstDayOfWeek)) => throw null; + public static int Year(System.DateTime DateValue) => throw null; + } + public enum DateFormat + { + GeneralDate = 0, + LongDate = 1, + ShortDate = 2, + LongTime = 3, + ShortTime = 4, + } + public enum DateInterval + { + Year = 0, + Quarter = 1, + Month = 2, + DayOfYear = 3, + Day = 4, + WeekOfYear = 5, + Weekday = 6, + Hour = 7, + Minute = 8, + Second = 9, + } + public enum DueDate + { + EndOfPeriod = 0, + BegOfPeriod = 1, + } + public sealed class ErrObject + { + public void Clear() => throw null; + public string Description { get => throw null; set { } } + public int Erl { get => throw null; } + public System.Exception GetException() => throw null; + public int HelpContext { get => throw null; set { } } + public string HelpFile { get => throw null; set { } } + public int LastDllError { get => throw null; } + public int Number { get => throw null; set { } } + public void Raise(int Number, object Source = default(object), object Description = default(object), object HelpFile = default(object), object HelpContext = default(object)) => throw null; + public string Source { get => throw null; set { } } + } + [System.Flags] + public enum FileAttribute + { + Normal = 0, + ReadOnly = 1, + Hidden = 2, + System = 4, + Volume = 8, + Directory = 16, + Archive = 32, } namespace FileIO { - public enum DeleteDirectoryOption : int + public enum DeleteDirectoryOption { - DeleteAllContents = 5, ThrowIfDirectoryNonEmpty = 4, + DeleteAllContents = 5, } - - public enum FieldType : int + public enum FieldType { Delimited = 0, FixedWidth = 1, } - public class FileSystem { public static string CombinePath(string baseDirectory, string relativePath) => throw null; @@ -1060,7 +627,8 @@ namespace Microsoft public static void CopyFile(string sourceFileName, string destinationFileName, Microsoft.VisualBasic.FileIO.UIOption showUI, Microsoft.VisualBasic.FileIO.UICancelOption onUserCancel) => throw null; public static void CopyFile(string sourceFileName, string destinationFileName, bool overwrite) => throw null; public static void CreateDirectory(string directory) => throw null; - public static string CurrentDirectory { get => throw null; set => throw null; } + public FileSystem() => throw null; + public static string CurrentDirectory { get => throw null; set { } } public static void DeleteDirectory(string directory, Microsoft.VisualBasic.FileIO.DeleteDirectoryOption onDirectoryNotEmpty) => throw null; public static void DeleteDirectory(string directory, Microsoft.VisualBasic.FileIO.UIOption showUI, Microsoft.VisualBasic.FileIO.RecycleOption recycle) => throw null; public static void DeleteDirectory(string directory, Microsoft.VisualBasic.FileIO.UIOption showUI, Microsoft.VisualBasic.FileIO.RecycleOption recycle, Microsoft.VisualBasic.FileIO.UICancelOption onUserCancel) => throw null; @@ -1070,7 +638,6 @@ namespace Microsoft public static bool DirectoryExists(string directory) => throw null; public static System.Collections.ObjectModel.ReadOnlyCollection Drives { get => throw null; } public static bool FileExists(string file) => throw null; - public FileSystem() => throw null; public static System.Collections.ObjectModel.ReadOnlyCollection FindInFiles(string directory, string containsText, bool ignoreCase, Microsoft.VisualBasic.FileIO.SearchOption searchType) => throw null; public static System.Collections.ObjectModel.ReadOnlyCollection FindInFiles(string directory, string containsText, bool ignoreCase, Microsoft.VisualBasic.FileIO.SearchOption searchType, params string[] fileWildcards) => throw null; public static System.Collections.ObjectModel.ReadOnlyCollection GetDirectories(string directory) => throw null; @@ -1098,44 +665,41 @@ namespace Microsoft public static System.IO.StreamReader OpenTextFileReader(string file, System.Text.Encoding encoding) => throw null; public static System.IO.StreamWriter OpenTextFileWriter(string file, bool append) => throw null; public static System.IO.StreamWriter OpenTextFileWriter(string file, bool append, System.Text.Encoding encoding) => throw null; - public static System.Byte[] ReadAllBytes(string file) => throw null; + public static byte[] ReadAllBytes(string file) => throw null; public static string ReadAllText(string file) => throw null; public static string ReadAllText(string file, System.Text.Encoding encoding) => throw null; public static void RenameDirectory(string directory, string newName) => throw null; public static void RenameFile(string file, string newName) => throw null; - public static void WriteAllBytes(string file, System.Byte[] data, bool append) => throw null; + public static void WriteAllBytes(string file, byte[] data, bool append) => throw null; public static void WriteAllText(string file, string text, bool append) => throw null; public static void WriteAllText(string file, string text, bool append, System.Text.Encoding encoding) => throw null; } - public class MalformedLineException : System.Exception { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Int64 LineNumber { get => throw null; set => throw null; } public MalformedLineException() => throw null; protected MalformedLineException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public MalformedLineException(string message) => throw null; public MalformedLineException(string message, System.Exception innerException) => throw null; - public MalformedLineException(string message, System.Int64 lineNumber) => throw null; - public MalformedLineException(string message, System.Int64 lineNumber, System.Exception innerException) => throw null; + public MalformedLineException(string message, long lineNumber) => throw null; + public MalformedLineException(string message, long lineNumber, System.Exception innerException) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public long LineNumber { get => throw null; set { } } public override string ToString() => throw null; } - - public enum RecycleOption : int + public enum RecycleOption { DeletePermanently = 2, SendToRecycleBin = 3, } - - public enum SearchOption : int + public enum SearchOption { - SearchAllSubDirectories = 3, SearchTopLevelOnly = 2, + SearchAllSubDirectories = 3, } - public class SpecialDirectories { public static string AllUsersApplicationData { get => throw null; } + public SpecialDirectories() => throw null; public static string CurrentUserApplicationData { get => throw null; } public static string Desktop { get => throw null; } public static string MyDocuments { get => throw null; } @@ -1143,29 +707,12 @@ namespace Microsoft public static string MyPictures { get => throw null; } public static string ProgramFiles { get => throw null; } public static string Programs { get => throw null; } - public SpecialDirectories() => throw null; public static string Temp { get => throw null; } } - public class TextFieldParser : System.IDisposable { public void Close() => throw null; - public string[] CommentTokens { get => throw null; set => throw null; } - public string[] Delimiters { get => throw null; set => throw null; } - void System.IDisposable.Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public bool EndOfData { get => throw null; } - public string ErrorLine { get => throw null; } - public System.Int64 ErrorLineNumber { get => throw null; } - public int[] FieldWidths { get => throw null; set => throw null; } - public bool HasFieldsEnclosedInQuotes { get => throw null; set => throw null; } - public System.Int64 LineNumber { get => throw null; } - public string PeekChars(int numberOfChars) => throw null; - public string[] ReadFields() => throw null; - public string ReadLine() => throw null; - public string ReadToEnd() => throw null; - public void SetDelimiters(params string[] delimiters) => throw null; - public void SetFieldWidths(params int[] fieldWidths) => throw null; + public string[] CommentTokens { get => throw null; set { } } public TextFieldParser(System.IO.Stream stream) => throw null; public TextFieldParser(System.IO.Stream stream, System.Text.Encoding defaultEncoding) => throw null; public TextFieldParser(System.IO.Stream stream, System.Text.Encoding defaultEncoding, bool detectEncoding) => throw null; @@ -1174,23 +721,396 @@ namespace Microsoft public TextFieldParser(string path) => throw null; public TextFieldParser(string path, System.Text.Encoding defaultEncoding) => throw null; public TextFieldParser(string path, System.Text.Encoding defaultEncoding, bool detectEncoding) => throw null; - public Microsoft.VisualBasic.FileIO.FieldType TextFieldType { get => throw null; set => throw null; } - public bool TrimWhiteSpace { get => throw null; set => throw null; } - // ERR: Stub generator didn't handle member: ~TextFieldParser + public string[] Delimiters { get => throw null; set { } } + protected virtual void Dispose(bool disposing) => throw null; + void System.IDisposable.Dispose() => throw null; + public bool EndOfData { get => throw null; } + public string ErrorLine { get => throw null; } + public long ErrorLineNumber { get => throw null; } + public int[] FieldWidths { get => throw null; set { } } + public bool HasFieldsEnclosedInQuotes { get => throw null; set { } } + public long LineNumber { get => throw null; } + public string PeekChars(int numberOfChars) => throw null; + public string[] ReadFields() => throw null; + public string ReadLine() => throw null; + public string ReadToEnd() => throw null; + public void SetDelimiters(params string[] delimiters) => throw null; + public void SetFieldWidths(params int[] fieldWidths) => throw null; + public Microsoft.VisualBasic.FileIO.FieldType TextFieldType { get => throw null; set { } } + public bool TrimWhiteSpace { get => throw null; set { } } } - - public enum UICancelOption : int + public enum UICancelOption { DoNothing = 2, ThrowException = 3, } - - public enum UIOption : int + public enum UIOption { - AllDialogs = 3, OnlyErrorDialogs = 2, + AllDialogs = 3, } - + } + public sealed class FileSystem + { + public static void ChDir(string Path) => throw null; + public static void ChDrive(char Drive) => throw null; + public static void ChDrive(string Drive) => throw null; + public static string CurDir() => throw null; + public static string CurDir(char Drive) => throw null; + public static string Dir() => throw null; + public static string Dir(string PathName, Microsoft.VisualBasic.FileAttribute Attributes = default(Microsoft.VisualBasic.FileAttribute)) => throw null; + public static bool EOF(int FileNumber) => throw null; + public static Microsoft.VisualBasic.OpenMode FileAttr(int FileNumber) => throw null; + public static void FileClose(params int[] FileNumbers) => throw null; + public static void FileCopy(string Source, string Destination) => throw null; + public static System.DateTime FileDateTime(string PathName) => throw null; + public static void FileGet(int FileNumber, ref System.Array Value, long RecordNumber = default(long), bool ArrayIsDynamic = default(bool), bool StringIsFixedLength = default(bool)) => throw null; + public static void FileGet(int FileNumber, ref bool Value, long RecordNumber = default(long)) => throw null; + public static void FileGet(int FileNumber, ref byte Value, long RecordNumber = default(long)) => throw null; + public static void FileGet(int FileNumber, ref char Value, long RecordNumber = default(long)) => throw null; + public static void FileGet(int FileNumber, ref System.DateTime Value, long RecordNumber = default(long)) => throw null; + public static void FileGet(int FileNumber, ref decimal Value, long RecordNumber = default(long)) => throw null; + public static void FileGet(int FileNumber, ref double Value, long RecordNumber = default(long)) => throw null; + public static void FileGet(int FileNumber, ref short Value, long RecordNumber = default(long)) => throw null; + public static void FileGet(int FileNumber, ref int Value, long RecordNumber = default(long)) => throw null; + public static void FileGet(int FileNumber, ref long Value, long RecordNumber = default(long)) => throw null; + public static void FileGet(int FileNumber, ref float Value, long RecordNumber = default(long)) => throw null; + public static void FileGet(int FileNumber, ref string Value, long RecordNumber = default(long), bool StringIsFixedLength = default(bool)) => throw null; + public static void FileGet(int FileNumber, ref System.ValueType Value, long RecordNumber = default(long)) => throw null; + public static void FileGetObject(int FileNumber, ref object Value, long RecordNumber = default(long)) => throw null; + public static long FileLen(string PathName) => throw null; + public static void FileOpen(int FileNumber, string FileName, Microsoft.VisualBasic.OpenMode Mode, Microsoft.VisualBasic.OpenAccess Access = default(Microsoft.VisualBasic.OpenAccess), Microsoft.VisualBasic.OpenShare Share = default(Microsoft.VisualBasic.OpenShare), int RecordLength = default(int)) => throw null; + public static void FilePut(int FileNumber, System.Array Value, long RecordNumber = default(long), bool ArrayIsDynamic = default(bool), bool StringIsFixedLength = default(bool)) => throw null; + public static void FilePut(int FileNumber, bool Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(int FileNumber, byte Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(int FileNumber, char Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(int FileNumber, System.DateTime Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(int FileNumber, decimal Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(int FileNumber, double Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(int FileNumber, short Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(int FileNumber, int Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(int FileNumber, long Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(int FileNumber, float Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(int FileNumber, string Value, long RecordNumber = default(long), bool StringIsFixedLength = default(bool)) => throw null; + public static void FilePut(int FileNumber, System.ValueType Value, long RecordNumber = default(long)) => throw null; + public static void FilePut(object FileNumber, object Value, object RecordNumber) => throw null; + public static void FilePutObject(int FileNumber, object Value, long RecordNumber = default(long)) => throw null; + public static void FileWidth(int FileNumber, int RecordWidth) => throw null; + public static int FreeFile() => throw null; + public static Microsoft.VisualBasic.FileAttribute GetAttr(string PathName) => throw null; + public static void Input(int FileNumber, ref bool Value) => throw null; + public static void Input(int FileNumber, ref byte Value) => throw null; + public static void Input(int FileNumber, ref char Value) => throw null; + public static void Input(int FileNumber, ref System.DateTime Value) => throw null; + public static void Input(int FileNumber, ref decimal Value) => throw null; + public static void Input(int FileNumber, ref double Value) => throw null; + public static void Input(int FileNumber, ref short Value) => throw null; + public static void Input(int FileNumber, ref int Value) => throw null; + public static void Input(int FileNumber, ref long Value) => throw null; + public static void Input(int FileNumber, ref object Value) => throw null; + public static void Input(int FileNumber, ref float Value) => throw null; + public static void Input(int FileNumber, ref string Value) => throw null; + public static string InputString(int FileNumber, int CharCount) => throw null; + public static void Kill(string PathName) => throw null; + public static string LineInput(int FileNumber) => throw null; + public static long Loc(int FileNumber) => throw null; + public static void Lock(int FileNumber) => throw null; + public static void Lock(int FileNumber, long Record) => throw null; + public static void Lock(int FileNumber, long FromRecord, long ToRecord) => throw null; + public static long LOF(int FileNumber) => throw null; + public static void MkDir(string Path) => throw null; + public static void Print(int FileNumber, params object[] Output) => throw null; + public static void PrintLine(int FileNumber, params object[] Output) => throw null; + public static void Rename(string OldPath, string NewPath) => throw null; + public static void Reset() => throw null; + public static void RmDir(string Path) => throw null; + public static long Seek(int FileNumber) => throw null; + public static void Seek(int FileNumber, long Position) => throw null; + public static void SetAttr(string PathName, Microsoft.VisualBasic.FileAttribute Attributes) => throw null; + public static Microsoft.VisualBasic.SpcInfo SPC(short Count) => throw null; + public static Microsoft.VisualBasic.TabInfo TAB() => throw null; + public static Microsoft.VisualBasic.TabInfo TAB(short Column) => throw null; + public static void Unlock(int FileNumber) => throw null; + public static void Unlock(int FileNumber, long Record) => throw null; + public static void Unlock(int FileNumber, long FromRecord, long ToRecord) => throw null; + public static void Write(int FileNumber, params object[] Output) => throw null; + public static void WriteLine(int FileNumber, params object[] Output) => throw null; + } + public sealed class Financial + { + public static double DDB(double Cost, double Salvage, double Life, double Period, double Factor = default(double)) => throw null; + public static double FV(double Rate, double NPer, double Pmt, double PV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; + public static double IPmt(double Rate, double Per, double NPer, double PV, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; + public static double IRR(ref double[] ValueArray, double Guess = default(double)) => throw null; + public static double MIRR(ref double[] ValueArray, double FinanceRate, double ReinvestRate) => throw null; + public static double NPer(double Rate, double Pmt, double PV, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; + public static double NPV(double Rate, ref double[] ValueArray) => throw null; + public static double Pmt(double Rate, double NPer, double PV, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; + public static double PPmt(double Rate, double Per, double NPer, double PV, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; + public static double PV(double Rate, double NPer, double Pmt, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate)) => throw null; + public static double Rate(double NPer, double Pmt, double PV, double FV = default(double), Microsoft.VisualBasic.DueDate Due = default(Microsoft.VisualBasic.DueDate), double Guess = default(double)) => throw null; + public static double SLN(double Cost, double Salvage, double Life) => throw null; + public static double SYD(double Cost, double Salvage, double Life, double Period) => throw null; + } + public enum FirstDayOfWeek + { + System = 0, + Sunday = 1, + Monday = 2, + Tuesday = 3, + Wednesday = 4, + Thursday = 5, + Friday = 6, + Saturday = 7, + } + public enum FirstWeekOfYear + { + System = 0, + Jan1 = 1, + FirstFourDays = 2, + FirstFullWeek = 3, + } + public sealed class HideModuleNameAttribute : System.Attribute + { + public HideModuleNameAttribute() => throw null; + } + public sealed class Information + { + public static int Erl() => throw null; + public static Microsoft.VisualBasic.ErrObject Err() => throw null; + public static bool IsArray(object VarName) => throw null; + public static bool IsDate(object Expression) => throw null; + public static bool IsDBNull(object Expression) => throw null; + public static bool IsError(object Expression) => throw null; + public static bool IsNothing(object Expression) => throw null; + public static bool IsNumeric(object Expression) => throw null; + public static bool IsReference(object Expression) => throw null; + public static int LBound(System.Array Array, int Rank = default(int)) => throw null; + public static int QBColor(int Color) => throw null; + public static int RGB(int Red, int Green, int Blue) => throw null; + public static string SystemTypeName(string VbName) => throw null; + public static string TypeName(object VarName) => throw null; + public static int UBound(System.Array Array, int Rank = default(int)) => throw null; + public static Microsoft.VisualBasic.VariantType VarType(object VarName) => throw null; + public static string VbTypeName(string UrtName) => throw null; + } + public sealed class Interaction + { + public static void AppActivate(int ProcessId) => throw null; + public static void AppActivate(string Title) => throw null; + public static void Beep() => throw null; + public static object CallByName(object ObjectRef, string ProcName, Microsoft.VisualBasic.CallType UseCallType, params object[] Args) => throw null; + public static object Choose(double Index, params object[] Choice) => throw null; + public static string Command() => throw null; + public static object CreateObject(string ProgId, string ServerName = default(string)) => throw null; + public static void DeleteSetting(string AppName, string Section = default(string), string Key = default(string)) => throw null; + public static string Environ(string Expression) => throw null; + public static string Environ(int Expression) => throw null; + public static string[,] GetAllSettings(string AppName, string Section) => throw null; + public static object GetObject(string PathName = default(string), string Class = default(string)) => throw null; + public static string GetSetting(string AppName, string Section, string Key, string Default = default(string)) => throw null; + public static object IIf(bool Expression, object TruePart, object FalsePart) => throw null; + public static string InputBox(string Prompt, string Title = default(string), string DefaultResponse = default(string), int XPos = default(int), int YPos = default(int)) => throw null; + public static Microsoft.VisualBasic.MsgBoxResult MsgBox(object Prompt, Microsoft.VisualBasic.MsgBoxStyle Buttons = default(Microsoft.VisualBasic.MsgBoxStyle), object Title = default(object)) => throw null; + public static string Partition(long Number, long Start, long Stop, long Interval) => throw null; + public static void SaveSetting(string AppName, string Section, string Key, string Setting) => throw null; + public static int Shell(string PathName, Microsoft.VisualBasic.AppWinStyle Style = default(Microsoft.VisualBasic.AppWinStyle), bool Wait = default(bool), int Timeout = default(int)) => throw null; + public static object Switch(params object[] VarExpr) => throw null; + } + public enum MsgBoxResult + { + Ok = 1, + Cancel = 2, + Abort = 3, + Retry = 4, + Ignore = 5, + Yes = 6, + No = 7, + } + [System.Flags] + public enum MsgBoxStyle + { + ApplicationModal = 0, + DefaultButton1 = 0, + OkOnly = 0, + OkCancel = 1, + AbortRetryIgnore = 2, + YesNoCancel = 3, + YesNo = 4, + RetryCancel = 5, + Critical = 16, + Question = 32, + Exclamation = 48, + Information = 64, + DefaultButton2 = 256, + DefaultButton3 = 512, + SystemModal = 4096, + MsgBoxHelp = 16384, + MsgBoxSetForeground = 65536, + MsgBoxRight = 524288, + MsgBoxRtlReading = 1048576, + } + public sealed class MyGroupCollectionAttribute : System.Attribute + { + public string CreateMethod { get => throw null; } + public MyGroupCollectionAttribute(string typeToCollect, string createInstanceMethodName, string disposeInstanceMethodName, string defaultInstanceAlias) => throw null; + public string DefaultInstanceAlias { get => throw null; } + public string DisposeMethod { get => throw null; } + public string MyGroupName { get => throw null; } + } + public enum OpenAccess + { + Default = -1, + Read = 1, + Write = 2, + ReadWrite = 3, + } + public enum OpenMode + { + Input = 1, + Output = 2, + Random = 4, + Append = 8, + Binary = 32, + } + public enum OpenShare + { + Default = -1, + LockReadWrite = 0, + LockWrite = 1, + LockRead = 2, + Shared = 3, + } + public struct SpcInfo + { + public short Count; + } + public sealed class Strings + { + public static int Asc(char String) => throw null; + public static int Asc(string String) => throw null; + public static int AscW(char String) => throw null; + public static int AscW(string String) => throw null; + public static char Chr(int CharCode) => throw null; + public static char ChrW(int CharCode) => throw null; + public static string[] Filter(object[] Source, string Match, bool Include = default(bool), Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; + public static string[] Filter(string[] Source, string Match, bool Include = default(bool), Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; + public static string Format(object Expression, string Style = default(string)) => throw null; + public static string FormatCurrency(object Expression, int NumDigitsAfterDecimal = default(int), Microsoft.VisualBasic.TriState IncludeLeadingDigit = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState UseParensForNegativeNumbers = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState GroupDigits = default(Microsoft.VisualBasic.TriState)) => throw null; + public static string FormatDateTime(System.DateTime Expression, Microsoft.VisualBasic.DateFormat NamedFormat = default(Microsoft.VisualBasic.DateFormat)) => throw null; + public static string FormatNumber(object Expression, int NumDigitsAfterDecimal = default(int), Microsoft.VisualBasic.TriState IncludeLeadingDigit = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState UseParensForNegativeNumbers = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState GroupDigits = default(Microsoft.VisualBasic.TriState)) => throw null; + public static string FormatPercent(object Expression, int NumDigitsAfterDecimal = default(int), Microsoft.VisualBasic.TriState IncludeLeadingDigit = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState UseParensForNegativeNumbers = default(Microsoft.VisualBasic.TriState), Microsoft.VisualBasic.TriState GroupDigits = default(Microsoft.VisualBasic.TriState)) => throw null; + public static char GetChar(string str, int Index) => throw null; + public static int InStr(int Start, string String1, string String2, Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; + public static int InStr(string String1, string String2, Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; + public static int InStrRev(string StringCheck, string StringMatch, int Start = default(int), Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; + public static string Join(object[] SourceArray, string Delimiter = default(string)) => throw null; + public static string Join(string[] SourceArray, string Delimiter = default(string)) => throw null; + public static char LCase(char Value) => throw null; + public static string LCase(string Value) => throw null; + public static string Left(string str, int Length) => throw null; + public static int Len(bool Expression) => throw null; + public static int Len(byte Expression) => throw null; + public static int Len(char Expression) => throw null; + public static int Len(System.DateTime Expression) => throw null; + public static int Len(decimal Expression) => throw null; + public static int Len(double Expression) => throw null; + public static int Len(short Expression) => throw null; + public static int Len(int Expression) => throw null; + public static int Len(long Expression) => throw null; + public static int Len(object Expression) => throw null; + public static int Len(sbyte Expression) => throw null; + public static int Len(float Expression) => throw null; + public static int Len(string Expression) => throw null; + public static int Len(ushort Expression) => throw null; + public static int Len(uint Expression) => throw null; + public static int Len(ulong Expression) => throw null; + public static string LSet(string Source, int Length) => throw null; + public static string LTrim(string str) => throw null; + public static string Mid(string str, int Start) => throw null; + public static string Mid(string str, int Start, int Length) => throw null; + public static string Replace(string Expression, string Find, string Replacement, int Start = default(int), int Count = default(int), Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; + public static string Right(string str, int Length) => throw null; + public static string RSet(string Source, int Length) => throw null; + public static string RTrim(string str) => throw null; + public static string Space(int Number) => throw null; + public static string[] Split(string Expression, string Delimiter = default(string), int Limit = default(int), Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; + public static int StrComp(string String1, string String2, Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => throw null; + public static string StrConv(string str, Microsoft.VisualBasic.VbStrConv Conversion, int LocaleID = default(int)) => throw null; + public static string StrDup(int Number, char Character) => throw null; + public static object StrDup(int Number, object Character) => throw null; + public static string StrDup(int Number, string Character) => throw null; + public static string StrReverse(string Expression) => throw null; + public static string Trim(string str) => throw null; + public static char UCase(char Value) => throw null; + public static string UCase(string Value) => throw null; + } + public struct TabInfo + { + public short Column; + } + public enum TriState + { + UseDefault = -2, + True = -1, + False = 0, + } + public enum VariantType + { + Empty = 0, + Null = 1, + Short = 2, + Integer = 3, + Single = 4, + Double = 5, + Currency = 6, + Date = 7, + String = 8, + Object = 9, + Error = 10, + Boolean = 11, + Variant = 12, + DataObject = 13, + Decimal = 14, + Byte = 17, + Char = 18, + Long = 20, + UserDefinedType = 36, + Array = 8192, + } + public sealed class VBFixedArrayAttribute : System.Attribute + { + public int[] Bounds { get => throw null; } + public VBFixedArrayAttribute(int UpperBound1) => throw null; + public VBFixedArrayAttribute(int UpperBound1, int UpperBound2) => throw null; + public int Length { get => throw null; } + } + public sealed class VBFixedStringAttribute : System.Attribute + { + public VBFixedStringAttribute(int Length) => throw null; + public int Length { get => throw null; } + } + public sealed class VBMath + { + public static void Randomize() => throw null; + public static void Randomize(double Number) => throw null; + public static float Rnd() => throw null; + public static float Rnd(float Number) => throw null; + } + [System.Flags] + public enum VbStrConv + { + None = 0, + Uppercase = 1, + Lowercase = 2, + ProperCase = 3, + Wide = 4, + Narrow = 8, + Katakana = 16, + Hiragana = 32, + SimplifiedChinese = 256, + TraditionalChinese = 512, + LinguisticCasing = 1024, } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs new file mode 100644 index 00000000000..f172d3e4a00 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Primitives.cs index 5a60e762ef4..dcacc382f6e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Primitives.cs @@ -1,22 +1,20 @@ // This file contains auto-generated code. // Generated from `Microsoft.Win32.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace ComponentModel { public class Win32Exception : System.Runtime.InteropServices.ExternalException, System.Runtime.Serialization.ISerializable { + public Win32Exception() => throw null; + public Win32Exception(int error) => throw null; + public Win32Exception(int error, string message) => throw null; + protected Win32Exception(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public Win32Exception(string message) => throw null; + public Win32Exception(string message, System.Exception innerException) => throw null; public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public int NativeErrorCode { get => throw null; } public override string ToString() => throw null; - public Win32Exception() => throw null; - protected Win32Exception(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public Win32Exception(int error) => throw null; - public Win32Exception(int error, string message) => throw null; - public Win32Exception(string message) => throw null; - public Win32Exception(string message, System.Exception innerException) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs index 97a5c94d86b..9665df7b6c2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Win32.Registry, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace Microsoft { namespace Win32 @@ -17,18 +16,16 @@ namespace Microsoft public static void SetValue(string keyName, string valueName, object value, Microsoft.Win32.RegistryValueKind valueKind) => throw null; public static Microsoft.Win32.RegistryKey Users; } - - public enum RegistryHive : int + public enum RegistryHive { ClassesRoot = -2147483648, - CurrentConfig = -2147483643, CurrentUser = -2147483647, LocalMachine = -2147483646, - PerformanceData = -2147483644, Users = -2147483645, + PerformanceData = -2147483644, + CurrentConfig = -2147483643, } - - public class RegistryKey : System.MarshalByRefObject, System.IDisposable + public sealed class RegistryKey : System.MarshalByRefObject, System.IDisposable { public void Close() => throw null; public Microsoft.Win32.RegistryKey CreateSubKey(string subkey) => throw null; @@ -64,8 +61,8 @@ namespace Microsoft public Microsoft.Win32.RegistryKey OpenSubKey(string name) => throw null; public Microsoft.Win32.RegistryKey OpenSubKey(string name, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck) => throw null; public Microsoft.Win32.RegistryKey OpenSubKey(string name, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, System.Security.AccessControl.RegistryRights rights) => throw null; - public Microsoft.Win32.RegistryKey OpenSubKey(string name, System.Security.AccessControl.RegistryRights rights) => throw null; public Microsoft.Win32.RegistryKey OpenSubKey(string name, bool writable) => throw null; + public Microsoft.Win32.RegistryKey OpenSubKey(string name, System.Security.AccessControl.RegistryRights rights) => throw null; public void SetAccessControl(System.Security.AccessControl.RegistrySecurity registrySecurity) => throw null; public void SetValue(string name, object value) => throw null; public void SetValue(string name, object value, Microsoft.Win32.RegistryValueKind valueKind) => throw null; @@ -74,56 +71,49 @@ namespace Microsoft public int ValueCount { get => throw null; } public Microsoft.Win32.RegistryView View { get => throw null; } } - - public enum RegistryKeyPermissionCheck : int + public enum RegistryKeyPermissionCheck { Default = 0, ReadSubTree = 1, ReadWriteSubTree = 2, } - [System.Flags] - public enum RegistryOptions : int + public enum RegistryOptions { None = 0, Volatile = 1, } - - public enum RegistryValueKind : int + public enum RegistryValueKind { + None = -1, + Unknown = 0, + String = 1, + ExpandString = 2, Binary = 3, DWord = 4, - ExpandString = 2, MultiString = 7, - None = -1, QWord = 11, - String = 1, - Unknown = 0, } - [System.Flags] - public enum RegistryValueOptions : int + public enum RegistryValueOptions { - DoNotExpandEnvironmentNames = 1, None = 0, + DoNotExpandEnvironmentNames = 1, } - - public enum RegistryView : int + public enum RegistryView { Default = 0, - Registry32 = 512, Registry64 = 256, + Registry32 = 512, } - namespace SafeHandles { - public class SafeRegistryHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid + public sealed class SafeRegistryHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { - protected override bool ReleaseHandle() => throw null; public SafeRegistryHandle() : base(default(bool)) => throw null; - public SafeRegistryHandle(System.IntPtr preexistingHandle, bool ownsHandle) : base(default(bool)) => throw null; + public SafeRegistryHandle(nint preexistingHandle, bool ownsHandle) : base(default(bool)) => throw null; + protected override bool ReleaseHandle() => throw null; } - } } } @@ -133,7 +123,7 @@ namespace System { namespace AccessControl { - public class RegistryAccessRule : System.Security.AccessControl.AccessRule + public sealed class RegistryAccessRule : System.Security.AccessControl.AccessRule { public RegistryAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.RegistryRights registryRights, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; public RegistryAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.RegistryRights registryRights, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; @@ -141,34 +131,31 @@ namespace System public RegistryAccessRule(string identity, System.Security.AccessControl.RegistryRights registryRights, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; public System.Security.AccessControl.RegistryRights RegistryRights { get => throw null; } } - - public class RegistryAuditRule : System.Security.AccessControl.AuditRule + public sealed class RegistryAuditRule : System.Security.AccessControl.AuditRule { public RegistryAuditRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.RegistryRights registryRights, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AuditFlags)) => throw null; public RegistryAuditRule(string identity, System.Security.AccessControl.RegistryRights registryRights, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AuditFlags)) => throw null; public System.Security.AccessControl.RegistryRights RegistryRights { get => throw null; } } - [System.Flags] - public enum RegistryRights : int + public enum RegistryRights { - ChangePermissions = 262144, - CreateLink = 32, - CreateSubKey = 4, - Delete = 65536, - EnumerateSubKeys = 8, - ExecuteKey = 131097, - FullControl = 983103, - Notify = 16, QueryValues = 1, - ReadKey = 131097, - ReadPermissions = 131072, SetValue = 2, - TakeOwnership = 524288, + CreateSubKey = 4, + EnumerateSubKeys = 8, + Notify = 16, + CreateLink = 32, + Delete = 65536, + ReadPermissions = 131072, WriteKey = 131078, + ExecuteKey = 131097, + ReadKey = 131097, + ChangePermissions = 262144, + TakeOwnership = 524288, + FullControl = 983103, } - - public class RegistrySecurity : System.Security.AccessControl.NativeObjectSecurity + public sealed class RegistrySecurity : System.Security.AccessControl.NativeObjectSecurity { public override System.Type AccessRightType { get => throw null; } public override System.Security.AccessControl.AccessRule AccessRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type) => throw null; @@ -188,7 +175,6 @@ namespace System public void SetAccessRule(System.Security.AccessControl.RegistryAccessRule rule) => throw null; public void SetAuditRule(System.Security.AccessControl.RegistryAuditRule rule) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs new file mode 100644 index 00000000000..a996113e93e --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.AppContext, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs new file mode 100644 index 00000000000..c3d79aed8ff --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Buffers, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Concurrent.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Concurrent.cs index a4552677a27..27562a6aaec 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Concurrent.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Concurrent.cs @@ -1,27 +1,26 @@ // This file contains auto-generated code. // Generated from `System.Collections.Concurrent, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Collections { namespace Concurrent { - public class BlockingCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable, System.IDisposable + public class BlockingCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.IDisposable { public void Add(T item) => throw null; public void Add(T item, System.Threading.CancellationToken cancellationToken) => throw null; public static int AddToAny(System.Collections.Concurrent.BlockingCollection[] collections, T item) => throw null; public static int AddToAny(System.Collections.Concurrent.BlockingCollection[] collections, T item, System.Threading.CancellationToken cancellationToken) => throw null; + public int BoundedCapacity { get => throw null; } + public void CompleteAdding() => throw null; + public void CopyTo(T[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } public BlockingCollection() => throw null; public BlockingCollection(System.Collections.Concurrent.IProducerConsumerCollection collection) => throw null; public BlockingCollection(System.Collections.Concurrent.IProducerConsumerCollection collection, int boundedCapacity) => throw null; public BlockingCollection(int boundedCapacity) => throw null; - public int BoundedCapacity { get => throw null; } - public void CompleteAdding() => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(T[] array, int index) => throw null; - public int Count { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public System.Collections.Generic.IEnumerable GetConsumingEnumerable() => throw null; @@ -38,32 +37,31 @@ namespace System public static int TakeFromAny(System.Collections.Concurrent.BlockingCollection[] collections, out T item, System.Threading.CancellationToken cancellationToken) => throw null; public T[] ToArray() => throw null; public bool TryAdd(T item) => throw null; - public bool TryAdd(T item, System.TimeSpan timeout) => throw null; public bool TryAdd(T item, int millisecondsTimeout) => throw null; public bool TryAdd(T item, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; + public bool TryAdd(T item, System.TimeSpan timeout) => throw null; public static int TryAddToAny(System.Collections.Concurrent.BlockingCollection[] collections, T item) => throw null; - public static int TryAddToAny(System.Collections.Concurrent.BlockingCollection[] collections, T item, System.TimeSpan timeout) => throw null; public static int TryAddToAny(System.Collections.Concurrent.BlockingCollection[] collections, T item, int millisecondsTimeout) => throw null; public static int TryAddToAny(System.Collections.Concurrent.BlockingCollection[] collections, T item, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; + public static int TryAddToAny(System.Collections.Concurrent.BlockingCollection[] collections, T item, System.TimeSpan timeout) => throw null; public bool TryTake(out T item) => throw null; - public bool TryTake(out T item, System.TimeSpan timeout) => throw null; public bool TryTake(out T item, int millisecondsTimeout) => throw null; public bool TryTake(out T item, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; + public bool TryTake(out T item, System.TimeSpan timeout) => throw null; public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection[] collections, out T item) => throw null; - public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection[] collections, out T item, System.TimeSpan timeout) => throw null; public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection[] collections, out T item, int millisecondsTimeout) => throw null; public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection[] collections, out T item, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; + public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection[] collections, out T item, System.TimeSpan timeout) => throw null; } - - public class ConcurrentBag : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable + public class ConcurrentBag : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IReadOnlyCollection { public void Add(T item) => throw null; public void Clear() => throw null; + public void CopyTo(T[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } public ConcurrentBag() => throw null; public ConcurrentBag(System.Collections.Generic.IEnumerable collection) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(T[] array, int index) => throw null; - public int Count { get => throw null; } public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsEmpty { get => throw null; } @@ -74,8 +72,7 @@ namespace System public bool TryPeek(out T result) => throw null; public bool TryTake(out T result) => throw null; } - - public class ConcurrentDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable + public class ConcurrentDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary { void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; void System.Collections.Generic.IDictionary.Add(TKey key, TValue value) => throw null; @@ -85,6 +82,12 @@ namespace System public TValue AddOrUpdate(TKey key, System.Func addValueFactory, System.Func updateValueFactory, TArg factoryArgument) => throw null; public void Clear() => throw null; public System.Collections.Generic.IEqualityComparer Comparer { get => throw null; } + bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; + bool System.Collections.IDictionary.Contains(object key) => throw null; + public bool ContainsKey(TKey key) => throw null; + void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } public ConcurrentDictionary() => throw null; public ConcurrentDictionary(System.Collections.Generic.IEnumerable> collection) => throw null; public ConcurrentDictionary(System.Collections.Generic.IEnumerable> collection, System.Collections.Generic.IEqualityComparer comparer) => throw null; @@ -92,12 +95,6 @@ namespace System public ConcurrentDictionary(int concurrencyLevel, System.Collections.Generic.IEnumerable> collection, System.Collections.Generic.IEqualityComparer comparer) => throw null; public ConcurrentDictionary(int concurrencyLevel, int capacity) => throw null; public ConcurrentDictionary(int concurrencyLevel, int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; - bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; - bool System.Collections.IDictionary.Contains(object key) => throw null; - public bool ContainsKey(TKey key) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int index) => throw null; - public int Count { get => throw null; } public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; @@ -109,8 +106,7 @@ namespace System bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } public System.Collections.Generic.ICollection Keys { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } @@ -118,25 +114,25 @@ namespace System bool System.Collections.Generic.IDictionary.Remove(TKey key) => throw null; void System.Collections.IDictionary.Remove(object key) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public TValue this[TKey key] { get => throw null; set { } } public System.Collections.Generic.KeyValuePair[] ToArray() => throw null; public bool TryAdd(TKey key, TValue value) => throw null; public bool TryGetValue(TKey key, out TValue value) => throw null; public bool TryRemove(System.Collections.Generic.KeyValuePair item) => throw null; public bool TryRemove(TKey key, out TValue value) => throw null; public bool TryUpdate(TKey key, TValue newValue, TValue comparisonValue) => throw null; - public System.Collections.Generic.ICollection Values { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } + public System.Collections.Generic.ICollection Values { get => throw null; } } - - public class ConcurrentQueue : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable + public class ConcurrentQueue : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IReadOnlyCollection { public void Clear() => throw null; + public void CopyTo(T[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } public ConcurrentQueue() => throw null; public ConcurrentQueue(System.Collections.Generic.IEnumerable collection) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(T[] array, int index) => throw null; - public int Count { get => throw null; } public void Enqueue(T item) => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; @@ -149,15 +145,14 @@ namespace System public bool TryPeek(out T result) => throw null; bool System.Collections.Concurrent.IProducerConsumerCollection.TryTake(out T item) => throw null; } - - public class ConcurrentStack : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable + public class ConcurrentStack : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IReadOnlyCollection { public void Clear() => throw null; + public void CopyTo(T[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } public ConcurrentStack() => throw null; public ConcurrentStack(System.Collections.Generic.IEnumerable collection) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(T[] array, int index) => throw null; - public int Count { get => throw null; } public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsEmpty { get => throw null; } @@ -174,54 +169,48 @@ namespace System public int TryPopRange(T[] items, int startIndex, int count) => throw null; bool System.Collections.Concurrent.IProducerConsumerCollection.TryTake(out T item) => throw null; } - [System.Flags] - public enum EnumerablePartitionerOptions : int + public enum EnumerablePartitionerOptions { - NoBuffering = 1, None = 0, + NoBuffering = 1, } - - public interface IProducerConsumerCollection : System.Collections.Generic.IEnumerable, System.Collections.ICollection, System.Collections.IEnumerable + public interface IProducerConsumerCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection { void CopyTo(T[] array, int index); T[] ToArray(); bool TryAdd(T item); bool TryTake(out T item); } - public abstract class OrderablePartitioner : System.Collections.Concurrent.Partitioner { + protected OrderablePartitioner(bool keysOrderedInEachPartition, bool keysOrderedAcrossPartitions, bool keysNormalized) => throw null; public override System.Collections.Generic.IEnumerable GetDynamicPartitions() => throw null; - public virtual System.Collections.Generic.IEnumerable> GetOrderableDynamicPartitions() => throw null; - public abstract System.Collections.Generic.IList>> GetOrderablePartitions(int partitionCount); + public virtual System.Collections.Generic.IEnumerable> GetOrderableDynamicPartitions() => throw null; + public abstract System.Collections.Generic.IList>> GetOrderablePartitions(int partitionCount); public override System.Collections.Generic.IList> GetPartitions(int partitionCount) => throw null; public bool KeysNormalized { get => throw null; } public bool KeysOrderedAcrossPartitions { get => throw null; } public bool KeysOrderedInEachPartition { get => throw null; } - protected OrderablePartitioner(bool keysOrderedInEachPartition, bool keysOrderedAcrossPartitions, bool keysNormalized) => throw null; } - public static class Partitioner { public static System.Collections.Concurrent.OrderablePartitioner> Create(int fromInclusive, int toExclusive) => throw null; public static System.Collections.Concurrent.OrderablePartitioner> Create(int fromInclusive, int toExclusive, int rangeSize) => throw null; - public static System.Collections.Concurrent.OrderablePartitioner> Create(System.Int64 fromInclusive, System.Int64 toExclusive) => throw null; - public static System.Collections.Concurrent.OrderablePartitioner> Create(System.Int64 fromInclusive, System.Int64 toExclusive, System.Int64 rangeSize) => throw null; + public static System.Collections.Concurrent.OrderablePartitioner> Create(long fromInclusive, long toExclusive) => throw null; + public static System.Collections.Concurrent.OrderablePartitioner> Create(long fromInclusive, long toExclusive, long rangeSize) => throw null; public static System.Collections.Concurrent.OrderablePartitioner Create(System.Collections.Generic.IEnumerable source) => throw null; public static System.Collections.Concurrent.OrderablePartitioner Create(System.Collections.Generic.IEnumerable source, System.Collections.Concurrent.EnumerablePartitionerOptions partitionerOptions) => throw null; public static System.Collections.Concurrent.OrderablePartitioner Create(System.Collections.Generic.IList list, bool loadBalance) => throw null; public static System.Collections.Concurrent.OrderablePartitioner Create(TSource[] array, bool loadBalance) => throw null; } - public abstract class Partitioner { + protected Partitioner() => throw null; public virtual System.Collections.Generic.IEnumerable GetDynamicPartitions() => throw null; public abstract System.Collections.Generic.IList> GetPartitions(int partitionCount); - protected Partitioner() => throw null; public virtual bool SupportsDynamicPartitions { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs index c8eb72a94e9..62e1bf6ee1c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `System.Collections.Immutable, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Collections { namespace Immutable { - public interface IImmutableDictionary : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.IEnumerable + public interface IImmutableDictionary : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { System.Collections.Immutable.IImmutableDictionary Add(TKey key, TValue value); System.Collections.Immutable.IImmutableDictionary AddRange(System.Collections.Generic.IEnumerable> pairs); @@ -19,8 +18,7 @@ namespace System System.Collections.Immutable.IImmutableDictionary SetItems(System.Collections.Generic.IEnumerable> items); bool TryGetKey(TKey equalKey, out TKey actualKey); } - - public interface IImmutableList : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable + public interface IImmutableList : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { System.Collections.Immutable.IImmutableList Add(T value); System.Collections.Immutable.IImmutableList AddRange(System.Collections.Generic.IEnumerable items); @@ -37,7 +35,6 @@ namespace System System.Collections.Immutable.IImmutableList Replace(T oldValue, T newValue, System.Collections.Generic.IEqualityComparer equalityComparer); System.Collections.Immutable.IImmutableList SetItem(int index, T value); } - public interface IImmutableQueue : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { System.Collections.Immutable.IImmutableQueue Clear(); @@ -46,8 +43,7 @@ namespace System bool IsEmpty { get; } T Peek(); } - - public interface IImmutableSet : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public interface IImmutableSet : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { System.Collections.Immutable.IImmutableSet Add(T value); System.Collections.Immutable.IImmutableSet Clear(); @@ -65,7 +61,6 @@ namespace System bool TryGetValue(T equalValue, out T actualValue); System.Collections.Immutable.IImmutableSet Union(System.Collections.Generic.IEnumerable other); } - public interface IImmutableStack : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { System.Collections.Immutable.IImmutableStack Clear(); @@ -74,74 +69,89 @@ namespace System System.Collections.Immutable.IImmutableStack Pop(); System.Collections.Immutable.IImmutableStack Push(T value); } - public static class ImmutableArray { - public static int BinarySearch(this System.Collections.Immutable.ImmutableArray array, T value) => throw null; - public static int BinarySearch(this System.Collections.Immutable.ImmutableArray array, T value, System.Collections.Generic.IComparer comparer) => throw null; public static int BinarySearch(this System.Collections.Immutable.ImmutableArray array, int index, int length, T value) => throw null; public static int BinarySearch(this System.Collections.Immutable.ImmutableArray array, int index, int length, T value, System.Collections.Generic.IComparer comparer) => throw null; + public static int BinarySearch(this System.Collections.Immutable.ImmutableArray array, T value) => throw null; + public static int BinarySearch(this System.Collections.Immutable.ImmutableArray array, T value, System.Collections.Generic.IComparer comparer) => throw null; public static System.Collections.Immutable.ImmutableArray Create() => throw null; public static System.Collections.Immutable.ImmutableArray Create(System.Collections.Immutable.ImmutableArray items, int start, int length) => throw null; - public static System.Collections.Immutable.ImmutableArray Create(System.ReadOnlySpan items) => throw null; - public static System.Collections.Immutable.ImmutableArray Create(System.Span items) => throw null; public static System.Collections.Immutable.ImmutableArray Create(T item) => throw null; public static System.Collections.Immutable.ImmutableArray Create(T item1, T item2) => throw null; public static System.Collections.Immutable.ImmutableArray Create(T item1, T item2, T item3) => throw null; public static System.Collections.Immutable.ImmutableArray Create(T item1, T item2, T item3, T item4) => throw null; - public static System.Collections.Immutable.ImmutableArray Create(T[] items, int start, int length) => throw null; public static System.Collections.Immutable.ImmutableArray Create(params T[] items) => throw null; + public static System.Collections.Immutable.ImmutableArray Create(T[] items, int start, int length) => throw null; + public static System.Collections.Immutable.ImmutableArray Create(System.ReadOnlySpan items) => throw null; + public static System.Collections.Immutable.ImmutableArray Create(System.Span items) => throw null; public static System.Collections.Immutable.ImmutableArray.Builder CreateBuilder() => throw null; public static System.Collections.Immutable.ImmutableArray.Builder CreateBuilder(int initialCapacity) => throw null; public static System.Collections.Immutable.ImmutableArray CreateRange(System.Collections.Generic.IEnumerable items) => throw null; - public static System.Collections.Immutable.ImmutableArray CreateRange(System.Collections.Immutable.ImmutableArray items, System.Func selector, TArg arg) => throw null; - public static System.Collections.Immutable.ImmutableArray CreateRange(System.Collections.Immutable.ImmutableArray items, int start, int length, System.Func selector, TArg arg) => throw null; public static System.Collections.Immutable.ImmutableArray CreateRange(System.Collections.Immutable.ImmutableArray items, System.Func selector) => throw null; public static System.Collections.Immutable.ImmutableArray CreateRange(System.Collections.Immutable.ImmutableArray items, int start, int length, System.Func selector) => throw null; + public static System.Collections.Immutable.ImmutableArray CreateRange(System.Collections.Immutable.ImmutableArray items, System.Func selector, TArg arg) => throw null; + public static System.Collections.Immutable.ImmutableArray CreateRange(System.Collections.Immutable.ImmutableArray items, int start, int length, System.Func selector, TArg arg) => throw null; + public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.Collections.Generic.IEnumerable items) => throw null; + public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.ReadOnlySpan items) => throw null; public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.Span items) => throw null; - public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; - public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.Collections.Generic.IEnumerable items) => throw null; } - - public struct ImmutableArray : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Collections.Immutable.IImmutableList, System.IEquatable> + public struct ImmutableArray : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList, System.Collections.Immutable.IImmutableList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IEquatable> { - public class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable + public System.Collections.Immutable.ImmutableArray Add(T item) => throw null; + void System.Collections.Generic.ICollection.Add(T item) => throw null; + int System.Collections.IList.Add(object value) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Add(T value) => throw null; + public System.Collections.Immutable.ImmutableArray AddRange(System.Collections.Generic.IEnumerable items) => throw null; + public System.Collections.Immutable.ImmutableArray AddRange(System.Collections.Immutable.ImmutableArray items) => throw null; + public System.Collections.Immutable.ImmutableArray AddRange(T[] items, int length) => throw null; + public System.Collections.Immutable.ImmutableArray AddRange(TDerived[] items) where TDerived : T => throw null; + public System.Collections.Immutable.ImmutableArray AddRange(System.Collections.Immutable.ImmutableArray items, int length) => throw null; + public System.Collections.Immutable.ImmutableArray AddRange(System.Collections.Immutable.ImmutableArray items) where TDerived : T => throw null; + public System.Collections.Immutable.ImmutableArray AddRange(System.ReadOnlySpan items) => throw null; + public System.Collections.Immutable.ImmutableArray AddRange(params T[] items) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.AddRange(System.Collections.Generic.IEnumerable items) => throw null; + public System.Collections.Immutable.ImmutableArray As() where TOther : class => throw null; + public System.ReadOnlyMemory AsMemory() => throw null; + public System.ReadOnlySpan AsSpan() => throw null; + public System.ReadOnlySpan AsSpan(int start, int length) => throw null; + public System.ReadOnlySpan AsSpan(System.Range range) => throw null; + public sealed class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { public void Add(T item) => throw null; - public void AddRange(System.Collections.Immutable.ImmutableArray.Builder items) => throw null; public void AddRange(System.Collections.Generic.IEnumerable items) => throw null; public void AddRange(System.Collections.Immutable.ImmutableArray items) => throw null; public void AddRange(System.Collections.Immutable.ImmutableArray items, int length) => throw null; - public void AddRange(System.ReadOnlySpan items) => throw null; - public void AddRange(T[] items, int length) => throw null; + public void AddRange(System.Collections.Immutable.ImmutableArray.Builder items) => throw null; public void AddRange(params T[] items) => throw null; - public void AddRange(System.Collections.Immutable.ImmutableArray.Builder items) where TDerived : T => throw null; + public void AddRange(T[] items, int length) => throw null; public void AddRange(System.Collections.Immutable.ImmutableArray items) where TDerived : T => throw null; - public void AddRange(System.ReadOnlySpan items) where TDerived : T => throw null; + public void AddRange(System.Collections.Immutable.ImmutableArray.Builder items) where TDerived : T => throw null; public void AddRange(TDerived[] items) where TDerived : T => throw null; - public int Capacity { get => throw null; set => throw null; } + public void AddRange(System.ReadOnlySpan items) => throw null; + public void AddRange(System.ReadOnlySpan items) where TDerived : T => throw null; + public int Capacity { get => throw null; set { } } public void Clear() => throw null; public bool Contains(T item) => throw null; - public void CopyTo(System.Span destination) => throw null; - public void CopyTo(T[] destination) => throw null; public void CopyTo(T[] array, int index) => throw null; + public void CopyTo(T[] destination) => throw null; public void CopyTo(int sourceIndex, T[] destination, int destinationIndex, int length) => throw null; - public int Count { get => throw null; set => throw null; } + public void CopyTo(System.Span destination) => throw null; + public int Count { get => throw null; set { } } public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public int IndexOf(T item) => throw null; public int IndexOf(T item, int startIndex) => throw null; - public int IndexOf(T item, int startIndex, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public int IndexOf(T item, int startIndex, int count) => throw null; + public int IndexOf(T item, int startIndex, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public int IndexOf(T item, int startIndex, int count, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public void Insert(int index, T item) => throw null; public void InsertRange(int index, System.Collections.Generic.IEnumerable items) => throw null; public void InsertRange(int index, System.Collections.Immutable.ImmutableArray items) => throw null; bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } public T ItemRef(int index) => throw null; - public T this[int index] { get => throw null; set => throw null; } public int LastIndexOf(T item) => throw null; public int LastIndexOf(T item, int startIndex) => throw null; public int LastIndexOf(T item, int startIndex, int count) => throw null; @@ -151,51 +161,20 @@ namespace System public bool Remove(T element, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public void RemoveAll(System.Predicate match) => throw null; public void RemoveAt(int index) => throw null; + public void RemoveRange(int index, int length) => throw null; public void RemoveRange(System.Collections.Generic.IEnumerable items) => throw null; public void RemoveRange(System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; - public void RemoveRange(int index, int length) => throw null; public void Replace(T oldValue, T newValue) => throw null; public void Replace(T oldValue, T newValue, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public void Reverse() => throw null; public void Sort() => throw null; - public void Sort(System.Comparison comparison) => throw null; public void Sort(System.Collections.Generic.IComparer comparer) => throw null; + public void Sort(System.Comparison comparison) => throw null; public void Sort(int index, int count, System.Collections.Generic.IComparer comparer) => throw null; + public T this[int index] { get => throw null; set { } } public T[] ToArray() => throw null; public System.Collections.Immutable.ImmutableArray ToImmutable() => throw null; } - - - public struct Enumerator - { - public T Current { get => throw null; } - // Stub generator skipped constructor - public bool MoveNext() => throw null; - } - - - public static bool operator !=(System.Collections.Immutable.ImmutableArray left, System.Collections.Immutable.ImmutableArray right) => throw null; - public static bool operator !=(System.Collections.Immutable.ImmutableArray? left, System.Collections.Immutable.ImmutableArray? right) => throw null; - public static bool operator ==(System.Collections.Immutable.ImmutableArray left, System.Collections.Immutable.ImmutableArray right) => throw null; - public static bool operator ==(System.Collections.Immutable.ImmutableArray? left, System.Collections.Immutable.ImmutableArray? right) => throw null; - public System.Collections.Immutable.ImmutableArray Add(T item) => throw null; - void System.Collections.Generic.ICollection.Add(T item) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Add(T value) => throw null; - int System.Collections.IList.Add(object value) => throw null; - public System.Collections.Immutable.ImmutableArray AddRange(System.Collections.Generic.IEnumerable items) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.AddRange(System.Collections.Generic.IEnumerable items) => throw null; - public System.Collections.Immutable.ImmutableArray AddRange(System.Collections.Immutable.ImmutableArray items) => throw null; - public System.Collections.Immutable.ImmutableArray AddRange(System.Collections.Immutable.ImmutableArray items, int length) => throw null; - public System.Collections.Immutable.ImmutableArray AddRange(System.ReadOnlySpan items) => throw null; - public System.Collections.Immutable.ImmutableArray AddRange(T[] items, int length) => throw null; - public System.Collections.Immutable.ImmutableArray AddRange(params T[] items) => throw null; - public System.Collections.Immutable.ImmutableArray AddRange(System.Collections.Immutable.ImmutableArray items) where TDerived : T => throw null; - public System.Collections.Immutable.ImmutableArray AddRange(TDerived[] items) where TDerived : T => throw null; - public System.Collections.Immutable.ImmutableArray As() where TOther : class => throw null; - public System.ReadOnlyMemory AsMemory() => throw null; - public System.ReadOnlySpan AsSpan() => throw null; - public System.ReadOnlySpan AsSpan(System.Range range) => throw null; - public System.ReadOnlySpan AsSpan(int start, int length) => throw null; public System.Collections.Immutable.ImmutableArray CastArray() where TOther : class => throw null; public static System.Collections.Immutable.ImmutableArray CastUp(System.Collections.Immutable.ImmutableArray items) where TDerived : class, T => throw null; public System.Collections.Immutable.ImmutableArray Clear() => throw null; @@ -205,15 +184,20 @@ namespace System int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; public bool Contains(T item) => throw null; bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(System.Span destination) => throw null; + public void CopyTo(int sourceIndex, T[] destination, int destinationIndex, int length) => throw null; public void CopyTo(T[] destination) => throw null; public void CopyTo(T[] destination, int destinationIndex) => throw null; - public void CopyTo(int sourceIndex, T[] destination, int destinationIndex, int length) => throw null; + public void CopyTo(System.Span destination) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; int System.Collections.Generic.ICollection.Count { get => throw null; } int System.Collections.Generic.IReadOnlyCollection.Count { get => throw null; } int System.Collections.ICollection.Count { get => throw null; } public static System.Collections.Immutable.ImmutableArray Empty; + public struct Enumerator + { + public T Current { get => throw null; } + public bool MoveNext() => throw null; + } public bool Equals(System.Collections.Immutable.ImmutableArray other) => throw null; public override bool Equals(object obj) => throw null; bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; @@ -222,7 +206,6 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public override int GetHashCode() => throw null; int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - // Stub generator skipped constructor public int IndexOf(T item) => throw null; public int IndexOf(T item, int startIndex) => throw null; public int IndexOf(T item, int startIndex, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; @@ -231,13 +214,13 @@ namespace System int System.Collections.IList.IndexOf(object value) => throw null; public System.Collections.Immutable.ImmutableArray Insert(int index, T item) => throw null; void System.Collections.Generic.IList.Insert(int index, T item) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Insert(int index, T element) => throw null; void System.Collections.IList.Insert(int index, object value) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Insert(int index, T element) => throw null; public System.Collections.Immutable.ImmutableArray InsertRange(int index, System.Collections.Generic.IEnumerable items) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.InsertRange(int index, System.Collections.Generic.IEnumerable items) => throw null; public System.Collections.Immutable.ImmutableArray InsertRange(int index, System.Collections.Immutable.ImmutableArray items) => throw null; - public System.Collections.Immutable.ImmutableArray InsertRange(int index, System.ReadOnlySpan items) => throw null; public System.Collections.Immutable.ImmutableArray InsertRange(int index, T[] items) => throw null; + public System.Collections.Immutable.ImmutableArray InsertRange(int index, System.ReadOnlySpan items) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.InsertRange(int index, System.Collections.Generic.IEnumerable items) => throw null; public bool IsDefault { get => throw null; } public bool IsDefaultOrEmpty { get => throw null; } public bool IsEmpty { get => throw null; } @@ -245,22 +228,25 @@ namespace System bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public T ItemRef(int index) => throw null; - public T this[int index] { get => throw null; } - T System.Collections.Generic.IList.this[int index] { get => throw null; set => throw null; } + T System.Collections.Generic.IList.this[int index] { get => throw null; set { } } T System.Collections.Generic.IReadOnlyList.this[int index] { get => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } + public T ItemRef(int index) => throw null; public int LastIndexOf(T item) => throw null; public int LastIndexOf(T item, int startIndex) => throw null; public int LastIndexOf(T item, int startIndex, int count) => throw null; public int LastIndexOf(T item, int startIndex, int count, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public int Length { get => throw null; } public System.Collections.Generic.IEnumerable OfType() => throw null; + public static bool operator ==(System.Collections.Immutable.ImmutableArray left, System.Collections.Immutable.ImmutableArray right) => throw null; + public static bool operator ==(System.Collections.Immutable.ImmutableArray? left, System.Collections.Immutable.ImmutableArray? right) => throw null; + public static bool operator !=(System.Collections.Immutable.ImmutableArray left, System.Collections.Immutable.ImmutableArray right) => throw null; + public static bool operator !=(System.Collections.Immutable.ImmutableArray? left, System.Collections.Immutable.ImmutableArray? right) => throw null; public System.Collections.Immutable.ImmutableArray Remove(T item) => throw null; - bool System.Collections.Generic.ICollection.Remove(T item) => throw null; public System.Collections.Immutable.ImmutableArray Remove(T item, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Remove(T value, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; + bool System.Collections.Generic.ICollection.Remove(T item) => throw null; void System.Collections.IList.Remove(object value) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Remove(T value, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public System.Collections.Immutable.ImmutableArray RemoveAll(System.Predicate match) => throw null; System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.RemoveAll(System.Predicate match) => throw null; public System.Collections.Immutable.ImmutableArray RemoveAt(int index) => throw null; @@ -269,12 +255,12 @@ namespace System System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.RemoveAt(int index) => throw null; public System.Collections.Immutable.ImmutableArray RemoveRange(System.Collections.Generic.IEnumerable items) => throw null; public System.Collections.Immutable.ImmutableArray RemoveRange(System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.RemoveRange(System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public System.Collections.Immutable.ImmutableArray RemoveRange(System.Collections.Immutable.ImmutableArray items) => throw null; public System.Collections.Immutable.ImmutableArray RemoveRange(System.Collections.Immutable.ImmutableArray items, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; + public System.Collections.Immutable.ImmutableArray RemoveRange(int index, int length) => throw null; public System.Collections.Immutable.ImmutableArray RemoveRange(System.ReadOnlySpan items, System.Collections.Generic.IEqualityComparer equalityComparer = default(System.Collections.Generic.IEqualityComparer)) => throw null; public System.Collections.Immutable.ImmutableArray RemoveRange(T[] items, System.Collections.Generic.IEqualityComparer equalityComparer = default(System.Collections.Generic.IEqualityComparer)) => throw null; - public System.Collections.Immutable.ImmutableArray RemoveRange(int index, int length) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.RemoveRange(System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.RemoveRange(int index, int count) => throw null; public System.Collections.Immutable.ImmutableArray Replace(T oldValue, T newValue) => throw null; public System.Collections.Immutable.ImmutableArray Replace(T oldValue, T newValue, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; @@ -283,13 +269,13 @@ namespace System System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.SetItem(int index, T value) => throw null; public System.Collections.Immutable.ImmutableArray Slice(int start, int length) => throw null; public System.Collections.Immutable.ImmutableArray Sort() => throw null; - public System.Collections.Immutable.ImmutableArray Sort(System.Comparison comparison) => throw null; public System.Collections.Immutable.ImmutableArray Sort(System.Collections.Generic.IComparer comparer) => throw null; + public System.Collections.Immutable.ImmutableArray Sort(System.Comparison comparison) => throw null; public System.Collections.Immutable.ImmutableArray Sort(int index, int count, System.Collections.Generic.IComparer comparer) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; } public System.Collections.Immutable.ImmutableArray.Builder ToBuilder() => throw null; } - public static class ImmutableDictionary { public static bool Contains(this System.Collections.Immutable.IImmutableDictionary map, TKey key, TValue value) => throw null; @@ -304,20 +290,26 @@ namespace System public static System.Collections.Immutable.ImmutableDictionary CreateRange(System.Collections.Generic.IEqualityComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer, System.Collections.Generic.IEnumerable> items) => throw null; public static TValue GetValueOrDefault(this System.Collections.Immutable.IImmutableDictionary dictionary, TKey key) => throw null; public static TValue GetValueOrDefault(this System.Collections.Immutable.IImmutableDictionary dictionary, TKey key, TValue defaultValue) => throw null; - public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Immutable.ImmutableDictionary.Builder builder) => throw null; public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable> source) => throw null; public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable> source, System.Collections.Generic.IEqualityComparer keyComparer) => throw null; public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable> source, System.Collections.Generic.IEqualityComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; + public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector) => throw null; + public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IEqualityComparer keyComparer) => throw null; + public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Immutable.ImmutableDictionary.Builder builder) => throw null; public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector) => throw null; public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer keyComparer) => throw null; public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; - public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector) => throw null; - public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IEqualityComparer keyComparer) => throw null; } - - public class ImmutableDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableDictionary + public sealed class ImmutableDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.Immutable.IImmutableDictionary { - public class Builder : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable + public System.Collections.Immutable.ImmutableDictionary Add(TKey key, TValue value) => throw null; + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; + void System.Collections.Generic.IDictionary.Add(TKey key, TValue value) => throw null; + void System.Collections.IDictionary.Add(object key, object value) => throw null; + System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.Add(TKey key, TValue value) => throw null; + public System.Collections.Immutable.ImmutableDictionary AddRange(System.Collections.Generic.IEnumerable> pairs) => throw null; + System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.AddRange(System.Collections.Generic.IEnumerable> pairs) => throw null; + public sealed class Builder : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary { public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(TKey key, TValue value) => throw null; @@ -328,8 +320,8 @@ namespace System bool System.Collections.IDictionary.Contains(object key) => throw null; public bool ContainsKey(TKey key) => throw null; public bool ContainsValue(TValue value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } public System.Collections.Immutable.ImmutableDictionary.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; @@ -341,9 +333,8 @@ namespace System bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } - public System.Collections.Generic.IEqualityComparer KeyComparer { get => throw null; set => throw null; } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } + public System.Collections.Generic.IEqualityComparer KeyComparer { get => throw null; set { } } public System.Collections.Generic.IEnumerable Keys { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } @@ -352,34 +343,15 @@ namespace System void System.Collections.IDictionary.Remove(object key) => throw null; public void RemoveRange(System.Collections.Generic.IEnumerable keys) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public TValue this[TKey key] { get => throw null; set { } } public System.Collections.Immutable.ImmutableDictionary ToImmutable() => throw null; public bool TryGetKey(TKey equalKey, out TKey actualKey) => throw null; public bool TryGetValue(TKey key, out TValue value) => throw null; - public System.Collections.Generic.IEqualityComparer ValueComparer { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable Values { get => throw null; } + public System.Collections.Generic.IEqualityComparer ValueComparer { get => throw null; set { } } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } + public System.Collections.Generic.IEnumerable Values { get => throw null; } } - - - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; - public System.Collections.Immutable.ImmutableDictionary Add(TKey key, TValue value) => throw null; - void System.Collections.Generic.IDictionary.Add(TKey key, TValue value) => throw null; - System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.Add(TKey key, TValue value) => throw null; - void System.Collections.IDictionary.Add(object key, object value) => throw null; - public System.Collections.Immutable.ImmutableDictionary AddRange(System.Collections.Generic.IEnumerable> pairs) => throw null; - System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.AddRange(System.Collections.Generic.IEnumerable> pairs) => throw null; public System.Collections.Immutable.ImmutableDictionary Clear() => throw null; void System.Collections.Generic.ICollection>.Clear() => throw null; void System.Collections.IDictionary.Clear() => throw null; @@ -388,10 +360,18 @@ namespace System bool System.Collections.IDictionary.Contains(object key) => throw null; public bool ContainsKey(TKey key) => throw null; public bool ContainsValue(TValue value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } public static System.Collections.Immutable.ImmutableDictionary Empty; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + { + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } public System.Collections.Immutable.ImmutableDictionary.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; @@ -401,18 +381,17 @@ namespace System bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public TValue this[TKey key] { get => throw null; } - TValue System.Collections.Generic.IDictionary.this[TKey key] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } + TValue System.Collections.Generic.IDictionary.this[TKey key] { get => throw null; set { } } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } public System.Collections.Generic.IEqualityComparer KeyComparer { get => throw null; } public System.Collections.Generic.IEnumerable Keys { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; public System.Collections.Immutable.ImmutableDictionary Remove(TKey key) => throw null; + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; bool System.Collections.Generic.IDictionary.Remove(TKey key) => throw null; - System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.Remove(TKey key) => throw null; void System.Collections.IDictionary.Remove(object key) => throw null; + System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.Remove(TKey key) => throw null; public System.Collections.Immutable.ImmutableDictionary RemoveRange(System.Collections.Generic.IEnumerable keys) => throw null; System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.RemoveRange(System.Collections.Generic.IEnumerable keys) => throw null; public System.Collections.Immutable.ImmutableDictionary SetItem(TKey key, TValue value) => throw null; @@ -420,17 +399,17 @@ namespace System public System.Collections.Immutable.ImmutableDictionary SetItems(System.Collections.Generic.IEnumerable> items) => throw null; System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.SetItems(System.Collections.Generic.IEnumerable> items) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public TValue this[TKey key] { get => throw null; } public System.Collections.Immutable.ImmutableDictionary.Builder ToBuilder() => throw null; public bool TryGetKey(TKey equalKey, out TKey actualKey) => throw null; public bool TryGetValue(TKey key, out TValue value) => throw null; public System.Collections.Generic.IEqualityComparer ValueComparer { get => throw null; } - public System.Collections.Generic.IEnumerable Values { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } + public System.Collections.Generic.IEnumerable Values { get => throw null; } public System.Collections.Immutable.ImmutableDictionary WithComparers(System.Collections.Generic.IEqualityComparer keyComparer) => throw null; public System.Collections.Immutable.ImmutableDictionary WithComparers(System.Collections.Generic.IEqualityComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; } - public static class ImmutableHashSet { public static System.Collections.Immutable.ImmutableHashSet Create() => throw null; @@ -443,14 +422,17 @@ namespace System public static System.Collections.Immutable.ImmutableHashSet.Builder CreateBuilder(System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public static System.Collections.Immutable.ImmutableHashSet CreateRange(System.Collections.Generic.IEnumerable items) => throw null; public static System.Collections.Immutable.ImmutableHashSet CreateRange(System.Collections.Generic.IEqualityComparer equalityComparer, System.Collections.Generic.IEnumerable items) => throw null; - public static System.Collections.Immutable.ImmutableHashSet ToImmutableHashSet(this System.Collections.Immutable.ImmutableHashSet.Builder builder) => throw null; public static System.Collections.Immutable.ImmutableHashSet ToImmutableHashSet(this System.Collections.Generic.IEnumerable source) => throw null; public static System.Collections.Immutable.ImmutableHashSet ToImmutableHashSet(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; + public static System.Collections.Immutable.ImmutableHashSet ToImmutableHashSet(this System.Collections.Immutable.ImmutableHashSet.Builder builder) => throw null; } - - public class ImmutableHashSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlySet, System.Collections.Generic.ISet, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableSet + public sealed class ImmutableHashSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.Generic.IReadOnlySet, System.Collections.ICollection, System.Collections.Immutable.IImmutableSet { - public class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.IEnumerable + public System.Collections.Immutable.ImmutableHashSet Add(T item) => throw null; + void System.Collections.Generic.ICollection.Add(T item) => throw null; + bool System.Collections.Generic.ISet.Add(T item) => throw null; + System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Add(T item) => throw null; + public sealed class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet { public bool Add(T item) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; @@ -468,7 +450,7 @@ namespace System bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } public bool IsSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; public bool IsSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; - public System.Collections.Generic.IEqualityComparer KeyComparer { get => throw null; set => throw null; } + public System.Collections.Generic.IEqualityComparer KeyComparer { get => throw null; set { } } public bool Overlaps(System.Collections.Generic.IEnumerable other) => throw null; public bool Remove(T item) => throw null; public bool SetEquals(System.Collections.Generic.IEnumerable other) => throw null; @@ -477,31 +459,22 @@ namespace System public bool TryGetValue(T equalValue, out T actualValue) => throw null; public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; } - - + public System.Collections.Immutable.ImmutableHashSet Clear() => throw null; + void System.Collections.Generic.ICollection.Clear() => throw null; + System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Clear() => throw null; + public bool Contains(T item) => throw null; + void System.Collections.Generic.ICollection.CopyTo(T[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; + public int Count { get => throw null; } + public static System.Collections.Immutable.ImmutableHashSet Empty; public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; public void Reset() => throw null; } - - - public System.Collections.Immutable.ImmutableHashSet Add(T item) => throw null; - void System.Collections.Generic.ICollection.Add(T item) => throw null; - bool System.Collections.Generic.ISet.Add(T item) => throw null; - System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Add(T item) => throw null; - public System.Collections.Immutable.ImmutableHashSet Clear() => throw null; - void System.Collections.Generic.ICollection.Clear() => throw null; - System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Clear() => throw null; - public bool Contains(T item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; - void System.Collections.Generic.ICollection.CopyTo(T[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public static System.Collections.Immutable.ImmutableHashSet Empty; public System.Collections.Immutable.ImmutableHashSet Except(System.Collections.Generic.IEnumerable other) => throw null; System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Except(System.Collections.Generic.IEnumerable other) => throw null; void System.Collections.Generic.ISet.ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; @@ -530,20 +503,19 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } public System.Collections.Immutable.ImmutableHashSet.Builder ToBuilder() => throw null; public bool TryGetValue(T equalValue, out T actualValue) => throw null; - public System.Collections.Immutable.ImmutableHashSet Union(System.Collections.Generic.IEnumerable other) => throw null; System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Union(System.Collections.Generic.IEnumerable other) => throw null; + public System.Collections.Immutable.ImmutableHashSet Union(System.Collections.Generic.IEnumerable other) => throw null; void System.Collections.Generic.ISet.UnionWith(System.Collections.Generic.IEnumerable other) => throw null; public System.Collections.Immutable.ImmutableHashSet WithComparer(System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; } - public static class ImmutableInterlocked { public static TValue AddOrUpdate(ref System.Collections.Immutable.ImmutableDictionary location, TKey key, System.Func addValueFactory, System.Func updateValueFactory) => throw null; public static TValue AddOrUpdate(ref System.Collections.Immutable.ImmutableDictionary location, TKey key, TValue addValue, System.Func updateValueFactory) => throw null; public static void Enqueue(ref System.Collections.Immutable.ImmutableQueue location, T value) => throw null; - public static TValue GetOrAdd(ref System.Collections.Immutable.ImmutableDictionary location, TKey key, System.Func valueFactory, TArg factoryArgument) => throw null; public static TValue GetOrAdd(ref System.Collections.Immutable.ImmutableDictionary location, TKey key, System.Func valueFactory) => throw null; public static TValue GetOrAdd(ref System.Collections.Immutable.ImmutableDictionary location, TKey key, TValue value) => throw null; + public static TValue GetOrAdd(ref System.Collections.Immutable.ImmutableDictionary location, TKey key, System.Func valueFactory, TArg factoryArgument) => throw null; public static System.Collections.Immutable.ImmutableArray InterlockedCompareExchange(ref System.Collections.Immutable.ImmutableArray location, System.Collections.Immutable.ImmutableArray value, System.Collections.Immutable.ImmutableArray comparand) => throw null; public static System.Collections.Immutable.ImmutableArray InterlockedExchange(ref System.Collections.Immutable.ImmutableArray location, System.Collections.Immutable.ImmutableArray value) => throw null; public static bool InterlockedInitialize(ref System.Collections.Immutable.ImmutableArray location, System.Collections.Immutable.ImmutableArray value) => throw null; @@ -553,12 +525,11 @@ namespace System public static bool TryPop(ref System.Collections.Immutable.ImmutableStack location, out T value) => throw null; public static bool TryRemove(ref System.Collections.Immutable.ImmutableDictionary location, TKey key, out TValue value) => throw null; public static bool TryUpdate(ref System.Collections.Immutable.ImmutableDictionary location, TKey key, TValue newValue, TValue comparisonValue) => throw null; - public static bool Update(ref System.Collections.Immutable.ImmutableArray location, System.Func, TArg, System.Collections.Immutable.ImmutableArray> transformer, TArg transformerArgument) => throw null; + public static bool Update(ref T location, System.Func transformer) where T : class => throw null; public static bool Update(ref T location, System.Func transformer, TArg transformerArgument) where T : class => throw null; public static bool Update(ref System.Collections.Immutable.ImmutableArray location, System.Func, System.Collections.Immutable.ImmutableArray> transformer) => throw null; - public static bool Update(ref T location, System.Func transformer) where T : class => throw null; + public static bool Update(ref System.Collections.Immutable.ImmutableArray location, System.Func, TArg, System.Collections.Immutable.ImmutableArray> transformer, TArg transformerArgument) => throw null; } - public static class ImmutableList { public static System.Collections.Immutable.ImmutableList Create() => throw null; @@ -577,40 +548,48 @@ namespace System public static System.Collections.Immutable.IImmutableList Remove(this System.Collections.Immutable.IImmutableList list, T value) => throw null; public static System.Collections.Immutable.IImmutableList RemoveRange(this System.Collections.Immutable.IImmutableList list, System.Collections.Generic.IEnumerable items) => throw null; public static System.Collections.Immutable.IImmutableList Replace(this System.Collections.Immutable.IImmutableList list, T oldValue, T newValue) => throw null; - public static System.Collections.Immutable.ImmutableList ToImmutableList(this System.Collections.Immutable.ImmutableList.Builder builder) => throw null; public static System.Collections.Immutable.ImmutableList ToImmutableList(this System.Collections.Generic.IEnumerable source) => throw null; + public static System.Collections.Immutable.ImmutableList ToImmutableList(this System.Collections.Immutable.ImmutableList.Builder builder) => throw null; } - - public class ImmutableList : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Collections.Immutable.IImmutableList + public sealed class ImmutableList : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList, System.Collections.Immutable.IImmutableList { - public class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + public System.Collections.Immutable.ImmutableList Add(T value) => throw null; + void System.Collections.Generic.ICollection.Add(T item) => throw null; + int System.Collections.IList.Add(object value) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Add(T value) => throw null; + public System.Collections.Immutable.ImmutableList AddRange(System.Collections.Generic.IEnumerable items) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.AddRange(System.Collections.Generic.IEnumerable items) => throw null; + public int BinarySearch(int index, int count, T item, System.Collections.Generic.IComparer comparer) => throw null; + public int BinarySearch(T item) => throw null; + public int BinarySearch(T item, System.Collections.Generic.IComparer comparer) => throw null; + public sealed class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList { public void Add(T item) => throw null; int System.Collections.IList.Add(object value) => throw null; public void AddRange(System.Collections.Generic.IEnumerable items) => throw null; + public int BinarySearch(int index, int count, T item, System.Collections.Generic.IComparer comparer) => throw null; public int BinarySearch(T item) => throw null; public int BinarySearch(T item, System.Collections.Generic.IComparer comparer) => throw null; - public int BinarySearch(int index, int count, T item, System.Collections.Generic.IComparer comparer) => throw null; public void Clear() => throw null; void System.Collections.IList.Clear() => throw null; public bool Contains(T item) => throw null; bool System.Collections.IList.Contains(object value) => throw null; public System.Collections.Immutable.ImmutableList ConvertAll(System.Func converter) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; + public void CopyTo(int index, T[] array, int arrayIndex, int count) => throw null; public void CopyTo(T[] array) => throw null; public void CopyTo(T[] array, int arrayIndex) => throw null; - public void CopyTo(int index, T[] array, int arrayIndex, int count) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } public bool Exists(System.Predicate match) => throw null; public T Find(System.Predicate match) => throw null; public System.Collections.Immutable.ImmutableList FindAll(System.Predicate match) => throw null; - public int FindIndex(System.Predicate match) => throw null; - public int FindIndex(int startIndex, System.Predicate match) => throw null; public int FindIndex(int startIndex, int count, System.Predicate match) => throw null; + public int FindIndex(int startIndex, System.Predicate match) => throw null; + public int FindIndex(System.Predicate match) => throw null; public T FindLast(System.Predicate match) => throw null; - public int FindLastIndex(System.Predicate match) => throw null; - public int FindLastIndex(int startIndex, System.Predicate match) => throw null; public int FindLastIndex(int startIndex, int count, System.Predicate match) => throw null; + public int FindLastIndex(int startIndex, System.Predicate match) => throw null; + public int FindLastIndex(System.Predicate match) => throw null; public void ForEach(System.Action action) => throw null; public System.Collections.Immutable.ImmutableList.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; @@ -628,9 +607,8 @@ namespace System bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } public T ItemRef(int index) => throw null; - public T this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } public int LastIndexOf(T item) => throw null; public int LastIndexOf(T item, int startIndex) => throw null; public int LastIndexOf(T item, int startIndex, int count) => throw null; @@ -640,43 +618,22 @@ namespace System void System.Collections.IList.Remove(object value) => throw null; public int RemoveAll(System.Predicate match) => throw null; public void RemoveAt(int index) => throw null; + public void RemoveRange(int index, int count) => throw null; public void RemoveRange(System.Collections.Generic.IEnumerable items) => throw null; public void RemoveRange(System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; - public void RemoveRange(int index, int count) => throw null; public void Replace(T oldValue, T newValue) => throw null; public void Replace(T oldValue, T newValue, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public void Reverse() => throw null; public void Reverse(int index, int count) => throw null; public void Sort() => throw null; - public void Sort(System.Comparison comparison) => throw null; public void Sort(System.Collections.Generic.IComparer comparer) => throw null; + public void Sort(System.Comparison comparison) => throw null; public void Sort(int index, int count, System.Collections.Generic.IComparer comparer) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; set { } } public System.Collections.Immutable.ImmutableList ToImmutable() => throw null; public bool TrueForAll(System.Predicate match) => throw null; } - - - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public T Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - - public System.Collections.Immutable.ImmutableList Add(T value) => throw null; - void System.Collections.Generic.ICollection.Add(T item) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Add(T value) => throw null; - int System.Collections.IList.Add(object value) => throw null; - public System.Collections.Immutable.ImmutableList AddRange(System.Collections.Generic.IEnumerable items) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.AddRange(System.Collections.Generic.IEnumerable items) => throw null; - public int BinarySearch(T item) => throw null; - public int BinarySearch(T item, System.Collections.Generic.IComparer comparer) => throw null; - public int BinarySearch(int index, int count, T item, System.Collections.Generic.IComparer comparer) => throw null; public System.Collections.Immutable.ImmutableList Clear() => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; void System.Collections.IList.Clear() => throw null; @@ -684,22 +641,30 @@ namespace System public bool Contains(T value) => throw null; bool System.Collections.IList.Contains(object value) => throw null; public System.Collections.Immutable.ImmutableList ConvertAll(System.Func converter) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; + public void CopyTo(int index, T[] array, int arrayIndex, int count) => throw null; public void CopyTo(T[] array) => throw null; public void CopyTo(T[] array, int arrayIndex) => throw null; - public void CopyTo(int index, T[] array, int arrayIndex, int count) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } public static System.Collections.Immutable.ImmutableList Empty; + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public T Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } public bool Exists(System.Predicate match) => throw null; public T Find(System.Predicate match) => throw null; public System.Collections.Immutable.ImmutableList FindAll(System.Predicate match) => throw null; - public int FindIndex(System.Predicate match) => throw null; - public int FindIndex(int startIndex, System.Predicate match) => throw null; public int FindIndex(int startIndex, int count, System.Predicate match) => throw null; + public int FindIndex(int startIndex, System.Predicate match) => throw null; + public int FindIndex(System.Predicate match) => throw null; public T FindLast(System.Predicate match) => throw null; - public int FindLastIndex(System.Predicate match) => throw null; - public int FindLastIndex(int startIndex, System.Predicate match) => throw null; public int FindLastIndex(int startIndex, int count, System.Predicate match) => throw null; + public int FindLastIndex(int startIndex, System.Predicate match) => throw null; + public int FindLastIndex(System.Predicate match) => throw null; public void ForEach(System.Action action) => throw null; public System.Collections.Immutable.ImmutableList.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; @@ -710,8 +675,8 @@ namespace System int System.Collections.IList.IndexOf(object value) => throw null; public System.Collections.Immutable.ImmutableList Insert(int index, T item) => throw null; void System.Collections.Generic.IList.Insert(int index, T item) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Insert(int index, T item) => throw null; void System.Collections.IList.Insert(int index, object value) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Insert(int index, T item) => throw null; public System.Collections.Immutable.ImmutableList InsertRange(int index, System.Collections.Generic.IEnumerable items) => throw null; System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.InsertRange(int index, System.Collections.Generic.IEnumerable items) => throw null; public bool IsEmpty { get => throw null; } @@ -719,16 +684,15 @@ namespace System bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } + T System.Collections.Generic.IList.this[int index] { get => throw null; set { } } + object System.Collections.IList.this[int index] { get => throw null; set { } } public T ItemRef(int index) => throw null; - public T this[int index] { get => throw null; } - T System.Collections.Generic.IList.this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } public int LastIndexOf(T item, int index, int count, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public System.Collections.Immutable.ImmutableList Remove(T value) => throw null; - bool System.Collections.Generic.ICollection.Remove(T item) => throw null; public System.Collections.Immutable.ImmutableList Remove(T value, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Remove(T value, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; + bool System.Collections.Generic.ICollection.Remove(T item) => throw null; void System.Collections.IList.Remove(object value) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.Remove(T value, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public System.Collections.Immutable.ImmutableList RemoveAll(System.Predicate match) => throw null; System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.RemoveAll(System.Predicate match) => throw null; public System.Collections.Immutable.ImmutableList RemoveAt(int index) => throw null; @@ -737,8 +701,8 @@ namespace System System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.RemoveAt(int index) => throw null; public System.Collections.Immutable.ImmutableList RemoveRange(System.Collections.Generic.IEnumerable items) => throw null; public System.Collections.Immutable.ImmutableList RemoveRange(System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; - System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.RemoveRange(System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public System.Collections.Immutable.ImmutableList RemoveRange(int index, int count) => throw null; + System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.RemoveRange(System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.RemoveRange(int index, int count) => throw null; public System.Collections.Immutable.ImmutableList Replace(T oldValue, T newValue) => throw null; public System.Collections.Immutable.ImmutableList Replace(T oldValue, T newValue, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; @@ -748,14 +712,14 @@ namespace System public System.Collections.Immutable.ImmutableList SetItem(int index, T value) => throw null; System.Collections.Immutable.IImmutableList System.Collections.Immutable.IImmutableList.SetItem(int index, T value) => throw null; public System.Collections.Immutable.ImmutableList Sort() => throw null; - public System.Collections.Immutable.ImmutableList Sort(System.Comparison comparison) => throw null; public System.Collections.Immutable.ImmutableList Sort(System.Collections.Generic.IComparer comparer) => throw null; + public System.Collections.Immutable.ImmutableList Sort(System.Comparison comparison) => throw null; public System.Collections.Immutable.ImmutableList Sort(int index, int count, System.Collections.Generic.IComparer comparer) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; } public System.Collections.Immutable.ImmutableList.Builder ToBuilder() => throw null; public bool TrueForAll(System.Predicate match) => throw null; } - public static class ImmutableQueue { public static System.Collections.Immutable.ImmutableQueue Create() => throw null; @@ -764,25 +728,21 @@ namespace System public static System.Collections.Immutable.ImmutableQueue CreateRange(System.Collections.Generic.IEnumerable items) => throw null; public static System.Collections.Immutable.IImmutableQueue Dequeue(this System.Collections.Immutable.IImmutableQueue queue, out T value) => throw null; } - - public class ImmutableQueue : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableQueue + public sealed class ImmutableQueue : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableQueue { - public struct Enumerator - { - public T Current { get => throw null; } - // Stub generator skipped constructor - public bool MoveNext() => throw null; - } - - public System.Collections.Immutable.ImmutableQueue Clear() => throw null; System.Collections.Immutable.IImmutableQueue System.Collections.Immutable.IImmutableQueue.Clear() => throw null; public System.Collections.Immutable.ImmutableQueue Dequeue() => throw null; - System.Collections.Immutable.IImmutableQueue System.Collections.Immutable.IImmutableQueue.Dequeue() => throw null; public System.Collections.Immutable.ImmutableQueue Dequeue(out T value) => throw null; + System.Collections.Immutable.IImmutableQueue System.Collections.Immutable.IImmutableQueue.Dequeue() => throw null; public static System.Collections.Immutable.ImmutableQueue Empty { get => throw null; } public System.Collections.Immutable.ImmutableQueue Enqueue(T value) => throw null; System.Collections.Immutable.IImmutableQueue System.Collections.Immutable.IImmutableQueue.Enqueue(T value) => throw null; + public struct Enumerator + { + public T Current { get => throw null; } + public bool MoveNext() => throw null; + } public System.Collections.Immutable.ImmutableQueue.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; @@ -790,7 +750,6 @@ namespace System public T Peek() => throw null; public T PeekRef() => throw null; } - public static class ImmutableSortedDictionary { public static System.Collections.Immutable.ImmutableSortedDictionary Create() => throw null; @@ -802,18 +761,24 @@ namespace System public static System.Collections.Immutable.ImmutableSortedDictionary CreateRange(System.Collections.Generic.IComparer keyComparer, System.Collections.Generic.IEnumerable> items) => throw null; public static System.Collections.Immutable.ImmutableSortedDictionary CreateRange(System.Collections.Generic.IComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer, System.Collections.Generic.IEnumerable> items) => throw null; public static System.Collections.Immutable.ImmutableSortedDictionary CreateRange(System.Collections.Generic.IEnumerable> items) => throw null; - public static System.Collections.Immutable.ImmutableSortedDictionary ToImmutableSortedDictionary(this System.Collections.Immutable.ImmutableSortedDictionary.Builder builder) => throw null; public static System.Collections.Immutable.ImmutableSortedDictionary ToImmutableSortedDictionary(this System.Collections.Generic.IEnumerable> source) => throw null; public static System.Collections.Immutable.ImmutableSortedDictionary ToImmutableSortedDictionary(this System.Collections.Generic.IEnumerable> source, System.Collections.Generic.IComparer keyComparer) => throw null; public static System.Collections.Immutable.ImmutableSortedDictionary ToImmutableSortedDictionary(this System.Collections.Generic.IEnumerable> source, System.Collections.Generic.IComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; + public static System.Collections.Immutable.ImmutableSortedDictionary ToImmutableSortedDictionary(this System.Collections.Immutable.ImmutableSortedDictionary.Builder builder) => throw null; public static System.Collections.Immutable.ImmutableSortedDictionary ToImmutableSortedDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector) => throw null; public static System.Collections.Immutable.ImmutableSortedDictionary ToImmutableSortedDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IComparer keyComparer) => throw null; public static System.Collections.Immutable.ImmutableSortedDictionary ToImmutableSortedDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; } - - public class ImmutableSortedDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableDictionary + public sealed class ImmutableSortedDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.Immutable.IImmutableDictionary { - public class Builder : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable + public System.Collections.Immutable.ImmutableSortedDictionary Add(TKey key, TValue value) => throw null; + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; + void System.Collections.Generic.IDictionary.Add(TKey key, TValue value) => throw null; + void System.Collections.IDictionary.Add(object key, object value) => throw null; + System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.Add(TKey key, TValue value) => throw null; + public System.Collections.Immutable.ImmutableSortedDictionary AddRange(System.Collections.Generic.IEnumerable> items) => throw null; + System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.AddRange(System.Collections.Generic.IEnumerable> pairs) => throw null; + public sealed class Builder : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary { public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(TKey key, TValue value) => throw null; @@ -824,8 +789,8 @@ namespace System bool System.Collections.IDictionary.Contains(object key) => throw null; public bool ContainsKey(TKey key) => throw null; public bool ContainsValue(TValue value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public System.Collections.Immutable.ImmutableSortedDictionary.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; @@ -837,9 +802,8 @@ namespace System bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } - public System.Collections.Generic.IComparer KeyComparer { get => throw null; set => throw null; } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } + public System.Collections.Generic.IComparer KeyComparer { get => throw null; set { } } public System.Collections.Generic.IEnumerable Keys { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } @@ -848,35 +812,16 @@ namespace System void System.Collections.IDictionary.Remove(object key) => throw null; public void RemoveRange(System.Collections.Generic.IEnumerable keys) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public TValue this[TKey key] { get => throw null; set { } } public System.Collections.Immutable.ImmutableSortedDictionary ToImmutable() => throw null; public bool TryGetKey(TKey equalKey, out TKey actualKey) => throw null; public bool TryGetValue(TKey key, out TValue value) => throw null; - public System.Collections.Generic.IEqualityComparer ValueComparer { get => throw null; set => throw null; } + public System.Collections.Generic.IEqualityComparer ValueComparer { get => throw null; set { } } public TValue ValueRef(TKey key) => throw null; - public System.Collections.Generic.IEnumerable Values { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } + public System.Collections.Generic.IEnumerable Values { get => throw null; } } - - - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; - public System.Collections.Immutable.ImmutableSortedDictionary Add(TKey key, TValue value) => throw null; - void System.Collections.Generic.IDictionary.Add(TKey key, TValue value) => throw null; - System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.Add(TKey key, TValue value) => throw null; - void System.Collections.IDictionary.Add(object key, object value) => throw null; - public System.Collections.Immutable.ImmutableSortedDictionary AddRange(System.Collections.Generic.IEnumerable> items) => throw null; - System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.AddRange(System.Collections.Generic.IEnumerable> pairs) => throw null; public System.Collections.Immutable.ImmutableSortedDictionary Clear() => throw null; void System.Collections.Generic.ICollection>.Clear() => throw null; void System.Collections.IDictionary.Clear() => throw null; @@ -885,10 +830,18 @@ namespace System bool System.Collections.IDictionary.Contains(object key) => throw null; public bool ContainsKey(TKey key) => throw null; public bool ContainsValue(TValue value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public static System.Collections.Immutable.ImmutableSortedDictionary Empty; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + { + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } public System.Collections.Immutable.ImmutableSortedDictionary.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; @@ -898,18 +851,17 @@ namespace System bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public TValue this[TKey key] { get => throw null; } - TValue System.Collections.Generic.IDictionary.this[TKey key] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } + TValue System.Collections.Generic.IDictionary.this[TKey key] { get => throw null; set { } } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } public System.Collections.Generic.IComparer KeyComparer { get => throw null; } public System.Collections.Generic.IEnumerable Keys { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; public System.Collections.Immutable.ImmutableSortedDictionary Remove(TKey value) => throw null; + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; bool System.Collections.Generic.IDictionary.Remove(TKey key) => throw null; - System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.Remove(TKey key) => throw null; void System.Collections.IDictionary.Remove(object key) => throw null; + System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.Remove(TKey key) => throw null; public System.Collections.Immutable.ImmutableSortedDictionary RemoveRange(System.Collections.Generic.IEnumerable keys) => throw null; System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.RemoveRange(System.Collections.Generic.IEnumerable keys) => throw null; public System.Collections.Immutable.ImmutableSortedDictionary SetItem(TKey key, TValue value) => throw null; @@ -917,18 +869,18 @@ namespace System public System.Collections.Immutable.ImmutableSortedDictionary SetItems(System.Collections.Generic.IEnumerable> items) => throw null; System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.SetItems(System.Collections.Generic.IEnumerable> items) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public TValue this[TKey key] { get => throw null; } public System.Collections.Immutable.ImmutableSortedDictionary.Builder ToBuilder() => throw null; public bool TryGetKey(TKey equalKey, out TKey actualKey) => throw null; public bool TryGetValue(TKey key, out TValue value) => throw null; public System.Collections.Generic.IEqualityComparer ValueComparer { get => throw null; } public TValue ValueRef(TKey key) => throw null; - public System.Collections.Generic.IEnumerable Values { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } + public System.Collections.Generic.IEnumerable Values { get => throw null; } public System.Collections.Immutable.ImmutableSortedDictionary WithComparers(System.Collections.Generic.IComparer keyComparer) => throw null; public System.Collections.Immutable.ImmutableSortedDictionary WithComparers(System.Collections.Generic.IComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; } - public static class ImmutableSortedSet { public static System.Collections.Immutable.ImmutableSortedSet Create() => throw null; @@ -941,21 +893,25 @@ namespace System public static System.Collections.Immutable.ImmutableSortedSet.Builder CreateBuilder(System.Collections.Generic.IComparer comparer) => throw null; public static System.Collections.Immutable.ImmutableSortedSet CreateRange(System.Collections.Generic.IComparer comparer, System.Collections.Generic.IEnumerable items) => throw null; public static System.Collections.Immutable.ImmutableSortedSet CreateRange(System.Collections.Generic.IEnumerable items) => throw null; - public static System.Collections.Immutable.ImmutableSortedSet ToImmutableSortedSet(this System.Collections.Immutable.ImmutableSortedSet.Builder builder) => throw null; public static System.Collections.Immutable.ImmutableSortedSet ToImmutableSortedSet(this System.Collections.Generic.IEnumerable source) => throw null; public static System.Collections.Immutable.ImmutableSortedSet ToImmutableSortedSet(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IComparer comparer) => throw null; + public static System.Collections.Immutable.ImmutableSortedSet ToImmutableSortedSet(this System.Collections.Immutable.ImmutableSortedSet.Builder builder) => throw null; } - - public class ImmutableSortedSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlySet, System.Collections.Generic.ISet, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Collections.Immutable.IImmutableSet + public sealed class ImmutableSortedSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.ISet, System.Collections.Generic.IReadOnlySet, System.Collections.ICollection, System.Collections.IList, System.Collections.Immutable.IImmutableSet { - public class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.ICollection, System.Collections.IEnumerable + public System.Collections.Immutable.ImmutableSortedSet Add(T value) => throw null; + void System.Collections.Generic.ICollection.Add(T item) => throw null; + bool System.Collections.Generic.ISet.Add(T item) => throw null; + int System.Collections.IList.Add(object value) => throw null; + System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Add(T value) => throw null; + public sealed class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.ICollection { public bool Add(T item) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; public void Clear() => throw null; public bool Contains(T item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; void System.Collections.Generic.ICollection.CopyTo(T[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } public void ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; public System.Collections.Immutable.ImmutableSortedSet.Enumerator GetEnumerator() => throw null; @@ -970,8 +926,7 @@ namespace System public bool IsSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; bool System.Collections.ICollection.IsSynchronized { get => throw null; } public T ItemRef(int index) => throw null; - public T this[int index] { get => throw null; } - public System.Collections.Generic.IComparer KeyComparer { get => throw null; set => throw null; } + public System.Collections.Generic.IComparer KeyComparer { get => throw null; set { } } public T Max { get => throw null; } public T Min { get => throw null; } public bool Overlaps(System.Collections.Generic.IEnumerable other) => throw null; @@ -980,38 +935,29 @@ namespace System public bool SetEquals(System.Collections.Generic.IEnumerable other) => throw null; public void SymmetricExceptWith(System.Collections.Generic.IEnumerable other) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; } public System.Collections.Immutable.ImmutableSortedSet ToImmutable() => throw null; public bool TryGetValue(T equalValue, out T actualValue) => throw null; public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; } - - - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public T Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - - public System.Collections.Immutable.ImmutableSortedSet Add(T value) => throw null; - void System.Collections.Generic.ICollection.Add(T item) => throw null; - bool System.Collections.Generic.ISet.Add(T item) => throw null; - System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Add(T value) => throw null; - int System.Collections.IList.Add(object value) => throw null; public System.Collections.Immutable.ImmutableSortedSet Clear() => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; void System.Collections.IList.Clear() => throw null; System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Clear() => throw null; public bool Contains(T value) => throw null; bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; void System.Collections.Generic.ICollection.CopyTo(T[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public static System.Collections.Immutable.ImmutableSortedSet Empty; + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public T Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } public System.Collections.Immutable.ImmutableSortedSet Except(System.Collections.Generic.IEnumerable other) => throw null; System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Except(System.Collections.Generic.IEnumerable other) => throw null; void System.Collections.Generic.ISet.ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; @@ -1034,18 +980,17 @@ namespace System public bool IsSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; public bool IsSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; bool System.Collections.ICollection.IsSynchronized { get => throw null; } + T System.Collections.Generic.IList.this[int index] { get => throw null; set { } } + object System.Collections.IList.this[int index] { get => throw null; set { } } public T ItemRef(int index) => throw null; - public T this[int index] { get => throw null; } - T System.Collections.Generic.IList.this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } public System.Collections.Generic.IComparer KeyComparer { get => throw null; } public T Max { get => throw null; } public T Min { get => throw null; } public bool Overlaps(System.Collections.Generic.IEnumerable other) => throw null; public System.Collections.Immutable.ImmutableSortedSet Remove(T value) => throw null; bool System.Collections.Generic.ICollection.Remove(T item) => throw null; - System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Remove(T value) => throw null; void System.Collections.IList.Remove(object value) => throw null; + System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Remove(T value) => throw null; void System.Collections.Generic.IList.RemoveAt(int index) => throw null; void System.Collections.IList.RemoveAt(int index) => throw null; public System.Collections.Generic.IEnumerable Reverse() => throw null; @@ -1054,14 +999,14 @@ namespace System System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.SymmetricExcept(System.Collections.Generic.IEnumerable other) => throw null; void System.Collections.Generic.ISet.SymmetricExceptWith(System.Collections.Generic.IEnumerable other) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; } public System.Collections.Immutable.ImmutableSortedSet.Builder ToBuilder() => throw null; public bool TryGetValue(T equalValue, out T actualValue) => throw null; - public System.Collections.Immutable.ImmutableSortedSet Union(System.Collections.Generic.IEnumerable other) => throw null; System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Union(System.Collections.Generic.IEnumerable other) => throw null; + public System.Collections.Immutable.ImmutableSortedSet Union(System.Collections.Generic.IEnumerable other) => throw null; void System.Collections.Generic.ISet.UnionWith(System.Collections.Generic.IEnumerable other) => throw null; public System.Collections.Immutable.ImmutableSortedSet WithComparer(System.Collections.Generic.IComparer comparer) => throw null; } - public static class ImmutableStack { public static System.Collections.Immutable.ImmutableStack Create() => throw null; @@ -1070,20 +1015,16 @@ namespace System public static System.Collections.Immutable.ImmutableStack CreateRange(System.Collections.Generic.IEnumerable items) => throw null; public static System.Collections.Immutable.IImmutableStack Pop(this System.Collections.Immutable.IImmutableStack stack, out T value) => throw null; } - - public class ImmutableStack : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableStack + public sealed class ImmutableStack : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableStack { - public struct Enumerator - { - public T Current { get => throw null; } - // Stub generator skipped constructor - public bool MoveNext() => throw null; - } - - public System.Collections.Immutable.ImmutableStack Clear() => throw null; System.Collections.Immutable.IImmutableStack System.Collections.Immutable.IImmutableStack.Clear() => throw null; public static System.Collections.Immutable.ImmutableStack Empty { get => throw null; } + public struct Enumerator + { + public T Current { get => throw null; } + public bool MoveNext() => throw null; + } public System.Collections.Immutable.ImmutableStack.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; @@ -1091,44 +1032,43 @@ namespace System public T Peek() => throw null; public T PeekRef() => throw null; public System.Collections.Immutable.ImmutableStack Pop() => throw null; - System.Collections.Immutable.IImmutableStack System.Collections.Immutable.IImmutableStack.Pop() => throw null; public System.Collections.Immutable.ImmutableStack Pop(out T value) => throw null; + System.Collections.Immutable.IImmutableStack System.Collections.Immutable.IImmutableStack.Pop() => throw null; public System.Collections.Immutable.ImmutableStack Push(T value) => throw null; System.Collections.Immutable.IImmutableStack System.Collections.Immutable.IImmutableStack.Push(T value) => throw null; } - } } namespace Linq { - public static class ImmutableArrayExtensions + public static partial class ImmutableArrayExtensions { public static T Aggregate(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func func) => throw null; public static TAccumulate Aggregate(this System.Collections.Immutable.ImmutableArray immutableArray, TAccumulate seed, System.Func func) => throw null; public static TResult Aggregate(this System.Collections.Immutable.ImmutableArray immutableArray, TAccumulate seed, System.Func func, System.Func resultSelector) => throw null; public static bool All(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func predicate) => throw null; - public static bool Any(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; public static bool Any(this System.Collections.Immutable.ImmutableArray immutableArray) => throw null; public static bool Any(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func predicate) => throw null; + public static bool Any(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; public static T ElementAt(this System.Collections.Immutable.ImmutableArray immutableArray, int index) => throw null; public static T ElementAtOrDefault(this System.Collections.Immutable.ImmutableArray immutableArray, int index) => throw null; - public static T First(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; public static T First(this System.Collections.Immutable.ImmutableArray immutableArray) => throw null; public static T First(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func predicate) => throw null; - public static T FirstOrDefault(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; + public static T First(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; public static T FirstOrDefault(this System.Collections.Immutable.ImmutableArray immutableArray) => throw null; public static T FirstOrDefault(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func predicate) => throw null; - public static T Last(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; + public static T FirstOrDefault(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; public static T Last(this System.Collections.Immutable.ImmutableArray immutableArray) => throw null; public static T Last(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func predicate) => throw null; - public static T LastOrDefault(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; + public static T Last(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; public static T LastOrDefault(this System.Collections.Immutable.ImmutableArray immutableArray) => throw null; public static T LastOrDefault(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func predicate) => throw null; + public static T LastOrDefault(this System.Collections.Immutable.ImmutableArray.Builder builder) => throw null; public static System.Collections.Generic.IEnumerable Select(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func selector) => throw null; public static System.Collections.Generic.IEnumerable SelectMany(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func> collectionSelector, System.Func resultSelector) => throw null; public static bool SequenceEqual(this System.Collections.Immutable.ImmutableArray immutableArray, System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer comparer = default(System.Collections.Generic.IEqualityComparer)) where TDerived : TBase => throw null; - public static bool SequenceEqual(this System.Collections.Immutable.ImmutableArray immutableArray, System.Collections.Immutable.ImmutableArray items, System.Func predicate) where TDerived : TBase => throw null; public static bool SequenceEqual(this System.Collections.Immutable.ImmutableArray immutableArray, System.Collections.Immutable.ImmutableArray items, System.Collections.Generic.IEqualityComparer comparer = default(System.Collections.Generic.IEqualityComparer)) where TDerived : TBase => throw null; + public static bool SequenceEqual(this System.Collections.Immutable.ImmutableArray immutableArray, System.Collections.Immutable.ImmutableArray items, System.Func predicate) where TDerived : TBase => throw null; public static T Single(this System.Collections.Immutable.ImmutableArray immutableArray) => throw null; public static T Single(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func predicate) => throw null; public static T SingleOrDefault(this System.Collections.Immutable.ImmutableArray immutableArray) => throw null; @@ -1140,6 +1080,5 @@ namespace System public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.IEnumerable Where(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func predicate) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.NonGeneric.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.NonGeneric.cs index cb64504fca4..b1acd32ceaf 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.NonGeneric.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.NonGeneric.cs @@ -1,19 +1,17 @@ // This file contains auto-generated code. // Generated from `System.Collections.NonGeneric, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Collections { public class CaseInsensitiveComparer : System.Collections.IComparer { + public int Compare(object a, object b) => throw null; public CaseInsensitiveComparer() => throw null; public CaseInsensitiveComparer(System.Globalization.CultureInfo culture) => throw null; - public int Compare(object a, object b) => throw null; public static System.Collections.CaseInsensitiveComparer Default { get => throw null; } public static System.Collections.CaseInsensitiveComparer DefaultInvariant { get => throw null; } } - public class CaseInsensitiveHashCodeProvider : System.Collections.IHashCodeProvider { public CaseInsensitiveHashCodeProvider() => throw null; @@ -22,17 +20,16 @@ namespace System public static System.Collections.CaseInsensitiveHashCodeProvider DefaultInvariant { get => throw null; } public int GetHashCode(object obj) => throw null; } - public abstract class CollectionBase : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { int System.Collections.IList.Add(object value) => throw null; - public int Capacity { get => throw null; set => throw null; } + public int Capacity { get => throw null; set { } } public void Clear() => throw null; - protected CollectionBase() => throw null; - protected CollectionBase(int capacity) => throw null; bool System.Collections.IList.Contains(object value) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + protected CollectionBase() => throw null; + protected CollectionBase(int capacity) => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; int System.Collections.IList.IndexOf(object value) => throw null; protected System.Collections.ArrayList InnerList { get => throw null; } @@ -40,7 +37,7 @@ namespace System bool System.Collections.IList.IsFixedSize { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } protected System.Collections.IList List { get => throw null; } protected virtual void OnClear() => throw null; protected virtual void OnClearComplete() => throw null; @@ -55,23 +52,22 @@ namespace System public void RemoveAt(int index) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } } - - public abstract class DictionaryBase : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable + public abstract class DictionaryBase : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary { void System.Collections.IDictionary.Add(object key, object value) => throw null; public void Clear() => throw null; bool System.Collections.IDictionary.Contains(object key) => throw null; public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } - protected System.Collections.IDictionary Dictionary { get => throw null; } protected DictionaryBase() => throw null; + protected System.Collections.IDictionary Dictionary { get => throw null; } public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; protected System.Collections.Hashtable InnerHashtable { get => throw null; } bool System.Collections.IDictionary.IsFixedSize { get => throw null; } bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } protected virtual void OnClear() => throw null; protected virtual void OnClearComplete() => throw null; @@ -87,7 +83,6 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } } - public class Queue : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable { public virtual void Clear() => throw null; @@ -95,36 +90,34 @@ namespace System public virtual bool Contains(object obj) => throw null; public virtual void CopyTo(System.Array array, int index) => throw null; public virtual int Count { get => throw null; } + public Queue() => throw null; + public Queue(System.Collections.ICollection col) => throw null; + public Queue(int capacity) => throw null; + public Queue(int capacity, float growFactor) => throw null; public virtual object Dequeue() => throw null; public virtual void Enqueue(object obj) => throw null; public virtual System.Collections.IEnumerator GetEnumerator() => throw null; public virtual bool IsSynchronized { get => throw null; } public virtual object Peek() => throw null; - public Queue() => throw null; - public Queue(System.Collections.ICollection col) => throw null; - public Queue(int capacity) => throw null; - public Queue(int capacity, float growFactor) => throw null; - public virtual object SyncRoot { get => throw null; } public static System.Collections.Queue Synchronized(System.Collections.Queue queue) => throw null; + public virtual object SyncRoot { get => throw null; } public virtual object[] ToArray() => throw null; public virtual void TrimToSize() => throw null; } - public abstract class ReadOnlyCollectionBase : System.Collections.ICollection, System.Collections.IEnumerable { void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public virtual int Count { get => throw null; } + protected ReadOnlyCollectionBase() => throw null; public virtual System.Collections.IEnumerator GetEnumerator() => throw null; protected System.Collections.ArrayList InnerList { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - protected ReadOnlyCollectionBase() => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } } - - public class SortedList : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.ICloneable + public class SortedList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary, System.ICloneable { public virtual void Add(object key, object value) => throw null; - public virtual int Capacity { get => throw null; set => throw null; } + public virtual int Capacity { get => throw null; set { } } public virtual void Clear() => throw null; public virtual object Clone() => throw null; public virtual bool Contains(object key) => throw null; @@ -132,6 +125,12 @@ namespace System public virtual bool ContainsValue(object value) => throw null; public virtual void CopyTo(System.Array array, int arrayIndex) => throw null; public virtual int Count { get => throw null; } + public SortedList() => throw null; + public SortedList(System.Collections.IComparer comparer) => throw null; + public SortedList(System.Collections.IComparer comparer, int capacity) => throw null; + public SortedList(System.Collections.IDictionary d) => throw null; + public SortedList(System.Collections.IDictionary d, System.Collections.IComparer comparer) => throw null; + public SortedList(int initialCapacity) => throw null; public virtual object GetByIndex(int index) => throw null; public virtual System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; @@ -143,23 +142,27 @@ namespace System public virtual bool IsFixedSize { get => throw null; } public virtual bool IsReadOnly { get => throw null; } public virtual bool IsSynchronized { get => throw null; } - public virtual object this[object key] { get => throw null; set => throw null; } public virtual System.Collections.ICollection Keys { get => throw null; } public virtual void Remove(object key) => throw null; public virtual void RemoveAt(int index) => throw null; public virtual void SetByIndex(int index, object value) => throw null; - public SortedList() => throw null; - public SortedList(System.Collections.IComparer comparer) => throw null; - public SortedList(System.Collections.IComparer comparer, int capacity) => throw null; - public SortedList(System.Collections.IDictionary d) => throw null; - public SortedList(System.Collections.IDictionary d, System.Collections.IComparer comparer) => throw null; - public SortedList(int initialCapacity) => throw null; - public virtual object SyncRoot { get => throw null; } public static System.Collections.SortedList Synchronized(System.Collections.SortedList list) => throw null; + public virtual object SyncRoot { get => throw null; } + public virtual object this[object key] { get => throw null; set { } } public virtual void TrimToSize() => throw null; public virtual System.Collections.ICollection Values { get => throw null; } } - + namespace Specialized + { + public class CollectionsUtil + { + public static System.Collections.Hashtable CreateCaseInsensitiveHashtable() => throw null; + public static System.Collections.Hashtable CreateCaseInsensitiveHashtable(System.Collections.IDictionary d) => throw null; + public static System.Collections.Hashtable CreateCaseInsensitiveHashtable(int capacity) => throw null; + public static System.Collections.SortedList CreateCaseInsensitiveSortedList() => throw null; + public CollectionsUtil() => throw null; + } + } public class Stack : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable { public virtual void Clear() => throw null; @@ -167,30 +170,17 @@ namespace System public virtual bool Contains(object obj) => throw null; public virtual void CopyTo(System.Array array, int index) => throw null; public virtual int Count { get => throw null; } + public Stack() => throw null; + public Stack(System.Collections.ICollection col) => throw null; + public Stack(int initialCapacity) => throw null; public virtual System.Collections.IEnumerator GetEnumerator() => throw null; public virtual bool IsSynchronized { get => throw null; } public virtual object Peek() => throw null; public virtual object Pop() => throw null; public virtual void Push(object obj) => throw null; - public Stack() => throw null; - public Stack(System.Collections.ICollection col) => throw null; - public Stack(int initialCapacity) => throw null; - public virtual object SyncRoot { get => throw null; } public static System.Collections.Stack Synchronized(System.Collections.Stack stack) => throw null; + public virtual object SyncRoot { get => throw null; } public virtual object[] ToArray() => throw null; } - - namespace Specialized - { - public class CollectionsUtil - { - public CollectionsUtil() => throw null; - public static System.Collections.Hashtable CreateCaseInsensitiveHashtable() => throw null; - public static System.Collections.Hashtable CreateCaseInsensitiveHashtable(System.Collections.IDictionary d) => throw null; - public static System.Collections.Hashtable CreateCaseInsensitiveHashtable(int capacity) => throw null; - public static System.Collections.SortedList CreateCaseInsensitiveSortedList() => throw null; - } - - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Specialized.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Specialized.cs index 3a63dff333a..eff72319823 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Specialized.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Specialized.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Collections.Specialized, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Collections @@ -9,104 +8,84 @@ namespace System { public struct BitVector32 : System.IEquatable { - public struct Section : System.IEquatable - { - public static bool operator !=(System.Collections.Specialized.BitVector32.Section a, System.Collections.Specialized.BitVector32.Section b) => throw null; - public static bool operator ==(System.Collections.Specialized.BitVector32.Section a, System.Collections.Specialized.BitVector32.Section b) => throw null; - public bool Equals(System.Collections.Specialized.BitVector32.Section obj) => throw null; - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public System.Int16 Mask { get => throw null; } - public System.Int16 Offset { get => throw null; } - // Stub generator skipped constructor - public override string ToString() => throw null; - public static string ToString(System.Collections.Specialized.BitVector32.Section value) => throw null; - } - - - // Stub generator skipped constructor - public BitVector32(System.Collections.Specialized.BitVector32 value) => throw null; - public BitVector32(int data) => throw null; public static int CreateMask() => throw null; public static int CreateMask(int previous) => throw null; - public static System.Collections.Specialized.BitVector32.Section CreateSection(System.Int16 maxValue) => throw null; - public static System.Collections.Specialized.BitVector32.Section CreateSection(System.Int16 maxValue, System.Collections.Specialized.BitVector32.Section previous) => throw null; + public static System.Collections.Specialized.BitVector32.Section CreateSection(short maxValue) => throw null; + public static System.Collections.Specialized.BitVector32.Section CreateSection(short maxValue, System.Collections.Specialized.BitVector32.Section previous) => throw null; + public BitVector32(System.Collections.Specialized.BitVector32 value) => throw null; + public BitVector32(int data) => throw null; public int Data { get => throw null; } public bool Equals(System.Collections.Specialized.BitVector32 other) => throw null; public override bool Equals(object o) => throw null; public override int GetHashCode() => throw null; - public int this[System.Collections.Specialized.BitVector32.Section section] { get => throw null; set => throw null; } - public bool this[int bit] { get => throw null; set => throw null; } + public struct Section : System.IEquatable + { + public bool Equals(System.Collections.Specialized.BitVector32.Section obj) => throw null; + public override bool Equals(object o) => throw null; + public override int GetHashCode() => throw null; + public short Mask { get => throw null; } + public short Offset { get => throw null; } + public static bool operator ==(System.Collections.Specialized.BitVector32.Section a, System.Collections.Specialized.BitVector32.Section b) => throw null; + public static bool operator !=(System.Collections.Specialized.BitVector32.Section a, System.Collections.Specialized.BitVector32.Section b) => throw null; + public override string ToString() => throw null; + public static string ToString(System.Collections.Specialized.BitVector32.Section value) => throw null; + } + public int this[System.Collections.Specialized.BitVector32.Section section] { get => throw null; set { } } + public bool this[int bit] { get => throw null; set { } } public override string ToString() => throw null; public static string ToString(System.Collections.Specialized.BitVector32 value) => throw null; } - - public class HybridDictionary : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable + public class HybridDictionary : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary { public void Add(object key, object value) => throw null; public void Clear() => throw null; public bool Contains(object key) => throw null; public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } - public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public HybridDictionary() => throw null; public HybridDictionary(bool caseInsensitive) => throw null; public HybridDictionary(int initialSize) => throw null; public HybridDictionary(int initialSize, bool caseInsensitive) => throw null; + public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public object this[object key] { get => throw null; set => throw null; } public System.Collections.ICollection Keys { get => throw null; } public void Remove(object key) => throw null; public object SyncRoot { get => throw null; } + public object this[object key] { get => throw null; set { } } public System.Collections.ICollection Values { get => throw null; } } - - public interface IOrderedDictionary : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable + public interface IOrderedDictionary : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary { System.Collections.IDictionaryEnumerator GetEnumerator(); void Insert(int index, object key, object value); - object this[int index] { get; set; } void RemoveAt(int index); + object this[int index] { get; set; } } - - public class ListDictionary : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable + public class ListDictionary : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary { public void Add(object key, object value) => throw null; public void Clear() => throw null; public bool Contains(object key) => throw null; public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public ListDictionary() => throw null; + public ListDictionary(System.Collections.IComparer comparer) => throw null; public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public object this[object key] { get => throw null; set => throw null; } public System.Collections.ICollection Keys { get => throw null; } - public ListDictionary() => throw null; - public ListDictionary(System.Collections.IComparer comparer) => throw null; public void Remove(object key) => throw null; public object SyncRoot { get => throw null; } + public object this[object key] { get => throw null; set { } } public System.Collections.ICollection Values { get => throw null; } } - public abstract class NameObjectCollectionBase : System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { - public class KeysCollection : System.Collections.ICollection, System.Collections.IEnumerable - { - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - public virtual string Get(int index) => throw null; - public System.Collections.IEnumerator GetEnumerator() => throw null; - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public string this[int index] { get => throw null; } - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - protected void BaseAdd(string name, object value) => throw null; protected void BaseClear() => throw null; protected object BaseGet(int index) => throw null; @@ -122,22 +101,31 @@ namespace System protected void BaseSet(string name, object value) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public virtual int Count { get => throw null; } - public virtual System.Collections.IEnumerator GetEnumerator() => throw null; - public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected bool IsReadOnly { get => throw null; set => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public virtual System.Collections.Specialized.NameObjectCollectionBase.KeysCollection Keys { get => throw null; } protected NameObjectCollectionBase() => throw null; protected NameObjectCollectionBase(System.Collections.IEqualityComparer equalityComparer) => throw null; protected NameObjectCollectionBase(System.Collections.IHashCodeProvider hashProvider, System.Collections.IComparer comparer) => throw null; - protected NameObjectCollectionBase(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; protected NameObjectCollectionBase(int capacity) => throw null; protected NameObjectCollectionBase(int capacity, System.Collections.IEqualityComparer equalityComparer) => throw null; protected NameObjectCollectionBase(int capacity, System.Collections.IHashCodeProvider hashProvider, System.Collections.IComparer comparer) => throw null; + protected NameObjectCollectionBase(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public virtual System.Collections.IEnumerator GetEnumerator() => throw null; + public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected bool IsReadOnly { get => throw null; set { } } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + public virtual System.Collections.Specialized.NameObjectCollectionBase.KeysCollection Keys { get => throw null; } + public class KeysCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public virtual string Get(int index) => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.ICollection.SyncRoot { get => throw null; } + public string this[int index] { get => throw null; } + } public virtual void OnDeserialization(object sender) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } } - public class NameValueCollection : System.Collections.Specialized.NameObjectCollectionBase { public void Add(System.Collections.Specialized.NameValueCollection c) => throw null; @@ -145,6 +133,15 @@ namespace System public virtual string[] AllKeys { get => throw null; } public virtual void Clear() => throw null; public void CopyTo(System.Array dest, int index) => throw null; + public NameValueCollection() => throw null; + public NameValueCollection(System.Collections.IEqualityComparer equalityComparer) => throw null; + public NameValueCollection(System.Collections.IHashCodeProvider hashProvider, System.Collections.IComparer comparer) => throw null; + public NameValueCollection(System.Collections.Specialized.NameValueCollection col) => throw null; + public NameValueCollection(int capacity) => throw null; + public NameValueCollection(int capacity, System.Collections.IEqualityComparer equalityComparer) => throw null; + public NameValueCollection(int capacity, System.Collections.IHashCodeProvider hashProvider, System.Collections.IComparer comparer) => throw null; + public NameValueCollection(int capacity, System.Collections.Specialized.NameValueCollection col) => throw null; + protected NameValueCollection(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public virtual string Get(int index) => throw null; public virtual string Get(string name) => throw null; public virtual string GetKey(int index) => throw null; @@ -152,22 +149,12 @@ namespace System public virtual string[] GetValues(string name) => throw null; public bool HasKeys() => throw null; protected void InvalidateCachedArrays() => throw null; - public string this[int index] { get => throw null; } - public string this[string name] { get => throw null; set => throw null; } - public NameValueCollection() => throw null; - public NameValueCollection(System.Collections.IEqualityComparer equalityComparer) => throw null; - public NameValueCollection(System.Collections.IHashCodeProvider hashProvider, System.Collections.IComparer comparer) => throw null; - public NameValueCollection(System.Collections.Specialized.NameValueCollection col) => throw null; - protected NameValueCollection(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public NameValueCollection(int capacity) => throw null; - public NameValueCollection(int capacity, System.Collections.IEqualityComparer equalityComparer) => throw null; - public NameValueCollection(int capacity, System.Collections.IHashCodeProvider hashProvider, System.Collections.IComparer comparer) => throw null; - public NameValueCollection(int capacity, System.Collections.Specialized.NameValueCollection col) => throw null; public virtual void Remove(string name) => throw null; public virtual void Set(string name, string value) => throw null; + public string this[int index] { get => throw null; } + public string this[string name] { get => throw null; set { } } } - - public class OrderedDictionary : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class OrderedDictionary : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { public void Add(object key, object value) => throw null; public System.Collections.Specialized.OrderedDictionary AsReadOnly() => throw null; @@ -175,6 +162,11 @@ namespace System public bool Contains(object key) => throw null; public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public OrderedDictionary() => throw null; + public OrderedDictionary(System.Collections.IEqualityComparer comparer) => throw null; + public OrderedDictionary(int capacity) => throw null; + public OrderedDictionary(int capacity, System.Collections.IEqualityComparer comparer) => throw null; + protected OrderedDictionary(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public virtual System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -182,52 +174,45 @@ namespace System bool System.Collections.IDictionary.IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public object this[int index] { get => throw null; set => throw null; } - public object this[object key] { get => throw null; set => throw null; } public System.Collections.ICollection Keys { get => throw null; } protected virtual void OnDeserialization(object sender) => throw null; void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public OrderedDictionary() => throw null; - public OrderedDictionary(System.Collections.IEqualityComparer comparer) => throw null; - protected OrderedDictionary(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public OrderedDictionary(int capacity) => throw null; - public OrderedDictionary(int capacity, System.Collections.IEqualityComparer comparer) => throw null; public void Remove(object key) => throw null; public void RemoveAt(int index) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public object this[int index] { get => throw null; set { } } + public object this[object key] { get => throw null; set { } } public System.Collections.ICollection Values { get => throw null; } } - public class StringCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { - int System.Collections.IList.Add(object value) => throw null; public int Add(string value) => throw null; + int System.Collections.IList.Add(object value) => throw null; public void AddRange(string[] value) => throw null; public void Clear() => throw null; - bool System.Collections.IList.Contains(object value) => throw null; public bool Contains(string value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + bool System.Collections.IList.Contains(object value) => throw null; public void CopyTo(string[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public StringCollection() => throw null; public System.Collections.Specialized.StringEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; public int IndexOf(string value) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; public void Insert(int index, string value) => throw null; + void System.Collections.IList.Insert(int index, object value) => throw null; bool System.Collections.IList.IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public string this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - void System.Collections.IList.Remove(object value) => throw null; + object System.Collections.IList.this[int index] { get => throw null; set { } } public void Remove(string value) => throw null; + void System.Collections.IList.Remove(object value) => throw null; public void RemoveAt(int index) => throw null; - public StringCollection() => throw null; public object SyncRoot { get => throw null; } + public string this[int index] { get => throw null; set { } } } - public class StringDictionary : System.Collections.IEnumerable { public virtual void Add(string key, string value) => throw null; @@ -236,23 +221,21 @@ namespace System public virtual bool ContainsValue(string value) => throw null; public virtual void CopyTo(System.Array array, int index) => throw null; public virtual int Count { get => throw null; } + public StringDictionary() => throw null; public virtual System.Collections.IEnumerator GetEnumerator() => throw null; public virtual bool IsSynchronized { get => throw null; } - public virtual string this[string key] { get => throw null; set => throw null; } public virtual System.Collections.ICollection Keys { get => throw null; } public virtual void Remove(string key) => throw null; - public StringDictionary() => throw null; public virtual object SyncRoot { get => throw null; } + public virtual string this[string key] { get => throw null; set { } } public virtual System.Collections.ICollection Values { get => throw null; } } - public class StringEnumerator { public string Current { get => throw null; } public bool MoveNext() => throw null; public void Reset() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.cs index 97c54625254..187f7a05739 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.cs @@ -1,47 +1,39 @@ // This file contains auto-generated code. // Generated from `System.Collections, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Collections { - public class BitArray : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable + public sealed class BitArray : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable { public System.Collections.BitArray And(System.Collections.BitArray value) => throw null; - public BitArray(System.Collections.BitArray bits) => throw null; - public BitArray(bool[] values) => throw null; - public BitArray(System.Byte[] bytes) => throw null; - public BitArray(int[] values) => throw null; - public BitArray(int length) => throw null; - public BitArray(int length, bool defaultValue) => throw null; public object Clone() => throw null; public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public BitArray(bool[] values) => throw null; + public BitArray(byte[] bytes) => throw null; + public BitArray(System.Collections.BitArray bits) => throw null; + public BitArray(int length) => throw null; + public BitArray(int length, bool defaultValue) => throw null; + public BitArray(int[] values) => throw null; public bool Get(int index) => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public bool this[int index] { get => throw null; set => throw null; } public System.Collections.BitArray LeftShift(int count) => throw null; - public int Length { get => throw null; set => throw null; } + public int Length { get => throw null; set { } } public System.Collections.BitArray Not() => throw null; public System.Collections.BitArray Or(System.Collections.BitArray value) => throw null; public System.Collections.BitArray RightShift(int count) => throw null; public void Set(int index, bool value) => throw null; public void SetAll(bool value) => throw null; public object SyncRoot { get => throw null; } + public bool this[int index] { get => throw null; set { } } public System.Collections.BitArray Xor(System.Collections.BitArray value) => throw null; } - - public static class StructuralComparisons - { - public static System.Collections.IComparer StructuralComparer { get => throw null; } - public static System.Collections.IEqualityComparer StructuralEqualityComparer { get => throw null; } - } - namespace Generic { - public static class CollectionExtensions + public static partial class CollectionExtensions { public static System.Collections.ObjectModel.ReadOnlyCollection AsReadOnly(this System.Collections.Generic.IList list) => throw null; public static System.Collections.ObjectModel.ReadOnlyDictionary AsReadOnly(this System.Collections.Generic.IDictionary dictionary) => throw null; @@ -50,94 +42,18 @@ namespace System public static bool Remove(this System.Collections.Generic.IDictionary dictionary, TKey key, out TValue value) => throw null; public static bool TryAdd(this System.Collections.Generic.IDictionary dictionary, TKey key, TValue value) => throw null; } - public abstract class Comparer : System.Collections.Generic.IComparer, System.Collections.IComparer { public abstract int Compare(T x, T y); int System.Collections.IComparer.Compare(object x, object y) => throw null; - protected Comparer() => throw null; public static System.Collections.Generic.Comparer Create(System.Comparison comparison) => throw null; + protected Comparer() => throw null; public static System.Collections.Generic.Comparer Default { get => throw null; } } - - public class Dictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class Dictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IDictionaryEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - System.Collections.DictionaryEntry System.Collections.IDictionaryEnumerator.Entry { get => throw null; } - // Stub generator skipped constructor - object System.Collections.IDictionaryEnumerator.Key { get => throw null; } - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - object System.Collections.IDictionaryEnumerator.Value { get => throw null; } - } - - - public class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable - { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public TKey Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - void System.Collections.Generic.ICollection.Add(TKey item) => throw null; - void System.Collections.Generic.ICollection.Clear() => throw null; - bool System.Collections.Generic.ICollection.Contains(TKey item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(TKey[] array, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.Generic.Dictionary.KeyCollection.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public KeyCollection(System.Collections.Generic.Dictionary dictionary) => throw null; - bool System.Collections.Generic.ICollection.Remove(TKey item) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - - public class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable - { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public TValue Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - void System.Collections.Generic.ICollection.Add(TValue item) => throw null; - void System.Collections.Generic.ICollection.Clear() => throw null; - bool System.Collections.Generic.ICollection.Contains(TValue item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(TValue[] array, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.Generic.Dictionary.ValueCollection.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - bool System.Collections.Generic.ICollection.Remove(TValue item) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - public ValueCollection(System.Collections.Generic.Dictionary dictionary) => throw null; - } - - - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public void Add(TKey key, TValue value) => throw null; + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; void System.Collections.IDictionary.Add(object key, object value) => throw null; public void Clear() => throw null; public System.Collections.Generic.IEqualityComparer Comparer { get => throw null; } @@ -145,8 +61,8 @@ namespace System bool System.Collections.IDictionary.Contains(object key) => throw null; public bool ContainsKey(TKey key) => throw null; public bool ContainsValue(TValue value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public Dictionary() => throw null; public Dictionary(System.Collections.Generic.IDictionary dictionary) => throw null; @@ -154,10 +70,21 @@ namespace System public Dictionary(System.Collections.Generic.IEnumerable> collection) => throw null; public Dictionary(System.Collections.Generic.IEnumerable> collection, System.Collections.Generic.IEqualityComparer comparer) => throw null; public Dictionary(System.Collections.Generic.IEqualityComparer comparer) => throw null; - protected Dictionary(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public Dictionary(int capacity) => throw null; public Dictionary(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; + protected Dictionary(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public int EnsureCapacity(int capacity) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable, System.Collections.IDictionaryEnumerator + { + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + System.Collections.DictionaryEntry System.Collections.IDictionaryEnumerator.Entry { get => throw null; } + object System.Collections.IDictionaryEnumerator.Key { get => throw null; } + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + object System.Collections.IDictionaryEnumerator.Value { get => throw null; } + } public System.Collections.Generic.Dictionary.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; @@ -167,51 +94,88 @@ namespace System bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } + public sealed class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + { + void System.Collections.Generic.ICollection.Add(TKey item) => throw null; + void System.Collections.Generic.ICollection.Clear() => throw null; + bool System.Collections.Generic.ICollection.Contains(TKey item) => throw null; + public void CopyTo(TKey[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public KeyCollection(System.Collections.Generic.Dictionary dictionary) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public TKey Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + public System.Collections.Generic.Dictionary.KeyCollection.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + bool System.Collections.Generic.ICollection.Remove(TKey item) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + } public System.Collections.Generic.Dictionary.KeyCollection Keys { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } public virtual void OnDeserialization(object sender) => throw null; - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public bool Remove(TKey key) => throw null; public bool Remove(TKey key, out TValue value) => throw null; + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; void System.Collections.IDictionary.Remove(object key) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public TValue this[TKey key] { get => throw null; set { } } public void TrimExcess() => throw null; public void TrimExcess(int capacity) => throw null; public bool TryAdd(TKey key, TValue value) => throw null; public bool TryGetValue(TKey key, out TValue value) => throw null; - public System.Collections.Generic.Dictionary.ValueCollection Values { get => throw null; } + public sealed class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + { + void System.Collections.Generic.ICollection.Add(TValue item) => throw null; + void System.Collections.Generic.ICollection.Clear() => throw null; + bool System.Collections.Generic.ICollection.Contains(TValue item) => throw null; + public void CopyTo(TValue[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public ValueCollection(System.Collections.Generic.Dictionary dictionary) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public TValue Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + public System.Collections.Generic.Dictionary.ValueCollection.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + bool System.Collections.Generic.ICollection.Remove(TValue item) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } + public System.Collections.Generic.Dictionary.ValueCollection Values { get => throw null; } } - public abstract class EqualityComparer : System.Collections.Generic.IEqualityComparer, System.Collections.IEqualityComparer { - public static System.Collections.Generic.EqualityComparer Default { get => throw null; } protected EqualityComparer() => throw null; + public static System.Collections.Generic.EqualityComparer Default { get => throw null; } public abstract bool Equals(T x, T y); bool System.Collections.IEqualityComparer.Equals(object x, object y) => throw null; public abstract int GetHashCode(T obj); int System.Collections.IEqualityComparer.GetHashCode(object obj) => throw null; } - - public class HashSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlySet, System.Collections.Generic.ISet, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class HashSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.Generic.IReadOnlySet, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public T Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - public bool Add(T item) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; public void Clear() => throw null; @@ -222,19 +186,27 @@ namespace System public void CopyTo(T[] array, int arrayIndex, int count) => throw null; public int Count { get => throw null; } public static System.Collections.Generic.IEqualityComparer> CreateSetComparer() => throw null; + public HashSet() => throw null; + public HashSet(System.Collections.Generic.IEnumerable collection) => throw null; + public HashSet(System.Collections.Generic.IEnumerable collection, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public HashSet(System.Collections.Generic.IEqualityComparer comparer) => throw null; + public HashSet(int capacity) => throw null; + public HashSet(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; + protected HashSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public int EnsureCapacity(int capacity) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public T Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } public void ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; public System.Collections.Generic.HashSet.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public HashSet() => throw null; - public HashSet(System.Collections.Generic.IEnumerable collection) => throw null; - public HashSet(System.Collections.Generic.IEnumerable collection, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public HashSet(System.Collections.Generic.IEqualityComparer comparer) => throw null; - protected HashSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public HashSet(int capacity) => throw null; - public HashSet(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; public void IntersectWith(System.Collections.Generic.IEnumerable other) => throw null; public bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; public bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; @@ -251,22 +223,8 @@ namespace System public bool TryGetValue(T equalValue, out T actualValue) => throw null; public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; } - - public class LinkedList : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class LinkedList : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable - { - public T Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public bool MoveNext() => throw null; - void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - void System.Collections.Generic.ICollection.Add(T value) => throw null; public void AddAfter(System.Collections.Generic.LinkedListNode node, System.Collections.Generic.LinkedListNode newNode) => throw null; public System.Collections.Generic.LinkedListNode AddAfter(System.Collections.Generic.LinkedListNode node, T value) => throw null; @@ -278,9 +236,22 @@ namespace System public System.Collections.Generic.LinkedListNode AddLast(T value) => throw null; public void Clear() => throw null; public bool Contains(T value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(T[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public LinkedList() => throw null; + public LinkedList(System.Collections.Generic.IEnumerable collection) => throw null; + protected LinkedList(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + { + public T Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public bool MoveNext() => throw null; + void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } public System.Collections.Generic.LinkedListNode Find(T value) => throw null; public System.Collections.Generic.LinkedListNode FindLast(T value) => throw null; public System.Collections.Generic.LinkedListNode First { get => throw null; } @@ -291,9 +262,6 @@ namespace System bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } public System.Collections.Generic.LinkedListNode Last { get => throw null; } - public LinkedList() => throw null; - public LinkedList(System.Collections.Generic.IEnumerable collection) => throw null; - protected LinkedList(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public virtual void OnDeserialization(object sender) => throw null; public void Remove(System.Collections.Generic.LinkedListNode node) => throw null; public bool Remove(T value) => throw null; @@ -301,58 +269,56 @@ namespace System public void RemoveLast() => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } } - - public class LinkedListNode + public sealed class LinkedListNode { public LinkedListNode(T value) => throw null; public System.Collections.Generic.LinkedList List { get => throw null; } public System.Collections.Generic.LinkedListNode Next { get => throw null; } public System.Collections.Generic.LinkedListNode Previous { get => throw null; } - public T Value { get => throw null; set => throw null; } + public T Value { get => throw null; set { } } public T ValueRef { get => throw null; } } - - public class List : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + public class List : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList { + public void Add(T item) => throw null; + int System.Collections.IList.Add(object item) => throw null; + public void AddRange(System.Collections.Generic.IEnumerable collection) => throw null; + public System.Collections.ObjectModel.ReadOnlyCollection AsReadOnly() => throw null; + public int BinarySearch(int index, int count, T item, System.Collections.Generic.IComparer comparer) => throw null; + public int BinarySearch(T item) => throw null; + public int BinarySearch(T item, System.Collections.Generic.IComparer comparer) => throw null; + public int Capacity { get => throw null; set { } } + public void Clear() => throw null; + public bool Contains(T item) => throw null; + bool System.Collections.IList.Contains(object item) => throw null; + public System.Collections.Generic.List ConvertAll(System.Converter converter) => throw null; + public void CopyTo(int index, T[] array, int arrayIndex, int count) => throw null; + public void CopyTo(T[] array) => throw null; + public void CopyTo(T[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; + public int Count { get => throw null; } + public List() => throw null; + public List(System.Collections.Generic.IEnumerable collection) => throw null; + public List(int capacity) => throw null; + public int EnsureCapacity(int capacity) => throw null; public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public void Add(T item) => throw null; - int System.Collections.IList.Add(object item) => throw null; - public void AddRange(System.Collections.Generic.IEnumerable collection) => throw null; - public System.Collections.ObjectModel.ReadOnlyCollection AsReadOnly() => throw null; - public int BinarySearch(T item) => throw null; - public int BinarySearch(T item, System.Collections.Generic.IComparer comparer) => throw null; - public int BinarySearch(int index, int count, T item, System.Collections.Generic.IComparer comparer) => throw null; - public int Capacity { get => throw null; set => throw null; } - public void Clear() => throw null; - public bool Contains(T item) => throw null; - bool System.Collections.IList.Contains(object item) => throw null; - public System.Collections.Generic.List ConvertAll(System.Converter converter) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; - public void CopyTo(T[] array) => throw null; - public void CopyTo(T[] array, int arrayIndex) => throw null; - public void CopyTo(int index, T[] array, int arrayIndex, int count) => throw null; - public int Count { get => throw null; } - public int EnsureCapacity(int capacity) => throw null; public bool Exists(System.Predicate match) => throw null; public T Find(System.Predicate match) => throw null; public System.Collections.Generic.List FindAll(System.Predicate match) => throw null; - public int FindIndex(System.Predicate match) => throw null; - public int FindIndex(int startIndex, System.Predicate match) => throw null; public int FindIndex(int startIndex, int count, System.Predicate match) => throw null; + public int FindIndex(int startIndex, System.Predicate match) => throw null; + public int FindIndex(System.Predicate match) => throw null; public T FindLast(System.Predicate match) => throw null; - public int FindLastIndex(System.Predicate match) => throw null; - public int FindLastIndex(int startIndex, System.Predicate match) => throw null; public int FindLastIndex(int startIndex, int count, System.Predicate match) => throw null; + public int FindLastIndex(int startIndex, System.Predicate match) => throw null; + public int FindLastIndex(System.Predicate match) => throw null; public void ForEach(System.Action action) => throw null; public System.Collections.Generic.List.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; @@ -369,14 +335,10 @@ namespace System bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public T this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } public int LastIndexOf(T item) => throw null; public int LastIndexOf(T item, int index) => throw null; public int LastIndexOf(T item, int index, int count) => throw null; - public List() => throw null; - public List(System.Collections.Generic.IEnumerable collection) => throw null; - public List(int capacity) => throw null; public bool Remove(T item) => throw null; void System.Collections.IList.Remove(object item) => throw null; public int RemoveAll(System.Predicate match) => throw null; @@ -385,184 +347,99 @@ namespace System public void Reverse() => throw null; public void Reverse(int index, int count) => throw null; public void Sort() => throw null; - public void Sort(System.Comparison comparison) => throw null; public void Sort(System.Collections.Generic.IComparer comparer) => throw null; + public void Sort(System.Comparison comparison) => throw null; public void Sort(int index, int count, System.Collections.Generic.IComparer comparer) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; set { } } public T[] ToArray() => throw null; public void TrimExcess() => throw null; public bool TrueForAll(System.Predicate match) => throw null; } - public class PriorityQueue { - public class UnorderedItemsCollection : System.Collections.Generic.IEnumerable<(TElement, TPriority)>, System.Collections.Generic.IReadOnlyCollection<(TElement, TPriority)>, System.Collections.ICollection, System.Collections.IEnumerable - { - public struct Enumerator : System.Collections.Generic.IEnumerator<(TElement, TPriority)>, System.Collections.IEnumerator, System.IDisposable - { - public (TElement, TPriority) Current { get => throw null; } - (TElement, TPriority) System.Collections.Generic.IEnumerator<(TElement, TPriority)>.Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.Generic.PriorityQueue.UnorderedItemsCollection.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator<(TElement, TPriority)> System.Collections.Generic.IEnumerable<(TElement, TPriority)>.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - public void Clear() => throw null; public System.Collections.Generic.IComparer Comparer { get => throw null; } public int Count { get => throw null; } + public PriorityQueue() => throw null; + public PriorityQueue(System.Collections.Generic.IComparer comparer) => throw null; + public PriorityQueue(System.Collections.Generic.IEnumerable<(TElement Element, TPriority Priority)> items) => throw null; + public PriorityQueue(System.Collections.Generic.IEnumerable<(TElement Element, TPriority Priority)> items, System.Collections.Generic.IComparer comparer) => throw null; + public PriorityQueue(int initialCapacity) => throw null; + public PriorityQueue(int initialCapacity, System.Collections.Generic.IComparer comparer) => throw null; public TElement Dequeue() => throw null; public void Enqueue(TElement element, TPriority priority) => throw null; public TElement EnqueueDequeue(TElement element, TPriority priority) => throw null; - public void EnqueueRange(System.Collections.Generic.IEnumerable<(TElement, TPriority)> items) => throw null; + public void EnqueueRange(System.Collections.Generic.IEnumerable<(TElement Element, TPriority Priority)> items) => throw null; public void EnqueueRange(System.Collections.Generic.IEnumerable elements, TPriority priority) => throw null; public int EnsureCapacity(int capacity) => throw null; public TElement Peek() => throw null; - public PriorityQueue() => throw null; - public PriorityQueue(System.Collections.Generic.IComparer comparer) => throw null; - public PriorityQueue(System.Collections.Generic.IEnumerable<(TElement, TPriority)> items) => throw null; - public PriorityQueue(System.Collections.Generic.IEnumerable<(TElement, TPriority)> items, System.Collections.Generic.IComparer comparer) => throw null; - public PriorityQueue(int initialCapacity) => throw null; - public PriorityQueue(int initialCapacity, System.Collections.Generic.IComparer comparer) => throw null; public void TrimExcess() => throw null; public bool TryDequeue(out TElement element, out TPriority priority) => throw null; public bool TryPeek(out TElement element, out TPriority priority) => throw null; public System.Collections.Generic.PriorityQueue.UnorderedItemsCollection UnorderedItems { get => throw null; } + public sealed class UnorderedItemsCollection : System.Collections.Generic.IEnumerable<(TElement Element, TPriority Priority)>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection<(TElement Element, TPriority Priority)>, System.Collections.ICollection + { + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public struct Enumerator : System.Collections.Generic.IEnumerator<(TElement Element, TPriority Priority)>, System.Collections.IEnumerator, System.IDisposable + { + (TElement Element, TPriority Priority) System.Collections.Generic.IEnumerator<(TElement Element, TPriority Priority)>.Current { get => throw null; } + public (TElement Element, TPriority Priority) Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + public System.Collections.Generic.PriorityQueue.UnorderedItemsCollection.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator<(TElement Element, TPriority Priority)> System.Collections.Generic.IEnumerable<(TElement Element, TPriority Priority)>.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.ICollection.SyncRoot { get => throw null; } + } } - - public class Queue : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable + public class Queue : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection { + public void Clear() => throw null; + public bool Contains(T item) => throw null; + public void CopyTo(T[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public Queue() => throw null; + public Queue(System.Collections.Generic.IEnumerable collection) => throw null; + public Queue(int capacity) => throw null; + public T Dequeue() => throw null; + public void Enqueue(T item) => throw null; + public int EnsureCapacity(int capacity) => throw null; public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public void Clear() => throw null; - public bool Contains(T item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(T[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public T Dequeue() => throw null; - public void Enqueue(T item) => throw null; - public int EnsureCapacity(int capacity) => throw null; public System.Collections.Generic.Queue.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; bool System.Collections.ICollection.IsSynchronized { get => throw null; } public T Peek() => throw null; - public Queue() => throw null; - public Queue(System.Collections.Generic.IEnumerable collection) => throw null; - public Queue(int capacity) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } public T[] ToArray() => throw null; public void TrimExcess() => throw null; public bool TryDequeue(out T result) => throw null; public bool TryPeek(out T result) => throw null; } - - public class ReferenceEqualityComparer : System.Collections.Generic.IEqualityComparer, System.Collections.IEqualityComparer + public sealed class ReferenceEqualityComparer : System.Collections.Generic.IEqualityComparer, System.Collections.IEqualityComparer { public bool Equals(object x, object y) => throw null; public int GetHashCode(object obj) => throw null; public static System.Collections.Generic.ReferenceEqualityComparer Instance { get => throw null; } } - - public class SortedDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable + public class SortedDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IDictionaryEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - System.Collections.DictionaryEntry System.Collections.IDictionaryEnumerator.Entry { get => throw null; } - // Stub generator skipped constructor - object System.Collections.IDictionaryEnumerator.Key { get => throw null; } - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - object System.Collections.IDictionaryEnumerator.Value { get => throw null; } - } - - - public class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable - { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public TKey Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - void System.Collections.Generic.ICollection.Add(TKey item) => throw null; - void System.Collections.Generic.ICollection.Clear() => throw null; - bool System.Collections.Generic.ICollection.Contains(TKey item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(TKey[] array, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.Generic.SortedDictionary.KeyCollection.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public KeyCollection(System.Collections.Generic.SortedDictionary dictionary) => throw null; - bool System.Collections.Generic.ICollection.Remove(TKey item) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - - public class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable - { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public TValue Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - void System.Collections.Generic.ICollection.Add(TValue item) => throw null; - void System.Collections.Generic.ICollection.Clear() => throw null; - bool System.Collections.Generic.ICollection.Contains(TValue item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(TValue[] array, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.Generic.SortedDictionary.ValueCollection.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - bool System.Collections.Generic.ICollection.Remove(TValue item) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - public ValueCollection(System.Collections.Generic.SortedDictionary dictionary) => throw null; - } - - - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public void Add(TKey key, TValue value) => throw null; + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; void System.Collections.IDictionary.Add(object key, object value) => throw null; public void Clear() => throw null; public System.Collections.Generic.IComparer Comparer { get => throw null; } @@ -570,9 +447,24 @@ namespace System bool System.Collections.IDictionary.Contains(object key) => throw null; public bool ContainsKey(TKey key) => throw null; public bool ContainsValue(TValue value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public SortedDictionary() => throw null; + public SortedDictionary(System.Collections.Generic.IComparer comparer) => throw null; + public SortedDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; + public SortedDictionary(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IComparer comparer) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable, System.Collections.IDictionaryEnumerator + { + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + System.Collections.DictionaryEntry System.Collections.IDictionaryEnumerator.Entry { get => throw null; } + object System.Collections.IDictionaryEnumerator.Key { get => throw null; } + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + object System.Collections.IDictionaryEnumerator.Value { get => throw null; } + } public System.Collections.Generic.SortedDictionary.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; @@ -581,42 +473,93 @@ namespace System bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } + public sealed class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + { + void System.Collections.Generic.ICollection.Add(TKey item) => throw null; + void System.Collections.Generic.ICollection.Clear() => throw null; + bool System.Collections.Generic.ICollection.Contains(TKey item) => throw null; + public void CopyTo(TKey[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public KeyCollection(System.Collections.Generic.SortedDictionary dictionary) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public TKey Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + public System.Collections.Generic.SortedDictionary.KeyCollection.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + bool System.Collections.Generic.ICollection.Remove(TKey item) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + } public System.Collections.Generic.SortedDictionary.KeyCollection Keys { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public bool Remove(TKey key) => throw null; + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; void System.Collections.IDictionary.Remove(object key) => throw null; - public SortedDictionary() => throw null; - public SortedDictionary(System.Collections.Generic.IComparer comparer) => throw null; - public SortedDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; - public SortedDictionary(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IComparer comparer) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public TValue this[TKey key] { get => throw null; set { } } public bool TryGetValue(TKey key, out TValue value) => throw null; - public System.Collections.Generic.SortedDictionary.ValueCollection Values { get => throw null; } + public sealed class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + { + void System.Collections.Generic.ICollection.Add(TValue item) => throw null; + void System.Collections.Generic.ICollection.Clear() => throw null; + bool System.Collections.Generic.ICollection.Contains(TValue item) => throw null; + public void CopyTo(TValue[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public ValueCollection(System.Collections.Generic.SortedDictionary dictionary) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public TValue Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + public System.Collections.Generic.SortedDictionary.ValueCollection.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + bool System.Collections.Generic.ICollection.Remove(TValue item) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } + public System.Collections.Generic.SortedDictionary.ValueCollection Values { get => throw null; } } - - public class SortedList : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable + public class SortedList : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary { - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public void Add(TKey key, TValue value) => throw null; + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; void System.Collections.IDictionary.Add(object key, object value) => throw null; - public int Capacity { get => throw null; set => throw null; } + public int Capacity { get => throw null; set { } } public void Clear() => throw null; public System.Collections.Generic.IComparer Comparer { get => throw null; } bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; bool System.Collections.IDictionary.Contains(object key) => throw null; public bool ContainsKey(TKey key) => throw null; public bool ContainsValue(TValue value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public SortedList() => throw null; + public SortedList(System.Collections.Generic.IComparer comparer) => throw null; + public SortedList(System.Collections.Generic.IDictionary dictionary) => throw null; + public SortedList(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IComparer comparer) => throw null; + public SortedList(int capacity) => throw null; + public SortedList(int capacity, System.Collections.Generic.IComparer comparer) => throw null; public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; @@ -629,59 +572,54 @@ namespace System bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } public System.Collections.Generic.IList Keys { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public bool Remove(TKey key) => throw null; + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; void System.Collections.IDictionary.Remove(object key) => throw null; public void RemoveAt(int index) => throw null; public void SetValueAtIndex(int index, TValue value) => throw null; - public SortedList() => throw null; - public SortedList(System.Collections.Generic.IComparer comparer) => throw null; - public SortedList(System.Collections.Generic.IDictionary dictionary) => throw null; - public SortedList(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IComparer comparer) => throw null; - public SortedList(int capacity) => throw null; - public SortedList(int capacity, System.Collections.Generic.IComparer comparer) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public TValue this[TKey key] { get => throw null; set { } } public void TrimExcess() => throw null; public bool TryGetValue(TKey key, out TValue value) => throw null; - public System.Collections.Generic.IList Values { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } + public System.Collections.Generic.IList Values { get => throw null; } } - - public class SortedSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlySet, System.Collections.Generic.ISet, System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class SortedSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.Generic.IReadOnlySet, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable - { - public T Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public bool MoveNext() => throw null; - void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - public bool Add(T item) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; public virtual void Clear() => throw null; public System.Collections.Generic.IComparer Comparer { get => throw null; } public virtual bool Contains(T item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(T[] array) => throw null; public void CopyTo(T[] array, int index) => throw null; public void CopyTo(T[] array, int index, int count) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public static System.Collections.Generic.IEqualityComparer> CreateSetComparer() => throw null; public static System.Collections.Generic.IEqualityComparer> CreateSetComparer(System.Collections.Generic.IEqualityComparer memberEqualityComparer) => throw null; + public SortedSet() => throw null; + public SortedSet(System.Collections.Generic.IComparer comparer) => throw null; + public SortedSet(System.Collections.Generic.IEnumerable collection) => throw null; + public SortedSet(System.Collections.Generic.IEnumerable collection, System.Collections.Generic.IComparer comparer) => throw null; + protected SortedSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + { + public T Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public bool MoveNext() => throw null; + void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } public void ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; public System.Collections.Generic.SortedSet.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; @@ -705,36 +643,30 @@ namespace System public int RemoveWhere(System.Predicate match) => throw null; public System.Collections.Generic.IEnumerable Reverse() => throw null; public bool SetEquals(System.Collections.Generic.IEnumerable other) => throw null; - public SortedSet() => throw null; - public SortedSet(System.Collections.Generic.IComparer comparer) => throw null; - public SortedSet(System.Collections.Generic.IEnumerable collection) => throw null; - public SortedSet(System.Collections.Generic.IEnumerable collection, System.Collections.Generic.IComparer comparer) => throw null; - protected SortedSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public void SymmetricExceptWith(System.Collections.Generic.IEnumerable other) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } public bool TryGetValue(T equalValue, out T actualValue) => throw null; public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; } - - public class Stack : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable + public class Stack : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection { + public void Clear() => throw null; + public bool Contains(T item) => throw null; + public void CopyTo(T[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; + public int Count { get => throw null; } + public Stack() => throw null; + public Stack(System.Collections.Generic.IEnumerable collection) => throw null; + public Stack(int capacity) => throw null; + public int EnsureCapacity(int capacity) => throw null; public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public void Clear() => throw null; - public bool Contains(T item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; - public void CopyTo(T[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public int EnsureCapacity(int capacity) => throw null; public System.Collections.Generic.Stack.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; @@ -742,16 +674,17 @@ namespace System public T Peek() => throw null; public T Pop() => throw null; public void Push(T item) => throw null; - public Stack() => throw null; - public Stack(System.Collections.Generic.IEnumerable collection) => throw null; - public Stack(int capacity) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } public T[] ToArray() => throw null; public void TrimExcess() => throw null; public bool TryPeek(out T result) => throw null; public bool TryPop(out T result) => throw null; } - + } + public static class StructuralComparisons + { + public static System.Collections.IComparer StructuralComparer { get => throw null; } + public static System.Collections.IEqualityComparer StructuralEqualityComparer { get => throw null; } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Annotations.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Annotations.cs index e9d1bd902c5..d294faed5b1 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Annotations.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Annotations.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.ComponentModel.Annotations, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace ComponentModel @@ -13,18 +12,16 @@ namespace System public AssociatedMetadataTypeTypeDescriptionProvider(System.Type type, System.Type associatedMetadataType) => throw null; public override System.ComponentModel.ICustomTypeDescriptor GetTypeDescriptor(System.Type objectType, object instance) => throw null; } - - public class AssociationAttribute : System.Attribute + public sealed class AssociationAttribute : System.Attribute { public AssociationAttribute(string name, string thisKey, string otherKey) => throw null; - public bool IsForeignKey { get => throw null; set => throw null; } + public bool IsForeignKey { get => throw null; set { } } public string Name { get => throw null; } public string OtherKey { get => throw null; } public System.Collections.Generic.IEnumerable OtherKeyMembers { get => throw null; } public string ThisKey { get => throw null; } public System.Collections.Generic.IEnumerable ThisKeyMembers { get => throw null; } } - public class CompareAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public CompareAttribute(string otherProperty) => throw null; @@ -34,19 +31,16 @@ namespace System public string OtherPropertyDisplayName { get => throw null; } public override bool RequiresValidationContext { get => throw null; } } - - public class ConcurrencyCheckAttribute : System.Attribute + public sealed class ConcurrencyCheckAttribute : System.Attribute { public ConcurrencyCheckAttribute() => throw null; } - - public class CreditCardAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute + public sealed class CreditCardAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { public CreditCardAttribute() : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; public override bool IsValid(object value) => throw null; } - - public class CustomValidationAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute + public sealed class CustomValidationAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public CustomValidationAttribute(System.Type validatorType, string method) => throw null; public override string FormatErrorMessage(string name) => throw null; @@ -54,45 +48,42 @@ namespace System public string Method { get => throw null; } public System.Type ValidatorType { get => throw null; } } - - public enum DataType : int + public enum DataType { - CreditCard = 14, - Currency = 6, Custom = 0, - Date = 2, DateTime = 1, - Duration = 4, - EmailAddress = 10, - Html = 8, - ImageUrl = 13, - MultilineText = 9, - Password = 11, - PhoneNumber = 5, - PostalCode = 15, - Text = 7, + Date = 2, Time = 3, - Upload = 16, + Duration = 4, + PhoneNumber = 5, + Currency = 6, + Text = 7, + Html = 8, + MultilineText = 9, + EmailAddress = 10, + Password = 11, Url = 12, + ImageUrl = 13, + CreditCard = 14, + PostalCode = 15, + Upload = 16, } - public class DataTypeAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { - public string CustomDataType { get => throw null; } - public System.ComponentModel.DataAnnotations.DataType DataType { get => throw null; } public DataTypeAttribute(System.ComponentModel.DataAnnotations.DataType dataType) => throw null; public DataTypeAttribute(string customDataType) => throw null; - public System.ComponentModel.DataAnnotations.DisplayFormatAttribute DisplayFormat { get => throw null; set => throw null; } + public string CustomDataType { get => throw null; } + public System.ComponentModel.DataAnnotations.DataType DataType { get => throw null; } + public System.ComponentModel.DataAnnotations.DisplayFormatAttribute DisplayFormat { get => throw null; set { } } public virtual string GetDataTypeName() => throw null; public override bool IsValid(object value) => throw null; } - - public class DisplayAttribute : System.Attribute + public sealed class DisplayAttribute : System.Attribute { - public bool AutoGenerateField { get => throw null; set => throw null; } - public bool AutoGenerateFilter { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } + public bool AutoGenerateField { get => throw null; set { } } + public bool AutoGenerateFilter { get => throw null; set { } } public DisplayAttribute() => throw null; + public string Description { get => throw null; set { } } public bool? GetAutoGenerateField() => throw null; public bool? GetAutoGenerateFilter() => throw null; public string GetDescription() => throw null; @@ -101,189 +92,216 @@ namespace System public int? GetOrder() => throw null; public string GetPrompt() => throw null; public string GetShortName() => throw null; - public string GroupName { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - public string Prompt { get => throw null; set => throw null; } - public System.Type ResourceType { get => throw null; set => throw null; } - public string ShortName { get => throw null; set => throw null; } + public string GroupName { get => throw null; set { } } + public string Name { get => throw null; set { } } + public int Order { get => throw null; set { } } + public string Prompt { get => throw null; set { } } + public System.Type ResourceType { get => throw null; set { } } + public string ShortName { get => throw null; set { } } } - public class DisplayColumnAttribute : System.Attribute { - public string DisplayColumn { get => throw null; } public DisplayColumnAttribute(string displayColumn) => throw null; public DisplayColumnAttribute(string displayColumn, string sortColumn) => throw null; public DisplayColumnAttribute(string displayColumn, string sortColumn, bool sortDescending) => throw null; + public string DisplayColumn { get => throw null; } public string SortColumn { get => throw null; } public bool SortDescending { get => throw null; } } - public class DisplayFormatAttribute : System.Attribute { - public bool ApplyFormatInEditMode { get => throw null; set => throw null; } - public bool ConvertEmptyStringToNull { get => throw null; set => throw null; } - public string DataFormatString { get => throw null; set => throw null; } + public bool ApplyFormatInEditMode { get => throw null; set { } } + public bool ConvertEmptyStringToNull { get => throw null; set { } } public DisplayFormatAttribute() => throw null; + public string DataFormatString { get => throw null; set { } } public string GetNullDisplayText() => throw null; - public bool HtmlEncode { get => throw null; set => throw null; } - public string NullDisplayText { get => throw null; set => throw null; } - public System.Type NullDisplayTextResourceType { get => throw null; set => throw null; } + public bool HtmlEncode { get => throw null; set { } } + public string NullDisplayText { get => throw null; set { } } + public System.Type NullDisplayTextResourceType { get => throw null; set { } } } - - public class EditableAttribute : System.Attribute + public sealed class EditableAttribute : System.Attribute { public bool AllowEdit { get => throw null; } - public bool AllowInitialValue { get => throw null; set => throw null; } + public bool AllowInitialValue { get => throw null; set { } } public EditableAttribute(bool allowEdit) => throw null; } - - public class EmailAddressAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute + public sealed class EmailAddressAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { public EmailAddressAttribute() : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; public override bool IsValid(object value) => throw null; } - - public class EnumDataTypeAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute + public sealed class EnumDataTypeAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { public EnumDataTypeAttribute(System.Type enumType) : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; public System.Type EnumType { get => throw null; } public override bool IsValid(object value) => throw null; } - - public class FileExtensionsAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute + public sealed class FileExtensionsAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { - public string Extensions { get => throw null; set => throw null; } public FileExtensionsAttribute() : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; + public string Extensions { get => throw null; set { } } public override string FormatErrorMessage(string name) => throw null; public override bool IsValid(object value) => throw null; } - - public class FilterUIHintAttribute : System.Attribute + public sealed class FilterUIHintAttribute : System.Attribute { public System.Collections.Generic.IDictionary ControlParameters { get => throw null; } - public override bool Equals(object obj) => throw null; - public string FilterUIHint { get => throw null; } public FilterUIHintAttribute(string filterUIHint) => throw null; public FilterUIHintAttribute(string filterUIHint, string presentationLayer) => throw null; public FilterUIHintAttribute(string filterUIHint, string presentationLayer, params object[] controlParameters) => throw null; + public override bool Equals(object obj) => throw null; + public string FilterUIHint { get => throw null; } public override int GetHashCode() => throw null; public string PresentationLayer { get => throw null; } } - public interface IValidatableObject { System.Collections.Generic.IEnumerable Validate(System.ComponentModel.DataAnnotations.ValidationContext validationContext); } - - public class KeyAttribute : System.Attribute + public sealed class KeyAttribute : System.Attribute { public KeyAttribute() => throw null; } - public class MaxLengthAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { - public override string FormatErrorMessage(string name) => throw null; - public override bool IsValid(object value) => throw null; - public int Length { get => throw null; } public MaxLengthAttribute() => throw null; public MaxLengthAttribute(int length) => throw null; - } - - public class MetadataTypeAttribute : System.Attribute - { - public System.Type MetadataClassType { get => throw null; } - public MetadataTypeAttribute(System.Type metadataClassType) => throw null; - } - - public class MinLengthAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute - { public override string FormatErrorMessage(string name) => throw null; public override bool IsValid(object value) => throw null; public int Length { get => throw null; } - public MinLengthAttribute(int length) => throw null; } - - public class PhoneAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute + public sealed class MetadataTypeAttribute : System.Attribute { - public override bool IsValid(object value) => throw null; - public PhoneAttribute() : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; + public MetadataTypeAttribute(System.Type metadataClassType) => throw null; + public System.Type MetadataClassType { get => throw null; } + } + public class MinLengthAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute + { + public MinLengthAttribute(int length) => throw null; + public override string FormatErrorMessage(string name) => throw null; + public override bool IsValid(object value) => throw null; + public int Length { get => throw null; } + } + public sealed class PhoneAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute + { + public PhoneAttribute() : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; + public override bool IsValid(object value) => throw null; } - public class RangeAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { - public bool ConvertValueInInvariantCulture { get => throw null; set => throw null; } + public bool ConvertValueInInvariantCulture { get => throw null; set { } } + public RangeAttribute(double minimum, double maximum) => throw null; + public RangeAttribute(int minimum, int maximum) => throw null; + public RangeAttribute(System.Type type, string minimum, string maximum) => throw null; public override string FormatErrorMessage(string name) => throw null; public override bool IsValid(object value) => throw null; public object Maximum { get => throw null; } public object Minimum { get => throw null; } public System.Type OperandType { get => throw null; } - public bool ParseLimitsInInvariantCulture { get => throw null; set => throw null; } - public RangeAttribute(System.Type type, string minimum, string maximum) => throw null; - public RangeAttribute(double minimum, double maximum) => throw null; - public RangeAttribute(int minimum, int maximum) => throw null; + public bool ParseLimitsInInvariantCulture { get => throw null; set { } } } - public class RegularExpressionAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { + public RegularExpressionAttribute(string pattern) => throw null; public override string FormatErrorMessage(string name) => throw null; public override bool IsValid(object value) => throw null; public System.TimeSpan MatchTimeout { get => throw null; } - public int MatchTimeoutInMilliseconds { get => throw null; set => throw null; } + public int MatchTimeoutInMilliseconds { get => throw null; set { } } public string Pattern { get => throw null; } - public RegularExpressionAttribute(string pattern) => throw null; } - public class RequiredAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { - public bool AllowEmptyStrings { get => throw null; set => throw null; } - public override bool IsValid(object value) => throw null; + public bool AllowEmptyStrings { get => throw null; set { } } public RequiredAttribute() => throw null; + public override bool IsValid(object value) => throw null; } - public class ScaffoldColumnAttribute : System.Attribute { - public bool Scaffold { get => throw null; } public ScaffoldColumnAttribute(bool scaffold) => throw null; + public bool Scaffold { get => throw null; } + } + namespace Schema + { + public class ColumnAttribute : System.Attribute + { + public ColumnAttribute() => throw null; + public ColumnAttribute(string name) => throw null; + public string Name { get => throw null; } + public int Order { get => throw null; set { } } + public string TypeName { get => throw null; set { } } + } + public class ComplexTypeAttribute : System.Attribute + { + public ComplexTypeAttribute() => throw null; + } + public class DatabaseGeneratedAttribute : System.Attribute + { + public DatabaseGeneratedAttribute(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption databaseGeneratedOption) => throw null; + public System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption DatabaseGeneratedOption { get => throw null; } + } + public enum DatabaseGeneratedOption + { + None = 0, + Identity = 1, + Computed = 2, + } + public class ForeignKeyAttribute : System.Attribute + { + public ForeignKeyAttribute(string name) => throw null; + public string Name { get => throw null; } + } + public class InversePropertyAttribute : System.Attribute + { + public InversePropertyAttribute(string property) => throw null; + public string Property { get => throw null; } + } + public class NotMappedAttribute : System.Attribute + { + public NotMappedAttribute() => throw null; + } + public class TableAttribute : System.Attribute + { + public TableAttribute(string name) => throw null; + public string Name { get => throw null; } + public string Schema { get => throw null; set { } } + } } - public class StringLengthAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { + public StringLengthAttribute(int maximumLength) => throw null; public override string FormatErrorMessage(string name) => throw null; public override bool IsValid(object value) => throw null; public int MaximumLength { get => throw null; } - public int MinimumLength { get => throw null; set => throw null; } - public StringLengthAttribute(int maximumLength) => throw null; + public int MinimumLength { get => throw null; set { } } } - - public class TimestampAttribute : System.Attribute + public sealed class TimestampAttribute : System.Attribute { public TimestampAttribute() => throw null; } - public class UIHintAttribute : System.Attribute { public System.Collections.Generic.IDictionary ControlParameters { get => throw null; } + public UIHintAttribute(string uiHint) => throw null; + public UIHintAttribute(string uiHint, string presentationLayer) => throw null; + public UIHintAttribute(string uiHint, string presentationLayer, params object[] controlParameters) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string PresentationLayer { get => throw null; } public string UIHint { get => throw null; } - public UIHintAttribute(string uiHint) => throw null; - public UIHintAttribute(string uiHint, string presentationLayer) => throw null; - public UIHintAttribute(string uiHint, string presentationLayer, params object[] controlParameters) => throw null; } - - public class UrlAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute + public sealed class UrlAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { - public override bool IsValid(object value) => throw null; public UrlAttribute() : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; + public override bool IsValid(object value) => throw null; } - public abstract class ValidationAttribute : System.Attribute { - public string ErrorMessage { get => throw null; set => throw null; } - public string ErrorMessageResourceName { get => throw null; set => throw null; } - public System.Type ErrorMessageResourceType { get => throw null; set => throw null; } + protected ValidationAttribute() => throw null; + protected ValidationAttribute(System.Func errorMessageAccessor) => throw null; + protected ValidationAttribute(string errorMessage) => throw null; + public string ErrorMessage { get => throw null; set { } } + public string ErrorMessageResourceName { get => throw null; set { } } + public System.Type ErrorMessageResourceType { get => throw null; set { } } protected string ErrorMessageString { get => throw null; } public virtual string FormatErrorMessage(string name) => throw null; public System.ComponentModel.DataAnnotations.ValidationResult GetValidationResult(object value, System.ComponentModel.DataAnnotations.ValidationContext validationContext) => throw null; @@ -292,49 +310,42 @@ namespace System public virtual bool RequiresValidationContext { get => throw null; } public void Validate(object value, System.ComponentModel.DataAnnotations.ValidationContext validationContext) => throw null; public void Validate(object value, string name) => throw null; - protected ValidationAttribute() => throw null; - protected ValidationAttribute(System.Func errorMessageAccessor) => throw null; - protected ValidationAttribute(string errorMessage) => throw null; } - - public class ValidationContext : System.IServiceProvider + public sealed class ValidationContext : System.IServiceProvider { - public string DisplayName { get => throw null; set => throw null; } - public object GetService(System.Type serviceType) => throw null; - public void InitializeServiceProvider(System.Func serviceProvider) => throw null; - public System.Collections.Generic.IDictionary Items { get => throw null; } - public string MemberName { get => throw null; set => throw null; } - public object ObjectInstance { get => throw null; } - public System.Type ObjectType { get => throw null; } public ValidationContext(object instance) => throw null; public ValidationContext(object instance, System.Collections.Generic.IDictionary items) => throw null; public ValidationContext(object instance, System.IServiceProvider serviceProvider, System.Collections.Generic.IDictionary items) => throw null; + public string DisplayName { get => throw null; set { } } + public object GetService(System.Type serviceType) => throw null; + public void InitializeServiceProvider(System.Func serviceProvider) => throw null; + public System.Collections.Generic.IDictionary Items { get => throw null; } + public string MemberName { get => throw null; set { } } + public object ObjectInstance { get => throw null; } + public System.Type ObjectType { get => throw null; } } - public class ValidationException : System.Exception { - public System.ComponentModel.DataAnnotations.ValidationAttribute ValidationAttribute { get => throw null; } public ValidationException() => throw null; - protected ValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public ValidationException(System.ComponentModel.DataAnnotations.ValidationResult validationResult, System.ComponentModel.DataAnnotations.ValidationAttribute validatingAttribute, object value) => throw null; + protected ValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public ValidationException(string message) => throw null; - public ValidationException(string message, System.Exception innerException) => throw null; public ValidationException(string errorMessage, System.ComponentModel.DataAnnotations.ValidationAttribute validatingAttribute, object value) => throw null; + public ValidationException(string message, System.Exception innerException) => throw null; + public System.ComponentModel.DataAnnotations.ValidationAttribute ValidationAttribute { get => throw null; } public System.ComponentModel.DataAnnotations.ValidationResult ValidationResult { get => throw null; } public object Value { get => throw null; } } - public class ValidationResult { - public string ErrorMessage { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable MemberNames { get => throw null; } - public static System.ComponentModel.DataAnnotations.ValidationResult Success; - public override string ToString() => throw null; protected ValidationResult(System.ComponentModel.DataAnnotations.ValidationResult validationResult) => throw null; public ValidationResult(string errorMessage) => throw null; public ValidationResult(string errorMessage, System.Collections.Generic.IEnumerable memberNames) => throw null; + public string ErrorMessage { get => throw null; set { } } + public System.Collections.Generic.IEnumerable MemberNames { get => throw null; } + public static System.ComponentModel.DataAnnotations.ValidationResult Success; + public override string ToString() => throw null; } - public static class Validator { public static bool TryValidateObject(object instance, System.ComponentModel.DataAnnotations.ValidationContext validationContext, System.Collections.Generic.ICollection validationResults) => throw null; @@ -346,61 +357,6 @@ namespace System public static void ValidateProperty(object value, System.ComponentModel.DataAnnotations.ValidationContext validationContext) => throw null; public static void ValidateValue(object value, System.ComponentModel.DataAnnotations.ValidationContext validationContext, System.Collections.Generic.IEnumerable validationAttributes) => throw null; } - - namespace Schema - { - public class ColumnAttribute : System.Attribute - { - public ColumnAttribute() => throw null; - public ColumnAttribute(string name) => throw null; - public string Name { get => throw null; } - public int Order { get => throw null; set => throw null; } - public string TypeName { get => throw null; set => throw null; } - } - - public class ComplexTypeAttribute : System.Attribute - { - public ComplexTypeAttribute() => throw null; - } - - public class DatabaseGeneratedAttribute : System.Attribute - { - public DatabaseGeneratedAttribute(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption databaseGeneratedOption) => throw null; - public System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption DatabaseGeneratedOption { get => throw null; } - } - - public enum DatabaseGeneratedOption : int - { - Computed = 2, - Identity = 1, - None = 0, - } - - public class ForeignKeyAttribute : System.Attribute - { - public ForeignKeyAttribute(string name) => throw null; - public string Name { get => throw null; } - } - - public class InversePropertyAttribute : System.Attribute - { - public InversePropertyAttribute(string property) => throw null; - public string Property { get => throw null; } - } - - public class NotMappedAttribute : System.Attribute - { - public NotMappedAttribute() => throw null; - } - - public class TableAttribute : System.Attribute - { - public string Name { get => throw null; } - public string Schema { get => throw null; set => throw null; } - public TableAttribute(string name) => throw null; - } - - } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs new file mode 100644 index 00000000000..11c944b602b --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.EventBasedAsync.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.EventBasedAsync.cs index a1532ad632c..6baaea7207e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.EventBasedAsync.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.EventBasedAsync.cs @@ -1,84 +1,71 @@ // This file contains auto-generated code. // Generated from `System.ComponentModel.EventBasedAsync, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace ComponentModel { public class AsyncCompletedEventArgs : System.EventArgs { - public AsyncCompletedEventArgs(System.Exception error, bool cancelled, object userState) => throw null; public bool Cancelled { get => throw null; } + public AsyncCompletedEventArgs(System.Exception error, bool cancelled, object userState) => throw null; public System.Exception Error { get => throw null; } protected void RaiseExceptionIfNecessary() => throw null; public object UserState { get => throw null; } } - public delegate void AsyncCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - - public class AsyncOperation + public sealed class AsyncOperation { public void OperationCompleted() => throw null; public void Post(System.Threading.SendOrPostCallback d, object arg) => throw null; public void PostOperationCompleted(System.Threading.SendOrPostCallback d, object arg) => throw null; public System.Threading.SynchronizationContext SynchronizationContext { get => throw null; } public object UserSuppliedState { get => throw null; } - // ERR: Stub generator didn't handle member: ~AsyncOperation } - public static class AsyncOperationManager { public static System.ComponentModel.AsyncOperation CreateOperation(object userSuppliedState) => throw null; - public static System.Threading.SynchronizationContext SynchronizationContext { get => throw null; set => throw null; } + public static System.Threading.SynchronizationContext SynchronizationContext { get => throw null; set { } } } - public class BackgroundWorker : System.ComponentModel.Component { - public BackgroundWorker() => throw null; public void CancelAsync() => throw null; public bool CancellationPending { get => throw null; } + public BackgroundWorker() => throw null; protected override void Dispose(bool disposing) => throw null; - public event System.ComponentModel.DoWorkEventHandler DoWork; + public event System.ComponentModel.DoWorkEventHandler DoWork { add { } remove { } } public bool IsBusy { get => throw null; } protected virtual void OnDoWork(System.ComponentModel.DoWorkEventArgs e) => throw null; protected virtual void OnProgressChanged(System.ComponentModel.ProgressChangedEventArgs e) => throw null; protected virtual void OnRunWorkerCompleted(System.ComponentModel.RunWorkerCompletedEventArgs e) => throw null; - public event System.ComponentModel.ProgressChangedEventHandler ProgressChanged; + public event System.ComponentModel.ProgressChangedEventHandler ProgressChanged { add { } remove { } } public void ReportProgress(int percentProgress) => throw null; public void ReportProgress(int percentProgress, object userState) => throw null; public void RunWorkerAsync() => throw null; public void RunWorkerAsync(object argument) => throw null; - public event System.ComponentModel.RunWorkerCompletedEventHandler RunWorkerCompleted; - public bool WorkerReportsProgress { get => throw null; set => throw null; } - public bool WorkerSupportsCancellation { get => throw null; set => throw null; } + public event System.ComponentModel.RunWorkerCompletedEventHandler RunWorkerCompleted { add { } remove { } } + public bool WorkerReportsProgress { get => throw null; set { } } + public bool WorkerSupportsCancellation { get => throw null; set { } } } - public class DoWorkEventArgs : System.ComponentModel.CancelEventArgs { public object Argument { get => throw null; } public DoWorkEventArgs(object argument) => throw null; - public object Result { get => throw null; set => throw null; } + public object Result { get => throw null; set { } } } - public delegate void DoWorkEventHandler(object sender, System.ComponentModel.DoWorkEventArgs e); - public class ProgressChangedEventArgs : System.EventArgs { public ProgressChangedEventArgs(int progressPercentage, object userState) => throw null; public int ProgressPercentage { get => throw null; } public object UserState { get => throw null; } } - public delegate void ProgressChangedEventHandler(object sender, System.ComponentModel.ProgressChangedEventArgs e); - public class RunWorkerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - public object Result { get => throw null; } public RunWorkerCompletedEventArgs(object result, System.Exception error, bool cancelled) : base(default(System.Exception), default(bool), default(object)) => throw null; + public object Result { get => throw null; } public object UserState { get => throw null; } } - public delegate void RunWorkerCompletedEventHandler(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e); - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs index be80b38c754..b4c6afc5d77 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs @@ -1,11 +1,10 @@ // This file contains auto-generated code. // Generated from `System.ComponentModel.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace ComponentModel { - public class BrowsableAttribute : System.Attribute + public sealed class BrowsableAttribute : System.Attribute { public bool Browsable { get => throw null; } public BrowsableAttribute(bool browsable) => throw null; @@ -16,7 +15,6 @@ namespace System public static System.ComponentModel.BrowsableAttribute No; public static System.ComponentModel.BrowsableAttribute Yes; } - public class CategoryAttribute : System.Attribute { public static System.ComponentModel.CategoryAttribute Action { get => throw null; } @@ -41,76 +39,73 @@ namespace System public static System.ComponentModel.CategoryAttribute Mouse { get => throw null; } public static System.ComponentModel.CategoryAttribute WindowStyle { get => throw null; } } - public class Component : System.MarshalByRefObject, System.ComponentModel.IComponent, System.IDisposable { protected virtual bool CanRaiseEvents { get => throw null; } - public Component() => throw null; public System.ComponentModel.IContainer Container { get => throw null; } + public Component() => throw null; protected bool DesignMode { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public event System.EventHandler Disposed; + public event System.EventHandler Disposed { add { } remove { } } protected System.ComponentModel.EventHandlerList Events { get => throw null; } protected virtual object GetService(System.Type service) => throw null; - public virtual System.ComponentModel.ISite Site { get => throw null; set => throw null; } + public virtual System.ComponentModel.ISite Site { get => throw null; set { } } public override string ToString() => throw null; - // ERR: Stub generator didn't handle member: ~Component } - public class ComponentCollection : System.Collections.ReadOnlyCollectionBase { - public ComponentCollection(System.ComponentModel.IComponent[] components) => throw null; public void CopyTo(System.ComponentModel.IComponent[] array, int index) => throw null; + public ComponentCollection(System.ComponentModel.IComponent[] components) => throw null; public virtual System.ComponentModel.IComponent this[int index] { get => throw null; } public virtual System.ComponentModel.IComponent this[string name] { get => throw null; } } - public class DescriptionAttribute : System.Attribute { - public static System.ComponentModel.DescriptionAttribute Default; - public virtual string Description { get => throw null; } public DescriptionAttribute() => throw null; public DescriptionAttribute(string description) => throw null; - protected string DescriptionValue { get => throw null; set => throw null; } + public static System.ComponentModel.DescriptionAttribute Default; + public virtual string Description { get => throw null; } + protected string DescriptionValue { get => throw null; set { } } public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; } - - public class DesignOnlyAttribute : System.Attribute + namespace Design { - public static System.ComponentModel.DesignOnlyAttribute Default; - public DesignOnlyAttribute(bool isDesignOnly) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public override bool IsDefaultAttribute() => throw null; - public bool IsDesignOnly { get => throw null; } - public static System.ComponentModel.DesignOnlyAttribute No; - public static System.ComponentModel.DesignOnlyAttribute Yes; + namespace Serialization + { + public sealed class DesignerSerializerAttribute : System.Attribute + { + public DesignerSerializerAttribute(string serializerTypeName, string baseSerializerTypeName) => throw null; + public DesignerSerializerAttribute(string serializerTypeName, System.Type baseSerializerType) => throw null; + public DesignerSerializerAttribute(System.Type serializerType, System.Type baseSerializerType) => throw null; + public string SerializerBaseTypeName { get => throw null; } + public string SerializerTypeName { get => throw null; } + public override object TypeId { get => throw null; } + } + } } - - public class DesignerAttribute : System.Attribute + public sealed class DesignerAttribute : System.Attribute { + public DesignerAttribute(string designerTypeName) => throw null; + public DesignerAttribute(string designerTypeName, string designerBaseTypeName) => throw null; + public DesignerAttribute(string designerTypeName, System.Type designerBaseType) => throw null; public DesignerAttribute(System.Type designerType) => throw null; public DesignerAttribute(System.Type designerType, System.Type designerBaseType) => throw null; - public DesignerAttribute(string designerTypeName) => throw null; - public DesignerAttribute(string designerTypeName, System.Type designerBaseType) => throw null; - public DesignerAttribute(string designerTypeName, string designerBaseTypeName) => throw null; public string DesignerBaseTypeName { get => throw null; } public string DesignerTypeName { get => throw null; } public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override object TypeId { get => throw null; } } - - public class DesignerCategoryAttribute : System.Attribute + public sealed class DesignerCategoryAttribute : System.Attribute { public string Category { get => throw null; } public static System.ComponentModel.DesignerCategoryAttribute Component; - public static System.ComponentModel.DesignerCategoryAttribute Default; public DesignerCategoryAttribute() => throw null; public DesignerCategoryAttribute(string category) => throw null; + public static System.ComponentModel.DesignerCategoryAttribute Default; public override bool Equals(object obj) => throw null; public static System.ComponentModel.DesignerCategoryAttribute Form; public static System.ComponentModel.DesignerCategoryAttribute Generic; @@ -118,19 +113,17 @@ namespace System public override bool IsDefaultAttribute() => throw null; public override object TypeId { get => throw null; } } - - public enum DesignerSerializationVisibility : int + public enum DesignerSerializationVisibility { - Content = 2, Hidden = 0, Visible = 1, + Content = 2, } - - public class DesignerSerializationVisibilityAttribute : System.Attribute + public sealed class DesignerSerializationVisibilityAttribute : System.Attribute { public static System.ComponentModel.DesignerSerializationVisibilityAttribute Content; - public static System.ComponentModel.DesignerSerializationVisibilityAttribute Default; public DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility visibility) => throw null; + public static System.ComponentModel.DesignerSerializationVisibilityAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static System.ComponentModel.DesignerSerializationVisibilityAttribute Hidden; @@ -138,48 +131,54 @@ namespace System public System.ComponentModel.DesignerSerializationVisibility Visibility { get => throw null; } public static System.ComponentModel.DesignerSerializationVisibilityAttribute Visible; } - + public sealed class DesignOnlyAttribute : System.Attribute + { + public DesignOnlyAttribute(bool isDesignOnly) => throw null; + public static System.ComponentModel.DesignOnlyAttribute Default; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public override bool IsDefaultAttribute() => throw null; + public bool IsDesignOnly { get => throw null; } + public static System.ComponentModel.DesignOnlyAttribute No; + public static System.ComponentModel.DesignOnlyAttribute Yes; + } public class DisplayNameAttribute : System.Attribute { - public static System.ComponentModel.DisplayNameAttribute Default; - public virtual string DisplayName { get => throw null; } public DisplayNameAttribute() => throw null; public DisplayNameAttribute(string displayName) => throw null; - protected string DisplayNameValue { get => throw null; set => throw null; } + public static System.ComponentModel.DisplayNameAttribute Default; + public virtual string DisplayName { get => throw null; } + protected string DisplayNameValue { get => throw null; set { } } public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; } - - public class EditorAttribute : System.Attribute + public sealed class EditorAttribute : System.Attribute { public EditorAttribute() => throw null; - public EditorAttribute(System.Type type, System.Type baseType) => throw null; - public EditorAttribute(string typeName, System.Type baseType) => throw null; public EditorAttribute(string typeName, string baseTypeName) => throw null; + public EditorAttribute(string typeName, System.Type baseType) => throw null; + public EditorAttribute(System.Type type, System.Type baseType) => throw null; public string EditorBaseTypeName { get => throw null; } public string EditorTypeName { get => throw null; } public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override object TypeId { get => throw null; } } - - public class EventHandlerList : System.IDisposable + public sealed class EventHandlerList : System.IDisposable { public void AddHandler(object key, System.Delegate value) => throw null; public void AddHandlers(System.ComponentModel.EventHandlerList listToAddFrom) => throw null; - public void Dispose() => throw null; public EventHandlerList() => throw null; - public System.Delegate this[object key] { get => throw null; set => throw null; } + public void Dispose() => throw null; public void RemoveHandler(object key, System.Delegate value) => throw null; + public System.Delegate this[object key] { get => throw null; set { } } } - public interface IComponent : System.IDisposable { - event System.EventHandler Disposed; + event System.EventHandler Disposed { add { } remove { } } System.ComponentModel.ISite Site { get; set; } } - public interface IContainer : System.IDisposable { void Add(System.ComponentModel.IComponent component); @@ -187,47 +186,22 @@ namespace System System.ComponentModel.ComponentCollection Components { get; } void Remove(System.ComponentModel.IComponent component); } - - public interface ISite : System.IServiceProvider - { - System.ComponentModel.IComponent Component { get; } - System.ComponentModel.IContainer Container { get; } - bool DesignMode { get; } - string Name { get; set; } - } - - public interface ISupportInitialize - { - void BeginInit(); - void EndInit(); - } - - public interface ISynchronizeInvoke - { - System.IAsyncResult BeginInvoke(System.Delegate method, object[] args); - object EndInvoke(System.IAsyncResult result); - object Invoke(System.Delegate method, object[] args); - bool InvokeRequired { get; } - } - - public class ImmutableObjectAttribute : System.Attribute + public sealed class ImmutableObjectAttribute : System.Attribute { + public ImmutableObjectAttribute(bool immutable) => throw null; public static System.ComponentModel.ImmutableObjectAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public bool Immutable { get => throw null; } - public ImmutableObjectAttribute(bool immutable) => throw null; public override bool IsDefaultAttribute() => throw null; public static System.ComponentModel.ImmutableObjectAttribute No; public static System.ComponentModel.ImmutableObjectAttribute Yes; } - - public class InitializationEventAttribute : System.Attribute + public sealed class InitializationEventAttribute : System.Attribute { - public string EventName { get => throw null; } public InitializationEventAttribute(string eventName) => throw null; + public string EventName { get => throw null; } } - public class InvalidAsynchronousStateException : System.ArgumentException { public InvalidAsynchronousStateException() => throw null; @@ -235,7 +209,6 @@ namespace System public InvalidAsynchronousStateException(string message) => throw null; public InvalidAsynchronousStateException(string message, System.Exception innerException) => throw null; } - public class InvalidEnumArgumentException : System.ArgumentException { public InvalidEnumArgumentException() => throw null; @@ -244,100 +217,95 @@ namespace System public InvalidEnumArgumentException(string message, System.Exception innerException) => throw null; public InvalidEnumArgumentException(string argumentName, int invalidValue, System.Type enumClass) => throw null; } - - public class LocalizableAttribute : System.Attribute + public interface ISite : System.IServiceProvider { + System.ComponentModel.IComponent Component { get; } + System.ComponentModel.IContainer Container { get; } + bool DesignMode { get; } + string Name { get; set; } + } + public interface ISupportInitialize + { + void BeginInit(); + void EndInit(); + } + public interface ISynchronizeInvoke + { + System.IAsyncResult BeginInvoke(System.Delegate method, object[] args); + object EndInvoke(System.IAsyncResult result); + object Invoke(System.Delegate method, object[] args); + bool InvokeRequired { get; } + } + public sealed class LocalizableAttribute : System.Attribute + { + public LocalizableAttribute(bool isLocalizable) => throw null; public static System.ComponentModel.LocalizableAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public bool IsLocalizable { get => throw null; } - public LocalizableAttribute(bool isLocalizable) => throw null; public static System.ComponentModel.LocalizableAttribute No; public static System.ComponentModel.LocalizableAttribute Yes; } - - public class MergablePropertyAttribute : System.Attribute + public sealed class MergablePropertyAttribute : System.Attribute { public bool AllowMerge { get => throw null; } + public MergablePropertyAttribute(bool allowMerge) => throw null; public static System.ComponentModel.MergablePropertyAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; - public MergablePropertyAttribute(bool allowMerge) => throw null; public static System.ComponentModel.MergablePropertyAttribute No; public static System.ComponentModel.MergablePropertyAttribute Yes; } - - public class NotifyParentPropertyAttribute : System.Attribute + public sealed class NotifyParentPropertyAttribute : System.Attribute { + public NotifyParentPropertyAttribute(bool notifyParent) => throw null; public static System.ComponentModel.NotifyParentPropertyAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public static System.ComponentModel.NotifyParentPropertyAttribute No; public bool NotifyParent { get => throw null; } - public NotifyParentPropertyAttribute(bool notifyParent) => throw null; public static System.ComponentModel.NotifyParentPropertyAttribute Yes; } - - public class ParenthesizePropertyNameAttribute : System.Attribute + public sealed class ParenthesizePropertyNameAttribute : System.Attribute { + public ParenthesizePropertyNameAttribute() => throw null; + public ParenthesizePropertyNameAttribute(bool needParenthesis) => throw null; public static System.ComponentModel.ParenthesizePropertyNameAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public bool NeedParenthesis { get => throw null; } - public ParenthesizePropertyNameAttribute() => throw null; - public ParenthesizePropertyNameAttribute(bool needParenthesis) => throw null; } - - public class ReadOnlyAttribute : System.Attribute + public sealed class ReadOnlyAttribute : System.Attribute { + public ReadOnlyAttribute(bool isReadOnly) => throw null; public static System.ComponentModel.ReadOnlyAttribute Default; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public bool IsReadOnly { get => throw null; } public static System.ComponentModel.ReadOnlyAttribute No; - public ReadOnlyAttribute(bool isReadOnly) => throw null; public static System.ComponentModel.ReadOnlyAttribute Yes; } - - public enum RefreshProperties : int + public enum RefreshProperties { - All = 1, None = 0, + All = 1, Repaint = 2, } - - public class RefreshPropertiesAttribute : System.Attribute + public sealed class RefreshPropertiesAttribute : System.Attribute { public static System.ComponentModel.RefreshPropertiesAttribute All; + public RefreshPropertiesAttribute(System.ComponentModel.RefreshProperties refresh) => throw null; public static System.ComponentModel.RefreshPropertiesAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public System.ComponentModel.RefreshProperties RefreshProperties { get => throw null; } - public RefreshPropertiesAttribute(System.ComponentModel.RefreshProperties refresh) => throw null; public static System.ComponentModel.RefreshPropertiesAttribute Repaint; } - - namespace Design - { - namespace Serialization - { - public class DesignerSerializerAttribute : System.Attribute - { - public DesignerSerializerAttribute(System.Type serializerType, System.Type baseSerializerType) => throw null; - public DesignerSerializerAttribute(string serializerTypeName, System.Type baseSerializerType) => throw null; - public DesignerSerializerAttribute(string serializerTypeName, string baseSerializerTypeName) => throw null; - public string SerializerBaseTypeName { get => throw null; } - public string SerializerTypeName { get => throw null; } - public override object TypeId { get => throw null; } - } - - } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs index 6fcf33bc6ae..1b31b88cd97 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs @@ -1,103 +1,84 @@ // This file contains auto-generated code. // Generated from `System.ComponentModel.TypeConverter, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { - public class UriTypeConverter : System.ComponentModel.TypeConverter - { - public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public override bool IsValid(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; - public UriTypeConverter() => throw null; - } - namespace ComponentModel { public class AddingNewEventArgs : System.EventArgs { public AddingNewEventArgs() => throw null; public AddingNewEventArgs(object newObject) => throw null; - public object NewObject { get => throw null; set => throw null; } + public object NewObject { get => throw null; set { } } } - public delegate void AddingNewEventHandler(object sender, System.ComponentModel.AddingNewEventArgs e); - - public class AmbientValueAttribute : System.Attribute + public sealed class AmbientValueAttribute : System.Attribute { - public AmbientValueAttribute(System.Type type, string value) => throw null; public AmbientValueAttribute(bool value) => throw null; - public AmbientValueAttribute(System.Byte value) => throw null; - public AmbientValueAttribute(System.Char value) => throw null; + public AmbientValueAttribute(byte value) => throw null; + public AmbientValueAttribute(char value) => throw null; public AmbientValueAttribute(double value) => throw null; - public AmbientValueAttribute(float value) => throw null; + public AmbientValueAttribute(short value) => throw null; public AmbientValueAttribute(int value) => throw null; - public AmbientValueAttribute(System.Int64 value) => throw null; + public AmbientValueAttribute(long value) => throw null; public AmbientValueAttribute(object value) => throw null; - public AmbientValueAttribute(System.Int16 value) => throw null; + public AmbientValueAttribute(float value) => throw null; public AmbientValueAttribute(string value) => throw null; + public AmbientValueAttribute(System.Type type, string value) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public object Value { get => throw null; } } - public class ArrayConverter : System.ComponentModel.CollectionConverter { - public ArrayConverter() => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public ArrayConverter() => throw null; public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - public class AttributeCollection : System.Collections.ICollection, System.Collections.IEnumerable { - protected AttributeCollection() => throw null; - public AttributeCollection(params System.Attribute[] attributes) => throw null; protected virtual System.Attribute[] Attributes { get => throw null; } public bool Contains(System.Attribute attribute) => throw null; public bool Contains(System.Attribute[] attributes) => throw null; public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } int System.Collections.ICollection.Count { get => throw null; } + protected AttributeCollection() => throw null; + public AttributeCollection(params System.Attribute[] attributes) => throw null; public static System.ComponentModel.AttributeCollection Empty; public static System.ComponentModel.AttributeCollection FromExisting(System.ComponentModel.AttributeCollection existing, params System.Attribute[] newAttributes) => throw null; protected System.Attribute GetDefaultAttribute(System.Type attributeType) => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public virtual System.Attribute this[System.Type attributeType] { get => throw null; } - public virtual System.Attribute this[int index] { get => throw null; } public bool Matches(System.Attribute attribute) => throw null; public bool Matches(System.Attribute[] attributes) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public virtual System.Attribute this[int index] { get => throw null; } + public virtual System.Attribute this[System.Type attributeType] { get => throw null; } } - public class AttributeProviderAttribute : System.Attribute { - public AttributeProviderAttribute(System.Type type) => throw null; public AttributeProviderAttribute(string typeName) => throw null; public AttributeProviderAttribute(string typeName, string propertyName) => throw null; + public AttributeProviderAttribute(System.Type type) => throw null; public string PropertyName { get => throw null; } public string TypeName { get => throw null; } } - public abstract class BaseNumberConverter : System.ComponentModel.TypeConverter { - internal BaseNumberConverter() => throw null; public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; } - - public class BindableAttribute : System.Attribute + public sealed class BindableAttribute : System.Attribute { public bool Bindable { get => throw null; } - public BindableAttribute(System.ComponentModel.BindableSupport flags) => throw null; - public BindableAttribute(System.ComponentModel.BindableSupport flags, System.ComponentModel.BindingDirection direction) => throw null; public BindableAttribute(bool bindable) => throw null; public BindableAttribute(bool bindable, System.ComponentModel.BindingDirection direction) => throw null; + public BindableAttribute(System.ComponentModel.BindableSupport flags) => throw null; + public BindableAttribute(System.ComponentModel.BindableSupport flags, System.ComponentModel.BindingDirection direction) => throw null; public static System.ComponentModel.BindableAttribute Default; public System.ComponentModel.BindingDirection Direction { get => throw null; } public override bool Equals(object obj) => throw null; @@ -106,49 +87,46 @@ namespace System public static System.ComponentModel.BindableAttribute No; public static System.ComponentModel.BindableAttribute Yes; } - - public enum BindableSupport : int + public enum BindableSupport { - Default = 2, No = 0, Yes = 1, + Default = 2, } - - public enum BindingDirection : int + public enum BindingDirection { OneWay = 0, TwoWay = 1, } - public class BindingList : System.Collections.ObjectModel.Collection, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList, System.ComponentModel.ICancelAddNew, System.ComponentModel.IRaiseItemChangedEvents { void System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor prop) => throw null; + public event System.ComponentModel.AddingNewEventHandler AddingNew { add { } remove { } } public T AddNew() => throw null; object System.ComponentModel.IBindingList.AddNew() => throw null; protected virtual object AddNewCore() => throw null; - public event System.ComponentModel.AddingNewEventHandler AddingNew; - public bool AllowEdit { get => throw null; set => throw null; } + public bool AllowEdit { get => throw null; set { } } bool System.ComponentModel.IBindingList.AllowEdit { get => throw null; } - public bool AllowNew { get => throw null; set => throw null; } + public bool AllowNew { get => throw null; set { } } bool System.ComponentModel.IBindingList.AllowNew { get => throw null; } - public bool AllowRemove { get => throw null; set => throw null; } + public bool AllowRemove { get => throw null; set { } } bool System.ComponentModel.IBindingList.AllowRemove { get => throw null; } void System.ComponentModel.IBindingList.ApplySort(System.ComponentModel.PropertyDescriptor prop, System.ComponentModel.ListSortDirection direction) => throw null; protected virtual void ApplySortCore(System.ComponentModel.PropertyDescriptor prop, System.ComponentModel.ListSortDirection direction) => throw null; - public BindingList() => throw null; - public BindingList(System.Collections.Generic.IList list) => throw null; public virtual void CancelNew(int itemIndex) => throw null; protected override void ClearItems() => throw null; + public BindingList() => throw null; + public BindingList(System.Collections.Generic.IList list) => throw null; public virtual void EndNew(int itemIndex) => throw null; int System.ComponentModel.IBindingList.Find(System.ComponentModel.PropertyDescriptor prop, object key) => throw null; protected virtual int FindCore(System.ComponentModel.PropertyDescriptor prop, object key) => throw null; protected override void InsertItem(int index, T item) => throw null; bool System.ComponentModel.IBindingList.IsSorted { get => throw null; } protected virtual bool IsSortedCore { get => throw null; } - public event System.ComponentModel.ListChangedEventHandler ListChanged; + public event System.ComponentModel.ListChangedEventHandler ListChanged { add { } remove { } } protected virtual void OnAddingNew(System.ComponentModel.AddingNewEventArgs e) => throw null; protected virtual void OnListChanged(System.ComponentModel.ListChangedEventArgs e) => throw null; - public bool RaiseListChangedEvents { get => throw null; set => throw null; } + public bool RaiseListChangedEvents { get => throw null; set { } } bool System.ComponentModel.IRaiseItemChangedEvents.RaisesItemChangedEvents { get => throw null; } void System.ComponentModel.IBindingList.RemoveIndex(System.ComponentModel.PropertyDescriptor prop) => throw null; protected override void RemoveItem(int index) => throw null; @@ -168,56 +146,47 @@ namespace System bool System.ComponentModel.IBindingList.SupportsSorting { get => throw null; } protected virtual bool SupportsSortingCore { get => throw null; } } - public class BooleanConverter : System.ComponentModel.TypeConverter { - public BooleanConverter() => throw null; public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public BooleanConverter() => throw null; public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - public class ByteConverter : System.ComponentModel.BaseNumberConverter { public ByteConverter() => throw null; } - public delegate void CancelEventHandler(object sender, System.ComponentModel.CancelEventArgs e); - public class CharConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public CharConverter() => throw null; public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public CharConverter() => throw null; } - - public enum CollectionChangeAction : int + public enum CollectionChangeAction { Add = 1, - Refresh = 3, Remove = 2, + Refresh = 3, } - public class CollectionChangeEventArgs : System.EventArgs { public virtual System.ComponentModel.CollectionChangeAction Action { get => throw null; } public CollectionChangeEventArgs(System.ComponentModel.CollectionChangeAction action, object element) => throw null; public virtual object Element { get => throw null; } } - public delegate void CollectionChangeEventHandler(object sender, System.ComponentModel.CollectionChangeEventArgs e); - public class CollectionConverter : System.ComponentModel.TypeConverter { - public CollectionConverter() => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public CollectionConverter() => throw null; public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; } - - public class ComplexBindingPropertiesAttribute : System.Attribute + public sealed class ComplexBindingPropertiesAttribute : System.Attribute { public ComplexBindingPropertiesAttribute() => throw null; public ComplexBindingPropertiesAttribute(string dataSource) => throw null; @@ -228,21 +197,18 @@ namespace System public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; } - public class ComponentConverter : System.ComponentModel.ReferenceConverter { public ComponentConverter(System.Type type) : base(default(System.Type)) => throw null; public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - public abstract class ComponentEditor { protected ComponentEditor() => throw null; public abstract bool EditComponent(System.ComponentModel.ITypeDescriptorContext context, object component); public bool EditComponent(object component) => throw null; } - public class ComponentResourceManager : System.Resources.ResourceManager { public void ApplyResources(object value, string objectName) => throw null; @@ -250,29 +216,25 @@ namespace System public ComponentResourceManager() => throw null; public ComponentResourceManager(System.Type t) => throw null; } - public class Container : System.ComponentModel.IContainer, System.IDisposable { public virtual void Add(System.ComponentModel.IComponent component) => throw null; public virtual void Add(System.ComponentModel.IComponent component, string name) => throw null; public virtual System.ComponentModel.ComponentCollection Components { get => throw null; } - public Container() => throw null; protected virtual System.ComponentModel.ISite CreateSite(System.ComponentModel.IComponent component, string name) => throw null; + public Container() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; protected virtual object GetService(System.Type service) => throw null; public virtual void Remove(System.ComponentModel.IComponent component) => throw null; protected void RemoveWithoutUnsiting(System.ComponentModel.IComponent component) => throw null; protected virtual void ValidateName(System.ComponentModel.IComponent component, string name) => throw null; - // ERR: Stub generator didn't handle member: ~Container } - public abstract class ContainerFilterService { protected ContainerFilterService() => throw null; public virtual System.ComponentModel.ComponentCollection FilterComponents(System.ComponentModel.ComponentCollection components) => throw null; } - public class CultureInfoConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -285,7 +247,6 @@ namespace System public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - public abstract class CustomTypeDescriptor : System.ComponentModel.ICustomTypeDescriptor { protected CustomTypeDescriptor() => throw null; @@ -303,12 +264,11 @@ namespace System public virtual System.ComponentModel.PropertyDescriptorCollection GetProperties(System.Attribute[] attributes) => throw null; public virtual object GetPropertyOwner(System.ComponentModel.PropertyDescriptor pd) => throw null; } - - public class DataObjectAttribute : System.Attribute + public sealed class DataObjectAttribute : System.Attribute { - public static System.ComponentModel.DataObjectAttribute DataObject; public DataObjectAttribute() => throw null; public DataObjectAttribute(bool isDataObject) => throw null; + public static System.ComponentModel.DataObjectAttribute DataObject; public static System.ComponentModel.DataObjectAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; @@ -316,8 +276,7 @@ namespace System public override bool IsDefaultAttribute() => throw null; public static System.ComponentModel.DataObjectAttribute NonDataObject; } - - public class DataObjectFieldAttribute : System.Attribute + public sealed class DataObjectFieldAttribute : System.Attribute { public DataObjectFieldAttribute(bool primaryKey) => throw null; public DataObjectFieldAttribute(bool primaryKey, bool isIdentity) => throw null; @@ -330,8 +289,7 @@ namespace System public int Length { get => throw null; } public bool PrimaryKey { get => throw null; } } - - public class DataObjectMethodAttribute : System.Attribute + public sealed class DataObjectMethodAttribute : System.Attribute { public DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType methodType) => throw null; public DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType methodType, bool isDefault) => throw null; @@ -341,16 +299,14 @@ namespace System public override bool Match(object obj) => throw null; public System.ComponentModel.DataObjectMethodType MethodType { get => throw null; } } - - public enum DataObjectMethodType : int + public enum DataObjectMethodType { - Delete = 4, Fill = 0, - Insert = 3, Select = 1, Update = 2, + Insert = 3, + Delete = 4, } - public class DateOnlyConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -359,7 +315,6 @@ namespace System public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; public DateOnlyConverter() => throw null; } - public class DateTimeConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -368,7 +323,6 @@ namespace System public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; public DateTimeConverter() => throw null; } - public class DateTimeOffsetConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -377,1176 +331,37 @@ namespace System public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; public DateTimeOffsetConverter() => throw null; } - public class DecimalConverter : System.ComponentModel.BaseNumberConverter { public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; public DecimalConverter() => throw null; } - - public class DefaultBindingPropertyAttribute : System.Attribute + public sealed class DefaultBindingPropertyAttribute : System.Attribute { - public static System.ComponentModel.DefaultBindingPropertyAttribute Default; public DefaultBindingPropertyAttribute() => throw null; public DefaultBindingPropertyAttribute(string name) => throw null; + public static System.ComponentModel.DefaultBindingPropertyAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string Name { get => throw null; } } - - public class DefaultEventAttribute : System.Attribute + public sealed class DefaultEventAttribute : System.Attribute { - public static System.ComponentModel.DefaultEventAttribute Default; public DefaultEventAttribute(string name) => throw null; + public static System.ComponentModel.DefaultEventAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string Name { get => throw null; } } - - public class DefaultPropertyAttribute : System.Attribute + public sealed class DefaultPropertyAttribute : System.Attribute { - public static System.ComponentModel.DefaultPropertyAttribute Default; public DefaultPropertyAttribute(string name) => throw null; + public static System.ComponentModel.DefaultPropertyAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string Name { get => throw null; } } - - public class DesignTimeVisibleAttribute : System.Attribute - { - public static System.ComponentModel.DesignTimeVisibleAttribute Default; - public DesignTimeVisibleAttribute() => throw null; - public DesignTimeVisibleAttribute(bool visible) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.DesignTimeVisibleAttribute No; - public bool Visible { get => throw null; } - public static System.ComponentModel.DesignTimeVisibleAttribute Yes; - } - - public class DoubleConverter : System.ComponentModel.BaseNumberConverter - { - public DoubleConverter() => throw null; - } - - public class EnumConverter : System.ComponentModel.TypeConverter - { - public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; - protected virtual System.Collections.IComparer Comparer { get => throw null; } - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public EnumConverter(System.Type type) => throw null; - protected System.Type EnumType { get => throw null; } - public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override bool IsValid(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; - protected System.ComponentModel.TypeConverter.StandardValuesCollection Values { get => throw null; set => throw null; } - } - - public abstract class EventDescriptor : System.ComponentModel.MemberDescriptor - { - public abstract void AddEventHandler(object component, System.Delegate value); - public abstract System.Type ComponentType { get; } - protected EventDescriptor(System.ComponentModel.MemberDescriptor descr) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; - protected EventDescriptor(System.ComponentModel.MemberDescriptor descr, System.Attribute[] attrs) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; - protected EventDescriptor(string name, System.Attribute[] attrs) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; - public abstract System.Type EventType { get; } - public abstract bool IsMulticast { get; } - public abstract void RemoveEventHandler(object component, System.Delegate value); - } - - public class EventDescriptorCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList - { - public int Add(System.ComponentModel.EventDescriptor value) => throw null; - int System.Collections.IList.Add(object value) => throw null; - public void Clear() => throw null; - void System.Collections.IList.Clear() => throw null; - public bool Contains(System.ComponentModel.EventDescriptor value) => throw null; - bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - int System.Collections.ICollection.Count { get => throw null; } - public static System.ComponentModel.EventDescriptorCollection Empty; - public EventDescriptorCollection(System.ComponentModel.EventDescriptor[] events) => throw null; - public EventDescriptorCollection(System.ComponentModel.EventDescriptor[] events, bool readOnly) => throw null; - public virtual System.ComponentModel.EventDescriptor Find(string name, bool ignoreCase) => throw null; - public System.Collections.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public int IndexOf(System.ComponentModel.EventDescriptor value) => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; - public void Insert(int index, System.ComponentModel.EventDescriptor value) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; - protected void InternalSort(System.Collections.IComparer sorter) => throw null; - protected void InternalSort(string[] names) => throw null; - bool System.Collections.IList.IsFixedSize { get => throw null; } - bool System.Collections.IList.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public virtual System.ComponentModel.EventDescriptor this[int index] { get => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public virtual System.ComponentModel.EventDescriptor this[string name] { get => throw null; } - public void Remove(System.ComponentModel.EventDescriptor value) => throw null; - void System.Collections.IList.Remove(object value) => throw null; - public void RemoveAt(int index) => throw null; - void System.Collections.IList.RemoveAt(int index) => throw null; - public virtual System.ComponentModel.EventDescriptorCollection Sort() => throw null; - public virtual System.ComponentModel.EventDescriptorCollection Sort(System.Collections.IComparer comparer) => throw null; - public virtual System.ComponentModel.EventDescriptorCollection Sort(string[] names) => throw null; - public virtual System.ComponentModel.EventDescriptorCollection Sort(string[] names, System.Collections.IComparer comparer) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - public class ExpandableObjectConverter : System.ComponentModel.TypeConverter - { - public ExpandableObjectConverter() => throw null; - public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; - public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - } - - public class ExtenderProvidedPropertyAttribute : System.Attribute - { - public override bool Equals(object obj) => throw null; - public System.ComponentModel.PropertyDescriptor ExtenderProperty { get => throw null; } - public ExtenderProvidedPropertyAttribute() => throw null; - public override int GetHashCode() => throw null; - public override bool IsDefaultAttribute() => throw null; - public System.ComponentModel.IExtenderProvider Provider { get => throw null; } - public System.Type ReceiverType { get => throw null; } - } - - public class GuidConverter : System.ComponentModel.TypeConverter - { - public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public GuidConverter() => throw null; - } - - public class HalfConverter : System.ComponentModel.BaseNumberConverter - { - public HalfConverter() => throw null; - } - - public class HandledEventArgs : System.EventArgs - { - public bool Handled { get => throw null; set => throw null; } - public HandledEventArgs() => throw null; - public HandledEventArgs(bool defaultHandledValue) => throw null; - } - - public delegate void HandledEventHandler(object sender, System.ComponentModel.HandledEventArgs e); - - public interface IBindingList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList - { - void AddIndex(System.ComponentModel.PropertyDescriptor property); - object AddNew(); - bool AllowEdit { get; } - bool AllowNew { get; } - bool AllowRemove { get; } - void ApplySort(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction); - int Find(System.ComponentModel.PropertyDescriptor property, object key); - bool IsSorted { get; } - event System.ComponentModel.ListChangedEventHandler ListChanged; - void RemoveIndex(System.ComponentModel.PropertyDescriptor property); - void RemoveSort(); - System.ComponentModel.ListSortDirection SortDirection { get; } - System.ComponentModel.PropertyDescriptor SortProperty { get; } - bool SupportsChangeNotification { get; } - bool SupportsSearching { get; } - bool SupportsSorting { get; } - } - - public interface IBindingListView : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList - { - void ApplySort(System.ComponentModel.ListSortDescriptionCollection sorts); - string Filter { get; set; } - void RemoveFilter(); - System.ComponentModel.ListSortDescriptionCollection SortDescriptions { get; } - bool SupportsAdvancedSorting { get; } - bool SupportsFiltering { get; } - } - - public interface ICancelAddNew - { - void CancelNew(int itemIndex); - void EndNew(int itemIndex); - } - - public interface IComNativeDescriptorHandler - { - System.ComponentModel.AttributeCollection GetAttributes(object component); - string GetClassName(object component); - System.ComponentModel.TypeConverter GetConverter(object component); - System.ComponentModel.EventDescriptor GetDefaultEvent(object component); - System.ComponentModel.PropertyDescriptor GetDefaultProperty(object component); - object GetEditor(object component, System.Type baseEditorType); - System.ComponentModel.EventDescriptorCollection GetEvents(object component); - System.ComponentModel.EventDescriptorCollection GetEvents(object component, System.Attribute[] attributes); - string GetName(object component); - System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes); - object GetPropertyValue(object component, int dispid, ref bool success); - object GetPropertyValue(object component, string propertyName, ref bool success); - } - - public interface ICustomTypeDescriptor - { - System.ComponentModel.AttributeCollection GetAttributes(); - string GetClassName(); - string GetComponentName(); - System.ComponentModel.TypeConverter GetConverter(); - System.ComponentModel.EventDescriptor GetDefaultEvent(); - System.ComponentModel.PropertyDescriptor GetDefaultProperty(); - object GetEditor(System.Type editorBaseType); - System.ComponentModel.EventDescriptorCollection GetEvents(); - System.ComponentModel.EventDescriptorCollection GetEvents(System.Attribute[] attributes); - System.ComponentModel.PropertyDescriptorCollection GetProperties(); - System.ComponentModel.PropertyDescriptorCollection GetProperties(System.Attribute[] attributes); - object GetPropertyOwner(System.ComponentModel.PropertyDescriptor pd); - } - - public interface IDataErrorInfo - { - string Error { get; } - string this[string columnName] { get; } - } - - public interface IExtenderProvider - { - bool CanExtend(object extendee); - } - - public interface IIntellisenseBuilder - { - string Name { get; } - bool Show(string language, string value, ref string newValue); - } - - public interface IListSource - { - bool ContainsListCollection { get; } - System.Collections.IList GetList(); - } - - public interface INestedContainer : System.ComponentModel.IContainer, System.IDisposable - { - System.ComponentModel.IComponent Owner { get; } - } - - public interface INestedSite : System.ComponentModel.ISite, System.IServiceProvider - { - string FullName { get; } - } - - public interface IRaiseItemChangedEvents - { - bool RaisesItemChangedEvents { get; } - } - - public interface ISupportInitializeNotification : System.ComponentModel.ISupportInitialize - { - event System.EventHandler Initialized; - bool IsInitialized { get; } - } - - public interface ITypeDescriptorContext : System.IServiceProvider - { - System.ComponentModel.IContainer Container { get; } - object Instance { get; } - void OnComponentChanged(); - bool OnComponentChanging(); - System.ComponentModel.PropertyDescriptor PropertyDescriptor { get; } - } - - public interface ITypedList - { - System.ComponentModel.PropertyDescriptorCollection GetItemProperties(System.ComponentModel.PropertyDescriptor[] listAccessors); - string GetListName(System.ComponentModel.PropertyDescriptor[] listAccessors); - } - - public class InheritanceAttribute : System.Attribute - { - public static System.ComponentModel.InheritanceAttribute Default; - public override bool Equals(object value) => throw null; - public override int GetHashCode() => throw null; - public InheritanceAttribute() => throw null; - public InheritanceAttribute(System.ComponentModel.InheritanceLevel inheritanceLevel) => throw null; - public System.ComponentModel.InheritanceLevel InheritanceLevel { get => throw null; } - public static System.ComponentModel.InheritanceAttribute Inherited; - public static System.ComponentModel.InheritanceAttribute InheritedReadOnly; - public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.InheritanceAttribute NotInherited; - public override string ToString() => throw null; - } - - public enum InheritanceLevel : int - { - Inherited = 1, - InheritedReadOnly = 2, - NotInherited = 3, - } - - public class InstallerTypeAttribute : System.Attribute - { - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public virtual System.Type InstallerType { get => throw null; } - public InstallerTypeAttribute(System.Type installerType) => throw null; - public InstallerTypeAttribute(string typeName) => throw null; - } - - public abstract class InstanceCreationEditor - { - public abstract object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Type instanceType); - protected InstanceCreationEditor() => throw null; - public virtual string Text { get => throw null; } - } - - public class Int128Converter : System.ComponentModel.BaseNumberConverter - { - public Int128Converter() => throw null; - } - - public class Int16Converter : System.ComponentModel.BaseNumberConverter - { - public Int16Converter() => throw null; - } - - public class Int32Converter : System.ComponentModel.BaseNumberConverter - { - public Int32Converter() => throw null; - } - - public class Int64Converter : System.ComponentModel.BaseNumberConverter - { - public Int64Converter() => throw null; - } - - public class LicFileLicenseProvider : System.ComponentModel.LicenseProvider - { - protected virtual string GetKey(System.Type type) => throw null; - public override System.ComponentModel.License GetLicense(System.ComponentModel.LicenseContext context, System.Type type, object instance, bool allowExceptions) => throw null; - protected virtual bool IsKeyValid(string key, System.Type type) => throw null; - public LicFileLicenseProvider() => throw null; - } - - public abstract class License : System.IDisposable - { - public abstract void Dispose(); - protected License() => throw null; - public abstract string LicenseKey { get; } - } - - public class LicenseContext : System.IServiceProvider - { - public virtual string GetSavedLicenseKey(System.Type type, System.Reflection.Assembly resourceAssembly) => throw null; - public virtual object GetService(System.Type type) => throw null; - public LicenseContext() => throw null; - public virtual void SetSavedLicenseKey(System.Type type, string key) => throw null; - public virtual System.ComponentModel.LicenseUsageMode UsageMode { get => throw null; } - } - - public class LicenseException : System.SystemException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected LicenseException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public LicenseException(System.Type type) => throw null; - public LicenseException(System.Type type, object instance) => throw null; - public LicenseException(System.Type type, object instance, string message) => throw null; - public LicenseException(System.Type type, object instance, string message, System.Exception innerException) => throw null; - public System.Type LicensedType { get => throw null; } - } - - public class LicenseManager - { - public static object CreateWithContext(System.Type type, System.ComponentModel.LicenseContext creationContext) => throw null; - public static object CreateWithContext(System.Type type, System.ComponentModel.LicenseContext creationContext, object[] args) => throw null; - public static System.ComponentModel.LicenseContext CurrentContext { get => throw null; set => throw null; } - public static bool IsLicensed(System.Type type) => throw null; - public static bool IsValid(System.Type type) => throw null; - public static bool IsValid(System.Type type, object instance, out System.ComponentModel.License license) => throw null; - public static void LockContext(object contextUser) => throw null; - public static void UnlockContext(object contextUser) => throw null; - public static System.ComponentModel.LicenseUsageMode UsageMode { get => throw null; } - public static void Validate(System.Type type) => throw null; - public static System.ComponentModel.License Validate(System.Type type, object instance) => throw null; - } - - public abstract class LicenseProvider - { - public abstract System.ComponentModel.License GetLicense(System.ComponentModel.LicenseContext context, System.Type type, object instance, bool allowExceptions); - protected LicenseProvider() => throw null; - } - - public class LicenseProviderAttribute : System.Attribute - { - public static System.ComponentModel.LicenseProviderAttribute Default; - public override bool Equals(object value) => throw null; - public override int GetHashCode() => throw null; - public System.Type LicenseProvider { get => throw null; } - public LicenseProviderAttribute() => throw null; - public LicenseProviderAttribute(System.Type type) => throw null; - public LicenseProviderAttribute(string typeName) => throw null; - public override object TypeId { get => throw null; } - } - - public enum LicenseUsageMode : int - { - Designtime = 1, - Runtime = 0, - } - - public class ListBindableAttribute : System.Attribute - { - public static System.ComponentModel.ListBindableAttribute Default; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public override bool IsDefaultAttribute() => throw null; - public bool ListBindable { get => throw null; } - public ListBindableAttribute(System.ComponentModel.BindableSupport flags) => throw null; - public ListBindableAttribute(bool listBindable) => throw null; - public static System.ComponentModel.ListBindableAttribute No; - public static System.ComponentModel.ListBindableAttribute Yes; - } - - public class ListChangedEventArgs : System.EventArgs - { - public ListChangedEventArgs(System.ComponentModel.ListChangedType listChangedType, System.ComponentModel.PropertyDescriptor propDesc) => throw null; - public ListChangedEventArgs(System.ComponentModel.ListChangedType listChangedType, int newIndex) => throw null; - public ListChangedEventArgs(System.ComponentModel.ListChangedType listChangedType, int newIndex, System.ComponentModel.PropertyDescriptor propDesc) => throw null; - public ListChangedEventArgs(System.ComponentModel.ListChangedType listChangedType, int newIndex, int oldIndex) => throw null; - public System.ComponentModel.ListChangedType ListChangedType { get => throw null; } - public int NewIndex { get => throw null; } - public int OldIndex { get => throw null; } - public System.ComponentModel.PropertyDescriptor PropertyDescriptor { get => throw null; } - } - - public delegate void ListChangedEventHandler(object sender, System.ComponentModel.ListChangedEventArgs e); - - public enum ListChangedType : int - { - ItemAdded = 1, - ItemChanged = 4, - ItemDeleted = 2, - ItemMoved = 3, - PropertyDescriptorAdded = 5, - PropertyDescriptorChanged = 7, - PropertyDescriptorDeleted = 6, - Reset = 0, - } - - public class ListSortDescription - { - public ListSortDescription(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction) => throw null; - public System.ComponentModel.PropertyDescriptor PropertyDescriptor { get => throw null; set => throw null; } - public System.ComponentModel.ListSortDirection SortDirection { get => throw null; set => throw null; } - } - - public class ListSortDescriptionCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList - { - int System.Collections.IList.Add(object value) => throw null; - void System.Collections.IList.Clear() => throw null; - public bool Contains(object value) => throw null; - public void CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public int IndexOf(object value) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; - bool System.Collections.IList.IsFixedSize { get => throw null; } - bool System.Collections.IList.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public System.ComponentModel.ListSortDescription this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public ListSortDescriptionCollection() => throw null; - public ListSortDescriptionCollection(System.ComponentModel.ListSortDescription[] sorts) => throw null; - void System.Collections.IList.Remove(object value) => throw null; - void System.Collections.IList.RemoveAt(int index) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - public enum ListSortDirection : int - { - Ascending = 0, - Descending = 1, - } - - public class LookupBindingPropertiesAttribute : System.Attribute - { - public string DataSource { get => throw null; } - public static System.ComponentModel.LookupBindingPropertiesAttribute Default; - public string DisplayMember { get => throw null; } - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public LookupBindingPropertiesAttribute() => throw null; - public LookupBindingPropertiesAttribute(string dataSource, string displayMember, string valueMember, string lookupMember) => throw null; - public string LookupMember { get => throw null; } - public string ValueMember { get => throw null; } - } - - public class MarshalByValueComponent : System.ComponentModel.IComponent, System.IDisposable, System.IServiceProvider - { - public virtual System.ComponentModel.IContainer Container { get => throw null; } - public virtual bool DesignMode { get => throw null; } - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public event System.EventHandler Disposed; - protected System.ComponentModel.EventHandlerList Events { get => throw null; } - public virtual object GetService(System.Type service) => throw null; - public MarshalByValueComponent() => throw null; - public virtual System.ComponentModel.ISite Site { get => throw null; set => throw null; } - public override string ToString() => throw null; - // ERR: Stub generator didn't handle member: ~MarshalByValueComponent - } - - public class MaskedTextProvider : System.ICloneable - { - public bool Add(System.Char input) => throw null; - public bool Add(System.Char input, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public bool Add(string input) => throw null; - public bool Add(string input, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public bool AllowPromptAsInput { get => throw null; } - public bool AsciiOnly { get => throw null; } - public int AssignedEditPositionCount { get => throw null; } - public int AvailableEditPositionCount { get => throw null; } - public void Clear() => throw null; - public void Clear(out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public object Clone() => throw null; - public System.Globalization.CultureInfo Culture { get => throw null; } - public static System.Char DefaultPasswordChar { get => throw null; } - public int EditPositionCount { get => throw null; } - public System.Collections.IEnumerator EditPositions { get => throw null; } - public int FindAssignedEditPositionFrom(int position, bool direction) => throw null; - public int FindAssignedEditPositionInRange(int startPosition, int endPosition, bool direction) => throw null; - public int FindEditPositionFrom(int position, bool direction) => throw null; - public int FindEditPositionInRange(int startPosition, int endPosition, bool direction) => throw null; - public int FindNonEditPositionFrom(int position, bool direction) => throw null; - public int FindNonEditPositionInRange(int startPosition, int endPosition, bool direction) => throw null; - public int FindUnassignedEditPositionFrom(int position, bool direction) => throw null; - public int FindUnassignedEditPositionInRange(int startPosition, int endPosition, bool direction) => throw null; - public static bool GetOperationResultFromHint(System.ComponentModel.MaskedTextResultHint hint) => throw null; - public bool IncludeLiterals { get => throw null; set => throw null; } - public bool IncludePrompt { get => throw null; set => throw null; } - public bool InsertAt(System.Char input, int position) => throw null; - public bool InsertAt(System.Char input, int position, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public bool InsertAt(string input, int position) => throw null; - public bool InsertAt(string input, int position, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public static int InvalidIndex { get => throw null; } - public bool IsAvailablePosition(int position) => throw null; - public bool IsEditPosition(int position) => throw null; - public bool IsPassword { get => throw null; set => throw null; } - public static bool IsValidInputChar(System.Char c) => throw null; - public static bool IsValidMaskChar(System.Char c) => throw null; - public static bool IsValidPasswordChar(System.Char c) => throw null; - public System.Char this[int index] { get => throw null; } - public int LastAssignedPosition { get => throw null; } - public int Length { get => throw null; } - public string Mask { get => throw null; } - public bool MaskCompleted { get => throw null; } - public bool MaskFull { get => throw null; } - public MaskedTextProvider(string mask) => throw null; - public MaskedTextProvider(string mask, System.Globalization.CultureInfo culture) => throw null; - public MaskedTextProvider(string mask, System.Globalization.CultureInfo culture, bool restrictToAscii) => throw null; - public MaskedTextProvider(string mask, System.Globalization.CultureInfo culture, bool allowPromptAsInput, System.Char promptChar, System.Char passwordChar, bool restrictToAscii) => throw null; - public MaskedTextProvider(string mask, System.Globalization.CultureInfo culture, System.Char passwordChar, bool allowPromptAsInput) => throw null; - public MaskedTextProvider(string mask, bool restrictToAscii) => throw null; - public MaskedTextProvider(string mask, System.Char passwordChar, bool allowPromptAsInput) => throw null; - public System.Char PasswordChar { get => throw null; set => throw null; } - public System.Char PromptChar { get => throw null; set => throw null; } - public bool Remove() => throw null; - public bool Remove(out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public bool RemoveAt(int position) => throw null; - public bool RemoveAt(int startPosition, int endPosition) => throw null; - public bool RemoveAt(int startPosition, int endPosition, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public bool Replace(System.Char input, int position) => throw null; - public bool Replace(System.Char input, int startPosition, int endPosition, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public bool Replace(System.Char input, int position, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public bool Replace(string input, int position) => throw null; - public bool Replace(string input, int startPosition, int endPosition, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public bool Replace(string input, int position, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public bool ResetOnPrompt { get => throw null; set => throw null; } - public bool ResetOnSpace { get => throw null; set => throw null; } - public bool Set(string input) => throw null; - public bool Set(string input, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - public bool SkipLiterals { get => throw null; set => throw null; } - public string ToDisplayString() => throw null; - public override string ToString() => throw null; - public string ToString(bool ignorePasswordChar) => throw null; - public string ToString(bool includePrompt, bool includeLiterals) => throw null; - public string ToString(bool ignorePasswordChar, bool includePrompt, bool includeLiterals, int startPosition, int length) => throw null; - public string ToString(bool includePrompt, bool includeLiterals, int startPosition, int length) => throw null; - public string ToString(bool ignorePasswordChar, int startPosition, int length) => throw null; - public string ToString(int startPosition, int length) => throw null; - public bool VerifyChar(System.Char input, int position, out System.ComponentModel.MaskedTextResultHint hint) => throw null; - public bool VerifyEscapeChar(System.Char input, int position) => throw null; - public bool VerifyString(string input) => throw null; - public bool VerifyString(string input, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; - } - - public enum MaskedTextResultHint : int - { - AlphanumericCharacterExpected = -2, - AsciiCharacterExpected = -1, - CharacterEscaped = 1, - DigitExpected = -3, - InvalidInput = -51, - LetterExpected = -4, - NoEffect = 2, - NonEditPosition = -54, - PositionOutOfRange = -55, - PromptCharNotAllowed = -52, - SideEffect = 3, - SignedDigitExpected = -5, - Success = 4, - UnavailableEditPosition = -53, - Unknown = 0, - } - - public abstract class MemberDescriptor - { - protected virtual System.Attribute[] AttributeArray { get => throw null; set => throw null; } - public virtual System.ComponentModel.AttributeCollection Attributes { get => throw null; } - public virtual string Category { get => throw null; } - protected virtual System.ComponentModel.AttributeCollection CreateAttributeCollection() => throw null; - public virtual string Description { get => throw null; } - public virtual bool DesignTimeOnly { get => throw null; } - public virtual string DisplayName { get => throw null; } - public override bool Equals(object obj) => throw null; - protected virtual void FillAttributes(System.Collections.IList attributeList) => throw null; - protected static System.Reflection.MethodInfo FindMethod(System.Type componentClass, string name, System.Type[] args, System.Type returnType) => throw null; - protected static System.Reflection.MethodInfo FindMethod(System.Type componentClass, string name, System.Type[] args, System.Type returnType, bool publicOnly) => throw null; - public override int GetHashCode() => throw null; - protected virtual object GetInvocationTarget(System.Type type, object instance) => throw null; - protected static object GetInvokee(System.Type componentClass, object component) => throw null; - protected static System.ComponentModel.ISite GetSite(object component) => throw null; - public virtual bool IsBrowsable { get => throw null; } - protected MemberDescriptor(System.ComponentModel.MemberDescriptor descr) => throw null; - protected MemberDescriptor(System.ComponentModel.MemberDescriptor oldMemberDescriptor, System.Attribute[] newAttributes) => throw null; - protected MemberDescriptor(string name) => throw null; - protected MemberDescriptor(string name, System.Attribute[] attributes) => throw null; - public virtual string Name { get => throw null; } - protected virtual int NameHashCode { get => throw null; } - } - - public class MultilineStringConverter : System.ComponentModel.TypeConverter - { - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; - public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public MultilineStringConverter() => throw null; - } - - public class NestedContainer : System.ComponentModel.Container, System.ComponentModel.IContainer, System.ComponentModel.INestedContainer, System.IDisposable - { - protected override System.ComponentModel.ISite CreateSite(System.ComponentModel.IComponent component, string name) => throw null; - protected override void Dispose(bool disposing) => throw null; - protected override object GetService(System.Type service) => throw null; - public NestedContainer(System.ComponentModel.IComponent owner) => throw null; - public System.ComponentModel.IComponent Owner { get => throw null; } - protected virtual string OwnerName { get => throw null; } - } - - public class NullableConverter : System.ComponentModel.TypeConverter - { - public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public override object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Collections.IDictionary propertyValues) => throw null; - public override bool GetCreateInstanceSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; - public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override bool IsValid(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; - public NullableConverter(System.Type type) => throw null; - public System.Type NullableType { get => throw null; } - public System.Type UnderlyingType { get => throw null; } - public System.ComponentModel.TypeConverter UnderlyingTypeConverter { get => throw null; } - } - - public class PasswordPropertyTextAttribute : System.Attribute - { - public static System.ComponentModel.PasswordPropertyTextAttribute Default; - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.PasswordPropertyTextAttribute No; - public bool Password { get => throw null; } - public PasswordPropertyTextAttribute() => throw null; - public PasswordPropertyTextAttribute(bool password) => throw null; - public static System.ComponentModel.PasswordPropertyTextAttribute Yes; - } - - public abstract class PropertyDescriptor : System.ComponentModel.MemberDescriptor - { - public virtual void AddValueChanged(object component, System.EventHandler handler) => throw null; - public abstract bool CanResetValue(object component); - public abstract System.Type ComponentType { get; } - public virtual System.ComponentModel.TypeConverter Converter { get => throw null; } - protected object CreateInstance(System.Type type) => throw null; - public override bool Equals(object obj) => throw null; - protected override void FillAttributes(System.Collections.IList attributeList) => throw null; - public System.ComponentModel.PropertyDescriptorCollection GetChildProperties() => throw null; - public System.ComponentModel.PropertyDescriptorCollection GetChildProperties(System.Attribute[] filter) => throw null; - public System.ComponentModel.PropertyDescriptorCollection GetChildProperties(object instance) => throw null; - public virtual System.ComponentModel.PropertyDescriptorCollection GetChildProperties(object instance, System.Attribute[] filter) => throw null; - public virtual object GetEditor(System.Type editorBaseType) => throw null; - public override int GetHashCode() => throw null; - protected override object GetInvocationTarget(System.Type type, object instance) => throw null; - protected System.Type GetTypeFromName(string typeName) => throw null; - public abstract object GetValue(object component); - protected internal System.EventHandler GetValueChangedHandler(object component) => throw null; - public virtual bool IsLocalizable { get => throw null; } - public abstract bool IsReadOnly { get; } - protected virtual void OnValueChanged(object component, System.EventArgs e) => throw null; - protected PropertyDescriptor(System.ComponentModel.MemberDescriptor descr) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; - protected PropertyDescriptor(System.ComponentModel.MemberDescriptor descr, System.Attribute[] attrs) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; - protected PropertyDescriptor(string name, System.Attribute[] attrs) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; - public abstract System.Type PropertyType { get; } - public virtual void RemoveValueChanged(object component, System.EventHandler handler) => throw null; - public abstract void ResetValue(object component); - public System.ComponentModel.DesignerSerializationVisibility SerializationVisibility { get => throw null; } - public abstract void SetValue(object component, object value); - public abstract bool ShouldSerializeValue(object component); - public virtual bool SupportsChangeEvents { get => throw null; } - } - - public class PropertyDescriptorCollection : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.Collections.IList - { - public int Add(System.ComponentModel.PropertyDescriptor value) => throw null; - int System.Collections.IList.Add(object value) => throw null; - void System.Collections.IDictionary.Add(object key, object value) => throw null; - public void Clear() => throw null; - void System.Collections.IDictionary.Clear() => throw null; - void System.Collections.IList.Clear() => throw null; - public bool Contains(System.ComponentModel.PropertyDescriptor value) => throw null; - bool System.Collections.IDictionary.Contains(object key) => throw null; - bool System.Collections.IList.Contains(object value) => throw null; - public void CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - int System.Collections.ICollection.Count { get => throw null; } - public static System.ComponentModel.PropertyDescriptorCollection Empty; - public virtual System.ComponentModel.PropertyDescriptor Find(string name, bool ignoreCase) => throw null; - public virtual System.Collections.IEnumerator GetEnumerator() => throw null; - System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public int IndexOf(System.ComponentModel.PropertyDescriptor value) => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; - public void Insert(int index, System.ComponentModel.PropertyDescriptor value) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; - protected void InternalSort(System.Collections.IComparer sorter) => throw null; - protected void InternalSort(string[] names) => throw null; - bool System.Collections.IDictionary.IsFixedSize { get => throw null; } - bool System.Collections.IList.IsFixedSize { get => throw null; } - bool System.Collections.IDictionary.IsReadOnly { get => throw null; } - bool System.Collections.IList.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public virtual System.ComponentModel.PropertyDescriptor this[int index] { get => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } - public virtual System.ComponentModel.PropertyDescriptor this[string name] { get => throw null; } - System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } - public PropertyDescriptorCollection(System.ComponentModel.PropertyDescriptor[] properties) => throw null; - public PropertyDescriptorCollection(System.ComponentModel.PropertyDescriptor[] properties, bool readOnly) => throw null; - public void Remove(System.ComponentModel.PropertyDescriptor value) => throw null; - void System.Collections.IDictionary.Remove(object key) => throw null; - void System.Collections.IList.Remove(object value) => throw null; - public void RemoveAt(int index) => throw null; - void System.Collections.IList.RemoveAt(int index) => throw null; - public virtual System.ComponentModel.PropertyDescriptorCollection Sort() => throw null; - public virtual System.ComponentModel.PropertyDescriptorCollection Sort(System.Collections.IComparer comparer) => throw null; - public virtual System.ComponentModel.PropertyDescriptorCollection Sort(string[] names) => throw null; - public virtual System.ComponentModel.PropertyDescriptorCollection Sort(string[] names, System.Collections.IComparer comparer) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } - } - - public class PropertyTabAttribute : System.Attribute - { - public bool Equals(System.ComponentModel.PropertyTabAttribute other) => throw null; - public override bool Equals(object other) => throw null; - public override int GetHashCode() => throw null; - protected void InitializeArrays(string[] tabClassNames, System.ComponentModel.PropertyTabScope[] tabScopes) => throw null; - protected void InitializeArrays(System.Type[] tabClasses, System.ComponentModel.PropertyTabScope[] tabScopes) => throw null; - public PropertyTabAttribute() => throw null; - public PropertyTabAttribute(System.Type tabClass) => throw null; - public PropertyTabAttribute(System.Type tabClass, System.ComponentModel.PropertyTabScope tabScope) => throw null; - public PropertyTabAttribute(string tabClassName) => throw null; - public PropertyTabAttribute(string tabClassName, System.ComponentModel.PropertyTabScope tabScope) => throw null; - protected string[] TabClassNames { get => throw null; } - public System.Type[] TabClasses { get => throw null; } - public System.ComponentModel.PropertyTabScope[] TabScopes { get => throw null; } - } - - public enum PropertyTabScope : int - { - Component = 3, - Document = 2, - Global = 1, - Static = 0, - } - - public class ProvidePropertyAttribute : System.Attribute - { - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public string PropertyName { get => throw null; } - public ProvidePropertyAttribute(string propertyName, System.Type receiverType) => throw null; - public ProvidePropertyAttribute(string propertyName, string receiverTypeName) => throw null; - public string ReceiverTypeName { get => throw null; } - public override object TypeId { get => throw null; } - } - - public class RecommendedAsConfigurableAttribute : System.Attribute - { - public static System.ComponentModel.RecommendedAsConfigurableAttribute Default; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.RecommendedAsConfigurableAttribute No; - public bool RecommendedAsConfigurable { get => throw null; } - public RecommendedAsConfigurableAttribute(bool recommendedAsConfigurable) => throw null; - public static System.ComponentModel.RecommendedAsConfigurableAttribute Yes; - } - - public class ReferenceConverter : System.ComponentModel.TypeConverter - { - public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - protected virtual bool IsValueAllowed(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; - public ReferenceConverter(System.Type type) => throw null; - } - - public class RefreshEventArgs : System.EventArgs - { - public object ComponentChanged { get => throw null; } - public RefreshEventArgs(System.Type typeChanged) => throw null; - public RefreshEventArgs(object componentChanged) => throw null; - public System.Type TypeChanged { get => throw null; } - } - - public delegate void RefreshEventHandler(System.ComponentModel.RefreshEventArgs e); - - public class RunInstallerAttribute : System.Attribute - { - public static System.ComponentModel.RunInstallerAttribute Default; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.RunInstallerAttribute No; - public bool RunInstaller { get => throw null; } - public RunInstallerAttribute(bool runInstaller) => throw null; - public static System.ComponentModel.RunInstallerAttribute Yes; - } - - public class SByteConverter : System.ComponentModel.BaseNumberConverter - { - public SByteConverter() => throw null; - } - - public class SettingsBindableAttribute : System.Attribute - { - public bool Bindable { get => throw null; } - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public static System.ComponentModel.SettingsBindableAttribute No; - public SettingsBindableAttribute(bool bindable) => throw null; - public static System.ComponentModel.SettingsBindableAttribute Yes; - } - - public class SingleConverter : System.ComponentModel.BaseNumberConverter - { - public SingleConverter() => throw null; - } - - public class StringConverter : System.ComponentModel.TypeConverter - { - public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public StringConverter() => throw null; - } - - public static class SyntaxCheck - { - public static bool CheckMachineName(string value) => throw null; - public static bool CheckPath(string value) => throw null; - public static bool CheckRootedPath(string value) => throw null; - } - - public class TimeOnlyConverter : System.ComponentModel.TypeConverter - { - public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public TimeOnlyConverter() => throw null; - } - - public class TimeSpanConverter : System.ComponentModel.TypeConverter - { - public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public TimeSpanConverter() => throw null; - } - - public class ToolboxItemAttribute : System.Attribute - { - public static System.ComponentModel.ToolboxItemAttribute Default; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.ToolboxItemAttribute None; - public ToolboxItemAttribute(System.Type toolboxItemType) => throw null; - public ToolboxItemAttribute(bool defaultType) => throw null; - public ToolboxItemAttribute(string toolboxItemTypeName) => throw null; - public System.Type ToolboxItemType { get => throw null; } - public string ToolboxItemTypeName { get => throw null; } - } - - public class ToolboxItemFilterAttribute : System.Attribute - { - public override bool Equals(object obj) => throw null; - public string FilterString { get => throw null; } - public System.ComponentModel.ToolboxItemFilterType FilterType { get => throw null; } - public override int GetHashCode() => throw null; - public override bool Match(object obj) => throw null; - public override string ToString() => throw null; - public ToolboxItemFilterAttribute(string filterString) => throw null; - public ToolboxItemFilterAttribute(string filterString, System.ComponentModel.ToolboxItemFilterType filterType) => throw null; - public override object TypeId { get => throw null; } - } - - public enum ToolboxItemFilterType : int - { - Allow = 0, - Custom = 1, - Prevent = 2, - Require = 3, - } - - public class TypeConverter - { - protected abstract class SimplePropertyDescriptor : System.ComponentModel.PropertyDescriptor - { - public override bool CanResetValue(object component) => throw null; - public override System.Type ComponentType { get => throw null; } - public override bool IsReadOnly { get => throw null; } - public override System.Type PropertyType { get => throw null; } - public override void ResetValue(object component) => throw null; - public override bool ShouldSerializeValue(object component) => throw null; - protected SimplePropertyDescriptor(System.Type componentType, string name, System.Type propertyType) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; - protected SimplePropertyDescriptor(System.Type componentType, string name, System.Type propertyType, System.Attribute[] attributes) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; - } - - - public class StandardValuesCollection : System.Collections.ICollection, System.Collections.IEnumerable - { - public void CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.IEnumerator GetEnumerator() => throw null; - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public object this[int index] { get => throw null; } - public StandardValuesCollection(System.Collections.ICollection values) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - - public virtual bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public bool CanConvertFrom(System.Type sourceType) => throw null; - public virtual bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; - public bool CanConvertTo(System.Type destinationType) => throw null; - public virtual object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object ConvertFromInvariantString(System.ComponentModel.ITypeDescriptorContext context, string text) => throw null; - public object ConvertFromInvariantString(string text) => throw null; - public object ConvertFromString(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, string text) => throw null; - public object ConvertFromString(System.ComponentModel.ITypeDescriptorContext context, string text) => throw null; - public object ConvertFromString(string text) => throw null; - public virtual object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public object ConvertTo(object value, System.Type destinationType) => throw null; - public string ConvertToInvariantString(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; - public string ConvertToInvariantString(object value) => throw null; - public string ConvertToString(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public string ConvertToString(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; - public string ConvertToString(object value) => throw null; - public object CreateInstance(System.Collections.IDictionary propertyValues) => throw null; - public virtual object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Collections.IDictionary propertyValues) => throw null; - protected System.Exception GetConvertFromException(object value) => throw null; - protected System.Exception GetConvertToException(object value, System.Type destinationType) => throw null; - public bool GetCreateInstanceSupported() => throw null; - public virtual bool GetCreateInstanceSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; - public virtual System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; - public System.ComponentModel.PropertyDescriptorCollection GetProperties(object value) => throw null; - public bool GetPropertiesSupported() => throw null; - public virtual bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public System.Collections.ICollection GetStandardValues() => throw null; - public virtual System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public bool GetStandardValuesExclusive() => throw null; - public virtual bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public bool GetStandardValuesSupported() => throw null; - public virtual bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public virtual bool IsValid(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; - public bool IsValid(object value) => throw null; - protected System.ComponentModel.PropertyDescriptorCollection SortProperties(System.ComponentModel.PropertyDescriptorCollection props, string[] names) => throw null; - public TypeConverter() => throw null; - } - - public abstract class TypeDescriptionProvider - { - public virtual object CreateInstance(System.IServiceProvider provider, System.Type objectType, System.Type[] argTypes, object[] args) => throw null; - public virtual System.Collections.IDictionary GetCache(object instance) => throw null; - public virtual System.ComponentModel.ICustomTypeDescriptor GetExtendedTypeDescriptor(object instance) => throw null; - protected internal virtual System.ComponentModel.IExtenderProvider[] GetExtenderProviders(object instance) => throw null; - public virtual string GetFullComponentName(object component) => throw null; - public System.Type GetReflectionType(System.Type objectType) => throw null; - public virtual System.Type GetReflectionType(System.Type objectType, object instance) => throw null; - public System.Type GetReflectionType(object instance) => throw null; - public virtual System.Type GetRuntimeType(System.Type reflectionType) => throw null; - public System.ComponentModel.ICustomTypeDescriptor GetTypeDescriptor(System.Type objectType) => throw null; - public virtual System.ComponentModel.ICustomTypeDescriptor GetTypeDescriptor(System.Type objectType, object instance) => throw null; - public System.ComponentModel.ICustomTypeDescriptor GetTypeDescriptor(object instance) => throw null; - public virtual bool IsSupportedType(System.Type type) => throw null; - protected TypeDescriptionProvider() => throw null; - protected TypeDescriptionProvider(System.ComponentModel.TypeDescriptionProvider parent) => throw null; - } - - public class TypeDescriptor - { - public static System.ComponentModel.TypeDescriptionProvider AddAttributes(System.Type type, params System.Attribute[] attributes) => throw null; - public static System.ComponentModel.TypeDescriptionProvider AddAttributes(object instance, params System.Attribute[] attributes) => throw null; - public static void AddEditorTable(System.Type editorBaseType, System.Collections.Hashtable table) => throw null; - public static void AddProvider(System.ComponentModel.TypeDescriptionProvider provider, System.Type type) => throw null; - public static void AddProvider(System.ComponentModel.TypeDescriptionProvider provider, object instance) => throw null; - public static void AddProviderTransparent(System.ComponentModel.TypeDescriptionProvider provider, System.Type type) => throw null; - public static void AddProviderTransparent(System.ComponentModel.TypeDescriptionProvider provider, object instance) => throw null; - public static System.ComponentModel.IComNativeDescriptorHandler ComNativeDescriptorHandler { get => throw null; set => throw null; } - public static System.Type ComObjectType { get => throw null; } - public static void CreateAssociation(object primary, object secondary) => throw null; - public static System.ComponentModel.Design.IDesigner CreateDesigner(System.ComponentModel.IComponent component, System.Type designerBaseType) => throw null; - public static System.ComponentModel.EventDescriptor CreateEvent(System.Type componentType, System.ComponentModel.EventDescriptor oldEventDescriptor, params System.Attribute[] attributes) => throw null; - public static System.ComponentModel.EventDescriptor CreateEvent(System.Type componentType, string name, System.Type type, params System.Attribute[] attributes) => throw null; - public static object CreateInstance(System.IServiceProvider provider, System.Type objectType, System.Type[] argTypes, object[] args) => throw null; - public static System.ComponentModel.PropertyDescriptor CreateProperty(System.Type componentType, System.ComponentModel.PropertyDescriptor oldPropertyDescriptor, params System.Attribute[] attributes) => throw null; - public static System.ComponentModel.PropertyDescriptor CreateProperty(System.Type componentType, string name, System.Type type, params System.Attribute[] attributes) => throw null; - public static object GetAssociation(System.Type type, object primary) => throw null; - public static System.ComponentModel.AttributeCollection GetAttributes(System.Type componentType) => throw null; - public static System.ComponentModel.AttributeCollection GetAttributes(object component) => throw null; - public static System.ComponentModel.AttributeCollection GetAttributes(object component, bool noCustomTypeDesc) => throw null; - public static string GetClassName(System.Type componentType) => throw null; - public static string GetClassName(object component) => throw null; - public static string GetClassName(object component, bool noCustomTypeDesc) => throw null; - public static string GetComponentName(object component) => throw null; - public static string GetComponentName(object component, bool noCustomTypeDesc) => throw null; - public static System.ComponentModel.TypeConverter GetConverter(System.Type type) => throw null; - public static System.ComponentModel.TypeConverter GetConverter(object component) => throw null; - public static System.ComponentModel.TypeConverter GetConverter(object component, bool noCustomTypeDesc) => throw null; - public static System.ComponentModel.EventDescriptor GetDefaultEvent(System.Type componentType) => throw null; - public static System.ComponentModel.EventDescriptor GetDefaultEvent(object component) => throw null; - public static System.ComponentModel.EventDescriptor GetDefaultEvent(object component, bool noCustomTypeDesc) => throw null; - public static System.ComponentModel.PropertyDescriptor GetDefaultProperty(System.Type componentType) => throw null; - public static System.ComponentModel.PropertyDescriptor GetDefaultProperty(object component) => throw null; - public static System.ComponentModel.PropertyDescriptor GetDefaultProperty(object component, bool noCustomTypeDesc) => throw null; - public static object GetEditor(System.Type type, System.Type editorBaseType) => throw null; - public static object GetEditor(object component, System.Type editorBaseType) => throw null; - public static object GetEditor(object component, System.Type editorBaseType, bool noCustomTypeDesc) => throw null; - public static System.ComponentModel.EventDescriptorCollection GetEvents(System.Type componentType) => throw null; - public static System.ComponentModel.EventDescriptorCollection GetEvents(System.Type componentType, System.Attribute[] attributes) => throw null; - public static System.ComponentModel.EventDescriptorCollection GetEvents(object component) => throw null; - public static System.ComponentModel.EventDescriptorCollection GetEvents(object component, System.Attribute[] attributes) => throw null; - public static System.ComponentModel.EventDescriptorCollection GetEvents(object component, System.Attribute[] attributes, bool noCustomTypeDesc) => throw null; - public static System.ComponentModel.EventDescriptorCollection GetEvents(object component, bool noCustomTypeDesc) => throw null; - public static string GetFullComponentName(object component) => throw null; - public static System.ComponentModel.PropertyDescriptorCollection GetProperties(System.Type componentType) => throw null; - public static System.ComponentModel.PropertyDescriptorCollection GetProperties(System.Type componentType, System.Attribute[] attributes) => throw null; - public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component) => throw null; - public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes) => throw null; - public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes, bool noCustomTypeDesc) => throw null; - public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, bool noCustomTypeDesc) => throw null; - public static System.ComponentModel.TypeDescriptionProvider GetProvider(System.Type type) => throw null; - public static System.ComponentModel.TypeDescriptionProvider GetProvider(object instance) => throw null; - public static System.Type GetReflectionType(System.Type type) => throw null; - public static System.Type GetReflectionType(object instance) => throw null; - public static System.Type InterfaceType { get => throw null; } - public static void Refresh(System.Reflection.Assembly assembly) => throw null; - public static void Refresh(System.Reflection.Module module) => throw null; - public static void Refresh(System.Type type) => throw null; - public static void Refresh(object component) => throw null; - public static event System.ComponentModel.RefreshEventHandler Refreshed; - public static void RemoveAssociation(object primary, object secondary) => throw null; - public static void RemoveAssociations(object primary) => throw null; - public static void RemoveProvider(System.ComponentModel.TypeDescriptionProvider provider, System.Type type) => throw null; - public static void RemoveProvider(System.ComponentModel.TypeDescriptionProvider provider, object instance) => throw null; - public static void RemoveProviderTransparent(System.ComponentModel.TypeDescriptionProvider provider, System.Type type) => throw null; - public static void RemoveProviderTransparent(System.ComponentModel.TypeDescriptionProvider provider, object instance) => throw null; - public static void SortDescriptorArray(System.Collections.IList infos) => throw null; - } - - public abstract class TypeListConverter : System.ComponentModel.TypeConverter - { - public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - protected TypeListConverter(System.Type[] types) => throw null; - } - - public class UInt128Converter : System.ComponentModel.BaseNumberConverter - { - public UInt128Converter() => throw null; - } - - public class UInt16Converter : System.ComponentModel.BaseNumberConverter - { - public UInt16Converter() => throw null; - } - - public class UInt32Converter : System.ComponentModel.BaseNumberConverter - { - public UInt32Converter() => throw null; - } - - public class UInt64Converter : System.ComponentModel.BaseNumberConverter - { - public UInt64Converter() => throw null; - } - - public class VersionConverter : System.ComponentModel.TypeConverter - { - public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; - public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; - public override bool IsValid(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; - public VersionConverter() => throw null; - } - - public class WarningException : System.SystemException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public string HelpTopic { get => throw null; } - public string HelpUrl { get => throw null; } - public WarningException() => throw null; - protected WarningException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public WarningException(string message) => throw null; - public WarningException(string message, System.Exception innerException) => throw null; - public WarningException(string message, string helpUrl) => throw null; - public WarningException(string message, string helpUrl, string helpTopic) => throw null; - } - namespace Design { public class ActiveDesignerEventArgs : System.EventArgs @@ -1555,9 +370,7 @@ namespace System public System.ComponentModel.Design.IDesignerHost NewDesigner { get => throw null; } public System.ComponentModel.Design.IDesignerHost OldDesigner { get => throw null; } } - public delegate void ActiveDesignerEventHandler(object sender, System.ComponentModel.Design.ActiveDesignerEventArgs e); - public class CheckoutException : System.Runtime.InteropServices.ExternalException { public static System.ComponentModel.Design.CheckoutException Canceled; @@ -1567,7 +380,6 @@ namespace System public CheckoutException(string message, System.Exception innerException) => throw null; public CheckoutException(string message, int errorCode) => throw null; } - public class CommandID { public CommandID(System.Guid menuGroup, int commandID) => throw null; @@ -1577,8 +389,7 @@ namespace System public virtual int ID { get => throw null; } public override string ToString() => throw null; } - - public class ComponentChangedEventArgs : System.EventArgs + public sealed class ComponentChangedEventArgs : System.EventArgs { public object Component { get => throw null; } public ComponentChangedEventArgs(object component, System.ComponentModel.MemberDescriptor member, object oldValue, object newValue) => throw null; @@ -1586,26 +397,20 @@ namespace System public object NewValue { get => throw null; } public object OldValue { get => throw null; } } - public delegate void ComponentChangedEventHandler(object sender, System.ComponentModel.Design.ComponentChangedEventArgs e); - - public class ComponentChangingEventArgs : System.EventArgs + public sealed class ComponentChangingEventArgs : System.EventArgs { public object Component { get => throw null; } public ComponentChangingEventArgs(object component, System.ComponentModel.MemberDescriptor member) => throw null; public System.ComponentModel.MemberDescriptor Member { get => throw null; } } - public delegate void ComponentChangingEventHandler(object sender, System.ComponentModel.Design.ComponentChangingEventArgs e); - public class ComponentEventArgs : System.EventArgs { public virtual System.ComponentModel.IComponent Component { get => throw null; } public ComponentEventArgs(System.ComponentModel.IComponent component) => throw null; } - public delegate void ComponentEventHandler(object sender, System.ComponentModel.Design.ComponentEventArgs e); - public class ComponentRenameEventArgs : System.EventArgs { public object Component { get => throw null; } @@ -1613,34 +418,31 @@ namespace System public virtual string NewName { get => throw null; } public virtual string OldName { get => throw null; } } - public delegate void ComponentRenameEventHandler(object sender, System.ComponentModel.Design.ComponentRenameEventArgs e); - public class DesignerCollection : System.Collections.ICollection, System.Collections.IEnumerable { void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } int System.Collections.ICollection.Count { get => throw null; } - public DesignerCollection(System.ComponentModel.Design.IDesignerHost[] designers) => throw null; public DesignerCollection(System.Collections.IList designers) => throw null; + public DesignerCollection(System.ComponentModel.Design.IDesignerHost[] designers) => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public virtual System.ComponentModel.Design.IDesignerHost this[int index] { get => throw null; } object System.Collections.ICollection.SyncRoot { get => throw null; } + public virtual System.ComponentModel.Design.IDesignerHost this[int index] { get => throw null; } } - public class DesignerEventArgs : System.EventArgs { - public System.ComponentModel.Design.IDesignerHost Designer { get => throw null; } public DesignerEventArgs(System.ComponentModel.Design.IDesignerHost host) => throw null; + public System.ComponentModel.Design.IDesignerHost Designer { get => throw null; } } - public delegate void DesignerEventHandler(object sender, System.ComponentModel.Design.DesignerEventArgs e); - public abstract class DesignerOptionService : System.ComponentModel.Design.IDesignerOptionService { - public class DesignerOptionCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + protected System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection CreateOptionCollection(System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection parent, string name, object value) => throw null; + protected DesignerOptionService() => throw null; + public sealed class DesignerOptionCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { int System.Collections.IList.Add(object value) => throw null; void System.Collections.IList.Clear() => throw null; @@ -1654,9 +456,7 @@ namespace System bool System.Collections.IList.IsFixedSize { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection this[int index] { get => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection this[string name] { get => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } public string Name { get => throw null; } public System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection Parent { get => throw null; } public System.ComponentModel.PropertyDescriptorCollection Properties { get => throw null; } @@ -1664,34 +464,29 @@ namespace System void System.Collections.IList.RemoveAt(int index) => throw null; public bool ShowDialog() => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection this[int index] { get => throw null; } + public System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection this[string name] { get => throw null; } } - - - protected System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection CreateOptionCollection(System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection parent, string name, object value) => throw null; - protected DesignerOptionService() => throw null; object System.ComponentModel.Design.IDesignerOptionService.GetOptionValue(string pageName, string valueName) => throw null; public System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection Options { get => throw null; } protected virtual void PopulateOptionCollection(System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection options) => throw null; void System.ComponentModel.Design.IDesignerOptionService.SetOptionValue(string pageName, string valueName, object value) => throw null; protected virtual bool ShowDialog(System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection options, object optionObject) => throw null; } - public abstract class DesignerTransaction : System.IDisposable { public void Cancel() => throw null; public bool Canceled { get => throw null; } public void Commit() => throw null; public bool Committed { get => throw null; } - public string Description { get => throw null; } protected DesignerTransaction() => throw null; protected DesignerTransaction(string description) => throw null; - void System.IDisposable.Dispose() => throw null; + public string Description { get => throw null; } protected virtual void Dispose(bool disposing) => throw null; + void System.IDisposable.Dispose() => throw null; protected abstract void OnCancel(); protected abstract void OnCommit(); - // ERR: Stub generator didn't handle member: ~DesignerTransaction } - public class DesignerTransactionCloseEventArgs : System.EventArgs { public DesignerTransactionCloseEventArgs(bool commit) => throw null; @@ -1699,18 +494,15 @@ namespace System public bool LastTransaction { get => throw null; } public bool TransactionCommitted { get => throw null; } } - public delegate void DesignerTransactionCloseEventHandler(object sender, System.ComponentModel.Design.DesignerTransactionCloseEventArgs e); - public class DesignerVerb : System.ComponentModel.Design.MenuCommand { - public string Description { get => throw null; set => throw null; } public DesignerVerb(string text, System.EventHandler handler) : base(default(System.EventHandler), default(System.ComponentModel.Design.CommandID)) => throw null; public DesignerVerb(string text, System.EventHandler handler, System.ComponentModel.Design.CommandID startCommandID) : base(default(System.EventHandler), default(System.ComponentModel.Design.CommandID)) => throw null; + public string Description { get => throw null; set { } } public string Text { get => throw null; } public override string ToString() => throw null; } - public class DesignerVerbCollection : System.Collections.CollectionBase { public int Add(System.ComponentModel.Design.DesignerVerb value) => throw null; @@ -1722,11 +514,10 @@ namespace System public DesignerVerbCollection(System.ComponentModel.Design.DesignerVerb[] value) => throw null; public int IndexOf(System.ComponentModel.Design.DesignerVerb value) => throw null; public void Insert(int index, System.ComponentModel.Design.DesignerVerb value) => throw null; - public System.ComponentModel.Design.DesignerVerb this[int index] { get => throw null; set => throw null; } protected override void OnValidate(object value) => throw null; public void Remove(System.ComponentModel.Design.DesignerVerb value) => throw null; + public System.ComponentModel.Design.DesignerVerb this[int index] { get => throw null; set { } } } - public class DesigntimeLicenseContext : System.ComponentModel.LicenseContext { public DesigntimeLicenseContext() => throw null; @@ -1734,63 +525,55 @@ namespace System public override void SetSavedLicenseKey(System.Type type, string key) => throw null; public override System.ComponentModel.LicenseUsageMode UsageMode { get => throw null; } } - public class DesigntimeLicenseContextSerializer { public static void Serialize(System.IO.Stream o, string cryptoKey, System.ComponentModel.Design.DesigntimeLicenseContext context) => throw null; } - - public enum HelpContextType : int + public enum HelpContextType { Ambient = 0, + Window = 1, Selection = 2, ToolWindowSelection = 3, - Window = 1, } - - public class HelpKeywordAttribute : System.Attribute + public sealed class HelpKeywordAttribute : System.Attribute { + public HelpKeywordAttribute() => throw null; + public HelpKeywordAttribute(string keyword) => throw null; + public HelpKeywordAttribute(System.Type t) => throw null; public static System.ComponentModel.Design.HelpKeywordAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string HelpKeyword { get => throw null; } - public HelpKeywordAttribute() => throw null; - public HelpKeywordAttribute(System.Type t) => throw null; - public HelpKeywordAttribute(string keyword) => throw null; public override bool IsDefaultAttribute() => throw null; } - - public enum HelpKeywordType : int + public enum HelpKeywordType { F1Keyword = 0, - FilterKeyword = 2, GeneralKeyword = 1, + FilterKeyword = 2, } - public interface IComponentChangeService { - event System.ComponentModel.Design.ComponentEventHandler ComponentAdded; - event System.ComponentModel.Design.ComponentEventHandler ComponentAdding; - event System.ComponentModel.Design.ComponentChangedEventHandler ComponentChanged; - event System.ComponentModel.Design.ComponentChangingEventHandler ComponentChanging; - event System.ComponentModel.Design.ComponentEventHandler ComponentRemoved; - event System.ComponentModel.Design.ComponentEventHandler ComponentRemoving; - event System.ComponentModel.Design.ComponentRenameEventHandler ComponentRename; + event System.ComponentModel.Design.ComponentEventHandler ComponentAdded { add { } remove { } } + event System.ComponentModel.Design.ComponentEventHandler ComponentAdding { add { } remove { } } + event System.ComponentModel.Design.ComponentChangedEventHandler ComponentChanged { add { } remove { } } + event System.ComponentModel.Design.ComponentChangingEventHandler ComponentChanging { add { } remove { } } + event System.ComponentModel.Design.ComponentEventHandler ComponentRemoved { add { } remove { } } + event System.ComponentModel.Design.ComponentEventHandler ComponentRemoving { add { } remove { } } + event System.ComponentModel.Design.ComponentRenameEventHandler ComponentRename { add { } remove { } } void OnComponentChanged(object component, System.ComponentModel.MemberDescriptor member, object oldValue, object newValue); void OnComponentChanging(object component, System.ComponentModel.MemberDescriptor member); } - public interface IComponentDiscoveryService { System.Collections.ICollection GetComponentTypes(System.ComponentModel.Design.IDesignerHost designerHost, System.Type baseType); } - public interface IComponentInitializer { void InitializeExistingComponent(System.Collections.IDictionary defaultValues); void InitializeNewComponent(System.Collections.IDictionary defaultValues); } - public interface IDesigner : System.IDisposable { System.ComponentModel.IComponent Component { get; } @@ -1798,17 +581,15 @@ namespace System void Initialize(System.ComponentModel.IComponent component); System.ComponentModel.Design.DesignerVerbCollection Verbs { get; } } - public interface IDesignerEventService { System.ComponentModel.Design.IDesignerHost ActiveDesigner { get; } - event System.ComponentModel.Design.ActiveDesignerEventHandler ActiveDesignerChanged; - event System.ComponentModel.Design.DesignerEventHandler DesignerCreated; - event System.ComponentModel.Design.DesignerEventHandler DesignerDisposed; + event System.ComponentModel.Design.ActiveDesignerEventHandler ActiveDesignerChanged { add { } remove { } } + event System.ComponentModel.Design.DesignerEventHandler DesignerCreated { add { } remove { } } + event System.ComponentModel.Design.DesignerEventHandler DesignerDisposed { add { } remove { } } System.ComponentModel.Design.DesignerCollection Designers { get; } - event System.EventHandler SelectionChanged; + event System.EventHandler SelectionChanged { add { } remove { } } } - public interface IDesignerFilter { void PostFilterAttributes(System.Collections.IDictionary attributes); @@ -1818,50 +599,45 @@ namespace System void PreFilterEvents(System.Collections.IDictionary events); void PreFilterProperties(System.Collections.IDictionary properties); } - public interface IDesignerHost : System.ComponentModel.Design.IServiceContainer, System.IServiceProvider { void Activate(); - event System.EventHandler Activated; + event System.EventHandler Activated { add { } remove { } } System.ComponentModel.IContainer Container { get; } System.ComponentModel.IComponent CreateComponent(System.Type componentClass); System.ComponentModel.IComponent CreateComponent(System.Type componentClass, string name); System.ComponentModel.Design.DesignerTransaction CreateTransaction(); System.ComponentModel.Design.DesignerTransaction CreateTransaction(string description); - event System.EventHandler Deactivated; + event System.EventHandler Deactivated { add { } remove { } } void DestroyComponent(System.ComponentModel.IComponent component); System.ComponentModel.Design.IDesigner GetDesigner(System.ComponentModel.IComponent component); System.Type GetType(string typeName); bool InTransaction { get; } - event System.EventHandler LoadComplete; + event System.EventHandler LoadComplete { add { } remove { } } bool Loading { get; } System.ComponentModel.IComponent RootComponent { get; } string RootComponentClassName { get; } - event System.ComponentModel.Design.DesignerTransactionCloseEventHandler TransactionClosed; - event System.ComponentModel.Design.DesignerTransactionCloseEventHandler TransactionClosing; + event System.ComponentModel.Design.DesignerTransactionCloseEventHandler TransactionClosed { add { } remove { } } + event System.ComponentModel.Design.DesignerTransactionCloseEventHandler TransactionClosing { add { } remove { } } string TransactionDescription { get; } - event System.EventHandler TransactionOpened; - event System.EventHandler TransactionOpening; + event System.EventHandler TransactionOpened { add { } remove { } } + event System.EventHandler TransactionOpening { add { } remove { } } } - public interface IDesignerHostTransactionState { bool IsClosingTransaction { get; } } - public interface IDesignerOptionService { object GetOptionValue(string pageName, string valueName); void SetOptionValue(string pageName, string valueName, object value); } - public interface IDictionaryService { object GetKey(object value); object GetValue(object key); void SetValue(object key, object value); } - public interface IEventBindingService { string CreateUniqueMethodName(System.ComponentModel.IComponent component, System.ComponentModel.EventDescriptor e); @@ -1873,18 +649,15 @@ namespace System bool ShowCode(System.ComponentModel.IComponent component, System.ComponentModel.EventDescriptor e); bool ShowCode(int lineNumber); } - public interface IExtenderListService { System.ComponentModel.IExtenderProvider[] GetExtenderProviders(); } - public interface IExtenderProviderService { void AddExtenderProvider(System.ComponentModel.IExtenderProvider provider); void RemoveExtenderProvider(System.ComponentModel.IExtenderProvider provider); } - public interface IHelpService { void AddContextAttribute(string name, string value, System.ComponentModel.Design.HelpKeywordType keywordType); @@ -1895,13 +668,11 @@ namespace System void ShowHelpFromKeyword(string helpKeyword); void ShowHelpFromUrl(string helpUrl); } - public interface IInheritanceService { void AddInheritedComponents(System.ComponentModel.IComponent component, System.ComponentModel.IContainer container); System.ComponentModel.InheritanceAttribute GetInheritanceAttribute(System.ComponentModel.IComponent component); } - public interface IMenuCommandService { void AddCommand(System.ComponentModel.Design.MenuCommand command); @@ -1913,7 +684,6 @@ namespace System void ShowContextMenu(System.ComponentModel.Design.CommandID menuID, int x, int y); System.ComponentModel.Design.DesignerVerbCollection Verbs { get; } } - public interface IReferenceService { System.ComponentModel.IComponent GetComponent(object reference); @@ -1922,31 +692,27 @@ namespace System object[] GetReferences(); object[] GetReferences(System.Type baseType); } - public interface IResourceService { System.Resources.IResourceReader GetResourceReader(System.Globalization.CultureInfo info); System.Resources.IResourceWriter GetResourceWriter(System.Globalization.CultureInfo info); } - public interface IRootDesigner : System.ComponentModel.Design.IDesigner, System.IDisposable { object GetView(System.ComponentModel.Design.ViewTechnology technology); System.ComponentModel.Design.ViewTechnology[] SupportedTechnologies { get; } } - public interface ISelectionService { bool GetComponentSelected(object component); System.Collections.ICollection GetSelectedComponents(); object PrimarySelection { get; } - event System.EventHandler SelectionChanged; - event System.EventHandler SelectionChanging; + event System.EventHandler SelectionChanged { add { } remove { } } + event System.EventHandler SelectionChanging { add { } remove { } } int SelectionCount { get; } void SetSelectedComponents(System.Collections.ICollection components); void SetSelectedComponents(System.Collections.ICollection components, System.ComponentModel.Design.SelectionTypes selectionType); } - public interface IServiceContainer : System.IServiceProvider { void AddService(System.Type serviceType, System.ComponentModel.Design.ServiceCreatorCallback callback); @@ -1956,25 +722,21 @@ namespace System void RemoveService(System.Type serviceType); void RemoveService(System.Type serviceType, bool promote); } - public interface ITreeDesigner : System.ComponentModel.Design.IDesigner, System.IDisposable { System.Collections.ICollection Children { get; } System.ComponentModel.Design.IDesigner Parent { get; } } - public interface ITypeDescriptorFilterService { bool FilterAttributes(System.ComponentModel.IComponent component, System.Collections.IDictionary attributes); bool FilterEvents(System.ComponentModel.IComponent component, System.Collections.IDictionary events); bool FilterProperties(System.ComponentModel.IComponent component, System.Collections.IDictionary properties); } - public interface ITypeDiscoveryService { System.Collections.ICollection GetTypes(System.Type baseType, bool excludeGlobalTypes); } - public interface ITypeResolutionService { System.Reflection.Assembly GetAssembly(System.Reflection.AssemblyName name); @@ -1985,58 +747,199 @@ namespace System System.Type GetType(string name, bool throwOnError, bool ignoreCase); void ReferenceAssembly(System.Reflection.AssemblyName name); } - public class MenuCommand { - public virtual bool Checked { get => throw null; set => throw null; } - public event System.EventHandler CommandChanged; + public virtual bool Checked { get => throw null; set { } } + public event System.EventHandler CommandChanged { add { } remove { } } public virtual System.ComponentModel.Design.CommandID CommandID { get => throw null; } - public virtual bool Enabled { get => throw null; set => throw null; } + public MenuCommand(System.EventHandler handler, System.ComponentModel.Design.CommandID command) => throw null; + public virtual bool Enabled { get => throw null; set { } } public virtual void Invoke() => throw null; public virtual void Invoke(object arg) => throw null; - public MenuCommand(System.EventHandler handler, System.ComponentModel.Design.CommandID command) => throw null; public virtual int OleStatus { get => throw null; } protected virtual void OnCommandChanged(System.EventArgs e) => throw null; public virtual System.Collections.IDictionary Properties { get => throw null; } - public virtual bool Supported { get => throw null; set => throw null; } + public virtual bool Supported { get => throw null; set { } } public override string ToString() => throw null; - public virtual bool Visible { get => throw null; set => throw null; } + public virtual bool Visible { get => throw null; set { } } } - [System.Flags] - public enum SelectionTypes : int + public enum SelectionTypes { - Add = 64, Auto = 1, - Click = 16, + Normal = 1, + Replace = 2, MouseDown = 4, MouseUp = 8, - Normal = 1, + Click = 16, Primary = 16, - Remove = 128, - Replace = 2, - Toggle = 32, Valid = 31, + Toggle = 32, + Add = 64, + Remove = 128, } - - public class ServiceContainer : System.ComponentModel.Design.IServiceContainer, System.IDisposable, System.IServiceProvider + namespace Serialization + { + public abstract class ComponentSerializationService + { + public abstract System.ComponentModel.Design.Serialization.SerializationStore CreateStore(); + protected ComponentSerializationService() => throw null; + public abstract System.Collections.ICollection Deserialize(System.ComponentModel.Design.Serialization.SerializationStore store); + public abstract System.Collections.ICollection Deserialize(System.ComponentModel.Design.Serialization.SerializationStore store, System.ComponentModel.IContainer container); + public void DeserializeTo(System.ComponentModel.Design.Serialization.SerializationStore store, System.ComponentModel.IContainer container) => throw null; + public void DeserializeTo(System.ComponentModel.Design.Serialization.SerializationStore store, System.ComponentModel.IContainer container, bool validateRecycledTypes) => throw null; + public abstract void DeserializeTo(System.ComponentModel.Design.Serialization.SerializationStore store, System.ComponentModel.IContainer container, bool validateRecycledTypes, bool applyDefaults); + public abstract System.ComponentModel.Design.Serialization.SerializationStore LoadStore(System.IO.Stream stream); + public abstract void Serialize(System.ComponentModel.Design.Serialization.SerializationStore store, object value); + public abstract void SerializeAbsolute(System.ComponentModel.Design.Serialization.SerializationStore store, object value); + public abstract void SerializeMember(System.ComponentModel.Design.Serialization.SerializationStore store, object owningObject, System.ComponentModel.MemberDescriptor member); + public abstract void SerializeMemberAbsolute(System.ComponentModel.Design.Serialization.SerializationStore store, object owningObject, System.ComponentModel.MemberDescriptor member); + } + public sealed class ContextStack + { + public void Append(object context) => throw null; + public ContextStack() => throw null; + public object Current { get => throw null; } + public object Pop() => throw null; + public void Push(object context) => throw null; + public object this[int level] { get => throw null; } + public object this[System.Type type] { get => throw null; } + } + public sealed class DefaultSerializationProviderAttribute : System.Attribute + { + public DefaultSerializationProviderAttribute(string providerTypeName) => throw null; + public DefaultSerializationProviderAttribute(System.Type providerType) => throw null; + public string ProviderTypeName { get => throw null; } + } + public abstract class DesignerLoader + { + public abstract void BeginLoad(System.ComponentModel.Design.Serialization.IDesignerLoaderHost host); + protected DesignerLoader() => throw null; + public abstract void Dispose(); + public virtual void Flush() => throw null; + public virtual bool Loading { get => throw null; } + } + public interface IDesignerLoaderHost : System.ComponentModel.Design.IDesignerHost, System.ComponentModel.Design.IServiceContainer, System.IServiceProvider + { + void EndLoad(string baseClassName, bool successful, System.Collections.ICollection errorCollection); + void Reload(); + } + public interface IDesignerLoaderHost2 : System.ComponentModel.Design.IDesignerHost, System.ComponentModel.Design.IServiceContainer, System.IServiceProvider, System.ComponentModel.Design.Serialization.IDesignerLoaderHost + { + bool CanReloadWithErrors { get; set; } + bool IgnoreErrorsDuringReload { get; set; } + } + public interface IDesignerLoaderService + { + void AddLoadDependency(); + void DependentLoadComplete(bool successful, System.Collections.ICollection errorCollection); + bool Reload(); + } + public interface IDesignerSerializationManager : System.IServiceProvider + { + void AddSerializationProvider(System.ComponentModel.Design.Serialization.IDesignerSerializationProvider provider); + System.ComponentModel.Design.Serialization.ContextStack Context { get; } + object CreateInstance(System.Type type, System.Collections.ICollection arguments, string name, bool addToContainer); + object GetInstance(string name); + string GetName(object value); + object GetSerializer(System.Type objectType, System.Type serializerType); + System.Type GetType(string typeName); + System.ComponentModel.PropertyDescriptorCollection Properties { get; } + void RemoveSerializationProvider(System.ComponentModel.Design.Serialization.IDesignerSerializationProvider provider); + void ReportError(object errorInformation); + event System.ComponentModel.Design.Serialization.ResolveNameEventHandler ResolveName { add { } remove { } } + event System.EventHandler SerializationComplete { add { } remove { } } + void SetName(object instance, string name); + } + public interface IDesignerSerializationProvider + { + object GetSerializer(System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object currentSerializer, System.Type objectType, System.Type serializerType); + } + public interface IDesignerSerializationService + { + System.Collections.ICollection Deserialize(object serializationData); + object Serialize(System.Collections.ICollection objects); + } + public interface INameCreationService + { + string CreateName(System.ComponentModel.IContainer container, System.Type dataType); + bool IsValidName(string name); + void ValidateName(string name); + } + public sealed class InstanceDescriptor + { + public System.Collections.ICollection Arguments { get => throw null; } + public InstanceDescriptor(System.Reflection.MemberInfo member, System.Collections.ICollection arguments) => throw null; + public InstanceDescriptor(System.Reflection.MemberInfo member, System.Collections.ICollection arguments, bool isComplete) => throw null; + public object Invoke() => throw null; + public bool IsComplete { get => throw null; } + public System.Reflection.MemberInfo MemberInfo { get => throw null; } + } + public struct MemberRelationship : System.IEquatable + { + public MemberRelationship(object owner, System.ComponentModel.MemberDescriptor member) => throw null; + public static System.ComponentModel.Design.Serialization.MemberRelationship Empty; + public bool Equals(System.ComponentModel.Design.Serialization.MemberRelationship other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public bool IsEmpty { get => throw null; } + public System.ComponentModel.MemberDescriptor Member { get => throw null; } + public static bool operator ==(System.ComponentModel.Design.Serialization.MemberRelationship left, System.ComponentModel.Design.Serialization.MemberRelationship right) => throw null; + public static bool operator !=(System.ComponentModel.Design.Serialization.MemberRelationship left, System.ComponentModel.Design.Serialization.MemberRelationship right) => throw null; + public object Owner { get => throw null; } + } + public abstract class MemberRelationshipService + { + protected MemberRelationshipService() => throw null; + protected virtual System.ComponentModel.Design.Serialization.MemberRelationship GetRelationship(System.ComponentModel.Design.Serialization.MemberRelationship source) => throw null; + protected virtual void SetRelationship(System.ComponentModel.Design.Serialization.MemberRelationship source, System.ComponentModel.Design.Serialization.MemberRelationship relationship) => throw null; + public abstract bool SupportsRelationship(System.ComponentModel.Design.Serialization.MemberRelationship source, System.ComponentModel.Design.Serialization.MemberRelationship relationship); + public System.ComponentModel.Design.Serialization.MemberRelationship this[System.ComponentModel.Design.Serialization.MemberRelationship source] { get => throw null; set { } } + public System.ComponentModel.Design.Serialization.MemberRelationship this[object sourceOwner, System.ComponentModel.MemberDescriptor sourceMember] { get => throw null; set { } } + } + public class ResolveNameEventArgs : System.EventArgs + { + public ResolveNameEventArgs(string name) => throw null; + public string Name { get => throw null; } + public object Value { get => throw null; set { } } + } + public delegate void ResolveNameEventHandler(object sender, System.ComponentModel.Design.Serialization.ResolveNameEventArgs e); + public sealed class RootDesignerSerializerAttribute : System.Attribute + { + public RootDesignerSerializerAttribute(string serializerTypeName, string baseSerializerTypeName, bool reloadable) => throw null; + public RootDesignerSerializerAttribute(string serializerTypeName, System.Type baseSerializerType, bool reloadable) => throw null; + public RootDesignerSerializerAttribute(System.Type serializerType, System.Type baseSerializerType, bool reloadable) => throw null; + public bool Reloadable { get => throw null; } + public string SerializerBaseTypeName { get => throw null; } + public string SerializerTypeName { get => throw null; } + public override object TypeId { get => throw null; } + } + public abstract class SerializationStore : System.IDisposable + { + public abstract void Close(); + protected SerializationStore() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + void System.IDisposable.Dispose() => throw null; + public abstract System.Collections.ICollection Errors { get; } + public abstract void Save(System.IO.Stream stream); + } + } + public class ServiceContainer : System.ComponentModel.Design.IServiceContainer, System.IServiceProvider, System.IDisposable { public void AddService(System.Type serviceType, System.ComponentModel.Design.ServiceCreatorCallback callback) => throw null; public virtual void AddService(System.Type serviceType, System.ComponentModel.Design.ServiceCreatorCallback callback, bool promote) => throw null; public void AddService(System.Type serviceType, object serviceInstance) => throw null; public virtual void AddService(System.Type serviceType, object serviceInstance, bool promote) => throw null; + public ServiceContainer() => throw null; + public ServiceContainer(System.IServiceProvider parentProvider) => throw null; protected virtual System.Type[] DefaultServices { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public virtual object GetService(System.Type serviceType) => throw null; public void RemoveService(System.Type serviceType) => throw null; public virtual void RemoveService(System.Type serviceType, bool promote) => throw null; - public ServiceContainer() => throw null; - public ServiceContainer(System.IServiceProvider parentProvider) => throw null; } - public delegate object ServiceCreatorCallback(System.ComponentModel.Design.IServiceContainer container, System.Type serviceType); - public class StandardCommands { public static System.ComponentModel.Design.CommandID AlignBottom; @@ -2054,6 +957,7 @@ namespace System public static System.ComponentModel.Design.CommandID CenterHorizontally; public static System.ComponentModel.Design.CommandID CenterVertically; public static System.ComponentModel.Design.CommandID Copy; + public StandardCommands() => throw null; public static System.ComponentModel.Design.CommandID Cut; public static System.ComponentModel.Design.CommandID Delete; public static System.ComponentModel.Design.CommandID DocumentOutline; @@ -2083,7 +987,6 @@ namespace System public static System.ComponentModel.Design.CommandID SizeToFit; public static System.ComponentModel.Design.CommandID SizeToGrid; public static System.ComponentModel.Design.CommandID SnapToGrid; - public StandardCommands() => throw null; public static System.ComponentModel.Design.CommandID TabOrder; public static System.ComponentModel.Design.CommandID Undo; public static System.ComponentModel.Design.CommandID Ungroup; @@ -2096,199 +999,1071 @@ namespace System public static System.ComponentModel.Design.CommandID ViewCode; public static System.ComponentModel.Design.CommandID ViewGrid; } - public class StandardToolWindows { + public StandardToolWindows() => throw null; public static System.Guid ObjectBrowser; public static System.Guid OutputWindow; public static System.Guid ProjectExplorer; public static System.Guid PropertyBrowser; public static System.Guid RelatedLinks; public static System.Guid ServerExplorer; - public StandardToolWindows() => throw null; public static System.Guid TaskList; public static System.Guid Toolbox; } - public abstract class TypeDescriptionProviderService { - public abstract System.ComponentModel.TypeDescriptionProvider GetProvider(System.Type type); - public abstract System.ComponentModel.TypeDescriptionProvider GetProvider(object instance); protected TypeDescriptionProviderService() => throw null; + public abstract System.ComponentModel.TypeDescriptionProvider GetProvider(object instance); + public abstract System.ComponentModel.TypeDescriptionProvider GetProvider(System.Type type); } - - public enum ViewTechnology : int + public enum ViewTechnology { - Default = 2, Passthrough = 0, WindowsForms = 1, + Default = 2, } - - namespace Serialization + } + public sealed class DesignTimeVisibleAttribute : System.Attribute + { + public DesignTimeVisibleAttribute() => throw null; + public DesignTimeVisibleAttribute(bool visible) => throw null; + public static System.ComponentModel.DesignTimeVisibleAttribute Default; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public override bool IsDefaultAttribute() => throw null; + public static System.ComponentModel.DesignTimeVisibleAttribute No; + public bool Visible { get => throw null; } + public static System.ComponentModel.DesignTimeVisibleAttribute Yes; + } + public class DoubleConverter : System.ComponentModel.BaseNumberConverter + { + public DoubleConverter() => throw null; + } + public class EnumConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; + protected virtual System.Collections.IComparer Comparer { get => throw null; } + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public EnumConverter(System.Type type) => throw null; + protected System.Type EnumType { get => throw null; } + public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override bool IsValid(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; + protected System.ComponentModel.TypeConverter.StandardValuesCollection Values { get => throw null; set { } } + } + public abstract class EventDescriptor : System.ComponentModel.MemberDescriptor + { + public abstract void AddEventHandler(object component, System.Delegate value); + public abstract System.Type ComponentType { get; } + protected EventDescriptor(System.ComponentModel.MemberDescriptor descr) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; + protected EventDescriptor(System.ComponentModel.MemberDescriptor descr, System.Attribute[] attrs) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; + protected EventDescriptor(string name, System.Attribute[] attrs) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; + public abstract System.Type EventType { get; } + public abstract bool IsMulticast { get; } + public abstract void RemoveEventHandler(object component, System.Delegate value); + } + public class EventDescriptorCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + { + public int Add(System.ComponentModel.EventDescriptor value) => throw null; + int System.Collections.IList.Add(object value) => throw null; + public void Clear() => throw null; + void System.Collections.IList.Clear() => throw null; + public bool Contains(System.ComponentModel.EventDescriptor value) => throw null; + bool System.Collections.IList.Contains(object value) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + int System.Collections.ICollection.Count { get => throw null; } + public EventDescriptorCollection(System.ComponentModel.EventDescriptor[] events) => throw null; + public EventDescriptorCollection(System.ComponentModel.EventDescriptor[] events, bool readOnly) => throw null; + public static System.ComponentModel.EventDescriptorCollection Empty; + public virtual System.ComponentModel.EventDescriptor Find(string name, bool ignoreCase) => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public int IndexOf(System.ComponentModel.EventDescriptor value) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; + public void Insert(int index, System.ComponentModel.EventDescriptor value) => throw null; + void System.Collections.IList.Insert(int index, object value) => throw null; + protected void InternalSort(System.Collections.IComparer sorter) => throw null; + protected void InternalSort(string[] names) => throw null; + bool System.Collections.IList.IsFixedSize { get => throw null; } + bool System.Collections.IList.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } + public void Remove(System.ComponentModel.EventDescriptor value) => throw null; + void System.Collections.IList.Remove(object value) => throw null; + public void RemoveAt(int index) => throw null; + void System.Collections.IList.RemoveAt(int index) => throw null; + public virtual System.ComponentModel.EventDescriptorCollection Sort() => throw null; + public virtual System.ComponentModel.EventDescriptorCollection Sort(System.Collections.IComparer comparer) => throw null; + public virtual System.ComponentModel.EventDescriptorCollection Sort(string[] names) => throw null; + public virtual System.ComponentModel.EventDescriptorCollection Sort(string[] names, System.Collections.IComparer comparer) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + public virtual System.ComponentModel.EventDescriptor this[int index] { get => throw null; } + public virtual System.ComponentModel.EventDescriptor this[string name] { get => throw null; } + } + public class ExpandableObjectConverter : System.ComponentModel.TypeConverter + { + public ExpandableObjectConverter() => throw null; + public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; + public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + } + public sealed class ExtenderProvidedPropertyAttribute : System.Attribute + { + public ExtenderProvidedPropertyAttribute() => throw null; + public override bool Equals(object obj) => throw null; + public System.ComponentModel.PropertyDescriptor ExtenderProperty { get => throw null; } + public override int GetHashCode() => throw null; + public override bool IsDefaultAttribute() => throw null; + public System.ComponentModel.IExtenderProvider Provider { get => throw null; } + public System.Type ReceiverType { get => throw null; } + } + public class GuidConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public GuidConverter() => throw null; + } + public class HalfConverter : System.ComponentModel.BaseNumberConverter + { + public HalfConverter() => throw null; + } + public class HandledEventArgs : System.EventArgs + { + public HandledEventArgs() => throw null; + public HandledEventArgs(bool defaultHandledValue) => throw null; + public bool Handled { get => throw null; set { } } + } + public delegate void HandledEventHandler(object sender, System.ComponentModel.HandledEventArgs e); + public interface IBindingList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + { + void AddIndex(System.ComponentModel.PropertyDescriptor property); + object AddNew(); + bool AllowEdit { get; } + bool AllowNew { get; } + bool AllowRemove { get; } + void ApplySort(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction); + int Find(System.ComponentModel.PropertyDescriptor property, object key); + bool IsSorted { get; } + event System.ComponentModel.ListChangedEventHandler ListChanged { add { } remove { } } + void RemoveIndex(System.ComponentModel.PropertyDescriptor property); + void RemoveSort(); + System.ComponentModel.ListSortDirection SortDirection { get; } + System.ComponentModel.PropertyDescriptor SortProperty { get; } + bool SupportsChangeNotification { get; } + bool SupportsSearching { get; } + bool SupportsSorting { get; } + } + public interface IBindingListView : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList + { + void ApplySort(System.ComponentModel.ListSortDescriptionCollection sorts); + string Filter { get; set; } + void RemoveFilter(); + System.ComponentModel.ListSortDescriptionCollection SortDescriptions { get; } + bool SupportsAdvancedSorting { get; } + bool SupportsFiltering { get; } + } + public interface ICancelAddNew + { + void CancelNew(int itemIndex); + void EndNew(int itemIndex); + } + public interface IComNativeDescriptorHandler + { + System.ComponentModel.AttributeCollection GetAttributes(object component); + string GetClassName(object component); + System.ComponentModel.TypeConverter GetConverter(object component); + System.ComponentModel.EventDescriptor GetDefaultEvent(object component); + System.ComponentModel.PropertyDescriptor GetDefaultProperty(object component); + object GetEditor(object component, System.Type baseEditorType); + System.ComponentModel.EventDescriptorCollection GetEvents(object component); + System.ComponentModel.EventDescriptorCollection GetEvents(object component, System.Attribute[] attributes); + string GetName(object component); + System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes); + object GetPropertyValue(object component, int dispid, ref bool success); + object GetPropertyValue(object component, string propertyName, ref bool success); + } + public interface ICustomTypeDescriptor + { + System.ComponentModel.AttributeCollection GetAttributes(); + string GetClassName(); + string GetComponentName(); + System.ComponentModel.TypeConverter GetConverter(); + System.ComponentModel.EventDescriptor GetDefaultEvent(); + System.ComponentModel.PropertyDescriptor GetDefaultProperty(); + object GetEditor(System.Type editorBaseType); + System.ComponentModel.EventDescriptorCollection GetEvents(); + System.ComponentModel.EventDescriptorCollection GetEvents(System.Attribute[] attributes); + System.ComponentModel.PropertyDescriptorCollection GetProperties(); + System.ComponentModel.PropertyDescriptorCollection GetProperties(System.Attribute[] attributes); + object GetPropertyOwner(System.ComponentModel.PropertyDescriptor pd); + } + public interface IDataErrorInfo + { + string Error { get; } + string this[string columnName] { get; } + } + public interface IExtenderProvider + { + bool CanExtend(object extendee); + } + public interface IIntellisenseBuilder + { + string Name { get; } + bool Show(string language, string value, ref string newValue); + } + public interface IListSource + { + bool ContainsListCollection { get; } + System.Collections.IList GetList(); + } + public interface INestedContainer : System.ComponentModel.IContainer, System.IDisposable + { + System.ComponentModel.IComponent Owner { get; } + } + public interface INestedSite : System.ComponentModel.ISite, System.IServiceProvider + { + string FullName { get; } + } + public sealed class InheritanceAttribute : System.Attribute + { + public InheritanceAttribute() => throw null; + public InheritanceAttribute(System.ComponentModel.InheritanceLevel inheritanceLevel) => throw null; + public static System.ComponentModel.InheritanceAttribute Default; + public override bool Equals(object value) => throw null; + public override int GetHashCode() => throw null; + public System.ComponentModel.InheritanceLevel InheritanceLevel { get => throw null; } + public static System.ComponentModel.InheritanceAttribute Inherited; + public static System.ComponentModel.InheritanceAttribute InheritedReadOnly; + public override bool IsDefaultAttribute() => throw null; + public static System.ComponentModel.InheritanceAttribute NotInherited; + public override string ToString() => throw null; + } + public enum InheritanceLevel + { + Inherited = 1, + InheritedReadOnly = 2, + NotInherited = 3, + } + public class InstallerTypeAttribute : System.Attribute + { + public InstallerTypeAttribute(string typeName) => throw null; + public InstallerTypeAttribute(System.Type installerType) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public virtual System.Type InstallerType { get => throw null; } + } + public abstract class InstanceCreationEditor + { + public abstract object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Type instanceType); + protected InstanceCreationEditor() => throw null; + public virtual string Text { get => throw null; } + } + public class Int128Converter : System.ComponentModel.BaseNumberConverter + { + public Int128Converter() => throw null; + } + public class Int16Converter : System.ComponentModel.BaseNumberConverter + { + public Int16Converter() => throw null; + } + public class Int32Converter : System.ComponentModel.BaseNumberConverter + { + public Int32Converter() => throw null; + } + public class Int64Converter : System.ComponentModel.BaseNumberConverter + { + public Int64Converter() => throw null; + } + public interface IRaiseItemChangedEvents + { + bool RaisesItemChangedEvents { get; } + } + public interface ISupportInitializeNotification : System.ComponentModel.ISupportInitialize + { + event System.EventHandler Initialized { add { } remove { } } + bool IsInitialized { get; } + } + public interface ITypeDescriptorContext : System.IServiceProvider + { + System.ComponentModel.IContainer Container { get; } + object Instance { get; } + void OnComponentChanged(); + bool OnComponentChanging(); + System.ComponentModel.PropertyDescriptor PropertyDescriptor { get; } + } + public interface ITypedList + { + System.ComponentModel.PropertyDescriptorCollection GetItemProperties(System.ComponentModel.PropertyDescriptor[] listAccessors); + string GetListName(System.ComponentModel.PropertyDescriptor[] listAccessors); + } + public abstract class License : System.IDisposable + { + protected License() => throw null; + public abstract void Dispose(); + public abstract string LicenseKey { get; } + } + public class LicenseContext : System.IServiceProvider + { + public LicenseContext() => throw null; + public virtual string GetSavedLicenseKey(System.Type type, System.Reflection.Assembly resourceAssembly) => throw null; + public virtual object GetService(System.Type type) => throw null; + public virtual void SetSavedLicenseKey(System.Type type, string key) => throw null; + public virtual System.ComponentModel.LicenseUsageMode UsageMode { get => throw null; } + } + public class LicenseException : System.SystemException + { + protected LicenseException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public LicenseException(System.Type type) => throw null; + public LicenseException(System.Type type, object instance) => throw null; + public LicenseException(System.Type type, object instance, string message) => throw null; + public LicenseException(System.Type type, object instance, string message, System.Exception innerException) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.Type LicensedType { get => throw null; } + } + public sealed class LicenseManager + { + public static object CreateWithContext(System.Type type, System.ComponentModel.LicenseContext creationContext) => throw null; + public static object CreateWithContext(System.Type type, System.ComponentModel.LicenseContext creationContext, object[] args) => throw null; + public static System.ComponentModel.LicenseContext CurrentContext { get => throw null; set { } } + public static bool IsLicensed(System.Type type) => throw null; + public static bool IsValid(System.Type type) => throw null; + public static bool IsValid(System.Type type, object instance, out System.ComponentModel.License license) => throw null; + public static void LockContext(object contextUser) => throw null; + public static void UnlockContext(object contextUser) => throw null; + public static System.ComponentModel.LicenseUsageMode UsageMode { get => throw null; } + public static void Validate(System.Type type) => throw null; + public static System.ComponentModel.License Validate(System.Type type, object instance) => throw null; + } + public abstract class LicenseProvider + { + protected LicenseProvider() => throw null; + public abstract System.ComponentModel.License GetLicense(System.ComponentModel.LicenseContext context, System.Type type, object instance, bool allowExceptions); + } + public sealed class LicenseProviderAttribute : System.Attribute + { + public LicenseProviderAttribute() => throw null; + public LicenseProviderAttribute(string typeName) => throw null; + public LicenseProviderAttribute(System.Type type) => throw null; + public static System.ComponentModel.LicenseProviderAttribute Default; + public override bool Equals(object value) => throw null; + public override int GetHashCode() => throw null; + public System.Type LicenseProvider { get => throw null; } + public override object TypeId { get => throw null; } + } + public enum LicenseUsageMode + { + Runtime = 0, + Designtime = 1, + } + public class LicFileLicenseProvider : System.ComponentModel.LicenseProvider + { + public LicFileLicenseProvider() => throw null; + protected virtual string GetKey(System.Type type) => throw null; + public override System.ComponentModel.License GetLicense(System.ComponentModel.LicenseContext context, System.Type type, object instance, bool allowExceptions) => throw null; + protected virtual bool IsKeyValid(string key, System.Type type) => throw null; + } + public sealed class ListBindableAttribute : System.Attribute + { + public ListBindableAttribute(bool listBindable) => throw null; + public ListBindableAttribute(System.ComponentModel.BindableSupport flags) => throw null; + public static System.ComponentModel.ListBindableAttribute Default; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public override bool IsDefaultAttribute() => throw null; + public bool ListBindable { get => throw null; } + public static System.ComponentModel.ListBindableAttribute No; + public static System.ComponentModel.ListBindableAttribute Yes; + } + public class ListChangedEventArgs : System.EventArgs + { + public ListChangedEventArgs(System.ComponentModel.ListChangedType listChangedType, System.ComponentModel.PropertyDescriptor propDesc) => throw null; + public ListChangedEventArgs(System.ComponentModel.ListChangedType listChangedType, int newIndex) => throw null; + public ListChangedEventArgs(System.ComponentModel.ListChangedType listChangedType, int newIndex, System.ComponentModel.PropertyDescriptor propDesc) => throw null; + public ListChangedEventArgs(System.ComponentModel.ListChangedType listChangedType, int newIndex, int oldIndex) => throw null; + public System.ComponentModel.ListChangedType ListChangedType { get => throw null; } + public int NewIndex { get => throw null; } + public int OldIndex { get => throw null; } + public System.ComponentModel.PropertyDescriptor PropertyDescriptor { get => throw null; } + } + public delegate void ListChangedEventHandler(object sender, System.ComponentModel.ListChangedEventArgs e); + public enum ListChangedType + { + Reset = 0, + ItemAdded = 1, + ItemDeleted = 2, + ItemMoved = 3, + ItemChanged = 4, + PropertyDescriptorAdded = 5, + PropertyDescriptorDeleted = 6, + PropertyDescriptorChanged = 7, + } + public class ListSortDescription + { + public ListSortDescription(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction) => throw null; + public System.ComponentModel.PropertyDescriptor PropertyDescriptor { get => throw null; set { } } + public System.ComponentModel.ListSortDirection SortDirection { get => throw null; set { } } + } + public class ListSortDescriptionCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + { + int System.Collections.IList.Add(object value) => throw null; + void System.Collections.IList.Clear() => throw null; + public bool Contains(object value) => throw null; + public void CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public ListSortDescriptionCollection() => throw null; + public ListSortDescriptionCollection(System.ComponentModel.ListSortDescription[] sorts) => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public int IndexOf(object value) => throw null; + void System.Collections.IList.Insert(int index, object value) => throw null; + bool System.Collections.IList.IsFixedSize { get => throw null; } + bool System.Collections.IList.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } + void System.Collections.IList.Remove(object value) => throw null; + void System.Collections.IList.RemoveAt(int index) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + public System.ComponentModel.ListSortDescription this[int index] { get => throw null; set { } } + } + public enum ListSortDirection + { + Ascending = 0, + Descending = 1, + } + public sealed class LookupBindingPropertiesAttribute : System.Attribute + { + public LookupBindingPropertiesAttribute() => throw null; + public LookupBindingPropertiesAttribute(string dataSource, string displayMember, string valueMember, string lookupMember) => throw null; + public string DataSource { get => throw null; } + public static System.ComponentModel.LookupBindingPropertiesAttribute Default; + public string DisplayMember { get => throw null; } + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public string LookupMember { get => throw null; } + public string ValueMember { get => throw null; } + } + public class MarshalByValueComponent : System.ComponentModel.IComponent, System.IDisposable, System.IServiceProvider + { + public virtual System.ComponentModel.IContainer Container { get => throw null; } + public MarshalByValueComponent() => throw null; + public virtual bool DesignMode { get => throw null; } + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public event System.EventHandler Disposed { add { } remove { } } + protected System.ComponentModel.EventHandlerList Events { get => throw null; } + public virtual object GetService(System.Type service) => throw null; + public virtual System.ComponentModel.ISite Site { get => throw null; set { } } + public override string ToString() => throw null; + } + public class MaskedTextProvider : System.ICloneable + { + public bool Add(char input) => throw null; + public bool Add(char input, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public bool Add(string input) => throw null; + public bool Add(string input, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public bool AllowPromptAsInput { get => throw null; } + public bool AsciiOnly { get => throw null; } + public int AssignedEditPositionCount { get => throw null; } + public int AvailableEditPositionCount { get => throw null; } + public void Clear() => throw null; + public void Clear(out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public object Clone() => throw null; + public MaskedTextProvider(string mask) => throw null; + public MaskedTextProvider(string mask, bool restrictToAscii) => throw null; + public MaskedTextProvider(string mask, char passwordChar, bool allowPromptAsInput) => throw null; + public MaskedTextProvider(string mask, System.Globalization.CultureInfo culture) => throw null; + public MaskedTextProvider(string mask, System.Globalization.CultureInfo culture, bool restrictToAscii) => throw null; + public MaskedTextProvider(string mask, System.Globalization.CultureInfo culture, bool allowPromptAsInput, char promptChar, char passwordChar, bool restrictToAscii) => throw null; + public MaskedTextProvider(string mask, System.Globalization.CultureInfo culture, char passwordChar, bool allowPromptAsInput) => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; } + public static char DefaultPasswordChar { get => throw null; } + public int EditPositionCount { get => throw null; } + public System.Collections.IEnumerator EditPositions { get => throw null; } + public int FindAssignedEditPositionFrom(int position, bool direction) => throw null; + public int FindAssignedEditPositionInRange(int startPosition, int endPosition, bool direction) => throw null; + public int FindEditPositionFrom(int position, bool direction) => throw null; + public int FindEditPositionInRange(int startPosition, int endPosition, bool direction) => throw null; + public int FindNonEditPositionFrom(int position, bool direction) => throw null; + public int FindNonEditPositionInRange(int startPosition, int endPosition, bool direction) => throw null; + public int FindUnassignedEditPositionFrom(int position, bool direction) => throw null; + public int FindUnassignedEditPositionInRange(int startPosition, int endPosition, bool direction) => throw null; + public static bool GetOperationResultFromHint(System.ComponentModel.MaskedTextResultHint hint) => throw null; + public bool IncludeLiterals { get => throw null; set { } } + public bool IncludePrompt { get => throw null; set { } } + public bool InsertAt(char input, int position) => throw null; + public bool InsertAt(char input, int position, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public bool InsertAt(string input, int position) => throw null; + public bool InsertAt(string input, int position, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public static int InvalidIndex { get => throw null; } + public bool IsAvailablePosition(int position) => throw null; + public bool IsEditPosition(int position) => throw null; + public bool IsPassword { get => throw null; set { } } + public static bool IsValidInputChar(char c) => throw null; + public static bool IsValidMaskChar(char c) => throw null; + public static bool IsValidPasswordChar(char c) => throw null; + public int LastAssignedPosition { get => throw null; } + public int Length { get => throw null; } + public string Mask { get => throw null; } + public bool MaskCompleted { get => throw null; } + public bool MaskFull { get => throw null; } + public char PasswordChar { get => throw null; set { } } + public char PromptChar { get => throw null; set { } } + public bool Remove() => throw null; + public bool Remove(out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public bool RemoveAt(int position) => throw null; + public bool RemoveAt(int startPosition, int endPosition) => throw null; + public bool RemoveAt(int startPosition, int endPosition, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public bool Replace(char input, int position) => throw null; + public bool Replace(char input, int startPosition, int endPosition, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public bool Replace(char input, int position, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public bool Replace(string input, int position) => throw null; + public bool Replace(string input, int startPosition, int endPosition, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public bool Replace(string input, int position, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public bool ResetOnPrompt { get => throw null; set { } } + public bool ResetOnSpace { get => throw null; set { } } + public bool Set(string input) => throw null; + public bool Set(string input, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + public bool SkipLiterals { get => throw null; set { } } + public char this[int index] { get => throw null; } + public string ToDisplayString() => throw null; + public override string ToString() => throw null; + public string ToString(bool ignorePasswordChar) => throw null; + public string ToString(bool includePrompt, bool includeLiterals) => throw null; + public string ToString(bool ignorePasswordChar, bool includePrompt, bool includeLiterals, int startPosition, int length) => throw null; + public string ToString(bool includePrompt, bool includeLiterals, int startPosition, int length) => throw null; + public string ToString(bool ignorePasswordChar, int startPosition, int length) => throw null; + public string ToString(int startPosition, int length) => throw null; + public bool VerifyChar(char input, int position, out System.ComponentModel.MaskedTextResultHint hint) => throw null; + public bool VerifyEscapeChar(char input, int position) => throw null; + public bool VerifyString(string input) => throw null; + public bool VerifyString(string input, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; + } + public enum MaskedTextResultHint + { + PositionOutOfRange = -55, + NonEditPosition = -54, + UnavailableEditPosition = -53, + PromptCharNotAllowed = -52, + InvalidInput = -51, + SignedDigitExpected = -5, + LetterExpected = -4, + DigitExpected = -3, + AlphanumericCharacterExpected = -2, + AsciiCharacterExpected = -1, + Unknown = 0, + CharacterEscaped = 1, + NoEffect = 2, + SideEffect = 3, + Success = 4, + } + public abstract class MemberDescriptor + { + protected virtual System.Attribute[] AttributeArray { get => throw null; set { } } + public virtual System.ComponentModel.AttributeCollection Attributes { get => throw null; } + public virtual string Category { get => throw null; } + protected virtual System.ComponentModel.AttributeCollection CreateAttributeCollection() => throw null; + protected MemberDescriptor(System.ComponentModel.MemberDescriptor descr) => throw null; + protected MemberDescriptor(System.ComponentModel.MemberDescriptor oldMemberDescriptor, System.Attribute[] newAttributes) => throw null; + protected MemberDescriptor(string name) => throw null; + protected MemberDescriptor(string name, System.Attribute[] attributes) => throw null; + public virtual string Description { get => throw null; } + public virtual bool DesignTimeOnly { get => throw null; } + public virtual string DisplayName { get => throw null; } + public override bool Equals(object obj) => throw null; + protected virtual void FillAttributes(System.Collections.IList attributeList) => throw null; + protected static System.Reflection.MethodInfo FindMethod(System.Type componentClass, string name, System.Type[] args, System.Type returnType) => throw null; + protected static System.Reflection.MethodInfo FindMethod(System.Type componentClass, string name, System.Type[] args, System.Type returnType, bool publicOnly) => throw null; + public override int GetHashCode() => throw null; + protected virtual object GetInvocationTarget(System.Type type, object instance) => throw null; + protected static object GetInvokee(System.Type componentClass, object component) => throw null; + protected static System.ComponentModel.ISite GetSite(object component) => throw null; + public virtual bool IsBrowsable { get => throw null; } + public virtual string Name { get => throw null; } + protected virtual int NameHashCode { get => throw null; } + } + public class MultilineStringConverter : System.ComponentModel.TypeConverter + { + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public MultilineStringConverter() => throw null; + public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; + public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + } + public class NestedContainer : System.ComponentModel.Container, System.ComponentModel.IContainer, System.IDisposable, System.ComponentModel.INestedContainer + { + protected override System.ComponentModel.ISite CreateSite(System.ComponentModel.IComponent component, string name) => throw null; + public NestedContainer(System.ComponentModel.IComponent owner) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected override object GetService(System.Type service) => throw null; + public System.ComponentModel.IComponent Owner { get => throw null; } + protected virtual string OwnerName { get => throw null; } + } + public class NullableConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public override object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Collections.IDictionary propertyValues) => throw null; + public NullableConverter(System.Type type) => throw null; + public override bool GetCreateInstanceSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; + public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override bool IsValid(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; + public System.Type NullableType { get => throw null; } + public System.Type UnderlyingType { get => throw null; } + public System.ComponentModel.TypeConverter UnderlyingTypeConverter { get => throw null; } + } + public sealed class PasswordPropertyTextAttribute : System.Attribute + { + public PasswordPropertyTextAttribute() => throw null; + public PasswordPropertyTextAttribute(bool password) => throw null; + public static System.ComponentModel.PasswordPropertyTextAttribute Default; + public override bool Equals(object o) => throw null; + public override int GetHashCode() => throw null; + public override bool IsDefaultAttribute() => throw null; + public static System.ComponentModel.PasswordPropertyTextAttribute No; + public bool Password { get => throw null; } + public static System.ComponentModel.PasswordPropertyTextAttribute Yes; + } + public abstract class PropertyDescriptor : System.ComponentModel.MemberDescriptor + { + public virtual void AddValueChanged(object component, System.EventHandler handler) => throw null; + public abstract bool CanResetValue(object component); + public abstract System.Type ComponentType { get; } + public virtual System.ComponentModel.TypeConverter Converter { get => throw null; } + protected object CreateInstance(System.Type type) => throw null; + protected PropertyDescriptor(System.ComponentModel.MemberDescriptor descr) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; + protected PropertyDescriptor(System.ComponentModel.MemberDescriptor descr, System.Attribute[] attrs) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; + protected PropertyDescriptor(string name, System.Attribute[] attrs) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; + public override bool Equals(object obj) => throw null; + protected override void FillAttributes(System.Collections.IList attributeList) => throw null; + public System.ComponentModel.PropertyDescriptorCollection GetChildProperties() => throw null; + public System.ComponentModel.PropertyDescriptorCollection GetChildProperties(System.Attribute[] filter) => throw null; + public System.ComponentModel.PropertyDescriptorCollection GetChildProperties(object instance) => throw null; + public virtual System.ComponentModel.PropertyDescriptorCollection GetChildProperties(object instance, System.Attribute[] filter) => throw null; + public virtual object GetEditor(System.Type editorBaseType) => throw null; + public override int GetHashCode() => throw null; + protected override object GetInvocationTarget(System.Type type, object instance) => throw null; + protected System.Type GetTypeFromName(string typeName) => throw null; + public abstract object GetValue(object component); + protected System.EventHandler GetValueChangedHandler(object component) => throw null; + public virtual bool IsLocalizable { get => throw null; } + public abstract bool IsReadOnly { get; } + protected virtual void OnValueChanged(object component, System.EventArgs e) => throw null; + public abstract System.Type PropertyType { get; } + public virtual void RemoveValueChanged(object component, System.EventHandler handler) => throw null; + public abstract void ResetValue(object component); + public System.ComponentModel.DesignerSerializationVisibility SerializationVisibility { get => throw null; } + public abstract void SetValue(object component, object value); + public abstract bool ShouldSerializeValue(object component); + public virtual bool SupportsChangeEvents { get => throw null; } + } + public class PropertyDescriptorCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.IList + { + public int Add(System.ComponentModel.PropertyDescriptor value) => throw null; + void System.Collections.IDictionary.Add(object key, object value) => throw null; + int System.Collections.IList.Add(object value) => throw null; + public void Clear() => throw null; + void System.Collections.IDictionary.Clear() => throw null; + void System.Collections.IList.Clear() => throw null; + public bool Contains(System.ComponentModel.PropertyDescriptor value) => throw null; + bool System.Collections.IDictionary.Contains(object key) => throw null; + bool System.Collections.IList.Contains(object value) => throw null; + public void CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + int System.Collections.ICollection.Count { get => throw null; } + public PropertyDescriptorCollection(System.ComponentModel.PropertyDescriptor[] properties) => throw null; + public PropertyDescriptorCollection(System.ComponentModel.PropertyDescriptor[] properties, bool readOnly) => throw null; + public static System.ComponentModel.PropertyDescriptorCollection Empty; + public virtual System.ComponentModel.PropertyDescriptor Find(string name, bool ignoreCase) => throw null; + public virtual System.Collections.IEnumerator GetEnumerator() => throw null; + System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public int IndexOf(System.ComponentModel.PropertyDescriptor value) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; + public void Insert(int index, System.ComponentModel.PropertyDescriptor value) => throw null; + void System.Collections.IList.Insert(int index, object value) => throw null; + protected void InternalSort(System.Collections.IComparer sorter) => throw null; + protected void InternalSort(string[] names) => throw null; + bool System.Collections.IDictionary.IsFixedSize { get => throw null; } + bool System.Collections.IList.IsFixedSize { get => throw null; } + bool System.Collections.IDictionary.IsReadOnly { get => throw null; } + bool System.Collections.IList.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } + object System.Collections.IList.this[int index] { get => throw null; set { } } + System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } + public void Remove(System.ComponentModel.PropertyDescriptor value) => throw null; + void System.Collections.IDictionary.Remove(object key) => throw null; + void System.Collections.IList.Remove(object value) => throw null; + public void RemoveAt(int index) => throw null; + void System.Collections.IList.RemoveAt(int index) => throw null; + public virtual System.ComponentModel.PropertyDescriptorCollection Sort() => throw null; + public virtual System.ComponentModel.PropertyDescriptorCollection Sort(System.Collections.IComparer comparer) => throw null; + public virtual System.ComponentModel.PropertyDescriptorCollection Sort(string[] names) => throw null; + public virtual System.ComponentModel.PropertyDescriptorCollection Sort(string[] names, System.Collections.IComparer comparer) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + public virtual System.ComponentModel.PropertyDescriptor this[int index] { get => throw null; } + public virtual System.ComponentModel.PropertyDescriptor this[string name] { get => throw null; } + System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } + } + public class PropertyTabAttribute : System.Attribute + { + public PropertyTabAttribute() => throw null; + public PropertyTabAttribute(string tabClassName) => throw null; + public PropertyTabAttribute(string tabClassName, System.ComponentModel.PropertyTabScope tabScope) => throw null; + public PropertyTabAttribute(System.Type tabClass) => throw null; + public PropertyTabAttribute(System.Type tabClass, System.ComponentModel.PropertyTabScope tabScope) => throw null; + public bool Equals(System.ComponentModel.PropertyTabAttribute other) => throw null; + public override bool Equals(object other) => throw null; + public override int GetHashCode() => throw null; + protected void InitializeArrays(string[] tabClassNames, System.ComponentModel.PropertyTabScope[] tabScopes) => throw null; + protected void InitializeArrays(System.Type[] tabClasses, System.ComponentModel.PropertyTabScope[] tabScopes) => throw null; + public System.Type[] TabClasses { get => throw null; } + protected string[] TabClassNames { get => throw null; } + public System.ComponentModel.PropertyTabScope[] TabScopes { get => throw null; } + } + public enum PropertyTabScope + { + Static = 0, + Global = 1, + Document = 2, + Component = 3, + } + public sealed class ProvidePropertyAttribute : System.Attribute + { + public ProvidePropertyAttribute(string propertyName, string receiverTypeName) => throw null; + public ProvidePropertyAttribute(string propertyName, System.Type receiverType) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public string PropertyName { get => throw null; } + public string ReceiverTypeName { get => throw null; } + public override object TypeId { get => throw null; } + } + public class RecommendedAsConfigurableAttribute : System.Attribute + { + public RecommendedAsConfigurableAttribute(bool recommendedAsConfigurable) => throw null; + public static System.ComponentModel.RecommendedAsConfigurableAttribute Default; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public override bool IsDefaultAttribute() => throw null; + public static System.ComponentModel.RecommendedAsConfigurableAttribute No; + public bool RecommendedAsConfigurable { get => throw null; } + public static System.ComponentModel.RecommendedAsConfigurableAttribute Yes; + } + public class ReferenceConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public ReferenceConverter(System.Type type) => throw null; + public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + protected virtual bool IsValueAllowed(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; + } + public class RefreshEventArgs : System.EventArgs + { + public object ComponentChanged { get => throw null; } + public RefreshEventArgs(object componentChanged) => throw null; + public RefreshEventArgs(System.Type typeChanged) => throw null; + public System.Type TypeChanged { get => throw null; } + } + public delegate void RefreshEventHandler(System.ComponentModel.RefreshEventArgs e); + public class RunInstallerAttribute : System.Attribute + { + public RunInstallerAttribute(bool runInstaller) => throw null; + public static System.ComponentModel.RunInstallerAttribute Default; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public override bool IsDefaultAttribute() => throw null; + public static System.ComponentModel.RunInstallerAttribute No; + public bool RunInstaller { get => throw null; } + public static System.ComponentModel.RunInstallerAttribute Yes; + } + public class SByteConverter : System.ComponentModel.BaseNumberConverter + { + public SByteConverter() => throw null; + } + public sealed class SettingsBindableAttribute : System.Attribute + { + public bool Bindable { get => throw null; } + public SettingsBindableAttribute(bool bindable) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public static System.ComponentModel.SettingsBindableAttribute No; + public static System.ComponentModel.SettingsBindableAttribute Yes; + } + public class SingleConverter : System.ComponentModel.BaseNumberConverter + { + public SingleConverter() => throw null; + } + public class StringConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public StringConverter() => throw null; + } + public static class SyntaxCheck + { + public static bool CheckMachineName(string value) => throw null; + public static bool CheckPath(string value) => throw null; + public static bool CheckRootedPath(string value) => throw null; + } + public class TimeOnlyConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public TimeOnlyConverter() => throw null; + } + public class TimeSpanConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public TimeSpanConverter() => throw null; + } + public class ToolboxItemAttribute : System.Attribute + { + public ToolboxItemAttribute(bool defaultType) => throw null; + public ToolboxItemAttribute(string toolboxItemTypeName) => throw null; + public ToolboxItemAttribute(System.Type toolboxItemType) => throw null; + public static System.ComponentModel.ToolboxItemAttribute Default; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public override bool IsDefaultAttribute() => throw null; + public static System.ComponentModel.ToolboxItemAttribute None; + public System.Type ToolboxItemType { get => throw null; } + public string ToolboxItemTypeName { get => throw null; } + } + public sealed class ToolboxItemFilterAttribute : System.Attribute + { + public ToolboxItemFilterAttribute(string filterString) => throw null; + public ToolboxItemFilterAttribute(string filterString, System.ComponentModel.ToolboxItemFilterType filterType) => throw null; + public override bool Equals(object obj) => throw null; + public string FilterString { get => throw null; } + public System.ComponentModel.ToolboxItemFilterType FilterType { get => throw null; } + public override int GetHashCode() => throw null; + public override bool Match(object obj) => throw null; + public override string ToString() => throw null; + public override object TypeId { get => throw null; } + } + public enum ToolboxItemFilterType + { + Allow = 0, + Custom = 1, + Prevent = 2, + Require = 3, + } + public class TypeConverter + { + public virtual bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public bool CanConvertFrom(System.Type sourceType) => throw null; + public virtual bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; + public bool CanConvertTo(System.Type destinationType) => throw null; + public virtual object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object ConvertFromInvariantString(System.ComponentModel.ITypeDescriptorContext context, string text) => throw null; + public object ConvertFromInvariantString(string text) => throw null; + public object ConvertFromString(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, string text) => throw null; + public object ConvertFromString(System.ComponentModel.ITypeDescriptorContext context, string text) => throw null; + public object ConvertFromString(string text) => throw null; + public virtual object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public object ConvertTo(object value, System.Type destinationType) => throw null; + public string ConvertToInvariantString(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; + public string ConvertToInvariantString(object value) => throw null; + public string ConvertToString(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public string ConvertToString(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; + public string ConvertToString(object value) => throw null; + public object CreateInstance(System.Collections.IDictionary propertyValues) => throw null; + public virtual object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Collections.IDictionary propertyValues) => throw null; + public TypeConverter() => throw null; + protected System.Exception GetConvertFromException(object value) => throw null; + protected System.Exception GetConvertToException(object value, System.Type destinationType) => throw null; + public bool GetCreateInstanceSupported() => throw null; + public virtual bool GetCreateInstanceSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; + public virtual System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; + public System.ComponentModel.PropertyDescriptorCollection GetProperties(object value) => throw null; + public bool GetPropertiesSupported() => throw null; + public virtual bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public System.Collections.ICollection GetStandardValues() => throw null; + public virtual System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public bool GetStandardValuesExclusive() => throw null; + public virtual bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public bool GetStandardValuesSupported() => throw null; + public virtual bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public virtual bool IsValid(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; + public bool IsValid(object value) => throw null; + protected abstract class SimplePropertyDescriptor : System.ComponentModel.PropertyDescriptor { - public abstract class ComponentSerializationService - { - protected ComponentSerializationService() => throw null; - public abstract System.ComponentModel.Design.Serialization.SerializationStore CreateStore(); - public abstract System.Collections.ICollection Deserialize(System.ComponentModel.Design.Serialization.SerializationStore store); - public abstract System.Collections.ICollection Deserialize(System.ComponentModel.Design.Serialization.SerializationStore store, System.ComponentModel.IContainer container); - public void DeserializeTo(System.ComponentModel.Design.Serialization.SerializationStore store, System.ComponentModel.IContainer container) => throw null; - public void DeserializeTo(System.ComponentModel.Design.Serialization.SerializationStore store, System.ComponentModel.IContainer container, bool validateRecycledTypes) => throw null; - public abstract void DeserializeTo(System.ComponentModel.Design.Serialization.SerializationStore store, System.ComponentModel.IContainer container, bool validateRecycledTypes, bool applyDefaults); - public abstract System.ComponentModel.Design.Serialization.SerializationStore LoadStore(System.IO.Stream stream); - public abstract void Serialize(System.ComponentModel.Design.Serialization.SerializationStore store, object value); - public abstract void SerializeAbsolute(System.ComponentModel.Design.Serialization.SerializationStore store, object value); - public abstract void SerializeMember(System.ComponentModel.Design.Serialization.SerializationStore store, object owningObject, System.ComponentModel.MemberDescriptor member); - public abstract void SerializeMemberAbsolute(System.ComponentModel.Design.Serialization.SerializationStore store, object owningObject, System.ComponentModel.MemberDescriptor member); - } - - public class ContextStack - { - public void Append(object context) => throw null; - public ContextStack() => throw null; - public object Current { get => throw null; } - public object this[System.Type type] { get => throw null; } - public object this[int level] { get => throw null; } - public object Pop() => throw null; - public void Push(object context) => throw null; - } - - public class DefaultSerializationProviderAttribute : System.Attribute - { - public DefaultSerializationProviderAttribute(System.Type providerType) => throw null; - public DefaultSerializationProviderAttribute(string providerTypeName) => throw null; - public string ProviderTypeName { get => throw null; } - } - - public abstract class DesignerLoader - { - public abstract void BeginLoad(System.ComponentModel.Design.Serialization.IDesignerLoaderHost host); - protected DesignerLoader() => throw null; - public abstract void Dispose(); - public virtual void Flush() => throw null; - public virtual bool Loading { get => throw null; } - } - - public interface IDesignerLoaderHost : System.ComponentModel.Design.IDesignerHost, System.ComponentModel.Design.IServiceContainer, System.IServiceProvider - { - void EndLoad(string baseClassName, bool successful, System.Collections.ICollection errorCollection); - void Reload(); - } - - public interface IDesignerLoaderHost2 : System.ComponentModel.Design.IDesignerHost, System.ComponentModel.Design.IServiceContainer, System.ComponentModel.Design.Serialization.IDesignerLoaderHost, System.IServiceProvider - { - bool CanReloadWithErrors { get; set; } - bool IgnoreErrorsDuringReload { get; set; } - } - - public interface IDesignerLoaderService - { - void AddLoadDependency(); - void DependentLoadComplete(bool successful, System.Collections.ICollection errorCollection); - bool Reload(); - } - - public interface IDesignerSerializationManager : System.IServiceProvider - { - void AddSerializationProvider(System.ComponentModel.Design.Serialization.IDesignerSerializationProvider provider); - System.ComponentModel.Design.Serialization.ContextStack Context { get; } - object CreateInstance(System.Type type, System.Collections.ICollection arguments, string name, bool addToContainer); - object GetInstance(string name); - string GetName(object value); - object GetSerializer(System.Type objectType, System.Type serializerType); - System.Type GetType(string typeName); - System.ComponentModel.PropertyDescriptorCollection Properties { get; } - void RemoveSerializationProvider(System.ComponentModel.Design.Serialization.IDesignerSerializationProvider provider); - void ReportError(object errorInformation); - event System.ComponentModel.Design.Serialization.ResolveNameEventHandler ResolveName; - event System.EventHandler SerializationComplete; - void SetName(object instance, string name); - } - - public interface IDesignerSerializationProvider - { - object GetSerializer(System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object currentSerializer, System.Type objectType, System.Type serializerType); - } - - public interface IDesignerSerializationService - { - System.Collections.ICollection Deserialize(object serializationData); - object Serialize(System.Collections.ICollection objects); - } - - public interface INameCreationService - { - string CreateName(System.ComponentModel.IContainer container, System.Type dataType); - bool IsValidName(string name); - void ValidateName(string name); - } - - public class InstanceDescriptor - { - public System.Collections.ICollection Arguments { get => throw null; } - public InstanceDescriptor(System.Reflection.MemberInfo member, System.Collections.ICollection arguments) => throw null; - public InstanceDescriptor(System.Reflection.MemberInfo member, System.Collections.ICollection arguments, bool isComplete) => throw null; - public object Invoke() => throw null; - public bool IsComplete { get => throw null; } - public System.Reflection.MemberInfo MemberInfo { get => throw null; } - } - - public struct MemberRelationship : System.IEquatable - { - public static bool operator !=(System.ComponentModel.Design.Serialization.MemberRelationship left, System.ComponentModel.Design.Serialization.MemberRelationship right) => throw null; - public static bool operator ==(System.ComponentModel.Design.Serialization.MemberRelationship left, System.ComponentModel.Design.Serialization.MemberRelationship right) => throw null; - public static System.ComponentModel.Design.Serialization.MemberRelationship Empty; - public bool Equals(System.ComponentModel.Design.Serialization.MemberRelationship other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public bool IsEmpty { get => throw null; } - public System.ComponentModel.MemberDescriptor Member { get => throw null; } - // Stub generator skipped constructor - public MemberRelationship(object owner, System.ComponentModel.MemberDescriptor member) => throw null; - public object Owner { get => throw null; } - } - - public abstract class MemberRelationshipService - { - protected virtual System.ComponentModel.Design.Serialization.MemberRelationship GetRelationship(System.ComponentModel.Design.Serialization.MemberRelationship source) => throw null; - public System.ComponentModel.Design.Serialization.MemberRelationship this[System.ComponentModel.Design.Serialization.MemberRelationship source] { get => throw null; set => throw null; } - public System.ComponentModel.Design.Serialization.MemberRelationship this[object sourceOwner, System.ComponentModel.MemberDescriptor sourceMember] { get => throw null; set => throw null; } - protected MemberRelationshipService() => throw null; - protected virtual void SetRelationship(System.ComponentModel.Design.Serialization.MemberRelationship source, System.ComponentModel.Design.Serialization.MemberRelationship relationship) => throw null; - public abstract bool SupportsRelationship(System.ComponentModel.Design.Serialization.MemberRelationship source, System.ComponentModel.Design.Serialization.MemberRelationship relationship); - } - - public class ResolveNameEventArgs : System.EventArgs - { - public string Name { get => throw null; } - public ResolveNameEventArgs(string name) => throw null; - public object Value { get => throw null; set => throw null; } - } - - public delegate void ResolveNameEventHandler(object sender, System.ComponentModel.Design.Serialization.ResolveNameEventArgs e); - - public class RootDesignerSerializerAttribute : System.Attribute - { - public bool Reloadable { get => throw null; } - public RootDesignerSerializerAttribute(System.Type serializerType, System.Type baseSerializerType, bool reloadable) => throw null; - public RootDesignerSerializerAttribute(string serializerTypeName, System.Type baseSerializerType, bool reloadable) => throw null; - public RootDesignerSerializerAttribute(string serializerTypeName, string baseSerializerTypeName, bool reloadable) => throw null; - public string SerializerBaseTypeName { get => throw null; } - public string SerializerTypeName { get => throw null; } - public override object TypeId { get => throw null; } - } - - public abstract class SerializationStore : System.IDisposable - { - public abstract void Close(); - void System.IDisposable.Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public abstract System.Collections.ICollection Errors { get; } - public abstract void Save(System.IO.Stream stream); - protected SerializationStore() => throw null; - } - + public override bool CanResetValue(object component) => throw null; + public override System.Type ComponentType { get => throw null; } + protected SimplePropertyDescriptor(System.Type componentType, string name, System.Type propertyType) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; + protected SimplePropertyDescriptor(System.Type componentType, string name, System.Type propertyType, System.Attribute[] attributes) : base(default(System.ComponentModel.MemberDescriptor)) => throw null; + public override bool IsReadOnly { get => throw null; } + public override System.Type PropertyType { get => throw null; } + public override void ResetValue(object component) => throw null; + public override bool ShouldSerializeValue(object component) => throw null; } + protected System.ComponentModel.PropertyDescriptorCollection SortProperties(System.ComponentModel.PropertyDescriptorCollection props, string[] names) => throw null; + public class StandardValuesCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public void CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public StandardValuesCollection(System.Collections.ICollection values) => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.ICollection.SyncRoot { get => throw null; } + public object this[int index] { get => throw null; } + } + } + public abstract class TypeDescriptionProvider + { + public virtual object CreateInstance(System.IServiceProvider provider, System.Type objectType, System.Type[] argTypes, object[] args) => throw null; + protected TypeDescriptionProvider() => throw null; + protected TypeDescriptionProvider(System.ComponentModel.TypeDescriptionProvider parent) => throw null; + public virtual System.Collections.IDictionary GetCache(object instance) => throw null; + public virtual System.ComponentModel.ICustomTypeDescriptor GetExtendedTypeDescriptor(object instance) => throw null; + protected virtual System.ComponentModel.IExtenderProvider[] GetExtenderProviders(object instance) => throw null; + public virtual string GetFullComponentName(object component) => throw null; + public System.Type GetReflectionType(object instance) => throw null; + public System.Type GetReflectionType(System.Type objectType) => throw null; + public virtual System.Type GetReflectionType(System.Type objectType, object instance) => throw null; + public virtual System.Type GetRuntimeType(System.Type reflectionType) => throw null; + public System.ComponentModel.ICustomTypeDescriptor GetTypeDescriptor(object instance) => throw null; + public System.ComponentModel.ICustomTypeDescriptor GetTypeDescriptor(System.Type objectType) => throw null; + public virtual System.ComponentModel.ICustomTypeDescriptor GetTypeDescriptor(System.Type objectType, object instance) => throw null; + public virtual bool IsSupportedType(System.Type type) => throw null; + } + public sealed class TypeDescriptor + { + public static System.ComponentModel.TypeDescriptionProvider AddAttributes(object instance, params System.Attribute[] attributes) => throw null; + public static System.ComponentModel.TypeDescriptionProvider AddAttributes(System.Type type, params System.Attribute[] attributes) => throw null; + public static void AddEditorTable(System.Type editorBaseType, System.Collections.Hashtable table) => throw null; + public static void AddProvider(System.ComponentModel.TypeDescriptionProvider provider, object instance) => throw null; + public static void AddProvider(System.ComponentModel.TypeDescriptionProvider provider, System.Type type) => throw null; + public static void AddProviderTransparent(System.ComponentModel.TypeDescriptionProvider provider, object instance) => throw null; + public static void AddProviderTransparent(System.ComponentModel.TypeDescriptionProvider provider, System.Type type) => throw null; + public static System.ComponentModel.IComNativeDescriptorHandler ComNativeDescriptorHandler { get => throw null; set { } } + public static System.Type ComObjectType { get => throw null; } + public static void CreateAssociation(object primary, object secondary) => throw null; + public static System.ComponentModel.Design.IDesigner CreateDesigner(System.ComponentModel.IComponent component, System.Type designerBaseType) => throw null; + public static System.ComponentModel.EventDescriptor CreateEvent(System.Type componentType, System.ComponentModel.EventDescriptor oldEventDescriptor, params System.Attribute[] attributes) => throw null; + public static System.ComponentModel.EventDescriptor CreateEvent(System.Type componentType, string name, System.Type type, params System.Attribute[] attributes) => throw null; + public static object CreateInstance(System.IServiceProvider provider, System.Type objectType, System.Type[] argTypes, object[] args) => throw null; + public static System.ComponentModel.PropertyDescriptor CreateProperty(System.Type componentType, System.ComponentModel.PropertyDescriptor oldPropertyDescriptor, params System.Attribute[] attributes) => throw null; + public static System.ComponentModel.PropertyDescriptor CreateProperty(System.Type componentType, string name, System.Type type, params System.Attribute[] attributes) => throw null; + public static object GetAssociation(System.Type type, object primary) => throw null; + public static System.ComponentModel.AttributeCollection GetAttributes(object component) => throw null; + public static System.ComponentModel.AttributeCollection GetAttributes(object component, bool noCustomTypeDesc) => throw null; + public static System.ComponentModel.AttributeCollection GetAttributes(System.Type componentType) => throw null; + public static string GetClassName(object component) => throw null; + public static string GetClassName(object component, bool noCustomTypeDesc) => throw null; + public static string GetClassName(System.Type componentType) => throw null; + public static string GetComponentName(object component) => throw null; + public static string GetComponentName(object component, bool noCustomTypeDesc) => throw null; + public static System.ComponentModel.TypeConverter GetConverter(object component) => throw null; + public static System.ComponentModel.TypeConverter GetConverter(object component, bool noCustomTypeDesc) => throw null; + public static System.ComponentModel.TypeConverter GetConverter(System.Type type) => throw null; + public static System.ComponentModel.EventDescriptor GetDefaultEvent(object component) => throw null; + public static System.ComponentModel.EventDescriptor GetDefaultEvent(object component, bool noCustomTypeDesc) => throw null; + public static System.ComponentModel.EventDescriptor GetDefaultEvent(System.Type componentType) => throw null; + public static System.ComponentModel.PropertyDescriptor GetDefaultProperty(object component) => throw null; + public static System.ComponentModel.PropertyDescriptor GetDefaultProperty(object component, bool noCustomTypeDesc) => throw null; + public static System.ComponentModel.PropertyDescriptor GetDefaultProperty(System.Type componentType) => throw null; + public static object GetEditor(object component, System.Type editorBaseType) => throw null; + public static object GetEditor(object component, System.Type editorBaseType, bool noCustomTypeDesc) => throw null; + public static object GetEditor(System.Type type, System.Type editorBaseType) => throw null; + public static System.ComponentModel.EventDescriptorCollection GetEvents(object component) => throw null; + public static System.ComponentModel.EventDescriptorCollection GetEvents(object component, System.Attribute[] attributes) => throw null; + public static System.ComponentModel.EventDescriptorCollection GetEvents(object component, System.Attribute[] attributes, bool noCustomTypeDesc) => throw null; + public static System.ComponentModel.EventDescriptorCollection GetEvents(object component, bool noCustomTypeDesc) => throw null; + public static System.ComponentModel.EventDescriptorCollection GetEvents(System.Type componentType) => throw null; + public static System.ComponentModel.EventDescriptorCollection GetEvents(System.Type componentType, System.Attribute[] attributes) => throw null; + public static string GetFullComponentName(object component) => throw null; + public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component) => throw null; + public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes) => throw null; + public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes, bool noCustomTypeDesc) => throw null; + public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, bool noCustomTypeDesc) => throw null; + public static System.ComponentModel.PropertyDescriptorCollection GetProperties(System.Type componentType) => throw null; + public static System.ComponentModel.PropertyDescriptorCollection GetProperties(System.Type componentType, System.Attribute[] attributes) => throw null; + public static System.ComponentModel.TypeDescriptionProvider GetProvider(object instance) => throw null; + public static System.ComponentModel.TypeDescriptionProvider GetProvider(System.Type type) => throw null; + public static System.Type GetReflectionType(object instance) => throw null; + public static System.Type GetReflectionType(System.Type type) => throw null; + public static System.Type InterfaceType { get => throw null; } + public static void Refresh(object component) => throw null; + public static void Refresh(System.Reflection.Assembly assembly) => throw null; + public static void Refresh(System.Reflection.Module module) => throw null; + public static void Refresh(System.Type type) => throw null; + public static event System.ComponentModel.RefreshEventHandler Refreshed { add { } remove { } } + public static void RemoveAssociation(object primary, object secondary) => throw null; + public static void RemoveAssociations(object primary) => throw null; + public static void RemoveProvider(System.ComponentModel.TypeDescriptionProvider provider, object instance) => throw null; + public static void RemoveProvider(System.ComponentModel.TypeDescriptionProvider provider, System.Type type) => throw null; + public static void RemoveProviderTransparent(System.ComponentModel.TypeDescriptionProvider provider, object instance) => throw null; + public static void RemoveProviderTransparent(System.ComponentModel.TypeDescriptionProvider provider, System.Type type) => throw null; + public static void SortDescriptorArray(System.Collections.IList infos) => throw null; + } + public abstract class TypeListConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + protected TypeListConverter(System.Type[] types) => throw null; + public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + } + public class UInt128Converter : System.ComponentModel.BaseNumberConverter + { + public UInt128Converter() => throw null; + } + public class UInt16Converter : System.ComponentModel.BaseNumberConverter + { + public UInt16Converter() => throw null; + } + public class UInt32Converter : System.ComponentModel.BaseNumberConverter + { + public UInt32Converter() => throw null; + } + public class UInt64Converter : System.ComponentModel.BaseNumberConverter + { + public UInt64Converter() => throw null; + } + public class VersionConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public VersionConverter() => throw null; + public override bool IsValid(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; + } + public class WarningException : System.SystemException + { + public WarningException() => throw null; + protected WarningException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public WarningException(string message) => throw null; + public WarningException(string message, System.Exception innerException) => throw null; + public WarningException(string message, string helpUrl) => throw null; + public WarningException(string message, string helpUrl, string helpTopic) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string HelpTopic { get => throw null; } + public string HelpUrl { get => throw null; } } } namespace Drawing @@ -2297,13 +2072,12 @@ namespace System { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; - public ColorConverter() => throw null; public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public ColorConverter() => throw null; public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => throw null; public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - public class PointConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -2311,12 +2085,11 @@ namespace System public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; public override object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Collections.IDictionary propertyValues) => throw null; + public PointConverter() => throw null; public override bool GetCreateInstanceSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public PointConverter() => throw null; } - public class RectangleConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -2324,12 +2097,11 @@ namespace System public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; public override object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Collections.IDictionary propertyValues) => throw null; + public RectangleConverter() => throw null; public override bool GetCreateInstanceSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public RectangleConverter() => throw null; } - public class SizeConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -2337,12 +2109,11 @@ namespace System public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; public override object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Collections.IDictionary propertyValues) => throw null; + public SizeConverter() => throw null; public override bool GetCreateInstanceSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public SizeConverter() => throw null; } - public class SizeFConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -2350,12 +2121,11 @@ namespace System public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; public override object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Collections.IDictionary propertyValues) => throw null; + public SizeFConverter() => throw null; public override bool GetCreateInstanceSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; public override System.ComponentModel.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; - public SizeFConverter() => throw null; } - } namespace Security { @@ -2369,7 +2139,6 @@ namespace System public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; public ExtendedProtectionPolicyTypeConverter() => throw null; } - } } } @@ -2379,33 +2148,38 @@ namespace System { public System.DateTime SignalTime { get => throw null; } } - public delegate void ElapsedEventHandler(object sender, System.Timers.ElapsedEventArgs e); - public class Timer : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize { - public bool AutoReset { get => throw null; set => throw null; } + public bool AutoReset { get => throw null; set { } } public void BeginInit() => throw null; public void Close() => throw null; + public Timer() => throw null; + public Timer(double interval) => throw null; + public Timer(System.TimeSpan interval) => throw null; protected override void Dispose(bool disposing) => throw null; - public event System.Timers.ElapsedEventHandler Elapsed; - public bool Enabled { get => throw null; set => throw null; } + public event System.Timers.ElapsedEventHandler Elapsed { add { } remove { } } + public bool Enabled { get => throw null; set { } } public void EndInit() => throw null; - public double Interval { get => throw null; set => throw null; } - public override System.ComponentModel.ISite Site { get => throw null; set => throw null; } + public double Interval { get => throw null; set { } } + public override System.ComponentModel.ISite Site { get => throw null; set { } } public void Start() => throw null; public void Stop() => throw null; - public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get => throw null; set => throw null; } - public Timer() => throw null; - public Timer(System.TimeSpan interval) => throw null; - public Timer(double interval) => throw null; + public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get => throw null; set { } } } - public class TimersDescriptionAttribute : System.ComponentModel.DescriptionAttribute { - public override string Description { get => throw null; } public TimersDescriptionAttribute(string description) => throw null; + public override string Description { get => throw null; } } - + } + public class UriTypeConverter : System.ComponentModel.TypeConverter + { + public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; + public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; + public UriTypeConverter() => throw null; + public override bool IsValid(System.ComponentModel.ITypeDescriptorContext context, object value) => throw null; } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.cs index ddfcd435eb3..26cf94df8da 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.cs @@ -1,39 +1,33 @@ // This file contains auto-generated code. // Generated from `System.ComponentModel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { - public interface IServiceProvider - { - object GetService(System.Type serviceType); - } - namespace ComponentModel { public class CancelEventArgs : System.EventArgs { - public bool Cancel { get => throw null; set => throw null; } + public bool Cancel { get => throw null; set { } } public CancelEventArgs() => throw null; public CancelEventArgs(bool cancel) => throw null; } - public interface IChangeTracking { void AcceptChanges(); bool IsChanged { get; } } - public interface IEditableObject { void BeginEdit(); void CancelEdit(); void EndEdit(); } - public interface IRevertibleChangeTracking : System.ComponentModel.IChangeTracking { void RejectChanges(); } - + } + public interface IServiceProvider + { + object GetService(System.Type serviceType); } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs new file mode 100644 index 00000000000..615f6ac0ba3 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Console.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Console.cs index 37958e8a2a3..82d7a822fc0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Console.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Console.cs @@ -1,27 +1,26 @@ // This file contains auto-generated code. // Generated from `System.Console, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { public static class Console { - public static System.ConsoleColor BackgroundColor { get => throw null; set => throw null; } + public static System.ConsoleColor BackgroundColor { get => throw null; set { } } public static void Beep() => throw null; public static void Beep(int frequency, int duration) => throw null; - public static int BufferHeight { get => throw null; set => throw null; } - public static int BufferWidth { get => throw null; set => throw null; } - public static event System.ConsoleCancelEventHandler CancelKeyPress; + public static int BufferHeight { get => throw null; set { } } + public static int BufferWidth { get => throw null; set { } } + public static event System.ConsoleCancelEventHandler CancelKeyPress { add { } remove { } } public static bool CapsLock { get => throw null; } public static void Clear() => throw null; - public static int CursorLeft { get => throw null; set => throw null; } - public static int CursorSize { get => throw null; set => throw null; } - public static int CursorTop { get => throw null; set => throw null; } - public static bool CursorVisible { get => throw null; set => throw null; } + public static int CursorLeft { get => throw null; set { } } + public static int CursorSize { get => throw null; set { } } + public static int CursorTop { get => throw null; set { } } + public static bool CursorVisible { get => throw null; set { } } public static System.IO.TextWriter Error { get => throw null; } - public static System.ConsoleColor ForegroundColor { get => throw null; set => throw null; } - public static (int, int) GetCursorPosition() => throw null; + public static System.ConsoleColor ForegroundColor { get => throw null; set { } } + public static (int Left, int Top) GetCursorPosition() => throw null; public static System.IO.TextReader In { get => throw null; } - public static System.Text.Encoding InputEncoding { get => throw null; set => throw null; } + public static System.Text.Encoding InputEncoding { get => throw null; set { } } public static bool IsErrorRedirected { get => throw null; } public static bool IsInputRedirected { get => throw null; } public static bool IsOutputRedirected { get => throw null; } @@ -29,7 +28,7 @@ namespace System public static int LargestWindowHeight { get => throw null; } public static int LargestWindowWidth { get => throw null; } public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop) => throw null; - public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop, System.Char sourceChar, System.ConsoleColor sourceForeColor, System.ConsoleColor sourceBackColor) => throw null; + public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop, char sourceChar, System.ConsoleColor sourceForeColor, System.ConsoleColor sourceBackColor) => throw null; public static bool NumberLock { get => throw null; } public static System.IO.Stream OpenStandardError() => throw null; public static System.IO.Stream OpenStandardError(int bufferSize) => throw null; @@ -38,7 +37,7 @@ namespace System public static System.IO.Stream OpenStandardOutput() => throw null; public static System.IO.Stream OpenStandardOutput(int bufferSize) => throw null; public static System.IO.TextWriter Out { get => throw null; } - public static System.Text.Encoding OutputEncoding { get => throw null; set => throw null; } + public static System.Text.Encoding OutputEncoding { get => throw null; set { } } public static int Read() => throw null; public static System.ConsoleKeyInfo ReadKey() => throw null; public static System.ConsoleKeyInfo ReadKey(bool intercept) => throw null; @@ -51,96 +50,97 @@ namespace System public static void SetOut(System.IO.TextWriter newOut) => throw null; public static void SetWindowPosition(int left, int top) => throw null; public static void SetWindowSize(int width, int height) => throw null; - public static string Title { get => throw null; set => throw null; } - public static bool TreatControlCAsInput { get => throw null; set => throw null; } - public static int WindowHeight { get => throw null; set => throw null; } - public static int WindowLeft { get => throw null; set => throw null; } - public static int WindowTop { get => throw null; set => throw null; } - public static int WindowWidth { get => throw null; set => throw null; } - public static void Write(System.Char[] buffer) => throw null; - public static void Write(System.Char[] buffer, int index, int count) => throw null; + public static string Title { get => throw null; set { } } + public static bool TreatControlCAsInput { get => throw null; set { } } + public static int WindowHeight { get => throw null; set { } } + public static int WindowLeft { get => throw null; set { } } + public static int WindowTop { get => throw null; set { } } + public static int WindowWidth { get => throw null; set { } } public static void Write(bool value) => throw null; - public static void Write(System.Char value) => throw null; - public static void Write(System.Decimal value) => throw null; + public static void Write(char value) => throw null; + public static void Write(char[] buffer) => throw null; + public static void Write(char[] buffer, int index, int count) => throw null; + public static void Write(decimal value) => throw null; public static void Write(double value) => throw null; - public static void Write(float value) => throw null; public static void Write(int value) => throw null; - public static void Write(System.Int64 value) => throw null; + public static void Write(long value) => throw null; public static void Write(object value) => throw null; + public static void Write(float value) => throw null; public static void Write(string value) => throw null; public static void Write(string format, object arg0) => throw null; public static void Write(string format, object arg0, object arg1) => throw null; public static void Write(string format, object arg0, object arg1, object arg2) => throw null; public static void Write(string format, params object[] arg) => throw null; - public static void Write(System.UInt32 value) => throw null; - public static void Write(System.UInt64 value) => throw null; + public static void Write(uint value) => throw null; + public static void Write(ulong value) => throw null; public static void WriteLine() => throw null; - public static void WriteLine(System.Char[] buffer) => throw null; - public static void WriteLine(System.Char[] buffer, int index, int count) => throw null; public static void WriteLine(bool value) => throw null; - public static void WriteLine(System.Char value) => throw null; - public static void WriteLine(System.Decimal value) => throw null; + public static void WriteLine(char value) => throw null; + public static void WriteLine(char[] buffer) => throw null; + public static void WriteLine(char[] buffer, int index, int count) => throw null; + public static void WriteLine(decimal value) => throw null; public static void WriteLine(double value) => throw null; - public static void WriteLine(float value) => throw null; public static void WriteLine(int value) => throw null; - public static void WriteLine(System.Int64 value) => throw null; + public static void WriteLine(long value) => throw null; public static void WriteLine(object value) => throw null; + public static void WriteLine(float value) => throw null; public static void WriteLine(string value) => throw null; public static void WriteLine(string format, object arg0) => throw null; public static void WriteLine(string format, object arg0, object arg1) => throw null; public static void WriteLine(string format, object arg0, object arg1, object arg2) => throw null; public static void WriteLine(string format, params object[] arg) => throw null; - public static void WriteLine(System.UInt32 value) => throw null; - public static void WriteLine(System.UInt64 value) => throw null; + public static void WriteLine(uint value) => throw null; + public static void WriteLine(ulong value) => throw null; } - - public class ConsoleCancelEventArgs : System.EventArgs + public sealed class ConsoleCancelEventArgs : System.EventArgs { - public bool Cancel { get => throw null; set => throw null; } + public bool Cancel { get => throw null; set { } } public System.ConsoleSpecialKey SpecialKey { get => throw null; } } - public delegate void ConsoleCancelEventHandler(object sender, System.ConsoleCancelEventArgs e); - - public enum ConsoleColor : int + public enum ConsoleColor { Black = 0, - Blue = 9, - Cyan = 11, DarkBlue = 1, - DarkCyan = 3, - DarkGray = 8, DarkGreen = 2, - DarkMagenta = 5, + DarkCyan = 3, DarkRed = 4, + DarkMagenta = 5, DarkYellow = 6, Gray = 7, + DarkGray = 8, + Blue = 9, Green = 10, - Magenta = 13, + Cyan = 11, Red = 12, - White = 15, + Magenta = 13, Yellow = 14, + White = 15, } - - public enum ConsoleKey : int + public enum ConsoleKey { - A = 65, - Add = 107, - Applications = 93, - Attention = 246, - B = 66, Backspace = 8, - BrowserBack = 166, - BrowserFavorites = 171, - BrowserForward = 167, - BrowserHome = 172, - BrowserRefresh = 168, - BrowserSearch = 170, - BrowserStop = 169, - C = 67, + Tab = 9, Clear = 12, - CrSel = 247, - D = 68, + Enter = 13, + Pause = 19, + Escape = 27, + Spacebar = 32, + PageUp = 33, + PageDown = 34, + End = 35, + Home = 36, + LeftArrow = 37, + UpArrow = 38, + RightArrow = 39, + DownArrow = 40, + Select = 41, + Print = 42, + Execute = 43, + PrintScreen = 44, + Insert = 45, + Delete = 46, + Help = 47, D0 = 48, D1 = 49, D2 = 50, @@ -151,65 +151,36 @@ namespace System D7 = 55, D8 = 56, D9 = 57, - Decimal = 110, - Delete = 46, - Divide = 111, - DownArrow = 40, + A = 65, + B = 66, + C = 67, + D = 68, E = 69, - End = 35, - Enter = 13, - EraseEndOfFile = 249, - Escape = 27, - ExSel = 248, - Execute = 43, F = 70, - F1 = 112, - F10 = 121, - F11 = 122, - F12 = 123, - F13 = 124, - F14 = 125, - F15 = 126, - F16 = 127, - F17 = 128, - F18 = 129, - F19 = 130, - F2 = 113, - F20 = 131, - F21 = 132, - F22 = 133, - F23 = 134, - F24 = 135, - F3 = 114, - F4 = 115, - F5 = 116, - F6 = 117, - F7 = 118, - F8 = 119, - F9 = 120, G = 71, H = 72, - Help = 47, - Home = 36, I = 73, - Insert = 45, J = 74, K = 75, L = 76, - LaunchApp1 = 182, - LaunchApp2 = 183, - LaunchMail = 180, - LaunchMediaSelect = 181, - LeftArrow = 37, - LeftWindows = 91, M = 77, - MediaNext = 176, - MediaPlay = 179, - MediaPrevious = 177, - MediaStop = 178, - Multiply = 106, N = 78, - NoName = 252, + O = 79, + P = 80, + Q = 81, + R = 82, + S = 83, + T = 84, + U = 85, + V = 86, + W = 87, + X = 88, + Y = 89, + Z = 90, + LeftWindows = 91, + RightWindows = 92, + Applications = 93, + Sleep = 95, NumPad0 = 96, NumPad1 = 97, NumPad2 = 98, @@ -220,9 +191,59 @@ namespace System NumPad7 = 103, NumPad8 = 104, NumPad9 = 105, - O = 79, + Multiply = 106, + Add = 107, + Separator = 108, + Subtract = 109, + Decimal = 110, + Divide = 111, + F1 = 112, + F2 = 113, + F3 = 114, + F4 = 115, + F5 = 116, + F6 = 117, + F7 = 118, + F8 = 119, + F9 = 120, + F10 = 121, + F11 = 122, + F12 = 123, + F13 = 124, + F14 = 125, + F15 = 126, + F16 = 127, + F17 = 128, + F18 = 129, + F19 = 130, + F20 = 131, + F21 = 132, + F22 = 133, + F23 = 134, + F24 = 135, + BrowserBack = 166, + BrowserForward = 167, + BrowserRefresh = 168, + BrowserStop = 169, + BrowserSearch = 170, + BrowserFavorites = 171, + BrowserHome = 172, + VolumeMute = 173, + VolumeDown = 174, + VolumeUp = 175, + MediaNext = 176, + MediaPrevious = 177, + MediaStop = 178, + MediaPlay = 179, + LaunchMail = 180, + LaunchMediaSelect = 181, + LaunchApp1 = 182, + LaunchApp2 = 183, Oem1 = 186, - Oem102 = 226, + OemPlus = 187, + OemComma = 188, + OemMinus = 189, + OemPeriod = 190, Oem2 = 191, Oem3 = 192, Oem4 = 219, @@ -230,72 +251,41 @@ namespace System Oem6 = 221, Oem7 = 222, Oem8 = 223, - OemClear = 254, - OemComma = 188, - OemMinus = 189, - OemPeriod = 190, - OemPlus = 187, - P = 80, - Pa1 = 253, - Packet = 231, - PageDown = 34, - PageUp = 33, - Pause = 19, - Play = 250, - Print = 42, - PrintScreen = 44, + Oem102 = 226, Process = 229, - Q = 81, - R = 82, - RightArrow = 39, - RightWindows = 92, - S = 83, - Select = 41, - Separator = 108, - Sleep = 95, - Spacebar = 32, - Subtract = 109, - T = 84, - Tab = 9, - U = 85, - UpArrow = 38, - V = 86, - VolumeDown = 174, - VolumeMute = 173, - VolumeUp = 175, - W = 87, - X = 88, - Y = 89, - Z = 90, + Packet = 231, + Attention = 246, + CrSel = 247, + ExSel = 248, + EraseEndOfFile = 249, + Play = 250, Zoom = 251, + NoName = 252, + Pa1 = 253, + OemClear = 254, } - public struct ConsoleKeyInfo : System.IEquatable { - public static bool operator !=(System.ConsoleKeyInfo a, System.ConsoleKeyInfo b) => throw null; - public static bool operator ==(System.ConsoleKeyInfo a, System.ConsoleKeyInfo b) => throw null; - // Stub generator skipped constructor - public ConsoleKeyInfo(System.Char keyChar, System.ConsoleKey key, bool shift, bool alt, bool control) => throw null; + public ConsoleKeyInfo(char keyChar, System.ConsoleKey key, bool shift, bool alt, bool control) => throw null; public bool Equals(System.ConsoleKeyInfo obj) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; public System.ConsoleKey Key { get => throw null; } - public System.Char KeyChar { get => throw null; } + public char KeyChar { get => throw null; } public System.ConsoleModifiers Modifiers { get => throw null; } + public static bool operator ==(System.ConsoleKeyInfo a, System.ConsoleKeyInfo b) => throw null; + public static bool operator !=(System.ConsoleKeyInfo a, System.ConsoleKeyInfo b) => throw null; } - [System.Flags] - public enum ConsoleModifiers : int + public enum ConsoleModifiers { Alt = 1, - Control = 4, Shift = 2, + Control = 4, } - - public enum ConsoleSpecialKey : int + public enum ConsoleSpecialKey { - ControlBreak = 1, ControlC = 0, + ControlBreak = 1, } - } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs new file mode 100644 index 00000000000..57a099444e5 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs index 86fa07c14cb..8b9f2e0109c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs @@ -1,1560 +1,44 @@ // This file contains auto-generated code. // Generated from `System.Data.Common, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Data { - public enum AcceptRejectRule : int + public enum AcceptRejectRule { - Cascade = 1, None = 0, + Cascade = 1, } - [System.Flags] - public enum CommandBehavior : int + public enum CommandBehavior { - CloseConnection = 32, Default = 0, - KeyInfo = 4, - SchemaOnly = 2, - SequentialAccess = 16, SingleResult = 1, + SchemaOnly = 2, + KeyInfo = 4, SingleRow = 8, + SequentialAccess = 16, + CloseConnection = 32, } - - public enum CommandType : int + public enum CommandType { + Text = 1, StoredProcedure = 4, TableDirect = 512, - Text = 1, } - - public enum ConflictOption : int - { - CompareAllSearchableValues = 1, - CompareRowVersion = 2, - OverwriteChanges = 3, - } - - [System.Flags] - public enum ConnectionState : int - { - Broken = 16, - Closed = 0, - Connecting = 2, - Executing = 4, - Fetching = 8, - Open = 1, - } - - public abstract class Constraint - { - protected void CheckStateForProperty() => throw null; - internal Constraint() => throw null; - public virtual string ConstraintName { get => throw null; set => throw null; } - public System.Data.PropertyCollection ExtendedProperties { get => throw null; } - protected internal void SetDataSet(System.Data.DataSet dataSet) => throw null; - public abstract System.Data.DataTable Table { get; } - public override string ToString() => throw null; - protected virtual System.Data.DataSet _DataSet { get => throw null; } - } - - public class ConstraintCollection : System.Data.InternalDataCollectionBase - { - public void Add(System.Data.Constraint constraint) => throw null; - public System.Data.Constraint Add(string name, System.Data.DataColumn primaryKeyColumn, System.Data.DataColumn foreignKeyColumn) => throw null; - public System.Data.Constraint Add(string name, System.Data.DataColumn column, bool primaryKey) => throw null; - public System.Data.Constraint Add(string name, System.Data.DataColumn[] primaryKeyColumns, System.Data.DataColumn[] foreignKeyColumns) => throw null; - public System.Data.Constraint Add(string name, System.Data.DataColumn[] columns, bool primaryKey) => throw null; - public void AddRange(System.Data.Constraint[] constraints) => throw null; - public bool CanRemove(System.Data.Constraint constraint) => throw null; - public void Clear() => throw null; - public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged; - public bool Contains(string name) => throw null; - public void CopyTo(System.Data.Constraint[] array, int index) => throw null; - public int IndexOf(System.Data.Constraint constraint) => throw null; - public int IndexOf(string constraintName) => throw null; - public System.Data.Constraint this[int index] { get => throw null; } - public System.Data.Constraint this[string name] { get => throw null; } - protected override System.Collections.ArrayList List { get => throw null; } - public void Remove(System.Data.Constraint constraint) => throw null; - public void Remove(string name) => throw null; - public void RemoveAt(int index) => throw null; - } - - public class ConstraintException : System.Data.DataException - { - public ConstraintException() => throw null; - protected ConstraintException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public ConstraintException(string s) => throw null; - public ConstraintException(string message, System.Exception innerException) => throw null; - } - - public class DBConcurrencyException : System.SystemException - { - public void CopyToRows(System.Data.DataRow[] array) => throw null; - public void CopyToRows(System.Data.DataRow[] array, int arrayIndex) => throw null; - public DBConcurrencyException() => throw null; - public DBConcurrencyException(string message) => throw null; - public DBConcurrencyException(string message, System.Exception inner) => throw null; - public DBConcurrencyException(string message, System.Exception inner, System.Data.DataRow[] dataRows) => throw null; - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Data.DataRow Row { get => throw null; set => throw null; } - public int RowCount { get => throw null; } - } - - public class DataColumn : System.ComponentModel.MarshalByValueComponent - { - public bool AllowDBNull { get => throw null; set => throw null; } - public bool AutoIncrement { get => throw null; set => throw null; } - public System.Int64 AutoIncrementSeed { get => throw null; set => throw null; } - public System.Int64 AutoIncrementStep { get => throw null; set => throw null; } - public string Caption { get => throw null; set => throw null; } - protected internal void CheckNotAllowNull() => throw null; - protected void CheckUnique() => throw null; - public virtual System.Data.MappingType ColumnMapping { get => throw null; set => throw null; } - public string ColumnName { get => throw null; set => throw null; } - public DataColumn() => throw null; - public DataColumn(string columnName) => throw null; - public DataColumn(string columnName, System.Type dataType) => throw null; - public DataColumn(string columnName, System.Type dataType, string expr) => throw null; - public DataColumn(string columnName, System.Type dataType, string expr, System.Data.MappingType type) => throw null; - public System.Type DataType { get => throw null; set => throw null; } - public System.Data.DataSetDateTime DateTimeMode { get => throw null; set => throw null; } - public object DefaultValue { get => throw null; set => throw null; } - public string Expression { get => throw null; set => throw null; } - public System.Data.PropertyCollection ExtendedProperties { get => throw null; } - public int MaxLength { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - protected virtual void OnPropertyChanging(System.ComponentModel.PropertyChangedEventArgs pcevent) => throw null; - public int Ordinal { get => throw null; } - public string Prefix { get => throw null; set => throw null; } - protected internal void RaisePropertyChanging(string name) => throw null; - public bool ReadOnly { get => throw null; set => throw null; } - public void SetOrdinal(int ordinal) => throw null; - public System.Data.DataTable Table { get => throw null; } - public override string ToString() => throw null; - public bool Unique { get => throw null; set => throw null; } - } - - public class DataColumnChangeEventArgs : System.EventArgs - { - public System.Data.DataColumn Column { get => throw null; } - public DataColumnChangeEventArgs(System.Data.DataRow row, System.Data.DataColumn column, object value) => throw null; - public object ProposedValue { get => throw null; set => throw null; } - public System.Data.DataRow Row { get => throw null; } - } - - public delegate void DataColumnChangeEventHandler(object sender, System.Data.DataColumnChangeEventArgs e); - - public class DataColumnCollection : System.Data.InternalDataCollectionBase - { - public System.Data.DataColumn Add() => throw null; - public void Add(System.Data.DataColumn column) => throw null; - public System.Data.DataColumn Add(string columnName) => throw null; - public System.Data.DataColumn Add(string columnName, System.Type type) => throw null; - public System.Data.DataColumn Add(string columnName, System.Type type, string expression) => throw null; - public void AddRange(System.Data.DataColumn[] columns) => throw null; - public bool CanRemove(System.Data.DataColumn column) => throw null; - public void Clear() => throw null; - public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged; - public bool Contains(string name) => throw null; - public void CopyTo(System.Data.DataColumn[] array, int index) => throw null; - public int IndexOf(System.Data.DataColumn column) => throw null; - public int IndexOf(string columnName) => throw null; - public System.Data.DataColumn this[int index] { get => throw null; } - public System.Data.DataColumn this[string name] { get => throw null; } - protected override System.Collections.ArrayList List { get => throw null; } - public void Remove(System.Data.DataColumn column) => throw null; - public void Remove(string name) => throw null; - public void RemoveAt(int index) => throw null; - } - - public class DataException : System.SystemException - { - public DataException() => throw null; - protected DataException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public DataException(string s) => throw null; - public DataException(string s, System.Exception innerException) => throw null; - } - - public static class DataReaderExtensions - { - public static bool GetBoolean(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Byte GetByte(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Int64 GetBytes(this System.Data.Common.DbDataReader reader, string name, System.Int64 dataOffset, System.Byte[] buffer, int bufferOffset, int length) => throw null; - public static System.Char GetChar(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Int64 GetChars(this System.Data.Common.DbDataReader reader, string name, System.Int64 dataOffset, System.Char[] buffer, int bufferOffset, int length) => throw null; - public static System.Data.Common.DbDataReader GetData(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static string GetDataTypeName(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.DateTime GetDateTime(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Decimal GetDecimal(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static double GetDouble(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Type GetFieldType(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static T GetFieldValue(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Threading.Tasks.Task GetFieldValueAsync(this System.Data.Common.DbDataReader reader, string name, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static float GetFloat(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Guid GetGuid(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Int16 GetInt16(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static int GetInt32(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Int64 GetInt64(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Type GetProviderSpecificFieldType(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static object GetProviderSpecificValue(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.IO.Stream GetStream(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static string GetString(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.IO.TextReader GetTextReader(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static object GetValue(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static bool IsDBNull(this System.Data.Common.DbDataReader reader, string name) => throw null; - public static System.Threading.Tasks.Task IsDBNullAsync(this System.Data.Common.DbDataReader reader, string name, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - } - - public class DataRelation - { - protected void CheckStateForProperty() => throw null; - public virtual System.Data.DataColumn[] ChildColumns { get => throw null; } - public virtual System.Data.ForeignKeyConstraint ChildKeyConstraint { get => throw null; } - public virtual System.Data.DataTable ChildTable { get => throw null; } - public DataRelation(string relationName, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; - public DataRelation(string relationName, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn, bool createConstraints) => throw null; - public DataRelation(string relationName, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns) => throw null; - public DataRelation(string relationName, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns, bool createConstraints) => throw null; - public DataRelation(string relationName, string parentTableName, string childTableName, string[] parentColumnNames, string[] childColumnNames, bool nested) => throw null; - public DataRelation(string relationName, string parentTableName, string parentTableNamespace, string childTableName, string childTableNamespace, string[] parentColumnNames, string[] childColumnNames, bool nested) => throw null; - public virtual System.Data.DataSet DataSet { get => throw null; } - public System.Data.PropertyCollection ExtendedProperties { get => throw null; } - public virtual bool Nested { get => throw null; set => throw null; } - protected internal void OnPropertyChanging(System.ComponentModel.PropertyChangedEventArgs pcevent) => throw null; - public virtual System.Data.DataColumn[] ParentColumns { get => throw null; } - public virtual System.Data.UniqueConstraint ParentKeyConstraint { get => throw null; } - public virtual System.Data.DataTable ParentTable { get => throw null; } - protected internal void RaisePropertyChanging(string name) => throw null; - public virtual string RelationName { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - public abstract class DataRelationCollection : System.Data.InternalDataCollectionBase - { - public virtual System.Data.DataRelation Add(System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; - public virtual System.Data.DataRelation Add(System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns) => throw null; - public void Add(System.Data.DataRelation relation) => throw null; - public virtual System.Data.DataRelation Add(string name, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; - public virtual System.Data.DataRelation Add(string name, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn, bool createConstraints) => throw null; - public virtual System.Data.DataRelation Add(string name, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns) => throw null; - public virtual System.Data.DataRelation Add(string name, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns, bool createConstraints) => throw null; - protected virtual void AddCore(System.Data.DataRelation relation) => throw null; - public virtual void AddRange(System.Data.DataRelation[] relations) => throw null; - public virtual bool CanRemove(System.Data.DataRelation relation) => throw null; - public virtual void Clear() => throw null; - public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged; - public virtual bool Contains(string name) => throw null; - public void CopyTo(System.Data.DataRelation[] array, int index) => throw null; - protected DataRelationCollection() => throw null; - protected abstract System.Data.DataSet GetDataSet(); - public virtual int IndexOf(System.Data.DataRelation relation) => throw null; - public virtual int IndexOf(string relationName) => throw null; - public abstract System.Data.DataRelation this[int index] { get; } - public abstract System.Data.DataRelation this[string name] { get; } - protected virtual void OnCollectionChanged(System.ComponentModel.CollectionChangeEventArgs ccevent) => throw null; - protected virtual void OnCollectionChanging(System.ComponentModel.CollectionChangeEventArgs ccevent) => throw null; - public void Remove(System.Data.DataRelation relation) => throw null; - public void Remove(string name) => throw null; - public void RemoveAt(int index) => throw null; - protected virtual void RemoveCore(System.Data.DataRelation relation) => throw null; - } - - public class DataRow - { - public void AcceptChanges() => throw null; - public void BeginEdit() => throw null; - public void CancelEdit() => throw null; - public void ClearErrors() => throw null; - protected internal DataRow(System.Data.DataRowBuilder builder) => throw null; - public void Delete() => throw null; - public void EndEdit() => throw null; - public System.Data.DataRow[] GetChildRows(System.Data.DataRelation relation) => throw null; - public System.Data.DataRow[] GetChildRows(System.Data.DataRelation relation, System.Data.DataRowVersion version) => throw null; - public System.Data.DataRow[] GetChildRows(string relationName) => throw null; - public System.Data.DataRow[] GetChildRows(string relationName, System.Data.DataRowVersion version) => throw null; - public string GetColumnError(System.Data.DataColumn column) => throw null; - public string GetColumnError(int columnIndex) => throw null; - public string GetColumnError(string columnName) => throw null; - public System.Data.DataColumn[] GetColumnsInError() => throw null; - public System.Data.DataRow GetParentRow(System.Data.DataRelation relation) => throw null; - public System.Data.DataRow GetParentRow(System.Data.DataRelation relation, System.Data.DataRowVersion version) => throw null; - public System.Data.DataRow GetParentRow(string relationName) => throw null; - public System.Data.DataRow GetParentRow(string relationName, System.Data.DataRowVersion version) => throw null; - public System.Data.DataRow[] GetParentRows(System.Data.DataRelation relation) => throw null; - public System.Data.DataRow[] GetParentRows(System.Data.DataRelation relation, System.Data.DataRowVersion version) => throw null; - public System.Data.DataRow[] GetParentRows(string relationName) => throw null; - public System.Data.DataRow[] GetParentRows(string relationName, System.Data.DataRowVersion version) => throw null; - public bool HasErrors { get => throw null; } - public bool HasVersion(System.Data.DataRowVersion version) => throw null; - public bool IsNull(System.Data.DataColumn column) => throw null; - public bool IsNull(System.Data.DataColumn column, System.Data.DataRowVersion version) => throw null; - public bool IsNull(int columnIndex) => throw null; - public bool IsNull(string columnName) => throw null; - public object[] ItemArray { get => throw null; set => throw null; } - public object this[System.Data.DataColumn column, System.Data.DataRowVersion version] { get => throw null; } - public object this[System.Data.DataColumn column] { get => throw null; set => throw null; } - public object this[int columnIndex, System.Data.DataRowVersion version] { get => throw null; } - public object this[int columnIndex] { get => throw null; set => throw null; } - public object this[string columnName, System.Data.DataRowVersion version] { get => throw null; } - public object this[string columnName] { get => throw null; set => throw null; } - public void RejectChanges() => throw null; - public string RowError { get => throw null; set => throw null; } - public System.Data.DataRowState RowState { get => throw null; } - public void SetAdded() => throw null; - public void SetColumnError(System.Data.DataColumn column, string error) => throw null; - public void SetColumnError(int columnIndex, string error) => throw null; - public void SetColumnError(string columnName, string error) => throw null; - public void SetModified() => throw null; - protected void SetNull(System.Data.DataColumn column) => throw null; - public void SetParentRow(System.Data.DataRow parentRow) => throw null; - public void SetParentRow(System.Data.DataRow parentRow, System.Data.DataRelation relation) => throw null; - public System.Data.DataTable Table { get => throw null; } - } - - [System.Flags] - public enum DataRowAction : int - { - Add = 16, - Change = 2, - ChangeCurrentAndOriginal = 64, - ChangeOriginal = 32, - Commit = 8, - Delete = 1, - Nothing = 0, - Rollback = 4, - } - - public class DataRowBuilder - { - } - - public class DataRowChangeEventArgs : System.EventArgs - { - public System.Data.DataRowAction Action { get => throw null; } - public DataRowChangeEventArgs(System.Data.DataRow row, System.Data.DataRowAction action) => throw null; - public System.Data.DataRow Row { get => throw null; } - } - - public delegate void DataRowChangeEventHandler(object sender, System.Data.DataRowChangeEventArgs e); - - public class DataRowCollection : System.Data.InternalDataCollectionBase - { - public void Add(System.Data.DataRow row) => throw null; - public System.Data.DataRow Add(params object[] values) => throw null; - public void Clear() => throw null; - public bool Contains(object[] keys) => throw null; - public bool Contains(object key) => throw null; - public override void CopyTo(System.Array ar, int index) => throw null; - public void CopyTo(System.Data.DataRow[] array, int index) => throw null; - public override int Count { get => throw null; } - public System.Data.DataRow Find(object[] keys) => throw null; - public System.Data.DataRow Find(object key) => throw null; - public override System.Collections.IEnumerator GetEnumerator() => throw null; - public int IndexOf(System.Data.DataRow row) => throw null; - public void InsertAt(System.Data.DataRow row, int pos) => throw null; - public System.Data.DataRow this[int index] { get => throw null; } - public void Remove(System.Data.DataRow row) => throw null; - public void RemoveAt(int index) => throw null; - } - - public static class DataRowComparer - { - public static System.Data.DataRowComparer Default { get => throw null; } - } - - public class DataRowComparer : System.Collections.Generic.IEqualityComparer where TRow : System.Data.DataRow - { - public static System.Data.DataRowComparer Default { get => throw null; } - public bool Equals(TRow leftRow, TRow rightRow) => throw null; - public int GetHashCode(TRow row) => throw null; - } - - public static class DataRowExtensions - { - public static T Field(this System.Data.DataRow row, System.Data.DataColumn column) => throw null; - public static T Field(this System.Data.DataRow row, System.Data.DataColumn column, System.Data.DataRowVersion version) => throw null; - public static T Field(this System.Data.DataRow row, int columnIndex) => throw null; - public static T Field(this System.Data.DataRow row, int columnIndex, System.Data.DataRowVersion version) => throw null; - public static T Field(this System.Data.DataRow row, string columnName) => throw null; - public static T Field(this System.Data.DataRow row, string columnName, System.Data.DataRowVersion version) => throw null; - public static void SetField(this System.Data.DataRow row, System.Data.DataColumn column, T value) => throw null; - public static void SetField(this System.Data.DataRow row, int columnIndex, T value) => throw null; - public static void SetField(this System.Data.DataRow row, string columnName, T value) => throw null; - } - - [System.Flags] - public enum DataRowState : int - { - Added = 4, - Deleted = 8, - Detached = 1, - Modified = 16, - Unchanged = 2, - } - - public enum DataRowVersion : int - { - Current = 512, - Default = 1536, - Original = 256, - Proposed = 1024, - } - - public class DataRowView : System.ComponentModel.ICustomTypeDescriptor, System.ComponentModel.IDataErrorInfo, System.ComponentModel.IEditableObject, System.ComponentModel.INotifyPropertyChanged - { - public void BeginEdit() => throw null; - public void CancelEdit() => throw null; - public System.Data.DataView CreateChildView(System.Data.DataRelation relation) => throw null; - public System.Data.DataView CreateChildView(System.Data.DataRelation relation, bool followParent) => throw null; - public System.Data.DataView CreateChildView(string relationName) => throw null; - public System.Data.DataView CreateChildView(string relationName, bool followParent) => throw null; - public System.Data.DataView DataView { get => throw null; } - public void Delete() => throw null; - public void EndEdit() => throw null; - public override bool Equals(object other) => throw null; - string System.ComponentModel.IDataErrorInfo.Error { get => throw null; } - System.ComponentModel.AttributeCollection System.ComponentModel.ICustomTypeDescriptor.GetAttributes() => throw null; - string System.ComponentModel.ICustomTypeDescriptor.GetClassName() => throw null; - string System.ComponentModel.ICustomTypeDescriptor.GetComponentName() => throw null; - System.ComponentModel.TypeConverter System.ComponentModel.ICustomTypeDescriptor.GetConverter() => throw null; - System.ComponentModel.EventDescriptor System.ComponentModel.ICustomTypeDescriptor.GetDefaultEvent() => throw null; - System.ComponentModel.PropertyDescriptor System.ComponentModel.ICustomTypeDescriptor.GetDefaultProperty() => throw null; - object System.ComponentModel.ICustomTypeDescriptor.GetEditor(System.Type editorBaseType) => throw null; - System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents() => throw null; - System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[] attributes) => throw null; - public override int GetHashCode() => throw null; - System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetProperties() => throw null; - System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[] attributes) => throw null; - object System.ComponentModel.ICustomTypeDescriptor.GetPropertyOwner(System.ComponentModel.PropertyDescriptor pd) => throw null; - public bool IsEdit { get => throw null; } - public bool IsNew { get => throw null; } - public object this[int ndx] { get => throw null; set => throw null; } - public object this[string property] { get => throw null; set => throw null; } - string System.ComponentModel.IDataErrorInfo.this[string colName] { get => throw null; } - public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - public System.Data.DataRow Row { get => throw null; } - public System.Data.DataRowVersion RowVersion { get => throw null; } - } - - public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable - { - public void AcceptChanges() => throw null; - public void BeginInit() => throw null; - public bool CaseSensitive { get => throw null; set => throw null; } - public void Clear() => throw null; - public virtual System.Data.DataSet Clone() => throw null; - bool System.ComponentModel.IListSource.ContainsListCollection { get => throw null; } - public System.Data.DataSet Copy() => throw null; - public System.Data.DataTableReader CreateDataReader() => throw null; - public System.Data.DataTableReader CreateDataReader(params System.Data.DataTable[] dataTables) => throw null; - public DataSet() => throw null; - protected DataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected DataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, bool ConstructSchema) => throw null; - public DataSet(string dataSetName) => throw null; - public string DataSetName { get => throw null; set => throw null; } - public System.Data.DataViewManager DefaultViewManager { get => throw null; } - protected System.Data.SchemaSerializationMode DetermineSchemaSerializationMode(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected System.Data.SchemaSerializationMode DetermineSchemaSerializationMode(System.Xml.XmlReader reader) => throw null; - public void EndInit() => throw null; - public bool EnforceConstraints { get => throw null; set => throw null; } - public System.Data.PropertyCollection ExtendedProperties { get => throw null; } - public System.Data.DataSet GetChanges() => throw null; - public System.Data.DataSet GetChanges(System.Data.DataRowState rowStates) => throw null; - public static System.Xml.Schema.XmlSchemaComplexType GetDataSetSchema(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; - System.Collections.IList System.ComponentModel.IListSource.GetList() => throw null; - public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; - protected virtual System.Xml.Schema.XmlSchema GetSchemaSerializable() => throw null; - protected void GetSerializationData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public string GetXml() => throw null; - public string GetXmlSchema() => throw null; - public bool HasChanges() => throw null; - public bool HasChanges(System.Data.DataRowState rowStates) => throw null; - public bool HasErrors { get => throw null; } - public void InferXmlSchema(System.IO.Stream stream, string[] nsArray) => throw null; - public void InferXmlSchema(System.IO.TextReader reader, string[] nsArray) => throw null; - public void InferXmlSchema(System.Xml.XmlReader reader, string[] nsArray) => throw null; - public void InferXmlSchema(string fileName, string[] nsArray) => throw null; - protected virtual void InitializeDerivedDataSet() => throw null; - public event System.EventHandler Initialized; - protected bool IsBinarySerialized(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public bool IsInitialized { get => throw null; } - public virtual void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption, System.Data.FillErrorEventHandler errorHandler, params System.Data.DataTable[] tables) => throw null; - public void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption, params System.Data.DataTable[] tables) => throw null; - public void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption, params string[] tables) => throw null; - public System.Globalization.CultureInfo Locale { get => throw null; set => throw null; } - public void Merge(System.Data.DataRow[] rows) => throw null; - public void Merge(System.Data.DataRow[] rows, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction) => throw null; - public void Merge(System.Data.DataSet dataSet) => throw null; - public void Merge(System.Data.DataSet dataSet, bool preserveChanges) => throw null; - public void Merge(System.Data.DataSet dataSet, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction) => throw null; - public void Merge(System.Data.DataTable table) => throw null; - public void Merge(System.Data.DataTable table, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction) => throw null; - public event System.Data.MergeFailedEventHandler MergeFailed; - public string Namespace { get => throw null; set => throw null; } - protected virtual void OnPropertyChanging(System.ComponentModel.PropertyChangedEventArgs pcevent) => throw null; - protected virtual void OnRemoveRelation(System.Data.DataRelation relation) => throw null; - protected internal virtual void OnRemoveTable(System.Data.DataTable table) => throw null; - public string Prefix { get => throw null; set => throw null; } - protected internal void RaisePropertyChanging(string name) => throw null; - public System.Data.XmlReadMode ReadXml(System.IO.Stream stream) => throw null; - public System.Data.XmlReadMode ReadXml(System.IO.Stream stream, System.Data.XmlReadMode mode) => throw null; - public System.Data.XmlReadMode ReadXml(System.IO.TextReader reader) => throw null; - public System.Data.XmlReadMode ReadXml(System.IO.TextReader reader, System.Data.XmlReadMode mode) => throw null; - public System.Data.XmlReadMode ReadXml(System.Xml.XmlReader reader) => throw null; - void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - public System.Data.XmlReadMode ReadXml(System.Xml.XmlReader reader, System.Data.XmlReadMode mode) => throw null; - public System.Data.XmlReadMode ReadXml(string fileName) => throw null; - public System.Data.XmlReadMode ReadXml(string fileName, System.Data.XmlReadMode mode) => throw null; - public void ReadXmlSchema(System.IO.Stream stream) => throw null; - public void ReadXmlSchema(System.IO.TextReader reader) => throw null; - public void ReadXmlSchema(System.Xml.XmlReader reader) => throw null; - public void ReadXmlSchema(string fileName) => throw null; - protected virtual void ReadXmlSerializable(System.Xml.XmlReader reader) => throw null; - public virtual void RejectChanges() => throw null; - public System.Data.DataRelationCollection Relations { get => throw null; } - public System.Data.SerializationFormat RemotingFormat { get => throw null; set => throw null; } - public virtual void Reset() => throw null; - public virtual System.Data.SchemaSerializationMode SchemaSerializationMode { get => throw null; set => throw null; } - protected virtual bool ShouldSerializeRelations() => throw null; - protected virtual bool ShouldSerializeTables() => throw null; - public override System.ComponentModel.ISite Site { get => throw null; set => throw null; } - public System.Data.DataTableCollection Tables { get => throw null; } - public void WriteXml(System.IO.Stream stream) => throw null; - public void WriteXml(System.IO.Stream stream, System.Data.XmlWriteMode mode) => throw null; - public void WriteXml(System.IO.TextWriter writer) => throw null; - public void WriteXml(System.IO.TextWriter writer, System.Data.XmlWriteMode mode) => throw null; - public void WriteXml(System.Xml.XmlWriter writer) => throw null; - void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public void WriteXml(System.Xml.XmlWriter writer, System.Data.XmlWriteMode mode) => throw null; - public void WriteXml(string fileName) => throw null; - public void WriteXml(string fileName, System.Data.XmlWriteMode mode) => throw null; - public void WriteXmlSchema(System.IO.Stream stream) => throw null; - public void WriteXmlSchema(System.IO.Stream stream, System.Converter multipleTargetConverter) => throw null; - public void WriteXmlSchema(System.IO.TextWriter writer) => throw null; - public void WriteXmlSchema(System.IO.TextWriter writer, System.Converter multipleTargetConverter) => throw null; - public void WriteXmlSchema(System.Xml.XmlWriter writer) => throw null; - public void WriteXmlSchema(System.Xml.XmlWriter writer, System.Converter multipleTargetConverter) => throw null; - public void WriteXmlSchema(string fileName) => throw null; - public void WriteXmlSchema(string fileName, System.Converter multipleTargetConverter) => throw null; - } - - public enum DataSetDateTime : int - { - Local = 1, - Unspecified = 2, - UnspecifiedLocal = 3, - Utc = 4, - } - - public class DataSysDescriptionAttribute : System.ComponentModel.DescriptionAttribute - { - public DataSysDescriptionAttribute(string description) => throw null; - public override string Description { get => throw null; } - } - - public class DataTable : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable - { - public void AcceptChanges() => throw null; - public virtual void BeginInit() => throw null; - public void BeginLoadData() => throw null; - public bool CaseSensitive { get => throw null; set => throw null; } - public System.Data.DataRelationCollection ChildRelations { get => throw null; } - public void Clear() => throw null; - public virtual System.Data.DataTable Clone() => throw null; - public event System.Data.DataColumnChangeEventHandler ColumnChanged; - public event System.Data.DataColumnChangeEventHandler ColumnChanging; - public System.Data.DataColumnCollection Columns { get => throw null; } - public object Compute(string expression, string filter) => throw null; - public System.Data.ConstraintCollection Constraints { get => throw null; } - bool System.ComponentModel.IListSource.ContainsListCollection { get => throw null; } - public System.Data.DataTable Copy() => throw null; - public System.Data.DataTableReader CreateDataReader() => throw null; - protected virtual System.Data.DataTable CreateInstance() => throw null; - public System.Data.DataSet DataSet { get => throw null; } - public DataTable() => throw null; - protected DataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public DataTable(string tableName) => throw null; - public DataTable(string tableName, string tableNamespace) => throw null; - public System.Data.DataView DefaultView { get => throw null; } - public string DisplayExpression { get => throw null; set => throw null; } - public virtual void EndInit() => throw null; - public void EndLoadData() => throw null; - public System.Data.PropertyCollection ExtendedProperties { get => throw null; } - public System.Data.DataTable GetChanges() => throw null; - public System.Data.DataTable GetChanges(System.Data.DataRowState rowStates) => throw null; - public static System.Xml.Schema.XmlSchemaComplexType GetDataTableSchema(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; - public System.Data.DataRow[] GetErrors() => throw null; - System.Collections.IList System.ComponentModel.IListSource.GetList() => throw null; - public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected virtual System.Type GetRowType() => throw null; - protected virtual System.Xml.Schema.XmlSchema GetSchema() => throw null; - System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; - public bool HasErrors { get => throw null; } - public void ImportRow(System.Data.DataRow row) => throw null; - public event System.EventHandler Initialized; - public bool IsInitialized { get => throw null; } - public void Load(System.Data.IDataReader reader) => throw null; - public void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption) => throw null; - public virtual void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption, System.Data.FillErrorEventHandler errorHandler) => throw null; - public System.Data.DataRow LoadDataRow(object[] values, System.Data.LoadOption loadOption) => throw null; - public System.Data.DataRow LoadDataRow(object[] values, bool fAcceptChanges) => throw null; - public System.Globalization.CultureInfo Locale { get => throw null; set => throw null; } - public void Merge(System.Data.DataTable table) => throw null; - public void Merge(System.Data.DataTable table, bool preserveChanges) => throw null; - public void Merge(System.Data.DataTable table, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction) => throw null; - public int MinimumCapacity { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public System.Data.DataRow NewRow() => throw null; - protected internal System.Data.DataRow[] NewRowArray(int size) => throw null; - protected virtual System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) => throw null; - protected internal virtual void OnColumnChanged(System.Data.DataColumnChangeEventArgs e) => throw null; - protected internal virtual void OnColumnChanging(System.Data.DataColumnChangeEventArgs e) => throw null; - protected virtual void OnPropertyChanging(System.ComponentModel.PropertyChangedEventArgs pcevent) => throw null; - protected virtual void OnRemoveColumn(System.Data.DataColumn column) => throw null; - protected virtual void OnRowChanged(System.Data.DataRowChangeEventArgs e) => throw null; - protected virtual void OnRowChanging(System.Data.DataRowChangeEventArgs e) => throw null; - protected virtual void OnRowDeleted(System.Data.DataRowChangeEventArgs e) => throw null; - protected virtual void OnRowDeleting(System.Data.DataRowChangeEventArgs e) => throw null; - protected virtual void OnTableCleared(System.Data.DataTableClearEventArgs e) => throw null; - protected virtual void OnTableClearing(System.Data.DataTableClearEventArgs e) => throw null; - protected virtual void OnTableNewRow(System.Data.DataTableNewRowEventArgs e) => throw null; - public System.Data.DataRelationCollection ParentRelations { get => throw null; } - public string Prefix { get => throw null; set => throw null; } - public System.Data.DataColumn[] PrimaryKey { get => throw null; set => throw null; } - public System.Data.XmlReadMode ReadXml(System.IO.Stream stream) => throw null; - public System.Data.XmlReadMode ReadXml(System.IO.TextReader reader) => throw null; - public System.Data.XmlReadMode ReadXml(System.Xml.XmlReader reader) => throw null; - void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - public System.Data.XmlReadMode ReadXml(string fileName) => throw null; - public void ReadXmlSchema(System.IO.Stream stream) => throw null; - public void ReadXmlSchema(System.IO.TextReader reader) => throw null; - public void ReadXmlSchema(System.Xml.XmlReader reader) => throw null; - public void ReadXmlSchema(string fileName) => throw null; - protected virtual void ReadXmlSerializable(System.Xml.XmlReader reader) => throw null; - public void RejectChanges() => throw null; - public System.Data.SerializationFormat RemotingFormat { get => throw null; set => throw null; } - public virtual void Reset() => throw null; - public event System.Data.DataRowChangeEventHandler RowChanged; - public event System.Data.DataRowChangeEventHandler RowChanging; - public event System.Data.DataRowChangeEventHandler RowDeleted; - public event System.Data.DataRowChangeEventHandler RowDeleting; - public System.Data.DataRowCollection Rows { get => throw null; } - public System.Data.DataRow[] Select() => throw null; - public System.Data.DataRow[] Select(string filterExpression) => throw null; - public System.Data.DataRow[] Select(string filterExpression, string sort) => throw null; - public System.Data.DataRow[] Select(string filterExpression, string sort, System.Data.DataViewRowState recordStates) => throw null; - public override System.ComponentModel.ISite Site { get => throw null; set => throw null; } - public event System.Data.DataTableClearEventHandler TableCleared; - public event System.Data.DataTableClearEventHandler TableClearing; - public string TableName { get => throw null; set => throw null; } - public event System.Data.DataTableNewRowEventHandler TableNewRow; - public override string ToString() => throw null; - public void WriteXml(System.IO.Stream stream) => throw null; - public void WriteXml(System.IO.Stream stream, System.Data.XmlWriteMode mode) => throw null; - public void WriteXml(System.IO.Stream stream, System.Data.XmlWriteMode mode, bool writeHierarchy) => throw null; - public void WriteXml(System.IO.Stream stream, bool writeHierarchy) => throw null; - public void WriteXml(System.IO.TextWriter writer) => throw null; - public void WriteXml(System.IO.TextWriter writer, System.Data.XmlWriteMode mode) => throw null; - public void WriteXml(System.IO.TextWriter writer, System.Data.XmlWriteMode mode, bool writeHierarchy) => throw null; - public void WriteXml(System.IO.TextWriter writer, bool writeHierarchy) => throw null; - public void WriteXml(System.Xml.XmlWriter writer) => throw null; - void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public void WriteXml(System.Xml.XmlWriter writer, System.Data.XmlWriteMode mode) => throw null; - public void WriteXml(System.Xml.XmlWriter writer, System.Data.XmlWriteMode mode, bool writeHierarchy) => throw null; - public void WriteXml(System.Xml.XmlWriter writer, bool writeHierarchy) => throw null; - public void WriteXml(string fileName) => throw null; - public void WriteXml(string fileName, System.Data.XmlWriteMode mode) => throw null; - public void WriteXml(string fileName, System.Data.XmlWriteMode mode, bool writeHierarchy) => throw null; - public void WriteXml(string fileName, bool writeHierarchy) => throw null; - public void WriteXmlSchema(System.IO.Stream stream) => throw null; - public void WriteXmlSchema(System.IO.Stream stream, bool writeHierarchy) => throw null; - public void WriteXmlSchema(System.IO.TextWriter writer) => throw null; - public void WriteXmlSchema(System.IO.TextWriter writer, bool writeHierarchy) => throw null; - public void WriteXmlSchema(System.Xml.XmlWriter writer) => throw null; - public void WriteXmlSchema(System.Xml.XmlWriter writer, bool writeHierarchy) => throw null; - public void WriteXmlSchema(string fileName) => throw null; - public void WriteXmlSchema(string fileName, bool writeHierarchy) => throw null; - protected internal bool fInitInProgress; - } - - public class DataTableClearEventArgs : System.EventArgs - { - public DataTableClearEventArgs(System.Data.DataTable dataTable) => throw null; - public System.Data.DataTable Table { get => throw null; } - public string TableName { get => throw null; } - public string TableNamespace { get => throw null; } - } - - public delegate void DataTableClearEventHandler(object sender, System.Data.DataTableClearEventArgs e); - - public class DataTableCollection : System.Data.InternalDataCollectionBase - { - public System.Data.DataTable Add() => throw null; - public void Add(System.Data.DataTable table) => throw null; - public System.Data.DataTable Add(string name) => throw null; - public System.Data.DataTable Add(string name, string tableNamespace) => throw null; - public void AddRange(System.Data.DataTable[] tables) => throw null; - public bool CanRemove(System.Data.DataTable table) => throw null; - public void Clear() => throw null; - public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged; - public event System.ComponentModel.CollectionChangeEventHandler CollectionChanging; - public bool Contains(string name) => throw null; - public bool Contains(string name, string tableNamespace) => throw null; - public void CopyTo(System.Data.DataTable[] array, int index) => throw null; - public int IndexOf(System.Data.DataTable table) => throw null; - public int IndexOf(string tableName) => throw null; - public int IndexOf(string tableName, string tableNamespace) => throw null; - public System.Data.DataTable this[int index] { get => throw null; } - public System.Data.DataTable this[string name, string tableNamespace] { get => throw null; } - public System.Data.DataTable this[string name] { get => throw null; } - protected override System.Collections.ArrayList List { get => throw null; } - public void Remove(System.Data.DataTable table) => throw null; - public void Remove(string name) => throw null; - public void Remove(string name, string tableNamespace) => throw null; - public void RemoveAt(int index) => throw null; - } - - public static class DataTableExtensions - { - public static System.Data.DataView AsDataView(this System.Data.DataTable table) => throw null; - public static System.Data.DataView AsDataView(this System.Data.EnumerableRowCollection source) where T : System.Data.DataRow => throw null; - public static System.Data.EnumerableRowCollection AsEnumerable(this System.Data.DataTable source) => throw null; - public static System.Data.DataTable CopyToDataTable(this System.Collections.Generic.IEnumerable source) where T : System.Data.DataRow => throw null; - public static void CopyToDataTable(this System.Collections.Generic.IEnumerable source, System.Data.DataTable table, System.Data.LoadOption options) where T : System.Data.DataRow => throw null; - public static void CopyToDataTable(this System.Collections.Generic.IEnumerable source, System.Data.DataTable table, System.Data.LoadOption options, System.Data.FillErrorEventHandler errorHandler) where T : System.Data.DataRow => throw null; - } - - public class DataTableNewRowEventArgs : System.EventArgs - { - public DataTableNewRowEventArgs(System.Data.DataRow dataRow) => throw null; - public System.Data.DataRow Row { get => throw null; } - } - - public delegate void DataTableNewRowEventHandler(object sender, System.Data.DataTableNewRowEventArgs e); - - public class DataTableReader : System.Data.Common.DbDataReader - { - public override void Close() => throw null; - public DataTableReader(System.Data.DataTable dataTable) => throw null; - public DataTableReader(System.Data.DataTable[] dataTables) => throw null; - public override int Depth { get => throw null; } - public override int FieldCount { get => throw null; } - public override bool GetBoolean(int ordinal) => throw null; - public override System.Byte GetByte(int ordinal) => throw null; - public override System.Int64 GetBytes(int ordinal, System.Int64 dataIndex, System.Byte[] buffer, int bufferIndex, int length) => throw null; - public override System.Char GetChar(int ordinal) => throw null; - public override System.Int64 GetChars(int ordinal, System.Int64 dataIndex, System.Char[] buffer, int bufferIndex, int length) => throw null; - public override string GetDataTypeName(int ordinal) => throw null; - public override System.DateTime GetDateTime(int ordinal) => throw null; - public override System.Decimal GetDecimal(int ordinal) => throw null; - public override double GetDouble(int ordinal) => throw null; - public override System.Collections.IEnumerator GetEnumerator() => throw null; - public override System.Type GetFieldType(int ordinal) => throw null; - public override float GetFloat(int ordinal) => throw null; - public override System.Guid GetGuid(int ordinal) => throw null; - public override System.Int16 GetInt16(int ordinal) => throw null; - public override int GetInt32(int ordinal) => throw null; - public override System.Int64 GetInt64(int ordinal) => throw null; - public override string GetName(int ordinal) => throw null; - public override int GetOrdinal(string name) => throw null; - public override System.Type GetProviderSpecificFieldType(int ordinal) => throw null; - public override object GetProviderSpecificValue(int ordinal) => throw null; - public override int GetProviderSpecificValues(object[] values) => throw null; - public override System.Data.DataTable GetSchemaTable() => throw null; - public override string GetString(int ordinal) => throw null; - public override object GetValue(int ordinal) => throw null; - public override int GetValues(object[] values) => throw null; - public override bool HasRows { get => throw null; } - public override bool IsClosed { get => throw null; } - public override bool IsDBNull(int ordinal) => throw null; - public override object this[int ordinal] { get => throw null; } - public override object this[string name] { get => throw null; } - public override bool NextResult() => throw null; - public override bool Read() => throw null; - public override int RecordsAffected { get => throw null; } - } - - public class DataView : System.ComponentModel.MarshalByValueComponent, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList, System.ComponentModel.IBindingListView, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList - { - int System.Collections.IList.Add(object value) => throw null; - void System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor property) => throw null; - public virtual System.Data.DataRowView AddNew() => throw null; - object System.ComponentModel.IBindingList.AddNew() => throw null; - public bool AllowDelete { get => throw null; set => throw null; } - public bool AllowEdit { get => throw null; set => throw null; } - bool System.ComponentModel.IBindingList.AllowEdit { get => throw null; } - public bool AllowNew { get => throw null; set => throw null; } - bool System.ComponentModel.IBindingList.AllowNew { get => throw null; } - bool System.ComponentModel.IBindingList.AllowRemove { get => throw null; } - public bool ApplyDefaultSort { get => throw null; set => throw null; } - void System.ComponentModel.IBindingListView.ApplySort(System.ComponentModel.ListSortDescriptionCollection sorts) => throw null; - void System.ComponentModel.IBindingList.ApplySort(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction) => throw null; - public void BeginInit() => throw null; - void System.Collections.IList.Clear() => throw null; - protected void Close() => throw null; - protected virtual void ColumnCollectionChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) => throw null; - bool System.Collections.IList.Contains(object value) => throw null; - public void CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - public DataView() => throw null; - public DataView(System.Data.DataTable table) => throw null; - public DataView(System.Data.DataTable table, string RowFilter, string Sort, System.Data.DataViewRowState RowState) => throw null; - public System.Data.DataViewManager DataViewManager { get => throw null; } - public void Delete(int index) => throw null; - protected override void Dispose(bool disposing) => throw null; - public void EndInit() => throw null; - public virtual bool Equals(System.Data.DataView view) => throw null; - string System.ComponentModel.IBindingListView.Filter { get => throw null; set => throw null; } - public int Find(object[] key) => throw null; - int System.ComponentModel.IBindingList.Find(System.ComponentModel.PropertyDescriptor property, object key) => throw null; - public int Find(object key) => throw null; - public System.Data.DataRowView[] FindRows(object[] key) => throw null; - public System.Data.DataRowView[] FindRows(object key) => throw null; - public System.Collections.IEnumerator GetEnumerator() => throw null; - System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ITypedList.GetItemProperties(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; - string System.ComponentModel.ITypedList.GetListName(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; - protected virtual void IndexListChanged(object sender, System.ComponentModel.ListChangedEventArgs e) => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; - public event System.EventHandler Initialized; - void System.Collections.IList.Insert(int index, object value) => throw null; - bool System.Collections.IList.IsFixedSize { get => throw null; } - public bool IsInitialized { get => throw null; } - protected bool IsOpen { get => throw null; } - bool System.Collections.IList.IsReadOnly { get => throw null; } - bool System.ComponentModel.IBindingList.IsSorted { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public System.Data.DataRowView this[int recordIndex] { get => throw null; } - object System.Collections.IList.this[int recordIndex] { get => throw null; set => throw null; } - public event System.ComponentModel.ListChangedEventHandler ListChanged; - protected virtual void OnListChanged(System.ComponentModel.ListChangedEventArgs e) => throw null; - protected void Open() => throw null; - void System.Collections.IList.Remove(object value) => throw null; - void System.Collections.IList.RemoveAt(int index) => throw null; - void System.ComponentModel.IBindingListView.RemoveFilter() => throw null; - void System.ComponentModel.IBindingList.RemoveIndex(System.ComponentModel.PropertyDescriptor property) => throw null; - void System.ComponentModel.IBindingList.RemoveSort() => throw null; - protected void Reset() => throw null; - public virtual string RowFilter { get => throw null; set => throw null; } - public System.Data.DataViewRowState RowStateFilter { get => throw null; set => throw null; } - public string Sort { get => throw null; set => throw null; } - System.ComponentModel.ListSortDescriptionCollection System.ComponentModel.IBindingListView.SortDescriptions { get => throw null; } - System.ComponentModel.ListSortDirection System.ComponentModel.IBindingList.SortDirection { get => throw null; } - System.ComponentModel.PropertyDescriptor System.ComponentModel.IBindingList.SortProperty { get => throw null; } - bool System.ComponentModel.IBindingListView.SupportsAdvancedSorting { get => throw null; } - bool System.ComponentModel.IBindingList.SupportsChangeNotification { get => throw null; } - bool System.ComponentModel.IBindingListView.SupportsFiltering { get => throw null; } - bool System.ComponentModel.IBindingList.SupportsSearching { get => throw null; } - bool System.ComponentModel.IBindingList.SupportsSorting { get => throw null; } - object System.Collections.ICollection.SyncRoot { get => throw null; } - public System.Data.DataTable Table { get => throw null; set => throw null; } - public System.Data.DataTable ToTable() => throw null; - public System.Data.DataTable ToTable(bool distinct, params string[] columnNames) => throw null; - public System.Data.DataTable ToTable(string tableName) => throw null; - public System.Data.DataTable ToTable(string tableName, bool distinct, params string[] columnNames) => throw null; - protected void UpdateIndex() => throw null; - protected virtual void UpdateIndex(bool force) => throw null; - } - - public class DataViewManager : System.ComponentModel.MarshalByValueComponent, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList, System.ComponentModel.ITypedList - { - int System.Collections.IList.Add(object value) => throw null; - void System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor property) => throw null; - object System.ComponentModel.IBindingList.AddNew() => throw null; - bool System.ComponentModel.IBindingList.AllowEdit { get => throw null; } - bool System.ComponentModel.IBindingList.AllowNew { get => throw null; } - bool System.ComponentModel.IBindingList.AllowRemove { get => throw null; } - void System.ComponentModel.IBindingList.ApplySort(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction) => throw null; - void System.Collections.IList.Clear() => throw null; - bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - int System.Collections.ICollection.Count { get => throw null; } - public System.Data.DataView CreateDataView(System.Data.DataTable table) => throw null; - public System.Data.DataSet DataSet { get => throw null; set => throw null; } - public DataViewManager() => throw null; - public DataViewManager(System.Data.DataSet dataSet) => throw null; - public string DataViewSettingCollectionString { get => throw null; set => throw null; } - public System.Data.DataViewSettingCollection DataViewSettings { get => throw null; } - int System.ComponentModel.IBindingList.Find(System.ComponentModel.PropertyDescriptor property, object key) => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ITypedList.GetItemProperties(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; - string System.ComponentModel.ITypedList.GetListName(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; - bool System.Collections.IList.IsFixedSize { get => throw null; } - bool System.Collections.IList.IsReadOnly { get => throw null; } - bool System.ComponentModel.IBindingList.IsSorted { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public event System.ComponentModel.ListChangedEventHandler ListChanged; - protected virtual void OnListChanged(System.ComponentModel.ListChangedEventArgs e) => throw null; - protected virtual void RelationCollectionChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) => throw null; - void System.Collections.IList.Remove(object value) => throw null; - void System.Collections.IList.RemoveAt(int index) => throw null; - void System.ComponentModel.IBindingList.RemoveIndex(System.ComponentModel.PropertyDescriptor property) => throw null; - void System.ComponentModel.IBindingList.RemoveSort() => throw null; - System.ComponentModel.ListSortDirection System.ComponentModel.IBindingList.SortDirection { get => throw null; } - System.ComponentModel.PropertyDescriptor System.ComponentModel.IBindingList.SortProperty { get => throw null; } - bool System.ComponentModel.IBindingList.SupportsChangeNotification { get => throw null; } - bool System.ComponentModel.IBindingList.SupportsSearching { get => throw null; } - bool System.ComponentModel.IBindingList.SupportsSorting { get => throw null; } - object System.Collections.ICollection.SyncRoot { get => throw null; } - protected virtual void TableCollectionChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) => throw null; - } - - [System.Flags] - public enum DataViewRowState : int - { - Added = 4, - CurrentRows = 22, - Deleted = 8, - ModifiedCurrent = 16, - ModifiedOriginal = 32, - None = 0, - OriginalRows = 42, - Unchanged = 2, - } - - public class DataViewSetting - { - public bool ApplyDefaultSort { get => throw null; set => throw null; } - public System.Data.DataViewManager DataViewManager { get => throw null; } - public string RowFilter { get => throw null; set => throw null; } - public System.Data.DataViewRowState RowStateFilter { get => throw null; set => throw null; } - public string Sort { get => throw null; set => throw null; } - public System.Data.DataTable Table { get => throw null; } - } - - public class DataViewSettingCollection : System.Collections.ICollection, System.Collections.IEnumerable - { - public void CopyTo(System.Array ar, int index) => throw null; - public void CopyTo(System.Data.DataViewSetting[] ar, int index) => throw null; - public virtual int Count { get => throw null; } - public System.Collections.IEnumerator GetEnumerator() => throw null; - public bool IsReadOnly { get => throw null; } - public bool IsSynchronized { get => throw null; } - public virtual System.Data.DataViewSetting this[System.Data.DataTable table] { get => throw null; set => throw null; } - public virtual System.Data.DataViewSetting this[int index] { get => throw null; set => throw null; } - public virtual System.Data.DataViewSetting this[string tableName] { get => throw null; } - public object SyncRoot { get => throw null; } - } - - public enum DbType : int - { - AnsiString = 0, - AnsiStringFixedLength = 22, - Binary = 1, - Boolean = 3, - Byte = 2, - Currency = 4, - Date = 5, - DateTime = 6, - DateTime2 = 26, - DateTimeOffset = 27, - Decimal = 7, - Double = 8, - Guid = 9, - Int16 = 10, - Int32 = 11, - Int64 = 12, - Object = 13, - SByte = 14, - Single = 15, - String = 16, - StringFixedLength = 23, - Time = 17, - UInt16 = 18, - UInt32 = 19, - UInt64 = 20, - VarNumeric = 21, - Xml = 25, - } - - public class DeletedRowInaccessibleException : System.Data.DataException - { - public DeletedRowInaccessibleException() => throw null; - protected DeletedRowInaccessibleException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public DeletedRowInaccessibleException(string s) => throw null; - public DeletedRowInaccessibleException(string message, System.Exception innerException) => throw null; - } - - public class DuplicateNameException : System.Data.DataException - { - public DuplicateNameException() => throw null; - protected DuplicateNameException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public DuplicateNameException(string s) => throw null; - public DuplicateNameException(string message, System.Exception innerException) => throw null; - } - - public abstract class EnumerableRowCollection : System.Collections.IEnumerable - { - internal EnumerableRowCollection() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - } - - public class EnumerableRowCollection : System.Data.EnumerableRowCollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - internal EnumerableRowCollection() => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - } - - public static class EnumerableRowCollectionExtensions - { - public static System.Data.EnumerableRowCollection Cast(this System.Data.EnumerableRowCollection source) => throw null; - public static System.Data.OrderedEnumerableRowCollection OrderBy(this System.Data.EnumerableRowCollection source, System.Func keySelector) => throw null; - public static System.Data.OrderedEnumerableRowCollection OrderBy(this System.Data.EnumerableRowCollection source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; - public static System.Data.OrderedEnumerableRowCollection OrderByDescending(this System.Data.EnumerableRowCollection source, System.Func keySelector) => throw null; - public static System.Data.OrderedEnumerableRowCollection OrderByDescending(this System.Data.EnumerableRowCollection source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; - public static System.Data.EnumerableRowCollection Select(this System.Data.EnumerableRowCollection source, System.Func selector) => throw null; - public static System.Data.OrderedEnumerableRowCollection ThenBy(this System.Data.OrderedEnumerableRowCollection source, System.Func keySelector) => throw null; - public static System.Data.OrderedEnumerableRowCollection ThenBy(this System.Data.OrderedEnumerableRowCollection source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; - public static System.Data.OrderedEnumerableRowCollection ThenByDescending(this System.Data.OrderedEnumerableRowCollection source, System.Func keySelector) => throw null; - public static System.Data.OrderedEnumerableRowCollection ThenByDescending(this System.Data.OrderedEnumerableRowCollection source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; - public static System.Data.EnumerableRowCollection Where(this System.Data.EnumerableRowCollection source, System.Func predicate) => throw null; - } - - public class EvaluateException : System.Data.InvalidExpressionException - { - public EvaluateException() => throw null; - protected EvaluateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public EvaluateException(string s) => throw null; - public EvaluateException(string message, System.Exception innerException) => throw null; - } - - public class FillErrorEventArgs : System.EventArgs - { - public bool Continue { get => throw null; set => throw null; } - public System.Data.DataTable DataTable { get => throw null; } - public System.Exception Errors { get => throw null; set => throw null; } - public FillErrorEventArgs(System.Data.DataTable dataTable, object[] values) => throw null; - public object[] Values { get => throw null; } - } - - public delegate void FillErrorEventHandler(object sender, System.Data.FillErrorEventArgs e); - - public class ForeignKeyConstraint : System.Data.Constraint - { - public virtual System.Data.AcceptRejectRule AcceptRejectRule { get => throw null; set => throw null; } - public virtual System.Data.DataColumn[] Columns { get => throw null; } - public virtual System.Data.Rule DeleteRule { get => throw null; set => throw null; } - public override bool Equals(object key) => throw null; - public ForeignKeyConstraint(System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; - public ForeignKeyConstraint(System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns) => throw null; - public ForeignKeyConstraint(string constraintName, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; - public ForeignKeyConstraint(string constraintName, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns) => throw null; - public ForeignKeyConstraint(string constraintName, string parentTableName, string[] parentColumnNames, string[] childColumnNames, System.Data.AcceptRejectRule acceptRejectRule, System.Data.Rule deleteRule, System.Data.Rule updateRule) => throw null; - public ForeignKeyConstraint(string constraintName, string parentTableName, string parentTableNamespace, string[] parentColumnNames, string[] childColumnNames, System.Data.AcceptRejectRule acceptRejectRule, System.Data.Rule deleteRule, System.Data.Rule updateRule) => throw null; - public override int GetHashCode() => throw null; - public virtual System.Data.DataColumn[] RelatedColumns { get => throw null; } - public virtual System.Data.DataTable RelatedTable { get => throw null; } - public override System.Data.DataTable Table { get => throw null; } - public virtual System.Data.Rule UpdateRule { get => throw null; set => throw null; } - } - - public interface IColumnMapping - { - string DataSetColumn { get; set; } - string SourceColumn { get; set; } - } - - public interface IColumnMappingCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList - { - System.Data.IColumnMapping Add(string sourceColumnName, string dataSetColumnName); - bool Contains(string sourceColumnName); - System.Data.IColumnMapping GetByDataSetColumn(string dataSetColumnName); - int IndexOf(string sourceColumnName); - object this[string index] { get; set; } - void RemoveAt(string sourceColumnName); - } - - public interface IDataAdapter - { - int Fill(System.Data.DataSet dataSet); - System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType); - System.Data.IDataParameter[] GetFillParameters(); - System.Data.MissingMappingAction MissingMappingAction { get; set; } - System.Data.MissingSchemaAction MissingSchemaAction { get; set; } - System.Data.ITableMappingCollection TableMappings { get; } - int Update(System.Data.DataSet dataSet); - } - - public interface IDataParameter - { - System.Data.DbType DbType { get; set; } - System.Data.ParameterDirection Direction { get; set; } - bool IsNullable { get; } - string ParameterName { get; set; } - string SourceColumn { get; set; } - System.Data.DataRowVersion SourceVersion { get; set; } - object Value { get; set; } - } - - public interface IDataParameterCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList - { - bool Contains(string parameterName); - int IndexOf(string parameterName); - object this[string parameterName] { get; set; } - void RemoveAt(string parameterName); - } - - public interface IDataReader : System.Data.IDataRecord, System.IDisposable - { - void Close(); - int Depth { get; } - System.Data.DataTable GetSchemaTable(); - bool IsClosed { get; } - bool NextResult(); - bool Read(); - int RecordsAffected { get; } - } - - public interface IDataRecord - { - int FieldCount { get; } - bool GetBoolean(int i); - System.Byte GetByte(int i); - System.Int64 GetBytes(int i, System.Int64 fieldOffset, System.Byte[] buffer, int bufferoffset, int length); - System.Char GetChar(int i); - System.Int64 GetChars(int i, System.Int64 fieldoffset, System.Char[] buffer, int bufferoffset, int length); - System.Data.IDataReader GetData(int i); - string GetDataTypeName(int i); - System.DateTime GetDateTime(int i); - System.Decimal GetDecimal(int i); - double GetDouble(int i); - System.Type GetFieldType(int i); - float GetFloat(int i); - System.Guid GetGuid(int i); - System.Int16 GetInt16(int i); - int GetInt32(int i); - System.Int64 GetInt64(int i); - string GetName(int i); - int GetOrdinal(string name); - string GetString(int i); - object GetValue(int i); - int GetValues(object[] values); - bool IsDBNull(int i); - object this[int i] { get; } - object this[string name] { get; } - } - - public interface IDbCommand : System.IDisposable - { - void Cancel(); - string CommandText { get; set; } - int CommandTimeout { get; set; } - System.Data.CommandType CommandType { get; set; } - System.Data.IDbConnection Connection { get; set; } - System.Data.IDbDataParameter CreateParameter(); - int ExecuteNonQuery(); - System.Data.IDataReader ExecuteReader(); - System.Data.IDataReader ExecuteReader(System.Data.CommandBehavior behavior); - object ExecuteScalar(); - System.Data.IDataParameterCollection Parameters { get; } - void Prepare(); - System.Data.IDbTransaction Transaction { get; set; } - System.Data.UpdateRowSource UpdatedRowSource { get; set; } - } - - public interface IDbConnection : System.IDisposable - { - System.Data.IDbTransaction BeginTransaction(); - System.Data.IDbTransaction BeginTransaction(System.Data.IsolationLevel il); - void ChangeDatabase(string databaseName); - void Close(); - string ConnectionString { get; set; } - int ConnectionTimeout { get; } - System.Data.IDbCommand CreateCommand(); - string Database { get; } - void Open(); - System.Data.ConnectionState State { get; } - } - - public interface IDbDataAdapter : System.Data.IDataAdapter - { - System.Data.IDbCommand DeleteCommand { get; set; } - System.Data.IDbCommand InsertCommand { get; set; } - System.Data.IDbCommand SelectCommand { get; set; } - System.Data.IDbCommand UpdateCommand { get; set; } - } - - public interface IDbDataParameter : System.Data.IDataParameter - { - System.Byte Precision { get; set; } - System.Byte Scale { get; set; } - int Size { get; set; } - } - - public interface IDbTransaction : System.IDisposable - { - void Commit(); - System.Data.IDbConnection Connection { get; } - System.Data.IsolationLevel IsolationLevel { get; } - void Rollback(); - } - - public interface ITableMapping - { - System.Data.IColumnMappingCollection ColumnMappings { get; } - string DataSetTable { get; set; } - string SourceTable { get; set; } - } - - public interface ITableMappingCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList - { - System.Data.ITableMapping Add(string sourceTableName, string dataSetTableName); - bool Contains(string sourceTableName); - System.Data.ITableMapping GetByDataSetTable(string dataSetTableName); - int IndexOf(string sourceTableName); - object this[string index] { get; set; } - void RemoveAt(string sourceTableName); - } - - public class InRowChangingEventException : System.Data.DataException - { - public InRowChangingEventException() => throw null; - protected InRowChangingEventException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public InRowChangingEventException(string s) => throw null; - public InRowChangingEventException(string message, System.Exception innerException) => throw null; - } - - public class InternalDataCollectionBase : System.Collections.ICollection, System.Collections.IEnumerable - { - public virtual void CopyTo(System.Array ar, int index) => throw null; - public virtual int Count { get => throw null; } - public virtual System.Collections.IEnumerator GetEnumerator() => throw null; - public InternalDataCollectionBase() => throw null; - public bool IsReadOnly { get => throw null; } - public bool IsSynchronized { get => throw null; } - protected virtual System.Collections.ArrayList List { get => throw null; } - public object SyncRoot { get => throw null; } - } - - public class InvalidConstraintException : System.Data.DataException - { - public InvalidConstraintException() => throw null; - protected InvalidConstraintException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public InvalidConstraintException(string s) => throw null; - public InvalidConstraintException(string message, System.Exception innerException) => throw null; - } - - public class InvalidExpressionException : System.Data.DataException - { - public InvalidExpressionException() => throw null; - protected InvalidExpressionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public InvalidExpressionException(string s) => throw null; - public InvalidExpressionException(string message, System.Exception innerException) => throw null; - } - - public enum IsolationLevel : int - { - Chaos = 16, - ReadCommitted = 4096, - ReadUncommitted = 256, - RepeatableRead = 65536, - Serializable = 1048576, - Snapshot = 16777216, - Unspecified = -1, - } - - public enum KeyRestrictionBehavior : int - { - AllowOnly = 0, - PreventUsage = 1, - } - - public enum LoadOption : int - { - OverwriteChanges = 1, - PreserveChanges = 2, - Upsert = 3, - } - - public enum MappingType : int - { - Attribute = 2, - Element = 1, - Hidden = 4, - SimpleContent = 3, - } - - public class MergeFailedEventArgs : System.EventArgs - { - public string Conflict { get => throw null; } - public MergeFailedEventArgs(System.Data.DataTable table, string conflict) => throw null; - public System.Data.DataTable Table { get => throw null; } - } - - public delegate void MergeFailedEventHandler(object sender, System.Data.MergeFailedEventArgs e); - - public enum MissingMappingAction : int - { - Error = 3, - Ignore = 2, - Passthrough = 1, - } - - public class MissingPrimaryKeyException : System.Data.DataException - { - public MissingPrimaryKeyException() => throw null; - protected MissingPrimaryKeyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public MissingPrimaryKeyException(string s) => throw null; - public MissingPrimaryKeyException(string message, System.Exception innerException) => throw null; - } - - public enum MissingSchemaAction : int - { - Add = 1, - AddWithKey = 4, - Error = 3, - Ignore = 2, - } - - public class NoNullAllowedException : System.Data.DataException - { - public NoNullAllowedException() => throw null; - protected NoNullAllowedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public NoNullAllowedException(string s) => throw null; - public NoNullAllowedException(string message, System.Exception innerException) => throw null; - } - - public class OrderedEnumerableRowCollection : System.Data.EnumerableRowCollection - { - } - - public enum ParameterDirection : int - { - Input = 1, - InputOutput = 3, - Output = 2, - ReturnValue = 6, - } - - public class PropertyCollection : System.Collections.Hashtable, System.ICloneable - { - public override object Clone() => throw null; - public PropertyCollection() => throw null; - protected PropertyCollection(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - public class ReadOnlyException : System.Data.DataException - { - public ReadOnlyException() => throw null; - protected ReadOnlyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public ReadOnlyException(string s) => throw null; - public ReadOnlyException(string message, System.Exception innerException) => throw null; - } - - public class RowNotInTableException : System.Data.DataException - { - public RowNotInTableException() => throw null; - protected RowNotInTableException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public RowNotInTableException(string s) => throw null; - public RowNotInTableException(string message, System.Exception innerException) => throw null; - } - - public enum Rule : int - { - Cascade = 1, - None = 0, - SetDefault = 3, - SetNull = 2, - } - - public enum SchemaSerializationMode : int - { - ExcludeSchema = 2, - IncludeSchema = 1, - } - - public enum SchemaType : int - { - Mapped = 2, - Source = 1, - } - - public enum SerializationFormat : int - { - Binary = 1, - Xml = 0, - } - - public enum SqlDbType : int - { - BigInt = 0, - Binary = 1, - Bit = 2, - Char = 3, - Date = 31, - DateTime = 4, - DateTime2 = 33, - DateTimeOffset = 34, - Decimal = 5, - Float = 6, - Image = 7, - Int = 8, - Money = 9, - NChar = 10, - NText = 11, - NVarChar = 12, - Real = 13, - SmallDateTime = 15, - SmallInt = 16, - SmallMoney = 17, - Structured = 30, - Text = 18, - Time = 32, - Timestamp = 19, - TinyInt = 20, - Udt = 29, - UniqueIdentifier = 14, - VarBinary = 21, - VarChar = 22, - Variant = 23, - Xml = 25, - } - - public class StateChangeEventArgs : System.EventArgs - { - public System.Data.ConnectionState CurrentState { get => throw null; } - public System.Data.ConnectionState OriginalState { get => throw null; } - public StateChangeEventArgs(System.Data.ConnectionState originalState, System.Data.ConnectionState currentState) => throw null; - } - - public delegate void StateChangeEventHandler(object sender, System.Data.StateChangeEventArgs e); - - public class StatementCompletedEventArgs : System.EventArgs - { - public int RecordCount { get => throw null; } - public StatementCompletedEventArgs(int recordCount) => throw null; - } - - public delegate void StatementCompletedEventHandler(object sender, System.Data.StatementCompletedEventArgs e); - - public enum StatementType : int - { - Batch = 4, - Delete = 3, - Insert = 1, - Select = 0, - Update = 2, - } - - public class StrongTypingException : System.Data.DataException - { - public StrongTypingException() => throw null; - protected StrongTypingException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public StrongTypingException(string message) => throw null; - public StrongTypingException(string s, System.Exception innerException) => throw null; - } - - public class SyntaxErrorException : System.Data.InvalidExpressionException - { - public SyntaxErrorException() => throw null; - protected SyntaxErrorException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public SyntaxErrorException(string s) => throw null; - public SyntaxErrorException(string message, System.Exception innerException) => throw null; - } - - public abstract class TypedTableBase : System.Data.DataTable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable where T : System.Data.DataRow - { - public System.Data.EnumerableRowCollection Cast() => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - protected TypedTableBase() => throw null; - protected TypedTableBase(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - public static class TypedTableBaseExtensions - { - public static System.Data.EnumerableRowCollection AsEnumerable(this System.Data.TypedTableBase source) where TRow : System.Data.DataRow => throw null; - public static TRow ElementAtOrDefault(this System.Data.TypedTableBase source, int index) where TRow : System.Data.DataRow => throw null; - public static System.Data.OrderedEnumerableRowCollection OrderBy(this System.Data.TypedTableBase source, System.Func keySelector) where TRow : System.Data.DataRow => throw null; - public static System.Data.OrderedEnumerableRowCollection OrderBy(this System.Data.TypedTableBase source, System.Func keySelector, System.Collections.Generic.IComparer comparer) where TRow : System.Data.DataRow => throw null; - public static System.Data.OrderedEnumerableRowCollection OrderByDescending(this System.Data.TypedTableBase source, System.Func keySelector) where TRow : System.Data.DataRow => throw null; - public static System.Data.OrderedEnumerableRowCollection OrderByDescending(this System.Data.TypedTableBase source, System.Func keySelector, System.Collections.Generic.IComparer comparer) where TRow : System.Data.DataRow => throw null; - public static System.Data.EnumerableRowCollection Select(this System.Data.TypedTableBase source, System.Func selector) where TRow : System.Data.DataRow => throw null; - public static System.Data.EnumerableRowCollection Where(this System.Data.TypedTableBase source, System.Func predicate) where TRow : System.Data.DataRow => throw null; - } - - public class UniqueConstraint : System.Data.Constraint - { - public virtual System.Data.DataColumn[] Columns { get => throw null; } - public override bool Equals(object key2) => throw null; - public override int GetHashCode() => throw null; - public bool IsPrimaryKey { get => throw null; } - public override System.Data.DataTable Table { get => throw null; } - public UniqueConstraint(System.Data.DataColumn column) => throw null; - public UniqueConstraint(System.Data.DataColumn column, bool isPrimaryKey) => throw null; - public UniqueConstraint(System.Data.DataColumn[] columns) => throw null; - public UniqueConstraint(System.Data.DataColumn[] columns, bool isPrimaryKey) => throw null; - public UniqueConstraint(string name, System.Data.DataColumn column) => throw null; - public UniqueConstraint(string name, System.Data.DataColumn column, bool isPrimaryKey) => throw null; - public UniqueConstraint(string name, System.Data.DataColumn[] columns) => throw null; - public UniqueConstraint(string name, System.Data.DataColumn[] columns, bool isPrimaryKey) => throw null; - public UniqueConstraint(string name, string[] columnNames, bool isPrimaryKey) => throw null; - } - - public enum UpdateRowSource : int - { - Both = 3, - FirstReturnedRecord = 2, - None = 0, - OutputParameters = 1, - } - - public enum UpdateStatus : int - { - Continue = 0, - ErrorsOccurred = 1, - SkipAllRemainingRows = 3, - SkipCurrentRow = 2, - } - - public class VersionNotFoundException : System.Data.DataException - { - public VersionNotFoundException() => throw null; - protected VersionNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public VersionNotFoundException(string s) => throw null; - public VersionNotFoundException(string message, System.Exception innerException) => throw null; - } - - public enum XmlReadMode : int - { - Auto = 0, - DiffGram = 4, - Fragment = 5, - IgnoreSchema = 2, - InferSchema = 3, - InferTypedSchema = 6, - ReadSchema = 1, - } - - public enum XmlWriteMode : int - { - DiffGram = 2, - IgnoreSchema = 1, - WriteSchema = 0, - } - namespace Common { - public enum CatalogLocation : int + public enum CatalogLocation { - End = 2, Start = 1, + End = 2, } - public class DataAdapter : System.ComponentModel.Component, System.Data.IDataAdapter { - public bool AcceptChangesDuringFill { get => throw null; set => throw null; } - public bool AcceptChangesDuringUpdate { get => throw null; set => throw null; } + public bool AcceptChangesDuringFill { get => throw null; set { } } + public bool AcceptChangesDuringUpdate { get => throw null; set { } } protected virtual System.Data.Common.DataAdapter CloneInternals() => throw null; - public bool ContinueUpdateOnError { get => throw null; set => throw null; } + public bool ContinueUpdateOnError { get => throw null; set { } } protected virtual System.Data.Common.DataTableMappingCollection CreateTableMappings() => throw null; protected DataAdapter() => throw null; protected DataAdapter(System.Data.Common.DataAdapter from) => throw null; @@ -1563,39 +47,37 @@ namespace System protected virtual int Fill(System.Data.DataSet dataSet, string srcTable, System.Data.IDataReader dataReader, int startRecord, int maxRecords) => throw null; protected virtual int Fill(System.Data.DataTable dataTable, System.Data.IDataReader dataReader) => throw null; protected virtual int Fill(System.Data.DataTable[] dataTables, System.Data.IDataReader dataReader, int startRecord, int maxRecords) => throw null; - public event System.Data.FillErrorEventHandler FillError; - public System.Data.LoadOption FillLoadOption { get => throw null; set => throw null; } + public event System.Data.FillErrorEventHandler FillError { add { } remove { } } + public System.Data.LoadOption FillLoadOption { get => throw null; set { } } public virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType) => throw null; protected virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable, System.Data.IDataReader dataReader) => throw null; protected virtual System.Data.DataTable FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDataReader dataReader) => throw null; public virtual System.Data.IDataParameter[] GetFillParameters() => throw null; protected bool HasTableMappings() => throw null; - public System.Data.MissingMappingAction MissingMappingAction { get => throw null; set => throw null; } - public System.Data.MissingSchemaAction MissingSchemaAction { get => throw null; set => throw null; } + public System.Data.MissingMappingAction MissingMappingAction { get => throw null; set { } } + public System.Data.MissingSchemaAction MissingSchemaAction { get => throw null; set { } } protected virtual void OnFillError(System.Data.FillErrorEventArgs value) => throw null; public void ResetFillLoadOption() => throw null; - public virtual bool ReturnProviderSpecificTypes { get => throw null; set => throw null; } + public virtual bool ReturnProviderSpecificTypes { get => throw null; set { } } public virtual bool ShouldSerializeAcceptChangesDuringFill() => throw null; public virtual bool ShouldSerializeFillLoadOption() => throw null; protected virtual bool ShouldSerializeTableMappings() => throw null; - public System.Data.Common.DataTableMappingCollection TableMappings { get => throw null; } System.Data.ITableMappingCollection System.Data.IDataAdapter.TableMappings { get => throw null; } + public System.Data.Common.DataTableMappingCollection TableMappings { get => throw null; } public virtual int Update(System.Data.DataSet dataSet) => throw null; } - - public class DataColumnMapping : System.MarshalByRefObject, System.Data.IColumnMapping, System.ICloneable + public sealed class DataColumnMapping : System.MarshalByRefObject, System.Data.IColumnMapping, System.ICloneable { object System.ICloneable.Clone() => throw null; public DataColumnMapping() => throw null; public DataColumnMapping(string sourceColumn, string dataSetColumn) => throw null; - public string DataSetColumn { get => throw null; set => throw null; } + public string DataSetColumn { get => throw null; set { } } public System.Data.DataColumn GetDataColumnBySchemaAction(System.Data.DataTable dataTable, System.Type dataType, System.Data.MissingSchemaAction schemaAction) => throw null; public static System.Data.DataColumn GetDataColumnBySchemaAction(string sourceColumn, string dataSetColumn, System.Data.DataTable dataTable, System.Type dataType, System.Data.MissingSchemaAction schemaAction) => throw null; - public string SourceColumn { get => throw null; set => throw null; } + public string SourceColumn { get => throw null; set { } } public override string ToString() => throw null; } - - public class DataColumnMappingCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Data.IColumnMappingCollection + public sealed class DataColumnMappingCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Data.IColumnMappingCollection { public int Add(object value) => throw null; public System.Data.Common.DataColumnMapping Add(string sourceColumn, string dataSetColumn) => throw null; @@ -1622,34 +104,32 @@ namespace System bool System.Collections.IList.IsFixedSize { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public System.Data.Common.DataColumnMapping this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public System.Data.Common.DataColumnMapping this[string sourceColumn] { get => throw null; set => throw null; } - object System.Data.IColumnMappingCollection.this[string index] { get => throw null; set => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } + object System.Data.IColumnMappingCollection.this[string index] { get => throw null; set { } } public void Remove(System.Data.Common.DataColumnMapping value) => throw null; public void Remove(object value) => throw null; public void RemoveAt(int index) => throw null; public void RemoveAt(string sourceColumn) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public System.Data.Common.DataColumnMapping this[int index] { get => throw null; set { } } + public System.Data.Common.DataColumnMapping this[string sourceColumn] { get => throw null; set { } } } - - public class DataTableMapping : System.MarshalByRefObject, System.Data.ITableMapping, System.ICloneable + public sealed class DataTableMapping : System.MarshalByRefObject, System.Data.ITableMapping, System.ICloneable { object System.ICloneable.Clone() => throw null; public System.Data.Common.DataColumnMappingCollection ColumnMappings { get => throw null; } System.Data.IColumnMappingCollection System.Data.ITableMapping.ColumnMappings { get => throw null; } - public string DataSetTable { get => throw null; set => throw null; } public DataTableMapping() => throw null; public DataTableMapping(string sourceTable, string dataSetTable) => throw null; public DataTableMapping(string sourceTable, string dataSetTable, System.Data.Common.DataColumnMapping[] columnMappings) => throw null; + public string DataSetTable { get => throw null; set { } } public System.Data.Common.DataColumnMapping GetColumnMappingBySchemaAction(string sourceColumn, System.Data.MissingMappingAction mappingAction) => throw null; public System.Data.DataColumn GetDataColumn(string sourceColumn, System.Type dataType, System.Data.DataTable dataTable, System.Data.MissingMappingAction mappingAction, System.Data.MissingSchemaAction schemaAction) => throw null; public System.Data.DataTable GetDataTableBySchemaAction(System.Data.DataSet dataSet, System.Data.MissingSchemaAction schemaAction) => throw null; - public string SourceTable { get => throw null; set => throw null; } + public string SourceTable { get => throw null; set { } } public override string ToString() => throw null; } - - public class DataTableMappingCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Data.ITableMappingCollection + public sealed class DataTableMappingCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Data.ITableMappingCollection { public int Add(object value) => throw null; public System.Data.Common.DataTableMapping Add(string sourceTable, string dataSetTable) => throw null; @@ -1675,22 +155,21 @@ namespace System bool System.Collections.IList.IsFixedSize { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public System.Data.Common.DataTableMapping this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public System.Data.Common.DataTableMapping this[string sourceTable] { get => throw null; set => throw null; } - object System.Data.ITableMappingCollection.this[string index] { get => throw null; set => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } + object System.Data.ITableMappingCollection.this[string index] { get => throw null; set { } } public void Remove(System.Data.Common.DataTableMapping value) => throw null; public void Remove(object value) => throw null; public void RemoveAt(int index) => throw null; public void RemoveAt(string sourceTable) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public System.Data.Common.DataTableMapping this[int index] { get => throw null; set { } } + public System.Data.Common.DataTableMapping this[string sourceTable] { get => throw null; set { } } } - - public abstract class DbBatch : System.IAsyncDisposable, System.IDisposable + public abstract class DbBatch : System.IDisposable, System.IAsyncDisposable { public System.Data.Common.DbBatchCommandCollection BatchCommands { get => throw null; } public abstract void Cancel(); - public System.Data.Common.DbConnection Connection { get => throw null; set => throw null; } + public System.Data.Common.DbConnection Connection { get => throw null; set { } } public System.Data.Common.DbBatchCommand CreateBatchCommand() => throw null; protected abstract System.Data.Common.DbBatchCommand CreateDbBatchCommand(); protected DbBatch() => throw null; @@ -1711,9 +190,8 @@ namespace System public abstract void Prepare(); public abstract System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public abstract int Timeout { get; set; } - public System.Data.Common.DbTransaction Transaction { get => throw null; set => throw null; } + public System.Data.Common.DbTransaction Transaction { get => throw null; set { } } } - public abstract class DbBatchCommand { public abstract string CommandText { get; set; } @@ -1723,8 +201,7 @@ namespace System public System.Data.Common.DbParameterCollection Parameters { get => throw null; } public abstract int RecordsAffected { get; } } - - public abstract class DbBatchCommandCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + public abstract class DbBatchCommandCollection : System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public abstract void Add(System.Data.Common.DbBatchCommand item); public abstract void Clear(); @@ -1738,49 +215,47 @@ namespace System public abstract int IndexOf(System.Data.Common.DbBatchCommand item); public abstract void Insert(int index, System.Data.Common.DbBatchCommand item); public abstract bool IsReadOnly { get; } - public System.Data.Common.DbBatchCommand this[int index] { get => throw null; set => throw null; } public abstract bool Remove(System.Data.Common.DbBatchCommand item); public abstract void RemoveAt(int index); protected abstract void SetBatchCommand(int index, System.Data.Common.DbBatchCommand batchCommand); + public System.Data.Common.DbBatchCommand this[int index] { get => throw null; set { } } } - public abstract class DbColumn { - public bool? AllowDBNull { get => throw null; set => throw null; } - public string BaseCatalogName { get => throw null; set => throw null; } - public string BaseColumnName { get => throw null; set => throw null; } - public string BaseSchemaName { get => throw null; set => throw null; } - public string BaseServerName { get => throw null; set => throw null; } - public string BaseTableName { get => throw null; set => throw null; } - public string ColumnName { get => throw null; set => throw null; } - public int? ColumnOrdinal { get => throw null; set => throw null; } - public int? ColumnSize { get => throw null; set => throw null; } - public System.Type DataType { get => throw null; set => throw null; } - public string DataTypeName { get => throw null; set => throw null; } + public bool? AllowDBNull { get => throw null; set { } } + public string BaseCatalogName { get => throw null; set { } } + public string BaseColumnName { get => throw null; set { } } + public string BaseSchemaName { get => throw null; set { } } + public string BaseServerName { get => throw null; set { } } + public string BaseTableName { get => throw null; set { } } + public string ColumnName { get => throw null; set { } } + public int? ColumnOrdinal { get => throw null; set { } } + public int? ColumnSize { get => throw null; set { } } protected DbColumn() => throw null; - public bool? IsAliased { get => throw null; set => throw null; } - public bool? IsAutoIncrement { get => throw null; set => throw null; } - public bool? IsExpression { get => throw null; set => throw null; } - public bool? IsHidden { get => throw null; set => throw null; } - public bool? IsIdentity { get => throw null; set => throw null; } - public bool? IsKey { get => throw null; set => throw null; } - public bool? IsLong { get => throw null; set => throw null; } - public bool? IsReadOnly { get => throw null; set => throw null; } - public bool? IsUnique { get => throw null; set => throw null; } + public System.Type DataType { get => throw null; set { } } + public string DataTypeName { get => throw null; set { } } + public bool? IsAliased { get => throw null; set { } } + public bool? IsAutoIncrement { get => throw null; set { } } + public bool? IsExpression { get => throw null; set { } } + public bool? IsHidden { get => throw null; set { } } + public bool? IsIdentity { get => throw null; set { } } + public bool? IsKey { get => throw null; set { } } + public bool? IsLong { get => throw null; set { } } + public bool? IsReadOnly { get => throw null; set { } } + public bool? IsUnique { get => throw null; set { } } + public int? NumericPrecision { get => throw null; set { } } + public int? NumericScale { get => throw null; set { } } public virtual object this[string property] { get => throw null; } - public int? NumericPrecision { get => throw null; set => throw null; } - public int? NumericScale { get => throw null; set => throw null; } - public string UdtAssemblyQualifiedName { get => throw null; set => throw null; } + public string UdtAssemblyQualifiedName { get => throw null; set { } } } - - public abstract class DbCommand : System.ComponentModel.Component, System.Data.IDbCommand, System.IAsyncDisposable, System.IDisposable + public abstract class DbCommand : System.ComponentModel.Component, System.Data.IDbCommand, System.IDisposable, System.IAsyncDisposable { public abstract void Cancel(); public abstract string CommandText { get; set; } public abstract int CommandTimeout { get; set; } public abstract System.Data.CommandType CommandType { get; set; } - public System.Data.Common.DbConnection Connection { get => throw null; set => throw null; } - System.Data.IDbConnection System.Data.IDbCommand.Connection { get => throw null; set => throw null; } + public System.Data.Common.DbConnection Connection { get => throw null; set { } } + System.Data.IDbConnection System.Data.IDbCommand.Connection { get => throw null; set { } } protected abstract System.Data.Common.DbParameter CreateDbParameter(); public System.Data.Common.DbParameter CreateParameter() => throw null; System.Data.IDbDataParameter System.Data.IDbCommand.CreateParameter() => throw null; @@ -1796,13 +271,13 @@ namespace System public System.Threading.Tasks.Task ExecuteNonQueryAsync() => throw null; public virtual System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Threading.CancellationToken cancellationToken) => throw null; public System.Data.Common.DbDataReader ExecuteReader() => throw null; - System.Data.IDataReader System.Data.IDbCommand.ExecuteReader() => throw null; public System.Data.Common.DbDataReader ExecuteReader(System.Data.CommandBehavior behavior) => throw null; + System.Data.IDataReader System.Data.IDbCommand.ExecuteReader() => throw null; System.Data.IDataReader System.Data.IDbCommand.ExecuteReader(System.Data.CommandBehavior behavior) => throw null; public System.Threading.Tasks.Task ExecuteReaderAsync() => throw null; - public System.Threading.Tasks.Task ExecuteReaderAsync(System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.CommandBehavior behavior) => throw null; public System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ExecuteReaderAsync(System.Threading.CancellationToken cancellationToken) => throw null; public abstract object ExecuteScalar(); public System.Threading.Tasks.Task ExecuteScalarAsync() => throw null; public virtual System.Threading.Tasks.Task ExecuteScalarAsync(System.Threading.CancellationToken cancellationToken) => throw null; @@ -1810,19 +285,18 @@ namespace System System.Data.IDataParameterCollection System.Data.IDbCommand.Parameters { get => throw null; } public abstract void Prepare(); public virtual System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Data.Common.DbTransaction Transaction { get => throw null; set => throw null; } - System.Data.IDbTransaction System.Data.IDbCommand.Transaction { get => throw null; set => throw null; } + System.Data.IDbTransaction System.Data.IDbCommand.Transaction { get => throw null; set { } } + public System.Data.Common.DbTransaction Transaction { get => throw null; set { } } public abstract System.Data.UpdateRowSource UpdatedRowSource { get; set; } } - public abstract class DbCommandBuilder : System.ComponentModel.Component { protected abstract void ApplyParameterInfo(System.Data.Common.DbParameter parameter, System.Data.DataRow row, System.Data.StatementType statementType, bool whereClause); - public virtual System.Data.Common.CatalogLocation CatalogLocation { get => throw null; set => throw null; } - public virtual string CatalogSeparator { get => throw null; set => throw null; } - public virtual System.Data.ConflictOption ConflictOption { get => throw null; set => throw null; } - public System.Data.Common.DbDataAdapter DataAdapter { get => throw null; set => throw null; } + public virtual System.Data.Common.CatalogLocation CatalogLocation { get => throw null; set { } } + public virtual string CatalogSeparator { get => throw null; set { } } + public virtual System.Data.ConflictOption ConflictOption { get => throw null; set { } } protected DbCommandBuilder() => throw null; + public System.Data.Common.DbDataAdapter DataAdapter { get => throw null; set { } } protected override void Dispose(bool disposing) => throw null; public System.Data.Common.DbCommand GetDeleteCommand() => throw null; public System.Data.Common.DbCommand GetDeleteCommand(bool useColumnsForParameterNames) => throw null; @@ -1836,26 +310,25 @@ namespace System public System.Data.Common.DbCommand GetUpdateCommand(bool useColumnsForParameterNames) => throw null; protected virtual System.Data.Common.DbCommand InitializeCommand(System.Data.Common.DbCommand command) => throw null; public virtual string QuoteIdentifier(string unquotedIdentifier) => throw null; - public virtual string QuotePrefix { get => throw null; set => throw null; } - public virtual string QuoteSuffix { get => throw null; set => throw null; } + public virtual string QuotePrefix { get => throw null; set { } } + public virtual string QuoteSuffix { get => throw null; set { } } public virtual void RefreshSchema() => throw null; protected void RowUpdatingHandler(System.Data.Common.RowUpdatingEventArgs rowUpdatingEvent) => throw null; - public virtual string SchemaSeparator { get => throw null; set => throw null; } - public bool SetAllValues { get => throw null; set => throw null; } + public virtual string SchemaSeparator { get => throw null; set { } } + public bool SetAllValues { get => throw null; set { } } protected abstract void SetRowUpdatingHandler(System.Data.Common.DbDataAdapter adapter); public virtual string UnquoteIdentifier(string quotedIdentifier) => throw null; } - - public abstract class DbConnection : System.ComponentModel.Component, System.Data.IDbConnection, System.IAsyncDisposable, System.IDisposable + public abstract class DbConnection : System.ComponentModel.Component, System.Data.IDbConnection, System.IDisposable, System.IAsyncDisposable { protected abstract System.Data.Common.DbTransaction BeginDbTransaction(System.Data.IsolationLevel isolationLevel); protected virtual System.Threading.Tasks.ValueTask BeginDbTransactionAsync(System.Data.IsolationLevel isolationLevel, System.Threading.CancellationToken cancellationToken) => throw null; public System.Data.Common.DbTransaction BeginTransaction() => throw null; - System.Data.IDbTransaction System.Data.IDbConnection.BeginTransaction() => throw null; public System.Data.Common.DbTransaction BeginTransaction(System.Data.IsolationLevel isolationLevel) => throw null; + System.Data.IDbTransaction System.Data.IDbConnection.BeginTransaction() => throw null; System.Data.IDbTransaction System.Data.IDbConnection.BeginTransaction(System.Data.IsolationLevel isolationLevel) => throw null; - public System.Threading.Tasks.ValueTask BeginTransactionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.ValueTask BeginTransactionAsync(System.Data.IsolationLevel isolationLevel, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask BeginTransactionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual bool CanCreateBatch { get => throw null; } public abstract void ChangeDatabase(string databaseName); public virtual System.Threading.Tasks.Task ChangeDatabaseAsync(string databaseName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; @@ -1868,9 +341,9 @@ namespace System System.Data.IDbCommand System.Data.IDbConnection.CreateCommand() => throw null; protected virtual System.Data.Common.DbBatch CreateDbBatch() => throw null; protected abstract System.Data.Common.DbCommand CreateDbCommand(); - public abstract string DataSource { get; } - public abstract string Database { get; } protected DbConnection() => throw null; + public abstract string Database { get; } + public abstract string DataSource { get; } protected virtual System.Data.Common.DbProviderFactory DbProviderFactory { get => throw null; } public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public virtual void EnlistTransaction(System.Transactions.Transaction transaction) => throw null; @@ -1886,19 +359,18 @@ namespace System public virtual System.Threading.Tasks.Task OpenAsync(System.Threading.CancellationToken cancellationToken) => throw null; public abstract string ServerVersion { get; } public abstract System.Data.ConnectionState State { get; } - public virtual event System.Data.StateChangeEventHandler StateChange; + public virtual event System.Data.StateChangeEventHandler StateChange { add { } remove { } } } - - public class DbConnectionStringBuilder : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.ComponentModel.ICustomTypeDescriptor + public class DbConnectionStringBuilder : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary, System.ComponentModel.ICustomTypeDescriptor { - void System.Collections.IDictionary.Add(object keyword, object value) => throw null; public void Add(string keyword, object value) => throw null; + void System.Collections.IDictionary.Add(object keyword, object value) => throw null; public static void AppendKeyValuePair(System.Text.StringBuilder builder, string keyword, string value) => throw null; public static void AppendKeyValuePair(System.Text.StringBuilder builder, string keyword, string value, bool useOdbcRules) => throw null; - public bool BrowsableConnectionString { get => throw null; set => throw null; } + public bool BrowsableConnectionString { get => throw null; set { } } public virtual void Clear() => throw null; - protected internal void ClearPropertyDescriptors() => throw null; - public string ConnectionString { get => throw null; set => throw null; } + protected void ClearPropertyDescriptors() => throw null; + public string ConnectionString { get => throw null; set { } } bool System.Collections.IDictionary.Contains(object keyword) => throw null; public virtual bool ContainsKey(string keyword) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; @@ -1917,25 +389,24 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents() => throw null; System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[] attributes) => throw null; + protected virtual void GetProperties(System.Collections.Hashtable propertyDescriptors) => throw null; System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetProperties() => throw null; System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[] attributes) => throw null; - protected virtual void GetProperties(System.Collections.Hashtable propertyDescriptors) => throw null; object System.ComponentModel.ICustomTypeDescriptor.GetPropertyOwner(System.ComponentModel.PropertyDescriptor pd) => throw null; public virtual bool IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - object System.Collections.IDictionary.this[object keyword] { get => throw null; set => throw null; } - public virtual object this[string keyword] { get => throw null; set => throw null; } + object System.Collections.IDictionary.this[object keyword] { get => throw null; set { } } public virtual System.Collections.ICollection Keys { get => throw null; } - void System.Collections.IDictionary.Remove(object keyword) => throw null; public virtual bool Remove(string keyword) => throw null; + void System.Collections.IDictionary.Remove(object keyword) => throw null; public virtual bool ShouldSerialize(string keyword) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public virtual object this[string keyword] { get => throw null; set { } } public override string ToString() => throw null; public virtual bool TryGetValue(string keyword, out object value) => throw null; public virtual System.Collections.ICollection Values { get => throw null; } } - public abstract class DbDataAdapter : System.Data.Common.DataAdapter, System.Data.IDataAdapter, System.Data.IDbDataAdapter, System.ICloneable { protected virtual int AddToBatch(System.Data.IDbCommand command) => throw null; @@ -1945,9 +416,9 @@ namespace System protected virtual System.Data.Common.RowUpdatingEventArgs CreateRowUpdatingEvent(System.Data.DataRow dataRow, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) => throw null; protected DbDataAdapter() => throw null; protected DbDataAdapter(System.Data.Common.DbDataAdapter adapter) => throw null; - public const string DefaultSourceTableName = default; - public System.Data.Common.DbCommand DeleteCommand { get => throw null; set => throw null; } - System.Data.IDbCommand System.Data.IDbDataAdapter.DeleteCommand { get => throw null; set => throw null; } + public static string DefaultSourceTableName; + public System.Data.Common.DbCommand DeleteCommand { get => throw null; set { } } + System.Data.IDbCommand System.Data.IDbDataAdapter.DeleteCommand { get => throw null; set { } } protected override void Dispose(bool disposing) => throw null; protected virtual int ExecuteBatch() => throw null; public override int Fill(System.Data.DataSet dataSet) => throw null; @@ -1958,7 +429,7 @@ namespace System protected virtual int Fill(System.Data.DataTable dataTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior) => throw null; protected virtual int Fill(System.Data.DataTable[] dataTables, int startRecord, int maxRecords, System.Data.IDbCommand command, System.Data.CommandBehavior behavior) => throw null; public int Fill(int startRecord, int maxRecords, params System.Data.DataTable[] dataTables) => throw null; - protected internal System.Data.CommandBehavior FillCommandBehavior { get => throw null; set => throw null; } + protected System.Data.CommandBehavior FillCommandBehavior { get => throw null; set { } } public override System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType) => throw null; protected virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, System.Data.IDbCommand command, string srcTable, System.Data.CommandBehavior behavior) => throw null; public System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable) => throw null; @@ -1968,24 +439,23 @@ namespace System protected virtual bool GetBatchedRecordsAffected(int commandIdentifier, out int recordsAffected, out System.Exception error) => throw null; public override System.Data.IDataParameter[] GetFillParameters() => throw null; protected virtual void InitializeBatching() => throw null; - public System.Data.Common.DbCommand InsertCommand { get => throw null; set => throw null; } - System.Data.IDbCommand System.Data.IDbDataAdapter.InsertCommand { get => throw null; set => throw null; } + public System.Data.Common.DbCommand InsertCommand { get => throw null; set { } } + System.Data.IDbCommand System.Data.IDbDataAdapter.InsertCommand { get => throw null; set { } } protected virtual void OnRowUpdated(System.Data.Common.RowUpdatedEventArgs value) => throw null; protected virtual void OnRowUpdating(System.Data.Common.RowUpdatingEventArgs value) => throw null; - public System.Data.Common.DbCommand SelectCommand { get => throw null; set => throw null; } - System.Data.IDbCommand System.Data.IDbDataAdapter.SelectCommand { get => throw null; set => throw null; } + public System.Data.Common.DbCommand SelectCommand { get => throw null; set { } } + System.Data.IDbCommand System.Data.IDbDataAdapter.SelectCommand { get => throw null; set { } } protected virtual void TerminateBatching() => throw null; public int Update(System.Data.DataRow[] dataRows) => throw null; protected virtual int Update(System.Data.DataRow[] dataRows, System.Data.Common.DataTableMapping tableMapping) => throw null; public override int Update(System.Data.DataSet dataSet) => throw null; public int Update(System.Data.DataSet dataSet, string srcTable) => throw null; public int Update(System.Data.DataTable dataTable) => throw null; - public virtual int UpdateBatchSize { get => throw null; set => throw null; } - public System.Data.Common.DbCommand UpdateCommand { get => throw null; set => throw null; } - System.Data.IDbCommand System.Data.IDbDataAdapter.UpdateCommand { get => throw null; set => throw null; } + public virtual int UpdateBatchSize { get => throw null; set { } } + System.Data.IDbCommand System.Data.IDbDataAdapter.UpdateCommand { get => throw null; set { } } + public System.Data.Common.DbCommand UpdateCommand { get => throw null; set { } } } - - public abstract class DbDataReader : System.MarshalByRefObject, System.Collections.IEnumerable, System.Data.IDataReader, System.Data.IDataRecord, System.IAsyncDisposable, System.IDisposable + public abstract class DbDataReader : System.MarshalByRefObject, System.Collections.IEnumerable, System.Data.IDataReader, System.Data.IDataRecord, System.IDisposable, System.IAsyncDisposable { public virtual void Close() => throw null; public virtual System.Threading.Tasks.Task CloseAsync() => throw null; @@ -1996,17 +466,17 @@ namespace System public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public abstract int FieldCount { get; } public abstract bool GetBoolean(int ordinal); - public abstract System.Byte GetByte(int ordinal); - public abstract System.Int64 GetBytes(int ordinal, System.Int64 dataOffset, System.Byte[] buffer, int bufferOffset, int length); - public abstract System.Char GetChar(int ordinal); - public abstract System.Int64 GetChars(int ordinal, System.Int64 dataOffset, System.Char[] buffer, int bufferOffset, int length); + public abstract byte GetByte(int ordinal); + public abstract long GetBytes(int ordinal, long dataOffset, byte[] buffer, int bufferOffset, int length); + public abstract char GetChar(int ordinal); + public abstract long GetChars(int ordinal, long dataOffset, char[] buffer, int bufferOffset, int length); public virtual System.Threading.Tasks.Task> GetColumnSchemaAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Data.Common.DbDataReader GetData(int ordinal) => throw null; System.Data.IDataReader System.Data.IDataRecord.GetData(int ordinal) => throw null; public abstract string GetDataTypeName(int ordinal); public abstract System.DateTime GetDateTime(int ordinal); protected virtual System.Data.Common.DbDataReader GetDbDataReader(int ordinal) => throw null; - public abstract System.Decimal GetDecimal(int ordinal); + public abstract decimal GetDecimal(int ordinal); public abstract double GetDouble(int ordinal); public abstract System.Collections.IEnumerator GetEnumerator(); public abstract System.Type GetFieldType(int ordinal); @@ -2015,9 +485,9 @@ namespace System public virtual System.Threading.Tasks.Task GetFieldValueAsync(int ordinal, System.Threading.CancellationToken cancellationToken) => throw null; public abstract float GetFloat(int ordinal); public abstract System.Guid GetGuid(int ordinal); - public abstract System.Int16 GetInt16(int ordinal); + public abstract short GetInt16(int ordinal); public abstract int GetInt32(int ordinal); - public abstract System.Int64 GetInt64(int ordinal); + public abstract long GetInt64(int ordinal); public abstract string GetName(int ordinal); public abstract int GetOrdinal(string name); public virtual System.Type GetProviderSpecificFieldType(int ordinal) => throw null; @@ -2035,8 +505,6 @@ namespace System public abstract bool IsDBNull(int ordinal); public System.Threading.Tasks.Task IsDBNullAsync(int ordinal) => throw null; public virtual System.Threading.Tasks.Task IsDBNullAsync(int ordinal, System.Threading.CancellationToken cancellationToken) => throw null; - public abstract object this[int ordinal] { get; } - public abstract object this[string name] { get; } public abstract bool NextResult(); public System.Threading.Tasks.Task NextResultAsync() => throw null; public virtual System.Threading.Tasks.Task NextResultAsync(System.Threading.CancellationToken cancellationToken) => throw null; @@ -2044,25 +512,25 @@ namespace System public System.Threading.Tasks.Task ReadAsync() => throw null; public virtual System.Threading.Tasks.Task ReadAsync(System.Threading.CancellationToken cancellationToken) => throw null; public abstract int RecordsAffected { get; } + public abstract object this[int ordinal] { get; } + public abstract object this[string name] { get; } public virtual int VisibleFieldCount { get => throw null; } } - - public static class DbDataReaderExtensions + public static partial class DbDataReaderExtensions { public static bool CanGetColumnSchema(this System.Data.Common.DbDataReader reader) => throw null; public static System.Collections.ObjectModel.ReadOnlyCollection GetColumnSchema(this System.Data.Common.DbDataReader reader) => throw null; } - public abstract class DbDataRecord : System.ComponentModel.ICustomTypeDescriptor, System.Data.IDataRecord { protected DbDataRecord() => throw null; public abstract int FieldCount { get; } System.ComponentModel.AttributeCollection System.ComponentModel.ICustomTypeDescriptor.GetAttributes() => throw null; public abstract bool GetBoolean(int i); - public abstract System.Byte GetByte(int i); - public abstract System.Int64 GetBytes(int i, System.Int64 dataIndex, System.Byte[] buffer, int bufferIndex, int length); - public abstract System.Char GetChar(int i); - public abstract System.Int64 GetChars(int i, System.Int64 dataIndex, System.Char[] buffer, int bufferIndex, int length); + public abstract byte GetByte(int i); + public abstract long GetBytes(int i, long dataIndex, byte[] buffer, int bufferIndex, int length); + public abstract char GetChar(int i); + public abstract long GetChars(int i, long dataIndex, char[] buffer, int bufferIndex, int length); string System.ComponentModel.ICustomTypeDescriptor.GetClassName() => throw null; string System.ComponentModel.ICustomTypeDescriptor.GetComponentName() => throw null; System.ComponentModel.TypeConverter System.ComponentModel.ICustomTypeDescriptor.GetConverter() => throw null; @@ -2070,7 +538,7 @@ namespace System public abstract string GetDataTypeName(int i); public abstract System.DateTime GetDateTime(int i); protected virtual System.Data.Common.DbDataReader GetDbDataReader(int i) => throw null; - public abstract System.Decimal GetDecimal(int i); + public abstract decimal GetDecimal(int i); System.ComponentModel.EventDescriptor System.ComponentModel.ICustomTypeDescriptor.GetDefaultEvent() => throw null; System.ComponentModel.PropertyDescriptor System.ComponentModel.ICustomTypeDescriptor.GetDefaultProperty() => throw null; public abstract double GetDouble(int i); @@ -2080,9 +548,9 @@ namespace System public abstract System.Type GetFieldType(int i); public abstract float GetFloat(int i); public abstract System.Guid GetGuid(int i); - public abstract System.Int16 GetInt16(int i); + public abstract short GetInt16(int i); public abstract int GetInt32(int i); - public abstract System.Int64 GetInt64(int i); + public abstract long GetInt64(int i); public abstract string GetName(int i); public abstract int GetOrdinal(string name); System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetProperties() => throw null; @@ -2095,8 +563,7 @@ namespace System public abstract object this[int i] { get; } public abstract object this[string name] { get; } } - - public abstract class DbDataSource : System.IAsyncDisposable, System.IDisposable + public abstract class DbDataSource : System.IDisposable, System.IAsyncDisposable { public abstract string ConnectionString { get; } public System.Data.Common.DbBatch CreateBatch() => throw null; @@ -2115,37 +582,33 @@ namespace System protected virtual System.Data.Common.DbConnection OpenDbConnection() => throw null; protected virtual System.Threading.Tasks.ValueTask OpenDbConnectionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - public abstract class DbDataSourceEnumerator { protected DbDataSourceEnumerator() => throw null; public abstract System.Data.DataTable GetDataSources(); } - public class DbEnumerator : System.Collections.IEnumerator { - public object Current { get => throw null; } public DbEnumerator(System.Data.Common.DbDataReader reader) => throw null; public DbEnumerator(System.Data.Common.DbDataReader reader, bool closeReader) => throw null; public DbEnumerator(System.Data.IDataReader reader) => throw null; public DbEnumerator(System.Data.IDataReader reader, bool closeReader) => throw null; + public object Current { get => throw null; } public bool MoveNext() => throw null; public void Reset() => throw null; } - public abstract class DbException : System.Runtime.InteropServices.ExternalException { public System.Data.Common.DbBatchCommand BatchCommand { get => throw null; } - protected virtual System.Data.Common.DbBatchCommand DbBatchCommand { get => throw null; } protected DbException() => throw null; protected DbException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; protected DbException(string message) => throw null; protected DbException(string message, System.Exception innerException) => throw null; protected DbException(string message, int errorCode) => throw null; + protected virtual System.Data.Common.DbBatchCommand DbBatchCommand { get => throw null; } public virtual bool IsTransient { get => throw null; } public virtual string SqlState { get => throw null; } } - public static class DbMetaDataCollectionNames { public static string DataSourceInformation; @@ -2154,7 +617,6 @@ namespace System public static string ReservedWords; public static string Restrictions; } - public static class DbMetaDataColumnNames { public static string CollectionName; @@ -2201,7 +663,6 @@ namespace System public static string SupportedJoinOperators; public static string TypeName; } - public abstract class DbParameter : System.MarshalByRefObject, System.Data.IDataParameter, System.Data.IDbDataParameter { protected DbParameter() => throw null; @@ -2209,26 +670,25 @@ namespace System public abstract System.Data.ParameterDirection Direction { get; set; } public abstract bool IsNullable { get; set; } public abstract string ParameterName { get; set; } - public virtual System.Byte Precision { get => throw null; set => throw null; } - System.Byte System.Data.IDbDataParameter.Precision { get => throw null; set => throw null; } + public virtual byte Precision { get => throw null; set { } } + byte System.Data.IDbDataParameter.Precision { get => throw null; set { } } public abstract void ResetDbType(); - public virtual System.Byte Scale { get => throw null; set => throw null; } - System.Byte System.Data.IDbDataParameter.Scale { get => throw null; set => throw null; } + public virtual byte Scale { get => throw null; set { } } + byte System.Data.IDbDataParameter.Scale { get => throw null; set { } } public abstract int Size { get; set; } public abstract string SourceColumn { get; set; } public abstract bool SourceColumnNullMapping { get; set; } - public virtual System.Data.DataRowVersion SourceVersion { get => throw null; set => throw null; } + public virtual System.Data.DataRowVersion SourceVersion { get => throw null; set { } } public abstract object Value { get; set; } } - public abstract class DbParameterCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Data.IDataParameterCollection { - public abstract int Add(object value); int System.Collections.IList.Add(object value) => throw null; + public abstract int Add(object value); public abstract void AddRange(System.Array values); public abstract void Clear(); - public abstract bool Contains(object value); bool System.Collections.IList.Contains(object value) => throw null; + public abstract bool Contains(object value); public abstract bool Contains(string value); public abstract void CopyTo(System.Array array, int index); public abstract int Count { get; } @@ -2236,41 +696,39 @@ namespace System public abstract System.Collections.IEnumerator GetEnumerator(); protected abstract System.Data.Common.DbParameter GetParameter(int index); protected abstract System.Data.Common.DbParameter GetParameter(string parameterName); - public abstract int IndexOf(object value); int System.Collections.IList.IndexOf(object value) => throw null; + public abstract int IndexOf(object value); public abstract int IndexOf(string parameterName); - public abstract void Insert(int index, object value); void System.Collections.IList.Insert(int index, object value) => throw null; + public abstract void Insert(int index, object value); public virtual bool IsFixedSize { get => throw null; } public virtual bool IsReadOnly { get => throw null; } public virtual bool IsSynchronized { get => throw null; } - public System.Data.Common.DbParameter this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public System.Data.Common.DbParameter this[string parameterName] { get => throw null; set => throw null; } - object System.Data.IDataParameterCollection.this[string parameterName] { get => throw null; set => throw null; } - public abstract void Remove(object value); + object System.Collections.IList.this[int index] { get => throw null; set { } } + object System.Data.IDataParameterCollection.this[string parameterName] { get => throw null; set { } } void System.Collections.IList.Remove(object value) => throw null; + public abstract void Remove(object value); public abstract void RemoveAt(int index); public abstract void RemoveAt(string parameterName); protected abstract void SetParameter(int index, System.Data.Common.DbParameter value); protected abstract void SetParameter(string parameterName, System.Data.Common.DbParameter value); public abstract object SyncRoot { get; } + public System.Data.Common.DbParameter this[int index] { get => throw null; set { } } + public System.Data.Common.DbParameter this[string parameterName] { get => throw null; set { } } } - public static class DbProviderFactories { - public static System.Data.Common.DbProviderFactory GetFactory(System.Data.DataRow providerRow) => throw null; public static System.Data.Common.DbProviderFactory GetFactory(System.Data.Common.DbConnection connection) => throw null; + public static System.Data.Common.DbProviderFactory GetFactory(System.Data.DataRow providerRow) => throw null; public static System.Data.Common.DbProviderFactory GetFactory(string providerInvariantName) => throw null; public static System.Data.DataTable GetFactoryClasses() => throw null; public static System.Collections.Generic.IEnumerable GetProviderInvariantNames() => throw null; public static void RegisterFactory(string providerInvariantName, System.Data.Common.DbProviderFactory factory) => throw null; - public static void RegisterFactory(string providerInvariantName, System.Type providerFactoryClass) => throw null; public static void RegisterFactory(string providerInvariantName, string factoryTypeAssemblyQualifiedName) => throw null; + public static void RegisterFactory(string providerInvariantName, System.Type providerFactoryClass) => throw null; public static bool TryGetFactory(string providerInvariantName, out System.Data.Common.DbProviderFactory factory) => throw null; public static bool UnregisterFactory(string providerInvariantName) => throw null; } - public abstract class DbProviderFactory { public virtual bool CanCreateBatch { get => throw null; } @@ -2289,21 +747,19 @@ namespace System public virtual System.Data.Common.DbParameter CreateParameter() => throw null; protected DbProviderFactory() => throw null; } - - public class DbProviderSpecificTypePropertyAttribute : System.Attribute + public sealed class DbProviderSpecificTypePropertyAttribute : System.Attribute { public DbProviderSpecificTypePropertyAttribute(bool isProviderSpecificTypeProperty) => throw null; public bool IsProviderSpecificTypeProperty { get => throw null; } } - - public abstract class DbTransaction : System.MarshalByRefObject, System.Data.IDbTransaction, System.IAsyncDisposable, System.IDisposable + public abstract class DbTransaction : System.MarshalByRefObject, System.Data.IDbTransaction, System.IDisposable, System.IAsyncDisposable { public abstract void Commit(); public virtual System.Threading.Tasks.Task CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Data.Common.DbConnection Connection { get => throw null; } System.Data.IDbConnection System.Data.IDbTransaction.Connection { get => throw null; } - protected abstract System.Data.Common.DbConnection DbConnection { get; } protected DbTransaction() => throw null; + protected abstract System.Data.Common.DbConnection DbConnection { get; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; @@ -2318,55 +774,49 @@ namespace System public virtual System.Threading.Tasks.Task SaveAsync(string savepointName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual bool SupportsSavepoints { get => throw null; } } - - public enum GroupByBehavior : int + public enum GroupByBehavior { - ExactMatch = 4, - MustContainAll = 3, - NotSupported = 1, Unknown = 0, + NotSupported = 1, Unrelated = 2, + MustContainAll = 3, + ExactMatch = 4, } - public interface IDbColumnSchemaGenerator { System.Collections.ObjectModel.ReadOnlyCollection GetColumnSchema(); } - - public enum IdentifierCase : int + public enum IdentifierCase { + Unknown = 0, Insensitive = 1, Sensitive = 2, - Unknown = 0, } - public class RowUpdatedEventArgs : System.EventArgs { public System.Data.IDbCommand Command { get => throw null; } public void CopyToRows(System.Data.DataRow[] array) => throw null; public void CopyToRows(System.Data.DataRow[] array, int arrayIndex) => throw null; - public System.Exception Errors { get => throw null; set => throw null; } + public RowUpdatedEventArgs(System.Data.DataRow dataRow, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) => throw null; + public System.Exception Errors { get => throw null; set { } } public int RecordsAffected { get => throw null; } public System.Data.DataRow Row { get => throw null; } public int RowCount { get => throw null; } - public RowUpdatedEventArgs(System.Data.DataRow dataRow, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) => throw null; public System.Data.StatementType StatementType { get => throw null; } - public System.Data.UpdateStatus Status { get => throw null; set => throw null; } + public System.Data.UpdateStatus Status { get => throw null; set { } } public System.Data.Common.DataTableMapping TableMapping { get => throw null; } } - public class RowUpdatingEventArgs : System.EventArgs { - protected virtual System.Data.IDbCommand BaseCommand { get => throw null; set => throw null; } - public System.Data.IDbCommand Command { get => throw null; set => throw null; } - public System.Exception Errors { get => throw null; set => throw null; } - public System.Data.DataRow Row { get => throw null; } + protected virtual System.Data.IDbCommand BaseCommand { get => throw null; set { } } + public System.Data.IDbCommand Command { get => throw null; set { } } public RowUpdatingEventArgs(System.Data.DataRow dataRow, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) => throw null; + public System.Exception Errors { get => throw null; set { } } + public System.Data.DataRow Row { get => throw null; } public System.Data.StatementType StatementType { get => throw null; } - public System.Data.UpdateStatus Status { get => throw null; set => throw null; } + public System.Data.UpdateStatus Status { get => throw null; set { } } public System.Data.Common.DataTableMapping TableMapping { get => throw null; } } - public static class SchemaTableColumn { public static string AllowDBNull; @@ -2387,7 +837,6 @@ namespace System public static string NumericScale; public static string ProviderType; } - public static class SchemaTableOptionalColumn { public static string AutoIncrementSeed; @@ -2405,17 +854,1310 @@ namespace System public static string IsRowVersion; public static string ProviderSpecificDataType; } - [System.Flags] - public enum SupportedJoinOperators : int + public enum SupportedJoinOperators { - FullOuter = 8, + None = 0, Inner = 1, LeftOuter = 2, - None = 0, RightOuter = 4, + FullOuter = 8, } - + } + public enum ConflictOption + { + CompareAllSearchableValues = 1, + CompareRowVersion = 2, + OverwriteChanges = 3, + } + [System.Flags] + public enum ConnectionState + { + Closed = 0, + Open = 1, + Connecting = 2, + Executing = 4, + Fetching = 8, + Broken = 16, + } + public abstract class Constraint + { + protected virtual System.Data.DataSet _DataSet { get => throw null; } + protected void CheckStateForProperty() => throw null; + public virtual string ConstraintName { get => throw null; set { } } + public System.Data.PropertyCollection ExtendedProperties { get => throw null; } + protected void SetDataSet(System.Data.DataSet dataSet) => throw null; + public abstract System.Data.DataTable Table { get; } + public override string ToString() => throw null; + } + public sealed class ConstraintCollection : System.Data.InternalDataCollectionBase + { + public void Add(System.Data.Constraint constraint) => throw null; + public System.Data.Constraint Add(string name, System.Data.DataColumn column, bool primaryKey) => throw null; + public System.Data.Constraint Add(string name, System.Data.DataColumn primaryKeyColumn, System.Data.DataColumn foreignKeyColumn) => throw null; + public System.Data.Constraint Add(string name, System.Data.DataColumn[] columns, bool primaryKey) => throw null; + public System.Data.Constraint Add(string name, System.Data.DataColumn[] primaryKeyColumns, System.Data.DataColumn[] foreignKeyColumns) => throw null; + public void AddRange(System.Data.Constraint[] constraints) => throw null; + public bool CanRemove(System.Data.Constraint constraint) => throw null; + public void Clear() => throw null; + public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged { add { } remove { } } + public bool Contains(string name) => throw null; + public void CopyTo(System.Data.Constraint[] array, int index) => throw null; + public int IndexOf(System.Data.Constraint constraint) => throw null; + public int IndexOf(string constraintName) => throw null; + protected override System.Collections.ArrayList List { get => throw null; } + public void Remove(System.Data.Constraint constraint) => throw null; + public void Remove(string name) => throw null; + public void RemoveAt(int index) => throw null; + public System.Data.Constraint this[int index] { get => throw null; } + public System.Data.Constraint this[string name] { get => throw null; } + } + public class ConstraintException : System.Data.DataException + { + public ConstraintException() => throw null; + protected ConstraintException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public ConstraintException(string s) => throw null; + public ConstraintException(string message, System.Exception innerException) => throw null; + } + public class DataColumn : System.ComponentModel.MarshalByValueComponent + { + public bool AllowDBNull { get => throw null; set { } } + public bool AutoIncrement { get => throw null; set { } } + public long AutoIncrementSeed { get => throw null; set { } } + public long AutoIncrementStep { get => throw null; set { } } + public string Caption { get => throw null; set { } } + protected void CheckNotAllowNull() => throw null; + protected void CheckUnique() => throw null; + public virtual System.Data.MappingType ColumnMapping { get => throw null; set { } } + public string ColumnName { get => throw null; set { } } + public DataColumn() => throw null; + public DataColumn(string columnName) => throw null; + public DataColumn(string columnName, System.Type dataType) => throw null; + public DataColumn(string columnName, System.Type dataType, string expr) => throw null; + public DataColumn(string columnName, System.Type dataType, string expr, System.Data.MappingType type) => throw null; + public System.Type DataType { get => throw null; set { } } + public System.Data.DataSetDateTime DateTimeMode { get => throw null; set { } } + public object DefaultValue { get => throw null; set { } } + public string Expression { get => throw null; set { } } + public System.Data.PropertyCollection ExtendedProperties { get => throw null; } + public int MaxLength { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + protected virtual void OnPropertyChanging(System.ComponentModel.PropertyChangedEventArgs pcevent) => throw null; + public int Ordinal { get => throw null; } + public string Prefix { get => throw null; set { } } + protected void RaisePropertyChanging(string name) => throw null; + public bool ReadOnly { get => throw null; set { } } + public void SetOrdinal(int ordinal) => throw null; + public System.Data.DataTable Table { get => throw null; } + public override string ToString() => throw null; + public bool Unique { get => throw null; set { } } + } + public class DataColumnChangeEventArgs : System.EventArgs + { + public System.Data.DataColumn Column { get => throw null; } + public DataColumnChangeEventArgs(System.Data.DataRow row, System.Data.DataColumn column, object value) => throw null; + public object ProposedValue { get => throw null; set { } } + public System.Data.DataRow Row { get => throw null; } + } + public delegate void DataColumnChangeEventHandler(object sender, System.Data.DataColumnChangeEventArgs e); + public sealed class DataColumnCollection : System.Data.InternalDataCollectionBase + { + public System.Data.DataColumn Add() => throw null; + public void Add(System.Data.DataColumn column) => throw null; + public System.Data.DataColumn Add(string columnName) => throw null; + public System.Data.DataColumn Add(string columnName, System.Type type) => throw null; + public System.Data.DataColumn Add(string columnName, System.Type type, string expression) => throw null; + public void AddRange(System.Data.DataColumn[] columns) => throw null; + public bool CanRemove(System.Data.DataColumn column) => throw null; + public void Clear() => throw null; + public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged { add { } remove { } } + public bool Contains(string name) => throw null; + public void CopyTo(System.Data.DataColumn[] array, int index) => throw null; + public int IndexOf(System.Data.DataColumn column) => throw null; + public int IndexOf(string columnName) => throw null; + protected override System.Collections.ArrayList List { get => throw null; } + public void Remove(System.Data.DataColumn column) => throw null; + public void Remove(string name) => throw null; + public void RemoveAt(int index) => throw null; + public System.Data.DataColumn this[int index] { get => throw null; } + public System.Data.DataColumn this[string name] { get => throw null; } + } + public class DataException : System.SystemException + { + public DataException() => throw null; + protected DataException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public DataException(string s) => throw null; + public DataException(string s, System.Exception innerException) => throw null; + } + public static partial class DataReaderExtensions + { + public static bool GetBoolean(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static byte GetByte(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static long GetBytes(this System.Data.Common.DbDataReader reader, string name, long dataOffset, byte[] buffer, int bufferOffset, int length) => throw null; + public static char GetChar(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static long GetChars(this System.Data.Common.DbDataReader reader, string name, long dataOffset, char[] buffer, int bufferOffset, int length) => throw null; + public static System.Data.Common.DbDataReader GetData(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static string GetDataTypeName(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static System.DateTime GetDateTime(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static decimal GetDecimal(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static double GetDouble(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static System.Type GetFieldType(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static T GetFieldValue(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static System.Threading.Tasks.Task GetFieldValueAsync(this System.Data.Common.DbDataReader reader, string name, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static float GetFloat(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static System.Guid GetGuid(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static short GetInt16(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static int GetInt32(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static long GetInt64(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static System.Type GetProviderSpecificFieldType(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static object GetProviderSpecificValue(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static System.IO.Stream GetStream(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static string GetString(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static System.IO.TextReader GetTextReader(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static object GetValue(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static bool IsDBNull(this System.Data.Common.DbDataReader reader, string name) => throw null; + public static System.Threading.Tasks.Task IsDBNullAsync(this System.Data.Common.DbDataReader reader, string name, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class DataRelation + { + protected void CheckStateForProperty() => throw null; + public virtual System.Data.DataColumn[] ChildColumns { get => throw null; } + public virtual System.Data.ForeignKeyConstraint ChildKeyConstraint { get => throw null; } + public virtual System.Data.DataTable ChildTable { get => throw null; } + public DataRelation(string relationName, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; + public DataRelation(string relationName, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn, bool createConstraints) => throw null; + public DataRelation(string relationName, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns) => throw null; + public DataRelation(string relationName, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns, bool createConstraints) => throw null; + public DataRelation(string relationName, string parentTableName, string parentTableNamespace, string childTableName, string childTableNamespace, string[] parentColumnNames, string[] childColumnNames, bool nested) => throw null; + public DataRelation(string relationName, string parentTableName, string childTableName, string[] parentColumnNames, string[] childColumnNames, bool nested) => throw null; + public virtual System.Data.DataSet DataSet { get => throw null; } + public System.Data.PropertyCollection ExtendedProperties { get => throw null; } + public virtual bool Nested { get => throw null; set { } } + protected void OnPropertyChanging(System.ComponentModel.PropertyChangedEventArgs pcevent) => throw null; + public virtual System.Data.DataColumn[] ParentColumns { get => throw null; } + public virtual System.Data.UniqueConstraint ParentKeyConstraint { get => throw null; } + public virtual System.Data.DataTable ParentTable { get => throw null; } + protected void RaisePropertyChanging(string name) => throw null; + public virtual string RelationName { get => throw null; set { } } + public override string ToString() => throw null; + } + public abstract class DataRelationCollection : System.Data.InternalDataCollectionBase + { + public virtual System.Data.DataRelation Add(System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; + public virtual System.Data.DataRelation Add(System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns) => throw null; + public void Add(System.Data.DataRelation relation) => throw null; + public virtual System.Data.DataRelation Add(string name, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; + public virtual System.Data.DataRelation Add(string name, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn, bool createConstraints) => throw null; + public virtual System.Data.DataRelation Add(string name, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns) => throw null; + public virtual System.Data.DataRelation Add(string name, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns, bool createConstraints) => throw null; + protected virtual void AddCore(System.Data.DataRelation relation) => throw null; + public virtual void AddRange(System.Data.DataRelation[] relations) => throw null; + public virtual bool CanRemove(System.Data.DataRelation relation) => throw null; + public virtual void Clear() => throw null; + public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged { add { } remove { } } + public virtual bool Contains(string name) => throw null; + public void CopyTo(System.Data.DataRelation[] array, int index) => throw null; + protected DataRelationCollection() => throw null; + protected abstract System.Data.DataSet GetDataSet(); + public virtual int IndexOf(System.Data.DataRelation relation) => throw null; + public virtual int IndexOf(string relationName) => throw null; + protected virtual void OnCollectionChanged(System.ComponentModel.CollectionChangeEventArgs ccevent) => throw null; + protected virtual void OnCollectionChanging(System.ComponentModel.CollectionChangeEventArgs ccevent) => throw null; + public void Remove(System.Data.DataRelation relation) => throw null; + public void Remove(string name) => throw null; + public void RemoveAt(int index) => throw null; + protected virtual void RemoveCore(System.Data.DataRelation relation) => throw null; + public abstract System.Data.DataRelation this[int index] { get; } + public abstract System.Data.DataRelation this[string name] { get; } + } + public class DataRow + { + public void AcceptChanges() => throw null; + public void BeginEdit() => throw null; + public void CancelEdit() => throw null; + public void ClearErrors() => throw null; + protected DataRow(System.Data.DataRowBuilder builder) => throw null; + public void Delete() => throw null; + public void EndEdit() => throw null; + public System.Data.DataRow[] GetChildRows(System.Data.DataRelation relation) => throw null; + public System.Data.DataRow[] GetChildRows(System.Data.DataRelation relation, System.Data.DataRowVersion version) => throw null; + public System.Data.DataRow[] GetChildRows(string relationName) => throw null; + public System.Data.DataRow[] GetChildRows(string relationName, System.Data.DataRowVersion version) => throw null; + public string GetColumnError(System.Data.DataColumn column) => throw null; + public string GetColumnError(int columnIndex) => throw null; + public string GetColumnError(string columnName) => throw null; + public System.Data.DataColumn[] GetColumnsInError() => throw null; + public System.Data.DataRow GetParentRow(System.Data.DataRelation relation) => throw null; + public System.Data.DataRow GetParentRow(System.Data.DataRelation relation, System.Data.DataRowVersion version) => throw null; + public System.Data.DataRow GetParentRow(string relationName) => throw null; + public System.Data.DataRow GetParentRow(string relationName, System.Data.DataRowVersion version) => throw null; + public System.Data.DataRow[] GetParentRows(System.Data.DataRelation relation) => throw null; + public System.Data.DataRow[] GetParentRows(System.Data.DataRelation relation, System.Data.DataRowVersion version) => throw null; + public System.Data.DataRow[] GetParentRows(string relationName) => throw null; + public System.Data.DataRow[] GetParentRows(string relationName, System.Data.DataRowVersion version) => throw null; + public bool HasErrors { get => throw null; } + public bool HasVersion(System.Data.DataRowVersion version) => throw null; + public bool IsNull(System.Data.DataColumn column) => throw null; + public bool IsNull(System.Data.DataColumn column, System.Data.DataRowVersion version) => throw null; + public bool IsNull(int columnIndex) => throw null; + public bool IsNull(string columnName) => throw null; + public object[] ItemArray { get => throw null; set { } } + public void RejectChanges() => throw null; + public string RowError { get => throw null; set { } } + public System.Data.DataRowState RowState { get => throw null; } + public void SetAdded() => throw null; + public void SetColumnError(System.Data.DataColumn column, string error) => throw null; + public void SetColumnError(int columnIndex, string error) => throw null; + public void SetColumnError(string columnName, string error) => throw null; + public void SetModified() => throw null; + protected void SetNull(System.Data.DataColumn column) => throw null; + public void SetParentRow(System.Data.DataRow parentRow) => throw null; + public void SetParentRow(System.Data.DataRow parentRow, System.Data.DataRelation relation) => throw null; + public System.Data.DataTable Table { get => throw null; } + public object this[System.Data.DataColumn column] { get => throw null; set { } } + public object this[System.Data.DataColumn column, System.Data.DataRowVersion version] { get => throw null; } + public object this[int columnIndex] { get => throw null; set { } } + public object this[int columnIndex, System.Data.DataRowVersion version] { get => throw null; } + public object this[string columnName] { get => throw null; set { } } + public object this[string columnName, System.Data.DataRowVersion version] { get => throw null; } + } + [System.Flags] + public enum DataRowAction + { + Nothing = 0, + Delete = 1, + Change = 2, + Rollback = 4, + Commit = 8, + Add = 16, + ChangeOriginal = 32, + ChangeCurrentAndOriginal = 64, + } + public sealed class DataRowBuilder + { + } + public class DataRowChangeEventArgs : System.EventArgs + { + public System.Data.DataRowAction Action { get => throw null; } + public DataRowChangeEventArgs(System.Data.DataRow row, System.Data.DataRowAction action) => throw null; + public System.Data.DataRow Row { get => throw null; } + } + public delegate void DataRowChangeEventHandler(object sender, System.Data.DataRowChangeEventArgs e); + public sealed class DataRowCollection : System.Data.InternalDataCollectionBase + { + public void Add(System.Data.DataRow row) => throw null; + public System.Data.DataRow Add(params object[] values) => throw null; + public void Clear() => throw null; + public bool Contains(object key) => throw null; + public bool Contains(object[] keys) => throw null; + public override void CopyTo(System.Array ar, int index) => throw null; + public void CopyTo(System.Data.DataRow[] array, int index) => throw null; + public override int Count { get => throw null; } + public System.Data.DataRow Find(object key) => throw null; + public System.Data.DataRow Find(object[] keys) => throw null; + public override System.Collections.IEnumerator GetEnumerator() => throw null; + public int IndexOf(System.Data.DataRow row) => throw null; + public void InsertAt(System.Data.DataRow row, int pos) => throw null; + public void Remove(System.Data.DataRow row) => throw null; + public void RemoveAt(int index) => throw null; + public System.Data.DataRow this[int index] { get => throw null; } + } + public static class DataRowComparer + { + public static System.Data.DataRowComparer Default { get => throw null; } + } + public sealed class DataRowComparer : System.Collections.Generic.IEqualityComparer where TRow : System.Data.DataRow + { + public static System.Data.DataRowComparer Default { get => throw null; } + public bool Equals(TRow leftRow, TRow rightRow) => throw null; + public int GetHashCode(TRow row) => throw null; + } + public static partial class DataRowExtensions + { + public static T Field(this System.Data.DataRow row, System.Data.DataColumn column) => throw null; + public static T Field(this System.Data.DataRow row, System.Data.DataColumn column, System.Data.DataRowVersion version) => throw null; + public static T Field(this System.Data.DataRow row, int columnIndex) => throw null; + public static T Field(this System.Data.DataRow row, int columnIndex, System.Data.DataRowVersion version) => throw null; + public static T Field(this System.Data.DataRow row, string columnName) => throw null; + public static T Field(this System.Data.DataRow row, string columnName, System.Data.DataRowVersion version) => throw null; + public static void SetField(this System.Data.DataRow row, System.Data.DataColumn column, T value) => throw null; + public static void SetField(this System.Data.DataRow row, int columnIndex, T value) => throw null; + public static void SetField(this System.Data.DataRow row, string columnName, T value) => throw null; + } + [System.Flags] + public enum DataRowState + { + Detached = 1, + Unchanged = 2, + Added = 4, + Deleted = 8, + Modified = 16, + } + public enum DataRowVersion + { + Original = 256, + Current = 512, + Proposed = 1024, + Default = 1536, + } + public class DataRowView : System.ComponentModel.ICustomTypeDescriptor, System.ComponentModel.IDataErrorInfo, System.ComponentModel.IEditableObject, System.ComponentModel.INotifyPropertyChanged + { + public void BeginEdit() => throw null; + public void CancelEdit() => throw null; + public System.Data.DataView CreateChildView(System.Data.DataRelation relation) => throw null; + public System.Data.DataView CreateChildView(System.Data.DataRelation relation, bool followParent) => throw null; + public System.Data.DataView CreateChildView(string relationName) => throw null; + public System.Data.DataView CreateChildView(string relationName, bool followParent) => throw null; + public System.Data.DataView DataView { get => throw null; } + public void Delete() => throw null; + public void EndEdit() => throw null; + public override bool Equals(object other) => throw null; + string System.ComponentModel.IDataErrorInfo.Error { get => throw null; } + System.ComponentModel.AttributeCollection System.ComponentModel.ICustomTypeDescriptor.GetAttributes() => throw null; + string System.ComponentModel.ICustomTypeDescriptor.GetClassName() => throw null; + string System.ComponentModel.ICustomTypeDescriptor.GetComponentName() => throw null; + System.ComponentModel.TypeConverter System.ComponentModel.ICustomTypeDescriptor.GetConverter() => throw null; + System.ComponentModel.EventDescriptor System.ComponentModel.ICustomTypeDescriptor.GetDefaultEvent() => throw null; + System.ComponentModel.PropertyDescriptor System.ComponentModel.ICustomTypeDescriptor.GetDefaultProperty() => throw null; + object System.ComponentModel.ICustomTypeDescriptor.GetEditor(System.Type editorBaseType) => throw null; + System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents() => throw null; + System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[] attributes) => throw null; + public override int GetHashCode() => throw null; + System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetProperties() => throw null; + System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[] attributes) => throw null; + object System.ComponentModel.ICustomTypeDescriptor.GetPropertyOwner(System.ComponentModel.PropertyDescriptor pd) => throw null; + public bool IsEdit { get => throw null; } + public bool IsNew { get => throw null; } + string System.ComponentModel.IDataErrorInfo.this[string colName] { get => throw null; } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } + public System.Data.DataRow Row { get => throw null; } + public System.Data.DataRowVersion RowVersion { get => throw null; } + public object this[int ndx] { get => throw null; set { } } + public object this[string property] { get => throw null; set { } } + } + public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable + { + public void AcceptChanges() => throw null; + public void BeginInit() => throw null; + public bool CaseSensitive { get => throw null; set { } } + public void Clear() => throw null; + public virtual System.Data.DataSet Clone() => throw null; + bool System.ComponentModel.IListSource.ContainsListCollection { get => throw null; } + public System.Data.DataSet Copy() => throw null; + public System.Data.DataTableReader CreateDataReader() => throw null; + public System.Data.DataTableReader CreateDataReader(params System.Data.DataTable[] dataTables) => throw null; + public DataSet() => throw null; + protected DataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected DataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, bool ConstructSchema) => throw null; + public DataSet(string dataSetName) => throw null; + public string DataSetName { get => throw null; set { } } + public System.Data.DataViewManager DefaultViewManager { get => throw null; } + protected System.Data.SchemaSerializationMode DetermineSchemaSerializationMode(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected System.Data.SchemaSerializationMode DetermineSchemaSerializationMode(System.Xml.XmlReader reader) => throw null; + public void EndInit() => throw null; + public bool EnforceConstraints { get => throw null; set { } } + public System.Data.PropertyCollection ExtendedProperties { get => throw null; } + public System.Data.DataSet GetChanges() => throw null; + public System.Data.DataSet GetChanges(System.Data.DataRowState rowStates) => throw null; + public static System.Xml.Schema.XmlSchemaComplexType GetDataSetSchema(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; + System.Collections.IList System.ComponentModel.IListSource.GetList() => throw null; + public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; + protected virtual System.Xml.Schema.XmlSchema GetSchemaSerializable() => throw null; + protected void GetSerializationData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string GetXml() => throw null; + public string GetXmlSchema() => throw null; + public bool HasChanges() => throw null; + public bool HasChanges(System.Data.DataRowState rowStates) => throw null; + public bool HasErrors { get => throw null; } + public void InferXmlSchema(System.IO.Stream stream, string[] nsArray) => throw null; + public void InferXmlSchema(System.IO.TextReader reader, string[] nsArray) => throw null; + public void InferXmlSchema(string fileName, string[] nsArray) => throw null; + public void InferXmlSchema(System.Xml.XmlReader reader, string[] nsArray) => throw null; + public event System.EventHandler Initialized { add { } remove { } } + protected virtual void InitializeDerivedDataSet() => throw null; + protected bool IsBinarySerialized(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public bool IsInitialized { get => throw null; } + public void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption, params System.Data.DataTable[] tables) => throw null; + public virtual void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption, System.Data.FillErrorEventHandler errorHandler, params System.Data.DataTable[] tables) => throw null; + public void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption, params string[] tables) => throw null; + public System.Globalization.CultureInfo Locale { get => throw null; set { } } + public void Merge(System.Data.DataRow[] rows) => throw null; + public void Merge(System.Data.DataRow[] rows, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction) => throw null; + public void Merge(System.Data.DataSet dataSet) => throw null; + public void Merge(System.Data.DataSet dataSet, bool preserveChanges) => throw null; + public void Merge(System.Data.DataSet dataSet, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction) => throw null; + public void Merge(System.Data.DataTable table) => throw null; + public void Merge(System.Data.DataTable table, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction) => throw null; + public event System.Data.MergeFailedEventHandler MergeFailed { add { } remove { } } + public string Namespace { get => throw null; set { } } + protected virtual void OnPropertyChanging(System.ComponentModel.PropertyChangedEventArgs pcevent) => throw null; + protected virtual void OnRemoveRelation(System.Data.DataRelation relation) => throw null; + protected virtual void OnRemoveTable(System.Data.DataTable table) => throw null; + public string Prefix { get => throw null; set { } } + protected void RaisePropertyChanging(string name) => throw null; + public System.Data.XmlReadMode ReadXml(System.IO.Stream stream) => throw null; + public System.Data.XmlReadMode ReadXml(System.IO.Stream stream, System.Data.XmlReadMode mode) => throw null; + public System.Data.XmlReadMode ReadXml(System.IO.TextReader reader) => throw null; + public System.Data.XmlReadMode ReadXml(System.IO.TextReader reader, System.Data.XmlReadMode mode) => throw null; + public System.Data.XmlReadMode ReadXml(string fileName) => throw null; + public System.Data.XmlReadMode ReadXml(string fileName, System.Data.XmlReadMode mode) => throw null; + public System.Data.XmlReadMode ReadXml(System.Xml.XmlReader reader) => throw null; + public System.Data.XmlReadMode ReadXml(System.Xml.XmlReader reader, System.Data.XmlReadMode mode) => throw null; + void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; + public void ReadXmlSchema(System.IO.Stream stream) => throw null; + public void ReadXmlSchema(System.IO.TextReader reader) => throw null; + public void ReadXmlSchema(string fileName) => throw null; + public void ReadXmlSchema(System.Xml.XmlReader reader) => throw null; + protected virtual void ReadXmlSerializable(System.Xml.XmlReader reader) => throw null; + public virtual void RejectChanges() => throw null; + public System.Data.DataRelationCollection Relations { get => throw null; } + public System.Data.SerializationFormat RemotingFormat { get => throw null; set { } } + public virtual void Reset() => throw null; + public virtual System.Data.SchemaSerializationMode SchemaSerializationMode { get => throw null; set { } } + protected virtual bool ShouldSerializeRelations() => throw null; + protected virtual bool ShouldSerializeTables() => throw null; + public override System.ComponentModel.ISite Site { get => throw null; set { } } + public System.Data.DataTableCollection Tables { get => throw null; } + void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; + public void WriteXml(System.IO.Stream stream) => throw null; + public void WriteXml(System.IO.Stream stream, System.Data.XmlWriteMode mode) => throw null; + public void WriteXml(System.IO.TextWriter writer) => throw null; + public void WriteXml(System.IO.TextWriter writer, System.Data.XmlWriteMode mode) => throw null; + public void WriteXml(string fileName) => throw null; + public void WriteXml(string fileName, System.Data.XmlWriteMode mode) => throw null; + public void WriteXml(System.Xml.XmlWriter writer) => throw null; + public void WriteXml(System.Xml.XmlWriter writer, System.Data.XmlWriteMode mode) => throw null; + public void WriteXmlSchema(System.IO.Stream stream) => throw null; + public void WriteXmlSchema(System.IO.Stream stream, System.Converter multipleTargetConverter) => throw null; + public void WriteXmlSchema(System.IO.TextWriter writer) => throw null; + public void WriteXmlSchema(System.IO.TextWriter writer, System.Converter multipleTargetConverter) => throw null; + public void WriteXmlSchema(string fileName) => throw null; + public void WriteXmlSchema(string fileName, System.Converter multipleTargetConverter) => throw null; + public void WriteXmlSchema(System.Xml.XmlWriter writer) => throw null; + public void WriteXmlSchema(System.Xml.XmlWriter writer, System.Converter multipleTargetConverter) => throw null; + } + public enum DataSetDateTime + { + Local = 1, + Unspecified = 2, + UnspecifiedLocal = 3, + Utc = 4, + } + public class DataSysDescriptionAttribute : System.ComponentModel.DescriptionAttribute + { + public DataSysDescriptionAttribute(string description) => throw null; + public override string Description { get => throw null; } + } + public class DataTable : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable + { + public void AcceptChanges() => throw null; + public virtual void BeginInit() => throw null; + public void BeginLoadData() => throw null; + public bool CaseSensitive { get => throw null; set { } } + public System.Data.DataRelationCollection ChildRelations { get => throw null; } + public void Clear() => throw null; + public virtual System.Data.DataTable Clone() => throw null; + public event System.Data.DataColumnChangeEventHandler ColumnChanged { add { } remove { } } + public event System.Data.DataColumnChangeEventHandler ColumnChanging { add { } remove { } } + public System.Data.DataColumnCollection Columns { get => throw null; } + public object Compute(string expression, string filter) => throw null; + public System.Data.ConstraintCollection Constraints { get => throw null; } + bool System.ComponentModel.IListSource.ContainsListCollection { get => throw null; } + public System.Data.DataTable Copy() => throw null; + public System.Data.DataTableReader CreateDataReader() => throw null; + protected virtual System.Data.DataTable CreateInstance() => throw null; + public DataTable() => throw null; + protected DataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public DataTable(string tableName) => throw null; + public DataTable(string tableName, string tableNamespace) => throw null; + public System.Data.DataSet DataSet { get => throw null; } + public System.Data.DataView DefaultView { get => throw null; } + public string DisplayExpression { get => throw null; set { } } + public virtual void EndInit() => throw null; + public void EndLoadData() => throw null; + public System.Data.PropertyCollection ExtendedProperties { get => throw null; } + protected bool fInitInProgress; + public System.Data.DataTable GetChanges() => throw null; + public System.Data.DataTable GetChanges(System.Data.DataRowState rowStates) => throw null; + public static System.Xml.Schema.XmlSchemaComplexType GetDataTableSchema(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; + public System.Data.DataRow[] GetErrors() => throw null; + System.Collections.IList System.ComponentModel.IListSource.GetList() => throw null; + public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected virtual System.Type GetRowType() => throw null; + protected virtual System.Xml.Schema.XmlSchema GetSchema() => throw null; + System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; + public bool HasErrors { get => throw null; } + public void ImportRow(System.Data.DataRow row) => throw null; + public event System.EventHandler Initialized { add { } remove { } } + public bool IsInitialized { get => throw null; } + public void Load(System.Data.IDataReader reader) => throw null; + public void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption) => throw null; + public virtual void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption, System.Data.FillErrorEventHandler errorHandler) => throw null; + public System.Data.DataRow LoadDataRow(object[] values, bool fAcceptChanges) => throw null; + public System.Data.DataRow LoadDataRow(object[] values, System.Data.LoadOption loadOption) => throw null; + public System.Globalization.CultureInfo Locale { get => throw null; set { } } + public void Merge(System.Data.DataTable table) => throw null; + public void Merge(System.Data.DataTable table, bool preserveChanges) => throw null; + public void Merge(System.Data.DataTable table, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction) => throw null; + public int MinimumCapacity { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + public System.Data.DataRow NewRow() => throw null; + protected System.Data.DataRow[] NewRowArray(int size) => throw null; + protected virtual System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) => throw null; + protected virtual void OnColumnChanged(System.Data.DataColumnChangeEventArgs e) => throw null; + protected virtual void OnColumnChanging(System.Data.DataColumnChangeEventArgs e) => throw null; + protected virtual void OnPropertyChanging(System.ComponentModel.PropertyChangedEventArgs pcevent) => throw null; + protected virtual void OnRemoveColumn(System.Data.DataColumn column) => throw null; + protected virtual void OnRowChanged(System.Data.DataRowChangeEventArgs e) => throw null; + protected virtual void OnRowChanging(System.Data.DataRowChangeEventArgs e) => throw null; + protected virtual void OnRowDeleted(System.Data.DataRowChangeEventArgs e) => throw null; + protected virtual void OnRowDeleting(System.Data.DataRowChangeEventArgs e) => throw null; + protected virtual void OnTableCleared(System.Data.DataTableClearEventArgs e) => throw null; + protected virtual void OnTableClearing(System.Data.DataTableClearEventArgs e) => throw null; + protected virtual void OnTableNewRow(System.Data.DataTableNewRowEventArgs e) => throw null; + public System.Data.DataRelationCollection ParentRelations { get => throw null; } + public string Prefix { get => throw null; set { } } + public System.Data.DataColumn[] PrimaryKey { get => throw null; set { } } + public System.Data.XmlReadMode ReadXml(System.IO.Stream stream) => throw null; + public System.Data.XmlReadMode ReadXml(System.IO.TextReader reader) => throw null; + public System.Data.XmlReadMode ReadXml(string fileName) => throw null; + public System.Data.XmlReadMode ReadXml(System.Xml.XmlReader reader) => throw null; + void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; + public void ReadXmlSchema(System.IO.Stream stream) => throw null; + public void ReadXmlSchema(System.IO.TextReader reader) => throw null; + public void ReadXmlSchema(string fileName) => throw null; + public void ReadXmlSchema(System.Xml.XmlReader reader) => throw null; + protected virtual void ReadXmlSerializable(System.Xml.XmlReader reader) => throw null; + public void RejectChanges() => throw null; + public System.Data.SerializationFormat RemotingFormat { get => throw null; set { } } + public virtual void Reset() => throw null; + public event System.Data.DataRowChangeEventHandler RowChanged { add { } remove { } } + public event System.Data.DataRowChangeEventHandler RowChanging { add { } remove { } } + public event System.Data.DataRowChangeEventHandler RowDeleted { add { } remove { } } + public event System.Data.DataRowChangeEventHandler RowDeleting { add { } remove { } } + public System.Data.DataRowCollection Rows { get => throw null; } + public System.Data.DataRow[] Select() => throw null; + public System.Data.DataRow[] Select(string filterExpression) => throw null; + public System.Data.DataRow[] Select(string filterExpression, string sort) => throw null; + public System.Data.DataRow[] Select(string filterExpression, string sort, System.Data.DataViewRowState recordStates) => throw null; + public override System.ComponentModel.ISite Site { get => throw null; set { } } + public event System.Data.DataTableClearEventHandler TableCleared { add { } remove { } } + public event System.Data.DataTableClearEventHandler TableClearing { add { } remove { } } + public string TableName { get => throw null; set { } } + public event System.Data.DataTableNewRowEventHandler TableNewRow { add { } remove { } } + public override string ToString() => throw null; + void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; + public void WriteXml(System.IO.Stream stream) => throw null; + public void WriteXml(System.IO.Stream stream, bool writeHierarchy) => throw null; + public void WriteXml(System.IO.Stream stream, System.Data.XmlWriteMode mode) => throw null; + public void WriteXml(System.IO.Stream stream, System.Data.XmlWriteMode mode, bool writeHierarchy) => throw null; + public void WriteXml(System.IO.TextWriter writer) => throw null; + public void WriteXml(System.IO.TextWriter writer, bool writeHierarchy) => throw null; + public void WriteXml(System.IO.TextWriter writer, System.Data.XmlWriteMode mode) => throw null; + public void WriteXml(System.IO.TextWriter writer, System.Data.XmlWriteMode mode, bool writeHierarchy) => throw null; + public void WriteXml(string fileName) => throw null; + public void WriteXml(string fileName, bool writeHierarchy) => throw null; + public void WriteXml(string fileName, System.Data.XmlWriteMode mode) => throw null; + public void WriteXml(string fileName, System.Data.XmlWriteMode mode, bool writeHierarchy) => throw null; + public void WriteXml(System.Xml.XmlWriter writer) => throw null; + public void WriteXml(System.Xml.XmlWriter writer, bool writeHierarchy) => throw null; + public void WriteXml(System.Xml.XmlWriter writer, System.Data.XmlWriteMode mode) => throw null; + public void WriteXml(System.Xml.XmlWriter writer, System.Data.XmlWriteMode mode, bool writeHierarchy) => throw null; + public void WriteXmlSchema(System.IO.Stream stream) => throw null; + public void WriteXmlSchema(System.IO.Stream stream, bool writeHierarchy) => throw null; + public void WriteXmlSchema(System.IO.TextWriter writer) => throw null; + public void WriteXmlSchema(System.IO.TextWriter writer, bool writeHierarchy) => throw null; + public void WriteXmlSchema(string fileName) => throw null; + public void WriteXmlSchema(string fileName, bool writeHierarchy) => throw null; + public void WriteXmlSchema(System.Xml.XmlWriter writer) => throw null; + public void WriteXmlSchema(System.Xml.XmlWriter writer, bool writeHierarchy) => throw null; + } + public sealed class DataTableClearEventArgs : System.EventArgs + { + public DataTableClearEventArgs(System.Data.DataTable dataTable) => throw null; + public System.Data.DataTable Table { get => throw null; } + public string TableName { get => throw null; } + public string TableNamespace { get => throw null; } + } + public delegate void DataTableClearEventHandler(object sender, System.Data.DataTableClearEventArgs e); + public sealed class DataTableCollection : System.Data.InternalDataCollectionBase + { + public System.Data.DataTable Add() => throw null; + public void Add(System.Data.DataTable table) => throw null; + public System.Data.DataTable Add(string name) => throw null; + public System.Data.DataTable Add(string name, string tableNamespace) => throw null; + public void AddRange(System.Data.DataTable[] tables) => throw null; + public bool CanRemove(System.Data.DataTable table) => throw null; + public void Clear() => throw null; + public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged { add { } remove { } } + public event System.ComponentModel.CollectionChangeEventHandler CollectionChanging { add { } remove { } } + public bool Contains(string name) => throw null; + public bool Contains(string name, string tableNamespace) => throw null; + public void CopyTo(System.Data.DataTable[] array, int index) => throw null; + public int IndexOf(System.Data.DataTable table) => throw null; + public int IndexOf(string tableName) => throw null; + public int IndexOf(string tableName, string tableNamespace) => throw null; + protected override System.Collections.ArrayList List { get => throw null; } + public void Remove(System.Data.DataTable table) => throw null; + public void Remove(string name) => throw null; + public void Remove(string name, string tableNamespace) => throw null; + public void RemoveAt(int index) => throw null; + public System.Data.DataTable this[int index] { get => throw null; } + public System.Data.DataTable this[string name] { get => throw null; } + public System.Data.DataTable this[string name, string tableNamespace] { get => throw null; } + } + public static partial class DataTableExtensions + { + public static System.Data.DataView AsDataView(this System.Data.DataTable table) => throw null; + public static System.Data.DataView AsDataView(this System.Data.EnumerableRowCollection source) where T : System.Data.DataRow => throw null; + public static System.Data.EnumerableRowCollection AsEnumerable(this System.Data.DataTable source) => throw null; + public static System.Data.DataTable CopyToDataTable(this System.Collections.Generic.IEnumerable source) where T : System.Data.DataRow => throw null; + public static void CopyToDataTable(this System.Collections.Generic.IEnumerable source, System.Data.DataTable table, System.Data.LoadOption options) where T : System.Data.DataRow => throw null; + public static void CopyToDataTable(this System.Collections.Generic.IEnumerable source, System.Data.DataTable table, System.Data.LoadOption options, System.Data.FillErrorEventHandler errorHandler) where T : System.Data.DataRow => throw null; + } + public sealed class DataTableNewRowEventArgs : System.EventArgs + { + public DataTableNewRowEventArgs(System.Data.DataRow dataRow) => throw null; + public System.Data.DataRow Row { get => throw null; } + } + public delegate void DataTableNewRowEventHandler(object sender, System.Data.DataTableNewRowEventArgs e); + public sealed class DataTableReader : System.Data.Common.DbDataReader + { + public override void Close() => throw null; + public DataTableReader(System.Data.DataTable dataTable) => throw null; + public DataTableReader(System.Data.DataTable[] dataTables) => throw null; + public override int Depth { get => throw null; } + public override int FieldCount { get => throw null; } + public override bool GetBoolean(int ordinal) => throw null; + public override byte GetByte(int ordinal) => throw null; + public override long GetBytes(int ordinal, long dataIndex, byte[] buffer, int bufferIndex, int length) => throw null; + public override char GetChar(int ordinal) => throw null; + public override long GetChars(int ordinal, long dataIndex, char[] buffer, int bufferIndex, int length) => throw null; + public override string GetDataTypeName(int ordinal) => throw null; + public override System.DateTime GetDateTime(int ordinal) => throw null; + public override decimal GetDecimal(int ordinal) => throw null; + public override double GetDouble(int ordinal) => throw null; + public override System.Collections.IEnumerator GetEnumerator() => throw null; + public override System.Type GetFieldType(int ordinal) => throw null; + public override float GetFloat(int ordinal) => throw null; + public override System.Guid GetGuid(int ordinal) => throw null; + public override short GetInt16(int ordinal) => throw null; + public override int GetInt32(int ordinal) => throw null; + public override long GetInt64(int ordinal) => throw null; + public override string GetName(int ordinal) => throw null; + public override int GetOrdinal(string name) => throw null; + public override System.Type GetProviderSpecificFieldType(int ordinal) => throw null; + public override object GetProviderSpecificValue(int ordinal) => throw null; + public override int GetProviderSpecificValues(object[] values) => throw null; + public override System.Data.DataTable GetSchemaTable() => throw null; + public override string GetString(int ordinal) => throw null; + public override object GetValue(int ordinal) => throw null; + public override int GetValues(object[] values) => throw null; + public override bool HasRows { get => throw null; } + public override bool IsClosed { get => throw null; } + public override bool IsDBNull(int ordinal) => throw null; + public override bool NextResult() => throw null; + public override bool Read() => throw null; + public override int RecordsAffected { get => throw null; } + public override object this[int ordinal] { get => throw null; } + public override object this[string name] { get => throw null; } + } + public class DataView : System.ComponentModel.MarshalByValueComponent, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList, System.ComponentModel.IBindingListView, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList + { + int System.Collections.IList.Add(object value) => throw null; + void System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor property) => throw null; + public virtual System.Data.DataRowView AddNew() => throw null; + object System.ComponentModel.IBindingList.AddNew() => throw null; + public bool AllowDelete { get => throw null; set { } } + public bool AllowEdit { get => throw null; set { } } + bool System.ComponentModel.IBindingList.AllowEdit { get => throw null; } + public bool AllowNew { get => throw null; set { } } + bool System.ComponentModel.IBindingList.AllowNew { get => throw null; } + bool System.ComponentModel.IBindingList.AllowRemove { get => throw null; } + public bool ApplyDefaultSort { get => throw null; set { } } + void System.ComponentModel.IBindingList.ApplySort(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction) => throw null; + void System.ComponentModel.IBindingListView.ApplySort(System.ComponentModel.ListSortDescriptionCollection sorts) => throw null; + public void BeginInit() => throw null; + void System.Collections.IList.Clear() => throw null; + protected void Close() => throw null; + protected virtual void ColumnCollectionChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) => throw null; + bool System.Collections.IList.Contains(object value) => throw null; + public void CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public DataView() => throw null; + public DataView(System.Data.DataTable table) => throw null; + public DataView(System.Data.DataTable table, string RowFilter, string Sort, System.Data.DataViewRowState RowState) => throw null; + public System.Data.DataViewManager DataViewManager { get => throw null; } + public void Delete(int index) => throw null; + protected override void Dispose(bool disposing) => throw null; + public void EndInit() => throw null; + public virtual bool Equals(System.Data.DataView view) => throw null; + string System.ComponentModel.IBindingListView.Filter { get => throw null; set { } } + public int Find(object key) => throw null; + public int Find(object[] key) => throw null; + int System.ComponentModel.IBindingList.Find(System.ComponentModel.PropertyDescriptor property, object key) => throw null; + public System.Data.DataRowView[] FindRows(object key) => throw null; + public System.Data.DataRowView[] FindRows(object[] key) => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; + System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ITypedList.GetItemProperties(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; + string System.ComponentModel.ITypedList.GetListName(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; + protected virtual void IndexListChanged(object sender, System.ComponentModel.ListChangedEventArgs e) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; + public event System.EventHandler Initialized { add { } remove { } } + void System.Collections.IList.Insert(int index, object value) => throw null; + bool System.Collections.IList.IsFixedSize { get => throw null; } + public bool IsInitialized { get => throw null; } + protected bool IsOpen { get => throw null; } + bool System.Collections.IList.IsReadOnly { get => throw null; } + bool System.ComponentModel.IBindingList.IsSorted { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.IList.this[int recordIndex] { get => throw null; set { } } + public event System.ComponentModel.ListChangedEventHandler ListChanged { add { } remove { } } + protected virtual void OnListChanged(System.ComponentModel.ListChangedEventArgs e) => throw null; + protected void Open() => throw null; + void System.Collections.IList.Remove(object value) => throw null; + void System.Collections.IList.RemoveAt(int index) => throw null; + void System.ComponentModel.IBindingListView.RemoveFilter() => throw null; + void System.ComponentModel.IBindingList.RemoveIndex(System.ComponentModel.PropertyDescriptor property) => throw null; + void System.ComponentModel.IBindingList.RemoveSort() => throw null; + protected void Reset() => throw null; + public virtual string RowFilter { get => throw null; set { } } + public System.Data.DataViewRowState RowStateFilter { get => throw null; set { } } + public string Sort { get => throw null; set { } } + System.ComponentModel.ListSortDescriptionCollection System.ComponentModel.IBindingListView.SortDescriptions { get => throw null; } + System.ComponentModel.ListSortDirection System.ComponentModel.IBindingList.SortDirection { get => throw null; } + System.ComponentModel.PropertyDescriptor System.ComponentModel.IBindingList.SortProperty { get => throw null; } + bool System.ComponentModel.IBindingListView.SupportsAdvancedSorting { get => throw null; } + bool System.ComponentModel.IBindingList.SupportsChangeNotification { get => throw null; } + bool System.ComponentModel.IBindingListView.SupportsFiltering { get => throw null; } + bool System.ComponentModel.IBindingList.SupportsSearching { get => throw null; } + bool System.ComponentModel.IBindingList.SupportsSorting { get => throw null; } + object System.Collections.ICollection.SyncRoot { get => throw null; } + public System.Data.DataTable Table { get => throw null; set { } } + public System.Data.DataRowView this[int recordIndex] { get => throw null; } + public System.Data.DataTable ToTable() => throw null; + public System.Data.DataTable ToTable(bool distinct, params string[] columnNames) => throw null; + public System.Data.DataTable ToTable(string tableName) => throw null; + public System.Data.DataTable ToTable(string tableName, bool distinct, params string[] columnNames) => throw null; + protected void UpdateIndex() => throw null; + protected virtual void UpdateIndex(bool force) => throw null; + } + public class DataViewManager : System.ComponentModel.MarshalByValueComponent, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList, System.ComponentModel.ITypedList + { + int System.Collections.IList.Add(object value) => throw null; + void System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor property) => throw null; + object System.ComponentModel.IBindingList.AddNew() => throw null; + bool System.ComponentModel.IBindingList.AllowEdit { get => throw null; } + bool System.ComponentModel.IBindingList.AllowNew { get => throw null; } + bool System.ComponentModel.IBindingList.AllowRemove { get => throw null; } + void System.ComponentModel.IBindingList.ApplySort(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction) => throw null; + void System.Collections.IList.Clear() => throw null; + bool System.Collections.IList.Contains(object value) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + int System.Collections.ICollection.Count { get => throw null; } + public System.Data.DataView CreateDataView(System.Data.DataTable table) => throw null; + public DataViewManager() => throw null; + public DataViewManager(System.Data.DataSet dataSet) => throw null; + public System.Data.DataSet DataSet { get => throw null; set { } } + public string DataViewSettingCollectionString { get => throw null; set { } } + public System.Data.DataViewSettingCollection DataViewSettings { get => throw null; } + int System.ComponentModel.IBindingList.Find(System.ComponentModel.PropertyDescriptor property, object key) => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ITypedList.GetItemProperties(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; + string System.ComponentModel.ITypedList.GetListName(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; + void System.Collections.IList.Insert(int index, object value) => throw null; + bool System.Collections.IList.IsFixedSize { get => throw null; } + bool System.Collections.IList.IsReadOnly { get => throw null; } + bool System.ComponentModel.IBindingList.IsSorted { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } + public event System.ComponentModel.ListChangedEventHandler ListChanged { add { } remove { } } + protected virtual void OnListChanged(System.ComponentModel.ListChangedEventArgs e) => throw null; + protected virtual void RelationCollectionChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) => throw null; + void System.Collections.IList.Remove(object value) => throw null; + void System.Collections.IList.RemoveAt(int index) => throw null; + void System.ComponentModel.IBindingList.RemoveIndex(System.ComponentModel.PropertyDescriptor property) => throw null; + void System.ComponentModel.IBindingList.RemoveSort() => throw null; + System.ComponentModel.ListSortDirection System.ComponentModel.IBindingList.SortDirection { get => throw null; } + System.ComponentModel.PropertyDescriptor System.ComponentModel.IBindingList.SortProperty { get => throw null; } + bool System.ComponentModel.IBindingList.SupportsChangeNotification { get => throw null; } + bool System.ComponentModel.IBindingList.SupportsSearching { get => throw null; } + bool System.ComponentModel.IBindingList.SupportsSorting { get => throw null; } + object System.Collections.ICollection.SyncRoot { get => throw null; } + protected virtual void TableCollectionChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) => throw null; + } + [System.Flags] + public enum DataViewRowState + { + None = 0, + Unchanged = 2, + Added = 4, + Deleted = 8, + ModifiedCurrent = 16, + CurrentRows = 22, + ModifiedOriginal = 32, + OriginalRows = 42, + } + public class DataViewSetting + { + public bool ApplyDefaultSort { get => throw null; set { } } + public System.Data.DataViewManager DataViewManager { get => throw null; } + public string RowFilter { get => throw null; set { } } + public System.Data.DataViewRowState RowStateFilter { get => throw null; set { } } + public string Sort { get => throw null; set { } } + public System.Data.DataTable Table { get => throw null; } + } + public class DataViewSettingCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public void CopyTo(System.Array ar, int index) => throw null; + public void CopyTo(System.Data.DataViewSetting[] ar, int index) => throw null; + public virtual int Count { get => throw null; } + public System.Collections.IEnumerator GetEnumerator() => throw null; + public bool IsReadOnly { get => throw null; } + public bool IsSynchronized { get => throw null; } + public object SyncRoot { get => throw null; } + public virtual System.Data.DataViewSetting this[System.Data.DataTable table] { get => throw null; set { } } + public virtual System.Data.DataViewSetting this[int index] { get => throw null; set { } } + public virtual System.Data.DataViewSetting this[string tableName] { get => throw null; } + } + public sealed class DBConcurrencyException : System.SystemException + { + public void CopyToRows(System.Data.DataRow[] array) => throw null; + public void CopyToRows(System.Data.DataRow[] array, int arrayIndex) => throw null; + public DBConcurrencyException() => throw null; + public DBConcurrencyException(string message) => throw null; + public DBConcurrencyException(string message, System.Exception inner) => throw null; + public DBConcurrencyException(string message, System.Exception inner, System.Data.DataRow[] dataRows) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.Data.DataRow Row { get => throw null; set { } } + public int RowCount { get => throw null; } + } + public enum DbType + { + AnsiString = 0, + Binary = 1, + Byte = 2, + Boolean = 3, + Currency = 4, + Date = 5, + DateTime = 6, + Decimal = 7, + Double = 8, + Guid = 9, + Int16 = 10, + Int32 = 11, + Int64 = 12, + Object = 13, + SByte = 14, + Single = 15, + String = 16, + Time = 17, + UInt16 = 18, + UInt32 = 19, + UInt64 = 20, + VarNumeric = 21, + AnsiStringFixedLength = 22, + StringFixedLength = 23, + Xml = 25, + DateTime2 = 26, + DateTimeOffset = 27, + } + public class DeletedRowInaccessibleException : System.Data.DataException + { + public DeletedRowInaccessibleException() => throw null; + protected DeletedRowInaccessibleException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public DeletedRowInaccessibleException(string s) => throw null; + public DeletedRowInaccessibleException(string message, System.Exception innerException) => throw null; + } + public class DuplicateNameException : System.Data.DataException + { + public DuplicateNameException() => throw null; + protected DuplicateNameException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public DuplicateNameException(string s) => throw null; + public DuplicateNameException(string message, System.Exception innerException) => throw null; + } + public abstract class EnumerableRowCollection : System.Collections.IEnumerable + { + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + } + public class EnumerableRowCollection : System.Data.EnumerableRowCollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + } + public static partial class EnumerableRowCollectionExtensions + { + public static System.Data.EnumerableRowCollection Cast(this System.Data.EnumerableRowCollection source) => throw null; + public static System.Data.OrderedEnumerableRowCollection OrderBy(this System.Data.EnumerableRowCollection source, System.Func keySelector) => throw null; + public static System.Data.OrderedEnumerableRowCollection OrderBy(this System.Data.EnumerableRowCollection source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; + public static System.Data.OrderedEnumerableRowCollection OrderByDescending(this System.Data.EnumerableRowCollection source, System.Func keySelector) => throw null; + public static System.Data.OrderedEnumerableRowCollection OrderByDescending(this System.Data.EnumerableRowCollection source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; + public static System.Data.EnumerableRowCollection Select(this System.Data.EnumerableRowCollection source, System.Func selector) => throw null; + public static System.Data.OrderedEnumerableRowCollection ThenBy(this System.Data.OrderedEnumerableRowCollection source, System.Func keySelector) => throw null; + public static System.Data.OrderedEnumerableRowCollection ThenBy(this System.Data.OrderedEnumerableRowCollection source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; + public static System.Data.OrderedEnumerableRowCollection ThenByDescending(this System.Data.OrderedEnumerableRowCollection source, System.Func keySelector) => throw null; + public static System.Data.OrderedEnumerableRowCollection ThenByDescending(this System.Data.OrderedEnumerableRowCollection source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; + public static System.Data.EnumerableRowCollection Where(this System.Data.EnumerableRowCollection source, System.Func predicate) => throw null; + } + public class EvaluateException : System.Data.InvalidExpressionException + { + public EvaluateException() => throw null; + protected EvaluateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public EvaluateException(string s) => throw null; + public EvaluateException(string message, System.Exception innerException) => throw null; + } + public class FillErrorEventArgs : System.EventArgs + { + public bool Continue { get => throw null; set { } } + public FillErrorEventArgs(System.Data.DataTable dataTable, object[] values) => throw null; + public System.Data.DataTable DataTable { get => throw null; } + public System.Exception Errors { get => throw null; set { } } + public object[] Values { get => throw null; } + } + public delegate void FillErrorEventHandler(object sender, System.Data.FillErrorEventArgs e); + public class ForeignKeyConstraint : System.Data.Constraint + { + public virtual System.Data.AcceptRejectRule AcceptRejectRule { get => throw null; set { } } + public virtual System.Data.DataColumn[] Columns { get => throw null; } + public ForeignKeyConstraint(System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; + public ForeignKeyConstraint(System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns) => throw null; + public ForeignKeyConstraint(string constraintName, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; + public ForeignKeyConstraint(string constraintName, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns) => throw null; + public ForeignKeyConstraint(string constraintName, string parentTableName, string parentTableNamespace, string[] parentColumnNames, string[] childColumnNames, System.Data.AcceptRejectRule acceptRejectRule, System.Data.Rule deleteRule, System.Data.Rule updateRule) => throw null; + public ForeignKeyConstraint(string constraintName, string parentTableName, string[] parentColumnNames, string[] childColumnNames, System.Data.AcceptRejectRule acceptRejectRule, System.Data.Rule deleteRule, System.Data.Rule updateRule) => throw null; + public virtual System.Data.Rule DeleteRule { get => throw null; set { } } + public override bool Equals(object key) => throw null; + public override int GetHashCode() => throw null; + public virtual System.Data.DataColumn[] RelatedColumns { get => throw null; } + public virtual System.Data.DataTable RelatedTable { get => throw null; } + public override System.Data.DataTable Table { get => throw null; } + public virtual System.Data.Rule UpdateRule { get => throw null; set { } } + } + public interface IColumnMapping + { + string DataSetColumn { get; set; } + string SourceColumn { get; set; } + } + public interface IColumnMappingCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + { + System.Data.IColumnMapping Add(string sourceColumnName, string dataSetColumnName); + bool Contains(string sourceColumnName); + System.Data.IColumnMapping GetByDataSetColumn(string dataSetColumnName); + int IndexOf(string sourceColumnName); + void RemoveAt(string sourceColumnName); + object this[string index] { get; set; } + } + public interface IDataAdapter + { + int Fill(System.Data.DataSet dataSet); + System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType); + System.Data.IDataParameter[] GetFillParameters(); + System.Data.MissingMappingAction MissingMappingAction { get; set; } + System.Data.MissingSchemaAction MissingSchemaAction { get; set; } + System.Data.ITableMappingCollection TableMappings { get; } + int Update(System.Data.DataSet dataSet); + } + public interface IDataParameter + { + System.Data.DbType DbType { get; set; } + System.Data.ParameterDirection Direction { get; set; } + bool IsNullable { get; } + string ParameterName { get; set; } + string SourceColumn { get; set; } + System.Data.DataRowVersion SourceVersion { get; set; } + object Value { get; set; } + } + public interface IDataParameterCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + { + bool Contains(string parameterName); + int IndexOf(string parameterName); + void RemoveAt(string parameterName); + object this[string parameterName] { get; set; } + } + public interface IDataReader : System.Data.IDataRecord, System.IDisposable + { + void Close(); + int Depth { get; } + System.Data.DataTable GetSchemaTable(); + bool IsClosed { get; } + bool NextResult(); + bool Read(); + int RecordsAffected { get; } + } + public interface IDataRecord + { + int FieldCount { get; } + bool GetBoolean(int i); + byte GetByte(int i); + long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length); + char GetChar(int i); + long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length); + System.Data.IDataReader GetData(int i); + string GetDataTypeName(int i); + System.DateTime GetDateTime(int i); + decimal GetDecimal(int i); + double GetDouble(int i); + System.Type GetFieldType(int i); + float GetFloat(int i); + System.Guid GetGuid(int i); + short GetInt16(int i); + int GetInt32(int i); + long GetInt64(int i); + string GetName(int i); + int GetOrdinal(string name); + string GetString(int i); + object GetValue(int i); + int GetValues(object[] values); + bool IsDBNull(int i); + object this[int i] { get; } + object this[string name] { get; } + } + public interface IDbCommand : System.IDisposable + { + void Cancel(); + string CommandText { get; set; } + int CommandTimeout { get; set; } + System.Data.CommandType CommandType { get; set; } + System.Data.IDbConnection Connection { get; set; } + System.Data.IDbDataParameter CreateParameter(); + int ExecuteNonQuery(); + System.Data.IDataReader ExecuteReader(); + System.Data.IDataReader ExecuteReader(System.Data.CommandBehavior behavior); + object ExecuteScalar(); + System.Data.IDataParameterCollection Parameters { get; } + void Prepare(); + System.Data.IDbTransaction Transaction { get; set; } + System.Data.UpdateRowSource UpdatedRowSource { get; set; } + } + public interface IDbConnection : System.IDisposable + { + System.Data.IDbTransaction BeginTransaction(); + System.Data.IDbTransaction BeginTransaction(System.Data.IsolationLevel il); + void ChangeDatabase(string databaseName); + void Close(); + string ConnectionString { get; set; } + int ConnectionTimeout { get; } + System.Data.IDbCommand CreateCommand(); + string Database { get; } + void Open(); + System.Data.ConnectionState State { get; } + } + public interface IDbDataAdapter : System.Data.IDataAdapter + { + System.Data.IDbCommand DeleteCommand { get; set; } + System.Data.IDbCommand InsertCommand { get; set; } + System.Data.IDbCommand SelectCommand { get; set; } + System.Data.IDbCommand UpdateCommand { get; set; } + } + public interface IDbDataParameter : System.Data.IDataParameter + { + byte Precision { get; set; } + byte Scale { get; set; } + int Size { get; set; } + } + public interface IDbTransaction : System.IDisposable + { + void Commit(); + System.Data.IDbConnection Connection { get; } + System.Data.IsolationLevel IsolationLevel { get; } + void Rollback(); + } + public class InRowChangingEventException : System.Data.DataException + { + public InRowChangingEventException() => throw null; + protected InRowChangingEventException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public InRowChangingEventException(string s) => throw null; + public InRowChangingEventException(string message, System.Exception innerException) => throw null; + } + public class InternalDataCollectionBase : System.Collections.ICollection, System.Collections.IEnumerable + { + public virtual void CopyTo(System.Array ar, int index) => throw null; + public virtual int Count { get => throw null; } + public InternalDataCollectionBase() => throw null; + public virtual System.Collections.IEnumerator GetEnumerator() => throw null; + public bool IsReadOnly { get => throw null; } + public bool IsSynchronized { get => throw null; } + protected virtual System.Collections.ArrayList List { get => throw null; } + public object SyncRoot { get => throw null; } + } + public class InvalidConstraintException : System.Data.DataException + { + public InvalidConstraintException() => throw null; + protected InvalidConstraintException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public InvalidConstraintException(string s) => throw null; + public InvalidConstraintException(string message, System.Exception innerException) => throw null; + } + public class InvalidExpressionException : System.Data.DataException + { + public InvalidExpressionException() => throw null; + protected InvalidExpressionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public InvalidExpressionException(string s) => throw null; + public InvalidExpressionException(string message, System.Exception innerException) => throw null; + } + public enum IsolationLevel + { + Unspecified = -1, + Chaos = 16, + ReadUncommitted = 256, + ReadCommitted = 4096, + RepeatableRead = 65536, + Serializable = 1048576, + Snapshot = 16777216, + } + public interface ITableMapping + { + System.Data.IColumnMappingCollection ColumnMappings { get; } + string DataSetTable { get; set; } + string SourceTable { get; set; } + } + public interface ITableMappingCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + { + System.Data.ITableMapping Add(string sourceTableName, string dataSetTableName); + bool Contains(string sourceTableName); + System.Data.ITableMapping GetByDataSetTable(string dataSetTableName); + int IndexOf(string sourceTableName); + void RemoveAt(string sourceTableName); + object this[string index] { get; set; } + } + public enum KeyRestrictionBehavior + { + AllowOnly = 0, + PreventUsage = 1, + } + public enum LoadOption + { + OverwriteChanges = 1, + PreserveChanges = 2, + Upsert = 3, + } + public enum MappingType + { + Element = 1, + Attribute = 2, + SimpleContent = 3, + Hidden = 4, + } + public class MergeFailedEventArgs : System.EventArgs + { + public string Conflict { get => throw null; } + public MergeFailedEventArgs(System.Data.DataTable table, string conflict) => throw null; + public System.Data.DataTable Table { get => throw null; } + } + public delegate void MergeFailedEventHandler(object sender, System.Data.MergeFailedEventArgs e); + public enum MissingMappingAction + { + Passthrough = 1, + Ignore = 2, + Error = 3, + } + public class MissingPrimaryKeyException : System.Data.DataException + { + public MissingPrimaryKeyException() => throw null; + protected MissingPrimaryKeyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public MissingPrimaryKeyException(string s) => throw null; + public MissingPrimaryKeyException(string message, System.Exception innerException) => throw null; + } + public enum MissingSchemaAction + { + Add = 1, + Ignore = 2, + Error = 3, + AddWithKey = 4, + } + public class NoNullAllowedException : System.Data.DataException + { + public NoNullAllowedException() => throw null; + protected NoNullAllowedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public NoNullAllowedException(string s) => throw null; + public NoNullAllowedException(string message, System.Exception innerException) => throw null; + } + public sealed class OrderedEnumerableRowCollection : System.Data.EnumerableRowCollection + { + } + public enum ParameterDirection + { + Input = 1, + Output = 2, + InputOutput = 3, + ReturnValue = 6, + } + public class PropertyCollection : System.Collections.Hashtable, System.ICloneable + { + public override object Clone() => throw null; + public PropertyCollection() => throw null; + protected PropertyCollection(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class ReadOnlyException : System.Data.DataException + { + public ReadOnlyException() => throw null; + protected ReadOnlyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public ReadOnlyException(string s) => throw null; + public ReadOnlyException(string message, System.Exception innerException) => throw null; + } + public class RowNotInTableException : System.Data.DataException + { + public RowNotInTableException() => throw null; + protected RowNotInTableException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public RowNotInTableException(string s) => throw null; + public RowNotInTableException(string message, System.Exception innerException) => throw null; + } + public enum Rule + { + None = 0, + Cascade = 1, + SetNull = 2, + SetDefault = 3, + } + public enum SchemaSerializationMode + { + IncludeSchema = 1, + ExcludeSchema = 2, + } + public enum SchemaType + { + Source = 1, + Mapped = 2, + } + public enum SerializationFormat + { + Xml = 0, + Binary = 1, + } + public enum SqlDbType + { + BigInt = 0, + Binary = 1, + Bit = 2, + Char = 3, + DateTime = 4, + Decimal = 5, + Float = 6, + Image = 7, + Int = 8, + Money = 9, + NChar = 10, + NText = 11, + NVarChar = 12, + Real = 13, + UniqueIdentifier = 14, + SmallDateTime = 15, + SmallInt = 16, + SmallMoney = 17, + Text = 18, + Timestamp = 19, + TinyInt = 20, + VarBinary = 21, + VarChar = 22, + Variant = 23, + Xml = 25, + Udt = 29, + Structured = 30, + Date = 31, + Time = 32, + DateTime2 = 33, + DateTimeOffset = 34, } namespace SqlTypes { @@ -2423,29 +2165,21 @@ namespace System { bool IsNull { get; } } - - public class SqlAlreadyFilledException : System.Data.SqlTypes.SqlTypeException + public sealed class SqlAlreadyFilledException : System.Data.SqlTypes.SqlTypeException { public SqlAlreadyFilledException() => throw null; public SqlAlreadyFilledException(string message) => throw null; public SqlAlreadyFilledException(string message, System.Exception e) => throw null; } - - public struct SqlBinary : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlBinary : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; - public static System.Data.SqlTypes.SqlBinary operator +(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public static System.Data.SqlTypes.SqlBinary Add(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlBinary value) => throw null; public int CompareTo(object value) => throw null; public static System.Data.SqlTypes.SqlBinary Concat(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; - public bool Equals(System.Data.SqlTypes.SqlBinary other) => throw null; + public SqlBinary(byte[] value) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlBinary other) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; @@ -2453,41 +2187,39 @@ namespace System public static System.Data.SqlTypes.SqlBoolean GreaterThan(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public static System.Data.SqlTypes.SqlBoolean GreaterThanOrEqual(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public bool IsNull { get => throw null; } - public System.Byte this[int index] { get => throw null; } public int Length { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public static System.Data.SqlTypes.SqlBinary Null; + public static System.Data.SqlTypes.SqlBinary operator +(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; + public static explicit operator byte[](System.Data.SqlTypes.SqlBinary x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBinary(System.Data.SqlTypes.SqlGuid x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlBinary(byte[] x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - // Stub generator skipped constructor - public SqlBinary(System.Byte[] value) => throw null; + public byte this[int index] { get => throw null; } public System.Data.SqlTypes.SqlGuid ToSqlGuid() => throw null; public override string ToString() => throw null; - public System.Byte[] Value { get => throw null; } - public static System.Data.SqlTypes.SqlBinary WrapBytes(System.Byte[] bytes) => throw null; + public byte[] Value { get => throw null; } + public static System.Data.SqlTypes.SqlBinary WrapBytes(byte[] bytes) => throw null; void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public static explicit operator System.Byte[](System.Data.SqlTypes.SqlBinary x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBinary(System.Data.SqlTypes.SqlGuid x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlBinary(System.Byte[] x) => throw null; } - - public struct SqlBoolean : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlBoolean : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator &(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; public static System.Data.SqlTypes.SqlBoolean And(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public System.Byte ByteValue { get => throw null; } + public byte ByteValue { get => throw null; } public int CompareTo(System.Data.SqlTypes.SqlBoolean value) => throw null; public int CompareTo(object value) => throw null; - public bool Equals(System.Data.SqlTypes.SqlBoolean other) => throw null; + public SqlBoolean(bool value) => throw null; + public SqlBoolean(int value) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlBoolean other) => throw null; public override bool Equals(object value) => throw null; public static System.Data.SqlTypes.SqlBoolean False; public override int GetHashCode() => throw null; @@ -2504,12 +2236,33 @@ namespace System public static System.Data.SqlTypes.SqlBoolean Null; public static System.Data.SqlTypes.SqlBoolean One; public static System.Data.SqlTypes.SqlBoolean OnesComplement(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator &(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator |(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ^(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; + public static explicit operator bool(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlByte x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlDecimal x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlDouble x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlMoney x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlSingle x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlString x) => throw null; + public static bool operator false(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlBoolean(bool x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ~(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static bool operator true(System.Data.SqlTypes.SqlBoolean x) => throw null; public static System.Data.SqlTypes.SqlBoolean Or(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; public static System.Data.SqlTypes.SqlBoolean Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - // Stub generator skipped constructor - public SqlBoolean(bool value) => throw null; - public SqlBoolean(int value) => throw null; public System.Data.SqlTypes.SqlByte ToSqlByte() => throw null; public System.Data.SqlTypes.SqlDecimal ToSqlDecimal() => throw null; public System.Data.SqlTypes.SqlDouble ToSqlDouble() => throw null; @@ -2525,46 +2278,18 @@ namespace System void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlBoolean Xor(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; public static System.Data.SqlTypes.SqlBoolean Zero; - public static System.Data.SqlTypes.SqlBoolean operator ^(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public static explicit operator bool(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlByte x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlDouble x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlMoney x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlSingle x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBoolean(System.Data.SqlTypes.SqlString x) => throw null; - public static bool operator false(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlBoolean(bool x) => throw null; - public static bool operator true(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator |(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ~(System.Data.SqlTypes.SqlBoolean x) => throw null; } - - public struct SqlByte : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlByte : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlByte operator %(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlByte operator &(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlByte operator *(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlByte operator +(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlByte operator -(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlByte operator /(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlByte Add(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlByte BitwiseAnd(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlByte BitwiseOr(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlByte value) => throw null; public int CompareTo(object value) => throw null; + public SqlByte(byte value) => throw null; public static System.Data.SqlTypes.SqlByte Divide(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public bool Equals(System.Data.SqlTypes.SqlByte other) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlByte other) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; @@ -2582,10 +2307,34 @@ namespace System public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlByte Null; public static System.Data.SqlTypes.SqlByte OnesComplement(System.Data.SqlTypes.SqlByte x) => throw null; + public static System.Data.SqlTypes.SqlByte operator +(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlByte operator &(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlByte operator |(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlByte operator /(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlByte operator ^(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static explicit operator byte(System.Data.SqlTypes.SqlByte x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlDecimal x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlDouble x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlMoney x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlSingle x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlString x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlByte(byte x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlByte operator %(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlByte operator *(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; + public static System.Data.SqlTypes.SqlByte operator ~(System.Data.SqlTypes.SqlByte x) => throw null; + public static System.Data.SqlTypes.SqlByte operator -(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlByte Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - // Stub generator skipped constructor - public SqlByte(System.Byte value) => throw null; public static System.Data.SqlTypes.SqlByte Subtract(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public System.Data.SqlTypes.SqlBoolean ToSqlBoolean() => throw null; public System.Data.SqlTypes.SqlDecimal ToSqlDecimal() => throw null; @@ -2597,110 +2346,90 @@ namespace System public System.Data.SqlTypes.SqlSingle ToSqlSingle() => throw null; public System.Data.SqlTypes.SqlString ToSqlString() => throw null; public override string ToString() => throw null; - public System.Byte Value { get => throw null; } + public byte Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlByte Xor(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlByte Zero; - public static System.Data.SqlTypes.SqlByte operator ^(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static explicit operator System.Byte(System.Data.SqlTypes.SqlByte x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlDouble x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlMoney x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlSingle x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlByte(System.Data.SqlTypes.SqlString x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlByte(System.Byte x) => throw null; - public static System.Data.SqlTypes.SqlByte operator |(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlByte operator ~(System.Data.SqlTypes.SqlByte x) => throw null; } - - public class SqlBytes : System.Data.SqlTypes.INullable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable + public sealed class SqlBytes : System.Data.SqlTypes.INullable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable { - public System.Byte[] Buffer { get => throw null; } - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; - public static System.Xml.XmlQualifiedName GetXsdType(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; - public bool IsNull { get => throw null; } - public System.Byte this[System.Int64 offset] { get => throw null; set => throw null; } - public System.Int64 Length { get => throw null; } - public System.Int64 MaxLength { get => throw null; } - public static System.Data.SqlTypes.SqlBytes Null { get => throw null; } - public System.Int64 Read(System.Int64 offset, System.Byte[] buffer, int offsetInBuffer, int count) => throw null; - void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader r) => throw null; - public void SetLength(System.Int64 value) => throw null; - public void SetNull() => throw null; + public byte[] Buffer { get => throw null; } public SqlBytes() => throw null; - public SqlBytes(System.Byte[] buffer) => throw null; + public SqlBytes(byte[] buffer) => throw null; public SqlBytes(System.Data.SqlTypes.SqlBinary value) => throw null; public SqlBytes(System.IO.Stream s) => throw null; - public System.Data.SqlTypes.StorageState Storage { get => throw null; } - public System.IO.Stream Stream { get => throw null; set => throw null; } - public System.Data.SqlTypes.SqlBinary ToSqlBinary() => throw null; - public System.Byte[] Value { get => throw null; } - public void Write(System.Int64 offset, System.Byte[] buffer, int offsetInBuffer, int count) => throw null; - void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBytes(System.Data.SqlTypes.SqlBinary value) => throw null; - public static explicit operator System.Data.SqlTypes.SqlBinary(System.Data.SqlTypes.SqlBytes value) => throw null; - } - - public class SqlChars : System.Data.SqlTypes.INullable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable - { - public System.Char[] Buffer { get => throw null; } void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; public static System.Xml.XmlQualifiedName GetXsdType(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; public bool IsNull { get => throw null; } - public System.Char this[System.Int64 offset] { get => throw null; set => throw null; } - public System.Int64 Length { get => throw null; } - public System.Int64 MaxLength { get => throw null; } - public static System.Data.SqlTypes.SqlChars Null { get => throw null; } - public System.Int64 Read(System.Int64 offset, System.Char[] buffer, int offsetInBuffer, int count) => throw null; + public long Length { get => throw null; } + public long MaxLength { get => throw null; } + public static System.Data.SqlTypes.SqlBytes Null { get => throw null; } + public static explicit operator System.Data.SqlTypes.SqlBytes(System.Data.SqlTypes.SqlBinary value) => throw null; + public static explicit operator System.Data.SqlTypes.SqlBinary(System.Data.SqlTypes.SqlBytes value) => throw null; + public long Read(long offset, byte[] buffer, int offsetInBuffer, int count) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader r) => throw null; - public void SetLength(System.Int64 value) => throw null; + public void SetLength(long value) => throw null; public void SetNull() => throw null; - public SqlChars() => throw null; - public SqlChars(System.Char[] buffer) => throw null; - public SqlChars(System.Data.SqlTypes.SqlString value) => throw null; public System.Data.SqlTypes.StorageState Storage { get => throw null; } - public System.Data.SqlTypes.SqlString ToSqlString() => throw null; - public System.Char[] Value { get => throw null; } - public void Write(System.Int64 offset, System.Char[] buffer, int offsetInBuffer, int count) => throw null; + public System.IO.Stream Stream { get => throw null; set { } } + public byte this[long offset] { get => throw null; set { } } + public System.Data.SqlTypes.SqlBinary ToSqlBinary() => throw null; + public byte[] Value { get => throw null; } + public void Write(long offset, byte[] buffer, int offsetInBuffer, int count) => throw null; void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; + } + public sealed class SqlChars : System.Data.SqlTypes.INullable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable + { + public char[] Buffer { get => throw null; } + public SqlChars() => throw null; + public SqlChars(char[] buffer) => throw null; + public SqlChars(System.Data.SqlTypes.SqlString value) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; + public static System.Xml.XmlQualifiedName GetXsdType(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; + public bool IsNull { get => throw null; } + public long Length { get => throw null; } + public long MaxLength { get => throw null; } + public static System.Data.SqlTypes.SqlChars Null { get => throw null; } public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlChars value) => throw null; public static explicit operator System.Data.SqlTypes.SqlChars(System.Data.SqlTypes.SqlString value) => throw null; + public long Read(long offset, char[] buffer, int offsetInBuffer, int count) => throw null; + void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader r) => throw null; + public void SetLength(long value) => throw null; + public void SetNull() => throw null; + public System.Data.SqlTypes.StorageState Storage { get => throw null; } + public char this[long offset] { get => throw null; set { } } + public System.Data.SqlTypes.SqlString ToSqlString() => throw null; + public char[] Value { get => throw null; } + public void Write(long offset, char[] buffer, int offsetInBuffer, int count) => throw null; + void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; } - [System.Flags] - public enum SqlCompareOptions : int + public enum SqlCompareOptions { - BinarySort = 32768, - BinarySort2 = 16384, - IgnoreCase = 1, - IgnoreKanaType = 8, - IgnoreNonSpace = 2, - IgnoreWidth = 16, None = 0, + IgnoreCase = 1, + IgnoreNonSpace = 2, + IgnoreKanaType = 8, + IgnoreWidth = 16, + BinarySort2 = 16384, + BinarySort = 32768, } - - public struct SqlDateTime : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlDateTime : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; - public static System.Data.SqlTypes.SqlDateTime operator +(System.Data.SqlTypes.SqlDateTime x, System.TimeSpan t) => throw null; - public static System.Data.SqlTypes.SqlDateTime operator -(System.Data.SqlTypes.SqlDateTime x, System.TimeSpan t) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; public static System.Data.SqlTypes.SqlDateTime Add(System.Data.SqlTypes.SqlDateTime x, System.TimeSpan t) => throw null; public int CompareTo(System.Data.SqlTypes.SqlDateTime value) => throw null; public int CompareTo(object value) => throw null; + public SqlDateTime(System.DateTime value) => throw null; + public SqlDateTime(int dayTicks, int timeTicks) => throw null; + public SqlDateTime(int year, int month, int day) => throw null; + public SqlDateTime(int year, int month, int day, int hour, int minute, int second) => throw null; + public SqlDateTime(int year, int month, int day, int hour, int minute, int second, double millisecond) => throw null; + public SqlDateTime(int year, int month, int day, int hour, int minute, int second, int bilisecond) => throw null; public int DayTicks { get => throw null; } - public bool Equals(System.Data.SqlTypes.SqlDateTime other) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlDateTime other) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; @@ -2714,54 +2443,49 @@ namespace System public static System.Data.SqlTypes.SqlDateTime MinValue; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; public static System.Data.SqlTypes.SqlDateTime Null; + public static System.Data.SqlTypes.SqlDateTime operator +(System.Data.SqlTypes.SqlDateTime x, System.TimeSpan t) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; + public static explicit operator System.DateTime(System.Data.SqlTypes.SqlDateTime x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlDateTime(System.Data.SqlTypes.SqlString x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDateTime(System.DateTime value) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; + public static System.Data.SqlTypes.SqlDateTime operator -(System.Data.SqlTypes.SqlDateTime x, System.TimeSpan t) => throw null; public static System.Data.SqlTypes.SqlDateTime Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; public static int SQLTicksPerHour; public static int SQLTicksPerMinute; public static int SQLTicksPerSecond; - // Stub generator skipped constructor - public SqlDateTime(System.DateTime value) => throw null; - public SqlDateTime(int dayTicks, int timeTicks) => throw null; - public SqlDateTime(int year, int month, int day) => throw null; - public SqlDateTime(int year, int month, int day, int hour, int minute, int second) => throw null; - public SqlDateTime(int year, int month, int day, int hour, int minute, int second, double millisecond) => throw null; - public SqlDateTime(int year, int month, int day, int hour, int minute, int second, int bilisecond) => throw null; public static System.Data.SqlTypes.SqlDateTime Subtract(System.Data.SqlTypes.SqlDateTime x, System.TimeSpan t) => throw null; public int TimeTicks { get => throw null; } public System.Data.SqlTypes.SqlString ToSqlString() => throw null; public override string ToString() => throw null; public System.DateTime Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public static explicit operator System.DateTime(System.Data.SqlTypes.SqlDateTime x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlDateTime(System.Data.SqlTypes.SqlString x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDateTime(System.DateTime value) => throw null; } - - public struct SqlDecimal : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlDecimal : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Data.SqlTypes.SqlDecimal operator *(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Data.SqlTypes.SqlDecimal operator +(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Data.SqlTypes.SqlDecimal operator -(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static System.Data.SqlTypes.SqlDecimal operator -(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Data.SqlTypes.SqlDecimal operator /(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; public static System.Data.SqlTypes.SqlDecimal Abs(System.Data.SqlTypes.SqlDecimal n) => throw null; public static System.Data.SqlTypes.SqlDecimal Add(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; public static System.Data.SqlTypes.SqlDecimal AdjustScale(System.Data.SqlTypes.SqlDecimal n, int digits, bool fRound) => throw null; - public System.Byte[] BinData { get => throw null; } + public byte[] BinData { get => throw null; } public static System.Data.SqlTypes.SqlDecimal Ceiling(System.Data.SqlTypes.SqlDecimal n) => throw null; public int CompareTo(System.Data.SqlTypes.SqlDecimal value) => throw null; public int CompareTo(object value) => throw null; public static System.Data.SqlTypes.SqlDecimal ConvertToPrecScale(System.Data.SqlTypes.SqlDecimal n, int precision, int scale) => throw null; + public SqlDecimal(byte bPrecision, byte bScale, bool fPositive, int data1, int data2, int data3, int data4) => throw null; + public SqlDecimal(byte bPrecision, byte bScale, bool fPositive, int[] bits) => throw null; + public SqlDecimal(decimal value) => throw null; + public SqlDecimal(double dVal) => throw null; + public SqlDecimal(int value) => throw null; + public SqlDecimal(long value) => throw null; public int[] Data { get => throw null; } public static System.Data.SqlTypes.SqlDecimal Divide(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public bool Equals(System.Data.SqlTypes.SqlDecimal other) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlDecimal other) => throw null; public override bool Equals(object value) => throw null; public static System.Data.SqlTypes.SqlDecimal Floor(System.Data.SqlTypes.SqlDecimal n) => throw null; public override int GetHashCode() => throw null; @@ -2773,27 +2497,44 @@ namespace System public bool IsPositive { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Byte MaxPrecision; - public static System.Byte MaxScale; + public static byte MaxPrecision; + public static byte MaxScale; public static System.Data.SqlTypes.SqlDecimal MaxValue; public static System.Data.SqlTypes.SqlDecimal MinValue; public static System.Data.SqlTypes.SqlDecimal Multiply(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; public static System.Data.SqlTypes.SqlDecimal Null; + public static System.Data.SqlTypes.SqlDecimal operator +(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public static System.Data.SqlTypes.SqlDecimal operator /(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public static explicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static explicit operator decimal(System.Data.SqlTypes.SqlDecimal x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlDouble x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlSingle x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlString x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlDecimal(double x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlByte x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlMoney x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDecimal(decimal x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDecimal(long x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public static System.Data.SqlTypes.SqlDecimal operator *(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public static System.Data.SqlTypes.SqlDecimal operator -(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; + public static System.Data.SqlTypes.SqlDecimal operator -(System.Data.SqlTypes.SqlDecimal x) => throw null; public static System.Data.SqlTypes.SqlDecimal Parse(string s) => throw null; public static System.Data.SqlTypes.SqlDecimal Power(System.Data.SqlTypes.SqlDecimal n, double exp) => throw null; - public System.Byte Precision { get => throw null; } + public byte Precision { get => throw null; } void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; public static System.Data.SqlTypes.SqlDecimal Round(System.Data.SqlTypes.SqlDecimal n, int position) => throw null; - public System.Byte Scale { get => throw null; } + public byte Scale { get => throw null; } public static System.Data.SqlTypes.SqlInt32 Sign(System.Data.SqlTypes.SqlDecimal n) => throw null; - // Stub generator skipped constructor - public SqlDecimal(System.Byte bPrecision, System.Byte bScale, bool fPositive, int[] bits) => throw null; - public SqlDecimal(System.Byte bPrecision, System.Byte bScale, bool fPositive, int data1, int data2, int data3, int data4) => throw null; - public SqlDecimal(System.Decimal value) => throw null; - public SqlDecimal(double dVal) => throw null; - public SqlDecimal(int value) => throw null; - public SqlDecimal(System.Int64 value) => throw null; public static System.Data.SqlTypes.SqlDecimal Subtract(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; public double ToDouble() => throw null; public System.Data.SqlTypes.SqlBoolean ToSqlBoolean() => throw null; @@ -2807,43 +2548,19 @@ namespace System public System.Data.SqlTypes.SqlString ToSqlString() => throw null; public override string ToString() => throw null; public static System.Data.SqlTypes.SqlDecimal Truncate(System.Data.SqlTypes.SqlDecimal n, int position) => throw null; - public System.Decimal Value { get => throw null; } - public int WriteTdsValue(System.Span destination) => throw null; + public decimal Value { get => throw null; } + public int WriteTdsValue(System.Span destination) => throw null; void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public static explicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static explicit operator System.Decimal(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlDouble x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlSingle x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlString x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlDecimal(double x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlByte x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Data.SqlTypes.SqlMoney x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Decimal x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Int64 x) => throw null; } - - public struct SqlDouble : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlDouble : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlDouble operator *(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlDouble operator +(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlDouble operator -(System.Data.SqlTypes.SqlDouble x) => throw null; - public static System.Data.SqlTypes.SqlDouble operator -(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlDouble operator /(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; public static System.Data.SqlTypes.SqlDouble Add(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlDouble value) => throw null; public int CompareTo(object value) => throw null; + public SqlDouble(double value) => throw null; public static System.Data.SqlTypes.SqlDouble Divide(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public bool Equals(System.Data.SqlTypes.SqlDouble other) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlDouble other) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; @@ -2858,10 +2575,30 @@ namespace System public static System.Data.SqlTypes.SqlDouble Multiply(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; public static System.Data.SqlTypes.SqlDouble Null; + public static System.Data.SqlTypes.SqlDouble operator +(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public static System.Data.SqlTypes.SqlDouble operator /(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public static explicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static explicit operator double(System.Data.SqlTypes.SqlDouble x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlString x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlByte x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlDecimal x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlMoney x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlSingle x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlDouble(double x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public static System.Data.SqlTypes.SqlDouble operator *(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public static System.Data.SqlTypes.SqlDouble operator -(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; + public static System.Data.SqlTypes.SqlDouble operator -(System.Data.SqlTypes.SqlDouble x) => throw null; public static System.Data.SqlTypes.SqlDouble Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - // Stub generator skipped constructor - public SqlDouble(double value) => throw null; public static System.Data.SqlTypes.SqlDouble Subtract(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; public System.Data.SqlTypes.SqlBoolean ToSqlBoolean() => throw null; public System.Data.SqlTypes.SqlByte ToSqlByte() => throw null; @@ -2876,31 +2613,17 @@ namespace System public double Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlDouble Zero; - public static explicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static explicit operator double(System.Data.SqlTypes.SqlDouble x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlString x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlByte x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlMoney x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDouble(System.Data.SqlTypes.SqlSingle x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlDouble(double x) => throw null; } - - public struct SqlGuid : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlGuid : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlGuid value) => throw null; public int CompareTo(object value) => throw null; - public bool Equals(System.Data.SqlTypes.SqlGuid other) => throw null; + public SqlGuid(byte[] value) => throw null; + public SqlGuid(System.Guid g) => throw null; + public SqlGuid(int a, short b, short c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k) => throw null; + public SqlGuid(string s) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlGuid other) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; @@ -2912,48 +2635,36 @@ namespace System public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; public static System.Data.SqlTypes.SqlGuid Null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; + public static explicit operator System.Data.SqlTypes.SqlGuid(System.Data.SqlTypes.SqlBinary x) => throw null; + public static explicit operator System.Guid(System.Data.SqlTypes.SqlGuid x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlGuid(System.Data.SqlTypes.SqlString x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlGuid(System.Guid x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; public static System.Data.SqlTypes.SqlGuid Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - // Stub generator skipped constructor - public SqlGuid(System.Byte[] value) => throw null; - public SqlGuid(System.Guid g) => throw null; - public SqlGuid(int a, System.Int16 b, System.Int16 c, System.Byte d, System.Byte e, System.Byte f, System.Byte g, System.Byte h, System.Byte i, System.Byte j, System.Byte k) => throw null; - public SqlGuid(string s) => throw null; - public System.Byte[] ToByteArray() => throw null; + public byte[] ToByteArray() => throw null; public System.Data.SqlTypes.SqlBinary ToSqlBinary() => throw null; public System.Data.SqlTypes.SqlString ToSqlString() => throw null; public override string ToString() => throw null; public System.Guid Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public static explicit operator System.Data.SqlTypes.SqlGuid(System.Data.SqlTypes.SqlBinary x) => throw null; - public static explicit operator System.Guid(System.Data.SqlTypes.SqlGuid x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlGuid(System.Data.SqlTypes.SqlString x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlGuid(System.Guid x) => throw null; } - - public struct SqlInt16 : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlInt16 : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlInt16 operator %(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlInt16 operator &(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlInt16 operator *(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlInt16 operator +(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlInt16 operator -(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static System.Data.SqlTypes.SqlInt16 operator -(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlInt16 operator /(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlInt16 Add(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlInt16 BitwiseAnd(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlInt16 BitwiseOr(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlInt16 value) => throw null; public int CompareTo(object value) => throw null; + public SqlInt16(short value) => throw null; public static System.Data.SqlTypes.SqlInt16 Divide(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public bool Equals(System.Data.SqlTypes.SqlInt16 other) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlInt16 other) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; @@ -2971,10 +2682,35 @@ namespace System public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlInt16 Null; public static System.Data.SqlTypes.SqlInt16 OnesComplement(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static System.Data.SqlTypes.SqlInt16 operator +(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlInt16 operator &(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlInt16 operator |(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlInt16 operator /(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlInt16 operator ^(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlDecimal x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlDouble x) => throw null; + public static explicit operator short(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlMoney x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlSingle x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlString x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlByte x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlInt16(short x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlInt16 operator %(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlInt16 operator *(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlInt16 operator ~(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static System.Data.SqlTypes.SqlInt16 operator -(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; + public static System.Data.SqlTypes.SqlInt16 operator -(System.Data.SqlTypes.SqlInt16 x) => throw null; public static System.Data.SqlTypes.SqlInt16 Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - // Stub generator skipped constructor - public SqlInt16(System.Int16 value) => throw null; public static System.Data.SqlTypes.SqlInt16 Subtract(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public System.Data.SqlTypes.SqlBoolean ToSqlBoolean() => throw null; public System.Data.SqlTypes.SqlByte ToSqlByte() => throw null; @@ -2986,49 +2722,22 @@ namespace System public System.Data.SqlTypes.SqlSingle ToSqlSingle() => throw null; public System.Data.SqlTypes.SqlString ToSqlString() => throw null; public override string ToString() => throw null; - public System.Int16 Value { get => throw null; } + public short Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlInt16 Xor(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlInt16 Zero; - public static System.Data.SqlTypes.SqlInt16 operator ^(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlDouble x) => throw null; - public static explicit operator System.Int16(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlMoney x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlSingle x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlString x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlInt16(System.Data.SqlTypes.SqlByte x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlInt16(System.Int16 x) => throw null; - public static System.Data.SqlTypes.SqlInt16 operator |(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlInt16 operator ~(System.Data.SqlTypes.SqlInt16 x) => throw null; } - - public struct SqlInt32 : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlInt32 : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlInt32 operator %(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlInt32 operator &(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlInt32 operator *(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlInt32 operator +(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlInt32 operator -(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static System.Data.SqlTypes.SqlInt32 operator -(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlInt32 operator /(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlInt32 Add(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlInt32 BitwiseAnd(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlInt32 BitwiseOr(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlInt32 value) => throw null; public int CompareTo(object value) => throw null; + public SqlInt32(int value) => throw null; public static System.Data.SqlTypes.SqlInt32 Divide(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public bool Equals(System.Data.SqlTypes.SqlInt32 other) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlInt32 other) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; @@ -3046,10 +2755,35 @@ namespace System public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlInt32 Null; public static System.Data.SqlTypes.SqlInt32 OnesComplement(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static System.Data.SqlTypes.SqlInt32 operator +(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlInt32 operator &(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlInt32 operator |(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlInt32 operator /(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlInt32 operator ^(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlDecimal x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlDouble x) => throw null; + public static explicit operator int(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlMoney x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlSingle x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlString x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlByte x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlInt32(int x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlInt32 operator %(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlInt32 operator *(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlInt32 operator ~(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static System.Data.SqlTypes.SqlInt32 operator -(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; + public static System.Data.SqlTypes.SqlInt32 operator -(System.Data.SqlTypes.SqlInt32 x) => throw null; public static System.Data.SqlTypes.SqlInt32 Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - // Stub generator skipped constructor - public SqlInt32(int value) => throw null; public static System.Data.SqlTypes.SqlInt32 Subtract(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public System.Data.SqlTypes.SqlBoolean ToSqlBoolean() => throw null; public System.Data.SqlTypes.SqlByte ToSqlByte() => throw null; @@ -3065,45 +2799,18 @@ namespace System void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlInt32 Xor(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlInt32 Zero; - public static System.Data.SqlTypes.SqlInt32 operator ^(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlDouble x) => throw null; - public static explicit operator int(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlMoney x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlSingle x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlString x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlByte x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlInt32(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlInt32(int x) => throw null; - public static System.Data.SqlTypes.SqlInt32 operator |(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlInt32 operator ~(System.Data.SqlTypes.SqlInt32 x) => throw null; } - - public struct SqlInt64 : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlInt64 : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlInt64 operator %(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlInt64 operator &(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlInt64 operator *(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlInt64 operator +(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlInt64 operator -(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static System.Data.SqlTypes.SqlInt64 operator -(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlInt64 operator /(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlInt64 Add(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlInt64 BitwiseAnd(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlInt64 BitwiseOr(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlInt64 value) => throw null; public int CompareTo(object value) => throw null; + public SqlInt64(long value) => throw null; public static System.Data.SqlTypes.SqlInt64 Divide(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public bool Equals(System.Data.SqlTypes.SqlInt64 other) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlInt64 other) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; @@ -3121,10 +2828,35 @@ namespace System public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlInt64 Null; public static System.Data.SqlTypes.SqlInt64 OnesComplement(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static System.Data.SqlTypes.SqlInt64 operator +(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlInt64 operator &(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlInt64 operator |(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlInt64 operator /(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlInt64 operator ^(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlDecimal x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlDouble x) => throw null; + public static explicit operator long(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlMoney x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlSingle x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlString x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlByte x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlInt64(long x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlInt64 operator %(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlInt64 operator *(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlInt64 operator ~(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static System.Data.SqlTypes.SqlInt64 operator -(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; + public static System.Data.SqlTypes.SqlInt64 operator -(System.Data.SqlTypes.SqlInt64 x) => throw null; public static System.Data.SqlTypes.SqlInt64 Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - // Stub generator skipped constructor - public SqlInt64(System.Int64 value) => throw null; public static System.Data.SqlTypes.SqlInt64 Subtract(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public System.Data.SqlTypes.SqlBoolean ToSqlBoolean() => throw null; public System.Data.SqlTypes.SqlByte ToSqlByte() => throw null; @@ -3136,50 +2868,28 @@ namespace System public System.Data.SqlTypes.SqlSingle ToSqlSingle() => throw null; public System.Data.SqlTypes.SqlString ToSqlString() => throw null; public override string ToString() => throw null; - public System.Int64 Value { get => throw null; } + public long Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlInt64 Xor(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlInt64 Zero; - public static System.Data.SqlTypes.SqlInt64 operator ^(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlDouble x) => throw null; - public static explicit operator System.Int64(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlMoney x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlSingle x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlString x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlByte x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlInt64(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlInt64(System.Int64 x) => throw null; - public static System.Data.SqlTypes.SqlInt64 operator |(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlInt64 operator ~(System.Data.SqlTypes.SqlInt64 x) => throw null; } - - public struct SqlMoney : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlMoney : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlMoney operator *(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlMoney operator +(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlMoney operator -(System.Data.SqlTypes.SqlMoney x) => throw null; - public static System.Data.SqlTypes.SqlMoney operator -(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlMoney operator /(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; public static System.Data.SqlTypes.SqlMoney Add(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlMoney value) => throw null; public int CompareTo(object value) => throw null; + public SqlMoney(decimal value) => throw null; + public SqlMoney(double value) => throw null; + public SqlMoney(int value) => throw null; + public SqlMoney(long value) => throw null; public static System.Data.SqlTypes.SqlMoney Divide(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public bool Equals(System.Data.SqlTypes.SqlMoney other) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlMoney other) => throw null; public override bool Equals(object value) => throw null; - public static System.Data.SqlTypes.SqlMoney FromTdsValue(System.Int64 value) => throw null; + public static System.Data.SqlTypes.SqlMoney FromTdsValue(long value) => throw null; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; - public System.Int64 GetTdsValue() => throw null; + public long GetTdsValue() => throw null; public static System.Xml.XmlQualifiedName GetXsdType(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; public static System.Data.SqlTypes.SqlBoolean GreaterThan(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; public static System.Data.SqlTypes.SqlBoolean GreaterThanOrEqual(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; @@ -3191,18 +2901,37 @@ namespace System public static System.Data.SqlTypes.SqlMoney Multiply(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; public static System.Data.SqlTypes.SqlMoney Null; + public static System.Data.SqlTypes.SqlMoney operator +(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public static System.Data.SqlTypes.SqlMoney operator /(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public static explicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlDecimal x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlDouble x) => throw null; + public static explicit operator decimal(System.Data.SqlTypes.SqlMoney x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlSingle x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlString x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlMoney(double x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlByte x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlMoney(decimal x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlMoney(long x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public static System.Data.SqlTypes.SqlMoney operator *(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public static System.Data.SqlTypes.SqlMoney operator -(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; + public static System.Data.SqlTypes.SqlMoney operator -(System.Data.SqlTypes.SqlMoney x) => throw null; public static System.Data.SqlTypes.SqlMoney Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - // Stub generator skipped constructor - public SqlMoney(System.Decimal value) => throw null; - public SqlMoney(double value) => throw null; - public SqlMoney(int value) => throw null; - public SqlMoney(System.Int64 value) => throw null; public static System.Data.SqlTypes.SqlMoney Subtract(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public System.Decimal ToDecimal() => throw null; + public decimal ToDecimal() => throw null; public double ToDouble() => throw null; public int ToInt32() => throw null; - public System.Int64 ToInt64() => throw null; + public long ToInt64() => throw null; public System.Data.SqlTypes.SqlBoolean ToSqlBoolean() => throw null; public System.Data.SqlTypes.SqlByte ToSqlByte() => throw null; public System.Data.SqlTypes.SqlDecimal ToSqlDecimal() => throw null; @@ -3213,57 +2942,32 @@ namespace System public System.Data.SqlTypes.SqlSingle ToSqlSingle() => throw null; public System.Data.SqlTypes.SqlString ToSqlString() => throw null; public override string ToString() => throw null; - public System.Decimal Value { get => throw null; } + public decimal Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlMoney Zero; - public static explicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlDouble x) => throw null; - public static explicit operator System.Decimal(System.Data.SqlTypes.SqlMoney x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlSingle x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlString x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlMoney(double x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlByte x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlMoney(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlMoney(System.Decimal x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlMoney(System.Int64 x) => throw null; } - - public class SqlNotFilledException : System.Data.SqlTypes.SqlTypeException + public sealed class SqlNotFilledException : System.Data.SqlTypes.SqlTypeException { public SqlNotFilledException() => throw null; public SqlNotFilledException(string message) => throw null; public SqlNotFilledException(string message, System.Exception e) => throw null; } - - public class SqlNullValueException : System.Data.SqlTypes.SqlTypeException + public sealed class SqlNullValueException : System.Data.SqlTypes.SqlTypeException { public SqlNullValueException() => throw null; public SqlNullValueException(string message) => throw null; public SqlNullValueException(string message, System.Exception e) => throw null; } - - public struct SqlSingle : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlSingle : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlSingle operator *(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlSingle operator +(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlSingle operator -(System.Data.SqlTypes.SqlSingle x) => throw null; - public static System.Data.SqlTypes.SqlSingle operator -(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlSingle operator /(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; public static System.Data.SqlTypes.SqlSingle Add(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlSingle value) => throw null; public int CompareTo(object value) => throw null; + public SqlSingle(double value) => throw null; + public SqlSingle(float value) => throw null; public static System.Data.SqlTypes.SqlSingle Divide(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public bool Equals(System.Data.SqlTypes.SqlSingle other) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlSingle other) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; @@ -3278,11 +2982,30 @@ namespace System public static System.Data.SqlTypes.SqlSingle Multiply(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; public static System.Data.SqlTypes.SqlSingle Null; + public static System.Data.SqlTypes.SqlSingle operator +(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public static System.Data.SqlTypes.SqlSingle operator /(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public static explicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlDouble x) => throw null; + public static explicit operator float(System.Data.SqlTypes.SqlSingle x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlString x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlByte x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlDecimal x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlMoney x) => throw null; + public static implicit operator System.Data.SqlTypes.SqlSingle(float x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public static System.Data.SqlTypes.SqlSingle operator *(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public static System.Data.SqlTypes.SqlSingle operator -(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; + public static System.Data.SqlTypes.SqlSingle operator -(System.Data.SqlTypes.SqlSingle x) => throw null; public static System.Data.SqlTypes.SqlSingle Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - // Stub generator skipped constructor - public SqlSingle(double value) => throw null; - public SqlSingle(float value) => throw null; public static System.Data.SqlTypes.SqlSingle Subtract(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; public System.Data.SqlTypes.SqlBoolean ToSqlBoolean() => throw null; public System.Data.SqlTypes.SqlByte ToSqlByte() => throw null; @@ -3297,28 +3020,9 @@ namespace System public float Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlSingle Zero; - public static explicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlDouble x) => throw null; - public static explicit operator float(System.Data.SqlTypes.SqlSingle x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlString x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlByte x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlSingle(System.Data.SqlTypes.SqlMoney x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlSingle(float x) => throw null; } - - public struct SqlString : System.Data.SqlTypes.INullable, System.IComparable, System.IEquatable, System.Xml.Serialization.IXmlSerializable + public struct SqlString : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable { - public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; - public static System.Data.SqlTypes.SqlString operator +(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; - public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static System.Data.SqlTypes.SqlString Add(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static int BinarySort; public static int BinarySort2; @@ -3328,14 +3032,21 @@ namespace System public int CompareTo(System.Data.SqlTypes.SqlString value) => throw null; public int CompareTo(object value) => throw null; public static System.Data.SqlTypes.SqlString Concat(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; + public SqlString(int lcid, System.Data.SqlTypes.SqlCompareOptions compareOptions, byte[] data) => throw null; + public SqlString(int lcid, System.Data.SqlTypes.SqlCompareOptions compareOptions, byte[] data, bool fUnicode) => throw null; + public SqlString(int lcid, System.Data.SqlTypes.SqlCompareOptions compareOptions, byte[] data, int index, int count) => throw null; + public SqlString(int lcid, System.Data.SqlTypes.SqlCompareOptions compareOptions, byte[] data, int index, int count, bool fUnicode) => throw null; + public SqlString(string data) => throw null; + public SqlString(string data, int lcid) => throw null; + public SqlString(string data, int lcid, System.Data.SqlTypes.SqlCompareOptions compareOptions) => throw null; public System.Globalization.CultureInfo CultureInfo { get => throw null; } - public bool Equals(System.Data.SqlTypes.SqlString other) => throw null; public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; + public bool Equals(System.Data.SqlTypes.SqlString other) => throw null; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; - public System.Byte[] GetNonUnicodeBytes() => throw null; + public byte[] GetNonUnicodeBytes() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; - public System.Byte[] GetUnicodeBytes() => throw null; + public byte[] GetUnicodeBytes() => throw null; public static System.Xml.XmlQualifiedName GetXsdType(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; public static System.Data.SqlTypes.SqlBoolean GreaterThan(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static System.Data.SqlTypes.SqlBoolean GreaterThanOrEqual(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; @@ -3349,16 +3060,28 @@ namespace System public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static System.Data.SqlTypes.SqlString Null; + public static System.Data.SqlTypes.SqlString operator +(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlBoolean x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlByte x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlDateTime x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlDecimal x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlDouble x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlGuid x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlInt16 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlInt32 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlInt64 x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlMoney x) => throw null; + public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlSingle x) => throw null; + public static explicit operator string(System.Data.SqlTypes.SqlString x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator >=(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; + public static implicit operator System.Data.SqlTypes.SqlString(string x) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; + public static System.Data.SqlTypes.SqlBoolean operator <=(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; public System.Data.SqlTypes.SqlCompareOptions SqlCompareOptions { get => throw null; } - // Stub generator skipped constructor - public SqlString(int lcid, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Byte[] data) => throw null; - public SqlString(int lcid, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Byte[] data, bool fUnicode) => throw null; - public SqlString(int lcid, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Byte[] data, int index, int count) => throw null; - public SqlString(int lcid, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Byte[] data, int index, int count, bool fUnicode) => throw null; - public SqlString(string data) => throw null; - public SqlString(string data, int lcid) => throw null; - public SqlString(string data, int lcid, System.Data.SqlTypes.SqlCompareOptions compareOptions) => throw null; public System.Data.SqlTypes.SqlBoolean ToSqlBoolean() => throw null; public System.Data.SqlTypes.SqlByte ToSqlByte() => throw null; public System.Data.SqlTypes.SqlDateTime ToSqlDateTime() => throw null; @@ -3373,28 +3096,13 @@ namespace System public override string ToString() => throw null; public string Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlBoolean x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlByte x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlDateTime x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlDecimal x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlDouble x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlGuid x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlInt16 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlInt32 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlInt64 x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlMoney x) => throw null; - public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlSingle x) => throw null; - public static explicit operator string(System.Data.SqlTypes.SqlString x) => throw null; - public static implicit operator System.Data.SqlTypes.SqlString(string x) => throw null; } - - public class SqlTruncateException : System.Data.SqlTypes.SqlTypeException + public sealed class SqlTruncateException : System.Data.SqlTypes.SqlTypeException { public SqlTruncateException() => throw null; public SqlTruncateException(string message) => throw null; public SqlTruncateException(string message, System.Exception e) => throw null; } - public class SqlTypeException : System.SystemException { public SqlTypeException() => throw null; @@ -3402,29 +3110,134 @@ namespace System public SqlTypeException(string message) => throw null; public SqlTypeException(string message, System.Exception e) => throw null; } - - public class SqlXml : System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable + public sealed class SqlXml : System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public System.Xml.XmlReader CreateReader() => throw null; + public SqlXml() => throw null; + public SqlXml(System.IO.Stream value) => throw null; + public SqlXml(System.Xml.XmlReader value) => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; public static System.Xml.XmlQualifiedName GetXsdType(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; public bool IsNull { get => throw null; } public static System.Data.SqlTypes.SqlXml Null { get => throw null; } void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader r) => throw null; - public SqlXml() => throw null; - public SqlXml(System.IO.Stream value) => throw null; - public SqlXml(System.Xml.XmlReader value) => throw null; public string Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; } - - public enum StorageState : int + public enum StorageState { Buffer = 0, Stream = 1, UnmanagedBuffer = 2, } - + } + public sealed class StateChangeEventArgs : System.EventArgs + { + public StateChangeEventArgs(System.Data.ConnectionState originalState, System.Data.ConnectionState currentState) => throw null; + public System.Data.ConnectionState CurrentState { get => throw null; } + public System.Data.ConnectionState OriginalState { get => throw null; } + } + public delegate void StateChangeEventHandler(object sender, System.Data.StateChangeEventArgs e); + public sealed class StatementCompletedEventArgs : System.EventArgs + { + public StatementCompletedEventArgs(int recordCount) => throw null; + public int RecordCount { get => throw null; } + } + public delegate void StatementCompletedEventHandler(object sender, System.Data.StatementCompletedEventArgs e); + public enum StatementType + { + Select = 0, + Insert = 1, + Update = 2, + Delete = 3, + Batch = 4, + } + public class StrongTypingException : System.Data.DataException + { + public StrongTypingException() => throw null; + protected StrongTypingException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public StrongTypingException(string message) => throw null; + public StrongTypingException(string s, System.Exception innerException) => throw null; + } + public class SyntaxErrorException : System.Data.InvalidExpressionException + { + public SyntaxErrorException() => throw null; + protected SyntaxErrorException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public SyntaxErrorException(string s) => throw null; + public SyntaxErrorException(string message, System.Exception innerException) => throw null; + } + public abstract class TypedTableBase : System.Data.DataTable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable where T : System.Data.DataRow + { + public System.Data.EnumerableRowCollection Cast() => throw null; + protected TypedTableBase() => throw null; + protected TypedTableBase(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + } + public static partial class TypedTableBaseExtensions + { + public static System.Data.EnumerableRowCollection AsEnumerable(this System.Data.TypedTableBase source) where TRow : System.Data.DataRow => throw null; + public static TRow ElementAtOrDefault(this System.Data.TypedTableBase source, int index) where TRow : System.Data.DataRow => throw null; + public static System.Data.OrderedEnumerableRowCollection OrderBy(this System.Data.TypedTableBase source, System.Func keySelector) where TRow : System.Data.DataRow => throw null; + public static System.Data.OrderedEnumerableRowCollection OrderBy(this System.Data.TypedTableBase source, System.Func keySelector, System.Collections.Generic.IComparer comparer) where TRow : System.Data.DataRow => throw null; + public static System.Data.OrderedEnumerableRowCollection OrderByDescending(this System.Data.TypedTableBase source, System.Func keySelector) where TRow : System.Data.DataRow => throw null; + public static System.Data.OrderedEnumerableRowCollection OrderByDescending(this System.Data.TypedTableBase source, System.Func keySelector, System.Collections.Generic.IComparer comparer) where TRow : System.Data.DataRow => throw null; + public static System.Data.EnumerableRowCollection Select(this System.Data.TypedTableBase source, System.Func selector) where TRow : System.Data.DataRow => throw null; + public static System.Data.EnumerableRowCollection Where(this System.Data.TypedTableBase source, System.Func predicate) where TRow : System.Data.DataRow => throw null; + } + public class UniqueConstraint : System.Data.Constraint + { + public virtual System.Data.DataColumn[] Columns { get => throw null; } + public UniqueConstraint(System.Data.DataColumn column) => throw null; + public UniqueConstraint(System.Data.DataColumn column, bool isPrimaryKey) => throw null; + public UniqueConstraint(System.Data.DataColumn[] columns) => throw null; + public UniqueConstraint(System.Data.DataColumn[] columns, bool isPrimaryKey) => throw null; + public UniqueConstraint(string name, System.Data.DataColumn column) => throw null; + public UniqueConstraint(string name, System.Data.DataColumn column, bool isPrimaryKey) => throw null; + public UniqueConstraint(string name, System.Data.DataColumn[] columns) => throw null; + public UniqueConstraint(string name, System.Data.DataColumn[] columns, bool isPrimaryKey) => throw null; + public UniqueConstraint(string name, string[] columnNames, bool isPrimaryKey) => throw null; + public override bool Equals(object key2) => throw null; + public override int GetHashCode() => throw null; + public bool IsPrimaryKey { get => throw null; } + public override System.Data.DataTable Table { get => throw null; } + } + public enum UpdateRowSource + { + None = 0, + OutputParameters = 1, + FirstReturnedRecord = 2, + Both = 3, + } + public enum UpdateStatus + { + Continue = 0, + ErrorsOccurred = 1, + SkipCurrentRow = 2, + SkipAllRemainingRows = 3, + } + public class VersionNotFoundException : System.Data.DataException + { + public VersionNotFoundException() => throw null; + protected VersionNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public VersionNotFoundException(string s) => throw null; + public VersionNotFoundException(string message, System.Exception innerException) => throw null; + } + public enum XmlReadMode + { + Auto = 0, + ReadSchema = 1, + IgnoreSchema = 2, + InferSchema = 3, + DiffGram = 4, + Fragment = 5, + InferTypedSchema = 6, + } + public enum XmlWriteMode + { + WriteSchema = 0, + IgnoreSchema = 1, + DiffGram = 2, } } namespace Xml @@ -3434,7 +3247,9 @@ namespace System public override System.Xml.XmlNode CloneNode(bool deep) => throw null; public override System.Xml.XmlElement CreateElement(string prefix, string localName, string namespaceURI) => throw null; public override System.Xml.XmlEntityReference CreateEntityReference(string name) => throw null; - protected internal override System.Xml.XPath.XPathNavigator CreateNavigator(System.Xml.XmlNode node) => throw null; + protected override System.Xml.XPath.XPathNavigator CreateNavigator(System.Xml.XmlNode node) => throw null; + public XmlDataDocument() => throw null; + public XmlDataDocument(System.Data.DataSet dataset) => throw null; public System.Data.DataSet DataSet { get => throw null; } public override System.Xml.XmlElement GetElementById(string elemId) => throw null; public System.Xml.XmlElement GetElementFromRow(System.Data.DataRow r) => throw null; @@ -3442,11 +3257,8 @@ namespace System public System.Data.DataRow GetRowFromElement(System.Xml.XmlElement e) => throw null; public override void Load(System.IO.Stream inStream) => throw null; public override void Load(System.IO.TextReader txtReader) => throw null; - public override void Load(System.Xml.XmlReader reader) => throw null; public override void Load(string filename) => throw null; - public XmlDataDocument() => throw null; - public XmlDataDocument(System.Data.DataSet dataset) => throw null; + public override void Load(System.Xml.XmlReader reader) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs new file mode 100644 index 00000000000..348ca6b7327 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs new file mode 100644 index 00000000000..05f7345560e --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Contracts.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Contracts.cs index 5b371b2efa4..094a3b550bb 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Contracts.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Contracts.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Diagnostics.Contracts, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Diagnostics @@ -13,7 +12,7 @@ namespace System public static void Assert(bool condition, string userMessage) => throw null; public static void Assume(bool condition) => throw null; public static void Assume(bool condition, string userMessage) => throw null; - public static event System.EventHandler ContractFailed; + public static event System.EventHandler ContractFailed { add { } remove { } } public static void EndContractBlock() => throw null; public static void Ensures(bool condition) => throw null; public static void Ensures(bool condition, string userMessage) => throw null; @@ -33,30 +32,25 @@ namespace System public static T Result() => throw null; public static T ValueAtReturn(out T value) => throw null; } - - public class ContractAbbreviatorAttribute : System.Attribute + public sealed class ContractAbbreviatorAttribute : System.Attribute { public ContractAbbreviatorAttribute() => throw null; } - - public class ContractArgumentValidatorAttribute : System.Attribute + public sealed class ContractArgumentValidatorAttribute : System.Attribute { public ContractArgumentValidatorAttribute() => throw null; } - - public class ContractClassAttribute : System.Attribute + public sealed class ContractClassAttribute : System.Attribute { public ContractClassAttribute(System.Type typeContainingContracts) => throw null; public System.Type TypeContainingContracts { get => throw null; } } - - public class ContractClassForAttribute : System.Attribute + public sealed class ContractClassForAttribute : System.Attribute { public ContractClassForAttribute(System.Type typeContractsAreFor) => throw null; public System.Type TypeContractsAreFor { get => throw null; } } - - public class ContractFailedEventArgs : System.EventArgs + public sealed class ContractFailedEventArgs : System.EventArgs { public string Condition { get => throw null; } public ContractFailedEventArgs(System.Diagnostics.Contracts.ContractFailureKind failureKind, string message, string condition, System.Exception originalException) => throw null; @@ -68,23 +62,20 @@ namespace System public void SetUnwind() => throw null; public bool Unwind { get => throw null; } } - - public enum ContractFailureKind : int + public enum ContractFailureKind { - Assert = 4, - Assume = 5, - Invariant = 3, + Precondition = 0, Postcondition = 1, PostconditionOnException = 2, - Precondition = 0, + Invariant = 3, + Assert = 4, + Assume = 5, } - - public class ContractInvariantMethodAttribute : System.Attribute + public sealed class ContractInvariantMethodAttribute : System.Attribute { public ContractInvariantMethodAttribute() => throw null; } - - public class ContractOptionAttribute : System.Attribute + public sealed class ContractOptionAttribute : System.Attribute { public string Category { get => throw null; } public ContractOptionAttribute(string category, string setting, bool enabled) => throw null; @@ -93,34 +84,28 @@ namespace System public string Setting { get => throw null; } public string Value { get => throw null; } } - - public class ContractPublicPropertyNameAttribute : System.Attribute + public sealed class ContractPublicPropertyNameAttribute : System.Attribute { public ContractPublicPropertyNameAttribute(string name) => throw null; public string Name { get => throw null; } } - - public class ContractReferenceAssemblyAttribute : System.Attribute + public sealed class ContractReferenceAssemblyAttribute : System.Attribute { public ContractReferenceAssemblyAttribute() => throw null; } - - public class ContractRuntimeIgnoredAttribute : System.Attribute + public sealed class ContractRuntimeIgnoredAttribute : System.Attribute { public ContractRuntimeIgnoredAttribute() => throw null; } - - public class ContractVerificationAttribute : System.Attribute + public sealed class ContractVerificationAttribute : System.Attribute { public ContractVerificationAttribute(bool value) => throw null; public bool Value { get => throw null; } } - - public class PureAttribute : System.Attribute + public sealed class PureAttribute : System.Attribute { public PureAttribute() => throw null; } - } } namespace Runtime @@ -132,7 +117,6 @@ namespace System public static string RaiseContractFailedEvent(System.Diagnostics.Contracts.ContractFailureKind failureKind, string userMessage, string conditionText, System.Exception innerException) => throw null; public static void TriggerFailure(System.Diagnostics.Contracts.ContractFailureKind kind, string displayMessage, string userMessage, string conditionText, System.Exception innerException) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs new file mode 100644 index 00000000000..73a71d02dc1 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Diagnostics.Debug, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.DiagnosticSource.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.DiagnosticSource.cs index 133fca1016d..401e9ecc2f7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.DiagnosticSource.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.DiagnosticSource.cs @@ -1,48 +1,44 @@ // This file contains auto-generated code. // Generated from `System.Diagnostics.DiagnosticSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Diagnostics { public class Activity : System.IDisposable { - public struct Enumerator - { - public T Current { get => throw null; } - // Stub generator skipped constructor - public System.Diagnostics.Activity.Enumerator GetEnumerator() => throw null; - public bool MoveNext() => throw null; - } - - - public Activity(string operationName) => throw null; - public System.Diagnostics.ActivityTraceFlags ActivityTraceFlags { get => throw null; set => throw null; } + public System.Diagnostics.ActivityTraceFlags ActivityTraceFlags { get => throw null; set { } } public System.Diagnostics.Activity AddBaggage(string key, string value) => throw null; public System.Diagnostics.Activity AddEvent(System.Diagnostics.ActivityEvent e) => throw null; - public System.Diagnostics.Activity AddTag(string key, object value) => throw null; public System.Diagnostics.Activity AddTag(string key, string value) => throw null; + public System.Diagnostics.Activity AddTag(string key, object value) => throw null; public System.Collections.Generic.IEnumerable> Baggage { get => throw null; } public System.Diagnostics.ActivityContext Context { get => throw null; } - public static System.Diagnostics.Activity Current { get => throw null; set => throw null; } - public static event System.EventHandler CurrentChanged; - public static System.Diagnostics.ActivityIdFormat DefaultIdFormat { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } + public Activity(string operationName) => throw null; + public static System.Diagnostics.Activity Current { get => throw null; set { } } + public static event System.EventHandler CurrentChanged { add { } remove { } } + public static System.Diagnostics.ActivityIdFormat DefaultIdFormat { get => throw null; set { } } + public string DisplayName { get => throw null; set { } } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public System.TimeSpan Duration { get => throw null; } public System.Diagnostics.Activity.Enumerator EnumerateEvents() => throw null; public System.Diagnostics.Activity.Enumerator EnumerateLinks() => throw null; public System.Diagnostics.Activity.Enumerator> EnumerateTagObjects() => throw null; + public struct Enumerator + { + public T Current { get => throw null; } + public System.Diagnostics.Activity.Enumerator GetEnumerator() => throw null; + public bool MoveNext() => throw null; + } public System.Collections.Generic.IEnumerable Events { get => throw null; } - public static bool ForceDefaultIdFormat { get => throw null; set => throw null; } + public static bool ForceDefaultIdFormat { get => throw null; set { } } public string GetBaggageItem(string key) => throw null; public object GetCustomProperty(string propertyName) => throw null; public object GetTagItem(string key) => throw null; public bool HasRemoteParent { get => throw null; } public string Id { get => throw null; } public System.Diagnostics.ActivityIdFormat IdFormat { get => throw null; } - public bool IsAllDataRequested { get => throw null; set => throw null; } + public bool IsAllDataRequested { get => throw null; set { } } public bool IsStopped { get => throw null; } public System.Diagnostics.ActivityKind Kind { get => throw null; } public System.Collections.Generic.IEnumerable Links { get => throw null; } @@ -71,39 +67,33 @@ namespace System public System.Collections.Generic.IEnumerable> TagObjects { get => throw null; } public System.Collections.Generic.IEnumerable> Tags { get => throw null; } public System.Diagnostics.ActivityTraceId TraceId { get => throw null; } - public static System.Func TraceIdGenerator { get => throw null; set => throw null; } - public string TraceStateString { get => throw null; set => throw null; } + public static System.Func TraceIdGenerator { get => throw null; set { } } + public string TraceStateString { get => throw null; set { } } } - public struct ActivityChangedEventArgs { - // Stub generator skipped constructor - public System.Diagnostics.Activity Current { get => throw null; set => throw null; } - public System.Diagnostics.Activity Previous { get => throw null; set => throw null; } + public System.Diagnostics.Activity Current { get => throw null; set { } } + public System.Diagnostics.Activity Previous { get => throw null; set { } } } - public struct ActivityContext : System.IEquatable { - public static bool operator !=(System.Diagnostics.ActivityContext left, System.Diagnostics.ActivityContext right) => throw null; - public static bool operator ==(System.Diagnostics.ActivityContext left, System.Diagnostics.ActivityContext right) => throw null; - // Stub generator skipped constructor public ActivityContext(System.Diagnostics.ActivityTraceId traceId, System.Diagnostics.ActivitySpanId spanId, System.Diagnostics.ActivityTraceFlags traceFlags, string traceState = default(string), bool isRemote = default(bool)) => throw null; public bool Equals(System.Diagnostics.ActivityContext value) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public bool IsRemote { get => throw null; } + public static bool operator ==(System.Diagnostics.ActivityContext left, System.Diagnostics.ActivityContext right) => throw null; + public static bool operator !=(System.Diagnostics.ActivityContext left, System.Diagnostics.ActivityContext right) => throw null; public static System.Diagnostics.ActivityContext Parse(string traceParent, string traceState) => throw null; public System.Diagnostics.ActivitySpanId SpanId { get => throw null; } public System.Diagnostics.ActivityTraceFlags TraceFlags { get => throw null; } public System.Diagnostics.ActivityTraceId TraceId { get => throw null; } public string TraceState { get => throw null; } - public static bool TryParse(string traceParent, string traceState, bool isRemote, out System.Diagnostics.ActivityContext context) => throw null; public static bool TryParse(string traceParent, string traceState, out System.Diagnostics.ActivityContext context) => throw null; + public static bool TryParse(string traceParent, string traceState, bool isRemote, out System.Diagnostics.ActivityContext context) => throw null; } - public struct ActivityCreationOptions { - // Stub generator skipped constructor public System.Diagnostics.ActivityKind Kind { get => throw null; } public System.Collections.Generic.IEnumerable Links { get => throw null; } public string Name { get => throw null; } @@ -112,12 +102,10 @@ namespace System public System.Diagnostics.ActivitySource Source { get => throw null; } public System.Collections.Generic.IEnumerable> Tags { get => throw null; } public System.Diagnostics.ActivityTraceId TraceId { get => throw null; } - public string TraceState { get => throw null; set => throw null; } + public string TraceState { get => throw null; set { } } } - public struct ActivityEvent { - // Stub generator skipped constructor public ActivityEvent(string name) => throw null; public ActivityEvent(string name, System.DateTimeOffset timestamp = default(System.DateTimeOffset), System.Diagnostics.ActivityTagsCollection tags = default(System.Diagnostics.ActivityTagsCollection)) => throw null; public System.Diagnostics.Activity.Enumerator> EnumerateTagObjects() => throw null; @@ -125,155 +113,137 @@ namespace System public System.Collections.Generic.IEnumerable> Tags { get => throw null; } public System.DateTimeOffset Timestamp { get => throw null; } } - - public enum ActivityIdFormat : int + public enum ActivityIdFormat { - Hierarchical = 1, Unknown = 0, + Hierarchical = 1, W3C = 2, } - - public enum ActivityKind : int + public enum ActivityKind { - Client = 2, - Consumer = 4, Internal = 0, - Producer = 3, Server = 1, + Client = 2, + Producer = 3, + Consumer = 4, } - public struct ActivityLink : System.IEquatable { - public static bool operator !=(System.Diagnostics.ActivityLink left, System.Diagnostics.ActivityLink right) => throw null; - public static bool operator ==(System.Diagnostics.ActivityLink left, System.Diagnostics.ActivityLink right) => throw null; - // Stub generator skipped constructor - public ActivityLink(System.Diagnostics.ActivityContext context, System.Diagnostics.ActivityTagsCollection tags = default(System.Diagnostics.ActivityTagsCollection)) => throw null; public System.Diagnostics.ActivityContext Context { get => throw null; } + public ActivityLink(System.Diagnostics.ActivityContext context, System.Diagnostics.ActivityTagsCollection tags = default(System.Diagnostics.ActivityTagsCollection)) => throw null; public System.Diagnostics.Activity.Enumerator> EnumerateTagObjects() => throw null; - public bool Equals(System.Diagnostics.ActivityLink value) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Diagnostics.ActivityLink value) => throw null; public override int GetHashCode() => throw null; + public static bool operator ==(System.Diagnostics.ActivityLink left, System.Diagnostics.ActivityLink right) => throw null; + public static bool operator !=(System.Diagnostics.ActivityLink left, System.Diagnostics.ActivityLink right) => throw null; public System.Collections.Generic.IEnumerable> Tags { get => throw null; } } - - public class ActivityListener : System.IDisposable + public sealed class ActivityListener : System.IDisposable { + public System.Action ActivityStarted { get => throw null; set { } } + public System.Action ActivityStopped { get => throw null; set { } } public ActivityListener() => throw null; - public System.Action ActivityStarted { get => throw null; set => throw null; } - public System.Action ActivityStopped { get => throw null; set => throw null; } public void Dispose() => throw null; - public System.Diagnostics.SampleActivity Sample { get => throw null; set => throw null; } - public System.Diagnostics.SampleActivity SampleUsingParentId { get => throw null; set => throw null; } - public System.Func ShouldListenTo { get => throw null; set => throw null; } + public System.Diagnostics.SampleActivity Sample { get => throw null; set { } } + public System.Diagnostics.SampleActivity SampleUsingParentId { get => throw null; set { } } + public System.Func ShouldListenTo { get => throw null; set { } } } - - public enum ActivitySamplingResult : int + public enum ActivitySamplingResult { - AllData = 2, - AllDataAndRecorded = 3, None = 0, PropagationData = 1, + AllData = 2, + AllDataAndRecorded = 3, } - - public class ActivitySource : System.IDisposable + public sealed class ActivitySource : System.IDisposable { - public ActivitySource(string name, string version = default(string)) => throw null; public static void AddActivityListener(System.Diagnostics.ActivityListener listener) => throw null; public System.Diagnostics.Activity CreateActivity(string name, System.Diagnostics.ActivityKind kind) => throw null; public System.Diagnostics.Activity CreateActivity(string name, System.Diagnostics.ActivityKind kind, System.Diagnostics.ActivityContext parentContext, System.Collections.Generic.IEnumerable> tags = default(System.Collections.Generic.IEnumerable>), System.Collections.Generic.IEnumerable links = default(System.Collections.Generic.IEnumerable), System.Diagnostics.ActivityIdFormat idFormat = default(System.Diagnostics.ActivityIdFormat)) => throw null; public System.Diagnostics.Activity CreateActivity(string name, System.Diagnostics.ActivityKind kind, string parentId, System.Collections.Generic.IEnumerable> tags = default(System.Collections.Generic.IEnumerable>), System.Collections.Generic.IEnumerable links = default(System.Collections.Generic.IEnumerable), System.Diagnostics.ActivityIdFormat idFormat = default(System.Diagnostics.ActivityIdFormat)) => throw null; + public ActivitySource(string name, string version = default(string)) => throw null; public void Dispose() => throw null; public bool HasListeners() => throw null; public string Name { get => throw null; } - public System.Diagnostics.Activity StartActivity(System.Diagnostics.ActivityKind kind, System.Diagnostics.ActivityContext parentContext = default(System.Diagnostics.ActivityContext), System.Collections.Generic.IEnumerable> tags = default(System.Collections.Generic.IEnumerable>), System.Collections.Generic.IEnumerable links = default(System.Collections.Generic.IEnumerable), System.DateTimeOffset startTime = default(System.DateTimeOffset), string name = default(string)) => throw null; public System.Diagnostics.Activity StartActivity(string name = default(string), System.Diagnostics.ActivityKind kind = default(System.Diagnostics.ActivityKind)) => throw null; public System.Diagnostics.Activity StartActivity(string name, System.Diagnostics.ActivityKind kind, System.Diagnostics.ActivityContext parentContext, System.Collections.Generic.IEnumerable> tags = default(System.Collections.Generic.IEnumerable>), System.Collections.Generic.IEnumerable links = default(System.Collections.Generic.IEnumerable), System.DateTimeOffset startTime = default(System.DateTimeOffset)) => throw null; public System.Diagnostics.Activity StartActivity(string name, System.Diagnostics.ActivityKind kind, string parentId, System.Collections.Generic.IEnumerable> tags = default(System.Collections.Generic.IEnumerable>), System.Collections.Generic.IEnumerable links = default(System.Collections.Generic.IEnumerable), System.DateTimeOffset startTime = default(System.DateTimeOffset)) => throw null; + public System.Diagnostics.Activity StartActivity(System.Diagnostics.ActivityKind kind, System.Diagnostics.ActivityContext parentContext = default(System.Diagnostics.ActivityContext), System.Collections.Generic.IEnumerable> tags = default(System.Collections.Generic.IEnumerable>), System.Collections.Generic.IEnumerable links = default(System.Collections.Generic.IEnumerable), System.DateTimeOffset startTime = default(System.DateTimeOffset), string name = default(string)) => throw null; public string Version { get => throw null; } } - public struct ActivitySpanId : System.IEquatable { - public static bool operator !=(System.Diagnostics.ActivitySpanId spanId1, System.Diagnostics.ActivitySpanId spandId2) => throw null; - public static bool operator ==(System.Diagnostics.ActivitySpanId spanId1, System.Diagnostics.ActivitySpanId spandId2) => throw null; - // Stub generator skipped constructor - public void CopyTo(System.Span destination) => throw null; - public static System.Diagnostics.ActivitySpanId CreateFromBytes(System.ReadOnlySpan idData) => throw null; - public static System.Diagnostics.ActivitySpanId CreateFromString(System.ReadOnlySpan idData) => throw null; - public static System.Diagnostics.ActivitySpanId CreateFromUtf8String(System.ReadOnlySpan idData) => throw null; + public void CopyTo(System.Span destination) => throw null; + public static System.Diagnostics.ActivitySpanId CreateFromBytes(System.ReadOnlySpan idData) => throw null; + public static System.Diagnostics.ActivitySpanId CreateFromString(System.ReadOnlySpan idData) => throw null; + public static System.Diagnostics.ActivitySpanId CreateFromUtf8String(System.ReadOnlySpan idData) => throw null; public static System.Diagnostics.ActivitySpanId CreateRandom() => throw null; public bool Equals(System.Diagnostics.ActivitySpanId spanId) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; + public static bool operator ==(System.Diagnostics.ActivitySpanId spanId1, System.Diagnostics.ActivitySpanId spandId2) => throw null; + public static bool operator !=(System.Diagnostics.ActivitySpanId spanId1, System.Diagnostics.ActivitySpanId spandId2) => throw null; public string ToHexString() => throw null; public override string ToString() => throw null; } - - public enum ActivityStatusCode : int + public enum ActivityStatusCode { - Error = 2, - Ok = 1, Unset = 0, + Ok = 1, + Error = 2, } - - public class ActivityTagsCollection : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class ActivityTagsCollection : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - public ActivityTagsCollection() => throw null; - public ActivityTagsCollection(System.Collections.Generic.IEnumerable> list) => throw null; - public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(string key, object value) => throw null; + public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Clear() => throw null; public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; public bool ContainsKey(string key) => throw null; public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } - public System.Diagnostics.ActivityTagsCollection.Enumerator GetEnumerator() => throw null; + public ActivityTagsCollection() => throw null; + public ActivityTagsCollection(System.Collections.Generic.IEnumerable> list) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + { + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Diagnostics.ActivityTagsCollection.Enumerator GetEnumerator() => throw null; public bool IsReadOnly { get => throw null; } - public object this[string key] { get => throw null; set => throw null; } public System.Collections.Generic.ICollection Keys { get => throw null; } - public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; public bool Remove(string key) => throw null; + public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public object this[string key] { get => throw null; set { } } public bool TryGetValue(string key, out object value) => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } } - [System.Flags] - public enum ActivityTraceFlags : int + public enum ActivityTraceFlags { None = 0, Recorded = 1, } - public struct ActivityTraceId : System.IEquatable { - public static bool operator !=(System.Diagnostics.ActivityTraceId traceId1, System.Diagnostics.ActivityTraceId traceId2) => throw null; - public static bool operator ==(System.Diagnostics.ActivityTraceId traceId1, System.Diagnostics.ActivityTraceId traceId2) => throw null; - // Stub generator skipped constructor - public void CopyTo(System.Span destination) => throw null; - public static System.Diagnostics.ActivityTraceId CreateFromBytes(System.ReadOnlySpan idData) => throw null; - public static System.Diagnostics.ActivityTraceId CreateFromString(System.ReadOnlySpan idData) => throw null; - public static System.Diagnostics.ActivityTraceId CreateFromUtf8String(System.ReadOnlySpan idData) => throw null; + public void CopyTo(System.Span destination) => throw null; + public static System.Diagnostics.ActivityTraceId CreateFromBytes(System.ReadOnlySpan idData) => throw null; + public static System.Diagnostics.ActivityTraceId CreateFromString(System.ReadOnlySpan idData) => throw null; + public static System.Diagnostics.ActivityTraceId CreateFromUtf8String(System.ReadOnlySpan idData) => throw null; public static System.Diagnostics.ActivityTraceId CreateRandom() => throw null; public bool Equals(System.Diagnostics.ActivityTraceId traceId) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; + public static bool operator ==(System.Diagnostics.ActivityTraceId traceId1, System.Diagnostics.ActivityTraceId traceId2) => throw null; + public static bool operator !=(System.Diagnostics.ActivityTraceId traceId1, System.Diagnostics.ActivityTraceId traceId2) => throw null; public string ToHexString() => throw null; public override string ToString() => throw null; } - public class DiagnosticListener : System.Diagnostics.DiagnosticSource, System.IDisposable, System.IObservable> { public static System.IObservable AllListeners { get => throw null; } @@ -287,12 +257,11 @@ namespace System public override void OnActivityImport(System.Diagnostics.Activity activity, object payload) => throw null; public virtual System.IDisposable Subscribe(System.IObserver> observer) => throw null; public virtual System.IDisposable Subscribe(System.IObserver> observer, System.Func isEnabled) => throw null; - public virtual System.IDisposable Subscribe(System.IObserver> observer, System.Func isEnabled, System.Action onActivityImport = default(System.Action), System.Action onActivityExport = default(System.Action)) => throw null; public virtual System.IDisposable Subscribe(System.IObserver> observer, System.Predicate isEnabled) => throw null; + public virtual System.IDisposable Subscribe(System.IObserver> observer, System.Func isEnabled, System.Action onActivityImport = default(System.Action), System.Action onActivityExport = default(System.Action)) => throw null; public override string ToString() => throw null; public override void Write(string name, object value) => throw null; } - public abstract class DiagnosticSource { protected DiagnosticSource() => throw null; @@ -304,98 +273,55 @@ namespace System public void StopActivity(System.Diagnostics.Activity activity, object args) => throw null; public abstract void Write(string name, object value); } - public abstract class DistributedContextPropagator { - public delegate void PropagatorGetterCallback(object carrier, string fieldName, out string fieldValue, out System.Collections.Generic.IEnumerable fieldValues); - - - public delegate void PropagatorSetterCallback(object carrier, string fieldName, string fieldValue); - - public static System.Diagnostics.DistributedContextPropagator CreateDefaultPropagator() => throw null; public static System.Diagnostics.DistributedContextPropagator CreateNoOutputPropagator() => throw null; public static System.Diagnostics.DistributedContextPropagator CreatePassThroughPropagator() => throw null; - public static System.Diagnostics.DistributedContextPropagator Current { get => throw null; set => throw null; } protected DistributedContextPropagator() => throw null; + public static System.Diagnostics.DistributedContextPropagator Current { get => throw null; set { } } public abstract System.Collections.Generic.IEnumerable> ExtractBaggage(object carrier, System.Diagnostics.DistributedContextPropagator.PropagatorGetterCallback getter); public abstract void ExtractTraceIdAndState(object carrier, System.Diagnostics.DistributedContextPropagator.PropagatorGetterCallback getter, out string traceId, out string traceState); public abstract System.Collections.Generic.IReadOnlyCollection Fields { get; } public abstract void Inject(System.Diagnostics.Activity activity, object carrier, System.Diagnostics.DistributedContextPropagator.PropagatorSetterCallback setter); + public delegate void PropagatorGetterCallback(object carrier, string fieldName, out string fieldValue, out System.Collections.Generic.IEnumerable fieldValues); + public delegate void PropagatorSetterCallback(object carrier, string fieldName, string fieldValue); } - - public delegate System.Diagnostics.ActivitySamplingResult SampleActivity(ref System.Diagnostics.ActivityCreationOptions options); - - public struct TagList : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IList>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList>, System.Collections.IEnumerable - { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - - public void Add(System.Collections.Generic.KeyValuePair tag) => throw null; - public void Add(string key, object value) => throw null; - public void Clear() => throw null; - public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; - public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; - public void CopyTo(System.Span> tags) => throw null; - public int Count { get => throw null; } - public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public int IndexOf(System.Collections.Generic.KeyValuePair item) => throw null; - public void Insert(int index, System.Collections.Generic.KeyValuePair item) => throw null; - public bool IsReadOnly { get => throw null; } - public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; set => throw null; } - public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; - public void RemoveAt(int index) => throw null; - // Stub generator skipped constructor - public TagList(System.ReadOnlySpan> tagList) => throw null; - } - namespace Metrics { - public class Counter : System.Diagnostics.Metrics.Instrument where T : struct + public sealed class Counter : System.Diagnostics.Metrics.Instrument where T : struct { public void Add(T delta) => throw null; public void Add(T delta, System.Collections.Generic.KeyValuePair tag) => throw null; public void Add(T delta, System.Collections.Generic.KeyValuePair tag1, System.Collections.Generic.KeyValuePair tag2) => throw null; public void Add(T delta, System.Collections.Generic.KeyValuePair tag1, System.Collections.Generic.KeyValuePair tag2, System.Collections.Generic.KeyValuePair tag3) => throw null; public void Add(T delta, System.ReadOnlySpan> tags) => throw null; - public void Add(T delta, System.Diagnostics.TagList tagList) => throw null; public void Add(T delta, params System.Collections.Generic.KeyValuePair[] tags) => throw null; - internal Counter(System.Diagnostics.Metrics.Meter meter, string name, string unit, string description) : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) => throw null; + public void Add(T delta, in System.Diagnostics.TagList tagList) => throw null; + internal Counter() : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) { } } - - public class Histogram : System.Diagnostics.Metrics.Instrument where T : struct + public sealed class Histogram : System.Diagnostics.Metrics.Instrument where T : struct { - internal Histogram(System.Diagnostics.Metrics.Meter meter, string name, string unit, string description) : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) => throw null; public void Record(T value) => throw null; public void Record(T value, System.Collections.Generic.KeyValuePair tag) => throw null; public void Record(T value, System.Collections.Generic.KeyValuePair tag1, System.Collections.Generic.KeyValuePair tag2) => throw null; public void Record(T value, System.Collections.Generic.KeyValuePair tag1, System.Collections.Generic.KeyValuePair tag2, System.Collections.Generic.KeyValuePair tag3) => throw null; + public void Record(T value, in System.Diagnostics.TagList tagList) => throw null; public void Record(T value, System.ReadOnlySpan> tags) => throw null; - public void Record(T value, System.Diagnostics.TagList tagList) => throw null; public void Record(T value, params System.Collections.Generic.KeyValuePair[] tags) => throw null; + internal Histogram() : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) { } } - public abstract class Instrument { + protected Instrument(System.Diagnostics.Metrics.Meter meter, string name, string unit, string description) => throw null; public string Description { get => throw null; } public bool Enabled { get => throw null; } - protected Instrument(System.Diagnostics.Metrics.Meter meter, string name, string unit, string description) => throw null; public virtual bool IsObservable { get => throw null; } public System.Diagnostics.Metrics.Meter Meter { get => throw null; } public string Name { get => throw null; } protected void Publish() => throw null; public string Unit { get => throw null; } } - public abstract class Instrument : System.Diagnostics.Metrics.Instrument where T : struct { protected Instrument(System.Diagnostics.Metrics.Meter meter, string name, string unit, string description) : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) => throw null; @@ -403,94 +329,111 @@ namespace System protected void RecordMeasurement(T measurement, System.Collections.Generic.KeyValuePair tag) => throw null; protected void RecordMeasurement(T measurement, System.Collections.Generic.KeyValuePair tag1, System.Collections.Generic.KeyValuePair tag2) => throw null; protected void RecordMeasurement(T measurement, System.Collections.Generic.KeyValuePair tag1, System.Collections.Generic.KeyValuePair tag2, System.Collections.Generic.KeyValuePair tag3) => throw null; + protected void RecordMeasurement(T measurement, in System.Diagnostics.TagList tagList) => throw null; protected void RecordMeasurement(T measurement, System.ReadOnlySpan> tags) => throw null; - protected void RecordMeasurement(T measurement, System.Diagnostics.TagList tagList) => throw null; } - public struct Measurement where T : struct { - // Stub generator skipped constructor public Measurement(T value) => throw null; public Measurement(T value, System.Collections.Generic.IEnumerable> tags) => throw null; - public Measurement(T value, System.ReadOnlySpan> tags) => throw null; public Measurement(T value, params System.Collections.Generic.KeyValuePair[] tags) => throw null; + public Measurement(T value, System.ReadOnlySpan> tags) => throw null; public System.ReadOnlySpan> Tags { get => throw null; } public T Value { get => throw null; } } - public delegate void MeasurementCallback(System.Diagnostics.Metrics.Instrument instrument, T measurement, System.ReadOnlySpan> tags, object state); - public class Meter : System.IDisposable { public System.Diagnostics.Metrics.Counter CreateCounter(string name, string unit = default(string), string description = default(string)) where T : struct => throw null; public System.Diagnostics.Metrics.Histogram CreateHistogram(string name, string unit = default(string), string description = default(string)) where T : struct => throw null; - public System.Diagnostics.Metrics.ObservableCounter CreateObservableCounter(string name, System.Func>> observeValues, string unit = default(string), string description = default(string)) where T : struct => throw null; - public System.Diagnostics.Metrics.ObservableCounter CreateObservableCounter(string name, System.Func> observeValue, string unit = default(string), string description = default(string)) where T : struct => throw null; public System.Diagnostics.Metrics.ObservableCounter CreateObservableCounter(string name, System.Func observeValue, string unit = default(string), string description = default(string)) where T : struct => throw null; - public System.Diagnostics.Metrics.ObservableGauge CreateObservableGauge(string name, System.Func>> observeValues, string unit = default(string), string description = default(string)) where T : struct => throw null; - public System.Diagnostics.Metrics.ObservableGauge CreateObservableGauge(string name, System.Func> observeValue, string unit = default(string), string description = default(string)) where T : struct => throw null; + public System.Diagnostics.Metrics.ObservableCounter CreateObservableCounter(string name, System.Func> observeValue, string unit = default(string), string description = default(string)) where T : struct => throw null; + public System.Diagnostics.Metrics.ObservableCounter CreateObservableCounter(string name, System.Func>> observeValues, string unit = default(string), string description = default(string)) where T : struct => throw null; public System.Diagnostics.Metrics.ObservableGauge CreateObservableGauge(string name, System.Func observeValue, string unit = default(string), string description = default(string)) where T : struct => throw null; - public System.Diagnostics.Metrics.ObservableUpDownCounter CreateObservableUpDownCounter(string name, System.Func>> observeValues, string unit = default(string), string description = default(string)) where T : struct => throw null; - public System.Diagnostics.Metrics.ObservableUpDownCounter CreateObservableUpDownCounter(string name, System.Func> observeValue, string unit = default(string), string description = default(string)) where T : struct => throw null; + public System.Diagnostics.Metrics.ObservableGauge CreateObservableGauge(string name, System.Func> observeValue, string unit = default(string), string description = default(string)) where T : struct => throw null; + public System.Diagnostics.Metrics.ObservableGauge CreateObservableGauge(string name, System.Func>> observeValues, string unit = default(string), string description = default(string)) where T : struct => throw null; public System.Diagnostics.Metrics.ObservableUpDownCounter CreateObservableUpDownCounter(string name, System.Func observeValue, string unit = default(string), string description = default(string)) where T : struct => throw null; + public System.Diagnostics.Metrics.ObservableUpDownCounter CreateObservableUpDownCounter(string name, System.Func> observeValue, string unit = default(string), string description = default(string)) where T : struct => throw null; + public System.Diagnostics.Metrics.ObservableUpDownCounter CreateObservableUpDownCounter(string name, System.Func>> observeValues, string unit = default(string), string description = default(string)) where T : struct => throw null; public System.Diagnostics.Metrics.UpDownCounter CreateUpDownCounter(string name, string unit = default(string), string description = default(string)) where T : struct => throw null; - public void Dispose() => throw null; public Meter(string name) => throw null; public Meter(string name, string version) => throw null; + public void Dispose() => throw null; public string Name { get => throw null; } public string Version { get => throw null; } } - - public class MeterListener : System.IDisposable + public sealed class MeterListener : System.IDisposable { + public MeterListener() => throw null; public object DisableMeasurementEvents(System.Diagnostics.Metrics.Instrument instrument) => throw null; public void Dispose() => throw null; public void EnableMeasurementEvents(System.Diagnostics.Metrics.Instrument instrument, object state = default(object)) => throw null; - public System.Action InstrumentPublished { get => throw null; set => throw null; } - public System.Action MeasurementsCompleted { get => throw null; set => throw null; } - public MeterListener() => throw null; + public System.Action InstrumentPublished { get => throw null; set { } } + public System.Action MeasurementsCompleted { get => throw null; set { } } public void RecordObservableInstruments() => throw null; public void SetMeasurementEventCallback(System.Diagnostics.Metrics.MeasurementCallback measurementCallback) where T : struct => throw null; public void Start() => throw null; } - - public class ObservableCounter : System.Diagnostics.Metrics.ObservableInstrument where T : struct + public sealed class ObservableCounter : System.Diagnostics.Metrics.ObservableInstrument where T : struct { - internal ObservableCounter(System.Diagnostics.Metrics.Meter meter, string name, string unit, string description) : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) => throw null; protected override System.Collections.Generic.IEnumerable> Observe() => throw null; + internal ObservableCounter() : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) { } } - - public class ObservableGauge : System.Diagnostics.Metrics.ObservableInstrument where T : struct + public sealed class ObservableGauge : System.Diagnostics.Metrics.ObservableInstrument where T : struct { - internal ObservableGauge(System.Diagnostics.Metrics.Meter meter, string name, string unit, string description) : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) => throw null; protected override System.Collections.Generic.IEnumerable> Observe() => throw null; + internal ObservableGauge() : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) { } } - public abstract class ObservableInstrument : System.Diagnostics.Metrics.Instrument where T : struct { - public override bool IsObservable { get => throw null; } protected ObservableInstrument(System.Diagnostics.Metrics.Meter meter, string name, string unit, string description) : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) => throw null; + public override bool IsObservable { get => throw null; } protected abstract System.Collections.Generic.IEnumerable> Observe(); } - - public class ObservableUpDownCounter : System.Diagnostics.Metrics.ObservableInstrument where T : struct + public sealed class ObservableUpDownCounter : System.Diagnostics.Metrics.ObservableInstrument where T : struct { - internal ObservableUpDownCounter(System.Diagnostics.Metrics.Meter meter, string name, string unit, string description) : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) => throw null; protected override System.Collections.Generic.IEnumerable> Observe() => throw null; + internal ObservableUpDownCounter() : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) { } } - - public class UpDownCounter : System.Diagnostics.Metrics.Instrument where T : struct + public sealed class UpDownCounter : System.Diagnostics.Metrics.Instrument where T : struct { public void Add(T delta) => throw null; public void Add(T delta, System.Collections.Generic.KeyValuePair tag) => throw null; public void Add(T delta, System.Collections.Generic.KeyValuePair tag1, System.Collections.Generic.KeyValuePair tag2) => throw null; public void Add(T delta, System.Collections.Generic.KeyValuePair tag1, System.Collections.Generic.KeyValuePair tag2, System.Collections.Generic.KeyValuePair tag3) => throw null; public void Add(T delta, System.ReadOnlySpan> tags) => throw null; - public void Add(T delta, System.Diagnostics.TagList tagList) => throw null; public void Add(T delta, params System.Collections.Generic.KeyValuePair[] tags) => throw null; - internal UpDownCounter(System.Diagnostics.Metrics.Meter meter, string name, string unit, string description) : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) => throw null; + public void Add(T delta, in System.Diagnostics.TagList tagList) => throw null; + internal UpDownCounter() : base(default(System.Diagnostics.Metrics.Meter), default(string), default(string), default(string)) { } } - + } + public delegate System.Diagnostics.ActivitySamplingResult SampleActivity(ref System.Diagnostics.ActivityCreationOptions options); + public struct TagList : System.Collections.Generic.IList>, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyList>, System.Collections.Generic.IReadOnlyCollection> + { + public void Add(string key, object value) => throw null; + public void Add(System.Collections.Generic.KeyValuePair tag) => throw null; + public void Clear() => throw null; + public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; + public void CopyTo(System.Span> tags) => throw null; + public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + public int Count { get => throw null; } + public TagList(System.ReadOnlySpan> tagList) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + { + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public int IndexOf(System.Collections.Generic.KeyValuePair item) => throw null; + public void Insert(int index, System.Collections.Generic.KeyValuePair item) => throw null; + public bool IsReadOnly { get => throw null; } + public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public void RemoveAt(int index) => throw null; + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; set { } } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.FileVersionInfo.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.FileVersionInfo.cs index 91af358083c..1a4d29641f3 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.FileVersionInfo.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.FileVersionInfo.cs @@ -1,11 +1,10 @@ // This file contains auto-generated code. // Generated from `System.Diagnostics.FileVersionInfo, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Diagnostics { - public class FileVersionInfo + public sealed class FileVersionInfo { public string Comments { get => throw null; } public string CompanyName { get => throw null; } @@ -37,6 +36,5 @@ namespace System public string SpecialBuild { get => throw null; } public override string ToString() => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Process.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Process.cs index 542814f5e97..eb20e488b3a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Process.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Process.cs @@ -1,19 +1,17 @@ // This file contains auto-generated code. // Generated from `System.Diagnostics.Process, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace Microsoft { namespace Win32 { namespace SafeHandles { - public class SafeProcessHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid + public sealed class SafeProcessHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { - protected override bool ReleaseHandle() => throw null; public SafeProcessHandle() : base(default(bool)) => throw null; - public SafeProcessHandle(System.IntPtr existingHandle, bool ownsHandle) : base(default(bool)) => throw null; + public SafeProcessHandle(nint existingHandle, bool ownsHandle) : base(default(bool)) => throw null; + protected override bool ReleaseHandle() => throw null; } - } } } @@ -25,15 +23,12 @@ namespace System { public string Data { get => throw null; } } - public delegate void DataReceivedEventHandler(object sender, System.Diagnostics.DataReceivedEventArgs e); - public class MonitoringDescriptionAttribute : System.ComponentModel.DescriptionAttribute { - public override string Description { get => throw null; } public MonitoringDescriptionAttribute(string description) => throw null; + public override string Description { get => throw null; } } - public class Process : System.ComponentModel.Component, System.IDisposable { public int BasePriority { get => throw null; } @@ -43,13 +38,14 @@ namespace System public void CancelOutputRead() => throw null; public void Close() => throw null; public bool CloseMainWindow() => throw null; + public Process() => throw null; protected override void Dispose(bool disposing) => throw null; - public bool EnableRaisingEvents { get => throw null; set => throw null; } + public bool EnableRaisingEvents { get => throw null; set { } } public static void EnterDebugMode() => throw null; - public event System.Diagnostics.DataReceivedEventHandler ErrorDataReceived; + public event System.Diagnostics.DataReceivedEventHandler ErrorDataReceived { add { } remove { } } public int ExitCode { get => throw null; } + public event System.EventHandler Exited { add { } remove { } } public System.DateTime ExitTime { get => throw null; } - public event System.EventHandler Exited; public static System.Diagnostics.Process GetCurrentProcess() => throw null; public static System.Diagnostics.Process GetProcessById(int processId) => throw null; public static System.Diagnostics.Process GetProcessById(int processId, string machineName) => throw null; @@ -57,7 +53,7 @@ namespace System public static System.Diagnostics.Process[] GetProcesses(string machineName) => throw null; public static System.Diagnostics.Process[] GetProcessesByName(string processName) => throw null; public static System.Diagnostics.Process[] GetProcessesByName(string processName, string machineName) => throw null; - public System.IntPtr Handle { get => throw null; } + public nint Handle { get => throw null; } public int HandleCount { get => throw null; } public bool HasExited { get => throw null; } public int Id { get => throw null; } @@ -66,33 +62,32 @@ namespace System public static void LeaveDebugMode() => throw null; public string MachineName { get => throw null; } public System.Diagnostics.ProcessModule MainModule { get => throw null; } - public System.IntPtr MainWindowHandle { get => throw null; } + public nint MainWindowHandle { get => throw null; } public string MainWindowTitle { get => throw null; } - public System.IntPtr MaxWorkingSet { get => throw null; set => throw null; } - public System.IntPtr MinWorkingSet { get => throw null; set => throw null; } + public nint MaxWorkingSet { get => throw null; set { } } + public nint MinWorkingSet { get => throw null; set { } } public System.Diagnostics.ProcessModuleCollection Modules { get => throw null; } public int NonpagedSystemMemorySize { get => throw null; } - public System.Int64 NonpagedSystemMemorySize64 { get => throw null; } + public long NonpagedSystemMemorySize64 { get => throw null; } protected void OnExited() => throw null; - public event System.Diagnostics.DataReceivedEventHandler OutputDataReceived; + public event System.Diagnostics.DataReceivedEventHandler OutputDataReceived { add { } remove { } } public int PagedMemorySize { get => throw null; } - public System.Int64 PagedMemorySize64 { get => throw null; } + public long PagedMemorySize64 { get => throw null; } public int PagedSystemMemorySize { get => throw null; } - public System.Int64 PagedSystemMemorySize64 { get => throw null; } + public long PagedSystemMemorySize64 { get => throw null; } public int PeakPagedMemorySize { get => throw null; } - public System.Int64 PeakPagedMemorySize64 { get => throw null; } + public long PeakPagedMemorySize64 { get => throw null; } public int PeakVirtualMemorySize { get => throw null; } - public System.Int64 PeakVirtualMemorySize64 { get => throw null; } + public long PeakVirtualMemorySize64 { get => throw null; } public int PeakWorkingSet { get => throw null; } - public System.Int64 PeakWorkingSet64 { get => throw null; } - public bool PriorityBoostEnabled { get => throw null; set => throw null; } - public System.Diagnostics.ProcessPriorityClass PriorityClass { get => throw null; set => throw null; } + public long PeakWorkingSet64 { get => throw null; } + public bool PriorityBoostEnabled { get => throw null; set { } } + public System.Diagnostics.ProcessPriorityClass PriorityClass { get => throw null; set { } } public int PrivateMemorySize { get => throw null; } - public System.Int64 PrivateMemorySize64 { get => throw null; } + public long PrivateMemorySize64 { get => throw null; } public System.TimeSpan PrivilegedProcessorTime { get => throw null; } - public Process() => throw null; public string ProcessName { get => throw null; } - public System.IntPtr ProcessorAffinity { get => throw null; set => throw null; } + public nint ProcessorAffinity { get => throw null; set { } } public void Refresh() => throw null; public bool Responding { get => throw null; } public Microsoft.Win32.SafeHandles.SafeProcessHandle SafeHandle { get => throw null; } @@ -103,172 +98,161 @@ namespace System public bool Start() => throw null; public static System.Diagnostics.Process Start(System.Diagnostics.ProcessStartInfo startInfo) => throw null; public static System.Diagnostics.Process Start(string fileName) => throw null; - public static System.Diagnostics.Process Start(string fileName, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Diagnostics.Process Start(string fileName, string arguments) => throw null; + public static System.Diagnostics.Process Start(string fileName, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Diagnostics.Process Start(string fileName, string userName, System.Security.SecureString password, string domain) => throw null; public static System.Diagnostics.Process Start(string fileName, string arguments, string userName, System.Security.SecureString password, string domain) => throw null; - public System.Diagnostics.ProcessStartInfo StartInfo { get => throw null; set => throw null; } + public System.Diagnostics.ProcessStartInfo StartInfo { get => throw null; set { } } public System.DateTime StartTime { get => throw null; } - public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get => throw null; set => throw null; } + public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get => throw null; set { } } public System.Diagnostics.ProcessThreadCollection Threads { get => throw null; } public override string ToString() => throw null; public System.TimeSpan TotalProcessorTime { get => throw null; } public System.TimeSpan UserProcessorTime { get => throw null; } public int VirtualMemorySize { get => throw null; } - public System.Int64 VirtualMemorySize64 { get => throw null; } + public long VirtualMemorySize64 { get => throw null; } public void WaitForExit() => throw null; - public bool WaitForExit(System.TimeSpan timeout) => throw null; public bool WaitForExit(int milliseconds) => throw null; + public bool WaitForExit(System.TimeSpan timeout) => throw null; public System.Threading.Tasks.Task WaitForExitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public bool WaitForInputIdle() => throw null; - public bool WaitForInputIdle(System.TimeSpan timeout) => throw null; public bool WaitForInputIdle(int milliseconds) => throw null; + public bool WaitForInputIdle(System.TimeSpan timeout) => throw null; public int WorkingSet { get => throw null; } - public System.Int64 WorkingSet64 { get => throw null; } + public long WorkingSet64 { get => throw null; } } - public class ProcessModule : System.ComponentModel.Component { - public System.IntPtr BaseAddress { get => throw null; } - public System.IntPtr EntryPointAddress { get => throw null; } + public nint BaseAddress { get => throw null; } + public nint EntryPointAddress { get => throw null; } public string FileName { get => throw null; } public System.Diagnostics.FileVersionInfo FileVersionInfo { get => throw null; } public int ModuleMemorySize { get => throw null; } public string ModuleName { get => throw null; } public override string ToString() => throw null; } - public class ProcessModuleCollection : System.Collections.ReadOnlyCollectionBase { public bool Contains(System.Diagnostics.ProcessModule module) => throw null; public void CopyTo(System.Diagnostics.ProcessModule[] array, int index) => throw null; - public int IndexOf(System.Diagnostics.ProcessModule module) => throw null; - public System.Diagnostics.ProcessModule this[int index] { get => throw null; } protected ProcessModuleCollection() => throw null; public ProcessModuleCollection(System.Diagnostics.ProcessModule[] processModules) => throw null; + public int IndexOf(System.Diagnostics.ProcessModule module) => throw null; + public System.Diagnostics.ProcessModule this[int index] { get => throw null; } } - - public enum ProcessPriorityClass : int + public enum ProcessPriorityClass { - AboveNormal = 32768, - BelowNormal = 16384, - High = 128, - Idle = 64, Normal = 32, + Idle = 64, + High = 128, RealTime = 256, + BelowNormal = 16384, + AboveNormal = 32768, } - - public class ProcessStartInfo + public sealed class ProcessStartInfo { public System.Collections.ObjectModel.Collection ArgumentList { get => throw null; } - public string Arguments { get => throw null; set => throw null; } - public bool CreateNoWindow { get => throw null; set => throw null; } - public string Domain { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Environment { get => throw null; } - public System.Collections.Specialized.StringDictionary EnvironmentVariables { get => throw null; } - public bool ErrorDialog { get => throw null; set => throw null; } - public System.IntPtr ErrorDialogParentHandle { get => throw null; set => throw null; } - public string FileName { get => throw null; set => throw null; } - public bool LoadUserProfile { get => throw null; set => throw null; } - public System.Security.SecureString Password { get => throw null; set => throw null; } - public string PasswordInClearText { get => throw null; set => throw null; } + public string Arguments { get => throw null; set { } } + public bool CreateNoWindow { get => throw null; set { } } public ProcessStartInfo() => throw null; public ProcessStartInfo(string fileName) => throw null; public ProcessStartInfo(string fileName, string arguments) => throw null; - public bool RedirectStandardError { get => throw null; set => throw null; } - public bool RedirectStandardInput { get => throw null; set => throw null; } - public bool RedirectStandardOutput { get => throw null; set => throw null; } - public System.Text.Encoding StandardErrorEncoding { get => throw null; set => throw null; } - public System.Text.Encoding StandardInputEncoding { get => throw null; set => throw null; } - public System.Text.Encoding StandardOutputEncoding { get => throw null; set => throw null; } - public bool UseShellExecute { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - public string Verb { get => throw null; set => throw null; } + public string Domain { get => throw null; set { } } + public System.Collections.Generic.IDictionary Environment { get => throw null; } + public System.Collections.Specialized.StringDictionary EnvironmentVariables { get => throw null; } + public bool ErrorDialog { get => throw null; set { } } + public nint ErrorDialogParentHandle { get => throw null; set { } } + public string FileName { get => throw null; set { } } + public bool LoadUserProfile { get => throw null; set { } } + public System.Security.SecureString Password { get => throw null; set { } } + public string PasswordInClearText { get => throw null; set { } } + public bool RedirectStandardError { get => throw null; set { } } + public bool RedirectStandardInput { get => throw null; set { } } + public bool RedirectStandardOutput { get => throw null; set { } } + public System.Text.Encoding StandardErrorEncoding { get => throw null; set { } } + public System.Text.Encoding StandardInputEncoding { get => throw null; set { } } + public System.Text.Encoding StandardOutputEncoding { get => throw null; set { } } + public string UserName { get => throw null; set { } } + public bool UseShellExecute { get => throw null; set { } } + public string Verb { get => throw null; set { } } public string[] Verbs { get => throw null; } - public System.Diagnostics.ProcessWindowStyle WindowStyle { get => throw null; set => throw null; } - public string WorkingDirectory { get => throw null; set => throw null; } + public System.Diagnostics.ProcessWindowStyle WindowStyle { get => throw null; set { } } + public string WorkingDirectory { get => throw null; set { } } } - public class ProcessThread : System.ComponentModel.Component { public int BasePriority { get => throw null; } public int CurrentPriority { get => throw null; } public int Id { get => throw null; } - public int IdealProcessor { set => throw null; } - public bool PriorityBoostEnabled { get => throw null; set => throw null; } - public System.Diagnostics.ThreadPriorityLevel PriorityLevel { get => throw null; set => throw null; } + public int IdealProcessor { set { } } + public bool PriorityBoostEnabled { get => throw null; set { } } + public System.Diagnostics.ThreadPriorityLevel PriorityLevel { get => throw null; set { } } public System.TimeSpan PrivilegedProcessorTime { get => throw null; } - public System.IntPtr ProcessorAffinity { set => throw null; } + public nint ProcessorAffinity { set { } } public void ResetIdealProcessor() => throw null; - public System.IntPtr StartAddress { get => throw null; } + public nint StartAddress { get => throw null; } public System.DateTime StartTime { get => throw null; } public System.Diagnostics.ThreadState ThreadState { get => throw null; } public System.TimeSpan TotalProcessorTime { get => throw null; } public System.TimeSpan UserProcessorTime { get => throw null; } public System.Diagnostics.ThreadWaitReason WaitReason { get => throw null; } } - public class ProcessThreadCollection : System.Collections.ReadOnlyCollectionBase { public int Add(System.Diagnostics.ProcessThread thread) => throw null; public bool Contains(System.Diagnostics.ProcessThread thread) => throw null; public void CopyTo(System.Diagnostics.ProcessThread[] array, int index) => throw null; - public int IndexOf(System.Diagnostics.ProcessThread thread) => throw null; - public void Insert(int index, System.Diagnostics.ProcessThread thread) => throw null; - public System.Diagnostics.ProcessThread this[int index] { get => throw null; } protected ProcessThreadCollection() => throw null; public ProcessThreadCollection(System.Diagnostics.ProcessThread[] processThreads) => throw null; + public int IndexOf(System.Diagnostics.ProcessThread thread) => throw null; + public void Insert(int index, System.Diagnostics.ProcessThread thread) => throw null; public void Remove(System.Diagnostics.ProcessThread thread) => throw null; + public System.Diagnostics.ProcessThread this[int index] { get => throw null; } } - - public enum ProcessWindowStyle : int + public enum ProcessWindowStyle { - Hidden = 1, - Maximized = 3, - Minimized = 2, Normal = 0, + Hidden = 1, + Minimized = 2, + Maximized = 3, } - - public enum ThreadPriorityLevel : int + public enum ThreadPriorityLevel { - AboveNormal = 1, - BelowNormal = -1, - Highest = 2, Idle = -15, Lowest = -2, + BelowNormal = -1, Normal = 0, + AboveNormal = 1, + Highest = 2, TimeCritical = 15, } - - public enum ThreadState : int + public enum ThreadState { Initialized = 0, Ready = 1, Running = 2, Standby = 3, Terminated = 4, + Wait = 5, Transition = 6, Unknown = 7, - Wait = 5, } - - public enum ThreadWaitReason : int + public enum ThreadWaitReason { - EventPairHigh = 7, - EventPairLow = 8, - ExecutionDelay = 4, Executive = 0, FreePage = 1, + PageIn = 2, + SystemAllocation = 3, + ExecutionDelay = 4, + Suspended = 5, + UserRequest = 6, + EventPairHigh = 7, + EventPairLow = 8, LpcReceive = 9, LpcReply = 10, - PageIn = 2, - PageOut = 12, - Suspended = 5, - SystemAllocation = 3, - Unknown = 13, - UserRequest = 6, VirtualMemory = 11, + PageOut = 12, + Unknown = 13, } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs index 6853f30d77e..07649dc7b6d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs @@ -1,88 +1,80 @@ // This file contains auto-generated code. // Generated from `System.Diagnostics.StackTrace, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Diagnostics { public class StackFrame { - public virtual int GetFileColumnNumber() => throw null; - public virtual int GetFileLineNumber() => throw null; - public virtual string GetFileName() => throw null; - public virtual int GetILOffset() => throw null; - public virtual System.Reflection.MethodBase GetMethod() => throw null; - public virtual int GetNativeOffset() => throw null; - public const int OFFSET_UNKNOWN = default; public StackFrame() => throw null; public StackFrame(bool needFileInfo) => throw null; public StackFrame(int skipFrames) => throw null; public StackFrame(int skipFrames, bool needFileInfo) => throw null; public StackFrame(string fileName, int lineNumber) => throw null; public StackFrame(string fileName, int lineNumber, int colNumber) => throw null; + public virtual int GetFileColumnNumber() => throw null; + public virtual int GetFileLineNumber() => throw null; + public virtual string GetFileName() => throw null; + public virtual int GetILOffset() => throw null; + public virtual System.Reflection.MethodBase GetMethod() => throw null; + public virtual int GetNativeOffset() => throw null; + public static int OFFSET_UNKNOWN; public override string ToString() => throw null; } - - public static class StackFrameExtensions + public static partial class StackFrameExtensions { - public static System.IntPtr GetNativeIP(this System.Diagnostics.StackFrame stackFrame) => throw null; - public static System.IntPtr GetNativeImageBase(this System.Diagnostics.StackFrame stackFrame) => throw null; + public static nint GetNativeImageBase(this System.Diagnostics.StackFrame stackFrame) => throw null; + public static nint GetNativeIP(this System.Diagnostics.StackFrame stackFrame) => throw null; public static bool HasILOffset(this System.Diagnostics.StackFrame stackFrame) => throw null; public static bool HasMethod(this System.Diagnostics.StackFrame stackFrame) => throw null; public static bool HasNativeImage(this System.Diagnostics.StackFrame stackFrame) => throw null; public static bool HasSource(this System.Diagnostics.StackFrame stackFrame) => throw null; } - public class StackTrace { - public virtual int FrameCount { get => throw null; } - public virtual System.Diagnostics.StackFrame GetFrame(int index) => throw null; - public virtual System.Diagnostics.StackFrame[] GetFrames() => throw null; - public const int METHODS_TO_SKIP = default; public StackTrace() => throw null; + public StackTrace(bool fNeedFileInfo) => throw null; + public StackTrace(System.Diagnostics.StackFrame frame) => throw null; public StackTrace(System.Exception e) => throw null; public StackTrace(System.Exception e, bool fNeedFileInfo) => throw null; public StackTrace(System.Exception e, int skipFrames) => throw null; public StackTrace(System.Exception e, int skipFrames, bool fNeedFileInfo) => throw null; - public StackTrace(System.Diagnostics.StackFrame frame) => throw null; - public StackTrace(bool fNeedFileInfo) => throw null; public StackTrace(int skipFrames) => throw null; public StackTrace(int skipFrames, bool fNeedFileInfo) => throw null; + public virtual int FrameCount { get => throw null; } + public virtual System.Diagnostics.StackFrame GetFrame(int index) => throw null; + public virtual System.Diagnostics.StackFrame[] GetFrames() => throw null; + public static int METHODS_TO_SKIP; public override string ToString() => throw null; } - namespace SymbolStore { public interface ISymbolBinder { System.Diagnostics.SymbolStore.ISymbolReader GetReader(int importer, string filename, string searchPath); } - public interface ISymbolBinder1 { - System.Diagnostics.SymbolStore.ISymbolReader GetReader(System.IntPtr importer, string filename, string searchPath); + System.Diagnostics.SymbolStore.ISymbolReader GetReader(nint importer, string filename, string searchPath); } - public interface ISymbolDocument { System.Guid CheckSumAlgorithmId { get; } System.Guid DocumentType { get; } int FindClosestLine(int line); - System.Byte[] GetCheckSum(); - System.Byte[] GetSourceRange(int startLine, int startColumn, int endLine, int endColumn); + byte[] GetCheckSum(); + byte[] GetSourceRange(int startLine, int startColumn, int endLine, int endColumn); bool HasEmbeddedSource { get; } System.Guid Language { get; } System.Guid LanguageVendor { get; } int SourceLength { get; } string URL { get; } } - public interface ISymbolDocumentWriter { - void SetCheckSum(System.Guid algorithmId, System.Byte[] checkSum); - void SetSource(System.Byte[] source); + void SetCheckSum(System.Guid algorithmId, byte[] checkSum); + void SetSource(byte[] source); } - public interface ISymbolMethod { System.Diagnostics.SymbolStore.ISymbolNamespace GetNamespace(); @@ -96,14 +88,12 @@ namespace System int SequencePointCount { get; } System.Diagnostics.SymbolStore.SymbolToken Token { get; } } - public interface ISymbolNamespace { System.Diagnostics.SymbolStore.ISymbolNamespace[] GetNamespaces(); System.Diagnostics.SymbolStore.ISymbolVariable[] GetVariables(); string Name { get; } } - public interface ISymbolReader { System.Diagnostics.SymbolStore.ISymbolDocument GetDocument(string url, System.Guid language, System.Guid languageVendor, System.Guid documentType); @@ -113,11 +103,10 @@ namespace System System.Diagnostics.SymbolStore.ISymbolMethod GetMethod(System.Diagnostics.SymbolStore.SymbolToken method, int version); System.Diagnostics.SymbolStore.ISymbolMethod GetMethodFromDocumentPosition(System.Diagnostics.SymbolStore.ISymbolDocument document, int line, int column); System.Diagnostics.SymbolStore.ISymbolNamespace[] GetNamespaces(); - System.Byte[] GetSymAttribute(System.Diagnostics.SymbolStore.SymbolToken parent, string name); + byte[] GetSymAttribute(System.Diagnostics.SymbolStore.SymbolToken parent, string name); System.Diagnostics.SymbolStore.ISymbolVariable[] GetVariables(System.Diagnostics.SymbolStore.SymbolToken parent); System.Diagnostics.SymbolStore.SymbolToken UserEntryPoint { get; } } - public interface ISymbolScope { int EndOffset { get; } @@ -128,7 +117,6 @@ namespace System System.Diagnostics.SymbolStore.ISymbolScope Parent { get; } int StartOffset { get; } } - public interface ISymbolVariable { int AddressField1 { get; } @@ -137,11 +125,10 @@ namespace System System.Diagnostics.SymbolStore.SymAddressKind AddressKind { get; } object Attributes { get; } int EndOffset { get; } - System.Byte[] GetSignature(); + byte[] GetSignature(); string Name { get; } int StartOffset { get; } } - public interface ISymbolWriter { void Close(); @@ -149,77 +136,70 @@ namespace System void CloseNamespace(); void CloseScope(int endOffset); System.Diagnostics.SymbolStore.ISymbolDocumentWriter DefineDocument(string url, System.Guid language, System.Guid languageVendor, System.Guid documentType); - void DefineField(System.Diagnostics.SymbolStore.SymbolToken parent, string name, System.Reflection.FieldAttributes attributes, System.Byte[] signature, System.Diagnostics.SymbolStore.SymAddressKind addrKind, int addr1, int addr2, int addr3); - void DefineGlobalVariable(string name, System.Reflection.FieldAttributes attributes, System.Byte[] signature, System.Diagnostics.SymbolStore.SymAddressKind addrKind, int addr1, int addr2, int addr3); - void DefineLocalVariable(string name, System.Reflection.FieldAttributes attributes, System.Byte[] signature, System.Diagnostics.SymbolStore.SymAddressKind addrKind, int addr1, int addr2, int addr3, int startOffset, int endOffset); + void DefineField(System.Diagnostics.SymbolStore.SymbolToken parent, string name, System.Reflection.FieldAttributes attributes, byte[] signature, System.Diagnostics.SymbolStore.SymAddressKind addrKind, int addr1, int addr2, int addr3); + void DefineGlobalVariable(string name, System.Reflection.FieldAttributes attributes, byte[] signature, System.Diagnostics.SymbolStore.SymAddressKind addrKind, int addr1, int addr2, int addr3); + void DefineLocalVariable(string name, System.Reflection.FieldAttributes attributes, byte[] signature, System.Diagnostics.SymbolStore.SymAddressKind addrKind, int addr1, int addr2, int addr3, int startOffset, int endOffset); void DefineParameter(string name, System.Reflection.ParameterAttributes attributes, int sequence, System.Diagnostics.SymbolStore.SymAddressKind addrKind, int addr1, int addr2, int addr3); void DefineSequencePoints(System.Diagnostics.SymbolStore.ISymbolDocumentWriter document, int[] offsets, int[] lines, int[] columns, int[] endLines, int[] endColumns); - void Initialize(System.IntPtr emitter, string filename, bool fFullBuild); + void Initialize(nint emitter, string filename, bool fFullBuild); void OpenMethod(System.Diagnostics.SymbolStore.SymbolToken method); void OpenNamespace(string name); int OpenScope(int startOffset); void SetMethodSourceRange(System.Diagnostics.SymbolStore.ISymbolDocumentWriter startDoc, int startLine, int startColumn, System.Diagnostics.SymbolStore.ISymbolDocumentWriter endDoc, int endLine, int endColumn); void SetScopeRange(int scopeID, int startOffset, int endOffset); - void SetSymAttribute(System.Diagnostics.SymbolStore.SymbolToken parent, string name, System.Byte[] data); - void SetUnderlyingWriter(System.IntPtr underlyingWriter); + void SetSymAttribute(System.Diagnostics.SymbolStore.SymbolToken parent, string name, byte[] data); + void SetUnderlyingWriter(nint underlyingWriter); void SetUserEntryPoint(System.Diagnostics.SymbolStore.SymbolToken entryMethod); void UsingNamespace(string fullName); } - - public enum SymAddressKind : int + public enum SymAddressKind { - BitField = 9, ILOffset = 1, - NativeOffset = 5, NativeRVA = 2, NativeRegister = 3, - NativeRegisterRegister = 6, NativeRegisterRelative = 4, + NativeOffset = 5, + NativeRegisterRegister = 6, NativeRegisterStack = 7, - NativeSectionOffset = 10, NativeStackRegister = 8, + BitField = 9, + NativeSectionOffset = 10, + } + public struct SymbolToken : System.IEquatable + { + public SymbolToken(int val) => throw null; + public bool Equals(System.Diagnostics.SymbolStore.SymbolToken obj) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public int GetToken() => throw null; + public static bool operator ==(System.Diagnostics.SymbolStore.SymbolToken a, System.Diagnostics.SymbolStore.SymbolToken b) => throw null; + public static bool operator !=(System.Diagnostics.SymbolStore.SymbolToken a, System.Diagnostics.SymbolStore.SymbolToken b) => throw null; } - public class SymDocumentType { public SymDocumentType() => throw null; public static System.Guid Text; } - public class SymLanguageType { public static System.Guid Basic; public static System.Guid C; + public static System.Guid Cobol; public static System.Guid CPlusPlus; public static System.Guid CSharp; - public static System.Guid Cobol; + public SymLanguageType() => throw null; public static System.Guid ILAssembly; - public static System.Guid JScript; public static System.Guid Java; + public static System.Guid JScript; public static System.Guid MCPlusPlus; public static System.Guid Pascal; public static System.Guid SMC; - public SymLanguageType() => throw null; } - public class SymLanguageVendor { - public static System.Guid Microsoft; public SymLanguageVendor() => throw null; + public static System.Guid Microsoft; } - - public struct SymbolToken : System.IEquatable - { - public static bool operator !=(System.Diagnostics.SymbolStore.SymbolToken a, System.Diagnostics.SymbolStore.SymbolToken b) => throw null; - public static bool operator ==(System.Diagnostics.SymbolStore.SymbolToken a, System.Diagnostics.SymbolStore.SymbolToken b) => throw null; - public bool Equals(System.Diagnostics.SymbolStore.SymbolToken obj) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public int GetToken() => throw null; - // Stub generator skipped constructor - public SymbolToken(int val) => throw null; - } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TextWriterTraceListener.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TextWriterTraceListener.cs index 652fd5bdb37..74484d27791 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TextWriterTraceListener.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TextWriterTraceListener.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Diagnostics.TextWriterTraceListener, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Diagnostics @@ -11,7 +10,6 @@ namespace System public ConsoleTraceListener() => throw null; public ConsoleTraceListener(bool useErrorStream) => throw null; } - public class DelimitedListTraceListener : System.Diagnostics.TextWriterTraceListener { public DelimitedListTraceListener(System.IO.Stream stream) => throw null; @@ -20,19 +18,16 @@ namespace System public DelimitedListTraceListener(System.IO.TextWriter writer, string name) => throw null; public DelimitedListTraceListener(string fileName) => throw null; public DelimitedListTraceListener(string fileName, string name) => throw null; - public string Delimiter { get => throw null; set => throw null; } + public string Delimiter { get => throw null; set { } } protected override string[] GetSupportedAttributes() => throw null; public override void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, object data) => throw null; public override void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, params object[] data) => throw null; public override void TraceEvent(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, string message) => throw null; public override void TraceEvent(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, string format, params object[] args) => throw null; } - public class TextWriterTraceListener : System.Diagnostics.TraceListener { public override void Close() => throw null; - protected override void Dispose(bool disposing) => throw null; - public override void Flush() => throw null; public TextWriterTraceListener() => throw null; public TextWriterTraceListener(System.IO.Stream stream) => throw null; public TextWriterTraceListener(System.IO.Stream stream, string name) => throw null; @@ -40,14 +35,21 @@ namespace System public TextWriterTraceListener(System.IO.TextWriter writer, string name) => throw null; public TextWriterTraceListener(string fileName) => throw null; public TextWriterTraceListener(string fileName, string name) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override void Flush() => throw null; public override void Write(string message) => throw null; public override void WriteLine(string message) => throw null; - public System.IO.TextWriter Writer { get => throw null; set => throw null; } + public System.IO.TextWriter Writer { get => throw null; set { } } } - public class XmlWriterTraceListener : System.Diagnostics.TextWriterTraceListener { public override void Close() => throw null; + public XmlWriterTraceListener(System.IO.Stream stream) => throw null; + public XmlWriterTraceListener(System.IO.Stream stream, string name) => throw null; + public XmlWriterTraceListener(System.IO.TextWriter writer) => throw null; + public XmlWriterTraceListener(System.IO.TextWriter writer, string name) => throw null; + public XmlWriterTraceListener(string filename) => throw null; + public XmlWriterTraceListener(string filename, string name) => throw null; public override void Fail(string message, string detailMessage) => throw null; public override void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, object data) => throw null; public override void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, params object[] data) => throw null; @@ -56,13 +58,6 @@ namespace System public override void TraceTransfer(System.Diagnostics.TraceEventCache eventCache, string source, int id, string message, System.Guid relatedActivityId) => throw null; public override void Write(string message) => throw null; public override void WriteLine(string message) => throw null; - public XmlWriterTraceListener(System.IO.Stream stream) => throw null; - public XmlWriterTraceListener(System.IO.Stream stream, string name) => throw null; - public XmlWriterTraceListener(System.IO.TextWriter writer) => throw null; - public XmlWriterTraceListener(System.IO.TextWriter writer, string name) => throw null; - public XmlWriterTraceListener(string filename) => throw null; - public XmlWriterTraceListener(string filename, string name) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs new file mode 100644 index 00000000000..fd79833c97e --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Diagnostics.Tools, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TraceSource.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TraceSource.cs index 29ef410e43e..9f88d1ac5ce 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TraceSource.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TraceSource.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Diagnostics.TraceSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Diagnostics @@ -9,128 +8,116 @@ namespace System { public BooleanSwitch(string displayName, string description) : base(default(string), default(string)) => throw null; public BooleanSwitch(string displayName, string description, string defaultSwitchValue) : base(default(string), default(string)) => throw null; - public bool Enabled { get => throw null; set => throw null; } + public bool Enabled { get => throw null; set { } } protected override void OnValueChanged() => throw null; } - public class CorrelationManager { - public System.Guid ActivityId { get => throw null; set => throw null; } + public System.Guid ActivityId { get => throw null; set { } } public System.Collections.Stack LogicalOperationStack { get => throw null; } public void StartLogicalOperation() => throw null; public void StartLogicalOperation(object operationId) => throw null; public void StopLogicalOperation() => throw null; } - public class DefaultTraceListener : System.Diagnostics.TraceListener { - public bool AssertUiEnabled { get => throw null; set => throw null; } + public bool AssertUiEnabled { get => throw null; set { } } public DefaultTraceListener() => throw null; public override void Fail(string message) => throw null; public override void Fail(string message, string detailMessage) => throw null; - public string LogFileName { get => throw null; set => throw null; } + public string LogFileName { get => throw null; set { } } public override void Write(string message) => throw null; public override void WriteLine(string message) => throw null; } - public class EventTypeFilter : System.Diagnostics.TraceFilter { - public System.Diagnostics.SourceLevels EventType { get => throw null; set => throw null; } public EventTypeFilter(System.Diagnostics.SourceLevels level) => throw null; + public System.Diagnostics.SourceLevels EventType { get => throw null; set { } } public override bool ShouldTrace(System.Diagnostics.TraceEventCache cache, string source, System.Diagnostics.TraceEventType eventType, int id, string formatOrMessage, object[] args, object data1, object[] data) => throw null; } - - public class InitializingSwitchEventArgs : System.EventArgs + public sealed class InitializingSwitchEventArgs : System.EventArgs { public InitializingSwitchEventArgs(System.Diagnostics.Switch @switch) => throw null; public System.Diagnostics.Switch Switch { get => throw null; } } - - public class InitializingTraceSourceEventArgs : System.EventArgs + public sealed class InitializingTraceSourceEventArgs : System.EventArgs { public InitializingTraceSourceEventArgs(System.Diagnostics.TraceSource traceSource) => throw null; public System.Diagnostics.TraceSource TraceSource { get => throw null; } - public bool WasInitialized { get => throw null; set => throw null; } + public bool WasInitialized { get => throw null; set { } } } - public class SourceFilter : System.Diagnostics.TraceFilter { - public override bool ShouldTrace(System.Diagnostics.TraceEventCache cache, string source, System.Diagnostics.TraceEventType eventType, int id, string formatOrMessage, object[] args, object data1, object[] data) => throw null; - public string Source { get => throw null; set => throw null; } public SourceFilter(string source) => throw null; + public override bool ShouldTrace(System.Diagnostics.TraceEventCache cache, string source, System.Diagnostics.TraceEventType eventType, int id, string formatOrMessage, object[] args, object data1, object[] data) => throw null; + public string Source { get => throw null; set { } } } - [System.Flags] - public enum SourceLevels : int + public enum SourceLevels { - ActivityTracing = 65280, All = -1, + Off = 0, Critical = 1, Error = 3, - Information = 15, - Off = 0, - Verbose = 31, Warning = 7, + Information = 15, + Verbose = 31, + ActivityTracing = 65280, } - public class SourceSwitch : System.Diagnostics.Switch { - public System.Diagnostics.SourceLevels Level { get => throw null; set => throw null; } - protected override void OnValueChanged() => throw null; - public bool ShouldTrace(System.Diagnostics.TraceEventType eventType) => throw null; public SourceSwitch(string name) : base(default(string), default(string)) => throw null; public SourceSwitch(string displayName, string defaultSwitchValue) : base(default(string), default(string)) => throw null; + public System.Diagnostics.SourceLevels Level { get => throw null; set { } } + protected override void OnValueChanged() => throw null; + public bool ShouldTrace(System.Diagnostics.TraceEventType eventType) => throw null; } - public abstract class Switch { public System.Collections.Specialized.StringDictionary Attributes { get => throw null; } + protected Switch(string displayName, string description) => throw null; + protected Switch(string displayName, string description, string defaultSwitchValue) => throw null; public string DefaultValue { get => throw null; } public string Description { get => throw null; } public string DisplayName { get => throw null; } protected virtual string[] GetSupportedAttributes() => throw null; - public static event System.EventHandler Initializing; + public static event System.EventHandler Initializing { add { } remove { } } protected virtual void OnSwitchSettingChanged() => throw null; protected virtual void OnValueChanged() => throw null; public void Refresh() => throw null; - protected Switch(string displayName, string description) => throw null; - protected Switch(string displayName, string description, string defaultSwitchValue) => throw null; - protected int SwitchSetting { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } + protected int SwitchSetting { get => throw null; set { } } + public string Value { get => throw null; set { } } } - - public class SwitchAttribute : System.Attribute + public sealed class SwitchAttribute : System.Attribute { - public static System.Diagnostics.SwitchAttribute[] GetAll(System.Reflection.Assembly assembly) => throw null; public SwitchAttribute(string switchName, System.Type switchType) => throw null; - public string SwitchDescription { get => throw null; set => throw null; } - public string SwitchName { get => throw null; set => throw null; } - public System.Type SwitchType { get => throw null; set => throw null; } + public static System.Diagnostics.SwitchAttribute[] GetAll(System.Reflection.Assembly assembly) => throw null; + public string SwitchDescription { get => throw null; set { } } + public string SwitchName { get => throw null; set { } } + public System.Type SwitchType { get => throw null; set { } } } - - public class SwitchLevelAttribute : System.Attribute + public sealed class SwitchLevelAttribute : System.Attribute { public SwitchLevelAttribute(System.Type switchLevelType) => throw null; - public System.Type SwitchLevelType { get => throw null; set => throw null; } + public System.Type SwitchLevelType { get => throw null; set { } } } - - public class Trace + public sealed class Trace { public static void Assert(bool condition) => throw null; public static void Assert(bool condition, string message) => throw null; public static void Assert(bool condition, string message, string detailMessage) => throw null; - public static bool AutoFlush { get => throw null; set => throw null; } + public static bool AutoFlush { get => throw null; set { } } public static void Close() => throw null; public static System.Diagnostics.CorrelationManager CorrelationManager { get => throw null; } public static void Fail(string message) => throw null; public static void Fail(string message, string detailMessage) => throw null; public static void Flush() => throw null; public static void Indent() => throw null; - public static int IndentLevel { get => throw null; set => throw null; } - public static int IndentSize { get => throw null; set => throw null; } + public static int IndentLevel { get => throw null; set { } } + public static int IndentSize { get => throw null; set { } } public static System.Diagnostics.TraceListenerCollection Listeners { get => throw null; } public static void Refresh() => throw null; - public static event System.EventHandler Refreshing; + public static event System.EventHandler Refreshing { add { } remove { } } public static void TraceError(string message) => throw null; public static void TraceError(string format, params object[] args) => throw null; public static void TraceInformation(string message) => throw null; @@ -138,7 +125,7 @@ namespace System public static void TraceWarning(string message) => throw null; public static void TraceWarning(string format, params object[] args) => throw null; public static void Unindent() => throw null; - public static bool UseGlobalLock { get => throw null; set => throw null; } + public static bool UseGlobalLock { get => throw null; set { } } public static void Write(object value) => throw null; public static void Write(object value, string category) => throw null; public static void Write(string message) => throw null; @@ -156,71 +143,66 @@ namespace System public static void WriteLineIf(bool condition, string message) => throw null; public static void WriteLineIf(bool condition, string message, string category) => throw null; } - public class TraceEventCache { public string Callstack { get => throw null; } + public TraceEventCache() => throw null; public System.DateTime DateTime { get => throw null; } public System.Collections.Stack LogicalOperationStack { get => throw null; } public int ProcessId { get => throw null; } public string ThreadId { get => throw null; } - public System.Int64 Timestamp { get => throw null; } - public TraceEventCache() => throw null; + public long Timestamp { get => throw null; } } - - public enum TraceEventType : int + public enum TraceEventType { Critical = 1, Error = 2, + Warning = 4, Information = 8, - Resume = 2048, + Verbose = 16, Start = 256, Stop = 512, Suspend = 1024, + Resume = 2048, Transfer = 4096, - Verbose = 16, - Warning = 4, } - public abstract class TraceFilter { - public abstract bool ShouldTrace(System.Diagnostics.TraceEventCache cache, string source, System.Diagnostics.TraceEventType eventType, int id, string formatOrMessage, object[] args, object data1, object[] data); protected TraceFilter() => throw null; + public abstract bool ShouldTrace(System.Diagnostics.TraceEventCache cache, string source, System.Diagnostics.TraceEventType eventType, int id, string formatOrMessage, object[] args, object data1, object[] data); } - - public enum TraceLevel : int + public enum TraceLevel { - Error = 1, - Info = 3, Off = 0, - Verbose = 4, + Error = 1, Warning = 2, + Info = 3, + Verbose = 4, } - public abstract class TraceListener : System.MarshalByRefObject, System.IDisposable { public System.Collections.Specialized.StringDictionary Attributes { get => throw null; } public virtual void Close() => throw null; + protected TraceListener() => throw null; + protected TraceListener(string name) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public virtual void Fail(string message) => throw null; public virtual void Fail(string message, string detailMessage) => throw null; - public System.Diagnostics.TraceFilter Filter { get => throw null; set => throw null; } + public System.Diagnostics.TraceFilter Filter { get => throw null; set { } } public virtual void Flush() => throw null; protected virtual string[] GetSupportedAttributes() => throw null; - public int IndentLevel { get => throw null; set => throw null; } - public int IndentSize { get => throw null; set => throw null; } + public int IndentLevel { get => throw null; set { } } + public int IndentSize { get => throw null; set { } } public virtual bool IsThreadSafe { get => throw null; } - public virtual string Name { get => throw null; set => throw null; } - protected bool NeedIndent { get => throw null; set => throw null; } + public virtual string Name { get => throw null; set { } } + protected bool NeedIndent { get => throw null; set { } } public virtual void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, object data) => throw null; public virtual void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, params object[] data) => throw null; public virtual void TraceEvent(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id) => throw null; public virtual void TraceEvent(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, string message) => throw null; public virtual void TraceEvent(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, string format, params object[] args) => throw null; - protected TraceListener() => throw null; - protected TraceListener(string name) => throw null; - public System.Diagnostics.TraceOptions TraceOutputOptions { get => throw null; set => throw null; } + public System.Diagnostics.TraceOptions TraceOutputOptions { get => throw null; set { } } public virtual void TraceTransfer(System.Diagnostics.TraceEventCache eventCache, string source, int id, string message, System.Guid relatedActivityId) => throw null; public virtual void Write(object o) => throw null; public virtual void Write(object o, string category) => throw null; @@ -232,7 +214,6 @@ namespace System public abstract void WriteLine(string message); public virtual void WriteLine(string message, string category) => throw null; } - public class TraceListenerCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { public int Add(System.Diagnostics.TraceListener listener) => throw null; @@ -242,8 +223,8 @@ namespace System public void Clear() => throw null; public bool Contains(System.Diagnostics.TraceListener listener) => throw null; bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(System.Diagnostics.TraceListener[] listeners, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public System.Collections.IEnumerator GetEnumerator() => throw null; public int IndexOf(System.Diagnostics.TraceListener listener) => throw null; @@ -253,39 +234,39 @@ namespace System bool System.Collections.IList.IsFixedSize { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public System.Diagnostics.TraceListener this[int i] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public System.Diagnostics.TraceListener this[string name] { get => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } public void Remove(System.Diagnostics.TraceListener listener) => throw null; - void System.Collections.IList.Remove(object value) => throw null; public void Remove(string name) => throw null; + void System.Collections.IList.Remove(object value) => throw null; public void RemoveAt(int index) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public System.Diagnostics.TraceListener this[int i] { get => throw null; set { } } + public System.Diagnostics.TraceListener this[string name] { get => throw null; } } - [System.Flags] - public enum TraceOptions : int + public enum TraceOptions { - Callstack = 32, - DateTime = 2, - LogicalOperationStack = 1, None = 0, + LogicalOperationStack = 1, + DateTime = 2, + Timestamp = 4, ProcessId = 8, ThreadId = 16, - Timestamp = 4, + Callstack = 32, } - public class TraceSource { public System.Collections.Specialized.StringDictionary Attributes { get => throw null; } public void Close() => throw null; + public TraceSource(string name) => throw null; + public TraceSource(string name, System.Diagnostics.SourceLevels defaultLevel) => throw null; public System.Diagnostics.SourceLevels DefaultLevel { get => throw null; } public void Flush() => throw null; protected virtual string[] GetSupportedAttributes() => throw null; - public static event System.EventHandler Initializing; + public static event System.EventHandler Initializing { add { } remove { } } public System.Diagnostics.TraceListenerCollection Listeners { get => throw null; } public string Name { get => throw null; } - public System.Diagnostics.SourceSwitch Switch { get => throw null; set => throw null; } + public System.Diagnostics.SourceSwitch Switch { get => throw null; set { } } public void TraceData(System.Diagnostics.TraceEventType eventType, int id, object data) => throw null; public void TraceData(System.Diagnostics.TraceEventType eventType, int id, params object[] data) => throw null; public void TraceEvent(System.Diagnostics.TraceEventType eventType, int id) => throw null; @@ -293,23 +274,19 @@ namespace System public void TraceEvent(System.Diagnostics.TraceEventType eventType, int id, string format, params object[] args) => throw null; public void TraceInformation(string message) => throw null; public void TraceInformation(string format, params object[] args) => throw null; - public TraceSource(string name) => throw null; - public TraceSource(string name, System.Diagnostics.SourceLevels defaultLevel) => throw null; public void TraceTransfer(int id, string message, System.Guid relatedActivityId) => throw null; } - public class TraceSwitch : System.Diagnostics.Switch { - public System.Diagnostics.TraceLevel Level { get => throw null; set => throw null; } + public TraceSwitch(string displayName, string description) : base(default(string), default(string)) => throw null; + public TraceSwitch(string displayName, string description, string defaultSwitchValue) : base(default(string), default(string)) => throw null; + public System.Diagnostics.TraceLevel Level { get => throw null; set { } } protected override void OnSwitchSettingChanged() => throw null; protected override void OnValueChanged() => throw null; public bool TraceError { get => throw null; } public bool TraceInfo { get => throw null; } - public TraceSwitch(string displayName, string description) : base(default(string), default(string)) => throw null; - public TraceSwitch(string displayName, string description, string defaultSwitchValue) : base(default(string), default(string)) => throw null; public bool TraceVerbose { get => throw null; } public bool TraceWarning { get => throw null; } } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tracing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tracing.cs index 2089760e949..353eb1996d4 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tracing.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tracing.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Diagnostics.Tracing, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Diagnostics @@ -10,55 +9,49 @@ namespace System public abstract class DiagnosticCounter : System.IDisposable { public void AddMetadata(string key, string value) => throw null; - internal DiagnosticCounter() => throw null; - public string DisplayName { get => throw null; set => throw null; } - public string DisplayUnits { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set { } } + public string DisplayUnits { get => throw null; set { } } public void Dispose() => throw null; public System.Diagnostics.Tracing.EventSource EventSource { get => throw null; } public string Name { get => throw null; } } - [System.Flags] - public enum EventActivityOptions : int + public enum EventActivityOptions { - Detachable = 8, - Disable = 2, None = 0, + Disable = 2, Recursive = 4, + Detachable = 8, } - - public class EventAttribute : System.Attribute + public sealed class EventAttribute : System.Attribute { - public System.Diagnostics.Tracing.EventActivityOptions ActivityOptions { get => throw null; set => throw null; } - public System.Diagnostics.Tracing.EventChannel Channel { get => throw null; set => throw null; } + public System.Diagnostics.Tracing.EventActivityOptions ActivityOptions { get => throw null; set { } } + public System.Diagnostics.Tracing.EventChannel Channel { get => throw null; set { } } public EventAttribute(int eventId) => throw null; public int EventId { get => throw null; } - public System.Diagnostics.Tracing.EventKeywords Keywords { get => throw null; set => throw null; } - public System.Diagnostics.Tracing.EventLevel Level { get => throw null; set => throw null; } - public string Message { get => throw null; set => throw null; } - public System.Diagnostics.Tracing.EventOpcode Opcode { get => throw null; set => throw null; } - public System.Diagnostics.Tracing.EventTags Tags { get => throw null; set => throw null; } - public System.Diagnostics.Tracing.EventTask Task { get => throw null; set => throw null; } - public System.Byte Version { get => throw null; set => throw null; } + public System.Diagnostics.Tracing.EventKeywords Keywords { get => throw null; set { } } + public System.Diagnostics.Tracing.EventLevel Level { get => throw null; set { } } + public string Message { get => throw null; set { } } + public System.Diagnostics.Tracing.EventOpcode Opcode { get => throw null; set { } } + public System.Diagnostics.Tracing.EventTags Tags { get => throw null; set { } } + public System.Diagnostics.Tracing.EventTask Task { get => throw null; set { } } + public byte Version { get => throw null; set { } } } - public enum EventChannel : byte { + None = 0, Admin = 16, + Operational = 17, Analytic = 18, Debug = 19, - None = 0, - Operational = 17, } - - public enum EventCommand : int + public enum EventCommand { Disable = -3, Enable = -2, SendManifest = -1, Update = 0, } - public class EventCommandEventArgs : System.EventArgs { public System.Collections.Generic.IDictionary Arguments { get => throw null; } @@ -66,7 +59,6 @@ namespace System public bool DisableEvent(int eventId) => throw null; public bool EnableEvent(int eventId) => throw null; } - public class EventCounter : System.Diagnostics.Tracing.DiagnosticCounter { public EventCounter(string name, System.Diagnostics.Tracing.EventSource eventSource) => throw null; @@ -74,129 +66,115 @@ namespace System public void WriteMetric(double value) => throw null; public void WriteMetric(float value) => throw null; } - public class EventDataAttribute : System.Attribute { public EventDataAttribute() => throw null; - public string Name { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } } - public class EventFieldAttribute : System.Attribute { public EventFieldAttribute() => throw null; - public System.Diagnostics.Tracing.EventFieldFormat Format { get => throw null; set => throw null; } - public System.Diagnostics.Tracing.EventFieldTags Tags { get => throw null; set => throw null; } + public System.Diagnostics.Tracing.EventFieldFormat Format { get => throw null; set { } } + public System.Diagnostics.Tracing.EventFieldTags Tags { get => throw null; set { } } } - - public enum EventFieldFormat : int + public enum EventFieldFormat { - Boolean = 3, Default = 0, - HResult = 15, - Hexadecimal = 4, - Json = 12, String = 2, + Boolean = 3, + Hexadecimal = 4, Xml = 11, + Json = 12, + HResult = 15, } - [System.Flags] - public enum EventFieldTags : int + public enum EventFieldTags { None = 0, } - public class EventIgnoreAttribute : System.Attribute { public EventIgnoreAttribute() => throw null; } - [System.Flags] public enum EventKeywords : long { All = -1, - AuditFailure = 4503599627370496, - AuditSuccess = 9007199254740992, - CorrelationHint = 4503599627370496, - EventLogClassic = 36028797018963968, - MicrosoftTelemetry = 562949953421312, None = 0, - Sqm = 2251799813685248, + MicrosoftTelemetry = 562949953421312, WdiContext = 562949953421312, WdiDiagnostic = 1125899906842624, + Sqm = 2251799813685248, + AuditFailure = 4503599627370496, + CorrelationHint = 4503599627370496, + AuditSuccess = 9007199254740992, + EventLogClassic = 36028797018963968, } - - public enum EventLevel : int + public enum EventLevel { + LogAlways = 0, Critical = 1, Error = 2, - Informational = 4, - LogAlways = 0, - Verbose = 5, Warning = 3, + Informational = 4, + Verbose = 5, } - public abstract class EventListener : System.IDisposable { + protected EventListener() => throw null; public void DisableEvents(System.Diagnostics.Tracing.EventSource eventSource) => throw null; public virtual void Dispose() => throw null; public void EnableEvents(System.Diagnostics.Tracing.EventSource eventSource, System.Diagnostics.Tracing.EventLevel level) => throw null; public void EnableEvents(System.Diagnostics.Tracing.EventSource eventSource, System.Diagnostics.Tracing.EventLevel level, System.Diagnostics.Tracing.EventKeywords matchAnyKeyword) => throw null; public void EnableEvents(System.Diagnostics.Tracing.EventSource eventSource, System.Diagnostics.Tracing.EventLevel level, System.Diagnostics.Tracing.EventKeywords matchAnyKeyword, System.Collections.Generic.IDictionary arguments) => throw null; - protected EventListener() => throw null; - public event System.EventHandler EventSourceCreated; + public event System.EventHandler EventSourceCreated { add { } remove { } } protected static int EventSourceIndex(System.Diagnostics.Tracing.EventSource eventSource) => throw null; - public event System.EventHandler EventWritten; - protected internal virtual void OnEventSourceCreated(System.Diagnostics.Tracing.EventSource eventSource) => throw null; - protected internal virtual void OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs eventData) => throw null; + public event System.EventHandler EventWritten { add { } remove { } } + protected virtual void OnEventSourceCreated(System.Diagnostics.Tracing.EventSource eventSource) => throw null; + protected virtual void OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs eventData) => throw null; } - [System.Flags] - public enum EventManifestOptions : int + public enum EventManifestOptions { - AllCultures = 2, - AllowEventSourceOverride = 8, None = 0, - OnlyIfNeededForRegistration = 4, Strict = 1, + AllCultures = 2, + OnlyIfNeededForRegistration = 4, + AllowEventSourceOverride = 8, } - - public enum EventOpcode : int + public enum EventOpcode { + Info = 0, + Start = 1, + Stop = 2, DataCollectionStart = 3, DataCollectionStop = 4, Extension = 5, - Info = 0, - Receive = 240, Reply = 6, Resume = 7, - Send = 9, - Start = 1, - Stop = 2, Suspend = 8, + Send = 9, + Receive = 240, } - public class EventSource : System.IDisposable { - protected internal struct EventData - { - public System.IntPtr DataPointer { get => throw null; set => throw null; } - // Stub generator skipped constructor - public int Size { get => throw null; set => throw null; } - } - - public System.Exception ConstructionException { get => throw null; } - public static System.Guid CurrentThreadActivityId { get => throw null; } - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public event System.EventHandler EventCommandExecuted; protected EventSource() => throw null; + protected EventSource(bool throwOnEventWriteErrors) => throw null; protected EventSource(System.Diagnostics.Tracing.EventSourceSettings settings) => throw null; protected EventSource(System.Diagnostics.Tracing.EventSourceSettings settings, params string[] traits) => throw null; - protected EventSource(bool throwOnEventWriteErrors) => throw null; public EventSource(string eventSourceName) => throw null; public EventSource(string eventSourceName, System.Diagnostics.Tracing.EventSourceSettings config) => throw null; public EventSource(string eventSourceName, System.Diagnostics.Tracing.EventSourceSettings config, params string[] traits) => throw null; + public static System.Guid CurrentThreadActivityId { get => throw null; } + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public event System.EventHandler EventCommandExecuted { add { } remove { } } + protected struct EventData + { + public nint DataPointer { get => throw null; set { } } + public int Size { get => throw null; set { } } + } public static string GenerateManifest(System.Type eventSourceType, string assemblyPathToIncludeInManifest) => throw null; public static string GenerateManifest(System.Type eventSourceType, string assemblyPathToIncludeInManifest, System.Diagnostics.Tracing.EventManifestOptions flags) => throw null; public static System.Guid GetGuid(System.Type eventSourceType) => throw null; @@ -217,47 +195,43 @@ namespace System public void Write(string eventName) => throw null; public void Write(string eventName, System.Diagnostics.Tracing.EventSourceOptions options) => throw null; public void Write(string eventName, System.Diagnostics.Tracing.EventSourceOptions options, T data) => throw null; - public void Write(string eventName, T data) => throw null; public void Write(string eventName, ref System.Diagnostics.Tracing.EventSourceOptions options, ref System.Guid activityId, ref System.Guid relatedActivityId, ref T data) => throw null; public void Write(string eventName, ref System.Diagnostics.Tracing.EventSourceOptions options, ref T data) => throw null; + public void Write(string eventName, T data) => throw null; protected void WriteEvent(int eventId) => throw null; - protected void WriteEvent(int eventId, System.Byte[] arg1) => throw null; + protected void WriteEvent(int eventId, byte[] arg1) => throw null; protected void WriteEvent(int eventId, int arg1) => throw null; protected void WriteEvent(int eventId, int arg1, int arg2) => throw null; protected void WriteEvent(int eventId, int arg1, int arg2, int arg3) => throw null; protected void WriteEvent(int eventId, int arg1, string arg2) => throw null; - protected void WriteEvent(int eventId, System.Int64 arg1) => throw null; - protected void WriteEvent(int eventId, System.Int64 arg1, System.Byte[] arg2) => throw null; - protected void WriteEvent(int eventId, System.Int64 arg1, System.Int64 arg2) => throw null; - protected void WriteEvent(int eventId, System.Int64 arg1, System.Int64 arg2, System.Int64 arg3) => throw null; - protected void WriteEvent(int eventId, System.Int64 arg1, string arg2) => throw null; + protected void WriteEvent(int eventId, long arg1) => throw null; + protected void WriteEvent(int eventId, long arg1, byte[] arg2) => throw null; + protected void WriteEvent(int eventId, long arg1, long arg2) => throw null; + protected void WriteEvent(int eventId, long arg1, long arg2, long arg3) => throw null; + protected void WriteEvent(int eventId, long arg1, string arg2) => throw null; protected void WriteEvent(int eventId, params object[] args) => throw null; protected void WriteEvent(int eventId, string arg1) => throw null; protected void WriteEvent(int eventId, string arg1, int arg2) => throw null; protected void WriteEvent(int eventId, string arg1, int arg2, int arg3) => throw null; - protected void WriteEvent(int eventId, string arg1, System.Int64 arg2) => throw null; + protected void WriteEvent(int eventId, string arg1, long arg2) => throw null; protected void WriteEvent(int eventId, string arg1, string arg2) => throw null; protected void WriteEvent(int eventId, string arg1, string arg2, string arg3) => throw null; - unsafe protected void WriteEventCore(int eventId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data) => throw null; + protected unsafe void WriteEventCore(int eventId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data) => throw null; protected void WriteEventWithRelatedActivityId(int eventId, System.Guid relatedActivityId, params object[] args) => throw null; - unsafe protected void WriteEventWithRelatedActivityIdCore(int eventId, System.Guid* relatedActivityId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data) => throw null; - // ERR: Stub generator didn't handle member: ~EventSource + protected unsafe void WriteEventWithRelatedActivityIdCore(int eventId, System.Guid* relatedActivityId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data) => throw null; } - - public class EventSourceAttribute : System.Attribute + public sealed class EventSourceAttribute : System.Attribute { public EventSourceAttribute() => throw null; - public string Guid { get => throw null; set => throw null; } - public string LocalizationResources { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } + public string Guid { get => throw null; set { } } + public string LocalizationResources { get => throw null; set { } } + public string Name { get => throw null; set { } } } - public class EventSourceCreatedEventArgs : System.EventArgs { - public System.Diagnostics.Tracing.EventSource EventSource { get => throw null; } public EventSourceCreatedEventArgs() => throw null; + public System.Diagnostics.Tracing.EventSource EventSource { get => throw null; } } - public class EventSourceException : System.Exception { public EventSourceException() => throw null; @@ -265,37 +239,31 @@ namespace System public EventSourceException(string message) => throw null; public EventSourceException(string message, System.Exception innerException) => throw null; } - public struct EventSourceOptions { - public System.Diagnostics.Tracing.EventActivityOptions ActivityOptions { get => throw null; set => throw null; } - // Stub generator skipped constructor - public System.Diagnostics.Tracing.EventKeywords Keywords { get => throw null; set => throw null; } - public System.Diagnostics.Tracing.EventLevel Level { get => throw null; set => throw null; } - public System.Diagnostics.Tracing.EventOpcode Opcode { get => throw null; set => throw null; } - public System.Diagnostics.Tracing.EventTags Tags { get => throw null; set => throw null; } + public System.Diagnostics.Tracing.EventActivityOptions ActivityOptions { get => throw null; set { } } + public System.Diagnostics.Tracing.EventKeywords Keywords { get => throw null; set { } } + public System.Diagnostics.Tracing.EventLevel Level { get => throw null; set { } } + public System.Diagnostics.Tracing.EventOpcode Opcode { get => throw null; set { } } + public System.Diagnostics.Tracing.EventTags Tags { get => throw null; set { } } } - [System.Flags] - public enum EventSourceSettings : int + public enum EventSourceSettings { Default = 0, + ThrowOnEventWriteErrors = 1, EtwManifestEventFormat = 4, EtwSelfDescribingEventFormat = 8, - ThrowOnEventWriteErrors = 1, } - [System.Flags] - public enum EventTags : int + public enum EventTags { None = 0, } - - public enum EventTask : int + public enum EventTask { None = 0, } - public class EventWrittenEventArgs : System.EventArgs { public System.Guid ActivityId { get => throw null; } @@ -306,43 +274,38 @@ namespace System public System.Diagnostics.Tracing.EventKeywords Keywords { get => throw null; } public System.Diagnostics.Tracing.EventLevel Level { get => throw null; } public string Message { get => throw null; } - public System.Int64 OSThreadId { get => throw null; } public System.Diagnostics.Tracing.EventOpcode Opcode { get => throw null; } + public long OSThreadId { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection Payload { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection PayloadNames { get => throw null; } public System.Guid RelatedActivityId { get => throw null; } public System.Diagnostics.Tracing.EventTags Tags { get => throw null; } public System.Diagnostics.Tracing.EventTask Task { get => throw null; } public System.DateTime TimeStamp { get => throw null; } - public System.Byte Version { get => throw null; } + public byte Version { get => throw null; } } - public class IncrementingEventCounter : System.Diagnostics.Tracing.DiagnosticCounter { - public System.TimeSpan DisplayRateTimeScale { get => throw null; set => throw null; } - public void Increment(double increment = default(double)) => throw null; public IncrementingEventCounter(string name, System.Diagnostics.Tracing.EventSource eventSource) => throw null; + public System.TimeSpan DisplayRateTimeScale { get => throw null; set { } } + public void Increment(double increment = default(double)) => throw null; public override string ToString() => throw null; } - public class IncrementingPollingCounter : System.Diagnostics.Tracing.DiagnosticCounter { - public System.TimeSpan DisplayRateTimeScale { get => throw null; set => throw null; } public IncrementingPollingCounter(string name, System.Diagnostics.Tracing.EventSource eventSource, System.Func totalValueProvider) => throw null; + public System.TimeSpan DisplayRateTimeScale { get => throw null; set { } } public override string ToString() => throw null; } - - public class NonEventAttribute : System.Attribute + public sealed class NonEventAttribute : System.Attribute { public NonEventAttribute() => throw null; } - public class PollingCounter : System.Diagnostics.Tracing.DiagnosticCounter { public PollingCounter(string name, System.Diagnostics.Tracing.EventSource eventSource, System.Func metricProvider) => throw null; public override string ToString() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.Primitives.cs index fcd96e8c416..5f566248984 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.Primitives.cs @@ -1,21 +1,18 @@ // This file contains auto-generated code. // Generated from `System.Drawing.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Drawing { public struct Color : System.IEquatable { - public static bool operator !=(System.Drawing.Color left, System.Drawing.Color right) => throw null; - public static bool operator ==(System.Drawing.Color left, System.Drawing.Color right) => throw null; - public System.Byte A { get => throw null; } + public byte A { get => throw null; } public static System.Drawing.Color AliceBlue { get => throw null; } public static System.Drawing.Color AntiqueWhite { get => throw null; } public static System.Drawing.Color Aqua { get => throw null; } public static System.Drawing.Color Aquamarine { get => throw null; } public static System.Drawing.Color Azure { get => throw null; } - public System.Byte B { get => throw null; } + public byte B { get => throw null; } public static System.Drawing.Color Beige { get => throw null; } public static System.Drawing.Color Bisque { get => throw null; } public static System.Drawing.Color Black { get => throw null; } @@ -27,7 +24,6 @@ namespace System public static System.Drawing.Color CadetBlue { get => throw null; } public static System.Drawing.Color Chartreuse { get => throw null; } public static System.Drawing.Color Chocolate { get => throw null; } - // Stub generator skipped constructor public static System.Drawing.Color Coral { get => throw null; } public static System.Drawing.Color CornflowerBlue { get => throw null; } public static System.Drawing.Color Cornsilk { get => throw null; } @@ -67,7 +63,7 @@ namespace System public static System.Drawing.Color FromKnownColor(System.Drawing.KnownColor color) => throw null; public static System.Drawing.Color FromName(string name) => throw null; public static System.Drawing.Color Fuchsia { get => throw null; } - public System.Byte G { get => throw null; } + public byte G { get => throw null; } public static System.Drawing.Color Gainsboro { get => throw null; } public float GetBrightness() => throw null; public override int GetHashCode() => throw null; @@ -130,6 +126,8 @@ namespace System public static System.Drawing.Color OldLace { get => throw null; } public static System.Drawing.Color Olive { get => throw null; } public static System.Drawing.Color OliveDrab { get => throw null; } + public static bool operator ==(System.Drawing.Color left, System.Drawing.Color right) => throw null; + public static bool operator !=(System.Drawing.Color left, System.Drawing.Color right) => throw null; public static System.Drawing.Color Orange { get => throw null; } public static System.Drawing.Color OrangeRed { get => throw null; } public static System.Drawing.Color Orchid { get => throw null; } @@ -144,7 +142,7 @@ namespace System public static System.Drawing.Color Plum { get => throw null; } public static System.Drawing.Color PowderBlue { get => throw null; } public static System.Drawing.Color Purple { get => throw null; } - public System.Byte R { get => throw null; } + public byte R { get => throw null; } public static System.Drawing.Color RebeccaPurple { get => throw null; } public static System.Drawing.Color Red { get => throw null; } public static System.Drawing.Color RosyBrown { get => throw null; } @@ -167,8 +165,8 @@ namespace System public static System.Drawing.Color Thistle { get => throw null; } public int ToArgb() => throw null; public System.Drawing.KnownColor ToKnownColor() => throw null; - public override string ToString() => throw null; public static System.Drawing.Color Tomato { get => throw null; } + public override string ToString() => throw null; public static System.Drawing.Color Transparent { get => throw null; } public static System.Drawing.Color Turquoise { get => throw null; } public static System.Drawing.Color Violet { get => throw null; } @@ -178,7 +176,6 @@ namespace System public static System.Drawing.Color Yellow { get => throw null; } public static System.Drawing.Color YellowGreen { get => throw null; } } - public static class ColorTranslator { public static System.Drawing.Color FromHtml(string htmlColor) => throw null; @@ -188,15 +185,37 @@ namespace System public static int ToOle(System.Drawing.Color c) => throw null; public static int ToWin32(System.Drawing.Color c) => throw null; } - - public enum KnownColor : int + public enum KnownColor { ActiveBorder = 1, ActiveCaption = 2, ActiveCaptionText = 3, + AppWorkspace = 4, + Control = 5, + ControlDark = 6, + ControlDarkDark = 7, + ControlLight = 8, + ControlLightLight = 9, + ControlText = 10, + Desktop = 11, + GrayText = 12, + Highlight = 13, + HighlightText = 14, + HotTrack = 15, + InactiveBorder = 16, + InactiveCaption = 17, + InactiveCaptionText = 18, + Info = 19, + InfoText = 20, + Menu = 21, + MenuText = 22, + ScrollBar = 23, + Window = 24, + WindowFrame = 25, + WindowText = 26, + Transparent = 27, AliceBlue = 28, AntiqueWhite = 29, - AppWorkspace = 4, Aqua = 30, Aquamarine = 31, Azure = 32, @@ -208,18 +227,9 @@ namespace System BlueViolet = 38, Brown = 39, BurlyWood = 40, - ButtonFace = 168, - ButtonHighlight = 169, - ButtonShadow = 170, CadetBlue = 41, Chartreuse = 42, Chocolate = 43, - Control = 5, - ControlDark = 6, - ControlDarkDark = 7, - ControlLight = 8, - ControlLightLight = 9, - ControlText = 10, Coral = 44, CornflowerBlue = 45, Cornsilk = 46, @@ -244,7 +254,6 @@ namespace System DarkViolet = 65, DeepPink = 66, DeepSkyBlue = 67, - Desktop = 11, DimGray = 68, DodgerBlue = 69, Firebrick = 70, @@ -255,24 +264,13 @@ namespace System GhostWhite = 75, Gold = 76, Goldenrod = 77, - GradientActiveCaption = 171, - GradientInactiveCaption = 172, Gray = 78, - GrayText = 12, Green = 79, GreenYellow = 80, - Highlight = 13, - HighlightText = 14, Honeydew = 81, HotPink = 82, - HotTrack = 15, - InactiveBorder = 16, - InactiveCaption = 17, - InactiveCaptionText = 18, IndianRed = 83, Indigo = 84, - Info = 19, - InfoText = 20, Ivory = 85, Khaki = 86, Lavender = 87, @@ -306,10 +304,6 @@ namespace System MediumSpringGreen = 115, MediumTurquoise = 116, MediumVioletRed = 117, - Menu = 21, - MenuBar = 173, - MenuHighlight = 174, - MenuText = 22, MidnightBlue = 118, MintCream = 119, MistyRose = 120, @@ -333,14 +327,12 @@ namespace System Plum = 138, PowderBlue = 139, Purple = 140, - RebeccaPurple = 175, Red = 141, RosyBrown = 142, RoyalBlue = 143, SaddleBrown = 144, Salmon = 145, SandyBrown = 146, - ScrollBar = 23, SeaGreen = 147, SeaShell = 148, Sienna = 149, @@ -355,27 +347,29 @@ namespace System Teal = 158, Thistle = 159, Tomato = 160, - Transparent = 27, Turquoise = 161, Violet = 162, Wheat = 163, White = 164, WhiteSmoke = 165, - Window = 24, - WindowFrame = 25, - WindowText = 26, Yellow = 166, YellowGreen = 167, + ButtonFace = 168, + ButtonHighlight = 169, + ButtonShadow = 170, + GradientActiveCaption = 171, + GradientInactiveCaption = 172, + MenuBar = 173, + MenuHighlight = 174, + RebeccaPurple = 175, } - public struct Point : System.IEquatable { - public static bool operator !=(System.Drawing.Point left, System.Drawing.Point right) => throw null; - public static System.Drawing.Point operator +(System.Drawing.Point pt, System.Drawing.Size sz) => throw null; - public static System.Drawing.Point operator -(System.Drawing.Point pt, System.Drawing.Size sz) => throw null; - public static bool operator ==(System.Drawing.Point left, System.Drawing.Point right) => throw null; public static System.Drawing.Point Add(System.Drawing.Point pt, System.Drawing.Size sz) => throw null; public static System.Drawing.Point Ceiling(System.Drawing.PointF value) => throw null; + public Point(System.Drawing.Size sz) => throw null; + public Point(int dw) => throw null; + public Point(int x, int y) => throw null; public static System.Drawing.Point Empty; public bool Equals(System.Drawing.Point other) => throw null; public override bool Equals(object obj) => throw null; @@ -383,63 +377,60 @@ namespace System public bool IsEmpty { get => throw null; } public void Offset(System.Drawing.Point p) => throw null; public void Offset(int dx, int dy) => throw null; - // Stub generator skipped constructor - public Point(System.Drawing.Size sz) => throw null; - public Point(int dw) => throw null; - public Point(int x, int y) => throw null; + public static System.Drawing.Point operator +(System.Drawing.Point pt, System.Drawing.Size sz) => throw null; + public static bool operator ==(System.Drawing.Point left, System.Drawing.Point right) => throw null; + public static explicit operator System.Drawing.Size(System.Drawing.Point p) => throw null; + public static implicit operator System.Drawing.PointF(System.Drawing.Point p) => throw null; + public static bool operator !=(System.Drawing.Point left, System.Drawing.Point right) => throw null; + public static System.Drawing.Point operator -(System.Drawing.Point pt, System.Drawing.Size sz) => throw null; public static System.Drawing.Point Round(System.Drawing.PointF value) => throw null; public static System.Drawing.Point Subtract(System.Drawing.Point pt, System.Drawing.Size sz) => throw null; public override string ToString() => throw null; public static System.Drawing.Point Truncate(System.Drawing.PointF value) => throw null; - public int X { get => throw null; set => throw null; } - public int Y { get => throw null; set => throw null; } - public static explicit operator System.Drawing.Size(System.Drawing.Point p) => throw null; - public static implicit operator System.Drawing.PointF(System.Drawing.Point p) => throw null; + public int X { get => throw null; set { } } + public int Y { get => throw null; set { } } } - public struct PointF : System.IEquatable { - public static bool operator !=(System.Drawing.PointF left, System.Drawing.PointF right) => throw null; - public static System.Drawing.PointF operator +(System.Drawing.PointF pt, System.Drawing.Size sz) => throw null; - public static System.Drawing.PointF operator +(System.Drawing.PointF pt, System.Drawing.SizeF sz) => throw null; - public static System.Drawing.PointF operator -(System.Drawing.PointF pt, System.Drawing.Size sz) => throw null; - public static System.Drawing.PointF operator -(System.Drawing.PointF pt, System.Drawing.SizeF sz) => throw null; - public static bool operator ==(System.Drawing.PointF left, System.Drawing.PointF right) => throw null; public static System.Drawing.PointF Add(System.Drawing.PointF pt, System.Drawing.Size sz) => throw null; public static System.Drawing.PointF Add(System.Drawing.PointF pt, System.Drawing.SizeF sz) => throw null; + public PointF(float x, float y) => throw null; + public PointF(System.Numerics.Vector2 vector) => throw null; public static System.Drawing.PointF Empty; public bool Equals(System.Drawing.PointF other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public bool IsEmpty { get => throw null; } - // Stub generator skipped constructor - public PointF(System.Numerics.Vector2 vector) => throw null; - public PointF(float x, float y) => throw null; + public static System.Drawing.PointF operator +(System.Drawing.PointF pt, System.Drawing.Size sz) => throw null; + public static System.Drawing.PointF operator +(System.Drawing.PointF pt, System.Drawing.SizeF sz) => throw null; + public static bool operator ==(System.Drawing.PointF left, System.Drawing.PointF right) => throw null; + public static explicit operator System.Numerics.Vector2(System.Drawing.PointF point) => throw null; + public static explicit operator System.Drawing.PointF(System.Numerics.Vector2 vector) => throw null; + public static bool operator !=(System.Drawing.PointF left, System.Drawing.PointF right) => throw null; + public static System.Drawing.PointF operator -(System.Drawing.PointF pt, System.Drawing.Size sz) => throw null; + public static System.Drawing.PointF operator -(System.Drawing.PointF pt, System.Drawing.SizeF sz) => throw null; public static System.Drawing.PointF Subtract(System.Drawing.PointF pt, System.Drawing.Size sz) => throw null; public static System.Drawing.PointF Subtract(System.Drawing.PointF pt, System.Drawing.SizeF sz) => throw null; public override string ToString() => throw null; public System.Numerics.Vector2 ToVector2() => throw null; - public float X { get => throw null; set => throw null; } - public float Y { get => throw null; set => throw null; } - public static explicit operator System.Numerics.Vector2(System.Drawing.PointF point) => throw null; - public static explicit operator System.Drawing.PointF(System.Numerics.Vector2 vector) => throw null; + public float X { get => throw null; set { } } + public float Y { get => throw null; set { } } } - public struct Rectangle : System.IEquatable { - public static bool operator !=(System.Drawing.Rectangle left, System.Drawing.Rectangle right) => throw null; - public static bool operator ==(System.Drawing.Rectangle left, System.Drawing.Rectangle right) => throw null; public int Bottom { get => throw null; } public static System.Drawing.Rectangle Ceiling(System.Drawing.RectangleF value) => throw null; public bool Contains(System.Drawing.Point pt) => throw null; public bool Contains(System.Drawing.Rectangle rect) => throw null; public bool Contains(int x, int y) => throw null; + public Rectangle(System.Drawing.Point location, System.Drawing.Size size) => throw null; + public Rectangle(int x, int y, int width, int height) => throw null; public static System.Drawing.Rectangle Empty; public bool Equals(System.Drawing.Rectangle other) => throw null; public override bool Equals(object obj) => throw null; public static System.Drawing.Rectangle FromLTRB(int left, int top, int right, int bottom) => throw null; public override int GetHashCode() => throw null; - public int Height { get => throw null; set => throw null; } + public int Height { get => throw null; set { } } public static System.Drawing.Rectangle Inflate(System.Drawing.Rectangle rect, int x, int y) => throw null; public void Inflate(System.Drawing.Size size) => throw null; public void Inflate(int width, int height) => throw null; @@ -448,38 +439,37 @@ namespace System public bool IntersectsWith(System.Drawing.Rectangle rect) => throw null; public bool IsEmpty { get => throw null; } public int Left { get => throw null; } - public System.Drawing.Point Location { get => throw null; set => throw null; } + public System.Drawing.Point Location { get => throw null; set { } } public void Offset(System.Drawing.Point pos) => throw null; public void Offset(int x, int y) => throw null; - // Stub generator skipped constructor - public Rectangle(System.Drawing.Point location, System.Drawing.Size size) => throw null; - public Rectangle(int x, int y, int width, int height) => throw null; + public static bool operator ==(System.Drawing.Rectangle left, System.Drawing.Rectangle right) => throw null; + public static bool operator !=(System.Drawing.Rectangle left, System.Drawing.Rectangle right) => throw null; public int Right { get => throw null; } public static System.Drawing.Rectangle Round(System.Drawing.RectangleF value) => throw null; - public System.Drawing.Size Size { get => throw null; set => throw null; } - public override string ToString() => throw null; + public System.Drawing.Size Size { get => throw null; set { } } public int Top { get => throw null; } + public override string ToString() => throw null; public static System.Drawing.Rectangle Truncate(System.Drawing.RectangleF value) => throw null; public static System.Drawing.Rectangle Union(System.Drawing.Rectangle a, System.Drawing.Rectangle b) => throw null; - public int Width { get => throw null; set => throw null; } - public int X { get => throw null; set => throw null; } - public int Y { get => throw null; set => throw null; } + public int Width { get => throw null; set { } } + public int X { get => throw null; set { } } + public int Y { get => throw null; set { } } } - public struct RectangleF : System.IEquatable { - public static bool operator !=(System.Drawing.RectangleF left, System.Drawing.RectangleF right) => throw null; - public static bool operator ==(System.Drawing.RectangleF left, System.Drawing.RectangleF right) => throw null; public float Bottom { get => throw null; } public bool Contains(System.Drawing.PointF pt) => throw null; public bool Contains(System.Drawing.RectangleF rect) => throw null; public bool Contains(float x, float y) => throw null; + public RectangleF(System.Drawing.PointF location, System.Drawing.SizeF size) => throw null; + public RectangleF(float x, float y, float width, float height) => throw null; + public RectangleF(System.Numerics.Vector4 vector) => throw null; public static System.Drawing.RectangleF Empty; public bool Equals(System.Drawing.RectangleF other) => throw null; public override bool Equals(object obj) => throw null; public static System.Drawing.RectangleF FromLTRB(float left, float top, float right, float bottom) => throw null; public override int GetHashCode() => throw null; - public float Height { get => throw null; set => throw null; } + public float Height { get => throw null; set { } } public static System.Drawing.RectangleF Inflate(System.Drawing.RectangleF rect, float x, float y) => throw null; public void Inflate(System.Drawing.SizeF size) => throw null; public void Inflate(float x, float y) => throw null; @@ -488,91 +478,84 @@ namespace System public bool IntersectsWith(System.Drawing.RectangleF rect) => throw null; public bool IsEmpty { get => throw null; } public float Left { get => throw null; } - public System.Drawing.PointF Location { get => throw null; set => throw null; } + public System.Drawing.PointF Location { get => throw null; set { } } public void Offset(System.Drawing.PointF pos) => throw null; public void Offset(float x, float y) => throw null; - // Stub generator skipped constructor - public RectangleF(System.Drawing.PointF location, System.Drawing.SizeF size) => throw null; - public RectangleF(System.Numerics.Vector4 vector) => throw null; - public RectangleF(float x, float y, float width, float height) => throw null; - public float Right { get => throw null; } - public System.Drawing.SizeF Size { get => throw null; set => throw null; } - public override string ToString() => throw null; - public System.Numerics.Vector4 ToVector4() => throw null; - public float Top { get => throw null; } - public static System.Drawing.RectangleF Union(System.Drawing.RectangleF a, System.Drawing.RectangleF b) => throw null; - public float Width { get => throw null; set => throw null; } - public float X { get => throw null; set => throw null; } - public float Y { get => throw null; set => throw null; } + public static bool operator ==(System.Drawing.RectangleF left, System.Drawing.RectangleF right) => throw null; public static explicit operator System.Numerics.Vector4(System.Drawing.RectangleF rectangle) => throw null; public static explicit operator System.Drawing.RectangleF(System.Numerics.Vector4 vector) => throw null; public static implicit operator System.Drawing.RectangleF(System.Drawing.Rectangle r) => throw null; + public static bool operator !=(System.Drawing.RectangleF left, System.Drawing.RectangleF right) => throw null; + public float Right { get => throw null; } + public System.Drawing.SizeF Size { get => throw null; set { } } + public float Top { get => throw null; } + public override string ToString() => throw null; + public System.Numerics.Vector4 ToVector4() => throw null; + public static System.Drawing.RectangleF Union(System.Drawing.RectangleF a, System.Drawing.RectangleF b) => throw null; + public float Width { get => throw null; set { } } + public float X { get => throw null; set { } } + public float Y { get => throw null; set { } } } - public struct Size : System.IEquatable { - public static bool operator !=(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; - public static System.Drawing.SizeF operator *(System.Drawing.Size left, float right) => throw null; - public static System.Drawing.Size operator *(System.Drawing.Size left, int right) => throw null; - public static System.Drawing.SizeF operator *(float left, System.Drawing.Size right) => throw null; - public static System.Drawing.Size operator *(int left, System.Drawing.Size right) => throw null; - public static System.Drawing.Size operator +(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; - public static System.Drawing.Size operator -(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; - public static System.Drawing.SizeF operator /(System.Drawing.Size left, float right) => throw null; - public static System.Drawing.Size operator /(System.Drawing.Size left, int right) => throw null; - public static bool operator ==(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; public static System.Drawing.Size Add(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; public static System.Drawing.Size Ceiling(System.Drawing.SizeF value) => throw null; + public Size(System.Drawing.Point pt) => throw null; + public Size(int width, int height) => throw null; public static System.Drawing.Size Empty; public bool Equals(System.Drawing.Size other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public int Height { get => throw null; set => throw null; } + public int Height { get => throw null; set { } } public bool IsEmpty { get => throw null; } + public static System.Drawing.Size operator +(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; + public static System.Drawing.Size operator /(System.Drawing.Size left, int right) => throw null; + public static System.Drawing.SizeF operator /(System.Drawing.Size left, float right) => throw null; + public static bool operator ==(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; + public static explicit operator System.Drawing.Point(System.Drawing.Size size) => throw null; + public static implicit operator System.Drawing.SizeF(System.Drawing.Size p) => throw null; + public static bool operator !=(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; + public static System.Drawing.Size operator *(System.Drawing.Size left, int right) => throw null; + public static System.Drawing.SizeF operator *(System.Drawing.Size left, float right) => throw null; + public static System.Drawing.Size operator *(int left, System.Drawing.Size right) => throw null; + public static System.Drawing.SizeF operator *(float left, System.Drawing.Size right) => throw null; + public static System.Drawing.Size operator -(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; public static System.Drawing.Size Round(System.Drawing.SizeF value) => throw null; - // Stub generator skipped constructor - public Size(System.Drawing.Point pt) => throw null; - public Size(int width, int height) => throw null; public static System.Drawing.Size Subtract(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; public override string ToString() => throw null; public static System.Drawing.Size Truncate(System.Drawing.SizeF value) => throw null; - public int Width { get => throw null; set => throw null; } - public static explicit operator System.Drawing.Point(System.Drawing.Size size) => throw null; - public static implicit operator System.Drawing.SizeF(System.Drawing.Size p) => throw null; + public int Width { get => throw null; set { } } } - public struct SizeF : System.IEquatable { - public static bool operator !=(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; - public static System.Drawing.SizeF operator *(System.Drawing.SizeF left, float right) => throw null; - public static System.Drawing.SizeF operator *(float left, System.Drawing.SizeF right) => throw null; - public static System.Drawing.SizeF operator +(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; - public static System.Drawing.SizeF operator -(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; - public static System.Drawing.SizeF operator /(System.Drawing.SizeF left, float right) => throw null; - public static bool operator ==(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; public static System.Drawing.SizeF Add(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; + public SizeF(System.Drawing.PointF pt) => throw null; + public SizeF(System.Drawing.SizeF size) => throw null; + public SizeF(float width, float height) => throw null; + public SizeF(System.Numerics.Vector2 vector) => throw null; public static System.Drawing.SizeF Empty; public bool Equals(System.Drawing.SizeF other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public float Height { get => throw null; set => throw null; } + public float Height { get => throw null; set { } } public bool IsEmpty { get => throw null; } - // Stub generator skipped constructor - public SizeF(System.Drawing.PointF pt) => throw null; - public SizeF(System.Drawing.SizeF size) => throw null; - public SizeF(System.Numerics.Vector2 vector) => throw null; - public SizeF(float width, float height) => throw null; + public static System.Drawing.SizeF operator +(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; + public static System.Drawing.SizeF operator /(System.Drawing.SizeF left, float right) => throw null; + public static bool operator ==(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; + public static explicit operator System.Numerics.Vector2(System.Drawing.SizeF size) => throw null; + public static explicit operator System.Drawing.SizeF(System.Numerics.Vector2 vector) => throw null; + public static explicit operator System.Drawing.PointF(System.Drawing.SizeF size) => throw null; + public static bool operator !=(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; + public static System.Drawing.SizeF operator *(System.Drawing.SizeF left, float right) => throw null; + public static System.Drawing.SizeF operator *(float left, System.Drawing.SizeF right) => throw null; + public static System.Drawing.SizeF operator -(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; public static System.Drawing.SizeF Subtract(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; public System.Drawing.PointF ToPointF() => throw null; public System.Drawing.Size ToSize() => throw null; public override string ToString() => throw null; public System.Numerics.Vector2 ToVector2() => throw null; - public float Width { get => throw null; set => throw null; } - public static explicit operator System.Drawing.PointF(System.Drawing.SizeF size) => throw null; - public static explicit operator System.Numerics.Vector2(System.Drawing.SizeF size) => throw null; - public static explicit operator System.Drawing.SizeF(System.Numerics.Vector2 vector) => throw null; + public float Width { get => throw null; set { } } } - public static class SystemColors { public static System.Drawing.Color ActiveBorder { get => throw null; } @@ -609,6 +592,5 @@ namespace System public static System.Drawing.Color WindowFrame { get => throw null; } public static System.Drawing.Color WindowText { get => throw null; } } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs new file mode 100644 index 00000000000..276afb953f7 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs new file mode 100644 index 00000000000..3fde3ab894e --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Dynamic.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Asn1.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Asn1.cs index c4c8d6fce0b..030b8f957a3 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Asn1.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Asn1.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Formats.Asn1, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Formats @@ -9,19 +8,16 @@ namespace System { public struct Asn1Tag : System.IEquatable { - public static bool operator !=(System.Formats.Asn1.Asn1Tag left, System.Formats.Asn1.Asn1Tag right) => throw null; - public static bool operator ==(System.Formats.Asn1.Asn1Tag left, System.Formats.Asn1.Asn1Tag right) => throw null; public System.Formats.Asn1.Asn1Tag AsConstructed() => throw null; public System.Formats.Asn1.Asn1Tag AsPrimitive() => throw null; - // Stub generator skipped constructor - public Asn1Tag(System.Formats.Asn1.TagClass tagClass, int tagValue, bool isConstructed = default(bool)) => throw null; - public Asn1Tag(System.Formats.Asn1.UniversalTagNumber universalTagNumber, bool isConstructed = default(bool)) => throw null; public static System.Formats.Asn1.Asn1Tag Boolean; public int CalculateEncodedSize() => throw null; public static System.Formats.Asn1.Asn1Tag ConstructedBitString; public static System.Formats.Asn1.Asn1Tag ConstructedOctetString; - public static System.Formats.Asn1.Asn1Tag Decode(System.ReadOnlySpan source, out int bytesConsumed) => throw null; - public int Encode(System.Span destination) => throw null; + public Asn1Tag(System.Formats.Asn1.TagClass tagClass, int tagValue, bool isConstructed = default(bool)) => throw null; + public Asn1Tag(System.Formats.Asn1.UniversalTagNumber universalTagNumber, bool isConstructed = default(bool)) => throw null; + public static System.Formats.Asn1.Asn1Tag Decode(System.ReadOnlySpan source, out int bytesConsumed) => throw null; + public int Encode(System.Span destination) => throw null; public static System.Formats.Asn1.Asn1Tag Enumerated; public bool Equals(System.Formats.Asn1.Asn1Tag other) => throw null; public override bool Equals(object obj) => throw null; @@ -32,6 +28,8 @@ namespace System public bool IsConstructed { get => throw null; } public static System.Formats.Asn1.Asn1Tag Null; public static System.Formats.Asn1.Asn1Tag ObjectIdentifier; + public static bool operator ==(System.Formats.Asn1.Asn1Tag left, System.Formats.Asn1.Asn1Tag right) => throw null; + public static bool operator !=(System.Formats.Asn1.Asn1Tag left, System.Formats.Asn1.Asn1Tag right) => throw null; public static System.Formats.Asn1.Asn1Tag PrimitiveBitString; public static System.Formats.Asn1.Asn1Tag PrimitiveOctetString; public static System.Formats.Asn1.Asn1Tag Sequence; @@ -39,11 +37,10 @@ namespace System public System.Formats.Asn1.TagClass TagClass { get => throw null; } public int TagValue { get => throw null; } public override string ToString() => throw null; - public static bool TryDecode(System.ReadOnlySpan source, out System.Formats.Asn1.Asn1Tag tag, out int bytesConsumed) => throw null; - public bool TryEncode(System.Span destination, out int bytesWritten) => throw null; + public static bool TryDecode(System.ReadOnlySpan source, out System.Formats.Asn1.Asn1Tag tag, out int bytesConsumed) => throw null; + public bool TryEncode(System.Span destination, out int bytesWritten) => throw null; public static System.Formats.Asn1.Asn1Tag UtcTime; } - public class AsnContentException : System.Exception { public AsnContentException() => throw null; @@ -51,115 +48,102 @@ namespace System public AsnContentException(string message) => throw null; public AsnContentException(string message, System.Exception inner) => throw null; } - public static class AsnDecoder { - public static System.Byte[] ReadBitString(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int unusedBitCount, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static bool ReadBoolean(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static string ReadCharacterString(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Formats.Asn1.UniversalTagNumber encodingType, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static System.Formats.Asn1.Asn1Tag ReadEncodedValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int contentOffset, out int contentLength, out int bytesConsumed) => throw null; - public static System.ReadOnlySpan ReadEnumeratedBytes(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static System.Enum ReadEnumeratedValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Type enumType, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static TEnum ReadEnumeratedValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) where TEnum : System.Enum => throw null; - public static System.DateTimeOffset ReadGeneralizedTime(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static System.Numerics.BigInteger ReadInteger(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static System.ReadOnlySpan ReadIntegerBytes(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static System.Collections.BitArray ReadNamedBitList(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static System.Enum ReadNamedBitListValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Type flagsEnumType, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static TFlagsEnum ReadNamedBitListValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) where TFlagsEnum : System.Enum => throw null; - public static void ReadNull(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static string ReadObjectIdentifier(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static System.Byte[] ReadOctetString(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static void ReadSequence(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int contentOffset, out int contentLength, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static void ReadSetOf(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int contentOffset, out int contentLength, out int bytesConsumed, bool skipSortOrderValidation = default(bool), System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static System.DateTimeOffset ReadUtcTime(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, int twoDigitYearMax = default(int), System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static bool TryReadBitString(System.ReadOnlySpan source, System.Span destination, System.Formats.Asn1.AsnEncodingRules ruleSet, out int unusedBitCount, out int bytesConsumed, out int bytesWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static bool TryReadCharacterString(System.ReadOnlySpan source, System.Span destination, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Formats.Asn1.UniversalTagNumber encodingType, out int bytesConsumed, out int charsWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static bool TryReadCharacterStringBytes(System.ReadOnlySpan source, System.Span destination, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Formats.Asn1.Asn1Tag expectedTag, out int bytesConsumed, out int bytesWritten) => throw null; - public static bool TryReadEncodedValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out System.Formats.Asn1.Asn1Tag tag, out int contentOffset, out int contentLength, out int bytesConsumed) => throw null; - public static bool TryReadInt32(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static bool TryReadInt64(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out System.Int64 value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static bool TryReadOctetString(System.ReadOnlySpan source, System.Span destination, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, out int bytesWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static bool TryReadPrimitiveBitString(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int unusedBitCount, out System.ReadOnlySpan value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static bool TryReadPrimitiveCharacterStringBytes(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Formats.Asn1.Asn1Tag expectedTag, out System.ReadOnlySpan value, out int bytesConsumed) => throw null; - public static bool TryReadPrimitiveOctetString(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out System.ReadOnlySpan value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static bool TryReadUInt32(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out System.UInt32 value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public static bool TryReadUInt64(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out System.UInt64 value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static byte[] ReadBitString(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int unusedBitCount, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static bool ReadBoolean(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static string ReadCharacterString(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Formats.Asn1.UniversalTagNumber encodingType, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static System.Formats.Asn1.Asn1Tag ReadEncodedValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int contentOffset, out int contentLength, out int bytesConsumed) => throw null; + public static System.ReadOnlySpan ReadEnumeratedBytes(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static System.Enum ReadEnumeratedValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Type enumType, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static TEnum ReadEnumeratedValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) where TEnum : System.Enum => throw null; + public static System.DateTimeOffset ReadGeneralizedTime(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static System.Numerics.BigInteger ReadInteger(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static System.ReadOnlySpan ReadIntegerBytes(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static System.Collections.BitArray ReadNamedBitList(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static System.Enum ReadNamedBitListValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Type flagsEnumType, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static TFlagsEnum ReadNamedBitListValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) where TFlagsEnum : System.Enum => throw null; + public static void ReadNull(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static string ReadObjectIdentifier(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static byte[] ReadOctetString(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static void ReadSequence(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int contentOffset, out int contentLength, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static void ReadSetOf(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int contentOffset, out int contentLength, out int bytesConsumed, bool skipSortOrderValidation = default(bool), System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static System.DateTimeOffset ReadUtcTime(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, int twoDigitYearMax = default(int), System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static bool TryReadBitString(System.ReadOnlySpan source, System.Span destination, System.Formats.Asn1.AsnEncodingRules ruleSet, out int unusedBitCount, out int bytesConsumed, out int bytesWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static bool TryReadCharacterString(System.ReadOnlySpan source, System.Span destination, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Formats.Asn1.UniversalTagNumber encodingType, out int bytesConsumed, out int charsWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static bool TryReadCharacterStringBytes(System.ReadOnlySpan source, System.Span destination, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Formats.Asn1.Asn1Tag expectedTag, out int bytesConsumed, out int bytesWritten) => throw null; + public static bool TryReadEncodedValue(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out System.Formats.Asn1.Asn1Tag tag, out int contentOffset, out int contentLength, out int bytesConsumed) => throw null; + public static bool TryReadInt32(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static bool TryReadInt64(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out long value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static bool TryReadOctetString(System.ReadOnlySpan source, System.Span destination, System.Formats.Asn1.AsnEncodingRules ruleSet, out int bytesConsumed, out int bytesWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static bool TryReadPrimitiveBitString(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out int unusedBitCount, out System.ReadOnlySpan value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static bool TryReadPrimitiveCharacterStringBytes(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Formats.Asn1.Asn1Tag expectedTag, out System.ReadOnlySpan value, out int bytesConsumed) => throw null; + public static bool TryReadPrimitiveOctetString(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out System.ReadOnlySpan value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static bool TryReadUInt32(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out uint value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public static bool TryReadUInt64(System.ReadOnlySpan source, System.Formats.Asn1.AsnEncodingRules ruleSet, out ulong value, out int bytesConsumed, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; } - - public enum AsnEncodingRules : int + public enum AsnEncodingRules { BER = 0, CER = 1, DER = 2, } - public class AsnReader { - public AsnReader(System.ReadOnlyMemory data, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Formats.Asn1.AsnReaderOptions options = default(System.Formats.Asn1.AsnReaderOptions)) => throw null; + public AsnReader(System.ReadOnlyMemory data, System.Formats.Asn1.AsnEncodingRules ruleSet, System.Formats.Asn1.AsnReaderOptions options = default(System.Formats.Asn1.AsnReaderOptions)) => throw null; public bool HasData { get => throw null; } - public System.ReadOnlyMemory PeekContentBytes() => throw null; - public System.ReadOnlyMemory PeekEncodedValue() => throw null; + public System.ReadOnlyMemory PeekContentBytes() => throw null; + public System.ReadOnlyMemory PeekEncodedValue() => throw null; public System.Formats.Asn1.Asn1Tag PeekTag() => throw null; - public System.Byte[] ReadBitString(out int unusedBitCount, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public byte[] ReadBitString(out int unusedBitCount, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public bool ReadBoolean(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public string ReadCharacterString(System.Formats.Asn1.UniversalTagNumber encodingType, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public System.ReadOnlyMemory ReadEncodedValue() => throw null; - public System.ReadOnlyMemory ReadEnumeratedBytes(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public System.ReadOnlyMemory ReadEncodedValue() => throw null; + public System.ReadOnlyMemory ReadEnumeratedBytes(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public System.Enum ReadEnumeratedValue(System.Type enumType, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public TEnum ReadEnumeratedValue(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) where TEnum : System.Enum => throw null; public System.DateTimeOffset ReadGeneralizedTime(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public System.Numerics.BigInteger ReadInteger(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public System.ReadOnlyMemory ReadIntegerBytes(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public System.ReadOnlyMemory ReadIntegerBytes(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public System.Collections.BitArray ReadNamedBitList(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public System.Enum ReadNamedBitListValue(System.Type flagsEnumType, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public TFlagsEnum ReadNamedBitListValue(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) where TFlagsEnum : System.Enum => throw null; public void ReadNull(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public string ReadObjectIdentifier(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public System.Byte[] ReadOctetString(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public byte[] ReadOctetString(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public System.Formats.Asn1.AsnReader ReadSequence(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public System.Formats.Asn1.AsnReader ReadSetOf(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public System.Formats.Asn1.AsnReader ReadSetOf(bool skipSortOrderValidation, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public System.DateTimeOffset ReadUtcTime(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public System.Formats.Asn1.AsnReader ReadSetOf(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public System.DateTimeOffset ReadUtcTime(int twoDigitYearMax, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public System.DateTimeOffset ReadUtcTime(System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public System.Formats.Asn1.AsnEncodingRules RuleSet { get => throw null; } public void ThrowIfNotEmpty() => throw null; - public bool TryReadBitString(System.Span destination, out int unusedBitCount, out int bytesWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public bool TryReadCharacterString(System.Span destination, System.Formats.Asn1.UniversalTagNumber encodingType, out int charsWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public bool TryReadCharacterStringBytes(System.Span destination, System.Formats.Asn1.Asn1Tag expectedTag, out int bytesWritten) => throw null; + public bool TryReadBitString(System.Span destination, out int unusedBitCount, out int bytesWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public bool TryReadCharacterString(System.Span destination, System.Formats.Asn1.UniversalTagNumber encodingType, out int charsWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public bool TryReadCharacterStringBytes(System.Span destination, System.Formats.Asn1.Asn1Tag expectedTag, out int bytesWritten) => throw null; public bool TryReadInt32(out int value, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public bool TryReadInt64(out System.Int64 value, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public bool TryReadOctetString(System.Span destination, out int bytesWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public bool TryReadPrimitiveBitString(out int unusedBitCount, out System.ReadOnlyMemory value, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public bool TryReadPrimitiveCharacterStringBytes(System.Formats.Asn1.Asn1Tag expectedTag, out System.ReadOnlyMemory contents) => throw null; - public bool TryReadPrimitiveOctetString(out System.ReadOnlyMemory contents, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public bool TryReadUInt32(out System.UInt32 value, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public bool TryReadUInt64(out System.UInt64 value, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public bool TryReadInt64(out long value, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public bool TryReadOctetString(System.Span destination, out int bytesWritten, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public bool TryReadPrimitiveBitString(out int unusedBitCount, out System.ReadOnlyMemory value, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public bool TryReadPrimitiveCharacterStringBytes(System.Formats.Asn1.Asn1Tag expectedTag, out System.ReadOnlyMemory contents) => throw null; + public bool TryReadPrimitiveOctetString(out System.ReadOnlyMemory contents, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public bool TryReadUInt32(out uint value, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public bool TryReadUInt64(out ulong value, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; } - public struct AsnReaderOptions { - // Stub generator skipped constructor - public bool SkipSetSortOrderVerification { get => throw null; set => throw null; } - public int UtcTimeTwoDigitYearMax { get => throw null; set => throw null; } + public bool SkipSetSortOrderVerification { get => throw null; set { } } + public int UtcTimeTwoDigitYearMax { get => throw null; set { } } } - - public class AsnWriter + public sealed class AsnWriter { - public struct Scope : System.IDisposable - { - public void Dispose() => throw null; - // Stub generator skipped constructor - } - - + public void CopyTo(System.Formats.Asn1.AsnWriter destination) => throw null; public AsnWriter(System.Formats.Asn1.AsnEncodingRules ruleSet) => throw null; public AsnWriter(System.Formats.Asn1.AsnEncodingRules ruleSet, int initialCapacity) => throw null; - public void CopyTo(System.Formats.Asn1.AsnWriter destination) => throw null; - public System.Byte[] Encode() => throw null; - public int Encode(System.Span destination) => throw null; + public byte[] Encode() => throw null; + public int Encode(System.Span destination) => throw null; public bool EncodedValueEquals(System.Formats.Asn1.AsnWriter other) => throw null; - public bool EncodedValueEquals(System.ReadOnlySpan other) => throw null; + public bool EncodedValueEquals(System.ReadOnlySpan other) => throw null; public int GetEncodedLength() => throw null; public void PopOctetString(System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void PopSequence(System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; @@ -169,84 +153,85 @@ namespace System public System.Formats.Asn1.AsnWriter.Scope PushSetOf(System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void Reset() => throw null; public System.Formats.Asn1.AsnEncodingRules RuleSet { get => throw null; } - public bool TryEncode(System.Span destination, out int bytesWritten) => throw null; - public void WriteBitString(System.ReadOnlySpan value, int unusedBitCount = default(int), System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public struct Scope : System.IDisposable + { + public void Dispose() => throw null; + } + public bool TryEncode(System.Span destination, out int bytesWritten) => throw null; + public void WriteBitString(System.ReadOnlySpan value, int unusedBitCount = default(int), System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void WriteBoolean(bool value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public void WriteCharacterString(System.Formats.Asn1.UniversalTagNumber encodingType, System.ReadOnlySpan str, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public void WriteCharacterString(System.Formats.Asn1.UniversalTagNumber encodingType, System.ReadOnlySpan str, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void WriteCharacterString(System.Formats.Asn1.UniversalTagNumber encodingType, string value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public void WriteEncodedValue(System.ReadOnlySpan value) => throw null; + public void WriteEncodedValue(System.ReadOnlySpan value) => throw null; public void WriteEnumeratedValue(System.Enum value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void WriteEnumeratedValue(TEnum value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) where TEnum : System.Enum => throw null; public void WriteGeneralizedTime(System.DateTimeOffset value, bool omitFractionalSeconds = default(bool), System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public void WriteInteger(long value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void WriteInteger(System.Numerics.BigInteger value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public void WriteInteger(System.ReadOnlySpan value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public void WriteInteger(System.Int64 value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public void WriteInteger(System.UInt64 value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public void WriteIntegerUnsigned(System.ReadOnlySpan value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public void WriteInteger(System.ReadOnlySpan value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public void WriteInteger(ulong value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public void WriteIntegerUnsigned(System.ReadOnlySpan value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void WriteNamedBitList(System.Collections.BitArray value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void WriteNamedBitList(System.Enum value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void WriteNamedBitList(TEnum value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) where TEnum : System.Enum => throw null; public void WriteNull(System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public void WriteObjectIdentifier(System.ReadOnlySpan oidValue, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public void WriteObjectIdentifier(System.ReadOnlySpan oidValue, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void WriteObjectIdentifier(string oidValue, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public void WriteOctetString(System.ReadOnlySpan value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; - public void WriteUtcTime(System.DateTimeOffset value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public void WriteOctetString(System.ReadOnlySpan value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; public void WriteUtcTime(System.DateTimeOffset value, int twoDigitYearMax, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; + public void WriteUtcTime(System.DateTimeOffset value, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; } - - public enum TagClass : int + public enum TagClass { + Universal = 0, Application = 64, ContextSpecific = 128, Private = 192, - Universal = 0, } - - public enum UniversalTagNumber : int + public enum UniversalTagNumber { - BMPString = 30, - BitString = 3, - Boolean = 1, - Date = 31, - DateTime = 33, - Duration = 34, - Embedded = 11, EndOfContents = 0, - Enumerated = 10, - External = 8, - GeneralString = 27, - GeneralizedTime = 24, - GraphicString = 25, - IA5String = 22, - ISO646String = 26, - InstanceOf = 8, + Boolean = 1, Integer = 2, - Null = 5, - NumericString = 18, - ObjectDescriptor = 7, - ObjectIdentifier = 6, - ObjectIdentifierIRI = 35, + BitString = 3, OctetString = 4, - PrintableString = 19, + Null = 5, + ObjectIdentifier = 6, + ObjectDescriptor = 7, + External = 8, + InstanceOf = 8, Real = 9, + Enumerated = 10, + Embedded = 11, + UTF8String = 12, RelativeObjectIdentifier = 13, - RelativeObjectIdentifierIRI = 36, + Time = 14, Sequence = 16, SequenceOf = 16, Set = 17, SetOf = 17, + NumericString = 18, + PrintableString = 19, T61String = 20, TeletexString = 20, - Time = 14, - TimeOfDay = 32, - UTF8String = 12, + VideotexString = 21, + IA5String = 22, + UtcTime = 23, + GeneralizedTime = 24, + GraphicString = 25, + ISO646String = 26, + VisibleString = 26, + GeneralString = 27, UniversalString = 28, UnrestrictedCharacterString = 29, - UtcTime = 23, - VideotexString = 21, - VisibleString = 26, + BMPString = 30, + Date = 31, + TimeOfDay = 32, + DateTime = 33, + Duration = 34, + ObjectIdentifierIRI = 35, + RelativeObjectIdentifierIRI = 36, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Tar.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Tar.cs index 76c2ed09ae4..eacee23161b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Tar.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Tar.cs @@ -1,93 +1,83 @@ // This file contains auto-generated code. // Generated from `System.Formats.Tar, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Formats { namespace Tar { - public class GnuTarEntry : System.Formats.Tar.PosixTarEntry + public sealed class GnuTarEntry : System.Formats.Tar.PosixTarEntry { - public System.DateTimeOffset AccessTime { get => throw null; set => throw null; } - public System.DateTimeOffset ChangeTime { get => throw null; set => throw null; } + public System.DateTimeOffset AccessTime { get => throw null; set { } } + public System.DateTimeOffset ChangeTime { get => throw null; set { } } public GnuTarEntry(System.Formats.Tar.TarEntry other) => throw null; public GnuTarEntry(System.Formats.Tar.TarEntryType entryType, string entryName) => throw null; } - - public class PaxGlobalExtendedAttributesTarEntry : System.Formats.Tar.PosixTarEntry + public sealed class PaxGlobalExtendedAttributesTarEntry : System.Formats.Tar.PosixTarEntry { - public System.Collections.Generic.IReadOnlyDictionary GlobalExtendedAttributes { get => throw null; } public PaxGlobalExtendedAttributesTarEntry(System.Collections.Generic.IEnumerable> globalExtendedAttributes) => throw null; + public System.Collections.Generic.IReadOnlyDictionary GlobalExtendedAttributes { get => throw null; } } - - public class PaxTarEntry : System.Formats.Tar.PosixTarEntry + public sealed class PaxTarEntry : System.Formats.Tar.PosixTarEntry { - public System.Collections.Generic.IReadOnlyDictionary ExtendedAttributes { get => throw null; } public PaxTarEntry(System.Formats.Tar.TarEntry other) => throw null; public PaxTarEntry(System.Formats.Tar.TarEntryType entryType, string entryName) => throw null; public PaxTarEntry(System.Formats.Tar.TarEntryType entryType, string entryName, System.Collections.Generic.IEnumerable> extendedAttributes) => throw null; + public System.Collections.Generic.IReadOnlyDictionary ExtendedAttributes { get => throw null; } } - public abstract class PosixTarEntry : System.Formats.Tar.TarEntry { - public int DeviceMajor { get => throw null; set => throw null; } - public int DeviceMinor { get => throw null; set => throw null; } - public string GroupName { get => throw null; set => throw null; } - internal PosixTarEntry() => throw null; - public string UserName { get => throw null; set => throw null; } + public int DeviceMajor { get => throw null; set { } } + public int DeviceMinor { get => throw null; set { } } + public string GroupName { get => throw null; set { } } + public string UserName { get => throw null; set { } } } - public abstract class TarEntry { public int Checksum { get => throw null; } - public System.IO.Stream DataStream { get => throw null; set => throw null; } + public System.IO.Stream DataStream { get => throw null; set { } } public System.Formats.Tar.TarEntryType EntryType { get => throw null; } public void ExtractToFile(string destinationFileName, bool overwrite) => throw null; public System.Threading.Tasks.Task ExtractToFileAsync(string destinationFileName, bool overwrite, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Formats.Tar.TarEntryFormat Format { get => throw null; } - public int Gid { get => throw null; set => throw null; } - public System.Int64 Length { get => throw null; } - public string LinkName { get => throw null; set => throw null; } - public System.IO.UnixFileMode Mode { get => throw null; set => throw null; } - public System.DateTimeOffset ModificationTime { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - internal TarEntry() => throw null; + public int Gid { get => throw null; set { } } + public long Length { get => throw null; } + public string LinkName { get => throw null; set { } } + public System.IO.UnixFileMode Mode { get => throw null; set { } } + public System.DateTimeOffset ModificationTime { get => throw null; set { } } + public string Name { get => throw null; set { } } public override string ToString() => throw null; - public int Uid { get => throw null; set => throw null; } + public int Uid { get => throw null; set { } } } - - public enum TarEntryFormat : int + public enum TarEntryFormat { - Gnu = 4, - Pax = 3, Unknown = 0, - Ustar = 2, V7 = 1, + Ustar = 2, + Pax = 3, + Gnu = 4, } - public enum TarEntryType : byte { - BlockDevice = 52, - CharacterDevice = 51, - ContiguousFile = 55, - Directory = 53, - DirectoryList = 68, - ExtendedAttributes = 120, - Fifo = 54, - GlobalExtendedAttributes = 103, + V7RegularFile = 0, + RegularFile = 48, HardLink = 49, + SymbolicLink = 50, + CharacterDevice = 51, + BlockDevice = 52, + Directory = 53, + Fifo = 54, + ContiguousFile = 55, + DirectoryList = 68, LongLink = 75, LongPath = 76, MultiVolume = 77, - RegularFile = 48, RenamedOrSymlinked = 78, SparseFile = 83, - SymbolicLink = 50, TapeVolume = 86, - V7RegularFile = 0, + GlobalExtendedAttributes = 103, + ExtendedAttributes = 120, } - public static class TarFile { public static void CreateFromDirectory(string sourceDirectoryName, System.IO.Stream destination, bool includeBaseDirectory) => throw null; @@ -99,42 +89,37 @@ namespace System public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceFileName, string destinationDirectoryName, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - public class TarReader : System.IAsyncDisposable, System.IDisposable + public sealed class TarReader : System.IAsyncDisposable, System.IDisposable { + public TarReader(System.IO.Stream archiveStream, bool leaveOpen = default(bool)) => throw null; public void Dispose() => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public System.Formats.Tar.TarEntry GetNextEntry(bool copyData = default(bool)) => throw null; public System.Threading.Tasks.ValueTask GetNextEntryAsync(bool copyData = default(bool), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public TarReader(System.IO.Stream archiveStream, bool leaveOpen = default(bool)) => throw null; } - - public class TarWriter : System.IAsyncDisposable, System.IDisposable + public sealed class TarWriter : System.IAsyncDisposable, System.IDisposable { + public TarWriter(System.IO.Stream archiveStream) => throw null; + public TarWriter(System.IO.Stream archiveStream, bool leaveOpen = default(bool)) => throw null; + public TarWriter(System.IO.Stream archiveStream, System.Formats.Tar.TarEntryFormat format = default(System.Formats.Tar.TarEntryFormat), bool leaveOpen = default(bool)) => throw null; public void Dispose() => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public System.Formats.Tar.TarEntryFormat Format { get => throw null; } - public TarWriter(System.IO.Stream archiveStream) => throw null; - public TarWriter(System.IO.Stream archiveStream, System.Formats.Tar.TarEntryFormat format = default(System.Formats.Tar.TarEntryFormat), bool leaveOpen = default(bool)) => throw null; - public TarWriter(System.IO.Stream archiveStream, bool leaveOpen = default(bool)) => throw null; public void WriteEntry(System.Formats.Tar.TarEntry entry) => throw null; public void WriteEntry(string fileName, string entryName) => throw null; public System.Threading.Tasks.Task WriteEntryAsync(System.Formats.Tar.TarEntry entry, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task WriteEntryAsync(string fileName, string entryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - public class UstarTarEntry : System.Formats.Tar.PosixTarEntry + public sealed class UstarTarEntry : System.Formats.Tar.PosixTarEntry { public UstarTarEntry(System.Formats.Tar.TarEntry other) => throw null; public UstarTarEntry(System.Formats.Tar.TarEntryType entryType, string entryName) => throw null; } - - public class V7TarEntry : System.Formats.Tar.TarEntry + public sealed class V7TarEntry : System.Formats.Tar.TarEntry { public V7TarEntry(System.Formats.Tar.TarEntry other) => throw null; public V7TarEntry(System.Formats.Tar.TarEntryType entryType, string entryName) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs new file mode 100644 index 00000000000..2b71a1a6508 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Globalization.Calendars, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs new file mode 100644 index 00000000000..63a6ec83418 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Globalization.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs new file mode 100644 index 00000000000..875c58efa3b --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Globalization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.Brotli.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.Brotli.cs index c1a3d5debcc..bfe89b8eec2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.Brotli.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.Brotli.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.IO.Compression.Brotli, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. - namespace System { namespace IO @@ -9,58 +8,53 @@ namespace System { public struct BrotliDecoder : System.IDisposable { - // Stub generator skipped constructor - public System.Buffers.OperationStatus Decompress(System.ReadOnlySpan source, System.Span destination, out int bytesConsumed, out int bytesWritten) => throw null; + public System.Buffers.OperationStatus Decompress(System.ReadOnlySpan source, System.Span destination, out int bytesConsumed, out int bytesWritten) => throw null; public void Dispose() => throw null; - public static bool TryDecompress(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + public static bool TryDecompress(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - public struct BrotliEncoder : System.IDisposable { - // Stub generator skipped constructor + public System.Buffers.OperationStatus Compress(System.ReadOnlySpan source, System.Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock) => throw null; public BrotliEncoder(int quality, int window) => throw null; - public System.Buffers.OperationStatus Compress(System.ReadOnlySpan source, System.Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock) => throw null; public void Dispose() => throw null; - public System.Buffers.OperationStatus Flush(System.Span destination, out int bytesWritten) => throw null; + public System.Buffers.OperationStatus Flush(System.Span destination, out int bytesWritten) => throw null; public static int GetMaxCompressedLength(int inputSize) => throw null; - public static bool TryCompress(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; - public static bool TryCompress(System.ReadOnlySpan source, System.Span destination, out int bytesWritten, int quality, int window) => throw null; + public static bool TryCompress(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + public static bool TryCompress(System.ReadOnlySpan source, System.Span destination, out int bytesWritten, int quality, int window) => throw null; } - - public class BrotliStream : System.IO.Stream + public sealed class BrotliStream : System.IO.Stream { public System.IO.Stream BaseStream { get => throw null; } - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override bool CanRead { get => throw null; } + public override bool CanSeek { get => throw null; } + public override bool CanWrite { get => throw null; } public BrotliStream(System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel) => throw null; public BrotliStream(System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel, bool leaveOpen) => throw null; public BrotliStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode) => throw null; public BrotliStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode, bool leaveOpen) => throw null; - public override bool CanRead { get => throw null; } - public override bool CanSeek { get => throw null; } - public override bool CanWrite { get => throw null; } protected override void Dispose(bool disposing) => throw null; public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public override int EndRead(System.IAsyncResult asyncResult) => throw null; public override void EndWrite(System.IAsyncResult asyncResult) => throw null; public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 Length { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override int ReadByte() => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs new file mode 100644 index 00000000000..7275a34a891 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.ZipFile.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.ZipFile.cs index 2e9edb888ef..49bb5744236 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.ZipFile.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.ZipFile.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.IO.Compression.ZipFile, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. - namespace System { namespace IO @@ -13,15 +12,14 @@ namespace System public static void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory) => throw null; public static void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding entryNameEncoding) => throw null; public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName) => throw null; + public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles) => throw null; public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding) => throw null; public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding, bool overwriteFiles) => throw null; - public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles) => throw null; public static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode) => throw null; public static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding entryNameEncoding) => throw null; public static System.IO.Compression.ZipArchive OpenRead(string archiveFileName) => throw null; } - - public static class ZipFileExtensions + public static partial class ZipFileExtensions { public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile(this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName) => throw null; public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile(this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName, System.IO.Compression.CompressionLevel compressionLevel) => throw null; @@ -30,7 +28,6 @@ namespace System public static void ExtractToFile(this System.IO.Compression.ZipArchiveEntry source, string destinationFileName) => throw null; public static void ExtractToFile(this System.IO.Compression.ZipArchiveEntry source, string destinationFileName, bool overwrite) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.cs index d622100714e..2b38f8bafd0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.cs @@ -1,31 +1,28 @@ // This file contains auto-generated code. // Generated from `System.IO.Compression, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. - namespace System { namespace IO { namespace Compression { - public enum CompressionLevel : int + public enum CompressionLevel { + Optimal = 0, Fastest = 1, NoCompression = 2, - Optimal = 0, SmallestSize = 3, } - - public enum CompressionMode : int + public enum CompressionMode { - Compress = 1, Decompress = 0, + Compress = 1, } - public class DeflateStream : System.IO.Stream { public System.IO.Stream BaseStream { get => throw null; } - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } @@ -41,134 +38,128 @@ namespace System public override void EndWrite(System.IAsyncResult asyncResult) => throw null; public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 Length { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override int ReadByte() => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; } - public class GZipStream : System.IO.Stream { public System.IO.Stream BaseStream { get => throw null; } - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } public override void CopyTo(System.IO.Stream destination, int bufferSize) => throw null; public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; - protected override void Dispose(bool disposing) => throw null; - public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public override int EndRead(System.IAsyncResult asyncResult) => throw null; - public override void EndWrite(System.IAsyncResult asyncResult) => throw null; - public override void Flush() => throw null; - public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; public GZipStream(System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel) => throw null; public GZipStream(System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel, bool leaveOpen) => throw null; public GZipStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode) => throw null; public GZipStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode, bool leaveOpen) => throw null; - public override System.Int64 Length { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override int ReadByte() => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; - } - - public class ZLibStream : System.IO.Stream - { - public System.IO.Stream BaseStream { get => throw null; } - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public override bool CanRead { get => throw null; } - public override bool CanSeek { get => throw null; } - public override bool CanWrite { get => throw null; } - public override void CopyTo(System.IO.Stream destination, int bufferSize) => throw null; - public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; protected override void Dispose(bool disposing) => throw null; public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public override int EndRead(System.IAsyncResult asyncResult) => throw null; public override void EndWrite(System.IAsyncResult asyncResult) => throw null; public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 Length { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override int ReadByte() => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; - public ZLibStream(System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel) => throw null; - public ZLibStream(System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel, bool leaveOpen) => throw null; - public ZLibStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode) => throw null; - public ZLibStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode, bool leaveOpen) => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; } - public class ZipArchive : System.IDisposable { - public string Comment { get => throw null; set => throw null; } + public string Comment { get => throw null; set { } } public System.IO.Compression.ZipArchiveEntry CreateEntry(string entryName) => throw null; public System.IO.Compression.ZipArchiveEntry CreateEntry(string entryName, System.IO.Compression.CompressionLevel compressionLevel) => throw null; + public ZipArchive(System.IO.Stream stream) => throw null; + public ZipArchive(System.IO.Stream stream, System.IO.Compression.ZipArchiveMode mode) => throw null; + public ZipArchive(System.IO.Stream stream, System.IO.Compression.ZipArchiveMode mode, bool leaveOpen) => throw null; + public ZipArchive(System.IO.Stream stream, System.IO.Compression.ZipArchiveMode mode, bool leaveOpen, System.Text.Encoding entryNameEncoding) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection Entries { get => throw null; } public System.IO.Compression.ZipArchiveEntry GetEntry(string entryName) => throw null; public System.IO.Compression.ZipArchiveMode Mode { get => throw null; } - public ZipArchive(System.IO.Stream stream) => throw null; - public ZipArchive(System.IO.Stream stream, System.IO.Compression.ZipArchiveMode mode) => throw null; - public ZipArchive(System.IO.Stream stream, System.IO.Compression.ZipArchiveMode mode, bool leaveOpen) => throw null; - public ZipArchive(System.IO.Stream stream, System.IO.Compression.ZipArchiveMode mode, bool leaveOpen, System.Text.Encoding entryNameEncoding) => throw null; } - public class ZipArchiveEntry { public System.IO.Compression.ZipArchive Archive { get => throw null; } - public string Comment { get => throw null; set => throw null; } - public System.Int64 CompressedLength { get => throw null; } - public System.UInt32 Crc32 { get => throw null; } + public string Comment { get => throw null; set { } } + public long CompressedLength { get => throw null; } + public uint Crc32 { get => throw null; } public void Delete() => throw null; - public int ExternalAttributes { get => throw null; set => throw null; } + public int ExternalAttributes { get => throw null; set { } } public string FullName { get => throw null; } public bool IsEncrypted { get => throw null; } - public System.DateTimeOffset LastWriteTime { get => throw null; set => throw null; } - public System.Int64 Length { get => throw null; } + public System.DateTimeOffset LastWriteTime { get => throw null; set { } } + public long Length { get => throw null; } public string Name { get => throw null; } public System.IO.Stream Open() => throw null; public override string ToString() => throw null; } - - public enum ZipArchiveMode : int + public enum ZipArchiveMode { - Create = 1, Read = 0, + Create = 1, Update = 2, } - + public sealed class ZLibStream : System.IO.Stream + { + public System.IO.Stream BaseStream { get => throw null; } + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override bool CanRead { get => throw null; } + public override bool CanSeek { get => throw null; } + public override bool CanWrite { get => throw null; } + public override void CopyTo(System.IO.Stream destination, int bufferSize) => throw null; + public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; + public ZLibStream(System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel) => throw null; + public ZLibStream(System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel, bool leaveOpen) => throw null; + public ZLibStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode) => throw null; + public ZLibStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode, bool leaveOpen) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public override int EndRead(System.IAsyncResult asyncResult) => throw null; + public override void EndWrite(System.IAsyncResult asyncResult) => throw null; + public override void Flush() => throw null; + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int ReadByte() => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; + } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.AccessControl.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.AccessControl.cs index 8dd026736ca..3275c91aa0c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.AccessControl.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.AccessControl.cs @@ -1,11 +1,10 @@ // This file contains auto-generated code. // Generated from `System.IO.FileSystem.AccessControl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace IO { - public static class FileSystemAclExtensions + public static partial class FileSystemAclExtensions { public static void Create(this System.IO.DirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) => throw null; public static System.IO.FileStream Create(this System.IO.FileInfo fileInfo, System.IO.FileMode mode, System.Security.AccessControl.FileSystemRights rights, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity) => throw null; @@ -19,7 +18,6 @@ namespace System public static void SetAccessControl(this System.IO.FileInfo fileInfo, System.Security.AccessControl.FileSecurity fileSecurity) => throw null; public static void SetAccessControl(this System.IO.FileStream fileStream, System.Security.AccessControl.FileSecurity fileSecurity) => throw null; } - } namespace Security { @@ -47,20 +45,17 @@ namespace System protected void SetAccessRule(System.Security.AccessControl.ObjectAccessRule rule) => throw null; protected void SetAuditRule(System.Security.AccessControl.ObjectAuditRule rule) => throw null; } - - public class DirectorySecurity : System.Security.AccessControl.FileSystemSecurity + public sealed class DirectorySecurity : System.Security.AccessControl.FileSystemSecurity { public DirectorySecurity() => throw null; public DirectorySecurity(string name, System.Security.AccessControl.AccessControlSections includeSections) => throw null; } - - public class FileSecurity : System.Security.AccessControl.FileSystemSecurity + public sealed class FileSecurity : System.Security.AccessControl.FileSystemSecurity { public FileSecurity() => throw null; public FileSecurity(string fileName, System.Security.AccessControl.AccessControlSections includeSections) => throw null; } - - public class FileSystemAccessRule : System.Security.AccessControl.AccessRule + public sealed class FileSystemAccessRule : System.Security.AccessControl.AccessRule { public FileSystemAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.FileSystemRights fileSystemRights, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; public FileSystemAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.FileSystemRights fileSystemRights, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; @@ -68,8 +63,7 @@ namespace System public FileSystemAccessRule(string identity, System.Security.AccessControl.FileSystemRights fileSystemRights, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; public System.Security.AccessControl.FileSystemRights FileSystemRights { get => throw null; } } - - public class FileSystemAuditRule : System.Security.AccessControl.AuditRule + public sealed class FileSystemAuditRule : System.Security.AccessControl.AuditRule { public FileSystemAuditRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.FileSystemRights fileSystemRights, System.Security.AccessControl.AuditFlags flags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AuditFlags)) => throw null; public FileSystemAuditRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.FileSystemRights fileSystemRights, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AuditFlags)) => throw null; @@ -77,45 +71,42 @@ namespace System public FileSystemAuditRule(string identity, System.Security.AccessControl.FileSystemRights fileSystemRights, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AuditFlags)) => throw null; public System.Security.AccessControl.FileSystemRights FileSystemRights { get => throw null; } } - [System.Flags] - public enum FileSystemRights : int + public enum FileSystemRights { - AppendData = 4, - ChangePermissions = 262144, - CreateDirectories = 4, - CreateFiles = 2, - Delete = 65536, - DeleteSubdirectoriesAndFiles = 64, - ExecuteFile = 32, - FullControl = 2032127, ListDirectory = 1, - Modify = 197055, + ReadData = 1, + CreateFiles = 2, + WriteData = 2, + AppendData = 4, + CreateDirectories = 4, + ReadExtendedAttributes = 8, + WriteExtendedAttributes = 16, + ExecuteFile = 32, + Traverse = 32, + DeleteSubdirectoriesAndFiles = 64, + ReadAttributes = 128, + WriteAttributes = 256, + Write = 278, + Delete = 65536, + ReadPermissions = 131072, Read = 131209, ReadAndExecute = 131241, - ReadAttributes = 128, - ReadData = 1, - ReadExtendedAttributes = 8, - ReadPermissions = 131072, - Synchronize = 1048576, + Modify = 197055, + ChangePermissions = 262144, TakeOwnership = 524288, - Traverse = 32, - Write = 278, - WriteAttributes = 256, - WriteData = 2, - WriteExtendedAttributes = 16, + Synchronize = 1048576, + FullControl = 2032127, } - public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity { public override System.Type AccessRightType { get => throw null; } - public override System.Security.AccessControl.AccessRule AccessRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type) => throw null; + public override sealed System.Security.AccessControl.AccessRule AccessRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type) => throw null; public override System.Type AccessRuleType { get => throw null; } public void AddAccessRule(System.Security.AccessControl.FileSystemAccessRule rule) => throw null; public void AddAuditRule(System.Security.AccessControl.FileSystemAuditRule rule) => throw null; - public override System.Security.AccessControl.AuditRule AuditRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags) => throw null; + public override sealed System.Security.AccessControl.AuditRule AuditRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags) => throw null; public override System.Type AuditRuleType { get => throw null; } - internal FileSystemSecurity() : base(default(bool), default(System.Security.AccessControl.ResourceType)) => throw null; public bool RemoveAccessRule(System.Security.AccessControl.FileSystemAccessRule rule) => throw null; public void RemoveAccessRuleAll(System.Security.AccessControl.FileSystemAccessRule rule) => throw null; public void RemoveAccessRuleSpecific(System.Security.AccessControl.FileSystemAccessRule rule) => throw null; @@ -125,8 +116,8 @@ namespace System public void ResetAccessRule(System.Security.AccessControl.FileSystemAccessRule rule) => throw null; public void SetAccessRule(System.Security.AccessControl.FileSystemAccessRule rule) => throw null; public void SetAuditRule(System.Security.AccessControl.FileSystemAuditRule rule) => throw null; + internal FileSystemSecurity() : base(default(bool), default(System.Security.AccessControl.ResourceType)) { } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.DriveInfo.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.DriveInfo.cs index f5730af1388..001d628735f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.DriveInfo.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.DriveInfo.cs @@ -1,15 +1,14 @@ // This file contains auto-generated code. // Generated from `System.IO.FileSystem.DriveInfo, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace IO { - public class DriveInfo : System.Runtime.Serialization.ISerializable + public sealed class DriveInfo : System.Runtime.Serialization.ISerializable { - public System.Int64 AvailableFreeSpace { get => throw null; } - public string DriveFormat { get => throw null; } + public long AvailableFreeSpace { get => throw null; } public DriveInfo(string driveName) => throw null; + public string DriveFormat { get => throw null; } public System.IO.DriveType DriveType { get => throw null; } public static System.IO.DriveInfo[] GetDrives() => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -17,11 +16,10 @@ namespace System public string Name { get => throw null; } public System.IO.DirectoryInfo RootDirectory { get => throw null; } public override string ToString() => throw null; - public System.Int64 TotalFreeSpace { get => throw null; } - public System.Int64 TotalSize { get => throw null; } - public string VolumeLabel { get => throw null; set => throw null; } + public long TotalFreeSpace { get => throw null; } + public long TotalSize { get => throw null; } + public string VolumeLabel { get => throw null; set { } } } - public class DriveNotFoundException : System.IO.IOException { public DriveNotFoundException() => throw null; @@ -29,17 +27,15 @@ namespace System public DriveNotFoundException(string message) => throw null; public DriveNotFoundException(string message, System.Exception innerException) => throw null; } - - public enum DriveType : int + public enum DriveType { - CDRom = 5, + Unknown = 0, + NoRootDirectory = 1, + Removable = 2, Fixed = 3, Network = 4, - NoRootDirectory = 1, + CDRom = 5, Ram = 6, - Removable = 2, - Unknown = 0, } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs new file mode 100644 index 00000000000..10eaf2f92c5 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.IO.FileSystem.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Watcher.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Watcher.cs index 9019b06e86c..97d776bef42 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Watcher.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Watcher.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.IO.FileSystem.Watcher, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace IO @@ -10,9 +9,7 @@ namespace System public ErrorEventArgs(System.Exception exception) => throw null; public virtual System.Exception GetException() => throw null; } - public delegate void ErrorEventHandler(object sender, System.IO.ErrorEventArgs e); - public class FileSystemEventArgs : System.EventArgs { public System.IO.WatcherChangeTypes ChangeType { get => throw null; } @@ -20,41 +17,38 @@ namespace System public string FullPath { get => throw null; } public string Name { get => throw null; } } - public delegate void FileSystemEventHandler(object sender, System.IO.FileSystemEventArgs e); - public class FileSystemWatcher : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize { public void BeginInit() => throw null; - public event System.IO.FileSystemEventHandler Changed; - public event System.IO.FileSystemEventHandler Created; - public event System.IO.FileSystemEventHandler Deleted; - protected override void Dispose(bool disposing) => throw null; - public bool EnableRaisingEvents { get => throw null; set => throw null; } - public void EndInit() => throw null; - public event System.IO.ErrorEventHandler Error; + public event System.IO.FileSystemEventHandler Changed { add { } remove { } } + public event System.IO.FileSystemEventHandler Created { add { } remove { } } public FileSystemWatcher() => throw null; public FileSystemWatcher(string path) => throw null; public FileSystemWatcher(string path, string filter) => throw null; - public string Filter { get => throw null; set => throw null; } + public event System.IO.FileSystemEventHandler Deleted { add { } remove { } } + protected override void Dispose(bool disposing) => throw null; + public bool EnableRaisingEvents { get => throw null; set { } } + public void EndInit() => throw null; + public event System.IO.ErrorEventHandler Error { add { } remove { } } + public string Filter { get => throw null; set { } } public System.Collections.ObjectModel.Collection Filters { get => throw null; } - public bool IncludeSubdirectories { get => throw null; set => throw null; } - public int InternalBufferSize { get => throw null; set => throw null; } - public System.IO.NotifyFilters NotifyFilter { get => throw null; set => throw null; } + public bool IncludeSubdirectories { get => throw null; set { } } + public int InternalBufferSize { get => throw null; set { } } + public System.IO.NotifyFilters NotifyFilter { get => throw null; set { } } protected void OnChanged(System.IO.FileSystemEventArgs e) => throw null; protected void OnCreated(System.IO.FileSystemEventArgs e) => throw null; protected void OnDeleted(System.IO.FileSystemEventArgs e) => throw null; protected void OnError(System.IO.ErrorEventArgs e) => throw null; protected void OnRenamed(System.IO.RenamedEventArgs e) => throw null; - public string Path { get => throw null; set => throw null; } - public event System.IO.RenamedEventHandler Renamed; - public override System.ComponentModel.ISite Site { get => throw null; set => throw null; } - public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get => throw null; set => throw null; } + public string Path { get => throw null; set { } } + public event System.IO.RenamedEventHandler Renamed { add { } remove { } } + public override System.ComponentModel.ISite Site { get => throw null; set { } } + public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get => throw null; set { } } public System.IO.WaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType) => throw null; - public System.IO.WaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, System.TimeSpan timeout) => throw null; public System.IO.WaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout) => throw null; + public System.IO.WaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, System.TimeSpan timeout) => throw null; } - public class InternalBufferOverflowException : System.SystemException { public InternalBufferOverflowException() => throw null; @@ -62,47 +56,40 @@ namespace System public InternalBufferOverflowException(string message) => throw null; public InternalBufferOverflowException(string message, System.Exception inner) => throw null; } - [System.Flags] - public enum NotifyFilters : int + public enum NotifyFilters { - Attributes = 4, - CreationTime = 64, - DirectoryName = 2, FileName = 1, - LastAccess = 32, - LastWrite = 16, - Security = 256, + DirectoryName = 2, + Attributes = 4, Size = 8, + LastWrite = 16, + LastAccess = 32, + CreationTime = 64, + Security = 256, } - public class RenamedEventArgs : System.IO.FileSystemEventArgs { + public RenamedEventArgs(System.IO.WatcherChangeTypes changeType, string directory, string name, string oldName) : base(default(System.IO.WatcherChangeTypes), default(string), default(string)) => throw null; public string OldFullPath { get => throw null; } public string OldName { get => throw null; } - public RenamedEventArgs(System.IO.WatcherChangeTypes changeType, string directory, string name, string oldName) : base(default(System.IO.WatcherChangeTypes), default(string), default(string)) => throw null; } - public delegate void RenamedEventHandler(object sender, System.IO.RenamedEventArgs e); - public struct WaitForChangedResult { - public System.IO.WatcherChangeTypes ChangeType { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string OldName { get => throw null; set => throw null; } - public bool TimedOut { get => throw null; set => throw null; } - // Stub generator skipped constructor + public System.IO.WatcherChangeTypes ChangeType { get => throw null; set { } } + public string Name { get => throw null; set { } } + public string OldName { get => throw null; set { } } + public bool TimedOut { get => throw null; set { } } } - [System.Flags] - public enum WatcherChangeTypes : int + public enum WatcherChangeTypes { - All = 15, - Changed = 4, Created = 1, Deleted = 2, + Changed = 4, Renamed = 8, + All = 15, } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs new file mode 100644 index 00000000000..03c89ca4854 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.IO.FileSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.IsolatedStorage.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.IsolatedStorage.cs index 42aaa82f2ad..f646b22be9f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.IsolatedStorage.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.IsolatedStorage.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.IO.IsolatedStorage, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace IO @@ -11,27 +10,25 @@ namespace System { object Normalize(); } - public abstract class IsolatedStorage : System.MarshalByRefObject { public object ApplicationIdentity { get => throw null; } public object AssemblyIdentity { get => throw null; } - public virtual System.Int64 AvailableFreeSpace { get => throw null; } - public virtual System.UInt64 CurrentSize { get => throw null; } + public virtual long AvailableFreeSpace { get => throw null; } + protected IsolatedStorage() => throw null; + public virtual ulong CurrentSize { get => throw null; } public object DomainIdentity { get => throw null; } - public virtual bool IncreaseQuotaTo(System.Int64 newQuotaSize) => throw null; + public virtual bool IncreaseQuotaTo(long newQuotaSize) => throw null; protected void InitStore(System.IO.IsolatedStorage.IsolatedStorageScope scope, System.Type appEvidenceType) => throw null; protected void InitStore(System.IO.IsolatedStorage.IsolatedStorageScope scope, System.Type domainEvidenceType, System.Type assemblyEvidenceType) => throw null; - protected IsolatedStorage() => throw null; - public virtual System.UInt64 MaximumSize { get => throw null; } - public virtual System.Int64 Quota { get => throw null; } + public virtual ulong MaximumSize { get => throw null; } + public virtual long Quota { get => throw null; } public abstract void Remove(); public System.IO.IsolatedStorage.IsolatedStorageScope Scope { get => throw null; } - protected virtual System.Char SeparatorExternal { get => throw null; } - protected virtual System.Char SeparatorInternal { get => throw null; } - public virtual System.Int64 UsedSize { get => throw null; } + protected virtual char SeparatorExternal { get => throw null; } + protected virtual char SeparatorInternal { get => throw null; } + public virtual long UsedSize { get => throw null; } } - public class IsolatedStorageException : System.Exception { public IsolatedStorageException() => throw null; @@ -39,16 +36,15 @@ namespace System public IsolatedStorageException(string message) => throw null; public IsolatedStorageException(string message, System.Exception inner) => throw null; } - - public class IsolatedStorageFile : System.IO.IsolatedStorage.IsolatedStorage, System.IDisposable + public sealed class IsolatedStorageFile : System.IO.IsolatedStorage.IsolatedStorage, System.IDisposable { - public override System.Int64 AvailableFreeSpace { get => throw null; } + public override long AvailableFreeSpace { get => throw null; } public void Close() => throw null; public void CopyFile(string sourceFileName, string destinationFileName) => throw null; public void CopyFile(string sourceFileName, string destinationFileName, bool overwrite) => throw null; public void CreateDirectory(string dir) => throw null; public System.IO.IsolatedStorage.IsolatedStorageFileStream CreateFile(string path) => throw null; - public override System.UInt64 CurrentSize { get => throw null; } + public override ulong CurrentSize { get => throw null; } public void DeleteDirectory(string dir) => throw null; public void DeleteFile(string file) => throw null; public bool DirectoryExists(string path) => throw null; @@ -65,35 +61,42 @@ namespace System public static System.IO.IsolatedStorage.IsolatedStorageFile GetMachineStoreForApplication() => throw null; public static System.IO.IsolatedStorage.IsolatedStorageFile GetMachineStoreForAssembly() => throw null; public static System.IO.IsolatedStorage.IsolatedStorageFile GetMachineStoreForDomain() => throw null; - public static System.IO.IsolatedStorage.IsolatedStorageFile GetStore(System.IO.IsolatedStorage.IsolatedStorageScope scope, System.Type applicationEvidenceType) => throw null; - public static System.IO.IsolatedStorage.IsolatedStorageFile GetStore(System.IO.IsolatedStorage.IsolatedStorageScope scope, System.Type domainEvidenceType, System.Type assemblyEvidenceType) => throw null; public static System.IO.IsolatedStorage.IsolatedStorageFile GetStore(System.IO.IsolatedStorage.IsolatedStorageScope scope, object applicationIdentity) => throw null; public static System.IO.IsolatedStorage.IsolatedStorageFile GetStore(System.IO.IsolatedStorage.IsolatedStorageScope scope, object domainIdentity, object assemblyIdentity) => throw null; + public static System.IO.IsolatedStorage.IsolatedStorageFile GetStore(System.IO.IsolatedStorage.IsolatedStorageScope scope, System.Type applicationEvidenceType) => throw null; + public static System.IO.IsolatedStorage.IsolatedStorageFile GetStore(System.IO.IsolatedStorage.IsolatedStorageScope scope, System.Type domainEvidenceType, System.Type assemblyEvidenceType) => throw null; public static System.IO.IsolatedStorage.IsolatedStorageFile GetUserStoreForApplication() => throw null; public static System.IO.IsolatedStorage.IsolatedStorageFile GetUserStoreForAssembly() => throw null; public static System.IO.IsolatedStorage.IsolatedStorageFile GetUserStoreForDomain() => throw null; public static System.IO.IsolatedStorage.IsolatedStorageFile GetUserStoreForSite() => throw null; - public override bool IncreaseQuotaTo(System.Int64 newQuotaSize) => throw null; + public override bool IncreaseQuotaTo(long newQuotaSize) => throw null; public static bool IsEnabled { get => throw null; } - public override System.UInt64 MaximumSize { get => throw null; } + public override ulong MaximumSize { get => throw null; } public void MoveDirectory(string sourceDirectoryName, string destinationDirectoryName) => throw null; public void MoveFile(string sourceFileName, string destinationFileName) => throw null; public System.IO.IsolatedStorage.IsolatedStorageFileStream OpenFile(string path, System.IO.FileMode mode) => throw null; public System.IO.IsolatedStorage.IsolatedStorageFileStream OpenFile(string path, System.IO.FileMode mode, System.IO.FileAccess access) => throw null; public System.IO.IsolatedStorage.IsolatedStorageFileStream OpenFile(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) => throw null; - public override System.Int64 Quota { get => throw null; } + public override long Quota { get => throw null; } public override void Remove() => throw null; public static void Remove(System.IO.IsolatedStorage.IsolatedStorageScope scope) => throw null; - public override System.Int64 UsedSize { get => throw null; } + public override long UsedSize { get => throw null; } } - public class IsolatedStorageFileStream : System.IO.FileStream { - public override System.IAsyncResult BeginRead(System.Byte[] array, int offset, int numBytes, System.AsyncCallback userCallback, object stateObject) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] array, int offset, int numBytes, System.AsyncCallback userCallback, object stateObject) => throw null; + public override System.IAsyncResult BeginRead(byte[] array, int offset, int numBytes, System.AsyncCallback userCallback, object stateObject) => throw null; + public override System.IAsyncResult BeginWrite(byte[] array, int offset, int numBytes, System.AsyncCallback userCallback, object stateObject) => throw null; public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } + public IsolatedStorageFileStream(string path, System.IO.FileMode mode) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; + public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; + public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; + public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; + public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.IsolatedStorage.IsolatedStorageFile isf) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; + public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.IO.IsolatedStorage.IsolatedStorageFile isf) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; + public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.IsolatedStorage.IsolatedStorageFile isf) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; + public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.IsolatedStorage.IsolatedStorageFile isf) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; protected override void Dispose(bool disposing) => throw null; public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public override int EndRead(System.IAsyncResult asyncResult) => throw null; @@ -101,47 +104,37 @@ namespace System public override void Flush() => throw null; public override void Flush(bool flushToDisk) => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override System.IntPtr Handle { get => throw null; } + public override nint Handle { get => throw null; } public override bool IsAsync { get => throw null; } - public IsolatedStorageFileStream(string path, System.IO.FileMode mode) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; - public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; - public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; - public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.IO.IsolatedStorage.IsolatedStorageFile isf) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; - public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; - public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.IsolatedStorage.IsolatedStorageFile isf) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; - public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.IsolatedStorage.IsolatedStorageFile isf) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; - public IsolatedStorageFileStream(string path, System.IO.FileMode mode, System.IO.IsolatedStorage.IsolatedStorageFile isf) : base(default(Microsoft.Win32.SafeHandles.SafeFileHandle), default(System.IO.FileAccess)) => throw null; - public override System.Int64 Length { get => throw null; } - public override void Lock(System.Int64 position, System.Int64 length) => throw null; - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override long Length { get => throw null; } + public override void Lock(long position, long length) => throw null; + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override int ReadByte() => throw null; public override Microsoft.Win32.SafeHandles.SafeFileHandle SafeFileHandle { get => throw null; } - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public override void Unlock(System.Int64 position, System.Int64 length) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public override void Unlock(long position, long length) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; } - [System.Flags] - public enum IsolatedStorageScope : int + public enum IsolatedStorageScope { - Application = 32, - Assembly = 4, - Domain = 2, - Machine = 16, None = 0, - Roaming = 8, User = 1, + Domain = 2, + Assembly = 4, + Roaming = 8, + Machine = 16, + Application = 32, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.MemoryMappedFiles.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.MemoryMappedFiles.cs index 3635bb66008..ec1f6021c7f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.MemoryMappedFiles.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.MemoryMappedFiles.cs @@ -1,25 +1,22 @@ // This file contains auto-generated code. // Generated from `System.IO.MemoryMappedFiles, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace Microsoft { namespace Win32 { namespace SafeHandles { - public class SafeMemoryMappedFileHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid + public sealed class SafeMemoryMappedFileHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { + public SafeMemoryMappedFileHandle() : base(default(bool)) => throw null; public override bool IsInvalid { get => throw null; } protected override bool ReleaseHandle() => throw null; - public SafeMemoryMappedFileHandle() : base(default(bool)) => throw null; } - - public class SafeMemoryMappedViewHandle : System.Runtime.InteropServices.SafeBuffer + public sealed class SafeMemoryMappedViewHandle : System.Runtime.InteropServices.SafeBuffer { - protected override bool ReleaseHandle() => throw null; public SafeMemoryMappedViewHandle() : base(default(bool)) => throw null; + protected override bool ReleaseHandle() => throw null; } - } } } @@ -31,24 +28,24 @@ namespace System { public class MemoryMappedFile : System.IDisposable { - public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(System.IO.FileStream fileStream, string mapName, System.Int64 capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.HandleInheritability inheritability, bool leaveOpen) => throw null; + public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(System.IO.FileStream fileStream, string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.HandleInheritability inheritability, bool leaveOpen) => throw null; public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path) => throw null; public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode) => throw null; public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode, string mapName) => throw null; - public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode, string mapName, System.Int64 capacity) => throw null; - public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode, string mapName, System.Int64 capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access) => throw null; - public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateNew(string mapName, System.Int64 capacity) => throw null; - public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateNew(string mapName, System.Int64 capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access) => throw null; - public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateNew(string mapName, System.Int64 capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.MemoryMappedFiles.MemoryMappedFileOptions options, System.IO.HandleInheritability inheritability) => throw null; - public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateOrOpen(string mapName, System.Int64 capacity) => throw null; - public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateOrOpen(string mapName, System.Int64 capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access) => throw null; - public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateOrOpen(string mapName, System.Int64 capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.MemoryMappedFiles.MemoryMappedFileOptions options, System.IO.HandleInheritability inheritability) => throw null; + public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode, string mapName, long capacity) => throw null; + public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode, string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access) => throw null; + public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateNew(string mapName, long capacity) => throw null; + public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateNew(string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access) => throw null; + public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateNew(string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.MemoryMappedFiles.MemoryMappedFileOptions options, System.IO.HandleInheritability inheritability) => throw null; + public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateOrOpen(string mapName, long capacity) => throw null; + public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateOrOpen(string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access) => throw null; + public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateOrOpen(string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.MemoryMappedFiles.MemoryMappedFileOptions options, System.IO.HandleInheritability inheritability) => throw null; public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor() => throw null; - public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor(System.Int64 offset, System.Int64 size) => throw null; - public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor(System.Int64 offset, System.Int64 size, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access) => throw null; + public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor(long offset, long size) => throw null; + public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor(long offset, long size, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access) => throw null; public System.IO.MemoryMappedFiles.MemoryMappedViewStream CreateViewStream() => throw null; - public System.IO.MemoryMappedFiles.MemoryMappedViewStream CreateViewStream(System.Int64 offset, System.Int64 size) => throw null; - public System.IO.MemoryMappedFiles.MemoryMappedViewStream CreateViewStream(System.Int64 offset, System.Int64 size, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access) => throw null; + public System.IO.MemoryMappedFiles.MemoryMappedViewStream CreateViewStream(long offset, long size) => throw null; + public System.IO.MemoryMappedFiles.MemoryMappedViewStream CreateViewStream(long offset, long size, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting(string mapName) => throw null; @@ -56,59 +53,53 @@ namespace System public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting(string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights, System.IO.HandleInheritability inheritability) => throw null; public Microsoft.Win32.SafeHandles.SafeMemoryMappedFileHandle SafeMemoryMappedFileHandle { get => throw null; } } - - public enum MemoryMappedFileAccess : int + public enum MemoryMappedFileAccess { - CopyOnWrite = 3, - Read = 1, - ReadExecute = 4, ReadWrite = 0, + Read = 1, + Write = 2, + CopyOnWrite = 3, + ReadExecute = 4, ReadWriteExecute = 5, - Write = 2, } - [System.Flags] - public enum MemoryMappedFileOptions : int + public enum MemoryMappedFileOptions { - DelayAllocatePages = 67108864, None = 0, + DelayAllocatePages = 67108864, } - [System.Flags] - public enum MemoryMappedFileRights : int + public enum MemoryMappedFileRights { - AccessSystemSecurity = 16777216, - ChangePermissions = 262144, CopyOnWrite = 1, - Delete = 65536, - Execute = 8, - FullControl = 983055, - Read = 4, - ReadExecute = 12, - ReadPermissions = 131072, - ReadWrite = 6, - ReadWriteExecute = 14, - TakeOwnership = 524288, Write = 2, + Read = 4, + ReadWrite = 6, + Execute = 8, + ReadExecute = 12, + ReadWriteExecute = 14, + Delete = 65536, + ReadPermissions = 131072, + ChangePermissions = 262144, + TakeOwnership = 524288, + FullControl = 983055, + AccessSystemSecurity = 16777216, } - - public class MemoryMappedViewAccessor : System.IO.UnmanagedMemoryAccessor + public sealed class MemoryMappedViewAccessor : System.IO.UnmanagedMemoryAccessor { protected override void Dispose(bool disposing) => throw null; public void Flush() => throw null; - public System.Int64 PointerOffset { get => throw null; } + public long PointerOffset { get => throw null; } public Microsoft.Win32.SafeHandles.SafeMemoryMappedViewHandle SafeMemoryMappedViewHandle { get => throw null; } } - - public class MemoryMappedViewStream : System.IO.UnmanagedMemoryStream + public sealed class MemoryMappedViewStream : System.IO.UnmanagedMemoryStream { protected override void Dispose(bool disposing) => throw null; public override void Flush() => throw null; - public System.Int64 PointerOffset { get => throw null; } + public long PointerOffset { get => throw null; } public Microsoft.Win32.SafeHandles.SafeMemoryMappedViewHandle SafeMemoryMappedViewHandle { get => throw null; } - public override void SetLength(System.Int64 value) => throw null; + public override void SetLength(long value) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.AccessControl.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.AccessControl.cs index 673ebe72872..32993370b1a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.AccessControl.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.AccessControl.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.IO.Pipes.AccessControl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace IO @@ -11,48 +10,48 @@ namespace System { public static System.IO.Pipes.AnonymousPipeServerStream Create(System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize, System.IO.Pipes.PipeSecurity pipeSecurity) => throw null; } - public static class NamedPipeServerStreamAcl { public static System.IO.Pipes.NamedPipeServerStream Create(string pipeName, System.IO.Pipes.PipeDirection direction, int maxNumberOfServerInstances, System.IO.Pipes.PipeTransmissionMode transmissionMode, System.IO.Pipes.PipeOptions options, int inBufferSize, int outBufferSize, System.IO.Pipes.PipeSecurity pipeSecurity, System.IO.HandleInheritability inheritability = default(System.IO.HandleInheritability), System.IO.Pipes.PipeAccessRights additionalAccessRights = default(System.IO.Pipes.PipeAccessRights)) => throw null; } - [System.Flags] - public enum PipeAccessRights : int + public enum PipeAccessRights { - AccessSystemSecurity = 16777216, - ChangePermissions = 262144, - CreateNewInstance = 4, - Delete = 65536, - FullControl = 2032031, - Read = 131209, - ReadAttributes = 128, ReadData = 1, - ReadExtendedAttributes = 8, - ReadPermissions = 131072, - ReadWrite = 131483, - Synchronize = 1048576, - TakeOwnership = 524288, - Write = 274, - WriteAttributes = 256, WriteData = 2, + CreateNewInstance = 4, + ReadExtendedAttributes = 8, WriteExtendedAttributes = 16, + ReadAttributes = 128, + WriteAttributes = 256, + Write = 274, + Delete = 65536, + ReadPermissions = 131072, + Read = 131209, + ReadWrite = 131483, + ChangePermissions = 262144, + TakeOwnership = 524288, + Synchronize = 1048576, + FullControl = 2032031, + AccessSystemSecurity = 16777216, } - - public class PipeAccessRule : System.Security.AccessControl.AccessRule + public sealed class PipeAccessRule : System.Security.AccessControl.AccessRule { - public System.IO.Pipes.PipeAccessRights PipeAccessRights { get => throw null; } public PipeAccessRule(System.Security.Principal.IdentityReference identity, System.IO.Pipes.PipeAccessRights rights, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; public PipeAccessRule(string identity, System.IO.Pipes.PipeAccessRights rights, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; - } - - public class PipeAuditRule : System.Security.AccessControl.AuditRule - { public System.IO.Pipes.PipeAccessRights PipeAccessRights { get => throw null; } + } + public sealed class PipeAuditRule : System.Security.AccessControl.AuditRule + { public PipeAuditRule(System.Security.Principal.IdentityReference identity, System.IO.Pipes.PipeAccessRights rights, System.Security.AccessControl.AuditFlags flags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AuditFlags)) => throw null; public PipeAuditRule(string identity, System.IO.Pipes.PipeAccessRights rights, System.Security.AccessControl.AuditFlags flags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AuditFlags)) => throw null; + public System.IO.Pipes.PipeAccessRights PipeAccessRights { get => throw null; } + } + public static partial class PipesAclExtensions + { + public static System.IO.Pipes.PipeSecurity GetAccessControl(this System.IO.Pipes.PipeStream stream) => throw null; + public static void SetAccessControl(this System.IO.Pipes.PipeStream stream, System.IO.Pipes.PipeSecurity pipeSecurity) => throw null; } - public class PipeSecurity : System.Security.AccessControl.NativeObjectSecurity { public override System.Type AccessRightType { get => throw null; } @@ -60,11 +59,11 @@ namespace System public override System.Type AccessRuleType { get => throw null; } public void AddAccessRule(System.IO.Pipes.PipeAccessRule rule) => throw null; public void AddAuditRule(System.IO.Pipes.PipeAuditRule rule) => throw null; - public override System.Security.AccessControl.AuditRule AuditRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags) => throw null; + public override sealed System.Security.AccessControl.AuditRule AuditRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags) => throw null; public override System.Type AuditRuleType { get => throw null; } - protected internal void Persist(System.Runtime.InteropServices.SafeHandle handle) => throw null; - protected internal void Persist(string name) => throw null; public PipeSecurity() : base(default(bool), default(System.Security.AccessControl.ResourceType)) => throw null; + protected void Persist(System.Runtime.InteropServices.SafeHandle handle) => throw null; + protected void Persist(string name) => throw null; public bool RemoveAccessRule(System.IO.Pipes.PipeAccessRule rule) => throw null; public void RemoveAccessRuleSpecific(System.IO.Pipes.PipeAccessRule rule) => throw null; public bool RemoveAuditRule(System.IO.Pipes.PipeAuditRule rule) => throw null; @@ -74,13 +73,6 @@ namespace System public void SetAccessRule(System.IO.Pipes.PipeAccessRule rule) => throw null; public void SetAuditRule(System.IO.Pipes.PipeAuditRule rule) => throw null; } - - public static class PipesAclExtensions - { - public static System.IO.Pipes.PipeSecurity GetAccessControl(this System.IO.Pipes.PipeStream stream) => throw null; - public static void SetAccessControl(this System.IO.Pipes.PipeStream stream, System.IO.Pipes.PipeSecurity pipeSecurity) => throw null; - } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs index bd3581006a0..539a2b3727a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs @@ -1,20 +1,18 @@ // This file contains auto-generated code. // Generated from `System.IO.Pipes, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace Microsoft { namespace Win32 { namespace SafeHandles { - public class SafePipeHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid + public sealed class SafePipeHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { + public SafePipeHandle() : base(default(bool)) => throw null; + public SafePipeHandle(nint preexistingHandle, bool ownsHandle) : base(default(bool)) => throw null; public override bool IsInvalid { get => throw null; } protected override bool ReleaseHandle() => throw null; - public SafePipeHandle() : base(default(bool)) => throw null; - public SafePipeHandle(System.IntPtr preexistingHandle, bool ownsHandle) : base(default(bool)) => throw null; } - } } } @@ -24,43 +22,39 @@ namespace System { namespace Pipes { - public class AnonymousPipeClientStream : System.IO.Pipes.PipeStream + public sealed class AnonymousPipeClientStream : System.IO.Pipes.PipeStream { public AnonymousPipeClientStream(System.IO.Pipes.PipeDirection direction, Microsoft.Win32.SafeHandles.SafePipeHandle safePipeHandle) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public AnonymousPipeClientStream(System.IO.Pipes.PipeDirection direction, string pipeHandleAsString) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public AnonymousPipeClientStream(string pipeHandleAsString) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; - public override System.IO.Pipes.PipeTransmissionMode ReadMode { set => throw null; } + public override System.IO.Pipes.PipeTransmissionMode ReadMode { set { } } public override System.IO.Pipes.PipeTransmissionMode TransmissionMode { get => throw null; } - // ERR: Stub generator didn't handle member: ~AnonymousPipeClientStream } - - public class AnonymousPipeServerStream : System.IO.Pipes.PipeStream + public sealed class AnonymousPipeServerStream : System.IO.Pipes.PipeStream { + public Microsoft.Win32.SafeHandles.SafePipeHandle ClientSafePipeHandle { get => throw null; } public AnonymousPipeServerStream() : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public AnonymousPipeServerStream(System.IO.Pipes.PipeDirection direction) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; + public AnonymousPipeServerStream(System.IO.Pipes.PipeDirection direction, Microsoft.Win32.SafeHandles.SafePipeHandle serverSafePipeHandle, Microsoft.Win32.SafeHandles.SafePipeHandle clientSafePipeHandle) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public AnonymousPipeServerStream(System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public AnonymousPipeServerStream(System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; - public AnonymousPipeServerStream(System.IO.Pipes.PipeDirection direction, Microsoft.Win32.SafeHandles.SafePipeHandle serverSafePipeHandle, Microsoft.Win32.SafeHandles.SafePipeHandle clientSafePipeHandle) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; - public Microsoft.Win32.SafeHandles.SafePipeHandle ClientSafePipeHandle { get => throw null; } protected override void Dispose(bool disposing) => throw null; public void DisposeLocalCopyOfClientHandle() => throw null; public string GetClientHandleAsString() => throw null; - public override System.IO.Pipes.PipeTransmissionMode ReadMode { set => throw null; } + public override System.IO.Pipes.PipeTransmissionMode ReadMode { set { } } public override System.IO.Pipes.PipeTransmissionMode TransmissionMode { get => throw null; } - // ERR: Stub generator didn't handle member: ~AnonymousPipeServerStream } - - public class NamedPipeClientStream : System.IO.Pipes.PipeStream + public sealed class NamedPipeClientStream : System.IO.Pipes.PipeStream { - protected internal override void CheckPipePropertyOperations() => throw null; + protected override void CheckPipePropertyOperations() => throw null; public void Connect() => throw null; - public void Connect(System.TimeSpan timeout) => throw null; public void Connect(int timeout) => throw null; + public void Connect(System.TimeSpan timeout) => throw null; public System.Threading.Tasks.Task ConnectAsync() => throw null; - public System.Threading.Tasks.Task ConnectAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ConnectAsync(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task ConnectAsync(int timeout) => throw null; public System.Threading.Tasks.Task ConnectAsync(int timeout, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ConnectAsync(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ConnectAsync(System.Threading.CancellationToken cancellationToken) => throw null; public NamedPipeClientStream(System.IO.Pipes.PipeDirection direction, bool isAsync, bool isConnected, Microsoft.Win32.SafeHandles.SafePipeHandle safePipeHandle) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public NamedPipeClientStream(string pipeName) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public NamedPipeClientStream(string serverName, string pipeName) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; @@ -69,16 +63,10 @@ namespace System public NamedPipeClientStream(string serverName, string pipeName, System.IO.Pipes.PipeDirection direction, System.IO.Pipes.PipeOptions options, System.Security.Principal.TokenImpersonationLevel impersonationLevel) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public NamedPipeClientStream(string serverName, string pipeName, System.IO.Pipes.PipeDirection direction, System.IO.Pipes.PipeOptions options, System.Security.Principal.TokenImpersonationLevel impersonationLevel, System.IO.HandleInheritability inheritability) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public int NumberOfServerInstances { get => throw null; } - // ERR: Stub generator didn't handle member: ~NamedPipeClientStream } - - public class NamedPipeServerStream : System.IO.Pipes.PipeStream + public sealed class NamedPipeServerStream : System.IO.Pipes.PipeStream { public System.IAsyncResult BeginWaitForConnection(System.AsyncCallback callback, object state) => throw null; - public void Disconnect() => throw null; - public void EndWaitForConnection(System.IAsyncResult asyncResult) => throw null; - public string GetImpersonationUserName() => throw null; - public const int MaxAllowedServerInstances = default; public NamedPipeServerStream(System.IO.Pipes.PipeDirection direction, bool isAsync, bool isConnected, Microsoft.Win32.SafeHandles.SafePipeHandle safePipeHandle) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public NamedPipeServerStream(string pipeName) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public NamedPipeServerStream(string pipeName, System.IO.Pipes.PipeDirection direction) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; @@ -86,39 +74,41 @@ namespace System public NamedPipeServerStream(string pipeName, System.IO.Pipes.PipeDirection direction, int maxNumberOfServerInstances, System.IO.Pipes.PipeTransmissionMode transmissionMode) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public NamedPipeServerStream(string pipeName, System.IO.Pipes.PipeDirection direction, int maxNumberOfServerInstances, System.IO.Pipes.PipeTransmissionMode transmissionMode, System.IO.Pipes.PipeOptions options) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; public NamedPipeServerStream(string pipeName, System.IO.Pipes.PipeDirection direction, int maxNumberOfServerInstances, System.IO.Pipes.PipeTransmissionMode transmissionMode, System.IO.Pipes.PipeOptions options, int inBufferSize, int outBufferSize) : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; + public void Disconnect() => throw null; + public void EndWaitForConnection(System.IAsyncResult asyncResult) => throw null; + public string GetImpersonationUserName() => throw null; + public static int MaxAllowedServerInstances; public void RunAsClient(System.IO.Pipes.PipeStreamImpersonationWorker impersonationWorker) => throw null; public void WaitForConnection() => throw null; public System.Threading.Tasks.Task WaitForConnectionAsync() => throw null; public System.Threading.Tasks.Task WaitForConnectionAsync(System.Threading.CancellationToken cancellationToken) => throw null; - // ERR: Stub generator didn't handle member: ~NamedPipeServerStream } - - public enum PipeDirection : int + public enum PipeDirection { In = 1, - InOut = 3, Out = 2, + InOut = 3, } - [System.Flags] - public enum PipeOptions : int + public enum PipeOptions { - Asynchronous = 1073741824, - CurrentUserOnly = 536870912, - None = 0, WriteThrough = -2147483648, + None = 0, + CurrentUserOnly = 536870912, + Asynchronous = 1073741824, } - public abstract class PipeStream : System.IO.Stream { - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } - protected internal virtual void CheckPipePropertyOperations() => throw null; - protected internal void CheckReadOperations() => throw null; - protected internal void CheckWriteOperations() => throw null; + protected virtual void CheckPipePropertyOperations() => throw null; + protected void CheckReadOperations() => throw null; + protected void CheckWriteOperations() => throw null; + protected PipeStream(System.IO.Pipes.PipeDirection direction, int bufferSize) => throw null; + protected PipeStream(System.IO.Pipes.PipeDirection direction, System.IO.Pipes.PipeTransmissionMode transmissionMode, int outBufferSize) => throw null; protected override void Dispose(bool disposing) => throw null; public override int EndRead(System.IAsyncResult asyncResult) => throw null; public override void EndWrite(System.IAsyncResult asyncResult) => throw null; @@ -127,40 +117,35 @@ namespace System public virtual int InBufferSize { get => throw null; } protected void InitializeHandle(Microsoft.Win32.SafeHandles.SafePipeHandle handle, bool isExposed, bool isAsync) => throw null; public bool IsAsync { get => throw null; } - public bool IsConnected { get => throw null; set => throw null; } + public bool IsConnected { get => throw null; set { } } protected bool IsHandleExposed { get => throw null; } public bool IsMessageComplete { get => throw null; } - public override System.Int64 Length { get => throw null; } + public override long Length { get => throw null; } public virtual int OutBufferSize { get => throw null; } - protected PipeStream(System.IO.Pipes.PipeDirection direction, System.IO.Pipes.PipeTransmissionMode transmissionMode, int outBufferSize) => throw null; - protected PipeStream(System.IO.Pipes.PipeDirection direction, int bufferSize) => throw null; - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override int ReadByte() => throw null; - public virtual System.IO.Pipes.PipeTransmissionMode ReadMode { get => throw null; set => throw null; } + public virtual System.IO.Pipes.PipeTransmissionMode ReadMode { get => throw null; set { } } public Microsoft.Win32.SafeHandles.SafePipeHandle SafePipeHandle { get => throw null; } - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; public virtual System.IO.Pipes.PipeTransmissionMode TransmissionMode { get => throw null; } public void WaitForPipeDrain() => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; } - public delegate void PipeStreamImpersonationWorker(); - - public enum PipeTransmissionMode : int + public enum PipeTransmissionMode { Byte = 0, Message = 1, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs new file mode 100644 index 00000000000..4bdd5f6fead --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.IO.UnmanagedMemoryStream, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs new file mode 100644 index 00000000000..f6f753a6ae2 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.IO, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs index 8f8f33ee915..093995b1b28 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs @@ -1,20 +1,18 @@ // This file contains auto-generated code. // Generated from `System.Linq.Expressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Dynamic { public abstract class BinaryOperationBinder : System.Dynamic.DynamicMetaObjectBinder { + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; protected BinaryOperationBinder(System.Linq.Expressions.ExpressionType operation) => throw null; - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; public System.Dynamic.DynamicMetaObject FallbackBinaryOperation(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject arg) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackBinaryOperation(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject arg, System.Dynamic.DynamicMetaObject errorSuggestion); public System.Linq.Expressions.ExpressionType Operation { get => throw null; } - public override System.Type ReturnType { get => throw null; } + public override sealed System.Type ReturnType { get => throw null; } } - public abstract class BindingRestrictions { public static System.Dynamic.BindingRestrictions Combine(System.Collections.Generic.IList contributingObjects) => throw null; @@ -25,8 +23,7 @@ namespace System public System.Dynamic.BindingRestrictions Merge(System.Dynamic.BindingRestrictions restrictions) => throw null; public System.Linq.Expressions.Expression ToExpression() => throw null; } - - public class CallInfo + public sealed class CallInfo { public int ArgumentCount { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection ArgumentNames { get => throw null; } @@ -35,49 +32,44 @@ namespace System public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; } - public abstract class ConvertBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; protected ConvertBinder(System.Type type, bool @explicit) => throw null; public bool Explicit { get => throw null; } public System.Dynamic.DynamicMetaObject FallbackConvert(System.Dynamic.DynamicMetaObject target) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackConvert(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject errorSuggestion); - public override System.Type ReturnType { get => throw null; } + public override sealed System.Type ReturnType { get => throw null; } public System.Type Type { get => throw null; } } - public abstract class CreateInstanceBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; public System.Dynamic.CallInfo CallInfo { get => throw null; } protected CreateInstanceBinder(System.Dynamic.CallInfo callInfo) => throw null; public System.Dynamic.DynamicMetaObject FallbackCreateInstance(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackCreateInstance(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args, System.Dynamic.DynamicMetaObject errorSuggestion); - public override System.Type ReturnType { get => throw null; } + public override sealed System.Type ReturnType { get => throw null; } } - public abstract class DeleteIndexBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; public System.Dynamic.CallInfo CallInfo { get => throw null; } protected DeleteIndexBinder(System.Dynamic.CallInfo callInfo) => throw null; public System.Dynamic.DynamicMetaObject FallbackDeleteIndex(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] indexes) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackDeleteIndex(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] indexes, System.Dynamic.DynamicMetaObject errorSuggestion); - public override System.Type ReturnType { get => throw null; } + public override sealed System.Type ReturnType { get => throw null; } } - public abstract class DeleteMemberBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; protected DeleteMemberBinder(string name, bool ignoreCase) => throw null; public System.Dynamic.DynamicMetaObject FallbackDeleteMember(System.Dynamic.DynamicMetaObject target) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackDeleteMember(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject errorSuggestion); public bool IgnoreCase { get => throw null; } public string Name { get => throw null; } - public override System.Type ReturnType { get => throw null; } + public override sealed System.Type ReturnType { get => throw null; } } - public class DynamicMetaObject { public virtual System.Dynamic.DynamicMetaObject BindBinaryOperation(System.Dynamic.BinaryOperationBinder binder, System.Dynamic.DynamicMetaObject arg) => throw null; @@ -104,18 +96,16 @@ namespace System public System.Type RuntimeType { get => throw null; } public object Value { get => throw null; } } - public abstract class DynamicMetaObjectBinder : System.Runtime.CompilerServices.CallSiteBinder { public abstract System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args); - public override System.Linq.Expressions.Expression Bind(object[] args, System.Collections.ObjectModel.ReadOnlyCollection parameters, System.Linq.Expressions.LabelTarget returnLabel) => throw null; + public override sealed System.Linq.Expressions.Expression Bind(object[] args, System.Collections.ObjectModel.ReadOnlyCollection parameters, System.Linq.Expressions.LabelTarget returnLabel) => throw null; + protected DynamicMetaObjectBinder() => throw null; public System.Dynamic.DynamicMetaObject Defer(System.Dynamic.DynamicMetaObject target, params System.Dynamic.DynamicMetaObject[] args) => throw null; public System.Dynamic.DynamicMetaObject Defer(params System.Dynamic.DynamicMetaObject[] args) => throw null; - protected DynamicMetaObjectBinder() => throw null; public System.Linq.Expressions.Expression GetUpdateExpression(System.Type type) => throw null; public virtual System.Type ReturnType { get => throw null; } } - public class DynamicObject : System.Dynamic.IDynamicMetaObjectProvider { protected DynamicObject() => throw null; @@ -134,8 +124,7 @@ namespace System public virtual bool TrySetMember(System.Dynamic.SetMemberBinder binder, object value) => throw null; public virtual bool TryUnaryOperation(System.Dynamic.UnaryOperationBinder binder, out object result) => throw null; } - - public class ExpandoObject : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.ComponentModel.INotifyPropertyChanged, System.Dynamic.IDynamicMetaObjectProvider + public sealed class ExpandoObject : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.ComponentModel.INotifyPropertyChanged, System.Dynamic.IDynamicMetaObjectProvider { void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; void System.Collections.Generic.IDictionary.Add(string key, object value) => throw null; @@ -149,135 +138,98 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; System.Dynamic.DynamicMetaObject System.Dynamic.IDynamicMetaObjectProvider.GetMetaObject(System.Linq.Expressions.Expression parameter) => throw null; bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } - object System.Collections.Generic.IDictionary.this[string key] { get => throw null; set => throw null; } + object System.Collections.Generic.IDictionary.this[string key] { get => throw null; set { } } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } - event System.ComponentModel.PropertyChangedEventHandler System.ComponentModel.INotifyPropertyChanged.PropertyChanged { add => throw null; remove => throw null; } + event System.ComponentModel.PropertyChangedEventHandler System.ComponentModel.INotifyPropertyChanged.PropertyChanged { add { } remove { } } bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; bool System.Collections.Generic.IDictionary.Remove(string key) => throw null; bool System.Collections.Generic.IDictionary.TryGetValue(string key, out object value) => throw null; System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } } - public abstract class GetIndexBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; public System.Dynamic.CallInfo CallInfo { get => throw null; } + protected GetIndexBinder(System.Dynamic.CallInfo callInfo) => throw null; public System.Dynamic.DynamicMetaObject FallbackGetIndex(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] indexes) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackGetIndex(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] indexes, System.Dynamic.DynamicMetaObject errorSuggestion); - protected GetIndexBinder(System.Dynamic.CallInfo callInfo) => throw null; - public override System.Type ReturnType { get => throw null; } + public override sealed System.Type ReturnType { get => throw null; } } - public abstract class GetMemberBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + protected GetMemberBinder(string name, bool ignoreCase) => throw null; public System.Dynamic.DynamicMetaObject FallbackGetMember(System.Dynamic.DynamicMetaObject target) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackGetMember(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject errorSuggestion); - protected GetMemberBinder(string name, bool ignoreCase) => throw null; public bool IgnoreCase { get => throw null; } public string Name { get => throw null; } - public override System.Type ReturnType { get => throw null; } + public override sealed System.Type ReturnType { get => throw null; } } - public interface IDynamicMetaObjectProvider { System.Dynamic.DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter); } - public interface IInvokeOnGetBinder { bool InvokeOnGet { get; } } - public abstract class InvokeBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; public System.Dynamic.CallInfo CallInfo { get => throw null; } + protected InvokeBinder(System.Dynamic.CallInfo callInfo) => throw null; public System.Dynamic.DynamicMetaObject FallbackInvoke(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackInvoke(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args, System.Dynamic.DynamicMetaObject errorSuggestion); - protected InvokeBinder(System.Dynamic.CallInfo callInfo) => throw null; - public override System.Type ReturnType { get => throw null; } + public override sealed System.Type ReturnType { get => throw null; } } - public abstract class InvokeMemberBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; public System.Dynamic.CallInfo CallInfo { get => throw null; } + protected InvokeMemberBinder(string name, bool ignoreCase, System.Dynamic.CallInfo callInfo) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackInvoke(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args, System.Dynamic.DynamicMetaObject errorSuggestion); public System.Dynamic.DynamicMetaObject FallbackInvokeMember(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackInvokeMember(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args, System.Dynamic.DynamicMetaObject errorSuggestion); public bool IgnoreCase { get => throw null; } - protected InvokeMemberBinder(string name, bool ignoreCase, System.Dynamic.CallInfo callInfo) => throw null; public string Name { get => throw null; } - public override System.Type ReturnType { get => throw null; } + public override sealed System.Type ReturnType { get => throw null; } } - public abstract class SetIndexBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; public System.Dynamic.CallInfo CallInfo { get => throw null; } + protected SetIndexBinder(System.Dynamic.CallInfo callInfo) => throw null; public System.Dynamic.DynamicMetaObject FallbackSetIndex(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] indexes, System.Dynamic.DynamicMetaObject value) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackSetIndex(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] indexes, System.Dynamic.DynamicMetaObject value, System.Dynamic.DynamicMetaObject errorSuggestion); - public override System.Type ReturnType { get => throw null; } - protected SetIndexBinder(System.Dynamic.CallInfo callInfo) => throw null; + public override sealed System.Type ReturnType { get => throw null; } } - public abstract class SetMemberBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + protected SetMemberBinder(string name, bool ignoreCase) => throw null; public System.Dynamic.DynamicMetaObject FallbackSetMember(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject value) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackSetMember(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject value, System.Dynamic.DynamicMetaObject errorSuggestion); public bool IgnoreCase { get => throw null; } public string Name { get => throw null; } - public override System.Type ReturnType { get => throw null; } - protected SetMemberBinder(string name, bool ignoreCase) => throw null; + public override sealed System.Type ReturnType { get => throw null; } } - public abstract class UnaryOperationBinder : System.Dynamic.DynamicMetaObjectBinder { - public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + public override sealed System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; + protected UnaryOperationBinder(System.Linq.Expressions.ExpressionType operation) => throw null; public System.Dynamic.DynamicMetaObject FallbackUnaryOperation(System.Dynamic.DynamicMetaObject target) => throw null; public abstract System.Dynamic.DynamicMetaObject FallbackUnaryOperation(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject errorSuggestion); public System.Linq.Expressions.ExpressionType Operation { get => throw null; } - public override System.Type ReturnType { get => throw null; } - protected UnaryOperationBinder(System.Linq.Expressions.ExpressionType operation) => throw null; + public override sealed System.Type ReturnType { get => throw null; } } - } namespace Linq { - public interface IOrderedQueryable : System.Collections.IEnumerable, System.Linq.IQueryable - { - } - - public interface IOrderedQueryable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IQueryable - { - } - - public interface IQueryProvider - { - System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression); - System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression); - object Execute(System.Linq.Expressions.Expression expression); - TResult Execute(System.Linq.Expressions.Expression expression); - } - - public interface IQueryable : System.Collections.IEnumerable - { - System.Type ElementType { get; } - System.Linq.Expressions.Expression Expression { get; } - System.Linq.IQueryProvider Provider { get; } - } - - public interface IQueryable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IQueryable - { - } - namespace Expressions { public class BinaryExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public override bool CanReduce { get => throw null; } public System.Linq.Expressions.LambdaExpression Conversion { get => throw null; } public bool IsLifted { get => throw null; } @@ -288,19 +240,17 @@ namespace System public System.Linq.Expressions.Expression Right { get => throw null; } public System.Linq.Expressions.BinaryExpression Update(System.Linq.Expressions.Expression left, System.Linq.Expressions.LambdaExpression conversion, System.Linq.Expressions.Expression right) => throw null; } - public class BlockExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection Expressions { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public System.Linq.Expressions.Expression Result { get => throw null; } public override System.Type Type { get => throw null; } public System.Linq.Expressions.BlockExpression Update(System.Collections.Generic.IEnumerable variables, System.Collections.Generic.IEnumerable expressions) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection Variables { get => throw null; } } - - public class CatchBlock + public sealed class CatchBlock { public System.Linq.Expressions.Expression Body { get => throw null; } public System.Linq.Expressions.Expression Filter { get => throw null; } @@ -309,80 +259,73 @@ namespace System public System.Linq.Expressions.CatchBlock Update(System.Linq.Expressions.ParameterExpression variable, System.Linq.Expressions.Expression filter, System.Linq.Expressions.Expression body) => throw null; public System.Linq.Expressions.ParameterExpression Variable { get => throw null; } } - public class ConditionalExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Linq.Expressions.Expression IfFalse { get => throw null; } public System.Linq.Expressions.Expression IfTrue { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public System.Linq.Expressions.Expression Test { get => throw null; } public override System.Type Type { get => throw null; } public System.Linq.Expressions.ConditionalExpression Update(System.Linq.Expressions.Expression test, System.Linq.Expressions.Expression ifTrue, System.Linq.Expressions.Expression ifFalse) => throw null; } - public class ConstantExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public override System.Type Type { get => throw null; } public object Value { get => throw null; } } - public class DebugInfoExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Linq.Expressions.SymbolDocumentInfo Document { get => throw null; } public virtual int EndColumn { get => throw null; } public virtual int EndLine { get => throw null; } public virtual bool IsClear { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public virtual int StartColumn { get => throw null; } public virtual int StartLine { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } } - - public class DefaultExpression : System.Linq.Expressions.Expression + public sealed class DefaultExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } - public override System.Type Type { get => throw null; } + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Type Type { get => throw null; } } - public class DynamicExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider, System.Linq.Expressions.IDynamicExpression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; int System.Linq.Expressions.IArgumentProvider.ArgumentCount { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection Arguments { get => throw null; } public System.Runtime.CompilerServices.CallSiteBinder Binder { get => throw null; } object System.Linq.Expressions.IDynamicExpression.CreateCallSite() => throw null; public System.Type DelegateType { get => throw null; } + public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Linq.Expressions.Expression arg0) => throw null; public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1) => throw null; public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2) => throw null; public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3) => throw null; - public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, params System.Linq.Expressions.Expression[] arguments) => throw null; System.Linq.Expressions.Expression System.Linq.Expressions.IArgumentProvider.GetArgument(int index) => throw null; + public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Linq.Expressions.Expression arg0) => throw null; public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1) => throw null; public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2) => throw null; public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3) => throw null; - public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, params System.Linq.Expressions.Expression[] arguments) => throw null; - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } System.Linq.Expressions.Expression System.Linq.Expressions.IDynamicExpression.Rewrite(System.Linq.Expressions.Expression[] args) => throw null; public override System.Type Type { get => throw null; } public System.Linq.Expressions.DynamicExpression Update(System.Collections.Generic.IEnumerable arguments) => throw null; } - public abstract class DynamicExpressionVisitor : System.Linq.Expressions.ExpressionVisitor { protected DynamicExpressionVisitor() => throw null; - protected internal override System.Linq.Expressions.Expression VisitDynamic(System.Linq.Expressions.DynamicExpression node) => throw null; + protected override System.Linq.Expressions.Expression VisitDynamic(System.Linq.Expressions.DynamicExpression node) => throw null; } - - public class ElementInit : System.Linq.Expressions.IArgumentProvider + public sealed class ElementInit : System.Linq.Expressions.IArgumentProvider { public System.Reflection.MethodInfo AddMethod { get => throw null; } int System.Linq.Expressions.IArgumentProvider.ArgumentCount { get => throw null; } @@ -391,10 +334,9 @@ namespace System public override string ToString() => throw null; public System.Linq.Expressions.ElementInit Update(System.Collections.Generic.IEnumerable arguments) => throw null; } - public abstract class Expression { - protected internal virtual System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected virtual System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public static System.Linq.Expressions.BinaryExpression Add(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right) => throw null; public static System.Linq.Expressions.BinaryExpression Add(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method) => throw null; public static System.Linq.Expressions.BinaryExpression AddAssign(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right) => throw null; @@ -414,41 +356,41 @@ namespace System public static System.Linq.Expressions.BinaryExpression AndAssign(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method, System.Linq.Expressions.LambdaExpression conversion) => throw null; public static System.Linq.Expressions.IndexExpression ArrayAccess(System.Linq.Expressions.Expression array, System.Collections.Generic.IEnumerable indexes) => throw null; public static System.Linq.Expressions.IndexExpression ArrayAccess(System.Linq.Expressions.Expression array, params System.Linq.Expressions.Expression[] indexes) => throw null; - public static System.Linq.Expressions.BinaryExpression ArrayIndex(System.Linq.Expressions.Expression array, System.Linq.Expressions.Expression index) => throw null; public static System.Linq.Expressions.MethodCallExpression ArrayIndex(System.Linq.Expressions.Expression array, System.Collections.Generic.IEnumerable indexes) => throw null; + public static System.Linq.Expressions.BinaryExpression ArrayIndex(System.Linq.Expressions.Expression array, System.Linq.Expressions.Expression index) => throw null; public static System.Linq.Expressions.MethodCallExpression ArrayIndex(System.Linq.Expressions.Expression array, params System.Linq.Expressions.Expression[] indexes) => throw null; public static System.Linq.Expressions.UnaryExpression ArrayLength(System.Linq.Expressions.Expression array) => throw null; public static System.Linq.Expressions.BinaryExpression Assign(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right) => throw null; public static System.Linq.Expressions.MemberAssignment Bind(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression) => throw null; public static System.Linq.Expressions.MemberAssignment Bind(System.Reflection.MethodInfo propertyAccessor, System.Linq.Expressions.Expression expression) => throw null; + public static System.Linq.Expressions.BlockExpression Block(System.Collections.Generic.IEnumerable expressions) => throw null; + public static System.Linq.Expressions.BlockExpression Block(System.Collections.Generic.IEnumerable variables, System.Collections.Generic.IEnumerable expressions) => throw null; + public static System.Linq.Expressions.BlockExpression Block(System.Collections.Generic.IEnumerable variables, params System.Linq.Expressions.Expression[] expressions) => throw null; public static System.Linq.Expressions.BlockExpression Block(System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1) => throw null; public static System.Linq.Expressions.BlockExpression Block(System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2) => throw null; public static System.Linq.Expressions.BlockExpression Block(System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3) => throw null; public static System.Linq.Expressions.BlockExpression Block(System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3, System.Linq.Expressions.Expression arg4) => throw null; - public static System.Linq.Expressions.BlockExpression Block(System.Collections.Generic.IEnumerable expressions) => throw null; - public static System.Linq.Expressions.BlockExpression Block(System.Collections.Generic.IEnumerable variables, System.Collections.Generic.IEnumerable expressions) => throw null; - public static System.Linq.Expressions.BlockExpression Block(System.Collections.Generic.IEnumerable variables, params System.Linq.Expressions.Expression[] expressions) => throw null; + public static System.Linq.Expressions.BlockExpression Block(params System.Linq.Expressions.Expression[] expressions) => throw null; public static System.Linq.Expressions.BlockExpression Block(System.Type type, System.Collections.Generic.IEnumerable expressions) => throw null; public static System.Linq.Expressions.BlockExpression Block(System.Type type, System.Collections.Generic.IEnumerable variables, System.Collections.Generic.IEnumerable expressions) => throw null; public static System.Linq.Expressions.BlockExpression Block(System.Type type, System.Collections.Generic.IEnumerable variables, params System.Linq.Expressions.Expression[] expressions) => throw null; public static System.Linq.Expressions.BlockExpression Block(System.Type type, params System.Linq.Expressions.Expression[] expressions) => throw null; - public static System.Linq.Expressions.BlockExpression Block(params System.Linq.Expressions.Expression[] expressions) => throw null; public static System.Linq.Expressions.GotoExpression Break(System.Linq.Expressions.LabelTarget target) => throw null; public static System.Linq.Expressions.GotoExpression Break(System.Linq.Expressions.LabelTarget target, System.Linq.Expressions.Expression value) => throw null; public static System.Linq.Expressions.GotoExpression Break(System.Linq.Expressions.LabelTarget target, System.Linq.Expressions.Expression value, System.Type type) => throw null; public static System.Linq.Expressions.GotoExpression Break(System.Linq.Expressions.LabelTarget target, System.Type type) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method) => throw null; + public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2) => throw null; - public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[] arguments) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, string methodName, System.Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments) => throw null; + public static System.Linq.Expressions.MethodCallExpression Call(System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3, System.Linq.Expressions.Expression arg4) => throw null; - public static System.Linq.Expressions.MethodCallExpression Call(System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[] arguments) => throw null; public static System.Linq.Expressions.MethodCallExpression Call(System.Type type, string methodName, System.Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments) => throw null; public virtual bool CanReduce { get => throw null; } @@ -469,6 +411,8 @@ namespace System public static System.Linq.Expressions.UnaryExpression Convert(System.Linq.Expressions.Expression expression, System.Type type, System.Reflection.MethodInfo method) => throw null; public static System.Linq.Expressions.UnaryExpression ConvertChecked(System.Linq.Expressions.Expression expression, System.Type type) => throw null; public static System.Linq.Expressions.UnaryExpression ConvertChecked(System.Linq.Expressions.Expression expression, System.Type type, System.Reflection.MethodInfo method) => throw null; + protected Expression() => throw null; + protected Expression(System.Linq.Expressions.ExpressionType nodeType, System.Type type) => throw null; public static System.Linq.Expressions.DebugInfoExpression DebugInfo(System.Linq.Expressions.SymbolDocumentInfo document, int startLine, int startColumn, int endLine, int endColumn) => throw null; public static System.Linq.Expressions.UnaryExpression Decrement(System.Linq.Expressions.Expression expression) => throw null; public static System.Linq.Expressions.UnaryExpression Decrement(System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo method) => throw null; @@ -478,11 +422,11 @@ namespace System public static System.Linq.Expressions.BinaryExpression DivideAssign(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right) => throw null; public static System.Linq.Expressions.BinaryExpression DivideAssign(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method) => throw null; public static System.Linq.Expressions.BinaryExpression DivideAssign(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method, System.Linq.Expressions.LambdaExpression conversion) => throw null; + public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Linq.Expressions.Expression arg0) => throw null; public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1) => throw null; public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2) => throw null; public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3) => throw null; - public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.DynamicExpression Dynamic(System.Runtime.CompilerServices.CallSiteBinder binder, System.Type returnType, params System.Linq.Expressions.Expression[] arguments) => throw null; public static System.Linq.Expressions.ElementInit ElementInit(System.Reflection.MethodInfo addMethod, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.ElementInit ElementInit(System.Reflection.MethodInfo addMethod, params System.Linq.Expressions.Expression[] arguments) => throw null; @@ -494,11 +438,9 @@ namespace System public static System.Linq.Expressions.BinaryExpression ExclusiveOrAssign(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right) => throw null; public static System.Linq.Expressions.BinaryExpression ExclusiveOrAssign(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method) => throw null; public static System.Linq.Expressions.BinaryExpression ExclusiveOrAssign(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method, System.Linq.Expressions.LambdaExpression conversion) => throw null; - protected Expression() => throw null; - protected Expression(System.Linq.Expressions.ExpressionType nodeType, System.Type type) => throw null; public static System.Linq.Expressions.MemberExpression Field(System.Linq.Expressions.Expression expression, System.Reflection.FieldInfo field) => throw null; - public static System.Linq.Expressions.MemberExpression Field(System.Linq.Expressions.Expression expression, System.Type type, string fieldName) => throw null; public static System.Linq.Expressions.MemberExpression Field(System.Linq.Expressions.Expression expression, string fieldName) => throw null; + public static System.Linq.Expressions.MemberExpression Field(System.Linq.Expressions.Expression expression, System.Type type, string fieldName) => throw null; public static System.Type GetActionType(params System.Type[] typeArgs) => throw null; public static System.Type GetDelegateType(params System.Type[] typeArgs) => throw null; public static System.Type GetFuncType(params System.Type[] typeArgs) => throw null; @@ -523,27 +465,27 @@ namespace System public static System.Linq.Expressions.LabelTarget Label() => throw null; public static System.Linq.Expressions.LabelExpression Label(System.Linq.Expressions.LabelTarget target) => throw null; public static System.Linq.Expressions.LabelExpression Label(System.Linq.Expressions.LabelTarget target, System.Linq.Expressions.Expression defaultValue) => throw null; + public static System.Linq.Expressions.LabelTarget Label(string name) => throw null; public static System.Linq.Expressions.LabelTarget Label(System.Type type) => throw null; public static System.Linq.Expressions.LabelTarget Label(System.Type type, string name) => throw null; - public static System.Linq.Expressions.LabelTarget Label(string name) => throw null; - public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters) => throw null; + public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[] parameters) => throw null; - public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, string name, bool tailCall, System.Collections.Generic.IEnumerable parameters) => throw null; - public static System.Linq.Expressions.LambdaExpression Lambda(System.Type delegateType, System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable parameters) => throw null; + public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.LambdaExpression Lambda(System.Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.LambdaExpression Lambda(System.Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters) => throw null; + public static System.Linq.Expressions.LambdaExpression Lambda(System.Type delegateType, System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.LambdaExpression Lambda(System.Type delegateType, System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[] parameters) => throw null; - public static System.Linq.Expressions.LambdaExpression Lambda(System.Type delegateType, System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.LambdaExpression Lambda(System.Type delegateType, System.Linq.Expressions.Expression body, string name, bool tailCall, System.Collections.Generic.IEnumerable parameters) => throw null; - public static System.Linq.Expressions.Expression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable parameters) => throw null; + public static System.Linq.Expressions.LambdaExpression Lambda(System.Type delegateType, System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.Expression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.Expression Lambda(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters) => throw null; + public static System.Linq.Expressions.Expression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.Expression Lambda(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[] parameters) => throw null; - public static System.Linq.Expressions.Expression Lambda(System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.Expression Lambda(System.Linq.Expressions.Expression body, string name, bool tailCall, System.Collections.Generic.IEnumerable parameters) => throw null; + public static System.Linq.Expressions.Expression Lambda(System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable parameters) => throw null; public static System.Linq.Expressions.BinaryExpression LeftShift(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right) => throw null; public static System.Linq.Expressions.BinaryExpression LeftShift(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method) => throw null; public static System.Linq.Expressions.BinaryExpression LeftShiftAssign(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right) => throw null; @@ -559,10 +501,10 @@ namespace System public static System.Linq.Expressions.MemberListBinding ListBind(System.Reflection.MethodInfo propertyAccessor, params System.Linq.Expressions.ElementInit[] initializers) => throw null; public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable initializers) => throw null; public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable initializers) => throw null; - public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo addMethod, System.Collections.Generic.IEnumerable initializers) => throw null; - public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo addMethod, params System.Linq.Expressions.Expression[] initializers) => throw null; public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, params System.Linq.Expressions.ElementInit[] initializers) => throw null; public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, params System.Linq.Expressions.Expression[] initializers) => throw null; + public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo addMethod, System.Collections.Generic.IEnumerable initializers) => throw null; + public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo addMethod, params System.Linq.Expressions.Expression[] initializers) => throw null; public static System.Linq.Expressions.LoopExpression Loop(System.Linq.Expressions.Expression body) => throw null; public static System.Linq.Expressions.LoopExpression Loop(System.Linq.Expressions.Expression body, System.Linq.Expressions.LabelTarget @break) => throw null; public static System.Linq.Expressions.LoopExpression Loop(System.Linq.Expressions.Expression body, System.Linq.Expressions.LabelTarget @break, System.Linq.Expressions.LabelTarget @continue) => throw null; @@ -570,11 +512,11 @@ namespace System public static System.Linq.Expressions.BinaryExpression MakeBinary(System.Linq.Expressions.ExpressionType binaryType, System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, bool liftToNull, System.Reflection.MethodInfo method) => throw null; public static System.Linq.Expressions.BinaryExpression MakeBinary(System.Linq.Expressions.ExpressionType binaryType, System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, bool liftToNull, System.Reflection.MethodInfo method, System.Linq.Expressions.LambdaExpression conversion) => throw null; public static System.Linq.Expressions.CatchBlock MakeCatchBlock(System.Type type, System.Linq.Expressions.ParameterExpression variable, System.Linq.Expressions.Expression body, System.Linq.Expressions.Expression filter) => throw null; + public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Linq.Expressions.Expression arg0) => throw null; public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1) => throw null; public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2) => throw null; public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3) => throw null; - public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.DynamicExpression MakeDynamic(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, params System.Linq.Expressions.Expression[] arguments) => throw null; public static System.Linq.Expressions.GotoExpression MakeGoto(System.Linq.Expressions.GotoExpressionKind kind, System.Linq.Expressions.LabelTarget target, System.Linq.Expressions.Expression value, System.Type type) => throw null; public static System.Linq.Expressions.IndexExpression MakeIndex(System.Linq.Expressions.Expression instance, System.Reflection.PropertyInfo indexer, System.Collections.Generic.IEnumerable arguments) => throw null; @@ -650,9 +592,9 @@ namespace System public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression expression, System.Reflection.PropertyInfo property) => throw null; public static System.Linq.Expressions.IndexExpression Property(System.Linq.Expressions.Expression instance, System.Reflection.PropertyInfo indexer, System.Collections.Generic.IEnumerable arguments) => throw null; public static System.Linq.Expressions.IndexExpression Property(System.Linq.Expressions.Expression instance, System.Reflection.PropertyInfo indexer, params System.Linq.Expressions.Expression[] arguments) => throw null; - public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression expression, System.Type type, string propertyName) => throw null; public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression expression, string propertyName) => throw null; public static System.Linq.Expressions.IndexExpression Property(System.Linq.Expressions.Expression instance, string propertyName, params System.Linq.Expressions.Expression[] arguments) => throw null; + public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression expression, System.Type type, string propertyName) => throw null; public static System.Linq.Expressions.MemberExpression PropertyOrField(System.Linq.Expressions.Expression expression, string propertyOrFieldName) => throw null; public static System.Linq.Expressions.UnaryExpression Quote(System.Linq.Expressions.Expression expression) => throw null; public virtual System.Linq.Expressions.Expression Reduce() => throw null; @@ -683,9 +625,9 @@ namespace System public static System.Linq.Expressions.BinaryExpression SubtractAssignChecked(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method, System.Linq.Expressions.LambdaExpression conversion) => throw null; public static System.Linq.Expressions.BinaryExpression SubtractChecked(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right) => throw null; public static System.Linq.Expressions.BinaryExpression SubtractChecked(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method) => throw null; + public static System.Linq.Expressions.SwitchExpression Switch(System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, params System.Linq.Expressions.SwitchCase[] cases) => throw null; public static System.Linq.Expressions.SwitchExpression Switch(System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, System.Reflection.MethodInfo comparison, System.Collections.Generic.IEnumerable cases) => throw null; public static System.Linq.Expressions.SwitchExpression Switch(System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, System.Reflection.MethodInfo comparison, params System.Linq.Expressions.SwitchCase[] cases) => throw null; - public static System.Linq.Expressions.SwitchExpression Switch(System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, params System.Linq.Expressions.SwitchCase[] cases) => throw null; public static System.Linq.Expressions.SwitchExpression Switch(System.Linq.Expressions.Expression switchValue, params System.Linq.Expressions.SwitchCase[] cases) => throw null; public static System.Linq.Expressions.SwitchExpression Switch(System.Type type, System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, System.Reflection.MethodInfo comparison, System.Collections.Generic.IEnumerable cases) => throw null; public static System.Linq.Expressions.SwitchExpression Switch(System.Type type, System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, System.Reflection.MethodInfo comparison, params System.Linq.Expressions.SwitchCase[] cases) => throw null; @@ -713,392 +655,362 @@ namespace System public static System.Linq.Expressions.UnaryExpression Unbox(System.Linq.Expressions.Expression expression, System.Type type) => throw null; public static System.Linq.Expressions.ParameterExpression Variable(System.Type type) => throw null; public static System.Linq.Expressions.ParameterExpression Variable(System.Type type, string name) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected virtual System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; } - - public class Expression : System.Linq.Expressions.LambdaExpression + public sealed class Expression : System.Linq.Expressions.LambdaExpression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public TDelegate Compile() => throw null; - public TDelegate Compile(System.Runtime.CompilerServices.DebugInfoGenerator debugInfoGenerator) => throw null; public TDelegate Compile(bool preferInterpretation) => throw null; + public TDelegate Compile(System.Runtime.CompilerServices.DebugInfoGenerator debugInfoGenerator) => throw null; public System.Linq.Expressions.Expression Update(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable parameters) => throw null; } - - public enum ExpressionType : int + public enum ExpressionType { Add = 0, - AddAssign = 63, - AddAssignChecked = 74, AddChecked = 1, And = 2, AndAlso = 3, - AndAssign = 64, - ArrayIndex = 5, ArrayLength = 4, - Assign = 46, - Block = 47, + ArrayIndex = 5, Call = 6, Coalesce = 7, Conditional = 8, Constant = 9, Convert = 10, ConvertChecked = 11, - DebugInfo = 48, - Decrement = 49, - Default = 51, Divide = 12, - DivideAssign = 65, - Dynamic = 50, Equal = 13, ExclusiveOr = 14, - ExclusiveOrAssign = 66, - Extension = 52, - Goto = 53, GreaterThan = 15, GreaterThanOrEqual = 16, - Increment = 54, - Index = 55, Invoke = 17, - IsFalse = 84, - IsTrue = 83, - Label = 56, Lambda = 18, LeftShift = 19, - LeftShiftAssign = 67, LessThan = 20, LessThanOrEqual = 21, ListInit = 22, - Loop = 58, MemberAccess = 23, MemberInit = 24, Modulo = 25, - ModuloAssign = 68, Multiply = 26, - MultiplyAssign = 69, - MultiplyAssignChecked = 75, MultiplyChecked = 27, Negate = 28, + UnaryPlus = 29, NegateChecked = 30, New = 31, - NewArrayBounds = 33, NewArrayInit = 32, + NewArrayBounds = 33, Not = 34, NotEqual = 35, - OnesComplement = 82, Or = 36, - OrAssign = 70, OrElse = 37, Parameter = 38, - PostDecrementAssign = 80, - PostIncrementAssign = 79, Power = 39, - PowerAssign = 71, - PreDecrementAssign = 78, - PreIncrementAssign = 77, Quote = 40, RightShift = 41, - RightShiftAssign = 72, - RuntimeVariables = 57, Subtract = 42, - SubtractAssign = 73, - SubtractAssignChecked = 76, SubtractChecked = 43, + TypeAs = 44, + TypeIs = 45, + Assign = 46, + Block = 47, + DebugInfo = 48, + Decrement = 49, + Dynamic = 50, + Default = 51, + Extension = 52, + Goto = 53, + Increment = 54, + Index = 55, + Label = 56, + RuntimeVariables = 57, + Loop = 58, Switch = 59, Throw = 60, Try = 61, - TypeAs = 44, - TypeEqual = 81, - TypeIs = 45, - UnaryPlus = 29, Unbox = 62, + AddAssign = 63, + AndAssign = 64, + DivideAssign = 65, + ExclusiveOrAssign = 66, + LeftShiftAssign = 67, + ModuloAssign = 68, + MultiplyAssign = 69, + OrAssign = 70, + PowerAssign = 71, + RightShiftAssign = 72, + SubtractAssign = 73, + AddAssignChecked = 74, + MultiplyAssignChecked = 75, + SubtractAssignChecked = 76, + PreIncrementAssign = 77, + PreDecrementAssign = 78, + PostIncrementAssign = 79, + PostDecrementAssign = 80, + TypeEqual = 81, + OnesComplement = 82, + IsTrue = 83, + IsFalse = 84, } - public abstract class ExpressionVisitor { protected ExpressionVisitor() => throw null; - public virtual System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression node) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection Visit(System.Collections.ObjectModel.ReadOnlyCollection nodes) => throw null; + public virtual System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression node) => throw null; public static System.Collections.ObjectModel.ReadOnlyCollection Visit(System.Collections.ObjectModel.ReadOnlyCollection nodes, System.Func elementVisitor) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection VisitAndConvert(System.Collections.ObjectModel.ReadOnlyCollection nodes, string callerName) where T : System.Linq.Expressions.Expression => throw null; public T VisitAndConvert(T node, string callerName) where T : System.Linq.Expressions.Expression => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitBlock(System.Linq.Expressions.BlockExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitBlock(System.Linq.Expressions.BlockExpression node) => throw null; protected virtual System.Linq.Expressions.CatchBlock VisitCatchBlock(System.Linq.Expressions.CatchBlock node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitDefault(System.Linq.Expressions.DefaultExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitDynamic(System.Linq.Expressions.DynamicExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitDefault(System.Linq.Expressions.DefaultExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitDynamic(System.Linq.Expressions.DynamicExpression node) => throw null; protected virtual System.Linq.Expressions.ElementInit VisitElementInit(System.Linq.Expressions.ElementInit node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitExtension(System.Linq.Expressions.Expression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitGoto(System.Linq.Expressions.GotoExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitIndex(System.Linq.Expressions.IndexExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitLabel(System.Linq.Expressions.LabelExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitExtension(System.Linq.Expressions.Expression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitGoto(System.Linq.Expressions.GotoExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitIndex(System.Linq.Expressions.IndexExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitLabel(System.Linq.Expressions.LabelExpression node) => throw null; protected virtual System.Linq.Expressions.LabelTarget VisitLabelTarget(System.Linq.Expressions.LabelTarget node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitLambda(System.Linq.Expressions.Expression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitListInit(System.Linq.Expressions.ListInitExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitLoop(System.Linq.Expressions.LoopExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitLambda(System.Linq.Expressions.Expression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitListInit(System.Linq.Expressions.ListInitExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitLoop(System.Linq.Expressions.LoopExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression node) => throw null; protected virtual System.Linq.Expressions.MemberAssignment VisitMemberAssignment(System.Linq.Expressions.MemberAssignment node) => throw null; protected virtual System.Linq.Expressions.MemberBinding VisitMemberBinding(System.Linq.Expressions.MemberBinding node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitMemberInit(System.Linq.Expressions.MemberInitExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitMemberInit(System.Linq.Expressions.MemberInitExpression node) => throw null; protected virtual System.Linq.Expressions.MemberListBinding VisitMemberListBinding(System.Linq.Expressions.MemberListBinding node) => throw null; protected virtual System.Linq.Expressions.MemberMemberBinding VisitMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNewArray(System.Linq.Expressions.NewArrayExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitRuntimeVariables(System.Linq.Expressions.RuntimeVariablesExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitSwitch(System.Linq.Expressions.SwitchExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNewArray(System.Linq.Expressions.NewArrayExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitRuntimeVariables(System.Linq.Expressions.RuntimeVariablesExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitSwitch(System.Linq.Expressions.SwitchExpression node) => throw null; protected virtual System.Linq.Expressions.SwitchCase VisitSwitchCase(System.Linq.Expressions.SwitchCase node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitTry(System.Linq.Expressions.TryExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitTry(System.Linq.Expressions.TryExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression node) => throw null; } - - public class GotoExpression : System.Linq.Expressions.Expression + public sealed class GotoExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Linq.Expressions.GotoExpressionKind Kind { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public System.Linq.Expressions.LabelTarget Target { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.GotoExpression Update(System.Linq.Expressions.LabelTarget target, System.Linq.Expressions.Expression value) => throw null; public System.Linq.Expressions.Expression Value { get => throw null; } } - - public enum GotoExpressionKind : int + public enum GotoExpressionKind { - Break = 2, - Continue = 3, Goto = 0, Return = 1, + Break = 2, + Continue = 3, } - public interface IArgumentProvider { int ArgumentCount { get; } System.Linq.Expressions.Expression GetArgument(int index); } - public interface IDynamicExpression : System.Linq.Expressions.IArgumentProvider { object CreateCallSite(); System.Type DelegateType { get; } System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression[] args); } - - public class IndexExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider + public sealed class IndexExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; int System.Linq.Expressions.IArgumentProvider.ArgumentCount { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection Arguments { get => throw null; } System.Linq.Expressions.Expression System.Linq.Expressions.IArgumentProvider.GetArgument(int index) => throw null; public System.Reflection.PropertyInfo Indexer { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public System.Linq.Expressions.Expression Object { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.IndexExpression Update(System.Linq.Expressions.Expression @object, System.Collections.Generic.IEnumerable arguments) => throw null; } - - public class InvocationExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider + public sealed class InvocationExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; int System.Linq.Expressions.IArgumentProvider.ArgumentCount { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection Arguments { get => throw null; } public System.Linq.Expressions.Expression Expression { get => throw null; } System.Linq.Expressions.Expression System.Linq.Expressions.IArgumentProvider.GetArgument(int index) => throw null; - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.InvocationExpression Update(System.Linq.Expressions.Expression expression, System.Collections.Generic.IEnumerable arguments) => throw null; } - - public class LabelExpression : System.Linq.Expressions.Expression + public sealed class LabelExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Linq.Expressions.Expression DefaultValue { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public System.Linq.Expressions.LabelTarget Target { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.LabelExpression Update(System.Linq.Expressions.LabelTarget target, System.Linq.Expressions.Expression defaultValue) => throw null; } - - public class LabelTarget + public sealed class LabelTarget { public string Name { get => throw null; } public override string ToString() => throw null; public System.Type Type { get => throw null; } } - public abstract class LambdaExpression : System.Linq.Expressions.Expression { public System.Linq.Expressions.Expression Body { get => throw null; } public System.Delegate Compile() => throw null; - public System.Delegate Compile(System.Runtime.CompilerServices.DebugInfoGenerator debugInfoGenerator) => throw null; public System.Delegate Compile(bool preferInterpretation) => throw null; - internal LambdaExpression() => throw null; + public System.Delegate Compile(System.Runtime.CompilerServices.DebugInfoGenerator debugInfoGenerator) => throw null; public string Name { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection Parameters { get => throw null; } public System.Type ReturnType { get => throw null; } public bool TailCall { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } } - - public class ListInitExpression : System.Linq.Expressions.Expression + public sealed class ListInitExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public override bool CanReduce { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection Initializers { get => throw null; } public System.Linq.Expressions.NewExpression NewExpression { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public override System.Linq.Expressions.Expression Reduce() => throw null; - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.ListInitExpression Update(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable initializers) => throw null; } - - public class LoopExpression : System.Linq.Expressions.Expression + public sealed class LoopExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Linq.Expressions.Expression Body { get => throw null; } public System.Linq.Expressions.LabelTarget BreakLabel { get => throw null; } public System.Linq.Expressions.LabelTarget ContinueLabel { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.LoopExpression Update(System.Linq.Expressions.LabelTarget breakLabel, System.Linq.Expressions.LabelTarget continueLabel, System.Linq.Expressions.Expression body) => throw null; } - - public class MemberAssignment : System.Linq.Expressions.MemberBinding + public sealed class MemberAssignment : System.Linq.Expressions.MemberBinding { public System.Linq.Expressions.Expression Expression { get => throw null; } - internal MemberAssignment() : base(default(System.Linq.Expressions.MemberBindingType), default(System.Reflection.MemberInfo)) => throw null; public System.Linq.Expressions.MemberAssignment Update(System.Linq.Expressions.Expression expression) => throw null; + internal MemberAssignment() : base(default(System.Linq.Expressions.MemberBindingType), default(System.Reflection.MemberInfo)) { } } - public abstract class MemberBinding { public System.Linq.Expressions.MemberBindingType BindingType { get => throw null; } - public System.Reflection.MemberInfo Member { get => throw null; } protected MemberBinding(System.Linq.Expressions.MemberBindingType type, System.Reflection.MemberInfo member) => throw null; + public System.Reflection.MemberInfo Member { get => throw null; } public override string ToString() => throw null; } - - public enum MemberBindingType : int + public enum MemberBindingType { Assignment = 0, - ListBinding = 2, MemberBinding = 1, + ListBinding = 2, } - public class MemberExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Linq.Expressions.Expression Expression { get => throw null; } public System.Reflection.MemberInfo Member { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public System.Linq.Expressions.MemberExpression Update(System.Linq.Expressions.Expression expression) => throw null; } - - public class MemberInitExpression : System.Linq.Expressions.Expression + public sealed class MemberInitExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection Bindings { get => throw null; } public override bool CanReduce { get => throw null; } public System.Linq.Expressions.NewExpression NewExpression { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public override System.Linq.Expressions.Expression Reduce() => throw null; - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.MemberInitExpression Update(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable bindings) => throw null; } - - public class MemberListBinding : System.Linq.Expressions.MemberBinding + public sealed class MemberListBinding : System.Linq.Expressions.MemberBinding { public System.Collections.ObjectModel.ReadOnlyCollection Initializers { get => throw null; } - internal MemberListBinding() : base(default(System.Linq.Expressions.MemberBindingType), default(System.Reflection.MemberInfo)) => throw null; public System.Linq.Expressions.MemberListBinding Update(System.Collections.Generic.IEnumerable initializers) => throw null; + internal MemberListBinding() : base(default(System.Linq.Expressions.MemberBindingType), default(System.Reflection.MemberInfo)) { } } - - public class MemberMemberBinding : System.Linq.Expressions.MemberBinding + public sealed class MemberMemberBinding : System.Linq.Expressions.MemberBinding { public System.Collections.ObjectModel.ReadOnlyCollection Bindings { get => throw null; } - internal MemberMemberBinding() : base(default(System.Linq.Expressions.MemberBindingType), default(System.Reflection.MemberInfo)) => throw null; public System.Linq.Expressions.MemberMemberBinding Update(System.Collections.Generic.IEnumerable bindings) => throw null; + internal MemberMemberBinding() : base(default(System.Linq.Expressions.MemberBindingType), default(System.Reflection.MemberInfo)) { } } - public class MethodCallExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; int System.Linq.Expressions.IArgumentProvider.ArgumentCount { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection Arguments { get => throw null; } System.Linq.Expressions.Expression System.Linq.Expressions.IArgumentProvider.GetArgument(int index) => throw null; public System.Reflection.MethodInfo Method { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public System.Linq.Expressions.Expression Object { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.MethodCallExpression Update(System.Linq.Expressions.Expression @object, System.Collections.Generic.IEnumerable arguments) => throw null; } - public class NewArrayExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection Expressions { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.NewArrayExpression Update(System.Collections.Generic.IEnumerable expressions) => throw null; } - public class NewExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; int System.Linq.Expressions.IArgumentProvider.ArgumentCount { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection Arguments { get => throw null; } public System.Reflection.ConstructorInfo Constructor { get => throw null; } System.Linq.Expressions.Expression System.Linq.Expressions.IArgumentProvider.GetArgument(int index) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection Members { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public override System.Type Type { get => throw null; } public System.Linq.Expressions.NewExpression Update(System.Collections.Generic.IEnumerable arguments) => throw null; } - public class ParameterExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public bool IsByRef { get => throw null; } public string Name { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public override System.Type Type { get => throw null; } } - - public class RuntimeVariablesExpression : System.Linq.Expressions.Expression + public sealed class RuntimeVariablesExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } - public override System.Type Type { get => throw null; } + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.RuntimeVariablesExpression Update(System.Collections.Generic.IEnumerable variables) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection Variables { get => throw null; } } - - public class SwitchCase + public sealed class SwitchCase { public System.Linq.Expressions.Expression Body { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection TestValues { get => throw null; } public override string ToString() => throw null; public System.Linq.Expressions.SwitchCase Update(System.Collections.Generic.IEnumerable testValues, System.Linq.Expressions.Expression body) => throw null; } - - public class SwitchExpression : System.Linq.Expressions.Expression + public sealed class SwitchExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection Cases { get => throw null; } public System.Reflection.MethodInfo Comparison { get => throw null; } public System.Linq.Expressions.Expression DefaultBody { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public System.Linq.Expressions.Expression SwitchValue { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.SwitchExpression Update(System.Linq.Expressions.Expression switchValue, System.Collections.Generic.IEnumerable cases, System.Linq.Expressions.Expression defaultBody) => throw null; } - public class SymbolDocumentInfo { public virtual System.Guid DocumentType { get => throw null; } @@ -1106,43 +1018,61 @@ namespace System public virtual System.Guid Language { get => throw null; } public virtual System.Guid LanguageVendor { get => throw null; } } - - public class TryExpression : System.Linq.Expressions.Expression + public sealed class TryExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Linq.Expressions.Expression Body { get => throw null; } public System.Linq.Expressions.Expression Fault { get => throw null; } public System.Linq.Expressions.Expression Finally { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection Handlers { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.TryExpression Update(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable handlers, System.Linq.Expressions.Expression @finally, System.Linq.Expressions.Expression fault) => throw null; } - - public class TypeBinaryExpression : System.Linq.Expressions.Expression + public sealed class TypeBinaryExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public System.Linq.Expressions.Expression Expression { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } - public override System.Type Type { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Type TypeOperand { get => throw null; } public System.Linq.Expressions.TypeBinaryExpression Update(System.Linq.Expressions.Expression expression) => throw null; } - - public class UnaryExpression : System.Linq.Expressions.Expression + public sealed class UnaryExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public override bool CanReduce { get => throw null; } public bool IsLifted { get => throw null; } public bool IsLiftedToNull { get => throw null; } public System.Reflection.MethodInfo Method { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public System.Linq.Expressions.Expression Operand { get => throw null; } public override System.Linq.Expressions.Expression Reduce() => throw null; - public override System.Type Type { get => throw null; } + public override sealed System.Type Type { get => throw null; } public System.Linq.Expressions.UnaryExpression Update(System.Linq.Expressions.Expression operand) => throw null; } - + } + public interface IOrderedQueryable : System.Collections.IEnumerable, System.Linq.IQueryable + { + } + public interface IOrderedQueryable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IQueryable + { + } + public interface IQueryable : System.Collections.IEnumerable + { + System.Type ElementType { get; } + System.Linq.Expressions.Expression Expression { get; } + System.Linq.IQueryProvider Provider { get; } + } + public interface IQueryable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IQueryable + { + } + public interface IQueryProvider + { + System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression); + System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression); + object Execute(System.Linq.Expressions.Expression expression); + TResult Execute(System.Linq.Expressions.Expression expression); } } namespace Runtime @@ -1152,17 +1082,14 @@ namespace System public class CallSite { public System.Runtime.CompilerServices.CallSiteBinder Binder { get => throw null; } - internal CallSite() => throw null; public static System.Runtime.CompilerServices.CallSite Create(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder) => throw null; } - public class CallSite : System.Runtime.CompilerServices.CallSite where T : class { public static System.Runtime.CompilerServices.CallSite Create(System.Runtime.CompilerServices.CallSiteBinder binder) => throw null; public T Target; public T Update { get => throw null; } } - public abstract class CallSiteBinder { public abstract System.Linq.Expressions.Expression Bind(object[] args, System.Collections.ObjectModel.ReadOnlyCollection parameters, System.Linq.Expressions.LabelTarget returnLabel); @@ -1171,43 +1098,41 @@ namespace System protected CallSiteBinder() => throw null; public static System.Linq.Expressions.LabelTarget UpdateLabel { get => throw null; } } - public static class CallSiteHelpers { public static bool IsInternalFrame(System.Reflection.MethodBase mb) => throw null; } - public abstract class DebugInfoGenerator { public static System.Runtime.CompilerServices.DebugInfoGenerator CreatePdbGenerator() => throw null; protected DebugInfoGenerator() => throw null; public abstract void MarkSequencePoint(System.Linq.Expressions.LambdaExpression method, int ilOffset, System.Linq.Expressions.DebugInfoExpression sequencePoint); } - - public class DynamicAttribute : System.Attribute + public sealed class DynamicAttribute : System.Attribute { public DynamicAttribute() => throw null; public DynamicAttribute(bool[] transformFlags) => throw null; public System.Collections.Generic.IList TransformFlags { get => throw null; } } - public interface IRuntimeVariables { int Count { get; } object this[int index] { get; set; } } - - public class ReadOnlyCollectionBuilder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + public sealed class ReadOnlyCollectionBuilder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.ICollection, System.Collections.IList { public void Add(T item) => throw null; int System.Collections.IList.Add(object value) => throw null; - public int Capacity { get => throw null; set => throw null; } + public int Capacity { get => throw null; set { } } public void Clear() => throw null; public bool Contains(T item) => throw null; bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(T[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public ReadOnlyCollectionBuilder() => throw null; + public ReadOnlyCollectionBuilder(System.Collections.Generic.IEnumerable collection) => throw null; + public ReadOnlyCollectionBuilder(int capacity) => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public int IndexOf(T item) => throw null; @@ -1218,25 +1143,20 @@ namespace System bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } bool System.Collections.IList.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public T this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public ReadOnlyCollectionBuilder() => throw null; - public ReadOnlyCollectionBuilder(System.Collections.Generic.IEnumerable collection) => throw null; - public ReadOnlyCollectionBuilder(int capacity) => throw null; + object System.Collections.IList.this[int index] { get => throw null; set { } } public bool Remove(T item) => throw null; void System.Collections.IList.Remove(object value) => throw null; public void RemoveAt(int index) => throw null; public void Reverse() => throw null; public void Reverse(int index, int count) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; set { } } public T[] ToArray() => throw null; public System.Collections.ObjectModel.ReadOnlyCollection ToReadOnlyCollection() => throw null; } - public class RuleCache where T : class { } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Parallel.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Parallel.cs index a151bca4688..c7611c69a2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Parallel.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Parallel.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Linq.Parallel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Linq @@ -9,14 +8,13 @@ namespace System { public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; } - public static class ParallelEnumerable { + public static TSource Aggregate(this System.Linq.ParallelQuery source, System.Func func) => throw null; + public static TAccumulate Aggregate(this System.Linq.ParallelQuery source, TAccumulate seed, System.Func func) => throw null; public static TResult Aggregate(this System.Linq.ParallelQuery source, System.Func seedFactory, System.Func updateAccumulatorFunc, System.Func combineAccumulatorsFunc, System.Func resultSelector) => throw null; public static TResult Aggregate(this System.Linq.ParallelQuery source, TAccumulate seed, System.Func updateAccumulatorFunc, System.Func combineAccumulatorsFunc, System.Func resultSelector) => throw null; public static TResult Aggregate(this System.Linq.ParallelQuery source, TAccumulate seed, System.Func func, System.Func resultSelector) => throw null; - public static TAccumulate Aggregate(this System.Linq.ParallelQuery source, TAccumulate seed, System.Func func) => throw null; - public static TSource Aggregate(this System.Linq.ParallelQuery source, System.Func func) => throw null; public static bool All(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; public static bool Any(this System.Linq.ParallelQuery source) => throw null; public static bool Any(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; @@ -24,30 +22,30 @@ namespace System public static System.Linq.ParallelQuery AsOrdered(this System.Linq.ParallelQuery source) => throw null; public static System.Linq.ParallelQuery AsOrdered(this System.Linq.ParallelQuery source) => throw null; public static System.Linq.ParallelQuery AsParallel(this System.Collections.IEnumerable source) => throw null; - public static System.Linq.ParallelQuery AsParallel(this System.Collections.Generic.IEnumerable source) => throw null; public static System.Linq.ParallelQuery AsParallel(this System.Collections.Concurrent.Partitioner source) => throw null; + public static System.Linq.ParallelQuery AsParallel(this System.Collections.Generic.IEnumerable source) => throw null; public static System.Collections.Generic.IEnumerable AsSequential(this System.Linq.ParallelQuery source) => throw null; public static System.Linq.ParallelQuery AsUnordered(this System.Linq.ParallelQuery source) => throw null; - public static System.Decimal Average(this System.Linq.ParallelQuery source) => throw null; - public static System.Decimal? Average(this System.Linq.ParallelQuery source) => throw null; + public static decimal Average(this System.Linq.ParallelQuery source) => throw null; public static double Average(this System.Linq.ParallelQuery source) => throw null; - public static double? Average(this System.Linq.ParallelQuery source) => throw null; - public static float Average(this System.Linq.ParallelQuery source) => throw null; - public static float? Average(this System.Linq.ParallelQuery source) => throw null; public static double Average(this System.Linq.ParallelQuery source) => throw null; + public static double Average(this System.Linq.ParallelQuery source) => throw null; + public static decimal? Average(this System.Linq.ParallelQuery source) => throw null; + public static double? Average(this System.Linq.ParallelQuery source) => throw null; public static double? Average(this System.Linq.ParallelQuery source) => throw null; - public static double Average(this System.Linq.ParallelQuery source) => throw null; - public static double? Average(this System.Linq.ParallelQuery source) => throw null; - public static System.Decimal Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Decimal? Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static double? Average(this System.Linq.ParallelQuery source) => throw null; + public static float? Average(this System.Linq.ParallelQuery source) => throw null; + public static float Average(this System.Linq.ParallelQuery source) => throw null; + public static decimal Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static double Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static double? Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static float Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static float? Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static double Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static double Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static decimal? Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static double? Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static double? Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static double Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static double? Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static double? Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static float? Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static float Average(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static System.Linq.ParallelQuery Cast(this System.Linq.ParallelQuery source) => throw null; public static System.Linq.ParallelQuery Concat(this System.Linq.ParallelQuery first, System.Collections.Generic.IEnumerable second) => throw null; public static System.Linq.ParallelQuery Concat(this System.Linq.ParallelQuery first, System.Linq.ParallelQuery second) => throw null; @@ -71,14 +69,14 @@ namespace System public static TSource FirstOrDefault(this System.Linq.ParallelQuery source) => throw null; public static TSource FirstOrDefault(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; public static void ForAll(this System.Linq.ParallelQuery source, System.Action action) => throw null; - public static System.Linq.ParallelQuery GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector, System.Func, TResult> resultSelector) => throw null; - public static System.Linq.ParallelQuery GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector, System.Func, TResult> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Linq.ParallelQuery> GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector) => throw null; + public static System.Linq.ParallelQuery> GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.ParallelQuery> GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector) => throw null; public static System.Linq.ParallelQuery> GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.ParallelQuery GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func, TResult> resultSelector) => throw null; public static System.Linq.ParallelQuery GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func, TResult> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public static System.Linq.ParallelQuery> GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector) => throw null; - public static System.Linq.ParallelQuery> GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Linq.ParallelQuery GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector, System.Func, TResult> resultSelector) => throw null; + public static System.Linq.ParallelQuery GroupBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector, System.Func, TResult> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.ParallelQuery GroupJoin(this System.Linq.ParallelQuery outer, System.Collections.Generic.IEnumerable inner, System.Func outerKeySelector, System.Func innerKeySelector, System.Func, TResult> resultSelector) => throw null; public static System.Linq.ParallelQuery GroupJoin(this System.Linq.ParallelQuery outer, System.Collections.Generic.IEnumerable inner, System.Func outerKeySelector, System.Func innerKeySelector, System.Func, TResult> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.ParallelQuery GroupJoin(this System.Linq.ParallelQuery outer, System.Linq.ParallelQuery inner, System.Func outerKeySelector, System.Func innerKeySelector, System.Func, TResult> resultSelector) => throw null; @@ -95,52 +93,52 @@ namespace System public static TSource Last(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; public static TSource LastOrDefault(this System.Linq.ParallelQuery source) => throw null; public static TSource LastOrDefault(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; - public static System.Int64 LongCount(this System.Linq.ParallelQuery source) => throw null; - public static System.Int64 LongCount(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; - public static System.Decimal Max(this System.Linq.ParallelQuery source) => throw null; - public static System.Decimal? Max(this System.Linq.ParallelQuery source) => throw null; + public static long LongCount(this System.Linq.ParallelQuery source) => throw null; + public static long LongCount(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; + public static decimal Max(this System.Linq.ParallelQuery source) => throw null; public static double Max(this System.Linq.ParallelQuery source) => throw null; - public static double? Max(this System.Linq.ParallelQuery source) => throw null; - public static float Max(this System.Linq.ParallelQuery source) => throw null; - public static float? Max(this System.Linq.ParallelQuery source) => throw null; public static int Max(this System.Linq.ParallelQuery source) => throw null; + public static long Max(this System.Linq.ParallelQuery source) => throw null; + public static decimal? Max(this System.Linq.ParallelQuery source) => throw null; + public static double? Max(this System.Linq.ParallelQuery source) => throw null; public static int? Max(this System.Linq.ParallelQuery source) => throw null; - public static System.Int64 Max(this System.Linq.ParallelQuery source) => throw null; - public static System.Int64? Max(this System.Linq.ParallelQuery source) => throw null; - public static TResult Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static long? Max(this System.Linq.ParallelQuery source) => throw null; + public static float? Max(this System.Linq.ParallelQuery source) => throw null; + public static float Max(this System.Linq.ParallelQuery source) => throw null; public static TSource Max(this System.Linq.ParallelQuery source) => throw null; - public static System.Decimal Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Decimal? Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static decimal Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static double Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static double? Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static float Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static float? Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static int Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static long Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static decimal? Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static double? Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static int? Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Int64 Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Int64? Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Decimal Min(this System.Linq.ParallelQuery source) => throw null; - public static System.Decimal? Min(this System.Linq.ParallelQuery source) => throw null; + public static long? Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static float? Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static float Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static TResult Max(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static decimal Min(this System.Linq.ParallelQuery source) => throw null; public static double Min(this System.Linq.ParallelQuery source) => throw null; - public static double? Min(this System.Linq.ParallelQuery source) => throw null; - public static float Min(this System.Linq.ParallelQuery source) => throw null; - public static float? Min(this System.Linq.ParallelQuery source) => throw null; public static int Min(this System.Linq.ParallelQuery source) => throw null; + public static long Min(this System.Linq.ParallelQuery source) => throw null; + public static decimal? Min(this System.Linq.ParallelQuery source) => throw null; + public static double? Min(this System.Linq.ParallelQuery source) => throw null; public static int? Min(this System.Linq.ParallelQuery source) => throw null; - public static System.Int64 Min(this System.Linq.ParallelQuery source) => throw null; - public static System.Int64? Min(this System.Linq.ParallelQuery source) => throw null; - public static TResult Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static long? Min(this System.Linq.ParallelQuery source) => throw null; + public static float? Min(this System.Linq.ParallelQuery source) => throw null; + public static float Min(this System.Linq.ParallelQuery source) => throw null; public static TSource Min(this System.Linq.ParallelQuery source) => throw null; - public static System.Decimal Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Decimal? Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static decimal Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static double Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static double? Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static float Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static float? Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static int Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static long Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static decimal? Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static double? Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static int? Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Int64 Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Int64? Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static long? Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static float? Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static float Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static TResult Min(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static System.Linq.ParallelQuery OfType(this System.Linq.ParallelQuery source) => throw null; public static System.Linq.OrderedParallelQuery OrderBy(this System.Linq.ParallelQuery source, System.Func keySelector) => throw null; public static System.Linq.OrderedParallelQuery OrderBy(this System.Linq.ParallelQuery source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; @@ -149,12 +147,12 @@ namespace System public static System.Linq.ParallelQuery Range(int start, int count) => throw null; public static System.Linq.ParallelQuery Repeat(TResult element, int count) => throw null; public static System.Linq.ParallelQuery Reverse(this System.Linq.ParallelQuery source) => throw null; - public static System.Linq.ParallelQuery Select(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static System.Linq.ParallelQuery Select(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Linq.ParallelQuery SelectMany(this System.Linq.ParallelQuery source, System.Func> collectionSelector, System.Func resultSelector) => throw null; - public static System.Linq.ParallelQuery SelectMany(this System.Linq.ParallelQuery source, System.Func> collectionSelector, System.Func resultSelector) => throw null; + public static System.Linq.ParallelQuery Select(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static System.Linq.ParallelQuery SelectMany(this System.Linq.ParallelQuery source, System.Func> selector) => throw null; public static System.Linq.ParallelQuery SelectMany(this System.Linq.ParallelQuery source, System.Func> selector) => throw null; + public static System.Linq.ParallelQuery SelectMany(this System.Linq.ParallelQuery source, System.Func> collectionSelector, System.Func resultSelector) => throw null; + public static System.Linq.ParallelQuery SelectMany(this System.Linq.ParallelQuery source, System.Func> collectionSelector, System.Func resultSelector) => throw null; public static bool SequenceEqual(this System.Linq.ParallelQuery first, System.Collections.Generic.IEnumerable second) => throw null; public static bool SequenceEqual(this System.Linq.ParallelQuery first, System.Collections.Generic.IEnumerable second, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static bool SequenceEqual(this System.Linq.ParallelQuery first, System.Linq.ParallelQuery second) => throw null; @@ -166,26 +164,26 @@ namespace System public static System.Linq.ParallelQuery Skip(this System.Linq.ParallelQuery source, int count) => throw null; public static System.Linq.ParallelQuery SkipWhile(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; public static System.Linq.ParallelQuery SkipWhile(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; - public static System.Decimal Sum(this System.Linq.ParallelQuery source) => throw null; - public static System.Decimal? Sum(this System.Linq.ParallelQuery source) => throw null; + public static decimal Sum(this System.Linq.ParallelQuery source) => throw null; public static double Sum(this System.Linq.ParallelQuery source) => throw null; - public static double? Sum(this System.Linq.ParallelQuery source) => throw null; - public static float Sum(this System.Linq.ParallelQuery source) => throw null; - public static float? Sum(this System.Linq.ParallelQuery source) => throw null; public static int Sum(this System.Linq.ParallelQuery source) => throw null; + public static long Sum(this System.Linq.ParallelQuery source) => throw null; + public static decimal? Sum(this System.Linq.ParallelQuery source) => throw null; + public static double? Sum(this System.Linq.ParallelQuery source) => throw null; public static int? Sum(this System.Linq.ParallelQuery source) => throw null; - public static System.Int64 Sum(this System.Linq.ParallelQuery source) => throw null; - public static System.Int64? Sum(this System.Linq.ParallelQuery source) => throw null; - public static System.Decimal Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Decimal? Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static long? Sum(this System.Linq.ParallelQuery source) => throw null; + public static float? Sum(this System.Linq.ParallelQuery source) => throw null; + public static float Sum(this System.Linq.ParallelQuery source) => throw null; + public static decimal Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static double Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static double? Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static float Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static float? Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static int Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static long Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static decimal? Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static double? Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static int? Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Int64 Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; - public static System.Int64? Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static long? Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static float? Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; + public static float Sum(this System.Linq.ParallelQuery source, System.Func selector) => throw null; public static System.Linq.ParallelQuery Take(this System.Linq.ParallelQuery source, int count) => throw null; public static System.Linq.ParallelQuery TakeWhile(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; public static System.Linq.ParallelQuery TakeWhile(this System.Linq.ParallelQuery source, System.Func predicate) => throw null; @@ -194,15 +192,15 @@ namespace System public static System.Linq.OrderedParallelQuery ThenByDescending(this System.Linq.OrderedParallelQuery source, System.Func keySelector) => throw null; public static System.Linq.OrderedParallelQuery ThenByDescending(this System.Linq.OrderedParallelQuery source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; public static TSource[] ToArray(this System.Linq.ParallelQuery source) => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector) => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.Dictionary ToDictionary(this System.Linq.ParallelQuery source, System.Func keySelector) => throw null; public static System.Collections.Generic.Dictionary ToDictionary(this System.Linq.ParallelQuery source, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.List ToList(this System.Linq.ParallelQuery source) => throw null; - public static System.Linq.ILookup ToLookup(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector) => throw null; - public static System.Linq.ILookup ToLookup(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.ILookup ToLookup(this System.Linq.ParallelQuery source, System.Func keySelector) => throw null; public static System.Linq.ILookup ToLookup(this System.Linq.ParallelQuery source, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Linq.ILookup ToLookup(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector) => throw null; + public static System.Linq.ILookup ToLookup(this System.Linq.ParallelQuery source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.ParallelQuery Union(this System.Linq.ParallelQuery first, System.Collections.Generic.IEnumerable second) => throw null; public static System.Linq.ParallelQuery Union(this System.Linq.ParallelQuery first, System.Collections.Generic.IEnumerable second, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.ParallelQuery Union(this System.Linq.ParallelQuery first, System.Linq.ParallelQuery second) => throw null; @@ -216,32 +214,25 @@ namespace System public static System.Linq.ParallelQuery Zip(this System.Linq.ParallelQuery first, System.Collections.Generic.IEnumerable second, System.Func resultSelector) => throw null; public static System.Linq.ParallelQuery Zip(this System.Linq.ParallelQuery first, System.Linq.ParallelQuery second, System.Func resultSelector) => throw null; } - - public enum ParallelExecutionMode : int + public enum ParallelExecutionMode { Default = 0, ForceParallelism = 1, } - - public enum ParallelMergeOptions : int + public enum ParallelMergeOptions { - AutoBuffered = 2, Default = 0, - FullyBuffered = 3, NotBuffered = 1, + AutoBuffered = 2, + FullyBuffered = 3, } - public class ParallelQuery : System.Collections.IEnumerable { System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - internal ParallelQuery() => throw null; } - public class ParallelQuery : System.Linq.ParallelQuery, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public virtual System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - internal ParallelQuery() => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Queryable.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Queryable.cs index 199d450bc94..2e959d9b18a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Queryable.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Queryable.cs @@ -1,32 +1,26 @@ // This file contains auto-generated code. // Generated from `System.Linq.Queryable, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Linq { public abstract class EnumerableExecutor { - internal EnumerableExecutor() => throw null; } - public class EnumerableExecutor : System.Linq.EnumerableExecutor { public EnumerableExecutor(System.Linq.Expressions.Expression expression) => throw null; } - public abstract class EnumerableQuery { - internal EnumerableQuery() => throw null; } - - public class EnumerableQuery : System.Linq.EnumerableQuery, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IOrderedQueryable, System.Linq.IOrderedQueryable, System.Linq.IQueryProvider, System.Linq.IQueryable, System.Linq.IQueryable + public class EnumerableQuery : System.Linq.EnumerableQuery, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IQueryProvider { System.Linq.IQueryable System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression expression) => throw null; System.Linq.IQueryable System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression expression) => throw null; - System.Type System.Linq.IQueryable.ElementType { get => throw null; } - public EnumerableQuery(System.Linq.Expressions.Expression expression) => throw null; public EnumerableQuery(System.Collections.Generic.IEnumerable enumerable) => throw null; + public EnumerableQuery(System.Linq.Expressions.Expression expression) => throw null; + System.Type System.Linq.IQueryable.ElementType { get => throw null; } object System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression expression) => throw null; TElement System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression expression) => throw null; System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; } @@ -35,38 +29,37 @@ namespace System System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; } public override string ToString() => throw null; } - public static class Queryable { - public static TResult Aggregate(this System.Linq.IQueryable source, TAccumulate seed, System.Linq.Expressions.Expression> func, System.Linq.Expressions.Expression> selector) => throw null; - public static TAccumulate Aggregate(this System.Linq.IQueryable source, TAccumulate seed, System.Linq.Expressions.Expression> func) => throw null; public static TSource Aggregate(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> func) => throw null; + public static TAccumulate Aggregate(this System.Linq.IQueryable source, TAccumulate seed, System.Linq.Expressions.Expression> func) => throw null; + public static TResult Aggregate(this System.Linq.IQueryable source, TAccumulate seed, System.Linq.Expressions.Expression> func, System.Linq.Expressions.Expression> selector) => throw null; public static bool All(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static bool Any(this System.Linq.IQueryable source) => throw null; public static bool Any(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static System.Linq.IQueryable Append(this System.Linq.IQueryable source, TSource element) => throw null; public static System.Linq.IQueryable AsQueryable(this System.Collections.IEnumerable source) => throw null; public static System.Linq.IQueryable AsQueryable(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Decimal Average(this System.Linq.IQueryable source) => throw null; - public static System.Decimal? Average(this System.Linq.IQueryable source) => throw null; + public static decimal Average(this System.Linq.IQueryable source) => throw null; public static double Average(this System.Linq.IQueryable source) => throw null; - public static double? Average(this System.Linq.IQueryable source) => throw null; - public static float Average(this System.Linq.IQueryable source) => throw null; - public static float? Average(this System.Linq.IQueryable source) => throw null; public static double Average(this System.Linq.IQueryable source) => throw null; + public static double Average(this System.Linq.IQueryable source) => throw null; + public static decimal? Average(this System.Linq.IQueryable source) => throw null; + public static double? Average(this System.Linq.IQueryable source) => throw null; public static double? Average(this System.Linq.IQueryable source) => throw null; - public static double Average(this System.Linq.IQueryable source) => throw null; - public static double? Average(this System.Linq.IQueryable source) => throw null; - public static System.Decimal Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static System.Decimal? Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static double? Average(this System.Linq.IQueryable source) => throw null; + public static float? Average(this System.Linq.IQueryable source) => throw null; + public static float Average(this System.Linq.IQueryable source) => throw null; + public static decimal Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static double Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static double? Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static float Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static float? Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static double Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static double Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static decimal? Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static double? Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static double? Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static double Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static double? Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static double? Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static float? Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static float Average(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static System.Linq.IQueryable Cast(this System.Linq.IQueryable source) => throw null; public static System.Linq.IQueryable Chunk(this System.Linq.IQueryable source, int size) => throw null; public static System.Linq.IQueryable Concat(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2) => throw null; @@ -94,14 +87,14 @@ namespace System public static TSource FirstOrDefault(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static TSource FirstOrDefault(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, TSource defaultValue) => throw null; public static TSource FirstOrDefault(this System.Linq.IQueryable source, TSource defaultValue) => throw null; - public static System.Linq.IQueryable GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Linq.Expressions.Expression> elementSelector, System.Linq.Expressions.Expression, TResult>> resultSelector) => throw null; - public static System.Linq.IQueryable GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Linq.Expressions.Expression> elementSelector, System.Linq.Expressions.Expression, TResult>> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Linq.IQueryable> GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector) => throw null; + public static System.Linq.IQueryable> GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.IQueryable> GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Linq.Expressions.Expression> elementSelector) => throw null; public static System.Linq.IQueryable> GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Linq.Expressions.Expression> elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.IQueryable GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Linq.Expressions.Expression, TResult>> resultSelector) => throw null; public static System.Linq.IQueryable GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Linq.Expressions.Expression, TResult>> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public static System.Linq.IQueryable> GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector) => throw null; - public static System.Linq.IQueryable> GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Linq.IQueryable GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Linq.Expressions.Expression> elementSelector, System.Linq.Expressions.Expression, TResult>> resultSelector) => throw null; + public static System.Linq.IQueryable GroupBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Linq.Expressions.Expression> elementSelector, System.Linq.Expressions.Expression, TResult>> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.IQueryable GroupJoin(this System.Linq.IQueryable outer, System.Collections.Generic.IEnumerable inner, System.Linq.Expressions.Expression> outerKeySelector, System.Linq.Expressions.Expression> innerKeySelector, System.Linq.Expressions.Expression, TResult>> resultSelector) => throw null; public static System.Linq.IQueryable GroupJoin(this System.Linq.IQueryable outer, System.Collections.Generic.IEnumerable inner, System.Linq.Expressions.Expression> outerKeySelector, System.Linq.Expressions.Expression> innerKeySelector, System.Linq.Expressions.Expression, TResult>> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.IQueryable Intersect(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2) => throw null; @@ -116,16 +109,16 @@ namespace System public static TSource LastOrDefault(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static TSource LastOrDefault(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, TSource defaultValue) => throw null; public static TSource LastOrDefault(this System.Linq.IQueryable source, TSource defaultValue) => throw null; - public static System.Int64 LongCount(this System.Linq.IQueryable source) => throw null; - public static System.Int64 LongCount(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; - public static TResult Max(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static long LongCount(this System.Linq.IQueryable source) => throw null; + public static long LongCount(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static TSource Max(this System.Linq.IQueryable source) => throw null; public static TSource Max(this System.Linq.IQueryable source, System.Collections.Generic.IComparer comparer) => throw null; + public static TResult Max(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static TSource MaxBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector) => throw null; public static TSource MaxBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Collections.Generic.IComparer comparer) => throw null; - public static TResult Min(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static TSource Min(this System.Linq.IQueryable source) => throw null; public static TSource Min(this System.Linq.IQueryable source, System.Collections.Generic.IComparer comparer) => throw null; + public static TResult Min(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static TSource MinBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector) => throw null; public static TSource MinBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Collections.Generic.IComparer comparer) => throw null; public static System.Linq.IQueryable OfType(this System.Linq.IQueryable source) => throw null; @@ -139,12 +132,12 @@ namespace System public static System.Linq.IOrderedQueryable OrderDescending(this System.Linq.IQueryable source, System.Collections.Generic.IComparer comparer) => throw null; public static System.Linq.IQueryable Prepend(this System.Linq.IQueryable source, TSource element) => throw null; public static System.Linq.IQueryable Reverse(this System.Linq.IQueryable source) => throw null; - public static System.Linq.IQueryable Select(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static System.Linq.IQueryable Select(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static System.Linq.IQueryable SelectMany(this System.Linq.IQueryable source, System.Linq.Expressions.Expression>> collectionSelector, System.Linq.Expressions.Expression> resultSelector) => throw null; - public static System.Linq.IQueryable SelectMany(this System.Linq.IQueryable source, System.Linq.Expressions.Expression>> collectionSelector, System.Linq.Expressions.Expression> resultSelector) => throw null; + public static System.Linq.IQueryable Select(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static System.Linq.IQueryable SelectMany(this System.Linq.IQueryable source, System.Linq.Expressions.Expression>> selector) => throw null; public static System.Linq.IQueryable SelectMany(this System.Linq.IQueryable source, System.Linq.Expressions.Expression>> selector) => throw null; + public static System.Linq.IQueryable SelectMany(this System.Linq.IQueryable source, System.Linq.Expressions.Expression>> collectionSelector, System.Linq.Expressions.Expression> resultSelector) => throw null; + public static System.Linq.IQueryable SelectMany(this System.Linq.IQueryable source, System.Linq.Expressions.Expression>> collectionSelector, System.Linq.Expressions.Expression> resultSelector) => throw null; public static bool SequenceEqual(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2) => throw null; public static bool SequenceEqual(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static TSource Single(this System.Linq.IQueryable source) => throw null; @@ -157,28 +150,28 @@ namespace System public static System.Linq.IQueryable SkipLast(this System.Linq.IQueryable source, int count) => throw null; public static System.Linq.IQueryable SkipWhile(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static System.Linq.IQueryable SkipWhile(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; - public static System.Decimal Sum(this System.Linq.IQueryable source) => throw null; - public static System.Decimal? Sum(this System.Linq.IQueryable source) => throw null; + public static decimal Sum(this System.Linq.IQueryable source) => throw null; public static double Sum(this System.Linq.IQueryable source) => throw null; - public static double? Sum(this System.Linq.IQueryable source) => throw null; - public static float Sum(this System.Linq.IQueryable source) => throw null; - public static float? Sum(this System.Linq.IQueryable source) => throw null; public static int Sum(this System.Linq.IQueryable source) => throw null; + public static long Sum(this System.Linq.IQueryable source) => throw null; + public static decimal? Sum(this System.Linq.IQueryable source) => throw null; + public static double? Sum(this System.Linq.IQueryable source) => throw null; public static int? Sum(this System.Linq.IQueryable source) => throw null; - public static System.Int64 Sum(this System.Linq.IQueryable source) => throw null; - public static System.Int64? Sum(this System.Linq.IQueryable source) => throw null; - public static System.Decimal Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static System.Decimal? Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static long? Sum(this System.Linq.IQueryable source) => throw null; + public static float? Sum(this System.Linq.IQueryable source) => throw null; + public static float Sum(this System.Linq.IQueryable source) => throw null; + public static decimal Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static double Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static double? Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static float Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static float? Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static int Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static long Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static decimal? Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static double? Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static int? Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static System.Int64 Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static System.Int64? Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; - public static System.Linq.IQueryable Take(this System.Linq.IQueryable source, System.Range range) => throw null; + public static long? Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static float? Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; + public static float Sum(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector) => throw null; public static System.Linq.IQueryable Take(this System.Linq.IQueryable source, int count) => throw null; + public static System.Linq.IQueryable Take(this System.Linq.IQueryable source, System.Range range) => throw null; public static System.Linq.IQueryable TakeLast(this System.Linq.IQueryable source, int count) => throw null; public static System.Linq.IQueryable TakeWhile(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static System.Linq.IQueryable TakeWhile(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; @@ -192,10 +185,9 @@ namespace System public static System.Linq.IQueryable UnionBy(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Linq.Expressions.Expression> keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.IQueryable Where(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static System.Linq.IQueryable Where(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; + public static System.Linq.IQueryable<(TFirst First, TSecond Second)> Zip(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2) => throw null; + public static System.Linq.IQueryable<(TFirst First, TSecond Second, TThird Third)> Zip(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Collections.Generic.IEnumerable source3) => throw null; public static System.Linq.IQueryable Zip(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Linq.Expressions.Expression> resultSelector) => throw null; - public static System.Linq.IQueryable<(TFirst, TSecond, TThird)> Zip(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Collections.Generic.IEnumerable source3) => throw null; - public static System.Linq.IQueryable<(TFirst, TSecond)> Zip(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.cs index f288e27be77..4d83ba3ca24 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.cs @@ -1,40 +1,39 @@ // This file contains auto-generated code. // Generated from `System.Linq, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Linq { public static class Enumerable { - public static TResult Aggregate(this System.Collections.Generic.IEnumerable source, TAccumulate seed, System.Func func, System.Func resultSelector) => throw null; - public static TAccumulate Aggregate(this System.Collections.Generic.IEnumerable source, TAccumulate seed, System.Func func) => throw null; public static TSource Aggregate(this System.Collections.Generic.IEnumerable source, System.Func func) => throw null; + public static TAccumulate Aggregate(this System.Collections.Generic.IEnumerable source, TAccumulate seed, System.Func func) => throw null; + public static TResult Aggregate(this System.Collections.Generic.IEnumerable source, TAccumulate seed, System.Func func, System.Func resultSelector) => throw null; public static bool All(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static bool Any(this System.Collections.Generic.IEnumerable source) => throw null; public static bool Any(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static System.Collections.Generic.IEnumerable Append(this System.Collections.Generic.IEnumerable source, TSource element) => throw null; public static System.Collections.Generic.IEnumerable AsEnumerable(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Decimal Average(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Decimal? Average(this System.Collections.Generic.IEnumerable source) => throw null; + public static decimal Average(this System.Collections.Generic.IEnumerable source) => throw null; public static double Average(this System.Collections.Generic.IEnumerable source) => throw null; - public static double? Average(this System.Collections.Generic.IEnumerable source) => throw null; - public static float Average(this System.Collections.Generic.IEnumerable source) => throw null; - public static float? Average(this System.Collections.Generic.IEnumerable source) => throw null; public static double Average(this System.Collections.Generic.IEnumerable source) => throw null; + public static double Average(this System.Collections.Generic.IEnumerable source) => throw null; + public static decimal? Average(this System.Collections.Generic.IEnumerable source) => throw null; + public static double? Average(this System.Collections.Generic.IEnumerable source) => throw null; public static double? Average(this System.Collections.Generic.IEnumerable source) => throw null; - public static double Average(this System.Collections.Generic.IEnumerable source) => throw null; - public static double? Average(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Decimal Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Decimal? Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static double? Average(this System.Collections.Generic.IEnumerable source) => throw null; + public static float? Average(this System.Collections.Generic.IEnumerable source) => throw null; + public static float Average(this System.Collections.Generic.IEnumerable source) => throw null; + public static decimal Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static double Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static double? Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static float Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static float? Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static double Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static double Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static decimal? Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static double? Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static double? Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static double Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static double? Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static double? Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static float? Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static float Average(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static System.Collections.Generic.IEnumerable Cast(this System.Collections.IEnumerable source) => throw null; public static System.Collections.Generic.IEnumerable Chunk(this System.Collections.Generic.IEnumerable source, int size) => throw null; public static System.Collections.Generic.IEnumerable Concat(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second) => throw null; @@ -60,17 +59,17 @@ namespace System public static TSource First(this System.Collections.Generic.IEnumerable source) => throw null; public static TSource First(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static TSource FirstOrDefault(this System.Collections.Generic.IEnumerable source) => throw null; + public static TSource FirstOrDefault(this System.Collections.Generic.IEnumerable source, TSource defaultValue) => throw null; public static TSource FirstOrDefault(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static TSource FirstOrDefault(this System.Collections.Generic.IEnumerable source, System.Func predicate, TSource defaultValue) => throw null; - public static TSource FirstOrDefault(this System.Collections.Generic.IEnumerable source, TSource defaultValue) => throw null; - public static System.Collections.Generic.IEnumerable GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Func, TResult> resultSelector) => throw null; - public static System.Collections.Generic.IEnumerable GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Func, TResult> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Collections.Generic.IEnumerable> GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector) => throw null; + public static System.Collections.Generic.IEnumerable> GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.IEnumerable> GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector) => throw null; public static System.Collections.Generic.IEnumerable> GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.IEnumerable GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func, TResult> resultSelector) => throw null; public static System.Collections.Generic.IEnumerable GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func, TResult> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public static System.Collections.Generic.IEnumerable> GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector) => throw null; - public static System.Collections.Generic.IEnumerable> GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Collections.Generic.IEnumerable GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Func, TResult> resultSelector) => throw null; + public static System.Collections.Generic.IEnumerable GroupBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Func, TResult> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.IEnumerable GroupJoin(this System.Collections.Generic.IEnumerable outer, System.Collections.Generic.IEnumerable inner, System.Func outerKeySelector, System.Func innerKeySelector, System.Func, TResult> resultSelector) => throw null; public static System.Collections.Generic.IEnumerable GroupJoin(this System.Collections.Generic.IEnumerable outer, System.Collections.Generic.IEnumerable inner, System.Func outerKeySelector, System.Func innerKeySelector, System.Func, TResult> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.IEnumerable Intersect(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second) => throw null; @@ -82,59 +81,59 @@ namespace System public static TSource Last(this System.Collections.Generic.IEnumerable source) => throw null; public static TSource Last(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static TSource LastOrDefault(this System.Collections.Generic.IEnumerable source) => throw null; + public static TSource LastOrDefault(this System.Collections.Generic.IEnumerable source, TSource defaultValue) => throw null; public static TSource LastOrDefault(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static TSource LastOrDefault(this System.Collections.Generic.IEnumerable source, System.Func predicate, TSource defaultValue) => throw null; - public static TSource LastOrDefault(this System.Collections.Generic.IEnumerable source, TSource defaultValue) => throw null; - public static System.Int64 LongCount(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Int64 LongCount(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; - public static System.Decimal Max(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Decimal? Max(this System.Collections.Generic.IEnumerable source) => throw null; + public static long LongCount(this System.Collections.Generic.IEnumerable source) => throw null; + public static long LongCount(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; + public static decimal Max(this System.Collections.Generic.IEnumerable source) => throw null; public static double Max(this System.Collections.Generic.IEnumerable source) => throw null; - public static double? Max(this System.Collections.Generic.IEnumerable source) => throw null; - public static float Max(this System.Collections.Generic.IEnumerable source) => throw null; - public static float? Max(this System.Collections.Generic.IEnumerable source) => throw null; public static int Max(this System.Collections.Generic.IEnumerable source) => throw null; + public static long Max(this System.Collections.Generic.IEnumerable source) => throw null; + public static decimal? Max(this System.Collections.Generic.IEnumerable source) => throw null; + public static double? Max(this System.Collections.Generic.IEnumerable source) => throw null; public static int? Max(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Int64 Max(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Int64? Max(this System.Collections.Generic.IEnumerable source) => throw null; - public static TResult Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static long? Max(this System.Collections.Generic.IEnumerable source) => throw null; + public static float? Max(this System.Collections.Generic.IEnumerable source) => throw null; + public static float Max(this System.Collections.Generic.IEnumerable source) => throw null; public static TSource Max(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Decimal Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Decimal? Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static double Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static double? Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static float Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static float? Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static int Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static int? Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Int64 Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Int64? Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static TSource Max(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IComparer comparer) => throw null; + public static decimal Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static double Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static int Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static long Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static decimal? Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static double? Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static int? Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static long? Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static float? Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static float Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static TResult Max(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static TSource MaxBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector) => throw null; public static TSource MaxBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; - public static System.Decimal Min(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Decimal? Min(this System.Collections.Generic.IEnumerable source) => throw null; + public static decimal Min(this System.Collections.Generic.IEnumerable source) => throw null; public static double Min(this System.Collections.Generic.IEnumerable source) => throw null; - public static double? Min(this System.Collections.Generic.IEnumerable source) => throw null; - public static float Min(this System.Collections.Generic.IEnumerable source) => throw null; - public static float? Min(this System.Collections.Generic.IEnumerable source) => throw null; public static int Min(this System.Collections.Generic.IEnumerable source) => throw null; + public static long Min(this System.Collections.Generic.IEnumerable source) => throw null; + public static decimal? Min(this System.Collections.Generic.IEnumerable source) => throw null; + public static double? Min(this System.Collections.Generic.IEnumerable source) => throw null; public static int? Min(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Int64 Min(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Int64? Min(this System.Collections.Generic.IEnumerable source) => throw null; - public static TResult Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static long? Min(this System.Collections.Generic.IEnumerable source) => throw null; + public static float? Min(this System.Collections.Generic.IEnumerable source) => throw null; + public static float Min(this System.Collections.Generic.IEnumerable source) => throw null; public static TSource Min(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Decimal Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Decimal? Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static double Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static double? Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static float Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static float? Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static int Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static int? Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Int64 Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Int64? Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static TSource Min(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IComparer comparer) => throw null; + public static decimal Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static double Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static int Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static long Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static decimal? Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static double? Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static int? Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static long? Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static float? Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static float Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static TResult Min(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static TSource MinBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector) => throw null; public static TSource MinBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; public static System.Collections.Generic.IEnumerable OfType(this System.Collections.IEnumerable source) => throw null; @@ -150,46 +149,46 @@ namespace System public static System.Collections.Generic.IEnumerable Range(int start, int count) => throw null; public static System.Collections.Generic.IEnumerable Repeat(TResult element, int count) => throw null; public static System.Collections.Generic.IEnumerable Reverse(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Collections.Generic.IEnumerable Select(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static System.Collections.Generic.IEnumerable Select(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Collections.Generic.IEnumerable SelectMany(this System.Collections.Generic.IEnumerable source, System.Func> collectionSelector, System.Func resultSelector) => throw null; - public static System.Collections.Generic.IEnumerable SelectMany(this System.Collections.Generic.IEnumerable source, System.Func> collectionSelector, System.Func resultSelector) => throw null; + public static System.Collections.Generic.IEnumerable Select(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static System.Collections.Generic.IEnumerable SelectMany(this System.Collections.Generic.IEnumerable source, System.Func> selector) => throw null; public static System.Collections.Generic.IEnumerable SelectMany(this System.Collections.Generic.IEnumerable source, System.Func> selector) => throw null; + public static System.Collections.Generic.IEnumerable SelectMany(this System.Collections.Generic.IEnumerable source, System.Func> collectionSelector, System.Func resultSelector) => throw null; + public static System.Collections.Generic.IEnumerable SelectMany(this System.Collections.Generic.IEnumerable source, System.Func> collectionSelector, System.Func resultSelector) => throw null; public static bool SequenceEqual(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second) => throw null; public static bool SequenceEqual(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static TSource Single(this System.Collections.Generic.IEnumerable source) => throw null; public static TSource Single(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static TSource SingleOrDefault(this System.Collections.Generic.IEnumerable source) => throw null; + public static TSource SingleOrDefault(this System.Collections.Generic.IEnumerable source, TSource defaultValue) => throw null; public static TSource SingleOrDefault(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static TSource SingleOrDefault(this System.Collections.Generic.IEnumerable source, System.Func predicate, TSource defaultValue) => throw null; - public static TSource SingleOrDefault(this System.Collections.Generic.IEnumerable source, TSource defaultValue) => throw null; public static System.Collections.Generic.IEnumerable Skip(this System.Collections.Generic.IEnumerable source, int count) => throw null; public static System.Collections.Generic.IEnumerable SkipLast(this System.Collections.Generic.IEnumerable source, int count) => throw null; public static System.Collections.Generic.IEnumerable SkipWhile(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static System.Collections.Generic.IEnumerable SkipWhile(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; - public static System.Decimal Sum(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Decimal? Sum(this System.Collections.Generic.IEnumerable source) => throw null; + public static decimal Sum(this System.Collections.Generic.IEnumerable source) => throw null; public static double Sum(this System.Collections.Generic.IEnumerable source) => throw null; - public static double? Sum(this System.Collections.Generic.IEnumerable source) => throw null; - public static float Sum(this System.Collections.Generic.IEnumerable source) => throw null; - public static float? Sum(this System.Collections.Generic.IEnumerable source) => throw null; public static int Sum(this System.Collections.Generic.IEnumerable source) => throw null; + public static long Sum(this System.Collections.Generic.IEnumerable source) => throw null; + public static decimal? Sum(this System.Collections.Generic.IEnumerable source) => throw null; + public static double? Sum(this System.Collections.Generic.IEnumerable source) => throw null; public static int? Sum(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Int64 Sum(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Int64? Sum(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Decimal Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Decimal? Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static long? Sum(this System.Collections.Generic.IEnumerable source) => throw null; + public static float? Sum(this System.Collections.Generic.IEnumerable source) => throw null; + public static float Sum(this System.Collections.Generic.IEnumerable source) => throw null; + public static decimal Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static double Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static double? Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static float Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static float? Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static int Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static long Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static decimal? Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static double? Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static int? Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Int64 Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Int64? Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; - public static System.Collections.Generic.IEnumerable Take(this System.Collections.Generic.IEnumerable source, System.Range range) => throw null; + public static long? Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static float? Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; + public static float Sum(this System.Collections.Generic.IEnumerable source, System.Func selector) => throw null; public static System.Collections.Generic.IEnumerable Take(this System.Collections.Generic.IEnumerable source, int count) => throw null; + public static System.Collections.Generic.IEnumerable Take(this System.Collections.Generic.IEnumerable source, System.Range range) => throw null; public static System.Collections.Generic.IEnumerable TakeLast(this System.Collections.Generic.IEnumerable source, int count) => throw null; public static System.Collections.Generic.IEnumerable TakeWhile(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static System.Collections.Generic.IEnumerable TakeWhile(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; @@ -198,17 +197,17 @@ namespace System public static System.Linq.IOrderedEnumerable ThenByDescending(this System.Linq.IOrderedEnumerable source, System.Func keySelector) => throw null; public static System.Linq.IOrderedEnumerable ThenByDescending(this System.Linq.IOrderedEnumerable source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; public static TSource[] ToArray(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector) => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector) => throw null; public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.HashSet ToHashSet(this System.Collections.Generic.IEnumerable source) => throw null; public static System.Collections.Generic.HashSet ToHashSet(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.List ToList(this System.Collections.Generic.IEnumerable source) => throw null; - public static System.Linq.ILookup ToLookup(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector) => throw null; - public static System.Linq.ILookup ToLookup(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Linq.ILookup ToLookup(this System.Collections.Generic.IEnumerable source, System.Func keySelector) => throw null; public static System.Linq.ILookup ToLookup(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Linq.ILookup ToLookup(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector) => throw null; + public static System.Linq.ILookup ToLookup(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static bool TryGetNonEnumeratedCount(this System.Collections.Generic.IEnumerable source, out int count) => throw null; public static System.Collections.Generic.IEnumerable Union(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second) => throw null; public static System.Collections.Generic.IEnumerable Union(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Collections.Generic.IEqualityComparer comparer) => throw null; @@ -216,28 +215,24 @@ namespace System public static System.Collections.Generic.IEnumerable UnionBy(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.Generic.IEnumerable Where(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; public static System.Collections.Generic.IEnumerable Where(this System.Collections.Generic.IEnumerable source, System.Func predicate) => throw null; + public static System.Collections.Generic.IEnumerable<(TFirst First, TSecond Second)> Zip(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second) => throw null; + public static System.Collections.Generic.IEnumerable<(TFirst First, TSecond Second, TThird Third)> Zip(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Collections.Generic.IEnumerable third) => throw null; public static System.Collections.Generic.IEnumerable Zip(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Func resultSelector) => throw null; - public static System.Collections.Generic.IEnumerable<(TFirst, TSecond, TThird)> Zip(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Collections.Generic.IEnumerable third) => throw null; - public static System.Collections.Generic.IEnumerable<(TFirst, TSecond)> Zip(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second) => throw null; } - public interface IGrouping : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { TKey Key { get; } } - public interface ILookup : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { bool Contains(TKey key); int Count { get; } System.Collections.Generic.IEnumerable this[TKey key] { get; } } - public interface IOrderedEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { System.Linq.IOrderedEnumerable CreateOrderedEnumerable(System.Func keySelector, System.Collections.Generic.IComparer comparer, bool descending); } - public class Lookup : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Linq.ILookup { public System.Collections.Generic.IEnumerable ApplyResultSelector(System.Func, TResult> resultSelector) => throw null; @@ -247,6 +242,5 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public System.Collections.Generic.IEnumerable this[TKey key] { get => throw null; } } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs index ce4a7e45a61..f0c21acd484 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs @@ -1,79 +1,337 @@ // This file contains auto-generated code. // Generated from `System.Memory, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { - public static class MemoryExtensions + namespace Buffers { - public struct TryWriteInterpolatedStringHandler + public sealed class ArrayBufferWriter : System.Buffers.IBufferWriter { - public bool AppendFormatted(System.ReadOnlySpan value) => throw null; - public bool AppendFormatted(System.ReadOnlySpan value, int alignment = default(int), string format = default(string)) => throw null; - public bool AppendFormatted(object value, int alignment = default(int), string format = default(string)) => throw null; - public bool AppendFormatted(string value) => throw null; - public bool AppendFormatted(string value, int alignment = default(int), string format = default(string)) => throw null; - public bool AppendFormatted(T value) => throw null; - public bool AppendFormatted(T value, int alignment) => throw null; - public bool AppendFormatted(T value, int alignment, string format) => throw null; - public bool AppendFormatted(T value, string format) => throw null; - public bool AppendLiteral(string value) => throw null; - // Stub generator skipped constructor - public TryWriteInterpolatedStringHandler(int literalLength, int formattedCount, System.Span destination, System.IFormatProvider provider, out bool shouldAppend) => throw null; - public TryWriteInterpolatedStringHandler(int literalLength, int formattedCount, System.Span destination, out bool shouldAppend) => throw null; + public void Advance(int count) => throw null; + public int Capacity { get => throw null; } + public void Clear() => throw null; + public ArrayBufferWriter() => throw null; + public ArrayBufferWriter(int initialCapacity) => throw null; + public int FreeCapacity { get => throw null; } + public System.Memory GetMemory(int sizeHint = default(int)) => throw null; + public System.Span GetSpan(int sizeHint = default(int)) => throw null; + public int WrittenCount { get => throw null; } + public System.ReadOnlyMemory WrittenMemory { get => throw null; } + public System.ReadOnlySpan WrittenSpan { get => throw null; } } - - - public static System.ReadOnlyMemory AsMemory(this string text) => throw null; - public static System.ReadOnlyMemory AsMemory(this string text, System.Index startIndex) => throw null; - public static System.ReadOnlyMemory AsMemory(this string text, System.Range range) => throw null; - public static System.ReadOnlyMemory AsMemory(this string text, int start) => throw null; - public static System.ReadOnlyMemory AsMemory(this string text, int start, int length) => throw null; + namespace Binary + { + public static class BinaryPrimitives + { + public static double ReadDoubleBigEndian(System.ReadOnlySpan source) => throw null; + public static double ReadDoubleLittleEndian(System.ReadOnlySpan source) => throw null; + public static System.Half ReadHalfBigEndian(System.ReadOnlySpan source) => throw null; + public static System.Half ReadHalfLittleEndian(System.ReadOnlySpan source) => throw null; + public static short ReadInt16BigEndian(System.ReadOnlySpan source) => throw null; + public static short ReadInt16LittleEndian(System.ReadOnlySpan source) => throw null; + public static int ReadInt32BigEndian(System.ReadOnlySpan source) => throw null; + public static int ReadInt32LittleEndian(System.ReadOnlySpan source) => throw null; + public static long ReadInt64BigEndian(System.ReadOnlySpan source) => throw null; + public static long ReadInt64LittleEndian(System.ReadOnlySpan source) => throw null; + public static float ReadSingleBigEndian(System.ReadOnlySpan source) => throw null; + public static float ReadSingleLittleEndian(System.ReadOnlySpan source) => throw null; + public static ushort ReadUInt16BigEndian(System.ReadOnlySpan source) => throw null; + public static ushort ReadUInt16LittleEndian(System.ReadOnlySpan source) => throw null; + public static uint ReadUInt32BigEndian(System.ReadOnlySpan source) => throw null; + public static uint ReadUInt32LittleEndian(System.ReadOnlySpan source) => throw null; + public static ulong ReadUInt64BigEndian(System.ReadOnlySpan source) => throw null; + public static ulong ReadUInt64LittleEndian(System.ReadOnlySpan source) => throw null; + public static byte ReverseEndianness(byte value) => throw null; + public static short ReverseEndianness(short value) => throw null; + public static int ReverseEndianness(int value) => throw null; + public static long ReverseEndianness(long value) => throw null; + public static sbyte ReverseEndianness(sbyte value) => throw null; + public static ushort ReverseEndianness(ushort value) => throw null; + public static uint ReverseEndianness(uint value) => throw null; + public static ulong ReverseEndianness(ulong value) => throw null; + public static bool TryReadDoubleBigEndian(System.ReadOnlySpan source, out double value) => throw null; + public static bool TryReadDoubleLittleEndian(System.ReadOnlySpan source, out double value) => throw null; + public static bool TryReadHalfBigEndian(System.ReadOnlySpan source, out System.Half value) => throw null; + public static bool TryReadHalfLittleEndian(System.ReadOnlySpan source, out System.Half value) => throw null; + public static bool TryReadInt16BigEndian(System.ReadOnlySpan source, out short value) => throw null; + public static bool TryReadInt16LittleEndian(System.ReadOnlySpan source, out short value) => throw null; + public static bool TryReadInt32BigEndian(System.ReadOnlySpan source, out int value) => throw null; + public static bool TryReadInt32LittleEndian(System.ReadOnlySpan source, out int value) => throw null; + public static bool TryReadInt64BigEndian(System.ReadOnlySpan source, out long value) => throw null; + public static bool TryReadInt64LittleEndian(System.ReadOnlySpan source, out long value) => throw null; + public static bool TryReadSingleBigEndian(System.ReadOnlySpan source, out float value) => throw null; + public static bool TryReadSingleLittleEndian(System.ReadOnlySpan source, out float value) => throw null; + public static bool TryReadUInt16BigEndian(System.ReadOnlySpan source, out ushort value) => throw null; + public static bool TryReadUInt16LittleEndian(System.ReadOnlySpan source, out ushort value) => throw null; + public static bool TryReadUInt32BigEndian(System.ReadOnlySpan source, out uint value) => throw null; + public static bool TryReadUInt32LittleEndian(System.ReadOnlySpan source, out uint value) => throw null; + public static bool TryReadUInt64BigEndian(System.ReadOnlySpan source, out ulong value) => throw null; + public static bool TryReadUInt64LittleEndian(System.ReadOnlySpan source, out ulong value) => throw null; + public static bool TryWriteDoubleBigEndian(System.Span destination, double value) => throw null; + public static bool TryWriteDoubleLittleEndian(System.Span destination, double value) => throw null; + public static bool TryWriteHalfBigEndian(System.Span destination, System.Half value) => throw null; + public static bool TryWriteHalfLittleEndian(System.Span destination, System.Half value) => throw null; + public static bool TryWriteInt16BigEndian(System.Span destination, short value) => throw null; + public static bool TryWriteInt16LittleEndian(System.Span destination, short value) => throw null; + public static bool TryWriteInt32BigEndian(System.Span destination, int value) => throw null; + public static bool TryWriteInt32LittleEndian(System.Span destination, int value) => throw null; + public static bool TryWriteInt64BigEndian(System.Span destination, long value) => throw null; + public static bool TryWriteInt64LittleEndian(System.Span destination, long value) => throw null; + public static bool TryWriteSingleBigEndian(System.Span destination, float value) => throw null; + public static bool TryWriteSingleLittleEndian(System.Span destination, float value) => throw null; + public static bool TryWriteUInt16BigEndian(System.Span destination, ushort value) => throw null; + public static bool TryWriteUInt16LittleEndian(System.Span destination, ushort value) => throw null; + public static bool TryWriteUInt32BigEndian(System.Span destination, uint value) => throw null; + public static bool TryWriteUInt32LittleEndian(System.Span destination, uint value) => throw null; + public static bool TryWriteUInt64BigEndian(System.Span destination, ulong value) => throw null; + public static bool TryWriteUInt64LittleEndian(System.Span destination, ulong value) => throw null; + public static void WriteDoubleBigEndian(System.Span destination, double value) => throw null; + public static void WriteDoubleLittleEndian(System.Span destination, double value) => throw null; + public static void WriteHalfBigEndian(System.Span destination, System.Half value) => throw null; + public static void WriteHalfLittleEndian(System.Span destination, System.Half value) => throw null; + public static void WriteInt16BigEndian(System.Span destination, short value) => throw null; + public static void WriteInt16LittleEndian(System.Span destination, short value) => throw null; + public static void WriteInt32BigEndian(System.Span destination, int value) => throw null; + public static void WriteInt32LittleEndian(System.Span destination, int value) => throw null; + public static void WriteInt64BigEndian(System.Span destination, long value) => throw null; + public static void WriteInt64LittleEndian(System.Span destination, long value) => throw null; + public static void WriteSingleBigEndian(System.Span destination, float value) => throw null; + public static void WriteSingleLittleEndian(System.Span destination, float value) => throw null; + public static void WriteUInt16BigEndian(System.Span destination, ushort value) => throw null; + public static void WriteUInt16LittleEndian(System.Span destination, ushort value) => throw null; + public static void WriteUInt32BigEndian(System.Span destination, uint value) => throw null; + public static void WriteUInt32LittleEndian(System.Span destination, uint value) => throw null; + public static void WriteUInt64BigEndian(System.Span destination, ulong value) => throw null; + public static void WriteUInt64LittleEndian(System.Span destination, ulong value) => throw null; + } + } + public static partial class BuffersExtensions + { + public static void CopyTo(this in System.Buffers.ReadOnlySequence source, System.Span destination) => throw null; + public static System.SequencePosition? PositionOf(this in System.Buffers.ReadOnlySequence source, T value) where T : System.IEquatable => throw null; + public static T[] ToArray(this in System.Buffers.ReadOnlySequence sequence) => throw null; + public static void Write(this System.Buffers.IBufferWriter writer, System.ReadOnlySpan value) => throw null; + } + public interface IBufferWriter + { + void Advance(int count); + System.Memory GetMemory(int sizeHint = default(int)); + System.Span GetSpan(int sizeHint = default(int)); + } + public abstract class MemoryPool : System.IDisposable + { + protected MemoryPool() => throw null; + public void Dispose() => throw null; + protected abstract void Dispose(bool disposing); + public abstract int MaxBufferSize { get; } + public abstract System.Buffers.IMemoryOwner Rent(int minBufferSize = default(int)); + public static System.Buffers.MemoryPool Shared { get => throw null; } + } + public struct ReadOnlySequence + { + public ReadOnlySequence(System.Buffers.ReadOnlySequenceSegment startSegment, int startIndex, System.Buffers.ReadOnlySequenceSegment endSegment, int endIndex) => throw null; + public ReadOnlySequence(System.ReadOnlyMemory memory) => throw null; + public ReadOnlySequence(T[] array) => throw null; + public ReadOnlySequence(T[] array, int start, int length) => throw null; + public static System.Buffers.ReadOnlySequence Empty; + public System.SequencePosition End { get => throw null; } + public struct Enumerator + { + public Enumerator(in System.Buffers.ReadOnlySequence sequence) => throw null; + public System.ReadOnlyMemory Current { get => throw null; } + public bool MoveNext() => throw null; + } + public System.ReadOnlyMemory First { get => throw null; } + public System.ReadOnlySpan FirstSpan { get => throw null; } + public System.Buffers.ReadOnlySequence.Enumerator GetEnumerator() => throw null; + public long GetOffset(System.SequencePosition position) => throw null; + public System.SequencePosition GetPosition(long offset) => throw null; + public System.SequencePosition GetPosition(long offset, System.SequencePosition origin) => throw null; + public bool IsEmpty { get => throw null; } + public bool IsSingleSegment { get => throw null; } + public long Length { get => throw null; } + public System.Buffers.ReadOnlySequence Slice(int start, int length) => throw null; + public System.Buffers.ReadOnlySequence Slice(int start, System.SequencePosition end) => throw null; + public System.Buffers.ReadOnlySequence Slice(long start) => throw null; + public System.Buffers.ReadOnlySequence Slice(long start, long length) => throw null; + public System.Buffers.ReadOnlySequence Slice(long start, System.SequencePosition end) => throw null; + public System.Buffers.ReadOnlySequence Slice(System.SequencePosition start) => throw null; + public System.Buffers.ReadOnlySequence Slice(System.SequencePosition start, int length) => throw null; + public System.Buffers.ReadOnlySequence Slice(System.SequencePosition start, long length) => throw null; + public System.Buffers.ReadOnlySequence Slice(System.SequencePosition start, System.SequencePosition end) => throw null; + public System.SequencePosition Start { get => throw null; } + public override string ToString() => throw null; + public bool TryGet(ref System.SequencePosition position, out System.ReadOnlyMemory memory, bool advance = default(bool)) => throw null; + } + public abstract class ReadOnlySequenceSegment + { + protected ReadOnlySequenceSegment() => throw null; + public System.ReadOnlyMemory Memory { get => throw null; set { } } + public System.Buffers.ReadOnlySequenceSegment Next { get => throw null; set { } } + public long RunningIndex { get => throw null; set { } } + } + public struct SequenceReader where T : unmanaged, System.IEquatable + { + public void Advance(long count) => throw null; + public long AdvancePast(T value) => throw null; + public long AdvancePastAny(System.ReadOnlySpan values) => throw null; + public long AdvancePastAny(T value0, T value1) => throw null; + public long AdvancePastAny(T value0, T value1, T value2) => throw null; + public long AdvancePastAny(T value0, T value1, T value2, T value3) => throw null; + public void AdvanceToEnd() => throw null; + public long Consumed { get => throw null; } + public SequenceReader(System.Buffers.ReadOnlySequence sequence) => throw null; + public System.ReadOnlySpan CurrentSpan { get => throw null; } + public int CurrentSpanIndex { get => throw null; } + public bool End { get => throw null; } + public bool IsNext(System.ReadOnlySpan next, bool advancePast = default(bool)) => throw null; + public bool IsNext(T next, bool advancePast = default(bool)) => throw null; + public long Length { get => throw null; } + public System.SequencePosition Position { get => throw null; } + public long Remaining { get => throw null; } + public void Rewind(long count) => throw null; + public System.Buffers.ReadOnlySequence Sequence { get => throw null; } + public bool TryAdvanceTo(T delimiter, bool advancePastDelimiter = default(bool)) => throw null; + public bool TryAdvanceToAny(System.ReadOnlySpan delimiters, bool advancePastDelimiter = default(bool)) => throw null; + public bool TryCopyTo(System.Span destination) => throw null; + public bool TryPeek(out T value) => throw null; + public bool TryPeek(long offset, out T value) => throw null; + public bool TryRead(out T value) => throw null; + public bool TryReadExact(int count, out System.Buffers.ReadOnlySequence sequence) => throw null; + public bool TryReadTo(out System.Buffers.ReadOnlySequence sequence, System.ReadOnlySpan delimiter, bool advancePastDelimiter = default(bool)) => throw null; + public bool TryReadTo(out System.Buffers.ReadOnlySequence sequence, T delimiter, bool advancePastDelimiter = default(bool)) => throw null; + public bool TryReadTo(out System.Buffers.ReadOnlySequence sequence, T delimiter, T delimiterEscape, bool advancePastDelimiter = default(bool)) => throw null; + public bool TryReadTo(out System.ReadOnlySpan span, System.ReadOnlySpan delimiter, bool advancePastDelimiter = default(bool)) => throw null; + public bool TryReadTo(out System.ReadOnlySpan span, T delimiter, bool advancePastDelimiter = default(bool)) => throw null; + public bool TryReadTo(out System.ReadOnlySpan span, T delimiter, T delimiterEscape, bool advancePastDelimiter = default(bool)) => throw null; + public bool TryReadToAny(out System.Buffers.ReadOnlySequence sequence, System.ReadOnlySpan delimiters, bool advancePastDelimiter = default(bool)) => throw null; + public bool TryReadToAny(out System.ReadOnlySpan span, System.ReadOnlySpan delimiters, bool advancePastDelimiter = default(bool)) => throw null; + public System.Buffers.ReadOnlySequence UnreadSequence { get => throw null; } + public System.ReadOnlySpan UnreadSpan { get => throw null; } + } + public static partial class SequenceReaderExtensions + { + public static bool TryReadBigEndian(this ref System.Buffers.SequenceReader reader, out short value) => throw null; + public static bool TryReadBigEndian(this ref System.Buffers.SequenceReader reader, out int value) => throw null; + public static bool TryReadBigEndian(this ref System.Buffers.SequenceReader reader, out long value) => throw null; + public static bool TryReadLittleEndian(this ref System.Buffers.SequenceReader reader, out short value) => throw null; + public static bool TryReadLittleEndian(this ref System.Buffers.SequenceReader reader, out int value) => throw null; + public static bool TryReadLittleEndian(this ref System.Buffers.SequenceReader reader, out long value) => throw null; + } + public struct StandardFormat : System.IEquatable + { + public StandardFormat(char symbol, byte precision = default(byte)) => throw null; + public bool Equals(System.Buffers.StandardFormat other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public bool HasPrecision { get => throw null; } + public bool IsDefault { get => throw null; } + public static byte MaxPrecision; + public static byte NoPrecision; + public static bool operator ==(System.Buffers.StandardFormat left, System.Buffers.StandardFormat right) => throw null; + public static implicit operator System.Buffers.StandardFormat(char symbol) => throw null; + public static bool operator !=(System.Buffers.StandardFormat left, System.Buffers.StandardFormat right) => throw null; + public static System.Buffers.StandardFormat Parse(System.ReadOnlySpan format) => throw null; + public static System.Buffers.StandardFormat Parse(string format) => throw null; + public byte Precision { get => throw null; } + public char Symbol { get => throw null; } + public override string ToString() => throw null; + public static bool TryParse(System.ReadOnlySpan format, out System.Buffers.StandardFormat result) => throw null; + } + namespace Text + { + public static class Utf8Formatter + { + public static bool TryFormat(bool value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(byte value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(System.DateTime value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(System.DateTimeOffset value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(decimal value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(double value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(System.Guid value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(short value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(int value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(long value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(sbyte value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(float value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(System.TimeSpan value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(ushort value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(uint value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + public static bool TryFormat(ulong value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; + } + public static class Utf8Parser + { + public static bool TryParse(System.ReadOnlySpan source, out bool value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out byte value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out System.DateTime value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out System.DateTimeOffset value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out decimal value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out double value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out System.Guid value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out short value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out int value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out long value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out sbyte value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out float value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out System.TimeSpan value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out ushort value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out uint value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + public static bool TryParse(System.ReadOnlySpan source, out ulong value, out int bytesConsumed, char standardFormat = default(char)) => throw null; + } + } + } + public static partial class MemoryExtensions + { + public static System.ReadOnlyMemory AsMemory(this string text) => throw null; + public static System.ReadOnlyMemory AsMemory(this string text, System.Index startIndex) => throw null; + public static System.ReadOnlyMemory AsMemory(this string text, int start) => throw null; + public static System.ReadOnlyMemory AsMemory(this string text, int start, int length) => throw null; + public static System.ReadOnlyMemory AsMemory(this string text, System.Range range) => throw null; public static System.Memory AsMemory(this System.ArraySegment segment) => throw null; public static System.Memory AsMemory(this System.ArraySegment segment, int start) => throw null; public static System.Memory AsMemory(this System.ArraySegment segment, int start, int length) => throw null; public static System.Memory AsMemory(this T[] array) => throw null; public static System.Memory AsMemory(this T[] array, System.Index startIndex) => throw null; - public static System.Memory AsMemory(this T[] array, System.Range range) => throw null; public static System.Memory AsMemory(this T[] array, int start) => throw null; public static System.Memory AsMemory(this T[] array, int start, int length) => throw null; - public static System.ReadOnlySpan AsSpan(this string text) => throw null; - public static System.ReadOnlySpan AsSpan(this string text, int start) => throw null; - public static System.ReadOnlySpan AsSpan(this string text, int start, int length) => throw null; + public static System.Memory AsMemory(this T[] array, System.Range range) => throw null; + public static System.ReadOnlySpan AsSpan(this string text) => throw null; + public static System.ReadOnlySpan AsSpan(this string text, int start) => throw null; + public static System.ReadOnlySpan AsSpan(this string text, int start, int length) => throw null; public static System.Span AsSpan(this System.ArraySegment segment) => throw null; public static System.Span AsSpan(this System.ArraySegment segment, System.Index startIndex) => throw null; - public static System.Span AsSpan(this System.ArraySegment segment, System.Range range) => throw null; public static System.Span AsSpan(this System.ArraySegment segment, int start) => throw null; public static System.Span AsSpan(this System.ArraySegment segment, int start, int length) => throw null; + public static System.Span AsSpan(this System.ArraySegment segment, System.Range range) => throw null; public static System.Span AsSpan(this T[] array) => throw null; public static System.Span AsSpan(this T[] array, System.Index startIndex) => throw null; - public static System.Span AsSpan(this T[] array, System.Range range) => throw null; public static System.Span AsSpan(this T[] array, int start) => throw null; public static System.Span AsSpan(this T[] array, int start, int length) => throw null; - public static int BinarySearch(this System.ReadOnlySpan span, TComparable comparable) where TComparable : System.IComparable => throw null; - public static int BinarySearch(this System.Span span, TComparable comparable) where TComparable : System.IComparable => throw null; - public static int BinarySearch(this System.ReadOnlySpan span, T value, TComparer comparer) where TComparer : System.Collections.Generic.IComparer => throw null; - public static int BinarySearch(this System.Span span, T value, TComparer comparer) where TComparer : System.Collections.Generic.IComparer => throw null; + public static System.Span AsSpan(this T[] array, System.Range range) => throw null; public static int BinarySearch(this System.ReadOnlySpan span, System.IComparable comparable) => throw null; public static int BinarySearch(this System.Span span, System.IComparable comparable) => throw null; - public static int CommonPrefixLength(this System.ReadOnlySpan span, System.ReadOnlySpan other) => throw null; - public static int CommonPrefixLength(this System.ReadOnlySpan span, System.ReadOnlySpan other, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static int BinarySearch(this System.ReadOnlySpan span, T value, TComparer comparer) where TComparer : System.Collections.Generic.IComparer => throw null; + public static int BinarySearch(this System.ReadOnlySpan span, TComparable comparable) where TComparable : System.IComparable => throw null; + public static int BinarySearch(this System.Span span, T value, TComparer comparer) where TComparer : System.Collections.Generic.IComparer => throw null; + public static int BinarySearch(this System.Span span, TComparable comparable) where TComparable : System.IComparable => throw null; public static int CommonPrefixLength(this System.Span span, System.ReadOnlySpan other) => throw null; public static int CommonPrefixLength(this System.Span span, System.ReadOnlySpan other, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public static int CompareTo(this System.ReadOnlySpan span, System.ReadOnlySpan other, System.StringComparison comparisonType) => throw null; - public static bool Contains(this System.ReadOnlySpan span, System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; + public static int CommonPrefixLength(this System.ReadOnlySpan span, System.ReadOnlySpan other) => throw null; + public static int CommonPrefixLength(this System.ReadOnlySpan span, System.ReadOnlySpan other, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static int CompareTo(this System.ReadOnlySpan span, System.ReadOnlySpan other, System.StringComparison comparisonType) => throw null; + public static bool Contains(this System.ReadOnlySpan span, System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; public static bool Contains(this System.ReadOnlySpan span, T value) where T : System.IEquatable => throw null; public static bool Contains(this System.Span span, T value) where T : System.IEquatable => throw null; public static void CopyTo(this T[] source, System.Memory destination) => throw null; public static void CopyTo(this T[] source, System.Span destination) => throw null; - public static bool EndsWith(this System.ReadOnlySpan span, System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; + public static bool EndsWith(this System.ReadOnlySpan span, System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; public static bool EndsWith(this System.ReadOnlySpan span, System.ReadOnlySpan value) where T : System.IEquatable => throw null; public static bool EndsWith(this System.Span span, System.ReadOnlySpan value) where T : System.IEquatable => throw null; - public static System.Text.SpanLineEnumerator EnumerateLines(this System.ReadOnlySpan span) => throw null; - public static System.Text.SpanLineEnumerator EnumerateLines(this System.Span span) => throw null; - public static System.Text.SpanRuneEnumerator EnumerateRunes(this System.ReadOnlySpan span) => throw null; - public static System.Text.SpanRuneEnumerator EnumerateRunes(this System.Span span) => throw null; - public static bool Equals(this System.ReadOnlySpan span, System.ReadOnlySpan other, System.StringComparison comparisonType) => throw null; - public static int IndexOf(this System.ReadOnlySpan span, System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; + public static System.Text.SpanLineEnumerator EnumerateLines(this System.ReadOnlySpan span) => throw null; + public static System.Text.SpanLineEnumerator EnumerateLines(this System.Span span) => throw null; + public static System.Text.SpanRuneEnumerator EnumerateRunes(this System.ReadOnlySpan span) => throw null; + public static System.Text.SpanRuneEnumerator EnumerateRunes(this System.Span span) => throw null; + public static bool Equals(this System.ReadOnlySpan span, System.ReadOnlySpan other, System.StringComparison comparisonType) => throw null; + public static int IndexOf(this System.ReadOnlySpan span, System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; public static int IndexOf(this System.ReadOnlySpan span, System.ReadOnlySpan value) where T : System.IEquatable => throw null; public static int IndexOf(this System.ReadOnlySpan span, T value) where T : System.IEquatable => throw null; public static int IndexOf(this System.Span span, System.ReadOnlySpan value) where T : System.IEquatable => throw null; @@ -84,16 +342,16 @@ namespace System public static int IndexOfAny(this System.Span span, System.ReadOnlySpan values) where T : System.IEquatable => throw null; public static int IndexOfAny(this System.Span span, T value0, T value1) where T : System.IEquatable => throw null; public static int IndexOfAny(this System.Span span, T value0, T value1, T value2) where T : System.IEquatable => throw null; - public static int IndexOfAnyExcept(this System.ReadOnlySpan span, System.ReadOnlySpan values) where T : System.IEquatable => throw null; - public static int IndexOfAnyExcept(this System.ReadOnlySpan span, T value) where T : System.IEquatable => throw null; - public static int IndexOfAnyExcept(this System.ReadOnlySpan span, T value0, T value1) where T : System.IEquatable => throw null; - public static int IndexOfAnyExcept(this System.ReadOnlySpan span, T value0, T value1, T value2) where T : System.IEquatable => throw null; - public static int IndexOfAnyExcept(this System.Span span, System.ReadOnlySpan values) where T : System.IEquatable => throw null; public static int IndexOfAnyExcept(this System.Span span, T value) where T : System.IEquatable => throw null; public static int IndexOfAnyExcept(this System.Span span, T value0, T value1) where T : System.IEquatable => throw null; public static int IndexOfAnyExcept(this System.Span span, T value0, T value1, T value2) where T : System.IEquatable => throw null; - public static bool IsWhiteSpace(this System.ReadOnlySpan span) => throw null; - public static int LastIndexOf(this System.ReadOnlySpan span, System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; + public static int IndexOfAnyExcept(this System.Span span, System.ReadOnlySpan values) where T : System.IEquatable => throw null; + public static int IndexOfAnyExcept(this System.ReadOnlySpan span, T value) where T : System.IEquatable => throw null; + public static int IndexOfAnyExcept(this System.ReadOnlySpan span, T value0, T value1) where T : System.IEquatable => throw null; + public static int IndexOfAnyExcept(this System.ReadOnlySpan span, T value0, T value1, T value2) where T : System.IEquatable => throw null; + public static int IndexOfAnyExcept(this System.ReadOnlySpan span, System.ReadOnlySpan values) where T : System.IEquatable => throw null; + public static bool IsWhiteSpace(this System.ReadOnlySpan span) => throw null; + public static int LastIndexOf(this System.ReadOnlySpan span, System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; public static int LastIndexOf(this System.ReadOnlySpan span, System.ReadOnlySpan value) where T : System.IEquatable => throw null; public static int LastIndexOf(this System.ReadOnlySpan span, T value) where T : System.IEquatable => throw null; public static int LastIndexOf(this System.Span span, System.ReadOnlySpan value) where T : System.IEquatable => throw null; @@ -104,14 +362,14 @@ namespace System public static int LastIndexOfAny(this System.Span span, System.ReadOnlySpan values) where T : System.IEquatable => throw null; public static int LastIndexOfAny(this System.Span span, T value0, T value1) where T : System.IEquatable => throw null; public static int LastIndexOfAny(this System.Span span, T value0, T value1, T value2) where T : System.IEquatable => throw null; - public static int LastIndexOfAnyExcept(this System.ReadOnlySpan span, System.ReadOnlySpan values) where T : System.IEquatable => throw null; - public static int LastIndexOfAnyExcept(this System.ReadOnlySpan span, T value) where T : System.IEquatable => throw null; - public static int LastIndexOfAnyExcept(this System.ReadOnlySpan span, T value0, T value1) where T : System.IEquatable => throw null; - public static int LastIndexOfAnyExcept(this System.ReadOnlySpan span, T value0, T value1, T value2) where T : System.IEquatable => throw null; - public static int LastIndexOfAnyExcept(this System.Span span, System.ReadOnlySpan values) where T : System.IEquatable => throw null; public static int LastIndexOfAnyExcept(this System.Span span, T value) where T : System.IEquatable => throw null; public static int LastIndexOfAnyExcept(this System.Span span, T value0, T value1) where T : System.IEquatable => throw null; public static int LastIndexOfAnyExcept(this System.Span span, T value0, T value1, T value2) where T : System.IEquatable => throw null; + public static int LastIndexOfAnyExcept(this System.Span span, System.ReadOnlySpan values) where T : System.IEquatable => throw null; + public static int LastIndexOfAnyExcept(this System.ReadOnlySpan span, T value) where T : System.IEquatable => throw null; + public static int LastIndexOfAnyExcept(this System.ReadOnlySpan span, T value0, T value1) where T : System.IEquatable => throw null; + public static int LastIndexOfAnyExcept(this System.ReadOnlySpan span, T value0, T value1, T value2) where T : System.IEquatable => throw null; + public static int LastIndexOfAnyExcept(this System.ReadOnlySpan span, System.ReadOnlySpan values) where T : System.IEquatable => throw null; public static bool Overlaps(this System.ReadOnlySpan span, System.ReadOnlySpan other) => throw null; public static bool Overlaps(this System.ReadOnlySpan span, System.ReadOnlySpan other, out int elementOffset) => throw null; public static bool Overlaps(this System.Span span, System.ReadOnlySpan other) => throw null; @@ -120,28 +378,28 @@ namespace System public static int SequenceCompareTo(this System.ReadOnlySpan span, System.ReadOnlySpan other) where T : System.IComparable => throw null; public static int SequenceCompareTo(this System.Span span, System.ReadOnlySpan other) where T : System.IComparable => throw null; public static bool SequenceEqual(this System.ReadOnlySpan span, System.ReadOnlySpan other) where T : System.IEquatable => throw null; - public static bool SequenceEqual(this System.ReadOnlySpan span, System.ReadOnlySpan other, System.Collections.Generic.IEqualityComparer comparer = default(System.Collections.Generic.IEqualityComparer)) => throw null; public static bool SequenceEqual(this System.Span span, System.ReadOnlySpan other) where T : System.IEquatable => throw null; + public static bool SequenceEqual(this System.ReadOnlySpan span, System.ReadOnlySpan other, System.Collections.Generic.IEqualityComparer comparer = default(System.Collections.Generic.IEqualityComparer)) => throw null; public static bool SequenceEqual(this System.Span span, System.ReadOnlySpan other, System.Collections.Generic.IEqualityComparer comparer = default(System.Collections.Generic.IEqualityComparer)) => throw null; - public static void Sort(this System.Span span, TComparer comparer) where TComparer : System.Collections.Generic.IComparer => throw null; public static void Sort(this System.Span span) => throw null; public static void Sort(this System.Span span, System.Comparison comparison) => throw null; - public static void Sort(this System.Span keys, System.Span items, TComparer comparer) where TComparer : System.Collections.Generic.IComparer => throw null; public static void Sort(this System.Span keys, System.Span items) => throw null; public static void Sort(this System.Span keys, System.Span items, System.Comparison comparison) => throw null; - public static bool StartsWith(this System.ReadOnlySpan span, System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; + public static void Sort(this System.Span span, TComparer comparer) where TComparer : System.Collections.Generic.IComparer => throw null; + public static void Sort(this System.Span keys, System.Span items, TComparer comparer) where TComparer : System.Collections.Generic.IComparer => throw null; + public static bool StartsWith(this System.ReadOnlySpan span, System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; public static bool StartsWith(this System.ReadOnlySpan span, System.ReadOnlySpan value) where T : System.IEquatable => throw null; public static bool StartsWith(this System.Span span, System.ReadOnlySpan value) where T : System.IEquatable => throw null; - public static int ToLower(this System.ReadOnlySpan source, System.Span destination, System.Globalization.CultureInfo culture) => throw null; - public static int ToLowerInvariant(this System.ReadOnlySpan source, System.Span destination) => throw null; - public static int ToUpper(this System.ReadOnlySpan source, System.Span destination, System.Globalization.CultureInfo culture) => throw null; - public static int ToUpperInvariant(this System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Memory Trim(this System.Memory memory) => throw null; - public static System.ReadOnlyMemory Trim(this System.ReadOnlyMemory memory) => throw null; - public static System.ReadOnlySpan Trim(this System.ReadOnlySpan span) => throw null; - public static System.ReadOnlySpan Trim(this System.ReadOnlySpan span, System.ReadOnlySpan trimChars) => throw null; - public static System.ReadOnlySpan Trim(this System.ReadOnlySpan span, System.Char trimChar) => throw null; - public static System.Span Trim(this System.Span span) => throw null; + public static int ToLower(this System.ReadOnlySpan source, System.Span destination, System.Globalization.CultureInfo culture) => throw null; + public static int ToLowerInvariant(this System.ReadOnlySpan source, System.Span destination) => throw null; + public static int ToUpper(this System.ReadOnlySpan source, System.Span destination, System.Globalization.CultureInfo culture) => throw null; + public static int ToUpperInvariant(this System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Memory Trim(this System.Memory memory) => throw null; + public static System.ReadOnlyMemory Trim(this System.ReadOnlyMemory memory) => throw null; + public static System.ReadOnlySpan Trim(this System.ReadOnlySpan span) => throw null; + public static System.ReadOnlySpan Trim(this System.ReadOnlySpan span, char trimChar) => throw null; + public static System.ReadOnlySpan Trim(this System.ReadOnlySpan span, System.ReadOnlySpan trimChars) => throw null; + public static System.Span Trim(this System.Span span) => throw null; public static System.Memory Trim(this System.Memory memory, System.ReadOnlySpan trimElements) where T : System.IEquatable => throw null; public static System.Memory Trim(this System.Memory memory, T trimElement) where T : System.IEquatable => throw null; public static System.ReadOnlyMemory Trim(this System.ReadOnlyMemory memory, System.ReadOnlySpan trimElements) where T : System.IEquatable => throw null; @@ -150,12 +408,12 @@ namespace System public static System.ReadOnlySpan Trim(this System.ReadOnlySpan span, T trimElement) where T : System.IEquatable => throw null; public static System.Span Trim(this System.Span span, System.ReadOnlySpan trimElements) where T : System.IEquatable => throw null; public static System.Span Trim(this System.Span span, T trimElement) where T : System.IEquatable => throw null; - public static System.Memory TrimEnd(this System.Memory memory) => throw null; - public static System.ReadOnlyMemory TrimEnd(this System.ReadOnlyMemory memory) => throw null; - public static System.ReadOnlySpan TrimEnd(this System.ReadOnlySpan span) => throw null; - public static System.ReadOnlySpan TrimEnd(this System.ReadOnlySpan span, System.ReadOnlySpan trimChars) => throw null; - public static System.ReadOnlySpan TrimEnd(this System.ReadOnlySpan span, System.Char trimChar) => throw null; - public static System.Span TrimEnd(this System.Span span) => throw null; + public static System.Memory TrimEnd(this System.Memory memory) => throw null; + public static System.ReadOnlyMemory TrimEnd(this System.ReadOnlyMemory memory) => throw null; + public static System.ReadOnlySpan TrimEnd(this System.ReadOnlySpan span) => throw null; + public static System.ReadOnlySpan TrimEnd(this System.ReadOnlySpan span, char trimChar) => throw null; + public static System.ReadOnlySpan TrimEnd(this System.ReadOnlySpan span, System.ReadOnlySpan trimChars) => throw null; + public static System.Span TrimEnd(this System.Span span) => throw null; public static System.Memory TrimEnd(this System.Memory memory, System.ReadOnlySpan trimElements) where T : System.IEquatable => throw null; public static System.Memory TrimEnd(this System.Memory memory, T trimElement) where T : System.IEquatable => throw null; public static System.ReadOnlyMemory TrimEnd(this System.ReadOnlyMemory memory, System.ReadOnlySpan trimElements) where T : System.IEquatable => throw null; @@ -164,12 +422,12 @@ namespace System public static System.ReadOnlySpan TrimEnd(this System.ReadOnlySpan span, T trimElement) where T : System.IEquatable => throw null; public static System.Span TrimEnd(this System.Span span, System.ReadOnlySpan trimElements) where T : System.IEquatable => throw null; public static System.Span TrimEnd(this System.Span span, T trimElement) where T : System.IEquatable => throw null; - public static System.Memory TrimStart(this System.Memory memory) => throw null; - public static System.ReadOnlyMemory TrimStart(this System.ReadOnlyMemory memory) => throw null; - public static System.ReadOnlySpan TrimStart(this System.ReadOnlySpan span) => throw null; - public static System.ReadOnlySpan TrimStart(this System.ReadOnlySpan span, System.ReadOnlySpan trimChars) => throw null; - public static System.ReadOnlySpan TrimStart(this System.ReadOnlySpan span, System.Char trimChar) => throw null; - public static System.Span TrimStart(this System.Span span) => throw null; + public static System.Memory TrimStart(this System.Memory memory) => throw null; + public static System.ReadOnlyMemory TrimStart(this System.ReadOnlyMemory memory) => throw null; + public static System.ReadOnlySpan TrimStart(this System.ReadOnlySpan span) => throw null; + public static System.ReadOnlySpan TrimStart(this System.ReadOnlySpan span, char trimChar) => throw null; + public static System.ReadOnlySpan TrimStart(this System.ReadOnlySpan span, System.ReadOnlySpan trimChars) => throw null; + public static System.Span TrimStart(this System.Span span) => throw null; public static System.Memory TrimStart(this System.Memory memory, System.ReadOnlySpan trimElements) where T : System.IEquatable => throw null; public static System.Memory TrimStart(this System.Memory memory, T trimElement) where T : System.IEquatable => throw null; public static System.ReadOnlyMemory TrimStart(this System.ReadOnlyMemory memory, System.ReadOnlySpan trimElements) where T : System.IEquatable => throw null; @@ -178,314 +436,22 @@ namespace System public static System.ReadOnlySpan TrimStart(this System.ReadOnlySpan span, T trimElement) where T : System.IEquatable => throw null; public static System.Span TrimStart(this System.Span span, System.ReadOnlySpan trimElements) where T : System.IEquatable => throw null; public static System.Span TrimStart(this System.Span span, T trimElement) where T : System.IEquatable => throw null; - public static bool TryWrite(this System.Span destination, System.IFormatProvider provider, ref System.MemoryExtensions.TryWriteInterpolatedStringHandler handler, out int charsWritten) => throw null; - public static bool TryWrite(this System.Span destination, ref System.MemoryExtensions.TryWriteInterpolatedStringHandler handler, out int charsWritten) => throw null; - } - - public struct SequencePosition : System.IEquatable - { - public bool Equals(System.SequencePosition other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public int GetInteger() => throw null; - public object GetObject() => throw null; - // Stub generator skipped constructor - public SequencePosition(object @object, int integer) => throw null; - } - - namespace Buffers - { - public class ArrayBufferWriter : System.Buffers.IBufferWriter + public static bool TryWrite(this System.Span destination, ref System.MemoryExtensions.TryWriteInterpolatedStringHandler handler, out int charsWritten) => throw null; + public static bool TryWrite(this System.Span destination, System.IFormatProvider provider, ref System.MemoryExtensions.TryWriteInterpolatedStringHandler handler, out int charsWritten) => throw null; + public struct TryWriteInterpolatedStringHandler { - public void Advance(int count) => throw null; - public ArrayBufferWriter() => throw null; - public ArrayBufferWriter(int initialCapacity) => throw null; - public int Capacity { get => throw null; } - public void Clear() => throw null; - public int FreeCapacity { get => throw null; } - public System.Memory GetMemory(int sizeHint = default(int)) => throw null; - public System.Span GetSpan(int sizeHint = default(int)) => throw null; - public int WrittenCount { get => throw null; } - public System.ReadOnlyMemory WrittenMemory { get => throw null; } - public System.ReadOnlySpan WrittenSpan { get => throw null; } - } - - public static class BuffersExtensions - { - public static void CopyTo(System.Buffers.ReadOnlySequence source, System.Span destination) => throw null; - public static System.SequencePosition? PositionOf(System.Buffers.ReadOnlySequence source, T value) where T : System.IEquatable => throw null; - public static T[] ToArray(System.Buffers.ReadOnlySequence sequence) => throw null; - public static void Write(this System.Buffers.IBufferWriter writer, System.ReadOnlySpan value) => throw null; - } - - public interface IBufferWriter - { - void Advance(int count); - System.Memory GetMemory(int sizeHint = default(int)); - System.Span GetSpan(int sizeHint = default(int)); - } - - public abstract class MemoryPool : System.IDisposable - { - public void Dispose() => throw null; - protected abstract void Dispose(bool disposing); - public abstract int MaxBufferSize { get; } - protected MemoryPool() => throw null; - public abstract System.Buffers.IMemoryOwner Rent(int minBufferSize = default(int)); - public static System.Buffers.MemoryPool Shared { get => throw null; } - } - - public struct ReadOnlySequence - { - public struct Enumerator - { - public System.ReadOnlyMemory Current { get => throw null; } - // Stub generator skipped constructor - public Enumerator(System.Buffers.ReadOnlySequence sequence) => throw null; - public bool MoveNext() => throw null; - } - - - public static System.Buffers.ReadOnlySequence Empty; - public System.SequencePosition End { get => throw null; } - public System.ReadOnlyMemory First { get => throw null; } - public System.ReadOnlySpan FirstSpan { get => throw null; } - public System.Buffers.ReadOnlySequence.Enumerator GetEnumerator() => throw null; - public System.Int64 GetOffset(System.SequencePosition position) => throw null; - public System.SequencePosition GetPosition(System.Int64 offset) => throw null; - public System.SequencePosition GetPosition(System.Int64 offset, System.SequencePosition origin) => throw null; - public bool IsEmpty { get => throw null; } - public bool IsSingleSegment { get => throw null; } - public System.Int64 Length { get => throw null; } - // Stub generator skipped constructor - public ReadOnlySequence(System.ReadOnlyMemory memory) => throw null; - public ReadOnlySequence(System.Buffers.ReadOnlySequenceSegment startSegment, int startIndex, System.Buffers.ReadOnlySequenceSegment endSegment, int endIndex) => throw null; - public ReadOnlySequence(T[] array) => throw null; - public ReadOnlySequence(T[] array, int start, int length) => throw null; - public System.Buffers.ReadOnlySequence Slice(System.SequencePosition start) => throw null; - public System.Buffers.ReadOnlySequence Slice(System.SequencePosition start, System.SequencePosition end) => throw null; - public System.Buffers.ReadOnlySequence Slice(System.SequencePosition start, int length) => throw null; - public System.Buffers.ReadOnlySequence Slice(System.SequencePosition start, System.Int64 length) => throw null; - public System.Buffers.ReadOnlySequence Slice(int start, System.SequencePosition end) => throw null; - public System.Buffers.ReadOnlySequence Slice(int start, int length) => throw null; - public System.Buffers.ReadOnlySequence Slice(System.Int64 start) => throw null; - public System.Buffers.ReadOnlySequence Slice(System.Int64 start, System.SequencePosition end) => throw null; - public System.Buffers.ReadOnlySequence Slice(System.Int64 start, System.Int64 length) => throw null; - public System.SequencePosition Start { get => throw null; } - public override string ToString() => throw null; - public bool TryGet(ref System.SequencePosition position, out System.ReadOnlyMemory memory, bool advance = default(bool)) => throw null; - } - - public abstract class ReadOnlySequenceSegment - { - public System.ReadOnlyMemory Memory { get => throw null; set => throw null; } - public System.Buffers.ReadOnlySequenceSegment Next { get => throw null; set => throw null; } - protected ReadOnlySequenceSegment() => throw null; - public System.Int64 RunningIndex { get => throw null; set => throw null; } - } - - public struct SequenceReader where T : unmanaged, System.IEquatable - { - public void Advance(System.Int64 count) => throw null; - public System.Int64 AdvancePast(T value) => throw null; - public System.Int64 AdvancePastAny(System.ReadOnlySpan values) => throw null; - public System.Int64 AdvancePastAny(T value0, T value1) => throw null; - public System.Int64 AdvancePastAny(T value0, T value1, T value2) => throw null; - public System.Int64 AdvancePastAny(T value0, T value1, T value2, T value3) => throw null; - public void AdvanceToEnd() => throw null; - public System.Int64 Consumed { get => throw null; } - public System.ReadOnlySpan CurrentSpan { get => throw null; } - public int CurrentSpanIndex { get => throw null; } - public bool End { get => throw null; } - public bool IsNext(System.ReadOnlySpan next, bool advancePast = default(bool)) => throw null; - public bool IsNext(T next, bool advancePast = default(bool)) => throw null; - public System.Int64 Length { get => throw null; } - public System.SequencePosition Position { get => throw null; } - public System.Int64 Remaining { get => throw null; } - public void Rewind(System.Int64 count) => throw null; - public System.Buffers.ReadOnlySequence Sequence { get => throw null; } - // Stub generator skipped constructor - public SequenceReader(System.Buffers.ReadOnlySequence sequence) => throw null; - public bool TryAdvanceTo(T delimiter, bool advancePastDelimiter = default(bool)) => throw null; - public bool TryAdvanceToAny(System.ReadOnlySpan delimiters, bool advancePastDelimiter = default(bool)) => throw null; - public bool TryCopyTo(System.Span destination) => throw null; - public bool TryPeek(System.Int64 offset, out T value) => throw null; - public bool TryPeek(out T value) => throw null; - public bool TryRead(out T value) => throw null; - public bool TryReadExact(int count, out System.Buffers.ReadOnlySequence sequence) => throw null; - public bool TryReadTo(out System.Buffers.ReadOnlySequence sequence, System.ReadOnlySpan delimiter, bool advancePastDelimiter = default(bool)) => throw null; - public bool TryReadTo(out System.Buffers.ReadOnlySequence sequence, T delimiter, T delimiterEscape, bool advancePastDelimiter = default(bool)) => throw null; - public bool TryReadTo(out System.Buffers.ReadOnlySequence sequence, T delimiter, bool advancePastDelimiter = default(bool)) => throw null; - public bool TryReadTo(out System.ReadOnlySpan span, System.ReadOnlySpan delimiter, bool advancePastDelimiter = default(bool)) => throw null; - public bool TryReadTo(out System.ReadOnlySpan span, T delimiter, T delimiterEscape, bool advancePastDelimiter = default(bool)) => throw null; - public bool TryReadTo(out System.ReadOnlySpan span, T delimiter, bool advancePastDelimiter = default(bool)) => throw null; - public bool TryReadToAny(out System.Buffers.ReadOnlySequence sequence, System.ReadOnlySpan delimiters, bool advancePastDelimiter = default(bool)) => throw null; - public bool TryReadToAny(out System.ReadOnlySpan span, System.ReadOnlySpan delimiters, bool advancePastDelimiter = default(bool)) => throw null; - public System.Buffers.ReadOnlySequence UnreadSequence { get => throw null; } - public System.ReadOnlySpan UnreadSpan { get => throw null; } - } - - public static class SequenceReaderExtensions - { - public static bool TryReadBigEndian(ref System.Buffers.SequenceReader reader, out int value) => throw null; - public static bool TryReadBigEndian(ref System.Buffers.SequenceReader reader, out System.Int64 value) => throw null; - public static bool TryReadBigEndian(ref System.Buffers.SequenceReader reader, out System.Int16 value) => throw null; - public static bool TryReadLittleEndian(ref System.Buffers.SequenceReader reader, out int value) => throw null; - public static bool TryReadLittleEndian(ref System.Buffers.SequenceReader reader, out System.Int64 value) => throw null; - public static bool TryReadLittleEndian(ref System.Buffers.SequenceReader reader, out System.Int16 value) => throw null; - } - - public struct StandardFormat : System.IEquatable - { - public static bool operator !=(System.Buffers.StandardFormat left, System.Buffers.StandardFormat right) => throw null; - public static bool operator ==(System.Buffers.StandardFormat left, System.Buffers.StandardFormat right) => throw null; - public bool Equals(System.Buffers.StandardFormat other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public bool HasPrecision { get => throw null; } - public bool IsDefault { get => throw null; } - public const System.Byte MaxPrecision = default; - public const System.Byte NoPrecision = default; - public static System.Buffers.StandardFormat Parse(System.ReadOnlySpan format) => throw null; - public static System.Buffers.StandardFormat Parse(string format) => throw null; - public System.Byte Precision { get => throw null; } - // Stub generator skipped constructor - public StandardFormat(System.Char symbol, System.Byte precision = default(System.Byte)) => throw null; - public System.Char Symbol { get => throw null; } - public override string ToString() => throw null; - public static bool TryParse(System.ReadOnlySpan format, out System.Buffers.StandardFormat result) => throw null; - public static implicit operator System.Buffers.StandardFormat(System.Char symbol) => throw null; - } - - namespace Binary - { - public static class BinaryPrimitives - { - public static double ReadDoubleBigEndian(System.ReadOnlySpan source) => throw null; - public static double ReadDoubleLittleEndian(System.ReadOnlySpan source) => throw null; - public static System.Half ReadHalfBigEndian(System.ReadOnlySpan source) => throw null; - public static System.Half ReadHalfLittleEndian(System.ReadOnlySpan source) => throw null; - public static System.Int16 ReadInt16BigEndian(System.ReadOnlySpan source) => throw null; - public static System.Int16 ReadInt16LittleEndian(System.ReadOnlySpan source) => throw null; - public static int ReadInt32BigEndian(System.ReadOnlySpan source) => throw null; - public static int ReadInt32LittleEndian(System.ReadOnlySpan source) => throw null; - public static System.Int64 ReadInt64BigEndian(System.ReadOnlySpan source) => throw null; - public static System.Int64 ReadInt64LittleEndian(System.ReadOnlySpan source) => throw null; - public static float ReadSingleBigEndian(System.ReadOnlySpan source) => throw null; - public static float ReadSingleLittleEndian(System.ReadOnlySpan source) => throw null; - public static System.UInt16 ReadUInt16BigEndian(System.ReadOnlySpan source) => throw null; - public static System.UInt16 ReadUInt16LittleEndian(System.ReadOnlySpan source) => throw null; - public static System.UInt32 ReadUInt32BigEndian(System.ReadOnlySpan source) => throw null; - public static System.UInt32 ReadUInt32LittleEndian(System.ReadOnlySpan source) => throw null; - public static System.UInt64 ReadUInt64BigEndian(System.ReadOnlySpan source) => throw null; - public static System.UInt64 ReadUInt64LittleEndian(System.ReadOnlySpan source) => throw null; - public static System.Byte ReverseEndianness(System.Byte value) => throw null; - public static int ReverseEndianness(int value) => throw null; - public static System.Int64 ReverseEndianness(System.Int64 value) => throw null; - public static System.SByte ReverseEndianness(System.SByte value) => throw null; - public static System.Int16 ReverseEndianness(System.Int16 value) => throw null; - public static System.UInt32 ReverseEndianness(System.UInt32 value) => throw null; - public static System.UInt64 ReverseEndianness(System.UInt64 value) => throw null; - public static System.UInt16 ReverseEndianness(System.UInt16 value) => throw null; - public static bool TryReadDoubleBigEndian(System.ReadOnlySpan source, out double value) => throw null; - public static bool TryReadDoubleLittleEndian(System.ReadOnlySpan source, out double value) => throw null; - public static bool TryReadHalfBigEndian(System.ReadOnlySpan source, out System.Half value) => throw null; - public static bool TryReadHalfLittleEndian(System.ReadOnlySpan source, out System.Half value) => throw null; - public static bool TryReadInt16BigEndian(System.ReadOnlySpan source, out System.Int16 value) => throw null; - public static bool TryReadInt16LittleEndian(System.ReadOnlySpan source, out System.Int16 value) => throw null; - public static bool TryReadInt32BigEndian(System.ReadOnlySpan source, out int value) => throw null; - public static bool TryReadInt32LittleEndian(System.ReadOnlySpan source, out int value) => throw null; - public static bool TryReadInt64BigEndian(System.ReadOnlySpan source, out System.Int64 value) => throw null; - public static bool TryReadInt64LittleEndian(System.ReadOnlySpan source, out System.Int64 value) => throw null; - public static bool TryReadSingleBigEndian(System.ReadOnlySpan source, out float value) => throw null; - public static bool TryReadSingleLittleEndian(System.ReadOnlySpan source, out float value) => throw null; - public static bool TryReadUInt16BigEndian(System.ReadOnlySpan source, out System.UInt16 value) => throw null; - public static bool TryReadUInt16LittleEndian(System.ReadOnlySpan source, out System.UInt16 value) => throw null; - public static bool TryReadUInt32BigEndian(System.ReadOnlySpan source, out System.UInt32 value) => throw null; - public static bool TryReadUInt32LittleEndian(System.ReadOnlySpan source, out System.UInt32 value) => throw null; - public static bool TryReadUInt64BigEndian(System.ReadOnlySpan source, out System.UInt64 value) => throw null; - public static bool TryReadUInt64LittleEndian(System.ReadOnlySpan source, out System.UInt64 value) => throw null; - public static bool TryWriteDoubleBigEndian(System.Span destination, double value) => throw null; - public static bool TryWriteDoubleLittleEndian(System.Span destination, double value) => throw null; - public static bool TryWriteHalfBigEndian(System.Span destination, System.Half value) => throw null; - public static bool TryWriteHalfLittleEndian(System.Span destination, System.Half value) => throw null; - public static bool TryWriteInt16BigEndian(System.Span destination, System.Int16 value) => throw null; - public static bool TryWriteInt16LittleEndian(System.Span destination, System.Int16 value) => throw null; - public static bool TryWriteInt32BigEndian(System.Span destination, int value) => throw null; - public static bool TryWriteInt32LittleEndian(System.Span destination, int value) => throw null; - public static bool TryWriteInt64BigEndian(System.Span destination, System.Int64 value) => throw null; - public static bool TryWriteInt64LittleEndian(System.Span destination, System.Int64 value) => throw null; - public static bool TryWriteSingleBigEndian(System.Span destination, float value) => throw null; - public static bool TryWriteSingleLittleEndian(System.Span destination, float value) => throw null; - public static bool TryWriteUInt16BigEndian(System.Span destination, System.UInt16 value) => throw null; - public static bool TryWriteUInt16LittleEndian(System.Span destination, System.UInt16 value) => throw null; - public static bool TryWriteUInt32BigEndian(System.Span destination, System.UInt32 value) => throw null; - public static bool TryWriteUInt32LittleEndian(System.Span destination, System.UInt32 value) => throw null; - public static bool TryWriteUInt64BigEndian(System.Span destination, System.UInt64 value) => throw null; - public static bool TryWriteUInt64LittleEndian(System.Span destination, System.UInt64 value) => throw null; - public static void WriteDoubleBigEndian(System.Span destination, double value) => throw null; - public static void WriteDoubleLittleEndian(System.Span destination, double value) => throw null; - public static void WriteHalfBigEndian(System.Span destination, System.Half value) => throw null; - public static void WriteHalfLittleEndian(System.Span destination, System.Half value) => throw null; - public static void WriteInt16BigEndian(System.Span destination, System.Int16 value) => throw null; - public static void WriteInt16LittleEndian(System.Span destination, System.Int16 value) => throw null; - public static void WriteInt32BigEndian(System.Span destination, int value) => throw null; - public static void WriteInt32LittleEndian(System.Span destination, int value) => throw null; - public static void WriteInt64BigEndian(System.Span destination, System.Int64 value) => throw null; - public static void WriteInt64LittleEndian(System.Span destination, System.Int64 value) => throw null; - public static void WriteSingleBigEndian(System.Span destination, float value) => throw null; - public static void WriteSingleLittleEndian(System.Span destination, float value) => throw null; - public static void WriteUInt16BigEndian(System.Span destination, System.UInt16 value) => throw null; - public static void WriteUInt16LittleEndian(System.Span destination, System.UInt16 value) => throw null; - public static void WriteUInt32BigEndian(System.Span destination, System.UInt32 value) => throw null; - public static void WriteUInt32LittleEndian(System.Span destination, System.UInt32 value) => throw null; - public static void WriteUInt64BigEndian(System.Span destination, System.UInt64 value) => throw null; - public static void WriteUInt64LittleEndian(System.Span destination, System.UInt64 value) => throw null; - } - - } - namespace Text - { - public static class Utf8Formatter - { - public static bool TryFormat(System.DateTime value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.DateTimeOffset value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.Guid value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.TimeSpan value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(bool value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.Byte value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.Decimal value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(double value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(float value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(int value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.Int64 value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.SByte value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.Int16 value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.UInt32 value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.UInt64 value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - public static bool TryFormat(System.UInt16 value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; - } - - public static class Utf8Parser - { - public static bool TryParse(System.ReadOnlySpan source, out System.DateTime value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.DateTimeOffset value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.Guid value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.TimeSpan value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out bool value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.Byte value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.Decimal value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out double value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out float value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out int value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.Int64 value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.SByte value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.Int16 value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.UInt32 value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.UInt64 value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - public static bool TryParse(System.ReadOnlySpan source, out System.UInt16 value, out int bytesConsumed, System.Char standardFormat = default(System.Char)) => throw null; - } - + public bool AppendFormatted(System.ReadOnlySpan value) => throw null; + public bool AppendFormatted(System.ReadOnlySpan value, int alignment = default(int), string format = default(string)) => throw null; + public bool AppendFormatted(T value) => throw null; + public bool AppendFormatted(T value, string format) => throw null; + public bool AppendFormatted(T value, int alignment) => throw null; + public bool AppendFormatted(T value, int alignment, string format) => throw null; + public bool AppendFormatted(object value, int alignment = default(int), string format = default(string)) => throw null; + public bool AppendFormatted(string value) => throw null; + public bool AppendFormatted(string value, int alignment = default(int), string format = default(string)) => throw null; + public bool AppendLiteral(string value) => throw null; + public TryWriteInterpolatedStringHandler(int literalLength, int formattedCount, System.Span destination, out bool shouldAppend) => throw null; + public TryWriteInterpolatedStringHandler(int literalLength, int formattedCount, System.Span destination, System.IFormatProvider provider, out bool shouldAppend) => throw null; } } namespace Runtime @@ -494,76 +460,78 @@ namespace System { public static class MemoryMarshal { - public static System.ReadOnlySpan AsBytes(System.ReadOnlySpan span) where T : struct => throw null; - public static System.Span AsBytes(System.Span span) where T : struct => throw null; + public static System.ReadOnlySpan AsBytes(System.ReadOnlySpan span) where T : struct => throw null; + public static System.Span AsBytes(System.Span span) where T : struct => throw null; public static System.Memory AsMemory(System.ReadOnlyMemory memory) => throw null; - public static T AsRef(System.ReadOnlySpan span) where T : struct => throw null; - public static T AsRef(System.Span span) where T : struct => throw null; + public static T AsRef(System.ReadOnlySpan span) where T : struct => throw null; + public static T AsRef(System.Span span) where T : struct => throw null; public static System.ReadOnlySpan Cast(System.ReadOnlySpan span) where TFrom : struct where TTo : struct => throw null; public static System.Span Cast(System.Span span) where TFrom : struct where TTo : struct => throw null; public static System.Memory CreateFromPinnedArray(T[] array, int start, int length) => throw null; public static System.ReadOnlySpan CreateReadOnlySpan(ref T reference, int length) => throw null; - unsafe public static System.ReadOnlySpan CreateReadOnlySpanFromNullTerminated(System.Byte* value) => throw null; - unsafe public static System.ReadOnlySpan CreateReadOnlySpanFromNullTerminated(System.Char* value) => throw null; + public static unsafe System.ReadOnlySpan CreateReadOnlySpanFromNullTerminated(byte* value) => throw null; + public static unsafe System.ReadOnlySpan CreateReadOnlySpanFromNullTerminated(char* value) => throw null; public static System.Span CreateSpan(ref T reference, int length) => throw null; - public static System.Byte GetArrayDataReference(System.Array array) => throw null; public static T GetArrayDataReference(T[] array) => throw null; + public static byte GetArrayDataReference(System.Array array) => throw null; public static T GetReference(System.ReadOnlySpan span) => throw null; public static T GetReference(System.Span span) => throw null; - public static T Read(System.ReadOnlySpan source) where T : struct => throw null; + public static T Read(System.ReadOnlySpan source) where T : struct => throw null; public static System.Collections.Generic.IEnumerable ToEnumerable(System.ReadOnlyMemory memory) => throw null; public static bool TryGetArray(System.ReadOnlyMemory memory, out System.ArraySegment segment) => throw null; public static bool TryGetMemoryManager(System.ReadOnlyMemory memory, out TManager manager) where TManager : System.Buffers.MemoryManager => throw null; public static bool TryGetMemoryManager(System.ReadOnlyMemory memory, out TManager manager, out int start, out int length) where TManager : System.Buffers.MemoryManager => throw null; - public static bool TryGetString(System.ReadOnlyMemory memory, out string text, out int start, out int length) => throw null; - public static bool TryRead(System.ReadOnlySpan source, out T value) where T : struct => throw null; - public static bool TryWrite(System.Span destination, ref T value) where T : struct => throw null; - public static void Write(System.Span destination, ref T value) where T : struct => throw null; + public static bool TryGetString(System.ReadOnlyMemory memory, out string text, out int start, out int length) => throw null; + public static bool TryRead(System.ReadOnlySpan source, out T value) where T : struct => throw null; + public static bool TryWrite(System.Span destination, ref T value) where T : struct => throw null; + public static void Write(System.Span destination, ref T value) where T : struct => throw null; } - public static class SequenceMarshal { public static bool TryGetArray(System.Buffers.ReadOnlySequence sequence, out System.ArraySegment segment) => throw null; public static bool TryGetReadOnlyMemory(System.Buffers.ReadOnlySequence sequence, out System.ReadOnlyMemory memory) => throw null; public static bool TryGetReadOnlySequenceSegment(System.Buffers.ReadOnlySequence sequence, out System.Buffers.ReadOnlySequenceSegment startSegment, out int startIndex, out System.Buffers.ReadOnlySequenceSegment endSegment, out int endIndex) => throw null; - public static bool TryRead(ref System.Buffers.SequenceReader reader, out T value) where T : unmanaged => throw null; + public static bool TryRead(ref System.Buffers.SequenceReader reader, out T value) where T : unmanaged => throw null; } - } } + public struct SequencePosition : System.IEquatable + { + public SequencePosition(object @object, int integer) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.SequencePosition other) => throw null; + public override int GetHashCode() => throw null; + public int GetInteger() => throw null; + public object GetObject() => throw null; + } namespace Text { - public static class EncodingExtensions + public static partial class EncodingExtensions { - public static void Convert(this System.Text.Decoder decoder, System.Buffers.ReadOnlySequence bytes, System.Buffers.IBufferWriter writer, bool flush, out System.Int64 charsUsed, out bool completed) => throw null; - public static void Convert(this System.Text.Decoder decoder, System.ReadOnlySpan bytes, System.Buffers.IBufferWriter writer, bool flush, out System.Int64 charsUsed, out bool completed) => throw null; - public static void Convert(this System.Text.Encoder encoder, System.Buffers.ReadOnlySequence chars, System.Buffers.IBufferWriter writer, bool flush, out System.Int64 bytesUsed, out bool completed) => throw null; - public static void Convert(this System.Text.Encoder encoder, System.ReadOnlySpan chars, System.Buffers.IBufferWriter writer, bool flush, out System.Int64 bytesUsed, out bool completed) => throw null; - public static System.Byte[] GetBytes(this System.Text.Encoding encoding, System.Buffers.ReadOnlySequence chars) => throw null; - public static System.Int64 GetBytes(this System.Text.Encoding encoding, System.Buffers.ReadOnlySequence chars, System.Buffers.IBufferWriter writer) => throw null; - public static int GetBytes(this System.Text.Encoding encoding, System.Buffers.ReadOnlySequence chars, System.Span bytes) => throw null; - public static System.Int64 GetBytes(this System.Text.Encoding encoding, System.ReadOnlySpan chars, System.Buffers.IBufferWriter writer) => throw null; - public static System.Int64 GetChars(this System.Text.Encoding encoding, System.Buffers.ReadOnlySequence bytes, System.Buffers.IBufferWriter writer) => throw null; - public static int GetChars(this System.Text.Encoding encoding, System.Buffers.ReadOnlySequence bytes, System.Span chars) => throw null; - public static System.Int64 GetChars(this System.Text.Encoding encoding, System.ReadOnlySpan bytes, System.Buffers.IBufferWriter writer) => throw null; - public static string GetString(this System.Text.Encoding encoding, System.Buffers.ReadOnlySequence bytes) => throw null; + public static void Convert(this System.Text.Decoder decoder, in System.Buffers.ReadOnlySequence bytes, System.Buffers.IBufferWriter writer, bool flush, out long charsUsed, out bool completed) => throw null; + public static void Convert(this System.Text.Decoder decoder, System.ReadOnlySpan bytes, System.Buffers.IBufferWriter writer, bool flush, out long charsUsed, out bool completed) => throw null; + public static void Convert(this System.Text.Encoder encoder, in System.Buffers.ReadOnlySequence chars, System.Buffers.IBufferWriter writer, bool flush, out long bytesUsed, out bool completed) => throw null; + public static void Convert(this System.Text.Encoder encoder, System.ReadOnlySpan chars, System.Buffers.IBufferWriter writer, bool flush, out long bytesUsed, out bool completed) => throw null; + public static byte[] GetBytes(this System.Text.Encoding encoding, in System.Buffers.ReadOnlySequence chars) => throw null; + public static long GetBytes(this System.Text.Encoding encoding, in System.Buffers.ReadOnlySequence chars, System.Buffers.IBufferWriter writer) => throw null; + public static int GetBytes(this System.Text.Encoding encoding, in System.Buffers.ReadOnlySequence chars, System.Span bytes) => throw null; + public static long GetBytes(this System.Text.Encoding encoding, System.ReadOnlySpan chars, System.Buffers.IBufferWriter writer) => throw null; + public static long GetChars(this System.Text.Encoding encoding, in System.Buffers.ReadOnlySequence bytes, System.Buffers.IBufferWriter writer) => throw null; + public static int GetChars(this System.Text.Encoding encoding, in System.Buffers.ReadOnlySequence bytes, System.Span chars) => throw null; + public static long GetChars(this System.Text.Encoding encoding, System.ReadOnlySpan bytes, System.Buffers.IBufferWriter writer) => throw null; + public static string GetString(this System.Text.Encoding encoding, in System.Buffers.ReadOnlySequence bytes) => throw null; } - public struct SpanLineEnumerator { - public System.ReadOnlySpan Current { get => throw null; } + public System.ReadOnlySpan Current { get => throw null; } public System.Text.SpanLineEnumerator GetEnumerator() => throw null; public bool MoveNext() => throw null; - // Stub generator skipped constructor } - public struct SpanRuneEnumerator { public System.Text.Rune Current { get => throw null; } public System.Text.SpanRuneEnumerator GetEnumerator() => throw null; public bool MoveNext() => throw null; - // Stub generator skipped constructor } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.Json.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.Json.cs index d446b901ee7..62c0d07bf80 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.Json.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.Json.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Net.Http.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Net @@ -9,61 +8,59 @@ namespace System { namespace Json { - public static class HttpClientJsonExtensions + public static partial class HttpClientJsonExtensions { - public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Type type, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Type type, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task PatchAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, string requestUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetFromJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task PatchAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task PatchAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task PostAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task PatchAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task PatchAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PatchAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PatchAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task PostAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task PostAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task PutAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task PostAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task PostAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PostAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PostAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task PutAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task PutAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutAsJsonAsync(this System.Net.Http.HttpClient client, string requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task PutAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutAsJsonAsync(this System.Net.Http.HttpClient client, System.Uri requestUri, TValue value, System.Threading.CancellationToken cancellationToken) => throw null; } - - public static class HttpContentJsonExtensions + public static partial class HttpContentJsonExtensions { - public static System.Threading.Tasks.Task ReadFromJsonAsync(this System.Net.Http.HttpContent content, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task ReadFromJsonAsync(this System.Net.Http.HttpContent content, System.Type type, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ReadFromJsonAsync(this System.Net.Http.HttpContent content, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task ReadFromJsonAsync(this System.Net.Http.HttpContent content, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task ReadFromJsonAsync(this System.Net.Http.HttpContent content, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - public class JsonContent : System.Net.Http.HttpContent + public sealed class JsonContent : System.Net.Http.HttpContent { public static System.Net.Http.Json.JsonContent Create(object inputValue, System.Type inputType, System.Net.Http.Headers.MediaTypeHeaderValue mediaType = default(System.Net.Http.Headers.MediaTypeHeaderValue), System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public static System.Net.Http.Json.JsonContent Create(T inputValue, System.Net.Http.Headers.MediaTypeHeaderValue mediaType = default(System.Net.Http.Headers.MediaTypeHeaderValue), System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; @@ -71,10 +68,9 @@ namespace System protected override void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context) => throw null; protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override bool TryComputeLength(out System.Int64 length) => throw null; + protected override bool TryComputeLength(out long length) => throw null; public object Value { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.cs index b90cbb9cb5a..40263d28024 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Net.Http, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net @@ -9,434 +8,42 @@ namespace System { public class ByteArrayContent : System.Net.Http.HttpContent { - public ByteArrayContent(System.Byte[] content) => throw null; - public ByteArrayContent(System.Byte[] content, int offset, int count) => throw null; protected override System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; protected override System.Threading.Tasks.Task CreateContentReadStreamAsync() => throw null; + public ByteArrayContent(byte[] content) => throw null; + public ByteArrayContent(byte[] content, int offset, int count) => throw null; protected override void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context) => throw null; protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override bool TryComputeLength(out System.Int64 length) => throw null; + protected override bool TryComputeLength(out long length) => throw null; } - - public enum ClientCertificateOption : int + public enum ClientCertificateOption { - Automatic = 1, Manual = 0, + Automatic = 1, } - public abstract class DelegatingHandler : System.Net.Http.HttpMessageHandler { protected DelegatingHandler() => throw null; protected DelegatingHandler(System.Net.Http.HttpMessageHandler innerHandler) => throw null; protected override void Dispose(bool disposing) => throw null; - public System.Net.Http.HttpMessageHandler InnerHandler { get => throw null; set => throw null; } - protected internal override System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Net.Http.HttpMessageHandler InnerHandler { get => throw null; set { } } + protected override System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; } - public class FormUrlEncodedContent : System.Net.Http.ByteArrayContent { - public FormUrlEncodedContent(System.Collections.Generic.IEnumerable> nameValueCollection) : base(default(System.Byte[])) => throw null; + public FormUrlEncodedContent(System.Collections.Generic.IEnumerable> nameValueCollection) : base(default(byte[])) => throw null; protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; } - public delegate System.Text.Encoding HeaderEncodingSelector(string headerName, TContext context); - - public class HttpClient : System.Net.Http.HttpMessageInvoker - { - public System.Uri BaseAddress { get => throw null; set => throw null; } - public void CancelPendingRequests() => throw null; - public static System.Net.IWebProxy DefaultProxy { get => throw null; set => throw null; } - public System.Net.Http.Headers.HttpRequestHeaders DefaultRequestHeaders { get => throw null; } - public System.Version DefaultRequestVersion { get => throw null; set => throw null; } - public System.Net.Http.HttpVersionPolicy DefaultVersionPolicy { get => throw null; set => throw null; } - public System.Threading.Tasks.Task DeleteAsync(System.Uri requestUri) => throw null; - public System.Threading.Tasks.Task DeleteAsync(System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string requestUri) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string requestUri, System.Threading.CancellationToken cancellationToken) => throw null; - protected override void Dispose(bool disposing) => throw null; - public System.Threading.Tasks.Task GetAsync(System.Uri requestUri) => throw null; - public System.Threading.Tasks.Task GetAsync(System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task GetAsync(System.Uri requestUri, System.Net.Http.HttpCompletionOption completionOption) => throw null; - public System.Threading.Tasks.Task GetAsync(System.Uri requestUri, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task GetAsync(string requestUri) => throw null; - public System.Threading.Tasks.Task GetAsync(string requestUri, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task GetAsync(string requestUri, System.Net.Http.HttpCompletionOption completionOption) => throw null; - public System.Threading.Tasks.Task GetAsync(string requestUri, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task GetByteArrayAsync(System.Uri requestUri) => throw null; - public System.Threading.Tasks.Task GetByteArrayAsync(System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task GetByteArrayAsync(string requestUri) => throw null; - public System.Threading.Tasks.Task GetByteArrayAsync(string requestUri, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task GetStreamAsync(System.Uri requestUri) => throw null; - public System.Threading.Tasks.Task GetStreamAsync(System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task GetStreamAsync(string requestUri) => throw null; - public System.Threading.Tasks.Task GetStreamAsync(string requestUri, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task GetStringAsync(System.Uri requestUri) => throw null; - public System.Threading.Tasks.Task GetStringAsync(System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task GetStringAsync(string requestUri) => throw null; - public System.Threading.Tasks.Task GetStringAsync(string requestUri, System.Threading.CancellationToken cancellationToken) => throw null; - public HttpClient() : base(default(System.Net.Http.HttpMessageHandler)) => throw null; - public HttpClient(System.Net.Http.HttpMessageHandler handler) : base(default(System.Net.Http.HttpMessageHandler)) => throw null; - public HttpClient(System.Net.Http.HttpMessageHandler handler, bool disposeHandler) : base(default(System.Net.Http.HttpMessageHandler)) => throw null; - public System.Int64 MaxResponseContentBufferSize { get => throw null; set => throw null; } - public System.Threading.Tasks.Task PatchAsync(System.Uri requestUri, System.Net.Http.HttpContent content) => throw null; - public System.Threading.Tasks.Task PatchAsync(System.Uri requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task PatchAsync(string requestUri, System.Net.Http.HttpContent content) => throw null; - public System.Threading.Tasks.Task PatchAsync(string requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task PostAsync(System.Uri requestUri, System.Net.Http.HttpContent content) => throw null; - public System.Threading.Tasks.Task PostAsync(System.Uri requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task PostAsync(string requestUri, System.Net.Http.HttpContent content) => throw null; - public System.Threading.Tasks.Task PostAsync(string requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task PutAsync(System.Uri requestUri, System.Net.Http.HttpContent content) => throw null; - public System.Threading.Tasks.Task PutAsync(System.Uri requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task PutAsync(string requestUri, System.Net.Http.HttpContent content) => throw null; - public System.Threading.Tasks.Task PutAsync(string requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request) => throw null; - public override System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption) => throw null; - public System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request) => throw null; - public override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption) => throw null; - public System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) => throw null; - public System.TimeSpan Timeout { get => throw null; set => throw null; } - } - - public class HttpClientHandler : System.Net.Http.HttpMessageHandler - { - public bool AllowAutoRedirect { get => throw null; set => throw null; } - public System.Net.DecompressionMethods AutomaticDecompression { get => throw null; set => throw null; } - public bool CheckCertificateRevocationList { get => throw null; set => throw null; } - public System.Net.Http.ClientCertificateOption ClientCertificateOptions { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; } - public System.Net.CookieContainer CookieContainer { get => throw null; set => throw null; } - public System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public static System.Func DangerousAcceptAnyServerCertificateValidator { get => throw null; } - public System.Net.ICredentials DefaultProxyCredentials { get => throw null; set => throw null; } - protected override void Dispose(bool disposing) => throw null; - public HttpClientHandler() => throw null; - public int MaxAutomaticRedirections { get => throw null; set => throw null; } - public int MaxConnectionsPerServer { get => throw null; set => throw null; } - public System.Int64 MaxRequestContentBufferSize { get => throw null; set => throw null; } - public int MaxResponseHeadersLength { get => throw null; set => throw null; } - public bool PreAuthenticate { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; } - public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - protected internal override System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Func ServerCertificateCustomValidationCallback { get => throw null; set => throw null; } - public System.Security.Authentication.SslProtocols SslProtocols { get => throw null; set => throw null; } - public virtual bool SupportsAutomaticDecompression { get => throw null; } - public virtual bool SupportsProxy { get => throw null; } - public virtual bool SupportsRedirectConfiguration { get => throw null; } - public bool UseCookies { get => throw null; set => throw null; } - public bool UseDefaultCredentials { get => throw null; set => throw null; } - public bool UseProxy { get => throw null; set => throw null; } - } - - public enum HttpCompletionOption : int - { - ResponseContentRead = 0, - ResponseHeadersRead = 1, - } - - public abstract class HttpContent : System.IDisposable - { - public void CopyTo(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream stream) => throw null; - public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream stream, System.Net.TransportContext context) => throw null; - public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - protected virtual System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; - protected virtual System.Threading.Tasks.Task CreateContentReadStreamAsync() => throw null; - protected virtual System.Threading.Tasks.Task CreateContentReadStreamAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public System.Net.Http.Headers.HttpContentHeaders Headers { get => throw null; } - protected HttpContent() => throw null; - public System.Threading.Tasks.Task LoadIntoBufferAsync() => throw null; - public System.Threading.Tasks.Task LoadIntoBufferAsync(System.Int64 maxBufferSize) => throw null; - public System.Threading.Tasks.Task ReadAsByteArrayAsync() => throw null; - public System.Threading.Tasks.Task ReadAsByteArrayAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public System.IO.Stream ReadAsStream() => throw null; - public System.IO.Stream ReadAsStream(System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ReadAsStreamAsync() => throw null; - public System.Threading.Tasks.Task ReadAsStreamAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ReadAsStringAsync() => throw null; - public System.Threading.Tasks.Task ReadAsStringAsync(System.Threading.CancellationToken cancellationToken) => throw null; - protected virtual void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - protected abstract System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context); - protected virtual System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal abstract bool TryComputeLength(out System.Int64 length); - } - - public enum HttpKeepAlivePingPolicy : int - { - Always = 1, - WithActiveRequests = 0, - } - - public abstract class HttpMessageHandler : System.IDisposable - { - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - protected HttpMessageHandler() => throw null; - protected internal virtual System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal abstract System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken); - } - - public class HttpMessageInvoker : System.IDisposable - { - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public HttpMessageInvoker(System.Net.Http.HttpMessageHandler handler) => throw null; - public HttpMessageInvoker(System.Net.Http.HttpMessageHandler handler, bool disposeHandler) => throw null; - public virtual System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - } - - public class HttpMethod : System.IEquatable - { - public static bool operator !=(System.Net.Http.HttpMethod left, System.Net.Http.HttpMethod right) => throw null; - public static bool operator ==(System.Net.Http.HttpMethod left, System.Net.Http.HttpMethod right) => throw null; - public static System.Net.Http.HttpMethod Connect { get => throw null; } - public static System.Net.Http.HttpMethod Delete { get => throw null; } - public bool Equals(System.Net.Http.HttpMethod other) => throw null; - public override bool Equals(object obj) => throw null; - public static System.Net.Http.HttpMethod Get { get => throw null; } - public override int GetHashCode() => throw null; - public static System.Net.Http.HttpMethod Head { get => throw null; } - public HttpMethod(string method) => throw null; - public string Method { get => throw null; } - public static System.Net.Http.HttpMethod Options { get => throw null; } - public static System.Net.Http.HttpMethod Patch { get => throw null; } - public static System.Net.Http.HttpMethod Post { get => throw null; } - public static System.Net.Http.HttpMethod Put { get => throw null; } - public override string ToString() => throw null; - public static System.Net.Http.HttpMethod Trace { get => throw null; } - } - - public class HttpProtocolException : System.IO.IOException - { - public System.Int64 ErrorCode { get => throw null; } - public HttpProtocolException(System.Int64 errorCode, string message, System.Exception innerException) => throw null; - } - - public class HttpRequestException : System.Exception - { - public HttpRequestException() => throw null; - public HttpRequestException(string message) => throw null; - public HttpRequestException(string message, System.Exception inner) => throw null; - public HttpRequestException(string message, System.Exception inner, System.Net.HttpStatusCode? statusCode) => throw null; - public System.Net.HttpStatusCode? StatusCode { get => throw null; } - } - - public class HttpRequestMessage : System.IDisposable - { - public System.Net.Http.HttpContent Content { get => throw null; set => throw null; } - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public System.Net.Http.Headers.HttpRequestHeaders Headers { get => throw null; } - public HttpRequestMessage() => throw null; - public HttpRequestMessage(System.Net.Http.HttpMethod method, System.Uri requestUri) => throw null; - public HttpRequestMessage(System.Net.Http.HttpMethod method, string requestUri) => throw null; - public System.Net.Http.HttpMethod Method { get => throw null; set => throw null; } - public System.Net.Http.HttpRequestOptions Options { get => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; } - public System.Uri RequestUri { get => throw null; set => throw null; } - public override string ToString() => throw null; - public System.Version Version { get => throw null; set => throw null; } - public System.Net.Http.HttpVersionPolicy VersionPolicy { get => throw null; set => throw null; } - } - - public class HttpRequestOptions : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable - { - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; - void System.Collections.Generic.IDictionary.Add(string key, object value) => throw null; - void System.Collections.Generic.ICollection>.Clear() => throw null; - bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair item) => throw null; - bool System.Collections.Generic.IDictionary.ContainsKey(string key) => throw null; - void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; - int System.Collections.Generic.ICollection>.Count { get => throw null; } - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public HttpRequestOptions() => throw null; - bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } - object System.Collections.Generic.IDictionary.this[string key] { get => throw null; set => throw null; } - System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; - bool System.Collections.Generic.IDictionary.Remove(string key) => throw null; - public void Set(System.Net.Http.HttpRequestOptionsKey key, TValue value) => throw null; - bool System.Collections.Generic.IDictionary.TryGetValue(string key, out object value) => throw null; - public bool TryGetValue(System.Net.Http.HttpRequestOptionsKey key, out TValue value) => throw null; - System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } - } - - public struct HttpRequestOptionsKey - { - // Stub generator skipped constructor - public HttpRequestOptionsKey(string key) => throw null; - public string Key { get => throw null; } - } - - public class HttpResponseMessage : System.IDisposable - { - public System.Net.Http.HttpContent Content { get => throw null; set => throw null; } - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public System.Net.Http.HttpResponseMessage EnsureSuccessStatusCode() => throw null; - public System.Net.Http.Headers.HttpResponseHeaders Headers { get => throw null; } - public HttpResponseMessage() => throw null; - public HttpResponseMessage(System.Net.HttpStatusCode statusCode) => throw null; - public bool IsSuccessStatusCode { get => throw null; } - public string ReasonPhrase { get => throw null; set => throw null; } - public System.Net.Http.HttpRequestMessage RequestMessage { get => throw null; set => throw null; } - public System.Net.HttpStatusCode StatusCode { get => throw null; set => throw null; } - public override string ToString() => throw null; - public System.Net.Http.Headers.HttpResponseHeaders TrailingHeaders { get => throw null; } - public System.Version Version { get => throw null; set => throw null; } - } - - public enum HttpVersionPolicy : int - { - RequestVersionExact = 2, - RequestVersionOrHigher = 1, - RequestVersionOrLower = 0, - } - - public abstract class MessageProcessingHandler : System.Net.Http.DelegatingHandler - { - protected MessageProcessingHandler() => throw null; - protected MessageProcessingHandler(System.Net.Http.HttpMessageHandler innerHandler) => throw null; - protected abstract System.Net.Http.HttpRequestMessage ProcessRequest(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken); - protected abstract System.Net.Http.HttpResponseMessage ProcessResponse(System.Net.Http.HttpResponseMessage response, System.Threading.CancellationToken cancellationToken); - protected internal override System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - } - - public class MultipartContent : System.Net.Http.HttpContent, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - public virtual void Add(System.Net.Http.HttpContent content) => throw null; - protected override System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; - protected override System.Threading.Tasks.Task CreateContentReadStreamAsync() => throw null; - protected override System.Threading.Tasks.Task CreateContentReadStreamAsync(System.Threading.CancellationToken cancellationToken) => throw null; - protected override void Dispose(bool disposing) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public System.Net.Http.HeaderEncodingSelector HeaderEncodingSelector { get => throw null; set => throw null; } - public MultipartContent() => throw null; - public MultipartContent(string subtype) => throw null; - public MultipartContent(string subtype, string boundary) => throw null; - protected override void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context) => throw null; - protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override bool TryComputeLength(out System.Int64 length) => throw null; - } - - public class MultipartFormDataContent : System.Net.Http.MultipartContent - { - public override void Add(System.Net.Http.HttpContent content) => throw null; - public void Add(System.Net.Http.HttpContent content, string name) => throw null; - public void Add(System.Net.Http.HttpContent content, string name, string fileName) => throw null; - public MultipartFormDataContent() => throw null; - public MultipartFormDataContent(string boundary) => throw null; - protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - } - - public class ReadOnlyMemoryContent : System.Net.Http.HttpContent - { - protected override System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; - protected override System.Threading.Tasks.Task CreateContentReadStreamAsync() => throw null; - public ReadOnlyMemoryContent(System.ReadOnlyMemory content) => throw null; - protected override void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context) => throw null; - protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override bool TryComputeLength(out System.Int64 length) => throw null; - } - - public class SocketsHttpConnectionContext - { - public System.Net.DnsEndPoint DnsEndPoint { get => throw null; } - public System.Net.Http.HttpRequestMessage InitialRequestMessage { get => throw null; } - } - - public class SocketsHttpHandler : System.Net.Http.HttpMessageHandler - { - public System.Diagnostics.DistributedContextPropagator ActivityHeadersPropagator { get => throw null; set => throw null; } - public bool AllowAutoRedirect { get => throw null; set => throw null; } - public System.Net.DecompressionMethods AutomaticDecompression { get => throw null; set => throw null; } - public System.Func> ConnectCallback { get => throw null; set => throw null; } - public System.TimeSpan ConnectTimeout { get => throw null; set => throw null; } - public System.Net.CookieContainer CookieContainer { get => throw null; set => throw null; } - public System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public System.Net.ICredentials DefaultProxyCredentials { get => throw null; set => throw null; } - protected override void Dispose(bool disposing) => throw null; - public bool EnableMultipleHttp2Connections { get => throw null; set => throw null; } - public System.TimeSpan Expect100ContinueTimeout { get => throw null; set => throw null; } - public int InitialHttp2StreamWindowSize { get => throw null; set => throw null; } - public static bool IsSupported { get => throw null; } - public System.TimeSpan KeepAlivePingDelay { get => throw null; set => throw null; } - public System.Net.Http.HttpKeepAlivePingPolicy KeepAlivePingPolicy { get => throw null; set => throw null; } - public System.TimeSpan KeepAlivePingTimeout { get => throw null; set => throw null; } - public int MaxAutomaticRedirections { get => throw null; set => throw null; } - public int MaxConnectionsPerServer { get => throw null; set => throw null; } - public int MaxResponseDrainSize { get => throw null; set => throw null; } - public int MaxResponseHeadersLength { get => throw null; set => throw null; } - public System.Func> PlaintextStreamFilter { get => throw null; set => throw null; } - public System.TimeSpan PooledConnectionIdleTimeout { get => throw null; set => throw null; } - public System.TimeSpan PooledConnectionLifetime { get => throw null; set => throw null; } - public bool PreAuthenticate { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; } - public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public System.Net.Http.HeaderEncodingSelector RequestHeaderEncodingSelector { get => throw null; set => throw null; } - public System.TimeSpan ResponseDrainTimeout { get => throw null; set => throw null; } - public System.Net.Http.HeaderEncodingSelector ResponseHeaderEncodingSelector { get => throw null; set => throw null; } - protected internal override System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; - public SocketsHttpHandler() => throw null; - public System.Net.Security.SslClientAuthenticationOptions SslOptions { get => throw null; set => throw null; } - public bool UseCookies { get => throw null; set => throw null; } - public bool UseProxy { get => throw null; set => throw null; } - } - - public class SocketsHttpPlaintextStreamFilterContext - { - public System.Net.Http.HttpRequestMessage InitialRequestMessage { get => throw null; } - public System.Version NegotiatedHttpVersion { get => throw null; } - public System.IO.Stream PlaintextStream { get => throw null; } - } - - public class StreamContent : System.Net.Http.HttpContent - { - protected override System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; - protected override System.Threading.Tasks.Task CreateContentReadStreamAsync() => throw null; - protected override void Dispose(bool disposing) => throw null; - protected override void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context) => throw null; - protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - public StreamContent(System.IO.Stream content) => throw null; - public StreamContent(System.IO.Stream content, int bufferSize) => throw null; - protected internal override bool TryComputeLength(out System.Int64 length) => throw null; - } - - public class StringContent : System.Net.Http.ByteArrayContent - { - protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; - public StringContent(string content) : base(default(System.Byte[])) => throw null; - public StringContent(string content, System.Text.Encoding encoding) : base(default(System.Byte[])) => throw null; - public StringContent(string content, System.Text.Encoding encoding, System.Net.Http.Headers.MediaTypeHeaderValue mediaType) : base(default(System.Byte[])) => throw null; - public StringContent(string content, System.Text.Encoding encoding, string mediaType) : base(default(System.Byte[])) => throw null; - public StringContent(string content, System.Net.Http.Headers.MediaTypeHeaderValue mediaType) : base(default(System.Byte[])) => throw null; - } - namespace Headers { public class AuthenticationHeaderValue : System.ICloneable { + object System.ICloneable.Clone() => throw null; public AuthenticationHeaderValue(string scheme) => throw null; public AuthenticationHeaderValue(string scheme, string parameter) => throw null; - object System.ICloneable.Clone() => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string Parameter { get => throw null; } @@ -445,74 +52,70 @@ namespace System public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.AuthenticationHeaderValue parsedValue) => throw null; } - public class CacheControlHeaderValue : System.ICloneable { - public CacheControlHeaderValue() => throw null; object System.ICloneable.Clone() => throw null; + public CacheControlHeaderValue() => throw null; public override bool Equals(object obj) => throw null; public System.Collections.Generic.ICollection Extensions { get => throw null; } public override int GetHashCode() => throw null; - public System.TimeSpan? MaxAge { get => throw null; set => throw null; } - public bool MaxStale { get => throw null; set => throw null; } - public System.TimeSpan? MaxStaleLimit { get => throw null; set => throw null; } - public System.TimeSpan? MinFresh { get => throw null; set => throw null; } - public bool MustRevalidate { get => throw null; set => throw null; } - public bool NoCache { get => throw null; set => throw null; } + public System.TimeSpan? MaxAge { get => throw null; set { } } + public bool MaxStale { get => throw null; set { } } + public System.TimeSpan? MaxStaleLimit { get => throw null; set { } } + public System.TimeSpan? MinFresh { get => throw null; set { } } + public bool MustRevalidate { get => throw null; set { } } + public bool NoCache { get => throw null; set { } } public System.Collections.Generic.ICollection NoCacheHeaders { get => throw null; } - public bool NoStore { get => throw null; set => throw null; } - public bool NoTransform { get => throw null; set => throw null; } - public bool OnlyIfCached { get => throw null; set => throw null; } + public bool NoStore { get => throw null; set { } } + public bool NoTransform { get => throw null; set { } } + public bool OnlyIfCached { get => throw null; set { } } public static System.Net.Http.Headers.CacheControlHeaderValue Parse(string input) => throw null; - public bool Private { get => throw null; set => throw null; } + public bool Private { get => throw null; set { } } public System.Collections.Generic.ICollection PrivateHeaders { get => throw null; } - public bool ProxyRevalidate { get => throw null; set => throw null; } - public bool Public { get => throw null; set => throw null; } - public System.TimeSpan? SharedMaxAge { get => throw null; set => throw null; } + public bool ProxyRevalidate { get => throw null; set { } } + public bool Public { get => throw null; set { } } + public System.TimeSpan? SharedMaxAge { get => throw null; set { } } public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.CacheControlHeaderValue parsedValue) => throw null; } - public class ContentDispositionHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; + public System.DateTimeOffset? CreationDate { get => throw null; set { } } protected ContentDispositionHeaderValue(System.Net.Http.Headers.ContentDispositionHeaderValue source) => throw null; public ContentDispositionHeaderValue(string dispositionType) => throw null; - public System.DateTimeOffset? CreationDate { get => throw null; set => throw null; } - public string DispositionType { get => throw null; set => throw null; } + public string DispositionType { get => throw null; set { } } public override bool Equals(object obj) => throw null; - public string FileName { get => throw null; set => throw null; } - public string FileNameStar { get => throw null; set => throw null; } + public string FileName { get => throw null; set { } } + public string FileNameStar { get => throw null; set { } } public override int GetHashCode() => throw null; - public System.DateTimeOffset? ModificationDate { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } + public System.DateTimeOffset? ModificationDate { get => throw null; set { } } + public string Name { get => throw null; set { } } public System.Collections.Generic.ICollection Parameters { get => throw null; } public static System.Net.Http.Headers.ContentDispositionHeaderValue Parse(string input) => throw null; - public System.DateTimeOffset? ReadDate { get => throw null; set => throw null; } - public System.Int64? Size { get => throw null; set => throw null; } + public System.DateTimeOffset? ReadDate { get => throw null; set { } } + public long? Size { get => throw null; set { } } public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.ContentDispositionHeaderValue parsedValue) => throw null; } - public class ContentRangeHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; - public ContentRangeHeaderValue(System.Int64 length) => throw null; - public ContentRangeHeaderValue(System.Int64 from, System.Int64 to) => throw null; - public ContentRangeHeaderValue(System.Int64 from, System.Int64 to, System.Int64 length) => throw null; + public ContentRangeHeaderValue(long length) => throw null; + public ContentRangeHeaderValue(long from, long to) => throw null; + public ContentRangeHeaderValue(long from, long to, long length) => throw null; public override bool Equals(object obj) => throw null; - public System.Int64? From { get => throw null; } + public long? From { get => throw null; } public override int GetHashCode() => throw null; public bool HasLength { get => throw null; } public bool HasRange { get => throw null; } - public System.Int64? Length { get => throw null; } + public long? Length { get => throw null; } public static System.Net.Http.Headers.ContentRangeHeaderValue Parse(string input) => throw null; - public System.Int64? To { get => throw null; } + public long? To { get => throw null; } public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.ContentRangeHeaderValue parsedValue) => throw null; - public string Unit { get => throw null; set => throw null; } + public string Unit { get => throw null; set { } } } - public class EntityTagHeaderValue : System.ICloneable { public static System.Net.Http.Headers.EntityTagHeaderValue Any { get => throw null; } @@ -527,44 +130,76 @@ namespace System public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.EntityTagHeaderValue parsedValue) => throw null; } - - public struct HeaderStringValues : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct HeaderStringValues : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public string Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Net.Http.Headers.HeaderStringValues.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor public override string ToString() => throw null; } - - public class HttpContentHeaders : System.Net.Http.Headers.HttpHeaders + public sealed class HttpContentHeaders : System.Net.Http.Headers.HttpHeaders { public System.Collections.Generic.ICollection Allow { get => throw null; } - public System.Net.Http.Headers.ContentDispositionHeaderValue ContentDisposition { get => throw null; set => throw null; } + public System.Net.Http.Headers.ContentDispositionHeaderValue ContentDisposition { get => throw null; set { } } public System.Collections.Generic.ICollection ContentEncoding { get => throw null; } public System.Collections.Generic.ICollection ContentLanguage { get => throw null; } - public System.Int64? ContentLength { get => throw null; set => throw null; } - public System.Uri ContentLocation { get => throw null; set => throw null; } - public System.Byte[] ContentMD5 { get => throw null; set => throw null; } - public System.Net.Http.Headers.ContentRangeHeaderValue ContentRange { get => throw null; set => throw null; } - public System.Net.Http.Headers.MediaTypeHeaderValue ContentType { get => throw null; set => throw null; } - public System.DateTimeOffset? Expires { get => throw null; set => throw null; } - public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } + public long? ContentLength { get => throw null; set { } } + public System.Uri ContentLocation { get => throw null; set { } } + public byte[] ContentMD5 { get => throw null; set { } } + public System.Net.Http.Headers.ContentRangeHeaderValue ContentRange { get => throw null; set { } } + public System.Net.Http.Headers.MediaTypeHeaderValue ContentType { get => throw null; set { } } + public System.DateTimeOffset? Expires { get => throw null; set { } } + public System.DateTimeOffset? LastModified { get => throw null; set { } } } - - public class HttpHeaderValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable where T : class + public abstract class HttpHeaders : System.Collections.Generic.IEnumerable>>, System.Collections.IEnumerable + { + public void Add(string name, System.Collections.Generic.IEnumerable values) => throw null; + public void Add(string name, string value) => throw null; + public void Clear() => throw null; + public bool Contains(string name) => throw null; + protected HttpHeaders() => throw null; + public System.Collections.Generic.IEnumerator>> GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerable GetValues(string name) => throw null; + public System.Net.Http.Headers.HttpHeadersNonValidated NonValidated { get => throw null; } + public bool Remove(string name) => throw null; + public override string ToString() => throw null; + public bool TryAddWithoutValidation(string name, System.Collections.Generic.IEnumerable values) => throw null; + public bool TryAddWithoutValidation(string name, string value) => throw null; + public bool TryGetValues(string name, out System.Collections.Generic.IEnumerable values) => throw null; + } + public struct HttpHeadersNonValidated : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary + { + public bool Contains(string headerName) => throw null; + bool System.Collections.Generic.IReadOnlyDictionary.ContainsKey(string key) => throw null; + public int Count { get => throw null; } + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + { + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + public System.Net.Http.Headers.HttpHeadersNonValidated.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } + public System.Net.Http.Headers.HeaderStringValues this[string headerName] { get => throw null; } + bool System.Collections.Generic.IReadOnlyDictionary.TryGetValue(string key, out System.Net.Http.Headers.HeaderStringValues value) => throw null; + public bool TryGetValues(string headerName, out System.Net.Http.Headers.HeaderStringValues values) => throw null; + System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } + } + public sealed class HttpHeaderValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable where T : class { public void Add(T item) => throw null; public void Clear() => throw null; @@ -579,292 +214,234 @@ namespace System public override string ToString() => throw null; public bool TryParseAdd(string input) => throw null; } - - public abstract class HttpHeaders : System.Collections.Generic.IEnumerable>>, System.Collections.IEnumerable - { - public void Add(string name, System.Collections.Generic.IEnumerable values) => throw null; - public void Add(string name, string value) => throw null; - public void Clear() => throw null; - public bool Contains(string name) => throw null; - public System.Collections.Generic.IEnumerator>> GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public System.Collections.Generic.IEnumerable GetValues(string name) => throw null; - protected HttpHeaders() => throw null; - public System.Net.Http.Headers.HttpHeadersNonValidated NonValidated { get => throw null; } - public bool Remove(string name) => throw null; - public override string ToString() => throw null; - public bool TryAddWithoutValidation(string name, System.Collections.Generic.IEnumerable values) => throw null; - public bool TryAddWithoutValidation(string name, string value) => throw null; - public bool TryGetValues(string name, out System.Collections.Generic.IEnumerable values) => throw null; - } - - public struct HttpHeadersNonValidated : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.IEnumerable - { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - public bool Contains(string headerName) => throw null; - bool System.Collections.Generic.IReadOnlyDictionary.ContainsKey(string key) => throw null; - public int Count { get => throw null; } - public System.Net.Http.Headers.HttpHeadersNonValidated.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor - public System.Net.Http.Headers.HeaderStringValues this[string headerName] { get => throw null; } - System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } - bool System.Collections.Generic.IReadOnlyDictionary.TryGetValue(string key, out System.Net.Http.Headers.HeaderStringValues value) => throw null; - public bool TryGetValues(string headerName, out System.Net.Http.Headers.HeaderStringValues values) => throw null; - System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } - } - - public class HttpRequestHeaders : System.Net.Http.Headers.HttpHeaders + public sealed class HttpRequestHeaders : System.Net.Http.Headers.HttpHeaders { public System.Net.Http.Headers.HttpHeaderValueCollection Accept { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection AcceptCharset { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection AcceptEncoding { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection AcceptLanguage { get => throw null; } - public System.Net.Http.Headers.AuthenticationHeaderValue Authorization { get => throw null; set => throw null; } - public System.Net.Http.Headers.CacheControlHeaderValue CacheControl { get => throw null; set => throw null; } + public System.Net.Http.Headers.AuthenticationHeaderValue Authorization { get => throw null; set { } } + public System.Net.Http.Headers.CacheControlHeaderValue CacheControl { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection Connection { get => throw null; } - public bool? ConnectionClose { get => throw null; set => throw null; } - public System.DateTimeOffset? Date { get => throw null; set => throw null; } + public bool? ConnectionClose { get => throw null; set { } } + public System.DateTimeOffset? Date { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection Expect { get => throw null; } - public bool? ExpectContinue { get => throw null; set => throw null; } - public string From { get => throw null; set => throw null; } - public string Host { get => throw null; set => throw null; } + public bool? ExpectContinue { get => throw null; set { } } + public string From { get => throw null; set { } } + public string Host { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection IfMatch { get => throw null; } - public System.DateTimeOffset? IfModifiedSince { get => throw null; set => throw null; } + public System.DateTimeOffset? IfModifiedSince { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection IfNoneMatch { get => throw null; } - public System.Net.Http.Headers.RangeConditionHeaderValue IfRange { get => throw null; set => throw null; } - public System.DateTimeOffset? IfUnmodifiedSince { get => throw null; set => throw null; } - public int? MaxForwards { get => throw null; set => throw null; } + public System.Net.Http.Headers.RangeConditionHeaderValue IfRange { get => throw null; set { } } + public System.DateTimeOffset? IfUnmodifiedSince { get => throw null; set { } } + public int? MaxForwards { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection Pragma { get => throw null; } - public string Protocol { get => throw null; set => throw null; } - public System.Net.Http.Headers.AuthenticationHeaderValue ProxyAuthorization { get => throw null; set => throw null; } - public System.Net.Http.Headers.RangeHeaderValue Range { get => throw null; set => throw null; } - public System.Uri Referrer { get => throw null; set => throw null; } + public string Protocol { get => throw null; set { } } + public System.Net.Http.Headers.AuthenticationHeaderValue ProxyAuthorization { get => throw null; set { } } + public System.Net.Http.Headers.RangeHeaderValue Range { get => throw null; set { } } + public System.Uri Referrer { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection TE { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection Trailer { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection TransferEncoding { get => throw null; } - public bool? TransferEncodingChunked { get => throw null; set => throw null; } + public bool? TransferEncodingChunked { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection Upgrade { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection UserAgent { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection Via { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection Warning { get => throw null; } } - - public class HttpResponseHeaders : System.Net.Http.Headers.HttpHeaders + public sealed class HttpResponseHeaders : System.Net.Http.Headers.HttpHeaders { public System.Net.Http.Headers.HttpHeaderValueCollection AcceptRanges { get => throw null; } - public System.TimeSpan? Age { get => throw null; set => throw null; } - public System.Net.Http.Headers.CacheControlHeaderValue CacheControl { get => throw null; set => throw null; } + public System.TimeSpan? Age { get => throw null; set { } } + public System.Net.Http.Headers.CacheControlHeaderValue CacheControl { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection Connection { get => throw null; } - public bool? ConnectionClose { get => throw null; set => throw null; } - public System.DateTimeOffset? Date { get => throw null; set => throw null; } - public System.Net.Http.Headers.EntityTagHeaderValue ETag { get => throw null; set => throw null; } - public System.Uri Location { get => throw null; set => throw null; } + public bool? ConnectionClose { get => throw null; set { } } + public System.DateTimeOffset? Date { get => throw null; set { } } + public System.Net.Http.Headers.EntityTagHeaderValue ETag { get => throw null; set { } } + public System.Uri Location { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection Pragma { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection ProxyAuthenticate { get => throw null; } - public System.Net.Http.Headers.RetryConditionHeaderValue RetryAfter { get => throw null; set => throw null; } + public System.Net.Http.Headers.RetryConditionHeaderValue RetryAfter { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection Server { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection Trailer { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection TransferEncoding { get => throw null; } - public bool? TransferEncodingChunked { get => throw null; set => throw null; } + public bool? TransferEncodingChunked { get => throw null; set { } } public System.Net.Http.Headers.HttpHeaderValueCollection Upgrade { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection Vary { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection Via { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection Warning { get => throw null; } public System.Net.Http.Headers.HttpHeaderValueCollection WwwAuthenticate { get => throw null; } } - public class MediaTypeHeaderValue : System.ICloneable { - public string CharSet { get => throw null; set => throw null; } + public string CharSet { get => throw null; set { } } object System.ICloneable.Clone() => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public string MediaType { get => throw null; set => throw null; } protected MediaTypeHeaderValue(System.Net.Http.Headers.MediaTypeHeaderValue source) => throw null; public MediaTypeHeaderValue(string mediaType) => throw null; public MediaTypeHeaderValue(string mediaType, string charSet) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public string MediaType { get => throw null; set { } } public System.Collections.Generic.ICollection Parameters { get => throw null; } public static System.Net.Http.Headers.MediaTypeHeaderValue Parse(string input) => throw null; public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.MediaTypeHeaderValue parsedValue) => throw null; } - - public class MediaTypeWithQualityHeaderValue : System.Net.Http.Headers.MediaTypeHeaderValue, System.ICloneable + public sealed class MediaTypeWithQualityHeaderValue : System.Net.Http.Headers.MediaTypeHeaderValue, System.ICloneable { object System.ICloneable.Clone() => throw null; public MediaTypeWithQualityHeaderValue(string mediaType) : base(default(System.Net.Http.Headers.MediaTypeHeaderValue)) => throw null; public MediaTypeWithQualityHeaderValue(string mediaType, double quality) : base(default(System.Net.Http.Headers.MediaTypeHeaderValue)) => throw null; public static System.Net.Http.Headers.MediaTypeWithQualityHeaderValue Parse(string input) => throw null; - public double? Quality { get => throw null; set => throw null; } + public double? Quality { get => throw null; set { } } public static bool TryParse(string input, out System.Net.Http.Headers.MediaTypeWithQualityHeaderValue parsedValue) => throw null; } - public class NameValueHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public string Name { get => throw null; } protected NameValueHeaderValue(System.Net.Http.Headers.NameValueHeaderValue source) => throw null; public NameValueHeaderValue(string name) => throw null; public NameValueHeaderValue(string name, string value) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public string Name { get => throw null; } public static System.Net.Http.Headers.NameValueHeaderValue Parse(string input) => throw null; public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.NameValueHeaderValue parsedValue) => throw null; - public string Value { get => throw null; set => throw null; } + public string Value { get => throw null; set { } } } - public class NameValueWithParametersHeaderValue : System.Net.Http.Headers.NameValueHeaderValue, System.ICloneable { object System.ICloneable.Clone() => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; protected NameValueWithParametersHeaderValue(System.Net.Http.Headers.NameValueWithParametersHeaderValue source) : base(default(System.Net.Http.Headers.NameValueHeaderValue)) => throw null; public NameValueWithParametersHeaderValue(string name) : base(default(System.Net.Http.Headers.NameValueHeaderValue)) => throw null; public NameValueWithParametersHeaderValue(string name, string value) : base(default(System.Net.Http.Headers.NameValueHeaderValue)) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; public System.Collections.Generic.ICollection Parameters { get => throw null; } public static System.Net.Http.Headers.NameValueWithParametersHeaderValue Parse(string input) => throw null; public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.NameValueWithParametersHeaderValue parsedValue) => throw null; } - public class ProductHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; + public ProductHeaderValue(string name) => throw null; + public ProductHeaderValue(string name, string version) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string Name { get => throw null; } public static System.Net.Http.Headers.ProductHeaderValue Parse(string input) => throw null; - public ProductHeaderValue(string name) => throw null; - public ProductHeaderValue(string name, string version) => throw null; public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.ProductHeaderValue parsedValue) => throw null; public string Version { get => throw null; } } - public class ProductInfoHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; public string Comment { get => throw null; } + public ProductInfoHeaderValue(System.Net.Http.Headers.ProductHeaderValue product) => throw null; + public ProductInfoHeaderValue(string comment) => throw null; + public ProductInfoHeaderValue(string productName, string productVersion) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static System.Net.Http.Headers.ProductInfoHeaderValue Parse(string input) => throw null; public System.Net.Http.Headers.ProductHeaderValue Product { get => throw null; } - public ProductInfoHeaderValue(System.Net.Http.Headers.ProductHeaderValue product) => throw null; - public ProductInfoHeaderValue(string comment) => throw null; - public ProductInfoHeaderValue(string productName, string productVersion) => throw null; public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.ProductInfoHeaderValue parsedValue) => throw null; } - public class RangeConditionHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; + public RangeConditionHeaderValue(System.DateTimeOffset date) => throw null; + public RangeConditionHeaderValue(System.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; + public RangeConditionHeaderValue(string entityTag) => throw null; public System.DateTimeOffset? Date { get => throw null; } public System.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; } public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static System.Net.Http.Headers.RangeConditionHeaderValue Parse(string input) => throw null; - public RangeConditionHeaderValue(System.DateTimeOffset date) => throw null; - public RangeConditionHeaderValue(System.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; - public RangeConditionHeaderValue(string entityTag) => throw null; public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.RangeConditionHeaderValue parsedValue) => throw null; } - public class RangeHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; + public RangeHeaderValue() => throw null; + public RangeHeaderValue(long? from, long? to) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static System.Net.Http.Headers.RangeHeaderValue Parse(string input) => throw null; - public RangeHeaderValue() => throw null; - public RangeHeaderValue(System.Int64? from, System.Int64? to) => throw null; public System.Collections.Generic.ICollection Ranges { get => throw null; } public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.RangeHeaderValue parsedValue) => throw null; - public string Unit { get => throw null; set => throw null; } + public string Unit { get => throw null; set { } } } - public class RangeItemHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; + public RangeItemHeaderValue(long? from, long? to) => throw null; public override bool Equals(object obj) => throw null; - public System.Int64? From { get => throw null; } + public long? From { get => throw null; } public override int GetHashCode() => throw null; - public RangeItemHeaderValue(System.Int64? from, System.Int64? to) => throw null; - public System.Int64? To { get => throw null; } + public long? To { get => throw null; } public override string ToString() => throw null; } - public class RetryConditionHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; + public RetryConditionHeaderValue(System.DateTimeOffset date) => throw null; + public RetryConditionHeaderValue(System.TimeSpan delta) => throw null; public System.DateTimeOffset? Date { get => throw null; } public System.TimeSpan? Delta { get => throw null; } public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static System.Net.Http.Headers.RetryConditionHeaderValue Parse(string input) => throw null; - public RetryConditionHeaderValue(System.DateTimeOffset date) => throw null; - public RetryConditionHeaderValue(System.TimeSpan delta) => throw null; public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.RetryConditionHeaderValue parsedValue) => throw null; } - public class StringWithQualityHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; + public StringWithQualityHeaderValue(string value) => throw null; + public StringWithQualityHeaderValue(string value, double quality) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static System.Net.Http.Headers.StringWithQualityHeaderValue Parse(string input) => throw null; public double? Quality { get => throw null; } - public StringWithQualityHeaderValue(string value) => throw null; - public StringWithQualityHeaderValue(string value, double quality) => throw null; public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.StringWithQualityHeaderValue parsedValue) => throw null; public string Value { get => throw null; } } - public class TransferCodingHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; + protected TransferCodingHeaderValue(System.Net.Http.Headers.TransferCodingHeaderValue source) => throw null; + public TransferCodingHeaderValue(string value) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public System.Collections.Generic.ICollection Parameters { get => throw null; } public static System.Net.Http.Headers.TransferCodingHeaderValue Parse(string input) => throw null; public override string ToString() => throw null; - protected TransferCodingHeaderValue(System.Net.Http.Headers.TransferCodingHeaderValue source) => throw null; - public TransferCodingHeaderValue(string value) => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.TransferCodingHeaderValue parsedValue) => throw null; public string Value { get => throw null; } } - - public class TransferCodingWithQualityHeaderValue : System.Net.Http.Headers.TransferCodingHeaderValue, System.ICloneable + public sealed class TransferCodingWithQualityHeaderValue : System.Net.Http.Headers.TransferCodingHeaderValue, System.ICloneable { object System.ICloneable.Clone() => throw null; - public static System.Net.Http.Headers.TransferCodingWithQualityHeaderValue Parse(string input) => throw null; - public double? Quality { get => throw null; set => throw null; } public TransferCodingWithQualityHeaderValue(string value) : base(default(System.Net.Http.Headers.TransferCodingHeaderValue)) => throw null; public TransferCodingWithQualityHeaderValue(string value, double quality) : base(default(System.Net.Http.Headers.TransferCodingHeaderValue)) => throw null; + public static System.Net.Http.Headers.TransferCodingWithQualityHeaderValue Parse(string input) => throw null; + public double? Quality { get => throw null; set { } } public static bool TryParse(string input, out System.Net.Http.Headers.TransferCodingWithQualityHeaderValue parsedValue) => throw null; } - public class ViaHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; public string Comment { get => throw null; } + public ViaHeaderValue(string protocolVersion, string receivedBy) => throw null; + public ViaHeaderValue(string protocolVersion, string receivedBy, string protocolName) => throw null; + public ViaHeaderValue(string protocolVersion, string receivedBy, string protocolName, string comment) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static System.Net.Http.Headers.ViaHeaderValue Parse(string input) => throw null; @@ -873,16 +450,14 @@ namespace System public string ReceivedBy { get => throw null; } public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.ViaHeaderValue parsedValue) => throw null; - public ViaHeaderValue(string protocolVersion, string receivedBy) => throw null; - public ViaHeaderValue(string protocolVersion, string receivedBy, string protocolName) => throw null; - public ViaHeaderValue(string protocolVersion, string receivedBy, string protocolName, string comment) => throw null; } - public class WarningHeaderValue : System.ICloneable { public string Agent { get => throw null; } object System.ICloneable.Clone() => throw null; public int Code { get => throw null; } + public WarningHeaderValue(int code, string agent, string text) => throw null; + public WarningHeaderValue(int code, string agent, string text, System.DateTimeOffset date) => throw null; public System.DateTimeOffset? Date { get => throw null; } public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; @@ -890,10 +465,369 @@ namespace System public string Text { get => throw null; } public override string ToString() => throw null; public static bool TryParse(string input, out System.Net.Http.Headers.WarningHeaderValue parsedValue) => throw null; - public WarningHeaderValue(int code, string agent, string text) => throw null; - public WarningHeaderValue(int code, string agent, string text, System.DateTimeOffset date) => throw null; } - + } + public class HttpClient : System.Net.Http.HttpMessageInvoker + { + public System.Uri BaseAddress { get => throw null; set { } } + public void CancelPendingRequests() => throw null; + public HttpClient() : base(default(System.Net.Http.HttpMessageHandler)) => throw null; + public HttpClient(System.Net.Http.HttpMessageHandler handler) : base(default(System.Net.Http.HttpMessageHandler)) => throw null; + public HttpClient(System.Net.Http.HttpMessageHandler handler, bool disposeHandler) : base(default(System.Net.Http.HttpMessageHandler)) => throw null; + public static System.Net.IWebProxy DefaultProxy { get => throw null; set { } } + public System.Net.Http.Headers.HttpRequestHeaders DefaultRequestHeaders { get => throw null; } + public System.Version DefaultRequestVersion { get => throw null; set { } } + public System.Net.Http.HttpVersionPolicy DefaultVersionPolicy { get => throw null; set { } } + public System.Threading.Tasks.Task DeleteAsync(string requestUri) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task DeleteAsync(System.Uri requestUri) => throw null; + public System.Threading.Tasks.Task DeleteAsync(System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + protected override void Dispose(bool disposing) => throw null; + public System.Threading.Tasks.Task GetAsync(string requestUri) => throw null; + public System.Threading.Tasks.Task GetAsync(string requestUri, System.Net.Http.HttpCompletionOption completionOption) => throw null; + public System.Threading.Tasks.Task GetAsync(string requestUri, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetAsync(string requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetAsync(System.Uri requestUri) => throw null; + public System.Threading.Tasks.Task GetAsync(System.Uri requestUri, System.Net.Http.HttpCompletionOption completionOption) => throw null; + public System.Threading.Tasks.Task GetAsync(System.Uri requestUri, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetAsync(System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetByteArrayAsync(string requestUri) => throw null; + public System.Threading.Tasks.Task GetByteArrayAsync(string requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetByteArrayAsync(System.Uri requestUri) => throw null; + public System.Threading.Tasks.Task GetByteArrayAsync(System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetStreamAsync(string requestUri) => throw null; + public System.Threading.Tasks.Task GetStreamAsync(string requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetStreamAsync(System.Uri requestUri) => throw null; + public System.Threading.Tasks.Task GetStreamAsync(System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetStringAsync(string requestUri) => throw null; + public System.Threading.Tasks.Task GetStringAsync(string requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetStringAsync(System.Uri requestUri) => throw null; + public System.Threading.Tasks.Task GetStringAsync(System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + public long MaxResponseContentBufferSize { get => throw null; set { } } + public System.Threading.Tasks.Task PatchAsync(string requestUri, System.Net.Http.HttpContent content) => throw null; + public System.Threading.Tasks.Task PatchAsync(string requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task PatchAsync(System.Uri requestUri, System.Net.Http.HttpContent content) => throw null; + public System.Threading.Tasks.Task PatchAsync(System.Uri requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task PostAsync(string requestUri, System.Net.Http.HttpContent content) => throw null; + public System.Threading.Tasks.Task PostAsync(string requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task PostAsync(System.Uri requestUri, System.Net.Http.HttpContent content) => throw null; + public System.Threading.Tasks.Task PostAsync(System.Uri requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task PutAsync(string requestUri, System.Net.Http.HttpContent content) => throw null; + public System.Threading.Tasks.Task PutAsync(string requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task PutAsync(System.Uri requestUri, System.Net.Http.HttpContent content) => throw null; + public System.Threading.Tasks.Task PutAsync(System.Uri requestUri, System.Net.Http.HttpContent content, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request) => throw null; + public System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption) => throw null; + public System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request) => throw null; + public System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption) => throw null; + public System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + public System.TimeSpan Timeout { get => throw null; set { } } + } + public class HttpClientHandler : System.Net.Http.HttpMessageHandler + { + public bool AllowAutoRedirect { get => throw null; set { } } + public System.Net.DecompressionMethods AutomaticDecompression { get => throw null; set { } } + public bool CheckCertificateRevocationList { get => throw null; set { } } + public System.Net.Http.ClientCertificateOption ClientCertificateOptions { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; } + public System.Net.CookieContainer CookieContainer { get => throw null; set { } } + public System.Net.ICredentials Credentials { get => throw null; set { } } + public HttpClientHandler() => throw null; + public static System.Func DangerousAcceptAnyServerCertificateValidator { get => throw null; } + public System.Net.ICredentials DefaultProxyCredentials { get => throw null; set { } } + protected override void Dispose(bool disposing) => throw null; + public int MaxAutomaticRedirections { get => throw null; set { } } + public int MaxConnectionsPerServer { get => throw null; set { } } + public long MaxRequestContentBufferSize { get => throw null; set { } } + public int MaxResponseHeadersLength { get => throw null; set { } } + public bool PreAuthenticate { get => throw null; set { } } + public System.Collections.Generic.IDictionary Properties { get => throw null; } + public System.Net.IWebProxy Proxy { get => throw null; set { } } + protected override System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Func ServerCertificateCustomValidationCallback { get => throw null; set { } } + public System.Security.Authentication.SslProtocols SslProtocols { get => throw null; set { } } + public virtual bool SupportsAutomaticDecompression { get => throw null; } + public virtual bool SupportsProxy { get => throw null; } + public virtual bool SupportsRedirectConfiguration { get => throw null; } + public bool UseCookies { get => throw null; set { } } + public bool UseDefaultCredentials { get => throw null; set { } } + public bool UseProxy { get => throw null; set { } } + } + public enum HttpCompletionOption + { + ResponseContentRead = 0, + ResponseHeadersRead = 1, + } + public abstract class HttpContent : System.IDisposable + { + public void CopyTo(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream stream) => throw null; + public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream stream, System.Net.TransportContext context) => throw null; + public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken) => throw null; + protected virtual System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; + protected virtual System.Threading.Tasks.Task CreateContentReadStreamAsync() => throw null; + protected virtual System.Threading.Tasks.Task CreateContentReadStreamAsync(System.Threading.CancellationToken cancellationToken) => throw null; + protected HttpContent() => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public System.Net.Http.Headers.HttpContentHeaders Headers { get => throw null; } + public System.Threading.Tasks.Task LoadIntoBufferAsync() => throw null; + public System.Threading.Tasks.Task LoadIntoBufferAsync(long maxBufferSize) => throw null; + public System.Threading.Tasks.Task ReadAsByteArrayAsync() => throw null; + public System.Threading.Tasks.Task ReadAsByteArrayAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public System.IO.Stream ReadAsStream() => throw null; + public System.IO.Stream ReadAsStream(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ReadAsStreamAsync() => throw null; + public System.Threading.Tasks.Task ReadAsStreamAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ReadAsStringAsync() => throw null; + public System.Threading.Tasks.Task ReadAsStringAsync(System.Threading.CancellationToken cancellationToken) => throw null; + protected virtual void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + protected abstract System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context); + protected virtual System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + protected abstract bool TryComputeLength(out long length); + } + public enum HttpKeepAlivePingPolicy + { + WithActiveRequests = 0, + Always = 1, + } + public abstract class HttpMessageHandler : System.IDisposable + { + protected HttpMessageHandler() => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + protected virtual System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + protected abstract System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken); + } + public class HttpMessageInvoker : System.IDisposable + { + public HttpMessageInvoker(System.Net.Http.HttpMessageHandler handler) => throw null; + public HttpMessageInvoker(System.Net.Http.HttpMessageHandler handler, bool disposeHandler) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public virtual System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class HttpMethod : System.IEquatable + { + public static System.Net.Http.HttpMethod Connect { get => throw null; } + public HttpMethod(string method) => throw null; + public static System.Net.Http.HttpMethod Delete { get => throw null; } + public bool Equals(System.Net.Http.HttpMethod other) => throw null; + public override bool Equals(object obj) => throw null; + public static System.Net.Http.HttpMethod Get { get => throw null; } + public override int GetHashCode() => throw null; + public static System.Net.Http.HttpMethod Head { get => throw null; } + public string Method { get => throw null; } + public static bool operator ==(System.Net.Http.HttpMethod left, System.Net.Http.HttpMethod right) => throw null; + public static bool operator !=(System.Net.Http.HttpMethod left, System.Net.Http.HttpMethod right) => throw null; + public static System.Net.Http.HttpMethod Options { get => throw null; } + public static System.Net.Http.HttpMethod Patch { get => throw null; } + public static System.Net.Http.HttpMethod Post { get => throw null; } + public static System.Net.Http.HttpMethod Put { get => throw null; } + public override string ToString() => throw null; + public static System.Net.Http.HttpMethod Trace { get => throw null; } + } + public sealed class HttpProtocolException : System.IO.IOException + { + public HttpProtocolException(long errorCode, string message, System.Exception innerException) => throw null; + public long ErrorCode { get => throw null; } + } + public class HttpRequestException : System.Exception + { + public HttpRequestException() => throw null; + public HttpRequestException(string message) => throw null; + public HttpRequestException(string message, System.Exception inner) => throw null; + public HttpRequestException(string message, System.Exception inner, System.Net.HttpStatusCode? statusCode) => throw null; + public System.Net.HttpStatusCode? StatusCode { get => throw null; } + } + public class HttpRequestMessage : System.IDisposable + { + public System.Net.Http.HttpContent Content { get => throw null; set { } } + public HttpRequestMessage() => throw null; + public HttpRequestMessage(System.Net.Http.HttpMethod method, string requestUri) => throw null; + public HttpRequestMessage(System.Net.Http.HttpMethod method, System.Uri requestUri) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public System.Net.Http.Headers.HttpRequestHeaders Headers { get => throw null; } + public System.Net.Http.HttpMethod Method { get => throw null; set { } } + public System.Net.Http.HttpRequestOptions Options { get => throw null; } + public System.Collections.Generic.IDictionary Properties { get => throw null; } + public System.Uri RequestUri { get => throw null; set { } } + public override string ToString() => throw null; + public System.Version Version { get => throw null; set { } } + public System.Net.Http.HttpVersionPolicy VersionPolicy { get => throw null; set { } } + } + public sealed class HttpRequestOptions : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + void System.Collections.Generic.IDictionary.Add(string key, object value) => throw null; + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; + void System.Collections.Generic.ICollection>.Clear() => throw null; + bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair item) => throw null; + bool System.Collections.Generic.IDictionary.ContainsKey(string key) => throw null; + void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + int System.Collections.Generic.ICollection>.Count { get => throw null; } + public HttpRequestOptions() => throw null; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } + object System.Collections.Generic.IDictionary.this[string key] { get => throw null; set { } } + System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } + bool System.Collections.Generic.IDictionary.Remove(string key) => throw null; + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public void Set(System.Net.Http.HttpRequestOptionsKey key, TValue value) => throw null; + bool System.Collections.Generic.IDictionary.TryGetValue(string key, out object value) => throw null; + public bool TryGetValue(System.Net.Http.HttpRequestOptionsKey key, out TValue value) => throw null; + System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } + } + public struct HttpRequestOptionsKey + { + public HttpRequestOptionsKey(string key) => throw null; + public string Key { get => throw null; } + } + public class HttpResponseMessage : System.IDisposable + { + public System.Net.Http.HttpContent Content { get => throw null; set { } } + public HttpResponseMessage() => throw null; + public HttpResponseMessage(System.Net.HttpStatusCode statusCode) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public System.Net.Http.HttpResponseMessage EnsureSuccessStatusCode() => throw null; + public System.Net.Http.Headers.HttpResponseHeaders Headers { get => throw null; } + public bool IsSuccessStatusCode { get => throw null; } + public string ReasonPhrase { get => throw null; set { } } + public System.Net.Http.HttpRequestMessage RequestMessage { get => throw null; set { } } + public System.Net.HttpStatusCode StatusCode { get => throw null; set { } } + public override string ToString() => throw null; + public System.Net.Http.Headers.HttpResponseHeaders TrailingHeaders { get => throw null; } + public System.Version Version { get => throw null; set { } } + } + public enum HttpVersionPolicy + { + RequestVersionOrLower = 0, + RequestVersionOrHigher = 1, + RequestVersionExact = 2, + } + public abstract class MessageProcessingHandler : System.Net.Http.DelegatingHandler + { + protected MessageProcessingHandler() => throw null; + protected MessageProcessingHandler(System.Net.Http.HttpMessageHandler innerHandler) => throw null; + protected abstract System.Net.Http.HttpRequestMessage ProcessRequest(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken); + protected abstract System.Net.Http.HttpResponseMessage ProcessResponse(System.Net.Http.HttpResponseMessage response, System.Threading.CancellationToken cancellationToken); + protected override sealed System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + protected override sealed System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class MultipartContent : System.Net.Http.HttpContent, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public virtual void Add(System.Net.Http.HttpContent content) => throw null; + protected override System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task CreateContentReadStreamAsync() => throw null; + protected override System.Threading.Tasks.Task CreateContentReadStreamAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public MultipartContent() => throw null; + public MultipartContent(string subtype) => throw null; + public MultipartContent(string subtype, string boundary) => throw null; + protected override void Dispose(bool disposing) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Net.Http.HeaderEncodingSelector HeaderEncodingSelector { get => throw null; set { } } + protected override void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context) => throw null; + protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + protected override bool TryComputeLength(out long length) => throw null; + } + public class MultipartFormDataContent : System.Net.Http.MultipartContent + { + public override void Add(System.Net.Http.HttpContent content) => throw null; + public void Add(System.Net.Http.HttpContent content, string name) => throw null; + public void Add(System.Net.Http.HttpContent content, string name, string fileName) => throw null; + public MultipartFormDataContent() => throw null; + public MultipartFormDataContent(string boundary) => throw null; + protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + } + public sealed class ReadOnlyMemoryContent : System.Net.Http.HttpContent + { + protected override System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task CreateContentReadStreamAsync() => throw null; + public ReadOnlyMemoryContent(System.ReadOnlyMemory content) => throw null; + protected override void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context) => throw null; + protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + protected override bool TryComputeLength(out long length) => throw null; + } + public sealed class SocketsHttpConnectionContext + { + public System.Net.DnsEndPoint DnsEndPoint { get => throw null; } + public System.Net.Http.HttpRequestMessage InitialRequestMessage { get => throw null; } + } + public sealed class SocketsHttpHandler : System.Net.Http.HttpMessageHandler + { + public System.Diagnostics.DistributedContextPropagator ActivityHeadersPropagator { get => throw null; set { } } + public bool AllowAutoRedirect { get => throw null; set { } } + public System.Net.DecompressionMethods AutomaticDecompression { get => throw null; set { } } + public System.Func> ConnectCallback { get => throw null; set { } } + public System.TimeSpan ConnectTimeout { get => throw null; set { } } + public System.Net.CookieContainer CookieContainer { get => throw null; set { } } + public System.Net.ICredentials Credentials { get => throw null; set { } } + public SocketsHttpHandler() => throw null; + public System.Net.ICredentials DefaultProxyCredentials { get => throw null; set { } } + protected override void Dispose(bool disposing) => throw null; + public bool EnableMultipleHttp2Connections { get => throw null; set { } } + public System.TimeSpan Expect100ContinueTimeout { get => throw null; set { } } + public int InitialHttp2StreamWindowSize { get => throw null; set { } } + public static bool IsSupported { get => throw null; } + public System.TimeSpan KeepAlivePingDelay { get => throw null; set { } } + public System.Net.Http.HttpKeepAlivePingPolicy KeepAlivePingPolicy { get => throw null; set { } } + public System.TimeSpan KeepAlivePingTimeout { get => throw null; set { } } + public int MaxAutomaticRedirections { get => throw null; set { } } + public int MaxConnectionsPerServer { get => throw null; set { } } + public int MaxResponseDrainSize { get => throw null; set { } } + public int MaxResponseHeadersLength { get => throw null; set { } } + public System.Func> PlaintextStreamFilter { get => throw null; set { } } + public System.TimeSpan PooledConnectionIdleTimeout { get => throw null; set { } } + public System.TimeSpan PooledConnectionLifetime { get => throw null; set { } } + public bool PreAuthenticate { get => throw null; set { } } + public System.Collections.Generic.IDictionary Properties { get => throw null; } + public System.Net.IWebProxy Proxy { get => throw null; set { } } + public System.Net.Http.HeaderEncodingSelector RequestHeaderEncodingSelector { get => throw null; set { } } + public System.TimeSpan ResponseDrainTimeout { get => throw null; set { } } + public System.Net.Http.HeaderEncodingSelector ResponseHeaderEncodingSelector { get => throw null; set { } } + protected override System.Net.Http.HttpResponseMessage Send(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Net.Security.SslClientAuthenticationOptions SslOptions { get => throw null; set { } } + public bool UseCookies { get => throw null; set { } } + public bool UseProxy { get => throw null; set { } } + } + public sealed class SocketsHttpPlaintextStreamFilterContext + { + public System.Net.Http.HttpRequestMessage InitialRequestMessage { get => throw null; } + public System.Version NegotiatedHttpVersion { get => throw null; } + public System.IO.Stream PlaintextStream { get => throw null; } + } + public class StreamContent : System.Net.Http.HttpContent + { + protected override System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task CreateContentReadStreamAsync() => throw null; + public StreamContent(System.IO.Stream content) => throw null; + public StreamContent(System.IO.Stream content, int bufferSize) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected override void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context) => throw null; + protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; + protected override bool TryComputeLength(out long length) => throw null; + } + public class StringContent : System.Net.Http.ByteArrayContent + { + public StringContent(string content) : base(default(byte[])) => throw null; + public StringContent(string content, System.Net.Http.Headers.MediaTypeHeaderValue mediaType) : base(default(byte[])) => throw null; + public StringContent(string content, System.Text.Encoding encoding) : base(default(byte[])) => throw null; + public StringContent(string content, System.Text.Encoding encoding, System.Net.Http.Headers.MediaTypeHeaderValue mediaType) : base(default(byte[])) => throw null; + public StringContent(string content, System.Text.Encoding encoding, string mediaType) : base(default(byte[])) => throw null; + protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.HttpListener.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.HttpListener.cs index 954ca76fba4..6061d121607 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.HttpListener.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.HttpListener.cs @@ -1,67 +1,59 @@ // This file contains auto-generated code. // Generated from `System.Net.HttpListener, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Net { public delegate System.Net.AuthenticationSchemes AuthenticationSchemeSelector(System.Net.HttpListenerRequest httpRequest); - - public class HttpListener : System.IDisposable + public sealed class HttpListener : System.IDisposable { - public delegate System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy ExtendedProtectionSelector(System.Net.HttpListenerRequest request); - - public void Abort() => throw null; - public System.Net.AuthenticationSchemeSelector AuthenticationSchemeSelectorDelegate { get => throw null; set => throw null; } - public System.Net.AuthenticationSchemes AuthenticationSchemes { get => throw null; set => throw null; } + public System.Net.AuthenticationSchemes AuthenticationSchemes { get => throw null; set { } } + public System.Net.AuthenticationSchemeSelector AuthenticationSchemeSelectorDelegate { get => throw null; set { } } public System.IAsyncResult BeginGetContext(System.AsyncCallback callback, object state) => throw null; public void Close() => throw null; + public HttpListener() => throw null; public System.Security.Authentication.ExtendedProtection.ServiceNameCollection DefaultServiceNames { get => throw null; } void System.IDisposable.Dispose() => throw null; public System.Net.HttpListenerContext EndGetContext(System.IAsyncResult asyncResult) => throw null; - public System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy ExtendedProtectionPolicy { get => throw null; set => throw null; } - public System.Net.HttpListener.ExtendedProtectionSelector ExtendedProtectionSelectorDelegate { get => throw null; set => throw null; } + public System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy ExtendedProtectionPolicy { get => throw null; set { } } + public delegate System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy ExtendedProtectionSelector(System.Net.HttpListenerRequest request); + public System.Net.HttpListener.ExtendedProtectionSelector ExtendedProtectionSelectorDelegate { get => throw null; set { } } public System.Net.HttpListenerContext GetContext() => throw null; public System.Threading.Tasks.Task GetContextAsync() => throw null; - public HttpListener() => throw null; - public bool IgnoreWriteExceptions { get => throw null; set => throw null; } + public bool IgnoreWriteExceptions { get => throw null; set { } } public bool IsListening { get => throw null; } public static bool IsSupported { get => throw null; } public System.Net.HttpListenerPrefixCollection Prefixes { get => throw null; } - public string Realm { get => throw null; set => throw null; } + public string Realm { get => throw null; set { } } public void Start() => throw null; public void Stop() => throw null; public System.Net.HttpListenerTimeoutManager TimeoutManager { get => throw null; } - public bool UnsafeConnectionNtlmAuthentication { get => throw null; set => throw null; } + public bool UnsafeConnectionNtlmAuthentication { get => throw null; set { } } } - public class HttpListenerBasicIdentity : System.Security.Principal.GenericIdentity { public HttpListenerBasicIdentity(string username, string password) : base(default(System.Security.Principal.GenericIdentity)) => throw null; public virtual string Password { get => throw null; } } - - public class HttpListenerContext + public sealed class HttpListenerContext { public System.Threading.Tasks.Task AcceptWebSocketAsync(string subProtocol) => throw null; - public System.Threading.Tasks.Task AcceptWebSocketAsync(string subProtocol, System.TimeSpan keepAliveInterval) => throw null; public System.Threading.Tasks.Task AcceptWebSocketAsync(string subProtocol, int receiveBufferSize, System.TimeSpan keepAliveInterval) => throw null; - public System.Threading.Tasks.Task AcceptWebSocketAsync(string subProtocol, int receiveBufferSize, System.TimeSpan keepAliveInterval, System.ArraySegment internalBuffer) => throw null; + public System.Threading.Tasks.Task AcceptWebSocketAsync(string subProtocol, int receiveBufferSize, System.TimeSpan keepAliveInterval, System.ArraySegment internalBuffer) => throw null; + public System.Threading.Tasks.Task AcceptWebSocketAsync(string subProtocol, System.TimeSpan keepAliveInterval) => throw null; public System.Net.HttpListenerRequest Request { get => throw null; } public System.Net.HttpListenerResponse Response { get => throw null; } public System.Security.Principal.IPrincipal User { get => throw null; } } - public class HttpListenerException : System.ComponentModel.Win32Exception { - public override int ErrorCode { get => throw null; } public HttpListenerException() => throw null; - protected HttpListenerException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public HttpListenerException(int errorCode) => throw null; public HttpListenerException(int errorCode, string message) => throw null; + protected HttpListenerException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public override int ErrorCode { get => throw null; } } - public class HttpListenerPrefixCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public void Add(string uriPrefix) => throw null; @@ -76,14 +68,13 @@ namespace System public bool IsSynchronized { get => throw null; } public bool Remove(string uriPrefix) => throw null; } - - public class HttpListenerRequest + public sealed class HttpListenerRequest { public string[] AcceptTypes { get => throw null; } public System.IAsyncResult BeginGetClientCertificate(System.AsyncCallback requestCallback, object state) => throw null; public int ClientCertificateError { get => throw null; } public System.Text.Encoding ContentEncoding { get => throw null; } - public System.Int64 ContentLength64 { get => throw null; } + public long ContentLength64 { get => throw null; } public string ContentType { get => throw null; } public System.Net.CookieCollection Cookies { get => throw null; } public System.Security.Cryptography.X509Certificates.X509Certificate2 EndGetClientCertificate(System.IAsyncResult asyncResult) => throw null; @@ -113,43 +104,40 @@ namespace System public string UserHostName { get => throw null; } public string[] UserLanguages { get => throw null; } } - - public class HttpListenerResponse : System.IDisposable + public sealed class HttpListenerResponse : System.IDisposable { public void Abort() => throw null; public void AddHeader(string name, string value) => throw null; public void AppendCookie(System.Net.Cookie cookie) => throw null; public void AppendHeader(string name, string value) => throw null; public void Close() => throw null; - public void Close(System.Byte[] responseEntity, bool willBlock) => throw null; - public System.Text.Encoding ContentEncoding { get => throw null; set => throw null; } - public System.Int64 ContentLength64 { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public System.Net.CookieCollection Cookies { get => throw null; set => throw null; } + public void Close(byte[] responseEntity, bool willBlock) => throw null; + public System.Text.Encoding ContentEncoding { get => throw null; set { } } + public long ContentLength64 { get => throw null; set { } } + public string ContentType { get => throw null; set { } } + public System.Net.CookieCollection Cookies { get => throw null; set { } } public void CopyFrom(System.Net.HttpListenerResponse templateResponse) => throw null; void System.IDisposable.Dispose() => throw null; - public System.Net.WebHeaderCollection Headers { get => throw null; set => throw null; } - public bool KeepAlive { get => throw null; set => throw null; } + public System.Net.WebHeaderCollection Headers { get => throw null; set { } } + public bool KeepAlive { get => throw null; set { } } public System.IO.Stream OutputStream { get => throw null; } - public System.Version ProtocolVersion { get => throw null; set => throw null; } + public System.Version ProtocolVersion { get => throw null; set { } } public void Redirect(string url) => throw null; - public string RedirectLocation { get => throw null; set => throw null; } - public bool SendChunked { get => throw null; set => throw null; } + public string RedirectLocation { get => throw null; set { } } + public bool SendChunked { get => throw null; set { } } public void SetCookie(System.Net.Cookie cookie) => throw null; - public int StatusCode { get => throw null; set => throw null; } - public string StatusDescription { get => throw null; set => throw null; } + public int StatusCode { get => throw null; set { } } + public string StatusDescription { get => throw null; set { } } } - public class HttpListenerTimeoutManager { - public System.TimeSpan DrainEntityBody { get => throw null; set => throw null; } - public System.TimeSpan EntityBody { get => throw null; set => throw null; } - public System.TimeSpan HeaderWait { get => throw null; set => throw null; } - public System.TimeSpan IdleConnection { get => throw null; set => throw null; } - public System.Int64 MinSendBytesPerSecond { get => throw null; set => throw null; } - public System.TimeSpan RequestQueue { get => throw null; set => throw null; } + public System.TimeSpan DrainEntityBody { get => throw null; set { } } + public System.TimeSpan EntityBody { get => throw null; set { } } + public System.TimeSpan HeaderWait { get => throw null; set { } } + public System.TimeSpan IdleConnection { get => throw null; set { } } + public long MinSendBytesPerSecond { get => throw null; set { } } + public System.TimeSpan RequestQueue { get => throw null; set { } } } - namespace WebSockets { public class HttpListenerWebSocketContext : System.Net.WebSockets.WebSocketContext @@ -167,7 +155,6 @@ namespace System public override System.Security.Principal.IPrincipal User { get => throw null; } public override System.Net.WebSockets.WebSocket WebSocket { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Mail.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Mail.cs index 4abf2e6a759..b8a3e0b0d64 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Mail.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Mail.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Net.Mail, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Net @@ -9,21 +8,20 @@ namespace System { public class AlternateView : System.Net.Mail.AttachmentBase { + public System.Uri BaseUri { get => throw null; set { } } + public static System.Net.Mail.AlternateView CreateAlternateViewFromString(string content) => throw null; + public static System.Net.Mail.AlternateView CreateAlternateViewFromString(string content, System.Net.Mime.ContentType contentType) => throw null; + public static System.Net.Mail.AlternateView CreateAlternateViewFromString(string content, System.Text.Encoding contentEncoding, string mediaType) => throw null; public AlternateView(System.IO.Stream contentStream) : base(default(System.IO.Stream)) => throw null; public AlternateView(System.IO.Stream contentStream, System.Net.Mime.ContentType contentType) : base(default(System.IO.Stream)) => throw null; public AlternateView(System.IO.Stream contentStream, string mediaType) : base(default(System.IO.Stream)) => throw null; public AlternateView(string fileName) : base(default(System.IO.Stream)) => throw null; public AlternateView(string fileName, System.Net.Mime.ContentType contentType) : base(default(System.IO.Stream)) => throw null; public AlternateView(string fileName, string mediaType) : base(default(System.IO.Stream)) => throw null; - public System.Uri BaseUri { get => throw null; set => throw null; } - public static System.Net.Mail.AlternateView CreateAlternateViewFromString(string content) => throw null; - public static System.Net.Mail.AlternateView CreateAlternateViewFromString(string content, System.Net.Mime.ContentType contentType) => throw null; - public static System.Net.Mail.AlternateView CreateAlternateViewFromString(string content, System.Text.Encoding contentEncoding, string mediaType) => throw null; protected override void Dispose(bool disposing) => throw null; public System.Net.Mail.LinkedResourceCollection LinkedResources { get => throw null; } } - - public class AlternateViewCollection : System.Collections.ObjectModel.Collection, System.IDisposable + public sealed class AlternateViewCollection : System.Collections.ObjectModel.Collection, System.IDisposable { protected override void ClearItems() => throw null; public void Dispose() => throw null; @@ -31,40 +29,37 @@ namespace System protected override void RemoveItem(int index) => throw null; protected override void SetItem(int index, System.Net.Mail.AlternateView item) => throw null; } - public class Attachment : System.Net.Mail.AttachmentBase { + public System.Net.Mime.ContentDisposition ContentDisposition { get => throw null; } + public static System.Net.Mail.Attachment CreateAttachmentFromString(string content, System.Net.Mime.ContentType contentType) => throw null; + public static System.Net.Mail.Attachment CreateAttachmentFromString(string content, string name) => throw null; + public static System.Net.Mail.Attachment CreateAttachmentFromString(string content, string name, System.Text.Encoding contentEncoding, string mediaType) => throw null; public Attachment(System.IO.Stream contentStream, System.Net.Mime.ContentType contentType) : base(default(System.IO.Stream)) => throw null; public Attachment(System.IO.Stream contentStream, string name) : base(default(System.IO.Stream)) => throw null; public Attachment(System.IO.Stream contentStream, string name, string mediaType) : base(default(System.IO.Stream)) => throw null; public Attachment(string fileName) : base(default(System.IO.Stream)) => throw null; public Attachment(string fileName, System.Net.Mime.ContentType contentType) : base(default(System.IO.Stream)) => throw null; public Attachment(string fileName, string mediaType) : base(default(System.IO.Stream)) => throw null; - public System.Net.Mime.ContentDisposition ContentDisposition { get => throw null; } - public static System.Net.Mail.Attachment CreateAttachmentFromString(string content, System.Net.Mime.ContentType contentType) => throw null; - public static System.Net.Mail.Attachment CreateAttachmentFromString(string content, string name) => throw null; - public static System.Net.Mail.Attachment CreateAttachmentFromString(string content, string name, System.Text.Encoding contentEncoding, string mediaType) => throw null; - public string Name { get => throw null; set => throw null; } - public System.Text.Encoding NameEncoding { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } + public System.Text.Encoding NameEncoding { get => throw null; set { } } } - public abstract class AttachmentBase : System.IDisposable { + public string ContentId { get => throw null; set { } } + public System.IO.Stream ContentStream { get => throw null; } + public System.Net.Mime.ContentType ContentType { get => throw null; set { } } protected AttachmentBase(System.IO.Stream contentStream) => throw null; protected AttachmentBase(System.IO.Stream contentStream, System.Net.Mime.ContentType contentType) => throw null; protected AttachmentBase(System.IO.Stream contentStream, string mediaType) => throw null; protected AttachmentBase(string fileName) => throw null; protected AttachmentBase(string fileName, System.Net.Mime.ContentType contentType) => throw null; protected AttachmentBase(string fileName, string mediaType) => throw null; - public string ContentId { get => throw null; set => throw null; } - public System.IO.Stream ContentStream { get => throw null; } - public System.Net.Mime.ContentType ContentType { get => throw null; set => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public System.Net.Mime.TransferEncoding TransferEncoding { get => throw null; set => throw null; } + public System.Net.Mime.TransferEncoding TransferEncoding { get => throw null; set { } } } - - public class AttachmentCollection : System.Collections.ObjectModel.Collection, System.IDisposable + public sealed class AttachmentCollection : System.Collections.ObjectModel.Collection, System.IDisposable { protected override void ClearItems() => throw null; public void Dispose() => throw null; @@ -72,20 +67,18 @@ namespace System protected override void RemoveItem(int index) => throw null; protected override void SetItem(int index, System.Net.Mail.Attachment item) => throw null; } - [System.Flags] - public enum DeliveryNotificationOptions : int + public enum DeliveryNotificationOptions { + None = 0, + OnSuccess = 1, + OnFailure = 2, Delay = 4, Never = 134217728, - None = 0, - OnFailure = 2, - OnSuccess = 1, } - public class LinkedResource : System.Net.Mail.AttachmentBase { - public System.Uri ContentLink { get => throw null; set => throw null; } + public System.Uri ContentLink { get => throw null; set { } } public static System.Net.Mail.LinkedResource CreateLinkedResourceFromString(string content) => throw null; public static System.Net.Mail.LinkedResource CreateLinkedResourceFromString(string content, System.Net.Mime.ContentType contentType) => throw null; public static System.Net.Mail.LinkedResource CreateLinkedResourceFromString(string content, System.Text.Encoding contentEncoding, string mediaType) => throw null; @@ -96,8 +89,7 @@ namespace System public LinkedResource(string fileName, System.Net.Mime.ContentType contentType) : base(default(System.IO.Stream)) => throw null; public LinkedResource(string fileName, string mediaType) : base(default(System.IO.Stream)) => throw null; } - - public class LinkedResourceCollection : System.Collections.ObjectModel.Collection, System.IDisposable + public sealed class LinkedResourceCollection : System.Collections.ObjectModel.Collection, System.IDisposable { protected override void ClearItems() => throw null; public void Dispose() => throw null; @@ -105,266 +97,242 @@ namespace System protected override void RemoveItem(int index) => throw null; protected override void SetItem(int index, System.Net.Mail.LinkedResource item) => throw null; } - public class MailAddress { public string Address { get => throw null; } + public MailAddress(string address) => throw null; + public MailAddress(string address, string displayName) => throw null; + public MailAddress(string address, string displayName, System.Text.Encoding displayNameEncoding) => throw null; public string DisplayName { get => throw null; } public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; public string Host { get => throw null; } - public MailAddress(string address) => throw null; - public MailAddress(string address, string displayName) => throw null; - public MailAddress(string address, string displayName, System.Text.Encoding displayNameEncoding) => throw null; public override string ToString() => throw null; public static bool TryCreate(string address, out System.Net.Mail.MailAddress result) => throw null; - public static bool TryCreate(string address, string displayName, System.Text.Encoding displayNameEncoding, out System.Net.Mail.MailAddress result) => throw null; public static bool TryCreate(string address, string displayName, out System.Net.Mail.MailAddress result) => throw null; + public static bool TryCreate(string address, string displayName, System.Text.Encoding displayNameEncoding, out System.Net.Mail.MailAddress result) => throw null; public string User { get => throw null; } } - public class MailAddressCollection : System.Collections.ObjectModel.Collection { public void Add(string addresses) => throw null; - protected override void InsertItem(int index, System.Net.Mail.MailAddress item) => throw null; public MailAddressCollection() => throw null; + protected override void InsertItem(int index, System.Net.Mail.MailAddress item) => throw null; protected override void SetItem(int index, System.Net.Mail.MailAddress item) => throw null; public override string ToString() => throw null; } - public class MailMessage : System.IDisposable { public System.Net.Mail.AlternateViewCollection AlternateViews { get => throw null; } public System.Net.Mail.AttachmentCollection Attachments { get => throw null; } public System.Net.Mail.MailAddressCollection Bcc { get => throw null; } - public string Body { get => throw null; set => throw null; } - public System.Text.Encoding BodyEncoding { get => throw null; set => throw null; } - public System.Net.Mime.TransferEncoding BodyTransferEncoding { get => throw null; set => throw null; } + public string Body { get => throw null; set { } } + public System.Text.Encoding BodyEncoding { get => throw null; set { } } + public System.Net.Mime.TransferEncoding BodyTransferEncoding { get => throw null; set { } } public System.Net.Mail.MailAddressCollection CC { get => throw null; } - public System.Net.Mail.DeliveryNotificationOptions DeliveryNotificationOptions { get => throw null; set => throw null; } - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public System.Net.Mail.MailAddress From { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection Headers { get => throw null; } - public System.Text.Encoding HeadersEncoding { get => throw null; set => throw null; } - public bool IsBodyHtml { get => throw null; set => throw null; } public MailMessage() => throw null; public MailMessage(System.Net.Mail.MailAddress from, System.Net.Mail.MailAddress to) => throw null; public MailMessage(string from, string to) => throw null; public MailMessage(string from, string to, string subject, string body) => throw null; - public System.Net.Mail.MailPriority Priority { get => throw null; set => throw null; } - public System.Net.Mail.MailAddress ReplyTo { get => throw null; set => throw null; } + public System.Net.Mail.DeliveryNotificationOptions DeliveryNotificationOptions { get => throw null; set { } } + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public System.Net.Mail.MailAddress From { get => throw null; set { } } + public System.Collections.Specialized.NameValueCollection Headers { get => throw null; } + public System.Text.Encoding HeadersEncoding { get => throw null; set { } } + public bool IsBodyHtml { get => throw null; set { } } + public System.Net.Mail.MailPriority Priority { get => throw null; set { } } + public System.Net.Mail.MailAddress ReplyTo { get => throw null; set { } } public System.Net.Mail.MailAddressCollection ReplyToList { get => throw null; } - public System.Net.Mail.MailAddress Sender { get => throw null; set => throw null; } - public string Subject { get => throw null; set => throw null; } - public System.Text.Encoding SubjectEncoding { get => throw null; set => throw null; } + public System.Net.Mail.MailAddress Sender { get => throw null; set { } } + public string Subject { get => throw null; set { } } + public System.Text.Encoding SubjectEncoding { get => throw null; set { } } public System.Net.Mail.MailAddressCollection To { get => throw null; } } - - public enum MailPriority : int + public enum MailPriority { - High = 2, - Low = 1, Normal = 0, + Low = 1, + High = 2, } - public delegate void SendCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - public class SmtpClient : System.IDisposable { public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; } - public System.Net.ICredentialsByHost Credentials { get => throw null; set => throw null; } - public System.Net.Mail.SmtpDeliveryFormat DeliveryFormat { get => throw null; set => throw null; } - public System.Net.Mail.SmtpDeliveryMethod DeliveryMethod { get => throw null; set => throw null; } + public System.Net.ICredentialsByHost Credentials { get => throw null; set { } } + public SmtpClient() => throw null; + public SmtpClient(string host) => throw null; + public SmtpClient(string host, int port) => throw null; + public System.Net.Mail.SmtpDeliveryFormat DeliveryFormat { get => throw null; set { } } + public System.Net.Mail.SmtpDeliveryMethod DeliveryMethod { get => throw null; set { } } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public bool EnableSsl { get => throw null; set => throw null; } - public string Host { get => throw null; set => throw null; } + public bool EnableSsl { get => throw null; set { } } + public string Host { get => throw null; set { } } protected void OnSendCompleted(System.ComponentModel.AsyncCompletedEventArgs e) => throw null; - public string PickupDirectoryLocation { get => throw null; set => throw null; } - public int Port { get => throw null; set => throw null; } + public string PickupDirectoryLocation { get => throw null; set { } } + public int Port { get => throw null; set { } } public void Send(System.Net.Mail.MailMessage message) => throw null; public void Send(string from, string recipients, string subject, string body) => throw null; public void SendAsync(System.Net.Mail.MailMessage message, object userToken) => throw null; public void SendAsync(string from, string recipients, string subject, string body, object userToken) => throw null; public void SendAsyncCancel() => throw null; - public event System.Net.Mail.SendCompletedEventHandler SendCompleted; + public event System.Net.Mail.SendCompletedEventHandler SendCompleted { add { } remove { } } public System.Threading.Tasks.Task SendMailAsync(System.Net.Mail.MailMessage message) => throw null; - public System.Threading.Tasks.Task SendMailAsync(System.Net.Mail.MailMessage message, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task SendMailAsync(string from, string recipients, string subject, string body) => throw null; + public System.Threading.Tasks.Task SendMailAsync(System.Net.Mail.MailMessage message, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task SendMailAsync(string from, string recipients, string subject, string body, System.Threading.CancellationToken cancellationToken) => throw null; public System.Net.ServicePoint ServicePoint { get => throw null; } - public SmtpClient() => throw null; - public SmtpClient(string host) => throw null; - public SmtpClient(string host, int port) => throw null; - public string TargetName { get => throw null; set => throw null; } - public int Timeout { get => throw null; set => throw null; } - public bool UseDefaultCredentials { get => throw null; set => throw null; } + public string TargetName { get => throw null; set { } } + public int Timeout { get => throw null; set { } } + public bool UseDefaultCredentials { get => throw null; set { } } } - - public enum SmtpDeliveryFormat : int + public enum SmtpDeliveryFormat { - International = 1, SevenBit = 0, + International = 1, } - - public enum SmtpDeliveryMethod : int + public enum SmtpDeliveryMethod { Network = 0, - PickupDirectoryFromIis = 2, SpecifiedPickupDirectory = 1, + PickupDirectoryFromIis = 2, } - public class SmtpException : System.Exception, System.Runtime.Serialization.ISerializable { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public SmtpException() => throw null; - protected SmtpException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public SmtpException(System.Net.Mail.SmtpStatusCode statusCode) => throw null; public SmtpException(System.Net.Mail.SmtpStatusCode statusCode, string message) => throw null; + protected SmtpException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public SmtpException(string message) => throw null; public SmtpException(string message, System.Exception innerException) => throw null; - public System.Net.Mail.SmtpStatusCode StatusCode { get => throw null; set => throw null; } - } - - public class SmtpFailedRecipientException : System.Net.Mail.SmtpException, System.Runtime.Serialization.ISerializable - { - public string FailedRecipient { get => throw null; } public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public System.Net.Mail.SmtpStatusCode StatusCode { get => throw null; set { } } + } + public class SmtpFailedRecipientException : System.Net.Mail.SmtpException, System.Runtime.Serialization.ISerializable + { public SmtpFailedRecipientException() => throw null; - protected SmtpFailedRecipientException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public SmtpFailedRecipientException(System.Net.Mail.SmtpStatusCode statusCode, string failedRecipient) => throw null; public SmtpFailedRecipientException(System.Net.Mail.SmtpStatusCode statusCode, string failedRecipient, string serverResponse) => throw null; + protected SmtpFailedRecipientException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public SmtpFailedRecipientException(string message) => throw null; public SmtpFailedRecipientException(string message, System.Exception innerException) => throw null; public SmtpFailedRecipientException(string message, string failedRecipient, System.Exception innerException) => throw null; - } - - public class SmtpFailedRecipientsException : System.Net.Mail.SmtpFailedRecipientException, System.Runtime.Serialization.ISerializable - { + public string FailedRecipient { get => throw null; } public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public System.Net.Mail.SmtpFailedRecipientException[] InnerExceptions { get => throw null; } + } + public class SmtpFailedRecipientsException : System.Net.Mail.SmtpFailedRecipientException, System.Runtime.Serialization.ISerializable + { public SmtpFailedRecipientsException() => throw null; protected SmtpFailedRecipientsException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public SmtpFailedRecipientsException(string message) => throw null; public SmtpFailedRecipientsException(string message, System.Exception innerException) => throw null; public SmtpFailedRecipientsException(string message, System.Net.Mail.SmtpFailedRecipientException[] innerExceptions) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public System.Net.Mail.SmtpFailedRecipientException[] InnerExceptions { get => throw null; } } - - public enum SmtpStatusCode : int + public enum SmtpStatusCode { - BadCommandSequence = 503, - CannotVerifyUserWillAttemptDelivery = 252, - ClientNotPermitted = 454, - CommandNotImplemented = 502, - CommandParameterNotImplemented = 504, - CommandUnrecognized = 500, - ExceededStorageAllocation = 552, GeneralFailure = -1, - HelpMessage = 214, - InsufficientStorage = 452, - LocalErrorInProcessing = 451, - MailboxBusy = 450, - MailboxNameNotAllowed = 553, - MailboxUnavailable = 550, - MustIssueStartTlsFirst = 530, - Ok = 250, - ServiceClosingTransmissionChannel = 221, - ServiceNotAvailable = 421, - ServiceReady = 220, - StartMailInput = 354, - SyntaxError = 501, SystemStatus = 211, - TransactionFailed = 554, - UserNotLocalTryAlternatePath = 551, + HelpMessage = 214, + ServiceReady = 220, + ServiceClosingTransmissionChannel = 221, + Ok = 250, UserNotLocalWillForward = 251, + CannotVerifyUserWillAttemptDelivery = 252, + StartMailInput = 354, + ServiceNotAvailable = 421, + MailboxBusy = 450, + LocalErrorInProcessing = 451, + InsufficientStorage = 452, + ClientNotPermitted = 454, + CommandUnrecognized = 500, + SyntaxError = 501, + CommandNotImplemented = 502, + BadCommandSequence = 503, + CommandParameterNotImplemented = 504, + MustIssueStartTlsFirst = 530, + MailboxUnavailable = 550, + UserNotLocalTryAlternatePath = 551, + ExceededStorageAllocation = 552, + MailboxNameNotAllowed = 553, + TransactionFailed = 554, } - } namespace Mime { public class ContentDisposition { + public System.DateTime CreationDate { get => throw null; set { } } public ContentDisposition() => throw null; public ContentDisposition(string disposition) => throw null; - public System.DateTime CreationDate { get => throw null; set => throw null; } - public string DispositionType { get => throw null; set => throw null; } + public string DispositionType { get => throw null; set { } } public override bool Equals(object rparam) => throw null; - public string FileName { get => throw null; set => throw null; } + public string FileName { get => throw null; set { } } public override int GetHashCode() => throw null; - public bool Inline { get => throw null; set => throw null; } - public System.DateTime ModificationDate { get => throw null; set => throw null; } + public bool Inline { get => throw null; set { } } + public System.DateTime ModificationDate { get => throw null; set { } } public System.Collections.Specialized.StringDictionary Parameters { get => throw null; } - public System.DateTime ReadDate { get => throw null; set => throw null; } - public System.Int64 Size { get => throw null; set => throw null; } + public System.DateTime ReadDate { get => throw null; set { } } + public long Size { get => throw null; set { } } public override string ToString() => throw null; } - public class ContentType { - public string Boundary { get => throw null; set => throw null; } - public string CharSet { get => throw null; set => throw null; } + public string Boundary { get => throw null; set { } } + public string CharSet { get => throw null; set { } } public ContentType() => throw null; public ContentType(string contentType) => throw null; public override bool Equals(object rparam) => throw null; public override int GetHashCode() => throw null; - public string MediaType { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } + public string MediaType { get => throw null; set { } } + public string Name { get => throw null; set { } } public System.Collections.Specialized.StringDictionary Parameters { get => throw null; } public override string ToString() => throw null; } - public static class DispositionTypeNames { - public const string Attachment = default; - public const string Inline = default; + public static string Attachment; + public static string Inline; } - public static class MediaTypeNames { public static class Application { - public const string Json = default; - public const string Octet = default; - public const string Pdf = default; - public const string Rtf = default; - public const string Soap = default; - public const string Xml = default; - public const string Zip = default; + public static string Json; + public static string Octet; + public static string Pdf; + public static string Rtf; + public static string Soap; + public static string Xml; + public static string Zip; } - - public static class Image { - public const string Gif = default; - public const string Jpeg = default; - public const string Tiff = default; + public static string Gif; + public static string Jpeg; + public static string Tiff; } - - public static class Text { - public const string Html = default; - public const string Plain = default; - public const string RichText = default; - public const string Xml = default; + public static string Html; + public static string Plain; + public static string RichText; + public static string Xml; } - - } - - public enum TransferEncoding : int + public enum TransferEncoding { - Base64 = 1, - EightBit = 3, - QuotedPrintable = 0, - SevenBit = 2, Unknown = -1, + QuotedPrintable = 0, + Base64 = 1, + SevenBit = 2, + EightBit = 3, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NameResolution.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NameResolution.cs index 6224965e325..605b5e091e2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NameResolution.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NameResolution.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Net.NameResolution, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net @@ -34,14 +33,12 @@ namespace System public static string GetHostName() => throw null; public static System.Net.IPHostEntry Resolve(string hostName) => throw null; } - public class IPHostEntry { - public System.Net.IPAddress[] AddressList { get => throw null; set => throw null; } - public string[] Aliases { get => throw null; set => throw null; } - public string HostName { get => throw null; set => throw null; } + public System.Net.IPAddress[] AddressList { get => throw null; set { } } + public string[] Aliases { get => throw null; set { } } public IPHostEntry() => throw null; + public string HostName { get => throw null; set { } } } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs index 9d5c2758e18..d2d408fe7ac 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs @@ -1,27 +1,24 @@ // This file contains auto-generated code. // Generated from `System.Net.NetworkInformation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net { namespace NetworkInformation { - public enum DuplicateAddressDetectionState : int + public enum DuplicateAddressDetectionState { - Deprecated = 3, - Duplicate = 2, Invalid = 0, - Preferred = 4, Tentative = 1, + Duplicate = 2, + Deprecated = 3, + Preferred = 4, } - public abstract class GatewayIPAddressInformation { public abstract System.Net.IPAddress Address { get; } protected GatewayIPAddressInformation() => throw null; } - public class GatewayIPAddressInformationCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public virtual void Add(System.Net.NetworkInformation.GatewayIPAddressInformation address) => throw null; @@ -29,14 +26,79 @@ namespace System public virtual bool Contains(System.Net.NetworkInformation.GatewayIPAddressInformation address) => throw null; public virtual void CopyTo(System.Net.NetworkInformation.GatewayIPAddressInformation[] array, int offset) => throw null; public virtual int Count { get => throw null; } - protected internal GatewayIPAddressInformationCollection() => throw null; + protected GatewayIPAddressInformationCollection() => throw null; public virtual System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public virtual bool IsReadOnly { get => throw null; } - public virtual System.Net.NetworkInformation.GatewayIPAddressInformation this[int index] { get => throw null; } public virtual bool Remove(System.Net.NetworkInformation.GatewayIPAddressInformation address) => throw null; + public virtual System.Net.NetworkInformation.GatewayIPAddressInformation this[int index] { get => throw null; } + } + public abstract class IcmpV4Statistics + { + public abstract long AddressMaskRepliesReceived { get; } + public abstract long AddressMaskRepliesSent { get; } + public abstract long AddressMaskRequestsReceived { get; } + public abstract long AddressMaskRequestsSent { get; } + protected IcmpV4Statistics() => throw null; + public abstract long DestinationUnreachableMessagesReceived { get; } + public abstract long DestinationUnreachableMessagesSent { get; } + public abstract long EchoRepliesReceived { get; } + public abstract long EchoRepliesSent { get; } + public abstract long EchoRequestsReceived { get; } + public abstract long EchoRequestsSent { get; } + public abstract long ErrorsReceived { get; } + public abstract long ErrorsSent { get; } + public abstract long MessagesReceived { get; } + public abstract long MessagesSent { get; } + public abstract long ParameterProblemsReceived { get; } + public abstract long ParameterProblemsSent { get; } + public abstract long RedirectsReceived { get; } + public abstract long RedirectsSent { get; } + public abstract long SourceQuenchesReceived { get; } + public abstract long SourceQuenchesSent { get; } + public abstract long TimeExceededMessagesReceived { get; } + public abstract long TimeExceededMessagesSent { get; } + public abstract long TimestampRepliesReceived { get; } + public abstract long TimestampRepliesSent { get; } + public abstract long TimestampRequestsReceived { get; } + public abstract long TimestampRequestsSent { get; } + } + public abstract class IcmpV6Statistics + { + protected IcmpV6Statistics() => throw null; + public abstract long DestinationUnreachableMessagesReceived { get; } + public abstract long DestinationUnreachableMessagesSent { get; } + public abstract long EchoRepliesReceived { get; } + public abstract long EchoRepliesSent { get; } + public abstract long EchoRequestsReceived { get; } + public abstract long EchoRequestsSent { get; } + public abstract long ErrorsReceived { get; } + public abstract long ErrorsSent { get; } + public abstract long MembershipQueriesReceived { get; } + public abstract long MembershipQueriesSent { get; } + public abstract long MembershipReductionsReceived { get; } + public abstract long MembershipReductionsSent { get; } + public abstract long MembershipReportsReceived { get; } + public abstract long MembershipReportsSent { get; } + public abstract long MessagesReceived { get; } + public abstract long MessagesSent { get; } + public abstract long NeighborAdvertisementsReceived { get; } + public abstract long NeighborAdvertisementsSent { get; } + public abstract long NeighborSolicitsReceived { get; } + public abstract long NeighborSolicitsSent { get; } + public abstract long PacketTooBigMessagesReceived { get; } + public abstract long PacketTooBigMessagesSent { get; } + public abstract long ParameterProblemsReceived { get; } + public abstract long ParameterProblemsSent { get; } + public abstract long RedirectsReceived { get; } + public abstract long RedirectsSent { get; } + public abstract long RouterAdvertisementsReceived { get; } + public abstract long RouterAdvertisementsSent { get; } + public abstract long RouterSolicitsReceived { get; } + public abstract long RouterSolicitsSent { get; } + public abstract long TimeExceededMessagesReceived { get; } + public abstract long TimeExceededMessagesSent { get; } } - public abstract class IPAddressInformation { public abstract System.Net.IPAddress Address { get; } @@ -44,7 +106,6 @@ namespace System public abstract bool IsDnsEligible { get; } public abstract bool IsTransient { get; } } - public class IPAddressInformationCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public virtual void Add(System.Net.NetworkInformation.IPAddressInformation address) => throw null; @@ -55,24 +116,24 @@ namespace System public virtual System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public virtual bool IsReadOnly { get => throw null; } - public virtual System.Net.NetworkInformation.IPAddressInformation this[int index] { get => throw null; } public virtual bool Remove(System.Net.NetworkInformation.IPAddressInformation address) => throw null; + public virtual System.Net.NetworkInformation.IPAddressInformation this[int index] { get => throw null; } } - public abstract class IPGlobalProperties { public virtual System.IAsyncResult BeginGetUnicastAddresses(System.AsyncCallback callback, object state) => throw null; + protected IPGlobalProperties() => throw null; public abstract string DhcpScopeName { get; } public abstract string DomainName { get; } public virtual System.Net.NetworkInformation.UnicastIPAddressInformationCollection EndGetUnicastAddresses(System.IAsyncResult asyncResult) => throw null; public abstract System.Net.NetworkInformation.TcpConnectionInformation[] GetActiveTcpConnections(); public abstract System.Net.IPEndPoint[] GetActiveTcpListeners(); public abstract System.Net.IPEndPoint[] GetActiveUdpListeners(); + public abstract System.Net.NetworkInformation.IcmpV4Statistics GetIcmpV4Statistics(); + public abstract System.Net.NetworkInformation.IcmpV6Statistics GetIcmpV6Statistics(); public static System.Net.NetworkInformation.IPGlobalProperties GetIPGlobalProperties() => throw null; public abstract System.Net.NetworkInformation.IPGlobalStatistics GetIPv4GlobalStatistics(); public abstract System.Net.NetworkInformation.IPGlobalStatistics GetIPv6GlobalStatistics(); - public abstract System.Net.NetworkInformation.IcmpV4Statistics GetIcmpV4Statistics(); - public abstract System.Net.NetworkInformation.IcmpV6Statistics GetIcmpV6Statistics(); public abstract System.Net.NetworkInformation.TcpStatistics GetTcpIPv4Statistics(); public abstract System.Net.NetworkInformation.TcpStatistics GetTcpIPv6Statistics(); public abstract System.Net.NetworkInformation.UdpStatistics GetUdpIPv4Statistics(); @@ -80,72 +141,67 @@ namespace System public virtual System.Net.NetworkInformation.UnicastIPAddressInformationCollection GetUnicastAddresses() => throw null; public virtual System.Threading.Tasks.Task GetUnicastAddressesAsync() => throw null; public abstract string HostName { get; } - protected IPGlobalProperties() => throw null; public abstract bool IsWinsProxy { get; } public abstract System.Net.NetworkInformation.NetBiosNodeType NodeType { get; } } - public abstract class IPGlobalStatistics { + protected IPGlobalStatistics() => throw null; public abstract int DefaultTtl { get; } public abstract bool ForwardingEnabled { get; } - protected IPGlobalStatistics() => throw null; - public abstract int NumberOfIPAddresses { get; } public abstract int NumberOfInterfaces { get; } + public abstract int NumberOfIPAddresses { get; } public abstract int NumberOfRoutes { get; } - public abstract System.Int64 OutputPacketRequests { get; } - public abstract System.Int64 OutputPacketRoutingDiscards { get; } - public abstract System.Int64 OutputPacketsDiscarded { get; } - public abstract System.Int64 OutputPacketsWithNoRoute { get; } - public abstract System.Int64 PacketFragmentFailures { get; } - public abstract System.Int64 PacketReassembliesRequired { get; } - public abstract System.Int64 PacketReassemblyFailures { get; } - public abstract System.Int64 PacketReassemblyTimeout { get; } - public abstract System.Int64 PacketsFragmented { get; } - public abstract System.Int64 PacketsReassembled { get; } - public abstract System.Int64 ReceivedPackets { get; } - public abstract System.Int64 ReceivedPacketsDelivered { get; } - public abstract System.Int64 ReceivedPacketsDiscarded { get; } - public abstract System.Int64 ReceivedPacketsForwarded { get; } - public abstract System.Int64 ReceivedPacketsWithAddressErrors { get; } - public abstract System.Int64 ReceivedPacketsWithHeadersErrors { get; } - public abstract System.Int64 ReceivedPacketsWithUnknownProtocol { get; } + public abstract long OutputPacketRequests { get; } + public abstract long OutputPacketRoutingDiscards { get; } + public abstract long OutputPacketsDiscarded { get; } + public abstract long OutputPacketsWithNoRoute { get; } + public abstract long PacketFragmentFailures { get; } + public abstract long PacketReassembliesRequired { get; } + public abstract long PacketReassemblyFailures { get; } + public abstract long PacketReassemblyTimeout { get; } + public abstract long PacketsFragmented { get; } + public abstract long PacketsReassembled { get; } + public abstract long ReceivedPackets { get; } + public abstract long ReceivedPacketsDelivered { get; } + public abstract long ReceivedPacketsDiscarded { get; } + public abstract long ReceivedPacketsForwarded { get; } + public abstract long ReceivedPacketsWithAddressErrors { get; } + public abstract long ReceivedPacketsWithHeadersErrors { get; } + public abstract long ReceivedPacketsWithUnknownProtocol { get; } } - public abstract class IPInterfaceProperties { public abstract System.Net.NetworkInformation.IPAddressInformationCollection AnycastAddresses { get; } + protected IPInterfaceProperties() => throw null; public abstract System.Net.NetworkInformation.IPAddressCollection DhcpServerAddresses { get; } public abstract System.Net.NetworkInformation.IPAddressCollection DnsAddresses { get; } public abstract string DnsSuffix { get; } public abstract System.Net.NetworkInformation.GatewayIPAddressInformationCollection GatewayAddresses { get; } public abstract System.Net.NetworkInformation.IPv4InterfaceProperties GetIPv4Properties(); public abstract System.Net.NetworkInformation.IPv6InterfaceProperties GetIPv6Properties(); - protected IPInterfaceProperties() => throw null; public abstract bool IsDnsEnabled { get; } public abstract bool IsDynamicDnsEnabled { get; } public abstract System.Net.NetworkInformation.MulticastIPAddressInformationCollection MulticastAddresses { get; } public abstract System.Net.NetworkInformation.UnicastIPAddressInformationCollection UnicastAddresses { get; } public abstract System.Net.NetworkInformation.IPAddressCollection WinsServersAddresses { get; } } - public abstract class IPInterfaceStatistics { - public abstract System.Int64 BytesReceived { get; } - public abstract System.Int64 BytesSent { get; } + public abstract long BytesReceived { get; } + public abstract long BytesSent { get; } protected IPInterfaceStatistics() => throw null; - public abstract System.Int64 IncomingPacketsDiscarded { get; } - public abstract System.Int64 IncomingPacketsWithErrors { get; } - public abstract System.Int64 IncomingUnknownProtocolPackets { get; } - public abstract System.Int64 NonUnicastPacketsReceived { get; } - public abstract System.Int64 NonUnicastPacketsSent { get; } - public abstract System.Int64 OutgoingPacketsDiscarded { get; } - public abstract System.Int64 OutgoingPacketsWithErrors { get; } - public abstract System.Int64 OutputQueueLength { get; } - public abstract System.Int64 UnicastPacketsReceived { get; } - public abstract System.Int64 UnicastPacketsSent { get; } + public abstract long IncomingPacketsDiscarded { get; } + public abstract long IncomingPacketsWithErrors { get; } + public abstract long IncomingUnknownProtocolPackets { get; } + public abstract long NonUnicastPacketsReceived { get; } + public abstract long NonUnicastPacketsSent { get; } + public abstract long OutgoingPacketsDiscarded { get; } + public abstract long OutgoingPacketsWithErrors { get; } + public abstract long OutputQueueLength { get; } + public abstract long UnicastPacketsReceived { get; } + public abstract long UnicastPacketsSent { get; } } - public abstract class IPv4InterfaceProperties { protected IPv4InterfaceProperties() => throw null; @@ -157,111 +213,39 @@ namespace System public abstract int Mtu { get; } public abstract bool UsesWins { get; } } - public abstract class IPv4InterfaceStatistics { - public abstract System.Int64 BytesReceived { get; } - public abstract System.Int64 BytesSent { get; } + public abstract long BytesReceived { get; } + public abstract long BytesSent { get; } protected IPv4InterfaceStatistics() => throw null; - public abstract System.Int64 IncomingPacketsDiscarded { get; } - public abstract System.Int64 IncomingPacketsWithErrors { get; } - public abstract System.Int64 IncomingUnknownProtocolPackets { get; } - public abstract System.Int64 NonUnicastPacketsReceived { get; } - public abstract System.Int64 NonUnicastPacketsSent { get; } - public abstract System.Int64 OutgoingPacketsDiscarded { get; } - public abstract System.Int64 OutgoingPacketsWithErrors { get; } - public abstract System.Int64 OutputQueueLength { get; } - public abstract System.Int64 UnicastPacketsReceived { get; } - public abstract System.Int64 UnicastPacketsSent { get; } + public abstract long IncomingPacketsDiscarded { get; } + public abstract long IncomingPacketsWithErrors { get; } + public abstract long IncomingUnknownProtocolPackets { get; } + public abstract long NonUnicastPacketsReceived { get; } + public abstract long NonUnicastPacketsSent { get; } + public abstract long OutgoingPacketsDiscarded { get; } + public abstract long OutgoingPacketsWithErrors { get; } + public abstract long OutputQueueLength { get; } + public abstract long UnicastPacketsReceived { get; } + public abstract long UnicastPacketsSent { get; } } - public abstract class IPv6InterfaceProperties { - public virtual System.Int64 GetScopeId(System.Net.NetworkInformation.ScopeLevel scopeLevel) => throw null; protected IPv6InterfaceProperties() => throw null; + public virtual long GetScopeId(System.Net.NetworkInformation.ScopeLevel scopeLevel) => throw null; public abstract int Index { get; } public abstract int Mtu { get; } } - - public abstract class IcmpV4Statistics - { - public abstract System.Int64 AddressMaskRepliesReceived { get; } - public abstract System.Int64 AddressMaskRepliesSent { get; } - public abstract System.Int64 AddressMaskRequestsReceived { get; } - public abstract System.Int64 AddressMaskRequestsSent { get; } - public abstract System.Int64 DestinationUnreachableMessagesReceived { get; } - public abstract System.Int64 DestinationUnreachableMessagesSent { get; } - public abstract System.Int64 EchoRepliesReceived { get; } - public abstract System.Int64 EchoRepliesSent { get; } - public abstract System.Int64 EchoRequestsReceived { get; } - public abstract System.Int64 EchoRequestsSent { get; } - public abstract System.Int64 ErrorsReceived { get; } - public abstract System.Int64 ErrorsSent { get; } - protected IcmpV4Statistics() => throw null; - public abstract System.Int64 MessagesReceived { get; } - public abstract System.Int64 MessagesSent { get; } - public abstract System.Int64 ParameterProblemsReceived { get; } - public abstract System.Int64 ParameterProblemsSent { get; } - public abstract System.Int64 RedirectsReceived { get; } - public abstract System.Int64 RedirectsSent { get; } - public abstract System.Int64 SourceQuenchesReceived { get; } - public abstract System.Int64 SourceQuenchesSent { get; } - public abstract System.Int64 TimeExceededMessagesReceived { get; } - public abstract System.Int64 TimeExceededMessagesSent { get; } - public abstract System.Int64 TimestampRepliesReceived { get; } - public abstract System.Int64 TimestampRepliesSent { get; } - public abstract System.Int64 TimestampRequestsReceived { get; } - public abstract System.Int64 TimestampRequestsSent { get; } - } - - public abstract class IcmpV6Statistics - { - public abstract System.Int64 DestinationUnreachableMessagesReceived { get; } - public abstract System.Int64 DestinationUnreachableMessagesSent { get; } - public abstract System.Int64 EchoRepliesReceived { get; } - public abstract System.Int64 EchoRepliesSent { get; } - public abstract System.Int64 EchoRequestsReceived { get; } - public abstract System.Int64 EchoRequestsSent { get; } - public abstract System.Int64 ErrorsReceived { get; } - public abstract System.Int64 ErrorsSent { get; } - protected IcmpV6Statistics() => throw null; - public abstract System.Int64 MembershipQueriesReceived { get; } - public abstract System.Int64 MembershipQueriesSent { get; } - public abstract System.Int64 MembershipReductionsReceived { get; } - public abstract System.Int64 MembershipReductionsSent { get; } - public abstract System.Int64 MembershipReportsReceived { get; } - public abstract System.Int64 MembershipReportsSent { get; } - public abstract System.Int64 MessagesReceived { get; } - public abstract System.Int64 MessagesSent { get; } - public abstract System.Int64 NeighborAdvertisementsReceived { get; } - public abstract System.Int64 NeighborAdvertisementsSent { get; } - public abstract System.Int64 NeighborSolicitsReceived { get; } - public abstract System.Int64 NeighborSolicitsSent { get; } - public abstract System.Int64 PacketTooBigMessagesReceived { get; } - public abstract System.Int64 PacketTooBigMessagesSent { get; } - public abstract System.Int64 ParameterProblemsReceived { get; } - public abstract System.Int64 ParameterProblemsSent { get; } - public abstract System.Int64 RedirectsReceived { get; } - public abstract System.Int64 RedirectsSent { get; } - public abstract System.Int64 RouterAdvertisementsReceived { get; } - public abstract System.Int64 RouterAdvertisementsSent { get; } - public abstract System.Int64 RouterSolicitsReceived { get; } - public abstract System.Int64 RouterSolicitsSent { get; } - public abstract System.Int64 TimeExceededMessagesReceived { get; } - public abstract System.Int64 TimeExceededMessagesSent { get; } - } - public abstract class MulticastIPAddressInformation : System.Net.NetworkInformation.IPAddressInformation { - public abstract System.Int64 AddressPreferredLifetime { get; } - public abstract System.Int64 AddressValidLifetime { get; } - public abstract System.Int64 DhcpLeaseLifetime { get; } - public abstract System.Net.NetworkInformation.DuplicateAddressDetectionState DuplicateAddressDetectionState { get; } + public abstract long AddressPreferredLifetime { get; } + public abstract long AddressValidLifetime { get; } protected MulticastIPAddressInformation() => throw null; + public abstract long DhcpLeaseLifetime { get; } + public abstract System.Net.NetworkInformation.DuplicateAddressDetectionState DuplicateAddressDetectionState { get; } public abstract System.Net.NetworkInformation.PrefixOrigin PrefixOrigin { get; } public abstract System.Net.NetworkInformation.SuffixOrigin SuffixOrigin { get; } } - public class MulticastIPAddressInformationCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public virtual void Add(System.Net.NetworkInformation.MulticastIPAddressInformation address) => throw null; @@ -269,50 +253,44 @@ namespace System public virtual bool Contains(System.Net.NetworkInformation.MulticastIPAddressInformation address) => throw null; public virtual void CopyTo(System.Net.NetworkInformation.MulticastIPAddressInformation[] array, int offset) => throw null; public virtual int Count { get => throw null; } + protected MulticastIPAddressInformationCollection() => throw null; public virtual System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public virtual bool IsReadOnly { get => throw null; } - public virtual System.Net.NetworkInformation.MulticastIPAddressInformation this[int index] { get => throw null; } - protected internal MulticastIPAddressInformationCollection() => throw null; public virtual bool Remove(System.Net.NetworkInformation.MulticastIPAddressInformation address) => throw null; + public virtual System.Net.NetworkInformation.MulticastIPAddressInformation this[int index] { get => throw null; } } - - public enum NetBiosNodeType : int + public enum NetBiosNodeType { - Broadcast = 1, - Hybrid = 8, - Mixed = 4, - Peer2Peer = 2, Unknown = 0, + Broadcast = 1, + Peer2Peer = 2, + Mixed = 4, + Hybrid = 8, } - public delegate void NetworkAddressChangedEventHandler(object sender, System.EventArgs e); - public delegate void NetworkAvailabilityChangedEventHandler(object sender, System.Net.NetworkInformation.NetworkAvailabilityEventArgs e); - public class NetworkAvailabilityEventArgs : System.EventArgs { public bool IsAvailable { get => throw null; } } - public class NetworkChange { - public static event System.Net.NetworkInformation.NetworkAddressChangedEventHandler NetworkAddressChanged; - public static event System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler NetworkAvailabilityChanged; public NetworkChange() => throw null; + public static event System.Net.NetworkInformation.NetworkAddressChangedEventHandler NetworkAddressChanged { add { } remove { } } + public static event System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler NetworkAvailabilityChanged { add { } remove { } } public static void RegisterNetworkChange(System.Net.NetworkInformation.NetworkChange nc) => throw null; } - public class NetworkInformationException : System.ComponentModel.Win32Exception { - public override int ErrorCode { get => throw null; } public NetworkInformationException() => throw null; - protected NetworkInformationException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public NetworkInformationException(int errorCode) => throw null; + protected NetworkInformationException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public override int ErrorCode { get => throw null; } } - public abstract class NetworkInterface { + protected NetworkInterface() => throw null; public virtual string Description { get => throw null; } public static System.Net.NetworkInformation.NetworkInterface[] GetAllNetworkInterfaces() => throw null; public virtual System.Net.NetworkInformation.IPInterfaceProperties GetIPProperties() => throw null; @@ -320,180 +298,166 @@ namespace System public virtual System.Net.NetworkInformation.IPv4InterfaceStatistics GetIPv4Statistics() => throw null; public static bool GetIsNetworkAvailable() => throw null; public virtual System.Net.NetworkInformation.PhysicalAddress GetPhysicalAddress() => throw null; - public static int IPv6LoopbackInterfaceIndex { get => throw null; } public virtual string Id { get => throw null; } + public static int IPv6LoopbackInterfaceIndex { get => throw null; } public virtual bool IsReceiveOnly { get => throw null; } public static int LoopbackInterfaceIndex { get => throw null; } public virtual string Name { get => throw null; } - protected NetworkInterface() => throw null; public virtual System.Net.NetworkInformation.NetworkInterfaceType NetworkInterfaceType { get => throw null; } public virtual System.Net.NetworkInformation.OperationalStatus OperationalStatus { get => throw null; } - public virtual System.Int64 Speed { get => throw null; } + public virtual long Speed { get => throw null; } public virtual bool Supports(System.Net.NetworkInformation.NetworkInterfaceComponent networkInterfaceComponent) => throw null; public virtual bool SupportsMulticast { get => throw null; } } - - public enum NetworkInterfaceComponent : int + public enum NetworkInterfaceComponent { IPv4 = 0, IPv6 = 1, } - - public enum NetworkInterfaceType : int + public enum NetworkInterfaceType { - AsymmetricDsl = 94, - Atm = 37, - BasicIsdn = 20, - Ethernet = 6, - Ethernet3Megabit = 26, - FastEthernetFx = 69, - FastEthernetT = 62, - Fddi = 15, - GenericModem = 48, - GigabitEthernet = 117, - HighPerformanceSerialBus = 144, - IPOverAtm = 114, - Isdn = 63, - Loopback = 24, - MultiRateSymmetricDsl = 143, - Ppp = 23, - PrimaryIsdn = 21, - RateAdaptDsl = 95, - Slip = 28, - SymmetricDsl = 96, - TokenRing = 9, - Tunnel = 131, Unknown = 1, - VeryHighSpeedDsl = 97, + Ethernet = 6, + TokenRing = 9, + Fddi = 15, + BasicIsdn = 20, + PrimaryIsdn = 21, + Ppp = 23, + Loopback = 24, + Ethernet3Megabit = 26, + Slip = 28, + Atm = 37, + GenericModem = 48, + FastEthernetT = 62, + Isdn = 63, + FastEthernetFx = 69, Wireless80211 = 71, + AsymmetricDsl = 94, + RateAdaptDsl = 95, + SymmetricDsl = 96, + VeryHighSpeedDsl = 97, + IPOverAtm = 114, + GigabitEthernet = 117, + Tunnel = 131, + MultiRateSymmetricDsl = 143, + HighPerformanceSerialBus = 144, Wman = 237, Wwanpp = 243, Wwanpp2 = 244, } - - public enum OperationalStatus : int + public enum OperationalStatus { - Dormant = 5, + Up = 1, Down = 2, - LowerLayerDown = 7, - NotPresent = 6, Testing = 3, Unknown = 4, - Up = 1, + Dormant = 5, + NotPresent = 6, + LowerLayerDown = 7, } - public class PhysicalAddress { + public PhysicalAddress(byte[] address) => throw null; public override bool Equals(object comparand) => throw null; - public System.Byte[] GetAddressBytes() => throw null; + public byte[] GetAddressBytes() => throw null; public override int GetHashCode() => throw null; public static System.Net.NetworkInformation.PhysicalAddress None; - public static System.Net.NetworkInformation.PhysicalAddress Parse(System.ReadOnlySpan address) => throw null; + public static System.Net.NetworkInformation.PhysicalAddress Parse(System.ReadOnlySpan address) => throw null; public static System.Net.NetworkInformation.PhysicalAddress Parse(string address) => throw null; - public PhysicalAddress(System.Byte[] address) => throw null; public override string ToString() => throw null; - public static bool TryParse(System.ReadOnlySpan address, out System.Net.NetworkInformation.PhysicalAddress value) => throw null; + public static bool TryParse(System.ReadOnlySpan address, out System.Net.NetworkInformation.PhysicalAddress value) => throw null; public static bool TryParse(string address, out System.Net.NetworkInformation.PhysicalAddress value) => throw null; } - - public enum PrefixOrigin : int + public enum PrefixOrigin { - Dhcp = 3, - Manual = 1, Other = 0, - RouterAdvertisement = 4, + Manual = 1, WellKnown = 2, + Dhcp = 3, + RouterAdvertisement = 4, } - - public enum ScopeLevel : int + public enum ScopeLevel { - Admin = 4, - Global = 14, + None = 0, Interface = 1, Link = 2, - None = 0, - Organization = 8, - Site = 5, Subnet = 3, + Admin = 4, + Site = 5, + Organization = 8, + Global = 14, } - - public enum SuffixOrigin : int + public enum SuffixOrigin { - LinkLayerAddress = 4, - Manual = 1, - OriginDhcp = 3, Other = 0, - Random = 5, + Manual = 1, WellKnown = 2, + OriginDhcp = 3, + LinkLayerAddress = 4, + Random = 5, } - public abstract class TcpConnectionInformation { + protected TcpConnectionInformation() => throw null; public abstract System.Net.IPEndPoint LocalEndPoint { get; } public abstract System.Net.IPEndPoint RemoteEndPoint { get; } public abstract System.Net.NetworkInformation.TcpState State { get; } - protected TcpConnectionInformation() => throw null; } - - public enum TcpState : int + public enum TcpState { - CloseWait = 8, + Unknown = 0, Closed = 1, - Closing = 9, - DeleteTcb = 12, + Listen = 2, + SynSent = 3, + SynReceived = 4, Established = 5, FinWait1 = 6, FinWait2 = 7, + CloseWait = 8, + Closing = 9, LastAck = 10, - Listen = 2, - SynReceived = 4, - SynSent = 3, TimeWait = 11, - Unknown = 0, + DeleteTcb = 12, } - public abstract class TcpStatistics { - public abstract System.Int64 ConnectionsAccepted { get; } - public abstract System.Int64 ConnectionsInitiated { get; } - public abstract System.Int64 CumulativeConnections { get; } - public abstract System.Int64 CurrentConnections { get; } - public abstract System.Int64 ErrorsReceived { get; } - public abstract System.Int64 FailedConnectionAttempts { get; } - public abstract System.Int64 MaximumConnections { get; } - public abstract System.Int64 MaximumTransmissionTimeout { get; } - public abstract System.Int64 MinimumTransmissionTimeout { get; } - public abstract System.Int64 ResetConnections { get; } - public abstract System.Int64 ResetsSent { get; } - public abstract System.Int64 SegmentsReceived { get; } - public abstract System.Int64 SegmentsResent { get; } - public abstract System.Int64 SegmentsSent { get; } + public abstract long ConnectionsAccepted { get; } + public abstract long ConnectionsInitiated { get; } protected TcpStatistics() => throw null; + public abstract long CumulativeConnections { get; } + public abstract long CurrentConnections { get; } + public abstract long ErrorsReceived { get; } + public abstract long FailedConnectionAttempts { get; } + public abstract long MaximumConnections { get; } + public abstract long MaximumTransmissionTimeout { get; } + public abstract long MinimumTransmissionTimeout { get; } + public abstract long ResetConnections { get; } + public abstract long ResetsSent { get; } + public abstract long SegmentsReceived { get; } + public abstract long SegmentsResent { get; } + public abstract long SegmentsSent { get; } } - public abstract class UdpStatistics { - public abstract System.Int64 DatagramsReceived { get; } - public abstract System.Int64 DatagramsSent { get; } - public abstract System.Int64 IncomingDatagramsDiscarded { get; } - public abstract System.Int64 IncomingDatagramsWithErrors { get; } - public abstract int UdpListeners { get; } protected UdpStatistics() => throw null; + public abstract long DatagramsReceived { get; } + public abstract long DatagramsSent { get; } + public abstract long IncomingDatagramsDiscarded { get; } + public abstract long IncomingDatagramsWithErrors { get; } + public abstract int UdpListeners { get; } } - public abstract class UnicastIPAddressInformation : System.Net.NetworkInformation.IPAddressInformation { - public abstract System.Int64 AddressPreferredLifetime { get; } - public abstract System.Int64 AddressValidLifetime { get; } - public abstract System.Int64 DhcpLeaseLifetime { get; } + public abstract long AddressPreferredLifetime { get; } + public abstract long AddressValidLifetime { get; } + protected UnicastIPAddressInformation() => throw null; + public abstract long DhcpLeaseLifetime { get; } public abstract System.Net.NetworkInformation.DuplicateAddressDetectionState DuplicateAddressDetectionState { get; } public abstract System.Net.IPAddress IPv4Mask { get; } public virtual int PrefixLength { get => throw null; } public abstract System.Net.NetworkInformation.PrefixOrigin PrefixOrigin { get; } public abstract System.Net.NetworkInformation.SuffixOrigin SuffixOrigin { get; } - protected UnicastIPAddressInformation() => throw null; } - public class UnicastIPAddressInformationCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public virtual void Add(System.Net.NetworkInformation.UnicastIPAddressInformation address) => throw null; @@ -501,14 +465,13 @@ namespace System public virtual bool Contains(System.Net.NetworkInformation.UnicastIPAddressInformation address) => throw null; public virtual void CopyTo(System.Net.NetworkInformation.UnicastIPAddressInformation[] array, int offset) => throw null; public virtual int Count { get => throw null; } + protected UnicastIPAddressInformationCollection() => throw null; public virtual System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public virtual bool IsReadOnly { get => throw null; } - public virtual System.Net.NetworkInformation.UnicastIPAddressInformation this[int index] { get => throw null; } public virtual bool Remove(System.Net.NetworkInformation.UnicastIPAddressInformation address) => throw null; - protected internal UnicastIPAddressInformationCollection() => throw null; + public virtual System.Net.NetworkInformation.UnicastIPAddressInformation this[int index] { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Ping.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Ping.cs index 264f76a3b3a..0ef06b00716 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Ping.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Ping.cs @@ -1,107 +1,99 @@ // This file contains auto-generated code. // Generated from `System.Net.Ping, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net { namespace NetworkInformation { - public enum IPStatus : int + public enum IPStatus { - BadDestination = 11018, - BadHeader = 11042, - BadOption = 11007, - BadRoute = 11012, - DestinationHostUnreachable = 11003, + Unknown = -1, + Success = 0, DestinationNetworkUnreachable = 11002, - DestinationPortUnreachable = 11005, + DestinationHostUnreachable = 11003, DestinationProhibited = 11004, DestinationProtocolUnreachable = 11004, - DestinationScopeMismatch = 11045, - DestinationUnreachable = 11040, - HardwareError = 11008, - IcmpError = 11044, + DestinationPortUnreachable = 11005, NoResources = 11006, + BadOption = 11007, + HardwareError = 11008, PacketTooBig = 11009, - ParameterProblem = 11015, - SourceQuench = 11016, - Success = 0, - TimeExceeded = 11041, TimedOut = 11010, + BadRoute = 11012, TtlExpired = 11013, TtlReassemblyTimeExceeded = 11014, - Unknown = -1, + ParameterProblem = 11015, + SourceQuench = 11016, + BadDestination = 11018, + DestinationUnreachable = 11040, + TimeExceeded = 11041, + BadHeader = 11042, UnrecognizedNextHeader = 11043, + IcmpError = 11044, + DestinationScopeMismatch = 11045, } - public class Ping : System.ComponentModel.Component { + public Ping() => throw null; protected override void Dispose(bool disposing) => throw null; protected void OnPingCompleted(System.Net.NetworkInformation.PingCompletedEventArgs e) => throw null; - public Ping() => throw null; - public event System.Net.NetworkInformation.PingCompletedEventHandler PingCompleted; + public event System.Net.NetworkInformation.PingCompletedEventHandler PingCompleted { add { } remove { } } public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address) => throw null; - public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, System.TimeSpan timeout, System.Byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout) => throw null; - public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout, System.Byte[] buffer) => throw null; - public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout, System.Byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; + public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout, byte[] buffer) => throw null; + public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress) => throw null; - public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, System.TimeSpan timeout, System.Byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout) => throw null; - public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout, System.Byte[] buffer) => throw null; - public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout, System.Byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; - public void SendAsync(System.Net.IPAddress address, int timeout, System.Byte[] buffer, System.Net.NetworkInformation.PingOptions options, object userToken) => throw null; - public void SendAsync(System.Net.IPAddress address, int timeout, System.Byte[] buffer, object userToken) => throw null; + public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout, byte[] buffer) => throw null; + public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; + public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, System.TimeSpan timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; + public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, System.TimeSpan timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; + public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options, object userToken) => throw null; + public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, object userToken) => throw null; public void SendAsync(System.Net.IPAddress address, int timeout, object userToken) => throw null; public void SendAsync(System.Net.IPAddress address, object userToken) => throw null; - public void SendAsync(string hostNameOrAddress, int timeout, System.Byte[] buffer, System.Net.NetworkInformation.PingOptions options, object userToken) => throw null; - public void SendAsync(string hostNameOrAddress, int timeout, System.Byte[] buffer, object userToken) => throw null; + public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options, object userToken) => throw null; + public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, object userToken) => throw null; public void SendAsync(string hostNameOrAddress, int timeout, object userToken) => throw null; public void SendAsync(string hostNameOrAddress, object userToken) => throw null; public void SendAsyncCancel() => throw null; public System.Threading.Tasks.Task SendPingAsync(System.Net.IPAddress address) => throw null; public System.Threading.Tasks.Task SendPingAsync(System.Net.IPAddress address, int timeout) => throw null; - public System.Threading.Tasks.Task SendPingAsync(System.Net.IPAddress address, int timeout, System.Byte[] buffer) => throw null; - public System.Threading.Tasks.Task SendPingAsync(System.Net.IPAddress address, int timeout, System.Byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; + public System.Threading.Tasks.Task SendPingAsync(System.Net.IPAddress address, int timeout, byte[] buffer) => throw null; + public System.Threading.Tasks.Task SendPingAsync(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; public System.Threading.Tasks.Task SendPingAsync(string hostNameOrAddress) => throw null; public System.Threading.Tasks.Task SendPingAsync(string hostNameOrAddress, int timeout) => throw null; - public System.Threading.Tasks.Task SendPingAsync(string hostNameOrAddress, int timeout, System.Byte[] buffer) => throw null; - public System.Threading.Tasks.Task SendPingAsync(string hostNameOrAddress, int timeout, System.Byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; + public System.Threading.Tasks.Task SendPingAsync(string hostNameOrAddress, int timeout, byte[] buffer) => throw null; + public System.Threading.Tasks.Task SendPingAsync(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; } - public class PingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - internal PingCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; public System.Net.NetworkInformation.PingReply Reply { get => throw null; } + internal PingCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) { } } - public delegate void PingCompletedEventHandler(object sender, System.Net.NetworkInformation.PingCompletedEventArgs e); - public class PingException : System.InvalidOperationException { protected PingException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public PingException(string message) => throw null; public PingException(string message, System.Exception innerException) => throw null; } - public class PingOptions { - public bool DontFragment { get => throw null; set => throw null; } public PingOptions() => throw null; public PingOptions(int ttl, bool dontFragment) => throw null; - public int Ttl { get => throw null; set => throw null; } + public bool DontFragment { get => throw null; set { } } + public int Ttl { get => throw null; set { } } } - public class PingReply { public System.Net.IPAddress Address { get => throw null; } - public System.Byte[] Buffer { get => throw null; } + public byte[] Buffer { get => throw null; } public System.Net.NetworkInformation.PingOptions Options { get => throw null; } - public System.Int64 RoundtripTime { get => throw null; } + public long RoundtripTime { get => throw null; } public System.Net.NetworkInformation.IPStatus Status { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs index 33e2c3fb7ea..f12a014eb97 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs @@ -1,89 +1,104 @@ // This file contains auto-generated code. // Generated from `System.Net.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net { [System.Flags] - public enum AuthenticationSchemes : int + public enum AuthenticationSchemes { - Anonymous = 32768, - Basic = 8, - Digest = 1, - IntegratedWindowsAuthentication = 6, - Negotiate = 2, None = 0, + Digest = 1, + Negotiate = 2, Ntlm = 4, + IntegratedWindowsAuthentication = 6, + Basic = 8, + Anonymous = 32768, } - - public class Cookie + namespace Cache { - public string Comment { get => throw null; set => throw null; } - public System.Uri CommentUri { get => throw null; set => throw null; } + public enum RequestCacheLevel + { + Default = 0, + BypassCache = 1, + CacheOnly = 2, + CacheIfAvailable = 3, + Revalidate = 4, + Reload = 5, + NoCacheNoStore = 6, + } + public class RequestCachePolicy + { + public RequestCachePolicy() => throw null; + public RequestCachePolicy(System.Net.Cache.RequestCacheLevel level) => throw null; + public System.Net.Cache.RequestCacheLevel Level { get => throw null; } + public override string ToString() => throw null; + } + } + public sealed class Cookie + { + public string Comment { get => throw null; set { } } + public System.Uri CommentUri { get => throw null; set { } } public Cookie() => throw null; public Cookie(string name, string value) => throw null; public Cookie(string name, string value, string path) => throw null; public Cookie(string name, string value, string path, string domain) => throw null; - public bool Discard { get => throw null; set => throw null; } - public string Domain { get => throw null; set => throw null; } + public bool Discard { get => throw null; set { } } + public string Domain { get => throw null; set { } } public override bool Equals(object comparand) => throw null; - public bool Expired { get => throw null; set => throw null; } - public System.DateTime Expires { get => throw null; set => throw null; } + public bool Expired { get => throw null; set { } } + public System.DateTime Expires { get => throw null; set { } } public override int GetHashCode() => throw null; - public bool HttpOnly { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } - public string Port { get => throw null; set => throw null; } - public bool Secure { get => throw null; set => throw null; } + public bool HttpOnly { get => throw null; set { } } + public string Name { get => throw null; set { } } + public string Path { get => throw null; set { } } + public string Port { get => throw null; set { } } + public bool Secure { get => throw null; set { } } public System.DateTime TimeStamp { get => throw null; } public override string ToString() => throw null; - public string Value { get => throw null; set => throw null; } - public int Version { get => throw null; set => throw null; } + public string Value { get => throw null; set { } } + public int Version { get => throw null; set { } } } - - public class CookieCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable + public class CookieCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection { public void Add(System.Net.Cookie cookie) => throw null; public void Add(System.Net.CookieCollection cookies) => throw null; public void Clear() => throw null; public bool Contains(System.Net.Cookie cookie) => throw null; - public CookieCollection() => throw null; public void CopyTo(System.Array array, int index) => throw null; public void CopyTo(System.Net.Cookie[] array, int index) => throw null; public int Count { get => throw null; } + public CookieCollection() => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public System.Net.Cookie this[int index] { get => throw null; } - public System.Net.Cookie this[string name] { get => throw null; } public bool Remove(System.Net.Cookie cookie) => throw null; public object SyncRoot { get => throw null; } + public System.Net.Cookie this[int index] { get => throw null; } + public System.Net.Cookie this[string name] { get => throw null; } } - public class CookieContainer { public void Add(System.Net.Cookie cookie) => throw null; public void Add(System.Net.CookieCollection cookies) => throw null; public void Add(System.Uri uri, System.Net.Cookie cookie) => throw null; public void Add(System.Uri uri, System.Net.CookieCollection cookies) => throw null; - public int Capacity { get => throw null; set => throw null; } + public int Capacity { get => throw null; set { } } + public int Count { get => throw null; } public CookieContainer() => throw null; public CookieContainer(int capacity) => throw null; public CookieContainer(int capacity, int perDomainCapacity, int maxCookieSize) => throw null; - public int Count { get => throw null; } - public const int DefaultCookieLengthLimit = default; - public const int DefaultCookieLimit = default; - public const int DefaultPerDomainCookieLimit = default; + public static int DefaultCookieLengthLimit; + public static int DefaultCookieLimit; + public static int DefaultPerDomainCookieLimit; public System.Net.CookieCollection GetAllCookies() => throw null; public string GetCookieHeader(System.Uri uri) => throw null; public System.Net.CookieCollection GetCookies(System.Uri uri) => throw null; - public int MaxCookieSize { get => throw null; set => throw null; } - public int PerDomainCapacity { get => throw null; set => throw null; } + public int MaxCookieSize { get => throw null; set { } } + public int PerDomainCapacity { get => throw null; set { } } public void SetCookies(System.Uri uri, string cookieHeader) => throw null; } - public class CookieException : System.FormatException, System.Runtime.Serialization.ISerializable { public CookieException() => throw null; @@ -91,31 +106,28 @@ namespace System public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; } - public class CredentialCache : System.Collections.IEnumerable, System.Net.ICredentials, System.Net.ICredentialsByHost { - public void Add(System.Uri uriPrefix, string authType, System.Net.NetworkCredential cred) => throw null; public void Add(string host, int port, string authenticationType, System.Net.NetworkCredential credential) => throw null; + public void Add(System.Uri uriPrefix, string authType, System.Net.NetworkCredential cred) => throw null; public CredentialCache() => throw null; public static System.Net.ICredentials DefaultCredentials { get => throw null; } public static System.Net.NetworkCredential DefaultNetworkCredentials { get => throw null; } - public System.Net.NetworkCredential GetCredential(System.Uri uriPrefix, string authType) => throw null; public System.Net.NetworkCredential GetCredential(string host, int port, string authenticationType) => throw null; + public System.Net.NetworkCredential GetCredential(System.Uri uriPrefix, string authType) => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; - public void Remove(System.Uri uriPrefix, string authType) => throw null; public void Remove(string host, int port, string authenticationType) => throw null; + public void Remove(System.Uri uriPrefix, string authType) => throw null; } - [System.Flags] - public enum DecompressionMethods : int + public enum DecompressionMethods { All = -1, - Brotli = 4, - Deflate = 2, - GZip = 1, None = 0, + GZip = 1, + Deflate = 2, + Brotli = 4, } - public class DnsEndPoint : System.Net.EndPoint { public override System.Net.Sockets.AddressFamily AddressFamily { get => throw null; } @@ -127,7 +139,6 @@ namespace System public int Port { get => throw null; } public override string ToString() => throw null; } - public abstract class EndPoint { public virtual System.Net.Sockets.AddressFamily AddressFamily { get => throw null; } @@ -135,77 +146,75 @@ namespace System protected EndPoint() => throw null; public virtual System.Net.SocketAddress Serialize() => throw null; } - - public enum HttpStatusCode : int + public enum HttpStatusCode { - Accepted = 202, - AlreadyReported = 208, - Ambiguous = 300, - BadGateway = 502, - BadRequest = 400, - Conflict = 409, Continue = 100, - Created = 201, + SwitchingProtocols = 101, + Processing = 102, EarlyHints = 103, - ExpectationFailed = 417, - FailedDependency = 424, - Forbidden = 403, - Found = 302, - GatewayTimeout = 504, - Gone = 410, - HttpVersionNotSupported = 505, + OK = 200, + Created = 201, + Accepted = 202, + NonAuthoritativeInformation = 203, + NoContent = 204, + ResetContent = 205, + PartialContent = 206, + MultiStatus = 207, + AlreadyReported = 208, IMUsed = 226, - InsufficientStorage = 507, - InternalServerError = 500, - LengthRequired = 411, - Locked = 423, - LoopDetected = 508, - MethodNotAllowed = 405, - MisdirectedRequest = 421, + Ambiguous = 300, + MultipleChoices = 300, Moved = 301, MovedPermanently = 301, - MultiStatus = 207, - MultipleChoices = 300, - NetworkAuthenticationRequired = 511, - NoContent = 204, - NonAuthoritativeInformation = 203, - NotAcceptable = 406, - NotExtended = 510, - NotFound = 404, - NotImplemented = 501, - NotModified = 304, - OK = 200, - PartialContent = 206, - PaymentRequired = 402, - PermanentRedirect = 308, - PreconditionFailed = 412, - PreconditionRequired = 428, - Processing = 102, - ProxyAuthenticationRequired = 407, + Found = 302, Redirect = 302, - RedirectKeepVerb = 307, RedirectMethod = 303, - RequestEntityTooLarge = 413, - RequestHeaderFieldsTooLarge = 431, - RequestTimeout = 408, - RequestUriTooLong = 414, - RequestedRangeNotSatisfiable = 416, - ResetContent = 205, SeeOther = 303, - ServiceUnavailable = 503, - SwitchingProtocols = 101, - TemporaryRedirect = 307, - TooManyRequests = 429, - Unauthorized = 401, - UnavailableForLegalReasons = 451, - UnprocessableEntity = 422, - UnsupportedMediaType = 415, - Unused = 306, - UpgradeRequired = 426, + NotModified = 304, UseProxy = 305, + Unused = 306, + RedirectKeepVerb = 307, + TemporaryRedirect = 307, + PermanentRedirect = 308, + BadRequest = 400, + Unauthorized = 401, + PaymentRequired = 402, + Forbidden = 403, + NotFound = 404, + MethodNotAllowed = 405, + NotAcceptable = 406, + ProxyAuthenticationRequired = 407, + RequestTimeout = 408, + Conflict = 409, + Gone = 410, + LengthRequired = 411, + PreconditionFailed = 412, + RequestEntityTooLarge = 413, + RequestUriTooLong = 414, + UnsupportedMediaType = 415, + RequestedRangeNotSatisfiable = 416, + ExpectationFailed = 417, + MisdirectedRequest = 421, + UnprocessableEntity = 422, + Locked = 423, + FailedDependency = 424, + UpgradeRequired = 426, + PreconditionRequired = 428, + TooManyRequests = 429, + RequestHeaderFieldsTooLarge = 431, + UnavailableForLegalReasons = 451, + InternalServerError = 500, + NotImplemented = 501, + BadGateway = 502, + ServiceUnavailable = 503, + GatewayTimeout = 504, + HttpVersionNotSupported = 505, VariantAlsoNegotiates = 506, + InsufficientStorage = 507, + LoopDetected = 508, + NotExtended = 510, + NetworkAuthenticationRequired = 511, } - public static class HttpVersion { public static System.Version Unknown; @@ -214,34 +223,31 @@ namespace System public static System.Version Version20; public static System.Version Version30; } - public interface ICredentials { System.Net.NetworkCredential GetCredential(System.Uri uri, string authType); } - public interface ICredentialsByHost { System.Net.NetworkCredential GetCredential(string host, int port, string authenticationType); } - public class IPAddress { - public System.Int64 Address { get => throw null; set => throw null; } + public long Address { get => throw null; set { } } public System.Net.Sockets.AddressFamily AddressFamily { get => throw null; } public static System.Net.IPAddress Any; public static System.Net.IPAddress Broadcast; + public IPAddress(byte[] address) => throw null; + public IPAddress(byte[] address, long scopeid) => throw null; + public IPAddress(long newAddress) => throw null; + public IPAddress(System.ReadOnlySpan address) => throw null; + public IPAddress(System.ReadOnlySpan address, long scopeid) => throw null; public override bool Equals(object comparand) => throw null; - public System.Byte[] GetAddressBytes() => throw null; + public byte[] GetAddressBytes() => throw null; public override int GetHashCode() => throw null; + public static short HostToNetworkOrder(short host) => throw null; public static int HostToNetworkOrder(int host) => throw null; - public static System.Int64 HostToNetworkOrder(System.Int64 host) => throw null; - public static System.Int16 HostToNetworkOrder(System.Int16 host) => throw null; - public IPAddress(System.Byte[] address) => throw null; - public IPAddress(System.Byte[] address, System.Int64 scopeid) => throw null; - public IPAddress(System.ReadOnlySpan address) => throw null; - public IPAddress(System.ReadOnlySpan address, System.Int64 scopeid) => throw null; - public IPAddress(System.Int64 newAddress) => throw null; + public static long HostToNetworkOrder(long host) => throw null; public static System.Net.IPAddress IPv6Any; public static System.Net.IPAddress IPv6Loopback; public static System.Net.IPAddress IPv6None; @@ -255,101 +261,57 @@ namespace System public static System.Net.IPAddress Loopback; public System.Net.IPAddress MapToIPv4() => throw null; public System.Net.IPAddress MapToIPv6() => throw null; + public static short NetworkToHostOrder(short network) => throw null; public static int NetworkToHostOrder(int network) => throw null; - public static System.Int64 NetworkToHostOrder(System.Int64 network) => throw null; - public static System.Int16 NetworkToHostOrder(System.Int16 network) => throw null; + public static long NetworkToHostOrder(long network) => throw null; public static System.Net.IPAddress None; - public static System.Net.IPAddress Parse(System.ReadOnlySpan ipSpan) => throw null; + public static System.Net.IPAddress Parse(System.ReadOnlySpan ipSpan) => throw null; public static System.Net.IPAddress Parse(string ipString) => throw null; - public System.Int64 ScopeId { get => throw null; set => throw null; } + public long ScopeId { get => throw null; set { } } public override string ToString() => throw null; - public bool TryFormat(System.Span destination, out int charsWritten) => throw null; - public static bool TryParse(System.ReadOnlySpan ipSpan, out System.Net.IPAddress address) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten) => throw null; + public static bool TryParse(System.ReadOnlySpan ipSpan, out System.Net.IPAddress address) => throw null; public static bool TryParse(string ipString, out System.Net.IPAddress address) => throw null; - public bool TryWriteBytes(System.Span destination, out int bytesWritten) => throw null; + public bool TryWriteBytes(System.Span destination, out int bytesWritten) => throw null; } - public class IPEndPoint : System.Net.EndPoint { - public System.Net.IPAddress Address { get => throw null; set => throw null; } + public System.Net.IPAddress Address { get => throw null; set { } } public override System.Net.Sockets.AddressFamily AddressFamily { get => throw null; } public override System.Net.EndPoint Create(System.Net.SocketAddress socketAddress) => throw null; + public IPEndPoint(long address, int port) => throw null; + public IPEndPoint(System.Net.IPAddress address, int port) => throw null; public override bool Equals(object comparand) => throw null; public override int GetHashCode() => throw null; - public IPEndPoint(System.Net.IPAddress address, int port) => throw null; - public IPEndPoint(System.Int64 address, int port) => throw null; - public const int MaxPort = default; - public const int MinPort = default; - public static System.Net.IPEndPoint Parse(System.ReadOnlySpan s) => throw null; + public static int MaxPort; + public static int MinPort; + public static System.Net.IPEndPoint Parse(System.ReadOnlySpan s) => throw null; public static System.Net.IPEndPoint Parse(string s) => throw null; - public int Port { get => throw null; set => throw null; } + public int Port { get => throw null; set { } } public override System.Net.SocketAddress Serialize() => throw null; public override string ToString() => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.Net.IPEndPoint result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out System.Net.IPEndPoint result) => throw null; public static bool TryParse(string s, out System.Net.IPEndPoint result) => throw null; } - public interface IWebProxy { System.Net.ICredentials Credentials { get; set; } System.Uri GetProxy(System.Uri destination); bool IsBypassed(System.Uri host); } - public class NetworkCredential : System.Net.ICredentials, System.Net.ICredentialsByHost { - public string Domain { get => throw null; set => throw null; } - public System.Net.NetworkCredential GetCredential(System.Uri uri, string authenticationType) => throw null; - public System.Net.NetworkCredential GetCredential(string host, int port, string authenticationType) => throw null; public NetworkCredential() => throw null; public NetworkCredential(string userName, System.Security.SecureString password) => throw null; public NetworkCredential(string userName, System.Security.SecureString password, string domain) => throw null; public NetworkCredential(string userName, string password) => throw null; public NetworkCredential(string userName, string password, string domain) => throw null; - public string Password { get => throw null; set => throw null; } - public System.Security.SecureString SecurePassword { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - } - - public class SocketAddress - { - public override bool Equals(object comparand) => throw null; - public System.Net.Sockets.AddressFamily Family { get => throw null; } - public override int GetHashCode() => throw null; - public System.Byte this[int offset] { get => throw null; set => throw null; } - public int Size { get => throw null; } - public SocketAddress(System.Net.Sockets.AddressFamily family) => throw null; - public SocketAddress(System.Net.Sockets.AddressFamily family, int size) => throw null; - public override string ToString() => throw null; - } - - public abstract class TransportContext - { - public abstract System.Security.Authentication.ExtendedProtection.ChannelBinding GetChannelBinding(System.Security.Authentication.ExtendedProtection.ChannelBindingKind kind); - protected TransportContext() => throw null; - } - - namespace Cache - { - public enum RequestCacheLevel : int - { - BypassCache = 1, - CacheIfAvailable = 3, - CacheOnly = 2, - Default = 0, - NoCacheNoStore = 6, - Reload = 5, - Revalidate = 4, - } - - public class RequestCachePolicy - { - public System.Net.Cache.RequestCacheLevel Level { get => throw null; } - public RequestCachePolicy() => throw null; - public RequestCachePolicy(System.Net.Cache.RequestCacheLevel level) => throw null; - public override string ToString() => throw null; - } - + public string Domain { get => throw null; set { } } + public System.Net.NetworkCredential GetCredential(string host, int port, string authenticationType) => throw null; + public System.Net.NetworkCredential GetCredential(System.Uri uri, string authenticationType) => throw null; + public string Password { get => throw null; set { } } + public System.Security.SecureString SecurePassword { get => throw null; set { } } + public string UserName { get => throw null; set { } } } namespace NetworkInformation { @@ -360,185 +322,170 @@ namespace System public virtual bool Contains(System.Net.IPAddress address) => throw null; public virtual void CopyTo(System.Net.IPAddress[] array, int offset) => throw null; public virtual int Count { get => throw null; } + protected IPAddressCollection() => throw null; public virtual System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - protected internal IPAddressCollection() => throw null; public virtual bool IsReadOnly { get => throw null; } - public virtual System.Net.IPAddress this[int index] { get => throw null; } public virtual bool Remove(System.Net.IPAddress address) => throw null; + public virtual System.Net.IPAddress this[int index] { get => throw null; } } - } namespace Security { - public enum AuthenticationLevel : int + public enum AuthenticationLevel { + None = 0, MutualAuthRequested = 1, MutualAuthRequired = 2, - None = 0, } - [System.Flags] - public enum SslPolicyErrors : int + public enum SslPolicyErrors { None = 0, - RemoteCertificateChainErrors = 4, - RemoteCertificateNameMismatch = 2, RemoteCertificateNotAvailable = 1, + RemoteCertificateNameMismatch = 2, + RemoteCertificateChainErrors = 4, } - + } + public class SocketAddress + { + public SocketAddress(System.Net.Sockets.AddressFamily family) => throw null; + public SocketAddress(System.Net.Sockets.AddressFamily family, int size) => throw null; + public override bool Equals(object comparand) => throw null; + public System.Net.Sockets.AddressFamily Family { get => throw null; } + public override int GetHashCode() => throw null; + public int Size { get => throw null; } + public byte this[int offset] { get => throw null; set { } } + public override string ToString() => throw null; } namespace Sockets { - public enum AddressFamily : int + public enum AddressFamily { - AppleTalk = 16, - Atm = 22, - Banyan = 21, - Ccitt = 10, - Chaos = 5, - Cluster = 24, - ControllerAreaNetwork = 65537, - DataKit = 9, - DataLink = 13, - DecNet = 12, - Ecma = 8, - FireFox = 19, - HyperChannel = 15, - Ieee12844 = 25, - ImpLink = 3, - InterNetwork = 2, - InterNetworkV6 = 23, - Ipx = 6, - Irda = 26, - Iso = 7, - Lat = 14, - Max = 29, - NS = 6, - NetBios = 17, - NetworkDesigners = 28, - Osi = 7, - Packet = 65536, - Pup = 4, - Sna = 11, - Unix = 1, Unknown = -1, Unspecified = 0, + Unix = 1, + InterNetwork = 2, + ImpLink = 3, + Pup = 4, + Chaos = 5, + Ipx = 6, + NS = 6, + Iso = 7, + Osi = 7, + Ecma = 8, + DataKit = 9, + Ccitt = 10, + Sna = 11, + DecNet = 12, + DataLink = 13, + Lat = 14, + HyperChannel = 15, + AppleTalk = 16, + NetBios = 17, VoiceView = 18, + FireFox = 19, + Banyan = 21, + Atm = 22, + InterNetworkV6 = 23, + Cluster = 24, + Ieee12844 = 25, + Irda = 26, + NetworkDesigners = 28, + Max = 29, + Packet = 65536, + ControllerAreaNetwork = 65537, } - - public enum SocketError : int + public enum SocketError { - AccessDenied = 10013, - AddressAlreadyInUse = 10048, - AddressFamilyNotSupported = 10047, - AddressNotAvailable = 10049, - AlreadyInProgress = 10037, - ConnectionAborted = 10053, - ConnectionRefused = 10061, - ConnectionReset = 10054, - DestinationAddressRequired = 10039, - Disconnecting = 10101, - Fault = 10014, - HostDown = 10064, - HostNotFound = 11001, - HostUnreachable = 10065, - IOPending = 997, - InProgress = 10036, - Interrupted = 10004, - InvalidArgument = 10022, - IsConnected = 10056, - MessageSize = 10040, - NetworkDown = 10050, - NetworkReset = 10052, - NetworkUnreachable = 10051, - NoBufferSpaceAvailable = 10055, - NoData = 11004, - NoRecovery = 11003, - NotConnected = 10057, - NotInitialized = 10093, - NotSocket = 10038, - OperationAborted = 995, - OperationNotSupported = 10045, - ProcessLimit = 10067, - ProtocolFamilyNotSupported = 10046, - ProtocolNotSupported = 10043, - ProtocolOption = 10042, - ProtocolType = 10041, - Shutdown = 10058, SocketError = -1, - SocketNotSupported = 10044, Success = 0, - SystemNotReady = 10091, - TimedOut = 10060, + OperationAborted = 995, + IOPending = 997, + Interrupted = 10004, + AccessDenied = 10013, + Fault = 10014, + InvalidArgument = 10022, TooManyOpenSockets = 10024, - TryAgain = 11002, - TypeNotFound = 10109, - VersionNotSupported = 10092, WouldBlock = 10035, + InProgress = 10036, + AlreadyInProgress = 10037, + NotSocket = 10038, + DestinationAddressRequired = 10039, + MessageSize = 10040, + ProtocolType = 10041, + ProtocolOption = 10042, + ProtocolNotSupported = 10043, + SocketNotSupported = 10044, + OperationNotSupported = 10045, + ProtocolFamilyNotSupported = 10046, + AddressFamilyNotSupported = 10047, + AddressAlreadyInUse = 10048, + AddressNotAvailable = 10049, + NetworkDown = 10050, + NetworkUnreachable = 10051, + NetworkReset = 10052, + ConnectionAborted = 10053, + ConnectionReset = 10054, + NoBufferSpaceAvailable = 10055, + IsConnected = 10056, + NotConnected = 10057, + Shutdown = 10058, + TimedOut = 10060, + ConnectionRefused = 10061, + HostDown = 10064, + HostUnreachable = 10065, + ProcessLimit = 10067, + SystemNotReady = 10091, + VersionNotSupported = 10092, + NotInitialized = 10093, + Disconnecting = 10101, + TypeNotFound = 10109, + HostNotFound = 11001, + TryAgain = 11002, + NoRecovery = 11003, + NoData = 11004, } - public class SocketException : System.ComponentModel.Win32Exception { + public SocketException() => throw null; + public SocketException(int errorCode) => throw null; + protected SocketException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public override int ErrorCode { get => throw null; } public override string Message { get => throw null; } public System.Net.Sockets.SocketError SocketErrorCode { get => throw null; } - public SocketException() => throw null; - protected SocketException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public SocketException(int errorCode) => throw null; } - + } + public abstract class TransportContext + { + protected TransportContext() => throw null; + public abstract System.Security.Authentication.ExtendedProtection.ChannelBinding GetChannelBinding(System.Security.Authentication.ExtendedProtection.ChannelBindingKind kind); } } namespace Security { namespace Authentication { - public enum CipherAlgorithmType : int + public enum CipherAlgorithmType { - Aes = 26129, + None = 0, + Null = 24576, + Des = 26113, + Rc2 = 26114, + TripleDes = 26115, Aes128 = 26126, Aes192 = 26127, Aes256 = 26128, - Des = 26113, - None = 0, - Null = 24576, - Rc2 = 26114, + Aes = 26129, Rc4 = 26625, - TripleDes = 26115, } - - public enum ExchangeAlgorithmType : int + public enum ExchangeAlgorithmType { - DiffieHellman = 43522, None = 0, - RsaKeyX = 41984, RsaSign = 9216, + RsaKeyX = 41984, + DiffieHellman = 43522, } - - public enum HashAlgorithmType : int - { - Md5 = 32771, - None = 0, - Sha1 = 32772, - Sha256 = 32780, - Sha384 = 32781, - Sha512 = 32782, - } - - [System.Flags] - public enum SslProtocols : int - { - Default = 240, - None = 0, - Ssl2 = 12, - Ssl3 = 48, - Tls = 192, - Tls11 = 768, - Tls12 = 3072, - Tls13 = 12288, - } - namespace ExtendedProtection { public abstract class ChannelBinding : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid @@ -547,14 +494,33 @@ namespace System protected ChannelBinding(bool ownsHandle) : base(default(bool)) => throw null; public abstract int Size { get; } } - - public enum ChannelBindingKind : int + public enum ChannelBindingKind { - Endpoint = 26, - Unique = 25, Unknown = 0, + Unique = 25, + Endpoint = 26, } - + } + public enum HashAlgorithmType + { + None = 0, + Md5 = 32771, + Sha1 = 32772, + Sha256 = 32780, + Sha384 = 32781, + Sha512 = 32782, + } + [System.Flags] + public enum SslProtocols + { + None = 0, + Ssl2 = 12, + Ssl3 = 48, + Tls = 192, + Default = 240, + Tls11 = 768, + Tls12 = 3072, + Tls13 = 12288, } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Quic.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Quic.cs index 50defa4c18d..c2fa9f5de48 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Quic.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Quic.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Net.Quic, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net @@ -8,25 +7,23 @@ namespace System namespace Quic { [System.Flags] - public enum QuicAbortDirection : int + public enum QuicAbortDirection { - Both = 3, Read = 1, Write = 2, + Both = 3, } - - public class QuicClientConnectionOptions : System.Net.Quic.QuicConnectionOptions + public sealed class QuicClientConnectionOptions : System.Net.Quic.QuicConnectionOptions { - public System.Net.Security.SslClientAuthenticationOptions ClientAuthenticationOptions { get => throw null; set => throw null; } - public System.Net.IPEndPoint LocalEndPoint { get => throw null; set => throw null; } + public System.Net.Security.SslClientAuthenticationOptions ClientAuthenticationOptions { get => throw null; set { } } public QuicClientConnectionOptions() => throw null; - public System.Net.EndPoint RemoteEndPoint { get => throw null; set => throw null; } + public System.Net.IPEndPoint LocalEndPoint { get => throw null; set { } } + public System.Net.EndPoint RemoteEndPoint { get => throw null; set { } } } - - public class QuicConnection : System.IAsyncDisposable + public sealed class QuicConnection : System.IAsyncDisposable { public System.Threading.Tasks.ValueTask AcceptInboundStreamAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask CloseAsync(System.Int64 errorCode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask CloseAsync(long errorCode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask ConnectAsync(System.Net.Quic.QuicClientConnectionOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public static bool IsSupported { get => throw null; } @@ -37,42 +34,37 @@ namespace System public System.Net.IPEndPoint RemoteEndPoint { get => throw null; } public override string ToString() => throw null; } - public abstract class QuicConnectionOptions { - public System.Int64 DefaultCloseErrorCode { get => throw null; set => throw null; } - public System.Int64 DefaultStreamErrorCode { get => throw null; set => throw null; } - public System.TimeSpan IdleTimeout { get => throw null; set => throw null; } - public int MaxInboundBidirectionalStreams { get => throw null; set => throw null; } - public int MaxInboundUnidirectionalStreams { get => throw null; set => throw null; } - internal QuicConnectionOptions() => throw null; + public long DefaultCloseErrorCode { get => throw null; set { } } + public long DefaultStreamErrorCode { get => throw null; set { } } + public System.TimeSpan IdleTimeout { get => throw null; set { } } + public int MaxInboundBidirectionalStreams { get => throw null; set { } } + public int MaxInboundUnidirectionalStreams { get => throw null; set { } } } - - public enum QuicError : int + public enum QuicError { - AddressInUse = 4, + Success = 0, + InternalError = 1, ConnectionAborted = 2, - ConnectionIdle = 10, - ConnectionRefused = 8, + StreamAborted = 3, + AddressInUse = 4, + InvalidAddress = 5, ConnectionTimeout = 6, HostUnreachable = 7, - InternalError = 1, - InvalidAddress = 5, - OperationAborted = 12, - ProtocolError = 11, - StreamAborted = 3, - Success = 0, + ConnectionRefused = 8, VersionNegotiationError = 9, + ConnectionIdle = 10, + ProtocolError = 11, + OperationAborted = 12, } - - public class QuicException : System.IO.IOException + public sealed class QuicException : System.IO.IOException { - public System.Int64? ApplicationErrorCode { get => throw null; } + public long? ApplicationErrorCode { get => throw null; } + public QuicException(System.Net.Quic.QuicError error, long? applicationErrorCode, string message) => throw null; public System.Net.Quic.QuicError QuicError { get => throw null; } - public QuicException(System.Net.Quic.QuicError error, System.Int64? applicationErrorCode, string message) => throw null; } - - public class QuicListener : System.IAsyncDisposable + public sealed class QuicListener : System.IAsyncDisposable { public System.Threading.Tasks.ValueTask AcceptConnectionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; @@ -81,27 +73,24 @@ namespace System public System.Net.IPEndPoint LocalEndPoint { get => throw null; } public override string ToString() => throw null; } - - public class QuicListenerOptions + public sealed class QuicListenerOptions { - public System.Collections.Generic.List ApplicationProtocols { get => throw null; set => throw null; } - public System.Func> ConnectionOptionsCallback { get => throw null; set => throw null; } - public int ListenBacklog { get => throw null; set => throw null; } - public System.Net.IPEndPoint ListenEndPoint { get => throw null; set => throw null; } + public System.Collections.Generic.List ApplicationProtocols { get => throw null; set { } } + public System.Func> ConnectionOptionsCallback { get => throw null; set { } } public QuicListenerOptions() => throw null; + public int ListenBacklog { get => throw null; set { } } + public System.Net.IPEndPoint ListenEndPoint { get => throw null; set { } } } - - public class QuicServerConnectionOptions : System.Net.Quic.QuicConnectionOptions + public sealed class QuicServerConnectionOptions : System.Net.Quic.QuicConnectionOptions { public QuicServerConnectionOptions() => throw null; - public System.Net.Security.SslServerAuthenticationOptions ServerAuthenticationOptions { get => throw null; set => throw null; } + public System.Net.Security.SslServerAuthenticationOptions ServerAuthenticationOptions { get => throw null; set { } } } - - public class QuicStream : System.IO.Stream + public sealed class QuicStream : System.IO.Stream { - public void Abort(System.Net.Quic.QuicAbortDirection abortDirection, System.Int64 errorCode) => throw null; - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public void Abort(System.Net.Quic.QuicAbortDirection abortDirection, long errorCode) => throw null; + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanTimeout { get => throw null; } @@ -113,35 +102,33 @@ namespace System public override void EndWrite(System.IAsyncResult asyncResult) => throw null; public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Int64 Id { get => throw null; } - public override System.Int64 Length { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public long Id { get => throw null; } + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override int ReadByte() => throw null; - public override int ReadTimeout { get => throw null; set => throw null; } public System.Threading.Tasks.Task ReadsClosed { get => throw null; } - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; + public override int ReadTimeout { get => throw null; set { } } + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; public System.Net.Quic.QuicStreamType Type { get => throw null; } - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, bool completeWrites, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; - public override int WriteTimeout { get => throw null; set => throw null; } + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, bool completeWrites, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; public System.Threading.Tasks.Task WritesClosed { get => throw null; } + public override int WriteTimeout { get => throw null; set { } } } - - public enum QuicStreamType : int + public enum QuicStreamType { - Bidirectional = 1, Unidirectional = 0, + Bidirectional = 1, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Requests.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Requests.cs index 6e9d1c2ecad..9f385a4b827 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Requests.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Requests.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Net.Requests, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net @@ -8,7 +7,7 @@ namespace System public class AuthenticationManager { public static System.Net.Authorization Authenticate(string challenge, System.Net.WebRequest request, System.Net.ICredentials credentials) => throw null; - public static System.Net.ICredentialPolicy CredentialPolicy { get => throw null; set => throw null; } + public static System.Net.ICredentialPolicy CredentialPolicy { get => throw null; set { } } public static System.Collections.Specialized.StringDictionary CustomTargetNameDictionary { get => throw null; } public static System.Net.Authorization PreAuthenticate(System.Net.WebRequest request, System.Net.ICredentials credentials) => throw null; public static void Register(System.Net.IAuthenticationModule authenticationModule) => throw null; @@ -16,444 +15,40 @@ namespace System public static void Unregister(System.Net.IAuthenticationModule authenticationModule) => throw null; public static void Unregister(string authenticationScheme) => throw null; } - public class Authorization { + public bool Complete { get => throw null; } + public string ConnectionGroupId { get => throw null; } public Authorization(string token) => throw null; public Authorization(string token, bool finished) => throw null; public Authorization(string token, bool finished, string connectionGroupId) => throw null; - public bool Complete { get => throw null; } - public string ConnectionGroupId { get => throw null; } public string Message { get => throw null; } - public bool MutuallyAuthenticated { get => throw null; set => throw null; } - public string[] ProtectionRealm { get => throw null; set => throw null; } + public bool MutuallyAuthenticated { get => throw null; set { } } + public string[] ProtectionRealm { get => throw null; set { } } } - - public class FileWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable - { - public override void Abort() => throw null; - public override System.IAsyncResult BeginGetRequestStream(System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginGetResponse(System.AsyncCallback callback, object state) => throw null; - public override string ConnectionGroupName { get => throw null; set => throw null; } - public override System.Int64 ContentLength { get => throw null; set => throw null; } - public override string ContentType { get => throw null; set => throw null; } - public override System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public override System.IO.Stream EndGetRequestStream(System.IAsyncResult asyncResult) => throw null; - public override System.Net.WebResponse EndGetResponse(System.IAsyncResult asyncResult) => throw null; - protected FileWebRequest(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - protected override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public override System.IO.Stream GetRequestStream() => throw null; - public override System.Threading.Tasks.Task GetRequestStreamAsync() => throw null; - public override System.Net.WebResponse GetResponse() => throw null; - public override System.Threading.Tasks.Task GetResponseAsync() => throw null; - public override System.Net.WebHeaderCollection Headers { get => throw null; } - public override string Method { get => throw null; set => throw null; } - public override bool PreAuthenticate { get => throw null; set => throw null; } - public override System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public override System.Uri RequestUri { get => throw null; } - public override int Timeout { get => throw null; set => throw null; } - public override bool UseDefaultCredentials { get => throw null; set => throw null; } - } - - public class FileWebResponse : System.Net.WebResponse, System.Runtime.Serialization.ISerializable - { - public override void Close() => throw null; - public override System.Int64 ContentLength { get => throw null; } - public override string ContentType { get => throw null; } - protected FileWebResponse(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - protected override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public override System.IO.Stream GetResponseStream() => throw null; - public override System.Net.WebHeaderCollection Headers { get => throw null; } - public override System.Uri ResponseUri { get => throw null; } - public override bool SupportsHeaders { get => throw null; } - } - - public enum FtpStatusCode : int - { - AccountNeeded = 532, - ActionAbortedLocalProcessingError = 451, - ActionAbortedUnknownPageType = 551, - ActionNotTakenFileUnavailable = 550, - ActionNotTakenFileUnavailableOrBusy = 450, - ActionNotTakenFilenameNotAllowed = 553, - ActionNotTakenInsufficientSpace = 452, - ArgumentSyntaxError = 501, - BadCommandSequence = 503, - CantOpenData = 425, - ClosingControl = 221, - ClosingData = 226, - CommandExtraneous = 202, - CommandNotImplemented = 502, - CommandOK = 200, - CommandSyntaxError = 500, - ConnectionClosed = 426, - DataAlreadyOpen = 125, - DirectoryStatus = 212, - EnteringPassive = 227, - FileActionAborted = 552, - FileActionOK = 250, - FileCommandPending = 350, - FileStatus = 213, - LoggedInProceed = 230, - NeedLoginAccount = 332, - NotLoggedIn = 530, - OpeningData = 150, - PathnameCreated = 257, - RestartMarker = 110, - SendPasswordCommand = 331, - SendUserCommand = 220, - ServerWantsSecureSession = 234, - ServiceNotAvailable = 421, - ServiceTemporarilyNotAvailable = 120, - SystemType = 215, - Undefined = 0, - } - - public class FtpWebRequest : System.Net.WebRequest - { - public override void Abort() => throw null; - public override System.IAsyncResult BeginGetRequestStream(System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginGetResponse(System.AsyncCallback callback, object state) => throw null; - public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; set => throw null; } - public override string ConnectionGroupName { get => throw null; set => throw null; } - public override System.Int64 ContentLength { get => throw null; set => throw null; } - public System.Int64 ContentOffset { get => throw null; set => throw null; } - public override string ContentType { get => throw null; set => throw null; } - public override System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public static System.Net.Cache.RequestCachePolicy DefaultCachePolicy { get => throw null; set => throw null; } - public bool EnableSsl { get => throw null; set => throw null; } - public override System.IO.Stream EndGetRequestStream(System.IAsyncResult asyncResult) => throw null; - public override System.Net.WebResponse EndGetResponse(System.IAsyncResult asyncResult) => throw null; - public override System.IO.Stream GetRequestStream() => throw null; - public override System.Net.WebResponse GetResponse() => throw null; - public override System.Net.WebHeaderCollection Headers { get => throw null; set => throw null; } - public bool KeepAlive { get => throw null; set => throw null; } - public override string Method { get => throw null; set => throw null; } - public override bool PreAuthenticate { get => throw null; set => throw null; } - public override System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public int ReadWriteTimeout { get => throw null; set => throw null; } - public string RenameTo { get => throw null; set => throw null; } - public override System.Uri RequestUri { get => throw null; } - public System.Net.ServicePoint ServicePoint { get => throw null; } - public override int Timeout { get => throw null; set => throw null; } - public bool UseBinary { get => throw null; set => throw null; } - public override bool UseDefaultCredentials { get => throw null; set => throw null; } - public bool UsePassive { get => throw null; set => throw null; } - } - - public class FtpWebResponse : System.Net.WebResponse, System.IDisposable - { - public string BannerMessage { get => throw null; } - public override void Close() => throw null; - public override System.Int64 ContentLength { get => throw null; } - public string ExitMessage { get => throw null; } - public override System.IO.Stream GetResponseStream() => throw null; - public override System.Net.WebHeaderCollection Headers { get => throw null; } - public System.DateTime LastModified { get => throw null; } - public override System.Uri ResponseUri { get => throw null; } - public System.Net.FtpStatusCode StatusCode { get => throw null; } - public string StatusDescription { get => throw null; } - public override bool SupportsHeaders { get => throw null; } - public string WelcomeMessage { get => throw null; } - } - - public class GlobalProxySelection - { - public static System.Net.IWebProxy GetEmptyWebProxy() => throw null; - public GlobalProxySelection() => throw null; - public static System.Net.IWebProxy Select { get => throw null; set => throw null; } - } - - public delegate void HttpContinueDelegate(int StatusCode, System.Net.WebHeaderCollection httpHeaders); - - public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable - { - public override void Abort() => throw null; - public string Accept { get => throw null; set => throw null; } - public void AddRange(int range) => throw null; - public void AddRange(int from, int to) => throw null; - public void AddRange(System.Int64 range) => throw null; - public void AddRange(System.Int64 from, System.Int64 to) => throw null; - public void AddRange(string rangeSpecifier, int range) => throw null; - public void AddRange(string rangeSpecifier, int from, int to) => throw null; - public void AddRange(string rangeSpecifier, System.Int64 range) => throw null; - public void AddRange(string rangeSpecifier, System.Int64 from, System.Int64 to) => throw null; - public System.Uri Address { get => throw null; } - public virtual bool AllowAutoRedirect { get => throw null; set => throw null; } - public virtual bool AllowReadStreamBuffering { get => throw null; set => throw null; } - public virtual bool AllowWriteStreamBuffering { get => throw null; set => throw null; } - public System.Net.DecompressionMethods AutomaticDecompression { get => throw null; set => throw null; } - public override System.IAsyncResult BeginGetRequestStream(System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginGetResponse(System.AsyncCallback callback, object state) => throw null; - public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; set => throw null; } - public string Connection { get => throw null; set => throw null; } - public override string ConnectionGroupName { get => throw null; set => throw null; } - public override System.Int64 ContentLength { get => throw null; set => throw null; } - public override string ContentType { get => throw null; set => throw null; } - public System.Net.HttpContinueDelegate ContinueDelegate { get => throw null; set => throw null; } - public int ContinueTimeout { get => throw null; set => throw null; } - public virtual System.Net.CookieContainer CookieContainer { get => throw null; set => throw null; } - public override System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public System.DateTime Date { get => throw null; set => throw null; } - public static System.Net.Cache.RequestCachePolicy DefaultCachePolicy { get => throw null; set => throw null; } - public static int DefaultMaximumErrorResponseLength { get => throw null; set => throw null; } - public static int DefaultMaximumResponseHeadersLength { get => throw null; set => throw null; } - public override System.IO.Stream EndGetRequestStream(System.IAsyncResult asyncResult) => throw null; - public System.IO.Stream EndGetRequestStream(System.IAsyncResult asyncResult, out System.Net.TransportContext context) => throw null; - public override System.Net.WebResponse EndGetResponse(System.IAsyncResult asyncResult) => throw null; - public string Expect { get => throw null; set => throw null; } - protected override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public override System.IO.Stream GetRequestStream() => throw null; - public System.IO.Stream GetRequestStream(out System.Net.TransportContext context) => throw null; - public override System.Net.WebResponse GetResponse() => throw null; - public virtual bool HaveResponse { get => throw null; } - public override System.Net.WebHeaderCollection Headers { get => throw null; set => throw null; } - public string Host { get => throw null; set => throw null; } - protected HttpWebRequest(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public System.DateTime IfModifiedSince { get => throw null; set => throw null; } - public bool KeepAlive { get => throw null; set => throw null; } - public int MaximumAutomaticRedirections { get => throw null; set => throw null; } - public int MaximumResponseHeadersLength { get => throw null; set => throw null; } - public string MediaType { get => throw null; set => throw null; } - public override string Method { get => throw null; set => throw null; } - public bool Pipelined { get => throw null; set => throw null; } - public override bool PreAuthenticate { get => throw null; set => throw null; } - public System.Version ProtocolVersion { get => throw null; set => throw null; } - public override System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public int ReadWriteTimeout { get => throw null; set => throw null; } - public string Referer { get => throw null; set => throw null; } - public override System.Uri RequestUri { get => throw null; } - public bool SendChunked { get => throw null; set => throw null; } - public System.Net.Security.RemoteCertificateValidationCallback ServerCertificateValidationCallback { get => throw null; set => throw null; } - public System.Net.ServicePoint ServicePoint { get => throw null; } - public virtual bool SupportsCookieContainer { get => throw null; } - public override int Timeout { get => throw null; set => throw null; } - public string TransferEncoding { get => throw null; set => throw null; } - public bool UnsafeAuthenticatedConnectionSharing { get => throw null; set => throw null; } - public override bool UseDefaultCredentials { get => throw null; set => throw null; } - public string UserAgent { get => throw null; set => throw null; } - } - - public class HttpWebResponse : System.Net.WebResponse, System.Runtime.Serialization.ISerializable - { - public string CharacterSet { get => throw null; } - public override void Close() => throw null; - public string ContentEncoding { get => throw null; } - public override System.Int64 ContentLength { get => throw null; } - public override string ContentType { get => throw null; } - public virtual System.Net.CookieCollection Cookies { get => throw null; set => throw null; } - protected override void Dispose(bool disposing) => throw null; - protected override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public string GetResponseHeader(string headerName) => throw null; - public override System.IO.Stream GetResponseStream() => throw null; - public override System.Net.WebHeaderCollection Headers { get => throw null; } - public HttpWebResponse() => throw null; - protected HttpWebResponse(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public override bool IsMutuallyAuthenticated { get => throw null; } - public System.DateTime LastModified { get => throw null; } - public virtual string Method { get => throw null; } - public System.Version ProtocolVersion { get => throw null; } - public override System.Uri ResponseUri { get => throw null; } - public string Server { get => throw null; } - public virtual System.Net.HttpStatusCode StatusCode { get => throw null; } - public virtual string StatusDescription { get => throw null; } - public override bool SupportsHeaders { get => throw null; } - } - - public interface IAuthenticationModule - { - System.Net.Authorization Authenticate(string challenge, System.Net.WebRequest request, System.Net.ICredentials credentials); - string AuthenticationType { get; } - bool CanPreAuthenticate { get; } - System.Net.Authorization PreAuthenticate(System.Net.WebRequest request, System.Net.ICredentials credentials); - } - - public interface ICredentialPolicy - { - bool ShouldSendCredential(System.Uri challengeUri, System.Net.WebRequest request, System.Net.NetworkCredential credential, System.Net.IAuthenticationModule authenticationModule); - } - - public interface IWebRequestCreate - { - System.Net.WebRequest Create(System.Uri uri); - } - - public class ProtocolViolationException : System.InvalidOperationException, System.Runtime.Serialization.ISerializable - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public ProtocolViolationException() => throw null; - protected ProtocolViolationException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public ProtocolViolationException(string message) => throw null; - } - - public class WebException : System.InvalidOperationException, System.Runtime.Serialization.ISerializable - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public System.Net.WebResponse Response { get => throw null; } - public System.Net.WebExceptionStatus Status { get => throw null; } - public WebException() => throw null; - protected WebException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public WebException(string message) => throw null; - public WebException(string message, System.Exception innerException) => throw null; - public WebException(string message, System.Exception innerException, System.Net.WebExceptionStatus status, System.Net.WebResponse response) => throw null; - public WebException(string message, System.Net.WebExceptionStatus status) => throw null; - } - - public enum WebExceptionStatus : int - { - CacheEntryNotFound = 18, - ConnectFailure = 2, - ConnectionClosed = 8, - KeepAliveFailure = 12, - MessageLengthLimitExceeded = 17, - NameResolutionFailure = 1, - Pending = 13, - PipelineFailure = 5, - ProtocolError = 7, - ProxyNameResolutionFailure = 15, - ReceiveFailure = 3, - RequestCanceled = 6, - RequestProhibitedByCachePolicy = 19, - RequestProhibitedByProxy = 20, - SecureChannelFailure = 10, - SendFailure = 4, - ServerProtocolViolation = 11, - Success = 0, - Timeout = 14, - TrustFailure = 9, - UnknownError = 16, - } - - public abstract class WebRequest : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable - { - public virtual void Abort() => throw null; - public System.Net.Security.AuthenticationLevel AuthenticationLevel { get => throw null; set => throw null; } - public virtual System.IAsyncResult BeginGetRequestStream(System.AsyncCallback callback, object state) => throw null; - public virtual System.IAsyncResult BeginGetResponse(System.AsyncCallback callback, object state) => throw null; - public virtual System.Net.Cache.RequestCachePolicy CachePolicy { get => throw null; set => throw null; } - public virtual string ConnectionGroupName { get => throw null; set => throw null; } - public virtual System.Int64 ContentLength { get => throw null; set => throw null; } - public virtual string ContentType { get => throw null; set => throw null; } - public static System.Net.WebRequest Create(System.Uri requestUri) => throw null; - public static System.Net.WebRequest Create(string requestUriString) => throw null; - public static System.Net.WebRequest CreateDefault(System.Uri requestUri) => throw null; - public static System.Net.HttpWebRequest CreateHttp(System.Uri requestUri) => throw null; - public static System.Net.HttpWebRequest CreateHttp(string requestUriString) => throw null; - public virtual System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public static System.Net.Cache.RequestCachePolicy DefaultCachePolicy { get => throw null; set => throw null; } - public static System.Net.IWebProxy DefaultWebProxy { get => throw null; set => throw null; } - public virtual System.IO.Stream EndGetRequestStream(System.IAsyncResult asyncResult) => throw null; - public virtual System.Net.WebResponse EndGetResponse(System.IAsyncResult asyncResult) => throw null; - protected virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public virtual System.IO.Stream GetRequestStream() => throw null; - public virtual System.Threading.Tasks.Task GetRequestStreamAsync() => throw null; - public virtual System.Net.WebResponse GetResponse() => throw null; - public virtual System.Threading.Tasks.Task GetResponseAsync() => throw null; - public static System.Net.IWebProxy GetSystemWebProxy() => throw null; - public virtual System.Net.WebHeaderCollection Headers { get => throw null; set => throw null; } - public System.Security.Principal.TokenImpersonationLevel ImpersonationLevel { get => throw null; set => throw null; } - public virtual string Method { get => throw null; set => throw null; } - public virtual bool PreAuthenticate { get => throw null; set => throw null; } - public virtual System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public static bool RegisterPrefix(string prefix, System.Net.IWebRequestCreate creator) => throw null; - public virtual System.Uri RequestUri { get => throw null; } - public virtual int Timeout { get => throw null; set => throw null; } - public virtual bool UseDefaultCredentials { get => throw null; set => throw null; } - protected WebRequest() => throw null; - protected WebRequest(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - } - - public static class WebRequestMethods - { - public static class File - { - public const string DownloadFile = default; - public const string UploadFile = default; - } - - - public static class Ftp - { - public const string AppendFile = default; - public const string DeleteFile = default; - public const string DownloadFile = default; - public const string GetDateTimestamp = default; - public const string GetFileSize = default; - public const string ListDirectory = default; - public const string ListDirectoryDetails = default; - public const string MakeDirectory = default; - public const string PrintWorkingDirectory = default; - public const string RemoveDirectory = default; - public const string Rename = default; - public const string UploadFile = default; - public const string UploadFileWithUniqueName = default; - } - - - public static class Http - { - public const string Connect = default; - public const string Get = default; - public const string Head = default; - public const string MkCol = default; - public const string Post = default; - public const string Put = default; - } - - - } - - public abstract class WebResponse : System.MarshalByRefObject, System.IDisposable, System.Runtime.Serialization.ISerializable - { - public virtual void Close() => throw null; - public virtual System.Int64 ContentLength { get => throw null; set => throw null; } - public virtual string ContentType { get => throw null; set => throw null; } - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - protected virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public virtual System.IO.Stream GetResponseStream() => throw null; - public virtual System.Net.WebHeaderCollection Headers { get => throw null; } - public virtual bool IsFromCache { get => throw null; } - public virtual bool IsMutuallyAuthenticated { get => throw null; } - public virtual System.Uri ResponseUri { get => throw null; } - public virtual bool SupportsHeaders { get => throw null; } - protected WebResponse() => throw null; - protected WebResponse(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - } - namespace Cache { - public enum HttpCacheAgeControl : int + public enum HttpCacheAgeControl { + None = 0, + MinFresh = 1, MaxAge = 2, - MaxAgeAndMaxStale = 6, MaxAgeAndMinFresh = 3, MaxStale = 4, - MinFresh = 1, - None = 0, + MaxAgeAndMaxStale = 6, } - - public enum HttpRequestCacheLevel : int + public enum HttpRequestCacheLevel { - BypassCache = 1, - CacheIfAvailable = 3, - CacheOnly = 2, - CacheOrNextCacheOnly = 7, Default = 0, - NoCacheNoStore = 6, - Refresh = 8, - Reload = 5, + BypassCache = 1, + CacheOnly = 2, + CacheIfAvailable = 3, Revalidate = 4, + Reload = 5, + NoCacheNoStore = 6, + CacheOrNextCacheOnly = 7, + Refresh = 8, } - public class HttpRequestCachePolicy : System.Net.Cache.RequestCachePolicy { public System.DateTime CacheSyncDate { get => throw null; } @@ -469,7 +64,382 @@ namespace System public System.TimeSpan MinFresh { get => throw null; } public override string ToString() => throw null; } - + } + public class FileWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable + { + public override void Abort() => throw null; + public override System.IAsyncResult BeginGetRequestStream(System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginGetResponse(System.AsyncCallback callback, object state) => throw null; + public override string ConnectionGroupName { get => throw null; set { } } + public override long ContentLength { get => throw null; set { } } + public override string ContentType { get => throw null; set { } } + public override System.Net.ICredentials Credentials { get => throw null; set { } } + protected FileWebRequest(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public override System.IO.Stream EndGetRequestStream(System.IAsyncResult asyncResult) => throw null; + public override System.Net.WebResponse EndGetResponse(System.IAsyncResult asyncResult) => throw null; + protected override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public override System.IO.Stream GetRequestStream() => throw null; + public override System.Threading.Tasks.Task GetRequestStreamAsync() => throw null; + public override System.Net.WebResponse GetResponse() => throw null; + public override System.Threading.Tasks.Task GetResponseAsync() => throw null; + public override System.Net.WebHeaderCollection Headers { get => throw null; } + public override string Method { get => throw null; set { } } + public override bool PreAuthenticate { get => throw null; set { } } + public override System.Net.IWebProxy Proxy { get => throw null; set { } } + public override System.Uri RequestUri { get => throw null; } + public override int Timeout { get => throw null; set { } } + public override bool UseDefaultCredentials { get => throw null; set { } } + } + public class FileWebResponse : System.Net.WebResponse, System.Runtime.Serialization.ISerializable + { + public override void Close() => throw null; + public override long ContentLength { get => throw null; } + public override string ContentType { get => throw null; } + protected FileWebResponse(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + protected override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public override System.IO.Stream GetResponseStream() => throw null; + public override System.Net.WebHeaderCollection Headers { get => throw null; } + public override System.Uri ResponseUri { get => throw null; } + public override bool SupportsHeaders { get => throw null; } + } + public enum FtpStatusCode + { + Undefined = 0, + RestartMarker = 110, + ServiceTemporarilyNotAvailable = 120, + DataAlreadyOpen = 125, + OpeningData = 150, + CommandOK = 200, + CommandExtraneous = 202, + DirectoryStatus = 212, + FileStatus = 213, + SystemType = 215, + SendUserCommand = 220, + ClosingControl = 221, + ClosingData = 226, + EnteringPassive = 227, + LoggedInProceed = 230, + ServerWantsSecureSession = 234, + FileActionOK = 250, + PathnameCreated = 257, + SendPasswordCommand = 331, + NeedLoginAccount = 332, + FileCommandPending = 350, + ServiceNotAvailable = 421, + CantOpenData = 425, + ConnectionClosed = 426, + ActionNotTakenFileUnavailableOrBusy = 450, + ActionAbortedLocalProcessingError = 451, + ActionNotTakenInsufficientSpace = 452, + CommandSyntaxError = 500, + ArgumentSyntaxError = 501, + CommandNotImplemented = 502, + BadCommandSequence = 503, + NotLoggedIn = 530, + AccountNeeded = 532, + ActionNotTakenFileUnavailable = 550, + ActionAbortedUnknownPageType = 551, + FileActionAborted = 552, + ActionNotTakenFilenameNotAllowed = 553, + } + public sealed class FtpWebRequest : System.Net.WebRequest + { + public override void Abort() => throw null; + public override System.IAsyncResult BeginGetRequestStream(System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginGetResponse(System.AsyncCallback callback, object state) => throw null; + public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; set { } } + public override string ConnectionGroupName { get => throw null; set { } } + public override long ContentLength { get => throw null; set { } } + public long ContentOffset { get => throw null; set { } } + public override string ContentType { get => throw null; set { } } + public override System.Net.ICredentials Credentials { get => throw null; set { } } + public static System.Net.Cache.RequestCachePolicy DefaultCachePolicy { get => throw null; set { } } + public bool EnableSsl { get => throw null; set { } } + public override System.IO.Stream EndGetRequestStream(System.IAsyncResult asyncResult) => throw null; + public override System.Net.WebResponse EndGetResponse(System.IAsyncResult asyncResult) => throw null; + public override System.IO.Stream GetRequestStream() => throw null; + public override System.Net.WebResponse GetResponse() => throw null; + public override System.Net.WebHeaderCollection Headers { get => throw null; set { } } + public bool KeepAlive { get => throw null; set { } } + public override string Method { get => throw null; set { } } + public override bool PreAuthenticate { get => throw null; set { } } + public override System.Net.IWebProxy Proxy { get => throw null; set { } } + public int ReadWriteTimeout { get => throw null; set { } } + public string RenameTo { get => throw null; set { } } + public override System.Uri RequestUri { get => throw null; } + public System.Net.ServicePoint ServicePoint { get => throw null; } + public override int Timeout { get => throw null; set { } } + public bool UseBinary { get => throw null; set { } } + public override bool UseDefaultCredentials { get => throw null; set { } } + public bool UsePassive { get => throw null; set { } } + } + public class FtpWebResponse : System.Net.WebResponse, System.IDisposable + { + public string BannerMessage { get => throw null; } + public override void Close() => throw null; + public override long ContentLength { get => throw null; } + public string ExitMessage { get => throw null; } + public override System.IO.Stream GetResponseStream() => throw null; + public override System.Net.WebHeaderCollection Headers { get => throw null; } + public System.DateTime LastModified { get => throw null; } + public override System.Uri ResponseUri { get => throw null; } + public System.Net.FtpStatusCode StatusCode { get => throw null; } + public string StatusDescription { get => throw null; } + public override bool SupportsHeaders { get => throw null; } + public string WelcomeMessage { get => throw null; } + } + public class GlobalProxySelection + { + public GlobalProxySelection() => throw null; + public static System.Net.IWebProxy GetEmptyWebProxy() => throw null; + public static System.Net.IWebProxy Select { get => throw null; set { } } + } + public delegate void HttpContinueDelegate(int StatusCode, System.Net.WebHeaderCollection httpHeaders); + public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable + { + public override void Abort() => throw null; + public string Accept { get => throw null; set { } } + public void AddRange(int range) => throw null; + public void AddRange(int from, int to) => throw null; + public void AddRange(long range) => throw null; + public void AddRange(long from, long to) => throw null; + public void AddRange(string rangeSpecifier, int range) => throw null; + public void AddRange(string rangeSpecifier, int from, int to) => throw null; + public void AddRange(string rangeSpecifier, long range) => throw null; + public void AddRange(string rangeSpecifier, long from, long to) => throw null; + public System.Uri Address { get => throw null; } + public virtual bool AllowAutoRedirect { get => throw null; set { } } + public virtual bool AllowReadStreamBuffering { get => throw null; set { } } + public virtual bool AllowWriteStreamBuffering { get => throw null; set { } } + public System.Net.DecompressionMethods AutomaticDecompression { get => throw null; set { } } + public override System.IAsyncResult BeginGetRequestStream(System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginGetResponse(System.AsyncCallback callback, object state) => throw null; + public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; set { } } + public string Connection { get => throw null; set { } } + public override string ConnectionGroupName { get => throw null; set { } } + public override long ContentLength { get => throw null; set { } } + public override string ContentType { get => throw null; set { } } + public System.Net.HttpContinueDelegate ContinueDelegate { get => throw null; set { } } + public int ContinueTimeout { get => throw null; set { } } + public virtual System.Net.CookieContainer CookieContainer { get => throw null; set { } } + public override System.Net.ICredentials Credentials { get => throw null; set { } } + protected HttpWebRequest(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public System.DateTime Date { get => throw null; set { } } + public static System.Net.Cache.RequestCachePolicy DefaultCachePolicy { get => throw null; set { } } + public static int DefaultMaximumErrorResponseLength { get => throw null; set { } } + public static int DefaultMaximumResponseHeadersLength { get => throw null; set { } } + public override System.IO.Stream EndGetRequestStream(System.IAsyncResult asyncResult) => throw null; + public System.IO.Stream EndGetRequestStream(System.IAsyncResult asyncResult, out System.Net.TransportContext context) => throw null; + public override System.Net.WebResponse EndGetResponse(System.IAsyncResult asyncResult) => throw null; + public string Expect { get => throw null; set { } } + protected override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public override System.IO.Stream GetRequestStream() => throw null; + public System.IO.Stream GetRequestStream(out System.Net.TransportContext context) => throw null; + public override System.Net.WebResponse GetResponse() => throw null; + public virtual bool HaveResponse { get => throw null; } + public override System.Net.WebHeaderCollection Headers { get => throw null; set { } } + public string Host { get => throw null; set { } } + public System.DateTime IfModifiedSince { get => throw null; set { } } + public bool KeepAlive { get => throw null; set { } } + public int MaximumAutomaticRedirections { get => throw null; set { } } + public int MaximumResponseHeadersLength { get => throw null; set { } } + public string MediaType { get => throw null; set { } } + public override string Method { get => throw null; set { } } + public bool Pipelined { get => throw null; set { } } + public override bool PreAuthenticate { get => throw null; set { } } + public System.Version ProtocolVersion { get => throw null; set { } } + public override System.Net.IWebProxy Proxy { get => throw null; set { } } + public int ReadWriteTimeout { get => throw null; set { } } + public string Referer { get => throw null; set { } } + public override System.Uri RequestUri { get => throw null; } + public bool SendChunked { get => throw null; set { } } + public System.Net.Security.RemoteCertificateValidationCallback ServerCertificateValidationCallback { get => throw null; set { } } + public System.Net.ServicePoint ServicePoint { get => throw null; } + public virtual bool SupportsCookieContainer { get => throw null; } + public override int Timeout { get => throw null; set { } } + public string TransferEncoding { get => throw null; set { } } + public bool UnsafeAuthenticatedConnectionSharing { get => throw null; set { } } + public override bool UseDefaultCredentials { get => throw null; set { } } + public string UserAgent { get => throw null; set { } } + } + public class HttpWebResponse : System.Net.WebResponse, System.Runtime.Serialization.ISerializable + { + public string CharacterSet { get => throw null; } + public override void Close() => throw null; + public string ContentEncoding { get => throw null; } + public override long ContentLength { get => throw null; } + public override string ContentType { get => throw null; } + public virtual System.Net.CookieCollection Cookies { get => throw null; set { } } + public HttpWebResponse() => throw null; + protected HttpWebResponse(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public string GetResponseHeader(string headerName) => throw null; + public override System.IO.Stream GetResponseStream() => throw null; + public override System.Net.WebHeaderCollection Headers { get => throw null; } + public override bool IsMutuallyAuthenticated { get => throw null; } + public System.DateTime LastModified { get => throw null; } + public virtual string Method { get => throw null; } + public System.Version ProtocolVersion { get => throw null; } + public override System.Uri ResponseUri { get => throw null; } + public string Server { get => throw null; } + public virtual System.Net.HttpStatusCode StatusCode { get => throw null; } + public virtual string StatusDescription { get => throw null; } + public override bool SupportsHeaders { get => throw null; } + } + public interface IAuthenticationModule + { + System.Net.Authorization Authenticate(string challenge, System.Net.WebRequest request, System.Net.ICredentials credentials); + string AuthenticationType { get; } + bool CanPreAuthenticate { get; } + System.Net.Authorization PreAuthenticate(System.Net.WebRequest request, System.Net.ICredentials credentials); + } + public interface ICredentialPolicy + { + bool ShouldSendCredential(System.Uri challengeUri, System.Net.WebRequest request, System.Net.NetworkCredential credential, System.Net.IAuthenticationModule authenticationModule); + } + public interface IWebRequestCreate + { + System.Net.WebRequest Create(System.Uri uri); + } + public class ProtocolViolationException : System.InvalidOperationException, System.Runtime.Serialization.ISerializable + { + public ProtocolViolationException() => throw null; + protected ProtocolViolationException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public ProtocolViolationException(string message) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + } + public class WebException : System.InvalidOperationException, System.Runtime.Serialization.ISerializable + { + public WebException() => throw null; + protected WebException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public WebException(string message) => throw null; + public WebException(string message, System.Exception innerException) => throw null; + public WebException(string message, System.Exception innerException, System.Net.WebExceptionStatus status, System.Net.WebResponse response) => throw null; + public WebException(string message, System.Net.WebExceptionStatus status) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public System.Net.WebResponse Response { get => throw null; } + public System.Net.WebExceptionStatus Status { get => throw null; } + } + public enum WebExceptionStatus + { + Success = 0, + NameResolutionFailure = 1, + ConnectFailure = 2, + ReceiveFailure = 3, + SendFailure = 4, + PipelineFailure = 5, + RequestCanceled = 6, + ProtocolError = 7, + ConnectionClosed = 8, + TrustFailure = 9, + SecureChannelFailure = 10, + ServerProtocolViolation = 11, + KeepAliveFailure = 12, + Pending = 13, + Timeout = 14, + ProxyNameResolutionFailure = 15, + UnknownError = 16, + MessageLengthLimitExceeded = 17, + CacheEntryNotFound = 18, + RequestProhibitedByCachePolicy = 19, + RequestProhibitedByProxy = 20, + } + public abstract class WebRequest : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable + { + public virtual void Abort() => throw null; + public System.Net.Security.AuthenticationLevel AuthenticationLevel { get => throw null; set { } } + public virtual System.IAsyncResult BeginGetRequestStream(System.AsyncCallback callback, object state) => throw null; + public virtual System.IAsyncResult BeginGetResponse(System.AsyncCallback callback, object state) => throw null; + public virtual System.Net.Cache.RequestCachePolicy CachePolicy { get => throw null; set { } } + public virtual string ConnectionGroupName { get => throw null; set { } } + public virtual long ContentLength { get => throw null; set { } } + public virtual string ContentType { get => throw null; set { } } + public static System.Net.WebRequest Create(string requestUriString) => throw null; + public static System.Net.WebRequest Create(System.Uri requestUri) => throw null; + public static System.Net.WebRequest CreateDefault(System.Uri requestUri) => throw null; + public static System.Net.HttpWebRequest CreateHttp(string requestUriString) => throw null; + public static System.Net.HttpWebRequest CreateHttp(System.Uri requestUri) => throw null; + public virtual System.Net.ICredentials Credentials { get => throw null; set { } } + protected WebRequest() => throw null; + protected WebRequest(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public static System.Net.Cache.RequestCachePolicy DefaultCachePolicy { get => throw null; set { } } + public static System.Net.IWebProxy DefaultWebProxy { get => throw null; set { } } + public virtual System.IO.Stream EndGetRequestStream(System.IAsyncResult asyncResult) => throw null; + public virtual System.Net.WebResponse EndGetResponse(System.IAsyncResult asyncResult) => throw null; + protected virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public virtual System.IO.Stream GetRequestStream() => throw null; + public virtual System.Threading.Tasks.Task GetRequestStreamAsync() => throw null; + public virtual System.Net.WebResponse GetResponse() => throw null; + public virtual System.Threading.Tasks.Task GetResponseAsync() => throw null; + public static System.Net.IWebProxy GetSystemWebProxy() => throw null; + public virtual System.Net.WebHeaderCollection Headers { get => throw null; set { } } + public System.Security.Principal.TokenImpersonationLevel ImpersonationLevel { get => throw null; set { } } + public virtual string Method { get => throw null; set { } } + public virtual bool PreAuthenticate { get => throw null; set { } } + public virtual System.Net.IWebProxy Proxy { get => throw null; set { } } + public static bool RegisterPrefix(string prefix, System.Net.IWebRequestCreate creator) => throw null; + public virtual System.Uri RequestUri { get => throw null; } + public virtual int Timeout { get => throw null; set { } } + public virtual bool UseDefaultCredentials { get => throw null; set { } } + } + public static class WebRequestMethods + { + public static class File + { + public static string DownloadFile; + public static string UploadFile; + } + public static class Ftp + { + public static string AppendFile; + public static string DeleteFile; + public static string DownloadFile; + public static string GetDateTimestamp; + public static string GetFileSize; + public static string ListDirectory; + public static string ListDirectoryDetails; + public static string MakeDirectory; + public static string PrintWorkingDirectory; + public static string RemoveDirectory; + public static string Rename; + public static string UploadFile; + public static string UploadFileWithUniqueName; + } + public static class Http + { + public static string Connect; + public static string Get; + public static string Head; + public static string MkCol; + public static string Post; + public static string Put; + } + } + public abstract class WebResponse : System.MarshalByRefObject, System.IDisposable, System.Runtime.Serialization.ISerializable + { + public virtual void Close() => throw null; + public virtual long ContentLength { get => throw null; set { } } + public virtual string ContentType { get => throw null; set { } } + protected WebResponse() => throw null; + protected WebResponse(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + protected virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public virtual System.IO.Stream GetResponseStream() => throw null; + public virtual System.Net.WebHeaderCollection Headers { get => throw null; } + public virtual bool IsFromCache { get => throw null; } + public virtual bool IsMutuallyAuthenticated { get => throw null; } + public virtual System.Uri ResponseUri { get => throw null; } + public virtual bool SupportsHeaders { get => throw null; } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Security.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Security.cs index 120e83ce903..aac87009ee0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Security.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Security.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Net.Security, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net @@ -20,26 +19,24 @@ namespace System public abstract bool IsSigned { get; } public bool LeaveInnerStreamOpen { get => throw null; } } - - public class CipherSuitesPolicy + public sealed class CipherSuitesPolicy { public System.Collections.Generic.IEnumerable AllowedCipherSuites { get => throw null; } public CipherSuitesPolicy(System.Collections.Generic.IEnumerable allowedCipherSuites) => throw null; } - - public enum EncryptionPolicy : int + public enum EncryptionPolicy { + RequireEncryption = 0, AllowNoEncryption = 1, NoEncryption = 2, - RequireEncryption = 0, } - public delegate System.Security.Cryptography.X509Certificates.X509Certificate LocalCertificateSelectionCallback(object sender, string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection localCertificates, System.Security.Cryptography.X509Certificates.X509Certificate remoteCertificate, string[] acceptableIssuers); - - public class NegotiateAuthentication : System.IDisposable + public sealed class NegotiateAuthentication : System.IDisposable { + public NegotiateAuthentication(System.Net.Security.NegotiateAuthenticationClientOptions clientOptions) => throw null; + public NegotiateAuthentication(System.Net.Security.NegotiateAuthenticationServerOptions serverOptions) => throw null; public void Dispose() => throw null; - public System.Byte[] GetOutgoingBlob(System.ReadOnlySpan incomingBlob, out System.Net.Security.NegotiateAuthenticationStatusCode statusCode) => throw null; + public byte[] GetOutgoingBlob(System.ReadOnlySpan incomingBlob, out System.Net.Security.NegotiateAuthenticationStatusCode statusCode) => throw null; public string GetOutgoingBlob(string incomingBlob, out System.Net.Security.NegotiateAuthenticationStatusCode statusCode) => throw null; public System.Security.Principal.TokenImpersonationLevel ImpersonationLevel { get => throw null; } public bool IsAuthenticated { get => throw null; } @@ -47,60 +44,54 @@ namespace System public bool IsMutuallyAuthenticated { get => throw null; } public bool IsServer { get => throw null; } public bool IsSigned { get => throw null; } - public NegotiateAuthentication(System.Net.Security.NegotiateAuthenticationClientOptions clientOptions) => throw null; - public NegotiateAuthentication(System.Net.Security.NegotiateAuthenticationServerOptions serverOptions) => throw null; public string Package { get => throw null; } public System.Net.Security.ProtectionLevel ProtectionLevel { get => throw null; } public System.Security.Principal.IIdentity RemoteIdentity { get => throw null; } public string TargetName { get => throw null; } - public System.Net.Security.NegotiateAuthenticationStatusCode Unwrap(System.ReadOnlySpan input, System.Buffers.IBufferWriter outputWriter, out bool wasEncrypted) => throw null; - public System.Net.Security.NegotiateAuthenticationStatusCode UnwrapInPlace(System.Span input, out int unwrappedOffset, out int unwrappedLength, out bool wasEncrypted) => throw null; - public System.Net.Security.NegotiateAuthenticationStatusCode Wrap(System.ReadOnlySpan input, System.Buffers.IBufferWriter outputWriter, bool requestEncryption, out bool isEncrypted) => throw null; + public System.Net.Security.NegotiateAuthenticationStatusCode Unwrap(System.ReadOnlySpan input, System.Buffers.IBufferWriter outputWriter, out bool wasEncrypted) => throw null; + public System.Net.Security.NegotiateAuthenticationStatusCode UnwrapInPlace(System.Span input, out int unwrappedOffset, out int unwrappedLength, out bool wasEncrypted) => throw null; + public System.Net.Security.NegotiateAuthenticationStatusCode Wrap(System.ReadOnlySpan input, System.Buffers.IBufferWriter outputWriter, bool requestEncryption, out bool isEncrypted) => throw null; } - public class NegotiateAuthenticationClientOptions { - public System.Security.Principal.TokenImpersonationLevel AllowedImpersonationLevel { get => throw null; set => throw null; } - public System.Security.Authentication.ExtendedProtection.ChannelBinding Binding { get => throw null; set => throw null; } - public System.Net.NetworkCredential Credential { get => throw null; set => throw null; } + public System.Security.Principal.TokenImpersonationLevel AllowedImpersonationLevel { get => throw null; set { } } + public System.Security.Authentication.ExtendedProtection.ChannelBinding Binding { get => throw null; set { } } + public System.Net.NetworkCredential Credential { get => throw null; set { } } public NegotiateAuthenticationClientOptions() => throw null; - public string Package { get => throw null; set => throw null; } - public bool RequireMutualAuthentication { get => throw null; set => throw null; } - public System.Net.Security.ProtectionLevel RequiredProtectionLevel { get => throw null; set => throw null; } - public string TargetName { get => throw null; set => throw null; } + public string Package { get => throw null; set { } } + public System.Net.Security.ProtectionLevel RequiredProtectionLevel { get => throw null; set { } } + public bool RequireMutualAuthentication { get => throw null; set { } } + public string TargetName { get => throw null; set { } } } - public class NegotiateAuthenticationServerOptions { - public System.Security.Authentication.ExtendedProtection.ChannelBinding Binding { get => throw null; set => throw null; } - public System.Net.NetworkCredential Credential { get => throw null; set => throw null; } + public System.Security.Authentication.ExtendedProtection.ChannelBinding Binding { get => throw null; set { } } + public System.Net.NetworkCredential Credential { get => throw null; set { } } public NegotiateAuthenticationServerOptions() => throw null; - public string Package { get => throw null; set => throw null; } - public System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy Policy { get => throw null; set => throw null; } - public System.Security.Principal.TokenImpersonationLevel RequiredImpersonationLevel { get => throw null; set => throw null; } - public System.Net.Security.ProtectionLevel RequiredProtectionLevel { get => throw null; set => throw null; } + public string Package { get => throw null; set { } } + public System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy Policy { get => throw null; set { } } + public System.Security.Principal.TokenImpersonationLevel RequiredImpersonationLevel { get => throw null; set { } } + public System.Net.Security.ProtectionLevel RequiredProtectionLevel { get => throw null; set { } } } - - public enum NegotiateAuthenticationStatusCode : int + public enum NegotiateAuthenticationStatusCode { - BadBinding = 3, Completed = 0, - ContextExpired = 6, ContinueNeeded = 1, - CredentialsExpired = 7, GenericFailure = 2, - ImpersonationValidationFailed = 15, + BadBinding = 3, + Unsupported = 4, + MessageAltered = 5, + ContextExpired = 6, + CredentialsExpired = 7, InvalidCredentials = 8, InvalidToken = 9, - MessageAltered = 5, - OutOfSequence = 12, + UnknownCredentials = 10, QopNotSupported = 11, + OutOfSequence = 12, SecurityQosFailed = 13, TargetUnknown = 14, - UnknownCredentials = 10, - Unsupported = 4, + ImpersonationValidationFailed = 15, } - public class NegotiateStream : System.Net.Security.AuthenticatedStream { public virtual void AuthenticateAsClient() => throw null; @@ -114,28 +105,30 @@ namespace System public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync(System.Net.NetworkCredential credential, string targetName) => throw null; public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync(System.Net.NetworkCredential credential, string targetName, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel) => throw null; public virtual void AuthenticateAsServer() => throw null; - public virtual void AuthenticateAsServer(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy) => throw null; - public virtual void AuthenticateAsServer(System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel) => throw null; public virtual void AuthenticateAsServer(System.Net.NetworkCredential credential, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel) => throw null; + public virtual void AuthenticateAsServer(System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel) => throw null; + public virtual void AuthenticateAsServer(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy) => throw null; public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync() => throw null; - public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy) => throw null; - public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel) => throw null; public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Net.NetworkCredential credential, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel) => throw null; + public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel) => throw null; + public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsClient(System.AsyncCallback asyncCallback, object asyncState) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsClient(System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName, System.AsyncCallback asyncCallback, object asyncState) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsClient(System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel, System.AsyncCallback asyncCallback, object asyncState) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsClient(System.Net.NetworkCredential credential, string targetName, System.AsyncCallback asyncCallback, object asyncState) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsClient(System.Net.NetworkCredential credential, string targetName, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel, System.AsyncCallback asyncCallback, object asyncState) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsServer(System.AsyncCallback asyncCallback, object asyncState) => throw null; - public virtual System.IAsyncResult BeginAuthenticateAsServer(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public virtual System.IAsyncResult BeginAuthenticateAsServer(System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel, System.AsyncCallback asyncCallback, object asyncState) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsServer(System.Net.NetworkCredential credential, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public virtual System.IAsyncResult BeginAuthenticateAsServer(System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public virtual System.IAsyncResult BeginAuthenticateAsServer(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanTimeout { get => throw null; } public override bool CanWrite { get => throw null; } + public NegotiateStream(System.IO.Stream innerStream) : base(default(System.IO.Stream), default(bool)) => throw null; + public NegotiateStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen) : base(default(System.IO.Stream), default(bool)) => throw null; protected override void Dispose(bool disposing) => throw null; public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public virtual void EndAuthenticateAsClient(System.IAsyncResult asyncResult) => throw null; @@ -150,126 +143,112 @@ namespace System public override bool IsMutuallyAuthenticated { get => throw null; } public override bool IsServer { get => throw null; } public override bool IsSigned { get => throw null; } - public override System.Int64 Length { get => throw null; } - public NegotiateStream(System.IO.Stream innerStream) : base(default(System.IO.Stream), default(bool)) => throw null; - public NegotiateStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen) : base(default(System.IO.Stream), default(bool)) => throw null; - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override int ReadTimeout { get => throw null; set => throw null; } + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int ReadTimeout { get => throw null; set { } } public virtual System.Security.Principal.IIdentity RemoteIdentity { get => throw null; } - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override int WriteTimeout { get => throw null; set => throw null; } + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int WriteTimeout { get => throw null; set { } } } - - public enum ProtectionLevel : int + public enum ProtectionLevel { - EncryptAndSign = 2, None = 0, Sign = 1, + EncryptAndSign = 2, } - public delegate bool RemoteCertificateValidationCallback(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors); - public delegate System.Security.Cryptography.X509Certificates.X509Certificate ServerCertificateSelectionCallback(object sender, string hostName); - public delegate System.Threading.Tasks.ValueTask ServerOptionsSelectionCallback(System.Net.Security.SslStream stream, System.Net.Security.SslClientHelloInfo clientHelloInfo, object state, System.Threading.CancellationToken cancellationToken); - public struct SslApplicationProtocol : System.IEquatable { - public static bool operator !=(System.Net.Security.SslApplicationProtocol left, System.Net.Security.SslApplicationProtocol right) => throw null; - public static bool operator ==(System.Net.Security.SslApplicationProtocol left, System.Net.Security.SslApplicationProtocol right) => throw null; + public SslApplicationProtocol(byte[] protocol) => throw null; + public SslApplicationProtocol(string protocol) => throw null; public bool Equals(System.Net.Security.SslApplicationProtocol other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static System.Net.Security.SslApplicationProtocol Http11; public static System.Net.Security.SslApplicationProtocol Http2; public static System.Net.Security.SslApplicationProtocol Http3; - public System.ReadOnlyMemory Protocol { get => throw null; } - // Stub generator skipped constructor - public SslApplicationProtocol(System.Byte[] protocol) => throw null; - public SslApplicationProtocol(string protocol) => throw null; + public static bool operator ==(System.Net.Security.SslApplicationProtocol left, System.Net.Security.SslApplicationProtocol right) => throw null; + public static bool operator !=(System.Net.Security.SslApplicationProtocol left, System.Net.Security.SslApplicationProtocol right) => throw null; + public System.ReadOnlyMemory Protocol { get => throw null; } public override string ToString() => throw null; } - - public class SslCertificateTrust + public sealed class SslCertificateTrust { public static System.Net.Security.SslCertificateTrust CreateForX509Collection(System.Security.Cryptography.X509Certificates.X509Certificate2Collection trustList, bool sendTrustInHandshake = default(bool)) => throw null; public static System.Net.Security.SslCertificateTrust CreateForX509Store(System.Security.Cryptography.X509Certificates.X509Store store, bool sendTrustInHandshake = default(bool)) => throw null; } - public class SslClientAuthenticationOptions { - public bool AllowRenegotiation { get => throw null; set => throw null; } - public System.Collections.Generic.List ApplicationProtocols { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509ChainPolicy CertificateChainPolicy { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509RevocationMode CertificateRevocationCheckMode { get => throw null; set => throw null; } - public System.Net.Security.CipherSuitesPolicy CipherSuitesPolicy { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; set => throw null; } - public System.Security.Authentication.SslProtocols EnabledSslProtocols { get => throw null; set => throw null; } - public System.Net.Security.EncryptionPolicy EncryptionPolicy { get => throw null; set => throw null; } - public System.Net.Security.LocalCertificateSelectionCallback LocalCertificateSelectionCallback { get => throw null; set => throw null; } - public System.Net.Security.RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get => throw null; set => throw null; } + public bool AllowRenegotiation { get => throw null; set { } } + public System.Collections.Generic.List ApplicationProtocols { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509ChainPolicy CertificateChainPolicy { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509RevocationMode CertificateRevocationCheckMode { get => throw null; set { } } + public System.Net.Security.CipherSuitesPolicy CipherSuitesPolicy { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; set { } } public SslClientAuthenticationOptions() => throw null; - public string TargetHost { get => throw null; set => throw null; } + public System.Security.Authentication.SslProtocols EnabledSslProtocols { get => throw null; set { } } + public System.Net.Security.EncryptionPolicy EncryptionPolicy { get => throw null; set { } } + public System.Net.Security.LocalCertificateSelectionCallback LocalCertificateSelectionCallback { get => throw null; set { } } + public System.Net.Security.RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get => throw null; set { } } + public string TargetHost { get => throw null; set { } } } - public struct SslClientHelloInfo { public string ServerName { get => throw null; } - // Stub generator skipped constructor public System.Security.Authentication.SslProtocols SslProtocols { get => throw null; } } - public class SslServerAuthenticationOptions { - public bool AllowRenegotiation { get => throw null; set => throw null; } - public System.Collections.Generic.List ApplicationProtocols { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509ChainPolicy CertificateChainPolicy { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509RevocationMode CertificateRevocationCheckMode { get => throw null; set => throw null; } - public System.Net.Security.CipherSuitesPolicy CipherSuitesPolicy { get => throw null; set => throw null; } - public bool ClientCertificateRequired { get => throw null; set => throw null; } - public System.Security.Authentication.SslProtocols EnabledSslProtocols { get => throw null; set => throw null; } - public System.Net.Security.EncryptionPolicy EncryptionPolicy { get => throw null; set => throw null; } - public System.Net.Security.RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509Certificate ServerCertificate { get => throw null; set => throw null; } - public System.Net.Security.SslStreamCertificateContext ServerCertificateContext { get => throw null; set => throw null; } - public System.Net.Security.ServerCertificateSelectionCallback ServerCertificateSelectionCallback { get => throw null; set => throw null; } + public bool AllowRenegotiation { get => throw null; set { } } + public System.Collections.Generic.List ApplicationProtocols { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509ChainPolicy CertificateChainPolicy { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509RevocationMode CertificateRevocationCheckMode { get => throw null; set { } } + public System.Net.Security.CipherSuitesPolicy CipherSuitesPolicy { get => throw null; set { } } + public bool ClientCertificateRequired { get => throw null; set { } } public SslServerAuthenticationOptions() => throw null; + public System.Security.Authentication.SslProtocols EnabledSslProtocols { get => throw null; set { } } + public System.Net.Security.EncryptionPolicy EncryptionPolicy { get => throw null; set { } } + public System.Net.Security.RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509Certificate ServerCertificate { get => throw null; set { } } + public System.Net.Security.SslStreamCertificateContext ServerCertificateContext { get => throw null; set { } } + public System.Net.Security.ServerCertificateSelectionCallback ServerCertificateSelectionCallback { get => throw null; set { } } } - public class SslStream : System.Net.Security.AuthenticatedStream { public void AuthenticateAsClient(System.Net.Security.SslClientAuthenticationOptions sslClientAuthenticationOptions) => throw null; public virtual void AuthenticateAsClient(string targetHost) => throw null; - public virtual void AuthenticateAsClient(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation) => throw null; public virtual void AuthenticateAsClient(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, bool checkCertificateRevocation) => throw null; + public virtual void AuthenticateAsClient(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation) => throw null; public System.Threading.Tasks.Task AuthenticateAsClientAsync(System.Net.Security.SslClientAuthenticationOptions sslClientAuthenticationOptions, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync(string targetHost) => throw null; - public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation) => throw null; public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, bool checkCertificateRevocation) => throw null; + public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation) => throw null; public void AuthenticateAsServer(System.Net.Security.SslServerAuthenticationOptions sslServerAuthenticationOptions) => throw null; public virtual void AuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate) => throw null; - public virtual void AuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation) => throw null; public virtual void AuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, bool checkCertificateRevocation) => throw null; + public virtual void AuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation) => throw null; public System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Net.Security.ServerOptionsSelectionCallback optionsCallback, object state, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Net.Security.SslServerAuthenticationOptions sslServerAuthenticationOptions, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate) => throw null; - public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation) => throw null; public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, bool checkCertificateRevocation) => throw null; + public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsClient(string targetHost, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public virtual System.IAsyncResult BeginAuthenticateAsClient(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsClient(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public virtual System.IAsyncResult BeginAuthenticateAsClient(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public virtual System.IAsyncResult BeginAuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState) => throw null; public virtual System.IAsyncResult BeginAuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public virtual System.IAsyncResult BeginAuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanTimeout { get => throw null; } @@ -277,6 +256,11 @@ namespace System public virtual bool CheckCertRevocationStatus { get => throw null; } public virtual System.Security.Authentication.CipherAlgorithmType CipherAlgorithm { get => throw null; } public virtual int CipherStrength { get => throw null; } + public SslStream(System.IO.Stream innerStream) : base(default(System.IO.Stream), default(bool)) => throw null; + public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen) : base(default(System.IO.Stream), default(bool)) => throw null; + public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback) : base(default(System.IO.Stream), default(bool)) => throw null; + public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback userCertificateSelectionCallback) : base(default(System.IO.Stream), default(bool)) => throw null; + public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback userCertificateSelectionCallback, System.Net.Security.EncryptionPolicy encryptionPolicy) : base(default(System.IO.Stream), default(bool)) => throw null; protected override void Dispose(bool disposing) => throw null; public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public virtual void EndAuthenticateAsClient(System.IAsyncResult asyncResult) => throw null; @@ -294,384 +278,375 @@ namespace System public override bool IsSigned { get => throw null; } public virtual System.Security.Authentication.ExchangeAlgorithmType KeyExchangeAlgorithm { get => throw null; } public virtual int KeyExchangeStrength { get => throw null; } - public override System.Int64 Length { get => throw null; } + public override long Length { get => throw null; } public virtual System.Security.Cryptography.X509Certificates.X509Certificate LocalCertificate { get => throw null; } public virtual System.Threading.Tasks.Task NegotiateClientCertificateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Net.Security.SslApplicationProtocol NegotiatedApplicationProtocol { get => throw null; } public virtual System.Net.Security.TlsCipherSuite NegotiatedCipherSuite { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override int ReadByte() => throw null; - public override int ReadTimeout { get => throw null; set => throw null; } + public override int ReadTimeout { get => throw null; set { } } public virtual System.Security.Cryptography.X509Certificates.X509Certificate RemoteCertificate { get => throw null; } - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; public virtual System.Threading.Tasks.Task ShutdownAsync() => throw null; public virtual System.Security.Authentication.SslProtocols SslProtocol { get => throw null; } - public SslStream(System.IO.Stream innerStream) : base(default(System.IO.Stream), default(bool)) => throw null; - public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen) : base(default(System.IO.Stream), default(bool)) => throw null; - public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback) : base(default(System.IO.Stream), default(bool)) => throw null; - public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback userCertificateSelectionCallback) : base(default(System.IO.Stream), default(bool)) => throw null; - public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback userCertificateSelectionCallback, System.Net.Security.EncryptionPolicy encryptionPolicy) : base(default(System.IO.Stream), default(bool)) => throw null; public string TargetHostName { get => throw null; } public System.Net.TransportContext TransportContext { get => throw null; } - public void Write(System.Byte[] buffer) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override int WriteTimeout { get => throw null; set => throw null; } - // ERR: Stub generator didn't handle member: ~SslStream + public void Write(byte[] buffer) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int WriteTimeout { get => throw null; set { } } } - public class SslStreamCertificateContext { public static System.Net.Security.SslStreamCertificateContext Create(System.Security.Cryptography.X509Certificates.X509Certificate2 target, System.Security.Cryptography.X509Certificates.X509Certificate2Collection additionalCertificates, bool offline) => throw null; public static System.Net.Security.SslStreamCertificateContext Create(System.Security.Cryptography.X509Certificates.X509Certificate2 target, System.Security.Cryptography.X509Certificates.X509Certificate2Collection additionalCertificates, bool offline = default(bool), System.Net.Security.SslCertificateTrust trust = default(System.Net.Security.SslCertificateTrust)) => throw null; } - public enum TlsCipherSuite : ushort { - TLS_AES_128_CCM_8_SHA256 = 4869, - TLS_AES_128_CCM_SHA256 = 4868, + TLS_NULL_WITH_NULL_NULL = 0, + TLS_RSA_WITH_NULL_MD5 = 1, + TLS_RSA_WITH_NULL_SHA = 2, + TLS_RSA_EXPORT_WITH_RC4_40_MD5 = 3, + TLS_RSA_WITH_RC4_128_MD5 = 4, + TLS_RSA_WITH_RC4_128_SHA = 5, + TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = 6, + TLS_RSA_WITH_IDEA_CBC_SHA = 7, + TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = 8, + TLS_RSA_WITH_DES_CBC_SHA = 9, + TLS_RSA_WITH_3DES_EDE_CBC_SHA = 10, + TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = 11, + TLS_DH_DSS_WITH_DES_CBC_SHA = 12, + TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = 13, + TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = 14, + TLS_DH_RSA_WITH_DES_CBC_SHA = 15, + TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = 16, + TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = 17, + TLS_DHE_DSS_WITH_DES_CBC_SHA = 18, + TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 19, + TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = 20, + TLS_DHE_RSA_WITH_DES_CBC_SHA = 21, + TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 22, + TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 = 23, + TLS_DH_anon_WITH_RC4_128_MD5 = 24, + TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA = 25, + TLS_DH_anon_WITH_DES_CBC_SHA = 26, + TLS_DH_anon_WITH_3DES_EDE_CBC_SHA = 27, + TLS_KRB5_WITH_DES_CBC_SHA = 30, + TLS_KRB5_WITH_3DES_EDE_CBC_SHA = 31, + TLS_KRB5_WITH_RC4_128_SHA = 32, + TLS_KRB5_WITH_IDEA_CBC_SHA = 33, + TLS_KRB5_WITH_DES_CBC_MD5 = 34, + TLS_KRB5_WITH_3DES_EDE_CBC_MD5 = 35, + TLS_KRB5_WITH_RC4_128_MD5 = 36, + TLS_KRB5_WITH_IDEA_CBC_MD5 = 37, + TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA = 38, + TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA = 39, + TLS_KRB5_EXPORT_WITH_RC4_40_SHA = 40, + TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 = 41, + TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 = 42, + TLS_KRB5_EXPORT_WITH_RC4_40_MD5 = 43, + TLS_PSK_WITH_NULL_SHA = 44, + TLS_DHE_PSK_WITH_NULL_SHA = 45, + TLS_RSA_PSK_WITH_NULL_SHA = 46, + TLS_RSA_WITH_AES_128_CBC_SHA = 47, + TLS_DH_DSS_WITH_AES_128_CBC_SHA = 48, + TLS_DH_RSA_WITH_AES_128_CBC_SHA = 49, + TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 50, + TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 51, + TLS_DH_anon_WITH_AES_128_CBC_SHA = 52, + TLS_RSA_WITH_AES_256_CBC_SHA = 53, + TLS_DH_DSS_WITH_AES_256_CBC_SHA = 54, + TLS_DH_RSA_WITH_AES_256_CBC_SHA = 55, + TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 56, + TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 57, + TLS_DH_anon_WITH_AES_256_CBC_SHA = 58, + TLS_RSA_WITH_NULL_SHA256 = 59, + TLS_RSA_WITH_AES_128_CBC_SHA256 = 60, + TLS_RSA_WITH_AES_256_CBC_SHA256 = 61, + TLS_DH_DSS_WITH_AES_128_CBC_SHA256 = 62, + TLS_DH_RSA_WITH_AES_128_CBC_SHA256 = 63, + TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 64, + TLS_RSA_WITH_CAMELLIA_128_CBC_SHA = 65, + TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA = 66, + TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA = 67, + TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA = 68, + TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA = 69, + TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA = 70, + TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 103, + TLS_DH_DSS_WITH_AES_256_CBC_SHA256 = 104, + TLS_DH_RSA_WITH_AES_256_CBC_SHA256 = 105, + TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = 106, + TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 107, + TLS_DH_anon_WITH_AES_128_CBC_SHA256 = 108, + TLS_DH_anon_WITH_AES_256_CBC_SHA256 = 109, + TLS_RSA_WITH_CAMELLIA_256_CBC_SHA = 132, + TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA = 133, + TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA = 134, + TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA = 135, + TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA = 136, + TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA = 137, + TLS_PSK_WITH_RC4_128_SHA = 138, + TLS_PSK_WITH_3DES_EDE_CBC_SHA = 139, + TLS_PSK_WITH_AES_128_CBC_SHA = 140, + TLS_PSK_WITH_AES_256_CBC_SHA = 141, + TLS_DHE_PSK_WITH_RC4_128_SHA = 142, + TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = 143, + TLS_DHE_PSK_WITH_AES_128_CBC_SHA = 144, + TLS_DHE_PSK_WITH_AES_256_CBC_SHA = 145, + TLS_RSA_PSK_WITH_RC4_128_SHA = 146, + TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = 147, + TLS_RSA_PSK_WITH_AES_128_CBC_SHA = 148, + TLS_RSA_PSK_WITH_AES_256_CBC_SHA = 149, + TLS_RSA_WITH_SEED_CBC_SHA = 150, + TLS_DH_DSS_WITH_SEED_CBC_SHA = 151, + TLS_DH_RSA_WITH_SEED_CBC_SHA = 152, + TLS_DHE_DSS_WITH_SEED_CBC_SHA = 153, + TLS_DHE_RSA_WITH_SEED_CBC_SHA = 154, + TLS_DH_anon_WITH_SEED_CBC_SHA = 155, + TLS_RSA_WITH_AES_128_GCM_SHA256 = 156, + TLS_RSA_WITH_AES_256_GCM_SHA384 = 157, + TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = 158, + TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = 159, + TLS_DH_RSA_WITH_AES_128_GCM_SHA256 = 160, + TLS_DH_RSA_WITH_AES_256_GCM_SHA384 = 161, + TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = 162, + TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = 163, + TLS_DH_DSS_WITH_AES_128_GCM_SHA256 = 164, + TLS_DH_DSS_WITH_AES_256_GCM_SHA384 = 165, + TLS_DH_anon_WITH_AES_128_GCM_SHA256 = 166, + TLS_DH_anon_WITH_AES_256_GCM_SHA384 = 167, + TLS_PSK_WITH_AES_128_GCM_SHA256 = 168, + TLS_PSK_WITH_AES_256_GCM_SHA384 = 169, + TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 = 170, + TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 = 171, + TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 = 172, + TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 = 173, + TLS_PSK_WITH_AES_128_CBC_SHA256 = 174, + TLS_PSK_WITH_AES_256_CBC_SHA384 = 175, + TLS_PSK_WITH_NULL_SHA256 = 176, + TLS_PSK_WITH_NULL_SHA384 = 177, + TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 = 178, + TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 = 179, + TLS_DHE_PSK_WITH_NULL_SHA256 = 180, + TLS_DHE_PSK_WITH_NULL_SHA384 = 181, + TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 = 182, + TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 = 183, + TLS_RSA_PSK_WITH_NULL_SHA256 = 184, + TLS_RSA_PSK_WITH_NULL_SHA384 = 185, + TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 186, + TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 = 187, + TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 188, + TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 = 189, + TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 190, + TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 = 191, + TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 192, + TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 = 193, + TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 194, + TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 = 195, + TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 196, + TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 = 197, TLS_AES_128_GCM_SHA256 = 4865, TLS_AES_256_GCM_SHA384 = 4866, TLS_CHACHA20_POLY1305_SHA256 = 4867, - TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = 17, - TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 19, - TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 50, - TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 64, - TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = 162, - TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 56, - TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = 106, - TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = 163, - TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 = 49218, - TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 = 49238, - TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 = 49219, - TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 = 49239, - TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA = 68, - TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 = 189, - TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 49280, - TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA = 135, - TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 = 195, - TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 49281, - TLS_DHE_DSS_WITH_DES_CBC_SHA = 18, - TLS_DHE_DSS_WITH_SEED_CBC_SHA = 153, - TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = 143, - TLS_DHE_PSK_WITH_AES_128_CBC_SHA = 144, - TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 = 178, - TLS_DHE_PSK_WITH_AES_128_CCM = 49318, - TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 = 170, - TLS_DHE_PSK_WITH_AES_256_CBC_SHA = 145, - TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 = 179, - TLS_DHE_PSK_WITH_AES_256_CCM = 49319, - TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 = 171, - TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 = 49254, - TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 = 49260, - TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 = 49255, - TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 = 49261, - TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49302, - TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 49296, - TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49303, - TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 49297, - TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = 52397, - TLS_DHE_PSK_WITH_NULL_SHA = 45, - TLS_DHE_PSK_WITH_NULL_SHA256 = 180, - TLS_DHE_PSK_WITH_NULL_SHA384 = 181, - TLS_DHE_PSK_WITH_RC4_128_SHA = 142, - TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = 20, - TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 22, - TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 51, - TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 103, - TLS_DHE_RSA_WITH_AES_128_CCM = 49310, - TLS_DHE_RSA_WITH_AES_128_CCM_8 = 49314, - TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = 158, - TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 57, - TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 107, - TLS_DHE_RSA_WITH_AES_256_CCM = 49311, - TLS_DHE_RSA_WITH_AES_256_CCM_8 = 49315, - TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = 159, - TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 = 49220, - TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 = 49234, - TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 = 49221, - TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 = 49235, - TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA = 69, - TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 190, - TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49276, - TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA = 136, - TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 196, - TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49277, - TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 52394, - TLS_DHE_RSA_WITH_DES_CBC_SHA = 21, - TLS_DHE_RSA_WITH_SEED_CBC_SHA = 154, - TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = 11, - TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = 13, - TLS_DH_DSS_WITH_AES_128_CBC_SHA = 48, - TLS_DH_DSS_WITH_AES_128_CBC_SHA256 = 62, - TLS_DH_DSS_WITH_AES_128_GCM_SHA256 = 164, - TLS_DH_DSS_WITH_AES_256_CBC_SHA = 54, - TLS_DH_DSS_WITH_AES_256_CBC_SHA256 = 104, - TLS_DH_DSS_WITH_AES_256_GCM_SHA384 = 165, - TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 = 49214, - TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 = 49240, - TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 = 49215, - TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 = 49241, - TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA = 66, - TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 = 187, - TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 49282, - TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA = 133, - TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 = 193, - TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 49283, - TLS_DH_DSS_WITH_DES_CBC_SHA = 12, - TLS_DH_DSS_WITH_SEED_CBC_SHA = 151, - TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = 14, - TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = 16, - TLS_DH_RSA_WITH_AES_128_CBC_SHA = 49, - TLS_DH_RSA_WITH_AES_128_CBC_SHA256 = 63, - TLS_DH_RSA_WITH_AES_128_GCM_SHA256 = 160, - TLS_DH_RSA_WITH_AES_256_CBC_SHA = 55, - TLS_DH_RSA_WITH_AES_256_CBC_SHA256 = 105, - TLS_DH_RSA_WITH_AES_256_GCM_SHA384 = 161, - TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 = 49216, - TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 = 49236, - TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 = 49217, - TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 = 49237, - TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA = 67, - TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 188, - TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49278, - TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA = 134, - TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 194, - TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49279, - TLS_DH_RSA_WITH_DES_CBC_SHA = 15, - TLS_DH_RSA_WITH_SEED_CBC_SHA = 152, - TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA = 25, - TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 = 23, - TLS_DH_anon_WITH_3DES_EDE_CBC_SHA = 27, - TLS_DH_anon_WITH_AES_128_CBC_SHA = 52, - TLS_DH_anon_WITH_AES_128_CBC_SHA256 = 108, - TLS_DH_anon_WITH_AES_128_GCM_SHA256 = 166, - TLS_DH_anon_WITH_AES_256_CBC_SHA = 58, - TLS_DH_anon_WITH_AES_256_CBC_SHA256 = 109, - TLS_DH_anon_WITH_AES_256_GCM_SHA384 = 167, - TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 = 49222, - TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 = 49242, - TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 = 49223, - TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 = 49243, - TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA = 70, - TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 = 191, - TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 = 49284, - TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA = 137, - TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 = 197, - TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 = 49285, - TLS_DH_anon_WITH_DES_CBC_SHA = 26, - TLS_DH_anon_WITH_RC4_128_MD5 = 24, - TLS_DH_anon_WITH_SEED_CBC_SHA = 155, - TLS_ECCPWD_WITH_AES_128_CCM_SHA256 = 49330, - TLS_ECCPWD_WITH_AES_128_GCM_SHA256 = 49328, - TLS_ECCPWD_WITH_AES_256_CCM_SHA384 = 49331, - TLS_ECCPWD_WITH_AES_256_GCM_SHA384 = 49329, - TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA = 49160, - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 49161, - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 49187, - TLS_ECDHE_ECDSA_WITH_AES_128_CCM = 49324, - TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 = 49326, - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 49195, - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 49162, - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = 49188, - TLS_ECDHE_ECDSA_WITH_AES_256_CCM = 49325, - TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 = 49327, - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 49196, - TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 = 49224, - TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 = 49244, - TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 = 49225, - TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 = 49245, - TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = 49266, - TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 49286, - TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = 49267, - TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 49287, - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 52393, - TLS_ECDHE_ECDSA_WITH_NULL_SHA = 49158, - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA = 49159, - TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA = 49204, - TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA = 49205, - TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 = 49207, - TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 = 53251, - TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 = 53253, - TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 = 53249, - TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA = 49206, - TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 = 49208, - TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 = 53250, - TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 = 49264, - TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 = 49265, - TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49306, - TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49307, - TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = 52396, - TLS_ECDHE_PSK_WITH_NULL_SHA = 49209, - TLS_ECDHE_PSK_WITH_NULL_SHA256 = 49210, - TLS_ECDHE_PSK_WITH_NULL_SHA384 = 49211, - TLS_ECDHE_PSK_WITH_RC4_128_SHA = 49203, - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA = 49170, - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 49171, - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 49191, - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 49199, - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 49172, - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = 49192, - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 49200, - TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 = 49228, - TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 = 49248, - TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 = 49229, - TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 = 49249, - TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 49270, - TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49290, - TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 = 49271, - TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49291, - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 52392, - TLS_ECDHE_RSA_WITH_NULL_SHA = 49168, - TLS_ECDHE_RSA_WITH_RC4_128_SHA = 49169, - TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA = 49155, - TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA = 49156, - TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 = 49189, - TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 = 49197, - TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA = 49157, - TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 = 49190, - TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 = 49198, - TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 = 49226, - TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 = 49246, - TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 = 49227, - TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 = 49247, - TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = 49268, - TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 49288, - TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = 49269, - TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 49289, + TLS_AES_128_CCM_SHA256 = 4868, + TLS_AES_128_CCM_8_SHA256 = 4869, TLS_ECDH_ECDSA_WITH_NULL_SHA = 49153, TLS_ECDH_ECDSA_WITH_RC4_128_SHA = 49154, - TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA = 49165, - TLS_ECDH_RSA_WITH_AES_128_CBC_SHA = 49166, - TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 = 49193, - TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 = 49201, - TLS_ECDH_RSA_WITH_AES_256_CBC_SHA = 49167, - TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 = 49194, - TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 = 49202, - TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 = 49230, - TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 = 49250, - TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 = 49231, - TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 = 49251, - TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 49272, - TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49292, - TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 = 49273, - TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49293, + TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA = 49155, + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA = 49156, + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA = 49157, + TLS_ECDHE_ECDSA_WITH_NULL_SHA = 49158, + TLS_ECDHE_ECDSA_WITH_RC4_128_SHA = 49159, + TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA = 49160, + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 49161, + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 49162, TLS_ECDH_RSA_WITH_NULL_SHA = 49163, TLS_ECDH_RSA_WITH_RC4_128_SHA = 49164, + TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA = 49165, + TLS_ECDH_RSA_WITH_AES_128_CBC_SHA = 49166, + TLS_ECDH_RSA_WITH_AES_256_CBC_SHA = 49167, + TLS_ECDHE_RSA_WITH_NULL_SHA = 49168, + TLS_ECDHE_RSA_WITH_RC4_128_SHA = 49169, + TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA = 49170, + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 49171, + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 49172, + TLS_ECDH_anon_WITH_NULL_SHA = 49173, + TLS_ECDH_anon_WITH_RC4_128_SHA = 49174, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA = 49175, TLS_ECDH_anon_WITH_AES_128_CBC_SHA = 49176, TLS_ECDH_anon_WITH_AES_256_CBC_SHA = 49177, - TLS_ECDH_anon_WITH_NULL_SHA = 49173, - TLS_ECDH_anon_WITH_RC4_128_SHA = 49174, - TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 = 41, - TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA = 38, - TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 = 42, - TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA = 39, - TLS_KRB5_EXPORT_WITH_RC4_40_MD5 = 43, - TLS_KRB5_EXPORT_WITH_RC4_40_SHA = 40, - TLS_KRB5_WITH_3DES_EDE_CBC_MD5 = 35, - TLS_KRB5_WITH_3DES_EDE_CBC_SHA = 31, - TLS_KRB5_WITH_DES_CBC_MD5 = 34, - TLS_KRB5_WITH_DES_CBC_SHA = 30, - TLS_KRB5_WITH_IDEA_CBC_MD5 = 37, - TLS_KRB5_WITH_IDEA_CBC_SHA = 33, - TLS_KRB5_WITH_RC4_128_MD5 = 36, - TLS_KRB5_WITH_RC4_128_SHA = 32, - TLS_NULL_WITH_NULL_NULL = 0, + TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA = 49178, + TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA = 49179, + TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA = 49180, + TLS_SRP_SHA_WITH_AES_128_CBC_SHA = 49181, + TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA = 49182, + TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA = 49183, + TLS_SRP_SHA_WITH_AES_256_CBC_SHA = 49184, + TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA = 49185, + TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA = 49186, + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 49187, + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = 49188, + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 = 49189, + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 = 49190, + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 49191, + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = 49192, + TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 = 49193, + TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 = 49194, + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 49195, + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 49196, + TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 = 49197, + TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 = 49198, + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 49199, + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 49200, + TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 = 49201, + TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 = 49202, + TLS_ECDHE_PSK_WITH_RC4_128_SHA = 49203, + TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA = 49204, + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA = 49205, + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA = 49206, + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 = 49207, + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 = 49208, + TLS_ECDHE_PSK_WITH_NULL_SHA = 49209, + TLS_ECDHE_PSK_WITH_NULL_SHA256 = 49210, + TLS_ECDHE_PSK_WITH_NULL_SHA384 = 49211, + TLS_RSA_WITH_ARIA_128_CBC_SHA256 = 49212, + TLS_RSA_WITH_ARIA_256_CBC_SHA384 = 49213, + TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 = 49214, + TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 = 49215, + TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 = 49216, + TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 = 49217, + TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 = 49218, + TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 = 49219, + TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 = 49220, + TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 = 49221, + TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 = 49222, + TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 = 49223, + TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 = 49224, + TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 = 49225, + TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 = 49226, + TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 = 49227, + TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 = 49228, + TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 = 49229, + TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 = 49230, + TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 = 49231, + TLS_RSA_WITH_ARIA_128_GCM_SHA256 = 49232, + TLS_RSA_WITH_ARIA_256_GCM_SHA384 = 49233, + TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 = 49234, + TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 = 49235, + TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 = 49236, + TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 = 49237, + TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 = 49238, + TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 = 49239, + TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 = 49240, + TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 = 49241, + TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 = 49242, + TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 = 49243, + TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 = 49244, + TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 = 49245, + TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 = 49246, + TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 = 49247, + TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 = 49248, + TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 = 49249, + TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 = 49250, + TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 = 49251, + TLS_PSK_WITH_ARIA_128_CBC_SHA256 = 49252, + TLS_PSK_WITH_ARIA_256_CBC_SHA384 = 49253, + TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 = 49254, + TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 = 49255, + TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 = 49256, + TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 = 49257, + TLS_PSK_WITH_ARIA_128_GCM_SHA256 = 49258, + TLS_PSK_WITH_ARIA_256_GCM_SHA384 = 49259, + TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 = 49260, + TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 = 49261, + TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 = 49262, + TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 = 49263, + TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 = 49264, + TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 = 49265, + TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = 49266, + TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = 49267, + TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = 49268, + TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = 49269, + TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 49270, + TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 = 49271, + TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 49272, + TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 = 49273, + TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49274, + TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49275, + TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49276, + TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49277, + TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49278, + TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49279, + TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 49280, + TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 49281, + TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 49282, + TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 49283, + TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 = 49284, + TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 = 49285, + TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 49286, + TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 49287, + TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 49288, + TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 49289, + TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49290, + TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49291, + TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49292, + TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49293, + TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 49294, + TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 49295, + TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 49296, + TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 49297, + TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 49298, + TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 49299, + TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49300, + TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49301, + TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49302, + TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49303, + TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49304, + TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49305, + TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49306, + TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49307, + TLS_RSA_WITH_AES_128_CCM = 49308, + TLS_RSA_WITH_AES_256_CCM = 49309, + TLS_DHE_RSA_WITH_AES_128_CCM = 49310, + TLS_DHE_RSA_WITH_AES_256_CCM = 49311, + TLS_RSA_WITH_AES_128_CCM_8 = 49312, + TLS_RSA_WITH_AES_256_CCM_8 = 49313, + TLS_DHE_RSA_WITH_AES_128_CCM_8 = 49314, + TLS_DHE_RSA_WITH_AES_256_CCM_8 = 49315, + TLS_PSK_WITH_AES_128_CCM = 49316, + TLS_PSK_WITH_AES_256_CCM = 49317, + TLS_DHE_PSK_WITH_AES_128_CCM = 49318, + TLS_DHE_PSK_WITH_AES_256_CCM = 49319, + TLS_PSK_WITH_AES_128_CCM_8 = 49320, + TLS_PSK_WITH_AES_256_CCM_8 = 49321, TLS_PSK_DHE_WITH_AES_128_CCM_8 = 49322, TLS_PSK_DHE_WITH_AES_256_CCM_8 = 49323, - TLS_PSK_WITH_3DES_EDE_CBC_SHA = 139, - TLS_PSK_WITH_AES_128_CBC_SHA = 140, - TLS_PSK_WITH_AES_128_CBC_SHA256 = 174, - TLS_PSK_WITH_AES_128_CCM = 49316, - TLS_PSK_WITH_AES_128_CCM_8 = 49320, - TLS_PSK_WITH_AES_128_GCM_SHA256 = 168, - TLS_PSK_WITH_AES_256_CBC_SHA = 141, - TLS_PSK_WITH_AES_256_CBC_SHA384 = 175, - TLS_PSK_WITH_AES_256_CCM = 49317, - TLS_PSK_WITH_AES_256_CCM_8 = 49321, - TLS_PSK_WITH_AES_256_GCM_SHA384 = 169, - TLS_PSK_WITH_ARIA_128_CBC_SHA256 = 49252, - TLS_PSK_WITH_ARIA_128_GCM_SHA256 = 49258, - TLS_PSK_WITH_ARIA_256_CBC_SHA384 = 49253, - TLS_PSK_WITH_ARIA_256_GCM_SHA384 = 49259, - TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49300, - TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 49294, - TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49301, - TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 49295, + TLS_ECDHE_ECDSA_WITH_AES_128_CCM = 49324, + TLS_ECDHE_ECDSA_WITH_AES_256_CCM = 49325, + TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 = 49326, + TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 = 49327, + TLS_ECCPWD_WITH_AES_128_GCM_SHA256 = 49328, + TLS_ECCPWD_WITH_AES_256_GCM_SHA384 = 49329, + TLS_ECCPWD_WITH_AES_128_CCM_SHA256 = 49330, + TLS_ECCPWD_WITH_AES_256_CCM_SHA384 = 49331, + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 52392, + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 52393, + TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 52394, TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 = 52395, - TLS_PSK_WITH_NULL_SHA = 44, - TLS_PSK_WITH_NULL_SHA256 = 176, - TLS_PSK_WITH_NULL_SHA384 = 177, - TLS_PSK_WITH_RC4_128_SHA = 138, - TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = 8, - TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = 6, - TLS_RSA_EXPORT_WITH_RC4_40_MD5 = 3, - TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = 147, - TLS_RSA_PSK_WITH_AES_128_CBC_SHA = 148, - TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 = 182, - TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 = 172, - TLS_RSA_PSK_WITH_AES_256_CBC_SHA = 149, - TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 = 183, - TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 = 173, - TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 = 49256, - TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 = 49262, - TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 = 49257, - TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 = 49263, - TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49304, - TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 49298, - TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49305, - TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 49299, + TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = 52396, + TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = 52397, TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 = 52398, - TLS_RSA_PSK_WITH_NULL_SHA = 46, - TLS_RSA_PSK_WITH_NULL_SHA256 = 184, - TLS_RSA_PSK_WITH_NULL_SHA384 = 185, - TLS_RSA_PSK_WITH_RC4_128_SHA = 146, - TLS_RSA_WITH_3DES_EDE_CBC_SHA = 10, - TLS_RSA_WITH_AES_128_CBC_SHA = 47, - TLS_RSA_WITH_AES_128_CBC_SHA256 = 60, - TLS_RSA_WITH_AES_128_CCM = 49308, - TLS_RSA_WITH_AES_128_CCM_8 = 49312, - TLS_RSA_WITH_AES_128_GCM_SHA256 = 156, - TLS_RSA_WITH_AES_256_CBC_SHA = 53, - TLS_RSA_WITH_AES_256_CBC_SHA256 = 61, - TLS_RSA_WITH_AES_256_CCM = 49309, - TLS_RSA_WITH_AES_256_CCM_8 = 49313, - TLS_RSA_WITH_AES_256_GCM_SHA384 = 157, - TLS_RSA_WITH_ARIA_128_CBC_SHA256 = 49212, - TLS_RSA_WITH_ARIA_128_GCM_SHA256 = 49232, - TLS_RSA_WITH_ARIA_256_CBC_SHA384 = 49213, - TLS_RSA_WITH_ARIA_256_GCM_SHA384 = 49233, - TLS_RSA_WITH_CAMELLIA_128_CBC_SHA = 65, - TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 186, - TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49274, - TLS_RSA_WITH_CAMELLIA_256_CBC_SHA = 132, - TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 192, - TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49275, - TLS_RSA_WITH_DES_CBC_SHA = 9, - TLS_RSA_WITH_IDEA_CBC_SHA = 7, - TLS_RSA_WITH_NULL_MD5 = 1, - TLS_RSA_WITH_NULL_SHA = 2, - TLS_RSA_WITH_NULL_SHA256 = 59, - TLS_RSA_WITH_RC4_128_MD5 = 4, - TLS_RSA_WITH_RC4_128_SHA = 5, - TLS_RSA_WITH_SEED_CBC_SHA = 150, - TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA = 49180, - TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA = 49183, - TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA = 49186, - TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA = 49179, - TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA = 49182, - TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA = 49185, - TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA = 49178, - TLS_SRP_SHA_WITH_AES_128_CBC_SHA = 49181, - TLS_SRP_SHA_WITH_AES_256_CBC_SHA = 49184, + TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 = 53249, + TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 = 53250, + TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 = 53251, + TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 = 53253, } - } } namespace Security @@ -685,7 +660,42 @@ namespace System public AuthenticationException(string message) => throw null; public AuthenticationException(string message, System.Exception innerException) => throw null; } - + namespace ExtendedProtection + { + public class ExtendedProtectionPolicy : System.Runtime.Serialization.ISerializable + { + protected ExtendedProtectionPolicy(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public ExtendedProtectionPolicy(System.Security.Authentication.ExtendedProtection.PolicyEnforcement policyEnforcement) => throw null; + public ExtendedProtectionPolicy(System.Security.Authentication.ExtendedProtection.PolicyEnforcement policyEnforcement, System.Security.Authentication.ExtendedProtection.ChannelBinding customChannelBinding) => throw null; + public ExtendedProtectionPolicy(System.Security.Authentication.ExtendedProtection.PolicyEnforcement policyEnforcement, System.Security.Authentication.ExtendedProtection.ProtectionScenario protectionScenario, System.Collections.ICollection customServiceNames) => throw null; + public ExtendedProtectionPolicy(System.Security.Authentication.ExtendedProtection.PolicyEnforcement policyEnforcement, System.Security.Authentication.ExtendedProtection.ProtectionScenario protectionScenario, System.Security.Authentication.ExtendedProtection.ServiceNameCollection customServiceNames) => throw null; + public System.Security.Authentication.ExtendedProtection.ChannelBinding CustomChannelBinding { get => throw null; } + public System.Security.Authentication.ExtendedProtection.ServiceNameCollection CustomServiceNames { get => throw null; } + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public static bool OSSupportsExtendedProtection { get => throw null; } + public System.Security.Authentication.ExtendedProtection.PolicyEnforcement PolicyEnforcement { get => throw null; } + public System.Security.Authentication.ExtendedProtection.ProtectionScenario ProtectionScenario { get => throw null; } + public override string ToString() => throw null; + } + public enum PolicyEnforcement + { + Never = 0, + WhenSupported = 1, + Always = 2, + } + public enum ProtectionScenario + { + TransportSelected = 0, + TrustedProxy = 1, + } + public class ServiceNameCollection : System.Collections.ReadOnlyCollectionBase + { + public bool Contains(string searchServiceName) => throw null; + public ServiceNameCollection(System.Collections.ICollection items) => throw null; + public System.Security.Authentication.ExtendedProtection.ServiceNameCollection Merge(System.Collections.IEnumerable serviceNames) => throw null; + public System.Security.Authentication.ExtendedProtection.ServiceNameCollection Merge(string serviceName) => throw null; + } + } public class InvalidCredentialException : System.Security.Authentication.AuthenticationException { public InvalidCredentialException() => throw null; @@ -693,47 +703,6 @@ namespace System public InvalidCredentialException(string message) => throw null; public InvalidCredentialException(string message, System.Exception innerException) => throw null; } - - namespace ExtendedProtection - { - public class ExtendedProtectionPolicy : System.Runtime.Serialization.ISerializable - { - public System.Security.Authentication.ExtendedProtection.ChannelBinding CustomChannelBinding { get => throw null; } - public System.Security.Authentication.ExtendedProtection.ServiceNameCollection CustomServiceNames { get => throw null; } - public ExtendedProtectionPolicy(System.Security.Authentication.ExtendedProtection.PolicyEnforcement policyEnforcement) => throw null; - public ExtendedProtectionPolicy(System.Security.Authentication.ExtendedProtection.PolicyEnforcement policyEnforcement, System.Security.Authentication.ExtendedProtection.ChannelBinding customChannelBinding) => throw null; - public ExtendedProtectionPolicy(System.Security.Authentication.ExtendedProtection.PolicyEnforcement policyEnforcement, System.Security.Authentication.ExtendedProtection.ProtectionScenario protectionScenario, System.Collections.ICollection customServiceNames) => throw null; - public ExtendedProtectionPolicy(System.Security.Authentication.ExtendedProtection.PolicyEnforcement policyEnforcement, System.Security.Authentication.ExtendedProtection.ProtectionScenario protectionScenario, System.Security.Authentication.ExtendedProtection.ServiceNameCollection customServiceNames) => throw null; - protected ExtendedProtectionPolicy(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public static bool OSSupportsExtendedProtection { get => throw null; } - public System.Security.Authentication.ExtendedProtection.PolicyEnforcement PolicyEnforcement { get => throw null; } - public System.Security.Authentication.ExtendedProtection.ProtectionScenario ProtectionScenario { get => throw null; } - public override string ToString() => throw null; - } - - public enum PolicyEnforcement : int - { - Always = 2, - Never = 0, - WhenSupported = 1, - } - - public enum ProtectionScenario : int - { - TransportSelected = 0, - TrustedProxy = 1, - } - - public class ServiceNameCollection : System.Collections.ReadOnlyCollectionBase - { - public bool Contains(string searchServiceName) => throw null; - public System.Security.Authentication.ExtendedProtection.ServiceNameCollection Merge(System.Collections.IEnumerable serviceNames) => throw null; - public System.Security.Authentication.ExtendedProtection.ServiceNameCollection Merge(string serviceName) => throw null; - public ServiceNameCollection(System.Collections.ICollection items) => throw null; - } - - } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs index 650ae555c90..c29ef74005e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs @@ -1,65 +1,60 @@ // This file contains auto-generated code. // Generated from `System.Net.ServicePoint, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Net { public delegate System.Net.IPEndPoint BindIPEndPoint(System.Net.ServicePoint servicePoint, System.Net.IPEndPoint remoteEndPoint, int retryCount); - [System.Flags] - public enum SecurityProtocolType : int + public enum SecurityProtocolType { - Ssl3 = 48, SystemDefault = 0, + Ssl3 = 48, Tls = 192, Tls11 = 768, Tls12 = 3072, Tls13 = 12288, } - public class ServicePoint { public System.Uri Address { get => throw null; } - public System.Net.BindIPEndPoint BindIPEndPointDelegate { get => throw null; set => throw null; } + public System.Net.BindIPEndPoint BindIPEndPointDelegate { get => throw null; set { } } public System.Security.Cryptography.X509Certificates.X509Certificate Certificate { get => throw null; } public System.Security.Cryptography.X509Certificates.X509Certificate ClientCertificate { get => throw null; } public bool CloseConnectionGroup(string connectionGroupName) => throw null; - public int ConnectionLeaseTimeout { get => throw null; set => throw null; } - public int ConnectionLimit { get => throw null; set => throw null; } + public int ConnectionLeaseTimeout { get => throw null; set { } } + public int ConnectionLimit { get => throw null; set { } } public string ConnectionName { get => throw null; } public int CurrentConnections { get => throw null; } - public bool Expect100Continue { get => throw null; set => throw null; } + public bool Expect100Continue { get => throw null; set { } } public System.DateTime IdleSince { get => throw null; } - public int MaxIdleTime { get => throw null; set => throw null; } + public int MaxIdleTime { get => throw null; set { } } public virtual System.Version ProtocolVersion { get => throw null; } - public int ReceiveBufferSize { get => throw null; set => throw null; } + public int ReceiveBufferSize { get => throw null; set { } } public void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval) => throw null; public bool SupportsPipelining { get => throw null; } - public bool UseNagleAlgorithm { get => throw null; set => throw null; } + public bool UseNagleAlgorithm { get => throw null; set { } } } - public class ServicePointManager { - public static bool CheckCertificateRevocationList { get => throw null; set => throw null; } - public static int DefaultConnectionLimit { get => throw null; set => throw null; } - public const int DefaultNonPersistentConnectionLimit = default; - public const int DefaultPersistentConnectionLimit = default; - public static int DnsRefreshTimeout { get => throw null; set => throw null; } - public static bool EnableDnsRoundRobin { get => throw null; set => throw null; } + public static bool CheckCertificateRevocationList { get => throw null; set { } } + public static int DefaultConnectionLimit { get => throw null; set { } } + public static int DefaultNonPersistentConnectionLimit; + public static int DefaultPersistentConnectionLimit; + public static int DnsRefreshTimeout { get => throw null; set { } } + public static bool EnableDnsRoundRobin { get => throw null; set { } } public static System.Net.Security.EncryptionPolicy EncryptionPolicy { get => throw null; } - public static bool Expect100Continue { get => throw null; set => throw null; } + public static bool Expect100Continue { get => throw null; set { } } + public static System.Net.ServicePoint FindServicePoint(string uriString, System.Net.IWebProxy proxy) => throw null; public static System.Net.ServicePoint FindServicePoint(System.Uri address) => throw null; public static System.Net.ServicePoint FindServicePoint(System.Uri address, System.Net.IWebProxy proxy) => throw null; - public static System.Net.ServicePoint FindServicePoint(string uriString, System.Net.IWebProxy proxy) => throw null; - public static int MaxServicePointIdleTime { get => throw null; set => throw null; } - public static int MaxServicePoints { get => throw null; set => throw null; } - public static bool ReusePort { get => throw null; set => throw null; } - public static System.Net.SecurityProtocolType SecurityProtocol { get => throw null; set => throw null; } - public static System.Net.Security.RemoteCertificateValidationCallback ServerCertificateValidationCallback { get => throw null; set => throw null; } + public static int MaxServicePointIdleTime { get => throw null; set { } } + public static int MaxServicePoints { get => throw null; set { } } + public static bool ReusePort { get => throw null; set { } } + public static System.Net.SecurityProtocolType SecurityProtocol { get => throw null; set { } } + public static System.Net.Security.RemoteCertificateValidationCallback ServerCertificateValidationCallback { get => throw null; set { } } public static void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval) => throw null; - public static bool UseNagleAlgorithm { get => throw null; set => throw null; } + public static bool UseNagleAlgorithm { get => throw null; set { } } } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Sockets.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Sockets.cs index 9efd737ad71..19160f53223 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Sockets.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Sockets.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Net.Sockets, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net @@ -9,268 +8,254 @@ namespace System { public enum IOControlCode : long { - AbsorbRouterAlert = 2550136837, - AddMulticastGroupOnInterface = 2550136842, - AddressListChange = 671088663, - AddressListQuery = 1207959574, - AddressListSort = 3355443225, - AssociateHandle = 2281701377, - AsyncIO = 2147772029, - BindToInterface = 2550136840, - DataToRead = 1074030207, - DeleteMulticastGroupFromInterface = 2550136843, EnableCircularQueuing = 671088642, Flush = 671088644, - GetBroadcastAddress = 1207959557, - GetExtensionFunctionPointer = 3355443206, - GetGroupQos = 3355443208, - GetQos = 3355443207, - KeepAliveValues = 2550136836, - LimitBroadcasts = 2550136839, - MulticastInterface = 2550136841, - MulticastScope = 2281701386, - MultipointLoopback = 2281701385, - NamespaceChange = 2281701401, - NonBlockingIO = 2147772030, + AddressListChange = 671088663, + DataToRead = 1074030207, OobDataRead = 1074033415, + GetBroadcastAddress = 1207959557, + AddressListQuery = 1207959574, QueryTargetPnpHandle = 1207959576, - ReceiveAll = 2550136833, - ReceiveAllIgmpMulticast = 2550136835, - ReceiveAllMulticast = 2550136834, - RoutingInterfaceChange = 2281701397, - RoutingInterfaceQuery = 3355443220, - SetGroupQos = 2281701388, + AsyncIO = 2147772029, + NonBlockingIO = 2147772030, + AssociateHandle = 2281701377, + MultipointLoopback = 2281701385, + MulticastScope = 2281701386, SetQos = 2281701387, - TranslateHandle = 3355443213, + SetGroupQos = 2281701388, + RoutingInterfaceChange = 2281701397, + NamespaceChange = 2281701401, + ReceiveAll = 2550136833, + ReceiveAllMulticast = 2550136834, + ReceiveAllIgmpMulticast = 2550136835, + KeepAliveValues = 2550136836, + AbsorbRouterAlert = 2550136837, UnicastInterface = 2550136838, + LimitBroadcasts = 2550136839, + BindToInterface = 2550136840, + MulticastInterface = 2550136841, + AddMulticastGroupOnInterface = 2550136842, + DeleteMulticastGroupFromInterface = 2550136843, + GetExtensionFunctionPointer = 3355443206, + GetQos = 3355443207, + GetGroupQos = 3355443208, + TranslateHandle = 3355443213, + RoutingInterfaceQuery = 3355443220, + AddressListSort = 3355443225, } - public struct IPPacketInformation : System.IEquatable { - public static bool operator !=(System.Net.Sockets.IPPacketInformation packetInformation1, System.Net.Sockets.IPPacketInformation packetInformation2) => throw null; - public static bool operator ==(System.Net.Sockets.IPPacketInformation packetInformation1, System.Net.Sockets.IPPacketInformation packetInformation2) => throw null; public System.Net.IPAddress Address { get => throw null; } public bool Equals(System.Net.Sockets.IPPacketInformation other) => throw null; public override bool Equals(object comparand) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor public int Interface { get => throw null; } + public static bool operator ==(System.Net.Sockets.IPPacketInformation packetInformation1, System.Net.Sockets.IPPacketInformation packetInformation2) => throw null; + public static bool operator !=(System.Net.Sockets.IPPacketInformation packetInformation1, System.Net.Sockets.IPPacketInformation packetInformation2) => throw null; } - - public enum IPProtectionLevel : int + public enum IPProtectionLevel { + Unspecified = -1, + Unrestricted = 10, EdgeRestricted = 20, Restricted = 30, - Unrestricted = 10, - Unspecified = -1, } - public class IPv6MulticastOption { - public System.Net.IPAddress Group { get => throw null; set => throw null; } public IPv6MulticastOption(System.Net.IPAddress group) => throw null; - public IPv6MulticastOption(System.Net.IPAddress group, System.Int64 ifindex) => throw null; - public System.Int64 InterfaceIndex { get => throw null; set => throw null; } + public IPv6MulticastOption(System.Net.IPAddress group, long ifindex) => throw null; + public System.Net.IPAddress Group { get => throw null; set { } } + public long InterfaceIndex { get => throw null; set { } } } - public class LingerOption { - public bool Enabled { get => throw null; set => throw null; } public LingerOption(bool enable, int seconds) => throw null; - public int LingerTime { get => throw null; set => throw null; } + public bool Enabled { get => throw null; set { } } + public int LingerTime { get => throw null; set { } } } - public class MulticastOption { - public System.Net.IPAddress Group { get => throw null; set => throw null; } - public int InterfaceIndex { get => throw null; set => throw null; } - public System.Net.IPAddress LocalAddress { get => throw null; set => throw null; } public MulticastOption(System.Net.IPAddress group) => throw null; - public MulticastOption(System.Net.IPAddress group, System.Net.IPAddress mcint) => throw null; public MulticastOption(System.Net.IPAddress group, int interfaceIndex) => throw null; + public MulticastOption(System.Net.IPAddress group, System.Net.IPAddress mcint) => throw null; + public System.Net.IPAddress Group { get => throw null; set { } } + public int InterfaceIndex { get => throw null; set { } } + public System.Net.IPAddress LocalAddress { get => throw null; set { } } } - public class NetworkStream : System.IO.Stream { - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanTimeout { get => throw null; } public override bool CanWrite { get => throw null; } - public void Close(System.TimeSpan timeout) => throw null; public void Close(int timeout) => throw null; + public void Close(System.TimeSpan timeout) => throw null; + public NetworkStream(System.Net.Sockets.Socket socket) => throw null; + public NetworkStream(System.Net.Sockets.Socket socket, bool ownsSocket) => throw null; + public NetworkStream(System.Net.Sockets.Socket socket, System.IO.FileAccess access) => throw null; + public NetworkStream(System.Net.Sockets.Socket socket, System.IO.FileAccess access, bool ownsSocket) => throw null; public virtual bool DataAvailable { get => throw null; } protected override void Dispose(bool disposing) => throw null; public override int EndRead(System.IAsyncResult asyncResult) => throw null; public override void EndWrite(System.IAsyncResult asyncResult) => throw null; public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 Length { get => throw null; } - public NetworkStream(System.Net.Sockets.Socket socket) => throw null; - public NetworkStream(System.Net.Sockets.Socket socket, System.IO.FileAccess access) => throw null; - public NetworkStream(System.Net.Sockets.Socket socket, System.IO.FileAccess access, bool ownsSocket) => throw null; - public NetworkStream(System.Net.Sockets.Socket socket, bool ownsSocket) => throw null; - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + protected bool Readable { get => throw null; set { } } + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override int ReadByte() => throw null; - public override int ReadTimeout { get => throw null; set => throw null; } - protected bool Readable { get => throw null; set => throw null; } - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; + public override int ReadTimeout { get => throw null; set { } } + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; public System.Net.Sockets.Socket Socket { get => throw null; } - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; - public override int WriteTimeout { get => throw null; set => throw null; } - protected bool Writeable { get => throw null; set => throw null; } - // ERR: Stub generator didn't handle member: ~NetworkStream + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + protected bool Writeable { get => throw null; set { } } + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; + public override int WriteTimeout { get => throw null; set { } } } - - public enum ProtocolFamily : int + public enum ProtocolFamily { - AppleTalk = 16, - Atm = 22, - Banyan = 21, - Ccitt = 10, - Chaos = 5, - Cluster = 24, - ControllerAreaNetwork = 65537, - DataKit = 9, - DataLink = 13, - DecNet = 12, - Ecma = 8, - FireFox = 19, - HyperChannel = 15, - Ieee12844 = 25, - ImpLink = 3, - InterNetwork = 2, - InterNetworkV6 = 23, - Ipx = 6, - Irda = 26, - Iso = 7, - Lat = 14, - Max = 29, - NS = 6, - NetBios = 17, - NetworkDesigners = 28, - Osi = 7, - Packet = 65536, - Pup = 4, - Sna = 11, - Unix = 1, Unknown = -1, Unspecified = 0, + Unix = 1, + InterNetwork = 2, + ImpLink = 3, + Pup = 4, + Chaos = 5, + Ipx = 6, + NS = 6, + Iso = 7, + Osi = 7, + Ecma = 8, + DataKit = 9, + Ccitt = 10, + Sna = 11, + DecNet = 12, + DataLink = 13, + Lat = 14, + HyperChannel = 15, + AppleTalk = 16, + NetBios = 17, VoiceView = 18, + FireFox = 19, + Banyan = 21, + Atm = 22, + InterNetworkV6 = 23, + Cluster = 24, + Ieee12844 = 25, + Irda = 26, + NetworkDesigners = 28, + Max = 29, + Packet = 65536, + ControllerAreaNetwork = 65537, } - - public enum ProtocolType : int + public enum ProtocolType { - Ggp = 3, + Unknown = -1, IP = 0, - IPSecAuthenticationHeader = 51, - IPSecEncapsulatingSecurityPayload = 50, - IPv4 = 4, - IPv6 = 41, - IPv6DestinationOptions = 60, - IPv6FragmentHeader = 44, IPv6HopByHopOptions = 0, - IPv6NoNextHeader = 59, - IPv6RoutingHeader = 43, + Unspecified = 0, Icmp = 1, - IcmpV6 = 58, - Idp = 22, Igmp = 2, - Ipx = 1000, - ND = 77, + Ggp = 3, + IPv4 = 4, + Tcp = 6, Pup = 12, + Udp = 17, + Idp = 22, + IPv6 = 41, + IPv6RoutingHeader = 43, + IPv6FragmentHeader = 44, + IPSecEncapsulatingSecurityPayload = 50, + IPSecAuthenticationHeader = 51, + IcmpV6 = 58, + IPv6NoNextHeader = 59, + IPv6DestinationOptions = 60, + ND = 77, Raw = 255, + Ipx = 1000, Spx = 1256, SpxII = 1257, - Tcp = 6, - Udp = 17, - Unknown = -1, - Unspecified = 0, } - - public class SafeSocketHandle : Microsoft.Win32.SafeHandles.SafeHandleMinusOneIsInvalid + public sealed class SafeSocketHandle : Microsoft.Win32.SafeHandles.SafeHandleMinusOneIsInvalid { + public SafeSocketHandle() : base(default(bool)) => throw null; + public SafeSocketHandle(nint preexistingHandle, bool ownsHandle) : base(default(bool)) => throw null; public override bool IsInvalid { get => throw null; } protected override bool ReleaseHandle() => throw null; - public SafeSocketHandle() : base(default(bool)) => throw null; - public SafeSocketHandle(System.IntPtr preexistingHandle, bool ownsHandle) : base(default(bool)) => throw null; } - - public enum SelectMode : int + public enum SelectMode { - SelectError = 2, SelectRead = 0, SelectWrite = 1, + SelectError = 2, } - public class SendPacketsElement { - public System.Byte[] Buffer { get => throw null; } + public byte[] Buffer { get => throw null; } public int Count { get => throw null; } - public bool EndOfPacket { get => throw null; } - public string FilePath { get => throw null; } - public System.IO.FileStream FileStream { get => throw null; } - public System.ReadOnlyMemory? MemoryBuffer { get => throw null; } - public int Offset { get => throw null; } - public System.Int64 OffsetLong { get => throw null; } - public SendPacketsElement(System.Byte[] buffer) => throw null; - public SendPacketsElement(System.Byte[] buffer, int offset, int count) => throw null; - public SendPacketsElement(System.Byte[] buffer, int offset, int count, bool endOfPacket) => throw null; + public SendPacketsElement(byte[] buffer) => throw null; + public SendPacketsElement(byte[] buffer, int offset, int count) => throw null; + public SendPacketsElement(byte[] buffer, int offset, int count, bool endOfPacket) => throw null; public SendPacketsElement(System.IO.FileStream fileStream) => throw null; - public SendPacketsElement(System.IO.FileStream fileStream, System.Int64 offset, int count) => throw null; - public SendPacketsElement(System.IO.FileStream fileStream, System.Int64 offset, int count, bool endOfPacket) => throw null; - public SendPacketsElement(System.ReadOnlyMemory buffer) => throw null; - public SendPacketsElement(System.ReadOnlyMemory buffer, bool endOfPacket) => throw null; + public SendPacketsElement(System.IO.FileStream fileStream, long offset, int count) => throw null; + public SendPacketsElement(System.IO.FileStream fileStream, long offset, int count, bool endOfPacket) => throw null; + public SendPacketsElement(System.ReadOnlyMemory buffer) => throw null; + public SendPacketsElement(System.ReadOnlyMemory buffer, bool endOfPacket) => throw null; public SendPacketsElement(string filepath) => throw null; public SendPacketsElement(string filepath, int offset, int count) => throw null; public SendPacketsElement(string filepath, int offset, int count, bool endOfPacket) => throw null; - public SendPacketsElement(string filepath, System.Int64 offset, int count) => throw null; - public SendPacketsElement(string filepath, System.Int64 offset, int count, bool endOfPacket) => throw null; + public SendPacketsElement(string filepath, long offset, int count) => throw null; + public SendPacketsElement(string filepath, long offset, int count, bool endOfPacket) => throw null; + public bool EndOfPacket { get => throw null; } + public string FilePath { get => throw null; } + public System.IO.FileStream FileStream { get => throw null; } + public System.ReadOnlyMemory? MemoryBuffer { get => throw null; } + public int Offset { get => throw null; } + public long OffsetLong { get => throw null; } } - public class Socket : System.IDisposable { public System.Net.Sockets.Socket Accept() => throw null; public System.Threading.Tasks.Task AcceptAsync() => throw null; - public System.Threading.Tasks.ValueTask AcceptAsync(System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task AcceptAsync(System.Net.Sockets.Socket acceptSocket) => throw null; public System.Threading.Tasks.ValueTask AcceptAsync(System.Net.Sockets.Socket acceptSocket, System.Threading.CancellationToken cancellationToken) => throw null; public bool AcceptAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; + public System.Threading.Tasks.ValueTask AcceptAsync(System.Threading.CancellationToken cancellationToken) => throw null; public System.Net.Sockets.AddressFamily AddressFamily { get => throw null; } public int Available { get => throw null; } public System.IAsyncResult BeginAccept(System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginAccept(System.Net.Sockets.Socket acceptSocket, int receiveSize, System.AsyncCallback callback, object state) => throw null; public System.IAsyncResult BeginAccept(int receiveSize, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginAccept(System.Net.Sockets.Socket acceptSocket, int receiveSize, System.AsyncCallback callback, object state) => throw null; public System.IAsyncResult BeginConnect(System.Net.EndPoint remoteEP, System.AsyncCallback callback, object state) => throw null; public System.IAsyncResult BeginConnect(System.Net.IPAddress address, int port, System.AsyncCallback requestCallback, object state) => throw null; public System.IAsyncResult BeginConnect(System.Net.IPAddress[] addresses, int port, System.AsyncCallback requestCallback, object state) => throw null; public System.IAsyncResult BeginConnect(string host, int port, System.AsyncCallback requestCallback, object state) => throw null; public System.IAsyncResult BeginDisconnect(bool reuseSocket, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginReceive(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginReceive(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginReceive(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginReceive(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginReceiveFrom(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginReceiveMessageFrom(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginSend(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginSend(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginSend(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginSend(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginReceive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginReceive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginReceive(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginReceive(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginReceiveFrom(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginReceiveMessageFrom(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginSend(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginSend(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginSend(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginSend(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, System.AsyncCallback callback, object state) => throw null; public System.IAsyncResult BeginSendFile(string fileName, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginSendFile(string fileName, System.Byte[] preBuffer, System.Byte[] postBuffer, System.Net.Sockets.TransmitFileOptions flags, System.AsyncCallback callback, object state) => throw null; - public System.IAsyncResult BeginSendTo(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginSendFile(string fileName, byte[] preBuffer, byte[] postBuffer, System.Net.Sockets.TransmitFileOptions flags, System.AsyncCallback callback, object state) => throw null; + public System.IAsyncResult BeginSendTo(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP, System.AsyncCallback callback, object state) => throw null; public void Bind(System.Net.EndPoint localEP) => throw null; - public bool Blocking { get => throw null; set => throw null; } + public bool Blocking { get => throw null; set { } } public static void CancelConnectAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; public void Close() => throw null; public void Close(int timeout) => throw null; @@ -289,18 +274,22 @@ namespace System public System.Threading.Tasks.Task ConnectAsync(string host, int port) => throw null; public System.Threading.Tasks.ValueTask ConnectAsync(string host, int port, System.Threading.CancellationToken cancellationToken) => throw null; public bool Connected { get => throw null; } + public Socket(System.Net.Sockets.AddressFamily addressFamily, System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType) => throw null; + public Socket(System.Net.Sockets.SafeSocketHandle handle) => throw null; + public Socket(System.Net.Sockets.SocketInformation socketInformation) => throw null; + public Socket(System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType) => throw null; public void Disconnect(bool reuseSocket) => throw null; - public bool DisconnectAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; public System.Threading.Tasks.ValueTask DisconnectAsync(bool reuseSocket, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public bool DisconnectAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public bool DontFragment { get => throw null; set => throw null; } - public bool DualMode { get => throw null; set => throw null; } + public bool DontFragment { get => throw null; set { } } + public bool DualMode { get => throw null; set { } } public System.Net.Sockets.SocketInformation DuplicateAndClose(int targetProcessId) => throw null; - public bool EnableBroadcast { get => throw null; set => throw null; } + public bool EnableBroadcast { get => throw null; set { } } + public System.Net.Sockets.Socket EndAccept(out byte[] buffer, System.IAsyncResult asyncResult) => throw null; + public System.Net.Sockets.Socket EndAccept(out byte[] buffer, out int bytesTransferred, System.IAsyncResult asyncResult) => throw null; public System.Net.Sockets.Socket EndAccept(System.IAsyncResult asyncResult) => throw null; - public System.Net.Sockets.Socket EndAccept(out System.Byte[] buffer, System.IAsyncResult asyncResult) => throw null; - public System.Net.Sockets.Socket EndAccept(out System.Byte[] buffer, out int bytesTransferred, System.IAsyncResult asyncResult) => throw null; public void EndConnect(System.IAsyncResult asyncResult) => throw null; public void EndDisconnect(System.IAsyncResult asyncResult) => throw null; public int EndReceive(System.IAsyncResult asyncResult) => throw null; @@ -311,163 +300,155 @@ namespace System public int EndSend(System.IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode) => throw null; public void EndSendFile(System.IAsyncResult asyncResult) => throw null; public int EndSendTo(System.IAsyncResult asyncResult) => throw null; - public bool ExclusiveAddressUse { get => throw null; set => throw null; } - public int GetRawSocketOption(int optionLevel, int optionName, System.Span optionValue) => throw null; + public bool ExclusiveAddressUse { get => throw null; set { } } + public int GetRawSocketOption(int optionLevel, int optionName, System.Span optionValue) => throw null; public object GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName) => throw null; - public void GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, System.Byte[] optionValue) => throw null; - public System.Byte[] GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionLength) => throw null; - public System.IntPtr Handle { get => throw null; } - public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, System.Byte[] optionInValue, System.Byte[] optionOutValue) => throw null; - public int IOControl(int ioControlCode, System.Byte[] optionInValue, System.Byte[] optionOutValue) => throw null; + public void GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue) => throw null; + public byte[] GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionLength) => throw null; + public nint Handle { get => throw null; } + public int IOControl(int ioControlCode, byte[] optionInValue, byte[] optionOutValue) => throw null; + public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, byte[] optionInValue, byte[] optionOutValue) => throw null; public bool IsBound { get => throw null; } - public System.Net.Sockets.LingerOption LingerState { get => throw null; set => throw null; } + public System.Net.Sockets.LingerOption LingerState { get => throw null; set { } } public void Listen() => throw null; public void Listen(int backlog) => throw null; public System.Net.EndPoint LocalEndPoint { get => throw null; } - public bool MulticastLoopback { get => throw null; set => throw null; } - public bool NoDelay { get => throw null; set => throw null; } + public bool MulticastLoopback { get => throw null; set { } } + public bool NoDelay { get => throw null; set { } } public static bool OSSupportsIPv4 { get => throw null; } public static bool OSSupportsIPv6 { get => throw null; } public static bool OSSupportsUnixDomainSockets { get => throw null; } - public bool Poll(System.TimeSpan timeout, System.Net.Sockets.SelectMode mode) => throw null; public bool Poll(int microSeconds, System.Net.Sockets.SelectMode mode) => throw null; + public bool Poll(System.TimeSpan timeout, System.Net.Sockets.SelectMode mode) => throw null; public System.Net.Sockets.ProtocolType ProtocolType { get => throw null; } - public int Receive(System.Byte[] buffer) => throw null; - public int Receive(System.Byte[] buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public int Receive(System.Byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public int Receive(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public int Receive(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; - public int Receive(System.Collections.Generic.IList> buffers) => throw null; - public int Receive(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public int Receive(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; - public int Receive(System.Span buffer) => throw null; - public int Receive(System.Span buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public int Receive(System.Span buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; - public System.Threading.Tasks.Task ReceiveAsync(System.ArraySegment buffer) => throw null; - public System.Threading.Tasks.Task ReceiveAsync(System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public System.Threading.Tasks.Task ReceiveAsync(System.Collections.Generic.IList> buffers) => throw null; - public System.Threading.Tasks.Task ReceiveAsync(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public System.Threading.Tasks.ValueTask ReceiveAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask ReceiveAsync(System.Memory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public int Receive(byte[] buffer) => throw null; + public int Receive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public int Receive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; + public int Receive(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public int Receive(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public int Receive(System.Collections.Generic.IList> buffers) => throw null; + public int Receive(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public int Receive(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; + public int Receive(System.Span buffer) => throw null; + public int Receive(System.Span buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public int Receive(System.Span buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; + public System.Threading.Tasks.Task ReceiveAsync(System.ArraySegment buffer) => throw null; + public System.Threading.Tasks.Task ReceiveAsync(System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public System.Threading.Tasks.Task ReceiveAsync(System.Collections.Generic.IList> buffers) => throw null; + public System.Threading.Tasks.Task ReceiveAsync(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public System.Threading.Tasks.ValueTask ReceiveAsync(System.Memory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask ReceiveAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public bool ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; - public int ReceiveBufferSize { get => throw null; set => throw null; } - public int ReceiveFrom(System.Byte[] buffer, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP) => throw null; - public int ReceiveFrom(System.Byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP) => throw null; - public int ReceiveFrom(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP) => throw null; - public int ReceiveFrom(System.Byte[] buffer, ref System.Net.EndPoint remoteEP) => throw null; - public int ReceiveFrom(System.Span buffer, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP) => throw null; - public int ReceiveFrom(System.Span buffer, ref System.Net.EndPoint remoteEP) => throw null; - public System.Threading.Tasks.Task ReceiveFromAsync(System.ArraySegment buffer, System.Net.EndPoint remoteEndPoint) => throw null; - public System.Threading.Tasks.Task ReceiveFromAsync(System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) => throw null; - public System.Threading.Tasks.ValueTask ReceiveFromAsync(System.Memory buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask ReceiveFromAsync(System.Memory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public int ReceiveBufferSize { get => throw null; set { } } + public int ReceiveFrom(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP) => throw null; + public int ReceiveFrom(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP) => throw null; + public int ReceiveFrom(byte[] buffer, ref System.Net.EndPoint remoteEP) => throw null; + public int ReceiveFrom(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP) => throw null; + public int ReceiveFrom(System.Span buffer, ref System.Net.EndPoint remoteEP) => throw null; + public int ReceiveFrom(System.Span buffer, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP) => throw null; + public System.Threading.Tasks.Task ReceiveFromAsync(System.ArraySegment buffer, System.Net.EndPoint remoteEndPoint) => throw null; + public System.Threading.Tasks.Task ReceiveFromAsync(System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) => throw null; + public System.Threading.Tasks.ValueTask ReceiveFromAsync(System.Memory buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask ReceiveFromAsync(System.Memory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public bool ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; - public int ReceiveMessageFrom(System.Byte[] buffer, int offset, int size, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation) => throw null; - public int ReceiveMessageFrom(System.Span buffer, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation) => throw null; - public System.Threading.Tasks.Task ReceiveMessageFromAsync(System.ArraySegment buffer, System.Net.EndPoint remoteEndPoint) => throw null; - public System.Threading.Tasks.Task ReceiveMessageFromAsync(System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) => throw null; - public System.Threading.Tasks.ValueTask ReceiveMessageFromAsync(System.Memory buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask ReceiveMessageFromAsync(System.Memory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public int ReceiveMessageFrom(byte[] buffer, int offset, int size, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation) => throw null; + public int ReceiveMessageFrom(System.Span buffer, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation) => throw null; + public System.Threading.Tasks.Task ReceiveMessageFromAsync(System.ArraySegment buffer, System.Net.EndPoint remoteEndPoint) => throw null; + public System.Threading.Tasks.Task ReceiveMessageFromAsync(System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) => throw null; + public System.Threading.Tasks.ValueTask ReceiveMessageFromAsync(System.Memory buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask ReceiveMessageFromAsync(System.Memory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public bool ReceiveMessageFromAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; - public int ReceiveTimeout { get => throw null; set => throw null; } + public int ReceiveTimeout { get => throw null; set { } } public System.Net.EndPoint RemoteEndPoint { get => throw null; } public System.Net.Sockets.SafeSocketHandle SafeHandle { get => throw null; } - public static void Select(System.Collections.IList checkRead, System.Collections.IList checkWrite, System.Collections.IList checkError, System.TimeSpan timeout) => throw null; public static void Select(System.Collections.IList checkRead, System.Collections.IList checkWrite, System.Collections.IList checkError, int microSeconds) => throw null; - public int Send(System.Byte[] buffer) => throw null; - public int Send(System.Byte[] buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public int Send(System.Byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public int Send(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public int Send(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; - public int Send(System.Collections.Generic.IList> buffers) => throw null; - public int Send(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public int Send(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; - public int Send(System.ReadOnlySpan buffer) => throw null; - public int Send(System.ReadOnlySpan buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public int Send(System.ReadOnlySpan buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; - public System.Threading.Tasks.Task SendAsync(System.ArraySegment buffer) => throw null; - public System.Threading.Tasks.Task SendAsync(System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public System.Threading.Tasks.Task SendAsync(System.Collections.Generic.IList> buffers) => throw null; - public System.Threading.Tasks.Task SendAsync(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static void Select(System.Collections.IList checkRead, System.Collections.IList checkWrite, System.Collections.IList checkError, System.TimeSpan timeout) => throw null; + public int Send(byte[] buffer) => throw null; + public int Send(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public int Send(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; + public int Send(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public int Send(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public int Send(System.Collections.Generic.IList> buffers) => throw null; + public int Send(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public int Send(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; + public int Send(System.ReadOnlySpan buffer) => throw null; + public int Send(System.ReadOnlySpan buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public int Send(System.ReadOnlySpan buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode) => throw null; + public System.Threading.Tasks.Task SendAsync(System.ArraySegment buffer) => throw null; + public System.Threading.Tasks.Task SendAsync(System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public System.Threading.Tasks.Task SendAsync(System.Collections.Generic.IList> buffers) => throw null; + public System.Threading.Tasks.Task SendAsync(System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; public bool SendAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; - public int SendBufferSize { get => throw null; set => throw null; } + public System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public int SendBufferSize { get => throw null; set { } } public void SendFile(string fileName) => throw null; - public void SendFile(string fileName, System.Byte[] preBuffer, System.Byte[] postBuffer, System.Net.Sockets.TransmitFileOptions flags) => throw null; - public void SendFile(string fileName, System.ReadOnlySpan preBuffer, System.ReadOnlySpan postBuffer, System.Net.Sockets.TransmitFileOptions flags) => throw null; + public void SendFile(string fileName, byte[] preBuffer, byte[] postBuffer, System.Net.Sockets.TransmitFileOptions flags) => throw null; + public void SendFile(string fileName, System.ReadOnlySpan preBuffer, System.ReadOnlySpan postBuffer, System.Net.Sockets.TransmitFileOptions flags) => throw null; + public System.Threading.Tasks.ValueTask SendFileAsync(string fileName, System.ReadOnlyMemory preBuffer, System.ReadOnlyMemory postBuffer, System.Net.Sockets.TransmitFileOptions flags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.ValueTask SendFileAsync(string fileName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask SendFileAsync(string fileName, System.ReadOnlyMemory preBuffer, System.ReadOnlyMemory postBuffer, System.Net.Sockets.TransmitFileOptions flags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public bool SendPacketsAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; - public int SendTimeout { get => throw null; set => throw null; } - public int SendTo(System.Byte[] buffer, System.Net.EndPoint remoteEP) => throw null; - public int SendTo(System.Byte[] buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; - public int SendTo(System.Byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; - public int SendTo(System.Byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; - public int SendTo(System.ReadOnlySpan buffer, System.Net.EndPoint remoteEP) => throw null; - public int SendTo(System.ReadOnlySpan buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; - public System.Threading.Tasks.Task SendToAsync(System.ArraySegment buffer, System.Net.EndPoint remoteEP) => throw null; - public System.Threading.Tasks.Task SendToAsync(System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; - public System.Threading.Tasks.ValueTask SendToAsync(System.ReadOnlyMemory buffer, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask SendToAsync(System.ReadOnlyMemory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public int SendTimeout { get => throw null; set { } } + public int SendTo(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; + public int SendTo(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; + public int SendTo(byte[] buffer, System.Net.EndPoint remoteEP) => throw null; + public int SendTo(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; + public int SendTo(System.ReadOnlySpan buffer, System.Net.EndPoint remoteEP) => throw null; + public int SendTo(System.ReadOnlySpan buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; + public System.Threading.Tasks.Task SendToAsync(System.ArraySegment buffer, System.Net.EndPoint remoteEP) => throw null; + public System.Threading.Tasks.Task SendToAsync(System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; public bool SendToAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; + public System.Threading.Tasks.ValueTask SendToAsync(System.ReadOnlyMemory buffer, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask SendToAsync(System.ReadOnlyMemory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public void SetIPProtectionLevel(System.Net.Sockets.IPProtectionLevel level) => throw null; - public void SetRawSocketOption(int optionLevel, int optionName, System.ReadOnlySpan optionValue) => throw null; - public void SetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, System.Byte[] optionValue) => throw null; + public void SetRawSocketOption(int optionLevel, int optionName, System.ReadOnlySpan optionValue) => throw null; public void SetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, bool optionValue) => throw null; + public void SetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue) => throw null; public void SetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionValue) => throw null; public void SetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, object optionValue) => throw null; public void Shutdown(System.Net.Sockets.SocketShutdown how) => throw null; - public Socket(System.Net.Sockets.AddressFamily addressFamily, System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType) => throw null; - public Socket(System.Net.Sockets.SafeSocketHandle handle) => throw null; - public Socket(System.Net.Sockets.SocketInformation socketInformation) => throw null; - public Socket(System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType) => throw null; public System.Net.Sockets.SocketType SocketType { get => throw null; } public static bool SupportsIPv4 { get => throw null; } public static bool SupportsIPv6 { get => throw null; } - public System.Int16 Ttl { get => throw null; set => throw null; } - public bool UseOnlyOverlappedIO { get => throw null; set => throw null; } - // ERR: Stub generator didn't handle member: ~Socket + public short Ttl { get => throw null; set { } } + public bool UseOnlyOverlappedIO { get => throw null; set { } } } - public class SocketAsyncEventArgs : System.EventArgs, System.IDisposable { - public System.Net.Sockets.Socket AcceptSocket { get => throw null; set => throw null; } - public System.Byte[] Buffer { get => throw null; } - public System.Collections.Generic.IList> BufferList { get => throw null; set => throw null; } + public System.Net.Sockets.Socket AcceptSocket { get => throw null; set { } } + public byte[] Buffer { get => throw null; } + public System.Collections.Generic.IList> BufferList { get => throw null; set { } } public int BytesTransferred { get => throw null; } - public event System.EventHandler Completed; + public event System.EventHandler Completed { add { } remove { } } public System.Exception ConnectByNameError { get => throw null; } public System.Net.Sockets.Socket ConnectSocket { get => throw null; } public int Count { get => throw null; } - public bool DisconnectReuseSocket { get => throw null; set => throw null; } + public SocketAsyncEventArgs() => throw null; + public SocketAsyncEventArgs(bool unsafeSuppressExecutionContextFlow) => throw null; + public bool DisconnectReuseSocket { get => throw null; set { } } public void Dispose() => throw null; public System.Net.Sockets.SocketAsyncOperation LastOperation { get => throw null; } - public System.Memory MemoryBuffer { get => throw null; } + public System.Memory MemoryBuffer { get => throw null; } public int Offset { get => throw null; } protected virtual void OnCompleted(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; public System.Net.Sockets.IPPacketInformation ReceiveMessageFromPacketInfo { get => throw null; } - public System.Net.EndPoint RemoteEndPoint { get => throw null; set => throw null; } - public System.Net.Sockets.SendPacketsElement[] SendPacketsElements { get => throw null; set => throw null; } - public System.Net.Sockets.TransmitFileOptions SendPacketsFlags { get => throw null; set => throw null; } - public int SendPacketsSendSize { get => throw null; set => throw null; } - public void SetBuffer(System.Byte[] buffer, int offset, int count) => throw null; - public void SetBuffer(System.Memory buffer) => throw null; + public System.Net.EndPoint RemoteEndPoint { get => throw null; set { } } + public System.Net.Sockets.SendPacketsElement[] SendPacketsElements { get => throw null; set { } } + public System.Net.Sockets.TransmitFileOptions SendPacketsFlags { get => throw null; set { } } + public int SendPacketsSendSize { get => throw null; set { } } + public void SetBuffer(byte[] buffer, int offset, int count) => throw null; public void SetBuffer(int offset, int count) => throw null; - public SocketAsyncEventArgs() => throw null; - public SocketAsyncEventArgs(bool unsafeSuppressExecutionContextFlow) => throw null; - public System.Net.Sockets.SocketError SocketError { get => throw null; set => throw null; } - public System.Net.Sockets.SocketFlags SocketFlags { get => throw null; set => throw null; } - public object UserToken { get => throw null; set => throw null; } - // ERR: Stub generator didn't handle member: ~SocketAsyncEventArgs + public void SetBuffer(System.Memory buffer) => throw null; + public System.Net.Sockets.SocketError SocketError { get => throw null; set { } } + public System.Net.Sockets.SocketFlags SocketFlags { get => throw null; set { } } + public object UserToken { get => throw null; set { } } } - - public enum SocketAsyncOperation : int + public enum SocketAsyncOperation { + None = 0, Accept = 1, Connect = 2, Disconnect = 3, - None = 0, Receive = 4, ReceiveFrom = 5, ReceiveMessageFrom = 6, @@ -475,123 +456,111 @@ namespace System SendPackets = 8, SendTo = 9, } - [System.Flags] - public enum SocketFlags : int + public enum SocketFlags { - Broadcast = 1024, - ControlDataTruncated = 512, - DontRoute = 4, - Multicast = 2048, None = 0, OutOfBand = 1, - Partial = 32768, Peek = 2, + DontRoute = 4, Truncated = 256, + ControlDataTruncated = 512, + Broadcast = 1024, + Multicast = 2048, + Partial = 32768, } - public struct SocketInformation { - public System.Net.Sockets.SocketInformationOptions Options { get => throw null; set => throw null; } - public System.Byte[] ProtocolInformation { get => throw null; set => throw null; } - // Stub generator skipped constructor + public System.Net.Sockets.SocketInformationOptions Options { get => throw null; set { } } + public byte[] ProtocolInformation { get => throw null; set { } } } - [System.Flags] - public enum SocketInformationOptions : int + public enum SocketInformationOptions { + NonBlocking = 1, Connected = 2, Listening = 4, - NonBlocking = 1, UseOnlyOverlappedIO = 8, } - - public enum SocketOptionLevel : int + public enum SocketOptionLevel { IP = 0, - IPv6 = 41, - Socket = 65535, Tcp = 6, Udp = 17, + IPv6 = 41, + Socket = 65535, } - - public enum SocketOptionName : int + public enum SocketOptionName { - AcceptConnection = 2, - AddMembership = 12, - AddSourceMembership = 15, - BlockSource = 17, - Broadcast = 32, - BsdUrgent = 2, - ChecksumCoverage = 20, - Debug = 1, - DontFragment = 14, DontLinger = -129, - DontRoute = 16, - DropMembership = 13, - DropSourceMembership = 16, - Error = 4103, ExclusiveAddressUse = -5, - Expedited = 2, - HeaderIncluded = 2, - HopLimit = 21, + Debug = 1, IPOptions = 1, - IPProtectionLevel = 23, - IPv6Only = 27, - IpTimeToLive = 4, - KeepAlive = 8, - Linger = 128, - MaxConnections = 2147483647, - MulticastInterface = 9, - MulticastLoopback = 11, - MulticastTimeToLive = 10, NoChecksum = 1, NoDelay = 1, - OutOfBandInline = 256, - PacketInformation = 19, - ReceiveBuffer = 4098, - ReceiveLowWater = 4100, - ReceiveTimeout = 4102, - ReuseAddress = 4, - ReuseUnicastPort = 12295, - SendBuffer = 4097, - SendLowWater = 4099, - SendTimeout = 4101, - TcpKeepAliveInterval = 17, - TcpKeepAliveRetryCount = 16, + AcceptConnection = 2, + BsdUrgent = 2, + Expedited = 2, + HeaderIncluded = 2, TcpKeepAliveTime = 3, - Type = 4104, TypeOfService = 3, + IpTimeToLive = 4, + ReuseAddress = 4, + KeepAlive = 8, + MulticastInterface = 9, + MulticastTimeToLive = 10, + MulticastLoopback = 11, + AddMembership = 12, + DropMembership = 13, + DontFragment = 14, + AddSourceMembership = 15, + DontRoute = 16, + DropSourceMembership = 16, + TcpKeepAliveRetryCount = 16, + BlockSource = 17, + TcpKeepAliveInterval = 17, UnblockSource = 18, + PacketInformation = 19, + ChecksumCoverage = 20, + HopLimit = 21, + IPProtectionLevel = 23, + IPv6Only = 27, + Broadcast = 32, + UseLoopback = 64, + Linger = 128, + OutOfBandInline = 256, + SendBuffer = 4097, + ReceiveBuffer = 4098, + SendLowWater = 4099, + ReceiveLowWater = 4100, + SendTimeout = 4101, + ReceiveTimeout = 4102, + Error = 4103, + Type = 4104, + ReuseUnicastPort = 12295, UpdateAcceptContext = 28683, UpdateConnectContext = 28688, - UseLoopback = 64, + MaxConnections = 2147483647, } - public struct SocketReceiveFromResult { public int ReceivedBytes; public System.Net.EndPoint RemoteEndPoint; - // Stub generator skipped constructor } - public struct SocketReceiveMessageFromResult { public System.Net.Sockets.IPPacketInformation PacketInformation; public int ReceivedBytes; public System.Net.EndPoint RemoteEndPoint; public System.Net.Sockets.SocketFlags SocketFlags; - // Stub generator skipped constructor } - - public enum SocketShutdown : int + public enum SocketShutdown { - Both = 2, Receive = 0, Send = 1, + Both = 2, } - - public static class SocketTaskExtensions + public static partial class SocketTaskExtensions { public static System.Threading.Tasks.Task AcceptAsync(this System.Net.Sockets.Socket socket) => throw null; public static System.Threading.Tasks.Task AcceptAsync(this System.Net.Sockets.Socket socket, System.Net.Sockets.Socket acceptSocket) => throw null; @@ -603,35 +572,33 @@ namespace System public static System.Threading.Tasks.ValueTask ConnectAsync(this System.Net.Sockets.Socket socket, System.Net.IPAddress[] addresses, int port, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task ConnectAsync(this System.Net.Sockets.Socket socket, string host, int port) => throw null; public static System.Threading.Tasks.ValueTask ConnectAsync(this System.Net.Sockets.Socket socket, string host, int port, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task ReceiveAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public static System.Threading.Tasks.Task ReceiveAsync(this System.Net.Sockets.Socket socket, System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public static System.Threading.Tasks.ValueTask ReceiveAsync(this System.Net.Sockets.Socket socket, System.Memory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ReceiveFromAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) => throw null; - public static System.Threading.Tasks.Task ReceiveMessageFromAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) => throw null; - public static System.Threading.Tasks.Task SendAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public static System.Threading.Tasks.Task SendAsync(this System.Net.Sockets.Socket socket, System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; - public static System.Threading.Tasks.ValueTask SendAsync(this System.Net.Sockets.Socket socket, System.ReadOnlyMemory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SendToAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; + public static System.Threading.Tasks.Task ReceiveAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public static System.Threading.Tasks.Task ReceiveAsync(this System.Net.Sockets.Socket socket, System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public static System.Threading.Tasks.ValueTask ReceiveAsync(this System.Net.Sockets.Socket socket, System.Memory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ReceiveFromAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) => throw null; + public static System.Threading.Tasks.Task ReceiveMessageFromAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) => throw null; + public static System.Threading.Tasks.Task SendAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public static System.Threading.Tasks.Task SendAsync(this System.Net.Sockets.Socket socket, System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) => throw null; + public static System.Threading.Tasks.ValueTask SendAsync(this System.Net.Sockets.Socket socket, System.ReadOnlyMemory buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendToAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => throw null; } - - public enum SocketType : int + public enum SocketType { + Unknown = -1, + Stream = 1, Dgram = 2, Raw = 3, Rdm = 4, Seqpacket = 5, - Stream = 1, - Unknown = -1, } - public class TcpClient : System.IDisposable { - protected bool Active { get => throw null; set => throw null; } + protected bool Active { get => throw null; set { } } public int Available { get => throw null; } public System.IAsyncResult BeginConnect(System.Net.IPAddress address, int port, System.AsyncCallback requestCallback, object state) => throw null; public System.IAsyncResult BeginConnect(System.Net.IPAddress[] addresses, int port, System.AsyncCallback requestCallback, object state) => throw null; public System.IAsyncResult BeginConnect(string host, int port, System.AsyncCallback requestCallback, object state) => throw null; - public System.Net.Sockets.Socket Client { get => throw null; set => throw null; } + public System.Net.Sockets.Socket Client { get => throw null; set { } } public void Close() => throw null; public void Connect(System.Net.IPAddress address, int port) => throw null; public void Connect(System.Net.IPAddress[] ipAddresses, int port) => throw null; @@ -646,24 +613,22 @@ namespace System public System.Threading.Tasks.Task ConnectAsync(string host, int port) => throw null; public System.Threading.Tasks.ValueTask ConnectAsync(string host, int port, System.Threading.CancellationToken cancellationToken) => throw null; public bool Connected { get => throw null; } + public TcpClient() => throw null; + public TcpClient(System.Net.IPEndPoint localEP) => throw null; + public TcpClient(System.Net.Sockets.AddressFamily family) => throw null; + public TcpClient(string hostname, int port) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public void EndConnect(System.IAsyncResult asyncResult) => throw null; - public bool ExclusiveAddressUse { get => throw null; set => throw null; } + public bool ExclusiveAddressUse { get => throw null; set { } } public System.Net.Sockets.NetworkStream GetStream() => throw null; - public System.Net.Sockets.LingerOption LingerState { get => throw null; set => throw null; } - public bool NoDelay { get => throw null; set => throw null; } - public int ReceiveBufferSize { get => throw null; set => throw null; } - public int ReceiveTimeout { get => throw null; set => throw null; } - public int SendBufferSize { get => throw null; set => throw null; } - public int SendTimeout { get => throw null; set => throw null; } - public TcpClient() => throw null; - public TcpClient(System.Net.Sockets.AddressFamily family) => throw null; - public TcpClient(System.Net.IPEndPoint localEP) => throw null; - public TcpClient(string hostname, int port) => throw null; - // ERR: Stub generator didn't handle member: ~TcpClient + public System.Net.Sockets.LingerOption LingerState { get => throw null; set { } } + public bool NoDelay { get => throw null; set { } } + public int ReceiveBufferSize { get => throw null; set { } } + public int ReceiveTimeout { get => throw null; set { } } + public int SendBufferSize { get => throw null; set { } } + public int SendTimeout { get => throw null; set { } } } - public class TcpListener { public System.Net.Sockets.Socket AcceptSocket() => throw null; @@ -677,105 +642,99 @@ namespace System public System.IAsyncResult BeginAcceptSocket(System.AsyncCallback callback, object state) => throw null; public System.IAsyncResult BeginAcceptTcpClient(System.AsyncCallback callback, object state) => throw null; public static System.Net.Sockets.TcpListener Create(int port) => throw null; + public TcpListener(int port) => throw null; + public TcpListener(System.Net.IPAddress localaddr, int port) => throw null; + public TcpListener(System.Net.IPEndPoint localEP) => throw null; public System.Net.Sockets.Socket EndAcceptSocket(System.IAsyncResult asyncResult) => throw null; public System.Net.Sockets.TcpClient EndAcceptTcpClient(System.IAsyncResult asyncResult) => throw null; - public bool ExclusiveAddressUse { get => throw null; set => throw null; } + public bool ExclusiveAddressUse { get => throw null; set { } } public System.Net.EndPoint LocalEndpoint { get => throw null; } public bool Pending() => throw null; public System.Net.Sockets.Socket Server { get => throw null; } public void Start() => throw null; public void Start(int backlog) => throw null; public void Stop() => throw null; - public TcpListener(System.Net.IPAddress localaddr, int port) => throw null; - public TcpListener(System.Net.IPEndPoint localEP) => throw null; - public TcpListener(int port) => throw null; } - [System.Flags] - public enum TransmitFileOptions : int + public enum TransmitFileOptions { + UseDefaultWorkerThread = 0, Disconnect = 1, ReuseSocket = 2, - UseDefaultWorkerThread = 0, - UseKernelApc = 32, - UseSystemThread = 16, WriteBehind = 4, + UseSystemThread = 16, + UseKernelApc = 32, } - public class UdpClient : System.IDisposable { - protected bool Active { get => throw null; set => throw null; } + protected bool Active { get => throw null; set { } } public void AllowNatTraversal(bool allowed) => throw null; public int Available { get => throw null; } public System.IAsyncResult BeginReceive(System.AsyncCallback requestCallback, object state) => throw null; - public System.IAsyncResult BeginSend(System.Byte[] datagram, int bytes, System.AsyncCallback requestCallback, object state) => throw null; - public System.IAsyncResult BeginSend(System.Byte[] datagram, int bytes, System.Net.IPEndPoint endPoint, System.AsyncCallback requestCallback, object state) => throw null; - public System.IAsyncResult BeginSend(System.Byte[] datagram, int bytes, string hostname, int port, System.AsyncCallback requestCallback, object state) => throw null; - public System.Net.Sockets.Socket Client { get => throw null; set => throw null; } + public System.IAsyncResult BeginSend(byte[] datagram, int bytes, System.AsyncCallback requestCallback, object state) => throw null; + public System.IAsyncResult BeginSend(byte[] datagram, int bytes, System.Net.IPEndPoint endPoint, System.AsyncCallback requestCallback, object state) => throw null; + public System.IAsyncResult BeginSend(byte[] datagram, int bytes, string hostname, int port, System.AsyncCallback requestCallback, object state) => throw null; + public System.Net.Sockets.Socket Client { get => throw null; set { } } public void Close() => throw null; public void Connect(System.Net.IPAddress addr, int port) => throw null; public void Connect(System.Net.IPEndPoint endPoint) => throw null; public void Connect(string hostname, int port) => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public bool DontFragment { get => throw null; set => throw null; } - public void DropMulticastGroup(System.Net.IPAddress multicastAddr) => throw null; - public void DropMulticastGroup(System.Net.IPAddress multicastAddr, int ifindex) => throw null; - public bool EnableBroadcast { get => throw null; set => throw null; } - public System.Byte[] EndReceive(System.IAsyncResult asyncResult, ref System.Net.IPEndPoint remoteEP) => throw null; - public int EndSend(System.IAsyncResult asyncResult) => throw null; - public bool ExclusiveAddressUse { get => throw null; set => throw null; } - public void JoinMulticastGroup(System.Net.IPAddress multicastAddr) => throw null; - public void JoinMulticastGroup(System.Net.IPAddress multicastAddr, System.Net.IPAddress localAddress) => throw null; - public void JoinMulticastGroup(System.Net.IPAddress multicastAddr, int timeToLive) => throw null; - public void JoinMulticastGroup(int ifindex, System.Net.IPAddress multicastAddr) => throw null; - public bool MulticastLoopback { get => throw null; set => throw null; } - public System.Byte[] Receive(ref System.Net.IPEndPoint remoteEP) => throw null; - public System.Threading.Tasks.Task ReceiveAsync() => throw null; - public System.Threading.Tasks.ValueTask ReceiveAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public int Send(System.Byte[] dgram, int bytes) => throw null; - public int Send(System.Byte[] dgram, int bytes, System.Net.IPEndPoint endPoint) => throw null; - public int Send(System.Byte[] dgram, int bytes, string hostname, int port) => throw null; - public int Send(System.ReadOnlySpan datagram) => throw null; - public int Send(System.ReadOnlySpan datagram, System.Net.IPEndPoint endPoint) => throw null; - public int Send(System.ReadOnlySpan datagram, string hostname, int port) => throw null; - public System.Threading.Tasks.Task SendAsync(System.Byte[] datagram, int bytes) => throw null; - public System.Threading.Tasks.Task SendAsync(System.Byte[] datagram, int bytes, System.Net.IPEndPoint endPoint) => throw null; - public System.Threading.Tasks.Task SendAsync(System.Byte[] datagram, int bytes, string hostname, int port) => throw null; - public System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory datagram, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory datagram, System.Net.IPEndPoint endPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory datagram, string hostname, int port, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Int16 Ttl { get => throw null; set => throw null; } public UdpClient() => throw null; - public UdpClient(System.Net.Sockets.AddressFamily family) => throw null; - public UdpClient(System.Net.IPEndPoint localEP) => throw null; public UdpClient(int port) => throw null; public UdpClient(int port, System.Net.Sockets.AddressFamily family) => throw null; + public UdpClient(System.Net.IPEndPoint localEP) => throw null; + public UdpClient(System.Net.Sockets.AddressFamily family) => throw null; public UdpClient(string hostname, int port) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public bool DontFragment { get => throw null; set { } } + public void DropMulticastGroup(System.Net.IPAddress multicastAddr) => throw null; + public void DropMulticastGroup(System.Net.IPAddress multicastAddr, int ifindex) => throw null; + public bool EnableBroadcast { get => throw null; set { } } + public byte[] EndReceive(System.IAsyncResult asyncResult, ref System.Net.IPEndPoint remoteEP) => throw null; + public int EndSend(System.IAsyncResult asyncResult) => throw null; + public bool ExclusiveAddressUse { get => throw null; set { } } + public void JoinMulticastGroup(int ifindex, System.Net.IPAddress multicastAddr) => throw null; + public void JoinMulticastGroup(System.Net.IPAddress multicastAddr) => throw null; + public void JoinMulticastGroup(System.Net.IPAddress multicastAddr, int timeToLive) => throw null; + public void JoinMulticastGroup(System.Net.IPAddress multicastAddr, System.Net.IPAddress localAddress) => throw null; + public bool MulticastLoopback { get => throw null; set { } } + public byte[] Receive(ref System.Net.IPEndPoint remoteEP) => throw null; + public System.Threading.Tasks.Task ReceiveAsync() => throw null; + public System.Threading.Tasks.ValueTask ReceiveAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public int Send(byte[] dgram, int bytes) => throw null; + public int Send(byte[] dgram, int bytes, System.Net.IPEndPoint endPoint) => throw null; + public int Send(byte[] dgram, int bytes, string hostname, int port) => throw null; + public int Send(System.ReadOnlySpan datagram) => throw null; + public int Send(System.ReadOnlySpan datagram, System.Net.IPEndPoint endPoint) => throw null; + public int Send(System.ReadOnlySpan datagram, string hostname, int port) => throw null; + public System.Threading.Tasks.Task SendAsync(byte[] datagram, int bytes) => throw null; + public System.Threading.Tasks.Task SendAsync(byte[] datagram, int bytes, System.Net.IPEndPoint endPoint) => throw null; + public System.Threading.Tasks.Task SendAsync(byte[] datagram, int bytes, string hostname, int port) => throw null; + public System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory datagram, System.Net.IPEndPoint endPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory datagram, string hostname, int port, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory datagram, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public short Ttl { get => throw null; set { } } } - public struct UdpReceiveResult : System.IEquatable { - public static bool operator !=(System.Net.Sockets.UdpReceiveResult left, System.Net.Sockets.UdpReceiveResult right) => throw null; - public static bool operator ==(System.Net.Sockets.UdpReceiveResult left, System.Net.Sockets.UdpReceiveResult right) => throw null; - public System.Byte[] Buffer { get => throw null; } + public byte[] Buffer { get => throw null; } + public UdpReceiveResult(byte[] buffer, System.Net.IPEndPoint remoteEndPoint) => throw null; public bool Equals(System.Net.Sockets.UdpReceiveResult other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; + public static bool operator ==(System.Net.Sockets.UdpReceiveResult left, System.Net.Sockets.UdpReceiveResult right) => throw null; + public static bool operator !=(System.Net.Sockets.UdpReceiveResult left, System.Net.Sockets.UdpReceiveResult right) => throw null; public System.Net.IPEndPoint RemoteEndPoint { get => throw null; } - // Stub generator skipped constructor - public UdpReceiveResult(System.Byte[] buffer, System.Net.IPEndPoint remoteEndPoint) => throw null; } - - public class UnixDomainSocketEndPoint : System.Net.EndPoint + public sealed class UnixDomainSocketEndPoint : System.Net.EndPoint { public override System.Net.Sockets.AddressFamily AddressFamily { get => throw null; } public override System.Net.EndPoint Create(System.Net.SocketAddress socketAddress) => throw null; + public UnixDomainSocketEndPoint(string path) => throw null; public override System.Net.SocketAddress Serialize() => throw null; public override string ToString() => throw null; - public UnixDomainSocketEndPoint(string path) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebClient.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebClient.cs index 729b6fe0355..f77da218449 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebClient.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebClient.cs @@ -1,129 +1,109 @@ // This file contains auto-generated code. // Generated from `System.Net.WebClient, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Net { public class DownloadDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - internal DownloadDataCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; - public System.Byte[] Result { get => throw null; } + public byte[] Result { get => throw null; } + internal DownloadDataCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) { } } - public delegate void DownloadDataCompletedEventHandler(object sender, System.Net.DownloadDataCompletedEventArgs e); - public class DownloadProgressChangedEventArgs : System.ComponentModel.ProgressChangedEventArgs { - public System.Int64 BytesReceived { get => throw null; } - internal DownloadProgressChangedEventArgs() : base(default(int), default(object)) => throw null; - public System.Int64 TotalBytesToReceive { get => throw null; } + public long BytesReceived { get => throw null; } + public long TotalBytesToReceive { get => throw null; } + internal DownloadProgressChangedEventArgs() : base(default(int), default(object)) { } } - public delegate void DownloadProgressChangedEventHandler(object sender, System.Net.DownloadProgressChangedEventArgs e); - public class DownloadStringCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - internal DownloadStringCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; public string Result { get => throw null; } + internal DownloadStringCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) { } } - public delegate void DownloadStringCompletedEventHandler(object sender, System.Net.DownloadStringCompletedEventArgs e); - public class OpenReadCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - internal OpenReadCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; public System.IO.Stream Result { get => throw null; } + internal OpenReadCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) { } } - public delegate void OpenReadCompletedEventHandler(object sender, System.Net.OpenReadCompletedEventArgs e); - public class OpenWriteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - internal OpenWriteCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; public System.IO.Stream Result { get => throw null; } + internal OpenWriteCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) { } } - public delegate void OpenWriteCompletedEventHandler(object sender, System.Net.OpenWriteCompletedEventArgs e); - public class UploadDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - public System.Byte[] Result { get => throw null; } - internal UploadDataCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; + public byte[] Result { get => throw null; } + internal UploadDataCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) { } } - public delegate void UploadDataCompletedEventHandler(object sender, System.Net.UploadDataCompletedEventArgs e); - public class UploadFileCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - public System.Byte[] Result { get => throw null; } - internal UploadFileCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; + public byte[] Result { get => throw null; } + internal UploadFileCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) { } } - public delegate void UploadFileCompletedEventHandler(object sender, System.Net.UploadFileCompletedEventArgs e); - public class UploadProgressChangedEventArgs : System.ComponentModel.ProgressChangedEventArgs { - public System.Int64 BytesReceived { get => throw null; } - public System.Int64 BytesSent { get => throw null; } - public System.Int64 TotalBytesToReceive { get => throw null; } - public System.Int64 TotalBytesToSend { get => throw null; } - internal UploadProgressChangedEventArgs() : base(default(int), default(object)) => throw null; + public long BytesReceived { get => throw null; } + public long BytesSent { get => throw null; } + public long TotalBytesToReceive { get => throw null; } + public long TotalBytesToSend { get => throw null; } + internal UploadProgressChangedEventArgs() : base(default(int), default(object)) { } } - public delegate void UploadProgressChangedEventHandler(object sender, System.Net.UploadProgressChangedEventArgs e); - public class UploadStringCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { public string Result { get => throw null; } - internal UploadStringCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; + internal UploadStringCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) { } } - public delegate void UploadStringCompletedEventHandler(object sender, System.Net.UploadStringCompletedEventArgs e); - public class UploadValuesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - public System.Byte[] Result { get => throw null; } - internal UploadValuesCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; + public byte[] Result { get => throw null; } + internal UploadValuesCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) { } } - public delegate void UploadValuesCompletedEventHandler(object sender, System.Net.UploadValuesCompletedEventArgs e); - public class WebClient : System.ComponentModel.Component { - public bool AllowReadStreamBuffering { get => throw null; set => throw null; } - public bool AllowWriteStreamBuffering { get => throw null; set => throw null; } - public string BaseAddress { get => throw null; set => throw null; } - public System.Net.Cache.RequestCachePolicy CachePolicy { get => throw null; set => throw null; } + public bool AllowReadStreamBuffering { get => throw null; set { } } + public bool AllowWriteStreamBuffering { get => throw null; set { } } + public string BaseAddress { get => throw null; set { } } + public System.Net.Cache.RequestCachePolicy CachePolicy { get => throw null; set { } } public void CancelAsync() => throw null; - public System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public System.Byte[] DownloadData(System.Uri address) => throw null; - public System.Byte[] DownloadData(string address) => throw null; + public System.Net.ICredentials Credentials { get => throw null; set { } } + public WebClient() => throw null; + public byte[] DownloadData(string address) => throw null; + public byte[] DownloadData(System.Uri address) => throw null; public void DownloadDataAsync(System.Uri address) => throw null; public void DownloadDataAsync(System.Uri address, object userToken) => throw null; - public event System.Net.DownloadDataCompletedEventHandler DownloadDataCompleted; - public System.Threading.Tasks.Task DownloadDataTaskAsync(System.Uri address) => throw null; - public System.Threading.Tasks.Task DownloadDataTaskAsync(string address) => throw null; - public void DownloadFile(System.Uri address, string fileName) => throw null; + public event System.Net.DownloadDataCompletedEventHandler DownloadDataCompleted { add { } remove { } } + public System.Threading.Tasks.Task DownloadDataTaskAsync(string address) => throw null; + public System.Threading.Tasks.Task DownloadDataTaskAsync(System.Uri address) => throw null; public void DownloadFile(string address, string fileName) => throw null; + public void DownloadFile(System.Uri address, string fileName) => throw null; public void DownloadFileAsync(System.Uri address, string fileName) => throw null; public void DownloadFileAsync(System.Uri address, string fileName, object userToken) => throw null; - public event System.ComponentModel.AsyncCompletedEventHandler DownloadFileCompleted; - public System.Threading.Tasks.Task DownloadFileTaskAsync(System.Uri address, string fileName) => throw null; + public event System.ComponentModel.AsyncCompletedEventHandler DownloadFileCompleted { add { } remove { } } public System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileName) => throw null; - public event System.Net.DownloadProgressChangedEventHandler DownloadProgressChanged; - public string DownloadString(System.Uri address) => throw null; + public System.Threading.Tasks.Task DownloadFileTaskAsync(System.Uri address, string fileName) => throw null; + public event System.Net.DownloadProgressChangedEventHandler DownloadProgressChanged { add { } remove { } } public string DownloadString(string address) => throw null; + public string DownloadString(System.Uri address) => throw null; public void DownloadStringAsync(System.Uri address) => throw null; public void DownloadStringAsync(System.Uri address, object userToken) => throw null; - public event System.Net.DownloadStringCompletedEventHandler DownloadStringCompleted; - public System.Threading.Tasks.Task DownloadStringTaskAsync(System.Uri address) => throw null; + public event System.Net.DownloadStringCompletedEventHandler DownloadStringCompleted { add { } remove { } } public System.Threading.Tasks.Task DownloadStringTaskAsync(string address) => throw null; - public System.Text.Encoding Encoding { get => throw null; set => throw null; } + public System.Threading.Tasks.Task DownloadStringTaskAsync(System.Uri address) => throw null; + public System.Text.Encoding Encoding { get => throw null; set { } } protected virtual System.Net.WebRequest GetWebRequest(System.Uri address) => throw null; protected virtual System.Net.WebResponse GetWebResponse(System.Net.WebRequest request) => throw null; protected virtual System.Net.WebResponse GetWebResponse(System.Net.WebRequest request, System.IAsyncResult result) => throw null; - public System.Net.WebHeaderCollection Headers { get => throw null; set => throw null; } + public System.Net.WebHeaderCollection Headers { get => throw null; set { } } public bool IsBusy { get => throw null; } protected virtual void OnDownloadDataCompleted(System.Net.DownloadDataCompletedEventArgs e) => throw null; protected virtual void OnDownloadFileCompleted(System.ComponentModel.AsyncCompletedEventArgs e) => throw null; @@ -137,89 +117,85 @@ namespace System protected virtual void OnUploadStringCompleted(System.Net.UploadStringCompletedEventArgs e) => throw null; protected virtual void OnUploadValuesCompleted(System.Net.UploadValuesCompletedEventArgs e) => throw null; protected virtual void OnWriteStreamClosed(System.Net.WriteStreamClosedEventArgs e) => throw null; - public System.IO.Stream OpenRead(System.Uri address) => throw null; public System.IO.Stream OpenRead(string address) => throw null; + public System.IO.Stream OpenRead(System.Uri address) => throw null; public void OpenReadAsync(System.Uri address) => throw null; public void OpenReadAsync(System.Uri address, object userToken) => throw null; - public event System.Net.OpenReadCompletedEventHandler OpenReadCompleted; - public System.Threading.Tasks.Task OpenReadTaskAsync(System.Uri address) => throw null; + public event System.Net.OpenReadCompletedEventHandler OpenReadCompleted { add { } remove { } } public System.Threading.Tasks.Task OpenReadTaskAsync(string address) => throw null; - public System.IO.Stream OpenWrite(System.Uri address) => throw null; - public System.IO.Stream OpenWrite(System.Uri address, string method) => throw null; + public System.Threading.Tasks.Task OpenReadTaskAsync(System.Uri address) => throw null; public System.IO.Stream OpenWrite(string address) => throw null; public System.IO.Stream OpenWrite(string address, string method) => throw null; + public System.IO.Stream OpenWrite(System.Uri address) => throw null; + public System.IO.Stream OpenWrite(System.Uri address, string method) => throw null; public void OpenWriteAsync(System.Uri address) => throw null; public void OpenWriteAsync(System.Uri address, string method) => throw null; public void OpenWriteAsync(System.Uri address, string method, object userToken) => throw null; - public event System.Net.OpenWriteCompletedEventHandler OpenWriteCompleted; - public System.Threading.Tasks.Task OpenWriteTaskAsync(System.Uri address) => throw null; - public System.Threading.Tasks.Task OpenWriteTaskAsync(System.Uri address, string method) => throw null; + public event System.Net.OpenWriteCompletedEventHandler OpenWriteCompleted { add { } remove { } } public System.Threading.Tasks.Task OpenWriteTaskAsync(string address) => throw null; public System.Threading.Tasks.Task OpenWriteTaskAsync(string address, string method) => throw null; - public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection QueryString { get => throw null; set => throw null; } + public System.Threading.Tasks.Task OpenWriteTaskAsync(System.Uri address) => throw null; + public System.Threading.Tasks.Task OpenWriteTaskAsync(System.Uri address, string method) => throw null; + public System.Net.IWebProxy Proxy { get => throw null; set { } } + public System.Collections.Specialized.NameValueCollection QueryString { get => throw null; set { } } public System.Net.WebHeaderCollection ResponseHeaders { get => throw null; } - public System.Byte[] UploadData(System.Uri address, System.Byte[] data) => throw null; - public System.Byte[] UploadData(System.Uri address, string method, System.Byte[] data) => throw null; - public System.Byte[] UploadData(string address, System.Byte[] data) => throw null; - public System.Byte[] UploadData(string address, string method, System.Byte[] data) => throw null; - public void UploadDataAsync(System.Uri address, System.Byte[] data) => throw null; - public void UploadDataAsync(System.Uri address, string method, System.Byte[] data) => throw null; - public void UploadDataAsync(System.Uri address, string method, System.Byte[] data, object userToken) => throw null; - public event System.Net.UploadDataCompletedEventHandler UploadDataCompleted; - public System.Threading.Tasks.Task UploadDataTaskAsync(System.Uri address, System.Byte[] data) => throw null; - public System.Threading.Tasks.Task UploadDataTaskAsync(System.Uri address, string method, System.Byte[] data) => throw null; - public System.Threading.Tasks.Task UploadDataTaskAsync(string address, System.Byte[] data) => throw null; - public System.Threading.Tasks.Task UploadDataTaskAsync(string address, string method, System.Byte[] data) => throw null; - public System.Byte[] UploadFile(System.Uri address, string fileName) => throw null; - public System.Byte[] UploadFile(System.Uri address, string method, string fileName) => throw null; - public System.Byte[] UploadFile(string address, string fileName) => throw null; - public System.Byte[] UploadFile(string address, string method, string fileName) => throw null; + public byte[] UploadData(string address, byte[] data) => throw null; + public byte[] UploadData(string address, string method, byte[] data) => throw null; + public byte[] UploadData(System.Uri address, byte[] data) => throw null; + public byte[] UploadData(System.Uri address, string method, byte[] data) => throw null; + public void UploadDataAsync(System.Uri address, byte[] data) => throw null; + public void UploadDataAsync(System.Uri address, string method, byte[] data) => throw null; + public void UploadDataAsync(System.Uri address, string method, byte[] data, object userToken) => throw null; + public event System.Net.UploadDataCompletedEventHandler UploadDataCompleted { add { } remove { } } + public System.Threading.Tasks.Task UploadDataTaskAsync(string address, byte[] data) => throw null; + public System.Threading.Tasks.Task UploadDataTaskAsync(string address, string method, byte[] data) => throw null; + public System.Threading.Tasks.Task UploadDataTaskAsync(System.Uri address, byte[] data) => throw null; + public System.Threading.Tasks.Task UploadDataTaskAsync(System.Uri address, string method, byte[] data) => throw null; + public byte[] UploadFile(string address, string fileName) => throw null; + public byte[] UploadFile(string address, string method, string fileName) => throw null; + public byte[] UploadFile(System.Uri address, string fileName) => throw null; + public byte[] UploadFile(System.Uri address, string method, string fileName) => throw null; public void UploadFileAsync(System.Uri address, string fileName) => throw null; public void UploadFileAsync(System.Uri address, string method, string fileName) => throw null; public void UploadFileAsync(System.Uri address, string method, string fileName, object userToken) => throw null; - public event System.Net.UploadFileCompletedEventHandler UploadFileCompleted; - public System.Threading.Tasks.Task UploadFileTaskAsync(System.Uri address, string fileName) => throw null; - public System.Threading.Tasks.Task UploadFileTaskAsync(System.Uri address, string method, string fileName) => throw null; - public System.Threading.Tasks.Task UploadFileTaskAsync(string address, string fileName) => throw null; - public System.Threading.Tasks.Task UploadFileTaskAsync(string address, string method, string fileName) => throw null; - public event System.Net.UploadProgressChangedEventHandler UploadProgressChanged; - public string UploadString(System.Uri address, string data) => throw null; - public string UploadString(System.Uri address, string method, string data) => throw null; + public event System.Net.UploadFileCompletedEventHandler UploadFileCompleted { add { } remove { } } + public System.Threading.Tasks.Task UploadFileTaskAsync(string address, string fileName) => throw null; + public System.Threading.Tasks.Task UploadFileTaskAsync(string address, string method, string fileName) => throw null; + public System.Threading.Tasks.Task UploadFileTaskAsync(System.Uri address, string fileName) => throw null; + public System.Threading.Tasks.Task UploadFileTaskAsync(System.Uri address, string method, string fileName) => throw null; + public event System.Net.UploadProgressChangedEventHandler UploadProgressChanged { add { } remove { } } public string UploadString(string address, string data) => throw null; public string UploadString(string address, string method, string data) => throw null; + public string UploadString(System.Uri address, string data) => throw null; + public string UploadString(System.Uri address, string method, string data) => throw null; public void UploadStringAsync(System.Uri address, string data) => throw null; public void UploadStringAsync(System.Uri address, string method, string data) => throw null; public void UploadStringAsync(System.Uri address, string method, string data, object userToken) => throw null; - public event System.Net.UploadStringCompletedEventHandler UploadStringCompleted; - public System.Threading.Tasks.Task UploadStringTaskAsync(System.Uri address, string data) => throw null; - public System.Threading.Tasks.Task UploadStringTaskAsync(System.Uri address, string method, string data) => throw null; + public event System.Net.UploadStringCompletedEventHandler UploadStringCompleted { add { } remove { } } public System.Threading.Tasks.Task UploadStringTaskAsync(string address, string data) => throw null; public System.Threading.Tasks.Task UploadStringTaskAsync(string address, string method, string data) => throw null; - public System.Byte[] UploadValues(System.Uri address, System.Collections.Specialized.NameValueCollection data) => throw null; - public System.Byte[] UploadValues(System.Uri address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; - public System.Byte[] UploadValues(string address, System.Collections.Specialized.NameValueCollection data) => throw null; - public System.Byte[] UploadValues(string address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; + public System.Threading.Tasks.Task UploadStringTaskAsync(System.Uri address, string data) => throw null; + public System.Threading.Tasks.Task UploadStringTaskAsync(System.Uri address, string method, string data) => throw null; + public byte[] UploadValues(string address, System.Collections.Specialized.NameValueCollection data) => throw null; + public byte[] UploadValues(string address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; + public byte[] UploadValues(System.Uri address, System.Collections.Specialized.NameValueCollection data) => throw null; + public byte[] UploadValues(System.Uri address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; public void UploadValuesAsync(System.Uri address, System.Collections.Specialized.NameValueCollection data) => throw null; public void UploadValuesAsync(System.Uri address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; public void UploadValuesAsync(System.Uri address, string method, System.Collections.Specialized.NameValueCollection data, object userToken) => throw null; - public event System.Net.UploadValuesCompletedEventHandler UploadValuesCompleted; - public System.Threading.Tasks.Task UploadValuesTaskAsync(System.Uri address, System.Collections.Specialized.NameValueCollection data) => throw null; - public System.Threading.Tasks.Task UploadValuesTaskAsync(System.Uri address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; - public System.Threading.Tasks.Task UploadValuesTaskAsync(string address, System.Collections.Specialized.NameValueCollection data) => throw null; - public System.Threading.Tasks.Task UploadValuesTaskAsync(string address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; - public bool UseDefaultCredentials { get => throw null; set => throw null; } - public WebClient() => throw null; - public event System.Net.WriteStreamClosedEventHandler WriteStreamClosed; + public event System.Net.UploadValuesCompletedEventHandler UploadValuesCompleted { add { } remove { } } + public System.Threading.Tasks.Task UploadValuesTaskAsync(string address, System.Collections.Specialized.NameValueCollection data) => throw null; + public System.Threading.Tasks.Task UploadValuesTaskAsync(string address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; + public System.Threading.Tasks.Task UploadValuesTaskAsync(System.Uri address, System.Collections.Specialized.NameValueCollection data) => throw null; + public System.Threading.Tasks.Task UploadValuesTaskAsync(System.Uri address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; + public bool UseDefaultCredentials { get => throw null; set { } } + public event System.Net.WriteStreamClosedEventHandler WriteStreamClosed { add { } remove { } } } - public class WriteStreamClosedEventArgs : System.EventArgs { - public System.Exception Error { get => throw null; } public WriteStreamClosedEventArgs() => throw null; + public System.Exception Error { get => throw null; } } - public delegate void WriteStreamClosedEventHandler(object sender, System.Net.WriteStreamClosedEventArgs e); - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebHeaderCollection.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebHeaderCollection.cs index be08fd414a2..437e4aaebd9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebHeaderCollection.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebHeaderCollection.cs @@ -1,31 +1,38 @@ // This file contains auto-generated code. // Generated from `System.Net.WebHeaderCollection, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net { - public enum HttpRequestHeader : int + public enum HttpRequestHeader { + CacheControl = 0, + Connection = 1, + Date = 2, + KeepAlive = 3, + Pragma = 4, + Trailer = 5, + TransferEncoding = 6, + Upgrade = 7, + Via = 8, + Warning = 9, + Allow = 10, + ContentLength = 11, + ContentType = 12, + ContentEncoding = 13, + ContentLanguage = 14, + ContentLocation = 15, + ContentMd5 = 16, + ContentRange = 17, + Expires = 18, + LastModified = 19, Accept = 20, AcceptCharset = 21, AcceptEncoding = 22, AcceptLanguage = 23, - Allow = 10, Authorization = 24, - CacheControl = 0, - Connection = 1, - ContentEncoding = 13, - ContentLanguage = 14, - ContentLength = 11, - ContentLocation = 15, - ContentMd5 = 16, - ContentRange = 17, - ContentType = 12, Cookie = 25, - Date = 2, Expect = 26, - Expires = 18, From = 27, Host = 28, IfMatch = 29, @@ -33,57 +40,47 @@ namespace System IfNoneMatch = 31, IfRange = 32, IfUnmodifiedSince = 33, - KeepAlive = 3, - LastModified = 19, MaxForwards = 34, - Pragma = 4, ProxyAuthorization = 35, - Range = 37, Referer = 36, + Range = 37, Te = 38, - Trailer = 5, - TransferEncoding = 6, Translate = 39, - Upgrade = 7, UserAgent = 40, - Via = 8, - Warning = 9, } - - public enum HttpResponseHeader : int + public enum HttpResponseHeader { - AcceptRanges = 20, - Age = 21, - Allow = 10, CacheControl = 0, Connection = 1, + Date = 2, + KeepAlive = 3, + Pragma = 4, + Trailer = 5, + TransferEncoding = 6, + Upgrade = 7, + Via = 8, + Warning = 9, + Allow = 10, + ContentLength = 11, + ContentType = 12, ContentEncoding = 13, ContentLanguage = 14, - ContentLength = 11, ContentLocation = 15, ContentMd5 = 16, ContentRange = 17, - ContentType = 12, - Date = 2, - ETag = 22, Expires = 18, - KeepAlive = 3, LastModified = 19, + AcceptRanges = 20, + Age = 21, + ETag = 22, Location = 23, - Pragma = 4, ProxyAuthenticate = 24, RetryAfter = 25, Server = 26, SetCookie = 27, - Trailer = 5, - TransferEncoding = 6, - Upgrade = 7, Vary = 28, - Via = 8, - Warning = 9, WwwAuthenticate = 29, } - public class WebHeaderCollection : System.Collections.Specialized.NameValueCollection, System.Collections.IEnumerable, System.Runtime.Serialization.ISerializable { public void Add(System.Net.HttpRequestHeader header, string value) => throw null; @@ -94,6 +91,8 @@ namespace System public override string[] AllKeys { get => throw null; } public override void Clear() => throw null; public override int Count { get => throw null; } + public WebHeaderCollection() => throw null; + protected WebHeaderCollection(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public override string Get(int index) => throw null; public override string Get(string name) => throw null; public override System.Collections.IEnumerator GetEnumerator() => throw null; @@ -104,8 +103,6 @@ namespace System public override string[] GetValues(string header) => throw null; public static bool IsRestricted(string headerName) => throw null; public static bool IsRestricted(string headerName, bool response) => throw null; - public string this[System.Net.HttpRequestHeader header] { get => throw null; set => throw null; } - public string this[System.Net.HttpResponseHeader header] { get => throw null; set => throw null; } public override System.Collections.Specialized.NameObjectCollectionBase.KeysCollection Keys { get => throw null; } public override void OnDeserialization(object sender) => throw null; public void Remove(System.Net.HttpRequestHeader header) => throw null; @@ -114,11 +111,10 @@ namespace System public void Set(System.Net.HttpRequestHeader header, string value) => throw null; public void Set(System.Net.HttpResponseHeader header, string value) => throw null; public override void Set(string name, string value) => throw null; - public System.Byte[] ToByteArray() => throw null; + public string this[System.Net.HttpRequestHeader header] { get => throw null; set { } } + public string this[System.Net.HttpResponseHeader header] { get => throw null; set { } } + public byte[] ToByteArray() => throw null; public override string ToString() => throw null; - public WebHeaderCollection() => throw null; - protected WebHeaderCollection(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebProxy.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebProxy.cs index f5a422f5129..70d613527ae 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebProxy.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebProxy.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Net.WebProxy, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Net @@ -11,32 +10,30 @@ namespace System bool Load(System.Uri scriptLocation, string script, System.Type helperType); string Run(string url, string host); } - public class WebProxy : System.Net.IWebProxy, System.Runtime.Serialization.ISerializable { - public System.Uri Address { get => throw null; set => throw null; } + public System.Uri Address { get => throw null; set { } } public System.Collections.ArrayList BypassArrayList { get => throw null; } - public string[] BypassList { get => throw null; set => throw null; } - public bool BypassProxyOnLocal { get => throw null; set => throw null; } - public System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public static System.Net.WebProxy GetDefaultProxy() => throw null; - protected virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public System.Uri GetProxy(System.Uri destination) => throw null; - public bool IsBypassed(System.Uri host) => throw null; - public bool UseDefaultCredentials { get => throw null; set => throw null; } + public string[] BypassList { get => throw null; set { } } + public bool BypassProxyOnLocal { get => throw null; set { } } + public System.Net.ICredentials Credentials { get => throw null; set { } } public WebProxy() => throw null; protected WebProxy(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public WebProxy(System.Uri Address) => throw null; - public WebProxy(System.Uri Address, bool BypassOnLocal) => throw null; - public WebProxy(System.Uri Address, bool BypassOnLocal, string[] BypassList) => throw null; - public WebProxy(System.Uri Address, bool BypassOnLocal, string[] BypassList, System.Net.ICredentials Credentials) => throw null; public WebProxy(string Address) => throw null; public WebProxy(string Address, bool BypassOnLocal) => throw null; public WebProxy(string Address, bool BypassOnLocal, string[] BypassList) => throw null; public WebProxy(string Address, bool BypassOnLocal, string[] BypassList, System.Net.ICredentials Credentials) => throw null; public WebProxy(string Host, int Port) => throw null; + public WebProxy(System.Uri Address) => throw null; + public WebProxy(System.Uri Address, bool BypassOnLocal) => throw null; + public WebProxy(System.Uri Address, bool BypassOnLocal, string[] BypassList) => throw null; + public WebProxy(System.Uri Address, bool BypassOnLocal, string[] BypassList, System.Net.ICredentials Credentials) => throw null; + public static System.Net.WebProxy GetDefaultProxy() => throw null; + protected virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public System.Uri GetProxy(System.Uri destination) => throw null; + public bool IsBypassed(System.Uri host) => throw null; + public bool UseDefaultCredentials { get => throw null; set { } } } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebSockets.Client.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebSockets.Client.cs index 486479ac3a5..5f7be7ac4d1 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebSockets.Client.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebSockets.Client.cs @@ -1,53 +1,50 @@ // This file contains auto-generated code. // Generated from `System.Net.WebSockets.Client, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net { namespace WebSockets { - public class ClientWebSocket : System.Net.WebSockets.WebSocket + public sealed class ClientWebSocket : System.Net.WebSockets.WebSocket { public override void Abort() => throw null; - public ClientWebSocket() => throw null; public override System.Threading.Tasks.Task CloseAsync(System.Net.WebSockets.WebSocketCloseStatus closeStatus, string statusDescription, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task CloseOutputAsync(System.Net.WebSockets.WebSocketCloseStatus closeStatus, string statusDescription, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Net.WebSockets.WebSocketCloseStatus? CloseStatus { get => throw null; } public override string CloseStatusDescription { get => throw null; } public System.Threading.Tasks.Task ConnectAsync(System.Uri uri, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task ConnectAsync(System.Uri uri, System.Net.Http.HttpMessageInvoker invoker, System.Threading.CancellationToken cancellationToken) => throw null; + public ClientWebSocket() => throw null; public override void Dispose() => throw null; - public System.Collections.Generic.IReadOnlyDictionary> HttpResponseHeaders { get => throw null; set => throw null; } + public System.Collections.Generic.IReadOnlyDictionary> HttpResponseHeaders { get => throw null; set { } } public System.Net.HttpStatusCode HttpStatusCode { get => throw null; } public System.Net.WebSockets.ClientWebSocketOptions Options { get => throw null; } - public override System.Threading.Tasks.Task ReceiveAsync(System.ArraySegment buffer, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReceiveAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.Task SendAsync(System.ArraySegment buffer, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory buffer, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task ReceiveAsync(System.ArraySegment buffer, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReceiveAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task SendAsync(System.ArraySegment buffer, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory buffer, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Net.WebSockets.WebSocketState State { get => throw null; } public override string SubProtocol { get => throw null; } } - - public class ClientWebSocketOptions + public sealed class ClientWebSocketOptions { public void AddSubProtocol(string subProtocol) => throw null; - public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; set => throw null; } - public bool CollectHttpResponseDetails { get => throw null; set => throw null; } - public System.Net.CookieContainer Cookies { get => throw null; set => throw null; } - public System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public System.Net.WebSockets.WebSocketDeflateOptions DangerousDeflateOptions { get => throw null; set => throw null; } - public System.Version HttpVersion { get => throw null; set => throw null; } - public System.Net.Http.HttpVersionPolicy HttpVersionPolicy { get => throw null; set => throw null; } - public System.TimeSpan KeepAliveInterval { get => throw null; set => throw null; } - public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public System.Net.Security.RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get => throw null; set => throw null; } + public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; set { } } + public bool CollectHttpResponseDetails { get => throw null; set { } } + public System.Net.CookieContainer Cookies { get => throw null; set { } } + public System.Net.ICredentials Credentials { get => throw null; set { } } + public System.Net.WebSockets.WebSocketDeflateOptions DangerousDeflateOptions { get => throw null; set { } } + public System.Version HttpVersion { get => throw null; set { } } + public System.Net.Http.HttpVersionPolicy HttpVersionPolicy { get => throw null; set { } } + public System.TimeSpan KeepAliveInterval { get => throw null; set { } } + public System.Net.IWebProxy Proxy { get => throw null; set { } } + public System.Net.Security.RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get => throw null; set { } } public void SetBuffer(int receiveBufferSize, int sendBufferSize) => throw null; - public void SetBuffer(int receiveBufferSize, int sendBufferSize, System.ArraySegment buffer) => throw null; + public void SetBuffer(int receiveBufferSize, int sendBufferSize, System.ArraySegment buffer) => throw null; public void SetRequestHeader(string headerName, string headerValue) => throw null; - public bool UseDefaultCredentials { get => throw null; set => throw null; } + public bool UseDefaultCredentials { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebSockets.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebSockets.cs index ba6ea1f8d3b..d4228b32dff 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebSockets.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebSockets.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Net.WebSockets, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Net @@ -10,12 +9,10 @@ namespace System public struct ValueWebSocketReceiveResult { public int Count { get => throw null; } + public ValueWebSocketReceiveResult(int count, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage) => throw null; public bool EndOfMessage { get => throw null; } public System.Net.WebSockets.WebSocketMessageType MessageType { get => throw null; } - // Stub generator skipped constructor - public ValueWebSocketReceiveResult(int count, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage) => throw null; } - public abstract class WebSocket : System.IDisposable { public abstract void Abort(); @@ -23,44 +20,43 @@ namespace System public abstract System.Threading.Tasks.Task CloseOutputAsync(System.Net.WebSockets.WebSocketCloseStatus closeStatus, string statusDescription, System.Threading.CancellationToken cancellationToken); public abstract System.Net.WebSockets.WebSocketCloseStatus? CloseStatus { get; } public abstract string CloseStatusDescription { get; } - public static System.ArraySegment CreateClientBuffer(int receiveBufferSize, int sendBufferSize) => throw null; - public static System.Net.WebSockets.WebSocket CreateClientWebSocket(System.IO.Stream innerStream, string subProtocol, int receiveBufferSize, int sendBufferSize, System.TimeSpan keepAliveInterval, bool useZeroMaskingKey, System.ArraySegment internalBuffer) => throw null; - public static System.Net.WebSockets.WebSocket CreateFromStream(System.IO.Stream stream, System.Net.WebSockets.WebSocketCreationOptions options) => throw null; + public static System.ArraySegment CreateClientBuffer(int receiveBufferSize, int sendBufferSize) => throw null; + public static System.Net.WebSockets.WebSocket CreateClientWebSocket(System.IO.Stream innerStream, string subProtocol, int receiveBufferSize, int sendBufferSize, System.TimeSpan keepAliveInterval, bool useZeroMaskingKey, System.ArraySegment internalBuffer) => throw null; public static System.Net.WebSockets.WebSocket CreateFromStream(System.IO.Stream stream, bool isServer, string subProtocol, System.TimeSpan keepAliveInterval) => throw null; - public static System.ArraySegment CreateServerBuffer(int receiveBufferSize) => throw null; + public static System.Net.WebSockets.WebSocket CreateFromStream(System.IO.Stream stream, System.Net.WebSockets.WebSocketCreationOptions options) => throw null; + public static System.ArraySegment CreateServerBuffer(int receiveBufferSize) => throw null; + protected WebSocket() => throw null; public static System.TimeSpan DefaultKeepAliveInterval { get => throw null; } public abstract void Dispose(); public static bool IsApplicationTargeting45() => throw null; protected static bool IsStateTerminal(System.Net.WebSockets.WebSocketState state) => throw null; - public abstract System.Threading.Tasks.Task ReceiveAsync(System.ArraySegment buffer, System.Threading.CancellationToken cancellationToken); - public virtual System.Threading.Tasks.ValueTask ReceiveAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken) => throw null; + public abstract System.Threading.Tasks.Task ReceiveAsync(System.ArraySegment buffer, System.Threading.CancellationToken cancellationToken); + public virtual System.Threading.Tasks.ValueTask ReceiveAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken) => throw null; public static void RegisterPrefixes() => throw null; - public abstract System.Threading.Tasks.Task SendAsync(System.ArraySegment buffer, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken); - public virtual System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory buffer, System.Net.WebSockets.WebSocketMessageType messageType, System.Net.WebSockets.WebSocketMessageFlags messageFlags, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory buffer, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken) => throw null; + public abstract System.Threading.Tasks.Task SendAsync(System.ArraySegment buffer, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken); + public virtual System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory buffer, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.ValueTask SendAsync(System.ReadOnlyMemory buffer, System.Net.WebSockets.WebSocketMessageType messageType, System.Net.WebSockets.WebSocketMessageFlags messageFlags, System.Threading.CancellationToken cancellationToken) => throw null; public abstract System.Net.WebSockets.WebSocketState State { get; } public abstract string SubProtocol { get; } protected static void ThrowOnInvalidState(System.Net.WebSockets.WebSocketState state, params System.Net.WebSockets.WebSocketState[] validStates) => throw null; - protected WebSocket() => throw null; } - - public enum WebSocketCloseStatus : int + public enum WebSocketCloseStatus { - Empty = 1005, - EndpointUnavailable = 1001, - InternalServerError = 1011, - InvalidMessageType = 1003, - InvalidPayloadData = 1007, - MandatoryExtension = 1010, - MessageTooBig = 1009, NormalClosure = 1000, - PolicyViolation = 1008, + EndpointUnavailable = 1001, ProtocolError = 1002, + InvalidMessageType = 1003, + Empty = 1005, + InvalidPayloadData = 1007, + PolicyViolation = 1008, + MessageTooBig = 1009, + MandatoryExtension = 1010, + InternalServerError = 1011, } - public abstract class WebSocketContext { public abstract System.Net.CookieCollection CookieCollection { get; } + protected WebSocketContext() => throw null; public abstract System.Collections.Specialized.NameValueCollection Headers { get; } public abstract bool IsAuthenticated { get; } public abstract bool IsLocal { get; } @@ -72,47 +68,42 @@ namespace System public abstract string SecWebSocketVersion { get; } public abstract System.Security.Principal.IPrincipal User { get; } public abstract System.Net.WebSockets.WebSocket WebSocket { get; } - protected WebSocketContext() => throw null; } - - public class WebSocketCreationOptions + public sealed class WebSocketCreationOptions { - public System.Net.WebSockets.WebSocketDeflateOptions DangerousDeflateOptions { get => throw null; set => throw null; } - public bool IsServer { get => throw null; set => throw null; } - public System.TimeSpan KeepAliveInterval { get => throw null; set => throw null; } - public string SubProtocol { get => throw null; set => throw null; } public WebSocketCreationOptions() => throw null; + public System.Net.WebSockets.WebSocketDeflateOptions DangerousDeflateOptions { get => throw null; set { } } + public bool IsServer { get => throw null; set { } } + public System.TimeSpan KeepAliveInterval { get => throw null; set { } } + public string SubProtocol { get => throw null; set { } } } - - public class WebSocketDeflateOptions + public sealed class WebSocketDeflateOptions { - public bool ClientContextTakeover { get => throw null; set => throw null; } - public int ClientMaxWindowBits { get => throw null; set => throw null; } - public bool ServerContextTakeover { get => throw null; set => throw null; } - public int ServerMaxWindowBits { get => throw null; set => throw null; } + public bool ClientContextTakeover { get => throw null; set { } } + public int ClientMaxWindowBits { get => throw null; set { } } public WebSocketDeflateOptions() => throw null; + public bool ServerContextTakeover { get => throw null; set { } } + public int ServerMaxWindowBits { get => throw null; set { } } } - - public enum WebSocketError : int + public enum WebSocketError { - ConnectionClosedPrematurely = 8, - Faulted = 2, - HeaderError = 7, + Success = 0, InvalidMessageType = 1, - InvalidState = 9, + Faulted = 2, NativeError = 3, NotAWebSocket = 4, - Success = 0, - UnsupportedProtocol = 6, UnsupportedVersion = 5, + UnsupportedProtocol = 6, + HeaderError = 7, + ConnectionClosedPrematurely = 8, + InvalidState = 9, } - - public class WebSocketException : System.ComponentModel.Win32Exception + public sealed class WebSocketException : System.ComponentModel.Win32Exception { - public override int ErrorCode { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Net.WebSockets.WebSocketError WebSocketErrorCode { get => throw null; } public WebSocketException() => throw null; + public WebSocketException(int nativeError) => throw null; + public WebSocketException(int nativeError, System.Exception innerException) => throw null; + public WebSocketException(int nativeError, string message) => throw null; public WebSocketException(System.Net.WebSockets.WebSocketError error) => throw null; public WebSocketException(System.Net.WebSockets.WebSocketError error, System.Exception innerException) => throw null; public WebSocketException(System.Net.WebSockets.WebSocketError error, int nativeError) => throw null; @@ -121,50 +112,45 @@ namespace System public WebSocketException(System.Net.WebSockets.WebSocketError error, int nativeError, string message, System.Exception innerException) => throw null; public WebSocketException(System.Net.WebSockets.WebSocketError error, string message) => throw null; public WebSocketException(System.Net.WebSockets.WebSocketError error, string message, System.Exception innerException) => throw null; - public WebSocketException(int nativeError) => throw null; - public WebSocketException(int nativeError, System.Exception innerException) => throw null; - public WebSocketException(int nativeError, string message) => throw null; public WebSocketException(string message) => throw null; public WebSocketException(string message, System.Exception innerException) => throw null; + public override int ErrorCode { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.Net.WebSockets.WebSocketError WebSocketErrorCode { get => throw null; } } - [System.Flags] - public enum WebSocketMessageFlags : int + public enum WebSocketMessageFlags { - DisableCompression = 2, - EndOfMessage = 1, None = 0, + EndOfMessage = 1, + DisableCompression = 2, } - - public enum WebSocketMessageType : int + public enum WebSocketMessageType { + Text = 0, Binary = 1, Close = 2, - Text = 0, } - public class WebSocketReceiveResult { public System.Net.WebSockets.WebSocketCloseStatus? CloseStatus { get => throw null; } public string CloseStatusDescription { get => throw null; } public int Count { get => throw null; } - public bool EndOfMessage { get => throw null; } - public System.Net.WebSockets.WebSocketMessageType MessageType { get => throw null; } public WebSocketReceiveResult(int count, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage) => throw null; public WebSocketReceiveResult(int count, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Net.WebSockets.WebSocketCloseStatus? closeStatus, string closeStatusDescription) => throw null; + public bool EndOfMessage { get => throw null; } + public System.Net.WebSockets.WebSocketMessageType MessageType { get => throw null; } } - - public enum WebSocketState : int + public enum WebSocketState { - Aborted = 6, - CloseReceived = 4, - CloseSent = 3, - Closed = 5, - Connecting = 1, None = 0, + Connecting = 1, Open = 2, + CloseSent = 3, + CloseReceived = 4, + Closed = 5, + Aborted = 6, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs new file mode 100644 index 00000000000..8a429727567 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.Vectors.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.Vectors.cs index f4f9d830a0b..afa17198ac3 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.Vectors.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.Vectors.cs @@ -1,19 +1,11 @@ // This file contains auto-generated code. // Generated from `System.Numerics.Vectors, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Numerics { public struct Matrix3x2 : System.IEquatable { - public static bool operator !=(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; - public static System.Numerics.Matrix3x2 operator *(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; - public static System.Numerics.Matrix3x2 operator *(System.Numerics.Matrix3x2 value1, float value2) => throw null; - public static System.Numerics.Matrix3x2 operator +(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; - public static System.Numerics.Matrix3x2 operator -(System.Numerics.Matrix3x2 value) => throw null; - public static System.Numerics.Matrix3x2 operator -(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; - public static bool operator ==(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; public static System.Numerics.Matrix3x2 Add(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; public static System.Numerics.Matrix3x2 CreateRotation(float radians) => throw null; public static System.Numerics.Matrix3x2 CreateRotation(float radians, System.Numerics.Vector2 centerPoint) => throw null; @@ -27,6 +19,7 @@ namespace System public static System.Numerics.Matrix3x2 CreateSkew(float radiansX, float radiansY, System.Numerics.Vector2 centerPoint) => throw null; public static System.Numerics.Matrix3x2 CreateTranslation(System.Numerics.Vector2 position) => throw null; public static System.Numerics.Matrix3x2 CreateTranslation(float xPosition, float yPosition) => throw null; + public Matrix3x2(float m11, float m12, float m21, float m22, float m31, float m32) => throw null; public bool Equals(System.Numerics.Matrix3x2 other) => throw null; public override bool Equals(object obj) => throw null; public float GetDeterminant() => throw null; @@ -34,7 +27,6 @@ namespace System public static System.Numerics.Matrix3x2 Identity { get => throw null; } public static bool Invert(System.Numerics.Matrix3x2 matrix, out System.Numerics.Matrix3x2 result) => throw null; public bool IsIdentity { get => throw null; } - public float this[int row, int column] { get => throw null; set => throw null; } public static System.Numerics.Matrix3x2 Lerp(System.Numerics.Matrix3x2 matrix1, System.Numerics.Matrix3x2 matrix2, float amount) => throw null; public float M11; public float M12; @@ -42,25 +34,23 @@ namespace System public float M22; public float M31; public float M32; - // Stub generator skipped constructor - public Matrix3x2(float m11, float m12, float m21, float m22, float m31, float m32) => throw null; public static System.Numerics.Matrix3x2 Multiply(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; public static System.Numerics.Matrix3x2 Multiply(System.Numerics.Matrix3x2 value1, float value2) => throw null; public static System.Numerics.Matrix3x2 Negate(System.Numerics.Matrix3x2 value) => throw null; + public static System.Numerics.Matrix3x2 operator +(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; + public static bool operator ==(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; + public static bool operator !=(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; + public static System.Numerics.Matrix3x2 operator *(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; + public static System.Numerics.Matrix3x2 operator *(System.Numerics.Matrix3x2 value1, float value2) => throw null; + public static System.Numerics.Matrix3x2 operator -(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; + public static System.Numerics.Matrix3x2 operator -(System.Numerics.Matrix3x2 value) => throw null; public static System.Numerics.Matrix3x2 Subtract(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; + public float this[int row, int column] { get => throw null; set { } } public override string ToString() => throw null; - public System.Numerics.Vector2 Translation { get => throw null; set => throw null; } + public System.Numerics.Vector2 Translation { get => throw null; set { } } } - public struct Matrix4x4 : System.IEquatable { - public static bool operator !=(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; - public static System.Numerics.Matrix4x4 operator *(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; - public static System.Numerics.Matrix4x4 operator *(System.Numerics.Matrix4x4 value1, float value2) => throw null; - public static System.Numerics.Matrix4x4 operator +(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; - public static System.Numerics.Matrix4x4 operator -(System.Numerics.Matrix4x4 value) => throw null; - public static System.Numerics.Matrix4x4 operator -(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; - public static bool operator ==(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; public static System.Numerics.Matrix4x4 Add(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; public static System.Numerics.Matrix4x4 CreateBillboard(System.Numerics.Vector3 objectPosition, System.Numerics.Vector3 cameraPosition, System.Numerics.Vector3 cameraUpVector, System.Numerics.Vector3 cameraForwardVector) => throw null; public static System.Numerics.Matrix4x4 CreateConstrainedBillboard(System.Numerics.Vector3 objectPosition, System.Numerics.Vector3 cameraPosition, System.Numerics.Vector3 rotateAxis, System.Numerics.Vector3 cameraForwardVector, System.Numerics.Vector3 objectForwardVector) => throw null; @@ -90,6 +80,8 @@ namespace System public static System.Numerics.Matrix4x4 CreateTranslation(System.Numerics.Vector3 position) => throw null; public static System.Numerics.Matrix4x4 CreateTranslation(float xPosition, float yPosition, float zPosition) => throw null; public static System.Numerics.Matrix4x4 CreateWorld(System.Numerics.Vector3 position, System.Numerics.Vector3 forward, System.Numerics.Vector3 up) => throw null; + public Matrix4x4(System.Numerics.Matrix3x2 value) => throw null; + public Matrix4x4(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44) => throw null; public static bool Decompose(System.Numerics.Matrix4x4 matrix, out System.Numerics.Vector3 scale, out System.Numerics.Quaternion rotation, out System.Numerics.Vector3 translation) => throw null; public bool Equals(System.Numerics.Matrix4x4 other) => throw null; public override bool Equals(object obj) => throw null; @@ -98,7 +90,6 @@ namespace System public static System.Numerics.Matrix4x4 Identity { get => throw null; } public static bool Invert(System.Numerics.Matrix4x4 matrix, out System.Numerics.Matrix4x4 result) => throw null; public bool IsIdentity { get => throw null; } - public float this[int row, int column] { get => throw null; set => throw null; } public static System.Numerics.Matrix4x4 Lerp(System.Numerics.Matrix4x4 matrix1, System.Numerics.Matrix4x4 matrix2, float amount) => throw null; public float M11; public float M12; @@ -116,24 +107,29 @@ namespace System public float M42; public float M43; public float M44; - // Stub generator skipped constructor - public Matrix4x4(System.Numerics.Matrix3x2 value) => throw null; - public Matrix4x4(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44) => throw null; public static System.Numerics.Matrix4x4 Multiply(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; public static System.Numerics.Matrix4x4 Multiply(System.Numerics.Matrix4x4 value1, float value2) => throw null; public static System.Numerics.Matrix4x4 Negate(System.Numerics.Matrix4x4 value) => throw null; + public static System.Numerics.Matrix4x4 operator +(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; + public static bool operator ==(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; + public static bool operator !=(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; + public static System.Numerics.Matrix4x4 operator *(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; + public static System.Numerics.Matrix4x4 operator *(System.Numerics.Matrix4x4 value1, float value2) => throw null; + public static System.Numerics.Matrix4x4 operator -(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; + public static System.Numerics.Matrix4x4 operator -(System.Numerics.Matrix4x4 value) => throw null; public static System.Numerics.Matrix4x4 Subtract(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; + public float this[int row, int column] { get => throw null; set { } } public override string ToString() => throw null; public static System.Numerics.Matrix4x4 Transform(System.Numerics.Matrix4x4 value, System.Numerics.Quaternion rotation) => throw null; - public System.Numerics.Vector3 Translation { get => throw null; set => throw null; } + public System.Numerics.Vector3 Translation { get => throw null; set { } } public static System.Numerics.Matrix4x4 Transpose(System.Numerics.Matrix4x4 matrix) => throw null; } - public struct Plane : System.IEquatable { - public static bool operator !=(System.Numerics.Plane value1, System.Numerics.Plane value2) => throw null; - public static bool operator ==(System.Numerics.Plane value1, System.Numerics.Plane value2) => throw null; public static System.Numerics.Plane CreateFromVertices(System.Numerics.Vector3 point1, System.Numerics.Vector3 point2, System.Numerics.Vector3 point3) => throw null; + public Plane(System.Numerics.Vector3 normal, float d) => throw null; + public Plane(System.Numerics.Vector4 value) => throw null; + public Plane(float x, float y, float z, float d) => throw null; public float D; public static float Dot(System.Numerics.Plane plane, System.Numerics.Vector4 value) => throw null; public static float DotCoordinate(System.Numerics.Plane plane, System.Numerics.Vector3 value) => throw null; @@ -143,31 +139,22 @@ namespace System public override int GetHashCode() => throw null; public System.Numerics.Vector3 Normal; public static System.Numerics.Plane Normalize(System.Numerics.Plane value) => throw null; - // Stub generator skipped constructor - public Plane(System.Numerics.Vector3 normal, float d) => throw null; - public Plane(System.Numerics.Vector4 value) => throw null; - public Plane(float x, float y, float z, float d) => throw null; + public static bool operator ==(System.Numerics.Plane value1, System.Numerics.Plane value2) => throw null; + public static bool operator !=(System.Numerics.Plane value1, System.Numerics.Plane value2) => throw null; public override string ToString() => throw null; public static System.Numerics.Plane Transform(System.Numerics.Plane plane, System.Numerics.Matrix4x4 matrix) => throw null; public static System.Numerics.Plane Transform(System.Numerics.Plane plane, System.Numerics.Quaternion rotation) => throw null; } - public struct Quaternion : System.IEquatable { - public static bool operator !=(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; - public static System.Numerics.Quaternion operator *(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; - public static System.Numerics.Quaternion operator *(System.Numerics.Quaternion value1, float value2) => throw null; - public static System.Numerics.Quaternion operator +(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; - public static System.Numerics.Quaternion operator -(System.Numerics.Quaternion value) => throw null; - public static System.Numerics.Quaternion operator -(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; - public static System.Numerics.Quaternion operator /(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; - public static bool operator ==(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; public static System.Numerics.Quaternion Add(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; public static System.Numerics.Quaternion Concatenate(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; public static System.Numerics.Quaternion Conjugate(System.Numerics.Quaternion value) => throw null; public static System.Numerics.Quaternion CreateFromAxisAngle(System.Numerics.Vector3 axis, float angle) => throw null; public static System.Numerics.Quaternion CreateFromRotationMatrix(System.Numerics.Matrix4x4 matrix) => throw null; public static System.Numerics.Quaternion CreateFromYawPitchRoll(float yaw, float pitch, float roll) => throw null; + public Quaternion(System.Numerics.Vector3 vectorPart, float scalarPart) => throw null; + public Quaternion(float x, float y, float z, float w) => throw null; public static System.Numerics.Quaternion Divide(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; public static float Dot(System.Numerics.Quaternion quaternion1, System.Numerics.Quaternion quaternion2) => throw null; public bool Equals(System.Numerics.Quaternion other) => throw null; @@ -176,7 +163,6 @@ namespace System public static System.Numerics.Quaternion Identity { get => throw null; } public static System.Numerics.Quaternion Inverse(System.Numerics.Quaternion value) => throw null; public bool IsIdentity { get => throw null; } - public float this[int index] { get => throw null; set => throw null; } public float Length() => throw null; public float LengthSquared() => throw null; public static System.Numerics.Quaternion Lerp(System.Numerics.Quaternion quaternion1, System.Numerics.Quaternion quaternion2, float amount) => throw null; @@ -184,11 +170,17 @@ namespace System public static System.Numerics.Quaternion Multiply(System.Numerics.Quaternion value1, float value2) => throw null; public static System.Numerics.Quaternion Negate(System.Numerics.Quaternion value) => throw null; public static System.Numerics.Quaternion Normalize(System.Numerics.Quaternion value) => throw null; - // Stub generator skipped constructor - public Quaternion(System.Numerics.Vector3 vectorPart, float scalarPart) => throw null; - public Quaternion(float x, float y, float z, float w) => throw null; + public static System.Numerics.Quaternion operator +(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; + public static System.Numerics.Quaternion operator /(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; + public static bool operator ==(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; + public static bool operator !=(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; + public static System.Numerics.Quaternion operator *(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; + public static System.Numerics.Quaternion operator *(System.Numerics.Quaternion value1, float value2) => throw null; + public static System.Numerics.Quaternion operator -(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; + public static System.Numerics.Quaternion operator -(System.Numerics.Quaternion value) => throw null; public static System.Numerics.Quaternion Slerp(System.Numerics.Quaternion quaternion1, System.Numerics.Quaternion quaternion2, float amount) => throw null; public static System.Numerics.Quaternion Subtract(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; + public float this[int index] { get => throw null; set { } } public override string ToString() => throw null; public float W; public float X; @@ -196,150 +188,192 @@ namespace System public float Z; public static System.Numerics.Quaternion Zero { get => throw null; } } - public static class Vector { public static System.Numerics.Vector Abs(System.Numerics.Vector value) where T : struct => throw null; public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static System.Numerics.Vector AndNot(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static System.Numerics.Vector As(this System.Numerics.Vector vector) where TFrom : struct where TTo : struct => throw null; - public static System.Numerics.Vector AsVectorByte(System.Numerics.Vector value) where T : struct => throw null; + public static System.Numerics.Vector AsVectorByte(System.Numerics.Vector value) where T : struct => throw null; public static System.Numerics.Vector AsVectorDouble(System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector AsVectorInt16(System.Numerics.Vector value) where T : struct => throw null; + public static System.Numerics.Vector AsVectorInt16(System.Numerics.Vector value) where T : struct => throw null; public static System.Numerics.Vector AsVectorInt32(System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector AsVectorInt64(System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector AsVectorNInt(System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector AsVectorNUInt(System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector AsVectorSByte(System.Numerics.Vector value) where T : struct => throw null; + public static System.Numerics.Vector AsVectorInt64(System.Numerics.Vector value) where T : struct => throw null; + public static System.Numerics.Vector AsVectorNInt(System.Numerics.Vector value) where T : struct => throw null; + public static System.Numerics.Vector AsVectorNUInt(System.Numerics.Vector value) where T : struct => throw null; + public static System.Numerics.Vector AsVectorSByte(System.Numerics.Vector value) where T : struct => throw null; public static System.Numerics.Vector AsVectorSingle(System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector AsVectorUInt16(System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector AsVectorUInt32(System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector AsVectorUInt64(System.Numerics.Vector value) where T : struct => throw null; + public static System.Numerics.Vector AsVectorUInt16(System.Numerics.Vector value) where T : struct => throw null; + public static System.Numerics.Vector AsVectorUInt32(System.Numerics.Vector value) where T : struct => throw null; + public static System.Numerics.Vector AsVectorUInt64(System.Numerics.Vector value) where T : struct => throw null; public static System.Numerics.Vector BitwiseAnd(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static System.Numerics.Vector BitwiseOr(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static System.Numerics.Vector Ceiling(System.Numerics.Vector value) => throw null; public static System.Numerics.Vector Ceiling(System.Numerics.Vector value) => throw null; public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector condition, System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector condition, System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector condition, System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector condition, System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; - public static System.Numerics.Vector ConvertToDouble(System.Numerics.Vector value) => throw null; - public static System.Numerics.Vector ConvertToDouble(System.Numerics.Vector value) => throw null; + public static System.Numerics.Vector ConvertToDouble(System.Numerics.Vector value) => throw null; + public static System.Numerics.Vector ConvertToDouble(System.Numerics.Vector value) => throw null; public static System.Numerics.Vector ConvertToInt32(System.Numerics.Vector value) => throw null; - public static System.Numerics.Vector ConvertToInt64(System.Numerics.Vector value) => throw null; + public static System.Numerics.Vector ConvertToInt64(System.Numerics.Vector value) => throw null; public static System.Numerics.Vector ConvertToSingle(System.Numerics.Vector value) => throw null; - public static System.Numerics.Vector ConvertToSingle(System.Numerics.Vector value) => throw null; - public static System.Numerics.Vector ConvertToUInt32(System.Numerics.Vector value) => throw null; - public static System.Numerics.Vector ConvertToUInt64(System.Numerics.Vector value) => throw null; + public static System.Numerics.Vector ConvertToSingle(System.Numerics.Vector value) => throw null; + public static System.Numerics.Vector ConvertToUInt32(System.Numerics.Vector value) => throw null; + public static System.Numerics.Vector ConvertToUInt64(System.Numerics.Vector value) => throw null; public static System.Numerics.Vector Divide(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static T Dot(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; - public static System.Numerics.Vector Equals(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector Equals(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector Equals(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector Equals(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector Equals(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector Equals(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector Equals(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector Equals(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool EqualsAll(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool EqualsAny(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static System.Numerics.Vector Floor(System.Numerics.Vector value) => throw null; public static System.Numerics.Vector Floor(System.Numerics.Vector value) => throw null; - public static System.Numerics.Vector GreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector GreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector GreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector GreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector GreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector GreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector GreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector GreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool GreaterThanAll(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool GreaterThanAny(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; - public static System.Numerics.Vector GreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector GreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector GreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector GreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector GreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector GreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector GreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector GreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool GreaterThanOrEqualAll(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool GreaterThanOrEqualAny(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool IsHardwareAccelerated { get => throw null; } - public static System.Numerics.Vector LessThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector LessThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector LessThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector LessThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector LessThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector LessThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector LessThan(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector LessThan(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool LessThanAll(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool LessThanAny(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; - public static System.Numerics.Vector LessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector LessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector LessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector LessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector LessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector LessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector LessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; public static System.Numerics.Vector LessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool LessThanOrEqualAll(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static bool LessThanOrEqualAny(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static System.Numerics.Vector Max(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static System.Numerics.Vector Min(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; - public static System.Numerics.Vector Multiply(T left, System.Numerics.Vector right) where T : struct => throw null; - public static System.Numerics.Vector Multiply(System.Numerics.Vector left, T right) where T : struct => throw null; public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; + public static System.Numerics.Vector Multiply(System.Numerics.Vector left, T right) where T : struct => throw null; + public static System.Numerics.Vector Multiply(T left, System.Numerics.Vector right) where T : struct => throw null; public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) => throw null; public static System.Numerics.Vector Negate(System.Numerics.Vector value) where T : struct => throw null; public static System.Numerics.Vector OnesComplement(System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightArithmetic(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftLeft(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightArithmetic(System.Numerics.Vector value, int shiftCount) => throw null; public static System.Numerics.Vector ShiftRightArithmetic(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightArithmetic(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightArithmetic(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightArithmetic(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightArithmetic(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightArithmetic(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightArithmetic(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; - public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; + public static System.Numerics.Vector ShiftRightLogical(System.Numerics.Vector value, int shiftCount) => throw null; public static System.Numerics.Vector SquareRoot(System.Numerics.Vector value) where T : struct => throw null; public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; public static T Sum(System.Numerics.Vector value) where T : struct => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) => throw null; public static System.Numerics.Vector Xor(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; } - + public struct Vector : System.IEquatable>, System.IFormattable where T : struct + { + public void CopyTo(System.Span destination) => throw null; + public void CopyTo(System.Span destination) => throw null; + public void CopyTo(T[] destination) => throw null; + public void CopyTo(T[] destination, int startIndex) => throw null; + public static int Count { get => throw null; } + public Vector(System.ReadOnlySpan values) => throw null; + public Vector(System.ReadOnlySpan values) => throw null; + public Vector(System.Span values) => throw null; + public Vector(T value) => throw null; + public Vector(T[] values) => throw null; + public Vector(T[] values, int index) => throw null; + public bool Equals(System.Numerics.Vector other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public static bool IsSupported { get => throw null; } + public static System.Numerics.Vector One { get => throw null; } + public static System.Numerics.Vector operator +(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector operator &(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector operator |(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector operator /(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static bool operator ==(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector operator ^(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; + public static bool operator !=(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector operator *(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector operator *(System.Numerics.Vector value, T factor) => throw null; + public static System.Numerics.Vector operator *(T factor, System.Numerics.Vector value) => throw null; + public static System.Numerics.Vector operator ~(System.Numerics.Vector value) => throw null; + public static System.Numerics.Vector operator -(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; + public static System.Numerics.Vector operator -(System.Numerics.Vector value) => throw null; + public T this[int index] { get => throw null; } + public override string ToString() => throw null; + public string ToString(string format) => throw null; + public string ToString(string format, System.IFormatProvider formatProvider) => throw null; + public bool TryCopyTo(System.Span destination) => throw null; + public bool TryCopyTo(System.Span destination) => throw null; + public static System.Numerics.Vector Zero { get => throw null; } + } public struct Vector2 : System.IEquatable, System.IFormattable { - public static bool operator !=(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; - public static System.Numerics.Vector2 operator *(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; - public static System.Numerics.Vector2 operator *(System.Numerics.Vector2 left, float right) => throw null; - public static System.Numerics.Vector2 operator *(float left, System.Numerics.Vector2 right) => throw null; - public static System.Numerics.Vector2 operator +(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; - public static System.Numerics.Vector2 operator -(System.Numerics.Vector2 value) => throw null; - public static System.Numerics.Vector2 operator -(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; - public static System.Numerics.Vector2 operator /(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; - public static System.Numerics.Vector2 operator /(System.Numerics.Vector2 value1, float value2) => throw null; - public static bool operator ==(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; public static System.Numerics.Vector2 Abs(System.Numerics.Vector2 value) => throw null; public static System.Numerics.Vector2 Add(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; public static System.Numerics.Vector2 Clamp(System.Numerics.Vector2 value1, System.Numerics.Vector2 min, System.Numerics.Vector2 max) => throw null; public void CopyTo(float[] array) => throw null; public void CopyTo(float[] array, int index) => throw null; public void CopyTo(System.Span destination) => throw null; + public Vector2(float value) => throw null; + public Vector2(float x, float y) => throw null; + public Vector2(System.ReadOnlySpan values) => throw null; public static float Distance(System.Numerics.Vector2 value1, System.Numerics.Vector2 value2) => throw null; public static float DistanceSquared(System.Numerics.Vector2 value1, System.Numerics.Vector2 value2) => throw null; public static System.Numerics.Vector2 Divide(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; @@ -348,7 +382,6 @@ namespace System public bool Equals(System.Numerics.Vector2 other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public float this[int index] { get => throw null; set => throw null; } public float Length() => throw null; public float LengthSquared() => throw null; public static System.Numerics.Vector2 Lerp(System.Numerics.Vector2 value1, System.Numerics.Vector2 value2, float amount) => throw null; @@ -360,9 +393,20 @@ namespace System public static System.Numerics.Vector2 Negate(System.Numerics.Vector2 value) => throw null; public static System.Numerics.Vector2 Normalize(System.Numerics.Vector2 value) => throw null; public static System.Numerics.Vector2 One { get => throw null; } + public static System.Numerics.Vector2 operator +(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; + public static System.Numerics.Vector2 operator /(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; + public static System.Numerics.Vector2 operator /(System.Numerics.Vector2 value1, float value2) => throw null; + public static bool operator ==(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; + public static bool operator !=(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; + public static System.Numerics.Vector2 operator *(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; + public static System.Numerics.Vector2 operator *(System.Numerics.Vector2 left, float right) => throw null; + public static System.Numerics.Vector2 operator *(float left, System.Numerics.Vector2 right) => throw null; + public static System.Numerics.Vector2 operator -(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; + public static System.Numerics.Vector2 operator -(System.Numerics.Vector2 value) => throw null; public static System.Numerics.Vector2 Reflect(System.Numerics.Vector2 vector, System.Numerics.Vector2 normal) => throw null; public static System.Numerics.Vector2 SquareRoot(System.Numerics.Vector2 value) => throw null; public static System.Numerics.Vector2 Subtract(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; + public float this[int index] { get => throw null; set { } } public override string ToString() => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider formatProvider) => throw null; @@ -374,27 +418,12 @@ namespace System public bool TryCopyTo(System.Span destination) => throw null; public static System.Numerics.Vector2 UnitX { get => throw null; } public static System.Numerics.Vector2 UnitY { get => throw null; } - // Stub generator skipped constructor - public Vector2(System.ReadOnlySpan values) => throw null; - public Vector2(float value) => throw null; - public Vector2(float x, float y) => throw null; public float X; public float Y; public static System.Numerics.Vector2 Zero { get => throw null; } } - public struct Vector3 : System.IEquatable, System.IFormattable { - public static bool operator !=(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; - public static System.Numerics.Vector3 operator *(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; - public static System.Numerics.Vector3 operator *(System.Numerics.Vector3 left, float right) => throw null; - public static System.Numerics.Vector3 operator *(float left, System.Numerics.Vector3 right) => throw null; - public static System.Numerics.Vector3 operator +(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; - public static System.Numerics.Vector3 operator -(System.Numerics.Vector3 value) => throw null; - public static System.Numerics.Vector3 operator -(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; - public static System.Numerics.Vector3 operator /(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; - public static System.Numerics.Vector3 operator /(System.Numerics.Vector3 value1, float value2) => throw null; - public static bool operator ==(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; public static System.Numerics.Vector3 Abs(System.Numerics.Vector3 value) => throw null; public static System.Numerics.Vector3 Add(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; public static System.Numerics.Vector3 Clamp(System.Numerics.Vector3 value1, System.Numerics.Vector3 min, System.Numerics.Vector3 max) => throw null; @@ -402,6 +431,10 @@ namespace System public void CopyTo(float[] array, int index) => throw null; public void CopyTo(System.Span destination) => throw null; public static System.Numerics.Vector3 Cross(System.Numerics.Vector3 vector1, System.Numerics.Vector3 vector2) => throw null; + public Vector3(System.Numerics.Vector2 value, float z) => throw null; + public Vector3(float value) => throw null; + public Vector3(float x, float y, float z) => throw null; + public Vector3(System.ReadOnlySpan values) => throw null; public static float Distance(System.Numerics.Vector3 value1, System.Numerics.Vector3 value2) => throw null; public static float DistanceSquared(System.Numerics.Vector3 value1, System.Numerics.Vector3 value2) => throw null; public static System.Numerics.Vector3 Divide(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; @@ -410,7 +443,6 @@ namespace System public bool Equals(System.Numerics.Vector3 other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public float this[int index] { get => throw null; set => throw null; } public float Length() => throw null; public float LengthSquared() => throw null; public static System.Numerics.Vector3 Lerp(System.Numerics.Vector3 value1, System.Numerics.Vector3 value2, float amount) => throw null; @@ -422,9 +454,20 @@ namespace System public static System.Numerics.Vector3 Negate(System.Numerics.Vector3 value) => throw null; public static System.Numerics.Vector3 Normalize(System.Numerics.Vector3 value) => throw null; public static System.Numerics.Vector3 One { get => throw null; } + public static System.Numerics.Vector3 operator +(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; + public static System.Numerics.Vector3 operator /(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; + public static System.Numerics.Vector3 operator /(System.Numerics.Vector3 value1, float value2) => throw null; + public static bool operator ==(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; + public static bool operator !=(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; + public static System.Numerics.Vector3 operator *(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; + public static System.Numerics.Vector3 operator *(System.Numerics.Vector3 left, float right) => throw null; + public static System.Numerics.Vector3 operator *(float left, System.Numerics.Vector3 right) => throw null; + public static System.Numerics.Vector3 operator -(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; + public static System.Numerics.Vector3 operator -(System.Numerics.Vector3 value) => throw null; public static System.Numerics.Vector3 Reflect(System.Numerics.Vector3 vector, System.Numerics.Vector3 normal) => throw null; public static System.Numerics.Vector3 SquareRoot(System.Numerics.Vector3 value) => throw null; public static System.Numerics.Vector3 Subtract(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; + public float this[int index] { get => throw null; set { } } public override string ToString() => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider formatProvider) => throw null; @@ -435,35 +478,24 @@ namespace System public static System.Numerics.Vector3 UnitX { get => throw null; } public static System.Numerics.Vector3 UnitY { get => throw null; } public static System.Numerics.Vector3 UnitZ { get => throw null; } - // Stub generator skipped constructor - public Vector3(System.ReadOnlySpan values) => throw null; - public Vector3(System.Numerics.Vector2 value, float z) => throw null; - public Vector3(float value) => throw null; - public Vector3(float x, float y, float z) => throw null; public float X; public float Y; public float Z; public static System.Numerics.Vector3 Zero { get => throw null; } } - public struct Vector4 : System.IEquatable, System.IFormattable { - public static bool operator !=(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; - public static System.Numerics.Vector4 operator *(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; - public static System.Numerics.Vector4 operator *(System.Numerics.Vector4 left, float right) => throw null; - public static System.Numerics.Vector4 operator *(float left, System.Numerics.Vector4 right) => throw null; - public static System.Numerics.Vector4 operator +(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; - public static System.Numerics.Vector4 operator -(System.Numerics.Vector4 value) => throw null; - public static System.Numerics.Vector4 operator -(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; - public static System.Numerics.Vector4 operator /(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; - public static System.Numerics.Vector4 operator /(System.Numerics.Vector4 value1, float value2) => throw null; - public static bool operator ==(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; public static System.Numerics.Vector4 Abs(System.Numerics.Vector4 value) => throw null; public static System.Numerics.Vector4 Add(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; public static System.Numerics.Vector4 Clamp(System.Numerics.Vector4 value1, System.Numerics.Vector4 min, System.Numerics.Vector4 max) => throw null; public void CopyTo(float[] array) => throw null; public void CopyTo(float[] array, int index) => throw null; public void CopyTo(System.Span destination) => throw null; + public Vector4(System.Numerics.Vector2 value, float z, float w) => throw null; + public Vector4(System.Numerics.Vector3 value, float w) => throw null; + public Vector4(float value) => throw null; + public Vector4(float x, float y, float z, float w) => throw null; + public Vector4(System.ReadOnlySpan values) => throw null; public static float Distance(System.Numerics.Vector4 value1, System.Numerics.Vector4 value2) => throw null; public static float DistanceSquared(System.Numerics.Vector4 value1, System.Numerics.Vector4 value2) => throw null; public static System.Numerics.Vector4 Divide(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; @@ -472,7 +504,6 @@ namespace System public bool Equals(System.Numerics.Vector4 other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public float this[int index] { get => throw null; set => throw null; } public float Length() => throw null; public float LengthSquared() => throw null; public static System.Numerics.Vector4 Lerp(System.Numerics.Vector4 value1, System.Numerics.Vector4 value2, float amount) => throw null; @@ -484,8 +515,19 @@ namespace System public static System.Numerics.Vector4 Negate(System.Numerics.Vector4 value) => throw null; public static System.Numerics.Vector4 Normalize(System.Numerics.Vector4 vector) => throw null; public static System.Numerics.Vector4 One { get => throw null; } + public static System.Numerics.Vector4 operator +(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; + public static System.Numerics.Vector4 operator /(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; + public static System.Numerics.Vector4 operator /(System.Numerics.Vector4 value1, float value2) => throw null; + public static bool operator ==(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; + public static bool operator !=(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; + public static System.Numerics.Vector4 operator *(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; + public static System.Numerics.Vector4 operator *(System.Numerics.Vector4 left, float right) => throw null; + public static System.Numerics.Vector4 operator *(float left, System.Numerics.Vector4 right) => throw null; + public static System.Numerics.Vector4 operator -(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; + public static System.Numerics.Vector4 operator -(System.Numerics.Vector4 value) => throw null; public static System.Numerics.Vector4 SquareRoot(System.Numerics.Vector4 value) => throw null; public static System.Numerics.Vector4 Subtract(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; + public float this[int index] { get => throw null; set { } } public override string ToString() => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider formatProvider) => throw null; @@ -500,71 +542,11 @@ namespace System public static System.Numerics.Vector4 UnitX { get => throw null; } public static System.Numerics.Vector4 UnitY { get => throw null; } public static System.Numerics.Vector4 UnitZ { get => throw null; } - // Stub generator skipped constructor - public Vector4(System.ReadOnlySpan values) => throw null; - public Vector4(System.Numerics.Vector2 value, float z, float w) => throw null; - public Vector4(System.Numerics.Vector3 value, float w) => throw null; - public Vector4(float value) => throw null; - public Vector4(float x, float y, float z, float w) => throw null; public float W; public float X; public float Y; public float Z; public static System.Numerics.Vector4 Zero { get => throw null; } } - - public struct Vector : System.IEquatable>, System.IFormattable where T : struct - { - public static bool operator !=(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector operator &(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector operator *(T factor, System.Numerics.Vector value) => throw null; - public static System.Numerics.Vector operator *(System.Numerics.Vector value, T factor) => throw null; - public static System.Numerics.Vector operator *(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector operator +(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector operator -(System.Numerics.Vector value) => throw null; - public static System.Numerics.Vector operator -(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector operator /(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static bool operator ==(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public void CopyTo(System.Span destination) => throw null; - public void CopyTo(System.Span destination) => throw null; - public void CopyTo(T[] destination) => throw null; - public void CopyTo(T[] destination, int startIndex) => throw null; - public static int Count { get => throw null; } - public bool Equals(System.Numerics.Vector other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public static bool IsSupported { get => throw null; } - public T this[int index] { get => throw null; } - public static System.Numerics.Vector One { get => throw null; } - public override string ToString() => throw null; - public string ToString(string format) => throw null; - public string ToString(string format, System.IFormatProvider formatProvider) => throw null; - public bool TryCopyTo(System.Span destination) => throw null; - public bool TryCopyTo(System.Span destination) => throw null; - // Stub generator skipped constructor - public Vector(System.ReadOnlySpan values) => throw null; - public Vector(System.ReadOnlySpan values) => throw null; - public Vector(System.Span values) => throw null; - public Vector(T value) => throw null; - public Vector(T[] values) => throw null; - public Vector(T[] values, int index) => throw null; - public static System.Numerics.Vector Zero { get => throw null; } - public static System.Numerics.Vector operator ^(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static explicit operator System.Numerics.Vector(System.Numerics.Vector value) => throw null; - public static System.Numerics.Vector operator |(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; - public static System.Numerics.Vector operator ~(System.Numerics.Vector value) => throw null; - } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs new file mode 100644 index 00000000000..f03a20b6507 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs index 1bad4e4e0dc..46092af512a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.ObjectModel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Collections @@ -13,72 +12,65 @@ namespace System protected override void ClearItems() => throw null; public System.Collections.Generic.IEqualityComparer Comparer { get => throw null; } public bool Contains(TKey key) => throw null; - protected System.Collections.Generic.IDictionary Dictionary { get => throw null; } - protected abstract TKey GetKeyForItem(TItem item); - protected override void InsertItem(int index, TItem item) => throw null; - public TItem this[TKey key] { get => throw null; } protected KeyedCollection() => throw null; protected KeyedCollection(System.Collections.Generic.IEqualityComparer comparer) => throw null; protected KeyedCollection(System.Collections.Generic.IEqualityComparer comparer, int dictionaryCreationThreshold) => throw null; + protected System.Collections.Generic.IDictionary Dictionary { get => throw null; } + protected abstract TKey GetKeyForItem(TItem item); + protected override void InsertItem(int index, TItem item) => throw null; public bool Remove(TKey key) => throw null; protected override void RemoveItem(int index) => throw null; protected override void SetItem(int index, TItem item) => throw null; + public TItem this[TKey key] { get => throw null; } public bool TryGetValue(TKey key, out TItem item) => throw null; } - public class ObservableCollection : System.Collections.ObjectModel.Collection, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.INotifyPropertyChanged { protected System.IDisposable BlockReentrancy() => throw null; protected void CheckReentrancy() => throw null; protected override void ClearItems() => throw null; - public virtual event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; - protected override void InsertItem(int index, T item) => throw null; - public void Move(int oldIndex, int newIndex) => throw null; - protected virtual void MoveItem(int oldIndex, int newIndex) => throw null; + public virtual event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged { add { } remove { } } public ObservableCollection() => throw null; public ObservableCollection(System.Collections.Generic.IEnumerable collection) => throw null; public ObservableCollection(System.Collections.Generic.List list) => throw null; + protected override void InsertItem(int index, T item) => throw null; + public void Move(int oldIndex, int newIndex) => throw null; + protected virtual void MoveItem(int oldIndex, int newIndex) => throw null; protected virtual void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) => throw null; protected virtual void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e) => throw null; - protected virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - event System.ComponentModel.PropertyChangedEventHandler System.ComponentModel.INotifyPropertyChanged.PropertyChanged { add => throw null; remove => throw null; } + protected virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } + event System.ComponentModel.PropertyChangedEventHandler System.ComponentModel.INotifyPropertyChanged.PropertyChanged { add { } remove { } } protected override void RemoveItem(int index) => throw null; protected override void SetItem(int index, T item) => throw null; } - public class ReadOnlyObservableCollection : System.Collections.ObjectModel.ReadOnlyCollection, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.INotifyPropertyChanged { - protected virtual event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; - event System.Collections.Specialized.NotifyCollectionChangedEventHandler System.Collections.Specialized.INotifyCollectionChanged.CollectionChanged { add => throw null; remove => throw null; } + protected virtual event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged { add { } remove { } } + event System.Collections.Specialized.NotifyCollectionChangedEventHandler System.Collections.Specialized.INotifyCollectionChanged.CollectionChanged { add { } remove { } } + public ReadOnlyObservableCollection(System.Collections.ObjectModel.ObservableCollection list) : base(default(System.Collections.Generic.IList)) => throw null; protected virtual void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args) => throw null; protected virtual void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs args) => throw null; - protected virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; - event System.ComponentModel.PropertyChangedEventHandler System.ComponentModel.INotifyPropertyChanged.PropertyChanged { add => throw null; remove => throw null; } - public ReadOnlyObservableCollection(System.Collections.ObjectModel.ObservableCollection list) : base(default(System.Collections.Generic.IList)) => throw null; + protected virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } + event System.ComponentModel.PropertyChangedEventHandler System.ComponentModel.INotifyPropertyChanged.PropertyChanged { add { } remove { } } } - } namespace Specialized { public interface INotifyCollectionChanged { - event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; + event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged { add { } remove { } } } - - public enum NotifyCollectionChangedAction : int + public enum NotifyCollectionChangedAction { Add = 0, - Move = 3, Remove = 1, Replace = 2, + Move = 3, Reset = 4, } - public class NotifyCollectionChangedEventArgs : System.EventArgs { public System.Collections.Specialized.NotifyCollectionChangedAction Action { get => throw null; } - public System.Collections.IList NewItems { get => throw null; } - public int NewStartingIndex { get => throw null; } public NotifyCollectionChangedEventArgs(System.Collections.Specialized.NotifyCollectionChangedAction action) => throw null; public NotifyCollectionChangedEventArgs(System.Collections.Specialized.NotifyCollectionChangedAction action, System.Collections.IList changedItems) => throw null; public NotifyCollectionChangedEventArgs(System.Collections.Specialized.NotifyCollectionChangedAction action, System.Collections.IList newItems, System.Collections.IList oldItems) => throw null; @@ -90,12 +82,12 @@ namespace System public NotifyCollectionChangedEventArgs(System.Collections.Specialized.NotifyCollectionChangedAction action, object changedItem, int index, int oldIndex) => throw null; public NotifyCollectionChangedEventArgs(System.Collections.Specialized.NotifyCollectionChangedAction action, object newItem, object oldItem) => throw null; public NotifyCollectionChangedEventArgs(System.Collections.Specialized.NotifyCollectionChangedAction action, object newItem, object oldItem, int index) => throw null; + public System.Collections.IList NewItems { get => throw null; } + public int NewStartingIndex { get => throw null; } public System.Collections.IList OldItems { get => throw null; } public int OldStartingIndex { get => throw null; } } - public delegate void NotifyCollectionChangedEventHandler(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e); - } } namespace ComponentModel @@ -105,58 +97,48 @@ namespace System public DataErrorsChangedEventArgs(string propertyName) => throw null; public virtual string PropertyName { get => throw null; } } - public interface INotifyDataErrorInfo { - event System.EventHandler ErrorsChanged; + event System.EventHandler ErrorsChanged { add { } remove { } } System.Collections.IEnumerable GetErrors(string propertyName); bool HasErrors { get; } } - public interface INotifyPropertyChanged { - event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } } - public interface INotifyPropertyChanging { - event System.ComponentModel.PropertyChangingEventHandler PropertyChanging; + event System.ComponentModel.PropertyChangingEventHandler PropertyChanging { add { } remove { } } } - public class PropertyChangedEventArgs : System.EventArgs { public PropertyChangedEventArgs(string propertyName) => throw null; public virtual string PropertyName { get => throw null; } } - public delegate void PropertyChangedEventHandler(object sender, System.ComponentModel.PropertyChangedEventArgs e); - public class PropertyChangingEventArgs : System.EventArgs { public PropertyChangingEventArgs(string propertyName) => throw null; public virtual string PropertyName { get => throw null; } } - public delegate void PropertyChangingEventHandler(object sender, System.ComponentModel.PropertyChangingEventArgs e); - - public class TypeConverterAttribute : System.Attribute + public sealed class TypeConverterAttribute : System.Attribute { public string ConverterTypeName { get => throw null; } + public TypeConverterAttribute() => throw null; + public TypeConverterAttribute(string typeName) => throw null; + public TypeConverterAttribute(System.Type type) => throw null; public static System.ComponentModel.TypeConverterAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public TypeConverterAttribute() => throw null; - public TypeConverterAttribute(System.Type type) => throw null; - public TypeConverterAttribute(string typeName) => throw null; } - - public class TypeDescriptionProviderAttribute : System.Attribute + public sealed class TypeDescriptionProviderAttribute : System.Attribute { - public TypeDescriptionProviderAttribute(System.Type type) => throw null; public TypeDescriptionProviderAttribute(string typeName) => throw null; + public TypeDescriptionProviderAttribute(System.Type type) => throw null; public string TypeName { get => throw null; } } - } namespace Reflection { @@ -164,7 +146,6 @@ namespace System { System.Type GetCustomType(); } - } namespace Windows { @@ -173,21 +154,19 @@ namespace System public interface ICommand { bool CanExecute(object parameter); - event System.EventHandler CanExecuteChanged; + event System.EventHandler CanExecuteChanged { add { } remove { } } void Execute(object parameter); } - } namespace Markup { - public class ValueSerializerAttribute : System.Attribute + public sealed class ValueSerializerAttribute : System.Attribute { - public ValueSerializerAttribute(System.Type valueSerializerType) => throw null; public ValueSerializerAttribute(string valueSerializerTypeName) => throw null; + public ValueSerializerAttribute(System.Type valueSerializerType) => throw null; public System.Type ValueSerializerType { get => throw null; } public string ValueSerializerTypeName { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.DispatchProxy.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.DispatchProxy.cs index e22c1633dc8..46212079f40 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.DispatchProxy.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.DispatchProxy.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Reflection.DispatchProxy, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Reflection @@ -11,6 +10,5 @@ namespace System protected DispatchProxy() => throw null; protected abstract object Invoke(System.Reflection.MethodInfo targetMethod, object[] args); } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.ILGeneration.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.ILGeneration.cs index dc68bdfcac8..9d6017f576d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.ILGeneration.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.ILGeneration.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Reflection.Emit.ILGeneration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Reflection @@ -14,7 +13,6 @@ namespace System public CustomAttributeBuilder(System.Reflection.ConstructorInfo con, object[] constructorArgs, System.Reflection.PropertyInfo[] namedProperties, object[] propertyValues) => throw null; public CustomAttributeBuilder(System.Reflection.ConstructorInfo con, object[] constructorArgs, System.Reflection.PropertyInfo[] namedProperties, object[] propertyValues, System.Reflection.FieldInfo[] namedFields, object[] fieldValues) => throw null; } - public class ILGenerator { public virtual void BeginCatchBlock(System.Type exceptionType) => throw null; @@ -27,27 +25,27 @@ namespace System public virtual System.Reflection.Emit.LocalBuilder DeclareLocal(System.Type localType, bool pinned) => throw null; public virtual System.Reflection.Emit.Label DefineLabel() => throw null; public virtual void Emit(System.Reflection.Emit.OpCode opcode) => throw null; + public virtual void Emit(System.Reflection.Emit.OpCode opcode, byte arg) => throw null; + public virtual void Emit(System.Reflection.Emit.OpCode opcode, double arg) => throw null; + public virtual void Emit(System.Reflection.Emit.OpCode opcode, short arg) => throw null; + public virtual void Emit(System.Reflection.Emit.OpCode opcode, int arg) => throw null; + public virtual void Emit(System.Reflection.Emit.OpCode opcode, long arg) => throw null; public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.ConstructorInfo con) => throw null; - public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.FieldInfo field) => throw null; public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.Emit.Label label) => throw null; public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.Emit.Label[] labels) => throw null; public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.Emit.LocalBuilder local) => throw null; - public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.MethodInfo meth) => throw null; public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.Emit.SignatureHelper signature) => throw null; - public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Type cls) => throw null; - public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Byte arg) => throw null; - public virtual void Emit(System.Reflection.Emit.OpCode opcode, double arg) => throw null; + public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.FieldInfo field) => throw null; + public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.MethodInfo meth) => throw null; + public void Emit(System.Reflection.Emit.OpCode opcode, sbyte arg) => throw null; public virtual void Emit(System.Reflection.Emit.OpCode opcode, float arg) => throw null; - public virtual void Emit(System.Reflection.Emit.OpCode opcode, int arg) => throw null; - public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Int64 arg) => throw null; - public void Emit(System.Reflection.Emit.OpCode opcode, System.SByte arg) => throw null; - public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Int16 arg) => throw null; public virtual void Emit(System.Reflection.Emit.OpCode opcode, string str) => throw null; + public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Type cls) => throw null; public virtual void EmitCall(System.Reflection.Emit.OpCode opcode, System.Reflection.MethodInfo methodInfo, System.Type[] optionalParameterTypes) => throw null; - public virtual void EmitCalli(System.Reflection.Emit.OpCode opcode, System.Runtime.InteropServices.CallingConvention unmanagedCallConv, System.Type returnType, System.Type[] parameterTypes) => throw null; public virtual void EmitCalli(System.Reflection.Emit.OpCode opcode, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Type[] optionalParameterTypes) => throw null; - public virtual void EmitWriteLine(System.Reflection.FieldInfo fld) => throw null; + public virtual void EmitCalli(System.Reflection.Emit.OpCode opcode, System.Runtime.InteropServices.CallingConvention unmanagedCallConv, System.Type returnType, System.Type[] parameterTypes) => throw null; public virtual void EmitWriteLine(System.Reflection.Emit.LocalBuilder localBuilder) => throw null; + public virtual void EmitWriteLine(System.Reflection.FieldInfo fld) => throw null; public virtual void EmitWriteLine(string value) => throw null; public virtual void EndExceptionBlock() => throw null; public virtual void EndScope() => throw null; @@ -56,24 +54,20 @@ namespace System public virtual void ThrowException(System.Type excType) => throw null; public virtual void UsingNamespace(string usingNamespace) => throw null; } - public struct Label : System.IEquatable { - public static bool operator !=(System.Reflection.Emit.Label a, System.Reflection.Emit.Label b) => throw null; - public static bool operator ==(System.Reflection.Emit.Label a, System.Reflection.Emit.Label b) => throw null; - public bool Equals(System.Reflection.Emit.Label obj) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Emit.Label obj) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Emit.Label a, System.Reflection.Emit.Label b) => throw null; + public static bool operator !=(System.Reflection.Emit.Label a, System.Reflection.Emit.Label b) => throw null; } - - public class LocalBuilder : System.Reflection.LocalVariableInfo + public sealed class LocalBuilder : System.Reflection.LocalVariableInfo { public override bool IsPinned { get => throw null; } public override int LocalIndex { get => throw null; } public override System.Type LocalType { get => throw null; } } - public class ParameterBuilder { public virtual int Attributes { get => throw null; } @@ -83,15 +77,14 @@ namespace System public virtual string Name { get => throw null; } public virtual int Position { get => throw null; } public virtual void SetConstant(object defaultValue) => throw null; - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; } - - public class SignatureHelper + public sealed class SignatureHelper { public void AddArgument(System.Type clsArgument) => throw null; - public void AddArgument(System.Type argument, System.Type[] requiredCustomModifiers, System.Type[] optionalCustomModifiers) => throw null; public void AddArgument(System.Type argument, bool pinned) => throw null; + public void AddArgument(System.Type argument, System.Type[] requiredCustomModifiers, System.Type[] optionalCustomModifiers) => throw null; public void AddArguments(System.Type[] arguments, System.Type[][] requiredCustomModifiers, System.Type[][] optionalCustomModifiers) => throw null; public void AddSentinel() => throw null; public override bool Equals(object obj) => throw null; @@ -105,10 +98,9 @@ namespace System public static System.Reflection.Emit.SignatureHelper GetPropertySigHelper(System.Reflection.Module mod, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] requiredReturnTypeCustomModifiers, System.Type[] optionalReturnTypeCustomModifiers, System.Type[] parameterTypes, System.Type[][] requiredParameterTypeCustomModifiers, System.Type[][] optionalParameterTypeCustomModifiers) => throw null; public static System.Reflection.Emit.SignatureHelper GetPropertySigHelper(System.Reflection.Module mod, System.Type returnType, System.Type[] parameterTypes) => throw null; public static System.Reflection.Emit.SignatureHelper GetPropertySigHelper(System.Reflection.Module mod, System.Type returnType, System.Type[] requiredReturnTypeCustomModifiers, System.Type[] optionalReturnTypeCustomModifiers, System.Type[] parameterTypes, System.Type[][] requiredParameterTypeCustomModifiers, System.Type[][] optionalParameterTypeCustomModifiers) => throw null; - public System.Byte[] GetSignature() => throw null; + public byte[] GetSignature() => throw null; public override string ToString() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.Lightweight.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.Lightweight.cs index 0664619a85e..952d4687156 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.Lightweight.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.Lightweight.cs @@ -1,16 +1,15 @@ // This file contains auto-generated code. // Generated from `System.Reflection.Emit.Lightweight, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Reflection { namespace Emit { - public class DynamicILInfo + public sealed class DynamicILInfo { public System.Reflection.Emit.DynamicMethod DynamicMethod { get => throw null; } - public int GetTokenFor(System.Byte[] signature) => throw null; + public int GetTokenFor(byte[] signature) => throw null; public int GetTokenFor(System.Reflection.Emit.DynamicMethod method) => throw null; public int GetTokenFor(System.RuntimeFieldHandle field) => throw null; public int GetTokenFor(System.RuntimeFieldHandle field, System.RuntimeTypeHandle contextType) => throw null; @@ -18,39 +17,38 @@ namespace System public int GetTokenFor(System.RuntimeMethodHandle method, System.RuntimeTypeHandle contextType) => throw null; public int GetTokenFor(System.RuntimeTypeHandle type) => throw null; public int GetTokenFor(string literal) => throw null; - public void SetCode(System.Byte[] code, int maxStackSize) => throw null; - unsafe public void SetCode(System.Byte* code, int codeSize, int maxStackSize) => throw null; - public void SetExceptions(System.Byte[] exceptions) => throw null; - unsafe public void SetExceptions(System.Byte* exceptions, int exceptionsSize) => throw null; - public void SetLocalSignature(System.Byte[] localSignature) => throw null; - unsafe public void SetLocalSignature(System.Byte* localSignature, int signatureSize) => throw null; + public unsafe void SetCode(byte* code, int codeSize, int maxStackSize) => throw null; + public void SetCode(byte[] code, int maxStackSize) => throw null; + public unsafe void SetExceptions(byte* exceptions, int exceptionsSize) => throw null; + public void SetExceptions(byte[] exceptions) => throw null; + public unsafe void SetLocalSignature(byte* localSignature, int signatureSize) => throw null; + public void SetLocalSignature(byte[] localSignature) => throw null; } - - public class DynamicMethod : System.Reflection.MethodInfo + public sealed class DynamicMethod : System.Reflection.MethodInfo { public override System.Reflection.MethodAttributes Attributes { get => throw null; } public override System.Reflection.CallingConventions CallingConvention { get => throw null; } - public override System.Delegate CreateDelegate(System.Type delegateType) => throw null; - public override System.Delegate CreateDelegate(System.Type delegateType, object target) => throw null; - public override System.Type DeclaringType { get => throw null; } - public System.Reflection.Emit.ParameterBuilder DefineParameter(int position, System.Reflection.ParameterAttributes attributes, string parameterName) => throw null; + public override sealed System.Delegate CreateDelegate(System.Type delegateType) => throw null; + public override sealed System.Delegate CreateDelegate(System.Type delegateType, object target) => throw null; public DynamicMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Reflection.Module m, bool skipVisibility) => throw null; public DynamicMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Type owner, bool skipVisibility) => throw null; public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes) => throw null; + public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, bool restrictedSkipVisibility) => throw null; public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, System.Reflection.Module m) => throw null; public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, System.Reflection.Module m, bool skipVisibility) => throw null; public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, System.Type owner) => throw null; public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, System.Type owner, bool skipVisibility) => throw null; - public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, bool restrictedSkipVisibility) => throw null; + public override System.Type DeclaringType { get => throw null; } + public System.Reflection.Emit.ParameterBuilder DefineParameter(int position, System.Reflection.ParameterAttributes attributes, string parameterName) => throw null; public override System.Reflection.MethodInfo GetBaseDefinition() => throw null; - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public System.Reflection.Emit.DynamicILInfo GetDynamicILInfo() => throw null; public System.Reflection.Emit.ILGenerator GetILGenerator() => throw null; public System.Reflection.Emit.ILGenerator GetILGenerator(int streamSize) => throw null; public override System.Reflection.MethodImplAttributes GetMethodImplementationFlags() => throw null; public override System.Reflection.ParameterInfo[] GetParameters() => throw null; - public bool InitLocals { get => throw null; set => throw null; } + public bool InitLocals { get => throw null; set { } } public override object Invoke(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture) => throw null; public override bool IsDefined(System.Type attributeType, bool inherit) => throw null; public override bool IsSecurityCritical { get => throw null; } @@ -65,7 +63,6 @@ namespace System public override System.Reflection.ICustomAttributeProvider ReturnTypeCustomAttributes { get => throw null; } public override string ToString() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs index abf531b9ec5..a27a4833afa 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `System.Reflection.Emit, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Reflection { namespace Emit { - public class AssemblyBuilder : System.Reflection.Assembly + public sealed class AssemblyBuilder : System.Reflection.Assembly { public override string CodeBase { get => throw null; } public static System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access) => throw null; @@ -16,8 +15,8 @@ namespace System public override System.Reflection.MethodInfo EntryPoint { get => throw null; } public override bool Equals(object obj) => throw null; public override string FullName { get => throw null; } - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override System.Collections.Generic.IList GetCustomAttributesData() => throw null; public System.Reflection.Emit.ModuleBuilder GetDynamicModule(string name) => throw null; public override System.Type[] GetExportedTypes() => throw null; @@ -27,8 +26,8 @@ namespace System public override System.Reflection.Module[] GetLoadedModules(bool getResourceModules) => throw null; public override System.Reflection.ManifestResourceInfo GetManifestResourceInfo(string resourceName) => throw null; public override string[] GetManifestResourceNames() => throw null; - public override System.IO.Stream GetManifestResourceStream(System.Type type, string name) => throw null; public override System.IO.Stream GetManifestResourceStream(string name) => throw null; + public override System.IO.Stream GetManifestResourceStream(System.Type type, string name) => throw null; public override System.Reflection.Module GetModule(string name) => throw null; public override System.Reflection.Module[] GetModules(bool getResourceModules) => throw null; public override System.Reflection.AssemblyName GetName(bool copiedName) => throw null; @@ -36,52 +35,49 @@ namespace System public override System.Reflection.Assembly GetSatelliteAssembly(System.Globalization.CultureInfo culture) => throw null; public override System.Reflection.Assembly GetSatelliteAssembly(System.Globalization.CultureInfo culture, System.Version version) => throw null; public override System.Type GetType(string name, bool throwOnError, bool ignoreCase) => throw null; - public override System.Int64 HostContext { get => throw null; } + public override long HostContext { get => throw null; } public override bool IsCollectible { get => throw null; } public override bool IsDefined(System.Type attributeType, bool inherit) => throw null; public override bool IsDynamic { get => throw null; } public override string Location { get => throw null; } public override System.Reflection.Module ManifestModule { get => throw null; } public override bool ReflectionOnly { get => throw null; } - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; } - [System.Flags] - public enum AssemblyBuilderAccess : int + public enum AssemblyBuilderAccess { Run = 1, RunAndCollect = 9, } - - public class ConstructorBuilder : System.Reflection.ConstructorInfo + public sealed class ConstructorBuilder : System.Reflection.ConstructorInfo { public override System.Reflection.MethodAttributes Attributes { get => throw null; } public override System.Reflection.CallingConventions CallingConvention { get => throw null; } public override System.Type DeclaringType { get => throw null; } public System.Reflection.Emit.ParameterBuilder DefineParameter(int iSequence, System.Reflection.ParameterAttributes attributes, string strParamName) => throw null; - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public System.Reflection.Emit.ILGenerator GetILGenerator() => throw null; public System.Reflection.Emit.ILGenerator GetILGenerator(int streamSize) => throw null; public override System.Reflection.MethodImplAttributes GetMethodImplementationFlags() => throw null; public override System.Reflection.ParameterInfo[] GetParameters() => throw null; - public bool InitLocals { get => throw null; set => throw null; } - public override object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture) => throw null; + public bool InitLocals { get => throw null; set { } } public override object Invoke(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture) => throw null; + public override object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture) => throw null; public override bool IsDefined(System.Type attributeType, bool inherit) => throw null; public override int MetadataToken { get => throw null; } public override System.RuntimeMethodHandle MethodHandle { get => throw null; } public override System.Reflection.Module Module { get => throw null; } public override string Name { get => throw null; } public override System.Type ReflectedType { get => throw null; } - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; public void SetImplementationFlags(System.Reflection.MethodImplAttributes attributes) => throw null; public override string ToString() => throw null; } - - public class EnumBuilder : System.Reflection.TypeInfo + public sealed class EnumBuilder : System.Reflection.TypeInfo { public override System.Reflection.Assembly Assembly { get => throw null; } public override string AssemblyQualifiedName { get => throw null; } @@ -91,12 +87,11 @@ namespace System public override System.Type DeclaringType { get => throw null; } public System.Reflection.Emit.FieldBuilder DefineLiteral(string literalName, object literalValue) => throw null; public override string FullName { get => throw null; } - public override System.Guid GUID { get => throw null; } protected override System.Reflection.TypeAttributes GetAttributeFlagsImpl() => throw null; protected override System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; public override System.Reflection.ConstructorInfo[] GetConstructors(System.Reflection.BindingFlags bindingAttr) => throw null; - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override System.Type GetElementType() => throw null; public override System.Type GetEnumUnderlyingType() => throw null; public override System.Reflection.EventInfo GetEvent(string name, System.Reflection.BindingFlags bindingAttr) => throw null; @@ -115,6 +110,7 @@ namespace System public override System.Type[] GetNestedTypes(System.Reflection.BindingFlags bindingAttr) => throw null; public override System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr) => throw null; protected override System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public override System.Guid GUID { get => throw null; } protected override bool HasElementTypeImpl() => throw null; public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters) => throw null; protected override bool IsArrayImpl() => throw null; @@ -137,31 +133,29 @@ namespace System public override string Name { get => throw null; } public override string Namespace { get => throw null; } public override System.Type ReflectedType { get => throw null; } - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; public override System.RuntimeTypeHandle TypeHandle { get => throw null; } public System.Reflection.Emit.FieldBuilder UnderlyingField { get => throw null; } public override System.Type UnderlyingSystemType { get => throw null; } } - - public class EventBuilder + public sealed class EventBuilder { public void AddOtherMethod(System.Reflection.Emit.MethodBuilder mdBuilder) => throw null; public void SetAddOnMethod(System.Reflection.Emit.MethodBuilder mdBuilder) => throw null; - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; public void SetRaiseMethod(System.Reflection.Emit.MethodBuilder mdBuilder) => throw null; public void SetRemoveOnMethod(System.Reflection.Emit.MethodBuilder mdBuilder) => throw null; } - - public class FieldBuilder : System.Reflection.FieldInfo + public sealed class FieldBuilder : System.Reflection.FieldInfo { public override System.Reflection.FieldAttributes Attributes { get => throw null; } public override System.Type DeclaringType { get => throw null; } public override System.RuntimeFieldHandle FieldHandle { get => throw null; } public override System.Type FieldType { get => throw null; } - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object GetValue(object obj) => throw null; public override bool IsDefined(System.Type attributeType, bool inherit) => throw null; public override int MetadataToken { get => throw null; } @@ -169,13 +163,12 @@ namespace System public override string Name { get => throw null; } public override System.Type ReflectedType { get => throw null; } public void SetConstant(object defaultValue) => throw null; - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; public void SetOffset(int iOffset) => throw null; public override void SetValue(object obj, object val, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Globalization.CultureInfo culture) => throw null; } - - public class GenericTypeParameterBuilder : System.Reflection.TypeInfo + public sealed class GenericTypeParameterBuilder : System.Reflection.TypeInfo { public override System.Reflection.Assembly Assembly { get => throw null; } public override string AssemblyQualifiedName { get => throw null; } @@ -185,14 +178,13 @@ namespace System public override System.Type DeclaringType { get => throw null; } public override bool Equals(object o) => throw null; public override string FullName { get => throw null; } - public override System.Guid GUID { get => throw null; } public override System.Reflection.GenericParameterAttributes GenericParameterAttributes { get => throw null; } public override int GenericParameterPosition { get => throw null; } protected override System.Reflection.TypeAttributes GetAttributeFlagsImpl() => throw null; protected override System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; public override System.Reflection.ConstructorInfo[] GetConstructors(System.Reflection.BindingFlags bindingAttr) => throw null; - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override System.Type GetElementType() => throw null; public override System.Reflection.EventInfo GetEvent(string name, System.Reflection.BindingFlags bindingAttr) => throw null; public override System.Reflection.EventInfo[] GetEvents() => throw null; @@ -213,11 +205,12 @@ namespace System public override System.Type[] GetNestedTypes(System.Reflection.BindingFlags bindingAttr) => throw null; public override System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr) => throw null; protected override System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public override System.Guid GUID { get => throw null; } protected override bool HasElementTypeImpl() => throw null; public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters) => throw null; protected override bool IsArrayImpl() => throw null; - public override bool IsAssignableFrom(System.Type c) => throw null; public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo) => throw null; + public override bool IsAssignableFrom(System.Type c) => throw null; protected override bool IsByRefImpl() => throw null; public override bool IsByRefLike { get => throw null; } protected override bool IsCOMObjectImpl() => throw null; @@ -228,8 +221,8 @@ namespace System public override bool IsGenericTypeDefinition { get => throw null; } protected override bool IsPointerImpl() => throw null; protected override bool IsPrimitiveImpl() => throw null; - public override bool IsSZArray { get => throw null; } public override bool IsSubclassOf(System.Type c) => throw null; + public override bool IsSZArray { get => throw null; } public override bool IsTypeDefinition { get => throw null; } protected override bool IsValueTypeImpl() => throw null; public override System.Type MakeArrayType() => throw null; @@ -243,7 +236,7 @@ namespace System public override string Namespace { get => throw null; } public override System.Type ReflectedType { get => throw null; } public void SetBaseTypeConstraint(System.Type baseTypeConstraint) => throw null; - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; public void SetGenericParameterAttributes(System.Reflection.GenericParameterAttributes genericParameterAttributes) => throw null; public void SetInterfaceConstraints(params System.Type[] interfaceConstraints) => throw null; @@ -251,8 +244,7 @@ namespace System public override System.RuntimeTypeHandle TypeHandle { get => throw null; } public override System.Type UnderlyingSystemType { get => throw null; } } - - public class MethodBuilder : System.Reflection.MethodInfo + public sealed class MethodBuilder : System.Reflection.MethodInfo { public override System.Reflection.MethodAttributes Attributes { get => throw null; } public override System.Reflection.CallingConventions CallingConvention { get => throw null; } @@ -262,8 +254,8 @@ namespace System public System.Reflection.Emit.ParameterBuilder DefineParameter(int position, System.Reflection.ParameterAttributes attributes, string strParamName) => throw null; public override bool Equals(object obj) => throw null; public override System.Reflection.MethodInfo GetBaseDefinition() => throw null; - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override System.Type[] GetGenericArguments() => throw null; public override System.Reflection.MethodInfo GetGenericMethodDefinition() => throw null; public override int GetHashCode() => throw null; @@ -271,7 +263,7 @@ namespace System public System.Reflection.Emit.ILGenerator GetILGenerator(int size) => throw null; public override System.Reflection.MethodImplAttributes GetMethodImplementationFlags() => throw null; public override System.Reflection.ParameterInfo[] GetParameters() => throw null; - public bool InitLocals { get => throw null; set => throw null; } + public bool InitLocals { get => throw null; set { } } public override object Invoke(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture) => throw null; public override bool IsDefined(System.Type attributeType, bool inherit) => throw null; public override bool IsGenericMethod { get => throw null; } @@ -288,7 +280,7 @@ namespace System public override System.Reflection.ParameterInfo ReturnParameter { get => throw null; } public override System.Type ReturnType { get => throw null; } public override System.Reflection.ICustomAttributeProvider ReturnTypeCustomAttributes { get => throw null; } - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; public void SetImplementationFlags(System.Reflection.MethodImplAttributes attributes) => throw null; public void SetParameters(params System.Type[] parameterTypes) => throw null; @@ -296,7 +288,6 @@ namespace System public void SetSignature(System.Type returnType, System.Type[] returnTypeRequiredCustomModifiers, System.Type[] returnTypeOptionalCustomModifiers, System.Type[] parameterTypes, System.Type[][] parameterTypeRequiredCustomModifiers, System.Type[][] parameterTypeOptionalCustomModifiers) => throw null; public override string ToString() => throw null; } - public class ModuleBuilder : System.Reflection.Module { public override System.Reflection.Assembly Assembly { get => throw null; } @@ -305,22 +296,22 @@ namespace System public System.Reflection.Emit.MethodBuilder DefineGlobalMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes) => throw null; public System.Reflection.Emit.MethodBuilder DefineGlobalMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] requiredReturnTypeCustomModifiers, System.Type[] optionalReturnTypeCustomModifiers, System.Type[] parameterTypes, System.Type[][] requiredParameterTypeCustomModifiers, System.Type[][] optionalParameterTypeCustomModifiers) => throw null; public System.Reflection.Emit.MethodBuilder DefineGlobalMethod(string name, System.Reflection.MethodAttributes attributes, System.Type returnType, System.Type[] parameterTypes) => throw null; - public System.Reflection.Emit.FieldBuilder DefineInitializedData(string name, System.Byte[] data, System.Reflection.FieldAttributes attributes) => throw null; + public System.Reflection.Emit.FieldBuilder DefineInitializedData(string name, byte[] data, System.Reflection.FieldAttributes attributes) => throw null; public System.Reflection.Emit.MethodBuilder DefinePInvokeMethod(string name, string dllName, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Runtime.InteropServices.CallingConvention nativeCallConv, System.Runtime.InteropServices.CharSet nativeCharSet) => throw null; public System.Reflection.Emit.MethodBuilder DefinePInvokeMethod(string name, string dllName, string entryName, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Runtime.InteropServices.CallingConvention nativeCallConv, System.Runtime.InteropServices.CharSet nativeCharSet) => throw null; public System.Reflection.Emit.TypeBuilder DefineType(string name) => throw null; public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr) => throw null; public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent) => throw null; + public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent, int typesize) => throw null; public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Reflection.Emit.PackingSize packsize) => throw null; public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Reflection.Emit.PackingSize packingSize, int typesize) => throw null; public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Type[] interfaces) => throw null; - public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent, int typesize) => throw null; public System.Reflection.Emit.FieldBuilder DefineUninitializedData(string name, int size, System.Reflection.FieldAttributes attributes) => throw null; public override bool Equals(object obj) => throw null; public override string FullyQualifiedName { get => throw null; } public System.Reflection.MethodInfo GetArrayMethod(System.Type arrayClass, string methodName, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes) => throw null; - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override System.Collections.Generic.IList GetCustomAttributesData() => throw null; public override System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) => throw null; public override System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingFlags) => throw null; @@ -341,15 +332,14 @@ namespace System public override System.Reflection.FieldInfo ResolveField(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; public override System.Reflection.MemberInfo ResolveMember(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; public override System.Reflection.MethodBase ResolveMethod(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; - public override System.Byte[] ResolveSignature(int metadataToken) => throw null; + public override byte[] ResolveSignature(int metadataToken) => throw null; public override string ResolveString(int metadataToken) => throw null; public override System.Type ResolveType(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; public override string ScopeName { get => throw null; } - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; } - - public class PropertyBuilder : System.Reflection.PropertyInfo + public sealed class PropertyBuilder : System.Reflection.PropertyInfo { public void AddOtherMethod(System.Reflection.Emit.MethodBuilder mdBuilder) => throw null; public override System.Reflection.PropertyAttributes Attributes { get => throw null; } @@ -357,28 +347,27 @@ namespace System public override bool CanWrite { get => throw null; } public override System.Type DeclaringType { get => throw null; } public override System.Reflection.MethodInfo[] GetAccessors(bool nonPublic) => throw null; - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override System.Reflection.MethodInfo GetGetMethod(bool nonPublic) => throw null; public override System.Reflection.ParameterInfo[] GetIndexParameters() => throw null; public override System.Reflection.MethodInfo GetSetMethod(bool nonPublic) => throw null; - public override object GetValue(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture) => throw null; public override object GetValue(object obj, object[] index) => throw null; + public override object GetValue(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture) => throw null; public override bool IsDefined(System.Type attributeType, bool inherit) => throw null; public override System.Reflection.Module Module { get => throw null; } public override string Name { get => throw null; } public override System.Type PropertyType { get => throw null; } public override System.Type ReflectedType { get => throw null; } public void SetConstant(object defaultValue) => throw null; - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; public void SetGetMethod(System.Reflection.Emit.MethodBuilder mdBuilder) => throw null; public void SetSetMethod(System.Reflection.Emit.MethodBuilder mdBuilder) => throw null; - public override void SetValue(object obj, object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture) => throw null; public override void SetValue(object obj, object value, object[] index) => throw null; + public override void SetValue(object obj, object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture) => throw null; } - - public class TypeBuilder : System.Reflection.TypeInfo + public sealed class TypeBuilder : System.Reflection.TypeInfo { public void AddInterfaceImplementation(System.Type interfaceType) => throw null; public override System.Reflection.Assembly Assembly { get => throw null; } @@ -395,7 +384,7 @@ namespace System public System.Reflection.Emit.FieldBuilder DefineField(string fieldName, System.Type type, System.Reflection.FieldAttributes attributes) => throw null; public System.Reflection.Emit.FieldBuilder DefineField(string fieldName, System.Type type, System.Type[] requiredCustomModifiers, System.Type[] optionalCustomModifiers, System.Reflection.FieldAttributes attributes) => throw null; public System.Reflection.Emit.GenericTypeParameterBuilder[] DefineGenericParameters(params string[] names) => throw null; - public System.Reflection.Emit.FieldBuilder DefineInitializedData(string name, System.Byte[] data, System.Reflection.FieldAttributes attributes) => throw null; + public System.Reflection.Emit.FieldBuilder DefineInitializedData(string name, byte[] data, System.Reflection.FieldAttributes attributes) => throw null; public System.Reflection.Emit.MethodBuilder DefineMethod(string name, System.Reflection.MethodAttributes attributes) => throw null; public System.Reflection.Emit.MethodBuilder DefineMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention) => throw null; public System.Reflection.Emit.MethodBuilder DefineMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes) => throw null; @@ -405,10 +394,10 @@ namespace System public System.Reflection.Emit.TypeBuilder DefineNestedType(string name) => throw null; public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr) => throw null; public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent) => throw null; + public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent, int typeSize) => throw null; public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Reflection.Emit.PackingSize packSize) => throw null; public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Reflection.Emit.PackingSize packSize, int typeSize) => throw null; public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Type[] interfaces) => throw null; - public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent, int typeSize) => throw null; public System.Reflection.Emit.MethodBuilder DefinePInvokeMethod(string name, string dllName, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Runtime.InteropServices.CallingConvention nativeCallConv, System.Runtime.InteropServices.CharSet nativeCharSet) => throw null; public System.Reflection.Emit.MethodBuilder DefinePInvokeMethod(string name, string dllName, string entryName, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Runtime.InteropServices.CallingConvention nativeCallConv, System.Runtime.InteropServices.CharSet nativeCharSet) => throw null; public System.Reflection.Emit.MethodBuilder DefinePInvokeMethod(string name, string dllName, string entryName, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] returnTypeRequiredCustomModifiers, System.Type[] returnTypeOptionalCustomModifiers, System.Type[] parameterTypes, System.Type[][] parameterTypeRequiredCustomModifiers, System.Type[][] parameterTypeOptionalCustomModifiers, System.Runtime.InteropServices.CallingConvention nativeCallConv, System.Runtime.InteropServices.CharSet nativeCharSet) => throw null; @@ -419,21 +408,20 @@ namespace System public System.Reflection.Emit.ConstructorBuilder DefineTypeInitializer() => throw null; public System.Reflection.Emit.FieldBuilder DefineUninitializedData(string name, int size, System.Reflection.FieldAttributes attributes) => throw null; public override string FullName { get => throw null; } - public override System.Guid GUID { get => throw null; } public override System.Reflection.GenericParameterAttributes GenericParameterAttributes { get => throw null; } public override int GenericParameterPosition { get => throw null; } protected override System.Reflection.TypeAttributes GetAttributeFlagsImpl() => throw null; public static System.Reflection.ConstructorInfo GetConstructor(System.Type type, System.Reflection.ConstructorInfo constructor) => throw null; protected override System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; public override System.Reflection.ConstructorInfo[] GetConstructors(System.Reflection.BindingFlags bindingAttr) => throw null; - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override System.Type GetElementType() => throw null; public override System.Reflection.EventInfo GetEvent(string name, System.Reflection.BindingFlags bindingAttr) => throw null; public override System.Reflection.EventInfo[] GetEvents() => throw null; public override System.Reflection.EventInfo[] GetEvents(System.Reflection.BindingFlags bindingAttr) => throw null; - public static System.Reflection.FieldInfo GetField(System.Type type, System.Reflection.FieldInfo field) => throw null; public override System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) => throw null; + public static System.Reflection.FieldInfo GetField(System.Type type, System.Reflection.FieldInfo field) => throw null; public override System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingAttr) => throw null; public override System.Type[] GetGenericArguments() => throw null; public override System.Type GetGenericTypeDefinition() => throw null; @@ -449,11 +437,12 @@ namespace System public override System.Type[] GetNestedTypes(System.Reflection.BindingFlags bindingAttr) => throw null; public override System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr) => throw null; protected override System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public override System.Guid GUID { get => throw null; } protected override bool HasElementTypeImpl() => throw null; public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters) => throw null; protected override bool IsArrayImpl() => throw null; - public override bool IsAssignableFrom(System.Type c) => throw null; public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo) => throw null; + public override bool IsAssignableFrom(System.Type c) => throw null; protected override bool IsByRefImpl() => throw null; public override bool IsByRefLike { get => throw null; } protected override bool IsCOMObjectImpl() => throw null; @@ -465,11 +454,11 @@ namespace System public override bool IsGenericTypeDefinition { get => throw null; } protected override bool IsPointerImpl() => throw null; protected override bool IsPrimitiveImpl() => throw null; - public override bool IsSZArray { get => throw null; } public override bool IsSecurityCritical { get => throw null; } public override bool IsSecuritySafeCritical { get => throw null; } public override bool IsSecurityTransparent { get => throw null; } public override bool IsSubclassOf(System.Type c) => throw null; + public override bool IsSZArray { get => throw null; } public override bool IsTypeDefinition { get => throw null; } public override System.Type MakeArrayType() => throw null; public override System.Type MakeArrayType(int rank) => throw null; @@ -482,16 +471,15 @@ namespace System public override string Namespace { get => throw null; } public System.Reflection.Emit.PackingSize PackingSize { get => throw null; } public override System.Type ReflectedType { get => throw null; } - public void SetCustomAttribute(System.Reflection.ConstructorInfo con, System.Byte[] binaryAttribute) => throw null; + public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) => throw null; public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; public void SetParent(System.Type parent) => throw null; public int Size { get => throw null; } public override string ToString() => throw null; public override System.RuntimeTypeHandle TypeHandle { get => throw null; } public override System.Type UnderlyingSystemType { get => throw null; } - public const int UnspecifiedTypeSize = default; + public static int UnspecifiedTypeSize; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs new file mode 100644 index 00000000000..ae4c23ab884 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Reflection.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs index 7b3a400c18d..4f7b0de1d4a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs @@ -1,102 +1,59 @@ // This file contains auto-generated code. // Generated from `System.Reflection.Metadata, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Reflection { [System.Flags] - public enum AssemblyFlags : int + public enum AssemblyFlags { - ContentTypeMask = 3584, - DisableJitCompileOptimizer = 16384, - EnableJitCompileTracking = 32768, PublicKey = 1, Retargetable = 256, WindowsRuntime = 512, + ContentTypeMask = 3584, + DisableJitCompileOptimizer = 16384, + EnableJitCompileTracking = 32768, } - - public enum AssemblyHashAlgorithm : int + public enum AssemblyHashAlgorithm { - MD5 = 32771, None = 0, + MD5 = 32771, Sha1 = 32772, Sha256 = 32780, Sha384 = 32781, Sha512 = 32782, } - public enum DeclarativeSecurityAction : short { - Assert = 3, - Demand = 2, - Deny = 4, - InheritanceDemand = 7, - LinkDemand = 6, None = 0, + Demand = 2, + Assert = 3, + Deny = 4, PermitOnly = 5, + LinkDemand = 6, + InheritanceDemand = 7, RequestMinimum = 8, RequestOptional = 9, RequestRefuse = 10, } - [System.Flags] - public enum ManifestResourceAttributes : int + public enum ManifestResourceAttributes { - Private = 2, Public = 1, + Private = 2, VisibilityMask = 7, } - - [System.Flags] - public enum MethodImportAttributes : short - { - BestFitMappingDisable = 32, - BestFitMappingEnable = 16, - BestFitMappingMask = 48, - CallingConventionCDecl = 512, - CallingConventionFastCall = 1280, - CallingConventionMask = 1792, - CallingConventionStdCall = 768, - CallingConventionThisCall = 1024, - CallingConventionWinApi = 256, - CharSetAnsi = 2, - CharSetAuto = 6, - CharSetMask = 6, - CharSetUnicode = 4, - ExactSpelling = 1, - None = 0, - SetLastError = 64, - ThrowOnUnmappableCharDisable = 8192, - ThrowOnUnmappableCharEnable = 4096, - ThrowOnUnmappableCharMask = 12288, - } - - [System.Flags] - public enum MethodSemanticsAttributes : int - { - Adder = 8, - Getter = 2, - Other = 4, - Raiser = 32, - Remover = 16, - Setter = 1, - } - namespace Metadata { public struct ArrayShape { - // Stub generator skipped constructor public ArrayShape(int rank, System.Collections.Immutable.ImmutableArray sizes, System.Collections.Immutable.ImmutableArray lowerBounds) => throw null; public System.Collections.Immutable.ImmutableArray LowerBounds { get => throw null; } public int Rank { get => throw null; } public System.Collections.Immutable.ImmutableArray Sizes { get => throw null; } } - public struct AssemblyDefinition { - // Stub generator skipped constructor public System.Reflection.Metadata.StringHandle Culture { get => throw null; } public System.Reflection.AssemblyFlags Flags { get => throw null; } public System.Reflection.AssemblyName GetAssemblyName() => throw null; @@ -107,69 +64,56 @@ namespace System public System.Reflection.Metadata.BlobHandle PublicKey { get => throw null; } public System.Version Version { get => throw null; } } - public struct AssemblyDefinitionHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.AssemblyDefinitionHandle left, System.Reflection.Metadata.AssemblyDefinitionHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.AssemblyDefinitionHandle left, System.Reflection.Metadata.AssemblyDefinitionHandle right) => throw null; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.AssemblyDefinitionHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.AssemblyDefinitionHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.AssemblyDefinitionHandle left, System.Reflection.Metadata.AssemblyDefinitionHandle right) => throw null; public static explicit operator System.Reflection.Metadata.AssemblyDefinitionHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.AssemblyDefinitionHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.AssemblyDefinitionHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.AssemblyDefinitionHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.AssemblyDefinitionHandle left, System.Reflection.Metadata.AssemblyDefinitionHandle right) => throw null; } - public struct AssemblyFile { - // Stub generator skipped constructor public bool ContainsMetadata { get => throw null; } public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.BlobHandle HashValue { get => throw null; } public System.Reflection.Metadata.StringHandle Name { get => throw null; } } - public struct AssemblyFileHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.AssemblyFileHandle left, System.Reflection.Metadata.AssemblyFileHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.AssemblyFileHandle left, System.Reflection.Metadata.AssemblyFileHandle right) => throw null; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.AssemblyFileHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.AssemblyFileHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.AssemblyFileHandle left, System.Reflection.Metadata.AssemblyFileHandle right) => throw null; public static explicit operator System.Reflection.Metadata.AssemblyFileHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.AssemblyFileHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.AssemblyFileHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.AssemblyFileHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.AssemblyFileHandle left, System.Reflection.Metadata.AssemblyFileHandle right) => throw null; } - - public struct AssemblyFileHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct AssemblyFileHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.AssemblyFileHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - // Stub generator skipped constructor - public int Count { get => throw null; } public System.Reflection.Metadata.AssemblyFileHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct AssemblyReference { - // Stub generator skipped constructor public System.Reflection.Metadata.StringHandle Culture { get => throw null; } public System.Reflection.AssemblyFlags Flags { get => throw null; } public System.Reflection.AssemblyName GetAssemblyName() => throw null; @@ -179,55 +123,46 @@ namespace System public System.Reflection.Metadata.BlobHandle PublicKeyOrToken { get => throw null; } public System.Version Version { get => throw null; } } - public struct AssemblyReferenceHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.AssemblyReferenceHandle left, System.Reflection.Metadata.AssemblyReferenceHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.AssemblyReferenceHandle left, System.Reflection.Metadata.AssemblyReferenceHandle right) => throw null; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.AssemblyReferenceHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.AssemblyReferenceHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.AssemblyReferenceHandle left, System.Reflection.Metadata.AssemblyReferenceHandle right) => throw null; public static explicit operator System.Reflection.Metadata.AssemblyReferenceHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.AssemblyReferenceHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.AssemblyReferenceHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.AssemblyReferenceHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.AssemblyReferenceHandle left, System.Reflection.Metadata.AssemblyReferenceHandle right) => throw null; } - - public struct AssemblyReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct AssemblyReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.AssemblyReferenceHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - // Stub generator skipped constructor - public int Count { get => throw null; } public System.Reflection.Metadata.AssemblyReferenceHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct Blob { - // Stub generator skipped constructor - public System.ArraySegment GetBytes() => throw null; + public System.ArraySegment GetBytes() => throw null; public bool IsDefault { get => throw null; } public int Length { get => throw null; } } - public class BlobBuilder { - public struct Blobs : System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerable, System.Collections.IEnumerator, System.IDisposable + public void Align(int alignment) => throw null; + protected virtual System.Reflection.Metadata.BlobBuilder AllocateChunk(int minimalSize) => throw null; + public struct Blobs : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { - // Stub generator skipped constructor public System.Reflection.Metadata.Blob Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; @@ -237,15 +172,11 @@ namespace System public bool MoveNext() => throw null; public void Reset() => throw null; } - - - public void Align(int alignment) => throw null; - protected virtual System.Reflection.Metadata.BlobBuilder AllocateChunk(int minimalSize) => throw null; - public BlobBuilder(int capacity = default(int)) => throw null; - protected internal int ChunkCapacity { get => throw null; } + protected int ChunkCapacity { get => throw null; } public void Clear() => throw null; public bool ContentEquals(System.Reflection.Metadata.BlobBuilder other) => throw null; public int Count { get => throw null; } + public BlobBuilder(int capacity = default(int)) => throw null; protected void Free() => throw null; protected int FreeBytes { get => throw null; } protected virtual void FreeChunk() => throw null; @@ -254,523 +185,1039 @@ namespace System public void LinkSuffix(System.Reflection.Metadata.BlobBuilder suffix) => throw null; public void PadTo(int position) => throw null; public System.Reflection.Metadata.Blob ReserveBytes(int byteCount) => throw null; - public System.Byte[] ToArray() => throw null; - public System.Byte[] ToArray(int start, int byteCount) => throw null; - public System.Collections.Immutable.ImmutableArray ToImmutableArray() => throw null; - public System.Collections.Immutable.ImmutableArray ToImmutableArray(int start, int byteCount) => throw null; + public byte[] ToArray() => throw null; + public byte[] ToArray(int start, int byteCount) => throw null; + public System.Collections.Immutable.ImmutableArray ToImmutableArray() => throw null; + public System.Collections.Immutable.ImmutableArray ToImmutableArray(int start, int byteCount) => throw null; public int TryWriteBytes(System.IO.Stream source, int byteCount) => throw null; public void WriteBoolean(bool value) => throw null; - public void WriteByte(System.Byte value) => throw null; - public void WriteBytes(System.Byte[] buffer) => throw null; - public void WriteBytes(System.Byte[] buffer, int start, int byteCount) => throw null; - public void WriteBytes(System.Collections.Immutable.ImmutableArray buffer) => throw null; - public void WriteBytes(System.Collections.Immutable.ImmutableArray buffer, int start, int byteCount) => throw null; - unsafe public void WriteBytes(System.Byte* buffer, int byteCount) => throw null; - public void WriteBytes(System.Byte value, int byteCount) => throw null; + public void WriteByte(byte value) => throw null; + public unsafe void WriteBytes(byte* buffer, int byteCount) => throw null; + public void WriteBytes(byte value, int byteCount) => throw null; + public void WriteBytes(byte[] buffer) => throw null; + public void WriteBytes(byte[] buffer, int start, int byteCount) => throw null; + public void WriteBytes(System.Collections.Immutable.ImmutableArray buffer) => throw null; + public void WriteBytes(System.Collections.Immutable.ImmutableArray buffer, int start, int byteCount) => throw null; public void WriteCompressedInteger(int value) => throw null; public void WriteCompressedSignedInteger(int value) => throw null; public void WriteConstant(object value) => throw null; - public void WriteContentTo(System.Reflection.Metadata.BlobBuilder destination) => throw null; public void WriteContentTo(System.IO.Stream destination) => throw null; + public void WriteContentTo(System.Reflection.Metadata.BlobBuilder destination) => throw null; public void WriteContentTo(ref System.Reflection.Metadata.BlobWriter destination) => throw null; public void WriteDateTime(System.DateTime value) => throw null; - public void WriteDecimal(System.Decimal value) => throw null; + public void WriteDecimal(decimal value) => throw null; public void WriteDouble(double value) => throw null; public void WriteGuid(System.Guid value) => throw null; - public void WriteInt16(System.Int16 value) => throw null; - public void WriteInt16BE(System.Int16 value) => throw null; + public void WriteInt16(short value) => throw null; + public void WriteInt16BE(short value) => throw null; public void WriteInt32(int value) => throw null; public void WriteInt32BE(int value) => throw null; - public void WriteInt64(System.Int64 value) => throw null; + public void WriteInt64(long value) => throw null; public void WriteReference(int reference, bool isSmall) => throw null; - public void WriteSByte(System.SByte value) => throw null; + public void WriteSByte(sbyte value) => throw null; public void WriteSerializedString(string value) => throw null; public void WriteSingle(float value) => throw null; - public void WriteUInt16(System.UInt16 value) => throw null; - public void WriteUInt16BE(System.UInt16 value) => throw null; - public void WriteUInt32(System.UInt32 value) => throw null; - public void WriteUInt32BE(System.UInt32 value) => throw null; - public void WriteUInt64(System.UInt64 value) => throw null; - public void WriteUTF16(System.Char[] value) => throw null; + public void WriteUInt16(ushort value) => throw null; + public void WriteUInt16BE(ushort value) => throw null; + public void WriteUInt32(uint value) => throw null; + public void WriteUInt32BE(uint value) => throw null; + public void WriteUInt64(ulong value) => throw null; + public void WriteUserString(string value) => throw null; + public void WriteUTF16(char[] value) => throw null; public void WriteUTF16(string value) => throw null; public void WriteUTF8(string value, bool allowUnpairedSurrogates = default(bool)) => throw null; - public void WriteUserString(string value) => throw null; } - public struct BlobContentId : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.BlobContentId left, System.Reflection.Metadata.BlobContentId right) => throw null; - public static bool operator ==(System.Reflection.Metadata.BlobContentId left, System.Reflection.Metadata.BlobContentId right) => throw null; - // Stub generator skipped constructor - public BlobContentId(System.Byte[] id) => throw null; - public BlobContentId(System.Guid guid, System.UInt32 stamp) => throw null; - public BlobContentId(System.Collections.Immutable.ImmutableArray id) => throw null; - public bool Equals(System.Reflection.Metadata.BlobContentId other) => throw null; + public BlobContentId(byte[] id) => throw null; + public BlobContentId(System.Collections.Immutable.ImmutableArray id) => throw null; + public BlobContentId(System.Guid guid, uint stamp) => throw null; public override bool Equals(object obj) => throw null; - public static System.Reflection.Metadata.BlobContentId FromHash(System.Byte[] hashCode) => throw null; - public static System.Reflection.Metadata.BlobContentId FromHash(System.Collections.Immutable.ImmutableArray hashCode) => throw null; + public bool Equals(System.Reflection.Metadata.BlobContentId other) => throw null; + public static System.Reflection.Metadata.BlobContentId FromHash(byte[] hashCode) => throw null; + public static System.Reflection.Metadata.BlobContentId FromHash(System.Collections.Immutable.ImmutableArray hashCode) => throw null; public override int GetHashCode() => throw null; public static System.Func, System.Reflection.Metadata.BlobContentId> GetTimeBasedProvider() => throw null; public System.Guid Guid { get => throw null; } public bool IsDefault { get => throw null; } - public System.UInt32 Stamp { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.BlobContentId left, System.Reflection.Metadata.BlobContentId right) => throw null; + public static bool operator !=(System.Reflection.Metadata.BlobContentId left, System.Reflection.Metadata.BlobContentId right) => throw null; + public uint Stamp { get => throw null; } } - public struct BlobHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.BlobHandle left, System.Reflection.Metadata.BlobHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.BlobHandle left, System.Reflection.Metadata.BlobHandle right) => throw null; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.BlobHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.BlobHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.BlobHandle left, System.Reflection.Metadata.BlobHandle right) => throw null; public static explicit operator System.Reflection.Metadata.BlobHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.BlobHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.BlobHandle left, System.Reflection.Metadata.BlobHandle right) => throw null; } - public struct BlobReader { - public void Align(System.Byte alignment) => throw null; - // Stub generator skipped constructor - unsafe public BlobReader(System.Byte* buffer, int length) => throw null; - unsafe public System.Byte* CurrentPointer { get => throw null; } - public int IndexOf(System.Byte value) => throw null; + public void Align(byte alignment) => throw null; + public unsafe BlobReader(byte* buffer, int length) => throw null; + public unsafe byte* CurrentPointer { get => throw null; } + public int IndexOf(byte value) => throw null; public int Length { get => throw null; } - public int Offset { get => throw null; set => throw null; } + public int Offset { get => throw null; set { } } public System.Reflection.Metadata.BlobHandle ReadBlobHandle() => throw null; public bool ReadBoolean() => throw null; - public System.Byte ReadByte() => throw null; - public System.Byte[] ReadBytes(int byteCount) => throw null; - public void ReadBytes(int byteCount, System.Byte[] buffer, int bufferOffset) => throw null; - public System.Char ReadChar() => throw null; + public byte ReadByte() => throw null; + public byte[] ReadBytes(int byteCount) => throw null; + public void ReadBytes(int byteCount, byte[] buffer, int bufferOffset) => throw null; + public char ReadChar() => throw null; public int ReadCompressedInteger() => throw null; public int ReadCompressedSignedInteger() => throw null; public object ReadConstant(System.Reflection.Metadata.ConstantTypeCode typeCode) => throw null; public System.DateTime ReadDateTime() => throw null; - public System.Decimal ReadDecimal() => throw null; + public decimal ReadDecimal() => throw null; public double ReadDouble() => throw null; public System.Guid ReadGuid() => throw null; - public System.Int16 ReadInt16() => throw null; + public short ReadInt16() => throw null; public int ReadInt32() => throw null; - public System.Int64 ReadInt64() => throw null; - public System.SByte ReadSByte() => throw null; + public long ReadInt64() => throw null; + public sbyte ReadSByte() => throw null; public System.Reflection.Metadata.SerializationTypeCode ReadSerializationTypeCode() => throw null; public string ReadSerializedString() => throw null; public System.Reflection.Metadata.SignatureHeader ReadSignatureHeader() => throw null; public System.Reflection.Metadata.SignatureTypeCode ReadSignatureTypeCode() => throw null; public float ReadSingle() => throw null; public System.Reflection.Metadata.EntityHandle ReadTypeHandle() => throw null; - public System.UInt16 ReadUInt16() => throw null; - public System.UInt32 ReadUInt32() => throw null; - public System.UInt64 ReadUInt64() => throw null; + public ushort ReadUInt16() => throw null; + public uint ReadUInt32() => throw null; + public ulong ReadUInt64() => throw null; public string ReadUTF16(int byteCount) => throw null; public string ReadUTF8(int byteCount) => throw null; public int RemainingBytes { get => throw null; } public void Reset() => throw null; - unsafe public System.Byte* StartPointer { get => throw null; } + public unsafe byte* StartPointer { get => throw null; } public bool TryReadCompressedInteger(out int value) => throw null; public bool TryReadCompressedSignedInteger(out int value) => throw null; } - public struct BlobWriter { public void Align(int alignment) => throw null; public System.Reflection.Metadata.Blob Blob { get => throw null; } - // Stub generator skipped constructor - public BlobWriter(System.Reflection.Metadata.Blob blob) => throw null; - public BlobWriter(System.Byte[] buffer) => throw null; - public BlobWriter(System.Byte[] buffer, int start, int count) => throw null; - public BlobWriter(int size) => throw null; public void Clear() => throw null; public bool ContentEquals(System.Reflection.Metadata.BlobWriter other) => throw null; + public BlobWriter(byte[] buffer) => throw null; + public BlobWriter(byte[] buffer, int start, int count) => throw null; + public BlobWriter(int size) => throw null; + public BlobWriter(System.Reflection.Metadata.Blob blob) => throw null; public int Length { get => throw null; } - public int Offset { get => throw null; set => throw null; } + public int Offset { get => throw null; set { } } public void PadTo(int offset) => throw null; public int RemainingBytes { get => throw null; } - public System.Byte[] ToArray() => throw null; - public System.Byte[] ToArray(int start, int byteCount) => throw null; - public System.Collections.Immutable.ImmutableArray ToImmutableArray() => throw null; - public System.Collections.Immutable.ImmutableArray ToImmutableArray(int start, int byteCount) => throw null; + public byte[] ToArray() => throw null; + public byte[] ToArray(int start, int byteCount) => throw null; + public System.Collections.Immutable.ImmutableArray ToImmutableArray() => throw null; + public System.Collections.Immutable.ImmutableArray ToImmutableArray(int start, int byteCount) => throw null; public void WriteBoolean(bool value) => throw null; - public void WriteByte(System.Byte value) => throw null; - public void WriteBytes(System.Reflection.Metadata.BlobBuilder source) => throw null; - public void WriteBytes(System.Byte[] buffer) => throw null; - public void WriteBytes(System.Byte[] buffer, int start, int byteCount) => throw null; - public void WriteBytes(System.Collections.Immutable.ImmutableArray buffer) => throw null; - public void WriteBytes(System.Collections.Immutable.ImmutableArray buffer, int start, int byteCount) => throw null; + public void WriteByte(byte value) => throw null; + public unsafe void WriteBytes(byte* buffer, int byteCount) => throw null; + public void WriteBytes(byte value, int byteCount) => throw null; + public void WriteBytes(byte[] buffer) => throw null; + public void WriteBytes(byte[] buffer, int start, int byteCount) => throw null; + public void WriteBytes(System.Collections.Immutable.ImmutableArray buffer) => throw null; + public void WriteBytes(System.Collections.Immutable.ImmutableArray buffer, int start, int byteCount) => throw null; public int WriteBytes(System.IO.Stream source, int byteCount) => throw null; - unsafe public void WriteBytes(System.Byte* buffer, int byteCount) => throw null; - public void WriteBytes(System.Byte value, int byteCount) => throw null; + public void WriteBytes(System.Reflection.Metadata.BlobBuilder source) => throw null; public void WriteCompressedInteger(int value) => throw null; public void WriteCompressedSignedInteger(int value) => throw null; public void WriteConstant(object value) => throw null; public void WriteDateTime(System.DateTime value) => throw null; - public void WriteDecimal(System.Decimal value) => throw null; + public void WriteDecimal(decimal value) => throw null; public void WriteDouble(double value) => throw null; public void WriteGuid(System.Guid value) => throw null; - public void WriteInt16(System.Int16 value) => throw null; - public void WriteInt16BE(System.Int16 value) => throw null; + public void WriteInt16(short value) => throw null; + public void WriteInt16BE(short value) => throw null; public void WriteInt32(int value) => throw null; public void WriteInt32BE(int value) => throw null; - public void WriteInt64(System.Int64 value) => throw null; + public void WriteInt64(long value) => throw null; public void WriteReference(int reference, bool isSmall) => throw null; - public void WriteSByte(System.SByte value) => throw null; + public void WriteSByte(sbyte value) => throw null; public void WriteSerializedString(string str) => throw null; public void WriteSingle(float value) => throw null; - public void WriteUInt16(System.UInt16 value) => throw null; - public void WriteUInt16BE(System.UInt16 value) => throw null; - public void WriteUInt32(System.UInt32 value) => throw null; - public void WriteUInt32BE(System.UInt32 value) => throw null; - public void WriteUInt64(System.UInt64 value) => throw null; - public void WriteUTF16(System.Char[] value) => throw null; + public void WriteUInt16(ushort value) => throw null; + public void WriteUInt16BE(ushort value) => throw null; + public void WriteUInt32(uint value) => throw null; + public void WriteUInt32BE(uint value) => throw null; + public void WriteUInt64(ulong value) => throw null; + public void WriteUserString(string value) => throw null; + public void WriteUTF16(char[] value) => throw null; public void WriteUTF16(string value) => throw null; public void WriteUTF8(string value, bool allowUnpairedSurrogates) => throw null; - public void WriteUserString(string value) => throw null; } - public struct Constant { - // Stub generator skipped constructor public System.Reflection.Metadata.EntityHandle Parent { get => throw null; } public System.Reflection.Metadata.ConstantTypeCode TypeCode { get => throw null; } public System.Reflection.Metadata.BlobHandle Value { get => throw null; } } - public struct ConstantHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.ConstantHandle left, System.Reflection.Metadata.ConstantHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.ConstantHandle left, System.Reflection.Metadata.ConstantHandle right) => throw null; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.ConstantHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.ConstantHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.ConstantHandle left, System.Reflection.Metadata.ConstantHandle right) => throw null; public static explicit operator System.Reflection.Metadata.ConstantHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.ConstantHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.ConstantHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ConstantHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.ConstantHandle left, System.Reflection.Metadata.ConstantHandle right) => throw null; } - public enum ConstantTypeCode : byte { - Boolean = 2, - Byte = 5, - Char = 3, - Double = 13, - Int16 = 6, - Int32 = 8, - Int64 = 10, Invalid = 0, - NullReference = 18, + Boolean = 2, + Char = 3, SByte = 4, - Single = 12, - String = 14, + Byte = 5, + Int16 = 6, UInt16 = 7, + Int32 = 8, UInt32 = 9, + Int64 = 10, UInt64 = 11, + Single = 12, + Double = 13, + String = 14, + NullReference = 18, } - public struct CustomAttribute { public System.Reflection.Metadata.EntityHandle Constructor { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.CustomAttributeValue DecodeValue(System.Reflection.Metadata.ICustomAttributeTypeProvider provider) => throw null; public System.Reflection.Metadata.EntityHandle Parent { get => throw null; } public System.Reflection.Metadata.BlobHandle Value { get => throw null; } } - public struct CustomAttributeHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.CustomAttributeHandle left, System.Reflection.Metadata.CustomAttributeHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.CustomAttributeHandle left, System.Reflection.Metadata.CustomAttributeHandle right) => throw null; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.CustomAttributeHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.CustomAttributeHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.CustomAttributeHandle left, System.Reflection.Metadata.CustomAttributeHandle right) => throw null; public static explicit operator System.Reflection.Metadata.CustomAttributeHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.CustomAttributeHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.CustomAttributeHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.CustomAttributeHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.CustomAttributeHandle left, System.Reflection.Metadata.CustomAttributeHandle right) => throw null; } - - public struct CustomAttributeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct CustomAttributeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.CustomAttributeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.CustomAttributeHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct CustomAttributeNamedArgument { - // Stub generator skipped constructor public CustomAttributeNamedArgument(string name, System.Reflection.Metadata.CustomAttributeNamedArgumentKind kind, TType type, object value) => throw null; public System.Reflection.Metadata.CustomAttributeNamedArgumentKind Kind { get => throw null; } public string Name { get => throw null; } public TType Type { get => throw null; } public object Value { get => throw null; } } - public enum CustomAttributeNamedArgumentKind : byte { Field = 83, Property = 84, } - public struct CustomAttributeTypedArgument { - // Stub generator skipped constructor public CustomAttributeTypedArgument(TType type, object value) => throw null; public TType Type { get => throw null; } public object Value { get => throw null; } } - public struct CustomAttributeValue { - // Stub generator skipped constructor public CustomAttributeValue(System.Collections.Immutable.ImmutableArray> fixedArguments, System.Collections.Immutable.ImmutableArray> namedArguments) => throw null; public System.Collections.Immutable.ImmutableArray> FixedArguments { get => throw null; } public System.Collections.Immutable.ImmutableArray> NamedArguments { get => throw null; } } - public struct CustomDebugInformation { - // Stub generator skipped constructor public System.Reflection.Metadata.GuidHandle Kind { get => throw null; } public System.Reflection.Metadata.EntityHandle Parent { get => throw null; } public System.Reflection.Metadata.BlobHandle Value { get => throw null; } } - public struct CustomDebugInformationHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.CustomDebugInformationHandle left, System.Reflection.Metadata.CustomDebugInformationHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.CustomDebugInformationHandle left, System.Reflection.Metadata.CustomDebugInformationHandle right) => throw null; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.CustomDebugInformationHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.CustomDebugInformationHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.CustomDebugInformationHandle left, System.Reflection.Metadata.CustomDebugInformationHandle right) => throw null; public static explicit operator System.Reflection.Metadata.CustomDebugInformationHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.CustomDebugInformationHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.CustomDebugInformationHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.CustomDebugInformationHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.CustomDebugInformationHandle left, System.Reflection.Metadata.CustomDebugInformationHandle right) => throw null; } - - public struct CustomDebugInformationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct CustomDebugInformationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.CustomDebugInformationHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.CustomDebugInformationHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - - public class DebugMetadataHeader + public sealed class DebugMetadataHeader { public System.Reflection.Metadata.MethodDefinitionHandle EntryPoint { get => throw null; } - public System.Collections.Immutable.ImmutableArray Id { get => throw null; } + public System.Collections.Immutable.ImmutableArray Id { get => throw null; } public int IdStartOffset { get => throw null; } } - public struct DeclarativeSecurityAttribute { public System.Reflection.DeclarativeSecurityAction Action { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.EntityHandle Parent { get => throw null; } public System.Reflection.Metadata.BlobHandle PermissionSet { get => throw null; } } - public struct DeclarativeSecurityAttributeHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.DeclarativeSecurityAttributeHandle left, System.Reflection.Metadata.DeclarativeSecurityAttributeHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.DeclarativeSecurityAttributeHandle left, System.Reflection.Metadata.DeclarativeSecurityAttributeHandle right) => throw null; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.DeclarativeSecurityAttributeHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.DeclarativeSecurityAttributeHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.DeclarativeSecurityAttributeHandle left, System.Reflection.Metadata.DeclarativeSecurityAttributeHandle right) => throw null; public static explicit operator System.Reflection.Metadata.DeclarativeSecurityAttributeHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.DeclarativeSecurityAttributeHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.DeclarativeSecurityAttributeHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.DeclarativeSecurityAttributeHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.DeclarativeSecurityAttributeHandle left, System.Reflection.Metadata.DeclarativeSecurityAttributeHandle right) => throw null; } - - public struct DeclarativeSecurityAttributeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct DeclarativeSecurityAttributeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.DeclarativeSecurityAttributeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.DeclarativeSecurityAttributeHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct Document { - // Stub generator skipped constructor public System.Reflection.Metadata.BlobHandle Hash { get => throw null; } public System.Reflection.Metadata.GuidHandle HashAlgorithm { get => throw null; } public System.Reflection.Metadata.GuidHandle Language { get => throw null; } public System.Reflection.Metadata.DocumentNameBlobHandle Name { get => throw null; } } - public struct DocumentHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.DocumentHandle left, System.Reflection.Metadata.DocumentHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.DocumentHandle left, System.Reflection.Metadata.DocumentHandle right) => throw null; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.DocumentHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.DocumentHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.DocumentHandle left, System.Reflection.Metadata.DocumentHandle right) => throw null; public static explicit operator System.Reflection.Metadata.DocumentHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.DocumentHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.DocumentHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.DocumentHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.DocumentHandle left, System.Reflection.Metadata.DocumentHandle right) => throw null; } - - public struct DocumentHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct DocumentHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.DocumentHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.DocumentHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct DocumentNameBlobHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.DocumentNameBlobHandle left, System.Reflection.Metadata.DocumentNameBlobHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.DocumentNameBlobHandle left, System.Reflection.Metadata.DocumentNameBlobHandle right) => throw null; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.DocumentNameBlobHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.DocumentNameBlobHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.DocumentNameBlobHandle left, System.Reflection.Metadata.DocumentNameBlobHandle right) => throw null; public static explicit operator System.Reflection.Metadata.DocumentNameBlobHandle(System.Reflection.Metadata.BlobHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.BlobHandle(System.Reflection.Metadata.DocumentNameBlobHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.DocumentNameBlobHandle left, System.Reflection.Metadata.DocumentNameBlobHandle right) => throw null; + } + namespace Ecma335 + { + public struct ArrayShapeEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public ArrayShapeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public void Shape(int rank, System.Collections.Immutable.ImmutableArray sizes, System.Collections.Immutable.ImmutableArray lowerBounds) => throw null; + } + public struct BlobEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public BlobEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public void CustomAttributeSignature(System.Action fixedArguments, System.Action namedArguments) => throw null; + public void CustomAttributeSignature(out System.Reflection.Metadata.Ecma335.FixedArgumentsEncoder fixedArguments, out System.Reflection.Metadata.Ecma335.CustomAttributeNamedArgumentsEncoder namedArguments) => throw null; + public System.Reflection.Metadata.Ecma335.FieldTypeEncoder Field() => throw null; + public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder FieldSignature() => throw null; + public System.Reflection.Metadata.Ecma335.LocalVariablesEncoder LocalVariableSignature(int variableCount) => throw null; + public System.Reflection.Metadata.Ecma335.MethodSignatureEncoder MethodSignature(System.Reflection.Metadata.SignatureCallingConvention convention = default(System.Reflection.Metadata.SignatureCallingConvention), int genericParameterCount = default(int), bool isInstanceMethod = default(bool)) => throw null; + public System.Reflection.Metadata.Ecma335.GenericTypeArgumentsEncoder MethodSpecificationSignature(int genericArgumentCount) => throw null; + public System.Reflection.Metadata.Ecma335.NamedArgumentsEncoder PermissionSetArguments(int argumentCount) => throw null; + public System.Reflection.Metadata.Ecma335.PermissionSetEncoder PermissionSetBlob(int attributeCount) => throw null; + public System.Reflection.Metadata.Ecma335.MethodSignatureEncoder PropertySignature(bool isInstanceProperty = default(bool)) => throw null; + public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder TypeSpecificationSignature() => throw null; + } + public static class CodedIndex + { + public static int CustomAttributeType(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int HasConstant(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int HasCustomAttribute(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int HasCustomDebugInformation(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int HasDeclSecurity(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int HasFieldMarshal(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int HasSemantics(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int Implementation(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int MemberForwarded(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int MemberRefParent(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int MethodDefOrRef(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int ResolutionScope(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int TypeDefOrRef(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int TypeDefOrRefOrSpec(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int TypeOrMethodDef(System.Reflection.Metadata.EntityHandle handle) => throw null; + } + public sealed class ControlFlowBuilder + { + public void AddCatchRegion(System.Reflection.Metadata.Ecma335.LabelHandle tryStart, System.Reflection.Metadata.Ecma335.LabelHandle tryEnd, System.Reflection.Metadata.Ecma335.LabelHandle handlerStart, System.Reflection.Metadata.Ecma335.LabelHandle handlerEnd, System.Reflection.Metadata.EntityHandle catchType) => throw null; + public void AddFaultRegion(System.Reflection.Metadata.Ecma335.LabelHandle tryStart, System.Reflection.Metadata.Ecma335.LabelHandle tryEnd, System.Reflection.Metadata.Ecma335.LabelHandle handlerStart, System.Reflection.Metadata.Ecma335.LabelHandle handlerEnd) => throw null; + public void AddFilterRegion(System.Reflection.Metadata.Ecma335.LabelHandle tryStart, System.Reflection.Metadata.Ecma335.LabelHandle tryEnd, System.Reflection.Metadata.Ecma335.LabelHandle handlerStart, System.Reflection.Metadata.Ecma335.LabelHandle handlerEnd, System.Reflection.Metadata.Ecma335.LabelHandle filterStart) => throw null; + public void AddFinallyRegion(System.Reflection.Metadata.Ecma335.LabelHandle tryStart, System.Reflection.Metadata.Ecma335.LabelHandle tryEnd, System.Reflection.Metadata.Ecma335.LabelHandle handlerStart, System.Reflection.Metadata.Ecma335.LabelHandle handlerEnd) => throw null; + public void Clear() => throw null; + public ControlFlowBuilder() => throw null; + } + public struct CustomAttributeArrayTypeEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public CustomAttributeArrayTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder ElementType() => throw null; + public void ObjectArray() => throw null; + } + public struct CustomAttributeElementTypeEncoder + { + public void Boolean() => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public void Byte() => throw null; + public void Char() => throw null; + public CustomAttributeElementTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public void Double() => throw null; + public void Enum(string enumTypeName) => throw null; + public void Int16() => throw null; + public void Int32() => throw null; + public void Int64() => throw null; + public void PrimitiveType(System.Reflection.Metadata.PrimitiveSerializationTypeCode type) => throw null; + public void SByte() => throw null; + public void Single() => throw null; + public void String() => throw null; + public void SystemType() => throw null; + public void UInt16() => throw null; + public void UInt32() => throw null; + public void UInt64() => throw null; + } + public struct CustomAttributeNamedArgumentsEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public System.Reflection.Metadata.Ecma335.NamedArgumentsEncoder Count(int count) => throw null; + public CustomAttributeNamedArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + } + public struct CustomModifiersEncoder + { + public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder AddModifier(System.Reflection.Metadata.EntityHandle type, bool isOptional) => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public CustomModifiersEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + } + public struct EditAndContinueLogEntry : System.IEquatable + { + public EditAndContinueLogEntry(System.Reflection.Metadata.EntityHandle handle, System.Reflection.Metadata.Ecma335.EditAndContinueOperation operation) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.Ecma335.EditAndContinueLogEntry other) => throw null; + public override int GetHashCode() => throw null; + public System.Reflection.Metadata.EntityHandle Handle { get => throw null; } + public System.Reflection.Metadata.Ecma335.EditAndContinueOperation Operation { get => throw null; } + } + public enum EditAndContinueOperation + { + Default = 0, + AddMethod = 1, + AddField = 2, + AddParameter = 3, + AddProperty = 4, + AddEvent = 5, + } + public struct ExceptionRegionEncoder + { + public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder Add(System.Reflection.Metadata.ExceptionRegionKind kind, int tryOffset, int tryLength, int handlerOffset, int handlerLength, System.Reflection.Metadata.EntityHandle catchType = default(System.Reflection.Metadata.EntityHandle), int filterOffset = default(int)) => throw null; + public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder AddCatch(int tryOffset, int tryLength, int handlerOffset, int handlerLength, System.Reflection.Metadata.EntityHandle catchType) => throw null; + public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder AddFault(int tryOffset, int tryLength, int handlerOffset, int handlerLength) => throw null; + public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder AddFilter(int tryOffset, int tryLength, int handlerOffset, int handlerLength, int filterOffset) => throw null; + public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder AddFinally(int tryOffset, int tryLength, int handlerOffset, int handlerLength) => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public bool HasSmallFormat { get => throw null; } + public static bool IsSmallExceptionRegion(int startOffset, int length) => throw null; + public static bool IsSmallRegionCount(int exceptionRegionCount) => throw null; + } + public static partial class ExportedTypeExtensions + { + public static int GetTypeDefinitionId(this System.Reflection.Metadata.ExportedType exportedType) => throw null; + } + public struct FieldTypeEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public FieldTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder CustomModifiers() => throw null; + public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder Type(bool isByRef = default(bool)) => throw null; + public void TypedReference() => throw null; + } + public struct FixedArgumentsEncoder + { + public System.Reflection.Metadata.Ecma335.LiteralEncoder AddArgument() => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public FixedArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + } + public enum FunctionPointerAttributes + { + None = 0, + HasThis = 32, + HasExplicitThis = 96, + } + public struct GenericTypeArgumentsEncoder + { + public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder AddArgument() => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public GenericTypeArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + } + public enum HeapIndex + { + UserString = 0, + String = 1, + Blob = 2, + Guid = 3, + } + public struct InstructionEncoder + { + public void Branch(System.Reflection.Metadata.ILOpCode code, System.Reflection.Metadata.Ecma335.LabelHandle label) => throw null; + public void Call(System.Reflection.Metadata.EntityHandle methodHandle) => throw null; + public void Call(System.Reflection.Metadata.MemberReferenceHandle methodHandle) => throw null; + public void Call(System.Reflection.Metadata.MethodDefinitionHandle methodHandle) => throw null; + public void Call(System.Reflection.Metadata.MethodSpecificationHandle methodHandle) => throw null; + public void CallIndirect(System.Reflection.Metadata.StandaloneSignatureHandle signature) => throw null; + public System.Reflection.Metadata.BlobBuilder CodeBuilder { get => throw null; } + public System.Reflection.Metadata.Ecma335.ControlFlowBuilder ControlFlowBuilder { get => throw null; } + public InstructionEncoder(System.Reflection.Metadata.BlobBuilder codeBuilder, System.Reflection.Metadata.Ecma335.ControlFlowBuilder controlFlowBuilder = default(System.Reflection.Metadata.Ecma335.ControlFlowBuilder)) => throw null; + public System.Reflection.Metadata.Ecma335.LabelHandle DefineLabel() => throw null; + public void LoadArgument(int argumentIndex) => throw null; + public void LoadArgumentAddress(int argumentIndex) => throw null; + public void LoadConstantI4(int value) => throw null; + public void LoadConstantI8(long value) => throw null; + public void LoadConstantR4(float value) => throw null; + public void LoadConstantR8(double value) => throw null; + public void LoadLocal(int slotIndex) => throw null; + public void LoadLocalAddress(int slotIndex) => throw null; + public void LoadString(System.Reflection.Metadata.UserStringHandle handle) => throw null; + public void MarkLabel(System.Reflection.Metadata.Ecma335.LabelHandle label) => throw null; + public int Offset { get => throw null; } + public void OpCode(System.Reflection.Metadata.ILOpCode code) => throw null; + public void StoreArgument(int argumentIndex) => throw null; + public void StoreLocal(int slotIndex) => throw null; + public void Token(int token) => throw null; + public void Token(System.Reflection.Metadata.EntityHandle handle) => throw null; + } + public struct LabelHandle : System.IEquatable + { + public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.Ecma335.LabelHandle other) => throw null; + public override int GetHashCode() => throw null; + public int Id { get => throw null; } + public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.Ecma335.LabelHandle left, System.Reflection.Metadata.Ecma335.LabelHandle right) => throw null; + public static bool operator !=(System.Reflection.Metadata.Ecma335.LabelHandle left, System.Reflection.Metadata.Ecma335.LabelHandle right) => throw null; + } + public struct LiteralEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public LiteralEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public System.Reflection.Metadata.Ecma335.ScalarEncoder Scalar() => throw null; + public void TaggedScalar(System.Action type, System.Action scalar) => throw null; + public void TaggedScalar(out System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder type, out System.Reflection.Metadata.Ecma335.ScalarEncoder scalar) => throw null; + public void TaggedVector(System.Action arrayType, System.Action vector) => throw null; + public void TaggedVector(out System.Reflection.Metadata.Ecma335.CustomAttributeArrayTypeEncoder arrayType, out System.Reflection.Metadata.Ecma335.VectorEncoder vector) => throw null; + public System.Reflection.Metadata.Ecma335.VectorEncoder Vector() => throw null; + } + public struct LiteralsEncoder + { + public System.Reflection.Metadata.Ecma335.LiteralEncoder AddLiteral() => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public LiteralsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + } + public struct LocalVariablesEncoder + { + public System.Reflection.Metadata.Ecma335.LocalVariableTypeEncoder AddVariable() => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public LocalVariablesEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + } + public struct LocalVariableTypeEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public LocalVariableTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder CustomModifiers() => throw null; + public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder Type(bool isByRef = default(bool), bool isPinned = default(bool)) => throw null; + public void TypedReference() => throw null; + } + public sealed class MetadataAggregator + { + public MetadataAggregator(System.Collections.Generic.IReadOnlyList baseTableRowCounts, System.Collections.Generic.IReadOnlyList baseHeapSizes, System.Collections.Generic.IReadOnlyList deltaReaders) => throw null; + public MetadataAggregator(System.Reflection.Metadata.MetadataReader baseReader, System.Collections.Generic.IReadOnlyList deltaReaders) => throw null; + public System.Reflection.Metadata.Handle GetGenerationHandle(System.Reflection.Metadata.Handle handle, out int generation) => throw null; + } + public sealed class MetadataBuilder + { + public System.Reflection.Metadata.AssemblyDefinitionHandle AddAssembly(System.Reflection.Metadata.StringHandle name, System.Version version, System.Reflection.Metadata.StringHandle culture, System.Reflection.Metadata.BlobHandle publicKey, System.Reflection.AssemblyFlags flags, System.Reflection.AssemblyHashAlgorithm hashAlgorithm) => throw null; + public System.Reflection.Metadata.AssemblyFileHandle AddAssemblyFile(System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle hashValue, bool containsMetadata) => throw null; + public System.Reflection.Metadata.AssemblyReferenceHandle AddAssemblyReference(System.Reflection.Metadata.StringHandle name, System.Version version, System.Reflection.Metadata.StringHandle culture, System.Reflection.Metadata.BlobHandle publicKeyOrToken, System.Reflection.AssemblyFlags flags, System.Reflection.Metadata.BlobHandle hashValue) => throw null; + public System.Reflection.Metadata.ConstantHandle AddConstant(System.Reflection.Metadata.EntityHandle parent, object value) => throw null; + public System.Reflection.Metadata.CustomAttributeHandle AddCustomAttribute(System.Reflection.Metadata.EntityHandle parent, System.Reflection.Metadata.EntityHandle constructor, System.Reflection.Metadata.BlobHandle value) => throw null; + public System.Reflection.Metadata.CustomDebugInformationHandle AddCustomDebugInformation(System.Reflection.Metadata.EntityHandle parent, System.Reflection.Metadata.GuidHandle kind, System.Reflection.Metadata.BlobHandle value) => throw null; + public System.Reflection.Metadata.DeclarativeSecurityAttributeHandle AddDeclarativeSecurityAttribute(System.Reflection.Metadata.EntityHandle parent, System.Reflection.DeclarativeSecurityAction action, System.Reflection.Metadata.BlobHandle permissionSet) => throw null; + public System.Reflection.Metadata.DocumentHandle AddDocument(System.Reflection.Metadata.BlobHandle name, System.Reflection.Metadata.GuidHandle hashAlgorithm, System.Reflection.Metadata.BlobHandle hash, System.Reflection.Metadata.GuidHandle language) => throw null; + public void AddEncLogEntry(System.Reflection.Metadata.EntityHandle entity, System.Reflection.Metadata.Ecma335.EditAndContinueOperation code) => throw null; + public void AddEncMapEntry(System.Reflection.Metadata.EntityHandle entity) => throw null; + public System.Reflection.Metadata.EventDefinitionHandle AddEvent(System.Reflection.EventAttributes attributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.EntityHandle type) => throw null; + public void AddEventMap(System.Reflection.Metadata.TypeDefinitionHandle declaringType, System.Reflection.Metadata.EventDefinitionHandle eventList) => throw null; + public System.Reflection.Metadata.ExportedTypeHandle AddExportedType(System.Reflection.TypeAttributes attributes, System.Reflection.Metadata.StringHandle @namespace, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.EntityHandle implementation, int typeDefinitionId) => throw null; + public System.Reflection.Metadata.FieldDefinitionHandle AddFieldDefinition(System.Reflection.FieldAttributes attributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle signature) => throw null; + public void AddFieldLayout(System.Reflection.Metadata.FieldDefinitionHandle field, int offset) => throw null; + public void AddFieldRelativeVirtualAddress(System.Reflection.Metadata.FieldDefinitionHandle field, int offset) => throw null; + public System.Reflection.Metadata.GenericParameterHandle AddGenericParameter(System.Reflection.Metadata.EntityHandle parent, System.Reflection.GenericParameterAttributes attributes, System.Reflection.Metadata.StringHandle name, int index) => throw null; + public System.Reflection.Metadata.GenericParameterConstraintHandle AddGenericParameterConstraint(System.Reflection.Metadata.GenericParameterHandle genericParameter, System.Reflection.Metadata.EntityHandle constraint) => throw null; + public System.Reflection.Metadata.ImportScopeHandle AddImportScope(System.Reflection.Metadata.ImportScopeHandle parentScope, System.Reflection.Metadata.BlobHandle imports) => throw null; + public System.Reflection.Metadata.InterfaceImplementationHandle AddInterfaceImplementation(System.Reflection.Metadata.TypeDefinitionHandle type, System.Reflection.Metadata.EntityHandle implementedInterface) => throw null; + public System.Reflection.Metadata.LocalConstantHandle AddLocalConstant(System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle signature) => throw null; + public System.Reflection.Metadata.LocalScopeHandle AddLocalScope(System.Reflection.Metadata.MethodDefinitionHandle method, System.Reflection.Metadata.ImportScopeHandle importScope, System.Reflection.Metadata.LocalVariableHandle variableList, System.Reflection.Metadata.LocalConstantHandle constantList, int startOffset, int length) => throw null; + public System.Reflection.Metadata.LocalVariableHandle AddLocalVariable(System.Reflection.Metadata.LocalVariableAttributes attributes, int index, System.Reflection.Metadata.StringHandle name) => throw null; + public System.Reflection.Metadata.ManifestResourceHandle AddManifestResource(System.Reflection.ManifestResourceAttributes attributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.EntityHandle implementation, uint offset) => throw null; + public void AddMarshallingDescriptor(System.Reflection.Metadata.EntityHandle parent, System.Reflection.Metadata.BlobHandle descriptor) => throw null; + public System.Reflection.Metadata.MemberReferenceHandle AddMemberReference(System.Reflection.Metadata.EntityHandle parent, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle signature) => throw null; + public System.Reflection.Metadata.MethodDebugInformationHandle AddMethodDebugInformation(System.Reflection.Metadata.DocumentHandle document, System.Reflection.Metadata.BlobHandle sequencePoints) => throw null; + public System.Reflection.Metadata.MethodDefinitionHandle AddMethodDefinition(System.Reflection.MethodAttributes attributes, System.Reflection.MethodImplAttributes implAttributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle signature, int bodyOffset, System.Reflection.Metadata.ParameterHandle parameterList) => throw null; + public System.Reflection.Metadata.MethodImplementationHandle AddMethodImplementation(System.Reflection.Metadata.TypeDefinitionHandle type, System.Reflection.Metadata.EntityHandle methodBody, System.Reflection.Metadata.EntityHandle methodDeclaration) => throw null; + public void AddMethodImport(System.Reflection.Metadata.MethodDefinitionHandle method, System.Reflection.MethodImportAttributes attributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.ModuleReferenceHandle module) => throw null; + public void AddMethodSemantics(System.Reflection.Metadata.EntityHandle association, System.Reflection.MethodSemanticsAttributes semantics, System.Reflection.Metadata.MethodDefinitionHandle methodDefinition) => throw null; + public System.Reflection.Metadata.MethodSpecificationHandle AddMethodSpecification(System.Reflection.Metadata.EntityHandle method, System.Reflection.Metadata.BlobHandle instantiation) => throw null; + public System.Reflection.Metadata.ModuleDefinitionHandle AddModule(int generation, System.Reflection.Metadata.StringHandle moduleName, System.Reflection.Metadata.GuidHandle mvid, System.Reflection.Metadata.GuidHandle encId, System.Reflection.Metadata.GuidHandle encBaseId) => throw null; + public System.Reflection.Metadata.ModuleReferenceHandle AddModuleReference(System.Reflection.Metadata.StringHandle moduleName) => throw null; + public void AddNestedType(System.Reflection.Metadata.TypeDefinitionHandle type, System.Reflection.Metadata.TypeDefinitionHandle enclosingType) => throw null; + public System.Reflection.Metadata.ParameterHandle AddParameter(System.Reflection.ParameterAttributes attributes, System.Reflection.Metadata.StringHandle name, int sequenceNumber) => throw null; + public System.Reflection.Metadata.PropertyDefinitionHandle AddProperty(System.Reflection.PropertyAttributes attributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle signature) => throw null; + public void AddPropertyMap(System.Reflection.Metadata.TypeDefinitionHandle declaringType, System.Reflection.Metadata.PropertyDefinitionHandle propertyList) => throw null; + public System.Reflection.Metadata.StandaloneSignatureHandle AddStandaloneSignature(System.Reflection.Metadata.BlobHandle signature) => throw null; + public void AddStateMachineMethod(System.Reflection.Metadata.MethodDefinitionHandle moveNextMethod, System.Reflection.Metadata.MethodDefinitionHandle kickoffMethod) => throw null; + public System.Reflection.Metadata.TypeDefinitionHandle AddTypeDefinition(System.Reflection.TypeAttributes attributes, System.Reflection.Metadata.StringHandle @namespace, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.EntityHandle baseType, System.Reflection.Metadata.FieldDefinitionHandle fieldList, System.Reflection.Metadata.MethodDefinitionHandle methodList) => throw null; + public void AddTypeLayout(System.Reflection.Metadata.TypeDefinitionHandle type, ushort packingSize, uint size) => throw null; + public System.Reflection.Metadata.TypeReferenceHandle AddTypeReference(System.Reflection.Metadata.EntityHandle resolutionScope, System.Reflection.Metadata.StringHandle @namespace, System.Reflection.Metadata.StringHandle name) => throw null; + public System.Reflection.Metadata.TypeSpecificationHandle AddTypeSpecification(System.Reflection.Metadata.BlobHandle signature) => throw null; + public MetadataBuilder(int userStringHeapStartOffset = default(int), int stringHeapStartOffset = default(int), int blobHeapStartOffset = default(int), int guidHeapStartOffset = default(int)) => throw null; + public System.Reflection.Metadata.BlobHandle GetOrAddBlob(byte[] value) => throw null; + public System.Reflection.Metadata.BlobHandle GetOrAddBlob(System.Collections.Immutable.ImmutableArray value) => throw null; + public System.Reflection.Metadata.BlobHandle GetOrAddBlob(System.Reflection.Metadata.BlobBuilder value) => throw null; + public System.Reflection.Metadata.BlobHandle GetOrAddBlobUTF16(string value) => throw null; + public System.Reflection.Metadata.BlobHandle GetOrAddBlobUTF8(string value, bool allowUnpairedSurrogates = default(bool)) => throw null; + public System.Reflection.Metadata.BlobHandle GetOrAddConstantBlob(object value) => throw null; + public System.Reflection.Metadata.BlobHandle GetOrAddDocumentName(string value) => throw null; + public System.Reflection.Metadata.GuidHandle GetOrAddGuid(System.Guid guid) => throw null; + public System.Reflection.Metadata.StringHandle GetOrAddString(string value) => throw null; + public System.Reflection.Metadata.UserStringHandle GetOrAddUserString(string value) => throw null; + public int GetRowCount(System.Reflection.Metadata.Ecma335.TableIndex table) => throw null; + public System.Collections.Immutable.ImmutableArray GetRowCounts() => throw null; + public System.Reflection.Metadata.ReservedBlob ReserveGuid() => throw null; + public System.Reflection.Metadata.ReservedBlob ReserveUserString(int length) => throw null; + public void SetCapacity(System.Reflection.Metadata.Ecma335.HeapIndex heap, int byteCount) => throw null; + public void SetCapacity(System.Reflection.Metadata.Ecma335.TableIndex table, int rowCount) => throw null; + } + public static partial class MetadataReaderExtensions + { + public static System.Collections.Generic.IEnumerable GetEditAndContinueLogEntries(this System.Reflection.Metadata.MetadataReader reader) => throw null; + public static System.Collections.Generic.IEnumerable GetEditAndContinueMapEntries(this System.Reflection.Metadata.MetadataReader reader) => throw null; + public static int GetHeapMetadataOffset(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Ecma335.HeapIndex heapIndex) => throw null; + public static int GetHeapSize(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Ecma335.HeapIndex heapIndex) => throw null; + public static System.Reflection.Metadata.BlobHandle GetNextHandle(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.BlobHandle handle) => throw null; + public static System.Reflection.Metadata.StringHandle GetNextHandle(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.StringHandle handle) => throw null; + public static System.Reflection.Metadata.UserStringHandle GetNextHandle(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.UserStringHandle handle) => throw null; + public static int GetTableMetadataOffset(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Ecma335.TableIndex tableIndex) => throw null; + public static int GetTableRowCount(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Ecma335.TableIndex tableIndex) => throw null; + public static int GetTableRowSize(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Ecma335.TableIndex tableIndex) => throw null; + public static System.Collections.Generic.IEnumerable GetTypesWithEvents(this System.Reflection.Metadata.MetadataReader reader) => throw null; + public static System.Collections.Generic.IEnumerable GetTypesWithProperties(this System.Reflection.Metadata.MetadataReader reader) => throw null; + public static System.Reflection.Metadata.SignatureTypeKind ResolveSignatureTypeKind(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.EntityHandle typeHandle, byte rawTypeKind) => throw null; + } + public sealed class MetadataRootBuilder + { + public MetadataRootBuilder(System.Reflection.Metadata.Ecma335.MetadataBuilder tablesAndHeaps, string metadataVersion = default(string), bool suppressValidation = default(bool)) => throw null; + public string MetadataVersion { get => throw null; } + public void Serialize(System.Reflection.Metadata.BlobBuilder builder, int methodBodyStreamRva, int mappedFieldDataStreamRva) => throw null; + public System.Reflection.Metadata.Ecma335.MetadataSizes Sizes { get => throw null; } + public bool SuppressValidation { get => throw null; } + } + public sealed class MetadataSizes + { + public System.Collections.Immutable.ImmutableArray ExternalRowCounts { get => throw null; } + public int GetAlignedHeapSize(System.Reflection.Metadata.Ecma335.HeapIndex index) => throw null; + public System.Collections.Immutable.ImmutableArray HeapSizes { get => throw null; } + public System.Collections.Immutable.ImmutableArray RowCounts { get => throw null; } + } + public static class MetadataTokens + { + public static System.Reflection.Metadata.AssemblyFileHandle AssemblyFileHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.AssemblyReferenceHandle AssemblyReferenceHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.BlobHandle BlobHandle(int offset) => throw null; + public static System.Reflection.Metadata.ConstantHandle ConstantHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.CustomAttributeHandle CustomAttributeHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.CustomDebugInformationHandle CustomDebugInformationHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.DeclarativeSecurityAttributeHandle DeclarativeSecurityAttributeHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.DocumentHandle DocumentHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.DocumentNameBlobHandle DocumentNameBlobHandle(int offset) => throw null; + public static System.Reflection.Metadata.EntityHandle EntityHandle(int token) => throw null; + public static System.Reflection.Metadata.EntityHandle EntityHandle(System.Reflection.Metadata.Ecma335.TableIndex tableIndex, int rowNumber) => throw null; + public static System.Reflection.Metadata.EventDefinitionHandle EventDefinitionHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.ExportedTypeHandle ExportedTypeHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.FieldDefinitionHandle FieldDefinitionHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.GenericParameterConstraintHandle GenericParameterConstraintHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.GenericParameterHandle GenericParameterHandle(int rowNumber) => throw null; + public static int GetHeapOffset(System.Reflection.Metadata.BlobHandle handle) => throw null; + public static int GetHeapOffset(System.Reflection.Metadata.GuidHandle handle) => throw null; + public static int GetHeapOffset(System.Reflection.Metadata.Handle handle) => throw null; + public static int GetHeapOffset(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Handle handle) => throw null; + public static int GetHeapOffset(System.Reflection.Metadata.StringHandle handle) => throw null; + public static int GetHeapOffset(System.Reflection.Metadata.UserStringHandle handle) => throw null; + public static int GetRowNumber(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int GetRowNumber(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int GetToken(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int GetToken(System.Reflection.Metadata.Handle handle) => throw null; + public static int GetToken(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.EntityHandle handle) => throw null; + public static int GetToken(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Handle handle) => throw null; + public static System.Reflection.Metadata.GuidHandle GuidHandle(int offset) => throw null; + public static System.Reflection.Metadata.Handle Handle(int token) => throw null; + public static System.Reflection.Metadata.EntityHandle Handle(System.Reflection.Metadata.Ecma335.TableIndex tableIndex, int rowNumber) => throw null; + public static int HeapCount; + public static System.Reflection.Metadata.ImportScopeHandle ImportScopeHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.InterfaceImplementationHandle InterfaceImplementationHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.LocalConstantHandle LocalConstantHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.LocalScopeHandle LocalScopeHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.LocalVariableHandle LocalVariableHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.ManifestResourceHandle ManifestResourceHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.MemberReferenceHandle MemberReferenceHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.MethodDebugInformationHandle MethodDebugInformationHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.MethodDefinitionHandle MethodDefinitionHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.MethodImplementationHandle MethodImplementationHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.MethodSpecificationHandle MethodSpecificationHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.ModuleReferenceHandle ModuleReferenceHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.ParameterHandle ParameterHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.PropertyDefinitionHandle PropertyDefinitionHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.StandaloneSignatureHandle StandaloneSignatureHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.StringHandle StringHandle(int offset) => throw null; + public static int TableCount; + public static bool TryGetHeapIndex(System.Reflection.Metadata.HandleKind type, out System.Reflection.Metadata.Ecma335.HeapIndex index) => throw null; + public static bool TryGetTableIndex(System.Reflection.Metadata.HandleKind type, out System.Reflection.Metadata.Ecma335.TableIndex index) => throw null; + public static System.Reflection.Metadata.TypeDefinitionHandle TypeDefinitionHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.TypeReferenceHandle TypeReferenceHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.TypeSpecificationHandle TypeSpecificationHandle(int rowNumber) => throw null; + public static System.Reflection.Metadata.UserStringHandle UserStringHandle(int offset) => throw null; + } + [System.Flags] + public enum MethodBodyAttributes + { + None = 0, + InitLocals = 1, + } + public struct MethodBodyStreamEncoder + { + public System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody AddMethodBody(int codeSize, int maxStack, int exceptionRegionCount, bool hasSmallExceptionRegions, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes) => throw null; + public System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody AddMethodBody(int codeSize, int maxStack = default(int), int exceptionRegionCount = default(int), bool hasSmallExceptionRegions = default(bool), System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default(System.Reflection.Metadata.StandaloneSignatureHandle), System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = default(System.Reflection.Metadata.Ecma335.MethodBodyAttributes), bool hasDynamicStackAllocation = default(bool)) => throw null; + public int AddMethodBody(System.Reflection.Metadata.Ecma335.InstructionEncoder instructionEncoder, int maxStack, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes) => throw null; + public int AddMethodBody(System.Reflection.Metadata.Ecma335.InstructionEncoder instructionEncoder, int maxStack = default(int), System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default(System.Reflection.Metadata.StandaloneSignatureHandle), System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = default(System.Reflection.Metadata.Ecma335.MethodBodyAttributes), bool hasDynamicStackAllocation = default(bool)) => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public MethodBodyStreamEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public struct MethodBody + { + public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder ExceptionRegions { get => throw null; } + public System.Reflection.Metadata.Blob Instructions { get => throw null; } + public int Offset { get => throw null; } + } + } + public struct MethodSignatureEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public MethodSignatureEncoder(System.Reflection.Metadata.BlobBuilder builder, bool hasVarArgs) => throw null; + public bool HasVarArgs { get => throw null; } + public void Parameters(int parameterCount, System.Action returnType, System.Action parameters) => throw null; + public void Parameters(int parameterCount, out System.Reflection.Metadata.Ecma335.ReturnTypeEncoder returnType, out System.Reflection.Metadata.Ecma335.ParametersEncoder parameters) => throw null; + } + public struct NamedArgumentsEncoder + { + public void AddArgument(bool isField, System.Action type, System.Action name, System.Action literal) => throw null; + public void AddArgument(bool isField, out System.Reflection.Metadata.Ecma335.NamedArgumentTypeEncoder type, out System.Reflection.Metadata.Ecma335.NameEncoder name, out System.Reflection.Metadata.Ecma335.LiteralEncoder literal) => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public NamedArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + } + public struct NamedArgumentTypeEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public NamedArgumentTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public void Object() => throw null; + public System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder ScalarType() => throw null; + public System.Reflection.Metadata.Ecma335.CustomAttributeArrayTypeEncoder SZArray() => throw null; + } + public struct NameEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public NameEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public void Name(string name) => throw null; + } + public struct ParametersEncoder + { + public System.Reflection.Metadata.Ecma335.ParameterTypeEncoder AddParameter() => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public ParametersEncoder(System.Reflection.Metadata.BlobBuilder builder, bool hasVarArgs = default(bool)) => throw null; + public bool HasVarArgs { get => throw null; } + public System.Reflection.Metadata.Ecma335.ParametersEncoder StartVarArgs() => throw null; + } + public struct ParameterTypeEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public ParameterTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder CustomModifiers() => throw null; + public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder Type(bool isByRef = default(bool)) => throw null; + public void TypedReference() => throw null; + } + public struct PermissionSetEncoder + { + public System.Reflection.Metadata.Ecma335.PermissionSetEncoder AddPermission(string typeName, System.Collections.Immutable.ImmutableArray encodedArguments) => throw null; + public System.Reflection.Metadata.Ecma335.PermissionSetEncoder AddPermission(string typeName, System.Reflection.Metadata.BlobBuilder encodedArguments) => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public PermissionSetEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + } + public sealed class PortablePdbBuilder + { + public PortablePdbBuilder(System.Reflection.Metadata.Ecma335.MetadataBuilder tablesAndHeaps, System.Collections.Immutable.ImmutableArray typeSystemRowCounts, System.Reflection.Metadata.MethodDefinitionHandle entryPoint, System.Func, System.Reflection.Metadata.BlobContentId> idProvider = default(System.Func, System.Reflection.Metadata.BlobContentId>)) => throw null; + public ushort FormatVersion { get => throw null; } + public System.Func, System.Reflection.Metadata.BlobContentId> IdProvider { get => throw null; } + public string MetadataVersion { get => throw null; } + public System.Reflection.Metadata.BlobContentId Serialize(System.Reflection.Metadata.BlobBuilder builder) => throw null; + } + public struct ReturnTypeEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public ReturnTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder CustomModifiers() => throw null; + public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder Type(bool isByRef = default(bool)) => throw null; + public void TypedReference() => throw null; + public void Void() => throw null; + } + public struct ScalarEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public void Constant(object value) => throw null; + public ScalarEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public void NullArray() => throw null; + public void SystemType(string serializedTypeName) => throw null; + } + public struct SignatureDecoder + { + public SignatureDecoder(System.Reflection.Metadata.ISignatureTypeProvider provider, System.Reflection.Metadata.MetadataReader metadataReader, TGenericContext genericContext) => throw null; + public TType DecodeFieldSignature(ref System.Reflection.Metadata.BlobReader blobReader) => throw null; + public System.Collections.Immutable.ImmutableArray DecodeLocalSignature(ref System.Reflection.Metadata.BlobReader blobReader) => throw null; + public System.Reflection.Metadata.MethodSignature DecodeMethodSignature(ref System.Reflection.Metadata.BlobReader blobReader) => throw null; + public System.Collections.Immutable.ImmutableArray DecodeMethodSpecificationSignature(ref System.Reflection.Metadata.BlobReader blobReader) => throw null; + public TType DecodeType(ref System.Reflection.Metadata.BlobReader blobReader, bool allowTypeSpecifications = default(bool)) => throw null; + } + public struct SignatureTypeEncoder + { + public void Array(System.Action elementType, System.Action arrayShape) => throw null; + public void Array(out System.Reflection.Metadata.Ecma335.SignatureTypeEncoder elementType, out System.Reflection.Metadata.Ecma335.ArrayShapeEncoder arrayShape) => throw null; + public void Boolean() => throw null; + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public void Byte() => throw null; + public void Char() => throw null; + public SignatureTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder CustomModifiers() => throw null; + public void Double() => throw null; + public System.Reflection.Metadata.Ecma335.MethodSignatureEncoder FunctionPointer(System.Reflection.Metadata.SignatureCallingConvention convention = default(System.Reflection.Metadata.SignatureCallingConvention), System.Reflection.Metadata.Ecma335.FunctionPointerAttributes attributes = default(System.Reflection.Metadata.Ecma335.FunctionPointerAttributes), int genericParameterCount = default(int)) => throw null; + public System.Reflection.Metadata.Ecma335.GenericTypeArgumentsEncoder GenericInstantiation(System.Reflection.Metadata.EntityHandle genericType, int genericArgumentCount, bool isValueType) => throw null; + public void GenericMethodTypeParameter(int parameterIndex) => throw null; + public void GenericTypeParameter(int parameterIndex) => throw null; + public void Int16() => throw null; + public void Int32() => throw null; + public void Int64() => throw null; + public void IntPtr() => throw null; + public void Object() => throw null; + public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder Pointer() => throw null; + public void PrimitiveType(System.Reflection.Metadata.PrimitiveTypeCode type) => throw null; + public void SByte() => throw null; + public void Single() => throw null; + public void String() => throw null; + public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder SZArray() => throw null; + public void Type(System.Reflection.Metadata.EntityHandle type, bool isValueType) => throw null; + public void UInt16() => throw null; + public void UInt32() => throw null; + public void UInt64() => throw null; + public void UIntPtr() => throw null; + public void VoidPointer() => throw null; + } + public enum TableIndex : byte + { + Module = 0, + TypeRef = 1, + TypeDef = 2, + FieldPtr = 3, + Field = 4, + MethodPtr = 5, + MethodDef = 6, + ParamPtr = 7, + Param = 8, + InterfaceImpl = 9, + MemberRef = 10, + Constant = 11, + CustomAttribute = 12, + FieldMarshal = 13, + DeclSecurity = 14, + ClassLayout = 15, + FieldLayout = 16, + StandAloneSig = 17, + EventMap = 18, + EventPtr = 19, + Event = 20, + PropertyMap = 21, + PropertyPtr = 22, + Property = 23, + MethodSemantics = 24, + MethodImpl = 25, + ModuleRef = 26, + TypeSpec = 27, + ImplMap = 28, + FieldRva = 29, + EncLog = 30, + EncMap = 31, + Assembly = 32, + AssemblyProcessor = 33, + AssemblyOS = 34, + AssemblyRef = 35, + AssemblyRefProcessor = 36, + AssemblyRefOS = 37, + File = 38, + ExportedType = 39, + ManifestResource = 40, + NestedClass = 41, + GenericParam = 42, + MethodSpec = 43, + GenericParamConstraint = 44, + Document = 48, + MethodDebugInformation = 49, + LocalScope = 50, + LocalVariable = 51, + LocalConstant = 52, + ImportScope = 53, + StateMachineMethod = 54, + CustomDebugInformation = 55, + } + public struct VectorEncoder + { + public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } + public System.Reflection.Metadata.Ecma335.LiteralsEncoder Count(int count) => throw null; + public VectorEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; + } } - public struct EntityHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.EntityHandle left, System.Reflection.Metadata.EntityHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.EntityHandle left, System.Reflection.Metadata.EntityHandle right) => throw null; public static System.Reflection.Metadata.AssemblyDefinitionHandle AssemblyDefinition; - // Stub generator skipped constructor - public bool Equals(System.Reflection.Metadata.EntityHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.EntityHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } public System.Reflection.Metadata.HandleKind Kind { get => throw null; } public static System.Reflection.Metadata.ModuleDefinitionHandle ModuleDefinition; + public static bool operator ==(System.Reflection.Metadata.EntityHandle left, System.Reflection.Metadata.EntityHandle right) => throw null; public static explicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.EntityHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.EntityHandle left, System.Reflection.Metadata.EntityHandle right) => throw null; } - public struct EventAccessors { public System.Reflection.Metadata.MethodDefinitionHandle Adder { get => throw null; } - // Stub generator skipped constructor public System.Collections.Immutable.ImmutableArray Others { get => throw null; } public System.Reflection.Metadata.MethodDefinitionHandle Raiser { get => throw null; } public System.Reflection.Metadata.MethodDefinitionHandle Remover { get => throw null; } } - public struct EventDefinition { public System.Reflection.EventAttributes Attributes { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.EventAccessors GetAccessors() => throw null; public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.StringHandle Name { get => throw null; } public System.Reflection.Metadata.EntityHandle Type { get => throw null; } } - public struct EventDefinitionHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.EventDefinitionHandle left, System.Reflection.Metadata.EventDefinitionHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.EventDefinitionHandle left, System.Reflection.Metadata.EventDefinitionHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.EventDefinitionHandle other) => throw null; public override bool Equals(object obj) => throw null; - // Stub generator skipped constructor + public bool Equals(System.Reflection.Metadata.EventDefinitionHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.EventDefinitionHandle left, System.Reflection.Metadata.EventDefinitionHandle right) => throw null; public static explicit operator System.Reflection.Metadata.EventDefinitionHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.EventDefinitionHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.EventDefinitionHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.EventDefinitionHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.EventDefinitionHandle left, System.Reflection.Metadata.EventDefinitionHandle right) => throw null; } - - public struct EventDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct EventDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.EventDefinitionHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.EventDefinitionHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct ExceptionRegion { public System.Reflection.Metadata.EntityHandle CatchType { get => throw null; } - // Stub generator skipped constructor public int FilterOffset { get => throw null; } public int HandlerLength { get => throw null; } public int HandlerOffset { get => throw null; } @@ -778,19 +1225,16 @@ namespace System public int TryLength { get => throw null; } public int TryOffset { get => throw null; } } - public enum ExceptionRegionKind : ushort { Catch = 0, - Fault = 4, Filter = 1, Finally = 2, + Fault = 4, } - public struct ExportedType { public System.Reflection.TypeAttributes Attributes { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.EntityHandle Implementation { get => throw null; } public bool IsForwarder { get => throw null; } @@ -798,47 +1242,38 @@ namespace System public System.Reflection.Metadata.StringHandle Namespace { get => throw null; } public System.Reflection.Metadata.NamespaceDefinitionHandle NamespaceDefinition { get => throw null; } } - public struct ExportedTypeHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.ExportedTypeHandle left, System.Reflection.Metadata.ExportedTypeHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.ExportedTypeHandle left, System.Reflection.Metadata.ExportedTypeHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.ExportedTypeHandle other) => throw null; public override bool Equals(object obj) => throw null; - // Stub generator skipped constructor + public bool Equals(System.Reflection.Metadata.ExportedTypeHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.ExportedTypeHandle left, System.Reflection.Metadata.ExportedTypeHandle right) => throw null; public static explicit operator System.Reflection.Metadata.ExportedTypeHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.ExportedTypeHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.ExportedTypeHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ExportedTypeHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.ExportedTypeHandle left, System.Reflection.Metadata.ExportedTypeHandle right) => throw null; } - - public struct ExportedTypeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct ExportedTypeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.ExportedTypeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.ExportedTypeHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct FieldDefinition { public System.Reflection.FieldAttributes Attributes { get => throw null; } public TType DecodeSignature(System.Reflection.Metadata.ISignatureTypeProvider provider, TGenericContext genericContext) => throw null; - // Stub generator skipped constructor public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.TypeDefinitionHandle GetDeclaringType() => throw null; public System.Reflection.Metadata.ConstantHandle GetDefaultValue() => throw null; @@ -848,161 +1283,131 @@ namespace System public System.Reflection.Metadata.StringHandle Name { get => throw null; } public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - public struct FieldDefinitionHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.FieldDefinitionHandle left, System.Reflection.Metadata.FieldDefinitionHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.FieldDefinitionHandle left, System.Reflection.Metadata.FieldDefinitionHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.FieldDefinitionHandle other) => throw null; public override bool Equals(object obj) => throw null; - // Stub generator skipped constructor + public bool Equals(System.Reflection.Metadata.FieldDefinitionHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.FieldDefinitionHandle left, System.Reflection.Metadata.FieldDefinitionHandle right) => throw null; public static explicit operator System.Reflection.Metadata.FieldDefinitionHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.FieldDefinitionHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.FieldDefinitionHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.FieldDefinitionHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.FieldDefinitionHandle left, System.Reflection.Metadata.FieldDefinitionHandle right) => throw null; } - - public struct FieldDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct FieldDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.FieldDefinitionHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.FieldDefinitionHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct GenericParameter { public System.Reflection.GenericParameterAttributes Attributes { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.GenericParameterConstraintHandleCollection GetConstraints() => throw null; public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public int Index { get => throw null; } public System.Reflection.Metadata.StringHandle Name { get => throw null; } public System.Reflection.Metadata.EntityHandle Parent { get => throw null; } } - public struct GenericParameterConstraint { - // Stub generator skipped constructor public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.GenericParameterHandle Parameter { get => throw null; } public System.Reflection.Metadata.EntityHandle Type { get => throw null; } } - public struct GenericParameterConstraintHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.GenericParameterConstraintHandle left, System.Reflection.Metadata.GenericParameterConstraintHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.GenericParameterConstraintHandle left, System.Reflection.Metadata.GenericParameterConstraintHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.GenericParameterConstraintHandle other) => throw null; public override bool Equals(object obj) => throw null; - // Stub generator skipped constructor + public bool Equals(System.Reflection.Metadata.GenericParameterConstraintHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.GenericParameterConstraintHandle left, System.Reflection.Metadata.GenericParameterConstraintHandle right) => throw null; public static explicit operator System.Reflection.Metadata.GenericParameterConstraintHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.GenericParameterConstraintHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.GenericParameterConstraintHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.GenericParameterConstraintHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.GenericParameterConstraintHandle left, System.Reflection.Metadata.GenericParameterConstraintHandle right) => throw null; } - - public struct GenericParameterConstraintHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable + public struct GenericParameterConstraintHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.GenericParameterConstraintHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.GenericParameterConstraintHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public System.Reflection.Metadata.GenericParameterConstraintHandle this[int index] { get => throw null; } } - public struct GenericParameterHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.GenericParameterHandle left, System.Reflection.Metadata.GenericParameterHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.GenericParameterHandle left, System.Reflection.Metadata.GenericParameterHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.GenericParameterHandle other) => throw null; public override bool Equals(object obj) => throw null; - // Stub generator skipped constructor + public bool Equals(System.Reflection.Metadata.GenericParameterHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.GenericParameterHandle left, System.Reflection.Metadata.GenericParameterHandle right) => throw null; public static explicit operator System.Reflection.Metadata.GenericParameterHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.GenericParameterHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.GenericParameterHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.GenericParameterHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.GenericParameterHandle left, System.Reflection.Metadata.GenericParameterHandle right) => throw null; } - - public struct GenericParameterHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable + public struct GenericParameterHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.GenericParameterHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.GenericParameterHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public System.Reflection.Metadata.GenericParameterHandle this[int index] { get => throw null; } } - public struct GuidHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.GuidHandle left, System.Reflection.Metadata.GuidHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.GuidHandle left, System.Reflection.Metadata.GuidHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.GuidHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.GuidHandle other) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.GuidHandle left, System.Reflection.Metadata.GuidHandle right) => throw null; public static explicit operator System.Reflection.Metadata.GuidHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.GuidHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.GuidHandle left, System.Reflection.Metadata.GuidHandle right) => throw null; } - public struct Handle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.Handle left, System.Reflection.Metadata.Handle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.Handle left, System.Reflection.Metadata.Handle right) => throw null; public static System.Reflection.Metadata.AssemblyDefinitionHandle AssemblyDefinition; - public bool Equals(System.Reflection.Metadata.Handle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.Handle other) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor public bool IsNil { get => throw null; } public System.Reflection.Metadata.HandleKind Kind { get => throw null; } public static System.Reflection.Metadata.ModuleDefinitionHandle ModuleDefinition; + public static bool operator ==(System.Reflection.Metadata.Handle left, System.Reflection.Metadata.Handle right) => throw null; + public static bool operator !=(System.Reflection.Metadata.Handle left, System.Reflection.Metadata.Handle right) => throw null; } - - public class HandleComparer : System.Collections.Generic.IComparer, System.Collections.Generic.IComparer, System.Collections.Generic.IEqualityComparer, System.Collections.Generic.IEqualityComparer + public sealed class HandleComparer : System.Collections.Generic.IComparer, System.Collections.Generic.IComparer, System.Collections.Generic.IEqualityComparer, System.Collections.Generic.IEqualityComparer { public int Compare(System.Reflection.Metadata.EntityHandle x, System.Reflection.Metadata.EntityHandle y) => throw null; public int Compare(System.Reflection.Metadata.Handle x, System.Reflection.Metadata.Handle y) => throw null; @@ -1012,48 +1417,46 @@ namespace System public int GetHashCode(System.Reflection.Metadata.EntityHandle obj) => throw null; public int GetHashCode(System.Reflection.Metadata.Handle obj) => throw null; } - public enum HandleKind : byte { - AssemblyDefinition = 32, - AssemblyFile = 38, - AssemblyReference = 35, - Blob = 113, + ModuleDefinition = 0, + TypeReference = 1, + TypeDefinition = 2, + FieldDefinition = 4, + MethodDefinition = 6, + Parameter = 8, + InterfaceImplementation = 9, + MemberReference = 10, Constant = 11, CustomAttribute = 12, - CustomDebugInformation = 55, DeclarativeSecurityAttribute = 14, - Document = 48, + StandaloneSignature = 17, EventDefinition = 20, + PropertyDefinition = 23, + MethodImplementation = 25, + ModuleReference = 26, + TypeSpecification = 27, + AssemblyDefinition = 32, + AssemblyReference = 35, + AssemblyFile = 38, ExportedType = 39, - FieldDefinition = 4, + ManifestResource = 40, GenericParameter = 42, + MethodSpecification = 43, GenericParameterConstraint = 44, - Guid = 114, - ImportScope = 53, - InterfaceImplementation = 9, - LocalConstant = 52, + Document = 48, + MethodDebugInformation = 49, LocalScope = 50, LocalVariable = 51, - ManifestResource = 40, - MemberReference = 10, - MethodDebugInformation = 49, - MethodDefinition = 6, - MethodImplementation = 25, - MethodSpecification = 43, - ModuleDefinition = 0, - ModuleReference = 26, - NamespaceDefinition = 124, - Parameter = 8, - PropertyDefinition = 23, - StandaloneSignature = 17, - String = 120, - TypeDefinition = 2, - TypeReference = 1, - TypeSpecification = 27, + LocalConstant = 52, + ImportScope = 53, + CustomDebugInformation = 55, UserString = 112, + Blob = 113, + Guid = 114, + String = 120, + NamespaceDefinition = 124, } - public interface IConstructedTypeProvider : System.Reflection.Metadata.ISZArrayTypeProvider { TType GetArrayType(TType elementType, System.Reflection.Metadata.ArrayShape shape); @@ -1061,114 +1464,37 @@ namespace System TType GetGenericInstantiation(TType genericType, System.Collections.Immutable.ImmutableArray typeArguments); TType GetPointerType(TType elementType); } - - public interface ICustomAttributeTypeProvider : System.Reflection.Metadata.ISZArrayTypeProvider, System.Reflection.Metadata.ISimpleTypeProvider + public interface ICustomAttributeTypeProvider : System.Reflection.Metadata.ISimpleTypeProvider, System.Reflection.Metadata.ISZArrayTypeProvider { TType GetSystemType(); TType GetTypeFromSerializedName(string name); System.Reflection.Metadata.PrimitiveTypeCode GetUnderlyingEnumType(TType type); bool IsSystemType(TType type); } - public enum ILOpCode : ushort { - Add = 88, - Add_ovf = 214, - Add_ovf_un = 215, - And = 95, - Arglist = 65024, - Beq = 59, - Beq_s = 46, - Bge = 60, - Bge_s = 47, - Bge_un = 65, - Bge_un_s = 52, - Bgt = 61, - Bgt_s = 48, - Bgt_un = 66, - Bgt_un_s = 53, - Ble = 62, - Ble_s = 49, - Ble_un = 67, - Ble_un_s = 54, - Blt = 63, - Blt_s = 50, - Blt_un = 68, - Blt_un_s = 55, - Bne_un = 64, - Bne_un_s = 51, - Box = 140, - Br = 56, - Br_s = 43, + Nop = 0, Break = 1, - Brfalse = 57, - Brfalse_s = 44, - Brtrue = 58, - Brtrue_s = 45, - Call = 40, - Calli = 41, - Callvirt = 111, - Castclass = 116, - Ceq = 65025, - Cgt = 65026, - Cgt_un = 65027, - Ckfinite = 195, - Clt = 65028, - Clt_un = 65029, - Constrained = 65046, - Conv_i = 211, - Conv_i1 = 103, - Conv_i2 = 104, - Conv_i4 = 105, - Conv_i8 = 106, - Conv_ovf_i = 212, - Conv_ovf_i1 = 179, - Conv_ovf_i1_un = 130, - Conv_ovf_i2 = 181, - Conv_ovf_i2_un = 131, - Conv_ovf_i4 = 183, - Conv_ovf_i4_un = 132, - Conv_ovf_i8 = 185, - Conv_ovf_i8_un = 133, - Conv_ovf_i_un = 138, - Conv_ovf_u = 213, - Conv_ovf_u1 = 180, - Conv_ovf_u1_un = 134, - Conv_ovf_u2 = 182, - Conv_ovf_u2_un = 135, - Conv_ovf_u4 = 184, - Conv_ovf_u4_un = 136, - Conv_ovf_u8 = 186, - Conv_ovf_u8_un = 137, - Conv_ovf_u_un = 139, - Conv_r4 = 107, - Conv_r8 = 108, - Conv_r_un = 118, - Conv_u = 224, - Conv_u1 = 210, - Conv_u2 = 209, - Conv_u4 = 109, - Conv_u8 = 110, - Cpblk = 65047, - Cpobj = 112, - Div = 91, - Div_un = 92, - Dup = 37, - Endfilter = 65041, - Endfinally = 220, - Initblk = 65048, - Initobj = 65045, - Isinst = 117, - Jmp = 39, - Ldarg = 65033, Ldarg_0 = 2, Ldarg_1 = 3, Ldarg_2 = 4, Ldarg_3 = 5, + Ldloc_0 = 6, + Ldloc_1 = 7, + Ldloc_2 = 8, + Ldloc_3 = 9, + Stloc_0 = 10, + Stloc_1 = 11, + Stloc_2 = 12, + Stloc_3 = 13, Ldarg_s = 14, - Ldarga = 65034, Ldarga_s = 15, - Ldc_i4 = 32, + Starg_s = 16, + Ldloc_s = 17, + Ldloca_s = 18, + Stloc_s = 19, + Ldnull = 20, + Ldc_i4_m1 = 21, Ldc_i4_0 = 22, Ldc_i4_1 = 23, Ldc_i4_2 = 24, @@ -1178,82 +1504,127 @@ namespace System Ldc_i4_6 = 28, Ldc_i4_7 = 29, Ldc_i4_8 = 30, - Ldc_i4_m1 = 21, Ldc_i4_s = 31, + Ldc_i4 = 32, Ldc_i8 = 33, Ldc_r4 = 34, Ldc_r8 = 35, - Ldelem = 163, - Ldelem_i = 151, - Ldelem_i1 = 144, - Ldelem_i2 = 146, - Ldelem_i4 = 148, - Ldelem_i8 = 150, - Ldelem_r4 = 152, - Ldelem_r8 = 153, - Ldelem_ref = 154, - Ldelem_u1 = 145, - Ldelem_u2 = 147, - Ldelem_u4 = 149, - Ldelema = 143, - Ldfld = 123, - Ldflda = 124, - Ldftn = 65030, - Ldind_i = 77, + Dup = 37, + Pop = 38, + Jmp = 39, + Call = 40, + Calli = 41, + Ret = 42, + Br_s = 43, + Brfalse_s = 44, + Brtrue_s = 45, + Beq_s = 46, + Bge_s = 47, + Bgt_s = 48, + Ble_s = 49, + Blt_s = 50, + Bne_un_s = 51, + Bge_un_s = 52, + Bgt_un_s = 53, + Ble_un_s = 54, + Blt_un_s = 55, + Br = 56, + Brfalse = 57, + Brtrue = 58, + Beq = 59, + Bge = 60, + Bgt = 61, + Ble = 62, + Blt = 63, + Bne_un = 64, + Bge_un = 65, + Bgt_un = 66, + Ble_un = 67, + Blt_un = 68, + Switch = 69, Ldind_i1 = 70, + Ldind_u1 = 71, Ldind_i2 = 72, + Ldind_u2 = 73, Ldind_i4 = 74, + Ldind_u4 = 75, Ldind_i8 = 76, + Ldind_i = 77, Ldind_r4 = 78, Ldind_r8 = 79, Ldind_ref = 80, - Ldind_u1 = 71, - Ldind_u2 = 73, - Ldind_u4 = 75, - Ldlen = 142, - Ldloc = 65036, - Ldloc_0 = 6, - Ldloc_1 = 7, - Ldloc_2 = 8, - Ldloc_3 = 9, - Ldloc_s = 17, - Ldloca = 65037, - Ldloca_s = 18, - Ldnull = 20, - Ldobj = 113, - Ldsfld = 126, - Ldsflda = 127, - Ldstr = 114, - Ldtoken = 208, - Ldvirtftn = 65031, - Leave = 221, - Leave_s = 222, - Localloc = 65039, - Mkrefany = 198, + Stind_ref = 81, + Stind_i1 = 82, + Stind_i2 = 83, + Stind_i4 = 84, + Stind_i8 = 85, + Stind_r4 = 86, + Stind_r8 = 87, + Add = 88, + Sub = 89, Mul = 90, - Mul_ovf = 216, - Mul_ovf_un = 217, - Neg = 101, - Newarr = 141, - Newobj = 115, - Nop = 0, - Not = 102, - Or = 96, - Pop = 38, - Readonly = 65054, - Refanytype = 65053, - Refanyval = 194, + Div = 91, + Div_un = 92, Rem = 93, Rem_un = 94, - Ret = 42, - Rethrow = 65050, + And = 95, + Or = 96, + Xor = 97, Shl = 98, Shr = 99, Shr_un = 100, - Sizeof = 65052, - Starg = 65035, - Starg_s = 16, - Stelem = 164, + Neg = 101, + Not = 102, + Conv_i1 = 103, + Conv_i2 = 104, + Conv_i4 = 105, + Conv_i8 = 106, + Conv_r4 = 107, + Conv_r8 = 108, + Conv_u4 = 109, + Conv_u8 = 110, + Callvirt = 111, + Cpobj = 112, + Ldobj = 113, + Ldstr = 114, + Newobj = 115, + Castclass = 116, + Isinst = 117, + Conv_r_un = 118, + Unbox = 121, + Throw = 122, + Ldfld = 123, + Ldflda = 124, + Stfld = 125, + Ldsfld = 126, + Ldsflda = 127, + Stsfld = 128, + Stobj = 129, + Conv_ovf_i1_un = 130, + Conv_ovf_i2_un = 131, + Conv_ovf_i4_un = 132, + Conv_ovf_i8_un = 133, + Conv_ovf_u1_un = 134, + Conv_ovf_u2_un = 135, + Conv_ovf_u4_un = 136, + Conv_ovf_u8_un = 137, + Conv_ovf_i_un = 138, + Conv_ovf_u_un = 139, + Box = 140, + Newarr = 141, + Ldlen = 142, + Ldelema = 143, + Ldelem_i1 = 144, + Ldelem_u1 = 145, + Ldelem_i2 = 146, + Ldelem_u2 = 147, + Ldelem_i4 = 148, + Ldelem_u4 = 149, + Ldelem_i8 = 150, + Ldelem_i = 151, + Ldelem_r4 = 152, + Ldelem_r8 = 153, + Ldelem_ref = 154, Stelem_i = 155, Stelem_i1 = 156, Stelem_i2 = 157, @@ -1262,84 +1633,87 @@ namespace System Stelem_r4 = 160, Stelem_r8 = 161, Stelem_ref = 162, - Stfld = 125, - Stind_i = 223, - Stind_i1 = 82, - Stind_i2 = 83, - Stind_i4 = 84, - Stind_i8 = 85, - Stind_r4 = 86, - Stind_r8 = 87, - Stind_ref = 81, - Stloc = 65038, - Stloc_0 = 10, - Stloc_1 = 11, - Stloc_2 = 12, - Stloc_3 = 13, - Stloc_s = 19, - Stobj = 129, - Stsfld = 128, - Sub = 89, + Ldelem = 163, + Stelem = 164, + Unbox_any = 165, + Conv_ovf_i1 = 179, + Conv_ovf_u1 = 180, + Conv_ovf_i2 = 181, + Conv_ovf_u2 = 182, + Conv_ovf_i4 = 183, + Conv_ovf_u4 = 184, + Conv_ovf_i8 = 185, + Conv_ovf_u8 = 186, + Refanyval = 194, + Ckfinite = 195, + Mkrefany = 198, + Ldtoken = 208, + Conv_u2 = 209, + Conv_u1 = 210, + Conv_i = 211, + Conv_ovf_i = 212, + Conv_ovf_u = 213, + Add_ovf = 214, + Add_ovf_un = 215, + Mul_ovf = 216, + Mul_ovf_un = 217, Sub_ovf = 218, Sub_ovf_un = 219, - Switch = 69, - Tail = 65044, - Throw = 122, + Endfinally = 220, + Leave = 221, + Leave_s = 222, + Stind_i = 223, + Conv_u = 224, + Arglist = 65024, + Ceq = 65025, + Cgt = 65026, + Cgt_un = 65027, + Clt = 65028, + Clt_un = 65029, + Ldftn = 65030, + Ldvirtftn = 65031, + Ldarg = 65033, + Ldarga = 65034, + Starg = 65035, + Ldloc = 65036, + Ldloca = 65037, + Stloc = 65038, + Localloc = 65039, + Endfilter = 65041, Unaligned = 65042, - Unbox = 121, - Unbox_any = 165, Volatile = 65043, - Xor = 97, + Tail = 65044, + Initobj = 65045, + Constrained = 65046, + Cpblk = 65047, + Initblk = 65048, + Rethrow = 65050, + Sizeof = 65052, + Refanytype = 65053, + Readonly = 65054, } - - public static class ILOpCodeExtensions + public static partial class ILOpCodeExtensions { public static int GetBranchOperandSize(this System.Reflection.Metadata.ILOpCode opCode) => throw null; public static System.Reflection.Metadata.ILOpCode GetLongBranch(this System.Reflection.Metadata.ILOpCode opCode) => throw null; public static System.Reflection.Metadata.ILOpCode GetShortBranch(this System.Reflection.Metadata.ILOpCode opCode) => throw null; public static bool IsBranch(this System.Reflection.Metadata.ILOpCode opCode) => throw null; } - - public interface ISZArrayTypeProvider - { - TType GetSZArrayType(TType elementType); - } - - public interface ISignatureTypeProvider : System.Reflection.Metadata.IConstructedTypeProvider, System.Reflection.Metadata.ISZArrayTypeProvider, System.Reflection.Metadata.ISimpleTypeProvider - { - TType GetFunctionPointerType(System.Reflection.Metadata.MethodSignature signature); - TType GetGenericMethodParameter(TGenericContext genericContext, int index); - TType GetGenericTypeParameter(TGenericContext genericContext, int index); - TType GetModifiedType(TType modifier, TType unmodifiedType, bool isRequired); - TType GetPinnedType(TType elementType); - TType GetTypeFromSpecification(System.Reflection.Metadata.MetadataReader reader, TGenericContext genericContext, System.Reflection.Metadata.TypeSpecificationHandle handle, System.Byte rawTypeKind); - } - - public interface ISimpleTypeProvider - { - TType GetPrimitiveType(System.Reflection.Metadata.PrimitiveTypeCode typeCode); - TType GetTypeFromDefinition(System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.TypeDefinitionHandle handle, System.Byte rawTypeKind); - TType GetTypeFromReference(System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.TypeReferenceHandle handle, System.Byte rawTypeKind); - } - public class ImageFormatLimitationException : System.Exception { public ImageFormatLimitationException() => throw null; - protected ImageFormatLimitationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public ImageFormatLimitationException(string message) => throw null; public ImageFormatLimitationException(string message, System.Exception innerException) => throw null; + protected ImageFormatLimitationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - public struct ImportDefinition { public System.Reflection.Metadata.BlobHandle Alias { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.ImportDefinitionKind Kind { get => throw null; } public System.Reflection.Metadata.AssemblyReferenceHandle TargetAssembly { get => throw null; } public System.Reflection.Metadata.BlobHandle TargetNamespace { get => throw null; } public System.Reflection.Metadata.EntityHandle TargetType { get => throw null; } } - public struct ImportDefinitionCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable @@ -1347,158 +1721,144 @@ namespace System public System.Reflection.Metadata.ImportDefinition Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; public void Reset() => throw null; } - - public System.Reflection.Metadata.ImportDefinitionCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - - public enum ImportDefinitionKind : int + public enum ImportDefinitionKind { - AliasAssemblyNamespace = 8, - AliasAssemblyReference = 6, - AliasNamespace = 7, - AliasType = 9, - ImportAssemblyNamespace = 2, - ImportAssemblyReferenceAlias = 5, ImportNamespace = 1, + ImportAssemblyNamespace = 2, ImportType = 3, ImportXmlNamespace = 4, + ImportAssemblyReferenceAlias = 5, + AliasAssemblyReference = 6, + AliasNamespace = 7, + AliasAssemblyNamespace = 8, + AliasType = 9, } - public struct ImportScope { public System.Reflection.Metadata.ImportDefinitionCollection GetImports() => throw null; - // Stub generator skipped constructor public System.Reflection.Metadata.BlobHandle ImportsBlob { get => throw null; } public System.Reflection.Metadata.ImportScopeHandle Parent { get => throw null; } } - - public struct ImportScopeCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct ImportScopeCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.ImportScopeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.ImportScopeCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct ImportScopeHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.ImportScopeHandle left, System.Reflection.Metadata.ImportScopeHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.ImportScopeHandle left, System.Reflection.Metadata.ImportScopeHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.ImportScopeHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.ImportScopeHandle other) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.ImportScopeHandle left, System.Reflection.Metadata.ImportScopeHandle right) => throw null; public static explicit operator System.Reflection.Metadata.ImportScopeHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.ImportScopeHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.ImportScopeHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ImportScopeHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.ImportScopeHandle left, System.Reflection.Metadata.ImportScopeHandle right) => throw null; } - public struct InterfaceImplementation { public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.EntityHandle Interface { get => throw null; } - // Stub generator skipped constructor } - public struct InterfaceImplementationHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.InterfaceImplementationHandle left, System.Reflection.Metadata.InterfaceImplementationHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.InterfaceImplementationHandle left, System.Reflection.Metadata.InterfaceImplementationHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.InterfaceImplementationHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.InterfaceImplementationHandle other) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor public bool IsNil { get => throw null; } + public static bool operator ==(System.Reflection.Metadata.InterfaceImplementationHandle left, System.Reflection.Metadata.InterfaceImplementationHandle right) => throw null; public static explicit operator System.Reflection.Metadata.InterfaceImplementationHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.InterfaceImplementationHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.InterfaceImplementationHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.InterfaceImplementationHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.InterfaceImplementationHandle left, System.Reflection.Metadata.InterfaceImplementationHandle right) => throw null; } - - public struct InterfaceImplementationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct InterfaceImplementationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.InterfaceImplementationHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.InterfaceImplementationHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - + public interface ISignatureTypeProvider : System.Reflection.Metadata.IConstructedTypeProvider, System.Reflection.Metadata.ISZArrayTypeProvider, System.Reflection.Metadata.ISimpleTypeProvider + { + TType GetFunctionPointerType(System.Reflection.Metadata.MethodSignature signature); + TType GetGenericMethodParameter(TGenericContext genericContext, int index); + TType GetGenericTypeParameter(TGenericContext genericContext, int index); + TType GetModifiedType(TType modifier, TType unmodifiedType, bool isRequired); + TType GetPinnedType(TType elementType); + TType GetTypeFromSpecification(System.Reflection.Metadata.MetadataReader reader, TGenericContext genericContext, System.Reflection.Metadata.TypeSpecificationHandle handle, byte rawTypeKind); + } + public interface ISimpleTypeProvider + { + TType GetPrimitiveType(System.Reflection.Metadata.PrimitiveTypeCode typeCode); + TType GetTypeFromDefinition(System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.TypeDefinitionHandle handle, byte rawTypeKind); + TType GetTypeFromReference(System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.TypeReferenceHandle handle, byte rawTypeKind); + } + public interface ISZArrayTypeProvider + { + TType GetSZArrayType(TType elementType); + } public struct LocalConstant { - // Stub generator skipped constructor public System.Reflection.Metadata.StringHandle Name { get => throw null; } public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - public struct LocalConstantHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.LocalConstantHandle left, System.Reflection.Metadata.LocalConstantHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.LocalConstantHandle left, System.Reflection.Metadata.LocalConstantHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.LocalConstantHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.LocalConstantHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.LocalConstantHandle left, System.Reflection.Metadata.LocalConstantHandle right) => throw null; public static explicit operator System.Reflection.Metadata.LocalConstantHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.LocalConstantHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.LocalConstantHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.LocalConstantHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.LocalConstantHandle left, System.Reflection.Metadata.LocalConstantHandle right) => throw null; } - - public struct LocalConstantHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct LocalConstantHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.LocalConstantHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.LocalConstantHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct LocalScope { public int EndOffset { get => throw null; } @@ -1507,216 +1867,177 @@ namespace System public System.Reflection.Metadata.LocalVariableHandleCollection GetLocalVariables() => throw null; public System.Reflection.Metadata.ImportScopeHandle ImportScope { get => throw null; } public int Length { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.MethodDefinitionHandle Method { get => throw null; } public int StartOffset { get => throw null; } } - public struct LocalScopeHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.LocalScopeHandle left, System.Reflection.Metadata.LocalScopeHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.LocalScopeHandle left, System.Reflection.Metadata.LocalScopeHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.LocalScopeHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.LocalScopeHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.LocalScopeHandle left, System.Reflection.Metadata.LocalScopeHandle right) => throw null; public static explicit operator System.Reflection.Metadata.LocalScopeHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.LocalScopeHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.LocalScopeHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.LocalScopeHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.LocalScopeHandle left, System.Reflection.Metadata.LocalScopeHandle right) => throw null; } - - public struct LocalScopeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct LocalScopeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public struct ChildrenEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { - // Stub generator skipped constructor public System.Reflection.Metadata.LocalScopeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.LocalScopeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.LocalScopeHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct LocalVariable { public System.Reflection.Metadata.LocalVariableAttributes Attributes { get => throw null; } public int Index { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.StringHandle Name { get => throw null; } } - [System.Flags] - public enum LocalVariableAttributes : int + public enum LocalVariableAttributes { - DebuggerHidden = 1, None = 0, + DebuggerHidden = 1, } - public struct LocalVariableHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.LocalVariableHandle left, System.Reflection.Metadata.LocalVariableHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.LocalVariableHandle left, System.Reflection.Metadata.LocalVariableHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.LocalVariableHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.LocalVariableHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.LocalVariableHandle left, System.Reflection.Metadata.LocalVariableHandle right) => throw null; public static explicit operator System.Reflection.Metadata.LocalVariableHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.LocalVariableHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.LocalVariableHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.LocalVariableHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.LocalVariableHandle left, System.Reflection.Metadata.LocalVariableHandle right) => throw null; } - - public struct LocalVariableHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct LocalVariableHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.LocalVariableHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.LocalVariableHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct ManifestResource { public System.Reflection.ManifestResourceAttributes Attributes { get => throw null; } public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.EntityHandle Implementation { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.StringHandle Name { get => throw null; } - public System.Int64 Offset { get => throw null; } + public long Offset { get => throw null; } } - public struct ManifestResourceHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.ManifestResourceHandle left, System.Reflection.Metadata.ManifestResourceHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.ManifestResourceHandle left, System.Reflection.Metadata.ManifestResourceHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.ManifestResourceHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.ManifestResourceHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.ManifestResourceHandle left, System.Reflection.Metadata.ManifestResourceHandle right) => throw null; public static explicit operator System.Reflection.Metadata.ManifestResourceHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.ManifestResourceHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.ManifestResourceHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ManifestResourceHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.ManifestResourceHandle left, System.Reflection.Metadata.ManifestResourceHandle right) => throw null; } - - public struct ManifestResourceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct ManifestResourceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.ManifestResourceHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.ManifestResourceHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct MemberReference { public TType DecodeFieldSignature(System.Reflection.Metadata.ISignatureTypeProvider provider, TGenericContext genericContext) => throw null; public System.Reflection.Metadata.MethodSignature DecodeMethodSignature(System.Reflection.Metadata.ISignatureTypeProvider provider, TGenericContext genericContext) => throw null; public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.MemberReferenceKind GetKind() => throw null; - // Stub generator skipped constructor public System.Reflection.Metadata.StringHandle Name { get => throw null; } public System.Reflection.Metadata.EntityHandle Parent { get => throw null; } public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - public struct MemberReferenceHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.MemberReferenceHandle left, System.Reflection.Metadata.MemberReferenceHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.MemberReferenceHandle left, System.Reflection.Metadata.MemberReferenceHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.MemberReferenceHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.MemberReferenceHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.MemberReferenceHandle left, System.Reflection.Metadata.MemberReferenceHandle right) => throw null; public static explicit operator System.Reflection.Metadata.MemberReferenceHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.MemberReferenceHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.MemberReferenceHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.MemberReferenceHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.MemberReferenceHandle left, System.Reflection.Metadata.MemberReferenceHandle right) => throw null; } - - public struct MemberReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct MemberReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.MemberReferenceHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.MemberReferenceHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - - public enum MemberReferenceKind : int + public enum MemberReferenceKind { - Field = 1, Method = 0, + Field = 1, } - - public enum MetadataKind : int + public enum MetadataKind { Ecma335 = 0, - ManagedWindowsMetadata = 2, WindowsMetadata = 1, + ManagedWindowsMetadata = 2, } - - public class MetadataReader + public sealed class MetadataReader { public System.Reflection.Metadata.AssemblyFileHandleCollection AssemblyFiles { get => throw null; } public System.Reflection.Metadata.AssemblyReferenceHandleCollection AssemblyReferences { get => throw null; } + public unsafe MetadataReader(byte* metadata, int length) => throw null; + public unsafe MetadataReader(byte* metadata, int length, System.Reflection.Metadata.MetadataReaderOptions options) => throw null; + public unsafe MetadataReader(byte* metadata, int length, System.Reflection.Metadata.MetadataReaderOptions options, System.Reflection.Metadata.MetadataStringDecoder utf8Decoder) => throw null; public System.Reflection.Metadata.CustomAttributeHandleCollection CustomAttributes { get => throw null; } public System.Reflection.Metadata.CustomDebugInformationHandleCollection CustomDebugInformation { get => throw null; } public System.Reflection.Metadata.DebugMetadataHeader DebugMetadataHeader { get => throw null; } @@ -1729,8 +2050,8 @@ namespace System public System.Reflection.Metadata.AssemblyFile GetAssemblyFile(System.Reflection.Metadata.AssemblyFileHandle handle) => throw null; public static System.Reflection.AssemblyName GetAssemblyName(string assemblyFile) => throw null; public System.Reflection.Metadata.AssemblyReference GetAssemblyReference(System.Reflection.Metadata.AssemblyReferenceHandle handle) => throw null; - public System.Byte[] GetBlobBytes(System.Reflection.Metadata.BlobHandle handle) => throw null; - public System.Collections.Immutable.ImmutableArray GetBlobContent(System.Reflection.Metadata.BlobHandle handle) => throw null; + public byte[] GetBlobBytes(System.Reflection.Metadata.BlobHandle handle) => throw null; + public System.Collections.Immutable.ImmutableArray GetBlobContent(System.Reflection.Metadata.BlobHandle handle) => throw null; public System.Reflection.Metadata.BlobReader GetBlobReader(System.Reflection.Metadata.BlobHandle handle) => throw null; public System.Reflection.Metadata.BlobReader GetBlobReader(System.Reflection.Metadata.StringHandle handle) => throw null; public System.Reflection.Metadata.Constant GetConstant(System.Reflection.Metadata.ConstantHandle handle) => throw null; @@ -1783,10 +2104,7 @@ namespace System public System.Reflection.Metadata.MemberReferenceHandleCollection MemberReferences { get => throw null; } public System.Reflection.Metadata.MetadataKind MetadataKind { get => throw null; } public int MetadataLength { get => throw null; } - unsafe public System.Byte* MetadataPointer { get => throw null; } - unsafe public MetadataReader(System.Byte* metadata, int length) => throw null; - unsafe public MetadataReader(System.Byte* metadata, int length, System.Reflection.Metadata.MetadataReaderOptions options) => throw null; - unsafe public MetadataReader(System.Byte* metadata, int length, System.Reflection.Metadata.MetadataReaderOptions options, System.Reflection.Metadata.MetadataStringDecoder utf8Decoder) => throw null; + public unsafe byte* MetadataPointer { get => throw null; } public string MetadataVersion { get => throw null; } public System.Reflection.Metadata.MethodDebugInformationHandleCollection MethodDebugInformation { get => throw null; } public System.Reflection.Metadata.MethodDefinitionHandleCollection MethodDefinitions { get => throw null; } @@ -1797,35 +2115,31 @@ namespace System public System.Reflection.Metadata.TypeReferenceHandleCollection TypeReferences { get => throw null; } public System.Reflection.Metadata.MetadataStringDecoder UTF8Decoder { get => throw null; } } - [System.Flags] - public enum MetadataReaderOptions : int + public enum MetadataReaderOptions { + None = 0, ApplyWindowsRuntimeProjections = 1, Default = 1, - None = 0, } - - public class MetadataReaderProvider : System.IDisposable + public sealed class MetadataReaderProvider : System.IDisposable { public void Dispose() => throw null; - public static System.Reflection.Metadata.MetadataReaderProvider FromMetadataImage(System.Collections.Immutable.ImmutableArray image) => throw null; - unsafe public static System.Reflection.Metadata.MetadataReaderProvider FromMetadataImage(System.Byte* start, int size) => throw null; + public static unsafe System.Reflection.Metadata.MetadataReaderProvider FromMetadataImage(byte* start, int size) => throw null; + public static System.Reflection.Metadata.MetadataReaderProvider FromMetadataImage(System.Collections.Immutable.ImmutableArray image) => throw null; public static System.Reflection.Metadata.MetadataReaderProvider FromMetadataStream(System.IO.Stream stream, System.Reflection.Metadata.MetadataStreamOptions options = default(System.Reflection.Metadata.MetadataStreamOptions), int size = default(int)) => throw null; - public static System.Reflection.Metadata.MetadataReaderProvider FromPortablePdbImage(System.Collections.Immutable.ImmutableArray image) => throw null; - unsafe public static System.Reflection.Metadata.MetadataReaderProvider FromPortablePdbImage(System.Byte* start, int size) => throw null; + public static unsafe System.Reflection.Metadata.MetadataReaderProvider FromPortablePdbImage(byte* start, int size) => throw null; + public static System.Reflection.Metadata.MetadataReaderProvider FromPortablePdbImage(System.Collections.Immutable.ImmutableArray image) => throw null; public static System.Reflection.Metadata.MetadataReaderProvider FromPortablePdbStream(System.IO.Stream stream, System.Reflection.Metadata.MetadataStreamOptions options = default(System.Reflection.Metadata.MetadataStreamOptions), int size = default(int)) => throw null; public System.Reflection.Metadata.MetadataReader GetMetadataReader(System.Reflection.Metadata.MetadataReaderOptions options = default(System.Reflection.Metadata.MetadataReaderOptions), System.Reflection.Metadata.MetadataStringDecoder utf8Decoder = default(System.Reflection.Metadata.MetadataStringDecoder)) => throw null; } - [System.Flags] - public enum MetadataStreamOptions : int + public enum MetadataStreamOptions { Default = 0, LeaveOpen = 1, PrefetchMetadata = 2, } - public struct MetadataStringComparer { public bool Equals(System.Reflection.Metadata.DocumentNameBlobHandle handle, string value) => throw null; @@ -1834,78 +2148,65 @@ namespace System public bool Equals(System.Reflection.Metadata.NamespaceDefinitionHandle handle, string value, bool ignoreCase) => throw null; public bool Equals(System.Reflection.Metadata.StringHandle handle, string value) => throw null; public bool Equals(System.Reflection.Metadata.StringHandle handle, string value, bool ignoreCase) => throw null; - // Stub generator skipped constructor public bool StartsWith(System.Reflection.Metadata.StringHandle handle, string value) => throw null; public bool StartsWith(System.Reflection.Metadata.StringHandle handle, string value, bool ignoreCase) => throw null; } - public class MetadataStringDecoder { + public MetadataStringDecoder(System.Text.Encoding encoding) => throw null; public static System.Reflection.Metadata.MetadataStringDecoder DefaultUTF8 { get => throw null; } public System.Text.Encoding Encoding { get => throw null; } - unsafe public virtual string GetString(System.Byte* bytes, int byteCount) => throw null; - public MetadataStringDecoder(System.Text.Encoding encoding) => throw null; + public virtual unsafe string GetString(byte* bytes, int byteCount) => throw null; } - - public class MethodBodyBlock + public sealed class MethodBodyBlock { public static System.Reflection.Metadata.MethodBodyBlock Create(System.Reflection.Metadata.BlobReader reader) => throw null; public System.Collections.Immutable.ImmutableArray ExceptionRegions { get => throw null; } - public System.Byte[] GetILBytes() => throw null; - public System.Collections.Immutable.ImmutableArray GetILContent() => throw null; + public byte[] GetILBytes() => throw null; + public System.Collections.Immutable.ImmutableArray GetILContent() => throw null; public System.Reflection.Metadata.BlobReader GetILReader() => throw null; public System.Reflection.Metadata.StandaloneSignatureHandle LocalSignature { get => throw null; } public bool LocalVariablesInitialized { get => throw null; } public int MaxStack { get => throw null; } public int Size { get => throw null; } } - public struct MethodDebugInformation { public System.Reflection.Metadata.DocumentHandle Document { get => throw null; } public System.Reflection.Metadata.SequencePointCollection GetSequencePoints() => throw null; public System.Reflection.Metadata.MethodDefinitionHandle GetStateMachineKickoffMethod() => throw null; public System.Reflection.Metadata.StandaloneSignatureHandle LocalSignature { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.BlobHandle SequencePointsBlob { get => throw null; } } - public struct MethodDebugInformationHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.MethodDebugInformationHandle left, System.Reflection.Metadata.MethodDebugInformationHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.MethodDebugInformationHandle left, System.Reflection.Metadata.MethodDebugInformationHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.MethodDebugInformationHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.MethodDebugInformationHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor - public System.Reflection.Metadata.MethodDefinitionHandle ToDefinitionHandle() => throw null; + public static bool operator ==(System.Reflection.Metadata.MethodDebugInformationHandle left, System.Reflection.Metadata.MethodDebugInformationHandle right) => throw null; public static explicit operator System.Reflection.Metadata.MethodDebugInformationHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.MethodDebugInformationHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.MethodDebugInformationHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.MethodDebugInformationHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.MethodDebugInformationHandle left, System.Reflection.Metadata.MethodDebugInformationHandle right) => throw null; + public System.Reflection.Metadata.MethodDefinitionHandle ToDefinitionHandle() => throw null; } - - public struct MethodDebugInformationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct MethodDebugInformationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.MethodDebugInformationHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.MethodDebugInformationHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct MethodDefinition { public System.Reflection.MethodAttributes Attributes { get => throw null; } @@ -1917,214 +2218,168 @@ namespace System public System.Reflection.Metadata.MethodImport GetImport() => throw null; public System.Reflection.Metadata.ParameterHandleCollection GetParameters() => throw null; public System.Reflection.MethodImplAttributes ImplAttributes { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.StringHandle Name { get => throw null; } public int RelativeVirtualAddress { get => throw null; } public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - public struct MethodDefinitionHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.MethodDefinitionHandle left, System.Reflection.Metadata.MethodDefinitionHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.MethodDefinitionHandle left, System.Reflection.Metadata.MethodDefinitionHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.MethodDefinitionHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.MethodDefinitionHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor - public System.Reflection.Metadata.MethodDebugInformationHandle ToDebugInformationHandle() => throw null; + public static bool operator ==(System.Reflection.Metadata.MethodDefinitionHandle left, System.Reflection.Metadata.MethodDefinitionHandle right) => throw null; public static explicit operator System.Reflection.Metadata.MethodDefinitionHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.MethodDefinitionHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.MethodDefinitionHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.MethodDefinitionHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.MethodDefinitionHandle left, System.Reflection.Metadata.MethodDefinitionHandle right) => throw null; + public System.Reflection.Metadata.MethodDebugInformationHandle ToDebugInformationHandle() => throw null; } - - public struct MethodDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct MethodDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.MethodDefinitionHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.MethodDefinitionHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct MethodImplementation { public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.EntityHandle MethodBody { get => throw null; } public System.Reflection.Metadata.EntityHandle MethodDeclaration { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.TypeDefinitionHandle Type { get => throw null; } } - public struct MethodImplementationHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.MethodImplementationHandle left, System.Reflection.Metadata.MethodImplementationHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.MethodImplementationHandle left, System.Reflection.Metadata.MethodImplementationHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.MethodImplementationHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.MethodImplementationHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.MethodImplementationHandle left, System.Reflection.Metadata.MethodImplementationHandle right) => throw null; public static explicit operator System.Reflection.Metadata.MethodImplementationHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.MethodImplementationHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.MethodImplementationHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.MethodImplementationHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.MethodImplementationHandle left, System.Reflection.Metadata.MethodImplementationHandle right) => throw null; } - - public struct MethodImplementationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct MethodImplementationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.MethodImplementationHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.MethodImplementationHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct MethodImport { public System.Reflection.MethodImportAttributes Attributes { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.ModuleReferenceHandle Module { get => throw null; } public System.Reflection.Metadata.StringHandle Name { get => throw null; } } - public struct MethodSignature { + public MethodSignature(System.Reflection.Metadata.SignatureHeader header, TType returnType, int requiredParameterCount, int genericParameterCount, System.Collections.Immutable.ImmutableArray parameterTypes) => throw null; public int GenericParameterCount { get => throw null; } public System.Reflection.Metadata.SignatureHeader Header { get => throw null; } - // Stub generator skipped constructor - public MethodSignature(System.Reflection.Metadata.SignatureHeader header, TType returnType, int requiredParameterCount, int genericParameterCount, System.Collections.Immutable.ImmutableArray parameterTypes) => throw null; public System.Collections.Immutable.ImmutableArray ParameterTypes { get => throw null; } public int RequiredParameterCount { get => throw null; } public TType ReturnType { get => throw null; } } - public struct MethodSpecification { public System.Collections.Immutable.ImmutableArray DecodeSignature(System.Reflection.Metadata.ISignatureTypeProvider provider, TGenericContext genericContext) => throw null; public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.EntityHandle Method { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - public struct MethodSpecificationHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.MethodSpecificationHandle left, System.Reflection.Metadata.MethodSpecificationHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.MethodSpecificationHandle left, System.Reflection.Metadata.MethodSpecificationHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.MethodSpecificationHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.MethodSpecificationHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.MethodSpecificationHandle left, System.Reflection.Metadata.MethodSpecificationHandle right) => throw null; public static explicit operator System.Reflection.Metadata.MethodSpecificationHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.MethodSpecificationHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.MethodSpecificationHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.MethodSpecificationHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.MethodSpecificationHandle left, System.Reflection.Metadata.MethodSpecificationHandle right) => throw null; } - public struct ModuleDefinition { public System.Reflection.Metadata.GuidHandle BaseGenerationId { get => throw null; } public int Generation { get => throw null; } public System.Reflection.Metadata.GuidHandle GenerationId { get => throw null; } public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; - // Stub generator skipped constructor public System.Reflection.Metadata.GuidHandle Mvid { get => throw null; } public System.Reflection.Metadata.StringHandle Name { get => throw null; } } - public struct ModuleDefinitionHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.ModuleDefinitionHandle left, System.Reflection.Metadata.ModuleDefinitionHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.ModuleDefinitionHandle left, System.Reflection.Metadata.ModuleDefinitionHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.ModuleDefinitionHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.ModuleDefinitionHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.ModuleDefinitionHandle left, System.Reflection.Metadata.ModuleDefinitionHandle right) => throw null; public static explicit operator System.Reflection.Metadata.ModuleDefinitionHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.ModuleDefinitionHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.ModuleDefinitionHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ModuleDefinitionHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.ModuleDefinitionHandle left, System.Reflection.Metadata.ModuleDefinitionHandle right) => throw null; } - public struct ModuleReference { public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; - // Stub generator skipped constructor public System.Reflection.Metadata.StringHandle Name { get => throw null; } } - public struct ModuleReferenceHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.ModuleReferenceHandle left, System.Reflection.Metadata.ModuleReferenceHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.ModuleReferenceHandle left, System.Reflection.Metadata.ModuleReferenceHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.ModuleReferenceHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.ModuleReferenceHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.ModuleReferenceHandle left, System.Reflection.Metadata.ModuleReferenceHandle right) => throw null; public static explicit operator System.Reflection.Metadata.ModuleReferenceHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.ModuleReferenceHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.ModuleReferenceHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ModuleReferenceHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.ModuleReferenceHandle left, System.Reflection.Metadata.ModuleReferenceHandle right) => throw null; } - public struct NamespaceDefinition { public System.Collections.Immutable.ImmutableArray ExportedTypes { get => throw null; } public System.Reflection.Metadata.StringHandle Name { get => throw null; } - // Stub generator skipped constructor public System.Collections.Immutable.ImmutableArray NamespaceDefinitions { get => throw null; } public System.Reflection.Metadata.NamespaceDefinitionHandle Parent { get => throw null; } public System.Collections.Immutable.ImmutableArray TypeDefinitions { get => throw null; } } - public struct NamespaceDefinitionHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.NamespaceDefinitionHandle left, System.Reflection.Metadata.NamespaceDefinitionHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.NamespaceDefinitionHandle left, System.Reflection.Metadata.NamespaceDefinitionHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.NamespaceDefinitionHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.NamespaceDefinitionHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.NamespaceDefinitionHandle left, System.Reflection.Metadata.NamespaceDefinitionHandle right) => throw null; public static explicit operator System.Reflection.Metadata.NamespaceDefinitionHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.NamespaceDefinitionHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.NamespaceDefinitionHandle left, System.Reflection.Metadata.NamespaceDefinitionHandle right) => throw null; } - - public static class PEReaderExtensions - { - public static System.Reflection.Metadata.MetadataReader GetMetadataReader(this System.Reflection.PortableExecutable.PEReader peReader) => throw null; - public static System.Reflection.Metadata.MetadataReader GetMetadataReader(this System.Reflection.PortableExecutable.PEReader peReader, System.Reflection.Metadata.MetadataReaderOptions options) => throw null; - public static System.Reflection.Metadata.MetadataReader GetMetadataReader(this System.Reflection.PortableExecutable.PEReader peReader, System.Reflection.Metadata.MetadataReaderOptions options, System.Reflection.Metadata.MetadataStringDecoder utf8Decoder) => throw null; - public static System.Reflection.Metadata.MethodBodyBlock GetMethodBody(this System.Reflection.PortableExecutable.PEReader peReader, int relativeVirtualAddress) => throw null; - } - public struct Parameter { public System.Reflection.ParameterAttributes Attributes { get => throw null; } @@ -2132,92 +2387,86 @@ namespace System public System.Reflection.Metadata.ConstantHandle GetDefaultValue() => throw null; public System.Reflection.Metadata.BlobHandle GetMarshallingDescriptor() => throw null; public System.Reflection.Metadata.StringHandle Name { get => throw null; } - // Stub generator skipped constructor public int SequenceNumber { get => throw null; } } - public struct ParameterHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.ParameterHandle left, System.Reflection.Metadata.ParameterHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.ParameterHandle left, System.Reflection.Metadata.ParameterHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.ParameterHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.ParameterHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.ParameterHandle left, System.Reflection.Metadata.ParameterHandle right) => throw null; public static explicit operator System.Reflection.Metadata.ParameterHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.ParameterHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.ParameterHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ParameterHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.ParameterHandle left, System.Reflection.Metadata.ParameterHandle right) => throw null; } - - public struct ParameterHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct ParameterHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.ParameterHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.ParameterHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - + public static partial class PEReaderExtensions + { + public static System.Reflection.Metadata.MetadataReader GetMetadataReader(this System.Reflection.PortableExecutable.PEReader peReader) => throw null; + public static System.Reflection.Metadata.MetadataReader GetMetadataReader(this System.Reflection.PortableExecutable.PEReader peReader, System.Reflection.Metadata.MetadataReaderOptions options) => throw null; + public static System.Reflection.Metadata.MetadataReader GetMetadataReader(this System.Reflection.PortableExecutable.PEReader peReader, System.Reflection.Metadata.MetadataReaderOptions options, System.Reflection.Metadata.MetadataStringDecoder utf8Decoder) => throw null; + public static System.Reflection.Metadata.MethodBodyBlock GetMethodBody(this System.Reflection.PortableExecutable.PEReader peReader, int relativeVirtualAddress) => throw null; + } public enum PrimitiveSerializationTypeCode : byte { Boolean = 2, - Byte = 5, Char = 3, - Double = 13, - Int16 = 6, - Int32 = 8, - Int64 = 10, SByte = 4, - Single = 12, - String = 14, + Byte = 5, + Int16 = 6, UInt16 = 7, + Int32 = 8, UInt32 = 9, + Int64 = 10, UInt64 = 11, + Single = 12, + Double = 13, + String = 14, } - public enum PrimitiveTypeCode : byte { + Void = 1, Boolean = 2, - Byte = 5, Char = 3, - Double = 13, - Int16 = 6, - Int32 = 8, - Int64 = 10, - IntPtr = 24, - Object = 28, SByte = 4, + Byte = 5, + Int16 = 6, + UInt16 = 7, + Int32 = 8, + UInt32 = 9, + Int64 = 10, + UInt64 = 11, Single = 12, + Double = 13, String = 14, TypedReference = 22, - UInt16 = 7, - UInt32 = 9, - UInt64 = 11, + IntPtr = 24, UIntPtr = 25, - Void = 1, + Object = 28, } - public struct PropertyAccessors { public System.Reflection.Metadata.MethodDefinitionHandle Getter { get => throw null; } public System.Collections.Immutable.ImmutableArray Others { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.MethodDefinitionHandle Setter { get => throw null; } } - public struct PropertyDefinition { public System.Reflection.PropertyAttributes Attributes { get => throw null; } @@ -2226,69 +2475,56 @@ namespace System public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.ConstantHandle GetDefaultValue() => throw null; public System.Reflection.Metadata.StringHandle Name { get => throw null; } - // Stub generator skipped constructor public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - public struct PropertyDefinitionHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.PropertyDefinitionHandle left, System.Reflection.Metadata.PropertyDefinitionHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.PropertyDefinitionHandle left, System.Reflection.Metadata.PropertyDefinitionHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.PropertyDefinitionHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.PropertyDefinitionHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.PropertyDefinitionHandle left, System.Reflection.Metadata.PropertyDefinitionHandle right) => throw null; public static explicit operator System.Reflection.Metadata.PropertyDefinitionHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.PropertyDefinitionHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.PropertyDefinitionHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.PropertyDefinitionHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.PropertyDefinitionHandle left, System.Reflection.Metadata.PropertyDefinitionHandle right) => throw null; } - - public struct PropertyDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct PropertyDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.PropertyDefinitionHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.PropertyDefinitionHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct ReservedBlob where THandle : struct { public System.Reflection.Metadata.Blob Content { get => throw null; } public System.Reflection.Metadata.BlobWriter CreateWriter() => throw null; public THandle Handle { get => throw null; } - // Stub generator skipped constructor } - public struct SequencePoint : System.IEquatable { public System.Reflection.Metadata.DocumentHandle Document { get => throw null; } public int EndColumn { get => throw null; } public int EndLine { get => throw null; } - public bool Equals(System.Reflection.Metadata.SequencePoint other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.SequencePoint other) => throw null; public override int GetHashCode() => throw null; - public const int HiddenLine = default; + public static int HiddenLine; public bool IsHidden { get => throw null; } public int Offset { get => throw null; } - // Stub generator skipped constructor public int StartColumn { get => throw null; } public int StartLine { get => throw null; } } - public struct SequencePointCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable @@ -2296,133 +2532,120 @@ namespace System public System.Reflection.Metadata.SequencePoint Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; public void Reset() => throw null; } - - public System.Reflection.Metadata.SequencePointCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public enum SerializationTypeCode : byte { - Boolean = 2, - Byte = 5, - Char = 3, - Double = 13, - Enum = 85, - Int16 = 6, - Int32 = 8, - Int64 = 10, Invalid = 0, + Boolean = 2, + Char = 3, SByte = 4, - SZArray = 29, - Single = 12, - String = 14, - TaggedObject = 81, - Type = 80, + Byte = 5, + Int16 = 6, UInt16 = 7, + Int32 = 8, UInt32 = 9, + Int64 = 10, UInt64 = 11, + Single = 12, + Double = 13, + String = 14, + SZArray = 29, + Type = 80, + TaggedObject = 81, + Enum = 85, } - [System.Flags] public enum SignatureAttributes : byte { - ExplicitThis = 64, + None = 0, Generic = 16, Instance = 32, - None = 0, + ExplicitThis = 64, } - public enum SignatureCallingConvention : byte { - CDecl = 1, Default = 0, - FastCall = 4, + CDecl = 1, StdCall = 2, ThisCall = 3, - Unmanaged = 9, + FastCall = 4, VarArgs = 5, + Unmanaged = 9, } - public struct SignatureHeader : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.SignatureHeader left, System.Reflection.Metadata.SignatureHeader right) => throw null; - public static bool operator ==(System.Reflection.Metadata.SignatureHeader left, System.Reflection.Metadata.SignatureHeader right) => throw null; public System.Reflection.Metadata.SignatureAttributes Attributes { get => throw null; } public System.Reflection.Metadata.SignatureCallingConvention CallingConvention { get => throw null; } - public const System.Byte CallingConventionOrKindMask = default; - public bool Equals(System.Reflection.Metadata.SignatureHeader other) => throw null; + public static byte CallingConventionOrKindMask; + public SignatureHeader(byte rawValue) => throw null; + public SignatureHeader(System.Reflection.Metadata.SignatureKind kind, System.Reflection.Metadata.SignatureCallingConvention convention, System.Reflection.Metadata.SignatureAttributes attributes) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.SignatureHeader other) => throw null; public override int GetHashCode() => throw null; public bool HasExplicitThis { get => throw null; } public bool IsGeneric { get => throw null; } public bool IsInstance { get => throw null; } public System.Reflection.Metadata.SignatureKind Kind { get => throw null; } - public System.Byte RawValue { get => throw null; } - // Stub generator skipped constructor - public SignatureHeader(System.Reflection.Metadata.SignatureKind kind, System.Reflection.Metadata.SignatureCallingConvention convention, System.Reflection.Metadata.SignatureAttributes attributes) => throw null; - public SignatureHeader(System.Byte rawValue) => throw null; + public static bool operator ==(System.Reflection.Metadata.SignatureHeader left, System.Reflection.Metadata.SignatureHeader right) => throw null; + public static bool operator !=(System.Reflection.Metadata.SignatureHeader left, System.Reflection.Metadata.SignatureHeader right) => throw null; + public byte RawValue { get => throw null; } public override string ToString() => throw null; } - public enum SignatureKind : byte { + Method = 0, Field = 6, LocalVariables = 7, - Method = 0, - MethodSpecification = 10, Property = 8, + MethodSpecification = 10, } - public enum SignatureTypeCode : byte { - Array = 20, - Boolean = 2, - ByReference = 16, - Byte = 5, - Char = 3, - Double = 13, - FunctionPointer = 27, - GenericMethodParameter = 30, - GenericTypeInstance = 21, - GenericTypeParameter = 19, - Int16 = 6, - Int32 = 8, - Int64 = 10, - IntPtr = 24, Invalid = 0, - Object = 28, - OptionalModifier = 32, - Pinned = 69, - Pointer = 15, - RequiredModifier = 31, - SByte = 4, - SZArray = 29, - Sentinel = 65, - Single = 12, - String = 14, - TypeHandle = 64, - TypedReference = 22, - UInt16 = 7, - UInt32 = 9, - UInt64 = 11, - UIntPtr = 25, Void = 1, + Boolean = 2, + Char = 3, + SByte = 4, + Byte = 5, + Int16 = 6, + UInt16 = 7, + Int32 = 8, + UInt32 = 9, + Int64 = 10, + UInt64 = 11, + Single = 12, + Double = 13, + String = 14, + Pointer = 15, + ByReference = 16, + GenericTypeParameter = 19, + Array = 20, + GenericTypeInstance = 21, + TypedReference = 22, + IntPtr = 24, + UIntPtr = 25, + FunctionPointer = 27, + Object = 28, + SZArray = 29, + GenericMethodParameter = 30, + RequiredModifier = 31, + OptionalModifier = 32, + TypeHandle = 64, + Sentinel = 65, + Pinned = 69, } - public enum SignatureTypeKind : byte { - Class = 18, Unknown = 0, ValueType = 17, + Class = 18, } - public struct StandaloneSignature { public System.Collections.Immutable.ImmutableArray DecodeLocalSignature(System.Reflection.Metadata.ISignatureTypeProvider provider, TGenericContext genericContext) => throw null; @@ -2430,43 +2653,36 @@ namespace System public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.StandaloneSignatureKind GetKind() => throw null; public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } - // Stub generator skipped constructor } - public struct StandaloneSignatureHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.StandaloneSignatureHandle left, System.Reflection.Metadata.StandaloneSignatureHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.StandaloneSignatureHandle left, System.Reflection.Metadata.StandaloneSignatureHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.StandaloneSignatureHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.StandaloneSignatureHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.StandaloneSignatureHandle left, System.Reflection.Metadata.StandaloneSignatureHandle right) => throw null; public static explicit operator System.Reflection.Metadata.StandaloneSignatureHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.StandaloneSignatureHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.StandaloneSignatureHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.StandaloneSignatureHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.StandaloneSignatureHandle left, System.Reflection.Metadata.StandaloneSignatureHandle right) => throw null; } - - public enum StandaloneSignatureKind : int + public enum StandaloneSignatureKind { - LocalVariables = 1, Method = 0, + LocalVariables = 1, } - public struct StringHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.StringHandle left, System.Reflection.Metadata.StringHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.StringHandle left, System.Reflection.Metadata.StringHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.StringHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.StringHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.StringHandle left, System.Reflection.Metadata.StringHandle right) => throw null; public static explicit operator System.Reflection.Metadata.StringHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.StringHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.StringHandle left, System.Reflection.Metadata.StringHandle right) => throw null; } - public struct TypeDefinition { public System.Reflection.TypeAttributes Attributes { get => throw null; } @@ -2487,1016 +2703,340 @@ namespace System public System.Reflection.Metadata.StringHandle Name { get => throw null; } public System.Reflection.Metadata.StringHandle Namespace { get => throw null; } public System.Reflection.Metadata.NamespaceDefinitionHandle NamespaceDefinition { get => throw null; } - // Stub generator skipped constructor } - public struct TypeDefinitionHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.TypeDefinitionHandle left, System.Reflection.Metadata.TypeDefinitionHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.TypeDefinitionHandle left, System.Reflection.Metadata.TypeDefinitionHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.TypeDefinitionHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.TypeDefinitionHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.TypeDefinitionHandle left, System.Reflection.Metadata.TypeDefinitionHandle right) => throw null; public static explicit operator System.Reflection.Metadata.TypeDefinitionHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.TypeDefinitionHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.TypeDefinitionHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.TypeDefinitionHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.TypeDefinitionHandle left, System.Reflection.Metadata.TypeDefinitionHandle right) => throw null; } - - public struct TypeDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct TypeDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.TypeDefinitionHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.TypeDefinitionHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct TypeLayout { + public TypeLayout(int size, int packingSize) => throw null; public bool IsDefault { get => throw null; } public int PackingSize { get => throw null; } public int Size { get => throw null; } - // Stub generator skipped constructor - public TypeLayout(int size, int packingSize) => throw null; } - public struct TypeReference { public System.Reflection.Metadata.StringHandle Name { get => throw null; } public System.Reflection.Metadata.StringHandle Namespace { get => throw null; } public System.Reflection.Metadata.EntityHandle ResolutionScope { get => throw null; } - // Stub generator skipped constructor } - public struct TypeReferenceHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.TypeReferenceHandle left, System.Reflection.Metadata.TypeReferenceHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.TypeReferenceHandle left, System.Reflection.Metadata.TypeReferenceHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.TypeReferenceHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.TypeReferenceHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.TypeReferenceHandle left, System.Reflection.Metadata.TypeReferenceHandle right) => throw null; public static explicit operator System.Reflection.Metadata.TypeReferenceHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.TypeReferenceHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.TypeReferenceHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.TypeReferenceHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.TypeReferenceHandle left, System.Reflection.Metadata.TypeReferenceHandle right) => throw null; } - - public struct TypeReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + public struct TypeReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.TypeReferenceHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } void System.IDisposable.Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - public int Count { get => throw null; } public System.Reflection.Metadata.TypeReferenceHandleCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor } - public struct TypeSpecification { public TType DecodeSignature(System.Reflection.Metadata.ISignatureTypeProvider provider, TGenericContext genericContext) => throw null; public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } - // Stub generator skipped constructor } - public struct TypeSpecificationHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.TypeSpecificationHandle left, System.Reflection.Metadata.TypeSpecificationHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.TypeSpecificationHandle left, System.Reflection.Metadata.TypeSpecificationHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.TypeSpecificationHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.TypeSpecificationHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.TypeSpecificationHandle left, System.Reflection.Metadata.TypeSpecificationHandle right) => throw null; public static explicit operator System.Reflection.Metadata.TypeSpecificationHandle(System.Reflection.Metadata.EntityHandle handle) => throw null; public static explicit operator System.Reflection.Metadata.TypeSpecificationHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.TypeSpecificationHandle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.TypeSpecificationHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.TypeSpecificationHandle left, System.Reflection.Metadata.TypeSpecificationHandle right) => throw null; } - public struct UserStringHandle : System.IEquatable { - public static bool operator !=(System.Reflection.Metadata.UserStringHandle left, System.Reflection.Metadata.UserStringHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.UserStringHandle left, System.Reflection.Metadata.UserStringHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.UserStringHandle other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Metadata.UserStringHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Metadata.UserStringHandle left, System.Reflection.Metadata.UserStringHandle right) => throw null; public static explicit operator System.Reflection.Metadata.UserStringHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.UserStringHandle handle) => throw null; + public static bool operator !=(System.Reflection.Metadata.UserStringHandle left, System.Reflection.Metadata.UserStringHandle right) => throw null; } - - namespace Ecma335 - { - public struct ArrayShapeEncoder - { - // Stub generator skipped constructor - public ArrayShapeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public void Shape(int rank, System.Collections.Immutable.ImmutableArray sizes, System.Collections.Immutable.ImmutableArray lowerBounds) => throw null; - } - - public struct BlobEncoder - { - // Stub generator skipped constructor - public BlobEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public void CustomAttributeSignature(System.Action fixedArguments, System.Action namedArguments) => throw null; - public void CustomAttributeSignature(out System.Reflection.Metadata.Ecma335.FixedArgumentsEncoder fixedArguments, out System.Reflection.Metadata.Ecma335.CustomAttributeNamedArgumentsEncoder namedArguments) => throw null; - public System.Reflection.Metadata.Ecma335.FieldTypeEncoder Field() => throw null; - public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder FieldSignature() => throw null; - public System.Reflection.Metadata.Ecma335.LocalVariablesEncoder LocalVariableSignature(int variableCount) => throw null; - public System.Reflection.Metadata.Ecma335.MethodSignatureEncoder MethodSignature(System.Reflection.Metadata.SignatureCallingConvention convention = default(System.Reflection.Metadata.SignatureCallingConvention), int genericParameterCount = default(int), bool isInstanceMethod = default(bool)) => throw null; - public System.Reflection.Metadata.Ecma335.GenericTypeArgumentsEncoder MethodSpecificationSignature(int genericArgumentCount) => throw null; - public System.Reflection.Metadata.Ecma335.NamedArgumentsEncoder PermissionSetArguments(int argumentCount) => throw null; - public System.Reflection.Metadata.Ecma335.PermissionSetEncoder PermissionSetBlob(int attributeCount) => throw null; - public System.Reflection.Metadata.Ecma335.MethodSignatureEncoder PropertySignature(bool isInstanceProperty = default(bool)) => throw null; - public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder TypeSpecificationSignature() => throw null; - } - - public static class CodedIndex - { - public static int CustomAttributeType(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int HasConstant(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int HasCustomAttribute(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int HasCustomDebugInformation(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int HasDeclSecurity(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int HasFieldMarshal(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int HasSemantics(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int Implementation(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int MemberForwarded(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int MemberRefParent(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int MethodDefOrRef(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int ResolutionScope(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int TypeDefOrRef(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int TypeDefOrRefOrSpec(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int TypeOrMethodDef(System.Reflection.Metadata.EntityHandle handle) => throw null; - } - - public class ControlFlowBuilder - { - public void AddCatchRegion(System.Reflection.Metadata.Ecma335.LabelHandle tryStart, System.Reflection.Metadata.Ecma335.LabelHandle tryEnd, System.Reflection.Metadata.Ecma335.LabelHandle handlerStart, System.Reflection.Metadata.Ecma335.LabelHandle handlerEnd, System.Reflection.Metadata.EntityHandle catchType) => throw null; - public void AddFaultRegion(System.Reflection.Metadata.Ecma335.LabelHandle tryStart, System.Reflection.Metadata.Ecma335.LabelHandle tryEnd, System.Reflection.Metadata.Ecma335.LabelHandle handlerStart, System.Reflection.Metadata.Ecma335.LabelHandle handlerEnd) => throw null; - public void AddFilterRegion(System.Reflection.Metadata.Ecma335.LabelHandle tryStart, System.Reflection.Metadata.Ecma335.LabelHandle tryEnd, System.Reflection.Metadata.Ecma335.LabelHandle handlerStart, System.Reflection.Metadata.Ecma335.LabelHandle handlerEnd, System.Reflection.Metadata.Ecma335.LabelHandle filterStart) => throw null; - public void AddFinallyRegion(System.Reflection.Metadata.Ecma335.LabelHandle tryStart, System.Reflection.Metadata.Ecma335.LabelHandle tryEnd, System.Reflection.Metadata.Ecma335.LabelHandle handlerStart, System.Reflection.Metadata.Ecma335.LabelHandle handlerEnd) => throw null; - public void Clear() => throw null; - public ControlFlowBuilder() => throw null; - } - - public struct CustomAttributeArrayTypeEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public CustomAttributeArrayTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder ElementType() => throw null; - public void ObjectArray() => throw null; - } - - public struct CustomAttributeElementTypeEncoder - { - public void Boolean() => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public void Byte() => throw null; - public void Char() => throw null; - // Stub generator skipped constructor - public CustomAttributeElementTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public void Double() => throw null; - public void Enum(string enumTypeName) => throw null; - public void Int16() => throw null; - public void Int32() => throw null; - public void Int64() => throw null; - public void PrimitiveType(System.Reflection.Metadata.PrimitiveSerializationTypeCode type) => throw null; - public void SByte() => throw null; - public void Single() => throw null; - public void String() => throw null; - public void SystemType() => throw null; - public void UInt16() => throw null; - public void UInt32() => throw null; - public void UInt64() => throw null; - } - - public struct CustomAttributeNamedArgumentsEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public System.Reflection.Metadata.Ecma335.NamedArgumentsEncoder Count(int count) => throw null; - // Stub generator skipped constructor - public CustomAttributeNamedArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public struct CustomModifiersEncoder - { - public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder AddModifier(System.Reflection.Metadata.EntityHandle type, bool isOptional) => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public CustomModifiersEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public struct EditAndContinueLogEntry : System.IEquatable - { - // Stub generator skipped constructor - public EditAndContinueLogEntry(System.Reflection.Metadata.EntityHandle handle, System.Reflection.Metadata.Ecma335.EditAndContinueOperation operation) => throw null; - public bool Equals(System.Reflection.Metadata.Ecma335.EditAndContinueLogEntry other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public System.Reflection.Metadata.EntityHandle Handle { get => throw null; } - public System.Reflection.Metadata.Ecma335.EditAndContinueOperation Operation { get => throw null; } - } - - public enum EditAndContinueOperation : int - { - AddEvent = 5, - AddField = 2, - AddMethod = 1, - AddParameter = 3, - AddProperty = 4, - Default = 0, - } - - public struct ExceptionRegionEncoder - { - public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder Add(System.Reflection.Metadata.ExceptionRegionKind kind, int tryOffset, int tryLength, int handlerOffset, int handlerLength, System.Reflection.Metadata.EntityHandle catchType = default(System.Reflection.Metadata.EntityHandle), int filterOffset = default(int)) => throw null; - public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder AddCatch(int tryOffset, int tryLength, int handlerOffset, int handlerLength, System.Reflection.Metadata.EntityHandle catchType) => throw null; - public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder AddFault(int tryOffset, int tryLength, int handlerOffset, int handlerLength) => throw null; - public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder AddFilter(int tryOffset, int tryLength, int handlerOffset, int handlerLength, int filterOffset) => throw null; - public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder AddFinally(int tryOffset, int tryLength, int handlerOffset, int handlerLength) => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public bool HasSmallFormat { get => throw null; } - public static bool IsSmallExceptionRegion(int startOffset, int length) => throw null; - public static bool IsSmallRegionCount(int exceptionRegionCount) => throw null; - } - - public static class ExportedTypeExtensions - { - public static int GetTypeDefinitionId(this System.Reflection.Metadata.ExportedType exportedType) => throw null; - } - - public struct FieldTypeEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder CustomModifiers() => throw null; - // Stub generator skipped constructor - public FieldTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder Type(bool isByRef = default(bool)) => throw null; - public void TypedReference() => throw null; - } - - public struct FixedArgumentsEncoder - { - public System.Reflection.Metadata.Ecma335.LiteralEncoder AddArgument() => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public FixedArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public enum FunctionPointerAttributes : int - { - HasExplicitThis = 96, - HasThis = 32, - None = 0, - } - - public struct GenericTypeArgumentsEncoder - { - public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder AddArgument() => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public GenericTypeArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public enum HeapIndex : int - { - Blob = 2, - Guid = 3, - String = 1, - UserString = 0, - } - - public struct InstructionEncoder - { - public void Branch(System.Reflection.Metadata.ILOpCode code, System.Reflection.Metadata.Ecma335.LabelHandle label) => throw null; - public void Call(System.Reflection.Metadata.EntityHandle methodHandle) => throw null; - public void Call(System.Reflection.Metadata.MemberReferenceHandle methodHandle) => throw null; - public void Call(System.Reflection.Metadata.MethodDefinitionHandle methodHandle) => throw null; - public void Call(System.Reflection.Metadata.MethodSpecificationHandle methodHandle) => throw null; - public void CallIndirect(System.Reflection.Metadata.StandaloneSignatureHandle signature) => throw null; - public System.Reflection.Metadata.BlobBuilder CodeBuilder { get => throw null; } - public System.Reflection.Metadata.Ecma335.ControlFlowBuilder ControlFlowBuilder { get => throw null; } - public System.Reflection.Metadata.Ecma335.LabelHandle DefineLabel() => throw null; - // Stub generator skipped constructor - public InstructionEncoder(System.Reflection.Metadata.BlobBuilder codeBuilder, System.Reflection.Metadata.Ecma335.ControlFlowBuilder controlFlowBuilder = default(System.Reflection.Metadata.Ecma335.ControlFlowBuilder)) => throw null; - public void LoadArgument(int argumentIndex) => throw null; - public void LoadArgumentAddress(int argumentIndex) => throw null; - public void LoadConstantI4(int value) => throw null; - public void LoadConstantI8(System.Int64 value) => throw null; - public void LoadConstantR4(float value) => throw null; - public void LoadConstantR8(double value) => throw null; - public void LoadLocal(int slotIndex) => throw null; - public void LoadLocalAddress(int slotIndex) => throw null; - public void LoadString(System.Reflection.Metadata.UserStringHandle handle) => throw null; - public void MarkLabel(System.Reflection.Metadata.Ecma335.LabelHandle label) => throw null; - public int Offset { get => throw null; } - public void OpCode(System.Reflection.Metadata.ILOpCode code) => throw null; - public void StoreArgument(int argumentIndex) => throw null; - public void StoreLocal(int slotIndex) => throw null; - public void Token(System.Reflection.Metadata.EntityHandle handle) => throw null; - public void Token(int token) => throw null; - } - - public struct LabelHandle : System.IEquatable - { - public static bool operator !=(System.Reflection.Metadata.Ecma335.LabelHandle left, System.Reflection.Metadata.Ecma335.LabelHandle right) => throw null; - public static bool operator ==(System.Reflection.Metadata.Ecma335.LabelHandle left, System.Reflection.Metadata.Ecma335.LabelHandle right) => throw null; - public bool Equals(System.Reflection.Metadata.Ecma335.LabelHandle other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public int Id { get => throw null; } - public bool IsNil { get => throw null; } - // Stub generator skipped constructor - } - - public struct LiteralEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public LiteralEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public System.Reflection.Metadata.Ecma335.ScalarEncoder Scalar() => throw null; - public void TaggedScalar(System.Action type, System.Action scalar) => throw null; - public void TaggedScalar(out System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder type, out System.Reflection.Metadata.Ecma335.ScalarEncoder scalar) => throw null; - public void TaggedVector(System.Action arrayType, System.Action vector) => throw null; - public void TaggedVector(out System.Reflection.Metadata.Ecma335.CustomAttributeArrayTypeEncoder arrayType, out System.Reflection.Metadata.Ecma335.VectorEncoder vector) => throw null; - public System.Reflection.Metadata.Ecma335.VectorEncoder Vector() => throw null; - } - - public struct LiteralsEncoder - { - public System.Reflection.Metadata.Ecma335.LiteralEncoder AddLiteral() => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public LiteralsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public struct LocalVariableTypeEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder CustomModifiers() => throw null; - // Stub generator skipped constructor - public LocalVariableTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder Type(bool isByRef = default(bool), bool isPinned = default(bool)) => throw null; - public void TypedReference() => throw null; - } - - public struct LocalVariablesEncoder - { - public System.Reflection.Metadata.Ecma335.LocalVariableTypeEncoder AddVariable() => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public LocalVariablesEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public class MetadataAggregator - { - public System.Reflection.Metadata.Handle GetGenerationHandle(System.Reflection.Metadata.Handle handle, out int generation) => throw null; - public MetadataAggregator(System.Collections.Generic.IReadOnlyList baseTableRowCounts, System.Collections.Generic.IReadOnlyList baseHeapSizes, System.Collections.Generic.IReadOnlyList deltaReaders) => throw null; - public MetadataAggregator(System.Reflection.Metadata.MetadataReader baseReader, System.Collections.Generic.IReadOnlyList deltaReaders) => throw null; - } - - public class MetadataBuilder - { - public System.Reflection.Metadata.AssemblyDefinitionHandle AddAssembly(System.Reflection.Metadata.StringHandle name, System.Version version, System.Reflection.Metadata.StringHandle culture, System.Reflection.Metadata.BlobHandle publicKey, System.Reflection.AssemblyFlags flags, System.Reflection.AssemblyHashAlgorithm hashAlgorithm) => throw null; - public System.Reflection.Metadata.AssemblyFileHandle AddAssemblyFile(System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle hashValue, bool containsMetadata) => throw null; - public System.Reflection.Metadata.AssemblyReferenceHandle AddAssemblyReference(System.Reflection.Metadata.StringHandle name, System.Version version, System.Reflection.Metadata.StringHandle culture, System.Reflection.Metadata.BlobHandle publicKeyOrToken, System.Reflection.AssemblyFlags flags, System.Reflection.Metadata.BlobHandle hashValue) => throw null; - public System.Reflection.Metadata.ConstantHandle AddConstant(System.Reflection.Metadata.EntityHandle parent, object value) => throw null; - public System.Reflection.Metadata.CustomAttributeHandle AddCustomAttribute(System.Reflection.Metadata.EntityHandle parent, System.Reflection.Metadata.EntityHandle constructor, System.Reflection.Metadata.BlobHandle value) => throw null; - public System.Reflection.Metadata.CustomDebugInformationHandle AddCustomDebugInformation(System.Reflection.Metadata.EntityHandle parent, System.Reflection.Metadata.GuidHandle kind, System.Reflection.Metadata.BlobHandle value) => throw null; - public System.Reflection.Metadata.DeclarativeSecurityAttributeHandle AddDeclarativeSecurityAttribute(System.Reflection.Metadata.EntityHandle parent, System.Reflection.DeclarativeSecurityAction action, System.Reflection.Metadata.BlobHandle permissionSet) => throw null; - public System.Reflection.Metadata.DocumentHandle AddDocument(System.Reflection.Metadata.BlobHandle name, System.Reflection.Metadata.GuidHandle hashAlgorithm, System.Reflection.Metadata.BlobHandle hash, System.Reflection.Metadata.GuidHandle language) => throw null; - public void AddEncLogEntry(System.Reflection.Metadata.EntityHandle entity, System.Reflection.Metadata.Ecma335.EditAndContinueOperation code) => throw null; - public void AddEncMapEntry(System.Reflection.Metadata.EntityHandle entity) => throw null; - public System.Reflection.Metadata.EventDefinitionHandle AddEvent(System.Reflection.EventAttributes attributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.EntityHandle type) => throw null; - public void AddEventMap(System.Reflection.Metadata.TypeDefinitionHandle declaringType, System.Reflection.Metadata.EventDefinitionHandle eventList) => throw null; - public System.Reflection.Metadata.ExportedTypeHandle AddExportedType(System.Reflection.TypeAttributes attributes, System.Reflection.Metadata.StringHandle @namespace, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.EntityHandle implementation, int typeDefinitionId) => throw null; - public System.Reflection.Metadata.FieldDefinitionHandle AddFieldDefinition(System.Reflection.FieldAttributes attributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle signature) => throw null; - public void AddFieldLayout(System.Reflection.Metadata.FieldDefinitionHandle field, int offset) => throw null; - public void AddFieldRelativeVirtualAddress(System.Reflection.Metadata.FieldDefinitionHandle field, int offset) => throw null; - public System.Reflection.Metadata.GenericParameterHandle AddGenericParameter(System.Reflection.Metadata.EntityHandle parent, System.Reflection.GenericParameterAttributes attributes, System.Reflection.Metadata.StringHandle name, int index) => throw null; - public System.Reflection.Metadata.GenericParameterConstraintHandle AddGenericParameterConstraint(System.Reflection.Metadata.GenericParameterHandle genericParameter, System.Reflection.Metadata.EntityHandle constraint) => throw null; - public System.Reflection.Metadata.ImportScopeHandle AddImportScope(System.Reflection.Metadata.ImportScopeHandle parentScope, System.Reflection.Metadata.BlobHandle imports) => throw null; - public System.Reflection.Metadata.InterfaceImplementationHandle AddInterfaceImplementation(System.Reflection.Metadata.TypeDefinitionHandle type, System.Reflection.Metadata.EntityHandle implementedInterface) => throw null; - public System.Reflection.Metadata.LocalConstantHandle AddLocalConstant(System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle signature) => throw null; - public System.Reflection.Metadata.LocalScopeHandle AddLocalScope(System.Reflection.Metadata.MethodDefinitionHandle method, System.Reflection.Metadata.ImportScopeHandle importScope, System.Reflection.Metadata.LocalVariableHandle variableList, System.Reflection.Metadata.LocalConstantHandle constantList, int startOffset, int length) => throw null; - public System.Reflection.Metadata.LocalVariableHandle AddLocalVariable(System.Reflection.Metadata.LocalVariableAttributes attributes, int index, System.Reflection.Metadata.StringHandle name) => throw null; - public System.Reflection.Metadata.ManifestResourceHandle AddManifestResource(System.Reflection.ManifestResourceAttributes attributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.EntityHandle implementation, System.UInt32 offset) => throw null; - public void AddMarshallingDescriptor(System.Reflection.Metadata.EntityHandle parent, System.Reflection.Metadata.BlobHandle descriptor) => throw null; - public System.Reflection.Metadata.MemberReferenceHandle AddMemberReference(System.Reflection.Metadata.EntityHandle parent, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle signature) => throw null; - public System.Reflection.Metadata.MethodDebugInformationHandle AddMethodDebugInformation(System.Reflection.Metadata.DocumentHandle document, System.Reflection.Metadata.BlobHandle sequencePoints) => throw null; - public System.Reflection.Metadata.MethodDefinitionHandle AddMethodDefinition(System.Reflection.MethodAttributes attributes, System.Reflection.MethodImplAttributes implAttributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle signature, int bodyOffset, System.Reflection.Metadata.ParameterHandle parameterList) => throw null; - public System.Reflection.Metadata.MethodImplementationHandle AddMethodImplementation(System.Reflection.Metadata.TypeDefinitionHandle type, System.Reflection.Metadata.EntityHandle methodBody, System.Reflection.Metadata.EntityHandle methodDeclaration) => throw null; - public void AddMethodImport(System.Reflection.Metadata.MethodDefinitionHandle method, System.Reflection.MethodImportAttributes attributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.ModuleReferenceHandle module) => throw null; - public void AddMethodSemantics(System.Reflection.Metadata.EntityHandle association, System.Reflection.MethodSemanticsAttributes semantics, System.Reflection.Metadata.MethodDefinitionHandle methodDefinition) => throw null; - public System.Reflection.Metadata.MethodSpecificationHandle AddMethodSpecification(System.Reflection.Metadata.EntityHandle method, System.Reflection.Metadata.BlobHandle instantiation) => throw null; - public System.Reflection.Metadata.ModuleDefinitionHandle AddModule(int generation, System.Reflection.Metadata.StringHandle moduleName, System.Reflection.Metadata.GuidHandle mvid, System.Reflection.Metadata.GuidHandle encId, System.Reflection.Metadata.GuidHandle encBaseId) => throw null; - public System.Reflection.Metadata.ModuleReferenceHandle AddModuleReference(System.Reflection.Metadata.StringHandle moduleName) => throw null; - public void AddNestedType(System.Reflection.Metadata.TypeDefinitionHandle type, System.Reflection.Metadata.TypeDefinitionHandle enclosingType) => throw null; - public System.Reflection.Metadata.ParameterHandle AddParameter(System.Reflection.ParameterAttributes attributes, System.Reflection.Metadata.StringHandle name, int sequenceNumber) => throw null; - public System.Reflection.Metadata.PropertyDefinitionHandle AddProperty(System.Reflection.PropertyAttributes attributes, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.BlobHandle signature) => throw null; - public void AddPropertyMap(System.Reflection.Metadata.TypeDefinitionHandle declaringType, System.Reflection.Metadata.PropertyDefinitionHandle propertyList) => throw null; - public System.Reflection.Metadata.StandaloneSignatureHandle AddStandaloneSignature(System.Reflection.Metadata.BlobHandle signature) => throw null; - public void AddStateMachineMethod(System.Reflection.Metadata.MethodDefinitionHandle moveNextMethod, System.Reflection.Metadata.MethodDefinitionHandle kickoffMethod) => throw null; - public System.Reflection.Metadata.TypeDefinitionHandle AddTypeDefinition(System.Reflection.TypeAttributes attributes, System.Reflection.Metadata.StringHandle @namespace, System.Reflection.Metadata.StringHandle name, System.Reflection.Metadata.EntityHandle baseType, System.Reflection.Metadata.FieldDefinitionHandle fieldList, System.Reflection.Metadata.MethodDefinitionHandle methodList) => throw null; - public void AddTypeLayout(System.Reflection.Metadata.TypeDefinitionHandle type, System.UInt16 packingSize, System.UInt32 size) => throw null; - public System.Reflection.Metadata.TypeReferenceHandle AddTypeReference(System.Reflection.Metadata.EntityHandle resolutionScope, System.Reflection.Metadata.StringHandle @namespace, System.Reflection.Metadata.StringHandle name) => throw null; - public System.Reflection.Metadata.TypeSpecificationHandle AddTypeSpecification(System.Reflection.Metadata.BlobHandle signature) => throw null; - public System.Reflection.Metadata.BlobHandle GetOrAddBlob(System.Reflection.Metadata.BlobBuilder value) => throw null; - public System.Reflection.Metadata.BlobHandle GetOrAddBlob(System.Byte[] value) => throw null; - public System.Reflection.Metadata.BlobHandle GetOrAddBlob(System.Collections.Immutable.ImmutableArray value) => throw null; - public System.Reflection.Metadata.BlobHandle GetOrAddBlobUTF16(string value) => throw null; - public System.Reflection.Metadata.BlobHandle GetOrAddBlobUTF8(string value, bool allowUnpairedSurrogates = default(bool)) => throw null; - public System.Reflection.Metadata.BlobHandle GetOrAddConstantBlob(object value) => throw null; - public System.Reflection.Metadata.BlobHandle GetOrAddDocumentName(string value) => throw null; - public System.Reflection.Metadata.GuidHandle GetOrAddGuid(System.Guid guid) => throw null; - public System.Reflection.Metadata.StringHandle GetOrAddString(string value) => throw null; - public System.Reflection.Metadata.UserStringHandle GetOrAddUserString(string value) => throw null; - public int GetRowCount(System.Reflection.Metadata.Ecma335.TableIndex table) => throw null; - public System.Collections.Immutable.ImmutableArray GetRowCounts() => throw null; - public MetadataBuilder(int userStringHeapStartOffset = default(int), int stringHeapStartOffset = default(int), int blobHeapStartOffset = default(int), int guidHeapStartOffset = default(int)) => throw null; - public System.Reflection.Metadata.ReservedBlob ReserveGuid() => throw null; - public System.Reflection.Metadata.ReservedBlob ReserveUserString(int length) => throw null; - public void SetCapacity(System.Reflection.Metadata.Ecma335.HeapIndex heap, int byteCount) => throw null; - public void SetCapacity(System.Reflection.Metadata.Ecma335.TableIndex table, int rowCount) => throw null; - } - - public static class MetadataReaderExtensions - { - public static System.Collections.Generic.IEnumerable GetEditAndContinueLogEntries(this System.Reflection.Metadata.MetadataReader reader) => throw null; - public static System.Collections.Generic.IEnumerable GetEditAndContinueMapEntries(this System.Reflection.Metadata.MetadataReader reader) => throw null; - public static int GetHeapMetadataOffset(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Ecma335.HeapIndex heapIndex) => throw null; - public static int GetHeapSize(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Ecma335.HeapIndex heapIndex) => throw null; - public static System.Reflection.Metadata.BlobHandle GetNextHandle(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.BlobHandle handle) => throw null; - public static System.Reflection.Metadata.StringHandle GetNextHandle(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.StringHandle handle) => throw null; - public static System.Reflection.Metadata.UserStringHandle GetNextHandle(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.UserStringHandle handle) => throw null; - public static int GetTableMetadataOffset(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Ecma335.TableIndex tableIndex) => throw null; - public static int GetTableRowCount(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Ecma335.TableIndex tableIndex) => throw null; - public static int GetTableRowSize(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Ecma335.TableIndex tableIndex) => throw null; - public static System.Collections.Generic.IEnumerable GetTypesWithEvents(this System.Reflection.Metadata.MetadataReader reader) => throw null; - public static System.Collections.Generic.IEnumerable GetTypesWithProperties(this System.Reflection.Metadata.MetadataReader reader) => throw null; - public static System.Reflection.Metadata.SignatureTypeKind ResolveSignatureTypeKind(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.EntityHandle typeHandle, System.Byte rawTypeKind) => throw null; - } - - public class MetadataRootBuilder - { - public MetadataRootBuilder(System.Reflection.Metadata.Ecma335.MetadataBuilder tablesAndHeaps, string metadataVersion = default(string), bool suppressValidation = default(bool)) => throw null; - public string MetadataVersion { get => throw null; } - public void Serialize(System.Reflection.Metadata.BlobBuilder builder, int methodBodyStreamRva, int mappedFieldDataStreamRva) => throw null; - public System.Reflection.Metadata.Ecma335.MetadataSizes Sizes { get => throw null; } - public bool SuppressValidation { get => throw null; } - } - - public class MetadataSizes - { - public System.Collections.Immutable.ImmutableArray ExternalRowCounts { get => throw null; } - public int GetAlignedHeapSize(System.Reflection.Metadata.Ecma335.HeapIndex index) => throw null; - public System.Collections.Immutable.ImmutableArray HeapSizes { get => throw null; } - public System.Collections.Immutable.ImmutableArray RowCounts { get => throw null; } - } - - public static class MetadataTokens - { - public static System.Reflection.Metadata.AssemblyFileHandle AssemblyFileHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.AssemblyReferenceHandle AssemblyReferenceHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.BlobHandle BlobHandle(int offset) => throw null; - public static System.Reflection.Metadata.ConstantHandle ConstantHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.CustomAttributeHandle CustomAttributeHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.CustomDebugInformationHandle CustomDebugInformationHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.DeclarativeSecurityAttributeHandle DeclarativeSecurityAttributeHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.DocumentHandle DocumentHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.DocumentNameBlobHandle DocumentNameBlobHandle(int offset) => throw null; - public static System.Reflection.Metadata.EntityHandle EntityHandle(System.Reflection.Metadata.Ecma335.TableIndex tableIndex, int rowNumber) => throw null; - public static System.Reflection.Metadata.EntityHandle EntityHandle(int token) => throw null; - public static System.Reflection.Metadata.EventDefinitionHandle EventDefinitionHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.ExportedTypeHandle ExportedTypeHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.FieldDefinitionHandle FieldDefinitionHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.GenericParameterConstraintHandle GenericParameterConstraintHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.GenericParameterHandle GenericParameterHandle(int rowNumber) => throw null; - public static int GetHeapOffset(System.Reflection.Metadata.BlobHandle handle) => throw null; - public static int GetHeapOffset(System.Reflection.Metadata.GuidHandle handle) => throw null; - public static int GetHeapOffset(System.Reflection.Metadata.Handle handle) => throw null; - public static int GetHeapOffset(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Handle handle) => throw null; - public static int GetHeapOffset(System.Reflection.Metadata.StringHandle handle) => throw null; - public static int GetHeapOffset(System.Reflection.Metadata.UserStringHandle handle) => throw null; - public static int GetRowNumber(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int GetRowNumber(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int GetToken(System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int GetToken(System.Reflection.Metadata.Handle handle) => throw null; - public static int GetToken(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.EntityHandle handle) => throw null; - public static int GetToken(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.Handle handle) => throw null; - public static System.Reflection.Metadata.GuidHandle GuidHandle(int offset) => throw null; - public static System.Reflection.Metadata.EntityHandle Handle(System.Reflection.Metadata.Ecma335.TableIndex tableIndex, int rowNumber) => throw null; - public static System.Reflection.Metadata.Handle Handle(int token) => throw null; - public static int HeapCount; - public static System.Reflection.Metadata.ImportScopeHandle ImportScopeHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.InterfaceImplementationHandle InterfaceImplementationHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.LocalConstantHandle LocalConstantHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.LocalScopeHandle LocalScopeHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.LocalVariableHandle LocalVariableHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.ManifestResourceHandle ManifestResourceHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.MemberReferenceHandle MemberReferenceHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.MethodDebugInformationHandle MethodDebugInformationHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.MethodDefinitionHandle MethodDefinitionHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.MethodImplementationHandle MethodImplementationHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.MethodSpecificationHandle MethodSpecificationHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.ModuleReferenceHandle ModuleReferenceHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.ParameterHandle ParameterHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.PropertyDefinitionHandle PropertyDefinitionHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.StandaloneSignatureHandle StandaloneSignatureHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.StringHandle StringHandle(int offset) => throw null; - public static int TableCount; - public static bool TryGetHeapIndex(System.Reflection.Metadata.HandleKind type, out System.Reflection.Metadata.Ecma335.HeapIndex index) => throw null; - public static bool TryGetTableIndex(System.Reflection.Metadata.HandleKind type, out System.Reflection.Metadata.Ecma335.TableIndex index) => throw null; - public static System.Reflection.Metadata.TypeDefinitionHandle TypeDefinitionHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.TypeReferenceHandle TypeReferenceHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.TypeSpecificationHandle TypeSpecificationHandle(int rowNumber) => throw null; - public static System.Reflection.Metadata.UserStringHandle UserStringHandle(int offset) => throw null; - } - - [System.Flags] - public enum MethodBodyAttributes : int - { - InitLocals = 1, - None = 0, - } - - public struct MethodBodyStreamEncoder - { - public struct MethodBody - { - public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder ExceptionRegions { get => throw null; } - public System.Reflection.Metadata.Blob Instructions { get => throw null; } - // Stub generator skipped constructor - public int Offset { get => throw null; } - } - - - public int AddMethodBody(System.Reflection.Metadata.Ecma335.InstructionEncoder instructionEncoder, int maxStack, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes) => throw null; - public int AddMethodBody(System.Reflection.Metadata.Ecma335.InstructionEncoder instructionEncoder, int maxStack = default(int), System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default(System.Reflection.Metadata.StandaloneSignatureHandle), System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = default(System.Reflection.Metadata.Ecma335.MethodBodyAttributes), bool hasDynamicStackAllocation = default(bool)) => throw null; - public System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody AddMethodBody(int codeSize, int maxStack, int exceptionRegionCount, bool hasSmallExceptionRegions, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes) => throw null; - public System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody AddMethodBody(int codeSize, int maxStack = default(int), int exceptionRegionCount = default(int), bool hasSmallExceptionRegions = default(bool), System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default(System.Reflection.Metadata.StandaloneSignatureHandle), System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = default(System.Reflection.Metadata.Ecma335.MethodBodyAttributes), bool hasDynamicStackAllocation = default(bool)) => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public MethodBodyStreamEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public struct MethodSignatureEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public bool HasVarArgs { get => throw null; } - // Stub generator skipped constructor - public MethodSignatureEncoder(System.Reflection.Metadata.BlobBuilder builder, bool hasVarArgs) => throw null; - public void Parameters(int parameterCount, System.Action returnType, System.Action parameters) => throw null; - public void Parameters(int parameterCount, out System.Reflection.Metadata.Ecma335.ReturnTypeEncoder returnType, out System.Reflection.Metadata.Ecma335.ParametersEncoder parameters) => throw null; - } - - public struct NameEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public void Name(string name) => throw null; - // Stub generator skipped constructor - public NameEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public struct NamedArgumentTypeEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public NamedArgumentTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public void Object() => throw null; - public System.Reflection.Metadata.Ecma335.CustomAttributeArrayTypeEncoder SZArray() => throw null; - public System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder ScalarType() => throw null; - } - - public struct NamedArgumentsEncoder - { - public void AddArgument(bool isField, System.Action type, System.Action name, System.Action literal) => throw null; - public void AddArgument(bool isField, out System.Reflection.Metadata.Ecma335.NamedArgumentTypeEncoder type, out System.Reflection.Metadata.Ecma335.NameEncoder name, out System.Reflection.Metadata.Ecma335.LiteralEncoder literal) => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public NamedArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public struct ParameterTypeEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder CustomModifiers() => throw null; - // Stub generator skipped constructor - public ParameterTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder Type(bool isByRef = default(bool)) => throw null; - public void TypedReference() => throw null; - } - - public struct ParametersEncoder - { - public System.Reflection.Metadata.Ecma335.ParameterTypeEncoder AddParameter() => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public bool HasVarArgs { get => throw null; } - // Stub generator skipped constructor - public ParametersEncoder(System.Reflection.Metadata.BlobBuilder builder, bool hasVarArgs = default(bool)) => throw null; - public System.Reflection.Metadata.Ecma335.ParametersEncoder StartVarArgs() => throw null; - } - - public struct PermissionSetEncoder - { - public System.Reflection.Metadata.Ecma335.PermissionSetEncoder AddPermission(string typeName, System.Reflection.Metadata.BlobBuilder encodedArguments) => throw null; - public System.Reflection.Metadata.Ecma335.PermissionSetEncoder AddPermission(string typeName, System.Collections.Immutable.ImmutableArray encodedArguments) => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - // Stub generator skipped constructor - public PermissionSetEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public class PortablePdbBuilder - { - public System.UInt16 FormatVersion { get => throw null; } - public System.Func, System.Reflection.Metadata.BlobContentId> IdProvider { get => throw null; } - public string MetadataVersion { get => throw null; } - public PortablePdbBuilder(System.Reflection.Metadata.Ecma335.MetadataBuilder tablesAndHeaps, System.Collections.Immutable.ImmutableArray typeSystemRowCounts, System.Reflection.Metadata.MethodDefinitionHandle entryPoint, System.Func, System.Reflection.Metadata.BlobContentId> idProvider = default(System.Func, System.Reflection.Metadata.BlobContentId>)) => throw null; - public System.Reflection.Metadata.BlobContentId Serialize(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - public struct ReturnTypeEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder CustomModifiers() => throw null; - // Stub generator skipped constructor - public ReturnTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder Type(bool isByRef = default(bool)) => throw null; - public void TypedReference() => throw null; - public void Void() => throw null; - } - - public struct ScalarEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public void Constant(object value) => throw null; - public void NullArray() => throw null; - // Stub generator skipped constructor - public ScalarEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public void SystemType(string serializedTypeName) => throw null; - } - - public struct SignatureDecoder - { - public TType DecodeFieldSignature(ref System.Reflection.Metadata.BlobReader blobReader) => throw null; - public System.Collections.Immutable.ImmutableArray DecodeLocalSignature(ref System.Reflection.Metadata.BlobReader blobReader) => throw null; - public System.Reflection.Metadata.MethodSignature DecodeMethodSignature(ref System.Reflection.Metadata.BlobReader blobReader) => throw null; - public System.Collections.Immutable.ImmutableArray DecodeMethodSpecificationSignature(ref System.Reflection.Metadata.BlobReader blobReader) => throw null; - public TType DecodeType(ref System.Reflection.Metadata.BlobReader blobReader, bool allowTypeSpecifications = default(bool)) => throw null; - // Stub generator skipped constructor - public SignatureDecoder(System.Reflection.Metadata.ISignatureTypeProvider provider, System.Reflection.Metadata.MetadataReader metadataReader, TGenericContext genericContext) => throw null; - } - - public struct SignatureTypeEncoder - { - public void Array(System.Action elementType, System.Action arrayShape) => throw null; - public void Array(out System.Reflection.Metadata.Ecma335.SignatureTypeEncoder elementType, out System.Reflection.Metadata.Ecma335.ArrayShapeEncoder arrayShape) => throw null; - public void Boolean() => throw null; - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public void Byte() => throw null; - public void Char() => throw null; - public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder CustomModifiers() => throw null; - public void Double() => throw null; - public System.Reflection.Metadata.Ecma335.MethodSignatureEncoder FunctionPointer(System.Reflection.Metadata.SignatureCallingConvention convention = default(System.Reflection.Metadata.SignatureCallingConvention), System.Reflection.Metadata.Ecma335.FunctionPointerAttributes attributes = default(System.Reflection.Metadata.Ecma335.FunctionPointerAttributes), int genericParameterCount = default(int)) => throw null; - public System.Reflection.Metadata.Ecma335.GenericTypeArgumentsEncoder GenericInstantiation(System.Reflection.Metadata.EntityHandle genericType, int genericArgumentCount, bool isValueType) => throw null; - public void GenericMethodTypeParameter(int parameterIndex) => throw null; - public void GenericTypeParameter(int parameterIndex) => throw null; - public void Int16() => throw null; - public void Int32() => throw null; - public void Int64() => throw null; - public void IntPtr() => throw null; - public void Object() => throw null; - public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder Pointer() => throw null; - public void PrimitiveType(System.Reflection.Metadata.PrimitiveTypeCode type) => throw null; - public void SByte() => throw null; - public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder SZArray() => throw null; - // Stub generator skipped constructor - public SignatureTypeEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - public void Single() => throw null; - public void String() => throw null; - public void Type(System.Reflection.Metadata.EntityHandle type, bool isValueType) => throw null; - public void UInt16() => throw null; - public void UInt32() => throw null; - public void UInt64() => throw null; - public void UIntPtr() => throw null; - public void VoidPointer() => throw null; - } - - public enum TableIndex : byte - { - Assembly = 32, - AssemblyOS = 34, - AssemblyProcessor = 33, - AssemblyRef = 35, - AssemblyRefOS = 37, - AssemblyRefProcessor = 36, - ClassLayout = 15, - Constant = 11, - CustomAttribute = 12, - CustomDebugInformation = 55, - DeclSecurity = 14, - Document = 48, - EncLog = 30, - EncMap = 31, - Event = 20, - EventMap = 18, - EventPtr = 19, - ExportedType = 39, - Field = 4, - FieldLayout = 16, - FieldMarshal = 13, - FieldPtr = 3, - FieldRva = 29, - File = 38, - GenericParam = 42, - GenericParamConstraint = 44, - ImplMap = 28, - ImportScope = 53, - InterfaceImpl = 9, - LocalConstant = 52, - LocalScope = 50, - LocalVariable = 51, - ManifestResource = 40, - MemberRef = 10, - MethodDebugInformation = 49, - MethodDef = 6, - MethodImpl = 25, - MethodPtr = 5, - MethodSemantics = 24, - MethodSpec = 43, - Module = 0, - ModuleRef = 26, - NestedClass = 41, - Param = 8, - ParamPtr = 7, - Property = 23, - PropertyMap = 21, - PropertyPtr = 22, - StandAloneSig = 17, - StateMachineMethod = 54, - TypeDef = 2, - TypeRef = 1, - TypeSpec = 27, - } - - public struct VectorEncoder - { - public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } - public System.Reflection.Metadata.Ecma335.LiteralsEncoder Count(int count) => throw null; - // Stub generator skipped constructor - public VectorEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; - } - - } + } + [System.Flags] + public enum MethodImportAttributes : short + { + None = 0, + ExactSpelling = 1, + CharSetAnsi = 2, + CharSetUnicode = 4, + CharSetAuto = 6, + CharSetMask = 6, + BestFitMappingEnable = 16, + BestFitMappingDisable = 32, + BestFitMappingMask = 48, + SetLastError = 64, + CallingConventionWinApi = 256, + CallingConventionCDecl = 512, + CallingConventionStdCall = 768, + CallingConventionThisCall = 1024, + CallingConventionFastCall = 1280, + CallingConventionMask = 1792, + ThrowOnUnmappableCharEnable = 4096, + ThrowOnUnmappableCharDisable = 8192, + ThrowOnUnmappableCharMask = 12288, + } + [System.Flags] + public enum MethodSemanticsAttributes + { + Setter = 1, + Getter = 2, + Other = 4, + Adder = 8, + Remover = 16, + Raiser = 32, } namespace PortableExecutable { [System.Flags] public enum Characteristics : ushort { - AggressiveWSTrim = 16, - Bit32Machine = 256, - BytesReversedHi = 32768, - BytesReversedLo = 128, - DebugStripped = 512, - Dll = 8192, + RelocsStripped = 1, ExecutableImage = 2, - LargeAddressAware = 32, LineNumsStripped = 4, LocalSymsStripped = 8, - NetRunFromSwap = 2048, - RelocsStripped = 1, + AggressiveWSTrim = 16, + LargeAddressAware = 32, + BytesReversedLo = 128, + Bit32Machine = 256, + DebugStripped = 512, RemovableRunFromSwap = 1024, + NetRunFromSwap = 2048, System = 4096, + Dll = 8192, UpSystemOnly = 16384, + BytesReversedHi = 32768, } - public struct CodeViewDebugDirectoryData { public int Age { get => throw null; } - // Stub generator skipped constructor public System.Guid Guid { get => throw null; } public string Path { get => throw null; } } - - public class CoffHeader + public sealed class CoffHeader { public System.Reflection.PortableExecutable.Characteristics Characteristics { get => throw null; } public System.Reflection.PortableExecutable.Machine Machine { get => throw null; } - public System.Int16 NumberOfSections { get => throw null; } + public short NumberOfSections { get => throw null; } public int NumberOfSymbols { get => throw null; } public int PointerToSymbolTable { get => throw null; } - public System.Int16 SizeOfOptionalHeader { get => throw null; } + public short SizeOfOptionalHeader { get => throw null; } public int TimeDateStamp { get => throw null; } } - [System.Flags] - public enum CorFlags : int + public enum CorFlags { - ILLibrary = 4, ILOnly = 1, - NativeEntryPoint = 16, - Prefers32Bit = 131072, Requires32Bit = 2, + ILLibrary = 4, StrongNameSigned = 8, + NativeEntryPoint = 16, TrackDebugData = 65536, + Prefers32Bit = 131072, } - - public class CorHeader + public sealed class CorHeader { public System.Reflection.PortableExecutable.DirectoryEntry CodeManagerTableDirectory { get => throw null; } public int EntryPointTokenOrRelativeVirtualAddress { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry ExportAddressTableJumpsDirectory { get => throw null; } public System.Reflection.PortableExecutable.CorFlags Flags { get => throw null; } - public System.UInt16 MajorRuntimeVersion { get => throw null; } + public ushort MajorRuntimeVersion { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry ManagedNativeHeaderDirectory { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry MetadataDirectory { get => throw null; } - public System.UInt16 MinorRuntimeVersion { get => throw null; } + public ushort MinorRuntimeVersion { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry ResourcesDirectory { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry StrongNameSignatureDirectory { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry VtableFixupsDirectory { get => throw null; } } - - public class DebugDirectoryBuilder + public sealed class DebugDirectoryBuilder { - public void AddCodeViewEntry(string pdbPath, System.Reflection.Metadata.BlobContentId pdbContentId, System.UInt16 portablePdbVersion) => throw null; - public void AddCodeViewEntry(string pdbPath, System.Reflection.Metadata.BlobContentId pdbContentId, System.UInt16 portablePdbVersion, int age) => throw null; - public void AddEmbeddedPortablePdbEntry(System.Reflection.Metadata.BlobBuilder debugMetadata, System.UInt16 portablePdbVersion) => throw null; - public void AddEntry(System.Reflection.PortableExecutable.DebugDirectoryEntryType type, System.UInt32 version, System.UInt32 stamp) => throw null; - public void AddEntry(System.Reflection.PortableExecutable.DebugDirectoryEntryType type, System.UInt32 version, System.UInt32 stamp, TData data, System.Action dataSerializer) => throw null; - public void AddPdbChecksumEntry(string algorithmName, System.Collections.Immutable.ImmutableArray checksum) => throw null; + public void AddCodeViewEntry(string pdbPath, System.Reflection.Metadata.BlobContentId pdbContentId, ushort portablePdbVersion) => throw null; + public void AddCodeViewEntry(string pdbPath, System.Reflection.Metadata.BlobContentId pdbContentId, ushort portablePdbVersion, int age) => throw null; + public void AddEmbeddedPortablePdbEntry(System.Reflection.Metadata.BlobBuilder debugMetadata, ushort portablePdbVersion) => throw null; + public void AddEntry(System.Reflection.PortableExecutable.DebugDirectoryEntryType type, uint version, uint stamp) => throw null; + public void AddEntry(System.Reflection.PortableExecutable.DebugDirectoryEntryType type, uint version, uint stamp, TData data, System.Action dataSerializer) => throw null; + public void AddPdbChecksumEntry(string algorithmName, System.Collections.Immutable.ImmutableArray checksum) => throw null; public void AddReproducibleEntry() => throw null; public DebugDirectoryBuilder() => throw null; } - public struct DebugDirectoryEntry { + public DebugDirectoryEntry(uint stamp, ushort majorVersion, ushort minorVersion, System.Reflection.PortableExecutable.DebugDirectoryEntryType type, int dataSize, int dataRelativeVirtualAddress, int dataPointer) => throw null; public int DataPointer { get => throw null; } public int DataRelativeVirtualAddress { get => throw null; } public int DataSize { get => throw null; } - // Stub generator skipped constructor - public DebugDirectoryEntry(System.UInt32 stamp, System.UInt16 majorVersion, System.UInt16 minorVersion, System.Reflection.PortableExecutable.DebugDirectoryEntryType type, int dataSize, int dataRelativeVirtualAddress, int dataPointer) => throw null; public bool IsPortableCodeView { get => throw null; } - public System.UInt16 MajorVersion { get => throw null; } - public System.UInt16 MinorVersion { get => throw null; } - public System.UInt32 Stamp { get => throw null; } + public ushort MajorVersion { get => throw null; } + public ushort MinorVersion { get => throw null; } + public uint Stamp { get => throw null; } public System.Reflection.PortableExecutable.DebugDirectoryEntryType Type { get => throw null; } } - - public enum DebugDirectoryEntryType : int + public enum DebugDirectoryEntryType { - CodeView = 2, + Unknown = 0, Coff = 1, + CodeView = 2, + Reproducible = 16, EmbeddedPortablePdb = 17, PdbChecksum = 19, - Reproducible = 16, - Unknown = 0, } - public struct DirectoryEntry { - // Stub generator skipped constructor public DirectoryEntry(int relativeVirtualAddress, int size) => throw null; public int RelativeVirtualAddress; public int Size; } - [System.Flags] public enum DllCharacteristics : ushort { - AppContainer = 4096, - DynamicBase = 64, - HighEntropyVirtualAddressSpace = 32, - NoBind = 2048, - NoIsolation = 512, - NoSeh = 1024, - NxCompatible = 256, ProcessInit = 1, ProcessTerm = 2, - TerminalServerAware = 32768, ThreadInit = 4, ThreadTerm = 8, + HighEntropyVirtualAddressSpace = 32, + DynamicBase = 64, + NxCompatible = 256, + NoIsolation = 512, + NoSeh = 1024, + NoBind = 2048, + AppContainer = 4096, WdmDriver = 8192, + TerminalServerAware = 32768, } - public enum Machine : ushort { - AM33 = 467, - Alpha = 388, - Alpha64 = 644, - Amd64 = 34404, - Arm = 448, - Arm64 = 43620, - ArmThumb2 = 452, - Ebc = 3772, + Unknown = 0, I386 = 332, - IA64 = 512, - LoongArch32 = 25138, - LoongArch64 = 25188, - M32R = 36929, - MIPS16 = 614, - MipsFpu = 870, - MipsFpu16 = 1126, - PowerPC = 496, - PowerPCFP = 497, + WceMipsV2 = 361, + Alpha = 388, SH3 = 418, SH3Dsp = 419, SH3E = 420, SH4 = 422, SH5 = 424, + Arm = 448, Thumb = 450, + ArmThumb2 = 452, + AM33 = 467, + PowerPC = 496, + PowerPCFP = 497, + IA64 = 512, + MIPS16 = 614, + Alpha64 = 644, + MipsFpu = 870, + MipsFpu16 = 1126, Tricore = 1312, - Unknown = 0, - WceMipsV2 = 361, + Ebc = 3772, + Amd64 = 34404, + M32R = 36929, + Arm64 = 43620, + LoongArch32 = 25138, + LoongArch64 = 25188, } - public class ManagedPEBuilder : System.Reflection.PortableExecutable.PEBuilder { protected override System.Collections.Immutable.ImmutableArray CreateSections() => throw null; - protected internal override System.Reflection.PortableExecutable.PEDirectoriesBuilder GetDirectories() => throw null; public ManagedPEBuilder(System.Reflection.PortableExecutable.PEHeaderBuilder header, System.Reflection.Metadata.Ecma335.MetadataRootBuilder metadataRootBuilder, System.Reflection.Metadata.BlobBuilder ilStream, System.Reflection.Metadata.BlobBuilder mappedFieldData = default(System.Reflection.Metadata.BlobBuilder), System.Reflection.Metadata.BlobBuilder managedResources = default(System.Reflection.Metadata.BlobBuilder), System.Reflection.PortableExecutable.ResourceSectionBuilder nativeResources = default(System.Reflection.PortableExecutable.ResourceSectionBuilder), System.Reflection.PortableExecutable.DebugDirectoryBuilder debugDirectoryBuilder = default(System.Reflection.PortableExecutable.DebugDirectoryBuilder), int strongNameSignatureSize = default(int), System.Reflection.Metadata.MethodDefinitionHandle entryPoint = default(System.Reflection.Metadata.MethodDefinitionHandle), System.Reflection.PortableExecutable.CorFlags flags = default(System.Reflection.PortableExecutable.CorFlags), System.Func, System.Reflection.Metadata.BlobContentId> deterministicIdProvider = default(System.Func, System.Reflection.Metadata.BlobContentId>)) : base(default(System.Reflection.PortableExecutable.PEHeaderBuilder), default(System.Func, System.Reflection.Metadata.BlobContentId>)) => throw null; - public const int ManagedResourcesDataAlignment = default; - public const int MappedFieldDataAlignment = default; + protected override System.Reflection.PortableExecutable.PEDirectoriesBuilder GetDirectories() => throw null; + public static int ManagedResourcesDataAlignment; + public static int MappedFieldDataAlignment; protected override System.Reflection.Metadata.BlobBuilder SerializeSection(string name, System.Reflection.PortableExecutable.SectionLocation location) => throw null; - public void Sign(System.Reflection.Metadata.BlobBuilder peImage, System.Func, System.Byte[]> signatureProvider) => throw null; + public void Sign(System.Reflection.Metadata.BlobBuilder peImage, System.Func, byte[]> signatureProvider) => throw null; + } + public struct PdbChecksumDebugDirectoryData + { + public string AlgorithmName { get => throw null; } + public System.Collections.Immutable.ImmutableArray Checksum { get => throw null; } } - public abstract class PEBuilder { - protected struct Section - { - public System.Reflection.PortableExecutable.SectionCharacteristics Characteristics; - public string Name; - // Stub generator skipped constructor - public Section(string name, System.Reflection.PortableExecutable.SectionCharacteristics characteristics) => throw null; - } - - protected abstract System.Collections.Immutable.ImmutableArray CreateSections(); - protected internal abstract System.Reflection.PortableExecutable.PEDirectoriesBuilder GetDirectories(); + protected PEBuilder(System.Reflection.PortableExecutable.PEHeaderBuilder header, System.Func, System.Reflection.Metadata.BlobContentId> deterministicIdProvider) => throw null; + protected abstract System.Reflection.PortableExecutable.PEDirectoriesBuilder GetDirectories(); protected System.Collections.Immutable.ImmutableArray GetSections() => throw null; public System.Reflection.PortableExecutable.PEHeaderBuilder Header { get => throw null; } public System.Func, System.Reflection.Metadata.BlobContentId> IdProvider { get => throw null; } public bool IsDeterministic { get => throw null; } - protected PEBuilder(System.Reflection.PortableExecutable.PEHeaderBuilder header, System.Func, System.Reflection.Metadata.BlobContentId> deterministicIdProvider) => throw null; + protected struct Section + { + public System.Reflection.PortableExecutable.SectionCharacteristics Characteristics; + public Section(string name, System.Reflection.PortableExecutable.SectionCharacteristics characteristics) => throw null; + public string Name; + } public System.Reflection.Metadata.BlobContentId Serialize(System.Reflection.Metadata.BlobBuilder builder) => throw null; protected abstract System.Reflection.Metadata.BlobBuilder SerializeSection(string name, System.Reflection.PortableExecutable.SectionLocation location); } - - public class PEDirectoriesBuilder + public sealed class PEDirectoriesBuilder { - public int AddressOfEntryPoint { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry BaseRelocationTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry BoundImportTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry CopyrightTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry CorHeaderTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry DebugTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry DelayImportTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry ExceptionTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry ExportTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry GlobalPointerTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry ImportAddressTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry ImportTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry LoadConfigTable { get => throw null; set => throw null; } + public int AddressOfEntryPoint { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry BaseRelocationTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry BoundImportTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry CopyrightTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry CorHeaderTable { get => throw null; set { } } public PEDirectoriesBuilder() => throw null; - public System.Reflection.PortableExecutable.DirectoryEntry ResourceTable { get => throw null; set => throw null; } - public System.Reflection.PortableExecutable.DirectoryEntry ThreadLocalStorageTable { get => throw null; set => throw null; } + public System.Reflection.PortableExecutable.DirectoryEntry DebugTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry DelayImportTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry ExceptionTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry ExportTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry GlobalPointerTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry ImportAddressTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry ImportTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry LoadConfigTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry ResourceTable { get => throw null; set { } } + public System.Reflection.PortableExecutable.DirectoryEntry ThreadLocalStorageTable { get => throw null; set { } } } - - public class PEHeader + public sealed class PEHeader { public int AddressOfEntryPoint { get => throw null; } public int BaseOfCode { get => throw null; } @@ -3504,7 +3044,7 @@ namespace System public System.Reflection.PortableExecutable.DirectoryEntry BaseRelocationTableDirectory { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry BoundImportTableDirectory { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry CertificateTableDirectory { get => throw null; } - public System.UInt32 CheckSum { get => throw null; } + public uint CheckSum { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry CopyrightTableDirectory { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry CorHeaderTableDirectory { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry DebugTableDirectory { get => throw null; } @@ -3514,67 +3054,68 @@ namespace System public System.Reflection.PortableExecutable.DirectoryEntry ExportTableDirectory { get => throw null; } public int FileAlignment { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry GlobalPointerTableDirectory { get => throw null; } - public System.UInt64 ImageBase { get => throw null; } + public ulong ImageBase { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry ImportAddressTableDirectory { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry ImportTableDirectory { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry LoadConfigTableDirectory { get => throw null; } public System.Reflection.PortableExecutable.PEMagic Magic { get => throw null; } - public System.UInt16 MajorImageVersion { get => throw null; } - public System.Byte MajorLinkerVersion { get => throw null; } - public System.UInt16 MajorOperatingSystemVersion { get => throw null; } - public System.UInt16 MajorSubsystemVersion { get => throw null; } - public System.UInt16 MinorImageVersion { get => throw null; } - public System.Byte MinorLinkerVersion { get => throw null; } - public System.UInt16 MinorOperatingSystemVersion { get => throw null; } - public System.UInt16 MinorSubsystemVersion { get => throw null; } + public ushort MajorImageVersion { get => throw null; } + public byte MajorLinkerVersion { get => throw null; } + public ushort MajorOperatingSystemVersion { get => throw null; } + public ushort MajorSubsystemVersion { get => throw null; } + public ushort MinorImageVersion { get => throw null; } + public byte MinorLinkerVersion { get => throw null; } + public ushort MinorOperatingSystemVersion { get => throw null; } + public ushort MinorSubsystemVersion { get => throw null; } public int NumberOfRvaAndSizes { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry ResourceTableDirectory { get => throw null; } public int SectionAlignment { get => throw null; } public int SizeOfCode { get => throw null; } public int SizeOfHeaders { get => throw null; } - public System.UInt64 SizeOfHeapCommit { get => throw null; } - public System.UInt64 SizeOfHeapReserve { get => throw null; } + public ulong SizeOfHeapCommit { get => throw null; } + public ulong SizeOfHeapReserve { get => throw null; } public int SizeOfImage { get => throw null; } public int SizeOfInitializedData { get => throw null; } - public System.UInt64 SizeOfStackCommit { get => throw null; } - public System.UInt64 SizeOfStackReserve { get => throw null; } + public ulong SizeOfStackCommit { get => throw null; } + public ulong SizeOfStackReserve { get => throw null; } public int SizeOfUninitializedData { get => throw null; } public System.Reflection.PortableExecutable.Subsystem Subsystem { get => throw null; } public System.Reflection.PortableExecutable.DirectoryEntry ThreadLocalStorageTableDirectory { get => throw null; } } - - public class PEHeaderBuilder + public sealed class PEHeaderBuilder { public static System.Reflection.PortableExecutable.PEHeaderBuilder CreateExecutableHeader() => throw null; public static System.Reflection.PortableExecutable.PEHeaderBuilder CreateLibraryHeader() => throw null; + public PEHeaderBuilder(System.Reflection.PortableExecutable.Machine machine = default(System.Reflection.PortableExecutable.Machine), int sectionAlignment = default(int), int fileAlignment = default(int), ulong imageBase = default(ulong), byte majorLinkerVersion = default(byte), byte minorLinkerVersion = default(byte), ushort majorOperatingSystemVersion = default(ushort), ushort minorOperatingSystemVersion = default(ushort), ushort majorImageVersion = default(ushort), ushort minorImageVersion = default(ushort), ushort majorSubsystemVersion = default(ushort), ushort minorSubsystemVersion = default(ushort), System.Reflection.PortableExecutable.Subsystem subsystem = default(System.Reflection.PortableExecutable.Subsystem), System.Reflection.PortableExecutable.DllCharacteristics dllCharacteristics = default(System.Reflection.PortableExecutable.DllCharacteristics), System.Reflection.PortableExecutable.Characteristics imageCharacteristics = default(System.Reflection.PortableExecutable.Characteristics), ulong sizeOfStackReserve = default(ulong), ulong sizeOfStackCommit = default(ulong), ulong sizeOfHeapReserve = default(ulong), ulong sizeOfHeapCommit = default(ulong)) => throw null; public System.Reflection.PortableExecutable.DllCharacteristics DllCharacteristics { get => throw null; } public int FileAlignment { get => throw null; } - public System.UInt64 ImageBase { get => throw null; } + public ulong ImageBase { get => throw null; } public System.Reflection.PortableExecutable.Characteristics ImageCharacteristics { get => throw null; } public System.Reflection.PortableExecutable.Machine Machine { get => throw null; } - public System.UInt16 MajorImageVersion { get => throw null; } - public System.Byte MajorLinkerVersion { get => throw null; } - public System.UInt16 MajorOperatingSystemVersion { get => throw null; } - public System.UInt16 MajorSubsystemVersion { get => throw null; } - public System.UInt16 MinorImageVersion { get => throw null; } - public System.Byte MinorLinkerVersion { get => throw null; } - public System.UInt16 MinorOperatingSystemVersion { get => throw null; } - public System.UInt16 MinorSubsystemVersion { get => throw null; } - public PEHeaderBuilder(System.Reflection.PortableExecutable.Machine machine = default(System.Reflection.PortableExecutable.Machine), int sectionAlignment = default(int), int fileAlignment = default(int), System.UInt64 imageBase = default(System.UInt64), System.Byte majorLinkerVersion = default(System.Byte), System.Byte minorLinkerVersion = default(System.Byte), System.UInt16 majorOperatingSystemVersion = default(System.UInt16), System.UInt16 minorOperatingSystemVersion = default(System.UInt16), System.UInt16 majorImageVersion = default(System.UInt16), System.UInt16 minorImageVersion = default(System.UInt16), System.UInt16 majorSubsystemVersion = default(System.UInt16), System.UInt16 minorSubsystemVersion = default(System.UInt16), System.Reflection.PortableExecutable.Subsystem subsystem = default(System.Reflection.PortableExecutable.Subsystem), System.Reflection.PortableExecutable.DllCharacteristics dllCharacteristics = default(System.Reflection.PortableExecutable.DllCharacteristics), System.Reflection.PortableExecutable.Characteristics imageCharacteristics = default(System.Reflection.PortableExecutable.Characteristics), System.UInt64 sizeOfStackReserve = default(System.UInt64), System.UInt64 sizeOfStackCommit = default(System.UInt64), System.UInt64 sizeOfHeapReserve = default(System.UInt64), System.UInt64 sizeOfHeapCommit = default(System.UInt64)) => throw null; + public ushort MajorImageVersion { get => throw null; } + public byte MajorLinkerVersion { get => throw null; } + public ushort MajorOperatingSystemVersion { get => throw null; } + public ushort MajorSubsystemVersion { get => throw null; } + public ushort MinorImageVersion { get => throw null; } + public byte MinorLinkerVersion { get => throw null; } + public ushort MinorOperatingSystemVersion { get => throw null; } + public ushort MinorSubsystemVersion { get => throw null; } public int SectionAlignment { get => throw null; } - public System.UInt64 SizeOfHeapCommit { get => throw null; } - public System.UInt64 SizeOfHeapReserve { get => throw null; } - public System.UInt64 SizeOfStackCommit { get => throw null; } - public System.UInt64 SizeOfStackReserve { get => throw null; } + public ulong SizeOfHeapCommit { get => throw null; } + public ulong SizeOfHeapReserve { get => throw null; } + public ulong SizeOfStackCommit { get => throw null; } + public ulong SizeOfStackReserve { get => throw null; } public System.Reflection.PortableExecutable.Subsystem Subsystem { get => throw null; } } - - public class PEHeaders + public sealed class PEHeaders { public System.Reflection.PortableExecutable.CoffHeader CoffHeader { get => throw null; } public int CoffHeaderStartOffset { get => throw null; } public System.Reflection.PortableExecutable.CorHeader CorHeader { get => throw null; } public int CorHeaderStartOffset { get => throw null; } + public PEHeaders(System.IO.Stream peStream) => throw null; + public PEHeaders(System.IO.Stream peStream, int size) => throw null; + public PEHeaders(System.IO.Stream peStream, int size, bool isLoadedImage) => throw null; public int GetContainingSectionIndex(int relativeVirtualAddress) => throw null; public bool IsCoffOnly { get => throw null; } public bool IsConsoleApplication { get => throw null; } @@ -3584,32 +3125,31 @@ namespace System public int MetadataStartOffset { get => throw null; } public System.Reflection.PortableExecutable.PEHeader PEHeader { get => throw null; } public int PEHeaderStartOffset { get => throw null; } - public PEHeaders(System.IO.Stream peStream) => throw null; - public PEHeaders(System.IO.Stream peStream, int size) => throw null; - public PEHeaders(System.IO.Stream peStream, int size, bool isLoadedImage) => throw null; public System.Collections.Immutable.ImmutableArray SectionHeaders { get => throw null; } public bool TryGetDirectoryOffset(System.Reflection.PortableExecutable.DirectoryEntry directory, out int offset) => throw null; } - public enum PEMagic : ushort { PE32 = 267, PE32Plus = 523, } - public struct PEMemoryBlock { - public System.Collections.Immutable.ImmutableArray GetContent() => throw null; - public System.Collections.Immutable.ImmutableArray GetContent(int start, int length) => throw null; + public System.Collections.Immutable.ImmutableArray GetContent() => throw null; + public System.Collections.Immutable.ImmutableArray GetContent(int start, int length) => throw null; public System.Reflection.Metadata.BlobReader GetReader() => throw null; public System.Reflection.Metadata.BlobReader GetReader(int start, int length) => throw null; public int Length { get => throw null; } - // Stub generator skipped constructor - unsafe public System.Byte* Pointer { get => throw null; } + public unsafe byte* Pointer { get => throw null; } } - - public class PEReader : System.IDisposable + public sealed class PEReader : System.IDisposable { + public unsafe PEReader(byte* peImage, int size) => throw null; + public unsafe PEReader(byte* peImage, int size, bool isLoadedImage) => throw null; + public PEReader(System.Collections.Immutable.ImmutableArray peImage) => throw null; + public PEReader(System.IO.Stream peStream) => throw null; + public PEReader(System.IO.Stream peStream, System.Reflection.PortableExecutable.PEStreamOptions options) => throw null; + public PEReader(System.IO.Stream peStream, System.Reflection.PortableExecutable.PEStreamOptions options, int size) => throw null; public void Dispose() => throw null; public System.Reflection.PortableExecutable.PEMemoryBlock GetEntireImage() => throw null; public System.Reflection.PortableExecutable.PEMemoryBlock GetMetadata() => throw null; @@ -3619,134 +3159,112 @@ namespace System public bool IsEntireImageAvailable { get => throw null; } public bool IsLoadedImage { get => throw null; } public System.Reflection.PortableExecutable.PEHeaders PEHeaders { get => throw null; } - public PEReader(System.Collections.Immutable.ImmutableArray peImage) => throw null; - public PEReader(System.IO.Stream peStream) => throw null; - public PEReader(System.IO.Stream peStream, System.Reflection.PortableExecutable.PEStreamOptions options) => throw null; - public PEReader(System.IO.Stream peStream, System.Reflection.PortableExecutable.PEStreamOptions options, int size) => throw null; - unsafe public PEReader(System.Byte* peImage, int size) => throw null; - unsafe public PEReader(System.Byte* peImage, int size, bool isLoadedImage) => throw null; public System.Reflection.PortableExecutable.CodeViewDebugDirectoryData ReadCodeViewDebugDirectoryData(System.Reflection.PortableExecutable.DebugDirectoryEntry entry) => throw null; public System.Collections.Immutable.ImmutableArray ReadDebugDirectory() => throw null; public System.Reflection.Metadata.MetadataReaderProvider ReadEmbeddedPortablePdbDebugDirectoryData(System.Reflection.PortableExecutable.DebugDirectoryEntry entry) => throw null; public System.Reflection.PortableExecutable.PdbChecksumDebugDirectoryData ReadPdbChecksumDebugDirectoryData(System.Reflection.PortableExecutable.DebugDirectoryEntry entry) => throw null; public bool TryOpenAssociatedPortablePdb(string peImagePath, System.Func pdbFileStreamProvider, out System.Reflection.Metadata.MetadataReaderProvider pdbReaderProvider, out string pdbPath) => throw null; } - [System.Flags] - public enum PEStreamOptions : int + public enum PEStreamOptions { Default = 0, - IsLoadedImage = 8, LeaveOpen = 1, - PrefetchEntireImage = 4, PrefetchMetadata = 2, + PrefetchEntireImage = 4, + IsLoadedImage = 8, } - - public struct PdbChecksumDebugDirectoryData - { - public string AlgorithmName { get => throw null; } - public System.Collections.Immutable.ImmutableArray Checksum { get => throw null; } - // Stub generator skipped constructor - } - public abstract class ResourceSectionBuilder { protected ResourceSectionBuilder() => throw null; - protected internal abstract void Serialize(System.Reflection.Metadata.BlobBuilder builder, System.Reflection.PortableExecutable.SectionLocation location); + protected abstract void Serialize(System.Reflection.Metadata.BlobBuilder builder, System.Reflection.PortableExecutable.SectionLocation location); } - [System.Flags] public enum SectionCharacteristics : uint { - Align1024Bytes = 11534336, - Align128Bytes = 8388608, - Align16Bytes = 5242880, - Align1Bytes = 1048576, - Align2048Bytes = 12582912, - Align256Bytes = 9437184, - Align2Bytes = 2097152, - Align32Bytes = 6291456, - Align4096Bytes = 13631488, - Align4Bytes = 3145728, - Align512Bytes = 10485760, - Align64Bytes = 7340032, - Align8192Bytes = 14680064, - Align8Bytes = 4194304, - AlignMask = 15728640, + TypeReg = 0, + TypeDSect = 1, + TypeNoLoad = 2, + TypeGroup = 4, + TypeNoPad = 8, + TypeCopy = 16, ContainsCode = 32, ContainsInitializedData = 64, ContainsUninitializedData = 128, - GPRel = 32768, - LinkerComdat = 4096, - LinkerInfo = 512, - LinkerNRelocOvfl = 16777216, LinkerOther = 256, + LinkerInfo = 512, + TypeOver = 1024, LinkerRemove = 2048, - Mem16Bit = 131072, - MemDiscardable = 33554432, - MemExecute = 536870912, + LinkerComdat = 4096, + MemProtected = 16384, + NoDeferSpecExc = 16384, + GPRel = 32768, MemFardata = 32768, + MemSysheap = 65536, + Mem16Bit = 131072, + MemPurgeable = 131072, MemLocked = 262144, + MemPreload = 524288, + Align1Bytes = 1048576, + Align2Bytes = 2097152, + Align4Bytes = 3145728, + Align8Bytes = 4194304, + Align16Bytes = 5242880, + Align32Bytes = 6291456, + Align64Bytes = 7340032, + Align128Bytes = 8388608, + Align256Bytes = 9437184, + Align512Bytes = 10485760, + Align1024Bytes = 11534336, + Align2048Bytes = 12582912, + Align4096Bytes = 13631488, + Align8192Bytes = 14680064, + AlignMask = 15728640, + LinkerNRelocOvfl = 16777216, + MemDiscardable = 33554432, MemNotCached = 67108864, MemNotPaged = 134217728, - MemPreload = 524288, - MemProtected = 16384, - MemPurgeable = 131072, - MemRead = 1073741824, MemShared = 268435456, - MemSysheap = 65536, + MemExecute = 536870912, + MemRead = 1073741824, MemWrite = 2147483648, - NoDeferSpecExc = 16384, - TypeCopy = 16, - TypeDSect = 1, - TypeGroup = 4, - TypeNoLoad = 2, - TypeNoPad = 8, - TypeOver = 1024, - TypeReg = 0, } - public struct SectionHeader { public string Name { get => throw null; } - public System.UInt16 NumberOfLineNumbers { get => throw null; } - public System.UInt16 NumberOfRelocations { get => throw null; } + public ushort NumberOfLineNumbers { get => throw null; } + public ushort NumberOfRelocations { get => throw null; } public int PointerToLineNumbers { get => throw null; } public int PointerToRawData { get => throw null; } public int PointerToRelocations { get => throw null; } public System.Reflection.PortableExecutable.SectionCharacteristics SectionCharacteristics { get => throw null; } - // Stub generator skipped constructor public int SizeOfRawData { get => throw null; } public int VirtualAddress { get => throw null; } public int VirtualSize { get => throw null; } } - public struct SectionLocation { + public SectionLocation(int relativeVirtualAddress, int pointerToRawData) => throw null; public int PointerToRawData { get => throw null; } public int RelativeVirtualAddress { get => throw null; } - // Stub generator skipped constructor - public SectionLocation(int relativeVirtualAddress, int pointerToRawData) => throw null; } - public enum Subsystem : ushort { - EfiApplication = 10, - EfiBootServiceDriver = 11, - EfiRom = 13, - EfiRuntimeDriver = 12, + Unknown = 0, Native = 1, - NativeWindows = 8, + WindowsGui = 2, + WindowsCui = 3, OS2Cui = 5, PosixCui = 7, - Unknown = 0, - WindowsBootApplication = 16, + NativeWindows = 8, WindowsCEGui = 9, - WindowsCui = 3, - WindowsGui = 2, + EfiApplication = 10, + EfiBootServiceDriver = 11, + EfiRuntimeDriver = 12, + EfiRom = 13, Xbox = 14, + WindowsBootApplication = 16, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Primitives.cs index f8302f96b9c..fbec9354a35 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Primitives.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `System.Reflection.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Reflection { namespace Emit { - public enum FlowControl : int + public enum FlowControl { Branch = 0, Break = 1, @@ -19,36 +18,23 @@ namespace System Return = 7, Throw = 8, } - public struct OpCode : System.IEquatable { - public static bool operator !=(System.Reflection.Emit.OpCode a, System.Reflection.Emit.OpCode b) => throw null; - public static bool operator ==(System.Reflection.Emit.OpCode a, System.Reflection.Emit.OpCode b) => throw null; - public bool Equals(System.Reflection.Emit.OpCode obj) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.Emit.OpCode obj) => throw null; public System.Reflection.Emit.FlowControl FlowControl { get => throw null; } public override int GetHashCode() => throw null; public string Name { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.Reflection.Emit.OpCode a, System.Reflection.Emit.OpCode b) => throw null; + public static bool operator !=(System.Reflection.Emit.OpCode a, System.Reflection.Emit.OpCode b) => throw null; public System.Reflection.Emit.OpCodeType OpCodeType { get => throw null; } public System.Reflection.Emit.OperandType OperandType { get => throw null; } public int Size { get => throw null; } public System.Reflection.Emit.StackBehaviour StackBehaviourPop { get => throw null; } public System.Reflection.Emit.StackBehaviour StackBehaviourPush { get => throw null; } public override string ToString() => throw null; - public System.Int16 Value { get => throw null; } + public short Value { get => throw null; } } - - public enum OpCodeType : int - { - Annotation = 0, - Macro = 1, - Nternal = 2, - Objmodel = 3, - Prefix = 4, - Primitive = 5, - } - public class OpCodes { public static System.Reflection.Emit.OpCode Add; @@ -101,6 +87,7 @@ namespace System public static System.Reflection.Emit.OpCode Conv_I4; public static System.Reflection.Emit.OpCode Conv_I8; public static System.Reflection.Emit.OpCode Conv_Ovf_I; + public static System.Reflection.Emit.OpCode Conv_Ovf_I_Un; public static System.Reflection.Emit.OpCode Conv_Ovf_I1; public static System.Reflection.Emit.OpCode Conv_Ovf_I1_Un; public static System.Reflection.Emit.OpCode Conv_Ovf_I2; @@ -109,8 +96,8 @@ namespace System public static System.Reflection.Emit.OpCode Conv_Ovf_I4_Un; public static System.Reflection.Emit.OpCode Conv_Ovf_I8; public static System.Reflection.Emit.OpCode Conv_Ovf_I8_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_I_Un; public static System.Reflection.Emit.OpCode Conv_Ovf_U; + public static System.Reflection.Emit.OpCode Conv_Ovf_U_Un; public static System.Reflection.Emit.OpCode Conv_Ovf_U1; public static System.Reflection.Emit.OpCode Conv_Ovf_U1_Un; public static System.Reflection.Emit.OpCode Conv_Ovf_U2; @@ -119,10 +106,9 @@ namespace System public static System.Reflection.Emit.OpCode Conv_Ovf_U4_Un; public static System.Reflection.Emit.OpCode Conv_Ovf_U8; public static System.Reflection.Emit.OpCode Conv_Ovf_U8_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_U_Un; + public static System.Reflection.Emit.OpCode Conv_R_Un; public static System.Reflection.Emit.OpCode Conv_R4; public static System.Reflection.Emit.OpCode Conv_R8; - public static System.Reflection.Emit.OpCode Conv_R_Un; public static System.Reflection.Emit.OpCode Conv_U; public static System.Reflection.Emit.OpCode Conv_U1; public static System.Reflection.Emit.OpCode Conv_U2; @@ -279,8 +265,16 @@ namespace System public static System.Reflection.Emit.OpCode Volatile; public static System.Reflection.Emit.OpCode Xor; } - - public enum OperandType : int + public enum OpCodeType + { + Annotation = 0, + Macro = 1, + Nternal = 2, + Objmodel = 3, + Prefix = 4, + Primitive = 5, + } + public enum OperandType { InlineBrTarget = 0, InlineField = 1, @@ -301,21 +295,19 @@ namespace System ShortInlineR = 17, ShortInlineVar = 18, } - - public enum PackingSize : int + public enum PackingSize { - Size1 = 1, - Size128 = 128, - Size16 = 16, - Size2 = 2, - Size32 = 32, - Size4 = 4, - Size64 = 64, - Size8 = 8, Unspecified = 0, + Size1 = 1, + Size2 = 2, + Size4 = 4, + Size8 = 8, + Size16 = 16, + Size32 = 32, + Size64 = 64, + Size128 = 128, } - - public enum StackBehaviour : int + public enum StackBehaviour { Pop0 = 0, Pop1 = 1, @@ -330,7 +322,6 @@ namespace System Popref = 10, Popref_pop1 = 11, Popref_popi = 12, - Popref_popi_pop1 = 28, Popref_popi_popi = 13, Popref_popi_popi8 = 14, Popref_popi_popr4 = 15, @@ -346,8 +337,8 @@ namespace System Pushref = 25, Varpop = 26, Varpush = 27, + Popref_popi_pop1 = 28, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.TypeExtensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.TypeExtensions.cs index 30f03313c7a..701b423a5d2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.TypeExtensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.TypeExtensions.cs @@ -1,18 +1,16 @@ // This file contains auto-generated code. // Generated from `System.Reflection.TypeExtensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Reflection { - public static class AssemblyExtensions + public static partial class AssemblyExtensions { public static System.Type[] GetExportedTypes(this System.Reflection.Assembly assembly) => throw null; public static System.Reflection.Module[] GetModules(this System.Reflection.Assembly assembly) => throw null; public static System.Type[] GetTypes(this System.Reflection.Assembly assembly) => throw null; } - - public static class EventInfoExtensions + public static partial class EventInfoExtensions { public static System.Reflection.MethodInfo GetAddMethod(this System.Reflection.EventInfo eventInfo) => throw null; public static System.Reflection.MethodInfo GetAddMethod(this System.Reflection.EventInfo eventInfo, bool nonPublic) => throw null; @@ -21,25 +19,21 @@ namespace System public static System.Reflection.MethodInfo GetRemoveMethod(this System.Reflection.EventInfo eventInfo) => throw null; public static System.Reflection.MethodInfo GetRemoveMethod(this System.Reflection.EventInfo eventInfo, bool nonPublic) => throw null; } - - public static class MemberInfoExtensions + public static partial class MemberInfoExtensions { public static int GetMetadataToken(this System.Reflection.MemberInfo member) => throw null; public static bool HasMetadataToken(this System.Reflection.MemberInfo member) => throw null; } - - public static class MethodInfoExtensions + public static partial class MethodInfoExtensions { public static System.Reflection.MethodInfo GetBaseDefinition(this System.Reflection.MethodInfo method) => throw null; } - - public static class ModuleExtensions + public static partial class ModuleExtensions { public static System.Guid GetModuleVersionId(this System.Reflection.Module module) => throw null; public static bool HasModuleVersionId(this System.Reflection.Module module) => throw null; } - - public static class PropertyInfoExtensions + public static partial class PropertyInfoExtensions { public static System.Reflection.MethodInfo[] GetAccessors(this System.Reflection.PropertyInfo property) => throw null; public static System.Reflection.MethodInfo[] GetAccessors(this System.Reflection.PropertyInfo property, bool nonPublic) => throw null; @@ -48,8 +42,7 @@ namespace System public static System.Reflection.MethodInfo GetSetMethod(this System.Reflection.PropertyInfo property) => throw null; public static System.Reflection.MethodInfo GetSetMethod(this System.Reflection.PropertyInfo property, bool nonPublic) => throw null; } - - public static class TypeExtensions + public static partial class TypeExtensions { public static System.Reflection.ConstructorInfo GetConstructor(this System.Type type, System.Type[] types) => throw null; public static System.Reflection.ConstructorInfo[] GetConstructors(this System.Type type) => throw null; @@ -85,6 +78,5 @@ namespace System public static bool IsAssignableFrom(this System.Type type, System.Type c) => throw null; public static bool IsInstanceOfType(this System.Type type, object o) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs new file mode 100644 index 00000000000..8f0b2391b0a --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Reflection, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs new file mode 100644 index 00000000000..e3cb62ee621 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Resources.Reader, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs new file mode 100644 index 00000000000..91e19a89d1c --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Resources.ResourceManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Writer.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Writer.cs index 9e25b50b75d..119e436206d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Writer.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Writer.cs @@ -1,34 +1,31 @@ // This file contains auto-generated code. // Generated from `System.Resources.Writer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Resources { public interface IResourceWriter : System.IDisposable { - void AddResource(string name, System.Byte[] value); + void AddResource(string name, byte[] value); void AddResource(string name, object value); void AddResource(string name, string value); void Close(); void Generate(); } - - public class ResourceWriter : System.IDisposable, System.Resources.IResourceWriter + public sealed class ResourceWriter : System.IDisposable, System.Resources.IResourceWriter { - public void AddResource(string name, System.Byte[] value) => throw null; + public void AddResource(string name, byte[] value) => throw null; public void AddResource(string name, System.IO.Stream value) => throw null; public void AddResource(string name, System.IO.Stream value, bool closeAfterWrite = default(bool)) => throw null; public void AddResource(string name, object value) => throw null; public void AddResource(string name, string value) => throw null; - public void AddResourceData(string name, string typeName, System.Byte[] serializedData) => throw null; + public void AddResourceData(string name, string typeName, byte[] serializedData) => throw null; public void Close() => throw null; - public void Dispose() => throw null; - public void Generate() => throw null; public ResourceWriter(System.IO.Stream stream) => throw null; public ResourceWriter(string fileName) => throw null; - public System.Func TypeNameConverter { get => throw null; set => throw null; } + public void Dispose() => throw null; + public void Generate() => throw null; + public System.Func TypeNameConverter { get => throw null; set { } } } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs new file mode 100644 index 00000000000..271f2a6c542 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Runtime.CompilerServices.Unsafe, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.VisualC.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.VisualC.cs index 66b9322cc5a..a359bca22a8 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.VisualC.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.VisualC.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Runtime.CompilerServices.VisualC, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Runtime @@ -10,73 +9,57 @@ namespace System public static class CompilerMarshalOverride { } - - public class CppInlineNamespaceAttribute : System.Attribute + public sealed class CppInlineNamespaceAttribute : System.Attribute { public CppInlineNamespaceAttribute(string dottedName) => throw null; } - - public class HasCopySemanticsAttribute : System.Attribute + public sealed class HasCopySemanticsAttribute : System.Attribute { public HasCopySemanticsAttribute() => throw null; } - public static class IsBoxed { } - public static class IsByValue { } - public static class IsCopyConstructed { } - public static class IsExplicitlyDereferenced { } - public static class IsImplicitlyDereferenced { } - public static class IsJitIntrinsic { } - public static class IsLong { } - public static class IsPinned { } - public static class IsSignUnspecifiedByte { } - public static class IsUdtReturn { } - - public class NativeCppClassAttribute : System.Attribute + public sealed class NativeCppClassAttribute : System.Attribute { public NativeCppClassAttribute() => throw null; } - - public class RequiredAttributeAttribute : System.Attribute + public sealed class RequiredAttributeAttribute : System.Attribute { public RequiredAttributeAttribute(System.Type requiredContract) => throw null; public System.Type RequiredContract { get => throw null; } } - - public class ScopelessEnumAttribute : System.Attribute + public sealed class ScopelessEnumAttribute : System.Attribute { public ScopelessEnumAttribute() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs new file mode 100644 index 00000000000..69e4598a298 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Runtime.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs new file mode 100644 index 00000000000..3f502144ec7 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Runtime.Handles, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.JavaScript.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.JavaScript.cs index 1298bedf792..f731e562f02 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.JavaScript.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.JavaScript.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Runtime.InteropServices.JavaScript, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Runtime @@ -9,159 +8,147 @@ namespace System { namespace JavaScript { - public class JSException : System.Exception + public sealed class JSException : System.Exception { public JSException(string msg) => throw null; } - - public class JSExportAttribute : System.Attribute + public sealed class JSExportAttribute : System.Attribute { public JSExportAttribute() => throw null; } - - public class JSFunctionBinding + public sealed class JSFunctionBinding { public static System.Runtime.InteropServices.JavaScript.JSFunctionBinding BindJSFunction(string functionName, string moduleName, System.ReadOnlySpan signatures) => throw null; public static System.Runtime.InteropServices.JavaScript.JSFunctionBinding BindManagedFunction(string fullyQualifiedName, int signatureHash, System.ReadOnlySpan signatures) => throw null; - public static void InvokeJS(System.Runtime.InteropServices.JavaScript.JSFunctionBinding signature, System.Span arguments) => throw null; public JSFunctionBinding() => throw null; + public static void InvokeJS(System.Runtime.InteropServices.JavaScript.JSFunctionBinding signature, System.Span arguments) => throw null; } - public static class JSHost { public static System.Runtime.InteropServices.JavaScript.JSObject DotnetInstance { get => throw null; } public static System.Runtime.InteropServices.JavaScript.JSObject GlobalThis { get => throw null; } public static System.Threading.Tasks.Task ImportAsync(string moduleName, string moduleUrl, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - public class JSImportAttribute : System.Attribute + public sealed class JSImportAttribute : System.Attribute { - public string FunctionName { get => throw null; } public JSImportAttribute(string functionName) => throw null; public JSImportAttribute(string functionName, string moduleName) => throw null; + public string FunctionName { get => throw null; } public string ModuleName { get => throw null; } } - - public class JSMarshalAsAttribute : System.Attribute where T : System.Runtime.InteropServices.JavaScript.JSType + public sealed class JSMarshalAsAttribute : System.Attribute where T : System.Runtime.InteropServices.JavaScript.JSType { public JSMarshalAsAttribute() => throw null; } - public struct JSMarshalerArgument { public delegate void ArgumentToJSCallback(ref System.Runtime.InteropServices.JavaScript.JSMarshalerArgument arg, T value); - - public delegate void ArgumentToManagedCallback(ref System.Runtime.InteropServices.JavaScript.JSMarshalerArgument arg, out T value); - - public void Initialize() => throw null; - // Stub generator skipped constructor - public void ToJS(System.Action value) => throw null; - public void ToJS(System.ArraySegment value) => throw null; - public void ToJS(System.ArraySegment value) => throw null; - public void ToJS(System.ArraySegment value) => throw null; - public void ToJS(System.Byte[] value) => throw null; - public void ToJS(System.DateTime value) => throw null; - public void ToJS(System.DateTime? value) => throw null; - public void ToJS(System.DateTimeOffset value) => throw null; - public void ToJS(System.DateTimeOffset? value) => throw null; - public void ToJS(double[] value) => throw null; - public void ToJS(System.Exception value) => throw null; - public void ToJS(int[] value) => throw null; - public void ToJS(System.IntPtr value) => throw null; - public void ToJS(System.IntPtr? value) => throw null; - public void ToJS(System.Runtime.InteropServices.JavaScript.JSObject value) => throw null; - public void ToJS(System.Runtime.InteropServices.JavaScript.JSObject[] value) => throw null; - public void ToJS(object[] value) => throw null; - public void ToJS(System.Span value) => throw null; - public void ToJS(System.Span value) => throw null; - public void ToJS(System.Span value) => throw null; - public void ToJS(string[] value) => throw null; - public void ToJS(System.Threading.Tasks.Task value) => throw null; - unsafe public void ToJS(void* value) => throw null; public void ToJS(bool value) => throw null; public void ToJS(bool? value) => throw null; - public void ToJS(System.Byte value) => throw null; - public void ToJS(System.Byte? value) => throw null; - public void ToJS(System.Char value) => throw null; - public void ToJS(System.Char? value) => throw null; - public void ToJS(double value) => throw null; - public void ToJS(double? value) => throw null; - public void ToJS(float value) => throw null; - public void ToJS(float? value) => throw null; + public void ToJS(byte value) => throw null; + public void ToJS(byte? value) => throw null; + public void ToJS(byte[] value) => throw null; + public void ToJS(char value) => throw null; + public void ToJS(char? value) => throw null; + public void ToJS(short value) => throw null; + public void ToJS(short? value) => throw null; public void ToJS(int value) => throw null; public void ToJS(int? value) => throw null; - public void ToJS(System.Int64 value) => throw null; - public void ToJS(System.Int64? value) => throw null; - public void ToJS(object value) => throw null; - public void ToJS(System.Int16 value) => throw null; - public void ToJS(System.Int16? value) => throw null; + public void ToJS(int[] value) => throw null; + public void ToJS(long value) => throw null; + public void ToJS(long? value) => throw null; + public void ToJS(float value) => throw null; + public void ToJS(float? value) => throw null; + public void ToJS(double value) => throw null; + public void ToJS(double? value) => throw null; + public void ToJS(double[] value) => throw null; + public void ToJS(nint value) => throw null; + public void ToJS(nint? value) => throw null; + public void ToJS(System.DateTimeOffset value) => throw null; + public void ToJS(System.DateTimeOffset? value) => throw null; + public void ToJS(System.DateTime value) => throw null; + public void ToJS(System.DateTime? value) => throw null; public void ToJS(string value) => throw null; - public void ToJS(System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback resMarshaler) => throw null; - public void ToJS(System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg3Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback resMarshaler) => throw null; - public void ToJS(System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg3Marshaler) => throw null; - public void ToJS(System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback resMarshaler) => throw null; - public void ToJS(System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg2Marshaler) => throw null; - public void ToJS(System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler) => throw null; + public void ToJS(string[] value) => throw null; + public void ToJS(System.Exception value) => throw null; + public void ToJS(object value) => throw null; + public void ToJS(object[] value) => throw null; + public void ToJS(System.Runtime.InteropServices.JavaScript.JSObject value) => throw null; + public void ToJS(System.Runtime.InteropServices.JavaScript.JSObject[] value) => throw null; + public void ToJS(System.Threading.Tasks.Task value) => throw null; public void ToJS(System.Threading.Tasks.Task value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback marshaler) => throw null; + public void ToJS(System.Action value) => throw null; + public void ToJS(System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler) => throw null; + public void ToJS(System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg2Marshaler) => throw null; + public void ToJS(System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg3Marshaler) => throw null; public void ToJS(System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback resMarshaler) => throw null; - public void ToJSBig(System.Int64 value) => throw null; - public void ToJSBig(System.Int64? value) => throw null; - public void ToManaged(out System.Action value) => throw null; - public void ToManaged(out System.ArraySegment value) => throw null; - public void ToManaged(out System.ArraySegment value) => throw null; - public void ToManaged(out System.ArraySegment value) => throw null; - public void ToManaged(out System.Byte[] value) => throw null; - public void ToManaged(out System.DateTime value) => throw null; - public void ToManaged(out System.DateTime? value) => throw null; - public void ToManaged(out System.DateTimeOffset value) => throw null; - public void ToManaged(out System.DateTimeOffset? value) => throw null; - public void ToManaged(out double[] value) => throw null; - public void ToManaged(out System.Exception value) => throw null; - public void ToManaged(out int[] value) => throw null; - public void ToManaged(out System.IntPtr value) => throw null; - public void ToManaged(out System.IntPtr? value) => throw null; - public void ToManaged(out System.Runtime.InteropServices.JavaScript.JSObject value) => throw null; - public void ToManaged(out System.Runtime.InteropServices.JavaScript.JSObject[] value) => throw null; - public void ToManaged(out object[] value) => throw null; - public void ToManaged(out System.Span value) => throw null; - public void ToManaged(out System.Span value) => throw null; - public void ToManaged(out System.Span value) => throw null; - public void ToManaged(out string[] value) => throw null; - public void ToManaged(out System.Threading.Tasks.Task value) => throw null; - unsafe public void ToManaged(out void* value) => throw null; + public void ToJS(System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback resMarshaler) => throw null; + public void ToJS(System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback resMarshaler) => throw null; + public void ToJS(System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback arg3Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback resMarshaler) => throw null; + public unsafe void ToJS(void* value) => throw null; + public void ToJS(System.Span value) => throw null; + public void ToJS(System.ArraySegment value) => throw null; + public void ToJS(System.Span value) => throw null; + public void ToJS(System.Span value) => throw null; + public void ToJS(System.ArraySegment value) => throw null; + public void ToJS(System.ArraySegment value) => throw null; + public void ToJSBig(long value) => throw null; + public void ToJSBig(long? value) => throw null; public void ToManaged(out bool value) => throw null; public void ToManaged(out bool? value) => throw null; - public void ToManaged(out System.Byte value) => throw null; - public void ToManaged(out System.Byte? value) => throw null; - public void ToManaged(out System.Char value) => throw null; - public void ToManaged(out System.Char? value) => throw null; - public void ToManaged(out double value) => throw null; - public void ToManaged(out double? value) => throw null; - public void ToManaged(out float value) => throw null; - public void ToManaged(out float? value) => throw null; + public void ToManaged(out byte value) => throw null; + public void ToManaged(out byte? value) => throw null; + public void ToManaged(out byte[] value) => throw null; + public void ToManaged(out char value) => throw null; + public void ToManaged(out char? value) => throw null; + public void ToManaged(out short value) => throw null; + public void ToManaged(out short? value) => throw null; public void ToManaged(out int value) => throw null; public void ToManaged(out int? value) => throw null; - public void ToManaged(out System.Int64 value) => throw null; - public void ToManaged(out System.Int64? value) => throw null; - public void ToManaged(out object value) => throw null; - public void ToManaged(out System.Int16 value) => throw null; - public void ToManaged(out System.Int16? value) => throw null; + public void ToManaged(out int[] value) => throw null; + public void ToManaged(out long value) => throw null; + public void ToManaged(out long? value) => throw null; + public void ToManaged(out float value) => throw null; + public void ToManaged(out float? value) => throw null; + public void ToManaged(out double value) => throw null; + public void ToManaged(out double? value) => throw null; + public void ToManaged(out double[] value) => throw null; + public void ToManaged(out nint value) => throw null; + public void ToManaged(out nint? value) => throw null; + public void ToManaged(out System.DateTimeOffset value) => throw null; + public void ToManaged(out System.DateTimeOffset? value) => throw null; + public void ToManaged(out System.DateTime value) => throw null; + public void ToManaged(out System.DateTime? value) => throw null; public void ToManaged(out string value) => throw null; - public void ToManaged(out System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback resMarshaler) => throw null; - public void ToManaged(out System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg3Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback resMarshaler) => throw null; - public void ToManaged(out System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg3Marshaler) => throw null; - public void ToManaged(out System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback resMarshaler) => throw null; - public void ToManaged(out System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg2Marshaler) => throw null; - public void ToManaged(out System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler) => throw null; + public void ToManaged(out string[] value) => throw null; + public void ToManaged(out System.Exception value) => throw null; + public void ToManaged(out object value) => throw null; + public void ToManaged(out object[] value) => throw null; + public void ToManaged(out System.Runtime.InteropServices.JavaScript.JSObject value) => throw null; + public void ToManaged(out System.Runtime.InteropServices.JavaScript.JSObject[] value) => throw null; + public void ToManaged(out System.Threading.Tasks.Task value) => throw null; public void ToManaged(out System.Threading.Tasks.Task value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback marshaler) => throw null; + public void ToManaged(out System.Action value) => throw null; + public void ToManaged(out System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler) => throw null; + public void ToManaged(out System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg2Marshaler) => throw null; + public void ToManaged(out System.Action value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg3Marshaler) => throw null; public void ToManaged(out System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback resMarshaler) => throw null; - public void ToManagedBig(out System.Int64 value) => throw null; - public void ToManagedBig(out System.Int64? value) => throw null; + public void ToManaged(out System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback resMarshaler) => throw null; + public void ToManaged(out System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback resMarshaler) => throw null; + public void ToManaged(out System.Func value, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg1Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg2Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToJSCallback arg3Marshaler, System.Runtime.InteropServices.JavaScript.JSMarshalerArgument.ArgumentToManagedCallback resMarshaler) => throw null; + public unsafe void ToManaged(out void* value) => throw null; + public void ToManaged(out System.Span value) => throw null; + public void ToManaged(out System.ArraySegment value) => throw null; + public void ToManaged(out System.Span value) => throw null; + public void ToManaged(out System.Span value) => throw null; + public void ToManaged(out System.ArraySegment value) => throw null; + public void ToManaged(out System.ArraySegment value) => throw null; + public void ToManagedBig(out long value) => throw null; + public void ToManagedBig(out long? value) => throw null; } - - public class JSMarshalerType + public sealed class JSMarshalerType { public static System.Runtime.InteropServices.JavaScript.JSMarshalerType Action() => throw null; public static System.Runtime.InteropServices.JavaScript.JSMarshalerType Action(System.Runtime.InteropServices.JavaScript.JSMarshalerType arg1) => throw null; @@ -196,12 +183,11 @@ namespace System public static System.Runtime.InteropServices.JavaScript.JSMarshalerType Task(System.Runtime.InteropServices.JavaScript.JSMarshalerType result) => throw null; public static System.Runtime.InteropServices.JavaScript.JSMarshalerType Void { get => throw null; } } - public class JSObject : System.IDisposable { public void Dispose() => throw null; public bool GetPropertyAsBoolean(string propertyName) => throw null; - public System.Byte[] GetPropertyAsByteArray(string propertyName) => throw null; + public byte[] GetPropertyAsByteArray(string propertyName) => throw null; public double GetPropertyAsDouble(string propertyName) => throw null; public int GetPropertyAsInt32(string propertyName) => throw null; public System.Runtime.InteropServices.JavaScript.JSObject GetPropertyAsJSObject(string propertyName) => throw null; @@ -209,109 +195,70 @@ namespace System public string GetTypeOfProperty(string propertyName) => throw null; public bool HasProperty(string propertyName) => throw null; public bool IsDisposed { get => throw null; } - public void SetProperty(string propertyName, System.Byte[] value) => throw null; - public void SetProperty(string propertyName, System.Runtime.InteropServices.JavaScript.JSObject value) => throw null; public void SetProperty(string propertyName, bool value) => throw null; - public void SetProperty(string propertyName, double value) => throw null; public void SetProperty(string propertyName, int value) => throw null; + public void SetProperty(string propertyName, double value) => throw null; public void SetProperty(string propertyName, string value) => throw null; + public void SetProperty(string propertyName, System.Runtime.InteropServices.JavaScript.JSObject value) => throw null; + public void SetProperty(string propertyName, byte[] value) => throw null; } - public abstract class JSType { - public class Any : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Any : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Array : System.Runtime.InteropServices.JavaScript.JSType where T : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Array : System.Runtime.InteropServices.JavaScript.JSType where T : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class BigInt : System.Runtime.InteropServices.JavaScript.JSType + public sealed class BigInt : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Boolean : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Boolean : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Date : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Date : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Discard : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Discard : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Error : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Error : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Function : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Function : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Function : System.Runtime.InteropServices.JavaScript.JSType where T1 : System.Runtime.InteropServices.JavaScript.JSType where T2 : System.Runtime.InteropServices.JavaScript.JSType where T3 : System.Runtime.InteropServices.JavaScript.JSType where T4 : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Function : System.Runtime.InteropServices.JavaScript.JSType where T : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Function : System.Runtime.InteropServices.JavaScript.JSType where T1 : System.Runtime.InteropServices.JavaScript.JSType where T2 : System.Runtime.InteropServices.JavaScript.JSType where T3 : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Function : System.Runtime.InteropServices.JavaScript.JSType where T1 : System.Runtime.InteropServices.JavaScript.JSType where T2 : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Function : System.Runtime.InteropServices.JavaScript.JSType where T1 : System.Runtime.InteropServices.JavaScript.JSType where T2 : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Function : System.Runtime.InteropServices.JavaScript.JSType where T1 : System.Runtime.InteropServices.JavaScript.JSType where T2 : System.Runtime.InteropServices.JavaScript.JSType where T3 : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Function : System.Runtime.InteropServices.JavaScript.JSType where T : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Function : System.Runtime.InteropServices.JavaScript.JSType where T1 : System.Runtime.InteropServices.JavaScript.JSType where T2 : System.Runtime.InteropServices.JavaScript.JSType where T3 : System.Runtime.InteropServices.JavaScript.JSType where T4 : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class MemoryView : System.Runtime.InteropServices.JavaScript.JSType + public sealed class MemoryView : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Number : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Number : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Object : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Object : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Promise : System.Runtime.InteropServices.JavaScript.JSType where T : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Promise : System.Runtime.InteropServices.JavaScript.JSType where T : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class String : System.Runtime.InteropServices.JavaScript.JSType + public sealed class String : System.Runtime.InteropServices.JavaScript.JSType { } - - - public class Void : System.Runtime.InteropServices.JavaScript.JSType + public sealed class Void : System.Runtime.InteropServices.JavaScript.JSType { } - - - internal JSType() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs new file mode 100644 index 00000000000..7148ca0f716 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Runtime.InteropServices.RuntimeInformation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs index 5dd7c8a64ba..94f294b354e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs @@ -1,15 +1,13 @@ // This file contains auto-generated code. // Generated from `System.Runtime.InteropServices, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { - public class DataMisalignedException : System.SystemException + public sealed class DataMisalignedException : System.SystemException { public DataMisalignedException() => throw null; public DataMisalignedException(string message) => throw null; public DataMisalignedException(string message, System.Exception innerException) => throw null; } - public class DllNotFoundException : System.TypeLoadException { public DllNotFoundException() => throw null; @@ -17,187 +15,147 @@ namespace System public DllNotFoundException(string message) => throw null; public DllNotFoundException(string message, System.Exception inner) => throw null; } - namespace IO { public class UnmanagedMemoryAccessor : System.IDisposable { public bool CanRead { get => throw null; } public bool CanWrite { get => throw null; } - public System.Int64 Capacity { get => throw null; } + public long Capacity { get => throw null; } + protected UnmanagedMemoryAccessor() => throw null; + public UnmanagedMemoryAccessor(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long capacity) => throw null; + public UnmanagedMemoryAccessor(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long capacity, System.IO.FileAccess access) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - protected void Initialize(System.Runtime.InteropServices.SafeBuffer buffer, System.Int64 offset, System.Int64 capacity, System.IO.FileAccess access) => throw null; + protected void Initialize(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long capacity, System.IO.FileAccess access) => throw null; protected bool IsOpen { get => throw null; } - public void Read(System.Int64 position, out T structure) where T : struct => throw null; - public int ReadArray(System.Int64 position, T[] array, int offset, int count) where T : struct => throw null; - public bool ReadBoolean(System.Int64 position) => throw null; - public System.Byte ReadByte(System.Int64 position) => throw null; - public System.Char ReadChar(System.Int64 position) => throw null; - public System.Decimal ReadDecimal(System.Int64 position) => throw null; - public double ReadDouble(System.Int64 position) => throw null; - public System.Int16 ReadInt16(System.Int64 position) => throw null; - public int ReadInt32(System.Int64 position) => throw null; - public System.Int64 ReadInt64(System.Int64 position) => throw null; - public System.SByte ReadSByte(System.Int64 position) => throw null; - public float ReadSingle(System.Int64 position) => throw null; - public System.UInt16 ReadUInt16(System.Int64 position) => throw null; - public System.UInt32 ReadUInt32(System.Int64 position) => throw null; - public System.UInt64 ReadUInt64(System.Int64 position) => throw null; - protected UnmanagedMemoryAccessor() => throw null; - public UnmanagedMemoryAccessor(System.Runtime.InteropServices.SafeBuffer buffer, System.Int64 offset, System.Int64 capacity) => throw null; - public UnmanagedMemoryAccessor(System.Runtime.InteropServices.SafeBuffer buffer, System.Int64 offset, System.Int64 capacity, System.IO.FileAccess access) => throw null; - public void Write(System.Int64 position, bool value) => throw null; - public void Write(System.Int64 position, System.Byte value) => throw null; - public void Write(System.Int64 position, System.Char value) => throw null; - public void Write(System.Int64 position, System.Decimal value) => throw null; - public void Write(System.Int64 position, double value) => throw null; - public void Write(System.Int64 position, float value) => throw null; - public void Write(System.Int64 position, int value) => throw null; - public void Write(System.Int64 position, System.Int64 value) => throw null; - public void Write(System.Int64 position, System.SByte value) => throw null; - public void Write(System.Int64 position, System.Int16 value) => throw null; - public void Write(System.Int64 position, System.UInt32 value) => throw null; - public void Write(System.Int64 position, System.UInt64 value) => throw null; - public void Write(System.Int64 position, System.UInt16 value) => throw null; - public void Write(System.Int64 position, ref T structure) where T : struct => throw null; - public void WriteArray(System.Int64 position, T[] array, int offset, int count) where T : struct => throw null; + public void Read(long position, out T structure) where T : struct => throw null; + public int ReadArray(long position, T[] array, int offset, int count) where T : struct => throw null; + public bool ReadBoolean(long position) => throw null; + public byte ReadByte(long position) => throw null; + public char ReadChar(long position) => throw null; + public decimal ReadDecimal(long position) => throw null; + public double ReadDouble(long position) => throw null; + public short ReadInt16(long position) => throw null; + public int ReadInt32(long position) => throw null; + public long ReadInt64(long position) => throw null; + public sbyte ReadSByte(long position) => throw null; + public float ReadSingle(long position) => throw null; + public ushort ReadUInt16(long position) => throw null; + public uint ReadUInt32(long position) => throw null; + public ulong ReadUInt64(long position) => throw null; + public void Write(long position, bool value) => throw null; + public void Write(long position, byte value) => throw null; + public void Write(long position, char value) => throw null; + public void Write(long position, decimal value) => throw null; + public void Write(long position, double value) => throw null; + public void Write(long position, short value) => throw null; + public void Write(long position, int value) => throw null; + public void Write(long position, long value) => throw null; + public void Write(long position, sbyte value) => throw null; + public void Write(long position, float value) => throw null; + public void Write(long position, ushort value) => throw null; + public void Write(long position, uint value) => throw null; + public void Write(long position, ulong value) => throw null; + public void Write(long position, ref T structure) where T : struct => throw null; + public void WriteArray(long position, T[] array, int offset, int count) where T : struct => throw null; } - } namespace Runtime { namespace CompilerServices { - public class IDispatchConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute + public sealed class IDispatchConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute { public IDispatchConstantAttribute() => throw null; public override object Value { get => throw null; } } - - public class IUnknownConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute + public sealed class IUnknownConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute { public IUnknownConstantAttribute() => throw null; public override object Value { get => throw null; } } - } namespace InteropServices { - public class AllowReversePInvokeCallsAttribute : System.Attribute + public sealed class AllowReversePInvokeCallsAttribute : System.Attribute { public AllowReversePInvokeCallsAttribute() => throw null; } - public struct ArrayWithOffset : System.IEquatable { - public static bool operator !=(System.Runtime.InteropServices.ArrayWithOffset a, System.Runtime.InteropServices.ArrayWithOffset b) => throw null; - public static bool operator ==(System.Runtime.InteropServices.ArrayWithOffset a, System.Runtime.InteropServices.ArrayWithOffset b) => throw null; - // Stub generator skipped constructor public ArrayWithOffset(object array, int offset) => throw null; - public bool Equals(System.Runtime.InteropServices.ArrayWithOffset obj) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Runtime.InteropServices.ArrayWithOffset obj) => throw null; public object GetArray() => throw null; public override int GetHashCode() => throw null; public int GetOffset() => throw null; + public static bool operator ==(System.Runtime.InteropServices.ArrayWithOffset a, System.Runtime.InteropServices.ArrayWithOffset b) => throw null; + public static bool operator !=(System.Runtime.InteropServices.ArrayWithOffset a, System.Runtime.InteropServices.ArrayWithOffset b) => throw null; } - - public class AutomationProxyAttribute : System.Attribute + public sealed class AutomationProxyAttribute : System.Attribute { public AutomationProxyAttribute(bool val) => throw null; public bool Value { get => throw null; } } - - public class BStrWrapper - { - public BStrWrapper(object value) => throw null; - public BStrWrapper(string value) => throw null; - public string WrappedObject { get => throw null; } - } - - public class BestFitMappingAttribute : System.Attribute + public sealed class BestFitMappingAttribute : System.Attribute { public bool BestFitMapping { get => throw null; } public BestFitMappingAttribute(bool BestFitMapping) => throw null; public bool ThrowOnUnmappableChar; } - - public struct CLong : System.IEquatable + public sealed class BStrWrapper { - // Stub generator skipped constructor - public CLong(System.IntPtr value) => throw null; - public CLong(int value) => throw null; - public bool Equals(System.Runtime.InteropServices.CLong other) => throw null; - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - public System.IntPtr Value { get => throw null; } + public BStrWrapper(object value) => throw null; + public BStrWrapper(string value) => throw null; + public string WrappedObject { get => throw null; } } - - public class COMException : System.Runtime.InteropServices.ExternalException - { - public COMException() => throw null; - protected COMException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public COMException(string message) => throw null; - public COMException(string message, System.Exception inner) => throw null; - public COMException(string message, int errorCode) => throw null; - public override string ToString() => throw null; - } - - public struct CULong : System.IEquatable - { - // Stub generator skipped constructor - public CULong(System.UIntPtr value) => throw null; - public CULong(System.UInt32 value) => throw null; - public bool Equals(System.Runtime.InteropServices.CULong other) => throw null; - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - public System.UIntPtr Value { get => throw null; } - } - - public enum CallingConvention : int + public enum CallingConvention { + Winapi = 1, Cdecl = 2, - FastCall = 5, StdCall = 3, ThisCall = 4, - Winapi = 1, + FastCall = 5, } - - public class ClassInterfaceAttribute : System.Attribute + public sealed class ClassInterfaceAttribute : System.Attribute { + public ClassInterfaceAttribute(short classInterfaceType) => throw null; public ClassInterfaceAttribute(System.Runtime.InteropServices.ClassInterfaceType classInterfaceType) => throw null; - public ClassInterfaceAttribute(System.Int16 classInterfaceType) => throw null; public System.Runtime.InteropServices.ClassInterfaceType Value { get => throw null; } } - - public enum ClassInterfaceType : int + public enum ClassInterfaceType { + None = 0, AutoDispatch = 1, AutoDual = 2, - None = 0, } - - public class CoClassAttribute : System.Attribute + public struct CLong : System.IEquatable + { + public CLong(int value) => throw null; + public CLong(nint value) => throw null; + public override bool Equals(object o) => throw null; + public bool Equals(System.Runtime.InteropServices.CLong other) => throw null; + public override int GetHashCode() => throw null; + public override string ToString() => throw null; + public nint Value { get => throw null; } + } + public sealed class CoClassAttribute : System.Attribute { public System.Type CoClass { get => throw null; } public CoClassAttribute(System.Type coClass) => throw null; } - public static class CollectionsMarshal { public static System.Span AsSpan(System.Collections.Generic.List list) => throw null; public static TValue GetValueRefOrAddDefault(System.Collections.Generic.Dictionary dictionary, TKey key, out bool exists) => throw null; public static TValue GetValueRefOrNullRef(System.Collections.Generic.Dictionary dictionary, TKey key) => throw null; } - - public class ComAliasNameAttribute : System.Attribute + public sealed class ComAliasNameAttribute : System.Attribute { public ComAliasNameAttribute(string alias) => throw null; public string Value { get => throw null; } } - public class ComAwareEventInfo : System.Reflection.EventInfo { public override void AddEventHandler(object target, System.Delegate handler) => throw null; @@ -205,8 +163,8 @@ namespace System public ComAwareEventInfo(System.Type type, string eventName) => throw null; public override System.Type DeclaringType { get => throw null; } public override System.Reflection.MethodInfo GetAddMethod(bool nonPublic) => throw null; - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; public override System.Collections.Generic.IList GetCustomAttributesData() => throw null; public override System.Reflection.MethodInfo[] GetOtherMethods(bool nonPublic) => throw null; public override System.Reflection.MethodInfo GetRaiseMethod(bool nonPublic) => throw null; @@ -218,8 +176,7 @@ namespace System public override System.Type ReflectedType { get => throw null; } public override void RemoveEventHandler(object target, System.Delegate handler) => throw null; } - - public class ComCompatibleVersionAttribute : System.Attribute + public sealed class ComCompatibleVersionAttribute : System.Attribute { public int BuildNumber { get => throw null; } public ComCompatibleVersionAttribute(int major, int minor, int build, int revision) => throw null; @@ -227,1218 +184,213 @@ namespace System public int MinorVersion { get => throw null; } public int RevisionNumber { get => throw null; } } - - public class ComConversionLossAttribute : System.Attribute + public sealed class ComConversionLossAttribute : System.Attribute { public ComConversionLossAttribute() => throw null; } - - public class ComDefaultInterfaceAttribute : System.Attribute + public sealed class ComDefaultInterfaceAttribute : System.Attribute { public ComDefaultInterfaceAttribute(System.Type defaultInterface) => throw null; public System.Type Value { get => throw null; } } - - public class ComEventInterfaceAttribute : System.Attribute + public sealed class ComEventInterfaceAttribute : System.Attribute { public ComEventInterfaceAttribute(System.Type SourceInterface, System.Type EventProvider) => throw null; public System.Type EventProvider { get => throw null; } public System.Type SourceInterface { get => throw null; } } - public static class ComEventsHelper { public static void Combine(object rcw, System.Guid iid, int dispid, System.Delegate d) => throw null; public static System.Delegate Remove(object rcw, System.Guid iid, int dispid, System.Delegate d) => throw null; } - - public class ComImportAttribute : System.Attribute + public class COMException : System.Runtime.InteropServices.ExternalException + { + public COMException() => throw null; + protected COMException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public COMException(string message) => throw null; + public COMException(string message, System.Exception inner) => throw null; + public COMException(string message, int errorCode) => throw null; + public override string ToString() => throw null; + } + public sealed class ComImportAttribute : System.Attribute { public ComImportAttribute() => throw null; } - - public enum ComInterfaceType : int + public enum ComInterfaceType { InterfaceIsDual = 0, + InterfaceIsIUnknown = 1, InterfaceIsIDispatch = 2, InterfaceIsIInspectable = 3, - InterfaceIsIUnknown = 1, } - - public enum ComMemberType : int + public enum ComMemberType { Method = 0, PropGet = 1, PropSet = 2, } - - public class ComRegisterFunctionAttribute : System.Attribute + public sealed class ComRegisterFunctionAttribute : System.Attribute { public ComRegisterFunctionAttribute() => throw null; } - - public class ComSourceInterfacesAttribute : System.Attribute + public sealed class ComSourceInterfacesAttribute : System.Attribute { + public ComSourceInterfacesAttribute(string sourceInterfaces) => throw null; public ComSourceInterfacesAttribute(System.Type sourceInterface) => throw null; public ComSourceInterfacesAttribute(System.Type sourceInterface1, System.Type sourceInterface2) => throw null; public ComSourceInterfacesAttribute(System.Type sourceInterface1, System.Type sourceInterface2, System.Type sourceInterface3) => throw null; public ComSourceInterfacesAttribute(System.Type sourceInterface1, System.Type sourceInterface2, System.Type sourceInterface3, System.Type sourceInterface4) => throw null; - public ComSourceInterfacesAttribute(string sourceInterfaces) => throw null; public string Value { get => throw null; } } - - public class ComUnregisterFunctionAttribute : System.Attribute - { - public ComUnregisterFunctionAttribute() => throw null; - } - - public abstract class ComWrappers - { - public struct ComInterfaceDispatch - { - // Stub generator skipped constructor - unsafe public static T GetInstance(System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* dispatchPtr) where T : class => throw null; - public System.IntPtr Vtable; - } - - - public struct ComInterfaceEntry - { - // Stub generator skipped constructor - public System.Guid IID; - public System.IntPtr Vtable; - } - - - protected ComWrappers() => throw null; - unsafe protected abstract System.Runtime.InteropServices.ComWrappers.ComInterfaceEntry* ComputeVtables(object obj, System.Runtime.InteropServices.CreateComInterfaceFlags flags, out int count); - protected abstract object CreateObject(System.IntPtr externalComObject, System.Runtime.InteropServices.CreateObjectFlags flags); - protected static void GetIUnknownImpl(out System.IntPtr fpQueryInterface, out System.IntPtr fpAddRef, out System.IntPtr fpRelease) => throw null; - public System.IntPtr GetOrCreateComInterfaceForObject(object instance, System.Runtime.InteropServices.CreateComInterfaceFlags flags) => throw null; - public object GetOrCreateObjectForComInstance(System.IntPtr externalComObject, System.Runtime.InteropServices.CreateObjectFlags flags) => throw null; - public object GetOrRegisterObjectForComInstance(System.IntPtr externalComObject, System.Runtime.InteropServices.CreateObjectFlags flags, object wrapper) => throw null; - public object GetOrRegisterObjectForComInstance(System.IntPtr externalComObject, System.Runtime.InteropServices.CreateObjectFlags flags, object wrapper, System.IntPtr inner) => throw null; - public static void RegisterForMarshalling(System.Runtime.InteropServices.ComWrappers instance) => throw null; - public static void RegisterForTrackerSupport(System.Runtime.InteropServices.ComWrappers instance) => throw null; - protected abstract void ReleaseObjects(System.Collections.IEnumerable objects); - } - - [System.Flags] - public enum CreateComInterfaceFlags : int - { - CallerDefinedIUnknown = 1, - None = 0, - TrackerSupport = 2, - } - - [System.Flags] - public enum CreateObjectFlags : int - { - Aggregation = 4, - None = 0, - TrackerObject = 1, - UniqueInstance = 2, - Unwrap = 8, - } - - public class CurrencyWrapper - { - public CurrencyWrapper(System.Decimal obj) => throw null; - public CurrencyWrapper(object obj) => throw null; - public System.Decimal WrappedObject { get => throw null; } - } - - public enum CustomQueryInterfaceMode : int - { - Allow = 1, - Ignore = 0, - } - - public enum CustomQueryInterfaceResult : int - { - Failed = 2, - Handled = 0, - NotHandled = 1, - } - - public class DefaultCharSetAttribute : System.Attribute - { - public System.Runtime.InteropServices.CharSet CharSet { get => throw null; } - public DefaultCharSetAttribute(System.Runtime.InteropServices.CharSet charSet) => throw null; - } - - public class DefaultDllImportSearchPathsAttribute : System.Attribute - { - public DefaultDllImportSearchPathsAttribute(System.Runtime.InteropServices.DllImportSearchPath paths) => throw null; - public System.Runtime.InteropServices.DllImportSearchPath Paths { get => throw null; } - } - - public class DefaultParameterValueAttribute : System.Attribute - { - public DefaultParameterValueAttribute(object value) => throw null; - public object Value { get => throw null; } - } - - public class DispIdAttribute : System.Attribute - { - public DispIdAttribute(int dispId) => throw null; - public int Value { get => throw null; } - } - - public class DispatchWrapper - { - public DispatchWrapper(object obj) => throw null; - public object WrappedObject { get => throw null; } - } - - public class DllImportAttribute : System.Attribute - { - public bool BestFitMapping; - public System.Runtime.InteropServices.CallingConvention CallingConvention; - public System.Runtime.InteropServices.CharSet CharSet; - public DllImportAttribute(string dllName) => throw null; - public string EntryPoint; - public bool ExactSpelling; - public bool PreserveSig; - public bool SetLastError; - public bool ThrowOnUnmappableChar; - public string Value { get => throw null; } - } - - public delegate System.IntPtr DllImportResolver(string libraryName, System.Reflection.Assembly assembly, System.Runtime.InteropServices.DllImportSearchPath? searchPath); - - [System.Flags] - public enum DllImportSearchPath : int - { - ApplicationDirectory = 512, - AssemblyDirectory = 2, - LegacyBehavior = 0, - SafeDirectories = 4096, - System32 = 2048, - UseDllDirectoryForDependencies = 256, - UserDirectories = 1024, - } - - public class DynamicInterfaceCastableImplementationAttribute : System.Attribute - { - public DynamicInterfaceCastableImplementationAttribute() => throw null; - } - - public class ErrorWrapper - { - public int ErrorCode { get => throw null; } - public ErrorWrapper(System.Exception e) => throw null; - public ErrorWrapper(int errorCode) => throw null; - public ErrorWrapper(object errorCode) => throw null; - } - - public class GuidAttribute : System.Attribute - { - public GuidAttribute(string guid) => throw null; - public string Value { get => throw null; } - } - - public class HandleCollector - { - public void Add() => throw null; - public int Count { get => throw null; } - public HandleCollector(string name, int initialThreshold) => throw null; - public HandleCollector(string name, int initialThreshold, int maximumThreshold) => throw null; - public int InitialThreshold { get => throw null; } - public int MaximumThreshold { get => throw null; } - public string Name { get => throw null; } - public void Remove() => throw null; - } - - public struct HandleRef - { - public System.IntPtr Handle { get => throw null; } - // Stub generator skipped constructor - public HandleRef(object wrapper, System.IntPtr handle) => throw null; - public static System.IntPtr ToIntPtr(System.Runtime.InteropServices.HandleRef value) => throw null; - public object Wrapper { get => throw null; } - public static explicit operator System.IntPtr(System.Runtime.InteropServices.HandleRef value) => throw null; - } - - public interface ICustomAdapter - { - object GetUnderlyingObject(); - } - - public interface ICustomFactory - { - System.MarshalByRefObject CreateInstance(System.Type serverType); - } - - public interface ICustomMarshaler - { - void CleanUpManagedData(object ManagedObj); - void CleanUpNativeData(System.IntPtr pNativeData); - int GetNativeDataSize(); - System.IntPtr MarshalManagedToNative(object ManagedObj); - object MarshalNativeToManaged(System.IntPtr pNativeData); - } - - public interface ICustomQueryInterface - { - System.Runtime.InteropServices.CustomQueryInterfaceResult GetInterface(ref System.Guid iid, out System.IntPtr ppv); - } - - public interface IDynamicInterfaceCastable - { - System.RuntimeTypeHandle GetInterfaceImplementation(System.RuntimeTypeHandle interfaceType); - bool IsInterfaceImplemented(System.RuntimeTypeHandle interfaceType, bool throwIfNotImplemented); - } - - public class ImportedFromTypeLibAttribute : System.Attribute - { - public ImportedFromTypeLibAttribute(string tlbFile) => throw null; - public string Value { get => throw null; } - } - - public class InterfaceTypeAttribute : System.Attribute - { - public InterfaceTypeAttribute(System.Runtime.InteropServices.ComInterfaceType interfaceType) => throw null; - public InterfaceTypeAttribute(System.Int16 interfaceType) => throw null; - public System.Runtime.InteropServices.ComInterfaceType Value { get => throw null; } - } - - public class InvalidComObjectException : System.SystemException - { - public InvalidComObjectException() => throw null; - protected InvalidComObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public InvalidComObjectException(string message) => throw null; - public InvalidComObjectException(string message, System.Exception inner) => throw null; - } - - public class InvalidOleVariantTypeException : System.SystemException - { - public InvalidOleVariantTypeException() => throw null; - protected InvalidOleVariantTypeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public InvalidOleVariantTypeException(string message) => throw null; - public InvalidOleVariantTypeException(string message, System.Exception inner) => throw null; - } - - public class LCIDConversionAttribute : System.Attribute - { - public LCIDConversionAttribute(int lcid) => throw null; - public int Value { get => throw null; } - } - - public class LibraryImportAttribute : System.Attribute - { - public string EntryPoint { get => throw null; set => throw null; } - public LibraryImportAttribute(string libraryName) => throw null; - public string LibraryName { get => throw null; } - public bool SetLastError { get => throw null; set => throw null; } - public System.Runtime.InteropServices.StringMarshalling StringMarshalling { get => throw null; set => throw null; } - public System.Type StringMarshallingCustomType { get => throw null; set => throw null; } - } - - public class ManagedToNativeComInteropStubAttribute : System.Attribute - { - public System.Type ClassType { get => throw null; } - public ManagedToNativeComInteropStubAttribute(System.Type classType, string methodName) => throw null; - public string MethodName { get => throw null; } - } - - public static class Marshal - { - public static int AddRef(System.IntPtr pUnk) => throw null; - public static System.IntPtr AllocCoTaskMem(int cb) => throw null; - public static System.IntPtr AllocHGlobal(System.IntPtr cb) => throw null; - public static System.IntPtr AllocHGlobal(int cb) => throw null; - public static bool AreComObjectsAvailableForCleanup() => throw null; - public static object BindToMoniker(string monikerName) => throw null; - public static void ChangeWrapperHandleStrength(object otp, bool fIsWeak) => throw null; - public static void CleanupUnusedObjectsInCurrentContext() => throw null; - public static void Copy(System.Byte[] source, int startIndex, System.IntPtr destination, int length) => throw null; - public static void Copy(System.Char[] source, int startIndex, System.IntPtr destination, int length) => throw null; - public static void Copy(double[] source, int startIndex, System.IntPtr destination, int length) => throw null; - public static void Copy(System.Int16[] source, int startIndex, System.IntPtr destination, int length) => throw null; - public static void Copy(int[] source, int startIndex, System.IntPtr destination, int length) => throw null; - public static void Copy(System.Int64[] source, int startIndex, System.IntPtr destination, int length) => throw null; - public static void Copy(System.IntPtr source, System.Byte[] destination, int startIndex, int length) => throw null; - public static void Copy(System.IntPtr source, System.Char[] destination, int startIndex, int length) => throw null; - public static void Copy(System.IntPtr source, double[] destination, int startIndex, int length) => throw null; - public static void Copy(System.IntPtr source, System.Int16[] destination, int startIndex, int length) => throw null; - public static void Copy(System.IntPtr source, int[] destination, int startIndex, int length) => throw null; - public static void Copy(System.IntPtr source, System.Int64[] destination, int startIndex, int length) => throw null; - public static void Copy(System.IntPtr source, System.IntPtr[] destination, int startIndex, int length) => throw null; - public static void Copy(System.IntPtr source, float[] destination, int startIndex, int length) => throw null; - public static void Copy(System.IntPtr[] source, int startIndex, System.IntPtr destination, int length) => throw null; - public static void Copy(float[] source, int startIndex, System.IntPtr destination, int length) => throw null; - public static System.IntPtr CreateAggregatedObject(System.IntPtr pOuter, object o) => throw null; - public static System.IntPtr CreateAggregatedObject(System.IntPtr pOuter, T o) => throw null; - public static object CreateWrapperOfType(object o, System.Type t) => throw null; - public static TWrapper CreateWrapperOfType(T o) => throw null; - public static void DestroyStructure(System.IntPtr ptr, System.Type structuretype) => throw null; - public static void DestroyStructure(System.IntPtr ptr) => throw null; - public static int FinalReleaseComObject(object o) => throw null; - public static void FreeBSTR(System.IntPtr ptr) => throw null; - public static void FreeCoTaskMem(System.IntPtr ptr) => throw null; - public static void FreeHGlobal(System.IntPtr hglobal) => throw null; - public static System.Guid GenerateGuidForType(System.Type type) => throw null; - public static string GenerateProgIdForType(System.Type type) => throw null; - public static System.IntPtr GetComInterfaceForObject(object o, System.Type T) => throw null; - public static System.IntPtr GetComInterfaceForObject(object o, System.Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode) => throw null; - public static System.IntPtr GetComInterfaceForObject(T o) => throw null; - public static object GetComObjectData(object obj, object key) => throw null; - public static System.Delegate GetDelegateForFunctionPointer(System.IntPtr ptr, System.Type t) => throw null; - public static TDelegate GetDelegateForFunctionPointer(System.IntPtr ptr) => throw null; - public static int GetEndComSlot(System.Type t) => throw null; - public static int GetExceptionCode() => throw null; - public static System.Exception GetExceptionForHR(int errorCode) => throw null; - public static System.Exception GetExceptionForHR(int errorCode, System.IntPtr errorInfo) => throw null; - public static System.IntPtr GetExceptionPointers() => throw null; - public static System.IntPtr GetFunctionPointerForDelegate(System.Delegate d) => throw null; - public static System.IntPtr GetFunctionPointerForDelegate(TDelegate d) => throw null; - public static System.IntPtr GetHINSTANCE(System.Reflection.Module m) => throw null; - public static int GetHRForException(System.Exception e) => throw null; - public static int GetHRForLastWin32Error() => throw null; - public static System.IntPtr GetIDispatchForObject(object o) => throw null; - public static System.IntPtr GetIUnknownForObject(object o) => throw null; - public static int GetLastPInvokeError() => throw null; - public static string GetLastPInvokeErrorMessage() => throw null; - public static int GetLastSystemError() => throw null; - public static int GetLastWin32Error() => throw null; - public static void GetNativeVariantForObject(object obj, System.IntPtr pDstNativeVariant) => throw null; - public static void GetNativeVariantForObject(T obj, System.IntPtr pDstNativeVariant) => throw null; - public static object GetObjectForIUnknown(System.IntPtr pUnk) => throw null; - public static object GetObjectForNativeVariant(System.IntPtr pSrcNativeVariant) => throw null; - public static T GetObjectForNativeVariant(System.IntPtr pSrcNativeVariant) => throw null; - public static object[] GetObjectsForNativeVariants(System.IntPtr aSrcNativeVariant, int cVars) => throw null; - public static T[] GetObjectsForNativeVariants(System.IntPtr aSrcNativeVariant, int cVars) => throw null; - public static string GetPInvokeErrorMessage(int error) => throw null; - public static int GetStartComSlot(System.Type t) => throw null; - public static System.Type GetTypeFromCLSID(System.Guid clsid) => throw null; - public static string GetTypeInfoName(System.Runtime.InteropServices.ComTypes.ITypeInfo typeInfo) => throw null; - public static object GetTypedObjectForIUnknown(System.IntPtr pUnk, System.Type t) => throw null; - public static object GetUniqueObjectForIUnknown(System.IntPtr unknown) => throw null; - public static void InitHandle(System.Runtime.InteropServices.SafeHandle safeHandle, System.IntPtr handle) => throw null; - public static bool IsComObject(object o) => throw null; - public static bool IsTypeVisibleFromCom(System.Type t) => throw null; - public static System.IntPtr OffsetOf(System.Type t, string fieldName) => throw null; - public static System.IntPtr OffsetOf(string fieldName) => throw null; - public static void Prelink(System.Reflection.MethodInfo m) => throw null; - public static void PrelinkAll(System.Type c) => throw null; - public static string PtrToStringAnsi(System.IntPtr ptr) => throw null; - public static string PtrToStringAnsi(System.IntPtr ptr, int len) => throw null; - public static string PtrToStringAuto(System.IntPtr ptr) => throw null; - public static string PtrToStringAuto(System.IntPtr ptr, int len) => throw null; - public static string PtrToStringBSTR(System.IntPtr ptr) => throw null; - public static string PtrToStringUTF8(System.IntPtr ptr) => throw null; - public static string PtrToStringUTF8(System.IntPtr ptr, int byteLen) => throw null; - public static string PtrToStringUni(System.IntPtr ptr) => throw null; - public static string PtrToStringUni(System.IntPtr ptr, int len) => throw null; - public static object PtrToStructure(System.IntPtr ptr, System.Type structureType) => throw null; - public static void PtrToStructure(System.IntPtr ptr, object structure) => throw null; - public static T PtrToStructure(System.IntPtr ptr) => throw null; - public static void PtrToStructure(System.IntPtr ptr, T structure) => throw null; - public static int QueryInterface(System.IntPtr pUnk, ref System.Guid iid, out System.IntPtr ppv) => throw null; - public static System.IntPtr ReAllocCoTaskMem(System.IntPtr pv, int cb) => throw null; - public static System.IntPtr ReAllocHGlobal(System.IntPtr pv, System.IntPtr cb) => throw null; - public static System.Byte ReadByte(System.IntPtr ptr) => throw null; - public static System.Byte ReadByte(System.IntPtr ptr, int ofs) => throw null; - public static System.Byte ReadByte(object ptr, int ofs) => throw null; - public static System.Int16 ReadInt16(System.IntPtr ptr) => throw null; - public static System.Int16 ReadInt16(System.IntPtr ptr, int ofs) => throw null; - public static System.Int16 ReadInt16(object ptr, int ofs) => throw null; - public static int ReadInt32(System.IntPtr ptr) => throw null; - public static int ReadInt32(System.IntPtr ptr, int ofs) => throw null; - public static int ReadInt32(object ptr, int ofs) => throw null; - public static System.Int64 ReadInt64(System.IntPtr ptr) => throw null; - public static System.Int64 ReadInt64(System.IntPtr ptr, int ofs) => throw null; - public static System.Int64 ReadInt64(object ptr, int ofs) => throw null; - public static System.IntPtr ReadIntPtr(System.IntPtr ptr) => throw null; - public static System.IntPtr ReadIntPtr(System.IntPtr ptr, int ofs) => throw null; - public static System.IntPtr ReadIntPtr(object ptr, int ofs) => throw null; - public static int Release(System.IntPtr pUnk) => throw null; - public static int ReleaseComObject(object o) => throw null; - public static System.IntPtr SecureStringToBSTR(System.Security.SecureString s) => throw null; - public static System.IntPtr SecureStringToCoTaskMemAnsi(System.Security.SecureString s) => throw null; - public static System.IntPtr SecureStringToCoTaskMemUnicode(System.Security.SecureString s) => throw null; - public static System.IntPtr SecureStringToGlobalAllocAnsi(System.Security.SecureString s) => throw null; - public static System.IntPtr SecureStringToGlobalAllocUnicode(System.Security.SecureString s) => throw null; - public static bool SetComObjectData(object obj, object key, object data) => throw null; - public static void SetLastPInvokeError(int error) => throw null; - public static void SetLastSystemError(int error) => throw null; - public static int SizeOf(System.Type t) => throw null; - public static int SizeOf(object structure) => throw null; - public static int SizeOf() => throw null; - public static int SizeOf(T structure) => throw null; - public static System.IntPtr StringToBSTR(string s) => throw null; - public static System.IntPtr StringToCoTaskMemAnsi(string s) => throw null; - public static System.IntPtr StringToCoTaskMemAuto(string s) => throw null; - public static System.IntPtr StringToCoTaskMemUTF8(string s) => throw null; - public static System.IntPtr StringToCoTaskMemUni(string s) => throw null; - public static System.IntPtr StringToHGlobalAnsi(string s) => throw null; - public static System.IntPtr StringToHGlobalAuto(string s) => throw null; - public static System.IntPtr StringToHGlobalUni(string s) => throw null; - public static void StructureToPtr(object structure, System.IntPtr ptr, bool fDeleteOld) => throw null; - public static void StructureToPtr(T structure, System.IntPtr ptr, bool fDeleteOld) => throw null; - public static int SystemDefaultCharSize; - public static int SystemMaxDBCSCharSize; - public static void ThrowExceptionForHR(int errorCode) => throw null; - public static void ThrowExceptionForHR(int errorCode, System.IntPtr errorInfo) => throw null; - public static System.IntPtr UnsafeAddrOfPinnedArrayElement(System.Array arr, int index) => throw null; - public static System.IntPtr UnsafeAddrOfPinnedArrayElement(T[] arr, int index) => throw null; - public static void WriteByte(System.IntPtr ptr, System.Byte val) => throw null; - public static void WriteByte(System.IntPtr ptr, int ofs, System.Byte val) => throw null; - public static void WriteByte(object ptr, int ofs, System.Byte val) => throw null; - public static void WriteInt16(System.IntPtr ptr, System.Char val) => throw null; - public static void WriteInt16(System.IntPtr ptr, int ofs, System.Char val) => throw null; - public static void WriteInt16(System.IntPtr ptr, int ofs, System.Int16 val) => throw null; - public static void WriteInt16(System.IntPtr ptr, System.Int16 val) => throw null; - public static void WriteInt16(object ptr, int ofs, System.Char val) => throw null; - public static void WriteInt16(object ptr, int ofs, System.Int16 val) => throw null; - public static void WriteInt32(System.IntPtr ptr, int val) => throw null; - public static void WriteInt32(System.IntPtr ptr, int ofs, int val) => throw null; - public static void WriteInt32(object ptr, int ofs, int val) => throw null; - public static void WriteInt64(System.IntPtr ptr, int ofs, System.Int64 val) => throw null; - public static void WriteInt64(System.IntPtr ptr, System.Int64 val) => throw null; - public static void WriteInt64(object ptr, int ofs, System.Int64 val) => throw null; - public static void WriteIntPtr(System.IntPtr ptr, System.IntPtr val) => throw null; - public static void WriteIntPtr(System.IntPtr ptr, int ofs, System.IntPtr val) => throw null; - public static void WriteIntPtr(object ptr, int ofs, System.IntPtr val) => throw null; - public static void ZeroFreeBSTR(System.IntPtr s) => throw null; - public static void ZeroFreeCoTaskMemAnsi(System.IntPtr s) => throw null; - public static void ZeroFreeCoTaskMemUTF8(System.IntPtr s) => throw null; - public static void ZeroFreeCoTaskMemUnicode(System.IntPtr s) => throw null; - public static void ZeroFreeGlobalAllocAnsi(System.IntPtr s) => throw null; - public static void ZeroFreeGlobalAllocUnicode(System.IntPtr s) => throw null; - } - - public class MarshalAsAttribute : System.Attribute - { - public System.Runtime.InteropServices.UnmanagedType ArraySubType; - public int IidParameterIndex; - public MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType unmanagedType) => throw null; - public MarshalAsAttribute(System.Int16 unmanagedType) => throw null; - public string MarshalCookie; - public string MarshalType; - public System.Type MarshalTypeRef; - public System.Runtime.InteropServices.VarEnum SafeArraySubType; - public System.Type SafeArrayUserDefinedSubType; - public int SizeConst; - public System.Int16 SizeParamIndex; - public System.Runtime.InteropServices.UnmanagedType Value { get => throw null; } - } - - public class MarshalDirectiveException : System.SystemException - { - public MarshalDirectiveException() => throw null; - protected MarshalDirectiveException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public MarshalDirectiveException(string message) => throw null; - public MarshalDirectiveException(string message, System.Exception inner) => throw null; - } - - public struct NFloat : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators - { - static bool System.Numerics.IEqualityOperators.operator !=(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IModulusOperators.operator %(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IBitwiseOperators.operator &(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IMultiplyOperators.operator *(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IUnaryPlusOperators.operator +(System.Runtime.InteropServices.NFloat value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IAdditionOperators.operator +(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IIncrementOperators.operator ++(System.Runtime.InteropServices.NFloat value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IUnaryNegationOperators.operator -(System.Runtime.InteropServices.NFloat value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.ISubtractionOperators.operator -(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IDecrementOperators.operator --(System.Runtime.InteropServices.NFloat value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IDivisionOperators.operator /(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - public static System.Runtime.InteropServices.NFloat Abs(System.Runtime.InteropServices.NFloat value) => throw null; - public static System.Runtime.InteropServices.NFloat Acos(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat AcosPi(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Acosh(System.Runtime.InteropServices.NFloat x) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.Runtime.InteropServices.NFloat System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.Runtime.InteropServices.NFloat Asin(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat AsinPi(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Asinh(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Atan(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Atan2(System.Runtime.InteropServices.NFloat y, System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Atan2Pi(System.Runtime.InteropServices.NFloat y, System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat AtanPi(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Atanh(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat BitDecrement(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat BitIncrement(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Cbrt(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Ceiling(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Clamp(System.Runtime.InteropServices.NFloat value, System.Runtime.InteropServices.NFloat min, System.Runtime.InteropServices.NFloat max) => throw null; - public int CompareTo(System.Runtime.InteropServices.NFloat other) => throw null; - public int CompareTo(object obj) => throw null; - public static System.Runtime.InteropServices.NFloat CopySign(System.Runtime.InteropServices.NFloat value, System.Runtime.InteropServices.NFloat sign) => throw null; - public static System.Runtime.InteropServices.NFloat Cos(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat CosPi(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Cosh(System.Runtime.InteropServices.NFloat x) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointConstants.E { get => throw null; } - static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.Epsilon { get => throw null; } - public bool Equals(System.Runtime.InteropServices.NFloat other) => throw null; - public override bool Equals(object obj) => throw null; - public static System.Runtime.InteropServices.NFloat Exp(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Exp10(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Exp10M1(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Exp2(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Exp2M1(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat ExpM1(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Floor(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat FusedMultiplyAdd(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right, System.Runtime.InteropServices.NFloat addend) => throw null; - int System.Numerics.IFloatingPoint.GetExponentByteCount() => throw null; - int System.Numerics.IFloatingPoint.GetExponentShortestBitLength() => throw null; - public override int GetHashCode() => throw null; - int System.Numerics.IFloatingPoint.GetSignificandBitLength() => throw null; - int System.Numerics.IFloatingPoint.GetSignificandByteCount() => throw null; - public static System.Runtime.InteropServices.NFloat Hypot(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; - public static int ILogB(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Ieee754Remainder(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - public static bool IsCanonical(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsComplexNumber(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsEvenInteger(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsFinite(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsImaginaryNumber(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsInfinity(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsInteger(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsNaN(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsNegative(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsNegativeInfinity(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsNormal(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsOddInteger(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsPositive(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsPositiveInfinity(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsPow2(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsRealNumber(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsSubnormal(System.Runtime.InteropServices.NFloat value) => throw null; - public static bool IsZero(System.Runtime.InteropServices.NFloat value) => throw null; - public static System.Runtime.InteropServices.NFloat Log(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Log(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat newBase) => throw null; - public static System.Runtime.InteropServices.NFloat Log10(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Log10P1(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Log2(System.Runtime.InteropServices.NFloat value) => throw null; - public static System.Runtime.InteropServices.NFloat Log2P1(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat LogP1(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Max(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; - public static System.Runtime.InteropServices.NFloat MaxMagnitude(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; - public static System.Runtime.InteropServices.NFloat MaxMagnitudeNumber(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; - public static System.Runtime.InteropServices.NFloat MaxNumber(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.Runtime.InteropServices.NFloat Min(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; - public static System.Runtime.InteropServices.NFloat MinMagnitude(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; - public static System.Runtime.InteropServices.NFloat MinMagnitudeNumber(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; - public static System.Runtime.InteropServices.NFloat MinNumber(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.Runtime.InteropServices.NFloat System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - // Stub generator skipped constructor - public NFloat(double value) => throw null; - public NFloat(float value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.NaN { get => throw null; } - static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.NegativeInfinity { get => throw null; } - static System.Runtime.InteropServices.NFloat System.Numerics.ISignedNumber.NegativeOne { get => throw null; } - static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.NegativeZero { get => throw null; } - static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.One { get => throw null; } - public static System.Runtime.InteropServices.NFloat Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.Runtime.InteropServices.NFloat Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.Runtime.InteropServices.NFloat Parse(string s) => throw null; - public static System.Runtime.InteropServices.NFloat Parse(string s, System.IFormatProvider provider) => throw null; - public static System.Runtime.InteropServices.NFloat Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.Runtime.InteropServices.NFloat Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointConstants.Pi { get => throw null; } - static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.PositiveInfinity { get => throw null; } - public static System.Runtime.InteropServices.NFloat Pow(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.Runtime.InteropServices.NFloat ReciprocalEstimate(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat ReciprocalSqrtEstimate(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat RootN(System.Runtime.InteropServices.NFloat x, int n) => throw null; - public static System.Runtime.InteropServices.NFloat Round(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Round(System.Runtime.InteropServices.NFloat x, System.MidpointRounding mode) => throw null; - public static System.Runtime.InteropServices.NFloat Round(System.Runtime.InteropServices.NFloat x, int digits) => throw null; - public static System.Runtime.InteropServices.NFloat Round(System.Runtime.InteropServices.NFloat x, int digits, System.MidpointRounding mode) => throw null; - public static System.Runtime.InteropServices.NFloat ScaleB(System.Runtime.InteropServices.NFloat x, int n) => throw null; - public static int Sign(System.Runtime.InteropServices.NFloat value) => throw null; - public static System.Runtime.InteropServices.NFloat Sin(System.Runtime.InteropServices.NFloat x) => throw null; - public static (System.Runtime.InteropServices.NFloat, System.Runtime.InteropServices.NFloat) SinCos(System.Runtime.InteropServices.NFloat x) => throw null; - public static (System.Runtime.InteropServices.NFloat, System.Runtime.InteropServices.NFloat) SinCosPi(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat SinPi(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Sinh(System.Runtime.InteropServices.NFloat x) => throw null; - public static int Size { get => throw null; } - public static System.Runtime.InteropServices.NFloat Sqrt(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Tan(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat TanPi(System.Runtime.InteropServices.NFloat x) => throw null; - public static System.Runtime.InteropServices.NFloat Tanh(System.Runtime.InteropServices.NFloat x) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointConstants.Tau { get => throw null; } - public override string ToString() => throw null; - public string ToString(System.IFormatProvider provider) => throw null; - public string ToString(string format) => throw null; - public string ToString(string format, System.IFormatProvider provider) => throw null; - public static System.Runtime.InteropServices.NFloat Truncate(System.Runtime.InteropServices.NFloat x) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.Runtime.InteropServices.NFloat result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.Runtime.InteropServices.NFloat result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.Runtime.InteropServices.NFloat result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.Runtime.InteropServices.NFloat value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Runtime.InteropServices.NFloat value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Runtime.InteropServices.NFloat value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Runtime.InteropServices.NFloat result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Runtime.InteropServices.NFloat result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.Runtime.InteropServices.NFloat result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Runtime.InteropServices.NFloat result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Runtime.InteropServices.NFloat result) => throw null; - public static bool TryParse(string s, out System.Runtime.InteropServices.NFloat result) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteExponentBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; - public double Value { get => throw null; } - static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.Zero { get => throw null; } - static System.Runtime.InteropServices.NFloat System.Numerics.IBitwiseOperators.operator ^(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IMultiplyOperators.operator checked *(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IAdditionOperators.operator checked +(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IIncrementOperators.operator checked ++(System.Runtime.InteropServices.NFloat value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IUnaryNegationOperators.operator checked -(System.Runtime.InteropServices.NFloat value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.ISubtractionOperators.operator checked -(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IDecrementOperators.operator checked --(System.Runtime.InteropServices.NFloat value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IDivisionOperators.operator checked /(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - public static explicit operator checked System.Byte(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.Char(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.Int128(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.Int16(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.Int64(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.IntPtr(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.SByte(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.UInt128(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.UInt16(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.UInt32(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.UInt64(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked System.UIntPtr(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator checked int(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.Runtime.InteropServices.NFloat(System.Int128 value) => throw null; - public static explicit operator System.Byte(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.Char(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.Decimal(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.Half(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.Int128(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.Int16(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.Int64(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.IntPtr(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.SByte(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.UInt128(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.UInt16(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.UInt32(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.UInt64(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.UIntPtr(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator float(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator int(System.Runtime.InteropServices.NFloat value) => throw null; - public static explicit operator System.Runtime.InteropServices.NFloat(System.UInt128 value) => throw null; - public static explicit operator System.Runtime.InteropServices.NFloat(System.Decimal value) => throw null; - public static explicit operator System.Runtime.InteropServices.NFloat(double value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.Half value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.IntPtr value) => throw null; - public static implicit operator double(System.Runtime.InteropServices.NFloat value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.UIntPtr value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.Byte value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.Char value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(float value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(int value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.Int64 value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.SByte value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.Int16 value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.UInt32 value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.UInt64 value) => throw null; - public static implicit operator System.Runtime.InteropServices.NFloat(System.UInt16 value) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IBitwiseOperators.operator |(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; - static System.Runtime.InteropServices.NFloat System.Numerics.IBitwiseOperators.operator ~(System.Runtime.InteropServices.NFloat value) => throw null; - } - - public static class NativeLibrary - { - public static void Free(System.IntPtr handle) => throw null; - public static System.IntPtr GetExport(System.IntPtr handle, string name) => throw null; - public static System.IntPtr GetMainProgramHandle() => throw null; - public static System.IntPtr Load(string libraryPath) => throw null; - public static System.IntPtr Load(string libraryName, System.Reflection.Assembly assembly, System.Runtime.InteropServices.DllImportSearchPath? searchPath) => throw null; - public static void SetDllImportResolver(System.Reflection.Assembly assembly, System.Runtime.InteropServices.DllImportResolver resolver) => throw null; - public static bool TryGetExport(System.IntPtr handle, string name, out System.IntPtr address) => throw null; - public static bool TryLoad(string libraryName, System.Reflection.Assembly assembly, System.Runtime.InteropServices.DllImportSearchPath? searchPath, out System.IntPtr handle) => throw null; - public static bool TryLoad(string libraryPath, out System.IntPtr handle) => throw null; - } - - public static class NativeMemory - { - unsafe public static void* AlignedAlloc(System.UIntPtr byteCount, System.UIntPtr alignment) => throw null; - unsafe public static void AlignedFree(void* ptr) => throw null; - unsafe public static void* AlignedRealloc(void* ptr, System.UIntPtr byteCount, System.UIntPtr alignment) => throw null; - unsafe public static void* Alloc(System.UIntPtr byteCount) => throw null; - unsafe public static void* Alloc(System.UIntPtr elementCount, System.UIntPtr elementSize) => throw null; - unsafe public static void* AllocZeroed(System.UIntPtr byteCount) => throw null; - unsafe public static void* AllocZeroed(System.UIntPtr elementCount, System.UIntPtr elementSize) => throw null; - unsafe public static void Clear(void* ptr, System.UIntPtr byteCount) => throw null; - unsafe public static void Copy(void* source, void* destination, System.UIntPtr byteCount) => throw null; - unsafe public static void Fill(void* ptr, System.UIntPtr byteCount, System.Byte value) => throw null; - unsafe public static void Free(void* ptr) => throw null; - unsafe public static void* Realloc(void* ptr, System.UIntPtr byteCount) => throw null; - } - - public class OptionalAttribute : System.Attribute - { - public OptionalAttribute() => throw null; - } - - public enum PosixSignal : int - { - SIGCHLD = -5, - SIGCONT = -6, - SIGHUP = -1, - SIGINT = -2, - SIGQUIT = -3, - SIGTERM = -4, - SIGTSTP = -10, - SIGTTIN = -8, - SIGTTOU = -9, - SIGWINCH = -7, - } - - public class PosixSignalContext - { - public bool Cancel { get => throw null; set => throw null; } - public PosixSignalContext(System.Runtime.InteropServices.PosixSignal signal) => throw null; - public System.Runtime.InteropServices.PosixSignal Signal { get => throw null; } - } - - public class PosixSignalRegistration : System.IDisposable - { - public static System.Runtime.InteropServices.PosixSignalRegistration Create(System.Runtime.InteropServices.PosixSignal signal, System.Action handler) => throw null; - public void Dispose() => throw null; - // ERR: Stub generator didn't handle member: ~PosixSignalRegistration - } - - public class PreserveSigAttribute : System.Attribute - { - public PreserveSigAttribute() => throw null; - } - - public class PrimaryInteropAssemblyAttribute : System.Attribute - { - public int MajorVersion { get => throw null; } - public int MinorVersion { get => throw null; } - public PrimaryInteropAssemblyAttribute(int major, int minor) => throw null; - } - - public class ProgIdAttribute : System.Attribute - { - public ProgIdAttribute(string progId) => throw null; - public string Value { get => throw null; } - } - - public static class RuntimeEnvironment - { - public static bool FromGlobalAccessCache(System.Reflection.Assembly a) => throw null; - public static string GetRuntimeDirectory() => throw null; - public static System.IntPtr GetRuntimeInterfaceAsIntPtr(System.Guid clsid, System.Guid riid) => throw null; - public static object GetRuntimeInterfaceAsObject(System.Guid clsid, System.Guid riid) => throw null; - public static string GetSystemVersion() => throw null; - public static string SystemConfigurationFile { get => throw null; } - } - - public class SEHException : System.Runtime.InteropServices.ExternalException - { - public virtual bool CanResume() => throw null; - public SEHException() => throw null; - protected SEHException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public SEHException(string message) => throw null; - public SEHException(string message, System.Exception inner) => throw null; - } - - public class SafeArrayRankMismatchException : System.SystemException - { - public SafeArrayRankMismatchException() => throw null; - protected SafeArrayRankMismatchException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public SafeArrayRankMismatchException(string message) => throw null; - public SafeArrayRankMismatchException(string message, System.Exception inner) => throw null; - } - - public class SafeArrayTypeMismatchException : System.SystemException - { - public SafeArrayTypeMismatchException() => throw null; - protected SafeArrayTypeMismatchException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public SafeArrayTypeMismatchException(string message) => throw null; - public SafeArrayTypeMismatchException(string message, System.Exception inner) => throw null; - } - - public class StandardOleMarshalObject : System.MarshalByRefObject - { - protected StandardOleMarshalObject() => throw null; - } - - public enum StringMarshalling : int - { - Custom = 0, - Utf16 = 2, - Utf8 = 1, - } - - public class TypeIdentifierAttribute : System.Attribute - { - public string Identifier { get => throw null; } - public string Scope { get => throw null; } - public TypeIdentifierAttribute() => throw null; - public TypeIdentifierAttribute(string scope, string identifier) => throw null; - } - - public class TypeLibFuncAttribute : System.Attribute - { - public TypeLibFuncAttribute(System.Runtime.InteropServices.TypeLibFuncFlags flags) => throw null; - public TypeLibFuncAttribute(System.Int16 flags) => throw null; - public System.Runtime.InteropServices.TypeLibFuncFlags Value { get => throw null; } - } - - [System.Flags] - public enum TypeLibFuncFlags : int - { - FBindable = 4, - FDefaultBind = 32, - FDefaultCollelem = 256, - FDisplayBind = 16, - FHidden = 64, - FImmediateBind = 4096, - FNonBrowsable = 1024, - FReplaceable = 2048, - FRequestEdit = 8, - FRestricted = 1, - FSource = 2, - FUiDefault = 512, - FUsesGetLastError = 128, - } - - public class TypeLibImportClassAttribute : System.Attribute - { - public TypeLibImportClassAttribute(System.Type importClass) => throw null; - public string Value { get => throw null; } - } - - public class TypeLibTypeAttribute : System.Attribute - { - public TypeLibTypeAttribute(System.Runtime.InteropServices.TypeLibTypeFlags flags) => throw null; - public TypeLibTypeAttribute(System.Int16 flags) => throw null; - public System.Runtime.InteropServices.TypeLibTypeFlags Value { get => throw null; } - } - - [System.Flags] - public enum TypeLibTypeFlags : int - { - FAggregatable = 1024, - FAppObject = 1, - FCanCreate = 2, - FControl = 32, - FDispatchable = 4096, - FDual = 64, - FHidden = 16, - FLicensed = 4, - FNonExtensible = 128, - FOleAutomation = 256, - FPreDeclId = 8, - FReplaceable = 2048, - FRestricted = 512, - FReverseBind = 8192, - } - - public class TypeLibVarAttribute : System.Attribute - { - public TypeLibVarAttribute(System.Runtime.InteropServices.TypeLibVarFlags flags) => throw null; - public TypeLibVarAttribute(System.Int16 flags) => throw null; - public System.Runtime.InteropServices.TypeLibVarFlags Value { get => throw null; } - } - - [System.Flags] - public enum TypeLibVarFlags : int - { - FBindable = 4, - FDefaultBind = 32, - FDefaultCollelem = 256, - FDisplayBind = 16, - FHidden = 64, - FImmediateBind = 4096, - FNonBrowsable = 1024, - FReadOnly = 1, - FReplaceable = 2048, - FRequestEdit = 8, - FRestricted = 128, - FSource = 2, - FUiDefault = 512, - } - - public class TypeLibVersionAttribute : System.Attribute - { - public int MajorVersion { get => throw null; } - public int MinorVersion { get => throw null; } - public TypeLibVersionAttribute(int major, int minor) => throw null; - } - - public class UnknownWrapper - { - public UnknownWrapper(object obj) => throw null; - public object WrappedObject { get => throw null; } - } - - public class UnmanagedCallConvAttribute : System.Attribute - { - public System.Type[] CallConvs; - public UnmanagedCallConvAttribute() => throw null; - } - - public class UnmanagedCallersOnlyAttribute : System.Attribute - { - public System.Type[] CallConvs; - public string EntryPoint; - public UnmanagedCallersOnlyAttribute() => throw null; - } - - public class UnmanagedFunctionPointerAttribute : System.Attribute - { - public bool BestFitMapping; - public System.Runtime.InteropServices.CallingConvention CallingConvention { get => throw null; } - public System.Runtime.InteropServices.CharSet CharSet; - public bool SetLastError; - public bool ThrowOnUnmappableChar; - public UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention callingConvention) => throw null; - } - - public enum VarEnum : int - { - VT_ARRAY = 8192, - VT_BLOB = 65, - VT_BLOB_OBJECT = 70, - VT_BOOL = 11, - VT_BSTR = 8, - VT_BYREF = 16384, - VT_CARRAY = 28, - VT_CF = 71, - VT_CLSID = 72, - VT_CY = 6, - VT_DATE = 7, - VT_DECIMAL = 14, - VT_DISPATCH = 9, - VT_EMPTY = 0, - VT_ERROR = 10, - VT_FILETIME = 64, - VT_HRESULT = 25, - VT_I1 = 16, - VT_I2 = 2, - VT_I4 = 3, - VT_I8 = 20, - VT_INT = 22, - VT_LPSTR = 30, - VT_LPWSTR = 31, - VT_NULL = 1, - VT_PTR = 26, - VT_R4 = 4, - VT_R8 = 5, - VT_RECORD = 36, - VT_SAFEARRAY = 27, - VT_STORAGE = 67, - VT_STORED_OBJECT = 69, - VT_STREAM = 66, - VT_STREAMED_OBJECT = 68, - VT_UI1 = 17, - VT_UI2 = 18, - VT_UI4 = 19, - VT_UI8 = 21, - VT_UINT = 23, - VT_UNKNOWN = 13, - VT_USERDEFINED = 29, - VT_VARIANT = 12, - VT_VECTOR = 4096, - VT_VOID = 24, - } - - public class VariantWrapper - { - public VariantWrapper(object obj) => throw null; - public object WrappedObject { get => throw null; } - } - namespace ComTypes { [System.Flags] - public enum ADVF : int + public enum ADVF { - ADVFCACHE_FORCEBUILTIN = 16, + ADVF_NODATA = 1, + ADVF_PRIMEFIRST = 2, + ADVF_ONLYONCE = 4, ADVFCACHE_NOHANDLER = 8, + ADVFCACHE_FORCEBUILTIN = 16, ADVFCACHE_ONSAVE = 32, ADVF_DATAONSTOP = 64, - ADVF_NODATA = 1, - ADVF_ONLYONCE = 4, - ADVF_PRIMEFIRST = 2, } - - public struct BINDPTR - { - // Stub generator skipped constructor - public System.IntPtr lpfuncdesc; - public System.IntPtr lptcomp; - public System.IntPtr lpvardesc; - } - public struct BIND_OPTS { - // Stub generator skipped constructor public int cbStruct; public int dwTickCountDeadline; public int grfFlags; public int grfMode; } - - public enum CALLCONV : int + public struct BINDPTR + { + public nint lpfuncdesc; + public nint lptcomp; + public nint lpvardesc; + } + public enum CALLCONV { CC_CDECL = 1, - CC_MACPASCAL = 3, - CC_MAX = 9, - CC_MPWCDECL = 7, - CC_MPWPASCAL = 8, CC_MSCPASCAL = 2, CC_PASCAL = 2, - CC_RESERVED = 5, + CC_MACPASCAL = 3, CC_STDCALL = 4, + CC_RESERVED = 5, CC_SYSCALL = 6, + CC_MPWCDECL = 7, + CC_MPWPASCAL = 8, + CC_MAX = 9, } - public struct CONNECTDATA { - // Stub generator skipped constructor public int dwCookie; public object pUnk; } - - public enum DATADIR : int + public enum DATADIR { DATADIR_GET = 1, DATADIR_SET = 2, } - - public enum DESCKIND : int + public enum DESCKIND { + DESCKIND_NONE = 0, DESCKIND_FUNCDESC = 1, + DESCKIND_VARDESC = 2, + DESCKIND_TYPECOMP = 3, DESCKIND_IMPLICITAPPOBJ = 4, DESCKIND_MAX = 5, - DESCKIND_NONE = 0, - DESCKIND_TYPECOMP = 3, - DESCKIND_VARDESC = 2, } - public struct DISPPARAMS { - // Stub generator skipped constructor public int cArgs; public int cNamedArgs; - public System.IntPtr rgdispidNamedArgs; - public System.IntPtr rgvarg; + public nint rgdispidNamedArgs; + public nint rgvarg; } - [System.Flags] - public enum DVASPECT : int + public enum DVASPECT { DVASPECT_CONTENT = 1, - DVASPECT_DOCPRINT = 8, - DVASPECT_ICON = 4, DVASPECT_THUMBNAIL = 2, + DVASPECT_ICON = 4, + DVASPECT_DOCPRINT = 8, } - public struct ELEMDESC { + public System.Runtime.InteropServices.ComTypes.ELEMDESC.DESCUNION desc; public struct DESCUNION { - // Stub generator skipped constructor public System.Runtime.InteropServices.ComTypes.IDLDESC idldesc; public System.Runtime.InteropServices.ComTypes.PARAMDESC paramdesc; } - - - // Stub generator skipped constructor - public System.Runtime.InteropServices.ComTypes.ELEMDESC.DESCUNION desc; public System.Runtime.InteropServices.ComTypes.TYPEDESC tdesc; } - public struct EXCEPINFO { - // Stub generator skipped constructor public string bstrDescription; public string bstrHelpFile; public string bstrSource; public int dwHelpContext; - public System.IntPtr pfnDeferredFillIn; - public System.IntPtr pvReserved; + public nint pfnDeferredFillIn; + public nint pvReserved; public int scode; - public System.Int16 wCode; - public System.Int16 wReserved; + public short wCode; + public short wReserved; } - public struct FILETIME { - // Stub generator skipped constructor public int dwHighDateTime; public int dwLowDateTime; } - public struct FORMATETC { - // Stub generator skipped constructor - public System.Int16 cfFormat; + public short cfFormat; public System.Runtime.InteropServices.ComTypes.DVASPECT dwAspect; public int lindex; - public System.IntPtr ptd; + public nint ptd; public System.Runtime.InteropServices.ComTypes.TYMED tymed; } - public struct FUNCDESC { - // Stub generator skipped constructor - public System.Int16 cParams; - public System.Int16 cParamsOpt; - public System.Int16 cScodes; public System.Runtime.InteropServices.ComTypes.CALLCONV callconv; + public short cParams; + public short cParamsOpt; + public short cScodes; public System.Runtime.InteropServices.ComTypes.ELEMDESC elemdescFunc; public System.Runtime.InteropServices.ComTypes.FUNCKIND funckind; public System.Runtime.InteropServices.ComTypes.INVOKEKIND invkind; - public System.IntPtr lprgelemdescParam; - public System.IntPtr lprgscode; + public nint lprgelemdescParam; + public nint lprgscode; public int memid; - public System.Int16 oVft; - public System.Int16 wFuncFlags; + public short oVft; + public short wFuncFlags; } - [System.Flags] public enum FUNCFLAGS : short { - FUNCFLAG_FBINDABLE = 4, - FUNCFLAG_FDEFAULTBIND = 32, - FUNCFLAG_FDEFAULTCOLLELEM = 256, - FUNCFLAG_FDISPLAYBIND = 16, - FUNCFLAG_FHIDDEN = 64, - FUNCFLAG_FIMMEDIATEBIND = 4096, - FUNCFLAG_FNONBROWSABLE = 1024, - FUNCFLAG_FREPLACEABLE = 2048, - FUNCFLAG_FREQUESTEDIT = 8, FUNCFLAG_FRESTRICTED = 1, FUNCFLAG_FSOURCE = 2, - FUNCFLAG_FUIDEFAULT = 512, + FUNCFLAG_FBINDABLE = 4, + FUNCFLAG_FREQUESTEDIT = 8, + FUNCFLAG_FDISPLAYBIND = 16, + FUNCFLAG_FDEFAULTBIND = 32, + FUNCFLAG_FHIDDEN = 64, FUNCFLAG_FUSESGETLASTERROR = 128, + FUNCFLAG_FDEFAULTCOLLELEM = 256, + FUNCFLAG_FUIDEFAULT = 512, + FUNCFLAG_FNONBROWSABLE = 1024, + FUNCFLAG_FREPLACEABLE = 2048, + FUNCFLAG_FIMMEDIATEBIND = 4096, } - - public enum FUNCKIND : int + public enum FUNCKIND { - FUNC_DISPATCH = 4, - FUNC_NONVIRTUAL = 2, - FUNC_PUREVIRTUAL = 1, - FUNC_STATIC = 3, FUNC_VIRTUAL = 0, + FUNC_PUREVIRTUAL = 1, + FUNC_NONVIRTUAL = 2, + FUNC_STATIC = 3, + FUNC_DISPATCH = 4, } - public interface IAdviseSink { void OnClose(); @@ -1447,7 +399,6 @@ namespace System void OnSave(); void OnViewChange(int aspect, int index); } - public interface IBindCtx { void EnumObjectParam(out System.Runtime.InteropServices.ComTypes.IEnumString ppenum); @@ -1461,7 +412,6 @@ namespace System int RevokeObjectParam(string pszKey); void SetBindOptions(ref System.Runtime.InteropServices.ComTypes.BIND_OPTS pbindopts); } - public interface IConnectionPoint { void Advise(object pUnkSink, out int pdwCookie); @@ -1470,30 +420,11 @@ namespace System void GetConnectionPointContainer(out System.Runtime.InteropServices.ComTypes.IConnectionPointContainer ppCPC); void Unadvise(int dwCookie); } - public interface IConnectionPointContainer { void EnumConnectionPoints(out System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints ppEnum); void FindConnectionPoint(ref System.Guid riid, out System.Runtime.InteropServices.ComTypes.IConnectionPoint ppCP); } - - public struct IDLDESC - { - // Stub generator skipped constructor - public System.IntPtr dwReserved; - public System.Runtime.InteropServices.ComTypes.IDLFLAG wIDLFlags; - } - - [System.Flags] - public enum IDLFLAG : short - { - IDLFLAG_FIN = 1, - IDLFLAG_FLCID = 4, - IDLFLAG_FOUT = 2, - IDLFLAG_FRETVAL = 8, - IDLFLAG_NONE = 0, - } - public interface IDataObject { int DAdvise(ref System.Runtime.InteropServices.ComTypes.FORMATETC pFormatetc, System.Runtime.InteropServices.ComTypes.ADVF advf, System.Runtime.InteropServices.ComTypes.IAdviseSink adviseSink, out int connection); @@ -1506,23 +437,34 @@ namespace System int QueryGetData(ref System.Runtime.InteropServices.ComTypes.FORMATETC format); void SetData(ref System.Runtime.InteropServices.ComTypes.FORMATETC formatIn, ref System.Runtime.InteropServices.ComTypes.STGMEDIUM medium, bool release); } - + public struct IDLDESC + { + public nint dwReserved; + public System.Runtime.InteropServices.ComTypes.IDLFLAG wIDLFlags; + } + [System.Flags] + public enum IDLFLAG : short + { + IDLFLAG_NONE = 0, + IDLFLAG_FIN = 1, + IDLFLAG_FOUT = 2, + IDLFLAG_FLCID = 4, + IDLFLAG_FRETVAL = 8, + } public interface IEnumConnectionPoints { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints ppenum); - int Next(int celt, System.Runtime.InteropServices.ComTypes.IConnectionPoint[] rgelt, System.IntPtr pceltFetched); + int Next(int celt, System.Runtime.InteropServices.ComTypes.IConnectionPoint[] rgelt, nint pceltFetched); void Reset(); int Skip(int celt); } - public interface IEnumConnections { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumConnections ppenum); - int Next(int celt, System.Runtime.InteropServices.ComTypes.CONNECTDATA[] rgelt, System.IntPtr pceltFetched); + int Next(int celt, System.Runtime.InteropServices.ComTypes.CONNECTDATA[] rgelt, nint pceltFetched); void Reset(); int Skip(int celt); } - public interface IEnumFORMATETC { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumFORMATETC newEnum); @@ -1530,15 +472,13 @@ namespace System int Reset(); int Skip(int celt); } - public interface IEnumMoniker { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumMoniker ppenum); - int Next(int celt, System.Runtime.InteropServices.ComTypes.IMoniker[] rgelt, System.IntPtr pceltFetched); + int Next(int celt, System.Runtime.InteropServices.ComTypes.IMoniker[] rgelt, nint pceltFetched); void Reset(); int Skip(int celt); } - public interface IEnumSTATDATA { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumSTATDATA newEnum); @@ -1546,32 +486,20 @@ namespace System int Reset(); int Skip(int celt); } - public interface IEnumString { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumString ppenum); - int Next(int celt, string[] rgelt, System.IntPtr pceltFetched); + int Next(int celt, string[] rgelt, nint pceltFetched); void Reset(); int Skip(int celt); } - public interface IEnumVARIANT { System.Runtime.InteropServices.ComTypes.IEnumVARIANT Clone(); - int Next(int celt, object[] rgVar, System.IntPtr pceltFetched); + int Next(int celt, object[] rgVar, nint pceltFetched); int Reset(); int Skip(int celt); } - - [System.Flags] - public enum IMPLTYPEFLAGS : int - { - IMPLTYPEFLAG_FDEFAULT = 1, - IMPLTYPEFLAG_FDEFAULTVTABLE = 8, - IMPLTYPEFLAG_FRESTRICTED = 4, - IMPLTYPEFLAG_FSOURCE = 2, - } - public interface IMoniker { void BindToObject(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, System.Runtime.InteropServices.ComTypes.IMoniker pmkToLeft, ref System.Guid riidResult, out object ppvResult); @@ -1581,7 +509,7 @@ namespace System void Enum(bool fForward, out System.Runtime.InteropServices.ComTypes.IEnumMoniker ppenumMoniker); void GetClassID(out System.Guid pClassID); void GetDisplayName(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, System.Runtime.InteropServices.ComTypes.IMoniker pmkToLeft, out string ppszDisplayName); - void GetSizeMax(out System.Int64 pcbSize); + void GetSizeMax(out long pcbSize); void GetTimeOfLastChange(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, System.Runtime.InteropServices.ComTypes.IMoniker pmkToLeft, out System.Runtime.InteropServices.ComTypes.FILETIME pFileTime); void Hash(out int pdwHash); void Inverse(out System.Runtime.InteropServices.ComTypes.IMoniker ppmk); @@ -1595,16 +523,22 @@ namespace System void RelativePathTo(System.Runtime.InteropServices.ComTypes.IMoniker pmkOther, out System.Runtime.InteropServices.ComTypes.IMoniker ppmkRelPath); void Save(System.Runtime.InteropServices.ComTypes.IStream pStm, bool fClearDirty); } - [System.Flags] - public enum INVOKEKIND : int + public enum IMPLTYPEFLAGS + { + IMPLTYPEFLAG_FDEFAULT = 1, + IMPLTYPEFLAG_FSOURCE = 2, + IMPLTYPEFLAG_FRESTRICTED = 4, + IMPLTYPEFLAG_FDEFAULTVTABLE = 8, + } + [System.Flags] + public enum INVOKEKIND { INVOKE_FUNC = 1, INVOKE_PROPERTYGET = 2, INVOKE_PROPERTYPUT = 4, INVOKE_PROPERTYPUTREF = 8, } - public interface IPersistFile { void GetClassID(out System.Guid pClassID); @@ -1614,7 +548,6 @@ namespace System void Save(string pszFileName, bool fRemember); void SaveCompleted(string pszFileName); } - public interface IRunningObjectTable { void EnumRunning(out System.Runtime.InteropServices.ComTypes.IEnumMoniker ppenumMoniker); @@ -1625,67 +558,63 @@ namespace System int Register(int grfFlags, object punkObject, System.Runtime.InteropServices.ComTypes.IMoniker pmkObjectName); void Revoke(int dwRegister); } - public interface IStream { void Clone(out System.Runtime.InteropServices.ComTypes.IStream ppstm); void Commit(int grfCommitFlags); - void CopyTo(System.Runtime.InteropServices.ComTypes.IStream pstm, System.Int64 cb, System.IntPtr pcbRead, System.IntPtr pcbWritten); - void LockRegion(System.Int64 libOffset, System.Int64 cb, int dwLockType); - void Read(System.Byte[] pv, int cb, System.IntPtr pcbRead); + void CopyTo(System.Runtime.InteropServices.ComTypes.IStream pstm, long cb, nint pcbRead, nint pcbWritten); + void LockRegion(long libOffset, long cb, int dwLockType); + void Read(byte[] pv, int cb, nint pcbRead); void Revert(); - void Seek(System.Int64 dlibMove, int dwOrigin, System.IntPtr plibNewPosition); - void SetSize(System.Int64 libNewSize); + void Seek(long dlibMove, int dwOrigin, nint plibNewPosition); + void SetSize(long libNewSize); void Stat(out System.Runtime.InteropServices.ComTypes.STATSTG pstatstg, int grfStatFlag); - void UnlockRegion(System.Int64 libOffset, System.Int64 cb, int dwLockType); - void Write(System.Byte[] pv, int cb, System.IntPtr pcbWritten); + void UnlockRegion(long libOffset, long cb, int dwLockType); + void Write(byte[] pv, int cb, nint pcbWritten); } - public interface ITypeComp { - void Bind(string szName, int lHashVal, System.Int16 wFlags, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTInfo, out System.Runtime.InteropServices.ComTypes.DESCKIND pDescKind, out System.Runtime.InteropServices.ComTypes.BINDPTR pBindPtr); + void Bind(string szName, int lHashVal, short wFlags, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTInfo, out System.Runtime.InteropServices.ComTypes.DESCKIND pDescKind, out System.Runtime.InteropServices.ComTypes.BINDPTR pBindPtr); void BindType(string szName, int lHashVal, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTInfo, out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp); } - public interface ITypeInfo { - void AddressOfMember(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, out System.IntPtr ppv); + void AddressOfMember(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, out nint ppv); void CreateInstance(object pUnkOuter, ref System.Guid riid, out object ppvObj); void GetContainingTypeLib(out System.Runtime.InteropServices.ComTypes.ITypeLib ppTLB, out int pIndex); - void GetDllEntry(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, System.IntPtr pBstrDllName, System.IntPtr pBstrName, System.IntPtr pwOrdinal); + void GetDllEntry(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, nint pBstrDllName, nint pBstrName, nint pwOrdinal); void GetDocumentation(int index, out string strName, out string strDocString, out int dwHelpContext, out string strHelpFile); - void GetFuncDesc(int index, out System.IntPtr ppFuncDesc); + void GetFuncDesc(int index, out nint ppFuncDesc); void GetIDsOfNames(string[] rgszNames, int cNames, int[] pMemId); void GetImplTypeFlags(int index, out System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS pImplTypeFlags); void GetMops(int memid, out string pBstrMops); void GetNames(int memid, string[] rgBstrNames, int cMaxNames, out int pcNames); void GetRefTypeInfo(int hRef, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTI); void GetRefTypeOfImplType(int index, out int href); - void GetTypeAttr(out System.IntPtr ppTypeAttr); + void GetTypeAttr(out nint ppTypeAttr); void GetTypeComp(out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp); - void GetVarDesc(int index, out System.IntPtr ppVarDesc); - void Invoke(object pvInstance, int memid, System.Int16 wFlags, ref System.Runtime.InteropServices.ComTypes.DISPPARAMS pDispParams, System.IntPtr pVarResult, System.IntPtr pExcepInfo, out int puArgErr); - void ReleaseFuncDesc(System.IntPtr pFuncDesc); - void ReleaseTypeAttr(System.IntPtr pTypeAttr); - void ReleaseVarDesc(System.IntPtr pVarDesc); + void GetVarDesc(int index, out nint ppVarDesc); + void Invoke(object pvInstance, int memid, short wFlags, ref System.Runtime.InteropServices.ComTypes.DISPPARAMS pDispParams, nint pVarResult, nint pExcepInfo, out int puArgErr); + void ReleaseFuncDesc(nint pFuncDesc); + void ReleaseTypeAttr(nint pTypeAttr); + void ReleaseVarDesc(nint pVarDesc); } - public interface ITypeInfo2 : System.Runtime.InteropServices.ComTypes.ITypeInfo { - void AddressOfMember(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, out System.IntPtr ppv); + void AddressOfMember(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, out nint ppv); void CreateInstance(object pUnkOuter, ref System.Guid riid, out object ppvObj); - void GetAllCustData(System.IntPtr pCustData); - void GetAllFuncCustData(int index, System.IntPtr pCustData); - void GetAllImplTypeCustData(int index, System.IntPtr pCustData); - void GetAllParamCustData(int indexFunc, int indexParam, System.IntPtr pCustData); - void GetAllVarCustData(int index, System.IntPtr pCustData); + void GetAllCustData(nint pCustData); + void GetAllFuncCustData(int index, nint pCustData); + void GetAllImplTypeCustData(int index, nint pCustData); + void GetAllParamCustData(int indexFunc, int indexParam, nint pCustData); + void GetAllVarCustData(int index, nint pCustData); void GetContainingTypeLib(out System.Runtime.InteropServices.ComTypes.ITypeLib ppTLB, out int pIndex); void GetCustData(ref System.Guid guid, out object pVarVal); - void GetDllEntry(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, System.IntPtr pBstrDllName, System.IntPtr pBstrName, System.IntPtr pwOrdinal); + void GetDllEntry(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, nint pBstrDllName, nint pBstrName, nint pwOrdinal); void GetDocumentation(int index, out string strName, out string strDocString, out int dwHelpContext, out string strHelpFile); void GetDocumentation2(int memid, out string pbstrHelpString, out int pdwHelpStringContext, out string pbstrHelpStringDll); void GetFuncCustData(int index, ref System.Guid guid, out object pVarVal); - void GetFuncDesc(int index, out System.IntPtr ppFuncDesc); + void GetFuncDesc(int index, out nint ppFuncDesc); void GetFuncIndexOfMemId(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, out int pFuncIndex); void GetIDsOfNames(string[] rgszNames, int cNames, int[] pMemId); void GetImplTypeCustData(int index, ref System.Guid guid, out object pVarVal); @@ -1695,94 +624,84 @@ namespace System void GetParamCustData(int indexFunc, int indexParam, ref System.Guid guid, out object pVarVal); void GetRefTypeInfo(int hRef, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTI); void GetRefTypeOfImplType(int index, out int href); - void GetTypeAttr(out System.IntPtr ppTypeAttr); + void GetTypeAttr(out nint ppTypeAttr); void GetTypeComp(out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp); void GetTypeFlags(out int pTypeFlags); void GetTypeKind(out System.Runtime.InteropServices.ComTypes.TYPEKIND pTypeKind); void GetVarCustData(int index, ref System.Guid guid, out object pVarVal); - void GetVarDesc(int index, out System.IntPtr ppVarDesc); + void GetVarDesc(int index, out nint ppVarDesc); void GetVarIndexOfMemId(int memid, out int pVarIndex); - void Invoke(object pvInstance, int memid, System.Int16 wFlags, ref System.Runtime.InteropServices.ComTypes.DISPPARAMS pDispParams, System.IntPtr pVarResult, System.IntPtr pExcepInfo, out int puArgErr); - void ReleaseFuncDesc(System.IntPtr pFuncDesc); - void ReleaseTypeAttr(System.IntPtr pTypeAttr); - void ReleaseVarDesc(System.IntPtr pVarDesc); + void Invoke(object pvInstance, int memid, short wFlags, ref System.Runtime.InteropServices.ComTypes.DISPPARAMS pDispParams, nint pVarResult, nint pExcepInfo, out int puArgErr); + void ReleaseFuncDesc(nint pFuncDesc); + void ReleaseTypeAttr(nint pTypeAttr); + void ReleaseVarDesc(nint pVarDesc); } - public interface ITypeLib { - void FindName(string szNameBuf, int lHashVal, System.Runtime.InteropServices.ComTypes.ITypeInfo[] ppTInfo, int[] rgMemId, ref System.Int16 pcFound); + void FindName(string szNameBuf, int lHashVal, System.Runtime.InteropServices.ComTypes.ITypeInfo[] ppTInfo, int[] rgMemId, ref short pcFound); void GetDocumentation(int index, out string strName, out string strDocString, out int dwHelpContext, out string strHelpFile); - void GetLibAttr(out System.IntPtr ppTLibAttr); + void GetLibAttr(out nint ppTLibAttr); void GetTypeComp(out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp); void GetTypeInfo(int index, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTI); int GetTypeInfoCount(); void GetTypeInfoOfGuid(ref System.Guid guid, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTInfo); void GetTypeInfoType(int index, out System.Runtime.InteropServices.ComTypes.TYPEKIND pTKind); bool IsName(string szNameBuf, int lHashVal); - void ReleaseTLibAttr(System.IntPtr pTLibAttr); + void ReleaseTLibAttr(nint pTLibAttr); } - public interface ITypeLib2 : System.Runtime.InteropServices.ComTypes.ITypeLib { - void FindName(string szNameBuf, int lHashVal, System.Runtime.InteropServices.ComTypes.ITypeInfo[] ppTInfo, int[] rgMemId, ref System.Int16 pcFound); - void GetAllCustData(System.IntPtr pCustData); + void FindName(string szNameBuf, int lHashVal, System.Runtime.InteropServices.ComTypes.ITypeInfo[] ppTInfo, int[] rgMemId, ref short pcFound); + void GetAllCustData(nint pCustData); void GetCustData(ref System.Guid guid, out object pVarVal); void GetDocumentation(int index, out string strName, out string strDocString, out int dwHelpContext, out string strHelpFile); void GetDocumentation2(int index, out string pbstrHelpString, out int pdwHelpStringContext, out string pbstrHelpStringDll); - void GetLibAttr(out System.IntPtr ppTLibAttr); - void GetLibStatistics(System.IntPtr pcUniqueNames, out int pcchUniqueNames); + void GetLibAttr(out nint ppTLibAttr); + void GetLibStatistics(nint pcUniqueNames, out int pcchUniqueNames); void GetTypeComp(out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp); void GetTypeInfo(int index, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTI); int GetTypeInfoCount(); void GetTypeInfoOfGuid(ref System.Guid guid, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTInfo); void GetTypeInfoType(int index, out System.Runtime.InteropServices.ComTypes.TYPEKIND pTKind); bool IsName(string szNameBuf, int lHashVal); - void ReleaseTLibAttr(System.IntPtr pTLibAttr); + void ReleaseTLibAttr(nint pTLibAttr); } - [System.Flags] public enum LIBFLAGS : short { - LIBFLAG_FCONTROL = 2, - LIBFLAG_FHASDISKIMAGE = 8, - LIBFLAG_FHIDDEN = 4, LIBFLAG_FRESTRICTED = 1, + LIBFLAG_FCONTROL = 2, + LIBFLAG_FHIDDEN = 4, + LIBFLAG_FHASDISKIMAGE = 8, } - public struct PARAMDESC { - // Stub generator skipped constructor - public System.IntPtr lpVarValue; + public nint lpVarValue; public System.Runtime.InteropServices.ComTypes.PARAMFLAG wParamFlags; } - [System.Flags] public enum PARAMFLAG : short { - PARAMFLAG_FHASCUSTDATA = 64, - PARAMFLAG_FHASDEFAULT = 32, - PARAMFLAG_FIN = 1, - PARAMFLAG_FLCID = 4, - PARAMFLAG_FOPT = 16, - PARAMFLAG_FOUT = 2, - PARAMFLAG_FRETVAL = 8, PARAMFLAG_NONE = 0, + PARAMFLAG_FIN = 1, + PARAMFLAG_FOUT = 2, + PARAMFLAG_FLCID = 4, + PARAMFLAG_FRETVAL = 8, + PARAMFLAG_FOPT = 16, + PARAMFLAG_FHASDEFAULT = 32, + PARAMFLAG_FHASCUSTDATA = 64, } - public struct STATDATA { - // Stub generator skipped constructor - public System.Runtime.InteropServices.ComTypes.IAdviseSink advSink; public System.Runtime.InteropServices.ComTypes.ADVF advf; + public System.Runtime.InteropServices.ComTypes.IAdviseSink advSink; public int connection; public System.Runtime.InteropServices.ComTypes.FORMATETC formatetc; } - public struct STATSTG { - // Stub generator skipped constructor public System.Runtime.InteropServices.ComTypes.FILETIME atime; - public System.Int64 cbSize; + public long cbSize; public System.Guid clsid; public System.Runtime.InteropServices.ComTypes.FILETIME ctime; public int grfLocksSupported; @@ -1793,178 +712,575 @@ namespace System public int reserved; public int type; } - public struct STGMEDIUM { - // Stub generator skipped constructor public object pUnkForRelease; public System.Runtime.InteropServices.ComTypes.TYMED tymed; - public System.IntPtr unionmember; + public nint unionmember; } - - public enum SYSKIND : int + public enum SYSKIND { - SYS_MAC = 2, SYS_WIN16 = 0, SYS_WIN32 = 1, + SYS_MAC = 2, SYS_WIN64 = 3, } - [System.Flags] - public enum TYMED : int + public enum TYMED { - TYMED_ENHMF = 64, - TYMED_FILE = 2, - TYMED_GDI = 16, - TYMED_HGLOBAL = 1, - TYMED_ISTORAGE = 8, - TYMED_ISTREAM = 4, - TYMED_MFPICT = 32, TYMED_NULL = 0, + TYMED_HGLOBAL = 1, + TYMED_FILE = 2, + TYMED_ISTREAM = 4, + TYMED_ISTORAGE = 8, + TYMED_GDI = 16, + TYMED_MFPICT = 32, + TYMED_ENHMF = 64, } - public struct TYPEATTR { - public const int MEMBER_ID_NIL = default; - // Stub generator skipped constructor - public System.Int16 cFuncs; - public System.Int16 cImplTypes; - public System.Int16 cVars; - public System.Int16 cbAlignment; + public short cbAlignment; public int cbSizeInstance; - public System.Int16 cbSizeVft; + public short cbSizeVft; + public short cFuncs; + public short cImplTypes; + public short cVars; public int dwReserved; public System.Guid guid; public System.Runtime.InteropServices.ComTypes.IDLDESC idldescType; public int lcid; - public System.IntPtr lpstrSchema; + public nint lpstrSchema; + public static int MEMBER_ID_NIL; public int memidConstructor; public int memidDestructor; public System.Runtime.InteropServices.ComTypes.TYPEDESC tdescAlias; public System.Runtime.InteropServices.ComTypes.TYPEKIND typekind; - public System.Int16 wMajorVerNum; - public System.Int16 wMinorVerNum; + public short wMajorVerNum; + public short wMinorVerNum; public System.Runtime.InteropServices.ComTypes.TYPEFLAGS wTypeFlags; } - public struct TYPEDESC { - // Stub generator skipped constructor - public System.IntPtr lpValue; - public System.Int16 vt; + public nint lpValue; + public short vt; } - [System.Flags] public enum TYPEFLAGS : short { - TYPEFLAG_FAGGREGATABLE = 1024, TYPEFLAG_FAPPOBJECT = 1, TYPEFLAG_FCANCREATE = 2, - TYPEFLAG_FCONTROL = 32, - TYPEFLAG_FDISPATCHABLE = 4096, - TYPEFLAG_FDUAL = 64, - TYPEFLAG_FHIDDEN = 16, TYPEFLAG_FLICENSED = 4, + TYPEFLAG_FPREDECLID = 8, + TYPEFLAG_FHIDDEN = 16, + TYPEFLAG_FCONTROL = 32, + TYPEFLAG_FDUAL = 64, TYPEFLAG_FNONEXTENSIBLE = 128, TYPEFLAG_FOLEAUTOMATION = 256, - TYPEFLAG_FPREDECLID = 8, - TYPEFLAG_FPROXY = 16384, - TYPEFLAG_FREPLACEABLE = 2048, TYPEFLAG_FRESTRICTED = 512, + TYPEFLAG_FAGGREGATABLE = 1024, + TYPEFLAG_FREPLACEABLE = 2048, + TYPEFLAG_FDISPATCHABLE = 4096, TYPEFLAG_FREVERSEBIND = 8192, + TYPEFLAG_FPROXY = 16384, } - - public enum TYPEKIND : int + public enum TYPEKIND { - TKIND_ALIAS = 6, - TKIND_COCLASS = 5, - TKIND_DISPATCH = 4, TKIND_ENUM = 0, - TKIND_INTERFACE = 3, - TKIND_MAX = 8, - TKIND_MODULE = 2, TKIND_RECORD = 1, + TKIND_MODULE = 2, + TKIND_INTERFACE = 3, + TKIND_DISPATCH = 4, + TKIND_COCLASS = 5, + TKIND_ALIAS = 6, TKIND_UNION = 7, + TKIND_MAX = 8, } - public struct TYPELIBATTR { - // Stub generator skipped constructor public System.Guid guid; public int lcid; public System.Runtime.InteropServices.ComTypes.SYSKIND syskind; public System.Runtime.InteropServices.ComTypes.LIBFLAGS wLibFlags; - public System.Int16 wMajorVerNum; - public System.Int16 wMinorVerNum; + public short wMajorVerNum; + public short wMinorVerNum; } - public struct VARDESC { + public System.Runtime.InteropServices.ComTypes.VARDESC.DESCUNION desc; public struct DESCUNION { - // Stub generator skipped constructor - public System.IntPtr lpvarValue; + public nint lpvarValue; public int oInst; } - - - // Stub generator skipped constructor - public System.Runtime.InteropServices.ComTypes.VARDESC.DESCUNION desc; public System.Runtime.InteropServices.ComTypes.ELEMDESC elemdescVar; public string lpstrSchema; public int memid; public System.Runtime.InteropServices.ComTypes.VARKIND varkind; - public System.Int16 wVarFlags; + public short wVarFlags; } - [System.Flags] public enum VARFLAGS : short { - VARFLAG_FBINDABLE = 4, - VARFLAG_FDEFAULTBIND = 32, - VARFLAG_FDEFAULTCOLLELEM = 256, - VARFLAG_FDISPLAYBIND = 16, - VARFLAG_FHIDDEN = 64, - VARFLAG_FIMMEDIATEBIND = 4096, - VARFLAG_FNONBROWSABLE = 1024, VARFLAG_FREADONLY = 1, - VARFLAG_FREPLACEABLE = 2048, - VARFLAG_FREQUESTEDIT = 8, - VARFLAG_FRESTRICTED = 128, VARFLAG_FSOURCE = 2, + VARFLAG_FBINDABLE = 4, + VARFLAG_FREQUESTEDIT = 8, + VARFLAG_FDISPLAYBIND = 16, + VARFLAG_FDEFAULTBIND = 32, + VARFLAG_FHIDDEN = 64, + VARFLAG_FRESTRICTED = 128, + VARFLAG_FDEFAULTCOLLELEM = 256, VARFLAG_FUIDEFAULT = 512, + VARFLAG_FNONBROWSABLE = 1024, + VARFLAG_FREPLACEABLE = 2048, + VARFLAG_FIMMEDIATEBIND = 4096, } - - public enum VARKIND : int + public enum VARKIND { - VAR_CONST = 2, - VAR_DISPATCH = 3, VAR_PERINSTANCE = 0, VAR_STATIC = 1, + VAR_CONST = 2, + VAR_DISPATCH = 3, } - + } + public sealed class ComUnregisterFunctionAttribute : System.Attribute + { + public ComUnregisterFunctionAttribute() => throw null; + } + public abstract class ComWrappers + { + public struct ComInterfaceDispatch + { + public static unsafe T GetInstance(System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* dispatchPtr) where T : class => throw null; + public nint Vtable; + } + public struct ComInterfaceEntry + { + public System.Guid IID; + public nint Vtable; + } + protected abstract unsafe System.Runtime.InteropServices.ComWrappers.ComInterfaceEntry* ComputeVtables(object obj, System.Runtime.InteropServices.CreateComInterfaceFlags flags, out int count); + protected abstract object CreateObject(nint externalComObject, System.Runtime.InteropServices.CreateObjectFlags flags); + protected ComWrappers() => throw null; + protected static void GetIUnknownImpl(out nint fpQueryInterface, out nint fpAddRef, out nint fpRelease) => throw null; + public nint GetOrCreateComInterfaceForObject(object instance, System.Runtime.InteropServices.CreateComInterfaceFlags flags) => throw null; + public object GetOrCreateObjectForComInstance(nint externalComObject, System.Runtime.InteropServices.CreateObjectFlags flags) => throw null; + public object GetOrRegisterObjectForComInstance(nint externalComObject, System.Runtime.InteropServices.CreateObjectFlags flags, object wrapper) => throw null; + public object GetOrRegisterObjectForComInstance(nint externalComObject, System.Runtime.InteropServices.CreateObjectFlags flags, object wrapper, nint inner) => throw null; + public static void RegisterForMarshalling(System.Runtime.InteropServices.ComWrappers instance) => throw null; + public static void RegisterForTrackerSupport(System.Runtime.InteropServices.ComWrappers instance) => throw null; + protected abstract void ReleaseObjects(System.Collections.IEnumerable objects); + } + [System.Flags] + public enum CreateComInterfaceFlags + { + None = 0, + CallerDefinedIUnknown = 1, + TrackerSupport = 2, + } + [System.Flags] + public enum CreateObjectFlags + { + None = 0, + TrackerObject = 1, + UniqueInstance = 2, + Aggregation = 4, + Unwrap = 8, + } + public struct CULong : System.IEquatable + { + public CULong(uint value) => throw null; + public CULong(nuint value) => throw null; + public override bool Equals(object o) => throw null; + public bool Equals(System.Runtime.InteropServices.CULong other) => throw null; + public override int GetHashCode() => throw null; + public override string ToString() => throw null; + public nuint Value { get => throw null; } + } + public sealed class CurrencyWrapper + { + public CurrencyWrapper(decimal obj) => throw null; + public CurrencyWrapper(object obj) => throw null; + public decimal WrappedObject { get => throw null; } + } + public enum CustomQueryInterfaceMode + { + Ignore = 0, + Allow = 1, + } + public enum CustomQueryInterfaceResult + { + Handled = 0, + NotHandled = 1, + Failed = 2, + } + public sealed class DefaultCharSetAttribute : System.Attribute + { + public System.Runtime.InteropServices.CharSet CharSet { get => throw null; } + public DefaultCharSetAttribute(System.Runtime.InteropServices.CharSet charSet) => throw null; + } + public sealed class DefaultDllImportSearchPathsAttribute : System.Attribute + { + public DefaultDllImportSearchPathsAttribute(System.Runtime.InteropServices.DllImportSearchPath paths) => throw null; + public System.Runtime.InteropServices.DllImportSearchPath Paths { get => throw null; } + } + public sealed class DefaultParameterValueAttribute : System.Attribute + { + public DefaultParameterValueAttribute(object value) => throw null; + public object Value { get => throw null; } + } + public sealed class DispatchWrapper + { + public DispatchWrapper(object obj) => throw null; + public object WrappedObject { get => throw null; } + } + public sealed class DispIdAttribute : System.Attribute + { + public DispIdAttribute(int dispId) => throw null; + public int Value { get => throw null; } + } + public sealed class DllImportAttribute : System.Attribute + { + public bool BestFitMapping; + public System.Runtime.InteropServices.CallingConvention CallingConvention; + public System.Runtime.InteropServices.CharSet CharSet; + public DllImportAttribute(string dllName) => throw null; + public string EntryPoint; + public bool ExactSpelling; + public bool PreserveSig; + public bool SetLastError; + public bool ThrowOnUnmappableChar; + public string Value { get => throw null; } + } + public delegate nint DllImportResolver(string libraryName, System.Reflection.Assembly assembly, System.Runtime.InteropServices.DllImportSearchPath? searchPath); + [System.Flags] + public enum DllImportSearchPath + { + LegacyBehavior = 0, + AssemblyDirectory = 2, + UseDllDirectoryForDependencies = 256, + ApplicationDirectory = 512, + UserDirectories = 1024, + System32 = 2048, + SafeDirectories = 4096, + } + public sealed class DynamicInterfaceCastableImplementationAttribute : System.Attribute + { + public DynamicInterfaceCastableImplementationAttribute() => throw null; + } + public sealed class ErrorWrapper + { + public ErrorWrapper(System.Exception e) => throw null; + public ErrorWrapper(int errorCode) => throw null; + public ErrorWrapper(object errorCode) => throw null; + public int ErrorCode { get => throw null; } + } + public sealed class GuidAttribute : System.Attribute + { + public GuidAttribute(string guid) => throw null; + public string Value { get => throw null; } + } + public sealed class HandleCollector + { + public void Add() => throw null; + public int Count { get => throw null; } + public HandleCollector(string name, int initialThreshold) => throw null; + public HandleCollector(string name, int initialThreshold, int maximumThreshold) => throw null; + public int InitialThreshold { get => throw null; } + public int MaximumThreshold { get => throw null; } + public string Name { get => throw null; } + public void Remove() => throw null; + } + public struct HandleRef + { + public HandleRef(object wrapper, nint handle) => throw null; + public nint Handle { get => throw null; } + public static explicit operator nint(System.Runtime.InteropServices.HandleRef value) => throw null; + public static nint ToIntPtr(System.Runtime.InteropServices.HandleRef value) => throw null; + public object Wrapper { get => throw null; } + } + public interface ICustomAdapter + { + object GetUnderlyingObject(); + } + public interface ICustomFactory + { + System.MarshalByRefObject CreateInstance(System.Type serverType); + } + public interface ICustomMarshaler + { + void CleanUpManagedData(object ManagedObj); + void CleanUpNativeData(nint pNativeData); + int GetNativeDataSize(); + nint MarshalManagedToNative(object ManagedObj); + object MarshalNativeToManaged(nint pNativeData); + } + public interface ICustomQueryInterface + { + System.Runtime.InteropServices.CustomQueryInterfaceResult GetInterface(ref System.Guid iid, out nint ppv); + } + public interface IDynamicInterfaceCastable + { + System.RuntimeTypeHandle GetInterfaceImplementation(System.RuntimeTypeHandle interfaceType); + bool IsInterfaceImplemented(System.RuntimeTypeHandle interfaceType, bool throwIfNotImplemented); + } + public sealed class ImportedFromTypeLibAttribute : System.Attribute + { + public ImportedFromTypeLibAttribute(string tlbFile) => throw null; + public string Value { get => throw null; } + } + public sealed class InterfaceTypeAttribute : System.Attribute + { + public InterfaceTypeAttribute(short interfaceType) => throw null; + public InterfaceTypeAttribute(System.Runtime.InteropServices.ComInterfaceType interfaceType) => throw null; + public System.Runtime.InteropServices.ComInterfaceType Value { get => throw null; } + } + public class InvalidComObjectException : System.SystemException + { + public InvalidComObjectException() => throw null; + protected InvalidComObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public InvalidComObjectException(string message) => throw null; + public InvalidComObjectException(string message, System.Exception inner) => throw null; + } + public class InvalidOleVariantTypeException : System.SystemException + { + public InvalidOleVariantTypeException() => throw null; + protected InvalidOleVariantTypeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public InvalidOleVariantTypeException(string message) => throw null; + public InvalidOleVariantTypeException(string message, System.Exception inner) => throw null; + } + public sealed class LCIDConversionAttribute : System.Attribute + { + public LCIDConversionAttribute(int lcid) => throw null; + public int Value { get => throw null; } + } + public sealed class LibraryImportAttribute : System.Attribute + { + public LibraryImportAttribute(string libraryName) => throw null; + public string EntryPoint { get => throw null; set { } } + public string LibraryName { get => throw null; } + public bool SetLastError { get => throw null; set { } } + public System.Runtime.InteropServices.StringMarshalling StringMarshalling { get => throw null; set { } } + public System.Type StringMarshallingCustomType { get => throw null; set { } } + } + public sealed class ManagedToNativeComInteropStubAttribute : System.Attribute + { + public System.Type ClassType { get => throw null; } + public ManagedToNativeComInteropStubAttribute(System.Type classType, string methodName) => throw null; + public string MethodName { get => throw null; } + } + public static class Marshal + { + public static int AddRef(nint pUnk) => throw null; + public static nint AllocCoTaskMem(int cb) => throw null; + public static nint AllocHGlobal(int cb) => throw null; + public static nint AllocHGlobal(nint cb) => throw null; + public static bool AreComObjectsAvailableForCleanup() => throw null; + public static object BindToMoniker(string monikerName) => throw null; + public static void ChangeWrapperHandleStrength(object otp, bool fIsWeak) => throw null; + public static void CleanupUnusedObjectsInCurrentContext() => throw null; + public static void Copy(byte[] source, int startIndex, nint destination, int length) => throw null; + public static void Copy(char[] source, int startIndex, nint destination, int length) => throw null; + public static void Copy(double[] source, int startIndex, nint destination, int length) => throw null; + public static void Copy(short[] source, int startIndex, nint destination, int length) => throw null; + public static void Copy(int[] source, int startIndex, nint destination, int length) => throw null; + public static void Copy(long[] source, int startIndex, nint destination, int length) => throw null; + public static void Copy(nint source, byte[] destination, int startIndex, int length) => throw null; + public static void Copy(nint source, char[] destination, int startIndex, int length) => throw null; + public static void Copy(nint source, double[] destination, int startIndex, int length) => throw null; + public static void Copy(nint source, short[] destination, int startIndex, int length) => throw null; + public static void Copy(nint source, int[] destination, int startIndex, int length) => throw null; + public static void Copy(nint source, long[] destination, int startIndex, int length) => throw null; + public static void Copy(nint source, nint[] destination, int startIndex, int length) => throw null; + public static void Copy(nint source, float[] destination, int startIndex, int length) => throw null; + public static void Copy(nint[] source, int startIndex, nint destination, int length) => throw null; + public static void Copy(float[] source, int startIndex, nint destination, int length) => throw null; + public static nint CreateAggregatedObject(nint pOuter, object o) => throw null; + public static nint CreateAggregatedObject(nint pOuter, T o) => throw null; + public static object CreateWrapperOfType(object o, System.Type t) => throw null; + public static TWrapper CreateWrapperOfType(T o) => throw null; + public static void DestroyStructure(nint ptr, System.Type structuretype) => throw null; + public static void DestroyStructure(nint ptr) => throw null; + public static int FinalReleaseComObject(object o) => throw null; + public static void FreeBSTR(nint ptr) => throw null; + public static void FreeCoTaskMem(nint ptr) => throw null; + public static void FreeHGlobal(nint hglobal) => throw null; + public static System.Guid GenerateGuidForType(System.Type type) => throw null; + public static string GenerateProgIdForType(System.Type type) => throw null; + public static nint GetComInterfaceForObject(object o, System.Type T) => throw null; + public static nint GetComInterfaceForObject(object o, System.Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode) => throw null; + public static nint GetComInterfaceForObject(T o) => throw null; + public static object GetComObjectData(object obj, object key) => throw null; + public static System.Delegate GetDelegateForFunctionPointer(nint ptr, System.Type t) => throw null; + public static TDelegate GetDelegateForFunctionPointer(nint ptr) => throw null; + public static int GetEndComSlot(System.Type t) => throw null; + public static int GetExceptionCode() => throw null; + public static System.Exception GetExceptionForHR(int errorCode) => throw null; + public static System.Exception GetExceptionForHR(int errorCode, nint errorInfo) => throw null; + public static nint GetExceptionPointers() => throw null; + public static nint GetFunctionPointerForDelegate(System.Delegate d) => throw null; + public static nint GetFunctionPointerForDelegate(TDelegate d) => throw null; + public static nint GetHINSTANCE(System.Reflection.Module m) => throw null; + public static int GetHRForException(System.Exception e) => throw null; + public static int GetHRForLastWin32Error() => throw null; + public static nint GetIDispatchForObject(object o) => throw null; + public static nint GetIUnknownForObject(object o) => throw null; + public static int GetLastPInvokeError() => throw null; + public static string GetLastPInvokeErrorMessage() => throw null; + public static int GetLastSystemError() => throw null; + public static int GetLastWin32Error() => throw null; + public static void GetNativeVariantForObject(object obj, nint pDstNativeVariant) => throw null; + public static void GetNativeVariantForObject(T obj, nint pDstNativeVariant) => throw null; + public static object GetObjectForIUnknown(nint pUnk) => throw null; + public static object GetObjectForNativeVariant(nint pSrcNativeVariant) => throw null; + public static T GetObjectForNativeVariant(nint pSrcNativeVariant) => throw null; + public static object[] GetObjectsForNativeVariants(nint aSrcNativeVariant, int cVars) => throw null; + public static T[] GetObjectsForNativeVariants(nint aSrcNativeVariant, int cVars) => throw null; + public static string GetPInvokeErrorMessage(int error) => throw null; + public static int GetStartComSlot(System.Type t) => throw null; + public static object GetTypedObjectForIUnknown(nint pUnk, System.Type t) => throw null; + public static System.Type GetTypeFromCLSID(System.Guid clsid) => throw null; + public static string GetTypeInfoName(System.Runtime.InteropServices.ComTypes.ITypeInfo typeInfo) => throw null; + public static object GetUniqueObjectForIUnknown(nint unknown) => throw null; + public static void InitHandle(System.Runtime.InteropServices.SafeHandle safeHandle, nint handle) => throw null; + public static bool IsComObject(object o) => throw null; + public static bool IsTypeVisibleFromCom(System.Type t) => throw null; + public static nint OffsetOf(System.Type t, string fieldName) => throw null; + public static nint OffsetOf(string fieldName) => throw null; + public static void Prelink(System.Reflection.MethodInfo m) => throw null; + public static void PrelinkAll(System.Type c) => throw null; + public static string PtrToStringAnsi(nint ptr) => throw null; + public static string PtrToStringAnsi(nint ptr, int len) => throw null; + public static string PtrToStringAuto(nint ptr) => throw null; + public static string PtrToStringAuto(nint ptr, int len) => throw null; + public static string PtrToStringBSTR(nint ptr) => throw null; + public static string PtrToStringUni(nint ptr) => throw null; + public static string PtrToStringUni(nint ptr, int len) => throw null; + public static string PtrToStringUTF8(nint ptr) => throw null; + public static string PtrToStringUTF8(nint ptr, int byteLen) => throw null; + public static void PtrToStructure(nint ptr, object structure) => throw null; + public static object PtrToStructure(nint ptr, System.Type structureType) => throw null; + public static T PtrToStructure(nint ptr) => throw null; + public static void PtrToStructure(nint ptr, T structure) => throw null; + public static int QueryInterface(nint pUnk, ref System.Guid iid, out nint ppv) => throw null; + public static byte ReadByte(nint ptr) => throw null; + public static byte ReadByte(nint ptr, int ofs) => throw null; + public static byte ReadByte(object ptr, int ofs) => throw null; + public static short ReadInt16(nint ptr) => throw null; + public static short ReadInt16(nint ptr, int ofs) => throw null; + public static short ReadInt16(object ptr, int ofs) => throw null; + public static int ReadInt32(nint ptr) => throw null; + public static int ReadInt32(nint ptr, int ofs) => throw null; + public static int ReadInt32(object ptr, int ofs) => throw null; + public static long ReadInt64(nint ptr) => throw null; + public static long ReadInt64(nint ptr, int ofs) => throw null; + public static long ReadInt64(object ptr, int ofs) => throw null; + public static nint ReadIntPtr(nint ptr) => throw null; + public static nint ReadIntPtr(nint ptr, int ofs) => throw null; + public static nint ReadIntPtr(object ptr, int ofs) => throw null; + public static nint ReAllocCoTaskMem(nint pv, int cb) => throw null; + public static nint ReAllocHGlobal(nint pv, nint cb) => throw null; + public static int Release(nint pUnk) => throw null; + public static int ReleaseComObject(object o) => throw null; + public static nint SecureStringToBSTR(System.Security.SecureString s) => throw null; + public static nint SecureStringToCoTaskMemAnsi(System.Security.SecureString s) => throw null; + public static nint SecureStringToCoTaskMemUnicode(System.Security.SecureString s) => throw null; + public static nint SecureStringToGlobalAllocAnsi(System.Security.SecureString s) => throw null; + public static nint SecureStringToGlobalAllocUnicode(System.Security.SecureString s) => throw null; + public static bool SetComObjectData(object obj, object key, object data) => throw null; + public static void SetLastPInvokeError(int error) => throw null; + public static void SetLastSystemError(int error) => throw null; + public static int SizeOf(object structure) => throw null; + public static int SizeOf(System.Type t) => throw null; + public static int SizeOf() => throw null; + public static int SizeOf(T structure) => throw null; + public static nint StringToBSTR(string s) => throw null; + public static nint StringToCoTaskMemAnsi(string s) => throw null; + public static nint StringToCoTaskMemAuto(string s) => throw null; + public static nint StringToCoTaskMemUni(string s) => throw null; + public static nint StringToCoTaskMemUTF8(string s) => throw null; + public static nint StringToHGlobalAnsi(string s) => throw null; + public static nint StringToHGlobalAuto(string s) => throw null; + public static nint StringToHGlobalUni(string s) => throw null; + public static void StructureToPtr(object structure, nint ptr, bool fDeleteOld) => throw null; + public static void StructureToPtr(T structure, nint ptr, bool fDeleteOld) => throw null; + public static int SystemDefaultCharSize; + public static int SystemMaxDBCSCharSize; + public static void ThrowExceptionForHR(int errorCode) => throw null; + public static void ThrowExceptionForHR(int errorCode, nint errorInfo) => throw null; + public static nint UnsafeAddrOfPinnedArrayElement(System.Array arr, int index) => throw null; + public static nint UnsafeAddrOfPinnedArrayElement(T[] arr, int index) => throw null; + public static void WriteByte(nint ptr, byte val) => throw null; + public static void WriteByte(nint ptr, int ofs, byte val) => throw null; + public static void WriteByte(object ptr, int ofs, byte val) => throw null; + public static void WriteInt16(nint ptr, char val) => throw null; + public static void WriteInt16(nint ptr, short val) => throw null; + public static void WriteInt16(nint ptr, int ofs, char val) => throw null; + public static void WriteInt16(nint ptr, int ofs, short val) => throw null; + public static void WriteInt16(object ptr, int ofs, char val) => throw null; + public static void WriteInt16(object ptr, int ofs, short val) => throw null; + public static void WriteInt32(nint ptr, int val) => throw null; + public static void WriteInt32(nint ptr, int ofs, int val) => throw null; + public static void WriteInt32(object ptr, int ofs, int val) => throw null; + public static void WriteInt64(nint ptr, int ofs, long val) => throw null; + public static void WriteInt64(nint ptr, long val) => throw null; + public static void WriteInt64(object ptr, int ofs, long val) => throw null; + public static void WriteIntPtr(nint ptr, int ofs, nint val) => throw null; + public static void WriteIntPtr(nint ptr, nint val) => throw null; + public static void WriteIntPtr(object ptr, int ofs, nint val) => throw null; + public static void ZeroFreeBSTR(nint s) => throw null; + public static void ZeroFreeCoTaskMemAnsi(nint s) => throw null; + public static void ZeroFreeCoTaskMemUnicode(nint s) => throw null; + public static void ZeroFreeCoTaskMemUTF8(nint s) => throw null; + public static void ZeroFreeGlobalAllocAnsi(nint s) => throw null; + public static void ZeroFreeGlobalAllocUnicode(nint s) => throw null; + } + public sealed class MarshalAsAttribute : System.Attribute + { + public System.Runtime.InteropServices.UnmanagedType ArraySubType; + public MarshalAsAttribute(short unmanagedType) => throw null; + public MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType unmanagedType) => throw null; + public int IidParameterIndex; + public string MarshalCookie; + public string MarshalType; + public System.Type MarshalTypeRef; + public System.Runtime.InteropServices.VarEnum SafeArraySubType; + public System.Type SafeArrayUserDefinedSubType; + public int SizeConst; + public short SizeParamIndex; + public System.Runtime.InteropServices.UnmanagedType Value { get => throw null; } + } + public class MarshalDirectiveException : System.SystemException + { + public MarshalDirectiveException() => throw null; + protected MarshalDirectiveException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public MarshalDirectiveException(string message) => throw null; + public MarshalDirectiveException(string message, System.Exception inner) => throw null; } namespace Marshalling { public static class AnsiStringMarshaller { + public static unsafe string ConvertToManaged(byte* unmanaged) => throw null; + public static unsafe byte* ConvertToUnmanaged(string managed) => throw null; + public static unsafe void Free(byte* unmanaged) => throw null; public struct ManagedToUnmanagedIn { public static int BufferSize { get => throw null; } public void Free() => throw null; - public void FromManaged(string managed, System.Span buffer) => throw null; - // Stub generator skipped constructor - unsafe public System.Byte* ToUnmanaged() => throw null; + public void FromManaged(string managed, System.Span buffer) => throw null; + public unsafe byte* ToUnmanaged() => throw null; } - - - unsafe public static string ConvertToManaged(System.Byte* unmanaged) => throw null; - unsafe public static System.Byte* ConvertToUnmanaged(string managed) => throw null; - unsafe public static void Free(System.Byte* unmanaged) => throw null; } - public static class ArrayMarshaller where TUnmanagedElement : unmanaged { + public static unsafe T[] AllocateContainerForManagedElements(TUnmanagedElement* unmanaged, int numElements) => throw null; + public static unsafe TUnmanagedElement* AllocateContainerForUnmanagedElements(T[] managed, out int numElements) => throw null; + public static unsafe void Free(TUnmanagedElement* unmanaged) => throw null; + public static System.Span GetManagedValuesDestination(T[] managed) => throw null; + public static System.ReadOnlySpan GetManagedValuesSource(T[] managed) => throw null; + public static unsafe System.Span GetUnmanagedValuesDestination(TUnmanagedElement* unmanaged, int numElements) => throw null; + public static unsafe System.ReadOnlySpan GetUnmanagedValuesSource(TUnmanagedElement* unmanagedValue, int numElements) => throw null; public struct ManagedToUnmanagedIn { public static int BufferSize { get => throw null; } @@ -1974,104 +1290,330 @@ namespace System public TUnmanagedElement GetPinnableReference() => throw null; public static T GetPinnableReference(T[] array) => throw null; public System.Span GetUnmanagedValuesDestination() => throw null; - // Stub generator skipped constructor - unsafe public TUnmanagedElement* ToUnmanaged() => throw null; + public unsafe TUnmanagedElement* ToUnmanaged() => throw null; } - - - unsafe public static T[] AllocateContainerForManagedElements(TUnmanagedElement* unmanaged, int numElements) => throw null; - unsafe public static TUnmanagedElement* AllocateContainerForUnmanagedElements(T[] managed, out int numElements) => throw null; - unsafe public static void Free(TUnmanagedElement* unmanaged) => throw null; - public static System.Span GetManagedValuesDestination(T[] managed) => throw null; - public static System.ReadOnlySpan GetManagedValuesSource(T[] managed) => throw null; - unsafe public static System.Span GetUnmanagedValuesDestination(TUnmanagedElement* unmanaged, int numElements) => throw null; - unsafe public static System.ReadOnlySpan GetUnmanagedValuesSource(TUnmanagedElement* unmanagedValue, int numElements) => throw null; } - public static class BStrStringMarshaller { + public static unsafe string ConvertToManaged(ushort* unmanaged) => throw null; + public static unsafe ushort* ConvertToUnmanaged(string managed) => throw null; + public static unsafe void Free(ushort* unmanaged) => throw null; public struct ManagedToUnmanagedIn { public static int BufferSize { get => throw null; } public void Free() => throw null; - public void FromManaged(string managed, System.Span buffer) => throw null; - // Stub generator skipped constructor - unsafe public System.UInt16* ToUnmanaged() => throw null; + public void FromManaged(string managed, System.Span buffer) => throw null; + public unsafe ushort* ToUnmanaged() => throw null; } - - - unsafe public static string ConvertToManaged(System.UInt16* unmanaged) => throw null; - unsafe public static System.UInt16* ConvertToUnmanaged(string managed) => throw null; - unsafe public static void Free(System.UInt16* unmanaged) => throw null; } - - public class MarshalUsingAttribute : System.Attribute + public sealed class MarshalUsingAttribute : System.Attribute { - public int ConstantElementCount { get => throw null; set => throw null; } - public string CountElementName { get => throw null; set => throw null; } - public int ElementIndirectionDepth { get => throw null; set => throw null; } + public int ConstantElementCount { get => throw null; set { } } + public string CountElementName { get => throw null; set { } } public MarshalUsingAttribute() => throw null; public MarshalUsingAttribute(System.Type nativeType) => throw null; + public int ElementIndirectionDepth { get => throw null; set { } } public System.Type NativeType { get => throw null; } - public const string ReturnsCountValue = default; + public static string ReturnsCountValue; } - public static class PointerArrayMarshaller where T : unmanaged where TUnmanagedElement : unmanaged { + public static unsafe T*[] AllocateContainerForManagedElements(TUnmanagedElement* unmanaged, int numElements) => throw null; + public static unsafe TUnmanagedElement* AllocateContainerForUnmanagedElements(T*[] managed, out int numElements) => throw null; + public static unsafe void Free(TUnmanagedElement* unmanaged) => throw null; + public static unsafe System.Span GetManagedValuesDestination(T*[] managed) => throw null; + public static unsafe System.ReadOnlySpan GetManagedValuesSource(T*[] managed) => throw null; + public static unsafe System.Span GetUnmanagedValuesDestination(TUnmanagedElement* unmanaged, int numElements) => throw null; + public static unsafe System.ReadOnlySpan GetUnmanagedValuesSource(TUnmanagedElement* unmanagedValue, int numElements) => throw null; public struct ManagedToUnmanagedIn { public static int BufferSize { get => throw null; } public void Free() => throw null; - unsafe public void FromManaged(T*[] array, System.Span buffer) => throw null; - public System.ReadOnlySpan GetManagedValuesSource() => throw null; + public unsafe void FromManaged(T*[] array, System.Span buffer) => throw null; + public System.ReadOnlySpan GetManagedValuesSource() => throw null; public TUnmanagedElement GetPinnableReference() => throw null; - unsafe public static System.Byte GetPinnableReference(T*[] array) => throw null; + public static unsafe byte GetPinnableReference(T*[] array) => throw null; public System.Span GetUnmanagedValuesDestination() => throw null; - // Stub generator skipped constructor - unsafe public TUnmanagedElement* ToUnmanaged() => throw null; + public unsafe TUnmanagedElement* ToUnmanaged() => throw null; } - - - unsafe public static T*[] AllocateContainerForManagedElements(TUnmanagedElement* unmanaged, int numElements) => throw null; - unsafe public static TUnmanagedElement* AllocateContainerForUnmanagedElements(T*[] managed, out int numElements) => throw null; - unsafe public static void Free(TUnmanagedElement* unmanaged) => throw null; - unsafe public static System.Span GetManagedValuesDestination(T*[] managed) => throw null; - unsafe public static System.ReadOnlySpan GetManagedValuesSource(T*[] managed) => throw null; - unsafe public static System.Span GetUnmanagedValuesDestination(TUnmanagedElement* unmanaged, int numElements) => throw null; - unsafe public static System.ReadOnlySpan GetUnmanagedValuesSource(TUnmanagedElement* unmanagedValue, int numElements) => throw null; } - public static class Utf16StringMarshaller { - unsafe public static string ConvertToManaged(System.UInt16* unmanaged) => throw null; - unsafe public static System.UInt16* ConvertToUnmanaged(string managed) => throw null; - unsafe public static void Free(System.UInt16* unmanaged) => throw null; - public static System.Char GetPinnableReference(string str) => throw null; + public static unsafe string ConvertToManaged(ushort* unmanaged) => throw null; + public static unsafe ushort* ConvertToUnmanaged(string managed) => throw null; + public static unsafe void Free(ushort* unmanaged) => throw null; + public static char GetPinnableReference(string str) => throw null; } - public static class Utf8StringMarshaller { + public static unsafe string ConvertToManaged(byte* unmanaged) => throw null; + public static unsafe byte* ConvertToUnmanaged(string managed) => throw null; + public static unsafe void Free(byte* unmanaged) => throw null; public struct ManagedToUnmanagedIn { public static int BufferSize { get => throw null; } public void Free() => throw null; - public void FromManaged(string managed, System.Span buffer) => throw null; - // Stub generator skipped constructor - unsafe public System.Byte* ToUnmanaged() => throw null; + public void FromManaged(string managed, System.Span buffer) => throw null; + public unsafe byte* ToUnmanaged() => throw null; } - - - unsafe public static string ConvertToManaged(System.Byte* unmanaged) => throw null; - unsafe public static System.Byte* ConvertToUnmanaged(string managed) => throw null; - unsafe public static void Free(System.Byte* unmanaged) => throw null; } - + } + public static class NativeLibrary + { + public static void Free(nint handle) => throw null; + public static nint GetExport(nint handle, string name) => throw null; + public static nint GetMainProgramHandle() => throw null; + public static nint Load(string libraryPath) => throw null; + public static nint Load(string libraryName, System.Reflection.Assembly assembly, System.Runtime.InteropServices.DllImportSearchPath? searchPath) => throw null; + public static void SetDllImportResolver(System.Reflection.Assembly assembly, System.Runtime.InteropServices.DllImportResolver resolver) => throw null; + public static bool TryGetExport(nint handle, string name, out nint address) => throw null; + public static bool TryLoad(string libraryPath, out nint handle) => throw null; + public static bool TryLoad(string libraryName, System.Reflection.Assembly assembly, System.Runtime.InteropServices.DllImportSearchPath? searchPath, out nint handle) => throw null; + } + public static class NativeMemory + { + public static unsafe void* AlignedAlloc(nuint byteCount, nuint alignment) => throw null; + public static unsafe void AlignedFree(void* ptr) => throw null; + public static unsafe void* AlignedRealloc(void* ptr, nuint byteCount, nuint alignment) => throw null; + public static unsafe void* Alloc(nuint byteCount) => throw null; + public static unsafe void* Alloc(nuint elementCount, nuint elementSize) => throw null; + public static unsafe void* AllocZeroed(nuint byteCount) => throw null; + public static unsafe void* AllocZeroed(nuint elementCount, nuint elementSize) => throw null; + public static unsafe void Clear(void* ptr, nuint byteCount) => throw null; + public static unsafe void Copy(void* source, void* destination, nuint byteCount) => throw null; + public static unsafe void Fill(void* ptr, nuint byteCount, byte value) => throw null; + public static unsafe void Free(void* ptr) => throw null; + public static unsafe void* Realloc(void* ptr, nuint byteCount) => throw null; + } + public struct NFloat : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPoint, System.Numerics.ISignedNumber, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions, System.Numerics.IMinMaxValue + { + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.Abs(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.Acos(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IHyperbolicFunctions.Acosh(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.AcosPi(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.Asin(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IHyperbolicFunctions.Asinh(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.AsinPi(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.Atan(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.Atan2(System.Runtime.InteropServices.NFloat y, System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.Atan2Pi(System.Runtime.InteropServices.NFloat y, System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IHyperbolicFunctions.Atanh(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.AtanPi(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.BitDecrement(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.BitIncrement(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IRootFunctions.Cbrt(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPoint.Ceiling(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumber.Clamp(System.Runtime.InteropServices.NFloat value, System.Runtime.InteropServices.NFloat min, System.Runtime.InteropServices.NFloat max) => throw null; + public int CompareTo(object obj) => throw null; + public int CompareTo(System.Runtime.InteropServices.NFloat other) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumber.CopySign(System.Runtime.InteropServices.NFloat value, System.Runtime.InteropServices.NFloat sign) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.Cos(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IHyperbolicFunctions.Cosh(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.CosPi(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; + public NFloat(double value) => throw null; + public NFloat(float value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointConstants.E { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.Epsilon { get => throw null; } + public override bool Equals(object obj) => throw null; + public bool Equals(System.Runtime.InteropServices.NFloat other) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IExponentialFunctions.Exp(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IExponentialFunctions.Exp10(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IExponentialFunctions.Exp10M1(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IExponentialFunctions.Exp2(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IExponentialFunctions.Exp2M1(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IExponentialFunctions.ExpM1(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPoint.Floor(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.FusedMultiplyAdd(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right, System.Runtime.InteropServices.NFloat addend) => throw null; + int System.Numerics.IFloatingPoint.GetExponentByteCount() => throw null; + int System.Numerics.IFloatingPoint.GetExponentShortestBitLength() => throw null; + public override int GetHashCode() => throw null; + int System.Numerics.IFloatingPoint.GetSignificandBitLength() => throw null; + int System.Numerics.IFloatingPoint.GetSignificandByteCount() => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IRootFunctions.Hypot(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.Ieee754Remainder(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static int System.Numerics.IFloatingPointIeee754.ILogB(System.Runtime.InteropServices.NFloat x) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.INumberBase.IsZero(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ILogarithmicFunctions.Log(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ILogarithmicFunctions.Log(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat newBase) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ILogarithmicFunctions.Log10(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ILogarithmicFunctions.Log10P1(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IBinaryNumber.Log2(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ILogarithmicFunctions.Log2(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ILogarithmicFunctions.Log2P1(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ILogarithmicFunctions.LogP1(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumber.Max(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.MaxMagnitude(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.MaxMagnitudeNumber(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumber.MaxNumber(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.INumber.Min(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.MinMagnitude(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.MinMagnitudeNumber(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumber.MinNumber(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.NaN { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.NegativeInfinity { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.ISignedNumber.NegativeOne { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.NegativeZero { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.One { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IAdditionOperators.operator +(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IBitwiseOperators.operator &(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IBitwiseOperators.operator |(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IAdditionOperators.operator checked +(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IDecrementOperators.operator checked --(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IDivisionOperators.operator checked /(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + public static explicit operator checked byte(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked char(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked short(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked int(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked long(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked System.Int128(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked nint(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked sbyte(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked ushort(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked uint(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked ulong(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked System.UInt128(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator checked nuint(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IIncrementOperators.operator checked ++(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IMultiplyOperators.operator checked *(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ISubtractionOperators.operator checked -(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IUnaryNegationOperators.operator checked -(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IDecrementOperators.operator --(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IDivisionOperators.operator /(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IBitwiseOperators.operator ^(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + public static explicit operator System.Runtime.InteropServices.NFloat(decimal value) => throw null; + public static explicit operator System.Runtime.InteropServices.NFloat(double value) => throw null; + public static explicit operator System.Runtime.InteropServices.NFloat(System.Int128 value) => throw null; + public static explicit operator byte(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator char(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator decimal(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator System.Half(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator System.Int128(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator short(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator int(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator long(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator nint(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator sbyte(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator float(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator System.UInt128(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator ushort(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator uint(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator ulong(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator nuint(System.Runtime.InteropServices.NFloat value) => throw null; + public static explicit operator System.Runtime.InteropServices.NFloat(System.UInt128 value) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(byte value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(char value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(short value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(int value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(long value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(nint value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(System.Half value) => throw null; + public static implicit operator double(System.Runtime.InteropServices.NFloat value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(sbyte value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(float value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(ushort value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(uint value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(ulong value) => throw null; + public static implicit operator System.Runtime.InteropServices.NFloat(nuint value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IIncrementOperators.operator ++(System.Runtime.InteropServices.NFloat value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IModulusOperators.operator %(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IMultiplyOperators.operator *(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IBitwiseOperators.operator ~(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ISubtractionOperators.operator -(System.Runtime.InteropServices.NFloat left, System.Runtime.InteropServices.NFloat right) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IUnaryNegationOperators.operator -(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IUnaryPlusOperators.operator +(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.Runtime.InteropServices.NFloat System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static System.Runtime.InteropServices.NFloat Parse(string s) => throw null; + public static System.Runtime.InteropServices.NFloat Parse(string s, System.Globalization.NumberStyles style) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static System.Runtime.InteropServices.NFloat System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointConstants.Pi { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.PositiveInfinity { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IPowerFunctions.Pow(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.ReciprocalEstimate(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.ReciprocalSqrtEstimate(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IRootFunctions.RootN(System.Runtime.InteropServices.NFloat x, int n) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPoint.Round(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPoint.Round(System.Runtime.InteropServices.NFloat x, int digits) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPoint.Round(System.Runtime.InteropServices.NFloat x, int digits, System.MidpointRounding mode) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPoint.Round(System.Runtime.InteropServices.NFloat x, System.MidpointRounding mode) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointIeee754.ScaleB(System.Runtime.InteropServices.NFloat x, int n) => throw null; + static int System.Numerics.INumber.Sign(System.Runtime.InteropServices.NFloat value) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.Sin(System.Runtime.InteropServices.NFloat x) => throw null; + static (System.Runtime.InteropServices.NFloat Sin, System.Runtime.InteropServices.NFloat Cos) System.Numerics.ITrigonometricFunctions.SinCos(System.Runtime.InteropServices.NFloat x) => throw null; + static (System.Runtime.InteropServices.NFloat SinPi, System.Runtime.InteropServices.NFloat CosPi) System.Numerics.ITrigonometricFunctions.SinCosPi(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IHyperbolicFunctions.Sinh(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.SinPi(System.Runtime.InteropServices.NFloat x) => throw null; + public static int Size { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.IRootFunctions.Sqrt(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.Tan(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IHyperbolicFunctions.Tanh(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.TanPi(System.Runtime.InteropServices.NFloat x) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPointConstants.Tau { get => throw null; } + public override string ToString() => throw null; + public string ToString(System.IFormatProvider provider) => throw null; + public string ToString(string format) => throw null; + public string ToString(string format, System.IFormatProvider provider) => throw null; + static System.Runtime.InteropServices.NFloat System.Numerics.IFloatingPoint.Truncate(System.Runtime.InteropServices.NFloat x) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.Runtime.InteropServices.NFloat result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.Runtime.InteropServices.NFloat result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.Runtime.InteropServices.NFloat result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(System.Runtime.InteropServices.NFloat value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Runtime.InteropServices.NFloat value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Runtime.InteropServices.NFloat value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Runtime.InteropServices.NFloat result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Runtime.InteropServices.NFloat result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out System.Runtime.InteropServices.NFloat result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Runtime.InteropServices.NFloat result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.Runtime.InteropServices.NFloat result) => throw null; + public static bool TryParse(string s, out System.Runtime.InteropServices.NFloat result) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteExponentBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; + public double Value { get => throw null; } + static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.Zero { get => throw null; } } namespace ObjectiveC { public static class ObjectiveCMarshal { - public enum MessageSendFunction : int + public static System.Runtime.InteropServices.GCHandle CreateReferenceTrackingHandle(object obj, out System.Span taggedMemory) => throw null; + public static unsafe void Initialize(delegate* unmanaged beginEndCallback, delegate* unmanaged isReferencedCallback, delegate* unmanaged trackedObjectEnteredFinalization, System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler unhandledExceptionPropagationHandler) => throw null; + public enum MessageSendFunction { MsgSend = 0, MsgSendFpret = 1, @@ -2079,50 +1621,289 @@ namespace System MsgSendSuper = 3, MsgSendSuperStret = 4, } - - - unsafe public delegate delegate* unmanaged UnhandledExceptionPropagationHandler(System.Exception exception, System.RuntimeMethodHandle lastMethod, out System.IntPtr context); - - - public static System.Runtime.InteropServices.GCHandle CreateReferenceTrackingHandle(object obj, out System.Span taggedMemory) => throw null; - unsafe public static void Initialize(delegate* unmanaged beginEndCallback, delegate* unmanaged isReferencedCallback, delegate* unmanaged trackedObjectEnteredFinalization, System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler unhandledExceptionPropagationHandler) => throw null; - public static void SetMessageSendCallback(System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction msgSendFunction, System.IntPtr func) => throw null; + public static void SetMessageSendCallback(System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction msgSendFunction, nint func) => throw null; public static void SetMessageSendPendingException(System.Exception exception) => throw null; + public unsafe delegate delegate* unmanaged UnhandledExceptionPropagationHandler(System.Exception exception, System.RuntimeMethodHandle lastMethod, out nint context); } - - public class ObjectiveCTrackedTypeAttribute : System.Attribute + public sealed class ObjectiveCTrackedTypeAttribute : System.Attribute { public ObjectiveCTrackedTypeAttribute() => throw null; } - + } + public sealed class OptionalAttribute : System.Attribute + { + public OptionalAttribute() => throw null; + } + public enum PosixSignal + { + SIGTSTP = -10, + SIGTTOU = -9, + SIGTTIN = -8, + SIGWINCH = -7, + SIGCONT = -6, + SIGCHLD = -5, + SIGTERM = -4, + SIGQUIT = -3, + SIGINT = -2, + SIGHUP = -1, + } + public sealed class PosixSignalContext + { + public bool Cancel { get => throw null; set { } } + public PosixSignalContext(System.Runtime.InteropServices.PosixSignal signal) => throw null; + public System.Runtime.InteropServices.PosixSignal Signal { get => throw null; } + } + public sealed class PosixSignalRegistration : System.IDisposable + { + public static System.Runtime.InteropServices.PosixSignalRegistration Create(System.Runtime.InteropServices.PosixSignal signal, System.Action handler) => throw null; + public void Dispose() => throw null; + } + public sealed class PreserveSigAttribute : System.Attribute + { + public PreserveSigAttribute() => throw null; + } + public sealed class PrimaryInteropAssemblyAttribute : System.Attribute + { + public PrimaryInteropAssemblyAttribute(int major, int minor) => throw null; + public int MajorVersion { get => throw null; } + public int MinorVersion { get => throw null; } + } + public sealed class ProgIdAttribute : System.Attribute + { + public ProgIdAttribute(string progId) => throw null; + public string Value { get => throw null; } + } + public static class RuntimeEnvironment + { + public static bool FromGlobalAccessCache(System.Reflection.Assembly a) => throw null; + public static string GetRuntimeDirectory() => throw null; + public static nint GetRuntimeInterfaceAsIntPtr(System.Guid clsid, System.Guid riid) => throw null; + public static object GetRuntimeInterfaceAsObject(System.Guid clsid, System.Guid riid) => throw null; + public static string GetSystemVersion() => throw null; + public static string SystemConfigurationFile { get => throw null; } + } + public class SafeArrayRankMismatchException : System.SystemException + { + public SafeArrayRankMismatchException() => throw null; + protected SafeArrayRankMismatchException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public SafeArrayRankMismatchException(string message) => throw null; + public SafeArrayRankMismatchException(string message, System.Exception inner) => throw null; + } + public class SafeArrayTypeMismatchException : System.SystemException + { + public SafeArrayTypeMismatchException() => throw null; + protected SafeArrayTypeMismatchException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public SafeArrayTypeMismatchException(string message) => throw null; + public SafeArrayTypeMismatchException(string message, System.Exception inner) => throw null; + } + public class SEHException : System.Runtime.InteropServices.ExternalException + { + public virtual bool CanResume() => throw null; + public SEHException() => throw null; + protected SEHException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public SEHException(string message) => throw null; + public SEHException(string message, System.Exception inner) => throw null; + } + public class StandardOleMarshalObject : System.MarshalByRefObject + { + protected StandardOleMarshalObject() => throw null; + } + public enum StringMarshalling + { + Custom = 0, + Utf8 = 1, + Utf16 = 2, + } + public sealed class TypeIdentifierAttribute : System.Attribute + { + public TypeIdentifierAttribute() => throw null; + public TypeIdentifierAttribute(string scope, string identifier) => throw null; + public string Identifier { get => throw null; } + public string Scope { get => throw null; } + } + public sealed class TypeLibFuncAttribute : System.Attribute + { + public TypeLibFuncAttribute(short flags) => throw null; + public TypeLibFuncAttribute(System.Runtime.InteropServices.TypeLibFuncFlags flags) => throw null; + public System.Runtime.InteropServices.TypeLibFuncFlags Value { get => throw null; } + } + [System.Flags] + public enum TypeLibFuncFlags + { + FRestricted = 1, + FSource = 2, + FBindable = 4, + FRequestEdit = 8, + FDisplayBind = 16, + FDefaultBind = 32, + FHidden = 64, + FUsesGetLastError = 128, + FDefaultCollelem = 256, + FUiDefault = 512, + FNonBrowsable = 1024, + FReplaceable = 2048, + FImmediateBind = 4096, + } + public sealed class TypeLibImportClassAttribute : System.Attribute + { + public TypeLibImportClassAttribute(System.Type importClass) => throw null; + public string Value { get => throw null; } + } + public sealed class TypeLibTypeAttribute : System.Attribute + { + public TypeLibTypeAttribute(short flags) => throw null; + public TypeLibTypeAttribute(System.Runtime.InteropServices.TypeLibTypeFlags flags) => throw null; + public System.Runtime.InteropServices.TypeLibTypeFlags Value { get => throw null; } + } + [System.Flags] + public enum TypeLibTypeFlags + { + FAppObject = 1, + FCanCreate = 2, + FLicensed = 4, + FPreDeclId = 8, + FHidden = 16, + FControl = 32, + FDual = 64, + FNonExtensible = 128, + FOleAutomation = 256, + FRestricted = 512, + FAggregatable = 1024, + FReplaceable = 2048, + FDispatchable = 4096, + FReverseBind = 8192, + } + public sealed class TypeLibVarAttribute : System.Attribute + { + public TypeLibVarAttribute(short flags) => throw null; + public TypeLibVarAttribute(System.Runtime.InteropServices.TypeLibVarFlags flags) => throw null; + public System.Runtime.InteropServices.TypeLibVarFlags Value { get => throw null; } + } + [System.Flags] + public enum TypeLibVarFlags + { + FReadOnly = 1, + FSource = 2, + FBindable = 4, + FRequestEdit = 8, + FDisplayBind = 16, + FDefaultBind = 32, + FHidden = 64, + FRestricted = 128, + FDefaultCollelem = 256, + FUiDefault = 512, + FNonBrowsable = 1024, + FReplaceable = 2048, + FImmediateBind = 4096, + } + public sealed class TypeLibVersionAttribute : System.Attribute + { + public TypeLibVersionAttribute(int major, int minor) => throw null; + public int MajorVersion { get => throw null; } + public int MinorVersion { get => throw null; } + } + public sealed class UnknownWrapper + { + public UnknownWrapper(object obj) => throw null; + public object WrappedObject { get => throw null; } + } + public sealed class UnmanagedCallConvAttribute : System.Attribute + { + public System.Type[] CallConvs; + public UnmanagedCallConvAttribute() => throw null; + } + public sealed class UnmanagedCallersOnlyAttribute : System.Attribute + { + public System.Type[] CallConvs; + public UnmanagedCallersOnlyAttribute() => throw null; + public string EntryPoint; + } + public sealed class UnmanagedFunctionPointerAttribute : System.Attribute + { + public bool BestFitMapping; + public System.Runtime.InteropServices.CallingConvention CallingConvention { get => throw null; } + public System.Runtime.InteropServices.CharSet CharSet; + public UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention callingConvention) => throw null; + public bool SetLastError; + public bool ThrowOnUnmappableChar; + } + public enum VarEnum + { + VT_EMPTY = 0, + VT_NULL = 1, + VT_I2 = 2, + VT_I4 = 3, + VT_R4 = 4, + VT_R8 = 5, + VT_CY = 6, + VT_DATE = 7, + VT_BSTR = 8, + VT_DISPATCH = 9, + VT_ERROR = 10, + VT_BOOL = 11, + VT_VARIANT = 12, + VT_UNKNOWN = 13, + VT_DECIMAL = 14, + VT_I1 = 16, + VT_UI1 = 17, + VT_UI2 = 18, + VT_UI4 = 19, + VT_I8 = 20, + VT_UI8 = 21, + VT_INT = 22, + VT_UINT = 23, + VT_VOID = 24, + VT_HRESULT = 25, + VT_PTR = 26, + VT_SAFEARRAY = 27, + VT_CARRAY = 28, + VT_USERDEFINED = 29, + VT_LPSTR = 30, + VT_LPWSTR = 31, + VT_RECORD = 36, + VT_FILETIME = 64, + VT_BLOB = 65, + VT_STREAM = 66, + VT_STORAGE = 67, + VT_STREAMED_OBJECT = 68, + VT_STORED_OBJECT = 69, + VT_BLOB_OBJECT = 70, + VT_CF = 71, + VT_CLSID = 72, + VT_VECTOR = 4096, + VT_ARRAY = 8192, + VT_BYREF = 16384, + } + public sealed class VariantWrapper + { + public VariantWrapper(object obj) => throw null; + public object WrappedObject { get => throw null; } } } } namespace Security { - public class SecureString : System.IDisposable + public sealed class SecureString : System.IDisposable { - public void AppendChar(System.Char c) => throw null; + public void AppendChar(char c) => throw null; public void Clear() => throw null; public System.Security.SecureString Copy() => throw null; + public SecureString() => throw null; + public unsafe SecureString(char* value, int length) => throw null; public void Dispose() => throw null; - public void InsertAt(int index, System.Char c) => throw null; + public void InsertAt(int index, char c) => throw null; public bool IsReadOnly() => throw null; public int Length { get => throw null; } public void MakeReadOnly() => throw null; public void RemoveAt(int index) => throw null; - public SecureString() => throw null; - unsafe public SecureString(System.Char* value, int length) => throw null; - public void SetAt(int index, System.Char c) => throw null; + public void SetAt(int index, char c) => throw null; } - public static class SecureStringMarshal { - public static System.IntPtr SecureStringToCoTaskMemAnsi(System.Security.SecureString s) => throw null; - public static System.IntPtr SecureStringToCoTaskMemUnicode(System.Security.SecureString s) => throw null; - public static System.IntPtr SecureStringToGlobalAllocAnsi(System.Security.SecureString s) => throw null; - public static System.IntPtr SecureStringToGlobalAllocUnicode(System.Security.SecureString s) => throw null; + public static nint SecureStringToCoTaskMemAnsi(System.Security.SecureString s) => throw null; + public static nint SecureStringToCoTaskMemUnicode(System.Security.SecureString s) => throw null; + public static nint SecureStringToGlobalAllocAnsi(System.Security.SecureString s) => throw null; + public static nint SecureStringToGlobalAllocUnicode(System.Security.SecureString s) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Intrinsics.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Intrinsics.cs index f210bdeba43..872599778c1 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Intrinsics.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Intrinsics.cs @@ -1,686 +1,228 @@ // This file contains auto-generated code. // Generated from `System.Runtime.Intrinsics, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Runtime { namespace Intrinsics { - public static class Vector128 - { - public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 As(this System.Runtime.Intrinsics.Vector128 vector) where TFrom : struct where TTo : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsByte(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsDouble(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsInt16(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsInt32(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsInt64(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsNInt(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsNUInt(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsSByte(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsSingle(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsUInt16(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsUInt32(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsUInt64(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 AsVector128(this System.Numerics.Vector2 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AsVector128(this System.Numerics.Vector3 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AsVector128(this System.Numerics.Vector4 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AsVector128(this System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector2 AsVector2(this System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Numerics.Vector3 AsVector3(this System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Numerics.Vector4 AsVector4(this System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Numerics.Vector AsVector(this System.Runtime.Intrinsics.Vector128 value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseAnd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseOr(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Ceiling(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 Ceiling(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConditionalSelect(System.Runtime.Intrinsics.Vector128 condition, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToDouble(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToDouble(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToInt32(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToInt64(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToSingle(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToSingle(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static void CopyTo(this System.Runtime.Intrinsics.Vector128 vector, System.Span destination) where T : struct => throw null; - public static void CopyTo(this System.Runtime.Intrinsics.Vector128 vector, T[] destination) where T : struct => throw null; - public static void CopyTo(this System.Runtime.Intrinsics.Vector128 vector, T[] destination, int startIndex) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.IntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.UIntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Byte e0, System.Byte e1, System.Byte e2, System.Byte e3, System.Byte e4, System.Byte e5, System.Byte e6, System.Byte e7, System.Byte e8, System.Byte e9, System.Byte e10, System.Byte e11, System.Byte e12, System.Byte e13, System.Byte e14, System.Byte e15) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(double value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(double e0, double e1) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(float value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(float e0, float e1, float e2, float e3) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(int value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(int e0, int e1, int e2, int e3) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Int64 e0, System.Int64 e1) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.SByte e0, System.SByte e1, System.SByte e2, System.SByte e3, System.SByte e4, System.SByte e5, System.SByte e6, System.SByte e7, System.SByte e8, System.SByte e9, System.SByte e10, System.SByte e11, System.SByte e12, System.SByte e13, System.SByte e14, System.SByte e15) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.Int16 e0, System.Int16 e1, System.Int16 e2, System.Int16 e3, System.Int16 e4, System.Int16 e5, System.Int16 e6, System.Int16 e7) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.UInt32 e0, System.UInt32 e1, System.UInt32 e2, System.UInt32 e3) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.UInt64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.UInt64 e0, System.UInt64 e1) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.UInt16 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.UInt16 e0, System.UInt16 e1, System.UInt16 e2, System.UInt16 e3, System.UInt16 e4, System.UInt16 e5, System.UInt16 e6, System.UInt16 e7) => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(System.ReadOnlySpan values) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(T value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(T[] values) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Create(T[] values, int index) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(System.IntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(System.UIntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(double value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(float value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(int value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(System.UInt64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalar(System.UInt16 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(System.IntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(System.UIntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(double value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(float value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(int value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(System.UInt64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(System.UInt16 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Divide(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static T Dot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Equals(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool EqualsAll(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool EqualsAny(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.UInt32 ExtractMostSignificantBits(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Floor(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 Floor(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static T GetElement(this System.Runtime.Intrinsics.Vector128 vector, int index) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 GetLower(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 GetUpper(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 GreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool GreaterThanAll(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool GreaterThanAny(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 GreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool GreaterThanOrEqualAll(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool GreaterThanOrEqualAny(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool IsHardwareAccelerated { get => throw null; } - public static System.Runtime.Intrinsics.Vector128 LessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool LessThanAll(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool LessThanAny(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 LessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool LessThanOrEqualAll(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static bool LessThanOrEqualAny(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 Load(T* source) where T : unmanaged => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAligned(T* source) where T : unmanaged => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedNonTemporal(T* source) where T : unmanaged => throw null; - public static System.Runtime.Intrinsics.Vector128 LoadUnsafe(ref T source) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 LoadUnsafe(ref T source, System.UIntPtr elementOffset) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(T left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, T right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 OnesComplement(System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; - public static System.Runtime.Intrinsics.Vector128 Sqrt(System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - unsafe public static void Store(this System.Runtime.Intrinsics.Vector128 source, T* destination) where T : unmanaged => throw null; - unsafe public static void StoreAligned(this System.Runtime.Intrinsics.Vector128 source, T* destination) where T : unmanaged => throw null; - unsafe public static void StoreAlignedNonTemporal(this System.Runtime.Intrinsics.Vector128 source, T* destination) where T : unmanaged => throw null; - public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector128 source, ref T destination) where T : struct => throw null; - public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector128 source, ref T destination, System.UIntPtr elementOffset) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - public static T Sum(System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static T ToScalar(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 ToVector256(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 ToVector256Unsafe(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; - public static bool TryCopyTo(this System.Runtime.Intrinsics.Vector128 vector, System.Span destination) where T : struct => throw null; - public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; - public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; - public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; - public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; - public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; - public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; - public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; - public static System.Runtime.Intrinsics.Vector128 WithElement(this System.Runtime.Intrinsics.Vector128 vector, int index, T value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 WithLower(this System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector64 value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 WithUpper(this System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector64 value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; - } - - public struct Vector128 : System.IEquatable> where T : struct - { - public static bool operator !=(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator &(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator *(T left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator *(System.Runtime.Intrinsics.Vector128 left, T right) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator *(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator +(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator +(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator -(System.Runtime.Intrinsics.Vector128 vector) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator -(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator /(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool operator ==(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AllBitsSet { get => throw null; } - public static int Count { get => throw null; } - public bool Equals(System.Runtime.Intrinsics.Vector128 other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public static bool IsSupported { get => throw null; } - public T this[int index] { get => throw null; } - public override string ToString() => throw null; - // Stub generator skipped constructor - public static System.Runtime.Intrinsics.Vector128 Zero { get => throw null; } - public static System.Runtime.Intrinsics.Vector128 operator ^(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator |(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 operator ~(System.Runtime.Intrinsics.Vector128 vector) => throw null; - } - - public static class Vector256 - { - public static System.Runtime.Intrinsics.Vector256 Abs(System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 As(this System.Runtime.Intrinsics.Vector256 vector) where TFrom : struct where TTo : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsByte(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsDouble(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsInt16(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsInt32(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsInt64(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsNInt(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsNUInt(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsSByte(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsSingle(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsUInt16(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsUInt32(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsUInt64(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 AsVector256(this System.Numerics.Vector value) where T : struct => throw null; - public static System.Numerics.Vector AsVector(this System.Runtime.Intrinsics.Vector256 value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 BitwiseAnd(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 BitwiseOr(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Ceiling(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 Ceiling(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConditionalSelect(System.Runtime.Intrinsics.Vector256 condition, System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToDouble(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToDouble(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToInt32(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToInt64(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToSingle(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToSingle(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToUInt32(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToUInt64(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static void CopyTo(this System.Runtime.Intrinsics.Vector256 vector, System.Span destination) where T : struct => throw null; - public static void CopyTo(this System.Runtime.Intrinsics.Vector256 vector, T[] destination) where T : struct => throw null; - public static void CopyTo(this System.Runtime.Intrinsics.Vector256 vector, T[] destination, int startIndex) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.IntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.UIntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Byte e0, System.Byte e1, System.Byte e2, System.Byte e3, System.Byte e4, System.Byte e5, System.Byte e6, System.Byte e7, System.Byte e8, System.Byte e9, System.Byte e10, System.Byte e11, System.Byte e12, System.Byte e13, System.Byte e14, System.Byte e15, System.Byte e16, System.Byte e17, System.Byte e18, System.Byte e19, System.Byte e20, System.Byte e21, System.Byte e22, System.Byte e23, System.Byte e24, System.Byte e25, System.Byte e26, System.Byte e27, System.Byte e28, System.Byte e29, System.Byte e30, System.Byte e31) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(double value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(double e0, double e1, double e2, double e3) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(float value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(float e0, float e1, float e2, float e3, float e4, float e5, float e6, float e7) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(int value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(int e0, int e1, int e2, int e3, int e4, int e5, int e6, int e7) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Int64 e0, System.Int64 e1, System.Int64 e2, System.Int64 e3) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.SByte e0, System.SByte e1, System.SByte e2, System.SByte e3, System.SByte e4, System.SByte e5, System.SByte e6, System.SByte e7, System.SByte e8, System.SByte e9, System.SByte e10, System.SByte e11, System.SByte e12, System.SByte e13, System.SByte e14, System.SByte e15, System.SByte e16, System.SByte e17, System.SByte e18, System.SByte e19, System.SByte e20, System.SByte e21, System.SByte e22, System.SByte e23, System.SByte e24, System.SByte e25, System.SByte e26, System.SByte e27, System.SByte e28, System.SByte e29, System.SByte e30, System.SByte e31) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.Int16 e0, System.Int16 e1, System.Int16 e2, System.Int16 e3, System.Int16 e4, System.Int16 e5, System.Int16 e6, System.Int16 e7, System.Int16 e8, System.Int16 e9, System.Int16 e10, System.Int16 e11, System.Int16 e12, System.Int16 e13, System.Int16 e14, System.Int16 e15) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.UInt32 e0, System.UInt32 e1, System.UInt32 e2, System.UInt32 e3, System.UInt32 e4, System.UInt32 e5, System.UInt32 e6, System.UInt32 e7) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.UInt64 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.UInt64 e0, System.UInt64 e1, System.UInt64 e2, System.UInt64 e3) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.UInt16 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.UInt16 e0, System.UInt16 e1, System.UInt16 e2, System.UInt16 e3, System.UInt16 e4, System.UInt16 e5, System.UInt16 e6, System.UInt16 e7, System.UInt16 e8, System.UInt16 e9, System.UInt16 e10, System.UInt16 e11, System.UInt16 e12, System.UInt16 e13, System.UInt16 e14, System.UInt16 e15) => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(System.ReadOnlySpan values) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(T value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(T[] values) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Create(T[] values, int index) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(System.IntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(System.UIntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(double value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(float value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(int value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(System.UInt64 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalar(System.UInt16 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(System.IntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(System.UIntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(double value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(float value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(int value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(System.UInt64 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(System.UInt16 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Divide(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static T Dot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Equals(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool EqualsAll(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool EqualsAny(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.UInt32 ExtractMostSignificantBits(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Floor(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 Floor(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static T GetElement(this System.Runtime.Intrinsics.Vector256 vector, int index) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 GetLower(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 GetUpper(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 GreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool GreaterThanAll(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool GreaterThanAny(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 GreaterThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool GreaterThanOrEqualAll(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool GreaterThanOrEqualAny(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool IsHardwareAccelerated { get => throw null; } - public static System.Runtime.Intrinsics.Vector256 LessThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool LessThanAll(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool LessThanAny(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 LessThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool LessThanOrEqualAll(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static bool LessThanOrEqualAny(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 Load(T* source) where T : unmanaged => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAligned(T* source) where T : unmanaged => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedNonTemporal(T* source) where T : unmanaged => throw null; - public static System.Runtime.Intrinsics.Vector256 LoadUnsafe(ref T source) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 LoadUnsafe(ref T source, System.UIntPtr elementOffset) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Multiply(T left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Multiply(System.Runtime.Intrinsics.Vector256 left, T right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Multiply(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; - public static System.Runtime.Intrinsics.Vector256 Negate(System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 OnesComplement(System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; - public static System.Runtime.Intrinsics.Vector256 Sqrt(System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - unsafe public static void Store(this System.Runtime.Intrinsics.Vector256 source, T* destination) where T : unmanaged => throw null; - unsafe public static void StoreAligned(this System.Runtime.Intrinsics.Vector256 source, T* destination) where T : unmanaged => throw null; - unsafe public static void StoreAlignedNonTemporal(this System.Runtime.Intrinsics.Vector256 source, T* destination) where T : unmanaged => throw null; - public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector256 source, ref T destination) where T : struct => throw null; - public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector256 source, ref T destination, System.UIntPtr elementOffset) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - public static T Sum(System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static T ToScalar(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; - public static bool TryCopyTo(this System.Runtime.Intrinsics.Vector256 vector, System.Span destination) where T : struct => throw null; - public static (System.Runtime.Intrinsics.Vector256, System.Runtime.Intrinsics.Vector256) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; - public static (System.Runtime.Intrinsics.Vector256, System.Runtime.Intrinsics.Vector256) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; - public static (System.Runtime.Intrinsics.Vector256, System.Runtime.Intrinsics.Vector256) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; - public static (System.Runtime.Intrinsics.Vector256, System.Runtime.Intrinsics.Vector256) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; - public static (System.Runtime.Intrinsics.Vector256, System.Runtime.Intrinsics.Vector256) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; - public static (System.Runtime.Intrinsics.Vector256, System.Runtime.Intrinsics.Vector256) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; - public static (System.Runtime.Intrinsics.Vector256, System.Runtime.Intrinsics.Vector256) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; - public static System.Runtime.Intrinsics.Vector256 WithElement(this System.Runtime.Intrinsics.Vector256 vector, int index, T value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 WithLower(this System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector128 value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 WithUpper(this System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector128 value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; - } - - public struct Vector256 : System.IEquatable> where T : struct - { - public static bool operator !=(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator &(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator *(T left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator *(System.Runtime.Intrinsics.Vector256 left, T right) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator *(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator +(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator +(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator -(System.Runtime.Intrinsics.Vector256 vector) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator -(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator /(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool operator ==(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AllBitsSet { get => throw null; } - public static int Count { get => throw null; } - public bool Equals(System.Runtime.Intrinsics.Vector256 other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public static bool IsSupported { get => throw null; } - public T this[int index] { get => throw null; } - public override string ToString() => throw null; - // Stub generator skipped constructor - public static System.Runtime.Intrinsics.Vector256 Zero { get => throw null; } - public static System.Runtime.Intrinsics.Vector256 operator ^(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator |(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 operator ~(System.Runtime.Intrinsics.Vector256 vector) => throw null; - } - - public static class Vector64 - { - public static System.Runtime.Intrinsics.Vector64 Abs(System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AndNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 As(this System.Runtime.Intrinsics.Vector64 vector) where TFrom : struct where TTo : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsByte(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsDouble(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsInt16(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsInt32(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsInt64(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsNInt(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsNUInt(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsSByte(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsSingle(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsUInt16(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsUInt32(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 AsUInt64(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseAnd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseOr(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Ceiling(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 Ceiling(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConditionalSelect(System.Runtime.Intrinsics.Vector64 condition, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToDouble(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToDouble(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToInt32(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToInt64(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToSingle(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToSingle(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static void CopyTo(this System.Runtime.Intrinsics.Vector64 vector, System.Span destination) where T : struct => throw null; - public static void CopyTo(this System.Runtime.Intrinsics.Vector64 vector, T[] destination) where T : struct => throw null; - public static void CopyTo(this System.Runtime.Intrinsics.Vector64 vector, T[] destination, int startIndex) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.IntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.UIntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.Byte e0, System.Byte e1, System.Byte e2, System.Byte e3, System.Byte e4, System.Byte e5, System.Byte e6, System.Byte e7) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(double value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(float value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(float e0, float e1) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(int value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(int e0, int e1) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.SByte e0, System.SByte e1, System.SByte e2, System.SByte e3, System.SByte e4, System.SByte e5, System.SByte e6, System.SByte e7) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.Int16 e0, System.Int16 e1, System.Int16 e2, System.Int16 e3) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.UInt32 e0, System.UInt32 e1) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.UInt64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.UInt16 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.UInt16 e0, System.UInt16 e1, System.UInt16 e2, System.UInt16 e3) => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(System.ReadOnlySpan values) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(T value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(T[] values) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Create(T[] values, int index) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(System.IntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(System.UIntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(double value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(float value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(int value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(System.UInt64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalar(System.UInt16 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(System.IntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(System.UIntPtr value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(float value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(int value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(System.UInt16 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Divide(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static T Dot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Equals(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool EqualsAll(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool EqualsAny(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.UInt32 ExtractMostSignificantBits(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Floor(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 Floor(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static T GetElement(this System.Runtime.Intrinsics.Vector64 vector, int index) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 GreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool GreaterThanAll(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool GreaterThanAny(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 GreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool GreaterThanOrEqualAll(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool GreaterThanOrEqualAny(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool IsHardwareAccelerated { get => throw null; } - public static System.Runtime.Intrinsics.Vector64 LessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool LessThanAll(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool LessThanAny(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 LessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool LessThanOrEqualAll(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static bool LessThanOrEqualAny(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 Load(T* source) where T : unmanaged => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAligned(T* source) where T : unmanaged => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAlignedNonTemporal(T* source) where T : unmanaged => throw null; - public static System.Runtime.Intrinsics.Vector64 LoadUnsafe(ref T source) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 LoadUnsafe(ref T source, System.UIntPtr elementOffset) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Multiply(T left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, T right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; - public static System.Runtime.Intrinsics.Vector64 Negate(System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 OnesComplement(System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; - public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; - public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; - public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; - public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; - public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; - public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; - public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; - public static System.Runtime.Intrinsics.Vector64 Sqrt(System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - unsafe public static void Store(this System.Runtime.Intrinsics.Vector64 source, T* destination) where T : unmanaged => throw null; - unsafe public static void StoreAligned(this System.Runtime.Intrinsics.Vector64 source, T* destination) where T : unmanaged => throw null; - unsafe public static void StoreAlignedNonTemporal(this System.Runtime.Intrinsics.Vector64 source, T* destination) where T : unmanaged => throw null; - public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector64 source, ref T destination) where T : struct => throw null; - public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector64 source, ref T destination, System.UIntPtr elementOffset) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - public static T Sum(System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static T ToScalar(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 ToVector128(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector128 ToVector128Unsafe(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; - public static bool TryCopyTo(this System.Runtime.Intrinsics.Vector64 vector, System.Span destination) where T : struct => throw null; - public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; - public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; - public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; - public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; - public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; - public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; - public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; - public static System.Runtime.Intrinsics.Vector64 WithElement(this System.Runtime.Intrinsics.Vector64 vector, int index, T value) where T : struct => throw null; - public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; - } - - public struct Vector64 : System.IEquatable> where T : struct - { - public static bool operator !=(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator &(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator *(T left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator *(System.Runtime.Intrinsics.Vector64 left, T right) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator *(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator +(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator +(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator -(System.Runtime.Intrinsics.Vector64 vector) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator -(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator /(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static bool operator ==(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AllBitsSet { get => throw null; } - public static int Count { get => throw null; } - public bool Equals(System.Runtime.Intrinsics.Vector64 other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public static bool IsSupported { get => throw null; } - public T this[int index] { get => throw null; } - public override string ToString() => throw null; - // Stub generator skipped constructor - public static System.Runtime.Intrinsics.Vector64 Zero { get => throw null; } - public static System.Runtime.Intrinsics.Vector64 operator ^(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator |(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 operator ~(System.Runtime.Intrinsics.Vector64 vector) => throw null; - } - namespace Arm { public abstract class AdvSimd : System.Runtime.Intrinsics.Arm.ArmBase { + public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Abs(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Abs(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Abs(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Abs(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteCompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteCompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteCompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteCompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteCompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteCompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteCompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteCompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public abstract class Arm64 : System.Runtime.Intrinsics.Arm.ArmBase.Arm64 { public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 AbsoluteCompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 AbsoluteCompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 AbsoluteCompareGreaterThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; @@ -696,278 +238,283 @@ namespace System public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AbsSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AbsScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddAcrossWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 AddPairwiseScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddPairwiseScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 AddPairwiseScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - internal Arm64() => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Ceiling(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqualScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareLessThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareLessThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThanScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareTestScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareTestScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareTestScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToDouble(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToDouble(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareTestScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareTestScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToDouble(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToDouble(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToDouble(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToDoubleScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToDoubleScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToDoubleScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToDoubleScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToDoubleUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToInt64RoundAwayFromZero(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToInt64RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToInt64RoundToEven(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToInt64RoundToEvenScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToInt64RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToInt64RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToInt64RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToInt64RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToInt64RoundToZero(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToInt64RoundToZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToInt64RoundAwayFromZero(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToInt64RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToInt64RoundToEven(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToInt64RoundToEvenScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToInt64RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToInt64RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToInt64RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToInt64RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToInt64RoundToZero(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToInt64RoundToZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ConvertToSingleLower(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ConvertToSingleRoundToOddLower(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToSingleRoundToOddUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToSingleUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64RoundAwayFromZero(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64RoundToEven(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64RoundToEvenScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64RoundToZero(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64RoundToZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64RoundAwayFromZero(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64RoundToEven(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64RoundToEvenScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64RoundToZero(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64RoundToZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Divide(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Divide(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 Divide(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(double value) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(System.UInt64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(long value) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(ulong value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Floor(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddByScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddByScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddByScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector128 value, System.Byte valueIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value, System.Byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertSelectedScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector128 value, byte valueIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 InsertSelectedScalar(System.Runtime.Intrinsics.Vector64 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value, byte valueIndex) => throw null; public static bool IsSupported { get => throw null; } - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(System.UInt64* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairScalarVector64(float* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairScalarVector64(int* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairScalarVector64(System.UInt32* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairScalarVector64NonTemporal(float* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairScalarVector64NonTemporal(int* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairScalarVector64NonTemporal(System.UInt32* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128(System.Byte* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128(double* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128(float* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128(int* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128(System.Int64* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128(System.SByte* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128(System.Int16* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128(System.UInt32* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128(System.UInt64* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128(System.UInt16* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128NonTemporal(System.Byte* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128NonTemporal(double* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128NonTemporal(float* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128NonTemporal(int* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128NonTemporal(System.Int64* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128NonTemporal(System.SByte* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128NonTemporal(System.Int16* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128NonTemporal(System.UInt32* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128NonTemporal(System.UInt64* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector128, System.Runtime.Intrinsics.Vector128) LoadPairVector128NonTemporal(System.UInt16* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64(System.Byte* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64(double* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64(float* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64(int* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64(System.Int64* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64(System.SByte* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64(System.Int16* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64(System.UInt32* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64(System.UInt64* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64(System.UInt16* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64NonTemporal(System.Byte* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64NonTemporal(double* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64NonTemporal(float* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64NonTemporal(int* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64NonTemporal(System.Int64* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64NonTemporal(System.SByte* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64NonTemporal(System.Int16* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64NonTemporal(System.UInt32* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64NonTemporal(System.UInt64* address) => throw null; - unsafe public static (System.Runtime.Intrinsics.Vector64, System.Runtime.Intrinsics.Vector64) LoadPairVector64NonTemporal(System.UInt16* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(ulong* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64(int* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64(float* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64(uint* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64NonTemporal(int* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64NonTemporal(float* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairScalarVector64NonTemporal(uint* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(byte* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(double* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(short* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(int* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(long* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(sbyte* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(float* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(ushort* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(uint* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128(ulong* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(byte* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(double* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(short* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(int* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(long* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(sbyte* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(float* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(ushort* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(uint* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector128 Value1, System.Runtime.Intrinsics.Vector128 Value2) LoadPairVector128NonTemporal(ulong* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(byte* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(double* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(short* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(int* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(long* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(sbyte* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(float* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(ushort* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(uint* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64(ulong* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(byte* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(double* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(short* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(int* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(long* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(sbyte* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(float* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(ushort* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(uint* address) => throw null; + public static unsafe (System.Runtime.Intrinsics.Vector64 Value1, System.Runtime.Intrinsics.Vector64 Value2) LoadPairVector64NonTemporal(ulong* address) => throw null; public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 MaxNumber(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxNumberAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 MaxNumberPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; @@ -975,30 +522,30 @@ namespace System public static System.Runtime.Intrinsics.Vector64 MaxNumberPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxNumberPairwiseScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxNumberPairwiseScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MaxPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxPairwiseScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxPairwiseScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinAcross(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 MinNumber(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MinNumberAcross(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 MinNumberPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; @@ -1006,74 +553,74 @@ namespace System public static System.Runtime.Intrinsics.Vector64 MinNumberPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MinNumberPairwiseScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 MinNumberPairwiseScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MinPairwise(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MinPairwiseScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 MinPairwiseScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 MinScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MinScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingSaturateHighScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingSaturateHighScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingSaturateHighScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningAndAddSaturateScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningAndAddSaturateScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningAndSubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningAndSubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningAndAddSaturateScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningAndAddSaturateScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningAndSubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningAndSubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningSaturateScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyExtended(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyExtended(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyExtended(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyExtendedByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyExtendedBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyExtendedBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyExtendedBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyExtendedBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyExtendedBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyExtendedBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyExtendedScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingSaturateHighScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingSaturateHighScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingSaturateHighScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 NegateSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 NegateSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 NegateSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 NegateSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 NegateSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 NegateSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 NegateSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 NegateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 NegateSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 NegateSaturateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 NegateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ReciprocalEstimate(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ReciprocalEstimateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ReciprocalEstimateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; @@ -1088,569 +635,357 @@ namespace System public static System.Runtime.Intrinsics.Vector128 ReciprocalStep(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 ReciprocalStepScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 ReciprocalStepScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElementBits(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElementBits(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElementBits(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElementBits(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElementBits(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElementBits(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElementBits(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElementBits(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundAwayFromZero(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundToNearest(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundToZero(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; public static System.Runtime.Intrinsics.Vector128 Sqrt(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Sqrt(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 Sqrt(System.Runtime.Intrinsics.Vector64 value) => throw null; - unsafe public static void StorePair(System.Byte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePair(System.Byte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePair(double* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePair(double* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePair(float* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePair(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePair(int* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePair(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePair(System.Int64* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePair(System.Int64* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePair(System.SByte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePair(System.SByte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePair(System.Int16* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePair(System.Int16* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePair(System.UInt32* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePair(System.UInt32* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePair(System.UInt64* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePair(System.UInt64* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePair(System.UInt16* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePair(System.UInt16* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.Byte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.Byte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairNonTemporal(double* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePairNonTemporal(double* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairNonTemporal(float* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePairNonTemporal(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairNonTemporal(int* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePairNonTemporal(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.Int64* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.Int64* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.SByte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.SByte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.Int16* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.Int16* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.UInt32* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.UInt32* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.UInt64* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.UInt64* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.UInt16* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; - unsafe public static void StorePairNonTemporal(System.UInt16* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairScalar(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairScalar(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairScalar(System.UInt32* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairScalarNonTemporal(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairScalarNonTemporal(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; - unsafe public static void StorePairScalarNonTemporal(System.UInt32* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePair(byte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePair(byte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePair(double* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePair(double* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePair(short* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePair(short* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePair(int* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePair(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePair(long* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePair(long* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePair(sbyte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePair(sbyte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePair(float* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePair(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePair(ushort* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePair(ushort* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePair(uint* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePair(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePair(ulong* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePair(ulong* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairNonTemporal(byte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePairNonTemporal(byte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairNonTemporal(double* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePairNonTemporal(double* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairNonTemporal(short* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePairNonTemporal(short* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairNonTemporal(int* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePairNonTemporal(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairNonTemporal(long* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePairNonTemporal(long* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePairNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairNonTemporal(float* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePairNonTemporal(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePairNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairNonTemporal(uint* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePairNonTemporal(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector128 value1, System.Runtime.Intrinsics.Vector128 value2) => throw null; + public static unsafe void StorePairNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairScalar(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairScalar(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairScalar(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairScalarNonTemporal(int* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairScalarNonTemporal(float* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; + public static unsafe void StorePairScalarNonTemporal(uint* address, System.Runtime.Intrinsics.Vector64 value1, System.Runtime.Intrinsics.Vector64 value2) => throw null; public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 TransposeOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 TransposeOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipEven(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipEven(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnzipOdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 VectorTableLookup(System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector128 byteIndexes) => throw null; - public static System.Runtime.Intrinsics.Vector128 VectorTableLookup(System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector128 byteIndexes) => throw null; - public static System.Runtime.Intrinsics.Vector128 VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128 defaultValues, System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector128 byteIndexes) => throw null; - public static System.Runtime.Intrinsics.Vector128 VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128 defaultValues, System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector128 byteIndexes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 UnzipOdd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 VectorTableLookup(System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector128 byteIndexes) => throw null; + public static System.Runtime.Intrinsics.Vector128 VectorTableLookup(System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector128 byteIndexes) => throw null; + public static System.Runtime.Intrinsics.Vector128 VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128 defaultValues, System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector128 byteIndexes) => throw null; + public static System.Runtime.Intrinsics.Vector128 VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128 defaultValues, System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector128 byteIndexes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZipLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 ZipLow(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; } - - - public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Abs(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Abs(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Abs(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Abs(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteCompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteCompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteCompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteCompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteCompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteCompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteCompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteCompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifference(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifference(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWidening(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWidening(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningAndAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddPairwiseWideningScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 AddScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - internal AdvSimd() => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 And(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseClear(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseClear(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseSelect(System.Runtime.Intrinsics.Vector128 select, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseSelect(System.Runtime.Intrinsics.Vector64 select, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Ceiling(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 Ceiling(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 CeilingScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 CeilingScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareTest(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 CompareTest(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToInt32RoundAwayFromZero(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ConvertToInt32RoundAwayFromZero(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ConvertToInt32RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; @@ -1667,162 +1002,162 @@ namespace System public static System.Runtime.Intrinsics.Vector64 ConvertToInt32RoundToZero(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ConvertToInt32RoundToZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToSingle(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToSingle(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToSingle(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ConvertToSingle(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToSingle(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToSingle(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ConvertToSingleScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToSingleScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32RoundAwayFromZero(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundAwayFromZero(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32RoundToEven(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToEven(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToEvenScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32RoundToZero(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToZero(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToSingleScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32RoundAwayFromZero(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundAwayFromZero(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32RoundToEven(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToEven(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToEvenScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32RoundToZero(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToZero(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32RoundToZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 DivideScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 DivideScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(float value) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(short value) => throw null; public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(int value) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(System.UInt16 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(System.Byte value) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(float value) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(float value) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector128 DuplicateToVector128(uint value) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(short value) => throw null; public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(int value) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(System.SByte value) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(System.Int16 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(System.UInt32 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(System.UInt16 value) => throw null; - public static System.Byte Extract(System.Runtime.Intrinsics.Vector128 vector, System.Byte index) => throw null; - public static double Extract(System.Runtime.Intrinsics.Vector128 vector, System.Byte index) => throw null; - public static float Extract(System.Runtime.Intrinsics.Vector128 vector, System.Byte index) => throw null; - public static int Extract(System.Runtime.Intrinsics.Vector128 vector, System.Byte index) => throw null; - public static System.Int64 Extract(System.Runtime.Intrinsics.Vector128 vector, System.Byte index) => throw null; - public static System.SByte Extract(System.Runtime.Intrinsics.Vector128 vector, System.Byte index) => throw null; - public static System.Int16 Extract(System.Runtime.Intrinsics.Vector128 vector, System.Byte index) => throw null; - public static System.UInt32 Extract(System.Runtime.Intrinsics.Vector128 vector, System.Byte index) => throw null; - public static System.UInt64 Extract(System.Runtime.Intrinsics.Vector128 vector, System.Byte index) => throw null; - public static System.UInt16 Extract(System.Runtime.Intrinsics.Vector128 vector, System.Byte index) => throw null; - public static System.Byte Extract(System.Runtime.Intrinsics.Vector64 vector, System.Byte index) => throw null; - public static float Extract(System.Runtime.Intrinsics.Vector64 vector, System.Byte index) => throw null; - public static int Extract(System.Runtime.Intrinsics.Vector64 vector, System.Byte index) => throw null; - public static System.SByte Extract(System.Runtime.Intrinsics.Vector64 vector, System.Byte index) => throw null; - public static System.Int16 Extract(System.Runtime.Intrinsics.Vector64 vector, System.Byte index) => throw null; - public static System.UInt32 Extract(System.Runtime.Intrinsics.Vector64 vector, System.Byte index) => throw null; - public static System.UInt16 Extract(System.Runtime.Intrinsics.Vector64 vector, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, System.Byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(float value) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector64 DuplicateToVector64(uint value) => throw null; + public static byte Extract(System.Runtime.Intrinsics.Vector128 vector, byte index) => throw null; + public static double Extract(System.Runtime.Intrinsics.Vector128 vector, byte index) => throw null; + public static short Extract(System.Runtime.Intrinsics.Vector128 vector, byte index) => throw null; + public static int Extract(System.Runtime.Intrinsics.Vector128 vector, byte index) => throw null; + public static long Extract(System.Runtime.Intrinsics.Vector128 vector, byte index) => throw null; + public static sbyte Extract(System.Runtime.Intrinsics.Vector128 vector, byte index) => throw null; + public static float Extract(System.Runtime.Intrinsics.Vector128 vector, byte index) => throw null; + public static ushort Extract(System.Runtime.Intrinsics.Vector128 vector, byte index) => throw null; + public static uint Extract(System.Runtime.Intrinsics.Vector128 vector, byte index) => throw null; + public static ulong Extract(System.Runtime.Intrinsics.Vector128 vector, byte index) => throw null; + public static byte Extract(System.Runtime.Intrinsics.Vector64 vector, byte index) => throw null; + public static short Extract(System.Runtime.Intrinsics.Vector64 vector, byte index) => throw null; + public static int Extract(System.Runtime.Intrinsics.Vector64 vector, byte index) => throw null; + public static sbyte Extract(System.Runtime.Intrinsics.Vector64 vector, byte index) => throw null; + public static float Extract(System.Runtime.Intrinsics.Vector64 vector, byte index) => throw null; + public static ushort Extract(System.Runtime.Intrinsics.Vector64 vector, byte index) => throw null; + public static uint Extract(System.Runtime.Intrinsics.Vector64 vector, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector64 ExtractVector64(System.Runtime.Intrinsics.Vector64 upper, System.Runtime.Intrinsics.Vector64 lower, byte index) => throw null; public static System.Runtime.Intrinsics.Vector128 Floor(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 Floor(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 FloorScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 FloorScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedAddHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedAddHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 FusedMultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 FusedMultiplyAddNegatedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; @@ -1835,566 +1170,566 @@ namespace System public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractNegatedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 FusedMultiplySubtractScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 FusedSubtractHalving(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, System.Byte index, System.Byte data) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, System.Byte index, double data) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, System.Byte index, float data) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, System.Byte index, int data) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, System.Byte index, System.Int64 data) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, System.Byte index, System.SByte data) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, System.Byte index, System.Int16 data) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, System.Byte index, System.UInt32 data) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, System.Byte index, System.UInt64 data) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, System.Byte index, System.UInt16 data) => throw null; - public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, System.Byte index, System.Byte data) => throw null; - public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, System.Byte index, float data) => throw null; - public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, System.Byte index, int data) => throw null; - public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, System.Byte index, System.SByte data) => throw null; - public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, System.Byte index, System.Int16 data) => throw null; - public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, System.Byte index, System.UInt32 data) => throw null; - public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, System.Byte index, System.UInt16 data) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 InsertScalar(System.Runtime.Intrinsics.Vector128 result, System.Byte resultIndex, System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 FusedSubtractHalving(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, byte index, byte data) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, byte index, double data) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, byte index, short data) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, byte index, int data) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, byte index, long data) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, byte index, sbyte data) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, byte index, float data) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, byte index, ushort data) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, byte index, uint data) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 vector, byte index, ulong data) => throw null; + public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, byte index, byte data) => throw null; + public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, byte index, short data) => throw null; + public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, byte index, int data) => throw null; + public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, byte index, sbyte data) => throw null; + public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, byte index, float data) => throw null; + public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, byte index, ushort data) => throw null; + public static System.Runtime.Intrinsics.Vector64 Insert(System.Runtime.Intrinsics.Vector64 vector, byte index, uint data) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 InsertScalar(System.Runtime.Intrinsics.Vector128 result, byte resultIndex, System.Runtime.Intrinsics.Vector64 value) => throw null; public static bool IsSupported { get => throw null; } + public static System.Runtime.Intrinsics.Vector128 LeadingSignCount(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 LeadingSignCount(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 LeadingSignCount(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 LeadingSignCount(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 LeadingSignCount(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 LeadingSignCount(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 LeadingSignCount(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 LeadingSignCount(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 LeadingSignCount(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 LeadingSignCount(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 LeadingZeroCount(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, System.Byte index, System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, System.Byte index, double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, System.Byte index, float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, System.Byte index, int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, System.Byte index, System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, System.Byte index, System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, System.Byte index, System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, System.Byte index, System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, System.Byte index, System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, System.Byte index, System.UInt16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte index, System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte index, float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte index, int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte index, System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte index, System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte index, System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte index, System.UInt16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(System.UInt16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(System.UInt16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.UInt16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadVector64(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadVector64(double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadVector64(float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadVector64(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadVector64(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadVector64(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadVector64(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadVector64(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadVector64(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector64 LoadVector64(System.UInt16* address) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 LeadingZeroCount(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, byte index, byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, byte index, double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, byte index, short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, byte index, int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, byte index, long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, byte index, sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, byte index, float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, byte index, ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, byte index, uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128 value, byte index, ulong* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, byte index, byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, byte index, short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, byte index, int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, byte index, sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, byte index, float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, byte index, ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64 value, byte index, uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndReplicateToVector128(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAndReplicateToVector64(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(ulong* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadVector64(ulong* address) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MaxNumber(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxNumber(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxNumberScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxNumberScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MaxPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MinNumber(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MinNumber(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MinNumberScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MinNumberScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MinPairwise(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyDoublingSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerByScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperByScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingSaturateHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingSaturateHigh(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtract(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Negate(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Negate(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 Negate(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Negate(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Negate(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Negate(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Negate(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 NegateSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 NegateSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 NegateSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 NegateSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 NegateSaturate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 NegateSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 NegateSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 NegateSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 NegateSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 NegateSaturate(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 NegateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 NegateScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Not(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Not(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Or(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 OrNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PolynomialMultiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PolynomialMultiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 PolynomialMultiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 PolynomialMultiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PopCount(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 PopCount(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 PopCount(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 PopCount(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 OrNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PolynomialMultiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PolynomialMultiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 PolynomialMultiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 PolynomialMultiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PopCount(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 PopCount(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 PopCount(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 PopCount(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ReciprocalEstimate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReciprocalEstimate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReciprocalEstimate(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ReciprocalEstimate(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReciprocalEstimate(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReciprocalEstimate(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ReciprocalSquareRootStep(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 ReciprocalSquareRootStep(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 ReciprocalStep(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector64 ReciprocalStep(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector128 ReverseElement16(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElement16(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElement16(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElement16(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElement16(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElement16(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElement16(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ReverseElement16(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElement16(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElement16(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElement16(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElement32(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElement32(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElement32(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElement32(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElement16(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElement16(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElement16(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElement32(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElement32(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElement32(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElement32(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ReverseElement8(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ReverseElement8(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundAwayFromZero(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 RoundAwayFromZero(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; @@ -2415,715 +1750,1332 @@ namespace System public static System.Runtime.Intrinsics.Vector64 RoundToZero(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 RoundToZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 RoundToZeroScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmetic(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftArithmetic(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmetic(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmetic(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmetic(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticRoundedScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsertScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsertScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftArithmeticScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsertScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftAndInsertScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeftLogicalScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogical(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftLogicalScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsertScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsertScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte shift) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalScalar(System.Runtime.Intrinsics.Vector64 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 SignExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 SignExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 SignExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 SignExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 SignExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 SignExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLogicalScalar(System.Runtime.Intrinsics.Vector64 value, System.Runtime.Intrinsics.Vector64 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsertScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightAndInsertScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte shift) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticRoundedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmeticScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedAddScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogicalScalar(System.Runtime.Intrinsics.Vector64 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 SignExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 SignExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 SignExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 SignExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 SignExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 SignExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector64 SqrtScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; public static System.Runtime.Intrinsics.Vector64 SqrtScalar(System.Runtime.Intrinsics.Vector64 value) => throw null; - unsafe public static void Store(System.Byte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.Byte* address, System.Runtime.Intrinsics.Vector64 source) => throw null; - unsafe public static void Store(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(double* address, System.Runtime.Intrinsics.Vector64 source) => throw null; - unsafe public static void Store(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(float* address, System.Runtime.Intrinsics.Vector64 source) => throw null; - unsafe public static void Store(int* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(int* address, System.Runtime.Intrinsics.Vector64 source) => throw null; - unsafe public static void Store(System.Int64* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.Int64* address, System.Runtime.Intrinsics.Vector64 source) => throw null; - unsafe public static void Store(System.SByte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.SByte* address, System.Runtime.Intrinsics.Vector64 source) => throw null; - unsafe public static void Store(System.Int16* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.Int16* address, System.Runtime.Intrinsics.Vector64 source) => throw null; - unsafe public static void Store(System.UInt32* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.UInt32* address, System.Runtime.Intrinsics.Vector64 source) => throw null; - unsafe public static void Store(System.UInt64* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.UInt64* address, System.Runtime.Intrinsics.Vector64 source) => throw null; - unsafe public static void Store(System.UInt16* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.UInt16* address, System.Runtime.Intrinsics.Vector64 source) => throw null; - unsafe public static void StoreSelectedScalar(System.Byte* address, System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.Byte* address, System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(double* address, System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(float* address, System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(float* address, System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(int* address, System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(int* address, System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.Int64* address, System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.SByte* address, System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.SByte* address, System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.Int16* address, System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.Int16* address, System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.UInt32* address, System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.UInt32* address, System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.UInt64* address, System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.UInt16* address, System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - unsafe public static void StoreSelectedScalar(System.UInt16* address, System.Runtime.Intrinsics.Vector64 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static unsafe void Store(byte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(byte* address, System.Runtime.Intrinsics.Vector64 source) => throw null; + public static unsafe void Store(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(double* address, System.Runtime.Intrinsics.Vector64 source) => throw null; + public static unsafe void Store(short* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(short* address, System.Runtime.Intrinsics.Vector64 source) => throw null; + public static unsafe void Store(int* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(int* address, System.Runtime.Intrinsics.Vector64 source) => throw null; + public static unsafe void Store(long* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(long* address, System.Runtime.Intrinsics.Vector64 source) => throw null; + public static unsafe void Store(sbyte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(sbyte* address, System.Runtime.Intrinsics.Vector64 source) => throw null; + public static unsafe void Store(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(float* address, System.Runtime.Intrinsics.Vector64 source) => throw null; + public static unsafe void Store(ushort* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(ushort* address, System.Runtime.Intrinsics.Vector64 source) => throw null; + public static unsafe void Store(uint* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(uint* address, System.Runtime.Intrinsics.Vector64 source) => throw null; + public static unsafe void Store(ulong* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(ulong* address, System.Runtime.Intrinsics.Vector64 source) => throw null; + public static unsafe void StoreSelectedScalar(byte* address, System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(byte* address, System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(double* address, System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(short* address, System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(short* address, System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(int* address, System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(int* address, System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(long* address, System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(sbyte* address, System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(sbyte* address, System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(float* address, System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(float* address, System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(ushort* address, System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(ushort* address, System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(uint* address, System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(uint* address, System.Runtime.Intrinsics.Vector64 value, byte index) => throw null; + public static unsafe void StoreSelectedScalar(ulong* address, System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturate(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 SubtractScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 SubtractScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 SubtractScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 VectorTableLookup(System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector64 byteIndexes) => throw null; - public static System.Runtime.Intrinsics.Vector64 VectorTableLookup(System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector64 byteIndexes) => throw null; - public static System.Runtime.Intrinsics.Vector64 VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64 defaultValues, System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector64 byteIndexes) => throw null; - public static System.Runtime.Intrinsics.Vector64 VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64 defaultValues, System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector64 byteIndexes) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 SubtractScalar(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 VectorTableLookup(System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector64 byteIndexes) => throw null; + public static System.Runtime.Intrinsics.Vector64 VectorTableLookup(System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector64 byteIndexes) => throw null; + public static System.Runtime.Intrinsics.Vector64 VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64 defaultValues, System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector64 byteIndexes) => throw null; + public static System.Runtime.Intrinsics.Vector64 VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64 defaultValues, System.Runtime.Intrinsics.Vector128 table, System.Runtime.Intrinsics.Vector64 byteIndexes) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; } - public abstract class Aes : System.Runtime.Intrinsics.Arm.ArmBase { public abstract class Arm64 : System.Runtime.Intrinsics.Arm.ArmBase.Arm64 { public static bool IsSupported { get => throw null; } } - - - public static System.Runtime.Intrinsics.Vector128 Decrypt(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; - public static System.Runtime.Intrinsics.Vector128 Encrypt(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; - public static System.Runtime.Intrinsics.Vector128 InverseMixColumns(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Decrypt(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; + public static System.Runtime.Intrinsics.Vector128 Encrypt(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; + public static System.Runtime.Intrinsics.Vector128 InverseMixColumns(System.Runtime.Intrinsics.Vector128 value) => throw null; public static bool IsSupported { get => throw null; } - public static System.Runtime.Intrinsics.Vector128 MixColumns(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MixColumns(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningLower(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; } - public abstract class ArmBase { public abstract class Arm64 { - internal Arm64() => throw null; public static bool IsSupported { get => throw null; } public static int LeadingSignCount(int value) => throw null; - public static int LeadingSignCount(System.Int64 value) => throw null; - public static int LeadingZeroCount(System.Int64 value) => throw null; - public static int LeadingZeroCount(System.UInt64 value) => throw null; - public static System.Int64 MultiplyHigh(System.Int64 left, System.Int64 right) => throw null; - public static System.UInt64 MultiplyHigh(System.UInt64 left, System.UInt64 right) => throw null; - public static System.Int64 ReverseElementBits(System.Int64 value) => throw null; - public static System.UInt64 ReverseElementBits(System.UInt64 value) => throw null; + public static int LeadingSignCount(long value) => throw null; + public static int LeadingZeroCount(long value) => throw null; + public static int LeadingZeroCount(ulong value) => throw null; + public static long MultiplyHigh(long left, long right) => throw null; + public static ulong MultiplyHigh(ulong left, ulong right) => throw null; + public static long ReverseElementBits(long value) => throw null; + public static ulong ReverseElementBits(ulong value) => throw null; } - - - internal ArmBase() => throw null; public static bool IsSupported { get => throw null; } public static int LeadingZeroCount(int value) => throw null; - public static int LeadingZeroCount(System.UInt32 value) => throw null; + public static int LeadingZeroCount(uint value) => throw null; public static int ReverseElementBits(int value) => throw null; - public static System.UInt32 ReverseElementBits(System.UInt32 value) => throw null; + public static uint ReverseElementBits(uint value) => throw null; public static void Yield() => throw null; } - public abstract class Crc32 : System.Runtime.Intrinsics.Arm.ArmBase { public abstract class Arm64 : System.Runtime.Intrinsics.Arm.ArmBase.Arm64 { - public static System.UInt32 ComputeCrc32(System.UInt32 crc, System.UInt64 data) => throw null; - public static System.UInt32 ComputeCrc32C(System.UInt32 crc, System.UInt64 data) => throw null; + public static uint ComputeCrc32(uint crc, ulong data) => throw null; + public static uint ComputeCrc32C(uint crc, ulong data) => throw null; public static bool IsSupported { get => throw null; } } - - - public static System.UInt32 ComputeCrc32(System.UInt32 crc, System.Byte data) => throw null; - public static System.UInt32 ComputeCrc32(System.UInt32 crc, System.UInt32 data) => throw null; - public static System.UInt32 ComputeCrc32(System.UInt32 crc, System.UInt16 data) => throw null; - public static System.UInt32 ComputeCrc32C(System.UInt32 crc, System.Byte data) => throw null; - public static System.UInt32 ComputeCrc32C(System.UInt32 crc, System.UInt32 data) => throw null; - public static System.UInt32 ComputeCrc32C(System.UInt32 crc, System.UInt16 data) => throw null; + public static uint ComputeCrc32(uint crc, byte data) => throw null; + public static uint ComputeCrc32(uint crc, ushort data) => throw null; + public static uint ComputeCrc32(uint crc, uint data) => throw null; + public static uint ComputeCrc32C(uint crc, byte data) => throw null; + public static uint ComputeCrc32C(uint crc, ushort data) => throw null; + public static uint ComputeCrc32C(uint crc, uint data) => throw null; public static bool IsSupported { get => throw null; } } - public abstract class Dp : System.Runtime.Intrinsics.Arm.AdvSimd { public abstract class Arm64 : System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 { public static bool IsSupported { get => throw null; } } - - - public static System.Runtime.Intrinsics.Vector128 DotProduct(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 DotProduct(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 DotProduct(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 DotProduct(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightScaledIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightScaledIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightScaledIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightScaledIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightScaledIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightScaledIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightScaledIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightScaledIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 DotProduct(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 DotProduct(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 DotProduct(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 DotProduct(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightScaledIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightScaledIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightScaledIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightScaledIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightScaledIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightScaledIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightScaledIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 DotProductBySelectedQuadruplet(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightScaledIndex) => throw null; public static bool IsSupported { get => throw null; } } - public abstract class Rdm : System.Runtime.Intrinsics.Arm.AdvSimd { public abstract class Arm64 : System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 { public static bool IsSupported { get => throw null; } + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndAddSaturateHighScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndAddSaturateHighScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndAddSaturateHighScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndSubtractSaturateHighScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndSubtractSaturateHighScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndSubtractSaturateHighScalar(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingScalarBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; } - - public static bool IsSupported { get => throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, System.Byte rightIndex) => throw null; - public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, System.Byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(System.Runtime.Intrinsics.Vector64 addend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector128 minuend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector128 right, byte rightIndex) => throw null; + public static System.Runtime.Intrinsics.Vector64 MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh(System.Runtime.Intrinsics.Vector64 minuend, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right, byte rightIndex) => throw null; } - public abstract class Sha1 : System.Runtime.Intrinsics.Arm.ArmBase { public abstract class Arm64 : System.Runtime.Intrinsics.Arm.ArmBase.Arm64 { public static bool IsSupported { get => throw null; } } - - - public static System.Runtime.Intrinsics.Vector64 FixedRotate(System.Runtime.Intrinsics.Vector64 hash_e) => throw null; - public static System.Runtime.Intrinsics.Vector128 HashUpdateChoose(System.Runtime.Intrinsics.Vector128 hash_abcd, System.Runtime.Intrinsics.Vector64 hash_e, System.Runtime.Intrinsics.Vector128 wk) => throw null; - public static System.Runtime.Intrinsics.Vector128 HashUpdateMajority(System.Runtime.Intrinsics.Vector128 hash_abcd, System.Runtime.Intrinsics.Vector64 hash_e, System.Runtime.Intrinsics.Vector128 wk) => throw null; - public static System.Runtime.Intrinsics.Vector128 HashUpdateParity(System.Runtime.Intrinsics.Vector128 hash_abcd, System.Runtime.Intrinsics.Vector64 hash_e, System.Runtime.Intrinsics.Vector128 wk) => throw null; + public static System.Runtime.Intrinsics.Vector64 FixedRotate(System.Runtime.Intrinsics.Vector64 hash_e) => throw null; + public static System.Runtime.Intrinsics.Vector128 HashUpdateChoose(System.Runtime.Intrinsics.Vector128 hash_abcd, System.Runtime.Intrinsics.Vector64 hash_e, System.Runtime.Intrinsics.Vector128 wk) => throw null; + public static System.Runtime.Intrinsics.Vector128 HashUpdateMajority(System.Runtime.Intrinsics.Vector128 hash_abcd, System.Runtime.Intrinsics.Vector64 hash_e, System.Runtime.Intrinsics.Vector128 wk) => throw null; + public static System.Runtime.Intrinsics.Vector128 HashUpdateParity(System.Runtime.Intrinsics.Vector128 hash_abcd, System.Runtime.Intrinsics.Vector64 hash_e, System.Runtime.Intrinsics.Vector128 wk) => throw null; public static bool IsSupported { get => throw null; } - public static System.Runtime.Intrinsics.Vector128 ScheduleUpdate0(System.Runtime.Intrinsics.Vector128 w0_3, System.Runtime.Intrinsics.Vector128 w4_7, System.Runtime.Intrinsics.Vector128 w8_11) => throw null; - public static System.Runtime.Intrinsics.Vector128 ScheduleUpdate1(System.Runtime.Intrinsics.Vector128 tw0_3, System.Runtime.Intrinsics.Vector128 w12_15) => throw null; + public static System.Runtime.Intrinsics.Vector128 ScheduleUpdate0(System.Runtime.Intrinsics.Vector128 w0_3, System.Runtime.Intrinsics.Vector128 w4_7, System.Runtime.Intrinsics.Vector128 w8_11) => throw null; + public static System.Runtime.Intrinsics.Vector128 ScheduleUpdate1(System.Runtime.Intrinsics.Vector128 tw0_3, System.Runtime.Intrinsics.Vector128 w12_15) => throw null; } - public abstract class Sha256 : System.Runtime.Intrinsics.Arm.ArmBase { public abstract class Arm64 : System.Runtime.Intrinsics.Arm.ArmBase.Arm64 { public static bool IsSupported { get => throw null; } } - - - public static System.Runtime.Intrinsics.Vector128 HashUpdate1(System.Runtime.Intrinsics.Vector128 hash_abcd, System.Runtime.Intrinsics.Vector128 hash_efgh, System.Runtime.Intrinsics.Vector128 wk) => throw null; - public static System.Runtime.Intrinsics.Vector128 HashUpdate2(System.Runtime.Intrinsics.Vector128 hash_efgh, System.Runtime.Intrinsics.Vector128 hash_abcd, System.Runtime.Intrinsics.Vector128 wk) => throw null; + public static System.Runtime.Intrinsics.Vector128 HashUpdate1(System.Runtime.Intrinsics.Vector128 hash_abcd, System.Runtime.Intrinsics.Vector128 hash_efgh, System.Runtime.Intrinsics.Vector128 wk) => throw null; + public static System.Runtime.Intrinsics.Vector128 HashUpdate2(System.Runtime.Intrinsics.Vector128 hash_efgh, System.Runtime.Intrinsics.Vector128 hash_abcd, System.Runtime.Intrinsics.Vector128 wk) => throw null; public static bool IsSupported { get => throw null; } - public static System.Runtime.Intrinsics.Vector128 ScheduleUpdate0(System.Runtime.Intrinsics.Vector128 w0_3, System.Runtime.Intrinsics.Vector128 w4_7) => throw null; - public static System.Runtime.Intrinsics.Vector128 ScheduleUpdate1(System.Runtime.Intrinsics.Vector128 w0_3, System.Runtime.Intrinsics.Vector128 w8_11, System.Runtime.Intrinsics.Vector128 w12_15) => throw null; + public static System.Runtime.Intrinsics.Vector128 ScheduleUpdate0(System.Runtime.Intrinsics.Vector128 w0_3, System.Runtime.Intrinsics.Vector128 w4_7) => throw null; + public static System.Runtime.Intrinsics.Vector128 ScheduleUpdate1(System.Runtime.Intrinsics.Vector128 w0_3, System.Runtime.Intrinsics.Vector128 w8_11, System.Runtime.Intrinsics.Vector128 w12_15) => throw null; } - + } + public static class Vector128 + { + public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 As(this System.Runtime.Intrinsics.Vector128 vector) where TFrom : struct where TTo : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsByte(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsDouble(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsInt16(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsInt32(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsInt64(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsNInt(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsNUInt(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsSByte(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsSingle(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsUInt16(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsUInt32(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsUInt64(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Numerics.Vector AsVector(this System.Runtime.Intrinsics.Vector128 value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 AsVector128(this System.Numerics.Vector2 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AsVector128(this System.Numerics.Vector3 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AsVector128(this System.Numerics.Vector4 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AsVector128(this System.Numerics.Vector value) where T : struct => throw null; + public static System.Numerics.Vector2 AsVector2(this System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Numerics.Vector3 AsVector3(this System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Numerics.Vector4 AsVector4(this System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseAnd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 BitwiseOr(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Ceiling(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 Ceiling(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConditionalSelect(System.Runtime.Intrinsics.Vector128 condition, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToDouble(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToDouble(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToInt32(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToInt64(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToSingle(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToSingle(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt32(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToUInt64(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static void CopyTo(this System.Runtime.Intrinsics.Vector128 vector, System.Span destination) where T : struct => throw null; + public static void CopyTo(this System.Runtime.Intrinsics.Vector128 vector, T[] destination) where T : struct => throw null; + public static void CopyTo(this System.Runtime.Intrinsics.Vector128 vector, T[] destination, int startIndex) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(byte e0, byte e1, byte e2, byte e3, byte e4, byte e5, byte e6, byte e7, byte e8, byte e9, byte e10, byte e11, byte e12, byte e13, byte e14, byte e15) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(double value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(double e0, double e1) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(short value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(short e0, short e1, short e2, short e3, short e4, short e5, short e6, short e7) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(int value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(int e0, int e1, int e2, int e3) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(long value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(long e0, long e1) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(nint value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(nuint value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(sbyte e0, sbyte e1, sbyte e2, sbyte e3, sbyte e4, sbyte e5, sbyte e6, sbyte e7, sbyte e8, sbyte e9, sbyte e10, sbyte e11, sbyte e12, sbyte e13, sbyte e14, sbyte e15) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(float value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(float e0, float e1, float e2, float e3) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(ushort e0, ushort e1, ushort e2, ushort e3, ushort e4, ushort e5, ushort e6, ushort e7) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(uint value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(uint e0, uint e1, uint e2, uint e3) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(ulong value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(ulong e0, ulong e1) => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(System.ReadOnlySpan values) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(T value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(T[] values) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Create(T[] values, int index) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(double value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(short value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(int value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(long value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(nint value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(nuint value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(float value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(uint value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalar(ulong value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(double value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(short value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(int value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(long value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(nint value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(nuint value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(float value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(uint value) => throw null; + public static System.Runtime.Intrinsics.Vector128 CreateScalarUnsafe(ulong value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Divide(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static T Dot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Equals(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool EqualsAll(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool EqualsAny(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static uint ExtractMostSignificantBits(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Floor(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 Floor(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static T GetElement(this System.Runtime.Intrinsics.Vector128 vector, int index) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 GetLower(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 GetUpper(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 GreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool GreaterThanAll(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool GreaterThanAny(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 GreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool GreaterThanOrEqualAll(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool GreaterThanOrEqualAny(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool IsHardwareAccelerated { get => throw null; } + public static System.Runtime.Intrinsics.Vector128 LessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool LessThanAll(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool LessThanAny(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 LessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool LessThanOrEqualAll(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static bool LessThanOrEqualAny(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 Load(T* source) where T : unmanaged => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAligned(T* source) where T : unmanaged => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedNonTemporal(T* source) where T : unmanaged => throw null; + public static System.Runtime.Intrinsics.Vector128 LoadUnsafe(ref T source) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 LoadUnsafe(ref T source, nuint elementOffset) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, T right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(T left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Narrow(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector128 Negate(System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 OnesComplement(System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeft(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector128 indices) => throw null; + public static System.Runtime.Intrinsics.Vector128 Sqrt(System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static unsafe void Store(this System.Runtime.Intrinsics.Vector128 source, T* destination) where T : unmanaged => throw null; + public static unsafe void StoreAligned(this System.Runtime.Intrinsics.Vector128 source, T* destination) where T : unmanaged => throw null; + public static unsafe void StoreAlignedNonTemporal(this System.Runtime.Intrinsics.Vector128 source, T* destination) where T : unmanaged => throw null; + public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector128 source, ref T destination) where T : struct => throw null; + public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector128 source, ref T destination, nuint elementOffset) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + public static T Sum(System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static T ToScalar(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 ToVector256(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 ToVector256Unsafe(this System.Runtime.Intrinsics.Vector128 vector) where T : struct => throw null; + public static bool TryCopyTo(this System.Runtime.Intrinsics.Vector128 vector, System.Span destination) where T : struct => throw null; + public static (System.Runtime.Intrinsics.Vector128 Lower, System.Runtime.Intrinsics.Vector128 Upper) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; + public static (System.Runtime.Intrinsics.Vector128 Lower, System.Runtime.Intrinsics.Vector128 Upper) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; + public static (System.Runtime.Intrinsics.Vector128 Lower, System.Runtime.Intrinsics.Vector128 Upper) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; + public static (System.Runtime.Intrinsics.Vector128 Lower, System.Runtime.Intrinsics.Vector128 Upper) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; + public static (System.Runtime.Intrinsics.Vector128 Lower, System.Runtime.Intrinsics.Vector128 Upper) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; + public static (System.Runtime.Intrinsics.Vector128 Lower, System.Runtime.Intrinsics.Vector128 Upper) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; + public static (System.Runtime.Intrinsics.Vector128 Lower, System.Runtime.Intrinsics.Vector128 Upper) Widen(System.Runtime.Intrinsics.Vector128 source) => throw null; + public static System.Runtime.Intrinsics.Vector128 WithElement(this System.Runtime.Intrinsics.Vector128 vector, int index, T value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 WithLower(this System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector64 value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 WithUpper(this System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector64 value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) where T : struct => throw null; + } + public struct Vector128 : System.IEquatable> where T : struct + { + public static System.Runtime.Intrinsics.Vector128 AllBitsSet { get => throw null; } + public static int Count { get => throw null; } + public override bool Equals(object obj) => throw null; + public bool Equals(System.Runtime.Intrinsics.Vector128 other) => throw null; + public override int GetHashCode() => throw null; + public static bool IsSupported { get => throw null; } + public static System.Runtime.Intrinsics.Vector128 operator +(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator &(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator |(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator /(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool operator ==(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator ^(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool operator !=(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator *(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator *(System.Runtime.Intrinsics.Vector128 left, T right) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator *(T left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator ~(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator -(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator -(System.Runtime.Intrinsics.Vector128 vector) => throw null; + public static System.Runtime.Intrinsics.Vector128 operator +(System.Runtime.Intrinsics.Vector128 value) => throw null; + public T this[int index] { get => throw null; } + public override string ToString() => throw null; + public static System.Runtime.Intrinsics.Vector128 Zero { get => throw null; } + } + public static class Vector256 + { + public static System.Runtime.Intrinsics.Vector256 Abs(System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 As(this System.Runtime.Intrinsics.Vector256 vector) where TFrom : struct where TTo : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsByte(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsDouble(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsInt16(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsInt32(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsInt64(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsNInt(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsNUInt(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsSByte(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsSingle(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsUInt16(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsUInt32(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsUInt64(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Numerics.Vector AsVector(this System.Runtime.Intrinsics.Vector256 value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 AsVector256(this System.Numerics.Vector value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 BitwiseAnd(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 BitwiseOr(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Ceiling(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 Ceiling(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConditionalSelect(System.Runtime.Intrinsics.Vector256 condition, System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToDouble(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToDouble(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToInt32(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToInt64(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToSingle(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToSingle(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToUInt32(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToUInt64(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static void CopyTo(this System.Runtime.Intrinsics.Vector256 vector, System.Span destination) where T : struct => throw null; + public static void CopyTo(this System.Runtime.Intrinsics.Vector256 vector, T[] destination) where T : struct => throw null; + public static void CopyTo(this System.Runtime.Intrinsics.Vector256 vector, T[] destination, int startIndex) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(byte e0, byte e1, byte e2, byte e3, byte e4, byte e5, byte e6, byte e7, byte e8, byte e9, byte e10, byte e11, byte e12, byte e13, byte e14, byte e15, byte e16, byte e17, byte e18, byte e19, byte e20, byte e21, byte e22, byte e23, byte e24, byte e25, byte e26, byte e27, byte e28, byte e29, byte e30, byte e31) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(double value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(double e0, double e1, double e2, double e3) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(short value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(short e0, short e1, short e2, short e3, short e4, short e5, short e6, short e7, short e8, short e9, short e10, short e11, short e12, short e13, short e14, short e15) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(int value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(int e0, int e1, int e2, int e3, int e4, int e5, int e6, int e7) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(long value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(long e0, long e1, long e2, long e3) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(nint value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(nuint value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.Runtime.Intrinsics.Vector128 lower, System.Runtime.Intrinsics.Vector128 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(sbyte e0, sbyte e1, sbyte e2, sbyte e3, sbyte e4, sbyte e5, sbyte e6, sbyte e7, sbyte e8, sbyte e9, sbyte e10, sbyte e11, sbyte e12, sbyte e13, sbyte e14, sbyte e15, sbyte e16, sbyte e17, sbyte e18, sbyte e19, sbyte e20, sbyte e21, sbyte e22, sbyte e23, sbyte e24, sbyte e25, sbyte e26, sbyte e27, sbyte e28, sbyte e29, sbyte e30, sbyte e31) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(float value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(float e0, float e1, float e2, float e3, float e4, float e5, float e6, float e7) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(ushort e0, ushort e1, ushort e2, ushort e3, ushort e4, ushort e5, ushort e6, ushort e7, ushort e8, ushort e9, ushort e10, ushort e11, ushort e12, ushort e13, ushort e14, ushort e15) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(uint value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(uint e0, uint e1, uint e2, uint e3, uint e4, uint e5, uint e6, uint e7) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(ulong value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(ulong e0, ulong e1, ulong e2, ulong e3) => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(System.ReadOnlySpan values) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(T value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(T[] values) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Create(T[] values, int index) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(double value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(short value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(int value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(long value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(nint value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(nuint value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(float value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(uint value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalar(ulong value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(double value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(short value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(int value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(long value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(nint value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(nuint value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(float value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(uint value) => throw null; + public static System.Runtime.Intrinsics.Vector256 CreateScalarUnsafe(ulong value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Divide(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static T Dot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Equals(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool EqualsAll(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool EqualsAny(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static uint ExtractMostSignificantBits(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Floor(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 Floor(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static T GetElement(this System.Runtime.Intrinsics.Vector256 vector, int index) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 GetLower(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 GetUpper(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 GreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool GreaterThanAll(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool GreaterThanAny(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 GreaterThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool GreaterThanOrEqualAll(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool GreaterThanOrEqualAny(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool IsHardwareAccelerated { get => throw null; } + public static System.Runtime.Intrinsics.Vector256 LessThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool LessThanAll(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool LessThanAny(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 LessThanOrEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool LessThanOrEqualAll(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static bool LessThanOrEqualAny(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 Load(T* source) where T : unmanaged => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAligned(T* source) where T : unmanaged => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedNonTemporal(T* source) where T : unmanaged => throw null; + public static System.Runtime.Intrinsics.Vector256 LoadUnsafe(ref T source) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 LoadUnsafe(ref T source, nuint elementOffset) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Multiply(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Multiply(System.Runtime.Intrinsics.Vector256 left, T right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Multiply(T left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Narrow(System.Runtime.Intrinsics.Vector256 lower, System.Runtime.Intrinsics.Vector256 upper) => throw null; + public static System.Runtime.Intrinsics.Vector256 Negate(System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 OnesComplement(System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeft(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector256 indices) => throw null; + public static System.Runtime.Intrinsics.Vector256 Sqrt(System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static unsafe void Store(this System.Runtime.Intrinsics.Vector256 source, T* destination) where T : unmanaged => throw null; + public static unsafe void StoreAligned(this System.Runtime.Intrinsics.Vector256 source, T* destination) where T : unmanaged => throw null; + public static unsafe void StoreAlignedNonTemporal(this System.Runtime.Intrinsics.Vector256 source, T* destination) where T : unmanaged => throw null; + public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector256 source, ref T destination) where T : struct => throw null; + public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector256 source, ref T destination, nuint elementOffset) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + public static T Sum(System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static T ToScalar(this System.Runtime.Intrinsics.Vector256 vector) where T : struct => throw null; + public static bool TryCopyTo(this System.Runtime.Intrinsics.Vector256 vector, System.Span destination) where T : struct => throw null; + public static (System.Runtime.Intrinsics.Vector256 Lower, System.Runtime.Intrinsics.Vector256 Upper) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; + public static (System.Runtime.Intrinsics.Vector256 Lower, System.Runtime.Intrinsics.Vector256 Upper) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; + public static (System.Runtime.Intrinsics.Vector256 Lower, System.Runtime.Intrinsics.Vector256 Upper) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; + public static (System.Runtime.Intrinsics.Vector256 Lower, System.Runtime.Intrinsics.Vector256 Upper) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; + public static (System.Runtime.Intrinsics.Vector256 Lower, System.Runtime.Intrinsics.Vector256 Upper) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; + public static (System.Runtime.Intrinsics.Vector256 Lower, System.Runtime.Intrinsics.Vector256 Upper) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; + public static (System.Runtime.Intrinsics.Vector256 Lower, System.Runtime.Intrinsics.Vector256 Upper) Widen(System.Runtime.Intrinsics.Vector256 source) => throw null; + public static System.Runtime.Intrinsics.Vector256 WithElement(this System.Runtime.Intrinsics.Vector256 vector, int index, T value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 WithLower(this System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector128 value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 WithUpper(this System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector128 value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) where T : struct => throw null; + } + public struct Vector256 : System.IEquatable> where T : struct + { + public static System.Runtime.Intrinsics.Vector256 AllBitsSet { get => throw null; } + public static int Count { get => throw null; } + public override bool Equals(object obj) => throw null; + public bool Equals(System.Runtime.Intrinsics.Vector256 other) => throw null; + public override int GetHashCode() => throw null; + public static bool IsSupported { get => throw null; } + public static System.Runtime.Intrinsics.Vector256 operator +(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator &(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator |(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator /(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool operator ==(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator ^(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool operator !=(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator *(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator *(System.Runtime.Intrinsics.Vector256 left, T right) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator *(T left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator ~(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator -(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator -(System.Runtime.Intrinsics.Vector256 vector) => throw null; + public static System.Runtime.Intrinsics.Vector256 operator +(System.Runtime.Intrinsics.Vector256 value) => throw null; + public T this[int index] { get => throw null; } + public override string ToString() => throw null; + public static System.Runtime.Intrinsics.Vector256 Zero { get => throw null; } + } + public static class Vector64 + { + public static System.Runtime.Intrinsics.Vector64 Abs(System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Add(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AndNot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 As(this System.Runtime.Intrinsics.Vector64 vector) where TFrom : struct where TTo : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsByte(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsDouble(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsInt16(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsInt32(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsInt64(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsNInt(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsNUInt(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsSByte(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsSingle(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsUInt16(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsUInt32(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 AsUInt64(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseAnd(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 BitwiseOr(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Ceiling(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 Ceiling(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConditionalSelect(System.Runtime.Intrinsics.Vector64 condition, System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToDouble(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToDouble(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToInt32(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToInt64(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToSingle(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToSingle(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt32(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 ConvertToUInt64(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static void CopyTo(this System.Runtime.Intrinsics.Vector64 vector, System.Span destination) where T : struct => throw null; + public static void CopyTo(this System.Runtime.Intrinsics.Vector64 vector, T[] destination) where T : struct => throw null; + public static void CopyTo(this System.Runtime.Intrinsics.Vector64 vector, T[] destination, int startIndex) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(byte e0, byte e1, byte e2, byte e3, byte e4, byte e5, byte e6, byte e7) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(double value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(short value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(short e0, short e1, short e2, short e3) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(int value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(int e0, int e1) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(long value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(nint value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(nuint value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(sbyte e0, sbyte e1, sbyte e2, sbyte e3, sbyte e4, sbyte e5, sbyte e6, sbyte e7) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(float value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(float e0, float e1) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(ushort e0, ushort e1, ushort e2, ushort e3) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(uint value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(uint e0, uint e1) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(ulong value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(System.ReadOnlySpan values) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(T value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(T[] values) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Create(T[] values, int index) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(double value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(short value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(int value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(long value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(nint value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(nuint value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(float value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(uint value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalar(ulong value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(byte value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(short value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(int value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(nint value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(nuint value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(sbyte value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(float value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(ushort value) => throw null; + public static System.Runtime.Intrinsics.Vector64 CreateScalarUnsafe(uint value) => throw null; + public static System.Runtime.Intrinsics.Vector64 Divide(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static T Dot(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Equals(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool EqualsAll(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool EqualsAny(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static uint ExtractMostSignificantBits(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Floor(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 Floor(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static T GetElement(this System.Runtime.Intrinsics.Vector64 vector, int index) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 GreaterThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool GreaterThanAll(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool GreaterThanAny(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 GreaterThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool GreaterThanOrEqualAll(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool GreaterThanOrEqualAny(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool IsHardwareAccelerated { get => throw null; } + public static System.Runtime.Intrinsics.Vector64 LessThan(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool LessThanAll(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool LessThanAny(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 LessThanOrEqual(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool LessThanOrEqualAll(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static bool LessThanOrEqualAny(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 Load(T* source) where T : unmanaged => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAligned(T* source) where T : unmanaged => throw null; + public static unsafe System.Runtime.Intrinsics.Vector64 LoadAlignedNonTemporal(T* source) where T : unmanaged => throw null; + public static System.Runtime.Intrinsics.Vector64 LoadUnsafe(ref T source) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 LoadUnsafe(ref T source, nuint elementOffset) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Max(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Min(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Multiply(System.Runtime.Intrinsics.Vector64 left, T right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Multiply(T left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector64 Narrow(System.Runtime.Intrinsics.Vector64 lower, System.Runtime.Intrinsics.Vector64 upper) => throw null; + public static System.Runtime.Intrinsics.Vector64 Negate(System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 OnesComplement(System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftLeft(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 ShiftRightLogical(System.Runtime.Intrinsics.Vector64 vector, int shiftCount) => throw null; + public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; + public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; + public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; + public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; + public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; + public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; + public static System.Runtime.Intrinsics.Vector64 Shuffle(System.Runtime.Intrinsics.Vector64 vector, System.Runtime.Intrinsics.Vector64 indices) => throw null; + public static System.Runtime.Intrinsics.Vector64 Sqrt(System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static unsafe void Store(this System.Runtime.Intrinsics.Vector64 source, T* destination) where T : unmanaged => throw null; + public static unsafe void StoreAligned(this System.Runtime.Intrinsics.Vector64 source, T* destination) where T : unmanaged => throw null; + public static unsafe void StoreAlignedNonTemporal(this System.Runtime.Intrinsics.Vector64 source, T* destination) where T : unmanaged => throw null; + public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector64 source, ref T destination) where T : struct => throw null; + public static void StoreUnsafe(this System.Runtime.Intrinsics.Vector64 source, ref T destination, nuint elementOffset) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Subtract(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + public static T Sum(System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static T ToScalar(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 ToVector128(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector128 ToVector128Unsafe(this System.Runtime.Intrinsics.Vector64 vector) where T : struct => throw null; + public static bool TryCopyTo(this System.Runtime.Intrinsics.Vector64 vector, System.Span destination) where T : struct => throw null; + public static (System.Runtime.Intrinsics.Vector64 Lower, System.Runtime.Intrinsics.Vector64 Upper) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; + public static (System.Runtime.Intrinsics.Vector64 Lower, System.Runtime.Intrinsics.Vector64 Upper) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; + public static (System.Runtime.Intrinsics.Vector64 Lower, System.Runtime.Intrinsics.Vector64 Upper) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; + public static (System.Runtime.Intrinsics.Vector64 Lower, System.Runtime.Intrinsics.Vector64 Upper) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; + public static (System.Runtime.Intrinsics.Vector64 Lower, System.Runtime.Intrinsics.Vector64 Upper) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; + public static (System.Runtime.Intrinsics.Vector64 Lower, System.Runtime.Intrinsics.Vector64 Upper) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; + public static (System.Runtime.Intrinsics.Vector64 Lower, System.Runtime.Intrinsics.Vector64 Upper) Widen(System.Runtime.Intrinsics.Vector64 source) => throw null; + public static System.Runtime.Intrinsics.Vector64 WithElement(this System.Runtime.Intrinsics.Vector64 vector, int index, T value) where T : struct => throw null; + public static System.Runtime.Intrinsics.Vector64 Xor(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) where T : struct => throw null; + } + public struct Vector64 : System.IEquatable> where T : struct + { + public static System.Runtime.Intrinsics.Vector64 AllBitsSet { get => throw null; } + public static int Count { get => throw null; } + public override bool Equals(object obj) => throw null; + public bool Equals(System.Runtime.Intrinsics.Vector64 other) => throw null; + public override int GetHashCode() => throw null; + public static bool IsSupported { get => throw null; } + public static System.Runtime.Intrinsics.Vector64 operator +(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator &(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator |(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator /(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static bool operator ==(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator ^(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static bool operator !=(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator *(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator *(System.Runtime.Intrinsics.Vector64 left, T right) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator *(T left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator ~(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator -(System.Runtime.Intrinsics.Vector64 left, System.Runtime.Intrinsics.Vector64 right) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator -(System.Runtime.Intrinsics.Vector64 vector) => throw null; + public static System.Runtime.Intrinsics.Vector64 operator +(System.Runtime.Intrinsics.Vector64 value) => throw null; + public T this[int index] { get => throw null; } + public override string ToString() => throw null; + public static System.Runtime.Intrinsics.Vector64 Zero { get => throw null; } } namespace X86 { public abstract class Aes : System.Runtime.Intrinsics.X86.Sse2 { + public static System.Runtime.Intrinsics.Vector128 Decrypt(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; + public static System.Runtime.Intrinsics.Vector128 DecryptLast(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; + public static System.Runtime.Intrinsics.Vector128 Encrypt(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; + public static System.Runtime.Intrinsics.Vector128 EncryptLast(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; + public static System.Runtime.Intrinsics.Vector128 InverseMixColumns(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static bool IsSupported { get => throw null; } + public static System.Runtime.Intrinsics.Vector128 KeygenAssist(System.Runtime.Intrinsics.Vector128 value, byte control) => throw null; public abstract class X64 : System.Runtime.Intrinsics.X86.Sse2.X64 { public static bool IsSupported { get => throw null; } } - - - public static System.Runtime.Intrinsics.Vector128 Decrypt(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; - public static System.Runtime.Intrinsics.Vector128 DecryptLast(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; - public static System.Runtime.Intrinsics.Vector128 Encrypt(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; - public static System.Runtime.Intrinsics.Vector128 EncryptLast(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 roundKey) => throw null; - public static System.Runtime.Intrinsics.Vector128 InverseMixColumns(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static bool IsSupported { get => throw null; } - public static System.Runtime.Intrinsics.Vector128 KeygenAssist(System.Runtime.Intrinsics.Vector128 value, System.Byte control) => throw null; } - public abstract class Avx : System.Runtime.Intrinsics.X86.Sse42 { - public abstract class X64 : System.Runtime.Intrinsics.X86.Sse42.X64 - { - public static bool IsSupported { get => throw null; } - internal X64() => throw null; - } - - public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 AddSubtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; @@ -3132,16 +3084,15 @@ namespace System public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - internal Avx() => throw null; - public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(float* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(double* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(float* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(float* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(double* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(float* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(float* address) => throw null; public static System.Runtime.Intrinsics.Vector256 Ceiling(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 Ceiling(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Compare(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.X86.FloatComparisonMode mode) => throw null; @@ -3177,80 +3128,80 @@ namespace System public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32WithTruncation(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Single(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Double(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Double(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Double(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32WithTruncation(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Single(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 Divide(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 Divide(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 DotProduct(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 DotProduct(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; public static System.Runtime.Intrinsics.Vector256 DuplicateEvenIndexed(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 DuplicateEvenIndexed(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 DuplicateOddIndexed(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; public static System.Runtime.Intrinsics.Vector256 Floor(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 Floor(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 HorizontalAdd(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 HorizontalAdd(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 HorizontalSubtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 HorizontalSubtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; public static bool IsSupported { get => throw null; } - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(System.UInt16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadDquVector256(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadDquVector256(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadDquVector256(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadDquVector256(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadDquVector256(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadDquVector256(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadDquVector256(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadDquVector256(System.UInt16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadVector256(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadVector256(double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadVector256(float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadVector256(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadVector256(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadVector256(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadVector256(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadVector256(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadVector256(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadVector256(System.UInt16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 MaskLoad(double* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 MaskLoad(double* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 MaskLoad(float* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 MaskLoad(float* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; - unsafe public static void MaskStore(double* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void MaskStore(double* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void MaskStore(float* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void MaskStore(float* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256(ulong* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadDquVector256(ulong* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadVector256(ulong* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(double* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(double* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(float* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(float* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static unsafe void MaskStore(double* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void MaskStore(double* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void MaskStore(float* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void MaskStore(float* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; @@ -3261,23 +3212,23 @@ namespace System public static System.Runtime.Intrinsics.Vector256 Multiply(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Permute(System.Runtime.Intrinsics.Vector128 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 Permute(System.Runtime.Intrinsics.Vector128 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 PermuteVar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 control) => throw null; + public static System.Runtime.Intrinsics.Vector128 Permute(System.Runtime.Intrinsics.Vector128 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 Permute(System.Runtime.Intrinsics.Vector128 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 PermuteVar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 control) => throw null; public static System.Runtime.Intrinsics.Vector128 PermuteVar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 control) => throw null; - public static System.Runtime.Intrinsics.Vector256 PermuteVar(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) => throw null; + public static System.Runtime.Intrinsics.Vector256 PermuteVar(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) => throw null; public static System.Runtime.Intrinsics.Vector256 PermuteVar(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) => throw null; public static System.Runtime.Intrinsics.Vector256 Reciprocal(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 ReciprocalSqrt(System.Runtime.Intrinsics.Vector256 value) => throw null; @@ -3291,601 +3242,583 @@ namespace System public static System.Runtime.Intrinsics.Vector256 RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 RoundToZero(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 RoundToZero(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; public static System.Runtime.Intrinsics.Vector256 Sqrt(System.Runtime.Intrinsics.Vector256 value) => throw null; public static System.Runtime.Intrinsics.Vector256 Sqrt(System.Runtime.Intrinsics.Vector256 value) => throw null; - unsafe public static void Store(System.Byte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void Store(double* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void Store(float* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void Store(int* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void Store(System.Int64* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void Store(System.SByte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void Store(System.Int16* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void Store(System.UInt32* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void Store(System.UInt64* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void Store(System.UInt16* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAligned(System.Byte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAligned(double* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAligned(float* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAligned(int* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAligned(System.Int64* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAligned(System.SByte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAligned(System.Int16* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAligned(System.UInt32* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAligned(System.UInt64* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAligned(System.UInt16* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.Byte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(double* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(float* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(int* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.Int64* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.SByte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.Int16* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.UInt32* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.UInt64* address, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.UInt16* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void Store(byte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void Store(double* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void Store(short* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void Store(int* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void Store(long* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void Store(sbyte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void Store(float* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void Store(ushort* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void Store(uint* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void Store(ulong* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAligned(byte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAligned(double* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAligned(short* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAligned(int* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAligned(long* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAligned(sbyte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAligned(float* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAligned(ushort* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAligned(uint* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAligned(ulong* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(byte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(double* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(short* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(int* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(long* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(float* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(uint* address, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector256 source) => throw null; public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public abstract class X64 : System.Runtime.Intrinsics.X86.Sse42.X64 + { + public static bool IsSupported { get => throw null; } + } public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; } - public abstract class Avx2 : System.Runtime.Intrinsics.X86.Avx { + public static System.Runtime.Intrinsics.Vector256 Abs(System.Runtime.Intrinsics.Vector256 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Abs(System.Runtime.Intrinsics.Vector256 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Abs(System.Runtime.Intrinsics.Vector256 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Average(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Average(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(byte* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(short* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(int* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(long* source) => throw null; + public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(sbyte* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(ushort* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(uint* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(ulong* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(byte* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(short* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(int* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(long* source) => throw null; + public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(sbyte* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(ushort* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(uint* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(ulong* source) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(ulong* address) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static int ConvertToInt32(System.Runtime.Intrinsics.Vector256 value) => throw null; + public static uint ConvertToUInt32(System.Runtime.Intrinsics.Vector256 value) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(byte* address) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(short* address) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(int* address) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(uint* address) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, byte index) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, long* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, long* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, double* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, int* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, long* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, long* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, float* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, ulong* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector256 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(long* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(long* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector256 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(uint* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 GatherVector128(ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(double* baseAddress, System.Runtime.Intrinsics.Vector256 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(int* baseAddress, System.Runtime.Intrinsics.Vector256 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(long* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(long* baseAddress, System.Runtime.Intrinsics.Vector256 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(float* baseAddress, System.Runtime.Intrinsics.Vector256 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(uint* baseAddress, System.Runtime.Intrinsics.Vector256 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(ulong* baseAddress, System.Runtime.Intrinsics.Vector128 index, byte scale) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 GatherVector256(ulong* baseAddress, System.Runtime.Intrinsics.Vector256 index, byte scale) => throw null; + public static System.Runtime.Intrinsics.Vector256 HorizontalAdd(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 HorizontalAdd(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 HorizontalAddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 HorizontalSubtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 HorizontalSubtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 HorizontalSubtractSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static bool IsSupported { get => throw null; } + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(ulong* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(int* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(int* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(long* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(long* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(uint* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(uint* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 MaskLoad(ulong* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector256 MaskLoad(ulong* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static unsafe void MaskStore(int* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void MaskStore(int* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void MaskStore(long* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void MaskStore(long* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void MaskStore(uint* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void MaskStore(uint* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static unsafe void MaskStore(ulong* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void MaskStore(ulong* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; + public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static int MoveMask(System.Runtime.Intrinsics.Vector256 value) => throw null; + public static int MoveMask(System.Runtime.Intrinsics.Vector256 value) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultipleSumAbsoluteDifferences(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 Multiply(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Multiply(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyAddAdjacent(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyAddAdjacent(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyHighRoundScale(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 PackSignedSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 PackSignedSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 PackUnsignedSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 PackUnsignedSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute4x64(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute4x64(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Permute4x64(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 PermuteVar8x32(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) => throw null; + public static System.Runtime.Intrinsics.Vector256 PermuteVar8x32(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) => throw null; + public static System.Runtime.Intrinsics.Vector256 PermuteVar8x32(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmeticVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 mask) => throw null; + public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShuffleHigh(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShuffleHigh(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShuffleLow(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 ShuffleLow(System.Runtime.Intrinsics.Vector256 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector256 Sign(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Sign(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Sign(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 SubtractSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 SubtractSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 SubtractSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 SubtractSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 SumAbsoluteDifferences(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public abstract class X64 : System.Runtime.Intrinsics.X86.Avx.X64 { public static bool IsSupported { get => throw null; } - internal X64() => throw null; } - - - public static System.Runtime.Intrinsics.Vector256 Abs(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Abs(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Abs(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Add(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 AlignRight(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 And(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 AndNot(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Average(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Average(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - internal Avx2() => throw null; - public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Blend(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 BlendVariable(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Runtime.Intrinsics.Vector256 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Runtime.Intrinsics.Vector128 value) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Byte* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(int* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Int64* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.SByte* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.Int16* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.UInt32* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.UInt64* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 BroadcastScalarToVector128(System.UInt16* source) => throw null; - public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Runtime.Intrinsics.Vector128 value) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Byte* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(int* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Int64* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.SByte* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.Int16* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.UInt32* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.UInt64* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastScalarToVector256(System.UInt16* source) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 BroadcastVector128ToVector256(System.UInt16* address) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareEqual(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 CompareGreaterThan(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static int ConvertToInt32(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static System.UInt32 ConvertToUInt32(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(System.Runtime.Intrinsics.Vector128 value) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int16(System.SByte* address) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int32(System.UInt16* address) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 ConvertToVector256Int64(System.UInt16* address) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 ExtractVector128(System.Runtime.Intrinsics.Vector256 value, System.Byte index) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, float* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, int* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, System.Int64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, System.Int64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, System.UInt32* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, System.UInt32* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, System.UInt32* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, System.UInt64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherMaskVector128(System.Runtime.Intrinsics.Vector128 source, System.UInt64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector128 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, double* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, float* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, int* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, System.Int64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, System.Int64* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, System.UInt32* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, System.UInt64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Runtime.Intrinsics.Vector256 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherMaskVector256(System.Runtime.Intrinsics.Vector256 source, System.UInt64* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Runtime.Intrinsics.Vector256 mask, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(float* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(int* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(System.Int64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(System.Int64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(System.UInt32* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(System.UInt32* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(System.UInt32* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(System.UInt64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 GatherVector128(System.UInt64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherVector256(double* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherVector256(double* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherVector256(float* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherVector256(int* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherVector256(System.Int64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherVector256(System.Int64* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherVector256(System.UInt32* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherVector256(System.UInt64* baseAddress, System.Runtime.Intrinsics.Vector128 index, System.Byte scale) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 GatherVector256(System.UInt64* baseAddress, System.Runtime.Intrinsics.Vector256 index, System.Byte scale) => throw null; - public static System.Runtime.Intrinsics.Vector256 HorizontalAdd(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 HorizontalAdd(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 HorizontalAddSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 HorizontalSubtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 HorizontalSubtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 HorizontalSubtractSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector256 InsertVector128(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static bool IsSupported { get => throw null; } - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 LoadAlignedVector256NonTemporal(System.UInt16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 MaskLoad(int* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 MaskLoad(int* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 MaskLoad(System.Int64* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 MaskLoad(System.Int64* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 MaskLoad(System.UInt32* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 MaskLoad(System.UInt32* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 MaskLoad(System.UInt64* address, System.Runtime.Intrinsics.Vector128 mask) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector256 MaskLoad(System.UInt64* address, System.Runtime.Intrinsics.Vector256 mask) => throw null; - unsafe public static void MaskStore(int* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void MaskStore(int* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void MaskStore(System.Int64* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void MaskStore(System.Int64* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void MaskStore(System.UInt32* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void MaskStore(System.UInt32* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; - unsafe public static void MaskStore(System.UInt64* address, System.Runtime.Intrinsics.Vector128 mask, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void MaskStore(System.UInt64* address, System.Runtime.Intrinsics.Vector256 mask, System.Runtime.Intrinsics.Vector256 source) => throw null; - public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Max(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Min(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static int MoveMask(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static int MoveMask(System.Runtime.Intrinsics.Vector256 value) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultipleSumAbsoluteDifferences(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 Multiply(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Multiply(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyAddAdjacent(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyAddAdjacent(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyHighRoundScale(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Or(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 PackSignedSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 PackSignedSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 PackUnsignedSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 PackUnsignedSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute2x128(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute4x64(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute4x64(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Permute4x64(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 PermuteVar8x32(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) => throw null; - public static System.Runtime.Intrinsics.Vector256 PermuteVar8x32(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) => throw null; - public static System.Runtime.Intrinsics.Vector256 PermuteVar8x32(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 control) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftLeftLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmeticVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightArithmeticVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical(System.Runtime.Intrinsics.Vector256 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector256 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShiftRightLogicalVariable(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 count) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Runtime.Intrinsics.Vector256 mask) => throw null; - public static System.Runtime.Intrinsics.Vector256 Shuffle(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShuffleHigh(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShuffleHigh(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShuffleLow(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 ShuffleLow(System.Runtime.Intrinsics.Vector256 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector256 Sign(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Sign(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Sign(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Subtract(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 SubtractSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 SubtractSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 SubtractSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 SubtractSaturate(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 SumAbsoluteDifferences(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackHigh(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 UnpackLow(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; } - public abstract class AvxVnni : System.Runtime.Intrinsics.X86.Avx2 { + public static bool IsSupported { get => throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyWideningAndAdd(System.Runtime.Intrinsics.Vector256 addend, System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyWideningAndAdd(System.Runtime.Intrinsics.Vector256 addend, System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyWideningAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyWideningAndAddSaturate(System.Runtime.Intrinsics.Vector256 addend, System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; + public static System.Runtime.Intrinsics.Vector256 MultiplyWideningAndAddSaturate(System.Runtime.Intrinsics.Vector256 addend, System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; public abstract class X64 : System.Runtime.Intrinsics.X86.Avx2.X64 { public static bool IsSupported { get => throw null; } } - - - public static bool IsSupported { get => throw null; } - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningAndAdd(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyWideningAndAdd(System.Runtime.Intrinsics.Vector256 addend, System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyWideningAndAdd(System.Runtime.Intrinsics.Vector256 addend, System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyWideningAndAddSaturate(System.Runtime.Intrinsics.Vector128 addend, System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyWideningAndAddSaturate(System.Runtime.Intrinsics.Vector256 addend, System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; - public static System.Runtime.Intrinsics.Vector256 MultiplyWideningAndAddSaturate(System.Runtime.Intrinsics.Vector256 addend, System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; } - public abstract class Bmi1 : System.Runtime.Intrinsics.X86.X86Base { + public static uint AndNot(uint left, uint right) => throw null; + public static uint BitFieldExtract(uint value, byte start, byte length) => throw null; + public static uint BitFieldExtract(uint value, ushort control) => throw null; + public static uint ExtractLowestSetBit(uint value) => throw null; + public static uint GetMaskUpToLowestSetBit(uint value) => throw null; + public static bool IsSupported { get => throw null; } + public static uint ResetLowestSetBit(uint value) => throw null; + public static uint TrailingZeroCount(uint value) => throw null; public abstract class X64 : System.Runtime.Intrinsics.X86.X86Base.X64 { - public static System.UInt64 AndNot(System.UInt64 left, System.UInt64 right) => throw null; - public static System.UInt64 BitFieldExtract(System.UInt64 value, System.Byte start, System.Byte length) => throw null; - public static System.UInt64 BitFieldExtract(System.UInt64 value, System.UInt16 control) => throw null; - public static System.UInt64 ExtractLowestSetBit(System.UInt64 value) => throw null; - public static System.UInt64 GetMaskUpToLowestSetBit(System.UInt64 value) => throw null; + public static ulong AndNot(ulong left, ulong right) => throw null; + public static ulong BitFieldExtract(ulong value, byte start, byte length) => throw null; + public static ulong BitFieldExtract(ulong value, ushort control) => throw null; + public static ulong ExtractLowestSetBit(ulong value) => throw null; + public static ulong GetMaskUpToLowestSetBit(ulong value) => throw null; public static bool IsSupported { get => throw null; } - public static System.UInt64 ResetLowestSetBit(System.UInt64 value) => throw null; - public static System.UInt64 TrailingZeroCount(System.UInt64 value) => throw null; + public static ulong ResetLowestSetBit(ulong value) => throw null; + public static ulong TrailingZeroCount(ulong value) => throw null; } - - - public static System.UInt32 AndNot(System.UInt32 left, System.UInt32 right) => throw null; - public static System.UInt32 BitFieldExtract(System.UInt32 value, System.Byte start, System.Byte length) => throw null; - public static System.UInt32 BitFieldExtract(System.UInt32 value, System.UInt16 control) => throw null; - public static System.UInt32 ExtractLowestSetBit(System.UInt32 value) => throw null; - public static System.UInt32 GetMaskUpToLowestSetBit(System.UInt32 value) => throw null; - public static bool IsSupported { get => throw null; } - public static System.UInt32 ResetLowestSetBit(System.UInt32 value) => throw null; - public static System.UInt32 TrailingZeroCount(System.UInt32 value) => throw null; } - public abstract class Bmi2 : System.Runtime.Intrinsics.X86.X86Base { + public static bool IsSupported { get => throw null; } + public static uint MultiplyNoFlags(uint left, uint right) => throw null; + public static unsafe uint MultiplyNoFlags(uint left, uint right, uint* low) => throw null; + public static uint ParallelBitDeposit(uint value, uint mask) => throw null; + public static uint ParallelBitExtract(uint value, uint mask) => throw null; public abstract class X64 : System.Runtime.Intrinsics.X86.X86Base.X64 { public static bool IsSupported { get => throw null; } - public static System.UInt64 MultiplyNoFlags(System.UInt64 left, System.UInt64 right) => throw null; - unsafe public static System.UInt64 MultiplyNoFlags(System.UInt64 left, System.UInt64 right, System.UInt64* low) => throw null; - public static System.UInt64 ParallelBitDeposit(System.UInt64 value, System.UInt64 mask) => throw null; - public static System.UInt64 ParallelBitExtract(System.UInt64 value, System.UInt64 mask) => throw null; - public static System.UInt64 ZeroHighBits(System.UInt64 value, System.UInt64 index) => throw null; + public static ulong MultiplyNoFlags(ulong left, ulong right) => throw null; + public static unsafe ulong MultiplyNoFlags(ulong left, ulong right, ulong* low) => throw null; + public static ulong ParallelBitDeposit(ulong value, ulong mask) => throw null; + public static ulong ParallelBitExtract(ulong value, ulong mask) => throw null; + public static ulong ZeroHighBits(ulong value, ulong index) => throw null; } - - - public static bool IsSupported { get => throw null; } - public static System.UInt32 MultiplyNoFlags(System.UInt32 left, System.UInt32 right) => throw null; - unsafe public static System.UInt32 MultiplyNoFlags(System.UInt32 left, System.UInt32 right, System.UInt32* low) => throw null; - public static System.UInt32 ParallelBitDeposit(System.UInt32 value, System.UInt32 mask) => throw null; - public static System.UInt32 ParallelBitExtract(System.UInt32 value, System.UInt32 mask) => throw null; - public static System.UInt32 ZeroHighBits(System.UInt32 value, System.UInt32 index) => throw null; + public static uint ZeroHighBits(uint value, uint index) => throw null; } - public enum FloatComparisonMode : byte { OrderedEqualNonSignaling = 0, - OrderedEqualSignaling = 16, - OrderedFalseNonSignaling = 11, - OrderedFalseSignaling = 27, - OrderedGreaterThanNonSignaling = 30, - OrderedGreaterThanOrEqualNonSignaling = 29, - OrderedGreaterThanOrEqualSignaling = 13, - OrderedGreaterThanSignaling = 14, - OrderedLessThanNonSignaling = 17, - OrderedLessThanOrEqualNonSignaling = 18, - OrderedLessThanOrEqualSignaling = 2, OrderedLessThanSignaling = 1, - OrderedNonSignaling = 7, - OrderedNotEqualNonSignaling = 12, - OrderedNotEqualSignaling = 28, - OrderedSignaling = 23, - UnorderedEqualNonSignaling = 8, - UnorderedEqualSignaling = 24, + OrderedLessThanOrEqualSignaling = 2, UnorderedNonSignaling = 3, UnorderedNotEqualNonSignaling = 4, - UnorderedNotEqualSignaling = 20, - UnorderedNotGreaterThanNonSignaling = 26, - UnorderedNotGreaterThanOrEqualNonSignaling = 25, + UnorderedNotLessThanSignaling = 5, + UnorderedNotLessThanOrEqualSignaling = 6, + OrderedNonSignaling = 7, + UnorderedEqualNonSignaling = 8, UnorderedNotGreaterThanOrEqualSignaling = 9, UnorderedNotGreaterThanSignaling = 10, + OrderedFalseNonSignaling = 11, + OrderedNotEqualNonSignaling = 12, + OrderedGreaterThanOrEqualSignaling = 13, + OrderedGreaterThanSignaling = 14, + UnorderedTrueNonSignaling = 15, + OrderedEqualSignaling = 16, + OrderedLessThanNonSignaling = 17, + OrderedLessThanOrEqualNonSignaling = 18, + UnorderedSignaling = 19, + UnorderedNotEqualSignaling = 20, UnorderedNotLessThanNonSignaling = 21, UnorderedNotLessThanOrEqualNonSignaling = 22, - UnorderedNotLessThanOrEqualSignaling = 6, - UnorderedNotLessThanSignaling = 5, - UnorderedSignaling = 19, - UnorderedTrueNonSignaling = 15, + OrderedSignaling = 23, + UnorderedEqualSignaling = 24, + UnorderedNotGreaterThanOrEqualNonSignaling = 25, + UnorderedNotGreaterThanNonSignaling = 26, + OrderedFalseSignaling = 27, + OrderedNotEqualSignaling = 28, + OrderedGreaterThanOrEqualNonSignaling = 29, + OrderedGreaterThanNonSignaling = 30, UnorderedTrueSignaling = 31, } - public abstract class Fma : System.Runtime.Intrinsics.X86.Avx { - public abstract class X64 : System.Runtime.Intrinsics.X86.Avx.X64 - { - public static bool IsSupported { get => throw null; } - } - - public static bool IsSupported { get => throw null; } public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyAdd(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) => throw null; @@ -3919,59 +3852,43 @@ namespace System public static System.Runtime.Intrinsics.Vector128 MultiplySubtractNegatedScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplySubtractScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplySubtractScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) => throw null; + public abstract class X64 : System.Runtime.Intrinsics.X86.Avx.X64 + { + public static bool IsSupported { get => throw null; } + } } - public abstract class Lzcnt : System.Runtime.Intrinsics.X86.X86Base { + public static bool IsSupported { get => throw null; } + public static uint LeadingZeroCount(uint value) => throw null; public abstract class X64 : System.Runtime.Intrinsics.X86.X86Base.X64 { public static bool IsSupported { get => throw null; } - public static System.UInt64 LeadingZeroCount(System.UInt64 value) => throw null; + public static ulong LeadingZeroCount(ulong value) => throw null; } - - - public static bool IsSupported { get => throw null; } - public static System.UInt32 LeadingZeroCount(System.UInt32 value) => throw null; } - public abstract class Pclmulqdq : System.Runtime.Intrinsics.X86.Sse2 { + public static System.Runtime.Intrinsics.Vector128 CarrylessMultiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 CarrylessMultiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static bool IsSupported { get => throw null; } public abstract class X64 : System.Runtime.Intrinsics.X86.Sse2.X64 { public static bool IsSupported { get => throw null; } } - - - public static System.Runtime.Intrinsics.Vector128 CarrylessMultiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 CarrylessMultiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static bool IsSupported { get => throw null; } } - public abstract class Popcnt : System.Runtime.Intrinsics.X86.Sse42 { + public static bool IsSupported { get => throw null; } + public static uint PopCount(uint value) => throw null; public abstract class X64 : System.Runtime.Intrinsics.X86.Sse42.X64 { public static bool IsSupported { get => throw null; } - public static System.UInt64 PopCount(System.UInt64 value) => throw null; + public static ulong PopCount(ulong value) => throw null; } - - - public static bool IsSupported { get => throw null; } - public static System.UInt32 PopCount(System.UInt32 value) => throw null; } - public abstract class Sse : System.Runtime.Intrinsics.X86.X86Base { - public abstract class X64 : System.Runtime.Intrinsics.X86.X86Base.X64 - { - public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Single(System.Runtime.Intrinsics.Vector128 upper, System.Int64 value) => throw null; - public static System.Int64 ConvertToInt64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Int64 ConvertToInt64WithTruncation(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static bool IsSupported { get => throw null; } - internal X64() => throw null; - } - - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 AddScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; @@ -4018,11 +3935,11 @@ namespace System public static System.Runtime.Intrinsics.Vector128 Divide(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 DivideScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static bool IsSupported { get => throw null; } - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadHigh(System.Runtime.Intrinsics.Vector128 lower, float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadLow(System.Runtime.Intrinsics.Vector128 upper, float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(float* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadHigh(System.Runtime.Intrinsics.Vector128 lower, float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadLow(System.Runtime.Intrinsics.Vector128 upper, float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(float* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(float* address) => throw null; public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MaxScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; @@ -4034,103 +3951,92 @@ namespace System public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - unsafe public static void Prefetch0(void* address) => throw null; - unsafe public static void Prefetch1(void* address) => throw null; - unsafe public static void Prefetch2(void* address) => throw null; - unsafe public static void PrefetchNonTemporal(void* address) => throw null; + public static unsafe void Prefetch0(void* address) => throw null; + public static unsafe void Prefetch1(void* address) => throw null; + public static unsafe void Prefetch2(void* address) => throw null; + public static unsafe void PrefetchNonTemporal(void* address) => throw null; public static System.Runtime.Intrinsics.Vector128 Reciprocal(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ReciprocalScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ReciprocalScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ReciprocalSqrt(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ReciprocalSqrtScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ReciprocalSqrtScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; public static System.Runtime.Intrinsics.Vector128 Sqrt(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 SqrtScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 SqrtScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; - internal Sse() => throw null; - unsafe public static void Store(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAligned(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAligned(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; public static void StoreFence() => throw null; - unsafe public static void StoreHigh(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreLow(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreScalar(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreHigh(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreLow(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreScalar(float* address, System.Runtime.Intrinsics.Vector128 source) => throw null; public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 SubtractScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public abstract class X64 : System.Runtime.Intrinsics.X86.X86Base.X64 + { + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Single(System.Runtime.Intrinsics.Vector128 upper, long value) => throw null; + public static long ConvertToInt64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static long ConvertToInt64WithTruncation(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static bool IsSupported { get => throw null; } + } public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; } - public abstract class Sse2 : System.Runtime.Intrinsics.X86.Sse { - public abstract class X64 : System.Runtime.Intrinsics.X86.Sse.X64 - { - public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Double(System.Runtime.Intrinsics.Vector128 upper, System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Int64(System.Int64 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128UInt64(System.UInt64 value) => throw null; - public static System.Int64 ConvertToInt64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Int64 ConvertToInt64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Int64 ConvertToInt64WithTruncation(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.UInt64 ConvertToUInt64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static bool IsSupported { get => throw null; } - unsafe public static void StoreNonTemporal(System.Int64* address, System.Int64 value) => throw null; - unsafe public static void StoreNonTemporal(System.UInt64* address, System.UInt64 value) => throw null; - internal X64() => throw null; - } - - - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Add(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 AddScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 And(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Average(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Average(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 AndNot(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Average(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Average(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareLessThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareNotEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareNotGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; @@ -4163,17 +4069,17 @@ namespace System public static bool CompareScalarUnorderedLessThanOrEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static bool CompareScalarUnorderedNotEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 CompareUnordered(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Double(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Double(System.Runtime.Intrinsics.Vector128 upper, int value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Double(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Int32(int value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Single(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128UInt32(System.UInt32 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128UInt32(uint value) => throw null; public static int ConvertToInt32(System.Runtime.Intrinsics.Vector128 value) => throw null; public static int ConvertToInt32(System.Runtime.Intrinsics.Vector128 value) => throw null; public static int ConvertToInt32WithTruncation(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.UInt32 ConvertToUInt32(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Double(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static uint ConvertToUInt32(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Double(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Double(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32WithTruncation(System.Runtime.Intrinsics.Vector128 value) => throw null; @@ -4182,217 +4088,221 @@ namespace System public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Single(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Divide(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 DivideScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.UInt16 Extract(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, System.Int16 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, System.UInt16 data, System.Byte index) => throw null; + public static ushort Extract(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, short data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, ushort data, byte index) => throw null; public static bool IsSupported { get => throw null; } - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(System.UInt16* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128(ulong* address) => throw null; public static void LoadFence() => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadHigh(System.Runtime.Intrinsics.Vector128 lower, double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadLow(System.Runtime.Intrinsics.Vector128 upper, double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadScalarVector128(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadVector128(System.UInt16* address) => throw null; - unsafe public static void MaskMove(System.Runtime.Intrinsics.Vector128 source, System.Runtime.Intrinsics.Vector128 mask, System.Byte* address) => throw null; - unsafe public static void MaskMove(System.Runtime.Intrinsics.Vector128 source, System.Runtime.Intrinsics.Vector128 mask, System.SByte* address) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadHigh(System.Runtime.Intrinsics.Vector128 lower, double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadLow(System.Runtime.Intrinsics.Vector128 upper, double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadScalarVector128(ulong* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadVector128(ulong* address) => throw null; + public static unsafe void MaskMove(System.Runtime.Intrinsics.Vector128 source, System.Runtime.Intrinsics.Vector128 mask, byte* address) => throw null; + public static unsafe void MaskMove(System.Runtime.Intrinsics.Vector128 source, System.Runtime.Intrinsics.Vector128 mask, sbyte* address) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MaxScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static void MemoryFence() => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MinScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static int MoveMask(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static int MoveMask(System.Runtime.Intrinsics.Vector128 value) => throw null; public static int MoveMask(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static int MoveMask(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static int MoveMask(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 MoveScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 MoveScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 MoveScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 MoveScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 MoveScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyAddAdjacent(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyAddAdjacent(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PackSignedSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PackSignedSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PackUnsignedSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Or(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PackSignedSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PackSignedSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PackUnsignedSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftLeftLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Byte count) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, System.Byte numBytes) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShuffleHigh(System.Runtime.Intrinsics.Vector128 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShuffleHigh(System.Runtime.Intrinsics.Vector128 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShuffleLow(System.Runtime.Intrinsics.Vector128 value, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 ShuffleLow(System.Runtime.Intrinsics.Vector128 value, System.Byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, byte count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 count) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShiftRightLogical128BitLane(System.Runtime.Intrinsics.Vector128 value, byte numBytes) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShuffleHigh(System.Runtime.Intrinsics.Vector128 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShuffleHigh(System.Runtime.Intrinsics.Vector128 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShuffleLow(System.Runtime.Intrinsics.Vector128 value, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 ShuffleLow(System.Runtime.Intrinsics.Vector128 value, byte control) => throw null; public static System.Runtime.Intrinsics.Vector128 Sqrt(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 SqrtScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 SqrtScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; - internal Sse2() => throw null; - unsafe public static void Store(System.Byte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(int* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.Int64* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.SByte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.Int16* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.UInt32* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.UInt64* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void Store(System.UInt16* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAligned(System.Byte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAligned(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAligned(int* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAligned(System.Int64* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAligned(System.SByte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAligned(System.Int16* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAligned(System.UInt32* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAligned(System.UInt64* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAligned(System.UInt16* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.Byte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(int* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.Int64* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.SByte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.Int16* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.UInt32* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.UInt64* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreAlignedNonTemporal(System.UInt16* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreHigh(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreLow(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreNonTemporal(int* address, int value) => throw null; - unsafe public static void StoreNonTemporal(System.UInt32* address, System.UInt32 value) => throw null; - unsafe public static void StoreScalar(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreScalar(int* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreScalar(System.Int64* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreScalar(System.UInt32* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - unsafe public static void StoreScalar(System.UInt64* address, System.Runtime.Intrinsics.Vector128 source) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static unsafe void Store(byte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(short* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(int* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(long* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(sbyte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(ushort* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(uint* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void Store(ulong* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAligned(byte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAligned(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAligned(short* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAligned(int* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAligned(long* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAligned(sbyte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAligned(ushort* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAligned(uint* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAligned(ulong* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(byte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(short* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(int* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(long* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(sbyte* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(ushort* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(uint* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreAlignedNonTemporal(ulong* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreHigh(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreLow(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreNonTemporal(int* address, int value) => throw null; + public static unsafe void StoreNonTemporal(uint* address, uint value) => throw null; + public static unsafe void StoreScalar(double* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreScalar(int* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreScalar(long* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreScalar(uint* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static unsafe void StoreScalar(ulong* address, System.Runtime.Intrinsics.Vector128 source) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Subtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 SubtractScalar(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 SumAbsoluteDifferences(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 SumAbsoluteDifferences(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackHigh(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 UnpackLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public abstract class X64 : System.Runtime.Intrinsics.X86.Sse.X64 + { + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Double(System.Runtime.Intrinsics.Vector128 upper, long value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128Int64(long value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertScalarToVector128UInt64(ulong value) => throw null; + public static long ConvertToInt64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static long ConvertToInt64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static long ConvertToInt64WithTruncation(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static ulong ConvertToUInt64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static bool IsSupported { get => throw null; } + public static unsafe void StoreNonTemporal(long* address, long value) => throw null; + public static unsafe void StoreNonTemporal(ulong* address, ulong value) => throw null; + } + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; } - public abstract class Sse3 : System.Runtime.Intrinsics.X86.Sse2 { - public abstract class X64 : System.Runtime.Intrinsics.X86.Sse2.X64 - { - public static bool IsSupported { get => throw null; } - internal X64() => throw null; - } - - public static System.Runtime.Intrinsics.Vector128 AddSubtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 AddSubtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 HorizontalAdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; @@ -4400,120 +4310,111 @@ namespace System public static System.Runtime.Intrinsics.Vector128 HorizontalSubtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 HorizontalSubtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static bool IsSupported { get => throw null; } - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAndDuplicateToVector128(double* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadDquVector128(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadDquVector128(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadDquVector128(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadDquVector128(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadDquVector128(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadDquVector128(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadDquVector128(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadDquVector128(System.UInt16* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAndDuplicateToVector128(double* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadDquVector128(ulong* address) => throw null; public static System.Runtime.Intrinsics.Vector128 MoveAndDuplicate(System.Runtime.Intrinsics.Vector128 source) => throw null; public static System.Runtime.Intrinsics.Vector128 MoveHighAndDuplicate(System.Runtime.Intrinsics.Vector128 source) => throw null; public static System.Runtime.Intrinsics.Vector128 MoveLowAndDuplicate(System.Runtime.Intrinsics.Vector128 source) => throw null; - internal Sse3() => throw null; + public abstract class X64 : System.Runtime.Intrinsics.X86.Sse2.X64 + { + public static bool IsSupported { get => throw null; } + } } - public abstract class Sse41 : System.Runtime.Intrinsics.X86.Ssse3 { - public abstract class X64 : System.Runtime.Intrinsics.X86.Ssse3.X64 - { - public static System.Int64 Extract(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.UInt64 Extract(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, System.Int64 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, System.UInt64 data, System.Byte index) => throw null; - public static bool IsSupported { get => throw null; } - internal X64() => throw null; - } - - - public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 Blend(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 BlendVariable(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Runtime.Intrinsics.Vector128 mask) => throw null; public static System.Runtime.Intrinsics.Vector128 Ceiling(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Ceiling(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 CeilingScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 CeilingScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 CeilingScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 CeilingScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector128 value) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.SByte* address) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.UInt16* address) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.UInt16* address) => throw null; - public static System.Runtime.Intrinsics.Vector128 DotProduct(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static System.Runtime.Intrinsics.Vector128 DotProduct(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte control) => throw null; - public static System.Byte Extract(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static float Extract(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static int Extract(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; - public static System.UInt32 Extract(System.Runtime.Intrinsics.Vector128 value, System.Byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 CompareEqual(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(byte* address) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int16(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(short* address) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int32(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(int* address) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 ConvertToVector128Int64(uint* address) => throw null; + public static System.Runtime.Intrinsics.Vector128 DotProduct(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static System.Runtime.Intrinsics.Vector128 DotProduct(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte control) => throw null; + public static byte Extract(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static int Extract(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static float Extract(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static uint Extract(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; public static System.Runtime.Intrinsics.Vector128 Floor(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 Floor(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 FloorScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 FloorScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 FloorScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 FloorScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, System.Byte data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, int data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, System.SByte data, System.Byte index) => throw null; - public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, System.UInt32 data, System.Byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, byte data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, int data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, sbyte data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, uint data, byte index) => throw null; public static bool IsSupported { get => throw null; } - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(System.Byte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(int* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(System.Int64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(System.SByte* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(System.Int16* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(System.UInt32* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(System.UInt64* address) => throw null; - unsafe public static System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(System.UInt16* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(byte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(short* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(int* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(long* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(sbyte* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(ushort* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(uint* address) => throw null; + public static unsafe System.Runtime.Intrinsics.Vector128 LoadAlignedVector128NonTemporal(ulong* address) => throw null; public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Max(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MinHorizontal(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultipleSumAbsoluteDifferences(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Min(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MinHorizontal(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultipleSumAbsoluteDifferences(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 Multiply(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 MultiplyLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 PackUnsignedSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyLow(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 PackUnsignedSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundCurrentDirection(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundCurrentDirection(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundCurrentDirectionScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; @@ -4544,115 +4445,103 @@ namespace System public static System.Runtime.Intrinsics.Vector128 RoundToZeroScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundToZeroScalar(System.Runtime.Intrinsics.Vector128 value) => throw null; public static System.Runtime.Intrinsics.Vector128 RoundToZeroScalar(System.Runtime.Intrinsics.Vector128 upper, System.Runtime.Intrinsics.Vector128 value) => throw null; - internal Sse41() => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestNotZAndNotC(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public abstract class X64 : System.Runtime.Intrinsics.X86.Ssse3.X64 + { + public static long Extract(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static ulong Extract(System.Runtime.Intrinsics.Vector128 value, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, long data, byte index) => throw null; + public static System.Runtime.Intrinsics.Vector128 Insert(System.Runtime.Intrinsics.Vector128 value, ulong data, byte index) => throw null; + public static bool IsSupported { get => throw null; } + } } - public abstract class Sse42 : System.Runtime.Intrinsics.X86.Sse41 { + public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static uint Crc32(uint crc, byte data) => throw null; + public static uint Crc32(uint crc, ushort data) => throw null; + public static uint Crc32(uint crc, uint data) => throw null; + public static bool IsSupported { get => throw null; } public abstract class X64 : System.Runtime.Intrinsics.X86.Sse41.X64 { - public static System.UInt64 Crc32(System.UInt64 crc, System.UInt64 data) => throw null; + public static ulong Crc32(ulong crc, ulong data) => throw null; public static bool IsSupported { get => throw null; } - internal X64() => throw null; } - - - public static System.Runtime.Intrinsics.Vector128 CompareGreaterThan(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.UInt32 Crc32(System.UInt32 crc, System.Byte data) => throw null; - public static System.UInt32 Crc32(System.UInt32 crc, System.UInt32 data) => throw null; - public static System.UInt32 Crc32(System.UInt32 crc, System.UInt16 data) => throw null; - public static bool IsSupported { get => throw null; } - internal Sse42() => throw null; } - public abstract class Ssse3 : System.Runtime.Intrinsics.X86.Sse3 { + public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; + public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, byte mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 HorizontalAdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 HorizontalAdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 HorizontalAddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 HorizontalSubtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 HorizontalSubtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 HorizontalSubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static bool IsSupported { get => throw null; } + public static System.Runtime.Intrinsics.Vector128 MultiplyAddAdjacent(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 MultiplyHighRoundScale(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; + public static System.Runtime.Intrinsics.Vector128 Sign(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Sign(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; + public static System.Runtime.Intrinsics.Vector128 Sign(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; public abstract class X64 : System.Runtime.Intrinsics.X86.Sse3.X64 { public static bool IsSupported { get => throw null; } - internal X64() => throw null; } - - - public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; - public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 AlignRight(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right, System.Byte mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 HorizontalAdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 HorizontalAdd(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 HorizontalAddSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 HorizontalSubtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 HorizontalSubtract(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 HorizontalSubtractSaturate(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static bool IsSupported { get => throw null; } - public static System.Runtime.Intrinsics.Vector128 MultiplyAddAdjacent(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 MultiplyHighRoundScale(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 Shuffle(System.Runtime.Intrinsics.Vector128 value, System.Runtime.Intrinsics.Vector128 mask) => throw null; - public static System.Runtime.Intrinsics.Vector128 Sign(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Sign(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - public static System.Runtime.Intrinsics.Vector128 Sign(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; - internal Ssse3() => throw null; } - public abstract class X86Base { + public static (int Eax, int Ebx, int Ecx, int Edx) CpuId(int functionId, int subFunctionId) => throw null; + public static bool IsSupported { get => throw null; } + public static void Pause() => throw null; public abstract class X64 { public static bool IsSupported { get => throw null; } - internal X64() => throw null; } - - - public static (int, int, int, int) CpuId(int functionId, int subFunctionId) => throw null; - public static bool IsSupported { get => throw null; } - public static void Pause() => throw null; - internal X86Base() => throw null; } - public abstract class X86Serialize : System.Runtime.Intrinsics.X86.X86Base { + public static bool IsSupported { get => throw null; } + public static void Serialize() => throw null; public abstract class X64 : System.Runtime.Intrinsics.X86.X86Base.X64 { public static bool IsSupported { get => throw null; } } - - - public static bool IsSupported { get => throw null; } - public static void Serialize() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Loader.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Loader.cs index 46db4a1d80b..54ecb7b6aa5 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Loader.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Loader.cs @@ -1,67 +1,57 @@ // This file contains auto-generated code. // Generated from `System.Runtime.Loader, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Reflection { namespace Metadata { - public static class AssemblyExtensions + public static partial class AssemblyExtensions { - unsafe public static bool TryGetRawMetadata(this System.Reflection.Assembly assembly, out System.Byte* blob, out int length) => throw null; + public static unsafe bool TryGetRawMetadata(this System.Reflection.Assembly assembly, out byte* blob, out int length) => throw null; } - - public class MetadataUpdateHandlerAttribute : System.Attribute + public sealed class MetadataUpdateHandlerAttribute : System.Attribute { - public System.Type HandlerType { get => throw null; } public MetadataUpdateHandlerAttribute(System.Type handlerType) => throw null; + public System.Type HandlerType { get => throw null; } } - public static class MetadataUpdater { - public static void ApplyUpdate(System.Reflection.Assembly assembly, System.ReadOnlySpan metadataDelta, System.ReadOnlySpan ilDelta, System.ReadOnlySpan pdbDelta) => throw null; + public static void ApplyUpdate(System.Reflection.Assembly assembly, System.ReadOnlySpan metadataDelta, System.ReadOnlySpan ilDelta, System.ReadOnlySpan pdbDelta) => throw null; public static bool IsSupported { get => throw null; } } - } } namespace Runtime { namespace CompilerServices { - public class CreateNewOnMetadataUpdateAttribute : System.Attribute + public sealed class CreateNewOnMetadataUpdateAttribute : System.Attribute { public CreateNewOnMetadataUpdateAttribute() => throw null; } - public class MetadataUpdateOriginalTypeAttribute : System.Attribute { public MetadataUpdateOriginalTypeAttribute(System.Type originalType) => throw null; public System.Type OriginalType { get => throw null; } } - } namespace Loader { - public class AssemblyDependencyResolver + public sealed class AssemblyDependencyResolver { public AssemblyDependencyResolver(string componentAssemblyPath) => throw null; public string ResolveAssemblyToPath(System.Reflection.AssemblyName assemblyName) => throw null; public string ResolveUnmanagedDllToPath(string unmanagedDllName) => throw null; } - public class AssemblyLoadContext { - public struct ContextualReflectionScope : System.IDisposable - { - // Stub generator skipped constructor - public void Dispose() => throw null; - } - - public static System.Collections.Generic.IEnumerable All { get => throw null; } public System.Collections.Generic.IEnumerable Assemblies { get => throw null; } + public struct ContextualReflectionScope : System.IDisposable + { + public void Dispose() => throw null; + } protected AssemblyLoadContext() => throw null; protected AssemblyLoadContext(bool isCollectible) => throw null; public AssemblyLoadContext(string name, bool isCollectible = default(bool)) => throw null; @@ -78,19 +68,17 @@ namespace System public System.Reflection.Assembly LoadFromNativeImagePath(string nativeImagePath, string assemblyPath) => throw null; public System.Reflection.Assembly LoadFromStream(System.IO.Stream assembly) => throw null; public System.Reflection.Assembly LoadFromStream(System.IO.Stream assembly, System.IO.Stream assemblySymbols) => throw null; - protected virtual System.IntPtr LoadUnmanagedDll(string unmanagedDllName) => throw null; - protected System.IntPtr LoadUnmanagedDllFromPath(string unmanagedDllPath) => throw null; + protected virtual nint LoadUnmanagedDll(string unmanagedDllName) => throw null; + protected nint LoadUnmanagedDllFromPath(string unmanagedDllPath) => throw null; public string Name { get => throw null; } - public event System.Func Resolving; - public event System.Func ResolvingUnmanagedDll; + public event System.Func Resolving { add { } remove { } } + public event System.Func ResolvingUnmanagedDll { add { } remove { } } public void SetProfileOptimizationRoot(string directoryPath) => throw null; public void StartProfileOptimization(string profile) => throw null; public override string ToString() => throw null; public void Unload() => throw null; - public event System.Action Unloading; - // ERR: Stub generator didn't handle member: ~AssemblyLoadContext + public event System.Action Unloading { add { } remove { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs index a271d3609e0..df8fa849568 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs @@ -1,127 +1,82 @@ // This file contains auto-generated code. // Generated from `System.Runtime.Numerics, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Numerics { - public struct BigInteger : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators + public struct BigInteger : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static bool operator !=(System.Numerics.BigInteger left, System.Int64 right) => throw null; - public static bool operator !=(System.Numerics.BigInteger left, System.UInt64 right) => throw null; - public static bool operator !=(System.Int64 left, System.Numerics.BigInteger right) => throw null; - public static bool operator !=(System.UInt64 left, System.Numerics.BigInteger right) => throw null; - static System.Numerics.BigInteger System.Numerics.IModulusOperators.operator %(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor) => throw null; - static System.Numerics.BigInteger System.Numerics.IBitwiseOperators.operator &(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - static System.Numerics.BigInteger System.Numerics.IMultiplyOperators.operator *(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - static System.Numerics.BigInteger System.Numerics.IUnaryPlusOperators.operator +(System.Numerics.BigInteger value) => throw null; - static System.Numerics.BigInteger System.Numerics.IAdditionOperators.operator +(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - static System.Numerics.BigInteger System.Numerics.IIncrementOperators.operator ++(System.Numerics.BigInteger value) => throw null; - static System.Numerics.BigInteger System.Numerics.IUnaryNegationOperators.operator -(System.Numerics.BigInteger value) => throw null; - static System.Numerics.BigInteger System.Numerics.ISubtractionOperators.operator -(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - static System.Numerics.BigInteger System.Numerics.IDecrementOperators.operator --(System.Numerics.BigInteger value) => throw null; - static System.Numerics.BigInteger System.Numerics.IDivisionOperators.operator /(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static bool operator <(System.Numerics.BigInteger left, System.Int64 right) => throw null; - public static bool operator <(System.Numerics.BigInteger left, System.UInt64 right) => throw null; - public static bool operator <(System.Int64 left, System.Numerics.BigInteger right) => throw null; - public static bool operator <(System.UInt64 left, System.Numerics.BigInteger right) => throw null; - static System.Numerics.BigInteger System.Numerics.IShiftOperators.operator <<(System.Numerics.BigInteger value, int shift) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static bool operator <=(System.Numerics.BigInteger left, System.Int64 right) => throw null; - public static bool operator <=(System.Numerics.BigInteger left, System.UInt64 right) => throw null; - public static bool operator <=(System.Int64 left, System.Numerics.BigInteger right) => throw null; - public static bool operator <=(System.UInt64 left, System.Numerics.BigInteger right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static bool operator ==(System.Numerics.BigInteger left, System.Int64 right) => throw null; - public static bool operator ==(System.Numerics.BigInteger left, System.UInt64 right) => throw null; - public static bool operator ==(System.Int64 left, System.Numerics.BigInteger right) => throw null; - public static bool operator ==(System.UInt64 left, System.Numerics.BigInteger right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static bool operator >(System.Numerics.BigInteger left, System.Int64 right) => throw null; - public static bool operator >(System.Numerics.BigInteger left, System.UInt64 right) => throw null; - public static bool operator >(System.Int64 left, System.Numerics.BigInteger right) => throw null; - public static bool operator >(System.UInt64 left, System.Numerics.BigInteger right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static bool operator >=(System.Numerics.BigInteger left, System.Int64 right) => throw null; - public static bool operator >=(System.Numerics.BigInteger left, System.UInt64 right) => throw null; - public static bool operator >=(System.Int64 left, System.Numerics.BigInteger right) => throw null; - public static bool operator >=(System.UInt64 left, System.Numerics.BigInteger right) => throw null; - static System.Numerics.BigInteger System.Numerics.IShiftOperators.operator >>(System.Numerics.BigInteger value, int shift) => throw null; - static System.Numerics.BigInteger System.Numerics.IShiftOperators.operator >>>(System.Numerics.BigInteger value, int shiftAmount) => throw null; - public static System.Numerics.BigInteger Abs(System.Numerics.BigInteger value) => throw null; + static System.Numerics.BigInteger System.Numerics.INumberBase.Abs(System.Numerics.BigInteger value) => throw null; public static System.Numerics.BigInteger Add(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; static System.Numerics.BigInteger System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } static System.Numerics.BigInteger System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - // Stub generator skipped constructor - public BigInteger(System.Byte[] value) => throw null; - public BigInteger(System.ReadOnlySpan value, bool isUnsigned = default(bool), bool isBigEndian = default(bool)) => throw null; - public BigInteger(System.Decimal value) => throw null; - public BigInteger(double value) => throw null; - public BigInteger(float value) => throw null; - public BigInteger(int value) => throw null; - public BigInteger(System.Int64 value) => throw null; - public BigInteger(System.UInt32 value) => throw null; - public BigInteger(System.UInt64 value) => throw null; - public static System.Numerics.BigInteger Clamp(System.Numerics.BigInteger value, System.Numerics.BigInteger min, System.Numerics.BigInteger max) => throw null; + static System.Numerics.BigInteger System.Numerics.INumber.Clamp(System.Numerics.BigInteger value, System.Numerics.BigInteger min, System.Numerics.BigInteger max) => throw null; public static int Compare(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + public int CompareTo(long other) => throw null; public int CompareTo(System.Numerics.BigInteger other) => throw null; - public int CompareTo(System.Int64 other) => throw null; public int CompareTo(object obj) => throw null; - public int CompareTo(System.UInt64 other) => throw null; - public static System.Numerics.BigInteger CopySign(System.Numerics.BigInteger value, System.Numerics.BigInteger sign) => throw null; + public int CompareTo(ulong other) => throw null; + static System.Numerics.BigInteger System.Numerics.INumber.CopySign(System.Numerics.BigInteger value, System.Numerics.BigInteger sign) => throw null; static System.Numerics.BigInteger System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; static System.Numerics.BigInteger System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; static System.Numerics.BigInteger System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - static (System.Numerics.BigInteger, System.Numerics.BigInteger) System.Numerics.IBinaryInteger.DivRem(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static System.Numerics.BigInteger DivRem(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor, out System.Numerics.BigInteger remainder) => throw null; + public BigInteger(byte[] value) => throw null; + public BigInteger(decimal value) => throw null; + public BigInteger(double value) => throw null; + public BigInteger(int value) => throw null; + public BigInteger(long value) => throw null; + public BigInteger(System.ReadOnlySpan value, bool isUnsigned = default(bool), bool isBigEndian = default(bool)) => throw null; + public BigInteger(float value) => throw null; + public BigInteger(uint value) => throw null; + public BigInteger(ulong value) => throw null; public static System.Numerics.BigInteger Divide(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor) => throw null; + static (System.Numerics.BigInteger Quotient, System.Numerics.BigInteger Remainder) System.Numerics.IBinaryInteger.DivRem(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + public static System.Numerics.BigInteger DivRem(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor, out System.Numerics.BigInteger remainder) => throw null; + public bool Equals(long other) => throw null; public bool Equals(System.Numerics.BigInteger other) => throw null; - public bool Equals(System.Int64 other) => throw null; public override bool Equals(object obj) => throw null; - public bool Equals(System.UInt64 other) => throw null; - public System.Int64 GetBitLength() => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + public bool Equals(ulong other) => throw null; + public long GetBitLength() => throw null; public int GetByteCount(bool isUnsigned = default(bool)) => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; public static System.Numerics.BigInteger GreatestCommonDivisor(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static bool IsCanonical(System.Numerics.BigInteger value) => throw null; - public static bool IsComplexNumber(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(System.Numerics.BigInteger value) => throw null; public bool IsEven { get => throw null; } - public static bool IsEvenInteger(System.Numerics.BigInteger value) => throw null; - public static bool IsFinite(System.Numerics.BigInteger value) => throw null; - public static bool IsImaginaryNumber(System.Numerics.BigInteger value) => throw null; - public static bool IsInfinity(System.Numerics.BigInteger value) => throw null; - public static bool IsInteger(System.Numerics.BigInteger value) => throw null; - public static bool IsNaN(System.Numerics.BigInteger value) => throw null; - public static bool IsNegative(System.Numerics.BigInteger value) => throw null; - public static bool IsNegativeInfinity(System.Numerics.BigInteger value) => throw null; - public static bool IsNormal(System.Numerics.BigInteger value) => throw null; - public static bool IsOddInteger(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(System.Numerics.BigInteger value) => throw null; public bool IsOne { get => throw null; } - public static bool IsPositive(System.Numerics.BigInteger value) => throw null; - public static bool IsPositiveInfinity(System.Numerics.BigInteger value) => throw null; - public static bool IsPow2(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(System.Numerics.BigInteger value) => throw null; public bool IsPowerOfTwo { get => throw null; } - public static bool IsRealNumber(System.Numerics.BigInteger value) => throw null; - public static bool IsSubnormal(System.Numerics.BigInteger value) => throw null; - public bool IsZero { get => throw null; } + static bool System.Numerics.INumberBase.IsRealNumber(System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(System.Numerics.BigInteger value) => throw null; static bool System.Numerics.INumberBase.IsZero(System.Numerics.BigInteger value) => throw null; - public static System.Numerics.BigInteger LeadingZeroCount(System.Numerics.BigInteger value) => throw null; + public bool IsZero { get => throw null; } + static System.Numerics.BigInteger System.Numerics.IBinaryInteger.LeadingZeroCount(System.Numerics.BigInteger value) => throw null; public static double Log(System.Numerics.BigInteger value) => throw null; public static double Log(System.Numerics.BigInteger value, double baseValue) => throw null; public static double Log10(System.Numerics.BigInteger value) => throw null; - public static System.Numerics.BigInteger Log2(System.Numerics.BigInteger value) => throw null; - public static System.Numerics.BigInteger Max(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static System.Numerics.BigInteger MaxMagnitude(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; - public static System.Numerics.BigInteger MaxMagnitudeNumber(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; - public static System.Numerics.BigInteger MaxNumber(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; - public static System.Numerics.BigInteger Min(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static System.Numerics.BigInteger MinMagnitude(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; - public static System.Numerics.BigInteger MinMagnitudeNumber(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; - public static System.Numerics.BigInteger MinNumber(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; + static System.Numerics.BigInteger System.Numerics.IBinaryNumber.Log2(System.Numerics.BigInteger value) => throw null; + static System.Numerics.BigInteger System.Numerics.INumber.Max(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + static System.Numerics.BigInteger System.Numerics.INumberBase.MaxMagnitude(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; + static System.Numerics.BigInteger System.Numerics.INumberBase.MaxMagnitudeNumber(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; + static System.Numerics.BigInteger System.Numerics.INumber.MaxNumber(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; + static System.Numerics.BigInteger System.Numerics.INumber.Min(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + static System.Numerics.BigInteger System.Numerics.INumberBase.MinMagnitude(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; + static System.Numerics.BigInteger System.Numerics.INumberBase.MinMagnitudeNumber(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; + static System.Numerics.BigInteger System.Numerics.INumber.MinNumber(System.Numerics.BigInteger x, System.Numerics.BigInteger y) => throw null; public static System.Numerics.BigInteger MinusOne { get => throw null; } public static System.Numerics.BigInteger ModPow(System.Numerics.BigInteger value, System.Numerics.BigInteger exponent, System.Numerics.BigInteger modulus) => throw null; static System.Numerics.BigInteger System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } @@ -129,127 +84,150 @@ namespace System public static System.Numerics.BigInteger Negate(System.Numerics.BigInteger value) => throw null; static System.Numerics.BigInteger System.Numerics.ISignedNumber.NegativeOne { get => throw null; } static System.Numerics.BigInteger System.Numerics.INumberBase.One { get => throw null; } - public static System.Numerics.BigInteger Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.Numerics.BigInteger Parse(System.ReadOnlySpan value, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.Numerics.BigInteger System.Numerics.IAdditionOperators.operator +(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + static System.Numerics.BigInteger System.Numerics.IBitwiseOperators.operator &(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + static System.Numerics.BigInteger System.Numerics.IBitwiseOperators.operator |(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + static System.Numerics.BigInteger System.Numerics.IDecrementOperators.operator --(System.Numerics.BigInteger value) => throw null; + static System.Numerics.BigInteger System.Numerics.IDivisionOperators.operator /(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor) => throw null; + public static bool operator ==(long left, System.Numerics.BigInteger right) => throw null; + public static bool operator ==(System.Numerics.BigInteger left, long right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + public static bool operator ==(System.Numerics.BigInteger left, ulong right) => throw null; + public static bool operator ==(ulong left, System.Numerics.BigInteger right) => throw null; + static System.Numerics.BigInteger System.Numerics.IBitwiseOperators.operator ^(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + public static explicit operator System.Numerics.BigInteger(decimal value) => throw null; + public static explicit operator System.Numerics.BigInteger(double value) => throw null; + public static explicit operator System.Numerics.BigInteger(System.Half value) => throw null; + public static explicit operator byte(System.Numerics.BigInteger value) => throw null; + public static explicit operator char(System.Numerics.BigInteger value) => throw null; + public static explicit operator decimal(System.Numerics.BigInteger value) => throw null; + public static explicit operator double(System.Numerics.BigInteger value) => throw null; + public static explicit operator System.Half(System.Numerics.BigInteger value) => throw null; + public static explicit operator System.Int128(System.Numerics.BigInteger value) => throw null; + public static explicit operator short(System.Numerics.BigInteger value) => throw null; + public static explicit operator int(System.Numerics.BigInteger value) => throw null; + public static explicit operator long(System.Numerics.BigInteger value) => throw null; + public static explicit operator nint(System.Numerics.BigInteger value) => throw null; + public static explicit operator sbyte(System.Numerics.BigInteger value) => throw null; + public static explicit operator float(System.Numerics.BigInteger value) => throw null; + public static explicit operator System.UInt128(System.Numerics.BigInteger value) => throw null; + public static explicit operator ushort(System.Numerics.BigInteger value) => throw null; + public static explicit operator uint(System.Numerics.BigInteger value) => throw null; + public static explicit operator ulong(System.Numerics.BigInteger value) => throw null; + public static explicit operator nuint(System.Numerics.BigInteger value) => throw null; + public static explicit operator System.Numerics.BigInteger(System.Numerics.Complex value) => throw null; + public static explicit operator System.Numerics.BigInteger(float value) => throw null; + public static bool operator >(long left, System.Numerics.BigInteger right) => throw null; + public static bool operator >(System.Numerics.BigInteger left, long right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + public static bool operator >(System.Numerics.BigInteger left, ulong right) => throw null; + public static bool operator >(ulong left, System.Numerics.BigInteger right) => throw null; + public static bool operator >=(long left, System.Numerics.BigInteger right) => throw null; + public static bool operator >=(System.Numerics.BigInteger left, long right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + public static bool operator >=(System.Numerics.BigInteger left, ulong right) => throw null; + public static bool operator >=(ulong left, System.Numerics.BigInteger right) => throw null; + public static implicit operator System.Numerics.BigInteger(byte value) => throw null; + public static implicit operator System.Numerics.BigInteger(char value) => throw null; + public static implicit operator System.Numerics.BigInteger(System.Int128 value) => throw null; + public static implicit operator System.Numerics.BigInteger(short value) => throw null; + public static implicit operator System.Numerics.BigInteger(int value) => throw null; + public static implicit operator System.Numerics.BigInteger(long value) => throw null; + public static implicit operator System.Numerics.BigInteger(nint value) => throw null; + public static implicit operator System.Numerics.BigInteger(sbyte value) => throw null; + public static implicit operator System.Numerics.BigInteger(System.UInt128 value) => throw null; + public static implicit operator System.Numerics.BigInteger(ushort value) => throw null; + public static implicit operator System.Numerics.BigInteger(uint value) => throw null; + public static implicit operator System.Numerics.BigInteger(ulong value) => throw null; + public static implicit operator System.Numerics.BigInteger(nuint value) => throw null; + static System.Numerics.BigInteger System.Numerics.IIncrementOperators.operator ++(System.Numerics.BigInteger value) => throw null; + public static bool operator !=(long left, System.Numerics.BigInteger right) => throw null; + public static bool operator !=(System.Numerics.BigInteger left, long right) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + public static bool operator !=(System.Numerics.BigInteger left, ulong right) => throw null; + public static bool operator !=(ulong left, System.Numerics.BigInteger right) => throw null; + static System.Numerics.BigInteger System.Numerics.IShiftOperators.operator <<(System.Numerics.BigInteger value, int shift) => throw null; + public static bool operator <(long left, System.Numerics.BigInteger right) => throw null; + public static bool operator <(System.Numerics.BigInteger left, long right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + public static bool operator <(System.Numerics.BigInteger left, ulong right) => throw null; + public static bool operator <(ulong left, System.Numerics.BigInteger right) => throw null; + public static bool operator <=(long left, System.Numerics.BigInteger right) => throw null; + public static bool operator <=(System.Numerics.BigInteger left, long right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + public static bool operator <=(System.Numerics.BigInteger left, ulong right) => throw null; + public static bool operator <=(ulong left, System.Numerics.BigInteger right) => throw null; + static System.Numerics.BigInteger System.Numerics.IModulusOperators.operator %(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor) => throw null; + static System.Numerics.BigInteger System.Numerics.IMultiplyOperators.operator *(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + static System.Numerics.BigInteger System.Numerics.IBitwiseOperators.operator ~(System.Numerics.BigInteger value) => throw null; + static System.Numerics.BigInteger System.Numerics.IShiftOperators.operator >>(System.Numerics.BigInteger value, int shift) => throw null; + static System.Numerics.BigInteger System.Numerics.ISubtractionOperators.operator -(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; + static System.Numerics.BigInteger System.Numerics.IUnaryNegationOperators.operator -(System.Numerics.BigInteger value) => throw null; + static System.Numerics.BigInteger System.Numerics.IUnaryPlusOperators.operator +(System.Numerics.BigInteger value) => throw null; + static System.Numerics.BigInteger System.Numerics.IShiftOperators.operator >>>(System.Numerics.BigInteger value, int shiftAmount) => throw null; + static System.Numerics.BigInteger System.Numerics.INumberBase.Parse(System.ReadOnlySpan value, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.Numerics.BigInteger System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; public static System.Numerics.BigInteger Parse(string value) => throw null; - public static System.Numerics.BigInteger Parse(string value, System.IFormatProvider provider) => throw null; public static System.Numerics.BigInteger Parse(string value, System.Globalization.NumberStyles style) => throw null; - public static System.Numerics.BigInteger Parse(string value, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.Numerics.BigInteger PopCount(System.Numerics.BigInteger value) => throw null; + static System.Numerics.BigInteger System.Numerics.INumberBase.Parse(string value, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static System.Numerics.BigInteger System.IParsable.Parse(string value, System.IFormatProvider provider) => throw null; + static System.Numerics.BigInteger System.Numerics.IBinaryInteger.PopCount(System.Numerics.BigInteger value) => throw null; public static System.Numerics.BigInteger Pow(System.Numerics.BigInteger value, int exponent) => throw null; static int System.Numerics.INumberBase.Radix { get => throw null; } public static System.Numerics.BigInteger Remainder(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor) => throw null; - public static System.Numerics.BigInteger RotateLeft(System.Numerics.BigInteger value, int rotateAmount) => throw null; - public static System.Numerics.BigInteger RotateRight(System.Numerics.BigInteger value, int rotateAmount) => throw null; - public int Sign { get => throw null; } + static System.Numerics.BigInteger System.Numerics.IBinaryInteger.RotateLeft(System.Numerics.BigInteger value, int rotateAmount) => throw null; + static System.Numerics.BigInteger System.Numerics.IBinaryInteger.RotateRight(System.Numerics.BigInteger value, int rotateAmount) => throw null; static int System.Numerics.INumber.Sign(System.Numerics.BigInteger value) => throw null; + public int Sign { get => throw null; } public static System.Numerics.BigInteger Subtract(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public System.Byte[] ToByteArray() => throw null; - public System.Byte[] ToByteArray(bool isUnsigned = default(bool), bool isBigEndian = default(bool)) => throw null; + public byte[] ToByteArray() => throw null; + public byte[] ToByteArray(bool isUnsigned = default(bool), bool isBigEndian = default(bool)) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; - public static System.Numerics.BigInteger TrailingZeroCount(System.Numerics.BigInteger value) => throw null; + static System.Numerics.BigInteger System.Numerics.IBinaryInteger.TrailingZeroCount(System.Numerics.BigInteger value) => throw null; static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.Numerics.BigInteger result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.Numerics.BigInteger result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.Numerics.BigInteger result) => throw null; static bool System.Numerics.INumberBase.TryConvertToChecked(System.Numerics.BigInteger value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Numerics.BigInteger value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Numerics.BigInteger value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Numerics.BigInteger result) => throw null; - public static bool TryParse(System.ReadOnlySpan value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.BigInteger result) => throw null; - public static bool TryParse(System.ReadOnlySpan value, out System.Numerics.BigInteger result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Numerics.BigInteger result) => throw null; - public static bool TryParse(string value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.BigInteger result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.BigInteger result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Numerics.BigInteger result) => throw null; + public static bool TryParse(System.ReadOnlySpan value, out System.Numerics.BigInteger result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.BigInteger result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.Numerics.BigInteger result) => throw null; public static bool TryParse(string value, out System.Numerics.BigInteger result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Numerics.BigInteger value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Numerics.BigInteger value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - public bool TryWriteBytes(System.Span destination, out int bytesWritten, bool isUnsigned = default(bool), bool isBigEndian = default(bool)) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Numerics.BigInteger value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Numerics.BigInteger value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + public bool TryWriteBytes(System.Span destination, out int bytesWritten, bool isUnsigned = default(bool), bool isBigEndian = default(bool)) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static System.Numerics.BigInteger System.Numerics.INumberBase.Zero { get => throw null; } - static System.Numerics.BigInteger System.Numerics.IBitwiseOperators.operator ^(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - public static explicit operator System.Byte(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.Char(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.Decimal(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.Half(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.Int128(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.Int16(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.Int64(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.IntPtr(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.SByte(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.UInt128(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.UInt16(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.UInt32(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.UInt64(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.UIntPtr(System.Numerics.BigInteger value) => throw null; - public static explicit operator double(System.Numerics.BigInteger value) => throw null; - public static explicit operator float(System.Numerics.BigInteger value) => throw null; - public static explicit operator int(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.Numerics.BigInteger(System.Numerics.Complex value) => throw null; - public static explicit operator System.Numerics.BigInteger(System.Half value) => throw null; - public static explicit operator System.Numerics.BigInteger(System.Decimal value) => throw null; - public static explicit operator System.Numerics.BigInteger(double value) => throw null; - public static explicit operator System.Numerics.BigInteger(float value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.Int128 value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.IntPtr value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.UInt128 value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.UIntPtr value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.Byte value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.Char value) => throw null; - public static implicit operator System.Numerics.BigInteger(int value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.Int64 value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.SByte value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.Int16 value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.UInt32 value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.UInt64 value) => throw null; - public static implicit operator System.Numerics.BigInteger(System.UInt16 value) => throw null; - static System.Numerics.BigInteger System.Numerics.IBitwiseOperators.operator |(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; - static System.Numerics.BigInteger System.Numerics.IBitwiseOperators.operator ~(System.Numerics.BigInteger value) => throw null; } - - public struct Complex : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators + public struct Complex : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.ISignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; - static System.Numerics.Complex System.Numerics.IMultiplyOperators.operator *(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; - public static System.Numerics.Complex operator *(System.Numerics.Complex left, double right) => throw null; - public static System.Numerics.Complex operator *(double left, System.Numerics.Complex right) => throw null; - static System.Numerics.Complex System.Numerics.IUnaryPlusOperators.operator +(System.Numerics.Complex value) => throw null; - static System.Numerics.Complex System.Numerics.IAdditionOperators.operator +(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; - public static System.Numerics.Complex operator +(System.Numerics.Complex left, double right) => throw null; - public static System.Numerics.Complex operator +(double left, System.Numerics.Complex right) => throw null; - static System.Numerics.Complex System.Numerics.IIncrementOperators.operator ++(System.Numerics.Complex value) => throw null; - static System.Numerics.Complex System.Numerics.IUnaryNegationOperators.operator -(System.Numerics.Complex value) => throw null; - static System.Numerics.Complex System.Numerics.ISubtractionOperators.operator -(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; - public static System.Numerics.Complex operator -(System.Numerics.Complex left, double right) => throw null; - public static System.Numerics.Complex operator -(double left, System.Numerics.Complex right) => throw null; - static System.Numerics.Complex System.Numerics.IDecrementOperators.operator --(System.Numerics.Complex value) => throw null; - static System.Numerics.Complex System.Numerics.IDivisionOperators.operator /(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; - public static System.Numerics.Complex operator /(System.Numerics.Complex left, double right) => throw null; - public static System.Numerics.Complex operator /(double left, System.Numerics.Complex right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; public static double Abs(System.Numerics.Complex value) => throw null; static System.Numerics.Complex System.Numerics.INumberBase.Abs(System.Numerics.Complex value) => throw null; public static System.Numerics.Complex Acos(System.Numerics.Complex value) => throw null; - public static System.Numerics.Complex Add(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; - public static System.Numerics.Complex Add(System.Numerics.Complex left, double right) => throw null; public static System.Numerics.Complex Add(double left, System.Numerics.Complex right) => throw null; + public static System.Numerics.Complex Add(System.Numerics.Complex left, double right) => throw null; + public static System.Numerics.Complex Add(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; static System.Numerics.Complex System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } public static System.Numerics.Complex Asin(System.Numerics.Complex value) => throw null; public static System.Numerics.Complex Atan(System.Numerics.Complex value) => throw null; - // Stub generator skipped constructor - public Complex(double real, double imaginary) => throw null; public static System.Numerics.Complex Conjugate(System.Numerics.Complex value) => throw null; public static System.Numerics.Complex Cos(System.Numerics.Complex value) => throw null; public static System.Numerics.Complex Cosh(System.Numerics.Complex value) => throw null; static System.Numerics.Complex System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; static System.Numerics.Complex System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; static System.Numerics.Complex System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static System.Numerics.Complex Divide(System.Numerics.Complex dividend, System.Numerics.Complex divisor) => throw null; - public static System.Numerics.Complex Divide(System.Numerics.Complex dividend, double divisor) => throw null; + public Complex(double real, double imaginary) => throw null; public static System.Numerics.Complex Divide(double dividend, System.Numerics.Complex divisor) => throw null; + public static System.Numerics.Complex Divide(System.Numerics.Complex dividend, double divisor) => throw null; + public static System.Numerics.Complex Divide(System.Numerics.Complex dividend, System.Numerics.Complex divisor) => throw null; public bool Equals(System.Numerics.Complex value) => throw null; public override bool Equals(object obj) => throw null; public static System.Numerics.Complex Exp(System.Numerics.Complex value) => throw null; @@ -258,56 +236,92 @@ namespace System public double Imaginary { get => throw null; } public static System.Numerics.Complex ImaginaryOne; public static System.Numerics.Complex Infinity; - public static bool IsCanonical(System.Numerics.Complex value) => throw null; - public static bool IsComplexNumber(System.Numerics.Complex value) => throw null; - public static bool IsEvenInteger(System.Numerics.Complex value) => throw null; - public static bool IsFinite(System.Numerics.Complex value) => throw null; - public static bool IsImaginaryNumber(System.Numerics.Complex value) => throw null; - public static bool IsInfinity(System.Numerics.Complex value) => throw null; - public static bool IsInteger(System.Numerics.Complex value) => throw null; - public static bool IsNaN(System.Numerics.Complex value) => throw null; - public static bool IsNegative(System.Numerics.Complex value) => throw null; - public static bool IsNegativeInfinity(System.Numerics.Complex value) => throw null; - public static bool IsNormal(System.Numerics.Complex value) => throw null; - public static bool IsOddInteger(System.Numerics.Complex value) => throw null; - public static bool IsPositive(System.Numerics.Complex value) => throw null; - public static bool IsPositiveInfinity(System.Numerics.Complex value) => throw null; - public static bool IsRealNumber(System.Numerics.Complex value) => throw null; - public static bool IsSubnormal(System.Numerics.Complex value) => throw null; - public static bool IsZero(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(System.Numerics.Complex value) => throw null; + static bool System.Numerics.INumberBase.IsZero(System.Numerics.Complex value) => throw null; public static System.Numerics.Complex Log(System.Numerics.Complex value) => throw null; public static System.Numerics.Complex Log(System.Numerics.Complex value, double baseValue) => throw null; public static System.Numerics.Complex Log10(System.Numerics.Complex value) => throw null; public double Magnitude { get => throw null; } - public static System.Numerics.Complex MaxMagnitude(System.Numerics.Complex x, System.Numerics.Complex y) => throw null; - public static System.Numerics.Complex MaxMagnitudeNumber(System.Numerics.Complex x, System.Numerics.Complex y) => throw null; - public static System.Numerics.Complex MinMagnitude(System.Numerics.Complex x, System.Numerics.Complex y) => throw null; - public static System.Numerics.Complex MinMagnitudeNumber(System.Numerics.Complex x, System.Numerics.Complex y) => throw null; + static System.Numerics.Complex System.Numerics.INumberBase.MaxMagnitude(System.Numerics.Complex x, System.Numerics.Complex y) => throw null; + static System.Numerics.Complex System.Numerics.INumberBase.MaxMagnitudeNumber(System.Numerics.Complex x, System.Numerics.Complex y) => throw null; + static System.Numerics.Complex System.Numerics.INumberBase.MinMagnitude(System.Numerics.Complex x, System.Numerics.Complex y) => throw null; + static System.Numerics.Complex System.Numerics.INumberBase.MinMagnitudeNumber(System.Numerics.Complex x, System.Numerics.Complex y) => throw null; static System.Numerics.Complex System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - public static System.Numerics.Complex Multiply(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; - public static System.Numerics.Complex Multiply(System.Numerics.Complex left, double right) => throw null; public static System.Numerics.Complex Multiply(double left, System.Numerics.Complex right) => throw null; + public static System.Numerics.Complex Multiply(System.Numerics.Complex left, double right) => throw null; + public static System.Numerics.Complex Multiply(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; public static System.Numerics.Complex NaN; public static System.Numerics.Complex Negate(System.Numerics.Complex value) => throw null; static System.Numerics.Complex System.Numerics.ISignedNumber.NegativeOne { get => throw null; } public static System.Numerics.Complex One; static System.Numerics.Complex System.Numerics.INumberBase.One { get => throw null; } - public static System.Numerics.Complex Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.Numerics.Complex Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.Numerics.Complex Parse(string s, System.IFormatProvider provider) => throw null; - public static System.Numerics.Complex Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + public static System.Numerics.Complex operator +(double left, System.Numerics.Complex right) => throw null; + public static System.Numerics.Complex operator +(System.Numerics.Complex left, double right) => throw null; + static System.Numerics.Complex System.Numerics.IAdditionOperators.operator +(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; + static System.Numerics.Complex System.Numerics.IDecrementOperators.operator --(System.Numerics.Complex value) => throw null; + public static System.Numerics.Complex operator /(double left, System.Numerics.Complex right) => throw null; + public static System.Numerics.Complex operator /(System.Numerics.Complex left, double right) => throw null; + static System.Numerics.Complex System.Numerics.IDivisionOperators.operator /(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; + public static explicit operator System.Numerics.Complex(decimal value) => throw null; + public static explicit operator System.Numerics.Complex(System.Int128 value) => throw null; + public static explicit operator System.Numerics.Complex(System.Numerics.BigInteger value) => throw null; + public static explicit operator System.Numerics.Complex(System.UInt128 value) => throw null; + public static implicit operator System.Numerics.Complex(byte value) => throw null; + public static implicit operator System.Numerics.Complex(char value) => throw null; + public static implicit operator System.Numerics.Complex(double value) => throw null; + public static implicit operator System.Numerics.Complex(System.Half value) => throw null; + public static implicit operator System.Numerics.Complex(short value) => throw null; + public static implicit operator System.Numerics.Complex(int value) => throw null; + public static implicit operator System.Numerics.Complex(long value) => throw null; + public static implicit operator System.Numerics.Complex(nint value) => throw null; + public static implicit operator System.Numerics.Complex(sbyte value) => throw null; + public static implicit operator System.Numerics.Complex(float value) => throw null; + public static implicit operator System.Numerics.Complex(ushort value) => throw null; + public static implicit operator System.Numerics.Complex(uint value) => throw null; + public static implicit operator System.Numerics.Complex(ulong value) => throw null; + public static implicit operator System.Numerics.Complex(nuint value) => throw null; + static System.Numerics.Complex System.Numerics.IIncrementOperators.operator ++(System.Numerics.Complex value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; + public static System.Numerics.Complex operator *(double left, System.Numerics.Complex right) => throw null; + public static System.Numerics.Complex operator *(System.Numerics.Complex left, double right) => throw null; + static System.Numerics.Complex System.Numerics.IMultiplyOperators.operator *(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; + public static System.Numerics.Complex operator -(double left, System.Numerics.Complex right) => throw null; + public static System.Numerics.Complex operator -(System.Numerics.Complex left, double right) => throw null; + static System.Numerics.Complex System.Numerics.ISubtractionOperators.operator -(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; + static System.Numerics.Complex System.Numerics.IUnaryNegationOperators.operator -(System.Numerics.Complex value) => throw null; + static System.Numerics.Complex System.Numerics.IUnaryPlusOperators.operator +(System.Numerics.Complex value) => throw null; + static System.Numerics.Complex System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static System.Numerics.Complex System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + static System.Numerics.Complex System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static System.Numerics.Complex System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; public double Phase { get => throw null; } - public static System.Numerics.Complex Pow(System.Numerics.Complex value, System.Numerics.Complex power) => throw null; public static System.Numerics.Complex Pow(System.Numerics.Complex value, double power) => throw null; + public static System.Numerics.Complex Pow(System.Numerics.Complex value, System.Numerics.Complex power) => throw null; static int System.Numerics.INumberBase.Radix { get => throw null; } public double Real { get => throw null; } public static System.Numerics.Complex Reciprocal(System.Numerics.Complex value) => throw null; public static System.Numerics.Complex Sin(System.Numerics.Complex value) => throw null; public static System.Numerics.Complex Sinh(System.Numerics.Complex value) => throw null; public static System.Numerics.Complex Sqrt(System.Numerics.Complex value) => throw null; - public static System.Numerics.Complex Subtract(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; - public static System.Numerics.Complex Subtract(System.Numerics.Complex left, double right) => throw null; public static System.Numerics.Complex Subtract(double left, System.Numerics.Complex right) => throw null; + public static System.Numerics.Complex Subtract(System.Numerics.Complex left, double right) => throw null; + public static System.Numerics.Complex Subtract(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; public static System.Numerics.Complex Tan(System.Numerics.Complex value) => throw null; public static System.Numerics.Complex Tanh(System.Numerics.Complex value) => throw null; public override string ToString() => throw null; @@ -320,32 +334,13 @@ namespace System static bool System.Numerics.INumberBase.TryConvertToChecked(System.Numerics.Complex value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Numerics.Complex value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Numerics.Complex value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; public static System.Numerics.Complex Zero; static System.Numerics.Complex System.Numerics.INumberBase.Zero { get => throw null; } - public static explicit operator System.Numerics.Complex(System.Numerics.BigInteger value) => throw null; - public static explicit operator System.Numerics.Complex(System.Int128 value) => throw null; - public static explicit operator System.Numerics.Complex(System.UInt128 value) => throw null; - public static explicit operator System.Numerics.Complex(System.Decimal value) => throw null; - public static implicit operator System.Numerics.Complex(System.Half value) => throw null; - public static implicit operator System.Numerics.Complex(System.IntPtr value) => throw null; - public static implicit operator System.Numerics.Complex(System.UIntPtr value) => throw null; - public static implicit operator System.Numerics.Complex(System.Byte value) => throw null; - public static implicit operator System.Numerics.Complex(System.Char value) => throw null; - public static implicit operator System.Numerics.Complex(double value) => throw null; - public static implicit operator System.Numerics.Complex(float value) => throw null; - public static implicit operator System.Numerics.Complex(int value) => throw null; - public static implicit operator System.Numerics.Complex(System.Int64 value) => throw null; - public static implicit operator System.Numerics.Complex(System.SByte value) => throw null; - public static implicit operator System.Numerics.Complex(System.Int16 value) => throw null; - public static implicit operator System.Numerics.Complex(System.UInt32 value) => throw null; - public static implicit operator System.Numerics.Complex(System.UInt64 value) => throw null; - public static implicit operator System.Numerics.Complex(System.UInt16 value) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Formatters.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Formatters.cs index 13a21e51b74..7a086d12e3d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Formatters.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Formatters.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Runtime.Serialization.Formatters, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Runtime @@ -11,57 +10,95 @@ namespace System { public abstract System.Runtime.Serialization.SerializationBinder Binder { get; set; } public abstract System.Runtime.Serialization.StreamingContext Context { get; set; } - public abstract object Deserialize(System.IO.Stream serializationStream); protected Formatter() => throw null; - protected virtual object GetNext(out System.Int64 objID) => throw null; - protected virtual System.Int64 Schedule(object obj) => throw null; + public abstract object Deserialize(System.IO.Stream serializationStream); + protected virtual object GetNext(out long objID) => throw null; + protected System.Runtime.Serialization.ObjectIDGenerator m_idGenerator; + protected System.Collections.Queue m_objectQueue; + protected virtual long Schedule(object obj) => throw null; public abstract void Serialize(System.IO.Stream serializationStream, object graph); public abstract System.Runtime.Serialization.ISurrogateSelector SurrogateSelector { get; set; } protected abstract void WriteArray(object obj, string name, System.Type memberType); protected abstract void WriteBoolean(bool val, string name); - protected abstract void WriteByte(System.Byte val, string name); - protected abstract void WriteChar(System.Char val, string name); + protected abstract void WriteByte(byte val, string name); + protected abstract void WriteChar(char val, string name); protected abstract void WriteDateTime(System.DateTime val, string name); - protected abstract void WriteDecimal(System.Decimal val, string name); + protected abstract void WriteDecimal(decimal val, string name); protected abstract void WriteDouble(double val, string name); - protected abstract void WriteInt16(System.Int16 val, string name); + protected abstract void WriteInt16(short val, string name); protected abstract void WriteInt32(int val, string name); - protected abstract void WriteInt64(System.Int64 val, string name); + protected abstract void WriteInt64(long val, string name); protected virtual void WriteMember(string memberName, object data) => throw null; protected abstract void WriteObjectRef(object obj, string name, System.Type memberType); - protected abstract void WriteSByte(System.SByte val, string name); + protected abstract void WriteSByte(sbyte val, string name); protected abstract void WriteSingle(float val, string name); protected abstract void WriteTimeSpan(System.TimeSpan val, string name); - protected abstract void WriteUInt16(System.UInt16 val, string name); - protected abstract void WriteUInt32(System.UInt32 val, string name); - protected abstract void WriteUInt64(System.UInt64 val, string name); + protected abstract void WriteUInt16(ushort val, string name); + protected abstract void WriteUInt32(uint val, string name); + protected abstract void WriteUInt64(ulong val, string name); protected abstract void WriteValueType(object obj, string name, System.Type memberType); - protected System.Runtime.Serialization.ObjectIDGenerator m_idGenerator; - protected System.Collections.Queue m_objectQueue; } - public class FormatterConverter : System.Runtime.Serialization.IFormatterConverter { public object Convert(object value, System.Type type) => throw null; public object Convert(object value, System.TypeCode typeCode) => throw null; public FormatterConverter() => throw null; public bool ToBoolean(object value) => throw null; - public System.Byte ToByte(object value) => throw null; - public System.Char ToChar(object value) => throw null; + public byte ToByte(object value) => throw null; + public char ToChar(object value) => throw null; public System.DateTime ToDateTime(object value) => throw null; - public System.Decimal ToDecimal(object value) => throw null; + public decimal ToDecimal(object value) => throw null; public double ToDouble(object value) => throw null; - public System.Int16 ToInt16(object value) => throw null; + public short ToInt16(object value) => throw null; public int ToInt32(object value) => throw null; - public System.Int64 ToInt64(object value) => throw null; - public System.SByte ToSByte(object value) => throw null; + public long ToInt64(object value) => throw null; + public sbyte ToSByte(object value) => throw null; public float ToSingle(object value) => throw null; public string ToString(object value) => throw null; - public System.UInt16 ToUInt16(object value) => throw null; - public System.UInt32 ToUInt32(object value) => throw null; - public System.UInt64 ToUInt64(object value) => throw null; + public ushort ToUInt16(object value) => throw null; + public uint ToUInt32(object value) => throw null; + public ulong ToUInt64(object value) => throw null; + } + namespace Formatters + { + namespace Binary + { + public sealed class BinaryFormatter : System.Runtime.Serialization.IFormatter + { + public System.Runtime.Serialization.Formatters.FormatterAssemblyStyle AssemblyFormat { get => throw null; set { } } + public System.Runtime.Serialization.SerializationBinder Binder { get => throw null; set { } } + public System.Runtime.Serialization.StreamingContext Context { get => throw null; set { } } + public BinaryFormatter() => throw null; + public BinaryFormatter(System.Runtime.Serialization.ISurrogateSelector selector, System.Runtime.Serialization.StreamingContext context) => throw null; + public object Deserialize(System.IO.Stream serializationStream) => throw null; + public System.Runtime.Serialization.Formatters.TypeFilterLevel FilterLevel { get => throw null; set { } } + public void Serialize(System.IO.Stream serializationStream, object graph) => throw null; + public System.Runtime.Serialization.ISurrogateSelector SurrogateSelector { get => throw null; set { } } + public System.Runtime.Serialization.Formatters.FormatterTypeStyle TypeFormat { get => throw null; set { } } + } + } + public enum FormatterAssemblyStyle + { + Simple = 0, + Full = 1, + } + public enum FormatterTypeStyle + { + TypesWhenNeeded = 0, + TypesAlways = 1, + XsdString = 2, + } + public interface IFieldInfo + { + string[] FieldNames { get; set; } + System.Type[] FieldTypes { get; set; } + } + public enum TypeFilterLevel + { + Low = 2, + Full = 3, + } } - public static class FormatterServices { public static void CheckTypeSecurity(System.Type t, System.Runtime.Serialization.Formatters.TypeFilterLevel securityLevel) => throw null; @@ -74,7 +111,6 @@ namespace System public static object GetUninitializedObject(System.Type type) => throw null; public static object PopulateObjectMembers(object obj, System.Reflection.MemberInfo[] members, object[] data) => throw null; } - public interface IFormatter { System.Runtime.Serialization.SerializationBinder Binder { get; set; } @@ -83,112 +119,59 @@ namespace System void Serialize(System.IO.Stream serializationStream, object graph); System.Runtime.Serialization.ISurrogateSelector SurrogateSelector { get; set; } } - public interface ISerializationSurrogate { void GetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context); object SetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISurrogateSelector selector); } - public interface ISurrogateSelector { void ChainSelector(System.Runtime.Serialization.ISurrogateSelector selector); System.Runtime.Serialization.ISurrogateSelector GetNextSelector(); System.Runtime.Serialization.ISerializationSurrogate GetSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context, out System.Runtime.Serialization.ISurrogateSelector selector); } - public class ObjectIDGenerator { - public virtual System.Int64 GetId(object obj, out bool firstTime) => throw null; - public virtual System.Int64 HasId(object obj, out bool firstTime) => throw null; public ObjectIDGenerator() => throw null; + public virtual long GetId(object obj, out bool firstTime) => throw null; + public virtual long HasId(object obj, out bool firstTime) => throw null; } - public class ObjectManager { - public virtual void DoFixups() => throw null; - public virtual object GetObject(System.Int64 objectID) => throw null; public ObjectManager(System.Runtime.Serialization.ISurrogateSelector selector, System.Runtime.Serialization.StreamingContext context) => throw null; + public virtual void DoFixups() => throw null; + public virtual object GetObject(long objectID) => throw null; public virtual void RaiseDeserializationEvent() => throw null; public void RaiseOnDeserializingEvent(object obj) => throw null; - public virtual void RecordArrayElementFixup(System.Int64 arrayToBeFixed, int[] indices, System.Int64 objectRequired) => throw null; - public virtual void RecordArrayElementFixup(System.Int64 arrayToBeFixed, int index, System.Int64 objectRequired) => throw null; - public virtual void RecordDelayedFixup(System.Int64 objectToBeFixed, string memberName, System.Int64 objectRequired) => throw null; - public virtual void RecordFixup(System.Int64 objectToBeFixed, System.Reflection.MemberInfo member, System.Int64 objectRequired) => throw null; - public virtual void RegisterObject(object obj, System.Int64 objectID) => throw null; - public void RegisterObject(object obj, System.Int64 objectID, System.Runtime.Serialization.SerializationInfo info) => throw null; - public void RegisterObject(object obj, System.Int64 objectID, System.Runtime.Serialization.SerializationInfo info, System.Int64 idOfContainingObj, System.Reflection.MemberInfo member) => throw null; - public void RegisterObject(object obj, System.Int64 objectID, System.Runtime.Serialization.SerializationInfo info, System.Int64 idOfContainingObj, System.Reflection.MemberInfo member, int[] arrayIndex) => throw null; + public virtual void RecordArrayElementFixup(long arrayToBeFixed, int index, long objectRequired) => throw null; + public virtual void RecordArrayElementFixup(long arrayToBeFixed, int[] indices, long objectRequired) => throw null; + public virtual void RecordDelayedFixup(long objectToBeFixed, string memberName, long objectRequired) => throw null; + public virtual void RecordFixup(long objectToBeFixed, System.Reflection.MemberInfo member, long objectRequired) => throw null; + public virtual void RegisterObject(object obj, long objectID) => throw null; + public void RegisterObject(object obj, long objectID, System.Runtime.Serialization.SerializationInfo info) => throw null; + public void RegisterObject(object obj, long objectID, System.Runtime.Serialization.SerializationInfo info, long idOfContainingObj, System.Reflection.MemberInfo member) => throw null; + public void RegisterObject(object obj, long objectID, System.Runtime.Serialization.SerializationInfo info, long idOfContainingObj, System.Reflection.MemberInfo member, int[] arrayIndex) => throw null; } - public abstract class SerializationBinder { public virtual void BindToName(System.Type serializedType, out string assemblyName, out string typeName) => throw null; public abstract System.Type BindToType(string assemblyName, string typeName); protected SerializationBinder() => throw null; } - - public class SerializationObjectManager + public sealed class SerializationObjectManager { + public SerializationObjectManager(System.Runtime.Serialization.StreamingContext context) => throw null; public void RaiseOnSerializedEvent() => throw null; public void RegisterObject(object obj) => throw null; - public SerializationObjectManager(System.Runtime.Serialization.StreamingContext context) => throw null; } - public class SurrogateSelector : System.Runtime.Serialization.ISurrogateSelector { public virtual void AddSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISerializationSurrogate surrogate) => throw null; public virtual void ChainSelector(System.Runtime.Serialization.ISurrogateSelector selector) => throw null; + public SurrogateSelector() => throw null; public virtual System.Runtime.Serialization.ISurrogateSelector GetNextSelector() => throw null; public virtual System.Runtime.Serialization.ISerializationSurrogate GetSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context, out System.Runtime.Serialization.ISurrogateSelector selector) => throw null; public virtual void RemoveSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context) => throw null; - public SurrogateSelector() => throw null; - } - - namespace Formatters - { - public enum FormatterAssemblyStyle : int - { - Full = 1, - Simple = 0, - } - - public enum FormatterTypeStyle : int - { - TypesAlways = 1, - TypesWhenNeeded = 0, - XsdString = 2, - } - - public interface IFieldInfo - { - string[] FieldNames { get; set; } - System.Type[] FieldTypes { get; set; } - } - - public enum TypeFilterLevel : int - { - Full = 3, - Low = 2, - } - - namespace Binary - { - public class BinaryFormatter : System.Runtime.Serialization.IFormatter - { - public System.Runtime.Serialization.Formatters.FormatterAssemblyStyle AssemblyFormat { get => throw null; set => throw null; } - public BinaryFormatter() => throw null; - public BinaryFormatter(System.Runtime.Serialization.ISurrogateSelector selector, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Runtime.Serialization.SerializationBinder Binder { get => throw null; set => throw null; } - public System.Runtime.Serialization.StreamingContext Context { get => throw null; set => throw null; } - public object Deserialize(System.IO.Stream serializationStream) => throw null; - public System.Runtime.Serialization.Formatters.TypeFilterLevel FilterLevel { get => throw null; set => throw null; } - public void Serialize(System.IO.Stream serializationStream, object graph) => throw null; - public System.Runtime.Serialization.ISurrogateSelector SurrogateSelector { get => throw null; set => throw null; } - public System.Runtime.Serialization.Formatters.FormatterTypeStyle TypeFormat { get => throw null; set => throw null; } - } - - } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Json.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Json.cs index d7a217a318b..92b2bb50d97 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Json.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Json.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Runtime.Serialization.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Runtime @@ -11,29 +10,27 @@ namespace System { public DateTimeFormat(string formatString) => throw null; public DateTimeFormat(string formatString, System.IFormatProvider formatProvider) => throw null; - public System.Globalization.DateTimeStyles DateTimeStyles { get => throw null; set => throw null; } + public System.Globalization.DateTimeStyles DateTimeStyles { get => throw null; set { } } public System.IFormatProvider FormatProvider { get => throw null; } public string FormatString { get => throw null; } } - - public enum EmitTypeInformation : int + public enum EmitTypeInformation { - Always = 1, AsNeeded = 0, + Always = 1, Never = 2, } - namespace Json { - public class DataContractJsonSerializer : System.Runtime.Serialization.XmlObjectSerializer + public sealed class DataContractJsonSerializer : System.Runtime.Serialization.XmlObjectSerializer { public DataContractJsonSerializer(System.Type type) => throw null; - public DataContractJsonSerializer(System.Type type, System.Runtime.Serialization.Json.DataContractJsonSerializerSettings settings) => throw null; public DataContractJsonSerializer(System.Type type, System.Collections.Generic.IEnumerable knownTypes) => throw null; - public DataContractJsonSerializer(System.Type type, System.Xml.XmlDictionaryString rootName) => throw null; - public DataContractJsonSerializer(System.Type type, System.Xml.XmlDictionaryString rootName, System.Collections.Generic.IEnumerable knownTypes) => throw null; + public DataContractJsonSerializer(System.Type type, System.Runtime.Serialization.Json.DataContractJsonSerializerSettings settings) => throw null; public DataContractJsonSerializer(System.Type type, string rootName) => throw null; public DataContractJsonSerializer(System.Type type, string rootName, System.Collections.Generic.IEnumerable knownTypes) => throw null; + public DataContractJsonSerializer(System.Type type, System.Xml.XmlDictionaryString rootName) => throw null; + public DataContractJsonSerializer(System.Type type, System.Xml.XmlDictionaryString rootName, System.Collections.Generic.IEnumerable knownTypes) => throw null; public System.Runtime.Serialization.DateTimeFormat DateTimeFormat { get => throw null; } public System.Runtime.Serialization.EmitTypeInformation EmitTypeInformation { get => throw null; } public System.Runtime.Serialization.ISerializationSurrogateProvider GetSerializationSurrogateProvider() => throw null; @@ -60,36 +57,32 @@ namespace System public override void WriteStartObject(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; public override void WriteStartObject(System.Xml.XmlWriter writer, object graph) => throw null; } - public class DataContractJsonSerializerSettings { public DataContractJsonSerializerSettings() => throw null; - public System.Runtime.Serialization.DateTimeFormat DateTimeFormat { get => throw null; set => throw null; } - public System.Runtime.Serialization.EmitTypeInformation EmitTypeInformation { get => throw null; set => throw null; } - public bool IgnoreExtensionDataObject { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable KnownTypes { get => throw null; set => throw null; } - public int MaxItemsInObjectGraph { get => throw null; set => throw null; } - public string RootName { get => throw null; set => throw null; } - public bool SerializeReadOnlyTypes { get => throw null; set => throw null; } - public bool UseSimpleDictionaryFormat { get => throw null; set => throw null; } + public System.Runtime.Serialization.DateTimeFormat DateTimeFormat { get => throw null; set { } } + public System.Runtime.Serialization.EmitTypeInformation EmitTypeInformation { get => throw null; set { } } + public bool IgnoreExtensionDataObject { get => throw null; set { } } + public System.Collections.Generic.IEnumerable KnownTypes { get => throw null; set { } } + public int MaxItemsInObjectGraph { get => throw null; set { } } + public string RootName { get => throw null; set { } } + public bool SerializeReadOnlyTypes { get => throw null; set { } } + public bool UseSimpleDictionaryFormat { get => throw null; set { } } } - public interface IXmlJsonReaderInitializer { - void SetInput(System.Byte[] buffer, int offset, int count, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose); + void SetInput(byte[] buffer, int offset, int count, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose); void SetInput(System.IO.Stream stream, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose); } - public interface IXmlJsonWriterInitializer { void SetOutput(System.IO.Stream stream, System.Text.Encoding encoding, bool ownsStream); } - public static class JsonReaderWriterFactory { - public static System.Xml.XmlDictionaryReader CreateJsonReader(System.Byte[] buffer, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; - public static System.Xml.XmlDictionaryReader CreateJsonReader(System.Byte[] buffer, int offset, int count, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; - public static System.Xml.XmlDictionaryReader CreateJsonReader(System.Byte[] buffer, int offset, int count, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + public static System.Xml.XmlDictionaryReader CreateJsonReader(byte[] buffer, int offset, int count, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; + public static System.Xml.XmlDictionaryReader CreateJsonReader(byte[] buffer, int offset, int count, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + public static System.Xml.XmlDictionaryReader CreateJsonReader(byte[] buffer, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; public static System.Xml.XmlDictionaryReader CreateJsonReader(System.IO.Stream stream, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; public static System.Xml.XmlDictionaryReader CreateJsonReader(System.IO.Stream stream, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; public static System.Xml.XmlDictionaryWriter CreateJsonWriter(System.IO.Stream stream) => throw null; @@ -98,7 +91,6 @@ namespace System public static System.Xml.XmlDictionaryWriter CreateJsonWriter(System.IO.Stream stream, System.Text.Encoding encoding, bool ownsStream, bool indent) => throw null; public static System.Xml.XmlDictionaryWriter CreateJsonWriter(System.IO.Stream stream, System.Text.Encoding encoding, bool ownsStream, bool indent, string indentChars) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Primitives.cs index b803f1ffcb2..a03bf2aa7fc 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Primitives.cs @@ -1,84 +1,62 @@ // This file contains auto-generated code. // Generated from `System.Runtime.Serialization.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Runtime { namespace Serialization { - public class CollectionDataContractAttribute : System.Attribute + public sealed class CollectionDataContractAttribute : System.Attribute { public CollectionDataContractAttribute() => throw null; public bool IsItemNameSetExplicitly { get => throw null; } public bool IsKeyNameSetExplicitly { get => throw null; } public bool IsNameSetExplicitly { get => throw null; } public bool IsNamespaceSetExplicitly { get => throw null; } - public bool IsReference { get => throw null; set => throw null; } + public bool IsReference { get => throw null; set { } } public bool IsReferenceSetExplicitly { get => throw null; } public bool IsValueNameSetExplicitly { get => throw null; } - public string ItemName { get => throw null; set => throw null; } - public string KeyName { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public string ValueName { get => throw null; set => throw null; } + public string ItemName { get => throw null; set { } } + public string KeyName { get => throw null; set { } } + public string Name { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + public string ValueName { get => throw null; set { } } } - - public class ContractNamespaceAttribute : System.Attribute + public sealed class ContractNamespaceAttribute : System.Attribute { - public string ClrNamespace { get => throw null; set => throw null; } + public string ClrNamespace { get => throw null; set { } } public string ContractNamespace { get => throw null; } public ContractNamespaceAttribute(string contractNamespace) => throw null; } - - public class DataContractAttribute : System.Attribute + public sealed class DataContractAttribute : System.Attribute { public DataContractAttribute() => throw null; public bool IsNameSetExplicitly { get => throw null; } public bool IsNamespaceSetExplicitly { get => throw null; } - public bool IsReference { get => throw null; set => throw null; } + public bool IsReference { get => throw null; set { } } public bool IsReferenceSetExplicitly { get => throw null; } - public string Name { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } + public string Namespace { get => throw null; set { } } } - - public class DataMemberAttribute : System.Attribute + public sealed class DataMemberAttribute : System.Attribute { public DataMemberAttribute() => throw null; - public bool EmitDefaultValue { get => throw null; set => throw null; } + public bool EmitDefaultValue { get => throw null; set { } } public bool IsNameSetExplicitly { get => throw null; } - public bool IsRequired { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } + public bool IsRequired { get => throw null; set { } } + public string Name { get => throw null; set { } } + public int Order { get => throw null; set { } } } - - public class EnumMemberAttribute : System.Attribute + public sealed class EnumMemberAttribute : System.Attribute { public EnumMemberAttribute() => throw null; public bool IsValueSetExplicitly { get => throw null; } - public string Value { get => throw null; set => throw null; } + public string Value { get => throw null; set { } } } - - public interface ISerializationSurrogateProvider - { - object GetDeserializedObject(object obj, System.Type targetType); - object GetObjectToSerialize(object obj, System.Type targetType); - System.Type GetSurrogateType(System.Type type); - } - - public interface ISerializationSurrogateProvider2 : System.Runtime.Serialization.ISerializationSurrogateProvider - { - object GetCustomDataToExport(System.Reflection.MemberInfo memberInfo, System.Type dataContractType); - object GetCustomDataToExport(System.Type runtimeType, System.Type dataContractType); - void GetKnownCustomDataTypes(System.Collections.ObjectModel.Collection customDataTypes); - System.Type GetReferencedTypeOnImport(string typeName, string typeNamespace, object customData); - } - - public class IgnoreDataMemberAttribute : System.Attribute + public sealed class IgnoreDataMemberAttribute : System.Attribute { public IgnoreDataMemberAttribute() => throw null; } - public class InvalidDataContractException : System.Exception { public InvalidDataContractException() => throw null; @@ -86,15 +64,26 @@ namespace System public InvalidDataContractException(string message) => throw null; public InvalidDataContractException(string message, System.Exception innerException) => throw null; } - - public class KnownTypeAttribute : System.Attribute + public interface ISerializationSurrogateProvider + { + object GetDeserializedObject(object obj, System.Type targetType); + object GetObjectToSerialize(object obj, System.Type targetType); + System.Type GetSurrogateType(System.Type type); + } + public interface ISerializationSurrogateProvider2 : System.Runtime.Serialization.ISerializationSurrogateProvider + { + object GetCustomDataToExport(System.Reflection.MemberInfo memberInfo, System.Type dataContractType); + object GetCustomDataToExport(System.Type runtimeType, System.Type dataContractType); + void GetKnownCustomDataTypes(System.Collections.ObjectModel.Collection customDataTypes); + System.Type GetReferencedTypeOnImport(string typeName, string typeNamespace, object customData); + } + public sealed class KnownTypeAttribute : System.Attribute { - public KnownTypeAttribute(System.Type type) => throw null; public KnownTypeAttribute(string methodName) => throw null; + public KnownTypeAttribute(System.Type type) => throw null; public string MethodName { get => throw null; } public System.Type Type { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Xml.cs index c68f9be0b74..efd436012bb 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Xml.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.Xml.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Runtime.Serialization.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Runtime @@ -13,17 +12,71 @@ namespace System public abstract System.Type ResolveName(string typeName, string typeNamespace, System.Type declaredType, System.Runtime.Serialization.DataContractResolver knownTypeResolver); public abstract bool TryResolveType(System.Type type, System.Type declaredType, System.Runtime.Serialization.DataContractResolver knownTypeResolver, out System.Xml.XmlDictionaryString typeName, out System.Xml.XmlDictionaryString typeNamespace); } - - public class DataContractSerializer : System.Runtime.Serialization.XmlObjectSerializer + namespace DataContracts + { + public abstract class DataContract + { + public virtual System.Runtime.Serialization.DataContracts.DataContract BaseContract { get => throw null; } + public virtual string ContractType { get => throw null; } + public virtual System.Collections.ObjectModel.ReadOnlyCollection DataMembers { get => throw null; } + public virtual System.Xml.XmlQualifiedName GetArrayTypeName(bool isNullable) => throw null; + public static System.Runtime.Serialization.DataContracts.DataContract GetBuiltInDataContract(string name, string ns) => throw null; + public static System.Xml.XmlQualifiedName GetXmlName(System.Type type) => throw null; + public virtual bool IsBuiltInDataContract { get => throw null; } + public virtual bool IsDictionaryLike(out string keyName, out string valueName, out string itemName) => throw null; + public virtual bool IsISerializable { get => throw null; } + public virtual bool IsReference { get => throw null; } + public virtual bool IsValueType { get => throw null; } + public virtual System.Collections.Generic.Dictionary KnownDataContracts { get => throw null; } + public virtual System.Type OriginalUnderlyingType { get => throw null; } + public virtual System.Xml.XmlDictionaryString TopLevelElementName { get => throw null; } + public virtual System.Xml.XmlDictionaryString TopLevelElementNamespace { get => throw null; } + public virtual System.Type UnderlyingType { get => throw null; } + public virtual System.Xml.XmlQualifiedName XmlName { get => throw null; } + } + public sealed class DataContractSet + { + public System.Collections.Generic.Dictionary Contracts { get => throw null; } + public DataContractSet(System.Runtime.Serialization.DataContracts.DataContractSet dataContractSet) => throw null; + public DataContractSet(System.Runtime.Serialization.ISerializationSurrogateProvider dataContractSurrogate, System.Collections.Generic.IEnumerable referencedTypes, System.Collections.Generic.IEnumerable referencedCollectionTypes) => throw null; + public System.Runtime.Serialization.DataContracts.DataContract GetDataContract(System.Type type) => throw null; + public System.Runtime.Serialization.DataContracts.DataContract GetDataContract(System.Xml.XmlQualifiedName key) => throw null; + public System.Type GetReferencedType(System.Xml.XmlQualifiedName xmlName, System.Runtime.Serialization.DataContracts.DataContract dataContract, out System.Runtime.Serialization.DataContracts.DataContract referencedContract, out object[] genericParameters, bool? supportGenericTypes = default(bool?)) => throw null; + public void ImportSchemaSet(System.Xml.Schema.XmlSchemaSet schemaSet, System.Collections.Generic.IEnumerable typeNames, bool importXmlDataType) => throw null; + public System.Collections.Generic.List ImportSchemaSet(System.Xml.Schema.XmlSchemaSet schemaSet, System.Collections.Generic.IEnumerable elements, bool importXmlDataType) => throw null; + public System.Collections.Generic.Dictionary KnownTypesForObject { get => throw null; } + public System.Collections.Generic.Dictionary ProcessedContracts { get => throw null; } + public System.Collections.Hashtable SurrogateData { get => throw null; } + } + public sealed class DataMember + { + public bool EmitDefaultValue { get => throw null; } + public bool IsNullable { get => throw null; } + public bool IsRequired { get => throw null; } + public System.Runtime.Serialization.DataContracts.DataContract MemberTypeContract { get => throw null; } + public string Name { get => throw null; } + public long Order { get => throw null; } + } + public sealed class XmlDataContract : System.Runtime.Serialization.DataContracts.DataContract + { + public bool HasRoot { get => throw null; } + public bool IsAnonymous { get => throw null; } + public bool IsTopLevelElementNullable { get => throw null; } + public bool IsTypeDefinedOnImport { get => throw null; set { } } + public bool IsValueType { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaType XsdType { get => throw null; } + } + } + public sealed class DataContractSerializer : System.Runtime.Serialization.XmlObjectSerializer { - public System.Runtime.Serialization.DataContractResolver DataContractResolver { get => throw null; } public DataContractSerializer(System.Type type) => throw null; - public DataContractSerializer(System.Type type, System.Runtime.Serialization.DataContractSerializerSettings settings) => throw null; public DataContractSerializer(System.Type type, System.Collections.Generic.IEnumerable knownTypes) => throw null; - public DataContractSerializer(System.Type type, System.Xml.XmlDictionaryString rootName, System.Xml.XmlDictionaryString rootNamespace) => throw null; - public DataContractSerializer(System.Type type, System.Xml.XmlDictionaryString rootName, System.Xml.XmlDictionaryString rootNamespace, System.Collections.Generic.IEnumerable knownTypes) => throw null; + public DataContractSerializer(System.Type type, System.Runtime.Serialization.DataContractSerializerSettings settings) => throw null; public DataContractSerializer(System.Type type, string rootName, string rootNamespace) => throw null; public DataContractSerializer(System.Type type, string rootName, string rootNamespace, System.Collections.Generic.IEnumerable knownTypes) => throw null; + public DataContractSerializer(System.Type type, System.Xml.XmlDictionaryString rootName, System.Xml.XmlDictionaryString rootNamespace) => throw null; + public DataContractSerializer(System.Type type, System.Xml.XmlDictionaryString rootName, System.Xml.XmlDictionaryString rootNamespace, System.Collections.Generic.IEnumerable knownTypes) => throw null; + public System.Runtime.Serialization.DataContractResolver DataContractResolver { get => throw null; } public bool IgnoreExtensionDataObject { get => throw null; } public override bool IsStartObject(System.Xml.XmlDictionaryReader reader) => throw null; public override bool IsStartObject(System.Xml.XmlReader reader) => throw null; @@ -44,50 +97,39 @@ namespace System public override void WriteStartObject(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; public override void WriteStartObject(System.Xml.XmlWriter writer, object graph) => throw null; } - - public static class DataContractSerializerExtensions + public static partial class DataContractSerializerExtensions { public static System.Runtime.Serialization.ISerializationSurrogateProvider GetSerializationSurrogateProvider(this System.Runtime.Serialization.DataContractSerializer serializer) => throw null; public static void SetSerializationSurrogateProvider(this System.Runtime.Serialization.DataContractSerializer serializer, System.Runtime.Serialization.ISerializationSurrogateProvider provider) => throw null; } - public class DataContractSerializerSettings { - public System.Runtime.Serialization.DataContractResolver DataContractResolver { get => throw null; set => throw null; } public DataContractSerializerSettings() => throw null; - public bool IgnoreExtensionDataObject { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable KnownTypes { get => throw null; set => throw null; } - public int MaxItemsInObjectGraph { get => throw null; set => throw null; } - public bool PreserveObjectReferences { get => throw null; set => throw null; } - public System.Xml.XmlDictionaryString RootName { get => throw null; set => throw null; } - public System.Xml.XmlDictionaryString RootNamespace { get => throw null; set => throw null; } - public bool SerializeReadOnlyTypes { get => throw null; set => throw null; } + public System.Runtime.Serialization.DataContractResolver DataContractResolver { get => throw null; set { } } + public bool IgnoreExtensionDataObject { get => throw null; set { } } + public System.Collections.Generic.IEnumerable KnownTypes { get => throw null; set { } } + public int MaxItemsInObjectGraph { get => throw null; set { } } + public bool PreserveObjectReferences { get => throw null; set { } } + public System.Xml.XmlDictionaryString RootName { get => throw null; set { } } + public System.Xml.XmlDictionaryString RootNamespace { get => throw null; set { } } + public bool SerializeReadOnlyTypes { get => throw null; set { } } } - public class ExportOptions { - public System.Runtime.Serialization.ISerializationSurrogateProvider DataContractSurrogate { get => throw null; set => throw null; } public ExportOptions() => throw null; + public System.Runtime.Serialization.ISerializationSurrogateProvider DataContractSurrogate { get => throw null; set { } } public System.Collections.ObjectModel.Collection KnownTypes { get => throw null; } } - - public class ExtensionDataObject + public sealed class ExtensionDataObject { } - public interface IExtensibleDataObject { System.Runtime.Serialization.ExtensionDataObject ExtensionData { get; set; } } - - public static class XPathQueryGenerator - { - public static string CreateFromDataContractSerializer(System.Type type, System.Reflection.MemberInfo[] pathToMember, System.Text.StringBuilder rootElementXpath, out System.Xml.XmlNamespaceManager namespaces) => throw null; - public static string CreateFromDataContractSerializer(System.Type type, System.Reflection.MemberInfo[] pathToMember, out System.Xml.XmlNamespaceManager namespaces) => throw null; - } - public abstract class XmlObjectSerializer { + protected XmlObjectSerializer() => throw null; public abstract bool IsStartObject(System.Xml.XmlDictionaryReader reader); public virtual bool IsStartObject(System.Xml.XmlReader reader) => throw null; public virtual object ReadObject(System.IO.Stream stream) => throw null; @@ -104,97 +146,33 @@ namespace System public virtual void WriteObjectContent(System.Xml.XmlWriter writer, object graph) => throw null; public abstract void WriteStartObject(System.Xml.XmlDictionaryWriter writer, object graph); public virtual void WriteStartObject(System.Xml.XmlWriter writer, object graph) => throw null; - protected XmlObjectSerializer() => throw null; } - public static class XmlSerializableServices { public static void AddDefaultSchema(System.Xml.Schema.XmlSchemaSet schemas, System.Xml.XmlQualifiedName typeQName) => throw null; public static System.Xml.XmlNode[] ReadNodes(System.Xml.XmlReader xmlReader) => throw null; public static void WriteNodes(System.Xml.XmlWriter xmlWriter, System.Xml.XmlNode[] nodes) => throw null; } - + public static class XPathQueryGenerator + { + public static string CreateFromDataContractSerializer(System.Type type, System.Reflection.MemberInfo[] pathToMember, System.Text.StringBuilder rootElementXpath, out System.Xml.XmlNamespaceManager namespaces) => throw null; + public static string CreateFromDataContractSerializer(System.Type type, System.Reflection.MemberInfo[] pathToMember, out System.Xml.XmlNamespaceManager namespaces) => throw null; + } public class XsdDataContractExporter { public bool CanExport(System.Collections.Generic.ICollection assemblies) => throw null; public bool CanExport(System.Collections.Generic.ICollection types) => throw null; public bool CanExport(System.Type type) => throw null; + public XsdDataContractExporter() => throw null; + public XsdDataContractExporter(System.Xml.Schema.XmlSchemaSet schemas) => throw null; public void Export(System.Collections.Generic.ICollection assemblies) => throw null; public void Export(System.Collections.Generic.ICollection types) => throw null; public void Export(System.Type type) => throw null; public System.Xml.XmlQualifiedName GetRootElementName(System.Type type) => throw null; public System.Xml.Schema.XmlSchemaType GetSchemaType(System.Type type) => throw null; public System.Xml.XmlQualifiedName GetSchemaTypeName(System.Type type) => throw null; - public System.Runtime.Serialization.ExportOptions Options { get => throw null; set => throw null; } + public System.Runtime.Serialization.ExportOptions Options { get => throw null; set { } } public System.Xml.Schema.XmlSchemaSet Schemas { get => throw null; } - public XsdDataContractExporter() => throw null; - public XsdDataContractExporter(System.Xml.Schema.XmlSchemaSet schemas) => throw null; - } - - namespace DataContracts - { - public abstract class DataContract - { - public virtual System.Runtime.Serialization.DataContracts.DataContract BaseContract { get => throw null; } - public virtual string ContractType { get => throw null; } - internal DataContract(System.Runtime.Serialization.DataContracts.DataContractCriticalHelper helper) => throw null; - public virtual System.Collections.ObjectModel.ReadOnlyCollection DataMembers { get => throw null; } - public virtual System.Xml.XmlQualifiedName GetArrayTypeName(bool isNullable) => throw null; - public static System.Runtime.Serialization.DataContracts.DataContract GetBuiltInDataContract(string name, string ns) => throw null; - public static System.Xml.XmlQualifiedName GetXmlName(System.Type type) => throw null; - public virtual bool IsBuiltInDataContract { get => throw null; } - public virtual bool IsDictionaryLike(out string keyName, out string valueName, out string itemName) => throw null; - public virtual bool IsISerializable { get => throw null; } - public virtual bool IsReference { get => throw null; } - public virtual bool IsValueType { get => throw null; } - public virtual System.Collections.Generic.Dictionary KnownDataContracts { get => throw null; } - public virtual System.Type OriginalUnderlyingType { get => throw null; } - public virtual System.Xml.XmlDictionaryString TopLevelElementName { get => throw null; } - public virtual System.Xml.XmlDictionaryString TopLevelElementNamespace { get => throw null; } - public virtual System.Type UnderlyingType { get => throw null; } - public virtual System.Xml.XmlQualifiedName XmlName { get => throw null; } - } - - internal abstract class DataContractCriticalHelper - { - } - - public class DataContractSet - { - public System.Collections.Generic.Dictionary Contracts { get => throw null; } - public DataContractSet(System.Runtime.Serialization.DataContracts.DataContractSet dataContractSet) => throw null; - public DataContractSet(System.Runtime.Serialization.ISerializationSurrogateProvider dataContractSurrogate, System.Collections.Generic.IEnumerable referencedTypes, System.Collections.Generic.IEnumerable referencedCollectionTypes) => throw null; - public System.Runtime.Serialization.DataContracts.DataContract GetDataContract(System.Type type) => throw null; - public System.Runtime.Serialization.DataContracts.DataContract GetDataContract(System.Xml.XmlQualifiedName key) => throw null; - public System.Type GetReferencedType(System.Xml.XmlQualifiedName xmlName, System.Runtime.Serialization.DataContracts.DataContract dataContract, out System.Runtime.Serialization.DataContracts.DataContract referencedContract, out object[] genericParameters, bool? supportGenericTypes = default(bool?)) => throw null; - public void ImportSchemaSet(System.Xml.Schema.XmlSchemaSet schemaSet, System.Collections.Generic.IEnumerable typeNames, bool importXmlDataType) => throw null; - public System.Collections.Generic.List ImportSchemaSet(System.Xml.Schema.XmlSchemaSet schemaSet, System.Collections.Generic.IEnumerable elements, bool importXmlDataType) => throw null; - public System.Collections.Generic.Dictionary KnownTypesForObject { get => throw null; } - public System.Collections.Generic.Dictionary ProcessedContracts { get => throw null; } - public System.Collections.Hashtable SurrogateData { get => throw null; } - } - - public class DataMember - { - public bool EmitDefaultValue { get => throw null; } - public bool IsNullable { get => throw null; } - public bool IsRequired { get => throw null; } - public System.Runtime.Serialization.DataContracts.DataContract MemberTypeContract { get => throw null; } - public string Name { get => throw null; } - public System.Int64 Order { get => throw null; } - } - - public class XmlDataContract : System.Runtime.Serialization.DataContracts.DataContract - { - public bool HasRoot { get => throw null; } - public bool IsAnonymous { get => throw null; } - public bool IsTopLevelElementNullable { get => throw null; } - public bool IsTypeDefinedOnImport { get => throw null; set => throw null; } - public bool IsValueType { get => throw null; set => throw null; } - internal XmlDataContract(System.Type type) : base(default(System.Runtime.Serialization.DataContracts.DataContractCriticalHelper)) => throw null; - public System.Xml.Schema.XmlSchemaType XsdType { get => throw null; } - } - } } } @@ -205,255 +183,239 @@ namespace System bool CanFragment { get; } void EndFragment(); void StartFragment(System.IO.Stream stream, bool generateSelfContainedTextFragment); - void WriteFragment(System.Byte[] buffer, int offset, int count); + void WriteFragment(byte[] buffer, int offset, int count); } - public interface IStreamProvider { System.IO.Stream GetStream(); void ReleaseStream(System.IO.Stream stream); } - public interface IXmlBinaryReaderInitializer { - void SetInput(System.Byte[] buffer, int offset, int count, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.XmlBinaryReaderSession session, System.Xml.OnXmlDictionaryReaderClose onClose); + void SetInput(byte[] buffer, int offset, int count, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.XmlBinaryReaderSession session, System.Xml.OnXmlDictionaryReaderClose onClose); void SetInput(System.IO.Stream stream, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.XmlBinaryReaderSession session, System.Xml.OnXmlDictionaryReaderClose onClose); } - public interface IXmlBinaryWriterInitializer { void SetOutput(System.IO.Stream stream, System.Xml.IXmlDictionary dictionary, System.Xml.XmlBinaryWriterSession session, bool ownsStream); } - public interface IXmlDictionary { - bool TryLookup(System.Xml.XmlDictionaryString value, out System.Xml.XmlDictionaryString result); bool TryLookup(int key, out System.Xml.XmlDictionaryString result); bool TryLookup(string value, out System.Xml.XmlDictionaryString result); + bool TryLookup(System.Xml.XmlDictionaryString value, out System.Xml.XmlDictionaryString result); } - public interface IXmlTextReaderInitializer { - void SetInput(System.Byte[] buffer, int offset, int count, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose); + void SetInput(byte[] buffer, int offset, int count, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose); void SetInput(System.IO.Stream stream, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose); } - public interface IXmlTextWriterInitializer { void SetOutput(System.IO.Stream stream, System.Text.Encoding encoding, bool ownsStream); } - public delegate void OnXmlDictionaryReaderClose(System.Xml.XmlDictionaryReader reader); - public class UniqueId { - public static bool operator !=(System.Xml.UniqueId id1, System.Xml.UniqueId id2) => throw null; - public static bool operator ==(System.Xml.UniqueId id1, System.Xml.UniqueId id2) => throw null; public int CharArrayLength { get => throw null; } + public UniqueId() => throw null; + public UniqueId(byte[] guid) => throw null; + public UniqueId(byte[] guid, int offset) => throw null; + public UniqueId(char[] chars, int offset, int count) => throw null; + public UniqueId(System.Guid guid) => throw null; + public UniqueId(string value) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public bool IsGuid { get => throw null; } - public int ToCharArray(System.Char[] chars, int offset) => throw null; + public static bool operator ==(System.Xml.UniqueId id1, System.Xml.UniqueId id2) => throw null; + public static bool operator !=(System.Xml.UniqueId id1, System.Xml.UniqueId id2) => throw null; + public int ToCharArray(char[] chars, int offset) => throw null; public override string ToString() => throw null; - public bool TryGetGuid(System.Byte[] buffer, int offset) => throw null; + public bool TryGetGuid(byte[] buffer, int offset) => throw null; public bool TryGetGuid(out System.Guid guid) => throw null; - public UniqueId() => throw null; - public UniqueId(System.Byte[] guid) => throw null; - public UniqueId(System.Byte[] guid, int offset) => throw null; - public UniqueId(System.Char[] chars, int offset, int count) => throw null; - public UniqueId(System.Guid guid) => throw null; - public UniqueId(string value) => throw null; } - public class XmlBinaryReaderSession : System.Xml.IXmlDictionary { public System.Xml.XmlDictionaryString Add(int id, string value) => throw null; public void Clear() => throw null; - public bool TryLookup(System.Xml.XmlDictionaryString value, out System.Xml.XmlDictionaryString result) => throw null; + public XmlBinaryReaderSession() => throw null; public bool TryLookup(int key, out System.Xml.XmlDictionaryString result) => throw null; public bool TryLookup(string value, out System.Xml.XmlDictionaryString result) => throw null; - public XmlBinaryReaderSession() => throw null; + public bool TryLookup(System.Xml.XmlDictionaryString value, out System.Xml.XmlDictionaryString result) => throw null; } - public class XmlBinaryWriterSession { + public XmlBinaryWriterSession() => throw null; public void Reset() => throw null; public virtual bool TryAdd(System.Xml.XmlDictionaryString value, out int key) => throw null; - public XmlBinaryWriterSession() => throw null; } - public class XmlDictionary : System.Xml.IXmlDictionary { public virtual System.Xml.XmlDictionaryString Add(string value) => throw null; - public static System.Xml.IXmlDictionary Empty { get => throw null; } - public virtual bool TryLookup(System.Xml.XmlDictionaryString value, out System.Xml.XmlDictionaryString result) => throw null; - public virtual bool TryLookup(int key, out System.Xml.XmlDictionaryString result) => throw null; - public virtual bool TryLookup(string value, out System.Xml.XmlDictionaryString result) => throw null; public XmlDictionary() => throw null; public XmlDictionary(int capacity) => throw null; + public static System.Xml.IXmlDictionary Empty { get => throw null; } + public virtual bool TryLookup(int key, out System.Xml.XmlDictionaryString result) => throw null; + public virtual bool TryLookup(string value, out System.Xml.XmlDictionaryString result) => throw null; + public virtual bool TryLookup(System.Xml.XmlDictionaryString value, out System.Xml.XmlDictionaryString result) => throw null; } - public abstract class XmlDictionaryReader : System.Xml.XmlReader { public virtual bool CanCanonicalize { get => throw null; } - public static System.Xml.XmlDictionaryReader CreateBinaryReader(System.Byte[] buffer, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; - public static System.Xml.XmlDictionaryReader CreateBinaryReader(System.Byte[] buffer, int offset, int count, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; - public static System.Xml.XmlDictionaryReader CreateBinaryReader(System.Byte[] buffer, int offset, int count, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.XmlBinaryReaderSession session) => throw null; - public static System.Xml.XmlDictionaryReader CreateBinaryReader(System.Byte[] buffer, int offset, int count, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.XmlBinaryReaderSession session, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; - public static System.Xml.XmlDictionaryReader CreateBinaryReader(System.Byte[] buffer, int offset, int count, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + public static System.Xml.XmlDictionaryReader CreateBinaryReader(byte[] buffer, int offset, int count, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + public static System.Xml.XmlDictionaryReader CreateBinaryReader(byte[] buffer, int offset, int count, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.XmlBinaryReaderSession session) => throw null; + public static System.Xml.XmlDictionaryReader CreateBinaryReader(byte[] buffer, int offset, int count, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.XmlBinaryReaderSession session, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; + public static System.Xml.XmlDictionaryReader CreateBinaryReader(byte[] buffer, int offset, int count, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + public static System.Xml.XmlDictionaryReader CreateBinaryReader(byte[] buffer, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; public static System.Xml.XmlDictionaryReader CreateBinaryReader(System.IO.Stream stream, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; public static System.Xml.XmlDictionaryReader CreateBinaryReader(System.IO.Stream stream, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.XmlBinaryReaderSession session) => throw null; public static System.Xml.XmlDictionaryReader CreateBinaryReader(System.IO.Stream stream, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.XmlBinaryReaderSession session, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; public static System.Xml.XmlDictionaryReader CreateBinaryReader(System.IO.Stream stream, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; public static System.Xml.XmlDictionaryReader CreateDictionaryReader(System.Xml.XmlReader reader) => throw null; - public static System.Xml.XmlDictionaryReader CreateMtomReader(System.Byte[] buffer, int offset, int count, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; - public static System.Xml.XmlDictionaryReader CreateMtomReader(System.Byte[] buffer, int offset, int count, System.Text.Encoding[] encodings, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; - public static System.Xml.XmlDictionaryReader CreateMtomReader(System.Byte[] buffer, int offset, int count, System.Text.Encoding[] encodings, string contentType, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; - public static System.Xml.XmlDictionaryReader CreateMtomReader(System.Byte[] buffer, int offset, int count, System.Text.Encoding[] encodings, string contentType, System.Xml.XmlDictionaryReaderQuotas quotas, int maxBufferSize, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; + public static System.Xml.XmlDictionaryReader CreateMtomReader(byte[] buffer, int offset, int count, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + public static System.Xml.XmlDictionaryReader CreateMtomReader(byte[] buffer, int offset, int count, System.Text.Encoding[] encodings, string contentType, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + public static System.Xml.XmlDictionaryReader CreateMtomReader(byte[] buffer, int offset, int count, System.Text.Encoding[] encodings, string contentType, System.Xml.XmlDictionaryReaderQuotas quotas, int maxBufferSize, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; + public static System.Xml.XmlDictionaryReader CreateMtomReader(byte[] buffer, int offset, int count, System.Text.Encoding[] encodings, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; public static System.Xml.XmlDictionaryReader CreateMtomReader(System.IO.Stream stream, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; - public static System.Xml.XmlDictionaryReader CreateMtomReader(System.IO.Stream stream, System.Text.Encoding[] encodings, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; public static System.Xml.XmlDictionaryReader CreateMtomReader(System.IO.Stream stream, System.Text.Encoding[] encodings, string contentType, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; public static System.Xml.XmlDictionaryReader CreateMtomReader(System.IO.Stream stream, System.Text.Encoding[] encodings, string contentType, System.Xml.XmlDictionaryReaderQuotas quotas, int maxBufferSize, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; - public static System.Xml.XmlDictionaryReader CreateTextReader(System.Byte[] buffer, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; - public static System.Xml.XmlDictionaryReader CreateTextReader(System.Byte[] buffer, int offset, int count, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; - public static System.Xml.XmlDictionaryReader CreateTextReader(System.Byte[] buffer, int offset, int count, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + public static System.Xml.XmlDictionaryReader CreateMtomReader(System.IO.Stream stream, System.Text.Encoding[] encodings, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + public static System.Xml.XmlDictionaryReader CreateTextReader(byte[] buffer, int offset, int count, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; + public static System.Xml.XmlDictionaryReader CreateTextReader(byte[] buffer, int offset, int count, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + public static System.Xml.XmlDictionaryReader CreateTextReader(byte[] buffer, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; public static System.Xml.XmlDictionaryReader CreateTextReader(System.IO.Stream stream, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose) => throw null; public static System.Xml.XmlDictionaryReader CreateTextReader(System.IO.Stream stream, System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; + protected XmlDictionaryReader() => throw null; public virtual void EndCanonicalization() => throw null; public virtual string GetAttribute(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual void GetNonAtomizedNames(out string localName, out string namespaceUri) => throw null; public virtual int IndexOfLocalName(string[] localNames, string namespaceUri) => throw null; public virtual int IndexOfLocalName(System.Xml.XmlDictionaryString[] localNames, System.Xml.XmlDictionaryString namespaceUri) => throw null; - public virtual bool IsLocalName(System.Xml.XmlDictionaryString localName) => throw null; public virtual bool IsLocalName(string localName) => throw null; - public virtual bool IsNamespaceUri(System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual bool IsLocalName(System.Xml.XmlDictionaryString localName) => throw null; public virtual bool IsNamespaceUri(string namespaceUri) => throw null; + public virtual bool IsNamespaceUri(System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual bool IsStartArray(out System.Type type) => throw null; public virtual bool IsStartElement(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; protected bool IsTextNode(System.Xml.XmlNodeType nodeType) => throw null; public virtual void MoveToStartElement() => throw null; - public virtual void MoveToStartElement(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual void MoveToStartElement(string name) => throw null; public virtual void MoveToStartElement(string localName, string namespaceUri) => throw null; + public virtual void MoveToStartElement(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual System.Xml.XmlDictionaryReaderQuotas Quotas { get => throw null; } - public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, bool[] array, int offset, int count) => throw null; - public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.DateTime[] array, int offset, int count) => throw null; - public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.Decimal[] array, int offset, int count) => throw null; - public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, double[] array, int offset, int count) => throw null; - public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.Guid[] array, int offset, int count) => throw null; - public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.Int16[] array, int offset, int count) => throw null; - public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, int[] array, int offset, int count) => throw null; - public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.Int64[] array, int offset, int count) => throw null; - public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, float[] array, int offset, int count) => throw null; - public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.TimeSpan[] array, int offset, int count) => throw null; public virtual int ReadArray(string localName, string namespaceUri, bool[] array, int offset, int count) => throw null; public virtual int ReadArray(string localName, string namespaceUri, System.DateTime[] array, int offset, int count) => throw null; - public virtual int ReadArray(string localName, string namespaceUri, System.Decimal[] array, int offset, int count) => throw null; + public virtual int ReadArray(string localName, string namespaceUri, decimal[] array, int offset, int count) => throw null; public virtual int ReadArray(string localName, string namespaceUri, double[] array, int offset, int count) => throw null; public virtual int ReadArray(string localName, string namespaceUri, System.Guid[] array, int offset, int count) => throw null; - public virtual int ReadArray(string localName, string namespaceUri, System.Int16[] array, int offset, int count) => throw null; + public virtual int ReadArray(string localName, string namespaceUri, short[] array, int offset, int count) => throw null; public virtual int ReadArray(string localName, string namespaceUri, int[] array, int offset, int count) => throw null; - public virtual int ReadArray(string localName, string namespaceUri, System.Int64[] array, int offset, int count) => throw null; + public virtual int ReadArray(string localName, string namespaceUri, long[] array, int offset, int count) => throw null; public virtual int ReadArray(string localName, string namespaceUri, float[] array, int offset, int count) => throw null; public virtual int ReadArray(string localName, string namespaceUri, System.TimeSpan[] array, int offset, int count) => throw null; - public virtual bool[] ReadBooleanArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, bool[] array, int offset, int count) => throw null; + public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.DateTime[] array, int offset, int count) => throw null; + public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, decimal[] array, int offset, int count) => throw null; + public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, double[] array, int offset, int count) => throw null; + public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.Guid[] array, int offset, int count) => throw null; + public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, short[] array, int offset, int count) => throw null; + public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, int[] array, int offset, int count) => throw null; + public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, long[] array, int offset, int count) => throw null; + public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, float[] array, int offset, int count) => throw null; + public virtual int ReadArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.TimeSpan[] array, int offset, int count) => throw null; public virtual bool[] ReadBooleanArray(string localName, string namespaceUri) => throw null; + public virtual bool[] ReadBooleanArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public override object ReadContentAs(System.Type type, System.Xml.IXmlNamespaceResolver namespaceResolver) => throw null; - public virtual System.Byte[] ReadContentAsBase64() => throw null; - public virtual System.Byte[] ReadContentAsBinHex() => throw null; - protected System.Byte[] ReadContentAsBinHex(int maxByteArrayContentLength) => throw null; - public virtual int ReadContentAsChars(System.Char[] chars, int offset, int count) => throw null; - public override System.Decimal ReadContentAsDecimal() => throw null; + public virtual byte[] ReadContentAsBase64() => throw null; + public virtual byte[] ReadContentAsBinHex() => throw null; + protected byte[] ReadContentAsBinHex(int maxByteArrayContentLength) => throw null; + public virtual int ReadContentAsChars(char[] chars, int offset, int count) => throw null; + public override decimal ReadContentAsDecimal() => throw null; public override float ReadContentAsFloat() => throw null; public virtual System.Guid ReadContentAsGuid() => throw null; public virtual void ReadContentAsQualifiedName(out string localName, out string namespaceUri) => throw null; public override string ReadContentAsString() => throw null; + protected string ReadContentAsString(int maxStringContentLength) => throw null; public virtual string ReadContentAsString(string[] strings, out int index) => throw null; public virtual string ReadContentAsString(System.Xml.XmlDictionaryString[] strings, out int index) => throw null; - protected string ReadContentAsString(int maxStringContentLength) => throw null; public virtual System.TimeSpan ReadContentAsTimeSpan() => throw null; public virtual System.Xml.UniqueId ReadContentAsUniqueId() => throw null; - public virtual System.DateTime[] ReadDateTimeArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual System.DateTime[] ReadDateTimeArray(string localName, string namespaceUri) => throw null; - public virtual System.Decimal[] ReadDecimalArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; - public virtual System.Decimal[] ReadDecimalArray(string localName, string namespaceUri) => throw null; - public virtual double[] ReadDoubleArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual System.DateTime[] ReadDateTimeArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual decimal[] ReadDecimalArray(string localName, string namespaceUri) => throw null; + public virtual decimal[] ReadDecimalArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual double[] ReadDoubleArray(string localName, string namespaceUri) => throw null; - public virtual System.Byte[] ReadElementContentAsBase64() => throw null; - public virtual System.Byte[] ReadElementContentAsBinHex() => throw null; + public virtual double[] ReadDoubleArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual byte[] ReadElementContentAsBase64() => throw null; + public virtual byte[] ReadElementContentAsBinHex() => throw null; public override bool ReadElementContentAsBoolean() => throw null; public override System.DateTime ReadElementContentAsDateTime() => throw null; - public override System.Decimal ReadElementContentAsDecimal() => throw null; + public override decimal ReadElementContentAsDecimal() => throw null; public override double ReadElementContentAsDouble() => throw null; public override float ReadElementContentAsFloat() => throw null; public virtual System.Guid ReadElementContentAsGuid() => throw null; public override int ReadElementContentAsInt() => throw null; - public override System.Int64 ReadElementContentAsLong() => throw null; + public override long ReadElementContentAsLong() => throw null; public override string ReadElementContentAsString() => throw null; public virtual System.TimeSpan ReadElementContentAsTimeSpan() => throw null; public virtual System.Xml.UniqueId ReadElementContentAsUniqueId() => throw null; public virtual void ReadFullStartElement() => throw null; - public virtual void ReadFullStartElement(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual void ReadFullStartElement(string name) => throw null; public virtual void ReadFullStartElement(string localName, string namespaceUri) => throw null; - public virtual System.Guid[] ReadGuidArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual void ReadFullStartElement(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual System.Guid[] ReadGuidArray(string localName, string namespaceUri) => throw null; - public virtual System.Int16[] ReadInt16Array(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; - public virtual System.Int16[] ReadInt16Array(string localName, string namespaceUri) => throw null; - public virtual int[] ReadInt32Array(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual System.Guid[] ReadGuidArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual short[] ReadInt16Array(string localName, string namespaceUri) => throw null; + public virtual short[] ReadInt16Array(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual int[] ReadInt32Array(string localName, string namespaceUri) => throw null; - public virtual System.Int64[] ReadInt64Array(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; - public virtual System.Int64[] ReadInt64Array(string localName, string namespaceUri) => throw null; - public virtual float[] ReadSingleArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual int[] ReadInt32Array(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual long[] ReadInt64Array(string localName, string namespaceUri) => throw null; + public virtual long[] ReadInt64Array(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual float[] ReadSingleArray(string localName, string namespaceUri) => throw null; + public virtual float[] ReadSingleArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual void ReadStartElement(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public override string ReadString() => throw null; protected string ReadString(int maxStringContentLength) => throw null; - public virtual System.TimeSpan[] ReadTimeSpanArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual System.TimeSpan[] ReadTimeSpanArray(string localName, string namespaceUri) => throw null; - public virtual int ReadValueAsBase64(System.Byte[] buffer, int offset, int count) => throw null; + public virtual System.TimeSpan[] ReadTimeSpanArray(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual int ReadValueAsBase64(byte[] buffer, int offset, int count) => throw null; public virtual void StartCanonicalization(System.IO.Stream stream, bool includeComments, string[] inclusivePrefixes) => throw null; public virtual bool TryGetArrayLength(out int count) => throw null; public virtual bool TryGetBase64ContentLength(out int length) => throw null; public virtual bool TryGetLocalNameAsDictionaryString(out System.Xml.XmlDictionaryString localName) => throw null; public virtual bool TryGetNamespaceUriAsDictionaryString(out System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual bool TryGetValueAsDictionaryString(out System.Xml.XmlDictionaryString value) => throw null; - protected XmlDictionaryReader() => throw null; } - - [System.Flags] - public enum XmlDictionaryReaderQuotaTypes : int - { - MaxArrayLength = 4, - MaxBytesPerRead = 8, - MaxDepth = 1, - MaxNameTableCharCount = 16, - MaxStringContentLength = 2, - } - - public class XmlDictionaryReaderQuotas + public sealed class XmlDictionaryReaderQuotas { public void CopyTo(System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; - public static System.Xml.XmlDictionaryReaderQuotas Max { get => throw null; } - public int MaxArrayLength { get => throw null; set => throw null; } - public int MaxBytesPerRead { get => throw null; set => throw null; } - public int MaxDepth { get => throw null; set => throw null; } - public int MaxNameTableCharCount { get => throw null; set => throw null; } - public int MaxStringContentLength { get => throw null; set => throw null; } - public System.Xml.XmlDictionaryReaderQuotaTypes ModifiedQuotas { get => throw null; } public XmlDictionaryReaderQuotas() => throw null; + public static System.Xml.XmlDictionaryReaderQuotas Max { get => throw null; } + public int MaxArrayLength { get => throw null; set { } } + public int MaxBytesPerRead { get => throw null; set { } } + public int MaxDepth { get => throw null; set { } } + public int MaxNameTableCharCount { get => throw null; set { } } + public int MaxStringContentLength { get => throw null; set { } } + public System.Xml.XmlDictionaryReaderQuotaTypes ModifiedQuotas { get => throw null; } + } + [System.Flags] + public enum XmlDictionaryReaderQuotaTypes + { + MaxDepth = 1, + MaxStringContentLength = 2, + MaxArrayLength = 4, + MaxBytesPerRead = 8, + MaxNameTableCharCount = 16, } - public class XmlDictionaryString { + public XmlDictionaryString(System.Xml.IXmlDictionary dictionary, string value, int key) => throw null; public System.Xml.IXmlDictionary Dictionary { get => throw null; } public static System.Xml.XmlDictionaryString Empty { get => throw null; } public int Key { get => throw null; } public override string ToString() => throw null; public string Value { get => throw null; } - public XmlDictionaryString(System.Xml.IXmlDictionary dictionary, string value, int key) => throw null; } - public abstract class XmlDictionaryWriter : System.Xml.XmlWriter { public virtual bool CanCanonicalize { get => throw null; } @@ -467,54 +429,53 @@ namespace System public static System.Xml.XmlDictionaryWriter CreateTextWriter(System.IO.Stream stream) => throw null; public static System.Xml.XmlDictionaryWriter CreateTextWriter(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; public static System.Xml.XmlDictionaryWriter CreateTextWriter(System.IO.Stream stream, System.Text.Encoding encoding, bool ownsStream) => throw null; + protected XmlDictionaryWriter() => throw null; public virtual void EndCanonicalization() => throw null; public virtual void StartCanonicalization(System.IO.Stream stream, bool includeComments, string[] inclusivePrefixes) => throw null; - public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, bool[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.DateTime[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.Decimal[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, double[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.Guid[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.Int16[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, int[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.Int64[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, float[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.TimeSpan[] array, int offset, int count) => throw null; public virtual void WriteArray(string prefix, string localName, string namespaceUri, bool[] array, int offset, int count) => throw null; public virtual void WriteArray(string prefix, string localName, string namespaceUri, System.DateTime[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, string localName, string namespaceUri, System.Decimal[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, string localName, string namespaceUri, decimal[] array, int offset, int count) => throw null; public virtual void WriteArray(string prefix, string localName, string namespaceUri, double[] array, int offset, int count) => throw null; public virtual void WriteArray(string prefix, string localName, string namespaceUri, System.Guid[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, string localName, string namespaceUri, System.Int16[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, string localName, string namespaceUri, short[] array, int offset, int count) => throw null; public virtual void WriteArray(string prefix, string localName, string namespaceUri, int[] array, int offset, int count) => throw null; - public virtual void WriteArray(string prefix, string localName, string namespaceUri, System.Int64[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, string localName, string namespaceUri, long[] array, int offset, int count) => throw null; public virtual void WriteArray(string prefix, string localName, string namespaceUri, float[] array, int offset, int count) => throw null; public virtual void WriteArray(string prefix, string localName, string namespaceUri, System.TimeSpan[] array, int offset, int count) => throw null; - public void WriteAttributeString(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, string value) => throw null; + public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, bool[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.DateTime[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, decimal[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, double[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.Guid[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, short[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, int[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, long[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, float[] array, int offset, int count) => throw null; + public virtual void WriteArray(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, System.TimeSpan[] array, int offset, int count) => throw null; public void WriteAttributeString(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, string value) => throw null; - public override System.Threading.Tasks.Task WriteBase64Async(System.Byte[] buffer, int index, int count) => throw null; - public void WriteElementString(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, string value) => throw null; + public void WriteAttributeString(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, string value) => throw null; + public override System.Threading.Tasks.Task WriteBase64Async(byte[] buffer, int index, int count) => throw null; public void WriteElementString(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, string value) => throw null; + public void WriteElementString(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri, string value) => throw null; public virtual void WriteNode(System.Xml.XmlDictionaryReader reader, bool defattr) => throw null; public override void WriteNode(System.Xml.XmlReader reader, bool defattr) => throw null; public virtual void WriteQualifiedName(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; - public void WriteStartAttribute(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual void WriteStartAttribute(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; - public void WriteStartElement(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public void WriteStartAttribute(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual void WriteStartElement(string prefix, System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public void WriteStartElement(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString namespaceUri) => throw null; public virtual void WriteString(System.Xml.XmlDictionaryString value) => throw null; protected virtual void WriteTextNode(System.Xml.XmlDictionaryReader reader, bool isAttribute) => throw null; public virtual void WriteValue(System.Guid value) => throw null; - public virtual void WriteValue(System.Xml.IStreamProvider value) => throw null; public virtual void WriteValue(System.TimeSpan value) => throw null; + public virtual void WriteValue(System.Xml.IStreamProvider value) => throw null; public virtual void WriteValue(System.Xml.UniqueId value) => throw null; public virtual void WriteValue(System.Xml.XmlDictionaryString value) => throw null; public virtual System.Threading.Tasks.Task WriteValueAsync(System.Xml.IStreamProvider value) => throw null; - public virtual void WriteXmlAttribute(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString value) => throw null; public virtual void WriteXmlAttribute(string localName, string value) => throw null; - public virtual void WriteXmlnsAttribute(string prefix, System.Xml.XmlDictionaryString namespaceUri) => throw null; + public virtual void WriteXmlAttribute(System.Xml.XmlDictionaryString localName, System.Xml.XmlDictionaryString value) => throw null; public virtual void WriteXmlnsAttribute(string prefix, string namespaceUri) => throw null; - protected XmlDictionaryWriter() => throw null; + public virtual void WriteXmlnsAttribute(string prefix, System.Xml.XmlDictionaryString namespaceUri) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs new file mode 100644 index 00000000000..44765cb9b33 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs index fbe44d3c8fb..305922a7e0b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace Microsoft { namespace Win32 @@ -9,44 +8,38 @@ namespace Microsoft { public abstract class CriticalHandleMinusOneIsInvalid : System.Runtime.InteropServices.CriticalHandle { - protected CriticalHandleMinusOneIsInvalid() : base(default(System.IntPtr)) => throw null; + protected CriticalHandleMinusOneIsInvalid() : base(default(nint)) => throw null; public override bool IsInvalid { get => throw null; } } - public abstract class CriticalHandleZeroOrMinusOneIsInvalid : System.Runtime.InteropServices.CriticalHandle { - protected CriticalHandleZeroOrMinusOneIsInvalid() : base(default(System.IntPtr)) => throw null; + protected CriticalHandleZeroOrMinusOneIsInvalid() : base(default(nint)) => throw null; public override bool IsInvalid { get => throw null; } } - - public class SafeFileHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid + public sealed class SafeFileHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { + public SafeFileHandle() : base(default(bool)) => throw null; + public SafeFileHandle(nint preexistingHandle, bool ownsHandle) : base(default(bool)) => throw null; public bool IsAsync { get => throw null; } public override bool IsInvalid { get => throw null; } protected override bool ReleaseHandle() => throw null; - public SafeFileHandle() : base(default(bool)) => throw null; - public SafeFileHandle(System.IntPtr preexistingHandle, bool ownsHandle) : base(default(bool)) => throw null; } - public abstract class SafeHandleMinusOneIsInvalid : System.Runtime.InteropServices.SafeHandle { + protected SafeHandleMinusOneIsInvalid(bool ownsHandle) : base(default(nint), default(bool)) => throw null; public override bool IsInvalid { get => throw null; } - protected SafeHandleMinusOneIsInvalid(bool ownsHandle) : base(default(System.IntPtr), default(bool)) => throw null; } - public abstract class SafeHandleZeroOrMinusOneIsInvalid : System.Runtime.InteropServices.SafeHandle { + protected SafeHandleZeroOrMinusOneIsInvalid(bool ownsHandle) : base(default(nint), default(bool)) => throw null; public override bool IsInvalid { get => throw null; } - protected SafeHandleZeroOrMinusOneIsInvalid(bool ownsHandle) : base(default(System.IntPtr), default(bool)) => throw null; } - - public class SafeWaitHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid + public sealed class SafeWaitHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { - protected override bool ReleaseHandle() => throw null; public SafeWaitHandle() : base(default(bool)) => throw null; - public SafeWaitHandle(System.IntPtr existingHandle, bool ownsHandle) : base(default(bool)) => throw null; + public SafeWaitHandle(nint existingHandle, bool ownsHandle) : base(default(bool)) => throw null; + protected override bool ReleaseHandle() => throw null; } - } } } @@ -59,67 +52,48 @@ namespace System public AccessViolationException(string message) => throw null; public AccessViolationException(string message, System.Exception innerException) => throw null; } - public delegate void Action(); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4); - - public delegate void Action(T1 arg1, T2 arg2, T3 arg3); - - public delegate void Action(T1 arg1, T2 arg2); - public delegate void Action(T obj); - + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16); + public delegate void Action(T1 arg1, T2 arg2); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9); public static class Activator { + public static System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName) => throw null; + public static System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; + public static System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName, object[] activationAttributes) => throw null; public static object CreateInstance(System.Type type) => throw null; - public static object CreateInstance(System.Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture) => throw null; - public static object CreateInstance(System.Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; - public static object CreateInstance(System.Type type, object[] args, object[] activationAttributes) => throw null; public static object CreateInstance(System.Type type, bool nonPublic) => throw null; public static object CreateInstance(System.Type type, params object[] args) => throw null; - public static System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName) => throw null; - public static System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName, object[] activationAttributes) => throw null; - public static System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; + public static object CreateInstance(System.Type type, object[] args, object[] activationAttributes) => throw null; + public static object CreateInstance(System.Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture) => throw null; + public static object CreateInstance(System.Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; public static T CreateInstance() => throw null; public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName) => throw null; - public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName, object[] activationAttributes) => throw null; public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; + public static System.Runtime.Remoting.ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName, object[] activationAttributes) => throw null; } - public class AggregateException : System.Exception { public AggregateException() => throw null; public AggregateException(System.Collections.Generic.IEnumerable innerExceptions) => throw null; - protected AggregateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public AggregateException(params System.Exception[] innerExceptions) => throw null; + protected AggregateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public AggregateException(string message) => throw null; - public AggregateException(string message, System.Exception innerException) => throw null; public AggregateException(string message, System.Collections.Generic.IEnumerable innerExceptions) => throw null; + public AggregateException(string message, System.Exception innerException) => throw null; public AggregateException(string message, params System.Exception[] innerExceptions) => throw null; public System.AggregateException Flatten() => throw null; public override System.Exception GetBaseException() => throw null; @@ -129,7 +103,6 @@ namespace System public override string Message { get => throw null; } public override string ToString() => throw null; } - public static class AppContext { public static string BaseDirectory { get => throw null; } @@ -139,39 +112,38 @@ namespace System public static string TargetFrameworkName { get => throw null; } public static bool TryGetSwitch(string switchName, out bool isEnabled) => throw null; } - - public class AppDomain : System.MarshalByRefObject + public sealed class AppDomain : System.MarshalByRefObject { public void AppendPrivatePath(string path) => throw null; public string ApplyPolicy(string assemblyName) => throw null; - public event System.AssemblyLoadEventHandler AssemblyLoad; - public event System.ResolveEventHandler AssemblyResolve; + public event System.AssemblyLoadEventHandler AssemblyLoad { add { } remove { } } + public event System.ResolveEventHandler AssemblyResolve { add { } remove { } } public string BaseDirectory { get => throw null; } public void ClearPrivatePath() => throw null; public void ClearShadowCopyPath() => throw null; public static System.AppDomain CreateDomain(string friendlyName) => throw null; public System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName) => throw null; - public System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName, object[] activationAttributes) => throw null; public System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; + public System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName, object[] activationAttributes) => throw null; public object CreateInstanceAndUnwrap(string assemblyName, string typeName) => throw null; - public object CreateInstanceAndUnwrap(string assemblyName, string typeName, object[] activationAttributes) => throw null; public object CreateInstanceAndUnwrap(string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; + public object CreateInstanceAndUnwrap(string assemblyName, string typeName, object[] activationAttributes) => throw null; public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName) => throw null; - public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName, object[] activationAttributes) => throw null; public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; + public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName, object[] activationAttributes) => throw null; public object CreateInstanceFromAndUnwrap(string assemblyFile, string typeName) => throw null; - public object CreateInstanceFromAndUnwrap(string assemblyFile, string typeName, object[] activationAttributes) => throw null; public object CreateInstanceFromAndUnwrap(string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; + public object CreateInstanceFromAndUnwrap(string assemblyFile, string typeName, object[] activationAttributes) => throw null; public static System.AppDomain CurrentDomain { get => throw null; } - public event System.EventHandler DomainUnload; + public event System.EventHandler DomainUnload { add { } remove { } } public string DynamicDirectory { get => throw null; } public int ExecuteAssembly(string assemblyFile) => throw null; public int ExecuteAssembly(string assemblyFile, string[] args) => throw null; - public int ExecuteAssembly(string assemblyFile, string[] args, System.Byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm) => throw null; + public int ExecuteAssembly(string assemblyFile, string[] args, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm) => throw null; public int ExecuteAssemblyByName(System.Reflection.AssemblyName assemblyName, params string[] args) => throw null; public int ExecuteAssemblyByName(string assemblyName) => throw null; public int ExecuteAssemblyByName(string assemblyName, params string[] args) => throw null; - public event System.EventHandler FirstChanceException; + public event System.EventHandler FirstChanceException { add { } remove { } } public string FriendlyName { get => throw null; } public System.Reflection.Assembly[] GetAssemblies() => throw null; public static int GetCurrentThreadId() => throw null; @@ -182,21 +154,21 @@ namespace System public bool IsFinalizingForUnload() => throw null; public bool IsFullyTrusted { get => throw null; } public bool IsHomogenous { get => throw null; } + public System.Reflection.Assembly Load(byte[] rawAssembly) => throw null; + public System.Reflection.Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore) => throw null; public System.Reflection.Assembly Load(System.Reflection.AssemblyName assemblyRef) => throw null; - public System.Reflection.Assembly Load(System.Byte[] rawAssembly) => throw null; - public System.Reflection.Assembly Load(System.Byte[] rawAssembly, System.Byte[] rawSymbolStore) => throw null; public System.Reflection.Assembly Load(string assemblyString) => throw null; - public static bool MonitoringIsEnabled { get => throw null; set => throw null; } - public System.Int64 MonitoringSurvivedMemorySize { get => throw null; } - public static System.Int64 MonitoringSurvivedProcessMemorySize { get => throw null; } - public System.Int64 MonitoringTotalAllocatedMemorySize { get => throw null; } + public static bool MonitoringIsEnabled { get => throw null; set { } } + public long MonitoringSurvivedMemorySize { get => throw null; } + public static long MonitoringSurvivedProcessMemorySize { get => throw null; } + public long MonitoringTotalAllocatedMemorySize { get => throw null; } public System.TimeSpan MonitoringTotalProcessorTime { get => throw null; } public System.Security.PermissionSet PermissionSet { get => throw null; } - public event System.EventHandler ProcessExit; - public event System.ResolveEventHandler ReflectionOnlyAssemblyResolve; + public event System.EventHandler ProcessExit { add { } remove { } } + public event System.ResolveEventHandler ReflectionOnlyAssemblyResolve { add { } remove { } } public System.Reflection.Assembly[] ReflectionOnlyGetAssemblies() => throw null; public string RelativeSearchPath { get => throw null; } - public event System.ResolveEventHandler ResourceResolve; + public event System.ResolveEventHandler ResourceResolve { add { } remove { } } public void SetCachePath(string path) => throw null; public void SetData(string name, object data) => throw null; public void SetDynamicBase(string path) => throw null; @@ -207,17 +179,15 @@ namespace System public System.AppDomainSetup SetupInformation { get => throw null; } public bool ShadowCopyFiles { get => throw null; } public override string ToString() => throw null; - public event System.ResolveEventHandler TypeResolve; - public event System.UnhandledExceptionEventHandler UnhandledException; + public event System.ResolveEventHandler TypeResolve { add { } remove { } } + public event System.UnhandledExceptionEventHandler UnhandledException { add { } remove { } } public static void Unload(System.AppDomain domain) => throw null; } - - public class AppDomainSetup + public sealed class AppDomainSetup { public string ApplicationBase { get => throw null; } public string TargetFrameworkName { get => throw null; } } - public class AppDomainUnloadedException : System.SystemException { public AppDomainUnloadedException() => throw null; @@ -225,7 +195,6 @@ namespace System public AppDomainUnloadedException(string message) => throw null; public AppDomainUnloadedException(string message, System.Exception innerException) => throw null; } - public class ApplicationException : System.Exception { public ApplicationException() => throw null; @@ -233,26 +202,23 @@ namespace System public ApplicationException(string message) => throw null; public ApplicationException(string message, System.Exception innerException) => throw null; } - - public class ApplicationId + public sealed class ApplicationId { - public ApplicationId(System.Byte[] publicKeyToken, string name, System.Version version, string processorArchitecture, string culture) => throw null; public System.ApplicationId Copy() => throw null; + public ApplicationId(byte[] publicKeyToken, string name, System.Version version, string processorArchitecture, string culture) => throw null; public string Culture { get => throw null; } public override bool Equals(object o) => throw null; public override int GetHashCode() => throw null; public string Name { get => throw null; } public string ProcessorArchitecture { get => throw null; } - public System.Byte[] PublicKeyToken { get => throw null; } + public byte[] PublicKeyToken { get => throw null; } public override string ToString() => throw null; public System.Version Version { get => throw null; } } - public struct ArgIterator { - // Stub generator skipped constructor public ArgIterator(System.RuntimeArgumentHandle arglist) => throw null; - unsafe public ArgIterator(System.RuntimeArgumentHandle arglist, void* ptr) => throw null; + public unsafe ArgIterator(System.RuntimeArgumentHandle arglist, void* ptr) => throw null; public void End() => throw null; public override bool Equals(object o) => throw null; public override int GetHashCode() => throw null; @@ -261,7 +227,6 @@ namespace System public System.RuntimeTypeHandle GetNextArgType() => throw null; public int GetRemainingCount() => throw null; } - public class ArgumentException : System.SystemException { public ArgumentException() => throw null; @@ -275,7 +240,6 @@ namespace System public virtual string ParamName { get => throw null; } public static void ThrowIfNullOrEmpty(string argument, string paramName = default(string)) => throw null; } - public class ArgumentNullException : System.ArgumentException { public ArgumentNullException() => throw null; @@ -283,10 +247,9 @@ namespace System public ArgumentNullException(string paramName) => throw null; public ArgumentNullException(string message, System.Exception innerException) => throw null; public ArgumentNullException(string paramName, string message) => throw null; - unsafe public static void ThrowIfNull(void* argument, string paramName = default(string)) => throw null; public static void ThrowIfNull(object argument, string paramName = default(string)) => throw null; + public static unsafe void ThrowIfNull(void* argument, string paramName = default(string)) => throw null; } - public class ArgumentOutOfRangeException : System.ArgumentException { public virtual object ActualValue { get => throw null; } @@ -299,7 +262,6 @@ namespace System public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public override string Message { get => throw null; } } - public class ArithmeticException : System.SystemException { public ArithmeticException() => throw null; @@ -307,7 +269,6 @@ namespace System public ArithmeticException(string message) => throw null; public ArithmeticException(string message, System.Exception innerException) => throw null; } - public abstract class Array : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.ICloneable { int System.Collections.IList.Add(object value) => throw null; @@ -316,31 +277,31 @@ namespace System public static int BinarySearch(System.Array array, int index, int length, object value, System.Collections.IComparer comparer) => throw null; public static int BinarySearch(System.Array array, object value) => throw null; public static int BinarySearch(System.Array array, object value, System.Collections.IComparer comparer) => throw null; - public static int BinarySearch(T[] array, T value) => throw null; - public static int BinarySearch(T[] array, T value, System.Collections.Generic.IComparer comparer) => throw null; public static int BinarySearch(T[] array, int index, int length, T value) => throw null; public static int BinarySearch(T[] array, int index, int length, T value, System.Collections.Generic.IComparer comparer) => throw null; - void System.Collections.IList.Clear() => throw null; + public static int BinarySearch(T[] array, T value) => throw null; + public static int BinarySearch(T[] array, T value, System.Collections.Generic.IComparer comparer) => throw null; public static void Clear(System.Array array) => throw null; public static void Clear(System.Array array, int index, int length) => throw null; + void System.Collections.IList.Clear() => throw null; public object Clone() => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; public static void ConstrainedCopy(System.Array sourceArray, int sourceIndex, System.Array destinationArray, int destinationIndex, int length) => throw null; bool System.Collections.IList.Contains(object value) => throw null; public static TOutput[] ConvertAll(TInput[] array, System.Converter converter) => throw null; public static void Copy(System.Array sourceArray, System.Array destinationArray, int length) => throw null; - public static void Copy(System.Array sourceArray, System.Array destinationArray, System.Int64 length) => throw null; + public static void Copy(System.Array sourceArray, System.Array destinationArray, long length) => throw null; public static void Copy(System.Array sourceArray, int sourceIndex, System.Array destinationArray, int destinationIndex, int length) => throw null; - public static void Copy(System.Array sourceArray, System.Int64 sourceIndex, System.Array destinationArray, System.Int64 destinationIndex, System.Int64 length) => throw null; + public static void Copy(System.Array sourceArray, long sourceIndex, System.Array destinationArray, long destinationIndex, long length) => throw null; public void CopyTo(System.Array array, int index) => throw null; - public void CopyTo(System.Array array, System.Int64 index) => throw null; + public void CopyTo(System.Array array, long index) => throw null; int System.Collections.ICollection.Count { get => throw null; } - public static System.Array CreateInstance(System.Type elementType, int[] lengths, int[] lowerBounds) => throw null; public static System.Array CreateInstance(System.Type elementType, int length) => throw null; public static System.Array CreateInstance(System.Type elementType, int length1, int length2) => throw null; public static System.Array CreateInstance(System.Type elementType, int length1, int length2, int length3) => throw null; public static System.Array CreateInstance(System.Type elementType, params int[] lengths) => throw null; - public static System.Array CreateInstance(System.Type elementType, params System.Int64[] lengths) => throw null; + public static System.Array CreateInstance(System.Type elementType, int[] lengths, int[] lowerBounds) => throw null; + public static System.Array CreateInstance(System.Type elementType, params long[] lengths) => throw null; public static T[] Empty() => throw null; bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; public static bool Exists(T[] array, System.Predicate match) => throw null; @@ -348,41 +309,41 @@ namespace System public static void Fill(T[] array, T value, int startIndex, int count) => throw null; public static T Find(T[] array, System.Predicate match) => throw null; public static T[] FindAll(T[] array, System.Predicate match) => throw null; - public static int FindIndex(T[] array, System.Predicate match) => throw null; - public static int FindIndex(T[] array, int startIndex, System.Predicate match) => throw null; public static int FindIndex(T[] array, int startIndex, int count, System.Predicate match) => throw null; + public static int FindIndex(T[] array, int startIndex, System.Predicate match) => throw null; + public static int FindIndex(T[] array, System.Predicate match) => throw null; public static T FindLast(T[] array, System.Predicate match) => throw null; - public static int FindLastIndex(T[] array, System.Predicate match) => throw null; - public static int FindLastIndex(T[] array, int startIndex, System.Predicate match) => throw null; public static int FindLastIndex(T[] array, int startIndex, int count, System.Predicate match) => throw null; + public static int FindLastIndex(T[] array, int startIndex, System.Predicate match) => throw null; + public static int FindLastIndex(T[] array, System.Predicate match) => throw null; public static void ForEach(T[] array, System.Action action) => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; public int GetLength(int dimension) => throw null; - public System.Int64 GetLongLength(int dimension) => throw null; + public long GetLongLength(int dimension) => throw null; public int GetLowerBound(int dimension) => throw null; public int GetUpperBound(int dimension) => throw null; public object GetValue(int index) => throw null; public object GetValue(int index1, int index2) => throw null; public object GetValue(int index1, int index2, int index3) => throw null; - public object GetValue(System.Int64 index) => throw null; - public object GetValue(System.Int64 index1, System.Int64 index2) => throw null; - public object GetValue(System.Int64 index1, System.Int64 index2, System.Int64 index3) => throw null; public object GetValue(params int[] indices) => throw null; - public object GetValue(params System.Int64[] indices) => throw null; + public object GetValue(long index) => throw null; + public object GetValue(long index1, long index2) => throw null; + public object GetValue(long index1, long index2, long index3) => throw null; + public object GetValue(params long[] indices) => throw null; public static int IndexOf(System.Array array, object value) => throw null; public static int IndexOf(System.Array array, object value, int startIndex) => throw null; public static int IndexOf(System.Array array, object value, int startIndex, int count) => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; public static int IndexOf(T[] array, T value) => throw null; public static int IndexOf(T[] array, T value, int startIndex) => throw null; public static int IndexOf(T[] array, T value, int startIndex, int count) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; public void Initialize() => throw null; void System.Collections.IList.Insert(int index, object value) => throw null; public bool IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } public static int LastIndexOf(System.Array array, object value) => throw null; public static int LastIndexOf(System.Array array, object value, int startIndex) => throw null; public static int LastIndexOf(System.Array array, object value, int startIndex, int count) => throw null; @@ -390,7 +351,7 @@ namespace System public static int LastIndexOf(T[] array, T value, int startIndex) => throw null; public static int LastIndexOf(T[] array, T value, int startIndex, int count) => throw null; public int Length { get => throw null; } - public System.Int64 LongLength { get => throw null; } + public long LongLength { get => throw null; } public static int MaxLength { get => throw null; } public int Rank { get => throw null; } void System.Collections.IList.Remove(object value) => throw null; @@ -403,11 +364,11 @@ namespace System public void SetValue(object value, int index) => throw null; public void SetValue(object value, int index1, int index2) => throw null; public void SetValue(object value, int index1, int index2, int index3) => throw null; - public void SetValue(object value, System.Int64 index) => throw null; - public void SetValue(object value, System.Int64 index1, System.Int64 index2) => throw null; - public void SetValue(object value, System.Int64 index1, System.Int64 index2, System.Int64 index3) => throw null; public void SetValue(object value, params int[] indices) => throw null; - public void SetValue(object value, params System.Int64[] indices) => throw null; + public void SetValue(object value, long index) => throw null; + public void SetValue(object value, long index1, long index2) => throw null; + public void SetValue(object value, long index1, long index2, long index3) => throw null; + public void SetValue(object value, params long[] indices) => throw null; public static void Sort(System.Array array) => throw null; public static void Sort(System.Array keys, System.Array items) => throw null; public static void Sort(System.Array keys, System.Array items, System.Collections.IComparer comparer) => throw null; @@ -417,8 +378,8 @@ namespace System public static void Sort(System.Array array, int index, int length) => throw null; public static void Sort(System.Array array, int index, int length, System.Collections.IComparer comparer) => throw null; public static void Sort(T[] array) => throw null; - public static void Sort(T[] array, System.Comparison comparison) => throw null; public static void Sort(T[] array, System.Collections.Generic.IComparer comparer) => throw null; + public static void Sort(T[] array, System.Comparison comparison) => throw null; public static void Sort(T[] array, int index, int length) => throw null; public static void Sort(T[] array, int index, int length, System.Collections.Generic.IComparer comparer) => throw null; public static void Sort(TKey[] keys, TValue[] items) => throw null; @@ -428,34 +389,27 @@ namespace System public object SyncRoot { get => throw null; } public static bool TrueForAll(T[] array, System.Predicate match) => throw null; } - - public struct ArraySegment : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable + public struct ArraySegment : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public T Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - public static bool operator !=(System.ArraySegment a, System.ArraySegment b) => throw null; - public static bool operator ==(System.ArraySegment a, System.ArraySegment b) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; public T[] Array { get => throw null; } - // Stub generator skipped constructor - public ArraySegment(T[] array) => throw null; - public ArraySegment(T[] array, int offset, int count) => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; bool System.Collections.Generic.ICollection.Contains(T item) => throw null; public void CopyTo(System.ArraySegment destination) => throw null; public void CopyTo(T[] destination) => throw null; public void CopyTo(T[] destination, int destinationIndex) => throw null; public int Count { get => throw null; } + public ArraySegment(T[] array) => throw null; + public ArraySegment(T[] array, int offset, int count) => throw null; public static System.ArraySegment Empty { get => throw null; } + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public T Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } public bool Equals(System.ArraySegment obj) => throw null; public override bool Equals(object obj) => throw null; public System.ArraySegment.Enumerator GetEnumerator() => throw null; @@ -465,18 +419,19 @@ namespace System int System.Collections.Generic.IList.IndexOf(T item) => throw null; void System.Collections.Generic.IList.Insert(int index, T item) => throw null; bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - public T this[int index] { get => throw null; set => throw null; } - T System.Collections.Generic.IList.this[int index] { get => throw null; set => throw null; } + T System.Collections.Generic.IList.this[int index] { get => throw null; set { } } T System.Collections.Generic.IReadOnlyList.this[int index] { get => throw null; } public int Offset { get => throw null; } + public static bool operator ==(System.ArraySegment a, System.ArraySegment b) => throw null; + public static implicit operator System.ArraySegment(T[] array) => throw null; + public static bool operator !=(System.ArraySegment a, System.ArraySegment b) => throw null; bool System.Collections.Generic.ICollection.Remove(T item) => throw null; void System.Collections.Generic.IList.RemoveAt(int index) => throw null; public System.ArraySegment Slice(int index) => throw null; public System.ArraySegment Slice(int index, int count) => throw null; + public T this[int index] { get => throw null; set { } } public T[] ToArray() => throw null; - public static implicit operator System.ArraySegment(T[] array) => throw null; } - public class ArrayTypeMismatchException : System.SystemException { public ArrayTypeMismatchException() => throw null; @@ -484,17 +439,13 @@ namespace System public ArrayTypeMismatchException(string message) => throw null; public ArrayTypeMismatchException(string message, System.Exception innerException) => throw null; } - public class AssemblyLoadEventArgs : System.EventArgs { public AssemblyLoadEventArgs(System.Reflection.Assembly loadedAssembly) => throw null; public System.Reflection.Assembly LoadedAssembly { get => throw null; } } - public delegate void AssemblyLoadEventHandler(object sender, System.AssemblyLoadEventArgs args); - public delegate void AsyncCallback(System.IAsyncResult ar); - public abstract class Attribute { protected Attribute() => throw null; @@ -508,21 +459,21 @@ namespace System public static System.Attribute GetCustomAttribute(System.Reflection.ParameterInfo element, System.Type attributeType) => throw null; public static System.Attribute GetCustomAttribute(System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.Assembly element) => throw null; + public static System.Attribute[] GetCustomAttributes(System.Reflection.Assembly element, bool inherit) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.Assembly element, System.Type attributeType) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.Assembly element, System.Type attributeType, bool inherit) => throw null; - public static System.Attribute[] GetCustomAttributes(System.Reflection.Assembly element, bool inherit) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element) => throw null; + public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, bool inherit) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, System.Type attributeType) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) => throw null; - public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, bool inherit) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element) => throw null; + public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element, bool inherit) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element, System.Type attributeType) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element, System.Type attributeType, bool inherit) => throw null; - public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element, bool inherit) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.ParameterInfo element) => throw null; + public static System.Attribute[] GetCustomAttributes(System.Reflection.ParameterInfo element, bool inherit) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.ParameterInfo element, System.Type attributeType) => throw null; public static System.Attribute[] GetCustomAttributes(System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) => throw null; - public static System.Attribute[] GetCustomAttributes(System.Reflection.ParameterInfo element, bool inherit) => throw null; public override int GetHashCode() => throw null; public virtual bool IsDefaultAttribute() => throw null; public static bool IsDefined(System.Reflection.Assembly element, System.Type attributeType) => throw null; @@ -536,36 +487,33 @@ namespace System public virtual bool Match(object obj) => throw null; public virtual object TypeId { get => throw null; } } - [System.Flags] - public enum AttributeTargets : int + public enum AttributeTargets { - All = 32767, Assembly = 1, - Class = 4, - Constructor = 32, - Delegate = 4096, - Enum = 16, - Event = 512, - Field = 256, - GenericParameter = 16384, - Interface = 1024, - Method = 64, Module = 2, - Parameter = 2048, - Property = 128, - ReturnValue = 8192, + Class = 4, Struct = 8, + Enum = 16, + Constructor = 32, + Method = 64, + Property = 128, + Field = 256, + Event = 512, + Interface = 1024, + Parameter = 2048, + Delegate = 4096, + ReturnValue = 8192, + GenericParameter = 16384, + All = 32767, } - - public class AttributeUsageAttribute : System.Attribute + public sealed class AttributeUsageAttribute : System.Attribute { - public bool AllowMultiple { get => throw null; set => throw null; } + public bool AllowMultiple { get => throw null; set { } } public AttributeUsageAttribute(System.AttributeTargets validOn) => throw null; - public bool Inherited { get => throw null; set => throw null; } + public bool Inherited { get => throw null; set { } } public System.AttributeTargets ValidOn { get => throw null; } } - public class BadImageFormatException : System.SystemException { public BadImageFormatException() => throw null; @@ -580,81 +528,77 @@ namespace System public override string Message { get => throw null; } public override string ToString() => throw null; } - [System.Flags] - public enum Base64FormattingOptions : int + public enum Base64FormattingOptions { - InsertLineBreaks = 1, None = 0, + InsertLineBreaks = 1, } - public static class BitConverter { - public static System.Int64 DoubleToInt64Bits(double value) => throw null; - public static System.UInt64 DoubleToUInt64Bits(double value) => throw null; - public static System.Byte[] GetBytes(System.Half value) => throw null; - public static System.Byte[] GetBytes(bool value) => throw null; - public static System.Byte[] GetBytes(System.Char value) => throw null; - public static System.Byte[] GetBytes(double value) => throw null; - public static System.Byte[] GetBytes(float value) => throw null; - public static System.Byte[] GetBytes(int value) => throw null; - public static System.Byte[] GetBytes(System.Int64 value) => throw null; - public static System.Byte[] GetBytes(System.Int16 value) => throw null; - public static System.Byte[] GetBytes(System.UInt32 value) => throw null; - public static System.Byte[] GetBytes(System.UInt64 value) => throw null; - public static System.Byte[] GetBytes(System.UInt16 value) => throw null; - public static System.Int16 HalfToInt16Bits(System.Half value) => throw null; - public static System.UInt16 HalfToUInt16Bits(System.Half value) => throw null; - public static System.Half Int16BitsToHalf(System.Int16 value) => throw null; + public static long DoubleToInt64Bits(double value) => throw null; + public static ulong DoubleToUInt64Bits(double value) => throw null; + public static byte[] GetBytes(bool value) => throw null; + public static byte[] GetBytes(char value) => throw null; + public static byte[] GetBytes(double value) => throw null; + public static byte[] GetBytes(System.Half value) => throw null; + public static byte[] GetBytes(short value) => throw null; + public static byte[] GetBytes(int value) => throw null; + public static byte[] GetBytes(long value) => throw null; + public static byte[] GetBytes(float value) => throw null; + public static byte[] GetBytes(ushort value) => throw null; + public static byte[] GetBytes(uint value) => throw null; + public static byte[] GetBytes(ulong value) => throw null; + public static short HalfToInt16Bits(System.Half value) => throw null; + public static ushort HalfToUInt16Bits(System.Half value) => throw null; + public static System.Half Int16BitsToHalf(short value) => throw null; public static float Int32BitsToSingle(int value) => throw null; - public static double Int64BitsToDouble(System.Int64 value) => throw null; + public static double Int64BitsToDouble(long value) => throw null; public static bool IsLittleEndian; public static int SingleToInt32Bits(float value) => throw null; - public static System.UInt32 SingleToUInt32Bits(float value) => throw null; - public static bool ToBoolean(System.Byte[] value, int startIndex) => throw null; - public static bool ToBoolean(System.ReadOnlySpan value) => throw null; - public static System.Char ToChar(System.Byte[] value, int startIndex) => throw null; - public static System.Char ToChar(System.ReadOnlySpan value) => throw null; - public static double ToDouble(System.Byte[] value, int startIndex) => throw null; - public static double ToDouble(System.ReadOnlySpan value) => throw null; - public static System.Half ToHalf(System.Byte[] value, int startIndex) => throw null; - public static System.Half ToHalf(System.ReadOnlySpan value) => throw null; - public static System.Int16 ToInt16(System.Byte[] value, int startIndex) => throw null; - public static System.Int16 ToInt16(System.ReadOnlySpan value) => throw null; - public static int ToInt32(System.Byte[] value, int startIndex) => throw null; - public static int ToInt32(System.ReadOnlySpan value) => throw null; - public static System.Int64 ToInt64(System.Byte[] value, int startIndex) => throw null; - public static System.Int64 ToInt64(System.ReadOnlySpan value) => throw null; - public static float ToSingle(System.Byte[] value, int startIndex) => throw null; - public static float ToSingle(System.ReadOnlySpan value) => throw null; - public static string ToString(System.Byte[] value) => throw null; - public static string ToString(System.Byte[] value, int startIndex) => throw null; - public static string ToString(System.Byte[] value, int startIndex, int length) => throw null; - public static System.UInt16 ToUInt16(System.Byte[] value, int startIndex) => throw null; - public static System.UInt16 ToUInt16(System.ReadOnlySpan value) => throw null; - public static System.UInt32 ToUInt32(System.Byte[] value, int startIndex) => throw null; - public static System.UInt32 ToUInt32(System.ReadOnlySpan value) => throw null; - public static System.UInt64 ToUInt64(System.Byte[] value, int startIndex) => throw null; - public static System.UInt64 ToUInt64(System.ReadOnlySpan value) => throw null; - public static bool TryWriteBytes(System.Span destination, System.Half value) => throw null; - public static bool TryWriteBytes(System.Span destination, bool value) => throw null; - public static bool TryWriteBytes(System.Span destination, System.Char value) => throw null; - public static bool TryWriteBytes(System.Span destination, double value) => throw null; - public static bool TryWriteBytes(System.Span destination, float value) => throw null; - public static bool TryWriteBytes(System.Span destination, int value) => throw null; - public static bool TryWriteBytes(System.Span destination, System.Int64 value) => throw null; - public static bool TryWriteBytes(System.Span destination, System.Int16 value) => throw null; - public static bool TryWriteBytes(System.Span destination, System.UInt32 value) => throw null; - public static bool TryWriteBytes(System.Span destination, System.UInt64 value) => throw null; - public static bool TryWriteBytes(System.Span destination, System.UInt16 value) => throw null; - public static System.Half UInt16BitsToHalf(System.UInt16 value) => throw null; - public static float UInt32BitsToSingle(System.UInt32 value) => throw null; - public static double UInt64BitsToDouble(System.UInt64 value) => throw null; + public static uint SingleToUInt32Bits(float value) => throw null; + public static bool ToBoolean(byte[] value, int startIndex) => throw null; + public static bool ToBoolean(System.ReadOnlySpan value) => throw null; + public static char ToChar(byte[] value, int startIndex) => throw null; + public static char ToChar(System.ReadOnlySpan value) => throw null; + public static double ToDouble(byte[] value, int startIndex) => throw null; + public static double ToDouble(System.ReadOnlySpan value) => throw null; + public static System.Half ToHalf(byte[] value, int startIndex) => throw null; + public static System.Half ToHalf(System.ReadOnlySpan value) => throw null; + public static short ToInt16(byte[] value, int startIndex) => throw null; + public static short ToInt16(System.ReadOnlySpan value) => throw null; + public static int ToInt32(byte[] value, int startIndex) => throw null; + public static int ToInt32(System.ReadOnlySpan value) => throw null; + public static long ToInt64(byte[] value, int startIndex) => throw null; + public static long ToInt64(System.ReadOnlySpan value) => throw null; + public static float ToSingle(byte[] value, int startIndex) => throw null; + public static float ToSingle(System.ReadOnlySpan value) => throw null; + public static string ToString(byte[] value) => throw null; + public static string ToString(byte[] value, int startIndex) => throw null; + public static string ToString(byte[] value, int startIndex, int length) => throw null; + public static ushort ToUInt16(byte[] value, int startIndex) => throw null; + public static ushort ToUInt16(System.ReadOnlySpan value) => throw null; + public static uint ToUInt32(byte[] value, int startIndex) => throw null; + public static uint ToUInt32(System.ReadOnlySpan value) => throw null; + public static ulong ToUInt64(byte[] value, int startIndex) => throw null; + public static ulong ToUInt64(System.ReadOnlySpan value) => throw null; + public static bool TryWriteBytes(System.Span destination, bool value) => throw null; + public static bool TryWriteBytes(System.Span destination, char value) => throw null; + public static bool TryWriteBytes(System.Span destination, double value) => throw null; + public static bool TryWriteBytes(System.Span destination, System.Half value) => throw null; + public static bool TryWriteBytes(System.Span destination, short value) => throw null; + public static bool TryWriteBytes(System.Span destination, int value) => throw null; + public static bool TryWriteBytes(System.Span destination, long value) => throw null; + public static bool TryWriteBytes(System.Span destination, float value) => throw null; + public static bool TryWriteBytes(System.Span destination, ushort value) => throw null; + public static bool TryWriteBytes(System.Span destination, uint value) => throw null; + public static bool TryWriteBytes(System.Span destination, ulong value) => throw null; + public static System.Half UInt16BitsToHalf(ushort value) => throw null; + public static float UInt32BitsToSingle(uint value) => throw null; + public static double UInt64BitsToDouble(ulong value) => throw null; } - public struct Boolean : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable { - // Stub generator skipped constructor public int CompareTo(bool value) => throw null; public int CompareTo(object obj) => throw null; public bool Equals(bool obj) => throw null; @@ -662,180 +606,231 @@ namespace System public static string FalseString; public override int GetHashCode() => throw null; public System.TypeCode GetTypeCode() => throw null; - public static bool Parse(System.ReadOnlySpan value) => throw null; + public static bool Parse(System.ReadOnlySpan value) => throw null; public static bool Parse(string value) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; public static string TrueString; - public bool TryFormat(System.Span destination, out int charsWritten) => throw null; - public static bool TryParse(System.ReadOnlySpan value, out bool result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten) => throw null; + public static bool TryParse(System.ReadOnlySpan value, out bool result) => throw null; public static bool TryParse(string value, out bool result) => throw null; } - public static class Buffer { public static void BlockCopy(System.Array src, int srcOffset, System.Array dst, int dstOffset, int count) => throw null; public static int ByteLength(System.Array array) => throw null; - public static System.Byte GetByte(System.Array array, int index) => throw null; - unsafe public static void MemoryCopy(void* source, void* destination, System.Int64 destinationSizeInBytes, System.Int64 sourceBytesToCopy) => throw null; - unsafe public static void MemoryCopy(void* source, void* destination, System.UInt64 destinationSizeInBytes, System.UInt64 sourceBytesToCopy) => throw null; - public static void SetByte(System.Array array, int index, System.Byte value) => throw null; + public static byte GetByte(System.Array array, int index) => throw null; + public static unsafe void MemoryCopy(void* source, void* destination, long destinationSizeInBytes, long sourceBytesToCopy) => throw null; + public static unsafe void MemoryCopy(void* source, void* destination, ulong destinationSizeInBytes, ulong sourceBytesToCopy) => throw null; + public static void SetByte(System.Array array, int index, byte value) => throw null; } - - public struct Byte : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber + namespace Buffers { - static bool System.Numerics.IEqualityOperators.operator !=(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IModulusOperators.operator %(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IBitwiseOperators.operator &(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IMultiplyOperators.operator *(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IUnaryPlusOperators.operator +(System.Byte value) => throw null; - static System.Byte System.Numerics.IAdditionOperators.operator +(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IIncrementOperators.operator ++(System.Byte value) => throw null; - static System.Byte System.Numerics.IUnaryNegationOperators.operator -(System.Byte value) => throw null; - static System.Byte System.Numerics.ISubtractionOperators.operator -(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IDecrementOperators.operator --(System.Byte value) => throw null; - static System.Byte System.Numerics.IDivisionOperators.operator /(System.Byte left, System.Byte right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IShiftOperators.operator <<(System.Byte value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.Byte left, System.Byte right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.Byte left, System.Byte right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.Byte left, System.Byte right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IShiftOperators.operator >>(System.Byte value, int shiftAmount) => throw null; - static System.Byte System.Numerics.IShiftOperators.operator >>>(System.Byte value, int shiftAmount) => throw null; - public static System.Byte Abs(System.Byte value) => throw null; - static System.Byte System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.Byte System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - // Stub generator skipped constructor - public static System.Byte Clamp(System.Byte value, System.Byte min, System.Byte max) => throw null; - public int CompareTo(System.Byte value) => throw null; + public abstract class ArrayPool + { + public static System.Buffers.ArrayPool Create() => throw null; + public static System.Buffers.ArrayPool Create(int maxArrayLength, int maxArraysPerBucket) => throw null; + protected ArrayPool() => throw null; + public abstract T[] Rent(int minimumLength); + public abstract void Return(T[] array, bool clearArray = default(bool)); + public static System.Buffers.ArrayPool Shared { get => throw null; } + } + public interface IMemoryOwner : System.IDisposable + { + System.Memory Memory { get; } + } + public interface IPinnable + { + System.Buffers.MemoryHandle Pin(int elementIndex); + void Unpin(); + } + public struct MemoryHandle : System.IDisposable + { + public unsafe MemoryHandle(void* pointer, System.Runtime.InteropServices.GCHandle handle = default(System.Runtime.InteropServices.GCHandle), System.Buffers.IPinnable pinnable = default(System.Buffers.IPinnable)) => throw null; + public void Dispose() => throw null; + public unsafe void* Pointer { get => throw null; } + } + public abstract class MemoryManager : System.Buffers.IMemoryOwner, System.IDisposable, System.Buffers.IPinnable + { + protected System.Memory CreateMemory(int length) => throw null; + protected System.Memory CreateMemory(int start, int length) => throw null; + protected MemoryManager() => throw null; + protected abstract void Dispose(bool disposing); + void System.IDisposable.Dispose() => throw null; + public abstract System.Span GetSpan(); + public virtual System.Memory Memory { get => throw null; } + public abstract System.Buffers.MemoryHandle Pin(int elementIndex = default(int)); + protected virtual bool TryGetArray(out System.ArraySegment segment) => throw null; + public abstract void Unpin(); + } + public enum OperationStatus + { + Done = 0, + DestinationTooSmall = 1, + NeedMoreData = 2, + InvalidData = 3, + } + public delegate void ReadOnlySpanAction(System.ReadOnlySpan span, TArg arg); + public delegate void SpanAction(System.Span span, TArg arg); + namespace Text + { + public static class Base64 + { + public static System.Buffers.OperationStatus DecodeFromUtf8(System.ReadOnlySpan utf8, System.Span bytes, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = default(bool)) => throw null; + public static System.Buffers.OperationStatus DecodeFromUtf8InPlace(System.Span buffer, out int bytesWritten) => throw null; + public static System.Buffers.OperationStatus EncodeToUtf8(System.ReadOnlySpan bytes, System.Span utf8, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = default(bool)) => throw null; + public static System.Buffers.OperationStatus EncodeToUtf8InPlace(System.Span buffer, int dataLength, out int bytesWritten) => throw null; + public static int GetMaxDecodedFromUtf8Length(int length) => throw null; + public static int GetMaxEncodedToUtf8Length(int length) => throw null; + } + } + } + public struct Byte : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber + { + static byte System.Numerics.INumberBase.Abs(byte value) => throw null; + static byte System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static byte System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + static byte System.Numerics.INumber.Clamp(byte value, byte min, byte max) => throw null; + public int CompareTo(byte value) => throw null; public int CompareTo(object value) => throw null; - public static System.Byte CopySign(System.Byte value, System.Byte sign) => throw null; - static System.Byte System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.Byte System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.Byte System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.Byte, System.Byte) DivRem(System.Byte left, System.Byte right) => throw null; - public bool Equals(System.Byte obj) => throw null; + static byte System.Numerics.INumber.CopySign(byte value, byte sign) => throw null; + static byte System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static byte System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static byte System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; + static (byte Quotient, byte Remainder) System.Numerics.IBinaryInteger.DivRem(byte left, byte right) => throw null; + public bool Equals(byte obj) => throw null; public override bool Equals(object obj) => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; - int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; + int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; public System.TypeCode GetTypeCode() => throw null; - public static bool IsCanonical(System.Byte value) => throw null; - public static bool IsComplexNumber(System.Byte value) => throw null; - public static bool IsEvenInteger(System.Byte value) => throw null; - public static bool IsFinite(System.Byte value) => throw null; - public static bool IsImaginaryNumber(System.Byte value) => throw null; - public static bool IsInfinity(System.Byte value) => throw null; - public static bool IsInteger(System.Byte value) => throw null; - public static bool IsNaN(System.Byte value) => throw null; - public static bool IsNegative(System.Byte value) => throw null; - public static bool IsNegativeInfinity(System.Byte value) => throw null; - public static bool IsNormal(System.Byte value) => throw null; - public static bool IsOddInteger(System.Byte value) => throw null; - public static bool IsPositive(System.Byte value) => throw null; - public static bool IsPositiveInfinity(System.Byte value) => throw null; - public static bool IsPow2(System.Byte value) => throw null; - public static bool IsRealNumber(System.Byte value) => throw null; - public static bool IsSubnormal(System.Byte value) => throw null; - public static bool IsZero(System.Byte value) => throw null; - public static System.Byte LeadingZeroCount(System.Byte value) => throw null; - public static System.Byte Log2(System.Byte value) => throw null; - public static System.Byte Max(System.Byte x, System.Byte y) => throw null; - public static System.Byte MaxMagnitude(System.Byte x, System.Byte y) => throw null; - public static System.Byte MaxMagnitudeNumber(System.Byte x, System.Byte y) => throw null; - public static System.Byte MaxNumber(System.Byte x, System.Byte y) => throw null; - public const System.Byte MaxValue = default; - static System.Byte System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.Byte Min(System.Byte x, System.Byte y) => throw null; - public static System.Byte MinMagnitude(System.Byte x, System.Byte y) => throw null; - public static System.Byte MinMagnitudeNumber(System.Byte x, System.Byte y) => throw null; - public static System.Byte MinNumber(System.Byte x, System.Byte y) => throw null; - public const System.Byte MinValue = default; - static System.Byte System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.Byte System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - static System.Byte System.Numerics.INumberBase.One { get => throw null; } - public static System.Byte Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.Byte Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.Byte Parse(string s) => throw null; - public static System.Byte Parse(string s, System.IFormatProvider provider) => throw null; - public static System.Byte Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.Byte Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.Byte PopCount(System.Byte value) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.Byte RotateLeft(System.Byte value, int rotateAmount) => throw null; - public static System.Byte RotateRight(System.Byte value, int rotateAmount) => throw null; - public static int Sign(System.Byte value) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(byte value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(byte value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(byte value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(byte value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(byte value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(byte value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(byte value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(byte value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(byte value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(byte value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(byte value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(byte value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(byte value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(byte value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(byte value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(byte value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(byte value) => throw null; + static bool System.Numerics.INumberBase.IsZero(byte value) => throw null; + static byte System.Numerics.IBinaryInteger.LeadingZeroCount(byte value) => throw null; + static byte System.Numerics.IBinaryNumber.Log2(byte value) => throw null; + static byte System.Numerics.INumber.Max(byte x, byte y) => throw null; + static byte System.Numerics.INumberBase.MaxMagnitude(byte x, byte y) => throw null; + static byte System.Numerics.INumberBase.MaxMagnitudeNumber(byte x, byte y) => throw null; + static byte System.Numerics.INumber.MaxNumber(byte x, byte y) => throw null; + public static byte MaxValue; + static byte System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static byte System.Numerics.INumber.Min(byte x, byte y) => throw null; + static byte System.Numerics.INumberBase.MinMagnitude(byte x, byte y) => throw null; + static byte System.Numerics.INumberBase.MinMagnitudeNumber(byte x, byte y) => throw null; + static byte System.Numerics.INumber.MinNumber(byte x, byte y) => throw null; + public static byte MinValue; + static byte System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static byte System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static byte System.Numerics.INumberBase.One { get => throw null; } + static byte System.Numerics.IAdditionOperators.operator +(byte left, byte right) => throw null; + static byte System.Numerics.IBitwiseOperators.operator &(byte left, byte right) => throw null; + static byte System.Numerics.IBitwiseOperators.operator |(byte left, byte right) => throw null; + static byte System.Numerics.IAdditionOperators.operator checked +(byte left, byte right) => throw null; + static byte System.Numerics.IDecrementOperators.operator checked --(byte value) => throw null; + static byte System.Numerics.IIncrementOperators.operator checked ++(byte value) => throw null; + static byte System.Numerics.IMultiplyOperators.operator checked *(byte left, byte right) => throw null; + static byte System.Numerics.ISubtractionOperators.operator checked -(byte left, byte right) => throw null; + static byte System.Numerics.IUnaryNegationOperators.operator checked -(byte value) => throw null; + static byte System.Numerics.IDecrementOperators.operator --(byte value) => throw null; + static byte System.Numerics.IDivisionOperators.operator /(byte left, byte right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(byte left, byte right) => throw null; + static byte System.Numerics.IBitwiseOperators.operator ^(byte left, byte right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(byte left, byte right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(byte left, byte right) => throw null; + static byte System.Numerics.IIncrementOperators.operator ++(byte value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(byte left, byte right) => throw null; + static byte System.Numerics.IShiftOperators.operator <<(byte value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(byte left, byte right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(byte left, byte right) => throw null; + static byte System.Numerics.IModulusOperators.operator %(byte left, byte right) => throw null; + static byte System.Numerics.IMultiplyOperators.operator *(byte left, byte right) => throw null; + static byte System.Numerics.IBitwiseOperators.operator ~(byte value) => throw null; + static byte System.Numerics.IShiftOperators.operator >>(byte value, int shiftAmount) => throw null; + static byte System.Numerics.ISubtractionOperators.operator -(byte left, byte right) => throw null; + static byte System.Numerics.IUnaryNegationOperators.operator -(byte value) => throw null; + static byte System.Numerics.IUnaryPlusOperators.operator +(byte value) => throw null; + static byte System.Numerics.IShiftOperators.operator >>>(byte value, int shiftAmount) => throw null; + static byte System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static byte System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static byte Parse(string s) => throw null; + public static byte Parse(string s, System.Globalization.NumberStyles style) => throw null; + static byte System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static byte System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static byte System.Numerics.IBinaryInteger.PopCount(byte value) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static byte System.Numerics.IBinaryInteger.RotateLeft(byte value, int rotateAmount) => throw null; + static byte System.Numerics.IBinaryInteger.RotateRight(byte value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(byte value) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.Byte TrailingZeroCount(System.Byte value) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.Byte result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.Byte result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.Byte result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.Byte value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Byte value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Byte value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Byte result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Byte result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.Byte result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Byte result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Byte result) => throw null; - public static bool TryParse(string s, out System.Byte result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Byte value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Byte value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - static System.Byte System.Numerics.INumberBase.Zero { get => throw null; } - static System.Byte System.Numerics.IBitwiseOperators.operator ^(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IMultiplyOperators.operator checked *(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IAdditionOperators.operator checked +(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IIncrementOperators.operator checked ++(System.Byte value) => throw null; - static System.Byte System.Numerics.IUnaryNegationOperators.operator checked -(System.Byte value) => throw null; - static System.Byte System.Numerics.ISubtractionOperators.operator checked -(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IDecrementOperators.operator checked --(System.Byte value) => throw null; - static System.Byte System.Numerics.IBitwiseOperators.operator |(System.Byte left, System.Byte right) => throw null; - static System.Byte System.Numerics.IBitwiseOperators.operator ~(System.Byte value) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + static byte System.Numerics.IBinaryInteger.TrailingZeroCount(byte value) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out byte result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out byte result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out byte result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(byte value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(byte value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(byte value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out byte result) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out byte result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out byte result) => throw null; + public static bool TryParse(string s, out byte result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out byte result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out byte result) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out byte value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out byte value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static byte System.Numerics.INumberBase.Zero { get => throw null; } } - - public class CLSCompliantAttribute : System.Attribute - { - public CLSCompliantAttribute(bool isCompliant) => throw null; - public bool IsCompliant { get => throw null; } - } - public class CannotUnloadAppDomainException : System.SystemException { public CannotUnloadAppDomainException() => throw null; @@ -843,197 +838,767 @@ namespace System public CannotUnloadAppDomainException(string message) => throw null; public CannotUnloadAppDomainException(string message, System.Exception innerException) => throw null; } - - public struct Char : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber + public struct Char : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IModulusOperators.operator %(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IBitwiseOperators.operator &(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IMultiplyOperators.operator *(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IUnaryPlusOperators.operator +(System.Char value) => throw null; - static System.Char System.Numerics.IAdditionOperators.operator +(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IIncrementOperators.operator ++(System.Char value) => throw null; - static System.Char System.Numerics.IUnaryNegationOperators.operator -(System.Char value) => throw null; - static System.Char System.Numerics.ISubtractionOperators.operator -(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IDecrementOperators.operator --(System.Char value) => throw null; - static System.Char System.Numerics.IDivisionOperators.operator /(System.Char left, System.Char right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IShiftOperators.operator <<(System.Char value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.Char left, System.Char right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.Char left, System.Char right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.Char left, System.Char right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IShiftOperators.operator >>(System.Char value, int shiftAmount) => throw null; - static System.Char System.Numerics.IShiftOperators.operator >>>(System.Char value, int shiftAmount) => throw null; - public static System.Char Abs(System.Char value) => throw null; - static System.Char System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.Char System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - // Stub generator skipped constructor - public int CompareTo(System.Char value) => throw null; + static char System.Numerics.INumberBase.Abs(char value) => throw null; + static char System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static char System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + public int CompareTo(char value) => throw null; public int CompareTo(object value) => throw null; public static string ConvertFromUtf32(int utf32) => throw null; - public static int ConvertToUtf32(System.Char highSurrogate, System.Char lowSurrogate) => throw null; + public static int ConvertToUtf32(char highSurrogate, char lowSurrogate) => throw null; public static int ConvertToUtf32(string s, int index) => throw null; - public bool Equals(System.Char obj) => throw null; + public bool Equals(char obj) => throw null; public override bool Equals(object obj) => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; - public static double GetNumericValue(System.Char c) => throw null; + public static double GetNumericValue(char c) => throw null; public static double GetNumericValue(string s, int index) => throw null; - int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; + int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; public System.TypeCode GetTypeCode() => throw null; - public static System.Globalization.UnicodeCategory GetUnicodeCategory(System.Char c) => throw null; + public static System.Globalization.UnicodeCategory GetUnicodeCategory(char c) => throw null; public static System.Globalization.UnicodeCategory GetUnicodeCategory(string s, int index) => throw null; - public static bool IsAscii(System.Char c) => throw null; - public static bool IsAsciiDigit(System.Char c) => throw null; - public static bool IsAsciiHexDigit(System.Char c) => throw null; - public static bool IsAsciiHexDigitLower(System.Char c) => throw null; - public static bool IsAsciiHexDigitUpper(System.Char c) => throw null; - public static bool IsAsciiLetter(System.Char c) => throw null; - public static bool IsAsciiLetterLower(System.Char c) => throw null; - public static bool IsAsciiLetterOrDigit(System.Char c) => throw null; - public static bool IsAsciiLetterUpper(System.Char c) => throw null; - public static bool IsBetween(System.Char c, System.Char minInclusive, System.Char maxInclusive) => throw null; - public static bool IsCanonical(System.Char value) => throw null; - public static bool IsComplexNumber(System.Char value) => throw null; - public static bool IsControl(System.Char c) => throw null; + public static bool IsAscii(char c) => throw null; + public static bool IsAsciiDigit(char c) => throw null; + public static bool IsAsciiHexDigit(char c) => throw null; + public static bool IsAsciiHexDigitLower(char c) => throw null; + public static bool IsAsciiHexDigitUpper(char c) => throw null; + public static bool IsAsciiLetter(char c) => throw null; + public static bool IsAsciiLetterLower(char c) => throw null; + public static bool IsAsciiLetterOrDigit(char c) => throw null; + public static bool IsAsciiLetterUpper(char c) => throw null; + public static bool IsBetween(char c, char minInclusive, char maxInclusive) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(char value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(char value) => throw null; + public static bool IsControl(char c) => throw null; public static bool IsControl(string s, int index) => throw null; - public static bool IsDigit(System.Char c) => throw null; + public static bool IsDigit(char c) => throw null; public static bool IsDigit(string s, int index) => throw null; - public static bool IsEvenInteger(System.Char value) => throw null; - public static bool IsFinite(System.Char value) => throw null; - public static bool IsHighSurrogate(System.Char c) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(char value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(char value) => throw null; + public static bool IsHighSurrogate(char c) => throw null; public static bool IsHighSurrogate(string s, int index) => throw null; - public static bool IsImaginaryNumber(System.Char value) => throw null; - public static bool IsInfinity(System.Char value) => throw null; - public static bool IsInteger(System.Char value) => throw null; - public static bool IsLetter(System.Char c) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(char value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(char value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(char value) => throw null; + public static bool IsLetter(char c) => throw null; public static bool IsLetter(string s, int index) => throw null; - public static bool IsLetterOrDigit(System.Char c) => throw null; + public static bool IsLetterOrDigit(char c) => throw null; public static bool IsLetterOrDigit(string s, int index) => throw null; - public static bool IsLowSurrogate(System.Char c) => throw null; - public static bool IsLowSurrogate(string s, int index) => throw null; - public static bool IsLower(System.Char c) => throw null; + public static bool IsLower(char c) => throw null; public static bool IsLower(string s, int index) => throw null; - public static bool IsNaN(System.Char value) => throw null; - public static bool IsNegative(System.Char value) => throw null; - public static bool IsNegativeInfinity(System.Char value) => throw null; - public static bool IsNormal(System.Char value) => throw null; - public static bool IsNumber(System.Char c) => throw null; + public static bool IsLowSurrogate(char c) => throw null; + public static bool IsLowSurrogate(string s, int index) => throw null; + static bool System.Numerics.INumberBase.IsNaN(char value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(char value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(char value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(char value) => throw null; + public static bool IsNumber(char c) => throw null; public static bool IsNumber(string s, int index) => throw null; - public static bool IsOddInteger(System.Char value) => throw null; - public static bool IsPositive(System.Char value) => throw null; - public static bool IsPositiveInfinity(System.Char value) => throw null; - public static bool IsPow2(System.Char value) => throw null; - public static bool IsPunctuation(System.Char c) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(char value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(char value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(char value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(char value) => throw null; + public static bool IsPunctuation(char c) => throw null; public static bool IsPunctuation(string s, int index) => throw null; - public static bool IsRealNumber(System.Char value) => throw null; - public static bool IsSeparator(System.Char c) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(char value) => throw null; + public static bool IsSeparator(char c) => throw null; public static bool IsSeparator(string s, int index) => throw null; - public static bool IsSubnormal(System.Char value) => throw null; - public static bool IsSurrogate(System.Char c) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(char value) => throw null; + public static bool IsSurrogate(char c) => throw null; public static bool IsSurrogate(string s, int index) => throw null; - public static bool IsSurrogatePair(System.Char highSurrogate, System.Char lowSurrogate) => throw null; + public static bool IsSurrogatePair(char highSurrogate, char lowSurrogate) => throw null; public static bool IsSurrogatePair(string s, int index) => throw null; - public static bool IsSymbol(System.Char c) => throw null; + public static bool IsSymbol(char c) => throw null; public static bool IsSymbol(string s, int index) => throw null; - public static bool IsUpper(System.Char c) => throw null; + public static bool IsUpper(char c) => throw null; public static bool IsUpper(string s, int index) => throw null; - public static bool IsWhiteSpace(System.Char c) => throw null; + public static bool IsWhiteSpace(char c) => throw null; public static bool IsWhiteSpace(string s, int index) => throw null; - public static bool IsZero(System.Char value) => throw null; - public static System.Char LeadingZeroCount(System.Char value) => throw null; - public static System.Char Log2(System.Char value) => throw null; - public static System.Char MaxMagnitude(System.Char x, System.Char y) => throw null; - public static System.Char MaxMagnitudeNumber(System.Char x, System.Char y) => throw null; - public const System.Char MaxValue = default; - static System.Char System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.Char MinMagnitude(System.Char x, System.Char y) => throw null; - public static System.Char MinMagnitudeNumber(System.Char x, System.Char y) => throw null; - public const System.Char MinValue = default; - static System.Char System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.Char System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - static System.Char System.Numerics.INumberBase.One { get => throw null; } - public static System.Char Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.Char Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.Char Parse(string s) => throw null; - public static System.Char Parse(string s, System.IFormatProvider provider) => throw null; - public static System.Char Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.Char PopCount(System.Char value) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.Char RotateLeft(System.Char value, int rotateAmount) => throw null; - public static System.Char RotateRight(System.Char value, int rotateAmount) => throw null; + static bool System.Numerics.INumberBase.IsZero(char value) => throw null; + static char System.Numerics.IBinaryInteger.LeadingZeroCount(char value) => throw null; + static char System.Numerics.IBinaryNumber.Log2(char value) => throw null; + static char System.Numerics.INumberBase.MaxMagnitude(char x, char y) => throw null; + static char System.Numerics.INumberBase.MaxMagnitudeNumber(char x, char y) => throw null; + public static char MaxValue; + static char System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static char System.Numerics.INumberBase.MinMagnitude(char x, char y) => throw null; + static char System.Numerics.INumberBase.MinMagnitudeNumber(char x, char y) => throw null; + public static char MinValue; + static char System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static char System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static char System.Numerics.INumberBase.One { get => throw null; } + static char System.Numerics.IAdditionOperators.operator +(char left, char right) => throw null; + static char System.Numerics.IBitwiseOperators.operator &(char left, char right) => throw null; + static char System.Numerics.IBitwiseOperators.operator |(char left, char right) => throw null; + static char System.Numerics.IAdditionOperators.operator checked +(char left, char right) => throw null; + static char System.Numerics.IDecrementOperators.operator checked --(char value) => throw null; + static char System.Numerics.IIncrementOperators.operator checked ++(char value) => throw null; + static char System.Numerics.IMultiplyOperators.operator checked *(char left, char right) => throw null; + static char System.Numerics.ISubtractionOperators.operator checked -(char left, char right) => throw null; + static char System.Numerics.IUnaryNegationOperators.operator checked -(char value) => throw null; + static char System.Numerics.IDecrementOperators.operator --(char value) => throw null; + static char System.Numerics.IDivisionOperators.operator /(char left, char right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(char left, char right) => throw null; + static char System.Numerics.IBitwiseOperators.operator ^(char left, char right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(char left, char right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(char left, char right) => throw null; + static char System.Numerics.IIncrementOperators.operator ++(char value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(char left, char right) => throw null; + static char System.Numerics.IShiftOperators.operator <<(char value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(char left, char right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(char left, char right) => throw null; + static char System.Numerics.IModulusOperators.operator %(char left, char right) => throw null; + static char System.Numerics.IMultiplyOperators.operator *(char left, char right) => throw null; + static char System.Numerics.IBitwiseOperators.operator ~(char value) => throw null; + static char System.Numerics.IShiftOperators.operator >>(char value, int shiftAmount) => throw null; + static char System.Numerics.ISubtractionOperators.operator -(char left, char right) => throw null; + static char System.Numerics.IUnaryNegationOperators.operator -(char value) => throw null; + static char System.Numerics.IUnaryPlusOperators.operator +(char value) => throw null; + static char System.Numerics.IShiftOperators.operator >>>(char value, int shiftAmount) => throw null; + public static char Parse(string s) => throw null; + static char System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static char System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + static char System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static char System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static char System.Numerics.IBinaryInteger.PopCount(char value) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static char System.Numerics.IBinaryInteger.RotateLeft(char value, int rotateAmount) => throw null; + static char System.Numerics.IBinaryInteger.RotateRight(char value, int rotateAmount) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - public static System.Char ToLower(System.Char c) => throw null; - public static System.Char ToLower(System.Char c, System.Globalization.CultureInfo culture) => throw null; - public static System.Char ToLowerInvariant(System.Char c) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + public static char ToLower(char c) => throw null; + public static char ToLower(char c, System.Globalization.CultureInfo culture) => throw null; + public static char ToLowerInvariant(char c) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; - public override string ToString() => throw null; - public string ToString(System.IFormatProvider provider) => throw null; - public static string ToString(System.Char c) => throw null; string System.IFormattable.ToString(string format, System.IFormatProvider formatProvider) => throw null; + public override string ToString() => throw null; + public static string ToString(char c) => throw null; + public string ToString(System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.Char ToUpper(System.Char c) => throw null; - public static System.Char ToUpper(System.Char c, System.Globalization.CultureInfo culture) => throw null; - public static System.Char ToUpperInvariant(System.Char c) => throw null; - public static System.Char TrailingZeroCount(System.Char value) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.Char result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.Char result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.Char result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.Char value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Char value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Char value, out TOther result) => throw null; - bool System.ISpanFormattable.TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Char result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Char result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Char result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Char result) => throw null; - public static bool TryParse(string s, out System.Char result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Char value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Char value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - static System.Char System.Numerics.INumberBase.Zero { get => throw null; } - static System.Char System.Numerics.IBitwiseOperators.operator ^(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IMultiplyOperators.operator checked *(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IAdditionOperators.operator checked +(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IIncrementOperators.operator checked ++(System.Char value) => throw null; - static System.Char System.Numerics.IUnaryNegationOperators.operator checked -(System.Char value) => throw null; - static System.Char System.Numerics.ISubtractionOperators.operator checked -(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IDecrementOperators.operator checked --(System.Char value) => throw null; - static System.Char System.Numerics.IBitwiseOperators.operator |(System.Char left, System.Char right) => throw null; - static System.Char System.Numerics.IBitwiseOperators.operator ~(System.Char value) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + public static char ToUpper(char c) => throw null; + public static char ToUpper(char c, System.Globalization.CultureInfo culture) => throw null; + public static char ToUpperInvariant(char c) => throw null; + static char System.Numerics.IBinaryInteger.TrailingZeroCount(char value) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out char result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out char result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out char result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(char value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(char value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(char value, out TOther result) => throw null; + bool System.ISpanFormattable.TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out char result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out char result) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out char result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out char result) => throw null; + public static bool TryParse(string s, out char result) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out char value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out char value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static char System.Numerics.INumberBase.Zero { get => throw null; } } - - public class CharEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.ICloneable, System.IDisposable + public sealed class CharEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable, System.ICloneable { public object Clone() => throw null; - public System.Char Current { get => throw null; } + public char Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; public bool MoveNext() => throw null; public void Reset() => throw null; } - + public sealed class CLSCompliantAttribute : System.Attribute + { + public CLSCompliantAttribute(bool isCompliant) => throw null; + public bool IsCompliant { get => throw null; } + } + namespace CodeDom + { + namespace Compiler + { + public sealed class GeneratedCodeAttribute : System.Attribute + { + public GeneratedCodeAttribute(string tool, string version) => throw null; + public string Tool { get => throw null; } + public string Version { get => throw null; } + } + public class IndentedTextWriter : System.IO.TextWriter + { + public override void Close() => throw null; + public IndentedTextWriter(System.IO.TextWriter writer) => throw null; + public IndentedTextWriter(System.IO.TextWriter writer, string tabString) => throw null; + public static string DefaultTabString; + public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public override System.Text.Encoding Encoding { get => throw null; } + public override void Flush() => throw null; + public override System.Threading.Tasks.Task FlushAsync() => throw null; + public int Indent { get => throw null; set { } } + public System.IO.TextWriter InnerWriter { get => throw null; } + public override string NewLine { get => throw null; set { } } + protected virtual void OutputTabs() => throw null; + protected virtual System.Threading.Tasks.Task OutputTabsAsync() => throw null; + public override void Write(bool value) => throw null; + public override void Write(char value) => throw null; + public override void Write(char[] buffer) => throw null; + public override void Write(char[] buffer, int index, int count) => throw null; + public override void Write(double value) => throw null; + public override void Write(int value) => throw null; + public override void Write(long value) => throw null; + public override void Write(object value) => throw null; + public override void Write(float value) => throw null; + public override void Write(string s) => throw null; + public override void Write(string format, object arg0) => throw null; + public override void Write(string format, object arg0, object arg1) => throw null; + public override void Write(string format, params object[] arg) => throw null; + public override System.Threading.Tasks.Task WriteAsync(char value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteAsync(string value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteLine() => throw null; + public override void WriteLine(bool value) => throw null; + public override void WriteLine(char value) => throw null; + public override void WriteLine(char[] buffer) => throw null; + public override void WriteLine(char[] buffer, int index, int count) => throw null; + public override void WriteLine(double value) => throw null; + public override void WriteLine(int value) => throw null; + public override void WriteLine(long value) => throw null; + public override void WriteLine(object value) => throw null; + public override void WriteLine(float value) => throw null; + public override void WriteLine(string s) => throw null; + public override void WriteLine(string format, object arg0) => throw null; + public override void WriteLine(string format, object arg0, object arg1) => throw null; + public override void WriteLine(string format, params object[] arg) => throw null; + public override void WriteLine(uint value) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync() => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(char value) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void WriteLineNoTabs(string s) => throw null; + public System.Threading.Tasks.Task WriteLineNoTabsAsync(string s) => throw null; + } + } + } + namespace Collections + { + public class ArrayList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ICloneable + { + public static System.Collections.ArrayList Adapter(System.Collections.IList list) => throw null; + public virtual int Add(object value) => throw null; + public virtual void AddRange(System.Collections.ICollection c) => throw null; + public virtual int BinarySearch(int index, int count, object value, System.Collections.IComparer comparer) => throw null; + public virtual int BinarySearch(object value) => throw null; + public virtual int BinarySearch(object value, System.Collections.IComparer comparer) => throw null; + public virtual int Capacity { get => throw null; set { } } + public virtual void Clear() => throw null; + public virtual object Clone() => throw null; + public virtual bool Contains(object item) => throw null; + public virtual void CopyTo(System.Array array) => throw null; + public virtual void CopyTo(System.Array array, int arrayIndex) => throw null; + public virtual void CopyTo(int index, System.Array array, int arrayIndex, int count) => throw null; + public virtual int Count { get => throw null; } + public ArrayList() => throw null; + public ArrayList(System.Collections.ICollection c) => throw null; + public ArrayList(int capacity) => throw null; + public static System.Collections.ArrayList FixedSize(System.Collections.ArrayList list) => throw null; + public static System.Collections.IList FixedSize(System.Collections.IList list) => throw null; + public virtual System.Collections.IEnumerator GetEnumerator() => throw null; + public virtual System.Collections.IEnumerator GetEnumerator(int index, int count) => throw null; + public virtual System.Collections.ArrayList GetRange(int index, int count) => throw null; + public virtual int IndexOf(object value) => throw null; + public virtual int IndexOf(object value, int startIndex) => throw null; + public virtual int IndexOf(object value, int startIndex, int count) => throw null; + public virtual void Insert(int index, object value) => throw null; + public virtual void InsertRange(int index, System.Collections.ICollection c) => throw null; + public virtual bool IsFixedSize { get => throw null; } + public virtual bool IsReadOnly { get => throw null; } + public virtual bool IsSynchronized { get => throw null; } + public virtual int LastIndexOf(object value) => throw null; + public virtual int LastIndexOf(object value, int startIndex) => throw null; + public virtual int LastIndexOf(object value, int startIndex, int count) => throw null; + public static System.Collections.ArrayList ReadOnly(System.Collections.ArrayList list) => throw null; + public static System.Collections.IList ReadOnly(System.Collections.IList list) => throw null; + public virtual void Remove(object obj) => throw null; + public virtual void RemoveAt(int index) => throw null; + public virtual void RemoveRange(int index, int count) => throw null; + public static System.Collections.ArrayList Repeat(object value, int count) => throw null; + public virtual void Reverse() => throw null; + public virtual void Reverse(int index, int count) => throw null; + public virtual void SetRange(int index, System.Collections.ICollection c) => throw null; + public virtual void Sort() => throw null; + public virtual void Sort(System.Collections.IComparer comparer) => throw null; + public virtual void Sort(int index, int count, System.Collections.IComparer comparer) => throw null; + public static System.Collections.ArrayList Synchronized(System.Collections.ArrayList list) => throw null; + public static System.Collections.IList Synchronized(System.Collections.IList list) => throw null; + public virtual object SyncRoot { get => throw null; } + public virtual object this[int index] { get => throw null; set { } } + public virtual object[] ToArray() => throw null; + public virtual System.Array ToArray(System.Type type) => throw null; + public virtual void TrimToSize() => throw null; + } + public sealed class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable + { + public int Compare(object a, object b) => throw null; + public Comparer(System.Globalization.CultureInfo culture) => throw null; + public static System.Collections.Comparer Default; + public static System.Collections.Comparer DefaultInvariant; + public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public struct DictionaryEntry + { + public DictionaryEntry(object key, object value) => throw null; + public void Deconstruct(out object key, out object value) => throw null; + public object Key { get => throw null; set { } } + public object Value { get => throw null; set { } } + } + namespace Generic + { + public interface IAsyncEnumerable + { + System.Collections.Generic.IAsyncEnumerator GetAsyncEnumerator(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface IAsyncEnumerator : System.IAsyncDisposable + { + T Current { get; } + System.Threading.Tasks.ValueTask MoveNextAsync(); + } + public interface ICollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + void Add(T item); + void Clear(); + bool Contains(T item); + void CopyTo(T[] array, int arrayIndex); + int Count { get; } + bool IsReadOnly { get; } + bool Remove(T item); + } + public interface IComparer + { + int Compare(T x, T y); + } + public interface IDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + void Add(TKey key, TValue value); + bool ContainsKey(TKey key); + System.Collections.Generic.ICollection Keys { get; } + bool Remove(TKey key); + TValue this[TKey key] { get; set; } + bool TryGetValue(TKey key, out TValue value); + System.Collections.Generic.ICollection Values { get; } + } + public interface IEnumerable : System.Collections.IEnumerable + { + System.Collections.Generic.IEnumerator GetEnumerator(); + } + public interface IEnumerator : System.Collections.IEnumerator, System.IDisposable + { + T Current { get; } + } + public interface IEqualityComparer + { + bool Equals(T x, T y); + int GetHashCode(T obj); + } + public interface IList : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + int IndexOf(T item); + void Insert(int index, T item); + void RemoveAt(int index); + T this[int index] { get; set; } + } + public interface IReadOnlyCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + int Count { get; } + } + public interface IReadOnlyDictionary : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection> + { + bool ContainsKey(TKey key); + System.Collections.Generic.IEnumerable Keys { get; } + TValue this[TKey key] { get; } + bool TryGetValue(TKey key, out TValue value); + System.Collections.Generic.IEnumerable Values { get; } + } + public interface IReadOnlyList : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection + { + T this[int index] { get; } + } + public interface IReadOnlySet : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection + { + bool Contains(T item); + bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other); + bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other); + bool IsSubsetOf(System.Collections.Generic.IEnumerable other); + bool IsSupersetOf(System.Collections.Generic.IEnumerable other); + bool Overlaps(System.Collections.Generic.IEnumerable other); + bool SetEquals(System.Collections.Generic.IEnumerable other); + } + public interface ISet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + bool Add(T item); + void ExceptWith(System.Collections.Generic.IEnumerable other); + void IntersectWith(System.Collections.Generic.IEnumerable other); + bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other); + bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other); + bool IsSubsetOf(System.Collections.Generic.IEnumerable other); + bool IsSupersetOf(System.Collections.Generic.IEnumerable other); + bool Overlaps(System.Collections.Generic.IEnumerable other); + bool SetEquals(System.Collections.Generic.IEnumerable other); + void SymmetricExceptWith(System.Collections.Generic.IEnumerable other); + void UnionWith(System.Collections.Generic.IEnumerable other); + } + public class KeyNotFoundException : System.SystemException + { + public KeyNotFoundException() => throw null; + protected KeyNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public KeyNotFoundException(string message) => throw null; + public KeyNotFoundException(string message, System.Exception innerException) => throw null; + } + public static class KeyValuePair + { + public static System.Collections.Generic.KeyValuePair Create(TKey key, TValue value) => throw null; + } + public struct KeyValuePair + { + public KeyValuePair(TKey key, TValue value) => throw null; + public void Deconstruct(out TKey key, out TValue value) => throw null; + public TKey Key { get => throw null; } + public override string ToString() => throw null; + public TValue Value { get => throw null; } + } + } + public class Hashtable : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary, System.ICloneable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + { + public virtual void Add(object key, object value) => throw null; + public virtual void Clear() => throw null; + public virtual object Clone() => throw null; + protected System.Collections.IComparer comparer { get => throw null; set { } } + public virtual bool Contains(object key) => throw null; + public virtual bool ContainsKey(object key) => throw null; + public virtual bool ContainsValue(object value) => throw null; + public virtual void CopyTo(System.Array array, int arrayIndex) => throw null; + public virtual int Count { get => throw null; } + public Hashtable() => throw null; + public Hashtable(System.Collections.IDictionary d) => throw null; + public Hashtable(System.Collections.IDictionary d, System.Collections.IEqualityComparer equalityComparer) => throw null; + public Hashtable(System.Collections.IDictionary d, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer) => throw null; + public Hashtable(System.Collections.IDictionary d, float loadFactor) => throw null; + public Hashtable(System.Collections.IDictionary d, float loadFactor, System.Collections.IEqualityComparer equalityComparer) => throw null; + public Hashtable(System.Collections.IDictionary d, float loadFactor, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer) => throw null; + public Hashtable(System.Collections.IEqualityComparer equalityComparer) => throw null; + public Hashtable(System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer) => throw null; + public Hashtable(int capacity) => throw null; + public Hashtable(int capacity, System.Collections.IEqualityComparer equalityComparer) => throw null; + public Hashtable(int capacity, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer) => throw null; + public Hashtable(int capacity, float loadFactor) => throw null; + public Hashtable(int capacity, float loadFactor, System.Collections.IEqualityComparer equalityComparer) => throw null; + public Hashtable(int capacity, float loadFactor, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer) => throw null; + protected Hashtable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected System.Collections.IEqualityComparer EqualityComparer { get => throw null; } + public virtual System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + protected virtual int GetHash(object key) => throw null; + public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected System.Collections.IHashCodeProvider hcp { get => throw null; set { } } + public virtual bool IsFixedSize { get => throw null; } + public virtual bool IsReadOnly { get => throw null; } + public virtual bool IsSynchronized { get => throw null; } + protected virtual bool KeyEquals(object item, object key) => throw null; + public virtual System.Collections.ICollection Keys { get => throw null; } + public virtual void OnDeserialization(object sender) => throw null; + public virtual void Remove(object key) => throw null; + public static System.Collections.Hashtable Synchronized(System.Collections.Hashtable table) => throw null; + public virtual object SyncRoot { get => throw null; } + public virtual object this[object key] { get => throw null; set { } } + public virtual System.Collections.ICollection Values { get => throw null; } + } + public interface ICollection : System.Collections.IEnumerable + { + void CopyTo(System.Array array, int index); + int Count { get; } + bool IsSynchronized { get; } + object SyncRoot { get; } + } + public interface IComparer + { + int Compare(object x, object y); + } + public interface IDictionary : System.Collections.ICollection, System.Collections.IEnumerable + { + void Add(object key, object value); + void Clear(); + bool Contains(object key); + System.Collections.IDictionaryEnumerator GetEnumerator(); + bool IsFixedSize { get; } + bool IsReadOnly { get; } + System.Collections.ICollection Keys { get; } + void Remove(object key); + object this[object key] { get; set; } + System.Collections.ICollection Values { get; } + } + public interface IDictionaryEnumerator : System.Collections.IEnumerator + { + System.Collections.DictionaryEntry Entry { get; } + object Key { get; } + object Value { get; } + } + public interface IEnumerable + { + System.Collections.IEnumerator GetEnumerator(); + } + public interface IEnumerator + { + object Current { get; } + bool MoveNext(); + void Reset(); + } + public interface IEqualityComparer + { + bool Equals(object x, object y); + int GetHashCode(object obj); + } + public interface IHashCodeProvider + { + int GetHashCode(object obj); + } + public interface IList : System.Collections.ICollection, System.Collections.IEnumerable + { + int Add(object value); + void Clear(); + bool Contains(object value); + int IndexOf(object value); + void Insert(int index, object value); + bool IsFixedSize { get; } + bool IsReadOnly { get; } + void Remove(object value); + void RemoveAt(int index); + object this[int index] { get; set; } + } + public interface IStructuralComparable + { + int CompareTo(object other, System.Collections.IComparer comparer); + } + public interface IStructuralEquatable + { + bool Equals(object other, System.Collections.IEqualityComparer comparer); + int GetHashCode(System.Collections.IEqualityComparer comparer); + } + namespace ObjectModel + { + public class Collection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList + { + public void Add(T item) => throw null; + int System.Collections.IList.Add(object value) => throw null; + public void Clear() => throw null; + protected virtual void ClearItems() => throw null; + public bool Contains(T item) => throw null; + bool System.Collections.IList.Contains(object value) => throw null; + public void CopyTo(T[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public Collection() => throw null; + public Collection(System.Collections.Generic.IList list) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public int IndexOf(T item) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; + public void Insert(int index, T item) => throw null; + void System.Collections.IList.Insert(int index, object value) => throw null; + protected virtual void InsertItem(int index, T item) => throw null; + bool System.Collections.IList.IsFixedSize { get => throw null; } + bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } + bool System.Collections.IList.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } + protected System.Collections.Generic.IList Items { get => throw null; } + public bool Remove(T item) => throw null; + void System.Collections.IList.Remove(object value) => throw null; + public void RemoveAt(int index) => throw null; + protected virtual void RemoveItem(int index) => throw null; + protected virtual void SetItem(int index, T item) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; set { } } + } + public class ReadOnlyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList + { + void System.Collections.Generic.ICollection.Add(T value) => throw null; + int System.Collections.IList.Add(object value) => throw null; + void System.Collections.Generic.ICollection.Clear() => throw null; + void System.Collections.IList.Clear() => throw null; + public bool Contains(T value) => throw null; + bool System.Collections.IList.Contains(object value) => throw null; + public void CopyTo(T[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public ReadOnlyCollection(System.Collections.Generic.IList list) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public int IndexOf(T value) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; + void System.Collections.Generic.IList.Insert(int index, T value) => throw null; + void System.Collections.IList.Insert(int index, object value) => throw null; + bool System.Collections.IList.IsFixedSize { get => throw null; } + bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } + bool System.Collections.IList.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + T System.Collections.Generic.IList.this[int index] { get => throw null; set { } } + object System.Collections.IList.this[int index] { get => throw null; set { } } + protected System.Collections.Generic.IList Items { get => throw null; } + bool System.Collections.Generic.ICollection.Remove(T value) => throw null; + void System.Collections.IList.Remove(object value) => throw null; + void System.Collections.Generic.IList.RemoveAt(int index) => throw null; + void System.Collections.IList.RemoveAt(int index) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; } + } + public class ReadOnlyDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary + { + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; + void System.Collections.Generic.IDictionary.Add(TKey key, TValue value) => throw null; + void System.Collections.IDictionary.Add(object key, object value) => throw null; + void System.Collections.Generic.ICollection>.Clear() => throw null; + void System.Collections.IDictionary.Clear() => throw null; + bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair item) => throw null; + bool System.Collections.IDictionary.Contains(object key) => throw null; + public bool ContainsKey(TKey key) => throw null; + void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public ReadOnlyDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; + protected System.Collections.Generic.IDictionary Dictionary { get => throw null; } + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + bool System.Collections.IDictionary.IsFixedSize { get => throw null; } + bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } + bool System.Collections.IDictionary.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + TValue System.Collections.Generic.IDictionary.this[TKey key] { get => throw null; set { } } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } + public sealed class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + { + void System.Collections.Generic.ICollection.Add(TKey item) => throw null; + void System.Collections.Generic.ICollection.Clear() => throw null; + bool System.Collections.Generic.ICollection.Contains(TKey item) => throw null; + public void CopyTo(TKey[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + bool System.Collections.Generic.ICollection.Remove(TKey item) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + } + public System.Collections.ObjectModel.ReadOnlyDictionary.KeyCollection Keys { get => throw null; } + System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } + System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } + System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; + bool System.Collections.Generic.IDictionary.Remove(TKey key) => throw null; + void System.Collections.IDictionary.Remove(object key) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + public TValue this[TKey key] { get => throw null; } + public bool TryGetValue(TKey key, out TValue value) => throw null; + public sealed class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + { + void System.Collections.Generic.ICollection.Add(TValue item) => throw null; + void System.Collections.Generic.ICollection.Clear() => throw null; + bool System.Collections.Generic.ICollection.Contains(TValue item) => throw null; + public void CopyTo(TValue[] array, int arrayIndex) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + bool System.Collections.Generic.ICollection.Remove(TValue item) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + } + System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } + System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } + System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } + public System.Collections.ObjectModel.ReadOnlyDictionary.ValueCollection Values { get => throw null; } + } + } + } public delegate int Comparison(T x, T y); - + namespace ComponentModel + { + public class DefaultValueAttribute : System.Attribute + { + public DefaultValueAttribute(bool value) => throw null; + public DefaultValueAttribute(byte value) => throw null; + public DefaultValueAttribute(char value) => throw null; + public DefaultValueAttribute(double value) => throw null; + public DefaultValueAttribute(short value) => throw null; + public DefaultValueAttribute(int value) => throw null; + public DefaultValueAttribute(long value) => throw null; + public DefaultValueAttribute(object value) => throw null; + public DefaultValueAttribute(sbyte value) => throw null; + public DefaultValueAttribute(float value) => throw null; + public DefaultValueAttribute(string value) => throw null; + public DefaultValueAttribute(System.Type type, string value) => throw null; + public DefaultValueAttribute(ushort value) => throw null; + public DefaultValueAttribute(uint value) => throw null; + public DefaultValueAttribute(ulong value) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + protected void SetValue(object value) => throw null; + public virtual object Value { get => throw null; } + } + public sealed class EditorBrowsableAttribute : System.Attribute + { + public EditorBrowsableAttribute() => throw null; + public EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState state) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public System.ComponentModel.EditorBrowsableState State { get => throw null; } + } + public enum EditorBrowsableState + { + Always = 0, + Never = 1, + Advanced = 2, + } + } + namespace Configuration + { + namespace Assemblies + { + public enum AssemblyHashAlgorithm + { + None = 0, + MD5 = 32771, + SHA1 = 32772, + SHA256 = 32780, + SHA384 = 32781, + SHA512 = 32782, + } + public enum AssemblyVersionCompatibility + { + SameMachine = 1, + SameProcess = 2, + SameDomain = 3, + } + } + } public abstract class ContextBoundObject : System.MarshalByRefObject { protected ContextBoundObject() => throw null; } - public class ContextMarshalException : System.SystemException { public ContextMarshalException() => throw null; @@ -1041,12 +1606,10 @@ namespace System public ContextMarshalException(string message) => throw null; public ContextMarshalException(string message, System.Exception inner) => throw null; } - public class ContextStaticAttribute : System.Attribute { public ContextStaticAttribute() => throw null; } - public static class Convert { public static object ChangeType(object value, System.Type conversionType) => throw null; @@ -1054,363 +1617,330 @@ namespace System public static object ChangeType(object value, System.TypeCode typeCode) => throw null; public static object ChangeType(object value, System.TypeCode typeCode, System.IFormatProvider provider) => throw null; public static object DBNull; - public static System.Byte[] FromBase64CharArray(System.Char[] inArray, int offset, int length) => throw null; - public static System.Byte[] FromBase64String(string s) => throw null; - public static System.Byte[] FromHexString(System.ReadOnlySpan chars) => throw null; - public static System.Byte[] FromHexString(string s) => throw null; + public static byte[] FromBase64CharArray(char[] inArray, int offset, int length) => throw null; + public static byte[] FromBase64String(string s) => throw null; + public static byte[] FromHexString(System.ReadOnlySpan chars) => throw null; + public static byte[] FromHexString(string s) => throw null; public static System.TypeCode GetTypeCode(object value) => throw null; public static bool IsDBNull(object value) => throw null; - public static int ToBase64CharArray(System.Byte[] inArray, int offsetIn, int length, System.Char[] outArray, int offsetOut) => throw null; - public static int ToBase64CharArray(System.Byte[] inArray, int offsetIn, int length, System.Char[] outArray, int offsetOut, System.Base64FormattingOptions options) => throw null; - public static string ToBase64String(System.Byte[] inArray) => throw null; - public static string ToBase64String(System.Byte[] inArray, System.Base64FormattingOptions options) => throw null; - public static string ToBase64String(System.Byte[] inArray, int offset, int length) => throw null; - public static string ToBase64String(System.Byte[] inArray, int offset, int length, System.Base64FormattingOptions options) => throw null; - public static string ToBase64String(System.ReadOnlySpan bytes, System.Base64FormattingOptions options = default(System.Base64FormattingOptions)) => throw null; - public static bool ToBoolean(System.DateTime value) => throw null; + public static int ToBase64CharArray(byte[] inArray, int offsetIn, int length, char[] outArray, int offsetOut) => throw null; + public static int ToBase64CharArray(byte[] inArray, int offsetIn, int length, char[] outArray, int offsetOut, System.Base64FormattingOptions options) => throw null; + public static string ToBase64String(byte[] inArray) => throw null; + public static string ToBase64String(byte[] inArray, System.Base64FormattingOptions options) => throw null; + public static string ToBase64String(byte[] inArray, int offset, int length) => throw null; + public static string ToBase64String(byte[] inArray, int offset, int length, System.Base64FormattingOptions options) => throw null; + public static string ToBase64String(System.ReadOnlySpan bytes, System.Base64FormattingOptions options = default(System.Base64FormattingOptions)) => throw null; public static bool ToBoolean(bool value) => throw null; - public static bool ToBoolean(System.Byte value) => throw null; - public static bool ToBoolean(System.Char value) => throw null; - public static bool ToBoolean(System.Decimal value) => throw null; + public static bool ToBoolean(byte value) => throw null; + public static bool ToBoolean(char value) => throw null; + public static bool ToBoolean(System.DateTime value) => throw null; + public static bool ToBoolean(decimal value) => throw null; public static bool ToBoolean(double value) => throw null; - public static bool ToBoolean(float value) => throw null; + public static bool ToBoolean(short value) => throw null; public static bool ToBoolean(int value) => throw null; - public static bool ToBoolean(System.Int64 value) => throw null; + public static bool ToBoolean(long value) => throw null; public static bool ToBoolean(object value) => throw null; public static bool ToBoolean(object value, System.IFormatProvider provider) => throw null; - public static bool ToBoolean(System.SByte value) => throw null; - public static bool ToBoolean(System.Int16 value) => throw null; + public static bool ToBoolean(sbyte value) => throw null; + public static bool ToBoolean(float value) => throw null; public static bool ToBoolean(string value) => throw null; public static bool ToBoolean(string value, System.IFormatProvider provider) => throw null; - public static bool ToBoolean(System.UInt32 value) => throw null; - public static bool ToBoolean(System.UInt64 value) => throw null; - public static bool ToBoolean(System.UInt16 value) => throw null; - public static System.Byte ToByte(System.DateTime value) => throw null; - public static System.Byte ToByte(bool value) => throw null; - public static System.Byte ToByte(System.Byte value) => throw null; - public static System.Byte ToByte(System.Char value) => throw null; - public static System.Byte ToByte(System.Decimal value) => throw null; - public static System.Byte ToByte(double value) => throw null; - public static System.Byte ToByte(float value) => throw null; - public static System.Byte ToByte(int value) => throw null; - public static System.Byte ToByte(System.Int64 value) => throw null; - public static System.Byte ToByte(object value) => throw null; - public static System.Byte ToByte(object value, System.IFormatProvider provider) => throw null; - public static System.Byte ToByte(System.SByte value) => throw null; - public static System.Byte ToByte(System.Int16 value) => throw null; - public static System.Byte ToByte(string value) => throw null; - public static System.Byte ToByte(string value, System.IFormatProvider provider) => throw null; - public static System.Byte ToByte(string value, int fromBase) => throw null; - public static System.Byte ToByte(System.UInt32 value) => throw null; - public static System.Byte ToByte(System.UInt64 value) => throw null; - public static System.Byte ToByte(System.UInt16 value) => throw null; - public static System.Char ToChar(System.DateTime value) => throw null; - public static System.Char ToChar(bool value) => throw null; - public static System.Char ToChar(System.Byte value) => throw null; - public static System.Char ToChar(System.Char value) => throw null; - public static System.Char ToChar(System.Decimal value) => throw null; - public static System.Char ToChar(double value) => throw null; - public static System.Char ToChar(float value) => throw null; - public static System.Char ToChar(int value) => throw null; - public static System.Char ToChar(System.Int64 value) => throw null; - public static System.Char ToChar(object value) => throw null; - public static System.Char ToChar(object value, System.IFormatProvider provider) => throw null; - public static System.Char ToChar(System.SByte value) => throw null; - public static System.Char ToChar(System.Int16 value) => throw null; - public static System.Char ToChar(string value) => throw null; - public static System.Char ToChar(string value, System.IFormatProvider provider) => throw null; - public static System.Char ToChar(System.UInt32 value) => throw null; - public static System.Char ToChar(System.UInt64 value) => throw null; - public static System.Char ToChar(System.UInt16 value) => throw null; - public static System.DateTime ToDateTime(System.DateTime value) => throw null; + public static bool ToBoolean(ushort value) => throw null; + public static bool ToBoolean(uint value) => throw null; + public static bool ToBoolean(ulong value) => throw null; + public static byte ToByte(bool value) => throw null; + public static byte ToByte(byte value) => throw null; + public static byte ToByte(char value) => throw null; + public static byte ToByte(System.DateTime value) => throw null; + public static byte ToByte(decimal value) => throw null; + public static byte ToByte(double value) => throw null; + public static byte ToByte(short value) => throw null; + public static byte ToByte(int value) => throw null; + public static byte ToByte(long value) => throw null; + public static byte ToByte(object value) => throw null; + public static byte ToByte(object value, System.IFormatProvider provider) => throw null; + public static byte ToByte(sbyte value) => throw null; + public static byte ToByte(float value) => throw null; + public static byte ToByte(string value) => throw null; + public static byte ToByte(string value, System.IFormatProvider provider) => throw null; + public static byte ToByte(string value, int fromBase) => throw null; + public static byte ToByte(ushort value) => throw null; + public static byte ToByte(uint value) => throw null; + public static byte ToByte(ulong value) => throw null; + public static char ToChar(bool value) => throw null; + public static char ToChar(byte value) => throw null; + public static char ToChar(char value) => throw null; + public static char ToChar(System.DateTime value) => throw null; + public static char ToChar(decimal value) => throw null; + public static char ToChar(double value) => throw null; + public static char ToChar(short value) => throw null; + public static char ToChar(int value) => throw null; + public static char ToChar(long value) => throw null; + public static char ToChar(object value) => throw null; + public static char ToChar(object value, System.IFormatProvider provider) => throw null; + public static char ToChar(sbyte value) => throw null; + public static char ToChar(float value) => throw null; + public static char ToChar(string value) => throw null; + public static char ToChar(string value, System.IFormatProvider provider) => throw null; + public static char ToChar(ushort value) => throw null; + public static char ToChar(uint value) => throw null; + public static char ToChar(ulong value) => throw null; public static System.DateTime ToDateTime(bool value) => throw null; - public static System.DateTime ToDateTime(System.Byte value) => throw null; - public static System.DateTime ToDateTime(System.Char value) => throw null; - public static System.DateTime ToDateTime(System.Decimal value) => throw null; + public static System.DateTime ToDateTime(byte value) => throw null; + public static System.DateTime ToDateTime(char value) => throw null; + public static System.DateTime ToDateTime(System.DateTime value) => throw null; + public static System.DateTime ToDateTime(decimal value) => throw null; public static System.DateTime ToDateTime(double value) => throw null; - public static System.DateTime ToDateTime(float value) => throw null; + public static System.DateTime ToDateTime(short value) => throw null; public static System.DateTime ToDateTime(int value) => throw null; - public static System.DateTime ToDateTime(System.Int64 value) => throw null; + public static System.DateTime ToDateTime(long value) => throw null; public static System.DateTime ToDateTime(object value) => throw null; public static System.DateTime ToDateTime(object value, System.IFormatProvider provider) => throw null; - public static System.DateTime ToDateTime(System.SByte value) => throw null; - public static System.DateTime ToDateTime(System.Int16 value) => throw null; + public static System.DateTime ToDateTime(sbyte value) => throw null; + public static System.DateTime ToDateTime(float value) => throw null; public static System.DateTime ToDateTime(string value) => throw null; public static System.DateTime ToDateTime(string value, System.IFormatProvider provider) => throw null; - public static System.DateTime ToDateTime(System.UInt32 value) => throw null; - public static System.DateTime ToDateTime(System.UInt64 value) => throw null; - public static System.DateTime ToDateTime(System.UInt16 value) => throw null; - public static System.Decimal ToDecimal(System.DateTime value) => throw null; - public static System.Decimal ToDecimal(bool value) => throw null; - public static System.Decimal ToDecimal(System.Byte value) => throw null; - public static System.Decimal ToDecimal(System.Char value) => throw null; - public static System.Decimal ToDecimal(System.Decimal value) => throw null; - public static System.Decimal ToDecimal(double value) => throw null; - public static System.Decimal ToDecimal(float value) => throw null; - public static System.Decimal ToDecimal(int value) => throw null; - public static System.Decimal ToDecimal(System.Int64 value) => throw null; - public static System.Decimal ToDecimal(object value) => throw null; - public static System.Decimal ToDecimal(object value, System.IFormatProvider provider) => throw null; - public static System.Decimal ToDecimal(System.SByte value) => throw null; - public static System.Decimal ToDecimal(System.Int16 value) => throw null; - public static System.Decimal ToDecimal(string value) => throw null; - public static System.Decimal ToDecimal(string value, System.IFormatProvider provider) => throw null; - public static System.Decimal ToDecimal(System.UInt32 value) => throw null; - public static System.Decimal ToDecimal(System.UInt64 value) => throw null; - public static System.Decimal ToDecimal(System.UInt16 value) => throw null; - public static double ToDouble(System.DateTime value) => throw null; + public static System.DateTime ToDateTime(ushort value) => throw null; + public static System.DateTime ToDateTime(uint value) => throw null; + public static System.DateTime ToDateTime(ulong value) => throw null; + public static decimal ToDecimal(bool value) => throw null; + public static decimal ToDecimal(byte value) => throw null; + public static decimal ToDecimal(char value) => throw null; + public static decimal ToDecimal(System.DateTime value) => throw null; + public static decimal ToDecimal(decimal value) => throw null; + public static decimal ToDecimal(double value) => throw null; + public static decimal ToDecimal(short value) => throw null; + public static decimal ToDecimal(int value) => throw null; + public static decimal ToDecimal(long value) => throw null; + public static decimal ToDecimal(object value) => throw null; + public static decimal ToDecimal(object value, System.IFormatProvider provider) => throw null; + public static decimal ToDecimal(sbyte value) => throw null; + public static decimal ToDecimal(float value) => throw null; + public static decimal ToDecimal(string value) => throw null; + public static decimal ToDecimal(string value, System.IFormatProvider provider) => throw null; + public static decimal ToDecimal(ushort value) => throw null; + public static decimal ToDecimal(uint value) => throw null; + public static decimal ToDecimal(ulong value) => throw null; public static double ToDouble(bool value) => throw null; - public static double ToDouble(System.Byte value) => throw null; - public static double ToDouble(System.Char value) => throw null; - public static double ToDouble(System.Decimal value) => throw null; + public static double ToDouble(byte value) => throw null; + public static double ToDouble(char value) => throw null; + public static double ToDouble(System.DateTime value) => throw null; + public static double ToDouble(decimal value) => throw null; public static double ToDouble(double value) => throw null; - public static double ToDouble(float value) => throw null; + public static double ToDouble(short value) => throw null; public static double ToDouble(int value) => throw null; - public static double ToDouble(System.Int64 value) => throw null; + public static double ToDouble(long value) => throw null; public static double ToDouble(object value) => throw null; public static double ToDouble(object value, System.IFormatProvider provider) => throw null; - public static double ToDouble(System.SByte value) => throw null; - public static double ToDouble(System.Int16 value) => throw null; + public static double ToDouble(sbyte value) => throw null; + public static double ToDouble(float value) => throw null; public static double ToDouble(string value) => throw null; public static double ToDouble(string value, System.IFormatProvider provider) => throw null; - public static double ToDouble(System.UInt32 value) => throw null; - public static double ToDouble(System.UInt64 value) => throw null; - public static double ToDouble(System.UInt16 value) => throw null; - public static string ToHexString(System.Byte[] inArray) => throw null; - public static string ToHexString(System.Byte[] inArray, int offset, int length) => throw null; - public static string ToHexString(System.ReadOnlySpan bytes) => throw null; - public static System.Int16 ToInt16(System.DateTime value) => throw null; - public static System.Int16 ToInt16(bool value) => throw null; - public static System.Int16 ToInt16(System.Byte value) => throw null; - public static System.Int16 ToInt16(System.Char value) => throw null; - public static System.Int16 ToInt16(System.Decimal value) => throw null; - public static System.Int16 ToInt16(double value) => throw null; - public static System.Int16 ToInt16(float value) => throw null; - public static System.Int16 ToInt16(int value) => throw null; - public static System.Int16 ToInt16(System.Int64 value) => throw null; - public static System.Int16 ToInt16(object value) => throw null; - public static System.Int16 ToInt16(object value, System.IFormatProvider provider) => throw null; - public static System.Int16 ToInt16(System.SByte value) => throw null; - public static System.Int16 ToInt16(System.Int16 value) => throw null; - public static System.Int16 ToInt16(string value) => throw null; - public static System.Int16 ToInt16(string value, System.IFormatProvider provider) => throw null; - public static System.Int16 ToInt16(string value, int fromBase) => throw null; - public static System.Int16 ToInt16(System.UInt32 value) => throw null; - public static System.Int16 ToInt16(System.UInt64 value) => throw null; - public static System.Int16 ToInt16(System.UInt16 value) => throw null; - public static int ToInt32(System.DateTime value) => throw null; + public static double ToDouble(ushort value) => throw null; + public static double ToDouble(uint value) => throw null; + public static double ToDouble(ulong value) => throw null; + public static string ToHexString(byte[] inArray) => throw null; + public static string ToHexString(byte[] inArray, int offset, int length) => throw null; + public static string ToHexString(System.ReadOnlySpan bytes) => throw null; + public static short ToInt16(bool value) => throw null; + public static short ToInt16(byte value) => throw null; + public static short ToInt16(char value) => throw null; + public static short ToInt16(System.DateTime value) => throw null; + public static short ToInt16(decimal value) => throw null; + public static short ToInt16(double value) => throw null; + public static short ToInt16(short value) => throw null; + public static short ToInt16(int value) => throw null; + public static short ToInt16(long value) => throw null; + public static short ToInt16(object value) => throw null; + public static short ToInt16(object value, System.IFormatProvider provider) => throw null; + public static short ToInt16(sbyte value) => throw null; + public static short ToInt16(float value) => throw null; + public static short ToInt16(string value) => throw null; + public static short ToInt16(string value, System.IFormatProvider provider) => throw null; + public static short ToInt16(string value, int fromBase) => throw null; + public static short ToInt16(ushort value) => throw null; + public static short ToInt16(uint value) => throw null; + public static short ToInt16(ulong value) => throw null; public static int ToInt32(bool value) => throw null; - public static int ToInt32(System.Byte value) => throw null; - public static int ToInt32(System.Char value) => throw null; - public static int ToInt32(System.Decimal value) => throw null; + public static int ToInt32(byte value) => throw null; + public static int ToInt32(char value) => throw null; + public static int ToInt32(System.DateTime value) => throw null; + public static int ToInt32(decimal value) => throw null; public static int ToInt32(double value) => throw null; - public static int ToInt32(float value) => throw null; + public static int ToInt32(short value) => throw null; public static int ToInt32(int value) => throw null; - public static int ToInt32(System.Int64 value) => throw null; + public static int ToInt32(long value) => throw null; public static int ToInt32(object value) => throw null; public static int ToInt32(object value, System.IFormatProvider provider) => throw null; - public static int ToInt32(System.SByte value) => throw null; - public static int ToInt32(System.Int16 value) => throw null; + public static int ToInt32(sbyte value) => throw null; + public static int ToInt32(float value) => throw null; public static int ToInt32(string value) => throw null; public static int ToInt32(string value, System.IFormatProvider provider) => throw null; public static int ToInt32(string value, int fromBase) => throw null; - public static int ToInt32(System.UInt32 value) => throw null; - public static int ToInt32(System.UInt64 value) => throw null; - public static int ToInt32(System.UInt16 value) => throw null; - public static System.Int64 ToInt64(System.DateTime value) => throw null; - public static System.Int64 ToInt64(bool value) => throw null; - public static System.Int64 ToInt64(System.Byte value) => throw null; - public static System.Int64 ToInt64(System.Char value) => throw null; - public static System.Int64 ToInt64(System.Decimal value) => throw null; - public static System.Int64 ToInt64(double value) => throw null; - public static System.Int64 ToInt64(float value) => throw null; - public static System.Int64 ToInt64(int value) => throw null; - public static System.Int64 ToInt64(System.Int64 value) => throw null; - public static System.Int64 ToInt64(object value) => throw null; - public static System.Int64 ToInt64(object value, System.IFormatProvider provider) => throw null; - public static System.Int64 ToInt64(System.SByte value) => throw null; - public static System.Int64 ToInt64(System.Int16 value) => throw null; - public static System.Int64 ToInt64(string value) => throw null; - public static System.Int64 ToInt64(string value, System.IFormatProvider provider) => throw null; - public static System.Int64 ToInt64(string value, int fromBase) => throw null; - public static System.Int64 ToInt64(System.UInt32 value) => throw null; - public static System.Int64 ToInt64(System.UInt64 value) => throw null; - public static System.Int64 ToInt64(System.UInt16 value) => throw null; - public static System.SByte ToSByte(System.DateTime value) => throw null; - public static System.SByte ToSByte(bool value) => throw null; - public static System.SByte ToSByte(System.Byte value) => throw null; - public static System.SByte ToSByte(System.Char value) => throw null; - public static System.SByte ToSByte(System.Decimal value) => throw null; - public static System.SByte ToSByte(double value) => throw null; - public static System.SByte ToSByte(float value) => throw null; - public static System.SByte ToSByte(int value) => throw null; - public static System.SByte ToSByte(System.Int64 value) => throw null; - public static System.SByte ToSByte(object value) => throw null; - public static System.SByte ToSByte(object value, System.IFormatProvider provider) => throw null; - public static System.SByte ToSByte(System.SByte value) => throw null; - public static System.SByte ToSByte(System.Int16 value) => throw null; - public static System.SByte ToSByte(string value) => throw null; - public static System.SByte ToSByte(string value, System.IFormatProvider provider) => throw null; - public static System.SByte ToSByte(string value, int fromBase) => throw null; - public static System.SByte ToSByte(System.UInt32 value) => throw null; - public static System.SByte ToSByte(System.UInt64 value) => throw null; - public static System.SByte ToSByte(System.UInt16 value) => throw null; - public static float ToSingle(System.DateTime value) => throw null; + public static int ToInt32(ushort value) => throw null; + public static int ToInt32(uint value) => throw null; + public static int ToInt32(ulong value) => throw null; + public static long ToInt64(bool value) => throw null; + public static long ToInt64(byte value) => throw null; + public static long ToInt64(char value) => throw null; + public static long ToInt64(System.DateTime value) => throw null; + public static long ToInt64(decimal value) => throw null; + public static long ToInt64(double value) => throw null; + public static long ToInt64(short value) => throw null; + public static long ToInt64(int value) => throw null; + public static long ToInt64(long value) => throw null; + public static long ToInt64(object value) => throw null; + public static long ToInt64(object value, System.IFormatProvider provider) => throw null; + public static long ToInt64(sbyte value) => throw null; + public static long ToInt64(float value) => throw null; + public static long ToInt64(string value) => throw null; + public static long ToInt64(string value, System.IFormatProvider provider) => throw null; + public static long ToInt64(string value, int fromBase) => throw null; + public static long ToInt64(ushort value) => throw null; + public static long ToInt64(uint value) => throw null; + public static long ToInt64(ulong value) => throw null; + public static sbyte ToSByte(bool value) => throw null; + public static sbyte ToSByte(byte value) => throw null; + public static sbyte ToSByte(char value) => throw null; + public static sbyte ToSByte(System.DateTime value) => throw null; + public static sbyte ToSByte(decimal value) => throw null; + public static sbyte ToSByte(double value) => throw null; + public static sbyte ToSByte(short value) => throw null; + public static sbyte ToSByte(int value) => throw null; + public static sbyte ToSByte(long value) => throw null; + public static sbyte ToSByte(object value) => throw null; + public static sbyte ToSByte(object value, System.IFormatProvider provider) => throw null; + public static sbyte ToSByte(sbyte value) => throw null; + public static sbyte ToSByte(float value) => throw null; + public static sbyte ToSByte(string value) => throw null; + public static sbyte ToSByte(string value, System.IFormatProvider provider) => throw null; + public static sbyte ToSByte(string value, int fromBase) => throw null; + public static sbyte ToSByte(ushort value) => throw null; + public static sbyte ToSByte(uint value) => throw null; + public static sbyte ToSByte(ulong value) => throw null; public static float ToSingle(bool value) => throw null; - public static float ToSingle(System.Byte value) => throw null; - public static float ToSingle(System.Char value) => throw null; - public static float ToSingle(System.Decimal value) => throw null; + public static float ToSingle(byte value) => throw null; + public static float ToSingle(char value) => throw null; + public static float ToSingle(System.DateTime value) => throw null; + public static float ToSingle(decimal value) => throw null; public static float ToSingle(double value) => throw null; - public static float ToSingle(float value) => throw null; + public static float ToSingle(short value) => throw null; public static float ToSingle(int value) => throw null; - public static float ToSingle(System.Int64 value) => throw null; + public static float ToSingle(long value) => throw null; public static float ToSingle(object value) => throw null; public static float ToSingle(object value, System.IFormatProvider provider) => throw null; - public static float ToSingle(System.SByte value) => throw null; - public static float ToSingle(System.Int16 value) => throw null; + public static float ToSingle(sbyte value) => throw null; + public static float ToSingle(float value) => throw null; public static float ToSingle(string value) => throw null; public static float ToSingle(string value, System.IFormatProvider provider) => throw null; - public static float ToSingle(System.UInt32 value) => throw null; - public static float ToSingle(System.UInt64 value) => throw null; - public static float ToSingle(System.UInt16 value) => throw null; - public static string ToString(System.DateTime value) => throw null; - public static string ToString(System.DateTime value, System.IFormatProvider provider) => throw null; + public static float ToSingle(ushort value) => throw null; + public static float ToSingle(uint value) => throw null; + public static float ToSingle(ulong value) => throw null; public static string ToString(bool value) => throw null; public static string ToString(bool value, System.IFormatProvider provider) => throw null; - public static string ToString(System.Byte value) => throw null; - public static string ToString(System.Byte value, System.IFormatProvider provider) => throw null; - public static string ToString(System.Byte value, int toBase) => throw null; - public static string ToString(System.Char value) => throw null; - public static string ToString(System.Char value, System.IFormatProvider provider) => throw null; - public static string ToString(System.Decimal value) => throw null; - public static string ToString(System.Decimal value, System.IFormatProvider provider) => throw null; + public static string ToString(byte value) => throw null; + public static string ToString(byte value, System.IFormatProvider provider) => throw null; + public static string ToString(byte value, int toBase) => throw null; + public static string ToString(char value) => throw null; + public static string ToString(char value, System.IFormatProvider provider) => throw null; + public static string ToString(System.DateTime value) => throw null; + public static string ToString(System.DateTime value, System.IFormatProvider provider) => throw null; + public static string ToString(decimal value) => throw null; + public static string ToString(decimal value, System.IFormatProvider provider) => throw null; public static string ToString(double value) => throw null; public static string ToString(double value, System.IFormatProvider provider) => throw null; - public static string ToString(float value) => throw null; - public static string ToString(float value, System.IFormatProvider provider) => throw null; + public static string ToString(short value) => throw null; + public static string ToString(short value, System.IFormatProvider provider) => throw null; + public static string ToString(short value, int toBase) => throw null; public static string ToString(int value) => throw null; public static string ToString(int value, System.IFormatProvider provider) => throw null; public static string ToString(int value, int toBase) => throw null; - public static string ToString(System.Int64 value) => throw null; - public static string ToString(System.Int64 value, System.IFormatProvider provider) => throw null; - public static string ToString(System.Int64 value, int toBase) => throw null; + public static string ToString(long value) => throw null; + public static string ToString(long value, System.IFormatProvider provider) => throw null; + public static string ToString(long value, int toBase) => throw null; public static string ToString(object value) => throw null; public static string ToString(object value, System.IFormatProvider provider) => throw null; - public static string ToString(System.SByte value) => throw null; - public static string ToString(System.SByte value, System.IFormatProvider provider) => throw null; - public static string ToString(System.Int16 value) => throw null; - public static string ToString(System.Int16 value, System.IFormatProvider provider) => throw null; - public static string ToString(System.Int16 value, int toBase) => throw null; + public static string ToString(sbyte value) => throw null; + public static string ToString(sbyte value, System.IFormatProvider provider) => throw null; + public static string ToString(float value) => throw null; + public static string ToString(float value, System.IFormatProvider provider) => throw null; public static string ToString(string value) => throw null; public static string ToString(string value, System.IFormatProvider provider) => throw null; - public static string ToString(System.UInt32 value) => throw null; - public static string ToString(System.UInt32 value, System.IFormatProvider provider) => throw null; - public static string ToString(System.UInt64 value) => throw null; - public static string ToString(System.UInt64 value, System.IFormatProvider provider) => throw null; - public static string ToString(System.UInt16 value) => throw null; - public static string ToString(System.UInt16 value, System.IFormatProvider provider) => throw null; - public static System.UInt16 ToUInt16(System.DateTime value) => throw null; - public static System.UInt16 ToUInt16(bool value) => throw null; - public static System.UInt16 ToUInt16(System.Byte value) => throw null; - public static System.UInt16 ToUInt16(System.Char value) => throw null; - public static System.UInt16 ToUInt16(System.Decimal value) => throw null; - public static System.UInt16 ToUInt16(double value) => throw null; - public static System.UInt16 ToUInt16(float value) => throw null; - public static System.UInt16 ToUInt16(int value) => throw null; - public static System.UInt16 ToUInt16(System.Int64 value) => throw null; - public static System.UInt16 ToUInt16(object value) => throw null; - public static System.UInt16 ToUInt16(object value, System.IFormatProvider provider) => throw null; - public static System.UInt16 ToUInt16(System.SByte value) => throw null; - public static System.UInt16 ToUInt16(System.Int16 value) => throw null; - public static System.UInt16 ToUInt16(string value) => throw null; - public static System.UInt16 ToUInt16(string value, System.IFormatProvider provider) => throw null; - public static System.UInt16 ToUInt16(string value, int fromBase) => throw null; - public static System.UInt16 ToUInt16(System.UInt32 value) => throw null; - public static System.UInt16 ToUInt16(System.UInt64 value) => throw null; - public static System.UInt16 ToUInt16(System.UInt16 value) => throw null; - public static System.UInt32 ToUInt32(System.DateTime value) => throw null; - public static System.UInt32 ToUInt32(bool value) => throw null; - public static System.UInt32 ToUInt32(System.Byte value) => throw null; - public static System.UInt32 ToUInt32(System.Char value) => throw null; - public static System.UInt32 ToUInt32(System.Decimal value) => throw null; - public static System.UInt32 ToUInt32(double value) => throw null; - public static System.UInt32 ToUInt32(float value) => throw null; - public static System.UInt32 ToUInt32(int value) => throw null; - public static System.UInt32 ToUInt32(System.Int64 value) => throw null; - public static System.UInt32 ToUInt32(object value) => throw null; - public static System.UInt32 ToUInt32(object value, System.IFormatProvider provider) => throw null; - public static System.UInt32 ToUInt32(System.SByte value) => throw null; - public static System.UInt32 ToUInt32(System.Int16 value) => throw null; - public static System.UInt32 ToUInt32(string value) => throw null; - public static System.UInt32 ToUInt32(string value, System.IFormatProvider provider) => throw null; - public static System.UInt32 ToUInt32(string value, int fromBase) => throw null; - public static System.UInt32 ToUInt32(System.UInt32 value) => throw null; - public static System.UInt32 ToUInt32(System.UInt64 value) => throw null; - public static System.UInt32 ToUInt32(System.UInt16 value) => throw null; - public static System.UInt64 ToUInt64(System.DateTime value) => throw null; - public static System.UInt64 ToUInt64(bool value) => throw null; - public static System.UInt64 ToUInt64(System.Byte value) => throw null; - public static System.UInt64 ToUInt64(System.Char value) => throw null; - public static System.UInt64 ToUInt64(System.Decimal value) => throw null; - public static System.UInt64 ToUInt64(double value) => throw null; - public static System.UInt64 ToUInt64(float value) => throw null; - public static System.UInt64 ToUInt64(int value) => throw null; - public static System.UInt64 ToUInt64(System.Int64 value) => throw null; - public static System.UInt64 ToUInt64(object value) => throw null; - public static System.UInt64 ToUInt64(object value, System.IFormatProvider provider) => throw null; - public static System.UInt64 ToUInt64(System.SByte value) => throw null; - public static System.UInt64 ToUInt64(System.Int16 value) => throw null; - public static System.UInt64 ToUInt64(string value) => throw null; - public static System.UInt64 ToUInt64(string value, System.IFormatProvider provider) => throw null; - public static System.UInt64 ToUInt64(string value, int fromBase) => throw null; - public static System.UInt64 ToUInt64(System.UInt32 value) => throw null; - public static System.UInt64 ToUInt64(System.UInt64 value) => throw null; - public static System.UInt64 ToUInt64(System.UInt16 value) => throw null; - public static bool TryFromBase64Chars(System.ReadOnlySpan chars, System.Span bytes, out int bytesWritten) => throw null; - public static bool TryFromBase64String(string s, System.Span bytes, out int bytesWritten) => throw null; - public static bool TryToBase64Chars(System.ReadOnlySpan bytes, System.Span chars, out int charsWritten, System.Base64FormattingOptions options = default(System.Base64FormattingOptions)) => throw null; + public static string ToString(ushort value) => throw null; + public static string ToString(ushort value, System.IFormatProvider provider) => throw null; + public static string ToString(uint value) => throw null; + public static string ToString(uint value, System.IFormatProvider provider) => throw null; + public static string ToString(ulong value) => throw null; + public static string ToString(ulong value, System.IFormatProvider provider) => throw null; + public static ushort ToUInt16(bool value) => throw null; + public static ushort ToUInt16(byte value) => throw null; + public static ushort ToUInt16(char value) => throw null; + public static ushort ToUInt16(System.DateTime value) => throw null; + public static ushort ToUInt16(decimal value) => throw null; + public static ushort ToUInt16(double value) => throw null; + public static ushort ToUInt16(short value) => throw null; + public static ushort ToUInt16(int value) => throw null; + public static ushort ToUInt16(long value) => throw null; + public static ushort ToUInt16(object value) => throw null; + public static ushort ToUInt16(object value, System.IFormatProvider provider) => throw null; + public static ushort ToUInt16(sbyte value) => throw null; + public static ushort ToUInt16(float value) => throw null; + public static ushort ToUInt16(string value) => throw null; + public static ushort ToUInt16(string value, System.IFormatProvider provider) => throw null; + public static ushort ToUInt16(string value, int fromBase) => throw null; + public static ushort ToUInt16(ushort value) => throw null; + public static ushort ToUInt16(uint value) => throw null; + public static ushort ToUInt16(ulong value) => throw null; + public static uint ToUInt32(bool value) => throw null; + public static uint ToUInt32(byte value) => throw null; + public static uint ToUInt32(char value) => throw null; + public static uint ToUInt32(System.DateTime value) => throw null; + public static uint ToUInt32(decimal value) => throw null; + public static uint ToUInt32(double value) => throw null; + public static uint ToUInt32(short value) => throw null; + public static uint ToUInt32(int value) => throw null; + public static uint ToUInt32(long value) => throw null; + public static uint ToUInt32(object value) => throw null; + public static uint ToUInt32(object value, System.IFormatProvider provider) => throw null; + public static uint ToUInt32(sbyte value) => throw null; + public static uint ToUInt32(float value) => throw null; + public static uint ToUInt32(string value) => throw null; + public static uint ToUInt32(string value, System.IFormatProvider provider) => throw null; + public static uint ToUInt32(string value, int fromBase) => throw null; + public static uint ToUInt32(ushort value) => throw null; + public static uint ToUInt32(uint value) => throw null; + public static uint ToUInt32(ulong value) => throw null; + public static ulong ToUInt64(bool value) => throw null; + public static ulong ToUInt64(byte value) => throw null; + public static ulong ToUInt64(char value) => throw null; + public static ulong ToUInt64(System.DateTime value) => throw null; + public static ulong ToUInt64(decimal value) => throw null; + public static ulong ToUInt64(double value) => throw null; + public static ulong ToUInt64(short value) => throw null; + public static ulong ToUInt64(int value) => throw null; + public static ulong ToUInt64(long value) => throw null; + public static ulong ToUInt64(object value) => throw null; + public static ulong ToUInt64(object value, System.IFormatProvider provider) => throw null; + public static ulong ToUInt64(sbyte value) => throw null; + public static ulong ToUInt64(float value) => throw null; + public static ulong ToUInt64(string value) => throw null; + public static ulong ToUInt64(string value, System.IFormatProvider provider) => throw null; + public static ulong ToUInt64(string value, int fromBase) => throw null; + public static ulong ToUInt64(ushort value) => throw null; + public static ulong ToUInt64(uint value) => throw null; + public static ulong ToUInt64(ulong value) => throw null; + public static bool TryFromBase64Chars(System.ReadOnlySpan chars, System.Span bytes, out int bytesWritten) => throw null; + public static bool TryFromBase64String(string s, System.Span bytes, out int bytesWritten) => throw null; + public static bool TryToBase64Chars(System.ReadOnlySpan bytes, System.Span chars, out int charsWritten, System.Base64FormattingOptions options = default(System.Base64FormattingOptions)) => throw null; } - public delegate TOutput Converter(TInput input); - - public class DBNull : System.IConvertible, System.Runtime.Serialization.ISerializable - { - public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.TypeCode GetTypeCode() => throw null; - bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; - System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; - double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; - int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; - float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; - public override string ToString() => throw null; - public string ToString(System.IFormatProvider provider) => throw null; - object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.DBNull Value; - } - public struct DateOnly : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable { - public static bool operator !=(System.DateOnly left, System.DateOnly right) => throw null; - public static bool operator <(System.DateOnly left, System.DateOnly right) => throw null; - public static bool operator <=(System.DateOnly left, System.DateOnly right) => throw null; - public static bool operator ==(System.DateOnly left, System.DateOnly right) => throw null; - public static bool operator >(System.DateOnly left, System.DateOnly right) => throw null; - public static bool operator >=(System.DateOnly left, System.DateOnly right) => throw null; public System.DateOnly AddDays(int value) => throw null; public System.DateOnly AddMonths(int value) => throw null; public System.DateOnly AddYears(int value) => throw null; public int CompareTo(System.DateOnly value) => throw null; public int CompareTo(object value) => throw null; - // Stub generator skipped constructor public DateOnly(int year, int month, int day) => throw null; public DateOnly(int year, int month, int day, System.Globalization.Calendar calendar) => throw null; public int Day { get => throw null; } @@ -1425,18 +1955,24 @@ namespace System public static System.DateOnly MaxValue { get => throw null; } public static System.DateOnly MinValue { get => throw null; } public int Month { get => throw null; } - public static System.DateOnly Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.DateOnly Parse(System.ReadOnlySpan s, System.IFormatProvider provider = default(System.IFormatProvider), System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; + public static bool operator ==(System.DateOnly left, System.DateOnly right) => throw null; + public static bool operator >(System.DateOnly left, System.DateOnly right) => throw null; + public static bool operator >=(System.DateOnly left, System.DateOnly right) => throw null; + public static bool operator !=(System.DateOnly left, System.DateOnly right) => throw null; + public static bool operator <(System.DateOnly left, System.DateOnly right) => throw null; + public static bool operator <=(System.DateOnly left, System.DateOnly right) => throw null; + static System.DateOnly System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static System.DateOnly Parse(System.ReadOnlySpan s, System.IFormatProvider provider = default(System.IFormatProvider), System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; public static System.DateOnly Parse(string s) => throw null; - public static System.DateOnly Parse(string s, System.IFormatProvider provider) => throw null; + static System.DateOnly System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; public static System.DateOnly Parse(string s, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; - public static System.DateOnly ParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider = default(System.IFormatProvider), System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; - public static System.DateOnly ParseExact(System.ReadOnlySpan s, string[] formats) => throw null; - public static System.DateOnly ParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; - public static System.DateOnly ParseExact(string s, string[] formats) => throw null; - public static System.DateOnly ParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; + public static System.DateOnly ParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider = default(System.IFormatProvider), System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; + public static System.DateOnly ParseExact(System.ReadOnlySpan s, string[] formats) => throw null; + public static System.DateOnly ParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; public static System.DateOnly ParseExact(string s, string format) => throw null; public static System.DateOnly ParseExact(string s, string format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; + public static System.DateOnly ParseExact(string s, string[] formats) => throw null; + public static System.DateOnly ParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; public System.DateTime ToDateTime(System.TimeOnly time) => throw null; public System.DateTime ToDateTime(System.TimeOnly time, System.DateTimeKind kind) => throw null; public string ToLongDateString() => throw null; @@ -1445,35 +1981,25 @@ namespace System public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.DateOnly result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.DateOnly result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.DateOnly result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out System.DateOnly result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.DateOnly result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; public static bool TryParse(string s, out System.DateOnly result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, out System.DateOnly result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, out System.DateOnly result) => throw null; - public static bool TryParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; - public static bool TryParseExact(string s, string[] formats, out System.DateOnly result) => throw null; - public static bool TryParseExact(string s, string format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.DateOnly result) => throw null; + public static bool TryParse(string s, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, out System.DateOnly result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, out System.DateOnly result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; public static bool TryParseExact(string s, string format, out System.DateOnly result) => throw null; + public static bool TryParseExact(string s, string format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; + public static bool TryParseExact(string s, string[] formats, out System.DateOnly result) => throw null; + public static bool TryParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; public int Year { get => throw null; } } - public struct DateTime : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Runtime.Serialization.ISerializable { - public static bool operator !=(System.DateTime d1, System.DateTime d2) => throw null; - public static System.DateTime operator +(System.DateTime d, System.TimeSpan t) => throw null; - public static System.TimeSpan operator -(System.DateTime d1, System.DateTime d2) => throw null; - public static System.DateTime operator -(System.DateTime d, System.TimeSpan t) => throw null; - public static bool operator <(System.DateTime t1, System.DateTime t2) => throw null; - public static bool operator <=(System.DateTime t1, System.DateTime t2) => throw null; - public static bool operator ==(System.DateTime d1, System.DateTime d2) => throw null; - public static bool operator >(System.DateTime t1, System.DateTime t2) => throw null; - public static bool operator >=(System.DateTime t1, System.DateTime t2) => throw null; public System.DateTime Add(System.TimeSpan value) => throw null; public System.DateTime AddDays(double value) => throw null; public System.DateTime AddHours(double value) => throw null; @@ -1482,28 +2008,27 @@ namespace System public System.DateTime AddMinutes(double value) => throw null; public System.DateTime AddMonths(int months) => throw null; public System.DateTime AddSeconds(double value) => throw null; - public System.DateTime AddTicks(System.Int64 value) => throw null; + public System.DateTime AddTicks(long value) => throw null; public System.DateTime AddYears(int value) => throw null; public static int Compare(System.DateTime t1, System.DateTime t2) => throw null; public int CompareTo(System.DateTime value) => throw null; public int CompareTo(object value) => throw null; - public System.DateTime Date { get => throw null; } - // Stub generator skipped constructor public DateTime(int year, int month, int day) => throw null; public DateTime(int year, int month, int day, System.Globalization.Calendar calendar) => throw null; public DateTime(int year, int month, int day, int hour, int minute, int second) => throw null; - public DateTime(int year, int month, int day, int hour, int minute, int second, System.Globalization.Calendar calendar) => throw null; public DateTime(int year, int month, int day, int hour, int minute, int second, System.DateTimeKind kind) => throw null; + public DateTime(int year, int month, int day, int hour, int minute, int second, System.Globalization.Calendar calendar) => throw null; public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond) => throw null; + public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, System.DateTimeKind kind) => throw null; public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar) => throw null; public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar, System.DateTimeKind kind) => throw null; - public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, System.DateTimeKind kind) => throw null; public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond) => throw null; + public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.DateTimeKind kind) => throw null; public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.Globalization.Calendar calendar) => throw null; public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.Globalization.Calendar calendar, System.DateTimeKind kind) => throw null; - public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.DateTimeKind kind) => throw null; - public DateTime(System.Int64 ticks) => throw null; - public DateTime(System.Int64 ticks, System.DateTimeKind kind) => throw null; + public DateTime(long ticks) => throw null; + public DateTime(long ticks, System.DateTimeKind kind) => throw null; + public System.DateTime Date { get => throw null; } public int Day { get => throw null; } public System.DayOfWeek DayOfWeek { get => throw null; } public int DayOfYear { get => throw null; } @@ -1511,14 +2036,14 @@ namespace System public bool Equals(System.DateTime value) => throw null; public static bool Equals(System.DateTime t1, System.DateTime t2) => throw null; public override bool Equals(object value) => throw null; - public static System.DateTime FromBinary(System.Int64 dateData) => throw null; - public static System.DateTime FromFileTime(System.Int64 fileTime) => throw null; - public static System.DateTime FromFileTimeUtc(System.Int64 fileTime) => throw null; + public static System.DateTime FromBinary(long dateData) => throw null; + public static System.DateTime FromFileTime(long fileTime) => throw null; + public static System.DateTime FromFileTimeUtc(long fileTime) => throw null; public static System.DateTime FromOADate(double d) => throw null; public string[] GetDateTimeFormats() => throw null; + public string[] GetDateTimeFormats(char format) => throw null; + public string[] GetDateTimeFormats(char format, System.IFormatProvider provider) => throw null; public string[] GetDateTimeFormats(System.IFormatProvider provider) => throw null; - public string[] GetDateTimeFormats(System.Char format) => throw null; - public string[] GetDateTimeFormats(System.Char format, System.IFormatProvider provider) => throw null; public override int GetHashCode() => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public System.TypeCode GetTypeCode() => throw null; @@ -1529,44 +2054,54 @@ namespace System public static System.DateTime MaxValue; public int Microsecond { get => throw null; } public int Millisecond { get => throw null; } - public static System.DateTime MinValue; public int Minute { get => throw null; } + public static System.DateTime MinValue; public int Month { get => throw null; } public int Nanosecond { get => throw null; } public static System.DateTime Now { get => throw null; } - public static System.DateTime Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.DateTime Parse(System.ReadOnlySpan s, System.IFormatProvider provider = default(System.IFormatProvider), System.Globalization.DateTimeStyles styles = default(System.Globalization.DateTimeStyles)) => throw null; + public static System.DateTime operator +(System.DateTime d, System.TimeSpan t) => throw null; + public static bool operator ==(System.DateTime d1, System.DateTime d2) => throw null; + public static bool operator >(System.DateTime t1, System.DateTime t2) => throw null; + public static bool operator >=(System.DateTime t1, System.DateTime t2) => throw null; + public static bool operator !=(System.DateTime d1, System.DateTime d2) => throw null; + public static bool operator <(System.DateTime t1, System.DateTime t2) => throw null; + public static bool operator <=(System.DateTime t1, System.DateTime t2) => throw null; + public static System.TimeSpan operator -(System.DateTime d1, System.DateTime d2) => throw null; + public static System.DateTime operator -(System.DateTime d, System.TimeSpan t) => throw null; + static System.DateTime System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static System.DateTime Parse(System.ReadOnlySpan s, System.IFormatProvider provider = default(System.IFormatProvider), System.Globalization.DateTimeStyles styles = default(System.Globalization.DateTimeStyles)) => throw null; public static System.DateTime Parse(string s) => throw null; - public static System.DateTime Parse(string s, System.IFormatProvider provider) => throw null; + static System.DateTime System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; public static System.DateTime Parse(string s, System.IFormatProvider provider, System.Globalization.DateTimeStyles styles) => throw null; - public static System.DateTime ParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; - public static System.DateTime ParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; - public static System.DateTime ParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style) => throw null; + public static System.DateTime ParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; + public static System.DateTime ParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; public static System.DateTime ParseExact(string s, string format, System.IFormatProvider provider) => throw null; public static System.DateTime ParseExact(string s, string format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style) => throw null; + public static System.DateTime ParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style) => throw null; public int Second { get => throw null; } public static System.DateTime SpecifyKind(System.DateTime value, System.DateTimeKind kind) => throw null; public System.TimeSpan Subtract(System.DateTime value) => throw null; public System.DateTime Subtract(System.TimeSpan value) => throw null; - public System.Int64 Ticks { get => throw null; } + public long Ticks { get => throw null; } public System.TimeSpan TimeOfDay { get => throw null; } - public System.Int64 ToBinary() => throw null; + public long ToBinary() => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + public static System.DateTime Today { get => throw null; } + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - public System.Int64 ToFileTime() => throw null; - public System.Int64 ToFileTimeUtc() => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + public long ToFileTime() => throw null; + public long ToFileTimeUtc() => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; public System.DateTime ToLocalTime() => throw null; public string ToLongDateString() => throw null; public string ToLongTimeString() => throw null; public double ToOADate() => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; public string ToShortDateString() => throw null; public string ToShortTimeString() => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; @@ -1575,45 +2110,33 @@ namespace System public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; public System.DateTime ToUniversalTime() => throw null; - public static System.DateTime Today { get => throw null; } - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, System.Globalization.DateTimeStyles styles, out System.DateTime result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.DateTime result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.DateTime result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, System.Globalization.DateTimeStyles styles, out System.DateTime result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.DateTime result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out System.DateTime result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.DateTime result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, System.Globalization.DateTimeStyles styles, out System.DateTime result) => throw null; public static bool TryParse(string s, out System.DateTime result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) => throw null; - public static bool TryParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.DateTime result) => throw null; + public static bool TryParse(string s, System.IFormatProvider provider, System.Globalization.DateTimeStyles styles, out System.DateTime result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) => throw null; public static bool TryParseExact(string s, string format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) => throw null; + public static bool TryParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) => throw null; public static System.DateTime UnixEpoch; public static System.DateTime UtcNow { get => throw null; } public int Year { get => throw null; } } - - public enum DateTimeKind : int + public enum DateTimeKind { - Local = 2, Unspecified = 0, Utc = 1, + Local = 2, } - public struct DateTimeOffset : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { - public static bool operator !=(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; - public static System.DateTimeOffset operator +(System.DateTimeOffset dateTimeOffset, System.TimeSpan timeSpan) => throw null; - public static System.TimeSpan operator -(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; - public static System.DateTimeOffset operator -(System.DateTimeOffset dateTimeOffset, System.TimeSpan timeSpan) => throw null; - public static bool operator <(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; - public static bool operator <=(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; - public static bool operator ==(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; - public static bool operator >(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; - public static bool operator >=(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; public System.DateTimeOffset Add(System.TimeSpan timeSpan) => throw null; public System.DateTimeOffset AddDays(double days) => throw null; public System.DateTimeOffset AddHours(double hours) => throw null; @@ -1622,22 +2145,21 @@ namespace System public System.DateTimeOffset AddMinutes(double minutes) => throw null; public System.DateTimeOffset AddMonths(int months) => throw null; public System.DateTimeOffset AddSeconds(double seconds) => throw null; - public System.DateTimeOffset AddTicks(System.Int64 ticks) => throw null; + public System.DateTimeOffset AddTicks(long ticks) => throw null; public System.DateTimeOffset AddYears(int years) => throw null; public static int Compare(System.DateTimeOffset first, System.DateTimeOffset second) => throw null; public int CompareTo(System.DateTimeOffset other) => throw null; int System.IComparable.CompareTo(object obj) => throw null; - public System.DateTime Date { get => throw null; } - public System.DateTime DateTime { get => throw null; } - // Stub generator skipped constructor public DateTimeOffset(System.DateTime dateTime) => throw null; public DateTimeOffset(System.DateTime dateTime, System.TimeSpan offset) => throw null; - public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, System.TimeSpan offset) => throw null; public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar, System.TimeSpan offset) => throw null; - public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, System.TimeSpan offset) => throw null; public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.Globalization.Calendar calendar, System.TimeSpan offset) => throw null; public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.TimeSpan offset) => throw null; - public DateTimeOffset(System.Int64 ticks, System.TimeSpan offset) => throw null; + public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, System.TimeSpan offset) => throw null; + public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, System.TimeSpan offset) => throw null; + public DateTimeOffset(long ticks, System.TimeSpan offset) => throw null; + public System.DateTime Date { get => throw null; } + public System.DateTime DateTime { get => throw null; } public int Day { get => throw null; } public System.DayOfWeek DayOfWeek { get => throw null; } public int DayOfYear { get => throw null; } @@ -1645,9 +2167,9 @@ namespace System public static bool Equals(System.DateTimeOffset first, System.DateTimeOffset second) => throw null; public override bool Equals(object obj) => throw null; public bool EqualsExact(System.DateTimeOffset other) => throw null; - public static System.DateTimeOffset FromFileTime(System.Int64 fileTime) => throw null; - public static System.DateTimeOffset FromUnixTimeMilliseconds(System.Int64 milliseconds) => throw null; - public static System.DateTimeOffset FromUnixTimeSeconds(System.Int64 seconds) => throw null; + public static System.DateTimeOffset FromFileTime(long fileTime) => throw null; + public static System.DateTimeOffset FromUnixTimeMilliseconds(long milliseconds) => throw null; + public static System.DateTimeOffset FromUnixTimeSeconds(long seconds) => throw null; public override int GetHashCode() => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public int Hour { get => throw null; } @@ -1655,29 +2177,39 @@ namespace System public static System.DateTimeOffset MaxValue; public int Microsecond { get => throw null; } public int Millisecond { get => throw null; } - public static System.DateTimeOffset MinValue; public int Minute { get => throw null; } + public static System.DateTimeOffset MinValue; public int Month { get => throw null; } public int Nanosecond { get => throw null; } public static System.DateTimeOffset Now { get => throw null; } public System.TimeSpan Offset { get => throw null; } void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public static System.DateTimeOffset Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.DateTimeOffset Parse(System.ReadOnlySpan input, System.IFormatProvider formatProvider = default(System.IFormatProvider), System.Globalization.DateTimeStyles styles = default(System.Globalization.DateTimeStyles)) => throw null; + public static System.DateTimeOffset operator +(System.DateTimeOffset dateTimeOffset, System.TimeSpan timeSpan) => throw null; + public static bool operator ==(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; + public static bool operator >(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; + public static bool operator >=(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; + public static implicit operator System.DateTimeOffset(System.DateTime dateTime) => throw null; + public static bool operator !=(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; + public static bool operator <(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; + public static bool operator <=(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; + public static System.TimeSpan operator -(System.DateTimeOffset left, System.DateTimeOffset right) => throw null; + public static System.DateTimeOffset operator -(System.DateTimeOffset dateTimeOffset, System.TimeSpan timeSpan) => throw null; + static System.DateTimeOffset System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static System.DateTimeOffset Parse(System.ReadOnlySpan input, System.IFormatProvider formatProvider = default(System.IFormatProvider), System.Globalization.DateTimeStyles styles = default(System.Globalization.DateTimeStyles)) => throw null; public static System.DateTimeOffset Parse(string input) => throw null; - public static System.DateTimeOffset Parse(string input, System.IFormatProvider formatProvider) => throw null; + static System.DateTimeOffset System.IParsable.Parse(string input, System.IFormatProvider formatProvider) => throw null; public static System.DateTimeOffset Parse(string input, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles) => throw null; - public static System.DateTimeOffset ParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles = default(System.Globalization.DateTimeStyles)) => throw null; - public static System.DateTimeOffset ParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles = default(System.Globalization.DateTimeStyles)) => throw null; - public static System.DateTimeOffset ParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles) => throw null; + public static System.DateTimeOffset ParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles = default(System.Globalization.DateTimeStyles)) => throw null; + public static System.DateTimeOffset ParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles = default(System.Globalization.DateTimeStyles)) => throw null; public static System.DateTimeOffset ParseExact(string input, string format, System.IFormatProvider formatProvider) => throw null; public static System.DateTimeOffset ParseExact(string input, string format, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles) => throw null; + public static System.DateTimeOffset ParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles) => throw null; public int Second { get => throw null; } public System.TimeSpan Subtract(System.DateTimeOffset value) => throw null; public System.DateTimeOffset Subtract(System.TimeSpan value) => throw null; - public System.Int64 Ticks { get => throw null; } + public long Ticks { get => throw null; } public System.TimeSpan TimeOfDay { get => throw null; } - public System.Int64 ToFileTime() => throw null; + public long ToFileTime() => throw null; public System.DateTimeOffset ToLocalTime() => throw null; public System.DateTimeOffset ToOffset(System.TimeSpan offset) => throw null; public override string ToString() => throw null; @@ -1685,242 +2217,258 @@ namespace System public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider formatProvider) => throw null; public System.DateTimeOffset ToUniversalTime() => throw null; - public System.Int64 ToUnixTimeMilliseconds() => throw null; - public System.Int64 ToUnixTimeSeconds() => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider formatProvider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan input, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.DateTimeOffset result) => throw null; - public static bool TryParse(System.ReadOnlySpan input, out System.DateTimeOffset result) => throw null; - public static bool TryParse(string input, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.DateTimeOffset result) => throw null; + public long ToUnixTimeMilliseconds() => throw null; + public long ToUnixTimeSeconds() => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider formatProvider = default(System.IFormatProvider)) => throw null; + public static bool TryParse(System.ReadOnlySpan input, out System.DateTimeOffset result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.DateTimeOffset result) => throw null; + public static bool TryParse(System.ReadOnlySpan input, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; public static bool TryParse(string input, out System.DateTimeOffset result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; - public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.DateTimeOffset result) => throw null; + public static bool TryParse(string input, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; public static bool TryParseExact(string input, string format, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; + public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; public static System.DateTimeOffset UnixEpoch; public System.DateTime UtcDateTime { get => throw null; } public static System.DateTimeOffset UtcNow { get => throw null; } - public System.Int64 UtcTicks { get => throw null; } + public long UtcTicks { get => throw null; } public int Year { get => throw null; } - public static implicit operator System.DateTimeOffset(System.DateTime dateTime) => throw null; } - - public enum DayOfWeek : int + public enum DayOfWeek { - Friday = 5, - Monday = 1, - Saturday = 6, Sunday = 0, - Thursday = 4, + Monday = 1, Tuesday = 2, Wednesday = 3, + Thursday = 4, + Friday = 5, + Saturday = 6, } - - public struct Decimal : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public sealed class DBNull : System.IConvertible, System.Runtime.Serialization.ISerializable { - static bool System.Numerics.IEqualityOperators.operator !=(System.Decimal d1, System.Decimal d2) => throw null; - static System.Decimal System.Numerics.IModulusOperators.operator %(System.Decimal d1, System.Decimal d2) => throw null; - static System.Decimal System.Numerics.IMultiplyOperators.operator *(System.Decimal d1, System.Decimal d2) => throw null; - static System.Decimal System.Numerics.IUnaryPlusOperators.operator +(System.Decimal d) => throw null; - static System.Decimal System.Numerics.IAdditionOperators.operator +(System.Decimal d1, System.Decimal d2) => throw null; - static System.Decimal System.Numerics.IIncrementOperators.operator ++(System.Decimal d) => throw null; - static System.Decimal System.Numerics.IUnaryNegationOperators.operator -(System.Decimal d) => throw null; - static System.Decimal System.Numerics.ISubtractionOperators.operator -(System.Decimal d1, System.Decimal d2) => throw null; - static System.Decimal System.Numerics.IDecrementOperators.operator --(System.Decimal d) => throw null; - static System.Decimal System.Numerics.IDivisionOperators.operator /(System.Decimal d1, System.Decimal d2) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.Decimal d1, System.Decimal d2) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.Decimal d1, System.Decimal d2) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.Decimal d1, System.Decimal d2) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.Decimal d1, System.Decimal d2) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.Decimal d1, System.Decimal d2) => throw null; - public static System.Decimal Abs(System.Decimal value) => throw null; - public static System.Decimal Add(System.Decimal d1, System.Decimal d2) => throw null; - static System.Decimal System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - public static System.Decimal Ceiling(System.Decimal d) => throw null; - public static System.Decimal Clamp(System.Decimal value, System.Decimal min, System.Decimal max) => throw null; - public static int Compare(System.Decimal d1, System.Decimal d2) => throw null; - public int CompareTo(System.Decimal value) => throw null; + public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.TypeCode GetTypeCode() => throw null; + bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; + public override string ToString() => throw null; + public string ToString(System.IFormatProvider provider) => throw null; + object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + public static System.DBNull Value; + } + public struct Decimal : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IModulusOperators, System.Numerics.INumber, System.Numerics.ISignedNumber, System.Numerics.IMinMaxValue, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + { + static decimal System.Numerics.INumberBase.Abs(decimal value) => throw null; + public static decimal Add(decimal d1, decimal d2) => throw null; + static decimal System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static decimal System.Numerics.IFloatingPoint.Ceiling(decimal d) => throw null; + static decimal System.Numerics.INumber.Clamp(decimal value, decimal min, decimal max) => throw null; + public static int Compare(decimal d1, decimal d2) => throw null; + public int CompareTo(decimal value) => throw null; public int CompareTo(object value) => throw null; - public static System.Decimal CopySign(System.Decimal value, System.Decimal sign) => throw null; - static System.Decimal System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.Decimal System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.Decimal System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - // Stub generator skipped constructor - public Decimal(int[] bits) => throw null; - public Decimal(System.ReadOnlySpan bits) => throw null; + static decimal System.Numerics.INumber.CopySign(decimal value, decimal sign) => throw null; + static decimal System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static decimal System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static decimal System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; public Decimal(double value) => throw null; - public Decimal(float value) => throw null; public Decimal(int value) => throw null; - public Decimal(int lo, int mid, int hi, bool isNegative, System.Byte scale) => throw null; - public Decimal(System.Int64 value) => throw null; - public Decimal(System.UInt32 value) => throw null; - public Decimal(System.UInt64 value) => throw null; - public static System.Decimal Divide(System.Decimal d1, System.Decimal d2) => throw null; - static System.Decimal System.Numerics.IFloatingPointConstants.E { get => throw null; } - public bool Equals(System.Decimal value) => throw null; - public static bool Equals(System.Decimal d1, System.Decimal d2) => throw null; + public Decimal(int lo, int mid, int hi, bool isNegative, byte scale) => throw null; + public Decimal(int[] bits) => throw null; + public Decimal(long value) => throw null; + public Decimal(System.ReadOnlySpan bits) => throw null; + public Decimal(float value) => throw null; + public Decimal(uint value) => throw null; + public Decimal(ulong value) => throw null; + public static decimal Divide(decimal d1, decimal d2) => throw null; + static decimal System.Numerics.IFloatingPointConstants.E { get => throw null; } + public bool Equals(decimal value) => throw null; + public static bool Equals(decimal d1, decimal d2) => throw null; public override bool Equals(object value) => throw null; - public static System.Decimal Floor(System.Decimal d) => throw null; - public static System.Decimal FromOACurrency(System.Int64 cy) => throw null; - public static int[] GetBits(System.Decimal d) => throw null; - public static int GetBits(System.Decimal d, System.Span destination) => throw null; - int System.Numerics.IFloatingPoint.GetExponentByteCount() => throw null; - int System.Numerics.IFloatingPoint.GetExponentShortestBitLength() => throw null; + static decimal System.Numerics.IFloatingPoint.Floor(decimal d) => throw null; + public static decimal FromOACurrency(long cy) => throw null; + public static int[] GetBits(decimal d) => throw null; + public static int GetBits(decimal d, System.Span destination) => throw null; + int System.Numerics.IFloatingPoint.GetExponentByteCount() => throw null; + int System.Numerics.IFloatingPoint.GetExponentShortestBitLength() => throw null; public override int GetHashCode() => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - int System.Numerics.IFloatingPoint.GetSignificandBitLength() => throw null; - int System.Numerics.IFloatingPoint.GetSignificandByteCount() => throw null; + int System.Numerics.IFloatingPoint.GetSignificandBitLength() => throw null; + int System.Numerics.IFloatingPoint.GetSignificandByteCount() => throw null; public System.TypeCode GetTypeCode() => throw null; - public static bool IsCanonical(System.Decimal value) => throw null; - public static bool IsComplexNumber(System.Decimal value) => throw null; - public static bool IsEvenInteger(System.Decimal value) => throw null; - public static bool IsFinite(System.Decimal value) => throw null; - public static bool IsImaginaryNumber(System.Decimal value) => throw null; - public static bool IsInfinity(System.Decimal value) => throw null; - public static bool IsInteger(System.Decimal value) => throw null; - public static bool IsNaN(System.Decimal value) => throw null; - public static bool IsNegative(System.Decimal value) => throw null; - public static bool IsNegativeInfinity(System.Decimal value) => throw null; - public static bool IsNormal(System.Decimal value) => throw null; - public static bool IsOddInteger(System.Decimal value) => throw null; - public static bool IsPositive(System.Decimal value) => throw null; - public static bool IsPositiveInfinity(System.Decimal value) => throw null; - public static bool IsRealNumber(System.Decimal value) => throw null; - public static bool IsSubnormal(System.Decimal value) => throw null; - public static bool IsZero(System.Decimal value) => throw null; - public static System.Decimal Max(System.Decimal x, System.Decimal y) => throw null; - public static System.Decimal MaxMagnitude(System.Decimal x, System.Decimal y) => throw null; - public static System.Decimal MaxMagnitudeNumber(System.Decimal x, System.Decimal y) => throw null; - public static System.Decimal MaxNumber(System.Decimal x, System.Decimal y) => throw null; - public const System.Decimal MaxValue = default; - static System.Decimal System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.Decimal Min(System.Decimal x, System.Decimal y) => throw null; - public static System.Decimal MinMagnitude(System.Decimal x, System.Decimal y) => throw null; - public static System.Decimal MinMagnitudeNumber(System.Decimal x, System.Decimal y) => throw null; - public static System.Decimal MinNumber(System.Decimal x, System.Decimal y) => throw null; - public const System.Decimal MinValue = default; - static System.Decimal System.Numerics.IMinMaxValue.MinValue { get => throw null; } - public const System.Decimal MinusOne = default; - static System.Decimal System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - public static System.Decimal Multiply(System.Decimal d1, System.Decimal d2) => throw null; - public static System.Decimal Negate(System.Decimal d) => throw null; - static System.Decimal System.Numerics.ISignedNumber.NegativeOne { get => throw null; } + static bool System.Numerics.INumberBase.IsCanonical(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(decimal value) => throw null; + static bool System.Numerics.INumberBase.IsZero(decimal value) => throw null; + static decimal System.Numerics.INumber.Max(decimal x, decimal y) => throw null; + static decimal System.Numerics.INumberBase.MaxMagnitude(decimal x, decimal y) => throw null; + static decimal System.Numerics.INumberBase.MaxMagnitudeNumber(decimal x, decimal y) => throw null; + static decimal System.Numerics.INumber.MaxNumber(decimal x, decimal y) => throw null; + public static decimal MaxValue; + static decimal System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static decimal System.Numerics.INumber.Min(decimal x, decimal y) => throw null; + static decimal System.Numerics.INumberBase.MinMagnitude(decimal x, decimal y) => throw null; + static decimal System.Numerics.INumberBase.MinMagnitudeNumber(decimal x, decimal y) => throw null; + static decimal System.Numerics.INumber.MinNumber(decimal x, decimal y) => throw null; + public static decimal MinusOne; + public static decimal MinValue; + static decimal System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static decimal System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + public static decimal Multiply(decimal d1, decimal d2) => throw null; + public static decimal Negate(decimal d) => throw null; + static decimal System.Numerics.ISignedNumber.NegativeOne { get => throw null; } void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public const System.Decimal One = default; - static System.Decimal System.Numerics.INumberBase.One { get => throw null; } - public static System.Decimal Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.Decimal Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.Decimal Parse(string s) => throw null; - public static System.Decimal Parse(string s, System.IFormatProvider provider) => throw null; - public static System.Decimal Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.Decimal Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - static System.Decimal System.Numerics.IFloatingPointConstants.Pi { get => throw null; } - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.Decimal Remainder(System.Decimal d1, System.Decimal d2) => throw null; - public static System.Decimal Round(System.Decimal d) => throw null; - public static System.Decimal Round(System.Decimal d, System.MidpointRounding mode) => throw null; - public static System.Decimal Round(System.Decimal d, int decimals) => throw null; - public static System.Decimal Round(System.Decimal d, int decimals, System.MidpointRounding mode) => throw null; - public System.Byte Scale { get => throw null; } - public static int Sign(System.Decimal d) => throw null; - public static System.Decimal Subtract(System.Decimal d1, System.Decimal d2) => throw null; - static System.Decimal System.Numerics.IFloatingPointConstants.Tau { get => throw null; } + public static decimal One; + static decimal System.Numerics.INumberBase.One { get => throw null; } + static decimal System.Numerics.IAdditionOperators.operator +(decimal d1, decimal d2) => throw null; + static decimal System.Numerics.IDecrementOperators.operator --(decimal d) => throw null; + static decimal System.Numerics.IDivisionOperators.operator /(decimal d1, decimal d2) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(decimal d1, decimal d2) => throw null; + public static explicit operator byte(decimal value) => throw null; + public static explicit operator char(decimal value) => throw null; + public static explicit operator double(decimal value) => throw null; + public static explicit operator short(decimal value) => throw null; + public static explicit operator int(decimal value) => throw null; + public static explicit operator long(decimal value) => throw null; + public static explicit operator sbyte(decimal value) => throw null; + public static explicit operator float(decimal value) => throw null; + public static explicit operator ushort(decimal value) => throw null; + public static explicit operator uint(decimal value) => throw null; + public static explicit operator ulong(decimal value) => throw null; + public static explicit operator decimal(double value) => throw null; + public static explicit operator decimal(float value) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(decimal d1, decimal d2) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(decimal d1, decimal d2) => throw null; + public static implicit operator decimal(byte value) => throw null; + public static implicit operator decimal(char value) => throw null; + public static implicit operator decimal(short value) => throw null; + public static implicit operator decimal(int value) => throw null; + public static implicit operator decimal(long value) => throw null; + public static implicit operator decimal(sbyte value) => throw null; + public static implicit operator decimal(ushort value) => throw null; + public static implicit operator decimal(uint value) => throw null; + public static implicit operator decimal(ulong value) => throw null; + static decimal System.Numerics.IIncrementOperators.operator ++(decimal d) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(decimal d1, decimal d2) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(decimal d1, decimal d2) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(decimal d1, decimal d2) => throw null; + static decimal System.Numerics.IModulusOperators.operator %(decimal d1, decimal d2) => throw null; + static decimal System.Numerics.IMultiplyOperators.operator *(decimal d1, decimal d2) => throw null; + static decimal System.Numerics.ISubtractionOperators.operator -(decimal d1, decimal d2) => throw null; + static decimal System.Numerics.IUnaryNegationOperators.operator -(decimal d) => throw null; + static decimal System.Numerics.IUnaryPlusOperators.operator +(decimal d) => throw null; + static decimal System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static decimal System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static decimal Parse(string s) => throw null; + public static decimal Parse(string s, System.Globalization.NumberStyles style) => throw null; + static decimal System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static decimal System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static decimal System.Numerics.IFloatingPointConstants.Pi { get => throw null; } + static int System.Numerics.INumberBase.Radix { get => throw null; } + public static decimal Remainder(decimal d1, decimal d2) => throw null; + static decimal System.Numerics.IFloatingPoint.Round(decimal d) => throw null; + static decimal System.Numerics.IFloatingPoint.Round(decimal d, int decimals) => throw null; + static decimal System.Numerics.IFloatingPoint.Round(decimal d, int decimals, System.MidpointRounding mode) => throw null; + static decimal System.Numerics.IFloatingPoint.Round(decimal d, System.MidpointRounding mode) => throw null; + public byte Scale { get => throw null; } + static int System.Numerics.INumber.Sign(decimal d) => throw null; + public static decimal Subtract(decimal d1, decimal d2) => throw null; + static decimal System.Numerics.IFloatingPointConstants.Tau { get => throw null; } bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - public static System.Byte ToByte(System.Decimal value) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + public static byte ToByte(decimal value) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - public static double ToDouble(System.Decimal d) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; - public static System.Int16 ToInt16(System.Decimal value) => throw null; + public static double ToDouble(decimal d) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + public static short ToInt16(decimal value) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - public static int ToInt32(System.Decimal d) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - public static System.Int64 ToInt64(System.Decimal d) => throw null; - public static System.Int64 ToOACurrency(System.Decimal value) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; - public static System.SByte ToSByte(System.Decimal value) => throw null; + public static int ToInt32(decimal d) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + public static long ToInt64(decimal d) => throw null; + public static long ToOACurrency(decimal value) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + public static sbyte ToSByte(decimal value) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; - public static float ToSingle(System.Decimal d) => throw null; + public static float ToSingle(decimal d) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - public static System.UInt16 ToUInt16(System.Decimal value) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - public static System.UInt32 ToUInt32(System.Decimal d) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.UInt64 ToUInt64(System.Decimal d) => throw null; - public static System.Decimal Truncate(System.Decimal d) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.Decimal result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.Decimal result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.Decimal result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.Decimal value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Decimal value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Decimal value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryGetBits(System.Decimal d, System.Span destination, out int valuesWritten) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Decimal result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Decimal result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.Decimal result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Decimal result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Decimal result) => throw null; - public static bool TryParse(string s, out System.Decimal result) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteExponentBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; - public const System.Decimal Zero = default; - static System.Decimal System.Numerics.INumberBase.Zero { get => throw null; } - public static explicit operator System.Byte(System.Decimal value) => throw null; - public static explicit operator System.Char(System.Decimal value) => throw null; - public static explicit operator System.Int16(System.Decimal value) => throw null; - public static explicit operator System.Int64(System.Decimal value) => throw null; - public static explicit operator System.SByte(System.Decimal value) => throw null; - public static explicit operator System.UInt16(System.Decimal value) => throw null; - public static explicit operator System.UInt32(System.Decimal value) => throw null; - public static explicit operator System.UInt64(System.Decimal value) => throw null; - public static explicit operator double(System.Decimal value) => throw null; - public static explicit operator float(System.Decimal value) => throw null; - public static explicit operator int(System.Decimal value) => throw null; - public static explicit operator System.Decimal(double value) => throw null; - public static explicit operator System.Decimal(float value) => throw null; - public static implicit operator System.Decimal(System.Byte value) => throw null; - public static implicit operator System.Decimal(System.Char value) => throw null; - public static implicit operator System.Decimal(int value) => throw null; - public static implicit operator System.Decimal(System.Int64 value) => throw null; - public static implicit operator System.Decimal(System.SByte value) => throw null; - public static implicit operator System.Decimal(System.Int16 value) => throw null; - public static implicit operator System.Decimal(System.UInt32 value) => throw null; - public static implicit operator System.Decimal(System.UInt64 value) => throw null; - public static implicit operator System.Decimal(System.UInt16 value) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + public static ushort ToUInt16(decimal value) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + public static uint ToUInt32(decimal d) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + public static ulong ToUInt64(decimal d) => throw null; + static decimal System.Numerics.IFloatingPoint.Truncate(decimal d) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out decimal result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out decimal result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out decimal result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(decimal value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(decimal value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(decimal value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + public static bool TryGetBits(decimal d, System.Span destination, out int valuesWritten) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out decimal result) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out decimal result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out decimal result) => throw null; + public static bool TryParse(string s, out decimal result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out decimal result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out decimal result) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteExponentBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; + public static decimal Zero; + static decimal System.Numerics.INumberBase.Zero { get => throw null; } } - public abstract class Delegate : System.ICloneable, System.Runtime.Serialization.ISerializable { - public static bool operator !=(System.Delegate d1, System.Delegate d2) => throw null; - public static bool operator ==(System.Delegate d1, System.Delegate d2) => throw null; public virtual object Clone() => throw null; public static System.Delegate Combine(System.Delegate a, System.Delegate b) => throw null; public static System.Delegate Combine(params System.Delegate[] delegates) => throw null; protected virtual System.Delegate CombineImpl(System.Delegate d) => throw null; - public static System.Delegate CreateDelegate(System.Type type, System.Reflection.MethodInfo method) => throw null; - public static System.Delegate CreateDelegate(System.Type type, System.Reflection.MethodInfo method, bool throwOnBindFailure) => throw null; - public static System.Delegate CreateDelegate(System.Type type, System.Type target, string method) => throw null; - public static System.Delegate CreateDelegate(System.Type type, System.Type target, string method, bool ignoreCase) => throw null; - public static System.Delegate CreateDelegate(System.Type type, System.Type target, string method, bool ignoreCase, bool throwOnBindFailure) => throw null; public static System.Delegate CreateDelegate(System.Type type, object firstArgument, System.Reflection.MethodInfo method) => throw null; public static System.Delegate CreateDelegate(System.Type type, object firstArgument, System.Reflection.MethodInfo method, bool throwOnBindFailure) => throw null; public static System.Delegate CreateDelegate(System.Type type, object target, string method) => throw null; public static System.Delegate CreateDelegate(System.Type type, object target, string method, bool ignoreCase) => throw null; public static System.Delegate CreateDelegate(System.Type type, object target, string method, bool ignoreCase, bool throwOnBindFailure) => throw null; - protected Delegate(System.Type target, string method) => throw null; + public static System.Delegate CreateDelegate(System.Type type, System.Reflection.MethodInfo method) => throw null; + public static System.Delegate CreateDelegate(System.Type type, System.Reflection.MethodInfo method, bool throwOnBindFailure) => throw null; + public static System.Delegate CreateDelegate(System.Type type, System.Type target, string method) => throw null; + public static System.Delegate CreateDelegate(System.Type type, System.Type target, string method, bool ignoreCase) => throw null; + public static System.Delegate CreateDelegate(System.Type type, System.Type target, string method, bool ignoreCase, bool throwOnBindFailure) => throw null; protected Delegate(object target, string method) => throw null; + protected Delegate(System.Type target, string method) => throw null; public object DynamicInvoke(params object[] args) => throw null; protected virtual object DynamicInvokeImpl(object[] args) => throw null; public override bool Equals(object obj) => throw null; @@ -1929,12 +2477,375 @@ namespace System protected virtual System.Reflection.MethodInfo GetMethodImpl() => throw null; public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public System.Reflection.MethodInfo Method { get => throw null; } + public static bool operator ==(System.Delegate d1, System.Delegate d2) => throw null; + public static bool operator !=(System.Delegate d1, System.Delegate d2) => throw null; public static System.Delegate Remove(System.Delegate source, System.Delegate value) => throw null; public static System.Delegate RemoveAll(System.Delegate source, System.Delegate value) => throw null; protected virtual System.Delegate RemoveImpl(System.Delegate d) => throw null; public object Target { get => throw null; } } - + namespace Diagnostics + { + namespace CodeAnalysis + { + public sealed class AllowNullAttribute : System.Attribute + { + public AllowNullAttribute() => throw null; + } + public sealed class ConstantExpectedAttribute : System.Attribute + { + public ConstantExpectedAttribute() => throw null; + public object Max { get => throw null; set { } } + public object Min { get => throw null; set { } } + } + public sealed class DisallowNullAttribute : System.Attribute + { + public DisallowNullAttribute() => throw null; + } + public sealed class DoesNotReturnAttribute : System.Attribute + { + public DoesNotReturnAttribute() => throw null; + } + public sealed class DoesNotReturnIfAttribute : System.Attribute + { + public DoesNotReturnIfAttribute(bool parameterValue) => throw null; + public bool ParameterValue { get => throw null; } + } + public sealed class DynamicallyAccessedMembersAttribute : System.Attribute + { + public DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes memberTypes) => throw null; + public System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes MemberTypes { get => throw null; } + } + [System.Flags] + public enum DynamicallyAccessedMemberTypes + { + All = -1, + None = 0, + PublicParameterlessConstructor = 1, + PublicConstructors = 3, + NonPublicConstructors = 4, + PublicMethods = 8, + NonPublicMethods = 16, + PublicFields = 32, + NonPublicFields = 64, + PublicNestedTypes = 128, + NonPublicNestedTypes = 256, + PublicProperties = 512, + NonPublicProperties = 1024, + PublicEvents = 2048, + NonPublicEvents = 4096, + Interfaces = 8192, + } + public sealed class DynamicDependencyAttribute : System.Attribute + { + public string AssemblyName { get => throw null; } + public string Condition { get => throw null; set { } } + public DynamicDependencyAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes memberTypes, string typeName, string assemblyName) => throw null; + public DynamicDependencyAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes memberTypes, System.Type type) => throw null; + public DynamicDependencyAttribute(string memberSignature) => throw null; + public DynamicDependencyAttribute(string memberSignature, string typeName, string assemblyName) => throw null; + public DynamicDependencyAttribute(string memberSignature, System.Type type) => throw null; + public string MemberSignature { get => throw null; } + public System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes MemberTypes { get => throw null; } + public System.Type Type { get => throw null; } + public string TypeName { get => throw null; } + } + public sealed class ExcludeFromCodeCoverageAttribute : System.Attribute + { + public ExcludeFromCodeCoverageAttribute() => throw null; + public string Justification { get => throw null; set { } } + } + public sealed class MaybeNullAttribute : System.Attribute + { + public MaybeNullAttribute() => throw null; + } + public sealed class MaybeNullWhenAttribute : System.Attribute + { + public MaybeNullWhenAttribute(bool returnValue) => throw null; + public bool ReturnValue { get => throw null; } + } + public sealed class MemberNotNullAttribute : System.Attribute + { + public MemberNotNullAttribute(string member) => throw null; + public MemberNotNullAttribute(params string[] members) => throw null; + public string[] Members { get => throw null; } + } + public sealed class MemberNotNullWhenAttribute : System.Attribute + { + public MemberNotNullWhenAttribute(bool returnValue, string member) => throw null; + public MemberNotNullWhenAttribute(bool returnValue, params string[] members) => throw null; + public string[] Members { get => throw null; } + public bool ReturnValue { get => throw null; } + } + public sealed class NotNullAttribute : System.Attribute + { + public NotNullAttribute() => throw null; + } + public sealed class NotNullIfNotNullAttribute : System.Attribute + { + public NotNullIfNotNullAttribute(string parameterName) => throw null; + public string ParameterName { get => throw null; } + } + public sealed class NotNullWhenAttribute : System.Attribute + { + public NotNullWhenAttribute(bool returnValue) => throw null; + public bool ReturnValue { get => throw null; } + } + public sealed class RequiresAssemblyFilesAttribute : System.Attribute + { + public RequiresAssemblyFilesAttribute() => throw null; + public RequiresAssemblyFilesAttribute(string message) => throw null; + public string Message { get => throw null; } + public string Url { get => throw null; set { } } + } + public sealed class RequiresDynamicCodeAttribute : System.Attribute + { + public RequiresDynamicCodeAttribute(string message) => throw null; + public string Message { get => throw null; } + public string Url { get => throw null; set { } } + } + public sealed class RequiresUnreferencedCodeAttribute : System.Attribute + { + public RequiresUnreferencedCodeAttribute(string message) => throw null; + public string Message { get => throw null; } + public string Url { get => throw null; set { } } + } + public sealed class SetsRequiredMembersAttribute : System.Attribute + { + public SetsRequiredMembersAttribute() => throw null; + } + public sealed class StringSyntaxAttribute : System.Attribute + { + public object[] Arguments { get => throw null; } + public static string CompositeFormat; + public StringSyntaxAttribute(string syntax) => throw null; + public StringSyntaxAttribute(string syntax, params object[] arguments) => throw null; + public static string DateOnlyFormat; + public static string DateTimeFormat; + public static string EnumFormat; + public static string GuidFormat; + public static string Json; + public static string NumericFormat; + public static string Regex; + public string Syntax { get => throw null; } + public static string TimeOnlyFormat; + public static string TimeSpanFormat; + public static string Uri; + public static string Xml; + } + public sealed class SuppressMessageAttribute : System.Attribute + { + public string Category { get => throw null; } + public string CheckId { get => throw null; } + public SuppressMessageAttribute(string category, string checkId) => throw null; + public string Justification { get => throw null; set { } } + public string MessageId { get => throw null; set { } } + public string Scope { get => throw null; set { } } + public string Target { get => throw null; set { } } + } + public sealed class UnconditionalSuppressMessageAttribute : System.Attribute + { + public string Category { get => throw null; } + public string CheckId { get => throw null; } + public UnconditionalSuppressMessageAttribute(string category, string checkId) => throw null; + public string Justification { get => throw null; set { } } + public string MessageId { get => throw null; set { } } + public string Scope { get => throw null; set { } } + public string Target { get => throw null; set { } } + } + public sealed class UnscopedRefAttribute : System.Attribute + { + public UnscopedRefAttribute() => throw null; + } + } + public sealed class ConditionalAttribute : System.Attribute + { + public string ConditionString { get => throw null; } + public ConditionalAttribute(string conditionString) => throw null; + } + public static class Debug + { + public static void Assert(bool condition) => throw null; + public static void Assert(bool condition, ref System.Diagnostics.Debug.AssertInterpolatedStringHandler message) => throw null; + public static void Assert(bool condition, ref System.Diagnostics.Debug.AssertInterpolatedStringHandler message, ref System.Diagnostics.Debug.AssertInterpolatedStringHandler detailMessage) => throw null; + public static void Assert(bool condition, string message) => throw null; + public static void Assert(bool condition, string message, string detailMessage) => throw null; + public static void Assert(bool condition, string message, string detailMessageFormat, params object[] args) => throw null; + public struct AssertInterpolatedStringHandler + { + public void AppendFormatted(object value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(System.ReadOnlySpan value) => throw null; + public void AppendFormatted(System.ReadOnlySpan value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(string value) => throw null; + public void AppendFormatted(string value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(T value) => throw null; + public void AppendFormatted(T value, int alignment) => throw null; + public void AppendFormatted(T value, int alignment, string format) => throw null; + public void AppendFormatted(T value, string format) => throw null; + public void AppendLiteral(string value) => throw null; + public AssertInterpolatedStringHandler(int literalLength, int formattedCount, bool condition, out bool shouldAppend) => throw null; + } + public static bool AutoFlush { get => throw null; set { } } + public static void Close() => throw null; + public static void Fail(string message) => throw null; + public static void Fail(string message, string detailMessage) => throw null; + public static void Flush() => throw null; + public static void Indent() => throw null; + public static int IndentLevel { get => throw null; set { } } + public static int IndentSize { get => throw null; set { } } + public static void Print(string message) => throw null; + public static void Print(string format, params object[] args) => throw null; + public static void Unindent() => throw null; + public static void Write(object value) => throw null; + public static void Write(object value, string category) => throw null; + public static void Write(string message) => throw null; + public static void Write(string message, string category) => throw null; + public static void WriteIf(bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message) => throw null; + public static void WriteIf(bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message, string category) => throw null; + public static void WriteIf(bool condition, object value) => throw null; + public static void WriteIf(bool condition, object value, string category) => throw null; + public static void WriteIf(bool condition, string message) => throw null; + public static void WriteIf(bool condition, string message, string category) => throw null; + public struct WriteIfInterpolatedStringHandler + { + public void AppendFormatted(object value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(System.ReadOnlySpan value) => throw null; + public void AppendFormatted(System.ReadOnlySpan value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(string value) => throw null; + public void AppendFormatted(string value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(T value) => throw null; + public void AppendFormatted(T value, int alignment) => throw null; + public void AppendFormatted(T value, int alignment, string format) => throw null; + public void AppendFormatted(T value, string format) => throw null; + public void AppendLiteral(string value) => throw null; + public WriteIfInterpolatedStringHandler(int literalLength, int formattedCount, bool condition, out bool shouldAppend) => throw null; + } + public static void WriteLine(object value) => throw null; + public static void WriteLine(object value, string category) => throw null; + public static void WriteLine(string message) => throw null; + public static void WriteLine(string format, params object[] args) => throw null; + public static void WriteLine(string message, string category) => throw null; + public static void WriteLineIf(bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message) => throw null; + public static void WriteLineIf(bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message, string category) => throw null; + public static void WriteLineIf(bool condition, object value) => throw null; + public static void WriteLineIf(bool condition, object value, string category) => throw null; + public static void WriteLineIf(bool condition, string message) => throw null; + public static void WriteLineIf(bool condition, string message, string category) => throw null; + } + public sealed class DebuggableAttribute : System.Attribute + { + public DebuggableAttribute(bool isJITTrackingEnabled, bool isJITOptimizerDisabled) => throw null; + public DebuggableAttribute(System.Diagnostics.DebuggableAttribute.DebuggingModes modes) => throw null; + public System.Diagnostics.DebuggableAttribute.DebuggingModes DebuggingFlags { get => throw null; } + [System.Flags] + public enum DebuggingModes + { + None = 0, + Default = 1, + IgnoreSymbolStoreSequencePoints = 2, + EnableEditAndContinue = 4, + DisableOptimizations = 256, + } + public bool IsJITOptimizerDisabled { get => throw null; } + public bool IsJITTrackingEnabled { get => throw null; } + } + public static class Debugger + { + public static void Break() => throw null; + public static string DefaultCategory; + public static bool IsAttached { get => throw null; } + public static bool IsLogging() => throw null; + public static bool Launch() => throw null; + public static void Log(int level, string category, string message) => throw null; + public static void NotifyOfCrossThreadDependency() => throw null; + } + public sealed class DebuggerBrowsableAttribute : System.Attribute + { + public DebuggerBrowsableAttribute(System.Diagnostics.DebuggerBrowsableState state) => throw null; + public System.Diagnostics.DebuggerBrowsableState State { get => throw null; } + } + public enum DebuggerBrowsableState + { + Never = 0, + Collapsed = 2, + RootHidden = 3, + } + public sealed class DebuggerDisplayAttribute : System.Attribute + { + public DebuggerDisplayAttribute(string value) => throw null; + public string Name { get => throw null; set { } } + public System.Type Target { get => throw null; set { } } + public string TargetTypeName { get => throw null; set { } } + public string Type { get => throw null; set { } } + public string Value { get => throw null; } + } + public sealed class DebuggerHiddenAttribute : System.Attribute + { + public DebuggerHiddenAttribute() => throw null; + } + public sealed class DebuggerNonUserCodeAttribute : System.Attribute + { + public DebuggerNonUserCodeAttribute() => throw null; + } + public sealed class DebuggerStepperBoundaryAttribute : System.Attribute + { + public DebuggerStepperBoundaryAttribute() => throw null; + } + public sealed class DebuggerStepThroughAttribute : System.Attribute + { + public DebuggerStepThroughAttribute() => throw null; + } + public sealed class DebuggerTypeProxyAttribute : System.Attribute + { + public DebuggerTypeProxyAttribute(string typeName) => throw null; + public DebuggerTypeProxyAttribute(System.Type type) => throw null; + public string ProxyTypeName { get => throw null; } + public System.Type Target { get => throw null; set { } } + public string TargetTypeName { get => throw null; set { } } + } + public sealed class DebuggerVisualizerAttribute : System.Attribute + { + public DebuggerVisualizerAttribute(string visualizerTypeName) => throw null; + public DebuggerVisualizerAttribute(string visualizerTypeName, string visualizerObjectSourceTypeName) => throw null; + public DebuggerVisualizerAttribute(string visualizerTypeName, System.Type visualizerObjectSource) => throw null; + public DebuggerVisualizerAttribute(System.Type visualizer) => throw null; + public DebuggerVisualizerAttribute(System.Type visualizer, string visualizerObjectSourceTypeName) => throw null; + public DebuggerVisualizerAttribute(System.Type visualizer, System.Type visualizerObjectSource) => throw null; + public string Description { get => throw null; set { } } + public System.Type Target { get => throw null; set { } } + public string TargetTypeName { get => throw null; set { } } + public string VisualizerObjectSourceTypeName { get => throw null; } + public string VisualizerTypeName { get => throw null; } + } + public sealed class StackTraceHiddenAttribute : System.Attribute + { + public StackTraceHiddenAttribute() => throw null; + } + public class Stopwatch + { + public Stopwatch() => throw null; + public System.TimeSpan Elapsed { get => throw null; } + public long ElapsedMilliseconds { get => throw null; } + public long ElapsedTicks { get => throw null; } + public static long Frequency; + public static System.TimeSpan GetElapsedTime(long startingTimestamp) => throw null; + public static System.TimeSpan GetElapsedTime(long startingTimestamp, long endingTimestamp) => throw null; + public static long GetTimestamp() => throw null; + public static bool IsHighResolution; + public bool IsRunning { get => throw null; } + public void Reset() => throw null; + public void Restart() => throw null; + public void Start() => throw null; + public static System.Diagnostics.Stopwatch StartNew() => throw null; + public void Stop() => throw null; + } + public sealed class UnreachableException : System.Exception + { + public UnreachableException() => throw null; + public UnreachableException(string message) => throw null; + public UnreachableException(string message, System.Exception innerException) => throw null; + } + } public class DivideByZeroException : System.ArithmeticException { public DivideByZeroException() => throw null; @@ -1942,198 +2853,196 @@ namespace System public DivideByZeroException(string message) => throw null; public DivideByZeroException(string message, System.Exception innerException) => throw null; } - - public struct Double : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators + public struct Double : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPoint, System.Numerics.ISignedNumber, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions, System.Numerics.IMinMaxValue { - static bool System.Numerics.IEqualityOperators.operator !=(double left, double right) => throw null; - static double System.Numerics.IModulusOperators.operator %(double left, double right) => throw null; - static double System.Numerics.IBitwiseOperators.operator &(double left, double right) => throw null; - static double System.Numerics.IMultiplyOperators.operator *(double left, double right) => throw null; - static double System.Numerics.IUnaryPlusOperators.operator +(double value) => throw null; - static double System.Numerics.IAdditionOperators.operator +(double left, double right) => throw null; - static double System.Numerics.IIncrementOperators.operator ++(double value) => throw null; - static double System.Numerics.IUnaryNegationOperators.operator -(double value) => throw null; - static double System.Numerics.ISubtractionOperators.operator -(double left, double right) => throw null; - static double System.Numerics.IDecrementOperators.operator --(double value) => throw null; - static double System.Numerics.IDivisionOperators.operator /(double left, double right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(double left, double right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(double left, double right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(double left, double right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(double left, double right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(double left, double right) => throw null; - public static double Abs(double value) => throw null; - public static double Acos(double x) => throw null; - public static double AcosPi(double x) => throw null; - public static double Acosh(double x) => throw null; + static double System.Numerics.INumberBase.Abs(double value) => throw null; + static double System.Numerics.ITrigonometricFunctions.Acos(double x) => throw null; + static double System.Numerics.IHyperbolicFunctions.Acosh(double x) => throw null; + static double System.Numerics.ITrigonometricFunctions.AcosPi(double x) => throw null; static double System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } static double System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static double Asin(double x) => throw null; - public static double AsinPi(double x) => throw null; - public static double Asinh(double x) => throw null; - public static double Atan(double x) => throw null; - public static double Atan2(double y, double x) => throw null; - public static double Atan2Pi(double y, double x) => throw null; - public static double AtanPi(double x) => throw null; - public static double Atanh(double x) => throw null; - public static double BitDecrement(double x) => throw null; - public static double BitIncrement(double x) => throw null; - public static double Cbrt(double x) => throw null; - public static double Ceiling(double x) => throw null; - public static double Clamp(double value, double min, double max) => throw null; + static double System.Numerics.ITrigonometricFunctions.Asin(double x) => throw null; + static double System.Numerics.IHyperbolicFunctions.Asinh(double x) => throw null; + static double System.Numerics.ITrigonometricFunctions.AsinPi(double x) => throw null; + static double System.Numerics.ITrigonometricFunctions.Atan(double x) => throw null; + static double System.Numerics.IFloatingPointIeee754.Atan2(double y, double x) => throw null; + static double System.Numerics.IFloatingPointIeee754.Atan2Pi(double y, double x) => throw null; + static double System.Numerics.IHyperbolicFunctions.Atanh(double x) => throw null; + static double System.Numerics.ITrigonometricFunctions.AtanPi(double x) => throw null; + static double System.Numerics.IFloatingPointIeee754.BitDecrement(double x) => throw null; + static double System.Numerics.IFloatingPointIeee754.BitIncrement(double x) => throw null; + static double System.Numerics.IRootFunctions.Cbrt(double x) => throw null; + static double System.Numerics.IFloatingPoint.Ceiling(double x) => throw null; + static double System.Numerics.INumber.Clamp(double value, double min, double max) => throw null; public int CompareTo(double value) => throw null; public int CompareTo(object value) => throw null; - public static double CopySign(double value, double sign) => throw null; - public static double Cos(double x) => throw null; - public static double CosPi(double x) => throw null; - public static double Cosh(double x) => throw null; + static double System.Numerics.INumber.CopySign(double value, double sign) => throw null; + static double System.Numerics.ITrigonometricFunctions.Cos(double x) => throw null; + static double System.Numerics.IHyperbolicFunctions.Cosh(double x) => throw null; + static double System.Numerics.ITrigonometricFunctions.CosPi(double x) => throw null; static double System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; static double System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; static double System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - // Stub generator skipped constructor - public const double E = default; + public static double E; static double System.Numerics.IFloatingPointConstants.E { get => throw null; } - public const double Epsilon = default; + public static double Epsilon; static double System.Numerics.IFloatingPointIeee754.Epsilon { get => throw null; } public bool Equals(double obj) => throw null; public override bool Equals(object obj) => throw null; - public static double Exp(double x) => throw null; - public static double Exp10(double x) => throw null; - public static double Exp10M1(double x) => throw null; - public static double Exp2(double x) => throw null; - public static double Exp2M1(double x) => throw null; - public static double ExpM1(double x) => throw null; - public static double Floor(double x) => throw null; - public static double FusedMultiplyAdd(double left, double right, double addend) => throw null; + static double System.Numerics.IExponentialFunctions.Exp(double x) => throw null; + static double System.Numerics.IExponentialFunctions.Exp10(double x) => throw null; + static double System.Numerics.IExponentialFunctions.Exp10M1(double x) => throw null; + static double System.Numerics.IExponentialFunctions.Exp2(double x) => throw null; + static double System.Numerics.IExponentialFunctions.Exp2M1(double x) => throw null; + static double System.Numerics.IExponentialFunctions.ExpM1(double x) => throw null; + static double System.Numerics.IFloatingPoint.Floor(double x) => throw null; + static double System.Numerics.IFloatingPointIeee754.FusedMultiplyAdd(double left, double right, double addend) => throw null; int System.Numerics.IFloatingPoint.GetExponentByteCount() => throw null; int System.Numerics.IFloatingPoint.GetExponentShortestBitLength() => throw null; public override int GetHashCode() => throw null; int System.Numerics.IFloatingPoint.GetSignificandBitLength() => throw null; int System.Numerics.IFloatingPoint.GetSignificandByteCount() => throw null; public System.TypeCode GetTypeCode() => throw null; - public static double Hypot(double x, double y) => throw null; - public static int ILogB(double x) => throw null; - public static double Ieee754Remainder(double left, double right) => throw null; - public static bool IsCanonical(double value) => throw null; - public static bool IsComplexNumber(double value) => throw null; - public static bool IsEvenInteger(double value) => throw null; - public static bool IsFinite(double d) => throw null; - public static bool IsImaginaryNumber(double value) => throw null; - public static bool IsInfinity(double d) => throw null; - public static bool IsInteger(double value) => throw null; - public static bool IsNaN(double d) => throw null; - public static bool IsNegative(double d) => throw null; - public static bool IsNegativeInfinity(double d) => throw null; - public static bool IsNormal(double d) => throw null; - public static bool IsOddInteger(double value) => throw null; - public static bool IsPositive(double value) => throw null; - public static bool IsPositiveInfinity(double d) => throw null; - public static bool IsPow2(double value) => throw null; - public static bool IsRealNumber(double value) => throw null; - public static bool IsSubnormal(double d) => throw null; - public static bool IsZero(double value) => throw null; - public static double Log(double x) => throw null; - public static double Log(double x, double newBase) => throw null; - public static double Log10(double x) => throw null; - public static double Log10P1(double x) => throw null; - public static double Log2(double value) => throw null; - public static double Log2P1(double x) => throw null; - public static double LogP1(double x) => throw null; - public static double Max(double x, double y) => throw null; - public static double MaxMagnitude(double x, double y) => throw null; - public static double MaxMagnitudeNumber(double x, double y) => throw null; - public static double MaxNumber(double x, double y) => throw null; - public const double MaxValue = default; + static double System.Numerics.IRootFunctions.Hypot(double x, double y) => throw null; + static double System.Numerics.IFloatingPointIeee754.Ieee754Remainder(double left, double right) => throw null; + static int System.Numerics.IFloatingPointIeee754.ILogB(double x) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(double value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(double value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(double value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(double d) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(double value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(double d) => throw null; + static bool System.Numerics.INumberBase.IsInteger(double value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(double d) => throw null; + static bool System.Numerics.INumberBase.IsNegative(double d) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(double d) => throw null; + static bool System.Numerics.INumberBase.IsNormal(double d) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(double value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(double value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(double d) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(double value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(double value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(double d) => throw null; + static bool System.Numerics.INumberBase.IsZero(double value) => throw null; + static double System.Numerics.ILogarithmicFunctions.Log(double x) => throw null; + static double System.Numerics.ILogarithmicFunctions.Log(double x, double newBase) => throw null; + static double System.Numerics.ILogarithmicFunctions.Log10(double x) => throw null; + static double System.Numerics.ILogarithmicFunctions.Log10P1(double x) => throw null; + static double System.Numerics.IBinaryNumber.Log2(double value) => throw null; + static double System.Numerics.ILogarithmicFunctions.Log2(double value) => throw null; + static double System.Numerics.ILogarithmicFunctions.Log2P1(double x) => throw null; + static double System.Numerics.ILogarithmicFunctions.LogP1(double x) => throw null; + static double System.Numerics.INumber.Max(double x, double y) => throw null; + static double System.Numerics.INumberBase.MaxMagnitude(double x, double y) => throw null; + static double System.Numerics.INumberBase.MaxMagnitudeNumber(double x, double y) => throw null; + static double System.Numerics.INumber.MaxNumber(double x, double y) => throw null; + public static double MaxValue; static double System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static double Min(double x, double y) => throw null; - public static double MinMagnitude(double x, double y) => throw null; - public static double MinMagnitudeNumber(double x, double y) => throw null; - public static double MinNumber(double x, double y) => throw null; - public const double MinValue = default; + static double System.Numerics.INumber.Min(double x, double y) => throw null; + static double System.Numerics.INumberBase.MinMagnitude(double x, double y) => throw null; + static double System.Numerics.INumberBase.MinMagnitudeNumber(double x, double y) => throw null; + static double System.Numerics.INumber.MinNumber(double x, double y) => throw null; + public static double MinValue; static double System.Numerics.IMinMaxValue.MinValue { get => throw null; } static double System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - public const double NaN = default; + public static double NaN; static double System.Numerics.IFloatingPointIeee754.NaN { get => throw null; } - public const double NegativeInfinity = default; + public static double NegativeInfinity; static double System.Numerics.IFloatingPointIeee754.NegativeInfinity { get => throw null; } static double System.Numerics.ISignedNumber.NegativeOne { get => throw null; } - public const double NegativeZero = default; + public static double NegativeZero; static double System.Numerics.IFloatingPointIeee754.NegativeZero { get => throw null; } static double System.Numerics.INumberBase.One { get => throw null; } - public static double Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static double Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static double System.Numerics.IAdditionOperators.operator +(double left, double right) => throw null; + static double System.Numerics.IBitwiseOperators.operator &(double left, double right) => throw null; + static double System.Numerics.IBitwiseOperators.operator |(double left, double right) => throw null; + static double System.Numerics.IDecrementOperators.operator --(double value) => throw null; + static double System.Numerics.IDivisionOperators.operator /(double left, double right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(double left, double right) => throw null; + static double System.Numerics.IBitwiseOperators.operator ^(double left, double right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(double left, double right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(double left, double right) => throw null; + static double System.Numerics.IIncrementOperators.operator ++(double value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(double left, double right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(double left, double right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(double left, double right) => throw null; + static double System.Numerics.IModulusOperators.operator %(double left, double right) => throw null; + static double System.Numerics.IMultiplyOperators.operator *(double left, double right) => throw null; + static double System.Numerics.IBitwiseOperators.operator ~(double value) => throw null; + static double System.Numerics.ISubtractionOperators.operator -(double left, double right) => throw null; + static double System.Numerics.IUnaryNegationOperators.operator -(double value) => throw null; + static double System.Numerics.IUnaryPlusOperators.operator +(double value) => throw null; + static double System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static double System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; public static double Parse(string s) => throw null; - public static double Parse(string s, System.IFormatProvider provider) => throw null; public static double Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static double Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public const double Pi = default; + static double System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static double System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + public static double Pi; static double System.Numerics.IFloatingPointConstants.Pi { get => throw null; } - public const double PositiveInfinity = default; + public static double PositiveInfinity; static double System.Numerics.IFloatingPointIeee754.PositiveInfinity { get => throw null; } - public static double Pow(double x, double y) => throw null; + static double System.Numerics.IPowerFunctions.Pow(double x, double y) => throw null; static int System.Numerics.INumberBase.Radix { get => throw null; } - public static double ReciprocalEstimate(double x) => throw null; - public static double ReciprocalSqrtEstimate(double x) => throw null; - public static double RootN(double x, int n) => throw null; - public static double Round(double x) => throw null; - public static double Round(double x, System.MidpointRounding mode) => throw null; - public static double Round(double x, int digits) => throw null; - public static double Round(double x, int digits, System.MidpointRounding mode) => throw null; - public static double ScaleB(double x, int n) => throw null; - public static int Sign(double value) => throw null; - public static double Sin(double x) => throw null; - public static (double, double) SinCos(double x) => throw null; - public static (double, double) SinCosPi(double x) => throw null; - public static double SinPi(double x) => throw null; - public static double Sinh(double x) => throw null; - public static double Sqrt(double x) => throw null; - public static double Tan(double x) => throw null; - public static double TanPi(double x) => throw null; - public static double Tanh(double x) => throw null; - public const double Tau = default; + static double System.Numerics.IFloatingPointIeee754.ReciprocalEstimate(double x) => throw null; + static double System.Numerics.IFloatingPointIeee754.ReciprocalSqrtEstimate(double x) => throw null; + static double System.Numerics.IRootFunctions.RootN(double x, int n) => throw null; + static double System.Numerics.IFloatingPoint.Round(double x) => throw null; + static double System.Numerics.IFloatingPoint.Round(double x, int digits) => throw null; + static double System.Numerics.IFloatingPoint.Round(double x, int digits, System.MidpointRounding mode) => throw null; + static double System.Numerics.IFloatingPoint.Round(double x, System.MidpointRounding mode) => throw null; + static double System.Numerics.IFloatingPointIeee754.ScaleB(double x, int n) => throw null; + static int System.Numerics.INumber.Sign(double value) => throw null; + static double System.Numerics.ITrigonometricFunctions.Sin(double x) => throw null; + static (double Sin, double Cos) System.Numerics.ITrigonometricFunctions.SinCos(double x) => throw null; + static (double SinPi, double CosPi) System.Numerics.ITrigonometricFunctions.SinCosPi(double x) => throw null; + static double System.Numerics.IHyperbolicFunctions.Sinh(double x) => throw null; + static double System.Numerics.ITrigonometricFunctions.SinPi(double x) => throw null; + static double System.Numerics.IRootFunctions.Sqrt(double x) => throw null; + static double System.Numerics.ITrigonometricFunctions.Tan(double x) => throw null; + static double System.Numerics.IHyperbolicFunctions.Tanh(double x) => throw null; + static double System.Numerics.ITrigonometricFunctions.TanPi(double x) => throw null; + public static double Tau; static double System.Numerics.IFloatingPointConstants.Tau { get => throw null; } bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static double Truncate(double x) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + static double System.Numerics.IFloatingPoint.Truncate(double x) => throw null; static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out double result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out double result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out double result) => throw null; static bool System.Numerics.INumberBase.TryConvertToChecked(double value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToSaturating(double value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToTruncating(double value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out double result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out double result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out double result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out double result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out double result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out double result) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out double result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out double result) => throw null; public static bool TryParse(string s, out double result) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteExponentBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out double result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out double result) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteExponentBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; static double System.Numerics.INumberBase.Zero { get => throw null; } - static double System.Numerics.IBitwiseOperators.operator ^(double left, double right) => throw null; - static double System.Numerics.IBitwiseOperators.operator |(double left, double right) => throw null; - static double System.Numerics.IBitwiseOperators.operator ~(double value) => throw null; } - public class DuplicateWaitObjectException : System.ArgumentException { public DuplicateWaitObjectException() => throw null; @@ -2142,7 +3051,6 @@ namespace System public DuplicateWaitObjectException(string message, System.Exception innerException) => throw null; public DuplicateWaitObjectException(string parameterName, string message) => throw null; } - public class EntryPointNotFoundException : System.TypeLoadException { public EntryPointNotFoundException() => throw null; @@ -2150,7 +3058,6 @@ namespace System public EntryPointNotFoundException(string message) => throw null; public EntryPointNotFoundException(string message, System.Exception inner) => throw null; } - public abstract class Enum : System.IComparable, System.IConvertible, System.IFormattable { public int CompareTo(object target) => throw null; @@ -2171,119 +3078,58 @@ namespace System public bool HasFlag(System.Enum flag) => throw null; public static bool IsDefined(System.Type enumType, object value) => throw null; public static bool IsDefined(TEnum value) where TEnum : System.Enum => throw null; - public static object Parse(System.Type enumType, System.ReadOnlySpan value) => throw null; - public static object Parse(System.Type enumType, System.ReadOnlySpan value, bool ignoreCase) => throw null; + public static object Parse(System.Type enumType, System.ReadOnlySpan value) => throw null; + public static object Parse(System.Type enumType, System.ReadOnlySpan value, bool ignoreCase) => throw null; public static object Parse(System.Type enumType, string value) => throw null; public static object Parse(System.Type enumType, string value, bool ignoreCase) => throw null; - public static TEnum Parse(System.ReadOnlySpan value) where TEnum : struct => throw null; - public static TEnum Parse(System.ReadOnlySpan value, bool ignoreCase) where TEnum : struct => throw null; + public static TEnum Parse(System.ReadOnlySpan value) where TEnum : struct => throw null; + public static TEnum Parse(System.ReadOnlySpan value, bool ignoreCase) where TEnum : struct => throw null; public static TEnum Parse(string value) where TEnum : struct => throw null; public static TEnum Parse(string value, bool ignoreCase) where TEnum : struct => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - public static object ToObject(System.Type enumType, System.Byte value) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + public static object ToObject(System.Type enumType, byte value) => throw null; + public static object ToObject(System.Type enumType, short value) => throw null; public static object ToObject(System.Type enumType, int value) => throw null; - public static object ToObject(System.Type enumType, System.Int64 value) => throw null; + public static object ToObject(System.Type enumType, long value) => throw null; public static object ToObject(System.Type enumType, object value) => throw null; - public static object ToObject(System.Type enumType, System.SByte value) => throw null; - public static object ToObject(System.Type enumType, System.Int16 value) => throw null; - public static object ToObject(System.Type enumType, System.UInt32 value) => throw null; - public static object ToObject(System.Type enumType, System.UInt64 value) => throw null; - public static object ToObject(System.Type enumType, System.UInt16 value) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + public static object ToObject(System.Type enumType, sbyte value) => throw null; + public static object ToObject(System.Type enumType, ushort value) => throw null; + public static object ToObject(System.Type enumType, uint value) => throw null; + public static object ToObject(System.Type enumType, ulong value) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static bool TryParse(System.Type enumType, System.ReadOnlySpan value, bool ignoreCase, out object result) => throw null; - public static bool TryParse(System.Type enumType, System.ReadOnlySpan value, out object result) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + public static bool TryParse(System.Type enumType, System.ReadOnlySpan value, bool ignoreCase, out object result) => throw null; + public static bool TryParse(System.Type enumType, System.ReadOnlySpan value, out object result) => throw null; public static bool TryParse(System.Type enumType, string value, bool ignoreCase, out object result) => throw null; public static bool TryParse(System.Type enumType, string value, out object result) => throw null; - public static bool TryParse(System.ReadOnlySpan value, bool ignoreCase, out TEnum result) where TEnum : struct => throw null; - public static bool TryParse(System.ReadOnlySpan value, out TEnum result) where TEnum : struct => throw null; + public static bool TryParse(System.ReadOnlySpan value, bool ignoreCase, out TEnum result) where TEnum : struct => throw null; + public static bool TryParse(System.ReadOnlySpan value, out TEnum result) where TEnum : struct => throw null; public static bool TryParse(string value, bool ignoreCase, out TEnum result) where TEnum : struct => throw null; public static bool TryParse(string value, out TEnum result) where TEnum : struct => throw null; } - public static class Environment { - public enum SpecialFolder : int - { - AdminTools = 48, - ApplicationData = 26, - CDBurning = 59, - CommonAdminTools = 47, - CommonApplicationData = 35, - CommonDesktopDirectory = 25, - CommonDocuments = 46, - CommonMusic = 53, - CommonOemLinks = 58, - CommonPictures = 54, - CommonProgramFiles = 43, - CommonProgramFilesX86 = 44, - CommonPrograms = 23, - CommonStartMenu = 22, - CommonStartup = 24, - CommonTemplates = 45, - CommonVideos = 55, - Cookies = 33, - Desktop = 0, - DesktopDirectory = 16, - Favorites = 6, - Fonts = 20, - History = 34, - InternetCache = 32, - LocalApplicationData = 28, - LocalizedResources = 57, - MyComputer = 17, - MyDocuments = 5, - MyMusic = 13, - MyPictures = 39, - MyVideos = 14, - NetworkShortcuts = 19, - Personal = 5, - PrinterShortcuts = 27, - ProgramFiles = 38, - ProgramFilesX86 = 42, - Programs = 2, - Recent = 8, - Resources = 56, - SendTo = 9, - StartMenu = 11, - Startup = 7, - System = 37, - SystemX86 = 41, - Templates = 21, - UserProfile = 40, - Windows = 36, - } - - - public enum SpecialFolderOption : int - { - Create = 32768, - DoNotVerify = 16384, - None = 0, - } - - public static string CommandLine { get => throw null; } - public static string CurrentDirectory { get => throw null; set => throw null; } + public static string CurrentDirectory { get => throw null; set { } } public static int CurrentManagedThreadId { get => throw null; } public static void Exit(int exitCode) => throw null; - public static int ExitCode { get => throw null; set => throw null; } + public static int ExitCode { get => throw null; set { } } public static string ExpandEnvironmentVariables(string name) => throw null; public static void FailFast(string message) => throw null; public static void FailFast(string message, System.Exception exception) => throw null; @@ -2302,67 +3148,116 @@ namespace System public static string NewLine { get => throw null; } public static System.OperatingSystem OSVersion { get => throw null; } public static int ProcessId { get => throw null; } - public static string ProcessPath { get => throw null; } public static int ProcessorCount { get => throw null; } + public static string ProcessPath { get => throw null; } public static void SetEnvironmentVariable(string variable, string value) => throw null; public static void SetEnvironmentVariable(string variable, string value, System.EnvironmentVariableTarget target) => throw null; + public enum SpecialFolder + { + Desktop = 0, + Programs = 2, + MyDocuments = 5, + Personal = 5, + Favorites = 6, + Startup = 7, + Recent = 8, + SendTo = 9, + StartMenu = 11, + MyMusic = 13, + MyVideos = 14, + DesktopDirectory = 16, + MyComputer = 17, + NetworkShortcuts = 19, + Fonts = 20, + Templates = 21, + CommonStartMenu = 22, + CommonPrograms = 23, + CommonStartup = 24, + CommonDesktopDirectory = 25, + ApplicationData = 26, + PrinterShortcuts = 27, + LocalApplicationData = 28, + InternetCache = 32, + Cookies = 33, + History = 34, + CommonApplicationData = 35, + Windows = 36, + System = 37, + ProgramFiles = 38, + MyPictures = 39, + UserProfile = 40, + SystemX86 = 41, + ProgramFilesX86 = 42, + CommonProgramFiles = 43, + CommonProgramFilesX86 = 44, + CommonTemplates = 45, + CommonDocuments = 46, + CommonAdminTools = 47, + AdminTools = 48, + CommonMusic = 53, + CommonPictures = 54, + CommonVideos = 55, + Resources = 56, + LocalizedResources = 57, + CommonOemLinks = 58, + CDBurning = 59, + } + public enum SpecialFolderOption + { + None = 0, + DoNotVerify = 16384, + Create = 32768, + } public static string StackTrace { get => throw null; } public static string SystemDirectory { get => throw null; } public static int SystemPageSize { get => throw null; } public static int TickCount { get => throw null; } - public static System.Int64 TickCount64 { get => throw null; } + public static long TickCount64 { get => throw null; } public static string UserDomainName { get => throw null; } public static bool UserInteractive { get => throw null; } public static string UserName { get => throw null; } public static System.Version Version { get => throw null; } - public static System.Int64 WorkingSet { get => throw null; } + public static long WorkingSet { get => throw null; } } - - public enum EnvironmentVariableTarget : int + public enum EnvironmentVariableTarget { - Machine = 2, Process = 0, User = 1, + Machine = 2, } - public class EventArgs { - public static System.EventArgs Empty; public EventArgs() => throw null; + public static System.EventArgs Empty; } - public delegate void EventHandler(object sender, System.EventArgs e); - public delegate void EventHandler(object sender, TEventArgs e); - public class Exception : System.Runtime.Serialization.ISerializable { - public virtual System.Collections.IDictionary Data { get => throw null; } public Exception() => throw null; protected Exception(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public Exception(string message) => throw null; public Exception(string message, System.Exception innerException) => throw null; + public virtual System.Collections.IDictionary Data { get => throw null; } public virtual System.Exception GetBaseException() => throw null; public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public System.Type GetType() => throw null; - public int HResult { get => throw null; set => throw null; } - public virtual string HelpLink { get => throw null; set => throw null; } + public virtual string HelpLink { get => throw null; set { } } + public int HResult { get => throw null; set { } } public System.Exception InnerException { get => throw null; } public virtual string Message { get => throw null; } - protected event System.EventHandler SerializeObjectState; - public virtual string Source { get => throw null; set => throw null; } + protected event System.EventHandler SerializeObjectState { add { } remove { } } + public virtual string Source { get => throw null; set { } } public virtual string StackTrace { get => throw null; } public System.Reflection.MethodBase TargetSite { get => throw null; } public override string ToString() => throw null; } - - public class ExecutionEngineException : System.SystemException + public sealed class ExecutionEngineException : System.SystemException { public ExecutionEngineException() => throw null; public ExecutionEngineException(string message) => throw null; public ExecutionEngineException(string message, System.Exception innerException) => throw null; } - public class FieldAccessException : System.MemberAccessException { public FieldAccessException() => throw null; @@ -2370,17 +3265,14 @@ namespace System public FieldAccessException(string message) => throw null; public FieldAccessException(string message, System.Exception inner) => throw null; } - public class FileStyleUriParser : System.UriParser { public FileStyleUriParser() => throw null; } - public class FlagsAttribute : System.Attribute { public FlagsAttribute() => throw null; } - public class FormatException : System.SystemException { public FormatException() => throw null; @@ -2388,63 +3280,43 @@ namespace System public FormatException(string message) => throw null; public FormatException(string message, System.Exception innerException) => throw null; } - public abstract class FormattableString : System.IFormattable { public abstract int ArgumentCount { get; } + protected FormattableString() => throw null; public static string CurrentCulture(System.FormattableString formattable) => throw null; public abstract string Format { get; } - protected FormattableString() => throw null; public abstract object GetArgument(int index); public abstract object[] GetArguments(); public static string Invariant(System.FormattableString formattable) => throw null; + string System.IFormattable.ToString(string ignored, System.IFormatProvider formatProvider) => throw null; public override string ToString() => throw null; public abstract string ToString(System.IFormatProvider formatProvider); - string System.IFormattable.ToString(string ignored, System.IFormatProvider formatProvider) => throw null; } - public class FtpStyleUriParser : System.UriParser { public FtpStyleUriParser() => throw null; } - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4); - - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3); - - public delegate TResult Func(T1 arg1, T2 arg2); - - public delegate TResult Func(T arg); - public delegate TResult Func(); - + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16); + public delegate TResult Func(T arg); + public delegate TResult Func(T1 arg1, T2 arg2); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8); public static class GC { - public static void AddMemoryPressure(System.Int64 bytesAllocated) => throw null; + public static void AddMemoryPressure(long bytesAllocated) => throw null; public static T[] AllocateArray(int length, bool pinned = default(bool)) => throw null; public static T[] AllocateUninitializedArray(int length, bool pinned = default(bool)) => throw null; public static void CancelFullGCNotification() => throw null; @@ -2455,202 +3327,1050 @@ namespace System public static void Collect(int generation, System.GCCollectionMode mode, bool blocking, bool compacting) => throw null; public static int CollectionCount(int generation) => throw null; public static void EndNoGCRegion() => throw null; - public static System.Int64 GetAllocatedBytesForCurrentThread() => throw null; + public static long GetAllocatedBytesForCurrentThread() => throw null; public static System.Collections.Generic.IReadOnlyDictionary GetConfigurationVariables() => throw null; public static System.GCMemoryInfo GetGCMemoryInfo() => throw null; public static System.GCMemoryInfo GetGCMemoryInfo(System.GCKind kind) => throw null; - public static int GetGeneration(System.WeakReference wo) => throw null; public static int GetGeneration(object obj) => throw null; - public static System.Int64 GetTotalAllocatedBytes(bool precise = default(bool)) => throw null; - public static System.Int64 GetTotalMemory(bool forceFullCollection) => throw null; + public static int GetGeneration(System.WeakReference wo) => throw null; + public static long GetTotalAllocatedBytes(bool precise = default(bool)) => throw null; + public static long GetTotalMemory(bool forceFullCollection) => throw null; public static System.TimeSpan GetTotalPauseDuration() => throw null; public static void KeepAlive(object obj) => throw null; public static int MaxGeneration { get => throw null; } - public static void ReRegisterForFinalize(object obj) => throw null; public static void RegisterForFullGCNotification(int maxGenerationThreshold, int largeObjectHeapThreshold) => throw null; - public static void RemoveMemoryPressure(System.Int64 bytesAllocated) => throw null; + public static void RemoveMemoryPressure(long bytesAllocated) => throw null; + public static void ReRegisterForFinalize(object obj) => throw null; public static void SuppressFinalize(object obj) => throw null; - public static bool TryStartNoGCRegion(System.Int64 totalSize) => throw null; - public static bool TryStartNoGCRegion(System.Int64 totalSize, bool disallowFullBlockingGC) => throw null; - public static bool TryStartNoGCRegion(System.Int64 totalSize, System.Int64 lohSize) => throw null; - public static bool TryStartNoGCRegion(System.Int64 totalSize, System.Int64 lohSize, bool disallowFullBlockingGC) => throw null; + public static bool TryStartNoGCRegion(long totalSize) => throw null; + public static bool TryStartNoGCRegion(long totalSize, bool disallowFullBlockingGC) => throw null; + public static bool TryStartNoGCRegion(long totalSize, long lohSize) => throw null; + public static bool TryStartNoGCRegion(long totalSize, long lohSize, bool disallowFullBlockingGC) => throw null; public static System.GCNotificationStatus WaitForFullGCApproach() => throw null; - public static System.GCNotificationStatus WaitForFullGCApproach(System.TimeSpan timeout) => throw null; public static System.GCNotificationStatus WaitForFullGCApproach(int millisecondsTimeout) => throw null; + public static System.GCNotificationStatus WaitForFullGCApproach(System.TimeSpan timeout) => throw null; public static System.GCNotificationStatus WaitForFullGCComplete() => throw null; - public static System.GCNotificationStatus WaitForFullGCComplete(System.TimeSpan timeout) => throw null; public static System.GCNotificationStatus WaitForFullGCComplete(int millisecondsTimeout) => throw null; + public static System.GCNotificationStatus WaitForFullGCComplete(System.TimeSpan timeout) => throw null; public static void WaitForPendingFinalizers() => throw null; } - - public enum GCCollectionMode : int + public enum GCCollectionMode { - Aggressive = 3, Default = 0, Forced = 1, Optimized = 2, + Aggressive = 3, } - public struct GCGenerationInfo { - public System.Int64 FragmentationAfterBytes { get => throw null; } - public System.Int64 FragmentationBeforeBytes { get => throw null; } - // Stub generator skipped constructor - public System.Int64 SizeAfterBytes { get => throw null; } - public System.Int64 SizeBeforeBytes { get => throw null; } + public long FragmentationAfterBytes { get => throw null; } + public long FragmentationBeforeBytes { get => throw null; } + public long SizeAfterBytes { get => throw null; } + public long SizeBeforeBytes { get => throw null; } } - - public enum GCKind : int + public enum GCKind { Any = 0, - Background = 3, Ephemeral = 1, FullBlocking = 2, + Background = 3, } - public struct GCMemoryInfo { public bool Compacted { get => throw null; } public bool Concurrent { get => throw null; } - public System.Int64 FinalizationPendingCount { get => throw null; } - public System.Int64 FragmentedBytes { get => throw null; } - // Stub generator skipped constructor + public long FinalizationPendingCount { get => throw null; } + public long FragmentedBytes { get => throw null; } public int Generation { get => throw null; } public System.ReadOnlySpan GenerationInfo { get => throw null; } - public System.Int64 HeapSizeBytes { get => throw null; } - public System.Int64 HighMemoryLoadThresholdBytes { get => throw null; } - public System.Int64 Index { get => throw null; } - public System.Int64 MemoryLoadBytes { get => throw null; } + public long HeapSizeBytes { get => throw null; } + public long HighMemoryLoadThresholdBytes { get => throw null; } + public long Index { get => throw null; } + public long MemoryLoadBytes { get => throw null; } public System.ReadOnlySpan PauseDurations { get => throw null; } public double PauseTimePercentage { get => throw null; } - public System.Int64 PinnedObjectsCount { get => throw null; } - public System.Int64 PromotedBytes { get => throw null; } - public System.Int64 TotalAvailableMemoryBytes { get => throw null; } - public System.Int64 TotalCommittedBytes { get => throw null; } + public long PinnedObjectsCount { get => throw null; } + public long PromotedBytes { get => throw null; } + public long TotalAvailableMemoryBytes { get => throw null; } + public long TotalCommittedBytes { get => throw null; } } - - public enum GCNotificationStatus : int + public enum GCNotificationStatus { - Canceled = 2, - Failed = 1, - NotApplicable = 4, Succeeded = 0, + Failed = 1, + Canceled = 2, Timeout = 3, + NotApplicable = 4, } - public class GenericUriParser : System.UriParser { public GenericUriParser(System.GenericUriParserOptions options) => throw null; } - [System.Flags] - public enum GenericUriParserOptions : int + public enum GenericUriParserOptions { - AllowEmptyAuthority = 2, Default = 0, - DontCompressPath = 128, - DontConvertPathBackslashes = 64, - DontUnescapePathDotsAndSlashes = 256, GenericAuthority = 1, - Idn = 512, - IriParsing = 1024, - NoFragment = 32, + AllowEmptyAuthority = 2, + NoUserInfo = 4, NoPort = 8, NoQuery = 16, - NoUserInfo = 4, + NoFragment = 32, + DontConvertPathBackslashes = 64, + DontCompressPath = 128, + DontUnescapePathDotsAndSlashes = 256, + Idn = 512, + IriParsing = 1024, + } + namespace Globalization + { + public abstract class Calendar : System.ICloneable + { + public virtual System.DateTime AddDays(System.DateTime time, int days) => throw null; + public virtual System.DateTime AddHours(System.DateTime time, int hours) => throw null; + public virtual System.DateTime AddMilliseconds(System.DateTime time, double milliseconds) => throw null; + public virtual System.DateTime AddMinutes(System.DateTime time, int minutes) => throw null; + public abstract System.DateTime AddMonths(System.DateTime time, int months); + public virtual System.DateTime AddSeconds(System.DateTime time, int seconds) => throw null; + public virtual System.DateTime AddWeeks(System.DateTime time, int weeks) => throw null; + public abstract System.DateTime AddYears(System.DateTime time, int years); + public virtual System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public virtual object Clone() => throw null; + protected Calendar() => throw null; + public static int CurrentEra; + protected virtual int DaysInYearBeforeMinSupportedYear { get => throw null; } + public abstract int[] Eras { get; } + public abstract int GetDayOfMonth(System.DateTime time); + public abstract System.DayOfWeek GetDayOfWeek(System.DateTime time); + public abstract int GetDayOfYear(System.DateTime time); + public virtual int GetDaysInMonth(int year, int month) => throw null; + public abstract int GetDaysInMonth(int year, int month, int era); + public virtual int GetDaysInYear(int year) => throw null; + public abstract int GetDaysInYear(int year, int era); + public abstract int GetEra(System.DateTime time); + public virtual int GetHour(System.DateTime time) => throw null; + public virtual int GetLeapMonth(int year) => throw null; + public virtual int GetLeapMonth(int year, int era) => throw null; + public virtual double GetMilliseconds(System.DateTime time) => throw null; + public virtual int GetMinute(System.DateTime time) => throw null; + public abstract int GetMonth(System.DateTime time); + public virtual int GetMonthsInYear(int year) => throw null; + public abstract int GetMonthsInYear(int year, int era); + public virtual int GetSecond(System.DateTime time) => throw null; + public virtual int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) => throw null; + public abstract int GetYear(System.DateTime time); + public virtual bool IsLeapDay(int year, int month, int day) => throw null; + public abstract bool IsLeapDay(int year, int month, int day, int era); + public virtual bool IsLeapMonth(int year, int month) => throw null; + public abstract bool IsLeapMonth(int year, int month, int era); + public virtual bool IsLeapYear(int year) => throw null; + public abstract bool IsLeapYear(int year, int era); + public bool IsReadOnly { get => throw null; } + public virtual System.DateTime MaxSupportedDateTime { get => throw null; } + public virtual System.DateTime MinSupportedDateTime { get => throw null; } + public static System.Globalization.Calendar ReadOnly(System.Globalization.Calendar calendar) => throw null; + public virtual System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond) => throw null; + public abstract System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era); + public virtual int ToFourDigitYear(int year) => throw null; + public virtual int TwoDigitYearMax { get => throw null; set { } } + } + public enum CalendarAlgorithmType + { + Unknown = 0, + SolarCalendar = 1, + LunarCalendar = 2, + LunisolarCalendar = 3, + } + public enum CalendarWeekRule + { + FirstDay = 0, + FirstFullWeek = 1, + FirstFourDayWeek = 2, + } + public static class CharUnicodeInfo + { + public static int GetDecimalDigitValue(char ch) => throw null; + public static int GetDecimalDigitValue(string s, int index) => throw null; + public static int GetDigitValue(char ch) => throw null; + public static int GetDigitValue(string s, int index) => throw null; + public static double GetNumericValue(char ch) => throw null; + public static double GetNumericValue(string s, int index) => throw null; + public static System.Globalization.UnicodeCategory GetUnicodeCategory(char ch) => throw null; + public static System.Globalization.UnicodeCategory GetUnicodeCategory(int codePoint) => throw null; + public static System.Globalization.UnicodeCategory GetUnicodeCategory(string s, int index) => throw null; + } + public class ChineseLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar + { + public static int ChineseEra; + public ChineseLunisolarCalendar() => throw null; + protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } + public override int[] Eras { get => throw null; } + public override int GetEra(System.DateTime time) => throw null; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + } + public sealed class CompareInfo : System.Runtime.Serialization.IDeserializationCallback + { + public int Compare(System.ReadOnlySpan string1, System.ReadOnlySpan string2, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; + public int Compare(string string1, int offset1, int length1, string string2, int offset2, int length2) => throw null; + public int Compare(string string1, int offset1, int length1, string string2, int offset2, int length2, System.Globalization.CompareOptions options) => throw null; + public int Compare(string string1, int offset1, string string2, int offset2) => throw null; + public int Compare(string string1, int offset1, string string2, int offset2, System.Globalization.CompareOptions options) => throw null; + public int Compare(string string1, string string2) => throw null; + public int Compare(string string1, string string2, System.Globalization.CompareOptions options) => throw null; + public override bool Equals(object value) => throw null; + public static System.Globalization.CompareInfo GetCompareInfo(int culture) => throw null; + public static System.Globalization.CompareInfo GetCompareInfo(int culture, System.Reflection.Assembly assembly) => throw null; + public static System.Globalization.CompareInfo GetCompareInfo(string name) => throw null; + public static System.Globalization.CompareInfo GetCompareInfo(string name, System.Reflection.Assembly assembly) => throw null; + public override int GetHashCode() => throw null; + public int GetHashCode(System.ReadOnlySpan source, System.Globalization.CompareOptions options) => throw null; + public int GetHashCode(string source, System.Globalization.CompareOptions options) => throw null; + public int GetSortKey(System.ReadOnlySpan source, System.Span destination, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; + public System.Globalization.SortKey GetSortKey(string source) => throw null; + public System.Globalization.SortKey GetSortKey(string source, System.Globalization.CompareOptions options) => throw null; + public int GetSortKeyLength(System.ReadOnlySpan source, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; + public int IndexOf(System.ReadOnlySpan source, System.ReadOnlySpan value, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; + public int IndexOf(System.ReadOnlySpan source, System.ReadOnlySpan value, System.Globalization.CompareOptions options, out int matchLength) => throw null; + public int IndexOf(System.ReadOnlySpan source, System.Text.Rune value, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; + public int IndexOf(string source, char value) => throw null; + public int IndexOf(string source, char value, System.Globalization.CompareOptions options) => throw null; + public int IndexOf(string source, char value, int startIndex) => throw null; + public int IndexOf(string source, char value, int startIndex, System.Globalization.CompareOptions options) => throw null; + public int IndexOf(string source, char value, int startIndex, int count) => throw null; + public int IndexOf(string source, char value, int startIndex, int count, System.Globalization.CompareOptions options) => throw null; + public int IndexOf(string source, string value) => throw null; + public int IndexOf(string source, string value, System.Globalization.CompareOptions options) => throw null; + public int IndexOf(string source, string value, int startIndex) => throw null; + public int IndexOf(string source, string value, int startIndex, System.Globalization.CompareOptions options) => throw null; + public int IndexOf(string source, string value, int startIndex, int count) => throw null; + public int IndexOf(string source, string value, int startIndex, int count, System.Globalization.CompareOptions options) => throw null; + public bool IsPrefix(System.ReadOnlySpan source, System.ReadOnlySpan prefix, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; + public bool IsPrefix(System.ReadOnlySpan source, System.ReadOnlySpan prefix, System.Globalization.CompareOptions options, out int matchLength) => throw null; + public bool IsPrefix(string source, string prefix) => throw null; + public bool IsPrefix(string source, string prefix, System.Globalization.CompareOptions options) => throw null; + public static bool IsSortable(char ch) => throw null; + public static bool IsSortable(System.ReadOnlySpan text) => throw null; + public static bool IsSortable(string text) => throw null; + public static bool IsSortable(System.Text.Rune value) => throw null; + public bool IsSuffix(System.ReadOnlySpan source, System.ReadOnlySpan suffix, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; + public bool IsSuffix(System.ReadOnlySpan source, System.ReadOnlySpan suffix, System.Globalization.CompareOptions options, out int matchLength) => throw null; + public bool IsSuffix(string source, string suffix) => throw null; + public bool IsSuffix(string source, string suffix, System.Globalization.CompareOptions options) => throw null; + public int LastIndexOf(System.ReadOnlySpan source, System.ReadOnlySpan value, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; + public int LastIndexOf(System.ReadOnlySpan source, System.ReadOnlySpan value, System.Globalization.CompareOptions options, out int matchLength) => throw null; + public int LastIndexOf(System.ReadOnlySpan source, System.Text.Rune value, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; + public int LastIndexOf(string source, char value) => throw null; + public int LastIndexOf(string source, char value, System.Globalization.CompareOptions options) => throw null; + public int LastIndexOf(string source, char value, int startIndex) => throw null; + public int LastIndexOf(string source, char value, int startIndex, System.Globalization.CompareOptions options) => throw null; + public int LastIndexOf(string source, char value, int startIndex, int count) => throw null; + public int LastIndexOf(string source, char value, int startIndex, int count, System.Globalization.CompareOptions options) => throw null; + public int LastIndexOf(string source, string value) => throw null; + public int LastIndexOf(string source, string value, System.Globalization.CompareOptions options) => throw null; + public int LastIndexOf(string source, string value, int startIndex) => throw null; + public int LastIndexOf(string source, string value, int startIndex, System.Globalization.CompareOptions options) => throw null; + public int LastIndexOf(string source, string value, int startIndex, int count) => throw null; + public int LastIndexOf(string source, string value, int startIndex, int count, System.Globalization.CompareOptions options) => throw null; + public int LCID { get => throw null; } + public string Name { get => throw null; } + void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; + public override string ToString() => throw null; + public System.Globalization.SortVersion Version { get => throw null; } + } + [System.Flags] + public enum CompareOptions + { + None = 0, + IgnoreCase = 1, + IgnoreNonSpace = 2, + IgnoreSymbols = 4, + IgnoreKanaType = 8, + IgnoreWidth = 16, + OrdinalIgnoreCase = 268435456, + StringSort = 536870912, + Ordinal = 1073741824, + } + public class CultureInfo : System.ICloneable, System.IFormatProvider + { + public virtual System.Globalization.Calendar Calendar { get => throw null; } + public void ClearCachedData() => throw null; + public virtual object Clone() => throw null; + public virtual System.Globalization.CompareInfo CompareInfo { get => throw null; } + public static System.Globalization.CultureInfo CreateSpecificCulture(string name) => throw null; + public CultureInfo(int culture) => throw null; + public CultureInfo(int culture, bool useUserOverride) => throw null; + public CultureInfo(string name) => throw null; + public CultureInfo(string name, bool useUserOverride) => throw null; + public System.Globalization.CultureTypes CultureTypes { get => throw null; } + public static System.Globalization.CultureInfo CurrentCulture { get => throw null; set { } } + public static System.Globalization.CultureInfo CurrentUICulture { get => throw null; set { } } + public virtual System.Globalization.DateTimeFormatInfo DateTimeFormat { get => throw null; set { } } + public static System.Globalization.CultureInfo DefaultThreadCurrentCulture { get => throw null; set { } } + public static System.Globalization.CultureInfo DefaultThreadCurrentUICulture { get => throw null; set { } } + public virtual string DisplayName { get => throw null; } + public virtual string EnglishName { get => throw null; } + public override bool Equals(object value) => throw null; + public System.Globalization.CultureInfo GetConsoleFallbackUICulture() => throw null; + public static System.Globalization.CultureInfo GetCultureInfo(int culture) => throw null; + public static System.Globalization.CultureInfo GetCultureInfo(string name) => throw null; + public static System.Globalization.CultureInfo GetCultureInfo(string name, bool predefinedOnly) => throw null; + public static System.Globalization.CultureInfo GetCultureInfo(string name, string altName) => throw null; + public static System.Globalization.CultureInfo GetCultureInfoByIetfLanguageTag(string name) => throw null; + public static System.Globalization.CultureInfo[] GetCultures(System.Globalization.CultureTypes types) => throw null; + public virtual object GetFormat(System.Type formatType) => throw null; + public override int GetHashCode() => throw null; + public string IetfLanguageTag { get => throw null; } + public static System.Globalization.CultureInfo InstalledUICulture { get => throw null; } + public static System.Globalization.CultureInfo InvariantCulture { get => throw null; } + public virtual bool IsNeutralCulture { get => throw null; } + public bool IsReadOnly { get => throw null; } + public virtual int KeyboardLayoutId { get => throw null; } + public virtual int LCID { get => throw null; } + public virtual string Name { get => throw null; } + public virtual string NativeName { get => throw null; } + public virtual System.Globalization.NumberFormatInfo NumberFormat { get => throw null; set { } } + public virtual System.Globalization.Calendar[] OptionalCalendars { get => throw null; } + public virtual System.Globalization.CultureInfo Parent { get => throw null; } + public static System.Globalization.CultureInfo ReadOnly(System.Globalization.CultureInfo ci) => throw null; + public virtual System.Globalization.TextInfo TextInfo { get => throw null; } + public virtual string ThreeLetterISOLanguageName { get => throw null; } + public virtual string ThreeLetterWindowsLanguageName { get => throw null; } + public override string ToString() => throw null; + public virtual string TwoLetterISOLanguageName { get => throw null; } + public bool UseUserOverride { get => throw null; } + } + public class CultureNotFoundException : System.ArgumentException + { + public CultureNotFoundException() => throw null; + protected CultureNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public CultureNotFoundException(string message) => throw null; + public CultureNotFoundException(string message, System.Exception innerException) => throw null; + public CultureNotFoundException(string message, int invalidCultureId, System.Exception innerException) => throw null; + public CultureNotFoundException(string paramName, int invalidCultureId, string message) => throw null; + public CultureNotFoundException(string paramName, string message) => throw null; + public CultureNotFoundException(string message, string invalidCultureName, System.Exception innerException) => throw null; + public CultureNotFoundException(string paramName, string invalidCultureName, string message) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public virtual int? InvalidCultureId { get => throw null; } + public virtual string InvalidCultureName { get => throw null; } + public override string Message { get => throw null; } + } + [System.Flags] + public enum CultureTypes + { + NeutralCultures = 1, + SpecificCultures = 2, + InstalledWin32Cultures = 4, + AllCultures = 7, + UserCustomCulture = 8, + ReplacementCultures = 16, + WindowsOnlyCultures = 32, + FrameworkCultures = 64, + } + public sealed class DateTimeFormatInfo : System.ICloneable, System.IFormatProvider + { + public string[] AbbreviatedDayNames { get => throw null; set { } } + public string[] AbbreviatedMonthGenitiveNames { get => throw null; set { } } + public string[] AbbreviatedMonthNames { get => throw null; set { } } + public string AMDesignator { get => throw null; set { } } + public System.Globalization.Calendar Calendar { get => throw null; set { } } + public System.Globalization.CalendarWeekRule CalendarWeekRule { get => throw null; set { } } + public object Clone() => throw null; + public DateTimeFormatInfo() => throw null; + public static System.Globalization.DateTimeFormatInfo CurrentInfo { get => throw null; } + public string DateSeparator { get => throw null; set { } } + public string[] DayNames { get => throw null; set { } } + public System.DayOfWeek FirstDayOfWeek { get => throw null; set { } } + public string FullDateTimePattern { get => throw null; set { } } + public string GetAbbreviatedDayName(System.DayOfWeek dayofweek) => throw null; + public string GetAbbreviatedEraName(int era) => throw null; + public string GetAbbreviatedMonthName(int month) => throw null; + public string[] GetAllDateTimePatterns() => throw null; + public string[] GetAllDateTimePatterns(char format) => throw null; + public string GetDayName(System.DayOfWeek dayofweek) => throw null; + public int GetEra(string eraName) => throw null; + public string GetEraName(int era) => throw null; + public object GetFormat(System.Type formatType) => throw null; + public static System.Globalization.DateTimeFormatInfo GetInstance(System.IFormatProvider provider) => throw null; + public string GetMonthName(int month) => throw null; + public string GetShortestDayName(System.DayOfWeek dayOfWeek) => throw null; + public static System.Globalization.DateTimeFormatInfo InvariantInfo { get => throw null; } + public bool IsReadOnly { get => throw null; } + public string LongDatePattern { get => throw null; set { } } + public string LongTimePattern { get => throw null; set { } } + public string MonthDayPattern { get => throw null; set { } } + public string[] MonthGenitiveNames { get => throw null; set { } } + public string[] MonthNames { get => throw null; set { } } + public string NativeCalendarName { get => throw null; } + public string PMDesignator { get => throw null; set { } } + public static System.Globalization.DateTimeFormatInfo ReadOnly(System.Globalization.DateTimeFormatInfo dtfi) => throw null; + public string RFC1123Pattern { get => throw null; } + public void SetAllDateTimePatterns(string[] patterns, char format) => throw null; + public string ShortDatePattern { get => throw null; set { } } + public string[] ShortestDayNames { get => throw null; set { } } + public string ShortTimePattern { get => throw null; set { } } + public string SortableDateTimePattern { get => throw null; } + public string TimeSeparator { get => throw null; set { } } + public string UniversalSortableDateTimePattern { get => throw null; } + public string YearMonthPattern { get => throw null; set { } } + } + [System.Flags] + public enum DateTimeStyles + { + None = 0, + AllowLeadingWhite = 1, + AllowTrailingWhite = 2, + AllowInnerWhite = 4, + AllowWhiteSpaces = 7, + NoCurrentDateDefault = 8, + AdjustToUniversal = 16, + AssumeLocal = 32, + AssumeUniversal = 64, + RoundtripKind = 128, + } + public class DaylightTime + { + public DaylightTime(System.DateTime start, System.DateTime end, System.TimeSpan delta) => throw null; + public System.TimeSpan Delta { get => throw null; } + public System.DateTime End { get => throw null; } + public System.DateTime Start { get => throw null; } + } + public enum DigitShapes + { + Context = 0, + None = 1, + NativeNational = 2, + } + public abstract class EastAsianLunisolarCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public int GetCelestialStem(int sexagenaryYear) => throw null; + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public virtual int GetSexagenaryYear(System.DateTime time) => throw null; + public int GetTerrestrialBranch(int sexagenaryYear) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + } + public static partial class GlobalizationExtensions + { + public static System.StringComparer GetStringComparer(this System.Globalization.CompareInfo compareInfo, System.Globalization.CompareOptions options) => throw null; + } + public class GregorianCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public static int ADEra; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public virtual System.Globalization.GregorianCalendarTypes CalendarType { get => throw null; set { } } + public GregorianCalendar() => throw null; + public GregorianCalendar(System.Globalization.GregorianCalendarTypes type) => throw null; + public override int[] Eras { get => throw null; } + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetEra(System.DateTime time) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + } + public enum GregorianCalendarTypes + { + Localized = 1, + USEnglish = 2, + MiddleEastFrench = 9, + Arabic = 10, + TransliteratedEnglish = 11, + TransliteratedFrench = 12, + } + public class HebrewCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public HebrewCalendar() => throw null; + public override int[] Eras { get => throw null; } + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetEra(System.DateTime time) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public static int HebrewEra; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + } + public class HijriCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public HijriCalendar() => throw null; + protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } + public override int[] Eras { get => throw null; } + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetEra(System.DateTime time) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public int HijriAdjustment { get => throw null; set { } } + public static int HijriEra; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + } + public sealed class IdnMapping + { + public bool AllowUnassigned { get => throw null; set { } } + public IdnMapping() => throw null; + public override bool Equals(object obj) => throw null; + public string GetAscii(string unicode) => throw null; + public string GetAscii(string unicode, int index) => throw null; + public string GetAscii(string unicode, int index, int count) => throw null; + public override int GetHashCode() => throw null; + public string GetUnicode(string ascii) => throw null; + public string GetUnicode(string ascii, int index) => throw null; + public string GetUnicode(string ascii, int index, int count) => throw null; + public bool UseStd3AsciiRules { get => throw null; set { } } + } + public static class ISOWeek + { + public static int GetWeekOfYear(System.DateTime date) => throw null; + public static int GetWeeksInYear(int year) => throw null; + public static int GetYear(System.DateTime date) => throw null; + public static System.DateTime GetYearEnd(int year) => throw null; + public static System.DateTime GetYearStart(int year) => throw null; + public static System.DateTime ToDateTime(int year, int week, System.DayOfWeek dayOfWeek) => throw null; + } + public class JapaneseCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public JapaneseCalendar() => throw null; + public override int[] Eras { get => throw null; } + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetEra(System.DateTime time) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + } + public class JapaneseLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar + { + public JapaneseLunisolarCalendar() => throw null; + protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } + public override int[] Eras { get => throw null; } + public override int GetEra(System.DateTime time) => throw null; + public static int JapaneseEra; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + } + public class JulianCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public JulianCalendar() => throw null; + public override int[] Eras { get => throw null; } + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetEra(System.DateTime time) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public static int JulianEra; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + } + public class KoreanCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public KoreanCalendar() => throw null; + public override int[] Eras { get => throw null; } + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetEra(System.DateTime time) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public static int KoreanEra; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + } + public class KoreanLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar + { + public KoreanLunisolarCalendar() => throw null; + protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } + public override int[] Eras { get => throw null; } + public override int GetEra(System.DateTime time) => throw null; + public static int GregorianEra; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + } + public sealed class NumberFormatInfo : System.ICloneable, System.IFormatProvider + { + public object Clone() => throw null; + public NumberFormatInfo() => throw null; + public int CurrencyDecimalDigits { get => throw null; set { } } + public string CurrencyDecimalSeparator { get => throw null; set { } } + public string CurrencyGroupSeparator { get => throw null; set { } } + public int[] CurrencyGroupSizes { get => throw null; set { } } + public int CurrencyNegativePattern { get => throw null; set { } } + public int CurrencyPositivePattern { get => throw null; set { } } + public string CurrencySymbol { get => throw null; set { } } + public static System.Globalization.NumberFormatInfo CurrentInfo { get => throw null; } + public System.Globalization.DigitShapes DigitSubstitution { get => throw null; set { } } + public object GetFormat(System.Type formatType) => throw null; + public static System.Globalization.NumberFormatInfo GetInstance(System.IFormatProvider formatProvider) => throw null; + public static System.Globalization.NumberFormatInfo InvariantInfo { get => throw null; } + public bool IsReadOnly { get => throw null; } + public string NaNSymbol { get => throw null; set { } } + public string[] NativeDigits { get => throw null; set { } } + public string NegativeInfinitySymbol { get => throw null; set { } } + public string NegativeSign { get => throw null; set { } } + public int NumberDecimalDigits { get => throw null; set { } } + public string NumberDecimalSeparator { get => throw null; set { } } + public string NumberGroupSeparator { get => throw null; set { } } + public int[] NumberGroupSizes { get => throw null; set { } } + public int NumberNegativePattern { get => throw null; set { } } + public int PercentDecimalDigits { get => throw null; set { } } + public string PercentDecimalSeparator { get => throw null; set { } } + public string PercentGroupSeparator { get => throw null; set { } } + public int[] PercentGroupSizes { get => throw null; set { } } + public int PercentNegativePattern { get => throw null; set { } } + public int PercentPositivePattern { get => throw null; set { } } + public string PercentSymbol { get => throw null; set { } } + public string PerMilleSymbol { get => throw null; set { } } + public string PositiveInfinitySymbol { get => throw null; set { } } + public string PositiveSign { get => throw null; set { } } + public static System.Globalization.NumberFormatInfo ReadOnly(System.Globalization.NumberFormatInfo nfi) => throw null; + } + [System.Flags] + public enum NumberStyles + { + None = 0, + AllowLeadingWhite = 1, + AllowTrailingWhite = 2, + AllowLeadingSign = 4, + Integer = 7, + AllowTrailingSign = 8, + AllowParentheses = 16, + AllowDecimalPoint = 32, + AllowThousands = 64, + Number = 111, + AllowExponent = 128, + Float = 167, + AllowCurrencySymbol = 256, + Currency = 383, + Any = 511, + AllowHexSpecifier = 512, + HexNumber = 515, + } + public class PersianCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public PersianCalendar() => throw null; + public override int[] Eras { get => throw null; } + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetEra(System.DateTime time) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + public static int PersianEra; + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + } + public class RegionInfo + { + public RegionInfo(int culture) => throw null; + public RegionInfo(string name) => throw null; + public virtual string CurrencyEnglishName { get => throw null; } + public virtual string CurrencyNativeName { get => throw null; } + public virtual string CurrencySymbol { get => throw null; } + public static System.Globalization.RegionInfo CurrentRegion { get => throw null; } + public virtual string DisplayName { get => throw null; } + public virtual string EnglishName { get => throw null; } + public override bool Equals(object value) => throw null; + public virtual int GeoId { get => throw null; } + public override int GetHashCode() => throw null; + public virtual bool IsMetric { get => throw null; } + public virtual string ISOCurrencySymbol { get => throw null; } + public virtual string Name { get => throw null; } + public virtual string NativeName { get => throw null; } + public virtual string ThreeLetterISORegionName { get => throw null; } + public virtual string ThreeLetterWindowsRegionName { get => throw null; } + public override string ToString() => throw null; + public virtual string TwoLetterISORegionName { get => throw null; } + } + public sealed class SortKey + { + public static int Compare(System.Globalization.SortKey sortkey1, System.Globalization.SortKey sortkey2) => throw null; + public override bool Equals(object value) => throw null; + public override int GetHashCode() => throw null; + public byte[] KeyData { get => throw null; } + public string OriginalString { get => throw null; } + public override string ToString() => throw null; + } + public sealed class SortVersion : System.IEquatable + { + public SortVersion(int fullVersion, System.Guid sortId) => throw null; + public bool Equals(System.Globalization.SortVersion other) => throw null; + public override bool Equals(object obj) => throw null; + public int FullVersion { get => throw null; } + public override int GetHashCode() => throw null; + public static bool operator ==(System.Globalization.SortVersion left, System.Globalization.SortVersion right) => throw null; + public static bool operator !=(System.Globalization.SortVersion left, System.Globalization.SortVersion right) => throw null; + public System.Guid SortId { get => throw null; } + } + public class StringInfo + { + public StringInfo() => throw null; + public StringInfo(string value) => throw null; + public override bool Equals(object value) => throw null; + public override int GetHashCode() => throw null; + public static string GetNextTextElement(string str) => throw null; + public static string GetNextTextElement(string str, int index) => throw null; + public static int GetNextTextElementLength(System.ReadOnlySpan str) => throw null; + public static int GetNextTextElementLength(string str) => throw null; + public static int GetNextTextElementLength(string str, int index) => throw null; + public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str) => throw null; + public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str, int index) => throw null; + public int LengthInTextElements { get => throw null; } + public static int[] ParseCombiningCharacters(string str) => throw null; + public string String { get => throw null; set { } } + public string SubstringByTextElements(int startingTextElement) => throw null; + public string SubstringByTextElements(int startingTextElement, int lengthInTextElements) => throw null; + } + public class TaiwanCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public TaiwanCalendar() => throw null; + public override int[] Eras { get => throw null; } + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetEra(System.DateTime time) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + } + public class TaiwanLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar + { + public TaiwanLunisolarCalendar() => throw null; + protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } + public override int[] Eras { get => throw null; } + public override int GetEra(System.DateTime time) => throw null; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + } + public class TextElementEnumerator : System.Collections.IEnumerator + { + public object Current { get => throw null; } + public int ElementIndex { get => throw null; } + public string GetTextElement() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } + public sealed class TextInfo : System.ICloneable, System.Runtime.Serialization.IDeserializationCallback + { + public int ANSICodePage { get => throw null; } + public object Clone() => throw null; + public string CultureName { get => throw null; } + public int EBCDICCodePage { get => throw null; } + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public bool IsReadOnly { get => throw null; } + public bool IsRightToLeft { get => throw null; } + public int LCID { get => throw null; } + public string ListSeparator { get => throw null; set { } } + public int MacCodePage { get => throw null; } + public int OEMCodePage { get => throw null; } + void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; + public static System.Globalization.TextInfo ReadOnly(System.Globalization.TextInfo textInfo) => throw null; + public char ToLower(char c) => throw null; + public string ToLower(string str) => throw null; + public override string ToString() => throw null; + public string ToTitleCase(string str) => throw null; + public char ToUpper(char c) => throw null; + public string ToUpper(string str) => throw null; + } + public class ThaiBuddhistCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public ThaiBuddhistCalendar() => throw null; + public override int[] Eras { get => throw null; } + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetEra(System.DateTime time) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + public static int ThaiBuddhistEra; + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + } + [System.Flags] + public enum TimeSpanStyles + { + None = 0, + AssumeNegative = 1, + } + public class UmAlQuraCalendar : System.Globalization.Calendar + { + public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; + public override System.DateTime AddYears(System.DateTime time, int years) => throw null; + public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } + public UmAlQuraCalendar() => throw null; + protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } + public override int[] Eras { get => throw null; } + public override int GetDayOfMonth(System.DateTime time) => throw null; + public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; + public override int GetDayOfYear(System.DateTime time) => throw null; + public override int GetDaysInMonth(int year, int month, int era) => throw null; + public override int GetDaysInYear(int year, int era) => throw null; + public override int GetEra(System.DateTime time) => throw null; + public override int GetLeapMonth(int year, int era) => throw null; + public override int GetMonth(System.DateTime time) => throw null; + public override int GetMonthsInYear(int year, int era) => throw null; + public override int GetYear(System.DateTime time) => throw null; + public override bool IsLeapDay(int year, int month, int day, int era) => throw null; + public override bool IsLeapMonth(int year, int month, int era) => throw null; + public override bool IsLeapYear(int year, int era) => throw null; + public override System.DateTime MaxSupportedDateTime { get => throw null; } + public override System.DateTime MinSupportedDateTime { get => throw null; } + public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; + public override int ToFourDigitYear(int year) => throw null; + public override int TwoDigitYearMax { get => throw null; set { } } + public static int UmAlQuraEra; + } + public enum UnicodeCategory + { + UppercaseLetter = 0, + LowercaseLetter = 1, + TitlecaseLetter = 2, + ModifierLetter = 3, + OtherLetter = 4, + NonSpacingMark = 5, + SpacingCombiningMark = 6, + EnclosingMark = 7, + DecimalDigitNumber = 8, + LetterNumber = 9, + OtherNumber = 10, + SpaceSeparator = 11, + LineSeparator = 12, + ParagraphSeparator = 13, + Control = 14, + Format = 15, + Surrogate = 16, + PrivateUse = 17, + ConnectorPunctuation = 18, + DashPunctuation = 19, + OpenPunctuation = 20, + ClosePunctuation = 21, + InitialQuotePunctuation = 22, + FinalQuotePunctuation = 23, + OtherPunctuation = 24, + MathSymbol = 25, + CurrencySymbol = 26, + ModifierSymbol = 27, + OtherSymbol = 28, + OtherNotAssigned = 29, + } } - public class GopherStyleUriParser : System.UriParser { public GopherStyleUriParser() => throw null; } - public struct Guid : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable { - public static bool operator !=(System.Guid a, System.Guid b) => throw null; - public static bool operator <(System.Guid left, System.Guid right) => throw null; - public static bool operator <=(System.Guid left, System.Guid right) => throw null; - public static bool operator ==(System.Guid a, System.Guid b) => throw null; - public static bool operator >(System.Guid left, System.Guid right) => throw null; - public static bool operator >=(System.Guid left, System.Guid right) => throw null; public int CompareTo(System.Guid value) => throw null; public int CompareTo(object value) => throw null; + public Guid(byte[] b) => throw null; + public Guid(int a, short b, short c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k) => throw null; + public Guid(int a, short b, short c, byte[] d) => throw null; + public Guid(System.ReadOnlySpan b) => throw null; + public Guid(string g) => throw null; + public Guid(uint a, ushort b, ushort c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k) => throw null; public static System.Guid Empty; public bool Equals(System.Guid g) => throw null; public override bool Equals(object o) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor - public Guid(System.Byte[] b) => throw null; - public Guid(System.ReadOnlySpan b) => throw null; - public Guid(int a, System.Int16 b, System.Int16 c, System.Byte[] d) => throw null; - public Guid(int a, System.Int16 b, System.Int16 c, System.Byte d, System.Byte e, System.Byte f, System.Byte g, System.Byte h, System.Byte i, System.Byte j, System.Byte k) => throw null; - public Guid(string g) => throw null; - public Guid(System.UInt32 a, System.UInt16 b, System.UInt16 c, System.Byte d, System.Byte e, System.Byte f, System.Byte g, System.Byte h, System.Byte i, System.Byte j, System.Byte k) => throw null; public static System.Guid NewGuid() => throw null; - public static System.Guid Parse(System.ReadOnlySpan input) => throw null; - public static System.Guid Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static bool operator ==(System.Guid a, System.Guid b) => throw null; + public static bool operator >(System.Guid left, System.Guid right) => throw null; + public static bool operator >=(System.Guid left, System.Guid right) => throw null; + public static bool operator !=(System.Guid a, System.Guid b) => throw null; + public static bool operator <(System.Guid left, System.Guid right) => throw null; + public static bool operator <=(System.Guid left, System.Guid right) => throw null; + public static System.Guid Parse(System.ReadOnlySpan input) => throw null; + static System.Guid System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; public static System.Guid Parse(string input) => throw null; - public static System.Guid Parse(string s, System.IFormatProvider provider) => throw null; - public static System.Guid ParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format) => throw null; + static System.Guid System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + public static System.Guid ParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format) => throw null; public static System.Guid ParseExact(string input, string format) => throw null; - public System.Byte[] ToByteArray() => throw null; + public byte[] ToByteArray() => throw null; public override string ToString() => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan)) => throw null; - bool System.ISpanFormattable.TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Guid result) => throw null; - public static bool TryParse(System.ReadOnlySpan input, out System.Guid result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Guid result) => throw null; + bool System.ISpanFormattable.TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan)) => throw null; + public static bool TryParse(System.ReadOnlySpan input, out System.Guid result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Guid result) => throw null; public static bool TryParse(string input, out System.Guid result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, out System.Guid result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.Guid result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, out System.Guid result) => throw null; public static bool TryParseExact(string input, string format, out System.Guid result) => throw null; - public bool TryWriteBytes(System.Span destination) => throw null; + public bool TryWriteBytes(System.Span destination) => throw null; } - - public struct Half : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators + public struct Half : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPoint, System.Numerics.ISignedNumber, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions, System.Numerics.IMinMaxValue { - static bool System.Numerics.IEqualityOperators.operator !=(System.Half left, System.Half right) => throw null; - static System.Half System.Numerics.IModulusOperators.operator %(System.Half left, System.Half right) => throw null; - static System.Half System.Numerics.IBitwiseOperators.operator &(System.Half left, System.Half right) => throw null; - static System.Half System.Numerics.IMultiplyOperators.operator *(System.Half left, System.Half right) => throw null; - static System.Half System.Numerics.IUnaryPlusOperators.operator +(System.Half value) => throw null; - static System.Half System.Numerics.IAdditionOperators.operator +(System.Half left, System.Half right) => throw null; - static System.Half System.Numerics.IIncrementOperators.operator ++(System.Half value) => throw null; - static System.Half System.Numerics.IUnaryNegationOperators.operator -(System.Half value) => throw null; - static System.Half System.Numerics.ISubtractionOperators.operator -(System.Half left, System.Half right) => throw null; - static System.Half System.Numerics.IDecrementOperators.operator --(System.Half value) => throw null; - static System.Half System.Numerics.IDivisionOperators.operator /(System.Half left, System.Half right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.Half left, System.Half right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.Half left, System.Half right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.Half left, System.Half right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.Half left, System.Half right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.Half left, System.Half right) => throw null; - public static System.Half Abs(System.Half value) => throw null; - public static System.Half Acos(System.Half x) => throw null; - public static System.Half AcosPi(System.Half x) => throw null; - public static System.Half Acosh(System.Half x) => throw null; + static System.Half System.Numerics.INumberBase.Abs(System.Half value) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.Acos(System.Half x) => throw null; + static System.Half System.Numerics.IHyperbolicFunctions.Acosh(System.Half x) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.AcosPi(System.Half x) => throw null; static System.Half System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } static System.Half System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.Half Asin(System.Half x) => throw null; - public static System.Half AsinPi(System.Half x) => throw null; - public static System.Half Asinh(System.Half x) => throw null; - public static System.Half Atan(System.Half x) => throw null; - public static System.Half Atan2(System.Half y, System.Half x) => throw null; - public static System.Half Atan2Pi(System.Half y, System.Half x) => throw null; - public static System.Half AtanPi(System.Half x) => throw null; - public static System.Half Atanh(System.Half x) => throw null; - public static System.Half BitDecrement(System.Half x) => throw null; - public static System.Half BitIncrement(System.Half x) => throw null; - public static System.Half Cbrt(System.Half x) => throw null; - public static System.Half Ceiling(System.Half x) => throw null; - public static System.Half Clamp(System.Half value, System.Half min, System.Half max) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.Asin(System.Half x) => throw null; + static System.Half System.Numerics.IHyperbolicFunctions.Asinh(System.Half x) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.AsinPi(System.Half x) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.Atan(System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPointIeee754.Atan2(System.Half y, System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPointIeee754.Atan2Pi(System.Half y, System.Half x) => throw null; + static System.Half System.Numerics.IHyperbolicFunctions.Atanh(System.Half x) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.AtanPi(System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPointIeee754.BitDecrement(System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPointIeee754.BitIncrement(System.Half x) => throw null; + static System.Half System.Numerics.IRootFunctions.Cbrt(System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPoint.Ceiling(System.Half x) => throw null; + static System.Half System.Numerics.INumber.Clamp(System.Half value, System.Half min, System.Half max) => throw null; public int CompareTo(System.Half other) => throw null; public int CompareTo(object obj) => throw null; - public static System.Half CopySign(System.Half value, System.Half sign) => throw null; - public static System.Half Cos(System.Half x) => throw null; - public static System.Half CosPi(System.Half x) => throw null; - public static System.Half Cosh(System.Half x) => throw null; + static System.Half System.Numerics.INumber.CopySign(System.Half value, System.Half sign) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.Cos(System.Half x) => throw null; + static System.Half System.Numerics.IHyperbolicFunctions.Cosh(System.Half x) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.CosPi(System.Half x) => throw null; static System.Half System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; static System.Half System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; static System.Half System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; @@ -2658,57 +4378,57 @@ namespace System static System.Half System.Numerics.IFloatingPointIeee754.Epsilon { get => throw null; } public bool Equals(System.Half other) => throw null; public override bool Equals(object obj) => throw null; - public static System.Half Exp(System.Half x) => throw null; - public static System.Half Exp10(System.Half x) => throw null; - public static System.Half Exp10M1(System.Half x) => throw null; - public static System.Half Exp2(System.Half x) => throw null; - public static System.Half Exp2M1(System.Half x) => throw null; - public static System.Half ExpM1(System.Half x) => throw null; - public static System.Half Floor(System.Half x) => throw null; - public static System.Half FusedMultiplyAdd(System.Half left, System.Half right, System.Half addend) => throw null; + static System.Half System.Numerics.IExponentialFunctions.Exp(System.Half x) => throw null; + static System.Half System.Numerics.IExponentialFunctions.Exp10(System.Half x) => throw null; + static System.Half System.Numerics.IExponentialFunctions.Exp10M1(System.Half x) => throw null; + static System.Half System.Numerics.IExponentialFunctions.Exp2(System.Half x) => throw null; + static System.Half System.Numerics.IExponentialFunctions.Exp2M1(System.Half x) => throw null; + static System.Half System.Numerics.IExponentialFunctions.ExpM1(System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPoint.Floor(System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPointIeee754.FusedMultiplyAdd(System.Half left, System.Half right, System.Half addend) => throw null; int System.Numerics.IFloatingPoint.GetExponentByteCount() => throw null; int System.Numerics.IFloatingPoint.GetExponentShortestBitLength() => throw null; public override int GetHashCode() => throw null; int System.Numerics.IFloatingPoint.GetSignificandBitLength() => throw null; int System.Numerics.IFloatingPoint.GetSignificandByteCount() => throw null; - // Stub generator skipped constructor - public static System.Half Hypot(System.Half x, System.Half y) => throw null; - public static int ILogB(System.Half x) => throw null; - public static System.Half Ieee754Remainder(System.Half left, System.Half right) => throw null; - public static bool IsCanonical(System.Half value) => throw null; - public static bool IsComplexNumber(System.Half value) => throw null; - public static bool IsEvenInteger(System.Half value) => throw null; - public static bool IsFinite(System.Half value) => throw null; - public static bool IsImaginaryNumber(System.Half value) => throw null; - public static bool IsInfinity(System.Half value) => throw null; - public static bool IsInteger(System.Half value) => throw null; - public static bool IsNaN(System.Half value) => throw null; - public static bool IsNegative(System.Half value) => throw null; - public static bool IsNegativeInfinity(System.Half value) => throw null; - public static bool IsNormal(System.Half value) => throw null; - public static bool IsOddInteger(System.Half value) => throw null; - public static bool IsPositive(System.Half value) => throw null; - public static bool IsPositiveInfinity(System.Half value) => throw null; - public static bool IsPow2(System.Half value) => throw null; - public static bool IsRealNumber(System.Half value) => throw null; - public static bool IsSubnormal(System.Half value) => throw null; - public static bool IsZero(System.Half value) => throw null; - public static System.Half Log(System.Half x) => throw null; - public static System.Half Log(System.Half x, System.Half newBase) => throw null; - public static System.Half Log10(System.Half x) => throw null; - public static System.Half Log10P1(System.Half x) => throw null; - public static System.Half Log2(System.Half value) => throw null; - public static System.Half Log2P1(System.Half x) => throw null; - public static System.Half LogP1(System.Half x) => throw null; - public static System.Half Max(System.Half x, System.Half y) => throw null; - public static System.Half MaxMagnitude(System.Half x, System.Half y) => throw null; - public static System.Half MaxMagnitudeNumber(System.Half x, System.Half y) => throw null; - public static System.Half MaxNumber(System.Half x, System.Half y) => throw null; + static System.Half System.Numerics.IRootFunctions.Hypot(System.Half x, System.Half y) => throw null; + static System.Half System.Numerics.IFloatingPointIeee754.Ieee754Remainder(System.Half left, System.Half right) => throw null; + static int System.Numerics.IFloatingPointIeee754.ILogB(System.Half x) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(System.Half value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(System.Half value) => throw null; + static bool System.Numerics.INumberBase.IsZero(System.Half value) => throw null; + static System.Half System.Numerics.ILogarithmicFunctions.Log(System.Half x) => throw null; + static System.Half System.Numerics.ILogarithmicFunctions.Log(System.Half x, System.Half newBase) => throw null; + static System.Half System.Numerics.ILogarithmicFunctions.Log10(System.Half x) => throw null; + static System.Half System.Numerics.ILogarithmicFunctions.Log10P1(System.Half x) => throw null; + static System.Half System.Numerics.IBinaryNumber.Log2(System.Half value) => throw null; + static System.Half System.Numerics.ILogarithmicFunctions.Log2(System.Half value) => throw null; + static System.Half System.Numerics.ILogarithmicFunctions.Log2P1(System.Half x) => throw null; + static System.Half System.Numerics.ILogarithmicFunctions.LogP1(System.Half x) => throw null; + static System.Half System.Numerics.INumber.Max(System.Half x, System.Half y) => throw null; + static System.Half System.Numerics.INumberBase.MaxMagnitude(System.Half x, System.Half y) => throw null; + static System.Half System.Numerics.INumberBase.MaxMagnitudeNumber(System.Half x, System.Half y) => throw null; + static System.Half System.Numerics.INumber.MaxNumber(System.Half x, System.Half y) => throw null; static System.Half System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.Half Min(System.Half x, System.Half y) => throw null; - public static System.Half MinMagnitude(System.Half x, System.Half y) => throw null; - public static System.Half MinMagnitudeNumber(System.Half x, System.Half y) => throw null; - public static System.Half MinNumber(System.Half x, System.Half y) => throw null; + static System.Half System.Numerics.INumber.Min(System.Half x, System.Half y) => throw null; + static System.Half System.Numerics.INumberBase.MinMagnitude(System.Half x, System.Half y) => throw null; + static System.Half System.Numerics.INumberBase.MinMagnitudeNumber(System.Half x, System.Half y) => throw null; + static System.Half System.Numerics.INumber.MinNumber(System.Half x, System.Half y) => throw null; static System.Half System.Numerics.IMinMaxValue.MinValue { get => throw null; } static System.Half System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static System.Half System.Numerics.IFloatingPointIeee754.NaN { get => throw null; } @@ -2716,135 +4436,146 @@ namespace System static System.Half System.Numerics.ISignedNumber.NegativeOne { get => throw null; } static System.Half System.Numerics.IFloatingPointIeee754.NegativeZero { get => throw null; } static System.Half System.Numerics.INumberBase.One { get => throw null; } - public static System.Half Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.Half Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.Half System.Numerics.IAdditionOperators.operator +(System.Half left, System.Half right) => throw null; + static System.Half System.Numerics.IBitwiseOperators.operator &(System.Half left, System.Half right) => throw null; + static System.Half System.Numerics.IBitwiseOperators.operator |(System.Half left, System.Half right) => throw null; + public static explicit operator checked byte(System.Half value) => throw null; + public static explicit operator checked char(System.Half value) => throw null; + public static explicit operator checked short(System.Half value) => throw null; + public static explicit operator checked int(System.Half value) => throw null; + public static explicit operator checked long(System.Half value) => throw null; + public static explicit operator checked System.Int128(System.Half value) => throw null; + public static explicit operator checked nint(System.Half value) => throw null; + public static explicit operator checked sbyte(System.Half value) => throw null; + public static explicit operator checked ushort(System.Half value) => throw null; + public static explicit operator checked uint(System.Half value) => throw null; + public static explicit operator checked ulong(System.Half value) => throw null; + public static explicit operator checked System.UInt128(System.Half value) => throw null; + public static explicit operator checked nuint(System.Half value) => throw null; + static System.Half System.Numerics.IDecrementOperators.operator --(System.Half value) => throw null; + static System.Half System.Numerics.IDivisionOperators.operator /(System.Half left, System.Half right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(System.Half left, System.Half right) => throw null; + static System.Half System.Numerics.IBitwiseOperators.operator ^(System.Half left, System.Half right) => throw null; + public static explicit operator System.Half(char value) => throw null; + public static explicit operator System.Half(decimal value) => throw null; + public static explicit operator System.Half(double value) => throw null; + public static explicit operator byte(System.Half value) => throw null; + public static explicit operator char(System.Half value) => throw null; + public static explicit operator decimal(System.Half value) => throw null; + public static explicit operator double(System.Half value) => throw null; + public static explicit operator System.Int128(System.Half value) => throw null; + public static explicit operator short(System.Half value) => throw null; + public static explicit operator int(System.Half value) => throw null; + public static explicit operator long(System.Half value) => throw null; + public static explicit operator nint(System.Half value) => throw null; + public static explicit operator sbyte(System.Half value) => throw null; + public static explicit operator float(System.Half value) => throw null; + public static explicit operator System.UInt128(System.Half value) => throw null; + public static explicit operator ushort(System.Half value) => throw null; + public static explicit operator uint(System.Half value) => throw null; + public static explicit operator ulong(System.Half value) => throw null; + public static explicit operator nuint(System.Half value) => throw null; + public static explicit operator System.Half(short value) => throw null; + public static explicit operator System.Half(int value) => throw null; + public static explicit operator System.Half(long value) => throw null; + public static explicit operator System.Half(nint value) => throw null; + public static explicit operator System.Half(float value) => throw null; + public static explicit operator System.Half(ushort value) => throw null; + public static explicit operator System.Half(uint value) => throw null; + public static explicit operator System.Half(ulong value) => throw null; + public static explicit operator System.Half(nuint value) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(System.Half left, System.Half right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(System.Half left, System.Half right) => throw null; + public static implicit operator System.Half(byte value) => throw null; + public static implicit operator System.Half(sbyte value) => throw null; + static System.Half System.Numerics.IIncrementOperators.operator ++(System.Half value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(System.Half left, System.Half right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(System.Half left, System.Half right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(System.Half left, System.Half right) => throw null; + static System.Half System.Numerics.IModulusOperators.operator %(System.Half left, System.Half right) => throw null; + static System.Half System.Numerics.IMultiplyOperators.operator *(System.Half left, System.Half right) => throw null; + static System.Half System.Numerics.IBitwiseOperators.operator ~(System.Half value) => throw null; + static System.Half System.Numerics.ISubtractionOperators.operator -(System.Half left, System.Half right) => throw null; + static System.Half System.Numerics.IUnaryNegationOperators.operator -(System.Half value) => throw null; + static System.Half System.Numerics.IUnaryPlusOperators.operator +(System.Half value) => throw null; + static System.Half System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.Half System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; public static System.Half Parse(string s) => throw null; - public static System.Half Parse(string s, System.IFormatProvider provider) => throw null; public static System.Half Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.Half Parse(string s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.Half System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.Half System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; static System.Half System.Numerics.IFloatingPointConstants.Pi { get => throw null; } static System.Half System.Numerics.IFloatingPointIeee754.PositiveInfinity { get => throw null; } - public static System.Half Pow(System.Half x, System.Half y) => throw null; + static System.Half System.Numerics.IPowerFunctions.Pow(System.Half x, System.Half y) => throw null; static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.Half ReciprocalEstimate(System.Half x) => throw null; - public static System.Half ReciprocalSqrtEstimate(System.Half x) => throw null; - public static System.Half RootN(System.Half x, int n) => throw null; - public static System.Half Round(System.Half x) => throw null; - public static System.Half Round(System.Half x, System.MidpointRounding mode) => throw null; - public static System.Half Round(System.Half x, int digits) => throw null; - public static System.Half Round(System.Half x, int digits, System.MidpointRounding mode) => throw null; - public static System.Half ScaleB(System.Half x, int n) => throw null; - public static int Sign(System.Half value) => throw null; - public static System.Half Sin(System.Half x) => throw null; - public static (System.Half, System.Half) SinCos(System.Half x) => throw null; - public static (System.Half, System.Half) SinCosPi(System.Half x) => throw null; - public static System.Half SinPi(System.Half x) => throw null; - public static System.Half Sinh(System.Half x) => throw null; - public static System.Half Sqrt(System.Half x) => throw null; - public static System.Half Tan(System.Half x) => throw null; - public static System.Half TanPi(System.Half x) => throw null; - public static System.Half Tanh(System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPointIeee754.ReciprocalEstimate(System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPointIeee754.ReciprocalSqrtEstimate(System.Half x) => throw null; + static System.Half System.Numerics.IRootFunctions.RootN(System.Half x, int n) => throw null; + static System.Half System.Numerics.IFloatingPoint.Round(System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPoint.Round(System.Half x, int digits) => throw null; + static System.Half System.Numerics.IFloatingPoint.Round(System.Half x, int digits, System.MidpointRounding mode) => throw null; + static System.Half System.Numerics.IFloatingPoint.Round(System.Half x, System.MidpointRounding mode) => throw null; + static System.Half System.Numerics.IFloatingPointIeee754.ScaleB(System.Half x, int n) => throw null; + static int System.Numerics.INumber.Sign(System.Half value) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.Sin(System.Half x) => throw null; + static (System.Half Sin, System.Half Cos) System.Numerics.ITrigonometricFunctions.SinCos(System.Half x) => throw null; + static (System.Half SinPi, System.Half CosPi) System.Numerics.ITrigonometricFunctions.SinCosPi(System.Half x) => throw null; + static System.Half System.Numerics.IHyperbolicFunctions.Sinh(System.Half x) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.SinPi(System.Half x) => throw null; + static System.Half System.Numerics.IRootFunctions.Sqrt(System.Half x) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.Tan(System.Half x) => throw null; + static System.Half System.Numerics.IHyperbolicFunctions.Tanh(System.Half x) => throw null; + static System.Half System.Numerics.ITrigonometricFunctions.TanPi(System.Half x) => throw null; static System.Half System.Numerics.IFloatingPointConstants.Tau { get => throw null; } public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; - public static System.Half Truncate(System.Half x) => throw null; + static System.Half System.Numerics.IFloatingPoint.Truncate(System.Half x) => throw null; static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.Half result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.Half result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.Half result) => throw null; static bool System.Numerics.INumberBase.TryConvertToChecked(System.Half value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Half value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Half value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Half result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Half result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.Half result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Half result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Half result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Half result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out System.Half result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Half result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Half result) => throw null; public static bool TryParse(string s, out System.Half result) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteExponentBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.Half result) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteExponentBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; static System.Half System.Numerics.INumberBase.Zero { get => throw null; } - static System.Half System.Numerics.IBitwiseOperators.operator ^(System.Half left, System.Half right) => throw null; - public static explicit operator checked System.Byte(System.Half value) => throw null; - public static explicit operator checked System.Char(System.Half value) => throw null; - public static explicit operator checked System.Int128(System.Half value) => throw null; - public static explicit operator checked System.Int16(System.Half value) => throw null; - public static explicit operator checked System.Int64(System.Half value) => throw null; - public static explicit operator checked System.IntPtr(System.Half value) => throw null; - public static explicit operator checked System.SByte(System.Half value) => throw null; - public static explicit operator checked System.UInt128(System.Half value) => throw null; - public static explicit operator checked System.UInt16(System.Half value) => throw null; - public static explicit operator checked System.UInt32(System.Half value) => throw null; - public static explicit operator checked System.UInt64(System.Half value) => throw null; - public static explicit operator checked System.UIntPtr(System.Half value) => throw null; - public static explicit operator checked int(System.Half value) => throw null; - public static explicit operator System.Byte(System.Half value) => throw null; - public static explicit operator System.Char(System.Half value) => throw null; - public static explicit operator System.Decimal(System.Half value) => throw null; - public static explicit operator System.Int128(System.Half value) => throw null; - public static explicit operator System.Int16(System.Half value) => throw null; - public static explicit operator System.Int64(System.Half value) => throw null; - public static explicit operator System.IntPtr(System.Half value) => throw null; - public static explicit operator System.SByte(System.Half value) => throw null; - public static explicit operator System.UInt128(System.Half value) => throw null; - public static explicit operator System.UInt16(System.Half value) => throw null; - public static explicit operator System.UInt32(System.Half value) => throw null; - public static explicit operator System.UInt64(System.Half value) => throw null; - public static explicit operator System.UIntPtr(System.Half value) => throw null; - public static explicit operator double(System.Half value) => throw null; - public static explicit operator float(System.Half value) => throw null; - public static explicit operator int(System.Half value) => throw null; - public static explicit operator System.Half(System.IntPtr value) => throw null; - public static explicit operator System.Half(System.UIntPtr value) => throw null; - public static explicit operator System.Half(System.Char value) => throw null; - public static explicit operator System.Half(System.Decimal value) => throw null; - public static explicit operator System.Half(double value) => throw null; - public static explicit operator System.Half(float value) => throw null; - public static explicit operator System.Half(int value) => throw null; - public static explicit operator System.Half(System.Int64 value) => throw null; - public static explicit operator System.Half(System.Int16 value) => throw null; - public static explicit operator System.Half(System.UInt32 value) => throw null; - public static explicit operator System.Half(System.UInt64 value) => throw null; - public static explicit operator System.Half(System.UInt16 value) => throw null; - public static implicit operator System.Half(System.Byte value) => throw null; - public static implicit operator System.Half(System.SByte value) => throw null; - static System.Half System.Numerics.IBitwiseOperators.operator |(System.Half left, System.Half right) => throw null; - static System.Half System.Numerics.IBitwiseOperators.operator ~(System.Half value) => throw null; } - public struct HashCode { public void Add(T value) => throw null; public void Add(T value, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public void AddBytes(System.ReadOnlySpan value) => throw null; - public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => throw null; - public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => throw null; - public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => throw null; - public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => throw null; - public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4) => throw null; - public static int Combine(T1 value1, T2 value2, T3 value3) => throw null; - public static int Combine(T1 value1, T2 value2) => throw null; + public void AddBytes(System.ReadOnlySpan value) => throw null; public static int Combine(T1 value1) => throw null; + public static int Combine(T1 value1, T2 value2) => throw null; + public static int Combine(T1 value1, T2 value2, T3 value3) => throw null; + public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4) => throw null; + public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => throw null; + public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => throw null; + public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => throw null; + public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor public int ToHashCode() => throw null; } - public class HttpStyleUriParser : System.UriParser { public HttpStyleUriParser() => throw null; } - public interface IAsyncDisposable { System.Threading.Tasks.ValueTask DisposeAsync(); } - public interface IAsyncResult { object AsyncState { get; } @@ -2852,104 +4583,61 @@ namespace System bool CompletedSynchronously { get; } bool IsCompleted { get; } } - public interface ICloneable { object Clone(); } - public interface IComparable { int CompareTo(object obj); } - public interface IComparable { int CompareTo(T other); } - public interface IConvertible { System.TypeCode GetTypeCode(); bool ToBoolean(System.IFormatProvider provider); - System.Byte ToByte(System.IFormatProvider provider); - System.Char ToChar(System.IFormatProvider provider); + byte ToByte(System.IFormatProvider provider); + char ToChar(System.IFormatProvider provider); System.DateTime ToDateTime(System.IFormatProvider provider); - System.Decimal ToDecimal(System.IFormatProvider provider); + decimal ToDecimal(System.IFormatProvider provider); double ToDouble(System.IFormatProvider provider); - System.Int16 ToInt16(System.IFormatProvider provider); + short ToInt16(System.IFormatProvider provider); int ToInt32(System.IFormatProvider provider); - System.Int64 ToInt64(System.IFormatProvider provider); - System.SByte ToSByte(System.IFormatProvider provider); + long ToInt64(System.IFormatProvider provider); + sbyte ToSByte(System.IFormatProvider provider); float ToSingle(System.IFormatProvider provider); string ToString(System.IFormatProvider provider); object ToType(System.Type conversionType, System.IFormatProvider provider); - System.UInt16 ToUInt16(System.IFormatProvider provider); - System.UInt32 ToUInt32(System.IFormatProvider provider); - System.UInt64 ToUInt64(System.IFormatProvider provider); + ushort ToUInt16(System.IFormatProvider provider); + uint ToUInt32(System.IFormatProvider provider); + ulong ToUInt64(System.IFormatProvider provider); } - public interface ICustomFormatter { string Format(string format, object arg, System.IFormatProvider formatProvider); } - public interface IDisposable { void Dispose(); } - public interface IEquatable { bool Equals(T other); } - public interface IFormatProvider { object GetFormat(System.Type formatType); } - public interface IFormattable { string ToString(string format, System.IFormatProvider formatProvider); } - - public interface IObservable - { - System.IDisposable Subscribe(System.IObserver observer); - } - - public interface IObserver - { - void OnCompleted(); - void OnError(System.Exception error); - void OnNext(T value); - } - - public interface IParsable where TSelf : System.IParsable - { - static abstract TSelf Parse(string s, System.IFormatProvider provider); - static abstract bool TryParse(string s, System.IFormatProvider provider, out TSelf result); - } - - public interface IProgress - { - void Report(T value); - } - - public interface ISpanFormattable : System.IFormattable - { - bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider); - } - - public interface ISpanParsable : System.IParsable where TSelf : System.ISpanParsable - { - static abstract TSelf Parse(System.ReadOnlySpan s, System.IFormatProvider provider); - static abstract bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out TSelf result); - } - public struct Index : System.IEquatable { + public Index(int value, bool fromEnd = default(bool)) => throw null; public static System.Index End { get => throw null; } public bool Equals(System.Index other) => throw null; public override bool Equals(object value) => throw null; @@ -2957,737 +4645,735 @@ namespace System public static System.Index FromStart(int value) => throw null; public override int GetHashCode() => throw null; public int GetOffset(int length) => throw null; - // Stub generator skipped constructor - public Index(int value, bool fromEnd = default(bool)) => throw null; public bool IsFromEnd { get => throw null; } + public static implicit operator System.Index(int value) => throw null; public static System.Index Start { get => throw null; } public override string ToString() => throw null; public int Value { get => throw null; } - public static implicit operator System.Index(int value) => throw null; } - - public class IndexOutOfRangeException : System.SystemException + public sealed class IndexOutOfRangeException : System.SystemException { public IndexOutOfRangeException() => throw null; public IndexOutOfRangeException(string message) => throw null; public IndexOutOfRangeException(string message, System.Exception innerException) => throw null; } - - public class InsufficientExecutionStackException : System.SystemException + public sealed class InsufficientExecutionStackException : System.SystemException { public InsufficientExecutionStackException() => throw null; public InsufficientExecutionStackException(string message) => throw null; public InsufficientExecutionStackException(string message, System.Exception innerException) => throw null; } - - public class InsufficientMemoryException : System.OutOfMemoryException + public sealed class InsufficientMemoryException : System.OutOfMemoryException { public InsufficientMemoryException() => throw null; public InsufficientMemoryException(string message) => throw null; public InsufficientMemoryException(string message, System.Exception innerException) => throw null; } - - public struct Int128 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators + public struct Int128 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IModulusOperators.operator %(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IBitwiseOperators.operator &(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IMultiplyOperators.operator *(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IUnaryPlusOperators.operator +(System.Int128 value) => throw null; - static System.Int128 System.Numerics.IAdditionOperators.operator +(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IIncrementOperators.operator ++(System.Int128 value) => throw null; - static System.Int128 System.Numerics.IUnaryNegationOperators.operator -(System.Int128 value) => throw null; - static System.Int128 System.Numerics.ISubtractionOperators.operator -(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IDecrementOperators.operator --(System.Int128 value) => throw null; - static System.Int128 System.Numerics.IDivisionOperators.operator /(System.Int128 left, System.Int128 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IShiftOperators.operator <<(System.Int128 value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.Int128 left, System.Int128 right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.Int128 left, System.Int128 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.Int128 left, System.Int128 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IShiftOperators.operator >>(System.Int128 value, int shiftAmount) => throw null; - static System.Int128 System.Numerics.IShiftOperators.operator >>>(System.Int128 value, int shiftAmount) => throw null; - public static System.Int128 Abs(System.Int128 value) => throw null; + static System.Int128 System.Numerics.INumberBase.Abs(System.Int128 value) => throw null; static System.Int128 System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } static System.Int128 System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.Int128 Clamp(System.Int128 value, System.Int128 min, System.Int128 max) => throw null; + static System.Int128 System.Numerics.INumber.Clamp(System.Int128 value, System.Int128 min, System.Int128 max) => throw null; public int CompareTo(System.Int128 value) => throw null; public int CompareTo(object value) => throw null; - public static System.Int128 CopySign(System.Int128 value, System.Int128 sign) => throw null; + static System.Int128 System.Numerics.INumber.CopySign(System.Int128 value, System.Int128 sign) => throw null; static System.Int128 System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; static System.Int128 System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; static System.Int128 System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.Int128, System.Int128) DivRem(System.Int128 left, System.Int128 right) => throw null; + public Int128(ulong upper, ulong lower) => throw null; + static (System.Int128 Quotient, System.Int128 Remainder) System.Numerics.IBinaryInteger.DivRem(System.Int128 left, System.Int128 right) => throw null; public bool Equals(System.Int128 other) => throw null; public override bool Equals(object obj) => throw null; int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; - // Stub generator skipped constructor - public Int128(System.UInt64 upper, System.UInt64 lower) => throw null; - public static bool IsCanonical(System.Int128 value) => throw null; - public static bool IsComplexNumber(System.Int128 value) => throw null; - public static bool IsEvenInteger(System.Int128 value) => throw null; - public static bool IsFinite(System.Int128 value) => throw null; - public static bool IsImaginaryNumber(System.Int128 value) => throw null; - public static bool IsInfinity(System.Int128 value) => throw null; - public static bool IsInteger(System.Int128 value) => throw null; - public static bool IsNaN(System.Int128 value) => throw null; - public static bool IsNegative(System.Int128 value) => throw null; - public static bool IsNegativeInfinity(System.Int128 value) => throw null; - public static bool IsNormal(System.Int128 value) => throw null; - public static bool IsOddInteger(System.Int128 value) => throw null; - public static bool IsPositive(System.Int128 value) => throw null; - public static bool IsPositiveInfinity(System.Int128 value) => throw null; - public static bool IsPow2(System.Int128 value) => throw null; - public static bool IsRealNumber(System.Int128 value) => throw null; - public static bool IsSubnormal(System.Int128 value) => throw null; - public static bool IsZero(System.Int128 value) => throw null; - public static System.Int128 LeadingZeroCount(System.Int128 value) => throw null; - public static System.Int128 Log2(System.Int128 value) => throw null; - public static System.Int128 Max(System.Int128 x, System.Int128 y) => throw null; - public static System.Int128 MaxMagnitude(System.Int128 x, System.Int128 y) => throw null; - public static System.Int128 MaxMagnitudeNumber(System.Int128 x, System.Int128 y) => throw null; - public static System.Int128 MaxNumber(System.Int128 x, System.Int128 y) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(System.Int128 value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(System.Int128 value) => throw null; + static bool System.Numerics.INumberBase.IsZero(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IBinaryInteger.LeadingZeroCount(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IBinaryNumber.Log2(System.Int128 value) => throw null; + static System.Int128 System.Numerics.INumber.Max(System.Int128 x, System.Int128 y) => throw null; + static System.Int128 System.Numerics.INumberBase.MaxMagnitude(System.Int128 x, System.Int128 y) => throw null; + static System.Int128 System.Numerics.INumberBase.MaxMagnitudeNumber(System.Int128 x, System.Int128 y) => throw null; + static System.Int128 System.Numerics.INumber.MaxNumber(System.Int128 x, System.Int128 y) => throw null; static System.Int128 System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.Int128 Min(System.Int128 x, System.Int128 y) => throw null; - public static System.Int128 MinMagnitude(System.Int128 x, System.Int128 y) => throw null; - public static System.Int128 MinMagnitudeNumber(System.Int128 x, System.Int128 y) => throw null; - public static System.Int128 MinNumber(System.Int128 x, System.Int128 y) => throw null; + static System.Int128 System.Numerics.INumber.Min(System.Int128 x, System.Int128 y) => throw null; + static System.Int128 System.Numerics.INumberBase.MinMagnitude(System.Int128 x, System.Int128 y) => throw null; + static System.Int128 System.Numerics.INumberBase.MinMagnitudeNumber(System.Int128 x, System.Int128 y) => throw null; + static System.Int128 System.Numerics.INumber.MinNumber(System.Int128 x, System.Int128 y) => throw null; static System.Int128 System.Numerics.IMinMaxValue.MinValue { get => throw null; } static System.Int128 System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static System.Int128 System.Numerics.ISignedNumber.NegativeOne { get => throw null; } static System.Int128 System.Numerics.INumberBase.One { get => throw null; } - public static System.Int128 Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.Int128 Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.Int128 System.Numerics.IAdditionOperators.operator +(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IBitwiseOperators.operator &(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IBitwiseOperators.operator |(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IAdditionOperators.operator checked +(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IDecrementOperators.operator checked --(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IDivisionOperators.operator checked /(System.Int128 left, System.Int128 right) => throw null; + public static explicit operator checked System.Int128(double value) => throw null; + public static explicit operator checked byte(System.Int128 value) => throw null; + public static explicit operator checked char(System.Int128 value) => throw null; + public static explicit operator checked short(System.Int128 value) => throw null; + public static explicit operator checked int(System.Int128 value) => throw null; + public static explicit operator checked long(System.Int128 value) => throw null; + public static explicit operator checked nint(System.Int128 value) => throw null; + public static explicit operator checked sbyte(System.Int128 value) => throw null; + public static explicit operator checked ushort(System.Int128 value) => throw null; + public static explicit operator checked uint(System.Int128 value) => throw null; + public static explicit operator checked ulong(System.Int128 value) => throw null; + public static explicit operator checked System.UInt128(System.Int128 value) => throw null; + public static explicit operator checked nuint(System.Int128 value) => throw null; + public static explicit operator checked System.Int128(float value) => throw null; + static System.Int128 System.Numerics.IIncrementOperators.operator checked ++(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IMultiplyOperators.operator checked *(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.ISubtractionOperators.operator checked -(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IUnaryNegationOperators.operator checked -(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IDecrementOperators.operator --(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IDivisionOperators.operator /(System.Int128 left, System.Int128 right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IBitwiseOperators.operator ^(System.Int128 left, System.Int128 right) => throw null; + public static explicit operator System.Int128(decimal value) => throw null; + public static explicit operator System.Int128(double value) => throw null; + public static explicit operator byte(System.Int128 value) => throw null; + public static explicit operator char(System.Int128 value) => throw null; + public static explicit operator decimal(System.Int128 value) => throw null; + public static explicit operator double(System.Int128 value) => throw null; + public static explicit operator System.Half(System.Int128 value) => throw null; + public static explicit operator short(System.Int128 value) => throw null; + public static explicit operator int(System.Int128 value) => throw null; + public static explicit operator long(System.Int128 value) => throw null; + public static explicit operator nint(System.Int128 value) => throw null; + public static explicit operator sbyte(System.Int128 value) => throw null; + public static explicit operator float(System.Int128 value) => throw null; + public static explicit operator System.UInt128(System.Int128 value) => throw null; + public static explicit operator ushort(System.Int128 value) => throw null; + public static explicit operator uint(System.Int128 value) => throw null; + public static explicit operator ulong(System.Int128 value) => throw null; + public static explicit operator nuint(System.Int128 value) => throw null; + public static explicit operator System.Int128(float value) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(System.Int128 left, System.Int128 right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(System.Int128 left, System.Int128 right) => throw null; + public static implicit operator System.Int128(byte value) => throw null; + public static implicit operator System.Int128(char value) => throw null; + public static implicit operator System.Int128(short value) => throw null; + public static implicit operator System.Int128(int value) => throw null; + public static implicit operator System.Int128(long value) => throw null; + public static implicit operator System.Int128(nint value) => throw null; + public static implicit operator System.Int128(sbyte value) => throw null; + public static implicit operator System.Int128(ushort value) => throw null; + public static implicit operator System.Int128(uint value) => throw null; + public static implicit operator System.Int128(ulong value) => throw null; + public static implicit operator System.Int128(nuint value) => throw null; + static System.Int128 System.Numerics.IIncrementOperators.operator ++(System.Int128 value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IShiftOperators.operator <<(System.Int128 value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(System.Int128 left, System.Int128 right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IModulusOperators.operator %(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IMultiplyOperators.operator *(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IBitwiseOperators.operator ~(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IShiftOperators.operator >>(System.Int128 value, int shiftAmount) => throw null; + static System.Int128 System.Numerics.ISubtractionOperators.operator -(System.Int128 left, System.Int128 right) => throw null; + static System.Int128 System.Numerics.IUnaryNegationOperators.operator -(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IUnaryPlusOperators.operator +(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IShiftOperators.operator >>>(System.Int128 value, int shiftAmount) => throw null; + static System.Int128 System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.Int128 System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; public static System.Int128 Parse(string s) => throw null; - public static System.Int128 Parse(string s, System.IFormatProvider provider) => throw null; public static System.Int128 Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.Int128 Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.Int128 PopCount(System.Int128 value) => throw null; + static System.Int128 System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static System.Int128 System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static System.Int128 System.Numerics.IBinaryInteger.PopCount(System.Int128 value) => throw null; static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.Int128 RotateLeft(System.Int128 value, int rotateAmount) => throw null; - public static System.Int128 RotateRight(System.Int128 value, int rotateAmount) => throw null; - public static int Sign(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IBinaryInteger.RotateLeft(System.Int128 value, int rotateAmount) => throw null; + static System.Int128 System.Numerics.IBinaryInteger.RotateRight(System.Int128 value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(System.Int128 value) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; - public static System.Int128 TrailingZeroCount(System.Int128 value) => throw null; + static System.Int128 System.Numerics.IBinaryInteger.TrailingZeroCount(System.Int128 value) => throw null; static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.Int128 result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.Int128 result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.Int128 result) => throw null; static bool System.Numerics.INumberBase.TryConvertToChecked(System.Int128 value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Int128 value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Int128 value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Int128 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Int128 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.Int128 result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Int128 result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Int128 result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Int128 result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Int128 result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out System.Int128 result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Int128 result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.Int128 result) => throw null; public static bool TryParse(string s, out System.Int128 result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Int128 value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Int128 value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Int128 value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Int128 value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static System.Int128 System.Numerics.INumberBase.Zero { get => throw null; } - static System.Int128 System.Numerics.IBitwiseOperators.operator ^(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IMultiplyOperators.operator checked *(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IAdditionOperators.operator checked +(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IIncrementOperators.operator checked ++(System.Int128 value) => throw null; - static System.Int128 System.Numerics.IUnaryNegationOperators.operator checked -(System.Int128 value) => throw null; - static System.Int128 System.Numerics.ISubtractionOperators.operator checked -(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IDecrementOperators.operator checked --(System.Int128 value) => throw null; - static System.Int128 System.Numerics.IDivisionOperators.operator checked /(System.Int128 left, System.Int128 right) => throw null; - public static explicit operator checked System.Byte(System.Int128 value) => throw null; - public static explicit operator checked System.Char(System.Int128 value) => throw null; - public static explicit operator checked System.Int16(System.Int128 value) => throw null; - public static explicit operator checked System.Int64(System.Int128 value) => throw null; - public static explicit operator checked System.IntPtr(System.Int128 value) => throw null; - public static explicit operator checked System.SByte(System.Int128 value) => throw null; - public static explicit operator checked System.UInt128(System.Int128 value) => throw null; - public static explicit operator checked System.UInt16(System.Int128 value) => throw null; - public static explicit operator checked System.UInt32(System.Int128 value) => throw null; - public static explicit operator checked System.UInt64(System.Int128 value) => throw null; - public static explicit operator checked System.UIntPtr(System.Int128 value) => throw null; - public static explicit operator checked int(System.Int128 value) => throw null; - public static explicit operator checked System.Int128(double value) => throw null; - public static explicit operator checked System.Int128(float value) => throw null; - public static explicit operator System.Byte(System.Int128 value) => throw null; - public static explicit operator System.Char(System.Int128 value) => throw null; - public static explicit operator System.Decimal(System.Int128 value) => throw null; - public static explicit operator System.Half(System.Int128 value) => throw null; - public static explicit operator System.Int16(System.Int128 value) => throw null; - public static explicit operator System.Int64(System.Int128 value) => throw null; - public static explicit operator System.IntPtr(System.Int128 value) => throw null; - public static explicit operator System.SByte(System.Int128 value) => throw null; - public static explicit operator System.UInt128(System.Int128 value) => throw null; - public static explicit operator System.UInt16(System.Int128 value) => throw null; - public static explicit operator System.UInt32(System.Int128 value) => throw null; - public static explicit operator System.UInt64(System.Int128 value) => throw null; - public static explicit operator System.UIntPtr(System.Int128 value) => throw null; - public static explicit operator double(System.Int128 value) => throw null; - public static explicit operator float(System.Int128 value) => throw null; - public static explicit operator int(System.Int128 value) => throw null; - public static explicit operator System.Int128(System.Decimal value) => throw null; - public static explicit operator System.Int128(double value) => throw null; - public static explicit operator System.Int128(float value) => throw null; - public static implicit operator System.Int128(System.IntPtr value) => throw null; - public static implicit operator System.Int128(System.UIntPtr value) => throw null; - public static implicit operator System.Int128(System.Byte value) => throw null; - public static implicit operator System.Int128(System.Char value) => throw null; - public static implicit operator System.Int128(int value) => throw null; - public static implicit operator System.Int128(System.Int64 value) => throw null; - public static implicit operator System.Int128(System.SByte value) => throw null; - public static implicit operator System.Int128(System.Int16 value) => throw null; - public static implicit operator System.Int128(System.UInt32 value) => throw null; - public static implicit operator System.Int128(System.UInt64 value) => throw null; - public static implicit operator System.Int128(System.UInt16 value) => throw null; - static System.Int128 System.Numerics.IBitwiseOperators.operator |(System.Int128 left, System.Int128 right) => throw null; - static System.Int128 System.Numerics.IBitwiseOperators.operator ~(System.Int128 value) => throw null; } - - public struct Int16 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators + public struct Int16 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IModulusOperators.operator %(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IBitwiseOperators.operator &(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IMultiplyOperators.operator *(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IUnaryPlusOperators.operator +(System.Int16 value) => throw null; - static System.Int16 System.Numerics.IAdditionOperators.operator +(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IIncrementOperators.operator ++(System.Int16 value) => throw null; - static System.Int16 System.Numerics.IUnaryNegationOperators.operator -(System.Int16 value) => throw null; - static System.Int16 System.Numerics.ISubtractionOperators.operator -(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IDecrementOperators.operator --(System.Int16 value) => throw null; - static System.Int16 System.Numerics.IDivisionOperators.operator /(System.Int16 left, System.Int16 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IShiftOperators.operator <<(System.Int16 value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.Int16 left, System.Int16 right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.Int16 left, System.Int16 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.Int16 left, System.Int16 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IShiftOperators.operator >>(System.Int16 value, int shiftAmount) => throw null; - static System.Int16 System.Numerics.IShiftOperators.operator >>>(System.Int16 value, int shiftAmount) => throw null; - public static System.Int16 Abs(System.Int16 value) => throw null; - static System.Int16 System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.Int16 System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.Int16 Clamp(System.Int16 value, System.Int16 min, System.Int16 max) => throw null; + static short System.Numerics.INumberBase.Abs(short value) => throw null; + static short System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static short System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + static short System.Numerics.INumber.Clamp(short value, short min, short max) => throw null; + public int CompareTo(short value) => throw null; public int CompareTo(object value) => throw null; - public int CompareTo(System.Int16 value) => throw null; - public static System.Int16 CopySign(System.Int16 value, System.Int16 sign) => throw null; - static System.Int16 System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.Int16 System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.Int16 System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.Int16, System.Int16) DivRem(System.Int16 left, System.Int16 right) => throw null; + static short System.Numerics.INumber.CopySign(short value, short sign) => throw null; + static short System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static short System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static short System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; + static (short Quotient, short Remainder) System.Numerics.IBinaryInteger.DivRem(short left, short right) => throw null; + public bool Equals(short obj) => throw null; public override bool Equals(object obj) => throw null; - public bool Equals(System.Int16 obj) => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; - int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; + int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; public System.TypeCode GetTypeCode() => throw null; - // Stub generator skipped constructor - public static bool IsCanonical(System.Int16 value) => throw null; - public static bool IsComplexNumber(System.Int16 value) => throw null; - public static bool IsEvenInteger(System.Int16 value) => throw null; - public static bool IsFinite(System.Int16 value) => throw null; - public static bool IsImaginaryNumber(System.Int16 value) => throw null; - public static bool IsInfinity(System.Int16 value) => throw null; - public static bool IsInteger(System.Int16 value) => throw null; - public static bool IsNaN(System.Int16 value) => throw null; - public static bool IsNegative(System.Int16 value) => throw null; - public static bool IsNegativeInfinity(System.Int16 value) => throw null; - public static bool IsNormal(System.Int16 value) => throw null; - public static bool IsOddInteger(System.Int16 value) => throw null; - public static bool IsPositive(System.Int16 value) => throw null; - public static bool IsPositiveInfinity(System.Int16 value) => throw null; - public static bool IsPow2(System.Int16 value) => throw null; - public static bool IsRealNumber(System.Int16 value) => throw null; - public static bool IsSubnormal(System.Int16 value) => throw null; - public static bool IsZero(System.Int16 value) => throw null; - public static System.Int16 LeadingZeroCount(System.Int16 value) => throw null; - public static System.Int16 Log2(System.Int16 value) => throw null; - public static System.Int16 Max(System.Int16 x, System.Int16 y) => throw null; - public static System.Int16 MaxMagnitude(System.Int16 x, System.Int16 y) => throw null; - public static System.Int16 MaxMagnitudeNumber(System.Int16 x, System.Int16 y) => throw null; - public static System.Int16 MaxNumber(System.Int16 x, System.Int16 y) => throw null; - public const System.Int16 MaxValue = default; - static System.Int16 System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.Int16 Min(System.Int16 x, System.Int16 y) => throw null; - public static System.Int16 MinMagnitude(System.Int16 x, System.Int16 y) => throw null; - public static System.Int16 MinMagnitudeNumber(System.Int16 x, System.Int16 y) => throw null; - public static System.Int16 MinNumber(System.Int16 x, System.Int16 y) => throw null; - public const System.Int16 MinValue = default; - static System.Int16 System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.Int16 System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - static System.Int16 System.Numerics.ISignedNumber.NegativeOne { get => throw null; } - static System.Int16 System.Numerics.INumberBase.One { get => throw null; } - public static System.Int16 Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.Int16 Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.Int16 Parse(string s) => throw null; - public static System.Int16 Parse(string s, System.IFormatProvider provider) => throw null; - public static System.Int16 Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.Int16 Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.Int16 PopCount(System.Int16 value) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.Int16 RotateLeft(System.Int16 value, int rotateAmount) => throw null; - public static System.Int16 RotateRight(System.Int16 value, int rotateAmount) => throw null; - public static int Sign(System.Int16 value) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(short value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(short value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(short value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(short value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(short value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(short value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(short value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(short value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(short value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(short value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(short value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(short value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(short value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(short value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(short value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(short value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(short value) => throw null; + static bool System.Numerics.INumberBase.IsZero(short value) => throw null; + static short System.Numerics.IBinaryInteger.LeadingZeroCount(short value) => throw null; + static short System.Numerics.IBinaryNumber.Log2(short value) => throw null; + static short System.Numerics.INumber.Max(short x, short y) => throw null; + static short System.Numerics.INumberBase.MaxMagnitude(short x, short y) => throw null; + static short System.Numerics.INumberBase.MaxMagnitudeNumber(short x, short y) => throw null; + static short System.Numerics.INumber.MaxNumber(short x, short y) => throw null; + public static short MaxValue; + static short System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static short System.Numerics.INumber.Min(short x, short y) => throw null; + static short System.Numerics.INumberBase.MinMagnitude(short x, short y) => throw null; + static short System.Numerics.INumberBase.MinMagnitudeNumber(short x, short y) => throw null; + static short System.Numerics.INumber.MinNumber(short x, short y) => throw null; + public static short MinValue; + static short System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static short System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static short System.Numerics.ISignedNumber.NegativeOne { get => throw null; } + static short System.Numerics.INumberBase.One { get => throw null; } + static short System.Numerics.IAdditionOperators.operator +(short left, short right) => throw null; + static short System.Numerics.IBitwiseOperators.operator &(short left, short right) => throw null; + static short System.Numerics.IBitwiseOperators.operator |(short left, short right) => throw null; + static short System.Numerics.IAdditionOperators.operator checked +(short left, short right) => throw null; + static short System.Numerics.IDecrementOperators.operator checked --(short value) => throw null; + static short System.Numerics.IIncrementOperators.operator checked ++(short value) => throw null; + static short System.Numerics.IMultiplyOperators.operator checked *(short left, short right) => throw null; + static short System.Numerics.ISubtractionOperators.operator checked -(short left, short right) => throw null; + static short System.Numerics.IUnaryNegationOperators.operator checked -(short value) => throw null; + static short System.Numerics.IDecrementOperators.operator --(short value) => throw null; + static short System.Numerics.IDivisionOperators.operator /(short left, short right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(short left, short right) => throw null; + static short System.Numerics.IBitwiseOperators.operator ^(short left, short right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(short left, short right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(short left, short right) => throw null; + static short System.Numerics.IIncrementOperators.operator ++(short value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(short left, short right) => throw null; + static short System.Numerics.IShiftOperators.operator <<(short value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(short left, short right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(short left, short right) => throw null; + static short System.Numerics.IModulusOperators.operator %(short left, short right) => throw null; + static short System.Numerics.IMultiplyOperators.operator *(short left, short right) => throw null; + static short System.Numerics.IBitwiseOperators.operator ~(short value) => throw null; + static short System.Numerics.IShiftOperators.operator >>(short value, int shiftAmount) => throw null; + static short System.Numerics.ISubtractionOperators.operator -(short left, short right) => throw null; + static short System.Numerics.IUnaryNegationOperators.operator -(short value) => throw null; + static short System.Numerics.IUnaryPlusOperators.operator +(short value) => throw null; + static short System.Numerics.IShiftOperators.operator >>>(short value, int shiftAmount) => throw null; + static short System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static short System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static short Parse(string s) => throw null; + public static short Parse(string s, System.Globalization.NumberStyles style) => throw null; + static short System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static short System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static short System.Numerics.IBinaryInteger.PopCount(short value) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static short System.Numerics.IBinaryInteger.RotateLeft(short value, int rotateAmount) => throw null; + static short System.Numerics.IBinaryInteger.RotateRight(short value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(short value) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.Int16 TrailingZeroCount(System.Int16 value) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.Int16 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.Int16 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.Int16 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.Int16 value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Int16 value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Int16 value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Int16 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Int16 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.Int16 result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Int16 result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Int16 result) => throw null; - public static bool TryParse(string s, out System.Int16 result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Int16 value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Int16 value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - static System.Int16 System.Numerics.INumberBase.Zero { get => throw null; } - static System.Int16 System.Numerics.IBitwiseOperators.operator ^(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IMultiplyOperators.operator checked *(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IAdditionOperators.operator checked +(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IIncrementOperators.operator checked ++(System.Int16 value) => throw null; - static System.Int16 System.Numerics.IUnaryNegationOperators.operator checked -(System.Int16 value) => throw null; - static System.Int16 System.Numerics.ISubtractionOperators.operator checked -(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IDecrementOperators.operator checked --(System.Int16 value) => throw null; - static System.Int16 System.Numerics.IBitwiseOperators.operator |(System.Int16 left, System.Int16 right) => throw null; - static System.Int16 System.Numerics.IBitwiseOperators.operator ~(System.Int16 value) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + static short System.Numerics.IBinaryInteger.TrailingZeroCount(short value) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out short result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out short result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out short result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(short value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(short value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(short value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out short result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out short result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out short result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out short result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out short result) => throw null; + public static bool TryParse(string s, out short result) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out short value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out short value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static short System.Numerics.INumberBase.Zero { get => throw null; } } - - public struct Int32 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators + public struct Int32 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(int left, int right) => throw null; - static int System.Numerics.IModulusOperators.operator %(int left, int right) => throw null; - static int System.Numerics.IBitwiseOperators.operator &(int left, int right) => throw null; - static int System.Numerics.IMultiplyOperators.operator *(int left, int right) => throw null; - static int System.Numerics.IUnaryPlusOperators.operator +(int value) => throw null; - static int System.Numerics.IAdditionOperators.operator +(int left, int right) => throw null; - static int System.Numerics.IIncrementOperators.operator ++(int value) => throw null; - static int System.Numerics.IUnaryNegationOperators.operator -(int value) => throw null; - static int System.Numerics.ISubtractionOperators.operator -(int left, int right) => throw null; - static int System.Numerics.IDecrementOperators.operator --(int value) => throw null; - static int System.Numerics.IDivisionOperators.operator /(int left, int right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(int left, int right) => throw null; - static int System.Numerics.IShiftOperators.operator <<(int value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(int left, int right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(int left, int right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(int left, int right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(int left, int right) => throw null; - static int System.Numerics.IShiftOperators.operator >>(int value, int shiftAmount) => throw null; - static int System.Numerics.IShiftOperators.operator >>>(int value, int shiftAmount) => throw null; + static int System.Numerics.INumberBase.Abs(int value) => throw null; public static int Abs(int value) => throw null; static int System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } static int System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static int Clamp(int value, int min, int max) => throw null; + static int System.Numerics.INumber.Clamp(int value, int min, int max) => throw null; public int CompareTo(int value) => throw null; public int CompareTo(object value) => throw null; - public static int CopySign(int value, int sign) => throw null; + static int System.Numerics.INumber.CopySign(int value, int sign) => throw null; static int System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + public static int CreateChecked(TOther value) => throw null; static int System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + public static int CreateSaturating(TOther value) => throw null; static int System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (int, int) DivRem(int left, int right) => throw null; + public static int CreateTruncating(TOther value) => throw null; + static (int Quotient, int Remainder) System.Numerics.IBinaryInteger.DivRem(int left, int right) => throw null; public bool Equals(int obj) => throw null; public override bool Equals(object obj) => throw null; int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; public System.TypeCode GetTypeCode() => throw null; - // Stub generator skipped constructor - public static bool IsCanonical(int value) => throw null; - public static bool IsComplexNumber(int value) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(int value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(int value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(int value) => throw null; public static bool IsEvenInteger(int value) => throw null; - public static bool IsFinite(int value) => throw null; - public static bool IsImaginaryNumber(int value) => throw null; - public static bool IsInfinity(int value) => throw null; - public static bool IsInteger(int value) => throw null; - public static bool IsNaN(int value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(int value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(int value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(int value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(int value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(int value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(int value) => throw null; public static bool IsNegative(int value) => throw null; - public static bool IsNegativeInfinity(int value) => throw null; - public static bool IsNormal(int value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(int value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(int value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(int value) => throw null; public static bool IsOddInteger(int value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(int value) => throw null; public static bool IsPositive(int value) => throw null; - public static bool IsPositiveInfinity(int value) => throw null; - public static bool IsPow2(int value) => throw null; - public static bool IsRealNumber(int value) => throw null; - public static bool IsSubnormal(int value) => throw null; - public static bool IsZero(int value) => throw null; - public static int LeadingZeroCount(int value) => throw null; - public static int Log2(int value) => throw null; - public static int Max(int x, int y) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(int value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(int value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(int value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(int value) => throw null; + static bool System.Numerics.INumberBase.IsZero(int value) => throw null; + static int System.Numerics.IBinaryInteger.LeadingZeroCount(int value) => throw null; + static int System.Numerics.IBinaryNumber.Log2(int value) => throw null; + static int System.Numerics.INumber.Max(int x, int y) => throw null; + static int System.Numerics.INumberBase.MaxMagnitude(int x, int y) => throw null; public static int MaxMagnitude(int x, int y) => throw null; - public static int MaxMagnitudeNumber(int x, int y) => throw null; - public static int MaxNumber(int x, int y) => throw null; - public const int MaxValue = default; + static int System.Numerics.INumberBase.MaxMagnitudeNumber(int x, int y) => throw null; + static int System.Numerics.INumber.MaxNumber(int x, int y) => throw null; + public static int MaxValue; static int System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static int Min(int x, int y) => throw null; + static int System.Numerics.INumber.Min(int x, int y) => throw null; + static int System.Numerics.INumberBase.MinMagnitude(int x, int y) => throw null; public static int MinMagnitude(int x, int y) => throw null; - public static int MinMagnitudeNumber(int x, int y) => throw null; - public static int MinNumber(int x, int y) => throw null; - public const int MinValue = default; + static int System.Numerics.INumberBase.MinMagnitudeNumber(int x, int y) => throw null; + static int System.Numerics.INumber.MinNumber(int x, int y) => throw null; + public static int MinValue; static int System.Numerics.IMinMaxValue.MinValue { get => throw null; } static int System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static int System.Numerics.ISignedNumber.NegativeOne { get => throw null; } static int System.Numerics.INumberBase.One { get => throw null; } - public static int Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static int Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static int System.Numerics.IAdditionOperators.operator +(int left, int right) => throw null; + static int System.Numerics.IBitwiseOperators.operator &(int left, int right) => throw null; + static int System.Numerics.IBitwiseOperators.operator |(int left, int right) => throw null; + static int System.Numerics.IAdditionOperators.operator checked +(int left, int right) => throw null; + static int System.Numerics.IDecrementOperators.operator checked --(int value) => throw null; + static int System.Numerics.IIncrementOperators.operator checked ++(int value) => throw null; + static int System.Numerics.IMultiplyOperators.operator checked *(int left, int right) => throw null; + static int System.Numerics.ISubtractionOperators.operator checked -(int left, int right) => throw null; + static int System.Numerics.IUnaryNegationOperators.operator checked -(int value) => throw null; + static int System.Numerics.IDecrementOperators.operator --(int value) => throw null; + static int System.Numerics.IDivisionOperators.operator /(int left, int right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(int left, int right) => throw null; + static int System.Numerics.IBitwiseOperators.operator ^(int left, int right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(int left, int right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(int left, int right) => throw null; + static int System.Numerics.IIncrementOperators.operator ++(int value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(int left, int right) => throw null; + static int System.Numerics.IShiftOperators.operator <<(int value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(int left, int right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(int left, int right) => throw null; + static int System.Numerics.IModulusOperators.operator %(int left, int right) => throw null; + static int System.Numerics.IMultiplyOperators.operator *(int left, int right) => throw null; + static int System.Numerics.IBitwiseOperators.operator ~(int value) => throw null; + static int System.Numerics.IShiftOperators.operator >>(int value, int shiftAmount) => throw null; + static int System.Numerics.ISubtractionOperators.operator -(int left, int right) => throw null; + static int System.Numerics.IUnaryNegationOperators.operator -(int value) => throw null; + static int System.Numerics.IUnaryPlusOperators.operator +(int value) => throw null; + static int System.Numerics.IShiftOperators.operator >>>(int value, int shiftAmount) => throw null; + static int System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + public static int Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static int System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; public static int Parse(string s) => throw null; - public static int Parse(string s, System.IFormatProvider provider) => throw null; public static int Parse(string s, System.Globalization.NumberStyles style) => throw null; + static int System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; public static int Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static int PopCount(int value) => throw null; + static int System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static int System.Numerics.IBinaryInteger.PopCount(int value) => throw null; static int System.Numerics.INumberBase.Radix { get => throw null; } - public static int RotateLeft(int value, int rotateAmount) => throw null; - public static int RotateRight(int value, int rotateAmount) => throw null; - public static int Sign(int value) => throw null; + static int System.Numerics.IBinaryInteger.RotateLeft(int value, int rotateAmount) => throw null; + static int System.Numerics.IBinaryInteger.RotateRight(int value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(int value) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static int TrailingZeroCount(int value) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + static int System.Numerics.IBinaryInteger.TrailingZeroCount(int value) => throw null; static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out int result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out int result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out int result) => throw null; static bool System.Numerics.INumberBase.TryConvertToChecked(int value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToSaturating(int value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToTruncating(int value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out int result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out int result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out int result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out int result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out int result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out int result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out int result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out int result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out int result) => throw null; public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out int result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out int result) => throw null; public static bool TryParse(string s, out int result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out int value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out int value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out int value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out int value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static int System.Numerics.INumberBase.Zero { get => throw null; } - static int System.Numerics.IBitwiseOperators.operator ^(int left, int right) => throw null; - static int System.Numerics.IMultiplyOperators.operator checked *(int left, int right) => throw null; - static int System.Numerics.IAdditionOperators.operator checked +(int left, int right) => throw null; - static int System.Numerics.IIncrementOperators.operator checked ++(int value) => throw null; - static int System.Numerics.IUnaryNegationOperators.operator checked -(int value) => throw null; - static int System.Numerics.ISubtractionOperators.operator checked -(int left, int right) => throw null; - static int System.Numerics.IDecrementOperators.operator checked --(int value) => throw null; - static int System.Numerics.IBitwiseOperators.operator |(int left, int right) => throw null; - static int System.Numerics.IBitwiseOperators.operator ~(int value) => throw null; } - - public struct Int64 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators + public struct Int64 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IModulusOperators.operator %(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IBitwiseOperators.operator &(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IMultiplyOperators.operator *(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IUnaryPlusOperators.operator +(System.Int64 value) => throw null; - static System.Int64 System.Numerics.IAdditionOperators.operator +(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IIncrementOperators.operator ++(System.Int64 value) => throw null; - static System.Int64 System.Numerics.IUnaryNegationOperators.operator -(System.Int64 value) => throw null; - static System.Int64 System.Numerics.ISubtractionOperators.operator -(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IDecrementOperators.operator --(System.Int64 value) => throw null; - static System.Int64 System.Numerics.IDivisionOperators.operator /(System.Int64 left, System.Int64 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IShiftOperators.operator <<(System.Int64 value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.Int64 left, System.Int64 right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.Int64 left, System.Int64 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.Int64 left, System.Int64 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IShiftOperators.operator >>(System.Int64 value, int shiftAmount) => throw null; - static System.Int64 System.Numerics.IShiftOperators.operator >>>(System.Int64 value, int shiftAmount) => throw null; - public static System.Int64 Abs(System.Int64 value) => throw null; - static System.Int64 System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.Int64 System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.Int64 Clamp(System.Int64 value, System.Int64 min, System.Int64 max) => throw null; - public int CompareTo(System.Int64 value) => throw null; + static long System.Numerics.INumberBase.Abs(long value) => throw null; + static long System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static long System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + static long System.Numerics.INumber.Clamp(long value, long min, long max) => throw null; + public int CompareTo(long value) => throw null; public int CompareTo(object value) => throw null; - public static System.Int64 CopySign(System.Int64 value, System.Int64 sign) => throw null; - static System.Int64 System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.Int64 System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.Int64 System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.Int64, System.Int64) DivRem(System.Int64 left, System.Int64 right) => throw null; - public bool Equals(System.Int64 obj) => throw null; + static long System.Numerics.INumber.CopySign(long value, long sign) => throw null; + static long System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static long System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static long System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; + static (long Quotient, long Remainder) System.Numerics.IBinaryInteger.DivRem(long left, long right) => throw null; + public bool Equals(long obj) => throw null; public override bool Equals(object obj) => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; - int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; + int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; public System.TypeCode GetTypeCode() => throw null; - // Stub generator skipped constructor - public static bool IsCanonical(System.Int64 value) => throw null; - public static bool IsComplexNumber(System.Int64 value) => throw null; - public static bool IsEvenInteger(System.Int64 value) => throw null; - public static bool IsFinite(System.Int64 value) => throw null; - public static bool IsImaginaryNumber(System.Int64 value) => throw null; - public static bool IsInfinity(System.Int64 value) => throw null; - public static bool IsInteger(System.Int64 value) => throw null; - public static bool IsNaN(System.Int64 value) => throw null; - public static bool IsNegative(System.Int64 value) => throw null; - public static bool IsNegativeInfinity(System.Int64 value) => throw null; - public static bool IsNormal(System.Int64 value) => throw null; - public static bool IsOddInteger(System.Int64 value) => throw null; - public static bool IsPositive(System.Int64 value) => throw null; - public static bool IsPositiveInfinity(System.Int64 value) => throw null; - public static bool IsPow2(System.Int64 value) => throw null; - public static bool IsRealNumber(System.Int64 value) => throw null; - public static bool IsSubnormal(System.Int64 value) => throw null; - public static bool IsZero(System.Int64 value) => throw null; - public static System.Int64 LeadingZeroCount(System.Int64 value) => throw null; - public static System.Int64 Log2(System.Int64 value) => throw null; - public static System.Int64 Max(System.Int64 x, System.Int64 y) => throw null; - public static System.Int64 MaxMagnitude(System.Int64 x, System.Int64 y) => throw null; - public static System.Int64 MaxMagnitudeNumber(System.Int64 x, System.Int64 y) => throw null; - public static System.Int64 MaxNumber(System.Int64 x, System.Int64 y) => throw null; - public const System.Int64 MaxValue = default; - static System.Int64 System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.Int64 Min(System.Int64 x, System.Int64 y) => throw null; - public static System.Int64 MinMagnitude(System.Int64 x, System.Int64 y) => throw null; - public static System.Int64 MinMagnitudeNumber(System.Int64 x, System.Int64 y) => throw null; - public static System.Int64 MinNumber(System.Int64 x, System.Int64 y) => throw null; - public const System.Int64 MinValue = default; - static System.Int64 System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.Int64 System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - static System.Int64 System.Numerics.ISignedNumber.NegativeOne { get => throw null; } - static System.Int64 System.Numerics.INumberBase.One { get => throw null; } - public static System.Int64 Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.Int64 Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.Int64 Parse(string s) => throw null; - public static System.Int64 Parse(string s, System.IFormatProvider provider) => throw null; - public static System.Int64 Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.Int64 Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.Int64 PopCount(System.Int64 value) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.Int64 RotateLeft(System.Int64 value, int rotateAmount) => throw null; - public static System.Int64 RotateRight(System.Int64 value, int rotateAmount) => throw null; - public static int Sign(System.Int64 value) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(long value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(long value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(long value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(long value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(long value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(long value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(long value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(long value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(long value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(long value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(long value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(long value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(long value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(long value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(long value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(long value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(long value) => throw null; + static bool System.Numerics.INumberBase.IsZero(long value) => throw null; + static long System.Numerics.IBinaryInteger.LeadingZeroCount(long value) => throw null; + static long System.Numerics.IBinaryNumber.Log2(long value) => throw null; + static long System.Numerics.INumber.Max(long x, long y) => throw null; + static long System.Numerics.INumberBase.MaxMagnitude(long x, long y) => throw null; + static long System.Numerics.INumberBase.MaxMagnitudeNumber(long x, long y) => throw null; + static long System.Numerics.INumber.MaxNumber(long x, long y) => throw null; + public static long MaxValue; + static long System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static long System.Numerics.INumber.Min(long x, long y) => throw null; + static long System.Numerics.INumberBase.MinMagnitude(long x, long y) => throw null; + static long System.Numerics.INumberBase.MinMagnitudeNumber(long x, long y) => throw null; + static long System.Numerics.INumber.MinNumber(long x, long y) => throw null; + public static long MinValue; + static long System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static long System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static long System.Numerics.ISignedNumber.NegativeOne { get => throw null; } + static long System.Numerics.INumberBase.One { get => throw null; } + static long System.Numerics.IAdditionOperators.operator +(long left, long right) => throw null; + static long System.Numerics.IBitwiseOperators.operator &(long left, long right) => throw null; + static long System.Numerics.IBitwiseOperators.operator |(long left, long right) => throw null; + static long System.Numerics.IAdditionOperators.operator checked +(long left, long right) => throw null; + static long System.Numerics.IDecrementOperators.operator checked --(long value) => throw null; + static long System.Numerics.IIncrementOperators.operator checked ++(long value) => throw null; + static long System.Numerics.IMultiplyOperators.operator checked *(long left, long right) => throw null; + static long System.Numerics.ISubtractionOperators.operator checked -(long left, long right) => throw null; + static long System.Numerics.IUnaryNegationOperators.operator checked -(long value) => throw null; + static long System.Numerics.IDecrementOperators.operator --(long value) => throw null; + static long System.Numerics.IDivisionOperators.operator /(long left, long right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(long left, long right) => throw null; + static long System.Numerics.IBitwiseOperators.operator ^(long left, long right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(long left, long right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(long left, long right) => throw null; + static long System.Numerics.IIncrementOperators.operator ++(long value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(long left, long right) => throw null; + static long System.Numerics.IShiftOperators.operator <<(long value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(long left, long right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(long left, long right) => throw null; + static long System.Numerics.IModulusOperators.operator %(long left, long right) => throw null; + static long System.Numerics.IMultiplyOperators.operator *(long left, long right) => throw null; + static long System.Numerics.IBitwiseOperators.operator ~(long value) => throw null; + static long System.Numerics.IShiftOperators.operator >>(long value, int shiftAmount) => throw null; + static long System.Numerics.ISubtractionOperators.operator -(long left, long right) => throw null; + static long System.Numerics.IUnaryNegationOperators.operator -(long value) => throw null; + static long System.Numerics.IUnaryPlusOperators.operator +(long value) => throw null; + static long System.Numerics.IShiftOperators.operator >>>(long value, int shiftAmount) => throw null; + static long System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static long System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static long Parse(string s) => throw null; + public static long Parse(string s, System.Globalization.NumberStyles style) => throw null; + static long System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static long System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static long System.Numerics.IBinaryInteger.PopCount(long value) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static long System.Numerics.IBinaryInteger.RotateLeft(long value, int rotateAmount) => throw null; + static long System.Numerics.IBinaryInteger.RotateRight(long value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(long value) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.Int64 TrailingZeroCount(System.Int64 value) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.Int64 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.Int64 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.Int64 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.Int64 value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.Int64 value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.Int64 value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Int64 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Int64 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.Int64 result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.Int64 result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Int64 result) => throw null; - public static bool TryParse(string s, out System.Int64 result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Int64 value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.Int64 value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - static System.Int64 System.Numerics.INumberBase.Zero { get => throw null; } - static System.Int64 System.Numerics.IBitwiseOperators.operator ^(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IMultiplyOperators.operator checked *(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IAdditionOperators.operator checked +(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IIncrementOperators.operator checked ++(System.Int64 value) => throw null; - static System.Int64 System.Numerics.IUnaryNegationOperators.operator checked -(System.Int64 value) => throw null; - static System.Int64 System.Numerics.ISubtractionOperators.operator checked -(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IDecrementOperators.operator checked --(System.Int64 value) => throw null; - static System.Int64 System.Numerics.IBitwiseOperators.operator |(System.Int64 left, System.Int64 right) => throw null; - static System.Int64 System.Numerics.IBitwiseOperators.operator ~(System.Int64 value) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + static long System.Numerics.IBinaryInteger.TrailingZeroCount(long value) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out long result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out long result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out long result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(long value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(long value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(long value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out long result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out long result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out long result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out long result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out long result) => throw null; + public static bool TryParse(string s, out long result) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out long value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out long value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static long System.Numerics.INumberBase.Zero { get => throw null; } } - - public struct IntPtr : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Runtime.Serialization.ISerializable + public struct IntPtr : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber, System.Runtime.Serialization.ISerializable { - static bool System.Numerics.IEqualityOperators.operator !=(System.IntPtr value1, System.IntPtr value2) => throw null; - static System.IntPtr System.Numerics.IModulusOperators.operator %(System.IntPtr left, System.IntPtr right) => throw null; - static System.IntPtr System.Numerics.IBitwiseOperators.operator &(System.IntPtr left, System.IntPtr right) => throw null; - static System.IntPtr System.Numerics.IMultiplyOperators.operator *(System.IntPtr left, System.IntPtr right) => throw null; - static System.IntPtr System.Numerics.IUnaryPlusOperators.operator +(System.IntPtr value) => throw null; - static System.IntPtr System.Numerics.IAdditionOperators.operator +(System.IntPtr left, System.IntPtr right) => throw null; - public static System.IntPtr operator +(System.IntPtr pointer, int offset) => throw null; - static System.IntPtr System.Numerics.IIncrementOperators.operator ++(System.IntPtr value) => throw null; - static System.IntPtr System.Numerics.IUnaryNegationOperators.operator -(System.IntPtr value) => throw null; - static System.IntPtr System.Numerics.ISubtractionOperators.operator -(System.IntPtr left, System.IntPtr right) => throw null; - public static System.IntPtr operator -(System.IntPtr pointer, int offset) => throw null; - static System.IntPtr System.Numerics.IDecrementOperators.operator --(System.IntPtr value) => throw null; - static System.IntPtr System.Numerics.IDivisionOperators.operator /(System.IntPtr left, System.IntPtr right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.IntPtr left, System.IntPtr right) => throw null; - static System.IntPtr System.Numerics.IShiftOperators.operator <<(System.IntPtr value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.IntPtr left, System.IntPtr right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.IntPtr value1, System.IntPtr value2) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.IntPtr left, System.IntPtr right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.IntPtr left, System.IntPtr right) => throw null; - static System.IntPtr System.Numerics.IShiftOperators.operator >>(System.IntPtr value, int shiftAmount) => throw null; - static System.IntPtr System.Numerics.IShiftOperators.operator >>>(System.IntPtr value, int shiftAmount) => throw null; - public static System.IntPtr Abs(System.IntPtr value) => throw null; - public static System.IntPtr Add(System.IntPtr pointer, int offset) => throw null; - static System.IntPtr System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.IntPtr System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.IntPtr Clamp(System.IntPtr value, System.IntPtr min, System.IntPtr max) => throw null; - public int CompareTo(System.IntPtr value) => throw null; + static nint System.Numerics.INumberBase.Abs(nint value) => throw null; + public static nint Add(nint pointer, int offset) => throw null; + static nint System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static nint System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + static nint System.Numerics.INumber.Clamp(nint value, nint min, nint max) => throw null; + public int CompareTo(nint value) => throw null; public int CompareTo(object value) => throw null; - public static System.IntPtr CopySign(System.IntPtr value, System.IntPtr sign) => throw null; - static System.IntPtr System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.IntPtr System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.IntPtr System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.IntPtr, System.IntPtr) DivRem(System.IntPtr left, System.IntPtr right) => throw null; - public bool Equals(System.IntPtr other) => throw null; + static nint System.Numerics.INumber.CopySign(nint value, nint sign) => throw null; + static nint System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static nint System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static nint System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; + public IntPtr(int value) => throw null; + public IntPtr(long value) => throw null; + public unsafe IntPtr(void* value) => throw null; + static (nint Quotient, nint Remainder) System.Numerics.IBinaryInteger.DivRem(nint left, nint right) => throw null; + public bool Equals(nint other) => throw null; public override bool Equals(object obj) => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; - // Stub generator skipped constructor - unsafe public IntPtr(void* value) => throw null; - public IntPtr(int value) => throw null; - public IntPtr(System.Int64 value) => throw null; - public static bool IsCanonical(System.IntPtr value) => throw null; - public static bool IsComplexNumber(System.IntPtr value) => throw null; - public static bool IsEvenInteger(System.IntPtr value) => throw null; - public static bool IsFinite(System.IntPtr value) => throw null; - public static bool IsImaginaryNumber(System.IntPtr value) => throw null; - public static bool IsInfinity(System.IntPtr value) => throw null; - public static bool IsInteger(System.IntPtr value) => throw null; - public static bool IsNaN(System.IntPtr value) => throw null; - public static bool IsNegative(System.IntPtr value) => throw null; - public static bool IsNegativeInfinity(System.IntPtr value) => throw null; - public static bool IsNormal(System.IntPtr value) => throw null; - public static bool IsOddInteger(System.IntPtr value) => throw null; - public static bool IsPositive(System.IntPtr value) => throw null; - public static bool IsPositiveInfinity(System.IntPtr value) => throw null; - public static bool IsPow2(System.IntPtr value) => throw null; - public static bool IsRealNumber(System.IntPtr value) => throw null; - public static bool IsSubnormal(System.IntPtr value) => throw null; - public static bool IsZero(System.IntPtr value) => throw null; - public static System.IntPtr LeadingZeroCount(System.IntPtr value) => throw null; - public static System.IntPtr Log2(System.IntPtr value) => throw null; - public static System.IntPtr Max(System.IntPtr x, System.IntPtr y) => throw null; - public static System.IntPtr MaxMagnitude(System.IntPtr x, System.IntPtr y) => throw null; - public static System.IntPtr MaxMagnitudeNumber(System.IntPtr x, System.IntPtr y) => throw null; - public static System.IntPtr MaxNumber(System.IntPtr x, System.IntPtr y) => throw null; - public static System.IntPtr MaxValue { get => throw null; } - static System.IntPtr System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.IntPtr Min(System.IntPtr x, System.IntPtr y) => throw null; - public static System.IntPtr MinMagnitude(System.IntPtr x, System.IntPtr y) => throw null; - public static System.IntPtr MinMagnitudeNumber(System.IntPtr x, System.IntPtr y) => throw null; - public static System.IntPtr MinNumber(System.IntPtr x, System.IntPtr y) => throw null; - public static System.IntPtr MinValue { get => throw null; } - static System.IntPtr System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.IntPtr System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - static System.IntPtr System.Numerics.ISignedNumber.NegativeOne { get => throw null; } - static System.IntPtr System.Numerics.INumberBase.One { get => throw null; } - public static System.IntPtr Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.IntPtr Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.IntPtr Parse(string s) => throw null; - public static System.IntPtr Parse(string s, System.IFormatProvider provider) => throw null; - public static System.IntPtr Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.IntPtr Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.IntPtr PopCount(System.IntPtr value) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.IntPtr RotateLeft(System.IntPtr value, int rotateAmount) => throw null; - public static System.IntPtr RotateRight(System.IntPtr value, int rotateAmount) => throw null; - public static int Sign(System.IntPtr value) => throw null; + int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; + static bool System.Numerics.INumberBase.IsCanonical(nint value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(nint value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(nint value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(nint value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(nint value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(nint value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(nint value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(nint value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(nint value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(nint value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(nint value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(nint value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(nint value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(nint value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(nint value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(nint value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(nint value) => throw null; + static bool System.Numerics.INumberBase.IsZero(nint value) => throw null; + static nint System.Numerics.IBinaryInteger.LeadingZeroCount(nint value) => throw null; + static nint System.Numerics.IBinaryNumber.Log2(nint value) => throw null; + static nint System.Numerics.INumber.Max(nint x, nint y) => throw null; + static nint System.Numerics.INumberBase.MaxMagnitude(nint x, nint y) => throw null; + static nint System.Numerics.INumberBase.MaxMagnitudeNumber(nint x, nint y) => throw null; + static nint System.Numerics.INumber.MaxNumber(nint x, nint y) => throw null; + public static nint MaxValue { get => throw null; } + static nint System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static nint System.Numerics.INumber.Min(nint x, nint y) => throw null; + static nint System.Numerics.INumberBase.MinMagnitude(nint x, nint y) => throw null; + static nint System.Numerics.INumberBase.MinMagnitudeNumber(nint x, nint y) => throw null; + static nint System.Numerics.INumber.MinNumber(nint x, nint y) => throw null; + public static nint MinValue { get => throw null; } + static nint System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static nint System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static nint System.Numerics.ISignedNumber.NegativeOne { get => throw null; } + static nint System.Numerics.INumberBase.One { get => throw null; } + public static nint operator +(nint pointer, int offset) => throw null; + static nint System.Numerics.IAdditionOperators.operator +(nint left, nint right) => throw null; + static nint System.Numerics.IBitwiseOperators.operator &(nint left, nint right) => throw null; + static nint System.Numerics.IBitwiseOperators.operator |(nint left, nint right) => throw null; + static nint System.Numerics.IAdditionOperators.operator checked +(nint left, nint right) => throw null; + static nint System.Numerics.IDecrementOperators.operator checked --(nint value) => throw null; + static nint System.Numerics.IIncrementOperators.operator checked ++(nint value) => throw null; + static nint System.Numerics.IMultiplyOperators.operator checked *(nint left, nint right) => throw null; + static nint System.Numerics.ISubtractionOperators.operator checked -(nint left, nint right) => throw null; + static nint System.Numerics.IUnaryNegationOperators.operator checked -(nint value) => throw null; + static nint System.Numerics.IDecrementOperators.operator --(nint value) => throw null; + static nint System.Numerics.IDivisionOperators.operator /(nint left, nint right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(nint value1, nint value2) => throw null; + static nint System.Numerics.IBitwiseOperators.operator ^(nint left, nint right) => throw null; + public static explicit operator nint(int value) => throw null; + public static explicit operator nint(long value) => throw null; + public static explicit operator int(nint value) => throw null; + public static explicit operator long(nint value) => throw null; + public static unsafe explicit operator void*(nint value) => throw null; + public static unsafe explicit operator nint(void* value) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(nint left, nint right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(nint left, nint right) => throw null; + static nint System.Numerics.IIncrementOperators.operator ++(nint value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(nint value1, nint value2) => throw null; + static nint System.Numerics.IShiftOperators.operator <<(nint value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(nint left, nint right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(nint left, nint right) => throw null; + static nint System.Numerics.IModulusOperators.operator %(nint left, nint right) => throw null; + static nint System.Numerics.IMultiplyOperators.operator *(nint left, nint right) => throw null; + static nint System.Numerics.IBitwiseOperators.operator ~(nint value) => throw null; + static nint System.Numerics.IShiftOperators.operator >>(nint value, int shiftAmount) => throw null; + public static nint operator -(nint pointer, int offset) => throw null; + static nint System.Numerics.ISubtractionOperators.operator -(nint left, nint right) => throw null; + static nint System.Numerics.IUnaryNegationOperators.operator -(nint value) => throw null; + static nint System.Numerics.IUnaryPlusOperators.operator +(nint value) => throw null; + static nint System.Numerics.IShiftOperators.operator >>>(nint value, int shiftAmount) => throw null; + static nint System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static nint System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static nint Parse(string s) => throw null; + public static nint Parse(string s, System.Globalization.NumberStyles style) => throw null; + static nint System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static nint System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static nint System.Numerics.IBinaryInteger.PopCount(nint value) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static nint System.Numerics.IBinaryInteger.RotateLeft(nint value, int rotateAmount) => throw null; + static nint System.Numerics.IBinaryInteger.RotateRight(nint value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(nint value) => throw null; public static int Size { get => throw null; } - public static System.IntPtr Subtract(System.IntPtr pointer, int offset) => throw null; + public static nint Subtract(nint pointer, int offset) => throw null; public int ToInt32() => throw null; - public System.Int64 ToInt64() => throw null; - unsafe public void* ToPointer() => throw null; + public long ToInt64() => throw null; + public unsafe void* ToPointer() => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; - public static System.IntPtr TrailingZeroCount(System.IntPtr value) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.IntPtr result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.IntPtr result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.IntPtr result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.IntPtr value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.IntPtr value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.IntPtr value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.IntPtr result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.IntPtr result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.IntPtr result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.IntPtr result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.IntPtr result) => throw null; - public static bool TryParse(string s, out System.IntPtr result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.IntPtr value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.IntPtr value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - public static System.IntPtr Zero; - static System.IntPtr System.Numerics.INumberBase.Zero { get => throw null; } - static System.IntPtr System.Numerics.IBitwiseOperators.operator ^(System.IntPtr left, System.IntPtr right) => throw null; - static System.IntPtr System.Numerics.IMultiplyOperators.operator checked *(System.IntPtr left, System.IntPtr right) => throw null; - static System.IntPtr System.Numerics.IAdditionOperators.operator checked +(System.IntPtr left, System.IntPtr right) => throw null; - static System.IntPtr System.Numerics.IIncrementOperators.operator checked ++(System.IntPtr value) => throw null; - static System.IntPtr System.Numerics.IUnaryNegationOperators.operator checked -(System.IntPtr value) => throw null; - static System.IntPtr System.Numerics.ISubtractionOperators.operator checked -(System.IntPtr left, System.IntPtr right) => throw null; - static System.IntPtr System.Numerics.IDecrementOperators.operator checked --(System.IntPtr value) => throw null; - public static explicit operator System.Int64(System.IntPtr value) => throw null; - public static explicit operator int(System.IntPtr value) => throw null; - unsafe public static explicit operator void*(System.IntPtr value) => throw null; - unsafe public static explicit operator System.IntPtr(void* value) => throw null; - public static explicit operator System.IntPtr(int value) => throw null; - public static explicit operator System.IntPtr(System.Int64 value) => throw null; - static System.IntPtr System.Numerics.IBitwiseOperators.operator |(System.IntPtr left, System.IntPtr right) => throw null; - static System.IntPtr System.Numerics.IBitwiseOperators.operator ~(System.IntPtr value) => throw null; + static nint System.Numerics.IBinaryInteger.TrailingZeroCount(nint value) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out nint result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out nint result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out nint result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(nint value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(nint value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(nint value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out nint result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out nint result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out nint result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out nint result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out nint result) => throw null; + public static bool TryParse(string s, out nint result) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out nint value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out nint value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + public static nint Zero; + static nint System.Numerics.INumberBase.Zero { get => throw null; } } - public class InvalidCastException : System.SystemException { public InvalidCastException() => throw null; @@ -3696,7 +5382,6 @@ namespace System public InvalidCastException(string message, System.Exception innerException) => throw null; public InvalidCastException(string message, int errorCode) => throw null; } - public class InvalidOperationException : System.SystemException { public InvalidOperationException() => throw null; @@ -3704,14 +5389,12 @@ namespace System public InvalidOperationException(string message) => throw null; public InvalidOperationException(string message, System.Exception innerException) => throw null; } - - public class InvalidProgramException : System.SystemException + public sealed class InvalidProgramException : System.SystemException { public InvalidProgramException() => throw null; public InvalidProgramException(string message) => throw null; public InvalidProgramException(string message, System.Exception inner) => throw null; } - public class InvalidTimeZoneException : System.Exception { public InvalidTimeZoneException() => throw null; @@ -3719,77 +5402,1155 @@ namespace System public InvalidTimeZoneException(string message) => throw null; public InvalidTimeZoneException(string message, System.Exception innerException) => throw null; } - - public class Lazy : System.Lazy + namespace IO { - public Lazy(System.Func valueFactory, TMetadata metadata) => throw null; - public Lazy(System.Func valueFactory, TMetadata metadata, System.Threading.LazyThreadSafetyMode mode) => throw null; - public Lazy(System.Func valueFactory, TMetadata metadata, bool isThreadSafe) => throw null; - public Lazy(TMetadata metadata) => throw null; - public Lazy(TMetadata metadata, System.Threading.LazyThreadSafetyMode mode) => throw null; - public Lazy(TMetadata metadata, bool isThreadSafe) => throw null; - public TMetadata Metadata { get => throw null; } + public class BinaryReader : System.IDisposable + { + public virtual System.IO.Stream BaseStream { get => throw null; } + public virtual void Close() => throw null; + public BinaryReader(System.IO.Stream input) => throw null; + public BinaryReader(System.IO.Stream input, System.Text.Encoding encoding) => throw null; + public BinaryReader(System.IO.Stream input, System.Text.Encoding encoding, bool leaveOpen) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + protected virtual void FillBuffer(int numBytes) => throw null; + public virtual int PeekChar() => throw null; + public virtual int Read() => throw null; + public virtual int Read(byte[] buffer, int index, int count) => throw null; + public virtual int Read(char[] buffer, int index, int count) => throw null; + public virtual int Read(System.Span buffer) => throw null; + public virtual int Read(System.Span buffer) => throw null; + public int Read7BitEncodedInt() => throw null; + public long Read7BitEncodedInt64() => throw null; + public virtual bool ReadBoolean() => throw null; + public virtual byte ReadByte() => throw null; + public virtual byte[] ReadBytes(int count) => throw null; + public virtual char ReadChar() => throw null; + public virtual char[] ReadChars(int count) => throw null; + public virtual decimal ReadDecimal() => throw null; + public virtual double ReadDouble() => throw null; + public virtual System.Half ReadHalf() => throw null; + public virtual short ReadInt16() => throw null; + public virtual int ReadInt32() => throw null; + public virtual long ReadInt64() => throw null; + public virtual sbyte ReadSByte() => throw null; + public virtual float ReadSingle() => throw null; + public virtual string ReadString() => throw null; + public virtual ushort ReadUInt16() => throw null; + public virtual uint ReadUInt32() => throw null; + public virtual ulong ReadUInt64() => throw null; + } + public class BinaryWriter : System.IAsyncDisposable, System.IDisposable + { + public virtual System.IO.Stream BaseStream { get => throw null; } + public virtual void Close() => throw null; + protected BinaryWriter() => throw null; + public BinaryWriter(System.IO.Stream output) => throw null; + public BinaryWriter(System.IO.Stream output, System.Text.Encoding encoding) => throw null; + public BinaryWriter(System.IO.Stream output, System.Text.Encoding encoding, bool leaveOpen) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public virtual void Flush() => throw null; + public static System.IO.BinaryWriter Null; + protected System.IO.Stream OutStream; + public virtual long Seek(int offset, System.IO.SeekOrigin origin) => throw null; + public virtual void Write(bool value) => throw null; + public virtual void Write(byte value) => throw null; + public virtual void Write(byte[] buffer) => throw null; + public virtual void Write(byte[] buffer, int index, int count) => throw null; + public virtual void Write(char ch) => throw null; + public virtual void Write(char[] chars) => throw null; + public virtual void Write(char[] chars, int index, int count) => throw null; + public virtual void Write(decimal value) => throw null; + public virtual void Write(double value) => throw null; + public virtual void Write(System.Half value) => throw null; + public virtual void Write(short value) => throw null; + public virtual void Write(int value) => throw null; + public virtual void Write(long value) => throw null; + public virtual void Write(System.ReadOnlySpan buffer) => throw null; + public virtual void Write(System.ReadOnlySpan chars) => throw null; + public virtual void Write(sbyte value) => throw null; + public virtual void Write(float value) => throw null; + public virtual void Write(string value) => throw null; + public virtual void Write(ushort value) => throw null; + public virtual void Write(uint value) => throw null; + public virtual void Write(ulong value) => throw null; + public void Write7BitEncodedInt(int value) => throw null; + public void Write7BitEncodedInt64(long value) => throw null; + } + public sealed class BufferedStream : System.IO.Stream + { + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public int BufferSize { get => throw null; } + public override bool CanRead { get => throw null; } + public override bool CanSeek { get => throw null; } + public override bool CanWrite { get => throw null; } + public override void CopyTo(System.IO.Stream destination, int bufferSize) => throw null; + public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; + public BufferedStream(System.IO.Stream stream) => throw null; + public BufferedStream(System.IO.Stream stream, int bufferSize) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public override int EndRead(System.IAsyncResult asyncResult) => throw null; + public override void EndWrite(System.IAsyncResult asyncResult) => throw null; + public override void Flush() => throw null; + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span destination) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int ReadByte() => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public System.IO.Stream UnderlyingStream { get => throw null; } + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; + } + public static class Directory + { + public static System.IO.DirectoryInfo CreateDirectory(string path) => throw null; + public static System.IO.DirectoryInfo CreateDirectory(string path, System.IO.UnixFileMode unixCreateMode) => throw null; + public static System.IO.FileSystemInfo CreateSymbolicLink(string path, string pathToTarget) => throw null; + public static System.IO.DirectoryInfo CreateTempSubdirectory(string prefix = default(string)) => throw null; + public static void Delete(string path) => throw null; + public static void Delete(string path, bool recursive) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateDirectories(string path) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateFiles(string path) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; + public static bool Exists(string path) => throw null; + public static System.DateTime GetCreationTime(string path) => throw null; + public static System.DateTime GetCreationTimeUtc(string path) => throw null; + public static string GetCurrentDirectory() => throw null; + public static string[] GetDirectories(string path) => throw null; + public static string[] GetDirectories(string path, string searchPattern) => throw null; + public static string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public static string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; + public static string GetDirectoryRoot(string path) => throw null; + public static string[] GetFiles(string path) => throw null; + public static string[] GetFiles(string path, string searchPattern) => throw null; + public static string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public static string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; + public static string[] GetFileSystemEntries(string path) => throw null; + public static string[] GetFileSystemEntries(string path, string searchPattern) => throw null; + public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; + public static System.DateTime GetLastAccessTime(string path) => throw null; + public static System.DateTime GetLastAccessTimeUtc(string path) => throw null; + public static System.DateTime GetLastWriteTime(string path) => throw null; + public static System.DateTime GetLastWriteTimeUtc(string path) => throw null; + public static string[] GetLogicalDrives() => throw null; + public static System.IO.DirectoryInfo GetParent(string path) => throw null; + public static void Move(string sourceDirName, string destDirName) => throw null; + public static System.IO.FileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) => throw null; + public static void SetCreationTime(string path, System.DateTime creationTime) => throw null; + public static void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) => throw null; + public static void SetCurrentDirectory(string path) => throw null; + public static void SetLastAccessTime(string path, System.DateTime lastAccessTime) => throw null; + public static void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) => throw null; + public static void SetLastWriteTime(string path, System.DateTime lastWriteTime) => throw null; + public static void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) => throw null; + } + public sealed class DirectoryInfo : System.IO.FileSystemInfo + { + public void Create() => throw null; + public System.IO.DirectoryInfo CreateSubdirectory(string path) => throw null; + public DirectoryInfo(string path) => throw null; + public override void Delete() => throw null; + public void Delete(bool recursive) => throw null; + public System.Collections.Generic.IEnumerable EnumerateDirectories() => throw null; + public System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) => throw null; + public System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) => throw null; + public System.Collections.Generic.IEnumerable EnumerateFiles() => throw null; + public System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) => throw null; + public System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) => throw null; + public System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() => throw null; + public System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) => throw null; + public System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) => throw null; + public override bool Exists { get => throw null; } + public System.IO.DirectoryInfo[] GetDirectories() => throw null; + public System.IO.DirectoryInfo[] GetDirectories(string searchPattern) => throw null; + public System.IO.DirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public System.IO.DirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) => throw null; + public System.IO.FileInfo[] GetFiles() => throw null; + public System.IO.FileInfo[] GetFiles(string searchPattern) => throw null; + public System.IO.FileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public System.IO.FileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) => throw null; + public System.IO.FileSystemInfo[] GetFileSystemInfos() => throw null; + public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern) => throw null; + public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; + public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) => throw null; + public void MoveTo(string destDirName) => throw null; + public override string Name { get => throw null; } + public System.IO.DirectoryInfo Parent { get => throw null; } + public System.IO.DirectoryInfo Root { get => throw null; } + public override string ToString() => throw null; + } + public class DirectoryNotFoundException : System.IO.IOException + { + public DirectoryNotFoundException() => throw null; + protected DirectoryNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public DirectoryNotFoundException(string message) => throw null; + public DirectoryNotFoundException(string message, System.Exception innerException) => throw null; + } + public class EndOfStreamException : System.IO.IOException + { + public EndOfStreamException() => throw null; + protected EndOfStreamException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public EndOfStreamException(string message) => throw null; + public EndOfStreamException(string message, System.Exception innerException) => throw null; + } + namespace Enumeration + { + public struct FileSystemEntry + { + public System.IO.FileAttributes Attributes { get => throw null; } + public System.DateTimeOffset CreationTimeUtc { get => throw null; } + public System.ReadOnlySpan Directory { get => throw null; } + public System.ReadOnlySpan FileName { get => throw null; } + public bool IsDirectory { get => throw null; } + public bool IsHidden { get => throw null; } + public System.DateTimeOffset LastAccessTimeUtc { get => throw null; } + public System.DateTimeOffset LastWriteTimeUtc { get => throw null; } + public long Length { get => throw null; } + public System.ReadOnlySpan OriginalRootDirectory { get => throw null; } + public System.ReadOnlySpan RootDirectory { get => throw null; } + public System.IO.FileSystemInfo ToFileSystemInfo() => throw null; + public string ToFullPath() => throw null; + public string ToSpecifiedFullPath() => throw null; + } + public class FileSystemEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public FileSystemEnumerable(string directory, System.IO.Enumeration.FileSystemEnumerable.FindTransform transform, System.IO.EnumerationOptions options = default(System.IO.EnumerationOptions)) => throw null; + public delegate bool FindPredicate(ref System.IO.Enumeration.FileSystemEntry entry); + public delegate TResult FindTransform(ref System.IO.Enumeration.FileSystemEntry entry); + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.IO.Enumeration.FileSystemEnumerable.FindPredicate ShouldIncludePredicate { get => throw null; set { } } + public System.IO.Enumeration.FileSystemEnumerable.FindPredicate ShouldRecursePredicate { get => throw null; set { } } + } + public abstract class FileSystemEnumerator : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + protected virtual bool ContinueOnError(int error) => throw null; + public FileSystemEnumerator(string directory, System.IO.EnumerationOptions options = default(System.IO.EnumerationOptions)) => throw null; + public TResult Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public bool MoveNext() => throw null; + protected virtual void OnDirectoryFinished(System.ReadOnlySpan directory) => throw null; + public void Reset() => throw null; + protected virtual bool ShouldIncludeEntry(ref System.IO.Enumeration.FileSystemEntry entry) => throw null; + protected virtual bool ShouldRecurseIntoEntry(ref System.IO.Enumeration.FileSystemEntry entry) => throw null; + protected abstract TResult TransformEntry(ref System.IO.Enumeration.FileSystemEntry entry); + } + public static class FileSystemName + { + public static bool MatchesSimpleExpression(System.ReadOnlySpan expression, System.ReadOnlySpan name, bool ignoreCase = default(bool)) => throw null; + public static bool MatchesWin32Expression(System.ReadOnlySpan expression, System.ReadOnlySpan name, bool ignoreCase = default(bool)) => throw null; + public static string TranslateWin32Expression(string expression) => throw null; + } + } + public class EnumerationOptions + { + public System.IO.FileAttributes AttributesToSkip { get => throw null; set { } } + public int BufferSize { get => throw null; set { } } + public EnumerationOptions() => throw null; + public bool IgnoreInaccessible { get => throw null; set { } } + public System.IO.MatchCasing MatchCasing { get => throw null; set { } } + public System.IO.MatchType MatchType { get => throw null; set { } } + public int MaxRecursionDepth { get => throw null; set { } } + public bool RecurseSubdirectories { get => throw null; set { } } + public bool ReturnSpecialDirectories { get => throw null; set { } } + } + public static class File + { + public static void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) => throw null; + public static void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) => throw null; + public static System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static void AppendAllText(string path, string contents) => throw null; + public static void AppendAllText(string path, string contents, System.Text.Encoding encoding) => throw null; + public static System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.IO.StreamWriter AppendText(string path) => throw null; + public static void Copy(string sourceFileName, string destFileName) => throw null; + public static void Copy(string sourceFileName, string destFileName, bool overwrite) => throw null; + public static System.IO.FileStream Create(string path) => throw null; + public static System.IO.FileStream Create(string path, int bufferSize) => throw null; + public static System.IO.FileStream Create(string path, int bufferSize, System.IO.FileOptions options) => throw null; + public static System.IO.FileSystemInfo CreateSymbolicLink(string path, string pathToTarget) => throw null; + public static System.IO.StreamWriter CreateText(string path) => throw null; + public static void Decrypt(string path) => throw null; + public static void Delete(string path) => throw null; + public static void Encrypt(string path) => throw null; + public static bool Exists(string path) => throw null; + public static System.IO.FileAttributes GetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; + public static System.IO.FileAttributes GetAttributes(string path) => throw null; + public static System.DateTime GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; + public static System.DateTime GetCreationTime(string path) => throw null; + public static System.DateTime GetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; + public static System.DateTime GetCreationTimeUtc(string path) => throw null; + public static System.DateTime GetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; + public static System.DateTime GetLastAccessTime(string path) => throw null; + public static System.DateTime GetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; + public static System.DateTime GetLastAccessTimeUtc(string path) => throw null; + public static System.DateTime GetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; + public static System.DateTime GetLastWriteTime(string path) => throw null; + public static System.DateTime GetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; + public static System.DateTime GetLastWriteTimeUtc(string path) => throw null; + public static System.IO.UnixFileMode GetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; + public static System.IO.UnixFileMode GetUnixFileMode(string path) => throw null; + public static void Move(string sourceFileName, string destFileName) => throw null; + public static void Move(string sourceFileName, string destFileName, bool overwrite) => throw null; + public static System.IO.FileStream Open(string path, System.IO.FileMode mode) => throw null; + public static System.IO.FileStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) => throw null; + public static System.IO.FileStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) => throw null; + public static System.IO.FileStream Open(string path, System.IO.FileStreamOptions options) => throw null; + public static Microsoft.Win32.SafeHandles.SafeFileHandle OpenHandle(string path, System.IO.FileMode mode = default(System.IO.FileMode), System.IO.FileAccess access = default(System.IO.FileAccess), System.IO.FileShare share = default(System.IO.FileShare), System.IO.FileOptions options = default(System.IO.FileOptions), long preallocationSize = default(long)) => throw null; + public static System.IO.FileStream OpenRead(string path) => throw null; + public static System.IO.StreamReader OpenText(string path) => throw null; + public static System.IO.FileStream OpenWrite(string path) => throw null; + public static byte[] ReadAllBytes(string path) => throw null; + public static System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static string[] ReadAllLines(string path) => throw null; + public static string[] ReadAllLines(string path, System.Text.Encoding encoding) => throw null; + public static System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static string ReadAllText(string path) => throw null; + public static string ReadAllText(string path, System.Text.Encoding encoding) => throw null; + public static System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.IEnumerable ReadLines(string path) => throw null; + public static System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) => throw null; + public static System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) => throw null; + public static void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) => throw null; + public static System.IO.FileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) => throw null; + public static void SetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.FileAttributes fileAttributes) => throw null; + public static void SetAttributes(string path, System.IO.FileAttributes fileAttributes) => throw null; + public static void SetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTime) => throw null; + public static void SetCreationTime(string path, System.DateTime creationTime) => throw null; + public static void SetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTimeUtc) => throw null; + public static void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) => throw null; + public static void SetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTime) => throw null; + public static void SetLastAccessTime(string path, System.DateTime lastAccessTime) => throw null; + public static void SetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTimeUtc) => throw null; + public static void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) => throw null; + public static void SetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTime) => throw null; + public static void SetLastWriteTime(string path, System.DateTime lastWriteTime) => throw null; + public static void SetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTimeUtc) => throw null; + public static void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) => throw null; + public static void SetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.UnixFileMode mode) => throw null; + public static void SetUnixFileMode(string path, System.IO.UnixFileMode mode) => throw null; + public static void WriteAllBytes(string path, byte[] bytes) => throw null; + public static System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) => throw null; + public static void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) => throw null; + public static void WriteAllLines(string path, string[] contents) => throw null; + public static void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) => throw null; + public static System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static void WriteAllText(string path, string contents) => throw null; + public static void WriteAllText(string path, string contents, System.Text.Encoding encoding) => throw null; + public static System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + [System.Flags] + public enum FileAccess + { + Read = 1, + Write = 2, + ReadWrite = 3, + } + [System.Flags] + public enum FileAttributes + { + ReadOnly = 1, + Hidden = 2, + System = 4, + Directory = 16, + Archive = 32, + Device = 64, + Normal = 128, + Temporary = 256, + SparseFile = 512, + ReparsePoint = 1024, + Compressed = 2048, + Offline = 4096, + NotContentIndexed = 8192, + Encrypted = 16384, + IntegrityStream = 32768, + NoScrubData = 131072, + } + public sealed class FileInfo : System.IO.FileSystemInfo + { + public System.IO.StreamWriter AppendText() => throw null; + public System.IO.FileInfo CopyTo(string destFileName) => throw null; + public System.IO.FileInfo CopyTo(string destFileName, bool overwrite) => throw null; + public System.IO.FileStream Create() => throw null; + public System.IO.StreamWriter CreateText() => throw null; + public FileInfo(string fileName) => throw null; + public void Decrypt() => throw null; + public override void Delete() => throw null; + public System.IO.DirectoryInfo Directory { get => throw null; } + public string DirectoryName { get => throw null; } + public void Encrypt() => throw null; + public override bool Exists { get => throw null; } + public bool IsReadOnly { get => throw null; set { } } + public long Length { get => throw null; } + public void MoveTo(string destFileName) => throw null; + public void MoveTo(string destFileName, bool overwrite) => throw null; + public override string Name { get => throw null; } + public System.IO.FileStream Open(System.IO.FileMode mode) => throw null; + public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access) => throw null; + public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) => throw null; + public System.IO.FileStream Open(System.IO.FileStreamOptions options) => throw null; + public System.IO.FileStream OpenRead() => throw null; + public System.IO.StreamReader OpenText() => throw null; + public System.IO.FileStream OpenWrite() => throw null; + public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName) => throw null; + public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) => throw null; + } + public class FileLoadException : System.IO.IOException + { + public FileLoadException() => throw null; + protected FileLoadException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public FileLoadException(string message) => throw null; + public FileLoadException(string message, System.Exception inner) => throw null; + public FileLoadException(string message, string fileName) => throw null; + public FileLoadException(string message, string fileName, System.Exception inner) => throw null; + public string FileName { get => throw null; } + public string FusionLog { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } + public override string ToString() => throw null; + } + public enum FileMode + { + CreateNew = 1, + Create = 2, + Open = 3, + OpenOrCreate = 4, + Truncate = 5, + Append = 6, + } + public class FileNotFoundException : System.IO.IOException + { + public FileNotFoundException() => throw null; + protected FileNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public FileNotFoundException(string message) => throw null; + public FileNotFoundException(string message, System.Exception innerException) => throw null; + public FileNotFoundException(string message, string fileName) => throw null; + public FileNotFoundException(string message, string fileName, System.Exception innerException) => throw null; + public string FileName { get => throw null; } + public string FusionLog { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } + public override string ToString() => throw null; + } + [System.Flags] + public enum FileOptions + { + WriteThrough = -2147483648, + None = 0, + Encrypted = 16384, + DeleteOnClose = 67108864, + SequentialScan = 134217728, + RandomAccess = 268435456, + Asynchronous = 1073741824, + } + [System.Flags] + public enum FileShare + { + None = 0, + Read = 1, + Write = 2, + ReadWrite = 3, + Delete = 4, + Inheritable = 16, + } + public class FileStream : System.IO.Stream + { + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override bool CanRead { get => throw null; } + public override bool CanSeek { get => throw null; } + public override bool CanWrite { get => throw null; } + public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; + public FileStream(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access) => throw null; + public FileStream(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize) => throw null; + public FileStream(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync) => throw null; + public FileStream(nint handle, System.IO.FileAccess access) => throw null; + public FileStream(nint handle, System.IO.FileAccess access, bool ownsHandle) => throw null; + public FileStream(nint handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize) => throw null; + public FileStream(nint handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync) => throw null; + public FileStream(string path, System.IO.FileMode mode) => throw null; + public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access) => throw null; + public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) => throw null; + public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize) => throw null; + public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync) => throw null; + public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options) => throw null; + public FileStream(string path, System.IO.FileStreamOptions options) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public override int EndRead(System.IAsyncResult asyncResult) => throw null; + public override void EndWrite(System.IAsyncResult asyncResult) => throw null; + public override void Flush() => throw null; + public virtual void Flush(bool flushToDisk) => throw null; + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public virtual nint Handle { get => throw null; } + public virtual bool IsAsync { get => throw null; } + public override long Length { get => throw null; } + public virtual void Lock(long position, long length) => throw null; + public virtual string Name { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int ReadByte() => throw null; + public virtual Microsoft.Win32.SafeHandles.SafeFileHandle SafeFileHandle { get => throw null; } + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public virtual void Unlock(long position, long length) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; + } + public sealed class FileStreamOptions + { + public System.IO.FileAccess Access { get => throw null; set { } } + public int BufferSize { get => throw null; set { } } + public FileStreamOptions() => throw null; + public System.IO.FileMode Mode { get => throw null; set { } } + public System.IO.FileOptions Options { get => throw null; set { } } + public long PreallocationSize { get => throw null; set { } } + public System.IO.FileShare Share { get => throw null; set { } } + public System.IO.UnixFileMode? UnixCreateMode { get => throw null; set { } } + } + public abstract class FileSystemInfo : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable + { + public System.IO.FileAttributes Attributes { get => throw null; set { } } + public void CreateAsSymbolicLink(string pathToTarget) => throw null; + public System.DateTime CreationTime { get => throw null; set { } } + public System.DateTime CreationTimeUtc { get => throw null; set { } } + protected FileSystemInfo() => throw null; + protected FileSystemInfo(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public abstract void Delete(); + public abstract bool Exists { get; } + public string Extension { get => throw null; } + public virtual string FullName { get => throw null; } + protected string FullPath; + public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.DateTime LastAccessTime { get => throw null; set { } } + public System.DateTime LastAccessTimeUtc { get => throw null; set { } } + public System.DateTime LastWriteTime { get => throw null; set { } } + public System.DateTime LastWriteTimeUtc { get => throw null; set { } } + public string LinkTarget { get => throw null; } + public abstract string Name { get; } + protected string OriginalPath; + public void Refresh() => throw null; + public System.IO.FileSystemInfo ResolveLinkTarget(bool returnFinalTarget) => throw null; + public override string ToString() => throw null; + public System.IO.UnixFileMode UnixFileMode { get => throw null; set { } } + } + public enum HandleInheritability + { + None = 0, + Inheritable = 1, + } + public sealed class InvalidDataException : System.SystemException + { + public InvalidDataException() => throw null; + public InvalidDataException(string message) => throw null; + public InvalidDataException(string message, System.Exception innerException) => throw null; + } + public class IOException : System.SystemException + { + public IOException() => throw null; + protected IOException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public IOException(string message) => throw null; + public IOException(string message, System.Exception innerException) => throw null; + public IOException(string message, int hresult) => throw null; + } + public enum MatchCasing + { + PlatformDefault = 0, + CaseSensitive = 1, + CaseInsensitive = 2, + } + public enum MatchType + { + Simple = 0, + Win32 = 1, + } + public class MemoryStream : System.IO.Stream + { + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override bool CanRead { get => throw null; } + public override bool CanSeek { get => throw null; } + public override bool CanWrite { get => throw null; } + public virtual int Capacity { get => throw null; set { } } + public override void CopyTo(System.IO.Stream destination, int bufferSize) => throw null; + public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; + public MemoryStream() => throw null; + public MemoryStream(byte[] buffer) => throw null; + public MemoryStream(byte[] buffer, bool writable) => throw null; + public MemoryStream(byte[] buffer, int index, int count) => throw null; + public MemoryStream(byte[] buffer, int index, int count, bool writable) => throw null; + public MemoryStream(byte[] buffer, int index, int count, bool writable, bool publiclyVisible) => throw null; + public MemoryStream(int capacity) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override int EndRead(System.IAsyncResult asyncResult) => throw null; + public override void EndWrite(System.IAsyncResult asyncResult) => throw null; + public override void Flush() => throw null; + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public virtual byte[] GetBuffer() => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int ReadByte() => throw null; + public override long Seek(long offset, System.IO.SeekOrigin loc) => throw null; + public override void SetLength(long value) => throw null; + public virtual byte[] ToArray() => throw null; + public virtual bool TryGetBuffer(out System.ArraySegment buffer) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; + public virtual void WriteTo(System.IO.Stream stream) => throw null; + } + public static class Path + { + public static char AltDirectorySeparatorChar; + public static string ChangeExtension(string path, string extension) => throw null; + public static string Combine(string path1, string path2) => throw null; + public static string Combine(string path1, string path2, string path3) => throw null; + public static string Combine(string path1, string path2, string path3, string path4) => throw null; + public static string Combine(params string[] paths) => throw null; + public static char DirectorySeparatorChar; + public static bool EndsInDirectorySeparator(System.ReadOnlySpan path) => throw null; + public static bool EndsInDirectorySeparator(string path) => throw null; + public static bool Exists(string path) => throw null; + public static System.ReadOnlySpan GetDirectoryName(System.ReadOnlySpan path) => throw null; + public static string GetDirectoryName(string path) => throw null; + public static System.ReadOnlySpan GetExtension(System.ReadOnlySpan path) => throw null; + public static string GetExtension(string path) => throw null; + public static System.ReadOnlySpan GetFileName(System.ReadOnlySpan path) => throw null; + public static string GetFileName(string path) => throw null; + public static System.ReadOnlySpan GetFileNameWithoutExtension(System.ReadOnlySpan path) => throw null; + public static string GetFileNameWithoutExtension(string path) => throw null; + public static string GetFullPath(string path) => throw null; + public static string GetFullPath(string path, string basePath) => throw null; + public static char[] GetInvalidFileNameChars() => throw null; + public static char[] GetInvalidPathChars() => throw null; + public static System.ReadOnlySpan GetPathRoot(System.ReadOnlySpan path) => throw null; + public static string GetPathRoot(string path) => throw null; + public static string GetRandomFileName() => throw null; + public static string GetRelativePath(string relativeTo, string path) => throw null; + public static string GetTempFileName() => throw null; + public static string GetTempPath() => throw null; + public static bool HasExtension(System.ReadOnlySpan path) => throw null; + public static bool HasExtension(string path) => throw null; + public static char[] InvalidPathChars; + public static bool IsPathFullyQualified(System.ReadOnlySpan path) => throw null; + public static bool IsPathFullyQualified(string path) => throw null; + public static bool IsPathRooted(System.ReadOnlySpan path) => throw null; + public static bool IsPathRooted(string path) => throw null; + public static string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2) => throw null; + public static string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3) => throw null; + public static string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.ReadOnlySpan path4) => throw null; + public static string Join(string path1, string path2) => throw null; + public static string Join(string path1, string path2, string path3) => throw null; + public static string Join(string path1, string path2, string path3, string path4) => throw null; + public static string Join(params string[] paths) => throw null; + public static char PathSeparator; + public static System.ReadOnlySpan TrimEndingDirectorySeparator(System.ReadOnlySpan path) => throw null; + public static string TrimEndingDirectorySeparator(string path) => throw null; + public static bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten) => throw null; + public static bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten) => throw null; + public static char VolumeSeparatorChar; + } + public class PathTooLongException : System.IO.IOException + { + public PathTooLongException() => throw null; + protected PathTooLongException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public PathTooLongException(string message) => throw null; + public PathTooLongException(string message, System.Exception innerException) => throw null; + } + public static class RandomAccess + { + public static long GetLength(Microsoft.Win32.SafeHandles.SafeFileHandle handle) => throw null; + public static long Read(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Collections.Generic.IReadOnlyList> buffers, long fileOffset) => throw null; + public static int Read(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Span buffer, long fileOffset) => throw null; + public static System.Threading.Tasks.ValueTask ReadAsync(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Collections.Generic.IReadOnlyList> buffers, long fileOffset, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask ReadAsync(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Memory buffer, long fileOffset, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static void SetLength(Microsoft.Win32.SafeHandles.SafeFileHandle handle, long length) => throw null; + public static void Write(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Collections.Generic.IReadOnlyList> buffers, long fileOffset) => throw null; + public static void Write(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.ReadOnlySpan buffer, long fileOffset) => throw null; + public static System.Threading.Tasks.ValueTask WriteAsync(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Collections.Generic.IReadOnlyList> buffers, long fileOffset, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask WriteAsync(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.ReadOnlyMemory buffer, long fileOffset, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public enum SearchOption + { + TopDirectoryOnly = 0, + AllDirectories = 1, + } + public enum SeekOrigin + { + Begin = 0, + Current = 1, + End = 2, + } + public abstract class Stream : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable + { + public virtual System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public virtual System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public abstract bool CanRead { get; } + public abstract bool CanSeek { get; } + public virtual bool CanTimeout { get => throw null; } + public abstract bool CanWrite { get; } + public virtual void Close() => throw null; + public void CopyTo(System.IO.Stream destination) => throw null; + public virtual void CopyTo(System.IO.Stream destination, int bufferSize) => throw null; + public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination) => throw null; + public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize) => throw null; + public virtual System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, System.Threading.CancellationToken cancellationToken) => throw null; + protected virtual System.Threading.WaitHandle CreateWaitHandle() => throw null; + protected Stream() => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public virtual int EndRead(System.IAsyncResult asyncResult) => throw null; + public virtual void EndWrite(System.IAsyncResult asyncResult) => throw null; + public abstract void Flush(); + public System.Threading.Tasks.Task FlushAsync() => throw null; + public virtual System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public abstract long Length { get; } + public static System.IO.Stream Null; + protected virtual void ObjectInvariant() => throw null; + public abstract long Position { get; set; } + public abstract int Read(byte[] buffer, int offset, int count); + public virtual int Read(System.Span buffer) => throw null; + public System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count) => throw null; + public virtual System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public int ReadAtLeast(System.Span buffer, int minimumBytes, bool throwOnEndOfStream = default(bool)) => throw null; + public System.Threading.Tasks.ValueTask ReadAtLeastAsync(System.Memory buffer, int minimumBytes, bool throwOnEndOfStream = default(bool), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual int ReadByte() => throw null; + public void ReadExactly(byte[] buffer, int offset, int count) => throw null; + public void ReadExactly(System.Span buffer) => throw null; + public System.Threading.Tasks.ValueTask ReadExactlyAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask ReadExactlyAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual int ReadTimeout { get => throw null; set { } } + public abstract long Seek(long offset, System.IO.SeekOrigin origin); + public abstract void SetLength(long value); + public static System.IO.Stream Synchronized(System.IO.Stream stream) => throw null; + protected static void ValidateBufferArguments(byte[] buffer, int offset, int count) => throw null; + protected static void ValidateCopyToArguments(System.IO.Stream destination, int bufferSize) => throw null; + public abstract void Write(byte[] buffer, int offset, int count); + public virtual void Write(System.ReadOnlySpan buffer) => throw null; + public System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count) => throw null; + public virtual System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual void WriteByte(byte value) => throw null; + public virtual int WriteTimeout { get => throw null; set { } } + } + public class StreamReader : System.IO.TextReader + { + public virtual System.IO.Stream BaseStream { get => throw null; } + public override void Close() => throw null; + public StreamReader(System.IO.Stream stream) => throw null; + public StreamReader(System.IO.Stream stream, bool detectEncodingFromByteOrderMarks) => throw null; + public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; + public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks) => throw null; + public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize) => throw null; + public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding = default(System.Text.Encoding), bool detectEncodingFromByteOrderMarks = default(bool), int bufferSize = default(int), bool leaveOpen = default(bool)) => throw null; + public StreamReader(string path) => throw null; + public StreamReader(string path, bool detectEncodingFromByteOrderMarks) => throw null; + public StreamReader(string path, System.IO.FileStreamOptions options) => throw null; + public StreamReader(string path, System.Text.Encoding encoding) => throw null; + public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks) => throw null; + public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize) => throw null; + public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, System.IO.FileStreamOptions options) => throw null; + public virtual System.Text.Encoding CurrentEncoding { get => throw null; } + public void DiscardBufferedData() => throw null; + protected override void Dispose(bool disposing) => throw null; + public bool EndOfStream { get => throw null; } + public static System.IO.StreamReader Null; + public override int Peek() => throw null; + public override int Read() => throw null; + public override int Read(char[] buffer, int index, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int ReadBlock(char[] buffer, int index, int count) => throw null; + public override int ReadBlock(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadBlockAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.ValueTask ReadBlockAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override string ReadLine() => throw null; + public override System.Threading.Tasks.Task ReadLineAsync() => throw null; + public override System.Threading.Tasks.ValueTask ReadLineAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public override string ReadToEnd() => throw null; + public override System.Threading.Tasks.Task ReadToEndAsync() => throw null; + public override System.Threading.Tasks.Task ReadToEndAsync(System.Threading.CancellationToken cancellationToken) => throw null; + } + public class StreamWriter : System.IO.TextWriter + { + public virtual bool AutoFlush { get => throw null; set { } } + public virtual System.IO.Stream BaseStream { get => throw null; } + public override void Close() => throw null; + public StreamWriter(System.IO.Stream stream) => throw null; + public StreamWriter(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; + public StreamWriter(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize) => throw null; + public StreamWriter(System.IO.Stream stream, System.Text.Encoding encoding = default(System.Text.Encoding), int bufferSize = default(int), bool leaveOpen = default(bool)) => throw null; + public StreamWriter(string path) => throw null; + public StreamWriter(string path, bool append) => throw null; + public StreamWriter(string path, bool append, System.Text.Encoding encoding) => throw null; + public StreamWriter(string path, bool append, System.Text.Encoding encoding, int bufferSize) => throw null; + public StreamWriter(string path, System.IO.FileStreamOptions options) => throw null; + public StreamWriter(string path, System.Text.Encoding encoding, System.IO.FileStreamOptions options) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public override System.Text.Encoding Encoding { get => throw null; } + public override void Flush() => throw null; + public override System.Threading.Tasks.Task FlushAsync() => throw null; + public static System.IO.StreamWriter Null; + public override void Write(char value) => throw null; + public override void Write(char[] buffer) => throw null; + public override void Write(char[] buffer, int index, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override void Write(string value) => throw null; + public override void Write(string format, object arg0) => throw null; + public override void Write(string format, object arg0, object arg1) => throw null; + public override void Write(string format, object arg0, object arg1, object arg2) => throw null; + public override void Write(string format, params object[] arg) => throw null; + public override System.Threading.Tasks.Task WriteAsync(char value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteAsync(string value) => throw null; + public override void WriteLine(System.ReadOnlySpan buffer) => throw null; + public override void WriteLine(string value) => throw null; + public override void WriteLine(string format, object arg0) => throw null; + public override void WriteLine(string format, object arg0, object arg1) => throw null; + public override void WriteLine(string format, object arg0, object arg1, object arg2) => throw null; + public override void WriteLine(string format, params object[] arg) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync() => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(char value) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; + } + public class StringReader : System.IO.TextReader + { + public override void Close() => throw null; + public StringReader(string s) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override int Peek() => throw null; + public override int Read() => throw null; + public override int Read(char[] buffer, int index, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int ReadBlock(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadBlockAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.ValueTask ReadBlockAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override string ReadLine() => throw null; + public override System.Threading.Tasks.Task ReadLineAsync() => throw null; + public override System.Threading.Tasks.ValueTask ReadLineAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public override string ReadToEnd() => throw null; + public override System.Threading.Tasks.Task ReadToEndAsync() => throw null; + public override System.Threading.Tasks.Task ReadToEndAsync(System.Threading.CancellationToken cancellationToken) => throw null; + } + public class StringWriter : System.IO.TextWriter + { + public override void Close() => throw null; + public StringWriter() => throw null; + public StringWriter(System.IFormatProvider formatProvider) => throw null; + public StringWriter(System.Text.StringBuilder sb) => throw null; + public StringWriter(System.Text.StringBuilder sb, System.IFormatProvider formatProvider) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override System.Text.Encoding Encoding { get => throw null; } + public override System.Threading.Tasks.Task FlushAsync() => throw null; + public virtual System.Text.StringBuilder GetStringBuilder() => throw null; + public override string ToString() => throw null; + public override void Write(char value) => throw null; + public override void Write(char[] buffer, int index, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override void Write(string value) => throw null; + public override void Write(System.Text.StringBuilder value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(char value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteAsync(string value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteLine(System.ReadOnlySpan buffer) => throw null; + public override void WriteLine(System.Text.StringBuilder value) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(char value) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public abstract class TextReader : System.MarshalByRefObject, System.IDisposable + { + public virtual void Close() => throw null; + protected TextReader() => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public static System.IO.TextReader Null; + public virtual int Peek() => throw null; + public virtual int Read() => throw null; + public virtual int Read(char[] buffer, int index, int count) => throw null; + public virtual int Read(System.Span buffer) => throw null; + public virtual System.Threading.Tasks.Task ReadAsync(char[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual int ReadBlock(char[] buffer, int index, int count) => throw null; + public virtual int ReadBlock(System.Span buffer) => throw null; + public virtual System.Threading.Tasks.Task ReadBlockAsync(char[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.ValueTask ReadBlockAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual string ReadLine() => throw null; + public virtual System.Threading.Tasks.Task ReadLineAsync() => throw null; + public virtual System.Threading.Tasks.ValueTask ReadLineAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public virtual string ReadToEnd() => throw null; + public virtual System.Threading.Tasks.Task ReadToEndAsync() => throw null; + public virtual System.Threading.Tasks.Task ReadToEndAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public static System.IO.TextReader Synchronized(System.IO.TextReader reader) => throw null; + } + public abstract class TextWriter : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable + { + public virtual void Close() => throw null; + protected char[] CoreNewLine; + protected TextWriter() => throw null; + protected TextWriter(System.IFormatProvider formatProvider) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public abstract System.Text.Encoding Encoding { get; } + public virtual void Flush() => throw null; + public virtual System.Threading.Tasks.Task FlushAsync() => throw null; + public virtual System.IFormatProvider FormatProvider { get => throw null; } + public virtual string NewLine { get => throw null; set { } } + public static System.IO.TextWriter Null; + public static System.IO.TextWriter Synchronized(System.IO.TextWriter writer) => throw null; + public virtual void Write(bool value) => throw null; + public virtual void Write(char value) => throw null; + public virtual void Write(char[] buffer) => throw null; + public virtual void Write(char[] buffer, int index, int count) => throw null; + public virtual void Write(decimal value) => throw null; + public virtual void Write(double value) => throw null; + public virtual void Write(int value) => throw null; + public virtual void Write(long value) => throw null; + public virtual void Write(object value) => throw null; + public virtual void Write(System.ReadOnlySpan buffer) => throw null; + public virtual void Write(float value) => throw null; + public virtual void Write(string value) => throw null; + public virtual void Write(string format, object arg0) => throw null; + public virtual void Write(string format, object arg0, object arg1) => throw null; + public virtual void Write(string format, object arg0, object arg1, object arg2) => throw null; + public virtual void Write(string format, params object[] arg) => throw null; + public virtual void Write(System.Text.StringBuilder value) => throw null; + public virtual void Write(uint value) => throw null; + public virtual void Write(ulong value) => throw null; + public virtual System.Threading.Tasks.Task WriteAsync(char value) => throw null; + public System.Threading.Tasks.Task WriteAsync(char[] buffer) => throw null; + public virtual System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteAsync(string value) => throw null; + public virtual System.Threading.Tasks.Task WriteAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual void WriteLine() => throw null; + public virtual void WriteLine(bool value) => throw null; + public virtual void WriteLine(char value) => throw null; + public virtual void WriteLine(char[] buffer) => throw null; + public virtual void WriteLine(char[] buffer, int index, int count) => throw null; + public virtual void WriteLine(decimal value) => throw null; + public virtual void WriteLine(double value) => throw null; + public virtual void WriteLine(int value) => throw null; + public virtual void WriteLine(long value) => throw null; + public virtual void WriteLine(object value) => throw null; + public virtual void WriteLine(System.ReadOnlySpan buffer) => throw null; + public virtual void WriteLine(float value) => throw null; + public virtual void WriteLine(string value) => throw null; + public virtual void WriteLine(string format, object arg0) => throw null; + public virtual void WriteLine(string format, object arg0, object arg1) => throw null; + public virtual void WriteLine(string format, object arg0, object arg1, object arg2) => throw null; + public virtual void WriteLine(string format, params object[] arg) => throw null; + public virtual void WriteLine(System.Text.StringBuilder value) => throw null; + public virtual void WriteLine(uint value) => throw null; + public virtual void WriteLine(ulong value) => throw null; + public virtual System.Threading.Tasks.Task WriteLineAsync() => throw null; + public virtual System.Threading.Tasks.Task WriteLineAsync(char value) => throw null; + public System.Threading.Tasks.Task WriteLineAsync(char[] buffer) => throw null; + public virtual System.Threading.Tasks.Task WriteLineAsync(char[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.Task WriteLineAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; + public virtual System.Threading.Tasks.Task WriteLineAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + [System.Flags] + public enum UnixFileMode + { + None = 0, + OtherExecute = 1, + OtherWrite = 2, + OtherRead = 4, + GroupExecute = 8, + GroupWrite = 16, + GroupRead = 32, + UserExecute = 64, + UserWrite = 128, + UserRead = 256, + StickyBit = 512, + SetGroup = 1024, + SetUser = 2048, + } + public class UnmanagedMemoryStream : System.IO.Stream + { + public override bool CanRead { get => throw null; } + public override bool CanSeek { get => throw null; } + public override bool CanWrite { get => throw null; } + public long Capacity { get => throw null; } + protected UnmanagedMemoryStream() => throw null; + public unsafe UnmanagedMemoryStream(byte* pointer, long length) => throw null; + public unsafe UnmanagedMemoryStream(byte* pointer, long length, long capacity, System.IO.FileAccess access) => throw null; + public UnmanagedMemoryStream(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long length) => throw null; + public UnmanagedMemoryStream(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long length, System.IO.FileAccess access) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override void Flush() => throw null; + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; + protected unsafe void Initialize(byte* pointer, long length, long capacity, System.IO.FileAccess access) => throw null; + protected void Initialize(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long length, System.IO.FileAccess access) => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public unsafe byte* PositionPointer { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int ReadByte() => throw null; + public override long Seek(long offset, System.IO.SeekOrigin loc) => throw null; + public override void SetLength(long value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void Write(System.ReadOnlySpan buffer) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; + } + } + public interface IObservable + { + System.IDisposable Subscribe(System.IObserver observer); + } + public interface IObserver + { + void OnCompleted(); + void OnError(System.Exception error); + void OnNext(T value); + } + public interface IParsable where TSelf : System.IParsable + { + abstract static TSelf Parse(string s, System.IFormatProvider provider); + abstract static bool TryParse(string s, System.IFormatProvider provider, out TSelf result); + } + public interface IProgress + { + void Report(T value); + } + public interface ISpanFormattable : System.IFormattable + { + bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider); + } + public interface ISpanParsable : System.IParsable where TSelf : System.ISpanParsable + { + abstract static TSelf Parse(System.ReadOnlySpan s, System.IFormatProvider provider); + abstract static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out TSelf result); } - public class Lazy { - public bool IsValueCreated { get => throw null; } public Lazy() => throw null; + public Lazy(bool isThreadSafe) => throw null; public Lazy(System.Func valueFactory) => throw null; - public Lazy(System.Func valueFactory, System.Threading.LazyThreadSafetyMode mode) => throw null; public Lazy(System.Func valueFactory, bool isThreadSafe) => throw null; + public Lazy(System.Func valueFactory, System.Threading.LazyThreadSafetyMode mode) => throw null; public Lazy(System.Threading.LazyThreadSafetyMode mode) => throw null; public Lazy(T value) => throw null; - public Lazy(bool isThreadSafe) => throw null; + public bool IsValueCreated { get => throw null; } public override string ToString() => throw null; public T Value { get => throw null; } } - + public class Lazy : System.Lazy + { + public Lazy(System.Func valueFactory, TMetadata metadata) => throw null; + public Lazy(System.Func valueFactory, TMetadata metadata, bool isThreadSafe) => throw null; + public Lazy(System.Func valueFactory, TMetadata metadata, System.Threading.LazyThreadSafetyMode mode) => throw null; + public Lazy(TMetadata metadata) => throw null; + public Lazy(TMetadata metadata, bool isThreadSafe) => throw null; + public Lazy(TMetadata metadata, System.Threading.LazyThreadSafetyMode mode) => throw null; + public TMetadata Metadata { get => throw null; } + } public class LdapStyleUriParser : System.UriParser { public LdapStyleUriParser() => throw null; } - - public enum LoaderOptimization : int + public enum LoaderOptimization { - DisallowBindings = 4, - DomainMask = 3, - MultiDomain = 2, - MultiDomainHost = 3, NotSpecified = 0, SingleDomain = 1, + MultiDomain = 2, + DomainMask = 3, + MultiDomainHost = 3, + DisallowBindings = 4, } - - public class LoaderOptimizationAttribute : System.Attribute + public sealed class LoaderOptimizationAttribute : System.Attribute { + public LoaderOptimizationAttribute(byte value) => throw null; public LoaderOptimizationAttribute(System.LoaderOptimization value) => throw null; - public LoaderOptimizationAttribute(System.Byte value) => throw null; public System.LoaderOptimization Value { get => throw null; } } - - public class MTAThreadAttribute : System.Attribute - { - public MTAThreadAttribute() => throw null; - } - public abstract class MarshalByRefObject { + protected MarshalByRefObject() => throw null; public object GetLifetimeService() => throw null; public virtual object InitializeLifetimeService() => throw null; - protected MarshalByRefObject() => throw null; protected System.MarshalByRefObject MemberwiseClone(bool cloneIdentity) => throw null; } - public static class Math { - public static System.IntPtr Abs(System.IntPtr value) => throw null; - public static System.Decimal Abs(System.Decimal value) => throw null; + public static decimal Abs(decimal value) => throw null; public static double Abs(double value) => throw null; - public static float Abs(float value) => throw null; + public static short Abs(short value) => throw null; public static int Abs(int value) => throw null; - public static System.Int64 Abs(System.Int64 value) => throw null; - public static System.SByte Abs(System.SByte value) => throw null; - public static System.Int16 Abs(System.Int16 value) => throw null; + public static long Abs(long value) => throw null; + public static nint Abs(nint value) => throw null; + public static sbyte Abs(sbyte value) => throw null; + public static float Abs(float value) => throw null; public static double Acos(double d) => throw null; public static double Acosh(double d) => throw null; public static double Asin(double d) => throw null; @@ -3797,45 +6558,45 @@ namespace System public static double Atan(double d) => throw null; public static double Atan2(double y, double x) => throw null; public static double Atanh(double d) => throw null; - public static System.Int64 BigMul(int a, int b) => throw null; - public static System.Int64 BigMul(System.Int64 a, System.Int64 b, out System.Int64 low) => throw null; - public static System.UInt64 BigMul(System.UInt64 a, System.UInt64 b, out System.UInt64 low) => throw null; + public static long BigMul(int a, int b) => throw null; + public static long BigMul(long a, long b, out long low) => throw null; + public static ulong BigMul(ulong a, ulong b, out ulong low) => throw null; public static double BitDecrement(double x) => throw null; public static double BitIncrement(double x) => throw null; public static double Cbrt(double d) => throw null; - public static System.Decimal Ceiling(System.Decimal d) => throw null; + public static decimal Ceiling(decimal d) => throw null; public static double Ceiling(double a) => throw null; - public static System.IntPtr Clamp(System.IntPtr value, System.IntPtr min, System.IntPtr max) => throw null; - public static System.UIntPtr Clamp(System.UIntPtr value, System.UIntPtr min, System.UIntPtr max) => throw null; - public static System.Byte Clamp(System.Byte value, System.Byte min, System.Byte max) => throw null; - public static System.Decimal Clamp(System.Decimal value, System.Decimal min, System.Decimal max) => throw null; + public static byte Clamp(byte value, byte min, byte max) => throw null; + public static decimal Clamp(decimal value, decimal min, decimal max) => throw null; public static double Clamp(double value, double min, double max) => throw null; - public static float Clamp(float value, float min, float max) => throw null; + public static short Clamp(short value, short min, short max) => throw null; public static int Clamp(int value, int min, int max) => throw null; - public static System.Int64 Clamp(System.Int64 value, System.Int64 min, System.Int64 max) => throw null; - public static System.SByte Clamp(System.SByte value, System.SByte min, System.SByte max) => throw null; - public static System.Int16 Clamp(System.Int16 value, System.Int16 min, System.Int16 max) => throw null; - public static System.UInt32 Clamp(System.UInt32 value, System.UInt32 min, System.UInt32 max) => throw null; - public static System.UInt64 Clamp(System.UInt64 value, System.UInt64 min, System.UInt64 max) => throw null; - public static System.UInt16 Clamp(System.UInt16 value, System.UInt16 min, System.UInt16 max) => throw null; + public static long Clamp(long value, long min, long max) => throw null; + public static nint Clamp(nint value, nint min, nint max) => throw null; + public static sbyte Clamp(sbyte value, sbyte min, sbyte max) => throw null; + public static float Clamp(float value, float min, float max) => throw null; + public static ushort Clamp(ushort value, ushort min, ushort max) => throw null; + public static uint Clamp(uint value, uint min, uint max) => throw null; + public static ulong Clamp(ulong value, ulong min, ulong max) => throw null; + public static nuint Clamp(nuint value, nuint min, nuint max) => throw null; public static double CopySign(double x, double y) => throw null; public static double Cos(double d) => throw null; public static double Cosh(double value) => throw null; - public static (System.IntPtr, System.IntPtr) DivRem(System.IntPtr left, System.IntPtr right) => throw null; - public static (System.UIntPtr, System.UIntPtr) DivRem(System.UIntPtr left, System.UIntPtr right) => throw null; - public static (System.Byte, System.Byte) DivRem(System.Byte left, System.Byte right) => throw null; - public static (int, int) DivRem(int left, int right) => throw null; public static int DivRem(int a, int b, out int result) => throw null; - public static (System.Int64, System.Int64) DivRem(System.Int64 left, System.Int64 right) => throw null; - public static System.Int64 DivRem(System.Int64 a, System.Int64 b, out System.Int64 result) => throw null; - public static (System.SByte, System.SByte) DivRem(System.SByte left, System.SByte right) => throw null; - public static (System.Int16, System.Int16) DivRem(System.Int16 left, System.Int16 right) => throw null; - public static (System.UInt32, System.UInt32) DivRem(System.UInt32 left, System.UInt32 right) => throw null; - public static (System.UInt64, System.UInt64) DivRem(System.UInt64 left, System.UInt64 right) => throw null; - public static (System.UInt16, System.UInt16) DivRem(System.UInt16 left, System.UInt16 right) => throw null; - public const double E = default; + public static long DivRem(long a, long b, out long result) => throw null; + public static (byte Quotient, byte Remainder) DivRem(byte left, byte right) => throw null; + public static (short Quotient, short Remainder) DivRem(short left, short right) => throw null; + public static (int Quotient, int Remainder) DivRem(int left, int right) => throw null; + public static (long Quotient, long Remainder) DivRem(long left, long right) => throw null; + public static (nint Quotient, nint Remainder) DivRem(nint left, nint right) => throw null; + public static (sbyte Quotient, sbyte Remainder) DivRem(sbyte left, sbyte right) => throw null; + public static (ushort Quotient, ushort Remainder) DivRem(ushort left, ushort right) => throw null; + public static (uint Quotient, uint Remainder) DivRem(uint left, uint right) => throw null; + public static (ulong Quotient, ulong Remainder) DivRem(ulong left, ulong right) => throw null; + public static (nuint Quotient, nuint Remainder) DivRem(nuint left, nuint right) => throw null; + public static double E; public static double Exp(double d) => throw null; - public static System.Decimal Floor(System.Decimal d) => throw null; + public static decimal Floor(decimal d) => throw null; public static double Floor(double d) => throw null; public static double FusedMultiplyAdd(double x, double y, double z) => throw null; public static double IEEERemainder(double x, double y) => throw null; @@ -3844,66 +6605,65 @@ namespace System public static double Log(double a, double newBase) => throw null; public static double Log10(double d) => throw null; public static double Log2(double x) => throw null; - public static System.IntPtr Max(System.IntPtr val1, System.IntPtr val2) => throw null; - public static System.UIntPtr Max(System.UIntPtr val1, System.UIntPtr val2) => throw null; - public static System.Byte Max(System.Byte val1, System.Byte val2) => throw null; - public static System.Decimal Max(System.Decimal val1, System.Decimal val2) => throw null; + public static byte Max(byte val1, byte val2) => throw null; + public static decimal Max(decimal val1, decimal val2) => throw null; public static double Max(double val1, double val2) => throw null; - public static float Max(float val1, float val2) => throw null; + public static short Max(short val1, short val2) => throw null; public static int Max(int val1, int val2) => throw null; - public static System.Int64 Max(System.Int64 val1, System.Int64 val2) => throw null; - public static System.SByte Max(System.SByte val1, System.SByte val2) => throw null; - public static System.Int16 Max(System.Int16 val1, System.Int16 val2) => throw null; - public static System.UInt32 Max(System.UInt32 val1, System.UInt32 val2) => throw null; - public static System.UInt64 Max(System.UInt64 val1, System.UInt64 val2) => throw null; - public static System.UInt16 Max(System.UInt16 val1, System.UInt16 val2) => throw null; + public static long Max(long val1, long val2) => throw null; + public static nint Max(nint val1, nint val2) => throw null; + public static sbyte Max(sbyte val1, sbyte val2) => throw null; + public static float Max(float val1, float val2) => throw null; + public static ushort Max(ushort val1, ushort val2) => throw null; + public static uint Max(uint val1, uint val2) => throw null; + public static ulong Max(ulong val1, ulong val2) => throw null; + public static nuint Max(nuint val1, nuint val2) => throw null; public static double MaxMagnitude(double x, double y) => throw null; - public static System.IntPtr Min(System.IntPtr val1, System.IntPtr val2) => throw null; - public static System.UIntPtr Min(System.UIntPtr val1, System.UIntPtr val2) => throw null; - public static System.Byte Min(System.Byte val1, System.Byte val2) => throw null; - public static System.Decimal Min(System.Decimal val1, System.Decimal val2) => throw null; + public static byte Min(byte val1, byte val2) => throw null; + public static decimal Min(decimal val1, decimal val2) => throw null; public static double Min(double val1, double val2) => throw null; - public static float Min(float val1, float val2) => throw null; + public static short Min(short val1, short val2) => throw null; public static int Min(int val1, int val2) => throw null; - public static System.Int64 Min(System.Int64 val1, System.Int64 val2) => throw null; - public static System.SByte Min(System.SByte val1, System.SByte val2) => throw null; - public static System.Int16 Min(System.Int16 val1, System.Int16 val2) => throw null; - public static System.UInt32 Min(System.UInt32 val1, System.UInt32 val2) => throw null; - public static System.UInt64 Min(System.UInt64 val1, System.UInt64 val2) => throw null; - public static System.UInt16 Min(System.UInt16 val1, System.UInt16 val2) => throw null; + public static long Min(long val1, long val2) => throw null; + public static nint Min(nint val1, nint val2) => throw null; + public static sbyte Min(sbyte val1, sbyte val2) => throw null; + public static float Min(float val1, float val2) => throw null; + public static ushort Min(ushort val1, ushort val2) => throw null; + public static uint Min(uint val1, uint val2) => throw null; + public static ulong Min(ulong val1, ulong val2) => throw null; + public static nuint Min(nuint val1, nuint val2) => throw null; public static double MinMagnitude(double x, double y) => throw null; - public const double PI = default; + public static double PI; public static double Pow(double x, double y) => throw null; public static double ReciprocalEstimate(double d) => throw null; public static double ReciprocalSqrtEstimate(double d) => throw null; - public static System.Decimal Round(System.Decimal d) => throw null; - public static System.Decimal Round(System.Decimal d, System.MidpointRounding mode) => throw null; - public static System.Decimal Round(System.Decimal d, int decimals) => throw null; - public static System.Decimal Round(System.Decimal d, int decimals, System.MidpointRounding mode) => throw null; + public static decimal Round(decimal d) => throw null; + public static decimal Round(decimal d, int decimals) => throw null; + public static decimal Round(decimal d, int decimals, System.MidpointRounding mode) => throw null; + public static decimal Round(decimal d, System.MidpointRounding mode) => throw null; public static double Round(double a) => throw null; - public static double Round(double value, System.MidpointRounding mode) => throw null; public static double Round(double value, int digits) => throw null; public static double Round(double value, int digits, System.MidpointRounding mode) => throw null; + public static double Round(double value, System.MidpointRounding mode) => throw null; public static double ScaleB(double x, int n) => throw null; - public static int Sign(System.IntPtr value) => throw null; - public static int Sign(System.Decimal value) => throw null; + public static int Sign(decimal value) => throw null; public static int Sign(double value) => throw null; - public static int Sign(float value) => throw null; + public static int Sign(short value) => throw null; public static int Sign(int value) => throw null; - public static int Sign(System.Int64 value) => throw null; - public static int Sign(System.SByte value) => throw null; - public static int Sign(System.Int16 value) => throw null; + public static int Sign(long value) => throw null; + public static int Sign(nint value) => throw null; + public static int Sign(sbyte value) => throw null; + public static int Sign(float value) => throw null; public static double Sin(double a) => throw null; - public static (double, double) SinCos(double x) => throw null; + public static (double Sin, double Cos) SinCos(double x) => throw null; public static double Sinh(double value) => throw null; public static double Sqrt(double d) => throw null; public static double Tan(double a) => throw null; public static double Tanh(double value) => throw null; - public const double Tau = default; - public static System.Decimal Truncate(System.Decimal d) => throw null; + public static double Tau; + public static decimal Truncate(decimal d) => throw null; public static double Truncate(double d) => throw null; } - public static class MathF { public static float Abs(float x) => throw null; @@ -3921,7 +6681,7 @@ namespace System public static float CopySign(float x, float y) => throw null; public static float Cos(float x) => throw null; public static float Cosh(float x) => throw null; - public const float E = default; + public static float E; public static float Exp(float x) => throw null; public static float Floor(float x) => throw null; public static float FusedMultiplyAdd(float x, float y, float z) => throw null; @@ -3935,26 +6695,25 @@ namespace System public static float MaxMagnitude(float x, float y) => throw null; public static float Min(float x, float y) => throw null; public static float MinMagnitude(float x, float y) => throw null; - public const float PI = default; + public static float PI; public static float Pow(float x, float y) => throw null; public static float ReciprocalEstimate(float x) => throw null; public static float ReciprocalSqrtEstimate(float x) => throw null; public static float Round(float x) => throw null; - public static float Round(float x, System.MidpointRounding mode) => throw null; public static float Round(float x, int digits) => throw null; public static float Round(float x, int digits, System.MidpointRounding mode) => throw null; + public static float Round(float x, System.MidpointRounding mode) => throw null; public static float ScaleB(float x, int n) => throw null; public static int Sign(float x) => throw null; public static float Sin(float x) => throw null; - public static (float, float) SinCos(float x) => throw null; + public static (float Sin, float Cos) SinCos(float x) => throw null; public static float Sinh(float x) => throw null; public static float Sqrt(float x) => throw null; public static float Tan(float x) => throw null; public static float Tanh(float x) => throw null; - public const float Tau = default; + public static float Tau; public static float Truncate(float x) => throw null; } - public class MemberAccessException : System.SystemException { public MemberAccessException() => throw null; @@ -3962,19 +6721,20 @@ namespace System public MemberAccessException(string message) => throw null; public MemberAccessException(string message, System.Exception inner) => throw null; } - public struct Memory : System.IEquatable> { public void CopyTo(System.Memory destination) => throw null; + public Memory(T[] array) => throw null; + public Memory(T[] array, int start, int length) => throw null; public static System.Memory Empty { get => throw null; } public bool Equals(System.Memory other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public bool IsEmpty { get => throw null; } public int Length { get => throw null; } - // Stub generator skipped constructor - public Memory(T[] array) => throw null; - public Memory(T[] array, int start, int length) => throw null; + public static implicit operator System.Memory(System.ArraySegment segment) => throw null; + public static implicit operator System.ReadOnlyMemory(System.Memory memory) => throw null; + public static implicit operator System.Memory(T[] array) => throw null; public System.Buffers.MemoryHandle Pin() => throw null; public System.Memory Slice(int start) => throw null; public System.Memory Slice(int start, int length) => throw null; @@ -3982,11 +6742,7 @@ namespace System public T[] ToArray() => throw null; public override string ToString() => throw null; public bool TryCopyTo(System.Memory destination) => throw null; - public static implicit operator System.Memory(System.ArraySegment segment) => throw null; - public static implicit operator System.ReadOnlyMemory(System.Memory memory) => throw null; - public static implicit operator System.Memory(T[] array) => throw null; } - public class MethodAccessException : System.MemberAccessException { public MethodAccessException() => throw null; @@ -3994,54 +6750,47 @@ namespace System public MethodAccessException(string message) => throw null; public MethodAccessException(string message, System.Exception inner) => throw null; } - - public enum MidpointRounding : int + public enum MidpointRounding { - AwayFromZero = 1, ToEven = 0, + AwayFromZero = 1, + ToZero = 2, ToNegativeInfinity = 3, ToPositiveInfinity = 4, - ToZero = 2, } - public class MissingFieldException : System.MissingMemberException, System.Runtime.Serialization.ISerializable { - public override string Message { get => throw null; } public MissingFieldException() => throw null; protected MissingFieldException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public MissingFieldException(string message) => throw null; public MissingFieldException(string message, System.Exception inner) => throw null; public MissingFieldException(string className, string fieldName) => throw null; + public override string Message { get => throw null; } } - public class MissingMemberException : System.MemberAccessException, System.Runtime.Serialization.ISerializable { protected string ClassName; - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected string MemberName; - public override string Message { get => throw null; } public MissingMemberException() => throw null; protected MissingMemberException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public MissingMemberException(string message) => throw null; public MissingMemberException(string message, System.Exception inner) => throw null; public MissingMemberException(string className, string memberName) => throw null; - protected System.Byte[] Signature; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected string MemberName; + public override string Message { get => throw null; } + protected byte[] Signature; } - public class MissingMethodException : System.MissingMemberException { - public override string Message { get => throw null; } public MissingMethodException() => throw null; protected MissingMethodException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public MissingMethodException(string message) => throw null; public MissingMethodException(string message, System.Exception inner) => throw null; public MissingMethodException(string className, string methodName) => throw null; + public override string Message { get => throw null; } } - public struct ModuleHandle : System.IEquatable { - public static bool operator !=(System.ModuleHandle left, System.ModuleHandle right) => throw null; - public static bool operator ==(System.ModuleHandle left, System.ModuleHandle right) => throw null; public static System.ModuleHandle EmptyHandle; public bool Equals(System.ModuleHandle handle) => throw null; public override bool Equals(object obj) => throw null; @@ -4050,7 +6799,8 @@ namespace System public System.RuntimeMethodHandle GetRuntimeMethodHandleFromMetadataToken(int methodToken) => throw null; public System.RuntimeTypeHandle GetRuntimeTypeHandleFromMetadataToken(int typeToken) => throw null; public int MDStreamVersion { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(System.ModuleHandle left, System.ModuleHandle right) => throw null; + public static bool operator !=(System.ModuleHandle left, System.ModuleHandle right) => throw null; public System.RuntimeFieldHandle ResolveFieldHandle(int fieldToken) => throw null; public System.RuntimeFieldHandle ResolveFieldHandle(int fieldToken, System.RuntimeTypeHandle[] typeInstantiationContext, System.RuntimeTypeHandle[] methodInstantiationContext) => throw null; public System.RuntimeMethodHandle ResolveMethodHandle(int methodToken) => throw null; @@ -4058,62 +6808,72 @@ namespace System public System.RuntimeTypeHandle ResolveTypeHandle(int typeToken) => throw null; public System.RuntimeTypeHandle ResolveTypeHandle(int typeToken, System.RuntimeTypeHandle[] typeInstantiationContext, System.RuntimeTypeHandle[] methodInstantiationContext) => throw null; } - + public sealed class MTAThreadAttribute : System.Attribute + { + public MTAThreadAttribute() => throw null; + } public abstract class MulticastDelegate : System.Delegate { - public static bool operator !=(System.MulticastDelegate d1, System.MulticastDelegate d2) => throw null; - public static bool operator ==(System.MulticastDelegate d1, System.MulticastDelegate d2) => throw null; - protected override System.Delegate CombineImpl(System.Delegate follow) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public override System.Delegate[] GetInvocationList() => throw null; + protected override sealed System.Delegate CombineImpl(System.Delegate follow) => throw null; + protected MulticastDelegate(object target, string method) : base(default(object), default(string)) => throw null; + protected MulticastDelegate(System.Type target, string method) : base(default(object), default(string)) => throw null; + public override sealed bool Equals(object obj) => throw null; + public override sealed int GetHashCode() => throw null; + public override sealed System.Delegate[] GetInvocationList() => throw null; protected override System.Reflection.MethodInfo GetMethodImpl() => throw null; public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected MulticastDelegate(System.Type target, string method) : base(default(System.Type), default(string)) => throw null; - protected MulticastDelegate(object target, string method) : base(default(System.Type), default(string)) => throw null; - protected override System.Delegate RemoveImpl(System.Delegate value) => throw null; + public static bool operator ==(System.MulticastDelegate d1, System.MulticastDelegate d2) => throw null; + public static bool operator !=(System.MulticastDelegate d1, System.MulticastDelegate d2) => throw null; + protected override sealed System.Delegate RemoveImpl(System.Delegate value) => throw null; } - - public class MulticastNotSupportedException : System.SystemException + public sealed class MulticastNotSupportedException : System.SystemException { public MulticastNotSupportedException() => throw null; public MulticastNotSupportedException(string message) => throw null; public MulticastNotSupportedException(string message, System.Exception inner) => throw null; } - + namespace Net + { + public static class WebUtility + { + public static string HtmlDecode(string value) => throw null; + public static void HtmlDecode(string value, System.IO.TextWriter output) => throw null; + public static string HtmlEncode(string value) => throw null; + public static void HtmlEncode(string value, System.IO.TextWriter output) => throw null; + public static string UrlDecode(string encodedValue) => throw null; + public static byte[] UrlDecodeToBytes(byte[] encodedValue, int offset, int count) => throw null; + public static string UrlEncode(string value) => throw null; + public static byte[] UrlEncodeToBytes(byte[] value, int offset, int count) => throw null; + } + } public class NetPipeStyleUriParser : System.UriParser { public NetPipeStyleUriParser() => throw null; } - public class NetTcpStyleUriParser : System.UriParser { public NetTcpStyleUriParser() => throw null; } - public class NewsStyleUriParser : System.UriParser { public NewsStyleUriParser() => throw null; } - - public class NonSerializedAttribute : System.Attribute + public sealed class NonSerializedAttribute : System.Attribute { public NonSerializedAttribute() => throw null; } - public class NotFiniteNumberException : System.ArithmeticException { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public NotFiniteNumberException() => throw null; - protected NotFiniteNumberException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public NotFiniteNumberException(double offendingNumber) => throw null; + protected NotFiniteNumberException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public NotFiniteNumberException(string message) => throw null; - public NotFiniteNumberException(string message, System.Exception innerException) => throw null; public NotFiniteNumberException(string message, double offendingNumber) => throw null; public NotFiniteNumberException(string message, double offendingNumber, System.Exception innerException) => throw null; + public NotFiniteNumberException(string message, System.Exception innerException) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public double OffendingNumber { get => throw null; } } - public class NotImplementedException : System.SystemException { public NotImplementedException() => throw null; @@ -4121,7 +6881,6 @@ namespace System public NotImplementedException(string message) => throw null; public NotImplementedException(string message, System.Exception inner) => throw null; } - public class NotSupportedException : System.SystemException { public NotSupportedException() => throw null; @@ -4129,7 +6888,26 @@ namespace System public NotSupportedException(string message) => throw null; public NotSupportedException(string message, System.Exception innerException) => throw null; } - + public static class Nullable + { + public static int Compare(T? n1, T? n2) where T : struct => throw null; + public static bool Equals(T? n1, T? n2) where T : struct => throw null; + public static System.Type GetUnderlyingType(System.Type nullableType) => throw null; + public static T GetValueRefOrDefaultRef(in T? nullable) where T : struct => throw null; + } + public struct Nullable where T : struct + { + public Nullable(T value) => throw null; + public override bool Equals(object other) => throw null; + public override int GetHashCode() => throw null; + public T GetValueOrDefault() => throw null; + public T GetValueOrDefault(T defaultValue) => throw null; + public bool HasValue { get => throw null; } + public static explicit operator T(T? value) => throw null; + public static implicit operator T?(T value) => throw null; + public override string ToString() => throw null; + public T Value { get => throw null; } + } public class NullReferenceException : System.SystemException { public NullReferenceException() => throw null; @@ -4137,70 +6915,364 @@ namespace System public NullReferenceException(string message) => throw null; public NullReferenceException(string message, System.Exception innerException) => throw null; } - - public static class Nullable + namespace Numerics { - public static int Compare(T? n1, T? n2) where T : struct => throw null; - public static bool Equals(T? n1, T? n2) where T : struct => throw null; - public static System.Type GetUnderlyingType(System.Type nullableType) => throw null; - public static T GetValueRefOrDefaultRef(T? nullable) where T : struct => throw null; + public static class BitOperations + { + public static bool IsPow2(int value) => throw null; + public static bool IsPow2(long value) => throw null; + public static bool IsPow2(nint value) => throw null; + public static bool IsPow2(uint value) => throw null; + public static bool IsPow2(ulong value) => throw null; + public static bool IsPow2(nuint value) => throw null; + public static int LeadingZeroCount(uint value) => throw null; + public static int LeadingZeroCount(ulong value) => throw null; + public static int LeadingZeroCount(nuint value) => throw null; + public static int Log2(uint value) => throw null; + public static int Log2(ulong value) => throw null; + public static int Log2(nuint value) => throw null; + public static int PopCount(uint value) => throw null; + public static int PopCount(ulong value) => throw null; + public static int PopCount(nuint value) => throw null; + public static uint RotateLeft(uint value, int offset) => throw null; + public static ulong RotateLeft(ulong value, int offset) => throw null; + public static nuint RotateLeft(nuint value, int offset) => throw null; + public static uint RotateRight(uint value, int offset) => throw null; + public static ulong RotateRight(ulong value, int offset) => throw null; + public static nuint RotateRight(nuint value, int offset) => throw null; + public static uint RoundUpToPowerOf2(uint value) => throw null; + public static ulong RoundUpToPowerOf2(ulong value) => throw null; + public static nuint RoundUpToPowerOf2(nuint value) => throw null; + public static int TrailingZeroCount(int value) => throw null; + public static int TrailingZeroCount(long value) => throw null; + public static int TrailingZeroCount(nint value) => throw null; + public static int TrailingZeroCount(uint value) => throw null; + public static int TrailingZeroCount(ulong value) => throw null; + public static int TrailingZeroCount(nuint value) => throw null; + } + public interface IAdditionOperators where TSelf : System.Numerics.IAdditionOperators + { + abstract static TResult operator +(TSelf left, TOther right); + static virtual TResult operator checked +(TSelf left, TOther right) => throw null; + } + public interface IAdditiveIdentity where TSelf : System.Numerics.IAdditiveIdentity + { + abstract static TResult AdditiveIdentity { get; } + } + public interface IBinaryFloatingPointIeee754 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPoint, System.Numerics.ISignedNumber, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions where TSelf : System.Numerics.IBinaryFloatingPointIeee754 + { + } + public interface IBinaryInteger : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators where TSelf : System.Numerics.IBinaryInteger + { + static virtual (TSelf Quotient, TSelf Remainder) DivRem(TSelf left, TSelf right) => throw null; + int GetByteCount(); + int GetShortestBitLength(); + static virtual TSelf LeadingZeroCount(TSelf value) => throw null; + abstract static TSelf PopCount(TSelf value); + static virtual TSelf ReadBigEndian(byte[] source, bool isUnsigned) => throw null; + static virtual TSelf ReadBigEndian(byte[] source, int startIndex, bool isUnsigned) => throw null; + static virtual TSelf ReadBigEndian(System.ReadOnlySpan source, bool isUnsigned) => throw null; + static virtual TSelf ReadLittleEndian(byte[] source, bool isUnsigned) => throw null; + static virtual TSelf ReadLittleEndian(byte[] source, int startIndex, bool isUnsigned) => throw null; + static virtual TSelf ReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned) => throw null; + static virtual TSelf RotateLeft(TSelf value, int rotateAmount) => throw null; + static virtual TSelf RotateRight(TSelf value, int rotateAmount) => throw null; + abstract static TSelf TrailingZeroCount(TSelf value); + abstract static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out TSelf value); + abstract static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out TSelf value); + bool TryWriteBigEndian(System.Span destination, out int bytesWritten); + bool TryWriteLittleEndian(System.Span destination, out int bytesWritten); + virtual int WriteBigEndian(byte[] destination) => throw null; + virtual int WriteBigEndian(byte[] destination, int startIndex) => throw null; + virtual int WriteBigEndian(System.Span destination) => throw null; + virtual int WriteLittleEndian(byte[] destination) => throw null; + virtual int WriteLittleEndian(byte[] destination, int startIndex) => throw null; + virtual int WriteLittleEndian(System.Span destination) => throw null; + } + public interface IBinaryNumber : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IBinaryNumber + { + static virtual TSelf AllBitsSet { get => throw null; } + abstract static bool IsPow2(TSelf value); + abstract static TSelf Log2(TSelf value); + } + public interface IBitwiseOperators where TSelf : System.Numerics.IBitwiseOperators + { + abstract static TResult operator &(TSelf left, TOther right); + abstract static TResult operator |(TSelf left, TOther right); + abstract static TResult operator ^(TSelf left, TOther right); + abstract static TResult operator ~(TSelf value); + } + public interface IComparisonOperators : System.Numerics.IEqualityOperators where TSelf : System.Numerics.IComparisonOperators + { + abstract static TResult operator >(TSelf left, TOther right); + abstract static TResult operator >=(TSelf left, TOther right); + abstract static TResult operator <(TSelf left, TOther right); + abstract static TResult operator <=(TSelf left, TOther right); + } + public interface IDecrementOperators where TSelf : System.Numerics.IDecrementOperators + { + static virtual TSelf operator checked --(TSelf value) => throw null; + abstract static TSelf operator --(TSelf value); + } + public interface IDivisionOperators where TSelf : System.Numerics.IDivisionOperators + { + static virtual TResult operator checked /(TSelf left, TOther right) => throw null; + abstract static TResult operator /(TSelf left, TOther right); + } + public interface IEqualityOperators where TSelf : System.Numerics.IEqualityOperators + { + abstract static TResult operator ==(TSelf left, TOther right); + abstract static TResult operator !=(TSelf left, TOther right); + } + public interface IExponentialFunctions : System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IExponentialFunctions + { + abstract static TSelf Exp(TSelf x); + abstract static TSelf Exp10(TSelf x); + static virtual TSelf Exp10M1(TSelf x) => throw null; + abstract static TSelf Exp2(TSelf x); + static virtual TSelf Exp2M1(TSelf x) => throw null; + static virtual TSelf ExpM1(TSelf x) => throw null; + } + public interface IFloatingPoint : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IModulusOperators, System.Numerics.INumber, System.Numerics.ISignedNumber where TSelf : System.Numerics.IFloatingPoint + { + static virtual TSelf Ceiling(TSelf x) => throw null; + static virtual TSelf Floor(TSelf x) => throw null; + int GetExponentByteCount(); + int GetExponentShortestBitLength(); + int GetSignificandBitLength(); + int GetSignificandByteCount(); + static virtual TSelf Round(TSelf x) => throw null; + static virtual TSelf Round(TSelf x, int digits) => throw null; + abstract static TSelf Round(TSelf x, int digits, System.MidpointRounding mode); + static virtual TSelf Round(TSelf x, System.MidpointRounding mode) => throw null; + static virtual TSelf Truncate(TSelf x) => throw null; + bool TryWriteExponentBigEndian(System.Span destination, out int bytesWritten); + bool TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten); + bool TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten); + bool TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten); + virtual int WriteExponentBigEndian(byte[] destination) => throw null; + virtual int WriteExponentBigEndian(byte[] destination, int startIndex) => throw null; + virtual int WriteExponentBigEndian(System.Span destination) => throw null; + virtual int WriteExponentLittleEndian(byte[] destination) => throw null; + virtual int WriteExponentLittleEndian(byte[] destination, int startIndex) => throw null; + virtual int WriteExponentLittleEndian(System.Span destination) => throw null; + virtual int WriteSignificandBigEndian(byte[] destination) => throw null; + virtual int WriteSignificandBigEndian(byte[] destination, int startIndex) => throw null; + virtual int WriteSignificandBigEndian(System.Span destination) => throw null; + virtual int WriteSignificandLittleEndian(byte[] destination) => throw null; + virtual int WriteSignificandLittleEndian(byte[] destination, int startIndex) => throw null; + virtual int WriteSignificandLittleEndian(System.Span destination) => throw null; + } + public interface IFloatingPointConstants : System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IFloatingPointConstants + { + abstract static TSelf E { get; } + abstract static TSelf Pi { get; } + abstract static TSelf Tau { get; } + } + public interface IFloatingPointIeee754 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IFloatingPoint, System.Numerics.IModulusOperators, System.Numerics.INumber, System.Numerics.ISignedNumber, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions where TSelf : System.Numerics.IFloatingPointIeee754 + { + abstract static TSelf Atan2(TSelf y, TSelf x); + abstract static TSelf Atan2Pi(TSelf y, TSelf x); + abstract static TSelf BitDecrement(TSelf x); + abstract static TSelf BitIncrement(TSelf x); + abstract static TSelf Epsilon { get; } + abstract static TSelf FusedMultiplyAdd(TSelf left, TSelf right, TSelf addend); + abstract static TSelf Ieee754Remainder(TSelf left, TSelf right); + abstract static int ILogB(TSelf x); + abstract static TSelf NaN { get; } + abstract static TSelf NegativeInfinity { get; } + abstract static TSelf NegativeZero { get; } + abstract static TSelf PositiveInfinity { get; } + static virtual TSelf ReciprocalEstimate(TSelf x) => throw null; + static virtual TSelf ReciprocalSqrtEstimate(TSelf x) => throw null; + abstract static TSelf ScaleB(TSelf x, int n); + } + public interface IHyperbolicFunctions : System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IHyperbolicFunctions + { + abstract static TSelf Acosh(TSelf x); + abstract static TSelf Asinh(TSelf x); + abstract static TSelf Atanh(TSelf x); + abstract static TSelf Cosh(TSelf x); + abstract static TSelf Sinh(TSelf x); + abstract static TSelf Tanh(TSelf x); + } + public interface IIncrementOperators where TSelf : System.Numerics.IIncrementOperators + { + static virtual TSelf operator checked ++(TSelf value) => throw null; + abstract static TSelf operator ++(TSelf value); + } + public interface ILogarithmicFunctions : System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ILogarithmicFunctions + { + abstract static TSelf Log(TSelf x); + abstract static TSelf Log(TSelf x, TSelf newBase); + abstract static TSelf Log10(TSelf x); + static virtual TSelf Log10P1(TSelf x) => throw null; + abstract static TSelf Log2(TSelf x); + static virtual TSelf Log2P1(TSelf x) => throw null; + static virtual TSelf LogP1(TSelf x) => throw null; + } + public interface IMinMaxValue where TSelf : System.Numerics.IMinMaxValue + { + abstract static TSelf MaxValue { get; } + abstract static TSelf MinValue { get; } + } + public interface IModulusOperators where TSelf : System.Numerics.IModulusOperators + { + abstract static TResult operator %(TSelf left, TOther right); + } + public interface IMultiplicativeIdentity where TSelf : System.Numerics.IMultiplicativeIdentity + { + abstract static TResult MultiplicativeIdentity { get; } + } + public interface IMultiplyOperators where TSelf : System.Numerics.IMultiplyOperators + { + static virtual TResult operator checked *(TSelf left, TOther right) => throw null; + abstract static TResult operator *(TSelf left, TOther right); + } + public interface INumber : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.INumber + { + static virtual TSelf Clamp(TSelf value, TSelf min, TSelf max) => throw null; + static virtual TSelf CopySign(TSelf value, TSelf sign) => throw null; + static virtual TSelf Max(TSelf x, TSelf y) => throw null; + static virtual TSelf MaxNumber(TSelf x, TSelf y) => throw null; + static virtual TSelf Min(TSelf x, TSelf y) => throw null; + static virtual TSelf MinNumber(TSelf x, TSelf y) => throw null; + static virtual int Sign(TSelf value) => throw null; + } + public interface INumberBase : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.INumberBase + { + abstract static TSelf Abs(TSelf value); + static virtual TSelf CreateChecked(TOther value) where TOther : System.Numerics.INumberBase => throw null; + static virtual TSelf CreateSaturating(TOther value) where TOther : System.Numerics.INumberBase => throw null; + static virtual TSelf CreateTruncating(TOther value) where TOther : System.Numerics.INumberBase => throw null; + abstract static bool IsCanonical(TSelf value); + abstract static bool IsComplexNumber(TSelf value); + abstract static bool IsEvenInteger(TSelf value); + abstract static bool IsFinite(TSelf value); + abstract static bool IsImaginaryNumber(TSelf value); + abstract static bool IsInfinity(TSelf value); + abstract static bool IsInteger(TSelf value); + abstract static bool IsNaN(TSelf value); + abstract static bool IsNegative(TSelf value); + abstract static bool IsNegativeInfinity(TSelf value); + abstract static bool IsNormal(TSelf value); + abstract static bool IsOddInteger(TSelf value); + abstract static bool IsPositive(TSelf value); + abstract static bool IsPositiveInfinity(TSelf value); + abstract static bool IsRealNumber(TSelf value); + abstract static bool IsSubnormal(TSelf value); + abstract static bool IsZero(TSelf value); + abstract static TSelf MaxMagnitude(TSelf x, TSelf y); + abstract static TSelf MaxMagnitudeNumber(TSelf x, TSelf y); + abstract static TSelf MinMagnitude(TSelf x, TSelf y); + abstract static TSelf MinMagnitudeNumber(TSelf x, TSelf y); + abstract static TSelf One { get; } + abstract static TSelf Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider); + abstract static TSelf Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider); + abstract static int Radix { get; } + abstract static bool TryConvertFromChecked(TOther value, out TSelf result) where TOther : System.Numerics.INumberBase; + abstract static bool TryConvertFromSaturating(TOther value, out TSelf result) where TOther : System.Numerics.INumberBase; + abstract static bool TryConvertFromTruncating(TOther value, out TSelf result) where TOther : System.Numerics.INumberBase; + abstract static bool TryConvertToChecked(TSelf value, out TOther result) where TOther : System.Numerics.INumberBase; + abstract static bool TryConvertToSaturating(TSelf value, out TOther result) where TOther : System.Numerics.INumberBase; + abstract static bool TryConvertToTruncating(TSelf value, out TOther result) where TOther : System.Numerics.INumberBase; + abstract static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out TSelf result); + abstract static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out TSelf result); + abstract static TSelf Zero { get; } + } + public interface IPowerFunctions : System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IPowerFunctions + { + abstract static TSelf Pow(TSelf x, TSelf y); + } + public interface IRootFunctions : System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IRootFunctions + { + abstract static TSelf Cbrt(TSelf x); + abstract static TSelf Hypot(TSelf x, TSelf y); + abstract static TSelf RootN(TSelf x, int n); + abstract static TSelf Sqrt(TSelf x); + } + public interface IShiftOperators where TSelf : System.Numerics.IShiftOperators + { + abstract static TResult operator <<(TSelf value, TOther shiftAmount); + abstract static TResult operator >>(TSelf value, TOther shiftAmount); + abstract static TResult operator >>>(TSelf value, TOther shiftAmount); + } + public interface ISignedNumber : System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ISignedNumber + { + abstract static TSelf NegativeOne { get; } + } + public interface ISubtractionOperators where TSelf : System.Numerics.ISubtractionOperators + { + static virtual TResult operator checked -(TSelf left, TOther right) => throw null; + abstract static TResult operator -(TSelf left, TOther right); + } + public interface ITrigonometricFunctions : System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ITrigonometricFunctions + { + abstract static TSelf Acos(TSelf x); + abstract static TSelf AcosPi(TSelf x); + abstract static TSelf Asin(TSelf x); + abstract static TSelf AsinPi(TSelf x); + abstract static TSelf Atan(TSelf x); + abstract static TSelf AtanPi(TSelf x); + abstract static TSelf Cos(TSelf x); + abstract static TSelf CosPi(TSelf x); + abstract static TSelf Sin(TSelf x); + abstract static (TSelf Sin, TSelf Cos) SinCos(TSelf x); + abstract static (TSelf SinPi, TSelf CosPi) SinCosPi(TSelf x); + abstract static TSelf SinPi(TSelf x); + abstract static TSelf Tan(TSelf x); + abstract static TSelf TanPi(TSelf x); + } + public interface IUnaryNegationOperators where TSelf : System.Numerics.IUnaryNegationOperators + { + static virtual TResult operator checked -(TSelf value) => throw null; + abstract static TResult operator -(TSelf value); + } + public interface IUnaryPlusOperators where TSelf : System.Numerics.IUnaryPlusOperators + { + abstract static TResult operator +(TSelf value); + } + public interface IUnsignedNumber : System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IUnsignedNumber + { + } } - - public struct Nullable where T : struct - { - public override bool Equals(object other) => throw null; - public override int GetHashCode() => throw null; - public T GetValueOrDefault() => throw null; - public T GetValueOrDefault(T defaultValue) => throw null; - public bool HasValue { get => throw null; } - // Stub generator skipped constructor - public Nullable(T value) => throw null; - public override string ToString() => throw null; - public T Value { get => throw null; } - public static explicit operator T(System.Nullable value) => throw null; - public static implicit operator System.Nullable(T value) => throw null; - } - public class Object { + public Object() => throw null; public virtual bool Equals(object obj) => throw null; public static bool Equals(object objA, object objB) => throw null; public virtual int GetHashCode() => throw null; public System.Type GetType() => throw null; protected object MemberwiseClone() => throw null; - public Object() => throw null; public static bool ReferenceEquals(object objA, object objB) => throw null; public virtual string ToString() => throw null; - // ERR: Stub generator didn't handle member: ~Object } - public class ObjectDisposedException : System.InvalidOperationException { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } protected ObjectDisposedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public ObjectDisposedException(string objectName) => throw null; public ObjectDisposedException(string message, System.Exception innerException) => throw null; public ObjectDisposedException(string objectName, string message) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } public string ObjectName { get => throw null; } - public static void ThrowIf(bool condition, System.Type type) => throw null; public static void ThrowIf(bool condition, object instance) => throw null; + public static void ThrowIf(bool condition, System.Type type) => throw null; } - - public class ObsoleteAttribute : System.Attribute + public sealed class ObsoleteAttribute : System.Attribute { - public string DiagnosticId { get => throw null; set => throw null; } - public bool IsError { get => throw null; } - public string Message { get => throw null; } public ObsoleteAttribute() => throw null; public ObsoleteAttribute(string message) => throw null; public ObsoleteAttribute(string message, bool error) => throw null; - public string UrlFormat { get => throw null; set => throw null; } + public string DiagnosticId { get => throw null; set { } } + public bool IsError { get => throw null; } + public string Message { get => throw null; } + public string UrlFormat { get => throw null; set { } } } - - public class OperatingSystem : System.ICloneable, System.Runtime.Serialization.ISerializable + public sealed class OperatingSystem : System.ICloneable, System.Runtime.Serialization.ISerializable { public object Clone() => throw null; + public OperatingSystem(System.PlatformID platform, System.Version version) => throw null; public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public static bool IsAndroid() => throw null; public static bool IsAndroidVersionAtLeast(int major, int minor = default(int), int build = default(int), int revision = default(int)) => throw null; @@ -4222,26 +7294,23 @@ namespace System public static bool IsWatchOSVersionAtLeast(int major, int minor = default(int), int build = default(int)) => throw null; public static bool IsWindows() => throw null; public static bool IsWindowsVersionAtLeast(int major, int minor = default(int), int build = default(int), int revision = default(int)) => throw null; - public OperatingSystem(System.PlatformID platform, System.Version version) => throw null; public System.PlatformID Platform { get => throw null; } public string ServicePack { get => throw null; } public override string ToString() => throw null; public System.Version Version { get => throw null; } public string VersionString { get => throw null; } } - public class OperationCanceledException : System.SystemException { public System.Threading.CancellationToken CancellationToken { get => throw null; } public OperationCanceledException() => throw null; - public OperationCanceledException(System.Threading.CancellationToken token) => throw null; protected OperationCanceledException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public OperationCanceledException(string message) => throw null; - public OperationCanceledException(string message, System.Threading.CancellationToken token) => throw null; public OperationCanceledException(string message, System.Exception innerException) => throw null; public OperationCanceledException(string message, System.Exception innerException, System.Threading.CancellationToken token) => throw null; + public OperationCanceledException(string message, System.Threading.CancellationToken token) => throw null; + public OperationCanceledException(System.Threading.CancellationToken token) => throw null; } - public class OutOfMemoryException : System.SystemException { public OutOfMemoryException() => throw null; @@ -4249,7 +7318,6 @@ namespace System public OutOfMemoryException(string message) => throw null; public OutOfMemoryException(string message, System.Exception innerException) => throw null; } - public class OverflowException : System.ArithmeticException { public OverflowException() => throw null; @@ -4257,24 +7325,21 @@ namespace System public OverflowException(string message) => throw null; public OverflowException(string message, System.Exception innerException) => throw null; } - - public class ParamArrayAttribute : System.Attribute + public sealed class ParamArrayAttribute : System.Attribute { public ParamArrayAttribute() => throw null; } - - public enum PlatformID : int + public enum PlatformID { - MacOSX = 6, - Other = 7, - Unix = 4, - Win32NT = 2, Win32S = 0, Win32Windows = 1, + Win32NT = 2, WinCE = 3, + Unix = 4, Xbox = 5, + MacOSX = 6, + Other = 7, } - public class PlatformNotSupportedException : System.NotSupportedException { public PlatformNotSupportedException() => throw null; @@ -4282,52 +7347,46 @@ namespace System public PlatformNotSupportedException(string message) => throw null; public PlatformNotSupportedException(string message, System.Exception inner) => throw null; } - public delegate bool Predicate(T obj); - public class Progress : System.IProgress { - protected virtual void OnReport(T value) => throw null; public Progress() => throw null; public Progress(System.Action handler) => throw null; - public event System.EventHandler ProgressChanged; + protected virtual void OnReport(T value) => throw null; + public event System.EventHandler ProgressChanged { add { } remove { } } void System.IProgress.Report(T value) => throw null; } - public class Random { + public Random() => throw null; + public Random(int Seed) => throw null; public virtual int Next() => throw null; public virtual int Next(int maxValue) => throw null; public virtual int Next(int minValue, int maxValue) => throw null; - public virtual void NextBytes(System.Byte[] buffer) => throw null; - public virtual void NextBytes(System.Span buffer) => throw null; + public virtual void NextBytes(byte[] buffer) => throw null; + public virtual void NextBytes(System.Span buffer) => throw null; public virtual double NextDouble() => throw null; - public virtual System.Int64 NextInt64() => throw null; - public virtual System.Int64 NextInt64(System.Int64 maxValue) => throw null; - public virtual System.Int64 NextInt64(System.Int64 minValue, System.Int64 maxValue) => throw null; + public virtual long NextInt64() => throw null; + public virtual long NextInt64(long maxValue) => throw null; + public virtual long NextInt64(long minValue, long maxValue) => throw null; public virtual float NextSingle() => throw null; - public Random() => throw null; - public Random(int Seed) => throw null; protected virtual double Sample() => throw null; public static System.Random Shared { get => throw null; } } - public struct Range : System.IEquatable { public static System.Range All { get => throw null; } + public Range(System.Index start, System.Index end) => throw null; public System.Index End { get => throw null; } public static System.Range EndAt(System.Index end) => throw null; - public bool Equals(System.Range other) => throw null; public override bool Equals(object value) => throw null; + public bool Equals(System.Range other) => throw null; public override int GetHashCode() => throw null; - public (int, int) GetOffsetAndLength(int length) => throw null; - // Stub generator skipped constructor - public Range(System.Index start, System.Index end) => throw null; + public (int Offset, int Length) GetOffsetAndLength(int length) => throw null; public System.Index Start { get => throw null; } public static System.Range StartAt(System.Index start) => throw null; public override string ToString() => throw null; } - public class RankException : System.SystemException { public RankException() => throw null; @@ -4335,561 +7394,3351 @@ namespace System public RankException(string message) => throw null; public RankException(string message, System.Exception innerException) => throw null; } - public struct ReadOnlyMemory : System.IEquatable> { public void CopyTo(System.Memory destination) => throw null; + public ReadOnlyMemory(T[] array) => throw null; + public ReadOnlyMemory(T[] array, int start, int length) => throw null; public static System.ReadOnlyMemory Empty { get => throw null; } - public bool Equals(System.ReadOnlyMemory other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.ReadOnlyMemory other) => throw null; public override int GetHashCode() => throw null; public bool IsEmpty { get => throw null; } public int Length { get => throw null; } + public static implicit operator System.ReadOnlyMemory(System.ArraySegment segment) => throw null; + public static implicit operator System.ReadOnlyMemory(T[] array) => throw null; public System.Buffers.MemoryHandle Pin() => throw null; - // Stub generator skipped constructor - public ReadOnlyMemory(T[] array) => throw null; - public ReadOnlyMemory(T[] array, int start, int length) => throw null; public System.ReadOnlyMemory Slice(int start) => throw null; public System.ReadOnlyMemory Slice(int start, int length) => throw null; public System.ReadOnlySpan Span { get => throw null; } public T[] ToArray() => throw null; public override string ToString() => throw null; public bool TryCopyTo(System.Memory destination) => throw null; - public static implicit operator System.ReadOnlyMemory(System.ArraySegment segment) => throw null; - public static implicit operator System.ReadOnlyMemory(T[] array) => throw null; } - public struct ReadOnlySpan { + public void CopyTo(System.Span destination) => throw null; + public unsafe ReadOnlySpan(void* pointer, int length) => throw null; + public ReadOnlySpan(T[] array) => throw null; + public ReadOnlySpan(T[] array, int start, int length) => throw null; + public ReadOnlySpan(in T reference) => throw null; + public static System.ReadOnlySpan Empty { get => throw null; } public struct Enumerator { public T Current { get => throw null; } - // Stub generator skipped constructor public bool MoveNext() => throw null; } - - - public static bool operator !=(System.ReadOnlySpan left, System.ReadOnlySpan right) => throw null; - public static bool operator ==(System.ReadOnlySpan left, System.ReadOnlySpan right) => throw null; - public void CopyTo(System.Span destination) => throw null; - public static System.ReadOnlySpan Empty { get => throw null; } public override bool Equals(object obj) => throw null; public System.ReadOnlySpan.Enumerator GetEnumerator() => throw null; public override int GetHashCode() => throw null; public T GetPinnableReference() => throw null; public bool IsEmpty { get => throw null; } - public T this[int index] { get => throw null; } public int Length { get => throw null; } - // Stub generator skipped constructor - public ReadOnlySpan(T reference) => throw null; - public ReadOnlySpan(T[] array) => throw null; - public ReadOnlySpan(T[] array, int start, int length) => throw null; - unsafe public ReadOnlySpan(void* pointer, int length) => throw null; + public static bool operator ==(System.ReadOnlySpan left, System.ReadOnlySpan right) => throw null; + public static implicit operator System.ReadOnlySpan(System.ArraySegment segment) => throw null; + public static implicit operator System.ReadOnlySpan(T[] array) => throw null; + public static bool operator !=(System.ReadOnlySpan left, System.ReadOnlySpan right) => throw null; public System.ReadOnlySpan Slice(int start) => throw null; public System.ReadOnlySpan Slice(int start, int length) => throw null; + public T this[int index] { get => throw null; } public T[] ToArray() => throw null; public override string ToString() => throw null; public bool TryCopyTo(System.Span destination) => throw null; - public static implicit operator System.ReadOnlySpan(System.ArraySegment segment) => throw null; - public static implicit operator System.ReadOnlySpan(T[] array) => throw null; } - + namespace Reflection + { + public sealed class AmbiguousMatchException : System.SystemException + { + public AmbiguousMatchException() => throw null; + public AmbiguousMatchException(string message) => throw null; + public AmbiguousMatchException(string message, System.Exception inner) => throw null; + } + public abstract class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.ISerializable + { + public virtual string CodeBase { get => throw null; } + public object CreateInstance(string typeName) => throw null; + public object CreateInstance(string typeName, bool ignoreCase) => throw null; + public virtual object CreateInstance(string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; + public static string CreateQualifiedName(string assemblyName, string typeName) => throw null; + protected Assembly() => throw null; + public virtual System.Collections.Generic.IEnumerable CustomAttributes { get => throw null; } + public virtual System.Collections.Generic.IEnumerable DefinedTypes { get => throw null; } + public virtual System.Reflection.MethodInfo EntryPoint { get => throw null; } + public override bool Equals(object o) => throw null; + public virtual string EscapedCodeBase { get => throw null; } + public virtual System.Collections.Generic.IEnumerable ExportedTypes { get => throw null; } + public virtual string FullName { get => throw null; } + public static System.Reflection.Assembly GetAssembly(System.Type type) => throw null; + public static System.Reflection.Assembly GetCallingAssembly() => throw null; + public virtual object[] GetCustomAttributes(bool inherit) => throw null; + public virtual object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; + public virtual System.Collections.Generic.IList GetCustomAttributesData() => throw null; + public static System.Reflection.Assembly GetEntryAssembly() => throw null; + public static System.Reflection.Assembly GetExecutingAssembly() => throw null; + public virtual System.Type[] GetExportedTypes() => throw null; + public virtual System.IO.FileStream GetFile(string name) => throw null; + public virtual System.IO.FileStream[] GetFiles() => throw null; + public virtual System.IO.FileStream[] GetFiles(bool getResourceModules) => throw null; + public virtual System.Type[] GetForwardedTypes() => throw null; + public override int GetHashCode() => throw null; + public System.Reflection.Module[] GetLoadedModules() => throw null; + public virtual System.Reflection.Module[] GetLoadedModules(bool getResourceModules) => throw null; + public virtual System.Reflection.ManifestResourceInfo GetManifestResourceInfo(string resourceName) => throw null; + public virtual string[] GetManifestResourceNames() => throw null; + public virtual System.IO.Stream GetManifestResourceStream(string name) => throw null; + public virtual System.IO.Stream GetManifestResourceStream(System.Type type, string name) => throw null; + public virtual System.Reflection.Module GetModule(string name) => throw null; + public System.Reflection.Module[] GetModules() => throw null; + public virtual System.Reflection.Module[] GetModules(bool getResourceModules) => throw null; + public virtual System.Reflection.AssemblyName GetName() => throw null; + public virtual System.Reflection.AssemblyName GetName(bool copiedName) => throw null; + public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public virtual System.Reflection.AssemblyName[] GetReferencedAssemblies() => throw null; + public virtual System.Reflection.Assembly GetSatelliteAssembly(System.Globalization.CultureInfo culture) => throw null; + public virtual System.Reflection.Assembly GetSatelliteAssembly(System.Globalization.CultureInfo culture, System.Version version) => throw null; + public virtual System.Type GetType(string name) => throw null; + public virtual System.Type GetType(string name, bool throwOnError) => throw null; + public virtual System.Type GetType(string name, bool throwOnError, bool ignoreCase) => throw null; + public virtual System.Type[] GetTypes() => throw null; + public virtual bool GlobalAssemblyCache { get => throw null; } + public virtual long HostContext { get => throw null; } + public virtual string ImageRuntimeVersion { get => throw null; } + public virtual bool IsCollectible { get => throw null; } + public virtual bool IsDefined(System.Type attributeType, bool inherit) => throw null; + public virtual bool IsDynamic { get => throw null; } + public bool IsFullyTrusted { get => throw null; } + public static System.Reflection.Assembly Load(byte[] rawAssembly) => throw null; + public static System.Reflection.Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore) => throw null; + public static System.Reflection.Assembly Load(System.Reflection.AssemblyName assemblyRef) => throw null; + public static System.Reflection.Assembly Load(string assemblyString) => throw null; + public static System.Reflection.Assembly LoadFile(string path) => throw null; + public static System.Reflection.Assembly LoadFrom(string assemblyFile) => throw null; + public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm) => throw null; + public System.Reflection.Module LoadModule(string moduleName, byte[] rawModule) => throw null; + public virtual System.Reflection.Module LoadModule(string moduleName, byte[] rawModule, byte[] rawSymbolStore) => throw null; + public static System.Reflection.Assembly LoadWithPartialName(string partialName) => throw null; + public virtual string Location { get => throw null; } + public virtual System.Reflection.Module ManifestModule { get => throw null; } + public virtual event System.Reflection.ModuleResolveEventHandler ModuleResolve { add { } remove { } } + public virtual System.Collections.Generic.IEnumerable Modules { get => throw null; } + public static bool operator ==(System.Reflection.Assembly left, System.Reflection.Assembly right) => throw null; + public static bool operator !=(System.Reflection.Assembly left, System.Reflection.Assembly right) => throw null; + public virtual bool ReflectionOnly { get => throw null; } + public static System.Reflection.Assembly ReflectionOnlyLoad(byte[] rawAssembly) => throw null; + public static System.Reflection.Assembly ReflectionOnlyLoad(string assemblyString) => throw null; + public static System.Reflection.Assembly ReflectionOnlyLoadFrom(string assemblyFile) => throw null; + public virtual System.Security.SecurityRuleSet SecurityRuleSet { get => throw null; } + public override string ToString() => throw null; + public static System.Reflection.Assembly UnsafeLoadFrom(string assemblyFile) => throw null; + } + public sealed class AssemblyAlgorithmIdAttribute : System.Attribute + { + public uint AlgorithmId { get => throw null; } + public AssemblyAlgorithmIdAttribute(System.Configuration.Assemblies.AssemblyHashAlgorithm algorithmId) => throw null; + public AssemblyAlgorithmIdAttribute(uint algorithmId) => throw null; + } + public sealed class AssemblyCompanyAttribute : System.Attribute + { + public string Company { get => throw null; } + public AssemblyCompanyAttribute(string company) => throw null; + } + public sealed class AssemblyConfigurationAttribute : System.Attribute + { + public string Configuration { get => throw null; } + public AssemblyConfigurationAttribute(string configuration) => throw null; + } + public enum AssemblyContentType + { + Default = 0, + WindowsRuntime = 1, + } + public sealed class AssemblyCopyrightAttribute : System.Attribute + { + public string Copyright { get => throw null; } + public AssemblyCopyrightAttribute(string copyright) => throw null; + } + public sealed class AssemblyCultureAttribute : System.Attribute + { + public AssemblyCultureAttribute(string culture) => throw null; + public string Culture { get => throw null; } + } + public sealed class AssemblyDefaultAliasAttribute : System.Attribute + { + public AssemblyDefaultAliasAttribute(string defaultAlias) => throw null; + public string DefaultAlias { get => throw null; } + } + public sealed class AssemblyDelaySignAttribute : System.Attribute + { + public AssemblyDelaySignAttribute(bool delaySign) => throw null; + public bool DelaySign { get => throw null; } + } + public sealed class AssemblyDescriptionAttribute : System.Attribute + { + public AssemblyDescriptionAttribute(string description) => throw null; + public string Description { get => throw null; } + } + public sealed class AssemblyFileVersionAttribute : System.Attribute + { + public AssemblyFileVersionAttribute(string version) => throw null; + public string Version { get => throw null; } + } + public sealed class AssemblyFlagsAttribute : System.Attribute + { + public int AssemblyFlags { get => throw null; } + public AssemblyFlagsAttribute(int assemblyFlags) => throw null; + public AssemblyFlagsAttribute(System.Reflection.AssemblyNameFlags assemblyFlags) => throw null; + public AssemblyFlagsAttribute(uint flags) => throw null; + public uint Flags { get => throw null; } + } + public sealed class AssemblyInformationalVersionAttribute : System.Attribute + { + public AssemblyInformationalVersionAttribute(string informationalVersion) => throw null; + public string InformationalVersion { get => throw null; } + } + public sealed class AssemblyKeyFileAttribute : System.Attribute + { + public AssemblyKeyFileAttribute(string keyFile) => throw null; + public string KeyFile { get => throw null; } + } + public sealed class AssemblyKeyNameAttribute : System.Attribute + { + public AssemblyKeyNameAttribute(string keyName) => throw null; + public string KeyName { get => throw null; } + } + public sealed class AssemblyMetadataAttribute : System.Attribute + { + public AssemblyMetadataAttribute(string key, string value) => throw null; + public string Key { get => throw null; } + public string Value { get => throw null; } + } + public sealed class AssemblyName : System.ICloneable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + { + public object Clone() => throw null; + public string CodeBase { get => throw null; set { } } + public System.Reflection.AssemblyContentType ContentType { get => throw null; set { } } + public AssemblyName() => throw null; + public AssemblyName(string assemblyName) => throw null; + public System.Globalization.CultureInfo CultureInfo { get => throw null; set { } } + public string CultureName { get => throw null; set { } } + public string EscapedCodeBase { get => throw null; } + public System.Reflection.AssemblyNameFlags Flags { get => throw null; set { } } + public string FullName { get => throw null; } + public static System.Reflection.AssemblyName GetAssemblyName(string assemblyFile) => throw null; + public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public byte[] GetPublicKey() => throw null; + public byte[] GetPublicKeyToken() => throw null; + public System.Configuration.Assemblies.AssemblyHashAlgorithm HashAlgorithm { get => throw null; set { } } + public System.Reflection.StrongNameKeyPair KeyPair { get => throw null; set { } } + public string Name { get => throw null; set { } } + public void OnDeserialization(object sender) => throw null; + public System.Reflection.ProcessorArchitecture ProcessorArchitecture { get => throw null; set { } } + public static bool ReferenceMatchesDefinition(System.Reflection.AssemblyName reference, System.Reflection.AssemblyName definition) => throw null; + public void SetPublicKey(byte[] publicKey) => throw null; + public void SetPublicKeyToken(byte[] publicKeyToken) => throw null; + public override string ToString() => throw null; + public System.Version Version { get => throw null; set { } } + public System.Configuration.Assemblies.AssemblyVersionCompatibility VersionCompatibility { get => throw null; set { } } + } + [System.Flags] + public enum AssemblyNameFlags + { + None = 0, + PublicKey = 1, + Retargetable = 256, + EnableJITcompileOptimizer = 16384, + EnableJITcompileTracking = 32768, + } + public class AssemblyNameProxy : System.MarshalByRefObject + { + public AssemblyNameProxy() => throw null; + public System.Reflection.AssemblyName GetAssemblyName(string assemblyFile) => throw null; + } + public sealed class AssemblyProductAttribute : System.Attribute + { + public AssemblyProductAttribute(string product) => throw null; + public string Product { get => throw null; } + } + public sealed class AssemblySignatureKeyAttribute : System.Attribute + { + public string Countersignature { get => throw null; } + public AssemblySignatureKeyAttribute(string publicKey, string countersignature) => throw null; + public string PublicKey { get => throw null; } + } + public sealed class AssemblyTitleAttribute : System.Attribute + { + public AssemblyTitleAttribute(string title) => throw null; + public string Title { get => throw null; } + } + public sealed class AssemblyTrademarkAttribute : System.Attribute + { + public AssemblyTrademarkAttribute(string trademark) => throw null; + public string Trademark { get => throw null; } + } + public sealed class AssemblyVersionAttribute : System.Attribute + { + public AssemblyVersionAttribute(string version) => throw null; + public string Version { get => throw null; } + } + public abstract class Binder + { + public abstract System.Reflection.FieldInfo BindToField(System.Reflection.BindingFlags bindingAttr, System.Reflection.FieldInfo[] match, object value, System.Globalization.CultureInfo culture); + public abstract System.Reflection.MethodBase BindToMethod(System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] names, out object state); + public abstract object ChangeType(object value, System.Type type, System.Globalization.CultureInfo culture); + protected Binder() => throw null; + public abstract void ReorderArgumentArray(ref object[] args, object state); + public abstract System.Reflection.MethodBase SelectMethod(System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); + public abstract System.Reflection.PropertyInfo SelectProperty(System.Reflection.BindingFlags bindingAttr, System.Reflection.PropertyInfo[] match, System.Type returnType, System.Type[] indexes, System.Reflection.ParameterModifier[] modifiers); + } + [System.Flags] + public enum BindingFlags + { + Default = 0, + IgnoreCase = 1, + DeclaredOnly = 2, + Instance = 4, + Static = 8, + Public = 16, + NonPublic = 32, + FlattenHierarchy = 64, + InvokeMethod = 256, + CreateInstance = 512, + GetField = 1024, + SetField = 2048, + GetProperty = 4096, + SetProperty = 8192, + PutDispProperty = 16384, + PutRefDispProperty = 32768, + ExactBinding = 65536, + SuppressChangeType = 131072, + OptionalParamBinding = 262144, + IgnoreReturn = 16777216, + DoNotWrapExceptions = 33554432, + } + [System.Flags] + public enum CallingConventions + { + Standard = 1, + VarArgs = 2, + Any = 3, + HasThis = 32, + ExplicitThis = 64, + } + public abstract class ConstructorInfo : System.Reflection.MethodBase + { + public static string ConstructorName; + protected ConstructorInfo() => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public object Invoke(object[] parameters) => throw null; + public abstract object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture); + public override System.Reflection.MemberTypes MemberType { get => throw null; } + public static bool operator ==(System.Reflection.ConstructorInfo left, System.Reflection.ConstructorInfo right) => throw null; + public static bool operator !=(System.Reflection.ConstructorInfo left, System.Reflection.ConstructorInfo right) => throw null; + public static string TypeConstructorName; + } + public class CustomAttributeData + { + public virtual System.Type AttributeType { get => throw null; } + public virtual System.Reflection.ConstructorInfo Constructor { get => throw null; } + public virtual System.Collections.Generic.IList ConstructorArguments { get => throw null; } + protected CustomAttributeData() => throw null; + public override bool Equals(object obj) => throw null; + public static System.Collections.Generic.IList GetCustomAttributes(System.Reflection.Assembly target) => throw null; + public static System.Collections.Generic.IList GetCustomAttributes(System.Reflection.MemberInfo target) => throw null; + public static System.Collections.Generic.IList GetCustomAttributes(System.Reflection.Module target) => throw null; + public static System.Collections.Generic.IList GetCustomAttributes(System.Reflection.ParameterInfo target) => throw null; + public override int GetHashCode() => throw null; + public virtual System.Collections.Generic.IList NamedArguments { get => throw null; } + public override string ToString() => throw null; + } + public static partial class CustomAttributeExtensions + { + public static System.Attribute GetCustomAttribute(this System.Reflection.Assembly element, System.Type attributeType) => throw null; + public static System.Attribute GetCustomAttribute(this System.Reflection.MemberInfo element, System.Type attributeType) => throw null; + public static System.Attribute GetCustomAttribute(this System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) => throw null; + public static System.Attribute GetCustomAttribute(this System.Reflection.Module element, System.Type attributeType) => throw null; + public static System.Attribute GetCustomAttribute(this System.Reflection.ParameterInfo element, System.Type attributeType) => throw null; + public static System.Attribute GetCustomAttribute(this System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) => throw null; + public static T GetCustomAttribute(this System.Reflection.Assembly element) where T : System.Attribute => throw null; + public static T GetCustomAttribute(this System.Reflection.MemberInfo element) where T : System.Attribute => throw null; + public static T GetCustomAttribute(this System.Reflection.MemberInfo element, bool inherit) where T : System.Attribute => throw null; + public static T GetCustomAttribute(this System.Reflection.Module element) where T : System.Attribute => throw null; + public static T GetCustomAttribute(this System.Reflection.ParameterInfo element) where T : System.Attribute => throw null; + public static T GetCustomAttribute(this System.Reflection.ParameterInfo element, bool inherit) where T : System.Attribute => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Assembly element) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Assembly element, System.Type attributeType) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element, bool inherit) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element, System.Type attributeType) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Module element) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Module element, System.Type attributeType) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element, bool inherit) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element, System.Type attributeType) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Assembly element) where T : System.Attribute => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element) where T : System.Attribute => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element, bool inherit) where T : System.Attribute => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Module element) where T : System.Attribute => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element) where T : System.Attribute => throw null; + public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element, bool inherit) where T : System.Attribute => throw null; + public static bool IsDefined(this System.Reflection.Assembly element, System.Type attributeType) => throw null; + public static bool IsDefined(this System.Reflection.MemberInfo element, System.Type attributeType) => throw null; + public static bool IsDefined(this System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) => throw null; + public static bool IsDefined(this System.Reflection.Module element, System.Type attributeType) => throw null; + public static bool IsDefined(this System.Reflection.ParameterInfo element, System.Type attributeType) => throw null; + public static bool IsDefined(this System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) => throw null; + } + public class CustomAttributeFormatException : System.FormatException + { + public CustomAttributeFormatException() => throw null; + protected CustomAttributeFormatException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public CustomAttributeFormatException(string message) => throw null; + public CustomAttributeFormatException(string message, System.Exception inner) => throw null; + } + public struct CustomAttributeNamedArgument : System.IEquatable + { + public CustomAttributeNamedArgument(System.Reflection.MemberInfo memberInfo, object value) => throw null; + public CustomAttributeNamedArgument(System.Reflection.MemberInfo memberInfo, System.Reflection.CustomAttributeTypedArgument typedArgument) => throw null; + public bool Equals(System.Reflection.CustomAttributeNamedArgument other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public bool IsField { get => throw null; } + public System.Reflection.MemberInfo MemberInfo { get => throw null; } + public string MemberName { get => throw null; } + public static bool operator ==(System.Reflection.CustomAttributeNamedArgument left, System.Reflection.CustomAttributeNamedArgument right) => throw null; + public static bool operator !=(System.Reflection.CustomAttributeNamedArgument left, System.Reflection.CustomAttributeNamedArgument right) => throw null; + public override string ToString() => throw null; + public System.Reflection.CustomAttributeTypedArgument TypedValue { get => throw null; } + } + public struct CustomAttributeTypedArgument : System.IEquatable + { + public System.Type ArgumentType { get => throw null; } + public CustomAttributeTypedArgument(object value) => throw null; + public CustomAttributeTypedArgument(System.Type argumentType, object value) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.Reflection.CustomAttributeTypedArgument other) => throw null; + public override int GetHashCode() => throw null; + public static bool operator ==(System.Reflection.CustomAttributeTypedArgument left, System.Reflection.CustomAttributeTypedArgument right) => throw null; + public static bool operator !=(System.Reflection.CustomAttributeTypedArgument left, System.Reflection.CustomAttributeTypedArgument right) => throw null; + public override string ToString() => throw null; + public object Value { get => throw null; } + } + public sealed class DefaultMemberAttribute : System.Attribute + { + public DefaultMemberAttribute(string memberName) => throw null; + public string MemberName { get => throw null; } + } + [System.Flags] + public enum EventAttributes + { + None = 0, + SpecialName = 512, + ReservedMask = 1024, + RTSpecialName = 1024, + } + public abstract class EventInfo : System.Reflection.MemberInfo + { + public virtual void AddEventHandler(object target, System.Delegate handler) => throw null; + public virtual System.Reflection.MethodInfo AddMethod { get => throw null; } + public abstract System.Reflection.EventAttributes Attributes { get; } + protected EventInfo() => throw null; + public override bool Equals(object obj) => throw null; + public virtual System.Type EventHandlerType { get => throw null; } + public System.Reflection.MethodInfo GetAddMethod() => throw null; + public abstract System.Reflection.MethodInfo GetAddMethod(bool nonPublic); + public override int GetHashCode() => throw null; + public System.Reflection.MethodInfo[] GetOtherMethods() => throw null; + public virtual System.Reflection.MethodInfo[] GetOtherMethods(bool nonPublic) => throw null; + public System.Reflection.MethodInfo GetRaiseMethod() => throw null; + public abstract System.Reflection.MethodInfo GetRaiseMethod(bool nonPublic); + public System.Reflection.MethodInfo GetRemoveMethod() => throw null; + public abstract System.Reflection.MethodInfo GetRemoveMethod(bool nonPublic); + public virtual bool IsMulticast { get => throw null; } + public bool IsSpecialName { get => throw null; } + public override System.Reflection.MemberTypes MemberType { get => throw null; } + public static bool operator ==(System.Reflection.EventInfo left, System.Reflection.EventInfo right) => throw null; + public static bool operator !=(System.Reflection.EventInfo left, System.Reflection.EventInfo right) => throw null; + public virtual System.Reflection.MethodInfo RaiseMethod { get => throw null; } + public virtual void RemoveEventHandler(object target, System.Delegate handler) => throw null; + public virtual System.Reflection.MethodInfo RemoveMethod { get => throw null; } + } + public class ExceptionHandlingClause + { + public virtual System.Type CatchType { get => throw null; } + protected ExceptionHandlingClause() => throw null; + public virtual int FilterOffset { get => throw null; } + public virtual System.Reflection.ExceptionHandlingClauseOptions Flags { get => throw null; } + public virtual int HandlerLength { get => throw null; } + public virtual int HandlerOffset { get => throw null; } + public override string ToString() => throw null; + public virtual int TryLength { get => throw null; } + public virtual int TryOffset { get => throw null; } + } + [System.Flags] + public enum ExceptionHandlingClauseOptions + { + Clause = 0, + Filter = 1, + Finally = 2, + Fault = 4, + } + [System.Flags] + public enum FieldAttributes + { + PrivateScope = 0, + Private = 1, + FamANDAssem = 2, + Assembly = 3, + Family = 4, + FamORAssem = 5, + Public = 6, + FieldAccessMask = 7, + Static = 16, + InitOnly = 32, + Literal = 64, + NotSerialized = 128, + HasFieldRVA = 256, + SpecialName = 512, + RTSpecialName = 1024, + HasFieldMarshal = 4096, + PinvokeImpl = 8192, + HasDefault = 32768, + ReservedMask = 38144, + } + public abstract class FieldInfo : System.Reflection.MemberInfo + { + public abstract System.Reflection.FieldAttributes Attributes { get; } + protected FieldInfo() => throw null; + public override bool Equals(object obj) => throw null; + public abstract System.RuntimeFieldHandle FieldHandle { get; } + public abstract System.Type FieldType { get; } + public static System.Reflection.FieldInfo GetFieldFromHandle(System.RuntimeFieldHandle handle) => throw null; + public static System.Reflection.FieldInfo GetFieldFromHandle(System.RuntimeFieldHandle handle, System.RuntimeTypeHandle declaringType) => throw null; + public override int GetHashCode() => throw null; + public virtual System.Type[] GetOptionalCustomModifiers() => throw null; + public virtual object GetRawConstantValue() => throw null; + public virtual System.Type[] GetRequiredCustomModifiers() => throw null; + public abstract object GetValue(object obj); + public virtual object GetValueDirect(System.TypedReference obj) => throw null; + public bool IsAssembly { get => throw null; } + public bool IsFamily { get => throw null; } + public bool IsFamilyAndAssembly { get => throw null; } + public bool IsFamilyOrAssembly { get => throw null; } + public bool IsInitOnly { get => throw null; } + public bool IsLiteral { get => throw null; } + public bool IsNotSerialized { get => throw null; } + public bool IsPinvokeImpl { get => throw null; } + public bool IsPrivate { get => throw null; } + public bool IsPublic { get => throw null; } + public virtual bool IsSecurityCritical { get => throw null; } + public virtual bool IsSecuritySafeCritical { get => throw null; } + public virtual bool IsSecurityTransparent { get => throw null; } + public bool IsSpecialName { get => throw null; } + public bool IsStatic { get => throw null; } + public override System.Reflection.MemberTypes MemberType { get => throw null; } + public static bool operator ==(System.Reflection.FieldInfo left, System.Reflection.FieldInfo right) => throw null; + public static bool operator !=(System.Reflection.FieldInfo left, System.Reflection.FieldInfo right) => throw null; + public void SetValue(object obj, object value) => throw null; + public abstract void SetValue(object obj, object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Globalization.CultureInfo culture); + public virtual void SetValueDirect(System.TypedReference obj, object value) => throw null; + } + [System.Flags] + public enum GenericParameterAttributes + { + None = 0, + Covariant = 1, + Contravariant = 2, + VarianceMask = 3, + ReferenceTypeConstraint = 4, + NotNullableValueTypeConstraint = 8, + DefaultConstructorConstraint = 16, + SpecialConstraintMask = 28, + } + public interface ICustomAttributeProvider + { + object[] GetCustomAttributes(bool inherit); + object[] GetCustomAttributes(System.Type attributeType, bool inherit); + bool IsDefined(System.Type attributeType, bool inherit); + } + public enum ImageFileMachine + { + I386 = 332, + ARM = 452, + IA64 = 512, + AMD64 = 34404, + } + public struct InterfaceMapping + { + public System.Reflection.MethodInfo[] InterfaceMethods; + public System.Type InterfaceType; + public System.Reflection.MethodInfo[] TargetMethods; + public System.Type TargetType; + } + public static partial class IntrospectionExtensions + { + public static System.Reflection.TypeInfo GetTypeInfo(this System.Type type) => throw null; + } + public class InvalidFilterCriteriaException : System.ApplicationException + { + public InvalidFilterCriteriaException() => throw null; + protected InvalidFilterCriteriaException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public InvalidFilterCriteriaException(string message) => throw null; + public InvalidFilterCriteriaException(string message, System.Exception inner) => throw null; + } + public interface IReflect + { + System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr); + System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingAttr); + System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.BindingFlags bindingAttr); + System.Reflection.MemberInfo[] GetMembers(System.Reflection.BindingFlags bindingAttr); + System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr); + System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); + System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingAttr); + System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr); + System.Reflection.PropertyInfo GetProperty(string name, System.Reflection.BindingFlags bindingAttr); + System.Reflection.PropertyInfo GetProperty(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); + object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters); + System.Type UnderlyingSystemType { get; } + } + public interface IReflectableType + { + System.Reflection.TypeInfo GetTypeInfo(); + } + public class LocalVariableInfo + { + protected LocalVariableInfo() => throw null; + public virtual bool IsPinned { get => throw null; } + public virtual int LocalIndex { get => throw null; } + public virtual System.Type LocalType { get => throw null; } + public override string ToString() => throw null; + } + public class ManifestResourceInfo + { + public ManifestResourceInfo(System.Reflection.Assembly containingAssembly, string containingFileName, System.Reflection.ResourceLocation resourceLocation) => throw null; + public virtual string FileName { get => throw null; } + public virtual System.Reflection.Assembly ReferencedAssembly { get => throw null; } + public virtual System.Reflection.ResourceLocation ResourceLocation { get => throw null; } + } + public delegate bool MemberFilter(System.Reflection.MemberInfo m, object filterCriteria); + public abstract class MemberInfo : System.Reflection.ICustomAttributeProvider + { + protected MemberInfo() => throw null; + public virtual System.Collections.Generic.IEnumerable CustomAttributes { get => throw null; } + public abstract System.Type DeclaringType { get; } + public override bool Equals(object obj) => throw null; + public abstract object[] GetCustomAttributes(bool inherit); + public abstract object[] GetCustomAttributes(System.Type attributeType, bool inherit); + public virtual System.Collections.Generic.IList GetCustomAttributesData() => throw null; + public override int GetHashCode() => throw null; + public virtual bool HasSameMetadataDefinitionAs(System.Reflection.MemberInfo other) => throw null; + public virtual bool IsCollectible { get => throw null; } + public abstract bool IsDefined(System.Type attributeType, bool inherit); + public abstract System.Reflection.MemberTypes MemberType { get; } + public virtual int MetadataToken { get => throw null; } + public virtual System.Reflection.Module Module { get => throw null; } + public abstract string Name { get; } + public static bool operator ==(System.Reflection.MemberInfo left, System.Reflection.MemberInfo right) => throw null; + public static bool operator !=(System.Reflection.MemberInfo left, System.Reflection.MemberInfo right) => throw null; + public abstract System.Type ReflectedType { get; } + } + [System.Flags] + public enum MemberTypes + { + Constructor = 1, + Event = 2, + Field = 4, + Method = 8, + Property = 16, + TypeInfo = 32, + Custom = 64, + NestedType = 128, + All = 191, + } + [System.Flags] + public enum MethodAttributes + { + PrivateScope = 0, + ReuseSlot = 0, + Private = 1, + FamANDAssem = 2, + Assembly = 3, + Family = 4, + FamORAssem = 5, + Public = 6, + MemberAccessMask = 7, + UnmanagedExport = 8, + Static = 16, + Final = 32, + Virtual = 64, + HideBySig = 128, + NewSlot = 256, + VtableLayoutMask = 256, + CheckAccessOnOverride = 512, + Abstract = 1024, + SpecialName = 2048, + RTSpecialName = 4096, + PinvokeImpl = 8192, + HasSecurity = 16384, + RequireSecObject = 32768, + ReservedMask = 53248, + } + public abstract class MethodBase : System.Reflection.MemberInfo + { + public abstract System.Reflection.MethodAttributes Attributes { get; } + public virtual System.Reflection.CallingConventions CallingConvention { get => throw null; } + public virtual bool ContainsGenericParameters { get => throw null; } + protected MethodBase() => throw null; + public override bool Equals(object obj) => throw null; + public static System.Reflection.MethodBase GetCurrentMethod() => throw null; + public virtual System.Type[] GetGenericArguments() => throw null; + public override int GetHashCode() => throw null; + public virtual System.Reflection.MethodBody GetMethodBody() => throw null; + public static System.Reflection.MethodBase GetMethodFromHandle(System.RuntimeMethodHandle handle) => throw null; + public static System.Reflection.MethodBase GetMethodFromHandle(System.RuntimeMethodHandle handle, System.RuntimeTypeHandle declaringType) => throw null; + public abstract System.Reflection.MethodImplAttributes GetMethodImplementationFlags(); + public abstract System.Reflection.ParameterInfo[] GetParameters(); + public object Invoke(object obj, object[] parameters) => throw null; + public abstract object Invoke(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture); + public bool IsAbstract { get => throw null; } + public bool IsAssembly { get => throw null; } + public virtual bool IsConstructedGenericMethod { get => throw null; } + public bool IsConstructor { get => throw null; } + public bool IsFamily { get => throw null; } + public bool IsFamilyAndAssembly { get => throw null; } + public bool IsFamilyOrAssembly { get => throw null; } + public bool IsFinal { get => throw null; } + public virtual bool IsGenericMethod { get => throw null; } + public virtual bool IsGenericMethodDefinition { get => throw null; } + public bool IsHideBySig { get => throw null; } + public bool IsPrivate { get => throw null; } + public bool IsPublic { get => throw null; } + public virtual bool IsSecurityCritical { get => throw null; } + public virtual bool IsSecuritySafeCritical { get => throw null; } + public virtual bool IsSecurityTransparent { get => throw null; } + public bool IsSpecialName { get => throw null; } + public bool IsStatic { get => throw null; } + public bool IsVirtual { get => throw null; } + public abstract System.RuntimeMethodHandle MethodHandle { get; } + public virtual System.Reflection.MethodImplAttributes MethodImplementationFlags { get => throw null; } + public static bool operator ==(System.Reflection.MethodBase left, System.Reflection.MethodBase right) => throw null; + public static bool operator !=(System.Reflection.MethodBase left, System.Reflection.MethodBase right) => throw null; + } + public class MethodBody + { + protected MethodBody() => throw null; + public virtual System.Collections.Generic.IList ExceptionHandlingClauses { get => throw null; } + public virtual byte[] GetILAsByteArray() => throw null; + public virtual bool InitLocals { get => throw null; } + public virtual int LocalSignatureMetadataToken { get => throw null; } + public virtual System.Collections.Generic.IList LocalVariables { get => throw null; } + public virtual int MaxStackSize { get => throw null; } + } + public enum MethodImplAttributes + { + IL = 0, + Managed = 0, + Native = 1, + OPTIL = 2, + CodeTypeMask = 3, + Runtime = 3, + ManagedMask = 4, + Unmanaged = 4, + NoInlining = 8, + ForwardRef = 16, + Synchronized = 32, + NoOptimization = 64, + PreserveSig = 128, + AggressiveInlining = 256, + AggressiveOptimization = 512, + InternalCall = 4096, + MaxMethodImplVal = 65535, + } + public abstract class MethodInfo : System.Reflection.MethodBase + { + public virtual System.Delegate CreateDelegate(System.Type delegateType) => throw null; + public virtual System.Delegate CreateDelegate(System.Type delegateType, object target) => throw null; + public T CreateDelegate() where T : System.Delegate => throw null; + public T CreateDelegate(object target) where T : System.Delegate => throw null; + protected MethodInfo() => throw null; + public override bool Equals(object obj) => throw null; + public abstract System.Reflection.MethodInfo GetBaseDefinition(); + public override System.Type[] GetGenericArguments() => throw null; + public virtual System.Reflection.MethodInfo GetGenericMethodDefinition() => throw null; + public override int GetHashCode() => throw null; + public virtual System.Reflection.MethodInfo MakeGenericMethod(params System.Type[] typeArguments) => throw null; + public override System.Reflection.MemberTypes MemberType { get => throw null; } + public static bool operator ==(System.Reflection.MethodInfo left, System.Reflection.MethodInfo right) => throw null; + public static bool operator !=(System.Reflection.MethodInfo left, System.Reflection.MethodInfo right) => throw null; + public virtual System.Reflection.ParameterInfo ReturnParameter { get => throw null; } + public virtual System.Type ReturnType { get => throw null; } + public abstract System.Reflection.ICustomAttributeProvider ReturnTypeCustomAttributes { get; } + } + public sealed class Missing : System.Runtime.Serialization.ISerializable + { + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public static System.Reflection.Missing Value; + } + public abstract class Module : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.ISerializable + { + public virtual System.Reflection.Assembly Assembly { get => throw null; } + protected Module() => throw null; + public virtual System.Collections.Generic.IEnumerable CustomAttributes { get => throw null; } + public override bool Equals(object o) => throw null; + public static System.Reflection.TypeFilter FilterTypeName; + public static System.Reflection.TypeFilter FilterTypeNameIgnoreCase; + public virtual System.Type[] FindTypes(System.Reflection.TypeFilter filter, object filterCriteria) => throw null; + public virtual string FullyQualifiedName { get => throw null; } + public virtual object[] GetCustomAttributes(bool inherit) => throw null; + public virtual object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; + public virtual System.Collections.Generic.IList GetCustomAttributesData() => throw null; + public System.Reflection.FieldInfo GetField(string name) => throw null; + public virtual System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) => throw null; + public System.Reflection.FieldInfo[] GetFields() => throw null; + public virtual System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingFlags) => throw null; + public override int GetHashCode() => throw null; + public System.Reflection.MethodInfo GetMethod(string name) => throw null; + public System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public System.Reflection.MethodInfo GetMethod(string name, System.Type[] types) => throw null; + protected virtual System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public System.Reflection.MethodInfo[] GetMethods() => throw null; + public virtual System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingFlags) => throw null; + public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public virtual void GetPEKind(out System.Reflection.PortableExecutableKinds peKind, out System.Reflection.ImageFileMachine machine) => throw null; + public virtual System.Type GetType(string className) => throw null; + public virtual System.Type GetType(string className, bool ignoreCase) => throw null; + public virtual System.Type GetType(string className, bool throwOnError, bool ignoreCase) => throw null; + public virtual System.Type[] GetTypes() => throw null; + public virtual bool IsDefined(System.Type attributeType, bool inherit) => throw null; + public virtual bool IsResource() => throw null; + public virtual int MDStreamVersion { get => throw null; } + public virtual int MetadataToken { get => throw null; } + public System.ModuleHandle ModuleHandle { get => throw null; } + public virtual System.Guid ModuleVersionId { get => throw null; } + public virtual string Name { get => throw null; } + public static bool operator ==(System.Reflection.Module left, System.Reflection.Module right) => throw null; + public static bool operator !=(System.Reflection.Module left, System.Reflection.Module right) => throw null; + public System.Reflection.FieldInfo ResolveField(int metadataToken) => throw null; + public virtual System.Reflection.FieldInfo ResolveField(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; + public System.Reflection.MemberInfo ResolveMember(int metadataToken) => throw null; + public virtual System.Reflection.MemberInfo ResolveMember(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; + public System.Reflection.MethodBase ResolveMethod(int metadataToken) => throw null; + public virtual System.Reflection.MethodBase ResolveMethod(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; + public virtual byte[] ResolveSignature(int metadataToken) => throw null; + public virtual string ResolveString(int metadataToken) => throw null; + public System.Type ResolveType(int metadataToken) => throw null; + public virtual System.Type ResolveType(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; + public virtual string ScopeName { get => throw null; } + public override string ToString() => throw null; + } + public delegate System.Reflection.Module ModuleResolveEventHandler(object sender, System.ResolveEventArgs e); + public sealed class NullabilityInfo + { + public System.Reflection.NullabilityInfo ElementType { get => throw null; } + public System.Reflection.NullabilityInfo[] GenericTypeArguments { get => throw null; } + public System.Reflection.NullabilityState ReadState { get => throw null; } + public System.Type Type { get => throw null; } + public System.Reflection.NullabilityState WriteState { get => throw null; } + } + public sealed class NullabilityInfoContext + { + public System.Reflection.NullabilityInfo Create(System.Reflection.EventInfo eventInfo) => throw null; + public System.Reflection.NullabilityInfo Create(System.Reflection.FieldInfo fieldInfo) => throw null; + public System.Reflection.NullabilityInfo Create(System.Reflection.ParameterInfo parameterInfo) => throw null; + public System.Reflection.NullabilityInfo Create(System.Reflection.PropertyInfo propertyInfo) => throw null; + public NullabilityInfoContext() => throw null; + } + public enum NullabilityState + { + Unknown = 0, + NotNull = 1, + Nullable = 2, + } + public sealed class ObfuscateAssemblyAttribute : System.Attribute + { + public bool AssemblyIsPrivate { get => throw null; } + public ObfuscateAssemblyAttribute(bool assemblyIsPrivate) => throw null; + public bool StripAfterObfuscation { get => throw null; set { } } + } + public sealed class ObfuscationAttribute : System.Attribute + { + public bool ApplyToMembers { get => throw null; set { } } + public ObfuscationAttribute() => throw null; + public bool Exclude { get => throw null; set { } } + public string Feature { get => throw null; set { } } + public bool StripAfterObfuscation { get => throw null; set { } } + } + [System.Flags] + public enum ParameterAttributes + { + None = 0, + In = 1, + Out = 2, + Lcid = 4, + Retval = 8, + Optional = 16, + HasDefault = 4096, + HasFieldMarshal = 8192, + Reserved3 = 16384, + Reserved4 = 32768, + ReservedMask = 61440, + } + public class ParameterInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.IObjectReference + { + public virtual System.Reflection.ParameterAttributes Attributes { get => throw null; } + protected System.Reflection.ParameterAttributes AttrsImpl; + protected System.Type ClassImpl; + protected ParameterInfo() => throw null; + public virtual System.Collections.Generic.IEnumerable CustomAttributes { get => throw null; } + public virtual object DefaultValue { get => throw null; } + protected object DefaultValueImpl; + public virtual object[] GetCustomAttributes(bool inherit) => throw null; + public virtual object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; + public virtual System.Collections.Generic.IList GetCustomAttributesData() => throw null; + public virtual System.Type[] GetOptionalCustomModifiers() => throw null; + public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null; + public virtual System.Type[] GetRequiredCustomModifiers() => throw null; + public virtual bool HasDefaultValue { get => throw null; } + public virtual bool IsDefined(System.Type attributeType, bool inherit) => throw null; + public bool IsIn { get => throw null; } + public bool IsLcid { get => throw null; } + public bool IsOptional { get => throw null; } + public bool IsOut { get => throw null; } + public bool IsRetval { get => throw null; } + public virtual System.Reflection.MemberInfo Member { get => throw null; } + protected System.Reflection.MemberInfo MemberImpl; + public virtual int MetadataToken { get => throw null; } + public virtual string Name { get => throw null; } + protected string NameImpl; + public virtual System.Type ParameterType { get => throw null; } + public virtual int Position { get => throw null; } + protected int PositionImpl; + public virtual object RawDefaultValue { get => throw null; } + public override string ToString() => throw null; + } + public struct ParameterModifier + { + public ParameterModifier(int parameterCount) => throw null; + public bool this[int index] { get => throw null; set { } } + } + public sealed class Pointer : System.Runtime.Serialization.ISerializable + { + public static unsafe object Box(void* ptr, System.Type type) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public static unsafe void* Unbox(object ptr) => throw null; + } + [System.Flags] + public enum PortableExecutableKinds + { + NotAPortableExecutableImage = 0, + ILOnly = 1, + Required32Bit = 2, + PE32Plus = 4, + Unmanaged32Bit = 8, + Preferred32Bit = 16, + } + public enum ProcessorArchitecture + { + None = 0, + MSIL = 1, + X86 = 2, + IA64 = 3, + Amd64 = 4, + Arm = 5, + } + [System.Flags] + public enum PropertyAttributes + { + None = 0, + SpecialName = 512, + RTSpecialName = 1024, + HasDefault = 4096, + Reserved2 = 8192, + Reserved3 = 16384, + Reserved4 = 32768, + ReservedMask = 62464, + } + public abstract class PropertyInfo : System.Reflection.MemberInfo + { + public abstract System.Reflection.PropertyAttributes Attributes { get; } + public abstract bool CanRead { get; } + public abstract bool CanWrite { get; } + protected PropertyInfo() => throw null; + public override bool Equals(object obj) => throw null; + public System.Reflection.MethodInfo[] GetAccessors() => throw null; + public abstract System.Reflection.MethodInfo[] GetAccessors(bool nonPublic); + public virtual object GetConstantValue() => throw null; + public System.Reflection.MethodInfo GetGetMethod() => throw null; + public abstract System.Reflection.MethodInfo GetGetMethod(bool nonPublic); + public override int GetHashCode() => throw null; + public abstract System.Reflection.ParameterInfo[] GetIndexParameters(); + public virtual System.Reflection.MethodInfo GetMethod { get => throw null; } + public virtual System.Type[] GetOptionalCustomModifiers() => throw null; + public virtual object GetRawConstantValue() => throw null; + public virtual System.Type[] GetRequiredCustomModifiers() => throw null; + public System.Reflection.MethodInfo GetSetMethod() => throw null; + public abstract System.Reflection.MethodInfo GetSetMethod(bool nonPublic); + public object GetValue(object obj) => throw null; + public virtual object GetValue(object obj, object[] index) => throw null; + public abstract object GetValue(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture); + public bool IsSpecialName { get => throw null; } + public override System.Reflection.MemberTypes MemberType { get => throw null; } + public static bool operator ==(System.Reflection.PropertyInfo left, System.Reflection.PropertyInfo right) => throw null; + public static bool operator !=(System.Reflection.PropertyInfo left, System.Reflection.PropertyInfo right) => throw null; + public abstract System.Type PropertyType { get; } + public virtual System.Reflection.MethodInfo SetMethod { get => throw null; } + public void SetValue(object obj, object value) => throw null; + public virtual void SetValue(object obj, object value, object[] index) => throw null; + public abstract void SetValue(object obj, object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture); + } + public abstract class ReflectionContext + { + protected ReflectionContext() => throw null; + public virtual System.Reflection.TypeInfo GetTypeForObject(object value) => throw null; + public abstract System.Reflection.Assembly MapAssembly(System.Reflection.Assembly assembly); + public abstract System.Reflection.TypeInfo MapType(System.Reflection.TypeInfo type); + } + public sealed class ReflectionTypeLoadException : System.SystemException, System.Runtime.Serialization.ISerializable + { + public ReflectionTypeLoadException(System.Type[] classes, System.Exception[] exceptions) => throw null; + public ReflectionTypeLoadException(System.Type[] classes, System.Exception[] exceptions, string message) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.Exception[] LoaderExceptions { get => throw null; } + public override string Message { get => throw null; } + public override string ToString() => throw null; + public System.Type[] Types { get => throw null; } + } + [System.Flags] + public enum ResourceAttributes + { + Public = 1, + Private = 2, + } + [System.Flags] + public enum ResourceLocation + { + Embedded = 1, + ContainedInAnotherAssembly = 2, + ContainedInManifestFile = 4, + } + public static partial class RuntimeReflectionExtensions + { + public static System.Reflection.MethodInfo GetMethodInfo(this System.Delegate del) => throw null; + public static System.Reflection.MethodInfo GetRuntimeBaseDefinition(this System.Reflection.MethodInfo method) => throw null; + public static System.Reflection.EventInfo GetRuntimeEvent(this System.Type type, string name) => throw null; + public static System.Collections.Generic.IEnumerable GetRuntimeEvents(this System.Type type) => throw null; + public static System.Reflection.FieldInfo GetRuntimeField(this System.Type type, string name) => throw null; + public static System.Collections.Generic.IEnumerable GetRuntimeFields(this System.Type type) => throw null; + public static System.Reflection.InterfaceMapping GetRuntimeInterfaceMap(this System.Reflection.TypeInfo typeInfo, System.Type interfaceType) => throw null; + public static System.Reflection.MethodInfo GetRuntimeMethod(this System.Type type, string name, System.Type[] parameters) => throw null; + public static System.Collections.Generic.IEnumerable GetRuntimeMethods(this System.Type type) => throw null; + public static System.Collections.Generic.IEnumerable GetRuntimeProperties(this System.Type type) => throw null; + public static System.Reflection.PropertyInfo GetRuntimeProperty(this System.Type type, string name) => throw null; + } + public class StrongNameKeyPair : System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + { + public StrongNameKeyPair(byte[] keyPairArray) => throw null; + public StrongNameKeyPair(System.IO.FileStream keyPairFile) => throw null; + protected StrongNameKeyPair(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public StrongNameKeyPair(string keyPairContainer) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; + public byte[] PublicKey { get => throw null; } + } + public class TargetException : System.ApplicationException + { + public TargetException() => throw null; + protected TargetException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public TargetException(string message) => throw null; + public TargetException(string message, System.Exception inner) => throw null; + } + public sealed class TargetInvocationException : System.ApplicationException + { + public TargetInvocationException(System.Exception inner) => throw null; + public TargetInvocationException(string message, System.Exception inner) => throw null; + } + public sealed class TargetParameterCountException : System.ApplicationException + { + public TargetParameterCountException() => throw null; + public TargetParameterCountException(string message) => throw null; + public TargetParameterCountException(string message, System.Exception inner) => throw null; + } + [System.Flags] + public enum TypeAttributes + { + AnsiClass = 0, + AutoLayout = 0, + Class = 0, + NotPublic = 0, + Public = 1, + NestedPublic = 2, + NestedPrivate = 3, + NestedFamily = 4, + NestedAssembly = 5, + NestedFamANDAssem = 6, + NestedFamORAssem = 7, + VisibilityMask = 7, + SequentialLayout = 8, + ExplicitLayout = 16, + LayoutMask = 24, + ClassSemanticsMask = 32, + Interface = 32, + Abstract = 128, + Sealed = 256, + SpecialName = 1024, + RTSpecialName = 2048, + Import = 4096, + Serializable = 8192, + WindowsRuntime = 16384, + UnicodeClass = 65536, + AutoClass = 131072, + CustomFormatClass = 196608, + StringFormatMask = 196608, + HasSecurity = 262144, + ReservedMask = 264192, + BeforeFieldInit = 1048576, + CustomFormatMask = 12582912, + } + public class TypeDelegator : System.Reflection.TypeInfo + { + public override System.Reflection.Assembly Assembly { get => throw null; } + public override string AssemblyQualifiedName { get => throw null; } + public override System.Type BaseType { get => throw null; } + protected TypeDelegator() => throw null; + public TypeDelegator(System.Type delegatingType) => throw null; + public override string FullName { get => throw null; } + protected override System.Reflection.TypeAttributes GetAttributeFlagsImpl() => throw null; + protected override System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public override System.Reflection.ConstructorInfo[] GetConstructors(System.Reflection.BindingFlags bindingAttr) => throw null; + public override object[] GetCustomAttributes(bool inherit) => throw null; + public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; + public override System.Type GetElementType() => throw null; + public override System.Reflection.EventInfo GetEvent(string name, System.Reflection.BindingFlags bindingAttr) => throw null; + public override System.Reflection.EventInfo[] GetEvents() => throw null; + public override System.Reflection.EventInfo[] GetEvents(System.Reflection.BindingFlags bindingAttr) => throw null; + public override System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) => throw null; + public override System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingAttr) => throw null; + public override System.Type GetInterface(string name, bool ignoreCase) => throw null; + public override System.Reflection.InterfaceMapping GetInterfaceMap(System.Type interfaceType) => throw null; + public override System.Type[] GetInterfaces() => throw null; + public override System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.MemberTypes type, System.Reflection.BindingFlags bindingAttr) => throw null; + public override System.Reflection.MemberInfo[] GetMembers(System.Reflection.BindingFlags bindingAttr) => throw null; + public override System.Reflection.MemberInfo GetMemberWithSameMetadataDefinitionAs(System.Reflection.MemberInfo member) => throw null; + protected override System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public override System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingAttr) => throw null; + public override System.Type GetNestedType(string name, System.Reflection.BindingFlags bindingAttr) => throw null; + public override System.Type[] GetNestedTypes(System.Reflection.BindingFlags bindingAttr) => throw null; + public override System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr) => throw null; + protected override System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public override System.Guid GUID { get => throw null; } + protected override bool HasElementTypeImpl() => throw null; + public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters) => throw null; + protected override bool IsArrayImpl() => throw null; + public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo) => throw null; + protected override bool IsByRefImpl() => throw null; + public override bool IsByRefLike { get => throw null; } + public override bool IsCollectible { get => throw null; } + protected override bool IsCOMObjectImpl() => throw null; + public override bool IsConstructedGenericType { get => throw null; } + public override bool IsDefined(System.Type attributeType, bool inherit) => throw null; + public override bool IsGenericMethodParameter { get => throw null; } + public override bool IsGenericTypeParameter { get => throw null; } + protected override bool IsPointerImpl() => throw null; + protected override bool IsPrimitiveImpl() => throw null; + public override bool IsSZArray { get => throw null; } + public override bool IsTypeDefinition { get => throw null; } + protected override bool IsValueTypeImpl() => throw null; + public override bool IsVariableBoundArray { get => throw null; } + public override int MetadataToken { get => throw null; } + public override System.Reflection.Module Module { get => throw null; } + public override string Name { get => throw null; } + public override string Namespace { get => throw null; } + public override System.RuntimeTypeHandle TypeHandle { get => throw null; } + protected System.Type typeImpl; + public override System.Type UnderlyingSystemType { get => throw null; } + } + public delegate bool TypeFilter(System.Type m, object filterCriteria); + public abstract class TypeInfo : System.Type, System.Reflection.IReflectableType + { + public virtual System.Type AsType() => throw null; + protected TypeInfo() => throw null; + public virtual System.Collections.Generic.IEnumerable DeclaredConstructors { get => throw null; } + public virtual System.Collections.Generic.IEnumerable DeclaredEvents { get => throw null; } + public virtual System.Collections.Generic.IEnumerable DeclaredFields { get => throw null; } + public virtual System.Collections.Generic.IEnumerable DeclaredMembers { get => throw null; } + public virtual System.Collections.Generic.IEnumerable DeclaredMethods { get => throw null; } + public virtual System.Collections.Generic.IEnumerable DeclaredNestedTypes { get => throw null; } + public virtual System.Collections.Generic.IEnumerable DeclaredProperties { get => throw null; } + public virtual System.Type[] GenericTypeParameters { get => throw null; } + public virtual System.Reflection.EventInfo GetDeclaredEvent(string name) => throw null; + public virtual System.Reflection.FieldInfo GetDeclaredField(string name) => throw null; + public virtual System.Reflection.MethodInfo GetDeclaredMethod(string name) => throw null; + public virtual System.Collections.Generic.IEnumerable GetDeclaredMethods(string name) => throw null; + public virtual System.Reflection.TypeInfo GetDeclaredNestedType(string name) => throw null; + public virtual System.Reflection.PropertyInfo GetDeclaredProperty(string name) => throw null; + System.Reflection.TypeInfo System.Reflection.IReflectableType.GetTypeInfo() => throw null; + public virtual System.Collections.Generic.IEnumerable ImplementedInterfaces { get => throw null; } + public virtual bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo) => throw null; + } + } public class ResolveEventArgs : System.EventArgs { - public string Name { get => throw null; } - public System.Reflection.Assembly RequestingAssembly { get => throw null; } public ResolveEventArgs(string name) => throw null; public ResolveEventArgs(string name, System.Reflection.Assembly requestingAssembly) => throw null; + public string Name { get => throw null; } + public System.Reflection.Assembly RequestingAssembly { get => throw null; } } - public delegate System.Reflection.Assembly ResolveEventHandler(object sender, System.ResolveEventArgs args); - + namespace Resources + { + public interface IResourceReader : System.Collections.IEnumerable, System.IDisposable + { + void Close(); + System.Collections.IDictionaryEnumerator GetEnumerator(); + } + public class MissingManifestResourceException : System.SystemException + { + public MissingManifestResourceException() => throw null; + protected MissingManifestResourceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public MissingManifestResourceException(string message) => throw null; + public MissingManifestResourceException(string message, System.Exception inner) => throw null; + } + public class MissingSatelliteAssemblyException : System.SystemException + { + public MissingSatelliteAssemblyException() => throw null; + protected MissingSatelliteAssemblyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public MissingSatelliteAssemblyException(string message) => throw null; + public MissingSatelliteAssemblyException(string message, System.Exception inner) => throw null; + public MissingSatelliteAssemblyException(string message, string cultureName) => throw null; + public string CultureName { get => throw null; } + } + public sealed class NeutralResourcesLanguageAttribute : System.Attribute + { + public NeutralResourcesLanguageAttribute(string cultureName) => throw null; + public NeutralResourcesLanguageAttribute(string cultureName, System.Resources.UltimateResourceFallbackLocation location) => throw null; + public string CultureName { get => throw null; } + public System.Resources.UltimateResourceFallbackLocation Location { get => throw null; } + } + public class ResourceManager + { + public virtual string BaseName { get => throw null; } + public static System.Resources.ResourceManager CreateFileBasedResourceManager(string baseName, string resourceDir, System.Type usingResourceSet) => throw null; + protected ResourceManager() => throw null; + public ResourceManager(string baseName, System.Reflection.Assembly assembly) => throw null; + public ResourceManager(string baseName, System.Reflection.Assembly assembly, System.Type usingResourceSet) => throw null; + public ResourceManager(System.Type resourceSource) => throw null; + protected System.Resources.UltimateResourceFallbackLocation FallbackLocation { get => throw null; set { } } + protected static System.Globalization.CultureInfo GetNeutralResourcesLanguage(System.Reflection.Assembly a) => throw null; + public virtual object GetObject(string name) => throw null; + public virtual object GetObject(string name, System.Globalization.CultureInfo culture) => throw null; + protected virtual string GetResourceFileName(System.Globalization.CultureInfo culture) => throw null; + public virtual System.Resources.ResourceSet GetResourceSet(System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents) => throw null; + protected static System.Version GetSatelliteContractVersion(System.Reflection.Assembly a) => throw null; + public System.IO.UnmanagedMemoryStream GetStream(string name) => throw null; + public System.IO.UnmanagedMemoryStream GetStream(string name, System.Globalization.CultureInfo culture) => throw null; + public virtual string GetString(string name) => throw null; + public virtual string GetString(string name, System.Globalization.CultureInfo culture) => throw null; + public static int HeaderVersionNumber; + public virtual bool IgnoreCase { get => throw null; set { } } + protected virtual System.Resources.ResourceSet InternalGetResourceSet(System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents) => throw null; + public static int MagicNumber; + protected System.Reflection.Assembly MainAssembly; + public virtual void ReleaseAllResources() => throw null; + public virtual System.Type ResourceSetType { get => throw null; } + } + public sealed class ResourceReader : System.Collections.IEnumerable, System.IDisposable, System.Resources.IResourceReader + { + public void Close() => throw null; + public ResourceReader(System.IO.Stream stream) => throw null; + public ResourceReader(string fileName) => throw null; + public void Dispose() => throw null; + public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public void GetResourceData(string resourceName, out string resourceType, out byte[] resourceData) => throw null; + } + public class ResourceSet : System.Collections.IEnumerable, System.IDisposable + { + public virtual void Close() => throw null; + protected ResourceSet() => throw null; + public ResourceSet(System.IO.Stream stream) => throw null; + public ResourceSet(System.Resources.IResourceReader reader) => throw null; + public ResourceSet(string fileName) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public virtual System.Type GetDefaultReader() => throw null; + public virtual System.Type GetDefaultWriter() => throw null; + public virtual System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public virtual object GetObject(string name) => throw null; + public virtual object GetObject(string name, bool ignoreCase) => throw null; + public virtual string GetString(string name) => throw null; + public virtual string GetString(string name, bool ignoreCase) => throw null; + protected virtual void ReadResources() => throw null; + } + public sealed class SatelliteContractVersionAttribute : System.Attribute + { + public SatelliteContractVersionAttribute(string version) => throw null; + public string Version { get => throw null; } + } + public enum UltimateResourceFallbackLocation + { + MainAssembly = 0, + Satellite = 1, + } + } + namespace Runtime + { + public sealed class AmbiguousImplementationException : System.Exception + { + public AmbiguousImplementationException() => throw null; + public AmbiguousImplementationException(string message) => throw null; + public AmbiguousImplementationException(string message, System.Exception innerException) => throw null; + } + public sealed class AssemblyTargetedPatchBandAttribute : System.Attribute + { + public AssemblyTargetedPatchBandAttribute(string targetedPatchBand) => throw null; + public string TargetedPatchBand { get => throw null; } + } + namespace CompilerServices + { + public sealed class AccessedThroughPropertyAttribute : System.Attribute + { + public AccessedThroughPropertyAttribute(string propertyName) => throw null; + public string PropertyName { get => throw null; } + } + public struct AsyncIteratorMethodBuilder + { + public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public void Complete() => throw null; + public static System.Runtime.CompilerServices.AsyncIteratorMethodBuilder Create() => throw null; + public void MoveNext(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + } + public sealed class AsyncIteratorStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute + { + public AsyncIteratorStateMachineAttribute(System.Type stateMachineType) : base(default(System.Type)) => throw null; + } + public sealed class AsyncMethodBuilderAttribute : System.Attribute + { + public System.Type BuilderType { get => throw null; } + public AsyncMethodBuilderAttribute(System.Type builderType) => throw null; + } + public sealed class AsyncStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute + { + public AsyncStateMachineAttribute(System.Type stateMachineType) : base(default(System.Type)) => throw null; + } + public struct AsyncTaskMethodBuilder + { + public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public static System.Runtime.CompilerServices.AsyncTaskMethodBuilder Create() => throw null; + public void SetException(System.Exception exception) => throw null; + public void SetResult() => throw null; + public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; + public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public System.Threading.Tasks.Task Task { get => throw null; } + } + public struct AsyncTaskMethodBuilder + { + public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public static System.Runtime.CompilerServices.AsyncTaskMethodBuilder Create() => throw null; + public void SetException(System.Exception exception) => throw null; + public void SetResult(TResult result) => throw null; + public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; + public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public System.Threading.Tasks.Task Task { get => throw null; } + } + public struct AsyncValueTaskMethodBuilder + { + public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public static System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder Create() => throw null; + public void SetException(System.Exception exception) => throw null; + public void SetResult() => throw null; + public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; + public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public System.Threading.Tasks.ValueTask Task { get => throw null; } + } + public struct AsyncValueTaskMethodBuilder + { + public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public static System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder Create() => throw null; + public void SetException(System.Exception exception) => throw null; + public void SetResult(TResult result) => throw null; + public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; + public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public System.Threading.Tasks.ValueTask Task { get => throw null; } + } + public struct AsyncVoidMethodBuilder + { + public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public static System.Runtime.CompilerServices.AsyncVoidMethodBuilder Create() => throw null; + public void SetException(System.Exception exception) => throw null; + public void SetResult() => throw null; + public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; + public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + } + public class CallConvCdecl + { + public CallConvCdecl() => throw null; + } + public class CallConvFastcall + { + public CallConvFastcall() => throw null; + } + public class CallConvMemberFunction + { + public CallConvMemberFunction() => throw null; + } + public class CallConvStdcall + { + public CallConvStdcall() => throw null; + } + public class CallConvSuppressGCTransition + { + public CallConvSuppressGCTransition() => throw null; + } + public class CallConvThiscall + { + public CallConvThiscall() => throw null; + } + public sealed class CallerArgumentExpressionAttribute : System.Attribute + { + public CallerArgumentExpressionAttribute(string parameterName) => throw null; + public string ParameterName { get => throw null; } + } + public sealed class CallerFilePathAttribute : System.Attribute + { + public CallerFilePathAttribute() => throw null; + } + public sealed class CallerLineNumberAttribute : System.Attribute + { + public CallerLineNumberAttribute() => throw null; + } + public sealed class CallerMemberNameAttribute : System.Attribute + { + public CallerMemberNameAttribute() => throw null; + } + [System.Flags] + public enum CompilationRelaxations + { + NoStringInterning = 8, + } + public class CompilationRelaxationsAttribute : System.Attribute + { + public int CompilationRelaxations { get => throw null; } + public CompilationRelaxationsAttribute(int relaxations) => throw null; + public CompilationRelaxationsAttribute(System.Runtime.CompilerServices.CompilationRelaxations relaxations) => throw null; + } + public sealed class CompilerFeatureRequiredAttribute : System.Attribute + { + public CompilerFeatureRequiredAttribute(string featureName) => throw null; + public string FeatureName { get => throw null; } + public bool IsOptional { get => throw null; set { } } + public static string RefStructs; + public static string RequiredMembers; + } + public sealed class CompilerGeneratedAttribute : System.Attribute + { + public CompilerGeneratedAttribute() => throw null; + } + public class CompilerGlobalScopeAttribute : System.Attribute + { + public CompilerGlobalScopeAttribute() => throw null; + } + public sealed class ConditionalWeakTable : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable where TKey : class where TValue : class + { + public void Add(TKey key, TValue value) => throw null; + public void AddOrUpdate(TKey key, TValue value) => throw null; + public void Clear() => throw null; + public delegate TValue CreateValueCallback(TKey key); + public ConditionalWeakTable() => throw null; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public TValue GetOrCreateValue(TKey key) => throw null; + public TValue GetValue(TKey key, System.Runtime.CompilerServices.ConditionalWeakTable.CreateValueCallback createValueCallback) => throw null; + public bool Remove(TKey key) => throw null; + public bool TryAdd(TKey key, TValue value) => throw null; + public bool TryGetValue(TKey key, out TValue value) => throw null; + } + public struct ConfiguredAsyncDisposable + { + public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable DisposeAsync() => throw null; + } + public struct ConfiguredCancelableAsyncEnumerable + { + public System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable ConfigureAwait(bool continueOnCapturedContext) => throw null; + public struct Enumerator + { + public T Current { get => throw null; } + public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable DisposeAsync() => throw null; + public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable MoveNextAsync() => throw null; + } + public System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable.Enumerator GetAsyncEnumerator() => throw null; + public System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable WithCancellation(System.Threading.CancellationToken cancellationToken) => throw null; + } + public struct ConfiguredTaskAwaitable + { + public struct ConfiguredTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion + { + public void GetResult() => throw null; + public bool IsCompleted { get => throw null; } + public void OnCompleted(System.Action continuation) => throw null; + public void UnsafeOnCompleted(System.Action continuation) => throw null; + } + public System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter GetAwaiter() => throw null; + } + public struct ConfiguredTaskAwaitable + { + public struct ConfiguredTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion + { + public TResult GetResult() => throw null; + public bool IsCompleted { get => throw null; } + public void OnCompleted(System.Action continuation) => throw null; + public void UnsafeOnCompleted(System.Action continuation) => throw null; + } + public System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter GetAwaiter() => throw null; + } + public struct ConfiguredValueTaskAwaitable + { + public struct ConfiguredValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion + { + public void GetResult() => throw null; + public bool IsCompleted { get => throw null; } + public void OnCompleted(System.Action continuation) => throw null; + public void UnsafeOnCompleted(System.Action continuation) => throw null; + } + public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter GetAwaiter() => throw null; + } + public struct ConfiguredValueTaskAwaitable + { + public struct ConfiguredValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion + { + public TResult GetResult() => throw null; + public bool IsCompleted { get => throw null; } + public void OnCompleted(System.Action continuation) => throw null; + public void UnsafeOnCompleted(System.Action continuation) => throw null; + } + public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter GetAwaiter() => throw null; + } + public abstract class CustomConstantAttribute : System.Attribute + { + protected CustomConstantAttribute() => throw null; + public abstract object Value { get; } + } + public sealed class DateTimeConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute + { + public DateTimeConstantAttribute(long ticks) => throw null; + public override object Value { get => throw null; } + } + public sealed class DecimalConstantAttribute : System.Attribute + { + public DecimalConstantAttribute(byte scale, byte sign, int hi, int mid, int low) => throw null; + public DecimalConstantAttribute(byte scale, byte sign, uint hi, uint mid, uint low) => throw null; + public decimal Value { get => throw null; } + } + public sealed class DefaultDependencyAttribute : System.Attribute + { + public DefaultDependencyAttribute(System.Runtime.CompilerServices.LoadHint loadHintArgument) => throw null; + public System.Runtime.CompilerServices.LoadHint LoadHint { get => throw null; } + } + public struct DefaultInterpolatedStringHandler + { + public void AppendFormatted(object value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(System.ReadOnlySpan value) => throw null; + public void AppendFormatted(System.ReadOnlySpan value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(string value) => throw null; + public void AppendFormatted(string value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(T value) => throw null; + public void AppendFormatted(T value, int alignment) => throw null; + public void AppendFormatted(T value, int alignment, string format) => throw null; + public void AppendFormatted(T value, string format) => throw null; + public void AppendLiteral(string value) => throw null; + public DefaultInterpolatedStringHandler(int literalLength, int formattedCount) => throw null; + public DefaultInterpolatedStringHandler(int literalLength, int formattedCount, System.IFormatProvider provider) => throw null; + public DefaultInterpolatedStringHandler(int literalLength, int formattedCount, System.IFormatProvider provider, System.Span initialBuffer) => throw null; + public override string ToString() => throw null; + public string ToStringAndClear() => throw null; + } + public sealed class DependencyAttribute : System.Attribute + { + public DependencyAttribute(string dependentAssemblyArgument, System.Runtime.CompilerServices.LoadHint loadHintArgument) => throw null; + public string DependentAssembly { get => throw null; } + public System.Runtime.CompilerServices.LoadHint LoadHint { get => throw null; } + } + public sealed class DisablePrivateReflectionAttribute : System.Attribute + { + public DisablePrivateReflectionAttribute() => throw null; + } + public sealed class DisableRuntimeMarshallingAttribute : System.Attribute + { + public DisableRuntimeMarshallingAttribute() => throw null; + } + public class DiscardableAttribute : System.Attribute + { + public DiscardableAttribute() => throw null; + } + public sealed class EnumeratorCancellationAttribute : System.Attribute + { + public EnumeratorCancellationAttribute() => throw null; + } + public sealed class ExtensionAttribute : System.Attribute + { + public ExtensionAttribute() => throw null; + } + public sealed class FixedAddressValueTypeAttribute : System.Attribute + { + public FixedAddressValueTypeAttribute() => throw null; + } + public sealed class FixedBufferAttribute : System.Attribute + { + public FixedBufferAttribute(System.Type elementType, int length) => throw null; + public System.Type ElementType { get => throw null; } + public int Length { get => throw null; } + } + public static class FormattableStringFactory + { + public static System.FormattableString Create(string format, params object[] arguments) => throw null; + } + public interface IAsyncStateMachine + { + void MoveNext(); + void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine); + } + public interface ICriticalNotifyCompletion : System.Runtime.CompilerServices.INotifyCompletion + { + void UnsafeOnCompleted(System.Action continuation); + } + public sealed class IndexerNameAttribute : System.Attribute + { + public IndexerNameAttribute(string indexerName) => throw null; + } + public interface INotifyCompletion + { + void OnCompleted(System.Action continuation); + } + public sealed class InternalsVisibleToAttribute : System.Attribute + { + public bool AllInternalsVisible { get => throw null; set { } } + public string AssemblyName { get => throw null; } + public InternalsVisibleToAttribute(string assemblyName) => throw null; + } + public sealed class InterpolatedStringHandlerArgumentAttribute : System.Attribute + { + public string[] Arguments { get => throw null; } + public InterpolatedStringHandlerArgumentAttribute(string argument) => throw null; + public InterpolatedStringHandlerArgumentAttribute(params string[] arguments) => throw null; + } + public sealed class InterpolatedStringHandlerAttribute : System.Attribute + { + public InterpolatedStringHandlerAttribute() => throw null; + } + public sealed class IsByRefLikeAttribute : System.Attribute + { + public IsByRefLikeAttribute() => throw null; + } + public static class IsConst + { + } + public static class IsExternalInit + { + } + public sealed class IsReadOnlyAttribute : System.Attribute + { + public IsReadOnlyAttribute() => throw null; + } + public interface IStrongBox + { + object Value { get; set; } + } + public static class IsVolatile + { + } + public sealed class IteratorStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute + { + public IteratorStateMachineAttribute(System.Type stateMachineType) : base(default(System.Type)) => throw null; + } + public interface ITuple + { + int Length { get; } + object this[int index] { get; } + } + public enum LoadHint + { + Default = 0, + Always = 1, + Sometimes = 2, + } + public enum MethodCodeType + { + IL = 0, + Native = 1, + OPTIL = 2, + Runtime = 3, + } + public sealed class MethodImplAttribute : System.Attribute + { + public MethodImplAttribute() => throw null; + public MethodImplAttribute(short value) => throw null; + public MethodImplAttribute(System.Runtime.CompilerServices.MethodImplOptions methodImplOptions) => throw null; + public System.Runtime.CompilerServices.MethodCodeType MethodCodeType; + public System.Runtime.CompilerServices.MethodImplOptions Value { get => throw null; } + } + [System.Flags] + public enum MethodImplOptions + { + Unmanaged = 4, + NoInlining = 8, + ForwardRef = 16, + Synchronized = 32, + NoOptimization = 64, + PreserveSig = 128, + AggressiveInlining = 256, + AggressiveOptimization = 512, + InternalCall = 4096, + } + public sealed class ModuleInitializerAttribute : System.Attribute + { + public ModuleInitializerAttribute() => throw null; + } + public struct PoolingAsyncValueTaskMethodBuilder + { + public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public static System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder Create() => throw null; + public void SetException(System.Exception exception) => throw null; + public void SetResult() => throw null; + public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; + public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public System.Threading.Tasks.ValueTask Task { get => throw null; } + } + public struct PoolingAsyncValueTaskMethodBuilder + { + public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public static System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder Create() => throw null; + public void SetException(System.Exception exception) => throw null; + public void SetResult(TResult result) => throw null; + public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; + public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; + public System.Threading.Tasks.ValueTask Task { get => throw null; } + } + public sealed class PreserveBaseOverridesAttribute : System.Attribute + { + public PreserveBaseOverridesAttribute() => throw null; + } + public sealed class ReferenceAssemblyAttribute : System.Attribute + { + public ReferenceAssemblyAttribute() => throw null; + public ReferenceAssemblyAttribute(string description) => throw null; + public string Description { get => throw null; } + } + public sealed class RequiredMemberAttribute : System.Attribute + { + public RequiredMemberAttribute() => throw null; + } + public sealed class RuntimeCompatibilityAttribute : System.Attribute + { + public RuntimeCompatibilityAttribute() => throw null; + public bool WrapNonExceptionThrows { get => throw null; set { } } + } + public static class RuntimeFeature + { + public static string ByRefFields; + public static string CovariantReturnsOfClasses; + public static string DefaultImplementationsOfInterfaces; + public static bool IsDynamicCodeCompiled { get => throw null; } + public static bool IsDynamicCodeSupported { get => throw null; } + public static bool IsSupported(string feature) => throw null; + public static string NumericIntPtr; + public static string PortablePdb; + public static string UnmanagedSignatureCallingConvention; + public static string VirtualStaticsInInterfaces; + } + public static class RuntimeHelpers + { + public static nint AllocateTypeAssociatedMemory(System.Type type, int size) => throw null; + public delegate void CleanupCode(object userData, bool exceptionThrown); + public static System.ReadOnlySpan CreateSpan(System.RuntimeFieldHandle fldHandle) => throw null; + public static void EnsureSufficientExecutionStack() => throw null; + public static bool Equals(object o1, object o2) => throw null; + public static void ExecuteCodeWithGuaranteedCleanup(System.Runtime.CompilerServices.RuntimeHelpers.TryCode code, System.Runtime.CompilerServices.RuntimeHelpers.CleanupCode backoutCode, object userData) => throw null; + public static int GetHashCode(object o) => throw null; + public static object GetObjectValue(object obj) => throw null; + public static T[] GetSubArray(T[] array, System.Range range) => throw null; + public static object GetUninitializedObject(System.Type type) => throw null; + public static void InitializeArray(System.Array array, System.RuntimeFieldHandle fldHandle) => throw null; + public static bool IsReferenceOrContainsReferences() => throw null; + public static int OffsetToStringData { get => throw null; } + public static void PrepareConstrainedRegions() => throw null; + public static void PrepareConstrainedRegionsNoOP() => throw null; + public static void PrepareContractedDelegate(System.Delegate d) => throw null; + public static void PrepareDelegate(System.Delegate d) => throw null; + public static void PrepareMethod(System.RuntimeMethodHandle method) => throw null; + public static void PrepareMethod(System.RuntimeMethodHandle method, System.RuntimeTypeHandle[] instantiation) => throw null; + public static void ProbeForSufficientStack() => throw null; + public static void RunClassConstructor(System.RuntimeTypeHandle type) => throw null; + public static void RunModuleConstructor(System.ModuleHandle module) => throw null; + public delegate void TryCode(object userData); + public static bool TryEnsureSufficientExecutionStack() => throw null; + } + public sealed class RuntimeWrappedException : System.Exception + { + public RuntimeWrappedException(object thrownObject) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public object WrappedException { get => throw null; } + } + public sealed class SkipLocalsInitAttribute : System.Attribute + { + public SkipLocalsInitAttribute() => throw null; + } + public sealed class SpecialNameAttribute : System.Attribute + { + public SpecialNameAttribute() => throw null; + } + public class StateMachineAttribute : System.Attribute + { + public StateMachineAttribute(System.Type stateMachineType) => throw null; + public System.Type StateMachineType { get => throw null; } + } + public sealed class StringFreezingAttribute : System.Attribute + { + public StringFreezingAttribute() => throw null; + } + public class StrongBox : System.Runtime.CompilerServices.IStrongBox + { + public StrongBox() => throw null; + public StrongBox(T value) => throw null; + public T Value; + object System.Runtime.CompilerServices.IStrongBox.Value { get => throw null; set { } } + } + public sealed class SuppressIldasmAttribute : System.Attribute + { + public SuppressIldasmAttribute() => throw null; + } + public sealed class SwitchExpressionException : System.InvalidOperationException + { + public SwitchExpressionException() => throw null; + public SwitchExpressionException(System.Exception innerException) => throw null; + public SwitchExpressionException(object unmatchedValue) => throw null; + public SwitchExpressionException(string message) => throw null; + public SwitchExpressionException(string message, System.Exception innerException) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } + public object UnmatchedValue { get => throw null; } + } + public struct TaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion + { + public void GetResult() => throw null; + public bool IsCompleted { get => throw null; } + public void OnCompleted(System.Action continuation) => throw null; + public void UnsafeOnCompleted(System.Action continuation) => throw null; + } + public struct TaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion + { + public TResult GetResult() => throw null; + public bool IsCompleted { get => throw null; } + public void OnCompleted(System.Action continuation) => throw null; + public void UnsafeOnCompleted(System.Action continuation) => throw null; + } + public sealed class TupleElementNamesAttribute : System.Attribute + { + public TupleElementNamesAttribute(string[] transformNames) => throw null; + public System.Collections.Generic.IList TransformNames { get => throw null; } + } + public sealed class TypeForwardedFromAttribute : System.Attribute + { + public string AssemblyFullName { get => throw null; } + public TypeForwardedFromAttribute(string assemblyFullName) => throw null; + } + public sealed class TypeForwardedToAttribute : System.Attribute + { + public TypeForwardedToAttribute(System.Type destination) => throw null; + public System.Type Destination { get => throw null; } + } + public static class Unsafe + { + public static unsafe void* Add(void* source, int elementOffset) => throw null; + public static T Add(ref T source, int elementOffset) => throw null; + public static T Add(ref T source, nint elementOffset) => throw null; + public static T Add(ref T source, nuint elementOffset) => throw null; + public static T AddByteOffset(ref T source, nint byteOffset) => throw null; + public static T AddByteOffset(ref T source, nuint byteOffset) => throw null; + public static bool AreSame(ref T left, ref T right) => throw null; + public static T As(object o) where T : class => throw null; + public static TTo As(ref TFrom source) => throw null; + public static unsafe void* AsPointer(ref T value) => throw null; + public static unsafe T AsRef(void* source) => throw null; + public static T AsRef(in T source) => throw null; + public static nint ByteOffset(ref T origin, ref T target) => throw null; + public static unsafe void Copy(void* destination, ref T source) => throw null; + public static unsafe void Copy(ref T destination, void* source) => throw null; + public static void CopyBlock(ref byte destination, ref byte source, uint byteCount) => throw null; + public static unsafe void CopyBlock(void* destination, void* source, uint byteCount) => throw null; + public static void CopyBlockUnaligned(ref byte destination, ref byte source, uint byteCount) => throw null; + public static unsafe void CopyBlockUnaligned(void* destination, void* source, uint byteCount) => throw null; + public static void InitBlock(ref byte startAddress, byte value, uint byteCount) => throw null; + public static unsafe void InitBlock(void* startAddress, byte value, uint byteCount) => throw null; + public static void InitBlockUnaligned(ref byte startAddress, byte value, uint byteCount) => throw null; + public static unsafe void InitBlockUnaligned(void* startAddress, byte value, uint byteCount) => throw null; + public static bool IsAddressGreaterThan(ref T left, ref T right) => throw null; + public static bool IsAddressLessThan(ref T left, ref T right) => throw null; + public static bool IsNullRef(ref T source) => throw null; + public static T NullRef() => throw null; + public static unsafe T Read(void* source) => throw null; + public static T ReadUnaligned(ref byte source) => throw null; + public static unsafe T ReadUnaligned(void* source) => throw null; + public static int SizeOf() => throw null; + public static void SkipInit(out T value) => throw null; + public static unsafe void* Subtract(void* source, int elementOffset) => throw null; + public static T Subtract(ref T source, int elementOffset) => throw null; + public static T Subtract(ref T source, nint elementOffset) => throw null; + public static T Subtract(ref T source, nuint elementOffset) => throw null; + public static T SubtractByteOffset(ref T source, nint byteOffset) => throw null; + public static T SubtractByteOffset(ref T source, nuint byteOffset) => throw null; + public static T Unbox(object box) where T : struct => throw null; + public static unsafe void Write(void* destination, T value) => throw null; + public static void WriteUnaligned(ref byte destination, T value) => throw null; + public static unsafe void WriteUnaligned(void* destination, T value) => throw null; + } + public sealed class UnsafeValueTypeAttribute : System.Attribute + { + public UnsafeValueTypeAttribute() => throw null; + } + public struct ValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion + { + public void GetResult() => throw null; + public bool IsCompleted { get => throw null; } + public void OnCompleted(System.Action continuation) => throw null; + public void UnsafeOnCompleted(System.Action continuation) => throw null; + } + public struct ValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion + { + public TResult GetResult() => throw null; + public bool IsCompleted { get => throw null; } + public void OnCompleted(System.Action continuation) => throw null; + public void UnsafeOnCompleted(System.Action continuation) => throw null; + } + public struct YieldAwaitable + { + public System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter GetAwaiter() => throw null; + public struct YieldAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion + { + public void GetResult() => throw null; + public bool IsCompleted { get => throw null; } + public void OnCompleted(System.Action continuation) => throw null; + public void UnsafeOnCompleted(System.Action continuation) => throw null; + } + } + } + namespace ConstrainedExecution + { + public enum Cer + { + None = 0, + MayFail = 1, + Success = 2, + } + public enum Consistency + { + MayCorruptProcess = 0, + MayCorruptAppDomain = 1, + MayCorruptInstance = 2, + WillNotCorruptState = 3, + } + public abstract class CriticalFinalizerObject + { + protected CriticalFinalizerObject() => throw null; + } + public sealed class PrePrepareMethodAttribute : System.Attribute + { + public PrePrepareMethodAttribute() => throw null; + } + public sealed class ReliabilityContractAttribute : System.Attribute + { + public System.Runtime.ConstrainedExecution.Cer Cer { get => throw null; } + public System.Runtime.ConstrainedExecution.Consistency ConsistencyGuarantee { get => throw null; } + public ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency consistencyGuarantee, System.Runtime.ConstrainedExecution.Cer cer) => throw null; + } + } + public static class ControlledExecution + { + public static void Run(System.Action action, System.Threading.CancellationToken cancellationToken) => throw null; + } + public struct DependentHandle : System.IDisposable + { + public DependentHandle(object target, object dependent) => throw null; + public object Dependent { get => throw null; set { } } + public void Dispose() => throw null; + public bool IsAllocated { get => throw null; } + public object Target { get => throw null; set { } } + public (object Target, object Dependent) TargetAndDependent { get => throw null; } + } + namespace ExceptionServices + { + public sealed class ExceptionDispatchInfo + { + public static System.Runtime.ExceptionServices.ExceptionDispatchInfo Capture(System.Exception source) => throw null; + public static System.Exception SetCurrentStackTrace(System.Exception source) => throw null; + public static System.Exception SetRemoteStackTrace(System.Exception source, string stackTrace) => throw null; + public System.Exception SourceException { get => throw null; } + public void Throw() => throw null; + public static void Throw(System.Exception source) => throw null; + } + public class FirstChanceExceptionEventArgs : System.EventArgs + { + public FirstChanceExceptionEventArgs(System.Exception exception) => throw null; + public System.Exception Exception { get => throw null; } + } + public sealed class HandleProcessCorruptedStateExceptionsAttribute : System.Attribute + { + public HandleProcessCorruptedStateExceptionsAttribute() => throw null; + } + } + public enum GCLargeObjectHeapCompactionMode + { + Default = 1, + CompactOnce = 2, + } + public enum GCLatencyMode + { + Batch = 0, + Interactive = 1, + LowLatency = 2, + SustainedLowLatency = 3, + NoGCRegion = 4, + } + public static class GCSettings + { + public static bool IsServerGC { get => throw null; } + public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get => throw null; set { } } + public static System.Runtime.GCLatencyMode LatencyMode { get => throw null; set { } } + } + namespace InteropServices + { + public enum Architecture + { + X86 = 0, + X64 = 1, + Arm = 2, + Arm64 = 3, + Wasm = 4, + S390x = 5, + LoongArch64 = 6, + Armv6 = 7, + Ppc64le = 8, + } + public enum CharSet + { + None = 1, + Ansi = 2, + Unicode = 3, + Auto = 4, + } + public sealed class ComVisibleAttribute : System.Attribute + { + public ComVisibleAttribute(bool visibility) => throw null; + public bool Value { get => throw null; } + } + public abstract class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable + { + public void Close() => throw null; + protected CriticalHandle(nint invalidHandleValue) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + protected nint handle; + public bool IsClosed { get => throw null; } + public abstract bool IsInvalid { get; } + protected abstract bool ReleaseHandle(); + protected void SetHandle(nint handle) => throw null; + public void SetHandleAsInvalid() => throw null; + } + public class ExternalException : System.SystemException + { + public ExternalException() => throw null; + protected ExternalException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public ExternalException(string message) => throw null; + public ExternalException(string message, System.Exception inner) => throw null; + public ExternalException(string message, int errorCode) => throw null; + public virtual int ErrorCode { get => throw null; } + public override string ToString() => throw null; + } + public sealed class FieldOffsetAttribute : System.Attribute + { + public FieldOffsetAttribute(int offset) => throw null; + public int Value { get => throw null; } + } + public struct GCHandle : System.IEquatable + { + public nint AddrOfPinnedObject() => throw null; + public static System.Runtime.InteropServices.GCHandle Alloc(object value) => throw null; + public static System.Runtime.InteropServices.GCHandle Alloc(object value, System.Runtime.InteropServices.GCHandleType type) => throw null; + public override bool Equals(object o) => throw null; + public bool Equals(System.Runtime.InteropServices.GCHandle other) => throw null; + public void Free() => throw null; + public static System.Runtime.InteropServices.GCHandle FromIntPtr(nint value) => throw null; + public override int GetHashCode() => throw null; + public bool IsAllocated { get => throw null; } + public static bool operator ==(System.Runtime.InteropServices.GCHandle a, System.Runtime.InteropServices.GCHandle b) => throw null; + public static explicit operator System.Runtime.InteropServices.GCHandle(nint value) => throw null; + public static explicit operator nint(System.Runtime.InteropServices.GCHandle value) => throw null; + public static bool operator !=(System.Runtime.InteropServices.GCHandle a, System.Runtime.InteropServices.GCHandle b) => throw null; + public object Target { get => throw null; set { } } + public static nint ToIntPtr(System.Runtime.InteropServices.GCHandle value) => throw null; + } + public enum GCHandleType + { + Weak = 0, + WeakTrackResurrection = 1, + Normal = 2, + Pinned = 3, + } + public sealed class InAttribute : System.Attribute + { + public InAttribute() => throw null; + } + public enum LayoutKind + { + Sequential = 0, + Explicit = 2, + Auto = 3, + } + namespace Marshalling + { + public sealed class ContiguousCollectionMarshallerAttribute : System.Attribute + { + public ContiguousCollectionMarshallerAttribute() => throw null; + } + public sealed class CustomMarshallerAttribute : System.Attribute + { + public CustomMarshallerAttribute(System.Type managedType, System.Runtime.InteropServices.Marshalling.MarshalMode marshalMode, System.Type marshallerType) => throw null; + public struct GenericPlaceholder + { + } + public System.Type ManagedType { get => throw null; } + public System.Type MarshallerType { get => throw null; } + public System.Runtime.InteropServices.Marshalling.MarshalMode MarshalMode { get => throw null; } + } + public enum MarshalMode + { + Default = 0, + ManagedToUnmanagedIn = 1, + ManagedToUnmanagedRef = 2, + ManagedToUnmanagedOut = 3, + UnmanagedToManagedIn = 4, + UnmanagedToManagedRef = 5, + UnmanagedToManagedOut = 6, + ElementIn = 7, + ElementRef = 8, + ElementOut = 9, + } + public sealed class NativeMarshallingAttribute : System.Attribute + { + public NativeMarshallingAttribute(System.Type nativeType) => throw null; + public System.Type NativeType { get => throw null; } + } + public static class ReadOnlySpanMarshaller where TUnmanagedElement : unmanaged + { + public struct ManagedToUnmanagedIn + { + public static int BufferSize { get => throw null; } + public void Free() => throw null; + public void FromManaged(System.ReadOnlySpan managed, System.Span buffer) => throw null; + public System.ReadOnlySpan GetManagedValuesSource() => throw null; + public TUnmanagedElement GetPinnableReference() => throw null; + public static T GetPinnableReference(System.ReadOnlySpan managed) => throw null; + public System.Span GetUnmanagedValuesDestination() => throw null; + public unsafe TUnmanagedElement* ToUnmanaged() => throw null; + } + public static class UnmanagedToManagedOut + { + public static unsafe TUnmanagedElement* AllocateContainerForUnmanagedElements(System.ReadOnlySpan managed, out int numElements) => throw null; + public static System.ReadOnlySpan GetManagedValuesSource(System.ReadOnlySpan managed) => throw null; + public static unsafe System.Span GetUnmanagedValuesDestination(TUnmanagedElement* unmanaged, int numElements) => throw null; + } + } + public static class SpanMarshaller where TUnmanagedElement : unmanaged + { + public static unsafe System.Span AllocateContainerForManagedElements(TUnmanagedElement* unmanaged, int numElements) => throw null; + public static unsafe TUnmanagedElement* AllocateContainerForUnmanagedElements(System.Span managed, out int numElements) => throw null; + public static unsafe void Free(TUnmanagedElement* unmanaged) => throw null; + public static System.Span GetManagedValuesDestination(System.Span managed) => throw null; + public static System.ReadOnlySpan GetManagedValuesSource(System.Span managed) => throw null; + public static unsafe System.Span GetUnmanagedValuesDestination(TUnmanagedElement* unmanaged, int numElements) => throw null; + public static unsafe System.ReadOnlySpan GetUnmanagedValuesSource(TUnmanagedElement* unmanaged, int numElements) => throw null; + public struct ManagedToUnmanagedIn + { + public static int BufferSize { get => throw null; } + public void Free() => throw null; + public void FromManaged(System.Span managed, System.Span buffer) => throw null; + public System.ReadOnlySpan GetManagedValuesSource() => throw null; + public TUnmanagedElement GetPinnableReference() => throw null; + public static T GetPinnableReference(System.Span managed) => throw null; + public System.Span GetUnmanagedValuesDestination() => throw null; + public unsafe TUnmanagedElement* ToUnmanaged() => throw null; + } + } + } + public struct OSPlatform : System.IEquatable + { + public static System.Runtime.InteropServices.OSPlatform Create(string osPlatform) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.Runtime.InteropServices.OSPlatform other) => throw null; + public static System.Runtime.InteropServices.OSPlatform FreeBSD { get => throw null; } + public override int GetHashCode() => throw null; + public static System.Runtime.InteropServices.OSPlatform Linux { get => throw null; } + public static bool operator ==(System.Runtime.InteropServices.OSPlatform left, System.Runtime.InteropServices.OSPlatform right) => throw null; + public static bool operator !=(System.Runtime.InteropServices.OSPlatform left, System.Runtime.InteropServices.OSPlatform right) => throw null; + public static System.Runtime.InteropServices.OSPlatform OSX { get => throw null; } + public override string ToString() => throw null; + public static System.Runtime.InteropServices.OSPlatform Windows { get => throw null; } + } + public sealed class OutAttribute : System.Attribute + { + public OutAttribute() => throw null; + } + public static class RuntimeInformation + { + public static string FrameworkDescription { get => throw null; } + public static bool IsOSPlatform(System.Runtime.InteropServices.OSPlatform osPlatform) => throw null; + public static System.Runtime.InteropServices.Architecture OSArchitecture { get => throw null; } + public static string OSDescription { get => throw null; } + public static System.Runtime.InteropServices.Architecture ProcessArchitecture { get => throw null; } + public static string RuntimeIdentifier { get => throw null; } + } + public abstract class SafeBuffer : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid + { + public unsafe void AcquirePointer(ref byte* pointer) => throw null; + public ulong ByteLength { get => throw null; } + protected SafeBuffer(bool ownsHandle) : base(default(bool)) => throw null; + public void Initialize(uint numElements, uint sizeOfEachElement) => throw null; + public void Initialize(ulong numBytes) => throw null; + public void Initialize(uint numElements) where T : struct => throw null; + public T Read(ulong byteOffset) where T : struct => throw null; + public void ReadArray(ulong byteOffset, T[] array, int index, int count) where T : struct => throw null; + public void ReadSpan(ulong byteOffset, System.Span buffer) where T : struct => throw null; + public void ReleasePointer() => throw null; + public void Write(ulong byteOffset, T value) where T : struct => throw null; + public void WriteArray(ulong byteOffset, T[] array, int index, int count) where T : struct => throw null; + public void WriteSpan(ulong byteOffset, System.ReadOnlySpan data) where T : struct => throw null; + } + public abstract class SafeHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable + { + public void Close() => throw null; + protected SafeHandle(nint invalidHandleValue, bool ownsHandle) => throw null; + public void DangerousAddRef(ref bool success) => throw null; + public nint DangerousGetHandle() => throw null; + public void DangerousRelease() => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + protected nint handle; + public bool IsClosed { get => throw null; } + public abstract bool IsInvalid { get; } + protected abstract bool ReleaseHandle(); + protected void SetHandle(nint handle) => throw null; + public void SetHandleAsInvalid() => throw null; + } + public sealed class StructLayoutAttribute : System.Attribute + { + public System.Runtime.InteropServices.CharSet CharSet; + public StructLayoutAttribute(short layoutKind) => throw null; + public StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind layoutKind) => throw null; + public int Pack; + public int Size; + public System.Runtime.InteropServices.LayoutKind Value { get => throw null; } + } + public sealed class SuppressGCTransitionAttribute : System.Attribute + { + public SuppressGCTransitionAttribute() => throw null; + } + public enum UnmanagedType + { + Bool = 2, + I1 = 3, + U1 = 4, + I2 = 5, + U2 = 6, + I4 = 7, + U4 = 8, + I8 = 9, + U8 = 10, + R4 = 11, + R8 = 12, + Currency = 15, + BStr = 19, + LPStr = 20, + LPWStr = 21, + LPTStr = 22, + ByValTStr = 23, + IUnknown = 25, + IDispatch = 26, + Struct = 27, + Interface = 28, + SafeArray = 29, + ByValArray = 30, + SysInt = 31, + SysUInt = 32, + VBByRefStr = 34, + AnsiBStr = 35, + TBStr = 36, + VariantBool = 37, + FunctionPtr = 38, + AsAny = 40, + LPArray = 42, + LPStruct = 43, + CustomMarshaler = 44, + Error = 45, + IInspectable = 46, + HString = 47, + LPUTF8Str = 48, + } + } + public static class JitInfo + { + public static System.TimeSpan GetCompilationTime(bool currentThread = default(bool)) => throw null; + public static long GetCompiledILBytes(bool currentThread = default(bool)) => throw null; + public static long GetCompiledMethodCount(bool currentThread = default(bool)) => throw null; + } + public sealed class MemoryFailPoint : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable + { + public MemoryFailPoint(int sizeInMegabytes) => throw null; + public void Dispose() => throw null; + } + public static class ProfileOptimization + { + public static void SetProfileRoot(string directoryPath) => throw null; + public static void StartProfile(string profile) => throw null; + } + namespace Remoting + { + public class ObjectHandle : System.MarshalByRefObject + { + public ObjectHandle(object o) => throw null; + public object Unwrap() => throw null; + } + } + namespace Serialization + { + public interface IDeserializationCallback + { + void OnDeserialization(object sender); + } + public interface IFormatterConverter + { + object Convert(object value, System.Type type); + object Convert(object value, System.TypeCode typeCode); + bool ToBoolean(object value); + byte ToByte(object value); + char ToChar(object value); + System.DateTime ToDateTime(object value); + decimal ToDecimal(object value); + double ToDouble(object value); + short ToInt16(object value); + int ToInt32(object value); + long ToInt64(object value); + sbyte ToSByte(object value); + float ToSingle(object value); + string ToString(object value); + ushort ToUInt16(object value); + uint ToUInt32(object value); + ulong ToUInt64(object value); + } + public interface IObjectReference + { + object GetRealObject(System.Runtime.Serialization.StreamingContext context); + } + public interface ISafeSerializationData + { + void CompleteDeserialization(object deserialized); + } + public interface ISerializable + { + void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context); + } + public sealed class OnDeserializedAttribute : System.Attribute + { + public OnDeserializedAttribute() => throw null; + } + public sealed class OnDeserializingAttribute : System.Attribute + { + public OnDeserializingAttribute() => throw null; + } + public sealed class OnSerializedAttribute : System.Attribute + { + public OnSerializedAttribute() => throw null; + } + public sealed class OnSerializingAttribute : System.Attribute + { + public OnSerializingAttribute() => throw null; + } + public sealed class OptionalFieldAttribute : System.Attribute + { + public OptionalFieldAttribute() => throw null; + public int VersionAdded { get => throw null; set { } } + } + public sealed class SafeSerializationEventArgs : System.EventArgs + { + public void AddSerializedState(System.Runtime.Serialization.ISafeSerializationData serializedState) => throw null; + public System.Runtime.Serialization.StreamingContext StreamingContext { get => throw null; } + } + public struct SerializationEntry + { + public string Name { get => throw null; } + public System.Type ObjectType { get => throw null; } + public object Value { get => throw null; } + } + public class SerializationException : System.SystemException + { + public SerializationException() => throw null; + protected SerializationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public SerializationException(string message) => throw null; + public SerializationException(string message, System.Exception innerException) => throw null; + } + public sealed class SerializationInfo + { + public void AddValue(string name, bool value) => throw null; + public void AddValue(string name, byte value) => throw null; + public void AddValue(string name, char value) => throw null; + public void AddValue(string name, System.DateTime value) => throw null; + public void AddValue(string name, decimal value) => throw null; + public void AddValue(string name, double value) => throw null; + public void AddValue(string name, short value) => throw null; + public void AddValue(string name, int value) => throw null; + public void AddValue(string name, long value) => throw null; + public void AddValue(string name, object value) => throw null; + public void AddValue(string name, object value, System.Type type) => throw null; + public void AddValue(string name, sbyte value) => throw null; + public void AddValue(string name, float value) => throw null; + public void AddValue(string name, ushort value) => throw null; + public void AddValue(string name, uint value) => throw null; + public void AddValue(string name, ulong value) => throw null; + public string AssemblyName { get => throw null; set { } } + public SerializationInfo(System.Type type, System.Runtime.Serialization.IFormatterConverter converter) => throw null; + public SerializationInfo(System.Type type, System.Runtime.Serialization.IFormatterConverter converter, bool requireSameTokenInPartialTrust) => throw null; + public string FullTypeName { get => throw null; set { } } + public bool GetBoolean(string name) => throw null; + public byte GetByte(string name) => throw null; + public char GetChar(string name) => throw null; + public System.DateTime GetDateTime(string name) => throw null; + public decimal GetDecimal(string name) => throw null; + public double GetDouble(string name) => throw null; + public System.Runtime.Serialization.SerializationInfoEnumerator GetEnumerator() => throw null; + public short GetInt16(string name) => throw null; + public int GetInt32(string name) => throw null; + public long GetInt64(string name) => throw null; + public sbyte GetSByte(string name) => throw null; + public float GetSingle(string name) => throw null; + public string GetString(string name) => throw null; + public ushort GetUInt16(string name) => throw null; + public uint GetUInt32(string name) => throw null; + public ulong GetUInt64(string name) => throw null; + public object GetValue(string name, System.Type type) => throw null; + public bool IsAssemblyNameSetExplicit { get => throw null; } + public bool IsFullTypeNameSetExplicit { get => throw null; } + public int MemberCount { get => throw null; } + public System.Type ObjectType { get => throw null; } + public void SetType(System.Type type) => throw null; + } + public sealed class SerializationInfoEnumerator : System.Collections.IEnumerator + { + public System.Runtime.Serialization.SerializationEntry Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public bool MoveNext() => throw null; + public string Name { get => throw null; } + public System.Type ObjectType { get => throw null; } + public void Reset() => throw null; + public object Value { get => throw null; } + } + public struct StreamingContext + { + public object Context { get => throw null; } + public StreamingContext(System.Runtime.Serialization.StreamingContextStates state) => throw null; + public StreamingContext(System.Runtime.Serialization.StreamingContextStates state, object additional) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public System.Runtime.Serialization.StreamingContextStates State { get => throw null; } + } + [System.Flags] + public enum StreamingContextStates + { + CrossProcess = 1, + CrossMachine = 2, + File = 4, + Persistence = 8, + Remoting = 16, + Other = 32, + Clone = 64, + CrossAppDomain = 128, + All = 255, + } + } + public sealed class TargetedPatchingOptOutAttribute : System.Attribute + { + public TargetedPatchingOptOutAttribute(string reason) => throw null; + public string Reason { get => throw null; } + } + namespace Versioning + { + public sealed class ComponentGuaranteesAttribute : System.Attribute + { + public ComponentGuaranteesAttribute(System.Runtime.Versioning.ComponentGuaranteesOptions guarantees) => throw null; + public System.Runtime.Versioning.ComponentGuaranteesOptions Guarantees { get => throw null; } + } + [System.Flags] + public enum ComponentGuaranteesOptions + { + None = 0, + Exchange = 1, + Stable = 2, + SideBySide = 4, + } + public sealed class FrameworkName : System.IEquatable + { + public FrameworkName(string frameworkName) => throw null; + public FrameworkName(string identifier, System.Version version) => throw null; + public FrameworkName(string identifier, System.Version version, string profile) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.Runtime.Versioning.FrameworkName other) => throw null; + public string FullName { get => throw null; } + public override int GetHashCode() => throw null; + public string Identifier { get => throw null; } + public static bool operator ==(System.Runtime.Versioning.FrameworkName left, System.Runtime.Versioning.FrameworkName right) => throw null; + public static bool operator !=(System.Runtime.Versioning.FrameworkName left, System.Runtime.Versioning.FrameworkName right) => throw null; + public string Profile { get => throw null; } + public override string ToString() => throw null; + public System.Version Version { get => throw null; } + } + public sealed class ObsoletedOSPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute + { + public ObsoletedOSPlatformAttribute(string platformName) => throw null; + public ObsoletedOSPlatformAttribute(string platformName, string message) => throw null; + public string Message { get => throw null; } + public string Url { get => throw null; set { } } + } + public abstract class OSPlatformAttribute : System.Attribute + { + public string PlatformName { get => throw null; } + } + public sealed class RequiresPreviewFeaturesAttribute : System.Attribute + { + public RequiresPreviewFeaturesAttribute() => throw null; + public RequiresPreviewFeaturesAttribute(string message) => throw null; + public string Message { get => throw null; } + public string Url { get => throw null; set { } } + } + public sealed class ResourceConsumptionAttribute : System.Attribute + { + public System.Runtime.Versioning.ResourceScope ConsumptionScope { get => throw null; } + public ResourceConsumptionAttribute(System.Runtime.Versioning.ResourceScope resourceScope) => throw null; + public ResourceConsumptionAttribute(System.Runtime.Versioning.ResourceScope resourceScope, System.Runtime.Versioning.ResourceScope consumptionScope) => throw null; + public System.Runtime.Versioning.ResourceScope ResourceScope { get => throw null; } + } + public sealed class ResourceExposureAttribute : System.Attribute + { + public ResourceExposureAttribute(System.Runtime.Versioning.ResourceScope exposureLevel) => throw null; + public System.Runtime.Versioning.ResourceScope ResourceExposureLevel { get => throw null; } + } + [System.Flags] + public enum ResourceScope + { + None = 0, + Machine = 1, + Process = 2, + AppDomain = 4, + Library = 8, + Private = 16, + Assembly = 32, + } + public sealed class SupportedOSPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute + { + public SupportedOSPlatformAttribute(string platformName) => throw null; + } + public sealed class SupportedOSPlatformGuardAttribute : System.Runtime.Versioning.OSPlatformAttribute + { + public SupportedOSPlatformGuardAttribute(string platformName) => throw null; + } + public sealed class TargetFrameworkAttribute : System.Attribute + { + public TargetFrameworkAttribute(string frameworkName) => throw null; + public string FrameworkDisplayName { get => throw null; set { } } + public string FrameworkName { get => throw null; } + } + public sealed class TargetPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute + { + public TargetPlatformAttribute(string platformName) => throw null; + } + public sealed class UnsupportedOSPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute + { + public UnsupportedOSPlatformAttribute(string platformName) => throw null; + public UnsupportedOSPlatformAttribute(string platformName, string message) => throw null; + public string Message { get => throw null; } + } + public sealed class UnsupportedOSPlatformGuardAttribute : System.Runtime.Versioning.OSPlatformAttribute + { + public UnsupportedOSPlatformGuardAttribute(string platformName) => throw null; + } + public static class VersioningHelper + { + public static string MakeVersionSafeName(string name, System.Runtime.Versioning.ResourceScope from, System.Runtime.Versioning.ResourceScope to) => throw null; + public static string MakeVersionSafeName(string name, System.Runtime.Versioning.ResourceScope from, System.Runtime.Versioning.ResourceScope to, System.Type type) => throw null; + } + } + } public struct RuntimeArgumentHandle { - // Stub generator skipped constructor } - public struct RuntimeFieldHandle : System.IEquatable, System.Runtime.Serialization.ISerializable { - public static bool operator !=(System.RuntimeFieldHandle left, System.RuntimeFieldHandle right) => throw null; - public static bool operator ==(System.RuntimeFieldHandle left, System.RuntimeFieldHandle right) => throw null; - public bool Equals(System.RuntimeFieldHandle handle) => throw null; public override bool Equals(object obj) => throw null; - public static System.RuntimeFieldHandle FromIntPtr(System.IntPtr value) => throw null; + public bool Equals(System.RuntimeFieldHandle handle) => throw null; + public static System.RuntimeFieldHandle FromIntPtr(nint value) => throw null; public override int GetHashCode() => throw null; public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - // Stub generator skipped constructor - public static System.IntPtr ToIntPtr(System.RuntimeFieldHandle value) => throw null; - public System.IntPtr Value { get => throw null; } + public static bool operator ==(System.RuntimeFieldHandle left, System.RuntimeFieldHandle right) => throw null; + public static bool operator !=(System.RuntimeFieldHandle left, System.RuntimeFieldHandle right) => throw null; + public static nint ToIntPtr(System.RuntimeFieldHandle value) => throw null; + public nint Value { get => throw null; } } - public struct RuntimeMethodHandle : System.IEquatable, System.Runtime.Serialization.ISerializable { - public static bool operator !=(System.RuntimeMethodHandle left, System.RuntimeMethodHandle right) => throw null; - public static bool operator ==(System.RuntimeMethodHandle left, System.RuntimeMethodHandle right) => throw null; - public bool Equals(System.RuntimeMethodHandle handle) => throw null; public override bool Equals(object obj) => throw null; - public static System.RuntimeMethodHandle FromIntPtr(System.IntPtr value) => throw null; - public System.IntPtr GetFunctionPointer() => throw null; + public bool Equals(System.RuntimeMethodHandle handle) => throw null; + public static System.RuntimeMethodHandle FromIntPtr(nint value) => throw null; + public nint GetFunctionPointer() => throw null; public override int GetHashCode() => throw null; public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - // Stub generator skipped constructor - public static System.IntPtr ToIntPtr(System.RuntimeMethodHandle value) => throw null; - public System.IntPtr Value { get => throw null; } + public static bool operator ==(System.RuntimeMethodHandle left, System.RuntimeMethodHandle right) => throw null; + public static bool operator !=(System.RuntimeMethodHandle left, System.RuntimeMethodHandle right) => throw null; + public static nint ToIntPtr(System.RuntimeMethodHandle value) => throw null; + public nint Value { get => throw null; } } - public struct RuntimeTypeHandle : System.IEquatable, System.Runtime.Serialization.ISerializable { - public static bool operator !=(System.RuntimeTypeHandle left, object right) => throw null; - public static bool operator !=(object left, System.RuntimeTypeHandle right) => throw null; - public static bool operator ==(System.RuntimeTypeHandle left, object right) => throw null; - public static bool operator ==(object left, System.RuntimeTypeHandle right) => throw null; - public bool Equals(System.RuntimeTypeHandle handle) => throw null; public override bool Equals(object obj) => throw null; - public static System.RuntimeTypeHandle FromIntPtr(System.IntPtr value) => throw null; + public bool Equals(System.RuntimeTypeHandle handle) => throw null; + public static System.RuntimeTypeHandle FromIntPtr(nint value) => throw null; public override int GetHashCode() => throw null; public System.ModuleHandle GetModuleHandle() => throw null; public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - // Stub generator skipped constructor - public static System.IntPtr ToIntPtr(System.RuntimeTypeHandle value) => throw null; - public System.IntPtr Value { get => throw null; } + public static bool operator ==(object left, System.RuntimeTypeHandle right) => throw null; + public static bool operator ==(System.RuntimeTypeHandle left, object right) => throw null; + public static bool operator !=(object left, System.RuntimeTypeHandle right) => throw null; + public static bool operator !=(System.RuntimeTypeHandle left, object right) => throw null; + public static nint ToIntPtr(System.RuntimeTypeHandle value) => throw null; + public nint Value { get => throw null; } } - - public struct SByte : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators + public struct SByte : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IModulusOperators.operator %(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IBitwiseOperators.operator &(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IMultiplyOperators.operator *(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IUnaryPlusOperators.operator +(System.SByte value) => throw null; - static System.SByte System.Numerics.IAdditionOperators.operator +(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IIncrementOperators.operator ++(System.SByte value) => throw null; - static System.SByte System.Numerics.IUnaryNegationOperators.operator -(System.SByte value) => throw null; - static System.SByte System.Numerics.ISubtractionOperators.operator -(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IDecrementOperators.operator --(System.SByte value) => throw null; - static System.SByte System.Numerics.IDivisionOperators.operator /(System.SByte left, System.SByte right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IShiftOperators.operator <<(System.SByte value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.SByte left, System.SByte right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.SByte left, System.SByte right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.SByte left, System.SByte right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IShiftOperators.operator >>(System.SByte value, int shiftAmount) => throw null; - static System.SByte System.Numerics.IShiftOperators.operator >>>(System.SByte value, int shiftAmount) => throw null; - public static System.SByte Abs(System.SByte value) => throw null; - static System.SByte System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.SByte System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.SByte Clamp(System.SByte value, System.SByte min, System.SByte max) => throw null; + static sbyte System.Numerics.INumberBase.Abs(sbyte value) => throw null; + static sbyte System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static sbyte System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + static sbyte System.Numerics.INumber.Clamp(sbyte value, sbyte min, sbyte max) => throw null; public int CompareTo(object obj) => throw null; - public int CompareTo(System.SByte value) => throw null; - public static System.SByte CopySign(System.SByte value, System.SByte sign) => throw null; - static System.SByte System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.SByte System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.SByte System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.SByte, System.SByte) DivRem(System.SByte left, System.SByte right) => throw null; + public int CompareTo(sbyte value) => throw null; + static sbyte System.Numerics.INumber.CopySign(sbyte value, sbyte sign) => throw null; + static sbyte System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static sbyte System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static sbyte System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; + static (sbyte Quotient, sbyte Remainder) System.Numerics.IBinaryInteger.DivRem(sbyte left, sbyte right) => throw null; public override bool Equals(object obj) => throw null; - public bool Equals(System.SByte obj) => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + public bool Equals(sbyte obj) => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; - int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; + int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; public System.TypeCode GetTypeCode() => throw null; - public static bool IsCanonical(System.SByte value) => throw null; - public static bool IsComplexNumber(System.SByte value) => throw null; - public static bool IsEvenInteger(System.SByte value) => throw null; - public static bool IsFinite(System.SByte value) => throw null; - public static bool IsImaginaryNumber(System.SByte value) => throw null; - public static bool IsInfinity(System.SByte value) => throw null; - public static bool IsInteger(System.SByte value) => throw null; - public static bool IsNaN(System.SByte value) => throw null; - public static bool IsNegative(System.SByte value) => throw null; - public static bool IsNegativeInfinity(System.SByte value) => throw null; - public static bool IsNormal(System.SByte value) => throw null; - public static bool IsOddInteger(System.SByte value) => throw null; - public static bool IsPositive(System.SByte value) => throw null; - public static bool IsPositiveInfinity(System.SByte value) => throw null; - public static bool IsPow2(System.SByte value) => throw null; - public static bool IsRealNumber(System.SByte value) => throw null; - public static bool IsSubnormal(System.SByte value) => throw null; - public static bool IsZero(System.SByte value) => throw null; - public static System.SByte LeadingZeroCount(System.SByte value) => throw null; - public static System.SByte Log2(System.SByte value) => throw null; - public static System.SByte Max(System.SByte x, System.SByte y) => throw null; - public static System.SByte MaxMagnitude(System.SByte x, System.SByte y) => throw null; - public static System.SByte MaxMagnitudeNumber(System.SByte x, System.SByte y) => throw null; - public static System.SByte MaxNumber(System.SByte x, System.SByte y) => throw null; - public const System.SByte MaxValue = default; - static System.SByte System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.SByte Min(System.SByte x, System.SByte y) => throw null; - public static System.SByte MinMagnitude(System.SByte x, System.SByte y) => throw null; - public static System.SByte MinMagnitudeNumber(System.SByte x, System.SByte y) => throw null; - public static System.SByte MinNumber(System.SByte x, System.SByte y) => throw null; - public const System.SByte MinValue = default; - static System.SByte System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.SByte System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - static System.SByte System.Numerics.ISignedNumber.NegativeOne { get => throw null; } - static System.SByte System.Numerics.INumberBase.One { get => throw null; } - public static System.SByte Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.SByte Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.SByte Parse(string s) => throw null; - public static System.SByte Parse(string s, System.IFormatProvider provider) => throw null; - public static System.SByte Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.SByte Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.SByte PopCount(System.SByte value) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.SByte RotateLeft(System.SByte value, int rotateAmount) => throw null; - public static System.SByte RotateRight(System.SByte value, int rotateAmount) => throw null; - // Stub generator skipped constructor - public static int Sign(System.SByte value) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(sbyte value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(sbyte value) => throw null; + static bool System.Numerics.INumberBase.IsZero(sbyte value) => throw null; + static sbyte System.Numerics.IBinaryInteger.LeadingZeroCount(sbyte value) => throw null; + static sbyte System.Numerics.IBinaryNumber.Log2(sbyte value) => throw null; + static sbyte System.Numerics.INumber.Max(sbyte x, sbyte y) => throw null; + static sbyte System.Numerics.INumberBase.MaxMagnitude(sbyte x, sbyte y) => throw null; + static sbyte System.Numerics.INumberBase.MaxMagnitudeNumber(sbyte x, sbyte y) => throw null; + static sbyte System.Numerics.INumber.MaxNumber(sbyte x, sbyte y) => throw null; + public static sbyte MaxValue; + static sbyte System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static sbyte System.Numerics.INumber.Min(sbyte x, sbyte y) => throw null; + static sbyte System.Numerics.INumberBase.MinMagnitude(sbyte x, sbyte y) => throw null; + static sbyte System.Numerics.INumberBase.MinMagnitudeNumber(sbyte x, sbyte y) => throw null; + static sbyte System.Numerics.INumber.MinNumber(sbyte x, sbyte y) => throw null; + public static sbyte MinValue; + static sbyte System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static sbyte System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static sbyte System.Numerics.ISignedNumber.NegativeOne { get => throw null; } + static sbyte System.Numerics.INumberBase.One { get => throw null; } + static sbyte System.Numerics.IAdditionOperators.operator +(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IBitwiseOperators.operator &(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IBitwiseOperators.operator |(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IAdditionOperators.operator checked +(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IDecrementOperators.operator checked --(sbyte value) => throw null; + static sbyte System.Numerics.IIncrementOperators.operator checked ++(sbyte value) => throw null; + static sbyte System.Numerics.IMultiplyOperators.operator checked *(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.ISubtractionOperators.operator checked -(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IUnaryNegationOperators.operator checked -(sbyte value) => throw null; + static sbyte System.Numerics.IDecrementOperators.operator --(sbyte value) => throw null; + static sbyte System.Numerics.IDivisionOperators.operator /(sbyte left, sbyte right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IBitwiseOperators.operator ^(sbyte left, sbyte right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(sbyte left, sbyte right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IIncrementOperators.operator ++(sbyte value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IShiftOperators.operator <<(sbyte value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(sbyte left, sbyte right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IModulusOperators.operator %(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IMultiplyOperators.operator *(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IBitwiseOperators.operator ~(sbyte value) => throw null; + static sbyte System.Numerics.IShiftOperators.operator >>(sbyte value, int shiftAmount) => throw null; + static sbyte System.Numerics.ISubtractionOperators.operator -(sbyte left, sbyte right) => throw null; + static sbyte System.Numerics.IUnaryNegationOperators.operator -(sbyte value) => throw null; + static sbyte System.Numerics.IUnaryPlusOperators.operator +(sbyte value) => throw null; + static sbyte System.Numerics.IShiftOperators.operator >>>(sbyte value, int shiftAmount) => throw null; + static sbyte System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static sbyte System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static sbyte Parse(string s) => throw null; + public static sbyte Parse(string s, System.Globalization.NumberStyles style) => throw null; + static sbyte System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static sbyte System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static sbyte System.Numerics.IBinaryInteger.PopCount(sbyte value) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static sbyte System.Numerics.IBinaryInteger.RotateLeft(sbyte value, int rotateAmount) => throw null; + static sbyte System.Numerics.IBinaryInteger.RotateRight(sbyte value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(sbyte value) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.SByte TrailingZeroCount(System.SByte value) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.SByte result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.SByte result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.SByte result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.SByte value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.SByte value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.SByte value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.SByte result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.SByte result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.SByte result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.SByte result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.SByte result) => throw null; - public static bool TryParse(string s, out System.SByte result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.SByte value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.SByte value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - static System.SByte System.Numerics.INumberBase.Zero { get => throw null; } - static System.SByte System.Numerics.IBitwiseOperators.operator ^(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IMultiplyOperators.operator checked *(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IAdditionOperators.operator checked +(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IIncrementOperators.operator checked ++(System.SByte value) => throw null; - static System.SByte System.Numerics.IUnaryNegationOperators.operator checked -(System.SByte value) => throw null; - static System.SByte System.Numerics.ISubtractionOperators.operator checked -(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IDecrementOperators.operator checked --(System.SByte value) => throw null; - static System.SByte System.Numerics.IBitwiseOperators.operator |(System.SByte left, System.SByte right) => throw null; - static System.SByte System.Numerics.IBitwiseOperators.operator ~(System.SByte value) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + static sbyte System.Numerics.IBinaryInteger.TrailingZeroCount(sbyte value) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out sbyte result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out sbyte result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out sbyte result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(sbyte value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(sbyte value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(sbyte value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out sbyte result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out sbyte result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out sbyte result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out sbyte result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out sbyte result) => throw null; + public static bool TryParse(string s, out sbyte result) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out sbyte value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out sbyte value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static sbyte System.Numerics.INumberBase.Zero { get => throw null; } } - - public class STAThreadAttribute : System.Attribute + namespace Security { - public STAThreadAttribute() => throw null; + public sealed class AllowPartiallyTrustedCallersAttribute : System.Attribute + { + public AllowPartiallyTrustedCallersAttribute() => throw null; + public System.Security.PartialTrustVisibilityLevel PartialTrustVisibilityLevel { get => throw null; set { } } + } + namespace Cryptography + { + public class CryptographicException : System.SystemException + { + public CryptographicException() => throw null; + public CryptographicException(int hr) => throw null; + protected CryptographicException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public CryptographicException(string message) => throw null; + public CryptographicException(string message, System.Exception inner) => throw null; + public CryptographicException(string format, string insert) => throw null; + } + } + public interface IPermission : System.Security.ISecurityEncodable + { + System.Security.IPermission Copy(); + void Demand(); + System.Security.IPermission Intersect(System.Security.IPermission target); + bool IsSubsetOf(System.Security.IPermission target); + System.Security.IPermission Union(System.Security.IPermission target); + } + public interface ISecurityEncodable + { + void FromXml(System.Security.SecurityElement e); + System.Security.SecurityElement ToXml(); + } + public interface IStackWalk + { + void Assert(); + void Demand(); + void Deny(); + void PermitOnly(); + } + public enum PartialTrustVisibilityLevel + { + VisibleToAllHosts = 0, + NotVisibleByDefault = 1, + } + namespace Permissions + { + public abstract class CodeAccessSecurityAttribute : System.Security.Permissions.SecurityAttribute + { + protected CodeAccessSecurityAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; + } + public enum PermissionState + { + None = 0, + Unrestricted = 1, + } + public enum SecurityAction + { + Demand = 2, + Assert = 3, + Deny = 4, + PermitOnly = 5, + LinkDemand = 6, + InheritanceDemand = 7, + RequestMinimum = 8, + RequestOptional = 9, + RequestRefuse = 10, + } + public abstract class SecurityAttribute : System.Attribute + { + public System.Security.Permissions.SecurityAction Action { get => throw null; set { } } + public abstract System.Security.IPermission CreatePermission(); + protected SecurityAttribute(System.Security.Permissions.SecurityAction action) => throw null; + public bool Unrestricted { get => throw null; set { } } + } + public sealed class SecurityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute + { + public bool Assertion { get => throw null; set { } } + public bool BindingRedirects { get => throw null; set { } } + public bool ControlAppDomain { get => throw null; set { } } + public bool ControlDomainPolicy { get => throw null; set { } } + public bool ControlEvidence { get => throw null; set { } } + public bool ControlPolicy { get => throw null; set { } } + public bool ControlPrincipal { get => throw null; set { } } + public bool ControlThread { get => throw null; set { } } + public override System.Security.IPermission CreatePermission() => throw null; + public SecurityPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; + public bool Execution { get => throw null; set { } } + public System.Security.Permissions.SecurityPermissionFlag Flags { get => throw null; set { } } + public bool Infrastructure { get => throw null; set { } } + public bool RemotingConfiguration { get => throw null; set { } } + public bool SerializationFormatter { get => throw null; set { } } + public bool SkipVerification { get => throw null; set { } } + public bool UnmanagedCode { get => throw null; set { } } + } + [System.Flags] + public enum SecurityPermissionFlag + { + NoFlags = 0, + Assertion = 1, + UnmanagedCode = 2, + SkipVerification = 4, + Execution = 8, + ControlThread = 16, + ControlEvidence = 32, + ControlPolicy = 64, + SerializationFormatter = 128, + ControlDomainPolicy = 256, + ControlPrincipal = 512, + ControlAppDomain = 1024, + RemotingConfiguration = 2048, + Infrastructure = 4096, + BindingRedirects = 8192, + AllFlags = 16383, + } + } + public class PermissionSet : System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Security.ISecurityEncodable, System.Security.IStackWalk + { + public System.Security.IPermission AddPermission(System.Security.IPermission perm) => throw null; + protected virtual System.Security.IPermission AddPermissionImpl(System.Security.IPermission perm) => throw null; + public void Assert() => throw null; + public bool ContainsNonCodeAccessPermissions() => throw null; + public static byte[] ConvertPermissionSet(string inFormat, byte[] inData, string outFormat) => throw null; + public virtual System.Security.PermissionSet Copy() => throw null; + public virtual void CopyTo(System.Array array, int index) => throw null; + public virtual int Count { get => throw null; } + public PermissionSet(System.Security.Permissions.PermissionState state) => throw null; + public PermissionSet(System.Security.PermissionSet permSet) => throw null; + public void Demand() => throw null; + public void Deny() => throw null; + public override bool Equals(object o) => throw null; + public virtual void FromXml(System.Security.SecurityElement et) => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; + protected virtual System.Collections.IEnumerator GetEnumeratorImpl() => throw null; + public override int GetHashCode() => throw null; + public System.Security.IPermission GetPermission(System.Type permClass) => throw null; + protected virtual System.Security.IPermission GetPermissionImpl(System.Type permClass) => throw null; + public System.Security.PermissionSet Intersect(System.Security.PermissionSet other) => throw null; + public bool IsEmpty() => throw null; + public virtual bool IsReadOnly { get => throw null; } + public bool IsSubsetOf(System.Security.PermissionSet target) => throw null; + public virtual bool IsSynchronized { get => throw null; } + public bool IsUnrestricted() => throw null; + void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; + public void PermitOnly() => throw null; + public System.Security.IPermission RemovePermission(System.Type permClass) => throw null; + protected virtual System.Security.IPermission RemovePermissionImpl(System.Type permClass) => throw null; + public static void RevertAssert() => throw null; + public System.Security.IPermission SetPermission(System.Security.IPermission perm) => throw null; + protected virtual System.Security.IPermission SetPermissionImpl(System.Security.IPermission perm) => throw null; + public virtual object SyncRoot { get => throw null; } + public override string ToString() => throw null; + public virtual System.Security.SecurityElement ToXml() => throw null; + public System.Security.PermissionSet Union(System.Security.PermissionSet other) => throw null; + } + namespace Principal + { + public interface IIdentity + { + string AuthenticationType { get; } + bool IsAuthenticated { get; } + string Name { get; } + } + public interface IPrincipal + { + System.Security.Principal.IIdentity Identity { get; } + bool IsInRole(string role); + } + public enum PrincipalPolicy + { + UnauthenticatedPrincipal = 0, + NoPrincipal = 1, + WindowsPrincipal = 2, + } + public enum TokenImpersonationLevel + { + None = 0, + Anonymous = 1, + Identification = 2, + Impersonation = 3, + Delegation = 4, + } + } + public sealed class SecurityCriticalAttribute : System.Attribute + { + public SecurityCriticalAttribute() => throw null; + public SecurityCriticalAttribute(System.Security.SecurityCriticalScope scope) => throw null; + public System.Security.SecurityCriticalScope Scope { get => throw null; } + } + public enum SecurityCriticalScope + { + Explicit = 0, + Everything = 1, + } + public sealed class SecurityElement + { + public void AddAttribute(string name, string value) => throw null; + public void AddChild(System.Security.SecurityElement child) => throw null; + public string Attribute(string name) => throw null; + public System.Collections.Hashtable Attributes { get => throw null; set { } } + public System.Collections.ArrayList Children { get => throw null; set { } } + public System.Security.SecurityElement Copy() => throw null; + public SecurityElement(string tag) => throw null; + public SecurityElement(string tag, string text) => throw null; + public bool Equal(System.Security.SecurityElement other) => throw null; + public static string Escape(string str) => throw null; + public static System.Security.SecurityElement FromString(string xml) => throw null; + public static bool IsValidAttributeName(string name) => throw null; + public static bool IsValidAttributeValue(string value) => throw null; + public static bool IsValidTag(string tag) => throw null; + public static bool IsValidText(string text) => throw null; + public System.Security.SecurityElement SearchForChildByTag(string tag) => throw null; + public string SearchForTextOfTag(string tag) => throw null; + public string Tag { get => throw null; set { } } + public string Text { get => throw null; set { } } + public override string ToString() => throw null; + } + public class SecurityException : System.SystemException + { + public SecurityException() => throw null; + protected SecurityException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public SecurityException(string message) => throw null; + public SecurityException(string message, System.Exception inner) => throw null; + public SecurityException(string message, System.Type type) => throw null; + public SecurityException(string message, System.Type type, string state) => throw null; + public object Demanded { get => throw null; set { } } + public object DenySetInstance { get => throw null; set { } } + public System.Reflection.AssemblyName FailedAssemblyInfo { get => throw null; set { } } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string GrantedSet { get => throw null; set { } } + public System.Reflection.MethodInfo Method { get => throw null; set { } } + public string PermissionState { get => throw null; set { } } + public System.Type PermissionType { get => throw null; set { } } + public object PermitOnlySetInstance { get => throw null; set { } } + public string RefusedSet { get => throw null; set { } } + public override string ToString() => throw null; + public string Url { get => throw null; set { } } + } + public sealed class SecurityRulesAttribute : System.Attribute + { + public SecurityRulesAttribute(System.Security.SecurityRuleSet ruleSet) => throw null; + public System.Security.SecurityRuleSet RuleSet { get => throw null; } + public bool SkipVerificationInFullTrust { get => throw null; set { } } + } + public enum SecurityRuleSet : byte + { + None = 0, + Level1 = 1, + Level2 = 2, + } + public sealed class SecuritySafeCriticalAttribute : System.Attribute + { + public SecuritySafeCriticalAttribute() => throw null; + } + public sealed class SecurityTransparentAttribute : System.Attribute + { + public SecurityTransparentAttribute() => throw null; + } + public sealed class SecurityTreatAsSafeAttribute : System.Attribute + { + public SecurityTreatAsSafeAttribute() => throw null; + } + public sealed class SuppressUnmanagedCodeSecurityAttribute : System.Attribute + { + public SuppressUnmanagedCodeSecurityAttribute() => throw null; + } + public sealed class UnverifiableCodeAttribute : System.Attribute + { + public UnverifiableCodeAttribute() => throw null; + } + public class VerificationException : System.SystemException + { + public VerificationException() => throw null; + protected VerificationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public VerificationException(string message) => throw null; + public VerificationException(string message, System.Exception innerException) => throw null; + } } - - public class SerializableAttribute : System.Attribute + public sealed class SerializableAttribute : System.Attribute { public SerializableAttribute() => throw null; } - - public struct Single : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators + public struct Single : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPoint, System.Numerics.ISignedNumber, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions, System.Numerics.IMinMaxValue { - static bool System.Numerics.IEqualityOperators.operator !=(float left, float right) => throw null; - static float System.Numerics.IModulusOperators.operator %(float left, float right) => throw null; - static float System.Numerics.IBitwiseOperators.operator &(float left, float right) => throw null; - static float System.Numerics.IMultiplyOperators.operator *(float left, float right) => throw null; - static float System.Numerics.IUnaryPlusOperators.operator +(float value) => throw null; - static float System.Numerics.IAdditionOperators.operator +(float left, float right) => throw null; - static float System.Numerics.IIncrementOperators.operator ++(float value) => throw null; - static float System.Numerics.IUnaryNegationOperators.operator -(float value) => throw null; - static float System.Numerics.ISubtractionOperators.operator -(float left, float right) => throw null; - static float System.Numerics.IDecrementOperators.operator --(float value) => throw null; - static float System.Numerics.IDivisionOperators.operator /(float left, float right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(float left, float right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(float left, float right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(float left, float right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(float left, float right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(float left, float right) => throw null; - public static float Abs(float value) => throw null; - public static float Acos(float x) => throw null; - public static float AcosPi(float x) => throw null; - public static float Acosh(float x) => throw null; + static float System.Numerics.INumberBase.Abs(float value) => throw null; + static float System.Numerics.ITrigonometricFunctions.Acos(float x) => throw null; + static float System.Numerics.IHyperbolicFunctions.Acosh(float x) => throw null; + static float System.Numerics.ITrigonometricFunctions.AcosPi(float x) => throw null; static float System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } static float System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static float Asin(float x) => throw null; - public static float AsinPi(float x) => throw null; - public static float Asinh(float x) => throw null; - public static float Atan(float x) => throw null; - public static float Atan2(float y, float x) => throw null; - public static float Atan2Pi(float y, float x) => throw null; - public static float AtanPi(float x) => throw null; - public static float Atanh(float x) => throw null; - public static float BitDecrement(float x) => throw null; - public static float BitIncrement(float x) => throw null; - public static float Cbrt(float x) => throw null; - public static float Ceiling(float x) => throw null; - public static float Clamp(float value, float min, float max) => throw null; - public int CompareTo(float value) => throw null; + static float System.Numerics.ITrigonometricFunctions.Asin(float x) => throw null; + static float System.Numerics.IHyperbolicFunctions.Asinh(float x) => throw null; + static float System.Numerics.ITrigonometricFunctions.AsinPi(float x) => throw null; + static float System.Numerics.ITrigonometricFunctions.Atan(float x) => throw null; + static float System.Numerics.IFloatingPointIeee754.Atan2(float y, float x) => throw null; + static float System.Numerics.IFloatingPointIeee754.Atan2Pi(float y, float x) => throw null; + static float System.Numerics.IHyperbolicFunctions.Atanh(float x) => throw null; + static float System.Numerics.ITrigonometricFunctions.AtanPi(float x) => throw null; + static float System.Numerics.IFloatingPointIeee754.BitDecrement(float x) => throw null; + static float System.Numerics.IFloatingPointIeee754.BitIncrement(float x) => throw null; + static float System.Numerics.IRootFunctions.Cbrt(float x) => throw null; + static float System.Numerics.IFloatingPoint.Ceiling(float x) => throw null; + static float System.Numerics.INumber.Clamp(float value, float min, float max) => throw null; public int CompareTo(object value) => throw null; - public static float CopySign(float value, float sign) => throw null; - public static float Cos(float x) => throw null; - public static float CosPi(float x) => throw null; - public static float Cosh(float x) => throw null; + public int CompareTo(float value) => throw null; + static float System.Numerics.INumber.CopySign(float value, float sign) => throw null; + static float System.Numerics.ITrigonometricFunctions.Cos(float x) => throw null; + static float System.Numerics.IHyperbolicFunctions.Cosh(float x) => throw null; + static float System.Numerics.ITrigonometricFunctions.CosPi(float x) => throw null; static float System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; static float System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; static float System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public const float E = default; + public static float E; static float System.Numerics.IFloatingPointConstants.E { get => throw null; } - public const float Epsilon = default; + public static float Epsilon; static float System.Numerics.IFloatingPointIeee754.Epsilon { get => throw null; } - public bool Equals(float obj) => throw null; public override bool Equals(object obj) => throw null; - public static float Exp(float x) => throw null; - public static float Exp10(float x) => throw null; - public static float Exp10M1(float x) => throw null; - public static float Exp2(float x) => throw null; - public static float Exp2M1(float x) => throw null; - public static float ExpM1(float x) => throw null; - public static float Floor(float x) => throw null; - public static float FusedMultiplyAdd(float left, float right, float addend) => throw null; + public bool Equals(float obj) => throw null; + static float System.Numerics.IExponentialFunctions.Exp(float x) => throw null; + static float System.Numerics.IExponentialFunctions.Exp10(float x) => throw null; + static float System.Numerics.IExponentialFunctions.Exp10M1(float x) => throw null; + static float System.Numerics.IExponentialFunctions.Exp2(float x) => throw null; + static float System.Numerics.IExponentialFunctions.Exp2M1(float x) => throw null; + static float System.Numerics.IExponentialFunctions.ExpM1(float x) => throw null; + static float System.Numerics.IFloatingPoint.Floor(float x) => throw null; + static float System.Numerics.IFloatingPointIeee754.FusedMultiplyAdd(float left, float right, float addend) => throw null; int System.Numerics.IFloatingPoint.GetExponentByteCount() => throw null; int System.Numerics.IFloatingPoint.GetExponentShortestBitLength() => throw null; public override int GetHashCode() => throw null; int System.Numerics.IFloatingPoint.GetSignificandBitLength() => throw null; int System.Numerics.IFloatingPoint.GetSignificandByteCount() => throw null; public System.TypeCode GetTypeCode() => throw null; - public static float Hypot(float x, float y) => throw null; - public static int ILogB(float x) => throw null; - public static float Ieee754Remainder(float left, float right) => throw null; - public static bool IsCanonical(float value) => throw null; - public static bool IsComplexNumber(float value) => throw null; - public static bool IsEvenInteger(float value) => throw null; - public static bool IsFinite(float f) => throw null; - public static bool IsImaginaryNumber(float value) => throw null; - public static bool IsInfinity(float f) => throw null; - public static bool IsInteger(float value) => throw null; - public static bool IsNaN(float f) => throw null; - public static bool IsNegative(float f) => throw null; - public static bool IsNegativeInfinity(float f) => throw null; - public static bool IsNormal(float f) => throw null; - public static bool IsOddInteger(float value) => throw null; - public static bool IsPositive(float value) => throw null; - public static bool IsPositiveInfinity(float f) => throw null; - public static bool IsPow2(float value) => throw null; - public static bool IsRealNumber(float value) => throw null; - public static bool IsSubnormal(float f) => throw null; - public static bool IsZero(float value) => throw null; - public static float Log(float x) => throw null; - public static float Log(float x, float newBase) => throw null; - public static float Log10(float x) => throw null; - public static float Log10P1(float x) => throw null; - public static float Log2(float value) => throw null; - public static float Log2P1(float x) => throw null; - public static float LogP1(float x) => throw null; - public static float Max(float x, float y) => throw null; - public static float MaxMagnitude(float x, float y) => throw null; - public static float MaxMagnitudeNumber(float x, float y) => throw null; - public static float MaxNumber(float x, float y) => throw null; - public const float MaxValue = default; + static float System.Numerics.IRootFunctions.Hypot(float x, float y) => throw null; + static float System.Numerics.IFloatingPointIeee754.Ieee754Remainder(float left, float right) => throw null; + static int System.Numerics.IFloatingPointIeee754.ILogB(float x) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(float value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(float value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(float value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(float f) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(float value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(float f) => throw null; + static bool System.Numerics.INumberBase.IsInteger(float value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(float f) => throw null; + static bool System.Numerics.INumberBase.IsNegative(float f) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(float f) => throw null; + static bool System.Numerics.INumberBase.IsNormal(float f) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(float value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(float value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(float f) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(float value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(float value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(float f) => throw null; + static bool System.Numerics.INumberBase.IsZero(float value) => throw null; + static float System.Numerics.ILogarithmicFunctions.Log(float x) => throw null; + static float System.Numerics.ILogarithmicFunctions.Log(float x, float newBase) => throw null; + static float System.Numerics.ILogarithmicFunctions.Log10(float x) => throw null; + static float System.Numerics.ILogarithmicFunctions.Log10P1(float x) => throw null; + static float System.Numerics.IBinaryNumber.Log2(float value) => throw null; + static float System.Numerics.ILogarithmicFunctions.Log2(float value) => throw null; + static float System.Numerics.ILogarithmicFunctions.Log2P1(float x) => throw null; + static float System.Numerics.ILogarithmicFunctions.LogP1(float x) => throw null; + static float System.Numerics.INumber.Max(float x, float y) => throw null; + static float System.Numerics.INumberBase.MaxMagnitude(float x, float y) => throw null; + static float System.Numerics.INumberBase.MaxMagnitudeNumber(float x, float y) => throw null; + static float System.Numerics.INumber.MaxNumber(float x, float y) => throw null; + public static float MaxValue; static float System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static float Min(float x, float y) => throw null; - public static float MinMagnitude(float x, float y) => throw null; - public static float MinMagnitudeNumber(float x, float y) => throw null; - public static float MinNumber(float x, float y) => throw null; - public const float MinValue = default; + static float System.Numerics.INumber.Min(float x, float y) => throw null; + static float System.Numerics.INumberBase.MinMagnitude(float x, float y) => throw null; + static float System.Numerics.INumberBase.MinMagnitudeNumber(float x, float y) => throw null; + static float System.Numerics.INumber.MinNumber(float x, float y) => throw null; + public static float MinValue; static float System.Numerics.IMinMaxValue.MinValue { get => throw null; } static float System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - public const float NaN = default; + public static float NaN; static float System.Numerics.IFloatingPointIeee754.NaN { get => throw null; } - public const float NegativeInfinity = default; + public static float NegativeInfinity; static float System.Numerics.IFloatingPointIeee754.NegativeInfinity { get => throw null; } static float System.Numerics.ISignedNumber.NegativeOne { get => throw null; } - public const float NegativeZero = default; + public static float NegativeZero; static float System.Numerics.IFloatingPointIeee754.NegativeZero { get => throw null; } static float System.Numerics.INumberBase.One { get => throw null; } - public static float Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static float Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static float System.Numerics.IAdditionOperators.operator +(float left, float right) => throw null; + static float System.Numerics.IBitwiseOperators.operator &(float left, float right) => throw null; + static float System.Numerics.IBitwiseOperators.operator |(float left, float right) => throw null; + static float System.Numerics.IDecrementOperators.operator --(float value) => throw null; + static float System.Numerics.IDivisionOperators.operator /(float left, float right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(float left, float right) => throw null; + static float System.Numerics.IBitwiseOperators.operator ^(float left, float right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(float left, float right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(float left, float right) => throw null; + static float System.Numerics.IIncrementOperators.operator ++(float value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(float left, float right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(float left, float right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(float left, float right) => throw null; + static float System.Numerics.IModulusOperators.operator %(float left, float right) => throw null; + static float System.Numerics.IMultiplyOperators.operator *(float left, float right) => throw null; + static float System.Numerics.IBitwiseOperators.operator ~(float value) => throw null; + static float System.Numerics.ISubtractionOperators.operator -(float left, float right) => throw null; + static float System.Numerics.IUnaryNegationOperators.operator -(float value) => throw null; + static float System.Numerics.IUnaryPlusOperators.operator +(float value) => throw null; + static float System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static float System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; public static float Parse(string s) => throw null; - public static float Parse(string s, System.IFormatProvider provider) => throw null; public static float Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static float Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public const float Pi = default; + static float System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static float System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + public static float Pi; static float System.Numerics.IFloatingPointConstants.Pi { get => throw null; } - public const float PositiveInfinity = default; + public static float PositiveInfinity; static float System.Numerics.IFloatingPointIeee754.PositiveInfinity { get => throw null; } - public static float Pow(float x, float y) => throw null; + static float System.Numerics.IPowerFunctions.Pow(float x, float y) => throw null; static int System.Numerics.INumberBase.Radix { get => throw null; } - public static float ReciprocalEstimate(float x) => throw null; - public static float ReciprocalSqrtEstimate(float x) => throw null; - public static float RootN(float x, int n) => throw null; - public static float Round(float x) => throw null; - public static float Round(float x, System.MidpointRounding mode) => throw null; - public static float Round(float x, int digits) => throw null; - public static float Round(float x, int digits, System.MidpointRounding mode) => throw null; - public static float ScaleB(float x, int n) => throw null; - public static int Sign(float value) => throw null; - public static float Sin(float x) => throw null; - public static (float, float) SinCos(float x) => throw null; - public static (float, float) SinCosPi(float x) => throw null; - public static float SinPi(float x) => throw null; - // Stub generator skipped constructor - public static float Sinh(float x) => throw null; - public static float Sqrt(float x) => throw null; - public static float Tan(float x) => throw null; - public static float TanPi(float x) => throw null; - public static float Tanh(float x) => throw null; - public const float Tau = default; + static float System.Numerics.IFloatingPointIeee754.ReciprocalEstimate(float x) => throw null; + static float System.Numerics.IFloatingPointIeee754.ReciprocalSqrtEstimate(float x) => throw null; + static float System.Numerics.IRootFunctions.RootN(float x, int n) => throw null; + static float System.Numerics.IFloatingPoint.Round(float x) => throw null; + static float System.Numerics.IFloatingPoint.Round(float x, int digits) => throw null; + static float System.Numerics.IFloatingPoint.Round(float x, int digits, System.MidpointRounding mode) => throw null; + static float System.Numerics.IFloatingPoint.Round(float x, System.MidpointRounding mode) => throw null; + static float System.Numerics.IFloatingPointIeee754.ScaleB(float x, int n) => throw null; + static int System.Numerics.INumber.Sign(float value) => throw null; + static float System.Numerics.ITrigonometricFunctions.Sin(float x) => throw null; + static (float Sin, float Cos) System.Numerics.ITrigonometricFunctions.SinCos(float x) => throw null; + static (float SinPi, float CosPi) System.Numerics.ITrigonometricFunctions.SinCosPi(float x) => throw null; + static float System.Numerics.IHyperbolicFunctions.Sinh(float x) => throw null; + static float System.Numerics.ITrigonometricFunctions.SinPi(float x) => throw null; + static float System.Numerics.IRootFunctions.Sqrt(float x) => throw null; + static float System.Numerics.ITrigonometricFunctions.Tan(float x) => throw null; + static float System.Numerics.IHyperbolicFunctions.Tanh(float x) => throw null; + static float System.Numerics.ITrigonometricFunctions.TanPi(float x) => throw null; + public static float Tau; static float System.Numerics.IFloatingPointConstants.Tau { get => throw null; } bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static float Truncate(float x) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + static float System.Numerics.IFloatingPoint.Truncate(float x) => throw null; static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out float result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out float result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out float result) => throw null; static bool System.Numerics.INumberBase.TryConvertToChecked(float value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToSaturating(float value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToTruncating(float value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out float result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out float result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out float result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out float result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out float result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out float result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out float result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out float result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out float result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out float result) => throw null; public static bool TryParse(string s, out float result) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteExponentBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteExponentBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; static float System.Numerics.INumberBase.Zero { get => throw null; } - static float System.Numerics.IBitwiseOperators.operator ^(float left, float right) => throw null; - static float System.Numerics.IBitwiseOperators.operator |(float left, float right) => throw null; - static float System.Numerics.IBitwiseOperators.operator ~(float value) => throw null; } - public struct Span { + public void Clear() => throw null; + public void CopyTo(System.Span destination) => throw null; + public unsafe Span(void* pointer, int length) => throw null; + public Span(T[] array) => throw null; + public Span(T[] array, int start, int length) => throw null; + public Span(ref T reference) => throw null; + public static System.Span Empty { get => throw null; } public struct Enumerator { public T Current { get => throw null; } - // Stub generator skipped constructor public bool MoveNext() => throw null; } - - - public static bool operator !=(System.Span left, System.Span right) => throw null; - public static bool operator ==(System.Span left, System.Span right) => throw null; - public void Clear() => throw null; - public void CopyTo(System.Span destination) => throw null; - public static System.Span Empty { get => throw null; } public override bool Equals(object obj) => throw null; public void Fill(T value) => throw null; public System.Span.Enumerator GetEnumerator() => throw null; public override int GetHashCode() => throw null; public T GetPinnableReference() => throw null; public bool IsEmpty { get => throw null; } - public T this[int index] { get => throw null; } public int Length { get => throw null; } - public System.Span Slice(int start) => throw null; - public System.Span Slice(int start, int length) => throw null; - // Stub generator skipped constructor - public Span(T[] array) => throw null; - public Span(T[] array, int start, int length) => throw null; - unsafe public Span(void* pointer, int length) => throw null; - public Span(ref T reference) => throw null; - public T[] ToArray() => throw null; - public override string ToString() => throw null; - public bool TryCopyTo(System.Span destination) => throw null; + public static bool operator ==(System.Span left, System.Span right) => throw null; public static implicit operator System.Span(System.ArraySegment segment) => throw null; public static implicit operator System.ReadOnlySpan(System.Span span) => throw null; public static implicit operator System.Span(T[] array) => throw null; + public static bool operator !=(System.Span left, System.Span right) => throw null; + public System.Span Slice(int start) => throw null; + public System.Span Slice(int start, int length) => throw null; + public T this[int index] { get => throw null; } + public T[] ToArray() => throw null; + public override string ToString() => throw null; + public bool TryCopyTo(System.Span destination) => throw null; } - - public class StackOverflowException : System.SystemException + public sealed class StackOverflowException : System.SystemException { public StackOverflowException() => throw null; public StackOverflowException(string message) => throw null; public StackOverflowException(string message, System.Exception innerException) => throw null; } - - public class String : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.ICloneable, System.IComparable, System.IComparable, System.IConvertible, System.IEquatable + public sealed class STAThreadAttribute : System.Attribute + { + public STAThreadAttribute() => throw null; + } + public sealed class String : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.ICloneable, System.IComparable, System.IComparable, System.IConvertible, System.IEquatable { - public static bool operator !=(string a, string b) => throw null; - public static bool operator ==(string a, string b) => throw null; - [System.Runtime.CompilerServices.IndexerName("Chars")] - public System.Char this[int index] { get => throw null; } public object Clone() => throw null; public static int Compare(string strA, int indexA, string strB, int indexB, int length) => throw null; - public static int Compare(string strA, int indexA, string strB, int indexB, int length, System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) => throw null; - public static int Compare(string strA, int indexA, string strB, int indexB, int length, System.StringComparison comparisonType) => throw null; public static int Compare(string strA, int indexA, string strB, int indexB, int length, bool ignoreCase) => throw null; public static int Compare(string strA, int indexA, string strB, int indexB, int length, bool ignoreCase, System.Globalization.CultureInfo culture) => throw null; + public static int Compare(string strA, int indexA, string strB, int indexB, int length, System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) => throw null; + public static int Compare(string strA, int indexA, string strB, int indexB, int length, System.StringComparison comparisonType) => throw null; public static int Compare(string strA, string strB) => throw null; - public static int Compare(string strA, string strB, System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) => throw null; - public static int Compare(string strA, string strB, System.StringComparison comparisonType) => throw null; public static int Compare(string strA, string strB, bool ignoreCase) => throw null; public static int Compare(string strA, string strB, bool ignoreCase, System.Globalization.CultureInfo culture) => throw null; + public static int Compare(string strA, string strB, System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) => throw null; + public static int Compare(string strA, string strB, System.StringComparison comparisonType) => throw null; public static int CompareOrdinal(string strA, int indexA, string strB, int indexB, int length) => throw null; public static int CompareOrdinal(string strA, string strB) => throw null; public int CompareTo(object value) => throw null; public int CompareTo(string strB) => throw null; public static string Concat(System.Collections.Generic.IEnumerable values) => throw null; - public static string Concat(System.ReadOnlySpan str0, System.ReadOnlySpan str1) => throw null; - public static string Concat(System.ReadOnlySpan str0, System.ReadOnlySpan str1, System.ReadOnlySpan str2) => throw null; - public static string Concat(System.ReadOnlySpan str0, System.ReadOnlySpan str1, System.ReadOnlySpan str2, System.ReadOnlySpan str3) => throw null; public static string Concat(object arg0) => throw null; public static string Concat(object arg0, object arg1) => throw null; public static string Concat(object arg0, object arg1, object arg2) => throw null; public static string Concat(params object[] args) => throw null; - public static string Concat(params string[] values) => throw null; + public static string Concat(System.ReadOnlySpan str0, System.ReadOnlySpan str1) => throw null; + public static string Concat(System.ReadOnlySpan str0, System.ReadOnlySpan str1, System.ReadOnlySpan str2) => throw null; + public static string Concat(System.ReadOnlySpan str0, System.ReadOnlySpan str1, System.ReadOnlySpan str2, System.ReadOnlySpan str3) => throw null; public static string Concat(string str0, string str1) => throw null; public static string Concat(string str0, string str1, string str2) => throw null; public static string Concat(string str0, string str1, string str2, string str3) => throw null; + public static string Concat(params string[] values) => throw null; public static string Concat(System.Collections.Generic.IEnumerable values) => throw null; - public bool Contains(System.Char value) => throw null; - public bool Contains(System.Char value, System.StringComparison comparisonType) => throw null; + public bool Contains(char value) => throw null; + public bool Contains(char value, System.StringComparison comparisonType) => throw null; public bool Contains(string value) => throw null; public bool Contains(string value, System.StringComparison comparisonType) => throw null; public static string Copy(string str) => throw null; - public void CopyTo(System.Span destination) => throw null; - public void CopyTo(int sourceIndex, System.Char[] destination, int destinationIndex, int count) => throw null; - public static string Create(System.IFormatProvider provider, System.Span initialBuffer, ref System.Runtime.CompilerServices.DefaultInterpolatedStringHandler handler) => throw null; + public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count) => throw null; + public void CopyTo(System.Span destination) => throw null; public static string Create(System.IFormatProvider provider, ref System.Runtime.CompilerServices.DefaultInterpolatedStringHandler handler) => throw null; - public static string Create(int length, TState state, System.Buffers.SpanAction action) => throw null; + public static string Create(System.IFormatProvider provider, System.Span initialBuffer, ref System.Runtime.CompilerServices.DefaultInterpolatedStringHandler handler) => throw null; + public static string Create(int length, TState state, System.Buffers.SpanAction action) => throw null; + public unsafe String(char* value) => throw null; + public unsafe String(char* value, int startIndex, int length) => throw null; + public String(char c, int count) => throw null; + public String(char[] value) => throw null; + public String(char[] value, int startIndex, int length) => throw null; + public String(System.ReadOnlySpan value) => throw null; + public unsafe String(sbyte* value) => throw null; + public unsafe String(sbyte* value, int startIndex, int length) => throw null; + public unsafe String(sbyte* value, int startIndex, int length, System.Text.Encoding enc) => throw null; public static string Empty; - public bool EndsWith(System.Char value) => throw null; + public bool EndsWith(char value) => throw null; public bool EndsWith(string value) => throw null; - public bool EndsWith(string value, System.StringComparison comparisonType) => throw null; public bool EndsWith(string value, bool ignoreCase, System.Globalization.CultureInfo culture) => throw null; + public bool EndsWith(string value, System.StringComparison comparisonType) => throw null; public System.Text.StringRuneEnumerator EnumerateRunes() => throw null; public override bool Equals(object obj) => throw null; public bool Equals(string value) => throw null; - public bool Equals(string value, System.StringComparison comparisonType) => throw null; public static bool Equals(string a, string b) => throw null; public static bool Equals(string a, string b, System.StringComparison comparisonType) => throw null; + public bool Equals(string value, System.StringComparison comparisonType) => throw null; public static string Format(System.IFormatProvider provider, string format, object arg0) => throw null; public static string Format(System.IFormatProvider provider, string format, object arg0, object arg1) => throw null; public static string Format(System.IFormatProvider provider, string format, object arg0, object arg1, object arg2) => throw null; @@ -4899,27 +10748,27 @@ namespace System public static string Format(string format, object arg0, object arg1, object arg2) => throw null; public static string Format(string format, params object[] args) => throw null; public System.CharEnumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public override int GetHashCode() => throw null; - public static int GetHashCode(System.ReadOnlySpan value) => throw null; - public static int GetHashCode(System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; + public static int GetHashCode(System.ReadOnlySpan value) => throw null; + public static int GetHashCode(System.ReadOnlySpan value, System.StringComparison comparisonType) => throw null; public int GetHashCode(System.StringComparison comparisonType) => throw null; - public System.Char GetPinnableReference() => throw null; + public char GetPinnableReference() => throw null; public System.TypeCode GetTypeCode() => throw null; - public int IndexOf(System.Char value) => throw null; - public int IndexOf(System.Char value, System.StringComparison comparisonType) => throw null; - public int IndexOf(System.Char value, int startIndex) => throw null; - public int IndexOf(System.Char value, int startIndex, int count) => throw null; + public int IndexOf(char value) => throw null; + public int IndexOf(char value, int startIndex) => throw null; + public int IndexOf(char value, int startIndex, int count) => throw null; + public int IndexOf(char value, System.StringComparison comparisonType) => throw null; public int IndexOf(string value) => throw null; - public int IndexOf(string value, System.StringComparison comparisonType) => throw null; public int IndexOf(string value, int startIndex) => throw null; - public int IndexOf(string value, int startIndex, System.StringComparison comparisonType) => throw null; public int IndexOf(string value, int startIndex, int count) => throw null; public int IndexOf(string value, int startIndex, int count, System.StringComparison comparisonType) => throw null; - public int IndexOfAny(System.Char[] anyOf) => throw null; - public int IndexOfAny(System.Char[] anyOf, int startIndex) => throw null; - public int IndexOfAny(System.Char[] anyOf, int startIndex, int count) => throw null; + public int IndexOf(string value, int startIndex, System.StringComparison comparisonType) => throw null; + public int IndexOf(string value, System.StringComparison comparisonType) => throw null; + public int IndexOfAny(char[] anyOf) => throw null; + public int IndexOfAny(char[] anyOf, int startIndex) => throw null; + public int IndexOfAny(char[] anyOf, int startIndex, int count) => throw null; public string Insert(int startIndex, string value) => throw null; public static string Intern(string str) => throw null; public static string IsInterned(string str) => throw null; @@ -4927,111 +10776,106 @@ namespace System public bool IsNormalized(System.Text.NormalizationForm normalizationForm) => throw null; public static bool IsNullOrEmpty(string value) => throw null; public static bool IsNullOrWhiteSpace(string value) => throw null; - public static string Join(System.Char separator, string[] value, int startIndex, int count) => throw null; - public static string Join(System.Char separator, params object[] values) => throw null; - public static string Join(System.Char separator, params string[] value) => throw null; + public static string Join(char separator, params object[] values) => throw null; + public static string Join(char separator, params string[] value) => throw null; + public static string Join(char separator, string[] value, int startIndex, int count) => throw null; public static string Join(string separator, System.Collections.Generic.IEnumerable values) => throw null; - public static string Join(string separator, string[] value, int startIndex, int count) => throw null; public static string Join(string separator, params object[] values) => throw null; public static string Join(string separator, params string[] value) => throw null; - public static string Join(System.Char separator, System.Collections.Generic.IEnumerable values) => throw null; + public static string Join(string separator, string[] value, int startIndex, int count) => throw null; + public static string Join(char separator, System.Collections.Generic.IEnumerable values) => throw null; public static string Join(string separator, System.Collections.Generic.IEnumerable values) => throw null; - public int LastIndexOf(System.Char value) => throw null; - public int LastIndexOf(System.Char value, int startIndex) => throw null; - public int LastIndexOf(System.Char value, int startIndex, int count) => throw null; + public int LastIndexOf(char value) => throw null; + public int LastIndexOf(char value, int startIndex) => throw null; + public int LastIndexOf(char value, int startIndex, int count) => throw null; public int LastIndexOf(string value) => throw null; - public int LastIndexOf(string value, System.StringComparison comparisonType) => throw null; public int LastIndexOf(string value, int startIndex) => throw null; - public int LastIndexOf(string value, int startIndex, System.StringComparison comparisonType) => throw null; public int LastIndexOf(string value, int startIndex, int count) => throw null; public int LastIndexOf(string value, int startIndex, int count, System.StringComparison comparisonType) => throw null; - public int LastIndexOfAny(System.Char[] anyOf) => throw null; - public int LastIndexOfAny(System.Char[] anyOf, int startIndex) => throw null; - public int LastIndexOfAny(System.Char[] anyOf, int startIndex, int count) => throw null; + public int LastIndexOf(string value, int startIndex, System.StringComparison comparisonType) => throw null; + public int LastIndexOf(string value, System.StringComparison comparisonType) => throw null; + public int LastIndexOfAny(char[] anyOf) => throw null; + public int LastIndexOfAny(char[] anyOf, int startIndex) => throw null; + public int LastIndexOfAny(char[] anyOf, int startIndex, int count) => throw null; public int Length { get => throw null; } public string Normalize() => throw null; public string Normalize(System.Text.NormalizationForm normalizationForm) => throw null; + public static bool operator ==(string a, string b) => throw null; + public static implicit operator System.ReadOnlySpan(string value) => throw null; + public static bool operator !=(string a, string b) => throw null; public string PadLeft(int totalWidth) => throw null; - public string PadLeft(int totalWidth, System.Char paddingChar) => throw null; + public string PadLeft(int totalWidth, char paddingChar) => throw null; public string PadRight(int totalWidth) => throw null; - public string PadRight(int totalWidth, System.Char paddingChar) => throw null; + public string PadRight(int totalWidth, char paddingChar) => throw null; public string Remove(int startIndex) => throw null; public string Remove(int startIndex, int count) => throw null; - public string Replace(System.Char oldChar, System.Char newChar) => throw null; + public string Replace(char oldChar, char newChar) => throw null; public string Replace(string oldValue, string newValue) => throw null; - public string Replace(string oldValue, string newValue, System.StringComparison comparisonType) => throw null; public string Replace(string oldValue, string newValue, bool ignoreCase, System.Globalization.CultureInfo culture) => throw null; + public string Replace(string oldValue, string newValue, System.StringComparison comparisonType) => throw null; public string ReplaceLineEndings() => throw null; public string ReplaceLineEndings(string replacementText) => throw null; - public string[] Split(System.Char[] separator, System.StringSplitOptions options) => throw null; - public string[] Split(System.Char[] separator, int count) => throw null; - public string[] Split(System.Char[] separator, int count, System.StringSplitOptions options) => throw null; - public string[] Split(string[] separator, System.StringSplitOptions options) => throw null; - public string[] Split(string[] separator, int count, System.StringSplitOptions options) => throw null; - public string[] Split(System.Char separator, System.StringSplitOptions options = default(System.StringSplitOptions)) => throw null; - public string[] Split(System.Char separator, int count, System.StringSplitOptions options = default(System.StringSplitOptions)) => throw null; - public string[] Split(params System.Char[] separator) => throw null; - public string[] Split(string separator, System.StringSplitOptions options = default(System.StringSplitOptions)) => throw null; + public string[] Split(char separator, int count, System.StringSplitOptions options = default(System.StringSplitOptions)) => throw null; + public string[] Split(char separator, System.StringSplitOptions options = default(System.StringSplitOptions)) => throw null; + public string[] Split(params char[] separator) => throw null; + public string[] Split(char[] separator, int count) => throw null; + public string[] Split(char[] separator, int count, System.StringSplitOptions options) => throw null; + public string[] Split(char[] separator, System.StringSplitOptions options) => throw null; public string[] Split(string separator, int count, System.StringSplitOptions options = default(System.StringSplitOptions)) => throw null; - public bool StartsWith(System.Char value) => throw null; + public string[] Split(string separator, System.StringSplitOptions options = default(System.StringSplitOptions)) => throw null; + public string[] Split(string[] separator, int count, System.StringSplitOptions options) => throw null; + public string[] Split(string[] separator, System.StringSplitOptions options) => throw null; + public bool StartsWith(char value) => throw null; public bool StartsWith(string value) => throw null; - public bool StartsWith(string value, System.StringComparison comparisonType) => throw null; public bool StartsWith(string value, bool ignoreCase, System.Globalization.CultureInfo culture) => throw null; - public String(System.Char[] value) => throw null; - public String(System.Char[] value, int startIndex, int length) => throw null; - public String(System.ReadOnlySpan value) => throw null; - unsafe public String(System.Char* value) => throw null; - unsafe public String(System.Char* value, int startIndex, int length) => throw null; - public String(System.Char c, int count) => throw null; - unsafe public String(System.SByte* value) => throw null; - unsafe public String(System.SByte* value, int startIndex, int length) => throw null; - unsafe public String(System.SByte* value, int startIndex, int length, System.Text.Encoding enc) => throw null; + public bool StartsWith(string value, System.StringComparison comparisonType) => throw null; public string Substring(int startIndex) => throw null; public string Substring(int startIndex, int length) => throw null; + [System.Runtime.CompilerServices.IndexerName("Chars")] + public char this[int index] { get => throw null; } bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; - public System.Char[] ToCharArray() => throw null; - public System.Char[] ToCharArray(int startIndex, int length) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + public char[] ToCharArray() => throw null; + public char[] ToCharArray(int startIndex, int length) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; public string ToLower() => throw null; public string ToLower(System.Globalization.CultureInfo culture) => throw null; public string ToLowerInvariant() => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; public string ToUpper() => throw null; public string ToUpper(System.Globalization.CultureInfo culture) => throw null; public string ToUpperInvariant() => throw null; public string Trim() => throw null; - public string Trim(System.Char trimChar) => throw null; - public string Trim(params System.Char[] trimChars) => throw null; + public string Trim(char trimChar) => throw null; + public string Trim(params char[] trimChars) => throw null; public string TrimEnd() => throw null; - public string TrimEnd(System.Char trimChar) => throw null; - public string TrimEnd(params System.Char[] trimChars) => throw null; + public string TrimEnd(char trimChar) => throw null; + public string TrimEnd(params char[] trimChars) => throw null; public string TrimStart() => throw null; - public string TrimStart(System.Char trimChar) => throw null; - public string TrimStart(params System.Char[] trimChars) => throw null; - public bool TryCopyTo(System.Span destination) => throw null; - public static implicit operator System.ReadOnlySpan(string value) => throw null; + public string TrimStart(char trimChar) => throw null; + public string TrimStart(params char[] trimChars) => throw null; + public bool TryCopyTo(System.Span destination) => throw null; } - public abstract class StringComparer : System.Collections.Generic.IComparer, System.Collections.Generic.IEqualityComparer, System.Collections.IComparer, System.Collections.IEqualityComparer { public int Compare(object x, object y) => throw null; public abstract int Compare(string x, string y); - public static System.StringComparer Create(System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) => throw null; public static System.StringComparer Create(System.Globalization.CultureInfo culture, bool ignoreCase) => throw null; + public static System.StringComparer Create(System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) => throw null; + protected StringComparer() => throw null; public static System.StringComparer CurrentCulture { get => throw null; } public static System.StringComparer CurrentCultureIgnoreCase { get => throw null; } public bool Equals(object x, object y) => throw null; @@ -5045,10 +10889,8 @@ namespace System public static bool IsWellKnownOrdinalComparer(System.Collections.Generic.IEqualityComparer comparer, out bool ignoreCase) => throw null; public static System.StringComparer Ordinal { get => throw null; } public static System.StringComparer OrdinalIgnoreCase { get => throw null; } - protected StringComparer() => throw null; } - - public enum StringComparison : int + public enum StringComparison { CurrentCulture = 0, CurrentCultureIgnoreCase = 1, @@ -5057,23 +10899,20 @@ namespace System Ordinal = 4, OrdinalIgnoreCase = 5, } - - public static class StringNormalizationExtensions + public static partial class StringNormalizationExtensions { public static bool IsNormalized(this string strInput) => throw null; public static bool IsNormalized(this string strInput, System.Text.NormalizationForm normalizationForm) => throw null; public static string Normalize(this string strInput) => throw null; public static string Normalize(this string strInput, System.Text.NormalizationForm normalizationForm) => throw null; } - [System.Flags] - public enum StringSplitOptions : int + public enum StringSplitOptions { None = 0, RemoveEmptyEntries = 1, TrimEntries = 2, } - public class SystemException : System.Exception { public SystemException() => throw null; @@ -5081,31 +10920,1105 @@ namespace System public SystemException(string message) => throw null; public SystemException(string message, System.Exception innerException) => throw null; } - + namespace Text + { + public abstract class Decoder + { + public virtual unsafe void Convert(byte* bytes, int byteCount, char* chars, int charCount, bool flush, out int bytesUsed, out int charsUsed, out bool completed) => throw null; + public virtual void Convert(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, int charCount, bool flush, out int bytesUsed, out int charsUsed, out bool completed) => throw null; + public virtual void Convert(System.ReadOnlySpan bytes, System.Span chars, bool flush, out int bytesUsed, out int charsUsed, out bool completed) => throw null; + protected Decoder() => throw null; + public System.Text.DecoderFallback Fallback { get => throw null; set { } } + public System.Text.DecoderFallbackBuffer FallbackBuffer { get => throw null; } + public virtual unsafe int GetCharCount(byte* bytes, int count, bool flush) => throw null; + public abstract int GetCharCount(byte[] bytes, int index, int count); + public virtual int GetCharCount(byte[] bytes, int index, int count, bool flush) => throw null; + public virtual int GetCharCount(System.ReadOnlySpan bytes, bool flush) => throw null; + public virtual unsafe int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush) => throw null; + public abstract int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex); + public virtual int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, bool flush) => throw null; + public virtual int GetChars(System.ReadOnlySpan bytes, System.Span chars, bool flush) => throw null; + public virtual void Reset() => throw null; + } + public sealed class DecoderExceptionFallback : System.Text.DecoderFallback + { + public override System.Text.DecoderFallbackBuffer CreateFallbackBuffer() => throw null; + public DecoderExceptionFallback() => throw null; + public override bool Equals(object value) => throw null; + public override int GetHashCode() => throw null; + public override int MaxCharCount { get => throw null; } + } + public sealed class DecoderExceptionFallbackBuffer : System.Text.DecoderFallbackBuffer + { + public DecoderExceptionFallbackBuffer() => throw null; + public override bool Fallback(byte[] bytesUnknown, int index) => throw null; + public override char GetNextChar() => throw null; + public override bool MovePrevious() => throw null; + public override int Remaining { get => throw null; } + } + public abstract class DecoderFallback + { + public abstract System.Text.DecoderFallbackBuffer CreateFallbackBuffer(); + protected DecoderFallback() => throw null; + public static System.Text.DecoderFallback ExceptionFallback { get => throw null; } + public abstract int MaxCharCount { get; } + public static System.Text.DecoderFallback ReplacementFallback { get => throw null; } + } + public abstract class DecoderFallbackBuffer + { + protected DecoderFallbackBuffer() => throw null; + public abstract bool Fallback(byte[] bytesUnknown, int index); + public abstract char GetNextChar(); + public abstract bool MovePrevious(); + public abstract int Remaining { get; } + public virtual void Reset() => throw null; + } + public sealed class DecoderFallbackException : System.ArgumentException + { + public byte[] BytesUnknown { get => throw null; } + public DecoderFallbackException() => throw null; + public DecoderFallbackException(string message) => throw null; + public DecoderFallbackException(string message, byte[] bytesUnknown, int index) => throw null; + public DecoderFallbackException(string message, System.Exception innerException) => throw null; + public int Index { get => throw null; } + } + public sealed class DecoderReplacementFallback : System.Text.DecoderFallback + { + public override System.Text.DecoderFallbackBuffer CreateFallbackBuffer() => throw null; + public DecoderReplacementFallback() => throw null; + public DecoderReplacementFallback(string replacement) => throw null; + public string DefaultString { get => throw null; } + public override bool Equals(object value) => throw null; + public override int GetHashCode() => throw null; + public override int MaxCharCount { get => throw null; } + } + public sealed class DecoderReplacementFallbackBuffer : System.Text.DecoderFallbackBuffer + { + public DecoderReplacementFallbackBuffer(System.Text.DecoderReplacementFallback fallback) => throw null; + public override bool Fallback(byte[] bytesUnknown, int index) => throw null; + public override char GetNextChar() => throw null; + public override bool MovePrevious() => throw null; + public override int Remaining { get => throw null; } + public override void Reset() => throw null; + } + public abstract class Encoder + { + public virtual unsafe void Convert(char* chars, int charCount, byte* bytes, int byteCount, bool flush, out int charsUsed, out int bytesUsed, out bool completed) => throw null; + public virtual void Convert(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex, int byteCount, bool flush, out int charsUsed, out int bytesUsed, out bool completed) => throw null; + public virtual void Convert(System.ReadOnlySpan chars, System.Span bytes, bool flush, out int charsUsed, out int bytesUsed, out bool completed) => throw null; + protected Encoder() => throw null; + public System.Text.EncoderFallback Fallback { get => throw null; set { } } + public System.Text.EncoderFallbackBuffer FallbackBuffer { get => throw null; } + public virtual unsafe int GetByteCount(char* chars, int count, bool flush) => throw null; + public abstract int GetByteCount(char[] chars, int index, int count, bool flush); + public virtual int GetByteCount(System.ReadOnlySpan chars, bool flush) => throw null; + public virtual unsafe int GetBytes(char* chars, int charCount, byte* bytes, int byteCount, bool flush) => throw null; + public abstract int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex, bool flush); + public virtual int GetBytes(System.ReadOnlySpan chars, System.Span bytes, bool flush) => throw null; + public virtual void Reset() => throw null; + } + public sealed class EncoderExceptionFallback : System.Text.EncoderFallback + { + public override System.Text.EncoderFallbackBuffer CreateFallbackBuffer() => throw null; + public EncoderExceptionFallback() => throw null; + public override bool Equals(object value) => throw null; + public override int GetHashCode() => throw null; + public override int MaxCharCount { get => throw null; } + } + public sealed class EncoderExceptionFallbackBuffer : System.Text.EncoderFallbackBuffer + { + public EncoderExceptionFallbackBuffer() => throw null; + public override bool Fallback(char charUnknownHigh, char charUnknownLow, int index) => throw null; + public override bool Fallback(char charUnknown, int index) => throw null; + public override char GetNextChar() => throw null; + public override bool MovePrevious() => throw null; + public override int Remaining { get => throw null; } + } + public abstract class EncoderFallback + { + public abstract System.Text.EncoderFallbackBuffer CreateFallbackBuffer(); + protected EncoderFallback() => throw null; + public static System.Text.EncoderFallback ExceptionFallback { get => throw null; } + public abstract int MaxCharCount { get; } + public static System.Text.EncoderFallback ReplacementFallback { get => throw null; } + } + public abstract class EncoderFallbackBuffer + { + protected EncoderFallbackBuffer() => throw null; + public abstract bool Fallback(char charUnknownHigh, char charUnknownLow, int index); + public abstract bool Fallback(char charUnknown, int index); + public abstract char GetNextChar(); + public abstract bool MovePrevious(); + public abstract int Remaining { get; } + public virtual void Reset() => throw null; + } + public sealed class EncoderFallbackException : System.ArgumentException + { + public char CharUnknown { get => throw null; } + public char CharUnknownHigh { get => throw null; } + public char CharUnknownLow { get => throw null; } + public EncoderFallbackException() => throw null; + public EncoderFallbackException(string message) => throw null; + public EncoderFallbackException(string message, System.Exception innerException) => throw null; + public int Index { get => throw null; } + public bool IsUnknownSurrogate() => throw null; + } + public sealed class EncoderReplacementFallback : System.Text.EncoderFallback + { + public override System.Text.EncoderFallbackBuffer CreateFallbackBuffer() => throw null; + public EncoderReplacementFallback() => throw null; + public EncoderReplacementFallback(string replacement) => throw null; + public string DefaultString { get => throw null; } + public override bool Equals(object value) => throw null; + public override int GetHashCode() => throw null; + public override int MaxCharCount { get => throw null; } + } + public sealed class EncoderReplacementFallbackBuffer : System.Text.EncoderFallbackBuffer + { + public EncoderReplacementFallbackBuffer(System.Text.EncoderReplacementFallback fallback) => throw null; + public override bool Fallback(char charUnknownHigh, char charUnknownLow, int index) => throw null; + public override bool Fallback(char charUnknown, int index) => throw null; + public override char GetNextChar() => throw null; + public override bool MovePrevious() => throw null; + public override int Remaining { get => throw null; } + public override void Reset() => throw null; + } + public abstract class Encoding : System.ICloneable + { + public static System.Text.Encoding ASCII { get => throw null; } + public static System.Text.Encoding BigEndianUnicode { get => throw null; } + public virtual string BodyName { get => throw null; } + public virtual object Clone() => throw null; + public virtual int CodePage { get => throw null; } + public static byte[] Convert(System.Text.Encoding srcEncoding, System.Text.Encoding dstEncoding, byte[] bytes) => throw null; + public static byte[] Convert(System.Text.Encoding srcEncoding, System.Text.Encoding dstEncoding, byte[] bytes, int index, int count) => throw null; + public static System.IO.Stream CreateTranscodingStream(System.IO.Stream innerStream, System.Text.Encoding innerStreamEncoding, System.Text.Encoding outerStreamEncoding, bool leaveOpen = default(bool)) => throw null; + protected Encoding() => throw null; + protected Encoding(int codePage) => throw null; + protected Encoding(int codePage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) => throw null; + public System.Text.DecoderFallback DecoderFallback { get => throw null; set { } } + public static System.Text.Encoding Default { get => throw null; } + public System.Text.EncoderFallback EncoderFallback { get => throw null; set { } } + public virtual string EncodingName { get => throw null; } + public override bool Equals(object value) => throw null; + public virtual unsafe int GetByteCount(char* chars, int count) => throw null; + public virtual int GetByteCount(char[] chars) => throw null; + public abstract int GetByteCount(char[] chars, int index, int count); + public virtual int GetByteCount(System.ReadOnlySpan chars) => throw null; + public virtual int GetByteCount(string s) => throw null; + public int GetByteCount(string s, int index, int count) => throw null; + public virtual unsafe int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) => throw null; + public virtual byte[] GetBytes(char[] chars) => throw null; + public virtual byte[] GetBytes(char[] chars, int index, int count) => throw null; + public abstract int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex); + public virtual int GetBytes(System.ReadOnlySpan chars, System.Span bytes) => throw null; + public virtual byte[] GetBytes(string s) => throw null; + public byte[] GetBytes(string s, int index, int count) => throw null; + public virtual int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public virtual unsafe int GetCharCount(byte* bytes, int count) => throw null; + public virtual int GetCharCount(byte[] bytes) => throw null; + public abstract int GetCharCount(byte[] bytes, int index, int count); + public virtual int GetCharCount(System.ReadOnlySpan bytes) => throw null; + public virtual unsafe int GetChars(byte* bytes, int byteCount, char* chars, int charCount) => throw null; + public virtual char[] GetChars(byte[] bytes) => throw null; + public virtual char[] GetChars(byte[] bytes, int index, int count) => throw null; + public abstract int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex); + public virtual int GetChars(System.ReadOnlySpan bytes, System.Span chars) => throw null; + public virtual System.Text.Decoder GetDecoder() => throw null; + public virtual System.Text.Encoder GetEncoder() => throw null; + public static System.Text.Encoding GetEncoding(int codepage) => throw null; + public static System.Text.Encoding GetEncoding(int codepage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) => throw null; + public static System.Text.Encoding GetEncoding(string name) => throw null; + public static System.Text.Encoding GetEncoding(string name, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) => throw null; + public static System.Text.EncodingInfo[] GetEncodings() => throw null; + public override int GetHashCode() => throw null; + public abstract int GetMaxByteCount(int charCount); + public abstract int GetMaxCharCount(int byteCount); + public virtual byte[] GetPreamble() => throw null; + public unsafe string GetString(byte* bytes, int byteCount) => throw null; + public virtual string GetString(byte[] bytes) => throw null; + public virtual string GetString(byte[] bytes, int index, int count) => throw null; + public string GetString(System.ReadOnlySpan bytes) => throw null; + public virtual string HeaderName { get => throw null; } + public bool IsAlwaysNormalized() => throw null; + public virtual bool IsAlwaysNormalized(System.Text.NormalizationForm form) => throw null; + public virtual bool IsBrowserDisplay { get => throw null; } + public virtual bool IsBrowserSave { get => throw null; } + public virtual bool IsMailNewsDisplay { get => throw null; } + public virtual bool IsMailNewsSave { get => throw null; } + public bool IsReadOnly { get => throw null; } + public virtual bool IsSingleByte { get => throw null; } + public static System.Text.Encoding Latin1 { get => throw null; } + public virtual System.ReadOnlySpan Preamble { get => throw null; } + public static void RegisterProvider(System.Text.EncodingProvider provider) => throw null; + public static System.Text.Encoding Unicode { get => throw null; } + public static System.Text.Encoding UTF32 { get => throw null; } + public static System.Text.Encoding UTF7 { get => throw null; } + public static System.Text.Encoding UTF8 { get => throw null; } + public virtual string WebName { get => throw null; } + public virtual int WindowsCodePage { get => throw null; } + } + public sealed class EncodingInfo + { + public int CodePage { get => throw null; } + public EncodingInfo(System.Text.EncodingProvider provider, int codePage, string name, string displayName) => throw null; + public string DisplayName { get => throw null; } + public override bool Equals(object value) => throw null; + public System.Text.Encoding GetEncoding() => throw null; + public override int GetHashCode() => throw null; + public string Name { get => throw null; } + } + public abstract class EncodingProvider + { + public EncodingProvider() => throw null; + public abstract System.Text.Encoding GetEncoding(int codepage); + public virtual System.Text.Encoding GetEncoding(int codepage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) => throw null; + public abstract System.Text.Encoding GetEncoding(string name); + public virtual System.Text.Encoding GetEncoding(string name, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) => throw null; + public virtual System.Collections.Generic.IEnumerable GetEncodings() => throw null; + } + public enum NormalizationForm + { + FormC = 1, + FormD = 2, + FormKC = 5, + FormKD = 6, + } + public struct Rune : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable + { + public int CompareTo(System.Text.Rune other) => throw null; + int System.IComparable.CompareTo(object obj) => throw null; + public Rune(char ch) => throw null; + public Rune(char highSurrogate, char lowSurrogate) => throw null; + public Rune(int value) => throw null; + public Rune(uint value) => throw null; + public static System.Buffers.OperationStatus DecodeFromUtf16(System.ReadOnlySpan source, out System.Text.Rune result, out int charsConsumed) => throw null; + public static System.Buffers.OperationStatus DecodeFromUtf8(System.ReadOnlySpan source, out System.Text.Rune result, out int bytesConsumed) => throw null; + public static System.Buffers.OperationStatus DecodeLastFromUtf16(System.ReadOnlySpan source, out System.Text.Rune result, out int charsConsumed) => throw null; + public static System.Buffers.OperationStatus DecodeLastFromUtf8(System.ReadOnlySpan source, out System.Text.Rune value, out int bytesConsumed) => throw null; + public int EncodeToUtf16(System.Span destination) => throw null; + public int EncodeToUtf8(System.Span destination) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.Text.Rune other) => throw null; + public override int GetHashCode() => throw null; + public static double GetNumericValue(System.Text.Rune value) => throw null; + public static System.Text.Rune GetRuneAt(string input, int index) => throw null; + public static System.Globalization.UnicodeCategory GetUnicodeCategory(System.Text.Rune value) => throw null; + public bool IsAscii { get => throw null; } + public bool IsBmp { get => throw null; } + public static bool IsControl(System.Text.Rune value) => throw null; + public static bool IsDigit(System.Text.Rune value) => throw null; + public static bool IsLetter(System.Text.Rune value) => throw null; + public static bool IsLetterOrDigit(System.Text.Rune value) => throw null; + public static bool IsLower(System.Text.Rune value) => throw null; + public static bool IsNumber(System.Text.Rune value) => throw null; + public static bool IsPunctuation(System.Text.Rune value) => throw null; + public static bool IsSeparator(System.Text.Rune value) => throw null; + public static bool IsSymbol(System.Text.Rune value) => throw null; + public static bool IsUpper(System.Text.Rune value) => throw null; + public static bool IsValid(int value) => throw null; + public static bool IsValid(uint value) => throw null; + public static bool IsWhiteSpace(System.Text.Rune value) => throw null; + public static bool operator ==(System.Text.Rune left, System.Text.Rune right) => throw null; + public static explicit operator System.Text.Rune(char ch) => throw null; + public static explicit operator System.Text.Rune(int value) => throw null; + public static explicit operator System.Text.Rune(uint value) => throw null; + public static bool operator >(System.Text.Rune left, System.Text.Rune right) => throw null; + public static bool operator >=(System.Text.Rune left, System.Text.Rune right) => throw null; + public static bool operator !=(System.Text.Rune left, System.Text.Rune right) => throw null; + public static bool operator <(System.Text.Rune left, System.Text.Rune right) => throw null; + public static bool operator <=(System.Text.Rune left, System.Text.Rune right) => throw null; + public int Plane { get => throw null; } + public static System.Text.Rune ReplacementChar { get => throw null; } + public static System.Text.Rune ToLower(System.Text.Rune value, System.Globalization.CultureInfo culture) => throw null; + public static System.Text.Rune ToLowerInvariant(System.Text.Rune value) => throw null; + string System.IFormattable.ToString(string format, System.IFormatProvider formatProvider) => throw null; + public override string ToString() => throw null; + public static System.Text.Rune ToUpper(System.Text.Rune value, System.Globalization.CultureInfo culture) => throw null; + public static System.Text.Rune ToUpperInvariant(System.Text.Rune value) => throw null; + public static bool TryCreate(char highSurrogate, char lowSurrogate, out System.Text.Rune result) => throw null; + public static bool TryCreate(char ch, out System.Text.Rune result) => throw null; + public static bool TryCreate(int value, out System.Text.Rune result) => throw null; + public static bool TryCreate(uint value, out System.Text.Rune result) => throw null; + public bool TryEncodeToUtf16(System.Span destination, out int charsWritten) => throw null; + public bool TryEncodeToUtf8(System.Span destination, out int bytesWritten) => throw null; + bool System.ISpanFormattable.TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; + public static bool TryGetRuneAt(string input, int index, out System.Text.Rune value) => throw null; + public int Utf16SequenceLength { get => throw null; } + public int Utf8SequenceLength { get => throw null; } + public int Value { get => throw null; } + } + public sealed class StringBuilder : System.Runtime.Serialization.ISerializable + { + public System.Text.StringBuilder Append(bool value) => throw null; + public System.Text.StringBuilder Append(byte value) => throw null; + public System.Text.StringBuilder Append(char value) => throw null; + public unsafe System.Text.StringBuilder Append(char* value, int valueCount) => throw null; + public System.Text.StringBuilder Append(char value, int repeatCount) => throw null; + public System.Text.StringBuilder Append(char[] value) => throw null; + public System.Text.StringBuilder Append(char[] value, int startIndex, int charCount) => throw null; + public System.Text.StringBuilder Append(decimal value) => throw null; + public System.Text.StringBuilder Append(double value) => throw null; + public System.Text.StringBuilder Append(System.IFormatProvider provider, ref System.Text.StringBuilder.AppendInterpolatedStringHandler handler) => throw null; + public System.Text.StringBuilder Append(short value) => throw null; + public System.Text.StringBuilder Append(int value) => throw null; + public System.Text.StringBuilder Append(long value) => throw null; + public System.Text.StringBuilder Append(object value) => throw null; + public System.Text.StringBuilder Append(System.ReadOnlyMemory value) => throw null; + public System.Text.StringBuilder Append(System.ReadOnlySpan value) => throw null; + public System.Text.StringBuilder Append(sbyte value) => throw null; + public System.Text.StringBuilder Append(float value) => throw null; + public System.Text.StringBuilder Append(string value) => throw null; + public System.Text.StringBuilder Append(string value, int startIndex, int count) => throw null; + public System.Text.StringBuilder Append(System.Text.StringBuilder value) => throw null; + public System.Text.StringBuilder Append(System.Text.StringBuilder value, int startIndex, int count) => throw null; + public System.Text.StringBuilder Append(ref System.Text.StringBuilder.AppendInterpolatedStringHandler handler) => throw null; + public System.Text.StringBuilder Append(ushort value) => throw null; + public System.Text.StringBuilder Append(uint value) => throw null; + public System.Text.StringBuilder Append(ulong value) => throw null; + public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, object arg0) => throw null; + public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, object arg0, object arg1) => throw null; + public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, object arg0, object arg1, object arg2) => throw null; + public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, params object[] args) => throw null; + public System.Text.StringBuilder AppendFormat(string format, object arg0) => throw null; + public System.Text.StringBuilder AppendFormat(string format, object arg0, object arg1) => throw null; + public System.Text.StringBuilder AppendFormat(string format, object arg0, object arg1, object arg2) => throw null; + public System.Text.StringBuilder AppendFormat(string format, params object[] args) => throw null; + public struct AppendInterpolatedStringHandler + { + public void AppendFormatted(object value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(System.ReadOnlySpan value) => throw null; + public void AppendFormatted(System.ReadOnlySpan value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(string value) => throw null; + public void AppendFormatted(string value, int alignment = default(int), string format = default(string)) => throw null; + public void AppendFormatted(T value) => throw null; + public void AppendFormatted(T value, int alignment) => throw null; + public void AppendFormatted(T value, int alignment, string format) => throw null; + public void AppendFormatted(T value, string format) => throw null; + public void AppendLiteral(string value) => throw null; + public AppendInterpolatedStringHandler(int literalLength, int formattedCount, System.Text.StringBuilder stringBuilder) => throw null; + public AppendInterpolatedStringHandler(int literalLength, int formattedCount, System.Text.StringBuilder stringBuilder, System.IFormatProvider provider) => throw null; + } + public System.Text.StringBuilder AppendJoin(char separator, params object[] values) => throw null; + public System.Text.StringBuilder AppendJoin(char separator, params string[] values) => throw null; + public System.Text.StringBuilder AppendJoin(string separator, params object[] values) => throw null; + public System.Text.StringBuilder AppendJoin(string separator, params string[] values) => throw null; + public System.Text.StringBuilder AppendJoin(char separator, System.Collections.Generic.IEnumerable values) => throw null; + public System.Text.StringBuilder AppendJoin(string separator, System.Collections.Generic.IEnumerable values) => throw null; + public System.Text.StringBuilder AppendLine() => throw null; + public System.Text.StringBuilder AppendLine(System.IFormatProvider provider, ref System.Text.StringBuilder.AppendInterpolatedStringHandler handler) => throw null; + public System.Text.StringBuilder AppendLine(string value) => throw null; + public System.Text.StringBuilder AppendLine(ref System.Text.StringBuilder.AppendInterpolatedStringHandler handler) => throw null; + public int Capacity { get => throw null; set { } } + public struct ChunkEnumerator + { + public System.ReadOnlyMemory Current { get => throw null; } + public System.Text.StringBuilder.ChunkEnumerator GetEnumerator() => throw null; + public bool MoveNext() => throw null; + } + public System.Text.StringBuilder Clear() => throw null; + public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count) => throw null; + public void CopyTo(int sourceIndex, System.Span destination, int count) => throw null; + public StringBuilder() => throw null; + public StringBuilder(int capacity) => throw null; + public StringBuilder(int capacity, int maxCapacity) => throw null; + public StringBuilder(string value) => throw null; + public StringBuilder(string value, int capacity) => throw null; + public StringBuilder(string value, int startIndex, int length, int capacity) => throw null; + public int EnsureCapacity(int capacity) => throw null; + public bool Equals(System.ReadOnlySpan span) => throw null; + public bool Equals(System.Text.StringBuilder sb) => throw null; + public System.Text.StringBuilder.ChunkEnumerator GetChunks() => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.Text.StringBuilder Insert(int index, bool value) => throw null; + public System.Text.StringBuilder Insert(int index, byte value) => throw null; + public System.Text.StringBuilder Insert(int index, char value) => throw null; + public System.Text.StringBuilder Insert(int index, char[] value) => throw null; + public System.Text.StringBuilder Insert(int index, char[] value, int startIndex, int charCount) => throw null; + public System.Text.StringBuilder Insert(int index, decimal value) => throw null; + public System.Text.StringBuilder Insert(int index, double value) => throw null; + public System.Text.StringBuilder Insert(int index, short value) => throw null; + public System.Text.StringBuilder Insert(int index, int value) => throw null; + public System.Text.StringBuilder Insert(int index, long value) => throw null; + public System.Text.StringBuilder Insert(int index, object value) => throw null; + public System.Text.StringBuilder Insert(int index, System.ReadOnlySpan value) => throw null; + public System.Text.StringBuilder Insert(int index, sbyte value) => throw null; + public System.Text.StringBuilder Insert(int index, float value) => throw null; + public System.Text.StringBuilder Insert(int index, string value) => throw null; + public System.Text.StringBuilder Insert(int index, string value, int count) => throw null; + public System.Text.StringBuilder Insert(int index, ushort value) => throw null; + public System.Text.StringBuilder Insert(int index, uint value) => throw null; + public System.Text.StringBuilder Insert(int index, ulong value) => throw null; + public int Length { get => throw null; set { } } + public int MaxCapacity { get => throw null; } + public System.Text.StringBuilder Remove(int startIndex, int length) => throw null; + public System.Text.StringBuilder Replace(char oldChar, char newChar) => throw null; + public System.Text.StringBuilder Replace(char oldChar, char newChar, int startIndex, int count) => throw null; + public System.Text.StringBuilder Replace(string oldValue, string newValue) => throw null; + public System.Text.StringBuilder Replace(string oldValue, string newValue, int startIndex, int count) => throw null; + [System.Runtime.CompilerServices.IndexerName("Chars")] + public char this[int index] { get => throw null; set { } } + public override string ToString() => throw null; + public string ToString(int startIndex, int length) => throw null; + } + public struct StringRuneEnumerator : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public System.Text.Rune Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + void System.IDisposable.Dispose() => throw null; + public System.Text.StringRuneEnumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + namespace Unicode + { + public static class Utf8 + { + public static System.Buffers.OperationStatus FromUtf16(System.ReadOnlySpan source, System.Span destination, out int charsRead, out int bytesWritten, bool replaceInvalidSequences = default(bool), bool isFinalBlock = default(bool)) => throw null; + public static System.Buffers.OperationStatus ToUtf16(System.ReadOnlySpan source, System.Span destination, out int bytesRead, out int charsWritten, bool replaceInvalidSequences = default(bool), bool isFinalBlock = default(bool)) => throw null; + } + } + } + namespace Threading + { + public struct CancellationToken : System.IEquatable + { + public bool CanBeCanceled { get => throw null; } + public CancellationToken(bool canceled) => throw null; + public override bool Equals(object other) => throw null; + public bool Equals(System.Threading.CancellationToken other) => throw null; + public override int GetHashCode() => throw null; + public bool IsCancellationRequested { get => throw null; } + public static System.Threading.CancellationToken None { get => throw null; } + public static bool operator ==(System.Threading.CancellationToken left, System.Threading.CancellationToken right) => throw null; + public static bool operator !=(System.Threading.CancellationToken left, System.Threading.CancellationToken right) => throw null; + public System.Threading.CancellationTokenRegistration Register(System.Action callback) => throw null; + public System.Threading.CancellationTokenRegistration Register(System.Action callback, bool useSynchronizationContext) => throw null; + public System.Threading.CancellationTokenRegistration Register(System.Action callback, object state) => throw null; + public System.Threading.CancellationTokenRegistration Register(System.Action callback, object state) => throw null; + public System.Threading.CancellationTokenRegistration Register(System.Action callback, object state, bool useSynchronizationContext) => throw null; + public void ThrowIfCancellationRequested() => throw null; + public System.Threading.CancellationTokenRegistration UnsafeRegister(System.Action callback, object state) => throw null; + public System.Threading.CancellationTokenRegistration UnsafeRegister(System.Action callback, object state) => throw null; + public System.Threading.WaitHandle WaitHandle { get => throw null; } + } + public struct CancellationTokenRegistration : System.IAsyncDisposable, System.IDisposable, System.IEquatable + { + public void Dispose() => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.Threading.CancellationTokenRegistration other) => throw null; + public override int GetHashCode() => throw null; + public static bool operator ==(System.Threading.CancellationTokenRegistration left, System.Threading.CancellationTokenRegistration right) => throw null; + public static bool operator !=(System.Threading.CancellationTokenRegistration left, System.Threading.CancellationTokenRegistration right) => throw null; + public System.Threading.CancellationToken Token { get => throw null; } + public bool Unregister() => throw null; + } + public class CancellationTokenSource : System.IDisposable + { + public void Cancel() => throw null; + public void Cancel(bool throwOnFirstException) => throw null; + public void CancelAfter(int millisecondsDelay) => throw null; + public void CancelAfter(System.TimeSpan delay) => throw null; + public static System.Threading.CancellationTokenSource CreateLinkedTokenSource(System.Threading.CancellationToken token) => throw null; + public static System.Threading.CancellationTokenSource CreateLinkedTokenSource(System.Threading.CancellationToken token1, System.Threading.CancellationToken token2) => throw null; + public static System.Threading.CancellationTokenSource CreateLinkedTokenSource(params System.Threading.CancellationToken[] tokens) => throw null; + public CancellationTokenSource() => throw null; + public CancellationTokenSource(int millisecondsDelay) => throw null; + public CancellationTokenSource(System.TimeSpan delay) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public bool IsCancellationRequested { get => throw null; } + public System.Threading.CancellationToken Token { get => throw null; } + public bool TryReset() => throw null; + } + public enum LazyThreadSafetyMode + { + None = 0, + PublicationOnly = 1, + ExecutionAndPublication = 2, + } + public sealed class PeriodicTimer : System.IDisposable + { + public PeriodicTimer(System.TimeSpan period) => throw null; + public void Dispose() => throw null; + public System.Threading.Tasks.ValueTask WaitForNextTickAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + namespace Tasks + { + public class ConcurrentExclusiveSchedulerPair + { + public void Complete() => throw null; + public System.Threading.Tasks.Task Completion { get => throw null; } + public System.Threading.Tasks.TaskScheduler ConcurrentScheduler { get => throw null; } + public ConcurrentExclusiveSchedulerPair() => throw null; + public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler) => throw null; + public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler, int maxConcurrencyLevel) => throw null; + public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler, int maxConcurrencyLevel, int maxItemsPerTask) => throw null; + public System.Threading.Tasks.TaskScheduler ExclusiveScheduler { get => throw null; } + } + namespace Sources + { + public interface IValueTaskSource + { + void GetResult(short token); + System.Threading.Tasks.Sources.ValueTaskSourceStatus GetStatus(short token); + void OnCompleted(System.Action continuation, object state, short token, System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags flags); + } + public interface IValueTaskSource + { + TResult GetResult(short token); + System.Threading.Tasks.Sources.ValueTaskSourceStatus GetStatus(short token); + void OnCompleted(System.Action continuation, object state, short token, System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags flags); + } + public struct ManualResetValueTaskSourceCore + { + public TResult GetResult(short token) => throw null; + public System.Threading.Tasks.Sources.ValueTaskSourceStatus GetStatus(short token) => throw null; + public void OnCompleted(System.Action continuation, object state, short token, System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags flags) => throw null; + public void Reset() => throw null; + public bool RunContinuationsAsynchronously { get => throw null; set { } } + public void SetException(System.Exception error) => throw null; + public void SetResult(TResult result) => throw null; + public short Version { get => throw null; } + } + [System.Flags] + public enum ValueTaskSourceOnCompletedFlags + { + None = 0, + UseSchedulingContext = 1, + FlowExecutionContext = 2, + } + public enum ValueTaskSourceStatus + { + Pending = 0, + Succeeded = 1, + Faulted = 2, + Canceled = 3, + } + } + public class Task : System.IAsyncResult, System.IDisposable + { + public object AsyncState { get => throw null; } + System.Threading.WaitHandle System.IAsyncResult.AsyncWaitHandle { get => throw null; } + bool System.IAsyncResult.CompletedSynchronously { get => throw null; } + public static System.Threading.Tasks.Task CompletedTask { get => throw null; } + public System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, object state) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, object state, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, object state, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, object state) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, object state, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, object state, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.TaskCreationOptions CreationOptions { get => throw null; } + public Task(System.Action action) => throw null; + public Task(System.Action action, System.Threading.CancellationToken cancellationToken) => throw null; + public Task(System.Action action, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public Task(System.Action action, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public Task(System.Action action, object state) => throw null; + public Task(System.Action action, object state, System.Threading.CancellationToken cancellationToken) => throw null; + public Task(System.Action action, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public Task(System.Action action, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public static int? CurrentId { get => throw null; } + public static System.Threading.Tasks.Task Delay(int millisecondsDelay) => throw null; + public static System.Threading.Tasks.Task Delay(int millisecondsDelay, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task Delay(System.TimeSpan delay) => throw null; + public static System.Threading.Tasks.Task Delay(System.TimeSpan delay, System.Threading.CancellationToken cancellationToken) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public System.AggregateException Exception { get => throw null; } + public static System.Threading.Tasks.TaskFactory Factory { get => throw null; } + public static System.Threading.Tasks.Task FromCanceled(System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task FromCanceled(System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task FromException(System.Exception exception) => throw null; + public static System.Threading.Tasks.Task FromException(System.Exception exception) => throw null; + public static System.Threading.Tasks.Task FromResult(TResult result) => throw null; + public System.Runtime.CompilerServices.TaskAwaiter GetAwaiter() => throw null; + public int Id { get => throw null; } + public bool IsCanceled { get => throw null; } + public bool IsCompleted { get => throw null; } + public bool IsCompletedSuccessfully { get => throw null; } + public bool IsFaulted { get => throw null; } + public static System.Threading.Tasks.Task Run(System.Action action) => throw null; + public static System.Threading.Tasks.Task Run(System.Action action, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task Run(System.Func function) => throw null; + public static System.Threading.Tasks.Task Run(System.Func function, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task Run(System.Func> function) => throw null; + public static System.Threading.Tasks.Task Run(System.Func> function, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task Run(System.Func function) => throw null; + public static System.Threading.Tasks.Task Run(System.Func function, System.Threading.CancellationToken cancellationToken) => throw null; + public void RunSynchronously() => throw null; + public void RunSynchronously(System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public void Start() => throw null; + public void Start(System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.TaskStatus Status { get => throw null; } + public void Wait() => throw null; + public bool Wait(int millisecondsTimeout) => throw null; + public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; + public void Wait(System.Threading.CancellationToken cancellationToken) => throw null; + public bool Wait(System.TimeSpan timeout) => throw null; + public bool Wait(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; + public static void WaitAll(params System.Threading.Tasks.Task[] tasks) => throw null; + public static bool WaitAll(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout) => throw null; + public static bool WaitAll(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; + public static void WaitAll(System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken) => throw null; + public static bool WaitAll(System.Threading.Tasks.Task[] tasks, System.TimeSpan timeout) => throw null; + public static int WaitAny(params System.Threading.Tasks.Task[] tasks) => throw null; + public static int WaitAny(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout) => throw null; + public static int WaitAny(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; + public static int WaitAny(System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken) => throw null; + public static int WaitAny(System.Threading.Tasks.Task[] tasks, System.TimeSpan timeout) => throw null; + public System.Threading.Tasks.Task WaitAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task WaitAsync(System.TimeSpan timeout) => throw null; + public System.Threading.Tasks.Task WaitAsync(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task WhenAll(System.Collections.Generic.IEnumerable tasks) => throw null; + public static System.Threading.Tasks.Task WhenAll(params System.Threading.Tasks.Task[] tasks) => throw null; + public static System.Threading.Tasks.Task WhenAll(System.Collections.Generic.IEnumerable> tasks) => throw null; + public static System.Threading.Tasks.Task WhenAll(params System.Threading.Tasks.Task[] tasks) => throw null; + public static System.Threading.Tasks.Task WhenAny(System.Collections.Generic.IEnumerable tasks) => throw null; + public static System.Threading.Tasks.Task WhenAny(System.Threading.Tasks.Task task1, System.Threading.Tasks.Task task2) => throw null; + public static System.Threading.Tasks.Task WhenAny(params System.Threading.Tasks.Task[] tasks) => throw null; + public static System.Threading.Tasks.Task> WhenAny(System.Collections.Generic.IEnumerable> tasks) => throw null; + public static System.Threading.Tasks.Task> WhenAny(System.Threading.Tasks.Task task1, System.Threading.Tasks.Task task2) => throw null; + public static System.Threading.Tasks.Task> WhenAny(params System.Threading.Tasks.Task[] tasks) => throw null; + public static System.Runtime.CompilerServices.YieldAwaitable Yield() => throw null; + } + public class Task : System.Threading.Tasks.Task + { + public System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action, object> continuationAction, object state) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action, object> continuationAction, object state, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action, object> continuationAction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action, object> continuationAction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action, object> continuationAction, object state, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action> continuationAction) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action> continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Action> continuationAction, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func, object, TNewResult> continuationFunction, object state) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func, object, TNewResult> continuationFunction, object state, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func, object, TNewResult> continuationFunction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func, object, TNewResult> continuationFunction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func, object, TNewResult> continuationFunction, object state, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func, TNewResult> continuationFunction) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func, TNewResult> continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func, TNewResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func, TNewResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWith(System.Func, TNewResult> continuationFunction, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public Task(System.Func function, object state) : base(default(System.Action)) => throw null; + public Task(System.Func function, object state, System.Threading.CancellationToken cancellationToken) : base(default(System.Action)) => throw null; + public Task(System.Func function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) : base(default(System.Action)) => throw null; + public Task(System.Func function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) : base(default(System.Action)) => throw null; + public Task(System.Func function) : base(default(System.Action)) => throw null; + public Task(System.Func function, System.Threading.CancellationToken cancellationToken) : base(default(System.Action)) => throw null; + public Task(System.Func function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) : base(default(System.Action)) => throw null; + public Task(System.Func function, System.Threading.Tasks.TaskCreationOptions creationOptions) : base(default(System.Action)) => throw null; + public static System.Threading.Tasks.TaskFactory Factory { get => throw null; } + public System.Runtime.CompilerServices.TaskAwaiter GetAwaiter() => throw null; + public TResult Result { get => throw null; } + public System.Threading.Tasks.Task WaitAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task WaitAsync(System.TimeSpan timeout) => throw null; + public System.Threading.Tasks.Task WaitAsync(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; + } + public static partial class TaskAsyncEnumerableExtensions + { + public static System.Runtime.CompilerServices.ConfiguredAsyncDisposable ConfigureAwait(this System.IAsyncDisposable source, bool continueOnCapturedContext) => throw null; + public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable ConfigureAwait(this System.Collections.Generic.IAsyncEnumerable source, bool continueOnCapturedContext) => throw null; + public static System.Collections.Generic.IEnumerable ToBlockingEnumerable(this System.Collections.Generic.IAsyncEnumerable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable WithCancellation(this System.Collections.Generic.IAsyncEnumerable source, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class TaskCanceledException : System.OperationCanceledException + { + public TaskCanceledException() => throw null; + protected TaskCanceledException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public TaskCanceledException(string message) => throw null; + public TaskCanceledException(string message, System.Exception innerException) => throw null; + public TaskCanceledException(string message, System.Exception innerException, System.Threading.CancellationToken token) => throw null; + public TaskCanceledException(System.Threading.Tasks.Task task) => throw null; + public System.Threading.Tasks.Task Task { get => throw null; } + } + public class TaskCompletionSource + { + public TaskCompletionSource() => throw null; + public TaskCompletionSource(object state) => throw null; + public TaskCompletionSource(object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public TaskCompletionSource(System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public void SetCanceled() => throw null; + public void SetCanceled(System.Threading.CancellationToken cancellationToken) => throw null; + public void SetException(System.Collections.Generic.IEnumerable exceptions) => throw null; + public void SetException(System.Exception exception) => throw null; + public void SetResult() => throw null; + public System.Threading.Tasks.Task Task { get => throw null; } + public bool TrySetCanceled() => throw null; + public bool TrySetCanceled(System.Threading.CancellationToken cancellationToken) => throw null; + public bool TrySetException(System.Collections.Generic.IEnumerable exceptions) => throw null; + public bool TrySetException(System.Exception exception) => throw null; + public bool TrySetResult() => throw null; + } + public class TaskCompletionSource + { + public TaskCompletionSource() => throw null; + public TaskCompletionSource(object state) => throw null; + public TaskCompletionSource(object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public TaskCompletionSource(System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public void SetCanceled() => throw null; + public void SetCanceled(System.Threading.CancellationToken cancellationToken) => throw null; + public void SetException(System.Collections.Generic.IEnumerable exceptions) => throw null; + public void SetException(System.Exception exception) => throw null; + public void SetResult(TResult result) => throw null; + public System.Threading.Tasks.Task Task { get => throw null; } + public bool TrySetCanceled() => throw null; + public bool TrySetCanceled(System.Threading.CancellationToken cancellationToken) => throw null; + public bool TrySetException(System.Collections.Generic.IEnumerable exceptions) => throw null; + public bool TrySetException(System.Exception exception) => throw null; + public bool TrySetResult(TResult result) => throw null; + } + [System.Flags] + public enum TaskContinuationOptions + { + None = 0, + PreferFairness = 1, + LongRunning = 2, + AttachedToParent = 4, + DenyChildAttach = 8, + HideScheduler = 16, + LazyCancellation = 32, + RunContinuationsAsynchronously = 64, + NotOnRanToCompletion = 65536, + NotOnFaulted = 131072, + OnlyOnCanceled = 196608, + NotOnCanceled = 262144, + OnlyOnFaulted = 327680, + OnlyOnRanToCompletion = 393216, + ExecuteSynchronously = 524288, + } + [System.Flags] + public enum TaskCreationOptions + { + None = 0, + PreferFairness = 1, + LongRunning = 2, + AttachedToParent = 4, + DenyChildAttach = 8, + HideScheduler = 16, + RunContinuationsAsynchronously = 64, + } + public static partial class TaskExtensions + { + public static System.Threading.Tasks.Task Unwrap(this System.Threading.Tasks.Task task) => throw null; + public static System.Threading.Tasks.Task Unwrap(this System.Threading.Tasks.Task> task) => throw null; + } + public class TaskFactory + { + public System.Threading.CancellationToken CancellationToken { get => throw null; } + public System.Threading.Tasks.TaskContinuationOptions ContinuationOptions { get => throw null; } + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action continuationAction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action[]> continuationAction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action[]> continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action[]> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action[]> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action continuationAction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action> continuationAction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action> continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.TaskCreationOptions CreationOptions { get => throw null; } + public TaskFactory() => throw null; + public TaskFactory(System.Threading.CancellationToken cancellationToken) => throw null; + public TaskFactory(System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public TaskFactory(System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public TaskFactory(System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Action endMethod) => throw null; + public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Action endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Action endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod) => throw null; + public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, TArg2 arg2, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, TArg2 arg2, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.TaskScheduler Scheduler { get => throw null; } + public System.Threading.Tasks.Task StartNew(System.Action action) => throw null; + public System.Threading.Tasks.Task StartNew(System.Action action, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task StartNew(System.Action action, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task StartNew(System.Action action, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task StartNew(System.Action action, object state) => throw null; + public System.Threading.Tasks.Task StartNew(System.Action action, object state, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task StartNew(System.Action action, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task StartNew(System.Action action, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, object state) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + } + public class TaskFactory + { + public System.Threading.CancellationToken CancellationToken { get => throw null; } + public System.Threading.Tasks.TaskContinuationOptions ContinuationOptions { get => throw null; } + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public System.Threading.Tasks.TaskCreationOptions CreationOptions { get => throw null; } + public TaskFactory() => throw null; + public TaskFactory(System.Threading.CancellationToken cancellationToken) => throw null; + public TaskFactory(System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public TaskFactory(System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + public TaskFactory(System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod) => throw null; + public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state) => throw null; + public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.TaskScheduler Scheduler { get => throw null; } + public System.Threading.Tasks.Task StartNew(System.Func function, object state) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; + public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; + } + public abstract class TaskScheduler + { + protected TaskScheduler() => throw null; + public static System.Threading.Tasks.TaskScheduler Current { get => throw null; } + public static System.Threading.Tasks.TaskScheduler Default { get => throw null; } + public static System.Threading.Tasks.TaskScheduler FromCurrentSynchronizationContext() => throw null; + protected abstract System.Collections.Generic.IEnumerable GetScheduledTasks(); + public int Id { get => throw null; } + public virtual int MaximumConcurrencyLevel { get => throw null; } + protected abstract void QueueTask(System.Threading.Tasks.Task task); + protected virtual bool TryDequeue(System.Threading.Tasks.Task task) => throw null; + protected bool TryExecuteTask(System.Threading.Tasks.Task task) => throw null; + protected abstract bool TryExecuteTaskInline(System.Threading.Tasks.Task task, bool taskWasPreviouslyQueued); + public static event System.EventHandler UnobservedTaskException { add { } remove { } } + } + public class TaskSchedulerException : System.Exception + { + public TaskSchedulerException() => throw null; + public TaskSchedulerException(System.Exception innerException) => throw null; + protected TaskSchedulerException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public TaskSchedulerException(string message) => throw null; + public TaskSchedulerException(string message, System.Exception innerException) => throw null; + } + public enum TaskStatus + { + Created = 0, + WaitingForActivation = 1, + WaitingToRun = 2, + Running = 3, + WaitingForChildrenToComplete = 4, + RanToCompletion = 5, + Canceled = 6, + Faulted = 7, + } + public class UnobservedTaskExceptionEventArgs : System.EventArgs + { + public UnobservedTaskExceptionEventArgs(System.AggregateException exception) => throw null; + public System.AggregateException Exception { get => throw null; } + public bool Observed { get => throw null; } + public void SetObserved() => throw null; + } + public struct ValueTask : System.IEquatable + { + public System.Threading.Tasks.Task AsTask() => throw null; + public static System.Threading.Tasks.ValueTask CompletedTask { get => throw null; } + public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) => throw null; + public ValueTask(System.Threading.Tasks.Sources.IValueTaskSource source, short token) => throw null; + public ValueTask(System.Threading.Tasks.Task task) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.Threading.Tasks.ValueTask other) => throw null; + public static System.Threading.Tasks.ValueTask FromCanceled(System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.ValueTask FromCanceled(System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.ValueTask FromException(System.Exception exception) => throw null; + public static System.Threading.Tasks.ValueTask FromException(System.Exception exception) => throw null; + public static System.Threading.Tasks.ValueTask FromResult(TResult result) => throw null; + public System.Runtime.CompilerServices.ValueTaskAwaiter GetAwaiter() => throw null; + public override int GetHashCode() => throw null; + public bool IsCanceled { get => throw null; } + public bool IsCompleted { get => throw null; } + public bool IsCompletedSuccessfully { get => throw null; } + public bool IsFaulted { get => throw null; } + public static bool operator ==(System.Threading.Tasks.ValueTask left, System.Threading.Tasks.ValueTask right) => throw null; + public static bool operator !=(System.Threading.Tasks.ValueTask left, System.Threading.Tasks.ValueTask right) => throw null; + public System.Threading.Tasks.ValueTask Preserve() => throw null; + } + public struct ValueTask : System.IEquatable> + { + public System.Threading.Tasks.Task AsTask() => throw null; + public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) => throw null; + public ValueTask(System.Threading.Tasks.Sources.IValueTaskSource source, short token) => throw null; + public ValueTask(System.Threading.Tasks.Task task) => throw null; + public ValueTask(TResult result) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.Threading.Tasks.ValueTask other) => throw null; + public System.Runtime.CompilerServices.ValueTaskAwaiter GetAwaiter() => throw null; + public override int GetHashCode() => throw null; + public bool IsCanceled { get => throw null; } + public bool IsCompleted { get => throw null; } + public bool IsCompletedSuccessfully { get => throw null; } + public bool IsFaulted { get => throw null; } + public static bool operator ==(System.Threading.Tasks.ValueTask left, System.Threading.Tasks.ValueTask right) => throw null; + public static bool operator !=(System.Threading.Tasks.ValueTask left, System.Threading.Tasks.ValueTask right) => throw null; + public System.Threading.Tasks.ValueTask Preserve() => throw null; + public TResult Result { get => throw null; } + public override string ToString() => throw null; + } + } + public static class Timeout + { + public static int Infinite; + public static System.TimeSpan InfiniteTimeSpan; + } + public sealed class Timer : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable + { + public static long ActiveCount { get => throw null; } + public bool Change(int dueTime, int period) => throw null; + public bool Change(long dueTime, long period) => throw null; + public bool Change(System.TimeSpan dueTime, System.TimeSpan period) => throw null; + public bool Change(uint dueTime, uint period) => throw null; + public Timer(System.Threading.TimerCallback callback) => throw null; + public Timer(System.Threading.TimerCallback callback, object state, int dueTime, int period) => throw null; + public Timer(System.Threading.TimerCallback callback, object state, long dueTime, long period) => throw null; + public Timer(System.Threading.TimerCallback callback, object state, System.TimeSpan dueTime, System.TimeSpan period) => throw null; + public Timer(System.Threading.TimerCallback callback, object state, uint dueTime, uint period) => throw null; + public void Dispose() => throw null; + public bool Dispose(System.Threading.WaitHandle notifyObject) => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + } + public delegate void TimerCallback(object state); + public abstract class WaitHandle : System.MarshalByRefObject, System.IDisposable + { + public virtual void Close() => throw null; + protected WaitHandle() => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool explicitDisposing) => throw null; + public virtual nint Handle { get => throw null; set { } } + protected static nint InvalidHandle; + public Microsoft.Win32.SafeHandles.SafeWaitHandle SafeWaitHandle { get => throw null; set { } } + public static bool SignalAndWait(System.Threading.WaitHandle toSignal, System.Threading.WaitHandle toWaitOn) => throw null; + public static bool SignalAndWait(System.Threading.WaitHandle toSignal, System.Threading.WaitHandle toWaitOn, int millisecondsTimeout, bool exitContext) => throw null; + public static bool SignalAndWait(System.Threading.WaitHandle toSignal, System.Threading.WaitHandle toWaitOn, System.TimeSpan timeout, bool exitContext) => throw null; + public static bool WaitAll(System.Threading.WaitHandle[] waitHandles) => throw null; + public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout) => throw null; + public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext) => throw null; + public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout) => throw null; + public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout, bool exitContext) => throw null; + public static int WaitAny(System.Threading.WaitHandle[] waitHandles) => throw null; + public static int WaitAny(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout) => throw null; + public static int WaitAny(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext) => throw null; + public static int WaitAny(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout) => throw null; + public static int WaitAny(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout, bool exitContext) => throw null; + public virtual bool WaitOne() => throw null; + public virtual bool WaitOne(int millisecondsTimeout) => throw null; + public virtual bool WaitOne(int millisecondsTimeout, bool exitContext) => throw null; + public virtual bool WaitOne(System.TimeSpan timeout) => throw null; + public virtual bool WaitOne(System.TimeSpan timeout, bool exitContext) => throw null; + public static int WaitTimeout; + } + public static partial class WaitHandleExtensions + { + public static Microsoft.Win32.SafeHandles.SafeWaitHandle GetSafeWaitHandle(this System.Threading.WaitHandle waitHandle) => throw null; + public static void SetSafeWaitHandle(this System.Threading.WaitHandle waitHandle, Microsoft.Win32.SafeHandles.SafeWaitHandle value) => throw null; + } + } public class ThreadStaticAttribute : System.Attribute { public ThreadStaticAttribute() => throw null; } - public struct TimeOnly : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable { - public static bool operator !=(System.TimeOnly left, System.TimeOnly right) => throw null; - public static System.TimeSpan operator -(System.TimeOnly t1, System.TimeOnly t2) => throw null; - public static bool operator <(System.TimeOnly left, System.TimeOnly right) => throw null; - public static bool operator <=(System.TimeOnly left, System.TimeOnly right) => throw null; - public static bool operator ==(System.TimeOnly left, System.TimeOnly right) => throw null; - public static bool operator >(System.TimeOnly left, System.TimeOnly right) => throw null; - public static bool operator >=(System.TimeOnly left, System.TimeOnly right) => throw null; public System.TimeOnly Add(System.TimeSpan value) => throw null; public System.TimeOnly Add(System.TimeSpan value, out int wrappedDays) => throw null; public System.TimeOnly AddHours(double value) => throw null; public System.TimeOnly AddHours(double value, out int wrappedDays) => throw null; public System.TimeOnly AddMinutes(double value) => throw null; public System.TimeOnly AddMinutes(double value, out int wrappedDays) => throw null; - public int CompareTo(System.TimeOnly value) => throw null; public int CompareTo(object value) => throw null; - public bool Equals(System.TimeOnly value) => throw null; + public int CompareTo(System.TimeOnly value) => throw null; + public TimeOnly(int hour, int minute) => throw null; + public TimeOnly(int hour, int minute, int second) => throw null; + public TimeOnly(int hour, int minute, int second, int millisecond) => throw null; + public TimeOnly(int hour, int minute, int second, int millisecond, int microsecond) => throw null; + public TimeOnly(long ticks) => throw null; public override bool Equals(object value) => throw null; + public bool Equals(System.TimeOnly value) => throw null; public static System.TimeOnly FromDateTime(System.DateTime dateTime) => throw null; public static System.TimeOnly FromTimeSpan(System.TimeSpan timeSpan) => throw null; public override int GetHashCode() => throw null; @@ -5114,29 +12027,30 @@ namespace System public static System.TimeOnly MaxValue { get => throw null; } public int Microsecond { get => throw null; } public int Millisecond { get => throw null; } - public static System.TimeOnly MinValue { get => throw null; } public int Minute { get => throw null; } + public static System.TimeOnly MinValue { get => throw null; } public int Nanosecond { get => throw null; } - public static System.TimeOnly Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.TimeOnly Parse(System.ReadOnlySpan s, System.IFormatProvider provider = default(System.IFormatProvider), System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; + public static bool operator ==(System.TimeOnly left, System.TimeOnly right) => throw null; + public static bool operator >(System.TimeOnly left, System.TimeOnly right) => throw null; + public static bool operator >=(System.TimeOnly left, System.TimeOnly right) => throw null; + public static bool operator !=(System.TimeOnly left, System.TimeOnly right) => throw null; + public static bool operator <(System.TimeOnly left, System.TimeOnly right) => throw null; + public static bool operator <=(System.TimeOnly left, System.TimeOnly right) => throw null; + public static System.TimeSpan operator -(System.TimeOnly t1, System.TimeOnly t2) => throw null; + static System.TimeOnly System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static System.TimeOnly Parse(System.ReadOnlySpan s, System.IFormatProvider provider = default(System.IFormatProvider), System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; public static System.TimeOnly Parse(string s) => throw null; - public static System.TimeOnly Parse(string s, System.IFormatProvider provider) => throw null; + static System.TimeOnly System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; public static System.TimeOnly Parse(string s, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; - public static System.TimeOnly ParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider = default(System.IFormatProvider), System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; - public static System.TimeOnly ParseExact(System.ReadOnlySpan s, string[] formats) => throw null; - public static System.TimeOnly ParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; - public static System.TimeOnly ParseExact(string s, string[] formats) => throw null; - public static System.TimeOnly ParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; + public static System.TimeOnly ParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider = default(System.IFormatProvider), System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; + public static System.TimeOnly ParseExact(System.ReadOnlySpan s, string[] formats) => throw null; + public static System.TimeOnly ParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; public static System.TimeOnly ParseExact(string s, string format) => throw null; public static System.TimeOnly ParseExact(string s, string format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; + public static System.TimeOnly ParseExact(string s, string[] formats) => throw null; + public static System.TimeOnly ParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style = default(System.Globalization.DateTimeStyles)) => throw null; public int Second { get => throw null; } - public System.Int64 Ticks { get => throw null; } - // Stub generator skipped constructor - public TimeOnly(int hour, int minute) => throw null; - public TimeOnly(int hour, int minute, int second) => throw null; - public TimeOnly(int hour, int minute, int second, int millisecond) => throw null; - public TimeOnly(int hour, int minute, int second, int millisecond, int microsecond) => throw null; - public TimeOnly(System.Int64 ticks) => throw null; + public long Ticks { get => throw null; } public string ToLongTimeString() => throw null; public string ToShortTimeString() => throw null; public override string ToString() => throw null; @@ -5144,92 +12058,97 @@ namespace System public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; public System.TimeSpan ToTimeSpan() => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.TimeOnly result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.TimeOnly result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.TimeOnly result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.TimeOnly result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.TimeOnly result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out System.TimeOnly result) => throw null; public static bool TryParse(string s, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.TimeOnly result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.TimeOnly result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.TimeOnly result) => throw null; public static bool TryParse(string s, out System.TimeOnly result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.TimeOnly result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, out System.TimeOnly result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.TimeOnly result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, out System.TimeOnly result) => throw null; - public static bool TryParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.TimeOnly result) => throw null; - public static bool TryParseExact(string s, string[] formats, out System.TimeOnly result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.TimeOnly result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan s, System.ReadOnlySpan format, out System.TimeOnly result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.TimeOnly result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, out System.TimeOnly result) => throw null; public static bool TryParseExact(string s, string format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.TimeOnly result) => throw null; public static bool TryParseExact(string s, string format, out System.TimeOnly result) => throw null; + public static bool TryParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.TimeOnly result) => throw null; + public static bool TryParseExact(string s, string[] formats, out System.TimeOnly result) => throw null; + } + public class TimeoutException : System.SystemException + { + public TimeoutException() => throw null; + protected TimeoutException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public TimeoutException(string message) => throw null; + public TimeoutException(string message, System.Exception innerException) => throw null; } - public struct TimeSpan : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable { - public static bool operator !=(System.TimeSpan t1, System.TimeSpan t2) => throw null; - public static System.TimeSpan operator *(System.TimeSpan timeSpan, double factor) => throw null; - public static System.TimeSpan operator *(double factor, System.TimeSpan timeSpan) => throw null; - public static System.TimeSpan operator +(System.TimeSpan t) => throw null; - public static System.TimeSpan operator +(System.TimeSpan t1, System.TimeSpan t2) => throw null; - public static System.TimeSpan operator -(System.TimeSpan t) => throw null; - public static System.TimeSpan operator -(System.TimeSpan t1, System.TimeSpan t2) => throw null; - public static double operator /(System.TimeSpan t1, System.TimeSpan t2) => throw null; - public static System.TimeSpan operator /(System.TimeSpan timeSpan, double divisor) => throw null; - public static bool operator <(System.TimeSpan t1, System.TimeSpan t2) => throw null; - public static bool operator <=(System.TimeSpan t1, System.TimeSpan t2) => throw null; - public static bool operator ==(System.TimeSpan t1, System.TimeSpan t2) => throw null; - public static bool operator >(System.TimeSpan t1, System.TimeSpan t2) => throw null; - public static bool operator >=(System.TimeSpan t1, System.TimeSpan t2) => throw null; public System.TimeSpan Add(System.TimeSpan ts) => throw null; public static int Compare(System.TimeSpan t1, System.TimeSpan t2) => throw null; - public int CompareTo(System.TimeSpan value) => throw null; public int CompareTo(object value) => throw null; + public int CompareTo(System.TimeSpan value) => throw null; + public TimeSpan(int hours, int minutes, int seconds) => throw null; + public TimeSpan(int days, int hours, int minutes, int seconds) => throw null; + public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds) => throw null; + public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds, int microseconds) => throw null; + public TimeSpan(long ticks) => throw null; public int Days { get => throw null; } - public double Divide(System.TimeSpan ts) => throw null; public System.TimeSpan Divide(double divisor) => throw null; + public double Divide(System.TimeSpan ts) => throw null; public System.TimeSpan Duration() => throw null; + public override bool Equals(object value) => throw null; public bool Equals(System.TimeSpan obj) => throw null; public static bool Equals(System.TimeSpan t1, System.TimeSpan t2) => throw null; - public override bool Equals(object value) => throw null; public static System.TimeSpan FromDays(double value) => throw null; public static System.TimeSpan FromHours(double value) => throw null; public static System.TimeSpan FromMicroseconds(double value) => throw null; public static System.TimeSpan FromMilliseconds(double value) => throw null; public static System.TimeSpan FromMinutes(double value) => throw null; public static System.TimeSpan FromSeconds(double value) => throw null; - public static System.TimeSpan FromTicks(System.Int64 value) => throw null; + public static System.TimeSpan FromTicks(long value) => throw null; public override int GetHashCode() => throw null; public int Hours { get => throw null; } public static System.TimeSpan MaxValue; public int Microseconds { get => throw null; } public int Milliseconds { get => throw null; } - public static System.TimeSpan MinValue; public int Minutes { get => throw null; } + public static System.TimeSpan MinValue; public System.TimeSpan Multiply(double factor) => throw null; public int Nanoseconds { get => throw null; } - public const System.Int64 NanosecondsPerTick = default; + public static long NanosecondsPerTick; public System.TimeSpan Negate() => throw null; - public static System.TimeSpan Parse(System.ReadOnlySpan input, System.IFormatProvider formatProvider = default(System.IFormatProvider)) => throw null; + public static System.TimeSpan operator +(System.TimeSpan t1, System.TimeSpan t2) => throw null; + public static System.TimeSpan operator /(System.TimeSpan timeSpan, double divisor) => throw null; + public static double operator /(System.TimeSpan t1, System.TimeSpan t2) => throw null; + public static bool operator ==(System.TimeSpan t1, System.TimeSpan t2) => throw null; + public static bool operator >(System.TimeSpan t1, System.TimeSpan t2) => throw null; + public static bool operator >=(System.TimeSpan t1, System.TimeSpan t2) => throw null; + public static bool operator !=(System.TimeSpan t1, System.TimeSpan t2) => throw null; + public static bool operator <(System.TimeSpan t1, System.TimeSpan t2) => throw null; + public static bool operator <=(System.TimeSpan t1, System.TimeSpan t2) => throw null; + public static System.TimeSpan operator *(double factor, System.TimeSpan timeSpan) => throw null; + public static System.TimeSpan operator *(System.TimeSpan timeSpan, double factor) => throw null; + public static System.TimeSpan operator -(System.TimeSpan t1, System.TimeSpan t2) => throw null; + public static System.TimeSpan operator -(System.TimeSpan t) => throw null; + public static System.TimeSpan operator +(System.TimeSpan t) => throw null; + static System.TimeSpan System.ISpanParsable.Parse(System.ReadOnlySpan input, System.IFormatProvider formatProvider = default(System.IFormatProvider)) => throw null; public static System.TimeSpan Parse(string s) => throw null; - public static System.TimeSpan Parse(string input, System.IFormatProvider formatProvider) => throw null; - public static System.TimeSpan ParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles = default(System.Globalization.TimeSpanStyles)) => throw null; - public static System.TimeSpan ParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles = default(System.Globalization.TimeSpanStyles)) => throw null; - public static System.TimeSpan ParseExact(string input, string[] formats, System.IFormatProvider formatProvider) => throw null; - public static System.TimeSpan ParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles) => throw null; + static System.TimeSpan System.IParsable.Parse(string input, System.IFormatProvider formatProvider) => throw null; + public static System.TimeSpan ParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles = default(System.Globalization.TimeSpanStyles)) => throw null; + public static System.TimeSpan ParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles = default(System.Globalization.TimeSpanStyles)) => throw null; public static System.TimeSpan ParseExact(string input, string format, System.IFormatProvider formatProvider) => throw null; public static System.TimeSpan ParseExact(string input, string format, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles) => throw null; + public static System.TimeSpan ParseExact(string input, string[] formats, System.IFormatProvider formatProvider) => throw null; + public static System.TimeSpan ParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles) => throw null; public int Seconds { get => throw null; } public System.TimeSpan Subtract(System.TimeSpan ts) => throw null; - public System.Int64 Ticks { get => throw null; } - public const System.Int64 TicksPerDay = default; - public const System.Int64 TicksPerHour = default; - public const System.Int64 TicksPerMicrosecond = default; - public const System.Int64 TicksPerMillisecond = default; - public const System.Int64 TicksPerMinute = default; - public const System.Int64 TicksPerSecond = default; - // Stub generator skipped constructor - public TimeSpan(int hours, int minutes, int seconds) => throw null; - public TimeSpan(int days, int hours, int minutes, int seconds) => throw null; - public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds) => throw null; - public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds, int microseconds) => throw null; - public TimeSpan(System.Int64 ticks) => throw null; + public long Ticks { get => throw null; } + public static long TicksPerDay; + public static long TicksPerHour; + public static long TicksPerMicrosecond; + public static long TicksPerMillisecond; + public static long TicksPerMinute; + public static long TicksPerSecond; public override string ToString() => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider formatProvider) => throw null; @@ -5240,24 +12159,24 @@ namespace System public double TotalMinutes { get => throw null; } public double TotalNanoseconds { get => throw null; } public double TotalSeconds { get => throw null; } - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider formatProvider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan input, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.TimeSpan result) => throw null; - public static bool TryParse(string input, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider formatProvider = default(System.IFormatProvider)) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan input, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out System.TimeSpan result) => throw null; + static bool System.IParsable.TryParse(string input, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; public static bool TryParse(string s, out System.TimeSpan result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles, out System.TimeSpan result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles, out System.TimeSpan result) => throw null; - public static bool TryParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; - public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles, out System.TimeSpan result) => throw null; - public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles, out System.TimeSpan result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan input, System.ReadOnlySpan format, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles, out System.TimeSpan result) => throw null; + public static bool TryParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; public static bool TryParseExact(string input, string format, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles, out System.TimeSpan result) => throw null; public static bool TryParseExact(string input, string format, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; + public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles, out System.TimeSpan result) => throw null; + public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; public static System.TimeSpan Zero; } - public abstract class TimeZone { + protected TimeZone() => throw null; public static System.TimeZone CurrentTimeZone { get => throw null; } public abstract string DaylightName { get; } public abstract System.Globalization.DaylightTime GetDaylightChanges(int year); @@ -5265,14 +12184,12 @@ namespace System public virtual bool IsDaylightSavingTime(System.DateTime time) => throw null; public static bool IsDaylightSavingTime(System.DateTime time, System.Globalization.DaylightTime daylightTimes) => throw null; public abstract string StandardName { get; } - protected TimeZone() => throw null; public virtual System.DateTime ToLocalTime(System.DateTime time) => throw null; public virtual System.DateTime ToUniversalTime(System.DateTime time) => throw null; } - - public class TimeZoneInfo : System.IEquatable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public sealed class TimeZoneInfo : System.IEquatable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { - public class AdjustmentRule : System.IEquatable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public sealed class AdjustmentRule : System.IEquatable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { public System.TimeSpan BaseUtcOffsetDelta { get => throw null; } public static System.TimeZoneInfo.AdjustmentRule CreateAdjustmentRule(System.DateTime dateStart, System.DateTime dateEnd, System.TimeSpan daylightDelta, System.TimeZoneInfo.TransitionTime daylightTransitionStart, System.TimeZoneInfo.TransitionTime daylightTransitionEnd) => throw null; @@ -5288,29 +12205,6 @@ namespace System void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; } - - - public struct TransitionTime : System.IEquatable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable - { - public static bool operator !=(System.TimeZoneInfo.TransitionTime t1, System.TimeZoneInfo.TransitionTime t2) => throw null; - public static bool operator ==(System.TimeZoneInfo.TransitionTime t1, System.TimeZoneInfo.TransitionTime t2) => throw null; - public static System.TimeZoneInfo.TransitionTime CreateFixedDateRule(System.DateTime timeOfDay, int month, int day) => throw null; - public static System.TimeZoneInfo.TransitionTime CreateFloatingDateRule(System.DateTime timeOfDay, int month, int week, System.DayOfWeek dayOfWeek) => throw null; - public int Day { get => throw null; } - public System.DayOfWeek DayOfWeek { get => throw null; } - public bool Equals(System.TimeZoneInfo.TransitionTime other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public bool IsFixedDateRule { get => throw null; } - public int Month { get => throw null; } - void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public System.DateTime TimeOfDay { get => throw null; } - // Stub generator skipped constructor - public int Week { get => throw null; } - } - - public System.TimeSpan BaseUtcOffset { get => throw null; } public static void ClearCachedData() => throw null; public static System.DateTime ConvertTime(System.DateTime dateTime, System.TimeZoneInfo destinationTimeZone) => throw null; @@ -5327,8 +12221,8 @@ namespace System public static System.TimeZoneInfo CreateCustomTimeZone(string id, System.TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, System.TimeZoneInfo.AdjustmentRule[] adjustmentRules, bool disableDaylightSavingTime) => throw null; public string DaylightName { get => throw null; } public string DisplayName { get => throw null; } - public bool Equals(System.TimeZoneInfo other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.TimeZoneInfo other) => throw null; public static System.TimeZoneInfo FindSystemTimeZoneById(string id) => throw null; public static System.TimeZoneInfo FromSerializedString(string source) => throw null; public System.TimeZoneInfo.AdjustmentRule[] GetAdjustmentRules() => throw null; @@ -5353,12 +12247,29 @@ namespace System public bool SupportsDaylightSavingTime { get => throw null; } public string ToSerializedString() => throw null; public override string ToString() => throw null; + public struct TransitionTime : System.IEquatable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + { + public static System.TimeZoneInfo.TransitionTime CreateFixedDateRule(System.DateTime timeOfDay, int month, int day) => throw null; + public static System.TimeZoneInfo.TransitionTime CreateFloatingDateRule(System.DateTime timeOfDay, int month, int week, System.DayOfWeek dayOfWeek) => throw null; + public int Day { get => throw null; } + public System.DayOfWeek DayOfWeek { get => throw null; } + public override bool Equals(object obj) => throw null; + public bool Equals(System.TimeZoneInfo.TransitionTime other) => throw null; + public override int GetHashCode() => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public bool IsFixedDateRule { get => throw null; } + public int Month { get => throw null; } + void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; + public static bool operator ==(System.TimeZoneInfo.TransitionTime t1, System.TimeZoneInfo.TransitionTime t2) => throw null; + public static bool operator !=(System.TimeZoneInfo.TransitionTime t1, System.TimeZoneInfo.TransitionTime t2) => throw null; + public System.DateTime TimeOfDay { get => throw null; } + public int Week { get => throw null; } + } public static bool TryConvertIanaIdToWindowsId(string ianaId, out string windowsId) => throw null; - public static bool TryConvertWindowsIdToIanaId(string windowsId, out string ianaId) => throw null; public static bool TryConvertWindowsIdToIanaId(string windowsId, string region, out string ianaId) => throw null; + public static bool TryConvertWindowsIdToIanaId(string windowsId, out string ianaId) => throw null; public static System.TimeZoneInfo Utc { get => throw null; } } - public class TimeZoneNotFoundException : System.Exception { public TimeZoneNotFoundException() => throw null; @@ -5366,35 +12277,126 @@ namespace System public TimeZoneNotFoundException(string message) => throw null; public TimeZoneNotFoundException(string message, System.Exception innerException) => throw null; } - - public class TimeoutException : System.SystemException - { - public TimeoutException() => throw null; - protected TimeoutException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public TimeoutException(string message) => throw null; - public TimeoutException(string message, System.Exception innerException) => throw null; - } - public static class Tuple { - public static System.Tuple> Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) => throw null; - public static System.Tuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; - public static System.Tuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => throw null; - public static System.Tuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => throw null; - public static System.Tuple Create(T1 item1, T2 item2, T3 item3, T4 item4) => throw null; - public static System.Tuple Create(T1 item1, T2 item2, T3 item3) => throw null; - public static System.Tuple Create(T1 item1, T2 item2) => throw null; public static System.Tuple Create(T1 item1) => throw null; + public static System.Tuple Create(T1 item1, T2 item2) => throw null; + public static System.Tuple Create(T1 item1, T2 item2, T3 item3) => throw null; + public static System.Tuple Create(T1 item1, T2 item2, T3 item3, T4 item4) => throw null; + public static System.Tuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => throw null; + public static System.Tuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => throw null; + public static System.Tuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; + public static System.Tuple> Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) => throw null; } - - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple { - int System.IComparable.CompareTo(object obj) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object obj) => throw null; + public Tuple(T1 item1) => throw null; public override bool Equals(object obj) => throw null; bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; public override int GetHashCode() => throw null; int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1 { get => throw null; } + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + { + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object obj) => throw null; + public Tuple(T1 item1, T2 item2) => throw null; + public override bool Equals(object obj) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1 { get => throw null; } + public T2 Item2 { get => throw null; } + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + { + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object obj) => throw null; + public Tuple(T1 item1, T2 item2, T3 item3) => throw null; + public override bool Equals(object obj) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1 { get => throw null; } + public T2 Item2 { get => throw null; } + public T3 Item3 { get => throw null; } + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + { + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object obj) => throw null; + public Tuple(T1 item1, T2 item2, T3 item3, T4 item4) => throw null; + public override bool Equals(object obj) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1 { get => throw null; } + public T2 Item2 { get => throw null; } + public T3 Item3 { get => throw null; } + public T4 Item4 { get => throw null; } + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + { + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object obj) => throw null; + public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => throw null; + public override bool Equals(object obj) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1 { get => throw null; } + public T2 Item2 { get => throw null; } + public T3 Item3 { get => throw null; } + public T4 Item4 { get => throw null; } + public T5 Item5 { get => throw null; } + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + { + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object obj) => throw null; + public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => throw null; + public override bool Equals(object obj) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1 { get => throw null; } + public T2 Item2 { get => throw null; } + public T3 Item3 { get => throw null; } + public T4 Item4 { get => throw null; } + public T5 Item5 { get => throw null; } + public T6 Item6 { get => throw null; } + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + { + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object obj) => throw null; + public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; + public override bool Equals(object obj) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } public T1 Item1 { get => throw null; } public T2 Item2 { get => throw null; } public T3 Item3 { get => throw null; } @@ -5402,229 +12404,117 @@ namespace System public T5 Item5 { get => throw null; } public T6 Item6 { get => throw null; } public T7 Item7 { get => throw null; } + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + { + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object obj) => throw null; + public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest rest) => throw null; + public override bool Equals(object obj) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1 { get => throw null; } + public T2 Item2 { get => throw null; } + public T3 Item3 { get => throw null; } + public T4 Item4 { get => throw null; } + public T5 Item5 { get => throw null; } + public T6 Item6 { get => throw null; } + public T7 Item7 { get => throw null; } int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public TRest Rest { get => throw null; } public override string ToString() => throw null; - public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest rest) => throw null; } - - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + public static partial class TupleExtensions { - int System.IComparable.CompareTo(object obj) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1 { get => throw null; } - public T2 Item2 { get => throw null; } - public T3 Item3 { get => throw null; } - public T4 Item4 { get => throw null; } - public T5 Item5 { get => throw null; } - public T6 Item6 { get => throw null; } - public T7 Item7 { get => throw null; } - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; - } - - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple - { - int System.IComparable.CompareTo(object obj) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1 { get => throw null; } - public T2 Item2 { get => throw null; } - public T3 Item3 { get => throw null; } - public T4 Item4 { get => throw null; } - public T5 Item5 { get => throw null; } - public T6 Item6 { get => throw null; } - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => throw null; - } - - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple - { - int System.IComparable.CompareTo(object obj) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1 { get => throw null; } - public T2 Item2 { get => throw null; } - public T3 Item3 { get => throw null; } - public T4 Item4 { get => throw null; } - public T5 Item5 { get => throw null; } - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => throw null; - } - - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple - { - int System.IComparable.CompareTo(object obj) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1 { get => throw null; } - public T2 Item2 { get => throw null; } - public T3 Item3 { get => throw null; } - public T4 Item4 { get => throw null; } - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - public Tuple(T1 item1, T2 item2, T3 item3, T4 item4) => throw null; - } - - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple - { - int System.IComparable.CompareTo(object obj) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1 { get => throw null; } - public T2 Item2 { get => throw null; } - public T3 Item3 { get => throw null; } - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - public Tuple(T1 item1, T2 item2, T3 item3) => throw null; - } - - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple - { - int System.IComparable.CompareTo(object obj) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1 { get => throw null; } - public T2 Item2 { get => throw null; } - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - public Tuple(T1 item1, T2 item2) => throw null; - } - - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple - { - int System.IComparable.CompareTo(object obj) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1 { get => throw null; } - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - public Tuple(T1 item1) => throw null; - } - - public static class TupleExtensions - { - public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18, out T19 item19, out T20 item20, out T21 item21) => throw null; - public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18, out T19 item19, out T20 item20) => throw null; - public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18, out T19 item19) => throw null; - public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18) => throw null; - public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17) => throw null; - public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16) => throw null; - public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15) => throw null; - public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14) => throw null; - public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13) => throw null; - public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12) => throw null; - public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11) => throw null; - public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10) => throw null; - public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9) => throw null; - public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8) => throw null; - public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7) => throw null; - public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6) => throw null; - public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5) => throw null; - public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2, out T3 item3, out T4 item4) => throw null; - public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2, out T3 item3) => throw null; - public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2) => throw null; public static void Deconstruct(this System.Tuple value, out T1 item1) => throw null; - public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) value) => throw null; - public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) value) => throw null; - public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) value) => throw null; - public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) value) => throw null; - public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) value) => throw null; - public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) value) => throw null; - public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) value) => throw null; - public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) value) => throw null; - public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) value) => throw null; - public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) value) => throw null; - public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) value) => throw null; - public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) value) => throw null; - public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9) value) => throw null; - public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8) value) => throw null; - public static System.Tuple ToTuple(this (T1, T2, T3, T4, T5, T6, T7) value) => throw null; - public static System.Tuple ToTuple(this (T1, T2, T3, T4, T5, T6) value) => throw null; - public static System.Tuple ToTuple(this (T1, T2, T3, T4, T5) value) => throw null; - public static System.Tuple ToTuple(this (T1, T2, T3, T4) value) => throw null; - public static System.Tuple ToTuple(this (T1, T2, T3) value) => throw null; - public static System.Tuple ToTuple(this (T1, T2) value) => throw null; + public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10) => throw null; + public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11) => throw null; + public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12) => throw null; + public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13) => throw null; + public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14) => throw null; + public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15) => throw null; + public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16) => throw null; + public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17) => throw null; + public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18) => throw null; + public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18, out T19 item19) => throw null; + public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2) => throw null; + public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18, out T19 item19, out T20 item20) => throw null; + public static void Deconstruct(this System.Tuple>> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18, out T19 item19, out T20 item20, out T21 item21) => throw null; + public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2, out T3 item3) => throw null; + public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2, out T3 item3, out T4 item4) => throw null; + public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5) => throw null; + public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6) => throw null; + public static void Deconstruct(this System.Tuple value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7) => throw null; + public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8) => throw null; + public static void Deconstruct(this System.Tuple> value, out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9) => throw null; public static System.Tuple ToTuple(this System.ValueTuple value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) ToValueTuple(this System.Tuple>> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) ToValueTuple(this System.Tuple>> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) ToValueTuple(this System.Tuple>> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) ToValueTuple(this System.Tuple>> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) ToValueTuple(this System.Tuple>> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) ToValueTuple(this System.Tuple>> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) ToValueTuple(this System.Tuple>> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) ToValueTuple(this System.Tuple> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) ToValueTuple(this System.Tuple> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) ToValueTuple(this System.Tuple> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) ToValueTuple(this System.Tuple> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) ToValueTuple(this System.Tuple> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8, T9) ToValueTuple(this System.Tuple> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8) ToValueTuple(this System.Tuple> value) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7) ToValueTuple(this System.Tuple value) => throw null; - public static (T1, T2, T3, T4, T5, T6) ToValueTuple(this System.Tuple value) => throw null; - public static (T1, T2, T3, T4, T5) ToValueTuple(this System.Tuple value) => throw null; - public static (T1, T2, T3, T4) ToValueTuple(this System.Tuple value) => throw null; - public static (T1, T2, T3) ToValueTuple(this System.Tuple value) => throw null; - public static (T1, T2) ToValueTuple(this System.Tuple value) => throw null; + public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) value) => throw null; + public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) value) => throw null; + public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) value) => throw null; + public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) value) => throw null; + public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) value) => throw null; + public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) value) => throw null; + public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) value) => throw null; + public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) value) => throw null; + public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) value) => throw null; + public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) value) => throw null; + public static System.Tuple ToTuple(this (T1, T2) value) => throw null; + public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) value) => throw null; + public static System.Tuple>> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) value) => throw null; + public static System.Tuple ToTuple(this (T1, T2, T3) value) => throw null; + public static System.Tuple ToTuple(this (T1, T2, T3, T4) value) => throw null; + public static System.Tuple ToTuple(this (T1, T2, T3, T4, T5) value) => throw null; + public static System.Tuple ToTuple(this (T1, T2, T3, T4, T5, T6) value) => throw null; + public static System.Tuple ToTuple(this (T1, T2, T3, T4, T5, T6, T7) value) => throw null; + public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8) value) => throw null; + public static System.Tuple> ToTuple(this (T1, T2, T3, T4, T5, T6, T7, T8, T9) value) => throw null; public static System.ValueTuple ToValueTuple(this System.Tuple value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) ToValueTuple(this System.Tuple> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) ToValueTuple(this System.Tuple> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) ToValueTuple(this System.Tuple> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) ToValueTuple(this System.Tuple> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) ToValueTuple(this System.Tuple> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) ToValueTuple(this System.Tuple>> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) ToValueTuple(this System.Tuple>> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) ToValueTuple(this System.Tuple>> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) ToValueTuple(this System.Tuple>> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) ToValueTuple(this System.Tuple>> value) => throw null; + public static (T1, T2) ToValueTuple(this System.Tuple value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) ToValueTuple(this System.Tuple>> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) ToValueTuple(this System.Tuple>> value) => throw null; + public static (T1, T2, T3) ToValueTuple(this System.Tuple value) => throw null; + public static (T1, T2, T3, T4) ToValueTuple(this System.Tuple value) => throw null; + public static (T1, T2, T3, T4, T5) ToValueTuple(this System.Tuple value) => throw null; + public static (T1, T2, T3, T4, T5, T6) ToValueTuple(this System.Tuple value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7) ToValueTuple(this System.Tuple value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8) ToValueTuple(this System.Tuple> value) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8, T9) ToValueTuple(this System.Tuple> value) => throw null; } - public abstract class Type : System.Reflection.MemberInfo, System.Reflection.IReflect { - public static bool operator !=(System.Type left, System.Type right) => throw null; - public static bool operator ==(System.Type left, System.Type right) => throw null; public abstract System.Reflection.Assembly Assembly { get; } public abstract string AssemblyQualifiedName { get; } public System.Reflection.TypeAttributes Attributes { get => throw null; } public abstract System.Type BaseType { get; } public virtual bool ContainsGenericParameters { get => throw null; } + protected Type() => throw null; public virtual System.Reflection.MethodBase DeclaringMethod { get => throw null; } public override System.Type DeclaringType { get => throw null; } public static System.Reflection.Binder DefaultBinder { get => throw null; } - public static System.Char Delimiter; + public static char Delimiter; public static System.Type[] EmptyTypes; - public virtual bool Equals(System.Type o) => throw null; public override bool Equals(object o) => throw null; + public virtual bool Equals(System.Type o) => throw null; public static System.Reflection.MemberFilter FilterAttribute; public static System.Reflection.MemberFilter FilterName; public static System.Reflection.MemberFilter FilterNameIgnoreCase; public virtual System.Type[] FindInterfaces(System.Reflection.TypeFilter filter, object filterCriteria) => throw null; public virtual System.Reflection.MemberInfo[] FindMembers(System.Reflection.MemberTypes memberType, System.Reflection.BindingFlags bindingAttr, System.Reflection.MemberFilter filter, object filterCriteria) => throw null; public abstract string FullName { get; } - public abstract System.Guid GUID { get; } public virtual System.Reflection.GenericParameterAttributes GenericParameterAttributes { get => throw null; } public virtual int GenericParameterPosition { get => throw null; } public virtual System.Type[] GenericTypeArguments { get => throw null; } @@ -5663,22 +12553,22 @@ namespace System public System.Reflection.MemberInfo[] GetMember(string name) => throw null; public virtual System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.BindingFlags bindingAttr) => throw null; public virtual System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.MemberTypes type, System.Reflection.BindingFlags bindingAttr) => throw null; - public virtual System.Reflection.MemberInfo GetMemberWithSameMetadataDefinitionAs(System.Reflection.MemberInfo member) => throw null; public System.Reflection.MemberInfo[] GetMembers() => throw null; public abstract System.Reflection.MemberInfo[] GetMembers(System.Reflection.BindingFlags bindingAttr); + public virtual System.Reflection.MemberInfo GetMemberWithSameMetadataDefinitionAs(System.Reflection.MemberInfo member) => throw null; public System.Reflection.MethodInfo GetMethod(string name) => throw null; + public System.Reflection.MethodInfo GetMethod(string name, int genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public System.Reflection.MethodInfo GetMethod(string name, int genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public System.Reflection.MethodInfo GetMethod(string name, int genericParameterCount, System.Type[] types) => throw null; + public System.Reflection.MethodInfo GetMethod(string name, int genericParameterCount, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; public System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr) => throw null; public System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; public System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; public System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Type[] types) => throw null; public System.Reflection.MethodInfo GetMethod(string name, System.Type[] types) => throw null; public System.Reflection.MethodInfo GetMethod(string name, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; - public System.Reflection.MethodInfo GetMethod(string name, int genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; - public System.Reflection.MethodInfo GetMethod(string name, int genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; - public System.Reflection.MethodInfo GetMethod(string name, int genericParameterCount, System.Type[] types) => throw null; - public System.Reflection.MethodInfo GetMethod(string name, int genericParameterCount, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; - protected abstract System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); protected virtual System.Reflection.MethodInfo GetMethodImpl(string name, int genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + protected abstract System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); public System.Reflection.MethodInfo[] GetMethods() => throw null; public abstract System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingAttr); public System.Type GetNestedType(string name) => throw null; @@ -5697,11 +12587,11 @@ namespace System protected abstract System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); public System.Type GetType() => throw null; public static System.Type GetType(string typeName) => throw null; + public static System.Type GetType(string typeName, bool throwOnError) => throw null; + public static System.Type GetType(string typeName, bool throwOnError, bool ignoreCase) => throw null; public static System.Type GetType(string typeName, System.Func assemblyResolver, System.Func typeResolver) => throw null; public static System.Type GetType(string typeName, System.Func assemblyResolver, System.Func typeResolver, bool throwOnError) => throw null; public static System.Type GetType(string typeName, System.Func assemblyResolver, System.Func typeResolver, bool throwOnError, bool ignoreCase) => throw null; - public static System.Type GetType(string typeName, bool throwOnError) => throw null; - public static System.Type GetType(string typeName, bool throwOnError, bool ignoreCase) => throw null; public static System.Type[] GetTypeArray(object[] args) => throw null; public static System.TypeCode GetTypeCode(System.Type type) => throw null; protected virtual System.TypeCode GetTypeCodeImpl() => throw null; @@ -5715,6 +12605,7 @@ namespace System public static System.Type GetTypeFromProgID(string progID, string server) => throw null; public static System.Type GetTypeFromProgID(string progID, string server, bool throwOnError) => throw null; public static System.RuntimeTypeHandle GetTypeHandle(object o) => throw null; + public abstract System.Guid GUID { get; } public bool HasElementType { get => throw null; } protected abstract bool HasElementTypeImpl(); public object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args) => throw null; @@ -5731,9 +12622,9 @@ namespace System public bool IsByRef { get => throw null; } protected abstract bool IsByRefImpl(); public virtual bool IsByRefLike { get => throw null; } + public bool IsClass { get => throw null; } public bool IsCOMObject { get => throw null; } protected abstract bool IsCOMObjectImpl(); - public bool IsClass { get => throw null; } public virtual bool IsConstructedGenericType { get => throw null; } public bool IsContextful { get => throw null; } protected virtual bool IsContextfulImpl() => throw null; @@ -5755,8 +12646,8 @@ namespace System public bool IsNested { get => throw null; } public bool IsNestedAssembly { get => throw null; } public bool IsNestedFamANDAssem { get => throw null; } - public bool IsNestedFamORAssem { get => throw null; } public bool IsNestedFamily { get => throw null; } + public bool IsNestedFamORAssem { get => throw null; } public bool IsNestedPrivate { get => throw null; } public bool IsNestedPublic { get => throw null; } public bool IsNotPublic { get => throw null; } @@ -5765,7 +12656,6 @@ namespace System public bool IsPrimitive { get => throw null; } protected abstract bool IsPrimitiveImpl(); public bool IsPublic { get => throw null; } - public virtual bool IsSZArray { get => throw null; } public bool IsSealed { get => throw null; } public virtual bool IsSecurityCritical { get => throw null; } public virtual bool IsSecuritySafeCritical { get => throw null; } @@ -5774,6 +12664,7 @@ namespace System public virtual bool IsSignatureType { get => throw null; } public bool IsSpecialName { get => throw null; } public virtual bool IsSubclassOf(System.Type c) => throw null; + public virtual bool IsSZArray { get => throw null; } public virtual bool IsTypeDefinition { get => throw null; } public bool IsUnicodeClass { get => throw null; } public bool IsValueType { get => throw null; } @@ -5791,16 +12682,16 @@ namespace System public static object Missing; public abstract System.Reflection.Module Module { get; } public abstract string Namespace { get; } + public static bool operator ==(System.Type left, System.Type right) => throw null; + public static bool operator !=(System.Type left, System.Type right) => throw null; public override System.Type ReflectedType { get => throw null; } public static System.Type ReflectionOnlyGetType(string typeName, bool throwIfNotFound, bool ignoreCase) => throw null; public virtual System.Runtime.InteropServices.StructLayoutAttribute StructLayoutAttribute { get => throw null; } public override string ToString() => throw null; - protected Type() => throw null; public virtual System.RuntimeTypeHandle TypeHandle { get => throw null; } public System.Reflection.ConstructorInfo TypeInitializer { get => throw null; } public abstract System.Type UnderlyingSystemType { get; } } - public class TypeAccessException : System.TypeLoadException { public TypeAccessException() => throw null; @@ -5808,55 +12699,27 @@ namespace System public TypeAccessException(string message) => throw null; public TypeAccessException(string message, System.Exception inner) => throw null; } - - public enum TypeCode : int + public enum TypeCode { - Boolean = 3, - Byte = 6, - Char = 4, - DBNull = 2, - DateTime = 16, - Decimal = 15, - Double = 14, Empty = 0, - Int16 = 7, - Int32 = 9, - Int64 = 11, Object = 1, + DBNull = 2, + Boolean = 3, + Char = 4, SByte = 5, - Single = 13, - String = 18, + Byte = 6, + Int16 = 7, UInt16 = 8, + Int32 = 9, UInt32 = 10, + Int64 = 11, UInt64 = 12, + Single = 13, + Double = 14, + Decimal = 15, + DateTime = 16, + String = 18, } - - public class TypeInitializationException : System.SystemException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public TypeInitializationException(string fullTypeName, System.Exception innerException) => throw null; - public string TypeName { get => throw null; } - } - - public class TypeLoadException : System.SystemException, System.Runtime.Serialization.ISerializable - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } - public TypeLoadException() => throw null; - protected TypeLoadException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public TypeLoadException(string message) => throw null; - public TypeLoadException(string message, System.Exception inner) => throw null; - public string TypeName { get => throw null; } - } - - public class TypeUnloadedException : System.SystemException - { - public TypeUnloadedException() => throw null; - protected TypeUnloadedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public TypeUnloadedException(string message) => throw null; - public TypeUnloadedException(string message, System.Exception innerException) => throw null; - } - public struct TypedReference { public override bool Equals(object o) => throw null; @@ -5866,710 +12729,721 @@ namespace System public static void SetTypedReference(System.TypedReference target, object value) => throw null; public static System.RuntimeTypeHandle TargetTypeToken(System.TypedReference value) => throw null; public static object ToObject(System.TypedReference value) => throw null; - // Stub generator skipped constructor } - - public struct UInt128 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber + public sealed class TypeInitializationException : System.SystemException { - static bool System.Numerics.IEqualityOperators.operator !=(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IModulusOperators.operator %(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IBitwiseOperators.operator &(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IMultiplyOperators.operator *(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IUnaryPlusOperators.operator +(System.UInt128 value) => throw null; - static System.UInt128 System.Numerics.IAdditionOperators.operator +(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IIncrementOperators.operator ++(System.UInt128 value) => throw null; - static System.UInt128 System.Numerics.IUnaryNegationOperators.operator -(System.UInt128 value) => throw null; - static System.UInt128 System.Numerics.ISubtractionOperators.operator -(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IDecrementOperators.operator --(System.UInt128 value) => throw null; - static System.UInt128 System.Numerics.IDivisionOperators.operator /(System.UInt128 left, System.UInt128 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IShiftOperators.operator <<(System.UInt128 value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.UInt128 left, System.UInt128 right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.UInt128 left, System.UInt128 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.UInt128 left, System.UInt128 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IShiftOperators.operator >>(System.UInt128 value, int shiftAmount) => throw null; - static System.UInt128 System.Numerics.IShiftOperators.operator >>>(System.UInt128 value, int shiftAmount) => throw null; - public static System.UInt128 Abs(System.UInt128 value) => throw null; + public TypeInitializationException(string fullTypeName, System.Exception innerException) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string TypeName { get => throw null; } + } + public class TypeLoadException : System.SystemException, System.Runtime.Serialization.ISerializable + { + public TypeLoadException() => throw null; + protected TypeLoadException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public TypeLoadException(string message) => throw null; + public TypeLoadException(string message, System.Exception inner) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } + public string TypeName { get => throw null; } + } + public class TypeUnloadedException : System.SystemException + { + public TypeUnloadedException() => throw null; + protected TypeUnloadedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public TypeUnloadedException(string message) => throw null; + public TypeUnloadedException(string message, System.Exception innerException) => throw null; + } + public struct UInt128 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber + { + static System.UInt128 System.Numerics.INumberBase.Abs(System.UInt128 value) => throw null; static System.UInt128 System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } static System.UInt128 System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.UInt128 Clamp(System.UInt128 value, System.UInt128 min, System.UInt128 max) => throw null; - public int CompareTo(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.INumber.Clamp(System.UInt128 value, System.UInt128 min, System.UInt128 max) => throw null; public int CompareTo(object value) => throw null; - public static System.UInt128 CopySign(System.UInt128 value, System.UInt128 sign) => throw null; + public int CompareTo(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.INumber.CopySign(System.UInt128 value, System.UInt128 sign) => throw null; static System.UInt128 System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; static System.UInt128 System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; static System.UInt128 System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.UInt128, System.UInt128) DivRem(System.UInt128 left, System.UInt128 right) => throw null; - public bool Equals(System.UInt128 other) => throw null; + public UInt128(ulong upper, ulong lower) => throw null; + static (System.UInt128 Quotient, System.UInt128 Remainder) System.Numerics.IBinaryInteger.DivRem(System.UInt128 left, System.UInt128 right) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.UInt128 other) => throw null; int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; - public static bool IsCanonical(System.UInt128 value) => throw null; - public static bool IsComplexNumber(System.UInt128 value) => throw null; - public static bool IsEvenInteger(System.UInt128 value) => throw null; - public static bool IsFinite(System.UInt128 value) => throw null; - public static bool IsImaginaryNumber(System.UInt128 value) => throw null; - public static bool IsInfinity(System.UInt128 value) => throw null; - public static bool IsInteger(System.UInt128 value) => throw null; - public static bool IsNaN(System.UInt128 value) => throw null; - public static bool IsNegative(System.UInt128 value) => throw null; - public static bool IsNegativeInfinity(System.UInt128 value) => throw null; - public static bool IsNormal(System.UInt128 value) => throw null; - public static bool IsOddInteger(System.UInt128 value) => throw null; - public static bool IsPositive(System.UInt128 value) => throw null; - public static bool IsPositiveInfinity(System.UInt128 value) => throw null; - public static bool IsPow2(System.UInt128 value) => throw null; - public static bool IsRealNumber(System.UInt128 value) => throw null; - public static bool IsSubnormal(System.UInt128 value) => throw null; - public static bool IsZero(System.UInt128 value) => throw null; - public static System.UInt128 LeadingZeroCount(System.UInt128 value) => throw null; - public static System.UInt128 Log2(System.UInt128 value) => throw null; - public static System.UInt128 Max(System.UInt128 x, System.UInt128 y) => throw null; - public static System.UInt128 MaxMagnitude(System.UInt128 x, System.UInt128 y) => throw null; - public static System.UInt128 MaxMagnitudeNumber(System.UInt128 x, System.UInt128 y) => throw null; - public static System.UInt128 MaxNumber(System.UInt128 x, System.UInt128 y) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(System.UInt128 value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(System.UInt128 value) => throw null; + static bool System.Numerics.INumberBase.IsZero(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IBinaryInteger.LeadingZeroCount(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IBinaryNumber.Log2(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.INumber.Max(System.UInt128 x, System.UInt128 y) => throw null; + static System.UInt128 System.Numerics.INumberBase.MaxMagnitude(System.UInt128 x, System.UInt128 y) => throw null; + static System.UInt128 System.Numerics.INumberBase.MaxMagnitudeNumber(System.UInt128 x, System.UInt128 y) => throw null; + static System.UInt128 System.Numerics.INumber.MaxNumber(System.UInt128 x, System.UInt128 y) => throw null; static System.UInt128 System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.UInt128 Min(System.UInt128 x, System.UInt128 y) => throw null; - public static System.UInt128 MinMagnitude(System.UInt128 x, System.UInt128 y) => throw null; - public static System.UInt128 MinMagnitudeNumber(System.UInt128 x, System.UInt128 y) => throw null; - public static System.UInt128 MinNumber(System.UInt128 x, System.UInt128 y) => throw null; + static System.UInt128 System.Numerics.INumber.Min(System.UInt128 x, System.UInt128 y) => throw null; + static System.UInt128 System.Numerics.INumberBase.MinMagnitude(System.UInt128 x, System.UInt128 y) => throw null; + static System.UInt128 System.Numerics.INumberBase.MinMagnitudeNumber(System.UInt128 x, System.UInt128 y) => throw null; + static System.UInt128 System.Numerics.INumber.MinNumber(System.UInt128 x, System.UInt128 y) => throw null; static System.UInt128 System.Numerics.IMinMaxValue.MinValue { get => throw null; } static System.UInt128 System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static System.UInt128 System.Numerics.INumberBase.One { get => throw null; } - public static System.UInt128 Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.UInt128 Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.UInt128 System.Numerics.IAdditionOperators.operator +(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IBitwiseOperators.operator &(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IBitwiseOperators.operator |(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IAdditionOperators.operator checked +(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IDecrementOperators.operator checked --(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IDivisionOperators.operator checked /(System.UInt128 left, System.UInt128 right) => throw null; + public static explicit operator checked System.UInt128(double value) => throw null; + public static explicit operator checked System.UInt128(short value) => throw null; + public static explicit operator checked System.UInt128(int value) => throw null; + public static explicit operator checked System.UInt128(long value) => throw null; + public static explicit operator checked System.UInt128(nint value) => throw null; + public static explicit operator checked System.UInt128(sbyte value) => throw null; + public static explicit operator checked System.UInt128(float value) => throw null; + public static explicit operator checked byte(System.UInt128 value) => throw null; + public static explicit operator checked char(System.UInt128 value) => throw null; + public static explicit operator checked short(System.UInt128 value) => throw null; + public static explicit operator checked int(System.UInt128 value) => throw null; + public static explicit operator checked long(System.UInt128 value) => throw null; + public static explicit operator checked System.Int128(System.UInt128 value) => throw null; + public static explicit operator checked nint(System.UInt128 value) => throw null; + public static explicit operator checked sbyte(System.UInt128 value) => throw null; + public static explicit operator checked ushort(System.UInt128 value) => throw null; + public static explicit operator checked uint(System.UInt128 value) => throw null; + public static explicit operator checked ulong(System.UInt128 value) => throw null; + public static explicit operator checked nuint(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IIncrementOperators.operator checked ++(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IMultiplyOperators.operator checked *(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.ISubtractionOperators.operator checked -(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IUnaryNegationOperators.operator checked -(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IDecrementOperators.operator --(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IDivisionOperators.operator /(System.UInt128 left, System.UInt128 right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IBitwiseOperators.operator ^(System.UInt128 left, System.UInt128 right) => throw null; + public static explicit operator System.UInt128(decimal value) => throw null; + public static explicit operator System.UInt128(double value) => throw null; + public static explicit operator System.UInt128(short value) => throw null; + public static explicit operator System.UInt128(int value) => throw null; + public static explicit operator System.UInt128(long value) => throw null; + public static explicit operator System.UInt128(nint value) => throw null; + public static explicit operator System.UInt128(sbyte value) => throw null; + public static explicit operator System.UInt128(float value) => throw null; + public static explicit operator byte(System.UInt128 value) => throw null; + public static explicit operator char(System.UInt128 value) => throw null; + public static explicit operator decimal(System.UInt128 value) => throw null; + public static explicit operator double(System.UInt128 value) => throw null; + public static explicit operator System.Half(System.UInt128 value) => throw null; + public static explicit operator System.Int128(System.UInt128 value) => throw null; + public static explicit operator short(System.UInt128 value) => throw null; + public static explicit operator int(System.UInt128 value) => throw null; + public static explicit operator long(System.UInt128 value) => throw null; + public static explicit operator nint(System.UInt128 value) => throw null; + public static explicit operator sbyte(System.UInt128 value) => throw null; + public static explicit operator float(System.UInt128 value) => throw null; + public static explicit operator ushort(System.UInt128 value) => throw null; + public static explicit operator uint(System.UInt128 value) => throw null; + public static explicit operator ulong(System.UInt128 value) => throw null; + public static explicit operator nuint(System.UInt128 value) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(System.UInt128 left, System.UInt128 right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(System.UInt128 left, System.UInt128 right) => throw null; + public static implicit operator System.UInt128(byte value) => throw null; + public static implicit operator System.UInt128(char value) => throw null; + public static implicit operator System.UInt128(ushort value) => throw null; + public static implicit operator System.UInt128(uint value) => throw null; + public static implicit operator System.UInt128(ulong value) => throw null; + public static implicit operator System.UInt128(nuint value) => throw null; + static System.UInt128 System.Numerics.IIncrementOperators.operator ++(System.UInt128 value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IShiftOperators.operator <<(System.UInt128 value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(System.UInt128 left, System.UInt128 right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IModulusOperators.operator %(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IMultiplyOperators.operator *(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IBitwiseOperators.operator ~(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IShiftOperators.operator >>(System.UInt128 value, int shiftAmount) => throw null; + static System.UInt128 System.Numerics.ISubtractionOperators.operator -(System.UInt128 left, System.UInt128 right) => throw null; + static System.UInt128 System.Numerics.IUnaryNegationOperators.operator -(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IUnaryPlusOperators.operator +(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IShiftOperators.operator >>>(System.UInt128 value, int shiftAmount) => throw null; + static System.UInt128 System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static System.UInt128 System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; public static System.UInt128 Parse(string s) => throw null; - public static System.UInt128 Parse(string s, System.IFormatProvider provider) => throw null; public static System.UInt128 Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.UInt128 Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.UInt128 PopCount(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static System.UInt128 System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static System.UInt128 System.Numerics.IBinaryInteger.PopCount(System.UInt128 value) => throw null; static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.UInt128 RotateLeft(System.UInt128 value, int rotateAmount) => throw null; - public static System.UInt128 RotateRight(System.UInt128 value, int rotateAmount) => throw null; - public static int Sign(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IBinaryInteger.RotateLeft(System.UInt128 value, int rotateAmount) => throw null; + static System.UInt128 System.Numerics.IBinaryInteger.RotateRight(System.UInt128 value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(System.UInt128 value) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; - public static System.UInt128 TrailingZeroCount(System.UInt128 value) => throw null; + static System.UInt128 System.Numerics.IBinaryInteger.TrailingZeroCount(System.UInt128 value) => throw null; static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.UInt128 result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.UInt128 result) => throw null; static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.UInt128 result) => throw null; static bool System.Numerics.INumberBase.TryConvertToChecked(System.UInt128 value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToSaturating(System.UInt128 value, out TOther result) => throw null; static bool System.Numerics.INumberBase.TryConvertToTruncating(System.UInt128 value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.UInt128 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UInt128 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.UInt128 result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.UInt128 result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UInt128 result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UInt128 result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.UInt128 result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out System.UInt128 result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UInt128 result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.UInt128 result) => throw null; public static bool TryParse(string s, out System.UInt128 result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UInt128 value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UInt128 value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - // Stub generator skipped constructor - public UInt128(System.UInt64 upper, System.UInt64 lower) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UInt128 value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UInt128 value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static System.UInt128 System.Numerics.INumberBase.Zero { get => throw null; } - static System.UInt128 System.Numerics.IBitwiseOperators.operator ^(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IMultiplyOperators.operator checked *(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IAdditionOperators.operator checked +(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IIncrementOperators.operator checked ++(System.UInt128 value) => throw null; - static System.UInt128 System.Numerics.IUnaryNegationOperators.operator checked -(System.UInt128 value) => throw null; - static System.UInt128 System.Numerics.ISubtractionOperators.operator checked -(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IDecrementOperators.operator checked --(System.UInt128 value) => throw null; - static System.UInt128 System.Numerics.IDivisionOperators.operator checked /(System.UInt128 left, System.UInt128 right) => throw null; - public static explicit operator checked System.UInt128(System.IntPtr value) => throw null; - public static explicit operator checked System.Byte(System.UInt128 value) => throw null; - public static explicit operator checked System.Char(System.UInt128 value) => throw null; - public static explicit operator checked System.Int128(System.UInt128 value) => throw null; - public static explicit operator checked System.Int16(System.UInt128 value) => throw null; - public static explicit operator checked System.Int64(System.UInt128 value) => throw null; - public static explicit operator checked System.IntPtr(System.UInt128 value) => throw null; - public static explicit operator checked System.SByte(System.UInt128 value) => throw null; - public static explicit operator checked System.UInt16(System.UInt128 value) => throw null; - public static explicit operator checked System.UInt32(System.UInt128 value) => throw null; - public static explicit operator checked System.UInt64(System.UInt128 value) => throw null; - public static explicit operator checked System.UIntPtr(System.UInt128 value) => throw null; - public static explicit operator checked int(System.UInt128 value) => throw null; - public static explicit operator checked System.UInt128(double value) => throw null; - public static explicit operator checked System.UInt128(float value) => throw null; - public static explicit operator checked System.UInt128(int value) => throw null; - public static explicit operator checked System.UInt128(System.Int64 value) => throw null; - public static explicit operator checked System.UInt128(System.SByte value) => throw null; - public static explicit operator checked System.UInt128(System.Int16 value) => throw null; - public static explicit operator System.UInt128(System.IntPtr value) => throw null; - public static explicit operator System.Byte(System.UInt128 value) => throw null; - public static explicit operator System.Char(System.UInt128 value) => throw null; - public static explicit operator System.Decimal(System.UInt128 value) => throw null; - public static explicit operator System.Half(System.UInt128 value) => throw null; - public static explicit operator System.Int128(System.UInt128 value) => throw null; - public static explicit operator System.Int16(System.UInt128 value) => throw null; - public static explicit operator System.Int64(System.UInt128 value) => throw null; - public static explicit operator System.IntPtr(System.UInt128 value) => throw null; - public static explicit operator System.SByte(System.UInt128 value) => throw null; - public static explicit operator System.UInt16(System.UInt128 value) => throw null; - public static explicit operator System.UInt32(System.UInt128 value) => throw null; - public static explicit operator System.UInt64(System.UInt128 value) => throw null; - public static explicit operator System.UIntPtr(System.UInt128 value) => throw null; - public static explicit operator double(System.UInt128 value) => throw null; - public static explicit operator float(System.UInt128 value) => throw null; - public static explicit operator int(System.UInt128 value) => throw null; - public static explicit operator System.UInt128(System.Decimal value) => throw null; - public static explicit operator System.UInt128(double value) => throw null; - public static explicit operator System.UInt128(float value) => throw null; - public static explicit operator System.UInt128(int value) => throw null; - public static explicit operator System.UInt128(System.Int64 value) => throw null; - public static explicit operator System.UInt128(System.SByte value) => throw null; - public static explicit operator System.UInt128(System.Int16 value) => throw null; - public static implicit operator System.UInt128(System.UIntPtr value) => throw null; - public static implicit operator System.UInt128(System.Byte value) => throw null; - public static implicit operator System.UInt128(System.Char value) => throw null; - public static implicit operator System.UInt128(System.UInt32 value) => throw null; - public static implicit operator System.UInt128(System.UInt64 value) => throw null; - public static implicit operator System.UInt128(System.UInt16 value) => throw null; - static System.UInt128 System.Numerics.IBitwiseOperators.operator |(System.UInt128 left, System.UInt128 right) => throw null; - static System.UInt128 System.Numerics.IBitwiseOperators.operator ~(System.UInt128 value) => throw null; } - - public struct UInt16 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber + public struct UInt16 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IModulusOperators.operator %(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IBitwiseOperators.operator &(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IMultiplyOperators.operator *(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IUnaryPlusOperators.operator +(System.UInt16 value) => throw null; - static System.UInt16 System.Numerics.IAdditionOperators.operator +(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IIncrementOperators.operator ++(System.UInt16 value) => throw null; - static System.UInt16 System.Numerics.IUnaryNegationOperators.operator -(System.UInt16 value) => throw null; - static System.UInt16 System.Numerics.ISubtractionOperators.operator -(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IDecrementOperators.operator --(System.UInt16 value) => throw null; - static System.UInt16 System.Numerics.IDivisionOperators.operator /(System.UInt16 left, System.UInt16 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IShiftOperators.operator <<(System.UInt16 value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.UInt16 left, System.UInt16 right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.UInt16 left, System.UInt16 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.UInt16 left, System.UInt16 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IShiftOperators.operator >>(System.UInt16 value, int shiftAmount) => throw null; - static System.UInt16 System.Numerics.IShiftOperators.operator >>>(System.UInt16 value, int shiftAmount) => throw null; - public static System.UInt16 Abs(System.UInt16 value) => throw null; - static System.UInt16 System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.UInt16 System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.UInt16 Clamp(System.UInt16 value, System.UInt16 min, System.UInt16 max) => throw null; + static ushort System.Numerics.INumberBase.Abs(ushort value) => throw null; + static ushort System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static ushort System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + static ushort System.Numerics.INumber.Clamp(ushort value, ushort min, ushort max) => throw null; public int CompareTo(object value) => throw null; - public int CompareTo(System.UInt16 value) => throw null; - public static System.UInt16 CopySign(System.UInt16 value, System.UInt16 sign) => throw null; - static System.UInt16 System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.UInt16 System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.UInt16 System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.UInt16, System.UInt16) DivRem(System.UInt16 left, System.UInt16 right) => throw null; + public int CompareTo(ushort value) => throw null; + static ushort System.Numerics.INumber.CopySign(ushort value, ushort sign) => throw null; + static ushort System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static ushort System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static ushort System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; + static (ushort Quotient, ushort Remainder) System.Numerics.IBinaryInteger.DivRem(ushort left, ushort right) => throw null; public override bool Equals(object obj) => throw null; - public bool Equals(System.UInt16 obj) => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + public bool Equals(ushort obj) => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; - int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; + int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; public System.TypeCode GetTypeCode() => throw null; - public static bool IsCanonical(System.UInt16 value) => throw null; - public static bool IsComplexNumber(System.UInt16 value) => throw null; - public static bool IsEvenInteger(System.UInt16 value) => throw null; - public static bool IsFinite(System.UInt16 value) => throw null; - public static bool IsImaginaryNumber(System.UInt16 value) => throw null; - public static bool IsInfinity(System.UInt16 value) => throw null; - public static bool IsInteger(System.UInt16 value) => throw null; - public static bool IsNaN(System.UInt16 value) => throw null; - public static bool IsNegative(System.UInt16 value) => throw null; - public static bool IsNegativeInfinity(System.UInt16 value) => throw null; - public static bool IsNormal(System.UInt16 value) => throw null; - public static bool IsOddInteger(System.UInt16 value) => throw null; - public static bool IsPositive(System.UInt16 value) => throw null; - public static bool IsPositiveInfinity(System.UInt16 value) => throw null; - public static bool IsPow2(System.UInt16 value) => throw null; - public static bool IsRealNumber(System.UInt16 value) => throw null; - public static bool IsSubnormal(System.UInt16 value) => throw null; - public static bool IsZero(System.UInt16 value) => throw null; - public static System.UInt16 LeadingZeroCount(System.UInt16 value) => throw null; - public static System.UInt16 Log2(System.UInt16 value) => throw null; - public static System.UInt16 Max(System.UInt16 x, System.UInt16 y) => throw null; - public static System.UInt16 MaxMagnitude(System.UInt16 x, System.UInt16 y) => throw null; - public static System.UInt16 MaxMagnitudeNumber(System.UInt16 x, System.UInt16 y) => throw null; - public static System.UInt16 MaxNumber(System.UInt16 x, System.UInt16 y) => throw null; - public const System.UInt16 MaxValue = default; - static System.UInt16 System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.UInt16 Min(System.UInt16 x, System.UInt16 y) => throw null; - public static System.UInt16 MinMagnitude(System.UInt16 x, System.UInt16 y) => throw null; - public static System.UInt16 MinMagnitudeNumber(System.UInt16 x, System.UInt16 y) => throw null; - public static System.UInt16 MinNumber(System.UInt16 x, System.UInt16 y) => throw null; - public const System.UInt16 MinValue = default; - static System.UInt16 System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.UInt16 System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - static System.UInt16 System.Numerics.INumberBase.One { get => throw null; } - public static System.UInt16 Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.UInt16 Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.UInt16 Parse(string s) => throw null; - public static System.UInt16 Parse(string s, System.IFormatProvider provider) => throw null; - public static System.UInt16 Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.UInt16 Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.UInt16 PopCount(System.UInt16 value) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.UInt16 RotateLeft(System.UInt16 value, int rotateAmount) => throw null; - public static System.UInt16 RotateRight(System.UInt16 value, int rotateAmount) => throw null; - public static int Sign(System.UInt16 value) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(ushort value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(ushort value) => throw null; + static bool System.Numerics.INumberBase.IsZero(ushort value) => throw null; + static ushort System.Numerics.IBinaryInteger.LeadingZeroCount(ushort value) => throw null; + static ushort System.Numerics.IBinaryNumber.Log2(ushort value) => throw null; + static ushort System.Numerics.INumber.Max(ushort x, ushort y) => throw null; + static ushort System.Numerics.INumberBase.MaxMagnitude(ushort x, ushort y) => throw null; + static ushort System.Numerics.INumberBase.MaxMagnitudeNumber(ushort x, ushort y) => throw null; + static ushort System.Numerics.INumber.MaxNumber(ushort x, ushort y) => throw null; + public static ushort MaxValue; + static ushort System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static ushort System.Numerics.INumber.Min(ushort x, ushort y) => throw null; + static ushort System.Numerics.INumberBase.MinMagnitude(ushort x, ushort y) => throw null; + static ushort System.Numerics.INumberBase.MinMagnitudeNumber(ushort x, ushort y) => throw null; + static ushort System.Numerics.INumber.MinNumber(ushort x, ushort y) => throw null; + public static ushort MinValue; + static ushort System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static ushort System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static ushort System.Numerics.INumberBase.One { get => throw null; } + static ushort System.Numerics.IAdditionOperators.operator +(ushort left, ushort right) => throw null; + static ushort System.Numerics.IBitwiseOperators.operator &(ushort left, ushort right) => throw null; + static ushort System.Numerics.IBitwiseOperators.operator |(ushort left, ushort right) => throw null; + static ushort System.Numerics.IAdditionOperators.operator checked +(ushort left, ushort right) => throw null; + static ushort System.Numerics.IDecrementOperators.operator checked --(ushort value) => throw null; + static ushort System.Numerics.IIncrementOperators.operator checked ++(ushort value) => throw null; + static ushort System.Numerics.IMultiplyOperators.operator checked *(ushort left, ushort right) => throw null; + static ushort System.Numerics.ISubtractionOperators.operator checked -(ushort left, ushort right) => throw null; + static ushort System.Numerics.IUnaryNegationOperators.operator checked -(ushort value) => throw null; + static ushort System.Numerics.IDecrementOperators.operator --(ushort value) => throw null; + static ushort System.Numerics.IDivisionOperators.operator /(ushort left, ushort right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(ushort left, ushort right) => throw null; + static ushort System.Numerics.IBitwiseOperators.operator ^(ushort left, ushort right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(ushort left, ushort right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(ushort left, ushort right) => throw null; + static ushort System.Numerics.IIncrementOperators.operator ++(ushort value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(ushort left, ushort right) => throw null; + static ushort System.Numerics.IShiftOperators.operator <<(ushort value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(ushort left, ushort right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(ushort left, ushort right) => throw null; + static ushort System.Numerics.IModulusOperators.operator %(ushort left, ushort right) => throw null; + static ushort System.Numerics.IMultiplyOperators.operator *(ushort left, ushort right) => throw null; + static ushort System.Numerics.IBitwiseOperators.operator ~(ushort value) => throw null; + static ushort System.Numerics.IShiftOperators.operator >>(ushort value, int shiftAmount) => throw null; + static ushort System.Numerics.ISubtractionOperators.operator -(ushort left, ushort right) => throw null; + static ushort System.Numerics.IUnaryNegationOperators.operator -(ushort value) => throw null; + static ushort System.Numerics.IUnaryPlusOperators.operator +(ushort value) => throw null; + static ushort System.Numerics.IShiftOperators.operator >>>(ushort value, int shiftAmount) => throw null; + static ushort System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static ushort System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static ushort Parse(string s) => throw null; + public static ushort Parse(string s, System.Globalization.NumberStyles style) => throw null; + static ushort System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static ushort System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static ushort System.Numerics.IBinaryInteger.PopCount(ushort value) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static ushort System.Numerics.IBinaryInteger.RotateLeft(ushort value, int rotateAmount) => throw null; + static ushort System.Numerics.IBinaryInteger.RotateRight(ushort value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(ushort value) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.UInt16 TrailingZeroCount(System.UInt16 value) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.UInt16 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.UInt16 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.UInt16 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.UInt16 value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.UInt16 value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.UInt16 value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.UInt16 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UInt16 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.UInt16 result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.UInt16 result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UInt16 result) => throw null; - public static bool TryParse(string s, out System.UInt16 result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UInt16 value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UInt16 value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - // Stub generator skipped constructor - static System.UInt16 System.Numerics.INumberBase.Zero { get => throw null; } - static System.UInt16 System.Numerics.IBitwiseOperators.operator ^(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IMultiplyOperators.operator checked *(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IAdditionOperators.operator checked +(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IIncrementOperators.operator checked ++(System.UInt16 value) => throw null; - static System.UInt16 System.Numerics.IUnaryNegationOperators.operator checked -(System.UInt16 value) => throw null; - static System.UInt16 System.Numerics.ISubtractionOperators.operator checked -(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IDecrementOperators.operator checked --(System.UInt16 value) => throw null; - static System.UInt16 System.Numerics.IBitwiseOperators.operator |(System.UInt16 left, System.UInt16 right) => throw null; - static System.UInt16 System.Numerics.IBitwiseOperators.operator ~(System.UInt16 value) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + static ushort System.Numerics.IBinaryInteger.TrailingZeroCount(ushort value) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out ushort result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out ushort result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out ushort result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(ushort value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(ushort value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(ushort value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out ushort result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out ushort result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out ushort result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out ushort result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out ushort result) => throw null; + public static bool TryParse(string s, out ushort result) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out ushort value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out ushort value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static ushort System.Numerics.INumberBase.Zero { get => throw null; } } - - public struct UInt32 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber + public struct UInt32 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IModulusOperators.operator %(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IBitwiseOperators.operator &(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IMultiplyOperators.operator *(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IUnaryPlusOperators.operator +(System.UInt32 value) => throw null; - static System.UInt32 System.Numerics.IAdditionOperators.operator +(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IIncrementOperators.operator ++(System.UInt32 value) => throw null; - static System.UInt32 System.Numerics.IUnaryNegationOperators.operator -(System.UInt32 value) => throw null; - static System.UInt32 System.Numerics.ISubtractionOperators.operator -(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IDecrementOperators.operator --(System.UInt32 value) => throw null; - static System.UInt32 System.Numerics.IDivisionOperators.operator /(System.UInt32 left, System.UInt32 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IShiftOperators.operator <<(System.UInt32 value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.UInt32 left, System.UInt32 right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.UInt32 left, System.UInt32 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.UInt32 left, System.UInt32 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IShiftOperators.operator >>(System.UInt32 value, int shiftAmount) => throw null; - static System.UInt32 System.Numerics.IShiftOperators.operator >>>(System.UInt32 value, int shiftAmount) => throw null; - public static System.UInt32 Abs(System.UInt32 value) => throw null; - static System.UInt32 System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.UInt32 System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.UInt32 Clamp(System.UInt32 value, System.UInt32 min, System.UInt32 max) => throw null; + static uint System.Numerics.INumberBase.Abs(uint value) => throw null; + static uint System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static uint System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + static uint System.Numerics.INumber.Clamp(uint value, uint min, uint max) => throw null; public int CompareTo(object value) => throw null; - public int CompareTo(System.UInt32 value) => throw null; - public static System.UInt32 CopySign(System.UInt32 value, System.UInt32 sign) => throw null; - static System.UInt32 System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.UInt32 System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.UInt32 System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.UInt32, System.UInt32) DivRem(System.UInt32 left, System.UInt32 right) => throw null; + public int CompareTo(uint value) => throw null; + static uint System.Numerics.INumber.CopySign(uint value, uint sign) => throw null; + static uint System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static uint System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static uint System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; + static (uint Quotient, uint Remainder) System.Numerics.IBinaryInteger.DivRem(uint left, uint right) => throw null; public override bool Equals(object obj) => throw null; - public bool Equals(System.UInt32 obj) => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + public bool Equals(uint obj) => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; - int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; + int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; public System.TypeCode GetTypeCode() => throw null; - public static bool IsCanonical(System.UInt32 value) => throw null; - public static bool IsComplexNumber(System.UInt32 value) => throw null; - public static bool IsEvenInteger(System.UInt32 value) => throw null; - public static bool IsFinite(System.UInt32 value) => throw null; - public static bool IsImaginaryNumber(System.UInt32 value) => throw null; - public static bool IsInfinity(System.UInt32 value) => throw null; - public static bool IsInteger(System.UInt32 value) => throw null; - public static bool IsNaN(System.UInt32 value) => throw null; - public static bool IsNegative(System.UInt32 value) => throw null; - public static bool IsNegativeInfinity(System.UInt32 value) => throw null; - public static bool IsNormal(System.UInt32 value) => throw null; - public static bool IsOddInteger(System.UInt32 value) => throw null; - public static bool IsPositive(System.UInt32 value) => throw null; - public static bool IsPositiveInfinity(System.UInt32 value) => throw null; - public static bool IsPow2(System.UInt32 value) => throw null; - public static bool IsRealNumber(System.UInt32 value) => throw null; - public static bool IsSubnormal(System.UInt32 value) => throw null; - public static bool IsZero(System.UInt32 value) => throw null; - public static System.UInt32 LeadingZeroCount(System.UInt32 value) => throw null; - public static System.UInt32 Log2(System.UInt32 value) => throw null; - public static System.UInt32 Max(System.UInt32 x, System.UInt32 y) => throw null; - public static System.UInt32 MaxMagnitude(System.UInt32 x, System.UInt32 y) => throw null; - public static System.UInt32 MaxMagnitudeNumber(System.UInt32 x, System.UInt32 y) => throw null; - public static System.UInt32 MaxNumber(System.UInt32 x, System.UInt32 y) => throw null; - public const System.UInt32 MaxValue = default; - static System.UInt32 System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.UInt32 Min(System.UInt32 x, System.UInt32 y) => throw null; - public static System.UInt32 MinMagnitude(System.UInt32 x, System.UInt32 y) => throw null; - public static System.UInt32 MinMagnitudeNumber(System.UInt32 x, System.UInt32 y) => throw null; - public static System.UInt32 MinNumber(System.UInt32 x, System.UInt32 y) => throw null; - public const System.UInt32 MinValue = default; - static System.UInt32 System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.UInt32 System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - static System.UInt32 System.Numerics.INumberBase.One { get => throw null; } - public static System.UInt32 Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.UInt32 Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.UInt32 Parse(string s) => throw null; - public static System.UInt32 Parse(string s, System.IFormatProvider provider) => throw null; - public static System.UInt32 Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.UInt32 Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.UInt32 PopCount(System.UInt32 value) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.UInt32 RotateLeft(System.UInt32 value, int rotateAmount) => throw null; - public static System.UInt32 RotateRight(System.UInt32 value, int rotateAmount) => throw null; - public static int Sign(System.UInt32 value) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(uint value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(uint value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(uint value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(uint value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(uint value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(uint value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(uint value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(uint value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(uint value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(uint value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(uint value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(uint value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(uint value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(uint value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(uint value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(uint value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(uint value) => throw null; + static bool System.Numerics.INumberBase.IsZero(uint value) => throw null; + static uint System.Numerics.IBinaryInteger.LeadingZeroCount(uint value) => throw null; + static uint System.Numerics.IBinaryNumber.Log2(uint value) => throw null; + static uint System.Numerics.INumber.Max(uint x, uint y) => throw null; + static uint System.Numerics.INumberBase.MaxMagnitude(uint x, uint y) => throw null; + static uint System.Numerics.INumberBase.MaxMagnitudeNumber(uint x, uint y) => throw null; + static uint System.Numerics.INumber.MaxNumber(uint x, uint y) => throw null; + public static uint MaxValue; + static uint System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static uint System.Numerics.INumber.Min(uint x, uint y) => throw null; + static uint System.Numerics.INumberBase.MinMagnitude(uint x, uint y) => throw null; + static uint System.Numerics.INumberBase.MinMagnitudeNumber(uint x, uint y) => throw null; + static uint System.Numerics.INumber.MinNumber(uint x, uint y) => throw null; + public static uint MinValue; + static uint System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static uint System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static uint System.Numerics.INumberBase.One { get => throw null; } + static uint System.Numerics.IAdditionOperators.operator +(uint left, uint right) => throw null; + static uint System.Numerics.IBitwiseOperators.operator &(uint left, uint right) => throw null; + static uint System.Numerics.IBitwiseOperators.operator |(uint left, uint right) => throw null; + static uint System.Numerics.IAdditionOperators.operator checked +(uint left, uint right) => throw null; + static uint System.Numerics.IDecrementOperators.operator checked --(uint value) => throw null; + static uint System.Numerics.IIncrementOperators.operator checked ++(uint value) => throw null; + static uint System.Numerics.IMultiplyOperators.operator checked *(uint left, uint right) => throw null; + static uint System.Numerics.ISubtractionOperators.operator checked -(uint left, uint right) => throw null; + static uint System.Numerics.IUnaryNegationOperators.operator checked -(uint value) => throw null; + static uint System.Numerics.IDecrementOperators.operator --(uint value) => throw null; + static uint System.Numerics.IDivisionOperators.operator /(uint left, uint right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(uint left, uint right) => throw null; + static uint System.Numerics.IBitwiseOperators.operator ^(uint left, uint right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(uint left, uint right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(uint left, uint right) => throw null; + static uint System.Numerics.IIncrementOperators.operator ++(uint value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(uint left, uint right) => throw null; + static uint System.Numerics.IShiftOperators.operator <<(uint value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(uint left, uint right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(uint left, uint right) => throw null; + static uint System.Numerics.IModulusOperators.operator %(uint left, uint right) => throw null; + static uint System.Numerics.IMultiplyOperators.operator *(uint left, uint right) => throw null; + static uint System.Numerics.IBitwiseOperators.operator ~(uint value) => throw null; + static uint System.Numerics.IShiftOperators.operator >>(uint value, int shiftAmount) => throw null; + static uint System.Numerics.ISubtractionOperators.operator -(uint left, uint right) => throw null; + static uint System.Numerics.IUnaryNegationOperators.operator -(uint value) => throw null; + static uint System.Numerics.IUnaryPlusOperators.operator +(uint value) => throw null; + static uint System.Numerics.IShiftOperators.operator >>>(uint value, int shiftAmount) => throw null; + static uint System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static uint System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static uint Parse(string s) => throw null; + public static uint Parse(string s, System.Globalization.NumberStyles style) => throw null; + static uint System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static uint System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static uint System.Numerics.IBinaryInteger.PopCount(uint value) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static uint System.Numerics.IBinaryInteger.RotateLeft(uint value, int rotateAmount) => throw null; + static uint System.Numerics.IBinaryInteger.RotateRight(uint value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(uint value) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.UInt32 TrailingZeroCount(System.UInt32 value) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.UInt32 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.UInt32 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.UInt32 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.UInt32 value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.UInt32 value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.UInt32 value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.UInt32 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UInt32 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.UInt32 result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.UInt32 result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UInt32 result) => throw null; - public static bool TryParse(string s, out System.UInt32 result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UInt32 value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UInt32 value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - // Stub generator skipped constructor - static System.UInt32 System.Numerics.INumberBase.Zero { get => throw null; } - static System.UInt32 System.Numerics.IBitwiseOperators.operator ^(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IMultiplyOperators.operator checked *(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IAdditionOperators.operator checked +(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IIncrementOperators.operator checked ++(System.UInt32 value) => throw null; - static System.UInt32 System.Numerics.IUnaryNegationOperators.operator checked -(System.UInt32 value) => throw null; - static System.UInt32 System.Numerics.ISubtractionOperators.operator checked -(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IDecrementOperators.operator checked --(System.UInt32 value) => throw null; - static System.UInt32 System.Numerics.IBitwiseOperators.operator |(System.UInt32 left, System.UInt32 right) => throw null; - static System.UInt32 System.Numerics.IBitwiseOperators.operator ~(System.UInt32 value) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + static uint System.Numerics.IBinaryInteger.TrailingZeroCount(uint value) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out uint result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out uint result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out uint result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(uint value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(uint value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(uint value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out uint result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out uint result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out uint result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out uint result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out uint result) => throw null; + public static bool TryParse(string s, out uint result) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out uint value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out uint value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static uint System.Numerics.INumberBase.Zero { get => throw null; } } - - public struct UInt64 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber + public struct UInt64 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber { - static bool System.Numerics.IEqualityOperators.operator !=(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IModulusOperators.operator %(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IBitwiseOperators.operator &(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IMultiplyOperators.operator *(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IUnaryPlusOperators.operator +(System.UInt64 value) => throw null; - static System.UInt64 System.Numerics.IAdditionOperators.operator +(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IIncrementOperators.operator ++(System.UInt64 value) => throw null; - static System.UInt64 System.Numerics.IUnaryNegationOperators.operator -(System.UInt64 value) => throw null; - static System.UInt64 System.Numerics.ISubtractionOperators.operator -(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IDecrementOperators.operator --(System.UInt64 value) => throw null; - static System.UInt64 System.Numerics.IDivisionOperators.operator /(System.UInt64 left, System.UInt64 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IShiftOperators.operator <<(System.UInt64 value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.UInt64 left, System.UInt64 right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.UInt64 left, System.UInt64 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.UInt64 left, System.UInt64 right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IShiftOperators.operator >>(System.UInt64 value, int shiftAmount) => throw null; - static System.UInt64 System.Numerics.IShiftOperators.operator >>>(System.UInt64 value, int shiftAmount) => throw null; - public static System.UInt64 Abs(System.UInt64 value) => throw null; - static System.UInt64 System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.UInt64 System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.UInt64 Clamp(System.UInt64 value, System.UInt64 min, System.UInt64 max) => throw null; + static ulong System.Numerics.INumberBase.Abs(ulong value) => throw null; + static ulong System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static ulong System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + static ulong System.Numerics.INumber.Clamp(ulong value, ulong min, ulong max) => throw null; public int CompareTo(object value) => throw null; - public int CompareTo(System.UInt64 value) => throw null; - public static System.UInt64 CopySign(System.UInt64 value, System.UInt64 sign) => throw null; - static System.UInt64 System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.UInt64 System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.UInt64 System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.UInt64, System.UInt64) DivRem(System.UInt64 left, System.UInt64 right) => throw null; + public int CompareTo(ulong value) => throw null; + static ulong System.Numerics.INumber.CopySign(ulong value, ulong sign) => throw null; + static ulong System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static ulong System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static ulong System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; + static (ulong Quotient, ulong Remainder) System.Numerics.IBinaryInteger.DivRem(ulong left, ulong right) => throw null; public override bool Equals(object obj) => throw null; - public bool Equals(System.UInt64 obj) => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + public bool Equals(ulong obj) => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; - int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; + int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; public System.TypeCode GetTypeCode() => throw null; - public static bool IsCanonical(System.UInt64 value) => throw null; - public static bool IsComplexNumber(System.UInt64 value) => throw null; - public static bool IsEvenInteger(System.UInt64 value) => throw null; - public static bool IsFinite(System.UInt64 value) => throw null; - public static bool IsImaginaryNumber(System.UInt64 value) => throw null; - public static bool IsInfinity(System.UInt64 value) => throw null; - public static bool IsInteger(System.UInt64 value) => throw null; - public static bool IsNaN(System.UInt64 value) => throw null; - public static bool IsNegative(System.UInt64 value) => throw null; - public static bool IsNegativeInfinity(System.UInt64 value) => throw null; - public static bool IsNormal(System.UInt64 value) => throw null; - public static bool IsOddInteger(System.UInt64 value) => throw null; - public static bool IsPositive(System.UInt64 value) => throw null; - public static bool IsPositiveInfinity(System.UInt64 value) => throw null; - public static bool IsPow2(System.UInt64 value) => throw null; - public static bool IsRealNumber(System.UInt64 value) => throw null; - public static bool IsSubnormal(System.UInt64 value) => throw null; - public static bool IsZero(System.UInt64 value) => throw null; - public static System.UInt64 LeadingZeroCount(System.UInt64 value) => throw null; - public static System.UInt64 Log2(System.UInt64 value) => throw null; - public static System.UInt64 Max(System.UInt64 x, System.UInt64 y) => throw null; - public static System.UInt64 MaxMagnitude(System.UInt64 x, System.UInt64 y) => throw null; - public static System.UInt64 MaxMagnitudeNumber(System.UInt64 x, System.UInt64 y) => throw null; - public static System.UInt64 MaxNumber(System.UInt64 x, System.UInt64 y) => throw null; - public const System.UInt64 MaxValue = default; - static System.UInt64 System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.UInt64 Min(System.UInt64 x, System.UInt64 y) => throw null; - public static System.UInt64 MinMagnitude(System.UInt64 x, System.UInt64 y) => throw null; - public static System.UInt64 MinMagnitudeNumber(System.UInt64 x, System.UInt64 y) => throw null; - public static System.UInt64 MinNumber(System.UInt64 x, System.UInt64 y) => throw null; - public const System.UInt64 MinValue = default; - static System.UInt64 System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.UInt64 System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - static System.UInt64 System.Numerics.INumberBase.One { get => throw null; } - public static System.UInt64 Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.UInt64 Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.UInt64 Parse(string s) => throw null; - public static System.UInt64 Parse(string s, System.IFormatProvider provider) => throw null; - public static System.UInt64 Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.UInt64 Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.UInt64 PopCount(System.UInt64 value) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.UInt64 RotateLeft(System.UInt64 value, int rotateAmount) => throw null; - public static System.UInt64 RotateRight(System.UInt64 value, int rotateAmount) => throw null; - public static int Sign(System.UInt64 value) => throw null; + static bool System.Numerics.INumberBase.IsCanonical(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(ulong value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(ulong value) => throw null; + static bool System.Numerics.INumberBase.IsZero(ulong value) => throw null; + static ulong System.Numerics.IBinaryInteger.LeadingZeroCount(ulong value) => throw null; + static ulong System.Numerics.IBinaryNumber.Log2(ulong value) => throw null; + static ulong System.Numerics.INumber.Max(ulong x, ulong y) => throw null; + static ulong System.Numerics.INumberBase.MaxMagnitude(ulong x, ulong y) => throw null; + static ulong System.Numerics.INumberBase.MaxMagnitudeNumber(ulong x, ulong y) => throw null; + static ulong System.Numerics.INumber.MaxNumber(ulong x, ulong y) => throw null; + public static ulong MaxValue; + static ulong System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static ulong System.Numerics.INumber.Min(ulong x, ulong y) => throw null; + static ulong System.Numerics.INumberBase.MinMagnitude(ulong x, ulong y) => throw null; + static ulong System.Numerics.INumberBase.MinMagnitudeNumber(ulong x, ulong y) => throw null; + static ulong System.Numerics.INumber.MinNumber(ulong x, ulong y) => throw null; + public static ulong MinValue; + static ulong System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static ulong System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static ulong System.Numerics.INumberBase.One { get => throw null; } + static ulong System.Numerics.IAdditionOperators.operator +(ulong left, ulong right) => throw null; + static ulong System.Numerics.IBitwiseOperators.operator &(ulong left, ulong right) => throw null; + static ulong System.Numerics.IBitwiseOperators.operator |(ulong left, ulong right) => throw null; + static ulong System.Numerics.IAdditionOperators.operator checked +(ulong left, ulong right) => throw null; + static ulong System.Numerics.IDecrementOperators.operator checked --(ulong value) => throw null; + static ulong System.Numerics.IIncrementOperators.operator checked ++(ulong value) => throw null; + static ulong System.Numerics.IMultiplyOperators.operator checked *(ulong left, ulong right) => throw null; + static ulong System.Numerics.ISubtractionOperators.operator checked -(ulong left, ulong right) => throw null; + static ulong System.Numerics.IUnaryNegationOperators.operator checked -(ulong value) => throw null; + static ulong System.Numerics.IDecrementOperators.operator --(ulong value) => throw null; + static ulong System.Numerics.IDivisionOperators.operator /(ulong left, ulong right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(ulong left, ulong right) => throw null; + static ulong System.Numerics.IBitwiseOperators.operator ^(ulong left, ulong right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(ulong left, ulong right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(ulong left, ulong right) => throw null; + static ulong System.Numerics.IIncrementOperators.operator ++(ulong value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(ulong left, ulong right) => throw null; + static ulong System.Numerics.IShiftOperators.operator <<(ulong value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(ulong left, ulong right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(ulong left, ulong right) => throw null; + static ulong System.Numerics.IModulusOperators.operator %(ulong left, ulong right) => throw null; + static ulong System.Numerics.IMultiplyOperators.operator *(ulong left, ulong right) => throw null; + static ulong System.Numerics.IBitwiseOperators.operator ~(ulong value) => throw null; + static ulong System.Numerics.IShiftOperators.operator >>(ulong value, int shiftAmount) => throw null; + static ulong System.Numerics.ISubtractionOperators.operator -(ulong left, ulong right) => throw null; + static ulong System.Numerics.IUnaryNegationOperators.operator -(ulong value) => throw null; + static ulong System.Numerics.IUnaryPlusOperators.operator +(ulong value) => throw null; + static ulong System.Numerics.IShiftOperators.operator >>>(ulong value, int shiftAmount) => throw null; + static ulong System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static ulong System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static ulong Parse(string s) => throw null; + public static ulong Parse(string s, System.Globalization.NumberStyles style) => throw null; + static ulong System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static ulong System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static ulong System.Numerics.IBinaryInteger.PopCount(ulong value) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static ulong System.Numerics.IBinaryInteger.RotateLeft(ulong value, int rotateAmount) => throw null; + static ulong System.Numerics.IBinaryInteger.RotateRight(ulong value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(ulong value) => throw null; bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; - System.Byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; - System.Char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; + byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; + char System.IConvertible.ToChar(System.IFormatProvider provider) => throw null; System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) => throw null; - System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; + decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) => throw null; double System.IConvertible.ToDouble(System.IFormatProvider provider) => throw null; - System.Int16 System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; + short System.IConvertible.ToInt16(System.IFormatProvider provider) => throw null; int System.IConvertible.ToInt32(System.IFormatProvider provider) => throw null; - System.Int64 System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; - System.SByte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; + long System.IConvertible.ToInt64(System.IFormatProvider provider) => throw null; + sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) => throw null; float System.IConvertible.ToSingle(System.IFormatProvider provider) => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) => throw null; - System.UInt16 System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; - System.UInt32 System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; - System.UInt64 System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.UInt64 TrailingZeroCount(System.UInt64 value) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.UInt64 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.UInt64 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.UInt64 result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.UInt64 value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.UInt64 value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.UInt64 value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.UInt64 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UInt64 result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.UInt64 result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.UInt64 result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UInt64 result) => throw null; - public static bool TryParse(string s, out System.UInt64 result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UInt64 value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UInt64 value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - // Stub generator skipped constructor - static System.UInt64 System.Numerics.INumberBase.Zero { get => throw null; } - static System.UInt64 System.Numerics.IBitwiseOperators.operator ^(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IMultiplyOperators.operator checked *(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IAdditionOperators.operator checked +(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IIncrementOperators.operator checked ++(System.UInt64 value) => throw null; - static System.UInt64 System.Numerics.IUnaryNegationOperators.operator checked -(System.UInt64 value) => throw null; - static System.UInt64 System.Numerics.ISubtractionOperators.operator checked -(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IDecrementOperators.operator checked --(System.UInt64 value) => throw null; - static System.UInt64 System.Numerics.IBitwiseOperators.operator |(System.UInt64 left, System.UInt64 right) => throw null; - static System.UInt64 System.Numerics.IBitwiseOperators.operator ~(System.UInt64 value) => throw null; + ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; + uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; + ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; + static ulong System.Numerics.IBinaryInteger.TrailingZeroCount(ulong value) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out ulong result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out ulong result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out ulong result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(ulong value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(ulong value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(ulong value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out ulong result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out ulong result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out ulong result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out ulong result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out ulong result) => throw null; + public static bool TryParse(string s, out ulong result) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out ulong value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out ulong value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + static ulong System.Numerics.INumberBase.Zero { get => throw null; } } - - public struct UIntPtr : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber, System.Runtime.Serialization.ISerializable + public struct UIntPtr : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber, System.Runtime.Serialization.ISerializable { - static bool System.Numerics.IEqualityOperators.operator !=(System.UIntPtr value1, System.UIntPtr value2) => throw null; - static System.UIntPtr System.Numerics.IModulusOperators.operator %(System.UIntPtr left, System.UIntPtr right) => throw null; - static System.UIntPtr System.Numerics.IBitwiseOperators.operator &(System.UIntPtr left, System.UIntPtr right) => throw null; - static System.UIntPtr System.Numerics.IMultiplyOperators.operator *(System.UIntPtr left, System.UIntPtr right) => throw null; - static System.UIntPtr System.Numerics.IUnaryPlusOperators.operator +(System.UIntPtr value) => throw null; - static System.UIntPtr System.Numerics.IAdditionOperators.operator +(System.UIntPtr left, System.UIntPtr right) => throw null; - public static System.UIntPtr operator +(System.UIntPtr pointer, int offset) => throw null; - static System.UIntPtr System.Numerics.IIncrementOperators.operator ++(System.UIntPtr value) => throw null; - static System.UIntPtr System.Numerics.IUnaryNegationOperators.operator -(System.UIntPtr value) => throw null; - static System.UIntPtr System.Numerics.ISubtractionOperators.operator -(System.UIntPtr left, System.UIntPtr right) => throw null; - public static System.UIntPtr operator -(System.UIntPtr pointer, int offset) => throw null; - static System.UIntPtr System.Numerics.IDecrementOperators.operator --(System.UIntPtr value) => throw null; - static System.UIntPtr System.Numerics.IDivisionOperators.operator /(System.UIntPtr left, System.UIntPtr right) => throw null; - static bool System.Numerics.IComparisonOperators.operator <(System.UIntPtr left, System.UIntPtr right) => throw null; - static System.UIntPtr System.Numerics.IShiftOperators.operator <<(System.UIntPtr value, int shiftAmount) => throw null; - static bool System.Numerics.IComparisonOperators.operator <=(System.UIntPtr left, System.UIntPtr right) => throw null; - static bool System.Numerics.IEqualityOperators.operator ==(System.UIntPtr value1, System.UIntPtr value2) => throw null; - static bool System.Numerics.IComparisonOperators.operator >(System.UIntPtr left, System.UIntPtr right) => throw null; - static bool System.Numerics.IComparisonOperators.operator >=(System.UIntPtr left, System.UIntPtr right) => throw null; - static System.UIntPtr System.Numerics.IShiftOperators.operator >>(System.UIntPtr value, int shiftAmount) => throw null; - static System.UIntPtr System.Numerics.IShiftOperators.operator >>>(System.UIntPtr value, int shiftAmount) => throw null; - public static System.UIntPtr Abs(System.UIntPtr value) => throw null; - public static System.UIntPtr Add(System.UIntPtr pointer, int offset) => throw null; - static System.UIntPtr System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } - static System.UIntPtr System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } - public static System.UIntPtr Clamp(System.UIntPtr value, System.UIntPtr min, System.UIntPtr max) => throw null; - public int CompareTo(System.UIntPtr value) => throw null; + static nuint System.Numerics.INumberBase.Abs(nuint value) => throw null; + public static nuint Add(nuint pointer, int offset) => throw null; + static nuint System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } + static nuint System.Numerics.IBinaryNumber.AllBitsSet { get => throw null; } + static nuint System.Numerics.INumber.Clamp(nuint value, nuint min, nuint max) => throw null; public int CompareTo(object value) => throw null; - public static System.UIntPtr CopySign(System.UIntPtr value, System.UIntPtr sign) => throw null; - static System.UIntPtr System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; - static System.UIntPtr System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; - static System.UIntPtr System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static (System.UIntPtr, System.UIntPtr) DivRem(System.UIntPtr left, System.UIntPtr right) => throw null; - public bool Equals(System.UIntPtr other) => throw null; + public int CompareTo(nuint value) => throw null; + static nuint System.Numerics.INumber.CopySign(nuint value, nuint sign) => throw null; + static nuint System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; + static nuint System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; + static nuint System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; + public UIntPtr(uint value) => throw null; + public UIntPtr(ulong value) => throw null; + public unsafe UIntPtr(void* value) => throw null; + static (nuint Quotient, nuint Remainder) System.Numerics.IBinaryInteger.DivRem(nuint left, nuint right) => throw null; public override bool Equals(object obj) => throw null; - int System.Numerics.IBinaryInteger.GetByteCount() => throw null; + public bool Equals(nuint other) => throw null; + int System.Numerics.IBinaryInteger.GetByteCount() => throw null; public override int GetHashCode() => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; - public static bool IsCanonical(System.UIntPtr value) => throw null; - public static bool IsComplexNumber(System.UIntPtr value) => throw null; - public static bool IsEvenInteger(System.UIntPtr value) => throw null; - public static bool IsFinite(System.UIntPtr value) => throw null; - public static bool IsImaginaryNumber(System.UIntPtr value) => throw null; - public static bool IsInfinity(System.UIntPtr value) => throw null; - public static bool IsInteger(System.UIntPtr value) => throw null; - public static bool IsNaN(System.UIntPtr value) => throw null; - public static bool IsNegative(System.UIntPtr value) => throw null; - public static bool IsNegativeInfinity(System.UIntPtr value) => throw null; - public static bool IsNormal(System.UIntPtr value) => throw null; - public static bool IsOddInteger(System.UIntPtr value) => throw null; - public static bool IsPositive(System.UIntPtr value) => throw null; - public static bool IsPositiveInfinity(System.UIntPtr value) => throw null; - public static bool IsPow2(System.UIntPtr value) => throw null; - public static bool IsRealNumber(System.UIntPtr value) => throw null; - public static bool IsSubnormal(System.UIntPtr value) => throw null; - public static bool IsZero(System.UIntPtr value) => throw null; - public static System.UIntPtr LeadingZeroCount(System.UIntPtr value) => throw null; - public static System.UIntPtr Log2(System.UIntPtr value) => throw null; - public static System.UIntPtr Max(System.UIntPtr x, System.UIntPtr y) => throw null; - public static System.UIntPtr MaxMagnitude(System.UIntPtr x, System.UIntPtr y) => throw null; - public static System.UIntPtr MaxMagnitudeNumber(System.UIntPtr x, System.UIntPtr y) => throw null; - public static System.UIntPtr MaxNumber(System.UIntPtr x, System.UIntPtr y) => throw null; - public static System.UIntPtr MaxValue { get => throw null; } - static System.UIntPtr System.Numerics.IMinMaxValue.MaxValue { get => throw null; } - public static System.UIntPtr Min(System.UIntPtr x, System.UIntPtr y) => throw null; - public static System.UIntPtr MinMagnitude(System.UIntPtr x, System.UIntPtr y) => throw null; - public static System.UIntPtr MinMagnitudeNumber(System.UIntPtr x, System.UIntPtr y) => throw null; - public static System.UIntPtr MinNumber(System.UIntPtr x, System.UIntPtr y) => throw null; - public static System.UIntPtr MinValue { get => throw null; } - static System.UIntPtr System.Numerics.IMinMaxValue.MinValue { get => throw null; } - static System.UIntPtr System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - static System.UIntPtr System.Numerics.INumberBase.One { get => throw null; } - public static System.UIntPtr Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; - public static System.UIntPtr Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static System.UIntPtr Parse(string s) => throw null; - public static System.UIntPtr Parse(string s, System.IFormatProvider provider) => throw null; - public static System.UIntPtr Parse(string s, System.Globalization.NumberStyles style) => throw null; - public static System.UIntPtr Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; - public static System.UIntPtr PopCount(System.UIntPtr value) => throw null; - static int System.Numerics.INumberBase.Radix { get => throw null; } - public static System.UIntPtr RotateLeft(System.UIntPtr value, int rotateAmount) => throw null; - public static System.UIntPtr RotateRight(System.UIntPtr value, int rotateAmount) => throw null; - public static int Sign(System.UIntPtr value) => throw null; + int System.Numerics.IBinaryInteger.GetShortestBitLength() => throw null; + static bool System.Numerics.INumberBase.IsCanonical(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsComplexNumber(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsEvenInteger(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsFinite(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsImaginaryNumber(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsInfinity(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsInteger(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsNaN(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsNegative(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsNegativeInfinity(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsNormal(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsOddInteger(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsPositive(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsPositiveInfinity(nuint value) => throw null; + static bool System.Numerics.IBinaryNumber.IsPow2(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsRealNumber(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsSubnormal(nuint value) => throw null; + static bool System.Numerics.INumberBase.IsZero(nuint value) => throw null; + static nuint System.Numerics.IBinaryInteger.LeadingZeroCount(nuint value) => throw null; + static nuint System.Numerics.IBinaryNumber.Log2(nuint value) => throw null; + static nuint System.Numerics.INumber.Max(nuint x, nuint y) => throw null; + static nuint System.Numerics.INumberBase.MaxMagnitude(nuint x, nuint y) => throw null; + static nuint System.Numerics.INumberBase.MaxMagnitudeNumber(nuint x, nuint y) => throw null; + static nuint System.Numerics.INumber.MaxNumber(nuint x, nuint y) => throw null; + public static nuint MaxValue { get => throw null; } + static nuint System.Numerics.IMinMaxValue.MaxValue { get => throw null; } + static nuint System.Numerics.INumber.Min(nuint x, nuint y) => throw null; + static nuint System.Numerics.INumberBase.MinMagnitude(nuint x, nuint y) => throw null; + static nuint System.Numerics.INumberBase.MinMagnitudeNumber(nuint x, nuint y) => throw null; + static nuint System.Numerics.INumber.MinNumber(nuint x, nuint y) => throw null; + public static nuint MinValue { get => throw null; } + static nuint System.Numerics.IMinMaxValue.MinValue { get => throw null; } + static nuint System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } + static nuint System.Numerics.INumberBase.One { get => throw null; } + public static nuint operator +(nuint pointer, int offset) => throw null; + static nuint System.Numerics.IAdditionOperators.operator +(nuint left, nuint right) => throw null; + static nuint System.Numerics.IBitwiseOperators.operator &(nuint left, nuint right) => throw null; + static nuint System.Numerics.IBitwiseOperators.operator |(nuint left, nuint right) => throw null; + static nuint System.Numerics.IAdditionOperators.operator checked +(nuint left, nuint right) => throw null; + static nuint System.Numerics.IDecrementOperators.operator checked --(nuint value) => throw null; + static nuint System.Numerics.IIncrementOperators.operator checked ++(nuint value) => throw null; + static nuint System.Numerics.IMultiplyOperators.operator checked *(nuint left, nuint right) => throw null; + static nuint System.Numerics.ISubtractionOperators.operator checked -(nuint left, nuint right) => throw null; + static nuint System.Numerics.IUnaryNegationOperators.operator checked -(nuint value) => throw null; + static nuint System.Numerics.IDecrementOperators.operator --(nuint value) => throw null; + static nuint System.Numerics.IDivisionOperators.operator /(nuint left, nuint right) => throw null; + static bool System.Numerics.IEqualityOperators.operator ==(nuint value1, nuint value2) => throw null; + static nuint System.Numerics.IBitwiseOperators.operator ^(nuint left, nuint right) => throw null; + public static explicit operator nuint(uint value) => throw null; + public static explicit operator nuint(ulong value) => throw null; + public static explicit operator uint(nuint value) => throw null; + public static explicit operator ulong(nuint value) => throw null; + public static unsafe explicit operator void*(nuint value) => throw null; + public static unsafe explicit operator nuint(void* value) => throw null; + static bool System.Numerics.IComparisonOperators.operator >(nuint left, nuint right) => throw null; + static bool System.Numerics.IComparisonOperators.operator >=(nuint left, nuint right) => throw null; + static nuint System.Numerics.IIncrementOperators.operator ++(nuint value) => throw null; + static bool System.Numerics.IEqualityOperators.operator !=(nuint value1, nuint value2) => throw null; + static nuint System.Numerics.IShiftOperators.operator <<(nuint value, int shiftAmount) => throw null; + static bool System.Numerics.IComparisonOperators.operator <(nuint left, nuint right) => throw null; + static bool System.Numerics.IComparisonOperators.operator <=(nuint left, nuint right) => throw null; + static nuint System.Numerics.IModulusOperators.operator %(nuint left, nuint right) => throw null; + static nuint System.Numerics.IMultiplyOperators.operator *(nuint left, nuint right) => throw null; + static nuint System.Numerics.IBitwiseOperators.operator ~(nuint value) => throw null; + static nuint System.Numerics.IShiftOperators.operator >>(nuint value, int shiftAmount) => throw null; + public static nuint operator -(nuint pointer, int offset) => throw null; + static nuint System.Numerics.ISubtractionOperators.operator -(nuint left, nuint right) => throw null; + static nuint System.Numerics.IUnaryNegationOperators.operator -(nuint value) => throw null; + static nuint System.Numerics.IUnaryPlusOperators.operator +(nuint value) => throw null; + static nuint System.Numerics.IShiftOperators.operator >>>(nuint value, int shiftAmount) => throw null; + static nuint System.Numerics.INumberBase.Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style = default(System.Globalization.NumberStyles), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static nuint System.ISpanParsable.Parse(System.ReadOnlySpan s, System.IFormatProvider provider) => throw null; + public static nuint Parse(string s) => throw null; + public static nuint Parse(string s, System.Globalization.NumberStyles style) => throw null; + static nuint System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; + static nuint System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; + static nuint System.Numerics.IBinaryInteger.PopCount(nuint value) => throw null; + static int System.Numerics.INumberBase.Radix { get => throw null; } + static nuint System.Numerics.IBinaryInteger.RotateLeft(nuint value, int rotateAmount) => throw null; + static nuint System.Numerics.IBinaryInteger.RotateRight(nuint value, int rotateAmount) => throw null; + static int System.Numerics.INumber.Sign(nuint value) => throw null; public static int Size { get => throw null; } - public static System.UIntPtr Subtract(System.UIntPtr pointer, int offset) => throw null; - unsafe public void* ToPointer() => throw null; + public static nuint Subtract(nuint pointer, int offset) => throw null; + public unsafe void* ToPointer() => throw null; public override string ToString() => throw null; public string ToString(System.IFormatProvider provider) => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider provider) => throw null; - public System.UInt32 ToUInt32() => throw null; - public System.UInt64 ToUInt64() => throw null; - public static System.UIntPtr TrailingZeroCount(System.UIntPtr value) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out System.UIntPtr result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out System.UIntPtr result) => throw null; - static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out System.UIntPtr result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToChecked(System.UIntPtr value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToSaturating(System.UIntPtr value, out TOther result) => throw null; - static bool System.Numerics.INumberBase.TryConvertToTruncating(System.UIntPtr value, out TOther result) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.UIntPtr result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UIntPtr result) => throw null; - public static bool TryParse(System.ReadOnlySpan s, out System.UIntPtr result) => throw null; - public static bool TryParse(string s, System.IFormatProvider provider, out System.UIntPtr result) => throw null; - public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UIntPtr result) => throw null; - public static bool TryParse(string s, out System.UIntPtr result) => throw null; - public static bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UIntPtr value) => throw null; - public static bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out System.UIntPtr value) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; - bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - // Stub generator skipped constructor - unsafe public UIntPtr(void* value) => throw null; - public UIntPtr(System.UInt32 value) => throw null; - public UIntPtr(System.UInt64 value) => throw null; - public static System.UIntPtr Zero; - static System.UIntPtr System.Numerics.INumberBase.Zero { get => throw null; } - static System.UIntPtr System.Numerics.IBitwiseOperators.operator ^(System.UIntPtr left, System.UIntPtr right) => throw null; - static System.UIntPtr System.Numerics.IMultiplyOperators.operator checked *(System.UIntPtr left, System.UIntPtr right) => throw null; - static System.UIntPtr System.Numerics.IAdditionOperators.operator checked +(System.UIntPtr left, System.UIntPtr right) => throw null; - static System.UIntPtr System.Numerics.IIncrementOperators.operator checked ++(System.UIntPtr value) => throw null; - static System.UIntPtr System.Numerics.IUnaryNegationOperators.operator checked -(System.UIntPtr value) => throw null; - static System.UIntPtr System.Numerics.ISubtractionOperators.operator checked -(System.UIntPtr left, System.UIntPtr right) => throw null; - static System.UIntPtr System.Numerics.IDecrementOperators.operator checked --(System.UIntPtr value) => throw null; - public static explicit operator System.UInt32(System.UIntPtr value) => throw null; - public static explicit operator System.UInt64(System.UIntPtr value) => throw null; - unsafe public static explicit operator void*(System.UIntPtr value) => throw null; - unsafe public static explicit operator System.UIntPtr(void* value) => throw null; - public static explicit operator System.UIntPtr(System.UInt32 value) => throw null; - public static explicit operator System.UIntPtr(System.UInt64 value) => throw null; - static System.UIntPtr System.Numerics.IBitwiseOperators.operator |(System.UIntPtr left, System.UIntPtr right) => throw null; - static System.UIntPtr System.Numerics.IBitwiseOperators.operator ~(System.UIntPtr value) => throw null; + public uint ToUInt32() => throw null; + public ulong ToUInt64() => throw null; + static nuint System.Numerics.IBinaryInteger.TrailingZeroCount(nuint value) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromChecked(TOther value, out nuint result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromSaturating(TOther value, out nuint result) => throw null; + static bool System.Numerics.INumberBase.TryConvertFromTruncating(TOther value, out nuint result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToChecked(nuint value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToSaturating(nuint value, out TOther result) => throw null; + static bool System.Numerics.INumberBase.TryConvertToTruncating(nuint value, out TOther result) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format = default(System.ReadOnlySpan), System.IFormatProvider provider = default(System.IFormatProvider)) => throw null; + static bool System.Numerics.INumberBase.TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out nuint result) => throw null; + static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out nuint result) => throw null; + public static bool TryParse(System.ReadOnlySpan s, out nuint result) => throw null; + static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out nuint result) => throw null; + static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out nuint result) => throw null; + public static bool TryParse(string s, out nuint result) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out nuint value) => throw null; + static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out nuint value) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; + bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; + public static nuint Zero; + static nuint System.Numerics.INumberBase.Zero { get => throw null; } } - public class UnauthorizedAccessException : System.SystemException { public UnauthorizedAccessException() => throw null; @@ -6577,20 +13451,15 @@ namespace System public UnauthorizedAccessException(string message) => throw null; public UnauthorizedAccessException(string message, System.Exception inner) => throw null; } - public class UnhandledExceptionEventArgs : System.EventArgs { + public UnhandledExceptionEventArgs(object exception, bool isTerminating) => throw null; public object ExceptionObject { get => throw null; } public bool IsTerminating { get => throw null; } - public UnhandledExceptionEventArgs(object exception, bool isTerminating) => throw null; } - public delegate void UnhandledExceptionEventHandler(object sender, System.UnhandledExceptionEventArgs e); - public class Uri : System.Runtime.Serialization.ISerializable { - public static bool operator !=(System.Uri uri1, System.Uri uri2) => throw null; - public static bool operator ==(System.Uri uri1, System.Uri uri2) => throw null; public string AbsolutePath { get => throw null; } public string AbsoluteUri { get => throw null; } public string Authority { get => throw null; } @@ -6599,6 +13468,14 @@ namespace System public static bool CheckSchemeName(string schemeName) => throw null; protected virtual void CheckSecurity() => throw null; public static int Compare(System.Uri uri1, System.Uri uri2, System.UriComponents partsToCompare, System.UriFormat compareFormat, System.StringComparison comparisonType) => throw null; + protected Uri(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public Uri(string uriString) => throw null; + public Uri(string uriString, bool dontEscape) => throw null; + public Uri(string uriString, in System.UriCreationOptions creationOptions) => throw null; + public Uri(string uriString, System.UriKind uriKind) => throw null; + public Uri(System.Uri baseUri, string relativeUri) => throw null; + public Uri(System.Uri baseUri, string relativeUri, bool dontEscape) => throw null; + public Uri(System.Uri baseUri, System.Uri relativeUri) => throw null; public string DnsSafeHost { get => throw null; } public override bool Equals(object comparand) => throw null; protected virtual void Escape() => throw null; @@ -6606,33 +13483,35 @@ namespace System protected static string EscapeString(string str) => throw null; public static string EscapeUriString(string stringToEscape) => throw null; public string Fragment { get => throw null; } - public static int FromHex(System.Char digit) => throw null; + public static int FromHex(char digit) => throw null; public string GetComponents(System.UriComponents components, System.UriFormat format) => throw null; public override int GetHashCode() => throw null; public string GetLeftPart(System.UriPartial part) => throw null; protected void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public static string HexEscape(System.Char character) => throw null; - public static System.Char HexUnescape(string pattern, ref int index) => throw null; + public static string HexEscape(char character) => throw null; + public static char HexUnescape(string pattern, ref int index) => throw null; public string Host { get => throw null; } public System.UriHostNameType HostNameType { get => throw null; } public string IdnHost { get => throw null; } public bool IsAbsoluteUri { get => throw null; } - protected virtual bool IsBadFileSystemCharacter(System.Char character) => throw null; + protected virtual bool IsBadFileSystemCharacter(char character) => throw null; public bool IsBaseOf(System.Uri uri) => throw null; public bool IsDefaultPort { get => throw null; } - protected static bool IsExcludedCharacter(System.Char character) => throw null; + protected static bool IsExcludedCharacter(char character) => throw null; public bool IsFile { get => throw null; } - public static bool IsHexDigit(System.Char character) => throw null; + public static bool IsHexDigit(char character) => throw null; public static bool IsHexEncoding(string pattern, int index) => throw null; public bool IsLoopback { get => throw null; } - protected virtual bool IsReservedCharacter(System.Char character) => throw null; + protected virtual bool IsReservedCharacter(char character) => throw null; public bool IsUnc { get => throw null; } public bool IsWellFormedOriginalString() => throw null; public static bool IsWellFormedUriString(string uriString, System.UriKind uriKind) => throw null; public string LocalPath { get => throw null; } public string MakeRelative(System.Uri toUri) => throw null; public System.Uri MakeRelativeUri(System.Uri uri) => throw null; + public static bool operator ==(System.Uri uri1, System.Uri uri2) => throw null; + public static bool operator !=(System.Uri uri1, System.Uri uri2) => throw null; public string OriginalString { get => throw null; } protected virtual void Parse() => throw null; public string PathAndQuery { get => throw null; } @@ -6642,20 +13521,12 @@ namespace System public static string SchemeDelimiter; public string[] Segments { get => throw null; } public override string ToString() => throw null; - public static bool TryCreate(System.Uri baseUri, System.Uri relativeUri, out System.Uri result) => throw null; - public static bool TryCreate(System.Uri baseUri, string relativeUri, out System.Uri result) => throw null; - public static bool TryCreate(string uriString, System.UriCreationOptions creationOptions, out System.Uri result) => throw null; + public static bool TryCreate(string uriString, in System.UriCreationOptions creationOptions, out System.Uri result) => throw null; public static bool TryCreate(string uriString, System.UriKind uriKind, out System.Uri result) => throw null; + public static bool TryCreate(System.Uri baseUri, string relativeUri, out System.Uri result) => throw null; + public static bool TryCreate(System.Uri baseUri, System.Uri relativeUri, out System.Uri result) => throw null; protected virtual string Unescape(string path) => throw null; public static string UnescapeDataString(string stringToUnescape) => throw null; - protected Uri(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public Uri(System.Uri baseUri, System.Uri relativeUri) => throw null; - public Uri(System.Uri baseUri, string relativeUri) => throw null; - public Uri(System.Uri baseUri, string relativeUri, bool dontEscape) => throw null; - public Uri(string uriString) => throw null; - public Uri(string uriString, System.UriCreationOptions creationOptions) => throw null; - public Uri(string uriString, System.UriKind uriKind) => throw null; - public Uri(string uriString, bool dontEscape) => throw null; public static string UriSchemeFile; public static string UriSchemeFtp; public static string UriSchemeFtps; @@ -6675,92 +13546,84 @@ namespace System public bool UserEscaped { get => throw null; } public string UserInfo { get => throw null; } } - public class UriBuilder { - public override bool Equals(object rparam) => throw null; - public string Fragment { get => throw null; set => throw null; } - public override int GetHashCode() => throw null; - public string Host { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } - public int Port { get => throw null; set => throw null; } - public string Query { get => throw null; set => throw null; } - public string Scheme { get => throw null; set => throw null; } - public override string ToString() => throw null; - public System.Uri Uri { get => throw null; } public UriBuilder() => throw null; - public UriBuilder(System.Uri uri) => throw null; public UriBuilder(string uri) => throw null; public UriBuilder(string schemeName, string hostName) => throw null; public UriBuilder(string scheme, string host, int portNumber) => throw null; public UriBuilder(string scheme, string host, int port, string pathValue) => throw null; public UriBuilder(string scheme, string host, int port, string path, string extraValue) => throw null; - public string UserName { get => throw null; set => throw null; } + public UriBuilder(System.Uri uri) => throw null; + public override bool Equals(object rparam) => throw null; + public string Fragment { get => throw null; set { } } + public override int GetHashCode() => throw null; + public string Host { get => throw null; set { } } + public string Password { get => throw null; set { } } + public string Path { get => throw null; set { } } + public int Port { get => throw null; set { } } + public string Query { get => throw null; set { } } + public string Scheme { get => throw null; set { } } + public override string ToString() => throw null; + public System.Uri Uri { get => throw null; } + public string UserName { get => throw null; set { } } } - [System.Flags] - public enum UriComponents : int + public enum UriComponents { - AbsoluteUri = 127, - Fragment = 64, - Host = 4, - HostAndPort = 132, - HttpRequestUrl = 61, - KeepDelimiter = 1073741824, - NormalizedHost = 256, - Path = 16, - PathAndQuery = 48, - Port = 8, - Query = 32, - Scheme = 1, - SchemeAndServer = 13, SerializationInfoString = -2147483648, - StrongAuthority = 134, - StrongPort = 128, + Scheme = 1, UserInfo = 2, + Host = 4, + Port = 8, + SchemeAndServer = 13, + Path = 16, + Query = 32, + PathAndQuery = 48, + HttpRequestUrl = 61, + Fragment = 64, + AbsoluteUri = 127, + StrongPort = 128, + HostAndPort = 132, + StrongAuthority = 134, + NormalizedHost = 256, + KeepDelimiter = 1073741824, } - public struct UriCreationOptions { - public bool DangerousDisablePathAndQueryCanonicalization { get => throw null; set => throw null; } - // Stub generator skipped constructor + public bool DangerousDisablePathAndQueryCanonicalization { get => throw null; set { } } } - - public enum UriFormat : int + public enum UriFormat { - SafeUnescaped = 3, - Unescaped = 2, UriEscaped = 1, + Unescaped = 2, + SafeUnescaped = 3, } - public class UriFormatException : System.FormatException, System.Runtime.Serialization.ISerializable { - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public UriFormatException() => throw null; protected UriFormatException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public UriFormatException(string textString) => throw null; public UriFormatException(string textString, System.Exception e) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; } - - public enum UriHostNameType : int + public enum UriHostNameType { + Unknown = 0, Basic = 1, Dns = 2, IPv4 = 3, IPv6 = 4, - Unknown = 0, } - - public enum UriKind : int + public enum UriKind { + RelativeOrAbsolute = 0, Absolute = 1, Relative = 2, - RelativeOrAbsolute = 0, } - public abstract class UriParser { + protected UriParser() => throw null; protected virtual string GetComponents(System.Uri uri, System.UriComponents components, System.UriFormat format) => throw null; protected virtual void InitializeAndValidate(System.Uri uri, out System.UriFormatException parsingError) => throw null; protected virtual bool IsBaseOf(System.Uri baseUri, System.Uri relativeUri) => throw null; @@ -6770,8111 +13633,255 @@ namespace System protected virtual void OnRegister(string schemeName, int defaultPort) => throw null; public static void Register(System.UriParser uriParser, string schemeName, int defaultPort) => throw null; protected virtual string Resolve(System.Uri baseUri, System.Uri relativeUri, out System.UriFormatException parsingError) => throw null; - protected UriParser() => throw null; } - - public enum UriPartial : int + public enum UriPartial { + Scheme = 0, Authority = 1, Path = 2, Query = 3, - Scheme = 0, } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable, System.IEquatable, System.Runtime.CompilerServices.ITuple { public int CompareTo(System.ValueTuple other) => throw null; - int System.IComparable.CompareTo(object other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object other) => throw null; public static System.ValueTuple Create() => throw null; - public static (T1, T2, T3, T4, T5, T6, T7, T8) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) => throw null; - public static (T1, T2, T3, T4, T5, T6, T7) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; - public static (T1, T2, T3, T4, T5, T6) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => throw null; - public static (T1, T2, T3, T4, T5) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => throw null; - public static (T1, T2, T3, T4) Create(T1 item1, T2 item2, T3 item3, T4 item4) => throw null; - public static (T1, T2, T3) Create(T1 item1, T2 item2, T3 item3) => throw null; - public static (T1, T2) Create(T1 item1, T2 item2) => throw null; public static System.ValueTuple Create(T1 item1) => throw null; + public static (T1, T2) Create(T1 item1, T2 item2) => throw null; + public static (T1, T2, T3) Create(T1 item1, T2 item2, T3 item3) => throw null; + public static (T1, T2, T3, T4) Create(T1 item1, T2 item2, T3 item3, T4 item4) => throw null; + public static (T1, T2, T3, T4, T5) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => throw null; + public static (T1, T2, T3, T4, T5, T6) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; + public static (T1, T2, T3, T4, T5, T6, T7, T8) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) => throw null; + public override bool Equals(object obj) => throw null; public bool Equals(System.ValueTuple other) => throw null; - public override bool Equals(object obj) => throw null; bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; public override int GetHashCode() => throw null; int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; - // Stub generator skipped constructor } - - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable>, System.IEquatable>, System.Runtime.CompilerServices.ITuple where TRest : struct - { - public int CompareTo(System.ValueTuple other) => throw null; - int System.IComparable.CompareTo(object other) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public bool Equals(System.ValueTuple other) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1; - public T2 Item2; - public T3 Item3; - public T4 Item4; - public T5 Item5; - public T6 Item6; - public T7 Item7; - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public TRest Rest; - public override string ToString() => throw null; - // Stub generator skipped constructor - public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest rest) => throw null; - } - - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4, T5, T6, T7)>, System.IEquatable<(T1, T2, T3, T4, T5, T6, T7)>, System.Runtime.CompilerServices.ITuple - { - public int CompareTo((T1, T2, T3, T4, T5, T6, T7) other) => throw null; - int System.IComparable.CompareTo(object other) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public bool Equals((T1, T2, T3, T4, T5, T6, T7) other) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1; - public T2 Item2; - public T3 Item3; - public T4 Item4; - public T5 Item5; - public T6 Item6; - public T7 Item7; - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - // Stub generator skipped constructor - public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; - } - - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4, T5, T6)>, System.IEquatable<(T1, T2, T3, T4, T5, T6)>, System.Runtime.CompilerServices.ITuple - { - public int CompareTo((T1, T2, T3, T4, T5, T6) other) => throw null; - int System.IComparable.CompareTo(object other) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public bool Equals((T1, T2, T3, T4, T5, T6) other) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1; - public T2 Item2; - public T3 Item3; - public T4 Item4; - public T5 Item5; - public T6 Item6; - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - // Stub generator skipped constructor - public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => throw null; - } - - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4, T5)>, System.IEquatable<(T1, T2, T3, T4, T5)>, System.Runtime.CompilerServices.ITuple - { - public int CompareTo((T1, T2, T3, T4, T5) other) => throw null; - int System.IComparable.CompareTo(object other) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public bool Equals((T1, T2, T3, T4, T5) other) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1; - public T2 Item2; - public T3 Item3; - public T4 Item4; - public T5 Item5; - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - // Stub generator skipped constructor - public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => throw null; - } - - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4)>, System.IEquatable<(T1, T2, T3, T4)>, System.Runtime.CompilerServices.ITuple - { - public int CompareTo((T1, T2, T3, T4) other) => throw null; - int System.IComparable.CompareTo(object other) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public bool Equals((T1, T2, T3, T4) other) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1; - public T2 Item2; - public T3 Item3; - public T4 Item4; - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - // Stub generator skipped constructor - public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4) => throw null; - } - - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3)>, System.IEquatable<(T1, T2, T3)>, System.Runtime.CompilerServices.ITuple - { - public int CompareTo((T1, T2, T3) other) => throw null; - int System.IComparable.CompareTo(object other) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public bool Equals((T1, T2, T3) other) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1; - public T2 Item2; - public T3 Item3; - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - // Stub generator skipped constructor - public ValueTuple(T1 item1, T2 item2, T3 item3) => throw null; - } - - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2)>, System.IEquatable<(T1, T2)>, System.Runtime.CompilerServices.ITuple - { - public int CompareTo((T1, T2) other) => throw null; - int System.IComparable.CompareTo(object other) => throw null; - int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public bool Equals((T1, T2) other) => throw null; - public override bool Equals(object obj) => throw null; - bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; - public override int GetHashCode() => throw null; - int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1; - public T2 Item2; - object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } - int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } - public override string ToString() => throw null; - // Stub generator skipped constructor - public ValueTuple(T1 item1, T2 item2) => throw null; - } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable>, System.IEquatable>, System.Runtime.CompilerServices.ITuple { public int CompareTo(System.ValueTuple other) => throw null; - int System.IComparable.CompareTo(object other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; - public bool Equals(System.ValueTuple other) => throw null; + int System.IComparable.CompareTo(object other) => throw null; + public ValueTuple(T1 item1) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.ValueTuple other) => throw null; bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; public override int GetHashCode() => throw null; int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; - public T1 Item1; object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1; int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; - // Stub generator skipped constructor - public ValueTuple(T1 item1) => throw null; } - + public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2)>, System.IEquatable<(T1, T2)>, System.Runtime.CompilerServices.ITuple + { + public int CompareTo((T1, T2) other) => throw null; + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object other) => throw null; + public ValueTuple(T1 item1, T2 item2) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals((T1, T2) other) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1; + public T2 Item2; + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3)>, System.IEquatable<(T1, T2, T3)>, System.Runtime.CompilerServices.ITuple + { + public int CompareTo((T1, T2, T3) other) => throw null; + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object other) => throw null; + public ValueTuple(T1 item1, T2 item2, T3 item3) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals((T1, T2, T3) other) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1; + public T2 Item2; + public T3 Item3; + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4)>, System.IEquatable<(T1, T2, T3, T4)>, System.Runtime.CompilerServices.ITuple + { + public int CompareTo((T1, T2, T3, T4) other) => throw null; + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object other) => throw null; + public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals((T1, T2, T3, T4) other) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1; + public T2 Item2; + public T3 Item3; + public T4 Item4; + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4, T5)>, System.IEquatable<(T1, T2, T3, T4, T5)>, System.Runtime.CompilerServices.ITuple + { + public int CompareTo((T1, T2, T3, T4, T5) other) => throw null; + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object other) => throw null; + public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals((T1, T2, T3, T4, T5) other) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1; + public T2 Item2; + public T3 Item3; + public T4 Item4; + public T5 Item5; + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4, T5, T6)>, System.IEquatable<(T1, T2, T3, T4, T5, T6)>, System.Runtime.CompilerServices.ITuple + { + public int CompareTo((T1, T2, T3, T4, T5, T6) other) => throw null; + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object other) => throw null; + public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals((T1, T2, T3, T4, T5, T6) other) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1; + public T2 Item2; + public T3 Item3; + public T4 Item4; + public T5 Item5; + public T6 Item6; + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4, T5, T6, T7)>, System.IEquatable<(T1, T2, T3, T4, T5, T6, T7)>, System.Runtime.CompilerServices.ITuple + { + public int CompareTo((T1, T2, T3, T4, T5, T6, T7) other) => throw null; + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object other) => throw null; + public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals((T1, T2, T3, T4, T5, T6, T7) other) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1; + public T2 Item2; + public T3 Item3; + public T4 Item4; + public T5 Item5; + public T6 Item6; + public T7 Item7; + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public override string ToString() => throw null; + } + public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable>, System.IEquatable>, System.Runtime.CompilerServices.ITuple where TRest : struct + { + public int CompareTo(System.ValueTuple other) => throw null; + int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; + int System.IComparable.CompareTo(object other) => throw null; + public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest rest) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.ValueTuple other) => throw null; + bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) => throw null; + public override int GetHashCode() => throw null; + int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) => throw null; + object System.Runtime.CompilerServices.ITuple.this[int index] { get => throw null; } + public T1 Item1; + public T2 Item2; + public T3 Item3; + public T4 Item4; + public T5 Item5; + public T6 Item6; + public T7 Item7; + int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } + public TRest Rest; + public override string ToString() => throw null; + } public abstract class ValueType { + protected ValueType() => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override string ToString() => throw null; - protected ValueType() => throw null; } - - public class Version : System.ICloneable, System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable + public sealed class Version : System.ICloneable, System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable { - public static bool operator !=(System.Version v1, System.Version v2) => throw null; - public static bool operator <(System.Version v1, System.Version v2) => throw null; - public static bool operator <=(System.Version v1, System.Version v2) => throw null; - public static bool operator ==(System.Version v1, System.Version v2) => throw null; - public static bool operator >(System.Version v1, System.Version v2) => throw null; - public static bool operator >=(System.Version v1, System.Version v2) => throw null; public int Build { get => throw null; } public object Clone() => throw null; - public int CompareTo(System.Version value) => throw null; public int CompareTo(object version) => throw null; - public bool Equals(System.Version obj) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public int Major { get => throw null; } - public System.Int16 MajorRevision { get => throw null; } - public int Minor { get => throw null; } - public System.Int16 MinorRevision { get => throw null; } - public static System.Version Parse(System.ReadOnlySpan input) => throw null; - public static System.Version Parse(string input) => throw null; - public int Revision { get => throw null; } - public override string ToString() => throw null; - public string ToString(int fieldCount) => throw null; - string System.IFormattable.ToString(string format, System.IFormatProvider formatProvider) => throw null; - public bool TryFormat(System.Span destination, int fieldCount, out int charsWritten) => throw null; - public bool TryFormat(System.Span destination, out int charsWritten) => throw null; - bool System.ISpanFormattable.TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; - public static bool TryParse(System.ReadOnlySpan input, out System.Version result) => throw null; - public static bool TryParse(string input, out System.Version result) => throw null; + public int CompareTo(System.Version value) => throw null; public Version() => throw null; public Version(int major, int minor) => throw null; public Version(int major, int minor, int build) => throw null; public Version(int major, int minor, int build, int revision) => throw null; public Version(string version) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.Version obj) => throw null; + public override int GetHashCode() => throw null; + public int Major { get => throw null; } + public short MajorRevision { get => throw null; } + public int Minor { get => throw null; } + public short MinorRevision { get => throw null; } + public static bool operator ==(System.Version v1, System.Version v2) => throw null; + public static bool operator >(System.Version v1, System.Version v2) => throw null; + public static bool operator >=(System.Version v1, System.Version v2) => throw null; + public static bool operator !=(System.Version v1, System.Version v2) => throw null; + public static bool operator <(System.Version v1, System.Version v2) => throw null; + public static bool operator <=(System.Version v1, System.Version v2) => throw null; + public static System.Version Parse(System.ReadOnlySpan input) => throw null; + public static System.Version Parse(string input) => throw null; + public int Revision { get => throw null; } + string System.IFormattable.ToString(string format, System.IFormatProvider formatProvider) => throw null; + public override string ToString() => throw null; + public string ToString(int fieldCount) => throw null; + bool System.ISpanFormattable.TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; + public bool TryFormat(System.Span destination, int fieldCount, out int charsWritten) => throw null; + public bool TryFormat(System.Span destination, out int charsWritten) => throw null; + public static bool TryParse(System.ReadOnlySpan input, out System.Version result) => throw null; + public static bool TryParse(string input, out System.Version result) => throw null; } - public struct Void { } - public class WeakReference : System.Runtime.Serialization.ISerializable { - public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public virtual bool IsAlive { get => throw null; } - public virtual object Target { get => throw null; set => throw null; } - public virtual bool TrackResurrection { get => throw null; } - protected WeakReference(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public WeakReference(object target) => throw null; public WeakReference(object target, bool trackResurrection) => throw null; - // ERR: Stub generator didn't handle member: ~WeakReference + protected WeakReference(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public virtual bool IsAlive { get => throw null; } + public virtual object Target { get => throw null; set { } } + public virtual bool TrackResurrection { get => throw null; } } - - public class WeakReference : System.Runtime.Serialization.ISerializable where T : class + public sealed class WeakReference : System.Runtime.Serialization.ISerializable where T : class { + public WeakReference(T target) => throw null; + public WeakReference(T target, bool trackResurrection) => throw null; public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public void SetTarget(T target) => throw null; public bool TryGetTarget(out T target) => throw null; - public WeakReference(T target) => throw null; - public WeakReference(T target, bool trackResurrection) => throw null; - // ERR: Stub generator didn't handle member: ~WeakReference - } - - namespace Buffers - { - public abstract class ArrayPool - { - protected ArrayPool() => throw null; - public static System.Buffers.ArrayPool Create() => throw null; - public static System.Buffers.ArrayPool Create(int maxArrayLength, int maxArraysPerBucket) => throw null; - public abstract T[] Rent(int minimumLength); - public abstract void Return(T[] array, bool clearArray = default(bool)); - public static System.Buffers.ArrayPool Shared { get => throw null; } - } - - public interface IMemoryOwner : System.IDisposable - { - System.Memory Memory { get; } - } - - public interface IPinnable - { - System.Buffers.MemoryHandle Pin(int elementIndex); - void Unpin(); - } - - public struct MemoryHandle : System.IDisposable - { - public void Dispose() => throw null; - // Stub generator skipped constructor - unsafe public MemoryHandle(void* pointer, System.Runtime.InteropServices.GCHandle handle = default(System.Runtime.InteropServices.GCHandle), System.Buffers.IPinnable pinnable = default(System.Buffers.IPinnable)) => throw null; - unsafe public void* Pointer { get => throw null; } - } - - public abstract class MemoryManager : System.Buffers.IMemoryOwner, System.Buffers.IPinnable, System.IDisposable - { - protected System.Memory CreateMemory(int length) => throw null; - protected System.Memory CreateMemory(int start, int length) => throw null; - void System.IDisposable.Dispose() => throw null; - protected abstract void Dispose(bool disposing); - public abstract System.Span GetSpan(); - public virtual System.Memory Memory { get => throw null; } - protected MemoryManager() => throw null; - public abstract System.Buffers.MemoryHandle Pin(int elementIndex = default(int)); - protected internal virtual bool TryGetArray(out System.ArraySegment segment) => throw null; - public abstract void Unpin(); - } - - public enum OperationStatus : int - { - DestinationTooSmall = 1, - Done = 0, - InvalidData = 3, - NeedMoreData = 2, - } - - public delegate void ReadOnlySpanAction(System.ReadOnlySpan span, TArg arg); - - public delegate void SpanAction(System.Span span, TArg arg); - - namespace Text - { - public static class Base64 - { - public static System.Buffers.OperationStatus DecodeFromUtf8(System.ReadOnlySpan utf8, System.Span bytes, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = default(bool)) => throw null; - public static System.Buffers.OperationStatus DecodeFromUtf8InPlace(System.Span buffer, out int bytesWritten) => throw null; - public static System.Buffers.OperationStatus EncodeToUtf8(System.ReadOnlySpan bytes, System.Span utf8, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = default(bool)) => throw null; - public static System.Buffers.OperationStatus EncodeToUtf8InPlace(System.Span buffer, int dataLength, out int bytesWritten) => throw null; - public static int GetMaxDecodedFromUtf8Length(int length) => throw null; - public static int GetMaxEncodedToUtf8Length(int length) => throw null; - } - - } - } - namespace CodeDom - { - namespace Compiler - { - public class GeneratedCodeAttribute : System.Attribute - { - public GeneratedCodeAttribute(string tool, string version) => throw null; - public string Tool { get => throw null; } - public string Version { get => throw null; } - } - - public class IndentedTextWriter : System.IO.TextWriter - { - public override void Close() => throw null; - public const string DefaultTabString = default; - public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public override System.Text.Encoding Encoding { get => throw null; } - public override void Flush() => throw null; - public override System.Threading.Tasks.Task FlushAsync() => throw null; - public int Indent { get => throw null; set => throw null; } - public IndentedTextWriter(System.IO.TextWriter writer) => throw null; - public IndentedTextWriter(System.IO.TextWriter writer, string tabString) => throw null; - public System.IO.TextWriter InnerWriter { get => throw null; } - public override string NewLine { get => throw null; set => throw null; } - protected virtual void OutputTabs() => throw null; - protected virtual System.Threading.Tasks.Task OutputTabsAsync() => throw null; - public override void Write(System.Char[] buffer) => throw null; - public override void Write(System.Char[] buffer, int index, int count) => throw null; - public override void Write(bool value) => throw null; - public override void Write(System.Char value) => throw null; - public override void Write(double value) => throw null; - public override void Write(float value) => throw null; - public override void Write(int value) => throw null; - public override void Write(System.Int64 value) => throw null; - public override void Write(object value) => throw null; - public override void Write(string s) => throw null; - public override void Write(string format, object arg0) => throw null; - public override void Write(string format, object arg0, object arg1) => throw null; - public override void Write(string format, params object[] arg) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Char value) => throw null; - public override System.Threading.Tasks.Task WriteAsync(string value) => throw null; - public override void WriteLine() => throw null; - public override void WriteLine(System.Char[] buffer) => throw null; - public override void WriteLine(System.Char[] buffer, int index, int count) => throw null; - public override void WriteLine(bool value) => throw null; - public override void WriteLine(System.Char value) => throw null; - public override void WriteLine(double value) => throw null; - public override void WriteLine(float value) => throw null; - public override void WriteLine(int value) => throw null; - public override void WriteLine(System.Int64 value) => throw null; - public override void WriteLine(object value) => throw null; - public override void WriteLine(string s) => throw null; - public override void WriteLine(string format, object arg0) => throw null; - public override void WriteLine(string format, object arg0, object arg1) => throw null; - public override void WriteLine(string format, params object[] arg) => throw null; - public override void WriteLine(System.UInt32 value) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync() => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.Char value) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; - public void WriteLineNoTabs(string s) => throw null; - public System.Threading.Tasks.Task WriteLineNoTabsAsync(string s) => throw null; - } - - } - } - namespace Collections - { - public class ArrayList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ICloneable - { - public static System.Collections.ArrayList Adapter(System.Collections.IList list) => throw null; - public virtual int Add(object value) => throw null; - public virtual void AddRange(System.Collections.ICollection c) => throw null; - public ArrayList() => throw null; - public ArrayList(System.Collections.ICollection c) => throw null; - public ArrayList(int capacity) => throw null; - public virtual int BinarySearch(int index, int count, object value, System.Collections.IComparer comparer) => throw null; - public virtual int BinarySearch(object value) => throw null; - public virtual int BinarySearch(object value, System.Collections.IComparer comparer) => throw null; - public virtual int Capacity { get => throw null; set => throw null; } - public virtual void Clear() => throw null; - public virtual object Clone() => throw null; - public virtual bool Contains(object item) => throw null; - public virtual void CopyTo(System.Array array) => throw null; - public virtual void CopyTo(System.Array array, int arrayIndex) => throw null; - public virtual void CopyTo(int index, System.Array array, int arrayIndex, int count) => throw null; - public virtual int Count { get => throw null; } - public static System.Collections.ArrayList FixedSize(System.Collections.ArrayList list) => throw null; - public static System.Collections.IList FixedSize(System.Collections.IList list) => throw null; - public virtual System.Collections.IEnumerator GetEnumerator() => throw null; - public virtual System.Collections.IEnumerator GetEnumerator(int index, int count) => throw null; - public virtual System.Collections.ArrayList GetRange(int index, int count) => throw null; - public virtual int IndexOf(object value) => throw null; - public virtual int IndexOf(object value, int startIndex) => throw null; - public virtual int IndexOf(object value, int startIndex, int count) => throw null; - public virtual void Insert(int index, object value) => throw null; - public virtual void InsertRange(int index, System.Collections.ICollection c) => throw null; - public virtual bool IsFixedSize { get => throw null; } - public virtual bool IsReadOnly { get => throw null; } - public virtual bool IsSynchronized { get => throw null; } - public virtual object this[int index] { get => throw null; set => throw null; } - public virtual int LastIndexOf(object value) => throw null; - public virtual int LastIndexOf(object value, int startIndex) => throw null; - public virtual int LastIndexOf(object value, int startIndex, int count) => throw null; - public static System.Collections.ArrayList ReadOnly(System.Collections.ArrayList list) => throw null; - public static System.Collections.IList ReadOnly(System.Collections.IList list) => throw null; - public virtual void Remove(object obj) => throw null; - public virtual void RemoveAt(int index) => throw null; - public virtual void RemoveRange(int index, int count) => throw null; - public static System.Collections.ArrayList Repeat(object value, int count) => throw null; - public virtual void Reverse() => throw null; - public virtual void Reverse(int index, int count) => throw null; - public virtual void SetRange(int index, System.Collections.ICollection c) => throw null; - public virtual void Sort() => throw null; - public virtual void Sort(System.Collections.IComparer comparer) => throw null; - public virtual void Sort(int index, int count, System.Collections.IComparer comparer) => throw null; - public virtual object SyncRoot { get => throw null; } - public static System.Collections.ArrayList Synchronized(System.Collections.ArrayList list) => throw null; - public static System.Collections.IList Synchronized(System.Collections.IList list) => throw null; - public virtual object[] ToArray() => throw null; - public virtual System.Array ToArray(System.Type type) => throw null; - public virtual void TrimToSize() => throw null; - } - - public class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable - { - public int Compare(object a, object b) => throw null; - public Comparer(System.Globalization.CultureInfo culture) => throw null; - public static System.Collections.Comparer Default; - public static System.Collections.Comparer DefaultInvariant; - public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - public struct DictionaryEntry - { - public void Deconstruct(out object key, out object value) => throw null; - // Stub generator skipped constructor - public DictionaryEntry(object key, object value) => throw null; - public object Key { get => throw null; set => throw null; } - public object Value { get => throw null; set => throw null; } - } - - public class Hashtable : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.ICloneable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable - { - public virtual void Add(object key, object value) => throw null; - public virtual void Clear() => throw null; - public virtual object Clone() => throw null; - public virtual bool Contains(object key) => throw null; - public virtual bool ContainsKey(object key) => throw null; - public virtual bool ContainsValue(object value) => throw null; - public virtual void CopyTo(System.Array array, int arrayIndex) => throw null; - public virtual int Count { get => throw null; } - protected System.Collections.IEqualityComparer EqualityComparer { get => throw null; } - public virtual System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - protected virtual int GetHash(object key) => throw null; - public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public Hashtable() => throw null; - public Hashtable(System.Collections.IDictionary d) => throw null; - public Hashtable(System.Collections.IDictionary d, System.Collections.IEqualityComparer equalityComparer) => throw null; - public Hashtable(System.Collections.IDictionary d, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer) => throw null; - public Hashtable(System.Collections.IDictionary d, float loadFactor) => throw null; - public Hashtable(System.Collections.IDictionary d, float loadFactor, System.Collections.IEqualityComparer equalityComparer) => throw null; - public Hashtable(System.Collections.IDictionary d, float loadFactor, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer) => throw null; - public Hashtable(System.Collections.IEqualityComparer equalityComparer) => throw null; - public Hashtable(System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer) => throw null; - protected Hashtable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public Hashtable(int capacity) => throw null; - public Hashtable(int capacity, System.Collections.IEqualityComparer equalityComparer) => throw null; - public Hashtable(int capacity, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer) => throw null; - public Hashtable(int capacity, float loadFactor) => throw null; - public Hashtable(int capacity, float loadFactor, System.Collections.IEqualityComparer equalityComparer) => throw null; - public Hashtable(int capacity, float loadFactor, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer) => throw null; - public virtual bool IsFixedSize { get => throw null; } - public virtual bool IsReadOnly { get => throw null; } - public virtual bool IsSynchronized { get => throw null; } - public virtual object this[object key] { get => throw null; set => throw null; } - protected virtual bool KeyEquals(object item, object key) => throw null; - public virtual System.Collections.ICollection Keys { get => throw null; } - public virtual void OnDeserialization(object sender) => throw null; - public virtual void Remove(object key) => throw null; - public virtual object SyncRoot { get => throw null; } - public static System.Collections.Hashtable Synchronized(System.Collections.Hashtable table) => throw null; - public virtual System.Collections.ICollection Values { get => throw null; } - protected System.Collections.IComparer comparer { get => throw null; set => throw null; } - protected System.Collections.IHashCodeProvider hcp { get => throw null; set => throw null; } - } - - public interface ICollection : System.Collections.IEnumerable - { - void CopyTo(System.Array array, int index); - int Count { get; } - bool IsSynchronized { get; } - object SyncRoot { get; } - } - - public interface IComparer - { - int Compare(object x, object y); - } - - public interface IDictionary : System.Collections.ICollection, System.Collections.IEnumerable - { - void Add(object key, object value); - void Clear(); - bool Contains(object key); - System.Collections.IDictionaryEnumerator GetEnumerator(); - bool IsFixedSize { get; } - bool IsReadOnly { get; } - object this[object key] { get; set; } - System.Collections.ICollection Keys { get; } - void Remove(object key); - System.Collections.ICollection Values { get; } - } - - public interface IDictionaryEnumerator : System.Collections.IEnumerator - { - System.Collections.DictionaryEntry Entry { get; } - object Key { get; } - object Value { get; } - } - - public interface IEnumerable - { - System.Collections.IEnumerator GetEnumerator(); - } - - public interface IEnumerator - { - object Current { get; } - bool MoveNext(); - void Reset(); - } - - public interface IEqualityComparer - { - bool Equals(object x, object y); - int GetHashCode(object obj); - } - - public interface IHashCodeProvider - { - int GetHashCode(object obj); - } - - public interface IList : System.Collections.ICollection, System.Collections.IEnumerable - { - int Add(object value); - void Clear(); - bool Contains(object value); - int IndexOf(object value); - void Insert(int index, object value); - bool IsFixedSize { get; } - bool IsReadOnly { get; } - object this[int index] { get; set; } - void Remove(object value); - void RemoveAt(int index); - } - - public interface IStructuralComparable - { - int CompareTo(object other, System.Collections.IComparer comparer); - } - - public interface IStructuralEquatable - { - bool Equals(object other, System.Collections.IEqualityComparer comparer); - int GetHashCode(System.Collections.IEqualityComparer comparer); - } - - namespace Generic - { - public interface IAsyncEnumerable - { - System.Collections.Generic.IAsyncEnumerator GetAsyncEnumerator(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - public interface IAsyncEnumerator : System.IAsyncDisposable - { - T Current { get; } - System.Threading.Tasks.ValueTask MoveNextAsync(); - } - - public interface ICollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - void Add(T item); - void Clear(); - bool Contains(T item); - void CopyTo(T[] array, int arrayIndex); - int Count { get; } - bool IsReadOnly { get; } - bool Remove(T item); - } - - public interface IComparer - { - int Compare(T x, T y); - } - - public interface IDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable - { - void Add(TKey key, TValue value); - bool ContainsKey(TKey key); - TValue this[TKey key] { get; set; } - System.Collections.Generic.ICollection Keys { get; } - bool Remove(TKey key); - bool TryGetValue(TKey key, out TValue value); - System.Collections.Generic.ICollection Values { get; } - } - - public interface IEnumerable : System.Collections.IEnumerable - { - System.Collections.Generic.IEnumerator GetEnumerator(); - } - - public interface IEnumerator : System.Collections.IEnumerator, System.IDisposable - { - T Current { get; } - } - - public interface IEqualityComparer - { - bool Equals(T x, T y); - int GetHashCode(T obj); - } - - public interface IList : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - int IndexOf(T item); - void Insert(int index, T item); - T this[int index] { get; set; } - void RemoveAt(int index); - } - - public interface IReadOnlyCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - int Count { get; } - } - - public interface IReadOnlyDictionary : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.IEnumerable - { - bool ContainsKey(TKey key); - TValue this[TKey key] { get; } - System.Collections.Generic.IEnumerable Keys { get; } - bool TryGetValue(TKey key, out TValue value); - System.Collections.Generic.IEnumerable Values { get; } - } - - public interface IReadOnlyList : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable - { - T this[int index] { get; } - } - - public interface IReadOnlySet : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable - { - bool Contains(T item); - bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other); - bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other); - bool IsSubsetOf(System.Collections.Generic.IEnumerable other); - bool IsSupersetOf(System.Collections.Generic.IEnumerable other); - bool Overlaps(System.Collections.Generic.IEnumerable other); - bool SetEquals(System.Collections.Generic.IEnumerable other); - } - - public interface ISet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - bool Add(T item); - void ExceptWith(System.Collections.Generic.IEnumerable other); - void IntersectWith(System.Collections.Generic.IEnumerable other); - bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other); - bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other); - bool IsSubsetOf(System.Collections.Generic.IEnumerable other); - bool IsSupersetOf(System.Collections.Generic.IEnumerable other); - bool Overlaps(System.Collections.Generic.IEnumerable other); - bool SetEquals(System.Collections.Generic.IEnumerable other); - void SymmetricExceptWith(System.Collections.Generic.IEnumerable other); - void UnionWith(System.Collections.Generic.IEnumerable other); - } - - public class KeyNotFoundException : System.SystemException - { - public KeyNotFoundException() => throw null; - protected KeyNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public KeyNotFoundException(string message) => throw null; - public KeyNotFoundException(string message, System.Exception innerException) => throw null; - } - - public static class KeyValuePair - { - public static System.Collections.Generic.KeyValuePair Create(TKey key, TValue value) => throw null; - } - - public struct KeyValuePair - { - public void Deconstruct(out TKey key, out TValue value) => throw null; - public TKey Key { get => throw null; } - // Stub generator skipped constructor - public KeyValuePair(TKey key, TValue value) => throw null; - public override string ToString() => throw null; - public TValue Value { get => throw null; } - } - - } - namespace ObjectModel - { - public class Collection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList - { - public void Add(T item) => throw null; - int System.Collections.IList.Add(object value) => throw null; - public void Clear() => throw null; - protected virtual void ClearItems() => throw null; - public Collection() => throw null; - public Collection(System.Collections.Generic.IList list) => throw null; - public bool Contains(T item) => throw null; - bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(T[] array, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public int IndexOf(T item) => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; - public void Insert(int index, T item) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; - protected virtual void InsertItem(int index, T item) => throw null; - bool System.Collections.IList.IsFixedSize { get => throw null; } - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - bool System.Collections.IList.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public T this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - protected System.Collections.Generic.IList Items { get => throw null; } - public bool Remove(T item) => throw null; - void System.Collections.IList.Remove(object value) => throw null; - public void RemoveAt(int index) => throw null; - protected virtual void RemoveItem(int index) => throw null; - protected virtual void SetItem(int index, T item) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - public class ReadOnlyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList - { - void System.Collections.Generic.ICollection.Add(T value) => throw null; - int System.Collections.IList.Add(object value) => throw null; - void System.Collections.Generic.ICollection.Clear() => throw null; - void System.Collections.IList.Clear() => throw null; - public bool Contains(T value) => throw null; - bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(T[] array, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public int IndexOf(T value) => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; - void System.Collections.Generic.IList.Insert(int index, T value) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; - bool System.Collections.IList.IsFixedSize { get => throw null; } - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - bool System.Collections.IList.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public T this[int index] { get => throw null; } - T System.Collections.Generic.IList.this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - protected System.Collections.Generic.IList Items { get => throw null; } - public ReadOnlyCollection(System.Collections.Generic.IList list) => throw null; - bool System.Collections.Generic.ICollection.Remove(T value) => throw null; - void System.Collections.IList.Remove(object value) => throw null; - void System.Collections.Generic.IList.RemoveAt(int index) => throw null; - void System.Collections.IList.RemoveAt(int index) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - public class ReadOnlyDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable - { - public class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable - { - void System.Collections.Generic.ICollection.Add(TKey item) => throw null; - void System.Collections.Generic.ICollection.Clear() => throw null; - bool System.Collections.Generic.ICollection.Contains(TKey item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(TKey[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - bool System.Collections.Generic.ICollection.Remove(TKey item) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - - public class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable - { - void System.Collections.Generic.ICollection.Add(TValue item) => throw null; - void System.Collections.Generic.ICollection.Clear() => throw null; - bool System.Collections.Generic.ICollection.Contains(TValue item) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(TValue[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - bool System.Collections.Generic.ICollection.Remove(TValue item) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; - void System.Collections.Generic.IDictionary.Add(TKey key, TValue value) => throw null; - void System.Collections.IDictionary.Add(object key, object value) => throw null; - void System.Collections.Generic.ICollection>.Clear() => throw null; - void System.Collections.IDictionary.Clear() => throw null; - bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair item) => throw null; - bool System.Collections.IDictionary.Contains(object key) => throw null; - public bool ContainsKey(TKey key) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - protected System.Collections.Generic.IDictionary Dictionary { get => throw null; } - public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; - System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - bool System.Collections.IDictionary.IsFixedSize { get => throw null; } - bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } - bool System.Collections.IDictionary.IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public TValue this[TKey key] { get => throw null; } - TValue System.Collections.Generic.IDictionary.this[TKey key] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } - public System.Collections.ObjectModel.ReadOnlyDictionary.KeyCollection Keys { get => throw null; } - System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } - System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } - System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } - public ReadOnlyDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; - bool System.Collections.Generic.IDictionary.Remove(TKey key) => throw null; - void System.Collections.IDictionary.Remove(object key) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - public bool TryGetValue(TKey key, out TValue value) => throw null; - public System.Collections.ObjectModel.ReadOnlyDictionary.ValueCollection Values { get => throw null; } - System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } - System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } - System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } - } - - } - } - namespace ComponentModel - { - public class DefaultValueAttribute : System.Attribute - { - public DefaultValueAttribute(System.Type type, string value) => throw null; - public DefaultValueAttribute(bool value) => throw null; - public DefaultValueAttribute(System.Byte value) => throw null; - public DefaultValueAttribute(System.Char value) => throw null; - public DefaultValueAttribute(double value) => throw null; - public DefaultValueAttribute(float value) => throw null; - public DefaultValueAttribute(int value) => throw null; - public DefaultValueAttribute(System.Int64 value) => throw null; - public DefaultValueAttribute(object value) => throw null; - public DefaultValueAttribute(System.SByte value) => throw null; - public DefaultValueAttribute(System.Int16 value) => throw null; - public DefaultValueAttribute(string value) => throw null; - public DefaultValueAttribute(System.UInt32 value) => throw null; - public DefaultValueAttribute(System.UInt64 value) => throw null; - public DefaultValueAttribute(System.UInt16 value) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - protected void SetValue(object value) => throw null; - public virtual object Value { get => throw null; } - } - - public class EditorBrowsableAttribute : System.Attribute - { - public EditorBrowsableAttribute() => throw null; - public EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState state) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public System.ComponentModel.EditorBrowsableState State { get => throw null; } - } - - public enum EditorBrowsableState : int - { - Advanced = 2, - Always = 0, - Never = 1, - } - - } - namespace Configuration - { - namespace Assemblies - { - public enum AssemblyHashAlgorithm : int - { - MD5 = 32771, - None = 0, - SHA1 = 32772, - SHA256 = 32780, - SHA384 = 32781, - SHA512 = 32782, - } - - public enum AssemblyVersionCompatibility : int - { - SameDomain = 3, - SameMachine = 1, - SameProcess = 2, - } - - } - } - namespace Diagnostics - { - public class ConditionalAttribute : System.Attribute - { - public string ConditionString { get => throw null; } - public ConditionalAttribute(string conditionString) => throw null; - } - - public static class Debug - { - public struct AssertInterpolatedStringHandler - { - public void AppendFormatted(System.ReadOnlySpan value) => throw null; - public void AppendFormatted(System.ReadOnlySpan value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(object value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(string value) => throw null; - public void AppendFormatted(string value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(T value) => throw null; - public void AppendFormatted(T value, int alignment) => throw null; - public void AppendFormatted(T value, int alignment, string format) => throw null; - public void AppendFormatted(T value, string format) => throw null; - public void AppendLiteral(string value) => throw null; - // Stub generator skipped constructor - public AssertInterpolatedStringHandler(int literalLength, int formattedCount, bool condition, out bool shouldAppend) => throw null; - } - - - public struct WriteIfInterpolatedStringHandler - { - public void AppendFormatted(System.ReadOnlySpan value) => throw null; - public void AppendFormatted(System.ReadOnlySpan value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(object value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(string value) => throw null; - public void AppendFormatted(string value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(T value) => throw null; - public void AppendFormatted(T value, int alignment) => throw null; - public void AppendFormatted(T value, int alignment, string format) => throw null; - public void AppendFormatted(T value, string format) => throw null; - public void AppendLiteral(string value) => throw null; - // Stub generator skipped constructor - public WriteIfInterpolatedStringHandler(int literalLength, int formattedCount, bool condition, out bool shouldAppend) => throw null; - } - - - public static void Assert(bool condition) => throw null; - public static void Assert(bool condition, ref System.Diagnostics.Debug.AssertInterpolatedStringHandler message) => throw null; - public static void Assert(bool condition, ref System.Diagnostics.Debug.AssertInterpolatedStringHandler message, ref System.Diagnostics.Debug.AssertInterpolatedStringHandler detailMessage) => throw null; - public static void Assert(bool condition, string message) => throw null; - public static void Assert(bool condition, string message, string detailMessage) => throw null; - public static void Assert(bool condition, string message, string detailMessageFormat, params object[] args) => throw null; - public static bool AutoFlush { get => throw null; set => throw null; } - public static void Close() => throw null; - public static void Fail(string message) => throw null; - public static void Fail(string message, string detailMessage) => throw null; - public static void Flush() => throw null; - public static void Indent() => throw null; - public static int IndentLevel { get => throw null; set => throw null; } - public static int IndentSize { get => throw null; set => throw null; } - public static void Print(string message) => throw null; - public static void Print(string format, params object[] args) => throw null; - public static void Unindent() => throw null; - public static void Write(object value) => throw null; - public static void Write(object value, string category) => throw null; - public static void Write(string message) => throw null; - public static void Write(string message, string category) => throw null; - public static void WriteIf(bool condition, object value) => throw null; - public static void WriteIf(bool condition, object value, string category) => throw null; - public static void WriteIf(bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message) => throw null; - public static void WriteIf(bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message, string category) => throw null; - public static void WriteIf(bool condition, string message) => throw null; - public static void WriteIf(bool condition, string message, string category) => throw null; - public static void WriteLine(object value) => throw null; - public static void WriteLine(object value, string category) => throw null; - public static void WriteLine(string message) => throw null; - public static void WriteLine(string format, params object[] args) => throw null; - public static void WriteLine(string message, string category) => throw null; - public static void WriteLineIf(bool condition, object value) => throw null; - public static void WriteLineIf(bool condition, object value, string category) => throw null; - public static void WriteLineIf(bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message) => throw null; - public static void WriteLineIf(bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message, string category) => throw null; - public static void WriteLineIf(bool condition, string message) => throw null; - public static void WriteLineIf(bool condition, string message, string category) => throw null; - } - - public class DebuggableAttribute : System.Attribute - { - [System.Flags] - public enum DebuggingModes : int - { - Default = 1, - DisableOptimizations = 256, - EnableEditAndContinue = 4, - IgnoreSymbolStoreSequencePoints = 2, - None = 0, - } - - - public DebuggableAttribute(System.Diagnostics.DebuggableAttribute.DebuggingModes modes) => throw null; - public DebuggableAttribute(bool isJITTrackingEnabled, bool isJITOptimizerDisabled) => throw null; - public System.Diagnostics.DebuggableAttribute.DebuggingModes DebuggingFlags { get => throw null; } - public bool IsJITOptimizerDisabled { get => throw null; } - public bool IsJITTrackingEnabled { get => throw null; } - } - - public static class Debugger - { - public static void Break() => throw null; - public static string DefaultCategory; - public static bool IsAttached { get => throw null; } - public static bool IsLogging() => throw null; - public static bool Launch() => throw null; - public static void Log(int level, string category, string message) => throw null; - public static void NotifyOfCrossThreadDependency() => throw null; - } - - public class DebuggerBrowsableAttribute : System.Attribute - { - public DebuggerBrowsableAttribute(System.Diagnostics.DebuggerBrowsableState state) => throw null; - public System.Diagnostics.DebuggerBrowsableState State { get => throw null; } - } - - public enum DebuggerBrowsableState : int - { - Collapsed = 2, - Never = 0, - RootHidden = 3, - } - - public class DebuggerDisplayAttribute : System.Attribute - { - public DebuggerDisplayAttribute(string value) => throw null; - public string Name { get => throw null; set => throw null; } - public System.Type Target { get => throw null; set => throw null; } - public string TargetTypeName { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - public string Value { get => throw null; } - } - - public class DebuggerHiddenAttribute : System.Attribute - { - public DebuggerHiddenAttribute() => throw null; - } - - public class DebuggerNonUserCodeAttribute : System.Attribute - { - public DebuggerNonUserCodeAttribute() => throw null; - } - - public class DebuggerStepThroughAttribute : System.Attribute - { - public DebuggerStepThroughAttribute() => throw null; - } - - public class DebuggerStepperBoundaryAttribute : System.Attribute - { - public DebuggerStepperBoundaryAttribute() => throw null; - } - - public class DebuggerTypeProxyAttribute : System.Attribute - { - public DebuggerTypeProxyAttribute(System.Type type) => throw null; - public DebuggerTypeProxyAttribute(string typeName) => throw null; - public string ProxyTypeName { get => throw null; } - public System.Type Target { get => throw null; set => throw null; } - public string TargetTypeName { get => throw null; set => throw null; } - } - - public class DebuggerVisualizerAttribute : System.Attribute - { - public DebuggerVisualizerAttribute(System.Type visualizer) => throw null; - public DebuggerVisualizerAttribute(System.Type visualizer, System.Type visualizerObjectSource) => throw null; - public DebuggerVisualizerAttribute(System.Type visualizer, string visualizerObjectSourceTypeName) => throw null; - public DebuggerVisualizerAttribute(string visualizerTypeName) => throw null; - public DebuggerVisualizerAttribute(string visualizerTypeName, System.Type visualizerObjectSource) => throw null; - public DebuggerVisualizerAttribute(string visualizerTypeName, string visualizerObjectSourceTypeName) => throw null; - public string Description { get => throw null; set => throw null; } - public System.Type Target { get => throw null; set => throw null; } - public string TargetTypeName { get => throw null; set => throw null; } - public string VisualizerObjectSourceTypeName { get => throw null; } - public string VisualizerTypeName { get => throw null; } - } - - public class StackTraceHiddenAttribute : System.Attribute - { - public StackTraceHiddenAttribute() => throw null; - } - - public class Stopwatch - { - public System.TimeSpan Elapsed { get => throw null; } - public System.Int64 ElapsedMilliseconds { get => throw null; } - public System.Int64 ElapsedTicks { get => throw null; } - public static System.Int64 Frequency; - public static System.TimeSpan GetElapsedTime(System.Int64 startingTimestamp) => throw null; - public static System.TimeSpan GetElapsedTime(System.Int64 startingTimestamp, System.Int64 endingTimestamp) => throw null; - public static System.Int64 GetTimestamp() => throw null; - public static bool IsHighResolution; - public bool IsRunning { get => throw null; } - public void Reset() => throw null; - public void Restart() => throw null; - public void Start() => throw null; - public static System.Diagnostics.Stopwatch StartNew() => throw null; - public void Stop() => throw null; - public Stopwatch() => throw null; - } - - public class UnreachableException : System.Exception - { - public UnreachableException() => throw null; - public UnreachableException(string message) => throw null; - public UnreachableException(string message, System.Exception innerException) => throw null; - } - - namespace CodeAnalysis - { - public partial class AllowNullAttribute : System.Attribute - { - public AllowNullAttribute() => throw null; - } - - public class ConstantExpectedAttribute : System.Attribute - { - public ConstantExpectedAttribute() => throw null; - public object Max { get => throw null; set => throw null; } - public object Min { get => throw null; set => throw null; } - } - - public class DisallowNullAttribute : System.Attribute - { - public DisallowNullAttribute() => throw null; - } - - public class DoesNotReturnAttribute : System.Attribute - { - public DoesNotReturnAttribute() => throw null; - } - - public partial class DoesNotReturnIfAttribute : System.Attribute - { - public DoesNotReturnIfAttribute(bool parameterValue) => throw null; - public bool ParameterValue { get => throw null; } - } - - public class DynamicDependencyAttribute : System.Attribute - { - public string AssemblyName { get => throw null; } - public string Condition { get => throw null; set => throw null; } - public DynamicDependencyAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes memberTypes, System.Type type) => throw null; - public DynamicDependencyAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes memberTypes, string typeName, string assemblyName) => throw null; - public DynamicDependencyAttribute(string memberSignature) => throw null; - public DynamicDependencyAttribute(string memberSignature, System.Type type) => throw null; - public DynamicDependencyAttribute(string memberSignature, string typeName, string assemblyName) => throw null; - public string MemberSignature { get => throw null; } - public System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes MemberTypes { get => throw null; } - public System.Type Type { get => throw null; } - public string TypeName { get => throw null; } - } - - [System.Flags] - public enum DynamicallyAccessedMemberTypes : int - { - All = -1, - Interfaces = 8192, - NonPublicConstructors = 4, - NonPublicEvents = 4096, - NonPublicFields = 64, - NonPublicMethods = 16, - NonPublicNestedTypes = 256, - NonPublicProperties = 1024, - None = 0, - PublicConstructors = 3, - PublicEvents = 2048, - PublicFields = 32, - PublicMethods = 8, - PublicNestedTypes = 128, - PublicParameterlessConstructor = 1, - PublicProperties = 512, - } - - public class DynamicallyAccessedMembersAttribute : System.Attribute - { - public DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes memberTypes) => throw null; - public System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes MemberTypes { get => throw null; } - } - - public class ExcludeFromCodeCoverageAttribute : System.Attribute - { - public ExcludeFromCodeCoverageAttribute() => throw null; - public string Justification { get => throw null; set => throw null; } - } - - public partial class MaybeNullAttribute : System.Attribute - { - public MaybeNullAttribute() => throw null; - } - - public class MaybeNullWhenAttribute : System.Attribute - { - public MaybeNullWhenAttribute(bool returnValue) => throw null; - public bool ReturnValue { get => throw null; } - } - - public class MemberNotNullAttribute : System.Attribute - { - public MemberNotNullAttribute(params string[] members) => throw null; - public MemberNotNullAttribute(string member) => throw null; - public string[] Members { get => throw null; } - } - - public class MemberNotNullWhenAttribute : System.Attribute - { - public MemberNotNullWhenAttribute(bool returnValue, params string[] members) => throw null; - public MemberNotNullWhenAttribute(bool returnValue, string member) => throw null; - public string[] Members { get => throw null; } - public bool ReturnValue { get => throw null; } - } - - public partial class NotNullAttribute : System.Attribute - { - public NotNullAttribute() => throw null; - } - - public class NotNullIfNotNullAttribute : System.Attribute - { - public NotNullIfNotNullAttribute(string parameterName) => throw null; - public string ParameterName { get => throw null; } - } - - public partial class NotNullWhenAttribute : System.Attribute - { - public NotNullWhenAttribute(bool returnValue) => throw null; - public bool ReturnValue { get => throw null; } - } - - public class RequiresAssemblyFilesAttribute : System.Attribute - { - public string Message { get => throw null; } - public RequiresAssemblyFilesAttribute() => throw null; - public RequiresAssemblyFilesAttribute(string message) => throw null; - public string Url { get => throw null; set => throw null; } - } - - public class RequiresDynamicCodeAttribute : System.Attribute - { - public string Message { get => throw null; } - public RequiresDynamicCodeAttribute(string message) => throw null; - public string Url { get => throw null; set => throw null; } - } - - public class RequiresUnreferencedCodeAttribute : System.Attribute - { - public string Message { get => throw null; } - public RequiresUnreferencedCodeAttribute(string message) => throw null; - public string Url { get => throw null; set => throw null; } - } - - public class SetsRequiredMembersAttribute : System.Attribute - { - public SetsRequiredMembersAttribute() => throw null; - } - - public class StringSyntaxAttribute : System.Attribute - { - public object[] Arguments { get => throw null; } - public const string CompositeFormat = default; - public const string DateOnlyFormat = default; - public const string DateTimeFormat = default; - public const string EnumFormat = default; - public const string GuidFormat = default; - public const string Json = default; - public const string NumericFormat = default; - public const string Regex = default; - public StringSyntaxAttribute(string syntax) => throw null; - public StringSyntaxAttribute(string syntax, params object[] arguments) => throw null; - public string Syntax { get => throw null; } - public const string TimeOnlyFormat = default; - public const string TimeSpanFormat = default; - public const string Uri = default; - public const string Xml = default; - } - - public class SuppressMessageAttribute : System.Attribute - { - public string Category { get => throw null; } - public string CheckId { get => throw null; } - public string Justification { get => throw null; set => throw null; } - public string MessageId { get => throw null; set => throw null; } - public string Scope { get => throw null; set => throw null; } - public SuppressMessageAttribute(string category, string checkId) => throw null; - public string Target { get => throw null; set => throw null; } - } - - public class UnconditionalSuppressMessageAttribute : System.Attribute - { - public string Category { get => throw null; } - public string CheckId { get => throw null; } - public string Justification { get => throw null; set => throw null; } - public string MessageId { get => throw null; set => throw null; } - public string Scope { get => throw null; set => throw null; } - public string Target { get => throw null; set => throw null; } - public UnconditionalSuppressMessageAttribute(string category, string checkId) => throw null; - } - - public class UnscopedRefAttribute : System.Attribute - { - public UnscopedRefAttribute() => throw null; - } - - } - } - namespace Globalization - { - public abstract class Calendar : System.ICloneable - { - public virtual System.DateTime AddDays(System.DateTime time, int days) => throw null; - public virtual System.DateTime AddHours(System.DateTime time, int hours) => throw null; - public virtual System.DateTime AddMilliseconds(System.DateTime time, double milliseconds) => throw null; - public virtual System.DateTime AddMinutes(System.DateTime time, int minutes) => throw null; - public abstract System.DateTime AddMonths(System.DateTime time, int months); - public virtual System.DateTime AddSeconds(System.DateTime time, int seconds) => throw null; - public virtual System.DateTime AddWeeks(System.DateTime time, int weeks) => throw null; - public abstract System.DateTime AddYears(System.DateTime time, int years); - public virtual System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - protected Calendar() => throw null; - public virtual object Clone() => throw null; - public const int CurrentEra = default; - protected virtual int DaysInYearBeforeMinSupportedYear { get => throw null; } - public abstract int[] Eras { get; } - public abstract int GetDayOfMonth(System.DateTime time); - public abstract System.DayOfWeek GetDayOfWeek(System.DateTime time); - public abstract int GetDayOfYear(System.DateTime time); - public virtual int GetDaysInMonth(int year, int month) => throw null; - public abstract int GetDaysInMonth(int year, int month, int era); - public virtual int GetDaysInYear(int year) => throw null; - public abstract int GetDaysInYear(int year, int era); - public abstract int GetEra(System.DateTime time); - public virtual int GetHour(System.DateTime time) => throw null; - public virtual int GetLeapMonth(int year) => throw null; - public virtual int GetLeapMonth(int year, int era) => throw null; - public virtual double GetMilliseconds(System.DateTime time) => throw null; - public virtual int GetMinute(System.DateTime time) => throw null; - public abstract int GetMonth(System.DateTime time); - public virtual int GetMonthsInYear(int year) => throw null; - public abstract int GetMonthsInYear(int year, int era); - public virtual int GetSecond(System.DateTime time) => throw null; - public virtual int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) => throw null; - public abstract int GetYear(System.DateTime time); - public virtual bool IsLeapDay(int year, int month, int day) => throw null; - public abstract bool IsLeapDay(int year, int month, int day, int era); - public virtual bool IsLeapMonth(int year, int month) => throw null; - public abstract bool IsLeapMonth(int year, int month, int era); - public virtual bool IsLeapYear(int year) => throw null; - public abstract bool IsLeapYear(int year, int era); - public bool IsReadOnly { get => throw null; } - public virtual System.DateTime MaxSupportedDateTime { get => throw null; } - public virtual System.DateTime MinSupportedDateTime { get => throw null; } - public static System.Globalization.Calendar ReadOnly(System.Globalization.Calendar calendar) => throw null; - public virtual System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond) => throw null; - public abstract System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era); - public virtual int ToFourDigitYear(int year) => throw null; - public virtual int TwoDigitYearMax { get => throw null; set => throw null; } - } - - public enum CalendarAlgorithmType : int - { - LunarCalendar = 2, - LunisolarCalendar = 3, - SolarCalendar = 1, - Unknown = 0, - } - - public enum CalendarWeekRule : int - { - FirstDay = 0, - FirstFourDayWeek = 2, - FirstFullWeek = 1, - } - - public static class CharUnicodeInfo - { - public static int GetDecimalDigitValue(System.Char ch) => throw null; - public static int GetDecimalDigitValue(string s, int index) => throw null; - public static int GetDigitValue(System.Char ch) => throw null; - public static int GetDigitValue(string s, int index) => throw null; - public static double GetNumericValue(System.Char ch) => throw null; - public static double GetNumericValue(string s, int index) => throw null; - public static System.Globalization.UnicodeCategory GetUnicodeCategory(System.Char ch) => throw null; - public static System.Globalization.UnicodeCategory GetUnicodeCategory(int codePoint) => throw null; - public static System.Globalization.UnicodeCategory GetUnicodeCategory(string s, int index) => throw null; - } - - public class ChineseLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar - { - public const int ChineseEra = default; - public ChineseLunisolarCalendar() => throw null; - protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetEra(System.DateTime time) => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - } - - public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback - { - public int Compare(System.ReadOnlySpan string1, System.ReadOnlySpan string2, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; - public int Compare(string string1, int offset1, int length1, string string2, int offset2, int length2) => throw null; - public int Compare(string string1, int offset1, int length1, string string2, int offset2, int length2, System.Globalization.CompareOptions options) => throw null; - public int Compare(string string1, int offset1, string string2, int offset2) => throw null; - public int Compare(string string1, int offset1, string string2, int offset2, System.Globalization.CompareOptions options) => throw null; - public int Compare(string string1, string string2) => throw null; - public int Compare(string string1, string string2, System.Globalization.CompareOptions options) => throw null; - public override bool Equals(object value) => throw null; - public static System.Globalization.CompareInfo GetCompareInfo(int culture) => throw null; - public static System.Globalization.CompareInfo GetCompareInfo(int culture, System.Reflection.Assembly assembly) => throw null; - public static System.Globalization.CompareInfo GetCompareInfo(string name) => throw null; - public static System.Globalization.CompareInfo GetCompareInfo(string name, System.Reflection.Assembly assembly) => throw null; - public override int GetHashCode() => throw null; - public int GetHashCode(System.ReadOnlySpan source, System.Globalization.CompareOptions options) => throw null; - public int GetHashCode(string source, System.Globalization.CompareOptions options) => throw null; - public int GetSortKey(System.ReadOnlySpan source, System.Span destination, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; - public System.Globalization.SortKey GetSortKey(string source) => throw null; - public System.Globalization.SortKey GetSortKey(string source, System.Globalization.CompareOptions options) => throw null; - public int GetSortKeyLength(System.ReadOnlySpan source, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; - public int IndexOf(System.ReadOnlySpan source, System.ReadOnlySpan value, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; - public int IndexOf(System.ReadOnlySpan source, System.ReadOnlySpan value, System.Globalization.CompareOptions options, out int matchLength) => throw null; - public int IndexOf(System.ReadOnlySpan source, System.Text.Rune value, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; - public int IndexOf(string source, System.Char value) => throw null; - public int IndexOf(string source, System.Char value, System.Globalization.CompareOptions options) => throw null; - public int IndexOf(string source, System.Char value, int startIndex) => throw null; - public int IndexOf(string source, System.Char value, int startIndex, System.Globalization.CompareOptions options) => throw null; - public int IndexOf(string source, System.Char value, int startIndex, int count) => throw null; - public int IndexOf(string source, System.Char value, int startIndex, int count, System.Globalization.CompareOptions options) => throw null; - public int IndexOf(string source, string value) => throw null; - public int IndexOf(string source, string value, System.Globalization.CompareOptions options) => throw null; - public int IndexOf(string source, string value, int startIndex) => throw null; - public int IndexOf(string source, string value, int startIndex, System.Globalization.CompareOptions options) => throw null; - public int IndexOf(string source, string value, int startIndex, int count) => throw null; - public int IndexOf(string source, string value, int startIndex, int count, System.Globalization.CompareOptions options) => throw null; - public bool IsPrefix(System.ReadOnlySpan source, System.ReadOnlySpan prefix, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; - public bool IsPrefix(System.ReadOnlySpan source, System.ReadOnlySpan prefix, System.Globalization.CompareOptions options, out int matchLength) => throw null; - public bool IsPrefix(string source, string prefix) => throw null; - public bool IsPrefix(string source, string prefix, System.Globalization.CompareOptions options) => throw null; - public static bool IsSortable(System.ReadOnlySpan text) => throw null; - public static bool IsSortable(System.Text.Rune value) => throw null; - public static bool IsSortable(System.Char ch) => throw null; - public static bool IsSortable(string text) => throw null; - public bool IsSuffix(System.ReadOnlySpan source, System.ReadOnlySpan suffix, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; - public bool IsSuffix(System.ReadOnlySpan source, System.ReadOnlySpan suffix, System.Globalization.CompareOptions options, out int matchLength) => throw null; - public bool IsSuffix(string source, string suffix) => throw null; - public bool IsSuffix(string source, string suffix, System.Globalization.CompareOptions options) => throw null; - public int LCID { get => throw null; } - public int LastIndexOf(System.ReadOnlySpan source, System.ReadOnlySpan value, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; - public int LastIndexOf(System.ReadOnlySpan source, System.ReadOnlySpan value, System.Globalization.CompareOptions options, out int matchLength) => throw null; - public int LastIndexOf(System.ReadOnlySpan source, System.Text.Rune value, System.Globalization.CompareOptions options = default(System.Globalization.CompareOptions)) => throw null; - public int LastIndexOf(string source, System.Char value) => throw null; - public int LastIndexOf(string source, System.Char value, System.Globalization.CompareOptions options) => throw null; - public int LastIndexOf(string source, System.Char value, int startIndex) => throw null; - public int LastIndexOf(string source, System.Char value, int startIndex, System.Globalization.CompareOptions options) => throw null; - public int LastIndexOf(string source, System.Char value, int startIndex, int count) => throw null; - public int LastIndexOf(string source, System.Char value, int startIndex, int count, System.Globalization.CompareOptions options) => throw null; - public int LastIndexOf(string source, string value) => throw null; - public int LastIndexOf(string source, string value, System.Globalization.CompareOptions options) => throw null; - public int LastIndexOf(string source, string value, int startIndex) => throw null; - public int LastIndexOf(string source, string value, int startIndex, System.Globalization.CompareOptions options) => throw null; - public int LastIndexOf(string source, string value, int startIndex, int count) => throw null; - public int LastIndexOf(string source, string value, int startIndex, int count, System.Globalization.CompareOptions options) => throw null; - public string Name { get => throw null; } - void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public override string ToString() => throw null; - public System.Globalization.SortVersion Version { get => throw null; } - } - - [System.Flags] - public enum CompareOptions : int - { - IgnoreCase = 1, - IgnoreKanaType = 8, - IgnoreNonSpace = 2, - IgnoreSymbols = 4, - IgnoreWidth = 16, - None = 0, - Ordinal = 1073741824, - OrdinalIgnoreCase = 268435456, - StringSort = 536870912, - } - - public class CultureInfo : System.ICloneable, System.IFormatProvider - { - public virtual System.Globalization.Calendar Calendar { get => throw null; } - public void ClearCachedData() => throw null; - public virtual object Clone() => throw null; - public virtual System.Globalization.CompareInfo CompareInfo { get => throw null; } - public static System.Globalization.CultureInfo CreateSpecificCulture(string name) => throw null; - public CultureInfo(int culture) => throw null; - public CultureInfo(int culture, bool useUserOverride) => throw null; - public CultureInfo(string name) => throw null; - public CultureInfo(string name, bool useUserOverride) => throw null; - public System.Globalization.CultureTypes CultureTypes { get => throw null; } - public static System.Globalization.CultureInfo CurrentCulture { get => throw null; set => throw null; } - public static System.Globalization.CultureInfo CurrentUICulture { get => throw null; set => throw null; } - public virtual System.Globalization.DateTimeFormatInfo DateTimeFormat { get => throw null; set => throw null; } - public static System.Globalization.CultureInfo DefaultThreadCurrentCulture { get => throw null; set => throw null; } - public static System.Globalization.CultureInfo DefaultThreadCurrentUICulture { get => throw null; set => throw null; } - public virtual string DisplayName { get => throw null; } - public virtual string EnglishName { get => throw null; } - public override bool Equals(object value) => throw null; - public System.Globalization.CultureInfo GetConsoleFallbackUICulture() => throw null; - public static System.Globalization.CultureInfo GetCultureInfo(int culture) => throw null; - public static System.Globalization.CultureInfo GetCultureInfo(string name) => throw null; - public static System.Globalization.CultureInfo GetCultureInfo(string name, bool predefinedOnly) => throw null; - public static System.Globalization.CultureInfo GetCultureInfo(string name, string altName) => throw null; - public static System.Globalization.CultureInfo GetCultureInfoByIetfLanguageTag(string name) => throw null; - public static System.Globalization.CultureInfo[] GetCultures(System.Globalization.CultureTypes types) => throw null; - public virtual object GetFormat(System.Type formatType) => throw null; - public override int GetHashCode() => throw null; - public string IetfLanguageTag { get => throw null; } - public static System.Globalization.CultureInfo InstalledUICulture { get => throw null; } - public static System.Globalization.CultureInfo InvariantCulture { get => throw null; } - public virtual bool IsNeutralCulture { get => throw null; } - public bool IsReadOnly { get => throw null; } - public virtual int KeyboardLayoutId { get => throw null; } - public virtual int LCID { get => throw null; } - public virtual string Name { get => throw null; } - public virtual string NativeName { get => throw null; } - public virtual System.Globalization.NumberFormatInfo NumberFormat { get => throw null; set => throw null; } - public virtual System.Globalization.Calendar[] OptionalCalendars { get => throw null; } - public virtual System.Globalization.CultureInfo Parent { get => throw null; } - public static System.Globalization.CultureInfo ReadOnly(System.Globalization.CultureInfo ci) => throw null; - public virtual System.Globalization.TextInfo TextInfo { get => throw null; } - public virtual string ThreeLetterISOLanguageName { get => throw null; } - public virtual string ThreeLetterWindowsLanguageName { get => throw null; } - public override string ToString() => throw null; - public virtual string TwoLetterISOLanguageName { get => throw null; } - public bool UseUserOverride { get => throw null; } - } - - public class CultureNotFoundException : System.ArgumentException - { - public CultureNotFoundException() => throw null; - protected CultureNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public CultureNotFoundException(string message) => throw null; - public CultureNotFoundException(string message, System.Exception innerException) => throw null; - public CultureNotFoundException(string message, int invalidCultureId, System.Exception innerException) => throw null; - public CultureNotFoundException(string paramName, int invalidCultureId, string message) => throw null; - public CultureNotFoundException(string paramName, string message) => throw null; - public CultureNotFoundException(string message, string invalidCultureName, System.Exception innerException) => throw null; - public CultureNotFoundException(string paramName, string invalidCultureName, string message) => throw null; - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public virtual int? InvalidCultureId { get => throw null; } - public virtual string InvalidCultureName { get => throw null; } - public override string Message { get => throw null; } - } - - [System.Flags] - public enum CultureTypes : int - { - AllCultures = 7, - FrameworkCultures = 64, - InstalledWin32Cultures = 4, - NeutralCultures = 1, - ReplacementCultures = 16, - SpecificCultures = 2, - UserCustomCulture = 8, - WindowsOnlyCultures = 32, - } - - public class DateTimeFormatInfo : System.ICloneable, System.IFormatProvider - { - public string AMDesignator { get => throw null; set => throw null; } - public string[] AbbreviatedDayNames { get => throw null; set => throw null; } - public string[] AbbreviatedMonthGenitiveNames { get => throw null; set => throw null; } - public string[] AbbreviatedMonthNames { get => throw null; set => throw null; } - public System.Globalization.Calendar Calendar { get => throw null; set => throw null; } - public System.Globalization.CalendarWeekRule CalendarWeekRule { get => throw null; set => throw null; } - public object Clone() => throw null; - public static System.Globalization.DateTimeFormatInfo CurrentInfo { get => throw null; } - public string DateSeparator { get => throw null; set => throw null; } - public DateTimeFormatInfo() => throw null; - public string[] DayNames { get => throw null; set => throw null; } - public System.DayOfWeek FirstDayOfWeek { get => throw null; set => throw null; } - public string FullDateTimePattern { get => throw null; set => throw null; } - public string GetAbbreviatedDayName(System.DayOfWeek dayofweek) => throw null; - public string GetAbbreviatedEraName(int era) => throw null; - public string GetAbbreviatedMonthName(int month) => throw null; - public string[] GetAllDateTimePatterns() => throw null; - public string[] GetAllDateTimePatterns(System.Char format) => throw null; - public string GetDayName(System.DayOfWeek dayofweek) => throw null; - public int GetEra(string eraName) => throw null; - public string GetEraName(int era) => throw null; - public object GetFormat(System.Type formatType) => throw null; - public static System.Globalization.DateTimeFormatInfo GetInstance(System.IFormatProvider provider) => throw null; - public string GetMonthName(int month) => throw null; - public string GetShortestDayName(System.DayOfWeek dayOfWeek) => throw null; - public static System.Globalization.DateTimeFormatInfo InvariantInfo { get => throw null; } - public bool IsReadOnly { get => throw null; } - public string LongDatePattern { get => throw null; set => throw null; } - public string LongTimePattern { get => throw null; set => throw null; } - public string MonthDayPattern { get => throw null; set => throw null; } - public string[] MonthGenitiveNames { get => throw null; set => throw null; } - public string[] MonthNames { get => throw null; set => throw null; } - public string NativeCalendarName { get => throw null; } - public string PMDesignator { get => throw null; set => throw null; } - public string RFC1123Pattern { get => throw null; } - public static System.Globalization.DateTimeFormatInfo ReadOnly(System.Globalization.DateTimeFormatInfo dtfi) => throw null; - public void SetAllDateTimePatterns(string[] patterns, System.Char format) => throw null; - public string ShortDatePattern { get => throw null; set => throw null; } - public string ShortTimePattern { get => throw null; set => throw null; } - public string[] ShortestDayNames { get => throw null; set => throw null; } - public string SortableDateTimePattern { get => throw null; } - public string TimeSeparator { get => throw null; set => throw null; } - public string UniversalSortableDateTimePattern { get => throw null; } - public string YearMonthPattern { get => throw null; set => throw null; } - } - - [System.Flags] - public enum DateTimeStyles : int - { - AdjustToUniversal = 16, - AllowInnerWhite = 4, - AllowLeadingWhite = 1, - AllowTrailingWhite = 2, - AllowWhiteSpaces = 7, - AssumeLocal = 32, - AssumeUniversal = 64, - NoCurrentDateDefault = 8, - None = 0, - RoundtripKind = 128, - } - - public class DaylightTime - { - public DaylightTime(System.DateTime start, System.DateTime end, System.TimeSpan delta) => throw null; - public System.TimeSpan Delta { get => throw null; } - public System.DateTime End { get => throw null; } - public System.DateTime Start { get => throw null; } - } - - public enum DigitShapes : int - { - Context = 0, - NativeNational = 2, - None = 1, - } - - public abstract class EastAsianLunisolarCalendar : System.Globalization.Calendar - { - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - internal EastAsianLunisolarCalendar() => throw null; - public int GetCelestialStem(int sexagenaryYear) => throw null; - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public virtual int GetSexagenaryYear(System.DateTime time) => throw null; - public int GetTerrestrialBranch(int sexagenaryYear) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - } - - public static class GlobalizationExtensions - { - public static System.StringComparer GetStringComparer(this System.Globalization.CompareInfo compareInfo, System.Globalization.CompareOptions options) => throw null; - } - - public class GregorianCalendar : System.Globalization.Calendar - { - public const int ADEra = default; - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - public virtual System.Globalization.GregorianCalendarTypes CalendarType { get => throw null; set => throw null; } - public override int[] Eras { get => throw null; } - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetEra(System.DateTime time) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public GregorianCalendar() => throw null; - public GregorianCalendar(System.Globalization.GregorianCalendarTypes type) => throw null; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - } - - public enum GregorianCalendarTypes : int - { - Arabic = 10, - Localized = 1, - MiddleEastFrench = 9, - TransliteratedEnglish = 11, - TransliteratedFrench = 12, - USEnglish = 2, - } - - public class HebrewCalendar : System.Globalization.Calendar - { - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetEra(System.DateTime time) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public HebrewCalendar() => throw null; - public static int HebrewEra; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - } - - public class HijriCalendar : System.Globalization.Calendar - { - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetEra(System.DateTime time) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public int HijriAdjustment { get => throw null; set => throw null; } - public HijriCalendar() => throw null; - public static int HijriEra; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - } - - public static class ISOWeek - { - public static int GetWeekOfYear(System.DateTime date) => throw null; - public static int GetWeeksInYear(int year) => throw null; - public static int GetYear(System.DateTime date) => throw null; - public static System.DateTime GetYearEnd(int year) => throw null; - public static System.DateTime GetYearStart(int year) => throw null; - public static System.DateTime ToDateTime(int year, int week, System.DayOfWeek dayOfWeek) => throw null; - } - - public class IdnMapping - { - public bool AllowUnassigned { get => throw null; set => throw null; } - public override bool Equals(object obj) => throw null; - public string GetAscii(string unicode) => throw null; - public string GetAscii(string unicode, int index) => throw null; - public string GetAscii(string unicode, int index, int count) => throw null; - public override int GetHashCode() => throw null; - public string GetUnicode(string ascii) => throw null; - public string GetUnicode(string ascii, int index) => throw null; - public string GetUnicode(string ascii, int index, int count) => throw null; - public IdnMapping() => throw null; - public bool UseStd3AsciiRules { get => throw null; set => throw null; } - } - - public class JapaneseCalendar : System.Globalization.Calendar - { - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetEra(System.DateTime time) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public JapaneseCalendar() => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - } - - public class JapaneseLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar - { - protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetEra(System.DateTime time) => throw null; - public const int JapaneseEra = default; - public JapaneseLunisolarCalendar() => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - } - - public class JulianCalendar : System.Globalization.Calendar - { - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetEra(System.DateTime time) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public JulianCalendar() => throw null; - public static int JulianEra; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - } - - public class KoreanCalendar : System.Globalization.Calendar - { - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetEra(System.DateTime time) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public KoreanCalendar() => throw null; - public const int KoreanEra = default; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - } - - public class KoreanLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar - { - protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetEra(System.DateTime time) => throw null; - public const int GregorianEra = default; - public KoreanLunisolarCalendar() => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - } - - public class NumberFormatInfo : System.ICloneable, System.IFormatProvider - { - public object Clone() => throw null; - public int CurrencyDecimalDigits { get => throw null; set => throw null; } - public string CurrencyDecimalSeparator { get => throw null; set => throw null; } - public string CurrencyGroupSeparator { get => throw null; set => throw null; } - public int[] CurrencyGroupSizes { get => throw null; set => throw null; } - public int CurrencyNegativePattern { get => throw null; set => throw null; } - public int CurrencyPositivePattern { get => throw null; set => throw null; } - public string CurrencySymbol { get => throw null; set => throw null; } - public static System.Globalization.NumberFormatInfo CurrentInfo { get => throw null; } - public System.Globalization.DigitShapes DigitSubstitution { get => throw null; set => throw null; } - public object GetFormat(System.Type formatType) => throw null; - public static System.Globalization.NumberFormatInfo GetInstance(System.IFormatProvider formatProvider) => throw null; - public static System.Globalization.NumberFormatInfo InvariantInfo { get => throw null; } - public bool IsReadOnly { get => throw null; } - public string NaNSymbol { get => throw null; set => throw null; } - public string[] NativeDigits { get => throw null; set => throw null; } - public string NegativeInfinitySymbol { get => throw null; set => throw null; } - public string NegativeSign { get => throw null; set => throw null; } - public int NumberDecimalDigits { get => throw null; set => throw null; } - public string NumberDecimalSeparator { get => throw null; set => throw null; } - public NumberFormatInfo() => throw null; - public string NumberGroupSeparator { get => throw null; set => throw null; } - public int[] NumberGroupSizes { get => throw null; set => throw null; } - public int NumberNegativePattern { get => throw null; set => throw null; } - public string PerMilleSymbol { get => throw null; set => throw null; } - public int PercentDecimalDigits { get => throw null; set => throw null; } - public string PercentDecimalSeparator { get => throw null; set => throw null; } - public string PercentGroupSeparator { get => throw null; set => throw null; } - public int[] PercentGroupSizes { get => throw null; set => throw null; } - public int PercentNegativePattern { get => throw null; set => throw null; } - public int PercentPositivePattern { get => throw null; set => throw null; } - public string PercentSymbol { get => throw null; set => throw null; } - public string PositiveInfinitySymbol { get => throw null; set => throw null; } - public string PositiveSign { get => throw null; set => throw null; } - public static System.Globalization.NumberFormatInfo ReadOnly(System.Globalization.NumberFormatInfo nfi) => throw null; - } - - [System.Flags] - public enum NumberStyles : int - { - AllowCurrencySymbol = 256, - AllowDecimalPoint = 32, - AllowExponent = 128, - AllowHexSpecifier = 512, - AllowLeadingSign = 4, - AllowLeadingWhite = 1, - AllowParentheses = 16, - AllowThousands = 64, - AllowTrailingSign = 8, - AllowTrailingWhite = 2, - Any = 511, - Currency = 383, - Float = 167, - HexNumber = 515, - Integer = 7, - None = 0, - Number = 111, - } - - public class PersianCalendar : System.Globalization.Calendar - { - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetEra(System.DateTime time) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public PersianCalendar() => throw null; - public static int PersianEra; - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - } - - public class RegionInfo - { - public virtual string CurrencyEnglishName { get => throw null; } - public virtual string CurrencyNativeName { get => throw null; } - public virtual string CurrencySymbol { get => throw null; } - public static System.Globalization.RegionInfo CurrentRegion { get => throw null; } - public virtual string DisplayName { get => throw null; } - public virtual string EnglishName { get => throw null; } - public override bool Equals(object value) => throw null; - public virtual int GeoId { get => throw null; } - public override int GetHashCode() => throw null; - public virtual string ISOCurrencySymbol { get => throw null; } - public virtual bool IsMetric { get => throw null; } - public virtual string Name { get => throw null; } - public virtual string NativeName { get => throw null; } - public RegionInfo(int culture) => throw null; - public RegionInfo(string name) => throw null; - public virtual string ThreeLetterISORegionName { get => throw null; } - public virtual string ThreeLetterWindowsRegionName { get => throw null; } - public override string ToString() => throw null; - public virtual string TwoLetterISORegionName { get => throw null; } - } - - public class SortKey - { - public static int Compare(System.Globalization.SortKey sortkey1, System.Globalization.SortKey sortkey2) => throw null; - public override bool Equals(object value) => throw null; - public override int GetHashCode() => throw null; - public System.Byte[] KeyData { get => throw null; } - public string OriginalString { get => throw null; } - public override string ToString() => throw null; - } - - public class SortVersion : System.IEquatable - { - public static bool operator !=(System.Globalization.SortVersion left, System.Globalization.SortVersion right) => throw null; - public static bool operator ==(System.Globalization.SortVersion left, System.Globalization.SortVersion right) => throw null; - public bool Equals(System.Globalization.SortVersion other) => throw null; - public override bool Equals(object obj) => throw null; - public int FullVersion { get => throw null; } - public override int GetHashCode() => throw null; - public System.Guid SortId { get => throw null; } - public SortVersion(int fullVersion, System.Guid sortId) => throw null; - } - - public class StringInfo - { - public override bool Equals(object value) => throw null; - public override int GetHashCode() => throw null; - public static string GetNextTextElement(string str) => throw null; - public static string GetNextTextElement(string str, int index) => throw null; - public static int GetNextTextElementLength(System.ReadOnlySpan str) => throw null; - public static int GetNextTextElementLength(string str) => throw null; - public static int GetNextTextElementLength(string str, int index) => throw null; - public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str) => throw null; - public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str, int index) => throw null; - public int LengthInTextElements { get => throw null; } - public static int[] ParseCombiningCharacters(string str) => throw null; - public string String { get => throw null; set => throw null; } - public StringInfo() => throw null; - public StringInfo(string value) => throw null; - public string SubstringByTextElements(int startingTextElement) => throw null; - public string SubstringByTextElements(int startingTextElement, int lengthInTextElements) => throw null; - } - - public class TaiwanCalendar : System.Globalization.Calendar - { - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetEra(System.DateTime time) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public TaiwanCalendar() => throw null; - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - } - - public class TaiwanLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar - { - protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetEra(System.DateTime time) => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public TaiwanLunisolarCalendar() => throw null; - } - - public class TextElementEnumerator : System.Collections.IEnumerator - { - public object Current { get => throw null; } - public int ElementIndex { get => throw null; } - public string GetTextElement() => throw null; - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - public class TextInfo : System.ICloneable, System.Runtime.Serialization.IDeserializationCallback - { - public int ANSICodePage { get => throw null; } - public object Clone() => throw null; - public string CultureName { get => throw null; } - public int EBCDICCodePage { get => throw null; } - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public bool IsReadOnly { get => throw null; } - public bool IsRightToLeft { get => throw null; } - public int LCID { get => throw null; } - public string ListSeparator { get => throw null; set => throw null; } - public int MacCodePage { get => throw null; } - public int OEMCodePage { get => throw null; } - void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public static System.Globalization.TextInfo ReadOnly(System.Globalization.TextInfo textInfo) => throw null; - public System.Char ToLower(System.Char c) => throw null; - public string ToLower(string str) => throw null; - public override string ToString() => throw null; - public string ToTitleCase(string str) => throw null; - public System.Char ToUpper(System.Char c) => throw null; - public string ToUpper(string str) => throw null; - } - - public class ThaiBuddhistCalendar : System.Globalization.Calendar - { - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetEra(System.DateTime time) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public ThaiBuddhistCalendar() => throw null; - public const int ThaiBuddhistEra = default; - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - } - - [System.Flags] - public enum TimeSpanStyles : int - { - AssumeNegative = 1, - None = 0, - } - - public class UmAlQuraCalendar : System.Globalization.Calendar - { - public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; - public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } - protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } - public override int[] Eras { get => throw null; } - public override int GetDayOfMonth(System.DateTime time) => throw null; - public override System.DayOfWeek GetDayOfWeek(System.DateTime time) => throw null; - public override int GetDayOfYear(System.DateTime time) => throw null; - public override int GetDaysInMonth(int year, int month, int era) => throw null; - public override int GetDaysInYear(int year, int era) => throw null; - public override int GetEra(System.DateTime time) => throw null; - public override int GetLeapMonth(int year, int era) => throw null; - public override int GetMonth(System.DateTime time) => throw null; - public override int GetMonthsInYear(int year, int era) => throw null; - public override int GetYear(System.DateTime time) => throw null; - public override bool IsLeapDay(int year, int month, int day, int era) => throw null; - public override bool IsLeapMonth(int year, int month, int era) => throw null; - public override bool IsLeapYear(int year, int era) => throw null; - public override System.DateTime MaxSupportedDateTime { get => throw null; } - public override System.DateTime MinSupportedDateTime { get => throw null; } - public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; - public override int ToFourDigitYear(int year) => throw null; - public override int TwoDigitYearMax { get => throw null; set => throw null; } - public UmAlQuraCalendar() => throw null; - public const int UmAlQuraEra = default; - } - - public enum UnicodeCategory : int - { - ClosePunctuation = 21, - ConnectorPunctuation = 18, - Control = 14, - CurrencySymbol = 26, - DashPunctuation = 19, - DecimalDigitNumber = 8, - EnclosingMark = 7, - FinalQuotePunctuation = 23, - Format = 15, - InitialQuotePunctuation = 22, - LetterNumber = 9, - LineSeparator = 12, - LowercaseLetter = 1, - MathSymbol = 25, - ModifierLetter = 3, - ModifierSymbol = 27, - NonSpacingMark = 5, - OpenPunctuation = 20, - OtherLetter = 4, - OtherNotAssigned = 29, - OtherNumber = 10, - OtherPunctuation = 24, - OtherSymbol = 28, - ParagraphSeparator = 13, - PrivateUse = 17, - SpaceSeparator = 11, - SpacingCombiningMark = 6, - Surrogate = 16, - TitlecaseLetter = 2, - UppercaseLetter = 0, - } - - } - namespace IO - { - public class BinaryReader : System.IDisposable - { - public virtual System.IO.Stream BaseStream { get => throw null; } - public BinaryReader(System.IO.Stream input) => throw null; - public BinaryReader(System.IO.Stream input, System.Text.Encoding encoding) => throw null; - public BinaryReader(System.IO.Stream input, System.Text.Encoding encoding, bool leaveOpen) => throw null; - public virtual void Close() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - protected virtual void FillBuffer(int numBytes) => throw null; - public virtual int PeekChar() => throw null; - public virtual int Read() => throw null; - public virtual int Read(System.Byte[] buffer, int index, int count) => throw null; - public virtual int Read(System.Char[] buffer, int index, int count) => throw null; - public virtual int Read(System.Span buffer) => throw null; - public virtual int Read(System.Span buffer) => throw null; - public int Read7BitEncodedInt() => throw null; - public System.Int64 Read7BitEncodedInt64() => throw null; - public virtual bool ReadBoolean() => throw null; - public virtual System.Byte ReadByte() => throw null; - public virtual System.Byte[] ReadBytes(int count) => throw null; - public virtual System.Char ReadChar() => throw null; - public virtual System.Char[] ReadChars(int count) => throw null; - public virtual System.Decimal ReadDecimal() => throw null; - public virtual double ReadDouble() => throw null; - public virtual System.Half ReadHalf() => throw null; - public virtual System.Int16 ReadInt16() => throw null; - public virtual int ReadInt32() => throw null; - public virtual System.Int64 ReadInt64() => throw null; - public virtual System.SByte ReadSByte() => throw null; - public virtual float ReadSingle() => throw null; - public virtual string ReadString() => throw null; - public virtual System.UInt16 ReadUInt16() => throw null; - public virtual System.UInt32 ReadUInt32() => throw null; - public virtual System.UInt64 ReadUInt64() => throw null; - } - - public class BinaryWriter : System.IAsyncDisposable, System.IDisposable - { - public virtual System.IO.Stream BaseStream { get => throw null; } - protected BinaryWriter() => throw null; - public BinaryWriter(System.IO.Stream output) => throw null; - public BinaryWriter(System.IO.Stream output, System.Text.Encoding encoding) => throw null; - public BinaryWriter(System.IO.Stream output, System.Text.Encoding encoding, bool leaveOpen) => throw null; - public virtual void Close() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public virtual void Flush() => throw null; - public static System.IO.BinaryWriter Null; - protected System.IO.Stream OutStream; - public virtual System.Int64 Seek(int offset, System.IO.SeekOrigin origin) => throw null; - public virtual void Write(System.Byte[] buffer) => throw null; - public virtual void Write(System.Byte[] buffer, int index, int count) => throw null; - public virtual void Write(System.Char[] chars) => throw null; - public virtual void Write(System.Char[] chars, int index, int count) => throw null; - public virtual void Write(System.Half value) => throw null; - public virtual void Write(System.ReadOnlySpan buffer) => throw null; - public virtual void Write(System.ReadOnlySpan chars) => throw null; - public virtual void Write(bool value) => throw null; - public virtual void Write(System.Byte value) => throw null; - public virtual void Write(System.Char ch) => throw null; - public virtual void Write(System.Decimal value) => throw null; - public virtual void Write(double value) => throw null; - public virtual void Write(float value) => throw null; - public virtual void Write(int value) => throw null; - public virtual void Write(System.Int64 value) => throw null; - public virtual void Write(System.SByte value) => throw null; - public virtual void Write(System.Int16 value) => throw null; - public virtual void Write(string value) => throw null; - public virtual void Write(System.UInt32 value) => throw null; - public virtual void Write(System.UInt64 value) => throw null; - public virtual void Write(System.UInt16 value) => throw null; - public void Write7BitEncodedInt(int value) => throw null; - public void Write7BitEncodedInt64(System.Int64 value) => throw null; - } - - public class BufferedStream : System.IO.Stream - { - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public int BufferSize { get => throw null; } - public BufferedStream(System.IO.Stream stream) => throw null; - public BufferedStream(System.IO.Stream stream, int bufferSize) => throw null; - public override bool CanRead { get => throw null; } - public override bool CanSeek { get => throw null; } - public override bool CanWrite { get => throw null; } - public override void CopyTo(System.IO.Stream destination, int bufferSize) => throw null; - public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; - protected override void Dispose(bool disposing) => throw null; - public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public override int EndRead(System.IAsyncResult asyncResult) => throw null; - public override void EndWrite(System.IAsyncResult asyncResult) => throw null; - public override void Flush() => throw null; - public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 Length { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span destination) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override int ReadByte() => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public System.IO.Stream UnderlyingStream { get => throw null; } - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; - } - - public static class Directory - { - public static System.IO.DirectoryInfo CreateDirectory(string path) => throw null; - public static System.IO.DirectoryInfo CreateDirectory(string path, System.IO.UnixFileMode unixCreateMode) => throw null; - public static System.IO.FileSystemInfo CreateSymbolicLink(string path, string pathToTarget) => throw null; - public static System.IO.DirectoryInfo CreateTempSubdirectory(string prefix = default(string)) => throw null; - public static void Delete(string path) => throw null; - public static void Delete(string path, bool recursive) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateDirectories(string path) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateFiles(string path) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public static System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; - public static bool Exists(string path) => throw null; - public static System.DateTime GetCreationTime(string path) => throw null; - public static System.DateTime GetCreationTimeUtc(string path) => throw null; - public static string GetCurrentDirectory() => throw null; - public static string[] GetDirectories(string path) => throw null; - public static string[] GetDirectories(string path, string searchPattern) => throw null; - public static string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public static string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; - public static string GetDirectoryRoot(string path) => throw null; - public static string[] GetFileSystemEntries(string path) => throw null; - public static string[] GetFileSystemEntries(string path, string searchPattern) => throw null; - public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; - public static string[] GetFiles(string path) => throw null; - public static string[] GetFiles(string path, string searchPattern) => throw null; - public static string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public static string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) => throw null; - public static System.DateTime GetLastAccessTime(string path) => throw null; - public static System.DateTime GetLastAccessTimeUtc(string path) => throw null; - public static System.DateTime GetLastWriteTime(string path) => throw null; - public static System.DateTime GetLastWriteTimeUtc(string path) => throw null; - public static string[] GetLogicalDrives() => throw null; - public static System.IO.DirectoryInfo GetParent(string path) => throw null; - public static void Move(string sourceDirName, string destDirName) => throw null; - public static System.IO.FileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) => throw null; - public static void SetCreationTime(string path, System.DateTime creationTime) => throw null; - public static void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) => throw null; - public static void SetCurrentDirectory(string path) => throw null; - public static void SetLastAccessTime(string path, System.DateTime lastAccessTime) => throw null; - public static void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) => throw null; - public static void SetLastWriteTime(string path, System.DateTime lastWriteTime) => throw null; - public static void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) => throw null; - } - - public class DirectoryInfo : System.IO.FileSystemInfo - { - public void Create() => throw null; - public System.IO.DirectoryInfo CreateSubdirectory(string path) => throw null; - public override void Delete() => throw null; - public void Delete(bool recursive) => throw null; - public DirectoryInfo(string path) => throw null; - public System.Collections.Generic.IEnumerable EnumerateDirectories() => throw null; - public System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) => throw null; - public System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) => throw null; - public System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() => throw null; - public System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) => throw null; - public System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) => throw null; - public System.Collections.Generic.IEnumerable EnumerateFiles() => throw null; - public System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) => throw null; - public System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) => throw null; - public override bool Exists { get => throw null; } - public System.IO.DirectoryInfo[] GetDirectories() => throw null; - public System.IO.DirectoryInfo[] GetDirectories(string searchPattern) => throw null; - public System.IO.DirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public System.IO.DirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) => throw null; - public System.IO.FileSystemInfo[] GetFileSystemInfos() => throw null; - public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern) => throw null; - public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) => throw null; - public System.IO.FileInfo[] GetFiles() => throw null; - public System.IO.FileInfo[] GetFiles(string searchPattern) => throw null; - public System.IO.FileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) => throw null; - public System.IO.FileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) => throw null; - public void MoveTo(string destDirName) => throw null; - public override string Name { get => throw null; } - public System.IO.DirectoryInfo Parent { get => throw null; } - public System.IO.DirectoryInfo Root { get => throw null; } - public override string ToString() => throw null; - } - - public class DirectoryNotFoundException : System.IO.IOException - { - public DirectoryNotFoundException() => throw null; - protected DirectoryNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public DirectoryNotFoundException(string message) => throw null; - public DirectoryNotFoundException(string message, System.Exception innerException) => throw null; - } - - public class EndOfStreamException : System.IO.IOException - { - public EndOfStreamException() => throw null; - protected EndOfStreamException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public EndOfStreamException(string message) => throw null; - public EndOfStreamException(string message, System.Exception innerException) => throw null; - } - - public class EnumerationOptions - { - public System.IO.FileAttributes AttributesToSkip { get => throw null; set => throw null; } - public int BufferSize { get => throw null; set => throw null; } - public EnumerationOptions() => throw null; - public bool IgnoreInaccessible { get => throw null; set => throw null; } - public System.IO.MatchCasing MatchCasing { get => throw null; set => throw null; } - public System.IO.MatchType MatchType { get => throw null; set => throw null; } - public int MaxRecursionDepth { get => throw null; set => throw null; } - public bool RecurseSubdirectories { get => throw null; set => throw null; } - public bool ReturnSpecialDirectories { get => throw null; set => throw null; } - } - - public static class File - { - public static void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) => throw null; - public static void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) => throw null; - public static System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static void AppendAllText(string path, string contents) => throw null; - public static void AppendAllText(string path, string contents, System.Text.Encoding encoding) => throw null; - public static System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.IO.StreamWriter AppendText(string path) => throw null; - public static void Copy(string sourceFileName, string destFileName) => throw null; - public static void Copy(string sourceFileName, string destFileName, bool overwrite) => throw null; - public static System.IO.FileStream Create(string path) => throw null; - public static System.IO.FileStream Create(string path, int bufferSize) => throw null; - public static System.IO.FileStream Create(string path, int bufferSize, System.IO.FileOptions options) => throw null; - public static System.IO.FileSystemInfo CreateSymbolicLink(string path, string pathToTarget) => throw null; - public static System.IO.StreamWriter CreateText(string path) => throw null; - public static void Decrypt(string path) => throw null; - public static void Delete(string path) => throw null; - public static void Encrypt(string path) => throw null; - public static bool Exists(string path) => throw null; - public static System.IO.FileAttributes GetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; - public static System.IO.FileAttributes GetAttributes(string path) => throw null; - public static System.DateTime GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; - public static System.DateTime GetCreationTime(string path) => throw null; - public static System.DateTime GetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; - public static System.DateTime GetCreationTimeUtc(string path) => throw null; - public static System.DateTime GetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; - public static System.DateTime GetLastAccessTime(string path) => throw null; - public static System.DateTime GetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; - public static System.DateTime GetLastAccessTimeUtc(string path) => throw null; - public static System.DateTime GetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; - public static System.DateTime GetLastWriteTime(string path) => throw null; - public static System.DateTime GetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; - public static System.DateTime GetLastWriteTimeUtc(string path) => throw null; - public static System.IO.UnixFileMode GetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) => throw null; - public static System.IO.UnixFileMode GetUnixFileMode(string path) => throw null; - public static void Move(string sourceFileName, string destFileName) => throw null; - public static void Move(string sourceFileName, string destFileName, bool overwrite) => throw null; - public static System.IO.FileStream Open(string path, System.IO.FileMode mode) => throw null; - public static System.IO.FileStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) => throw null; - public static System.IO.FileStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) => throw null; - public static System.IO.FileStream Open(string path, System.IO.FileStreamOptions options) => throw null; - public static Microsoft.Win32.SafeHandles.SafeFileHandle OpenHandle(string path, System.IO.FileMode mode = default(System.IO.FileMode), System.IO.FileAccess access = default(System.IO.FileAccess), System.IO.FileShare share = default(System.IO.FileShare), System.IO.FileOptions options = default(System.IO.FileOptions), System.Int64 preallocationSize = default(System.Int64)) => throw null; - public static System.IO.FileStream OpenRead(string path) => throw null; - public static System.IO.StreamReader OpenText(string path) => throw null; - public static System.IO.FileStream OpenWrite(string path) => throw null; - public static System.Byte[] ReadAllBytes(string path) => throw null; - public static System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static string[] ReadAllLines(string path) => throw null; - public static string[] ReadAllLines(string path, System.Text.Encoding encoding) => throw null; - public static System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static string ReadAllText(string path) => throw null; - public static string ReadAllText(string path, System.Text.Encoding encoding) => throw null; - public static System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.IEnumerable ReadLines(string path) => throw null; - public static System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) => throw null; - public static System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) => throw null; - public static void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) => throw null; - public static System.IO.FileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) => throw null; - public static void SetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.FileAttributes fileAttributes) => throw null; - public static void SetAttributes(string path, System.IO.FileAttributes fileAttributes) => throw null; - public static void SetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTime) => throw null; - public static void SetCreationTime(string path, System.DateTime creationTime) => throw null; - public static void SetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTimeUtc) => throw null; - public static void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) => throw null; - public static void SetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTime) => throw null; - public static void SetLastAccessTime(string path, System.DateTime lastAccessTime) => throw null; - public static void SetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTimeUtc) => throw null; - public static void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) => throw null; - public static void SetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTime) => throw null; - public static void SetLastWriteTime(string path, System.DateTime lastWriteTime) => throw null; - public static void SetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTimeUtc) => throw null; - public static void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) => throw null; - public static void SetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.UnixFileMode mode) => throw null; - public static void SetUnixFileMode(string path, System.IO.UnixFileMode mode) => throw null; - public static void WriteAllBytes(string path, System.Byte[] bytes) => throw null; - public static System.Threading.Tasks.Task WriteAllBytesAsync(string path, System.Byte[] bytes, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) => throw null; - public static void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) => throw null; - public static void WriteAllLines(string path, string[] contents) => throw null; - public static void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) => throw null; - public static System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static void WriteAllText(string path, string contents) => throw null; - public static void WriteAllText(string path, string contents, System.Text.Encoding encoding) => throw null; - public static System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - } - - [System.Flags] - public enum FileAccess : int - { - Read = 1, - ReadWrite = 3, - Write = 2, - } - - [System.Flags] - public enum FileAttributes : int - { - Archive = 32, - Compressed = 2048, - Device = 64, - Directory = 16, - Encrypted = 16384, - Hidden = 2, - IntegrityStream = 32768, - NoScrubData = 131072, - Normal = 128, - NotContentIndexed = 8192, - Offline = 4096, - ReadOnly = 1, - ReparsePoint = 1024, - SparseFile = 512, - System = 4, - Temporary = 256, - } - - public class FileInfo : System.IO.FileSystemInfo - { - public System.IO.StreamWriter AppendText() => throw null; - public System.IO.FileInfo CopyTo(string destFileName) => throw null; - public System.IO.FileInfo CopyTo(string destFileName, bool overwrite) => throw null; - public System.IO.FileStream Create() => throw null; - public System.IO.StreamWriter CreateText() => throw null; - public void Decrypt() => throw null; - public override void Delete() => throw null; - public System.IO.DirectoryInfo Directory { get => throw null; } - public string DirectoryName { get => throw null; } - public void Encrypt() => throw null; - public override bool Exists { get => throw null; } - public FileInfo(string fileName) => throw null; - public bool IsReadOnly { get => throw null; set => throw null; } - public System.Int64 Length { get => throw null; } - public void MoveTo(string destFileName) => throw null; - public void MoveTo(string destFileName, bool overwrite) => throw null; - public override string Name { get => throw null; } - public System.IO.FileStream Open(System.IO.FileMode mode) => throw null; - public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access) => throw null; - public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) => throw null; - public System.IO.FileStream Open(System.IO.FileStreamOptions options) => throw null; - public System.IO.FileStream OpenRead() => throw null; - public System.IO.StreamReader OpenText() => throw null; - public System.IO.FileStream OpenWrite() => throw null; - public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName) => throw null; - public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) => throw null; - } - - public class FileLoadException : System.IO.IOException - { - public FileLoadException() => throw null; - protected FileLoadException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public FileLoadException(string message) => throw null; - public FileLoadException(string message, System.Exception inner) => throw null; - public FileLoadException(string message, string fileName) => throw null; - public FileLoadException(string message, string fileName, System.Exception inner) => throw null; - public string FileName { get => throw null; } - public string FusionLog { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } - public override string ToString() => throw null; - } - - public enum FileMode : int - { - Append = 6, - Create = 2, - CreateNew = 1, - Open = 3, - OpenOrCreate = 4, - Truncate = 5, - } - - public class FileNotFoundException : System.IO.IOException - { - public string FileName { get => throw null; } - public FileNotFoundException() => throw null; - protected FileNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public FileNotFoundException(string message) => throw null; - public FileNotFoundException(string message, System.Exception innerException) => throw null; - public FileNotFoundException(string message, string fileName) => throw null; - public FileNotFoundException(string message, string fileName, System.Exception innerException) => throw null; - public string FusionLog { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } - public override string ToString() => throw null; - } - - [System.Flags] - public enum FileOptions : int - { - Asynchronous = 1073741824, - DeleteOnClose = 67108864, - Encrypted = 16384, - None = 0, - RandomAccess = 268435456, - SequentialScan = 134217728, - WriteThrough = -2147483648, - } - - [System.Flags] - public enum FileShare : int - { - Delete = 4, - Inheritable = 16, - None = 0, - Read = 1, - ReadWrite = 3, - Write = 2, - } - - public class FileStream : System.IO.Stream - { - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public override bool CanRead { get => throw null; } - public override bool CanSeek { get => throw null; } - public override bool CanWrite { get => throw null; } - public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; - protected override void Dispose(bool disposing) => throw null; - public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public override int EndRead(System.IAsyncResult asyncResult) => throw null; - public override void EndWrite(System.IAsyncResult asyncResult) => throw null; - public FileStream(System.IntPtr handle, System.IO.FileAccess access) => throw null; - public FileStream(System.IntPtr handle, System.IO.FileAccess access, bool ownsHandle) => throw null; - public FileStream(System.IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize) => throw null; - public FileStream(System.IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync) => throw null; - public FileStream(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access) => throw null; - public FileStream(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize) => throw null; - public FileStream(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync) => throw null; - public FileStream(string path, System.IO.FileMode mode) => throw null; - public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access) => throw null; - public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) => throw null; - public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize) => throw null; - public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options) => throw null; - public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync) => throw null; - public FileStream(string path, System.IO.FileStreamOptions options) => throw null; - public override void Flush() => throw null; - public virtual void Flush(bool flushToDisk) => throw null; - public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.IntPtr Handle { get => throw null; } - public virtual bool IsAsync { get => throw null; } - public override System.Int64 Length { get => throw null; } - public virtual void Lock(System.Int64 position, System.Int64 length) => throw null; - public virtual string Name { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override int ReadByte() => throw null; - public virtual Microsoft.Win32.SafeHandles.SafeFileHandle SafeFileHandle { get => throw null; } - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public virtual void Unlock(System.Int64 position, System.Int64 length) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; - // ERR: Stub generator didn't handle member: ~FileStream - } - - public class FileStreamOptions - { - public System.IO.FileAccess Access { get => throw null; set => throw null; } - public int BufferSize { get => throw null; set => throw null; } - public FileStreamOptions() => throw null; - public System.IO.FileMode Mode { get => throw null; set => throw null; } - public System.IO.FileOptions Options { get => throw null; set => throw null; } - public System.Int64 PreallocationSize { get => throw null; set => throw null; } - public System.IO.FileShare Share { get => throw null; set => throw null; } - public System.IO.UnixFileMode? UnixCreateMode { get => throw null; set => throw null; } - } - - public abstract class FileSystemInfo : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable - { - public System.IO.FileAttributes Attributes { get => throw null; set => throw null; } - public void CreateAsSymbolicLink(string pathToTarget) => throw null; - public System.DateTime CreationTime { get => throw null; set => throw null; } - public System.DateTime CreationTimeUtc { get => throw null; set => throw null; } - public abstract void Delete(); - public abstract bool Exists { get; } - public string Extension { get => throw null; } - protected FileSystemInfo() => throw null; - protected FileSystemInfo(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public virtual string FullName { get => throw null; } - protected string FullPath; - public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.DateTime LastAccessTime { get => throw null; set => throw null; } - public System.DateTime LastAccessTimeUtc { get => throw null; set => throw null; } - public System.DateTime LastWriteTime { get => throw null; set => throw null; } - public System.DateTime LastWriteTimeUtc { get => throw null; set => throw null; } - public string LinkTarget { get => throw null; } - public abstract string Name { get; } - protected string OriginalPath; - public void Refresh() => throw null; - public System.IO.FileSystemInfo ResolveLinkTarget(bool returnFinalTarget) => throw null; - public override string ToString() => throw null; - public System.IO.UnixFileMode UnixFileMode { get => throw null; set => throw null; } - } - - public enum HandleInheritability : int - { - Inheritable = 1, - None = 0, - } - - public class IOException : System.SystemException - { - public IOException() => throw null; - protected IOException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public IOException(string message) => throw null; - public IOException(string message, System.Exception innerException) => throw null; - public IOException(string message, int hresult) => throw null; - } - - public class InvalidDataException : System.SystemException - { - public InvalidDataException() => throw null; - public InvalidDataException(string message) => throw null; - public InvalidDataException(string message, System.Exception innerException) => throw null; - } - - public enum MatchCasing : int - { - CaseInsensitive = 2, - CaseSensitive = 1, - PlatformDefault = 0, - } - - public enum MatchType : int - { - Simple = 0, - Win32 = 1, - } - - public class MemoryStream : System.IO.Stream - { - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public override bool CanRead { get => throw null; } - public override bool CanSeek { get => throw null; } - public override bool CanWrite { get => throw null; } - public virtual int Capacity { get => throw null; set => throw null; } - public override void CopyTo(System.IO.Stream destination, int bufferSize) => throw null; - public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; - protected override void Dispose(bool disposing) => throw null; - public override int EndRead(System.IAsyncResult asyncResult) => throw null; - public override void EndWrite(System.IAsyncResult asyncResult) => throw null; - public override void Flush() => throw null; - public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Byte[] GetBuffer() => throw null; - public override System.Int64 Length { get => throw null; } - public MemoryStream() => throw null; - public MemoryStream(System.Byte[] buffer) => throw null; - public MemoryStream(System.Byte[] buffer, bool writable) => throw null; - public MemoryStream(System.Byte[] buffer, int index, int count) => throw null; - public MemoryStream(System.Byte[] buffer, int index, int count, bool writable) => throw null; - public MemoryStream(System.Byte[] buffer, int index, int count, bool writable, bool publiclyVisible) => throw null; - public MemoryStream(int capacity) => throw null; - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override int ReadByte() => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin loc) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public virtual System.Byte[] ToArray() => throw null; - public virtual bool TryGetBuffer(out System.ArraySegment buffer) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; - public virtual void WriteTo(System.IO.Stream stream) => throw null; - } - - public static class Path - { - public static System.Char AltDirectorySeparatorChar; - public static string ChangeExtension(string path, string extension) => throw null; - public static string Combine(params string[] paths) => throw null; - public static string Combine(string path1, string path2) => throw null; - public static string Combine(string path1, string path2, string path3) => throw null; - public static string Combine(string path1, string path2, string path3, string path4) => throw null; - public static System.Char DirectorySeparatorChar; - public static bool EndsInDirectorySeparator(System.ReadOnlySpan path) => throw null; - public static bool EndsInDirectorySeparator(string path) => throw null; - public static bool Exists(string path) => throw null; - public static System.ReadOnlySpan GetDirectoryName(System.ReadOnlySpan path) => throw null; - public static string GetDirectoryName(string path) => throw null; - public static System.ReadOnlySpan GetExtension(System.ReadOnlySpan path) => throw null; - public static string GetExtension(string path) => throw null; - public static System.ReadOnlySpan GetFileName(System.ReadOnlySpan path) => throw null; - public static string GetFileName(string path) => throw null; - public static System.ReadOnlySpan GetFileNameWithoutExtension(System.ReadOnlySpan path) => throw null; - public static string GetFileNameWithoutExtension(string path) => throw null; - public static string GetFullPath(string path) => throw null; - public static string GetFullPath(string path, string basePath) => throw null; - public static System.Char[] GetInvalidFileNameChars() => throw null; - public static System.Char[] GetInvalidPathChars() => throw null; - public static System.ReadOnlySpan GetPathRoot(System.ReadOnlySpan path) => throw null; - public static string GetPathRoot(string path) => throw null; - public static string GetRandomFileName() => throw null; - public static string GetRelativePath(string relativeTo, string path) => throw null; - public static string GetTempFileName() => throw null; - public static string GetTempPath() => throw null; - public static bool HasExtension(System.ReadOnlySpan path) => throw null; - public static bool HasExtension(string path) => throw null; - public static System.Char[] InvalidPathChars; - public static bool IsPathFullyQualified(System.ReadOnlySpan path) => throw null; - public static bool IsPathFullyQualified(string path) => throw null; - public static bool IsPathRooted(System.ReadOnlySpan path) => throw null; - public static bool IsPathRooted(string path) => throw null; - public static string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2) => throw null; - public static string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3) => throw null; - public static string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.ReadOnlySpan path4) => throw null; - public static string Join(params string[] paths) => throw null; - public static string Join(string path1, string path2) => throw null; - public static string Join(string path1, string path2, string path3) => throw null; - public static string Join(string path1, string path2, string path3, string path4) => throw null; - public static System.Char PathSeparator; - public static System.ReadOnlySpan TrimEndingDirectorySeparator(System.ReadOnlySpan path) => throw null; - public static string TrimEndingDirectorySeparator(string path) => throw null; - public static bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten) => throw null; - public static bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten) => throw null; - public static System.Char VolumeSeparatorChar; - } - - public class PathTooLongException : System.IO.IOException - { - public PathTooLongException() => throw null; - protected PathTooLongException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public PathTooLongException(string message) => throw null; - public PathTooLongException(string message, System.Exception innerException) => throw null; - } - - public static class RandomAccess - { - public static System.Int64 GetLength(Microsoft.Win32.SafeHandles.SafeFileHandle handle) => throw null; - public static System.Int64 Read(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Collections.Generic.IReadOnlyList> buffers, System.Int64 fileOffset) => throw null; - public static int Read(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Span buffer, System.Int64 fileOffset) => throw null; - public static System.Threading.Tasks.ValueTask ReadAsync(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Collections.Generic.IReadOnlyList> buffers, System.Int64 fileOffset, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask ReadAsync(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Memory buffer, System.Int64 fileOffset, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static void SetLength(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Int64 length) => throw null; - public static void Write(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Collections.Generic.IReadOnlyList> buffers, System.Int64 fileOffset) => throw null; - public static void Write(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.ReadOnlySpan buffer, System.Int64 fileOffset) => throw null; - public static System.Threading.Tasks.ValueTask WriteAsync(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.Collections.Generic.IReadOnlyList> buffers, System.Int64 fileOffset, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask WriteAsync(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.ReadOnlyMemory buffer, System.Int64 fileOffset, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - } - - public enum SearchOption : int - { - AllDirectories = 1, - TopDirectoryOnly = 0, - } - - public enum SeekOrigin : int - { - Begin = 0, - Current = 1, - End = 2, - } - - public abstract class Stream : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable - { - public virtual System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public virtual System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public abstract bool CanRead { get; } - public abstract bool CanSeek { get; } - public virtual bool CanTimeout { get => throw null; } - public abstract bool CanWrite { get; } - public virtual void Close() => throw null; - public void CopyTo(System.IO.Stream destination) => throw null; - public virtual void CopyTo(System.IO.Stream destination, int bufferSize) => throw null; - public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination) => throw null; - public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize) => throw null; - public virtual System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; - protected virtual System.Threading.WaitHandle CreateWaitHandle() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public virtual int EndRead(System.IAsyncResult asyncResult) => throw null; - public virtual void EndWrite(System.IAsyncResult asyncResult) => throw null; - public abstract void Flush(); - public System.Threading.Tasks.Task FlushAsync() => throw null; - public virtual System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public abstract System.Int64 Length { get; } - public static System.IO.Stream Null; - protected virtual void ObjectInvariant() => throw null; - public abstract System.Int64 Position { get; set; } - public abstract int Read(System.Byte[] buffer, int offset, int count); - public virtual int Read(System.Span buffer) => throw null; - public System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count) => throw null; - public virtual System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public int ReadAtLeast(System.Span buffer, int minimumBytes, bool throwOnEndOfStream = default(bool)) => throw null; - public System.Threading.Tasks.ValueTask ReadAtLeastAsync(System.Memory buffer, int minimumBytes, bool throwOnEndOfStream = default(bool), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual int ReadByte() => throw null; - public void ReadExactly(System.Byte[] buffer, int offset, int count) => throw null; - public void ReadExactly(System.Span buffer) => throw null; - public System.Threading.Tasks.ValueTask ReadExactlyAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask ReadExactlyAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual int ReadTimeout { get => throw null; set => throw null; } - public abstract System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin); - public abstract void SetLength(System.Int64 value); - protected Stream() => throw null; - public static System.IO.Stream Synchronized(System.IO.Stream stream) => throw null; - protected static void ValidateBufferArguments(System.Byte[] buffer, int offset, int count) => throw null; - protected static void ValidateCopyToArguments(System.IO.Stream destination, int bufferSize) => throw null; - public abstract void Write(System.Byte[] buffer, int offset, int count); - public virtual void Write(System.ReadOnlySpan buffer) => throw null; - public System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count) => throw null; - public virtual System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual void WriteByte(System.Byte value) => throw null; - public virtual int WriteTimeout { get => throw null; set => throw null; } - } - - public class StreamReader : System.IO.TextReader - { - public virtual System.IO.Stream BaseStream { get => throw null; } - public override void Close() => throw null; - public virtual System.Text.Encoding CurrentEncoding { get => throw null; } - public void DiscardBufferedData() => throw null; - protected override void Dispose(bool disposing) => throw null; - public bool EndOfStream { get => throw null; } - public static System.IO.StreamReader Null; - public override int Peek() => throw null; - public override int Read() => throw null; - public override int Read(System.Char[] buffer, int index, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override int ReadBlock(System.Char[] buffer, int index, int count) => throw null; - public override int ReadBlock(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadBlockAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.ValueTask ReadBlockAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override string ReadLine() => throw null; - public override System.Threading.Tasks.Task ReadLineAsync() => throw null; - public override System.Threading.Tasks.ValueTask ReadLineAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override string ReadToEnd() => throw null; - public override System.Threading.Tasks.Task ReadToEndAsync() => throw null; - public override System.Threading.Tasks.Task ReadToEndAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public StreamReader(System.IO.Stream stream) => throw null; - public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; - public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks) => throw null; - public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize) => throw null; - public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding = default(System.Text.Encoding), bool detectEncodingFromByteOrderMarks = default(bool), int bufferSize = default(int), bool leaveOpen = default(bool)) => throw null; - public StreamReader(System.IO.Stream stream, bool detectEncodingFromByteOrderMarks) => throw null; - public StreamReader(string path) => throw null; - public StreamReader(string path, System.Text.Encoding encoding) => throw null; - public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks) => throw null; - public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, System.IO.FileStreamOptions options) => throw null; - public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize) => throw null; - public StreamReader(string path, System.IO.FileStreamOptions options) => throw null; - public StreamReader(string path, bool detectEncodingFromByteOrderMarks) => throw null; - } - - public class StreamWriter : System.IO.TextWriter - { - public virtual bool AutoFlush { get => throw null; set => throw null; } - public virtual System.IO.Stream BaseStream { get => throw null; } - public override void Close() => throw null; - protected override void Dispose(bool disposing) => throw null; - public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public override System.Text.Encoding Encoding { get => throw null; } - public override void Flush() => throw null; - public override System.Threading.Tasks.Task FlushAsync() => throw null; - public static System.IO.StreamWriter Null; - public StreamWriter(System.IO.Stream stream) => throw null; - public StreamWriter(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; - public StreamWriter(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize) => throw null; - public StreamWriter(System.IO.Stream stream, System.Text.Encoding encoding = default(System.Text.Encoding), int bufferSize = default(int), bool leaveOpen = default(bool)) => throw null; - public StreamWriter(string path) => throw null; - public StreamWriter(string path, System.Text.Encoding encoding, System.IO.FileStreamOptions options) => throw null; - public StreamWriter(string path, System.IO.FileStreamOptions options) => throw null; - public StreamWriter(string path, bool append) => throw null; - public StreamWriter(string path, bool append, System.Text.Encoding encoding) => throw null; - public StreamWriter(string path, bool append, System.Text.Encoding encoding, int bufferSize) => throw null; - public override void Write(System.Char[] buffer) => throw null; - public override void Write(System.Char[] buffer, int index, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override void Write(System.Char value) => throw null; - public override void Write(string value) => throw null; - public override void Write(string format, object arg0) => throw null; - public override void Write(string format, object arg0, object arg1) => throw null; - public override void Write(string format, object arg0, object arg1, object arg2) => throw null; - public override void Write(string format, params object[] arg) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Char value) => throw null; - public override System.Threading.Tasks.Task WriteAsync(string value) => throw null; - public override void WriteLine(System.ReadOnlySpan buffer) => throw null; - public override void WriteLine(string value) => throw null; - public override void WriteLine(string format, object arg0) => throw null; - public override void WriteLine(string format, object arg0, object arg1) => throw null; - public override void WriteLine(string format, object arg0, object arg1, object arg2) => throw null; - public override void WriteLine(string format, params object[] arg) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync() => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.Char value) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; - } - - public class StringReader : System.IO.TextReader - { - public override void Close() => throw null; - protected override void Dispose(bool disposing) => throw null; - public override int Peek() => throw null; - public override int Read() => throw null; - public override int Read(System.Char[] buffer, int index, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override int ReadBlock(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadBlockAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.ValueTask ReadBlockAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override string ReadLine() => throw null; - public override System.Threading.Tasks.Task ReadLineAsync() => throw null; - public override System.Threading.Tasks.ValueTask ReadLineAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override string ReadToEnd() => throw null; - public override System.Threading.Tasks.Task ReadToEndAsync() => throw null; - public override System.Threading.Tasks.Task ReadToEndAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public StringReader(string s) => throw null; - } - - public class StringWriter : System.IO.TextWriter - { - public override void Close() => throw null; - protected override void Dispose(bool disposing) => throw null; - public override System.Text.Encoding Encoding { get => throw null; } - public override System.Threading.Tasks.Task FlushAsync() => throw null; - public virtual System.Text.StringBuilder GetStringBuilder() => throw null; - public StringWriter() => throw null; - public StringWriter(System.IFormatProvider formatProvider) => throw null; - public StringWriter(System.Text.StringBuilder sb) => throw null; - public StringWriter(System.Text.StringBuilder sb, System.IFormatProvider formatProvider) => throw null; - public override string ToString() => throw null; - public override void Write(System.Char[] buffer, int index, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override void Write(System.Text.StringBuilder value) => throw null; - public override void Write(System.Char value) => throw null; - public override void Write(string value) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Char value) => throw null; - public override System.Threading.Tasks.Task WriteAsync(string value) => throw null; - public override void WriteLine(System.ReadOnlySpan buffer) => throw null; - public override void WriteLine(System.Text.StringBuilder value) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.Char value) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; - } - - public abstract class TextReader : System.MarshalByRefObject, System.IDisposable - { - public virtual void Close() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public static System.IO.TextReader Null; - public virtual int Peek() => throw null; - public virtual int Read() => throw null; - public virtual int Read(System.Char[] buffer, int index, int count) => throw null; - public virtual int Read(System.Span buffer) => throw null; - public virtual System.Threading.Tasks.Task ReadAsync(System.Char[] buffer, int index, int count) => throw null; - public virtual System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual int ReadBlock(System.Char[] buffer, int index, int count) => throw null; - public virtual int ReadBlock(System.Span buffer) => throw null; - public virtual System.Threading.Tasks.Task ReadBlockAsync(System.Char[] buffer, int index, int count) => throw null; - public virtual System.Threading.Tasks.ValueTask ReadBlockAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual string ReadLine() => throw null; - public virtual System.Threading.Tasks.Task ReadLineAsync() => throw null; - public virtual System.Threading.Tasks.ValueTask ReadLineAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public virtual string ReadToEnd() => throw null; - public virtual System.Threading.Tasks.Task ReadToEndAsync() => throw null; - public virtual System.Threading.Tasks.Task ReadToEndAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public static System.IO.TextReader Synchronized(System.IO.TextReader reader) => throw null; - protected TextReader() => throw null; - } - - public abstract class TextWriter : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable - { - public virtual void Close() => throw null; - protected System.Char[] CoreNewLine; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public abstract System.Text.Encoding Encoding { get; } - public virtual void Flush() => throw null; - public virtual System.Threading.Tasks.Task FlushAsync() => throw null; - public virtual System.IFormatProvider FormatProvider { get => throw null; } - public virtual string NewLine { get => throw null; set => throw null; } - public static System.IO.TextWriter Null; - public static System.IO.TextWriter Synchronized(System.IO.TextWriter writer) => throw null; - protected TextWriter() => throw null; - protected TextWriter(System.IFormatProvider formatProvider) => throw null; - public virtual void Write(System.Char[] buffer) => throw null; - public virtual void Write(System.Char[] buffer, int index, int count) => throw null; - public virtual void Write(System.ReadOnlySpan buffer) => throw null; - public virtual void Write(System.Text.StringBuilder value) => throw null; - public virtual void Write(bool value) => throw null; - public virtual void Write(System.Char value) => throw null; - public virtual void Write(System.Decimal value) => throw null; - public virtual void Write(double value) => throw null; - public virtual void Write(float value) => throw null; - public virtual void Write(int value) => throw null; - public virtual void Write(System.Int64 value) => throw null; - public virtual void Write(object value) => throw null; - public virtual void Write(string value) => throw null; - public virtual void Write(string format, object arg0) => throw null; - public virtual void Write(string format, object arg0, object arg1) => throw null; - public virtual void Write(string format, object arg0, object arg1, object arg2) => throw null; - public virtual void Write(string format, params object[] arg) => throw null; - public virtual void Write(System.UInt32 value) => throw null; - public virtual void Write(System.UInt64 value) => throw null; - public System.Threading.Tasks.Task WriteAsync(System.Char[] buffer) => throw null; - public virtual System.Threading.Tasks.Task WriteAsync(System.Char[] buffer, int index, int count) => throw null; - public virtual System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteAsync(System.Char value) => throw null; - public virtual System.Threading.Tasks.Task WriteAsync(string value) => throw null; - public virtual void WriteLine() => throw null; - public virtual void WriteLine(System.Char[] buffer) => throw null; - public virtual void WriteLine(System.Char[] buffer, int index, int count) => throw null; - public virtual void WriteLine(System.ReadOnlySpan buffer) => throw null; - public virtual void WriteLine(System.Text.StringBuilder value) => throw null; - public virtual void WriteLine(bool value) => throw null; - public virtual void WriteLine(System.Char value) => throw null; - public virtual void WriteLine(System.Decimal value) => throw null; - public virtual void WriteLine(double value) => throw null; - public virtual void WriteLine(float value) => throw null; - public virtual void WriteLine(int value) => throw null; - public virtual void WriteLine(System.Int64 value) => throw null; - public virtual void WriteLine(object value) => throw null; - public virtual void WriteLine(string value) => throw null; - public virtual void WriteLine(string format, object arg0) => throw null; - public virtual void WriteLine(string format, object arg0, object arg1) => throw null; - public virtual void WriteLine(string format, object arg0, object arg1, object arg2) => throw null; - public virtual void WriteLine(string format, params object[] arg) => throw null; - public virtual void WriteLine(System.UInt32 value) => throw null; - public virtual void WriteLine(System.UInt64 value) => throw null; - public virtual System.Threading.Tasks.Task WriteLineAsync() => throw null; - public System.Threading.Tasks.Task WriteLineAsync(System.Char[] buffer) => throw null; - public virtual System.Threading.Tasks.Task WriteLineAsync(System.Char[] buffer, int index, int count) => throw null; - public virtual System.Threading.Tasks.Task WriteLineAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteLineAsync(System.Text.StringBuilder value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task WriteLineAsync(System.Char value) => throw null; - public virtual System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; - } - - [System.Flags] - public enum UnixFileMode : int - { - GroupExecute = 8, - GroupRead = 32, - GroupWrite = 16, - None = 0, - OtherExecute = 1, - OtherRead = 4, - OtherWrite = 2, - SetGroup = 1024, - SetUser = 2048, - StickyBit = 512, - UserExecute = 64, - UserRead = 256, - UserWrite = 128, - } - - public class UnmanagedMemoryStream : System.IO.Stream - { - public override bool CanRead { get => throw null; } - public override bool CanSeek { get => throw null; } - public override bool CanWrite { get => throw null; } - public System.Int64 Capacity { get => throw null; } - protected override void Dispose(bool disposing) => throw null; - public override void Flush() => throw null; - public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - protected void Initialize(System.Runtime.InteropServices.SafeBuffer buffer, System.Int64 offset, System.Int64 length, System.IO.FileAccess access) => throw null; - unsafe protected void Initialize(System.Byte* pointer, System.Int64 length, System.Int64 capacity, System.IO.FileAccess access) => throw null; - public override System.Int64 Length { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - unsafe public System.Byte* PositionPointer { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override int ReadByte() => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin loc) => throw null; - public override void SetLength(System.Int64 value) => throw null; - protected UnmanagedMemoryStream() => throw null; - public UnmanagedMemoryStream(System.Runtime.InteropServices.SafeBuffer buffer, System.Int64 offset, System.Int64 length) => throw null; - public UnmanagedMemoryStream(System.Runtime.InteropServices.SafeBuffer buffer, System.Int64 offset, System.Int64 length, System.IO.FileAccess access) => throw null; - unsafe public UnmanagedMemoryStream(System.Byte* pointer, System.Int64 length) => throw null; - unsafe public UnmanagedMemoryStream(System.Byte* pointer, System.Int64 length, System.Int64 capacity, System.IO.FileAccess access) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void Write(System.ReadOnlySpan buffer) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; - } - - namespace Enumeration - { - public struct FileSystemEntry - { - public System.IO.FileAttributes Attributes { get => throw null; } - public System.DateTimeOffset CreationTimeUtc { get => throw null; } - public System.ReadOnlySpan Directory { get => throw null; } - public System.ReadOnlySpan FileName { get => throw null; } - // Stub generator skipped constructor - public bool IsDirectory { get => throw null; } - public bool IsHidden { get => throw null; } - public System.DateTimeOffset LastAccessTimeUtc { get => throw null; } - public System.DateTimeOffset LastWriteTimeUtc { get => throw null; } - public System.Int64 Length { get => throw null; } - public System.ReadOnlySpan OriginalRootDirectory { get => throw null; } - public System.ReadOnlySpan RootDirectory { get => throw null; } - public System.IO.FileSystemInfo ToFileSystemInfo() => throw null; - public string ToFullPath() => throw null; - public string ToSpecifiedFullPath() => throw null; - } - - public class FileSystemEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - public delegate bool FindPredicate(ref System.IO.Enumeration.FileSystemEntry entry); - - - public delegate TResult FindTransform(ref System.IO.Enumeration.FileSystemEntry entry); - - - public FileSystemEnumerable(string directory, System.IO.Enumeration.FileSystemEnumerable.FindTransform transform, System.IO.EnumerationOptions options = default(System.IO.EnumerationOptions)) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public System.IO.Enumeration.FileSystemEnumerable.FindPredicate ShouldIncludePredicate { get => throw null; set => throw null; } - public System.IO.Enumeration.FileSystemEnumerable.FindPredicate ShouldRecursePredicate { get => throw null; set => throw null; } - } - - public abstract class FileSystemEnumerator : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - protected virtual bool ContinueOnError(int error) => throw null; - public TResult Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public FileSystemEnumerator(string directory, System.IO.EnumerationOptions options = default(System.IO.EnumerationOptions)) => throw null; - public bool MoveNext() => throw null; - protected virtual void OnDirectoryFinished(System.ReadOnlySpan directory) => throw null; - public void Reset() => throw null; - protected virtual bool ShouldIncludeEntry(ref System.IO.Enumeration.FileSystemEntry entry) => throw null; - protected virtual bool ShouldRecurseIntoEntry(ref System.IO.Enumeration.FileSystemEntry entry) => throw null; - protected abstract TResult TransformEntry(ref System.IO.Enumeration.FileSystemEntry entry); - } - - public static class FileSystemName - { - public static bool MatchesSimpleExpression(System.ReadOnlySpan expression, System.ReadOnlySpan name, bool ignoreCase = default(bool)) => throw null; - public static bool MatchesWin32Expression(System.ReadOnlySpan expression, System.ReadOnlySpan name, bool ignoreCase = default(bool)) => throw null; - public static string TranslateWin32Expression(string expression) => throw null; - } - - } - } - namespace Net - { - public static class WebUtility - { - public static string HtmlDecode(string value) => throw null; - public static void HtmlDecode(string value, System.IO.TextWriter output) => throw null; - public static string HtmlEncode(string value) => throw null; - public static void HtmlEncode(string value, System.IO.TextWriter output) => throw null; - public static string UrlDecode(string encodedValue) => throw null; - public static System.Byte[] UrlDecodeToBytes(System.Byte[] encodedValue, int offset, int count) => throw null; - public static string UrlEncode(string value) => throw null; - public static System.Byte[] UrlEncodeToBytes(System.Byte[] value, int offset, int count) => throw null; - } - - } - namespace Numerics - { - public static class BitOperations - { - public static bool IsPow2(System.IntPtr value) => throw null; - public static bool IsPow2(System.UIntPtr value) => throw null; - public static bool IsPow2(int value) => throw null; - public static bool IsPow2(System.Int64 value) => throw null; - public static bool IsPow2(System.UInt32 value) => throw null; - public static bool IsPow2(System.UInt64 value) => throw null; - public static int LeadingZeroCount(System.UIntPtr value) => throw null; - public static int LeadingZeroCount(System.UInt32 value) => throw null; - public static int LeadingZeroCount(System.UInt64 value) => throw null; - public static int Log2(System.UIntPtr value) => throw null; - public static int Log2(System.UInt32 value) => throw null; - public static int Log2(System.UInt64 value) => throw null; - public static int PopCount(System.UIntPtr value) => throw null; - public static int PopCount(System.UInt32 value) => throw null; - public static int PopCount(System.UInt64 value) => throw null; - public static System.UIntPtr RotateLeft(System.UIntPtr value, int offset) => throw null; - public static System.UInt32 RotateLeft(System.UInt32 value, int offset) => throw null; - public static System.UInt64 RotateLeft(System.UInt64 value, int offset) => throw null; - public static System.UIntPtr RotateRight(System.UIntPtr value, int offset) => throw null; - public static System.UInt32 RotateRight(System.UInt32 value, int offset) => throw null; - public static System.UInt64 RotateRight(System.UInt64 value, int offset) => throw null; - public static System.UIntPtr RoundUpToPowerOf2(System.UIntPtr value) => throw null; - public static System.UInt32 RoundUpToPowerOf2(System.UInt32 value) => throw null; - public static System.UInt64 RoundUpToPowerOf2(System.UInt64 value) => throw null; - public static int TrailingZeroCount(System.IntPtr value) => throw null; - public static int TrailingZeroCount(System.UIntPtr value) => throw null; - public static int TrailingZeroCount(int value) => throw null; - public static int TrailingZeroCount(System.Int64 value) => throw null; - public static int TrailingZeroCount(System.UInt32 value) => throw null; - public static int TrailingZeroCount(System.UInt64 value) => throw null; - } - - public interface IAdditionOperators where TSelf : System.Numerics.IAdditionOperators - { - static abstract TResult operator +(TSelf left, TOther right); - static virtual TResult operator checked +(TSelf left, TOther right) => throw null; - } - - public interface IAdditiveIdentity where TSelf : System.Numerics.IAdditiveIdentity - { - static abstract TResult AdditiveIdentity { get; } - } - - public interface IBinaryFloatingPointIeee754 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IBinaryFloatingPointIeee754 - { - } - - public interface IBinaryInteger : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IShiftOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IBinaryInteger - { - static virtual (TSelf, TSelf) DivRem(TSelf left, TSelf right) => throw null; - int GetByteCount(); - int GetShortestBitLength(); - static virtual TSelf LeadingZeroCount(TSelf value) => throw null; - static abstract TSelf PopCount(TSelf value); - static virtual TSelf ReadBigEndian(System.Byte[] source, bool isUnsigned) => throw null; - static virtual TSelf ReadBigEndian(System.Byte[] source, int startIndex, bool isUnsigned) => throw null; - static virtual TSelf ReadBigEndian(System.ReadOnlySpan source, bool isUnsigned) => throw null; - static virtual TSelf ReadLittleEndian(System.Byte[] source, bool isUnsigned) => throw null; - static virtual TSelf ReadLittleEndian(System.Byte[] source, int startIndex, bool isUnsigned) => throw null; - static virtual TSelf ReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned) => throw null; - static virtual TSelf RotateLeft(TSelf value, int rotateAmount) => throw null; - static virtual TSelf RotateRight(TSelf value, int rotateAmount) => throw null; - static abstract TSelf TrailingZeroCount(TSelf value); - static abstract bool TryReadBigEndian(System.ReadOnlySpan source, bool isUnsigned, out TSelf value); - static abstract bool TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out TSelf value); - bool TryWriteBigEndian(System.Span destination, out int bytesWritten); - bool TryWriteLittleEndian(System.Span destination, out int bytesWritten); - int WriteBigEndian(System.Byte[] destination) => throw null; - int WriteBigEndian(System.Byte[] destination, int startIndex) => throw null; - int WriteBigEndian(System.Span destination) => throw null; - int WriteLittleEndian(System.Byte[] destination) => throw null; - int WriteLittleEndian(System.Byte[] destination, int startIndex) => throw null; - int WriteLittleEndian(System.Span destination) => throw null; - } - - public interface IBinaryNumber : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IBinaryNumber - { - static virtual TSelf AllBitsSet { get => throw null; } - static abstract bool IsPow2(TSelf value); - static abstract TSelf Log2(TSelf value); - } - - public interface IBitwiseOperators where TSelf : System.Numerics.IBitwiseOperators - { - static abstract TResult operator &(TSelf left, TOther right); - static abstract TResult operator ^(TSelf left, TOther right); - static abstract TResult operator |(TSelf left, TOther right); - static abstract TResult operator ~(TSelf value); - } - - public interface IComparisonOperators : System.Numerics.IEqualityOperators where TSelf : System.Numerics.IComparisonOperators - { - static abstract TResult operator <(TSelf left, TOther right); - static abstract TResult operator <=(TSelf left, TOther right); - static abstract TResult operator >(TSelf left, TOther right); - static abstract TResult operator >=(TSelf left, TOther right); - } - - public interface IDecrementOperators where TSelf : System.Numerics.IDecrementOperators - { - static abstract TSelf operator --(TSelf value); - static virtual TSelf operator checked --(TSelf value) => throw null; - } - - public interface IDivisionOperators where TSelf : System.Numerics.IDivisionOperators - { - static abstract TResult operator /(TSelf left, TOther right); - static virtual TResult operator checked /(TSelf left, TOther right) => throw null; - } - - public interface IEqualityOperators where TSelf : System.Numerics.IEqualityOperators - { - static abstract TResult operator !=(TSelf left, TOther right); - static abstract TResult operator ==(TSelf left, TOther right); - } - - public interface IExponentialFunctions : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IFloatingPointConstants, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IExponentialFunctions - { - static abstract TSelf Exp(TSelf x); - static abstract TSelf Exp10(TSelf x); - static virtual TSelf Exp10M1(TSelf x) => throw null; - static abstract TSelf Exp2(TSelf x); - static virtual TSelf Exp2M1(TSelf x) => throw null; - static virtual TSelf ExpM1(TSelf x) => throw null; - } - - public interface IFloatingPoint : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IFloatingPointConstants, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IFloatingPoint - { - static virtual TSelf Ceiling(TSelf x) => throw null; - static virtual TSelf Floor(TSelf x) => throw null; - int GetExponentByteCount(); - int GetExponentShortestBitLength(); - int GetSignificandBitLength(); - int GetSignificandByteCount(); - static virtual TSelf Round(TSelf x) => throw null; - static virtual TSelf Round(TSelf x, System.MidpointRounding mode) => throw null; - static virtual TSelf Round(TSelf x, int digits) => throw null; - static abstract TSelf Round(TSelf x, int digits, System.MidpointRounding mode); - static virtual TSelf Truncate(TSelf x) => throw null; - bool TryWriteExponentBigEndian(System.Span destination, out int bytesWritten); - bool TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten); - bool TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten); - bool TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten); - int WriteExponentBigEndian(System.Byte[] destination) => throw null; - int WriteExponentBigEndian(System.Byte[] destination, int startIndex) => throw null; - int WriteExponentBigEndian(System.Span destination) => throw null; - int WriteExponentLittleEndian(System.Byte[] destination) => throw null; - int WriteExponentLittleEndian(System.Byte[] destination, int startIndex) => throw null; - int WriteExponentLittleEndian(System.Span destination) => throw null; - int WriteSignificandBigEndian(System.Byte[] destination) => throw null; - int WriteSignificandBigEndian(System.Byte[] destination, int startIndex) => throw null; - int WriteSignificandBigEndian(System.Span destination) => throw null; - int WriteSignificandLittleEndian(System.Byte[] destination) => throw null; - int WriteSignificandLittleEndian(System.Byte[] destination, int startIndex) => throw null; - int WriteSignificandLittleEndian(System.Span destination) => throw null; - } - - public interface IFloatingPointConstants : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IFloatingPointConstants - { - static abstract TSelf E { get; } - static abstract TSelf Pi { get; } - static abstract TSelf Tau { get; } - } - - public interface IFloatingPointIeee754 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IFloatingPointIeee754 - { - static abstract TSelf Atan2(TSelf y, TSelf x); - static abstract TSelf Atan2Pi(TSelf y, TSelf x); - static abstract TSelf BitDecrement(TSelf x); - static abstract TSelf BitIncrement(TSelf x); - static abstract TSelf Epsilon { get; } - static abstract TSelf FusedMultiplyAdd(TSelf left, TSelf right, TSelf addend); - static abstract int ILogB(TSelf x); - static abstract TSelf Ieee754Remainder(TSelf left, TSelf right); - static abstract TSelf NaN { get; } - static abstract TSelf NegativeInfinity { get; } - static abstract TSelf NegativeZero { get; } - static abstract TSelf PositiveInfinity { get; } - static virtual TSelf ReciprocalEstimate(TSelf x) => throw null; - static virtual TSelf ReciprocalSqrtEstimate(TSelf x) => throw null; - static abstract TSelf ScaleB(TSelf x, int n); - } - - public interface IHyperbolicFunctions : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IFloatingPointConstants, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IHyperbolicFunctions - { - static abstract TSelf Acosh(TSelf x); - static abstract TSelf Asinh(TSelf x); - static abstract TSelf Atanh(TSelf x); - static abstract TSelf Cosh(TSelf x); - static abstract TSelf Sinh(TSelf x); - static abstract TSelf Tanh(TSelf x); - } - - public interface IIncrementOperators where TSelf : System.Numerics.IIncrementOperators - { - static abstract TSelf operator ++(TSelf value); - static virtual TSelf operator checked ++(TSelf value) => throw null; - } - - public interface ILogarithmicFunctions : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IFloatingPointConstants, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ILogarithmicFunctions - { - static abstract TSelf Log(TSelf x); - static abstract TSelf Log(TSelf x, TSelf newBase); - static abstract TSelf Log10(TSelf x); - static virtual TSelf Log10P1(TSelf x) => throw null; - static abstract TSelf Log2(TSelf x); - static virtual TSelf Log2P1(TSelf x) => throw null; - static virtual TSelf LogP1(TSelf x) => throw null; - } - - public interface IMinMaxValue where TSelf : System.Numerics.IMinMaxValue - { - static abstract TSelf MaxValue { get; } - static abstract TSelf MinValue { get; } - } - - public interface IModulusOperators where TSelf : System.Numerics.IModulusOperators - { - static abstract TResult operator %(TSelf left, TOther right); - } - - public interface IMultiplicativeIdentity where TSelf : System.Numerics.IMultiplicativeIdentity - { - static abstract TResult MultiplicativeIdentity { get; } - } - - public interface IMultiplyOperators where TSelf : System.Numerics.IMultiplyOperators - { - static abstract TResult operator *(TSelf left, TOther right); - static virtual TResult operator checked *(TSelf left, TOther right) => throw null; - } - - public interface INumber : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.INumber - { - static virtual TSelf Clamp(TSelf value, TSelf min, TSelf max) => throw null; - static virtual TSelf CopySign(TSelf value, TSelf sign) => throw null; - static virtual TSelf Max(TSelf x, TSelf y) => throw null; - static virtual TSelf MaxNumber(TSelf x, TSelf y) => throw null; - static virtual TSelf Min(TSelf x, TSelf y) => throw null; - static virtual TSelf MinNumber(TSelf x, TSelf y) => throw null; - static virtual int Sign(TSelf value) => throw null; - } - - public interface INumberBase : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.INumberBase - { - static abstract TSelf Abs(TSelf value); - static virtual TSelf CreateChecked(TOther value) where TOther : System.Numerics.INumberBase => throw null; - static virtual TSelf CreateSaturating(TOther value) where TOther : System.Numerics.INumberBase => throw null; - static virtual TSelf CreateTruncating(TOther value) where TOther : System.Numerics.INumberBase => throw null; - static abstract bool IsCanonical(TSelf value); - static abstract bool IsComplexNumber(TSelf value); - static abstract bool IsEvenInteger(TSelf value); - static abstract bool IsFinite(TSelf value); - static abstract bool IsImaginaryNumber(TSelf value); - static abstract bool IsInfinity(TSelf value); - static abstract bool IsInteger(TSelf value); - static abstract bool IsNaN(TSelf value); - static abstract bool IsNegative(TSelf value); - static abstract bool IsNegativeInfinity(TSelf value); - static abstract bool IsNormal(TSelf value); - static abstract bool IsOddInteger(TSelf value); - static abstract bool IsPositive(TSelf value); - static abstract bool IsPositiveInfinity(TSelf value); - static abstract bool IsRealNumber(TSelf value); - static abstract bool IsSubnormal(TSelf value); - static abstract bool IsZero(TSelf value); - static abstract TSelf MaxMagnitude(TSelf x, TSelf y); - static abstract TSelf MaxMagnitudeNumber(TSelf x, TSelf y); - static abstract TSelf MinMagnitude(TSelf x, TSelf y); - static abstract TSelf MinMagnitudeNumber(TSelf x, TSelf y); - static abstract TSelf One { get; } - static abstract TSelf Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider); - static abstract TSelf Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider); - static abstract int Radix { get; } - static abstract bool TryConvertFromChecked(TOther value, out TSelf result) where TOther : System.Numerics.INumberBase; - static abstract bool TryConvertFromSaturating(TOther value, out TSelf result) where TOther : System.Numerics.INumberBase; - static abstract bool TryConvertFromTruncating(TOther value, out TSelf result) where TOther : System.Numerics.INumberBase; - static abstract bool TryConvertToChecked(TSelf value, out TOther result) where TOther : System.Numerics.INumberBase; - static abstract bool TryConvertToSaturating(TSelf value, out TOther result) where TOther : System.Numerics.INumberBase; - static abstract bool TryConvertToTruncating(TSelf value, out TOther result) where TOther : System.Numerics.INumberBase; - static abstract bool TryParse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out TSelf result); - static abstract bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out TSelf result); - static abstract TSelf Zero { get; } - } - - public interface IPowerFunctions : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IPowerFunctions - { - static abstract TSelf Pow(TSelf x, TSelf y); - } - - public interface IRootFunctions : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IFloatingPointConstants, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IRootFunctions - { - static abstract TSelf Cbrt(TSelf x); - static abstract TSelf Hypot(TSelf x, TSelf y); - static abstract TSelf RootN(TSelf x, int n); - static abstract TSelf Sqrt(TSelf x); - } - - public interface IShiftOperators where TSelf : System.Numerics.IShiftOperators - { - static abstract TResult operator <<(TSelf value, TOther shiftAmount); - static abstract TResult operator >>(TSelf value, TOther shiftAmount); - static abstract TResult operator >>>(TSelf value, TOther shiftAmount); - } - - public interface ISignedNumber : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ISignedNumber - { - static abstract TSelf NegativeOne { get; } - } - - public interface ISubtractionOperators where TSelf : System.Numerics.ISubtractionOperators - { - static abstract TResult operator -(TSelf left, TOther right); - static virtual TResult operator checked -(TSelf left, TOther right) => throw null; - } - - public interface ITrigonometricFunctions : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IFloatingPointConstants, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ITrigonometricFunctions - { - static abstract TSelf Acos(TSelf x); - static abstract TSelf AcosPi(TSelf x); - static abstract TSelf Asin(TSelf x); - static abstract TSelf AsinPi(TSelf x); - static abstract TSelf Atan(TSelf x); - static abstract TSelf AtanPi(TSelf x); - static abstract TSelf Cos(TSelf x); - static abstract TSelf CosPi(TSelf x); - static abstract TSelf Sin(TSelf x); - static abstract (TSelf, TSelf) SinCos(TSelf x); - static abstract (TSelf, TSelf) SinCosPi(TSelf x); - static abstract TSelf SinPi(TSelf x); - static abstract TSelf Tan(TSelf x); - static abstract TSelf TanPi(TSelf x); - } - - public interface IUnaryNegationOperators where TSelf : System.Numerics.IUnaryNegationOperators - { - static abstract TResult operator -(TSelf value); - static virtual TResult operator checked -(TSelf value) => throw null; - } - - public interface IUnaryPlusOperators where TSelf : System.Numerics.IUnaryPlusOperators - { - static abstract TResult operator +(TSelf value); - } - - public interface IUnsignedNumber : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IUnsignedNumber - { - } - - } - namespace Reflection - { - public class AmbiguousMatchException : System.SystemException - { - public AmbiguousMatchException() => throw null; - public AmbiguousMatchException(string message) => throw null; - public AmbiguousMatchException(string message, System.Exception inner) => throw null; - } - - public abstract class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.ISerializable - { - public static bool operator !=(System.Reflection.Assembly left, System.Reflection.Assembly right) => throw null; - public static bool operator ==(System.Reflection.Assembly left, System.Reflection.Assembly right) => throw null; - protected Assembly() => throw null; - public virtual string CodeBase { get => throw null; } - public object CreateInstance(string typeName) => throw null; - public object CreateInstance(string typeName, bool ignoreCase) => throw null; - public virtual object CreateInstance(string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; - public static string CreateQualifiedName(string assemblyName, string typeName) => throw null; - public virtual System.Collections.Generic.IEnumerable CustomAttributes { get => throw null; } - public virtual System.Collections.Generic.IEnumerable DefinedTypes { get => throw null; } - public virtual System.Reflection.MethodInfo EntryPoint { get => throw null; } - public override bool Equals(object o) => throw null; - public virtual string EscapedCodeBase { get => throw null; } - public virtual System.Collections.Generic.IEnumerable ExportedTypes { get => throw null; } - public virtual string FullName { get => throw null; } - public static System.Reflection.Assembly GetAssembly(System.Type type) => throw null; - public static System.Reflection.Assembly GetCallingAssembly() => throw null; - public virtual object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; - public virtual object[] GetCustomAttributes(bool inherit) => throw null; - public virtual System.Collections.Generic.IList GetCustomAttributesData() => throw null; - public static System.Reflection.Assembly GetEntryAssembly() => throw null; - public static System.Reflection.Assembly GetExecutingAssembly() => throw null; - public virtual System.Type[] GetExportedTypes() => throw null; - public virtual System.IO.FileStream GetFile(string name) => throw null; - public virtual System.IO.FileStream[] GetFiles() => throw null; - public virtual System.IO.FileStream[] GetFiles(bool getResourceModules) => throw null; - public virtual System.Type[] GetForwardedTypes() => throw null; - public override int GetHashCode() => throw null; - public System.Reflection.Module[] GetLoadedModules() => throw null; - public virtual System.Reflection.Module[] GetLoadedModules(bool getResourceModules) => throw null; - public virtual System.Reflection.ManifestResourceInfo GetManifestResourceInfo(string resourceName) => throw null; - public virtual string[] GetManifestResourceNames() => throw null; - public virtual System.IO.Stream GetManifestResourceStream(System.Type type, string name) => throw null; - public virtual System.IO.Stream GetManifestResourceStream(string name) => throw null; - public virtual System.Reflection.Module GetModule(string name) => throw null; - public System.Reflection.Module[] GetModules() => throw null; - public virtual System.Reflection.Module[] GetModules(bool getResourceModules) => throw null; - public virtual System.Reflection.AssemblyName GetName() => throw null; - public virtual System.Reflection.AssemblyName GetName(bool copiedName) => throw null; - public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public virtual System.Reflection.AssemblyName[] GetReferencedAssemblies() => throw null; - public virtual System.Reflection.Assembly GetSatelliteAssembly(System.Globalization.CultureInfo culture) => throw null; - public virtual System.Reflection.Assembly GetSatelliteAssembly(System.Globalization.CultureInfo culture, System.Version version) => throw null; - public virtual System.Type GetType(string name) => throw null; - public virtual System.Type GetType(string name, bool throwOnError) => throw null; - public virtual System.Type GetType(string name, bool throwOnError, bool ignoreCase) => throw null; - public virtual System.Type[] GetTypes() => throw null; - public virtual bool GlobalAssemblyCache { get => throw null; } - public virtual System.Int64 HostContext { get => throw null; } - public virtual string ImageRuntimeVersion { get => throw null; } - public virtual bool IsCollectible { get => throw null; } - public virtual bool IsDefined(System.Type attributeType, bool inherit) => throw null; - public virtual bool IsDynamic { get => throw null; } - public bool IsFullyTrusted { get => throw null; } - public static System.Reflection.Assembly Load(System.Reflection.AssemblyName assemblyRef) => throw null; - public static System.Reflection.Assembly Load(System.Byte[] rawAssembly) => throw null; - public static System.Reflection.Assembly Load(System.Byte[] rawAssembly, System.Byte[] rawSymbolStore) => throw null; - public static System.Reflection.Assembly Load(string assemblyString) => throw null; - public static System.Reflection.Assembly LoadFile(string path) => throw null; - public static System.Reflection.Assembly LoadFrom(string assemblyFile) => throw null; - public static System.Reflection.Assembly LoadFrom(string assemblyFile, System.Byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm) => throw null; - public System.Reflection.Module LoadModule(string moduleName, System.Byte[] rawModule) => throw null; - public virtual System.Reflection.Module LoadModule(string moduleName, System.Byte[] rawModule, System.Byte[] rawSymbolStore) => throw null; - public static System.Reflection.Assembly LoadWithPartialName(string partialName) => throw null; - public virtual string Location { get => throw null; } - public virtual System.Reflection.Module ManifestModule { get => throw null; } - public virtual event System.Reflection.ModuleResolveEventHandler ModuleResolve; - public virtual System.Collections.Generic.IEnumerable Modules { get => throw null; } - public virtual bool ReflectionOnly { get => throw null; } - public static System.Reflection.Assembly ReflectionOnlyLoad(System.Byte[] rawAssembly) => throw null; - public static System.Reflection.Assembly ReflectionOnlyLoad(string assemblyString) => throw null; - public static System.Reflection.Assembly ReflectionOnlyLoadFrom(string assemblyFile) => throw null; - public virtual System.Security.SecurityRuleSet SecurityRuleSet { get => throw null; } - public override string ToString() => throw null; - public static System.Reflection.Assembly UnsafeLoadFrom(string assemblyFile) => throw null; - } - - public class AssemblyAlgorithmIdAttribute : System.Attribute - { - public System.UInt32 AlgorithmId { get => throw null; } - public AssemblyAlgorithmIdAttribute(System.Configuration.Assemblies.AssemblyHashAlgorithm algorithmId) => throw null; - public AssemblyAlgorithmIdAttribute(System.UInt32 algorithmId) => throw null; - } - - public class AssemblyCompanyAttribute : System.Attribute - { - public AssemblyCompanyAttribute(string company) => throw null; - public string Company { get => throw null; } - } - - public class AssemblyConfigurationAttribute : System.Attribute - { - public AssemblyConfigurationAttribute(string configuration) => throw null; - public string Configuration { get => throw null; } - } - - public enum AssemblyContentType : int - { - Default = 0, - WindowsRuntime = 1, - } - - public class AssemblyCopyrightAttribute : System.Attribute - { - public AssemblyCopyrightAttribute(string copyright) => throw null; - public string Copyright { get => throw null; } - } - - public class AssemblyCultureAttribute : System.Attribute - { - public AssemblyCultureAttribute(string culture) => throw null; - public string Culture { get => throw null; } - } - - public class AssemblyDefaultAliasAttribute : System.Attribute - { - public AssemblyDefaultAliasAttribute(string defaultAlias) => throw null; - public string DefaultAlias { get => throw null; } - } - - public class AssemblyDelaySignAttribute : System.Attribute - { - public AssemblyDelaySignAttribute(bool delaySign) => throw null; - public bool DelaySign { get => throw null; } - } - - public class AssemblyDescriptionAttribute : System.Attribute - { - public AssemblyDescriptionAttribute(string description) => throw null; - public string Description { get => throw null; } - } - - public class AssemblyFileVersionAttribute : System.Attribute - { - public AssemblyFileVersionAttribute(string version) => throw null; - public string Version { get => throw null; } - } - - public class AssemblyFlagsAttribute : System.Attribute - { - public int AssemblyFlags { get => throw null; } - public AssemblyFlagsAttribute(System.Reflection.AssemblyNameFlags assemblyFlags) => throw null; - public AssemblyFlagsAttribute(int assemblyFlags) => throw null; - public AssemblyFlagsAttribute(System.UInt32 flags) => throw null; - public System.UInt32 Flags { get => throw null; } - } - - public class AssemblyInformationalVersionAttribute : System.Attribute - { - public AssemblyInformationalVersionAttribute(string informationalVersion) => throw null; - public string InformationalVersion { get => throw null; } - } - - public class AssemblyKeyFileAttribute : System.Attribute - { - public AssemblyKeyFileAttribute(string keyFile) => throw null; - public string KeyFile { get => throw null; } - } - - public class AssemblyKeyNameAttribute : System.Attribute - { - public AssemblyKeyNameAttribute(string keyName) => throw null; - public string KeyName { get => throw null; } - } - - public class AssemblyMetadataAttribute : System.Attribute - { - public AssemblyMetadataAttribute(string key, string value) => throw null; - public string Key { get => throw null; } - public string Value { get => throw null; } - } - - public class AssemblyName : System.ICloneable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable - { - public AssemblyName() => throw null; - public AssemblyName(string assemblyName) => throw null; - public object Clone() => throw null; - public string CodeBase { get => throw null; set => throw null; } - public System.Reflection.AssemblyContentType ContentType { get => throw null; set => throw null; } - public System.Globalization.CultureInfo CultureInfo { get => throw null; set => throw null; } - public string CultureName { get => throw null; set => throw null; } - public string EscapedCodeBase { get => throw null; } - public System.Reflection.AssemblyNameFlags Flags { get => throw null; set => throw null; } - public string FullName { get => throw null; } - public static System.Reflection.AssemblyName GetAssemblyName(string assemblyFile) => throw null; - public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Byte[] GetPublicKey() => throw null; - public System.Byte[] GetPublicKeyToken() => throw null; - public System.Configuration.Assemblies.AssemblyHashAlgorithm HashAlgorithm { get => throw null; set => throw null; } - public System.Reflection.StrongNameKeyPair KeyPair { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public void OnDeserialization(object sender) => throw null; - public System.Reflection.ProcessorArchitecture ProcessorArchitecture { get => throw null; set => throw null; } - public static bool ReferenceMatchesDefinition(System.Reflection.AssemblyName reference, System.Reflection.AssemblyName definition) => throw null; - public void SetPublicKey(System.Byte[] publicKey) => throw null; - public void SetPublicKeyToken(System.Byte[] publicKeyToken) => throw null; - public override string ToString() => throw null; - public System.Version Version { get => throw null; set => throw null; } - public System.Configuration.Assemblies.AssemblyVersionCompatibility VersionCompatibility { get => throw null; set => throw null; } - } - - [System.Flags] - public enum AssemblyNameFlags : int - { - EnableJITcompileOptimizer = 16384, - EnableJITcompileTracking = 32768, - None = 0, - PublicKey = 1, - Retargetable = 256, - } - - public class AssemblyNameProxy : System.MarshalByRefObject - { - public AssemblyNameProxy() => throw null; - public System.Reflection.AssemblyName GetAssemblyName(string assemblyFile) => throw null; - } - - public class AssemblyProductAttribute : System.Attribute - { - public AssemblyProductAttribute(string product) => throw null; - public string Product { get => throw null; } - } - - public class AssemblySignatureKeyAttribute : System.Attribute - { - public AssemblySignatureKeyAttribute(string publicKey, string countersignature) => throw null; - public string Countersignature { get => throw null; } - public string PublicKey { get => throw null; } - } - - public class AssemblyTitleAttribute : System.Attribute - { - public AssemblyTitleAttribute(string title) => throw null; - public string Title { get => throw null; } - } - - public class AssemblyTrademarkAttribute : System.Attribute - { - public AssemblyTrademarkAttribute(string trademark) => throw null; - public string Trademark { get => throw null; } - } - - public class AssemblyVersionAttribute : System.Attribute - { - public AssemblyVersionAttribute(string version) => throw null; - public string Version { get => throw null; } - } - - public abstract class Binder - { - public abstract System.Reflection.FieldInfo BindToField(System.Reflection.BindingFlags bindingAttr, System.Reflection.FieldInfo[] match, object value, System.Globalization.CultureInfo culture); - public abstract System.Reflection.MethodBase BindToMethod(System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] names, out object state); - protected Binder() => throw null; - public abstract object ChangeType(object value, System.Type type, System.Globalization.CultureInfo culture); - public abstract void ReorderArgumentArray(ref object[] args, object state); - public abstract System.Reflection.MethodBase SelectMethod(System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); - public abstract System.Reflection.PropertyInfo SelectProperty(System.Reflection.BindingFlags bindingAttr, System.Reflection.PropertyInfo[] match, System.Type returnType, System.Type[] indexes, System.Reflection.ParameterModifier[] modifiers); - } - - [System.Flags] - public enum BindingFlags : int - { - CreateInstance = 512, - DeclaredOnly = 2, - Default = 0, - DoNotWrapExceptions = 33554432, - ExactBinding = 65536, - FlattenHierarchy = 64, - GetField = 1024, - GetProperty = 4096, - IgnoreCase = 1, - IgnoreReturn = 16777216, - Instance = 4, - InvokeMethod = 256, - NonPublic = 32, - OptionalParamBinding = 262144, - Public = 16, - PutDispProperty = 16384, - PutRefDispProperty = 32768, - SetField = 2048, - SetProperty = 8192, - Static = 8, - SuppressChangeType = 131072, - } - - [System.Flags] - public enum CallingConventions : int - { - Any = 3, - ExplicitThis = 64, - HasThis = 32, - Standard = 1, - VarArgs = 2, - } - - public abstract class ConstructorInfo : System.Reflection.MethodBase - { - public static bool operator !=(System.Reflection.ConstructorInfo left, System.Reflection.ConstructorInfo right) => throw null; - public static bool operator ==(System.Reflection.ConstructorInfo left, System.Reflection.ConstructorInfo right) => throw null; - protected ConstructorInfo() => throw null; - public static string ConstructorName; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public abstract object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture); - public object Invoke(object[] parameters) => throw null; - public override System.Reflection.MemberTypes MemberType { get => throw null; } - public static string TypeConstructorName; - } - - public class CustomAttributeData - { - public virtual System.Type AttributeType { get => throw null; } - public virtual System.Reflection.ConstructorInfo Constructor { get => throw null; } - public virtual System.Collections.Generic.IList ConstructorArguments { get => throw null; } - protected CustomAttributeData() => throw null; - public override bool Equals(object obj) => throw null; - public static System.Collections.Generic.IList GetCustomAttributes(System.Reflection.Assembly target) => throw null; - public static System.Collections.Generic.IList GetCustomAttributes(System.Reflection.MemberInfo target) => throw null; - public static System.Collections.Generic.IList GetCustomAttributes(System.Reflection.Module target) => throw null; - public static System.Collections.Generic.IList GetCustomAttributes(System.Reflection.ParameterInfo target) => throw null; - public override int GetHashCode() => throw null; - public virtual System.Collections.Generic.IList NamedArguments { get => throw null; } - public override string ToString() => throw null; - } - - public static class CustomAttributeExtensions - { - public static System.Attribute GetCustomAttribute(this System.Reflection.Assembly element, System.Type attributeType) => throw null; - public static System.Attribute GetCustomAttribute(this System.Reflection.MemberInfo element, System.Type attributeType) => throw null; - public static System.Attribute GetCustomAttribute(this System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) => throw null; - public static System.Attribute GetCustomAttribute(this System.Reflection.Module element, System.Type attributeType) => throw null; - public static System.Attribute GetCustomAttribute(this System.Reflection.ParameterInfo element, System.Type attributeType) => throw null; - public static System.Attribute GetCustomAttribute(this System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) => throw null; - public static T GetCustomAttribute(this System.Reflection.Assembly element) where T : System.Attribute => throw null; - public static T GetCustomAttribute(this System.Reflection.MemberInfo element) where T : System.Attribute => throw null; - public static T GetCustomAttribute(this System.Reflection.MemberInfo element, bool inherit) where T : System.Attribute => throw null; - public static T GetCustomAttribute(this System.Reflection.Module element) where T : System.Attribute => throw null; - public static T GetCustomAttribute(this System.Reflection.ParameterInfo element) where T : System.Attribute => throw null; - public static T GetCustomAttribute(this System.Reflection.ParameterInfo element, bool inherit) where T : System.Attribute => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Assembly element) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Assembly element, System.Type attributeType) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element, System.Type attributeType) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element, bool inherit) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Module element) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Module element, System.Type attributeType) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element, System.Type attributeType) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element, bool inherit) => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Assembly element) where T : System.Attribute => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element) where T : System.Attribute => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.MemberInfo element, bool inherit) where T : System.Attribute => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.Module element) where T : System.Attribute => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element) where T : System.Attribute => throw null; - public static System.Collections.Generic.IEnumerable GetCustomAttributes(this System.Reflection.ParameterInfo element, bool inherit) where T : System.Attribute => throw null; - public static bool IsDefined(this System.Reflection.Assembly element, System.Type attributeType) => throw null; - public static bool IsDefined(this System.Reflection.MemberInfo element, System.Type attributeType) => throw null; - public static bool IsDefined(this System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) => throw null; - public static bool IsDefined(this System.Reflection.Module element, System.Type attributeType) => throw null; - public static bool IsDefined(this System.Reflection.ParameterInfo element, System.Type attributeType) => throw null; - public static bool IsDefined(this System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) => throw null; - } - - public class CustomAttributeFormatException : System.FormatException - { - public CustomAttributeFormatException() => throw null; - protected CustomAttributeFormatException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public CustomAttributeFormatException(string message) => throw null; - public CustomAttributeFormatException(string message, System.Exception inner) => throw null; - } - - public struct CustomAttributeNamedArgument : System.IEquatable - { - public static bool operator !=(System.Reflection.CustomAttributeNamedArgument left, System.Reflection.CustomAttributeNamedArgument right) => throw null; - public static bool operator ==(System.Reflection.CustomAttributeNamedArgument left, System.Reflection.CustomAttributeNamedArgument right) => throw null; - // Stub generator skipped constructor - public CustomAttributeNamedArgument(System.Reflection.MemberInfo memberInfo, System.Reflection.CustomAttributeTypedArgument typedArgument) => throw null; - public CustomAttributeNamedArgument(System.Reflection.MemberInfo memberInfo, object value) => throw null; - public bool Equals(System.Reflection.CustomAttributeNamedArgument other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public bool IsField { get => throw null; } - public System.Reflection.MemberInfo MemberInfo { get => throw null; } - public string MemberName { get => throw null; } - public override string ToString() => throw null; - public System.Reflection.CustomAttributeTypedArgument TypedValue { get => throw null; } - } - - public struct CustomAttributeTypedArgument : System.IEquatable - { - public static bool operator !=(System.Reflection.CustomAttributeTypedArgument left, System.Reflection.CustomAttributeTypedArgument right) => throw null; - public static bool operator ==(System.Reflection.CustomAttributeTypedArgument left, System.Reflection.CustomAttributeTypedArgument right) => throw null; - public System.Type ArgumentType { get => throw null; } - // Stub generator skipped constructor - public CustomAttributeTypedArgument(System.Type argumentType, object value) => throw null; - public CustomAttributeTypedArgument(object value) => throw null; - public bool Equals(System.Reflection.CustomAttributeTypedArgument other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - public object Value { get => throw null; } - } - - public class DefaultMemberAttribute : System.Attribute - { - public DefaultMemberAttribute(string memberName) => throw null; - public string MemberName { get => throw null; } - } - - [System.Flags] - public enum EventAttributes : int - { - None = 0, - RTSpecialName = 1024, - ReservedMask = 1024, - SpecialName = 512, - } - - public abstract class EventInfo : System.Reflection.MemberInfo - { - public static bool operator !=(System.Reflection.EventInfo left, System.Reflection.EventInfo right) => throw null; - public static bool operator ==(System.Reflection.EventInfo left, System.Reflection.EventInfo right) => throw null; - public virtual void AddEventHandler(object target, System.Delegate handler) => throw null; - public virtual System.Reflection.MethodInfo AddMethod { get => throw null; } - public abstract System.Reflection.EventAttributes Attributes { get; } - public override bool Equals(object obj) => throw null; - public virtual System.Type EventHandlerType { get => throw null; } - protected EventInfo() => throw null; - public System.Reflection.MethodInfo GetAddMethod() => throw null; - public abstract System.Reflection.MethodInfo GetAddMethod(bool nonPublic); - public override int GetHashCode() => throw null; - public System.Reflection.MethodInfo[] GetOtherMethods() => throw null; - public virtual System.Reflection.MethodInfo[] GetOtherMethods(bool nonPublic) => throw null; - public System.Reflection.MethodInfo GetRaiseMethod() => throw null; - public abstract System.Reflection.MethodInfo GetRaiseMethod(bool nonPublic); - public System.Reflection.MethodInfo GetRemoveMethod() => throw null; - public abstract System.Reflection.MethodInfo GetRemoveMethod(bool nonPublic); - public virtual bool IsMulticast { get => throw null; } - public bool IsSpecialName { get => throw null; } - public override System.Reflection.MemberTypes MemberType { get => throw null; } - public virtual System.Reflection.MethodInfo RaiseMethod { get => throw null; } - public virtual void RemoveEventHandler(object target, System.Delegate handler) => throw null; - public virtual System.Reflection.MethodInfo RemoveMethod { get => throw null; } - } - - public class ExceptionHandlingClause - { - public virtual System.Type CatchType { get => throw null; } - protected ExceptionHandlingClause() => throw null; - public virtual int FilterOffset { get => throw null; } - public virtual System.Reflection.ExceptionHandlingClauseOptions Flags { get => throw null; } - public virtual int HandlerLength { get => throw null; } - public virtual int HandlerOffset { get => throw null; } - public override string ToString() => throw null; - public virtual int TryLength { get => throw null; } - public virtual int TryOffset { get => throw null; } - } - - [System.Flags] - public enum ExceptionHandlingClauseOptions : int - { - Clause = 0, - Fault = 4, - Filter = 1, - Finally = 2, - } - - [System.Flags] - public enum FieldAttributes : int - { - Assembly = 3, - FamANDAssem = 2, - FamORAssem = 5, - Family = 4, - FieldAccessMask = 7, - HasDefault = 32768, - HasFieldMarshal = 4096, - HasFieldRVA = 256, - InitOnly = 32, - Literal = 64, - NotSerialized = 128, - PinvokeImpl = 8192, - Private = 1, - PrivateScope = 0, - Public = 6, - RTSpecialName = 1024, - ReservedMask = 38144, - SpecialName = 512, - Static = 16, - } - - public abstract class FieldInfo : System.Reflection.MemberInfo - { - public static bool operator !=(System.Reflection.FieldInfo left, System.Reflection.FieldInfo right) => throw null; - public static bool operator ==(System.Reflection.FieldInfo left, System.Reflection.FieldInfo right) => throw null; - public abstract System.Reflection.FieldAttributes Attributes { get; } - public override bool Equals(object obj) => throw null; - public abstract System.RuntimeFieldHandle FieldHandle { get; } - protected FieldInfo() => throw null; - public abstract System.Type FieldType { get; } - public static System.Reflection.FieldInfo GetFieldFromHandle(System.RuntimeFieldHandle handle) => throw null; - public static System.Reflection.FieldInfo GetFieldFromHandle(System.RuntimeFieldHandle handle, System.RuntimeTypeHandle declaringType) => throw null; - public override int GetHashCode() => throw null; - public virtual System.Type[] GetOptionalCustomModifiers() => throw null; - public virtual object GetRawConstantValue() => throw null; - public virtual System.Type[] GetRequiredCustomModifiers() => throw null; - public abstract object GetValue(object obj); - public virtual object GetValueDirect(System.TypedReference obj) => throw null; - public bool IsAssembly { get => throw null; } - public bool IsFamily { get => throw null; } - public bool IsFamilyAndAssembly { get => throw null; } - public bool IsFamilyOrAssembly { get => throw null; } - public bool IsInitOnly { get => throw null; } - public bool IsLiteral { get => throw null; } - public bool IsNotSerialized { get => throw null; } - public bool IsPinvokeImpl { get => throw null; } - public bool IsPrivate { get => throw null; } - public bool IsPublic { get => throw null; } - public virtual bool IsSecurityCritical { get => throw null; } - public virtual bool IsSecuritySafeCritical { get => throw null; } - public virtual bool IsSecurityTransparent { get => throw null; } - public bool IsSpecialName { get => throw null; } - public bool IsStatic { get => throw null; } - public override System.Reflection.MemberTypes MemberType { get => throw null; } - public void SetValue(object obj, object value) => throw null; - public abstract void SetValue(object obj, object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Globalization.CultureInfo culture); - public virtual void SetValueDirect(System.TypedReference obj, object value) => throw null; - } - - [System.Flags] - public enum GenericParameterAttributes : int - { - Contravariant = 2, - Covariant = 1, - DefaultConstructorConstraint = 16, - None = 0, - NotNullableValueTypeConstraint = 8, - ReferenceTypeConstraint = 4, - SpecialConstraintMask = 28, - VarianceMask = 3, - } - - public interface ICustomAttributeProvider - { - object[] GetCustomAttributes(System.Type attributeType, bool inherit); - object[] GetCustomAttributes(bool inherit); - bool IsDefined(System.Type attributeType, bool inherit); - } - - public interface IReflect - { - System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr); - System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingAttr); - System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.BindingFlags bindingAttr); - System.Reflection.MemberInfo[] GetMembers(System.Reflection.BindingFlags bindingAttr); - System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr); - System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); - System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingAttr); - System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr); - System.Reflection.PropertyInfo GetProperty(string name, System.Reflection.BindingFlags bindingAttr); - System.Reflection.PropertyInfo GetProperty(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); - object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters); - System.Type UnderlyingSystemType { get; } - } - - public interface IReflectableType - { - System.Reflection.TypeInfo GetTypeInfo(); - } - - public enum ImageFileMachine : int - { - AMD64 = 34404, - ARM = 452, - I386 = 332, - IA64 = 512, - } - - public struct InterfaceMapping - { - // Stub generator skipped constructor - public System.Reflection.MethodInfo[] InterfaceMethods; - public System.Type InterfaceType; - public System.Reflection.MethodInfo[] TargetMethods; - public System.Type TargetType; - } - - public static class IntrospectionExtensions - { - public static System.Reflection.TypeInfo GetTypeInfo(this System.Type type) => throw null; - } - - public class InvalidFilterCriteriaException : System.ApplicationException - { - public InvalidFilterCriteriaException() => throw null; - protected InvalidFilterCriteriaException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public InvalidFilterCriteriaException(string message) => throw null; - public InvalidFilterCriteriaException(string message, System.Exception inner) => throw null; - } - - public class LocalVariableInfo - { - public virtual bool IsPinned { get => throw null; } - public virtual int LocalIndex { get => throw null; } - public virtual System.Type LocalType { get => throw null; } - protected LocalVariableInfo() => throw null; - public override string ToString() => throw null; - } - - public class ManifestResourceInfo - { - public virtual string FileName { get => throw null; } - public ManifestResourceInfo(System.Reflection.Assembly containingAssembly, string containingFileName, System.Reflection.ResourceLocation resourceLocation) => throw null; - public virtual System.Reflection.Assembly ReferencedAssembly { get => throw null; } - public virtual System.Reflection.ResourceLocation ResourceLocation { get => throw null; } - } - - public delegate bool MemberFilter(System.Reflection.MemberInfo m, object filterCriteria); - - public abstract class MemberInfo : System.Reflection.ICustomAttributeProvider - { - public static bool operator !=(System.Reflection.MemberInfo left, System.Reflection.MemberInfo right) => throw null; - public static bool operator ==(System.Reflection.MemberInfo left, System.Reflection.MemberInfo right) => throw null; - public virtual System.Collections.Generic.IEnumerable CustomAttributes { get => throw null; } - public abstract System.Type DeclaringType { get; } - public override bool Equals(object obj) => throw null; - public abstract object[] GetCustomAttributes(System.Type attributeType, bool inherit); - public abstract object[] GetCustomAttributes(bool inherit); - public virtual System.Collections.Generic.IList GetCustomAttributesData() => throw null; - public override int GetHashCode() => throw null; - public virtual bool HasSameMetadataDefinitionAs(System.Reflection.MemberInfo other) => throw null; - public virtual bool IsCollectible { get => throw null; } - public abstract bool IsDefined(System.Type attributeType, bool inherit); - protected MemberInfo() => throw null; - public abstract System.Reflection.MemberTypes MemberType { get; } - public virtual int MetadataToken { get => throw null; } - public virtual System.Reflection.Module Module { get => throw null; } - public abstract string Name { get; } - public abstract System.Type ReflectedType { get; } - } - - [System.Flags] - public enum MemberTypes : int - { - All = 191, - Constructor = 1, - Custom = 64, - Event = 2, - Field = 4, - Method = 8, - NestedType = 128, - Property = 16, - TypeInfo = 32, - } - - [System.Flags] - public enum MethodAttributes : int - { - Abstract = 1024, - Assembly = 3, - CheckAccessOnOverride = 512, - FamANDAssem = 2, - FamORAssem = 5, - Family = 4, - Final = 32, - HasSecurity = 16384, - HideBySig = 128, - MemberAccessMask = 7, - NewSlot = 256, - PinvokeImpl = 8192, - Private = 1, - PrivateScope = 0, - Public = 6, - RTSpecialName = 4096, - RequireSecObject = 32768, - ReservedMask = 53248, - ReuseSlot = 0, - SpecialName = 2048, - Static = 16, - UnmanagedExport = 8, - Virtual = 64, - VtableLayoutMask = 256, - } - - public abstract class MethodBase : System.Reflection.MemberInfo - { - public static bool operator !=(System.Reflection.MethodBase left, System.Reflection.MethodBase right) => throw null; - public static bool operator ==(System.Reflection.MethodBase left, System.Reflection.MethodBase right) => throw null; - public abstract System.Reflection.MethodAttributes Attributes { get; } - public virtual System.Reflection.CallingConventions CallingConvention { get => throw null; } - public virtual bool ContainsGenericParameters { get => throw null; } - public override bool Equals(object obj) => throw null; - public static System.Reflection.MethodBase GetCurrentMethod() => throw null; - public virtual System.Type[] GetGenericArguments() => throw null; - public override int GetHashCode() => throw null; - public virtual System.Reflection.MethodBody GetMethodBody() => throw null; - public static System.Reflection.MethodBase GetMethodFromHandle(System.RuntimeMethodHandle handle) => throw null; - public static System.Reflection.MethodBase GetMethodFromHandle(System.RuntimeMethodHandle handle, System.RuntimeTypeHandle declaringType) => throw null; - public abstract System.Reflection.MethodImplAttributes GetMethodImplementationFlags(); - public abstract System.Reflection.ParameterInfo[] GetParameters(); - public abstract object Invoke(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture); - public object Invoke(object obj, object[] parameters) => throw null; - public bool IsAbstract { get => throw null; } - public bool IsAssembly { get => throw null; } - public virtual bool IsConstructedGenericMethod { get => throw null; } - public bool IsConstructor { get => throw null; } - public bool IsFamily { get => throw null; } - public bool IsFamilyAndAssembly { get => throw null; } - public bool IsFamilyOrAssembly { get => throw null; } - public bool IsFinal { get => throw null; } - public virtual bool IsGenericMethod { get => throw null; } - public virtual bool IsGenericMethodDefinition { get => throw null; } - public bool IsHideBySig { get => throw null; } - public bool IsPrivate { get => throw null; } - public bool IsPublic { get => throw null; } - public virtual bool IsSecurityCritical { get => throw null; } - public virtual bool IsSecuritySafeCritical { get => throw null; } - public virtual bool IsSecurityTransparent { get => throw null; } - public bool IsSpecialName { get => throw null; } - public bool IsStatic { get => throw null; } - public bool IsVirtual { get => throw null; } - protected MethodBase() => throw null; - public abstract System.RuntimeMethodHandle MethodHandle { get; } - public virtual System.Reflection.MethodImplAttributes MethodImplementationFlags { get => throw null; } - } - - public class MethodBody - { - public virtual System.Collections.Generic.IList ExceptionHandlingClauses { get => throw null; } - public virtual System.Byte[] GetILAsByteArray() => throw null; - public virtual bool InitLocals { get => throw null; } - public virtual int LocalSignatureMetadataToken { get => throw null; } - public virtual System.Collections.Generic.IList LocalVariables { get => throw null; } - public virtual int MaxStackSize { get => throw null; } - protected MethodBody() => throw null; - } - - public enum MethodImplAttributes : int - { - AggressiveInlining = 256, - AggressiveOptimization = 512, - CodeTypeMask = 3, - ForwardRef = 16, - IL = 0, - InternalCall = 4096, - Managed = 0, - ManagedMask = 4, - MaxMethodImplVal = 65535, - Native = 1, - NoInlining = 8, - NoOptimization = 64, - OPTIL = 2, - PreserveSig = 128, - Runtime = 3, - Synchronized = 32, - Unmanaged = 4, - } - - public abstract class MethodInfo : System.Reflection.MethodBase - { - public static bool operator !=(System.Reflection.MethodInfo left, System.Reflection.MethodInfo right) => throw null; - public static bool operator ==(System.Reflection.MethodInfo left, System.Reflection.MethodInfo right) => throw null; - public virtual System.Delegate CreateDelegate(System.Type delegateType) => throw null; - public virtual System.Delegate CreateDelegate(System.Type delegateType, object target) => throw null; - public T CreateDelegate() where T : System.Delegate => throw null; - public T CreateDelegate(object target) where T : System.Delegate => throw null; - public override bool Equals(object obj) => throw null; - public abstract System.Reflection.MethodInfo GetBaseDefinition(); - public override System.Type[] GetGenericArguments() => throw null; - public virtual System.Reflection.MethodInfo GetGenericMethodDefinition() => throw null; - public override int GetHashCode() => throw null; - public virtual System.Reflection.MethodInfo MakeGenericMethod(params System.Type[] typeArguments) => throw null; - public override System.Reflection.MemberTypes MemberType { get => throw null; } - protected MethodInfo() => throw null; - public virtual System.Reflection.ParameterInfo ReturnParameter { get => throw null; } - public virtual System.Type ReturnType { get => throw null; } - public abstract System.Reflection.ICustomAttributeProvider ReturnTypeCustomAttributes { get; } - } - - public class Missing : System.Runtime.Serialization.ISerializable - { - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public static System.Reflection.Missing Value; - } - - public abstract class Module : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.ISerializable - { - public static bool operator !=(System.Reflection.Module left, System.Reflection.Module right) => throw null; - public static bool operator ==(System.Reflection.Module left, System.Reflection.Module right) => throw null; - public virtual System.Reflection.Assembly Assembly { get => throw null; } - public virtual System.Collections.Generic.IEnumerable CustomAttributes { get => throw null; } - public override bool Equals(object o) => throw null; - public static System.Reflection.TypeFilter FilterTypeName; - public static System.Reflection.TypeFilter FilterTypeNameIgnoreCase; - public virtual System.Type[] FindTypes(System.Reflection.TypeFilter filter, object filterCriteria) => throw null; - public virtual string FullyQualifiedName { get => throw null; } - public virtual object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; - public virtual object[] GetCustomAttributes(bool inherit) => throw null; - public virtual System.Collections.Generic.IList GetCustomAttributesData() => throw null; - public System.Reflection.FieldInfo GetField(string name) => throw null; - public virtual System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) => throw null; - public System.Reflection.FieldInfo[] GetFields() => throw null; - public virtual System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingFlags) => throw null; - public override int GetHashCode() => throw null; - public System.Reflection.MethodInfo GetMethod(string name) => throw null; - public System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; - public System.Reflection.MethodInfo GetMethod(string name, System.Type[] types) => throw null; - protected virtual System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; - public System.Reflection.MethodInfo[] GetMethods() => throw null; - public virtual System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingFlags) => throw null; - public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public virtual void GetPEKind(out System.Reflection.PortableExecutableKinds peKind, out System.Reflection.ImageFileMachine machine) => throw null; - public virtual System.Type GetType(string className) => throw null; - public virtual System.Type GetType(string className, bool ignoreCase) => throw null; - public virtual System.Type GetType(string className, bool throwOnError, bool ignoreCase) => throw null; - public virtual System.Type[] GetTypes() => throw null; - public virtual bool IsDefined(System.Type attributeType, bool inherit) => throw null; - public virtual bool IsResource() => throw null; - public virtual int MDStreamVersion { get => throw null; } - public virtual int MetadataToken { get => throw null; } - protected Module() => throw null; - public System.ModuleHandle ModuleHandle { get => throw null; } - public virtual System.Guid ModuleVersionId { get => throw null; } - public virtual string Name { get => throw null; } - public System.Reflection.FieldInfo ResolveField(int metadataToken) => throw null; - public virtual System.Reflection.FieldInfo ResolveField(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; - public System.Reflection.MemberInfo ResolveMember(int metadataToken) => throw null; - public virtual System.Reflection.MemberInfo ResolveMember(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; - public System.Reflection.MethodBase ResolveMethod(int metadataToken) => throw null; - public virtual System.Reflection.MethodBase ResolveMethod(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; - public virtual System.Byte[] ResolveSignature(int metadataToken) => throw null; - public virtual string ResolveString(int metadataToken) => throw null; - public System.Type ResolveType(int metadataToken) => throw null; - public virtual System.Type ResolveType(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) => throw null; - public virtual string ScopeName { get => throw null; } - public override string ToString() => throw null; - } - - public delegate System.Reflection.Module ModuleResolveEventHandler(object sender, System.ResolveEventArgs e); - - public class NullabilityInfo - { - public System.Reflection.NullabilityInfo ElementType { get => throw null; } - public System.Reflection.NullabilityInfo[] GenericTypeArguments { get => throw null; } - public System.Reflection.NullabilityState ReadState { get => throw null; } - public System.Type Type { get => throw null; } - public System.Reflection.NullabilityState WriteState { get => throw null; } - } - - public class NullabilityInfoContext - { - public System.Reflection.NullabilityInfo Create(System.Reflection.EventInfo eventInfo) => throw null; - public System.Reflection.NullabilityInfo Create(System.Reflection.FieldInfo fieldInfo) => throw null; - public System.Reflection.NullabilityInfo Create(System.Reflection.ParameterInfo parameterInfo) => throw null; - public System.Reflection.NullabilityInfo Create(System.Reflection.PropertyInfo propertyInfo) => throw null; - public NullabilityInfoContext() => throw null; - } - - public enum NullabilityState : int - { - NotNull = 1, - Nullable = 2, - Unknown = 0, - } - - public class ObfuscateAssemblyAttribute : System.Attribute - { - public bool AssemblyIsPrivate { get => throw null; } - public ObfuscateAssemblyAttribute(bool assemblyIsPrivate) => throw null; - public bool StripAfterObfuscation { get => throw null; set => throw null; } - } - - public class ObfuscationAttribute : System.Attribute - { - public bool ApplyToMembers { get => throw null; set => throw null; } - public bool Exclude { get => throw null; set => throw null; } - public string Feature { get => throw null; set => throw null; } - public ObfuscationAttribute() => throw null; - public bool StripAfterObfuscation { get => throw null; set => throw null; } - } - - [System.Flags] - public enum ParameterAttributes : int - { - HasDefault = 4096, - HasFieldMarshal = 8192, - In = 1, - Lcid = 4, - None = 0, - Optional = 16, - Out = 2, - Reserved3 = 16384, - Reserved4 = 32768, - ReservedMask = 61440, - Retval = 8, - } - - public class ParameterInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.IObjectReference - { - public virtual System.Reflection.ParameterAttributes Attributes { get => throw null; } - protected System.Reflection.ParameterAttributes AttrsImpl; - protected System.Type ClassImpl; - public virtual System.Collections.Generic.IEnumerable CustomAttributes { get => throw null; } - public virtual object DefaultValue { get => throw null; } - protected object DefaultValueImpl; - public virtual object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; - public virtual object[] GetCustomAttributes(bool inherit) => throw null; - public virtual System.Collections.Generic.IList GetCustomAttributesData() => throw null; - public virtual System.Type[] GetOptionalCustomModifiers() => throw null; - public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null; - public virtual System.Type[] GetRequiredCustomModifiers() => throw null; - public virtual bool HasDefaultValue { get => throw null; } - public virtual bool IsDefined(System.Type attributeType, bool inherit) => throw null; - public bool IsIn { get => throw null; } - public bool IsLcid { get => throw null; } - public bool IsOptional { get => throw null; } - public bool IsOut { get => throw null; } - public bool IsRetval { get => throw null; } - public virtual System.Reflection.MemberInfo Member { get => throw null; } - protected System.Reflection.MemberInfo MemberImpl; - public virtual int MetadataToken { get => throw null; } - public virtual string Name { get => throw null; } - protected string NameImpl; - protected ParameterInfo() => throw null; - public virtual System.Type ParameterType { get => throw null; } - public virtual int Position { get => throw null; } - protected int PositionImpl; - public virtual object RawDefaultValue { get => throw null; } - public override string ToString() => throw null; - } - - public struct ParameterModifier - { - public bool this[int index] { get => throw null; set => throw null; } - // Stub generator skipped constructor - public ParameterModifier(int parameterCount) => throw null; - } - - public class Pointer : System.Runtime.Serialization.ISerializable - { - unsafe public static object Box(void* ptr, System.Type type) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - unsafe public static void* Unbox(object ptr) => throw null; - } - - [System.Flags] - public enum PortableExecutableKinds : int - { - ILOnly = 1, - NotAPortableExecutableImage = 0, - PE32Plus = 4, - Preferred32Bit = 16, - Required32Bit = 2, - Unmanaged32Bit = 8, - } - - public enum ProcessorArchitecture : int - { - Amd64 = 4, - Arm = 5, - IA64 = 3, - MSIL = 1, - None = 0, - X86 = 2, - } - - [System.Flags] - public enum PropertyAttributes : int - { - HasDefault = 4096, - None = 0, - RTSpecialName = 1024, - Reserved2 = 8192, - Reserved3 = 16384, - Reserved4 = 32768, - ReservedMask = 62464, - SpecialName = 512, - } - - public abstract class PropertyInfo : System.Reflection.MemberInfo - { - public static bool operator !=(System.Reflection.PropertyInfo left, System.Reflection.PropertyInfo right) => throw null; - public static bool operator ==(System.Reflection.PropertyInfo left, System.Reflection.PropertyInfo right) => throw null; - public abstract System.Reflection.PropertyAttributes Attributes { get; } - public abstract bool CanRead { get; } - public abstract bool CanWrite { get; } - public override bool Equals(object obj) => throw null; - public System.Reflection.MethodInfo[] GetAccessors() => throw null; - public abstract System.Reflection.MethodInfo[] GetAccessors(bool nonPublic); - public virtual object GetConstantValue() => throw null; - public System.Reflection.MethodInfo GetGetMethod() => throw null; - public abstract System.Reflection.MethodInfo GetGetMethod(bool nonPublic); - public override int GetHashCode() => throw null; - public abstract System.Reflection.ParameterInfo[] GetIndexParameters(); - public virtual System.Reflection.MethodInfo GetMethod { get => throw null; } - public virtual System.Type[] GetOptionalCustomModifiers() => throw null; - public virtual object GetRawConstantValue() => throw null; - public virtual System.Type[] GetRequiredCustomModifiers() => throw null; - public System.Reflection.MethodInfo GetSetMethod() => throw null; - public abstract System.Reflection.MethodInfo GetSetMethod(bool nonPublic); - public object GetValue(object obj) => throw null; - public abstract object GetValue(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture); - public virtual object GetValue(object obj, object[] index) => throw null; - public bool IsSpecialName { get => throw null; } - public override System.Reflection.MemberTypes MemberType { get => throw null; } - protected PropertyInfo() => throw null; - public abstract System.Type PropertyType { get; } - public virtual System.Reflection.MethodInfo SetMethod { get => throw null; } - public void SetValue(object obj, object value) => throw null; - public abstract void SetValue(object obj, object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture); - public virtual void SetValue(object obj, object value, object[] index) => throw null; - } - - public abstract class ReflectionContext - { - public virtual System.Reflection.TypeInfo GetTypeForObject(object value) => throw null; - public abstract System.Reflection.Assembly MapAssembly(System.Reflection.Assembly assembly); - public abstract System.Reflection.TypeInfo MapType(System.Reflection.TypeInfo type); - protected ReflectionContext() => throw null; - } - - public class ReflectionTypeLoadException : System.SystemException, System.Runtime.Serialization.ISerializable - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Exception[] LoaderExceptions { get => throw null; } - public override string Message { get => throw null; } - public ReflectionTypeLoadException(System.Type[] classes, System.Exception[] exceptions) => throw null; - public ReflectionTypeLoadException(System.Type[] classes, System.Exception[] exceptions, string message) => throw null; - public override string ToString() => throw null; - public System.Type[] Types { get => throw null; } - } - - [System.Flags] - public enum ResourceAttributes : int - { - Private = 2, - Public = 1, - } - - [System.Flags] - public enum ResourceLocation : int - { - ContainedInAnotherAssembly = 2, - ContainedInManifestFile = 4, - Embedded = 1, - } - - public static class RuntimeReflectionExtensions - { - public static System.Reflection.MethodInfo GetMethodInfo(this System.Delegate del) => throw null; - public static System.Reflection.MethodInfo GetRuntimeBaseDefinition(this System.Reflection.MethodInfo method) => throw null; - public static System.Reflection.EventInfo GetRuntimeEvent(this System.Type type, string name) => throw null; - public static System.Collections.Generic.IEnumerable GetRuntimeEvents(this System.Type type) => throw null; - public static System.Reflection.FieldInfo GetRuntimeField(this System.Type type, string name) => throw null; - public static System.Collections.Generic.IEnumerable GetRuntimeFields(this System.Type type) => throw null; - public static System.Reflection.InterfaceMapping GetRuntimeInterfaceMap(this System.Reflection.TypeInfo typeInfo, System.Type interfaceType) => throw null; - public static System.Reflection.MethodInfo GetRuntimeMethod(this System.Type type, string name, System.Type[] parameters) => throw null; - public static System.Collections.Generic.IEnumerable GetRuntimeMethods(this System.Type type) => throw null; - public static System.Collections.Generic.IEnumerable GetRuntimeProperties(this System.Type type) => throw null; - public static System.Reflection.PropertyInfo GetRuntimeProperty(this System.Type type, string name) => throw null; - } - - public class StrongNameKeyPair : System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable - { - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public System.Byte[] PublicKey { get => throw null; } - public StrongNameKeyPair(System.Byte[] keyPairArray) => throw null; - public StrongNameKeyPair(System.IO.FileStream keyPairFile) => throw null; - protected StrongNameKeyPair(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public StrongNameKeyPair(string keyPairContainer) => throw null; - } - - public class TargetException : System.ApplicationException - { - public TargetException() => throw null; - protected TargetException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public TargetException(string message) => throw null; - public TargetException(string message, System.Exception inner) => throw null; - } - - public class TargetInvocationException : System.ApplicationException - { - public TargetInvocationException(System.Exception inner) => throw null; - public TargetInvocationException(string message, System.Exception inner) => throw null; - } - - public class TargetParameterCountException : System.ApplicationException - { - public TargetParameterCountException() => throw null; - public TargetParameterCountException(string message) => throw null; - public TargetParameterCountException(string message, System.Exception inner) => throw null; - } - - [System.Flags] - public enum TypeAttributes : int - { - Abstract = 128, - AnsiClass = 0, - AutoClass = 131072, - AutoLayout = 0, - BeforeFieldInit = 1048576, - Class = 0, - ClassSemanticsMask = 32, - CustomFormatClass = 196608, - CustomFormatMask = 12582912, - ExplicitLayout = 16, - HasSecurity = 262144, - Import = 4096, - Interface = 32, - LayoutMask = 24, - NestedAssembly = 5, - NestedFamANDAssem = 6, - NestedFamORAssem = 7, - NestedFamily = 4, - NestedPrivate = 3, - NestedPublic = 2, - NotPublic = 0, - Public = 1, - RTSpecialName = 2048, - ReservedMask = 264192, - Sealed = 256, - SequentialLayout = 8, - Serializable = 8192, - SpecialName = 1024, - StringFormatMask = 196608, - UnicodeClass = 65536, - VisibilityMask = 7, - WindowsRuntime = 16384, - } - - public class TypeDelegator : System.Reflection.TypeInfo - { - public override System.Reflection.Assembly Assembly { get => throw null; } - public override string AssemblyQualifiedName { get => throw null; } - public override System.Type BaseType { get => throw null; } - public override string FullName { get => throw null; } - public override System.Guid GUID { get => throw null; } - protected override System.Reflection.TypeAttributes GetAttributeFlagsImpl() => throw null; - protected override System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; - public override System.Reflection.ConstructorInfo[] GetConstructors(System.Reflection.BindingFlags bindingAttr) => throw null; - public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) => throw null; - public override object[] GetCustomAttributes(bool inherit) => throw null; - public override System.Type GetElementType() => throw null; - public override System.Reflection.EventInfo GetEvent(string name, System.Reflection.BindingFlags bindingAttr) => throw null; - public override System.Reflection.EventInfo[] GetEvents() => throw null; - public override System.Reflection.EventInfo[] GetEvents(System.Reflection.BindingFlags bindingAttr) => throw null; - public override System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) => throw null; - public override System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingAttr) => throw null; - public override System.Type GetInterface(string name, bool ignoreCase) => throw null; - public override System.Reflection.InterfaceMapping GetInterfaceMap(System.Type interfaceType) => throw null; - public override System.Type[] GetInterfaces() => throw null; - public override System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.MemberTypes type, System.Reflection.BindingFlags bindingAttr) => throw null; - public override System.Reflection.MemberInfo GetMemberWithSameMetadataDefinitionAs(System.Reflection.MemberInfo member) => throw null; - public override System.Reflection.MemberInfo[] GetMembers(System.Reflection.BindingFlags bindingAttr) => throw null; - protected override System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; - public override System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingAttr) => throw null; - public override System.Type GetNestedType(string name, System.Reflection.BindingFlags bindingAttr) => throw null; - public override System.Type[] GetNestedTypes(System.Reflection.BindingFlags bindingAttr) => throw null; - public override System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr) => throw null; - protected override System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; - protected override bool HasElementTypeImpl() => throw null; - public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters) => throw null; - protected override bool IsArrayImpl() => throw null; - public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo) => throw null; - protected override bool IsByRefImpl() => throw null; - public override bool IsByRefLike { get => throw null; } - protected override bool IsCOMObjectImpl() => throw null; - public override bool IsCollectible { get => throw null; } - public override bool IsConstructedGenericType { get => throw null; } - public override bool IsDefined(System.Type attributeType, bool inherit) => throw null; - public override bool IsGenericMethodParameter { get => throw null; } - public override bool IsGenericTypeParameter { get => throw null; } - protected override bool IsPointerImpl() => throw null; - protected override bool IsPrimitiveImpl() => throw null; - public override bool IsSZArray { get => throw null; } - public override bool IsTypeDefinition { get => throw null; } - protected override bool IsValueTypeImpl() => throw null; - public override bool IsVariableBoundArray { get => throw null; } - public override int MetadataToken { get => throw null; } - public override System.Reflection.Module Module { get => throw null; } - public override string Name { get => throw null; } - public override string Namespace { get => throw null; } - protected TypeDelegator() => throw null; - public TypeDelegator(System.Type delegatingType) => throw null; - public override System.RuntimeTypeHandle TypeHandle { get => throw null; } - public override System.Type UnderlyingSystemType { get => throw null; } - protected System.Type typeImpl; - } - - public delegate bool TypeFilter(System.Type m, object filterCriteria); - - public abstract class TypeInfo : System.Type, System.Reflection.IReflectableType - { - public virtual System.Type AsType() => throw null; - public virtual System.Collections.Generic.IEnumerable DeclaredConstructors { get => throw null; } - public virtual System.Collections.Generic.IEnumerable DeclaredEvents { get => throw null; } - public virtual System.Collections.Generic.IEnumerable DeclaredFields { get => throw null; } - public virtual System.Collections.Generic.IEnumerable DeclaredMembers { get => throw null; } - public virtual System.Collections.Generic.IEnumerable DeclaredMethods { get => throw null; } - public virtual System.Collections.Generic.IEnumerable DeclaredNestedTypes { get => throw null; } - public virtual System.Collections.Generic.IEnumerable DeclaredProperties { get => throw null; } - public virtual System.Type[] GenericTypeParameters { get => throw null; } - public virtual System.Reflection.EventInfo GetDeclaredEvent(string name) => throw null; - public virtual System.Reflection.FieldInfo GetDeclaredField(string name) => throw null; - public virtual System.Reflection.MethodInfo GetDeclaredMethod(string name) => throw null; - public virtual System.Collections.Generic.IEnumerable GetDeclaredMethods(string name) => throw null; - public virtual System.Reflection.TypeInfo GetDeclaredNestedType(string name) => throw null; - public virtual System.Reflection.PropertyInfo GetDeclaredProperty(string name) => throw null; - System.Reflection.TypeInfo System.Reflection.IReflectableType.GetTypeInfo() => throw null; - public virtual System.Collections.Generic.IEnumerable ImplementedInterfaces { get => throw null; } - public virtual bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo) => throw null; - protected TypeInfo() => throw null; - } - - } - namespace Resources - { - public interface IResourceReader : System.Collections.IEnumerable, System.IDisposable - { - void Close(); - System.Collections.IDictionaryEnumerator GetEnumerator(); - } - - public class MissingManifestResourceException : System.SystemException - { - public MissingManifestResourceException() => throw null; - protected MissingManifestResourceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public MissingManifestResourceException(string message) => throw null; - public MissingManifestResourceException(string message, System.Exception inner) => throw null; - } - - public class MissingSatelliteAssemblyException : System.SystemException - { - public string CultureName { get => throw null; } - public MissingSatelliteAssemblyException() => throw null; - protected MissingSatelliteAssemblyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public MissingSatelliteAssemblyException(string message) => throw null; - public MissingSatelliteAssemblyException(string message, System.Exception inner) => throw null; - public MissingSatelliteAssemblyException(string message, string cultureName) => throw null; - } - - public class NeutralResourcesLanguageAttribute : System.Attribute - { - public string CultureName { get => throw null; } - public System.Resources.UltimateResourceFallbackLocation Location { get => throw null; } - public NeutralResourcesLanguageAttribute(string cultureName) => throw null; - public NeutralResourcesLanguageAttribute(string cultureName, System.Resources.UltimateResourceFallbackLocation location) => throw null; - } - - public class ResourceManager - { - public virtual string BaseName { get => throw null; } - public static System.Resources.ResourceManager CreateFileBasedResourceManager(string baseName, string resourceDir, System.Type usingResourceSet) => throw null; - protected System.Resources.UltimateResourceFallbackLocation FallbackLocation { get => throw null; set => throw null; } - protected static System.Globalization.CultureInfo GetNeutralResourcesLanguage(System.Reflection.Assembly a) => throw null; - public virtual object GetObject(string name) => throw null; - public virtual object GetObject(string name, System.Globalization.CultureInfo culture) => throw null; - protected virtual string GetResourceFileName(System.Globalization.CultureInfo culture) => throw null; - public virtual System.Resources.ResourceSet GetResourceSet(System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents) => throw null; - protected static System.Version GetSatelliteContractVersion(System.Reflection.Assembly a) => throw null; - public System.IO.UnmanagedMemoryStream GetStream(string name) => throw null; - public System.IO.UnmanagedMemoryStream GetStream(string name, System.Globalization.CultureInfo culture) => throw null; - public virtual string GetString(string name) => throw null; - public virtual string GetString(string name, System.Globalization.CultureInfo culture) => throw null; - public static int HeaderVersionNumber; - public virtual bool IgnoreCase { get => throw null; set => throw null; } - protected virtual System.Resources.ResourceSet InternalGetResourceSet(System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents) => throw null; - public static int MagicNumber; - protected System.Reflection.Assembly MainAssembly; - public virtual void ReleaseAllResources() => throw null; - protected ResourceManager() => throw null; - public ResourceManager(System.Type resourceSource) => throw null; - public ResourceManager(string baseName, System.Reflection.Assembly assembly) => throw null; - public ResourceManager(string baseName, System.Reflection.Assembly assembly, System.Type usingResourceSet) => throw null; - public virtual System.Type ResourceSetType { get => throw null; } - } - - public class ResourceReader : System.Collections.IEnumerable, System.IDisposable, System.Resources.IResourceReader - { - public void Close() => throw null; - public void Dispose() => throw null; - public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public void GetResourceData(string resourceName, out string resourceType, out System.Byte[] resourceData) => throw null; - public ResourceReader(System.IO.Stream stream) => throw null; - public ResourceReader(string fileName) => throw null; - } - - public class ResourceSet : System.Collections.IEnumerable, System.IDisposable - { - public virtual void Close() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public virtual System.Type GetDefaultReader() => throw null; - public virtual System.Type GetDefaultWriter() => throw null; - public virtual System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public virtual object GetObject(string name) => throw null; - public virtual object GetObject(string name, bool ignoreCase) => throw null; - public virtual string GetString(string name) => throw null; - public virtual string GetString(string name, bool ignoreCase) => throw null; - protected virtual void ReadResources() => throw null; - protected ResourceSet() => throw null; - public ResourceSet(System.Resources.IResourceReader reader) => throw null; - public ResourceSet(System.IO.Stream stream) => throw null; - public ResourceSet(string fileName) => throw null; - } - - public class SatelliteContractVersionAttribute : System.Attribute - { - public SatelliteContractVersionAttribute(string version) => throw null; - public string Version { get => throw null; } - } - - public enum UltimateResourceFallbackLocation : int - { - MainAssembly = 0, - Satellite = 1, - } - - } - namespace Runtime - { - public class AmbiguousImplementationException : System.Exception - { - public AmbiguousImplementationException() => throw null; - public AmbiguousImplementationException(string message) => throw null; - public AmbiguousImplementationException(string message, System.Exception innerException) => throw null; - } - - public class AssemblyTargetedPatchBandAttribute : System.Attribute - { - public AssemblyTargetedPatchBandAttribute(string targetedPatchBand) => throw null; - public string TargetedPatchBand { get => throw null; } - } - - public static class ControlledExecution - { - public static void Run(System.Action action, System.Threading.CancellationToken cancellationToken) => throw null; - } - - public struct DependentHandle : System.IDisposable - { - public object Dependent { get => throw null; set => throw null; } - // Stub generator skipped constructor - public DependentHandle(object target, object dependent) => throw null; - public void Dispose() => throw null; - public bool IsAllocated { get => throw null; } - public object Target { get => throw null; set => throw null; } - public (object, object) TargetAndDependent { get => throw null; } - } - - public enum GCLargeObjectHeapCompactionMode : int - { - CompactOnce = 2, - Default = 1, - } - - public enum GCLatencyMode : int - { - Batch = 0, - Interactive = 1, - LowLatency = 2, - NoGCRegion = 4, - SustainedLowLatency = 3, - } - - public static class GCSettings - { - public static bool IsServerGC { get => throw null; } - public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get => throw null; set => throw null; } - public static System.Runtime.GCLatencyMode LatencyMode { get => throw null; set => throw null; } - } - - public static class JitInfo - { - public static System.TimeSpan GetCompilationTime(bool currentThread = default(bool)) => throw null; - public static System.Int64 GetCompiledILBytes(bool currentThread = default(bool)) => throw null; - public static System.Int64 GetCompiledMethodCount(bool currentThread = default(bool)) => throw null; - } - - public class MemoryFailPoint : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable - { - public void Dispose() => throw null; - public MemoryFailPoint(int sizeInMegabytes) => throw null; - // ERR: Stub generator didn't handle member: ~MemoryFailPoint - } - - public static class ProfileOptimization - { - public static void SetProfileRoot(string directoryPath) => throw null; - public static void StartProfile(string profile) => throw null; - } - - public class TargetedPatchingOptOutAttribute : System.Attribute - { - public string Reason { get => throw null; } - public TargetedPatchingOptOutAttribute(string reason) => throw null; - } - - namespace CompilerServices - { - public class AccessedThroughPropertyAttribute : System.Attribute - { - public AccessedThroughPropertyAttribute(string propertyName) => throw null; - public string PropertyName { get => throw null; } - } - - public struct AsyncIteratorMethodBuilder - { - // Stub generator skipped constructor - public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public void Complete() => throw null; - public static System.Runtime.CompilerServices.AsyncIteratorMethodBuilder Create() => throw null; - public void MoveNext(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - } - - public class AsyncIteratorStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute - { - public AsyncIteratorStateMachineAttribute(System.Type stateMachineType) : base(default(System.Type)) => throw null; - } - - public class AsyncMethodBuilderAttribute : System.Attribute - { - public AsyncMethodBuilderAttribute(System.Type builderType) => throw null; - public System.Type BuilderType { get => throw null; } - } - - public class AsyncStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute - { - public AsyncStateMachineAttribute(System.Type stateMachineType) : base(default(System.Type)) => throw null; - } - - public struct AsyncTaskMethodBuilder - { - // Stub generator skipped constructor - public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public static System.Runtime.CompilerServices.AsyncTaskMethodBuilder Create() => throw null; - public void SetException(System.Exception exception) => throw null; - public void SetResult() => throw null; - public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; - public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public System.Threading.Tasks.Task Task { get => throw null; } - } - - public struct AsyncTaskMethodBuilder - { - // Stub generator skipped constructor - public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public static System.Runtime.CompilerServices.AsyncTaskMethodBuilder Create() => throw null; - public void SetException(System.Exception exception) => throw null; - public void SetResult(TResult result) => throw null; - public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; - public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public System.Threading.Tasks.Task Task { get => throw null; } - } - - public struct AsyncValueTaskMethodBuilder - { - // Stub generator skipped constructor - public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public static System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder Create() => throw null; - public void SetException(System.Exception exception) => throw null; - public void SetResult() => throw null; - public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; - public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public System.Threading.Tasks.ValueTask Task { get => throw null; } - } - - public struct AsyncValueTaskMethodBuilder - { - // Stub generator skipped constructor - public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public static System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder Create() => throw null; - public void SetException(System.Exception exception) => throw null; - public void SetResult(TResult result) => throw null; - public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; - public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public System.Threading.Tasks.ValueTask Task { get => throw null; } - } - - public struct AsyncVoidMethodBuilder - { - // Stub generator skipped constructor - public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public static System.Runtime.CompilerServices.AsyncVoidMethodBuilder Create() => throw null; - public void SetException(System.Exception exception) => throw null; - public void SetResult() => throw null; - public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; - public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - } - - public class CallConvCdecl - { - public CallConvCdecl() => throw null; - } - - public class CallConvFastcall - { - public CallConvFastcall() => throw null; - } - - public class CallConvMemberFunction - { - public CallConvMemberFunction() => throw null; - } - - public class CallConvStdcall - { - public CallConvStdcall() => throw null; - } - - public class CallConvSuppressGCTransition - { - public CallConvSuppressGCTransition() => throw null; - } - - public class CallConvThiscall - { - public CallConvThiscall() => throw null; - } - - public class CallerArgumentExpressionAttribute : System.Attribute - { - public CallerArgumentExpressionAttribute(string parameterName) => throw null; - public string ParameterName { get => throw null; } - } - - public class CallerFilePathAttribute : System.Attribute - { - public CallerFilePathAttribute() => throw null; - } - - public class CallerLineNumberAttribute : System.Attribute - { - public CallerLineNumberAttribute() => throw null; - } - - public class CallerMemberNameAttribute : System.Attribute - { - public CallerMemberNameAttribute() => throw null; - } - - [System.Flags] - public enum CompilationRelaxations : int - { - NoStringInterning = 8, - } - - public class CompilationRelaxationsAttribute : System.Attribute - { - public int CompilationRelaxations { get => throw null; } - public CompilationRelaxationsAttribute(System.Runtime.CompilerServices.CompilationRelaxations relaxations) => throw null; - public CompilationRelaxationsAttribute(int relaxations) => throw null; - } - - public class CompilerFeatureRequiredAttribute : System.Attribute - { - public CompilerFeatureRequiredAttribute(string featureName) => throw null; - public string FeatureName { get => throw null; } - public bool IsOptional { get => throw null; set => throw null; } - public const string RefStructs = default; - public const string RequiredMembers = default; - } - - public class CompilerGeneratedAttribute : System.Attribute - { - public CompilerGeneratedAttribute() => throw null; - } - - public class CompilerGlobalScopeAttribute : System.Attribute - { - public CompilerGlobalScopeAttribute() => throw null; - } - - public class ConditionalWeakTable : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable where TKey : class where TValue : class - { - public delegate TValue CreateValueCallback(TKey key); - - - public void Add(TKey key, TValue value) => throw null; - public void AddOrUpdate(TKey key, TValue value) => throw null; - public void Clear() => throw null; - public ConditionalWeakTable() => throw null; - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public TValue GetOrCreateValue(TKey key) => throw null; - public TValue GetValue(TKey key, System.Runtime.CompilerServices.ConditionalWeakTable.CreateValueCallback createValueCallback) => throw null; - public bool Remove(TKey key) => throw null; - public bool TryAdd(TKey key, TValue value) => throw null; - public bool TryGetValue(TKey key, out TValue value) => throw null; - } - - public struct ConfiguredAsyncDisposable - { - // Stub generator skipped constructor - public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable DisposeAsync() => throw null; - } - - public struct ConfiguredCancelableAsyncEnumerable - { - public struct Enumerator - { - public T Current { get => throw null; } - public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable DisposeAsync() => throw null; - // Stub generator skipped constructor - public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable MoveNextAsync() => throw null; - } - - - public System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable ConfigureAwait(bool continueOnCapturedContext) => throw null; - // Stub generator skipped constructor - public System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable.Enumerator GetAsyncEnumerator() => throw null; - public System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable WithCancellation(System.Threading.CancellationToken cancellationToken) => throw null; - } - - public struct ConfiguredTaskAwaitable - { - public struct ConfiguredTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion - { - // Stub generator skipped constructor - public void GetResult() => throw null; - public bool IsCompleted { get => throw null; } - public void OnCompleted(System.Action continuation) => throw null; - public void UnsafeOnCompleted(System.Action continuation) => throw null; - } - - - // Stub generator skipped constructor - public System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter GetAwaiter() => throw null; - } - - public struct ConfiguredTaskAwaitable - { - public struct ConfiguredTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion - { - // Stub generator skipped constructor - public TResult GetResult() => throw null; - public bool IsCompleted { get => throw null; } - public void OnCompleted(System.Action continuation) => throw null; - public void UnsafeOnCompleted(System.Action continuation) => throw null; - } - - - // Stub generator skipped constructor - public System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter GetAwaiter() => throw null; - } - - public struct ConfiguredValueTaskAwaitable - { - public struct ConfiguredValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion - { - // Stub generator skipped constructor - public void GetResult() => throw null; - public bool IsCompleted { get => throw null; } - public void OnCompleted(System.Action continuation) => throw null; - public void UnsafeOnCompleted(System.Action continuation) => throw null; - } - - - // Stub generator skipped constructor - public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter GetAwaiter() => throw null; - } - - public struct ConfiguredValueTaskAwaitable - { - public struct ConfiguredValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion - { - // Stub generator skipped constructor - public TResult GetResult() => throw null; - public bool IsCompleted { get => throw null; } - public void OnCompleted(System.Action continuation) => throw null; - public void UnsafeOnCompleted(System.Action continuation) => throw null; - } - - - // Stub generator skipped constructor - public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter GetAwaiter() => throw null; - } - - public abstract class CustomConstantAttribute : System.Attribute - { - protected CustomConstantAttribute() => throw null; - public abstract object Value { get; } - } - - public class DateTimeConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute - { - public DateTimeConstantAttribute(System.Int64 ticks) => throw null; - public override object Value { get => throw null; } - } - - public class DecimalConstantAttribute : System.Attribute - { - public DecimalConstantAttribute(System.Byte scale, System.Byte sign, int hi, int mid, int low) => throw null; - public DecimalConstantAttribute(System.Byte scale, System.Byte sign, System.UInt32 hi, System.UInt32 mid, System.UInt32 low) => throw null; - public System.Decimal Value { get => throw null; } - } - - public class DefaultDependencyAttribute : System.Attribute - { - public DefaultDependencyAttribute(System.Runtime.CompilerServices.LoadHint loadHintArgument) => throw null; - public System.Runtime.CompilerServices.LoadHint LoadHint { get => throw null; } - } - - public struct DefaultInterpolatedStringHandler - { - public void AppendFormatted(System.ReadOnlySpan value) => throw null; - public void AppendFormatted(System.ReadOnlySpan value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(object value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(string value) => throw null; - public void AppendFormatted(string value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(T value) => throw null; - public void AppendFormatted(T value, int alignment) => throw null; - public void AppendFormatted(T value, int alignment, string format) => throw null; - public void AppendFormatted(T value, string format) => throw null; - public void AppendLiteral(string value) => throw null; - // Stub generator skipped constructor - public DefaultInterpolatedStringHandler(int literalLength, int formattedCount) => throw null; - public DefaultInterpolatedStringHandler(int literalLength, int formattedCount, System.IFormatProvider provider) => throw null; - public DefaultInterpolatedStringHandler(int literalLength, int formattedCount, System.IFormatProvider provider, System.Span initialBuffer) => throw null; - public override string ToString() => throw null; - public string ToStringAndClear() => throw null; - } - - public class DependencyAttribute : System.Attribute - { - public DependencyAttribute(string dependentAssemblyArgument, System.Runtime.CompilerServices.LoadHint loadHintArgument) => throw null; - public string DependentAssembly { get => throw null; } - public System.Runtime.CompilerServices.LoadHint LoadHint { get => throw null; } - } - - public class DisablePrivateReflectionAttribute : System.Attribute - { - public DisablePrivateReflectionAttribute() => throw null; - } - - public class DisableRuntimeMarshallingAttribute : System.Attribute - { - public DisableRuntimeMarshallingAttribute() => throw null; - } - - public class DiscardableAttribute : System.Attribute - { - public DiscardableAttribute() => throw null; - } - - public class EnumeratorCancellationAttribute : System.Attribute - { - public EnumeratorCancellationAttribute() => throw null; - } - - public class ExtensionAttribute : System.Attribute - { - public ExtensionAttribute() => throw null; - } - - public class FixedAddressValueTypeAttribute : System.Attribute - { - public FixedAddressValueTypeAttribute() => throw null; - } - - public class FixedBufferAttribute : System.Attribute - { - public System.Type ElementType { get => throw null; } - public FixedBufferAttribute(System.Type elementType, int length) => throw null; - public int Length { get => throw null; } - } - - public static class FormattableStringFactory - { - public static System.FormattableString Create(string format, params object[] arguments) => throw null; - } - - public interface IAsyncStateMachine - { - void MoveNext(); - void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine); - } - - public interface ICriticalNotifyCompletion : System.Runtime.CompilerServices.INotifyCompletion - { - void UnsafeOnCompleted(System.Action continuation); - } - - public interface INotifyCompletion - { - void OnCompleted(System.Action continuation); - } - - public interface IStrongBox - { - object Value { get; set; } - } - - public interface ITuple - { - object this[int index] { get; } - int Length { get; } - } - - public class IndexerNameAttribute : System.Attribute - { - public IndexerNameAttribute(string indexerName) => throw null; - } - - public class InternalsVisibleToAttribute : System.Attribute - { - public bool AllInternalsVisible { get => throw null; set => throw null; } - public string AssemblyName { get => throw null; } - public InternalsVisibleToAttribute(string assemblyName) => throw null; - } - - public class InterpolatedStringHandlerArgumentAttribute : System.Attribute - { - public string[] Arguments { get => throw null; } - public InterpolatedStringHandlerArgumentAttribute(params string[] arguments) => throw null; - public InterpolatedStringHandlerArgumentAttribute(string argument) => throw null; - } - - public class InterpolatedStringHandlerAttribute : System.Attribute - { - public InterpolatedStringHandlerAttribute() => throw null; - } - - public class IsByRefLikeAttribute : System.Attribute - { - public IsByRefLikeAttribute() => throw null; - } - - public static class IsConst - { - } - - public static class IsExternalInit - { - } - - public partial class IsReadOnlyAttribute : System.Attribute - { - public IsReadOnlyAttribute() => throw null; - } - - public static class IsVolatile - { - } - - public class IteratorStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute - { - public IteratorStateMachineAttribute(System.Type stateMachineType) : base(default(System.Type)) => throw null; - } - - public enum LoadHint : int - { - Always = 1, - Default = 0, - Sometimes = 2, - } - - public enum MethodCodeType : int - { - IL = 0, - Native = 1, - OPTIL = 2, - Runtime = 3, - } - - public class MethodImplAttribute : System.Attribute - { - public System.Runtime.CompilerServices.MethodCodeType MethodCodeType; - public MethodImplAttribute() => throw null; - public MethodImplAttribute(System.Runtime.CompilerServices.MethodImplOptions methodImplOptions) => throw null; - public MethodImplAttribute(System.Int16 value) => throw null; - public System.Runtime.CompilerServices.MethodImplOptions Value { get => throw null; } - } - - [System.Flags] - public enum MethodImplOptions : int - { - AggressiveInlining = 256, - AggressiveOptimization = 512, - ForwardRef = 16, - InternalCall = 4096, - NoInlining = 8, - NoOptimization = 64, - PreserveSig = 128, - Synchronized = 32, - Unmanaged = 4, - } - - public class ModuleInitializerAttribute : System.Attribute - { - public ModuleInitializerAttribute() => throw null; - } - - public struct PoolingAsyncValueTaskMethodBuilder - { - public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public static System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder Create() => throw null; - // Stub generator skipped constructor - public void SetException(System.Exception exception) => throw null; - public void SetResult() => throw null; - public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; - public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public System.Threading.Tasks.ValueTask Task { get => throw null; } - } - - public struct PoolingAsyncValueTaskMethodBuilder - { - public void AwaitOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public void AwaitUnsafeOnCompleted(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public static System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder Create() => throw null; - // Stub generator skipped constructor - public void SetException(System.Exception exception) => throw null; - public void SetResult(TResult result) => throw null; - public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) => throw null; - public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; - public System.Threading.Tasks.ValueTask Task { get => throw null; } - } - - public class PreserveBaseOverridesAttribute : System.Attribute - { - public PreserveBaseOverridesAttribute() => throw null; - } - - public class ReferenceAssemblyAttribute : System.Attribute - { - public string Description { get => throw null; } - public ReferenceAssemblyAttribute() => throw null; - public ReferenceAssemblyAttribute(string description) => throw null; - } - - public class RequiredMemberAttribute : System.Attribute - { - public RequiredMemberAttribute() => throw null; - } - - public class RuntimeCompatibilityAttribute : System.Attribute - { - public RuntimeCompatibilityAttribute() => throw null; - public bool WrapNonExceptionThrows { get => throw null; set => throw null; } - } - - public static class RuntimeFeature - { - public const string ByRefFields = default; - public const string CovariantReturnsOfClasses = default; - public const string DefaultImplementationsOfInterfaces = default; - public static bool IsDynamicCodeCompiled { get => throw null; } - public static bool IsDynamicCodeSupported { get => throw null; } - public static bool IsSupported(string feature) => throw null; - public const string NumericIntPtr = default; - public const string PortablePdb = default; - public const string UnmanagedSignatureCallingConvention = default; - public const string VirtualStaticsInInterfaces = default; - } - - public static class RuntimeHelpers - { - public delegate void CleanupCode(object userData, bool exceptionThrown); - - - public delegate void TryCode(object userData); - - - public static System.IntPtr AllocateTypeAssociatedMemory(System.Type type, int size) => throw null; - public static System.ReadOnlySpan CreateSpan(System.RuntimeFieldHandle fldHandle) => throw null; - public static void EnsureSufficientExecutionStack() => throw null; - public static bool Equals(object o1, object o2) => throw null; - public static void ExecuteCodeWithGuaranteedCleanup(System.Runtime.CompilerServices.RuntimeHelpers.TryCode code, System.Runtime.CompilerServices.RuntimeHelpers.CleanupCode backoutCode, object userData) => throw null; - public static int GetHashCode(object o) => throw null; - public static object GetObjectValue(object obj) => throw null; - public static T[] GetSubArray(T[] array, System.Range range) => throw null; - public static object GetUninitializedObject(System.Type type) => throw null; - public static void InitializeArray(System.Array array, System.RuntimeFieldHandle fldHandle) => throw null; - public static bool IsReferenceOrContainsReferences() => throw null; - public static int OffsetToStringData { get => throw null; } - public static void PrepareConstrainedRegions() => throw null; - public static void PrepareConstrainedRegionsNoOP() => throw null; - public static void PrepareContractedDelegate(System.Delegate d) => throw null; - public static void PrepareDelegate(System.Delegate d) => throw null; - public static void PrepareMethod(System.RuntimeMethodHandle method) => throw null; - public static void PrepareMethod(System.RuntimeMethodHandle method, System.RuntimeTypeHandle[] instantiation) => throw null; - public static void ProbeForSufficientStack() => throw null; - public static void RunClassConstructor(System.RuntimeTypeHandle type) => throw null; - public static void RunModuleConstructor(System.ModuleHandle module) => throw null; - public static bool TryEnsureSufficientExecutionStack() => throw null; - } - - public class RuntimeWrappedException : System.Exception - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public RuntimeWrappedException(object thrownObject) => throw null; - public object WrappedException { get => throw null; } - } - - public class SkipLocalsInitAttribute : System.Attribute - { - public SkipLocalsInitAttribute() => throw null; - } - - public class SpecialNameAttribute : System.Attribute - { - public SpecialNameAttribute() => throw null; - } - - public class StateMachineAttribute : System.Attribute - { - public StateMachineAttribute(System.Type stateMachineType) => throw null; - public System.Type StateMachineType { get => throw null; } - } - - public class StringFreezingAttribute : System.Attribute - { - public StringFreezingAttribute() => throw null; - } - - public class StrongBox : System.Runtime.CompilerServices.IStrongBox - { - public StrongBox() => throw null; - public StrongBox(T value) => throw null; - public T Value; - object System.Runtime.CompilerServices.IStrongBox.Value { get => throw null; set => throw null; } - } - - public class SuppressIldasmAttribute : System.Attribute - { - public SuppressIldasmAttribute() => throw null; - } - - public class SwitchExpressionException : System.InvalidOperationException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } - public SwitchExpressionException() => throw null; - public SwitchExpressionException(System.Exception innerException) => throw null; - public SwitchExpressionException(object unmatchedValue) => throw null; - public SwitchExpressionException(string message) => throw null; - public SwitchExpressionException(string message, System.Exception innerException) => throw null; - public object UnmatchedValue { get => throw null; } - } - - public struct TaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion - { - public void GetResult() => throw null; - public bool IsCompleted { get => throw null; } - public void OnCompleted(System.Action continuation) => throw null; - // Stub generator skipped constructor - public void UnsafeOnCompleted(System.Action continuation) => throw null; - } - - public struct TaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion - { - public TResult GetResult() => throw null; - public bool IsCompleted { get => throw null; } - public void OnCompleted(System.Action continuation) => throw null; - // Stub generator skipped constructor - public void UnsafeOnCompleted(System.Action continuation) => throw null; - } - - public class TupleElementNamesAttribute : System.Attribute - { - public System.Collections.Generic.IList TransformNames { get => throw null; } - public TupleElementNamesAttribute(string[] transformNames) => throw null; - } - - public class TypeForwardedFromAttribute : System.Attribute - { - public string AssemblyFullName { get => throw null; } - public TypeForwardedFromAttribute(string assemblyFullName) => throw null; - } - - public class TypeForwardedToAttribute : System.Attribute - { - public System.Type Destination { get => throw null; } - public TypeForwardedToAttribute(System.Type destination) => throw null; - } - - public static class Unsafe - { - unsafe public static void* Add(void* source, int elementOffset) => throw null; - public static T Add(ref T source, System.IntPtr elementOffset) => throw null; - public static T Add(ref T source, System.UIntPtr elementOffset) => throw null; - public static T Add(ref T source, int elementOffset) => throw null; - public static T AddByteOffset(ref T source, System.IntPtr byteOffset) => throw null; - public static T AddByteOffset(ref T source, System.UIntPtr byteOffset) => throw null; - public static bool AreSame(ref T left, ref T right) => throw null; - public static T As(object o) where T : class => throw null; - public static TTo As(ref TFrom source) => throw null; - unsafe public static void* AsPointer(ref T value) => throw null; - public static T AsRef(T source) => throw null; - unsafe public static T AsRef(void* source) => throw null; - public static System.IntPtr ByteOffset(ref T origin, ref T target) => throw null; - unsafe public static void Copy(void* destination, ref T source) => throw null; - unsafe public static void Copy(ref T destination, void* source) => throw null; - unsafe public static void CopyBlock(void* destination, void* source, System.UInt32 byteCount) => throw null; - public static void CopyBlock(ref System.Byte destination, ref System.Byte source, System.UInt32 byteCount) => throw null; - unsafe public static void CopyBlockUnaligned(void* destination, void* source, System.UInt32 byteCount) => throw null; - public static void CopyBlockUnaligned(ref System.Byte destination, ref System.Byte source, System.UInt32 byteCount) => throw null; - unsafe public static void InitBlock(void* startAddress, System.Byte value, System.UInt32 byteCount) => throw null; - public static void InitBlock(ref System.Byte startAddress, System.Byte value, System.UInt32 byteCount) => throw null; - unsafe public static void InitBlockUnaligned(void* startAddress, System.Byte value, System.UInt32 byteCount) => throw null; - public static void InitBlockUnaligned(ref System.Byte startAddress, System.Byte value, System.UInt32 byteCount) => throw null; - public static bool IsAddressGreaterThan(ref T left, ref T right) => throw null; - public static bool IsAddressLessThan(ref T left, ref T right) => throw null; - public static bool IsNullRef(ref T source) => throw null; - public static T NullRef() => throw null; - unsafe public static T Read(void* source) => throw null; - unsafe public static T ReadUnaligned(void* source) => throw null; - public static T ReadUnaligned(ref System.Byte source) => throw null; - public static int SizeOf() => throw null; - public static void SkipInit(out T value) => throw null; - unsafe public static void* Subtract(void* source, int elementOffset) => throw null; - public static T Subtract(ref T source, System.IntPtr elementOffset) => throw null; - public static T Subtract(ref T source, System.UIntPtr elementOffset) => throw null; - public static T Subtract(ref T source, int elementOffset) => throw null; - public static T SubtractByteOffset(ref T source, System.IntPtr byteOffset) => throw null; - public static T SubtractByteOffset(ref T source, System.UIntPtr byteOffset) => throw null; - public static T Unbox(object box) where T : struct => throw null; - unsafe public static void Write(void* destination, T value) => throw null; - unsafe public static void WriteUnaligned(void* destination, T value) => throw null; - public static void WriteUnaligned(ref System.Byte destination, T value) => throw null; - } - - public class UnsafeValueTypeAttribute : System.Attribute - { - public UnsafeValueTypeAttribute() => throw null; - } - - public struct ValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion - { - public void GetResult() => throw null; - public bool IsCompleted { get => throw null; } - public void OnCompleted(System.Action continuation) => throw null; - public void UnsafeOnCompleted(System.Action continuation) => throw null; - // Stub generator skipped constructor - } - - public struct ValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion - { - public TResult GetResult() => throw null; - public bool IsCompleted { get => throw null; } - public void OnCompleted(System.Action continuation) => throw null; - public void UnsafeOnCompleted(System.Action continuation) => throw null; - // Stub generator skipped constructor - } - - public struct YieldAwaitable - { - public struct YieldAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion - { - public void GetResult() => throw null; - public bool IsCompleted { get => throw null; } - public void OnCompleted(System.Action continuation) => throw null; - public void UnsafeOnCompleted(System.Action continuation) => throw null; - // Stub generator skipped constructor - } - - - public System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter GetAwaiter() => throw null; - // Stub generator skipped constructor - } - - } - namespace ConstrainedExecution - { - public enum Cer : int - { - MayFail = 1, - None = 0, - Success = 2, - } - - public enum Consistency : int - { - MayCorruptAppDomain = 1, - MayCorruptInstance = 2, - MayCorruptProcess = 0, - WillNotCorruptState = 3, - } - - public abstract class CriticalFinalizerObject - { - protected CriticalFinalizerObject() => throw null; - // ERR: Stub generator didn't handle member: ~CriticalFinalizerObject - } - - public class PrePrepareMethodAttribute : System.Attribute - { - public PrePrepareMethodAttribute() => throw null; - } - - public class ReliabilityContractAttribute : System.Attribute - { - public System.Runtime.ConstrainedExecution.Cer Cer { get => throw null; } - public System.Runtime.ConstrainedExecution.Consistency ConsistencyGuarantee { get => throw null; } - public ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency consistencyGuarantee, System.Runtime.ConstrainedExecution.Cer cer) => throw null; - } - - } - namespace ExceptionServices - { - public class ExceptionDispatchInfo - { - public static System.Runtime.ExceptionServices.ExceptionDispatchInfo Capture(System.Exception source) => throw null; - public static System.Exception SetCurrentStackTrace(System.Exception source) => throw null; - public static System.Exception SetRemoteStackTrace(System.Exception source, string stackTrace) => throw null; - public System.Exception SourceException { get => throw null; } - public void Throw() => throw null; - public static void Throw(System.Exception source) => throw null; - } - - public class FirstChanceExceptionEventArgs : System.EventArgs - { - public System.Exception Exception { get => throw null; } - public FirstChanceExceptionEventArgs(System.Exception exception) => throw null; - } - - public class HandleProcessCorruptedStateExceptionsAttribute : System.Attribute - { - public HandleProcessCorruptedStateExceptionsAttribute() => throw null; - } - - } - namespace InteropServices - { - public enum Architecture : int - { - Arm = 2, - Arm64 = 3, - Armv6 = 7, - LoongArch64 = 6, - Ppc64le = 8, - S390x = 5, - Wasm = 4, - X64 = 1, - X86 = 0, - } - - public enum CharSet : int - { - Ansi = 2, - Auto = 4, - None = 1, - Unicode = 3, - } - - public class ComVisibleAttribute : System.Attribute - { - public ComVisibleAttribute(bool visibility) => throw null; - public bool Value { get => throw null; } - } - - public abstract class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable - { - public void Close() => throw null; - protected CriticalHandle(System.IntPtr invalidHandleValue) => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public bool IsClosed { get => throw null; } - public abstract bool IsInvalid { get; } - protected abstract bool ReleaseHandle(); - protected void SetHandle(System.IntPtr handle) => throw null; - public void SetHandleAsInvalid() => throw null; - protected System.IntPtr handle; - // ERR: Stub generator didn't handle member: ~CriticalHandle - } - - public class ExternalException : System.SystemException - { - public virtual int ErrorCode { get => throw null; } - public ExternalException() => throw null; - protected ExternalException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public ExternalException(string message) => throw null; - public ExternalException(string message, System.Exception inner) => throw null; - public ExternalException(string message, int errorCode) => throw null; - public override string ToString() => throw null; - } - - public class FieldOffsetAttribute : System.Attribute - { - public FieldOffsetAttribute(int offset) => throw null; - public int Value { get => throw null; } - } - - public struct GCHandle : System.IEquatable - { - public static bool operator !=(System.Runtime.InteropServices.GCHandle a, System.Runtime.InteropServices.GCHandle b) => throw null; - public static bool operator ==(System.Runtime.InteropServices.GCHandle a, System.Runtime.InteropServices.GCHandle b) => throw null; - public System.IntPtr AddrOfPinnedObject() => throw null; - public static System.Runtime.InteropServices.GCHandle Alloc(object value) => throw null; - public static System.Runtime.InteropServices.GCHandle Alloc(object value, System.Runtime.InteropServices.GCHandleType type) => throw null; - public bool Equals(System.Runtime.InteropServices.GCHandle other) => throw null; - public override bool Equals(object o) => throw null; - public void Free() => throw null; - public static System.Runtime.InteropServices.GCHandle FromIntPtr(System.IntPtr value) => throw null; - // Stub generator skipped constructor - public override int GetHashCode() => throw null; - public bool IsAllocated { get => throw null; } - public object Target { get => throw null; set => throw null; } - public static System.IntPtr ToIntPtr(System.Runtime.InteropServices.GCHandle value) => throw null; - public static explicit operator System.IntPtr(System.Runtime.InteropServices.GCHandle value) => throw null; - public static explicit operator System.Runtime.InteropServices.GCHandle(System.IntPtr value) => throw null; - } - - public enum GCHandleType : int - { - Normal = 2, - Pinned = 3, - Weak = 0, - WeakTrackResurrection = 1, - } - - public class InAttribute : System.Attribute - { - public InAttribute() => throw null; - } - - public enum LayoutKind : int - { - Auto = 3, - Explicit = 2, - Sequential = 0, - } - - public struct OSPlatform : System.IEquatable - { - public static bool operator !=(System.Runtime.InteropServices.OSPlatform left, System.Runtime.InteropServices.OSPlatform right) => throw null; - public static bool operator ==(System.Runtime.InteropServices.OSPlatform left, System.Runtime.InteropServices.OSPlatform right) => throw null; - public static System.Runtime.InteropServices.OSPlatform Create(string osPlatform) => throw null; - public bool Equals(System.Runtime.InteropServices.OSPlatform other) => throw null; - public override bool Equals(object obj) => throw null; - public static System.Runtime.InteropServices.OSPlatform FreeBSD { get => throw null; } - public override int GetHashCode() => throw null; - public static System.Runtime.InteropServices.OSPlatform Linux { get => throw null; } - // Stub generator skipped constructor - public static System.Runtime.InteropServices.OSPlatform OSX { get => throw null; } - public override string ToString() => throw null; - public static System.Runtime.InteropServices.OSPlatform Windows { get => throw null; } - } - - public class OutAttribute : System.Attribute - { - public OutAttribute() => throw null; - } - - public static class RuntimeInformation - { - public static string FrameworkDescription { get => throw null; } - public static bool IsOSPlatform(System.Runtime.InteropServices.OSPlatform osPlatform) => throw null; - public static System.Runtime.InteropServices.Architecture OSArchitecture { get => throw null; } - public static string OSDescription { get => throw null; } - public static System.Runtime.InteropServices.Architecture ProcessArchitecture { get => throw null; } - public static string RuntimeIdentifier { get => throw null; } - } - - public abstract class SafeBuffer : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid - { - unsafe public void AcquirePointer(ref System.Byte* pointer) => throw null; - public System.UInt64 ByteLength { get => throw null; } - public void Initialize(System.UInt32 numElements, System.UInt32 sizeOfEachElement) => throw null; - public void Initialize(System.UInt64 numBytes) => throw null; - public void Initialize(System.UInt32 numElements) where T : struct => throw null; - public T Read(System.UInt64 byteOffset) where T : struct => throw null; - public void ReadArray(System.UInt64 byteOffset, T[] array, int index, int count) where T : struct => throw null; - public void ReadSpan(System.UInt64 byteOffset, System.Span buffer) where T : struct => throw null; - public void ReleasePointer() => throw null; - protected SafeBuffer(bool ownsHandle) : base(default(bool)) => throw null; - public void Write(System.UInt64 byteOffset, T value) where T : struct => throw null; - public void WriteArray(System.UInt64 byteOffset, T[] array, int index, int count) where T : struct => throw null; - public void WriteSpan(System.UInt64 byteOffset, System.ReadOnlySpan data) where T : struct => throw null; - } - - public abstract class SafeHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable - { - public void Close() => throw null; - public void DangerousAddRef(ref bool success) => throw null; - public System.IntPtr DangerousGetHandle() => throw null; - public void DangerousRelease() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public bool IsClosed { get => throw null; } - public abstract bool IsInvalid { get; } - protected abstract bool ReleaseHandle(); - protected SafeHandle(System.IntPtr invalidHandleValue, bool ownsHandle) => throw null; - protected void SetHandle(System.IntPtr handle) => throw null; - public void SetHandleAsInvalid() => throw null; - protected System.IntPtr handle; - // ERR: Stub generator didn't handle member: ~SafeHandle - } - - public class StructLayoutAttribute : System.Attribute - { - public System.Runtime.InteropServices.CharSet CharSet; - public int Pack; - public int Size; - public StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind layoutKind) => throw null; - public StructLayoutAttribute(System.Int16 layoutKind) => throw null; - public System.Runtime.InteropServices.LayoutKind Value { get => throw null; } - } - - public class SuppressGCTransitionAttribute : System.Attribute - { - public SuppressGCTransitionAttribute() => throw null; - } - - public enum UnmanagedType : int - { - AnsiBStr = 35, - AsAny = 40, - BStr = 19, - Bool = 2, - ByValArray = 30, - ByValTStr = 23, - Currency = 15, - CustomMarshaler = 44, - Error = 45, - FunctionPtr = 38, - HString = 47, - I1 = 3, - I2 = 5, - I4 = 7, - I8 = 9, - IDispatch = 26, - IInspectable = 46, - IUnknown = 25, - Interface = 28, - LPArray = 42, - LPStr = 20, - LPStruct = 43, - LPTStr = 22, - LPUTF8Str = 48, - LPWStr = 21, - R4 = 11, - R8 = 12, - SafeArray = 29, - Struct = 27, - SysInt = 31, - SysUInt = 32, - TBStr = 36, - U1 = 4, - U2 = 6, - U4 = 8, - U8 = 10, - VBByRefStr = 34, - VariantBool = 37, - } - - namespace Marshalling - { - public class ContiguousCollectionMarshallerAttribute : System.Attribute - { - public ContiguousCollectionMarshallerAttribute() => throw null; - } - - public class CustomMarshallerAttribute : System.Attribute - { - public struct GenericPlaceholder - { - // Stub generator skipped constructor - } - - - public CustomMarshallerAttribute(System.Type managedType, System.Runtime.InteropServices.Marshalling.MarshalMode marshalMode, System.Type marshallerType) => throw null; - public System.Type ManagedType { get => throw null; } - public System.Runtime.InteropServices.Marshalling.MarshalMode MarshalMode { get => throw null; } - public System.Type MarshallerType { get => throw null; } - } - - public enum MarshalMode : int - { - Default = 0, - ElementIn = 7, - ElementOut = 9, - ElementRef = 8, - ManagedToUnmanagedIn = 1, - ManagedToUnmanagedOut = 3, - ManagedToUnmanagedRef = 2, - UnmanagedToManagedIn = 4, - UnmanagedToManagedOut = 6, - UnmanagedToManagedRef = 5, - } - - public class NativeMarshallingAttribute : System.Attribute - { - public NativeMarshallingAttribute(System.Type nativeType) => throw null; - public System.Type NativeType { get => throw null; } - } - - public static class ReadOnlySpanMarshaller where TUnmanagedElement : unmanaged - { - public struct ManagedToUnmanagedIn - { - public static int BufferSize { get => throw null; } - public void Free() => throw null; - public void FromManaged(System.ReadOnlySpan managed, System.Span buffer) => throw null; - public System.ReadOnlySpan GetManagedValuesSource() => throw null; - public TUnmanagedElement GetPinnableReference() => throw null; - public static T GetPinnableReference(System.ReadOnlySpan managed) => throw null; - public System.Span GetUnmanagedValuesDestination() => throw null; - // Stub generator skipped constructor - unsafe public TUnmanagedElement* ToUnmanaged() => throw null; - } - - - public static class UnmanagedToManagedOut - { - unsafe public static TUnmanagedElement* AllocateContainerForUnmanagedElements(System.ReadOnlySpan managed, out int numElements) => throw null; - public static System.ReadOnlySpan GetManagedValuesSource(System.ReadOnlySpan managed) => throw null; - unsafe public static System.Span GetUnmanagedValuesDestination(TUnmanagedElement* unmanaged, int numElements) => throw null; - } - - - } - - public static class SpanMarshaller where TUnmanagedElement : unmanaged - { - public struct ManagedToUnmanagedIn - { - public static int BufferSize { get => throw null; } - public void Free() => throw null; - public void FromManaged(System.Span managed, System.Span buffer) => throw null; - public System.ReadOnlySpan GetManagedValuesSource() => throw null; - public TUnmanagedElement GetPinnableReference() => throw null; - public static T GetPinnableReference(System.Span managed) => throw null; - public System.Span GetUnmanagedValuesDestination() => throw null; - // Stub generator skipped constructor - unsafe public TUnmanagedElement* ToUnmanaged() => throw null; - } - - - unsafe public static System.Span AllocateContainerForManagedElements(TUnmanagedElement* unmanaged, int numElements) => throw null; - unsafe public static TUnmanagedElement* AllocateContainerForUnmanagedElements(System.Span managed, out int numElements) => throw null; - unsafe public static void Free(TUnmanagedElement* unmanaged) => throw null; - public static System.Span GetManagedValuesDestination(System.Span managed) => throw null; - public static System.ReadOnlySpan GetManagedValuesSource(System.Span managed) => throw null; - unsafe public static System.Span GetUnmanagedValuesDestination(TUnmanagedElement* unmanaged, int numElements) => throw null; - unsafe public static System.ReadOnlySpan GetUnmanagedValuesSource(TUnmanagedElement* unmanaged, int numElements) => throw null; - } - - } - } - namespace Remoting - { - public class ObjectHandle : System.MarshalByRefObject - { - public ObjectHandle(object o) => throw null; - public object Unwrap() => throw null; - } - - } - namespace Serialization - { - public interface IDeserializationCallback - { - void OnDeserialization(object sender); - } - - public interface IFormatterConverter - { - object Convert(object value, System.Type type); - object Convert(object value, System.TypeCode typeCode); - bool ToBoolean(object value); - System.Byte ToByte(object value); - System.Char ToChar(object value); - System.DateTime ToDateTime(object value); - System.Decimal ToDecimal(object value); - double ToDouble(object value); - System.Int16 ToInt16(object value); - int ToInt32(object value); - System.Int64 ToInt64(object value); - System.SByte ToSByte(object value); - float ToSingle(object value); - string ToString(object value); - System.UInt16 ToUInt16(object value); - System.UInt32 ToUInt32(object value); - System.UInt64 ToUInt64(object value); - } - - public interface IObjectReference - { - object GetRealObject(System.Runtime.Serialization.StreamingContext context); - } - - public interface ISafeSerializationData - { - void CompleteDeserialization(object deserialized); - } - - public interface ISerializable - { - void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context); - } - - public class OnDeserializedAttribute : System.Attribute - { - public OnDeserializedAttribute() => throw null; - } - - public class OnDeserializingAttribute : System.Attribute - { - public OnDeserializingAttribute() => throw null; - } - - public class OnSerializedAttribute : System.Attribute - { - public OnSerializedAttribute() => throw null; - } - - public class OnSerializingAttribute : System.Attribute - { - public OnSerializingAttribute() => throw null; - } - - public class OptionalFieldAttribute : System.Attribute - { - public OptionalFieldAttribute() => throw null; - public int VersionAdded { get => throw null; set => throw null; } - } - - public class SafeSerializationEventArgs : System.EventArgs - { - public void AddSerializedState(System.Runtime.Serialization.ISafeSerializationData serializedState) => throw null; - public System.Runtime.Serialization.StreamingContext StreamingContext { get => throw null; } - } - - public struct SerializationEntry - { - public string Name { get => throw null; } - public System.Type ObjectType { get => throw null; } - // Stub generator skipped constructor - public object Value { get => throw null; } - } - - public class SerializationException : System.SystemException - { - public SerializationException() => throw null; - protected SerializationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public SerializationException(string message) => throw null; - public SerializationException(string message, System.Exception innerException) => throw null; - } - - public class SerializationInfo - { - public void AddValue(string name, System.DateTime value) => throw null; - public void AddValue(string name, bool value) => throw null; - public void AddValue(string name, System.Byte value) => throw null; - public void AddValue(string name, System.Char value) => throw null; - public void AddValue(string name, System.Decimal value) => throw null; - public void AddValue(string name, double value) => throw null; - public void AddValue(string name, float value) => throw null; - public void AddValue(string name, int value) => throw null; - public void AddValue(string name, System.Int64 value) => throw null; - public void AddValue(string name, object value) => throw null; - public void AddValue(string name, object value, System.Type type) => throw null; - public void AddValue(string name, System.SByte value) => throw null; - public void AddValue(string name, System.Int16 value) => throw null; - public void AddValue(string name, System.UInt32 value) => throw null; - public void AddValue(string name, System.UInt64 value) => throw null; - public void AddValue(string name, System.UInt16 value) => throw null; - public string AssemblyName { get => throw null; set => throw null; } - public string FullTypeName { get => throw null; set => throw null; } - public bool GetBoolean(string name) => throw null; - public System.Byte GetByte(string name) => throw null; - public System.Char GetChar(string name) => throw null; - public System.DateTime GetDateTime(string name) => throw null; - public System.Decimal GetDecimal(string name) => throw null; - public double GetDouble(string name) => throw null; - public System.Runtime.Serialization.SerializationInfoEnumerator GetEnumerator() => throw null; - public System.Int16 GetInt16(string name) => throw null; - public int GetInt32(string name) => throw null; - public System.Int64 GetInt64(string name) => throw null; - public System.SByte GetSByte(string name) => throw null; - public float GetSingle(string name) => throw null; - public string GetString(string name) => throw null; - public System.UInt16 GetUInt16(string name) => throw null; - public System.UInt32 GetUInt32(string name) => throw null; - public System.UInt64 GetUInt64(string name) => throw null; - public object GetValue(string name, System.Type type) => throw null; - public bool IsAssemblyNameSetExplicit { get => throw null; } - public bool IsFullTypeNameSetExplicit { get => throw null; } - public int MemberCount { get => throw null; } - public System.Type ObjectType { get => throw null; } - public SerializationInfo(System.Type type, System.Runtime.Serialization.IFormatterConverter converter) => throw null; - public SerializationInfo(System.Type type, System.Runtime.Serialization.IFormatterConverter converter, bool requireSameTokenInPartialTrust) => throw null; - public void SetType(System.Type type) => throw null; - } - - public class SerializationInfoEnumerator : System.Collections.IEnumerator - { - public System.Runtime.Serialization.SerializationEntry Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public bool MoveNext() => throw null; - public string Name { get => throw null; } - public System.Type ObjectType { get => throw null; } - public void Reset() => throw null; - public object Value { get => throw null; } - } - - public struct StreamingContext - { - public object Context { get => throw null; } - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public System.Runtime.Serialization.StreamingContextStates State { get => throw null; } - // Stub generator skipped constructor - public StreamingContext(System.Runtime.Serialization.StreamingContextStates state) => throw null; - public StreamingContext(System.Runtime.Serialization.StreamingContextStates state, object additional) => throw null; - } - - [System.Flags] - public enum StreamingContextStates : int - { - All = 255, - Clone = 64, - CrossAppDomain = 128, - CrossMachine = 2, - CrossProcess = 1, - File = 4, - Other = 32, - Persistence = 8, - Remoting = 16, - } - - } - namespace Versioning - { - public class ComponentGuaranteesAttribute : System.Attribute - { - public ComponentGuaranteesAttribute(System.Runtime.Versioning.ComponentGuaranteesOptions guarantees) => throw null; - public System.Runtime.Versioning.ComponentGuaranteesOptions Guarantees { get => throw null; } - } - - [System.Flags] - public enum ComponentGuaranteesOptions : int - { - Exchange = 1, - None = 0, - SideBySide = 4, - Stable = 2, - } - - public class FrameworkName : System.IEquatable - { - public static bool operator !=(System.Runtime.Versioning.FrameworkName left, System.Runtime.Versioning.FrameworkName right) => throw null; - public static bool operator ==(System.Runtime.Versioning.FrameworkName left, System.Runtime.Versioning.FrameworkName right) => throw null; - public bool Equals(System.Runtime.Versioning.FrameworkName other) => throw null; - public override bool Equals(object obj) => throw null; - public FrameworkName(string frameworkName) => throw null; - public FrameworkName(string identifier, System.Version version) => throw null; - public FrameworkName(string identifier, System.Version version, string profile) => throw null; - public string FullName { get => throw null; } - public override int GetHashCode() => throw null; - public string Identifier { get => throw null; } - public string Profile { get => throw null; } - public override string ToString() => throw null; - public System.Version Version { get => throw null; } - } - - public abstract class OSPlatformAttribute : System.Attribute - { - protected private OSPlatformAttribute(string platformName) => throw null; - public string PlatformName { get => throw null; } - } - - public class ObsoletedOSPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute - { - public string Message { get => throw null; } - public ObsoletedOSPlatformAttribute(string platformName) : base(default(string)) => throw null; - public ObsoletedOSPlatformAttribute(string platformName, string message) : base(default(string)) => throw null; - public string Url { get => throw null; set => throw null; } - } - - public class RequiresPreviewFeaturesAttribute : System.Attribute - { - public string Message { get => throw null; } - public RequiresPreviewFeaturesAttribute() => throw null; - public RequiresPreviewFeaturesAttribute(string message) => throw null; - public string Url { get => throw null; set => throw null; } - } - - public class ResourceConsumptionAttribute : System.Attribute - { - public System.Runtime.Versioning.ResourceScope ConsumptionScope { get => throw null; } - public ResourceConsumptionAttribute(System.Runtime.Versioning.ResourceScope resourceScope) => throw null; - public ResourceConsumptionAttribute(System.Runtime.Versioning.ResourceScope resourceScope, System.Runtime.Versioning.ResourceScope consumptionScope) => throw null; - public System.Runtime.Versioning.ResourceScope ResourceScope { get => throw null; } - } - - public class ResourceExposureAttribute : System.Attribute - { - public ResourceExposureAttribute(System.Runtime.Versioning.ResourceScope exposureLevel) => throw null; - public System.Runtime.Versioning.ResourceScope ResourceExposureLevel { get => throw null; } - } - - [System.Flags] - public enum ResourceScope : int - { - AppDomain = 4, - Assembly = 32, - Library = 8, - Machine = 1, - None = 0, - Private = 16, - Process = 2, - } - - public class SupportedOSPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute - { - public SupportedOSPlatformAttribute(string platformName) : base(default(string)) => throw null; - } - - public class SupportedOSPlatformGuardAttribute : System.Runtime.Versioning.OSPlatformAttribute - { - public SupportedOSPlatformGuardAttribute(string platformName) : base(default(string)) => throw null; - } - - public class TargetFrameworkAttribute : System.Attribute - { - public string FrameworkDisplayName { get => throw null; set => throw null; } - public string FrameworkName { get => throw null; } - public TargetFrameworkAttribute(string frameworkName) => throw null; - } - - public class TargetPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute - { - public TargetPlatformAttribute(string platformName) : base(default(string)) => throw null; - } - - public class UnsupportedOSPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute - { - public string Message { get => throw null; } - public UnsupportedOSPlatformAttribute(string platformName) : base(default(string)) => throw null; - public UnsupportedOSPlatformAttribute(string platformName, string message) : base(default(string)) => throw null; - } - - public class UnsupportedOSPlatformGuardAttribute : System.Runtime.Versioning.OSPlatformAttribute - { - public UnsupportedOSPlatformGuardAttribute(string platformName) : base(default(string)) => throw null; - } - - public static class VersioningHelper - { - public static string MakeVersionSafeName(string name, System.Runtime.Versioning.ResourceScope from, System.Runtime.Versioning.ResourceScope to) => throw null; - public static string MakeVersionSafeName(string name, System.Runtime.Versioning.ResourceScope from, System.Runtime.Versioning.ResourceScope to, System.Type type) => throw null; - } - - } - } - namespace Security - { - public class AllowPartiallyTrustedCallersAttribute : System.Attribute - { - public AllowPartiallyTrustedCallersAttribute() => throw null; - public System.Security.PartialTrustVisibilityLevel PartialTrustVisibilityLevel { get => throw null; set => throw null; } - } - - public interface IPermission : System.Security.ISecurityEncodable - { - System.Security.IPermission Copy(); - void Demand(); - System.Security.IPermission Intersect(System.Security.IPermission target); - bool IsSubsetOf(System.Security.IPermission target); - System.Security.IPermission Union(System.Security.IPermission target); - } - - public interface ISecurityEncodable - { - void FromXml(System.Security.SecurityElement e); - System.Security.SecurityElement ToXml(); - } - - public interface IStackWalk - { - void Assert(); - void Demand(); - void Deny(); - void PermitOnly(); - } - - public enum PartialTrustVisibilityLevel : int - { - NotVisibleByDefault = 1, - VisibleToAllHosts = 0, - } - - public class PermissionSet : System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Security.ISecurityEncodable, System.Security.IStackWalk - { - public System.Security.IPermission AddPermission(System.Security.IPermission perm) => throw null; - protected virtual System.Security.IPermission AddPermissionImpl(System.Security.IPermission perm) => throw null; - public void Assert() => throw null; - public bool ContainsNonCodeAccessPermissions() => throw null; - public static System.Byte[] ConvertPermissionSet(string inFormat, System.Byte[] inData, string outFormat) => throw null; - public virtual System.Security.PermissionSet Copy() => throw null; - public virtual void CopyTo(System.Array array, int index) => throw null; - public virtual int Count { get => throw null; } - public void Demand() => throw null; - public void Deny() => throw null; - public override bool Equals(object o) => throw null; - public virtual void FromXml(System.Security.SecurityElement et) => throw null; - public System.Collections.IEnumerator GetEnumerator() => throw null; - protected virtual System.Collections.IEnumerator GetEnumeratorImpl() => throw null; - public override int GetHashCode() => throw null; - public System.Security.IPermission GetPermission(System.Type permClass) => throw null; - protected virtual System.Security.IPermission GetPermissionImpl(System.Type permClass) => throw null; - public System.Security.PermissionSet Intersect(System.Security.PermissionSet other) => throw null; - public bool IsEmpty() => throw null; - public virtual bool IsReadOnly { get => throw null; } - public bool IsSubsetOf(System.Security.PermissionSet target) => throw null; - public virtual bool IsSynchronized { get => throw null; } - public bool IsUnrestricted() => throw null; - void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public PermissionSet(System.Security.PermissionSet permSet) => throw null; - public PermissionSet(System.Security.Permissions.PermissionState state) => throw null; - public void PermitOnly() => throw null; - public System.Security.IPermission RemovePermission(System.Type permClass) => throw null; - protected virtual System.Security.IPermission RemovePermissionImpl(System.Type permClass) => throw null; - public static void RevertAssert() => throw null; - public System.Security.IPermission SetPermission(System.Security.IPermission perm) => throw null; - protected virtual System.Security.IPermission SetPermissionImpl(System.Security.IPermission perm) => throw null; - public virtual object SyncRoot { get => throw null; } - public override string ToString() => throw null; - public virtual System.Security.SecurityElement ToXml() => throw null; - public System.Security.PermissionSet Union(System.Security.PermissionSet other) => throw null; - } - - public class SecurityCriticalAttribute : System.Attribute - { - public System.Security.SecurityCriticalScope Scope { get => throw null; } - public SecurityCriticalAttribute() => throw null; - public SecurityCriticalAttribute(System.Security.SecurityCriticalScope scope) => throw null; - } - - public enum SecurityCriticalScope : int - { - Everything = 1, - Explicit = 0, - } - - public class SecurityElement - { - public void AddAttribute(string name, string value) => throw null; - public void AddChild(System.Security.SecurityElement child) => throw null; - public string Attribute(string name) => throw null; - public System.Collections.Hashtable Attributes { get => throw null; set => throw null; } - public System.Collections.ArrayList Children { get => throw null; set => throw null; } - public System.Security.SecurityElement Copy() => throw null; - public bool Equal(System.Security.SecurityElement other) => throw null; - public static string Escape(string str) => throw null; - public static System.Security.SecurityElement FromString(string xml) => throw null; - public static bool IsValidAttributeName(string name) => throw null; - public static bool IsValidAttributeValue(string value) => throw null; - public static bool IsValidTag(string tag) => throw null; - public static bool IsValidText(string text) => throw null; - public System.Security.SecurityElement SearchForChildByTag(string tag) => throw null; - public string SearchForTextOfTag(string tag) => throw null; - public SecurityElement(string tag) => throw null; - public SecurityElement(string tag, string text) => throw null; - public string Tag { get => throw null; set => throw null; } - public string Text { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - public class SecurityException : System.SystemException - { - public object Demanded { get => throw null; set => throw null; } - public object DenySetInstance { get => throw null; set => throw null; } - public System.Reflection.AssemblyName FailedAssemblyInfo { get => throw null; set => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public string GrantedSet { get => throw null; set => throw null; } - public System.Reflection.MethodInfo Method { get => throw null; set => throw null; } - public string PermissionState { get => throw null; set => throw null; } - public System.Type PermissionType { get => throw null; set => throw null; } - public object PermitOnlySetInstance { get => throw null; set => throw null; } - public string RefusedSet { get => throw null; set => throw null; } - public SecurityException() => throw null; - protected SecurityException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public SecurityException(string message) => throw null; - public SecurityException(string message, System.Exception inner) => throw null; - public SecurityException(string message, System.Type type) => throw null; - public SecurityException(string message, System.Type type, string state) => throw null; - public override string ToString() => throw null; - public string Url { get => throw null; set => throw null; } - } - - public enum SecurityRuleSet : byte - { - Level1 = 1, - Level2 = 2, - None = 0, - } - - public class SecurityRulesAttribute : System.Attribute - { - public System.Security.SecurityRuleSet RuleSet { get => throw null; } - public SecurityRulesAttribute(System.Security.SecurityRuleSet ruleSet) => throw null; - public bool SkipVerificationInFullTrust { get => throw null; set => throw null; } - } - - public class SecuritySafeCriticalAttribute : System.Attribute - { - public SecuritySafeCriticalAttribute() => throw null; - } - - public class SecurityTransparentAttribute : System.Attribute - { - public SecurityTransparentAttribute() => throw null; - } - - public class SecurityTreatAsSafeAttribute : System.Attribute - { - public SecurityTreatAsSafeAttribute() => throw null; - } - - public class SuppressUnmanagedCodeSecurityAttribute : System.Attribute - { - public SuppressUnmanagedCodeSecurityAttribute() => throw null; - } - - public class UnverifiableCodeAttribute : System.Attribute - { - public UnverifiableCodeAttribute() => throw null; - } - - public class VerificationException : System.SystemException - { - public VerificationException() => throw null; - protected VerificationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public VerificationException(string message) => throw null; - public VerificationException(string message, System.Exception innerException) => throw null; - } - - namespace Cryptography - { - public class CryptographicException : System.SystemException - { - public CryptographicException() => throw null; - protected CryptographicException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public CryptographicException(int hr) => throw null; - public CryptographicException(string message) => throw null; - public CryptographicException(string message, System.Exception inner) => throw null; - public CryptographicException(string format, string insert) => throw null; - } - - } - namespace Permissions - { - public abstract class CodeAccessSecurityAttribute : System.Security.Permissions.SecurityAttribute - { - protected CodeAccessSecurityAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - public enum PermissionState : int - { - None = 0, - Unrestricted = 1, - } - - public enum SecurityAction : int - { - Assert = 3, - Demand = 2, - Deny = 4, - InheritanceDemand = 7, - LinkDemand = 6, - PermitOnly = 5, - RequestMinimum = 8, - RequestOptional = 9, - RequestRefuse = 10, - } - - public abstract class SecurityAttribute : System.Attribute - { - public System.Security.Permissions.SecurityAction Action { get => throw null; set => throw null; } - public abstract System.Security.IPermission CreatePermission(); - protected SecurityAttribute(System.Security.Permissions.SecurityAction action) => throw null; - public bool Unrestricted { get => throw null; set => throw null; } - } - - public class SecurityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public bool Assertion { get => throw null; set => throw null; } - public bool BindingRedirects { get => throw null; set => throw null; } - public bool ControlAppDomain { get => throw null; set => throw null; } - public bool ControlDomainPolicy { get => throw null; set => throw null; } - public bool ControlEvidence { get => throw null; set => throw null; } - public bool ControlPolicy { get => throw null; set => throw null; } - public bool ControlPrincipal { get => throw null; set => throw null; } - public bool ControlThread { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public bool Execution { get => throw null; set => throw null; } - public System.Security.Permissions.SecurityPermissionFlag Flags { get => throw null; set => throw null; } - public bool Infrastructure { get => throw null; set => throw null; } - public bool RemotingConfiguration { get => throw null; set => throw null; } - public SecurityPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public bool SerializationFormatter { get => throw null; set => throw null; } - public bool SkipVerification { get => throw null; set => throw null; } - public bool UnmanagedCode { get => throw null; set => throw null; } - } - - [System.Flags] - public enum SecurityPermissionFlag : int - { - AllFlags = 16383, - Assertion = 1, - BindingRedirects = 8192, - ControlAppDomain = 1024, - ControlDomainPolicy = 256, - ControlEvidence = 32, - ControlPolicy = 64, - ControlPrincipal = 512, - ControlThread = 16, - Execution = 8, - Infrastructure = 4096, - NoFlags = 0, - RemotingConfiguration = 2048, - SerializationFormatter = 128, - SkipVerification = 4, - UnmanagedCode = 2, - } - - } - namespace Principal - { - public interface IIdentity - { - string AuthenticationType { get; } - bool IsAuthenticated { get; } - string Name { get; } - } - - public interface IPrincipal - { - System.Security.Principal.IIdentity Identity { get; } - bool IsInRole(string role); - } - - public enum PrincipalPolicy : int - { - NoPrincipal = 1, - UnauthenticatedPrincipal = 0, - WindowsPrincipal = 2, - } - - public enum TokenImpersonationLevel : int - { - Anonymous = 1, - Delegation = 4, - Identification = 2, - Impersonation = 3, - None = 0, - } - - } - } - namespace Text - { - public abstract class Decoder - { - public virtual void Convert(System.Byte[] bytes, int byteIndex, int byteCount, System.Char[] chars, int charIndex, int charCount, bool flush, out int bytesUsed, out int charsUsed, out bool completed) => throw null; - public virtual void Convert(System.ReadOnlySpan bytes, System.Span chars, bool flush, out int bytesUsed, out int charsUsed, out bool completed) => throw null; - unsafe public virtual void Convert(System.Byte* bytes, int byteCount, System.Char* chars, int charCount, bool flush, out int bytesUsed, out int charsUsed, out bool completed) => throw null; - protected Decoder() => throw null; - public System.Text.DecoderFallback Fallback { get => throw null; set => throw null; } - public System.Text.DecoderFallbackBuffer FallbackBuffer { get => throw null; } - public abstract int GetCharCount(System.Byte[] bytes, int index, int count); - public virtual int GetCharCount(System.Byte[] bytes, int index, int count, bool flush) => throw null; - public virtual int GetCharCount(System.ReadOnlySpan bytes, bool flush) => throw null; - unsafe public virtual int GetCharCount(System.Byte* bytes, int count, bool flush) => throw null; - public abstract int GetChars(System.Byte[] bytes, int byteIndex, int byteCount, System.Char[] chars, int charIndex); - public virtual int GetChars(System.Byte[] bytes, int byteIndex, int byteCount, System.Char[] chars, int charIndex, bool flush) => throw null; - public virtual int GetChars(System.ReadOnlySpan bytes, System.Span chars, bool flush) => throw null; - unsafe public virtual int GetChars(System.Byte* bytes, int byteCount, System.Char* chars, int charCount, bool flush) => throw null; - public virtual void Reset() => throw null; - } - - public class DecoderExceptionFallback : System.Text.DecoderFallback - { - public override System.Text.DecoderFallbackBuffer CreateFallbackBuffer() => throw null; - public DecoderExceptionFallback() => throw null; - public override bool Equals(object value) => throw null; - public override int GetHashCode() => throw null; - public override int MaxCharCount { get => throw null; } - } - - public class DecoderExceptionFallbackBuffer : System.Text.DecoderFallbackBuffer - { - public DecoderExceptionFallbackBuffer() => throw null; - public override bool Fallback(System.Byte[] bytesUnknown, int index) => throw null; - public override System.Char GetNextChar() => throw null; - public override bool MovePrevious() => throw null; - public override int Remaining { get => throw null; } - } - - public abstract class DecoderFallback - { - public abstract System.Text.DecoderFallbackBuffer CreateFallbackBuffer(); - protected DecoderFallback() => throw null; - public static System.Text.DecoderFallback ExceptionFallback { get => throw null; } - public abstract int MaxCharCount { get; } - public static System.Text.DecoderFallback ReplacementFallback { get => throw null; } - } - - public abstract class DecoderFallbackBuffer - { - protected DecoderFallbackBuffer() => throw null; - public abstract bool Fallback(System.Byte[] bytesUnknown, int index); - public abstract System.Char GetNextChar(); - public abstract bool MovePrevious(); - public abstract int Remaining { get; } - public virtual void Reset() => throw null; - } - - public class DecoderFallbackException : System.ArgumentException - { - public System.Byte[] BytesUnknown { get => throw null; } - public DecoderFallbackException() => throw null; - public DecoderFallbackException(string message) => throw null; - public DecoderFallbackException(string message, System.Byte[] bytesUnknown, int index) => throw null; - public DecoderFallbackException(string message, System.Exception innerException) => throw null; - public int Index { get => throw null; } - } - - public class DecoderReplacementFallback : System.Text.DecoderFallback - { - public override System.Text.DecoderFallbackBuffer CreateFallbackBuffer() => throw null; - public DecoderReplacementFallback() => throw null; - public DecoderReplacementFallback(string replacement) => throw null; - public string DefaultString { get => throw null; } - public override bool Equals(object value) => throw null; - public override int GetHashCode() => throw null; - public override int MaxCharCount { get => throw null; } - } - - public class DecoderReplacementFallbackBuffer : System.Text.DecoderFallbackBuffer - { - public DecoderReplacementFallbackBuffer(System.Text.DecoderReplacementFallback fallback) => throw null; - public override bool Fallback(System.Byte[] bytesUnknown, int index) => throw null; - public override System.Char GetNextChar() => throw null; - public override bool MovePrevious() => throw null; - public override int Remaining { get => throw null; } - public override void Reset() => throw null; - } - - public abstract class Encoder - { - public virtual void Convert(System.Char[] chars, int charIndex, int charCount, System.Byte[] bytes, int byteIndex, int byteCount, bool flush, out int charsUsed, out int bytesUsed, out bool completed) => throw null; - public virtual void Convert(System.ReadOnlySpan chars, System.Span bytes, bool flush, out int charsUsed, out int bytesUsed, out bool completed) => throw null; - unsafe public virtual void Convert(System.Char* chars, int charCount, System.Byte* bytes, int byteCount, bool flush, out int charsUsed, out int bytesUsed, out bool completed) => throw null; - protected Encoder() => throw null; - public System.Text.EncoderFallback Fallback { get => throw null; set => throw null; } - public System.Text.EncoderFallbackBuffer FallbackBuffer { get => throw null; } - public abstract int GetByteCount(System.Char[] chars, int index, int count, bool flush); - public virtual int GetByteCount(System.ReadOnlySpan chars, bool flush) => throw null; - unsafe public virtual int GetByteCount(System.Char* chars, int count, bool flush) => throw null; - public abstract int GetBytes(System.Char[] chars, int charIndex, int charCount, System.Byte[] bytes, int byteIndex, bool flush); - public virtual int GetBytes(System.ReadOnlySpan chars, System.Span bytes, bool flush) => throw null; - unsafe public virtual int GetBytes(System.Char* chars, int charCount, System.Byte* bytes, int byteCount, bool flush) => throw null; - public virtual void Reset() => throw null; - } - - public class EncoderExceptionFallback : System.Text.EncoderFallback - { - public override System.Text.EncoderFallbackBuffer CreateFallbackBuffer() => throw null; - public EncoderExceptionFallback() => throw null; - public override bool Equals(object value) => throw null; - public override int GetHashCode() => throw null; - public override int MaxCharCount { get => throw null; } - } - - public class EncoderExceptionFallbackBuffer : System.Text.EncoderFallbackBuffer - { - public EncoderExceptionFallbackBuffer() => throw null; - public override bool Fallback(System.Char charUnknownHigh, System.Char charUnknownLow, int index) => throw null; - public override bool Fallback(System.Char charUnknown, int index) => throw null; - public override System.Char GetNextChar() => throw null; - public override bool MovePrevious() => throw null; - public override int Remaining { get => throw null; } - } - - public abstract class EncoderFallback - { - public abstract System.Text.EncoderFallbackBuffer CreateFallbackBuffer(); - protected EncoderFallback() => throw null; - public static System.Text.EncoderFallback ExceptionFallback { get => throw null; } - public abstract int MaxCharCount { get; } - public static System.Text.EncoderFallback ReplacementFallback { get => throw null; } - } - - public abstract class EncoderFallbackBuffer - { - protected EncoderFallbackBuffer() => throw null; - public abstract bool Fallback(System.Char charUnknownHigh, System.Char charUnknownLow, int index); - public abstract bool Fallback(System.Char charUnknown, int index); - public abstract System.Char GetNextChar(); - public abstract bool MovePrevious(); - public abstract int Remaining { get; } - public virtual void Reset() => throw null; - } - - public class EncoderFallbackException : System.ArgumentException - { - public System.Char CharUnknown { get => throw null; } - public System.Char CharUnknownHigh { get => throw null; } - public System.Char CharUnknownLow { get => throw null; } - public EncoderFallbackException() => throw null; - public EncoderFallbackException(string message) => throw null; - public EncoderFallbackException(string message, System.Exception innerException) => throw null; - public int Index { get => throw null; } - public bool IsUnknownSurrogate() => throw null; - } - - public class EncoderReplacementFallback : System.Text.EncoderFallback - { - public override System.Text.EncoderFallbackBuffer CreateFallbackBuffer() => throw null; - public string DefaultString { get => throw null; } - public EncoderReplacementFallback() => throw null; - public EncoderReplacementFallback(string replacement) => throw null; - public override bool Equals(object value) => throw null; - public override int GetHashCode() => throw null; - public override int MaxCharCount { get => throw null; } - } - - public class EncoderReplacementFallbackBuffer : System.Text.EncoderFallbackBuffer - { - public EncoderReplacementFallbackBuffer(System.Text.EncoderReplacementFallback fallback) => throw null; - public override bool Fallback(System.Char charUnknownHigh, System.Char charUnknownLow, int index) => throw null; - public override bool Fallback(System.Char charUnknown, int index) => throw null; - public override System.Char GetNextChar() => throw null; - public override bool MovePrevious() => throw null; - public override int Remaining { get => throw null; } - public override void Reset() => throw null; - } - - public abstract class Encoding : System.ICloneable - { - public static System.Text.Encoding ASCII { get => throw null; } - public static System.Text.Encoding BigEndianUnicode { get => throw null; } - public virtual string BodyName { get => throw null; } - public virtual object Clone() => throw null; - public virtual int CodePage { get => throw null; } - public static System.Byte[] Convert(System.Text.Encoding srcEncoding, System.Text.Encoding dstEncoding, System.Byte[] bytes) => throw null; - public static System.Byte[] Convert(System.Text.Encoding srcEncoding, System.Text.Encoding dstEncoding, System.Byte[] bytes, int index, int count) => throw null; - public static System.IO.Stream CreateTranscodingStream(System.IO.Stream innerStream, System.Text.Encoding innerStreamEncoding, System.Text.Encoding outerStreamEncoding, bool leaveOpen = default(bool)) => throw null; - public System.Text.DecoderFallback DecoderFallback { get => throw null; set => throw null; } - public static System.Text.Encoding Default { get => throw null; } - public System.Text.EncoderFallback EncoderFallback { get => throw null; set => throw null; } - protected Encoding() => throw null; - protected Encoding(int codePage) => throw null; - protected Encoding(int codePage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) => throw null; - public virtual string EncodingName { get => throw null; } - public override bool Equals(object value) => throw null; - public virtual int GetByteCount(System.Char[] chars) => throw null; - public abstract int GetByteCount(System.Char[] chars, int index, int count); - public virtual int GetByteCount(System.ReadOnlySpan chars) => throw null; - unsafe public virtual int GetByteCount(System.Char* chars, int count) => throw null; - public virtual int GetByteCount(string s) => throw null; - public int GetByteCount(string s, int index, int count) => throw null; - public virtual System.Byte[] GetBytes(System.Char[] chars) => throw null; - public virtual System.Byte[] GetBytes(System.Char[] chars, int index, int count) => throw null; - public abstract int GetBytes(System.Char[] chars, int charIndex, int charCount, System.Byte[] bytes, int byteIndex); - public virtual int GetBytes(System.ReadOnlySpan chars, System.Span bytes) => throw null; - unsafe public virtual int GetBytes(System.Char* chars, int charCount, System.Byte* bytes, int byteCount) => throw null; - public virtual System.Byte[] GetBytes(string s) => throw null; - public System.Byte[] GetBytes(string s, int index, int count) => throw null; - public virtual int GetBytes(string s, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - public virtual int GetCharCount(System.Byte[] bytes) => throw null; - public abstract int GetCharCount(System.Byte[] bytes, int index, int count); - public virtual int GetCharCount(System.ReadOnlySpan bytes) => throw null; - unsafe public virtual int GetCharCount(System.Byte* bytes, int count) => throw null; - public virtual System.Char[] GetChars(System.Byte[] bytes) => throw null; - public virtual System.Char[] GetChars(System.Byte[] bytes, int index, int count) => throw null; - public abstract int GetChars(System.Byte[] bytes, int byteIndex, int byteCount, System.Char[] chars, int charIndex); - public virtual int GetChars(System.ReadOnlySpan bytes, System.Span chars) => throw null; - unsafe public virtual int GetChars(System.Byte* bytes, int byteCount, System.Char* chars, int charCount) => throw null; - public virtual System.Text.Decoder GetDecoder() => throw null; - public virtual System.Text.Encoder GetEncoder() => throw null; - public static System.Text.Encoding GetEncoding(int codepage) => throw null; - public static System.Text.Encoding GetEncoding(int codepage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) => throw null; - public static System.Text.Encoding GetEncoding(string name) => throw null; - public static System.Text.Encoding GetEncoding(string name, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) => throw null; - public static System.Text.EncodingInfo[] GetEncodings() => throw null; - public override int GetHashCode() => throw null; - public abstract int GetMaxByteCount(int charCount); - public abstract int GetMaxCharCount(int byteCount); - public virtual System.Byte[] GetPreamble() => throw null; - public virtual string GetString(System.Byte[] bytes) => throw null; - public virtual string GetString(System.Byte[] bytes, int index, int count) => throw null; - public string GetString(System.ReadOnlySpan bytes) => throw null; - unsafe public string GetString(System.Byte* bytes, int byteCount) => throw null; - public virtual string HeaderName { get => throw null; } - public bool IsAlwaysNormalized() => throw null; - public virtual bool IsAlwaysNormalized(System.Text.NormalizationForm form) => throw null; - public virtual bool IsBrowserDisplay { get => throw null; } - public virtual bool IsBrowserSave { get => throw null; } - public virtual bool IsMailNewsDisplay { get => throw null; } - public virtual bool IsMailNewsSave { get => throw null; } - public bool IsReadOnly { get => throw null; } - public virtual bool IsSingleByte { get => throw null; } - public static System.Text.Encoding Latin1 { get => throw null; } - public virtual System.ReadOnlySpan Preamble { get => throw null; } - public static void RegisterProvider(System.Text.EncodingProvider provider) => throw null; - public static System.Text.Encoding UTF32 { get => throw null; } - public static System.Text.Encoding UTF7 { get => throw null; } - public static System.Text.Encoding UTF8 { get => throw null; } - public static System.Text.Encoding Unicode { get => throw null; } - public virtual string WebName { get => throw null; } - public virtual int WindowsCodePage { get => throw null; } - } - - public class EncodingInfo - { - public int CodePage { get => throw null; } - public string DisplayName { get => throw null; } - public EncodingInfo(System.Text.EncodingProvider provider, int codePage, string name, string displayName) => throw null; - public override bool Equals(object value) => throw null; - public System.Text.Encoding GetEncoding() => throw null; - public override int GetHashCode() => throw null; - public string Name { get => throw null; } - } - - public abstract class EncodingProvider - { - public EncodingProvider() => throw null; - public abstract System.Text.Encoding GetEncoding(int codepage); - public virtual System.Text.Encoding GetEncoding(int codepage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) => throw null; - public abstract System.Text.Encoding GetEncoding(string name); - public virtual System.Text.Encoding GetEncoding(string name, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) => throw null; - public virtual System.Collections.Generic.IEnumerable GetEncodings() => throw null; - } - - public enum NormalizationForm : int - { - FormC = 1, - FormD = 2, - FormKC = 5, - FormKD = 6, - } - - public struct Rune : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable - { - public static bool operator !=(System.Text.Rune left, System.Text.Rune right) => throw null; - public static bool operator <(System.Text.Rune left, System.Text.Rune right) => throw null; - public static bool operator <=(System.Text.Rune left, System.Text.Rune right) => throw null; - public static bool operator ==(System.Text.Rune left, System.Text.Rune right) => throw null; - public static bool operator >(System.Text.Rune left, System.Text.Rune right) => throw null; - public static bool operator >=(System.Text.Rune left, System.Text.Rune right) => throw null; - public int CompareTo(System.Text.Rune other) => throw null; - int System.IComparable.CompareTo(object obj) => throw null; - public static System.Buffers.OperationStatus DecodeFromUtf16(System.ReadOnlySpan source, out System.Text.Rune result, out int charsConsumed) => throw null; - public static System.Buffers.OperationStatus DecodeFromUtf8(System.ReadOnlySpan source, out System.Text.Rune result, out int bytesConsumed) => throw null; - public static System.Buffers.OperationStatus DecodeLastFromUtf16(System.ReadOnlySpan source, out System.Text.Rune result, out int charsConsumed) => throw null; - public static System.Buffers.OperationStatus DecodeLastFromUtf8(System.ReadOnlySpan source, out System.Text.Rune value, out int bytesConsumed) => throw null; - public int EncodeToUtf16(System.Span destination) => throw null; - public int EncodeToUtf8(System.Span destination) => throw null; - public bool Equals(System.Text.Rune other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public static double GetNumericValue(System.Text.Rune value) => throw null; - public static System.Text.Rune GetRuneAt(string input, int index) => throw null; - public static System.Globalization.UnicodeCategory GetUnicodeCategory(System.Text.Rune value) => throw null; - public bool IsAscii { get => throw null; } - public bool IsBmp { get => throw null; } - public static bool IsControl(System.Text.Rune value) => throw null; - public static bool IsDigit(System.Text.Rune value) => throw null; - public static bool IsLetter(System.Text.Rune value) => throw null; - public static bool IsLetterOrDigit(System.Text.Rune value) => throw null; - public static bool IsLower(System.Text.Rune value) => throw null; - public static bool IsNumber(System.Text.Rune value) => throw null; - public static bool IsPunctuation(System.Text.Rune value) => throw null; - public static bool IsSeparator(System.Text.Rune value) => throw null; - public static bool IsSymbol(System.Text.Rune value) => throw null; - public static bool IsUpper(System.Text.Rune value) => throw null; - public static bool IsValid(int value) => throw null; - public static bool IsValid(System.UInt32 value) => throw null; - public static bool IsWhiteSpace(System.Text.Rune value) => throw null; - public int Plane { get => throw null; } - public static System.Text.Rune ReplacementChar { get => throw null; } - // Stub generator skipped constructor - public Rune(System.Char ch) => throw null; - public Rune(System.Char highSurrogate, System.Char lowSurrogate) => throw null; - public Rune(int value) => throw null; - public Rune(System.UInt32 value) => throw null; - public static System.Text.Rune ToLower(System.Text.Rune value, System.Globalization.CultureInfo culture) => throw null; - public static System.Text.Rune ToLowerInvariant(System.Text.Rune value) => throw null; - public override string ToString() => throw null; - string System.IFormattable.ToString(string format, System.IFormatProvider formatProvider) => throw null; - public static System.Text.Rune ToUpper(System.Text.Rune value, System.Globalization.CultureInfo culture) => throw null; - public static System.Text.Rune ToUpperInvariant(System.Text.Rune value) => throw null; - public static bool TryCreate(System.Char highSurrogate, System.Char lowSurrogate, out System.Text.Rune result) => throw null; - public static bool TryCreate(System.Char ch, out System.Text.Rune result) => throw null; - public static bool TryCreate(int value, out System.Text.Rune result) => throw null; - public static bool TryCreate(System.UInt32 value, out System.Text.Rune result) => throw null; - public bool TryEncodeToUtf16(System.Span destination, out int charsWritten) => throw null; - public bool TryEncodeToUtf8(System.Span destination, out int bytesWritten) => throw null; - bool System.ISpanFormattable.TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; - public static bool TryGetRuneAt(string input, int index, out System.Text.Rune value) => throw null; - public int Utf16SequenceLength { get => throw null; } - public int Utf8SequenceLength { get => throw null; } - public int Value { get => throw null; } - public static explicit operator System.Text.Rune(System.Char ch) => throw null; - public static explicit operator System.Text.Rune(int value) => throw null; - public static explicit operator System.Text.Rune(System.UInt32 value) => throw null; - } - - public class StringBuilder : System.Runtime.Serialization.ISerializable - { - public struct AppendInterpolatedStringHandler - { - public void AppendFormatted(System.ReadOnlySpan value) => throw null; - public void AppendFormatted(System.ReadOnlySpan value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(object value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(string value) => throw null; - public void AppendFormatted(string value, int alignment = default(int), string format = default(string)) => throw null; - public void AppendFormatted(T value) => throw null; - public void AppendFormatted(T value, int alignment) => throw null; - public void AppendFormatted(T value, int alignment, string format) => throw null; - public void AppendFormatted(T value, string format) => throw null; - // Stub generator skipped constructor - public AppendInterpolatedStringHandler(int literalLength, int formattedCount, System.Text.StringBuilder stringBuilder) => throw null; - public AppendInterpolatedStringHandler(int literalLength, int formattedCount, System.Text.StringBuilder stringBuilder, System.IFormatProvider provider) => throw null; - public void AppendLiteral(string value) => throw null; - } - - - public struct ChunkEnumerator - { - // Stub generator skipped constructor - public System.ReadOnlyMemory Current { get => throw null; } - public System.Text.StringBuilder.ChunkEnumerator GetEnumerator() => throw null; - public bool MoveNext() => throw null; - } - - - public System.Text.StringBuilder Append(System.Char[] value) => throw null; - public System.Text.StringBuilder Append(System.Char[] value, int startIndex, int charCount) => throw null; - public System.Text.StringBuilder Append(System.IFormatProvider provider, ref System.Text.StringBuilder.AppendInterpolatedStringHandler handler) => throw null; - public System.Text.StringBuilder Append(System.ReadOnlyMemory value) => throw null; - public System.Text.StringBuilder Append(System.ReadOnlySpan value) => throw null; - public System.Text.StringBuilder Append(System.Text.StringBuilder value) => throw null; - public System.Text.StringBuilder Append(System.Text.StringBuilder value, int startIndex, int count) => throw null; - public System.Text.StringBuilder Append(bool value) => throw null; - public System.Text.StringBuilder Append(System.Byte value) => throw null; - public System.Text.StringBuilder Append(System.Char value) => throw null; - unsafe public System.Text.StringBuilder Append(System.Char* value, int valueCount) => throw null; - public System.Text.StringBuilder Append(System.Char value, int repeatCount) => throw null; - public System.Text.StringBuilder Append(System.Decimal value) => throw null; - public System.Text.StringBuilder Append(double value) => throw null; - public System.Text.StringBuilder Append(float value) => throw null; - public System.Text.StringBuilder Append(int value) => throw null; - public System.Text.StringBuilder Append(System.Int64 value) => throw null; - public System.Text.StringBuilder Append(object value) => throw null; - public System.Text.StringBuilder Append(ref System.Text.StringBuilder.AppendInterpolatedStringHandler handler) => throw null; - public System.Text.StringBuilder Append(System.SByte value) => throw null; - public System.Text.StringBuilder Append(System.Int16 value) => throw null; - public System.Text.StringBuilder Append(string value) => throw null; - public System.Text.StringBuilder Append(string value, int startIndex, int count) => throw null; - public System.Text.StringBuilder Append(System.UInt32 value) => throw null; - public System.Text.StringBuilder Append(System.UInt64 value) => throw null; - public System.Text.StringBuilder Append(System.UInt16 value) => throw null; - public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, object arg0) => throw null; - public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, object arg0, object arg1) => throw null; - public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, object arg0, object arg1, object arg2) => throw null; - public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, params object[] args) => throw null; - public System.Text.StringBuilder AppendFormat(string format, object arg0) => throw null; - public System.Text.StringBuilder AppendFormat(string format, object arg0, object arg1) => throw null; - public System.Text.StringBuilder AppendFormat(string format, object arg0, object arg1, object arg2) => throw null; - public System.Text.StringBuilder AppendFormat(string format, params object[] args) => throw null; - public System.Text.StringBuilder AppendJoin(System.Char separator, params object[] values) => throw null; - public System.Text.StringBuilder AppendJoin(System.Char separator, params string[] values) => throw null; - public System.Text.StringBuilder AppendJoin(string separator, params object[] values) => throw null; - public System.Text.StringBuilder AppendJoin(string separator, params string[] values) => throw null; - public System.Text.StringBuilder AppendJoin(System.Char separator, System.Collections.Generic.IEnumerable values) => throw null; - public System.Text.StringBuilder AppendJoin(string separator, System.Collections.Generic.IEnumerable values) => throw null; - public System.Text.StringBuilder AppendLine() => throw null; - public System.Text.StringBuilder AppendLine(System.IFormatProvider provider, ref System.Text.StringBuilder.AppendInterpolatedStringHandler handler) => throw null; - public System.Text.StringBuilder AppendLine(ref System.Text.StringBuilder.AppendInterpolatedStringHandler handler) => throw null; - public System.Text.StringBuilder AppendLine(string value) => throw null; - public int Capacity { get => throw null; set => throw null; } - [System.Runtime.CompilerServices.IndexerName("Chars")] - public System.Char this[int index] { get => throw null; set => throw null; } - public System.Text.StringBuilder Clear() => throw null; - public void CopyTo(int sourceIndex, System.Char[] destination, int destinationIndex, int count) => throw null; - public void CopyTo(int sourceIndex, System.Span destination, int count) => throw null; - public int EnsureCapacity(int capacity) => throw null; - public bool Equals(System.ReadOnlySpan span) => throw null; - public bool Equals(System.Text.StringBuilder sb) => throw null; - public System.Text.StringBuilder.ChunkEnumerator GetChunks() => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Text.StringBuilder Insert(int index, System.Char[] value) => throw null; - public System.Text.StringBuilder Insert(int index, System.Char[] value, int startIndex, int charCount) => throw null; - public System.Text.StringBuilder Insert(int index, System.ReadOnlySpan value) => throw null; - public System.Text.StringBuilder Insert(int index, bool value) => throw null; - public System.Text.StringBuilder Insert(int index, System.Byte value) => throw null; - public System.Text.StringBuilder Insert(int index, System.Char value) => throw null; - public System.Text.StringBuilder Insert(int index, System.Decimal value) => throw null; - public System.Text.StringBuilder Insert(int index, double value) => throw null; - public System.Text.StringBuilder Insert(int index, float value) => throw null; - public System.Text.StringBuilder Insert(int index, int value) => throw null; - public System.Text.StringBuilder Insert(int index, System.Int64 value) => throw null; - public System.Text.StringBuilder Insert(int index, object value) => throw null; - public System.Text.StringBuilder Insert(int index, System.SByte value) => throw null; - public System.Text.StringBuilder Insert(int index, System.Int16 value) => throw null; - public System.Text.StringBuilder Insert(int index, string value) => throw null; - public System.Text.StringBuilder Insert(int index, string value, int count) => throw null; - public System.Text.StringBuilder Insert(int index, System.UInt32 value) => throw null; - public System.Text.StringBuilder Insert(int index, System.UInt64 value) => throw null; - public System.Text.StringBuilder Insert(int index, System.UInt16 value) => throw null; - public int Length { get => throw null; set => throw null; } - public int MaxCapacity { get => throw null; } - public System.Text.StringBuilder Remove(int startIndex, int length) => throw null; - public System.Text.StringBuilder Replace(System.Char oldChar, System.Char newChar) => throw null; - public System.Text.StringBuilder Replace(System.Char oldChar, System.Char newChar, int startIndex, int count) => throw null; - public System.Text.StringBuilder Replace(string oldValue, string newValue) => throw null; - public System.Text.StringBuilder Replace(string oldValue, string newValue, int startIndex, int count) => throw null; - public StringBuilder() => throw null; - public StringBuilder(int capacity) => throw null; - public StringBuilder(int capacity, int maxCapacity) => throw null; - public StringBuilder(string value) => throw null; - public StringBuilder(string value, int capacity) => throw null; - public StringBuilder(string value, int startIndex, int length, int capacity) => throw null; - public override string ToString() => throw null; - public string ToString(int startIndex, int length) => throw null; - } - - public struct StringRuneEnumerator : System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerable, System.Collections.IEnumerator, System.IDisposable - { - public System.Text.Rune Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - void System.IDisposable.Dispose() => throw null; - public System.Text.StringRuneEnumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - // Stub generator skipped constructor - } - - namespace Unicode - { - public static class Utf8 - { - public static System.Buffers.OperationStatus FromUtf16(System.ReadOnlySpan source, System.Span destination, out int charsRead, out int bytesWritten, bool replaceInvalidSequences = default(bool), bool isFinalBlock = default(bool)) => throw null; - public static System.Buffers.OperationStatus ToUtf16(System.ReadOnlySpan source, System.Span destination, out int bytesRead, out int charsWritten, bool replaceInvalidSequences = default(bool), bool isFinalBlock = default(bool)) => throw null; - } - - } - } - namespace Threading - { - public struct CancellationToken : System.IEquatable - { - public static bool operator !=(System.Threading.CancellationToken left, System.Threading.CancellationToken right) => throw null; - public static bool operator ==(System.Threading.CancellationToken left, System.Threading.CancellationToken right) => throw null; - public bool CanBeCanceled { get => throw null; } - // Stub generator skipped constructor - public CancellationToken(bool canceled) => throw null; - public bool Equals(System.Threading.CancellationToken other) => throw null; - public override bool Equals(object other) => throw null; - public override int GetHashCode() => throw null; - public bool IsCancellationRequested { get => throw null; } - public static System.Threading.CancellationToken None { get => throw null; } - public System.Threading.CancellationTokenRegistration Register(System.Action callback) => throw null; - public System.Threading.CancellationTokenRegistration Register(System.Action callback, bool useSynchronizationContext) => throw null; - public System.Threading.CancellationTokenRegistration Register(System.Action callback, object state) => throw null; - public System.Threading.CancellationTokenRegistration Register(System.Action callback, object state) => throw null; - public System.Threading.CancellationTokenRegistration Register(System.Action callback, object state, bool useSynchronizationContext) => throw null; - public void ThrowIfCancellationRequested() => throw null; - public System.Threading.CancellationTokenRegistration UnsafeRegister(System.Action callback, object state) => throw null; - public System.Threading.CancellationTokenRegistration UnsafeRegister(System.Action callback, object state) => throw null; - public System.Threading.WaitHandle WaitHandle { get => throw null; } - } - - public struct CancellationTokenRegistration : System.IAsyncDisposable, System.IDisposable, System.IEquatable - { - public static bool operator !=(System.Threading.CancellationTokenRegistration left, System.Threading.CancellationTokenRegistration right) => throw null; - public static bool operator ==(System.Threading.CancellationTokenRegistration left, System.Threading.CancellationTokenRegistration right) => throw null; - // Stub generator skipped constructor - public void Dispose() => throw null; - public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public bool Equals(System.Threading.CancellationTokenRegistration other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public System.Threading.CancellationToken Token { get => throw null; } - public bool Unregister() => throw null; - } - - public class CancellationTokenSource : System.IDisposable - { - public void Cancel() => throw null; - public void Cancel(bool throwOnFirstException) => throw null; - public void CancelAfter(System.TimeSpan delay) => throw null; - public void CancelAfter(int millisecondsDelay) => throw null; - public CancellationTokenSource() => throw null; - public CancellationTokenSource(System.TimeSpan delay) => throw null; - public CancellationTokenSource(int millisecondsDelay) => throw null; - public static System.Threading.CancellationTokenSource CreateLinkedTokenSource(System.Threading.CancellationToken token) => throw null; - public static System.Threading.CancellationTokenSource CreateLinkedTokenSource(System.Threading.CancellationToken token1, System.Threading.CancellationToken token2) => throw null; - public static System.Threading.CancellationTokenSource CreateLinkedTokenSource(params System.Threading.CancellationToken[] tokens) => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public bool IsCancellationRequested { get => throw null; } - public System.Threading.CancellationToken Token { get => throw null; } - public bool TryReset() => throw null; - } - - public enum LazyThreadSafetyMode : int - { - ExecutionAndPublication = 2, - None = 0, - PublicationOnly = 1, - } - - public class PeriodicTimer : System.IDisposable - { - public void Dispose() => throw null; - public PeriodicTimer(System.TimeSpan period) => throw null; - public System.Threading.Tasks.ValueTask WaitForNextTickAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - // ERR: Stub generator didn't handle member: ~PeriodicTimer - } - - public static class Timeout - { - public const int Infinite = default; - public static System.TimeSpan InfiniteTimeSpan; - } - - public class Timer : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable - { - public static System.Int64 ActiveCount { get => throw null; } - public bool Change(System.TimeSpan dueTime, System.TimeSpan period) => throw null; - public bool Change(int dueTime, int period) => throw null; - public bool Change(System.Int64 dueTime, System.Int64 period) => throw null; - public bool Change(System.UInt32 dueTime, System.UInt32 period) => throw null; - public void Dispose() => throw null; - public bool Dispose(System.Threading.WaitHandle notifyObject) => throw null; - public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public Timer(System.Threading.TimerCallback callback) => throw null; - public Timer(System.Threading.TimerCallback callback, object state, System.TimeSpan dueTime, System.TimeSpan period) => throw null; - public Timer(System.Threading.TimerCallback callback, object state, int dueTime, int period) => throw null; - public Timer(System.Threading.TimerCallback callback, object state, System.Int64 dueTime, System.Int64 period) => throw null; - public Timer(System.Threading.TimerCallback callback, object state, System.UInt32 dueTime, System.UInt32 period) => throw null; - } - - public delegate void TimerCallback(object state); - - public abstract class WaitHandle : System.MarshalByRefObject, System.IDisposable - { - public virtual void Close() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool explicitDisposing) => throw null; - public virtual System.IntPtr Handle { get => throw null; set => throw null; } - protected static System.IntPtr InvalidHandle; - public Microsoft.Win32.SafeHandles.SafeWaitHandle SafeWaitHandle { get => throw null; set => throw null; } - public static bool SignalAndWait(System.Threading.WaitHandle toSignal, System.Threading.WaitHandle toWaitOn) => throw null; - public static bool SignalAndWait(System.Threading.WaitHandle toSignal, System.Threading.WaitHandle toWaitOn, System.TimeSpan timeout, bool exitContext) => throw null; - public static bool SignalAndWait(System.Threading.WaitHandle toSignal, System.Threading.WaitHandle toWaitOn, int millisecondsTimeout, bool exitContext) => throw null; - public static bool WaitAll(System.Threading.WaitHandle[] waitHandles) => throw null; - public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout) => throw null; - public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout, bool exitContext) => throw null; - public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout) => throw null; - public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext) => throw null; - public static int WaitAny(System.Threading.WaitHandle[] waitHandles) => throw null; - public static int WaitAny(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout) => throw null; - public static int WaitAny(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout, bool exitContext) => throw null; - public static int WaitAny(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout) => throw null; - public static int WaitAny(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext) => throw null; - protected WaitHandle() => throw null; - public virtual bool WaitOne() => throw null; - public virtual bool WaitOne(System.TimeSpan timeout) => throw null; - public virtual bool WaitOne(System.TimeSpan timeout, bool exitContext) => throw null; - public virtual bool WaitOne(int millisecondsTimeout) => throw null; - public virtual bool WaitOne(int millisecondsTimeout, bool exitContext) => throw null; - public const int WaitTimeout = default; - } - - public static class WaitHandleExtensions - { - public static Microsoft.Win32.SafeHandles.SafeWaitHandle GetSafeWaitHandle(this System.Threading.WaitHandle waitHandle) => throw null; - public static void SetSafeWaitHandle(this System.Threading.WaitHandle waitHandle, Microsoft.Win32.SafeHandles.SafeWaitHandle value) => throw null; - } - - namespace Tasks - { - public class ConcurrentExclusiveSchedulerPair - { - public void Complete() => throw null; - public System.Threading.Tasks.Task Completion { get => throw null; } - public ConcurrentExclusiveSchedulerPair() => throw null; - public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler) => throw null; - public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler, int maxConcurrencyLevel) => throw null; - public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler, int maxConcurrencyLevel, int maxItemsPerTask) => throw null; - public System.Threading.Tasks.TaskScheduler ConcurrentScheduler { get => throw null; } - public System.Threading.Tasks.TaskScheduler ExclusiveScheduler { get => throw null; } - } - - public class Task : System.IAsyncResult, System.IDisposable - { - public object AsyncState { get => throw null; } - System.Threading.WaitHandle System.IAsyncResult.AsyncWaitHandle { get => throw null; } - bool System.IAsyncResult.CompletedSynchronously { get => throw null; } - public static System.Threading.Tasks.Task CompletedTask { get => throw null; } - public System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, object state) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, object state, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, object state, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action continuationAction, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, object state) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, object state, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func continuationFunction, object state, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.TaskCreationOptions CreationOptions { get => throw null; } - public static int? CurrentId { get => throw null; } - public static System.Threading.Tasks.Task Delay(System.TimeSpan delay) => throw null; - public static System.Threading.Tasks.Task Delay(System.TimeSpan delay, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task Delay(int millisecondsDelay) => throw null; - public static System.Threading.Tasks.Task Delay(int millisecondsDelay, System.Threading.CancellationToken cancellationToken) => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public System.AggregateException Exception { get => throw null; } - public static System.Threading.Tasks.TaskFactory Factory { get => throw null; } - public static System.Threading.Tasks.Task FromCanceled(System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task FromCanceled(System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task FromException(System.Exception exception) => throw null; - public static System.Threading.Tasks.Task FromException(System.Exception exception) => throw null; - public static System.Threading.Tasks.Task FromResult(TResult result) => throw null; - public System.Runtime.CompilerServices.TaskAwaiter GetAwaiter() => throw null; - public int Id { get => throw null; } - public bool IsCanceled { get => throw null; } - public bool IsCompleted { get => throw null; } - public bool IsCompletedSuccessfully { get => throw null; } - public bool IsFaulted { get => throw null; } - public static System.Threading.Tasks.Task Run(System.Action action) => throw null; - public static System.Threading.Tasks.Task Run(System.Action action, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task Run(System.Func function) => throw null; - public static System.Threading.Tasks.Task Run(System.Func function, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task Run(System.Func function) => throw null; - public static System.Threading.Tasks.Task Run(System.Func function, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task Run(System.Func> function) => throw null; - public static System.Threading.Tasks.Task Run(System.Func> function, System.Threading.CancellationToken cancellationToken) => throw null; - public void RunSynchronously() => throw null; - public void RunSynchronously(System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public void Start() => throw null; - public void Start(System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.TaskStatus Status { get => throw null; } - public Task(System.Action action) => throw null; - public Task(System.Action action, System.Threading.CancellationToken cancellationToken) => throw null; - public Task(System.Action action, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public Task(System.Action action, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public Task(System.Action action, object state) => throw null; - public Task(System.Action action, object state, System.Threading.CancellationToken cancellationToken) => throw null; - public Task(System.Action action, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public Task(System.Action action, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public void Wait() => throw null; - public void Wait(System.Threading.CancellationToken cancellationToken) => throw null; - public bool Wait(System.TimeSpan timeout) => throw null; - public bool Wait(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; - public bool Wait(int millisecondsTimeout) => throw null; - public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; - public static void WaitAll(System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken) => throw null; - public static bool WaitAll(System.Threading.Tasks.Task[] tasks, System.TimeSpan timeout) => throw null; - public static bool WaitAll(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout) => throw null; - public static bool WaitAll(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; - public static void WaitAll(params System.Threading.Tasks.Task[] tasks) => throw null; - public static int WaitAny(System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken) => throw null; - public static int WaitAny(System.Threading.Tasks.Task[] tasks, System.TimeSpan timeout) => throw null; - public static int WaitAny(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout) => throw null; - public static int WaitAny(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; - public static int WaitAny(params System.Threading.Tasks.Task[] tasks) => throw null; - public System.Threading.Tasks.Task WaitAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task WaitAsync(System.TimeSpan timeout) => throw null; - public System.Threading.Tasks.Task WaitAsync(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task WhenAll(System.Collections.Generic.IEnumerable tasks) => throw null; - public static System.Threading.Tasks.Task WhenAll(params System.Threading.Tasks.Task[] tasks) => throw null; - public static System.Threading.Tasks.Task WhenAll(System.Collections.Generic.IEnumerable> tasks) => throw null; - public static System.Threading.Tasks.Task WhenAll(params System.Threading.Tasks.Task[] tasks) => throw null; - public static System.Threading.Tasks.Task WhenAny(System.Collections.Generic.IEnumerable tasks) => throw null; - public static System.Threading.Tasks.Task WhenAny(System.Threading.Tasks.Task task1, System.Threading.Tasks.Task task2) => throw null; - public static System.Threading.Tasks.Task WhenAny(params System.Threading.Tasks.Task[] tasks) => throw null; - public static System.Threading.Tasks.Task> WhenAny(System.Collections.Generic.IEnumerable> tasks) => throw null; - public static System.Threading.Tasks.Task> WhenAny(System.Threading.Tasks.Task task1, System.Threading.Tasks.Task task2) => throw null; - public static System.Threading.Tasks.Task> WhenAny(params System.Threading.Tasks.Task[] tasks) => throw null; - public static System.Runtime.CompilerServices.YieldAwaitable Yield() => throw null; - } - - public class Task : System.Threading.Tasks.Task - { - public System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action, object> continuationAction, object state) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action, object> continuationAction, object state, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action, object> continuationAction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action, object> continuationAction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action, object> continuationAction, object state, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action> continuationAction) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action> continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Action> continuationAction, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func, TNewResult> continuationFunction) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func, TNewResult> continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func, TNewResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func, TNewResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func, TNewResult> continuationFunction, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func, object, TNewResult> continuationFunction, object state) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func, object, TNewResult> continuationFunction, object state, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func, object, TNewResult> continuationFunction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func, object, TNewResult> continuationFunction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWith(System.Func, object, TNewResult> continuationFunction, object state, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public static System.Threading.Tasks.TaskFactory Factory { get => throw null; } - public System.Runtime.CompilerServices.TaskAwaiter GetAwaiter() => throw null; - public TResult Result { get => throw null; } - public Task(System.Func function) : base(default(System.Action)) => throw null; - public Task(System.Func function, System.Threading.CancellationToken cancellationToken) : base(default(System.Action)) => throw null; - public Task(System.Func function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) : base(default(System.Action)) => throw null; - public Task(System.Func function, System.Threading.Tasks.TaskCreationOptions creationOptions) : base(default(System.Action)) => throw null; - public Task(System.Func function, object state) : base(default(System.Action)) => throw null; - public Task(System.Func function, object state, System.Threading.CancellationToken cancellationToken) : base(default(System.Action)) => throw null; - public Task(System.Func function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) : base(default(System.Action)) => throw null; - public Task(System.Func function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) : base(default(System.Action)) => throw null; - public System.Threading.Tasks.Task WaitAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task WaitAsync(System.TimeSpan timeout) => throw null; - public System.Threading.Tasks.Task WaitAsync(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; - } - - public static class TaskAsyncEnumerableExtensions - { - public static System.Runtime.CompilerServices.ConfiguredAsyncDisposable ConfigureAwait(this System.IAsyncDisposable source, bool continueOnCapturedContext) => throw null; - public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable ConfigureAwait(this System.Collections.Generic.IAsyncEnumerable source, bool continueOnCapturedContext) => throw null; - public static System.Collections.Generic.IEnumerable ToBlockingEnumerable(this System.Collections.Generic.IAsyncEnumerable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable WithCancellation(this System.Collections.Generic.IAsyncEnumerable source, System.Threading.CancellationToken cancellationToken) => throw null; - } - - public class TaskCanceledException : System.OperationCanceledException - { - public System.Threading.Tasks.Task Task { get => throw null; } - public TaskCanceledException() => throw null; - protected TaskCanceledException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public TaskCanceledException(System.Threading.Tasks.Task task) => throw null; - public TaskCanceledException(string message) => throw null; - public TaskCanceledException(string message, System.Exception innerException) => throw null; - public TaskCanceledException(string message, System.Exception innerException, System.Threading.CancellationToken token) => throw null; - } - - public class TaskCompletionSource - { - public void SetCanceled() => throw null; - public void SetCanceled(System.Threading.CancellationToken cancellationToken) => throw null; - public void SetException(System.Exception exception) => throw null; - public void SetException(System.Collections.Generic.IEnumerable exceptions) => throw null; - public void SetResult() => throw null; - public System.Threading.Tasks.Task Task { get => throw null; } - public TaskCompletionSource() => throw null; - public TaskCompletionSource(System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public TaskCompletionSource(object state) => throw null; - public TaskCompletionSource(object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public bool TrySetCanceled() => throw null; - public bool TrySetCanceled(System.Threading.CancellationToken cancellationToken) => throw null; - public bool TrySetException(System.Exception exception) => throw null; - public bool TrySetException(System.Collections.Generic.IEnumerable exceptions) => throw null; - public bool TrySetResult() => throw null; - } - - public class TaskCompletionSource - { - public void SetCanceled() => throw null; - public void SetCanceled(System.Threading.CancellationToken cancellationToken) => throw null; - public void SetException(System.Exception exception) => throw null; - public void SetException(System.Collections.Generic.IEnumerable exceptions) => throw null; - public void SetResult(TResult result) => throw null; - public System.Threading.Tasks.Task Task { get => throw null; } - public TaskCompletionSource() => throw null; - public TaskCompletionSource(System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public TaskCompletionSource(object state) => throw null; - public TaskCompletionSource(object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public bool TrySetCanceled() => throw null; - public bool TrySetCanceled(System.Threading.CancellationToken cancellationToken) => throw null; - public bool TrySetException(System.Exception exception) => throw null; - public bool TrySetException(System.Collections.Generic.IEnumerable exceptions) => throw null; - public bool TrySetResult(TResult result) => throw null; - } - - [System.Flags] - public enum TaskContinuationOptions : int - { - AttachedToParent = 4, - DenyChildAttach = 8, - ExecuteSynchronously = 524288, - HideScheduler = 16, - LazyCancellation = 32, - LongRunning = 2, - None = 0, - NotOnCanceled = 262144, - NotOnFaulted = 131072, - NotOnRanToCompletion = 65536, - OnlyOnCanceled = 196608, - OnlyOnFaulted = 327680, - OnlyOnRanToCompletion = 393216, - PreferFairness = 1, - RunContinuationsAsynchronously = 64, - } - - [System.Flags] - public enum TaskCreationOptions : int - { - AttachedToParent = 4, - DenyChildAttach = 8, - HideScheduler = 16, - LongRunning = 2, - None = 0, - PreferFairness = 1, - RunContinuationsAsynchronously = 64, - } - - public static class TaskExtensions - { - public static System.Threading.Tasks.Task Unwrap(this System.Threading.Tasks.Task task) => throw null; - public static System.Threading.Tasks.Task Unwrap(this System.Threading.Tasks.Task> task) => throw null; - } - - public class TaskFactory - { - public System.Threading.CancellationToken CancellationToken { get => throw null; } - public System.Threading.Tasks.TaskContinuationOptions ContinuationOptions { get => throw null; } - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action continuationAction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action[]> continuationAction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action[]> continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action[]> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action[]> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action continuationAction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action> continuationAction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action> continuationAction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.TaskCreationOptions CreationOptions { get => throw null; } - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Action endMethod) => throw null; - public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Action endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Action endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, TArg2 arg2, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, TArg2 arg2, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Action endMethod, TArg1 arg1, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod) => throw null; - public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.TaskScheduler Scheduler { get => throw null; } - public System.Threading.Tasks.Task StartNew(System.Action action) => throw null; - public System.Threading.Tasks.Task StartNew(System.Action action, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task StartNew(System.Action action, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task StartNew(System.Action action, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task StartNew(System.Action action, object state) => throw null; - public System.Threading.Tasks.Task StartNew(System.Action action, object state, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task StartNew(System.Action action, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task StartNew(System.Action action, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, object state) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public TaskFactory() => throw null; - public TaskFactory(System.Threading.CancellationToken cancellationToken) => throw null; - public TaskFactory(System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public TaskFactory(System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public TaskFactory(System.Threading.Tasks.TaskScheduler scheduler) => throw null; - } - - public class TaskFactory - { - public System.Threading.CancellationToken CancellationToken { get => throw null; } - public System.Threading.Tasks.TaskContinuationOptions ContinuationOptions { get => throw null; } - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func[], TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func, TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public System.Threading.Tasks.TaskCreationOptions CreationOptions { get => throw null; } - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod) => throw null; - public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Func endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, TArg2 arg2, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, object state) => throw null; - public System.Threading.Tasks.Task FromAsync(System.Func beginMethod, System.Func endMethod, TArg1 arg1, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.TaskScheduler Scheduler { get => throw null; } - public System.Threading.Tasks.Task StartNew(System.Func function) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, object state) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public System.Threading.Tasks.Task StartNew(System.Func function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) => throw null; - public TaskFactory() => throw null; - public TaskFactory(System.Threading.CancellationToken cancellationToken) => throw null; - public TaskFactory(System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) => throw null; - public TaskFactory(System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public TaskFactory(System.Threading.Tasks.TaskScheduler scheduler) => throw null; - } - - public abstract class TaskScheduler - { - public static System.Threading.Tasks.TaskScheduler Current { get => throw null; } - public static System.Threading.Tasks.TaskScheduler Default { get => throw null; } - public static System.Threading.Tasks.TaskScheduler FromCurrentSynchronizationContext() => throw null; - protected abstract System.Collections.Generic.IEnumerable GetScheduledTasks(); - public int Id { get => throw null; } - public virtual int MaximumConcurrencyLevel { get => throw null; } - protected internal abstract void QueueTask(System.Threading.Tasks.Task task); - protected TaskScheduler() => throw null; - protected internal virtual bool TryDequeue(System.Threading.Tasks.Task task) => throw null; - protected bool TryExecuteTask(System.Threading.Tasks.Task task) => throw null; - protected abstract bool TryExecuteTaskInline(System.Threading.Tasks.Task task, bool taskWasPreviouslyQueued); - public static event System.EventHandler UnobservedTaskException; - } - - public class TaskSchedulerException : System.Exception - { - public TaskSchedulerException() => throw null; - public TaskSchedulerException(System.Exception innerException) => throw null; - protected TaskSchedulerException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public TaskSchedulerException(string message) => throw null; - public TaskSchedulerException(string message, System.Exception innerException) => throw null; - } - - public enum TaskStatus : int - { - Canceled = 6, - Created = 0, - Faulted = 7, - RanToCompletion = 5, - Running = 3, - WaitingForActivation = 1, - WaitingForChildrenToComplete = 4, - WaitingToRun = 2, - } - - public class UnobservedTaskExceptionEventArgs : System.EventArgs - { - public System.AggregateException Exception { get => throw null; } - public bool Observed { get => throw null; } - public void SetObserved() => throw null; - public UnobservedTaskExceptionEventArgs(System.AggregateException exception) => throw null; - } - - public struct ValueTask : System.IEquatable - { - public static bool operator !=(System.Threading.Tasks.ValueTask left, System.Threading.Tasks.ValueTask right) => throw null; - public static bool operator ==(System.Threading.Tasks.ValueTask left, System.Threading.Tasks.ValueTask right) => throw null; - public System.Threading.Tasks.Task AsTask() => throw null; - public static System.Threading.Tasks.ValueTask CompletedTask { get => throw null; } - public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) => throw null; - public bool Equals(System.Threading.Tasks.ValueTask other) => throw null; - public override bool Equals(object obj) => throw null; - public static System.Threading.Tasks.ValueTask FromCanceled(System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.ValueTask FromCanceled(System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.ValueTask FromException(System.Exception exception) => throw null; - public static System.Threading.Tasks.ValueTask FromException(System.Exception exception) => throw null; - public static System.Threading.Tasks.ValueTask FromResult(TResult result) => throw null; - public System.Runtime.CompilerServices.ValueTaskAwaiter GetAwaiter() => throw null; - public override int GetHashCode() => throw null; - public bool IsCanceled { get => throw null; } - public bool IsCompleted { get => throw null; } - public bool IsCompletedSuccessfully { get => throw null; } - public bool IsFaulted { get => throw null; } - public System.Threading.Tasks.ValueTask Preserve() => throw null; - // Stub generator skipped constructor - public ValueTask(System.Threading.Tasks.Sources.IValueTaskSource source, System.Int16 token) => throw null; - public ValueTask(System.Threading.Tasks.Task task) => throw null; - } - - public struct ValueTask : System.IEquatable> - { - public static bool operator !=(System.Threading.Tasks.ValueTask left, System.Threading.Tasks.ValueTask right) => throw null; - public static bool operator ==(System.Threading.Tasks.ValueTask left, System.Threading.Tasks.ValueTask right) => throw null; - public System.Threading.Tasks.Task AsTask() => throw null; - public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) => throw null; - public bool Equals(System.Threading.Tasks.ValueTask other) => throw null; - public override bool Equals(object obj) => throw null; - public System.Runtime.CompilerServices.ValueTaskAwaiter GetAwaiter() => throw null; - public override int GetHashCode() => throw null; - public bool IsCanceled { get => throw null; } - public bool IsCompleted { get => throw null; } - public bool IsCompletedSuccessfully { get => throw null; } - public bool IsFaulted { get => throw null; } - public System.Threading.Tasks.ValueTask Preserve() => throw null; - public TResult Result { get => throw null; } - public override string ToString() => throw null; - // Stub generator skipped constructor - public ValueTask(System.Threading.Tasks.Sources.IValueTaskSource source, System.Int16 token) => throw null; - public ValueTask(TResult result) => throw null; - public ValueTask(System.Threading.Tasks.Task task) => throw null; - } - - namespace Sources - { - public interface IValueTaskSource - { - void GetResult(System.Int16 token); - System.Threading.Tasks.Sources.ValueTaskSourceStatus GetStatus(System.Int16 token); - void OnCompleted(System.Action continuation, object state, System.Int16 token, System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags flags); - } - - public interface IValueTaskSource - { - TResult GetResult(System.Int16 token); - System.Threading.Tasks.Sources.ValueTaskSourceStatus GetStatus(System.Int16 token); - void OnCompleted(System.Action continuation, object state, System.Int16 token, System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags flags); - } - - public struct ManualResetValueTaskSourceCore - { - public TResult GetResult(System.Int16 token) => throw null; - public System.Threading.Tasks.Sources.ValueTaskSourceStatus GetStatus(System.Int16 token) => throw null; - // Stub generator skipped constructor - public void OnCompleted(System.Action continuation, object state, System.Int16 token, System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags flags) => throw null; - public void Reset() => throw null; - public bool RunContinuationsAsynchronously { get => throw null; set => throw null; } - public void SetException(System.Exception error) => throw null; - public void SetResult(TResult result) => throw null; - public System.Int16 Version { get => throw null; } - } - - [System.Flags] - public enum ValueTaskSourceOnCompletedFlags : int - { - FlowExecutionContext = 2, - None = 0, - UseSchedulingContext = 1, - } - - public enum ValueTaskSourceStatus : int - { - Canceled = 3, - Faulted = 2, - Pending = 0, - Succeeded = 1, - } - - } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs index 3eb413e4276..25058be5cc5 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Security.AccessControl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Security @@ -8,46 +7,41 @@ namespace System namespace AccessControl { [System.Flags] - public enum AccessControlActions : int + public enum AccessControlActions { - Change = 2, None = 0, View = 1, + Change = 2, } - - public enum AccessControlModification : int + public enum AccessControlModification { Add = 0, + Set = 1, + Reset = 2, Remove = 3, RemoveAll = 4, RemoveSpecific = 5, - Reset = 2, - Set = 1, } - [System.Flags] - public enum AccessControlSections : int + public enum AccessControlSections { - Access = 2, - All = 15, - Audit = 1, - Group = 8, None = 0, + Audit = 1, + Access = 2, Owner = 4, + Group = 8, + All = 15, } - - public enum AccessControlType : int + public enum AccessControlType { Allow = 0, Deny = 1, } - public abstract class AccessRule : System.Security.AccessControl.AuthorizationRule { public System.Security.AccessControl.AccessControlType AccessControlType { get => throw null; } protected AccessRule(System.Security.Principal.IdentityReference identity, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags)) => throw null; } - public class AccessRule : System.Security.AccessControl.AccessRule where T : struct { public AccessRule(System.Security.Principal.IdentityReference identity, T rights, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; @@ -56,74 +50,67 @@ namespace System public AccessRule(string identity, T rights, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; public T Rights { get => throw null; } } - - public class AceEnumerator : System.Collections.IEnumerator + public sealed class AceEnumerator : System.Collections.IEnumerator { public System.Security.AccessControl.GenericAce Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public bool MoveNext() => throw null; public void Reset() => throw null; } - [System.Flags] public enum AceFlags : byte { - AuditFlags = 192, + None = 0, + ObjectInherit = 1, ContainerInherit = 2, - FailedAccess = 128, + NoPropagateInherit = 4, InheritOnly = 8, InheritanceFlags = 15, Inherited = 16, - NoPropagateInherit = 4, - None = 0, - ObjectInherit = 1, SuccessfulAccess = 64, + FailedAccess = 128, + AuditFlags = 192, } - - public enum AceQualifier : int + public enum AceQualifier { AccessAllowed = 0, AccessDenied = 1, - SystemAlarm = 3, SystemAudit = 2, + SystemAlarm = 3, } - public enum AceType : byte { AccessAllowed = 0, - AccessAllowedCallback = 9, - AccessAllowedCallbackObject = 11, + AccessDenied = 1, + SystemAudit = 2, + SystemAlarm = 3, AccessAllowedCompound = 4, AccessAllowedObject = 5, - AccessDenied = 1, - AccessDeniedCallback = 10, - AccessDeniedCallbackObject = 12, AccessDeniedObject = 6, - MaxDefinedAceType = 16, - SystemAlarm = 3, - SystemAlarmCallback = 14, - SystemAlarmCallbackObject = 16, - SystemAlarmObject = 8, - SystemAudit = 2, - SystemAuditCallback = 13, - SystemAuditCallbackObject = 15, SystemAuditObject = 7, + SystemAlarmObject = 8, + AccessAllowedCallback = 9, + AccessDeniedCallback = 10, + AccessAllowedCallbackObject = 11, + AccessDeniedCallbackObject = 12, + SystemAuditCallback = 13, + SystemAlarmCallback = 14, + SystemAuditCallbackObject = 15, + MaxDefinedAceType = 16, + SystemAlarmCallbackObject = 16, } - [System.Flags] - public enum AuditFlags : int + public enum AuditFlags { - Failure = 2, None = 0, Success = 1, + Failure = 2, } - public abstract class AuditRule : System.Security.AccessControl.AuthorizationRule { public System.Security.AccessControl.AuditFlags AuditFlags { get => throw null; } protected AuditRule(System.Security.Principal.IdentityReference identity, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags auditFlags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags)) => throw null; } - public class AuditRule : System.Security.AccessControl.AuditRule where T : struct { public AuditRule(System.Security.Principal.IdentityReference identity, T rights, System.Security.AccessControl.AuditFlags flags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AuditFlags)) => throw null; @@ -132,48 +119,42 @@ namespace System public AuditRule(string identity, T rights, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AuditFlags)) => throw null; public T Rights { get => throw null; } } - public abstract class AuthorizationRule { - protected internal int AccessMask { get => throw null; } - protected internal AuthorizationRule(System.Security.Principal.IdentityReference identity, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags) => throw null; + protected int AccessMask { get => throw null; } + protected AuthorizationRule(System.Security.Principal.IdentityReference identity, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags) => throw null; public System.Security.Principal.IdentityReference IdentityReference { get => throw null; } public System.Security.AccessControl.InheritanceFlags InheritanceFlags { get => throw null; } public bool IsInherited { get => throw null; } public System.Security.AccessControl.PropagationFlags PropagationFlags { get => throw null; } } - - public class AuthorizationRuleCollection : System.Collections.ReadOnlyCollectionBase + public sealed class AuthorizationRuleCollection : System.Collections.ReadOnlyCollectionBase { public void AddRule(System.Security.AccessControl.AuthorizationRule rule) => throw null; - public AuthorizationRuleCollection() => throw null; public void CopyTo(System.Security.AccessControl.AuthorizationRule[] rules, int index) => throw null; + public AuthorizationRuleCollection() => throw null; public System.Security.AccessControl.AuthorizationRule this[int index] { get => throw null; } } - - public class CommonAce : System.Security.AccessControl.QualifiedAce + public sealed class CommonAce : System.Security.AccessControl.QualifiedAce { public override int BinaryLength { get => throw null; } - public CommonAce(System.Security.AccessControl.AceFlags flags, System.Security.AccessControl.AceQualifier qualifier, int accessMask, System.Security.Principal.SecurityIdentifier sid, bool isCallback, System.Byte[] opaque) => throw null; - public override void GetBinaryForm(System.Byte[] binaryForm, int offset) => throw null; + public CommonAce(System.Security.AccessControl.AceFlags flags, System.Security.AccessControl.AceQualifier qualifier, int accessMask, System.Security.Principal.SecurityIdentifier sid, bool isCallback, byte[] opaque) => throw null; + public override void GetBinaryForm(byte[] binaryForm, int offset) => throw null; public static int MaxOpaqueLength(bool isCallback) => throw null; } - public abstract class CommonAcl : System.Security.AccessControl.GenericAcl { - public override int BinaryLength { get => throw null; } - internal CommonAcl() => throw null; - public override int Count { get => throw null; } - public override void GetBinaryForm(System.Byte[] binaryForm, int offset) => throw null; + public override sealed int BinaryLength { get => throw null; } + public override sealed int Count { get => throw null; } + public override sealed void GetBinaryForm(byte[] binaryForm, int offset) => throw null; public bool IsCanonical { get => throw null; } public bool IsContainer { get => throw null; } public bool IsDS { get => throw null; } - public override System.Security.AccessControl.GenericAce this[int index] { get => throw null; set => throw null; } public void Purge(System.Security.Principal.SecurityIdentifier sid) => throw null; public void RemoveInheritedAces() => throw null; - public override System.Byte Revision { get => throw null; } + public override sealed byte Revision { get => throw null; } + public override sealed System.Security.AccessControl.GenericAce this[int index] { get => throw null; set { } } } - public abstract class CommonObjectSecurity : System.Security.AccessControl.ObjectSecurity { protected void AddAccessRule(System.Security.AccessControl.AccessRule rule) => throw null; @@ -193,231 +174,212 @@ namespace System protected void SetAccessRule(System.Security.AccessControl.AccessRule rule) => throw null; protected void SetAuditRule(System.Security.AccessControl.AuditRule rule) => throw null; } - - public class CommonSecurityDescriptor : System.Security.AccessControl.GenericSecurityDescriptor + public sealed class CommonSecurityDescriptor : System.Security.AccessControl.GenericSecurityDescriptor { - public void AddDiscretionaryAcl(System.Byte revision, int trusted) => throw null; - public void AddSystemAcl(System.Byte revision, int trusted) => throw null; - public CommonSecurityDescriptor(bool isContainer, bool isDS, System.Byte[] binaryForm, int offset) => throw null; + public void AddDiscretionaryAcl(byte revision, int trusted) => throw null; + public void AddSystemAcl(byte revision, int trusted) => throw null; + public override System.Security.AccessControl.ControlFlags ControlFlags { get => throw null; } + public CommonSecurityDescriptor(bool isContainer, bool isDS, byte[] binaryForm, int offset) => throw null; public CommonSecurityDescriptor(bool isContainer, bool isDS, System.Security.AccessControl.ControlFlags flags, System.Security.Principal.SecurityIdentifier owner, System.Security.Principal.SecurityIdentifier group, System.Security.AccessControl.SystemAcl systemAcl, System.Security.AccessControl.DiscretionaryAcl discretionaryAcl) => throw null; public CommonSecurityDescriptor(bool isContainer, bool isDS, System.Security.AccessControl.RawSecurityDescriptor rawSecurityDescriptor) => throw null; public CommonSecurityDescriptor(bool isContainer, bool isDS, string sddlForm) => throw null; - public override System.Security.AccessControl.ControlFlags ControlFlags { get => throw null; } - public System.Security.AccessControl.DiscretionaryAcl DiscretionaryAcl { get => throw null; set => throw null; } - public override System.Security.Principal.SecurityIdentifier Group { get => throw null; set => throw null; } + public System.Security.AccessControl.DiscretionaryAcl DiscretionaryAcl { get => throw null; set { } } + public override System.Security.Principal.SecurityIdentifier Group { get => throw null; set { } } public bool IsContainer { get => throw null; } - public bool IsDS { get => throw null; } public bool IsDiscretionaryAclCanonical { get => throw null; } + public bool IsDS { get => throw null; } public bool IsSystemAclCanonical { get => throw null; } - public override System.Security.Principal.SecurityIdentifier Owner { get => throw null; set => throw null; } + public override System.Security.Principal.SecurityIdentifier Owner { get => throw null; set { } } public void PurgeAccessControl(System.Security.Principal.SecurityIdentifier sid) => throw null; public void PurgeAudit(System.Security.Principal.SecurityIdentifier sid) => throw null; public void SetDiscretionaryAclProtection(bool isProtected, bool preserveInheritance) => throw null; public void SetSystemAclProtection(bool isProtected, bool preserveInheritance) => throw null; - public System.Security.AccessControl.SystemAcl SystemAcl { get => throw null; set => throw null; } + public System.Security.AccessControl.SystemAcl SystemAcl { get => throw null; set { } } } - - public class CompoundAce : System.Security.AccessControl.KnownAce + public sealed class CompoundAce : System.Security.AccessControl.KnownAce { public override int BinaryLength { get => throw null; } + public System.Security.AccessControl.CompoundAceType CompoundAceType { get => throw null; set { } } public CompoundAce(System.Security.AccessControl.AceFlags flags, int accessMask, System.Security.AccessControl.CompoundAceType compoundAceType, System.Security.Principal.SecurityIdentifier sid) => throw null; - public System.Security.AccessControl.CompoundAceType CompoundAceType { get => throw null; set => throw null; } - public override void GetBinaryForm(System.Byte[] binaryForm, int offset) => throw null; + public override void GetBinaryForm(byte[] binaryForm, int offset) => throw null; } - - public enum CompoundAceType : int + public enum CompoundAceType { Impersonation = 1, } - [System.Flags] - public enum ControlFlags : int + public enum ControlFlags { - DiscretionaryAclAutoInheritRequired = 256, - DiscretionaryAclAutoInherited = 1024, - DiscretionaryAclDefaulted = 8, - DiscretionaryAclPresent = 4, - DiscretionaryAclProtected = 4096, - DiscretionaryAclUntrusted = 64, - GroupDefaulted = 2, None = 0, OwnerDefaulted = 1, + GroupDefaulted = 2, + DiscretionaryAclPresent = 4, + DiscretionaryAclDefaulted = 8, + SystemAclPresent = 16, + SystemAclDefaulted = 32, + DiscretionaryAclUntrusted = 64, + ServerSecurity = 128, + DiscretionaryAclAutoInheritRequired = 256, + SystemAclAutoInheritRequired = 512, + DiscretionaryAclAutoInherited = 1024, + SystemAclAutoInherited = 2048, + DiscretionaryAclProtected = 4096, + SystemAclProtected = 8192, RMControlValid = 16384, SelfRelative = 32768, - ServerSecurity = 128, - SystemAclAutoInheritRequired = 512, - SystemAclAutoInherited = 2048, - SystemAclDefaulted = 32, - SystemAclPresent = 16, - SystemAclProtected = 8192, } - - public class CustomAce : System.Security.AccessControl.GenericAce + public sealed class CustomAce : System.Security.AccessControl.GenericAce { public override int BinaryLength { get => throw null; } - public CustomAce(System.Security.AccessControl.AceType type, System.Security.AccessControl.AceFlags flags, System.Byte[] opaque) => throw null; - public override void GetBinaryForm(System.Byte[] binaryForm, int offset) => throw null; - public System.Byte[] GetOpaque() => throw null; + public CustomAce(System.Security.AccessControl.AceType type, System.Security.AccessControl.AceFlags flags, byte[] opaque) => throw null; + public override void GetBinaryForm(byte[] binaryForm, int offset) => throw null; + public byte[] GetOpaque() => throw null; public static int MaxOpaqueLength; public int OpaqueLength { get => throw null; } - public void SetOpaque(System.Byte[] opaque) => throw null; + public void SetOpaque(byte[] opaque) => throw null; } - - public class DiscretionaryAcl : System.Security.AccessControl.CommonAcl + public sealed class DiscretionaryAcl : System.Security.AccessControl.CommonAcl { - public void AddAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAccessRule rule) => throw null; public void AddAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags) => throw null; public void AddAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.ObjectAceFlags objectFlags, System.Guid objectType, System.Guid inheritedObjectType) => throw null; - public DiscretionaryAcl(bool isContainer, bool isDS, System.Security.AccessControl.RawAcl rawAcl) => throw null; - public DiscretionaryAcl(bool isContainer, bool isDS, System.Byte revision, int capacity) => throw null; + public void AddAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAccessRule rule) => throw null; + public DiscretionaryAcl(bool isContainer, bool isDS, byte revision, int capacity) => throw null; public DiscretionaryAcl(bool isContainer, bool isDS, int capacity) => throw null; - public bool RemoveAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAccessRule rule) => throw null; + public DiscretionaryAcl(bool isContainer, bool isDS, System.Security.AccessControl.RawAcl rawAcl) => throw null; public bool RemoveAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags) => throw null; public bool RemoveAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.ObjectAceFlags objectFlags, System.Guid objectType, System.Guid inheritedObjectType) => throw null; - public void RemoveAccessSpecific(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAccessRule rule) => throw null; + public bool RemoveAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAccessRule rule) => throw null; public void RemoveAccessSpecific(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags) => throw null; public void RemoveAccessSpecific(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.ObjectAceFlags objectFlags, System.Guid objectType, System.Guid inheritedObjectType) => throw null; - public void SetAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAccessRule rule) => throw null; + public void RemoveAccessSpecific(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAccessRule rule) => throw null; public void SetAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags) => throw null; public void SetAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.ObjectAceFlags objectFlags, System.Guid objectType, System.Guid inheritedObjectType) => throw null; + public void SetAccess(System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAccessRule rule) => throw null; } - public abstract class GenericAce { - public static bool operator !=(System.Security.AccessControl.GenericAce left, System.Security.AccessControl.GenericAce right) => throw null; - public static bool operator ==(System.Security.AccessControl.GenericAce left, System.Security.AccessControl.GenericAce right) => throw null; - public System.Security.AccessControl.AceFlags AceFlags { get => throw null; set => throw null; } + public System.Security.AccessControl.AceFlags AceFlags { get => throw null; set { } } public System.Security.AccessControl.AceType AceType { get => throw null; } public System.Security.AccessControl.AuditFlags AuditFlags { get => throw null; } public abstract int BinaryLength { get; } public System.Security.AccessControl.GenericAce Copy() => throw null; - public static System.Security.AccessControl.GenericAce CreateFromBinaryForm(System.Byte[] binaryForm, int offset) => throw null; - public override bool Equals(object o) => throw null; - internal GenericAce() => throw null; - public abstract void GetBinaryForm(System.Byte[] binaryForm, int offset); - public override int GetHashCode() => throw null; + public static System.Security.AccessControl.GenericAce CreateFromBinaryForm(byte[] binaryForm, int offset) => throw null; + public override sealed bool Equals(object o) => throw null; + public abstract void GetBinaryForm(byte[] binaryForm, int offset); + public override sealed int GetHashCode() => throw null; public System.Security.AccessControl.InheritanceFlags InheritanceFlags { get => throw null; } public bool IsInherited { get => throw null; } + public static bool operator ==(System.Security.AccessControl.GenericAce left, System.Security.AccessControl.GenericAce right) => throw null; + public static bool operator !=(System.Security.AccessControl.GenericAce left, System.Security.AccessControl.GenericAce right) => throw null; public System.Security.AccessControl.PropagationFlags PropagationFlags { get => throw null; } } - public abstract class GenericAcl : System.Collections.ICollection, System.Collections.IEnumerable { - public static System.Byte AclRevision; - public static System.Byte AclRevisionDS; + public static byte AclRevision; + public static byte AclRevisionDS; public abstract int BinaryLength { get; } - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(System.Security.AccessControl.GenericAce[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public abstract int Count { get; } protected GenericAcl() => throw null; - public abstract void GetBinaryForm(System.Byte[] binaryForm, int offset); + public abstract void GetBinaryForm(byte[] binaryForm, int offset); public System.Security.AccessControl.AceEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsSynchronized { get => throw null; } - public abstract System.Security.AccessControl.GenericAce this[int index] { get; set; } public static int MaxBinaryLength; - public abstract System.Byte Revision { get; } + public abstract byte Revision { get; } public virtual object SyncRoot { get => throw null; } + public abstract System.Security.AccessControl.GenericAce this[int index] { get; set; } } - public abstract class GenericSecurityDescriptor { public int BinaryLength { get => throw null; } public abstract System.Security.AccessControl.ControlFlags ControlFlags { get; } - internal GenericSecurityDescriptor() => throw null; - public void GetBinaryForm(System.Byte[] binaryForm, int offset) => throw null; + public void GetBinaryForm(byte[] binaryForm, int offset) => throw null; public string GetSddlForm(System.Security.AccessControl.AccessControlSections includeSections) => throw null; public abstract System.Security.Principal.SecurityIdentifier Group { get; set; } public static bool IsSddlConversionSupported() => throw null; public abstract System.Security.Principal.SecurityIdentifier Owner { get; set; } - public static System.Byte Revision { get => throw null; } + public static byte Revision { get => throw null; } } - [System.Flags] - public enum InheritanceFlags : int + public enum InheritanceFlags { - ContainerInherit = 1, None = 0, + ContainerInherit = 1, ObjectInherit = 2, } - public abstract class KnownAce : System.Security.AccessControl.GenericAce { - public int AccessMask { get => throw null; set => throw null; } - internal KnownAce() => throw null; - public System.Security.Principal.SecurityIdentifier SecurityIdentifier { get => throw null; set => throw null; } + public int AccessMask { get => throw null; set { } } + public System.Security.Principal.SecurityIdentifier SecurityIdentifier { get => throw null; set { } } } - public abstract class NativeObjectSecurity : System.Security.AccessControl.CommonObjectSecurity { - protected internal delegate System.Exception ExceptionFromErrorCode(int errorCode, string name, System.Runtime.InteropServices.SafeHandle handle, object context); - - protected NativeObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType) : base(default(bool)) => throw null; - protected NativeObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType, System.Security.AccessControl.NativeObjectSecurity.ExceptionFromErrorCode exceptionFromErrorCode, object exceptionContext) : base(default(bool)) => throw null; protected NativeObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType, System.Runtime.InteropServices.SafeHandle handle, System.Security.AccessControl.AccessControlSections includeSections) : base(default(bool)) => throw null; protected NativeObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType, System.Runtime.InteropServices.SafeHandle handle, System.Security.AccessControl.AccessControlSections includeSections, System.Security.AccessControl.NativeObjectSecurity.ExceptionFromErrorCode exceptionFromErrorCode, object exceptionContext) : base(default(bool)) => throw null; + protected NativeObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType, System.Security.AccessControl.NativeObjectSecurity.ExceptionFromErrorCode exceptionFromErrorCode, object exceptionContext) : base(default(bool)) => throw null; protected NativeObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType, string name, System.Security.AccessControl.AccessControlSections includeSections) : base(default(bool)) => throw null; protected NativeObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType, string name, System.Security.AccessControl.AccessControlSections includeSections, System.Security.AccessControl.NativeObjectSecurity.ExceptionFromErrorCode exceptionFromErrorCode, object exceptionContext) : base(default(bool)) => throw null; - protected override void Persist(System.Runtime.InteropServices.SafeHandle handle, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + protected delegate System.Exception ExceptionFromErrorCode(int errorCode, string name, System.Runtime.InteropServices.SafeHandle handle, object context); + protected override sealed void Persist(System.Runtime.InteropServices.SafeHandle handle, System.Security.AccessControl.AccessControlSections includeSections) => throw null; protected void Persist(System.Runtime.InteropServices.SafeHandle handle, System.Security.AccessControl.AccessControlSections includeSections, object exceptionContext) => throw null; - protected override void Persist(string name, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + protected override sealed void Persist(string name, System.Security.AccessControl.AccessControlSections includeSections) => throw null; protected void Persist(string name, System.Security.AccessControl.AccessControlSections includeSections, object exceptionContext) => throw null; } - public abstract class ObjectAccessRule : System.Security.AccessControl.AccessRule { - public System.Guid InheritedObjectType { get => throw null; } protected ObjectAccessRule(System.Security.Principal.IdentityReference identity, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Guid objectType, System.Guid inheritedObjectType, System.Security.AccessControl.AccessControlType type) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AccessControlType)) => throw null; + public System.Guid InheritedObjectType { get => throw null; } public System.Security.AccessControl.ObjectAceFlags ObjectFlags { get => throw null; } public System.Guid ObjectType { get => throw null; } } - - public class ObjectAce : System.Security.AccessControl.QualifiedAce + public sealed class ObjectAce : System.Security.AccessControl.QualifiedAce { public override int BinaryLength { get => throw null; } - public override void GetBinaryForm(System.Byte[] binaryForm, int offset) => throw null; - public System.Guid InheritedObjectAceType { get => throw null; set => throw null; } + public ObjectAce(System.Security.AccessControl.AceFlags aceFlags, System.Security.AccessControl.AceQualifier qualifier, int accessMask, System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAceFlags flags, System.Guid type, System.Guid inheritedType, bool isCallback, byte[] opaque) => throw null; + public override void GetBinaryForm(byte[] binaryForm, int offset) => throw null; + public System.Guid InheritedObjectAceType { get => throw null; set { } } public static int MaxOpaqueLength(bool isCallback) => throw null; - public ObjectAce(System.Security.AccessControl.AceFlags aceFlags, System.Security.AccessControl.AceQualifier qualifier, int accessMask, System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAceFlags flags, System.Guid type, System.Guid inheritedType, bool isCallback, System.Byte[] opaque) => throw null; - public System.Security.AccessControl.ObjectAceFlags ObjectAceFlags { get => throw null; set => throw null; } - public System.Guid ObjectAceType { get => throw null; set => throw null; } + public System.Security.AccessControl.ObjectAceFlags ObjectAceFlags { get => throw null; set { } } + public System.Guid ObjectAceType { get => throw null; set { } } } - [System.Flags] - public enum ObjectAceFlags : int + public enum ObjectAceFlags { - InheritedObjectAceTypePresent = 2, None = 0, ObjectAceTypePresent = 1, + InheritedObjectAceTypePresent = 2, } - public abstract class ObjectAuditRule : System.Security.AccessControl.AuditRule { - public System.Guid InheritedObjectType { get => throw null; } protected ObjectAuditRule(System.Security.Principal.IdentityReference identity, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Guid objectType, System.Guid inheritedObjectType, System.Security.AccessControl.AuditFlags auditFlags) : base(default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(System.Security.AccessControl.AuditFlags)) => throw null; + public System.Guid InheritedObjectType { get => throw null; } public System.Security.AccessControl.ObjectAceFlags ObjectFlags { get => throw null; } public System.Guid ObjectType { get => throw null; } } - public abstract class ObjectSecurity { public abstract System.Type AccessRightType { get; } public abstract System.Security.AccessControl.AccessRule AccessRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type); + protected bool AccessRulesModified { get => throw null; set { } } public abstract System.Type AccessRuleType { get; } - protected bool AccessRulesModified { get => throw null; set => throw null; } public bool AreAccessRulesCanonical { get => throw null; } public bool AreAccessRulesProtected { get => throw null; } public bool AreAuditRulesCanonical { get => throw null; } public bool AreAuditRulesProtected { get => throw null; } public abstract System.Security.AccessControl.AuditRule AuditRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags); + protected bool AuditRulesModified { get => throw null; set { } } public abstract System.Type AuditRuleType { get; } - protected bool AuditRulesModified { get => throw null; set => throw null; } + protected ObjectSecurity() => throw null; + protected ObjectSecurity(bool isContainer, bool isDS) => throw null; + protected ObjectSecurity(System.Security.AccessControl.CommonSecurityDescriptor securityDescriptor) => throw null; public System.Security.Principal.IdentityReference GetGroup(System.Type targetType) => throw null; public System.Security.Principal.IdentityReference GetOwner(System.Type targetType) => throw null; - public System.Byte[] GetSecurityDescriptorBinaryForm() => throw null; + public byte[] GetSecurityDescriptorBinaryForm() => throw null; public string GetSecurityDescriptorSddlForm(System.Security.AccessControl.AccessControlSections includeSections) => throw null; - protected bool GroupModified { get => throw null; set => throw null; } + protected bool GroupModified { get => throw null; set { } } protected bool IsContainer { get => throw null; } protected bool IsDS { get => throw null; } public static bool IsSddlConversionSupported() => throw null; @@ -425,12 +387,9 @@ namespace System public virtual bool ModifyAccessRule(System.Security.AccessControl.AccessControlModification modification, System.Security.AccessControl.AccessRule rule, out bool modified) => throw null; protected abstract bool ModifyAudit(System.Security.AccessControl.AccessControlModification modification, System.Security.AccessControl.AuditRule rule, out bool modified); public virtual bool ModifyAuditRule(System.Security.AccessControl.AccessControlModification modification, System.Security.AccessControl.AuditRule rule, out bool modified) => throw null; - protected ObjectSecurity() => throw null; - protected ObjectSecurity(System.Security.AccessControl.CommonSecurityDescriptor securityDescriptor) => throw null; - protected ObjectSecurity(bool isContainer, bool isDS) => throw null; - protected bool OwnerModified { get => throw null; set => throw null; } - protected virtual void Persist(System.Runtime.InteropServices.SafeHandle handle, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + protected bool OwnerModified { get => throw null; set { } } protected virtual void Persist(bool enableOwnershipPrivilege, string name, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + protected virtual void Persist(System.Runtime.InteropServices.SafeHandle handle, System.Security.AccessControl.AccessControlSections includeSections) => throw null; protected virtual void Persist(string name, System.Security.AccessControl.AccessControlSections includeSections) => throw null; public virtual void PurgeAccessRules(System.Security.Principal.IdentityReference identity) => throw null; public virtual void PurgeAuditRules(System.Security.Principal.IdentityReference identity) => throw null; @@ -441,14 +400,13 @@ namespace System public void SetAuditRuleProtection(bool isProtected, bool preserveInheritance) => throw null; public void SetGroup(System.Security.Principal.IdentityReference identity) => throw null; public void SetOwner(System.Security.Principal.IdentityReference identity) => throw null; - public void SetSecurityDescriptorBinaryForm(System.Byte[] binaryForm) => throw null; - public void SetSecurityDescriptorBinaryForm(System.Byte[] binaryForm, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + public void SetSecurityDescriptorBinaryForm(byte[] binaryForm) => throw null; + public void SetSecurityDescriptorBinaryForm(byte[] binaryForm, System.Security.AccessControl.AccessControlSections includeSections) => throw null; public void SetSecurityDescriptorSddlForm(string sddlForm) => throw null; public void SetSecurityDescriptorSddlForm(string sddlForm, System.Security.AccessControl.AccessControlSections includeSections) => throw null; protected void WriteLock() => throw null; protected void WriteUnlock() => throw null; } - public abstract class ObjectSecurity : System.Security.AccessControl.NativeObjectSecurity where T : struct { public override System.Type AccessRightType { get => throw null; } @@ -463,8 +421,8 @@ namespace System protected ObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType, System.Runtime.InteropServices.SafeHandle safeHandle, System.Security.AccessControl.AccessControlSections includeSections, System.Security.AccessControl.NativeObjectSecurity.ExceptionFromErrorCode exceptionFromErrorCode, object exceptionContext) : base(default(bool), default(System.Security.AccessControl.ResourceType)) => throw null; protected ObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType, string name, System.Security.AccessControl.AccessControlSections includeSections) : base(default(bool), default(System.Security.AccessControl.ResourceType)) => throw null; protected ObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType, string name, System.Security.AccessControl.AccessControlSections includeSections, System.Security.AccessControl.NativeObjectSecurity.ExceptionFromErrorCode exceptionFromErrorCode, object exceptionContext) : base(default(bool), default(System.Security.AccessControl.ResourceType)) => throw null; - protected internal void Persist(System.Runtime.InteropServices.SafeHandle handle) => throw null; - protected internal void Persist(string name) => throw null; + protected void Persist(System.Runtime.InteropServices.SafeHandle handle) => throw null; + protected void Persist(string name) => throw null; public virtual bool RemoveAccessRule(System.Security.AccessControl.AccessRule rule) => throw null; public virtual void RemoveAccessRuleAll(System.Security.AccessControl.AccessRule rule) => throw null; public virtual void RemoveAccessRuleSpecific(System.Security.AccessControl.AccessRule rule) => throw null; @@ -475,92 +433,86 @@ namespace System public virtual void SetAccessRule(System.Security.AccessControl.AccessRule rule) => throw null; public virtual void SetAuditRule(System.Security.AccessControl.AuditRule rule) => throw null; } - - public class PrivilegeNotHeldException : System.UnauthorizedAccessException, System.Runtime.Serialization.ISerializable + public sealed class PrivilegeNotHeldException : System.UnauthorizedAccessException, System.Runtime.Serialization.ISerializable { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public string PrivilegeName { get => throw null; } public PrivilegeNotHeldException() => throw null; public PrivilegeNotHeldException(string privilege) => throw null; public PrivilegeNotHeldException(string privilege, System.Exception inner) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string PrivilegeName { get => throw null; } } - [System.Flags] - public enum PropagationFlags : int + public enum PropagationFlags { - InheritOnly = 2, - NoPropagateInherit = 1, None = 0, + NoPropagateInherit = 1, + InheritOnly = 2, } - public abstract class QualifiedAce : System.Security.AccessControl.KnownAce { public System.Security.AccessControl.AceQualifier AceQualifier { get => throw null; } - public System.Byte[] GetOpaque() => throw null; + public byte[] GetOpaque() => throw null; public bool IsCallback { get => throw null; } public int OpaqueLength { get => throw null; } - internal QualifiedAce() => throw null; - public void SetOpaque(System.Byte[] opaque) => throw null; + public void SetOpaque(byte[] opaque) => throw null; } - - public class RawAcl : System.Security.AccessControl.GenericAcl + public sealed class RawAcl : System.Security.AccessControl.GenericAcl { public override int BinaryLength { get => throw null; } public override int Count { get => throw null; } - public override void GetBinaryForm(System.Byte[] binaryForm, int offset) => throw null; + public RawAcl(byte revision, int capacity) => throw null; + public RawAcl(byte[] binaryForm, int offset) => throw null; + public override void GetBinaryForm(byte[] binaryForm, int offset) => throw null; public void InsertAce(int index, System.Security.AccessControl.GenericAce ace) => throw null; - public override System.Security.AccessControl.GenericAce this[int index] { get => throw null; set => throw null; } - public RawAcl(System.Byte[] binaryForm, int offset) => throw null; - public RawAcl(System.Byte revision, int capacity) => throw null; public void RemoveAce(int index) => throw null; - public override System.Byte Revision { get => throw null; } + public override byte Revision { get => throw null; } + public override System.Security.AccessControl.GenericAce this[int index] { get => throw null; set { } } } - - public class RawSecurityDescriptor : System.Security.AccessControl.GenericSecurityDescriptor + public sealed class RawSecurityDescriptor : System.Security.AccessControl.GenericSecurityDescriptor { public override System.Security.AccessControl.ControlFlags ControlFlags { get => throw null; } - public System.Security.AccessControl.RawAcl DiscretionaryAcl { get => throw null; set => throw null; } - public override System.Security.Principal.SecurityIdentifier Group { get => throw null; set => throw null; } - public override System.Security.Principal.SecurityIdentifier Owner { get => throw null; set => throw null; } - public RawSecurityDescriptor(System.Byte[] binaryForm, int offset) => throw null; + public RawSecurityDescriptor(byte[] binaryForm, int offset) => throw null; public RawSecurityDescriptor(System.Security.AccessControl.ControlFlags flags, System.Security.Principal.SecurityIdentifier owner, System.Security.Principal.SecurityIdentifier group, System.Security.AccessControl.RawAcl systemAcl, System.Security.AccessControl.RawAcl discretionaryAcl) => throw null; public RawSecurityDescriptor(string sddlForm) => throw null; - public System.Byte ResourceManagerControl { get => throw null; set => throw null; } + public System.Security.AccessControl.RawAcl DiscretionaryAcl { get => throw null; set { } } + public override System.Security.Principal.SecurityIdentifier Group { get => throw null; set { } } + public override System.Security.Principal.SecurityIdentifier Owner { get => throw null; set { } } + public byte ResourceManagerControl { get => throw null; set { } } public void SetFlags(System.Security.AccessControl.ControlFlags flags) => throw null; - public System.Security.AccessControl.RawAcl SystemAcl { get => throw null; set => throw null; } + public System.Security.AccessControl.RawAcl SystemAcl { get => throw null; set { } } } - - public enum ResourceType : int + public enum ResourceType { + Unknown = 0, + FileObject = 1, + Service = 2, + Printer = 3, + RegistryKey = 4, + LMShare = 5, + KernelObject = 6, + WindowObject = 7, DSObject = 8, DSObjectAll = 9, - FileObject = 1, - KernelObject = 6, - LMShare = 5, - Printer = 3, ProviderDefined = 10, - RegistryKey = 4, - RegistryWow6432Key = 12, - Service = 2, - Unknown = 0, - WindowObject = 7, WmiGuidObject = 11, + RegistryWow6432Key = 12, } - [System.Flags] - public enum SecurityInfos : int + public enum SecurityInfos { - DiscretionaryAcl = 4, - Group = 2, Owner = 1, + Group = 2, + DiscretionaryAcl = 4, SystemAcl = 8, } - - public class SystemAcl : System.Security.AccessControl.CommonAcl + public sealed class SystemAcl : System.Security.AccessControl.CommonAcl { public void AddAudit(System.Security.AccessControl.AuditFlags auditFlags, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags) => throw null; public void AddAudit(System.Security.AccessControl.AuditFlags auditFlags, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.ObjectAceFlags objectFlags, System.Guid objectType, System.Guid inheritedObjectType) => throw null; public void AddAudit(System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAuditRule rule) => throw null; + public SystemAcl(bool isContainer, bool isDS, byte revision, int capacity) => throw null; + public SystemAcl(bool isContainer, bool isDS, int capacity) => throw null; + public SystemAcl(bool isContainer, bool isDS, System.Security.AccessControl.RawAcl rawAcl) => throw null; public bool RemoveAudit(System.Security.AccessControl.AuditFlags auditFlags, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags) => throw null; public bool RemoveAudit(System.Security.AccessControl.AuditFlags auditFlags, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.ObjectAceFlags objectFlags, System.Guid objectType, System.Guid inheritedObjectType) => throw null; public bool RemoveAudit(System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAuditRule rule) => throw null; @@ -570,15 +522,11 @@ namespace System public void SetAudit(System.Security.AccessControl.AuditFlags auditFlags, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags) => throw null; public void SetAudit(System.Security.AccessControl.AuditFlags auditFlags, System.Security.Principal.SecurityIdentifier sid, int accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.ObjectAceFlags objectFlags, System.Guid objectType, System.Guid inheritedObjectType) => throw null; public void SetAudit(System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAuditRule rule) => throw null; - public SystemAcl(bool isContainer, bool isDS, System.Security.AccessControl.RawAcl rawAcl) => throw null; - public SystemAcl(bool isContainer, bool isDS, System.Byte revision, int capacity) => throw null; - public SystemAcl(bool isContainer, bool isDS, int capacity) => throw null; } - } namespace Policy { - public class Evidence : System.Collections.ICollection, System.Collections.IEnumerable + public sealed class Evidence : System.Collections.ICollection, System.Collections.IEnumerable { public void AddAssembly(object id) => throw null; public void AddAssemblyEvidence(T evidence) where T : System.Security.Policy.EvidenceBase => throw null; @@ -589,9 +537,9 @@ namespace System public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public Evidence() => throw null; + public Evidence(object[] hostEvidence, object[] assemblyEvidence) => throw null; public Evidence(System.Security.Policy.Evidence evidence) => throw null; public Evidence(System.Security.Policy.EvidenceBase[] hostEvidence, System.Security.Policy.EvidenceBase[] assemblyEvidence) => throw null; - public Evidence(object[] hostEvidence, object[] assemblyEvidence) => throw null; public System.Collections.IEnumerator GetAssemblyEnumerator() => throw null; public T GetAssemblyEvidence() where T : System.Security.Policy.EvidenceBase => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; @@ -599,18 +547,16 @@ namespace System public T GetHostEvidence() where T : System.Security.Policy.EvidenceBase => throw null; public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public bool Locked { get => throw null; set => throw null; } + public bool Locked { get => throw null; set { } } public void Merge(System.Security.Policy.Evidence evidence) => throw null; public void RemoveType(System.Type t) => throw null; public object SyncRoot { get => throw null; } } - public abstract class EvidenceBase { public virtual System.Security.Policy.EvidenceBase Clone() => throw null; protected EvidenceBase() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Claims.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Claims.cs index 0388322c56d..15860b63cf2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Claims.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Claims.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Security.Claims, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Security @@ -9,6 +8,8 @@ namespace System { public class Claim { + public virtual System.Security.Claims.Claim Clone() => throw null; + public virtual System.Security.Claims.Claim Clone(System.Security.Claims.ClaimsIdentity identity) => throw null; public Claim(System.IO.BinaryReader reader) => throw null; public Claim(System.IO.BinaryReader reader, System.Security.Claims.ClaimsIdentity subject) => throw null; protected Claim(System.Security.Claims.Claim other) => throw null; @@ -18,9 +19,7 @@ namespace System public Claim(string type, string value, string valueType, string issuer) => throw null; public Claim(string type, string value, string valueType, string issuer, string originalIssuer) => throw null; public Claim(string type, string value, string valueType, string issuer, string originalIssuer, System.Security.Claims.ClaimsIdentity subject) => throw null; - public virtual System.Security.Claims.Claim Clone() => throw null; - public virtual System.Security.Claims.Claim Clone(System.Security.Claims.ClaimsIdentity identity) => throw null; - protected virtual System.Byte[] CustomSerializationData { get => throw null; } + protected virtual byte[] CustomSerializationData { get => throw null; } public string Issuer { get => throw null; } public string OriginalIssuer { get => throw null; } public System.Collections.Generic.IDictionary Properties { get => throw null; } @@ -30,125 +29,35 @@ namespace System public string Value { get => throw null; } public string ValueType { get => throw null; } public virtual void WriteTo(System.IO.BinaryWriter writer) => throw null; - protected virtual void WriteTo(System.IO.BinaryWriter writer, System.Byte[] userData) => throw null; + protected virtual void WriteTo(System.IO.BinaryWriter writer, byte[] userData) => throw null; } - - public static class ClaimTypes - { - public const string Actor = default; - public const string Anonymous = default; - public const string Authentication = default; - public const string AuthenticationInstant = default; - public const string AuthenticationMethod = default; - public const string AuthorizationDecision = default; - public const string CookiePath = default; - public const string Country = default; - public const string DateOfBirth = default; - public const string DenyOnlyPrimaryGroupSid = default; - public const string DenyOnlyPrimarySid = default; - public const string DenyOnlySid = default; - public const string DenyOnlyWindowsDeviceGroup = default; - public const string Dns = default; - public const string Dsa = default; - public const string Email = default; - public const string Expiration = default; - public const string Expired = default; - public const string Gender = default; - public const string GivenName = default; - public const string GroupSid = default; - public const string Hash = default; - public const string HomePhone = default; - public const string IsPersistent = default; - public const string Locality = default; - public const string MobilePhone = default; - public const string Name = default; - public const string NameIdentifier = default; - public const string OtherPhone = default; - public const string PostalCode = default; - public const string PrimaryGroupSid = default; - public const string PrimarySid = default; - public const string Role = default; - public const string Rsa = default; - public const string SerialNumber = default; - public const string Sid = default; - public const string Spn = default; - public const string StateOrProvince = default; - public const string StreetAddress = default; - public const string Surname = default; - public const string System = default; - public const string Thumbprint = default; - public const string Upn = default; - public const string Uri = default; - public const string UserData = default; - public const string Version = default; - public const string Webpage = default; - public const string WindowsAccountName = default; - public const string WindowsDeviceClaim = default; - public const string WindowsDeviceGroup = default; - public const string WindowsFqbnVersion = default; - public const string WindowsSubAuthority = default; - public const string WindowsUserClaim = default; - public const string X500DistinguishedName = default; - } - - public static class ClaimValueTypes - { - public const string Base64Binary = default; - public const string Base64Octet = default; - public const string Boolean = default; - public const string Date = default; - public const string DateTime = default; - public const string DaytimeDuration = default; - public const string DnsName = default; - public const string Double = default; - public const string DsaKeyValue = default; - public const string Email = default; - public const string Fqbn = default; - public const string HexBinary = default; - public const string Integer = default; - public const string Integer32 = default; - public const string Integer64 = default; - public const string KeyInfo = default; - public const string Rfc822Name = default; - public const string Rsa = default; - public const string RsaKeyValue = default; - public const string Sid = default; - public const string String = default; - public const string Time = default; - public const string UInteger32 = default; - public const string UInteger64 = default; - public const string UpnName = default; - public const string X500Name = default; - public const string YearMonthDuration = default; - } - public class ClaimsIdentity : System.Security.Principal.IIdentity { - public System.Security.Claims.ClaimsIdentity Actor { get => throw null; set => throw null; } + public System.Security.Claims.ClaimsIdentity Actor { get => throw null; set { } } public virtual void AddClaim(System.Security.Claims.Claim claim) => throw null; public virtual void AddClaims(System.Collections.Generic.IEnumerable claims) => throw null; public virtual string AuthenticationType { get => throw null; } - public object BootstrapContext { get => throw null; set => throw null; } + public object BootstrapContext { get => throw null; set { } } public virtual System.Collections.Generic.IEnumerable Claims { get => throw null; } + public virtual System.Security.Claims.ClaimsIdentity Clone() => throw null; + protected virtual System.Security.Claims.Claim CreateClaim(System.IO.BinaryReader reader) => throw null; public ClaimsIdentity() => throw null; - public ClaimsIdentity(System.IO.BinaryReader reader) => throw null; - protected ClaimsIdentity(System.Security.Claims.ClaimsIdentity other) => throw null; public ClaimsIdentity(System.Collections.Generic.IEnumerable claims) => throw null; public ClaimsIdentity(System.Collections.Generic.IEnumerable claims, string authenticationType) => throw null; public ClaimsIdentity(System.Collections.Generic.IEnumerable claims, string authenticationType, string nameType, string roleType) => throw null; + public ClaimsIdentity(System.IO.BinaryReader reader) => throw null; + protected ClaimsIdentity(System.Runtime.Serialization.SerializationInfo info) => throw null; + protected ClaimsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected ClaimsIdentity(System.Security.Claims.ClaimsIdentity other) => throw null; public ClaimsIdentity(System.Security.Principal.IIdentity identity) => throw null; public ClaimsIdentity(System.Security.Principal.IIdentity identity, System.Collections.Generic.IEnumerable claims) => throw null; public ClaimsIdentity(System.Security.Principal.IIdentity identity, System.Collections.Generic.IEnumerable claims, string authenticationType, string nameType, string roleType) => throw null; - protected ClaimsIdentity(System.Runtime.Serialization.SerializationInfo info) => throw null; - protected ClaimsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public ClaimsIdentity(string authenticationType) => throw null; public ClaimsIdentity(string authenticationType, string nameType, string roleType) => throw null; - public virtual System.Security.Claims.ClaimsIdentity Clone() => throw null; - protected virtual System.Security.Claims.Claim CreateClaim(System.IO.BinaryReader reader) => throw null; - protected virtual System.Byte[] CustomSerializationData { get => throw null; } - public const string DefaultIssuer = default; - public const string DefaultNameClaimType = default; - public const string DefaultRoleClaimType = default; + protected virtual byte[] CustomSerializationData { get => throw null; } + public static string DefaultIssuer; + public static string DefaultNameClaimType; + public static string DefaultRoleClaimType; public virtual System.Collections.Generic.IEnumerable FindAll(System.Predicate match) => throw null; public virtual System.Collections.Generic.IEnumerable FindAll(string type) => throw null; public virtual System.Security.Claims.Claim FindFirst(System.Predicate match) => throw null; @@ -157,32 +66,31 @@ namespace System public virtual bool HasClaim(System.Predicate match) => throw null; public virtual bool HasClaim(string type, string value) => throw null; public virtual bool IsAuthenticated { get => throw null; } - public string Label { get => throw null; set => throw null; } + public string Label { get => throw null; set { } } public virtual string Name { get => throw null; } public string NameClaimType { get => throw null; } public virtual void RemoveClaim(System.Security.Claims.Claim claim) => throw null; public string RoleClaimType { get => throw null; } public virtual bool TryRemoveClaim(System.Security.Claims.Claim claim) => throw null; public virtual void WriteTo(System.IO.BinaryWriter writer) => throw null; - protected virtual void WriteTo(System.IO.BinaryWriter writer, System.Byte[] userData) => throw null; + protected virtual void WriteTo(System.IO.BinaryWriter writer, byte[] userData) => throw null; } - public class ClaimsPrincipal : System.Security.Principal.IPrincipal { public virtual void AddIdentities(System.Collections.Generic.IEnumerable identities) => throw null; public virtual void AddIdentity(System.Security.Claims.ClaimsIdentity identity) => throw null; public virtual System.Collections.Generic.IEnumerable Claims { get => throw null; } - public ClaimsPrincipal() => throw null; - public ClaimsPrincipal(System.IO.BinaryReader reader) => throw null; - public ClaimsPrincipal(System.Collections.Generic.IEnumerable identities) => throw null; - public ClaimsPrincipal(System.Security.Principal.IIdentity identity) => throw null; - public ClaimsPrincipal(System.Security.Principal.IPrincipal principal) => throw null; - protected ClaimsPrincipal(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public static System.Func ClaimsPrincipalSelector { get => throw null; set => throw null; } + public static System.Func ClaimsPrincipalSelector { get => throw null; set { } } public virtual System.Security.Claims.ClaimsPrincipal Clone() => throw null; protected virtual System.Security.Claims.ClaimsIdentity CreateClaimsIdentity(System.IO.BinaryReader reader) => throw null; + public ClaimsPrincipal() => throw null; + public ClaimsPrincipal(System.Collections.Generic.IEnumerable identities) => throw null; + public ClaimsPrincipal(System.IO.BinaryReader reader) => throw null; + protected ClaimsPrincipal(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public ClaimsPrincipal(System.Security.Principal.IIdentity identity) => throw null; + public ClaimsPrincipal(System.Security.Principal.IPrincipal principal) => throw null; public static System.Security.Claims.ClaimsPrincipal Current { get => throw null; } - protected virtual System.Byte[] CustomSerializationData { get => throw null; } + protected virtual byte[] CustomSerializationData { get => throw null; } public virtual System.Collections.Generic.IEnumerable FindAll(System.Predicate match) => throw null; public virtual System.Collections.Generic.IEnumerable FindAll(string type) => throw null; public virtual System.Security.Claims.Claim FindFirst(System.Predicate match) => throw null; @@ -193,11 +101,97 @@ namespace System public virtual System.Collections.Generic.IEnumerable Identities { get => throw null; } public virtual System.Security.Principal.IIdentity Identity { get => throw null; } public virtual bool IsInRole(string role) => throw null; - public static System.Func, System.Security.Claims.ClaimsIdentity> PrimaryIdentitySelector { get => throw null; set => throw null; } + public static System.Func, System.Security.Claims.ClaimsIdentity> PrimaryIdentitySelector { get => throw null; set { } } public virtual void WriteTo(System.IO.BinaryWriter writer) => throw null; - protected virtual void WriteTo(System.IO.BinaryWriter writer, System.Byte[] userData) => throw null; + protected virtual void WriteTo(System.IO.BinaryWriter writer, byte[] userData) => throw null; + } + public static class ClaimTypes + { + public static string Actor; + public static string Anonymous; + public static string Authentication; + public static string AuthenticationInstant; + public static string AuthenticationMethod; + public static string AuthorizationDecision; + public static string CookiePath; + public static string Country; + public static string DateOfBirth; + public static string DenyOnlyPrimaryGroupSid; + public static string DenyOnlyPrimarySid; + public static string DenyOnlySid; + public static string DenyOnlyWindowsDeviceGroup; + public static string Dns; + public static string Dsa; + public static string Email; + public static string Expiration; + public static string Expired; + public static string Gender; + public static string GivenName; + public static string GroupSid; + public static string Hash; + public static string HomePhone; + public static string IsPersistent; + public static string Locality; + public static string MobilePhone; + public static string Name; + public static string NameIdentifier; + public static string OtherPhone; + public static string PostalCode; + public static string PrimaryGroupSid; + public static string PrimarySid; + public static string Role; + public static string Rsa; + public static string SerialNumber; + public static string Sid; + public static string Spn; + public static string StateOrProvince; + public static string StreetAddress; + public static string Surname; + public static string System; + public static string Thumbprint; + public static string Upn; + public static string Uri; + public static string UserData; + public static string Version; + public static string Webpage; + public static string WindowsAccountName; + public static string WindowsDeviceClaim; + public static string WindowsDeviceGroup; + public static string WindowsFqbnVersion; + public static string WindowsSubAuthority; + public static string WindowsUserClaim; + public static string X500DistinguishedName; + } + public static class ClaimValueTypes + { + public static string Base64Binary; + public static string Base64Octet; + public static string Boolean; + public static string Date; + public static string DateTime; + public static string DaytimeDuration; + public static string DnsName; + public static string Double; + public static string DsaKeyValue; + public static string Email; + public static string Fqbn; + public static string HexBinary; + public static string Integer; + public static string Integer32; + public static string Integer64; + public static string KeyInfo; + public static string Rfc822Name; + public static string Rsa; + public static string RsaKeyValue; + public static string Sid; + public static string String; + public static string Time; + public static string UInteger32; + public static string UInteger64; + public static string UpnName; + public static string X500Name; + public static string YearMonthDuration; } - } namespace Principal { @@ -212,14 +206,12 @@ namespace System public override bool IsAuthenticated { get => throw null; } public override string Name { get => throw null; } } - public class GenericPrincipal : System.Security.Claims.ClaimsPrincipal { public GenericPrincipal(System.Security.Principal.IIdentity identity, string[] roles) => throw null; public override System.Security.Principal.IIdentity Identity { get => throw null; } public override bool IsInRole(string role) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs new file mode 100644 index 00000000000..0f0dfa58ee1 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Security.Cryptography.Algorithms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs new file mode 100644 index 00000000000..c8e93faa276 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Security.Cryptography.Cng, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs new file mode 100644 index 00000000000..21f9151a1dc --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Security.Cryptography.Csp, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs new file mode 100644 index 00000000000..61733b4ccce --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Security.Cryptography.Encoding, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs new file mode 100644 index 00000000000..26212d2445d --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Security.Cryptography.OpenSsl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs new file mode 100644 index 00000000000..2f71d92649d --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Security.Cryptography.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs new file mode 100644 index 00000000000..9709f58b2bf --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Security.Cryptography.X509Certificates, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs index c3a9156d0b3..9dce291b928 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Security.Cryptography, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace Microsoft { namespace Win32 @@ -9,38 +8,33 @@ namespace Microsoft { public abstract class SafeNCryptHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { + protected SafeNCryptHandle() : base(default(bool)) => throw null; + protected SafeNCryptHandle(nint handle, System.Runtime.InteropServices.SafeHandle parentHandle) : base(default(bool)) => throw null; protected override bool ReleaseHandle() => throw null; protected abstract bool ReleaseNativeHandle(); - protected SafeNCryptHandle() : base(default(bool)) => throw null; - protected SafeNCryptHandle(System.IntPtr handle, System.Runtime.InteropServices.SafeHandle parentHandle) : base(default(bool)) => throw null; } - - public class SafeNCryptKeyHandle : Microsoft.Win32.SafeHandles.SafeNCryptHandle + public sealed class SafeNCryptKeyHandle : Microsoft.Win32.SafeHandles.SafeNCryptHandle { - protected override bool ReleaseNativeHandle() => throw null; public SafeNCryptKeyHandle() => throw null; - public SafeNCryptKeyHandle(System.IntPtr handle, System.Runtime.InteropServices.SafeHandle parentHandle) => throw null; - } - - public class SafeNCryptProviderHandle : Microsoft.Win32.SafeHandles.SafeNCryptHandle - { + public SafeNCryptKeyHandle(nint handle, System.Runtime.InteropServices.SafeHandle parentHandle) => throw null; protected override bool ReleaseNativeHandle() => throw null; + } + public sealed class SafeNCryptProviderHandle : Microsoft.Win32.SafeHandles.SafeNCryptHandle + { public SafeNCryptProviderHandle() => throw null; - } - - public class SafeNCryptSecretHandle : Microsoft.Win32.SafeHandles.SafeNCryptHandle - { protected override bool ReleaseNativeHandle() => throw null; - public SafeNCryptSecretHandle() => throw null; } - - public class SafeX509ChainHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid + public sealed class SafeNCryptSecretHandle : Microsoft.Win32.SafeHandles.SafeNCryptHandle { + public SafeNCryptSecretHandle() => throw null; + protected override bool ReleaseNativeHandle() => throw null; + } + public sealed class SafeX509ChainHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid + { + public SafeX509ChainHandle() : base(default(bool)) => throw null; protected override void Dispose(bool disposing) => throw null; protected override bool ReleaseHandle() => throw null; - public SafeX509ChainHandle() : base(default(bool)) => throw null; } - } } } @@ -52,243 +46,225 @@ namespace System { public abstract class Aes : System.Security.Cryptography.SymmetricAlgorithm { - protected Aes() => throw null; public static System.Security.Cryptography.Aes Create() => throw null; public static System.Security.Cryptography.Aes Create(string algorithmName) => throw null; + protected Aes() => throw null; } - - public class AesCcm : System.IDisposable + public sealed class AesCcm : System.IDisposable { - public AesCcm(System.Byte[] key) => throw null; - public AesCcm(System.ReadOnlySpan key) => throw null; - public void Decrypt(System.Byte[] nonce, System.Byte[] ciphertext, System.Byte[] tag, System.Byte[] plaintext, System.Byte[] associatedData = default(System.Byte[])) => throw null; - public void Decrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan ciphertext, System.ReadOnlySpan tag, System.Span plaintext, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; + public AesCcm(byte[] key) => throw null; + public AesCcm(System.ReadOnlySpan key) => throw null; + public void Decrypt(byte[] nonce, byte[] ciphertext, byte[] tag, byte[] plaintext, byte[] associatedData = default(byte[])) => throw null; + public void Decrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan ciphertext, System.ReadOnlySpan tag, System.Span plaintext, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; public void Dispose() => throw null; - public void Encrypt(System.Byte[] nonce, System.Byte[] plaintext, System.Byte[] ciphertext, System.Byte[] tag, System.Byte[] associatedData = default(System.Byte[])) => throw null; - public void Encrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan plaintext, System.Span ciphertext, System.Span tag, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; + public void Encrypt(byte[] nonce, byte[] plaintext, byte[] ciphertext, byte[] tag, byte[] associatedData = default(byte[])) => throw null; + public void Encrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan plaintext, System.Span ciphertext, System.Span tag, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; public static bool IsSupported { get => throw null; } public static System.Security.Cryptography.KeySizes NonceByteSizes { get => throw null; } public static System.Security.Cryptography.KeySizes TagByteSizes { get => throw null; } } - - public class AesCng : System.Security.Cryptography.Aes + public sealed class AesCng : System.Security.Cryptography.Aes { + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV) => throw null; public AesCng() => throw null; public AesCng(string keyName) => throw null; public AesCng(string keyName, System.Security.Cryptography.CngProvider provider) => throw null; public AesCng(string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions openOptions) => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; protected override void Dispose(bool disposing) => throw null; public override void GenerateIV() => throw null; public override void GenerateKey() => throw null; - public override System.Byte[] Key { get => throw null; set => throw null; } - public override int KeySize { get => throw null; set => throw null; } - protected override bool TryDecryptCbcCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - protected override bool TryDecryptCfbCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; - protected override bool TryDecryptEcbCore(System.ReadOnlySpan ciphertext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - protected override bool TryEncryptCbcCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - protected override bool TryEncryptCfbCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; - protected override bool TryEncryptEcbCore(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + public override byte[] Key { get => throw null; set { } } + public override int KeySize { get => throw null; set { } } + protected override bool TryDecryptCbcCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + protected override bool TryDecryptCfbCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; + protected override bool TryDecryptEcbCore(System.ReadOnlySpan ciphertext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + protected override bool TryEncryptCbcCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + protected override bool TryEncryptCfbCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; + protected override bool TryEncryptEcbCore(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; } - - public class AesCryptoServiceProvider : System.Security.Cryptography.Aes + public sealed class AesCryptoServiceProvider : System.Security.Cryptography.Aes { - public AesCryptoServiceProvider() => throw null; - public override int BlockSize { get => throw null; set => throw null; } + public override int BlockSize { get => throw null; set { } } public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV) => throw null; public override System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV) => throw null; + public AesCryptoServiceProvider() => throw null; protected override void Dispose(bool disposing) => throw null; - public override int FeedbackSize { get => throw null; set => throw null; } + public override int FeedbackSize { get => throw null; set { } } public override void GenerateIV() => throw null; public override void GenerateKey() => throw null; - public override System.Byte[] IV { get => throw null; set => throw null; } - public override System.Byte[] Key { get => throw null; set => throw null; } - public override int KeySize { get => throw null; set => throw null; } + public override byte[] IV { get => throw null; set { } } + public override byte[] Key { get => throw null; set { } } + public override int KeySize { get => throw null; set { } } public override System.Security.Cryptography.KeySizes[] LegalBlockSizes { get => throw null; } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } - public override System.Security.Cryptography.CipherMode Mode { get => throw null; set => throw null; } - public override System.Security.Cryptography.PaddingMode Padding { get => throw null; set => throw null; } + public override System.Security.Cryptography.CipherMode Mode { get => throw null; set { } } + public override System.Security.Cryptography.PaddingMode Padding { get => throw null; set { } } } - - public class AesGcm : System.IDisposable + public sealed class AesGcm : System.IDisposable { - public AesGcm(System.Byte[] key) => throw null; - public AesGcm(System.ReadOnlySpan key) => throw null; - public void Decrypt(System.Byte[] nonce, System.Byte[] ciphertext, System.Byte[] tag, System.Byte[] plaintext, System.Byte[] associatedData = default(System.Byte[])) => throw null; - public void Decrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan ciphertext, System.ReadOnlySpan tag, System.Span plaintext, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; + public AesGcm(byte[] key) => throw null; + public AesGcm(System.ReadOnlySpan key) => throw null; + public void Decrypt(byte[] nonce, byte[] ciphertext, byte[] tag, byte[] plaintext, byte[] associatedData = default(byte[])) => throw null; + public void Decrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan ciphertext, System.ReadOnlySpan tag, System.Span plaintext, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; public void Dispose() => throw null; - public void Encrypt(System.Byte[] nonce, System.Byte[] plaintext, System.Byte[] ciphertext, System.Byte[] tag, System.Byte[] associatedData = default(System.Byte[])) => throw null; - public void Encrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan plaintext, System.Span ciphertext, System.Span tag, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; + public void Encrypt(byte[] nonce, byte[] plaintext, byte[] ciphertext, byte[] tag, byte[] associatedData = default(byte[])) => throw null; + public void Encrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan plaintext, System.Span ciphertext, System.Span tag, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; public static bool IsSupported { get => throw null; } public static System.Security.Cryptography.KeySizes NonceByteSizes { get => throw null; } public static System.Security.Cryptography.KeySizes TagByteSizes { get => throw null; } } - - public class AesManaged : System.Security.Cryptography.Aes + public sealed class AesManaged : System.Security.Cryptography.Aes { - public AesManaged() => throw null; - public override int BlockSize { get => throw null; set => throw null; } + public override int BlockSize { get => throw null; set { } } public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV) => throw null; public override System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV) => throw null; + public AesManaged() => throw null; protected override void Dispose(bool disposing) => throw null; - public override int FeedbackSize { get => throw null; set => throw null; } + public override int FeedbackSize { get => throw null; set { } } public override void GenerateIV() => throw null; public override void GenerateKey() => throw null; - public override System.Byte[] IV { get => throw null; set => throw null; } - public override System.Byte[] Key { get => throw null; set => throw null; } - public override int KeySize { get => throw null; set => throw null; } + public override byte[] IV { get => throw null; set { } } + public override byte[] Key { get => throw null; set { } } + public override int KeySize { get => throw null; set { } } public override System.Security.Cryptography.KeySizes[] LegalBlockSizes { get => throw null; } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } - public override System.Security.Cryptography.CipherMode Mode { get => throw null; set => throw null; } - public override System.Security.Cryptography.PaddingMode Padding { get => throw null; set => throw null; } + public override System.Security.Cryptography.CipherMode Mode { get => throw null; set { } } + public override System.Security.Cryptography.PaddingMode Padding { get => throw null; set { } } } - public class AsnEncodedData { - protected AsnEncodedData() => throw null; - public AsnEncodedData(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; - public AsnEncodedData(System.Byte[] rawData) => throw null; - public AsnEncodedData(System.Security.Cryptography.Oid oid, System.Byte[] rawData) => throw null; - public AsnEncodedData(System.Security.Cryptography.Oid oid, System.ReadOnlySpan rawData) => throw null; - public AsnEncodedData(System.ReadOnlySpan rawData) => throw null; - public AsnEncodedData(string oid, System.Byte[] rawData) => throw null; - public AsnEncodedData(string oid, System.ReadOnlySpan rawData) => throw null; public virtual void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + protected AsnEncodedData() => throw null; + public AsnEncodedData(byte[] rawData) => throw null; + public AsnEncodedData(System.ReadOnlySpan rawData) => throw null; + public AsnEncodedData(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public AsnEncodedData(System.Security.Cryptography.Oid oid, byte[] rawData) => throw null; + public AsnEncodedData(System.Security.Cryptography.Oid oid, System.ReadOnlySpan rawData) => throw null; + public AsnEncodedData(string oid, byte[] rawData) => throw null; + public AsnEncodedData(string oid, System.ReadOnlySpan rawData) => throw null; public virtual string Format(bool multiLine) => throw null; - public System.Security.Cryptography.Oid Oid { get => throw null; set => throw null; } - public System.Byte[] RawData { get => throw null; set => throw null; } + public System.Security.Cryptography.Oid Oid { get => throw null; set { } } + public byte[] RawData { get => throw null; set { } } } - - public class AsnEncodedDataCollection : System.Collections.ICollection, System.Collections.IEnumerable + public sealed class AsnEncodedDataCollection : System.Collections.ICollection, System.Collections.IEnumerable { public int Add(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public void CopyTo(System.Security.Cryptography.AsnEncodedData[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } public AsnEncodedDataCollection() => throw null; public AsnEncodedDataCollection(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(System.Security.Cryptography.AsnEncodedData[] array, int index) => throw null; - public int Count { get => throw null; } public System.Security.Cryptography.AsnEncodedDataEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsSynchronized { get => throw null; } - public System.Security.Cryptography.AsnEncodedData this[int index] { get => throw null; } public void Remove(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; public object SyncRoot { get => throw null; } + public System.Security.Cryptography.AsnEncodedData this[int index] { get => throw null; } } - - public class AsnEncodedDataEnumerator : System.Collections.IEnumerator + public sealed class AsnEncodedDataEnumerator : System.Collections.IEnumerator { public System.Security.Cryptography.AsnEncodedData Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public bool MoveNext() => throw null; public void Reset() => throw null; } - public abstract class AsymmetricAlgorithm : System.IDisposable { - protected AsymmetricAlgorithm() => throw null; public void Clear() => throw null; public static System.Security.Cryptography.AsymmetricAlgorithm Create() => throw null; public static System.Security.Cryptography.AsymmetricAlgorithm Create(string algName) => throw null; + protected AsymmetricAlgorithm() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public virtual System.Byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; - public virtual System.Byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; - public string ExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; - public virtual System.Byte[] ExportPkcs8PrivateKey() => throw null; + public virtual byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public virtual byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public string ExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public virtual byte[] ExportPkcs8PrivateKey() => throw null; public string ExportPkcs8PrivateKeyPem() => throw null; - public virtual System.Byte[] ExportSubjectPublicKeyInfo() => throw null; + public virtual byte[] ExportSubjectPublicKeyInfo() => throw null; public string ExportSubjectPublicKeyInfoPem() => throw null; public virtual void FromXmlString(string xmlString) => throw null; - public virtual void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; - public virtual void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; - public virtual void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan passwordBytes) => throw null; - public virtual void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan password) => throw null; - public virtual void ImportFromPem(System.ReadOnlySpan input) => throw null; - public virtual void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; - public virtual void ImportSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => throw null; + public virtual void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; + public virtual void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; + public virtual void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan passwordBytes) => throw null; + public virtual void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan password) => throw null; + public virtual void ImportFromPem(System.ReadOnlySpan input) => throw null; + public virtual void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; + public virtual void ImportSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => throw null; public virtual string KeyExchangeAlgorithm { get => throw null; } - public virtual int KeySize { get => throw null; set => throw null; } + public virtual int KeySize { get => throw null; set { } } protected int KeySizeValue; public virtual System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } protected System.Security.Cryptography.KeySizes[] LegalKeySizesValue; public virtual string SignatureAlgorithm { get => throw null; } public virtual string ToXmlString(bool includePrivateParameters) => throw null; - public virtual bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public virtual bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public bool TryExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int charsWritten) => throw null; - public virtual bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; - public bool TryExportPkcs8PrivateKeyPem(System.Span destination, out int charsWritten) => throw null; - public virtual bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; - public bool TryExportSubjectPublicKeyInfoPem(System.Span destination, out int charsWritten) => throw null; + public virtual bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public virtual bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public bool TryExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int charsWritten) => throw null; + public virtual bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; + public bool TryExportPkcs8PrivateKeyPem(System.Span destination, out int charsWritten) => throw null; + public virtual bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; + public bool TryExportSubjectPublicKeyInfoPem(System.Span destination, out int charsWritten) => throw null; } - public abstract class AsymmetricKeyExchangeDeformatter { protected AsymmetricKeyExchangeDeformatter() => throw null; - public abstract System.Byte[] DecryptKeyExchange(System.Byte[] rgb); + public abstract byte[] DecryptKeyExchange(byte[] rgb); public abstract string Parameters { get; set; } public abstract void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key); } - public abstract class AsymmetricKeyExchangeFormatter { + public abstract byte[] CreateKeyExchange(byte[] data); + public abstract byte[] CreateKeyExchange(byte[] data, System.Type symAlgType); protected AsymmetricKeyExchangeFormatter() => throw null; - public abstract System.Byte[] CreateKeyExchange(System.Byte[] data); - public abstract System.Byte[] CreateKeyExchange(System.Byte[] data, System.Type symAlgType); public abstract string Parameters { get; } public abstract void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key); } - public abstract class AsymmetricSignatureDeformatter { protected AsymmetricSignatureDeformatter() => throw null; public abstract void SetHashAlgorithm(string strName); public abstract void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key); - public abstract bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature); - public virtual bool VerifySignature(System.Security.Cryptography.HashAlgorithm hash, System.Byte[] rgbSignature) => throw null; + public abstract bool VerifySignature(byte[] rgbHash, byte[] rgbSignature); + public virtual bool VerifySignature(System.Security.Cryptography.HashAlgorithm hash, byte[] rgbSignature) => throw null; } - public abstract class AsymmetricSignatureFormatter { + public abstract byte[] CreateSignature(byte[] rgbHash); + public virtual byte[] CreateSignature(System.Security.Cryptography.HashAlgorithm hash) => throw null; protected AsymmetricSignatureFormatter() => throw null; - public abstract System.Byte[] CreateSignature(System.Byte[] rgbHash); - public virtual System.Byte[] CreateSignature(System.Security.Cryptography.HashAlgorithm hash) => throw null; public abstract void SetHashAlgorithm(string strName); public abstract void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key); } - - public class ChaCha20Poly1305 : System.IDisposable + public sealed class ChaCha20Poly1305 : System.IDisposable { - public ChaCha20Poly1305(System.Byte[] key) => throw null; - public ChaCha20Poly1305(System.ReadOnlySpan key) => throw null; - public void Decrypt(System.Byte[] nonce, System.Byte[] ciphertext, System.Byte[] tag, System.Byte[] plaintext, System.Byte[] associatedData = default(System.Byte[])) => throw null; - public void Decrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan ciphertext, System.ReadOnlySpan tag, System.Span plaintext, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; + public ChaCha20Poly1305(byte[] key) => throw null; + public ChaCha20Poly1305(System.ReadOnlySpan key) => throw null; + public void Decrypt(byte[] nonce, byte[] ciphertext, byte[] tag, byte[] plaintext, byte[] associatedData = default(byte[])) => throw null; + public void Decrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan ciphertext, System.ReadOnlySpan tag, System.Span plaintext, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; public void Dispose() => throw null; - public void Encrypt(System.Byte[] nonce, System.Byte[] plaintext, System.Byte[] ciphertext, System.Byte[] tag, System.Byte[] associatedData = default(System.Byte[])) => throw null; - public void Encrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan plaintext, System.Span ciphertext, System.Span tag, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; + public void Encrypt(byte[] nonce, byte[] plaintext, byte[] ciphertext, byte[] tag, byte[] associatedData = default(byte[])) => throw null; + public void Encrypt(System.ReadOnlySpan nonce, System.ReadOnlySpan plaintext, System.Span ciphertext, System.Span tag, System.ReadOnlySpan associatedData = default(System.ReadOnlySpan)) => throw null; public static bool IsSupported { get => throw null; } } - - public enum CipherMode : int + public enum CipherMode { CBC = 1, - CFB = 4, - CTS = 5, ECB = 2, OFB = 3, + CFB = 4, + CTS = 5, } - - public class CngAlgorithm : System.IEquatable + public sealed class CngAlgorithm : System.IEquatable { - public static bool operator !=(System.Security.Cryptography.CngAlgorithm left, System.Security.Cryptography.CngAlgorithm right) => throw null; - public static bool operator ==(System.Security.Cryptography.CngAlgorithm left, System.Security.Cryptography.CngAlgorithm right) => throw null; public string Algorithm { get => throw null; } public CngAlgorithm(string algorithm) => throw null; public static System.Security.Cryptography.CngAlgorithm ECDiffieHellman { get => throw null; } @@ -299,10 +275,12 @@ namespace System public static System.Security.Cryptography.CngAlgorithm ECDsaP256 { get => throw null; } public static System.Security.Cryptography.CngAlgorithm ECDsaP384 { get => throw null; } public static System.Security.Cryptography.CngAlgorithm ECDsaP521 { get => throw null; } - public bool Equals(System.Security.Cryptography.CngAlgorithm other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Security.Cryptography.CngAlgorithm other) => throw null; public override int GetHashCode() => throw null; public static System.Security.Cryptography.CngAlgorithm MD5 { get => throw null; } + public static bool operator ==(System.Security.Cryptography.CngAlgorithm left, System.Security.Cryptography.CngAlgorithm right) => throw null; + public static bool operator !=(System.Security.Cryptography.CngAlgorithm left, System.Security.Cryptography.CngAlgorithm right) => throw null; public static System.Security.Cryptography.CngAlgorithm Rsa { get => throw null; } public static System.Security.Cryptography.CngAlgorithm Sha1 { get => throw null; } public static System.Security.Cryptography.CngAlgorithm Sha256 { get => throw null; } @@ -310,35 +288,32 @@ namespace System public static System.Security.Cryptography.CngAlgorithm Sha512 { get => throw null; } public override string ToString() => throw null; } - - public class CngAlgorithmGroup : System.IEquatable + public sealed class CngAlgorithmGroup : System.IEquatable { - public static bool operator !=(System.Security.Cryptography.CngAlgorithmGroup left, System.Security.Cryptography.CngAlgorithmGroup right) => throw null; - public static bool operator ==(System.Security.Cryptography.CngAlgorithmGroup left, System.Security.Cryptography.CngAlgorithmGroup right) => throw null; public string AlgorithmGroup { get => throw null; } public CngAlgorithmGroup(string algorithmGroup) => throw null; public static System.Security.Cryptography.CngAlgorithmGroup DiffieHellman { get => throw null; } public static System.Security.Cryptography.CngAlgorithmGroup Dsa { get => throw null; } public static System.Security.Cryptography.CngAlgorithmGroup ECDiffieHellman { get => throw null; } public static System.Security.Cryptography.CngAlgorithmGroup ECDsa { get => throw null; } - public bool Equals(System.Security.Cryptography.CngAlgorithmGroup other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Security.Cryptography.CngAlgorithmGroup other) => throw null; public override int GetHashCode() => throw null; + public static bool operator ==(System.Security.Cryptography.CngAlgorithmGroup left, System.Security.Cryptography.CngAlgorithmGroup right) => throw null; + public static bool operator !=(System.Security.Cryptography.CngAlgorithmGroup left, System.Security.Cryptography.CngAlgorithmGroup right) => throw null; public static System.Security.Cryptography.CngAlgorithmGroup Rsa { get => throw null; } public override string ToString() => throw null; } - [System.Flags] - public enum CngExportPolicies : int + public enum CngExportPolicies { - AllowArchiving = 4, - AllowExport = 1, - AllowPlaintextArchiving = 8, - AllowPlaintextExport = 2, None = 0, + AllowExport = 1, + AllowPlaintextExport = 2, + AllowArchiving = 4, + AllowPlaintextArchiving = 8, } - - public class CngKey : System.IDisposable + public sealed class CngKey : System.IDisposable { public System.Security.Cryptography.CngAlgorithm Algorithm { get => throw null; } public System.Security.Cryptography.CngAlgorithmGroup AlgorithmGroup { get => throw null; } @@ -350,13 +325,13 @@ namespace System public static bool Exists(string keyName) => throw null; public static bool Exists(string keyName, System.Security.Cryptography.CngProvider provider) => throw null; public static bool Exists(string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions options) => throw null; - public System.Byte[] Export(System.Security.Cryptography.CngKeyBlobFormat format) => throw null; + public byte[] Export(System.Security.Cryptography.CngKeyBlobFormat format) => throw null; public System.Security.Cryptography.CngExportPolicies ExportPolicy { get => throw null; } public System.Security.Cryptography.CngProperty GetProperty(string name, System.Security.Cryptography.CngPropertyOptions options) => throw null; public Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle Handle { get => throw null; } public bool HasProperty(string name, System.Security.Cryptography.CngPropertyOptions options) => throw null; - public static System.Security.Cryptography.CngKey Import(System.Byte[] keyBlob, System.Security.Cryptography.CngKeyBlobFormat format) => throw null; - public static System.Security.Cryptography.CngKey Import(System.Byte[] keyBlob, System.Security.Cryptography.CngKeyBlobFormat format, System.Security.Cryptography.CngProvider provider) => throw null; + public static System.Security.Cryptography.CngKey Import(byte[] keyBlob, System.Security.Cryptography.CngKeyBlobFormat format) => throw null; + public static System.Security.Cryptography.CngKey Import(byte[] keyBlob, System.Security.Cryptography.CngKeyBlobFormat format, System.Security.Cryptography.CngProvider provider) => throw null; public bool IsEphemeral { get => throw null; } public bool IsMachineKey { get => throw null; } public string KeyName { get => throw null; } @@ -366,144 +341,130 @@ namespace System public static System.Security.Cryptography.CngKey Open(string keyName) => throw null; public static System.Security.Cryptography.CngKey Open(string keyName, System.Security.Cryptography.CngProvider provider) => throw null; public static System.Security.Cryptography.CngKey Open(string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions openOptions) => throw null; - public System.IntPtr ParentWindowHandle { get => throw null; set => throw null; } + public nint ParentWindowHandle { get => throw null; set { } } public System.Security.Cryptography.CngProvider Provider { get => throw null; } public Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle ProviderHandle { get => throw null; } public void SetProperty(System.Security.Cryptography.CngProperty property) => throw null; public System.Security.Cryptography.CngUIPolicy UIPolicy { get => throw null; } public string UniqueName { get => throw null; } } - - public class CngKeyBlobFormat : System.IEquatable + public sealed class CngKeyBlobFormat : System.IEquatable { - public static bool operator !=(System.Security.Cryptography.CngKeyBlobFormat left, System.Security.Cryptography.CngKeyBlobFormat right) => throw null; - public static bool operator ==(System.Security.Cryptography.CngKeyBlobFormat left, System.Security.Cryptography.CngKeyBlobFormat right) => throw null; public CngKeyBlobFormat(string format) => throw null; public static System.Security.Cryptography.CngKeyBlobFormat EccFullPrivateBlob { get => throw null; } public static System.Security.Cryptography.CngKeyBlobFormat EccFullPublicBlob { get => throw null; } public static System.Security.Cryptography.CngKeyBlobFormat EccPrivateBlob { get => throw null; } public static System.Security.Cryptography.CngKeyBlobFormat EccPublicBlob { get => throw null; } - public bool Equals(System.Security.Cryptography.CngKeyBlobFormat other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Security.Cryptography.CngKeyBlobFormat other) => throw null; public string Format { get => throw null; } public static System.Security.Cryptography.CngKeyBlobFormat GenericPrivateBlob { get => throw null; } public static System.Security.Cryptography.CngKeyBlobFormat GenericPublicBlob { get => throw null; } public override int GetHashCode() => throw null; + public static bool operator ==(System.Security.Cryptography.CngKeyBlobFormat left, System.Security.Cryptography.CngKeyBlobFormat right) => throw null; + public static bool operator !=(System.Security.Cryptography.CngKeyBlobFormat left, System.Security.Cryptography.CngKeyBlobFormat right) => throw null; public static System.Security.Cryptography.CngKeyBlobFormat OpaqueTransportBlob { get => throw null; } public static System.Security.Cryptography.CngKeyBlobFormat Pkcs8PrivateBlob { get => throw null; } public override string ToString() => throw null; } - [System.Flags] - public enum CngKeyCreationOptions : int + public enum CngKeyCreationOptions { - MachineKey = 32, None = 0, + MachineKey = 32, OverwriteExistingKey = 128, } - - public class CngKeyCreationParameters + public sealed class CngKeyCreationParameters { public CngKeyCreationParameters() => throw null; - public System.Security.Cryptography.CngExportPolicies? ExportPolicy { get => throw null; set => throw null; } - public System.Security.Cryptography.CngKeyCreationOptions KeyCreationOptions { get => throw null; set => throw null; } - public System.Security.Cryptography.CngKeyUsages? KeyUsage { get => throw null; set => throw null; } + public System.Security.Cryptography.CngExportPolicies? ExportPolicy { get => throw null; set { } } + public System.Security.Cryptography.CngKeyCreationOptions KeyCreationOptions { get => throw null; set { } } + public System.Security.Cryptography.CngKeyUsages? KeyUsage { get => throw null; set { } } public System.Security.Cryptography.CngPropertyCollection Parameters { get => throw null; } - public System.IntPtr ParentWindowHandle { get => throw null; set => throw null; } - public System.Security.Cryptography.CngProvider Provider { get => throw null; set => throw null; } - public System.Security.Cryptography.CngUIPolicy UIPolicy { get => throw null; set => throw null; } + public nint ParentWindowHandle { get => throw null; set { } } + public System.Security.Cryptography.CngProvider Provider { get => throw null; set { } } + public System.Security.Cryptography.CngUIPolicy UIPolicy { get => throw null; set { } } } - [System.Flags] - public enum CngKeyHandleOpenOptions : int + public enum CngKeyHandleOpenOptions { + None = 0, EphemeralKey = 1, - None = 0, } - [System.Flags] - public enum CngKeyOpenOptions : int + public enum CngKeyOpenOptions { - MachineKey = 32, None = 0, - Silent = 64, UserKey = 0, + MachineKey = 32, + Silent = 64, } - [System.Flags] - public enum CngKeyUsages : int + public enum CngKeyUsages { - AllUsages = 16777215, - Decryption = 1, - KeyAgreement = 4, None = 0, + Decryption = 1, Signing = 2, + KeyAgreement = 4, + AllUsages = 16777215, } - public struct CngProperty : System.IEquatable { - public static bool operator !=(System.Security.Cryptography.CngProperty left, System.Security.Cryptography.CngProperty right) => throw null; - public static bool operator ==(System.Security.Cryptography.CngProperty left, System.Security.Cryptography.CngProperty right) => throw null; - // Stub generator skipped constructor - public CngProperty(string name, System.Byte[] value, System.Security.Cryptography.CngPropertyOptions options) => throw null; - public bool Equals(System.Security.Cryptography.CngProperty other) => throw null; + public CngProperty(string name, byte[] value, System.Security.Cryptography.CngPropertyOptions options) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Security.Cryptography.CngProperty other) => throw null; public override int GetHashCode() => throw null; - public System.Byte[] GetValue() => throw null; + public byte[] GetValue() => throw null; public string Name { get => throw null; } + public static bool operator ==(System.Security.Cryptography.CngProperty left, System.Security.Cryptography.CngProperty right) => throw null; + public static bool operator !=(System.Security.Cryptography.CngProperty left, System.Security.Cryptography.CngProperty right) => throw null; public System.Security.Cryptography.CngPropertyOptions Options { get => throw null; } } - - public class CngPropertyCollection : System.Collections.ObjectModel.Collection + public sealed class CngPropertyCollection : System.Collections.ObjectModel.Collection { public CngPropertyCollection() => throw null; } - [System.Flags] - public enum CngPropertyOptions : int + public enum CngPropertyOptions { - CustomProperty = 1073741824, - None = 0, Persist = -2147483648, + None = 0, + CustomProperty = 1073741824, } - - public class CngProvider : System.IEquatable + public sealed class CngProvider : System.IEquatable { - public static bool operator !=(System.Security.Cryptography.CngProvider left, System.Security.Cryptography.CngProvider right) => throw null; - public static bool operator ==(System.Security.Cryptography.CngProvider left, System.Security.Cryptography.CngProvider right) => throw null; public CngProvider(string provider) => throw null; - public bool Equals(System.Security.Cryptography.CngProvider other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Security.Cryptography.CngProvider other) => throw null; public override int GetHashCode() => throw null; public static System.Security.Cryptography.CngProvider MicrosoftPlatformCryptoProvider { get => throw null; } public static System.Security.Cryptography.CngProvider MicrosoftSmartCardKeyStorageProvider { get => throw null; } public static System.Security.Cryptography.CngProvider MicrosoftSoftwareKeyStorageProvider { get => throw null; } + public static bool operator ==(System.Security.Cryptography.CngProvider left, System.Security.Cryptography.CngProvider right) => throw null; + public static bool operator !=(System.Security.Cryptography.CngProvider left, System.Security.Cryptography.CngProvider right) => throw null; public string Provider { get => throw null; } public override string ToString() => throw null; } - - public class CngUIPolicy + public sealed class CngUIPolicy { + public string CreationTitle { get => throw null; } public CngUIPolicy(System.Security.Cryptography.CngUIProtectionLevels protectionLevel) => throw null; public CngUIPolicy(System.Security.Cryptography.CngUIProtectionLevels protectionLevel, string friendlyName) => throw null; public CngUIPolicy(System.Security.Cryptography.CngUIProtectionLevels protectionLevel, string friendlyName, string description) => throw null; public CngUIPolicy(System.Security.Cryptography.CngUIProtectionLevels protectionLevel, string friendlyName, string description, string useContext) => throw null; public CngUIPolicy(System.Security.Cryptography.CngUIProtectionLevels protectionLevel, string friendlyName, string description, string useContext, string creationTitle) => throw null; - public string CreationTitle { get => throw null; } public string Description { get => throw null; } public string FriendlyName { get => throw null; } public System.Security.Cryptography.CngUIProtectionLevels ProtectionLevel { get => throw null; } public string UseContext { get => throw null; } } - [System.Flags] - public enum CngUIProtectionLevels : int + public enum CngUIProtectionLevels { - ForceHighProtection = 2, None = 0, ProtectKey = 1, + ForceHighProtection = 2, } - public class CryptoConfig { public static void AddAlgorithm(System.Type algorithm, params string[] names) => throw null; @@ -512,14 +473,26 @@ namespace System public static object CreateFromName(string name) => throw null; public static object CreateFromName(string name, params object[] args) => throw null; public CryptoConfig() => throw null; - public static System.Byte[] EncodeOID(string str) => throw null; + public static byte[] EncodeOID(string str) => throw null; public static string MapNameToOID(string name) => throw null; } - + public static class CryptographicOperations + { + public static bool FixedTimeEquals(System.ReadOnlySpan left, System.ReadOnlySpan right) => throw null; + public static void ZeroMemory(System.Span buffer) => throw null; + } + public class CryptographicUnexpectedOperationException : System.Security.Cryptography.CryptographicException + { + public CryptographicUnexpectedOperationException() => throw null; + protected CryptographicUnexpectedOperationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public CryptographicUnexpectedOperationException(string message) => throw null; + public CryptographicUnexpectedOperationException(string message, System.Exception inner) => throw null; + public CryptographicUnexpectedOperationException(string format, string insert) => throw null; + } public class CryptoStream : System.IO.Stream, System.IDisposable { - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } @@ -537,42 +510,25 @@ namespace System public void FlushFinalBlock() => throw null; public System.Threading.Tasks.ValueTask FlushFinalBlockAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public bool HasFlushedFinalBlock { get => throw null; } - public override System.Int64 Length { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override int ReadByte() => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WriteByte(System.Byte value) => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteByte(byte value) => throw null; } - - public enum CryptoStreamMode : int + public enum CryptoStreamMode { Read = 0, Write = 1, } - - public static class CryptographicOperations - { - public static bool FixedTimeEquals(System.ReadOnlySpan left, System.ReadOnlySpan right) => throw null; - public static void ZeroMemory(System.Span buffer) => throw null; - } - - public class CryptographicUnexpectedOperationException : System.Security.Cryptography.CryptographicException - { - public CryptographicUnexpectedOperationException() => throw null; - protected CryptographicUnexpectedOperationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public CryptographicUnexpectedOperationException(string message) => throw null; - public CryptographicUnexpectedOperationException(string message, System.Exception inner) => throw null; - public CryptographicUnexpectedOperationException(string format, string insert) => throw null; - } - - public class CspKeyContainerInfo + public sealed class CspKeyContainerInfo { public bool Accessible { get => throw null; } public CspKeyContainerInfo(System.Security.Cryptography.CspParameters parameters) => throw null; @@ -588,273 +544,268 @@ namespace System public bool Removable { get => throw null; } public string UniqueKeyContainerName { get => throw null; } } - - public class CspParameters + public sealed class CspParameters { public CspParameters() => throw null; public CspParameters(int dwTypeIn) => throw null; public CspParameters(int dwTypeIn, string strProviderNameIn) => throw null; public CspParameters(int dwTypeIn, string strProviderNameIn, string strContainerNameIn) => throw null; - public System.Security.Cryptography.CspProviderFlags Flags { get => throw null; set => throw null; } + public System.Security.Cryptography.CspProviderFlags Flags { get => throw null; set { } } public string KeyContainerName; public int KeyNumber; - public System.Security.SecureString KeyPassword { get => throw null; set => throw null; } - public System.IntPtr ParentWindowHandle { get => throw null; set => throw null; } + public System.Security.SecureString KeyPassword { get => throw null; set { } } + public nint ParentWindowHandle { get => throw null; set { } } public string ProviderName; public int ProviderType; } - [System.Flags] - public enum CspProviderFlags : int + public enum CspProviderFlags { - CreateEphemeralKey = 128, NoFlags = 0, - NoPrompt = 64, - UseArchivableKey = 16, - UseDefaultKeyContainer = 2, - UseExistingKey = 8, UseMachineKeyStore = 1, + UseDefaultKeyContainer = 2, UseNonExportableKey = 4, + UseExistingKey = 8, + UseArchivableKey = 16, UseUserProtectedKey = 32, + NoPrompt = 64, + CreateEphemeralKey = 128, + } + public abstract class DeriveBytes : System.IDisposable + { + protected DeriveBytes() => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public abstract byte[] GetBytes(int cb); + public abstract void Reset(); } - public abstract class DES : System.Security.Cryptography.SymmetricAlgorithm { public static System.Security.Cryptography.DES Create() => throw null; public static System.Security.Cryptography.DES Create(string algName) => throw null; protected DES() => throw null; - public static bool IsSemiWeakKey(System.Byte[] rgbKey) => throw null; - public static bool IsWeakKey(System.Byte[] rgbKey) => throw null; - public override System.Byte[] Key { get => throw null; set => throw null; } + public static bool IsSemiWeakKey(byte[] rgbKey) => throw null; + public static bool IsWeakKey(byte[] rgbKey) => throw null; + public override byte[] Key { get => throw null; set { } } } - - public class DESCryptoServiceProvider : System.Security.Cryptography.DES + public sealed class DESCryptoServiceProvider : System.Security.Cryptography.DES { public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV) => throw null; public override System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV) => throw null; public DESCryptoServiceProvider() => throw null; public override void GenerateIV() => throw null; public override void GenerateKey() => throw null; } - public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm { public static System.Security.Cryptography.DSA Create() => throw null; - public static System.Security.Cryptography.DSA Create(System.Security.Cryptography.DSAParameters parameters) => throw null; public static System.Security.Cryptography.DSA Create(int keySizeInBits) => throw null; + public static System.Security.Cryptography.DSA Create(System.Security.Cryptography.DSAParameters parameters) => throw null; public static System.Security.Cryptography.DSA Create(string algName) => throw null; - public abstract System.Byte[] CreateSignature(System.Byte[] rgbHash); - public System.Byte[] CreateSignature(System.Byte[] rgbHash, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual System.Byte[] CreateSignatureCore(System.ReadOnlySpan hash, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public abstract byte[] CreateSignature(byte[] rgbHash); + public byte[] CreateSignature(byte[] rgbHash, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual byte[] CreateSignatureCore(System.ReadOnlySpan hash, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; protected DSA() => throw null; public abstract System.Security.Cryptography.DSAParameters ExportParameters(bool includePrivateParameters); public override void FromXmlString(string xmlString) => throw null; public int GetMaxSignatureSize(System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual System.Byte[] HashData(System.Byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - protected virtual System.Byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan passwordBytes) => throw null; - public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan password) => throw null; - public override void ImportFromPem(System.ReadOnlySpan input) => throw null; + protected virtual byte[] HashData(byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + protected virtual byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan passwordBytes) => throw null; + public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan password) => throw null; + public override void ImportFromPem(System.ReadOnlySpan input) => throw null; public abstract void ImportParameters(System.Security.Cryptography.DSAParameters parameters); - public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => throw null; - public System.Byte[] SignData(System.Byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public System.Byte[] SignData(System.Byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual System.Byte[] SignData(System.Byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public System.Byte[] SignData(System.Byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual System.Byte[] SignData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public System.Byte[] SignData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual System.Byte[] SignDataCore(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual System.Byte[] SignDataCore(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => throw null; + public virtual byte[] SignData(byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public byte[] SignData(byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public byte[] SignData(byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public byte[] SignData(byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual byte[] SignData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public byte[] SignData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual byte[] SignDataCore(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual byte[] SignDataCore(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; public override string ToXmlString(bool includePrivateParameters) => throw null; - public bool TryCreateSignature(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; - public virtual bool TryCreateSignature(System.ReadOnlySpan hash, System.Span destination, out int bytesWritten) => throw null; - protected virtual bool TryCreateSignatureCore(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; - protected virtual bool TryHashData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out int bytesWritten) => throw null; - public bool TrySignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; - public virtual bool TrySignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out int bytesWritten) => throw null; - protected virtual bool TrySignDataCore(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; - public bool VerifyData(System.Byte[] data, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public bool VerifyData(System.Byte[] data, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual bool VerifyData(System.Byte[] data, int offset, int count, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public bool VerifyData(System.Byte[] data, int offset, int count, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual bool VerifyData(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public bool VerifyData(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual bool VerifyData(System.IO.Stream data, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public bool VerifyData(System.IO.Stream data, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual bool VerifyDataCore(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual bool VerifyDataCore(System.IO.Stream data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public abstract bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature); - public bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual bool VerifySignature(System.ReadOnlySpan hash, System.ReadOnlySpan signature) => throw null; - public bool VerifySignature(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual bool VerifySignatureCore(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual bool TryCreateSignature(System.ReadOnlySpan hash, System.Span destination, out int bytesWritten) => throw null; + public bool TryCreateSignature(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; + protected virtual bool TryCreateSignatureCore(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; + protected virtual bool TryHashData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out int bytesWritten) => throw null; + public virtual bool TrySignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out int bytesWritten) => throw null; + public bool TrySignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; + protected virtual bool TrySignDataCore(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; + public bool VerifyData(byte[] data, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public bool VerifyData(byte[] data, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual bool VerifyData(byte[] data, int offset, int count, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public bool VerifyData(byte[] data, int offset, int count, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual bool VerifyData(System.IO.Stream data, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public bool VerifyData(System.IO.Stream data, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual bool VerifyData(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public bool VerifyData(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual bool VerifyDataCore(System.IO.Stream data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual bool VerifyDataCore(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public abstract bool VerifySignature(byte[] rgbHash, byte[] rgbSignature); + public bool VerifySignature(byte[] rgbHash, byte[] rgbSignature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual bool VerifySignature(System.ReadOnlySpan hash, System.ReadOnlySpan signature) => throw null; + public bool VerifySignature(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual bool VerifySignatureCore(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; } - - public class DSACng : System.Security.Cryptography.DSA + public sealed class DSACng : System.Security.Cryptography.DSA { - public override System.Byte[] CreateSignature(System.Byte[] rgbHash) => throw null; + public override byte[] CreateSignature(byte[] rgbHash) => throw null; public DSACng() => throw null; - public DSACng(System.Security.Cryptography.CngKey key) => throw null; public DSACng(int keySize) => throw null; + public DSACng(System.Security.Cryptography.CngKey key) => throw null; protected override void Dispose(bool disposing) => throw null; - public override System.Byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; - public override System.Byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public override byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public override byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; public override System.Security.Cryptography.DSAParameters ExportParameters(bool includePrivateParameters) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; public override void ImportParameters(System.Security.Cryptography.DSAParameters parameters) => throw null; public System.Security.Cryptography.CngKey Key { get => throw null; } public override string KeyExchangeAlgorithm { get => throw null; } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } public override string SignatureAlgorithm { get => throw null; } - protected override bool TryCreateSignatureCore(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; - public override bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature) => throw null; - protected override bool VerifySignatureCore(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected override bool TryCreateSignatureCore(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; + public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) => throw null; + protected override bool VerifySignatureCore(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; } - - public class DSACryptoServiceProvider : System.Security.Cryptography.DSA, System.Security.Cryptography.ICspAsymmetricAlgorithm + public sealed class DSACryptoServiceProvider : System.Security.Cryptography.DSA, System.Security.Cryptography.ICspAsymmetricAlgorithm { - public override System.Byte[] CreateSignature(System.Byte[] rgbHash) => throw null; + public override byte[] CreateSignature(byte[] rgbHash) => throw null; public System.Security.Cryptography.CspKeyContainerInfo CspKeyContainerInfo { get => throw null; } public DSACryptoServiceProvider() => throw null; - public DSACryptoServiceProvider(System.Security.Cryptography.CspParameters parameters) => throw null; public DSACryptoServiceProvider(int dwKeySize) => throw null; public DSACryptoServiceProvider(int dwKeySize, System.Security.Cryptography.CspParameters parameters) => throw null; + public DSACryptoServiceProvider(System.Security.Cryptography.CspParameters parameters) => throw null; protected override void Dispose(bool disposing) => throw null; - public System.Byte[] ExportCspBlob(bool includePrivateParameters) => throw null; + public byte[] ExportCspBlob(bool includePrivateParameters) => throw null; public override System.Security.Cryptography.DSAParameters ExportParameters(bool includePrivateParameters) => throw null; - protected override System.Byte[] HashData(System.Byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - protected override System.Byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public void ImportCspBlob(System.Byte[] keyBlob) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; + protected override byte[] HashData(byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + protected override byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public void ImportCspBlob(byte[] keyBlob) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; public override void ImportParameters(System.Security.Cryptography.DSAParameters parameters) => throw null; public override string KeyExchangeAlgorithm { get => throw null; } public override int KeySize { get => throw null; } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } - public bool PersistKeyInCsp { get => throw null; set => throw null; } + public bool PersistKeyInCsp { get => throw null; set { } } public bool PublicOnly { get => throw null; } - public System.Byte[] SignData(System.Byte[] buffer) => throw null; - public System.Byte[] SignData(System.Byte[] buffer, int offset, int count) => throw null; - public System.Byte[] SignData(System.IO.Stream inputStream) => throw null; - public System.Byte[] SignHash(System.Byte[] rgbHash, string str) => throw null; public override string SignatureAlgorithm { get => throw null; } - public static bool UseMachineKeyStore { get => throw null; set => throw null; } - public bool VerifyData(System.Byte[] rgbData, System.Byte[] rgbSignature) => throw null; - public bool VerifyHash(System.Byte[] rgbHash, string str, System.Byte[] rgbSignature) => throw null; - public override bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature) => throw null; + public byte[] SignData(byte[] buffer) => throw null; + public byte[] SignData(byte[] buffer, int offset, int count) => throw null; + public byte[] SignData(System.IO.Stream inputStream) => throw null; + public byte[] SignHash(byte[] rgbHash, string str) => throw null; + public static bool UseMachineKeyStore { get => throw null; set { } } + public bool VerifyData(byte[] rgbData, byte[] rgbSignature) => throw null; + public bool VerifyHash(byte[] rgbHash, string str, byte[] rgbSignature) => throw null; + public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) => throw null; } - - public class DSAOpenSsl : System.Security.Cryptography.DSA + public sealed class DSAOpenSsl : System.Security.Cryptography.DSA { - public override System.Byte[] CreateSignature(System.Byte[] rgbHash) => throw null; + public override byte[] CreateSignature(byte[] rgbHash) => throw null; public DSAOpenSsl() => throw null; - public DSAOpenSsl(System.Security.Cryptography.DSAParameters parameters) => throw null; - public DSAOpenSsl(System.IntPtr handle) => throw null; - public DSAOpenSsl(System.Security.Cryptography.SafeEvpPKeyHandle pkeyHandle) => throw null; public DSAOpenSsl(int keySize) => throw null; + public DSAOpenSsl(nint handle) => throw null; + public DSAOpenSsl(System.Security.Cryptography.DSAParameters parameters) => throw null; + public DSAOpenSsl(System.Security.Cryptography.SafeEvpPKeyHandle pkeyHandle) => throw null; public System.Security.Cryptography.SafeEvpPKeyHandle DuplicateKeyHandle() => throw null; public override System.Security.Cryptography.DSAParameters ExportParameters(bool includePrivateParameters) => throw null; public override void ImportParameters(System.Security.Cryptography.DSAParameters parameters) => throw null; - public override bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature) => throw null; + public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) => throw null; } - public struct DSAParameters { public int Counter; - // Stub generator skipped constructor - public System.Byte[] G; - public System.Byte[] J; - public System.Byte[] P; - public System.Byte[] Q; - public System.Byte[] Seed; - public System.Byte[] X; - public System.Byte[] Y; + public byte[] G; + public byte[] J; + public byte[] P; + public byte[] Q; + public byte[] Seed; + public byte[] X; + public byte[] Y; } - public class DSASignatureDeformatter : System.Security.Cryptography.AsymmetricSignatureDeformatter { public DSASignatureDeformatter() => throw null; public DSASignatureDeformatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; public override void SetHashAlgorithm(string strName) => throw null; public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; - public override bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature) => throw null; + public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) => throw null; } - - public enum DSASignatureFormat : int + public enum DSASignatureFormat { IeeeP1363FixedFieldConcatenation = 0, Rfc3279DerSequence = 1, } - public class DSASignatureFormatter : System.Security.Cryptography.AsymmetricSignatureFormatter { - public override System.Byte[] CreateSignature(System.Byte[] rgbHash) => throw null; + public override byte[] CreateSignature(byte[] rgbHash) => throw null; public DSASignatureFormatter() => throw null; public DSASignatureFormatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; public override void SetHashAlgorithm(string strName) => throw null; public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - - public abstract class DeriveBytes : System.IDisposable - { - protected DeriveBytes() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public abstract System.Byte[] GetBytes(int cb); - public abstract void Reset(); - } - public abstract class ECAlgorithm : System.Security.Cryptography.AsymmetricAlgorithm { protected ECAlgorithm() => throw null; - public virtual System.Byte[] ExportECPrivateKey() => throw null; + public virtual byte[] ExportECPrivateKey() => throw null; public string ExportECPrivateKeyPem() => throw null; public virtual System.Security.Cryptography.ECParameters ExportExplicitParameters(bool includePrivateParameters) => throw null; public virtual System.Security.Cryptography.ECParameters ExportParameters(bool includePrivateParameters) => throw null; public virtual void GenerateKey(System.Security.Cryptography.ECCurve curve) => throw null; - public virtual void ImportECPrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan passwordBytes) => throw null; - public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan password) => throw null; - public override void ImportFromPem(System.ReadOnlySpan input) => throw null; + public virtual void ImportECPrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan passwordBytes) => throw null; + public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan password) => throw null; + public override void ImportFromPem(System.ReadOnlySpan input) => throw null; public virtual void ImportParameters(System.Security.Cryptography.ECParameters parameters) => throw null; - public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => throw null; - public virtual bool TryExportECPrivateKey(System.Span destination, out int bytesWritten) => throw null; - public bool TryExportECPrivateKeyPem(System.Span destination, out int charsWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; + public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => throw null; + public virtual bool TryExportECPrivateKey(System.Span destination, out int bytesWritten) => throw null; + public bool TryExportECPrivateKeyPem(System.Span destination, out int charsWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; } - public struct ECCurve { - public enum ECCurveType : int + public byte[] A; + public byte[] B; + public byte[] Cofactor; + public static System.Security.Cryptography.ECCurve CreateFromFriendlyName(string oidFriendlyName) => throw null; + public static System.Security.Cryptography.ECCurve CreateFromOid(System.Security.Cryptography.Oid curveOid) => throw null; + public static System.Security.Cryptography.ECCurve CreateFromValue(string oidValue) => throw null; + public System.Security.Cryptography.ECCurve.ECCurveType CurveType; + public enum ECCurveType { - Characteristic2 = 4, Implicit = 0, - Named = 5, - PrimeMontgomery = 3, PrimeShortWeierstrass = 1, PrimeTwistedEdwards = 2, + PrimeMontgomery = 3, + Characteristic2 = 4, + Named = 5, } - - + public System.Security.Cryptography.ECPoint G; + public System.Security.Cryptography.HashAlgorithmName? Hash; + public bool IsCharacteristic2 { get => throw null; } + public bool IsExplicit { get => throw null; } + public bool IsNamed { get => throw null; } + public bool IsPrime { get => throw null; } public static class NamedCurves { public static System.Security.Cryptography.ECCurve brainpoolP160r1 { get => throw null; } @@ -875,138 +826,115 @@ namespace System public static System.Security.Cryptography.ECCurve nistP384 { get => throw null; } public static System.Security.Cryptography.ECCurve nistP521 { get => throw null; } } - - - public System.Byte[] A; - public System.Byte[] B; - public System.Byte[] Cofactor; - public static System.Security.Cryptography.ECCurve CreateFromFriendlyName(string oidFriendlyName) => throw null; - public static System.Security.Cryptography.ECCurve CreateFromOid(System.Security.Cryptography.Oid curveOid) => throw null; - public static System.Security.Cryptography.ECCurve CreateFromValue(string oidValue) => throw null; - public System.Security.Cryptography.ECCurve.ECCurveType CurveType; - // Stub generator skipped constructor - public System.Security.Cryptography.ECPoint G; - public System.Security.Cryptography.HashAlgorithmName? Hash; - public bool IsCharacteristic2 { get => throw null; } - public bool IsExplicit { get => throw null; } - public bool IsNamed { get => throw null; } - public bool IsPrime { get => throw null; } public System.Security.Cryptography.Oid Oid { get => throw null; } - public System.Byte[] Order; - public System.Byte[] Polynomial; - public System.Byte[] Prime; - public System.Byte[] Seed; + public byte[] Order; + public byte[] Polynomial; + public byte[] Prime; + public byte[] Seed; public void Validate() => throw null; } - public abstract class ECDiffieHellman : System.Security.Cryptography.ECAlgorithm { public static System.Security.Cryptography.ECDiffieHellman Create() => throw null; public static System.Security.Cryptography.ECDiffieHellman Create(System.Security.Cryptography.ECCurve curve) => throw null; public static System.Security.Cryptography.ECDiffieHellman Create(System.Security.Cryptography.ECParameters parameters) => throw null; public static System.Security.Cryptography.ECDiffieHellman Create(string algorithm) => throw null; - public System.Byte[] DeriveKeyFromHash(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public virtual System.Byte[] DeriveKeyFromHash(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Byte[] secretPrepend, System.Byte[] secretAppend) => throw null; - public System.Byte[] DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Byte[] hmacKey) => throw null; - public virtual System.Byte[] DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Byte[] hmacKey, System.Byte[] secretPrepend, System.Byte[] secretAppend) => throw null; - public virtual System.Byte[] DeriveKeyMaterial(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey) => throw null; - public virtual System.Byte[] DeriveKeyTls(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Byte[] prfLabel, System.Byte[] prfSeed) => throw null; protected ECDiffieHellman() => throw null; + public byte[] DeriveKeyFromHash(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public virtual byte[] DeriveKeyFromHash(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[] secretPrepend, byte[] secretAppend) => throw null; + public byte[] DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[] hmacKey) => throw null; + public virtual byte[] DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[] hmacKey, byte[] secretPrepend, byte[] secretAppend) => throw null; + public virtual byte[] DeriveKeyMaterial(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey) => throw null; + public virtual byte[] DeriveKeyTls(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, byte[] prfLabel, byte[] prfSeed) => throw null; public override void FromXmlString(string xmlString) => throw null; public override string KeyExchangeAlgorithm { get => throw null; } public abstract System.Security.Cryptography.ECDiffieHellmanPublicKey PublicKey { get; } public override string SignatureAlgorithm { get => throw null; } public override string ToXmlString(bool includePrivateParameters) => throw null; } - - public class ECDiffieHellmanCng : System.Security.Cryptography.ECDiffieHellman + public sealed class ECDiffieHellmanCng : System.Security.Cryptography.ECDiffieHellman { - public override System.Byte[] DeriveKeyFromHash(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Byte[] secretPrepend, System.Byte[] secretAppend) => throw null; - public override System.Byte[] DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Byte[] hmacKey, System.Byte[] secretPrepend, System.Byte[] secretAppend) => throw null; - public System.Byte[] DeriveKeyMaterial(System.Security.Cryptography.CngKey otherPartyPublicKey) => throw null; - public override System.Byte[] DeriveKeyMaterial(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey) => throw null; - public override System.Byte[] DeriveKeyTls(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Byte[] prfLabel, System.Byte[] prfSeed) => throw null; + public ECDiffieHellmanCng() => throw null; + public ECDiffieHellmanCng(int keySize) => throw null; + public ECDiffieHellmanCng(System.Security.Cryptography.CngKey key) => throw null; + public ECDiffieHellmanCng(System.Security.Cryptography.ECCurve curve) => throw null; + public override byte[] DeriveKeyFromHash(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[] secretPrepend, byte[] secretAppend) => throw null; + public override byte[] DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[] hmacKey, byte[] secretPrepend, byte[] secretAppend) => throw null; + public byte[] DeriveKeyMaterial(System.Security.Cryptography.CngKey otherPartyPublicKey) => throw null; + public override byte[] DeriveKeyMaterial(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey) => throw null; + public override byte[] DeriveKeyTls(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, byte[] prfLabel, byte[] prfSeed) => throw null; public Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle DeriveSecretAgreementHandle(System.Security.Cryptography.CngKey otherPartyPublicKey) => throw null; public Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle DeriveSecretAgreementHandle(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey) => throw null; protected override void Dispose(bool disposing) => throw null; - public ECDiffieHellmanCng() => throw null; - public ECDiffieHellmanCng(System.Security.Cryptography.CngKey key) => throw null; - public ECDiffieHellmanCng(System.Security.Cryptography.ECCurve curve) => throw null; - public ECDiffieHellmanCng(int keySize) => throw null; - public override System.Byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; - public override System.Byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public override byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public override byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; public override System.Security.Cryptography.ECParameters ExportExplicitParameters(bool includePrivateParameters) => throw null; public override System.Security.Cryptography.ECParameters ExportParameters(bool includePrivateParameters) => throw null; public void FromXmlString(string xml, System.Security.Cryptography.ECKeyXmlFormat format) => throw null; public override void GenerateKey(System.Security.Cryptography.ECCurve curve) => throw null; - public System.Security.Cryptography.CngAlgorithm HashAlgorithm { get => throw null; set => throw null; } - public System.Byte[] HmacKey { get => throw null; set => throw null; } - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; + public System.Security.Cryptography.CngAlgorithm HashAlgorithm { get => throw null; set { } } + public byte[] HmacKey { get => throw null; set { } } + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; public override void ImportParameters(System.Security.Cryptography.ECParameters parameters) => throw null; - public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; public System.Security.Cryptography.CngKey Key { get => throw null; } - public System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction KeyDerivationFunction { get => throw null; set => throw null; } - public override int KeySize { get => throw null; set => throw null; } - public System.Byte[] Label { get => throw null; set => throw null; } + public System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction KeyDerivationFunction { get => throw null; set { } } + public override int KeySize { get => throw null; set { } } + public byte[] Label { get => throw null; set { } } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } public override System.Security.Cryptography.ECDiffieHellmanPublicKey PublicKey { get => throw null; } - public System.Byte[] SecretAppend { get => throw null; set => throw null; } - public System.Byte[] SecretPrepend { get => throw null; set => throw null; } - public System.Byte[] Seed { get => throw null; set => throw null; } + public byte[] SecretAppend { get => throw null; set { } } + public byte[] SecretPrepend { get => throw null; set { } } + public byte[] Seed { get => throw null; set { } } public string ToXmlString(System.Security.Cryptography.ECKeyXmlFormat format) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; public bool UseSecretAgreementAsHmacKey { get => throw null; } } - - public class ECDiffieHellmanCngPublicKey : System.Security.Cryptography.ECDiffieHellmanPublicKey + public sealed class ECDiffieHellmanCngPublicKey : System.Security.Cryptography.ECDiffieHellmanPublicKey { public System.Security.Cryptography.CngKeyBlobFormat BlobFormat { get => throw null; } protected override void Dispose(bool disposing) => throw null; public override System.Security.Cryptography.ECParameters ExportExplicitParameters() => throw null; public override System.Security.Cryptography.ECParameters ExportParameters() => throw null; - public static System.Security.Cryptography.ECDiffieHellmanPublicKey FromByteArray(System.Byte[] publicKeyBlob, System.Security.Cryptography.CngKeyBlobFormat format) => throw null; + public static System.Security.Cryptography.ECDiffieHellmanPublicKey FromByteArray(byte[] publicKeyBlob, System.Security.Cryptography.CngKeyBlobFormat format) => throw null; public static System.Security.Cryptography.ECDiffieHellmanCngPublicKey FromXmlString(string xml) => throw null; public System.Security.Cryptography.CngKey Import() => throw null; public override string ToXmlString() => throw null; } - - public enum ECDiffieHellmanKeyDerivationFunction : int + public enum ECDiffieHellmanKeyDerivationFunction { Hash = 0, Hmac = 1, Tls = 2, } - - public class ECDiffieHellmanOpenSsl : System.Security.Cryptography.ECDiffieHellman + public sealed class ECDiffieHellmanOpenSsl : System.Security.Cryptography.ECDiffieHellman { - public System.Security.Cryptography.SafeEvpPKeyHandle DuplicateKeyHandle() => throw null; public ECDiffieHellmanOpenSsl() => throw null; - public ECDiffieHellmanOpenSsl(System.Security.Cryptography.ECCurve curve) => throw null; - public ECDiffieHellmanOpenSsl(System.IntPtr handle) => throw null; - public ECDiffieHellmanOpenSsl(System.Security.Cryptography.SafeEvpPKeyHandle pkeyHandle) => throw null; public ECDiffieHellmanOpenSsl(int keySize) => throw null; + public ECDiffieHellmanOpenSsl(nint handle) => throw null; + public ECDiffieHellmanOpenSsl(System.Security.Cryptography.ECCurve curve) => throw null; + public ECDiffieHellmanOpenSsl(System.Security.Cryptography.SafeEvpPKeyHandle pkeyHandle) => throw null; + public System.Security.Cryptography.SafeEvpPKeyHandle DuplicateKeyHandle() => throw null; public override System.Security.Cryptography.ECParameters ExportParameters(bool includePrivateParameters) => throw null; public override void ImportParameters(System.Security.Cryptography.ECParameters parameters) => throw null; public override System.Security.Cryptography.ECDiffieHellmanPublicKey PublicKey { get => throw null; } } - public abstract class ECDiffieHellmanPublicKey : System.IDisposable { + protected ECDiffieHellmanPublicKey() => throw null; + protected ECDiffieHellmanPublicKey(byte[] keyBlob) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - protected ECDiffieHellmanPublicKey() => throw null; - protected ECDiffieHellmanPublicKey(System.Byte[] keyBlob) => throw null; public virtual System.Security.Cryptography.ECParameters ExportExplicitParameters() => throw null; public virtual System.Security.Cryptography.ECParameters ExportParameters() => throw null; - public virtual System.Byte[] ExportSubjectPublicKeyInfo() => throw null; - public virtual System.Byte[] ToByteArray() => throw null; + public virtual byte[] ExportSubjectPublicKeyInfo() => throw null; + public virtual byte[] ToByteArray() => throw null; public virtual string ToXmlString() => throw null; - public virtual bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; + public virtual bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; } - public abstract class ECDsa : System.Security.Cryptography.ECAlgorithm { public static System.Security.Cryptography.ECDsa Create() => throw null; @@ -1016,345 +944,178 @@ namespace System protected ECDsa() => throw null; public override void FromXmlString(string xmlString) => throw null; public int GetMaxSignatureSize(System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual System.Byte[] HashData(System.Byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - protected virtual System.Byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + protected virtual byte[] HashData(byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + protected virtual byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; public override string KeyExchangeAlgorithm { get => throw null; } - public virtual System.Byte[] SignData(System.Byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public System.Byte[] SignData(System.Byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual System.Byte[] SignData(System.Byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public System.Byte[] SignData(System.Byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public System.Byte[] SignData(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public System.Byte[] SignData(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public int SignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public int SignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual System.Byte[] SignData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public System.Byte[] SignData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual System.Byte[] SignDataCore(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual System.Byte[] SignDataCore(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public abstract System.Byte[] SignHash(System.Byte[] hash); - public System.Byte[] SignHash(System.Byte[] hash, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public System.Byte[] SignHash(System.ReadOnlySpan hash) => throw null; - public System.Byte[] SignHash(System.ReadOnlySpan hash, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public int SignHash(System.ReadOnlySpan hash, System.Span destination) => throw null; - public int SignHash(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual System.Byte[] SignHashCore(System.ReadOnlySpan hash, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; public override string SignatureAlgorithm { get => throw null; } + public virtual byte[] SignData(byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public byte[] SignData(byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual byte[] SignData(byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public byte[] SignData(byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual byte[] SignData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public byte[] SignData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public byte[] SignData(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public byte[] SignData(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public int SignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public int SignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual byte[] SignDataCore(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual byte[] SignDataCore(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public abstract byte[] SignHash(byte[] hash); + public byte[] SignHash(byte[] hash, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public byte[] SignHash(System.ReadOnlySpan hash) => throw null; + public byte[] SignHash(System.ReadOnlySpan hash, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public int SignHash(System.ReadOnlySpan hash, System.Span destination) => throw null; + public int SignHash(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual byte[] SignHashCore(System.ReadOnlySpan hash, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; public override string ToXmlString(bool includePrivateParameters) => throw null; - protected virtual bool TryHashData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out int bytesWritten) => throw null; - public bool TrySignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; - public virtual bool TrySignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out int bytesWritten) => throw null; - protected virtual bool TrySignDataCore(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; - public bool TrySignHash(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; - public virtual bool TrySignHash(System.ReadOnlySpan hash, System.Span destination, out int bytesWritten) => throw null; - protected virtual bool TrySignHashCore(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; - public bool VerifyData(System.Byte[] data, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public bool VerifyData(System.Byte[] data, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual bool VerifyData(System.Byte[] data, int offset, int count, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public bool VerifyData(System.Byte[] data, int offset, int count, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual bool VerifyData(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public bool VerifyData(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public bool VerifyData(System.IO.Stream data, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public bool VerifyData(System.IO.Stream data, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual bool VerifyDataCore(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual bool VerifyDataCore(System.IO.Stream data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public abstract bool VerifyHash(System.Byte[] hash, System.Byte[] signature); - public bool VerifyHash(System.Byte[] hash, System.Byte[] signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - public virtual bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature) => throw null; - public bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; - protected virtual bool VerifyHashCore(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual bool TryHashData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out int bytesWritten) => throw null; + public virtual bool TrySignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out int bytesWritten) => throw null; + public bool TrySignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; + protected virtual bool TrySignDataCore(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; + public virtual bool TrySignHash(System.ReadOnlySpan hash, System.Span destination, out int bytesWritten) => throw null; + public bool TrySignHash(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; + protected virtual bool TrySignHashCore(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; + public bool VerifyData(byte[] data, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public bool VerifyData(byte[] data, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual bool VerifyData(byte[] data, int offset, int count, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public bool VerifyData(byte[] data, int offset, int count, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public bool VerifyData(System.IO.Stream data, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public bool VerifyData(System.IO.Stream data, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual bool VerifyData(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public bool VerifyData(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual bool VerifyDataCore(System.IO.Stream data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual bool VerifyDataCore(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public abstract bool VerifyHash(byte[] hash, byte[] signature); + public bool VerifyHash(byte[] hash, byte[] signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public virtual bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature) => throw null; + public bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + protected virtual bool VerifyHashCore(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; } - - public class ECDsaCng : System.Security.Cryptography.ECDsa + public sealed class ECDsaCng : System.Security.Cryptography.ECDsa { - protected override void Dispose(bool disposing) => throw null; public ECDsaCng() => throw null; + public ECDsaCng(int keySize) => throw null; public ECDsaCng(System.Security.Cryptography.CngKey key) => throw null; public ECDsaCng(System.Security.Cryptography.ECCurve curve) => throw null; - public ECDsaCng(int keySize) => throw null; - public override System.Byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; - public override System.Byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public override byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; public override System.Security.Cryptography.ECParameters ExportExplicitParameters(bool includePrivateParameters) => throw null; public override System.Security.Cryptography.ECParameters ExportParameters(bool includePrivateParameters) => throw null; public void FromXmlString(string xml, System.Security.Cryptography.ECKeyXmlFormat format) => throw null; public override void GenerateKey(System.Security.Cryptography.ECCurve curve) => throw null; - public System.Security.Cryptography.CngAlgorithm HashAlgorithm { get => throw null; set => throw null; } - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; + public System.Security.Cryptography.CngAlgorithm HashAlgorithm { get => throw null; set { } } + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; public override void ImportParameters(System.Security.Cryptography.ECParameters parameters) => throw null; - public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; public System.Security.Cryptography.CngKey Key { get => throw null; } - public override int KeySize { get => throw null; set => throw null; } + public override int KeySize { get => throw null; set { } } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } - public System.Byte[] SignData(System.Byte[] data) => throw null; - public System.Byte[] SignData(System.Byte[] data, int offset, int count) => throw null; - public System.Byte[] SignData(System.IO.Stream data) => throw null; - public override System.Byte[] SignHash(System.Byte[] hash) => throw null; + public byte[] SignData(byte[] data) => throw null; + public byte[] SignData(byte[] data, int offset, int count) => throw null; + public byte[] SignData(System.IO.Stream data) => throw null; + public override byte[] SignHash(byte[] hash) => throw null; public string ToXmlString(System.Security.Cryptography.ECKeyXmlFormat format) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; - public override bool TrySignHash(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; - protected override bool TrySignHashCore(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; - public bool VerifyData(System.Byte[] data, System.Byte[] signature) => throw null; - public bool VerifyData(System.Byte[] data, int offset, int count, System.Byte[] signature) => throw null; - public bool VerifyData(System.IO.Stream data, System.Byte[] signature) => throw null; - public override bool VerifyHash(System.Byte[] hash, System.Byte[] signature) => throw null; - public override bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature) => throw null; - protected override bool VerifyHashCore(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; + public override bool TrySignHash(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + protected override bool TrySignHashCore(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.DSASignatureFormat signatureFormat, out int bytesWritten) => throw null; + public bool VerifyData(byte[] data, byte[] signature) => throw null; + public bool VerifyData(byte[] data, int offset, int count, byte[] signature) => throw null; + public bool VerifyData(System.IO.Stream data, byte[] signature) => throw null; + public override bool VerifyHash(byte[] hash, byte[] signature) => throw null; + public override bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature) => throw null; + protected override bool VerifyHashCore(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; } - - public class ECDsaOpenSsl : System.Security.Cryptography.ECDsa + public sealed class ECDsaOpenSsl : System.Security.Cryptography.ECDsa { - public System.Security.Cryptography.SafeEvpPKeyHandle DuplicateKeyHandle() => throw null; public ECDsaOpenSsl() => throw null; - public ECDsaOpenSsl(System.Security.Cryptography.ECCurve curve) => throw null; - public ECDsaOpenSsl(System.IntPtr handle) => throw null; - public ECDsaOpenSsl(System.Security.Cryptography.SafeEvpPKeyHandle pkeyHandle) => throw null; public ECDsaOpenSsl(int keySize) => throw null; - public override System.Byte[] SignHash(System.Byte[] hash) => throw null; - public override bool VerifyHash(System.Byte[] hash, System.Byte[] signature) => throw null; + public ECDsaOpenSsl(nint handle) => throw null; + public ECDsaOpenSsl(System.Security.Cryptography.ECCurve curve) => throw null; + public ECDsaOpenSsl(System.Security.Cryptography.SafeEvpPKeyHandle pkeyHandle) => throw null; + public System.Security.Cryptography.SafeEvpPKeyHandle DuplicateKeyHandle() => throw null; + public override byte[] SignHash(byte[] hash) => throw null; + public override bool VerifyHash(byte[] hash, byte[] signature) => throw null; } - - public enum ECKeyXmlFormat : int + public enum ECKeyXmlFormat { Rfc4050 = 0, } - public struct ECParameters { public System.Security.Cryptography.ECCurve Curve; - public System.Byte[] D; - // Stub generator skipped constructor + public byte[] D; public System.Security.Cryptography.ECPoint Q; public void Validate() => throw null; } - public struct ECPoint { - // Stub generator skipped constructor - public System.Byte[] X; - public System.Byte[] Y; + public byte[] X; + public byte[] Y; } - public class FromBase64Transform : System.IDisposable, System.Security.Cryptography.ICryptoTransform { public virtual bool CanReuseTransform { get => throw null; } public bool CanTransformMultipleBlocks { get => throw null; } public void Clear() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; public FromBase64Transform() => throw null; public FromBase64Transform(System.Security.Cryptography.FromBase64TransformMode whitespaces) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; public int InputBlockSize { get => throw null; } public int OutputBlockSize { get => throw null; } - public int TransformBlock(System.Byte[] inputBuffer, int inputOffset, int inputCount, System.Byte[] outputBuffer, int outputOffset) => throw null; - public System.Byte[] TransformFinalBlock(System.Byte[] inputBuffer, int inputOffset, int inputCount) => throw null; - // ERR: Stub generator didn't handle member: ~FromBase64Transform + public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) => throw null; + public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) => throw null; } - - public enum FromBase64TransformMode : int + public enum FromBase64TransformMode { - DoNotIgnoreWhiteSpaces = 1, IgnoreWhiteSpaces = 0, + DoNotIgnoreWhiteSpaces = 1, } - - public static class HKDF - { - public static System.Byte[] DeriveKey(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, System.Byte[] ikm, int outputLength, System.Byte[] salt = default(System.Byte[]), System.Byte[] info = default(System.Byte[])) => throw null; - public static void DeriveKey(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, System.ReadOnlySpan ikm, System.Span output, System.ReadOnlySpan salt, System.ReadOnlySpan info) => throw null; - public static System.Byte[] Expand(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, System.Byte[] prk, int outputLength, System.Byte[] info = default(System.Byte[])) => throw null; - public static void Expand(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, System.ReadOnlySpan prk, System.Span output, System.ReadOnlySpan info) => throw null; - public static System.Byte[] Extract(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, System.Byte[] ikm, System.Byte[] salt = default(System.Byte[])) => throw null; - public static int Extract(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, System.ReadOnlySpan ikm, System.ReadOnlySpan salt, System.Span prk) => throw null; - } - - public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm - { - protected int BlockSizeValue { get => throw null; set => throw null; } - public static System.Security.Cryptography.HMAC Create() => throw null; - public static System.Security.Cryptography.HMAC Create(string algorithmName) => throw null; - protected override void Dispose(bool disposing) => throw null; - protected HMAC() => throw null; - protected override void HashCore(System.Byte[] rgb, int ib, int cb) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public string HashName { get => throw null; set => throw null; } - public override void Initialize() => throw null; - public override System.Byte[] Key { get => throw null; set => throw null; } - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; - } - - public class HMACMD5 : System.Security.Cryptography.HMAC - { - protected override void Dispose(bool disposing) => throw null; - public HMACMD5() => throw null; - public HMACMD5(System.Byte[] key) => throw null; - protected override void HashCore(System.Byte[] rgb, int ib, int cb) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - public static System.Byte[] HashData(System.Byte[] key, System.Byte[] source) => throw null; - public static System.Byte[] HashData(System.Byte[] key, System.IO.Stream source) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; - public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan key, System.IO.Stream source) => throw null; - public static int HashData(System.ReadOnlySpan key, System.IO.Stream source, System.Span destination) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.Byte[] key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; - public override void Initialize() => throw null; - public override System.Byte[] Key { get => throw null; set => throw null; } - public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; - } - - public class HMACSHA1 : System.Security.Cryptography.HMAC - { - protected override void Dispose(bool disposing) => throw null; - public HMACSHA1() => throw null; - public HMACSHA1(System.Byte[] key) => throw null; - public HMACSHA1(System.Byte[] key, bool useManagedSha1) => throw null; - protected override void HashCore(System.Byte[] rgb, int ib, int cb) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - public static System.Byte[] HashData(System.Byte[] key, System.Byte[] source) => throw null; - public static System.Byte[] HashData(System.Byte[] key, System.IO.Stream source) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; - public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan key, System.IO.Stream source) => throw null; - public static int HashData(System.ReadOnlySpan key, System.IO.Stream source, System.Span destination) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.Byte[] key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; - public override void Initialize() => throw null; - public override System.Byte[] Key { get => throw null; set => throw null; } - public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; - } - - public class HMACSHA256 : System.Security.Cryptography.HMAC - { - protected override void Dispose(bool disposing) => throw null; - public HMACSHA256() => throw null; - public HMACSHA256(System.Byte[] key) => throw null; - protected override void HashCore(System.Byte[] rgb, int ib, int cb) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - public static System.Byte[] HashData(System.Byte[] key, System.Byte[] source) => throw null; - public static System.Byte[] HashData(System.Byte[] key, System.IO.Stream source) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; - public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan key, System.IO.Stream source) => throw null; - public static int HashData(System.ReadOnlySpan key, System.IO.Stream source, System.Span destination) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.Byte[] key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; - public override void Initialize() => throw null; - public override System.Byte[] Key { get => throw null; set => throw null; } - public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; - } - - public class HMACSHA384 : System.Security.Cryptography.HMAC - { - protected override void Dispose(bool disposing) => throw null; - public HMACSHA384() => throw null; - public HMACSHA384(System.Byte[] key) => throw null; - protected override void HashCore(System.Byte[] rgb, int ib, int cb) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - public static System.Byte[] HashData(System.Byte[] key, System.Byte[] source) => throw null; - public static System.Byte[] HashData(System.Byte[] key, System.IO.Stream source) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; - public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan key, System.IO.Stream source) => throw null; - public static int HashData(System.ReadOnlySpan key, System.IO.Stream source, System.Span destination) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.Byte[] key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; - public override void Initialize() => throw null; - public override System.Byte[] Key { get => throw null; set => throw null; } - public bool ProduceLegacyHmacValues { get => throw null; set => throw null; } - public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; - } - - public class HMACSHA512 : System.Security.Cryptography.HMAC - { - protected override void Dispose(bool disposing) => throw null; - public HMACSHA512() => throw null; - public HMACSHA512(System.Byte[] key) => throw null; - protected override void HashCore(System.Byte[] rgb, int ib, int cb) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - public static System.Byte[] HashData(System.Byte[] key, System.Byte[] source) => throw null; - public static System.Byte[] HashData(System.Byte[] key, System.IO.Stream source) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; - public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan key, System.IO.Stream source) => throw null; - public static int HashData(System.ReadOnlySpan key, System.IO.Stream source, System.Span destination) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.Byte[] key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; - public override void Initialize() => throw null; - public override System.Byte[] Key { get => throw null; set => throw null; } - public bool ProduceLegacyHmacValues { get => throw null; set => throw null; } - public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; - } - public abstract class HashAlgorithm : System.IDisposable, System.Security.Cryptography.ICryptoTransform { public virtual bool CanReuseTransform { get => throw null; } public virtual bool CanTransformMultipleBlocks { get => throw null; } public void Clear() => throw null; - public System.Byte[] ComputeHash(System.Byte[] buffer) => throw null; - public System.Byte[] ComputeHash(System.Byte[] buffer, int offset, int count) => throw null; - public System.Byte[] ComputeHash(System.IO.Stream inputStream) => throw null; - public System.Threading.Tasks.Task ComputeHashAsync(System.IO.Stream inputStream, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public byte[] ComputeHash(byte[] buffer) => throw null; + public byte[] ComputeHash(byte[] buffer, int offset, int count) => throw null; + public byte[] ComputeHash(System.IO.Stream inputStream) => throw null; + public System.Threading.Tasks.Task ComputeHashAsync(System.IO.Stream inputStream, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Security.Cryptography.HashAlgorithm Create() => throw null; public static System.Security.Cryptography.HashAlgorithm Create(string hashName) => throw null; + protected HashAlgorithm() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public virtual System.Byte[] Hash { get => throw null; } - protected HashAlgorithm() => throw null; - protected abstract void HashCore(System.Byte[] array, int ibStart, int cbSize); - protected virtual void HashCore(System.ReadOnlySpan source) => throw null; - protected abstract System.Byte[] HashFinal(); + public virtual byte[] Hash { get => throw null; } + protected abstract void HashCore(byte[] array, int ibStart, int cbSize); + protected virtual void HashCore(System.ReadOnlySpan source) => throw null; + protected abstract byte[] HashFinal(); public virtual int HashSize { get => throw null; } protected int HashSizeValue; - protected internal System.Byte[] HashValue; + protected byte[] HashValue; public abstract void Initialize(); public virtual int InputBlockSize { get => throw null; } public virtual int OutputBlockSize { get => throw null; } protected int State; - public int TransformBlock(System.Byte[] inputBuffer, int inputOffset, int inputCount, System.Byte[] outputBuffer, int outputOffset) => throw null; - public System.Byte[] TransformFinalBlock(System.Byte[] inputBuffer, int inputOffset, int inputCount) => throw null; - public bool TryComputeHash(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; - protected virtual bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) => throw null; + public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) => throw null; + public bool TryComputeHash(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + protected virtual bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - public struct HashAlgorithmName : System.IEquatable { - public static bool operator !=(System.Security.Cryptography.HashAlgorithmName left, System.Security.Cryptography.HashAlgorithmName right) => throw null; - public static bool operator ==(System.Security.Cryptography.HashAlgorithmName left, System.Security.Cryptography.HashAlgorithmName right) => throw null; - public bool Equals(System.Security.Cryptography.HashAlgorithmName other) => throw null; + public HashAlgorithmName(string name) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Security.Cryptography.HashAlgorithmName other) => throw null; public static System.Security.Cryptography.HashAlgorithmName FromOid(string oidValue) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor - public HashAlgorithmName(string name) => throw null; public static System.Security.Cryptography.HashAlgorithmName MD5 { get => throw null; } public string Name { get => throw null; } + public static bool operator ==(System.Security.Cryptography.HashAlgorithmName left, System.Security.Cryptography.HashAlgorithmName right) => throw null; + public static bool operator !=(System.Security.Cryptography.HashAlgorithmName left, System.Security.Cryptography.HashAlgorithmName right) => throw null; public static System.Security.Cryptography.HashAlgorithmName SHA1 { get => throw null; } public static System.Security.Cryptography.HashAlgorithmName SHA256 { get => throw null; } public static System.Security.Cryptography.HashAlgorithmName SHA384 { get => throw null; } @@ -1362,394 +1123,577 @@ namespace System public override string ToString() => throw null; public static bool TryFromOid(string oidValue, out System.Security.Cryptography.HashAlgorithmName value) => throw null; } - + public static class HKDF + { + public static byte[] DeriveKey(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, byte[] ikm, int outputLength, byte[] salt = default(byte[]), byte[] info = default(byte[])) => throw null; + public static void DeriveKey(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, System.ReadOnlySpan ikm, System.Span output, System.ReadOnlySpan salt, System.ReadOnlySpan info) => throw null; + public static byte[] Expand(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, byte[] prk, int outputLength, byte[] info = default(byte[])) => throw null; + public static void Expand(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, System.ReadOnlySpan prk, System.Span output, System.ReadOnlySpan info) => throw null; + public static byte[] Extract(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, byte[] ikm, byte[] salt = default(byte[])) => throw null; + public static int Extract(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, System.ReadOnlySpan ikm, System.ReadOnlySpan salt, System.Span prk) => throw null; + } + public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm + { + protected int BlockSizeValue { get => throw null; set { } } + public static System.Security.Cryptography.HMAC Create() => throw null; + public static System.Security.Cryptography.HMAC Create(string algorithmName) => throw null; + protected HMAC() => throw null; + protected override void Dispose(bool disposing) => throw null; + protected override void HashCore(byte[] rgb, int ib, int cb) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + protected override byte[] HashFinal() => throw null; + public string HashName { get => throw null; set { } } + public override void Initialize() => throw null; + public override byte[] Key { get => throw null; set { } } + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + } + public class HMACMD5 : System.Security.Cryptography.HMAC + { + public HMACMD5() => throw null; + public HMACMD5(byte[] key) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected override void HashCore(byte[] rgb, int ib, int cb) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + public static byte[] HashData(byte[] key, byte[] source) => throw null; + public static byte[] HashData(byte[] key, System.IO.Stream source) => throw null; + public static byte[] HashData(System.ReadOnlySpan key, System.IO.Stream source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.IO.Stream source, System.Span destination) => throw null; + public static byte[] HashData(System.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(byte[] key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected override byte[] HashFinal() => throw null; + public static int HashSizeInBits; + public static int HashSizeInBytes; + public override void Initialize() => throw null; + public override byte[] Key { get => throw null; set { } } + public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + } + public class HMACSHA1 : System.Security.Cryptography.HMAC + { + public HMACSHA1() => throw null; + public HMACSHA1(byte[] key) => throw null; + public HMACSHA1(byte[] key, bool useManagedSha1) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected override void HashCore(byte[] rgb, int ib, int cb) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + public static byte[] HashData(byte[] key, byte[] source) => throw null; + public static byte[] HashData(byte[] key, System.IO.Stream source) => throw null; + public static byte[] HashData(System.ReadOnlySpan key, System.IO.Stream source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.IO.Stream source, System.Span destination) => throw null; + public static byte[] HashData(System.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(byte[] key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected override byte[] HashFinal() => throw null; + public static int HashSizeInBits; + public static int HashSizeInBytes; + public override void Initialize() => throw null; + public override byte[] Key { get => throw null; set { } } + public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + } + public class HMACSHA256 : System.Security.Cryptography.HMAC + { + public HMACSHA256() => throw null; + public HMACSHA256(byte[] key) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected override void HashCore(byte[] rgb, int ib, int cb) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + public static byte[] HashData(byte[] key, byte[] source) => throw null; + public static byte[] HashData(byte[] key, System.IO.Stream source) => throw null; + public static byte[] HashData(System.ReadOnlySpan key, System.IO.Stream source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.IO.Stream source, System.Span destination) => throw null; + public static byte[] HashData(System.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(byte[] key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected override byte[] HashFinal() => throw null; + public static int HashSizeInBits; + public static int HashSizeInBytes; + public override void Initialize() => throw null; + public override byte[] Key { get => throw null; set { } } + public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + } + public class HMACSHA384 : System.Security.Cryptography.HMAC + { + public HMACSHA384() => throw null; + public HMACSHA384(byte[] key) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected override void HashCore(byte[] rgb, int ib, int cb) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + public static byte[] HashData(byte[] key, byte[] source) => throw null; + public static byte[] HashData(byte[] key, System.IO.Stream source) => throw null; + public static byte[] HashData(System.ReadOnlySpan key, System.IO.Stream source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.IO.Stream source, System.Span destination) => throw null; + public static byte[] HashData(System.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(byte[] key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected override byte[] HashFinal() => throw null; + public static int HashSizeInBits; + public static int HashSizeInBytes; + public override void Initialize() => throw null; + public override byte[] Key { get => throw null; set { } } + public bool ProduceLegacyHmacValues { get => throw null; set { } } + public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + } + public class HMACSHA512 : System.Security.Cryptography.HMAC + { + public HMACSHA512() => throw null; + public HMACSHA512(byte[] key) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected override void HashCore(byte[] rgb, int ib, int cb) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + public static byte[] HashData(byte[] key, byte[] source) => throw null; + public static byte[] HashData(byte[] key, System.IO.Stream source) => throw null; + public static byte[] HashData(System.ReadOnlySpan key, System.IO.Stream source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.IO.Stream source, System.Span destination) => throw null; + public static byte[] HashData(System.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(byte[] key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected override byte[] HashFinal() => throw null; + public static int HashSizeInBits; + public static int HashSizeInBytes; + public override void Initialize() => throw null; + public override byte[] Key { get => throw null; set { } } + public bool ProduceLegacyHmacValues { get => throw null; set { } } + public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + } public interface ICryptoTransform : System.IDisposable { bool CanReuseTransform { get; } bool CanTransformMultipleBlocks { get; } int InputBlockSize { get; } int OutputBlockSize { get; } - int TransformBlock(System.Byte[] inputBuffer, int inputOffset, int inputCount, System.Byte[] outputBuffer, int outputOffset); - System.Byte[] TransformFinalBlock(System.Byte[] inputBuffer, int inputOffset, int inputCount); + int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset); + byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount); } - public interface ICspAsymmetricAlgorithm { System.Security.Cryptography.CspKeyContainerInfo CspKeyContainerInfo { get; } - System.Byte[] ExportCspBlob(bool includePrivateParameters); - void ImportCspBlob(System.Byte[] rawData); + byte[] ExportCspBlob(bool includePrivateParameters); + void ImportCspBlob(byte[] rawData); } - - public class IncrementalHash : System.IDisposable + public sealed class IncrementalHash : System.IDisposable { public System.Security.Cryptography.HashAlgorithmName AlgorithmName { get => throw null; } - public void AppendData(System.Byte[] data) => throw null; - public void AppendData(System.Byte[] data, int offset, int count) => throw null; - public void AppendData(System.ReadOnlySpan data) => throw null; - public static System.Security.Cryptography.IncrementalHash CreateHMAC(System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Byte[] key) => throw null; - public static System.Security.Cryptography.IncrementalHash CreateHMAC(System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.ReadOnlySpan key) => throw null; + public void AppendData(byte[] data) => throw null; + public void AppendData(byte[] data, int offset, int count) => throw null; + public void AppendData(System.ReadOnlySpan data) => throw null; public static System.Security.Cryptography.IncrementalHash CreateHash(System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public static System.Security.Cryptography.IncrementalHash CreateHMAC(System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[] key) => throw null; + public static System.Security.Cryptography.IncrementalHash CreateHMAC(System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.ReadOnlySpan key) => throw null; public void Dispose() => throw null; - public System.Byte[] GetCurrentHash() => throw null; - public int GetCurrentHash(System.Span destination) => throw null; - public System.Byte[] GetHashAndReset() => throw null; - public int GetHashAndReset(System.Span destination) => throw null; + public byte[] GetCurrentHash() => throw null; + public int GetCurrentHash(System.Span destination) => throw null; + public byte[] GetHashAndReset() => throw null; + public int GetHashAndReset(System.Span destination) => throw null; public int HashLengthInBytes { get => throw null; } - public bool TryGetCurrentHash(System.Span destination, out int bytesWritten) => throw null; - public bool TryGetHashAndReset(System.Span destination, out int bytesWritten) => throw null; + public bool TryGetCurrentHash(System.Span destination, out int bytesWritten) => throw null; + public bool TryGetHashAndReset(System.Span destination, out int bytesWritten) => throw null; } - - public enum KeyNumber : int + public abstract class KeyedHashAlgorithm : System.Security.Cryptography.HashAlgorithm + { + public static System.Security.Cryptography.KeyedHashAlgorithm Create() => throw null; + public static System.Security.Cryptography.KeyedHashAlgorithm Create(string algName) => throw null; + protected KeyedHashAlgorithm() => throw null; + protected override void Dispose(bool disposing) => throw null; + public virtual byte[] Key { get => throw null; set { } } + protected byte[] KeyValue; + } + public enum KeyNumber { Exchange = 1, Signature = 2, } - - public class KeySizes + public sealed class KeySizes { public KeySizes(int minSize, int maxSize, int skipSize) => throw null; public int MaxSize { get => throw null; } public int MinSize { get => throw null; } public int SkipSize { get => throw null; } } - - public abstract class KeyedHashAlgorithm : System.Security.Cryptography.HashAlgorithm + public abstract class MaskGenerationMethod { - public static System.Security.Cryptography.KeyedHashAlgorithm Create() => throw null; - public static System.Security.Cryptography.KeyedHashAlgorithm Create(string algName) => throw null; - protected override void Dispose(bool disposing) => throw null; - public virtual System.Byte[] Key { get => throw null; set => throw null; } - protected System.Byte[] KeyValue; - protected KeyedHashAlgorithm() => throw null; + protected MaskGenerationMethod() => throw null; + public abstract byte[] GenerateMask(byte[] rgbSeed, int cbReturn); } - public abstract class MD5 : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.MD5 Create() => throw null; public static System.Security.Cryptography.MD5 Create(string algName) => throw null; - public static System.Byte[] HashData(System.Byte[] source) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan source) => throw null; - public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Byte[] HashData(System.IO.Stream source) => throw null; - public static int HashData(System.IO.Stream source, System.Span destination) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; protected MD5() => throw null; - public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + public static byte[] HashData(byte[] source) => throw null; + public static byte[] HashData(System.IO.Stream source) => throw null; + public static int HashData(System.IO.Stream source, System.Span destination) => throw null; + public static byte[] HashData(System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static int HashSizeInBits; + public static int HashSizeInBytes; + public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - - public class MD5CryptoServiceProvider : System.Security.Cryptography.MD5 + public sealed class MD5CryptoServiceProvider : System.Security.Cryptography.MD5 { - protected override void Dispose(bool disposing) => throw null; - protected override void HashCore(System.Byte[] array, int ibStart, int cbSize) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public override void Initialize() => throw null; public MD5CryptoServiceProvider() => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected override void HashCore(byte[] array, int ibStart, int cbSize) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + protected override byte[] HashFinal() => throw null; + public override void Initialize() => throw null; + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - - public abstract class MaskGenerationMethod + public sealed class Oid { - public abstract System.Byte[] GenerateMask(System.Byte[] rgbSeed, int cbReturn); - protected MaskGenerationMethod() => throw null; - } - - public class Oid - { - public string FriendlyName { get => throw null; set => throw null; } - public static System.Security.Cryptography.Oid FromFriendlyName(string friendlyName, System.Security.Cryptography.OidGroup group) => throw null; - public static System.Security.Cryptography.Oid FromOidValue(string oidValue, System.Security.Cryptography.OidGroup group) => throw null; public Oid() => throw null; public Oid(System.Security.Cryptography.Oid oid) => throw null; public Oid(string oid) => throw null; public Oid(string value, string friendlyName) => throw null; - public string Value { get => throw null; set => throw null; } + public string FriendlyName { get => throw null; set { } } + public static System.Security.Cryptography.Oid FromFriendlyName(string friendlyName, System.Security.Cryptography.OidGroup group) => throw null; + public static System.Security.Cryptography.Oid FromOidValue(string oidValue, System.Security.Cryptography.OidGroup group) => throw null; + public string Value { get => throw null; set { } } } - - public class OidCollection : System.Collections.ICollection, System.Collections.IEnumerable + public sealed class OidCollection : System.Collections.ICollection, System.Collections.IEnumerable { public int Add(System.Security.Cryptography.Oid oid) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(System.Security.Cryptography.Oid[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public OidCollection() => throw null; public System.Security.Cryptography.OidEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsSynchronized { get => throw null; } + public object SyncRoot { get => throw null; } public System.Security.Cryptography.Oid this[int index] { get => throw null; } public System.Security.Cryptography.Oid this[string oid] { get => throw null; } - public OidCollection() => throw null; - public object SyncRoot { get => throw null; } } - - public class OidEnumerator : System.Collections.IEnumerator + public sealed class OidEnumerator : System.Collections.IEnumerator { public System.Security.Cryptography.Oid Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public bool MoveNext() => throw null; public void Reset() => throw null; } - - public enum OidGroup : int + public enum OidGroup { All = 0, - Attribute = 5, - EncryptionAlgorithm = 2, - EnhancedKeyUsage = 7, - ExtensionOrAttribute = 6, HashAlgorithm = 1, - KeyDerivationFunction = 10, - Policy = 8, + EncryptionAlgorithm = 2, PublicKeyAlgorithm = 3, SignatureAlgorithm = 4, + Attribute = 5, + ExtensionOrAttribute = 6, + EnhancedKeyUsage = 7, + Policy = 8, Template = 9, + KeyDerivationFunction = 10, } - - public class PKCS1MaskGenerationMethod : System.Security.Cryptography.MaskGenerationMethod + public enum PaddingMode { - public override System.Byte[] GenerateMask(System.Byte[] rgbSeed, int cbReturn) => throw null; - public string HashName { get => throw null; set => throw null; } - public PKCS1MaskGenerationMethod() => throw null; - } - - public enum PaddingMode : int - { - ANSIX923 = 4, - ISO10126 = 5, None = 1, PKCS7 = 2, Zeros = 3, + ANSIX923 = 4, + ISO10126 = 5, } - public class PasswordDeriveBytes : System.Security.Cryptography.DeriveBytes { - public System.Byte[] CryptDeriveKey(string algname, string alghashname, int keySize, System.Byte[] rgbIV) => throw null; + public byte[] CryptDeriveKey(string algname, string alghashname, int keySize, byte[] rgbIV) => throw null; + public PasswordDeriveBytes(byte[] password, byte[] salt) => throw null; + public PasswordDeriveBytes(byte[] password, byte[] salt, System.Security.Cryptography.CspParameters cspParams) => throw null; + public PasswordDeriveBytes(byte[] password, byte[] salt, string hashName, int iterations) => throw null; + public PasswordDeriveBytes(byte[] password, byte[] salt, string hashName, int iterations, System.Security.Cryptography.CspParameters cspParams) => throw null; + public PasswordDeriveBytes(string strPassword, byte[] rgbSalt) => throw null; + public PasswordDeriveBytes(string strPassword, byte[] rgbSalt, System.Security.Cryptography.CspParameters cspParams) => throw null; + public PasswordDeriveBytes(string strPassword, byte[] rgbSalt, string strHashName, int iterations) => throw null; + public PasswordDeriveBytes(string strPassword, byte[] rgbSalt, string strHashName, int iterations, System.Security.Cryptography.CspParameters cspParams) => throw null; protected override void Dispose(bool disposing) => throw null; - public override System.Byte[] GetBytes(int cb) => throw null; - public string HashName { get => throw null; set => throw null; } - public int IterationCount { get => throw null; set => throw null; } - public PasswordDeriveBytes(System.Byte[] password, System.Byte[] salt) => throw null; - public PasswordDeriveBytes(System.Byte[] password, System.Byte[] salt, System.Security.Cryptography.CspParameters cspParams) => throw null; - public PasswordDeriveBytes(System.Byte[] password, System.Byte[] salt, string hashName, int iterations) => throw null; - public PasswordDeriveBytes(System.Byte[] password, System.Byte[] salt, string hashName, int iterations, System.Security.Cryptography.CspParameters cspParams) => throw null; - public PasswordDeriveBytes(string strPassword, System.Byte[] rgbSalt) => throw null; - public PasswordDeriveBytes(string strPassword, System.Byte[] rgbSalt, System.Security.Cryptography.CspParameters cspParams) => throw null; - public PasswordDeriveBytes(string strPassword, System.Byte[] rgbSalt, string strHashName, int iterations) => throw null; - public PasswordDeriveBytes(string strPassword, System.Byte[] rgbSalt, string strHashName, int iterations, System.Security.Cryptography.CspParameters cspParams) => throw null; + public override byte[] GetBytes(int cb) => throw null; + public string HashName { get => throw null; set { } } + public int IterationCount { get => throw null; set { } } public override void Reset() => throw null; - public System.Byte[] Salt { get => throw null; set => throw null; } + public byte[] Salt { get => throw null; set { } } } - - public enum PbeEncryptionAlgorithm : int + public enum PbeEncryptionAlgorithm { + Unknown = 0, Aes128Cbc = 1, Aes192Cbc = 2, Aes256Cbc = 3, TripleDes3KeyPkcs12 = 4, - Unknown = 0, } - - public class PbeParameters + public sealed class PbeParameters { + public PbeParameters(System.Security.Cryptography.PbeEncryptionAlgorithm encryptionAlgorithm, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int iterationCount) => throw null; public System.Security.Cryptography.PbeEncryptionAlgorithm EncryptionAlgorithm { get => throw null; } public System.Security.Cryptography.HashAlgorithmName HashAlgorithm { get => throw null; } public int IterationCount { get => throw null; } - public PbeParameters(System.Security.Cryptography.PbeEncryptionAlgorithm encryptionAlgorithm, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int iterationCount) => throw null; } - public static class PemEncoding { - public static System.Security.Cryptography.PemFields Find(System.ReadOnlySpan pemData) => throw null; + public static System.Security.Cryptography.PemFields Find(System.ReadOnlySpan pemData) => throw null; public static int GetEncodedSize(int labelLength, int dataLength) => throw null; - public static bool TryFind(System.ReadOnlySpan pemData, out System.Security.Cryptography.PemFields fields) => throw null; - public static bool TryWrite(System.ReadOnlySpan label, System.ReadOnlySpan data, System.Span destination, out int charsWritten) => throw null; - public static System.Char[] Write(System.ReadOnlySpan label, System.ReadOnlySpan data) => throw null; - public static string WriteString(System.ReadOnlySpan label, System.ReadOnlySpan data) => throw null; + public static bool TryFind(System.ReadOnlySpan pemData, out System.Security.Cryptography.PemFields fields) => throw null; + public static bool TryWrite(System.ReadOnlySpan label, System.ReadOnlySpan data, System.Span destination, out int charsWritten) => throw null; + public static char[] Write(System.ReadOnlySpan label, System.ReadOnlySpan data) => throw null; + public static string WriteString(System.ReadOnlySpan label, System.ReadOnlySpan data) => throw null; } - public struct PemFields { public System.Range Base64Data { get => throw null; } public int DecodedDataLength { get => throw null; } public System.Range Label { get => throw null; } public System.Range Location { get => throw null; } - // Stub generator skipped constructor } - + public class PKCS1MaskGenerationMethod : System.Security.Cryptography.MaskGenerationMethod + { + public PKCS1MaskGenerationMethod() => throw null; + public override byte[] GenerateMask(byte[] rgbSeed, int cbReturn) => throw null; + public string HashName { get => throw null; set { } } + } + public abstract class RandomNumberGenerator : System.IDisposable + { + public static System.Security.Cryptography.RandomNumberGenerator Create() => throw null; + public static System.Security.Cryptography.RandomNumberGenerator Create(string rngName) => throw null; + protected RandomNumberGenerator() => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public static void Fill(System.Span data) => throw null; + public abstract void GetBytes(byte[] data); + public virtual void GetBytes(byte[] data, int offset, int count) => throw null; + public static byte[] GetBytes(int count) => throw null; + public virtual void GetBytes(System.Span data) => throw null; + public static int GetInt32(int toExclusive) => throw null; + public static int GetInt32(int fromInclusive, int toExclusive) => throw null; + public virtual void GetNonZeroBytes(byte[] data) => throw null; + public virtual void GetNonZeroBytes(System.Span data) => throw null; + } public abstract class RC2 : System.Security.Cryptography.SymmetricAlgorithm { public static System.Security.Cryptography.RC2 Create() => throw null; public static System.Security.Cryptography.RC2 Create(string AlgName) => throw null; - public virtual int EffectiveKeySize { get => throw null; set => throw null; } - protected int EffectiveKeySizeValue; - public override int KeySize { get => throw null; set => throw null; } protected RC2() => throw null; + public virtual int EffectiveKeySize { get => throw null; set { } } + protected int EffectiveKeySizeValue; + public override int KeySize { get => throw null; set { } } } - - public class RC2CryptoServiceProvider : System.Security.Cryptography.RC2 + public sealed class RC2CryptoServiceProvider : System.Security.Cryptography.RC2 { - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; - public override int EffectiveKeySize { get => throw null; set => throw null; } + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV) => throw null; + public RC2CryptoServiceProvider() => throw null; + public override int EffectiveKeySize { get => throw null; set { } } public override void GenerateIV() => throw null; public override void GenerateKey() => throw null; - public RC2CryptoServiceProvider() => throw null; - public bool UseSalt { get => throw null; set => throw null; } + public bool UseSalt { get => throw null; set { } } } - - public class RNGCryptoServiceProvider : System.Security.Cryptography.RandomNumberGenerator + public class Rfc2898DeriveBytes : System.Security.Cryptography.DeriveBytes { + public byte[] CryptDeriveKey(string algname, string alghashname, int keySize, byte[] rgbIV) => throw null; + public Rfc2898DeriveBytes(byte[] password, byte[] salt, int iterations) => throw null; + public Rfc2898DeriveBytes(byte[] password, byte[] salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public Rfc2898DeriveBytes(string password, byte[] salt) => throw null; + public Rfc2898DeriveBytes(string password, byte[] salt, int iterations) => throw null; + public Rfc2898DeriveBytes(string password, byte[] salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public Rfc2898DeriveBytes(string password, int saltSize) => throw null; + public Rfc2898DeriveBytes(string password, int saltSize, int iterations) => throw null; + public Rfc2898DeriveBytes(string password, int saltSize, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; protected override void Dispose(bool disposing) => throw null; - public override void GetBytes(System.Byte[] data) => throw null; - public override void GetBytes(System.Byte[] data, int offset, int count) => throw null; - public override void GetBytes(System.Span data) => throw null; - public override void GetNonZeroBytes(System.Byte[] data) => throw null; - public override void GetNonZeroBytes(System.Span data) => throw null; + public override byte[] GetBytes(int cb) => throw null; + public System.Security.Cryptography.HashAlgorithmName HashAlgorithm { get => throw null; } + public int IterationCount { get => throw null; set { } } + public static byte[] Pbkdf2(byte[] password, byte[] salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int outputLength) => throw null; + public static byte[] Pbkdf2(System.ReadOnlySpan password, System.ReadOnlySpan salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int outputLength) => throw null; + public static void Pbkdf2(System.ReadOnlySpan password, System.ReadOnlySpan salt, System.Span destination, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public static byte[] Pbkdf2(System.ReadOnlySpan password, System.ReadOnlySpan salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int outputLength) => throw null; + public static void Pbkdf2(System.ReadOnlySpan password, System.ReadOnlySpan salt, System.Span destination, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public static byte[] Pbkdf2(string password, byte[] salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int outputLength) => throw null; + public override void Reset() => throw null; + public byte[] Salt { get => throw null; set { } } + } + public abstract class Rijndael : System.Security.Cryptography.SymmetricAlgorithm + { + public static System.Security.Cryptography.Rijndael Create() => throw null; + public static System.Security.Cryptography.Rijndael Create(string algName) => throw null; + protected Rijndael() => throw null; + } + public sealed class RijndaelManaged : System.Security.Cryptography.Rijndael + { + public override int BlockSize { get => throw null; set { } } + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV) => throw null; + public RijndaelManaged() => throw null; + protected override void Dispose(bool disposing) => throw null; + public override int FeedbackSize { get => throw null; set { } } + public override void GenerateIV() => throw null; + public override void GenerateKey() => throw null; + public override byte[] IV { get => throw null; set { } } + public override byte[] Key { get => throw null; set { } } + public override int KeySize { get => throw null; set { } } + public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } + public override System.Security.Cryptography.CipherMode Mode { get => throw null; set { } } + public override System.Security.Cryptography.PaddingMode Padding { get => throw null; set { } } + } + public sealed class RNGCryptoServiceProvider : System.Security.Cryptography.RandomNumberGenerator + { public RNGCryptoServiceProvider() => throw null; - public RNGCryptoServiceProvider(System.Byte[] rgb) => throw null; + public RNGCryptoServiceProvider(byte[] rgb) => throw null; public RNGCryptoServiceProvider(System.Security.Cryptography.CspParameters cspParams) => throw null; public RNGCryptoServiceProvider(string str) => throw null; + protected override void Dispose(bool disposing) => throw null; + public override void GetBytes(byte[] data) => throw null; + public override void GetBytes(byte[] data, int offset, int count) => throw null; + public override void GetBytes(System.Span data) => throw null; + public override void GetNonZeroBytes(byte[] data) => throw null; + public override void GetNonZeroBytes(System.Span data) => throw null; } - public abstract class RSA : System.Security.Cryptography.AsymmetricAlgorithm { public static System.Security.Cryptography.RSA Create() => throw null; - public static System.Security.Cryptography.RSA Create(System.Security.Cryptography.RSAParameters parameters) => throw null; public static System.Security.Cryptography.RSA Create(int keySizeInBits) => throw null; + public static System.Security.Cryptography.RSA Create(System.Security.Cryptography.RSAParameters parameters) => throw null; public static System.Security.Cryptography.RSA Create(string algName) => throw null; - public virtual System.Byte[] Decrypt(System.Byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; - public System.Byte[] Decrypt(System.ReadOnlySpan data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; - public int Decrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; - public virtual System.Byte[] DecryptValue(System.Byte[] rgb) => throw null; - public virtual System.Byte[] Encrypt(System.Byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; - public System.Byte[] Encrypt(System.ReadOnlySpan data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; - public int Encrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; - public virtual System.Byte[] EncryptValue(System.Byte[] rgb) => throw null; + protected RSA() => throw null; + public virtual byte[] Decrypt(byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public byte[] Decrypt(System.ReadOnlySpan data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public int Decrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public virtual byte[] DecryptValue(byte[] rgb) => throw null; + public virtual byte[] Encrypt(byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public byte[] Encrypt(System.ReadOnlySpan data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public int Encrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public virtual byte[] EncryptValue(byte[] rgb) => throw null; public abstract System.Security.Cryptography.RSAParameters ExportParameters(bool includePrivateParameters); - public virtual System.Byte[] ExportRSAPrivateKey() => throw null; + public virtual byte[] ExportRSAPrivateKey() => throw null; public string ExportRSAPrivateKeyPem() => throw null; - public virtual System.Byte[] ExportRSAPublicKey() => throw null; + public virtual byte[] ExportRSAPublicKey() => throw null; public string ExportRSAPublicKeyPem() => throw null; public override void FromXmlString(string xmlString) => throw null; - protected virtual System.Byte[] HashData(System.Byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - protected virtual System.Byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan passwordBytes) => throw null; - public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan password) => throw null; - public override void ImportFromPem(System.ReadOnlySpan input) => throw null; + protected virtual byte[] HashData(byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + protected virtual byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan passwordBytes) => throw null; + public override void ImportFromEncryptedPem(System.ReadOnlySpan input, System.ReadOnlySpan password) => throw null; + public override void ImportFromPem(System.ReadOnlySpan input) => throw null; public abstract void ImportParameters(System.Security.Cryptography.RSAParameters parameters); - public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; - public virtual void ImportRSAPrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; - public virtual void ImportRSAPublicKey(System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; + public virtual void ImportRSAPrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; + public virtual void ImportRSAPublicKey(System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => throw null; public override string KeyExchangeAlgorithm { get => throw null; } - protected RSA() => throw null; - public System.Byte[] SignData(System.Byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public virtual System.Byte[] SignData(System.Byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public System.Byte[] SignData(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public int SignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public virtual System.Byte[] SignData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public virtual System.Byte[] SignHash(System.Byte[] hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public System.Byte[] SignHash(System.ReadOnlySpan hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public int SignHash(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; public override string SignatureAlgorithm { get => throw null; } + public virtual byte[] SignData(byte[] data, int offset, int count, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public byte[] SignData(byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public virtual byte[] SignData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public byte[] SignData(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public int SignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public virtual byte[] SignHash(byte[] hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public byte[] SignHash(System.ReadOnlySpan hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public int SignHash(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; public override string ToXmlString(bool includePrivateParameters) => throw null; - public virtual bool TryDecrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding, out int bytesWritten) => throw null; - public virtual bool TryEncrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; - public virtual bool TryExportRSAPrivateKey(System.Span destination, out int bytesWritten) => throw null; - public bool TryExportRSAPrivateKeyPem(System.Span destination, out int charsWritten) => throw null; - public virtual bool TryExportRSAPublicKey(System.Span destination, out int bytesWritten) => throw null; - public bool TryExportRSAPublicKeyPem(System.Span destination, out int charsWritten) => throw null; - public override bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; - protected virtual bool TryHashData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out int bytesWritten) => throw null; - public virtual bool TrySignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding, out int bytesWritten) => throw null; - public virtual bool TrySignHash(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding, out int bytesWritten) => throw null; - public bool VerifyData(System.Byte[] data, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public virtual bool VerifyData(System.Byte[] data, int offset, int count, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public virtual bool VerifyData(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public bool VerifyData(System.IO.Stream data, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public virtual bool VerifyHash(System.Byte[] hash, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public virtual bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public virtual bool TryDecrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding, out int bytesWritten) => throw null; + public virtual bool TryEncrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; + public virtual bool TryExportRSAPrivateKey(System.Span destination, out int bytesWritten) => throw null; + public bool TryExportRSAPrivateKeyPem(System.Span destination, out int charsWritten) => throw null; + public virtual bool TryExportRSAPublicKey(System.Span destination, out int bytesWritten) => throw null; + public bool TryExportRSAPublicKeyPem(System.Span destination, out int charsWritten) => throw null; + public override bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; + protected virtual bool TryHashData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out int bytesWritten) => throw null; + public virtual bool TrySignData(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding, out int bytesWritten) => throw null; + public virtual bool TrySignHash(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding, out int bytesWritten) => throw null; + public bool VerifyData(byte[] data, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public virtual bool VerifyData(byte[] data, int offset, int count, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public bool VerifyData(System.IO.Stream data, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public virtual bool VerifyData(System.ReadOnlySpan data, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public virtual bool VerifyHash(byte[] hash, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public virtual bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; } - - public class RSACng : System.Security.Cryptography.RSA + public sealed class RSACng : System.Security.Cryptography.RSA { - public override System.Byte[] Decrypt(System.Byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public RSACng() => throw null; + public RSACng(int keySize) => throw null; + public RSACng(System.Security.Cryptography.CngKey key) => throw null; + public override byte[] Decrypt(byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; protected override void Dispose(bool disposing) => throw null; - public override System.Byte[] Encrypt(System.Byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; - public override System.Byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; - public override System.Byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public override byte[] Encrypt(byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public override byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public override byte[] ExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; public override System.Security.Cryptography.RSAParameters ExportParameters(bool includePrivateParameters) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; public override void ImportParameters(System.Security.Cryptography.RSAParameters parameters) => throw null; - public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportPkcs8PrivateKey(System.ReadOnlySpan source, out int bytesRead) => throw null; public System.Security.Cryptography.CngKey Key { get => throw null; } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } - public RSACng() => throw null; - public RSACng(System.Security.Cryptography.CngKey key) => throw null; - public RSACng(int keySize) => throw null; - public override System.Byte[] SignHash(System.Byte[] hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public override bool TryDecrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding, out int bytesWritten) => throw null; - public override bool TryEncrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; - public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; - public override bool TrySignHash(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding, out int bytesWritten) => throw null; - public override bool VerifyHash(System.Byte[] hash, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public override bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public override byte[] SignHash(byte[] hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public override bool TryDecrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding, out int bytesWritten) => throw null; + public override bool TryEncrypt(System.ReadOnlySpan data, System.Span destination, System.Security.Cryptography.RSAEncryptionPadding padding, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public override bool TryExportPkcs8PrivateKey(System.Span destination, out int bytesWritten) => throw null; + public override bool TrySignHash(System.ReadOnlySpan hash, System.Span destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding, out int bytesWritten) => throw null; + public override bool VerifyHash(byte[] hash, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public override bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; } - - public class RSACryptoServiceProvider : System.Security.Cryptography.RSA, System.Security.Cryptography.ICspAsymmetricAlgorithm + public sealed class RSACryptoServiceProvider : System.Security.Cryptography.RSA, System.Security.Cryptography.ICspAsymmetricAlgorithm { public System.Security.Cryptography.CspKeyContainerInfo CspKeyContainerInfo { get => throw null; } - public override System.Byte[] Decrypt(System.Byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; - public System.Byte[] Decrypt(System.Byte[] rgb, bool fOAEP) => throw null; - public override System.Byte[] DecryptValue(System.Byte[] rgb) => throw null; + public RSACryptoServiceProvider() => throw null; + public RSACryptoServiceProvider(int dwKeySize) => throw null; + public RSACryptoServiceProvider(int dwKeySize, System.Security.Cryptography.CspParameters parameters) => throw null; + public RSACryptoServiceProvider(System.Security.Cryptography.CspParameters parameters) => throw null; + public byte[] Decrypt(byte[] rgb, bool fOAEP) => throw null; + public override byte[] Decrypt(byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public override byte[] DecryptValue(byte[] rgb) => throw null; protected override void Dispose(bool disposing) => throw null; - public override System.Byte[] Encrypt(System.Byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; - public System.Byte[] Encrypt(System.Byte[] rgb, bool fOAEP) => throw null; - public override System.Byte[] EncryptValue(System.Byte[] rgb) => throw null; - public System.Byte[] ExportCspBlob(bool includePrivateParameters) => throw null; + public byte[] Encrypt(byte[] rgb, bool fOAEP) => throw null; + public override byte[] Encrypt(byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public override byte[] EncryptValue(byte[] rgb) => throw null; + public byte[] ExportCspBlob(bool includePrivateParameters) => throw null; public override System.Security.Cryptography.RSAParameters ExportParameters(bool includePrivateParameters) => throw null; - public void ImportCspBlob(System.Byte[] keyBlob) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; - public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; + public void ImportCspBlob(byte[] keyBlob) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan passwordBytes, System.ReadOnlySpan source, out int bytesRead) => throw null; + public override void ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan password, System.ReadOnlySpan source, out int bytesRead) => throw null; public override void ImportParameters(System.Security.Cryptography.RSAParameters parameters) => throw null; public override string KeyExchangeAlgorithm { get => throw null; } public override int KeySize { get => throw null; } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } - public bool PersistKeyInCsp { get => throw null; set => throw null; } + public bool PersistKeyInCsp { get => throw null; set { } } public bool PublicOnly { get => throw null; } - public RSACryptoServiceProvider() => throw null; - public RSACryptoServiceProvider(System.Security.Cryptography.CspParameters parameters) => throw null; - public RSACryptoServiceProvider(int dwKeySize) => throw null; - public RSACryptoServiceProvider(int dwKeySize, System.Security.Cryptography.CspParameters parameters) => throw null; - public System.Byte[] SignData(System.Byte[] buffer, int offset, int count, object halg) => throw null; - public System.Byte[] SignData(System.Byte[] buffer, object halg) => throw null; - public System.Byte[] SignData(System.IO.Stream inputStream, object halg) => throw null; - public override System.Byte[] SignHash(System.Byte[] hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public System.Byte[] SignHash(System.Byte[] rgbHash, string str) => throw null; public override string SignatureAlgorithm { get => throw null; } - public static bool UseMachineKeyStore { get => throw null; set => throw null; } - public bool VerifyData(System.Byte[] buffer, object halg, System.Byte[] signature) => throw null; - public override bool VerifyHash(System.Byte[] hash, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public bool VerifyHash(System.Byte[] rgbHash, string str, System.Byte[] rgbSignature) => throw null; + public byte[] SignData(byte[] buffer, int offset, int count, object halg) => throw null; + public byte[] SignData(byte[] buffer, object halg) => throw null; + public byte[] SignData(System.IO.Stream inputStream, object halg) => throw null; + public override byte[] SignHash(byte[] hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public byte[] SignHash(byte[] rgbHash, string str) => throw null; + public static bool UseMachineKeyStore { get => throw null; set { } } + public bool VerifyData(byte[] buffer, object halg, byte[] signature) => throw null; + public override bool VerifyHash(byte[] hash, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public bool VerifyHash(byte[] rgbHash, string str, byte[] rgbSignature) => throw null; } - - public class RSAEncryptionPadding : System.IEquatable + public sealed class RSAEncryptionPadding : System.IEquatable { - public static bool operator !=(System.Security.Cryptography.RSAEncryptionPadding left, System.Security.Cryptography.RSAEncryptionPadding right) => throw null; - public static bool operator ==(System.Security.Cryptography.RSAEncryptionPadding left, System.Security.Cryptography.RSAEncryptionPadding right) => throw null; public static System.Security.Cryptography.RSAEncryptionPadding CreateOaep(System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public bool Equals(System.Security.Cryptography.RSAEncryptionPadding other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Security.Cryptography.RSAEncryptionPadding other) => throw null; public override int GetHashCode() => throw null; public System.Security.Cryptography.RSAEncryptionPaddingMode Mode { get => throw null; } public System.Security.Cryptography.HashAlgorithmName OaepHashAlgorithm { get => throw null; } @@ -1757,615 +1701,505 @@ namespace System public static System.Security.Cryptography.RSAEncryptionPadding OaepSHA256 { get => throw null; } public static System.Security.Cryptography.RSAEncryptionPadding OaepSHA384 { get => throw null; } public static System.Security.Cryptography.RSAEncryptionPadding OaepSHA512 { get => throw null; } + public static bool operator ==(System.Security.Cryptography.RSAEncryptionPadding left, System.Security.Cryptography.RSAEncryptionPadding right) => throw null; + public static bool operator !=(System.Security.Cryptography.RSAEncryptionPadding left, System.Security.Cryptography.RSAEncryptionPadding right) => throw null; public static System.Security.Cryptography.RSAEncryptionPadding Pkcs1 { get => throw null; } public override string ToString() => throw null; } - - public enum RSAEncryptionPaddingMode : int + public enum RSAEncryptionPaddingMode { - Oaep = 1, Pkcs1 = 0, + Oaep = 1, } - public class RSAOAEPKeyExchangeDeformatter : System.Security.Cryptography.AsymmetricKeyExchangeDeformatter { - public override System.Byte[] DecryptKeyExchange(System.Byte[] rgbData) => throw null; - public override string Parameters { get => throw null; set => throw null; } public RSAOAEPKeyExchangeDeformatter() => throw null; public RSAOAEPKeyExchangeDeformatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; + public override byte[] DecryptKeyExchange(byte[] rgbData) => throw null; + public override string Parameters { get => throw null; set { } } public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - public class RSAOAEPKeyExchangeFormatter : System.Security.Cryptography.AsymmetricKeyExchangeFormatter { - public override System.Byte[] CreateKeyExchange(System.Byte[] rgbData) => throw null; - public override System.Byte[] CreateKeyExchange(System.Byte[] rgbData, System.Type symAlgType) => throw null; - public System.Byte[] Parameter { get => throw null; set => throw null; } - public override string Parameters { get => throw null; } + public override byte[] CreateKeyExchange(byte[] rgbData) => throw null; + public override byte[] CreateKeyExchange(byte[] rgbData, System.Type symAlgType) => throw null; public RSAOAEPKeyExchangeFormatter() => throw null; public RSAOAEPKeyExchangeFormatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; - public System.Security.Cryptography.RandomNumberGenerator Rng { get => throw null; set => throw null; } + public byte[] Parameter { get => throw null; set { } } + public override string Parameters { get => throw null; } + public System.Security.Cryptography.RandomNumberGenerator Rng { get => throw null; set { } } public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - - public class RSAOpenSsl : System.Security.Cryptography.RSA + public sealed class RSAOpenSsl : System.Security.Cryptography.RSA { + public RSAOpenSsl() => throw null; + public RSAOpenSsl(int keySize) => throw null; + public RSAOpenSsl(nint handle) => throw null; + public RSAOpenSsl(System.Security.Cryptography.RSAParameters parameters) => throw null; + public RSAOpenSsl(System.Security.Cryptography.SafeEvpPKeyHandle pkeyHandle) => throw null; public System.Security.Cryptography.SafeEvpPKeyHandle DuplicateKeyHandle() => throw null; public override System.Security.Cryptography.RSAParameters ExportParameters(bool includePrivateParameters) => throw null; public override void ImportParameters(System.Security.Cryptography.RSAParameters parameters) => throw null; - public RSAOpenSsl() => throw null; - public RSAOpenSsl(System.IntPtr handle) => throw null; - public RSAOpenSsl(System.Security.Cryptography.RSAParameters parameters) => throw null; - public RSAOpenSsl(System.Security.Cryptography.SafeEvpPKeyHandle pkeyHandle) => throw null; - public RSAOpenSsl(int keySize) => throw null; } - + public struct RSAParameters + { + public byte[] D; + public byte[] DP; + public byte[] DQ; + public byte[] Exponent; + public byte[] InverseQ; + public byte[] Modulus; + public byte[] P; + public byte[] Q; + } public class RSAPKCS1KeyExchangeDeformatter : System.Security.Cryptography.AsymmetricKeyExchangeDeformatter { - public override System.Byte[] DecryptKeyExchange(System.Byte[] rgbIn) => throw null; - public override string Parameters { get => throw null; set => throw null; } - public System.Security.Cryptography.RandomNumberGenerator RNG { get => throw null; set => throw null; } public RSAPKCS1KeyExchangeDeformatter() => throw null; public RSAPKCS1KeyExchangeDeformatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; + public override byte[] DecryptKeyExchange(byte[] rgbIn) => throw null; + public override string Parameters { get => throw null; set { } } + public System.Security.Cryptography.RandomNumberGenerator RNG { get => throw null; set { } } public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - public class RSAPKCS1KeyExchangeFormatter : System.Security.Cryptography.AsymmetricKeyExchangeFormatter { - public override System.Byte[] CreateKeyExchange(System.Byte[] rgbData) => throw null; - public override System.Byte[] CreateKeyExchange(System.Byte[] rgbData, System.Type symAlgType) => throw null; - public override string Parameters { get => throw null; } + public override byte[] CreateKeyExchange(byte[] rgbData) => throw null; + public override byte[] CreateKeyExchange(byte[] rgbData, System.Type symAlgType) => throw null; public RSAPKCS1KeyExchangeFormatter() => throw null; public RSAPKCS1KeyExchangeFormatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; - public System.Security.Cryptography.RandomNumberGenerator Rng { get => throw null; set => throw null; } + public override string Parameters { get => throw null; } + public System.Security.Cryptography.RandomNumberGenerator Rng { get => throw null; set { } } public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - public class RSAPKCS1SignatureDeformatter : System.Security.Cryptography.AsymmetricSignatureDeformatter { public RSAPKCS1SignatureDeformatter() => throw null; public RSAPKCS1SignatureDeformatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; public override void SetHashAlgorithm(string strName) => throw null; public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; - public override bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature) => throw null; + public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) => throw null; } - public class RSAPKCS1SignatureFormatter : System.Security.Cryptography.AsymmetricSignatureFormatter { - public override System.Byte[] CreateSignature(System.Byte[] rgbHash) => throw null; + public override byte[] CreateSignature(byte[] rgbHash) => throw null; public RSAPKCS1SignatureFormatter() => throw null; public RSAPKCS1SignatureFormatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; public override void SetHashAlgorithm(string strName) => throw null; public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - - public struct RSAParameters + public sealed class RSASignaturePadding : System.IEquatable { - public System.Byte[] D; - public System.Byte[] DP; - public System.Byte[] DQ; - public System.Byte[] Exponent; - public System.Byte[] InverseQ; - public System.Byte[] Modulus; - public System.Byte[] P; - public System.Byte[] Q; - // Stub generator skipped constructor - } - - public class RSASignaturePadding : System.IEquatable - { - public static bool operator !=(System.Security.Cryptography.RSASignaturePadding left, System.Security.Cryptography.RSASignaturePadding right) => throw null; - public static bool operator ==(System.Security.Cryptography.RSASignaturePadding left, System.Security.Cryptography.RSASignaturePadding right) => throw null; - public bool Equals(System.Security.Cryptography.RSASignaturePadding other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Security.Cryptography.RSASignaturePadding other) => throw null; public override int GetHashCode() => throw null; public System.Security.Cryptography.RSASignaturePaddingMode Mode { get => throw null; } + public static bool operator ==(System.Security.Cryptography.RSASignaturePadding left, System.Security.Cryptography.RSASignaturePadding right) => throw null; + public static bool operator !=(System.Security.Cryptography.RSASignaturePadding left, System.Security.Cryptography.RSASignaturePadding right) => throw null; public static System.Security.Cryptography.RSASignaturePadding Pkcs1 { get => throw null; } public static System.Security.Cryptography.RSASignaturePadding Pss { get => throw null; } public override string ToString() => throw null; } - - public enum RSASignaturePaddingMode : int + public enum RSASignaturePaddingMode { Pkcs1 = 0, Pss = 1, } - - public abstract class RandomNumberGenerator : System.IDisposable + public sealed class SafeEvpPKeyHandle : System.Runtime.InteropServices.SafeHandle { - public static System.Security.Cryptography.RandomNumberGenerator Create() => throw null; - public static System.Security.Cryptography.RandomNumberGenerator Create(string rngName) => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public static void Fill(System.Span data) => throw null; - public abstract void GetBytes(System.Byte[] data); - public virtual void GetBytes(System.Byte[] data, int offset, int count) => throw null; - public virtual void GetBytes(System.Span data) => throw null; - public static System.Byte[] GetBytes(int count) => throw null; - public static int GetInt32(int toExclusive) => throw null; - public static int GetInt32(int fromInclusive, int toExclusive) => throw null; - public virtual void GetNonZeroBytes(System.Byte[] data) => throw null; - public virtual void GetNonZeroBytes(System.Span data) => throw null; - protected RandomNumberGenerator() => throw null; + public SafeEvpPKeyHandle() : base(default(nint), default(bool)) => throw null; + public SafeEvpPKeyHandle(nint handle, bool ownsHandle) : base(default(nint), default(bool)) => throw null; + public System.Security.Cryptography.SafeEvpPKeyHandle DuplicateHandle() => throw null; + public override bool IsInvalid { get => throw null; } + public static long OpenSslVersion { get => throw null; } + protected override bool ReleaseHandle() => throw null; } - - public class Rfc2898DeriveBytes : System.Security.Cryptography.DeriveBytes - { - public System.Byte[] CryptDeriveKey(string algname, string alghashname, int keySize, System.Byte[] rgbIV) => throw null; - protected override void Dispose(bool disposing) => throw null; - public override System.Byte[] GetBytes(int cb) => throw null; - public System.Security.Cryptography.HashAlgorithmName HashAlgorithm { get => throw null; } - public int IterationCount { get => throw null; set => throw null; } - public static System.Byte[] Pbkdf2(System.Byte[] password, System.Byte[] salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int outputLength) => throw null; - public static void Pbkdf2(System.ReadOnlySpan password, System.ReadOnlySpan salt, System.Span destination, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public static System.Byte[] Pbkdf2(System.ReadOnlySpan password, System.ReadOnlySpan salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int outputLength) => throw null; - public static void Pbkdf2(System.ReadOnlySpan password, System.ReadOnlySpan salt, System.Span destination, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public static System.Byte[] Pbkdf2(System.ReadOnlySpan password, System.ReadOnlySpan salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int outputLength) => throw null; - public static System.Byte[] Pbkdf2(string password, System.Byte[] salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int outputLength) => throw null; - public override void Reset() => throw null; - public Rfc2898DeriveBytes(System.Byte[] password, System.Byte[] salt, int iterations) => throw null; - public Rfc2898DeriveBytes(System.Byte[] password, System.Byte[] salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public Rfc2898DeriveBytes(string password, System.Byte[] salt) => throw null; - public Rfc2898DeriveBytes(string password, System.Byte[] salt, int iterations) => throw null; - public Rfc2898DeriveBytes(string password, System.Byte[] salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public Rfc2898DeriveBytes(string password, int saltSize) => throw null; - public Rfc2898DeriveBytes(string password, int saltSize, int iterations) => throw null; - public Rfc2898DeriveBytes(string password, int saltSize, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public System.Byte[] Salt { get => throw null; set => throw null; } - } - - public abstract class Rijndael : System.Security.Cryptography.SymmetricAlgorithm - { - public static System.Security.Cryptography.Rijndael Create() => throw null; - public static System.Security.Cryptography.Rijndael Create(string algName) => throw null; - protected Rijndael() => throw null; - } - - public class RijndaelManaged : System.Security.Cryptography.Rijndael - { - public override int BlockSize { get => throw null; set => throw null; } - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; - protected override void Dispose(bool disposing) => throw null; - public override int FeedbackSize { get => throw null; set => throw null; } - public override void GenerateIV() => throw null; - public override void GenerateKey() => throw null; - public override System.Byte[] IV { get => throw null; set => throw null; } - public override System.Byte[] Key { get => throw null; set => throw null; } - public override int KeySize { get => throw null; set => throw null; } - public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } - public override System.Security.Cryptography.CipherMode Mode { get => throw null; set => throw null; } - public override System.Security.Cryptography.PaddingMode Padding { get => throw null; set => throw null; } - public RijndaelManaged() => throw null; - } - public abstract class SHA1 : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.SHA1 Create() => throw null; public static System.Security.Cryptography.SHA1 Create(string hashName) => throw null; - public static System.Byte[] HashData(System.Byte[] source) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan source) => throw null; - public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Byte[] HashData(System.IO.Stream source) => throw null; - public static int HashData(System.IO.Stream source, System.Span destination) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; protected SHA1() => throw null; - public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + public static byte[] HashData(byte[] source) => throw null; + public static byte[] HashData(System.IO.Stream source) => throw null; + public static int HashData(System.IO.Stream source, System.Span destination) => throw null; + public static byte[] HashData(System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static int HashSizeInBits; + public static int HashSizeInBytes; + public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - - public class SHA1CryptoServiceProvider : System.Security.Cryptography.SHA1 + public sealed class SHA1CryptoServiceProvider : System.Security.Cryptography.SHA1 { - protected override void Dispose(bool disposing) => throw null; - protected override void HashCore(System.Byte[] array, int ibStart, int cbSize) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public override void Initialize() => throw null; public SHA1CryptoServiceProvider() => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; - } - - public class SHA1Managed : System.Security.Cryptography.SHA1 - { protected override void Dispose(bool disposing) => throw null; - protected override void HashCore(System.Byte[] array, int ibStart, int cbSize) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - protected override System.Byte[] HashFinal() => throw null; + protected override void HashCore(byte[] array, int ibStart, int cbSize) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + protected override byte[] HashFinal() => throw null; public override void Initialize() => throw null; - public SHA1Managed() => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + } + public sealed class SHA1Managed : System.Security.Cryptography.SHA1 + { + public SHA1Managed() => throw null; + protected override sealed void Dispose(bool disposing) => throw null; + protected override sealed void HashCore(byte[] array, int ibStart, int cbSize) => throw null; + protected override sealed void HashCore(System.ReadOnlySpan source) => throw null; + protected override sealed byte[] HashFinal() => throw null; + public override sealed void Initialize() => throw null; + protected override sealed bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - public abstract class SHA256 : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.SHA256 Create() => throw null; public static System.Security.Cryptography.SHA256 Create(string hashName) => throw null; - public static System.Byte[] HashData(System.Byte[] source) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan source) => throw null; - public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Byte[] HashData(System.IO.Stream source) => throw null; - public static int HashData(System.IO.Stream source, System.Span destination) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; protected SHA256() => throw null; - public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + public static byte[] HashData(byte[] source) => throw null; + public static byte[] HashData(System.IO.Stream source) => throw null; + public static int HashData(System.IO.Stream source, System.Span destination) => throw null; + public static byte[] HashData(System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static int HashSizeInBits; + public static int HashSizeInBytes; + public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - - public class SHA256CryptoServiceProvider : System.Security.Cryptography.SHA256 + public sealed class SHA256CryptoServiceProvider : System.Security.Cryptography.SHA256 { - protected override void Dispose(bool disposing) => throw null; - protected override void HashCore(System.Byte[] array, int ibStart, int cbSize) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public override void Initialize() => throw null; public SHA256CryptoServiceProvider() => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; - } - - public class SHA256Managed : System.Security.Cryptography.SHA256 - { protected override void Dispose(bool disposing) => throw null; - protected override void HashCore(System.Byte[] array, int ibStart, int cbSize) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - protected override System.Byte[] HashFinal() => throw null; + protected override void HashCore(byte[] array, int ibStart, int cbSize) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + protected override byte[] HashFinal() => throw null; public override void Initialize() => throw null; - public SHA256Managed() => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + } + public sealed class SHA256Managed : System.Security.Cryptography.SHA256 + { + public SHA256Managed() => throw null; + protected override sealed void Dispose(bool disposing) => throw null; + protected override sealed void HashCore(byte[] array, int ibStart, int cbSize) => throw null; + protected override sealed void HashCore(System.ReadOnlySpan source) => throw null; + protected override sealed byte[] HashFinal() => throw null; + public override sealed void Initialize() => throw null; + protected override sealed bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - public abstract class SHA384 : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.SHA384 Create() => throw null; public static System.Security.Cryptography.SHA384 Create(string hashName) => throw null; - public static System.Byte[] HashData(System.Byte[] source) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan source) => throw null; - public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Byte[] HashData(System.IO.Stream source) => throw null; - public static int HashData(System.IO.Stream source, System.Span destination) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; protected SHA384() => throw null; - public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + public static byte[] HashData(byte[] source) => throw null; + public static byte[] HashData(System.IO.Stream source) => throw null; + public static int HashData(System.IO.Stream source, System.Span destination) => throw null; + public static byte[] HashData(System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static int HashSizeInBits; + public static int HashSizeInBytes; + public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - - public class SHA384CryptoServiceProvider : System.Security.Cryptography.SHA384 + public sealed class SHA384CryptoServiceProvider : System.Security.Cryptography.SHA384 { - protected override void Dispose(bool disposing) => throw null; - protected override void HashCore(System.Byte[] array, int ibStart, int cbSize) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public override void Initialize() => throw null; public SHA384CryptoServiceProvider() => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; - } - - public class SHA384Managed : System.Security.Cryptography.SHA384 - { protected override void Dispose(bool disposing) => throw null; - protected override void HashCore(System.Byte[] array, int ibStart, int cbSize) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - protected override System.Byte[] HashFinal() => throw null; + protected override void HashCore(byte[] array, int ibStart, int cbSize) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + protected override byte[] HashFinal() => throw null; public override void Initialize() => throw null; - public SHA384Managed() => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + } + public sealed class SHA384Managed : System.Security.Cryptography.SHA384 + { + public SHA384Managed() => throw null; + protected override sealed void Dispose(bool disposing) => throw null; + protected override sealed void HashCore(byte[] array, int ibStart, int cbSize) => throw null; + protected override sealed void HashCore(System.ReadOnlySpan source) => throw null; + protected override sealed byte[] HashFinal() => throw null; + public override sealed void Initialize() => throw null; + protected override sealed bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - public abstract class SHA512 : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.SHA512 Create() => throw null; public static System.Security.Cryptography.SHA512 Create(string hashName) => throw null; - public static System.Byte[] HashData(System.Byte[] source) => throw null; - public static System.Byte[] HashData(System.ReadOnlySpan source) => throw null; - public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; - public static System.Byte[] HashData(System.IO.Stream source) => throw null; - public static int HashData(System.IO.Stream source, System.Span destination) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; protected SHA512() => throw null; - public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; + public static byte[] HashData(byte[] source) => throw null; + public static byte[] HashData(System.IO.Stream source) => throw null; + public static int HashData(System.IO.Stream source, System.Span destination) => throw null; + public static byte[] HashData(System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static int HashSizeInBits; + public static int HashSizeInBytes; + public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - - public class SHA512CryptoServiceProvider : System.Security.Cryptography.SHA512 + public sealed class SHA512CryptoServiceProvider : System.Security.Cryptography.SHA512 { - protected override void Dispose(bool disposing) => throw null; - protected override void HashCore(System.Byte[] array, int ibStart, int cbSize) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - protected override System.Byte[] HashFinal() => throw null; - public override void Initialize() => throw null; public SHA512CryptoServiceProvider() => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; - } - - public class SHA512Managed : System.Security.Cryptography.SHA512 - { protected override void Dispose(bool disposing) => throw null; - protected override void HashCore(System.Byte[] array, int ibStart, int cbSize) => throw null; - protected override void HashCore(System.ReadOnlySpan source) => throw null; - protected override System.Byte[] HashFinal() => throw null; + protected override void HashCore(byte[] array, int ibStart, int cbSize) => throw null; + protected override void HashCore(System.ReadOnlySpan source) => throw null; + protected override byte[] HashFinal() => throw null; public override void Initialize() => throw null; - public SHA512Managed() => throw null; - protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; + protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - - public class SafeEvpPKeyHandle : System.Runtime.InteropServices.SafeHandle + public sealed class SHA512Managed : System.Security.Cryptography.SHA512 { - public System.Security.Cryptography.SafeEvpPKeyHandle DuplicateHandle() => throw null; - public override bool IsInvalid { get => throw null; } - public static System.Int64 OpenSslVersion { get => throw null; } - protected override bool ReleaseHandle() => throw null; - public SafeEvpPKeyHandle() : base(default(System.IntPtr), default(bool)) => throw null; - public SafeEvpPKeyHandle(System.IntPtr handle, bool ownsHandle) : base(default(System.IntPtr), default(bool)) => throw null; + public SHA512Managed() => throw null; + protected override sealed void Dispose(bool disposing) => throw null; + protected override sealed void HashCore(byte[] array, int ibStart, int cbSize) => throw null; + protected override sealed void HashCore(System.ReadOnlySpan source) => throw null; + protected override sealed byte[] HashFinal() => throw null; + public override sealed void Initialize() => throw null; + protected override sealed bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - public class SignatureDescription { public virtual System.Security.Cryptography.AsymmetricSignatureDeformatter CreateDeformatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; public virtual System.Security.Cryptography.HashAlgorithm CreateDigest() => throw null; public virtual System.Security.Cryptography.AsymmetricSignatureFormatter CreateFormatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; - public string DeformatterAlgorithm { get => throw null; set => throw null; } - public string DigestAlgorithm { get => throw null; set => throw null; } - public string FormatterAlgorithm { get => throw null; set => throw null; } - public string KeyAlgorithm { get => throw null; set => throw null; } public SignatureDescription() => throw null; public SignatureDescription(System.Security.SecurityElement el) => throw null; + public string DeformatterAlgorithm { get => throw null; set { } } + public string DigestAlgorithm { get => throw null; set { } } + public string FormatterAlgorithm { get => throw null; set { } } + public string KeyAlgorithm { get => throw null; set { } } } - public abstract class SymmetricAlgorithm : System.IDisposable { - public virtual int BlockSize { get => throw null; set => throw null; } + public virtual int BlockSize { get => throw null; set { } } protected int BlockSizeValue; public void Clear() => throw null; public static System.Security.Cryptography.SymmetricAlgorithm Create() => throw null; public static System.Security.Cryptography.SymmetricAlgorithm Create(string algName) => throw null; public virtual System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; - public abstract System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV); + public abstract System.Security.Cryptography.ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV); public virtual System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; - public abstract System.Security.Cryptography.ICryptoTransform CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV); - public System.Byte[] DecryptCbc(System.Byte[] ciphertext, System.Byte[] iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; - public System.Byte[] DecryptCbc(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; - public int DecryptCbc(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; - public System.Byte[] DecryptCfb(System.Byte[] ciphertext, System.Byte[] iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; - public System.Byte[] DecryptCfb(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; - public int DecryptCfb(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; - public System.Byte[] DecryptEcb(System.Byte[] ciphertext, System.Security.Cryptography.PaddingMode paddingMode) => throw null; - public System.Byte[] DecryptEcb(System.ReadOnlySpan ciphertext, System.Security.Cryptography.PaddingMode paddingMode) => throw null; - public int DecryptEcb(System.ReadOnlySpan ciphertext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode) => throw null; + public abstract System.Security.Cryptography.ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV); + protected SymmetricAlgorithm() => throw null; + public byte[] DecryptCbc(byte[] ciphertext, byte[] iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; + public byte[] DecryptCbc(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; + public int DecryptCbc(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; + public byte[] DecryptCfb(byte[] ciphertext, byte[] iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; + public byte[] DecryptCfb(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; + public int DecryptCfb(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; + public byte[] DecryptEcb(byte[] ciphertext, System.Security.Cryptography.PaddingMode paddingMode) => throw null; + public byte[] DecryptEcb(System.ReadOnlySpan ciphertext, System.Security.Cryptography.PaddingMode paddingMode) => throw null; + public int DecryptEcb(System.ReadOnlySpan ciphertext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public System.Byte[] EncryptCbc(System.Byte[] plaintext, System.Byte[] iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; - public System.Byte[] EncryptCbc(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; - public int EncryptCbc(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; - public System.Byte[] EncryptCfb(System.Byte[] plaintext, System.Byte[] iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; - public System.Byte[] EncryptCfb(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; - public int EncryptCfb(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; - public System.Byte[] EncryptEcb(System.Byte[] plaintext, System.Security.Cryptography.PaddingMode paddingMode) => throw null; - public System.Byte[] EncryptEcb(System.ReadOnlySpan plaintext, System.Security.Cryptography.PaddingMode paddingMode) => throw null; - public int EncryptEcb(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode) => throw null; - public virtual int FeedbackSize { get => throw null; set => throw null; } + public byte[] EncryptCbc(byte[] plaintext, byte[] iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; + public byte[] EncryptCbc(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; + public int EncryptCbc(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; + public byte[] EncryptCfb(byte[] plaintext, byte[] iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; + public byte[] EncryptCfb(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; + public int EncryptCfb(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; + public byte[] EncryptEcb(byte[] plaintext, System.Security.Cryptography.PaddingMode paddingMode) => throw null; + public byte[] EncryptEcb(System.ReadOnlySpan plaintext, System.Security.Cryptography.PaddingMode paddingMode) => throw null; + public int EncryptEcb(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode) => throw null; + public virtual int FeedbackSize { get => throw null; set { } } protected int FeedbackSizeValue; public abstract void GenerateIV(); public abstract void GenerateKey(); public int GetCiphertextLengthCbc(int plaintextLength, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; public int GetCiphertextLengthCfb(int plaintextLength, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; public int GetCiphertextLengthEcb(int plaintextLength, System.Security.Cryptography.PaddingMode paddingMode) => throw null; - public virtual System.Byte[] IV { get => throw null; set => throw null; } - protected System.Byte[] IVValue; - public virtual System.Byte[] Key { get => throw null; set => throw null; } - public virtual int KeySize { get => throw null; set => throw null; } + public virtual byte[] IV { get => throw null; set { } } + protected byte[] IVValue; + public virtual byte[] Key { get => throw null; set { } } + public virtual int KeySize { get => throw null; set { } } protected int KeySizeValue; - protected System.Byte[] KeyValue; + protected byte[] KeyValue; public virtual System.Security.Cryptography.KeySizes[] LegalBlockSizes { get => throw null; } protected System.Security.Cryptography.KeySizes[] LegalBlockSizesValue; public virtual System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } protected System.Security.Cryptography.KeySizes[] LegalKeySizesValue; - public virtual System.Security.Cryptography.CipherMode Mode { get => throw null; set => throw null; } + public virtual System.Security.Cryptography.CipherMode Mode { get => throw null; set { } } protected System.Security.Cryptography.CipherMode ModeValue; - public virtual System.Security.Cryptography.PaddingMode Padding { get => throw null; set => throw null; } + public virtual System.Security.Cryptography.PaddingMode Padding { get => throw null; set { } } protected System.Security.Cryptography.PaddingMode PaddingValue; - protected SymmetricAlgorithm() => throw null; - public bool TryDecryptCbc(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, out int bytesWritten, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; - protected virtual bool TryDecryptCbcCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - public bool TryDecryptCfb(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, out int bytesWritten, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; - protected virtual bool TryDecryptCfbCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; - public bool TryDecryptEcb(System.ReadOnlySpan ciphertext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - protected virtual bool TryDecryptEcbCore(System.ReadOnlySpan ciphertext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - public bool TryEncryptCbc(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, out int bytesWritten, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; - protected virtual bool TryEncryptCbcCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - public bool TryEncryptCfb(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, out int bytesWritten, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; - protected virtual bool TryEncryptCfbCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; - public bool TryEncryptEcb(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - protected virtual bool TryEncryptEcbCore(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + public bool TryDecryptCbc(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, out int bytesWritten, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; + protected virtual bool TryDecryptCbcCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + public bool TryDecryptCfb(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, out int bytesWritten, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; + protected virtual bool TryDecryptCfbCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; + public bool TryDecryptEcb(System.ReadOnlySpan ciphertext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + protected virtual bool TryDecryptEcbCore(System.ReadOnlySpan ciphertext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + public bool TryEncryptCbc(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, out int bytesWritten, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode)) => throw null; + protected virtual bool TryEncryptCbcCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + public bool TryEncryptCfb(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, out int bytesWritten, System.Security.Cryptography.PaddingMode paddingMode = default(System.Security.Cryptography.PaddingMode), int feedbackSizeInBits = default(int)) => throw null; + protected virtual bool TryEncryptCfbCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; + public bool TryEncryptEcb(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + protected virtual bool TryEncryptEcbCore(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; public bool ValidKeySize(int bitLength) => throw null; } - public class ToBase64Transform : System.IDisposable, System.Security.Cryptography.ICryptoTransform { public virtual bool CanReuseTransform { get => throw null; } public bool CanTransformMultipleBlocks { get => throw null; } public void Clear() => throw null; + public ToBase64Transform() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public int InputBlockSize { get => throw null; } public int OutputBlockSize { get => throw null; } - public ToBase64Transform() => throw null; - public int TransformBlock(System.Byte[] inputBuffer, int inputOffset, int inputCount, System.Byte[] outputBuffer, int outputOffset) => throw null; - public System.Byte[] TransformFinalBlock(System.Byte[] inputBuffer, int inputOffset, int inputCount) => throw null; - // ERR: Stub generator didn't handle member: ~ToBase64Transform + public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) => throw null; + public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) => throw null; } - public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm { public static System.Security.Cryptography.TripleDES Create() => throw null; public static System.Security.Cryptography.TripleDES Create(string str) => throw null; - public static bool IsWeakKey(System.Byte[] rgbKey) => throw null; - public override System.Byte[] Key { get => throw null; set => throw null; } protected TripleDES() => throw null; + public static bool IsWeakKey(byte[] rgbKey) => throw null; + public override byte[] Key { get => throw null; set { } } } - - public class TripleDESCng : System.Security.Cryptography.TripleDES + public sealed class TripleDESCng : System.Security.Cryptography.TripleDES { public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV) => throw null; public override System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; - protected override void Dispose(bool disposing) => throw null; - public override void GenerateIV() => throw null; - public override void GenerateKey() => throw null; - public override System.Byte[] Key { get => throw null; set => throw null; } - public override int KeySize { get => throw null; set => throw null; } + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV) => throw null; public TripleDESCng() => throw null; public TripleDESCng(string keyName) => throw null; public TripleDESCng(string keyName, System.Security.Cryptography.CngProvider provider) => throw null; public TripleDESCng(string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions openOptions) => throw null; - protected override bool TryDecryptCbcCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - protected override bool TryDecryptCfbCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; - protected override bool TryDecryptEcbCore(System.ReadOnlySpan ciphertext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - protected override bool TryEncryptCbcCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - protected override bool TryEncryptCfbCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; - protected override bool TryEncryptEcbCore(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; - } - - public class TripleDESCryptoServiceProvider : System.Security.Cryptography.TripleDES - { - public override int BlockSize { get => throw null; set => throw null; } - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; protected override void Dispose(bool disposing) => throw null; - public override int FeedbackSize { get => throw null; set => throw null; } public override void GenerateIV() => throw null; public override void GenerateKey() => throw null; - public override System.Byte[] IV { get => throw null; set => throw null; } - public override System.Byte[] Key { get => throw null; set => throw null; } - public override int KeySize { get => throw null; set => throw null; } + public override byte[] Key { get => throw null; set { } } + public override int KeySize { get => throw null; set { } } + protected override bool TryDecryptCbcCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + protected override bool TryDecryptCfbCore(System.ReadOnlySpan ciphertext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; + protected override bool TryDecryptEcbCore(System.ReadOnlySpan ciphertext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + protected override bool TryEncryptCbcCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + protected override bool TryEncryptCfbCore(System.ReadOnlySpan plaintext, System.ReadOnlySpan iv, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, int feedbackSizeInBits, out int bytesWritten) => throw null; + protected override bool TryEncryptEcbCore(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; + } + public sealed class TripleDESCryptoServiceProvider : System.Security.Cryptography.TripleDES + { + public override int BlockSize { get => throw null; set { } } + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV) => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor() => throw null; + public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV) => throw null; + public TripleDESCryptoServiceProvider() => throw null; + protected override void Dispose(bool disposing) => throw null; + public override int FeedbackSize { get => throw null; set { } } + public override void GenerateIV() => throw null; + public override void GenerateKey() => throw null; + public override byte[] IV { get => throw null; set { } } + public override byte[] Key { get => throw null; set { } } + public override int KeySize { get => throw null; set { } } public override System.Security.Cryptography.KeySizes[] LegalBlockSizes { get => throw null; } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } - public override System.Security.Cryptography.CipherMode Mode { get => throw null; set => throw null; } - public override System.Security.Cryptography.PaddingMode Padding { get => throw null; set => throw null; } - public TripleDESCryptoServiceProvider() => throw null; + public override System.Security.Cryptography.CipherMode Mode { get => throw null; set { } } + public override System.Security.Cryptography.PaddingMode Padding { get => throw null; set { } } } - namespace X509Certificates { - public class CertificateRequest + public sealed class CertificateRequest { public System.Collections.ObjectModel.Collection CertificateExtensions { get => throw null; } - public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.ECDsa key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.X509Certificates.PublicKey publicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.X509Certificates.PublicKey publicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding rsaSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding)) => throw null; - public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.RSA key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public CertificateRequest(string subjectName, System.Security.Cryptography.ECDsa key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; - public CertificateRequest(string subjectName, System.Security.Cryptography.RSA key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; - public System.Security.Cryptography.X509Certificates.X509Certificate2 Create(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Security.Cryptography.X509Certificates.X509SignatureGenerator generator, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, System.Byte[] serialNumber) => throw null; - public System.Security.Cryptography.X509Certificates.X509Certificate2 Create(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Security.Cryptography.X509Certificates.X509SignatureGenerator generator, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, System.ReadOnlySpan serialNumber) => throw null; - public System.Security.Cryptography.X509Certificates.X509Certificate2 Create(System.Security.Cryptography.X509Certificates.X509Certificate2 issuerCertificate, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, System.Byte[] serialNumber) => throw null; - public System.Security.Cryptography.X509Certificates.X509Certificate2 Create(System.Security.Cryptography.X509Certificates.X509Certificate2 issuerCertificate, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, System.ReadOnlySpan serialNumber) => throw null; + public System.Security.Cryptography.X509Certificates.X509Certificate2 Create(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Security.Cryptography.X509Certificates.X509SignatureGenerator generator, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, byte[] serialNumber) => throw null; + public System.Security.Cryptography.X509Certificates.X509Certificate2 Create(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Security.Cryptography.X509Certificates.X509SignatureGenerator generator, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, System.ReadOnlySpan serialNumber) => throw null; + public System.Security.Cryptography.X509Certificates.X509Certificate2 Create(System.Security.Cryptography.X509Certificates.X509Certificate2 issuerCertificate, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, byte[] serialNumber) => throw null; + public System.Security.Cryptography.X509Certificates.X509Certificate2 Create(System.Security.Cryptography.X509Certificates.X509Certificate2 issuerCertificate, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, System.ReadOnlySpan serialNumber) => throw null; public System.Security.Cryptography.X509Certificates.X509Certificate2 CreateSelfSigned(System.DateTimeOffset notBefore, System.DateTimeOffset notAfter) => throw null; - public System.Byte[] CreateSigningRequest() => throw null; - public System.Byte[] CreateSigningRequest(System.Security.Cryptography.X509Certificates.X509SignatureGenerator signatureGenerator) => throw null; + public byte[] CreateSigningRequest() => throw null; + public byte[] CreateSigningRequest(System.Security.Cryptography.X509Certificates.X509SignatureGenerator signatureGenerator) => throw null; public string CreateSigningRequestPem() => throw null; public string CreateSigningRequestPem(System.Security.Cryptography.X509Certificates.X509SignatureGenerator signatureGenerator) => throw null; + public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.ECDsa key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.RSA key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.X509Certificates.PublicKey publicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.X509Certificates.PublicKey publicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding rsaSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding)) => throw null; + public CertificateRequest(string subjectName, System.Security.Cryptography.ECDsa key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public CertificateRequest(string subjectName, System.Security.Cryptography.RSA key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; public System.Security.Cryptography.HashAlgorithmName HashAlgorithm { get => throw null; } - public static System.Security.Cryptography.X509Certificates.CertificateRequest LoadSigningRequest(System.Byte[] pkcs10, System.Security.Cryptography.HashAlgorithmName signerHashAlgorithm, System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions options = default(System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions), System.Security.Cryptography.RSASignaturePadding signerSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding)) => throw null; - public static System.Security.Cryptography.X509Certificates.CertificateRequest LoadSigningRequest(System.ReadOnlySpan pkcs10, System.Security.Cryptography.HashAlgorithmName signerHashAlgorithm, out int bytesConsumed, System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions options = default(System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions), System.Security.Cryptography.RSASignaturePadding signerSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding)) => throw null; - public static System.Security.Cryptography.X509Certificates.CertificateRequest LoadSigningRequestPem(System.ReadOnlySpan pkcs10Pem, System.Security.Cryptography.HashAlgorithmName signerHashAlgorithm, System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions options = default(System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions), System.Security.Cryptography.RSASignaturePadding signerSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding)) => throw null; + public static System.Security.Cryptography.X509Certificates.CertificateRequest LoadSigningRequest(byte[] pkcs10, System.Security.Cryptography.HashAlgorithmName signerHashAlgorithm, System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions options = default(System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions), System.Security.Cryptography.RSASignaturePadding signerSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding)) => throw null; + public static System.Security.Cryptography.X509Certificates.CertificateRequest LoadSigningRequest(System.ReadOnlySpan pkcs10, System.Security.Cryptography.HashAlgorithmName signerHashAlgorithm, out int bytesConsumed, System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions options = default(System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions), System.Security.Cryptography.RSASignaturePadding signerSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding)) => throw null; + public static System.Security.Cryptography.X509Certificates.CertificateRequest LoadSigningRequestPem(System.ReadOnlySpan pkcs10Pem, System.Security.Cryptography.HashAlgorithmName signerHashAlgorithm, System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions options = default(System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions), System.Security.Cryptography.RSASignaturePadding signerSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding)) => throw null; public static System.Security.Cryptography.X509Certificates.CertificateRequest LoadSigningRequestPem(string pkcs10Pem, System.Security.Cryptography.HashAlgorithmName signerHashAlgorithm, System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions options = default(System.Security.Cryptography.X509Certificates.CertificateRequestLoadOptions), System.Security.Cryptography.RSASignaturePadding signerSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding)) => throw null; public System.Collections.ObjectModel.Collection OtherRequestAttributes { get => throw null; } public System.Security.Cryptography.X509Certificates.PublicKey PublicKey { get => throw null; } public System.Security.Cryptography.X509Certificates.X500DistinguishedName SubjectName { get => throw null; } } - [System.Flags] - public enum CertificateRequestLoadOptions : int + public enum CertificateRequestLoadOptions { Default = 0, SkipSignatureValidation = 1, UnsafeLoadCertificateExtensions = 2, } - - public class CertificateRevocationListBuilder + public sealed class CertificateRevocationListBuilder { - public void AddEntry(System.Byte[] serialNumber, System.DateTimeOffset? revocationTime = default(System.DateTimeOffset?), System.Security.Cryptography.X509Certificates.X509RevocationReason? reason = default(System.Security.Cryptography.X509Certificates.X509RevocationReason?)) => throw null; - public void AddEntry(System.ReadOnlySpan serialNumber, System.DateTimeOffset? revocationTime = default(System.DateTimeOffset?), System.Security.Cryptography.X509Certificates.X509RevocationReason? reason = default(System.Security.Cryptography.X509Certificates.X509RevocationReason?)) => throw null; + public void AddEntry(byte[] serialNumber, System.DateTimeOffset? revocationTime = default(System.DateTimeOffset?), System.Security.Cryptography.X509Certificates.X509RevocationReason? reason = default(System.Security.Cryptography.X509Certificates.X509RevocationReason?)) => throw null; + public void AddEntry(System.ReadOnlySpan serialNumber, System.DateTimeOffset? revocationTime = default(System.DateTimeOffset?), System.Security.Cryptography.X509Certificates.X509RevocationReason? reason = default(System.Security.Cryptography.X509Certificates.X509RevocationReason?)) => throw null; public void AddEntry(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.DateTimeOffset? revocationTime = default(System.DateTimeOffset?), System.Security.Cryptography.X509Certificates.X509RevocationReason? reason = default(System.Security.Cryptography.X509Certificates.X509RevocationReason?)) => throw null; - public System.Byte[] Build(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Security.Cryptography.X509Certificates.X509SignatureGenerator generator, System.Numerics.BigInteger crlNumber, System.DateTimeOffset nextUpdate, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension authorityKeyIdentifier, System.DateTimeOffset? thisUpdate = default(System.DateTimeOffset?)) => throw null; - public System.Byte[] Build(System.Security.Cryptography.X509Certificates.X509Certificate2 issuerCertificate, System.Numerics.BigInteger crlNumber, System.DateTimeOffset nextUpdate, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding rsaSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding), System.DateTimeOffset? thisUpdate = default(System.DateTimeOffset?)) => throw null; + public byte[] Build(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Security.Cryptography.X509Certificates.X509SignatureGenerator generator, System.Numerics.BigInteger crlNumber, System.DateTimeOffset nextUpdate, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension authorityKeyIdentifier, System.DateTimeOffset? thisUpdate = default(System.DateTimeOffset?)) => throw null; + public byte[] Build(System.Security.Cryptography.X509Certificates.X509Certificate2 issuerCertificate, System.Numerics.BigInteger crlNumber, System.DateTimeOffset nextUpdate, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding rsaSignaturePadding = default(System.Security.Cryptography.RSASignaturePadding), System.DateTimeOffset? thisUpdate = default(System.DateTimeOffset?)) => throw null; public static System.Security.Cryptography.X509Certificates.X509Extension BuildCrlDistributionPointExtension(System.Collections.Generic.IEnumerable uris, bool critical = default(bool)) => throw null; public CertificateRevocationListBuilder() => throw null; - public static System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder Load(System.Byte[] currentCrl, out System.Numerics.BigInteger currentCrlNumber) => throw null; - public static System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder Load(System.ReadOnlySpan currentCrl, out System.Numerics.BigInteger currentCrlNumber, out int bytesConsumed) => throw null; - public static System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder LoadPem(System.ReadOnlySpan currentCrl, out System.Numerics.BigInteger currentCrlNumber) => throw null; + public static System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder Load(byte[] currentCrl, out System.Numerics.BigInteger currentCrlNumber) => throw null; + public static System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder Load(System.ReadOnlySpan currentCrl, out System.Numerics.BigInteger currentCrlNumber, out int bytesConsumed) => throw null; + public static System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder LoadPem(System.ReadOnlySpan currentCrl, out System.Numerics.BigInteger currentCrlNumber) => throw null; public static System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder LoadPem(string currentCrl, out System.Numerics.BigInteger currentCrlNumber) => throw null; - public bool RemoveEntry(System.Byte[] serialNumber) => throw null; - public bool RemoveEntry(System.ReadOnlySpan serialNumber) => throw null; + public bool RemoveEntry(byte[] serialNumber) => throw null; + public bool RemoveEntry(System.ReadOnlySpan serialNumber) => throw null; } - - public static class DSACertificateExtensions + public static partial class DSACertificateExtensions { public static System.Security.Cryptography.X509Certificates.X509Certificate2 CopyWithPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.DSA privateKey) => throw null; public static System.Security.Cryptography.DSA GetDSAPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; public static System.Security.Cryptography.DSA GetDSAPublicKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; } - - public static class ECDsaCertificateExtensions + public static partial class ECDsaCertificateExtensions { public static System.Security.Cryptography.X509Certificates.X509Certificate2 CopyWithPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.ECDsa privateKey) => throw null; public static System.Security.Cryptography.ECDsa GetECDsaPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; public static System.Security.Cryptography.ECDsa GetECDsaPublicKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; } - [System.Flags] - public enum OpenFlags : int + public enum OpenFlags { - IncludeArchived = 8, - MaxAllowed = 2, - OpenExistingOnly = 4, ReadOnly = 0, ReadWrite = 1, + MaxAllowed = 2, + OpenExistingOnly = 4, + IncludeArchived = 8, } - - public class PublicKey + public sealed class PublicKey { - public static System.Security.Cryptography.X509Certificates.PublicKey CreateFromSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => throw null; + public static System.Security.Cryptography.X509Certificates.PublicKey CreateFromSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => throw null; + public PublicKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; + public PublicKey(System.Security.Cryptography.Oid oid, System.Security.Cryptography.AsnEncodedData parameters, System.Security.Cryptography.AsnEncodedData keyValue) => throw null; public System.Security.Cryptography.AsnEncodedData EncodedKeyValue { get => throw null; } public System.Security.Cryptography.AsnEncodedData EncodedParameters { get => throw null; } - public System.Byte[] ExportSubjectPublicKeyInfo() => throw null; + public byte[] ExportSubjectPublicKeyInfo() => throw null; public System.Security.Cryptography.DSA GetDSAPublicKey() => throw null; public System.Security.Cryptography.ECDiffieHellman GetECDiffieHellmanPublicKey() => throw null; public System.Security.Cryptography.ECDsa GetECDsaPublicKey() => throw null; public System.Security.Cryptography.RSA GetRSAPublicKey() => throw null; public System.Security.Cryptography.AsymmetricAlgorithm Key { get => throw null; } public System.Security.Cryptography.Oid Oid { get => throw null; } - public PublicKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; - public PublicKey(System.Security.Cryptography.Oid oid, System.Security.Cryptography.AsnEncodedData parameters, System.Security.Cryptography.AsnEncodedData keyValue) => throw null; - public bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; + public bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; } - - public static class RSACertificateExtensions + public static partial class RSACertificateExtensions { public static System.Security.Cryptography.X509Certificates.X509Certificate2 CopyWithPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.RSA privateKey) => throw null; public static System.Security.Cryptography.RSA GetRSAPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; public static System.Security.Cryptography.RSA GetRSAPublicKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; } - - public enum StoreLocation : int + public enum StoreLocation { CurrentUser = 1, LocalMachine = 2, } - - public enum StoreName : int + public enum StoreName { AddressBook = 1, AuthRoot = 2, @@ -2376,8 +2210,7 @@ namespace System TrustedPeople = 7, TrustedPublisher = 8, } - - public class SubjectAlternativeNameBuilder + public sealed class SubjectAlternativeNameBuilder { public void AddDnsName(string dnsName) => throw null; public void AddEmailAddress(string emailAddress) => throw null; @@ -2387,22 +2220,20 @@ namespace System public System.Security.Cryptography.X509Certificates.X509Extension Build(bool critical = default(bool)) => throw null; public SubjectAlternativeNameBuilder() => throw null; } - - public class X500DistinguishedName : System.Security.Cryptography.AsnEncodedData + public sealed class X500DistinguishedName : System.Security.Cryptography.AsnEncodedData { + public X500DistinguishedName(byte[] encodedDistinguishedName) => throw null; + public X500DistinguishedName(System.ReadOnlySpan encodedDistinguishedName) => throw null; + public X500DistinguishedName(System.Security.Cryptography.AsnEncodedData encodedDistinguishedName) => throw null; + public X500DistinguishedName(System.Security.Cryptography.X509Certificates.X500DistinguishedName distinguishedName) => throw null; + public X500DistinguishedName(string distinguishedName) => throw null; + public X500DistinguishedName(string distinguishedName, System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags flag) => throw null; public string Decode(System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags flag) => throw null; public System.Collections.Generic.IEnumerable EnumerateRelativeDistinguishedNames(bool reversed = default(bool)) => throw null; public override string Format(bool multiLine) => throw null; public string Name { get => throw null; } - public X500DistinguishedName(System.Security.Cryptography.AsnEncodedData encodedDistinguishedName) => throw null; - public X500DistinguishedName(System.Byte[] encodedDistinguishedName) => throw null; - public X500DistinguishedName(System.ReadOnlySpan encodedDistinguishedName) => throw null; - public X500DistinguishedName(System.Security.Cryptography.X509Certificates.X500DistinguishedName distinguishedName) => throw null; - public X500DistinguishedName(string distinguishedName) => throw null; - public X500DistinguishedName(string distinguishedName, System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags flag) => throw null; } - - public class X500DistinguishedNameBuilder + public sealed class X500DistinguishedNameBuilder { public void Add(System.Security.Cryptography.Oid oid, string value, System.Formats.Asn1.UniversalTagNumber? stringEncodingType = default(System.Formats.Asn1.UniversalTagNumber?)) => throw null; public void Add(string oidValue, string value, System.Formats.Asn1.UniversalTagNumber? stringEncodingType = default(System.Formats.Asn1.UniversalTagNumber?)) => throw null; @@ -2411,96 +2242,104 @@ namespace System public void AddDomainComponent(string domainComponent) => throw null; public void AddEmailAddress(string emailAddress) => throw null; public void AddLocalityName(string localityName) => throw null; - public void AddOrganizationName(string organizationName) => throw null; public void AddOrganizationalUnitName(string organizationalUnitName) => throw null; + public void AddOrganizationName(string organizationName) => throw null; public void AddStateOrProvinceName(string stateOrProvinceName) => throw null; public System.Security.Cryptography.X509Certificates.X500DistinguishedName Build() => throw null; public X500DistinguishedNameBuilder() => throw null; } - [System.Flags] - public enum X500DistinguishedNameFlags : int + public enum X500DistinguishedNameFlags { - DoNotUsePlusSign = 32, - DoNotUseQuotes = 64, - ForceUTF8Encoding = 16384, None = 0, Reversed = 1, + UseSemicolons = 16, + DoNotUsePlusSign = 32, + DoNotUseQuotes = 64, UseCommas = 128, UseNewLines = 256, - UseSemicolons = 16, - UseT61Encoding = 8192, UseUTF8Encoding = 4096, + UseT61Encoding = 8192, + ForceUTF8Encoding = 16384, } - - public class X500RelativeDistinguishedName + public sealed class X500RelativeDistinguishedName { public System.Security.Cryptography.Oid GetSingleElementType() => throw null; public string GetSingleElementValue() => throw null; public bool HasMultipleElements { get => throw null; } - public System.ReadOnlyMemory RawData { get => throw null; } + public System.ReadOnlyMemory RawData { get => throw null; } } - - public class X509AuthorityInformationAccessExtension : System.Security.Cryptography.X509Certificates.X509Extension + public sealed class X509AuthorityInformationAccessExtension : System.Security.Cryptography.X509Certificates.X509Extension { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public X509AuthorityInformationAccessExtension() => throw null; + public X509AuthorityInformationAccessExtension(byte[] rawData, bool critical = default(bool)) => throw null; + public X509AuthorityInformationAccessExtension(System.Collections.Generic.IEnumerable ocspUris, System.Collections.Generic.IEnumerable caIssuersUris, bool critical = default(bool)) => throw null; + public X509AuthorityInformationAccessExtension(System.ReadOnlySpan rawData, bool critical = default(bool)) => throw null; public System.Collections.Generic.IEnumerable EnumerateCAIssuersUris() => throw null; public System.Collections.Generic.IEnumerable EnumerateOcspUris() => throw null; public System.Collections.Generic.IEnumerable EnumerateUris(System.Security.Cryptography.Oid accessMethodOid) => throw null; public System.Collections.Generic.IEnumerable EnumerateUris(string accessMethodOid) => throw null; - public X509AuthorityInformationAccessExtension() => throw null; - public X509AuthorityInformationAccessExtension(System.Byte[] rawData, bool critical = default(bool)) => throw null; - public X509AuthorityInformationAccessExtension(System.Collections.Generic.IEnumerable ocspUris, System.Collections.Generic.IEnumerable caIssuersUris, bool critical = default(bool)) => throw null; - public X509AuthorityInformationAccessExtension(System.ReadOnlySpan rawData, bool critical = default(bool)) => throw null; } - - public class X509AuthorityKeyIdentifierExtension : System.Security.Cryptography.X509Certificates.X509Extension + public sealed class X509AuthorityKeyIdentifierExtension : System.Security.Cryptography.X509Certificates.X509Extension { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; - public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension Create(System.Byte[] keyIdentifier, System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Byte[] serialNumber) => throw null; - public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension Create(System.ReadOnlySpan keyIdentifier, System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.ReadOnlySpan serialNumber) => throw null; + public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension Create(byte[] keyIdentifier, System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, byte[] serialNumber) => throw null; + public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension Create(System.ReadOnlySpan keyIdentifier, System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.ReadOnlySpan serialNumber) => throw null; public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension CreateFromCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, bool includeKeyIdentifier, bool includeIssuerAndSerial) => throw null; - public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension CreateFromIssuerNameAndSerialNumber(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Byte[] serialNumber) => throw null; - public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension CreateFromIssuerNameAndSerialNumber(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.ReadOnlySpan serialNumber) => throw null; - public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension CreateFromSubjectKeyIdentifier(System.Byte[] subjectKeyIdentifier) => throw null; - public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension CreateFromSubjectKeyIdentifier(System.ReadOnlySpan subjectKeyIdentifier) => throw null; + public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension CreateFromIssuerNameAndSerialNumber(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, byte[] serialNumber) => throw null; + public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension CreateFromIssuerNameAndSerialNumber(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.ReadOnlySpan serialNumber) => throw null; + public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension CreateFromSubjectKeyIdentifier(byte[] subjectKeyIdentifier) => throw null; + public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension CreateFromSubjectKeyIdentifier(System.ReadOnlySpan subjectKeyIdentifier) => throw null; public static System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension CreateFromSubjectKeyIdentifier(System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension subjectKeyIdentifier) => throw null; - public System.ReadOnlyMemory? KeyIdentifier { get => throw null; } - public System.Security.Cryptography.X509Certificates.X500DistinguishedName NamedIssuer { get => throw null; } - public System.ReadOnlyMemory? RawIssuer { get => throw null; } - public System.ReadOnlyMemory? SerialNumber { get => throw null; } public X509AuthorityKeyIdentifierExtension() => throw null; - public X509AuthorityKeyIdentifierExtension(System.Byte[] rawData, bool critical = default(bool)) => throw null; - public X509AuthorityKeyIdentifierExtension(System.ReadOnlySpan rawData, bool critical = default(bool)) => throw null; + public X509AuthorityKeyIdentifierExtension(byte[] rawData, bool critical = default(bool)) => throw null; + public X509AuthorityKeyIdentifierExtension(System.ReadOnlySpan rawData, bool critical = default(bool)) => throw null; + public System.ReadOnlyMemory? KeyIdentifier { get => throw null; } + public System.Security.Cryptography.X509Certificates.X500DistinguishedName NamedIssuer { get => throw null; } + public System.ReadOnlyMemory? RawIssuer { get => throw null; } + public System.ReadOnlyMemory? SerialNumber { get => throw null; } } - - public class X509BasicConstraintsExtension : System.Security.Cryptography.X509Certificates.X509Extension + public sealed class X509BasicConstraintsExtension : System.Security.Cryptography.X509Certificates.X509Extension { public bool CertificateAuthority { get => throw null; } public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; public static System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension CreateForCertificateAuthority(int? pathLengthConstraint = default(int?)) => throw null; public static System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension CreateForEndEntity(bool critical = default(bool)) => throw null; + public X509BasicConstraintsExtension() => throw null; + public X509BasicConstraintsExtension(bool certificateAuthority, bool hasPathLengthConstraint, int pathLengthConstraint, bool critical) => throw null; + public X509BasicConstraintsExtension(System.Security.Cryptography.AsnEncodedData encodedBasicConstraints, bool critical) => throw null; public bool HasPathLengthConstraint { get => throw null; } public int PathLengthConstraint { get => throw null; } - public X509BasicConstraintsExtension() => throw null; - public X509BasicConstraintsExtension(System.Security.Cryptography.AsnEncodedData encodedBasicConstraints, bool critical) => throw null; - public X509BasicConstraintsExtension(bool certificateAuthority, bool hasPathLengthConstraint, int pathLengthConstraint, bool critical) => throw null; } - public class X509Certificate : System.IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { public static System.Security.Cryptography.X509Certificates.X509Certificate CreateFromCertFile(string filename) => throw null; public static System.Security.Cryptography.X509Certificates.X509Certificate CreateFromSignedFile(string filename) => throw null; + public X509Certificate() => throw null; + public X509Certificate(byte[] data) => throw null; + public X509Certificate(byte[] rawData, System.Security.SecureString password) => throw null; + public X509Certificate(byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public X509Certificate(byte[] rawData, string password) => throw null; + public X509Certificate(byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public X509Certificate(nint handle) => throw null; + public X509Certificate(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public X509Certificate(System.Security.Cryptography.X509Certificates.X509Certificate cert) => throw null; + public X509Certificate(string fileName) => throw null; + public X509Certificate(string fileName, System.Security.SecureString password) => throw null; + public X509Certificate(string fileName, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public X509Certificate(string fileName, string password) => throw null; + public X509Certificate(string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public virtual bool Equals(System.Security.Cryptography.X509Certificates.X509Certificate other) => throw null; public override bool Equals(object obj) => throw null; - public virtual System.Byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType) => throw null; - public virtual System.Byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType, System.Security.SecureString password) => throw null; - public virtual System.Byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType, string password) => throw null; + public virtual bool Equals(System.Security.Cryptography.X509Certificates.X509Certificate other) => throw null; + public virtual byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType) => throw null; + public virtual byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType, System.Security.SecureString password) => throw null; + public virtual byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType, string password) => throw null; protected static string FormatDate(System.DateTime date) => throw null; - public virtual System.Byte[] GetCertHash() => throw null; - public virtual System.Byte[] GetCertHash(System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; + public virtual byte[] GetCertHash() => throw null; + public virtual byte[] GetCertHash(System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; public virtual string GetCertHashString() => throw null; public virtual string GetCertHashString(System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => throw null; public virtual string GetEffectiveDateString() => throw null; @@ -2509,69 +2348,71 @@ namespace System public override int GetHashCode() => throw null; public virtual string GetIssuerName() => throw null; public virtual string GetKeyAlgorithm() => throw null; - public virtual System.Byte[] GetKeyAlgorithmParameters() => throw null; + public virtual byte[] GetKeyAlgorithmParameters() => throw null; public virtual string GetKeyAlgorithmParametersString() => throw null; public virtual string GetName() => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public virtual System.Byte[] GetPublicKey() => throw null; + public virtual byte[] GetPublicKey() => throw null; public virtual string GetPublicKeyString() => throw null; - public virtual System.Byte[] GetRawCertData() => throw null; + public virtual byte[] GetRawCertData() => throw null; public virtual string GetRawCertDataString() => throw null; - public virtual System.Byte[] GetSerialNumber() => throw null; + public virtual byte[] GetSerialNumber() => throw null; public virtual string GetSerialNumberString() => throw null; - public System.IntPtr Handle { get => throw null; } - public virtual void Import(System.Byte[] rawData) => throw null; - public virtual void Import(System.Byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; - public virtual void Import(System.Byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public nint Handle { get => throw null; } + public virtual void Import(byte[] rawData) => throw null; + public virtual void Import(byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public virtual void Import(byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; public virtual void Import(string fileName) => throw null; public virtual void Import(string fileName, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; public virtual void Import(string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; public string Issuer { get => throw null; } void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; public virtual void Reset() => throw null; - public System.ReadOnlyMemory SerialNumberBytes { get => throw null; } + public System.ReadOnlyMemory SerialNumberBytes { get => throw null; } public string Subject { get => throw null; } public override string ToString() => throw null; public virtual string ToString(bool fVerbose) => throw null; - public virtual bool TryGetCertHash(System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Span destination, out int bytesWritten) => throw null; - public X509Certificate() => throw null; - public X509Certificate(System.Byte[] data) => throw null; - public X509Certificate(System.Byte[] rawData, System.Security.SecureString password) => throw null; - public X509Certificate(System.Byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; - public X509Certificate(System.Byte[] rawData, string password) => throw null; - public X509Certificate(System.Byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; - public X509Certificate(System.IntPtr handle) => throw null; - public X509Certificate(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public X509Certificate(System.Security.Cryptography.X509Certificates.X509Certificate cert) => throw null; - public X509Certificate(string fileName) => throw null; - public X509Certificate(string fileName, System.Security.SecureString password) => throw null; - public X509Certificate(string fileName, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; - public X509Certificate(string fileName, string password) => throw null; - public X509Certificate(string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public virtual bool TryGetCertHash(System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Span destination, out int bytesWritten) => throw null; } - public class X509Certificate2 : System.Security.Cryptography.X509Certificates.X509Certificate { - public bool Archived { get => throw null; set => throw null; } + public bool Archived { get => throw null; set { } } public System.Security.Cryptography.X509Certificates.X509Certificate2 CopyWithPrivateKey(System.Security.Cryptography.ECDiffieHellman privateKey) => throw null; - public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromEncryptedPem(System.ReadOnlySpan certPem, System.ReadOnlySpan keyPem, System.ReadOnlySpan password) => throw null; - public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromEncryptedPemFile(string certPemFilePath, System.ReadOnlySpan password, string keyPemFilePath = default(string)) => throw null; - public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromPem(System.ReadOnlySpan certPem) => throw null; - public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromPem(System.ReadOnlySpan certPem, System.ReadOnlySpan keyPem) => throw null; + public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromEncryptedPem(System.ReadOnlySpan certPem, System.ReadOnlySpan keyPem, System.ReadOnlySpan password) => throw null; + public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromEncryptedPemFile(string certPemFilePath, System.ReadOnlySpan password, string keyPemFilePath = default(string)) => throw null; + public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromPem(System.ReadOnlySpan certPem) => throw null; + public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromPem(System.ReadOnlySpan certPem, System.ReadOnlySpan keyPem) => throw null; public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateFromPemFile(string certPemFilePath, string keyPemFilePath = default(string)) => throw null; + public X509Certificate2() => throw null; + public X509Certificate2(byte[] rawData) => throw null; + public X509Certificate2(byte[] rawData, System.Security.SecureString password) => throw null; + public X509Certificate2(byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public X509Certificate2(byte[] rawData, string password) => throw null; + public X509Certificate2(byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public X509Certificate2(nint handle) => throw null; + public X509Certificate2(System.ReadOnlySpan rawData) => throw null; + public X509Certificate2(System.ReadOnlySpan rawData, System.ReadOnlySpan password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; + protected X509Certificate2(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public X509Certificate2(System.Security.Cryptography.X509Certificates.X509Certificate certificate) => throw null; + public X509Certificate2(string fileName) => throw null; + public X509Certificate2(string fileName, System.ReadOnlySpan password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; + public X509Certificate2(string fileName, System.Security.SecureString password) => throw null; + public X509Certificate2(string fileName, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public X509Certificate2(string fileName, string password) => throw null; + public X509Certificate2(string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; public string ExportCertificatePem() => throw null; public System.Security.Cryptography.X509Certificates.X509ExtensionCollection Extensions { get => throw null; } - public string FriendlyName { get => throw null; set => throw null; } - public static System.Security.Cryptography.X509Certificates.X509ContentType GetCertContentType(System.Byte[] rawData) => throw null; - public static System.Security.Cryptography.X509Certificates.X509ContentType GetCertContentType(System.ReadOnlySpan rawData) => throw null; + public string FriendlyName { get => throw null; set { } } + public static System.Security.Cryptography.X509Certificates.X509ContentType GetCertContentType(byte[] rawData) => throw null; + public static System.Security.Cryptography.X509Certificates.X509ContentType GetCertContentType(System.ReadOnlySpan rawData) => throw null; public static System.Security.Cryptography.X509Certificates.X509ContentType GetCertContentType(string fileName) => throw null; public System.Security.Cryptography.ECDiffieHellman GetECDiffieHellmanPrivateKey() => throw null; public System.Security.Cryptography.ECDiffieHellman GetECDiffieHellmanPublicKey() => throw null; public string GetNameInfo(System.Security.Cryptography.X509Certificates.X509NameType nameType, bool forIssuer) => throw null; public bool HasPrivateKey { get => throw null; } - public override void Import(System.Byte[] rawData) => throw null; - public override void Import(System.Byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; - public override void Import(System.Byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public override void Import(byte[] rawData) => throw null; + public override void Import(byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; + public override void Import(byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; public override void Import(string fileName) => throw null; public override void Import(string fileName, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; public override void Import(string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; @@ -2579,10 +2420,10 @@ namespace System public bool MatchesHostname(string hostname, bool allowWildcards = default(bool), bool allowCommonName = default(bool)) => throw null; public System.DateTime NotAfter { get => throw null; } public System.DateTime NotBefore { get => throw null; } - public System.Security.Cryptography.AsymmetricAlgorithm PrivateKey { get => throw null; set => throw null; } + public System.Security.Cryptography.AsymmetricAlgorithm PrivateKey { get => throw null; set { } } public System.Security.Cryptography.X509Certificates.PublicKey PublicKey { get => throw null; } - public System.Byte[] RawData { get => throw null; } - public System.ReadOnlyMemory RawDataMemory { get => throw null; } + public byte[] RawData { get => throw null; } + public System.ReadOnlyMemory RawDataMemory { get => throw null; } public override void Reset() => throw null; public string SerialNumber { get => throw null; } public System.Security.Cryptography.Oid SignatureAlgorithm { get => throw null; } @@ -2590,65 +2431,46 @@ namespace System public string Thumbprint { get => throw null; } public override string ToString() => throw null; public override string ToString(bool verbose) => throw null; - public bool TryExportCertificatePem(System.Span destination, out int charsWritten) => throw null; + public bool TryExportCertificatePem(System.Span destination, out int charsWritten) => throw null; public bool Verify() => throw null; public int Version { get => throw null; } - public X509Certificate2() => throw null; - public X509Certificate2(System.Byte[] rawData) => throw null; - public X509Certificate2(System.Byte[] rawData, System.Security.SecureString password) => throw null; - public X509Certificate2(System.Byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; - public X509Certificate2(System.Byte[] rawData, string password) => throw null; - public X509Certificate2(System.Byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; - public X509Certificate2(System.IntPtr handle) => throw null; - public X509Certificate2(System.ReadOnlySpan rawData) => throw null; - public X509Certificate2(System.ReadOnlySpan rawData, System.ReadOnlySpan password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; - protected X509Certificate2(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public X509Certificate2(System.Security.Cryptography.X509Certificates.X509Certificate certificate) => throw null; - public X509Certificate2(string fileName) => throw null; - public X509Certificate2(string fileName, System.ReadOnlySpan password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; - public X509Certificate2(string fileName, System.Security.SecureString password) => throw null; - public X509Certificate2(string fileName, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; - public X509Certificate2(string fileName, string password) => throw null; - public X509Certificate2(string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; } - public class X509Certificate2Collection : System.Security.Cryptography.X509Certificates.X509CertificateCollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public int Add(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; public void AddRange(System.Security.Cryptography.X509Certificates.X509Certificate2Collection certificates) => throw null; public void AddRange(System.Security.Cryptography.X509Certificates.X509Certificate2[] certificates) => throw null; public bool Contains(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public System.Byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType) => throw null; - public System.Byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType, string password) => throw null; + public X509Certificate2Collection() => throw null; + public X509Certificate2Collection(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public X509Certificate2Collection(System.Security.Cryptography.X509Certificates.X509Certificate2Collection certificates) => throw null; + public X509Certificate2Collection(System.Security.Cryptography.X509Certificates.X509Certificate2[] certificates) => throw null; + public byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType) => throw null; + public byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType, string password) => throw null; public string ExportCertificatePems() => throw null; public string ExportPkcs7Pem() => throw null; public System.Security.Cryptography.X509Certificates.X509Certificate2Collection Find(System.Security.Cryptography.X509Certificates.X509FindType findType, object findValue, bool validOnly) => throw null; public System.Security.Cryptography.X509Certificates.X509Certificate2Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - public void Import(System.Byte[] rawData) => throw null; - public void Import(System.Byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; - public void Import(System.ReadOnlySpan rawData) => throw null; - public void Import(System.ReadOnlySpan rawData, System.ReadOnlySpan password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; - public void Import(System.ReadOnlySpan rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; + public void Import(byte[] rawData) => throw null; + public void Import(byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; + public void Import(System.ReadOnlySpan rawData) => throw null; + public void Import(System.ReadOnlySpan rawData, System.ReadOnlySpan password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; + public void Import(System.ReadOnlySpan rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; public void Import(string fileName) => throw null; - public void Import(string fileName, System.ReadOnlySpan password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; + public void Import(string fileName, System.ReadOnlySpan password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; public void Import(string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = default(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags)) => throw null; - public void ImportFromPem(System.ReadOnlySpan certPem) => throw null; + public void ImportFromPem(System.ReadOnlySpan certPem) => throw null; public void ImportFromPemFile(string certPemFilePath) => throw null; public void Insert(int index, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public System.Security.Cryptography.X509Certificates.X509Certificate2 this[int index] { get => throw null; set => throw null; } public void Remove(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; public void RemoveRange(System.Security.Cryptography.X509Certificates.X509Certificate2Collection certificates) => throw null; public void RemoveRange(System.Security.Cryptography.X509Certificates.X509Certificate2[] certificates) => throw null; - public bool TryExportCertificatePems(System.Span destination, out int charsWritten) => throw null; - public bool TryExportPkcs7Pem(System.Span destination, out int charsWritten) => throw null; - public X509Certificate2Collection() => throw null; - public X509Certificate2Collection(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public X509Certificate2Collection(System.Security.Cryptography.X509Certificates.X509Certificate2Collection certificates) => throw null; - public X509Certificate2Collection(System.Security.Cryptography.X509Certificates.X509Certificate2[] certificates) => throw null; + public System.Security.Cryptography.X509Certificates.X509Certificate2 this[int index] { get => throw null; set { } } + public bool TryExportCertificatePems(System.Span destination, out int charsWritten) => throw null; + public bool TryExportPkcs7Pem(System.Span destination, out int charsWritten) => throw null; } - - public class X509Certificate2Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public sealed class X509Certificate2Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Security.Cryptography.X509Certificates.X509Certificate2 Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2658,76 +2480,69 @@ namespace System public void Reset() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - public class X509CertificateCollection : System.Collections.CollectionBase { + public int Add(System.Security.Cryptography.X509Certificates.X509Certificate value) => throw null; + public void AddRange(System.Security.Cryptography.X509Certificates.X509CertificateCollection value) => throw null; + public void AddRange(System.Security.Cryptography.X509Certificates.X509Certificate[] value) => throw null; + public bool Contains(System.Security.Cryptography.X509Certificates.X509Certificate value) => throw null; + public void CopyTo(System.Security.Cryptography.X509Certificates.X509Certificate[] array, int index) => throw null; + public X509CertificateCollection() => throw null; + public X509CertificateCollection(System.Security.Cryptography.X509Certificates.X509CertificateCollection value) => throw null; + public X509CertificateCollection(System.Security.Cryptography.X509Certificates.X509Certificate[] value) => throw null; + public System.Security.Cryptography.X509Certificates.X509CertificateCollection.X509CertificateEnumerator GetEnumerator() => throw null; + public override int GetHashCode() => throw null; + public int IndexOf(System.Security.Cryptography.X509Certificates.X509Certificate value) => throw null; + public void Insert(int index, System.Security.Cryptography.X509Certificates.X509Certificate value) => throw null; + protected override void OnValidate(object value) => throw null; + public void Remove(System.Security.Cryptography.X509Certificates.X509Certificate value) => throw null; + public System.Security.Cryptography.X509Certificates.X509Certificate this[int index] { get => throw null; set { } } public class X509CertificateEnumerator : System.Collections.IEnumerator { + public X509CertificateEnumerator(System.Security.Cryptography.X509Certificates.X509CertificateCollection mappings) => throw null; public System.Security.Cryptography.X509Certificates.X509Certificate Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public bool MoveNext() => throw null; bool System.Collections.IEnumerator.MoveNext() => throw null; public void Reset() => throw null; void System.Collections.IEnumerator.Reset() => throw null; - public X509CertificateEnumerator(System.Security.Cryptography.X509Certificates.X509CertificateCollection mappings) => throw null; } - - - public int Add(System.Security.Cryptography.X509Certificates.X509Certificate value) => throw null; - public void AddRange(System.Security.Cryptography.X509Certificates.X509CertificateCollection value) => throw null; - public void AddRange(System.Security.Cryptography.X509Certificates.X509Certificate[] value) => throw null; - public bool Contains(System.Security.Cryptography.X509Certificates.X509Certificate value) => throw null; - public void CopyTo(System.Security.Cryptography.X509Certificates.X509Certificate[] array, int index) => throw null; - public System.Security.Cryptography.X509Certificates.X509CertificateCollection.X509CertificateEnumerator GetEnumerator() => throw null; - public override int GetHashCode() => throw null; - public int IndexOf(System.Security.Cryptography.X509Certificates.X509Certificate value) => throw null; - public void Insert(int index, System.Security.Cryptography.X509Certificates.X509Certificate value) => throw null; - public System.Security.Cryptography.X509Certificates.X509Certificate this[int index] { get => throw null; set => throw null; } - protected override void OnValidate(object value) => throw null; - public void Remove(System.Security.Cryptography.X509Certificates.X509Certificate value) => throw null; - public X509CertificateCollection() => throw null; - public X509CertificateCollection(System.Security.Cryptography.X509Certificates.X509CertificateCollection value) => throw null; - public X509CertificateCollection(System.Security.Cryptography.X509Certificates.X509Certificate[] value) => throw null; } - public class X509Chain : System.IDisposable { public bool Build(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public System.IntPtr ChainContext { get => throw null; } + public nint ChainContext { get => throw null; } public System.Security.Cryptography.X509Certificates.X509ChainElementCollection ChainElements { get => throw null; } - public System.Security.Cryptography.X509Certificates.X509ChainPolicy ChainPolicy { get => throw null; set => throw null; } + public System.Security.Cryptography.X509Certificates.X509ChainPolicy ChainPolicy { get => throw null; set { } } public System.Security.Cryptography.X509Certificates.X509ChainStatus[] ChainStatus { get => throw null; } public static System.Security.Cryptography.X509Certificates.X509Chain Create() => throw null; + public X509Chain() => throw null; + public X509Chain(bool useMachineContext) => throw null; + public X509Chain(nint chainContext) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public void Reset() => throw null; public Microsoft.Win32.SafeHandles.SafeX509ChainHandle SafeHandle { get => throw null; } - public X509Chain() => throw null; - public X509Chain(System.IntPtr chainContext) => throw null; - public X509Chain(bool useMachineContext) => throw null; } - public class X509ChainElement { public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; } public System.Security.Cryptography.X509Certificates.X509ChainStatus[] ChainElementStatus { get => throw null; } public string Information { get => throw null; } } - - public class X509ChainElementCollection : System.Collections.Generic.IEnumerable, System.Collections.ICollection, System.Collections.IEnumerable + public sealed class X509ChainElementCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection { - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(System.Security.Cryptography.X509Certificates.X509ChainElement[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsSynchronized { get => throw null; } - public System.Security.Cryptography.X509Certificates.X509ChainElement this[int index] { get => throw null; } public object SyncRoot { get => throw null; } + public System.Security.Cryptography.X509Certificates.X509ChainElement this[int index] { get => throw null; } } - - public class X509ChainElementEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public sealed class X509ChainElementEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Security.Cryptography.X509Certificates.X509ChainElement Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2735,120 +2550,110 @@ namespace System public bool MoveNext() => throw null; public void Reset() => throw null; } - - public class X509ChainPolicy + public sealed class X509ChainPolicy { public System.Security.Cryptography.OidCollection ApplicationPolicy { get => throw null; } public System.Security.Cryptography.OidCollection CertificatePolicy { get => throw null; } public System.Security.Cryptography.X509Certificates.X509ChainPolicy Clone() => throw null; + public X509ChainPolicy() => throw null; public System.Security.Cryptography.X509Certificates.X509Certificate2Collection CustomTrustStore { get => throw null; } - public bool DisableCertificateDownloads { get => throw null; set => throw null; } + public bool DisableCertificateDownloads { get => throw null; set { } } public System.Security.Cryptography.X509Certificates.X509Certificate2Collection ExtraStore { get => throw null; } public void Reset() => throw null; - public System.Security.Cryptography.X509Certificates.X509RevocationFlag RevocationFlag { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509RevocationMode RevocationMode { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509ChainTrustMode TrustMode { get => throw null; set => throw null; } - public System.TimeSpan UrlRetrievalTimeout { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509VerificationFlags VerificationFlags { get => throw null; set => throw null; } - public System.DateTime VerificationTime { get => throw null; set => throw null; } - public bool VerificationTimeIgnored { get => throw null; set => throw null; } - public X509ChainPolicy() => throw null; + public System.Security.Cryptography.X509Certificates.X509RevocationFlag RevocationFlag { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509RevocationMode RevocationMode { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509ChainTrustMode TrustMode { get => throw null; set { } } + public System.TimeSpan UrlRetrievalTimeout { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509VerificationFlags VerificationFlags { get => throw null; set { } } + public System.DateTime VerificationTime { get => throw null; set { } } + public bool VerificationTimeIgnored { get => throw null; set { } } } - public struct X509ChainStatus { - public System.Security.Cryptography.X509Certificates.X509ChainStatusFlags Status { get => throw null; set => throw null; } - public string StatusInformation { get => throw null; set => throw null; } - // Stub generator skipped constructor + public System.Security.Cryptography.X509Certificates.X509ChainStatusFlags Status { get => throw null; set { } } + public string StatusInformation { get => throw null; set { } } } - [System.Flags] - public enum X509ChainStatusFlags : int + public enum X509ChainStatusFlags { - CtlNotSignatureValid = 262144, - CtlNotTimeValid = 131072, - CtlNotValidForUsage = 524288, + NoError = 0, + NotTimeValid = 1, + NotTimeNested = 2, + Revoked = 4, + NotSignatureValid = 8, + NotValidForUsage = 16, + UntrustedRoot = 32, + RevocationStatusUnknown = 64, Cyclic = 128, - ExplicitDistrust = 67108864, - HasExcludedNameConstraint = 32768, + InvalidExtension = 256, + InvalidPolicyConstraints = 512, + InvalidBasicConstraints = 1024, + InvalidNameConstraints = 2048, + HasNotSupportedNameConstraint = 4096, HasNotDefinedNameConstraint = 8192, HasNotPermittedNameConstraint = 16384, - HasNotSupportedCriticalExtension = 134217728, - HasNotSupportedNameConstraint = 4096, - HasWeakSignature = 1048576, - InvalidBasicConstraints = 1024, - InvalidExtension = 256, - InvalidNameConstraints = 2048, - InvalidPolicyConstraints = 512, - NoError = 0, - NoIssuanceChainPolicy = 33554432, - NotSignatureValid = 8, - NotTimeNested = 2, - NotTimeValid = 1, - NotValidForUsage = 16, - OfflineRevocation = 16777216, + HasExcludedNameConstraint = 32768, PartialChain = 65536, - RevocationStatusUnknown = 64, - Revoked = 4, - UntrustedRoot = 32, + CtlNotTimeValid = 131072, + CtlNotSignatureValid = 262144, + CtlNotValidForUsage = 524288, + HasWeakSignature = 1048576, + OfflineRevocation = 16777216, + NoIssuanceChainPolicy = 33554432, + ExplicitDistrust = 67108864, + HasNotSupportedCriticalExtension = 134217728, } - - public enum X509ChainTrustMode : int + public enum X509ChainTrustMode { - CustomRootTrust = 1, System = 0, + CustomRootTrust = 1, } - - public enum X509ContentType : int + public enum X509ContentType { - Authenticode = 6, + Unknown = 0, Cert = 1, + SerializedCert = 2, Pfx = 3, Pkcs12 = 3, - Pkcs7 = 5, - SerializedCert = 2, SerializedStore = 4, - Unknown = 0, + Pkcs7 = 5, + Authenticode = 6, } - - public class X509EnhancedKeyUsageExtension : System.Security.Cryptography.X509Certificates.X509Extension + public sealed class X509EnhancedKeyUsageExtension : System.Security.Cryptography.X509Certificates.X509Extension { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; - public System.Security.Cryptography.OidCollection EnhancedKeyUsages { get => throw null; } public X509EnhancedKeyUsageExtension() => throw null; public X509EnhancedKeyUsageExtension(System.Security.Cryptography.AsnEncodedData encodedEnhancedKeyUsages, bool critical) => throw null; public X509EnhancedKeyUsageExtension(System.Security.Cryptography.OidCollection enhancedKeyUsages, bool critical) => throw null; + public System.Security.Cryptography.OidCollection EnhancedKeyUsages { get => throw null; } } - public class X509Extension : System.Security.Cryptography.AsnEncodedData { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; - public bool Critical { get => throw null; set => throw null; } + public bool Critical { get => throw null; set { } } protected X509Extension() => throw null; public X509Extension(System.Security.Cryptography.AsnEncodedData encodedExtension, bool critical) => throw null; - public X509Extension(System.Security.Cryptography.Oid oid, System.Byte[] rawData, bool critical) => throw null; - public X509Extension(System.Security.Cryptography.Oid oid, System.ReadOnlySpan rawData, bool critical) => throw null; - public X509Extension(string oid, System.Byte[] rawData, bool critical) => throw null; - public X509Extension(string oid, System.ReadOnlySpan rawData, bool critical) => throw null; + public X509Extension(System.Security.Cryptography.Oid oid, byte[] rawData, bool critical) => throw null; + public X509Extension(System.Security.Cryptography.Oid oid, System.ReadOnlySpan rawData, bool critical) => throw null; + public X509Extension(string oid, byte[] rawData, bool critical) => throw null; + public X509Extension(string oid, System.ReadOnlySpan rawData, bool critical) => throw null; } - - public class X509ExtensionCollection : System.Collections.Generic.IEnumerable, System.Collections.ICollection, System.Collections.IEnumerable + public sealed class X509ExtensionCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection { public int Add(System.Security.Cryptography.X509Certificates.X509Extension extension) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(System.Security.Cryptography.X509Certificates.X509Extension[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public X509ExtensionCollection() => throw null; public System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsSynchronized { get => throw null; } + public object SyncRoot { get => throw null; } public System.Security.Cryptography.X509Certificates.X509Extension this[int index] { get => throw null; } public System.Security.Cryptography.X509Certificates.X509Extension this[string oid] { get => throw null; } - public object SyncRoot { get => throw null; } - public X509ExtensionCollection() => throw null; } - - public class X509ExtensionEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public sealed class X509ExtensionEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Security.Cryptography.X509Certificates.X509Extension Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2856,136 +2661,117 @@ namespace System public bool MoveNext() => throw null; public void Reset() => throw null; } - - public enum X509FindType : int + public enum X509FindType { + FindByThumbprint = 0, + FindBySubjectName = 1, + FindBySubjectDistinguishedName = 2, + FindByIssuerName = 3, + FindByIssuerDistinguishedName = 4, + FindBySerialNumber = 5, + FindByTimeValid = 6, + FindByTimeNotYetValid = 7, + FindByTimeExpired = 8, + FindByTemplateName = 9, FindByApplicationPolicy = 10, FindByCertificatePolicy = 11, FindByExtension = 12, - FindByIssuerDistinguishedName = 4, - FindByIssuerName = 3, FindByKeyUsage = 13, - FindBySerialNumber = 5, - FindBySubjectDistinguishedName = 2, FindBySubjectKeyIdentifier = 14, - FindBySubjectName = 1, - FindByTemplateName = 9, - FindByThumbprint = 0, - FindByTimeExpired = 8, - FindByTimeNotYetValid = 7, - FindByTimeValid = 6, } - - public enum X509IncludeOption : int + public enum X509IncludeOption { - EndCertOnly = 2, - ExcludeRoot = 1, None = 0, + ExcludeRoot = 1, + EndCertOnly = 2, WholeChain = 3, } - [System.Flags] - public enum X509KeyStorageFlags : int + public enum X509KeyStorageFlags { DefaultKeySet = 0, - EphemeralKeySet = 32, - Exportable = 4, - MachineKeySet = 2, - PersistKeySet = 16, UserKeySet = 1, + MachineKeySet = 2, + Exportable = 4, UserProtected = 8, + PersistKeySet = 16, + EphemeralKeySet = 32, } - - public class X509KeyUsageExtension : System.Security.Cryptography.X509Certificates.X509Extension + public sealed class X509KeyUsageExtension : System.Security.Cryptography.X509Certificates.X509Extension { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; - public System.Security.Cryptography.X509Certificates.X509KeyUsageFlags KeyUsages { get => throw null; } public X509KeyUsageExtension() => throw null; public X509KeyUsageExtension(System.Security.Cryptography.AsnEncodedData encodedKeyUsage, bool critical) => throw null; public X509KeyUsageExtension(System.Security.Cryptography.X509Certificates.X509KeyUsageFlags keyUsages, bool critical) => throw null; + public System.Security.Cryptography.X509Certificates.X509KeyUsageFlags KeyUsages { get => throw null; } } - [System.Flags] - public enum X509KeyUsageFlags : int + public enum X509KeyUsageFlags { - CrlSign = 2, - DataEncipherment = 16, - DecipherOnly = 32768, - DigitalSignature = 128, + None = 0, EncipherOnly = 1, - KeyAgreement = 8, + CrlSign = 2, KeyCertSign = 4, + KeyAgreement = 8, + DataEncipherment = 16, KeyEncipherment = 32, NonRepudiation = 64, - None = 0, + DigitalSignature = 128, + DecipherOnly = 32768, } - - public enum X509NameType : int + public enum X509NameType { - DnsFromAlternativeName = 4, - DnsName = 3, - EmailName = 1, SimpleName = 0, + EmailName = 1, UpnName = 2, + DnsName = 3, + DnsFromAlternativeName = 4, UrlName = 5, } - - public enum X509RevocationFlag : int + public enum X509RevocationFlag { EndCertificateOnly = 0, EntireChain = 1, ExcludeRoot = 2, } - - public enum X509RevocationMode : int + public enum X509RevocationMode { NoCheck = 0, - Offline = 2, Online = 1, + Offline = 2, } - - public enum X509RevocationReason : int + public enum X509RevocationReason { - AACompromise = 10, - AffiliationChanged = 3, - CACompromise = 2, - CertificateHold = 6, - CessationOfOperation = 5, - KeyCompromise = 1, - PrivilegeWithdrawn = 9, - RemoveFromCrl = 8, - Superseded = 4, Unspecified = 0, + KeyCompromise = 1, + CACompromise = 2, + AffiliationChanged = 3, + Superseded = 4, + CessationOfOperation = 5, + CertificateHold = 6, + RemoveFromCrl = 8, + PrivilegeWithdrawn = 9, + AACompromise = 10, WeakAlgorithmOrKey = 11, } - public abstract class X509SignatureGenerator { protected abstract System.Security.Cryptography.X509Certificates.PublicKey BuildPublicKey(); public static System.Security.Cryptography.X509Certificates.X509SignatureGenerator CreateForECDsa(System.Security.Cryptography.ECDsa key) => throw null; public static System.Security.Cryptography.X509Certificates.X509SignatureGenerator CreateForRSA(System.Security.Cryptography.RSA key, System.Security.Cryptography.RSASignaturePadding signaturePadding) => throw null; - public abstract System.Byte[] GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName hashAlgorithm); - public System.Security.Cryptography.X509Certificates.PublicKey PublicKey { get => throw null; } - public abstract System.Byte[] SignData(System.Byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm); protected X509SignatureGenerator() => throw null; + public abstract byte[] GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName hashAlgorithm); + public System.Security.Cryptography.X509Certificates.PublicKey PublicKey { get => throw null; } + public abstract byte[] SignData(byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm); } - - public class X509Store : System.IDisposable + public sealed class X509Store : System.IDisposable { public void Add(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; public void AddRange(System.Security.Cryptography.X509Certificates.X509Certificate2Collection certificates) => throw null; public System.Security.Cryptography.X509Certificates.X509Certificate2Collection Certificates { get => throw null; } public void Close() => throw null; - public void Dispose() => throw null; - public bool IsOpen { get => throw null; } - public System.Security.Cryptography.X509Certificates.StoreLocation Location { get => throw null; } - public string Name { get => throw null; } - public void Open(System.Security.Cryptography.X509Certificates.OpenFlags flags) => throw null; - public void Remove(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public void RemoveRange(System.Security.Cryptography.X509Certificates.X509Certificate2Collection certificates) => throw null; - public System.IntPtr StoreHandle { get => throw null; } public X509Store() => throw null; - public X509Store(System.IntPtr storeHandle) => throw null; + public X509Store(nint storeHandle) => throw null; public X509Store(System.Security.Cryptography.X509Certificates.StoreLocation storeLocation) => throw null; public X509Store(System.Security.Cryptography.X509Certificates.StoreName storeName) => throw null; public X509Store(System.Security.Cryptography.X509Certificates.StoreName storeName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation) => throw null; @@ -2993,58 +2779,61 @@ namespace System public X509Store(string storeName) => throw null; public X509Store(string storeName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation) => throw null; public X509Store(string storeName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.OpenFlags flags) => throw null; + public void Dispose() => throw null; + public bool IsOpen { get => throw null; } + public System.Security.Cryptography.X509Certificates.StoreLocation Location { get => throw null; } + public string Name { get => throw null; } + public void Open(System.Security.Cryptography.X509Certificates.OpenFlags flags) => throw null; + public void Remove(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public void RemoveRange(System.Security.Cryptography.X509Certificates.X509Certificate2Collection certificates) => throw null; + public nint StoreHandle { get => throw null; } } - - public class X509SubjectAlternativeNameExtension : System.Security.Cryptography.X509Certificates.X509Extension + public sealed class X509SubjectAlternativeNameExtension : System.Security.Cryptography.X509Certificates.X509Extension { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public X509SubjectAlternativeNameExtension() => throw null; + public X509SubjectAlternativeNameExtension(byte[] rawData, bool critical = default(bool)) => throw null; + public X509SubjectAlternativeNameExtension(System.ReadOnlySpan rawData, bool critical = default(bool)) => throw null; public System.Collections.Generic.IEnumerable EnumerateDnsNames() => throw null; public System.Collections.Generic.IEnumerable EnumerateIPAddresses() => throw null; - public X509SubjectAlternativeNameExtension() => throw null; - public X509SubjectAlternativeNameExtension(System.Byte[] rawData, bool critical = default(bool)) => throw null; - public X509SubjectAlternativeNameExtension(System.ReadOnlySpan rawData, bool critical = default(bool)) => throw null; } - - public class X509SubjectKeyIdentifierExtension : System.Security.Cryptography.X509Certificates.X509Extension + public sealed class X509SubjectKeyIdentifierExtension : System.Security.Cryptography.X509Certificates.X509Extension { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; - public string SubjectKeyIdentifier { get => throw null; } - public System.ReadOnlyMemory SubjectKeyIdentifierBytes { get => throw null; } public X509SubjectKeyIdentifierExtension() => throw null; + public X509SubjectKeyIdentifierExtension(byte[] subjectKeyIdentifier, bool critical) => throw null; + public X509SubjectKeyIdentifierExtension(System.ReadOnlySpan subjectKeyIdentifier, bool critical) => throw null; public X509SubjectKeyIdentifierExtension(System.Security.Cryptography.AsnEncodedData encodedSubjectKeyIdentifier, bool critical) => throw null; - public X509SubjectKeyIdentifierExtension(System.Byte[] subjectKeyIdentifier, bool critical) => throw null; - public X509SubjectKeyIdentifierExtension(System.Security.Cryptography.X509Certificates.PublicKey key, System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierHashAlgorithm algorithm, bool critical) => throw null; public X509SubjectKeyIdentifierExtension(System.Security.Cryptography.X509Certificates.PublicKey key, bool critical) => throw null; - public X509SubjectKeyIdentifierExtension(System.ReadOnlySpan subjectKeyIdentifier, bool critical) => throw null; + public X509SubjectKeyIdentifierExtension(System.Security.Cryptography.X509Certificates.PublicKey key, System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierHashAlgorithm algorithm, bool critical) => throw null; public X509SubjectKeyIdentifierExtension(string subjectKeyIdentifier, bool critical) => throw null; + public string SubjectKeyIdentifier { get => throw null; } + public System.ReadOnlyMemory SubjectKeyIdentifierBytes { get => throw null; } } - - public enum X509SubjectKeyIdentifierHashAlgorithm : int + public enum X509SubjectKeyIdentifierHashAlgorithm { - CapiSha1 = 2, Sha1 = 0, ShortSha1 = 1, + CapiSha1 = 2, } - [System.Flags] - public enum X509VerificationFlags : int + public enum X509VerificationFlags { - AllFlags = 4095, - AllowUnknownCertificateAuthority = 16, - IgnoreCertificateAuthorityRevocationUnknown = 1024, + NoFlag = 0, + IgnoreNotTimeValid = 1, IgnoreCtlNotTimeValid = 2, - IgnoreCtlSignerRevocationUnknown = 512, - IgnoreEndRevocationUnknown = 256, + IgnoreNotTimeNested = 4, IgnoreInvalidBasicConstraints = 8, + AllowUnknownCertificateAuthority = 16, + IgnoreWrongUsage = 32, IgnoreInvalidName = 64, IgnoreInvalidPolicy = 128, - IgnoreNotTimeNested = 4, - IgnoreNotTimeValid = 1, + IgnoreEndRevocationUnknown = 256, + IgnoreCtlSignerRevocationUnknown = 512, + IgnoreCertificateAuthorityRevocationUnknown = 1024, IgnoreRootRevocationUnknown = 2048, - IgnoreWrongUsage = 32, - NoFlag = 0, + AllFlags = 4095, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs index 2b35db3bc00..a125eb40d7a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs @@ -1,21 +1,19 @@ // This file contains auto-generated code. // Generated from `System.Security.Principal.Windows, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace Microsoft { namespace Win32 { namespace SafeHandles { - public class SafeAccessTokenHandle : System.Runtime.InteropServices.SafeHandle + public sealed class SafeAccessTokenHandle : System.Runtime.InteropServices.SafeHandle { + public SafeAccessTokenHandle() : base(default(nint), default(bool)) => throw null; + public SafeAccessTokenHandle(nint handle) : base(default(nint), default(bool)) => throw null; public static Microsoft.Win32.SafeHandles.SafeAccessTokenHandle InvalidHandle { get => throw null; } public override bool IsInvalid { get => throw null; } protected override bool ReleaseHandle() => throw null; - public SafeAccessTokenHandle() : base(default(System.IntPtr), default(bool)) => throw null; - public SafeAccessTokenHandle(System.IntPtr handle) : base(default(System.IntPtr), default(bool)) => throw null; } - } } } @@ -25,28 +23,25 @@ namespace System { namespace Principal { - public class IdentityNotMappedException : System.SystemException + public sealed class IdentityNotMappedException : System.SystemException { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public IdentityNotMappedException() => throw null; public IdentityNotMappedException(string message) => throw null; public IdentityNotMappedException(string message, System.Exception inner) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public System.Security.Principal.IdentityReferenceCollection UnmappedIdentities { get => throw null; } } - public abstract class IdentityReference { - public static bool operator !=(System.Security.Principal.IdentityReference left, System.Security.Principal.IdentityReference right) => throw null; - public static bool operator ==(System.Security.Principal.IdentityReference left, System.Security.Principal.IdentityReference right) => throw null; public abstract override bool Equals(object o); public abstract override int GetHashCode(); - internal IdentityReference() => throw null; public abstract bool IsValidTargetType(System.Type targetType); + public static bool operator ==(System.Security.Principal.IdentityReference left, System.Security.Principal.IdentityReference right) => throw null; + public static bool operator !=(System.Security.Principal.IdentityReference left, System.Security.Principal.IdentityReference right) => throw null; public abstract override string ToString(); public abstract System.Security.Principal.IdentityReference Translate(System.Type targetType); public abstract string Value { get; } } - public class IdentityReferenceCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public void Add(System.Security.Principal.IdentityReference identity) => throw null; @@ -54,41 +49,41 @@ namespace System public bool Contains(System.Security.Principal.IdentityReference identity) => throw null; public void CopyTo(System.Security.Principal.IdentityReference[] array, int offset) => throw null; public int Count { get => throw null; } - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public IdentityReferenceCollection() => throw null; public IdentityReferenceCollection(int capacity) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - public System.Security.Principal.IdentityReference this[int index] { get => throw null; set => throw null; } public bool Remove(System.Security.Principal.IdentityReference identity) => throw null; + public System.Security.Principal.IdentityReference this[int index] { get => throw null; set { } } public System.Security.Principal.IdentityReferenceCollection Translate(System.Type targetType) => throw null; public System.Security.Principal.IdentityReferenceCollection Translate(System.Type targetType, bool forceSuccess) => throw null; } - - public class NTAccount : System.Security.Principal.IdentityReference + public sealed class NTAccount : System.Security.Principal.IdentityReference { - public static bool operator !=(System.Security.Principal.NTAccount left, System.Security.Principal.NTAccount right) => throw null; - public static bool operator ==(System.Security.Principal.NTAccount left, System.Security.Principal.NTAccount right) => throw null; + public NTAccount(string name) => throw null; + public NTAccount(string domainName, string accountName) => throw null; public override bool Equals(object o) => throw null; public override int GetHashCode() => throw null; public override bool IsValidTargetType(System.Type targetType) => throw null; - public NTAccount(string name) => throw null; - public NTAccount(string domainName, string accountName) => throw null; + public static bool operator ==(System.Security.Principal.NTAccount left, System.Security.Principal.NTAccount right) => throw null; + public static bool operator !=(System.Security.Principal.NTAccount left, System.Security.Principal.NTAccount right) => throw null; public override string ToString() => throw null; public override System.Security.Principal.IdentityReference Translate(System.Type targetType) => throw null; public override string Value { get => throw null; } } - - public class SecurityIdentifier : System.Security.Principal.IdentityReference, System.IComparable + public sealed class SecurityIdentifier : System.Security.Principal.IdentityReference, System.IComparable { - public static bool operator !=(System.Security.Principal.SecurityIdentifier left, System.Security.Principal.SecurityIdentifier right) => throw null; - public static bool operator ==(System.Security.Principal.SecurityIdentifier left, System.Security.Principal.SecurityIdentifier right) => throw null; public System.Security.Principal.SecurityIdentifier AccountDomainSid { get => throw null; } public int BinaryLength { get => throw null; } public int CompareTo(System.Security.Principal.SecurityIdentifier sid) => throw null; - public bool Equals(System.Security.Principal.SecurityIdentifier sid) => throw null; + public SecurityIdentifier(byte[] binaryForm, int offset) => throw null; + public SecurityIdentifier(nint binaryForm) => throw null; + public SecurityIdentifier(System.Security.Principal.WellKnownSidType sidType, System.Security.Principal.SecurityIdentifier domainSid) => throw null; + public SecurityIdentifier(string sddlForm) => throw null; public override bool Equals(object o) => throw null; - public void GetBinaryForm(System.Byte[] binaryForm, int offset) => throw null; + public bool Equals(System.Security.Principal.SecurityIdentifier sid) => throw null; + public void GetBinaryForm(byte[] binaryForm, int offset) => throw null; public override int GetHashCode() => throw null; public bool IsAccountSid() => throw null; public bool IsEqualDomainSid(System.Security.Principal.SecurityIdentifier sid) => throw null; @@ -96,168 +91,168 @@ namespace System public bool IsWellKnown(System.Security.Principal.WellKnownSidType type) => throw null; public static int MaxBinaryLength; public static int MinBinaryLength; - public SecurityIdentifier(System.Byte[] binaryForm, int offset) => throw null; - public SecurityIdentifier(System.IntPtr binaryForm) => throw null; - public SecurityIdentifier(System.Security.Principal.WellKnownSidType sidType, System.Security.Principal.SecurityIdentifier domainSid) => throw null; - public SecurityIdentifier(string sddlForm) => throw null; + public static bool operator ==(System.Security.Principal.SecurityIdentifier left, System.Security.Principal.SecurityIdentifier right) => throw null; + public static bool operator !=(System.Security.Principal.SecurityIdentifier left, System.Security.Principal.SecurityIdentifier right) => throw null; public override string ToString() => throw null; public override System.Security.Principal.IdentityReference Translate(System.Type targetType) => throw null; public override string Value { get => throw null; } } - [System.Flags] - public enum TokenAccessLevels : int + public enum TokenAccessLevels { - AdjustDefault = 128, - AdjustGroups = 64, - AdjustPrivileges = 32, - AdjustSessionId = 256, - AllAccess = 983551, AssignPrimary = 1, Duplicate = 2, Impersonate = 4, - MaximumAllowed = 33554432, Query = 8, QuerySource = 16, + AdjustPrivileges = 32, + AdjustGroups = 64, + AdjustDefault = 128, + AdjustSessionId = 256, Read = 131080, Write = 131296, + AllAccess = 983551, + MaximumAllowed = 33554432, } - - public enum WellKnownSidType : int + public enum WellKnownSidType { - AccountAdministratorSid = 38, - AccountCertAdminsSid = 46, - AccountComputersSid = 44, - AccountControllersSid = 45, - AccountDomainAdminsSid = 41, - AccountDomainGuestsSid = 43, - AccountDomainUsersSid = 42, - AccountEnterpriseAdminsSid = 48, - AccountGuestSid = 39, - AccountKrbtgtSid = 40, - AccountPolicyAdminsSid = 49, - AccountRasAndIasServersSid = 50, - AccountSchemaAdminsSid = 47, - AnonymousSid = 13, - AuthenticatedUserSid = 17, - BatchSid = 10, - BuiltinAccountOperatorsSid = 30, - BuiltinAdministratorsSid = 26, - BuiltinAuthorizationAccessSid = 59, - BuiltinBackupOperatorsSid = 33, - BuiltinDomainSid = 25, - BuiltinGuestsSid = 28, - BuiltinIncomingForestTrustBuildersSid = 56, - BuiltinNetworkConfigurationOperatorsSid = 37, - BuiltinPerformanceLoggingUsersSid = 58, - BuiltinPerformanceMonitoringUsersSid = 57, - BuiltinPowerUsersSid = 29, - BuiltinPreWindows2000CompatibleAccessSid = 35, - BuiltinPrintOperatorsSid = 32, - BuiltinRemoteDesktopUsersSid = 36, - BuiltinReplicatorSid = 34, - BuiltinSystemOperatorsSid = 31, - BuiltinUsersSid = 27, - CreatorGroupServerSid = 6, + NullSid = 0, + WorldSid = 1, + LocalSid = 2, + CreatorOwnerSid = 3, CreatorGroupSid = 4, CreatorOwnerServerSid = 5, - CreatorOwnerSid = 3, - DialupSid = 8, - DigestAuthenticationSid = 52, - EnterpriseControllersSid = 15, - InteractiveSid = 11, - LocalServiceSid = 23, - LocalSid = 2, - LocalSystemSid = 22, - LogonIdsSid = 21, - MaxDefined = 60, + CreatorGroupServerSid = 6, NTAuthoritySid = 7, - NetworkServiceSid = 24, + DialupSid = 8, NetworkSid = 9, - NtlmAuthenticationSid = 51, - NullSid = 0, - OtherOrganizationSid = 55, - ProxySid = 14, - RemoteLogonIdSid = 20, - RestrictedCodeSid = 18, - SChannelAuthenticationSid = 53, - SelfSid = 16, + BatchSid = 10, + InteractiveSid = 11, ServiceSid = 12, + AnonymousSid = 13, + ProxySid = 14, + EnterpriseControllersSid = 15, + SelfSid = 16, + AuthenticatedUserSid = 17, + RestrictedCodeSid = 18, TerminalServerSid = 19, + RemoteLogonIdSid = 20, + LogonIdsSid = 21, + LocalSystemSid = 22, + LocalServiceSid = 23, + NetworkServiceSid = 24, + BuiltinDomainSid = 25, + BuiltinAdministratorsSid = 26, + BuiltinUsersSid = 27, + BuiltinGuestsSid = 28, + BuiltinPowerUsersSid = 29, + BuiltinAccountOperatorsSid = 30, + BuiltinSystemOperatorsSid = 31, + BuiltinPrintOperatorsSid = 32, + BuiltinBackupOperatorsSid = 33, + BuiltinReplicatorSid = 34, + BuiltinPreWindows2000CompatibleAccessSid = 35, + BuiltinRemoteDesktopUsersSid = 36, + BuiltinNetworkConfigurationOperatorsSid = 37, + AccountAdministratorSid = 38, + AccountGuestSid = 39, + AccountKrbtgtSid = 40, + AccountDomainAdminsSid = 41, + AccountDomainUsersSid = 42, + AccountDomainGuestsSid = 43, + AccountComputersSid = 44, + AccountControllersSid = 45, + AccountCertAdminsSid = 46, + AccountSchemaAdminsSid = 47, + AccountEnterpriseAdminsSid = 48, + AccountPolicyAdminsSid = 49, + AccountRasAndIasServersSid = 50, + NtlmAuthenticationSid = 51, + DigestAuthenticationSid = 52, + SChannelAuthenticationSid = 53, ThisOrganizationSid = 54, - WinAccountReadonlyControllersSid = 75, - WinApplicationPackageAuthoritySid = 83, - WinBuiltinAnyPackageSid = 84, - WinBuiltinCertSvcDComAccessGroup = 78, - WinBuiltinCryptoOperatorsSid = 64, - WinBuiltinDCOMUsersSid = 61, - WinBuiltinEventLogReadersGroup = 76, - WinBuiltinIUsersSid = 62, + OtherOrganizationSid = 55, + BuiltinIncomingForestTrustBuildersSid = 56, + BuiltinPerformanceMonitoringUsersSid = 57, + BuiltinPerformanceLoggingUsersSid = 58, + BuiltinAuthorizationAccessSid = 59, + MaxDefined = 60, WinBuiltinTerminalServerLicenseServersSid = 60, - WinCacheablePrincipalsGroupSid = 72, - WinCapabilityDocumentsLibrarySid = 91, - WinCapabilityEnterpriseAuthenticationSid = 93, - WinCapabilityInternetClientServerSid = 86, - WinCapabilityInternetClientSid = 85, - WinCapabilityMusicLibrarySid = 90, - WinCapabilityPicturesLibrarySid = 88, - WinCapabilityPrivateNetworkClientServerSid = 87, - WinCapabilityRemovableStorageSid = 94, - WinCapabilitySharedUserCertificatesSid = 92, - WinCapabilityVideosLibrarySid = 89, - WinConsoleLogonSid = 81, - WinCreatorOwnerRightsSid = 71, - WinEnterpriseReadonlyControllersSid = 74, - WinHighLabelSid = 68, + WinBuiltinDCOMUsersSid = 61, + WinBuiltinIUsersSid = 62, WinIUserSid = 63, - WinLocalLogonSid = 80, + WinBuiltinCryptoOperatorsSid = 64, + WinUntrustedLabelSid = 65, WinLowLabelSid = 66, WinMediumLabelSid = 67, - WinMediumPlusLabelSid = 79, - WinNewEnterpriseReadonlyControllersSid = 77, - WinNonCacheablePrincipalsGroupSid = 73, + WinHighLabelSid = 68, WinSystemLabelSid = 69, - WinThisOrganizationCertificateSid = 82, - WinUntrustedLabelSid = 65, WinWriteRestrictedCodeSid = 70, - WorldSid = 1, + WinCreatorOwnerRightsSid = 71, + WinCacheablePrincipalsGroupSid = 72, + WinNonCacheablePrincipalsGroupSid = 73, + WinEnterpriseReadonlyControllersSid = 74, + WinAccountReadonlyControllersSid = 75, + WinBuiltinEventLogReadersGroup = 76, + WinNewEnterpriseReadonlyControllersSid = 77, + WinBuiltinCertSvcDComAccessGroup = 78, + WinMediumPlusLabelSid = 79, + WinLocalLogonSid = 80, + WinConsoleLogonSid = 81, + WinThisOrganizationCertificateSid = 82, + WinApplicationPackageAuthoritySid = 83, + WinBuiltinAnyPackageSid = 84, + WinCapabilityInternetClientSid = 85, + WinCapabilityInternetClientServerSid = 86, + WinCapabilityPrivateNetworkClientServerSid = 87, + WinCapabilityPicturesLibrarySid = 88, + WinCapabilityVideosLibrarySid = 89, + WinCapabilityMusicLibrarySid = 90, + WinCapabilityDocumentsLibrarySid = 91, + WinCapabilitySharedUserCertificatesSid = 92, + WinCapabilityEnterpriseAuthenticationSid = 93, + WinCapabilityRemovableStorageSid = 94, } - - public enum WindowsAccountType : int + public enum WindowsAccountType { - Anonymous = 3, - Guest = 1, Normal = 0, + Guest = 1, System = 2, + Anonymous = 3, } - - public enum WindowsBuiltInRole : int + public enum WindowsBuiltInRole { - AccountOperator = 548, Administrator = 544, - BackupOperator = 551, + User = 545, Guest = 546, PowerUser = 547, - PrintOperator = 550, - Replicator = 552, + AccountOperator = 548, SystemOperator = 549, - User = 545, + PrintOperator = 550, + BackupOperator = 551, + Replicator = 552, } - public class WindowsIdentity : System.Security.Claims.ClaimsIdentity, System.IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { public Microsoft.Win32.SafeHandles.SafeAccessTokenHandle AccessToken { get => throw null; } - public override string AuthenticationType { get => throw null; } + public override sealed string AuthenticationType { get => throw null; } public override System.Collections.Generic.IEnumerable Claims { get => throw null; } public override System.Security.Claims.ClaimsIdentity Clone() => throw null; - public const string DefaultIssuer = default; + public WindowsIdentity(nint userToken) => throw null; + public WindowsIdentity(nint userToken, string type) => throw null; + public WindowsIdentity(nint userToken, string type, System.Security.Principal.WindowsAccountType acctType) => throw null; + public WindowsIdentity(nint userToken, string type, System.Security.Principal.WindowsAccountType acctType, bool isAuthenticated) => throw null; + public WindowsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected WindowsIdentity(System.Security.Principal.WindowsIdentity identity) => throw null; + public WindowsIdentity(string sUserPrincipalName) => throw null; + public static string DefaultIssuer; public virtual System.Collections.Generic.IEnumerable DeviceClaims { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public static System.Security.Principal.WindowsIdentity GetAnonymous() => throw null; public static System.Security.Principal.WindowsIdentity GetCurrent() => throw null; - public static System.Security.Principal.WindowsIdentity GetCurrent(System.Security.Principal.TokenAccessLevels desiredAccess) => throw null; public static System.Security.Principal.WindowsIdentity GetCurrent(bool ifImpersonating) => throw null; + public static System.Security.Principal.WindowsIdentity GetCurrent(System.Security.Principal.TokenAccessLevels desiredAccess) => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public System.Security.Principal.IdentityReferenceCollection Groups { get => throw null; } public System.Security.Principal.TokenImpersonationLevel ImpersonationLevel { get => throw null; } @@ -272,30 +267,21 @@ namespace System public static T RunImpersonated(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle safeAccessTokenHandle, System.Func func) => throw null; public static System.Threading.Tasks.Task RunImpersonatedAsync(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle safeAccessTokenHandle, System.Func func) => throw null; public static System.Threading.Tasks.Task RunImpersonatedAsync(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle safeAccessTokenHandle, System.Func> func) => throw null; - public virtual System.IntPtr Token { get => throw null; } + public virtual nint Token { get => throw null; } public System.Security.Principal.SecurityIdentifier User { get => throw null; } public virtual System.Collections.Generic.IEnumerable UserClaims { get => throw null; } - public WindowsIdentity(System.IntPtr userToken) => throw null; - public WindowsIdentity(System.IntPtr userToken, string type) => throw null; - public WindowsIdentity(System.IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType) => throw null; - public WindowsIdentity(System.IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType, bool isAuthenticated) => throw null; - public WindowsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected WindowsIdentity(System.Security.Principal.WindowsIdentity identity) => throw null; - public WindowsIdentity(string sUserPrincipalName) => throw null; } - public class WindowsPrincipal : System.Security.Claims.ClaimsPrincipal { + public WindowsPrincipal(System.Security.Principal.WindowsIdentity ntIdentity) => throw null; public virtual System.Collections.Generic.IEnumerable DeviceClaims { get => throw null; } public override System.Security.Principal.IIdentity Identity { get => throw null; } + public virtual bool IsInRole(int rid) => throw null; public virtual bool IsInRole(System.Security.Principal.SecurityIdentifier sid) => throw null; public virtual bool IsInRole(System.Security.Principal.WindowsBuiltInRole role) => throw null; - public virtual bool IsInRole(int rid) => throw null; public override bool IsInRole(string role) => throw null; public virtual System.Collections.Generic.IEnumerable UserClaims { get => throw null; } - public WindowsPrincipal(System.Security.Principal.WindowsIdentity ntIdentity) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs new file mode 100644 index 00000000000..a98d623155c --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Security.Principal, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs new file mode 100644 index 00000000000..e05ef4f2205 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Security.SecureString, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs new file mode 100644 index 00000000000..2cf972311cc --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs new file mode 100644 index 00000000000..d6d5ab5c577 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs new file mode 100644 index 00000000000..6a1ff5e0a00 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.CodePages.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.CodePages.cs index 4ea79881dce..9dce852290c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.CodePages.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.CodePages.cs @@ -1,17 +1,15 @@ // This file contains auto-generated code. // Generated from `System.Text.Encoding.CodePages, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Text { - public class CodePagesEncodingProvider : System.Text.EncodingProvider + public sealed class CodePagesEncodingProvider : System.Text.EncodingProvider { public override System.Text.Encoding GetEncoding(int codepage) => throw null; public override System.Text.Encoding GetEncoding(string name) => throw null; public override System.Collections.Generic.IEnumerable GetEncodings() => throw null; public static System.Text.EncodingProvider Instance { get => throw null; } } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs index cf256dec475..3b2478d58cb 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Text.Encoding.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Text @@ -8,133 +7,128 @@ namespace System public class ASCIIEncoding : System.Text.Encoding { public ASCIIEncoding() => throw null; - public override int GetByteCount(System.Char[] chars, int index, int count) => throw null; - public override int GetByteCount(System.ReadOnlySpan chars) => throw null; - unsafe public override int GetByteCount(System.Char* chars, int count) => throw null; + public override unsafe int GetByteCount(char* chars, int count) => throw null; + public override int GetByteCount(char[] chars, int index, int count) => throw null; + public override int GetByteCount(System.ReadOnlySpan chars) => throw null; public override int GetByteCount(string chars) => throw null; - public override int GetBytes(System.Char[] chars, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - public override int GetBytes(System.ReadOnlySpan chars, System.Span bytes) => throw null; - unsafe public override int GetBytes(System.Char* chars, int charCount, System.Byte* bytes, int byteCount) => throw null; - public override int GetBytes(string chars, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - public override int GetCharCount(System.Byte[] bytes, int index, int count) => throw null; - public override int GetCharCount(System.ReadOnlySpan bytes) => throw null; - unsafe public override int GetCharCount(System.Byte* bytes, int count) => throw null; - public override int GetChars(System.Byte[] bytes, int byteIndex, int byteCount, System.Char[] chars, int charIndex) => throw null; - public override int GetChars(System.ReadOnlySpan bytes, System.Span chars) => throw null; - unsafe public override int GetChars(System.Byte* bytes, int byteCount, System.Char* chars, int charCount) => throw null; + public override unsafe int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) => throw null; + public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public override int GetBytes(System.ReadOnlySpan chars, System.Span bytes) => throw null; + public override int GetBytes(string chars, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public override unsafe int GetCharCount(byte* bytes, int count) => throw null; + public override int GetCharCount(byte[] bytes, int index, int count) => throw null; + public override int GetCharCount(System.ReadOnlySpan bytes) => throw null; + public override unsafe int GetChars(byte* bytes, int byteCount, char* chars, int charCount) => throw null; + public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) => throw null; + public override int GetChars(System.ReadOnlySpan bytes, System.Span chars) => throw null; public override System.Text.Decoder GetDecoder() => throw null; public override System.Text.Encoder GetEncoder() => throw null; public override int GetMaxByteCount(int charCount) => throw null; public override int GetMaxCharCount(int byteCount) => throw null; - public override string GetString(System.Byte[] bytes, int byteIndex, int byteCount) => throw null; + public override string GetString(byte[] bytes, int byteIndex, int byteCount) => throw null; public override bool IsSingleByte { get => throw null; } } - - public class UTF32Encoding : System.Text.Encoding - { - public override bool Equals(object value) => throw null; - public override int GetByteCount(System.Char[] chars, int index, int count) => throw null; - unsafe public override int GetByteCount(System.Char* chars, int count) => throw null; - public override int GetByteCount(string s) => throw null; - public override int GetBytes(System.Char[] chars, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - unsafe public override int GetBytes(System.Char* chars, int charCount, System.Byte* bytes, int byteCount) => throw null; - public override int GetBytes(string s, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - public override int GetCharCount(System.Byte[] bytes, int index, int count) => throw null; - unsafe public override int GetCharCount(System.Byte* bytes, int count) => throw null; - public override int GetChars(System.Byte[] bytes, int byteIndex, int byteCount, System.Char[] chars, int charIndex) => throw null; - unsafe public override int GetChars(System.Byte* bytes, int byteCount, System.Char* chars, int charCount) => throw null; - public override System.Text.Decoder GetDecoder() => throw null; - public override System.Text.Encoder GetEncoder() => throw null; - public override int GetHashCode() => throw null; - public override int GetMaxByteCount(int charCount) => throw null; - public override int GetMaxCharCount(int byteCount) => throw null; - public override System.Byte[] GetPreamble() => throw null; - public override string GetString(System.Byte[] bytes, int index, int count) => throw null; - public override System.ReadOnlySpan Preamble { get => throw null; } - public UTF32Encoding() => throw null; - public UTF32Encoding(bool bigEndian, bool byteOrderMark) => throw null; - public UTF32Encoding(bool bigEndian, bool byteOrderMark, bool throwOnInvalidCharacters) => throw null; - } - - public class UTF7Encoding : System.Text.Encoding - { - public override bool Equals(object value) => throw null; - public override int GetByteCount(System.Char[] chars, int index, int count) => throw null; - unsafe public override int GetByteCount(System.Char* chars, int count) => throw null; - public override int GetByteCount(string s) => throw null; - public override int GetBytes(System.Char[] chars, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - unsafe public override int GetBytes(System.Char* chars, int charCount, System.Byte* bytes, int byteCount) => throw null; - public override int GetBytes(string s, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - public override int GetCharCount(System.Byte[] bytes, int index, int count) => throw null; - unsafe public override int GetCharCount(System.Byte* bytes, int count) => throw null; - public override int GetChars(System.Byte[] bytes, int byteIndex, int byteCount, System.Char[] chars, int charIndex) => throw null; - unsafe public override int GetChars(System.Byte* bytes, int byteCount, System.Char* chars, int charCount) => throw null; - public override System.Text.Decoder GetDecoder() => throw null; - public override System.Text.Encoder GetEncoder() => throw null; - public override int GetHashCode() => throw null; - public override int GetMaxByteCount(int charCount) => throw null; - public override int GetMaxCharCount(int byteCount) => throw null; - public override string GetString(System.Byte[] bytes, int index, int count) => throw null; - public UTF7Encoding() => throw null; - public UTF7Encoding(bool allowOptionals) => throw null; - } - - public class UTF8Encoding : System.Text.Encoding - { - public override bool Equals(object value) => throw null; - public override int GetByteCount(System.Char[] chars, int index, int count) => throw null; - public override int GetByteCount(System.ReadOnlySpan chars) => throw null; - unsafe public override int GetByteCount(System.Char* chars, int count) => throw null; - public override int GetByteCount(string chars) => throw null; - public override int GetBytes(System.Char[] chars, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - public override int GetBytes(System.ReadOnlySpan chars, System.Span bytes) => throw null; - unsafe public override int GetBytes(System.Char* chars, int charCount, System.Byte* bytes, int byteCount) => throw null; - public override int GetBytes(string s, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - public override int GetCharCount(System.Byte[] bytes, int index, int count) => throw null; - public override int GetCharCount(System.ReadOnlySpan bytes) => throw null; - unsafe public override int GetCharCount(System.Byte* bytes, int count) => throw null; - public override int GetChars(System.Byte[] bytes, int byteIndex, int byteCount, System.Char[] chars, int charIndex) => throw null; - public override int GetChars(System.ReadOnlySpan bytes, System.Span chars) => throw null; - unsafe public override int GetChars(System.Byte* bytes, int byteCount, System.Char* chars, int charCount) => throw null; - public override System.Text.Decoder GetDecoder() => throw null; - public override System.Text.Encoder GetEncoder() => throw null; - public override int GetHashCode() => throw null; - public override int GetMaxByteCount(int charCount) => throw null; - public override int GetMaxCharCount(int byteCount) => throw null; - public override System.Byte[] GetPreamble() => throw null; - public override string GetString(System.Byte[] bytes, int index, int count) => throw null; - public override System.ReadOnlySpan Preamble { get => throw null; } - public UTF8Encoding() => throw null; - public UTF8Encoding(bool encoderShouldEmitUTF8Identifier) => throw null; - public UTF8Encoding(bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes) => throw null; - } - public class UnicodeEncoding : System.Text.Encoding { - public const int CharSize = default; - public override bool Equals(object value) => throw null; - public override int GetByteCount(System.Char[] chars, int index, int count) => throw null; - unsafe public override int GetByteCount(System.Char* chars, int count) => throw null; - public override int GetByteCount(string s) => throw null; - public override int GetBytes(System.Char[] chars, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - unsafe public override int GetBytes(System.Char* chars, int charCount, System.Byte* bytes, int byteCount) => throw null; - public override int GetBytes(string s, int charIndex, int charCount, System.Byte[] bytes, int byteIndex) => throw null; - public override int GetCharCount(System.Byte[] bytes, int index, int count) => throw null; - unsafe public override int GetCharCount(System.Byte* bytes, int count) => throw null; - public override int GetChars(System.Byte[] bytes, int byteIndex, int byteCount, System.Char[] chars, int charIndex) => throw null; - unsafe public override int GetChars(System.Byte* bytes, int byteCount, System.Char* chars, int charCount) => throw null; - public override System.Text.Decoder GetDecoder() => throw null; - public override System.Text.Encoder GetEncoder() => throw null; - public override int GetHashCode() => throw null; - public override int GetMaxByteCount(int charCount) => throw null; - public override int GetMaxCharCount(int byteCount) => throw null; - public override System.Byte[] GetPreamble() => throw null; - public override string GetString(System.Byte[] bytes, int index, int count) => throw null; - public override System.ReadOnlySpan Preamble { get => throw null; } + public static int CharSize; public UnicodeEncoding() => throw null; public UnicodeEncoding(bool bigEndian, bool byteOrderMark) => throw null; public UnicodeEncoding(bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes) => throw null; + public override bool Equals(object value) => throw null; + public override unsafe int GetByteCount(char* chars, int count) => throw null; + public override int GetByteCount(char[] chars, int index, int count) => throw null; + public override int GetByteCount(string s) => throw null; + public override unsafe int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) => throw null; + public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public override unsafe int GetCharCount(byte* bytes, int count) => throw null; + public override int GetCharCount(byte[] bytes, int index, int count) => throw null; + public override unsafe int GetChars(byte* bytes, int byteCount, char* chars, int charCount) => throw null; + public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) => throw null; + public override System.Text.Decoder GetDecoder() => throw null; + public override System.Text.Encoder GetEncoder() => throw null; + public override int GetHashCode() => throw null; + public override int GetMaxByteCount(int charCount) => throw null; + public override int GetMaxCharCount(int byteCount) => throw null; + public override byte[] GetPreamble() => throw null; + public override string GetString(byte[] bytes, int index, int count) => throw null; + public override System.ReadOnlySpan Preamble { get => throw null; } + } + public sealed class UTF32Encoding : System.Text.Encoding + { + public UTF32Encoding() => throw null; + public UTF32Encoding(bool bigEndian, bool byteOrderMark) => throw null; + public UTF32Encoding(bool bigEndian, bool byteOrderMark, bool throwOnInvalidCharacters) => throw null; + public override bool Equals(object value) => throw null; + public override unsafe int GetByteCount(char* chars, int count) => throw null; + public override int GetByteCount(char[] chars, int index, int count) => throw null; + public override int GetByteCount(string s) => throw null; + public override unsafe int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) => throw null; + public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public override unsafe int GetCharCount(byte* bytes, int count) => throw null; + public override int GetCharCount(byte[] bytes, int index, int count) => throw null; + public override unsafe int GetChars(byte* bytes, int byteCount, char* chars, int charCount) => throw null; + public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) => throw null; + public override System.Text.Decoder GetDecoder() => throw null; + public override System.Text.Encoder GetEncoder() => throw null; + public override int GetHashCode() => throw null; + public override int GetMaxByteCount(int charCount) => throw null; + public override int GetMaxCharCount(int byteCount) => throw null; + public override byte[] GetPreamble() => throw null; + public override string GetString(byte[] bytes, int index, int count) => throw null; + public override System.ReadOnlySpan Preamble { get => throw null; } + } + public class UTF7Encoding : System.Text.Encoding + { + public UTF7Encoding() => throw null; + public UTF7Encoding(bool allowOptionals) => throw null; + public override bool Equals(object value) => throw null; + public override unsafe int GetByteCount(char* chars, int count) => throw null; + public override int GetByteCount(char[] chars, int index, int count) => throw null; + public override int GetByteCount(string s) => throw null; + public override unsafe int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) => throw null; + public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public override unsafe int GetCharCount(byte* bytes, int count) => throw null; + public override int GetCharCount(byte[] bytes, int index, int count) => throw null; + public override unsafe int GetChars(byte* bytes, int byteCount, char* chars, int charCount) => throw null; + public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) => throw null; + public override System.Text.Decoder GetDecoder() => throw null; + public override System.Text.Encoder GetEncoder() => throw null; + public override int GetHashCode() => throw null; + public override int GetMaxByteCount(int charCount) => throw null; + public override int GetMaxCharCount(int byteCount) => throw null; + public override string GetString(byte[] bytes, int index, int count) => throw null; + } + public class UTF8Encoding : System.Text.Encoding + { + public UTF8Encoding() => throw null; + public UTF8Encoding(bool encoderShouldEmitUTF8Identifier) => throw null; + public UTF8Encoding(bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes) => throw null; + public override bool Equals(object value) => throw null; + public override unsafe int GetByteCount(char* chars, int count) => throw null; + public override int GetByteCount(char[] chars, int index, int count) => throw null; + public override int GetByteCount(System.ReadOnlySpan chars) => throw null; + public override int GetByteCount(string chars) => throw null; + public override unsafe int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) => throw null; + public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public override int GetBytes(System.ReadOnlySpan chars, System.Span bytes) => throw null; + public override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) => throw null; + public override unsafe int GetCharCount(byte* bytes, int count) => throw null; + public override int GetCharCount(byte[] bytes, int index, int count) => throw null; + public override int GetCharCount(System.ReadOnlySpan bytes) => throw null; + public override unsafe int GetChars(byte* bytes, int byteCount, char* chars, int charCount) => throw null; + public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) => throw null; + public override int GetChars(System.ReadOnlySpan bytes, System.Span chars) => throw null; + public override System.Text.Decoder GetDecoder() => throw null; + public override System.Text.Encoder GetEncoder() => throw null; + public override int GetHashCode() => throw null; + public override int GetMaxByteCount(int charCount) => throw null; + public override int GetMaxCharCount(int byteCount) => throw null; + public override byte[] GetPreamble() => throw null; + public override string GetString(byte[] bytes, int index, int count) => throw null; + public override System.ReadOnlySpan Preamble { get => throw null; } } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs new file mode 100644 index 00000000000..2d88a5f2354 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Text.Encoding, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encodings.Web.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encodings.Web.cs index 19f4b843376..90e4a5140a7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encodings.Web.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encodings.Web.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Text.Encodings.Web, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Text @@ -13,73 +12,67 @@ namespace System { public static System.Text.Encodings.Web.HtmlEncoder Create(System.Text.Encodings.Web.TextEncoderSettings settings) => throw null; public static System.Text.Encodings.Web.HtmlEncoder Create(params System.Text.Unicode.UnicodeRange[] allowedRanges) => throw null; - public static System.Text.Encodings.Web.HtmlEncoder Default { get => throw null; } protected HtmlEncoder() => throw null; + public static System.Text.Encodings.Web.HtmlEncoder Default { get => throw null; } } - public abstract class JavaScriptEncoder : System.Text.Encodings.Web.TextEncoder { public static System.Text.Encodings.Web.JavaScriptEncoder Create(System.Text.Encodings.Web.TextEncoderSettings settings) => throw null; public static System.Text.Encodings.Web.JavaScriptEncoder Create(params System.Text.Unicode.UnicodeRange[] allowedRanges) => throw null; - public static System.Text.Encodings.Web.JavaScriptEncoder Default { get => throw null; } protected JavaScriptEncoder() => throw null; + public static System.Text.Encodings.Web.JavaScriptEncoder Default { get => throw null; } public static System.Text.Encodings.Web.JavaScriptEncoder UnsafeRelaxedJsonEscaping { get => throw null; } } - public abstract class TextEncoder { - public virtual System.Buffers.OperationStatus Encode(System.ReadOnlySpan source, System.Span destination, out int charsConsumed, out int charsWritten, bool isFinalBlock = default(bool)) => throw null; - public virtual void Encode(System.IO.TextWriter output, System.Char[] value, int startIndex, int characterCount) => throw null; + protected TextEncoder() => throw null; + public virtual void Encode(System.IO.TextWriter output, char[] value, int startIndex, int characterCount) => throw null; public void Encode(System.IO.TextWriter output, string value) => throw null; public virtual void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => throw null; + public virtual System.Buffers.OperationStatus Encode(System.ReadOnlySpan source, System.Span destination, out int charsConsumed, out int charsWritten, bool isFinalBlock = default(bool)) => throw null; public virtual string Encode(string value) => throw null; - public virtual System.Buffers.OperationStatus EncodeUtf8(System.ReadOnlySpan utf8Source, System.Span utf8Destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = default(bool)) => throw null; - unsafe public abstract int FindFirstCharacterToEncode(System.Char* text, int textLength); - public virtual int FindFirstCharacterToEncodeUtf8(System.ReadOnlySpan utf8Text) => throw null; + public virtual System.Buffers.OperationStatus EncodeUtf8(System.ReadOnlySpan utf8Source, System.Span utf8Destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = default(bool)) => throw null; + public abstract unsafe int FindFirstCharacterToEncode(char* text, int textLength); + public virtual int FindFirstCharacterToEncodeUtf8(System.ReadOnlySpan utf8Text) => throw null; public abstract int MaxOutputCharactersPerInputCharacter { get; } - protected TextEncoder() => throw null; - unsafe public abstract bool TryEncodeUnicodeScalar(int unicodeScalar, System.Char* buffer, int bufferLength, out int numberOfCharactersWritten); + public abstract unsafe bool TryEncodeUnicodeScalar(int unicodeScalar, char* buffer, int bufferLength, out int numberOfCharactersWritten); public abstract bool WillEncode(int unicodeScalar); } - public class TextEncoderSettings { - public virtual void AllowCharacter(System.Char character) => throw null; - public virtual void AllowCharacters(params System.Char[] characters) => throw null; + public virtual void AllowCharacter(char character) => throw null; + public virtual void AllowCharacters(params char[] characters) => throw null; public virtual void AllowCodePoints(System.Collections.Generic.IEnumerable codePoints) => throw null; public virtual void AllowRange(System.Text.Unicode.UnicodeRange range) => throw null; public virtual void AllowRanges(params System.Text.Unicode.UnicodeRange[] ranges) => throw null; public virtual void Clear() => throw null; - public virtual void ForbidCharacter(System.Char character) => throw null; - public virtual void ForbidCharacters(params System.Char[] characters) => throw null; - public virtual void ForbidRange(System.Text.Unicode.UnicodeRange range) => throw null; - public virtual void ForbidRanges(params System.Text.Unicode.UnicodeRange[] ranges) => throw null; - public virtual System.Collections.Generic.IEnumerable GetAllowedCodePoints() => throw null; public TextEncoderSettings() => throw null; public TextEncoderSettings(System.Text.Encodings.Web.TextEncoderSettings other) => throw null; public TextEncoderSettings(params System.Text.Unicode.UnicodeRange[] allowedRanges) => throw null; + public virtual void ForbidCharacter(char character) => throw null; + public virtual void ForbidCharacters(params char[] characters) => throw null; + public virtual void ForbidRange(System.Text.Unicode.UnicodeRange range) => throw null; + public virtual void ForbidRanges(params System.Text.Unicode.UnicodeRange[] ranges) => throw null; + public virtual System.Collections.Generic.IEnumerable GetAllowedCodePoints() => throw null; } - public abstract class UrlEncoder : System.Text.Encodings.Web.TextEncoder { public static System.Text.Encodings.Web.UrlEncoder Create(System.Text.Encodings.Web.TextEncoderSettings settings) => throw null; public static System.Text.Encodings.Web.UrlEncoder Create(params System.Text.Unicode.UnicodeRange[] allowedRanges) => throw null; - public static System.Text.Encodings.Web.UrlEncoder Default { get => throw null; } protected UrlEncoder() => throw null; + public static System.Text.Encodings.Web.UrlEncoder Default { get => throw null; } } - } } namespace Unicode { - public class UnicodeRange + public sealed class UnicodeRange { - public static System.Text.Unicode.UnicodeRange Create(System.Char firstCharacter, System.Char lastCharacter) => throw null; + public static System.Text.Unicode.UnicodeRange Create(char firstCharacter, char lastCharacter) => throw null; + public UnicodeRange(int firstCodePoint, int length) => throw null; public int FirstCodePoint { get => throw null; } public int Length { get => throw null; } - public UnicodeRange(int firstCodePoint, int length) => throw null; } - public static class UnicodeRanges { public static System.Text.Unicode.UnicodeRange All { get => throw null; } @@ -117,8 +110,8 @@ namespace System public static System.Text.Unicode.UnicodeRange CjkUnifiedIdeographsExtensionA { get => throw null; } public static System.Text.Unicode.UnicodeRange CombiningDiacriticalMarks { get => throw null; } public static System.Text.Unicode.UnicodeRange CombiningDiacriticalMarksExtended { get => throw null; } - public static System.Text.Unicode.UnicodeRange CombiningDiacriticalMarksSupplement { get => throw null; } public static System.Text.Unicode.UnicodeRange CombiningDiacriticalMarksforSymbols { get => throw null; } + public static System.Text.Unicode.UnicodeRange CombiningDiacriticalMarksSupplement { get => throw null; } public static System.Text.Unicode.UnicodeRange CombiningHalfMarks { get => throw null; } public static System.Text.Unicode.UnicodeRange CommonIndicNumberForms { get => throw null; } public static System.Text.Unicode.UnicodeRange ControlPictures { get => throw null; } @@ -144,8 +137,8 @@ namespace System public static System.Text.Unicode.UnicodeRange GeorgianExtended { get => throw null; } public static System.Text.Unicode.UnicodeRange GeorgianSupplement { get => throw null; } public static System.Text.Unicode.UnicodeRange Glagolitic { get => throw null; } - public static System.Text.Unicode.UnicodeRange GreekExtended { get => throw null; } public static System.Text.Unicode.UnicodeRange GreekandCoptic { get => throw null; } + public static System.Text.Unicode.UnicodeRange GreekExtended { get => throw null; } public static System.Text.Unicode.UnicodeRange Gujarati { get => throw null; } public static System.Text.Unicode.UnicodeRange Gurmukhi { get => throw null; } public static System.Text.Unicode.UnicodeRange HalfwidthandFullwidthForms { get => throw null; } @@ -195,8 +188,8 @@ namespace System public static System.Text.Unicode.UnicodeRange Myanmar { get => throw null; } public static System.Text.Unicode.UnicodeRange MyanmarExtendedA { get => throw null; } public static System.Text.Unicode.UnicodeRange MyanmarExtendedB { get => throw null; } - public static System.Text.Unicode.UnicodeRange NKo { get => throw null; } public static System.Text.Unicode.UnicodeRange NewTaiLue { get => throw null; } + public static System.Text.Unicode.UnicodeRange NKo { get => throw null; } public static System.Text.Unicode.UnicodeRange None { get => throw null; } public static System.Text.Unicode.UnicodeRange NumberForms { get => throw null; } public static System.Text.Unicode.UnicodeRange Ogham { get => throw null; } @@ -241,11 +234,10 @@ namespace System public static System.Text.Unicode.UnicodeRange VariationSelectors { get => throw null; } public static System.Text.Unicode.UnicodeRange VedicExtensions { get => throw null; } public static System.Text.Unicode.UnicodeRange VerticalForms { get => throw null; } + public static System.Text.Unicode.UnicodeRange YijingHexagramSymbols { get => throw null; } public static System.Text.Unicode.UnicodeRange YiRadicals { get => throw null; } public static System.Text.Unicode.UnicodeRange YiSyllables { get => throw null; } - public static System.Text.Unicode.UnicodeRange YijingHexagramSymbols { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Json.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Json.cs index 7c5954e05ca..20c147bb629 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Json.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Json.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Text.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Text @@ -9,18 +8,17 @@ namespace System { public enum JsonCommentHandling : byte { - Allow = 2, Disallow = 0, Skip = 1, + Allow = 2, } - - public class JsonDocument : System.IDisposable + public sealed class JsonDocument : System.IDisposable { public void Dispose() => throw null; - public static System.Text.Json.JsonDocument Parse(System.ReadOnlyMemory utf8Json, System.Text.Json.JsonDocumentOptions options = default(System.Text.Json.JsonDocumentOptions)) => throw null; - public static System.Text.Json.JsonDocument Parse(System.ReadOnlyMemory json, System.Text.Json.JsonDocumentOptions options = default(System.Text.Json.JsonDocumentOptions)) => throw null; - public static System.Text.Json.JsonDocument Parse(System.Buffers.ReadOnlySequence utf8Json, System.Text.Json.JsonDocumentOptions options = default(System.Text.Json.JsonDocumentOptions)) => throw null; + public static System.Text.Json.JsonDocument Parse(System.Buffers.ReadOnlySequence utf8Json, System.Text.Json.JsonDocumentOptions options = default(System.Text.Json.JsonDocumentOptions)) => throw null; public static System.Text.Json.JsonDocument Parse(System.IO.Stream utf8Json, System.Text.Json.JsonDocumentOptions options = default(System.Text.Json.JsonDocumentOptions)) => throw null; + public static System.Text.Json.JsonDocument Parse(System.ReadOnlyMemory utf8Json, System.Text.Json.JsonDocumentOptions options = default(System.Text.Json.JsonDocumentOptions)) => throw null; + public static System.Text.Json.JsonDocument Parse(System.ReadOnlyMemory json, System.Text.Json.JsonDocumentOptions options = default(System.Text.Json.JsonDocumentOptions)) => throw null; public static System.Text.Json.JsonDocument Parse(string json, System.Text.Json.JsonDocumentOptions options = default(System.Text.Json.JsonDocumentOptions)) => throw null; public static System.Threading.Tasks.Task ParseAsync(System.IO.Stream utf8Json, System.Text.Json.JsonDocumentOptions options = default(System.Text.Json.JsonDocumentOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Text.Json.JsonDocument ParseValue(ref System.Text.Json.Utf8JsonReader reader) => throw null; @@ -28,20 +26,16 @@ namespace System public static bool TryParseValue(ref System.Text.Json.Utf8JsonReader reader, out System.Text.Json.JsonDocument document) => throw null; public void WriteTo(System.Text.Json.Utf8JsonWriter writer) => throw null; } - public struct JsonDocumentOptions { - public bool AllowTrailingCommas { get => throw null; set => throw null; } - public System.Text.Json.JsonCommentHandling CommentHandling { get => throw null; set => throw null; } - // Stub generator skipped constructor - public int MaxDepth { get => throw null; set => throw null; } + public bool AllowTrailingCommas { get => throw null; set { } } + public System.Text.Json.JsonCommentHandling CommentHandling { get => throw null; set { } } + public int MaxDepth { get => throw null; set { } } } - public struct JsonElement { - public struct ArrayEnumerator : System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerable, System.Collections.IEnumerator, System.IDisposable + public struct ArrayEnumerator : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { - // Stub generator skipped constructor public System.Text.Json.JsonElement Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; @@ -51,9 +45,32 @@ namespace System public bool MoveNext() => throw null; public void Reset() => throw null; } - - - public struct ObjectEnumerator : System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerable, System.Collections.IEnumerator, System.IDisposable + public System.Text.Json.JsonElement Clone() => throw null; + public System.Text.Json.JsonElement.ArrayEnumerator EnumerateArray() => throw null; + public System.Text.Json.JsonElement.ObjectEnumerator EnumerateObject() => throw null; + public int GetArrayLength() => throw null; + public bool GetBoolean() => throw null; + public byte GetByte() => throw null; + public byte[] GetBytesFromBase64() => throw null; + public System.DateTime GetDateTime() => throw null; + public System.DateTimeOffset GetDateTimeOffset() => throw null; + public decimal GetDecimal() => throw null; + public double GetDouble() => throw null; + public System.Guid GetGuid() => throw null; + public short GetInt16() => throw null; + public int GetInt32() => throw null; + public long GetInt64() => throw null; + public System.Text.Json.JsonElement GetProperty(System.ReadOnlySpan utf8PropertyName) => throw null; + public System.Text.Json.JsonElement GetProperty(System.ReadOnlySpan propertyName) => throw null; + public System.Text.Json.JsonElement GetProperty(string propertyName) => throw null; + public string GetRawText() => throw null; + public sbyte GetSByte() => throw null; + public float GetSingle() => throw null; + public string GetString() => throw null; + public ushort GetUInt16() => throw null; + public uint GetUInt32() => throw null; + public ulong GetUInt64() => throw null; + public struct ObjectEnumerator : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Text.Json.JsonProperty Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -62,463 +79,231 @@ namespace System System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool MoveNext() => throw null; - // Stub generator skipped constructor public void Reset() => throw null; } - - - public System.Text.Json.JsonElement Clone() => throw null; - public System.Text.Json.JsonElement.ArrayEnumerator EnumerateArray() => throw null; - public System.Text.Json.JsonElement.ObjectEnumerator EnumerateObject() => throw null; - public int GetArrayLength() => throw null; - public bool GetBoolean() => throw null; - public System.Byte GetByte() => throw null; - public System.Byte[] GetBytesFromBase64() => throw null; - public System.DateTime GetDateTime() => throw null; - public System.DateTimeOffset GetDateTimeOffset() => throw null; - public System.Decimal GetDecimal() => throw null; - public double GetDouble() => throw null; - public System.Guid GetGuid() => throw null; - public System.Int16 GetInt16() => throw null; - public int GetInt32() => throw null; - public System.Int64 GetInt64() => throw null; - public System.Text.Json.JsonElement GetProperty(System.ReadOnlySpan utf8PropertyName) => throw null; - public System.Text.Json.JsonElement GetProperty(System.ReadOnlySpan propertyName) => throw null; - public System.Text.Json.JsonElement GetProperty(string propertyName) => throw null; - public string GetRawText() => throw null; - public System.SByte GetSByte() => throw null; - public float GetSingle() => throw null; - public string GetString() => throw null; - public System.UInt16 GetUInt16() => throw null; - public System.UInt32 GetUInt32() => throw null; - public System.UInt64 GetUInt64() => throw null; - public System.Text.Json.JsonElement this[int index] { get => throw null; } - // Stub generator skipped constructor public static System.Text.Json.JsonElement ParseValue(ref System.Text.Json.Utf8JsonReader reader) => throw null; + public System.Text.Json.JsonElement this[int index] { get => throw null; } public override string ToString() => throw null; - public bool TryGetByte(out System.Byte value) => throw null; - public bool TryGetBytesFromBase64(out System.Byte[] value) => throw null; + public bool TryGetByte(out byte value) => throw null; + public bool TryGetBytesFromBase64(out byte[] value) => throw null; public bool TryGetDateTime(out System.DateTime value) => throw null; public bool TryGetDateTimeOffset(out System.DateTimeOffset value) => throw null; - public bool TryGetDecimal(out System.Decimal value) => throw null; + public bool TryGetDecimal(out decimal value) => throw null; public bool TryGetDouble(out double value) => throw null; public bool TryGetGuid(out System.Guid value) => throw null; - public bool TryGetInt16(out System.Int16 value) => throw null; + public bool TryGetInt16(out short value) => throw null; public bool TryGetInt32(out int value) => throw null; - public bool TryGetInt64(out System.Int64 value) => throw null; - public bool TryGetProperty(System.ReadOnlySpan utf8PropertyName, out System.Text.Json.JsonElement value) => throw null; - public bool TryGetProperty(System.ReadOnlySpan propertyName, out System.Text.Json.JsonElement value) => throw null; + public bool TryGetInt64(out long value) => throw null; + public bool TryGetProperty(System.ReadOnlySpan utf8PropertyName, out System.Text.Json.JsonElement value) => throw null; + public bool TryGetProperty(System.ReadOnlySpan propertyName, out System.Text.Json.JsonElement value) => throw null; public bool TryGetProperty(string propertyName, out System.Text.Json.JsonElement value) => throw null; - public bool TryGetSByte(out System.SByte value) => throw null; + public bool TryGetSByte(out sbyte value) => throw null; public bool TryGetSingle(out float value) => throw null; - public bool TryGetUInt16(out System.UInt16 value) => throw null; - public bool TryGetUInt32(out System.UInt32 value) => throw null; - public bool TryGetUInt64(out System.UInt64 value) => throw null; + public bool TryGetUInt16(out ushort value) => throw null; + public bool TryGetUInt32(out uint value) => throw null; + public bool TryGetUInt64(out ulong value) => throw null; public static bool TryParseValue(ref System.Text.Json.Utf8JsonReader reader, out System.Text.Json.JsonElement? element) => throw null; - public bool ValueEquals(System.ReadOnlySpan utf8Text) => throw null; - public bool ValueEquals(System.ReadOnlySpan text) => throw null; + public bool ValueEquals(System.ReadOnlySpan utf8Text) => throw null; + public bool ValueEquals(System.ReadOnlySpan text) => throw null; public bool ValueEquals(string text) => throw null; public System.Text.Json.JsonValueKind ValueKind { get => throw null; } public void WriteTo(System.Text.Json.Utf8JsonWriter writer) => throw null; } - public struct JsonEncodedText : System.IEquatable { - public static System.Text.Json.JsonEncodedText Encode(System.ReadOnlySpan utf8Value, System.Text.Encodings.Web.JavaScriptEncoder encoder = default(System.Text.Encodings.Web.JavaScriptEncoder)) => throw null; - public static System.Text.Json.JsonEncodedText Encode(System.ReadOnlySpan value, System.Text.Encodings.Web.JavaScriptEncoder encoder = default(System.Text.Encodings.Web.JavaScriptEncoder)) => throw null; + public static System.Text.Json.JsonEncodedText Encode(System.ReadOnlySpan utf8Value, System.Text.Encodings.Web.JavaScriptEncoder encoder = default(System.Text.Encodings.Web.JavaScriptEncoder)) => throw null; + public static System.Text.Json.JsonEncodedText Encode(System.ReadOnlySpan value, System.Text.Encodings.Web.JavaScriptEncoder encoder = default(System.Text.Encodings.Web.JavaScriptEncoder)) => throw null; public static System.Text.Json.JsonEncodedText Encode(string value, System.Text.Encodings.Web.JavaScriptEncoder encoder = default(System.Text.Encodings.Web.JavaScriptEncoder)) => throw null; - public System.ReadOnlySpan EncodedUtf8Bytes { get => throw null; } - public bool Equals(System.Text.Json.JsonEncodedText other) => throw null; + public System.ReadOnlySpan EncodedUtf8Bytes { get => throw null; } public override bool Equals(object obj) => throw null; + public bool Equals(System.Text.Json.JsonEncodedText other) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor public override string ToString() => throw null; } - public class JsonException : System.Exception { - public System.Int64? BytePositionInLine { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public long? BytePositionInLine { get => throw null; } public JsonException() => throw null; protected JsonException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public JsonException(string message) => throw null; public JsonException(string message, System.Exception innerException) => throw null; - public JsonException(string message, string path, System.Int64? lineNumber, System.Int64? bytePositionInLine) => throw null; - public JsonException(string message, string path, System.Int64? lineNumber, System.Int64? bytePositionInLine, System.Exception innerException) => throw null; - public System.Int64? LineNumber { get => throw null; } + public JsonException(string message, string path, long? lineNumber, long? bytePositionInLine) => throw null; + public JsonException(string message, string path, long? lineNumber, long? bytePositionInLine, System.Exception innerException) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public long? LineNumber { get => throw null; } public override string Message { get => throw null; } public string Path { get => throw null; } } - public abstract class JsonNamingPolicy { public static System.Text.Json.JsonNamingPolicy CamelCase { get => throw null; } public abstract string ConvertName(string name); protected JsonNamingPolicy() => throw null; } - public struct JsonProperty { - // Stub generator skipped constructor public string Name { get => throw null; } - public bool NameEquals(System.ReadOnlySpan utf8Text) => throw null; - public bool NameEquals(System.ReadOnlySpan text) => throw null; + public bool NameEquals(System.ReadOnlySpan utf8Text) => throw null; + public bool NameEquals(System.ReadOnlySpan text) => throw null; public bool NameEquals(string text) => throw null; public override string ToString() => throw null; public System.Text.Json.JsonElement Value { get => throw null; } public void WriteTo(System.Text.Json.Utf8JsonWriter writer) => throw null; } - public struct JsonReaderOptions { - public bool AllowTrailingCommas { get => throw null; set => throw null; } - public System.Text.Json.JsonCommentHandling CommentHandling { get => throw null; set => throw null; } - // Stub generator skipped constructor - public int MaxDepth { get => throw null; set => throw null; } + public bool AllowTrailingCommas { get => throw null; set { } } + public System.Text.Json.JsonCommentHandling CommentHandling { get => throw null; set { } } + public int MaxDepth { get => throw null; set { } } } - public struct JsonReaderState { - // Stub generator skipped constructor public JsonReaderState(System.Text.Json.JsonReaderOptions options = default(System.Text.Json.JsonReaderOptions)) => throw null; public System.Text.Json.JsonReaderOptions Options { get => throw null; } } - public static class JsonSerializer { - public static object Deserialize(this System.Text.Json.JsonDocument document, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; - public static object Deserialize(this System.Text.Json.JsonDocument document, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static object Deserialize(this System.Text.Json.JsonElement element, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; - public static object Deserialize(this System.Text.Json.JsonElement element, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static object Deserialize(this System.Text.Json.Nodes.JsonNode node, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; - public static object Deserialize(this System.Text.Json.Nodes.JsonNode node, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static object Deserialize(System.ReadOnlySpan utf8Json, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; - public static object Deserialize(System.ReadOnlySpan utf8Json, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static object Deserialize(System.ReadOnlySpan json, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; - public static object Deserialize(System.ReadOnlySpan json, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static object Deserialize(System.IO.Stream utf8Json, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static object Deserialize(System.IO.Stream utf8Json, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static object Deserialize(ref System.Text.Json.Utf8JsonReader reader, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; - public static object Deserialize(ref System.Text.Json.Utf8JsonReader reader, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static object Deserialize(string json, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static object Deserialize(System.IO.Stream utf8Json, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static object Deserialize(System.ReadOnlySpan utf8Json, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static object Deserialize(System.ReadOnlySpan utf8Json, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static object Deserialize(System.ReadOnlySpan json, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static object Deserialize(System.ReadOnlySpan json, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static object Deserialize(string json, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static object Deserialize(string json, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static object Deserialize(this System.Text.Json.JsonDocument document, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static object Deserialize(this System.Text.Json.JsonDocument document, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static object Deserialize(this System.Text.Json.JsonElement element, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static object Deserialize(this System.Text.Json.JsonElement element, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static object Deserialize(this System.Text.Json.Nodes.JsonNode node, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static object Deserialize(this System.Text.Json.Nodes.JsonNode node, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static object Deserialize(ref System.Text.Json.Utf8JsonReader reader, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static object Deserialize(ref System.Text.Json.Utf8JsonReader reader, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static TValue Deserialize(System.IO.Stream utf8Json, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static TValue Deserialize(System.IO.Stream utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; + public static TValue Deserialize(System.ReadOnlySpan utf8Json, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static TValue Deserialize(System.ReadOnlySpan utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; + public static TValue Deserialize(System.ReadOnlySpan json, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static TValue Deserialize(System.ReadOnlySpan json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; + public static TValue Deserialize(string json, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static TValue Deserialize(string json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; public static TValue Deserialize(this System.Text.Json.JsonDocument document, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public static TValue Deserialize(this System.Text.Json.JsonDocument document, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; public static TValue Deserialize(this System.Text.Json.JsonElement element, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public static TValue Deserialize(this System.Text.Json.JsonElement element, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; public static TValue Deserialize(this System.Text.Json.Nodes.JsonNode node, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public static TValue Deserialize(this System.Text.Json.Nodes.JsonNode node, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; - public static TValue Deserialize(System.ReadOnlySpan utf8Json, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static TValue Deserialize(System.ReadOnlySpan utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; - public static TValue Deserialize(System.ReadOnlySpan json, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static TValue Deserialize(System.ReadOnlySpan json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; - public static TValue Deserialize(System.IO.Stream utf8Json, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static TValue Deserialize(System.IO.Stream utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; public static TValue Deserialize(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public static TValue Deserialize(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; - public static TValue Deserialize(string json, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static TValue Deserialize(string json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; - public static System.Threading.Tasks.ValueTask DeserializeAsync(System.IO.Stream utf8Json, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask DeserializeAsync(System.IO.Stream utf8Json, System.Type returnType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask DeserializeAsync(System.IO.Stream utf8Json, System.Type returnType, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask DeserializeAsync(System.IO.Stream utf8Json, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask DeserializeAsync(System.IO.Stream utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Collections.Generic.IAsyncEnumerable DeserializeAsyncEnumerable(System.IO.Stream utf8Json, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Collections.Generic.IAsyncEnumerable DeserializeAsyncEnumerable(System.IO.Stream utf8Json, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static void Serialize(System.IO.Stream utf8Json, object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static void Serialize(System.IO.Stream utf8Json, object value, System.Type inputType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static void Serialize(System.Text.Json.Utf8JsonWriter writer, object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; - public static void Serialize(System.Text.Json.Utf8JsonWriter writer, object value, System.Type inputType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static string Serialize(object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static void Serialize(System.IO.Stream utf8Json, object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static string Serialize(object value, System.Type inputType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static string Serialize(object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static void Serialize(System.Text.Json.Utf8JsonWriter writer, object value, System.Type inputType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static void Serialize(System.Text.Json.Utf8JsonWriter writer, object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static void Serialize(System.IO.Stream utf8Json, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public static void Serialize(System.IO.Stream utf8Json, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; - public static string Serialize(TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static string Serialize(TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; public static void Serialize(System.Text.Json.Utf8JsonWriter writer, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public static void Serialize(System.Text.Json.Utf8JsonWriter writer, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; - public static System.Threading.Tasks.Task SerializeAsync(System.IO.Stream utf8Json, object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static string Serialize(TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static string Serialize(TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; public static System.Threading.Tasks.Task SerializeAsync(System.IO.Stream utf8Json, object value, System.Type inputType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SerializeAsync(System.IO.Stream utf8Json, object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task SerializeAsync(System.IO.Stream utf8Json, TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task SerializeAsync(System.IO.Stream utf8Json, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Text.Json.JsonDocument SerializeToDocument(object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static System.Text.Json.JsonDocument SerializeToDocument(object value, System.Type inputType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static System.Text.Json.JsonDocument SerializeToDocument(object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static System.Text.Json.JsonDocument SerializeToDocument(TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public static System.Text.Json.JsonDocument SerializeToDocument(TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; - public static System.Text.Json.JsonElement SerializeToElement(object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static System.Text.Json.JsonElement SerializeToElement(object value, System.Type inputType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static System.Text.Json.JsonElement SerializeToElement(object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static System.Text.Json.JsonElement SerializeToElement(TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public static System.Text.Json.JsonElement SerializeToElement(TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; - public static System.Text.Json.Nodes.JsonNode SerializeToNode(object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static System.Text.Json.Nodes.JsonNode SerializeToNode(object value, System.Type inputType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static System.Text.Json.Nodes.JsonNode SerializeToNode(object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; public static System.Text.Json.Nodes.JsonNode SerializeToNode(TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public static System.Text.Json.Nodes.JsonNode SerializeToNode(TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; - public static System.Byte[] SerializeToUtf8Bytes(object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; - public static System.Byte[] SerializeToUtf8Bytes(object value, System.Type inputType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static System.Byte[] SerializeToUtf8Bytes(TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; - public static System.Byte[] SerializeToUtf8Bytes(TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; + public static byte[] SerializeToUtf8Bytes(object value, System.Type inputType, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static byte[] SerializeToUtf8Bytes(object value, System.Type inputType, System.Text.Json.Serialization.JsonSerializerContext context) => throw null; + public static byte[] SerializeToUtf8Bytes(TValue value, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static byte[] SerializeToUtf8Bytes(TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo) => throw null; } - - public enum JsonSerializerDefaults : int + public enum JsonSerializerDefaults { General = 0, Web = 1, } - - public class JsonSerializerOptions + public sealed class JsonSerializerOptions { public void AddContext() where TContext : System.Text.Json.Serialization.JsonSerializerContext, new() => throw null; - public bool AllowTrailingCommas { get => throw null; set => throw null; } + public bool AllowTrailingCommas { get => throw null; set { } } public System.Collections.Generic.IList Converters { get => throw null; } - public static System.Text.Json.JsonSerializerOptions Default { get => throw null; } - public int DefaultBufferSize { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonIgnoreCondition DefaultIgnoreCondition { get => throw null; set => throw null; } - public System.Text.Json.JsonNamingPolicy DictionaryKeyPolicy { get => throw null; set => throw null; } - public System.Text.Encodings.Web.JavaScriptEncoder Encoder { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonConverter GetConverter(System.Type typeToConvert) => throw null; - public System.Text.Json.Serialization.Metadata.JsonTypeInfo GetTypeInfo(System.Type type) => throw null; - public bool IgnoreNullValues { get => throw null; set => throw null; } - public bool IgnoreReadOnlyFields { get => throw null; set => throw null; } - public bool IgnoreReadOnlyProperties { get => throw null; set => throw null; } - public bool IncludeFields { get => throw null; set => throw null; } public JsonSerializerOptions() => throw null; public JsonSerializerOptions(System.Text.Json.JsonSerializerDefaults defaults) => throw null; public JsonSerializerOptions(System.Text.Json.JsonSerializerOptions options) => throw null; - public int MaxDepth { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonNumberHandling NumberHandling { get => throw null; set => throw null; } - public bool PropertyNameCaseInsensitive { get => throw null; set => throw null; } - public System.Text.Json.JsonNamingPolicy PropertyNamingPolicy { get => throw null; set => throw null; } - public System.Text.Json.JsonCommentHandling ReadCommentHandling { get => throw null; set => throw null; } - public System.Text.Json.Serialization.ReferenceHandler ReferenceHandler { get => throw null; set => throw null; } - public System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver TypeInfoResolver { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonUnknownTypeHandling UnknownTypeHandling { get => throw null; set => throw null; } - public bool WriteIndented { get => throw null; set => throw null; } + public static System.Text.Json.JsonSerializerOptions Default { get => throw null; } + public int DefaultBufferSize { get => throw null; set { } } + public System.Text.Json.Serialization.JsonIgnoreCondition DefaultIgnoreCondition { get => throw null; set { } } + public System.Text.Json.JsonNamingPolicy DictionaryKeyPolicy { get => throw null; set { } } + public System.Text.Encodings.Web.JavaScriptEncoder Encoder { get => throw null; set { } } + public System.Text.Json.Serialization.JsonConverter GetConverter(System.Type typeToConvert) => throw null; + public System.Text.Json.Serialization.Metadata.JsonTypeInfo GetTypeInfo(System.Type type) => throw null; + public bool IgnoreNullValues { get => throw null; set { } } + public bool IgnoreReadOnlyFields { get => throw null; set { } } + public bool IgnoreReadOnlyProperties { get => throw null; set { } } + public bool IncludeFields { get => throw null; set { } } + public int MaxDepth { get => throw null; set { } } + public System.Text.Json.Serialization.JsonNumberHandling NumberHandling { get => throw null; set { } } + public bool PropertyNameCaseInsensitive { get => throw null; set { } } + public System.Text.Json.JsonNamingPolicy PropertyNamingPolicy { get => throw null; set { } } + public System.Text.Json.JsonCommentHandling ReadCommentHandling { get => throw null; set { } } + public System.Text.Json.Serialization.ReferenceHandler ReferenceHandler { get => throw null; set { } } + public System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver TypeInfoResolver { get => throw null; set { } } + public System.Text.Json.Serialization.JsonUnknownTypeHandling UnknownTypeHandling { get => throw null; set { } } + public bool WriteIndented { get => throw null; set { } } } - public enum JsonTokenType : byte { - Comment = 6, - EndArray = 4, - EndObject = 2, - False = 10, None = 0, - Null = 11, - Number = 8, - PropertyName = 5, - StartArray = 3, StartObject = 1, + EndObject = 2, + StartArray = 3, + EndArray = 4, + PropertyName = 5, + Comment = 6, String = 7, + Number = 8, True = 9, + False = 10, + Null = 11, } - public enum JsonValueKind : byte { + Undefined = 0, + Object = 1, Array = 2, + String = 3, + Number = 4, + True = 5, False = 6, Null = 7, - Number = 4, - Object = 1, - String = 3, - True = 5, - Undefined = 0, } - public struct JsonWriterOptions { - public System.Text.Encodings.Web.JavaScriptEncoder Encoder { get => throw null; set => throw null; } - public bool Indented { get => throw null; set => throw null; } - // Stub generator skipped constructor - public int MaxDepth { get => throw null; set => throw null; } - public bool SkipValidation { get => throw null; set => throw null; } + public System.Text.Encodings.Web.JavaScriptEncoder Encoder { get => throw null; set { } } + public bool Indented { get => throw null; set { } } + public int MaxDepth { get => throw null; set { } } + public bool SkipValidation { get => throw null; set { } } } - - public struct Utf8JsonReader - { - public System.Int64 BytesConsumed { get => throw null; } - public int CopyString(System.Span utf8Destination) => throw null; - public int CopyString(System.Span destination) => throw null; - public int CurrentDepth { get => throw null; } - public System.Text.Json.JsonReaderState CurrentState { get => throw null; } - public bool GetBoolean() => throw null; - public System.Byte GetByte() => throw null; - public System.Byte[] GetBytesFromBase64() => throw null; - public string GetComment() => throw null; - public System.DateTime GetDateTime() => throw null; - public System.DateTimeOffset GetDateTimeOffset() => throw null; - public System.Decimal GetDecimal() => throw null; - public double GetDouble() => throw null; - public System.Guid GetGuid() => throw null; - public System.Int16 GetInt16() => throw null; - public int GetInt32() => throw null; - public System.Int64 GetInt64() => throw null; - public System.SByte GetSByte() => throw null; - public float GetSingle() => throw null; - public string GetString() => throw null; - public System.UInt16 GetUInt16() => throw null; - public System.UInt32 GetUInt32() => throw null; - public System.UInt64 GetUInt64() => throw null; - public bool HasValueSequence { get => throw null; } - public bool IsFinalBlock { get => throw null; } - public System.SequencePosition Position { get => throw null; } - public bool Read() => throw null; - public void Skip() => throw null; - public System.Int64 TokenStartIndex { get => throw null; } - public System.Text.Json.JsonTokenType TokenType { get => throw null; } - public bool TryGetByte(out System.Byte value) => throw null; - public bool TryGetBytesFromBase64(out System.Byte[] value) => throw null; - public bool TryGetDateTime(out System.DateTime value) => throw null; - public bool TryGetDateTimeOffset(out System.DateTimeOffset value) => throw null; - public bool TryGetDecimal(out System.Decimal value) => throw null; - public bool TryGetDouble(out double value) => throw null; - public bool TryGetGuid(out System.Guid value) => throw null; - public bool TryGetInt16(out System.Int16 value) => throw null; - public bool TryGetInt32(out int value) => throw null; - public bool TryGetInt64(out System.Int64 value) => throw null; - public bool TryGetSByte(out System.SByte value) => throw null; - public bool TryGetSingle(out float value) => throw null; - public bool TryGetUInt16(out System.UInt16 value) => throw null; - public bool TryGetUInt32(out System.UInt32 value) => throw null; - public bool TryGetUInt64(out System.UInt64 value) => throw null; - public bool TrySkip() => throw null; - // Stub generator skipped constructor - public Utf8JsonReader(System.Buffers.ReadOnlySequence jsonData, System.Text.Json.JsonReaderOptions options = default(System.Text.Json.JsonReaderOptions)) => throw null; - public Utf8JsonReader(System.Buffers.ReadOnlySequence jsonData, bool isFinalBlock, System.Text.Json.JsonReaderState state) => throw null; - public Utf8JsonReader(System.ReadOnlySpan jsonData, System.Text.Json.JsonReaderOptions options = default(System.Text.Json.JsonReaderOptions)) => throw null; - public Utf8JsonReader(System.ReadOnlySpan jsonData, bool isFinalBlock, System.Text.Json.JsonReaderState state) => throw null; - public bool ValueIsEscaped { get => throw null; } - public System.Buffers.ReadOnlySequence ValueSequence { get => throw null; } - public System.ReadOnlySpan ValueSpan { get => throw null; } - public bool ValueTextEquals(System.ReadOnlySpan utf8Text) => throw null; - public bool ValueTextEquals(System.ReadOnlySpan text) => throw null; - public bool ValueTextEquals(string text) => throw null; - } - - public class Utf8JsonWriter : System.IAsyncDisposable, System.IDisposable - { - public System.Int64 BytesCommitted { get => throw null; } - public int BytesPending { get => throw null; } - public int CurrentDepth { get => throw null; } - public void Dispose() => throw null; - public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public void Flush() => throw null; - public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Text.Json.JsonWriterOptions Options { get => throw null; } - public void Reset() => throw null; - public void Reset(System.Buffers.IBufferWriter bufferWriter) => throw null; - public void Reset(System.IO.Stream utf8Json) => throw null; - public Utf8JsonWriter(System.Buffers.IBufferWriter bufferWriter, System.Text.Json.JsonWriterOptions options = default(System.Text.Json.JsonWriterOptions)) => throw null; - public Utf8JsonWriter(System.IO.Stream utf8Json, System.Text.Json.JsonWriterOptions options = default(System.Text.Json.JsonWriterOptions)) => throw null; - public void WriteBase64String(System.Text.Json.JsonEncodedText propertyName, System.ReadOnlySpan bytes) => throw null; - public void WriteBase64String(System.ReadOnlySpan utf8PropertyName, System.ReadOnlySpan bytes) => throw null; - public void WriteBase64String(System.ReadOnlySpan propertyName, System.ReadOnlySpan bytes) => throw null; - public void WriteBase64String(string propertyName, System.ReadOnlySpan bytes) => throw null; - public void WriteBase64StringValue(System.ReadOnlySpan bytes) => throw null; - public void WriteBoolean(System.Text.Json.JsonEncodedText propertyName, bool value) => throw null; - public void WriteBoolean(System.ReadOnlySpan utf8PropertyName, bool value) => throw null; - public void WriteBoolean(System.ReadOnlySpan propertyName, bool value) => throw null; - public void WriteBoolean(string propertyName, bool value) => throw null; - public void WriteBooleanValue(bool value) => throw null; - public void WriteCommentValue(System.ReadOnlySpan utf8Value) => throw null; - public void WriteCommentValue(System.ReadOnlySpan value) => throw null; - public void WriteCommentValue(string value) => throw null; - public void WriteEndArray() => throw null; - public void WriteEndObject() => throw null; - public void WriteNull(System.Text.Json.JsonEncodedText propertyName) => throw null; - public void WriteNull(System.ReadOnlySpan utf8PropertyName) => throw null; - public void WriteNull(System.ReadOnlySpan propertyName) => throw null; - public void WriteNull(string propertyName) => throw null; - public void WriteNullValue() => throw null; - public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, System.Decimal value) => throw null; - public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, double value) => throw null; - public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, float value) => throw null; - public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, int value) => throw null; - public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, System.Int64 value) => throw null; - public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, System.UInt32 value) => throw null; - public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, System.UInt64 value) => throw null; - public void WriteNumber(System.ReadOnlySpan utf8PropertyName, System.Decimal value) => throw null; - public void WriteNumber(System.ReadOnlySpan utf8PropertyName, double value) => throw null; - public void WriteNumber(System.ReadOnlySpan utf8PropertyName, float value) => throw null; - public void WriteNumber(System.ReadOnlySpan utf8PropertyName, int value) => throw null; - public void WriteNumber(System.ReadOnlySpan utf8PropertyName, System.Int64 value) => throw null; - public void WriteNumber(System.ReadOnlySpan utf8PropertyName, System.UInt32 value) => throw null; - public void WriteNumber(System.ReadOnlySpan utf8PropertyName, System.UInt64 value) => throw null; - public void WriteNumber(System.ReadOnlySpan propertyName, System.Decimal value) => throw null; - public void WriteNumber(System.ReadOnlySpan propertyName, double value) => throw null; - public void WriteNumber(System.ReadOnlySpan propertyName, float value) => throw null; - public void WriteNumber(System.ReadOnlySpan propertyName, int value) => throw null; - public void WriteNumber(System.ReadOnlySpan propertyName, System.Int64 value) => throw null; - public void WriteNumber(System.ReadOnlySpan propertyName, System.UInt32 value) => throw null; - public void WriteNumber(System.ReadOnlySpan propertyName, System.UInt64 value) => throw null; - public void WriteNumber(string propertyName, System.Decimal value) => throw null; - public void WriteNumber(string propertyName, double value) => throw null; - public void WriteNumber(string propertyName, float value) => throw null; - public void WriteNumber(string propertyName, int value) => throw null; - public void WriteNumber(string propertyName, System.Int64 value) => throw null; - public void WriteNumber(string propertyName, System.UInt32 value) => throw null; - public void WriteNumber(string propertyName, System.UInt64 value) => throw null; - public void WriteNumberValue(System.Decimal value) => throw null; - public void WriteNumberValue(double value) => throw null; - public void WriteNumberValue(float value) => throw null; - public void WriteNumberValue(int value) => throw null; - public void WriteNumberValue(System.Int64 value) => throw null; - public void WriteNumberValue(System.UInt32 value) => throw null; - public void WriteNumberValue(System.UInt64 value) => throw null; - public void WritePropertyName(System.Text.Json.JsonEncodedText propertyName) => throw null; - public void WritePropertyName(System.ReadOnlySpan utf8PropertyName) => throw null; - public void WritePropertyName(System.ReadOnlySpan propertyName) => throw null; - public void WritePropertyName(string propertyName) => throw null; - public void WriteRawValue(System.ReadOnlySpan utf8Json, bool skipInputValidation = default(bool)) => throw null; - public void WriteRawValue(System.ReadOnlySpan json, bool skipInputValidation = default(bool)) => throw null; - public void WriteRawValue(string json, bool skipInputValidation = default(bool)) => throw null; - public void WriteStartArray() => throw null; - public void WriteStartArray(System.Text.Json.JsonEncodedText propertyName) => throw null; - public void WriteStartArray(System.ReadOnlySpan utf8PropertyName) => throw null; - public void WriteStartArray(System.ReadOnlySpan propertyName) => throw null; - public void WriteStartArray(string propertyName) => throw null; - public void WriteStartObject() => throw null; - public void WriteStartObject(System.Text.Json.JsonEncodedText propertyName) => throw null; - public void WriteStartObject(System.ReadOnlySpan utf8PropertyName) => throw null; - public void WriteStartObject(System.ReadOnlySpan propertyName) => throw null; - public void WriteStartObject(string propertyName) => throw null; - public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.DateTime value) => throw null; - public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.DateTimeOffset value) => throw null; - public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.Guid value) => throw null; - public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.Text.Json.JsonEncodedText value) => throw null; - public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.ReadOnlySpan utf8Value) => throw null; - public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.ReadOnlySpan value) => throw null; - public void WriteString(System.Text.Json.JsonEncodedText propertyName, string value) => throw null; - public void WriteString(System.ReadOnlySpan utf8PropertyName, System.DateTime value) => throw null; - public void WriteString(System.ReadOnlySpan utf8PropertyName, System.DateTimeOffset value) => throw null; - public void WriteString(System.ReadOnlySpan utf8PropertyName, System.Guid value) => throw null; - public void WriteString(System.ReadOnlySpan utf8PropertyName, System.Text.Json.JsonEncodedText value) => throw null; - public void WriteString(System.ReadOnlySpan utf8PropertyName, System.ReadOnlySpan utf8Value) => throw null; - public void WriteString(System.ReadOnlySpan utf8PropertyName, System.ReadOnlySpan value) => throw null; - public void WriteString(System.ReadOnlySpan utf8PropertyName, string value) => throw null; - public void WriteString(System.ReadOnlySpan propertyName, System.DateTime value) => throw null; - public void WriteString(System.ReadOnlySpan propertyName, System.DateTimeOffset value) => throw null; - public void WriteString(System.ReadOnlySpan propertyName, System.Guid value) => throw null; - public void WriteString(System.ReadOnlySpan propertyName, System.Text.Json.JsonEncodedText value) => throw null; - public void WriteString(System.ReadOnlySpan propertyName, System.ReadOnlySpan utf8Value) => throw null; - public void WriteString(System.ReadOnlySpan propertyName, System.ReadOnlySpan value) => throw null; - public void WriteString(System.ReadOnlySpan propertyName, string value) => throw null; - public void WriteString(string propertyName, System.DateTime value) => throw null; - public void WriteString(string propertyName, System.DateTimeOffset value) => throw null; - public void WriteString(string propertyName, System.Guid value) => throw null; - public void WriteString(string propertyName, System.Text.Json.JsonEncodedText value) => throw null; - public void WriteString(string propertyName, System.ReadOnlySpan utf8Value) => throw null; - public void WriteString(string propertyName, System.ReadOnlySpan value) => throw null; - public void WriteString(string propertyName, string value) => throw null; - public void WriteStringValue(System.DateTime value) => throw null; - public void WriteStringValue(System.DateTimeOffset value) => throw null; - public void WriteStringValue(System.Guid value) => throw null; - public void WriteStringValue(System.Text.Json.JsonEncodedText value) => throw null; - public void WriteStringValue(System.ReadOnlySpan utf8Value) => throw null; - public void WriteStringValue(System.ReadOnlySpan value) => throw null; - public void WriteStringValue(string value) => throw null; - } - namespace Nodes { - public class JsonArray : System.Text.Json.Nodes.JsonNode, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + public sealed class JsonArray : System.Text.Json.Nodes.JsonNode, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList { public void Add(System.Text.Json.Nodes.JsonNode item) => throw null; public void Add(T value) => throw null; @@ -527,19 +312,18 @@ namespace System void System.Collections.Generic.ICollection.CopyTo(System.Text.Json.Nodes.JsonNode[] array, int index) => throw null; public int Count { get => throw null; } public static System.Text.Json.Nodes.JsonArray Create(System.Text.Json.JsonElement element, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public JsonArray(System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public JsonArray(System.Text.Json.Nodes.JsonNodeOptions options, params System.Text.Json.Nodes.JsonNode[] items) => throw null; + public JsonArray(params System.Text.Json.Nodes.JsonNode[] items) => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public int IndexOf(System.Text.Json.Nodes.JsonNode item) => throw null; public void Insert(int index, System.Text.Json.Nodes.JsonNode item) => throw null; bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - public JsonArray(System.Text.Json.Nodes.JsonNodeOptions options, params System.Text.Json.Nodes.JsonNode[] items) => throw null; - public JsonArray(System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public JsonArray(params System.Text.Json.Nodes.JsonNode[] items) => throw null; public bool Remove(System.Text.Json.Nodes.JsonNode item) => throw null; public void RemoveAt(int index) => throw null; public override void WriteTo(System.Text.Json.Utf8JsonWriter writer, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; } - public abstract class JsonNode { public System.Text.Json.Nodes.JsonArray AsArray() => throw null; @@ -547,94 +331,90 @@ namespace System public System.Text.Json.Nodes.JsonValue AsValue() => throw null; public string GetPath() => throw null; public virtual T GetValue() => throw null; - public System.Text.Json.Nodes.JsonNode this[int index] { get => throw null; set => throw null; } - public System.Text.Json.Nodes.JsonNode this[string propertyName] { get => throw null; set => throw null; } - internal JsonNode() => throw null; + public static explicit operator bool(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator byte(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator char(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator System.DateTime(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator System.DateTimeOffset(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator decimal(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator double(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator System.Guid(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator short(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator int(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator long(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator bool?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator byte?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator char?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator System.DateTimeOffset?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator System.DateTime?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator decimal?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator double?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator System.Guid?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator short?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator int?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator long?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator sbyte?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator float?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator ushort?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator uint?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator ulong?(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator sbyte(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator float(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator string(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator ushort(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator uint(System.Text.Json.Nodes.JsonNode value) => throw null; + public static explicit operator ulong(System.Text.Json.Nodes.JsonNode value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(bool value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(byte value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(char value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(System.DateTime value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(System.DateTimeOffset value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(decimal value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(double value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(System.Guid value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(short value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(int value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(long value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(bool? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(byte? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(char? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(System.DateTimeOffset? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(System.DateTime? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(decimal? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(double? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(System.Guid? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(short? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(int? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(long? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(sbyte? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(float? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(ushort? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(uint? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(ulong? value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(sbyte value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(float value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(string value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(ushort value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(uint value) => throw null; + public static implicit operator System.Text.Json.Nodes.JsonNode(ulong value) => throw null; public System.Text.Json.Nodes.JsonNodeOptions? Options { get => throw null; } public System.Text.Json.Nodes.JsonNode Parent { get => throw null; } - public static System.Text.Json.Nodes.JsonNode Parse(System.ReadOnlySpan utf8Json, System.Text.Json.Nodes.JsonNodeOptions? nodeOptions = default(System.Text.Json.Nodes.JsonNodeOptions?), System.Text.Json.JsonDocumentOptions documentOptions = default(System.Text.Json.JsonDocumentOptions)) => throw null; public static System.Text.Json.Nodes.JsonNode Parse(System.IO.Stream utf8Json, System.Text.Json.Nodes.JsonNodeOptions? nodeOptions = default(System.Text.Json.Nodes.JsonNodeOptions?), System.Text.Json.JsonDocumentOptions documentOptions = default(System.Text.Json.JsonDocumentOptions)) => throw null; - public static System.Text.Json.Nodes.JsonNode Parse(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.Nodes.JsonNodeOptions? nodeOptions = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonNode Parse(System.ReadOnlySpan utf8Json, System.Text.Json.Nodes.JsonNodeOptions? nodeOptions = default(System.Text.Json.Nodes.JsonNodeOptions?), System.Text.Json.JsonDocumentOptions documentOptions = default(System.Text.Json.JsonDocumentOptions)) => throw null; public static System.Text.Json.Nodes.JsonNode Parse(string json, System.Text.Json.Nodes.JsonNodeOptions? nodeOptions = default(System.Text.Json.Nodes.JsonNodeOptions?), System.Text.Json.JsonDocumentOptions documentOptions = default(System.Text.Json.JsonDocumentOptions)) => throw null; + public static System.Text.Json.Nodes.JsonNode Parse(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.Nodes.JsonNodeOptions? nodeOptions = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; public System.Text.Json.Nodes.JsonNode Root { get => throw null; } + public System.Text.Json.Nodes.JsonNode this[int index] { get => throw null; set { } } + public System.Text.Json.Nodes.JsonNode this[string propertyName] { get => throw null; set { } } public string ToJsonString(System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; public override string ToString() => throw null; public abstract void WriteTo(System.Text.Json.Utf8JsonWriter writer, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)); - public static explicit operator System.Byte(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Byte?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Char(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Char?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.DateTime(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.DateTime?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.DateTimeOffset(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.DateTimeOffset?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Decimal(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Decimal?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Guid(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Guid?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Int16(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Int16?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Int64(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.Int64?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.SByte(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.SByte?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.UInt16(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.UInt16?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.UInt32(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.UInt32?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.UInt64(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator System.UInt64?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator bool(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator bool?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator double(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator double?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator float(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator float?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator int(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator int?(System.Text.Json.Nodes.JsonNode value) => throw null; - public static explicit operator string(System.Text.Json.Nodes.JsonNode value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.DateTime value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.DateTime? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.DateTimeOffset value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.DateTimeOffset? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Guid value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Guid? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(bool value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(bool? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Byte value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Byte? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Char value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Char? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Decimal value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Decimal? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(double value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(double? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(float value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(float? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(int value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(int? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Int64 value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Int64? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.SByte value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.SByte? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Int16 value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.Int16? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(string value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.UInt32 value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.UInt32? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.UInt64 value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.UInt64? value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.UInt16 value) => throw null; - public static implicit operator System.Text.Json.Nodes.JsonNode(System.UInt16? value) => throw null; } - public struct JsonNodeOptions { - // Stub generator skipped constructor - public bool PropertyNameCaseInsensitive { get => throw null; set => throw null; } + public bool PropertyNameCaseInsensitive { get => throw null; set { } } } - - public class JsonObject : System.Text.Json.Nodes.JsonNode, System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public sealed class JsonObject : System.Text.Json.Nodes.JsonNode, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary { public void Add(System.Collections.Generic.KeyValuePair property) => throw null; public void Add(string propertyName, System.Text.Json.Nodes.JsonNode value) => throw null; @@ -644,62 +424,60 @@ namespace System void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int index) => throw null; public int Count { get => throw null; } public static System.Text.Json.Nodes.JsonObject Create(System.Text.Json.JsonElement element, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public JsonObject(System.Collections.Generic.IEnumerable> properties, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public JsonObject(System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } - public JsonObject(System.Collections.Generic.IEnumerable> properties, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public JsonObject(System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; public bool Remove(string propertyName) => throw null; + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; public bool TryGetPropertyValue(string propertyName, out System.Text.Json.Nodes.JsonNode jsonNode) => throw null; bool System.Collections.Generic.IDictionary.TryGetValue(string propertyName, out System.Text.Json.Nodes.JsonNode jsonNode) => throw null; System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } public override void WriteTo(System.Text.Json.Utf8JsonWriter writer, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; } - public abstract class JsonValue : System.Text.Json.Nodes.JsonNode { - public static System.Text.Json.Nodes.JsonValue Create(System.DateTime value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.DateTime? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.DateTimeOffset value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.DateTimeOffset? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Guid value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Guid? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Text.Json.JsonElement value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Text.Json.JsonElement? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; public static System.Text.Json.Nodes.JsonValue Create(bool value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(bool? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Byte value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Byte? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Char value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Char? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Decimal value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Decimal? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(byte value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(char value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(System.DateTime value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(System.DateTimeOffset value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(decimal value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; public static System.Text.Json.Nodes.JsonValue Create(double value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(double? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(float value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(float? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(System.Guid value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(short value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; public static System.Text.Json.Nodes.JsonValue Create(int value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(long value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(bool? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(byte? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(char? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(System.DateTimeOffset? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(System.DateTime? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(decimal? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(double? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(System.Guid? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(short? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; public static System.Text.Json.Nodes.JsonValue Create(int? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Int64 value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Int64? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.SByte value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.SByte? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Int16 value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.Int16? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(long? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(sbyte? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(float? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(System.Text.Json.JsonElement? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(ushort? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(uint? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(ulong? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(sbyte value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(float value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; public static System.Text.Json.Nodes.JsonValue Create(string value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.UInt32 value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.UInt32? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.UInt64 value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.UInt64? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.UInt16 value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; - public static System.Text.Json.Nodes.JsonValue Create(System.UInt16? value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(System.Text.Json.JsonElement value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(ushort value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(uint value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; + public static System.Text.Json.Nodes.JsonValue Create(ulong value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; public static System.Text.Json.Nodes.JsonValue Create(T value, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; public static System.Text.Json.Nodes.JsonValue Create(T value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Text.Json.Nodes.JsonNodeOptions? options = default(System.Text.Json.Nodes.JsonNodeOptions?)) => throw null; public abstract bool TryGetValue(out T value); } - } namespace Serialization { @@ -707,49 +485,40 @@ namespace System { void OnDeserialized(); } - public interface IJsonOnDeserializing { void OnDeserializing(); } - public interface IJsonOnSerialized { void OnSerialized(); } - public interface IJsonOnSerializing { void OnSerializing(); } - public abstract class JsonAttribute : System.Attribute { protected JsonAttribute() => throw null; } - - public class JsonConstructorAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonConstructorAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonConstructorAttribute() => throw null; } - public abstract class JsonConverter { public abstract bool CanConvert(System.Type typeToConvert); - internal JsonConverter() => throw null; } - public abstract class JsonConverter : System.Text.Json.Serialization.JsonConverter { public override bool CanConvert(System.Type typeToConvert) => throw null; + protected JsonConverter() => throw null; public virtual bool HandleNull { get => throw null; } - protected internal JsonConverter() => throw null; public abstract T Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options); public virtual T ReadAsPropertyName(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) => throw null; public abstract void Write(System.Text.Json.Utf8JsonWriter writer, T value, System.Text.Json.JsonSerializerOptions options); public virtual void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, T value, System.Text.Json.JsonSerializerOptions options) => throw null; } - public class JsonConverterAttribute : System.Text.Json.Serialization.JsonAttribute { public System.Type ConverterType { get => throw null; } @@ -757,171 +526,128 @@ namespace System protected JsonConverterAttribute() => throw null; public JsonConverterAttribute(System.Type converterType) => throw null; } - public abstract class JsonConverterFactory : System.Text.Json.Serialization.JsonConverter { public abstract System.Text.Json.Serialization.JsonConverter CreateConverter(System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options); protected JsonConverterFactory() => throw null; } - public class JsonDerivedTypeAttribute : System.Text.Json.Serialization.JsonAttribute { - public System.Type DerivedType { get => throw null; } public JsonDerivedTypeAttribute(System.Type derivedType) => throw null; public JsonDerivedTypeAttribute(System.Type derivedType, int typeDiscriminator) => throw null; public JsonDerivedTypeAttribute(System.Type derivedType, string typeDiscriminator) => throw null; + public System.Type DerivedType { get => throw null; } public object TypeDiscriminator { get => throw null; } } - - public class JsonExtensionDataAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonExtensionDataAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonExtensionDataAttribute() => throw null; } - - public class JsonIgnoreAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonIgnoreAttribute : System.Text.Json.Serialization.JsonAttribute { - public System.Text.Json.Serialization.JsonIgnoreCondition Condition { get => throw null; set => throw null; } + public System.Text.Json.Serialization.JsonIgnoreCondition Condition { get => throw null; set { } } public JsonIgnoreAttribute() => throw null; } - - public enum JsonIgnoreCondition : int + public enum JsonIgnoreCondition { - Always = 1, Never = 0, + Always = 1, WhenWritingDefault = 2, WhenWritingNull = 3, } - - public class JsonIncludeAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonIncludeAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonIncludeAttribute() => throw null; } - - public enum JsonKnownNamingPolicy : int + public enum JsonKnownNamingPolicy { - CamelCase = 1, Unspecified = 0, + CamelCase = 1, } - [System.Flags] - public enum JsonNumberHandling : int + public enum JsonNumberHandling { - AllowNamedFloatingPointLiterals = 4, - AllowReadingFromString = 1, Strict = 0, + AllowReadingFromString = 1, WriteAsString = 2, + AllowNamedFloatingPointLiterals = 4, } - - public class JsonNumberHandlingAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonNumberHandlingAttribute : System.Text.Json.Serialization.JsonAttribute { - public System.Text.Json.Serialization.JsonNumberHandling Handling { get => throw null; } public JsonNumberHandlingAttribute(System.Text.Json.Serialization.JsonNumberHandling handling) => throw null; + public System.Text.Json.Serialization.JsonNumberHandling Handling { get => throw null; } } - - public class JsonPolymorphicAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonPolymorphicAttribute : System.Text.Json.Serialization.JsonAttribute { - public bool IgnoreUnrecognizedTypeDiscriminators { get => throw null; set => throw null; } public JsonPolymorphicAttribute() => throw null; - public string TypeDiscriminatorPropertyName { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonUnknownDerivedTypeHandling UnknownDerivedTypeHandling { get => throw null; set => throw null; } + public bool IgnoreUnrecognizedTypeDiscriminators { get => throw null; set { } } + public string TypeDiscriminatorPropertyName { get => throw null; set { } } + public System.Text.Json.Serialization.JsonUnknownDerivedTypeHandling UnknownDerivedTypeHandling { get => throw null; set { } } } - - public class JsonPropertyNameAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonPropertyNameAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonPropertyNameAttribute(string name) => throw null; public string Name { get => throw null; } } - - public class JsonPropertyOrderAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonPropertyOrderAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonPropertyOrderAttribute(int order) => throw null; public int Order { get => throw null; } } - - public class JsonRequiredAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonRequiredAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonRequiredAttribute() => throw null; } - - public class JsonSerializableAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonSerializableAttribute : System.Text.Json.Serialization.JsonAttribute { - public System.Text.Json.Serialization.JsonSourceGenerationMode GenerationMode { get => throw null; set => throw null; } public JsonSerializableAttribute(System.Type type) => throw null; - public string TypeInfoPropertyName { get => throw null; set => throw null; } + public System.Text.Json.Serialization.JsonSourceGenerationMode GenerationMode { get => throw null; set { } } + public string TypeInfoPropertyName { get => throw null; set { } } } - public abstract class JsonSerializerContext : System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver { + protected JsonSerializerContext(System.Text.Json.JsonSerializerOptions options) => throw null; protected abstract System.Text.Json.JsonSerializerOptions GeneratedSerializerOptions { get; } public abstract System.Text.Json.Serialization.Metadata.JsonTypeInfo GetTypeInfo(System.Type type); System.Text.Json.Serialization.Metadata.JsonTypeInfo System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver.GetTypeInfo(System.Type type, System.Text.Json.JsonSerializerOptions options) => throw null; - protected JsonSerializerContext(System.Text.Json.JsonSerializerOptions options) => throw null; public System.Text.Json.JsonSerializerOptions Options { get => throw null; } } - [System.Flags] - public enum JsonSourceGenerationMode : int + public enum JsonSourceGenerationMode { Default = 0, Metadata = 1, Serialization = 2, } - - public class JsonSourceGenerationOptionsAttribute : System.Text.Json.Serialization.JsonAttribute + public sealed class JsonSourceGenerationOptionsAttribute : System.Text.Json.Serialization.JsonAttribute { - public System.Text.Json.Serialization.JsonIgnoreCondition DefaultIgnoreCondition { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonSourceGenerationMode GenerationMode { get => throw null; set => throw null; } - public bool IgnoreReadOnlyFields { get => throw null; set => throw null; } - public bool IgnoreReadOnlyProperties { get => throw null; set => throw null; } - public bool IncludeFields { get => throw null; set => throw null; } public JsonSourceGenerationOptionsAttribute() => throw null; - public System.Text.Json.Serialization.JsonKnownNamingPolicy PropertyNamingPolicy { get => throw null; set => throw null; } - public bool WriteIndented { get => throw null; set => throw null; } + public System.Text.Json.Serialization.JsonIgnoreCondition DefaultIgnoreCondition { get => throw null; set { } } + public System.Text.Json.Serialization.JsonSourceGenerationMode GenerationMode { get => throw null; set { } } + public bool IgnoreReadOnlyFields { get => throw null; set { } } + public bool IgnoreReadOnlyProperties { get => throw null; set { } } + public bool IncludeFields { get => throw null; set { } } + public System.Text.Json.Serialization.JsonKnownNamingPolicy PropertyNamingPolicy { get => throw null; set { } } + public bool WriteIndented { get => throw null; set { } } } - public class JsonStringEnumConverter : System.Text.Json.Serialization.JsonConverterFactory { - public override bool CanConvert(System.Type typeToConvert) => throw null; - public override System.Text.Json.Serialization.JsonConverter CreateConverter(System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) => throw null; + public override sealed bool CanConvert(System.Type typeToConvert) => throw null; + public override sealed System.Text.Json.Serialization.JsonConverter CreateConverter(System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) => throw null; public JsonStringEnumConverter() => throw null; public JsonStringEnumConverter(System.Text.Json.JsonNamingPolicy namingPolicy = default(System.Text.Json.JsonNamingPolicy), bool allowIntegerValues = default(bool)) => throw null; } - - public enum JsonUnknownDerivedTypeHandling : int + public enum JsonUnknownDerivedTypeHandling { FailSerialization = 0, FallBackToBaseType = 1, FallBackToNearestAncestor = 2, } - - public enum JsonUnknownTypeHandling : int + public enum JsonUnknownTypeHandling { JsonElement = 0, JsonNode = 1, } - - public abstract class ReferenceHandler - { - public abstract System.Text.Json.Serialization.ReferenceResolver CreateResolver(); - public static System.Text.Json.Serialization.ReferenceHandler IgnoreCycles { get => throw null; } - public static System.Text.Json.Serialization.ReferenceHandler Preserve { get => throw null; } - protected ReferenceHandler() => throw null; - } - - public class ReferenceHandler : System.Text.Json.Serialization.ReferenceHandler where T : System.Text.Json.Serialization.ReferenceResolver, new() - { - public override System.Text.Json.Serialization.ReferenceResolver CreateResolver() => throw null; - public ReferenceHandler() => throw null; - } - - public abstract class ReferenceResolver - { - public abstract void AddReference(string referenceId, object value); - public abstract string GetReference(object value, out bool alreadyExists); - protected ReferenceResolver() => throw null; - public abstract object ResolveReference(string referenceId); - } - namespace Metadata { public class DefaultJsonTypeInfoResolver : System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver @@ -930,75 +656,70 @@ namespace System public virtual System.Text.Json.Serialization.Metadata.JsonTypeInfo GetTypeInfo(System.Type type, System.Text.Json.JsonSerializerOptions options) => throw null; public System.Collections.Generic.IList> Modifiers { get => throw null; } } - public interface IJsonTypeInfoResolver { System.Text.Json.Serialization.Metadata.JsonTypeInfo GetTypeInfo(System.Type type, System.Text.Json.JsonSerializerOptions options); } - - public class JsonCollectionInfoValues + public sealed class JsonCollectionInfoValues { - public System.Text.Json.Serialization.Metadata.JsonTypeInfo ElementInfo { get => throw null; set => throw null; } public JsonCollectionInfoValues() => throw null; - public System.Text.Json.Serialization.Metadata.JsonTypeInfo KeyInfo { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonNumberHandling NumberHandling { get => throw null; set => throw null; } - public System.Func ObjectCreator { get => throw null; set => throw null; } - public System.Action SerializeHandler { get => throw null; set => throw null; } + public System.Text.Json.Serialization.Metadata.JsonTypeInfo ElementInfo { get => throw null; set { } } + public System.Text.Json.Serialization.Metadata.JsonTypeInfo KeyInfo { get => throw null; set { } } + public System.Text.Json.Serialization.JsonNumberHandling NumberHandling { get => throw null; set { } } + public System.Func ObjectCreator { get => throw null; set { } } + public System.Action SerializeHandler { get => throw null; set { } } } - public struct JsonDerivedType { - public System.Type DerivedType { get => throw null; } - // Stub generator skipped constructor public JsonDerivedType(System.Type derivedType) => throw null; public JsonDerivedType(System.Type derivedType, int typeDiscriminator) => throw null; public JsonDerivedType(System.Type derivedType, string typeDiscriminator) => throw null; + public System.Type DerivedType { get => throw null; } public object TypeDiscriminator { get => throw null; } } - public static class JsonMetadataServices { public static System.Text.Json.Serialization.JsonConverter BooleanConverter { get => throw null; } - public static System.Text.Json.Serialization.JsonConverter ByteArrayConverter { get => throw null; } - public static System.Text.Json.Serialization.JsonConverter ByteConverter { get => throw null; } - public static System.Text.Json.Serialization.JsonConverter CharConverter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter ByteArrayConverter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter ByteConverter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter CharConverter { get => throw null; } public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateArrayInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateConcurrentQueueInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Concurrent.ConcurrentQueue => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateConcurrentStackInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Concurrent.ConcurrentStack => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateDictionaryInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.Dictionary => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIAsyncEnumerableInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.IAsyncEnumerable => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateICollectionInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.ICollection => throw null; - public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIDictionaryInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.IDictionary => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIDictionaryInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.IDictionary => throw null; - public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIEnumerableInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.IEnumerable => throw null; + public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIDictionaryInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.IDictionary => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIEnumerableInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.IEnumerable => throw null; - public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIListInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.IList => throw null; + public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIEnumerableInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.IEnumerable => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIListInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.IList => throw null; - public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIReadOnlyDictionaryInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.IReadOnlyDictionary => throw null; - public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateISetInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.ISet => throw null; + public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIListInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.IList => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateImmutableDictionaryInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo, System.Func>, TCollection> createRangeFunc) where TCollection : System.Collections.Generic.IReadOnlyDictionary => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateImmutableEnumerableInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo, System.Func, TCollection> createRangeFunc) where TCollection : System.Collections.Generic.IEnumerable => throw null; + public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateIReadOnlyDictionaryInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.IReadOnlyDictionary => throw null; + public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateISetInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.ISet => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateListInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.List => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateObjectInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonObjectInfoValues objectInfo) => throw null; public static System.Text.Json.Serialization.Metadata.JsonPropertyInfo CreatePropertyInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues propertyInfo) => throw null; - public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateQueueInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.Queue => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateQueueInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo, System.Action addFunc) where TCollection : System.Collections.IEnumerable => throw null; - public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateStackInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.Stack => throw null; + public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateQueueInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.Queue => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateStackInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo, System.Action addFunc) where TCollection : System.Collections.IEnumerable => throw null; + public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateStackInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues collectionInfo) where TCollection : System.Collections.Generic.Stack => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateValueInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.JsonConverter converter) => throw null; public static System.Text.Json.Serialization.JsonConverter DateOnlyConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter DateTimeConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter DateTimeOffsetConverter { get => throw null; } - public static System.Text.Json.Serialization.JsonConverter DecimalConverter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter DecimalConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter DoubleConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter GetEnumConverter(System.Text.Json.JsonSerializerOptions options) where T : struct => throw null; public static System.Text.Json.Serialization.JsonConverter GetNullableConverter(System.Text.Json.JsonSerializerOptions options) where T : struct => throw null; public static System.Text.Json.Serialization.JsonConverter GetNullableConverter(System.Text.Json.Serialization.Metadata.JsonTypeInfo underlyingTypeInfo) where T : struct => throw null; public static System.Text.Json.Serialization.JsonConverter GetUnsupportedTypeConverter() => throw null; public static System.Text.Json.Serialization.JsonConverter GuidConverter { get => throw null; } - public static System.Text.Json.Serialization.JsonConverter Int16Converter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter Int16Converter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter Int32Converter { get => throw null; } - public static System.Text.Json.Serialization.JsonConverter Int64Converter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter Int64Converter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter JsonArrayConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter JsonDocumentConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter JsonElementConverter { get => throw null; } @@ -1006,125 +727,315 @@ namespace System public static System.Text.Json.Serialization.JsonConverter JsonObjectConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter JsonValueConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter ObjectConverter { get => throw null; } - public static System.Text.Json.Serialization.JsonConverter SByteConverter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter SByteConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter SingleConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter StringConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter TimeOnlyConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter TimeSpanConverter { get => throw null; } - public static System.Text.Json.Serialization.JsonConverter UInt16Converter { get => throw null; } - public static System.Text.Json.Serialization.JsonConverter UInt32Converter { get => throw null; } - public static System.Text.Json.Serialization.JsonConverter UInt64Converter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter UInt16Converter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter UInt32Converter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter UInt64Converter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter UriConverter { get => throw null; } public static System.Text.Json.Serialization.JsonConverter VersionConverter { get => throw null; } } - - public class JsonObjectInfoValues + public sealed class JsonObjectInfoValues { - public System.Func ConstructorParameterMetadataInitializer { get => throw null; set => throw null; } + public System.Func ConstructorParameterMetadataInitializer { get => throw null; set { } } public JsonObjectInfoValues() => throw null; - public System.Text.Json.Serialization.JsonNumberHandling NumberHandling { get => throw null; set => throw null; } - public System.Func ObjectCreator { get => throw null; set => throw null; } - public System.Func ObjectWithParameterizedConstructorCreator { get => throw null; set => throw null; } - public System.Func PropertyMetadataInitializer { get => throw null; set => throw null; } - public System.Action SerializeHandler { get => throw null; set => throw null; } + public System.Text.Json.Serialization.JsonNumberHandling NumberHandling { get => throw null; set { } } + public System.Func ObjectCreator { get => throw null; set { } } + public System.Func ObjectWithParameterizedConstructorCreator { get => throw null; set { } } + public System.Func PropertyMetadataInitializer { get => throw null; set { } } + public System.Action SerializeHandler { get => throw null; set { } } } - - public class JsonParameterInfoValues + public sealed class JsonParameterInfoValues { - public object DefaultValue { get => throw null; set => throw null; } - public bool HasDefaultValue { get => throw null; set => throw null; } public JsonParameterInfoValues() => throw null; - public string Name { get => throw null; set => throw null; } - public System.Type ParameterType { get => throw null; set => throw null; } - public int Position { get => throw null; set => throw null; } + public object DefaultValue { get => throw null; set { } } + public bool HasDefaultValue { get => throw null; set { } } + public string Name { get => throw null; set { } } + public System.Type ParameterType { get => throw null; set { } } + public int Position { get => throw null; set { } } } - public class JsonPolymorphismOptions { - public System.Collections.Generic.IList DerivedTypes { get => throw null; } - public bool IgnoreUnrecognizedTypeDiscriminators { get => throw null; set => throw null; } public JsonPolymorphismOptions() => throw null; - public string TypeDiscriminatorPropertyName { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonUnknownDerivedTypeHandling UnknownDerivedTypeHandling { get => throw null; set => throw null; } + public System.Collections.Generic.IList DerivedTypes { get => throw null; } + public bool IgnoreUnrecognizedTypeDiscriminators { get => throw null; set { } } + public string TypeDiscriminatorPropertyName { get => throw null; set { } } + public System.Text.Json.Serialization.JsonUnknownDerivedTypeHandling UnknownDerivedTypeHandling { get => throw null; set { } } } - public abstract class JsonPropertyInfo { - public System.Reflection.ICustomAttributeProvider AttributeProvider { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonConverter CustomConverter { get => throw null; set => throw null; } - public System.Func Get { get => throw null; set => throw null; } - public bool IsExtensionData { get => throw null; set => throw null; } - public bool IsRequired { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonNumberHandling? NumberHandling { get => throw null; set => throw null; } + public System.Reflection.ICustomAttributeProvider AttributeProvider { get => throw null; set { } } + public System.Text.Json.Serialization.JsonConverter CustomConverter { get => throw null; set { } } + public System.Func Get { get => throw null; set { } } + public bool IsExtensionData { get => throw null; set { } } + public bool IsRequired { get => throw null; set { } } + public string Name { get => throw null; set { } } + public System.Text.Json.Serialization.JsonNumberHandling? NumberHandling { get => throw null; set { } } public System.Text.Json.JsonSerializerOptions Options { get => throw null; } - public int Order { get => throw null; set => throw null; } + public int Order { get => throw null; set { } } public System.Type PropertyType { get => throw null; } - public System.Action Set { get => throw null; set => throw null; } - public System.Func ShouldSerialize { get => throw null; set => throw null; } + public System.Action Set { get => throw null; set { } } + public System.Func ShouldSerialize { get => throw null; set { } } } - - public class JsonPropertyInfoValues + public sealed class JsonPropertyInfoValues { - public System.Text.Json.Serialization.JsonConverter Converter { get => throw null; set => throw null; } - public System.Type DeclaringType { get => throw null; set => throw null; } - public System.Func Getter { get => throw null; set => throw null; } - public bool HasJsonInclude { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonIgnoreCondition? IgnoreCondition { get => throw null; set => throw null; } - public bool IsExtensionData { get => throw null; set => throw null; } - public bool IsProperty { get => throw null; set => throw null; } - public bool IsPublic { get => throw null; set => throw null; } - public bool IsVirtual { get => throw null; set => throw null; } + public System.Text.Json.Serialization.JsonConverter Converter { get => throw null; set { } } public JsonPropertyInfoValues() => throw null; - public string JsonPropertyName { get => throw null; set => throw null; } - public System.Text.Json.Serialization.JsonNumberHandling? NumberHandling { get => throw null; set => throw null; } - public string PropertyName { get => throw null; set => throw null; } - public System.Text.Json.Serialization.Metadata.JsonTypeInfo PropertyTypeInfo { get => throw null; set => throw null; } - public System.Action Setter { get => throw null; set => throw null; } + public System.Type DeclaringType { get => throw null; set { } } + public System.Func Getter { get => throw null; set { } } + public bool HasJsonInclude { get => throw null; set { } } + public System.Text.Json.Serialization.JsonIgnoreCondition? IgnoreCondition { get => throw null; set { } } + public bool IsExtensionData { get => throw null; set { } } + public bool IsProperty { get => throw null; set { } } + public bool IsPublic { get => throw null; set { } } + public bool IsVirtual { get => throw null; set { } } + public string JsonPropertyName { get => throw null; set { } } + public System.Text.Json.Serialization.JsonNumberHandling? NumberHandling { get => throw null; set { } } + public string PropertyName { get => throw null; set { } } + public System.Text.Json.Serialization.Metadata.JsonTypeInfo PropertyTypeInfo { get => throw null; set { } } + public System.Action Setter { get => throw null; set { } } } - public abstract class JsonTypeInfo { public System.Text.Json.Serialization.JsonConverter Converter { get => throw null; } public System.Text.Json.Serialization.Metadata.JsonPropertyInfo CreateJsonPropertyInfo(System.Type propertyType, string name) => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateJsonTypeInfo(System.Type type, System.Text.Json.JsonSerializerOptions options) => throw null; public static System.Text.Json.Serialization.Metadata.JsonTypeInfo CreateJsonTypeInfo(System.Text.Json.JsonSerializerOptions options) => throw null; - public System.Func CreateObject { get => throw null; set => throw null; } + public System.Func CreateObject { get => throw null; set { } } public bool IsReadOnly { get => throw null; } - internal JsonTypeInfo() => throw null; public System.Text.Json.Serialization.Metadata.JsonTypeInfoKind Kind { get => throw null; } public void MakeReadOnly() => throw null; - public System.Text.Json.Serialization.JsonNumberHandling? NumberHandling { get => throw null; set => throw null; } - public System.Action OnDeserialized { get => throw null; set => throw null; } - public System.Action OnDeserializing { get => throw null; set => throw null; } - public System.Action OnSerialized { get => throw null; set => throw null; } - public System.Action OnSerializing { get => throw null; set => throw null; } + public System.Text.Json.Serialization.JsonNumberHandling? NumberHandling { get => throw null; set { } } + public System.Action OnDeserialized { get => throw null; set { } } + public System.Action OnDeserializing { get => throw null; set { } } + public System.Action OnSerialized { get => throw null; set { } } + public System.Action OnSerializing { get => throw null; set { } } public System.Text.Json.JsonSerializerOptions Options { get => throw null; } - public System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions PolymorphismOptions { get => throw null; set => throw null; } + public System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions PolymorphismOptions { get => throw null; set { } } public System.Collections.Generic.IList Properties { get => throw null; } public System.Type Type { get => throw null; } } - public abstract class JsonTypeInfo : System.Text.Json.Serialization.Metadata.JsonTypeInfo { - public System.Func CreateObject { get => throw null; set => throw null; } + public System.Func CreateObject { get => throw null; set { } } public System.Action SerializeHandler { get => throw null; } } - - public enum JsonTypeInfoKind : int + public enum JsonTypeInfoKind { - Dictionary = 3, - Enumerable = 2, None = 0, Object = 1, + Enumerable = 2, + Dictionary = 3, } - public static class JsonTypeInfoResolver { public static System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver Combine(params System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver[] resolvers) => throw null; } - } + public abstract class ReferenceHandler + { + public abstract System.Text.Json.Serialization.ReferenceResolver CreateResolver(); + protected ReferenceHandler() => throw null; + public static System.Text.Json.Serialization.ReferenceHandler IgnoreCycles { get => throw null; } + public static System.Text.Json.Serialization.ReferenceHandler Preserve { get => throw null; } + } + public sealed class ReferenceHandler : System.Text.Json.Serialization.ReferenceHandler where T : System.Text.Json.Serialization.ReferenceResolver, new() + { + public override System.Text.Json.Serialization.ReferenceResolver CreateResolver() => throw null; + public ReferenceHandler() => throw null; + } + public abstract class ReferenceResolver + { + public abstract void AddReference(string referenceId, object value); + protected ReferenceResolver() => throw null; + public abstract string GetReference(object value, out bool alreadyExists); + public abstract object ResolveReference(string referenceId); + } + } + public struct Utf8JsonReader + { + public long BytesConsumed { get => throw null; } + public int CopyString(System.Span utf8Destination) => throw null; + public int CopyString(System.Span destination) => throw null; + public Utf8JsonReader(System.Buffers.ReadOnlySequence jsonData, bool isFinalBlock, System.Text.Json.JsonReaderState state) => throw null; + public Utf8JsonReader(System.Buffers.ReadOnlySequence jsonData, System.Text.Json.JsonReaderOptions options = default(System.Text.Json.JsonReaderOptions)) => throw null; + public Utf8JsonReader(System.ReadOnlySpan jsonData, bool isFinalBlock, System.Text.Json.JsonReaderState state) => throw null; + public Utf8JsonReader(System.ReadOnlySpan jsonData, System.Text.Json.JsonReaderOptions options = default(System.Text.Json.JsonReaderOptions)) => throw null; + public int CurrentDepth { get => throw null; } + public System.Text.Json.JsonReaderState CurrentState { get => throw null; } + public bool GetBoolean() => throw null; + public byte GetByte() => throw null; + public byte[] GetBytesFromBase64() => throw null; + public string GetComment() => throw null; + public System.DateTime GetDateTime() => throw null; + public System.DateTimeOffset GetDateTimeOffset() => throw null; + public decimal GetDecimal() => throw null; + public double GetDouble() => throw null; + public System.Guid GetGuid() => throw null; + public short GetInt16() => throw null; + public int GetInt32() => throw null; + public long GetInt64() => throw null; + public sbyte GetSByte() => throw null; + public float GetSingle() => throw null; + public string GetString() => throw null; + public ushort GetUInt16() => throw null; + public uint GetUInt32() => throw null; + public ulong GetUInt64() => throw null; + public bool HasValueSequence { get => throw null; } + public bool IsFinalBlock { get => throw null; } + public System.SequencePosition Position { get => throw null; } + public bool Read() => throw null; + public void Skip() => throw null; + public long TokenStartIndex { get => throw null; } + public System.Text.Json.JsonTokenType TokenType { get => throw null; } + public bool TryGetByte(out byte value) => throw null; + public bool TryGetBytesFromBase64(out byte[] value) => throw null; + public bool TryGetDateTime(out System.DateTime value) => throw null; + public bool TryGetDateTimeOffset(out System.DateTimeOffset value) => throw null; + public bool TryGetDecimal(out decimal value) => throw null; + public bool TryGetDouble(out double value) => throw null; + public bool TryGetGuid(out System.Guid value) => throw null; + public bool TryGetInt16(out short value) => throw null; + public bool TryGetInt32(out int value) => throw null; + public bool TryGetInt64(out long value) => throw null; + public bool TryGetSByte(out sbyte value) => throw null; + public bool TryGetSingle(out float value) => throw null; + public bool TryGetUInt16(out ushort value) => throw null; + public bool TryGetUInt32(out uint value) => throw null; + public bool TryGetUInt64(out ulong value) => throw null; + public bool TrySkip() => throw null; + public bool ValueIsEscaped { get => throw null; } + public System.Buffers.ReadOnlySequence ValueSequence { get => throw null; } + public System.ReadOnlySpan ValueSpan { get => throw null; } + public bool ValueTextEquals(System.ReadOnlySpan utf8Text) => throw null; + public bool ValueTextEquals(System.ReadOnlySpan text) => throw null; + public bool ValueTextEquals(string text) => throw null; + } + public sealed class Utf8JsonWriter : System.IAsyncDisposable, System.IDisposable + { + public long BytesCommitted { get => throw null; } + public int BytesPending { get => throw null; } + public Utf8JsonWriter(System.Buffers.IBufferWriter bufferWriter, System.Text.Json.JsonWriterOptions options = default(System.Text.Json.JsonWriterOptions)) => throw null; + public Utf8JsonWriter(System.IO.Stream utf8Json, System.Text.Json.JsonWriterOptions options = default(System.Text.Json.JsonWriterOptions)) => throw null; + public int CurrentDepth { get => throw null; } + public void Dispose() => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public void Flush() => throw null; + public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Text.Json.JsonWriterOptions Options { get => throw null; } + public void Reset() => throw null; + public void Reset(System.Buffers.IBufferWriter bufferWriter) => throw null; + public void Reset(System.IO.Stream utf8Json) => throw null; + public void WriteBase64String(System.ReadOnlySpan utf8PropertyName, System.ReadOnlySpan bytes) => throw null; + public void WriteBase64String(System.ReadOnlySpan propertyName, System.ReadOnlySpan bytes) => throw null; + public void WriteBase64String(string propertyName, System.ReadOnlySpan bytes) => throw null; + public void WriteBase64String(System.Text.Json.JsonEncodedText propertyName, System.ReadOnlySpan bytes) => throw null; + public void WriteBase64StringValue(System.ReadOnlySpan bytes) => throw null; + public void WriteBoolean(System.ReadOnlySpan utf8PropertyName, bool value) => throw null; + public void WriteBoolean(System.ReadOnlySpan propertyName, bool value) => throw null; + public void WriteBoolean(string propertyName, bool value) => throw null; + public void WriteBoolean(System.Text.Json.JsonEncodedText propertyName, bool value) => throw null; + public void WriteBooleanValue(bool value) => throw null; + public void WriteCommentValue(System.ReadOnlySpan utf8Value) => throw null; + public void WriteCommentValue(System.ReadOnlySpan value) => throw null; + public void WriteCommentValue(string value) => throw null; + public void WriteEndArray() => throw null; + public void WriteEndObject() => throw null; + public void WriteNull(System.ReadOnlySpan utf8PropertyName) => throw null; + public void WriteNull(System.ReadOnlySpan propertyName) => throw null; + public void WriteNull(string propertyName) => throw null; + public void WriteNull(System.Text.Json.JsonEncodedText propertyName) => throw null; + public void WriteNullValue() => throw null; + public void WriteNumber(System.ReadOnlySpan utf8PropertyName, decimal value) => throw null; + public void WriteNumber(System.ReadOnlySpan utf8PropertyName, double value) => throw null; + public void WriteNumber(System.ReadOnlySpan utf8PropertyName, int value) => throw null; + public void WriteNumber(System.ReadOnlySpan utf8PropertyName, long value) => throw null; + public void WriteNumber(System.ReadOnlySpan utf8PropertyName, float value) => throw null; + public void WriteNumber(System.ReadOnlySpan utf8PropertyName, uint value) => throw null; + public void WriteNumber(System.ReadOnlySpan utf8PropertyName, ulong value) => throw null; + public void WriteNumber(System.ReadOnlySpan propertyName, decimal value) => throw null; + public void WriteNumber(System.ReadOnlySpan propertyName, double value) => throw null; + public void WriteNumber(System.ReadOnlySpan propertyName, int value) => throw null; + public void WriteNumber(System.ReadOnlySpan propertyName, long value) => throw null; + public void WriteNumber(System.ReadOnlySpan propertyName, float value) => throw null; + public void WriteNumber(System.ReadOnlySpan propertyName, uint value) => throw null; + public void WriteNumber(System.ReadOnlySpan propertyName, ulong value) => throw null; + public void WriteNumber(string propertyName, decimal value) => throw null; + public void WriteNumber(string propertyName, double value) => throw null; + public void WriteNumber(string propertyName, int value) => throw null; + public void WriteNumber(string propertyName, long value) => throw null; + public void WriteNumber(string propertyName, float value) => throw null; + public void WriteNumber(string propertyName, uint value) => throw null; + public void WriteNumber(string propertyName, ulong value) => throw null; + public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, decimal value) => throw null; + public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, double value) => throw null; + public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, int value) => throw null; + public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, long value) => throw null; + public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, float value) => throw null; + public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, uint value) => throw null; + public void WriteNumber(System.Text.Json.JsonEncodedText propertyName, ulong value) => throw null; + public void WriteNumberValue(decimal value) => throw null; + public void WriteNumberValue(double value) => throw null; + public void WriteNumberValue(int value) => throw null; + public void WriteNumberValue(long value) => throw null; + public void WriteNumberValue(float value) => throw null; + public void WriteNumberValue(uint value) => throw null; + public void WriteNumberValue(ulong value) => throw null; + public void WritePropertyName(System.ReadOnlySpan utf8PropertyName) => throw null; + public void WritePropertyName(System.ReadOnlySpan propertyName) => throw null; + public void WritePropertyName(string propertyName) => throw null; + public void WritePropertyName(System.Text.Json.JsonEncodedText propertyName) => throw null; + public void WriteRawValue(System.ReadOnlySpan utf8Json, bool skipInputValidation = default(bool)) => throw null; + public void WriteRawValue(System.ReadOnlySpan json, bool skipInputValidation = default(bool)) => throw null; + public void WriteRawValue(string json, bool skipInputValidation = default(bool)) => throw null; + public void WriteStartArray() => throw null; + public void WriteStartArray(System.ReadOnlySpan utf8PropertyName) => throw null; + public void WriteStartArray(System.ReadOnlySpan propertyName) => throw null; + public void WriteStartArray(string propertyName) => throw null; + public void WriteStartArray(System.Text.Json.JsonEncodedText propertyName) => throw null; + public void WriteStartObject() => throw null; + public void WriteStartObject(System.ReadOnlySpan utf8PropertyName) => throw null; + public void WriteStartObject(System.ReadOnlySpan propertyName) => throw null; + public void WriteStartObject(string propertyName) => throw null; + public void WriteStartObject(System.Text.Json.JsonEncodedText propertyName) => throw null; + public void WriteString(System.ReadOnlySpan utf8PropertyName, System.DateTime value) => throw null; + public void WriteString(System.ReadOnlySpan utf8PropertyName, System.DateTimeOffset value) => throw null; + public void WriteString(System.ReadOnlySpan utf8PropertyName, System.Guid value) => throw null; + public void WriteString(System.ReadOnlySpan utf8PropertyName, System.ReadOnlySpan utf8Value) => throw null; + public void WriteString(System.ReadOnlySpan utf8PropertyName, System.ReadOnlySpan value) => throw null; + public void WriteString(System.ReadOnlySpan utf8PropertyName, string value) => throw null; + public void WriteString(System.ReadOnlySpan utf8PropertyName, System.Text.Json.JsonEncodedText value) => throw null; + public void WriteString(System.ReadOnlySpan propertyName, System.DateTime value) => throw null; + public void WriteString(System.ReadOnlySpan propertyName, System.DateTimeOffset value) => throw null; + public void WriteString(System.ReadOnlySpan propertyName, System.Guid value) => throw null; + public void WriteString(System.ReadOnlySpan propertyName, System.ReadOnlySpan utf8Value) => throw null; + public void WriteString(System.ReadOnlySpan propertyName, System.ReadOnlySpan value) => throw null; + public void WriteString(System.ReadOnlySpan propertyName, string value) => throw null; + public void WriteString(System.ReadOnlySpan propertyName, System.Text.Json.JsonEncodedText value) => throw null; + public void WriteString(string propertyName, System.DateTime value) => throw null; + public void WriteString(string propertyName, System.DateTimeOffset value) => throw null; + public void WriteString(string propertyName, System.Guid value) => throw null; + public void WriteString(string propertyName, System.ReadOnlySpan utf8Value) => throw null; + public void WriteString(string propertyName, System.ReadOnlySpan value) => throw null; + public void WriteString(string propertyName, string value) => throw null; + public void WriteString(string propertyName, System.Text.Json.JsonEncodedText value) => throw null; + public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.DateTime value) => throw null; + public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.DateTimeOffset value) => throw null; + public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.Guid value) => throw null; + public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.ReadOnlySpan utf8Value) => throw null; + public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.ReadOnlySpan value) => throw null; + public void WriteString(System.Text.Json.JsonEncodedText propertyName, string value) => throw null; + public void WriteString(System.Text.Json.JsonEncodedText propertyName, System.Text.Json.JsonEncodedText value) => throw null; + public void WriteStringValue(System.DateTime value) => throw null; + public void WriteStringValue(System.DateTimeOffset value) => throw null; + public void WriteStringValue(System.Guid value) => throw null; + public void WriteStringValue(System.ReadOnlySpan utf8Value) => throw null; + public void WriteStringValue(System.ReadOnlySpan value) => throw null; + public void WriteStringValue(string value) => throw null; + public void WriteStringValue(System.Text.Json.JsonEncodedText value) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs index 327a4efb7aa..6baaa659f38 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Text @@ -9,15 +8,13 @@ namespace System { public class Capture { - internal Capture() => throw null; public int Index { get => throw null; } public int Length { get => throw null; } public override string ToString() => throw null; public string Value { get => throw null; } - public System.ReadOnlySpan ValueSpan { get => throw null; } + public System.ReadOnlySpan ValueSpan { get => throw null; } } - - public class CaptureCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + public class CaptureCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList { void System.Collections.Generic.ICollection.Add(System.Text.RegularExpressions.Capture item) => throw null; int System.Collections.IList.Add(object value) => throw null; @@ -37,39 +34,35 @@ namespace System bool System.Collections.IList.IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public System.Text.RegularExpressions.Capture this[int i] { get => throw null; } - System.Text.RegularExpressions.Capture System.Collections.Generic.IList.this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } + System.Text.RegularExpressions.Capture System.Collections.Generic.IList.this[int index] { get => throw null; set { } } + object System.Collections.IList.this[int index] { get => throw null; set { } } bool System.Collections.Generic.ICollection.Remove(System.Text.RegularExpressions.Capture item) => throw null; void System.Collections.IList.Remove(object value) => throw null; void System.Collections.Generic.IList.RemoveAt(int index) => throw null; void System.Collections.IList.RemoveAt(int index) => throw null; public object SyncRoot { get => throw null; } + public System.Text.RegularExpressions.Capture this[int i] { get => throw null; } } - - public class GeneratedRegexAttribute : System.Attribute + public sealed class GeneratedRegexAttribute : System.Attribute { - public string CultureName { get => throw null; } public GeneratedRegexAttribute(string pattern) => throw null; public GeneratedRegexAttribute(string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; + public GeneratedRegexAttribute(string pattern, System.Text.RegularExpressions.RegexOptions options, string cultureName) => throw null; public GeneratedRegexAttribute(string pattern, System.Text.RegularExpressions.RegexOptions options, int matchTimeoutMilliseconds) => throw null; public GeneratedRegexAttribute(string pattern, System.Text.RegularExpressions.RegexOptions options, int matchTimeoutMilliseconds, string cultureName) => throw null; - public GeneratedRegexAttribute(string pattern, System.Text.RegularExpressions.RegexOptions options, string cultureName) => throw null; + public string CultureName { get => throw null; } public int MatchTimeoutMilliseconds { get => throw null; } public System.Text.RegularExpressions.RegexOptions Options { get => throw null; } public string Pattern { get => throw null; } } - public class Group : System.Text.RegularExpressions.Capture { public System.Text.RegularExpressions.CaptureCollection Captures { get => throw null; } - internal Group() => throw null; public string Name { get => throw null; } public bool Success { get => throw null; } public static System.Text.RegularExpressions.Group Synchronized(System.Text.RegularExpressions.Group inner) => throw null; } - - public class GroupCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + public class GroupCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList { void System.Collections.Generic.ICollection.Add(System.Text.RegularExpressions.Group item) => throw null; int System.Collections.IList.Add(object value) => throw null; @@ -91,20 +84,19 @@ namespace System bool System.Collections.IList.IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public System.Text.RegularExpressions.Group this[int groupnum] { get => throw null; } - System.Text.RegularExpressions.Group System.Collections.Generic.IList.this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public System.Text.RegularExpressions.Group this[string groupname] { get => throw null; } + System.Text.RegularExpressions.Group System.Collections.Generic.IList.this[int index] { get => throw null; set { } } + object System.Collections.IList.this[int index] { get => throw null; set { } } public System.Collections.Generic.IEnumerable Keys { get => throw null; } bool System.Collections.Generic.ICollection.Remove(System.Text.RegularExpressions.Group item) => throw null; void System.Collections.IList.Remove(object value) => throw null; void System.Collections.Generic.IList.RemoveAt(int index) => throw null; void System.Collections.IList.RemoveAt(int index) => throw null; public object SyncRoot { get => throw null; } + public System.Text.RegularExpressions.Group this[int groupnum] { get => throw null; } + public System.Text.RegularExpressions.Group this[string groupname] { get => throw null; } public bool TryGetValue(string key, out System.Text.RegularExpressions.Group value) => throw null; public System.Collections.Generic.IEnumerable Values { get => throw null; } } - public class Match : System.Text.RegularExpressions.Group { public static System.Text.RegularExpressions.Match Empty { get => throw null; } @@ -113,8 +105,7 @@ namespace System public virtual string Result(string replacement) => throw null; public static System.Text.RegularExpressions.Match Synchronized(System.Text.RegularExpressions.Match inner) => throw null; } - - public class MatchCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + public class MatchCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList { void System.Collections.Generic.ICollection.Add(System.Text.RegularExpressions.Match item) => throw null; int System.Collections.IList.Add(object value) => throw null; @@ -134,50 +125,49 @@ namespace System bool System.Collections.IList.IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public virtual System.Text.RegularExpressions.Match this[int i] { get => throw null; } - System.Text.RegularExpressions.Match System.Collections.Generic.IList.this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } + System.Text.RegularExpressions.Match System.Collections.Generic.IList.this[int index] { get => throw null; set { } } + object System.Collections.IList.this[int index] { get => throw null; set { } } bool System.Collections.Generic.ICollection.Remove(System.Text.RegularExpressions.Match item) => throw null; void System.Collections.IList.Remove(object value) => throw null; void System.Collections.Generic.IList.RemoveAt(int index) => throw null; void System.Collections.IList.RemoveAt(int index) => throw null; public object SyncRoot { get => throw null; } + public virtual System.Text.RegularExpressions.Match this[int i] { get => throw null; } } - public delegate string MatchEvaluator(System.Text.RegularExpressions.Match match); - public class Regex : System.Runtime.Serialization.ISerializable { - public struct ValueMatchEnumerator - { - public System.Text.RegularExpressions.ValueMatch Current { get => throw null; } - public System.Text.RegularExpressions.Regex.ValueMatchEnumerator GetEnumerator() => throw null; - public bool MoveNext() => throw null; - // Stub generator skipped constructor - } - - - public static int CacheSize { get => throw null; set => throw null; } - protected System.Collections.IDictionary CapNames { get => throw null; set => throw null; } - protected System.Collections.IDictionary Caps { get => throw null; set => throw null; } + public static int CacheSize { get => throw null; set { } } + protected System.Collections.Hashtable capnames; + protected System.Collections.IDictionary CapNames { get => throw null; set { } } + protected System.Collections.Hashtable caps; + protected System.Collections.IDictionary Caps { get => throw null; set { } } + protected int capsize; + protected string[] capslist; public static void CompileToAssembly(System.Text.RegularExpressions.RegexCompilationInfo[] regexinfos, System.Reflection.AssemblyName assemblyname) => throw null; public static void CompileToAssembly(System.Text.RegularExpressions.RegexCompilationInfo[] regexinfos, System.Reflection.AssemblyName assemblyname, System.Reflection.Emit.CustomAttributeBuilder[] attributes) => throw null; public static void CompileToAssembly(System.Text.RegularExpressions.RegexCompilationInfo[] regexinfos, System.Reflection.AssemblyName assemblyname, System.Reflection.Emit.CustomAttributeBuilder[] attributes, string resourceFile) => throw null; - public int Count(System.ReadOnlySpan input) => throw null; - public int Count(System.ReadOnlySpan input, int startat) => throw null; - public static int Count(System.ReadOnlySpan input, string pattern) => throw null; - public static int Count(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; - public static int Count(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; public int Count(string input) => throw null; + public int Count(System.ReadOnlySpan input) => throw null; + public int Count(System.ReadOnlySpan input, int startat) => throw null; public static int Count(string input, string pattern) => throw null; public static int Count(string input, string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; public static int Count(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; - public System.Text.RegularExpressions.Regex.ValueMatchEnumerator EnumerateMatches(System.ReadOnlySpan input) => throw null; - public System.Text.RegularExpressions.Regex.ValueMatchEnumerator EnumerateMatches(System.ReadOnlySpan input, int startat) => throw null; - public static System.Text.RegularExpressions.Regex.ValueMatchEnumerator EnumerateMatches(System.ReadOnlySpan input, string pattern) => throw null; - public static System.Text.RegularExpressions.Regex.ValueMatchEnumerator EnumerateMatches(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; - public static System.Text.RegularExpressions.Regex.ValueMatchEnumerator EnumerateMatches(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; + public static int Count(System.ReadOnlySpan input, string pattern) => throw null; + public static int Count(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; + public static int Count(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; + protected Regex() => throw null; + protected Regex(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public Regex(string pattern) => throw null; + public Regex(string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; + public Regex(string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; + public System.Text.RegularExpressions.Regex.ValueMatchEnumerator EnumerateMatches(System.ReadOnlySpan input) => throw null; + public System.Text.RegularExpressions.Regex.ValueMatchEnumerator EnumerateMatches(System.ReadOnlySpan input, int startat) => throw null; + public static System.Text.RegularExpressions.Regex.ValueMatchEnumerator EnumerateMatches(System.ReadOnlySpan input, string pattern) => throw null; + public static System.Text.RegularExpressions.Regex.ValueMatchEnumerator EnumerateMatches(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; + public static System.Text.RegularExpressions.Regex.ValueMatchEnumerator EnumerateMatches(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; public static string Escape(string str) => throw null; + protected System.Text.RegularExpressions.RegexRunnerFactory factory; public string[] GetGroupNames() => throw null; public int[] GetGroupNumbers() => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -185,11 +175,12 @@ namespace System public int GroupNumberFromName(string name) => throw null; public static System.TimeSpan InfiniteMatchTimeout; protected void InitializeReferences() => throw null; - public bool IsMatch(System.ReadOnlySpan input) => throw null; - public bool IsMatch(System.ReadOnlySpan input, int startat) => throw null; - public static bool IsMatch(System.ReadOnlySpan input, string pattern) => throw null; - public static bool IsMatch(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; - public static bool IsMatch(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; + protected System.TimeSpan internalMatchTimeout; + public bool IsMatch(System.ReadOnlySpan input) => throw null; + public bool IsMatch(System.ReadOnlySpan input, int startat) => throw null; + public static bool IsMatch(System.ReadOnlySpan input, string pattern) => throw null; + public static bool IsMatch(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; + public static bool IsMatch(System.ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; public bool IsMatch(string input) => throw null; public bool IsMatch(string input, int startat) => throw null; public static bool IsMatch(string input, string pattern) => throw null; @@ -201,31 +192,28 @@ namespace System public static System.Text.RegularExpressions.Match Match(string input, string pattern) => throw null; public static System.Text.RegularExpressions.Match Match(string input, string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; public static System.Text.RegularExpressions.Match Match(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; - public System.TimeSpan MatchTimeout { get => throw null; } public System.Text.RegularExpressions.MatchCollection Matches(string input) => throw null; public System.Text.RegularExpressions.MatchCollection Matches(string input, int startat) => throw null; public static System.Text.RegularExpressions.MatchCollection Matches(string input, string pattern) => throw null; public static System.Text.RegularExpressions.MatchCollection Matches(string input, string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; public static System.Text.RegularExpressions.MatchCollection Matches(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; + public System.TimeSpan MatchTimeout { get => throw null; } public System.Text.RegularExpressions.RegexOptions Options { get => throw null; } - protected Regex() => throw null; - protected Regex(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public Regex(string pattern) => throw null; - public Regex(string pattern, System.Text.RegularExpressions.RegexOptions options) => throw null; - public Regex(string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; - public string Replace(string input, System.Text.RegularExpressions.MatchEvaluator evaluator) => throw null; - public string Replace(string input, System.Text.RegularExpressions.MatchEvaluator evaluator, int count) => throw null; - public string Replace(string input, System.Text.RegularExpressions.MatchEvaluator evaluator, int count, int startat) => throw null; + protected string pattern; public string Replace(string input, string replacement) => throw null; - public static string Replace(string input, string pattern, System.Text.RegularExpressions.MatchEvaluator evaluator) => throw null; - public static string Replace(string input, string pattern, System.Text.RegularExpressions.MatchEvaluator evaluator, System.Text.RegularExpressions.RegexOptions options) => throw null; - public static string Replace(string input, string pattern, System.Text.RegularExpressions.MatchEvaluator evaluator, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; public string Replace(string input, string replacement, int count) => throw null; public string Replace(string input, string replacement, int count, int startat) => throw null; public static string Replace(string input, string pattern, string replacement) => throw null; public static string Replace(string input, string pattern, string replacement, System.Text.RegularExpressions.RegexOptions options) => throw null; public static string Replace(string input, string pattern, string replacement, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; + public static string Replace(string input, string pattern, System.Text.RegularExpressions.MatchEvaluator evaluator) => throw null; + public static string Replace(string input, string pattern, System.Text.RegularExpressions.MatchEvaluator evaluator, System.Text.RegularExpressions.RegexOptions options) => throw null; + public static string Replace(string input, string pattern, System.Text.RegularExpressions.MatchEvaluator evaluator, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) => throw null; + public string Replace(string input, System.Text.RegularExpressions.MatchEvaluator evaluator) => throw null; + public string Replace(string input, System.Text.RegularExpressions.MatchEvaluator evaluator, int count) => throw null; + public string Replace(string input, System.Text.RegularExpressions.MatchEvaluator evaluator, int count, int startat) => throw null; public bool RightToLeft { get => throw null; } + protected System.Text.RegularExpressions.RegexOptions roptions; public string[] Split(string input) => throw null; public string[] Split(string input, int count) => throw null; public string[] Split(string input, int count, int startat) => throw null; @@ -235,110 +223,103 @@ namespace System public override string ToString() => throw null; public static string Unescape(string str) => throw null; protected bool UseOptionC() => throw null; - protected internal bool UseOptionR() => throw null; - protected internal static void ValidateMatchTimeout(System.TimeSpan matchTimeout) => throw null; - protected internal System.Collections.Hashtable capnames; - protected internal System.Collections.Hashtable caps; - protected internal int capsize; - protected internal string[] capslist; - protected internal System.Text.RegularExpressions.RegexRunnerFactory factory; - protected internal System.TimeSpan internalMatchTimeout; - protected internal string pattern; - protected internal System.Text.RegularExpressions.RegexOptions roptions; + protected bool UseOptionR() => throw null; + protected static void ValidateMatchTimeout(System.TimeSpan matchTimeout) => throw null; + public struct ValueMatchEnumerator + { + public System.Text.RegularExpressions.ValueMatch Current { get => throw null; } + public System.Text.RegularExpressions.Regex.ValueMatchEnumerator GetEnumerator() => throw null; + public bool MoveNext() => throw null; + } } - public class RegexCompilationInfo { - public bool IsPublic { get => throw null; set => throw null; } - public System.TimeSpan MatchTimeout { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public System.Text.RegularExpressions.RegexOptions Options { get => throw null; set => throw null; } - public string Pattern { get => throw null; set => throw null; } public RegexCompilationInfo(string pattern, System.Text.RegularExpressions.RegexOptions options, string name, string fullnamespace, bool ispublic) => throw null; public RegexCompilationInfo(string pattern, System.Text.RegularExpressions.RegexOptions options, string name, string fullnamespace, bool ispublic, System.TimeSpan matchTimeout) => throw null; + public bool IsPublic { get => throw null; set { } } + public System.TimeSpan MatchTimeout { get => throw null; set { } } + public string Name { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + public System.Text.RegularExpressions.RegexOptions Options { get => throw null; set { } } + public string Pattern { get => throw null; set { } } } - public class RegexMatchTimeoutException : System.TimeoutException, System.Runtime.Serialization.ISerializable { - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public string Input { get => throw null; } - public System.TimeSpan MatchTimeout { get => throw null; } - public string Pattern { get => throw null; } public RegexMatchTimeoutException() => throw null; protected RegexMatchTimeoutException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public RegexMatchTimeoutException(string message) => throw null; public RegexMatchTimeoutException(string message, System.Exception inner) => throw null; public RegexMatchTimeoutException(string regexInput, string regexPattern, System.TimeSpan matchTimeout) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string Input { get => throw null; } + public System.TimeSpan MatchTimeout { get => throw null; } + public string Pattern { get => throw null; } } - [System.Flags] - public enum RegexOptions : int + public enum RegexOptions { - Compiled = 8, - CultureInvariant = 512, - ECMAScript = 256, - ExplicitCapture = 4, - IgnoreCase = 1, - IgnorePatternWhitespace = 32, - Multiline = 2, - NonBacktracking = 1024, None = 0, - RightToLeft = 64, + IgnoreCase = 1, + Multiline = 2, + ExplicitCapture = 4, + Compiled = 8, Singleline = 16, + IgnorePatternWhitespace = 32, + RightToLeft = 64, + ECMAScript = 256, + CultureInvariant = 512, + NonBacktracking = 1024, } - - public enum RegexParseError : int + public enum RegexParseError { - AlternationHasComment = 17, - AlternationHasMalformedCondition = 2, - AlternationHasMalformedReference = 18, - AlternationHasNamedCapture = 16, + Unknown = 0, AlternationHasTooManyConditions = 1, + AlternationHasMalformedCondition = 2, + InvalidUnicodePropertyEscape = 3, + MalformedUnicodePropertyEscape = 4, + UnrecognizedEscape = 5, + UnrecognizedControlCharacter = 6, + MissingControlCharacter = 7, + InsufficientOrInvalidHexDigits = 8, + QuantifierOrCaptureGroupOutOfRange = 9, + UndefinedNamedReference = 10, + UndefinedNumberedReference = 11, + MalformedNamedReference = 12, + UnescapedEndingBackslash = 13, + UnterminatedComment = 14, + InvalidGroupingConstruct = 15, + AlternationHasNamedCapture = 16, + AlternationHasComment = 17, + AlternationHasMalformedReference = 18, AlternationHasUndefinedReference = 19, CaptureGroupNameInvalid = 20, CaptureGroupOfZero = 21, + UnterminatedBracket = 22, ExclusionGroupNotLast = 23, + ReversedCharacterRange = 24, + ShorthandClassInCharacterRange = 25, InsufficientClosingParentheses = 26, - InsufficientOpeningParentheses = 30, - InsufficientOrInvalidHexDigits = 8, - InvalidGroupingConstruct = 15, - InvalidUnicodePropertyEscape = 3, - MalformedNamedReference = 12, - MalformedUnicodePropertyEscape = 4, - MissingControlCharacter = 7, + ReversedQuantifierRange = 27, NestedQuantifiersNotParenthesized = 28, QuantifierAfterNothing = 29, - QuantifierOrCaptureGroupOutOfRange = 9, - ReversedCharacterRange = 24, - ReversedQuantifierRange = 27, - ShorthandClassInCharacterRange = 25, - UndefinedNamedReference = 10, - UndefinedNumberedReference = 11, - UnescapedEndingBackslash = 13, - Unknown = 0, - UnrecognizedControlCharacter = 6, - UnrecognizedEscape = 5, + InsufficientOpeningParentheses = 30, UnrecognizedUnicodeProperty = 31, - UnterminatedBracket = 22, - UnterminatedComment = 14, } - - public class RegexParseException : System.ArgumentException + public sealed class RegexParseException : System.ArgumentException { public System.Text.RegularExpressions.RegexParseError Error { get => throw null; } public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public int Offset { get => throw null; } } - public abstract class RegexRunner { protected void Capture(int capnum, int start, int end) => throw null; - protected static bool CharInClass(System.Char ch, string charClass) => throw null; - protected static bool CharInSet(System.Char ch, string set, string category) => throw null; + protected static bool CharInClass(char ch, string charClass) => throw null; + protected static bool CharInSet(char ch, string set, string category) => throw null; protected void CheckTimeout() => throw null; protected void Crawl(int i) => throw null; protected int Crawlpos() => throw null; + protected RegexRunner() => throw null; protected void DoubleCrawl() => throw null; protected void DoubleStack() => throw null; protected void DoubleTrack() => throw null; @@ -352,41 +333,36 @@ namespace System protected int MatchIndex(int cap) => throw null; protected int MatchLength(int cap) => throw null; protected int Popcrawl() => throw null; - protected internal RegexRunner() => throw null; - protected internal virtual void Scan(System.ReadOnlySpan text) => throw null; - protected internal System.Text.RegularExpressions.Match Scan(System.Text.RegularExpressions.Regex regex, string text, int textbeg, int textend, int textstart, int prevlen, bool quick) => throw null; - protected internal System.Text.RegularExpressions.Match Scan(System.Text.RegularExpressions.Regex regex, string text, int textbeg, int textend, int textstart, int prevlen, bool quick, System.TimeSpan timeout) => throw null; + protected int[] runcrawl; + protected int runcrawlpos; + protected System.Text.RegularExpressions.Match runmatch; + protected System.Text.RegularExpressions.Regex runregex; + protected int[] runstack; + protected int runstackpos; + protected string runtext; + protected int runtextbeg; + protected int runtextend; + protected int runtextpos; + protected int runtextstart; + protected int[] runtrack; + protected int runtrackcount; + protected int runtrackpos; + protected System.Text.RegularExpressions.Match Scan(System.Text.RegularExpressions.Regex regex, string text, int textbeg, int textend, int textstart, int prevlen, bool quick) => throw null; + protected System.Text.RegularExpressions.Match Scan(System.Text.RegularExpressions.Regex regex, string text, int textbeg, int textend, int textstart, int prevlen, bool quick, System.TimeSpan timeout) => throw null; + protected virtual void Scan(System.ReadOnlySpan text) => throw null; protected void TransferCapture(int capnum, int uncapnum, int start, int end) => throw null; protected void Uncapture() => throw null; - protected internal int[] runcrawl; - protected internal int runcrawlpos; - protected internal System.Text.RegularExpressions.Match runmatch; - protected internal System.Text.RegularExpressions.Regex runregex; - protected internal int[] runstack; - protected internal int runstackpos; - protected internal string runtext; - protected internal int runtextbeg; - protected internal int runtextend; - protected internal int runtextpos; - protected internal int runtextstart; - protected internal int[] runtrack; - protected internal int runtrackcount; - protected internal int runtrackpos; } - public abstract class RegexRunnerFactory { - protected internal abstract System.Text.RegularExpressions.RegexRunner CreateInstance(); + protected abstract System.Text.RegularExpressions.RegexRunner CreateInstance(); protected RegexRunnerFactory() => throw null; } - public struct ValueMatch { public int Index { get => throw null; } public int Length { get => throw null; } - // Stub generator skipped constructor } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Channels.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Channels.cs index f898283d56e..7e84ccae2ef 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Channels.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Channels.cs @@ -1,96 +1,85 @@ // This file contains auto-generated code. // Generated from `System.Threading.Channels, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Threading { namespace Channels { - public enum BoundedChannelFullMode : int + public enum BoundedChannelFullMode { + Wait = 0, DropNewest = 1, DropOldest = 2, DropWrite = 3, - Wait = 0, } - - public class BoundedChannelOptions : System.Threading.Channels.ChannelOptions + public sealed class BoundedChannelOptions : System.Threading.Channels.ChannelOptions { + public int Capacity { get => throw null; set { } } public BoundedChannelOptions(int capacity) => throw null; - public int Capacity { get => throw null; set => throw null; } - public System.Threading.Channels.BoundedChannelFullMode FullMode { get => throw null; set => throw null; } + public System.Threading.Channels.BoundedChannelFullMode FullMode { get => throw null; set { } } } - public static class Channel { + public static System.Threading.Channels.Channel CreateBounded(int capacity) => throw null; public static System.Threading.Channels.Channel CreateBounded(System.Threading.Channels.BoundedChannelOptions options) => throw null; public static System.Threading.Channels.Channel CreateBounded(System.Threading.Channels.BoundedChannelOptions options, System.Action itemDropped) => throw null; - public static System.Threading.Channels.Channel CreateBounded(int capacity) => throw null; public static System.Threading.Channels.Channel CreateUnbounded() => throw null; public static System.Threading.Channels.Channel CreateUnbounded(System.Threading.Channels.UnboundedChannelOptions options) => throw null; } - - public abstract class Channel - { - protected Channel() => throw null; - public System.Threading.Channels.ChannelReader Reader { get => throw null; set => throw null; } - public System.Threading.Channels.ChannelWriter Writer { get => throw null; set => throw null; } - public static implicit operator System.Threading.Channels.ChannelReader(System.Threading.Channels.Channel channel) => throw null; - public static implicit operator System.Threading.Channels.ChannelWriter(System.Threading.Channels.Channel channel) => throw null; - } - public abstract class Channel : System.Threading.Channels.Channel { protected Channel() => throw null; } - + public abstract class Channel + { + protected Channel() => throw null; + public static implicit operator System.Threading.Channels.ChannelReader(System.Threading.Channels.Channel channel) => throw null; + public static implicit operator System.Threading.Channels.ChannelWriter(System.Threading.Channels.Channel channel) => throw null; + public System.Threading.Channels.ChannelReader Reader { get => throw null; set { } } + public System.Threading.Channels.ChannelWriter Writer { get => throw null; set { } } + } public class ChannelClosedException : System.InvalidOperationException { public ChannelClosedException() => throw null; public ChannelClosedException(System.Exception innerException) => throw null; - protected ChannelClosedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public ChannelClosedException(string message) => throw null; public ChannelClosedException(string message, System.Exception innerException) => throw null; + protected ChannelClosedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - public abstract class ChannelOptions { - public bool AllowSynchronousContinuations { get => throw null; set => throw null; } + public bool AllowSynchronousContinuations { get => throw null; set { } } protected ChannelOptions() => throw null; - public bool SingleReader { get => throw null; set => throw null; } - public bool SingleWriter { get => throw null; set => throw null; } + public bool SingleReader { get => throw null; set { } } + public bool SingleWriter { get => throw null; set { } } } - public abstract class ChannelReader { public virtual bool CanCount { get => throw null; } public virtual bool CanPeek { get => throw null; } - protected ChannelReader() => throw null; public virtual System.Threading.Tasks.Task Completion { get => throw null; } public virtual int Count { get => throw null; } + protected ChannelReader() => throw null; public virtual System.Collections.Generic.IAsyncEnumerable ReadAllAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.ValueTask ReadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual bool TryPeek(out T item) => throw null; public abstract bool TryRead(out T item); public abstract System.Threading.Tasks.ValueTask WaitToReadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - public abstract class ChannelWriter { - protected ChannelWriter() => throw null; public void Complete(System.Exception error = default(System.Exception)) => throw null; + protected ChannelWriter() => throw null; public virtual bool TryComplete(System.Exception error = default(System.Exception)) => throw null; public abstract bool TryWrite(T item); public abstract System.Threading.Tasks.ValueTask WaitToWriteAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public virtual System.Threading.Tasks.ValueTask WriteAsync(T item, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - public class UnboundedChannelOptions : System.Threading.Channels.ChannelOptions + public sealed class UnboundedChannelOptions : System.Threading.Channels.ChannelOptions { public UnboundedChannelOptions() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Overlapped.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Overlapped.cs index 59532065c20..603125a28c8 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Overlapped.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Overlapped.cs @@ -1,59 +1,51 @@ // This file contains auto-generated code. // Generated from `System.Threading.Overlapped, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Threading { - unsafe public delegate void IOCompletionCallback(System.UInt32 errorCode, System.UInt32 numBytes, System.Threading.NativeOverlapped* pOVERLAP); - + public unsafe delegate void IOCompletionCallback(uint errorCode, uint numBytes, System.Threading.NativeOverlapped* pOVERLAP); public struct NativeOverlapped { - public System.IntPtr EventHandle; - public System.IntPtr InternalHigh; - public System.IntPtr InternalLow; - // Stub generator skipped constructor + public nint EventHandle; + public nint InternalHigh; + public nint InternalLow; public int OffsetHigh; public int OffsetLow; } - public class Overlapped { - public System.IAsyncResult AsyncResult { get => throw null; set => throw null; } - public int EventHandle { get => throw null; set => throw null; } - public System.IntPtr EventHandleIntPtr { get => throw null; set => throw null; } - unsafe public static void Free(System.Threading.NativeOverlapped* nativeOverlappedPtr) => throw null; - public int OffsetHigh { get => throw null; set => throw null; } - public int OffsetLow { get => throw null; set => throw null; } + public System.IAsyncResult AsyncResult { get => throw null; set { } } public Overlapped() => throw null; - public Overlapped(int offsetLo, int offsetHi, System.IntPtr hEvent, System.IAsyncResult ar) => throw null; public Overlapped(int offsetLo, int offsetHi, int hEvent, System.IAsyncResult ar) => throw null; - unsafe public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb) => throw null; - unsafe public System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb, object userData) => throw null; - unsafe public static System.Threading.Overlapped Unpack(System.Threading.NativeOverlapped* nativeOverlappedPtr) => throw null; - unsafe public System.Threading.NativeOverlapped* UnsafePack(System.Threading.IOCompletionCallback iocb) => throw null; - unsafe public System.Threading.NativeOverlapped* UnsafePack(System.Threading.IOCompletionCallback iocb, object userData) => throw null; + public Overlapped(int offsetLo, int offsetHi, nint hEvent, System.IAsyncResult ar) => throw null; + public int EventHandle { get => throw null; set { } } + public nint EventHandleIntPtr { get => throw null; set { } } + public static unsafe void Free(System.Threading.NativeOverlapped* nativeOverlappedPtr) => throw null; + public int OffsetHigh { get => throw null; set { } } + public int OffsetLow { get => throw null; set { } } + public unsafe System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb) => throw null; + public unsafe System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb, object userData) => throw null; + public static unsafe System.Threading.Overlapped Unpack(System.Threading.NativeOverlapped* nativeOverlappedPtr) => throw null; + public unsafe System.Threading.NativeOverlapped* UnsafePack(System.Threading.IOCompletionCallback iocb) => throw null; + public unsafe System.Threading.NativeOverlapped* UnsafePack(System.Threading.IOCompletionCallback iocb, object userData) => throw null; } - - public class PreAllocatedOverlapped : System.IDisposable + public sealed class PreAllocatedOverlapped : System.IDisposable { - public void Dispose() => throw null; public PreAllocatedOverlapped(System.Threading.IOCompletionCallback callback, object state, object pinData) => throw null; + public void Dispose() => throw null; public static System.Threading.PreAllocatedOverlapped UnsafeCreate(System.Threading.IOCompletionCallback callback, object state, object pinData) => throw null; - // ERR: Stub generator didn't handle member: ~PreAllocatedOverlapped } - - public class ThreadPoolBoundHandle : System.IDisposable + public sealed class ThreadPoolBoundHandle : System.IDisposable { - unsafe public System.Threading.NativeOverlapped* AllocateNativeOverlapped(System.Threading.IOCompletionCallback callback, object state, object pinData) => throw null; - unsafe public System.Threading.NativeOverlapped* AllocateNativeOverlapped(System.Threading.PreAllocatedOverlapped preAllocated) => throw null; + public unsafe System.Threading.NativeOverlapped* AllocateNativeOverlapped(System.Threading.IOCompletionCallback callback, object state, object pinData) => throw null; + public unsafe System.Threading.NativeOverlapped* AllocateNativeOverlapped(System.Threading.PreAllocatedOverlapped preAllocated) => throw null; public static System.Threading.ThreadPoolBoundHandle BindHandle(System.Runtime.InteropServices.SafeHandle handle) => throw null; public void Dispose() => throw null; - unsafe public void FreeNativeOverlapped(System.Threading.NativeOverlapped* overlapped) => throw null; - unsafe public static object GetNativeOverlappedState(System.Threading.NativeOverlapped* overlapped) => throw null; + public unsafe void FreeNativeOverlapped(System.Threading.NativeOverlapped* overlapped) => throw null; + public static unsafe object GetNativeOverlappedState(System.Threading.NativeOverlapped* overlapped) => throw null; public System.Runtime.InteropServices.SafeHandle Handle { get => throw null; } - unsafe public System.Threading.NativeOverlapped* UnsafeAllocateNativeOverlapped(System.Threading.IOCompletionCallback callback, object state, object pinData) => throw null; + public unsafe System.Threading.NativeOverlapped* UnsafeAllocateNativeOverlapped(System.Threading.IOCompletionCallback callback, object state, object pinData) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs index 83cf3572c14..36636e13569 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Threading.Tasks.Dataflow, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Threading @@ -9,29 +8,28 @@ namespace System { namespace Dataflow { - public class ActionBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.ITargetBlock + public sealed class ActionBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.ITargetBlock { + public void Complete() => throw null; + public System.Threading.Tasks.Task Completion { get => throw null; } public ActionBlock(System.Action action) => throw null; public ActionBlock(System.Action action, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) => throw null; public ActionBlock(System.Func action) => throw null; public ActionBlock(System.Func action, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) => throw null; - public void Complete() => throw null; - public System.Threading.Tasks.Task Completion { get => throw null; } void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; public int InputCount { get => throw null; } System.Threading.Tasks.Dataflow.DataflowMessageStatus System.Threading.Tasks.Dataflow.ITargetBlock.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, TInput messageValue, System.Threading.Tasks.Dataflow.ISourceBlock source, bool consumeToAccept) => throw null; public bool Post(TInput item) => throw null; public override string ToString() => throw null; } - - public class BatchBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock + public sealed class BatchBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock { - public BatchBlock(int batchSize) => throw null; - public BatchBlock(int batchSize, System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions dataflowBlockOptions) => throw null; public int BatchSize { get => throw null; } public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } T[] System.Threading.Tasks.Dataflow.ISourceBlock.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target, out bool messageConsumed) => throw null; + public BatchBlock(int batchSize) => throw null; + public BatchBlock(int batchSize, System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions dataflowBlockOptions) => throw null; void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; System.Threading.Tasks.Dataflow.DataflowMessageStatus System.Threading.Tasks.Dataflow.ITargetBlock.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, T messageValue, System.Threading.Tasks.Dataflow.ISourceBlock source, bool consumeToAccept) => throw null; @@ -43,15 +41,33 @@ namespace System public bool TryReceive(System.Predicate filter, out T[] item) => throw null; public bool TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - - public class BatchedJoinBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Collections.Generic.IList, System.Collections.Generic.IList>>, System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList, System.Collections.Generic.IList>> + public sealed class BatchedJoinBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Collections.Generic.IList>>, System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList>> { public int BatchSize { get => throw null; } + public void Complete() => throw null; + public System.Threading.Tasks.Task Completion { get => throw null; } + System.Tuple, System.Collections.Generic.IList> System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList>>.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock, System.Collections.Generic.IList>> target, out bool messageConsumed) => throw null; public BatchedJoinBlock(int batchSize) => throw null; public BatchedJoinBlock(int batchSize, System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions dataflowBlockOptions) => throw null; + void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; + public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock, System.Collections.Generic.IList>> target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; + public int OutputCount { get => throw null; } + void System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList>>.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock, System.Collections.Generic.IList>> target) => throw null; + bool System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList>>.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock, System.Collections.Generic.IList>> target) => throw null; + public System.Threading.Tasks.Dataflow.ITargetBlock Target1 { get => throw null; } + public System.Threading.Tasks.Dataflow.ITargetBlock Target2 { get => throw null; } + public override string ToString() => throw null; + public bool TryReceive(System.Predicate, System.Collections.Generic.IList>> filter, out System.Tuple, System.Collections.Generic.IList> item) => throw null; + public bool TryReceiveAll(out System.Collections.Generic.IList, System.Collections.Generic.IList>> items) => throw null; + } + public sealed class BatchedJoinBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Collections.Generic.IList, System.Collections.Generic.IList>>, System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList, System.Collections.Generic.IList>> + { + public int BatchSize { get => throw null; } public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } System.Tuple, System.Collections.Generic.IList, System.Collections.Generic.IList> System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList, System.Collections.Generic.IList>>.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock, System.Collections.Generic.IList, System.Collections.Generic.IList>> target, out bool messageConsumed) => throw null; + public BatchedJoinBlock(int batchSize) => throw null; + public BatchedJoinBlock(int batchSize, System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions dataflowBlockOptions) => throw null; void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock, System.Collections.Generic.IList, System.Collections.Generic.IList>> target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; public int OutputCount { get => throw null; } @@ -64,34 +80,13 @@ namespace System public bool TryReceive(System.Predicate, System.Collections.Generic.IList, System.Collections.Generic.IList>> filter, out System.Tuple, System.Collections.Generic.IList, System.Collections.Generic.IList> item) => throw null; public bool TryReceiveAll(out System.Collections.Generic.IList, System.Collections.Generic.IList, System.Collections.Generic.IList>> items) => throw null; } - - public class BatchedJoinBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Collections.Generic.IList>>, System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList>> + public sealed class BroadcastBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock { - public int BatchSize { get => throw null; } - public BatchedJoinBlock(int batchSize) => throw null; - public BatchedJoinBlock(int batchSize, System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions dataflowBlockOptions) => throw null; - public void Complete() => throw null; - public System.Threading.Tasks.Task Completion { get => throw null; } - System.Tuple, System.Collections.Generic.IList> System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList>>.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock, System.Collections.Generic.IList>> target, out bool messageConsumed) => throw null; - void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; - public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock, System.Collections.Generic.IList>> target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; - public int OutputCount { get => throw null; } - void System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList>>.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock, System.Collections.Generic.IList>> target) => throw null; - bool System.Threading.Tasks.Dataflow.ISourceBlock, System.Collections.Generic.IList>>.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock, System.Collections.Generic.IList>> target) => throw null; - public System.Threading.Tasks.Dataflow.ITargetBlock Target1 { get => throw null; } - public System.Threading.Tasks.Dataflow.ITargetBlock Target2 { get => throw null; } - public override string ToString() => throw null; - public bool TryReceive(System.Predicate, System.Collections.Generic.IList>> filter, out System.Tuple, System.Collections.Generic.IList> item) => throw null; - public bool TryReceiveAll(out System.Collections.Generic.IList, System.Collections.Generic.IList>> items) => throw null; - } - - public class BroadcastBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock - { - public BroadcastBlock(System.Func cloningFunction) => throw null; - public BroadcastBlock(System.Func cloningFunction, System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions) => throw null; public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } T System.Threading.Tasks.Dataflow.ISourceBlock.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target, out bool messageConsumed) => throw null; + public BroadcastBlock(System.Func cloningFunction) => throw null; + public BroadcastBlock(System.Func cloningFunction, System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions) => throw null; void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; System.Threading.Tasks.Dataflow.DataflowMessageStatus System.Threading.Tasks.Dataflow.ITargetBlock.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, T messageValue, System.Threading.Tasks.Dataflow.ISourceBlock source, bool consumeToAccept) => throw null; @@ -101,15 +96,14 @@ namespace System public bool TryReceive(System.Predicate filter, out T item) => throw null; bool System.Threading.Tasks.Dataflow.IReceivableSourceBlock.TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - - public class BufferBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock + public sealed class BufferBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock { - public BufferBlock() => throw null; - public BufferBlock(System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions) => throw null; public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } T System.Threading.Tasks.Dataflow.ISourceBlock.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target, out bool messageConsumed) => throw null; public int Count { get => throw null; } + public BufferBlock() => throw null; + public BufferBlock(System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions) => throw null; void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; System.Threading.Tasks.Dataflow.DataflowMessageStatus System.Threading.Tasks.Dataflow.ITargetBlock.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, T messageValue, System.Threading.Tasks.Dataflow.ISourceBlock source, bool consumeToAccept) => throw null; @@ -119,19 +113,18 @@ namespace System public bool TryReceive(System.Predicate filter, out T item) => throw null; public bool TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - public static class DataflowBlock { public static System.IObservable AsObservable(this System.Threading.Tasks.Dataflow.ISourceBlock source) => throw null; public static System.IObserver AsObserver(this System.Threading.Tasks.Dataflow.ITargetBlock target) => throw null; - public static System.Threading.Tasks.Task Choose(System.Threading.Tasks.Dataflow.ISourceBlock source1, System.Action action1, System.Threading.Tasks.Dataflow.ISourceBlock source2, System.Action action2, System.Threading.Tasks.Dataflow.ISourceBlock source3, System.Action action3) => throw null; - public static System.Threading.Tasks.Task Choose(System.Threading.Tasks.Dataflow.ISourceBlock source1, System.Action action1, System.Threading.Tasks.Dataflow.ISourceBlock source2, System.Action action2, System.Threading.Tasks.Dataflow.ISourceBlock source3, System.Action action3, System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions) => throw null; public static System.Threading.Tasks.Task Choose(System.Threading.Tasks.Dataflow.ISourceBlock source1, System.Action action1, System.Threading.Tasks.Dataflow.ISourceBlock source2, System.Action action2) => throw null; public static System.Threading.Tasks.Task Choose(System.Threading.Tasks.Dataflow.ISourceBlock source1, System.Action action1, System.Threading.Tasks.Dataflow.ISourceBlock source2, System.Action action2, System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions) => throw null; + public static System.Threading.Tasks.Task Choose(System.Threading.Tasks.Dataflow.ISourceBlock source1, System.Action action1, System.Threading.Tasks.Dataflow.ISourceBlock source2, System.Action action2, System.Threading.Tasks.Dataflow.ISourceBlock source3, System.Action action3) => throw null; + public static System.Threading.Tasks.Task Choose(System.Threading.Tasks.Dataflow.ISourceBlock source1, System.Action action1, System.Threading.Tasks.Dataflow.ISourceBlock source2, System.Action action2, System.Threading.Tasks.Dataflow.ISourceBlock source3, System.Action action3, System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions) => throw null; public static System.Threading.Tasks.Dataflow.IPropagatorBlock Encapsulate(System.Threading.Tasks.Dataflow.ITargetBlock target, System.Threading.Tasks.Dataflow.ISourceBlock source) => throw null; public static System.IDisposable LinkTo(this System.Threading.Tasks.Dataflow.ISourceBlock source, System.Threading.Tasks.Dataflow.ITargetBlock target) => throw null; - public static System.IDisposable LinkTo(this System.Threading.Tasks.Dataflow.ISourceBlock source, System.Threading.Tasks.Dataflow.ITargetBlock target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions, System.Predicate predicate) => throw null; public static System.IDisposable LinkTo(this System.Threading.Tasks.Dataflow.ISourceBlock source, System.Threading.Tasks.Dataflow.ITargetBlock target, System.Predicate predicate) => throw null; + public static System.IDisposable LinkTo(this System.Threading.Tasks.Dataflow.ISourceBlock source, System.Threading.Tasks.Dataflow.ITargetBlock target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions, System.Predicate predicate) => throw null; public static System.Threading.Tasks.Dataflow.ITargetBlock NullTarget() => throw null; public static System.Threading.Tasks.Task OutputAvailableAsync(this System.Threading.Tasks.Dataflow.ISourceBlock source) => throw null; public static System.Threading.Tasks.Task OutputAvailableAsync(this System.Threading.Tasks.Dataflow.ISourceBlock source, System.Threading.CancellationToken cancellationToken) => throw null; @@ -149,80 +142,69 @@ namespace System public static System.Threading.Tasks.Task SendAsync(this System.Threading.Tasks.Dataflow.ITargetBlock target, TInput item, System.Threading.CancellationToken cancellationToken) => throw null; public static bool TryReceive(this System.Threading.Tasks.Dataflow.IReceivableSourceBlock source, out TOutput item) => throw null; } - public class DataflowBlockOptions { - public int BoundedCapacity { get => throw null; set => throw null; } - public System.Threading.CancellationToken CancellationToken { get => throw null; set => throw null; } + public int BoundedCapacity { get => throw null; set { } } + public System.Threading.CancellationToken CancellationToken { get => throw null; set { } } public DataflowBlockOptions() => throw null; - public bool EnsureOrdered { get => throw null; set => throw null; } - public int MaxMessagesPerTask { get => throw null; set => throw null; } - public string NameFormat { get => throw null; set => throw null; } - public System.Threading.Tasks.TaskScheduler TaskScheduler { get => throw null; set => throw null; } - public const int Unbounded = default; + public bool EnsureOrdered { get => throw null; set { } } + public int MaxMessagesPerTask { get => throw null; set { } } + public string NameFormat { get => throw null; set { } } + public System.Threading.Tasks.TaskScheduler TaskScheduler { get => throw null; set { } } + public static int Unbounded; } - public class DataflowLinkOptions { - public bool Append { get => throw null; set => throw null; } + public bool Append { get => throw null; set { } } public DataflowLinkOptions() => throw null; - public int MaxMessages { get => throw null; set => throw null; } - public bool PropagateCompletion { get => throw null; set => throw null; } + public int MaxMessages { get => throw null; set { } } + public bool PropagateCompletion { get => throw null; set { } } } - public struct DataflowMessageHeader : System.IEquatable { - public static bool operator !=(System.Threading.Tasks.Dataflow.DataflowMessageHeader left, System.Threading.Tasks.Dataflow.DataflowMessageHeader right) => throw null; - public static bool operator ==(System.Threading.Tasks.Dataflow.DataflowMessageHeader left, System.Threading.Tasks.Dataflow.DataflowMessageHeader right) => throw null; - // Stub generator skipped constructor - public DataflowMessageHeader(System.Int64 id) => throw null; - public bool Equals(System.Threading.Tasks.Dataflow.DataflowMessageHeader other) => throw null; + public DataflowMessageHeader(long id) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Threading.Tasks.Dataflow.DataflowMessageHeader other) => throw null; public override int GetHashCode() => throw null; - public System.Int64 Id { get => throw null; } + public long Id { get => throw null; } public bool IsValid { get => throw null; } + public static bool operator ==(System.Threading.Tasks.Dataflow.DataflowMessageHeader left, System.Threading.Tasks.Dataflow.DataflowMessageHeader right) => throw null; + public static bool operator !=(System.Threading.Tasks.Dataflow.DataflowMessageHeader left, System.Threading.Tasks.Dataflow.DataflowMessageHeader right) => throw null; } - - public enum DataflowMessageStatus : int + public enum DataflowMessageStatus { Accepted = 0, Declined = 1, - DecliningPermanently = 4, - NotAvailable = 3, Postponed = 2, + NotAvailable = 3, + DecliningPermanently = 4, } - public class ExecutionDataflowBlockOptions : System.Threading.Tasks.Dataflow.DataflowBlockOptions { public ExecutionDataflowBlockOptions() => throw null; - public int MaxDegreeOfParallelism { get => throw null; set => throw null; } - public bool SingleProducerConstrained { get => throw null; set => throw null; } + public int MaxDegreeOfParallelism { get => throw null; set { } } + public bool SingleProducerConstrained { get => throw null; set { } } } - public class GroupingDataflowBlockOptions : System.Threading.Tasks.Dataflow.DataflowBlockOptions { - public bool Greedy { get => throw null; set => throw null; } public GroupingDataflowBlockOptions() => throw null; - public System.Int64 MaxNumberOfGroups { get => throw null; set => throw null; } + public bool Greedy { get => throw null; set { } } + public long MaxNumberOfGroups { get => throw null; set { } } } - public interface IDataflowBlock { void Complete(); System.Threading.Tasks.Task Completion { get; } void Fault(System.Exception exception); } - public interface IPropagatorBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock { } - public interface IReceivableSourceBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.ISourceBlock { bool TryReceive(System.Predicate filter, out TOutput item); bool TryReceiveAll(out System.Collections.Generic.IList items); } - public interface ISourceBlock : System.Threading.Tasks.Dataflow.IDataflowBlock { TOutput ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target, out bool messageConsumed); @@ -230,20 +212,36 @@ namespace System void ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target); bool ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target); } - public interface ITargetBlock : System.Threading.Tasks.Dataflow.IDataflowBlock { System.Threading.Tasks.Dataflow.DataflowMessageStatus OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, TInput messageValue, System.Threading.Tasks.Dataflow.ISourceBlock source, bool consumeToAccept); } - - public class JoinBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock>, System.Threading.Tasks.Dataflow.ISourceBlock> + public sealed class JoinBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock>, System.Threading.Tasks.Dataflow.ISourceBlock> + { + public void Complete() => throw null; + public System.Threading.Tasks.Task Completion { get => throw null; } + System.Tuple System.Threading.Tasks.Dataflow.ISourceBlock>.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock> target, out bool messageConsumed) => throw null; + public JoinBlock() => throw null; + public JoinBlock(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions dataflowBlockOptions) => throw null; + void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; + public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock> target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; + public int OutputCount { get => throw null; } + void System.Threading.Tasks.Dataflow.ISourceBlock>.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock> target) => throw null; + bool System.Threading.Tasks.Dataflow.ISourceBlock>.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock> target) => throw null; + public System.Threading.Tasks.Dataflow.ITargetBlock Target1 { get => throw null; } + public System.Threading.Tasks.Dataflow.ITargetBlock Target2 { get => throw null; } + public override string ToString() => throw null; + public bool TryReceive(System.Predicate> filter, out System.Tuple item) => throw null; + public bool TryReceiveAll(out System.Collections.Generic.IList> items) => throw null; + } + public sealed class JoinBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock>, System.Threading.Tasks.Dataflow.ISourceBlock> { public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } System.Tuple System.Threading.Tasks.Dataflow.ISourceBlock>.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock> target, out bool messageConsumed) => throw null; - void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; public JoinBlock() => throw null; public JoinBlock(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions dataflowBlockOptions) => throw null; + void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock> target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; public int OutputCount { get => throw null; } void System.Threading.Tasks.Dataflow.ISourceBlock>.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock> target) => throw null; @@ -255,31 +253,15 @@ namespace System public bool TryReceive(System.Predicate> filter, out System.Tuple item) => throw null; public bool TryReceiveAll(out System.Collections.Generic.IList> items) => throw null; } - - public class JoinBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock>, System.Threading.Tasks.Dataflow.ISourceBlock> - { - public void Complete() => throw null; - public System.Threading.Tasks.Task Completion { get => throw null; } - System.Tuple System.Threading.Tasks.Dataflow.ISourceBlock>.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock> target, out bool messageConsumed) => throw null; - void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; - public JoinBlock() => throw null; - public JoinBlock(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions dataflowBlockOptions) => throw null; - public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock> target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; - public int OutputCount { get => throw null; } - void System.Threading.Tasks.Dataflow.ISourceBlock>.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock> target) => throw null; - bool System.Threading.Tasks.Dataflow.ISourceBlock>.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock> target) => throw null; - public System.Threading.Tasks.Dataflow.ITargetBlock Target1 { get => throw null; } - public System.Threading.Tasks.Dataflow.ITargetBlock Target2 { get => throw null; } - public override string ToString() => throw null; - public bool TryReceive(System.Predicate> filter, out System.Tuple item) => throw null; - public bool TryReceiveAll(out System.Collections.Generic.IList> items) => throw null; - } - - public class TransformBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock + public sealed class TransformBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock { public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } TOutput System.Threading.Tasks.Dataflow.ISourceBlock.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target, out bool messageConsumed) => throw null; + public TransformBlock(System.Func> transform) => throw null; + public TransformBlock(System.Func> transform, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) => throw null; + public TransformBlock(System.Func transform) => throw null; + public TransformBlock(System.Func transform, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) => throw null; void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; public int InputCount { get => throw null; } public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; @@ -288,42 +270,38 @@ namespace System void System.Threading.Tasks.Dataflow.ISourceBlock.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target) => throw null; bool System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target) => throw null; public override string ToString() => throw null; - public TransformBlock(System.Func transform) => throw null; - public TransformBlock(System.Func transform, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) => throw null; - public TransformBlock(System.Func> transform) => throw null; - public TransformBlock(System.Func> transform, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) => throw null; public bool TryReceive(System.Predicate filter, out TOutput item) => throw null; public bool TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - - public class TransformManyBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock + public sealed class TransformManyBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock { public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } TOutput System.Threading.Tasks.Dataflow.ISourceBlock.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target, out bool messageConsumed) => throw null; - void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; - public int InputCount { get => throw null; } - public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; - System.Threading.Tasks.Dataflow.DataflowMessageStatus System.Threading.Tasks.Dataflow.ITargetBlock.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, TInput messageValue, System.Threading.Tasks.Dataflow.ISourceBlock source, bool consumeToAccept) => throw null; - public int OutputCount { get => throw null; } - void System.Threading.Tasks.Dataflow.ISourceBlock.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target) => throw null; - bool System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target) => throw null; - public override string ToString() => throw null; - public TransformManyBlock(System.Func> transform) => throw null; - public TransformManyBlock(System.Func> transform, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) => throw null; public TransformManyBlock(System.Func> transform) => throw null; public TransformManyBlock(System.Func> transform, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) => throw null; public TransformManyBlock(System.Func>> transform) => throw null; public TransformManyBlock(System.Func>> transform, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) => throw null; + public TransformManyBlock(System.Func> transform) => throw null; + public TransformManyBlock(System.Func> transform, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) => throw null; + void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; + public int InputCount { get => throw null; } + public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; + System.Threading.Tasks.Dataflow.DataflowMessageStatus System.Threading.Tasks.Dataflow.ITargetBlock.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, TInput messageValue, System.Threading.Tasks.Dataflow.ISourceBlock source, bool consumeToAccept) => throw null; + public int OutputCount { get => throw null; } + void System.Threading.Tasks.Dataflow.ISourceBlock.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target) => throw null; + bool System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target) => throw null; + public override string ToString() => throw null; public bool TryReceive(System.Predicate filter, out TOutput item) => throw null; public bool TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - - public class WriteOnceBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock + public sealed class WriteOnceBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock { public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } T System.Threading.Tasks.Dataflow.ISourceBlock.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target, out bool messageConsumed) => throw null; + public WriteOnceBlock(System.Func cloningFunction) => throw null; + public WriteOnceBlock(System.Func cloningFunction, System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions) => throw null; void System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception exception) => throw null; public System.IDisposable LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) => throw null; System.Threading.Tasks.Dataflow.DataflowMessageStatus System.Threading.Tasks.Dataflow.ITargetBlock.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, T messageValue, System.Threading.Tasks.Dataflow.ISourceBlock source, bool consumeToAccept) => throw null; @@ -332,10 +310,7 @@ namespace System public override string ToString() => throw null; public bool TryReceive(System.Predicate filter, out T item) => throw null; bool System.Threading.Tasks.Dataflow.IReceivableSourceBlock.TryReceiveAll(out System.Collections.Generic.IList items) => throw null; - public WriteOnceBlock(System.Func cloningFunction) => throw null; - public WriteOnceBlock(System.Func cloningFunction, System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs new file mode 100644 index 00000000000..bf9b214e18f --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Threading.Tasks.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Parallel.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Parallel.cs index 7d73c62a13f..c5b81a4716a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Parallel.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Parallel.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Threading.Tasks.Parallel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Threading @@ -13,69 +12,64 @@ namespace System public static System.Threading.Tasks.ParallelLoopResult For(int fromInclusive, int toExclusive, System.Action body) => throw null; public static System.Threading.Tasks.ParallelLoopResult For(int fromInclusive, int toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; public static System.Threading.Tasks.ParallelLoopResult For(int fromInclusive, int toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult For(System.Int64 fromInclusive, System.Int64 toExclusive, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult For(System.Int64 fromInclusive, System.Int64 toExclusive, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult For(System.Int64 fromInclusive, System.Int64 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult For(System.Int64 fromInclusive, System.Int64 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult For(long fromInclusive, long toExclusive, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult For(long fromInclusive, long toExclusive, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult For(long fromInclusive, long toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult For(long fromInclusive, long toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; public static System.Threading.Tasks.ParallelLoopResult For(int fromInclusive, int toExclusive, System.Func localInit, System.Func body, System.Action localFinally) => throw null; public static System.Threading.Tasks.ParallelLoopResult For(int fromInclusive, int toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult For(System.Int64 fromInclusive, System.Int64 toExclusive, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult For(System.Int64 fromInclusive, System.Int64 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.OrderablePartitioner source, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.OrderablePartitioner source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.Partitioner source, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.Partitioner source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.OrderablePartitioner source, System.Action body) => throw null; - public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.OrderablePartitioner source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult For(long fromInclusive, long toExclusive, System.Func localInit, System.Func body, System.Action localFinally) => throw null; + public static System.Threading.Tasks.ParallelLoopResult For(long fromInclusive, long toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.OrderablePartitioner source, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.OrderablePartitioner source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.Partitioner source, System.Action body) => throw null; public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.Partitioner source, System.Action body) => throw null; public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.Partitioner source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.Partitioner source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; - public static System.Threading.Tasks.Task ForEachAsync(System.Collections.Generic.IAsyncEnumerable source, System.Threading.CancellationToken cancellationToken, System.Func body) => throw null; - public static System.Threading.Tasks.Task ForEachAsync(System.Collections.Generic.IAsyncEnumerable source, System.Func body) => throw null; - public static System.Threading.Tasks.Task ForEachAsync(System.Collections.Generic.IAsyncEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func body) => throw null; - public static System.Threading.Tasks.Task ForEachAsync(System.Collections.Generic.IEnumerable source, System.Threading.CancellationToken cancellationToken, System.Func body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action body) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.OrderablePartitioner source, System.Func localInit, System.Func body, System.Action localFinally) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.OrderablePartitioner source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.Partitioner source, System.Func localInit, System.Func body, System.Action localFinally) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Concurrent.Partitioner source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Func localInit, System.Func body, System.Action localFinally) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Func localInit, System.Func body, System.Action localFinally) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; + public static System.Threading.Tasks.ParallelLoopResult ForEach(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func localInit, System.Func body, System.Action localFinally) => throw null; public static System.Threading.Tasks.Task ForEachAsync(System.Collections.Generic.IEnumerable source, System.Func body) => throw null; + public static System.Threading.Tasks.Task ForEachAsync(System.Collections.Generic.IEnumerable source, System.Threading.CancellationToken cancellationToken, System.Func body) => throw null; public static System.Threading.Tasks.Task ForEachAsync(System.Collections.Generic.IEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func body) => throw null; - public static void Invoke(System.Threading.Tasks.ParallelOptions parallelOptions, params System.Action[] actions) => throw null; + public static System.Threading.Tasks.Task ForEachAsync(System.Collections.Generic.IAsyncEnumerable source, System.Func body) => throw null; + public static System.Threading.Tasks.Task ForEachAsync(System.Collections.Generic.IAsyncEnumerable source, System.Threading.CancellationToken cancellationToken, System.Func body) => throw null; + public static System.Threading.Tasks.Task ForEachAsync(System.Collections.Generic.IAsyncEnumerable source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Func body) => throw null; public static void Invoke(params System.Action[] actions) => throw null; + public static void Invoke(System.Threading.Tasks.ParallelOptions parallelOptions, params System.Action[] actions) => throw null; } - public struct ParallelLoopResult { public bool IsCompleted { get => throw null; } - public System.Int64? LowestBreakIteration { get => throw null; } - // Stub generator skipped constructor + public long? LowestBreakIteration { get => throw null; } } - public class ParallelLoopState { public void Break() => throw null; public bool IsExceptional { get => throw null; } public bool IsStopped { get => throw null; } - public System.Int64? LowestBreakIteration { get => throw null; } + public long? LowestBreakIteration { get => throw null; } public bool ShouldExitCurrentIteration { get => throw null; } public void Stop() => throw null; } - public class ParallelOptions { - public System.Threading.CancellationToken CancellationToken { get => throw null; set => throw null; } - public int MaxDegreeOfParallelism { get => throw null; set => throw null; } + public System.Threading.CancellationToken CancellationToken { get => throw null; set { } } public ParallelOptions() => throw null; - public System.Threading.Tasks.TaskScheduler TaskScheduler { get => throw null; set => throw null; } + public int MaxDegreeOfParallelism { get => throw null; set { } } + public System.Threading.Tasks.TaskScheduler TaskScheduler { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs new file mode 100644 index 00000000000..099e2670480 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Threading.Tasks, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Thread.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Thread.cs index ee5ec8959b9..0fad3294587 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Thread.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Thread.cs @@ -1,23 +1,19 @@ // This file contains auto-generated code. // Generated from `System.Threading.Thread, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { - public class LocalDataStoreSlot + public sealed class LocalDataStoreSlot { - // ERR: Stub generator didn't handle member: ~LocalDataStoreSlot } - namespace Threading { - public enum ApartmentState : int + public enum ApartmentState { - MTA = 1, STA = 0, + MTA = 1, Unknown = 2, } - - public class CompressedStack : System.Runtime.Serialization.ISerializable + public sealed class CompressedStack : System.Runtime.Serialization.ISerializable { public static System.Threading.CompressedStack Capture() => throw null; public System.Threading.CompressedStack CreateCopy() => throw null; @@ -25,22 +21,24 @@ namespace System public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public static void Run(System.Threading.CompressedStack compressedStack, System.Threading.ContextCallback callback, object state) => throw null; } - public delegate void ParameterizedThreadStart(object obj); - - public class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject + public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject { public void Abort() => throw null; public void Abort(object stateInfo) => throw null; public static System.LocalDataStoreSlot AllocateDataSlot() => throw null; public static System.LocalDataStoreSlot AllocateNamedDataSlot(string name) => throw null; - public System.Threading.ApartmentState ApartmentState { get => throw null; set => throw null; } + public System.Threading.ApartmentState ApartmentState { get => throw null; set { } } public static void BeginCriticalRegion() => throw null; public static void BeginThreadAffinity() => throw null; - public System.Globalization.CultureInfo CurrentCulture { get => throw null; set => throw null; } - public static System.Security.Principal.IPrincipal CurrentPrincipal { get => throw null; set => throw null; } + public Thread(System.Threading.ParameterizedThreadStart start) => throw null; + public Thread(System.Threading.ParameterizedThreadStart start, int maxStackSize) => throw null; + public Thread(System.Threading.ThreadStart start) => throw null; + public Thread(System.Threading.ThreadStart start, int maxStackSize) => throw null; + public System.Globalization.CultureInfo CurrentCulture { get => throw null; set { } } + public static System.Security.Principal.IPrincipal CurrentPrincipal { get => throw null; set { } } public static System.Threading.Thread CurrentThread { get => throw null; } - public System.Globalization.CultureInfo CurrentUICulture { get => throw null; set => throw null; } + public System.Globalization.CultureInfo CurrentUICulture { get => throw null; set { } } public void DisableComObjectEagerCleanup() => throw null; public static void EndCriticalRegion() => throw null; public static void EndThreadAffinity() => throw null; @@ -56,77 +54,68 @@ namespace System public static System.LocalDataStoreSlot GetNamedDataSlot(string name) => throw null; public void Interrupt() => throw null; public bool IsAlive { get => throw null; } - public bool IsBackground { get => throw null; set => throw null; } + public bool IsBackground { get => throw null; set { } } public bool IsThreadPoolThread { get => throw null; } public void Join() => throw null; - public bool Join(System.TimeSpan timeout) => throw null; public bool Join(int millisecondsTimeout) => throw null; + public bool Join(System.TimeSpan timeout) => throw null; public int ManagedThreadId { get => throw null; } public static void MemoryBarrier() => throw null; - public string Name { get => throw null; set => throw null; } - public System.Threading.ThreadPriority Priority { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } + public System.Threading.ThreadPriority Priority { get => throw null; set { } } public static void ResetAbort() => throw null; public void Resume() => throw null; public void SetApartmentState(System.Threading.ApartmentState state) => throw null; public void SetCompressedStack(System.Threading.CompressedStack stack) => throw null; public static void SetData(System.LocalDataStoreSlot slot, object data) => throw null; - public static void Sleep(System.TimeSpan timeout) => throw null; public static void Sleep(int millisecondsTimeout) => throw null; + public static void Sleep(System.TimeSpan timeout) => throw null; public static void SpinWait(int iterations) => throw null; public void Start() => throw null; public void Start(object parameter) => throw null; public void Suspend() => throw null; - public Thread(System.Threading.ParameterizedThreadStart start) => throw null; - public Thread(System.Threading.ParameterizedThreadStart start, int maxStackSize) => throw null; - public Thread(System.Threading.ThreadStart start) => throw null; - public Thread(System.Threading.ThreadStart start, int maxStackSize) => throw null; public System.Threading.ThreadState ThreadState { get => throw null; } public bool TrySetApartmentState(System.Threading.ApartmentState state) => throw null; public void UnsafeStart() => throw null; public void UnsafeStart(object parameter) => throw null; - public static System.IntPtr VolatileRead(ref System.IntPtr address) => throw null; - public static System.UIntPtr VolatileRead(ref System.UIntPtr address) => throw null; - public static System.Byte VolatileRead(ref System.Byte address) => throw null; + public static byte VolatileRead(ref byte address) => throw null; public static double VolatileRead(ref double address) => throw null; - public static float VolatileRead(ref float address) => throw null; + public static short VolatileRead(ref short address) => throw null; public static int VolatileRead(ref int address) => throw null; - public static System.Int64 VolatileRead(ref System.Int64 address) => throw null; + public static long VolatileRead(ref long address) => throw null; + public static nint VolatileRead(ref nint address) => throw null; public static object VolatileRead(ref object address) => throw null; - public static System.SByte VolatileRead(ref System.SByte address) => throw null; - public static System.Int16 VolatileRead(ref System.Int16 address) => throw null; - public static System.UInt32 VolatileRead(ref System.UInt32 address) => throw null; - public static System.UInt64 VolatileRead(ref System.UInt64 address) => throw null; - public static System.UInt16 VolatileRead(ref System.UInt16 address) => throw null; - public static void VolatileWrite(ref System.IntPtr address, System.IntPtr value) => throw null; - public static void VolatileWrite(ref System.UIntPtr address, System.UIntPtr value) => throw null; - public static void VolatileWrite(ref System.Byte address, System.Byte value) => throw null; + public static sbyte VolatileRead(ref sbyte address) => throw null; + public static float VolatileRead(ref float address) => throw null; + public static ushort VolatileRead(ref ushort address) => throw null; + public static uint VolatileRead(ref uint address) => throw null; + public static ulong VolatileRead(ref ulong address) => throw null; + public static nuint VolatileRead(ref nuint address) => throw null; + public static void VolatileWrite(ref byte address, byte value) => throw null; public static void VolatileWrite(ref double address, double value) => throw null; - public static void VolatileWrite(ref float address, float value) => throw null; + public static void VolatileWrite(ref short address, short value) => throw null; public static void VolatileWrite(ref int address, int value) => throw null; - public static void VolatileWrite(ref System.Int64 address, System.Int64 value) => throw null; + public static void VolatileWrite(ref long address, long value) => throw null; + public static void VolatileWrite(ref nint address, nint value) => throw null; public static void VolatileWrite(ref object address, object value) => throw null; - public static void VolatileWrite(ref System.SByte address, System.SByte value) => throw null; - public static void VolatileWrite(ref System.Int16 address, System.Int16 value) => throw null; - public static void VolatileWrite(ref System.UInt32 address, System.UInt32 value) => throw null; - public static void VolatileWrite(ref System.UInt64 address, System.UInt64 value) => throw null; - public static void VolatileWrite(ref System.UInt16 address, System.UInt16 value) => throw null; + public static void VolatileWrite(ref sbyte address, sbyte value) => throw null; + public static void VolatileWrite(ref float address, float value) => throw null; + public static void VolatileWrite(ref ushort address, ushort value) => throw null; + public static void VolatileWrite(ref uint address, uint value) => throw null; + public static void VolatileWrite(ref ulong address, ulong value) => throw null; + public static void VolatileWrite(ref nuint address, nuint value) => throw null; public static bool Yield() => throw null; - // ERR: Stub generator didn't handle member: ~Thread } - - public class ThreadAbortException : System.SystemException + public sealed class ThreadAbortException : System.SystemException { public object ExceptionState { get => throw null; } } - public class ThreadExceptionEventArgs : System.EventArgs { - public System.Exception Exception { get => throw null; } public ThreadExceptionEventArgs(System.Exception t) => throw null; + public System.Exception Exception { get => throw null; } } - public delegate void ThreadExceptionEventHandler(object sender, System.Threading.ThreadExceptionEventArgs e); - public class ThreadInterruptedException : System.SystemException { public ThreadInterruptedException() => throw null; @@ -134,37 +123,32 @@ namespace System public ThreadInterruptedException(string message) => throw null; public ThreadInterruptedException(string message, System.Exception innerException) => throw null; } - - public enum ThreadPriority : int + public enum ThreadPriority { - AboveNormal = 3, - BelowNormal = 1, - Highest = 4, Lowest = 0, + BelowNormal = 1, Normal = 2, + AboveNormal = 3, + Highest = 4, } - public delegate void ThreadStart(); - - public class ThreadStartException : System.SystemException + public sealed class ThreadStartException : System.SystemException { } - [System.Flags] - public enum ThreadState : int + public enum ThreadState { - AbortRequested = 128, - Aborted = 256, - Background = 4, Running = 0, StopRequested = 1, - Stopped = 16, SuspendRequested = 2, - Suspended = 64, + Background = 4, Unstarted = 8, + Stopped = 16, WaitSleepJoin = 32, + Suspended = 64, + AbortRequested = 128, + Aborted = 256, } - public class ThreadStateException : System.SystemException { public ThreadStateException() => throw null; @@ -172,6 +156,5 @@ namespace System public ThreadStateException(string message) => throw null; public ThreadStateException(string message, System.Exception innerException) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.ThreadPool.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.ThreadPool.cs index 0b672acd53e..5f52c581e00 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.ThreadPool.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.ThreadPool.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Threading.ThreadPool, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Threading @@ -9,44 +8,39 @@ namespace System { void Execute(); } - - public class RegisteredWaitHandle : System.MarshalByRefObject + public sealed class RegisteredWaitHandle : System.MarshalByRefObject { public bool Unregister(System.Threading.WaitHandle waitObject) => throw null; } - public static class ThreadPool { - public static bool BindHandle(System.IntPtr osHandle) => throw null; + public static bool BindHandle(nint osHandle) => throw null; public static bool BindHandle(System.Runtime.InteropServices.SafeHandle osHandle) => throw null; - public static System.Int64 CompletedWorkItemCount { get => throw null; } + public static long CompletedWorkItemCount { get => throw null; } public static void GetAvailableThreads(out int workerThreads, out int completionPortThreads) => throw null; public static void GetMaxThreads(out int workerThreads, out int completionPortThreads) => throw null; public static void GetMinThreads(out int workerThreads, out int completionPortThreads) => throw null; - public static System.Int64 PendingWorkItemCount { get => throw null; } + public static long PendingWorkItemCount { get => throw null; } public static bool QueueUserWorkItem(System.Threading.WaitCallback callBack) => throw null; public static bool QueueUserWorkItem(System.Threading.WaitCallback callBack, object state) => throw null; public static bool QueueUserWorkItem(System.Action callBack, TState state, bool preferLocal) => throw null; - public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.TimeSpan timeout, bool executeOnlyOnce) => throw null; public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; - public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.Int64 millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; - public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.UInt32 millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; + public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; + public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.TimeSpan timeout, bool executeOnlyOnce) => throw null; + public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; public static bool SetMaxThreads(int workerThreads, int completionPortThreads) => throw null; public static bool SetMinThreads(int workerThreads, int completionPortThreads) => throw null; public static int ThreadCount { get => throw null; } - unsafe public static bool UnsafeQueueNativeOverlapped(System.Threading.NativeOverlapped* overlapped) => throw null; + public static unsafe bool UnsafeQueueNativeOverlapped(System.Threading.NativeOverlapped* overlapped) => throw null; public static bool UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem callBack, bool preferLocal) => throw null; public static bool UnsafeQueueUserWorkItem(System.Threading.WaitCallback callBack, object state) => throw null; public static bool UnsafeQueueUserWorkItem(System.Action callBack, TState state, bool preferLocal) => throw null; - public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.TimeSpan timeout, bool executeOnlyOnce) => throw null; public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; - public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.Int64 millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; - public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.UInt32 millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; + public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; + public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.TimeSpan timeout, bool executeOnlyOnce) => throw null; + public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; } - public delegate void WaitCallback(object state); - public delegate void WaitOrTimerCallback(object state, bool timedOut); - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs new file mode 100644 index 00000000000..4c227d1b547 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Threading.Timer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.cs index ee58958e493..71281da61b4 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Threading, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Threading @@ -8,8 +7,8 @@ namespace System public class AbandonedMutexException : System.SystemException { public AbandonedMutexException() => throw null; - protected AbandonedMutexException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public AbandonedMutexException(int location, System.Threading.WaitHandle handle) => throw null; + protected AbandonedMutexException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public AbandonedMutexException(string message) => throw null; public AbandonedMutexException(string message, System.Exception inner) => throw null; public AbandonedMutexException(string message, System.Exception inner, int location, System.Threading.WaitHandle handle) => throw null; @@ -17,46 +16,39 @@ namespace System public System.Threading.Mutex Mutex { get => throw null; } public int MutexIndex { get => throw null; } } - - public struct AsyncFlowControl : System.IDisposable, System.IEquatable + public struct AsyncFlowControl : System.IEquatable, System.IDisposable { - public static bool operator !=(System.Threading.AsyncFlowControl a, System.Threading.AsyncFlowControl b) => throw null; - public static bool operator ==(System.Threading.AsyncFlowControl a, System.Threading.AsyncFlowControl b) => throw null; - // Stub generator skipped constructor public void Dispose() => throw null; - public bool Equals(System.Threading.AsyncFlowControl obj) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Threading.AsyncFlowControl obj) => throw null; public override int GetHashCode() => throw null; + public static bool operator ==(System.Threading.AsyncFlowControl a, System.Threading.AsyncFlowControl b) => throw null; + public static bool operator !=(System.Threading.AsyncFlowControl a, System.Threading.AsyncFlowControl b) => throw null; public void Undo() => throw null; } - - public class AsyncLocal + public sealed class AsyncLocal { public AsyncLocal() => throw null; public AsyncLocal(System.Action> valueChangedHandler) => throw null; - public T Value { get => throw null; set => throw null; } + public T Value { get => throw null; set { } } } - public struct AsyncLocalValueChangedArgs { - // Stub generator skipped constructor public T CurrentValue { get => throw null; } public T PreviousValue { get => throw null; } public bool ThreadContextChanged { get => throw null; } } - - public class AutoResetEvent : System.Threading.EventWaitHandle + public sealed class AutoResetEvent : System.Threading.EventWaitHandle { public AutoResetEvent(bool initialState) : base(default(bool), default(System.Threading.EventResetMode)) => throw null; } - public class Barrier : System.IDisposable { - public System.Int64 AddParticipant() => throw null; - public System.Int64 AddParticipants(int participantCount) => throw null; + public long AddParticipant() => throw null; + public long AddParticipants(int participantCount) => throw null; public Barrier(int participantCount) => throw null; public Barrier(int participantCount, System.Action postPhaseAction) => throw null; - public System.Int64 CurrentPhaseNumber { get => throw null; } + public long CurrentPhaseNumber { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public int ParticipantCount { get => throw null; } @@ -64,13 +56,12 @@ namespace System public void RemoveParticipant() => throw null; public void RemoveParticipants(int participantCount) => throw null; public void SignalAndWait() => throw null; + public bool SignalAndWait(int millisecondsTimeout) => throw null; + public bool SignalAndWait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; public void SignalAndWait(System.Threading.CancellationToken cancellationToken) => throw null; public bool SignalAndWait(System.TimeSpan timeout) => throw null; public bool SignalAndWait(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; - public bool SignalAndWait(int millisecondsTimeout) => throw null; - public bool SignalAndWait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; } - public class BarrierPostPhaseException : System.Exception { public BarrierPostPhaseException() => throw null; @@ -79,9 +70,7 @@ namespace System public BarrierPostPhaseException(string message) => throw null; public BarrierPostPhaseException(string message, System.Exception innerException) => throw null; } - public delegate void ContextCallback(object state); - public class CountdownEvent : System.IDisposable { public void AddCount() => throw null; @@ -99,20 +88,18 @@ namespace System public bool TryAddCount() => throw null; public bool TryAddCount(int signalCount) => throw null; public void Wait() => throw null; + public bool Wait(int millisecondsTimeout) => throw null; + public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; public void Wait(System.Threading.CancellationToken cancellationToken) => throw null; public bool Wait(System.TimeSpan timeout) => throw null; public bool Wait(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; - public bool Wait(int millisecondsTimeout) => throw null; - public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.WaitHandle WaitHandle { get => throw null; } } - - public enum EventResetMode : int + public enum EventResetMode { AutoReset = 0, ManualReset = 1, } - public class EventWaitHandle : System.Threading.WaitHandle { public EventWaitHandle(bool initialState, System.Threading.EventResetMode mode) => throw null; @@ -123,8 +110,7 @@ namespace System public bool Set() => throw null; public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle result) => throw null; } - - public class ExecutionContext : System.IDisposable, System.Runtime.Serialization.ISerializable + public sealed class ExecutionContext : System.IDisposable, System.Runtime.Serialization.ISerializable { public static System.Threading.ExecutionContext Capture() => throw null; public System.Threading.ExecutionContext CreateCopy() => throw null; @@ -136,17 +122,15 @@ namespace System public static void Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) => throw null; public static System.Threading.AsyncFlowControl SuppressFlow() => throw null; } - public class HostExecutionContext : System.IDisposable { public virtual System.Threading.HostExecutionContext CreateCopy() => throw null; - public void Dispose() => throw null; - public virtual void Dispose(bool disposing) => throw null; public HostExecutionContext() => throw null; public HostExecutionContext(object state) => throw null; - protected internal object State { get => throw null; set => throw null; } + public void Dispose() => throw null; + public virtual void Dispose(bool disposing) => throw null; + protected object State { get => throw null; set { } } } - public class HostExecutionContextManager { public virtual System.Threading.HostExecutionContext Capture() => throw null; @@ -154,74 +138,69 @@ namespace System public virtual void Revert(object previousState) => throw null; public virtual object SetHostExecutionContext(System.Threading.HostExecutionContext hostExecutionContext) => throw null; } - public static class Interlocked { public static int Add(ref int location1, int value) => throw null; - public static System.Int64 Add(ref System.Int64 location1, System.Int64 value) => throw null; - public static System.UInt32 Add(ref System.UInt32 location1, System.UInt32 value) => throw null; - public static System.UInt64 Add(ref System.UInt64 location1, System.UInt64 value) => throw null; + public static long Add(ref long location1, long value) => throw null; + public static uint Add(ref uint location1, uint value) => throw null; + public static ulong Add(ref ulong location1, ulong value) => throw null; public static int And(ref int location1, int value) => throw null; - public static System.Int64 And(ref System.Int64 location1, System.Int64 value) => throw null; - public static System.UInt32 And(ref System.UInt32 location1, System.UInt32 value) => throw null; - public static System.UInt64 And(ref System.UInt64 location1, System.UInt64 value) => throw null; - public static System.IntPtr CompareExchange(ref System.IntPtr location1, System.IntPtr value, System.IntPtr comparand) => throw null; - public static System.UIntPtr CompareExchange(ref System.UIntPtr location1, System.UIntPtr value, System.UIntPtr comparand) => throw null; + public static long And(ref long location1, long value) => throw null; + public static uint And(ref uint location1, uint value) => throw null; + public static ulong And(ref ulong location1, ulong value) => throw null; public static double CompareExchange(ref double location1, double value, double comparand) => throw null; - public static float CompareExchange(ref float location1, float value, float comparand) => throw null; public static int CompareExchange(ref int location1, int value, int comparand) => throw null; - public static System.Int64 CompareExchange(ref System.Int64 location1, System.Int64 value, System.Int64 comparand) => throw null; + public static long CompareExchange(ref long location1, long value, long comparand) => throw null; + public static nint CompareExchange(ref nint location1, nint value, nint comparand) => throw null; + public static nuint CompareExchange(ref nuint location1, nuint value, nuint comparand) => throw null; public static object CompareExchange(ref object location1, object value, object comparand) => throw null; - public static System.UInt32 CompareExchange(ref System.UInt32 location1, System.UInt32 value, System.UInt32 comparand) => throw null; - public static System.UInt64 CompareExchange(ref System.UInt64 location1, System.UInt64 value, System.UInt64 comparand) => throw null; + public static float CompareExchange(ref float location1, float value, float comparand) => throw null; + public static uint CompareExchange(ref uint location1, uint value, uint comparand) => throw null; + public static ulong CompareExchange(ref ulong location1, ulong value, ulong comparand) => throw null; public static T CompareExchange(ref T location1, T value, T comparand) where T : class => throw null; public static int Decrement(ref int location) => throw null; - public static System.Int64 Decrement(ref System.Int64 location) => throw null; - public static System.UInt32 Decrement(ref System.UInt32 location) => throw null; - public static System.UInt64 Decrement(ref System.UInt64 location) => throw null; - public static System.IntPtr Exchange(ref System.IntPtr location1, System.IntPtr value) => throw null; - public static System.UIntPtr Exchange(ref System.UIntPtr location1, System.UIntPtr value) => throw null; + public static long Decrement(ref long location) => throw null; + public static uint Decrement(ref uint location) => throw null; + public static ulong Decrement(ref ulong location) => throw null; public static double Exchange(ref double location1, double value) => throw null; - public static float Exchange(ref float location1, float value) => throw null; public static int Exchange(ref int location1, int value) => throw null; - public static System.Int64 Exchange(ref System.Int64 location1, System.Int64 value) => throw null; + public static long Exchange(ref long location1, long value) => throw null; + public static nint Exchange(ref nint location1, nint value) => throw null; + public static nuint Exchange(ref nuint location1, nuint value) => throw null; public static object Exchange(ref object location1, object value) => throw null; - public static System.UInt32 Exchange(ref System.UInt32 location1, System.UInt32 value) => throw null; - public static System.UInt64 Exchange(ref System.UInt64 location1, System.UInt64 value) => throw null; + public static float Exchange(ref float location1, float value) => throw null; + public static uint Exchange(ref uint location1, uint value) => throw null; + public static ulong Exchange(ref ulong location1, ulong value) => throw null; public static T Exchange(ref T location1, T value) where T : class => throw null; public static int Increment(ref int location) => throw null; - public static System.Int64 Increment(ref System.Int64 location) => throw null; - public static System.UInt32 Increment(ref System.UInt32 location) => throw null; - public static System.UInt64 Increment(ref System.UInt64 location) => throw null; + public static long Increment(ref long location) => throw null; + public static uint Increment(ref uint location) => throw null; + public static ulong Increment(ref ulong location) => throw null; public static void MemoryBarrier() => throw null; public static void MemoryBarrierProcessWide() => throw null; public static int Or(ref int location1, int value) => throw null; - public static System.Int64 Or(ref System.Int64 location1, System.Int64 value) => throw null; - public static System.UInt32 Or(ref System.UInt32 location1, System.UInt32 value) => throw null; - public static System.UInt64 Or(ref System.UInt64 location1, System.UInt64 value) => throw null; - public static System.Int64 Read(ref System.Int64 location) => throw null; - public static System.UInt64 Read(ref System.UInt64 location) => throw null; + public static long Or(ref long location1, long value) => throw null; + public static uint Or(ref uint location1, uint value) => throw null; + public static ulong Or(ref ulong location1, ulong value) => throw null; + public static long Read(ref long location) => throw null; + public static ulong Read(ref ulong location) => throw null; } - public static class LazyInitializer { public static T EnsureInitialized(ref T target) where T : class => throw null; - public static T EnsureInitialized(ref T target, System.Func valueFactory) where T : class => throw null; public static T EnsureInitialized(ref T target, ref bool initialized, ref object syncLock) => throw null; public static T EnsureInitialized(ref T target, ref bool initialized, ref object syncLock, System.Func valueFactory) => throw null; + public static T EnsureInitialized(ref T target, System.Func valueFactory) where T : class => throw null; public static T EnsureInitialized(ref T target, ref object syncLock, System.Func valueFactory) where T : class => throw null; } - public struct LockCookie : System.IEquatable { - public static bool operator !=(System.Threading.LockCookie a, System.Threading.LockCookie b) => throw null; - public static bool operator ==(System.Threading.LockCookie a, System.Threading.LockCookie b) => throw null; - public bool Equals(System.Threading.LockCookie obj) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Threading.LockCookie obj) => throw null; public override int GetHashCode() => throw null; - // Stub generator skipped constructor + public static bool operator ==(System.Threading.LockCookie a, System.Threading.LockCookie b) => throw null; + public static bool operator !=(System.Threading.LockCookie a, System.Threading.LockCookie b) => throw null; } - public class LockRecursionException : System.Exception { public LockRecursionException() => throw null; @@ -229,61 +208,56 @@ namespace System public LockRecursionException(string message) => throw null; public LockRecursionException(string message, System.Exception innerException) => throw null; } - - public enum LockRecursionPolicy : int + public enum LockRecursionPolicy { NoRecursion = 0, SupportsRecursion = 1, } - - public class ManualResetEvent : System.Threading.EventWaitHandle + public sealed class ManualResetEvent : System.Threading.EventWaitHandle { public ManualResetEvent(bool initialState) : base(default(bool), default(System.Threading.EventResetMode)) => throw null; } - public class ManualResetEventSlim : System.IDisposable { - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public bool IsSet { get => throw null; } public ManualResetEventSlim() => throw null; public ManualResetEventSlim(bool initialState) => throw null; public ManualResetEventSlim(bool initialState, int spinCount) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public bool IsSet { get => throw null; } public void Reset() => throw null; public void Set() => throw null; public int SpinCount { get => throw null; } public void Wait() => throw null; + public bool Wait(int millisecondsTimeout) => throw null; + public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; public void Wait(System.Threading.CancellationToken cancellationToken) => throw null; public bool Wait(System.TimeSpan timeout) => throw null; public bool Wait(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; - public bool Wait(int millisecondsTimeout) => throw null; - public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.WaitHandle WaitHandle { get => throw null; } } - public static class Monitor { public static void Enter(object obj) => throw null; public static void Enter(object obj, ref bool lockTaken) => throw null; public static void Exit(object obj) => throw null; public static bool IsEntered(object obj) => throw null; - public static System.Int64 LockContentionCount { get => throw null; } + public static long LockContentionCount { get => throw null; } public static void Pulse(object obj) => throw null; public static void PulseAll(object obj) => throw null; public static bool TryEnter(object obj) => throw null; - public static bool TryEnter(object obj, System.TimeSpan timeout) => throw null; - public static void TryEnter(object obj, System.TimeSpan timeout, ref bool lockTaken) => throw null; + public static void TryEnter(object obj, ref bool lockTaken) => throw null; public static bool TryEnter(object obj, int millisecondsTimeout) => throw null; public static void TryEnter(object obj, int millisecondsTimeout, ref bool lockTaken) => throw null; - public static void TryEnter(object obj, ref bool lockTaken) => throw null; + public static bool TryEnter(object obj, System.TimeSpan timeout) => throw null; + public static void TryEnter(object obj, System.TimeSpan timeout, ref bool lockTaken) => throw null; public static bool Wait(object obj) => throw null; - public static bool Wait(object obj, System.TimeSpan timeout) => throw null; - public static bool Wait(object obj, System.TimeSpan timeout, bool exitContext) => throw null; public static bool Wait(object obj, int millisecondsTimeout) => throw null; public static bool Wait(object obj, int millisecondsTimeout, bool exitContext) => throw null; + public static bool Wait(object obj, System.TimeSpan timeout) => throw null; + public static bool Wait(object obj, System.TimeSpan timeout, bool exitContext) => throw null; } - - public class Mutex : System.Threading.WaitHandle + public sealed class Mutex : System.Threading.WaitHandle { public Mutex() => throw null; public Mutex(bool initiallyOwned) => throw null; @@ -293,29 +267,29 @@ namespace System public void ReleaseMutex() => throw null; public static bool TryOpenExisting(string name, out System.Threading.Mutex result) => throw null; } - - public class ReaderWriterLock : System.Runtime.ConstrainedExecution.CriticalFinalizerObject + public sealed class ReaderWriterLock : System.Runtime.ConstrainedExecution.CriticalFinalizerObject { - public void AcquireReaderLock(System.TimeSpan timeout) => throw null; public void AcquireReaderLock(int millisecondsTimeout) => throw null; - public void AcquireWriterLock(System.TimeSpan timeout) => throw null; + public void AcquireReaderLock(System.TimeSpan timeout) => throw null; public void AcquireWriterLock(int millisecondsTimeout) => throw null; + public void AcquireWriterLock(System.TimeSpan timeout) => throw null; public bool AnyWritersSince(int seqNum) => throw null; + public ReaderWriterLock() => throw null; public void DowngradeFromWriterLock(ref System.Threading.LockCookie lockCookie) => throw null; public bool IsReaderLockHeld { get => throw null; } public bool IsWriterLockHeld { get => throw null; } - public ReaderWriterLock() => throw null; public System.Threading.LockCookie ReleaseLock() => throw null; public void ReleaseReaderLock() => throw null; public void ReleaseWriterLock() => throw null; public void RestoreLock(ref System.Threading.LockCookie lockCookie) => throw null; - public System.Threading.LockCookie UpgradeToWriterLock(System.TimeSpan timeout) => throw null; public System.Threading.LockCookie UpgradeToWriterLock(int millisecondsTimeout) => throw null; + public System.Threading.LockCookie UpgradeToWriterLock(System.TimeSpan timeout) => throw null; public int WriterSeqNum { get => throw null; } } - public class ReaderWriterLockSlim : System.IDisposable { + public ReaderWriterLockSlim() => throw null; + public ReaderWriterLockSlim(System.Threading.LockRecursionPolicy recursionPolicy) => throw null; public int CurrentReadCount { get => throw null; } public void Dispose() => throw null; public void EnterReadLock() => throw null; @@ -327,34 +301,30 @@ namespace System public bool IsReadLockHeld { get => throw null; } public bool IsUpgradeableReadLockHeld { get => throw null; } public bool IsWriteLockHeld { get => throw null; } - public ReaderWriterLockSlim() => throw null; - public ReaderWriterLockSlim(System.Threading.LockRecursionPolicy recursionPolicy) => throw null; public System.Threading.LockRecursionPolicy RecursionPolicy { get => throw null; } public int RecursiveReadCount { get => throw null; } public int RecursiveUpgradeCount { get => throw null; } public int RecursiveWriteCount { get => throw null; } - public bool TryEnterReadLock(System.TimeSpan timeout) => throw null; public bool TryEnterReadLock(int millisecondsTimeout) => throw null; - public bool TryEnterUpgradeableReadLock(System.TimeSpan timeout) => throw null; + public bool TryEnterReadLock(System.TimeSpan timeout) => throw null; public bool TryEnterUpgradeableReadLock(int millisecondsTimeout) => throw null; - public bool TryEnterWriteLock(System.TimeSpan timeout) => throw null; + public bool TryEnterUpgradeableReadLock(System.TimeSpan timeout) => throw null; public bool TryEnterWriteLock(int millisecondsTimeout) => throw null; + public bool TryEnterWriteLock(System.TimeSpan timeout) => throw null; public int WaitingReadCount { get => throw null; } public int WaitingUpgradeCount { get => throw null; } public int WaitingWriteCount { get => throw null; } } - - public class Semaphore : System.Threading.WaitHandle + public sealed class Semaphore : System.Threading.WaitHandle { - public static System.Threading.Semaphore OpenExisting(string name) => throw null; - public int Release() => throw null; - public int Release(int releaseCount) => throw null; public Semaphore(int initialCount, int maximumCount) => throw null; public Semaphore(int initialCount, int maximumCount, string name) => throw null; public Semaphore(int initialCount, int maximumCount, string name, out bool createdNew) => throw null; + public static System.Threading.Semaphore OpenExisting(string name) => throw null; + public int Release() => throw null; + public int Release(int releaseCount) => throw null; public static bool TryOpenExisting(string name, out System.Threading.Semaphore result) => throw null; } - public class SemaphoreFullException : System.SystemException { public SemaphoreFullException() => throw null; @@ -362,48 +332,43 @@ namespace System public SemaphoreFullException(string message) => throw null; public SemaphoreFullException(string message, System.Exception innerException) => throw null; } - public class SemaphoreSlim : System.IDisposable { public System.Threading.WaitHandle AvailableWaitHandle { get => throw null; } + public SemaphoreSlim(int initialCount) => throw null; + public SemaphoreSlim(int initialCount, int maxCount) => throw null; public int CurrentCount { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public int Release() => throw null; public int Release(int releaseCount) => throw null; - public SemaphoreSlim(int initialCount) => throw null; - public SemaphoreSlim(int initialCount, int maxCount) => throw null; public void Wait() => throw null; + public bool Wait(int millisecondsTimeout) => throw null; + public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; public void Wait(System.Threading.CancellationToken cancellationToken) => throw null; public bool Wait(System.TimeSpan timeout) => throw null; public bool Wait(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; - public bool Wait(int millisecondsTimeout) => throw null; - public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task WaitAsync() => throw null; + public System.Threading.Tasks.Task WaitAsync(int millisecondsTimeout) => throw null; + public System.Threading.Tasks.Task WaitAsync(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task WaitAsync(System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task WaitAsync(System.TimeSpan timeout) => throw null; public System.Threading.Tasks.Task WaitAsync(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task WaitAsync(int millisecondsTimeout) => throw null; - public System.Threading.Tasks.Task WaitAsync(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; } - public delegate void SendOrPostCallback(object state); - public struct SpinLock { + public SpinLock(bool enableThreadOwnerTracking) => throw null; public void Enter(ref bool lockTaken) => throw null; public void Exit() => throw null; public void Exit(bool useMemoryBarrier) => throw null; public bool IsHeld { get => throw null; } public bool IsHeldByCurrentThread { get => throw null; } public bool IsThreadOwnerTrackingEnabled { get => throw null; } - // Stub generator skipped constructor - public SpinLock(bool enableThreadOwnerTracking) => throw null; - public void TryEnter(System.TimeSpan timeout, ref bool lockTaken) => throw null; - public void TryEnter(int millisecondsTimeout, ref bool lockTaken) => throw null; public void TryEnter(ref bool lockTaken) => throw null; + public void TryEnter(int millisecondsTimeout, ref bool lockTaken) => throw null; + public void TryEnter(System.TimeSpan timeout, ref bool lockTaken) => throw null; } - public struct SpinWait { public int Count { get => throw null; } @@ -412,14 +377,13 @@ namespace System public void SpinOnce() => throw null; public void SpinOnce(int sleep1Threshold) => throw null; public static void SpinUntil(System.Func condition) => throw null; - public static bool SpinUntil(System.Func condition, System.TimeSpan timeout) => throw null; public static bool SpinUntil(System.Func condition, int millisecondsTimeout) => throw null; - // Stub generator skipped constructor + public static bool SpinUntil(System.Func condition, System.TimeSpan timeout) => throw null; } - public class SynchronizationContext { public virtual System.Threading.SynchronizationContext CreateCopy() => throw null; + public SynchronizationContext() => throw null; public static System.Threading.SynchronizationContext Current { get => throw null; } public bool IsWaitNotificationRequired() => throw null; public virtual void OperationCompleted() => throw null; @@ -428,11 +392,9 @@ namespace System public virtual void Send(System.Threading.SendOrPostCallback d, object state) => throw null; public static void SetSynchronizationContext(System.Threading.SynchronizationContext syncContext) => throw null; protected void SetWaitNotificationRequired() => throw null; - public SynchronizationContext() => throw null; - public virtual int Wait(System.IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout) => throw null; - protected static int WaitHelper(System.IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout) => throw null; + public virtual int Wait(nint[] waitHandles, bool waitAll, int millisecondsTimeout) => throw null; + protected static int WaitHelper(nint[] waitHandles, bool waitAll, int millisecondsTimeout) => throw null; } - public class SynchronizationLockException : System.SystemException { public SynchronizationLockException() => throw null; @@ -440,54 +402,50 @@ namespace System public SynchronizationLockException(string message) => throw null; public SynchronizationLockException(string message, System.Exception innerException) => throw null; } - public class ThreadLocal : System.IDisposable { + public ThreadLocal() => throw null; + public ThreadLocal(bool trackAllValues) => throw null; + public ThreadLocal(System.Func valueFactory) => throw null; + public ThreadLocal(System.Func valueFactory, bool trackAllValues) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public bool IsValueCreated { get => throw null; } - public ThreadLocal() => throw null; - public ThreadLocal(System.Func valueFactory) => throw null; - public ThreadLocal(System.Func valueFactory, bool trackAllValues) => throw null; - public ThreadLocal(bool trackAllValues) => throw null; public override string ToString() => throw null; - public T Value { get => throw null; set => throw null; } + public T Value { get => throw null; set { } } public System.Collections.Generic.IList Values { get => throw null; } - // ERR: Stub generator didn't handle member: ~ThreadLocal } - public static class Volatile { - public static System.IntPtr Read(ref System.IntPtr location) => throw null; - public static System.UIntPtr Read(ref System.UIntPtr location) => throw null; public static bool Read(ref bool location) => throw null; - public static System.Byte Read(ref System.Byte location) => throw null; + public static byte Read(ref byte location) => throw null; public static double Read(ref double location) => throw null; - public static float Read(ref float location) => throw null; + public static short Read(ref short location) => throw null; public static int Read(ref int location) => throw null; - public static System.Int64 Read(ref System.Int64 location) => throw null; - public static System.SByte Read(ref System.SByte location) => throw null; - public static System.Int16 Read(ref System.Int16 location) => throw null; - public static System.UInt32 Read(ref System.UInt32 location) => throw null; - public static System.UInt64 Read(ref System.UInt64 location) => throw null; - public static System.UInt16 Read(ref System.UInt16 location) => throw null; + public static long Read(ref long location) => throw null; + public static nint Read(ref nint location) => throw null; + public static sbyte Read(ref sbyte location) => throw null; + public static float Read(ref float location) => throw null; + public static ushort Read(ref ushort location) => throw null; + public static uint Read(ref uint location) => throw null; + public static ulong Read(ref ulong location) => throw null; + public static nuint Read(ref nuint location) => throw null; public static T Read(ref T location) where T : class => throw null; - public static void Write(ref System.IntPtr location, System.IntPtr value) => throw null; - public static void Write(ref System.UIntPtr location, System.UIntPtr value) => throw null; public static void Write(ref bool location, bool value) => throw null; - public static void Write(ref System.Byte location, System.Byte value) => throw null; + public static void Write(ref byte location, byte value) => throw null; public static void Write(ref double location, double value) => throw null; - public static void Write(ref float location, float value) => throw null; + public static void Write(ref short location, short value) => throw null; public static void Write(ref int location, int value) => throw null; - public static void Write(ref System.Int64 location, System.Int64 value) => throw null; - public static void Write(ref System.SByte location, System.SByte value) => throw null; - public static void Write(ref System.Int16 location, System.Int16 value) => throw null; - public static void Write(ref System.UInt32 location, System.UInt32 value) => throw null; - public static void Write(ref System.UInt64 location, System.UInt64 value) => throw null; - public static void Write(ref System.UInt16 location, System.UInt16 value) => throw null; + public static void Write(ref long location, long value) => throw null; + public static void Write(ref nint location, nint value) => throw null; + public static void Write(ref sbyte location, sbyte value) => throw null; + public static void Write(ref float location, float value) => throw null; + public static void Write(ref ushort location, ushort value) => throw null; + public static void Write(ref uint location, uint value) => throw null; + public static void Write(ref ulong location, ulong value) => throw null; + public static void Write(ref nuint location, nuint value) => throw null; public static void Write(ref T location, T value) where T : class => throw null; } - public class WaitHandleCannotBeOpenedException : System.ApplicationException { public WaitHandleCannotBeOpenedException() => throw null; @@ -495,6 +453,5 @@ namespace System public WaitHandleCannotBeOpenedException(string message) => throw null; public WaitHandleCannotBeOpenedException(string message, System.Exception innerException) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs index 3ace7f93f48..93c34566210 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs @@ -1,64 +1,54 @@ // This file contains auto-generated code. // Generated from `System.Transactions.Local, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Transactions { - public class CommittableTransaction : System.Transactions.Transaction, System.IAsyncResult + public sealed class CommittableTransaction : System.Transactions.Transaction, System.IAsyncResult { object System.IAsyncResult.AsyncState { get => throw null; } System.Threading.WaitHandle System.IAsyncResult.AsyncWaitHandle { get => throw null; } public System.IAsyncResult BeginCommit(System.AsyncCallback asyncCallback, object asyncState) => throw null; public void Commit() => throw null; + bool System.IAsyncResult.CompletedSynchronously { get => throw null; } public CommittableTransaction() => throw null; public CommittableTransaction(System.TimeSpan timeout) => throw null; public CommittableTransaction(System.Transactions.TransactionOptions options) => throw null; - bool System.IAsyncResult.CompletedSynchronously { get => throw null; } public void EndCommit(System.IAsyncResult asyncResult) => throw null; bool System.IAsyncResult.IsCompleted { get => throw null; } } - - public enum DependentCloneOption : int + public enum DependentCloneOption { BlockCommitUntilComplete = 0, RollbackIfNotComplete = 1, } - - public class DependentTransaction : System.Transactions.Transaction + public sealed class DependentTransaction : System.Transactions.Transaction { public void Complete() => throw null; } - public class Enlistment { public void Done() => throw null; - internal Enlistment() => throw null; } - [System.Flags] - public enum EnlistmentOptions : int + public enum EnlistmentOptions { - EnlistDuringPrepareRequired = 1, None = 0, + EnlistDuringPrepareRequired = 1, } - - public enum EnterpriseServicesInteropOption : int + public enum EnterpriseServicesInteropOption { + None = 0, Automatic = 1, Full = 2, - None = 0, } - public delegate System.Transactions.Transaction HostCurrentTransactionCallback(); - public interface IDtcTransaction { - void Abort(System.IntPtr reason, int retaining, int async); + void Abort(nint reason, int retaining, int async); void Commit(int retaining, int commitType, int reserved); - void GetTransactionInfo(System.IntPtr transactionInformation); + void GetTransactionInfo(nint transactionInformation); } - public interface IEnlistmentNotification { void Commit(System.Transactions.Enlistment enlistment); @@ -66,48 +56,41 @@ namespace System void Prepare(System.Transactions.PreparingEnlistment preparingEnlistment); void Rollback(System.Transactions.Enlistment enlistment); } - public interface IPromotableSinglePhaseNotification : System.Transactions.ITransactionPromoter { void Initialize(); void Rollback(System.Transactions.SinglePhaseEnlistment singlePhaseEnlistment); void SinglePhaseCommit(System.Transactions.SinglePhaseEnlistment singlePhaseEnlistment); } - public interface ISimpleTransactionSuperior : System.Transactions.ITransactionPromoter { void Rollback(); } - public interface ISinglePhaseNotification : System.Transactions.IEnlistmentNotification { void SinglePhaseCommit(System.Transactions.SinglePhaseEnlistment singlePhaseEnlistment); } - - public interface ITransactionPromoter + public enum IsolationLevel { - System.Byte[] Promote(); - } - - public enum IsolationLevel : int - { - Chaos = 5, + Serializable = 0, + RepeatableRead = 1, ReadCommitted = 2, ReadUncommitted = 3, - RepeatableRead = 1, - Serializable = 0, Snapshot = 4, + Chaos = 5, Unspecified = 6, } - + public interface ITransactionPromoter + { + byte[] Promote(); + } public class PreparingEnlistment : System.Transactions.Enlistment { public void ForceRollback() => throw null; public void ForceRollback(System.Exception e) => throw null; public void Prepared() => throw null; - public System.Byte[] RecoveryInformation() => throw null; + public byte[] RecoveryInformation() => throw null; } - public class SinglePhaseEnlistment : System.Transactions.Enlistment { public void Aborted() => throw null; @@ -116,18 +99,14 @@ namespace System public void InDoubt() => throw null; public void InDoubt(System.Exception e) => throw null; } - - public class SubordinateTransaction : System.Transactions.Transaction + public sealed class SubordinateTransaction : System.Transactions.Transaction { public SubordinateTransaction(System.Transactions.IsolationLevel isoLevel, System.Transactions.ISimpleTransactionSuperior superior) => throw null; } - public class Transaction : System.IDisposable, System.Runtime.Serialization.ISerializable { - public static bool operator !=(System.Transactions.Transaction x, System.Transactions.Transaction y) => throw null; - public static bool operator ==(System.Transactions.Transaction x, System.Transactions.Transaction y) => throw null; public System.Transactions.Transaction Clone() => throw null; - public static System.Transactions.Transaction Current { get => throw null; set => throw null; } + public static System.Transactions.Transaction Current { get => throw null; set { } } public System.Transactions.DependentTransaction DependentClone(System.Transactions.DependentCloneOption cloneOption) => throw null; public void Dispose() => throw null; public System.Transactions.Enlistment EnlistDurable(System.Guid resourceManagerIdentifier, System.Transactions.IEnlistmentNotification enlistmentNotification, System.Transactions.EnlistmentOptions enlistmentOptions) => throw null; @@ -139,18 +118,18 @@ namespace System public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Byte[] GetPromotedToken() => throw null; + public byte[] GetPromotedToken() => throw null; public System.Transactions.IsolationLevel IsolationLevel { get => throw null; } + public static bool operator ==(System.Transactions.Transaction x, System.Transactions.Transaction y) => throw null; + public static bool operator !=(System.Transactions.Transaction x, System.Transactions.Transaction y) => throw null; public System.Transactions.Enlistment PromoteAndEnlistDurable(System.Guid resourceManagerIdentifier, System.Transactions.IPromotableSinglePhaseNotification promotableNotification, System.Transactions.ISinglePhaseNotification enlistmentNotification, System.Transactions.EnlistmentOptions enlistmentOptions) => throw null; public System.Guid PromoterType { get => throw null; } public void Rollback() => throw null; public void Rollback(System.Exception e) => throw null; public void SetDistributedTransactionIdentifier(System.Transactions.IPromotableSinglePhaseNotification promotableNotification, System.Guid distributedTransactionIdentifier) => throw null; - internal Transaction() => throw null; - public event System.Transactions.TransactionCompletedEventHandler TransactionCompleted; + public event System.Transactions.TransactionCompletedEventHandler TransactionCompleted { add { } remove { } } public System.Transactions.TransactionInformation TransactionInformation { get => throw null; } } - public class TransactionAbortedException : System.Transactions.TransactionException { public TransactionAbortedException() => throw null; @@ -158,15 +137,12 @@ namespace System public TransactionAbortedException(string message) => throw null; public TransactionAbortedException(string message, System.Exception innerException) => throw null; } - public delegate void TransactionCompletedEventHandler(object sender, System.Transactions.TransactionEventArgs e); - public class TransactionEventArgs : System.EventArgs { - public System.Transactions.Transaction Transaction { get => throw null; } public TransactionEventArgs() => throw null; + public System.Transactions.Transaction Transaction { get => throw null; } } - public class TransactionException : System.SystemException { public TransactionException() => throw null; @@ -174,7 +150,6 @@ namespace System public TransactionException(string message) => throw null; public TransactionException(string message, System.Exception innerException) => throw null; } - public class TransactionInDoubtException : System.Transactions.TransactionException { public TransactionInDoubtException() => throw null; @@ -182,7 +157,6 @@ namespace System public TransactionInDoubtException(string message) => throw null; public TransactionInDoubtException(string message, System.Exception innerException) => throw null; } - public class TransactionInformation { public System.DateTime CreationTime { get => throw null; } @@ -190,30 +164,27 @@ namespace System public string LocalIdentifier { get => throw null; } public System.Transactions.TransactionStatus Status { get => throw null; } } - public static class TransactionInterop { public static System.Transactions.IDtcTransaction GetDtcTransaction(System.Transactions.Transaction transaction) => throw null; - public static System.Byte[] GetExportCookie(System.Transactions.Transaction transaction, System.Byte[] whereabouts) => throw null; + public static byte[] GetExportCookie(System.Transactions.Transaction transaction, byte[] whereabouts) => throw null; public static System.Transactions.Transaction GetTransactionFromDtcTransaction(System.Transactions.IDtcTransaction transactionNative) => throw null; - public static System.Transactions.Transaction GetTransactionFromExportCookie(System.Byte[] cookie) => throw null; - public static System.Transactions.Transaction GetTransactionFromTransmitterPropagationToken(System.Byte[] propagationToken) => throw null; - public static System.Byte[] GetTransmitterPropagationToken(System.Transactions.Transaction transaction) => throw null; - public static System.Byte[] GetWhereabouts() => throw null; + public static System.Transactions.Transaction GetTransactionFromExportCookie(byte[] cookie) => throw null; + public static System.Transactions.Transaction GetTransactionFromTransmitterPropagationToken(byte[] propagationToken) => throw null; + public static byte[] GetTransmitterPropagationToken(System.Transactions.Transaction transaction) => throw null; + public static byte[] GetWhereabouts() => throw null; public static System.Guid PromoterTypeDtc; } - public static class TransactionManager { - public static System.TimeSpan DefaultTimeout { get => throw null; set => throw null; } - public static event System.Transactions.TransactionStartedEventHandler DistributedTransactionStarted; - public static System.Transactions.HostCurrentTransactionCallback HostCurrentCallback { get => throw null; set => throw null; } - public static bool ImplicitDistributedTransactions { get => throw null; set => throw null; } - public static System.TimeSpan MaximumTimeout { get => throw null; set => throw null; } + public static System.TimeSpan DefaultTimeout { get => throw null; set { } } + public static event System.Transactions.TransactionStartedEventHandler DistributedTransactionStarted { add { } remove { } } + public static System.Transactions.HostCurrentTransactionCallback HostCurrentCallback { get => throw null; set { } } + public static bool ImplicitDistributedTransactions { get => throw null; set { } } + public static System.TimeSpan MaximumTimeout { get => throw null; set { } } public static void RecoveryComplete(System.Guid resourceManagerIdentifier) => throw null; - public static System.Transactions.Enlistment Reenlist(System.Guid resourceManagerIdentifier, System.Byte[] recoveryInformation, System.Transactions.IEnlistmentNotification enlistmentNotification) => throw null; + public static System.Transactions.Enlistment Reenlist(System.Guid resourceManagerIdentifier, byte[] recoveryInformation, System.Transactions.IEnlistmentNotification enlistmentNotification) => throw null; } - public class TransactionManagerCommunicationException : System.Transactions.TransactionException { public TransactionManagerCommunicationException() => throw null; @@ -221,19 +192,16 @@ namespace System public TransactionManagerCommunicationException(string message) => throw null; public TransactionManagerCommunicationException(string message, System.Exception innerException) => throw null; } - public struct TransactionOptions : System.IEquatable { - public static bool operator !=(System.Transactions.TransactionOptions x, System.Transactions.TransactionOptions y) => throw null; - public static bool operator ==(System.Transactions.TransactionOptions x, System.Transactions.TransactionOptions y) => throw null; - public bool Equals(System.Transactions.TransactionOptions other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(System.Transactions.TransactionOptions other) => throw null; public override int GetHashCode() => throw null; - public System.Transactions.IsolationLevel IsolationLevel { get => throw null; set => throw null; } - public System.TimeSpan Timeout { get => throw null; set => throw null; } - // Stub generator skipped constructor + public System.Transactions.IsolationLevel IsolationLevel { get => throw null; set { } } + public static bool operator ==(System.Transactions.TransactionOptions x, System.Transactions.TransactionOptions y) => throw null; + public static bool operator !=(System.Transactions.TransactionOptions x, System.Transactions.TransactionOptions y) => throw null; + public System.TimeSpan Timeout { get => throw null; set { } } } - public class TransactionPromotionException : System.Transactions.TransactionException { public TransactionPromotionException() => throw null; @@ -241,11 +209,9 @@ namespace System public TransactionPromotionException(string message) => throw null; public TransactionPromotionException(string message, System.Exception innerException) => throw null; } - - public class TransactionScope : System.IDisposable + public sealed class TransactionScope : System.IDisposable { public void Complete() => throw null; - public void Dispose() => throw null; public TransactionScope() => throw null; public TransactionScope(System.Transactions.Transaction transactionToUse) => throw null; public TransactionScope(System.Transactions.Transaction transactionToUse, System.TimeSpan scopeTimeout) => throw null; @@ -260,30 +226,26 @@ namespace System public TransactionScope(System.Transactions.TransactionScopeOption scopeOption, System.Transactions.TransactionOptions transactionOptions, System.Transactions.EnterpriseServicesInteropOption interopOption) => throw null; public TransactionScope(System.Transactions.TransactionScopeOption scopeOption, System.Transactions.TransactionOptions transactionOptions, System.Transactions.TransactionScopeAsyncFlowOption asyncFlowOption) => throw null; public TransactionScope(System.Transactions.TransactionScopeOption scopeOption, System.Transactions.TransactionScopeAsyncFlowOption asyncFlowOption) => throw null; + public void Dispose() => throw null; } - - public enum TransactionScopeAsyncFlowOption : int + public enum TransactionScopeAsyncFlowOption { - Enabled = 1, Suppress = 0, + Enabled = 1, } - - public enum TransactionScopeOption : int + public enum TransactionScopeOption { Required = 0, RequiresNew = 1, Suppress = 2, } - public delegate void TransactionStartedEventHandler(object sender, System.Transactions.TransactionEventArgs e); - - public enum TransactionStatus : int + public enum TransactionStatus { - Aborted = 2, Active = 0, Committed = 1, + Aborted = 2, InDoubt = 3, } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs new file mode 100644 index 00000000000..2d691f7b48c --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs new file mode 100644 index 00000000000..4e2a700aa41 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.HttpUtility.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.HttpUtility.cs index 6a83230211c..a8d3b61e6dc 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.HttpUtility.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.HttpUtility.cs @@ -1,12 +1,12 @@ // This file contains auto-generated code. // Generated from `System.Web.HttpUtility, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Web { - public class HttpUtility + public sealed class HttpUtility { + public HttpUtility() => throw null; public static string HtmlAttributeEncode(string s) => throw null; public static void HtmlAttributeEncode(string s, System.IO.TextWriter output) => throw null; public static string HtmlDecode(string s) => throw null; @@ -14,31 +14,29 @@ namespace System public static string HtmlEncode(object value) => throw null; public static string HtmlEncode(string s) => throw null; public static void HtmlEncode(string s, System.IO.TextWriter output) => throw null; - public HttpUtility() => throw null; public static string JavaScriptStringEncode(string value) => throw null; public static string JavaScriptStringEncode(string value, bool addDoubleQuotes) => throw null; public static System.Collections.Specialized.NameValueCollection ParseQueryString(string query) => throw null; public static System.Collections.Specialized.NameValueCollection ParseQueryString(string query, System.Text.Encoding encoding) => throw null; - public static string UrlDecode(System.Byte[] bytes, System.Text.Encoding e) => throw null; - public static string UrlDecode(System.Byte[] bytes, int offset, int count, System.Text.Encoding e) => throw null; + public static string UrlDecode(byte[] bytes, int offset, int count, System.Text.Encoding e) => throw null; + public static string UrlDecode(byte[] bytes, System.Text.Encoding e) => throw null; public static string UrlDecode(string str) => throw null; public static string UrlDecode(string str, System.Text.Encoding e) => throw null; - public static System.Byte[] UrlDecodeToBytes(System.Byte[] bytes) => throw null; - public static System.Byte[] UrlDecodeToBytes(System.Byte[] bytes, int offset, int count) => throw null; - public static System.Byte[] UrlDecodeToBytes(string str) => throw null; - public static System.Byte[] UrlDecodeToBytes(string str, System.Text.Encoding e) => throw null; - public static string UrlEncode(System.Byte[] bytes) => throw null; - public static string UrlEncode(System.Byte[] bytes, int offset, int count) => throw null; + public static byte[] UrlDecodeToBytes(byte[] bytes) => throw null; + public static byte[] UrlDecodeToBytes(byte[] bytes, int offset, int count) => throw null; + public static byte[] UrlDecodeToBytes(string str) => throw null; + public static byte[] UrlDecodeToBytes(string str, System.Text.Encoding e) => throw null; + public static string UrlEncode(byte[] bytes) => throw null; + public static string UrlEncode(byte[] bytes, int offset, int count) => throw null; public static string UrlEncode(string str) => throw null; public static string UrlEncode(string str, System.Text.Encoding e) => throw null; - public static System.Byte[] UrlEncodeToBytes(System.Byte[] bytes) => throw null; - public static System.Byte[] UrlEncodeToBytes(System.Byte[] bytes, int offset, int count) => throw null; - public static System.Byte[] UrlEncodeToBytes(string str) => throw null; - public static System.Byte[] UrlEncodeToBytes(string str, System.Text.Encoding e) => throw null; + public static byte[] UrlEncodeToBytes(byte[] bytes) => throw null; + public static byte[] UrlEncodeToBytes(byte[] bytes, int offset, int count) => throw null; + public static byte[] UrlEncodeToBytes(string str) => throw null; + public static byte[] UrlEncodeToBytes(string str, System.Text.Encoding e) => throw null; public static string UrlEncodeUnicode(string str) => throw null; - public static System.Byte[] UrlEncodeUnicodeToBytes(string str) => throw null; + public static byte[] UrlEncodeUnicodeToBytes(string str) => throw null; public static string UrlPathEncode(string str) => throw null; } - } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs new file mode 100644 index 00000000000..fca0c2bf558 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs new file mode 100644 index 00000000000..bef2d1bbe95 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs new file mode 100644 index 00000000000..ab12a2bceca --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs index 6895809f5b6..181ee980c4f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs @@ -1,126 +1,1001 @@ // This file contains auto-generated code. // Generated from `System.Xml.ReaderWriter, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Xml { - public enum ConformanceLevel : int + public enum ConformanceLevel { Auto = 0, - Document = 2, Fragment = 1, + Document = 2, } - - public enum DtdProcessing : int + public enum DtdProcessing { + Prohibit = 0, Ignore = 1, Parse = 2, - Prohibit = 0, } - - public enum EntityHandling : int + public enum EntityHandling { - ExpandCharEntities = 2, ExpandEntities = 1, + ExpandCharEntities = 2, } - - public enum Formatting : int + public enum Formatting { - Indented = 1, None = 0, + Indented = 1, } - public interface IApplicationResourceStreamResolver { System.IO.Stream GetApplicationResourceStream(System.Uri relativeUri); } - public interface IHasXmlNode { System.Xml.XmlNode GetNode(); } - public interface IXmlLineInfo { bool HasLineInfo(); int LineNumber { get; } int LinePosition { get; } } - public interface IXmlNamespaceResolver { System.Collections.Generic.IDictionary GetNamespacesInScope(System.Xml.XmlNamespaceScope scope); string LookupNamespace(string prefix); string LookupPrefix(string namespaceName); } - - public class NameTable : System.Xml.XmlNameTable - { - public override string Add(System.Char[] key, int start, int len) => throw null; - public override string Add(string key) => throw null; - public override string Get(System.Char[] key, int start, int len) => throw null; - public override string Get(string value) => throw null; - public NameTable() => throw null; - } - [System.Flags] - public enum NamespaceHandling : int + public enum NamespaceHandling { Default = 0, OmitDuplicates = 1, } - - public enum NewLineHandling : int + public class NameTable : System.Xml.XmlNameTable { + public override string Add(char[] key, int start, int len) => throw null; + public override string Add(string key) => throw null; + public NameTable() => throw null; + public override string Get(char[] key, int start, int len) => throw null; + public override string Get(string value) => throw null; + } + public enum NewLineHandling + { + Replace = 0, Entitize = 1, None = 2, - Replace = 0, } - - public enum ReadState : int + public enum ReadState { - Closed = 4, - EndOfFile = 3, - Error = 2, Initial = 0, Interactive = 1, + Error = 2, + EndOfFile = 3, + Closed = 4, } - - public enum ValidationType : int + namespace Resolvers { + [System.Flags] + public enum XmlKnownDtds + { + None = 0, + Xhtml10 = 1, + Rss091 = 2, + All = 65535, + } + public class XmlPreloadedResolver : System.Xml.XmlResolver + { + public void Add(System.Uri uri, byte[] value) => throw null; + public void Add(System.Uri uri, byte[] value, int offset, int count) => throw null; + public void Add(System.Uri uri, System.IO.Stream value) => throw null; + public void Add(System.Uri uri, string value) => throw null; + public override System.Net.ICredentials Credentials { set { } } + public XmlPreloadedResolver() => throw null; + public XmlPreloadedResolver(System.Xml.Resolvers.XmlKnownDtds preloadedDtds) => throw null; + public XmlPreloadedResolver(System.Xml.XmlResolver fallbackResolver) => throw null; + public XmlPreloadedResolver(System.Xml.XmlResolver fallbackResolver, System.Xml.Resolvers.XmlKnownDtds preloadedDtds) => throw null; + public XmlPreloadedResolver(System.Xml.XmlResolver fallbackResolver, System.Xml.Resolvers.XmlKnownDtds preloadedDtds, System.Collections.Generic.IEqualityComparer uriComparer) => throw null; + public override object GetEntity(System.Uri absoluteUri, string role, System.Type ofObjectToReturn) => throw null; + public override System.Threading.Tasks.Task GetEntityAsync(System.Uri absoluteUri, string role, System.Type ofObjectToReturn) => throw null; + public System.Collections.Generic.IEnumerable PreloadedUris { get => throw null; } + public void Remove(System.Uri uri) => throw null; + public override System.Uri ResolveUri(System.Uri baseUri, string relativeUri) => throw null; + public override bool SupportsType(System.Uri absoluteUri, System.Type type) => throw null; + } + } + namespace Schema + { + public interface IXmlSchemaInfo + { + bool IsDefault { get; } + bool IsNil { get; } + System.Xml.Schema.XmlSchemaSimpleType MemberType { get; } + System.Xml.Schema.XmlSchemaAttribute SchemaAttribute { get; } + System.Xml.Schema.XmlSchemaElement SchemaElement { get; } + System.Xml.Schema.XmlSchemaType SchemaType { get; } + System.Xml.Schema.XmlSchemaValidity Validity { get; } + } + public class ValidationEventArgs : System.EventArgs + { + public System.Xml.Schema.XmlSchemaException Exception { get => throw null; } + public string Message { get => throw null; } + public System.Xml.Schema.XmlSeverityType Severity { get => throw null; } + } + public delegate void ValidationEventHandler(object sender, System.Xml.Schema.ValidationEventArgs e); + public sealed class XmlAtomicValue : System.Xml.XPath.XPathItem, System.ICloneable + { + public System.Xml.Schema.XmlAtomicValue Clone() => throw null; + object System.ICloneable.Clone() => throw null; + public override bool IsNode { get => throw null; } + public override string ToString() => throw null; + public override object TypedValue { get => throw null; } + public override string Value { get => throw null; } + public override object ValueAs(System.Type type, System.Xml.IXmlNamespaceResolver nsResolver) => throw null; + public override bool ValueAsBoolean { get => throw null; } + public override System.DateTime ValueAsDateTime { get => throw null; } + public override double ValueAsDouble { get => throw null; } + public override int ValueAsInt { get => throw null; } + public override long ValueAsLong { get => throw null; } + public override System.Type ValueType { get => throw null; } + public override System.Xml.Schema.XmlSchemaType XmlType { get => throw null; } + } + public class XmlSchema : System.Xml.Schema.XmlSchemaObject + { + public System.Xml.Schema.XmlSchemaForm AttributeFormDefault { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectTable AttributeGroups { get => throw null; } + public System.Xml.Schema.XmlSchemaObjectTable Attributes { get => throw null; } + public System.Xml.Schema.XmlSchemaDerivationMethod BlockDefault { get => throw null; set { } } + public void Compile(System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; + public void Compile(System.Xml.Schema.ValidationEventHandler validationEventHandler, System.Xml.XmlResolver resolver) => throw null; + public XmlSchema() => throw null; + public System.Xml.Schema.XmlSchemaForm ElementFormDefault { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectTable Elements { get => throw null; } + public System.Xml.Schema.XmlSchemaDerivationMethod FinalDefault { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectTable Groups { get => throw null; } + public string Id { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectCollection Includes { get => throw null; } + public static string InstanceNamespace; + public bool IsCompiled { get => throw null; } + public System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } + public static string Namespace; + public System.Xml.Schema.XmlSchemaObjectTable Notations { get => throw null; } + public static System.Xml.Schema.XmlSchema Read(System.IO.Stream stream, System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; + public static System.Xml.Schema.XmlSchema Read(System.IO.TextReader reader, System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; + public static System.Xml.Schema.XmlSchema Read(System.Xml.XmlReader reader, System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; + public System.Xml.Schema.XmlSchemaObjectTable SchemaTypes { get => throw null; } + public string TargetNamespace { get => throw null; set { } } + public System.Xml.XmlAttribute[] UnhandledAttributes { get => throw null; set { } } + public string Version { get => throw null; set { } } + public void Write(System.IO.Stream stream) => throw null; + public void Write(System.IO.Stream stream, System.Xml.XmlNamespaceManager namespaceManager) => throw null; + public void Write(System.IO.TextWriter writer) => throw null; + public void Write(System.IO.TextWriter writer, System.Xml.XmlNamespaceManager namespaceManager) => throw null; + public void Write(System.Xml.XmlWriter writer) => throw null; + public void Write(System.Xml.XmlWriter writer, System.Xml.XmlNamespaceManager namespaceManager) => throw null; + } + public class XmlSchemaAll : System.Xml.Schema.XmlSchemaGroupBase + { + public XmlSchemaAll() => throw null; + public override System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } + } + public class XmlSchemaAnnotated : System.Xml.Schema.XmlSchemaObject + { + public System.Xml.Schema.XmlSchemaAnnotation Annotation { get => throw null; set { } } + public XmlSchemaAnnotated() => throw null; + public string Id { get => throw null; set { } } + public System.Xml.XmlAttribute[] UnhandledAttributes { get => throw null; set { } } + } + public class XmlSchemaAnnotation : System.Xml.Schema.XmlSchemaObject + { + public XmlSchemaAnnotation() => throw null; + public string Id { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } + public System.Xml.XmlAttribute[] UnhandledAttributes { get => throw null; set { } } + } + public class XmlSchemaAny : System.Xml.Schema.XmlSchemaParticle + { + public XmlSchemaAny() => throw null; + public string Namespace { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaContentProcessing ProcessContents { get => throw null; set { } } + } + public class XmlSchemaAnyAttribute : System.Xml.Schema.XmlSchemaAnnotated + { + public XmlSchemaAnyAttribute() => throw null; + public string Namespace { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaContentProcessing ProcessContents { get => throw null; set { } } + } + public class XmlSchemaAppInfo : System.Xml.Schema.XmlSchemaObject + { + public XmlSchemaAppInfo() => throw null; + public System.Xml.XmlNode[] Markup { get => throw null; set { } } + public string Source { get => throw null; set { } } + } + public class XmlSchemaAttribute : System.Xml.Schema.XmlSchemaAnnotated + { + public System.Xml.Schema.XmlSchemaSimpleType AttributeSchemaType { get => throw null; } + public object AttributeType { get => throw null; } + public XmlSchemaAttribute() => throw null; + public string DefaultValue { get => throw null; set { } } + public string FixedValue { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set { } } + public string Name { get => throw null; set { } } + public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } + public System.Xml.XmlQualifiedName RefName { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaSimpleType SchemaType { get => throw null; set { } } + public System.Xml.XmlQualifiedName SchemaTypeName { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaUse Use { get => throw null; set { } } + } + public class XmlSchemaAttributeGroup : System.Xml.Schema.XmlSchemaAnnotated + { + public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } + public XmlSchemaAttributeGroup() => throw null; + public string Name { get => throw null; set { } } + public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } + public System.Xml.Schema.XmlSchemaAttributeGroup RedefinedAttributeGroup { get => throw null; } + } + public class XmlSchemaAttributeGroupRef : System.Xml.Schema.XmlSchemaAnnotated + { + public XmlSchemaAttributeGroupRef() => throw null; + public System.Xml.XmlQualifiedName RefName { get => throw null; set { } } + } + public class XmlSchemaChoice : System.Xml.Schema.XmlSchemaGroupBase + { + public XmlSchemaChoice() => throw null; + public override System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } + } + public sealed class XmlSchemaCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public System.Xml.Schema.XmlSchema Add(string ns, string uri) => throw null; + public System.Xml.Schema.XmlSchema Add(string ns, System.Xml.XmlReader reader) => throw null; + public System.Xml.Schema.XmlSchema Add(string ns, System.Xml.XmlReader reader, System.Xml.XmlResolver resolver) => throw null; + public System.Xml.Schema.XmlSchema Add(System.Xml.Schema.XmlSchema schema) => throw null; + public System.Xml.Schema.XmlSchema Add(System.Xml.Schema.XmlSchema schema, System.Xml.XmlResolver resolver) => throw null; + public void Add(System.Xml.Schema.XmlSchemaCollection schema) => throw null; + public bool Contains(string ns) => throw null; + public bool Contains(System.Xml.Schema.XmlSchema schema) => throw null; + public void CopyTo(System.Xml.Schema.XmlSchema[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + int System.Collections.ICollection.Count { get => throw null; } + public XmlSchemaCollection() => throw null; + public XmlSchemaCollection(System.Xml.XmlNameTable nametable) => throw null; + public System.Xml.Schema.XmlSchemaCollectionEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + public System.Xml.XmlNameTable NameTable { get => throw null; } + object System.Collections.ICollection.SyncRoot { get => throw null; } + public System.Xml.Schema.XmlSchema this[string ns] { get => throw null; } + public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + } + public sealed class XmlSchemaCollectionEnumerator : System.Collections.IEnumerator + { + public System.Xml.Schema.XmlSchema Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public bool MoveNext() => throw null; + bool System.Collections.IEnumerator.MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + public sealed class XmlSchemaCompilationSettings + { + public XmlSchemaCompilationSettings() => throw null; + public bool EnableUpaCheck { get => throw null; set { } } + } + public class XmlSchemaComplexContent : System.Xml.Schema.XmlSchemaContentModel + { + public override System.Xml.Schema.XmlSchemaContent Content { get => throw null; set { } } + public XmlSchemaComplexContent() => throw null; + public bool IsMixed { get => throw null; set { } } + } + public class XmlSchemaComplexContentExtension : System.Xml.Schema.XmlSchemaContent + { + public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } + public System.Xml.XmlQualifiedName BaseTypeName { get => throw null; set { } } + public XmlSchemaComplexContentExtension() => throw null; + public System.Xml.Schema.XmlSchemaParticle Particle { get => throw null; set { } } + } + public class XmlSchemaComplexContentRestriction : System.Xml.Schema.XmlSchemaContent + { + public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } + public System.Xml.XmlQualifiedName BaseTypeName { get => throw null; set { } } + public XmlSchemaComplexContentRestriction() => throw null; + public System.Xml.Schema.XmlSchemaParticle Particle { get => throw null; set { } } + } + public class XmlSchemaComplexType : System.Xml.Schema.XmlSchemaType + { + public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } + public System.Xml.Schema.XmlSchemaObjectTable AttributeUses { get => throw null; } + public System.Xml.Schema.XmlSchemaAnyAttribute AttributeWildcard { get => throw null; } + public System.Xml.Schema.XmlSchemaDerivationMethod Block { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaDerivationMethod BlockResolved { get => throw null; } + public System.Xml.Schema.XmlSchemaContentModel ContentModel { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaContentType ContentType { get => throw null; } + public System.Xml.Schema.XmlSchemaParticle ContentTypeParticle { get => throw null; } + public XmlSchemaComplexType() => throw null; + public bool IsAbstract { get => throw null; set { } } + public override bool IsMixed { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaParticle Particle { get => throw null; set { } } + } + public abstract class XmlSchemaContent : System.Xml.Schema.XmlSchemaAnnotated + { + protected XmlSchemaContent() => throw null; + } + public abstract class XmlSchemaContentModel : System.Xml.Schema.XmlSchemaAnnotated + { + public abstract System.Xml.Schema.XmlSchemaContent Content { get; set; } + protected XmlSchemaContentModel() => throw null; + } + public enum XmlSchemaContentProcessing + { + None = 0, + Skip = 1, + Lax = 2, + Strict = 3, + } + public enum XmlSchemaContentType + { + TextOnly = 0, + Empty = 1, + ElementOnly = 2, + Mixed = 3, + } + public abstract class XmlSchemaDatatype + { + public virtual object ChangeType(object value, System.Type targetType) => throw null; + public virtual object ChangeType(object value, System.Type targetType, System.Xml.IXmlNamespaceResolver namespaceResolver) => throw null; + public virtual bool IsDerivedFrom(System.Xml.Schema.XmlSchemaDatatype datatype) => throw null; + public abstract object ParseValue(string s, System.Xml.XmlNameTable nameTable, System.Xml.IXmlNamespaceResolver nsmgr); + public abstract System.Xml.XmlTokenizedType TokenizedType { get; } + public virtual System.Xml.Schema.XmlTypeCode TypeCode { get => throw null; } + public abstract System.Type ValueType { get; } + public virtual System.Xml.Schema.XmlSchemaDatatypeVariety Variety { get => throw null; } + } + public enum XmlSchemaDatatypeVariety + { + Atomic = 0, + List = 1, + Union = 2, + } + [System.Flags] + public enum XmlSchemaDerivationMethod + { + Empty = 0, + Substitution = 1, + Extension = 2, + Restriction = 4, + List = 8, + Union = 16, + All = 255, + None = 256, + } + public class XmlSchemaDocumentation : System.Xml.Schema.XmlSchemaObject + { + public XmlSchemaDocumentation() => throw null; + public string Language { get => throw null; set { } } + public System.Xml.XmlNode[] Markup { get => throw null; set { } } + public string Source { get => throw null; set { } } + } + public class XmlSchemaElement : System.Xml.Schema.XmlSchemaParticle + { + public System.Xml.Schema.XmlSchemaDerivationMethod Block { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaDerivationMethod BlockResolved { get => throw null; } + public System.Xml.Schema.XmlSchemaObjectCollection Constraints { get => throw null; } + public XmlSchemaElement() => throw null; + public string DefaultValue { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaType ElementSchemaType { get => throw null; } + public object ElementType { get => throw null; } + public System.Xml.Schema.XmlSchemaDerivationMethod Final { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaDerivationMethod FinalResolved { get => throw null; } + public string FixedValue { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set { } } + public bool IsAbstract { get => throw null; set { } } + public bool IsNillable { get => throw null; set { } } + public string Name { get => throw null; set { } } + public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } + public System.Xml.XmlQualifiedName RefName { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaType SchemaType { get => throw null; set { } } + public System.Xml.XmlQualifiedName SchemaTypeName { get => throw null; set { } } + public System.Xml.XmlQualifiedName SubstitutionGroup { get => throw null; set { } } + } + public class XmlSchemaEnumerationFacet : System.Xml.Schema.XmlSchemaFacet + { + public XmlSchemaEnumerationFacet() => throw null; + } + public class XmlSchemaException : System.SystemException + { + public XmlSchemaException() => throw null; + protected XmlSchemaException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public XmlSchemaException(string message) => throw null; + public XmlSchemaException(string message, System.Exception innerException) => throw null; + public XmlSchemaException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public int LineNumber { get => throw null; } + public int LinePosition { get => throw null; } + public override string Message { get => throw null; } + public System.Xml.Schema.XmlSchemaObject SourceSchemaObject { get => throw null; } + public string SourceUri { get => throw null; } + } + public abstract class XmlSchemaExternal : System.Xml.Schema.XmlSchemaObject + { + protected XmlSchemaExternal() => throw null; + public string Id { get => throw null; set { } } + public System.Xml.Schema.XmlSchema Schema { get => throw null; set { } } + public string SchemaLocation { get => throw null; set { } } + public System.Xml.XmlAttribute[] UnhandledAttributes { get => throw null; set { } } + } + public abstract class XmlSchemaFacet : System.Xml.Schema.XmlSchemaAnnotated + { + protected XmlSchemaFacet() => throw null; + public virtual bool IsFixed { get => throw null; set { } } + public string Value { get => throw null; set { } } + } + public enum XmlSchemaForm + { + None = 0, + Qualified = 1, + Unqualified = 2, + } + public class XmlSchemaFractionDigitsFacet : System.Xml.Schema.XmlSchemaNumericFacet + { + public XmlSchemaFractionDigitsFacet() => throw null; + } + public class XmlSchemaGroup : System.Xml.Schema.XmlSchemaAnnotated + { + public XmlSchemaGroup() => throw null; + public string Name { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaGroupBase Particle { get => throw null; set { } } + public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } + } + public abstract class XmlSchemaGroupBase : System.Xml.Schema.XmlSchemaParticle + { + public abstract System.Xml.Schema.XmlSchemaObjectCollection Items { get; } + } + public class XmlSchemaGroupRef : System.Xml.Schema.XmlSchemaParticle + { + public XmlSchemaGroupRef() => throw null; + public System.Xml.Schema.XmlSchemaGroupBase Particle { get => throw null; } + public System.Xml.XmlQualifiedName RefName { get => throw null; set { } } + } + public class XmlSchemaIdentityConstraint : System.Xml.Schema.XmlSchemaAnnotated + { + public XmlSchemaIdentityConstraint() => throw null; + public System.Xml.Schema.XmlSchemaObjectCollection Fields { get => throw null; } + public string Name { get => throw null; set { } } + public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } + public System.Xml.Schema.XmlSchemaXPath Selector { get => throw null; set { } } + } + public class XmlSchemaImport : System.Xml.Schema.XmlSchemaExternal + { + public System.Xml.Schema.XmlSchemaAnnotation Annotation { get => throw null; set { } } + public XmlSchemaImport() => throw null; + public string Namespace { get => throw null; set { } } + } + public class XmlSchemaInclude : System.Xml.Schema.XmlSchemaExternal + { + public System.Xml.Schema.XmlSchemaAnnotation Annotation { get => throw null; set { } } + public XmlSchemaInclude() => throw null; + } + public sealed class XmlSchemaInference + { + public XmlSchemaInference() => throw null; + public enum InferenceOption + { + Restricted = 0, + Relaxed = 1, + } + public System.Xml.Schema.XmlSchemaSet InferSchema(System.Xml.XmlReader instanceDocument) => throw null; + public System.Xml.Schema.XmlSchemaSet InferSchema(System.Xml.XmlReader instanceDocument, System.Xml.Schema.XmlSchemaSet schemas) => throw null; + public System.Xml.Schema.XmlSchemaInference.InferenceOption Occurrence { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaInference.InferenceOption TypeInference { get => throw null; set { } } + } + public class XmlSchemaInferenceException : System.Xml.Schema.XmlSchemaException + { + public XmlSchemaInferenceException() => throw null; + protected XmlSchemaInferenceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public XmlSchemaInferenceException(string message) => throw null; + public XmlSchemaInferenceException(string message, System.Exception innerException) => throw null; + public XmlSchemaInferenceException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class XmlSchemaInfo : System.Xml.Schema.IXmlSchemaInfo + { + public System.Xml.Schema.XmlSchemaContentType ContentType { get => throw null; set { } } + public XmlSchemaInfo() => throw null; + public bool IsDefault { get => throw null; set { } } + public bool IsNil { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaSimpleType MemberType { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaAttribute SchemaAttribute { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaElement SchemaElement { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaType SchemaType { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaValidity Validity { get => throw null; set { } } + } + public class XmlSchemaKey : System.Xml.Schema.XmlSchemaIdentityConstraint + { + public XmlSchemaKey() => throw null; + } + public class XmlSchemaKeyref : System.Xml.Schema.XmlSchemaIdentityConstraint + { + public XmlSchemaKeyref() => throw null; + public System.Xml.XmlQualifiedName Refer { get => throw null; set { } } + } + public class XmlSchemaLengthFacet : System.Xml.Schema.XmlSchemaNumericFacet + { + public XmlSchemaLengthFacet() => throw null; + } + public class XmlSchemaMaxExclusiveFacet : System.Xml.Schema.XmlSchemaFacet + { + public XmlSchemaMaxExclusiveFacet() => throw null; + } + public class XmlSchemaMaxInclusiveFacet : System.Xml.Schema.XmlSchemaFacet + { + public XmlSchemaMaxInclusiveFacet() => throw null; + } + public class XmlSchemaMaxLengthFacet : System.Xml.Schema.XmlSchemaNumericFacet + { + public XmlSchemaMaxLengthFacet() => throw null; + } + public class XmlSchemaMinExclusiveFacet : System.Xml.Schema.XmlSchemaFacet + { + public XmlSchemaMinExclusiveFacet() => throw null; + } + public class XmlSchemaMinInclusiveFacet : System.Xml.Schema.XmlSchemaFacet + { + public XmlSchemaMinInclusiveFacet() => throw null; + } + public class XmlSchemaMinLengthFacet : System.Xml.Schema.XmlSchemaNumericFacet + { + public XmlSchemaMinLengthFacet() => throw null; + } + public class XmlSchemaNotation : System.Xml.Schema.XmlSchemaAnnotated + { + public XmlSchemaNotation() => throw null; + public string Name { get => throw null; set { } } + public string Public { get => throw null; set { } } + public string System { get => throw null; set { } } + } + public abstract class XmlSchemaNumericFacet : System.Xml.Schema.XmlSchemaFacet + { + protected XmlSchemaNumericFacet() => throw null; + } + public abstract class XmlSchemaObject + { + protected XmlSchemaObject() => throw null; + public int LineNumber { get => throw null; set { } } + public int LinePosition { get => throw null; set { } } + public System.Xml.Serialization.XmlSerializerNamespaces Namespaces { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObject Parent { get => throw null; set { } } + public string SourceUri { get => throw null; set { } } + } + public class XmlSchemaObjectCollection : System.Collections.CollectionBase + { + public int Add(System.Xml.Schema.XmlSchemaObject item) => throw null; + public bool Contains(System.Xml.Schema.XmlSchemaObject item) => throw null; + public void CopyTo(System.Xml.Schema.XmlSchemaObject[] array, int index) => throw null; + public XmlSchemaObjectCollection() => throw null; + public XmlSchemaObjectCollection(System.Xml.Schema.XmlSchemaObject parent) => throw null; + public System.Xml.Schema.XmlSchemaObjectEnumerator GetEnumerator() => throw null; + public int IndexOf(System.Xml.Schema.XmlSchemaObject item) => throw null; + public void Insert(int index, System.Xml.Schema.XmlSchemaObject item) => throw null; + protected override void OnClear() => throw null; + protected override void OnInsert(int index, object item) => throw null; + protected override void OnRemove(int index, object item) => throw null; + protected override void OnSet(int index, object oldValue, object newValue) => throw null; + public void Remove(System.Xml.Schema.XmlSchemaObject item) => throw null; + public virtual System.Xml.Schema.XmlSchemaObject this[int index] { get => throw null; set { } } + } + public class XmlSchemaObjectEnumerator : System.Collections.IEnumerator + { + public System.Xml.Schema.XmlSchemaObject Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public bool MoveNext() => throw null; + bool System.Collections.IEnumerator.MoveNext() => throw null; + public void Reset() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + public class XmlSchemaObjectTable + { + public bool Contains(System.Xml.XmlQualifiedName name) => throw null; + public int Count { get => throw null; } + public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; + public System.Collections.ICollection Names { get => throw null; } + public System.Xml.Schema.XmlSchemaObject this[System.Xml.XmlQualifiedName name] { get => throw null; } + public System.Collections.ICollection Values { get => throw null; } + } + public abstract class XmlSchemaParticle : System.Xml.Schema.XmlSchemaAnnotated + { + protected XmlSchemaParticle() => throw null; + public decimal MaxOccurs { get => throw null; set { } } + public string MaxOccursString { get => throw null; set { } } + public decimal MinOccurs { get => throw null; set { } } + public string MinOccursString { get => throw null; set { } } + } + public class XmlSchemaPatternFacet : System.Xml.Schema.XmlSchemaFacet + { + public XmlSchemaPatternFacet() => throw null; + } + public class XmlSchemaRedefine : System.Xml.Schema.XmlSchemaExternal + { + public System.Xml.Schema.XmlSchemaObjectTable AttributeGroups { get => throw null; } + public XmlSchemaRedefine() => throw null; + public System.Xml.Schema.XmlSchemaObjectTable Groups { get => throw null; } + public System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } + public System.Xml.Schema.XmlSchemaObjectTable SchemaTypes { get => throw null; } + } + public class XmlSchemaSequence : System.Xml.Schema.XmlSchemaGroupBase + { + public XmlSchemaSequence() => throw null; + public override System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } + } + public class XmlSchemaSet + { + public System.Xml.Schema.XmlSchema Add(string targetNamespace, string schemaUri) => throw null; + public System.Xml.Schema.XmlSchema Add(string targetNamespace, System.Xml.XmlReader schemaDocument) => throw null; + public System.Xml.Schema.XmlSchema Add(System.Xml.Schema.XmlSchema schema) => throw null; + public void Add(System.Xml.Schema.XmlSchemaSet schemas) => throw null; + public System.Xml.Schema.XmlSchemaCompilationSettings CompilationSettings { get => throw null; set { } } + public void Compile() => throw null; + public bool Contains(string targetNamespace) => throw null; + public bool Contains(System.Xml.Schema.XmlSchema schema) => throw null; + public void CopyTo(System.Xml.Schema.XmlSchema[] schemas, int index) => throw null; + public int Count { get => throw null; } + public XmlSchemaSet() => throw null; + public XmlSchemaSet(System.Xml.XmlNameTable nameTable) => throw null; + public System.Xml.Schema.XmlSchemaObjectTable GlobalAttributes { get => throw null; } + public System.Xml.Schema.XmlSchemaObjectTable GlobalElements { get => throw null; } + public System.Xml.Schema.XmlSchemaObjectTable GlobalTypes { get => throw null; } + public bool IsCompiled { get => throw null; } + public System.Xml.XmlNameTable NameTable { get => throw null; } + public System.Xml.Schema.XmlSchema Remove(System.Xml.Schema.XmlSchema schema) => throw null; + public bool RemoveRecursive(System.Xml.Schema.XmlSchema schemaToRemove) => throw null; + public System.Xml.Schema.XmlSchema Reprocess(System.Xml.Schema.XmlSchema schema) => throw null; + public System.Collections.ICollection Schemas() => throw null; + public System.Collections.ICollection Schemas(string targetNamespace) => throw null; + public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + public System.Xml.XmlResolver XmlResolver { set { } } + } + public class XmlSchemaSimpleContent : System.Xml.Schema.XmlSchemaContentModel + { + public override System.Xml.Schema.XmlSchemaContent Content { get => throw null; set { } } + public XmlSchemaSimpleContent() => throw null; + } + public class XmlSchemaSimpleContentExtension : System.Xml.Schema.XmlSchemaContent + { + public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } + public System.Xml.XmlQualifiedName BaseTypeName { get => throw null; set { } } + public XmlSchemaSimpleContentExtension() => throw null; + } + public class XmlSchemaSimpleContentRestriction : System.Xml.Schema.XmlSchemaContent + { + public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } + public System.Xml.Schema.XmlSchemaSimpleType BaseType { get => throw null; set { } } + public System.Xml.XmlQualifiedName BaseTypeName { get => throw null; set { } } + public XmlSchemaSimpleContentRestriction() => throw null; + public System.Xml.Schema.XmlSchemaObjectCollection Facets { get => throw null; } + } + public class XmlSchemaSimpleType : System.Xml.Schema.XmlSchemaType + { + public System.Xml.Schema.XmlSchemaSimpleTypeContent Content { get => throw null; set { } } + public XmlSchemaSimpleType() => throw null; + } + public abstract class XmlSchemaSimpleTypeContent : System.Xml.Schema.XmlSchemaAnnotated + { + protected XmlSchemaSimpleTypeContent() => throw null; + } + public class XmlSchemaSimpleTypeList : System.Xml.Schema.XmlSchemaSimpleTypeContent + { + public System.Xml.Schema.XmlSchemaSimpleType BaseItemType { get => throw null; set { } } + public XmlSchemaSimpleTypeList() => throw null; + public System.Xml.Schema.XmlSchemaSimpleType ItemType { get => throw null; set { } } + public System.Xml.XmlQualifiedName ItemTypeName { get => throw null; set { } } + } + public class XmlSchemaSimpleTypeRestriction : System.Xml.Schema.XmlSchemaSimpleTypeContent + { + public System.Xml.Schema.XmlSchemaSimpleType BaseType { get => throw null; set { } } + public System.Xml.XmlQualifiedName BaseTypeName { get => throw null; set { } } + public XmlSchemaSimpleTypeRestriction() => throw null; + public System.Xml.Schema.XmlSchemaObjectCollection Facets { get => throw null; } + } + public class XmlSchemaSimpleTypeUnion : System.Xml.Schema.XmlSchemaSimpleTypeContent + { + public System.Xml.Schema.XmlSchemaSimpleType[] BaseMemberTypes { get => throw null; } + public System.Xml.Schema.XmlSchemaObjectCollection BaseTypes { get => throw null; } + public XmlSchemaSimpleTypeUnion() => throw null; + public System.Xml.XmlQualifiedName[] MemberTypes { get => throw null; set { } } + } + public class XmlSchemaTotalDigitsFacet : System.Xml.Schema.XmlSchemaNumericFacet + { + public XmlSchemaTotalDigitsFacet() => throw null; + } + public class XmlSchemaType : System.Xml.Schema.XmlSchemaAnnotated + { + public object BaseSchemaType { get => throw null; } + public System.Xml.Schema.XmlSchemaType BaseXmlSchemaType { get => throw null; } + public XmlSchemaType() => throw null; + public System.Xml.Schema.XmlSchemaDatatype Datatype { get => throw null; } + public System.Xml.Schema.XmlSchemaDerivationMethod DerivedBy { get => throw null; } + public System.Xml.Schema.XmlSchemaDerivationMethod Final { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaDerivationMethod FinalResolved { get => throw null; } + public static System.Xml.Schema.XmlSchemaComplexType GetBuiltInComplexType(System.Xml.Schema.XmlTypeCode typeCode) => throw null; + public static System.Xml.Schema.XmlSchemaComplexType GetBuiltInComplexType(System.Xml.XmlQualifiedName qualifiedName) => throw null; + public static System.Xml.Schema.XmlSchemaSimpleType GetBuiltInSimpleType(System.Xml.Schema.XmlTypeCode typeCode) => throw null; + public static System.Xml.Schema.XmlSchemaSimpleType GetBuiltInSimpleType(System.Xml.XmlQualifiedName qualifiedName) => throw null; + public static bool IsDerivedFrom(System.Xml.Schema.XmlSchemaType derivedType, System.Xml.Schema.XmlSchemaType baseType, System.Xml.Schema.XmlSchemaDerivationMethod except) => throw null; + public virtual bool IsMixed { get => throw null; set { } } + public string Name { get => throw null; set { } } + public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } + public System.Xml.Schema.XmlTypeCode TypeCode { get => throw null; } + } + public class XmlSchemaUnique : System.Xml.Schema.XmlSchemaIdentityConstraint + { + public XmlSchemaUnique() => throw null; + } + public enum XmlSchemaUse + { + None = 0, + Optional = 1, + Prohibited = 2, + Required = 3, + } + public class XmlSchemaValidationException : System.Xml.Schema.XmlSchemaException + { + public XmlSchemaValidationException() => throw null; + protected XmlSchemaValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public XmlSchemaValidationException(string message) => throw null; + public XmlSchemaValidationException(string message, System.Exception innerException) => throw null; + public XmlSchemaValidationException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected void SetSourceObject(object sourceObject) => throw null; + public object SourceObject { get => throw null; } + } + [System.Flags] + public enum XmlSchemaValidationFlags + { + None = 0, + ProcessInlineSchema = 1, + ProcessSchemaLocation = 2, + ReportValidationWarnings = 4, + ProcessIdentityConstraints = 8, + AllowXmlAttributes = 16, + } + public sealed class XmlSchemaValidator + { + public void AddSchema(System.Xml.Schema.XmlSchema schema) => throw null; + public XmlSchemaValidator(System.Xml.XmlNameTable nameTable, System.Xml.Schema.XmlSchemaSet schemas, System.Xml.IXmlNamespaceResolver namespaceResolver, System.Xml.Schema.XmlSchemaValidationFlags validationFlags) => throw null; + public void EndValidation() => throw null; + public System.Xml.Schema.XmlSchemaAttribute[] GetExpectedAttributes() => throw null; + public System.Xml.Schema.XmlSchemaParticle[] GetExpectedParticles() => throw null; + public void GetUnspecifiedDefaultAttributes(System.Collections.ArrayList defaultAttributes) => throw null; + public void Initialize() => throw null; + public void Initialize(System.Xml.Schema.XmlSchemaObject partialValidationType) => throw null; + public System.Xml.IXmlLineInfo LineInfoProvider { get => throw null; set { } } + public void SkipToEndElement(System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; + public System.Uri SourceUri { get => throw null; set { } } + public object ValidateAttribute(string localName, string namespaceUri, string attributeValue, System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; + public object ValidateAttribute(string localName, string namespaceUri, System.Xml.Schema.XmlValueGetter attributeValue, System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; + public void ValidateElement(string localName, string namespaceUri, System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; + public void ValidateElement(string localName, string namespaceUri, System.Xml.Schema.XmlSchemaInfo schemaInfo, string xsiType, string xsiNil, string xsiSchemaLocation, string xsiNoNamespaceSchemaLocation) => throw null; + public object ValidateEndElement(System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; + public object ValidateEndElement(System.Xml.Schema.XmlSchemaInfo schemaInfo, object typedValue) => throw null; + public void ValidateEndOfAttributes(System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; + public void ValidateText(string elementValue) => throw null; + public void ValidateText(System.Xml.Schema.XmlValueGetter elementValue) => throw null; + public void ValidateWhitespace(string elementValue) => throw null; + public void ValidateWhitespace(System.Xml.Schema.XmlValueGetter elementValue) => throw null; + public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + public object ValidationEventSender { get => throw null; set { } } + public System.Xml.XmlResolver XmlResolver { set { } } + } + public enum XmlSchemaValidity + { + NotKnown = 0, + Valid = 1, + Invalid = 2, + } + public class XmlSchemaWhiteSpaceFacet : System.Xml.Schema.XmlSchemaFacet + { + public XmlSchemaWhiteSpaceFacet() => throw null; + } + public class XmlSchemaXPath : System.Xml.Schema.XmlSchemaAnnotated + { + public XmlSchemaXPath() => throw null; + public string XPath { get => throw null; set { } } + } + public enum XmlSeverityType + { + Error = 0, + Warning = 1, + } + public enum XmlTypeCode + { + None = 0, + Item = 1, + Node = 2, + Document = 3, + Element = 4, + Attribute = 5, + Namespace = 6, + ProcessingInstruction = 7, + Comment = 8, + Text = 9, + AnyAtomicType = 10, + UntypedAtomic = 11, + String = 12, + Boolean = 13, + Decimal = 14, + Float = 15, + Double = 16, + Duration = 17, + DateTime = 18, + Time = 19, + Date = 20, + GYearMonth = 21, + GYear = 22, + GMonthDay = 23, + GDay = 24, + GMonth = 25, + HexBinary = 26, + Base64Binary = 27, + AnyUri = 28, + QName = 29, + Notation = 30, + NormalizedString = 31, + Token = 32, + Language = 33, + NmToken = 34, + Name = 35, + NCName = 36, + Id = 37, + Idref = 38, + Entity = 39, + Integer = 40, + NonPositiveInteger = 41, + NegativeInteger = 42, + Long = 43, + Int = 44, + Short = 45, + Byte = 46, + NonNegativeInteger = 47, + UnsignedLong = 48, + UnsignedInt = 49, + UnsignedShort = 50, + UnsignedByte = 51, + PositiveInteger = 52, + YearMonthDuration = 53, + DayTimeDuration = 54, + } + public delegate object XmlValueGetter(); + } + namespace Serialization + { + public interface IXmlSerializable + { + System.Xml.Schema.XmlSchema GetSchema(); + void ReadXml(System.Xml.XmlReader reader); + void WriteXml(System.Xml.XmlWriter writer); + } + public class XmlAnyAttributeAttribute : System.Attribute + { + public XmlAnyAttributeAttribute() => throw null; + } + public class XmlAnyElementAttribute : System.Attribute + { + public XmlAnyElementAttribute() => throw null; + public XmlAnyElementAttribute(string name) => throw null; + public XmlAnyElementAttribute(string name, string ns) => throw null; + public string Name { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + public int Order { get => throw null; set { } } + } + public class XmlAttributeAttribute : System.Attribute + { + public string AttributeName { get => throw null; set { } } + public XmlAttributeAttribute() => throw null; + public XmlAttributeAttribute(string attributeName) => throw null; + public XmlAttributeAttribute(string attributeName, System.Type type) => throw null; + public XmlAttributeAttribute(System.Type type) => throw null; + public string DataType { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + public System.Type Type { get => throw null; set { } } + } + public class XmlElementAttribute : System.Attribute + { + public XmlElementAttribute() => throw null; + public XmlElementAttribute(string elementName) => throw null; + public XmlElementAttribute(string elementName, System.Type type) => throw null; + public XmlElementAttribute(System.Type type) => throw null; + public string DataType { get => throw null; set { } } + public string ElementName { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set { } } + public bool IsNullable { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + public int Order { get => throw null; set { } } + public System.Type Type { get => throw null; set { } } + } + public class XmlEnumAttribute : System.Attribute + { + public XmlEnumAttribute() => throw null; + public XmlEnumAttribute(string name) => throw null; + public string Name { get => throw null; set { } } + } + public class XmlIgnoreAttribute : System.Attribute + { + public XmlIgnoreAttribute() => throw null; + } + public class XmlNamespaceDeclarationsAttribute : System.Attribute + { + public XmlNamespaceDeclarationsAttribute() => throw null; + } + public class XmlRootAttribute : System.Attribute + { + public XmlRootAttribute() => throw null; + public XmlRootAttribute(string elementName) => throw null; + public string DataType { get => throw null; set { } } + public string ElementName { get => throw null; set { } } + public bool IsNullable { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + } + public sealed class XmlSchemaProviderAttribute : System.Attribute + { + public XmlSchemaProviderAttribute(string methodName) => throw null; + public bool IsAny { get => throw null; set { } } + public string MethodName { get => throw null; } + } + public class XmlSerializerNamespaces + { + public void Add(string prefix, string ns) => throw null; + public int Count { get => throw null; } + public XmlSerializerNamespaces() => throw null; + public XmlSerializerNamespaces(System.Xml.Serialization.XmlSerializerNamespaces namespaces) => throw null; + public XmlSerializerNamespaces(System.Xml.XmlQualifiedName[] namespaces) => throw null; + public System.Xml.XmlQualifiedName[] ToArray() => throw null; + } + public class XmlTextAttribute : System.Attribute + { + public XmlTextAttribute() => throw null; + public XmlTextAttribute(System.Type type) => throw null; + public string DataType { get => throw null; set { } } + public System.Type Type { get => throw null; set { } } + } + } + public enum ValidationType + { + None = 0, Auto = 1, DTD = 2, - None = 0, - Schema = 4, XDR = 3, + Schema = 4, } - - public enum WhitespaceHandling : int + public enum WhitespaceHandling { All = 0, - None = 2, Significant = 1, + None = 2, } - - public enum WriteState : int + public enum WriteState { - Attribute = 3, - Closed = 5, - Content = 4, - Element = 2, - Error = 6, - Prolog = 1, Start = 0, + Prolog = 1, + Element = 2, + Attribute = 3, + Content = 4, + Closed = 5, + Error = 6, } - public class XmlAttribute : System.Xml.XmlNode { public override System.Xml.XmlNode AppendChild(System.Xml.XmlNode newChild) => throw null; public override string BaseURI { get => throw null; } public override System.Xml.XmlNode CloneNode(bool deep) => throw null; - public override string InnerText { set => throw null; } - public override string InnerXml { set => throw null; } + protected XmlAttribute(string prefix, string localName, string namespaceURI, System.Xml.XmlDocument doc) => throw null; + public override string InnerText { set { } } + public override string InnerXml { set { } } public override System.Xml.XmlNode InsertAfter(System.Xml.XmlNode newChild, System.Xml.XmlNode refChild) => throw null; public override System.Xml.XmlNode InsertBefore(System.Xml.XmlNode newChild, System.Xml.XmlNode refChild) => throw null; public override string LocalName { get => throw null; } @@ -130,44 +1005,42 @@ namespace System public override System.Xml.XmlDocument OwnerDocument { get => throw null; } public virtual System.Xml.XmlElement OwnerElement { get => throw null; } public override System.Xml.XmlNode ParentNode { get => throw null; } - public override string Prefix { get => throw null; set => throw null; } + public override string Prefix { get => throw null; set { } } public override System.Xml.XmlNode PrependChild(System.Xml.XmlNode newChild) => throw null; public override System.Xml.XmlNode RemoveChild(System.Xml.XmlNode oldChild) => throw null; public override System.Xml.XmlNode ReplaceChild(System.Xml.XmlNode newChild, System.Xml.XmlNode oldChild) => throw null; public override System.Xml.Schema.IXmlSchemaInfo SchemaInfo { get => throw null; } public virtual bool Specified { get => throw null; } - public override string Value { get => throw null; set => throw null; } + public override string Value { get => throw null; set { } } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlAttribute(string prefix, string localName, string namespaceURI, System.Xml.XmlDocument doc) => throw null; } - - public class XmlAttributeCollection : System.Xml.XmlNamedNodeMap, System.Collections.ICollection, System.Collections.IEnumerable + public sealed class XmlAttributeCollection : System.Xml.XmlNamedNodeMap, System.Collections.ICollection, System.Collections.IEnumerable { public System.Xml.XmlAttribute Append(System.Xml.XmlAttribute node) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(System.Xml.XmlAttribute[] array, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; int System.Collections.ICollection.Count { get => throw null; } public System.Xml.XmlAttribute InsertAfter(System.Xml.XmlAttribute newNode, System.Xml.XmlAttribute refNode) => throw null; public System.Xml.XmlAttribute InsertBefore(System.Xml.XmlAttribute newNode, System.Xml.XmlAttribute refNode) => throw null; bool System.Collections.ICollection.IsSynchronized { get => throw null; } - [System.Runtime.CompilerServices.IndexerName("ItemOf")] - public System.Xml.XmlAttribute this[int i] { get => throw null; } - [System.Runtime.CompilerServices.IndexerName("ItemOf")] - public System.Xml.XmlAttribute this[string localName, string namespaceURI] { get => throw null; } - [System.Runtime.CompilerServices.IndexerName("ItemOf")] - public System.Xml.XmlAttribute this[string name] { get => throw null; } public System.Xml.XmlAttribute Prepend(System.Xml.XmlAttribute node) => throw null; public System.Xml.XmlAttribute Remove(System.Xml.XmlAttribute node) => throw null; public void RemoveAll() => throw null; public System.Xml.XmlAttribute RemoveAt(int i) => throw null; public override System.Xml.XmlNode SetNamedItem(System.Xml.XmlNode node) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } + [System.Runtime.CompilerServices.IndexerName("ItemOf")] + public System.Xml.XmlAttribute this[int i] { get => throw null; } + [System.Runtime.CompilerServices.IndexerName("ItemOf")] + public System.Xml.XmlAttribute this[string name] { get => throw null; } + [System.Runtime.CompilerServices.IndexerName("ItemOf")] + public System.Xml.XmlAttribute this[string localName, string namespaceURI] { get => throw null; } } - public class XmlCDataSection : System.Xml.XmlCharacterData { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; + protected XmlCDataSection(string data, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; public override string LocalName { get => throw null; } public override string Name { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } @@ -175,122 +1048,115 @@ namespace System public override System.Xml.XmlNode PreviousText { get => throw null; } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlCDataSection(string data, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; } - public abstract class XmlCharacterData : System.Xml.XmlLinkedNode { public virtual void AppendData(string strData) => throw null; - public virtual string Data { get => throw null; set => throw null; } + protected XmlCharacterData(string data, System.Xml.XmlDocument doc) => throw null; + public virtual string Data { get => throw null; set { } } public virtual void DeleteData(int offset, int count) => throw null; - public override string InnerText { get => throw null; set => throw null; } + public override string InnerText { get => throw null; set { } } public virtual void InsertData(int offset, string strData) => throw null; public virtual int Length { get => throw null; } public virtual void ReplaceData(int offset, int count, string strData) => throw null; public virtual string Substring(int offset, int count) => throw null; - public override string Value { get => throw null; set => throw null; } - protected internal XmlCharacterData(string data, System.Xml.XmlDocument doc) => throw null; + public override string Value { get => throw null; set { } } } - public class XmlComment : System.Xml.XmlCharacterData { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; + protected XmlComment(string comment, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; public override string LocalName { get => throw null; } public override string Name { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlComment(string comment, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; } - public class XmlConvert { + public XmlConvert() => throw null; public static string DecodeName(string name) => throw null; public static string EncodeLocalName(string name) => throw null; public static string EncodeName(string name) => throw null; public static string EncodeNmToken(string name) => throw null; - public static bool IsNCNameChar(System.Char ch) => throw null; - public static bool IsPublicIdChar(System.Char ch) => throw null; - public static bool IsStartNCNameChar(System.Char ch) => throw null; - public static bool IsWhitespaceChar(System.Char ch) => throw null; - public static bool IsXmlChar(System.Char ch) => throw null; - public static bool IsXmlSurrogatePair(System.Char lowChar, System.Char highChar) => throw null; + public static bool IsNCNameChar(char ch) => throw null; + public static bool IsPublicIdChar(char ch) => throw null; + public static bool IsStartNCNameChar(char ch) => throw null; + public static bool IsWhitespaceChar(char ch) => throw null; + public static bool IsXmlChar(char ch) => throw null; + public static bool IsXmlSurrogatePair(char lowChar, char highChar) => throw null; public static bool ToBoolean(string s) => throw null; - public static System.Byte ToByte(string s) => throw null; - public static System.Char ToChar(string s) => throw null; + public static byte ToByte(string s) => throw null; + public static char ToChar(string s) => throw null; public static System.DateTime ToDateTime(string s) => throw null; + public static System.DateTime ToDateTime(string s, string format) => throw null; public static System.DateTime ToDateTime(string s, string[] formats) => throw null; public static System.DateTime ToDateTime(string s, System.Xml.XmlDateTimeSerializationMode dateTimeOption) => throw null; - public static System.DateTime ToDateTime(string s, string format) => throw null; public static System.DateTimeOffset ToDateTimeOffset(string s) => throw null; - public static System.DateTimeOffset ToDateTimeOffset(string s, string[] formats) => throw null; public static System.DateTimeOffset ToDateTimeOffset(string s, string format) => throw null; - public static System.Decimal ToDecimal(string s) => throw null; + public static System.DateTimeOffset ToDateTimeOffset(string s, string[] formats) => throw null; + public static decimal ToDecimal(string s) => throw null; public static double ToDouble(string s) => throw null; public static System.Guid ToGuid(string s) => throw null; - public static System.Int16 ToInt16(string s) => throw null; + public static short ToInt16(string s) => throw null; public static int ToInt32(string s) => throw null; - public static System.Int64 ToInt64(string s) => throw null; - public static System.SByte ToSByte(string s) => throw null; + public static long ToInt64(string s) => throw null; + public static sbyte ToSByte(string s) => throw null; public static float ToSingle(string s) => throw null; + public static string ToString(bool value) => throw null; + public static string ToString(byte value) => throw null; + public static string ToString(char value) => throw null; public static string ToString(System.DateTime value) => throw null; - public static string ToString(System.DateTime value, System.Xml.XmlDateTimeSerializationMode dateTimeOption) => throw null; public static string ToString(System.DateTime value, string format) => throw null; + public static string ToString(System.DateTime value, System.Xml.XmlDateTimeSerializationMode dateTimeOption) => throw null; public static string ToString(System.DateTimeOffset value) => throw null; public static string ToString(System.DateTimeOffset value, string format) => throw null; - public static string ToString(System.Guid value) => throw null; - public static string ToString(System.TimeSpan value) => throw null; - public static string ToString(bool value) => throw null; - public static string ToString(System.Byte value) => throw null; - public static string ToString(System.Char value) => throw null; - public static string ToString(System.Decimal value) => throw null; + public static string ToString(decimal value) => throw null; public static string ToString(double value) => throw null; - public static string ToString(float value) => throw null; + public static string ToString(System.Guid value) => throw null; + public static string ToString(short value) => throw null; public static string ToString(int value) => throw null; - public static string ToString(System.Int64 value) => throw null; - public static string ToString(System.SByte value) => throw null; - public static string ToString(System.Int16 value) => throw null; - public static string ToString(System.UInt32 value) => throw null; - public static string ToString(System.UInt64 value) => throw null; - public static string ToString(System.UInt16 value) => throw null; + public static string ToString(long value) => throw null; + public static string ToString(sbyte value) => throw null; + public static string ToString(float value) => throw null; + public static string ToString(System.TimeSpan value) => throw null; + public static string ToString(ushort value) => throw null; + public static string ToString(uint value) => throw null; + public static string ToString(ulong value) => throw null; public static System.TimeSpan ToTimeSpan(string s) => throw null; - public static System.UInt16 ToUInt16(string s) => throw null; - public static System.UInt32 ToUInt32(string s) => throw null; - public static System.UInt64 ToUInt64(string s) => throw null; + public static ushort ToUInt16(string s) => throw null; + public static uint ToUInt32(string s) => throw null; + public static ulong ToUInt64(string s) => throw null; + public static string VerifyName(string name) => throw null; public static string VerifyNCName(string name) => throw null; public static string VerifyNMTOKEN(string name) => throw null; - public static string VerifyName(string name) => throw null; public static string VerifyPublicId(string publicId) => throw null; public static string VerifyTOKEN(string token) => throw null; public static string VerifyWhitespace(string content) => throw null; public static string VerifyXmlChars(string content) => throw null; - public XmlConvert() => throw null; } - - public enum XmlDateTimeSerializationMode : int + public enum XmlDateTimeSerializationMode { Local = 0, - RoundtripKind = 3, - Unspecified = 2, Utc = 1, + Unspecified = 2, + RoundtripKind = 3, } - public class XmlDeclaration : System.Xml.XmlLinkedNode { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; - public string Encoding { get => throw null; set => throw null; } - public override string InnerText { get => throw null; set => throw null; } + protected XmlDeclaration(string version, string encoding, string standalone, System.Xml.XmlDocument doc) => throw null; + public string Encoding { get => throw null; set { } } + public override string InnerText { get => throw null; set { } } public override string LocalName { get => throw null; } public override string Name { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } - public string Standalone { get => throw null; set => throw null; } - public override string Value { get => throw null; set => throw null; } + public string Standalone { get => throw null; set { } } + public override string Value { get => throw null; set { } } public string Version { get => throw null; } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlDeclaration(string version, string encoding, string standalone, System.Xml.XmlDocument doc) => throw null; } - public class XmlDocument : System.Xml.XmlNode { public override string BaseURI { get => throw null; } @@ -300,7 +1166,7 @@ namespace System public virtual System.Xml.XmlAttribute CreateAttribute(string prefix, string localName, string namespaceURI) => throw null; public virtual System.Xml.XmlCDataSection CreateCDataSection(string data) => throw null; public virtual System.Xml.XmlComment CreateComment(string data) => throw null; - protected internal virtual System.Xml.XmlAttribute CreateDefaultAttribute(string prefix, string localName, string namespaceURI) => throw null; + protected virtual System.Xml.XmlAttribute CreateDefaultAttribute(string prefix, string localName, string namespaceURI) => throw null; public virtual System.Xml.XmlDocumentFragment CreateDocumentFragment() => throw null; public virtual System.Xml.XmlDocumentType CreateDocumentType(string name, string publicId, string systemId, string internalSubset) => throw null; public System.Xml.XmlElement CreateElement(string name) => throw null; @@ -308,15 +1174,18 @@ namespace System public virtual System.Xml.XmlElement CreateElement(string prefix, string localName, string namespaceURI) => throw null; public virtual System.Xml.XmlEntityReference CreateEntityReference(string name) => throw null; public override System.Xml.XPath.XPathNavigator CreateNavigator() => throw null; - protected internal virtual System.Xml.XPath.XPathNavigator CreateNavigator(System.Xml.XmlNode node) => throw null; + protected virtual System.Xml.XPath.XPathNavigator CreateNavigator(System.Xml.XmlNode node) => throw null; + public virtual System.Xml.XmlNode CreateNode(string nodeTypeString, string name, string namespaceURI) => throw null; public virtual System.Xml.XmlNode CreateNode(System.Xml.XmlNodeType type, string name, string namespaceURI) => throw null; public virtual System.Xml.XmlNode CreateNode(System.Xml.XmlNodeType type, string prefix, string name, string namespaceURI) => throw null; - public virtual System.Xml.XmlNode CreateNode(string nodeTypeString, string name, string namespaceURI) => throw null; public virtual System.Xml.XmlProcessingInstruction CreateProcessingInstruction(string target, string data) => throw null; public virtual System.Xml.XmlSignificantWhitespace CreateSignificantWhitespace(string text) => throw null; public virtual System.Xml.XmlText CreateTextNode(string text) => throw null; public virtual System.Xml.XmlWhitespace CreateWhitespace(string text) => throw null; public virtual System.Xml.XmlDeclaration CreateXmlDeclaration(string version, string encoding, string standalone) => throw null; + public XmlDocument() => throw null; + protected XmlDocument(System.Xml.XmlImplementation imp) => throw null; + public XmlDocument(System.Xml.XmlNameTable nt) => throw null; public System.Xml.XmlElement DocumentElement { get => throw null; } public virtual System.Xml.XmlDocumentType DocumentType { get => throw null; } public virtual System.Xml.XmlElement GetElementById(string elementId) => throw null; @@ -324,48 +1193,45 @@ namespace System public virtual System.Xml.XmlNodeList GetElementsByTagName(string localName, string namespaceURI) => throw null; public System.Xml.XmlImplementation Implementation { get => throw null; } public virtual System.Xml.XmlNode ImportNode(System.Xml.XmlNode node, bool deep) => throw null; - public override string InnerText { set => throw null; } - public override string InnerXml { get => throw null; set => throw null; } + public override string InnerText { set { } } + public override string InnerXml { get => throw null; set { } } public override bool IsReadOnly { get => throw null; } public virtual void Load(System.IO.Stream inStream) => throw null; public virtual void Load(System.IO.TextReader txtReader) => throw null; - public virtual void Load(System.Xml.XmlReader reader) => throw null; public virtual void Load(string filename) => throw null; + public virtual void Load(System.Xml.XmlReader reader) => throw null; public virtual void LoadXml(string xml) => throw null; public override string LocalName { get => throw null; } public override string Name { get => throw null; } public System.Xml.XmlNameTable NameTable { get => throw null; } - public event System.Xml.XmlNodeChangedEventHandler NodeChanged; - public event System.Xml.XmlNodeChangedEventHandler NodeChanging; - public event System.Xml.XmlNodeChangedEventHandler NodeInserted; - public event System.Xml.XmlNodeChangedEventHandler NodeInserting; - public event System.Xml.XmlNodeChangedEventHandler NodeRemoved; - public event System.Xml.XmlNodeChangedEventHandler NodeRemoving; + public event System.Xml.XmlNodeChangedEventHandler NodeChanged { add { } remove { } } + public event System.Xml.XmlNodeChangedEventHandler NodeChanging { add { } remove { } } + public event System.Xml.XmlNodeChangedEventHandler NodeInserted { add { } remove { } } + public event System.Xml.XmlNodeChangedEventHandler NodeInserting { add { } remove { } } + public event System.Xml.XmlNodeChangedEventHandler NodeRemoved { add { } remove { } } + public event System.Xml.XmlNodeChangedEventHandler NodeRemoving { add { } remove { } } public override System.Xml.XmlNodeType NodeType { get => throw null; } public override System.Xml.XmlDocument OwnerDocument { get => throw null; } public override System.Xml.XmlNode ParentNode { get => throw null; } - public bool PreserveWhitespace { get => throw null; set => throw null; } + public bool PreserveWhitespace { get => throw null; set { } } public virtual System.Xml.XmlNode ReadNode(System.Xml.XmlReader reader) => throw null; public virtual void Save(System.IO.Stream outStream) => throw null; public virtual void Save(System.IO.TextWriter writer) => throw null; - public virtual void Save(System.Xml.XmlWriter w) => throw null; public virtual void Save(string filename) => throw null; + public virtual void Save(System.Xml.XmlWriter w) => throw null; public override System.Xml.Schema.IXmlSchemaInfo SchemaInfo { get => throw null; } - public System.Xml.Schema.XmlSchemaSet Schemas { get => throw null; set => throw null; } + public System.Xml.Schema.XmlSchemaSet Schemas { get => throw null; set { } } public void Validate(System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; public void Validate(System.Xml.Schema.ValidationEventHandler validationEventHandler, System.Xml.XmlNode nodeToValidate) => throw null; public override void WriteContentTo(System.Xml.XmlWriter xw) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - public XmlDocument() => throw null; - protected internal XmlDocument(System.Xml.XmlImplementation imp) => throw null; - public XmlDocument(System.Xml.XmlNameTable nt) => throw null; - public virtual System.Xml.XmlResolver XmlResolver { set => throw null; } + public virtual System.Xml.XmlResolver XmlResolver { set { } } } - public class XmlDocumentFragment : System.Xml.XmlNode { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; - public override string InnerXml { get => throw null; set => throw null; } + protected XmlDocumentFragment(System.Xml.XmlDocument ownerDocument) => throw null; + public override string InnerXml { get => throw null; set { } } public override string LocalName { get => throw null; } public override string Name { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } @@ -373,12 +1239,11 @@ namespace System public override System.Xml.XmlNode ParentNode { get => throw null; } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlDocumentFragment(System.Xml.XmlDocument ownerDocument) => throw null; } - public class XmlDocumentType : System.Xml.XmlLinkedNode { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; + protected XmlDocumentType(string name, string publicId, string systemId, string internalSubset, System.Xml.XmlDocument doc) => throw null; public System.Xml.XmlNamedNodeMap Entities { get => throw null; } public string InternalSubset { get => throw null; } public override bool IsReadOnly { get => throw null; } @@ -390,13 +1255,12 @@ namespace System public string SystemId { get => throw null; } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlDocumentType(string name, string publicId, string systemId, string internalSubset, System.Xml.XmlDocument doc) => throw null; } - public class XmlElement : System.Xml.XmlLinkedNode { public override System.Xml.XmlAttributeCollection Attributes { get => throw null; } public override System.Xml.XmlNode CloneNode(bool deep) => throw null; + protected XmlElement(string prefix, string localName, string namespaceURI, System.Xml.XmlDocument doc) => throw null; public virtual string GetAttribute(string name) => throw null; public virtual string GetAttribute(string localName, string namespaceURI) => throw null; public virtual System.Xml.XmlAttribute GetAttributeNode(string name) => throw null; @@ -406,9 +1270,9 @@ namespace System public virtual bool HasAttribute(string name) => throw null; public virtual bool HasAttribute(string localName, string namespaceURI) => throw null; public virtual bool HasAttributes { get => throw null; } - public override string InnerText { get => throw null; set => throw null; } - public override string InnerXml { get => throw null; set => throw null; } - public bool IsEmpty { get => throw null; set => throw null; } + public override string InnerText { get => throw null; set { } } + public override string InnerXml { get => throw null; set { } } + public bool IsEmpty { get => throw null; set { } } public override string LocalName { get => throw null; } public override string Name { get => throw null; } public override string NamespaceURI { get => throw null; } @@ -416,30 +1280,28 @@ namespace System public override System.Xml.XmlNodeType NodeType { get => throw null; } public override System.Xml.XmlDocument OwnerDocument { get => throw null; } public override System.Xml.XmlNode ParentNode { get => throw null; } - public override string Prefix { get => throw null; set => throw null; } + public override string Prefix { get => throw null; set { } } public override void RemoveAll() => throw null; public virtual void RemoveAllAttributes() => throw null; public virtual void RemoveAttribute(string name) => throw null; public virtual void RemoveAttribute(string localName, string namespaceURI) => throw null; public virtual System.Xml.XmlNode RemoveAttributeAt(int i) => throw null; - public virtual System.Xml.XmlAttribute RemoveAttributeNode(System.Xml.XmlAttribute oldAttr) => throw null; public virtual System.Xml.XmlAttribute RemoveAttributeNode(string localName, string namespaceURI) => throw null; + public virtual System.Xml.XmlAttribute RemoveAttributeNode(System.Xml.XmlAttribute oldAttr) => throw null; public override System.Xml.Schema.IXmlSchemaInfo SchemaInfo { get => throw null; } public virtual void SetAttribute(string name, string value) => throw null; public virtual string SetAttribute(string localName, string namespaceURI, string value) => throw null; - public virtual System.Xml.XmlAttribute SetAttributeNode(System.Xml.XmlAttribute newAttr) => throw null; public virtual System.Xml.XmlAttribute SetAttributeNode(string localName, string namespaceURI) => throw null; + public virtual System.Xml.XmlAttribute SetAttributeNode(System.Xml.XmlAttribute newAttr) => throw null; public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlElement(string prefix, string localName, string namespaceURI, System.Xml.XmlDocument doc) => throw null; } - public class XmlEntity : System.Xml.XmlNode { public override string BaseURI { get => throw null; } public override System.Xml.XmlNode CloneNode(bool deep) => throw null; - public override string InnerText { get => throw null; set => throw null; } - public override string InnerXml { get => throw null; set => throw null; } + public override string InnerText { get => throw null; set { } } + public override string InnerXml { get => throw null; set { } } public override bool IsReadOnly { get => throw null; } public override string LocalName { get => throw null; } public override string Name { get => throw null; } @@ -451,59 +1313,44 @@ namespace System public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; } - public class XmlEntityReference : System.Xml.XmlLinkedNode { public override string BaseURI { get => throw null; } public override System.Xml.XmlNode CloneNode(bool deep) => throw null; + protected XmlEntityReference(string name, System.Xml.XmlDocument doc) => throw null; public override bool IsReadOnly { get => throw null; } public override string LocalName { get => throw null; } public override string Name { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } - public override string Value { get => throw null; set => throw null; } + public override string Value { get => throw null; set { } } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlEntityReference(string name, System.Xml.XmlDocument doc) => throw null; } - public class XmlException : System.SystemException { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public int LineNumber { get => throw null; } - public int LinePosition { get => throw null; } - public override string Message { get => throw null; } - public string SourceUri { get => throw null; } public XmlException() => throw null; protected XmlException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public XmlException(string message) => throw null; public XmlException(string message, System.Exception innerException) => throw null; public XmlException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public int LineNumber { get => throw null; } + public int LinePosition { get => throw null; } + public override string Message { get => throw null; } + public string SourceUri { get => throw null; } } - public class XmlImplementation { public virtual System.Xml.XmlDocument CreateDocument() => throw null; - public bool HasFeature(string strFeature, string strVersion) => throw null; public XmlImplementation() => throw null; public XmlImplementation(System.Xml.XmlNameTable nt) => throw null; + public bool HasFeature(string strFeature, string strVersion) => throw null; } - public abstract class XmlLinkedNode : System.Xml.XmlNode { public override System.Xml.XmlNode NextSibling { get => throw null; } public override System.Xml.XmlNode PreviousSibling { get => throw null; } - internal XmlLinkedNode() => throw null; } - - public abstract class XmlNameTable - { - public abstract string Add(System.Char[] array, int offset, int length); - public abstract string Add(string array); - public abstract string Get(System.Char[] array, int offset, int length); - public abstract string Get(string array); - protected XmlNameTable() => throw null; - } - public class XmlNamedNodeMap : System.Collections.IEnumerable { public virtual int Count { get => throw null; } @@ -514,12 +1361,11 @@ namespace System public virtual System.Xml.XmlNode RemoveNamedItem(string name) => throw null; public virtual System.Xml.XmlNode RemoveNamedItem(string localName, string namespaceURI) => throw null; public virtual System.Xml.XmlNode SetNamedItem(System.Xml.XmlNode node) => throw null; - internal XmlNamedNodeMap() => throw null; } - public class XmlNamespaceManager : System.Collections.IEnumerable, System.Xml.IXmlNamespaceResolver { public virtual void AddNamespace(string prefix, string uri) => throw null; + public XmlNamespaceManager(System.Xml.XmlNameTable nameTable) => throw null; public virtual string DefaultNamespace { get => throw null; } public virtual System.Collections.IEnumerator GetEnumerator() => throw null; public virtual System.Collections.Generic.IDictionary GetNamespacesInScope(System.Xml.XmlNamespaceScope scope) => throw null; @@ -530,16 +1376,21 @@ namespace System public virtual bool PopScope() => throw null; public virtual void PushScope() => throw null; public virtual void RemoveNamespace(string prefix, string uri) => throw null; - public XmlNamespaceManager(System.Xml.XmlNameTable nameTable) => throw null; } - - public enum XmlNamespaceScope : int + public enum XmlNamespaceScope { All = 0, ExcludeXml = 1, Local = 2, } - + public abstract class XmlNameTable + { + public abstract string Add(char[] array, int offset, int length); + public abstract string Add(string array); + protected XmlNameTable() => throw null; + public abstract string Get(char[] array, int offset, int length); + public abstract string Get(string array); + } public abstract class XmlNode : System.Collections.IEnumerable, System.ICloneable, System.Xml.XPath.IXPathNavigable { public virtual System.Xml.XmlNode AppendChild(System.Xml.XmlNode newChild) => throw null; @@ -556,13 +1407,11 @@ namespace System public virtual string GetNamespaceOfPrefix(string prefix) => throw null; public virtual string GetPrefixOfNamespace(string namespaceURI) => throw null; public virtual bool HasChildNodes { get => throw null; } - public virtual string InnerText { get => throw null; set => throw null; } - public virtual string InnerXml { get => throw null; set => throw null; } + public virtual string InnerText { get => throw null; set { } } + public virtual string InnerXml { get => throw null; set { } } public virtual System.Xml.XmlNode InsertAfter(System.Xml.XmlNode newChild, System.Xml.XmlNode refChild) => throw null; public virtual System.Xml.XmlNode InsertBefore(System.Xml.XmlNode newChild, System.Xml.XmlNode refChild) => throw null; public virtual bool IsReadOnly { get => throw null; } - public virtual System.Xml.XmlElement this[string localname, string ns] { get => throw null; } - public virtual System.Xml.XmlElement this[string name] { get => throw null; } public virtual System.Xml.XmlNode LastChild { get => throw null; } public abstract string LocalName { get; } public abstract string Name { get; } @@ -573,7 +1422,7 @@ namespace System public virtual string OuterXml { get => throw null; } public virtual System.Xml.XmlDocument OwnerDocument { get => throw null; } public virtual System.Xml.XmlNode ParentNode { get => throw null; } - public virtual string Prefix { get => throw null; set => throw null; } + public virtual string Prefix { get => throw null; set { } } public virtual System.Xml.XmlNode PrependChild(System.Xml.XmlNode newChild) => throw null; public virtual System.Xml.XmlNode PreviousSibling { get => throw null; } public virtual System.Xml.XmlNode PreviousText { get => throw null; } @@ -586,52 +1435,47 @@ namespace System public System.Xml.XmlNode SelectSingleNode(string xpath) => throw null; public System.Xml.XmlNode SelectSingleNode(string xpath, System.Xml.XmlNamespaceManager nsmgr) => throw null; public virtual bool Supports(string feature, string version) => throw null; - public virtual string Value { get => throw null; set => throw null; } + public virtual System.Xml.XmlElement this[string name] { get => throw null; } + public virtual System.Xml.XmlElement this[string localname, string ns] { get => throw null; } + public virtual string Value { get => throw null; set { } } public abstract void WriteContentTo(System.Xml.XmlWriter w); public abstract void WriteTo(System.Xml.XmlWriter w); - internal XmlNode() => throw null; } - - public enum XmlNodeChangedAction : int + public enum XmlNodeChangedAction { - Change = 2, Insert = 0, Remove = 1, + Change = 2, } - public class XmlNodeChangedEventArgs : System.EventArgs { public System.Xml.XmlNodeChangedAction Action { get => throw null; } + public XmlNodeChangedEventArgs(System.Xml.XmlNode node, System.Xml.XmlNode oldParent, System.Xml.XmlNode newParent, string oldValue, string newValue, System.Xml.XmlNodeChangedAction action) => throw null; public System.Xml.XmlNode NewParent { get => throw null; } public string NewValue { get => throw null; } public System.Xml.XmlNode Node { get => throw null; } public System.Xml.XmlNode OldParent { get => throw null; } public string OldValue { get => throw null; } - public XmlNodeChangedEventArgs(System.Xml.XmlNode node, System.Xml.XmlNode oldParent, System.Xml.XmlNode newParent, string oldValue, string newValue, System.Xml.XmlNodeChangedAction action) => throw null; } - public delegate void XmlNodeChangedEventHandler(object sender, System.Xml.XmlNodeChangedEventArgs e); - public abstract class XmlNodeList : System.Collections.IEnumerable, System.IDisposable { public abstract int Count { get; } + protected XmlNodeList() => throw null; void System.IDisposable.Dispose() => throw null; public abstract System.Collections.IEnumerator GetEnumerator(); public abstract System.Xml.XmlNode Item(int index); + protected virtual void PrivateDisposeNodeList() => throw null; [System.Runtime.CompilerServices.IndexerName("ItemOf")] public virtual System.Xml.XmlNode this[int i] { get => throw null; } - protected virtual void PrivateDisposeNodeList() => throw null; - protected XmlNodeList() => throw null; } - - public enum XmlNodeOrder : int + public enum XmlNodeOrder { - After = 1, Before = 0, + After = 1, Same = 2, Unknown = 3, } - public class XmlNodeReader : System.Xml.XmlReader, System.Xml.IXmlNamespaceResolver { public override int AttributeCount { get => throw null; } @@ -639,6 +1483,7 @@ namespace System public override bool CanReadBinaryContent { get => throw null; } public override bool CanResolveEntity { get => throw null; } public override void Close() => throw null; + public XmlNodeReader(System.Xml.XmlNode node) => throw null; public override int Depth { get => throw null; } public override bool EOF { get => throw null; } public override string GetAttribute(int attributeIndex) => throw null; @@ -660,16 +1505,16 @@ namespace System public override bool MoveToFirstAttribute() => throw null; public override bool MoveToNextAttribute() => throw null; public override string Name { get => throw null; } - public override System.Xml.XmlNameTable NameTable { get => throw null; } public override string NamespaceURI { get => throw null; } + public override System.Xml.XmlNameTable NameTable { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } public override string Prefix { get => throw null; } public override bool Read() => throw null; public override bool ReadAttributeValue() => throw null; - public override int ReadContentAsBase64(System.Byte[] buffer, int index, int count) => throw null; - public override int ReadContentAsBinHex(System.Byte[] buffer, int index, int count) => throw null; - public override int ReadElementContentAsBase64(System.Byte[] buffer, int index, int count) => throw null; - public override int ReadElementContentAsBinHex(System.Byte[] buffer, int index, int count) => throw null; + public override int ReadContentAsBase64(byte[] buffer, int index, int count) => throw null; + public override int ReadContentAsBinHex(byte[] buffer, int index, int count) => throw null; + public override int ReadElementContentAsBase64(byte[] buffer, int index, int count) => throw null; + public override int ReadElementContentAsBinHex(byte[] buffer, int index, int count) => throw null; public override System.Xml.ReadState ReadState { get => throw null; } public override string ReadString() => throw null; public override void ResolveEntity() => throw null; @@ -677,36 +1522,33 @@ namespace System public override void Skip() => throw null; public override string Value { get => throw null; } public override string XmlLang { get => throw null; } - public XmlNodeReader(System.Xml.XmlNode node) => throw null; public override System.Xml.XmlSpace XmlSpace { get => throw null; } } - - public enum XmlNodeType : int + public enum XmlNodeType { + None = 0, + Element = 1, Attribute = 2, + Text = 3, CDATA = 4, + EntityReference = 5, + Entity = 6, + ProcessingInstruction = 7, Comment = 8, Document = 9, - DocumentFragment = 11, DocumentType = 10, - Element = 1, + DocumentFragment = 11, + Notation = 12, + Whitespace = 13, + SignificantWhitespace = 14, EndElement = 15, EndEntity = 16, - Entity = 6, - EntityReference = 5, - None = 0, - Notation = 12, - ProcessingInstruction = 7, - SignificantWhitespace = 14, - Text = 3, - Whitespace = 13, XmlDeclaration = 17, } - public class XmlNotation : System.Xml.XmlNode { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; - public override string InnerXml { get => throw null; set => throw null; } + public override string InnerXml { get => throw null; set { } } public override bool IsReadOnly { get => throw null; } public override string LocalName { get => throw null; } public override string Name { get => throw null; } @@ -717,65 +1559,60 @@ namespace System public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; } - - public enum XmlOutputMethod : int + public enum XmlOutputMethod { - AutoDetect = 3, + Xml = 0, Html = 1, Text = 2, - Xml = 0, + AutoDetect = 3, } - public class XmlParserContext { - public string BaseURI { get => throw null; set => throw null; } - public string DocTypeName { get => throw null; set => throw null; } - public System.Text.Encoding Encoding { get => throw null; set => throw null; } - public string InternalSubset { get => throw null; set => throw null; } - public System.Xml.XmlNameTable NameTable { get => throw null; set => throw null; } - public System.Xml.XmlNamespaceManager NamespaceManager { get => throw null; set => throw null; } - public string PublicId { get => throw null; set => throw null; } - public string SystemId { get => throw null; set => throw null; } - public string XmlLang { get => throw null; set => throw null; } - public XmlParserContext(System.Xml.XmlNameTable nt, System.Xml.XmlNamespaceManager nsMgr, string xmlLang, System.Xml.XmlSpace xmlSpace) => throw null; - public XmlParserContext(System.Xml.XmlNameTable nt, System.Xml.XmlNamespaceManager nsMgr, string xmlLang, System.Xml.XmlSpace xmlSpace, System.Text.Encoding enc) => throw null; + public string BaseURI { get => throw null; set { } } public XmlParserContext(System.Xml.XmlNameTable nt, System.Xml.XmlNamespaceManager nsMgr, string docTypeName, string pubId, string sysId, string internalSubset, string baseURI, string xmlLang, System.Xml.XmlSpace xmlSpace) => throw null; public XmlParserContext(System.Xml.XmlNameTable nt, System.Xml.XmlNamespaceManager nsMgr, string docTypeName, string pubId, string sysId, string internalSubset, string baseURI, string xmlLang, System.Xml.XmlSpace xmlSpace, System.Text.Encoding enc) => throw null; - public System.Xml.XmlSpace XmlSpace { get => throw null; set => throw null; } + public XmlParserContext(System.Xml.XmlNameTable nt, System.Xml.XmlNamespaceManager nsMgr, string xmlLang, System.Xml.XmlSpace xmlSpace) => throw null; + public XmlParserContext(System.Xml.XmlNameTable nt, System.Xml.XmlNamespaceManager nsMgr, string xmlLang, System.Xml.XmlSpace xmlSpace, System.Text.Encoding enc) => throw null; + public string DocTypeName { get => throw null; set { } } + public System.Text.Encoding Encoding { get => throw null; set { } } + public string InternalSubset { get => throw null; set { } } + public System.Xml.XmlNamespaceManager NamespaceManager { get => throw null; set { } } + public System.Xml.XmlNameTable NameTable { get => throw null; set { } } + public string PublicId { get => throw null; set { } } + public string SystemId { get => throw null; set { } } + public string XmlLang { get => throw null; set { } } + public System.Xml.XmlSpace XmlSpace { get => throw null; set { } } } - public class XmlProcessingInstruction : System.Xml.XmlLinkedNode { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; - public string Data { get => throw null; set => throw null; } - public override string InnerText { get => throw null; set => throw null; } + protected XmlProcessingInstruction(string target, string data, System.Xml.XmlDocument doc) => throw null; + public string Data { get => throw null; set { } } + public override string InnerText { get => throw null; set { } } public override string LocalName { get => throw null; } public override string Name { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } public string Target { get => throw null; } - public override string Value { get => throw null; set => throw null; } + public override string Value { get => throw null; set { } } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlProcessingInstruction(string target, string data, System.Xml.XmlDocument doc) => throw null; } - public class XmlQualifiedName { - public static bool operator !=(System.Xml.XmlQualifiedName a, System.Xml.XmlQualifiedName b) => throw null; - public static bool operator ==(System.Xml.XmlQualifiedName a, System.Xml.XmlQualifiedName b) => throw null; + public XmlQualifiedName() => throw null; + public XmlQualifiedName(string name) => throw null; + public XmlQualifiedName(string name, string ns) => throw null; public static System.Xml.XmlQualifiedName Empty; public override bool Equals(object other) => throw null; public override int GetHashCode() => throw null; public bool IsEmpty { get => throw null; } public string Name { get => throw null; } public string Namespace { get => throw null; } + public static bool operator ==(System.Xml.XmlQualifiedName a, System.Xml.XmlQualifiedName b) => throw null; + public static bool operator !=(System.Xml.XmlQualifiedName a, System.Xml.XmlQualifiedName b) => throw null; public override string ToString() => throw null; public static string ToString(string name, string ns) => throw null; - public XmlQualifiedName() => throw null; - public XmlQualifiedName(string name) => throw null; - public XmlQualifiedName(string name, string ns) => throw null; } - public abstract class XmlReader : System.IDisposable { public abstract int AttributeCount { get; } @@ -786,16 +1623,17 @@ namespace System public virtual void Close() => throw null; public static System.Xml.XmlReader Create(System.IO.Stream input) => throw null; public static System.Xml.XmlReader Create(System.IO.Stream input, System.Xml.XmlReaderSettings settings) => throw null; - public static System.Xml.XmlReader Create(System.IO.Stream input, System.Xml.XmlReaderSettings settings, System.Xml.XmlParserContext inputContext) => throw null; public static System.Xml.XmlReader Create(System.IO.Stream input, System.Xml.XmlReaderSettings settings, string baseUri) => throw null; + public static System.Xml.XmlReader Create(System.IO.Stream input, System.Xml.XmlReaderSettings settings, System.Xml.XmlParserContext inputContext) => throw null; public static System.Xml.XmlReader Create(System.IO.TextReader input) => throw null; public static System.Xml.XmlReader Create(System.IO.TextReader input, System.Xml.XmlReaderSettings settings) => throw null; - public static System.Xml.XmlReader Create(System.IO.TextReader input, System.Xml.XmlReaderSettings settings, System.Xml.XmlParserContext inputContext) => throw null; public static System.Xml.XmlReader Create(System.IO.TextReader input, System.Xml.XmlReaderSettings settings, string baseUri) => throw null; - public static System.Xml.XmlReader Create(System.Xml.XmlReader reader, System.Xml.XmlReaderSettings settings) => throw null; + public static System.Xml.XmlReader Create(System.IO.TextReader input, System.Xml.XmlReaderSettings settings, System.Xml.XmlParserContext inputContext) => throw null; public static System.Xml.XmlReader Create(string inputUri) => throw null; public static System.Xml.XmlReader Create(string inputUri, System.Xml.XmlReaderSettings settings) => throw null; public static System.Xml.XmlReader Create(string inputUri, System.Xml.XmlReaderSettings settings, System.Xml.XmlParserContext inputContext) => throw null; + public static System.Xml.XmlReader Create(System.Xml.XmlReader reader, System.Xml.XmlReaderSettings settings) => throw null; + protected XmlReader() => throw null; public abstract int Depth { get; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; @@ -813,9 +1651,6 @@ namespace System public virtual bool IsStartElement() => throw null; public virtual bool IsStartElement(string name) => throw null; public virtual bool IsStartElement(string localname, string ns) => throw null; - public virtual string this[int i] { get => throw null; } - public virtual string this[string name, string namespaceURI] { get => throw null; } - public virtual string this[string name] { get => throw null; } public abstract string LocalName { get; } public abstract string LookupNamespace(string prefix); public virtual void MoveToAttribute(int i) => throw null; @@ -827,28 +1662,28 @@ namespace System public abstract bool MoveToFirstAttribute(); public abstract bool MoveToNextAttribute(); public virtual string Name { get => throw null; } - public abstract System.Xml.XmlNameTable NameTable { get; } public abstract string NamespaceURI { get; } + public abstract System.Xml.XmlNameTable NameTable { get; } public abstract System.Xml.XmlNodeType NodeType { get; } public abstract string Prefix { get; } - public virtual System.Char QuoteChar { get => throw null; } + public virtual char QuoteChar { get => throw null; } public abstract bool Read(); public virtual System.Threading.Tasks.Task ReadAsync() => throw null; public abstract bool ReadAttributeValue(); public virtual object ReadContentAs(System.Type returnType, System.Xml.IXmlNamespaceResolver namespaceResolver) => throw null; public virtual System.Threading.Tasks.Task ReadContentAsAsync(System.Type returnType, System.Xml.IXmlNamespaceResolver namespaceResolver) => throw null; - public virtual int ReadContentAsBase64(System.Byte[] buffer, int index, int count) => throw null; - public virtual System.Threading.Tasks.Task ReadContentAsBase64Async(System.Byte[] buffer, int index, int count) => throw null; - public virtual int ReadContentAsBinHex(System.Byte[] buffer, int index, int count) => throw null; - public virtual System.Threading.Tasks.Task ReadContentAsBinHexAsync(System.Byte[] buffer, int index, int count) => throw null; + public virtual int ReadContentAsBase64(byte[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.Task ReadContentAsBase64Async(byte[] buffer, int index, int count) => throw null; + public virtual int ReadContentAsBinHex(byte[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.Task ReadContentAsBinHexAsync(byte[] buffer, int index, int count) => throw null; public virtual bool ReadContentAsBoolean() => throw null; public virtual System.DateTime ReadContentAsDateTime() => throw null; public virtual System.DateTimeOffset ReadContentAsDateTimeOffset() => throw null; - public virtual System.Decimal ReadContentAsDecimal() => throw null; + public virtual decimal ReadContentAsDecimal() => throw null; public virtual double ReadContentAsDouble() => throw null; public virtual float ReadContentAsFloat() => throw null; public virtual int ReadContentAsInt() => throw null; - public virtual System.Int64 ReadContentAsLong() => throw null; + public virtual long ReadContentAsLong() => throw null; public virtual object ReadContentAsObject() => throw null; public virtual System.Threading.Tasks.Task ReadContentAsObjectAsync() => throw null; public virtual string ReadContentAsString() => throw null; @@ -856,24 +1691,24 @@ namespace System public virtual object ReadElementContentAs(System.Type returnType, System.Xml.IXmlNamespaceResolver namespaceResolver) => throw null; public virtual object ReadElementContentAs(System.Type returnType, System.Xml.IXmlNamespaceResolver namespaceResolver, string localName, string namespaceURI) => throw null; public virtual System.Threading.Tasks.Task ReadElementContentAsAsync(System.Type returnType, System.Xml.IXmlNamespaceResolver namespaceResolver) => throw null; - public virtual int ReadElementContentAsBase64(System.Byte[] buffer, int index, int count) => throw null; - public virtual System.Threading.Tasks.Task ReadElementContentAsBase64Async(System.Byte[] buffer, int index, int count) => throw null; - public virtual int ReadElementContentAsBinHex(System.Byte[] buffer, int index, int count) => throw null; - public virtual System.Threading.Tasks.Task ReadElementContentAsBinHexAsync(System.Byte[] buffer, int index, int count) => throw null; + public virtual int ReadElementContentAsBase64(byte[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.Task ReadElementContentAsBase64Async(byte[] buffer, int index, int count) => throw null; + public virtual int ReadElementContentAsBinHex(byte[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.Task ReadElementContentAsBinHexAsync(byte[] buffer, int index, int count) => throw null; public virtual bool ReadElementContentAsBoolean() => throw null; public virtual bool ReadElementContentAsBoolean(string localName, string namespaceURI) => throw null; public virtual System.DateTime ReadElementContentAsDateTime() => throw null; public virtual System.DateTime ReadElementContentAsDateTime(string localName, string namespaceURI) => throw null; - public virtual System.Decimal ReadElementContentAsDecimal() => throw null; - public virtual System.Decimal ReadElementContentAsDecimal(string localName, string namespaceURI) => throw null; + public virtual decimal ReadElementContentAsDecimal() => throw null; + public virtual decimal ReadElementContentAsDecimal(string localName, string namespaceURI) => throw null; public virtual double ReadElementContentAsDouble() => throw null; public virtual double ReadElementContentAsDouble(string localName, string namespaceURI) => throw null; public virtual float ReadElementContentAsFloat() => throw null; public virtual float ReadElementContentAsFloat(string localName, string namespaceURI) => throw null; public virtual int ReadElementContentAsInt() => throw null; public virtual int ReadElementContentAsInt(string localName, string namespaceURI) => throw null; - public virtual System.Int64 ReadElementContentAsLong() => throw null; - public virtual System.Int64 ReadElementContentAsLong(string localName, string namespaceURI) => throw null; + public virtual long ReadElementContentAsLong() => throw null; + public virtual long ReadElementContentAsLong(string localName, string namespaceURI) => throw null; public virtual object ReadElementContentAsObject() => throw null; public virtual object ReadElementContentAsObject(string localName, string namespaceURI) => throw null; public virtual System.Threading.Tasks.Task ReadElementContentAsObjectAsync() => throw null; @@ -900,102 +1735,97 @@ namespace System public virtual bool ReadToFollowing(string localName, string namespaceURI) => throw null; public virtual bool ReadToNextSibling(string name) => throw null; public virtual bool ReadToNextSibling(string localName, string namespaceURI) => throw null; - public virtual int ReadValueChunk(System.Char[] buffer, int index, int count) => throw null; - public virtual System.Threading.Tasks.Task ReadValueChunkAsync(System.Char[] buffer, int index, int count) => throw null; + public virtual int ReadValueChunk(char[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.Task ReadValueChunkAsync(char[] buffer, int index, int count) => throw null; public abstract void ResolveEntity(); public virtual System.Xml.Schema.IXmlSchemaInfo SchemaInfo { get => throw null; } public virtual System.Xml.XmlReaderSettings Settings { get => throw null; } public virtual void Skip() => throw null; public virtual System.Threading.Tasks.Task SkipAsync() => throw null; + public virtual string this[int i] { get => throw null; } + public virtual string this[string name] { get => throw null; } + public virtual string this[string name, string namespaceURI] { get => throw null; } public abstract string Value { get; } public virtual System.Type ValueType { get => throw null; } public virtual string XmlLang { get => throw null; } - protected XmlReader() => throw null; public virtual System.Xml.XmlSpace XmlSpace { get => throw null; } } - - public class XmlReaderSettings + public sealed class XmlReaderSettings { - public bool Async { get => throw null; set => throw null; } - public bool CheckCharacters { get => throw null; set => throw null; } + public bool Async { get => throw null; set { } } + public bool CheckCharacters { get => throw null; set { } } public System.Xml.XmlReaderSettings Clone() => throw null; - public bool CloseInput { get => throw null; set => throw null; } - public System.Xml.ConformanceLevel ConformanceLevel { get => throw null; set => throw null; } - public System.Xml.DtdProcessing DtdProcessing { get => throw null; set => throw null; } - public bool IgnoreComments { get => throw null; set => throw null; } - public bool IgnoreProcessingInstructions { get => throw null; set => throw null; } - public bool IgnoreWhitespace { get => throw null; set => throw null; } - public int LineNumberOffset { get => throw null; set => throw null; } - public int LinePositionOffset { get => throw null; set => throw null; } - public System.Int64 MaxCharactersFromEntities { get => throw null; set => throw null; } - public System.Int64 MaxCharactersInDocument { get => throw null; set => throw null; } - public System.Xml.XmlNameTable NameTable { get => throw null; set => throw null; } - public bool ProhibitDtd { get => throw null; set => throw null; } - public void Reset() => throw null; - public System.Xml.Schema.XmlSchemaSet Schemas { get => throw null; set => throw null; } - public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler; - public System.Xml.Schema.XmlSchemaValidationFlags ValidationFlags { get => throw null; set => throw null; } - public System.Xml.ValidationType ValidationType { get => throw null; set => throw null; } + public bool CloseInput { get => throw null; set { } } + public System.Xml.ConformanceLevel ConformanceLevel { get => throw null; set { } } public XmlReaderSettings() => throw null; - public System.Xml.XmlResolver XmlResolver { set => throw null; } + public System.Xml.DtdProcessing DtdProcessing { get => throw null; set { } } + public bool IgnoreComments { get => throw null; set { } } + public bool IgnoreProcessingInstructions { get => throw null; set { } } + public bool IgnoreWhitespace { get => throw null; set { } } + public int LineNumberOffset { get => throw null; set { } } + public int LinePositionOffset { get => throw null; set { } } + public long MaxCharactersFromEntities { get => throw null; set { } } + public long MaxCharactersInDocument { get => throw null; set { } } + public System.Xml.XmlNameTable NameTable { get => throw null; set { } } + public bool ProhibitDtd { get => throw null; set { } } + public void Reset() => throw null; + public System.Xml.Schema.XmlSchemaSet Schemas { get => throw null; set { } } + public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + public System.Xml.Schema.XmlSchemaValidationFlags ValidationFlags { get => throw null; set { } } + public System.Xml.ValidationType ValidationType { get => throw null; set { } } + public System.Xml.XmlResolver XmlResolver { set { } } } - public abstract class XmlResolver { - public virtual System.Net.ICredentials Credentials { set => throw null; } + public virtual System.Net.ICredentials Credentials { set { } } + protected XmlResolver() => throw null; public abstract object GetEntity(System.Uri absoluteUri, string role, System.Type ofObjectToReturn); public virtual System.Threading.Tasks.Task GetEntityAsync(System.Uri absoluteUri, string role, System.Type ofObjectToReturn) => throw null; public virtual System.Uri ResolveUri(System.Uri baseUri, string relativeUri) => throw null; public virtual bool SupportsType(System.Uri absoluteUri, System.Type type) => throw null; public static System.Xml.XmlResolver ThrowingResolver { get => throw null; } - protected XmlResolver() => throw null; } - public class XmlSecureResolver : System.Xml.XmlResolver { - public override System.Net.ICredentials Credentials { set => throw null; } + public override System.Net.ICredentials Credentials { set { } } + public XmlSecureResolver(System.Xml.XmlResolver resolver, string securityUrl) => throw null; public override object GetEntity(System.Uri absoluteUri, string role, System.Type ofObjectToReturn) => throw null; public override System.Threading.Tasks.Task GetEntityAsync(System.Uri absoluteUri, string role, System.Type ofObjectToReturn) => throw null; public override System.Uri ResolveUri(System.Uri baseUri, string relativeUri) => throw null; - public XmlSecureResolver(System.Xml.XmlResolver resolver, string securityUrl) => throw null; } - public class XmlSignificantWhitespace : System.Xml.XmlCharacterData { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; + protected XmlSignificantWhitespace(string strData, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; public override string LocalName { get => throw null; } public override string Name { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } public override System.Xml.XmlNode ParentNode { get => throw null; } public override System.Xml.XmlNode PreviousText { get => throw null; } - public override string Value { get => throw null; set => throw null; } + public override string Value { get => throw null; set { } } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlSignificantWhitespace(string strData, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; } - - public enum XmlSpace : int + public enum XmlSpace { - Default = 1, None = 0, + Default = 1, Preserve = 2, } - public class XmlText : System.Xml.XmlCharacterData { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; + protected XmlText(string strData, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; public override string LocalName { get => throw null; } public override string Name { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } public override System.Xml.XmlNode ParentNode { get => throw null; } public override System.Xml.XmlNode PreviousText { get => throw null; } public virtual System.Xml.XmlText SplitText(int offset) => throw null; - public override string Value { get => throw null; set => throw null; } + public override string Value { get => throw null; set { } } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlText(string strData, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; } - public class XmlTextReader : System.Xml.XmlReader, System.Xml.IXmlLineInfo, System.Xml.IXmlNamespaceResolver { public override int AttributeCount { get => throw null; } @@ -1004,11 +1834,25 @@ namespace System public override bool CanReadValueChunk { get => throw null; } public override bool CanResolveEntity { get => throw null; } public override void Close() => throw null; + protected XmlTextReader() => throw null; + public XmlTextReader(System.IO.Stream input) => throw null; + public XmlTextReader(System.IO.Stream input, System.Xml.XmlNameTable nt) => throw null; + public XmlTextReader(System.IO.Stream xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context) => throw null; + public XmlTextReader(System.IO.TextReader input) => throw null; + public XmlTextReader(System.IO.TextReader input, System.Xml.XmlNameTable nt) => throw null; + public XmlTextReader(string url) => throw null; + public XmlTextReader(string url, System.IO.Stream input) => throw null; + public XmlTextReader(string url, System.IO.Stream input, System.Xml.XmlNameTable nt) => throw null; + public XmlTextReader(string url, System.IO.TextReader input) => throw null; + public XmlTextReader(string url, System.IO.TextReader input, System.Xml.XmlNameTable nt) => throw null; + public XmlTextReader(string url, System.Xml.XmlNameTable nt) => throw null; + public XmlTextReader(string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context) => throw null; + protected XmlTextReader(System.Xml.XmlNameTable nt) => throw null; public override int Depth { get => throw null; } - public System.Xml.DtdProcessing DtdProcessing { get => throw null; set => throw null; } - public override bool EOF { get => throw null; } + public System.Xml.DtdProcessing DtdProcessing { get => throw null; set { } } public System.Text.Encoding Encoding { get => throw null; } - public System.Xml.EntityHandling EntityHandling { get => throw null; set => throw null; } + public System.Xml.EntityHandling EntityHandling { get => throw null; set { } } + public override bool EOF { get => throw null; } public override string GetAttribute(int i) => throw null; public override string GetAttribute(string name) => throw null; public override string GetAttribute(string localName, string namespaceURI) => throw null; @@ -1032,65 +1876,53 @@ namespace System public override bool MoveToFirstAttribute() => throw null; public override bool MoveToNextAttribute() => throw null; public override string Name { get => throw null; } - public override System.Xml.XmlNameTable NameTable { get => throw null; } + public bool Namespaces { get => throw null; set { } } public override string NamespaceURI { get => throw null; } - public bool Namespaces { get => throw null; set => throw null; } + public override System.Xml.XmlNameTable NameTable { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } - public bool Normalization { get => throw null; set => throw null; } + public bool Normalization { get => throw null; set { } } public override string Prefix { get => throw null; } - public bool ProhibitDtd { get => throw null; set => throw null; } - public override System.Char QuoteChar { get => throw null; } + public bool ProhibitDtd { get => throw null; set { } } + public override char QuoteChar { get => throw null; } public override bool Read() => throw null; public override bool ReadAttributeValue() => throw null; - public int ReadBase64(System.Byte[] array, int offset, int len) => throw null; - public int ReadBinHex(System.Byte[] array, int offset, int len) => throw null; - public int ReadChars(System.Char[] buffer, int index, int count) => throw null; - public override int ReadContentAsBase64(System.Byte[] buffer, int index, int count) => throw null; - public override int ReadContentAsBinHex(System.Byte[] buffer, int index, int count) => throw null; - public override int ReadElementContentAsBase64(System.Byte[] buffer, int index, int count) => throw null; - public override int ReadElementContentAsBinHex(System.Byte[] buffer, int index, int count) => throw null; + public int ReadBase64(byte[] array, int offset, int len) => throw null; + public int ReadBinHex(byte[] array, int offset, int len) => throw null; + public int ReadChars(char[] buffer, int index, int count) => throw null; + public override int ReadContentAsBase64(byte[] buffer, int index, int count) => throw null; + public override int ReadContentAsBinHex(byte[] buffer, int index, int count) => throw null; + public override int ReadElementContentAsBase64(byte[] buffer, int index, int count) => throw null; + public override int ReadElementContentAsBinHex(byte[] buffer, int index, int count) => throw null; public override System.Xml.ReadState ReadState { get => throw null; } public override string ReadString() => throw null; public void ResetState() => throw null; public override void ResolveEntity() => throw null; public override void Skip() => throw null; public override string Value { get => throw null; } - public System.Xml.WhitespaceHandling WhitespaceHandling { get => throw null; set => throw null; } + public System.Xml.WhitespaceHandling WhitespaceHandling { get => throw null; set { } } public override string XmlLang { get => throw null; } - public System.Xml.XmlResolver XmlResolver { set => throw null; } + public System.Xml.XmlResolver XmlResolver { set { } } public override System.Xml.XmlSpace XmlSpace { get => throw null; } - protected XmlTextReader() => throw null; - public XmlTextReader(System.IO.Stream input) => throw null; - public XmlTextReader(System.IO.Stream input, System.Xml.XmlNameTable nt) => throw null; - public XmlTextReader(System.IO.Stream xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context) => throw null; - public XmlTextReader(System.IO.TextReader input) => throw null; - public XmlTextReader(System.IO.TextReader input, System.Xml.XmlNameTable nt) => throw null; - protected XmlTextReader(System.Xml.XmlNameTable nt) => throw null; - public XmlTextReader(string url) => throw null; - public XmlTextReader(string url, System.IO.Stream input) => throw null; - public XmlTextReader(string url, System.IO.Stream input, System.Xml.XmlNameTable nt) => throw null; - public XmlTextReader(string url, System.IO.TextReader input) => throw null; - public XmlTextReader(string url, System.IO.TextReader input, System.Xml.XmlNameTable nt) => throw null; - public XmlTextReader(string url, System.Xml.XmlNameTable nt) => throw null; - public XmlTextReader(string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context) => throw null; } - public class XmlTextWriter : System.Xml.XmlWriter { public System.IO.Stream BaseStream { get => throw null; } public override void Close() => throw null; + public XmlTextWriter(System.IO.Stream w, System.Text.Encoding encoding) => throw null; + public XmlTextWriter(System.IO.TextWriter w) => throw null; + public XmlTextWriter(string filename, System.Text.Encoding encoding) => throw null; public override void Flush() => throw null; - public System.Xml.Formatting Formatting { get => throw null; set => throw null; } - public System.Char IndentChar { get => throw null; set => throw null; } - public int Indentation { get => throw null; set => throw null; } + public System.Xml.Formatting Formatting { get => throw null; set { } } + public int Indentation { get => throw null; set { } } + public char IndentChar { get => throw null; set { } } public override string LookupPrefix(string ns) => throw null; - public bool Namespaces { get => throw null; set => throw null; } - public System.Char QuoteChar { get => throw null; set => throw null; } - public override void WriteBase64(System.Byte[] buffer, int index, int count) => throw null; - public override void WriteBinHex(System.Byte[] buffer, int index, int count) => throw null; + public bool Namespaces { get => throw null; set { } } + public char QuoteChar { get => throw null; set { } } + public override void WriteBase64(byte[] buffer, int index, int count) => throw null; + public override void WriteBinHex(byte[] buffer, int index, int count) => throw null; public override void WriteCData(string text) => throw null; - public override void WriteCharEntity(System.Char ch) => throw null; - public override void WriteChars(System.Char[] buffer, int index, int count) => throw null; + public override void WriteCharEntity(char ch) => throw null; + public override void WriteChars(char[] buffer, int index, int count) => throw null; public override void WriteComment(string text) => throw null; public override void WriteDocType(string name, string pubid, string sysid, string subset) => throw null; public override void WriteEndAttribute() => throw null; @@ -1102,7 +1934,7 @@ namespace System public override void WriteNmToken(string name) => throw null; public override void WriteProcessingInstruction(string name, string text) => throw null; public override void WriteQualifiedName(string localName, string ns) => throw null; - public override void WriteRaw(System.Char[] buffer, int index, int count) => throw null; + public override void WriteRaw(char[] buffer, int index, int count) => throw null; public override void WriteRaw(string data) => throw null; public override void WriteStartAttribute(string prefix, string localName, string ns) => throw null; public override void WriteStartDocument() => throw null; @@ -1110,43 +1942,37 @@ namespace System public override void WriteStartElement(string prefix, string localName, string ns) => throw null; public override System.Xml.WriteState WriteState { get => throw null; } public override void WriteString(string text) => throw null; - public override void WriteSurrogateCharEntity(System.Char lowChar, System.Char highChar) => throw null; + public override void WriteSurrogateCharEntity(char lowChar, char highChar) => throw null; public override void WriteWhitespace(string ws) => throw null; public override string XmlLang { get => throw null; } public override System.Xml.XmlSpace XmlSpace { get => throw null; } - public XmlTextWriter(System.IO.Stream w, System.Text.Encoding encoding) => throw null; - public XmlTextWriter(System.IO.TextWriter w) => throw null; - public XmlTextWriter(string filename, System.Text.Encoding encoding) => throw null; } - - public enum XmlTokenizedType : int + public enum XmlTokenizedType { CDATA = 0, - ENTITIES = 5, - ENTITY = 4, - ENUMERATION = 9, ID = 1, IDREF = 2, IDREFS = 3, - NCName = 11, + ENTITY = 4, + ENTITIES = 5, NMTOKEN = 6, NMTOKENS = 7, NOTATION = 8, - None = 12, + ENUMERATION = 9, QName = 10, + NCName = 11, + None = 12, } - public class XmlUrlResolver : System.Xml.XmlResolver { - public System.Net.Cache.RequestCachePolicy CachePolicy { set => throw null; } - public override System.Net.ICredentials Credentials { set => throw null; } + public System.Net.Cache.RequestCachePolicy CachePolicy { set { } } + public override System.Net.ICredentials Credentials { set { } } + public XmlUrlResolver() => throw null; public override object GetEntity(System.Uri absoluteUri, string role, System.Type ofObjectToReturn) => throw null; public override System.Threading.Tasks.Task GetEntityAsync(System.Uri absoluteUri, string role, System.Type ofObjectToReturn) => throw null; - public System.Net.IWebProxy Proxy { set => throw null; } + public System.Net.IWebProxy Proxy { set { } } public override System.Uri ResolveUri(System.Uri baseUri, string relativeUri) => throw null; - public XmlUrlResolver() => throw null; } - public class XmlValidatingReader : System.Xml.XmlReader, System.Xml.IXmlLineInfo, System.Xml.IXmlNamespaceResolver { public override int AttributeCount { get => throw null; } @@ -1154,10 +1980,13 @@ namespace System public override bool CanReadBinaryContent { get => throw null; } public override bool CanResolveEntity { get => throw null; } public override void Close() => throw null; + public XmlValidatingReader(System.IO.Stream xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context) => throw null; + public XmlValidatingReader(string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context) => throw null; + public XmlValidatingReader(System.Xml.XmlReader reader) => throw null; public override int Depth { get => throw null; } - public override bool EOF { get => throw null; } public System.Text.Encoding Encoding { get => throw null; } - public System.Xml.EntityHandling EntityHandling { get => throw null; set => throw null; } + public System.Xml.EntityHandling EntityHandling { get => throw null; set { } } + public override bool EOF { get => throw null; } public override string GetAttribute(int i) => throw null; public override string GetAttribute(string name) => throw null; public override string GetAttribute(string localName, string namespaceURI) => throw null; @@ -1179,63 +2008,59 @@ namespace System public override bool MoveToFirstAttribute() => throw null; public override bool MoveToNextAttribute() => throw null; public override string Name { get => throw null; } - public override System.Xml.XmlNameTable NameTable { get => throw null; } + public bool Namespaces { get => throw null; set { } } public override string NamespaceURI { get => throw null; } - public bool Namespaces { get => throw null; set => throw null; } + public override System.Xml.XmlNameTable NameTable { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } public override string Prefix { get => throw null; } - public override System.Char QuoteChar { get => throw null; } + public override char QuoteChar { get => throw null; } public override bool Read() => throw null; public override bool ReadAttributeValue() => throw null; - public override int ReadContentAsBase64(System.Byte[] buffer, int index, int count) => throw null; - public override int ReadContentAsBinHex(System.Byte[] buffer, int index, int count) => throw null; - public override int ReadElementContentAsBase64(System.Byte[] buffer, int index, int count) => throw null; - public override int ReadElementContentAsBinHex(System.Byte[] buffer, int index, int count) => throw null; + public override int ReadContentAsBase64(byte[] buffer, int index, int count) => throw null; + public override int ReadContentAsBinHex(byte[] buffer, int index, int count) => throw null; + public override int ReadElementContentAsBase64(byte[] buffer, int index, int count) => throw null; + public override int ReadElementContentAsBinHex(byte[] buffer, int index, int count) => throw null; + public System.Xml.XmlReader Reader { get => throw null; } public override System.Xml.ReadState ReadState { get => throw null; } public override string ReadString() => throw null; public object ReadTypedValue() => throw null; - public System.Xml.XmlReader Reader { get => throw null; } public override void ResolveEntity() => throw null; - public object SchemaType { get => throw null; } public System.Xml.Schema.XmlSchemaCollection Schemas { get => throw null; } - public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler; - public System.Xml.ValidationType ValidationType { get => throw null; set => throw null; } + public object SchemaType { get => throw null; } + public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + public System.Xml.ValidationType ValidationType { get => throw null; set { } } public override string Value { get => throw null; } public override string XmlLang { get => throw null; } - public System.Xml.XmlResolver XmlResolver { set => throw null; } + public System.Xml.XmlResolver XmlResolver { set { } } public override System.Xml.XmlSpace XmlSpace { get => throw null; } - public XmlValidatingReader(System.IO.Stream xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context) => throw null; - public XmlValidatingReader(System.Xml.XmlReader reader) => throw null; - public XmlValidatingReader(string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context) => throw null; } - public class XmlWhitespace : System.Xml.XmlCharacterData { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; + protected XmlWhitespace(string strData, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; public override string LocalName { get => throw null; } public override string Name { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } public override System.Xml.XmlNode ParentNode { get => throw null; } public override System.Xml.XmlNode PreviousText { get => throw null; } - public override string Value { get => throw null; set => throw null; } + public override string Value { get => throw null; set { } } public override void WriteContentTo(System.Xml.XmlWriter w) => throw null; public override void WriteTo(System.Xml.XmlWriter w) => throw null; - protected internal XmlWhitespace(string strData, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; } - public abstract class XmlWriter : System.IAsyncDisposable, System.IDisposable { public virtual void Close() => throw null; public static System.Xml.XmlWriter Create(System.IO.Stream output) => throw null; public static System.Xml.XmlWriter Create(System.IO.Stream output, System.Xml.XmlWriterSettings settings) => throw null; - public static System.Xml.XmlWriter Create(System.Text.StringBuilder output) => throw null; - public static System.Xml.XmlWriter Create(System.Text.StringBuilder output, System.Xml.XmlWriterSettings settings) => throw null; public static System.Xml.XmlWriter Create(System.IO.TextWriter output) => throw null; public static System.Xml.XmlWriter Create(System.IO.TextWriter output, System.Xml.XmlWriterSettings settings) => throw null; - public static System.Xml.XmlWriter Create(System.Xml.XmlWriter output) => throw null; - public static System.Xml.XmlWriter Create(System.Xml.XmlWriter output, System.Xml.XmlWriterSettings settings) => throw null; public static System.Xml.XmlWriter Create(string outputFileName) => throw null; public static System.Xml.XmlWriter Create(string outputFileName, System.Xml.XmlWriterSettings settings) => throw null; + public static System.Xml.XmlWriter Create(System.Text.StringBuilder output) => throw null; + public static System.Xml.XmlWriter Create(System.Text.StringBuilder output, System.Xml.XmlWriterSettings settings) => throw null; + public static System.Xml.XmlWriter Create(System.Xml.XmlWriter output) => throw null; + public static System.Xml.XmlWriter Create(System.Xml.XmlWriter output, System.Xml.XmlWriterSettings settings) => throw null; + protected XmlWriter() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; @@ -1244,22 +2069,22 @@ namespace System public virtual System.Threading.Tasks.Task FlushAsync() => throw null; public abstract string LookupPrefix(string ns); public virtual System.Xml.XmlWriterSettings Settings { get => throw null; } + public virtual void WriteAttributes(System.Xml.XmlReader reader, bool defattr) => throw null; + public virtual System.Threading.Tasks.Task WriteAttributesAsync(System.Xml.XmlReader reader, bool defattr) => throw null; public void WriteAttributeString(string localName, string value) => throw null; public void WriteAttributeString(string localName, string ns, string value) => throw null; public void WriteAttributeString(string prefix, string localName, string ns, string value) => throw null; public System.Threading.Tasks.Task WriteAttributeStringAsync(string prefix, string localName, string ns, string value) => throw null; - public virtual void WriteAttributes(System.Xml.XmlReader reader, bool defattr) => throw null; - public virtual System.Threading.Tasks.Task WriteAttributesAsync(System.Xml.XmlReader reader, bool defattr) => throw null; - public abstract void WriteBase64(System.Byte[] buffer, int index, int count); - public virtual System.Threading.Tasks.Task WriteBase64Async(System.Byte[] buffer, int index, int count) => throw null; - public virtual void WriteBinHex(System.Byte[] buffer, int index, int count) => throw null; - public virtual System.Threading.Tasks.Task WriteBinHexAsync(System.Byte[] buffer, int index, int count) => throw null; + public abstract void WriteBase64(byte[] buffer, int index, int count); + public virtual System.Threading.Tasks.Task WriteBase64Async(byte[] buffer, int index, int count) => throw null; + public virtual void WriteBinHex(byte[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.Task WriteBinHexAsync(byte[] buffer, int index, int count) => throw null; public abstract void WriteCData(string text); public virtual System.Threading.Tasks.Task WriteCDataAsync(string text) => throw null; - public abstract void WriteCharEntity(System.Char ch); - public virtual System.Threading.Tasks.Task WriteCharEntityAsync(System.Char ch) => throw null; - public abstract void WriteChars(System.Char[] buffer, int index, int count); - public virtual System.Threading.Tasks.Task WriteCharsAsync(System.Char[] buffer, int index, int count) => throw null; + public abstract void WriteCharEntity(char ch); + public virtual System.Threading.Tasks.Task WriteCharEntityAsync(char ch) => throw null; + public abstract void WriteChars(char[] buffer, int index, int count); + public virtual System.Threading.Tasks.Task WriteCharsAsync(char[] buffer, int index, int count) => throw null; public abstract void WriteComment(string text); public virtual System.Threading.Tasks.Task WriteCommentAsync(string text) => throw null; public abstract void WriteDocType(string name, string pubid, string sysid, string subset); @@ -1269,7 +2094,7 @@ namespace System public void WriteElementString(string prefix, string localName, string ns, string value) => throw null; public System.Threading.Tasks.Task WriteElementStringAsync(string prefix, string localName, string ns, string value) => throw null; public abstract void WriteEndAttribute(); - protected internal virtual System.Threading.Tasks.Task WriteEndAttributeAsync() => throw null; + protected virtual System.Threading.Tasks.Task WriteEndAttributeAsync() => throw null; public abstract void WriteEndDocument(); public virtual System.Threading.Tasks.Task WriteEndDocumentAsync() => throw null; public abstract void WriteEndElement(); @@ -1282,22 +2107,22 @@ namespace System public virtual System.Threading.Tasks.Task WriteNameAsync(string name) => throw null; public virtual void WriteNmToken(string name) => throw null; public virtual System.Threading.Tasks.Task WriteNmTokenAsync(string name) => throw null; - public virtual void WriteNode(System.Xml.XPath.XPathNavigator navigator, bool defattr) => throw null; public virtual void WriteNode(System.Xml.XmlReader reader, bool defattr) => throw null; - public virtual System.Threading.Tasks.Task WriteNodeAsync(System.Xml.XPath.XPathNavigator navigator, bool defattr) => throw null; + public virtual void WriteNode(System.Xml.XPath.XPathNavigator navigator, bool defattr) => throw null; public virtual System.Threading.Tasks.Task WriteNodeAsync(System.Xml.XmlReader reader, bool defattr) => throw null; + public virtual System.Threading.Tasks.Task WriteNodeAsync(System.Xml.XPath.XPathNavigator navigator, bool defattr) => throw null; public abstract void WriteProcessingInstruction(string name, string text); public virtual System.Threading.Tasks.Task WriteProcessingInstructionAsync(string name, string text) => throw null; public virtual void WriteQualifiedName(string localName, string ns) => throw null; public virtual System.Threading.Tasks.Task WriteQualifiedNameAsync(string localName, string ns) => throw null; - public abstract void WriteRaw(System.Char[] buffer, int index, int count); + public abstract void WriteRaw(char[] buffer, int index, int count); public abstract void WriteRaw(string data); - public virtual System.Threading.Tasks.Task WriteRawAsync(System.Char[] buffer, int index, int count) => throw null; + public virtual System.Threading.Tasks.Task WriteRawAsync(char[] buffer, int index, int count) => throw null; public virtual System.Threading.Tasks.Task WriteRawAsync(string data) => throw null; public void WriteStartAttribute(string localName) => throw null; public void WriteStartAttribute(string localName, string ns) => throw null; public abstract void WriteStartAttribute(string prefix, string localName, string ns); - protected internal virtual System.Threading.Tasks.Task WriteStartAttributeAsync(string prefix, string localName, string ns) => throw null; + protected virtual System.Threading.Tasks.Task WriteStartAttributeAsync(string prefix, string localName, string ns) => throw null; public abstract void WriteStartDocument(); public abstract void WriteStartDocument(bool standalone); public virtual System.Threading.Tasks.Task WriteStartDocumentAsync() => throw null; @@ -1309,1040 +2134,43 @@ namespace System public abstract System.Xml.WriteState WriteState { get; } public abstract void WriteString(string text); public virtual System.Threading.Tasks.Task WriteStringAsync(string text) => throw null; - public abstract void WriteSurrogateCharEntity(System.Char lowChar, System.Char highChar); - public virtual System.Threading.Tasks.Task WriteSurrogateCharEntityAsync(System.Char lowChar, System.Char highChar) => throw null; + public abstract void WriteSurrogateCharEntity(char lowChar, char highChar); + public virtual System.Threading.Tasks.Task WriteSurrogateCharEntityAsync(char lowChar, char highChar) => throw null; + public virtual void WriteValue(bool value) => throw null; public virtual void WriteValue(System.DateTime value) => throw null; public virtual void WriteValue(System.DateTimeOffset value) => throw null; - public virtual void WriteValue(bool value) => throw null; - public virtual void WriteValue(System.Decimal value) => throw null; + public virtual void WriteValue(decimal value) => throw null; public virtual void WriteValue(double value) => throw null; - public virtual void WriteValue(float value) => throw null; public virtual void WriteValue(int value) => throw null; - public virtual void WriteValue(System.Int64 value) => throw null; + public virtual void WriteValue(long value) => throw null; public virtual void WriteValue(object value) => throw null; + public virtual void WriteValue(float value) => throw null; public virtual void WriteValue(string value) => throw null; public abstract void WriteWhitespace(string ws); public virtual System.Threading.Tasks.Task WriteWhitespaceAsync(string ws) => throw null; public virtual string XmlLang { get => throw null; } public virtual System.Xml.XmlSpace XmlSpace { get => throw null; } - protected XmlWriter() => throw null; } - - public class XmlWriterSettings + public sealed class XmlWriterSettings { - public bool Async { get => throw null; set => throw null; } - public bool CheckCharacters { get => throw null; set => throw null; } + public bool Async { get => throw null; set { } } + public bool CheckCharacters { get => throw null; set { } } public System.Xml.XmlWriterSettings Clone() => throw null; - public bool CloseOutput { get => throw null; set => throw null; } - public System.Xml.ConformanceLevel ConformanceLevel { get => throw null; set => throw null; } - public bool DoNotEscapeUriAttributes { get => throw null; set => throw null; } - public System.Text.Encoding Encoding { get => throw null; set => throw null; } - public bool Indent { get => throw null; set => throw null; } - public string IndentChars { get => throw null; set => throw null; } - public System.Xml.NamespaceHandling NamespaceHandling { get => throw null; set => throw null; } - public string NewLineChars { get => throw null; set => throw null; } - public System.Xml.NewLineHandling NewLineHandling { get => throw null; set => throw null; } - public bool NewLineOnAttributes { get => throw null; set => throw null; } - public bool OmitXmlDeclaration { get => throw null; set => throw null; } + public bool CloseOutput { get => throw null; set { } } + public System.Xml.ConformanceLevel ConformanceLevel { get => throw null; set { } } + public XmlWriterSettings() => throw null; + public bool DoNotEscapeUriAttributes { get => throw null; set { } } + public System.Text.Encoding Encoding { get => throw null; set { } } + public bool Indent { get => throw null; set { } } + public string IndentChars { get => throw null; set { } } + public System.Xml.NamespaceHandling NamespaceHandling { get => throw null; set { } } + public string NewLineChars { get => throw null; set { } } + public System.Xml.NewLineHandling NewLineHandling { get => throw null; set { } } + public bool NewLineOnAttributes { get => throw null; set { } } + public bool OmitXmlDeclaration { get => throw null; set { } } public System.Xml.XmlOutputMethod OutputMethod { get => throw null; } public void Reset() => throw null; - public bool WriteEndDocumentOnClose { get => throw null; set => throw null; } - public XmlWriterSettings() => throw null; - } - - namespace Resolvers - { - [System.Flags] - public enum XmlKnownDtds : int - { - All = 65535, - None = 0, - Rss091 = 2, - Xhtml10 = 1, - } - - public class XmlPreloadedResolver : System.Xml.XmlResolver - { - public void Add(System.Uri uri, System.Byte[] value) => throw null; - public void Add(System.Uri uri, System.Byte[] value, int offset, int count) => throw null; - public void Add(System.Uri uri, System.IO.Stream value) => throw null; - public void Add(System.Uri uri, string value) => throw null; - public override System.Net.ICredentials Credentials { set => throw null; } - public override object GetEntity(System.Uri absoluteUri, string role, System.Type ofObjectToReturn) => throw null; - public override System.Threading.Tasks.Task GetEntityAsync(System.Uri absoluteUri, string role, System.Type ofObjectToReturn) => throw null; - public System.Collections.Generic.IEnumerable PreloadedUris { get => throw null; } - public void Remove(System.Uri uri) => throw null; - public override System.Uri ResolveUri(System.Uri baseUri, string relativeUri) => throw null; - public override bool SupportsType(System.Uri absoluteUri, System.Type type) => throw null; - public XmlPreloadedResolver() => throw null; - public XmlPreloadedResolver(System.Xml.Resolvers.XmlKnownDtds preloadedDtds) => throw null; - public XmlPreloadedResolver(System.Xml.XmlResolver fallbackResolver) => throw null; - public XmlPreloadedResolver(System.Xml.XmlResolver fallbackResolver, System.Xml.Resolvers.XmlKnownDtds preloadedDtds) => throw null; - public XmlPreloadedResolver(System.Xml.XmlResolver fallbackResolver, System.Xml.Resolvers.XmlKnownDtds preloadedDtds, System.Collections.Generic.IEqualityComparer uriComparer) => throw null; - } - - } - namespace Schema - { - public interface IXmlSchemaInfo - { - bool IsDefault { get; } - bool IsNil { get; } - System.Xml.Schema.XmlSchemaSimpleType MemberType { get; } - System.Xml.Schema.XmlSchemaAttribute SchemaAttribute { get; } - System.Xml.Schema.XmlSchemaElement SchemaElement { get; } - System.Xml.Schema.XmlSchemaType SchemaType { get; } - System.Xml.Schema.XmlSchemaValidity Validity { get; } - } - - public class ValidationEventArgs : System.EventArgs - { - public System.Xml.Schema.XmlSchemaException Exception { get => throw null; } - public string Message { get => throw null; } - public System.Xml.Schema.XmlSeverityType Severity { get => throw null; } - } - - public delegate void ValidationEventHandler(object sender, System.Xml.Schema.ValidationEventArgs e); - - public class XmlAtomicValue : System.Xml.XPath.XPathItem, System.ICloneable - { - public System.Xml.Schema.XmlAtomicValue Clone() => throw null; - object System.ICloneable.Clone() => throw null; - public override bool IsNode { get => throw null; } - public override string ToString() => throw null; - public override object TypedValue { get => throw null; } - public override string Value { get => throw null; } - public override object ValueAs(System.Type type, System.Xml.IXmlNamespaceResolver nsResolver) => throw null; - public override bool ValueAsBoolean { get => throw null; } - public override System.DateTime ValueAsDateTime { get => throw null; } - public override double ValueAsDouble { get => throw null; } - public override int ValueAsInt { get => throw null; } - public override System.Int64 ValueAsLong { get => throw null; } - public override System.Type ValueType { get => throw null; } - public override System.Xml.Schema.XmlSchemaType XmlType { get => throw null; } - } - - public class XmlSchema : System.Xml.Schema.XmlSchemaObject - { - public System.Xml.Schema.XmlSchemaForm AttributeFormDefault { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectTable AttributeGroups { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectTable Attributes { get => throw null; } - public System.Xml.Schema.XmlSchemaDerivationMethod BlockDefault { get => throw null; set => throw null; } - public void Compile(System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; - public void Compile(System.Xml.Schema.ValidationEventHandler validationEventHandler, System.Xml.XmlResolver resolver) => throw null; - public System.Xml.Schema.XmlSchemaForm ElementFormDefault { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectTable Elements { get => throw null; } - public System.Xml.Schema.XmlSchemaDerivationMethod FinalDefault { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectTable Groups { get => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Includes { get => throw null; } - public const string InstanceNamespace = default; - public bool IsCompiled { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } - public const string Namespace = default; - public System.Xml.Schema.XmlSchemaObjectTable Notations { get => throw null; } - public static System.Xml.Schema.XmlSchema Read(System.IO.Stream stream, System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; - public static System.Xml.Schema.XmlSchema Read(System.IO.TextReader reader, System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; - public static System.Xml.Schema.XmlSchema Read(System.Xml.XmlReader reader, System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; - public System.Xml.Schema.XmlSchemaObjectTable SchemaTypes { get => throw null; } - public string TargetNamespace { get => throw null; set => throw null; } - public System.Xml.XmlAttribute[] UnhandledAttributes { get => throw null; set => throw null; } - public string Version { get => throw null; set => throw null; } - public void Write(System.IO.Stream stream) => throw null; - public void Write(System.IO.Stream stream, System.Xml.XmlNamespaceManager namespaceManager) => throw null; - public void Write(System.IO.TextWriter writer) => throw null; - public void Write(System.IO.TextWriter writer, System.Xml.XmlNamespaceManager namespaceManager) => throw null; - public void Write(System.Xml.XmlWriter writer) => throw null; - public void Write(System.Xml.XmlWriter writer, System.Xml.XmlNamespaceManager namespaceManager) => throw null; - public XmlSchema() => throw null; - } - - public class XmlSchemaAll : System.Xml.Schema.XmlSchemaGroupBase - { - public override System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } - public XmlSchemaAll() => throw null; - } - - public class XmlSchemaAnnotated : System.Xml.Schema.XmlSchemaObject - { - public System.Xml.Schema.XmlSchemaAnnotation Annotation { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Xml.XmlAttribute[] UnhandledAttributes { get => throw null; set => throw null; } - public XmlSchemaAnnotated() => throw null; - } - - public class XmlSchemaAnnotation : System.Xml.Schema.XmlSchemaObject - { - public string Id { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } - public System.Xml.XmlAttribute[] UnhandledAttributes { get => throw null; set => throw null; } - public XmlSchemaAnnotation() => throw null; - } - - public class XmlSchemaAny : System.Xml.Schema.XmlSchemaParticle - { - public string Namespace { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaContentProcessing ProcessContents { get => throw null; set => throw null; } - public XmlSchemaAny() => throw null; - } - - public class XmlSchemaAnyAttribute : System.Xml.Schema.XmlSchemaAnnotated - { - public string Namespace { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaContentProcessing ProcessContents { get => throw null; set => throw null; } - public XmlSchemaAnyAttribute() => throw null; - } - - public class XmlSchemaAppInfo : System.Xml.Schema.XmlSchemaObject - { - public System.Xml.XmlNode[] Markup { get => throw null; set => throw null; } - public string Source { get => throw null; set => throw null; } - public XmlSchemaAppInfo() => throw null; - } - - public class XmlSchemaAttribute : System.Xml.Schema.XmlSchemaAnnotated - { - public System.Xml.Schema.XmlSchemaSimpleType AttributeSchemaType { get => throw null; } - public object AttributeType { get => throw null; } - public string DefaultValue { get => throw null; set => throw null; } - public string FixedValue { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } - public System.Xml.XmlQualifiedName RefName { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaSimpleType SchemaType { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName SchemaTypeName { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaUse Use { get => throw null; set => throw null; } - public XmlSchemaAttribute() => throw null; - } - - public class XmlSchemaAttributeGroup : System.Xml.Schema.XmlSchemaAnnotated - { - public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } - public string Name { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } - public System.Xml.Schema.XmlSchemaAttributeGroup RedefinedAttributeGroup { get => throw null; } - public XmlSchemaAttributeGroup() => throw null; - } - - public class XmlSchemaAttributeGroupRef : System.Xml.Schema.XmlSchemaAnnotated - { - public System.Xml.XmlQualifiedName RefName { get => throw null; set => throw null; } - public XmlSchemaAttributeGroupRef() => throw null; - } - - public class XmlSchemaChoice : System.Xml.Schema.XmlSchemaGroupBase - { - public override System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } - public XmlSchemaChoice() => throw null; - } - - public class XmlSchemaCollection : System.Collections.ICollection, System.Collections.IEnumerable - { - public System.Xml.Schema.XmlSchema Add(System.Xml.Schema.XmlSchema schema) => throw null; - public System.Xml.Schema.XmlSchema Add(System.Xml.Schema.XmlSchema schema, System.Xml.XmlResolver resolver) => throw null; - public void Add(System.Xml.Schema.XmlSchemaCollection schema) => throw null; - public System.Xml.Schema.XmlSchema Add(string ns, System.Xml.XmlReader reader) => throw null; - public System.Xml.Schema.XmlSchema Add(string ns, System.Xml.XmlReader reader, System.Xml.XmlResolver resolver) => throw null; - public System.Xml.Schema.XmlSchema Add(string ns, string uri) => throw null; - public bool Contains(System.Xml.Schema.XmlSchema schema) => throw null; - public bool Contains(string ns) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(System.Xml.Schema.XmlSchema[] array, int index) => throw null; - public int Count { get => throw null; } - int System.Collections.ICollection.Count { get => throw null; } - public System.Xml.Schema.XmlSchemaCollectionEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public System.Xml.Schema.XmlSchema this[string ns] { get => throw null; } - public System.Xml.XmlNameTable NameTable { get => throw null; } - object System.Collections.ICollection.SyncRoot { get => throw null; } - public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler; - public XmlSchemaCollection() => throw null; - public XmlSchemaCollection(System.Xml.XmlNameTable nametable) => throw null; - } - - public class XmlSchemaCollectionEnumerator : System.Collections.IEnumerator - { - public System.Xml.Schema.XmlSchema Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public bool MoveNext() => throw null; - bool System.Collections.IEnumerator.MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - public class XmlSchemaCompilationSettings - { - public bool EnableUpaCheck { get => throw null; set => throw null; } - public XmlSchemaCompilationSettings() => throw null; - } - - public class XmlSchemaComplexContent : System.Xml.Schema.XmlSchemaContentModel - { - public override System.Xml.Schema.XmlSchemaContent Content { get => throw null; set => throw null; } - public bool IsMixed { get => throw null; set => throw null; } - public XmlSchemaComplexContent() => throw null; - } - - public class XmlSchemaComplexContentExtension : System.Xml.Schema.XmlSchemaContent - { - public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } - public System.Xml.XmlQualifiedName BaseTypeName { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaParticle Particle { get => throw null; set => throw null; } - public XmlSchemaComplexContentExtension() => throw null; - } - - public class XmlSchemaComplexContentRestriction : System.Xml.Schema.XmlSchemaContent - { - public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } - public System.Xml.XmlQualifiedName BaseTypeName { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaParticle Particle { get => throw null; set => throw null; } - public XmlSchemaComplexContentRestriction() => throw null; - } - - public class XmlSchemaComplexType : System.Xml.Schema.XmlSchemaType - { - public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectTable AttributeUses { get => throw null; } - public System.Xml.Schema.XmlSchemaAnyAttribute AttributeWildcard { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } - public System.Xml.Schema.XmlSchemaDerivationMethod Block { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaDerivationMethod BlockResolved { get => throw null; } - public System.Xml.Schema.XmlSchemaContentModel ContentModel { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaContentType ContentType { get => throw null; } - public System.Xml.Schema.XmlSchemaParticle ContentTypeParticle { get => throw null; } - public bool IsAbstract { get => throw null; set => throw null; } - public override bool IsMixed { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaParticle Particle { get => throw null; set => throw null; } - public XmlSchemaComplexType() => throw null; - } - - public abstract class XmlSchemaContent : System.Xml.Schema.XmlSchemaAnnotated - { - protected XmlSchemaContent() => throw null; - } - - public abstract class XmlSchemaContentModel : System.Xml.Schema.XmlSchemaAnnotated - { - public abstract System.Xml.Schema.XmlSchemaContent Content { get; set; } - protected XmlSchemaContentModel() => throw null; - } - - public enum XmlSchemaContentProcessing : int - { - Lax = 2, - None = 0, - Skip = 1, - Strict = 3, - } - - public enum XmlSchemaContentType : int - { - ElementOnly = 2, - Empty = 1, - Mixed = 3, - TextOnly = 0, - } - - public abstract class XmlSchemaDatatype - { - public virtual object ChangeType(object value, System.Type targetType) => throw null; - public virtual object ChangeType(object value, System.Type targetType, System.Xml.IXmlNamespaceResolver namespaceResolver) => throw null; - public virtual bool IsDerivedFrom(System.Xml.Schema.XmlSchemaDatatype datatype) => throw null; - public abstract object ParseValue(string s, System.Xml.XmlNameTable nameTable, System.Xml.IXmlNamespaceResolver nsmgr); - public abstract System.Xml.XmlTokenizedType TokenizedType { get; } - public virtual System.Xml.Schema.XmlTypeCode TypeCode { get => throw null; } - public abstract System.Type ValueType { get; } - public virtual System.Xml.Schema.XmlSchemaDatatypeVariety Variety { get => throw null; } - } - - public enum XmlSchemaDatatypeVariety : int - { - Atomic = 0, - List = 1, - Union = 2, - } - - [System.Flags] - public enum XmlSchemaDerivationMethod : int - { - All = 255, - Empty = 0, - Extension = 2, - List = 8, - None = 256, - Restriction = 4, - Substitution = 1, - Union = 16, - } - - public class XmlSchemaDocumentation : System.Xml.Schema.XmlSchemaObject - { - public string Language { get => throw null; set => throw null; } - public System.Xml.XmlNode[] Markup { get => throw null; set => throw null; } - public string Source { get => throw null; set => throw null; } - public XmlSchemaDocumentation() => throw null; - } - - public class XmlSchemaElement : System.Xml.Schema.XmlSchemaParticle - { - public System.Xml.Schema.XmlSchemaDerivationMethod Block { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaDerivationMethod BlockResolved { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Constraints { get => throw null; } - public string DefaultValue { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaType ElementSchemaType { get => throw null; } - public object ElementType { get => throw null; } - public System.Xml.Schema.XmlSchemaDerivationMethod Final { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaDerivationMethod FinalResolved { get => throw null; } - public string FixedValue { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set => throw null; } - public bool IsAbstract { get => throw null; set => throw null; } - public bool IsNillable { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } - public System.Xml.XmlQualifiedName RefName { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaType SchemaType { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName SchemaTypeName { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName SubstitutionGroup { get => throw null; set => throw null; } - public XmlSchemaElement() => throw null; - } - - public class XmlSchemaEnumerationFacet : System.Xml.Schema.XmlSchemaFacet - { - public XmlSchemaEnumerationFacet() => throw null; - } - - public class XmlSchemaException : System.SystemException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public int LineNumber { get => throw null; } - public int LinePosition { get => throw null; } - public override string Message { get => throw null; } - public System.Xml.Schema.XmlSchemaObject SourceSchemaObject { get => throw null; } - public string SourceUri { get => throw null; } - public XmlSchemaException() => throw null; - protected XmlSchemaException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public XmlSchemaException(string message) => throw null; - public XmlSchemaException(string message, System.Exception innerException) => throw null; - public XmlSchemaException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; - } - - public abstract class XmlSchemaExternal : System.Xml.Schema.XmlSchemaObject - { - public string Id { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchema Schema { get => throw null; set => throw null; } - public string SchemaLocation { get => throw null; set => throw null; } - public System.Xml.XmlAttribute[] UnhandledAttributes { get => throw null; set => throw null; } - protected XmlSchemaExternal() => throw null; - } - - public abstract class XmlSchemaFacet : System.Xml.Schema.XmlSchemaAnnotated - { - public virtual bool IsFixed { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } - protected XmlSchemaFacet() => throw null; - } - - public enum XmlSchemaForm : int - { - None = 0, - Qualified = 1, - Unqualified = 2, - } - - public class XmlSchemaFractionDigitsFacet : System.Xml.Schema.XmlSchemaNumericFacet - { - public XmlSchemaFractionDigitsFacet() => throw null; - } - - public class XmlSchemaGroup : System.Xml.Schema.XmlSchemaAnnotated - { - public string Name { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaGroupBase Particle { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } - public XmlSchemaGroup() => throw null; - } - - public abstract class XmlSchemaGroupBase : System.Xml.Schema.XmlSchemaParticle - { - public abstract System.Xml.Schema.XmlSchemaObjectCollection Items { get; } - internal XmlSchemaGroupBase() => throw null; - } - - public class XmlSchemaGroupRef : System.Xml.Schema.XmlSchemaParticle - { - public System.Xml.Schema.XmlSchemaGroupBase Particle { get => throw null; } - public System.Xml.XmlQualifiedName RefName { get => throw null; set => throw null; } - public XmlSchemaGroupRef() => throw null; - } - - public class XmlSchemaIdentityConstraint : System.Xml.Schema.XmlSchemaAnnotated - { - public System.Xml.Schema.XmlSchemaObjectCollection Fields { get => throw null; } - public string Name { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } - public System.Xml.Schema.XmlSchemaXPath Selector { get => throw null; set => throw null; } - public XmlSchemaIdentityConstraint() => throw null; - } - - public class XmlSchemaImport : System.Xml.Schema.XmlSchemaExternal - { - public System.Xml.Schema.XmlSchemaAnnotation Annotation { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public XmlSchemaImport() => throw null; - } - - public class XmlSchemaInclude : System.Xml.Schema.XmlSchemaExternal - { - public System.Xml.Schema.XmlSchemaAnnotation Annotation { get => throw null; set => throw null; } - public XmlSchemaInclude() => throw null; - } - - public class XmlSchemaInference - { - public enum InferenceOption : int - { - Relaxed = 1, - Restricted = 0, - } - - - public System.Xml.Schema.XmlSchemaSet InferSchema(System.Xml.XmlReader instanceDocument) => throw null; - public System.Xml.Schema.XmlSchemaSet InferSchema(System.Xml.XmlReader instanceDocument, System.Xml.Schema.XmlSchemaSet schemas) => throw null; - public System.Xml.Schema.XmlSchemaInference.InferenceOption Occurrence { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaInference.InferenceOption TypeInference { get => throw null; set => throw null; } - public XmlSchemaInference() => throw null; - } - - public class XmlSchemaInferenceException : System.Xml.Schema.XmlSchemaException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public XmlSchemaInferenceException() => throw null; - protected XmlSchemaInferenceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public XmlSchemaInferenceException(string message) => throw null; - public XmlSchemaInferenceException(string message, System.Exception innerException) => throw null; - public XmlSchemaInferenceException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; - } - - public class XmlSchemaInfo : System.Xml.Schema.IXmlSchemaInfo - { - public System.Xml.Schema.XmlSchemaContentType ContentType { get => throw null; set => throw null; } - public bool IsDefault { get => throw null; set => throw null; } - public bool IsNil { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaSimpleType MemberType { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaAttribute SchemaAttribute { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaElement SchemaElement { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaType SchemaType { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaValidity Validity { get => throw null; set => throw null; } - public XmlSchemaInfo() => throw null; - } - - public class XmlSchemaKey : System.Xml.Schema.XmlSchemaIdentityConstraint - { - public XmlSchemaKey() => throw null; - } - - public class XmlSchemaKeyref : System.Xml.Schema.XmlSchemaIdentityConstraint - { - public System.Xml.XmlQualifiedName Refer { get => throw null; set => throw null; } - public XmlSchemaKeyref() => throw null; - } - - public class XmlSchemaLengthFacet : System.Xml.Schema.XmlSchemaNumericFacet - { - public XmlSchemaLengthFacet() => throw null; - } - - public class XmlSchemaMaxExclusiveFacet : System.Xml.Schema.XmlSchemaFacet - { - public XmlSchemaMaxExclusiveFacet() => throw null; - } - - public class XmlSchemaMaxInclusiveFacet : System.Xml.Schema.XmlSchemaFacet - { - public XmlSchemaMaxInclusiveFacet() => throw null; - } - - public class XmlSchemaMaxLengthFacet : System.Xml.Schema.XmlSchemaNumericFacet - { - public XmlSchemaMaxLengthFacet() => throw null; - } - - public class XmlSchemaMinExclusiveFacet : System.Xml.Schema.XmlSchemaFacet - { - public XmlSchemaMinExclusiveFacet() => throw null; - } - - public class XmlSchemaMinInclusiveFacet : System.Xml.Schema.XmlSchemaFacet - { - public XmlSchemaMinInclusiveFacet() => throw null; - } - - public class XmlSchemaMinLengthFacet : System.Xml.Schema.XmlSchemaNumericFacet - { - public XmlSchemaMinLengthFacet() => throw null; - } - - public class XmlSchemaNotation : System.Xml.Schema.XmlSchemaAnnotated - { - public string Name { get => throw null; set => throw null; } - public string Public { get => throw null; set => throw null; } - public string System { get => throw null; set => throw null; } - public XmlSchemaNotation() => throw null; - } - - public abstract class XmlSchemaNumericFacet : System.Xml.Schema.XmlSchemaFacet - { - protected XmlSchemaNumericFacet() => throw null; - } - - public abstract class XmlSchemaObject - { - public int LineNumber { get => throw null; set => throw null; } - public int LinePosition { get => throw null; set => throw null; } - public System.Xml.Serialization.XmlSerializerNamespaces Namespaces { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObject Parent { get => throw null; set => throw null; } - public string SourceUri { get => throw null; set => throw null; } - protected XmlSchemaObject() => throw null; - } - - public class XmlSchemaObjectCollection : System.Collections.CollectionBase - { - public int Add(System.Xml.Schema.XmlSchemaObject item) => throw null; - public bool Contains(System.Xml.Schema.XmlSchemaObject item) => throw null; - public void CopyTo(System.Xml.Schema.XmlSchemaObject[] array, int index) => throw null; - public System.Xml.Schema.XmlSchemaObjectEnumerator GetEnumerator() => throw null; - public int IndexOf(System.Xml.Schema.XmlSchemaObject item) => throw null; - public void Insert(int index, System.Xml.Schema.XmlSchemaObject item) => throw null; - public virtual System.Xml.Schema.XmlSchemaObject this[int index] { get => throw null; set => throw null; } - protected override void OnClear() => throw null; - protected override void OnInsert(int index, object item) => throw null; - protected override void OnRemove(int index, object item) => throw null; - protected override void OnSet(int index, object oldValue, object newValue) => throw null; - public void Remove(System.Xml.Schema.XmlSchemaObject item) => throw null; - public XmlSchemaObjectCollection() => throw null; - public XmlSchemaObjectCollection(System.Xml.Schema.XmlSchemaObject parent) => throw null; - } - - public class XmlSchemaObjectEnumerator : System.Collections.IEnumerator - { - public System.Xml.Schema.XmlSchemaObject Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public bool MoveNext() => throw null; - bool System.Collections.IEnumerator.MoveNext() => throw null; - public void Reset() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - public class XmlSchemaObjectTable - { - public bool Contains(System.Xml.XmlQualifiedName name) => throw null; - public int Count { get => throw null; } - public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; - public System.Xml.Schema.XmlSchemaObject this[System.Xml.XmlQualifiedName name] { get => throw null; } - public System.Collections.ICollection Names { get => throw null; } - public System.Collections.ICollection Values { get => throw null; } - } - - public abstract class XmlSchemaParticle : System.Xml.Schema.XmlSchemaAnnotated - { - public System.Decimal MaxOccurs { get => throw null; set => throw null; } - public string MaxOccursString { get => throw null; set => throw null; } - public System.Decimal MinOccurs { get => throw null; set => throw null; } - public string MinOccursString { get => throw null; set => throw null; } - protected XmlSchemaParticle() => throw null; - } - - public class XmlSchemaPatternFacet : System.Xml.Schema.XmlSchemaFacet - { - public XmlSchemaPatternFacet() => throw null; - } - - public class XmlSchemaRedefine : System.Xml.Schema.XmlSchemaExternal - { - public System.Xml.Schema.XmlSchemaObjectTable AttributeGroups { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectTable Groups { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectTable SchemaTypes { get => throw null; } - public XmlSchemaRedefine() => throw null; - } - - public class XmlSchemaSequence : System.Xml.Schema.XmlSchemaGroupBase - { - public override System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } - public XmlSchemaSequence() => throw null; - } - - public class XmlSchemaSet - { - public System.Xml.Schema.XmlSchema Add(System.Xml.Schema.XmlSchema schema) => throw null; - public void Add(System.Xml.Schema.XmlSchemaSet schemas) => throw null; - public System.Xml.Schema.XmlSchema Add(string targetNamespace, System.Xml.XmlReader schemaDocument) => throw null; - public System.Xml.Schema.XmlSchema Add(string targetNamespace, string schemaUri) => throw null; - public System.Xml.Schema.XmlSchemaCompilationSettings CompilationSettings { get => throw null; set => throw null; } - public void Compile() => throw null; - public bool Contains(System.Xml.Schema.XmlSchema schema) => throw null; - public bool Contains(string targetNamespace) => throw null; - public void CopyTo(System.Xml.Schema.XmlSchema[] schemas, int index) => throw null; - public int Count { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectTable GlobalAttributes { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectTable GlobalElements { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectTable GlobalTypes { get => throw null; } - public bool IsCompiled { get => throw null; } - public System.Xml.XmlNameTable NameTable { get => throw null; } - public System.Xml.Schema.XmlSchema Remove(System.Xml.Schema.XmlSchema schema) => throw null; - public bool RemoveRecursive(System.Xml.Schema.XmlSchema schemaToRemove) => throw null; - public System.Xml.Schema.XmlSchema Reprocess(System.Xml.Schema.XmlSchema schema) => throw null; - public System.Collections.ICollection Schemas() => throw null; - public System.Collections.ICollection Schemas(string targetNamespace) => throw null; - public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler; - public System.Xml.XmlResolver XmlResolver { set => throw null; } - public XmlSchemaSet() => throw null; - public XmlSchemaSet(System.Xml.XmlNameTable nameTable) => throw null; - } - - public class XmlSchemaSimpleContent : System.Xml.Schema.XmlSchemaContentModel - { - public override System.Xml.Schema.XmlSchemaContent Content { get => throw null; set => throw null; } - public XmlSchemaSimpleContent() => throw null; - } - - public class XmlSchemaSimpleContentExtension : System.Xml.Schema.XmlSchemaContent - { - public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } - public System.Xml.XmlQualifiedName BaseTypeName { get => throw null; set => throw null; } - public XmlSchemaSimpleContentExtension() => throw null; - } - - public class XmlSchemaSimpleContentRestriction : System.Xml.Schema.XmlSchemaContent - { - public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Attributes { get => throw null; } - public System.Xml.Schema.XmlSchemaSimpleType BaseType { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName BaseTypeName { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Facets { get => throw null; } - public XmlSchemaSimpleContentRestriction() => throw null; - } - - public class XmlSchemaSimpleType : System.Xml.Schema.XmlSchemaType - { - public System.Xml.Schema.XmlSchemaSimpleTypeContent Content { get => throw null; set => throw null; } - public XmlSchemaSimpleType() => throw null; - } - - public abstract class XmlSchemaSimpleTypeContent : System.Xml.Schema.XmlSchemaAnnotated - { - protected XmlSchemaSimpleTypeContent() => throw null; - } - - public class XmlSchemaSimpleTypeList : System.Xml.Schema.XmlSchemaSimpleTypeContent - { - public System.Xml.Schema.XmlSchemaSimpleType BaseItemType { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaSimpleType ItemType { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName ItemTypeName { get => throw null; set => throw null; } - public XmlSchemaSimpleTypeList() => throw null; - } - - public class XmlSchemaSimpleTypeRestriction : System.Xml.Schema.XmlSchemaSimpleTypeContent - { - public System.Xml.Schema.XmlSchemaSimpleType BaseType { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName BaseTypeName { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection Facets { get => throw null; } - public XmlSchemaSimpleTypeRestriction() => throw null; - } - - public class XmlSchemaSimpleTypeUnion : System.Xml.Schema.XmlSchemaSimpleTypeContent - { - public System.Xml.Schema.XmlSchemaSimpleType[] BaseMemberTypes { get => throw null; } - public System.Xml.Schema.XmlSchemaObjectCollection BaseTypes { get => throw null; } - public System.Xml.XmlQualifiedName[] MemberTypes { get => throw null; set => throw null; } - public XmlSchemaSimpleTypeUnion() => throw null; - } - - public class XmlSchemaTotalDigitsFacet : System.Xml.Schema.XmlSchemaNumericFacet - { - public XmlSchemaTotalDigitsFacet() => throw null; - } - - public class XmlSchemaType : System.Xml.Schema.XmlSchemaAnnotated - { - public object BaseSchemaType { get => throw null; } - public System.Xml.Schema.XmlSchemaType BaseXmlSchemaType { get => throw null; } - public System.Xml.Schema.XmlSchemaDatatype Datatype { get => throw null; } - public System.Xml.Schema.XmlSchemaDerivationMethod DerivedBy { get => throw null; } - public System.Xml.Schema.XmlSchemaDerivationMethod Final { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaDerivationMethod FinalResolved { get => throw null; } - public static System.Xml.Schema.XmlSchemaComplexType GetBuiltInComplexType(System.Xml.XmlQualifiedName qualifiedName) => throw null; - public static System.Xml.Schema.XmlSchemaComplexType GetBuiltInComplexType(System.Xml.Schema.XmlTypeCode typeCode) => throw null; - public static System.Xml.Schema.XmlSchemaSimpleType GetBuiltInSimpleType(System.Xml.XmlQualifiedName qualifiedName) => throw null; - public static System.Xml.Schema.XmlSchemaSimpleType GetBuiltInSimpleType(System.Xml.Schema.XmlTypeCode typeCode) => throw null; - public static bool IsDerivedFrom(System.Xml.Schema.XmlSchemaType derivedType, System.Xml.Schema.XmlSchemaType baseType, System.Xml.Schema.XmlSchemaDerivationMethod except) => throw null; - public virtual bool IsMixed { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName QualifiedName { get => throw null; } - public System.Xml.Schema.XmlTypeCode TypeCode { get => throw null; } - public XmlSchemaType() => throw null; - } - - public class XmlSchemaUnique : System.Xml.Schema.XmlSchemaIdentityConstraint - { - public XmlSchemaUnique() => throw null; - } - - public enum XmlSchemaUse : int - { - None = 0, - Optional = 1, - Prohibited = 2, - Required = 3, - } - - public class XmlSchemaValidationException : System.Xml.Schema.XmlSchemaException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected internal void SetSourceObject(object sourceObject) => throw null; - public object SourceObject { get => throw null; } - public XmlSchemaValidationException() => throw null; - protected XmlSchemaValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public XmlSchemaValidationException(string message) => throw null; - public XmlSchemaValidationException(string message, System.Exception innerException) => throw null; - public XmlSchemaValidationException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; - } - - [System.Flags] - public enum XmlSchemaValidationFlags : int - { - AllowXmlAttributes = 16, - None = 0, - ProcessIdentityConstraints = 8, - ProcessInlineSchema = 1, - ProcessSchemaLocation = 2, - ReportValidationWarnings = 4, - } - - public class XmlSchemaValidator - { - public void AddSchema(System.Xml.Schema.XmlSchema schema) => throw null; - public void EndValidation() => throw null; - public System.Xml.Schema.XmlSchemaAttribute[] GetExpectedAttributes() => throw null; - public System.Xml.Schema.XmlSchemaParticle[] GetExpectedParticles() => throw null; - public void GetUnspecifiedDefaultAttributes(System.Collections.ArrayList defaultAttributes) => throw null; - public void Initialize() => throw null; - public void Initialize(System.Xml.Schema.XmlSchemaObject partialValidationType) => throw null; - public System.Xml.IXmlLineInfo LineInfoProvider { get => throw null; set => throw null; } - public void SkipToEndElement(System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; - public System.Uri SourceUri { get => throw null; set => throw null; } - public object ValidateAttribute(string localName, string namespaceUri, System.Xml.Schema.XmlValueGetter attributeValue, System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; - public object ValidateAttribute(string localName, string namespaceUri, string attributeValue, System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; - public void ValidateElement(string localName, string namespaceUri, System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; - public void ValidateElement(string localName, string namespaceUri, System.Xml.Schema.XmlSchemaInfo schemaInfo, string xsiType, string xsiNil, string xsiSchemaLocation, string xsiNoNamespaceSchemaLocation) => throw null; - public object ValidateEndElement(System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; - public object ValidateEndElement(System.Xml.Schema.XmlSchemaInfo schemaInfo, object typedValue) => throw null; - public void ValidateEndOfAttributes(System.Xml.Schema.XmlSchemaInfo schemaInfo) => throw null; - public void ValidateText(System.Xml.Schema.XmlValueGetter elementValue) => throw null; - public void ValidateText(string elementValue) => throw null; - public void ValidateWhitespace(System.Xml.Schema.XmlValueGetter elementValue) => throw null; - public void ValidateWhitespace(string elementValue) => throw null; - public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler; - public object ValidationEventSender { get => throw null; set => throw null; } - public System.Xml.XmlResolver XmlResolver { set => throw null; } - public XmlSchemaValidator(System.Xml.XmlNameTable nameTable, System.Xml.Schema.XmlSchemaSet schemas, System.Xml.IXmlNamespaceResolver namespaceResolver, System.Xml.Schema.XmlSchemaValidationFlags validationFlags) => throw null; - } - - public enum XmlSchemaValidity : int - { - Invalid = 2, - NotKnown = 0, - Valid = 1, - } - - public class XmlSchemaWhiteSpaceFacet : System.Xml.Schema.XmlSchemaFacet - { - public XmlSchemaWhiteSpaceFacet() => throw null; - } - - public class XmlSchemaXPath : System.Xml.Schema.XmlSchemaAnnotated - { - public string XPath { get => throw null; set => throw null; } - public XmlSchemaXPath() => throw null; - } - - public enum XmlSeverityType : int - { - Error = 0, - Warning = 1, - } - - public enum XmlTypeCode : int - { - AnyAtomicType = 10, - AnyUri = 28, - Attribute = 5, - Base64Binary = 27, - Boolean = 13, - Byte = 46, - Comment = 8, - Date = 20, - DateTime = 18, - DayTimeDuration = 54, - Decimal = 14, - Document = 3, - Double = 16, - Duration = 17, - Element = 4, - Entity = 39, - Float = 15, - GDay = 24, - GMonth = 25, - GMonthDay = 23, - GYear = 22, - GYearMonth = 21, - HexBinary = 26, - Id = 37, - Idref = 38, - Int = 44, - Integer = 40, - Item = 1, - Language = 33, - Long = 43, - NCName = 36, - Name = 35, - Namespace = 6, - NegativeInteger = 42, - NmToken = 34, - Node = 2, - NonNegativeInteger = 47, - NonPositiveInteger = 41, - None = 0, - NormalizedString = 31, - Notation = 30, - PositiveInteger = 52, - ProcessingInstruction = 7, - QName = 29, - Short = 45, - String = 12, - Text = 9, - Time = 19, - Token = 32, - UnsignedByte = 51, - UnsignedInt = 49, - UnsignedLong = 48, - UnsignedShort = 50, - UntypedAtomic = 11, - YearMonthDuration = 53, - } - - public delegate object XmlValueGetter(); - - } - namespace Serialization - { - public interface IXmlSerializable - { - System.Xml.Schema.XmlSchema GetSchema(); - void ReadXml(System.Xml.XmlReader reader); - void WriteXml(System.Xml.XmlWriter writer); - } - - public class XmlAnyAttributeAttribute : System.Attribute - { - public XmlAnyAttributeAttribute() => throw null; - } - - public class XmlAnyElementAttribute : System.Attribute - { - public string Name { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - public XmlAnyElementAttribute() => throw null; - public XmlAnyElementAttribute(string name) => throw null; - public XmlAnyElementAttribute(string name, string ns) => throw null; - } - - public class XmlAttributeAttribute : System.Attribute - { - public string AttributeName { get => throw null; set => throw null; } - public string DataType { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } - public XmlAttributeAttribute() => throw null; - public XmlAttributeAttribute(System.Type type) => throw null; - public XmlAttributeAttribute(string attributeName) => throw null; - public XmlAttributeAttribute(string attributeName, System.Type type) => throw null; - } - - public class XmlElementAttribute : System.Attribute - { - public string DataType { get => throw null; set => throw null; } - public string ElementName { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } - public XmlElementAttribute() => throw null; - public XmlElementAttribute(System.Type type) => throw null; - public XmlElementAttribute(string elementName) => throw null; - public XmlElementAttribute(string elementName, System.Type type) => throw null; - } - - public class XmlEnumAttribute : System.Attribute - { - public string Name { get => throw null; set => throw null; } - public XmlEnumAttribute() => throw null; - public XmlEnumAttribute(string name) => throw null; - } - - public class XmlIgnoreAttribute : System.Attribute - { - public XmlIgnoreAttribute() => throw null; - } - - public class XmlNamespaceDeclarationsAttribute : System.Attribute - { - public XmlNamespaceDeclarationsAttribute() => throw null; - } - - public class XmlRootAttribute : System.Attribute - { - public string DataType { get => throw null; set => throw null; } - public string ElementName { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public XmlRootAttribute() => throw null; - public XmlRootAttribute(string elementName) => throw null; - } - - public class XmlSchemaProviderAttribute : System.Attribute - { - public bool IsAny { get => throw null; set => throw null; } - public string MethodName { get => throw null; } - public XmlSchemaProviderAttribute(string methodName) => throw null; - } - - public class XmlSerializerNamespaces - { - public void Add(string prefix, string ns) => throw null; - public int Count { get => throw null; } - public System.Xml.XmlQualifiedName[] ToArray() => throw null; - public XmlSerializerNamespaces() => throw null; - public XmlSerializerNamespaces(System.Xml.XmlQualifiedName[] namespaces) => throw null; - public XmlSerializerNamespaces(System.Xml.Serialization.XmlSerializerNamespaces namespaces) => throw null; - } - - public class XmlTextAttribute : System.Attribute - { - public string DataType { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } - public XmlTextAttribute() => throw null; - public XmlTextAttribute(System.Type type) => throw null; - } - + public bool WriteEndDocumentOnClose { get => throw null; set { } } } namespace XPath { @@ -2350,7 +2178,22 @@ namespace System { System.Xml.XPath.XPathNavigator CreateNavigator(); } - + public enum XmlCaseOrder + { + None = 0, + UpperFirst = 1, + LowerFirst = 2, + } + public enum XmlDataType + { + Text = 1, + Number = 2, + } + public enum XmlSortOrder + { + Ascending = 1, + Descending = 2, + } public abstract class XPathExpression { public abstract void AddSort(object expr, System.Collections.IComparer comparer); @@ -2363,9 +2206,9 @@ namespace System public abstract void SetContext(System.Xml.IXmlNamespaceResolver nsResolver); public abstract void SetContext(System.Xml.XmlNamespaceManager nsManager); } - public abstract class XPathItem { + protected XPathItem() => throw null; public abstract bool IsNode { get; } public abstract object TypedValue { get; } public abstract string Value { get; } @@ -2375,25 +2218,22 @@ namespace System public abstract System.DateTime ValueAsDateTime { get; } public abstract double ValueAsDouble { get; } public abstract int ValueAsInt { get; } - public abstract System.Int64 ValueAsLong { get; } + public abstract long ValueAsLong { get; } public abstract System.Type ValueType { get; } - protected XPathItem() => throw null; public abstract System.Xml.Schema.XmlSchemaType XmlType { get; } } - - public enum XPathNamespaceScope : int + public enum XPathNamespaceScope { All = 0, ExcludeXml = 1, Local = 2, } - public abstract class XPathNavigator : System.Xml.XPath.XPathItem, System.ICloneable, System.Xml.IXmlNamespaceResolver, System.Xml.XPath.IXPathNavigable { public virtual System.Xml.XmlWriter AppendChild() => throw null; - public virtual void AppendChild(System.Xml.XPath.XPathNavigator newChild) => throw null; - public virtual void AppendChild(System.Xml.XmlReader newChild) => throw null; public virtual void AppendChild(string newChild) => throw null; + public virtual void AppendChild(System.Xml.XmlReader newChild) => throw null; + public virtual void AppendChild(System.Xml.XPath.XPathNavigator newChild) => throw null; public virtual void AppendChildElement(string prefix, string localName, string namespaceURI, string value) => throw null; public abstract string BaseURI { get; } public virtual bool CanEdit { get => throw null; } @@ -2405,55 +2245,56 @@ namespace System public virtual void CreateAttribute(string prefix, string localName, string namespaceURI, string value) => throw null; public virtual System.Xml.XmlWriter CreateAttributes() => throw null; public virtual System.Xml.XPath.XPathNavigator CreateNavigator() => throw null; + protected XPathNavigator() => throw null; public virtual void DeleteRange(System.Xml.XPath.XPathNavigator lastSiblingToDelete) => throw null; public virtual void DeleteSelf() => throw null; - public virtual object Evaluate(System.Xml.XPath.XPathExpression expr) => throw null; - public virtual object Evaluate(System.Xml.XPath.XPathExpression expr, System.Xml.XPath.XPathNodeIterator context) => throw null; public virtual object Evaluate(string xpath) => throw null; public virtual object Evaluate(string xpath, System.Xml.IXmlNamespaceResolver resolver) => throw null; + public virtual object Evaluate(System.Xml.XPath.XPathExpression expr) => throw null; + public virtual object Evaluate(System.Xml.XPath.XPathExpression expr, System.Xml.XPath.XPathNodeIterator context) => throw null; public virtual string GetAttribute(string localName, string namespaceURI) => throw null; public virtual string GetNamespace(string name) => throw null; public virtual System.Collections.Generic.IDictionary GetNamespacesInScope(System.Xml.XmlNamespaceScope scope) => throw null; public virtual bool HasAttributes { get => throw null; } public virtual bool HasChildren { get => throw null; } - public virtual string InnerXml { get => throw null; set => throw null; } + public virtual string InnerXml { get => throw null; set { } } public virtual System.Xml.XmlWriter InsertAfter() => throw null; - public virtual void InsertAfter(System.Xml.XPath.XPathNavigator newSibling) => throw null; - public virtual void InsertAfter(System.Xml.XmlReader newSibling) => throw null; public virtual void InsertAfter(string newSibling) => throw null; + public virtual void InsertAfter(System.Xml.XmlReader newSibling) => throw null; + public virtual void InsertAfter(System.Xml.XPath.XPathNavigator newSibling) => throw null; public virtual System.Xml.XmlWriter InsertBefore() => throw null; - public virtual void InsertBefore(System.Xml.XPath.XPathNavigator newSibling) => throw null; - public virtual void InsertBefore(System.Xml.XmlReader newSibling) => throw null; public virtual void InsertBefore(string newSibling) => throw null; + public virtual void InsertBefore(System.Xml.XmlReader newSibling) => throw null; + public virtual void InsertBefore(System.Xml.XPath.XPathNavigator newSibling) => throw null; public virtual void InsertElementAfter(string prefix, string localName, string namespaceURI, string value) => throw null; public virtual void InsertElementBefore(string prefix, string localName, string namespaceURI, string value) => throw null; public virtual bool IsDescendant(System.Xml.XPath.XPathNavigator nav) => throw null; public abstract bool IsEmptyElement { get; } - public override bool IsNode { get => throw null; } + public override sealed bool IsNode { get => throw null; } public abstract bool IsSamePosition(System.Xml.XPath.XPathNavigator other); public abstract string LocalName { get; } public virtual string LookupNamespace(string prefix) => throw null; public virtual string LookupPrefix(string namespaceURI) => throw null; - public virtual bool Matches(System.Xml.XPath.XPathExpression expr) => throw null; public virtual bool Matches(string xpath) => throw null; + public virtual bool Matches(System.Xml.XPath.XPathExpression expr) => throw null; public abstract bool MoveTo(System.Xml.XPath.XPathNavigator other); public virtual bool MoveToAttribute(string localName, string namespaceURI) => throw null; - public virtual bool MoveToChild(System.Xml.XPath.XPathNodeType type) => throw null; public virtual bool MoveToChild(string localName, string namespaceURI) => throw null; + public virtual bool MoveToChild(System.Xml.XPath.XPathNodeType type) => throw null; public virtual bool MoveToFirst() => throw null; public abstract bool MoveToFirstAttribute(); public abstract bool MoveToFirstChild(); public bool MoveToFirstNamespace() => throw null; public abstract bool MoveToFirstNamespace(System.Xml.XPath.XPathNamespaceScope namespaceScope); - public virtual bool MoveToFollowing(System.Xml.XPath.XPathNodeType type) => throw null; - public virtual bool MoveToFollowing(System.Xml.XPath.XPathNodeType type, System.Xml.XPath.XPathNavigator end) => throw null; public virtual bool MoveToFollowing(string localName, string namespaceURI) => throw null; public virtual bool MoveToFollowing(string localName, string namespaceURI, System.Xml.XPath.XPathNavigator end) => throw null; + public virtual bool MoveToFollowing(System.Xml.XPath.XPathNodeType type) => throw null; + public virtual bool MoveToFollowing(System.Xml.XPath.XPathNodeType type, System.Xml.XPath.XPathNavigator end) => throw null; public abstract bool MoveToId(string id); public virtual bool MoveToNamespace(string name) => throw null; public abstract bool MoveToNext(); - public virtual bool MoveToNext(System.Xml.XPath.XPathNodeType type) => throw null; public virtual bool MoveToNext(string localName, string namespaceURI) => throw null; + public virtual bool MoveToNext(System.Xml.XPath.XPathNodeType type) => throw null; public abstract bool MoveToNextAttribute(); public bool MoveToNextNamespace() => throw null; public abstract bool MoveToNextNamespace(System.Xml.XPath.XPathNamespaceScope namespaceScope); @@ -2461,35 +2302,35 @@ namespace System public abstract bool MoveToPrevious(); public virtual void MoveToRoot() => throw null; public abstract string Name { get; } - public abstract System.Xml.XmlNameTable NameTable { get; } public abstract string NamespaceURI { get; } + public abstract System.Xml.XmlNameTable NameTable { get; } public static System.Collections.IEqualityComparer NavigatorComparer { get => throw null; } public abstract System.Xml.XPath.XPathNodeType NodeType { get; } - public virtual string OuterXml { get => throw null; set => throw null; } + public virtual string OuterXml { get => throw null; set { } } public abstract string Prefix { get; } public virtual System.Xml.XmlWriter PrependChild() => throw null; - public virtual void PrependChild(System.Xml.XPath.XPathNavigator newChild) => throw null; - public virtual void PrependChild(System.Xml.XmlReader newChild) => throw null; public virtual void PrependChild(string newChild) => throw null; + public virtual void PrependChild(System.Xml.XmlReader newChild) => throw null; + public virtual void PrependChild(System.Xml.XPath.XPathNavigator newChild) => throw null; public virtual void PrependChildElement(string prefix, string localName, string namespaceURI, string value) => throw null; public virtual System.Xml.XmlReader ReadSubtree() => throw null; public virtual System.Xml.XmlWriter ReplaceRange(System.Xml.XPath.XPathNavigator lastSiblingToReplace) => throw null; - public virtual void ReplaceSelf(System.Xml.XPath.XPathNavigator newNode) => throw null; - public virtual void ReplaceSelf(System.Xml.XmlReader newNode) => throw null; public virtual void ReplaceSelf(string newNode) => throw null; + public virtual void ReplaceSelf(System.Xml.XmlReader newNode) => throw null; + public virtual void ReplaceSelf(System.Xml.XPath.XPathNavigator newNode) => throw null; public virtual System.Xml.Schema.IXmlSchemaInfo SchemaInfo { get => throw null; } - public virtual System.Xml.XPath.XPathNodeIterator Select(System.Xml.XPath.XPathExpression expr) => throw null; public virtual System.Xml.XPath.XPathNodeIterator Select(string xpath) => throw null; public virtual System.Xml.XPath.XPathNodeIterator Select(string xpath, System.Xml.IXmlNamespaceResolver resolver) => throw null; - public virtual System.Xml.XPath.XPathNodeIterator SelectAncestors(System.Xml.XPath.XPathNodeType type, bool matchSelf) => throw null; + public virtual System.Xml.XPath.XPathNodeIterator Select(System.Xml.XPath.XPathExpression expr) => throw null; public virtual System.Xml.XPath.XPathNodeIterator SelectAncestors(string name, string namespaceURI, bool matchSelf) => throw null; - public virtual System.Xml.XPath.XPathNodeIterator SelectChildren(System.Xml.XPath.XPathNodeType type) => throw null; + public virtual System.Xml.XPath.XPathNodeIterator SelectAncestors(System.Xml.XPath.XPathNodeType type, bool matchSelf) => throw null; public virtual System.Xml.XPath.XPathNodeIterator SelectChildren(string name, string namespaceURI) => throw null; - public virtual System.Xml.XPath.XPathNodeIterator SelectDescendants(System.Xml.XPath.XPathNodeType type, bool matchSelf) => throw null; + public virtual System.Xml.XPath.XPathNodeIterator SelectChildren(System.Xml.XPath.XPathNodeType type) => throw null; public virtual System.Xml.XPath.XPathNodeIterator SelectDescendants(string name, string namespaceURI, bool matchSelf) => throw null; - public virtual System.Xml.XPath.XPathNavigator SelectSingleNode(System.Xml.XPath.XPathExpression expression) => throw null; + public virtual System.Xml.XPath.XPathNodeIterator SelectDescendants(System.Xml.XPath.XPathNodeType type, bool matchSelf) => throw null; public virtual System.Xml.XPath.XPathNavigator SelectSingleNode(string xpath) => throw null; public virtual System.Xml.XPath.XPathNavigator SelectSingleNode(string xpath, System.Xml.IXmlNamespaceResolver resolver) => throw null; + public virtual System.Xml.XPath.XPathNavigator SelectSingleNode(System.Xml.XPath.XPathExpression expression) => throw null; public virtual void SetTypedValue(object typedValue) => throw null; public virtual void SetValue(string value) => throw null; public override string ToString() => throw null; @@ -2500,70 +2341,46 @@ namespace System public override System.DateTime ValueAsDateTime { get => throw null; } public override double ValueAsDouble { get => throw null; } public override int ValueAsInt { get => throw null; } - public override System.Int64 ValueAsLong { get => throw null; } + public override long ValueAsLong { get => throw null; } public override System.Type ValueType { get => throw null; } public virtual void WriteSubtree(System.Xml.XmlWriter writer) => throw null; - protected XPathNavigator() => throw null; public virtual string XmlLang { get => throw null; } public override System.Xml.Schema.XmlSchemaType XmlType { get => throw null; } } - public abstract class XPathNodeIterator : System.Collections.IEnumerable, System.ICloneable { public abstract System.Xml.XPath.XPathNodeIterator Clone(); object System.ICloneable.Clone() => throw null; public virtual int Count { get => throw null; } + protected XPathNodeIterator() => throw null; public abstract System.Xml.XPath.XPathNavigator Current { get; } public abstract int CurrentPosition { get; } public virtual System.Collections.IEnumerator GetEnumerator() => throw null; public abstract bool MoveNext(); - protected XPathNodeIterator() => throw null; } - - public enum XPathNodeType : int + public enum XPathNodeType { - All = 9, - Attribute = 2, - Comment = 8, - Element = 1, - Namespace = 3, - ProcessingInstruction = 7, Root = 0, - SignificantWhitespace = 5, + Element = 1, + Attribute = 2, + Namespace = 3, Text = 4, + SignificantWhitespace = 5, Whitespace = 6, + ProcessingInstruction = 7, + Comment = 8, + All = 9, } - - public enum XPathResultType : int + public enum XPathResultType { - Any = 5, - Boolean = 2, - Error = 6, - Navigator = 1, - NodeSet = 3, Number = 0, + Navigator = 1, String = 1, + Boolean = 2, + NodeSet = 3, + Any = 5, + Error = 6, } - - public enum XmlCaseOrder : int - { - LowerFirst = 2, - None = 0, - UpperFirst = 1, - } - - public enum XmlDataType : int - { - Number = 2, - Text = 1, - } - - public enum XmlSortOrder : int - { - Ascending = 1, - Descending = 2, - } - } namespace Xsl { @@ -2575,7 +2392,6 @@ namespace System int Minargs { get; } System.Xml.XPath.XPathResultType ReturnType { get; } } - public interface IXsltContextVariable { object Evaluate(System.Xml.Xsl.XsltContext xsltContext); @@ -2583,47 +2399,97 @@ namespace System bool IsParam { get; } System.Xml.XPath.XPathResultType VariableType { get; } } - - public class XslCompiledTransform + public sealed class XslCompiledTransform { - public void Load(System.Xml.XPath.IXPathNavigable stylesheet) => throw null; - public void Load(System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver) => throw null; - public void Load(System.Reflection.MethodInfo executeMethod, System.Byte[] queryData, System.Type[] earlyBoundTypes) => throw null; + public XslCompiledTransform() => throw null; + public XslCompiledTransform(bool enableDebug) => throw null; + public void Load(System.Reflection.MethodInfo executeMethod, byte[] queryData, System.Type[] earlyBoundTypes) => throw null; + public void Load(string stylesheetUri) => throw null; + public void Load(string stylesheetUri, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver) => throw null; public void Load(System.Type compiledStylesheet) => throw null; public void Load(System.Xml.XmlReader stylesheet) => throw null; public void Load(System.Xml.XmlReader stylesheet, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver) => throw null; - public void Load(string stylesheetUri) => throw null; - public void Load(string stylesheetUri, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver) => throw null; + public void Load(System.Xml.XPath.IXPathNavigable stylesheet) => throw null; + public void Load(System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver) => throw null; public System.Xml.XmlWriterSettings OutputSettings { get => throw null; } - public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.XmlWriter results) => throw null; - public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results) => throw null; - public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results) => throw null; - public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results) => throw null; - public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver) => throw null; + public void Transform(string inputUri, string resultsFile) => throw null; + public void Transform(string inputUri, System.Xml.XmlWriter results) => throw null; + public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results) => throw null; + public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results) => throw null; + public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results) => throw null; public void Transform(System.Xml.XmlReader input, System.Xml.XmlWriter results) => throw null; public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results) => throw null; public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results) => throw null; public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results) => throw null; public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver) => throw null; - public void Transform(string inputUri, System.Xml.XmlWriter results) => throw null; - public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results) => throw null; - public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results) => throw null; - public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results) => throw null; - public void Transform(string inputUri, string resultsFile) => throw null; - public XslCompiledTransform() => throw null; - public XslCompiledTransform(bool enableDebug) => throw null; + public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.XmlWriter results) => throw null; + public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results) => throw null; + public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results) => throw null; + public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results) => throw null; + public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver) => throw null; } - - public class XslTransform + public class XsltArgumentList { + public void AddExtensionObject(string namespaceUri, object extension) => throw null; + public void AddParam(string name, string namespaceUri, object parameter) => throw null; + public void Clear() => throw null; + public XsltArgumentList() => throw null; + public object GetExtensionObject(string namespaceUri) => throw null; + public object GetParam(string name, string namespaceUri) => throw null; + public object RemoveExtensionObject(string namespaceUri) => throw null; + public object RemoveParam(string name, string namespaceUri) => throw null; + public event System.Xml.Xsl.XsltMessageEncounteredEventHandler XsltMessageEncountered { add { } remove { } } + } + public class XsltCompileException : System.Xml.Xsl.XsltException + { + public XsltCompileException() => throw null; + public XsltCompileException(System.Exception inner, string sourceUri, int lineNumber, int linePosition) => throw null; + protected XsltCompileException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public XsltCompileException(string message) => throw null; + public XsltCompileException(string message, System.Exception innerException) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public abstract class XsltContext : System.Xml.XmlNamespaceManager + { + public abstract int CompareDocument(string baseUri, string nextbaseUri); + protected XsltContext() : base(default(System.Xml.XmlNameTable)) => throw null; + protected XsltContext(System.Xml.NameTable table) : base(default(System.Xml.XmlNameTable)) => throw null; + public abstract bool PreserveWhitespace(System.Xml.XPath.XPathNavigator node); + public abstract System.Xml.Xsl.IXsltContextFunction ResolveFunction(string prefix, string name, System.Xml.XPath.XPathResultType[] ArgTypes); + public abstract System.Xml.Xsl.IXsltContextVariable ResolveVariable(string prefix, string name); + public abstract bool Whitespace { get; } + } + public class XsltException : System.SystemException + { + public XsltException() => throw null; + protected XsltException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public XsltException(string message) => throw null; + public XsltException(string message, System.Exception innerException) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public virtual int LineNumber { get => throw null; } + public virtual int LinePosition { get => throw null; } + public override string Message { get => throw null; } + public virtual string SourceUri { get => throw null; } + } + public abstract class XsltMessageEncounteredEventArgs : System.EventArgs + { + protected XsltMessageEncounteredEventArgs() => throw null; + public abstract string Message { get; } + } + public delegate void XsltMessageEncounteredEventHandler(object sender, System.Xml.Xsl.XsltMessageEncounteredEventArgs e); + public sealed class XslTransform + { + public XslTransform() => throw null; + public void Load(string url) => throw null; + public void Load(string url, System.Xml.XmlResolver resolver) => throw null; + public void Load(System.Xml.XmlReader stylesheet) => throw null; + public void Load(System.Xml.XmlReader stylesheet, System.Xml.XmlResolver resolver) => throw null; public void Load(System.Xml.XPath.IXPathNavigable stylesheet) => throw null; public void Load(System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.XmlResolver resolver) => throw null; public void Load(System.Xml.XPath.XPathNavigator stylesheet) => throw null; public void Load(System.Xml.XPath.XPathNavigator stylesheet, System.Xml.XmlResolver resolver) => throw null; - public void Load(System.Xml.XmlReader stylesheet) => throw null; - public void Load(System.Xml.XmlReader stylesheet, System.Xml.XmlResolver resolver) => throw null; - public void Load(string url) => throw null; - public void Load(string url, System.Xml.XmlResolver resolver) => throw null; + public void Transform(string inputfile, string outputfile) => throw null; + public void Transform(string inputfile, string outputfile, System.Xml.XmlResolver resolver) => throw null; public System.Xml.XmlReader Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args) => throw null; public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output) => throw null; public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver) => throw null; @@ -2640,77 +2506,17 @@ namespace System public System.Xml.XmlReader Transform(System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver) => throw null; public void Transform(System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output) => throw null; public void Transform(System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver) => throw null; - public void Transform(string inputfile, string outputfile) => throw null; - public void Transform(string inputfile, string outputfile, System.Xml.XmlResolver resolver) => throw null; - public System.Xml.XmlResolver XmlResolver { set => throw null; } - public XslTransform() => throw null; + public System.Xml.XmlResolver XmlResolver { set { } } } - - public class XsltArgumentList + public sealed class XsltSettings { - public void AddExtensionObject(string namespaceUri, object extension) => throw null; - public void AddParam(string name, string namespaceUri, object parameter) => throw null; - public void Clear() => throw null; - public object GetExtensionObject(string namespaceUri) => throw null; - public object GetParam(string name, string namespaceUri) => throw null; - public object RemoveExtensionObject(string namespaceUri) => throw null; - public object RemoveParam(string name, string namespaceUri) => throw null; - public XsltArgumentList() => throw null; - public event System.Xml.Xsl.XsltMessageEncounteredEventHandler XsltMessageEncountered; - } - - public class XsltCompileException : System.Xml.Xsl.XsltException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public XsltCompileException() => throw null; - public XsltCompileException(System.Exception inner, string sourceUri, int lineNumber, int linePosition) => throw null; - protected XsltCompileException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public XsltCompileException(string message) => throw null; - public XsltCompileException(string message, System.Exception innerException) => throw null; - } - - public abstract class XsltContext : System.Xml.XmlNamespaceManager - { - public abstract int CompareDocument(string baseUri, string nextbaseUri); - public abstract bool PreserveWhitespace(System.Xml.XPath.XPathNavigator node); - public abstract System.Xml.Xsl.IXsltContextFunction ResolveFunction(string prefix, string name, System.Xml.XPath.XPathResultType[] ArgTypes); - public abstract System.Xml.Xsl.IXsltContextVariable ResolveVariable(string prefix, string name); - public abstract bool Whitespace { get; } - protected XsltContext() : base(default(System.Xml.XmlNameTable)) => throw null; - protected XsltContext(System.Xml.NameTable table) : base(default(System.Xml.XmlNameTable)) => throw null; - } - - public class XsltException : System.SystemException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public virtual int LineNumber { get => throw null; } - public virtual int LinePosition { get => throw null; } - public override string Message { get => throw null; } - public virtual string SourceUri { get => throw null; } - public XsltException() => throw null; - protected XsltException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public XsltException(string message) => throw null; - public XsltException(string message, System.Exception innerException) => throw null; - } - - public abstract class XsltMessageEncounteredEventArgs : System.EventArgs - { - public abstract string Message { get; } - protected XsltMessageEncounteredEventArgs() => throw null; - } - - public delegate void XsltMessageEncounteredEventHandler(object sender, System.Xml.Xsl.XsltMessageEncounteredEventArgs e); - - public class XsltSettings - { - public static System.Xml.Xsl.XsltSettings Default { get => throw null; } - public bool EnableDocumentFunction { get => throw null; set => throw null; } - public bool EnableScript { get => throw null; set => throw null; } - public static System.Xml.Xsl.XsltSettings TrustedXslt { get => throw null; } public XsltSettings() => throw null; public XsltSettings(bool enableDocumentFunction, bool enableScript) => throw null; + public static System.Xml.Xsl.XsltSettings Default { get => throw null; } + public bool EnableDocumentFunction { get => throw null; set { } } + public bool EnableScript { get => throw null; set { } } + public static System.Xml.Xsl.XsltSettings TrustedXslt { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs new file mode 100644 index 00000000000..7cc254b3a88 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs index d060d6c424a..00b7909e21d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `System.Xml.XDocument, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Xml { namespace Linq { - public static class Extensions + public static partial class Extensions { public static System.Collections.Generic.IEnumerable Ancestors(this System.Collections.Generic.IEnumerable source) where T : System.Xml.Linq.XNode => throw null; public static System.Collections.Generic.IEnumerable Ancestors(this System.Collections.Generic.IEnumerable source, System.Xml.Linq.XName name) where T : System.Xml.Linq.XNode => throw null; @@ -28,91 +27,84 @@ namespace System public static void Remove(this System.Collections.Generic.IEnumerable source) => throw null; public static void Remove(this System.Collections.Generic.IEnumerable source) where T : System.Xml.Linq.XNode => throw null; } - [System.Flags] - public enum LoadOptions : int + public enum LoadOptions { None = 0, PreserveWhitespace = 1, SetBaseUri = 2, SetLineInfo = 4, } - [System.Flags] - public enum ReaderOptions : int + public enum ReaderOptions { None = 0, OmitDuplicateNamespaces = 1, } - [System.Flags] - public enum SaveOptions : int + public enum SaveOptions { - DisableFormatting = 1, None = 0, + DisableFormatting = 1, OmitDuplicateNamespaces = 2, } - public class XAttribute : System.Xml.Linq.XObject { + public XAttribute(System.Xml.Linq.XAttribute other) => throw null; + public XAttribute(System.Xml.Linq.XName name, object value) => throw null; public static System.Collections.Generic.IEnumerable EmptySequence { get => throw null; } public bool IsNamespaceDeclaration { get => throw null; } public System.Xml.Linq.XName Name { get => throw null; } public System.Xml.Linq.XAttribute NextAttribute { get => throw null; } public override System.Xml.XmlNodeType NodeType { get => throw null; } + public static explicit operator bool(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator System.DateTime(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator System.DateTimeOffset(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator decimal(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator double(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator System.Guid(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator int(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator long(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator bool?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator System.DateTimeOffset?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator System.DateTime?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator decimal?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator double?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator System.Guid?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator int?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator long?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator float?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator System.TimeSpan?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator uint?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator ulong?(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator float(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator string(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator System.TimeSpan(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator uint(System.Xml.Linq.XAttribute attribute) => throw null; + public static explicit operator ulong(System.Xml.Linq.XAttribute attribute) => throw null; public System.Xml.Linq.XAttribute PreviousAttribute { get => throw null; } public void Remove() => throw null; public void SetValue(object value) => throw null; public override string ToString() => throw null; - public string Value { get => throw null; set => throw null; } - public XAttribute(System.Xml.Linq.XAttribute other) => throw null; - public XAttribute(System.Xml.Linq.XName name, object value) => throw null; - public static explicit operator System.DateTime(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.DateTime?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.DateTimeOffset(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.DateTimeOffset?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.Decimal(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.Decimal?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.Guid(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.Guid?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.Int64(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.Int64?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.TimeSpan(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.TimeSpan?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.UInt32(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.UInt32?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.UInt64(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator System.UInt64?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator bool(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator bool?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator double(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator double?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator float(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator float?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator int(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator int?(System.Xml.Linq.XAttribute attribute) => throw null; - public static explicit operator string(System.Xml.Linq.XAttribute attribute) => throw null; + public string Value { get => throw null; set { } } } - public class XCData : System.Xml.Linq.XText { + public XCData(string value) : base(default(string)) => throw null; + public XCData(System.Xml.Linq.XCData other) : base(default(string)) => throw null; public override System.Xml.XmlNodeType NodeType { get => throw null; } public override void WriteTo(System.Xml.XmlWriter writer) => throw null; public override System.Threading.Tasks.Task WriteToAsync(System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken) => throw null; - public XCData(System.Xml.Linq.XCData other) : base(default(System.Xml.Linq.XText)) => throw null; - public XCData(string value) : base(default(System.Xml.Linq.XText)) => throw null; } - public class XComment : System.Xml.Linq.XNode { + public XComment(string value) => throw null; + public XComment(System.Xml.Linq.XComment other) => throw null; public override System.Xml.XmlNodeType NodeType { get => throw null; } - public string Value { get => throw null; set => throw null; } + public string Value { get => throw null; set { } } public override void WriteTo(System.Xml.XmlWriter writer) => throw null; public override System.Threading.Tasks.Task WriteToAsync(System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken) => throw null; - public XComment(System.Xml.Linq.XComment other) => throw null; - public XComment(string value) => throw null; } - public abstract class XContainer : System.Xml.Linq.XNode { public void Add(object content) => throw null; @@ -132,31 +124,32 @@ namespace System public void RemoveNodes() => throw null; public void ReplaceNodes(object content) => throw null; public void ReplaceNodes(params object[] content) => throw null; - internal XContainer() => throw null; } - public class XDeclaration { - public string Encoding { get => throw null; set => throw null; } - public string Standalone { get => throw null; set => throw null; } - public override string ToString() => throw null; - public string Version { get => throw null; set => throw null; } - public XDeclaration(System.Xml.Linq.XDeclaration other) => throw null; public XDeclaration(string version, string encoding, string standalone) => throw null; + public XDeclaration(System.Xml.Linq.XDeclaration other) => throw null; + public string Encoding { get => throw null; set { } } + public string Standalone { get => throw null; set { } } + public override string ToString() => throw null; + public string Version { get => throw null; set { } } } - public class XDocument : System.Xml.Linq.XContainer { - public System.Xml.Linq.XDeclaration Declaration { get => throw null; set => throw null; } + public XDocument() => throw null; + public XDocument(params object[] content) => throw null; + public XDocument(System.Xml.Linq.XDeclaration declaration, params object[] content) => throw null; + public XDocument(System.Xml.Linq.XDocument other) => throw null; + public System.Xml.Linq.XDeclaration Declaration { get => throw null; set { } } public System.Xml.Linq.XDocumentType DocumentType { get => throw null; } public static System.Xml.Linq.XDocument Load(System.IO.Stream stream) => throw null; public static System.Xml.Linq.XDocument Load(System.IO.Stream stream, System.Xml.Linq.LoadOptions options) => throw null; public static System.Xml.Linq.XDocument Load(System.IO.TextReader textReader) => throw null; public static System.Xml.Linq.XDocument Load(System.IO.TextReader textReader, System.Xml.Linq.LoadOptions options) => throw null; - public static System.Xml.Linq.XDocument Load(System.Xml.XmlReader reader) => throw null; - public static System.Xml.Linq.XDocument Load(System.Xml.XmlReader reader, System.Xml.Linq.LoadOptions options) => throw null; public static System.Xml.Linq.XDocument Load(string uri) => throw null; public static System.Xml.Linq.XDocument Load(string uri, System.Xml.Linq.LoadOptions options) => throw null; + public static System.Xml.Linq.XDocument Load(System.Xml.XmlReader reader) => throw null; + public static System.Xml.Linq.XDocument Load(System.Xml.XmlReader reader, System.Xml.Linq.LoadOptions options) => throw null; public static System.Threading.Tasks.Task LoadAsync(System.IO.Stream stream, System.Xml.Linq.LoadOptions options, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task LoadAsync(System.IO.TextReader textReader, System.Xml.Linq.LoadOptions options, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task LoadAsync(System.Xml.XmlReader reader, System.Xml.Linq.LoadOptions options, System.Threading.CancellationToken cancellationToken) => throw null; @@ -168,33 +161,27 @@ namespace System public void Save(System.IO.Stream stream, System.Xml.Linq.SaveOptions options) => throw null; public void Save(System.IO.TextWriter textWriter) => throw null; public void Save(System.IO.TextWriter textWriter, System.Xml.Linq.SaveOptions options) => throw null; - public void Save(System.Xml.XmlWriter writer) => throw null; public void Save(string fileName) => throw null; public void Save(string fileName, System.Xml.Linq.SaveOptions options) => throw null; + public void Save(System.Xml.XmlWriter writer) => throw null; public System.Threading.Tasks.Task SaveAsync(System.IO.Stream stream, System.Xml.Linq.SaveOptions options, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task SaveAsync(System.IO.TextWriter textWriter, System.Xml.Linq.SaveOptions options, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task SaveAsync(System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken) => throw null; public override void WriteTo(System.Xml.XmlWriter writer) => throw null; public override System.Threading.Tasks.Task WriteToAsync(System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken) => throw null; - public XDocument() => throw null; - public XDocument(System.Xml.Linq.XDeclaration declaration, params object[] content) => throw null; - public XDocument(System.Xml.Linq.XDocument other) => throw null; - public XDocument(params object[] content) => throw null; } - public class XDocumentType : System.Xml.Linq.XNode { - public string InternalSubset { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } + public XDocumentType(string name, string publicId, string systemId, string internalSubset) => throw null; + public XDocumentType(System.Xml.Linq.XDocumentType other) => throw null; + public string InternalSubset { get => throw null; set { } } + public string Name { get => throw null; set { } } public override System.Xml.XmlNodeType NodeType { get => throw null; } - public string PublicId { get => throw null; set => throw null; } - public string SystemId { get => throw null; set => throw null; } + public string PublicId { get => throw null; set { } } + public string SystemId { get => throw null; set { } } public override void WriteTo(System.Xml.XmlWriter writer) => throw null; public override System.Threading.Tasks.Task WriteToAsync(System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken) => throw null; - public XDocumentType(System.Xml.Linq.XDocumentType other) => throw null; - public XDocumentType(string name, string publicId, string systemId, string internalSubset) => throw null; } - public class XElement : System.Xml.Linq.XContainer, System.Xml.Serialization.IXmlSerializable { public System.Collections.Generic.IEnumerable AncestorsAndSelf() => throw null; @@ -202,6 +189,11 @@ namespace System public System.Xml.Linq.XAttribute Attribute(System.Xml.Linq.XName name) => throw null; public System.Collections.Generic.IEnumerable Attributes() => throw null; public System.Collections.Generic.IEnumerable Attributes(System.Xml.Linq.XName name) => throw null; + public XElement(System.Xml.Linq.XElement other) => throw null; + public XElement(System.Xml.Linq.XName name) => throw null; + public XElement(System.Xml.Linq.XName name, object content) => throw null; + public XElement(System.Xml.Linq.XName name, params object[] content) => throw null; + public XElement(System.Xml.Linq.XStreamingElement other) => throw null; public System.Collections.Generic.IEnumerable DescendantNodesAndSelf() => throw null; public System.Collections.Generic.IEnumerable DescendantsAndSelf() => throw null; public System.Collections.Generic.IEnumerable DescendantsAndSelf(System.Xml.Linq.XName name) => throw null; @@ -219,15 +211,40 @@ namespace System public static System.Xml.Linq.XElement Load(System.IO.Stream stream, System.Xml.Linq.LoadOptions options) => throw null; public static System.Xml.Linq.XElement Load(System.IO.TextReader textReader) => throw null; public static System.Xml.Linq.XElement Load(System.IO.TextReader textReader, System.Xml.Linq.LoadOptions options) => throw null; - public static System.Xml.Linq.XElement Load(System.Xml.XmlReader reader) => throw null; - public static System.Xml.Linq.XElement Load(System.Xml.XmlReader reader, System.Xml.Linq.LoadOptions options) => throw null; public static System.Xml.Linq.XElement Load(string uri) => throw null; public static System.Xml.Linq.XElement Load(string uri, System.Xml.Linq.LoadOptions options) => throw null; + public static System.Xml.Linq.XElement Load(System.Xml.XmlReader reader) => throw null; + public static System.Xml.Linq.XElement Load(System.Xml.XmlReader reader, System.Xml.Linq.LoadOptions options) => throw null; public static System.Threading.Tasks.Task LoadAsync(System.IO.Stream stream, System.Xml.Linq.LoadOptions options, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task LoadAsync(System.IO.TextReader textReader, System.Xml.Linq.LoadOptions options, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task LoadAsync(System.Xml.XmlReader reader, System.Xml.Linq.LoadOptions options, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Xml.Linq.XName Name { get => throw null; set => throw null; } + public System.Xml.Linq.XName Name { get => throw null; set { } } public override System.Xml.XmlNodeType NodeType { get => throw null; } + public static explicit operator bool(System.Xml.Linq.XElement element) => throw null; + public static explicit operator System.DateTime(System.Xml.Linq.XElement element) => throw null; + public static explicit operator System.DateTimeOffset(System.Xml.Linq.XElement element) => throw null; + public static explicit operator decimal(System.Xml.Linq.XElement element) => throw null; + public static explicit operator double(System.Xml.Linq.XElement element) => throw null; + public static explicit operator System.Guid(System.Xml.Linq.XElement element) => throw null; + public static explicit operator int(System.Xml.Linq.XElement element) => throw null; + public static explicit operator long(System.Xml.Linq.XElement element) => throw null; + public static explicit operator bool?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator System.DateTimeOffset?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator System.DateTime?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator decimal?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator double?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator System.Guid?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator int?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator long?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator float?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator System.TimeSpan?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator uint?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator ulong?(System.Xml.Linq.XElement element) => throw null; + public static explicit operator float(System.Xml.Linq.XElement element) => throw null; + public static explicit operator string(System.Xml.Linq.XElement element) => throw null; + public static explicit operator System.TimeSpan(System.Xml.Linq.XElement element) => throw null; + public static explicit operator uint(System.Xml.Linq.XElement element) => throw null; + public static explicit operator ulong(System.Xml.Linq.XElement element) => throw null; public static System.Xml.Linq.XElement Parse(string text) => throw null; public static System.Xml.Linq.XElement Parse(string text, System.Xml.Linq.LoadOptions options) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; @@ -241,57 +258,24 @@ namespace System public void Save(System.IO.Stream stream, System.Xml.Linq.SaveOptions options) => throw null; public void Save(System.IO.TextWriter textWriter) => throw null; public void Save(System.IO.TextWriter textWriter, System.Xml.Linq.SaveOptions options) => throw null; - public void Save(System.Xml.XmlWriter writer) => throw null; public void Save(string fileName) => throw null; public void Save(string fileName, System.Xml.Linq.SaveOptions options) => throw null; + public void Save(System.Xml.XmlWriter writer) => throw null; public System.Threading.Tasks.Task SaveAsync(System.IO.Stream stream, System.Xml.Linq.SaveOptions options, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task SaveAsync(System.IO.TextWriter textWriter, System.Xml.Linq.SaveOptions options, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task SaveAsync(System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken) => throw null; public void SetAttributeValue(System.Xml.Linq.XName name, object value) => throw null; public void SetElementValue(System.Xml.Linq.XName name, object value) => throw null; public void SetValue(object value) => throw null; - public string Value { get => throw null; set => throw null; } + public string Value { get => throw null; set { } } public override void WriteTo(System.Xml.XmlWriter writer) => throw null; public override System.Threading.Tasks.Task WriteToAsync(System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken) => throw null; void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public XElement(System.Xml.Linq.XElement other) => throw null; - public XElement(System.Xml.Linq.XName name) => throw null; - public XElement(System.Xml.Linq.XName name, object content) => throw null; - public XElement(System.Xml.Linq.XName name, params object[] content) => throw null; - public XElement(System.Xml.Linq.XStreamingElement other) => throw null; - public static explicit operator System.DateTime(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.DateTime?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.DateTimeOffset(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.DateTimeOffset?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.Decimal(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.Decimal?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.Guid(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.Guid?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.Int64(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.Int64?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.TimeSpan(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.TimeSpan?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.UInt32(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.UInt32?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.UInt64(System.Xml.Linq.XElement element) => throw null; - public static explicit operator System.UInt64?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator bool(System.Xml.Linq.XElement element) => throw null; - public static explicit operator bool?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator double(System.Xml.Linq.XElement element) => throw null; - public static explicit operator double?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator float(System.Xml.Linq.XElement element) => throw null; - public static explicit operator float?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator int(System.Xml.Linq.XElement element) => throw null; - public static explicit operator int?(System.Xml.Linq.XElement element) => throw null; - public static explicit operator string(System.Xml.Linq.XElement element) => throw null; } - - public class XName : System.IEquatable, System.Runtime.Serialization.ISerializable + public sealed class XName : System.IEquatable, System.Runtime.Serialization.ISerializable { - public static bool operator !=(System.Xml.Linq.XName left, System.Xml.Linq.XName right) => throw null; - public static bool operator ==(System.Xml.Linq.XName left, System.Xml.Linq.XName right) => throw null; - bool System.IEquatable.Equals(System.Xml.Linq.XName other) => throw null; public override bool Equals(object obj) => throw null; + bool System.IEquatable.Equals(System.Xml.Linq.XName other) => throw null; public static System.Xml.Linq.XName Get(string expandedName) => throw null; public static System.Xml.Linq.XName Get(string localName, string namespaceName) => throw null; public override int GetHashCode() => throw null; @@ -299,27 +283,27 @@ namespace System public string LocalName { get => throw null; } public System.Xml.Linq.XNamespace Namespace { get => throw null; } public string NamespaceName { get => throw null; } - public override string ToString() => throw null; + public static bool operator ==(System.Xml.Linq.XName left, System.Xml.Linq.XName right) => throw null; public static implicit operator System.Xml.Linq.XName(string expandedName) => throw null; + public static bool operator !=(System.Xml.Linq.XName left, System.Xml.Linq.XName right) => throw null; + public override string ToString() => throw null; } - - public class XNamespace + public sealed class XNamespace { - public static bool operator !=(System.Xml.Linq.XNamespace left, System.Xml.Linq.XNamespace right) => throw null; - public static System.Xml.Linq.XName operator +(System.Xml.Linq.XNamespace ns, string localName) => throw null; - public static bool operator ==(System.Xml.Linq.XNamespace left, System.Xml.Linq.XNamespace right) => throw null; public override bool Equals(object obj) => throw null; public static System.Xml.Linq.XNamespace Get(string namespaceName) => throw null; public override int GetHashCode() => throw null; public System.Xml.Linq.XName GetName(string localName) => throw null; public string NamespaceName { get => throw null; } public static System.Xml.Linq.XNamespace None { get => throw null; } + public static System.Xml.Linq.XName operator +(System.Xml.Linq.XNamespace ns, string localName) => throw null; + public static bool operator ==(System.Xml.Linq.XNamespace left, System.Xml.Linq.XNamespace right) => throw null; + public static implicit operator System.Xml.Linq.XNamespace(string namespaceName) => throw null; + public static bool operator !=(System.Xml.Linq.XNamespace left, System.Xml.Linq.XNamespace right) => throw null; public override string ToString() => throw null; public static System.Xml.Linq.XNamespace Xml { get => throw null; } public static System.Xml.Linq.XNamespace Xmlns { get => throw null; } - public static implicit operator System.Xml.Linq.XNamespace(string namespaceName) => throw null; } - public abstract class XNode : System.Xml.Linq.XObject { public void AddAfterSelf(object content) => throw null; @@ -353,25 +337,21 @@ namespace System public string ToString(System.Xml.Linq.SaveOptions options) => throw null; public abstract void WriteTo(System.Xml.XmlWriter writer); public abstract System.Threading.Tasks.Task WriteToAsync(System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken); - internal XNode() => throw null; } - - public class XNodeDocumentOrderComparer : System.Collections.Generic.IComparer, System.Collections.IComparer + public sealed class XNodeDocumentOrderComparer : System.Collections.Generic.IComparer, System.Collections.IComparer { public int Compare(System.Xml.Linq.XNode x, System.Xml.Linq.XNode y) => throw null; int System.Collections.IComparer.Compare(object x, object y) => throw null; public XNodeDocumentOrderComparer() => throw null; } - - public class XNodeEqualityComparer : System.Collections.Generic.IEqualityComparer, System.Collections.IEqualityComparer + public sealed class XNodeEqualityComparer : System.Collections.Generic.IEqualityComparer, System.Collections.IEqualityComparer { + public XNodeEqualityComparer() => throw null; public bool Equals(System.Xml.Linq.XNode x, System.Xml.Linq.XNode y) => throw null; bool System.Collections.IEqualityComparer.Equals(object x, object y) => throw null; public int GetHashCode(System.Xml.Linq.XNode obj) => throw null; int System.Collections.IEqualityComparer.GetHashCode(object obj) => throw null; - public XNodeEqualityComparer() => throw null; } - public abstract class XObject : System.Xml.IXmlLineInfo { public void AddAnnotation(object annotation) => throw null; @@ -380,8 +360,8 @@ namespace System public System.Collections.Generic.IEnumerable Annotations(System.Type type) => throw null; public System.Collections.Generic.IEnumerable Annotations() where T : class => throw null; public string BaseUri { get => throw null; } - public event System.EventHandler Changed; - public event System.EventHandler Changing; + public event System.EventHandler Changed { add { } remove { } } + public event System.EventHandler Changing { add { } remove { } } public System.Xml.Linq.XDocument Document { get => throw null; } bool System.Xml.IXmlLineInfo.HasLineInfo() => throw null; int System.Xml.IXmlLineInfo.LineNumber { get => throw null; } @@ -390,72 +370,65 @@ namespace System public System.Xml.Linq.XElement Parent { get => throw null; } public void RemoveAnnotations(System.Type type) => throw null; public void RemoveAnnotations() where T : class => throw null; - internal XObject() => throw null; } - - public enum XObjectChange : int + public enum XObjectChange { Add = 0, - Name = 2, Remove = 1, + Name = 2, Value = 3, } - public class XObjectChangeEventArgs : System.EventArgs { public static System.Xml.Linq.XObjectChangeEventArgs Add; + public XObjectChangeEventArgs(System.Xml.Linq.XObjectChange objectChange) => throw null; public static System.Xml.Linq.XObjectChangeEventArgs Name; public System.Xml.Linq.XObjectChange ObjectChange { get => throw null; } public static System.Xml.Linq.XObjectChangeEventArgs Remove; public static System.Xml.Linq.XObjectChangeEventArgs Value; - public XObjectChangeEventArgs(System.Xml.Linq.XObjectChange objectChange) => throw null; } - public class XProcessingInstruction : System.Xml.Linq.XNode { - public string Data { get => throw null; set => throw null; } + public XProcessingInstruction(string target, string data) => throw null; + public XProcessingInstruction(System.Xml.Linq.XProcessingInstruction other) => throw null; + public string Data { get => throw null; set { } } public override System.Xml.XmlNodeType NodeType { get => throw null; } - public string Target { get => throw null; set => throw null; } + public string Target { get => throw null; set { } } public override void WriteTo(System.Xml.XmlWriter writer) => throw null; public override System.Threading.Tasks.Task WriteToAsync(System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken) => throw null; - public XProcessingInstruction(System.Xml.Linq.XProcessingInstruction other) => throw null; - public XProcessingInstruction(string target, string data) => throw null; } - public class XStreamingElement { public void Add(object content) => throw null; public void Add(params object[] content) => throw null; - public System.Xml.Linq.XName Name { get => throw null; set => throw null; } + public XStreamingElement(System.Xml.Linq.XName name) => throw null; + public XStreamingElement(System.Xml.Linq.XName name, object content) => throw null; + public XStreamingElement(System.Xml.Linq.XName name, params object[] content) => throw null; + public System.Xml.Linq.XName Name { get => throw null; set { } } public void Save(System.IO.Stream stream) => throw null; public void Save(System.IO.Stream stream, System.Xml.Linq.SaveOptions options) => throw null; public void Save(System.IO.TextWriter textWriter) => throw null; public void Save(System.IO.TextWriter textWriter, System.Xml.Linq.SaveOptions options) => throw null; - public void Save(System.Xml.XmlWriter writer) => throw null; public void Save(string fileName) => throw null; public void Save(string fileName, System.Xml.Linq.SaveOptions options) => throw null; + public void Save(System.Xml.XmlWriter writer) => throw null; public override string ToString() => throw null; public string ToString(System.Xml.Linq.SaveOptions options) => throw null; public void WriteTo(System.Xml.XmlWriter writer) => throw null; - public XStreamingElement(System.Xml.Linq.XName name) => throw null; - public XStreamingElement(System.Xml.Linq.XName name, object content) => throw null; - public XStreamingElement(System.Xml.Linq.XName name, params object[] content) => throw null; } - public class XText : System.Xml.Linq.XNode { + public XText(string value) => throw null; + public XText(System.Xml.Linq.XText other) => throw null; public override System.Xml.XmlNodeType NodeType { get => throw null; } - public string Value { get => throw null; set => throw null; } + public string Value { get => throw null; set { } } public override void WriteTo(System.Xml.XmlWriter writer) => throw null; public override System.Threading.Tasks.Task WriteToAsync(System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken) => throw null; - public XText(System.Xml.Linq.XText other) => throw null; - public XText(string value) => throw null; } - } namespace Schema { - public static class Extensions + public static partial class Extensions { public static System.Xml.Schema.IXmlSchemaInfo GetSchemaInfo(this System.Xml.Linq.XAttribute source) => throw null; public static System.Xml.Schema.IXmlSchemaInfo GetSchemaInfo(this System.Xml.Linq.XElement source) => throw null; @@ -466,7 +439,6 @@ namespace System public static void Validate(this System.Xml.Linq.XElement source, System.Xml.Schema.XmlSchemaObject partialValidationType, System.Xml.Schema.XmlSchemaSet schemas, System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; public static void Validate(this System.Xml.Linq.XElement source, System.Xml.Schema.XmlSchemaObject partialValidationType, System.Xml.Schema.XmlSchemaSet schemas, System.Xml.Schema.ValidationEventHandler validationEventHandler, bool addSchemaInfo) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XPath.XDocument.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XPath.XDocument.cs index 08eb0a49e18..b3cf2e848c0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XPath.XDocument.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XPath.XDocument.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `System.Xml.XPath.XDocument, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Xml { namespace XPath { - public static class Extensions + public static partial class Extensions { public static System.Xml.XPath.XPathNavigator CreateNavigator(this System.Xml.Linq.XNode node) => throw null; public static System.Xml.XPath.XPathNavigator CreateNavigator(this System.Xml.Linq.XNode node, System.Xml.XmlNameTable nameTable) => throw null; @@ -18,12 +17,10 @@ namespace System public static System.Collections.Generic.IEnumerable XPathSelectElements(this System.Xml.Linq.XNode node, string expression) => throw null; public static System.Collections.Generic.IEnumerable XPathSelectElements(this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver resolver) => throw null; } - - public static class XDocumentExtensions + public static partial class XDocumentExtensions { public static System.Xml.XPath.IXPathNavigable ToXPathNavigable(this System.Xml.Linq.XNode node) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XPath.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XPath.cs index ec7ea32f149..9e708047b79 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XPath.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XPath.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Xml.XPath, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Xml @@ -12,22 +11,20 @@ namespace System public System.Xml.XPath.XPathNavigator CreateNavigator() => throw null; public XPathDocument(System.IO.Stream stream) => throw null; public XPathDocument(System.IO.TextReader textReader) => throw null; - public XPathDocument(System.Xml.XmlReader reader) => throw null; - public XPathDocument(System.Xml.XmlReader reader, System.Xml.XmlSpace space) => throw null; public XPathDocument(string uri) => throw null; public XPathDocument(string uri, System.Xml.XmlSpace space) => throw null; + public XPathDocument(System.Xml.XmlReader reader) => throw null; + public XPathDocument(System.Xml.XmlReader reader, System.Xml.XmlSpace space) => throw null; } - public class XPathException : System.SystemException { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } public XPathException() => throw null; protected XPathException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public XPathException(string message) => throw null; public XPathException(string message, System.Exception innerException) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs new file mode 100644 index 00000000000..e2ac5e7ec3b --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Xml.XmlDocument, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlSerializer.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlSerializer.cs index b811f7d0a4d..2eac7fb1416 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlSerializer.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlSerializer.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Xml.XmlSerializer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. - namespace System { namespace Xml @@ -8,16 +7,15 @@ namespace System namespace Serialization { [System.Flags] - public enum CodeGenerationOptions : int + public enum CodeGenerationOptions { - EnableDataBinding = 16, + None = 0, + GenerateProperties = 1, GenerateNewAsync = 2, GenerateOldAsync = 4, GenerateOrder = 8, - GenerateProperties = 1, - None = 0, + EnableDataBinding = 16, } - public class CodeIdentifier { public CodeIdentifier() => throw null; @@ -25,7 +23,6 @@ namespace System public static string MakePascal(string identifier) => throw null; public static string MakeValid(string identifier) => throw null; } - public class CodeIdentifiers { public void Add(string identifier, object value) => throw null; @@ -40,15 +37,8 @@ namespace System public void Remove(string identifier) => throw null; public void RemoveReserved(string identifier) => throw null; public object ToArray(System.Type type) => throw null; - public bool UseCamelCasing { get => throw null; set => throw null; } + public bool UseCamelCasing { get => throw null; set { } } } - - public interface IXmlTextParser - { - bool Normalized { get; set; } - System.Xml.WhitespaceHandling WhitespaceHandling { get; set; } - } - public class ImportContext { public ImportContext(System.Xml.Serialization.CodeIdentifiers identifiers, bool shareTypes) => throw null; @@ -56,71 +46,70 @@ namespace System public System.Xml.Serialization.CodeIdentifiers TypeIdentifiers { get => throw null; } public System.Collections.Specialized.StringCollection Warnings { get => throw null; } } - + public interface IXmlTextParser + { + bool Normalized { get; set; } + System.Xml.WhitespaceHandling WhitespaceHandling { get; set; } + } public abstract class SchemaImporter { - internal SchemaImporter() => throw null; } - public class SoapAttributeAttribute : System.Attribute { - public string AttributeName { get => throw null; set => throw null; } - public string DataType { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } + public string AttributeName { get => throw null; set { } } public SoapAttributeAttribute() => throw null; public SoapAttributeAttribute(string attributeName) => throw null; + public string DataType { get => throw null; set { } } + public string Namespace { get => throw null; set { } } } - public class SoapAttributeOverrides { - public void Add(System.Type type, System.Xml.Serialization.SoapAttributes attributes) => throw null; public void Add(System.Type type, string member, System.Xml.Serialization.SoapAttributes attributes) => throw null; - public System.Xml.Serialization.SoapAttributes this[System.Type type, string member] { get => throw null; } - public System.Xml.Serialization.SoapAttributes this[System.Type type] { get => throw null; } + public void Add(System.Type type, System.Xml.Serialization.SoapAttributes attributes) => throw null; public SoapAttributeOverrides() => throw null; + public System.Xml.Serialization.SoapAttributes this[System.Type type] { get => throw null; } + public System.Xml.Serialization.SoapAttributes this[System.Type type, string member] { get => throw null; } } - public class SoapAttributes { - public System.Xml.Serialization.SoapAttributeAttribute SoapAttribute { get => throw null; set => throw null; } public SoapAttributes() => throw null; public SoapAttributes(System.Reflection.ICustomAttributeProvider provider) => throw null; - public object SoapDefaultValue { get => throw null; set => throw null; } - public System.Xml.Serialization.SoapElementAttribute SoapElement { get => throw null; set => throw null; } - public System.Xml.Serialization.SoapEnumAttribute SoapEnum { get => throw null; set => throw null; } - public bool SoapIgnore { get => throw null; set => throw null; } - public System.Xml.Serialization.SoapTypeAttribute SoapType { get => throw null; set => throw null; } + public System.Xml.Serialization.SoapAttributeAttribute SoapAttribute { get => throw null; set { } } + public object SoapDefaultValue { get => throw null; set { } } + public System.Xml.Serialization.SoapElementAttribute SoapElement { get => throw null; set { } } + public System.Xml.Serialization.SoapEnumAttribute SoapEnum { get => throw null; set { } } + public bool SoapIgnore { get => throw null; set { } } + public System.Xml.Serialization.SoapTypeAttribute SoapType { get => throw null; set { } } } - public class SoapElementAttribute : System.Attribute { - public string DataType { get => throw null; set => throw null; } - public string ElementName { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; set => throw null; } public SoapElementAttribute() => throw null; public SoapElementAttribute(string elementName) => throw null; + public string DataType { get => throw null; set { } } + public string ElementName { get => throw null; set { } } + public bool IsNullable { get => throw null; set { } } } - public class SoapEnumAttribute : System.Attribute { - public string Name { get => throw null; set => throw null; } public SoapEnumAttribute() => throw null; public SoapEnumAttribute(string name) => throw null; + public string Name { get => throw null; set { } } } - public class SoapIgnoreAttribute : System.Attribute { public SoapIgnoreAttribute() => throw null; } - public class SoapIncludeAttribute : System.Attribute { public SoapIncludeAttribute(System.Type type) => throw null; - public System.Type Type { get => throw null; set => throw null; } + public System.Type Type { get => throw null; set { } } } - public class SoapReflectionImporter { + public SoapReflectionImporter() => throw null; + public SoapReflectionImporter(string defaultNamespace) => throw null; + public SoapReflectionImporter(System.Xml.Serialization.SoapAttributeOverrides attributeOverrides) => throw null; + public SoapReflectionImporter(System.Xml.Serialization.SoapAttributeOverrides attributeOverrides, string defaultNamespace) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string elementName, string ns, System.Xml.Serialization.XmlReflectionMember[] members) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string elementName, string ns, System.Xml.Serialization.XmlReflectionMember[] members, bool hasWrapperElement, bool writeAccessors) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string elementName, string ns, System.Xml.Serialization.XmlReflectionMember[] members, bool hasWrapperElement, bool writeAccessors, bool validate) => throw null; @@ -129,88 +118,75 @@ namespace System public System.Xml.Serialization.XmlTypeMapping ImportTypeMapping(System.Type type, string defaultNamespace) => throw null; public void IncludeType(System.Type type) => throw null; public void IncludeTypes(System.Reflection.ICustomAttributeProvider provider) => throw null; - public SoapReflectionImporter() => throw null; - public SoapReflectionImporter(System.Xml.Serialization.SoapAttributeOverrides attributeOverrides) => throw null; - public SoapReflectionImporter(System.Xml.Serialization.SoapAttributeOverrides attributeOverrides, string defaultNamespace) => throw null; - public SoapReflectionImporter(string defaultNamespace) => throw null; } - public class SoapSchemaMember { - public string MemberName { get => throw null; set => throw null; } - public System.Xml.XmlQualifiedName MemberType { get => throw null; set => throw null; } public SoapSchemaMember() => throw null; + public string MemberName { get => throw null; set { } } + public System.Xml.XmlQualifiedName MemberType { get => throw null; set { } } } - public class SoapTypeAttribute : System.Attribute { - public bool IncludeInSchema { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } public SoapTypeAttribute() => throw null; public SoapTypeAttribute(string typeName) => throw null; public SoapTypeAttribute(string typeName, string ns) => throw null; - public string TypeName { get => throw null; set => throw null; } + public bool IncludeInSchema { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + public string TypeName { get => throw null; set { } } } - public class UnreferencedObjectEventArgs : System.EventArgs { + public UnreferencedObjectEventArgs(object o, string id) => throw null; public string UnreferencedId { get => throw null; } public object UnreferencedObject { get => throw null; } - public UnreferencedObjectEventArgs(object o, string id) => throw null; } - public delegate void UnreferencedObjectEventHandler(object sender, System.Xml.Serialization.UnreferencedObjectEventArgs e); - public class XmlAnyElementAttributes : System.Collections.CollectionBase { public int Add(System.Xml.Serialization.XmlAnyElementAttribute attribute) => throw null; public bool Contains(System.Xml.Serialization.XmlAnyElementAttribute attribute) => throw null; public void CopyTo(System.Xml.Serialization.XmlAnyElementAttribute[] array, int index) => throw null; + public XmlAnyElementAttributes() => throw null; public int IndexOf(System.Xml.Serialization.XmlAnyElementAttribute attribute) => throw null; public void Insert(int index, System.Xml.Serialization.XmlAnyElementAttribute attribute) => throw null; - public System.Xml.Serialization.XmlAnyElementAttribute this[int index] { get => throw null; set => throw null; } public void Remove(System.Xml.Serialization.XmlAnyElementAttribute attribute) => throw null; - public XmlAnyElementAttributes() => throw null; + public System.Xml.Serialization.XmlAnyElementAttribute this[int index] { get => throw null; set { } } } - public class XmlArrayAttribute : System.Attribute { - public string ElementName { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } public XmlArrayAttribute() => throw null; public XmlArrayAttribute(string elementName) => throw null; + public string ElementName { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set { } } + public bool IsNullable { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + public int Order { get => throw null; set { } } } - public class XmlArrayItemAttribute : System.Attribute { - public string DataType { get => throw null; set => throw null; } - public string ElementName { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public int NestingLevel { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } public XmlArrayItemAttribute() => throw null; - public XmlArrayItemAttribute(System.Type type) => throw null; public XmlArrayItemAttribute(string elementName) => throw null; public XmlArrayItemAttribute(string elementName, System.Type type) => throw null; + public XmlArrayItemAttribute(System.Type type) => throw null; + public string DataType { get => throw null; set { } } + public string ElementName { get => throw null; set { } } + public System.Xml.Schema.XmlSchemaForm Form { get => throw null; set { } } + public bool IsNullable { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + public int NestingLevel { get => throw null; set { } } + public System.Type Type { get => throw null; set { } } } - public class XmlArrayItemAttributes : System.Collections.CollectionBase { public int Add(System.Xml.Serialization.XmlArrayItemAttribute attribute) => throw null; public bool Contains(System.Xml.Serialization.XmlArrayItemAttribute attribute) => throw null; public void CopyTo(System.Xml.Serialization.XmlArrayItemAttribute[] array, int index) => throw null; + public XmlArrayItemAttributes() => throw null; public int IndexOf(System.Xml.Serialization.XmlArrayItemAttribute attribute) => throw null; public void Insert(int index, System.Xml.Serialization.XmlArrayItemAttribute attribute) => throw null; - public System.Xml.Serialization.XmlArrayItemAttribute this[int index] { get => throw null; set => throw null; } public void Remove(System.Xml.Serialization.XmlArrayItemAttribute attribute) => throw null; - public XmlArrayItemAttributes() => throw null; + public System.Xml.Serialization.XmlArrayItemAttribute this[int index] { get => throw null; set { } } } - public class XmlAttributeEventArgs : System.EventArgs { public System.Xml.XmlAttribute Attr { get => throw null; } @@ -219,66 +195,58 @@ namespace System public int LinePosition { get => throw null; } public object ObjectBeingDeserialized { get => throw null; } } - public delegate void XmlAttributeEventHandler(object sender, System.Xml.Serialization.XmlAttributeEventArgs e); - public class XmlAttributeOverrides { - public void Add(System.Type type, System.Xml.Serialization.XmlAttributes attributes) => throw null; public void Add(System.Type type, string member, System.Xml.Serialization.XmlAttributes attributes) => throw null; - public System.Xml.Serialization.XmlAttributes this[System.Type type, string member] { get => throw null; } - public System.Xml.Serialization.XmlAttributes this[System.Type type] { get => throw null; } + public void Add(System.Type type, System.Xml.Serialization.XmlAttributes attributes) => throw null; public XmlAttributeOverrides() => throw null; + public System.Xml.Serialization.XmlAttributes this[System.Type type] { get => throw null; } + public System.Xml.Serialization.XmlAttributes this[System.Type type, string member] { get => throw null; } } - public class XmlAttributes { - public System.Xml.Serialization.XmlAnyAttributeAttribute XmlAnyAttribute { get => throw null; set => throw null; } - public System.Xml.Serialization.XmlAnyElementAttributes XmlAnyElements { get => throw null; } - public System.Xml.Serialization.XmlArrayAttribute XmlArray { get => throw null; set => throw null; } - public System.Xml.Serialization.XmlArrayItemAttributes XmlArrayItems { get => throw null; } - public System.Xml.Serialization.XmlAttributeAttribute XmlAttribute { get => throw null; set => throw null; } public XmlAttributes() => throw null; public XmlAttributes(System.Reflection.ICustomAttributeProvider provider) => throw null; + public System.Xml.Serialization.XmlAnyAttributeAttribute XmlAnyAttribute { get => throw null; set { } } + public System.Xml.Serialization.XmlAnyElementAttributes XmlAnyElements { get => throw null; } + public System.Xml.Serialization.XmlArrayAttribute XmlArray { get => throw null; set { } } + public System.Xml.Serialization.XmlArrayItemAttributes XmlArrayItems { get => throw null; } + public System.Xml.Serialization.XmlAttributeAttribute XmlAttribute { get => throw null; set { } } public System.Xml.Serialization.XmlChoiceIdentifierAttribute XmlChoiceIdentifier { get => throw null; } - public object XmlDefaultValue { get => throw null; set => throw null; } + public object XmlDefaultValue { get => throw null; set { } } public System.Xml.Serialization.XmlElementAttributes XmlElements { get => throw null; } - public System.Xml.Serialization.XmlEnumAttribute XmlEnum { get => throw null; set => throw null; } - public bool XmlIgnore { get => throw null; set => throw null; } - public System.Xml.Serialization.XmlRootAttribute XmlRoot { get => throw null; set => throw null; } - public System.Xml.Serialization.XmlTextAttribute XmlText { get => throw null; set => throw null; } - public System.Xml.Serialization.XmlTypeAttribute XmlType { get => throw null; set => throw null; } - public bool Xmlns { get => throw null; set => throw null; } + public System.Xml.Serialization.XmlEnumAttribute XmlEnum { get => throw null; set { } } + public bool XmlIgnore { get => throw null; set { } } + public bool Xmlns { get => throw null; set { } } + public System.Xml.Serialization.XmlRootAttribute XmlRoot { get => throw null; set { } } + public System.Xml.Serialization.XmlTextAttribute XmlText { get => throw null; set { } } + public System.Xml.Serialization.XmlTypeAttribute XmlType { get => throw null; set { } } } - public class XmlChoiceIdentifierAttribute : System.Attribute { - public string MemberName { get => throw null; set => throw null; } public XmlChoiceIdentifierAttribute() => throw null; public XmlChoiceIdentifierAttribute(string name) => throw null; + public string MemberName { get => throw null; set { } } } - public struct XmlDeserializationEvents { - public System.Xml.Serialization.XmlAttributeEventHandler OnUnknownAttribute { get => throw null; set => throw null; } - public System.Xml.Serialization.XmlElementEventHandler OnUnknownElement { get => throw null; set => throw null; } - public System.Xml.Serialization.XmlNodeEventHandler OnUnknownNode { get => throw null; set => throw null; } - public System.Xml.Serialization.UnreferencedObjectEventHandler OnUnreferencedObject { get => throw null; set => throw null; } - // Stub generator skipped constructor + public System.Xml.Serialization.XmlAttributeEventHandler OnUnknownAttribute { get => throw null; set { } } + public System.Xml.Serialization.XmlElementEventHandler OnUnknownElement { get => throw null; set { } } + public System.Xml.Serialization.XmlNodeEventHandler OnUnknownNode { get => throw null; set { } } + public System.Xml.Serialization.UnreferencedObjectEventHandler OnUnreferencedObject { get => throw null; set { } } } - public class XmlElementAttributes : System.Collections.CollectionBase { public int Add(System.Xml.Serialization.XmlElementAttribute attribute) => throw null; public bool Contains(System.Xml.Serialization.XmlElementAttribute attribute) => throw null; public void CopyTo(System.Xml.Serialization.XmlElementAttribute[] array, int index) => throw null; + public XmlElementAttributes() => throw null; public int IndexOf(System.Xml.Serialization.XmlElementAttribute attribute) => throw null; public void Insert(int index, System.Xml.Serialization.XmlElementAttribute attribute) => throw null; - public System.Xml.Serialization.XmlElementAttribute this[int index] { get => throw null; set => throw null; } public void Remove(System.Xml.Serialization.XmlElementAttribute attribute) => throw null; - public XmlElementAttributes() => throw null; + public System.Xml.Serialization.XmlElementAttribute this[int index] { get => throw null; set { } } } - public class XmlElementEventArgs : System.EventArgs { public System.Xml.XmlElement Element { get => throw null; } @@ -287,32 +255,26 @@ namespace System public int LinePosition { get => throw null; } public object ObjectBeingDeserialized { get => throw null; } } - public delegate void XmlElementEventHandler(object sender, System.Xml.Serialization.XmlElementEventArgs e); - public class XmlIncludeAttribute : System.Attribute { - public System.Type Type { get => throw null; set => throw null; } public XmlIncludeAttribute(System.Type type) => throw null; + public System.Type Type { get => throw null; set { } } } - public abstract class XmlMapping { public string ElementName { get => throw null; } public string Namespace { get => throw null; } public void SetKey(string key) => throw null; - internal XmlMapping() => throw null; public string XsdElementName { get => throw null; } } - [System.Flags] - public enum XmlMappingAccess : int + public enum XmlMappingAccess { None = 0, Read = 1, Write = 2, } - public class XmlMemberMapping { public bool Any { get => throw null; } @@ -325,7 +287,6 @@ namespace System public string TypeNamespace { get => throw null; } public string XsdElementName { get => throw null; } } - public class XmlMembersMapping : System.Xml.Serialization.XmlMapping { public int Count { get => throw null; } @@ -333,7 +294,6 @@ namespace System public string TypeName { get => throw null; } public string TypeNamespace { get => throw null; } } - public class XmlNodeEventArgs : System.EventArgs { public int LineNumber { get => throw null; } @@ -345,76 +305,69 @@ namespace System public object ObjectBeingDeserialized { get => throw null; } public string Text { get => throw null; } } - public delegate void XmlNodeEventHandler(object sender, System.Xml.Serialization.XmlNodeEventArgs e); - public class XmlReflectionImporter { + public XmlReflectionImporter() => throw null; + public XmlReflectionImporter(string defaultNamespace) => throw null; + public XmlReflectionImporter(System.Xml.Serialization.XmlAttributeOverrides attributeOverrides) => throw null; + public XmlReflectionImporter(System.Xml.Serialization.XmlAttributeOverrides attributeOverrides, string defaultNamespace) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string elementName, string ns, System.Xml.Serialization.XmlReflectionMember[] members, bool hasWrapperElement) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string elementName, string ns, System.Xml.Serialization.XmlReflectionMember[] members, bool hasWrapperElement, bool rpc) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string elementName, string ns, System.Xml.Serialization.XmlReflectionMember[] members, bool hasWrapperElement, bool rpc, bool openModel) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string elementName, string ns, System.Xml.Serialization.XmlReflectionMember[] members, bool hasWrapperElement, bool rpc, bool openModel, System.Xml.Serialization.XmlMappingAccess access) => throw null; public System.Xml.Serialization.XmlTypeMapping ImportTypeMapping(System.Type type) => throw null; + public System.Xml.Serialization.XmlTypeMapping ImportTypeMapping(System.Type type, string defaultNamespace) => throw null; public System.Xml.Serialization.XmlTypeMapping ImportTypeMapping(System.Type type, System.Xml.Serialization.XmlRootAttribute root) => throw null; public System.Xml.Serialization.XmlTypeMapping ImportTypeMapping(System.Type type, System.Xml.Serialization.XmlRootAttribute root, string defaultNamespace) => throw null; - public System.Xml.Serialization.XmlTypeMapping ImportTypeMapping(System.Type type, string defaultNamespace) => throw null; public void IncludeType(System.Type type) => throw null; public void IncludeTypes(System.Reflection.ICustomAttributeProvider provider) => throw null; - public XmlReflectionImporter() => throw null; - public XmlReflectionImporter(System.Xml.Serialization.XmlAttributeOverrides attributeOverrides) => throw null; - public XmlReflectionImporter(System.Xml.Serialization.XmlAttributeOverrides attributeOverrides, string defaultNamespace) => throw null; - public XmlReflectionImporter(string defaultNamespace) => throw null; } - public class XmlReflectionMember { - public bool IsReturnValue { get => throw null; set => throw null; } - public string MemberName { get => throw null; set => throw null; } - public System.Type MemberType { get => throw null; set => throw null; } - public bool OverrideIsNullable { get => throw null; set => throw null; } - public System.Xml.Serialization.SoapAttributes SoapAttributes { get => throw null; set => throw null; } - public System.Xml.Serialization.XmlAttributes XmlAttributes { get => throw null; set => throw null; } public XmlReflectionMember() => throw null; + public bool IsReturnValue { get => throw null; set { } } + public string MemberName { get => throw null; set { } } + public System.Type MemberType { get => throw null; set { } } + public bool OverrideIsNullable { get => throw null; set { } } + public System.Xml.Serialization.SoapAttributes SoapAttributes { get => throw null; set { } } + public System.Xml.Serialization.XmlAttributes XmlAttributes { get => throw null; set { } } } - public class XmlSchemaEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { + public XmlSchemaEnumerator(System.Xml.Serialization.XmlSchemas list) => throw null; public System.Xml.Schema.XmlSchema Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; - public XmlSchemaEnumerator(System.Xml.Serialization.XmlSchemas list) => throw null; } - public class XmlSchemaExporter { - public string ExportAnyType(System.Xml.Serialization.XmlMembersMapping members) => throw null; + public XmlSchemaExporter(System.Xml.Serialization.XmlSchemas schemas) => throw null; public string ExportAnyType(string ns) => throw null; + public string ExportAnyType(System.Xml.Serialization.XmlMembersMapping members) => throw null; public void ExportMembersMapping(System.Xml.Serialization.XmlMembersMapping xmlMembersMapping) => throw null; public void ExportMembersMapping(System.Xml.Serialization.XmlMembersMapping xmlMembersMapping, bool exportEnclosingType) => throw null; public System.Xml.XmlQualifiedName ExportTypeMapping(System.Xml.Serialization.XmlMembersMapping xmlMembersMapping) => throw null; public void ExportTypeMapping(System.Xml.Serialization.XmlTypeMapping xmlTypeMapping) => throw null; - public XmlSchemaExporter(System.Xml.Serialization.XmlSchemas schemas) => throw null; } - public class XmlSchemaImporter : System.Xml.Serialization.SchemaImporter { + public XmlSchemaImporter(System.Xml.Serialization.XmlSchemas schemas) => throw null; + public XmlSchemaImporter(System.Xml.Serialization.XmlSchemas schemas, System.Xml.Serialization.CodeIdentifiers typeIdentifiers) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportAnyType(System.Xml.XmlQualifiedName typeName, string elementName) => throw null; public System.Xml.Serialization.XmlTypeMapping ImportDerivedTypeMapping(System.Xml.XmlQualifiedName name, System.Type baseType) => throw null; public System.Xml.Serialization.XmlTypeMapping ImportDerivedTypeMapping(System.Xml.XmlQualifiedName name, System.Type baseType, bool baseTypeCanBeIndirect) => throw null; + public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string name, string ns, System.Xml.Serialization.SoapSchemaMember[] members) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(System.Xml.XmlQualifiedName name) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(System.Xml.XmlQualifiedName[] names) => throw null; public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(System.Xml.XmlQualifiedName[] names, System.Type baseType, bool baseTypeCanBeIndirect) => throw null; - public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string name, string ns, System.Xml.Serialization.SoapSchemaMember[] members) => throw null; public System.Xml.Serialization.XmlTypeMapping ImportSchemaType(System.Xml.XmlQualifiedName typeName) => throw null; public System.Xml.Serialization.XmlTypeMapping ImportSchemaType(System.Xml.XmlQualifiedName typeName, System.Type baseType) => throw null; public System.Xml.Serialization.XmlTypeMapping ImportSchemaType(System.Xml.XmlQualifiedName typeName, System.Type baseType, bool baseTypeCanBeIndirect) => throw null; public System.Xml.Serialization.XmlTypeMapping ImportTypeMapping(System.Xml.XmlQualifiedName name) => throw null; - public XmlSchemaImporter(System.Xml.Serialization.XmlSchemas schemas) => throw null; - public XmlSchemaImporter(System.Xml.Serialization.XmlSchemas schemas, System.Xml.Serialization.CodeIdentifiers typeIdentifiers) => throw null; } - public class XmlSchemas : System.Collections.CollectionBase, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public int Add(System.Xml.Schema.XmlSchema schema) => throw null; @@ -422,9 +375,10 @@ namespace System public void Add(System.Xml.Serialization.XmlSchemas schemas) => throw null; public void AddReference(System.Xml.Schema.XmlSchema schema) => throw null; public void Compile(System.Xml.Schema.ValidationEventHandler handler, bool fullCompile) => throw null; - public bool Contains(System.Xml.Schema.XmlSchema schema) => throw null; public bool Contains(string targetNamespace) => throw null; + public bool Contains(System.Xml.Schema.XmlSchema schema) => throw null; public void CopyTo(System.Xml.Schema.XmlSchema[] array, int index) => throw null; + public XmlSchemas() => throw null; public object Find(System.Xml.XmlQualifiedName name, System.Type type) => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; public System.Collections.IList GetSchemas(string ns) => throw null; @@ -432,54 +386,36 @@ namespace System public void Insert(int index, System.Xml.Schema.XmlSchema schema) => throw null; public bool IsCompiled { get => throw null; } public static bool IsDataSet(System.Xml.Schema.XmlSchema schema) => throw null; - public System.Xml.Schema.XmlSchema this[int index] { get => throw null; set => throw null; } - public System.Xml.Schema.XmlSchema this[string ns] { get => throw null; } protected override void OnClear() => throw null; protected override void OnInsert(int index, object value) => throw null; protected override void OnRemove(int index, object value) => throw null; protected override void OnSet(int index, object oldValue, object newValue) => throw null; public void Remove(System.Xml.Schema.XmlSchema schema) => throw null; - public XmlSchemas() => throw null; + public System.Xml.Schema.XmlSchema this[int index] { get => throw null; set { } } + public System.Xml.Schema.XmlSchema this[string ns] { get => throw null; } } - public delegate void XmlSerializationCollectionFixupCallback(object collection, object collectionItems); - public delegate void XmlSerializationFixupCallback(object fixup); - public abstract class XmlSerializationGeneratedCode { protected XmlSerializationGeneratedCode() => throw null; } - public delegate object XmlSerializationReadCallback(); - public abstract class XmlSerializationReader : System.Xml.Serialization.XmlSerializationGeneratedCode { - protected class CollectionFixup - { - public System.Xml.Serialization.XmlSerializationCollectionFixupCallback Callback { get => throw null; } - public object Collection { get => throw null; } - public CollectionFixup(object collection, System.Xml.Serialization.XmlSerializationCollectionFixupCallback callback, object collectionItems) => throw null; - public object CollectionItems { get => throw null; } - } - - - protected class Fixup - { - public System.Xml.Serialization.XmlSerializationFixupCallback Callback { get => throw null; } - public Fixup(object o, System.Xml.Serialization.XmlSerializationFixupCallback callback, string[] ids) => throw null; - public Fixup(object o, System.Xml.Serialization.XmlSerializationFixupCallback callback, int count) => throw null; - public string[] Ids { get => throw null; } - public object Source { get => throw null; set => throw null; } - } - - protected void AddFixup(System.Xml.Serialization.XmlSerializationReader.CollectionFixup fixup) => throw null; protected void AddFixup(System.Xml.Serialization.XmlSerializationReader.Fixup fixup) => throw null; protected void AddReadCallback(string name, string ns, System.Type type, System.Xml.Serialization.XmlSerializationReadCallback read) => throw null; protected void AddTarget(string id, object o) => throw null; protected void CheckReaderCount(ref int whileIterations, ref int readerCount) => throw null; protected string CollapseWhitespace(string value) => throw null; + protected class CollectionFixup + { + public System.Xml.Serialization.XmlSerializationCollectionFixupCallback Callback { get => throw null; } + public object Collection { get => throw null; } + public object CollectionItems { get => throw null; } + public CollectionFixup(object collection, System.Xml.Serialization.XmlSerializationCollectionFixupCallback callback, object collectionItems) => throw null; + } protected System.Exception CreateAbstractTypeException(string name, string ns) => throw null; protected System.Exception CreateBadDerivationException(string xsdDerived, string nsDerived, string xsdBase, string nsBase, string clrDerived, string clrBase) => throw null; protected System.Exception CreateCtorHasSecurityException(string typeName) => throw null; @@ -491,9 +427,18 @@ namespace System protected System.Exception CreateUnknownConstantException(string value, System.Type enumType) => throw null; protected System.Exception CreateUnknownNodeException() => throw null; protected System.Exception CreateUnknownTypeException(System.Xml.XmlQualifiedName type) => throw null; - protected bool DecodeName { get => throw null; set => throw null; } + protected XmlSerializationReader() => throw null; + protected bool DecodeName { get => throw null; set { } } protected System.Xml.XmlDocument Document { get => throw null; } protected System.Array EnsureArrayIndex(System.Array a, int index, System.Type elementType) => throw null; + protected class Fixup + { + public System.Xml.Serialization.XmlSerializationFixupCallback Callback { get => throw null; } + public Fixup(object o, System.Xml.Serialization.XmlSerializationFixupCallback callback, int count) => throw null; + public Fixup(object o, System.Xml.Serialization.XmlSerializationFixupCallback callback, string[] ids) => throw null; + public string[] Ids { get => throw null; } + public object Source { get => throw null; set { } } + } protected void FixupArrayRefs(object fixup) => throw null; protected int GetArrayLength(string name, string ns) => throw null; protected bool GetNullAttr() => throw null; @@ -501,11 +446,13 @@ namespace System protected System.Xml.XmlQualifiedName GetXsiType() => throw null; protected abstract void InitCallbacks(); protected abstract void InitIDs(); - protected bool IsReturnValue { get => throw null; set => throw null; } + protected bool IsReturnValue { get => throw null; set { } } protected bool IsXmlnsAttribute(string name) => throw null; protected void ParseWsdlArrayType(System.Xml.XmlAttribute attr) => throw null; protected System.Xml.XmlQualifiedName ReadElementQualifiedName() => throw null; protected void ReadEndElement() => throw null; + protected System.Xml.XmlReader Reader { get => throw null; } + protected int ReaderCount { get => throw null; } protected bool ReadNull() => throw null; protected System.Xml.XmlQualifiedName ReadNullableQualifiedName() => throw null; protected string ReadNullableString() => throw null; @@ -513,9 +460,9 @@ namespace System protected object ReadReferencedElement() => throw null; protected object ReadReferencedElement(string name, string ns) => throw null; protected void ReadReferencedElements() => throw null; - protected object ReadReferencingElement(out string fixupReference) => throw null; protected object ReadReferencingElement(string name, string ns, bool elementCanBeType, out string fixupReference) => throw null; protected object ReadReferencingElement(string name, string ns, out string fixupReference) => throw null; + protected object ReadReferencingElement(out string fixupReference) => throw null; protected System.Xml.Serialization.IXmlSerializable ReadSerializable(System.Xml.Serialization.IXmlSerializable serializable) => throw null; protected System.Xml.Serialization.IXmlSerializable ReadSerializable(System.Xml.Serialization.IXmlSerializable serializable, bool wrappedAny) => throw null; protected string ReadString(string value) => throw null; @@ -524,22 +471,20 @@ namespace System protected object ReadTypedPrimitive(System.Xml.XmlQualifiedName type) => throw null; protected System.Xml.XmlDocument ReadXmlDocument(bool wrapped) => throw null; protected System.Xml.XmlNode ReadXmlNode(bool wrapped) => throw null; - protected System.Xml.XmlReader Reader { get => throw null; } - protected int ReaderCount { get => throw null; } protected void Referenced(object o) => throw null; protected static System.Reflection.Assembly ResolveDynamicAssembly(string assemblyFullName) => throw null; protected System.Array ShrinkArray(System.Array a, int length, System.Type elementType, bool isNullable) => throw null; - protected System.Byte[] ToByteArrayBase64(bool isNull) => throw null; - protected static System.Byte[] ToByteArrayBase64(string value) => throw null; - protected System.Byte[] ToByteArrayHex(bool isNull) => throw null; - protected static System.Byte[] ToByteArrayHex(string value) => throw null; - protected static System.Char ToChar(string value) => throw null; + protected byte[] ToByteArrayBase64(bool isNull) => throw null; + protected static byte[] ToByteArrayBase64(string value) => throw null; + protected byte[] ToByteArrayHex(bool isNull) => throw null; + protected static byte[] ToByteArrayHex(string value) => throw null; + protected static char ToChar(string value) => throw null; protected static System.DateTime ToDate(string value) => throw null; protected static System.DateTime ToDateTime(string value) => throw null; - protected static System.Int64 ToEnum(string value, System.Collections.Hashtable h, string typeName) => throw null; + protected static long ToEnum(string value, System.Collections.Hashtable h, string typeName) => throw null; protected static System.DateTime ToTime(string value) => throw null; - protected static string ToXmlNCName(string value) => throw null; protected static string ToXmlName(string value) => throw null; + protected static string ToXmlNCName(string value) => throw null; protected static string ToXmlNmToken(string value) => throw null; protected static string ToXmlNmTokens(string value) => throw null; protected System.Xml.XmlQualifiedName ToXmlQualifiedName(string value) => throw null; @@ -550,87 +495,86 @@ namespace System protected void UnknownNode(object o) => throw null; protected void UnknownNode(object o, string qnames) => throw null; protected void UnreferencedObject(string id, object o) => throw null; - protected XmlSerializationReader() => throw null; } - public delegate void XmlSerializationWriteCallback(object o); - public abstract class XmlSerializationWriter : System.Xml.Serialization.XmlSerializationGeneratedCode { protected void AddWriteCallback(System.Type type, string typeName, string typeNs, System.Xml.Serialization.XmlSerializationWriteCallback callback) => throw null; protected System.Exception CreateChoiceIdentifierValueException(string value, string identifier, string name, string ns) => throw null; - protected System.Exception CreateInvalidAnyTypeException(System.Type type) => throw null; protected System.Exception CreateInvalidAnyTypeException(object o) => throw null; + protected System.Exception CreateInvalidAnyTypeException(System.Type type) => throw null; protected System.Exception CreateInvalidChoiceIdentifierValueException(string type, string identifier) => throw null; protected System.Exception CreateInvalidEnumValueException(object value, string typeName) => throw null; protected System.Exception CreateMismatchChoiceException(string value, string elementName, string enumValue) => throw null; protected System.Exception CreateUnknownAnyElementException(string name, string ns) => throw null; - protected System.Exception CreateUnknownTypeException(System.Type type) => throw null; protected System.Exception CreateUnknownTypeException(object o) => throw null; - protected bool EscapeName { get => throw null; set => throw null; } - protected static System.Byte[] FromByteArrayBase64(System.Byte[] value) => throw null; - protected static string FromByteArrayHex(System.Byte[] value) => throw null; - protected static string FromChar(System.Char value) => throw null; + protected System.Exception CreateUnknownTypeException(System.Type type) => throw null; + protected XmlSerializationWriter() => throw null; + protected bool EscapeName { get => throw null; set { } } + protected static byte[] FromByteArrayBase64(byte[] value) => throw null; + protected static string FromByteArrayHex(byte[] value) => throw null; + protected static string FromChar(char value) => throw null; protected static string FromDate(System.DateTime value) => throw null; protected static string FromDateTime(System.DateTime value) => throw null; - protected static string FromEnum(System.Int64 value, string[] values, System.Int64[] ids) => throw null; - protected static string FromEnum(System.Int64 value, string[] values, System.Int64[] ids, string typeName) => throw null; + protected static string FromEnum(long value, string[] values, long[] ids) => throw null; + protected static string FromEnum(long value, string[] values, long[] ids, string typeName) => throw null; protected static string FromTime(System.DateTime value) => throw null; - protected static string FromXmlNCName(string ncName) => throw null; protected static string FromXmlName(string name) => throw null; + protected static string FromXmlNCName(string ncName) => throw null; protected static string FromXmlNmToken(string nmToken) => throw null; protected static string FromXmlNmTokens(string nmTokens) => throw null; protected string FromXmlQualifiedName(System.Xml.XmlQualifiedName xmlQualifiedName) => throw null; protected string FromXmlQualifiedName(System.Xml.XmlQualifiedName xmlQualifiedName, bool ignoreEmpty) => throw null; protected abstract void InitCallbacks(); - protected System.Collections.ArrayList Namespaces { get => throw null; set => throw null; } + protected System.Collections.ArrayList Namespaces { get => throw null; set { } } protected static System.Reflection.Assembly ResolveDynamicAssembly(string assemblyFullName) => throw null; protected void TopLevelElement() => throw null; - protected void WriteAttribute(string localName, System.Byte[] value) => throw null; + protected void WriteAttribute(string localName, byte[] value) => throw null; protected void WriteAttribute(string localName, string value) => throw null; - protected void WriteAttribute(string localName, string ns, System.Byte[] value) => throw null; + protected void WriteAttribute(string localName, string ns, byte[] value) => throw null; protected void WriteAttribute(string localName, string ns, string value) => throw null; protected void WriteAttribute(string prefix, string localName, string ns, string value) => throw null; protected void WriteElementEncoded(System.Xml.XmlNode node, string name, string ns, bool isNullable, bool any) => throw null; protected void WriteElementLiteral(System.Xml.XmlNode node, string name, string ns, bool isNullable, bool any) => throw null; - protected void WriteElementQualifiedName(string localName, System.Xml.XmlQualifiedName value) => throw null; - protected void WriteElementQualifiedName(string localName, System.Xml.XmlQualifiedName value, System.Xml.XmlQualifiedName xsiType) => throw null; protected void WriteElementQualifiedName(string localName, string ns, System.Xml.XmlQualifiedName value) => throw null; protected void WriteElementQualifiedName(string localName, string ns, System.Xml.XmlQualifiedName value, System.Xml.XmlQualifiedName xsiType) => throw null; + protected void WriteElementQualifiedName(string localName, System.Xml.XmlQualifiedName value) => throw null; + protected void WriteElementQualifiedName(string localName, System.Xml.XmlQualifiedName value, System.Xml.XmlQualifiedName xsiType) => throw null; protected void WriteElementString(string localName, string value) => throw null; - protected void WriteElementString(string localName, string value, System.Xml.XmlQualifiedName xsiType) => throw null; protected void WriteElementString(string localName, string ns, string value) => throw null; protected void WriteElementString(string localName, string ns, string value, System.Xml.XmlQualifiedName xsiType) => throw null; - protected void WriteElementStringRaw(string localName, System.Byte[] value) => throw null; - protected void WriteElementStringRaw(string localName, System.Byte[] value, System.Xml.XmlQualifiedName xsiType) => throw null; + protected void WriteElementString(string localName, string value, System.Xml.XmlQualifiedName xsiType) => throw null; + protected void WriteElementStringRaw(string localName, byte[] value) => throw null; + protected void WriteElementStringRaw(string localName, byte[] value, System.Xml.XmlQualifiedName xsiType) => throw null; protected void WriteElementStringRaw(string localName, string value) => throw null; - protected void WriteElementStringRaw(string localName, string ns, System.Byte[] value) => throw null; - protected void WriteElementStringRaw(string localName, string ns, System.Byte[] value, System.Xml.XmlQualifiedName xsiType) => throw null; - protected void WriteElementStringRaw(string localName, string value, System.Xml.XmlQualifiedName xsiType) => throw null; + protected void WriteElementStringRaw(string localName, string ns, byte[] value) => throw null; + protected void WriteElementStringRaw(string localName, string ns, byte[] value, System.Xml.XmlQualifiedName xsiType) => throw null; protected void WriteElementStringRaw(string localName, string ns, string value) => throw null; protected void WriteElementStringRaw(string localName, string ns, string value, System.Xml.XmlQualifiedName xsiType) => throw null; + protected void WriteElementStringRaw(string localName, string value, System.Xml.XmlQualifiedName xsiType) => throw null; protected void WriteEmptyTag(string name) => throw null; protected void WriteEmptyTag(string name, string ns) => throw null; protected void WriteEndElement() => throw null; protected void WriteEndElement(object o) => throw null; protected void WriteId(object o) => throw null; protected void WriteNamespaceDeclarations(System.Xml.Serialization.XmlSerializerNamespaces xmlns) => throw null; + protected void WriteNullableQualifiedNameEncoded(string name, string ns, System.Xml.XmlQualifiedName value, System.Xml.XmlQualifiedName xsiType) => throw null; + protected void WriteNullableQualifiedNameLiteral(string name, string ns, System.Xml.XmlQualifiedName value) => throw null; + protected void WriteNullableStringEncoded(string name, string ns, string value, System.Xml.XmlQualifiedName xsiType) => throw null; + protected void WriteNullableStringEncodedRaw(string name, string ns, byte[] value, System.Xml.XmlQualifiedName xsiType) => throw null; + protected void WriteNullableStringEncodedRaw(string name, string ns, string value, System.Xml.XmlQualifiedName xsiType) => throw null; + protected void WriteNullableStringLiteral(string name, string ns, string value) => throw null; + protected void WriteNullableStringLiteralRaw(string name, string ns, byte[] value) => throw null; + protected void WriteNullableStringLiteralRaw(string name, string ns, string value) => throw null; protected void WriteNullTagEncoded(string name) => throw null; protected void WriteNullTagEncoded(string name, string ns) => throw null; protected void WriteNullTagLiteral(string name) => throw null; protected void WriteNullTagLiteral(string name, string ns) => throw null; - protected void WriteNullableQualifiedNameEncoded(string name, string ns, System.Xml.XmlQualifiedName value, System.Xml.XmlQualifiedName xsiType) => throw null; - protected void WriteNullableQualifiedNameLiteral(string name, string ns, System.Xml.XmlQualifiedName value) => throw null; - protected void WriteNullableStringEncoded(string name, string ns, string value, System.Xml.XmlQualifiedName xsiType) => throw null; - protected void WriteNullableStringEncodedRaw(string name, string ns, System.Byte[] value, System.Xml.XmlQualifiedName xsiType) => throw null; - protected void WriteNullableStringEncodedRaw(string name, string ns, string value, System.Xml.XmlQualifiedName xsiType) => throw null; - protected void WriteNullableStringLiteral(string name, string ns, string value) => throw null; - protected void WriteNullableStringLiteralRaw(string name, string ns, System.Byte[] value) => throw null; - protected void WriteNullableStringLiteralRaw(string name, string ns, string value) => throw null; protected void WritePotentiallyReferencingElement(string n, string ns, object o) => throw null; protected void WritePotentiallyReferencingElement(string n, string ns, object o, System.Type ambientType) => throw null; protected void WritePotentiallyReferencingElement(string n, string ns, object o, System.Type ambientType, bool suppressReference) => throw null; protected void WritePotentiallyReferencingElement(string n, string ns, object o, System.Type ambientType, bool suppressReference, bool isNullable) => throw null; + protected System.Xml.XmlWriter Writer { get => throw null; set { } } protected void WriteReferencedElements() => throw null; protected void WriteReferencingElement(string n, string ns, object o) => throw null; protected void WriteReferencingElement(string n, string ns, object o, bool isNullable) => throw null; @@ -645,27 +589,33 @@ namespace System protected void WriteStartElement(string name, string ns, object o, bool writePrefixed) => throw null; protected void WriteStartElement(string name, string ns, object o, bool writePrefixed, System.Xml.Serialization.XmlSerializerNamespaces xmlns) => throw null; protected void WriteTypedPrimitive(string name, string ns, object o, bool xsiType) => throw null; - protected void WriteValue(System.Byte[] value) => throw null; + protected void WriteValue(byte[] value) => throw null; protected void WriteValue(string value) => throw null; protected void WriteXmlAttribute(System.Xml.XmlNode node) => throw null; protected void WriteXmlAttribute(System.Xml.XmlNode node, object container) => throw null; protected void WriteXsiType(string name, string ns) => throw null; - protected System.Xml.XmlWriter Writer { get => throw null; set => throw null; } - protected XmlSerializationWriter() => throw null; } - public class XmlSerializer { public virtual bool CanDeserialize(System.Xml.XmlReader xmlReader) => throw null; protected virtual System.Xml.Serialization.XmlSerializationReader CreateReader() => throw null; protected virtual System.Xml.Serialization.XmlSerializationWriter CreateWriter() => throw null; + protected XmlSerializer() => throw null; + public XmlSerializer(System.Type type) => throw null; + public XmlSerializer(System.Type type, string defaultNamespace) => throw null; + public XmlSerializer(System.Type type, System.Type[] extraTypes) => throw null; + public XmlSerializer(System.Type type, System.Xml.Serialization.XmlAttributeOverrides overrides) => throw null; + public XmlSerializer(System.Type type, System.Xml.Serialization.XmlAttributeOverrides overrides, System.Type[] extraTypes, System.Xml.Serialization.XmlRootAttribute root, string defaultNamespace) => throw null; + public XmlSerializer(System.Type type, System.Xml.Serialization.XmlAttributeOverrides overrides, System.Type[] extraTypes, System.Xml.Serialization.XmlRootAttribute root, string defaultNamespace, string location) => throw null; + public XmlSerializer(System.Type type, System.Xml.Serialization.XmlRootAttribute root) => throw null; + public XmlSerializer(System.Xml.Serialization.XmlTypeMapping xmlTypeMapping) => throw null; public object Deserialize(System.IO.Stream stream) => throw null; public object Deserialize(System.IO.TextReader textReader) => throw null; + protected virtual object Deserialize(System.Xml.Serialization.XmlSerializationReader reader) => throw null; public object Deserialize(System.Xml.XmlReader xmlReader) => throw null; - public object Deserialize(System.Xml.XmlReader xmlReader, System.Xml.Serialization.XmlDeserializationEvents events) => throw null; public object Deserialize(System.Xml.XmlReader xmlReader, string encodingStyle) => throw null; public object Deserialize(System.Xml.XmlReader xmlReader, string encodingStyle, System.Xml.Serialization.XmlDeserializationEvents events) => throw null; - protected virtual object Deserialize(System.Xml.Serialization.XmlSerializationReader reader) => throw null; + public object Deserialize(System.Xml.XmlReader xmlReader, System.Xml.Serialization.XmlDeserializationEvents events) => throw null; public static System.Xml.Serialization.XmlSerializer[] FromMappings(System.Xml.Serialization.XmlMapping[] mappings) => throw null; public static System.Xml.Serialization.XmlSerializer[] FromMappings(System.Xml.Serialization.XmlMapping[] mappings, System.Type type) => throw null; public static System.Xml.Serialization.XmlSerializer[] FromTypes(System.Type[] types) => throw null; @@ -675,80 +625,65 @@ namespace System public void Serialize(System.IO.Stream stream, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces) => throw null; public void Serialize(System.IO.TextWriter textWriter, object o) => throw null; public void Serialize(System.IO.TextWriter textWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces) => throw null; + protected virtual void Serialize(object o, System.Xml.Serialization.XmlSerializationWriter writer) => throw null; public void Serialize(System.Xml.XmlWriter xmlWriter, object o) => throw null; public void Serialize(System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces) => throw null; public void Serialize(System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle) => throw null; public void Serialize(System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle, string id) => throw null; - protected virtual void Serialize(object o, System.Xml.Serialization.XmlSerializationWriter writer) => throw null; - public event System.Xml.Serialization.XmlAttributeEventHandler UnknownAttribute; - public event System.Xml.Serialization.XmlElementEventHandler UnknownElement; - public event System.Xml.Serialization.XmlNodeEventHandler UnknownNode; - public event System.Xml.Serialization.UnreferencedObjectEventHandler UnreferencedObject; - protected XmlSerializer() => throw null; - public XmlSerializer(System.Type type) => throw null; - public XmlSerializer(System.Type type, System.Type[] extraTypes) => throw null; - public XmlSerializer(System.Type type, System.Xml.Serialization.XmlAttributeOverrides overrides) => throw null; - public XmlSerializer(System.Type type, System.Xml.Serialization.XmlAttributeOverrides overrides, System.Type[] extraTypes, System.Xml.Serialization.XmlRootAttribute root, string defaultNamespace) => throw null; - public XmlSerializer(System.Type type, System.Xml.Serialization.XmlAttributeOverrides overrides, System.Type[] extraTypes, System.Xml.Serialization.XmlRootAttribute root, string defaultNamespace, string location) => throw null; - public XmlSerializer(System.Type type, System.Xml.Serialization.XmlRootAttribute root) => throw null; - public XmlSerializer(System.Type type, string defaultNamespace) => throw null; - public XmlSerializer(System.Xml.Serialization.XmlTypeMapping xmlTypeMapping) => throw null; + public event System.Xml.Serialization.XmlAttributeEventHandler UnknownAttribute { add { } remove { } } + public event System.Xml.Serialization.XmlElementEventHandler UnknownElement { add { } remove { } } + public event System.Xml.Serialization.XmlNodeEventHandler UnknownNode { add { } remove { } } + public event System.Xml.Serialization.UnreferencedObjectEventHandler UnreferencedObject { add { } remove { } } } - - public class XmlSerializerAssemblyAttribute : System.Attribute + public sealed class XmlSerializerAssemblyAttribute : System.Attribute { - public string AssemblyName { get => throw null; set => throw null; } - public string CodeBase { get => throw null; set => throw null; } + public string AssemblyName { get => throw null; set { } } + public string CodeBase { get => throw null; set { } } public XmlSerializerAssemblyAttribute() => throw null; public XmlSerializerAssemblyAttribute(string assemblyName) => throw null; public XmlSerializerAssemblyAttribute(string assemblyName, string codeBase) => throw null; } - public class XmlSerializerFactory { public System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type) => throw null; + public System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type, string defaultNamespace) => throw null; public System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type, System.Type[] extraTypes) => throw null; public System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type, System.Xml.Serialization.XmlAttributeOverrides overrides) => throw null; public System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type, System.Xml.Serialization.XmlAttributeOverrides overrides, System.Type[] extraTypes, System.Xml.Serialization.XmlRootAttribute root, string defaultNamespace) => throw null; public System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type, System.Xml.Serialization.XmlAttributeOverrides overrides, System.Type[] extraTypes, System.Xml.Serialization.XmlRootAttribute root, string defaultNamespace, string location) => throw null; public System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type, System.Xml.Serialization.XmlRootAttribute root) => throw null; - public System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type, string defaultNamespace) => throw null; public System.Xml.Serialization.XmlSerializer CreateSerializer(System.Xml.Serialization.XmlTypeMapping xmlTypeMapping) => throw null; public XmlSerializerFactory() => throw null; } - public abstract class XmlSerializerImplementation { public virtual bool CanSerialize(System.Type type) => throw null; + protected XmlSerializerImplementation() => throw null; public virtual System.Xml.Serialization.XmlSerializer GetSerializer(System.Type type) => throw null; - public virtual System.Collections.Hashtable ReadMethods { get => throw null; } public virtual System.Xml.Serialization.XmlSerializationReader Reader { get => throw null; } + public virtual System.Collections.Hashtable ReadMethods { get => throw null; } public virtual System.Collections.Hashtable TypedSerializers { get => throw null; } public virtual System.Collections.Hashtable WriteMethods { get => throw null; } public virtual System.Xml.Serialization.XmlSerializationWriter Writer { get => throw null; } - protected XmlSerializerImplementation() => throw null; } - - public class XmlSerializerVersionAttribute : System.Attribute + public sealed class XmlSerializerVersionAttribute : System.Attribute { - public string Namespace { get => throw null; set => throw null; } - public string ParentAssemblyId { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } - public string Version { get => throw null; set => throw null; } public XmlSerializerVersionAttribute() => throw null; public XmlSerializerVersionAttribute(System.Type type) => throw null; + public string Namespace { get => throw null; set { } } + public string ParentAssemblyId { get => throw null; set { } } + public System.Type Type { get => throw null; set { } } + public string Version { get => throw null; set { } } } - public class XmlTypeAttribute : System.Attribute { - public bool AnonymousType { get => throw null; set => throw null; } - public bool IncludeInSchema { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public string TypeName { get => throw null; set => throw null; } + public bool AnonymousType { get => throw null; set { } } public XmlTypeAttribute() => throw null; public XmlTypeAttribute(string typeName) => throw null; + public bool IncludeInSchema { get => throw null; set { } } + public string Namespace { get => throw null; set { } } + public string TypeName { get => throw null; set { } } } - public class XmlTypeMapping : System.Xml.Serialization.XmlMapping { public string TypeFullName { get => throw null; } @@ -756,7 +691,6 @@ namespace System public string XsdTypeName { get => throw null; } public string XsdTypeNamespace { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs new file mode 100644 index 00000000000..aa4376c9e5f --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs new file mode 100644 index 00000000000..7419fd9e6e3 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs new file mode 100644 index 00000000000..dc2dda85c85 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs new file mode 100644 index 00000000000..f1c1603ef01 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs new file mode 100644 index 00000000000..32c04c7d98e --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. From e944b90eef8b74bc12e4a2a51b90ce26f18b40c1 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 5 Sep 2023 13:07:01 +0200 Subject: [PATCH 578/788] C#: Regenerate `Microsoft.AspNetCore.App` stubs --- .../Microsoft.AspNetCore.Antiforgery.cs | 19 +- ....AspNetCore.Authentication.Abstractions.cs | 87 +- ...osoft.AspNetCore.Authentication.Cookies.cs | 99 +- ...icrosoft.AspNetCore.Authentication.Core.cs | 15 +- ...crosoft.AspNetCore.Authentication.OAuth.cs | 166 +- .../Microsoft.AspNetCore.Authentication.cs | 186 +- ...crosoft.AspNetCore.Authorization.Policy.cs | 22 +- .../Microsoft.AspNetCore.Authorization.cs | 108 +- ...oft.AspNetCore.Components.Authorization.cs | 37 +- .../Microsoft.AspNetCore.Components.Forms.cs | 65 +- .../Microsoft.AspNetCore.Components.Server.cs | 80 +- .../Microsoft.AspNetCore.Components.Web.cs | 598 ++- .../Microsoft.AspNetCore.Components.cs | 921 ++-- ...oft.AspNetCore.Connections.Abstractions.cs | 285 +- .../Microsoft.AspNetCore.CookiePolicy.cs | 48 +- .../Microsoft.AspNetCore.Cors.cs | 68 +- ...rosoft.AspNetCore.Cryptography.Internal.cs | 2 + ...t.AspNetCore.Cryptography.KeyDerivation.cs | 7 +- ....AspNetCore.DataProtection.Abstractions.cs | 11 +- ...ft.AspNetCore.DataProtection.Extensions.cs | 20 +- .../Microsoft.AspNetCore.DataProtection.cs | 514 +-- ...oft.AspNetCore.Diagnostics.Abstractions.cs | 24 +- ...oft.AspNetCore.Diagnostics.HealthChecks.cs | 19 +- .../Microsoft.AspNetCore.Diagnostics.cs | 84 +- .../Microsoft.AspNetCore.HostFiltering.cs | 15 +- ...crosoft.AspNetCore.Hosting.Abstractions.cs | 25 +- ....AspNetCore.Hosting.Server.Abstractions.cs | 53 +- .../Microsoft.AspNetCore.Hosting.cs | 130 +- .../Microsoft.AspNetCore.Html.Abstractions.cs | 24 +- .../Microsoft.AspNetCore.Http.Abstractions.cs | 660 ++- ...soft.AspNetCore.Http.Connections.Common.cs | 44 +- .../Microsoft.AspNetCore.Http.Connections.cs | 85 +- .../Microsoft.AspNetCore.Http.Extensions.cs | 280 +- .../Microsoft.AspNetCore.Http.Features.cs | 445 +- .../Microsoft.AspNetCore.Http.Results.cs | 837 ++-- .../Microsoft.AspNetCore.Http.cs | 458 +- .../Microsoft.AspNetCore.HttpLogging.cs | 102 +- .../Microsoft.AspNetCore.HttpOverrides.cs | 50 +- .../Microsoft.AspNetCore.HttpsPolicy.cs | 31 +- .../Microsoft.AspNetCore.Identity.cs | 107 +- ...crosoft.AspNetCore.Localization.Routing.cs | 8 +- .../Microsoft.AspNetCore.Localization.cs | 66 +- .../Microsoft.AspNetCore.Metadata.cs | 3 - .../Microsoft.AspNetCore.Mvc.Abstractions.cs | 796 ++-- .../Microsoft.AspNetCore.Mvc.ApiExplorer.cs | 17 +- .../Microsoft.AspNetCore.Mvc.Core.cs | 3816 ++++++++--------- .../Microsoft.AspNetCore.Mvc.Cors.cs | 11 +- ...icrosoft.AspNetCore.Mvc.DataAnnotations.cs | 38 +- ...icrosoft.AspNetCore.Mvc.Formatters.Json.cs | 2 + ...Microsoft.AspNetCore.Mvc.Formatters.Xml.cs | 181 +- .../Microsoft.AspNetCore.Mvc.Localization.cs | 59 +- .../Microsoft.AspNetCore.Mvc.Razor.cs | 253 +- .../Microsoft.AspNetCore.Mvc.RazorPages.cs | 593 ++- .../Microsoft.AspNetCore.Mvc.TagHelpers.cs | 399 +- .../Microsoft.AspNetCore.Mvc.ViewFeatures.cs | 980 ++--- .../Microsoft.AspNetCore.Mvc.cs | 4 +- .../Microsoft.AspNetCore.OutputCaching.cs | 96 +- .../Microsoft.AspNetCore.RateLimiting.cs | 40 +- .../Microsoft.AspNetCore.Razor.Runtime.cs | 54 +- .../Microsoft.AspNetCore.Razor.cs | 135 +- ...crosoft.AspNetCore.RequestDecompression.cs | 14 +- ...AspNetCore.ResponseCaching.Abstractions.cs | 2 - .../Microsoft.AspNetCore.ResponseCaching.cs | 20 +- ...icrosoft.AspNetCore.ResponseCompression.cs | 42 +- .../Microsoft.AspNetCore.Rewrite.cs | 38 +- ...crosoft.AspNetCore.Routing.Abstractions.cs | 62 +- .../Microsoft.AspNetCore.Routing.cs | 1152 +++-- .../Microsoft.AspNetCore.Server.HttpSys.cs | 97 +- .../Microsoft.AspNetCore.Server.IIS.cs | 73 +- ...rosoft.AspNetCore.Server.IISIntegration.cs | 18 +- ...icrosoft.AspNetCore.Server.Kestrel.Core.cs | 426 +- ...spNetCore.Server.Kestrel.Transport.Quic.cs | 21 +- ...etCore.Server.Kestrel.Transport.Sockets.cs | 40 +- .../Microsoft.AspNetCore.Server.Kestrel.cs | 4 +- .../Microsoft.AspNetCore.Session.cs | 28 +- .../Microsoft.AspNetCore.SignalR.Common.cs | 77 +- .../Microsoft.AspNetCore.SignalR.Core.cs | 165 +- ...osoft.AspNetCore.SignalR.Protocols.Json.cs | 18 +- .../Microsoft.AspNetCore.SignalR.cs | 12 +- .../Microsoft.AspNetCore.StaticFiles.cs | 101 +- .../Microsoft.AspNetCore.WebSockets.cs | 22 +- .../Microsoft.AspNetCore.WebUtilities.cs | 235 +- .../Microsoft.AspNetCore.cs | 58 +- ...crosoft.Extensions.Caching.Abstractions.cs | 96 +- .../Microsoft.Extensions.Caching.Memory.cs | 33 +- ...t.Extensions.Configuration.Abstractions.cs | 21 +- ...crosoft.Extensions.Configuration.Binder.cs | 7 +- ...ft.Extensions.Configuration.CommandLine.cs | 20 +- ...ions.Configuration.EnvironmentVariables.cs | 18 +- ...Extensions.Configuration.FileExtensions.cs | 29 +- .../Microsoft.Extensions.Configuration.Ini.cs | 24 +- ...Microsoft.Extensions.Configuration.Json.cs | 24 +- ...oft.Extensions.Configuration.KeyPerFile.cs | 34 +- ...ft.Extensions.Configuration.UserSecrets.cs | 32 +- .../Microsoft.Extensions.Configuration.Xml.cs | 31 +- .../Microsoft.Extensions.Configuration.cs | 76 +- ...nsions.DependencyInjection.Abstractions.cs | 140 +- ...icrosoft.Extensions.DependencyInjection.cs | 13 +- ...s.Diagnostics.HealthChecks.Abstractions.cs | 45 +- ...oft.Extensions.Diagnostics.HealthChecks.cs | 46 +- .../Microsoft.Extensions.Features.cs | 20 +- ...t.Extensions.FileProviders.Abstractions.cs | 18 +- ...soft.Extensions.FileProviders.Composite.cs | 21 +- ...osoft.Extensions.FileProviders.Embedded.cs | 44 +- ...osoft.Extensions.FileProviders.Physical.cs | 63 +- ...Microsoft.Extensions.FileSystemGlobbing.cs | 167 +- ...crosoft.Extensions.Hosting.Abstractions.cs | 58 +- .../Microsoft.Extensions.Hosting.cs | 67 +- .../Microsoft.Extensions.Http.cs | 64 +- .../Microsoft.Extensions.Identity.Core.cs | 613 ++- .../Microsoft.Extensions.Identity.Stores.cs | 123 +- ...ft.Extensions.Localization.Abstractions.cs | 21 +- .../Microsoft.Extensions.Localization.cs | 25 +- ...crosoft.Extensions.Logging.Abstractions.cs | 183 +- ...rosoft.Extensions.Logging.Configuration.cs | 17 +- .../Microsoft.Extensions.Logging.Console.cs | 154 +- .../Microsoft.Extensions.Logging.Debug.cs | 11 +- .../Microsoft.Extensions.Logging.EventLog.cs | 28 +- ...icrosoft.Extensions.Logging.EventSource.cs | 26 +- ...icrosoft.Extensions.Logging.TraceSource.cs | 25 +- .../Microsoft.Extensions.Logging.cs | 37 +- .../Microsoft.Extensions.ObjectPool.cs | 37 +- ...ensions.Options.ConfigurationExtensions.cs | 10 +- ...soft.Extensions.Options.DataAnnotations.cs | 5 +- .../Microsoft.Extensions.Options.cs | 419 +- .../Microsoft.Extensions.Primitives.cs | 145 +- .../Microsoft.Extensions.WebEncoders.cs | 52 +- .../Microsoft.JSInterop.cs | 229 +- .../Microsoft.Net.Http.Headers.cs | 166 +- .../System.Diagnostics.EventLog.cs | 473 +- .../System.IO.Pipelines.cs | 64 +- .../System.Security.Cryptography.Xml.cs | 453 +- .../System.Threading.RateLimiting.cs | 151 +- 133 files changed, 9345 insertions(+), 12440 deletions(-) create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Antiforgery.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Antiforgery.cs index bce42e8da38..3dc5f8e285f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Antiforgery.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Antiforgery.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Antiforgery, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,29 +8,26 @@ namespace Microsoft { public class AntiforgeryOptions { + public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set { } } public AntiforgeryOptions() => throw null; - public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set => throw null; } public static string DefaultCookiePrefix; - public string FormFieldName { get => throw null; set => throw null; } - public string HeaderName { get => throw null; set => throw null; } - public bool SuppressXFrameOptionsHeader { get => throw null; set => throw null; } + public string FormFieldName { get => throw null; set { } } + public string HeaderName { get => throw null; set { } } + public bool SuppressXFrameOptionsHeader { get => throw null; set { } } } - public class AntiforgeryTokenSet { - public AntiforgeryTokenSet(string requestToken, string cookieToken, string formFieldName, string headerName) => throw null; public string CookieToken { get => throw null; } + public AntiforgeryTokenSet(string requestToken, string cookieToken, string formFieldName, string headerName) => throw null; public string FormFieldName { get => throw null; } public string HeaderName { get => throw null; } public string RequestToken { get => throw null; } } - public class AntiforgeryValidationException : System.Exception { public AntiforgeryValidationException(string message) => throw null; public AntiforgeryValidationException(string message, System.Exception innerException) => throw null; } - public interface IAntiforgery { Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet GetAndStoreTokens(Microsoft.AspNetCore.Http.HttpContext httpContext); @@ -40,25 +36,22 @@ namespace Microsoft void SetCookieTokenAndHeader(Microsoft.AspNetCore.Http.HttpContext httpContext); System.Threading.Tasks.Task ValidateRequestAsync(Microsoft.AspNetCore.Http.HttpContext httpContext); } - public interface IAntiforgeryAdditionalDataProvider { string GetAdditionalData(Microsoft.AspNetCore.Http.HttpContext context); bool ValidateAdditionalData(Microsoft.AspNetCore.Http.HttpContext context, string additionalData); } - } } namespace Extensions { namespace DependencyInjection { - public static class AntiforgeryServiceCollectionExtensions + public static partial class AntiforgeryServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAntiforgery(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAntiforgery(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Abstractions.cs index e36260275d5..9a152885767 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Authentication.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,85 +8,81 @@ namespace Microsoft { public class AuthenticateResult { - protected AuthenticateResult() => throw null; public Microsoft.AspNetCore.Authentication.AuthenticateResult Clone() => throw null; + protected AuthenticateResult() => throw null; public static Microsoft.AspNetCore.Authentication.AuthenticateResult Fail(System.Exception failure) => throw null; public static Microsoft.AspNetCore.Authentication.AuthenticateResult Fail(System.Exception failure, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public static Microsoft.AspNetCore.Authentication.AuthenticateResult Fail(string failureMessage) => throw null; public static Microsoft.AspNetCore.Authentication.AuthenticateResult Fail(string failureMessage, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public System.Exception Failure { get => throw null; set => throw null; } + public System.Exception Failure { get => throw null; set { } } + public bool None { get => throw null; set { } } public static Microsoft.AspNetCore.Authentication.AuthenticateResult NoResult() => throw null; - public bool None { get => throw null; set => throw null; } public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; } - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } public bool Succeeded { get => throw null; } public static Microsoft.AspNetCore.Authentication.AuthenticateResult Success(Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket) => throw null; - public Microsoft.AspNetCore.Authentication.AuthenticationTicket Ticket { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Authentication.AuthenticationTicket Ticket { get => throw null; set { } } } - - public static class AuthenticationHttpContextExtensions + public static partial class AuthenticationHttpContextExtensions { public static System.Threading.Tasks.Task AuthenticateAsync(this Microsoft.AspNetCore.Http.HttpContext context) => throw null; public static System.Threading.Tasks.Task AuthenticateAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme) => throw null; + public static System.Threading.Tasks.Task ChallengeAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme) => throw null; public static System.Threading.Tasks.Task ChallengeAsync(this Microsoft.AspNetCore.Http.HttpContext context) => throw null; public static System.Threading.Tasks.Task ChallengeAsync(this Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public static System.Threading.Tasks.Task ChallengeAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme) => throw null; public static System.Threading.Tasks.Task ChallengeAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public static System.Threading.Tasks.Task ForbidAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme) => throw null; public static System.Threading.Tasks.Task ForbidAsync(this Microsoft.AspNetCore.Http.HttpContext context) => throw null; public static System.Threading.Tasks.Task ForbidAsync(this Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public static System.Threading.Tasks.Task ForbidAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme) => throw null; public static System.Threading.Tasks.Task ForbidAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public static System.Threading.Tasks.Task GetTokenAsync(this Microsoft.AspNetCore.Http.HttpContext context, string tokenName) => throw null; public static System.Threading.Tasks.Task GetTokenAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme, string tokenName) => throw null; + public static System.Threading.Tasks.Task GetTokenAsync(this Microsoft.AspNetCore.Http.HttpContext context, string tokenName) => throw null; + public static System.Threading.Tasks.Task SignInAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme, System.Security.Claims.ClaimsPrincipal principal) => throw null; public static System.Threading.Tasks.Task SignInAsync(this Microsoft.AspNetCore.Http.HttpContext context, System.Security.Claims.ClaimsPrincipal principal) => throw null; public static System.Threading.Tasks.Task SignInAsync(this Microsoft.AspNetCore.Http.HttpContext context, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public static System.Threading.Tasks.Task SignInAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme, System.Security.Claims.ClaimsPrincipal principal) => throw null; public static System.Threading.Tasks.Task SignInAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public static System.Threading.Tasks.Task SignOutAsync(this Microsoft.AspNetCore.Http.HttpContext context) => throw null; public static System.Threading.Tasks.Task SignOutAsync(this Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public static System.Threading.Tasks.Task SignOutAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme) => throw null; public static System.Threading.Tasks.Task SignOutAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; } - public class AuthenticationOptions { public void AddScheme(string name, System.Action configureBuilder) => throw null; public void AddScheme(string name, string displayName) where THandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler => throw null; public AuthenticationOptions() => throw null; - public string DefaultAuthenticateScheme { get => throw null; set => throw null; } - public string DefaultChallengeScheme { get => throw null; set => throw null; } - public string DefaultForbidScheme { get => throw null; set => throw null; } - public string DefaultScheme { get => throw null; set => throw null; } - public string DefaultSignInScheme { get => throw null; set => throw null; } - public string DefaultSignOutScheme { get => throw null; set => throw null; } - public bool RequireAuthenticatedSignIn { get => throw null; set => throw null; } + public string DefaultAuthenticateScheme { get => throw null; set { } } + public string DefaultChallengeScheme { get => throw null; set { } } + public string DefaultForbidScheme { get => throw null; set { } } + public string DefaultScheme { get => throw null; set { } } + public string DefaultSignInScheme { get => throw null; set { } } + public string DefaultSignOutScheme { get => throw null; set { } } + public bool RequireAuthenticatedSignIn { get => throw null; set { } } public System.Collections.Generic.IDictionary SchemeMap { get => throw null; } public System.Collections.Generic.IEnumerable Schemes { get => throw null; } } - public class AuthenticationProperties { - public bool? AllowRefresh { get => throw null; set => throw null; } + public bool? AllowRefresh { get => throw null; set { } } + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Clone() => throw null; public AuthenticationProperties() => throw null; public AuthenticationProperties(System.Collections.Generic.IDictionary items) => throw null; public AuthenticationProperties(System.Collections.Generic.IDictionary items, System.Collections.Generic.IDictionary parameters) => throw null; - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Clone() => throw null; - public System.DateTimeOffset? ExpiresUtc { get => throw null; set => throw null; } + public System.DateTimeOffset? ExpiresUtc { get => throw null; set { } } protected bool? GetBool(string key) => throw null; protected System.DateTimeOffset? GetDateTimeOffset(string key) => throw null; public T GetParameter(string key) => throw null; public string GetString(string key) => throw null; - public bool IsPersistent { get => throw null; set => throw null; } - public System.DateTimeOffset? IssuedUtc { get => throw null; set => throw null; } + public bool IsPersistent { get => throw null; set { } } + public System.DateTimeOffset? IssuedUtc { get => throw null; set { } } public System.Collections.Generic.IDictionary Items { get => throw null; } public System.Collections.Generic.IDictionary Parameters { get => throw null; } - public string RedirectUri { get => throw null; set => throw null; } + public string RedirectUri { get => throw null; set { } } protected void SetBool(string key, bool? value) => throw null; protected void SetDateTimeOffset(string key, System.DateTimeOffset? value) => throw null; public void SetParameter(string key, T value) => throw null; public void SetString(string key, string value) => throw null; } - public class AuthenticationScheme { public AuthenticationScheme(string name, string displayName, System.Type handlerType) => throw null; @@ -95,59 +90,51 @@ namespace Microsoft public System.Type HandlerType { get => throw null; } public string Name { get => throw null; } } - public class AuthenticationSchemeBuilder { - public AuthenticationSchemeBuilder(string name) => throw null; public Microsoft.AspNetCore.Authentication.AuthenticationScheme Build() => throw null; - public string DisplayName { get => throw null; set => throw null; } - public System.Type HandlerType { get => throw null; set => throw null; } + public AuthenticationSchemeBuilder(string name) => throw null; + public string DisplayName { get => throw null; set { } } + public System.Type HandlerType { get => throw null; set { } } public string Name { get => throw null; } } - public class AuthenticationTicket { public string AuthenticationScheme { get => throw null; } + public Microsoft.AspNetCore.Authentication.AuthenticationTicket Clone() => throw null; public AuthenticationTicket(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string authenticationScheme) => throw null; public AuthenticationTicket(System.Security.Claims.ClaimsPrincipal principal, string authenticationScheme) => throw null; - public Microsoft.AspNetCore.Authentication.AuthenticationTicket Clone() => throw null; public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; } public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; } } - public class AuthenticationToken { public AuthenticationToken() => throw null; - public string Name { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } + public string Value { get => throw null; set { } } } - - public static class AuthenticationTokenExtensions + public static partial class AuthenticationTokenExtensions { public static System.Threading.Tasks.Task GetTokenAsync(this Microsoft.AspNetCore.Authentication.IAuthenticationService auth, Microsoft.AspNetCore.Http.HttpContext context, string tokenName) => throw null; public static System.Threading.Tasks.Task GetTokenAsync(this Microsoft.AspNetCore.Authentication.IAuthenticationService auth, Microsoft.AspNetCore.Http.HttpContext context, string scheme, string tokenName) => throw null; - public static string GetTokenValue(this Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string tokenName) => throw null; public static System.Collections.Generic.IEnumerable GetTokens(this Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public static string GetTokenValue(this Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string tokenName) => throw null; public static void StoreTokens(this Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, System.Collections.Generic.IEnumerable tokens) => throw null; public static bool UpdateTokenValue(this Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string tokenName, string tokenValue) => throw null; } - public interface IAuthenticateResultFeature { Microsoft.AspNetCore.Authentication.AuthenticateResult AuthenticateResult { get; set; } } - public interface IAuthenticationConfigurationProvider { Microsoft.Extensions.Configuration.IConfiguration AuthenticationConfiguration { get; } } - public interface IAuthenticationFeature { Microsoft.AspNetCore.Http.PathString OriginalPath { get; set; } Microsoft.AspNetCore.Http.PathString OriginalPathBase { get; set; } } - public interface IAuthenticationHandler { System.Threading.Tasks.Task AuthenticateAsync(); @@ -155,17 +142,14 @@ namespace Microsoft System.Threading.Tasks.Task ForbidAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); System.Threading.Tasks.Task InitializeAsync(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Http.HttpContext context); } - public interface IAuthenticationHandlerProvider { System.Threading.Tasks.Task GetHandlerAsync(Microsoft.AspNetCore.Http.HttpContext context, string authenticationScheme); } - public interface IAuthenticationRequestHandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler { System.Threading.Tasks.Task HandleRequestAsync(); } - public interface IAuthenticationSchemeProvider { void AddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme); @@ -178,9 +162,8 @@ namespace Microsoft System.Threading.Tasks.Task> GetRequestHandlerSchemesAsync(); System.Threading.Tasks.Task GetSchemeAsync(string name); void RemoveScheme(string name); - bool TryAddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme) => throw null; + virtual bool TryAddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme) => throw null; } - public interface IAuthenticationService { System.Threading.Tasks.Task AuthenticateAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme); @@ -189,22 +172,18 @@ namespace Microsoft System.Threading.Tasks.Task SignInAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); System.Threading.Tasks.Task SignOutAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); } - - public interface IAuthenticationSignInHandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler + public interface IAuthenticationSignInHandler : Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler { System.Threading.Tasks.Task SignInAsync(System.Security.Claims.ClaimsPrincipal user, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); } - public interface IAuthenticationSignOutHandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler { System.Threading.Tasks.Task SignOutAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); } - public interface IClaimsTransformation { System.Threading.Tasks.Task TransformAsync(System.Security.Claims.ClaimsPrincipal principal); } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs index d2df2b11c4f..22de63d9f75 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Authentication.Cookies, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -12,37 +11,35 @@ namespace Microsoft public class ChunkingCookieManager : Microsoft.AspNetCore.Authentication.Cookies.ICookieManager { public void AppendResponseCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, string value, Microsoft.AspNetCore.Http.CookieOptions options) => throw null; - public int? ChunkSize { get => throw null; set => throw null; } + public int? ChunkSize { get => throw null; set { } } public ChunkingCookieManager() => throw null; - public const int DefaultChunkSize = default; + public static int DefaultChunkSize; public void DeleteCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, Microsoft.AspNetCore.Http.CookieOptions options) => throw null; public string GetRequestCookie(Microsoft.AspNetCore.Http.HttpContext context, string key) => throw null; - public bool ThrowForPartialCookies { get => throw null; set => throw null; } + public bool ThrowForPartialCookies { get => throw null; set { } } } - public static class CookieAuthenticationDefaults { public static Microsoft.AspNetCore.Http.PathString AccessDeniedPath; - public const string AuthenticationScheme = default; + public static string AuthenticationScheme; public static string CookiePrefix; public static Microsoft.AspNetCore.Http.PathString LoginPath; public static Microsoft.AspNetCore.Http.PathString LogoutPath; public static string ReturnUrlParameter; } - public class CookieAuthenticationEvents { public virtual System.Threading.Tasks.Task CheckSlidingExpiration(Microsoft.AspNetCore.Authentication.Cookies.CookieSlidingExpirationContext context) => throw null; public CookieAuthenticationEvents() => throw null; - public System.Func OnCheckSlidingExpiration { get => throw null; set => throw null; } - public System.Func, System.Threading.Tasks.Task> OnRedirectToAccessDenied { get => throw null; set => throw null; } - public System.Func, System.Threading.Tasks.Task> OnRedirectToLogin { get => throw null; set => throw null; } - public System.Func, System.Threading.Tasks.Task> OnRedirectToLogout { get => throw null; set => throw null; } - public System.Func, System.Threading.Tasks.Task> OnRedirectToReturnUrl { get => throw null; set => throw null; } - public System.Func OnSignedIn { get => throw null; set => throw null; } - public System.Func OnSigningIn { get => throw null; set => throw null; } - public System.Func OnSigningOut { get => throw null; set => throw null; } - public System.Func OnValidatePrincipal { get => throw null; set => throw null; } + public System.Func OnCheckSlidingExpiration { get => throw null; set { } } + public System.Func, System.Threading.Tasks.Task> OnRedirectToAccessDenied { get => throw null; set { } } + public System.Func, System.Threading.Tasks.Task> OnRedirectToLogin { get => throw null; set { } } + public System.Func, System.Threading.Tasks.Task> OnRedirectToLogout { get => throw null; set { } } + public System.Func, System.Threading.Tasks.Task> OnRedirectToReturnUrl { get => throw null; set { } } + public System.Func OnSignedIn { get => throw null; set { } } + public System.Func OnSigningIn { get => throw null; set { } } + public System.Func OnSigningOut { get => throw null; set { } } + public System.Func OnValidatePrincipal { get => throw null; set { } } public virtual System.Threading.Tasks.Task RedirectToAccessDenied(Microsoft.AspNetCore.Authentication.RedirectContext context) => throw null; public virtual System.Threading.Tasks.Task RedirectToLogin(Microsoft.AspNetCore.Authentication.RedirectContext context) => throw null; public virtual System.Threading.Tasks.Task RedirectToLogout(Microsoft.AspNetCore.Authentication.RedirectContext context) => throw null; @@ -52,12 +49,11 @@ namespace Microsoft public virtual System.Threading.Tasks.Task SigningOut(Microsoft.AspNetCore.Authentication.Cookies.CookieSigningOutContext context) => throw null; public virtual System.Threading.Tasks.Task ValidatePrincipal(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) => throw null; } - public class CookieAuthenticationHandler : Microsoft.AspNetCore.Authentication.SignInAuthenticationHandler { - public CookieAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; protected override System.Threading.Tasks.Task CreateEventsAsync() => throw null; - protected Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationEvents Events { get => throw null; set => throw null; } + public CookieAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; + protected Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationEvents Events { get => throw null; set { } } protected virtual System.Threading.Tasks.Task FinishResponseAsync() => throw null; protected override System.Threading.Tasks.Task HandleAuthenticateAsync() => throw null; protected override System.Threading.Tasks.Task HandleChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; @@ -66,86 +62,76 @@ namespace Microsoft protected override System.Threading.Tasks.Task HandleSignOutAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; protected override System.Threading.Tasks.Task InitializeHandlerAsync() => throw null; } - public class CookieAuthenticationOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { - public Microsoft.AspNetCore.Http.PathString AccessDeniedPath { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.PathString AccessDeniedPath { get => throw null; set { } } + public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set { } } + public Microsoft.AspNetCore.Authentication.Cookies.ICookieManager CookieManager { get => throw null; set { } } public CookieAuthenticationOptions() => throw null; - public Microsoft.AspNetCore.Authentication.Cookies.ICookieManager CookieManager { get => throw null; set => throw null; } - public Microsoft.AspNetCore.DataProtection.IDataProtectionProvider DataProtectionProvider { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationEvents Events { get => throw null; set => throw null; } - public System.TimeSpan ExpireTimeSpan { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.PathString LoginPath { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.PathString LogoutPath { get => throw null; set => throw null; } - public string ReturnUrlParameter { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authentication.Cookies.ITicketStore SessionStore { get => throw null; set => throw null; } - public bool SlidingExpiration { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authentication.ISecureDataFormat TicketDataFormat { get => throw null; set => throw null; } + public Microsoft.AspNetCore.DataProtection.IDataProtectionProvider DataProtectionProvider { get => throw null; set { } } + public Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationEvents Events { get => throw null; set { } } + public System.TimeSpan ExpireTimeSpan { get => throw null; set { } } + public Microsoft.AspNetCore.Http.PathString LoginPath { get => throw null; set { } } + public Microsoft.AspNetCore.Http.PathString LogoutPath { get => throw null; set { } } + public string ReturnUrlParameter { get => throw null; set { } } + public Microsoft.AspNetCore.Authentication.Cookies.ITicketStore SessionStore { get => throw null; set { } } + public bool SlidingExpiration { get => throw null; set { } } + public Microsoft.AspNetCore.Authentication.ISecureDataFormat TicketDataFormat { get => throw null; set { } } } - public class CookieSignedInContext : Microsoft.AspNetCore.Authentication.PrincipalContext { public CookieSignedInContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions options) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) => throw null; } - public class CookieSigningInContext : Microsoft.AspNetCore.Authentication.PrincipalContext { - public Microsoft.AspNetCore.Http.CookieOptions CookieOptions { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.CookieOptions CookieOptions { get => throw null; set { } } public CookieSigningInContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions options, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, Microsoft.AspNetCore.Http.CookieOptions cookieOptions) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) => throw null; } - public class CookieSigningOutContext : Microsoft.AspNetCore.Authentication.PropertiesContext { - public Microsoft.AspNetCore.Http.CookieOptions CookieOptions { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.CookieOptions CookieOptions { get => throw null; set { } } public CookieSigningOutContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, Microsoft.AspNetCore.Http.CookieOptions cookieOptions) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) => throw null; } - public class CookieSlidingExpirationContext : Microsoft.AspNetCore.Authentication.PrincipalContext { public CookieSlidingExpirationContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions options, Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket, System.TimeSpan elapsedTime, System.TimeSpan remainingTime) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) => throw null; public System.TimeSpan ElapsedTime { get => throw null; } public System.TimeSpan RemainingTime { get => throw null; } - public bool ShouldRenew { get => throw null; set => throw null; } + public bool ShouldRenew { get => throw null; set { } } } - public class CookieValidatePrincipalContext : Microsoft.AspNetCore.Authentication.PrincipalContext { public CookieValidatePrincipalContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions options, Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) => throw null; public void RejectPrincipal() => throw null; public void ReplacePrincipal(System.Security.Claims.ClaimsPrincipal principal) => throw null; - public bool ShouldRenew { get => throw null; set => throw null; } + public bool ShouldRenew { get => throw null; set { } } } - public interface ICookieManager { void AppendResponseCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, string value, Microsoft.AspNetCore.Http.CookieOptions options); void DeleteCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, Microsoft.AspNetCore.Http.CookieOptions options); string GetRequestCookie(Microsoft.AspNetCore.Http.HttpContext context, string key); } - public interface ITicketStore { System.Threading.Tasks.Task RemoveAsync(string key); - System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken cancellationToken) => throw null; - System.Threading.Tasks.Task RemoveAsync(string key, Microsoft.AspNetCore.Http.HttpContext httpContext, System.Threading.CancellationToken cancellationToken) => throw null; + virtual System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken cancellationToken) => throw null; + virtual System.Threading.Tasks.Task RemoveAsync(string key, Microsoft.AspNetCore.Http.HttpContext httpContext, System.Threading.CancellationToken cancellationToken) => throw null; System.Threading.Tasks.Task RenewAsync(string key, Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket); - System.Threading.Tasks.Task RenewAsync(string key, Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket, System.Threading.CancellationToken cancellationToken) => throw null; - System.Threading.Tasks.Task RenewAsync(string key, Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket, Microsoft.AspNetCore.Http.HttpContext httpContext, System.Threading.CancellationToken cancellationToken) => throw null; + virtual System.Threading.Tasks.Task RenewAsync(string key, Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket, System.Threading.CancellationToken cancellationToken) => throw null; + virtual System.Threading.Tasks.Task RenewAsync(string key, Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket, Microsoft.AspNetCore.Http.HttpContext httpContext, System.Threading.CancellationToken cancellationToken) => throw null; System.Threading.Tasks.Task RetrieveAsync(string key); - System.Threading.Tasks.Task RetrieveAsync(string key, System.Threading.CancellationToken cancellationToken) => throw null; - System.Threading.Tasks.Task RetrieveAsync(string key, Microsoft.AspNetCore.Http.HttpContext httpContext, System.Threading.CancellationToken cancellationToken) => throw null; + virtual System.Threading.Tasks.Task RetrieveAsync(string key, System.Threading.CancellationToken cancellationToken) => throw null; + virtual System.Threading.Tasks.Task RetrieveAsync(string key, Microsoft.AspNetCore.Http.HttpContext httpContext, System.Threading.CancellationToken cancellationToken) => throw null; System.Threading.Tasks.Task StoreAsync(Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket); - System.Threading.Tasks.Task StoreAsync(Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket, System.Threading.CancellationToken cancellationToken) => throw null; - System.Threading.Tasks.Task StoreAsync(Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket, Microsoft.AspNetCore.Http.HttpContext httpContext, System.Threading.CancellationToken cancellationToken) => throw null; + virtual System.Threading.Tasks.Task StoreAsync(Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket, System.Threading.CancellationToken cancellationToken) => throw null; + virtual System.Threading.Tasks.Task StoreAsync(Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket, Microsoft.AspNetCore.Http.HttpContext httpContext, System.Threading.CancellationToken cancellationToken) => throw null; } - public class PostConfigureCookieAuthenticationOptions : Microsoft.Extensions.Options.IPostConfigureOptions { - public void PostConfigure(string name, Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions options) => throw null; public PostConfigureCookieAuthenticationOptions(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtection) => throw null; + public void PostConfigure(string name, Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions options) => throw null; } - } } } @@ -153,15 +139,14 @@ namespace Microsoft { namespace DependencyInjection { - public static class CookieExtensions + public static partial class CookieExtensions { public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) => throw null; - public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme) => throw null; + public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Core.cs index 23ddbd0373c..e9b5b57f320 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Core.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Authentication.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -10,17 +9,15 @@ namespace Microsoft public class AuthenticationFeature : Microsoft.AspNetCore.Authentication.IAuthenticationFeature { public AuthenticationFeature() => throw null; - public Microsoft.AspNetCore.Http.PathString OriginalPath { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.PathString OriginalPathBase { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.PathString OriginalPath { get => throw null; set { } } + public Microsoft.AspNetCore.Http.PathString OriginalPathBase { get => throw null; set { } } } - public class AuthenticationHandlerProvider : Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider { public AuthenticationHandlerProvider(Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider schemes) => throw null; public System.Threading.Tasks.Task GetHandlerAsync(Microsoft.AspNetCore.Http.HttpContext context, string authenticationScheme) => throw null; public Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider Schemes { get => throw null; } } - public class AuthenticationSchemeProvider : Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider { public virtual void AddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme) => throw null; @@ -37,12 +34,11 @@ namespace Microsoft public virtual void RemoveScheme(string name) => throw null; public virtual bool TryAddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme) => throw null; } - public class AuthenticationService : Microsoft.AspNetCore.Authentication.IAuthenticationService { public virtual System.Threading.Tasks.Task AuthenticateAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme) => throw null; - public AuthenticationService(Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider schemes, Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider handlers, Microsoft.AspNetCore.Authentication.IClaimsTransformation transform, Microsoft.Extensions.Options.IOptions options) => throw null; public virtual System.Threading.Tasks.Task ChallengeAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public AuthenticationService(Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider schemes, Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider handlers, Microsoft.AspNetCore.Authentication.IClaimsTransformation transform, Microsoft.Extensions.Options.IOptions options) => throw null; public virtual System.Threading.Tasks.Task ForbidAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider Handlers { get => throw null; } public Microsoft.AspNetCore.Authentication.AuthenticationOptions Options { get => throw null; } @@ -51,25 +47,22 @@ namespace Microsoft public virtual System.Threading.Tasks.Task SignOutAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public Microsoft.AspNetCore.Authentication.IClaimsTransformation Transform { get => throw null; } } - public class NoopClaimsTransformation : Microsoft.AspNetCore.Authentication.IClaimsTransformation { public NoopClaimsTransformation() => throw null; public virtual System.Threading.Tasks.Task TransformAsync(System.Security.Claims.ClaimsPrincipal principal) => throw null; } - } } namespace Extensions { namespace DependencyInjection { - public static class AuthenticationCoreServiceCollectionExtensions + public static partial class AuthenticationCoreServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthenticationCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthenticationCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.OAuth.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.OAuth.cs index 27bcca97c24..550dc9339f3 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.OAuth.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.OAuth.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Authentication.OAuth, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Authentication { - public static class ClaimActionCollectionMapExtensions + public static partial class ClaimActionCollectionMapExtensions { public static void DeleteClaim(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType) => throw null; public static void DeleteClaims(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, params string[] claimTypes) => throw null; @@ -20,19 +19,64 @@ namespace Microsoft public static void MapJsonSubKey(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, string jsonKey, string subKey) => throw null; public static void MapJsonSubKey(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, string jsonKey, string subKey, string valueType) => throw null; } - namespace OAuth { + namespace Claims + { + public abstract class ClaimAction + { + public string ClaimType { get => throw null; } + public ClaimAction(string claimType, string valueType) => throw null; + public abstract void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer); + public string ValueType { get => throw null; } + } + public class ClaimActionCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public void Add(Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction action) => throw null; + public void Clear() => throw null; + public ClaimActionCollection() => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public void Remove(string claimType) => throw null; + } + public class CustomJsonClaimAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction + { + public CustomJsonClaimAction(string claimType, string valueType, System.Func resolver) : base(default(string), default(string)) => throw null; + public System.Func Resolver { get => throw null; } + public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; + } + public class DeleteClaimAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction + { + public DeleteClaimAction(string claimType) : base(default(string), default(string)) => throw null; + public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; + } + public class JsonKeyClaimAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction + { + public JsonKeyClaimAction(string claimType, string valueType, string jsonKey) : base(default(string), default(string)) => throw null; + public string JsonKey { get => throw null; } + public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; + } + public class JsonSubKeyClaimAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.JsonKeyClaimAction + { + public JsonSubKeyClaimAction(string claimType, string valueType, string jsonKey, string subKey) : base(default(string), default(string), default(string)) => throw null; + public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; + public string SubKey { get => throw null; } + } + public class MapAllClaimsAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction + { + public MapAllClaimsAction() : base(default(string), default(string)) => throw null; + public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; + } + } public class OAuthChallengeProperties : Microsoft.AspNetCore.Authentication.AuthenticationProperties { public OAuthChallengeProperties() => throw null; public OAuthChallengeProperties(System.Collections.Generic.IDictionary items) => throw null; public OAuthChallengeProperties(System.Collections.Generic.IDictionary items, System.Collections.Generic.IDictionary parameters) => throw null; - public System.Collections.Generic.ICollection Scope { get => throw null; set => throw null; } + public System.Collections.Generic.ICollection Scope { get => throw null; set { } } public static string ScopeKey; public virtual void SetScope(params string[] scopes) => throw null; } - public class OAuthCodeExchangeContext { public string Code { get => throw null; } @@ -40,7 +84,6 @@ namespace Microsoft public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; } public string RedirectUri { get => throw null; } } - public static class OAuthConstants { public static string CodeChallengeKey; @@ -48,14 +91,13 @@ namespace Microsoft public static string CodeChallengeMethodS256; public static string CodeVerifierKey; } - public class OAuthCreatingTicketContext : Microsoft.AspNetCore.Authentication.ResultContext { public string AccessToken { get => throw null; } public System.Net.Http.HttpClient Backchannel { get => throw null; } + public OAuthCreatingTicketContext(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions options, System.Net.Http.HttpClient backchannel, Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse tokens, System.Text.Json.JsonElement user) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions)) => throw null; public System.TimeSpan? ExpiresIn { get => throw null; } public System.Security.Claims.ClaimsIdentity Identity { get => throw null; } - public OAuthCreatingTicketContext(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions options, System.Net.Http.HttpClient backchannel, Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse tokens, System.Text.Json.JsonElement user) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions)) => throw null; public string RefreshToken { get => throw null; } public void RunClaimActions() => throw null; public void RunClaimActions(System.Text.Json.JsonElement userData) => throw null; @@ -63,118 +105,58 @@ namespace Microsoft public string TokenType { get => throw null; } public System.Text.Json.JsonElement User { get => throw null; } } - public static class OAuthDefaults { public static string DisplayName; } - public class OAuthEvents : Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents { public virtual System.Threading.Tasks.Task CreatingTicket(Microsoft.AspNetCore.Authentication.OAuth.OAuthCreatingTicketContext context) => throw null; public OAuthEvents() => throw null; - public System.Func OnCreatingTicket { get => throw null; set => throw null; } - public System.Func, System.Threading.Tasks.Task> OnRedirectToAuthorizationEndpoint { get => throw null; set => throw null; } + public System.Func OnCreatingTicket { get => throw null; set { } } + public System.Func, System.Threading.Tasks.Task> OnRedirectToAuthorizationEndpoint { get => throw null; set { } } public virtual System.Threading.Tasks.Task RedirectToAuthorizationEndpoint(Microsoft.AspNetCore.Authentication.RedirectContext context) => throw null; } - public class OAuthHandler : Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions, new() { protected System.Net.Http.HttpClient Backchannel { get => throw null; } protected virtual string BuildChallengeUrl(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string redirectUri) => throw null; protected override System.Threading.Tasks.Task CreateEventsAsync() => throw null; protected virtual System.Threading.Tasks.Task CreateTicketAsync(System.Security.Claims.ClaimsIdentity identity, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse tokens) => throw null; - protected Microsoft.AspNetCore.Authentication.OAuth.OAuthEvents Events { get => throw null; set => throw null; } + public OAuthHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; + protected Microsoft.AspNetCore.Authentication.OAuth.OAuthEvents Events { get => throw null; set { } } protected virtual System.Threading.Tasks.Task ExchangeCodeAsync(Microsoft.AspNetCore.Authentication.OAuth.OAuthCodeExchangeContext context) => throw null; - protected virtual string FormatScope() => throw null; protected virtual string FormatScope(System.Collections.Generic.IEnumerable scopes) => throw null; + protected virtual string FormatScope() => throw null; protected override System.Threading.Tasks.Task HandleChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; protected override System.Threading.Tasks.Task HandleRemoteAuthenticateAsync() => throw null; - public OAuthHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; } - public class OAuthOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions { - public string AuthorizationEndpoint { get => throw null; set => throw null; } + public string AuthorizationEndpoint { get => throw null; set { } } public Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection ClaimActions { get => throw null; } - public string ClientId { get => throw null; set => throw null; } - public string ClientSecret { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authentication.OAuth.OAuthEvents Events { get => throw null; set => throw null; } + public string ClientId { get => throw null; set { } } + public string ClientSecret { get => throw null; set { } } public OAuthOptions() => throw null; + public Microsoft.AspNetCore.Authentication.OAuth.OAuthEvents Events { get => throw null; set { } } public System.Collections.Generic.ICollection Scope { get => throw null; } - public Microsoft.AspNetCore.Authentication.ISecureDataFormat StateDataFormat { get => throw null; set => throw null; } - public string TokenEndpoint { get => throw null; set => throw null; } - public bool UsePkce { get => throw null; set => throw null; } - public string UserInformationEndpoint { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Authentication.ISecureDataFormat StateDataFormat { get => throw null; set { } } + public string TokenEndpoint { get => throw null; set { } } + public bool UsePkce { get => throw null; set { } } + public string UserInformationEndpoint { get => throw null; set { } } public override void Validate() => throw null; } - public class OAuthTokenResponse : System.IDisposable { - public string AccessToken { get => throw null; set => throw null; } + public string AccessToken { get => throw null; set { } } public void Dispose() => throw null; - public System.Exception Error { get => throw null; set => throw null; } - public string ExpiresIn { get => throw null; set => throw null; } + public System.Exception Error { get => throw null; set { } } + public string ExpiresIn { get => throw null; set { } } public static Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse Failed(System.Exception error) => throw null; - public string RefreshToken { get => throw null; set => throw null; } - public System.Text.Json.JsonDocument Response { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set { } } + public System.Text.Json.JsonDocument Response { get => throw null; set { } } public static Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse Success(System.Text.Json.JsonDocument response) => throw null; - public string TokenType { get => throw null; set => throw null; } - } - - namespace Claims - { - public abstract class ClaimAction - { - public ClaimAction(string claimType, string valueType) => throw null; - public string ClaimType { get => throw null; } - public abstract void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer); - public string ValueType { get => throw null; } - } - - public class ClaimActionCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - public void Add(Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction action) => throw null; - public ClaimActionCollection() => throw null; - public void Clear() => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public void Remove(string claimType) => throw null; - } - - public class CustomJsonClaimAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction - { - public CustomJsonClaimAction(string claimType, string valueType, System.Func resolver) : base(default(string), default(string)) => throw null; - public System.Func Resolver { get => throw null; } - public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; - } - - public class DeleteClaimAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction - { - public DeleteClaimAction(string claimType) : base(default(string), default(string)) => throw null; - public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; - } - - public class JsonKeyClaimAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction - { - public string JsonKey { get => throw null; } - public JsonKeyClaimAction(string claimType, string valueType, string jsonKey) : base(default(string), default(string)) => throw null; - public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; - } - - public class JsonSubKeyClaimAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.JsonKeyClaimAction - { - public JsonSubKeyClaimAction(string claimType, string valueType, string jsonKey, string subKey) : base(default(string), default(string), default(string)) => throw null; - public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; - public string SubKey { get => throw null; } - } - - public class MapAllClaimsAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction - { - public MapAllClaimsAction() : base(default(string), default(string)) => throw null; - public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; - } - + public string TokenType { get => throw null; set { } } } } } @@ -183,20 +165,18 @@ namespace Microsoft { namespace DependencyInjection { - public static class OAuthExtensions + public static partial class OAuthExtensions { public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddOAuth(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddOAuth(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action configureOptions) => throw null; - public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddOAuth(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action configureOptions) where THandler : Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler where TOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions, new() => throw null; - public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddOAuth(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action configureOptions) where THandler : Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler where TOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions, new() => throw null; + public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddOAuth(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, System.Action configureOptions) where TOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions, new() where THandler : Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler => throw null; + public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddOAuth(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, System.Action configureOptions) where TOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions, new() where THandler : Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler => throw null; } - - public class OAuthPostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where THandler : Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler where TOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions, new() + public class OAuthPostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions, new() where THandler : Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler { public OAuthPostConfigureOptions(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtection) => throw null; public void PostConfigure(string name, TOptions options) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.cs index 33cdb01eee1..43d69028a16 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Authentication, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,40 +8,37 @@ namespace Microsoft { public class AccessDeniedContext : Microsoft.AspNetCore.Authentication.HandleRequestContext { + public Microsoft.AspNetCore.Http.PathString AccessDeniedPath { get => throw null; set { } } public AccessDeniedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions options) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions)) => throw null; - public Microsoft.AspNetCore.Http.PathString AccessDeniedPath { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } - public string ReturnUrl { get => throw null; set => throw null; } - public string ReturnUrlParameter { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } + public string ReturnUrl { get => throw null; set { } } + public string ReturnUrlParameter { get => throw null; set { } } } - public class AuthenticationBuilder { public virtual Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddPolicyScheme(string authenticationScheme, string displayName, System.Action configureOptions) => throw null; - public virtual Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddRemoteScheme(string authenticationScheme, string displayName, System.Action configureOptions) where THandler : Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions, new() => throw null; - public virtual Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddScheme(string authenticationScheme, System.Action configureOptions) where THandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() => throw null; - public virtual Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddScheme(string authenticationScheme, string displayName, System.Action configureOptions) where THandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() => throw null; + public virtual Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddRemoteScheme(string authenticationScheme, string displayName, System.Action configureOptions) where TOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions, new() where THandler : Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler => throw null; + public virtual Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddScheme(string authenticationScheme, string displayName, System.Action configureOptions) where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() where THandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler => throw null; + public virtual Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddScheme(string authenticationScheme, System.Action configureOptions) where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() where THandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler => throw null; public AuthenticationBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public virtual Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get => throw null; } } - - public static class AuthenticationConfigurationProviderExtensions + public static partial class AuthenticationConfigurationProviderExtensions { public static Microsoft.Extensions.Configuration.IConfiguration GetSchemeConfiguration(this Microsoft.AspNetCore.Authentication.IAuthenticationConfigurationProvider provider, string authenticationScheme) => throw null; } - public abstract class AuthenticationHandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() { public System.Threading.Tasks.Task AuthenticateAsync() => throw null; - protected AuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) => throw null; protected string BuildRedirectUri(string targetPath) => throw null; public System.Threading.Tasks.Task ChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; protected virtual string ClaimsIssuer { get => throw null; } protected Microsoft.AspNetCore.Authentication.ISystemClock Clock { get => throw null; } protected Microsoft.AspNetCore.Http.HttpContext Context { get => throw null; } protected virtual System.Threading.Tasks.Task CreateEventsAsync() => throw null; + protected AuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) => throw null; protected string CurrentUri { get => throw null; } - protected virtual object Events { get => throw null; set => throw null; } + protected virtual object Events { get => throw null; set { } } public System.Threading.Tasks.Task ForbidAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; protected abstract System.Threading.Tasks.Task HandleAuthenticateAsync(); protected System.Threading.Tasks.Task HandleAuthenticateOnceAsync() => throw null; @@ -63,37 +59,33 @@ namespace Microsoft public Microsoft.AspNetCore.Authentication.AuthenticationScheme Scheme { get => throw null; } protected System.Text.Encodings.Web.UrlEncoder UrlEncoder { get => throw null; } } - public class AuthenticationMiddleware { public AuthenticationMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider schemes) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; - public Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider Schemes { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider Schemes { get => throw null; set { } } } - public class AuthenticationSchemeOptions { + public string ClaimsIssuer { get => throw null; set { } } public AuthenticationSchemeOptions() => throw null; - public string ClaimsIssuer { get => throw null; set => throw null; } - public object Events { get => throw null; set => throw null; } - public System.Type EventsType { get => throw null; set => throw null; } - public string ForwardAuthenticate { get => throw null; set => throw null; } - public string ForwardChallenge { get => throw null; set => throw null; } - public string ForwardDefault { get => throw null; set => throw null; } - public System.Func ForwardDefaultSelector { get => throw null; set => throw null; } - public string ForwardForbid { get => throw null; set => throw null; } - public string ForwardSignIn { get => throw null; set => throw null; } - public string ForwardSignOut { get => throw null; set => throw null; } + public object Events { get => throw null; set { } } + public System.Type EventsType { get => throw null; set { } } + public string ForwardAuthenticate { get => throw null; set { } } + public string ForwardChallenge { get => throw null; set { } } + public string ForwardDefault { get => throw null; set { } } + public System.Func ForwardDefaultSelector { get => throw null; set { } } + public string ForwardForbid { get => throw null; set { } } + public string ForwardSignIn { get => throw null; set { } } + public string ForwardSignOut { get => throw null; set { } } public virtual void Validate() => throw null; public virtual void Validate(string scheme) => throw null; } - public static class Base64UrlTextEncoder { - public static System.Byte[] Decode(string text) => throw null; - public static string Encode(System.Byte[] data) => throw null; + public static byte[] Decode(string text) => throw null; + public static string Encode(byte[] data) => throw null; } - public abstract class BaseContext where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { protected BaseContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, TOptions options) => throw null; @@ -103,36 +95,32 @@ namespace Microsoft public Microsoft.AspNetCore.Http.HttpResponse Response { get => throw null; } public Microsoft.AspNetCore.Authentication.AuthenticationScheme Scheme { get => throw null; } } - public class HandleRequestContext : Microsoft.AspNetCore.Authentication.BaseContext where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { protected HandleRequestContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, TOptions options) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(TOptions)) => throw null; public void HandleResponse() => throw null; - public Microsoft.AspNetCore.Authentication.HandleRequestResult Result { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Authentication.HandleRequestResult Result { get => throw null; set { } } public void SkipHandler() => throw null; } - public class HandleRequestResult : Microsoft.AspNetCore.Authentication.AuthenticateResult { + public HandleRequestResult() => throw null; public static Microsoft.AspNetCore.Authentication.HandleRequestResult Fail(System.Exception failure) => throw null; public static Microsoft.AspNetCore.Authentication.HandleRequestResult Fail(System.Exception failure, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public static Microsoft.AspNetCore.Authentication.HandleRequestResult Fail(string failureMessage) => throw null; public static Microsoft.AspNetCore.Authentication.HandleRequestResult Fail(string failureMessage, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public static Microsoft.AspNetCore.Authentication.HandleRequestResult Handle() => throw null; - public HandleRequestResult() => throw null; public bool Handled { get => throw null; } public static Microsoft.AspNetCore.Authentication.HandleRequestResult NoResult() => throw null; public static Microsoft.AspNetCore.Authentication.HandleRequestResult SkipHandler() => throw null; public bool Skipped { get => throw null; } public static Microsoft.AspNetCore.Authentication.HandleRequestResult Success(Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket) => throw null; } - public interface IDataSerializer { - TModel Deserialize(System.Byte[] data); - System.Byte[] Serialize(TModel model); + TModel Deserialize(byte[] data); + byte[] Serialize(TModel model); } - public interface ISecureDataFormat { string Protect(TData data); @@ -140,222 +128,196 @@ namespace Microsoft TData Unprotect(string protectedText); TData Unprotect(string protectedText, string purpose); } - public interface ISystemClock { System.DateTimeOffset UtcNow { get; } } - - public static class JsonDocumentAuthExtensions + public static partial class JsonDocumentAuthExtensions { public static string GetString(this System.Text.Json.JsonElement element, string key) => throw null; } - public class PolicySchemeHandler : Microsoft.AspNetCore.Authentication.SignInAuthenticationHandler { + public PolicySchemeHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; protected override System.Threading.Tasks.Task HandleAuthenticateAsync() => throw null; protected override System.Threading.Tasks.Task HandleChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; protected override System.Threading.Tasks.Task HandleForbiddenAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; protected override System.Threading.Tasks.Task HandleSignInAsync(System.Security.Claims.ClaimsPrincipal user, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; protected override System.Threading.Tasks.Task HandleSignOutAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public PolicySchemeHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; } - public class PolicySchemeOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { public PolicySchemeOptions() => throw null; } - public abstract class PrincipalContext : Microsoft.AspNetCore.Authentication.PropertiesContext where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { - public virtual System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set => throw null; } protected PrincipalContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, TOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(TOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) => throw null; + public virtual System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set { } } } - public abstract class PropertiesContext : Microsoft.AspNetCore.Authentication.BaseContext where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { - public virtual Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } protected PropertiesContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, TOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(TOptions)) => throw null; + public virtual Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } } - public class PropertiesDataFormat : Microsoft.AspNetCore.Authentication.SecureDataFormat { public PropertiesDataFormat(Microsoft.AspNetCore.DataProtection.IDataProtector protector) : base(default(Microsoft.AspNetCore.Authentication.IDataSerializer), default(Microsoft.AspNetCore.DataProtection.IDataProtector)) => throw null; } - public class PropertiesSerializer : Microsoft.AspNetCore.Authentication.IDataSerializer { - public static Microsoft.AspNetCore.Authentication.PropertiesSerializer Default { get => throw null; } - public virtual Microsoft.AspNetCore.Authentication.AuthenticationProperties Deserialize(System.Byte[] data) => throw null; public PropertiesSerializer() => throw null; + public static Microsoft.AspNetCore.Authentication.PropertiesSerializer Default { get => throw null; } + public virtual Microsoft.AspNetCore.Authentication.AuthenticationProperties Deserialize(byte[] data) => throw null; public virtual Microsoft.AspNetCore.Authentication.AuthenticationProperties Read(System.IO.BinaryReader reader) => throw null; - public virtual System.Byte[] Serialize(Microsoft.AspNetCore.Authentication.AuthenticationProperties model) => throw null; + public virtual byte[] Serialize(Microsoft.AspNetCore.Authentication.AuthenticationProperties model) => throw null; public virtual void Write(System.IO.BinaryWriter writer, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; } - public class RedirectContext : Microsoft.AspNetCore.Authentication.PropertiesContext where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { public RedirectContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, TOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string redirectUri) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(TOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) => throw null; - public string RedirectUri { get => throw null; set => throw null; } + public string RedirectUri { get => throw null; set { } } } - public abstract class RemoteAuthenticationContext : Microsoft.AspNetCore.Authentication.HandleRequestContext where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { + protected RemoteAuthenticationContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, TOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(TOptions)) => throw null; public void Fail(System.Exception failure) => throw null; public void Fail(string failureMessage) => throw null; - public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } - protected RemoteAuthenticationContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, TOptions options, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(TOptions)) => throw null; + public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } public void Success() => throw null; } - public class RemoteAuthenticationEvents { public virtual System.Threading.Tasks.Task AccessDenied(Microsoft.AspNetCore.Authentication.AccessDeniedContext context) => throw null; - public System.Func OnAccessDenied { get => throw null; set => throw null; } - public System.Func OnRemoteFailure { get => throw null; set => throw null; } - public System.Func OnTicketReceived { get => throw null; set => throw null; } public RemoteAuthenticationEvents() => throw null; + public System.Func OnAccessDenied { get => throw null; set { } } + public System.Func OnRemoteFailure { get => throw null; set { } } + public System.Func OnTicketReceived { get => throw null; set { } } public virtual System.Threading.Tasks.Task RemoteFailure(Microsoft.AspNetCore.Authentication.RemoteFailureContext context) => throw null; public virtual System.Threading.Tasks.Task TicketReceived(Microsoft.AspNetCore.Authentication.TicketReceivedContext context) => throw null; } - - public abstract class RemoteAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationRequestHandler where TOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions, new() + public abstract class RemoteAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationRequestHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions, new() { protected override System.Threading.Tasks.Task CreateEventsAsync() => throw null; - protected Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents Events { get => throw null; set => throw null; } + protected RemoteAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; + protected Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents Events { get => throw null; set { } } protected virtual void GenerateCorrelationId(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; protected virtual System.Threading.Tasks.Task HandleAccessDeniedErrorAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; protected override System.Threading.Tasks.Task HandleAuthenticateAsync() => throw null; protected override System.Threading.Tasks.Task HandleForbiddenAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; protected abstract System.Threading.Tasks.Task HandleRemoteAuthenticateAsync(); public virtual System.Threading.Tasks.Task HandleRequestAsync() => throw null; - protected RemoteAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; public virtual System.Threading.Tasks.Task ShouldHandleRequestAsync() => throw null; protected string SignInScheme { get => throw null; } protected virtual bool ValidateCorrelationId(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; } - public class RemoteAuthenticationOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { - public Microsoft.AspNetCore.Http.PathString AccessDeniedPath { get => throw null; set => throw null; } - public System.Net.Http.HttpClient Backchannel { get => throw null; set => throw null; } - public System.Net.Http.HttpMessageHandler BackchannelHttpHandler { get => throw null; set => throw null; } - public System.TimeSpan BackchannelTimeout { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.PathString CallbackPath { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.CookieBuilder CorrelationCookie { get => throw null; set => throw null; } - public Microsoft.AspNetCore.DataProtection.IDataProtectionProvider DataProtectionProvider { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents Events { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.PathString AccessDeniedPath { get => throw null; set { } } + public System.Net.Http.HttpClient Backchannel { get => throw null; set { } } + public System.Net.Http.HttpMessageHandler BackchannelHttpHandler { get => throw null; set { } } + public System.TimeSpan BackchannelTimeout { get => throw null; set { } } + public Microsoft.AspNetCore.Http.PathString CallbackPath { get => throw null; set { } } + public Microsoft.AspNetCore.Http.CookieBuilder CorrelationCookie { get => throw null; set { } } public RemoteAuthenticationOptions() => throw null; - public System.TimeSpan RemoteAuthenticationTimeout { get => throw null; set => throw null; } - public string ReturnUrlParameter { get => throw null; set => throw null; } - public bool SaveTokens { get => throw null; set => throw null; } - public string SignInScheme { get => throw null; set => throw null; } - public override void Validate() => throw null; + public Microsoft.AspNetCore.DataProtection.IDataProtectionProvider DataProtectionProvider { get => throw null; set { } } + public Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents Events { get => throw null; set { } } + public System.TimeSpan RemoteAuthenticationTimeout { get => throw null; set { } } + public string ReturnUrlParameter { get => throw null; set { } } + public bool SaveTokens { get => throw null; set { } } + public string SignInScheme { get => throw null; set { } } public override void Validate(string scheme) => throw null; + public override void Validate() => throw null; } - public class RemoteFailureContext : Microsoft.AspNetCore.Authentication.HandleRequestContext { - public System.Exception Failure { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } public RemoteFailureContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions options, System.Exception failure) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions)) => throw null; + public System.Exception Failure { get => throw null; set { } } + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } } - public class RequestPathBaseCookieBuilder : Microsoft.AspNetCore.Http.CookieBuilder { protected virtual string AdditionalPath { get => throw null; } public override Microsoft.AspNetCore.Http.CookieOptions Build(Microsoft.AspNetCore.Http.HttpContext context, System.DateTimeOffset expiresFrom) => throw null; public RequestPathBaseCookieBuilder() => throw null; } - public abstract class ResultContext : Microsoft.AspNetCore.Authentication.BaseContext where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { + protected ResultContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, TOptions options) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(TOptions)) => throw null; public void Fail(System.Exception failure) => throw null; public void Fail(string failureMessage) => throw null; public void NoResult() => throw null; - public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } + public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set { } } + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } public Microsoft.AspNetCore.Authentication.AuthenticateResult Result { get => throw null; } - protected ResultContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, TOptions options) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(TOptions)) => throw null; public void Success() => throw null; } - public class SecureDataFormat : Microsoft.AspNetCore.Authentication.ISecureDataFormat { + public SecureDataFormat(Microsoft.AspNetCore.Authentication.IDataSerializer serializer, Microsoft.AspNetCore.DataProtection.IDataProtector protector) => throw null; public string Protect(TData data) => throw null; public string Protect(TData data, string purpose) => throw null; - public SecureDataFormat(Microsoft.AspNetCore.Authentication.IDataSerializer serializer, Microsoft.AspNetCore.DataProtection.IDataProtector protector) => throw null; public TData Unprotect(string protectedText) => throw null; public TData Unprotect(string protectedText, string purpose) => throw null; } - - public abstract class SignInAuthenticationHandler : Microsoft.AspNetCore.Authentication.SignOutAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignInHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() + public abstract class SignInAuthenticationHandler : Microsoft.AspNetCore.Authentication.SignOutAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignInHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() { + public SignInAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; protected abstract System.Threading.Tasks.Task HandleSignInAsync(System.Security.Claims.ClaimsPrincipal user, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); public virtual System.Threading.Tasks.Task SignInAsync(System.Security.Claims.ClaimsPrincipal user, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public SignInAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; } - - public abstract class SignOutAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() + public abstract class SignOutAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() { + public SignOutAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; protected abstract System.Threading.Tasks.Task HandleSignOutAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); public virtual System.Threading.Tasks.Task SignOutAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public SignOutAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; } - public class SystemClock : Microsoft.AspNetCore.Authentication.ISystemClock { public SystemClock() => throw null; public System.DateTimeOffset UtcNow { get => throw null; } } - public class TicketDataFormat : Microsoft.AspNetCore.Authentication.SecureDataFormat { public TicketDataFormat(Microsoft.AspNetCore.DataProtection.IDataProtector protector) : base(default(Microsoft.AspNetCore.Authentication.IDataSerializer), default(Microsoft.AspNetCore.DataProtection.IDataProtector)) => throw null; } - public class TicketReceivedContext : Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext { - public string ReturnUri { get => throw null; set => throw null; } public TicketReceivedContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions options, Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket) : base(default(Microsoft.AspNetCore.Http.HttpContext), default(Microsoft.AspNetCore.Authentication.AuthenticationScheme), default(Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions), default(Microsoft.AspNetCore.Authentication.AuthenticationProperties)) => throw null; + public string ReturnUri { get => throw null; set { } } } - public class TicketSerializer : Microsoft.AspNetCore.Authentication.IDataSerializer { + public TicketSerializer() => throw null; public static Microsoft.AspNetCore.Authentication.TicketSerializer Default { get => throw null; } - public virtual Microsoft.AspNetCore.Authentication.AuthenticationTicket Deserialize(System.Byte[] data) => throw null; + public virtual Microsoft.AspNetCore.Authentication.AuthenticationTicket Deserialize(byte[] data) => throw null; public virtual Microsoft.AspNetCore.Authentication.AuthenticationTicket Read(System.IO.BinaryReader reader) => throw null; protected virtual System.Security.Claims.Claim ReadClaim(System.IO.BinaryReader reader, System.Security.Claims.ClaimsIdentity identity) => throw null; protected virtual System.Security.Claims.ClaimsIdentity ReadIdentity(System.IO.BinaryReader reader) => throw null; - public virtual System.Byte[] Serialize(Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket) => throw null; - public TicketSerializer() => throw null; + public virtual byte[] Serialize(Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket) => throw null; public virtual void Write(System.IO.BinaryWriter writer, Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket) => throw null; protected virtual void WriteClaim(System.IO.BinaryWriter writer, System.Security.Claims.Claim claim) => throw null; protected virtual void WriteIdentity(System.IO.BinaryWriter writer, System.Security.Claims.ClaimsIdentity identity) => throw null; } - } namespace Builder { - public static class AuthAppBuilderExtensions + public static partial class AuthAppBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseAuthentication(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - } } namespace Extensions { namespace DependencyInjection { - public static class AuthenticationServiceCollectionExtensions + public static partial class AuthenticationServiceCollectionExtensions { public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string defaultScheme) => throw null; + public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authorization.Policy.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authorization.Policy.cs index b222c2499b9..9a57d7130c2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authorization.Policy.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authorization.Policy.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Authorization.Policy, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -13,12 +12,10 @@ namespace Microsoft public AuthorizationMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, System.IServiceProvider services) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public interface IAuthorizationMiddlewareResultHandler { System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult authorizeResult); } - namespace Policy { public class AuthorizationMiddlewareResultHandler : Microsoft.AspNetCore.Authorization.IAuthorizationMiddlewareResultHandler @@ -26,13 +23,11 @@ namespace Microsoft public AuthorizationMiddlewareResultHandler() => throw null; public System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult authorizeResult) => throw null; } - public interface IPolicyEvaluator { System.Threading.Tasks.Task AuthenticateAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Http.HttpContext context); System.Threading.Tasks.Task AuthorizeAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Authentication.AuthenticateResult authenticationResult, Microsoft.AspNetCore.Http.HttpContext context, object resource); } - public class PolicyAuthorizationResult { public Microsoft.AspNetCore.Authorization.AuthorizationFailure AuthorizationFailure { get => throw null; } @@ -44,47 +39,42 @@ namespace Microsoft public bool Succeeded { get => throw null; } public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Success() => throw null; } - public class PolicyEvaluator : Microsoft.AspNetCore.Authorization.Policy.IPolicyEvaluator { public virtual System.Threading.Tasks.Task AuthenticateAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Http.HttpContext context) => throw null; public virtual System.Threading.Tasks.Task AuthorizeAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Authentication.AuthenticateResult authenticationResult, Microsoft.AspNetCore.Http.HttpContext context, object resource) => throw null; public PolicyEvaluator(Microsoft.AspNetCore.Authorization.IAuthorizationService authorization) => throw null; } - } } namespace Builder { - public static class AuthorizationAppBuilderExtensions + public static partial class AuthorizationAppBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseAuthorization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - - public static class AuthorizationEndpointConventionBuilderExtensions + public static partial class AuthorizationEndpointConventionBuilderExtensions { public static TBuilder AllowAnonymous(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder RequireAuthorization(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; - public static TBuilder RequireAuthorization(this TBuilder builder, System.Action configurePolicy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; - public static TBuilder RequireAuthorization(this TBuilder builder, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; - public static TBuilder RequireAuthorization(this TBuilder builder, params Microsoft.AspNetCore.Authorization.IAuthorizeData[] authorizeData) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder RequireAuthorization(this TBuilder builder, params string[] policyNames) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; + public static TBuilder RequireAuthorization(this TBuilder builder, params Microsoft.AspNetCore.Authorization.IAuthorizeData[] authorizeData) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; + public static TBuilder RequireAuthorization(this TBuilder builder, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; + public static TBuilder RequireAuthorization(this TBuilder builder, System.Action configurePolicy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; } - } } namespace Extensions { namespace DependencyInjection { - public static class PolicyServiceCollectionExtensions + public static partial class PolicyServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthorization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthorization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; public static Microsoft.AspNetCore.Authorization.AuthorizationBuilder AddAuthorizationBuilder(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthorizationPolicyEvaluator(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authorization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authorization.cs index 283e5ba164f..616385358b9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authorization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authorization.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Authorization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -11,22 +10,20 @@ namespace Microsoft { public AllowAnonymousAttribute() => throw null; } - public class AuthorizationBuilder { - public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder AddDefaultPolicy(string name, System.Action configurePolicy) => throw null; public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder AddDefaultPolicy(string name, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; - public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder AddFallbackPolicy(string name, System.Action configurePolicy) => throw null; + public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder AddDefaultPolicy(string name, System.Action configurePolicy) => throw null; public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder AddFallbackPolicy(string name, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; - public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder AddPolicy(string name, System.Action configurePolicy) => throw null; + public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder AddFallbackPolicy(string name, System.Action configurePolicy) => throw null; public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder AddPolicy(string name, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; + public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder AddPolicy(string name, System.Action configurePolicy) => throw null; public AuthorizationBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public virtual Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get => throw null; } public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder SetDefaultPolicy(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder SetFallbackPolicy(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; public virtual Microsoft.AspNetCore.Authorization.AuthorizationBuilder SetInvokeHandlersAfterFailure(bool invoke) => throw null; } - public class AuthorizationFailure { public static Microsoft.AspNetCore.Authorization.AuthorizationFailure ExplicitFail() => throw null; @@ -36,28 +33,24 @@ namespace Microsoft public System.Collections.Generic.IEnumerable FailedRequirements { get => throw null; } public System.Collections.Generic.IEnumerable FailureReasons { get => throw null; } } - public class AuthorizationFailureReason { public AuthorizationFailureReason(Microsoft.AspNetCore.Authorization.IAuthorizationHandler handler, string message) => throw null; public Microsoft.AspNetCore.Authorization.IAuthorizationHandler Handler { get => throw null; } public string Message { get => throw null; } } - - public abstract class AuthorizationHandler : Microsoft.AspNetCore.Authorization.IAuthorizationHandler where TRequirement : Microsoft.AspNetCore.Authorization.IAuthorizationRequirement - { - protected AuthorizationHandler() => throw null; - public virtual System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) => throw null; - protected abstract System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, TRequirement requirement, TResource resource); - } - public abstract class AuthorizationHandler : Microsoft.AspNetCore.Authorization.IAuthorizationHandler where TRequirement : Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { protected AuthorizationHandler() => throw null; public virtual System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) => throw null; protected abstract System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, TRequirement requirement); } - + public abstract class AuthorizationHandler : Microsoft.AspNetCore.Authorization.IAuthorizationHandler where TRequirement : Microsoft.AspNetCore.Authorization.IAuthorizationRequirement + { + protected AuthorizationHandler() => throw null; + public virtual System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) => throw null; + protected abstract System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, TRequirement requirement, TResource resource); + } public class AuthorizationHandlerContext { public AuthorizationHandlerContext(System.Collections.Generic.IEnumerable requirements, System.Security.Claims.ClaimsPrincipal user, object resource) => throw null; @@ -72,94 +65,84 @@ namespace Microsoft public virtual void Succeed(Microsoft.AspNetCore.Authorization.IAuthorizationRequirement requirement) => throw null; public virtual System.Security.Claims.ClaimsPrincipal User { get => throw null; } } - public class AuthorizationOptions { - public void AddPolicy(string name, System.Action configurePolicy) => throw null; public void AddPolicy(string name, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; + public void AddPolicy(string name, System.Action configurePolicy) => throw null; public AuthorizationOptions() => throw null; - public Microsoft.AspNetCore.Authorization.AuthorizationPolicy DefaultPolicy { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authorization.AuthorizationPolicy FallbackPolicy { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Authorization.AuthorizationPolicy DefaultPolicy { get => throw null; set { } } + public Microsoft.AspNetCore.Authorization.AuthorizationPolicy FallbackPolicy { get => throw null; set { } } public Microsoft.AspNetCore.Authorization.AuthorizationPolicy GetPolicy(string name) => throw null; - public bool InvokeHandlersAfterFailure { get => throw null; set => throw null; } + public bool InvokeHandlersAfterFailure { get => throw null; set { } } } - public class AuthorizationPolicy { public System.Collections.Generic.IReadOnlyList AuthenticationSchemes { get => throw null; } - public AuthorizationPolicy(System.Collections.Generic.IEnumerable requirements, System.Collections.Generic.IEnumerable authenticationSchemes) => throw null; - public static Microsoft.AspNetCore.Authorization.AuthorizationPolicy Combine(System.Collections.Generic.IEnumerable policies) => throw null; public static Microsoft.AspNetCore.Authorization.AuthorizationPolicy Combine(params Microsoft.AspNetCore.Authorization.AuthorizationPolicy[] policies) => throw null; + public static Microsoft.AspNetCore.Authorization.AuthorizationPolicy Combine(System.Collections.Generic.IEnumerable policies) => throw null; public static System.Threading.Tasks.Task CombineAsync(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, System.Collections.Generic.IEnumerable authorizeData) => throw null; public static System.Threading.Tasks.Task CombineAsync(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, System.Collections.Generic.IEnumerable authorizeData, System.Collections.Generic.IEnumerable policies) => throw null; + public AuthorizationPolicy(System.Collections.Generic.IEnumerable requirements, System.Collections.Generic.IEnumerable authenticationSchemes) => throw null; public System.Collections.Generic.IReadOnlyList Requirements { get => throw null; } } - public class AuthorizationPolicyBuilder { public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder AddAuthenticationSchemes(params string[] schemes) => throw null; public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder AddRequirements(params Microsoft.AspNetCore.Authorization.IAuthorizationRequirement[] requirements) => throw null; - public System.Collections.Generic.IList AuthenticationSchemes { get => throw null; set => throw null; } - public AuthorizationPolicyBuilder(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; - public AuthorizationPolicyBuilder(params string[] authenticationSchemes) => throw null; + public System.Collections.Generic.IList AuthenticationSchemes { get => throw null; set { } } public Microsoft.AspNetCore.Authorization.AuthorizationPolicy Build() => throw null; public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder Combine(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; - public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireAssertion(System.Func> handler) => throw null; + public AuthorizationPolicyBuilder(params string[] authenticationSchemes) => throw null; + public AuthorizationPolicyBuilder(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireAssertion(System.Func handler) => throw null; + public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireAssertion(System.Func> handler) => throw null; public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireAuthenticatedUser() => throw null; - public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireClaim(string claimType) => throw null; - public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireClaim(string claimType, System.Collections.Generic.IEnumerable allowedValues) => throw null; public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireClaim(string claimType, params string[] allowedValues) => throw null; - public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireRole(System.Collections.Generic.IEnumerable roles) => throw null; + public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireClaim(string claimType, System.Collections.Generic.IEnumerable allowedValues) => throw null; + public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireClaim(string claimType) => throw null; + public System.Collections.Generic.IList Requirements { get => throw null; set { } } public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireRole(params string[] roles) => throw null; + public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireRole(System.Collections.Generic.IEnumerable roles) => throw null; public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireUserName(string userName) => throw null; - public System.Collections.Generic.IList Requirements { get => throw null; set => throw null; } } - public class AuthorizationResult { - public static Microsoft.AspNetCore.Authorization.AuthorizationResult Failed() => throw null; public static Microsoft.AspNetCore.Authorization.AuthorizationResult Failed(Microsoft.AspNetCore.Authorization.AuthorizationFailure failure) => throw null; + public static Microsoft.AspNetCore.Authorization.AuthorizationResult Failed() => throw null; public Microsoft.AspNetCore.Authorization.AuthorizationFailure Failure { get => throw null; } public bool Succeeded { get => throw null; } public static Microsoft.AspNetCore.Authorization.AuthorizationResult Success() => throw null; } - - public static class AuthorizationServiceExtensions + public static partial class AuthorizationServiceExtensions { - public static System.Threading.Tasks.Task AuthorizeAsync(this Microsoft.AspNetCore.Authorization.IAuthorizationService service, System.Security.Claims.ClaimsPrincipal user, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; - public static System.Threading.Tasks.Task AuthorizeAsync(this Microsoft.AspNetCore.Authorization.IAuthorizationService service, System.Security.Claims.ClaimsPrincipal user, object resource, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; public static System.Threading.Tasks.Task AuthorizeAsync(this Microsoft.AspNetCore.Authorization.IAuthorizationService service, System.Security.Claims.ClaimsPrincipal user, object resource, Microsoft.AspNetCore.Authorization.IAuthorizationRequirement requirement) => throw null; + public static System.Threading.Tasks.Task AuthorizeAsync(this Microsoft.AspNetCore.Authorization.IAuthorizationService service, System.Security.Claims.ClaimsPrincipal user, object resource, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; + public static System.Threading.Tasks.Task AuthorizeAsync(this Microsoft.AspNetCore.Authorization.IAuthorizationService service, System.Security.Claims.ClaimsPrincipal user, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; public static System.Threading.Tasks.Task AuthorizeAsync(this Microsoft.AspNetCore.Authorization.IAuthorizationService service, System.Security.Claims.ClaimsPrincipal user, string policyName) => throw null; } - public class AuthorizeAttribute : System.Attribute, Microsoft.AspNetCore.Authorization.IAuthorizeData { - public string AuthenticationSchemes { get => throw null; set => throw null; } + public string AuthenticationSchemes { get => throw null; set { } } public AuthorizeAttribute() => throw null; public AuthorizeAttribute(string policy) => throw null; - public string Policy { get => throw null; set => throw null; } - public string Roles { get => throw null; set => throw null; } + public string Policy { get => throw null; set { } } + public string Roles { get => throw null; set { } } } - public class DefaultAuthorizationEvaluator : Microsoft.AspNetCore.Authorization.IAuthorizationEvaluator { public DefaultAuthorizationEvaluator() => throw null; public Microsoft.AspNetCore.Authorization.AuthorizationResult Evaluate(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) => throw null; } - public class DefaultAuthorizationHandlerContextFactory : Microsoft.AspNetCore.Authorization.IAuthorizationHandlerContextFactory { public virtual Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext CreateContext(System.Collections.Generic.IEnumerable requirements, System.Security.Claims.ClaimsPrincipal user, object resource) => throw null; public DefaultAuthorizationHandlerContextFactory() => throw null; } - public class DefaultAuthorizationHandlerProvider : Microsoft.AspNetCore.Authorization.IAuthorizationHandlerProvider { public DefaultAuthorizationHandlerProvider(System.Collections.Generic.IEnumerable handlers) => throw null; public System.Threading.Tasks.Task> GetHandlersAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) => throw null; } - public class DefaultAuthorizationPolicyProvider : Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider { public virtual bool AllowsCachingPolicies { get => throw null; } @@ -168,63 +151,53 @@ namespace Microsoft public System.Threading.Tasks.Task GetFallbackPolicyAsync() => throw null; public virtual System.Threading.Tasks.Task GetPolicyAsync(string policyName) => throw null; } - public class DefaultAuthorizationService : Microsoft.AspNetCore.Authorization.IAuthorizationService { public virtual System.Threading.Tasks.Task AuthorizeAsync(System.Security.Claims.ClaimsPrincipal user, object resource, System.Collections.Generic.IEnumerable requirements) => throw null; public virtual System.Threading.Tasks.Task AuthorizeAsync(System.Security.Claims.ClaimsPrincipal user, object resource, string policyName) => throw null; public DefaultAuthorizationService(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, Microsoft.AspNetCore.Authorization.IAuthorizationHandlerProvider handlers, Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Authorization.IAuthorizationHandlerContextFactory contextFactory, Microsoft.AspNetCore.Authorization.IAuthorizationEvaluator evaluator, Microsoft.Extensions.Options.IOptions options) => throw null; } - public interface IAuthorizationEvaluator { Microsoft.AspNetCore.Authorization.AuthorizationResult Evaluate(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context); } - public interface IAuthorizationHandler { System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context); } - public interface IAuthorizationHandlerContextFactory { Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext CreateContext(System.Collections.Generic.IEnumerable requirements, System.Security.Claims.ClaimsPrincipal user, object resource); } - public interface IAuthorizationHandlerProvider { System.Threading.Tasks.Task> GetHandlersAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context); } - public interface IAuthorizationPolicyProvider { - bool AllowsCachingPolicies { get => throw null; } + virtual bool AllowsCachingPolicies { get => throw null; } System.Threading.Tasks.Task GetDefaultPolicyAsync(); System.Threading.Tasks.Task GetFallbackPolicyAsync(); System.Threading.Tasks.Task GetPolicyAsync(string policyName); } - public interface IAuthorizationRequirement { } - public interface IAuthorizationService { System.Threading.Tasks.Task AuthorizeAsync(System.Security.Claims.ClaimsPrincipal user, object resource, System.Collections.Generic.IEnumerable requirements); System.Threading.Tasks.Task AuthorizeAsync(System.Security.Claims.ClaimsPrincipal user, object resource, string policyName); } - namespace Infrastructure { public class AssertionRequirement : Microsoft.AspNetCore.Authorization.IAuthorizationHandler, Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { - public AssertionRequirement(System.Func> handler) => throw null; public AssertionRequirement(System.Func handler) => throw null; + public AssertionRequirement(System.Func> handler) => throw null; public System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) => throw null; public System.Func> Handler { get => throw null; } public override string ToString() => throw null; } - public class ClaimsAuthorizationRequirement : Microsoft.AspNetCore.Authorization.AuthorizationHandler, Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { public System.Collections.Generic.IEnumerable AllowedValues { get => throw null; } @@ -233,44 +206,38 @@ namespace Microsoft protected override System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, Microsoft.AspNetCore.Authorization.Infrastructure.ClaimsAuthorizationRequirement requirement) => throw null; public override string ToString() => throw null; } - public class DenyAnonymousAuthorizationRequirement : Microsoft.AspNetCore.Authorization.AuthorizationHandler, Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { public DenyAnonymousAuthorizationRequirement() => throw null; protected override System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, Microsoft.AspNetCore.Authorization.Infrastructure.DenyAnonymousAuthorizationRequirement requirement) => throw null; public override string ToString() => throw null; } - public class NameAuthorizationRequirement : Microsoft.AspNetCore.Authorization.AuthorizationHandler, Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { - protected override System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, Microsoft.AspNetCore.Authorization.Infrastructure.NameAuthorizationRequirement requirement) => throw null; public NameAuthorizationRequirement(string requiredName) => throw null; + protected override System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, Microsoft.AspNetCore.Authorization.Infrastructure.NameAuthorizationRequirement requirement) => throw null; public string RequiredName { get => throw null; } public override string ToString() => throw null; } - public class OperationAuthorizationRequirement : Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { - public string Name { get => throw null; set => throw null; } public OperationAuthorizationRequirement() => throw null; + public string Name { get => throw null; set { } } public override string ToString() => throw null; } - public class PassThroughAuthorizationHandler : Microsoft.AspNetCore.Authorization.IAuthorizationHandler { - public System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) => throw null; public PassThroughAuthorizationHandler() => throw null; public PassThroughAuthorizationHandler(Microsoft.Extensions.Options.IOptions options) => throw null; + public System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) => throw null; } - public class RolesAuthorizationRequirement : Microsoft.AspNetCore.Authorization.AuthorizationHandler, Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { public System.Collections.Generic.IEnumerable AllowedRoles { get => throw null; } - protected override System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, Microsoft.AspNetCore.Authorization.Infrastructure.RolesAuthorizationRequirement requirement) => throw null; public RolesAuthorizationRequirement(System.Collections.Generic.IEnumerable allowedRoles) => throw null; + protected override System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, Microsoft.AspNetCore.Authorization.Infrastructure.RolesAuthorizationRequirement requirement) => throw null; public override string ToString() => throw null; } - } } } @@ -278,12 +245,11 @@ namespace Microsoft { namespace DependencyInjection { - public static class AuthorizationServiceCollectionExtensions + public static partial class AuthorizationServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthorizationCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthorizationCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Authorization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Authorization.cs index ab4f39e2d8b..d270d27e7ab 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Authorization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Authorization.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Components.Authorization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -14,61 +13,53 @@ namespace Microsoft public AuthenticationState(System.Security.Claims.ClaimsPrincipal user) => throw null; public System.Security.Claims.ClaimsPrincipal User { get => throw null; } } - public delegate void AuthenticationStateChangedHandler(System.Threading.Tasks.Task task); - public abstract class AuthenticationStateProvider { - public event Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler AuthenticationStateChanged; + public event Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler AuthenticationStateChanged { add { } remove { } } protected AuthenticationStateProvider() => throw null; public abstract System.Threading.Tasks.Task GetAuthenticationStateAsync(); protected void NotifyAuthenticationStateChanged(System.Threading.Tasks.Task task) => throw null; } - - public class AuthorizeRouteView : Microsoft.AspNetCore.Components.RouteView + public sealed class AuthorizeRouteView : Microsoft.AspNetCore.Components.RouteView { + public Microsoft.AspNetCore.Components.RenderFragment Authorizing { get => throw null; set { } } public AuthorizeRouteView() => throw null; - public Microsoft.AspNetCore.Components.RenderFragment Authorizing { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.RenderFragment NotAuthorized { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment NotAuthorized { get => throw null; set { } } protected override void Render(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public object Resource { get => throw null; set => throw null; } + public object Resource { get => throw null; set { } } } - public class AuthorizeView : Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore { public AuthorizeView() => throw null; protected override Microsoft.AspNetCore.Authorization.IAuthorizeData[] GetAuthorizeData() => throw null; - public string Policy { get => throw null; set => throw null; } - public string Roles { get => throw null; set => throw null; } + public string Policy { get => throw null; set { } } + public string Roles { get => throw null; set { } } } - public abstract class AuthorizeViewCore : Microsoft.AspNetCore.Components.ComponentBase { - protected AuthorizeViewCore() => throw null; - public Microsoft.AspNetCore.Components.RenderFragment Authorized { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.RenderFragment Authorizing { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment Authorized { get => throw null; set { } } + public Microsoft.AspNetCore.Components.RenderFragment Authorizing { get => throw null; set { } } protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } + protected AuthorizeViewCore() => throw null; protected abstract Microsoft.AspNetCore.Authorization.IAuthorizeData[] GetAuthorizeData(); - public Microsoft.AspNetCore.Components.RenderFragment NotAuthorized { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment NotAuthorized { get => throw null; set { } } protected override System.Threading.Tasks.Task OnParametersSetAsync() => throw null; - public object Resource { get => throw null; set => throw null; } + public object Resource { get => throw null; set { } } } - public class CascadingAuthenticationState : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder) => throw null; + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } public CascadingAuthenticationState() => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } void System.IDisposable.Dispose() => throw null; protected override void OnInitialized() => throw null; } - public interface IHostEnvironmentAuthenticationStateProvider { void SetAuthenticationState(System.Threading.Tasks.Task authenticationStateTask); } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs index 41a3ef373fc..f5a415a0da7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Components.Forms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -12,93 +11,83 @@ namespace Microsoft public class DataAnnotationsValidator : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { public DataAnnotationsValidator() => throw null; - void System.IDisposable.Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; + void System.IDisposable.Dispose() => throw null; protected override void OnInitialized() => throw null; protected override void OnParametersSet() => throw null; } - - public class EditContext + public sealed class EditContext { public EditContext(object model) => throw null; public Microsoft.AspNetCore.Components.Forms.FieldIdentifier Field(string fieldName) => throw null; public System.Collections.Generic.IEnumerable GetValidationMessages() => throw null; - public System.Collections.Generic.IEnumerable GetValidationMessages(System.Linq.Expressions.Expression> accessor) => throw null; public System.Collections.Generic.IEnumerable GetValidationMessages(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; + public System.Collections.Generic.IEnumerable GetValidationMessages(System.Linq.Expressions.Expression> accessor) => throw null; public bool IsModified() => throw null; + public bool IsModified(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; public bool IsModified(System.Linq.Expressions.Expression> accessor) => throw null; - public bool IsModified(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; + public void MarkAsUnmodified(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; public void MarkAsUnmodified() => throw null; - public void MarkAsUnmodified(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; public object Model { get => throw null; } - public void NotifyFieldChanged(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; + public void NotifyFieldChanged(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; public void NotifyValidationStateChanged() => throw null; - public event System.EventHandler OnFieldChanged; - public event System.EventHandler OnValidationRequested; - public event System.EventHandler OnValidationStateChanged; + public event System.EventHandler OnFieldChanged { add { } remove { } } + public event System.EventHandler OnValidationRequested { add { } remove { } } + public event System.EventHandler OnValidationStateChanged { add { } remove { } } public Microsoft.AspNetCore.Components.Forms.EditContextProperties Properties { get => throw null; } public bool Validate() => throw null; } - - public static class EditContextDataAnnotationsExtensions + public static partial class EditContextDataAnnotationsExtensions { public static Microsoft.AspNetCore.Components.Forms.EditContext AddDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext editContext) => throw null; public static System.IDisposable EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext editContext) => throw null; public static System.IDisposable EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext editContext, System.IServiceProvider serviceProvider) => throw null; } - - public class EditContextProperties + public sealed class EditContextProperties { public EditContextProperties() => throw null; - public object this[object key] { get => throw null; set => throw null; } public bool Remove(object key) => throw null; + public object this[object key] { get => throw null; set { } } public bool TryGetValue(object key, out object value) => throw null; } - - public class FieldChangedEventArgs : System.EventArgs + public sealed class FieldChangedEventArgs : System.EventArgs { - public FieldChangedEventArgs(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; + public FieldChangedEventArgs(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; public Microsoft.AspNetCore.Components.Forms.FieldIdentifier FieldIdentifier { get => throw null; } } - public struct FieldIdentifier : System.IEquatable { public static Microsoft.AspNetCore.Components.Forms.FieldIdentifier Create(System.Linq.Expressions.Expression> accessor) => throw null; - public bool Equals(Microsoft.AspNetCore.Components.Forms.FieldIdentifier otherIdentifier) => throw null; - public override bool Equals(object obj) => throw null; - // Stub generator skipped constructor public FieldIdentifier(object model, string fieldName) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(Microsoft.AspNetCore.Components.Forms.FieldIdentifier otherIdentifier) => throw null; public string FieldName { get => throw null; } public override int GetHashCode() => throw null; public object Model { get => throw null; } } - - public class ValidationMessageStore + public sealed class ValidationMessageStore { - public void Add(System.Linq.Expressions.Expression> accessor, System.Collections.Generic.IEnumerable messages) => throw null; + public void Add(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier, string message) => throw null; public void Add(System.Linq.Expressions.Expression> accessor, string message) => throw null; - public void Add(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier, System.Collections.Generic.IEnumerable messages) => throw null; - public void Add(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier, string message) => throw null; + public void Add(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier, System.Collections.Generic.IEnumerable messages) => throw null; + public void Add(System.Linq.Expressions.Expression> accessor, System.Collections.Generic.IEnumerable messages) => throw null; public void Clear() => throw null; public void Clear(System.Linq.Expressions.Expression> accessor) => throw null; - public void Clear(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; - public System.Collections.Generic.IEnumerable this[System.Linq.Expressions.Expression> accessor] { get => throw null; } - public System.Collections.Generic.IEnumerable this[Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier] { get => throw null; } + public void Clear(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; public ValidationMessageStore(Microsoft.AspNetCore.Components.Forms.EditContext editContext) => throw null; + public System.Collections.Generic.IEnumerable this[Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier] { get => throw null; } + public System.Collections.Generic.IEnumerable this[System.Linq.Expressions.Expression> accessor] { get => throw null; } } - - public class ValidationRequestedEventArgs : System.EventArgs + public sealed class ValidationRequestedEventArgs : System.EventArgs { - public static Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs Empty; public ValidationRequestedEventArgs() => throw null; + public static Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs Empty; } - - public class ValidationStateChangedEventArgs : System.EventArgs + public sealed class ValidationStateChangedEventArgs : System.EventArgs { - public static Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs Empty; public ValidationStateChangedEventArgs() => throw null; + public static Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs Empty; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Server.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Server.cs index 7a6d1d8d577..ba78a292a86 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Server.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Server.cs @@ -1,72 +1,50 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Components.Server, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public class ComponentEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder + public sealed class ComponentEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { public void Add(System.Action convention) => throw null; public void Finally(System.Action finalConvention) => throw null; } - - public static class ComponentEndpointRouteBuilderExtensions + public static partial class ComponentEndpointRouteBuilderExtensions { public static Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder MapBlazorHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints) => throw null; - public static Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder MapBlazorHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder MapBlazorHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string path) => throw null; + public static Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder MapBlazorHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder MapBlazorHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string path, System.Action configureOptions) => throw null; } - } namespace Components { namespace Server { - public class CircuitOptions + public sealed class CircuitOptions { public CircuitOptions() => throw null; - public bool DetailedErrors { get => throw null; set => throw null; } - public int DisconnectedCircuitMaxRetained { get => throw null; set => throw null; } - public System.TimeSpan DisconnectedCircuitRetentionPeriod { get => throw null; set => throw null; } - public System.TimeSpan JSInteropDefaultCallTimeout { get => throw null; set => throw null; } - public int MaxBufferedUnacknowledgedRenderBatches { get => throw null; set => throw null; } + public bool DetailedErrors { get => throw null; set { } } + public int DisconnectedCircuitMaxRetained { get => throw null; set { } } + public System.TimeSpan DisconnectedCircuitRetentionPeriod { get => throw null; set { } } + public System.TimeSpan JSInteropDefaultCallTimeout { get => throw null; set { } } + public int MaxBufferedUnacknowledgedRenderBatches { get => throw null; set { } } public Microsoft.AspNetCore.Components.Server.CircuitRootComponentOptions RootComponents { get => throw null; } } - public class CircuitRootComponentOptions : Microsoft.AspNetCore.Components.Web.IJSComponentConfiguration { public CircuitRootComponentOptions() => throw null; public Microsoft.AspNetCore.Components.Web.JSComponentConfigurationStore JSComponents { get => throw null; } - public int MaxJSRootComponents { get => throw null; set => throw null; } + public int MaxJSRootComponents { get => throw null; set { } } } - - public abstract class RevalidatingServerAuthenticationStateProvider : Microsoft.AspNetCore.Components.Server.ServerAuthenticationStateProvider, System.IDisposable - { - void System.IDisposable.Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public RevalidatingServerAuthenticationStateProvider(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - protected abstract System.TimeSpan RevalidationInterval { get; } - protected abstract System.Threading.Tasks.Task ValidateAuthenticationStateAsync(Microsoft.AspNetCore.Components.Authorization.AuthenticationState authenticationState, System.Threading.CancellationToken cancellationToken); - } - - public class ServerAuthenticationStateProvider : Microsoft.AspNetCore.Components.Authorization.AuthenticationStateProvider, Microsoft.AspNetCore.Components.Authorization.IHostEnvironmentAuthenticationStateProvider - { - public override System.Threading.Tasks.Task GetAuthenticationStateAsync() => throw null; - public ServerAuthenticationStateProvider() => throw null; - public void SetAuthenticationState(System.Threading.Tasks.Task authenticationStateTask) => throw null; - } - namespace Circuits { - public class Circuit + public sealed class Circuit { public string Id { get => throw null; } } - public abstract class CircuitHandler { protected CircuitHandler() => throw null; @@ -76,7 +54,6 @@ namespace Microsoft public virtual System.Threading.Tasks.Task OnConnectionUpAsync(Microsoft.AspNetCore.Components.Server.Circuits.Circuit circuit, System.Threading.CancellationToken cancellationToken) => throw null; public virtual int Order { get => throw null; } } - } namespace ProtectedBrowserStorage { @@ -85,28 +62,36 @@ namespace Microsoft public System.Threading.Tasks.ValueTask DeleteAsync(string key) => throw null; public System.Threading.Tasks.ValueTask> GetAsync(string key) => throw null; public System.Threading.Tasks.ValueTask> GetAsync(string purpose, string key) => throw null; - protected private ProtectedBrowserStorage(string storeName, Microsoft.JSInterop.IJSRuntime jsRuntime, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider) => throw null; public System.Threading.Tasks.ValueTask SetAsync(string key, object value) => throw null; public System.Threading.Tasks.ValueTask SetAsync(string purpose, string key, object value) => throw null; } - public struct ProtectedBrowserStorageResult { - // Stub generator skipped constructor public bool Success { get => throw null; } public TValue Value { get => throw null; } } - - public class ProtectedLocalStorage : Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedBrowserStorage + public sealed class ProtectedLocalStorage : Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedBrowserStorage { - public ProtectedLocalStorage(Microsoft.JSInterop.IJSRuntime jsRuntime, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider) : base(default(string), default(Microsoft.JSInterop.IJSRuntime), default(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider)) => throw null; + public ProtectedLocalStorage(Microsoft.JSInterop.IJSRuntime jsRuntime, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider) => throw null; } - - public class ProtectedSessionStorage : Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedBrowserStorage + public sealed class ProtectedSessionStorage : Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedBrowserStorage { - public ProtectedSessionStorage(Microsoft.JSInterop.IJSRuntime jsRuntime, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider) : base(default(string), default(Microsoft.JSInterop.IJSRuntime), default(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider)) => throw null; + public ProtectedSessionStorage(Microsoft.JSInterop.IJSRuntime jsRuntime, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider) => throw null; } - + } + public abstract class RevalidatingServerAuthenticationStateProvider : Microsoft.AspNetCore.Components.Server.ServerAuthenticationStateProvider, System.IDisposable + { + public RevalidatingServerAuthenticationStateProvider(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + void System.IDisposable.Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + protected abstract System.TimeSpan RevalidationInterval { get; } + protected abstract System.Threading.Tasks.Task ValidateAuthenticationStateAsync(Microsoft.AspNetCore.Components.Authorization.AuthenticationState authenticationState, System.Threading.CancellationToken cancellationToken); + } + public class ServerAuthenticationStateProvider : Microsoft.AspNetCore.Components.Authorization.AuthenticationStateProvider, Microsoft.AspNetCore.Components.Authorization.IHostEnvironmentAuthenticationStateProvider + { + public ServerAuthenticationStateProvider() => throw null; + public override System.Threading.Tasks.Task GetAuthenticationStateAsync() => throw null; + public void SetAuthenticationState(System.Threading.Tasks.Task authenticationStateTask) => throw null; } } } @@ -115,22 +100,19 @@ namespace Microsoft { namespace DependencyInjection { - public static class ComponentServiceCollectionExtensions + public static partial class ComponentServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder AddServerSideBlazor(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure = default(System.Action)) => throw null; } - public interface IServerSideBlazorBuilder { Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - - public static class ServerSideBlazorBuilderExtensions + public static partial class ServerSideBlazorBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder AddCircuitOptions(this Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder builder, System.Action configure) => throw null; public static Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder AddHubOptions(this Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder builder, System.Action configure) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Web.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Web.cs index 49c2bd9fadd..53a5a16fbb3 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Web.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Web.cs @@ -1,256 +1,222 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Components.Web, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Components { - public class BindInputElementAttribute : System.Attribute + public sealed class BindInputElementAttribute : System.Attribute { - public BindInputElementAttribute(string type, string suffix, string valueAttribute, string changeAttribute, bool isInvariantCulture, string format) => throw null; public string ChangeAttribute { get => throw null; } + public BindInputElementAttribute(string type, string suffix, string valueAttribute, string changeAttribute, bool isInvariantCulture, string format) => throw null; public string Format { get => throw null; } public bool IsInvariantCulture { get => throw null; } public string Suffix { get => throw null; } public string Type { get => throw null; } public string ValueAttribute { get => throw null; } } - - public static class ElementReferenceExtensions + public static partial class ElementReferenceExtensions { public static System.Threading.Tasks.ValueTask FocusAsync(this Microsoft.AspNetCore.Components.ElementReference elementReference) => throw null; public static System.Threading.Tasks.ValueTask FocusAsync(this Microsoft.AspNetCore.Components.ElementReference elementReference, bool preventScroll) => throw null; } - - public class WebElementReferenceContext : Microsoft.AspNetCore.Components.ElementReferenceContext - { - public WebElementReferenceContext(Microsoft.JSInterop.IJSRuntime jsRuntime) => throw null; - } - namespace Forms { - public static class BrowserFileExtensions + public static partial class BrowserFileExtensions { public static System.Threading.Tasks.ValueTask RequestImageFileAsync(this Microsoft.AspNetCore.Components.Forms.IBrowserFile browserFile, string format, int maxWidth, int maxHeight) => throw null; } - - public static class EditContextFieldClassExtensions + public static partial class EditContextFieldClassExtensions { - public static string FieldCssClass(this Microsoft.AspNetCore.Components.Forms.EditContext editContext, Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; public static string FieldCssClass(this Microsoft.AspNetCore.Components.Forms.EditContext editContext, System.Linq.Expressions.Expression> accessor) => throw null; + public static string FieldCssClass(this Microsoft.AspNetCore.Components.Forms.EditContext editContext, in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; public static void SetFieldCssClassProvider(this Microsoft.AspNetCore.Components.Forms.EditContext editContext, Microsoft.AspNetCore.Components.Forms.FieldCssClassProvider fieldCssClassProvider) => throw null; } - public class EditForm : Microsoft.AspNetCore.Components.ComponentBase { - public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } + public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set { } } protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.Forms.EditContext EditContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } public EditForm() => throw null; - public object Model { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.EventCallback OnInvalidSubmit { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.Forms.EditContext EditContext { get => throw null; set { } } + public object Model { get => throw null; set { } } + public Microsoft.AspNetCore.Components.EventCallback OnInvalidSubmit { get => throw null; set { } } protected override void OnParametersSet() => throw null; - public Microsoft.AspNetCore.Components.EventCallback OnSubmit { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.EventCallback OnValidSubmit { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.EventCallback OnSubmit { get => throw null; set { } } + public Microsoft.AspNetCore.Components.EventCallback OnValidSubmit { get => throw null; set { } } } - public class FieldCssClassProvider { public FieldCssClassProvider() => throw null; - public virtual string GetFieldCssClass(Microsoft.AspNetCore.Components.Forms.EditContext editContext, Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; + public virtual string GetFieldCssClass(Microsoft.AspNetCore.Components.Forms.EditContext editContext, in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; } - public interface IBrowserFile { string ContentType { get; } System.DateTimeOffset LastModified { get; } string Name { get; } - System.IO.Stream OpenReadStream(System.Int64 maxAllowedSize = default(System.Int64), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Int64 Size { get; } + System.IO.Stream OpenReadStream(long maxAllowedSize = default(long), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + long Size { get; } } - - internal interface IInputFileJsCallbacks - { - } - public abstract class InputBase : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { - public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } + public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set { } } protected string CssClass { get => throw null; } - protected TValue CurrentValue { get => throw null; set => throw null; } - protected string CurrentValueAsString { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - void System.IDisposable.Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - protected Microsoft.AspNetCore.Components.Forms.EditContext EditContext { get => throw null; set => throw null; } - protected internal Microsoft.AspNetCore.Components.Forms.FieldIdentifier FieldIdentifier { get => throw null; set => throw null; } - protected virtual string FormatValueAsString(TValue value) => throw null; protected InputBase() => throw null; + protected TValue CurrentValue { get => throw null; set { } } + protected string CurrentValueAsString { get => throw null; set { } } + public string DisplayName { get => throw null; set { } } + protected virtual void Dispose(bool disposing) => throw null; + void System.IDisposable.Dispose() => throw null; + protected Microsoft.AspNetCore.Components.Forms.EditContext EditContext { get => throw null; set { } } + protected Microsoft.AspNetCore.Components.Forms.FieldIdentifier FieldIdentifier { get => throw null; set { } } + protected virtual string FormatValueAsString(TValue value) => throw null; public override System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; protected abstract bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage); - public TValue Value { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.EventCallback ValueChanged { get => throw null; set => throw null; } - public System.Linq.Expressions.Expression> ValueExpression { get => throw null; set => throw null; } + public TValue Value { get => throw null; set { } } + public Microsoft.AspNetCore.Components.EventCallback ValueChanged { get => throw null; set { } } + public System.Linq.Expressions.Expression> ValueExpression { get => throw null; set { } } } - public class InputCheckbox : Microsoft.AspNetCore.Components.Forms.InputBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set => throw null; } public InputCheckbox() => throw null; + public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set { } } protected override bool TryParseValueFromString(string value, out bool result, out string validationErrorMessage) => throw null; } - public class InputDate : Microsoft.AspNetCore.Components.Forms.InputBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set => throw null; } - protected override string FormatValueAsString(TValue value) => throw null; public InputDate() => throw null; + public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set { } } + protected override string FormatValueAsString(TValue value) => throw null; protected override void OnParametersSet() => throw null; - public string ParsingErrorMessage { get => throw null; set => throw null; } + public string ParsingErrorMessage { get => throw null; set { } } protected override bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage) => throw null; - public Microsoft.AspNetCore.Components.Forms.InputDateType Type { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.Forms.InputDateType Type { get => throw null; set { } } } - - public enum InputDateType : int + public enum InputDateType { Date = 0, DateTimeLocal = 1, Month = 2, Time = 3, } - public class InputFile : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { - public System.Collections.Generic.IDictionary AdditionalAttributes { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary AdditionalAttributes { get => throw null; set { } } protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - void System.IDisposable.Dispose() => throw null; - public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set => throw null; } public InputFile() => throw null; + void System.IDisposable.Dispose() => throw null; + public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set { } } protected override System.Threading.Tasks.Task OnAfterRenderAsync(bool firstRender) => throw null; - public Microsoft.AspNetCore.Components.EventCallback OnChange { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.EventCallback OnChange { get => throw null; set { } } protected override void OnInitialized() => throw null; } - - public class InputFileChangeEventArgs : System.EventArgs + public sealed class InputFileChangeEventArgs : System.EventArgs { + public InputFileChangeEventArgs(System.Collections.Generic.IReadOnlyList files) => throw null; public Microsoft.AspNetCore.Components.Forms.IBrowserFile File { get => throw null; } public int FileCount { get => throw null; } public System.Collections.Generic.IReadOnlyList GetMultipleFiles(int maximumFileCount = default(int)) => throw null; - public InputFileChangeEventArgs(System.Collections.Generic.IReadOnlyList files) => throw null; } - public class InputNumber : Microsoft.AspNetCore.Components.Forms.InputBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set => throw null; } - protected override string FormatValueAsString(TValue value) => throw null; public InputNumber() => throw null; - public string ParsingErrorMessage { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set { } } + protected override string FormatValueAsString(TValue value) => throw null; + public string ParsingErrorMessage { get => throw null; set { } } protected override bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage) => throw null; } - public class InputRadio : Microsoft.AspNetCore.Components.ComponentBase { - public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } + public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set { } } protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set => throw null; } public InputRadio() => throw null; - public string Name { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set { } } + public string Name { get => throw null; set { } } protected override void OnParametersSet() => throw null; - public TValue Value { get => throw null; set => throw null; } + public TValue Value { get => throw null; set { } } } - public class InputRadioGroup : Microsoft.AspNetCore.Components.Forms.InputBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } public InputRadioGroup() => throw null; - public string Name { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } protected override void OnParametersSet() => throw null; protected override bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage) => throw null; } - public class InputSelect : Microsoft.AspNetCore.Components.Forms.InputBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set => throw null; } - protected override string FormatValueAsString(TValue value) => throw null; + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } public InputSelect() => throw null; + public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set { } } + protected override string FormatValueAsString(TValue value) => throw null; protected override bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage) => throw null; } - public class InputText : Microsoft.AspNetCore.Components.Forms.InputBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set => throw null; } public InputText() => throw null; + public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set { } } protected override bool TryParseValueFromString(string value, out string result, out string validationErrorMessage) => throw null; } - public class InputTextArea : Microsoft.AspNetCore.Components.Forms.InputBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set => throw null; } public InputTextArea() => throw null; + public Microsoft.AspNetCore.Components.ElementReference? Element { get => throw null; set { } } protected override bool TryParseValueFromString(string value, out string result, out string validationErrorMessage) => throw null; } - public class RemoteBrowserFileStreamOptions { - public int MaxBufferSize { get => throw null; set => throw null; } - public int MaxSegmentSize { get => throw null; set => throw null; } public RemoteBrowserFileStreamOptions() => throw null; - public System.TimeSpan SegmentFetchTimeout { get => throw null; set => throw null; } + public int MaxBufferSize { get => throw null; set { } } + public int MaxSegmentSize { get => throw null; set { } } + public System.TimeSpan SegmentFetchTimeout { get => throw null; set { } } } - public class ValidationMessage : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { - public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } + public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set { } } protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - void System.IDisposable.Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public System.Linq.Expressions.Expression> For { get => throw null; set => throw null; } - protected override void OnParametersSet() => throw null; public ValidationMessage() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + void System.IDisposable.Dispose() => throw null; + public System.Linq.Expressions.Expression> For { get => throw null; set { } } + protected override void OnParametersSet() => throw null; } - public class ValidationSummary : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { - public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } + public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set { } } protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - void System.IDisposable.Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public object Model { get => throw null; set => throw null; } - protected override void OnParametersSet() => throw null; public ValidationSummary() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + void System.IDisposable.Dispose() => throw null; + public object Model { get => throw null; set { } } + protected override void OnParametersSet() => throw null; } - } namespace RenderTree { - public class WebEventDescriptor + public sealed class WebEventDescriptor { - public Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo EventFieldInfo { get => throw null; set => throw null; } - public System.UInt64 EventHandlerId { get => throw null; set => throw null; } - public string EventName { get => throw null; set => throw null; } public WebEventDescriptor() => throw null; + public Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo EventFieldInfo { get => throw null; set { } } + public ulong EventHandlerId { get => throw null; set { } } + public string EventName { get => throw null; set { } } } - public abstract class WebRenderer : Microsoft.AspNetCore.Components.RenderTree.Renderer { - protected internal int AddRootComponent(System.Type componentType, string domElementSelector) => throw null; + protected int AddRootComponent(System.Type componentType, string domElementSelector) => throw null; protected abstract void AttachRootComponentToBrowser(int componentId, string domElementSelector); - protected override void Dispose(bool disposing) => throw null; - protected int RendererId { get => throw null; set => throw null; } public WebRenderer(System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Text.Json.JsonSerializerOptions jsonOptions, Microsoft.AspNetCore.Components.Web.Infrastructure.JSComponentInterop jsComponentInterop) : base(default(System.IServiceProvider), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected int RendererId { get => throw null; set { } } } - } namespace Routing { @@ -259,335 +225,297 @@ namespace Microsoft public FocusOnNavigate() => throw null; protected override System.Threading.Tasks.Task OnAfterRenderAsync(bool firstRender) => throw null; protected override void OnParametersSet() => throw null; - public Microsoft.AspNetCore.Components.RouteData RouteData { get => throw null; set => throw null; } - public string Selector { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RouteData RouteData { get => throw null; set { } } + public string Selector { get => throw null; set { } } + } + public sealed class NavigationLock : Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleAfterRender, System.IAsyncDisposable + { + void Microsoft.AspNetCore.Components.IComponent.Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; + public bool ConfirmExternalNavigation { get => throw null; set { } } + public NavigationLock() => throw null; + System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; + System.Threading.Tasks.Task Microsoft.AspNetCore.Components.IHandleAfterRender.OnAfterRenderAsync() => throw null; + public Microsoft.AspNetCore.Components.EventCallback OnBeforeInternalNavigation { get => throw null; set { } } + System.Threading.Tasks.Task Microsoft.AspNetCore.Components.IComponent.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; } - public class NavLink : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { - public string ActiveClass { get => throw null; set => throw null; } - public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } + public string ActiveClass { get => throw null; set { } } + public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set { } } protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } - protected string CssClass { get => throw null; set => throw null; } - public void Dispose() => throw null; - public Microsoft.AspNetCore.Components.Routing.NavLinkMatch Match { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } + protected string CssClass { get => throw null; set { } } public NavLink() => throw null; + public void Dispose() => throw null; + public Microsoft.AspNetCore.Components.Routing.NavLinkMatch Match { get => throw null; set { } } protected override void OnInitialized() => throw null; protected override void OnParametersSet() => throw null; } - - public enum NavLinkMatch : int + public enum NavLinkMatch { - All = 1, Prefix = 0, + All = 1, } - - public class NavigationLock : Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleAfterRender, System.IAsyncDisposable - { - void Microsoft.AspNetCore.Components.IComponent.Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; - public bool ConfirmExternalNavigation { get => throw null; set => throw null; } - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - public NavigationLock() => throw null; - System.Threading.Tasks.Task Microsoft.AspNetCore.Components.IHandleAfterRender.OnAfterRenderAsync() => throw null; - public Microsoft.AspNetCore.Components.EventCallback OnBeforeInternalNavigation { get => throw null; set => throw null; } - System.Threading.Tasks.Task Microsoft.AspNetCore.Components.IComponent.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; - } - } namespace Web { public static class BindAttributes { } - public class ClipboardEventArgs : System.EventArgs { public ClipboardEventArgs() => throw null; - public string Type { get => throw null; set => throw null; } + public string Type { get => throw null; set { } } } - public class DataTransfer { public DataTransfer() => throw null; - public string DropEffect { get => throw null; set => throw null; } - public string EffectAllowed { get => throw null; set => throw null; } - public string[] Files { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.Web.DataTransferItem[] Items { get => throw null; set => throw null; } - public string[] Types { get => throw null; set => throw null; } + public string DropEffect { get => throw null; set { } } + public string EffectAllowed { get => throw null; set { } } + public string[] Files { get => throw null; set { } } + public Microsoft.AspNetCore.Components.Web.DataTransferItem[] Items { get => throw null; set { } } + public string[] Types { get => throw null; set { } } } - public class DataTransferItem { public DataTransferItem() => throw null; - public string Kind { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } + public string Kind { get => throw null; set { } } + public string Type { get => throw null; set { } } } - public class DragEventArgs : Microsoft.AspNetCore.Components.Web.MouseEventArgs { - public Microsoft.AspNetCore.Components.Web.DataTransfer DataTransfer { get => throw null; set => throw null; } public DragEventArgs() => throw null; + public Microsoft.AspNetCore.Components.Web.DataTransfer DataTransfer { get => throw null; set { } } } - public class ErrorBoundary : Microsoft.AspNetCore.Components.ErrorBoundaryBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; public ErrorBoundary() => throw null; protected override System.Threading.Tasks.Task OnErrorAsync(System.Exception exception) => throw null; } - public class ErrorEventArgs : System.EventArgs { - public int Colno { get => throw null; set => throw null; } + public int Colno { get => throw null; set { } } public ErrorEventArgs() => throw null; - public string Filename { get => throw null; set => throw null; } - public int Lineno { get => throw null; set => throw null; } - public string Message { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } + public string Filename { get => throw null; set { } } + public int Lineno { get => throw null; set { } } + public string Message { get => throw null; set { } } + public string Type { get => throw null; set { } } } - public static class EventHandlers { } - public class FocusEventArgs : System.EventArgs { public FocusEventArgs() => throw null; - public string Type { get => throw null; set => throw null; } + public string Type { get => throw null; set { } } } - - public class HeadContent : Microsoft.AspNetCore.Components.ComponentBase + public sealed class HeadContent : Microsoft.AspNetCore.Components.ComponentBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } public HeadContent() => throw null; } - - public class HeadOutlet : Microsoft.AspNetCore.Components.ComponentBase + public sealed class HeadOutlet : Microsoft.AspNetCore.Components.ComponentBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; public HeadOutlet() => throw null; protected override System.Threading.Tasks.Task OnAfterRenderAsync(bool firstRender) => throw null; } - public interface IErrorBoundaryLogger { System.Threading.Tasks.ValueTask LogErrorAsync(System.Exception exception); } - public interface IJSComponentConfiguration { Microsoft.AspNetCore.Components.Web.JSComponentConfigurationStore JSComponents { get; } } - - public static class JSComponentConfigurationExtensions - { - public static void RegisterForJavaScript(this Microsoft.AspNetCore.Components.Web.IJSComponentConfiguration configuration, System.Type componentType, string identifier) => throw null; - public static void RegisterForJavaScript(this Microsoft.AspNetCore.Components.Web.IJSComponentConfiguration configuration, System.Type componentType, string identifier, string javaScriptInitializer) => throw null; - public static void RegisterForJavaScript(this Microsoft.AspNetCore.Components.Web.IJSComponentConfiguration configuration, string identifier) where TComponent : Microsoft.AspNetCore.Components.IComponent => throw null; - public static void RegisterForJavaScript(this Microsoft.AspNetCore.Components.Web.IJSComponentConfiguration configuration, string identifier, string javaScriptInitializer) where TComponent : Microsoft.AspNetCore.Components.IComponent => throw null; - } - - public class JSComponentConfigurationStore - { - public JSComponentConfigurationStore() => throw null; - } - - public class KeyboardEventArgs : System.EventArgs - { - public bool AltKey { get => throw null; set => throw null; } - public string Code { get => throw null; set => throw null; } - public bool CtrlKey { get => throw null; set => throw null; } - public string Key { get => throw null; set => throw null; } - public KeyboardEventArgs() => throw null; - public float Location { get => throw null; set => throw null; } - public bool MetaKey { get => throw null; set => throw null; } - public bool Repeat { get => throw null; set => throw null; } - public bool ShiftKey { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - } - - public class MouseEventArgs : System.EventArgs - { - public bool AltKey { get => throw null; set => throw null; } - public System.Int64 Button { get => throw null; set => throw null; } - public System.Int64 Buttons { get => throw null; set => throw null; } - public double ClientX { get => throw null; set => throw null; } - public double ClientY { get => throw null; set => throw null; } - public bool CtrlKey { get => throw null; set => throw null; } - public System.Int64 Detail { get => throw null; set => throw null; } - public bool MetaKey { get => throw null; set => throw null; } - public MouseEventArgs() => throw null; - public double MovementX { get => throw null; set => throw null; } - public double MovementY { get => throw null; set => throw null; } - public double OffsetX { get => throw null; set => throw null; } - public double OffsetY { get => throw null; set => throw null; } - public double PageX { get => throw null; set => throw null; } - public double PageY { get => throw null; set => throw null; } - public double ScreenX { get => throw null; set => throw null; } - public double ScreenY { get => throw null; set => throw null; } - public bool ShiftKey { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - } - - public class PageTitle : Microsoft.AspNetCore.Components.ComponentBase - { - protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } - public PageTitle() => throw null; - } - - public class PointerEventArgs : Microsoft.AspNetCore.Components.Web.MouseEventArgs - { - public float Height { get => throw null; set => throw null; } - public bool IsPrimary { get => throw null; set => throw null; } - public PointerEventArgs() => throw null; - public System.Int64 PointerId { get => throw null; set => throw null; } - public string PointerType { get => throw null; set => throw null; } - public float Pressure { get => throw null; set => throw null; } - public float TiltX { get => throw null; set => throw null; } - public float TiltY { get => throw null; set => throw null; } - public float Width { get => throw null; set => throw null; } - } - - public class ProgressEventArgs : System.EventArgs - { - public bool LengthComputable { get => throw null; set => throw null; } - public System.Int64 Loaded { get => throw null; set => throw null; } - public ProgressEventArgs() => throw null; - public System.Int64 Total { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - } - - public class TouchEventArgs : System.EventArgs - { - public bool AltKey { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.Web.TouchPoint[] ChangedTouches { get => throw null; set => throw null; } - public bool CtrlKey { get => throw null; set => throw null; } - public System.Int64 Detail { get => throw null; set => throw null; } - public bool MetaKey { get => throw null; set => throw null; } - public bool ShiftKey { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.Web.TouchPoint[] TargetTouches { get => throw null; set => throw null; } - public TouchEventArgs() => throw null; - public Microsoft.AspNetCore.Components.Web.TouchPoint[] Touches { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - } - - public class TouchPoint - { - public double ClientX { get => throw null; set => throw null; } - public double ClientY { get => throw null; set => throw null; } - public System.Int64 Identifier { get => throw null; set => throw null; } - public double PageX { get => throw null; set => throw null; } - public double PageY { get => throw null; set => throw null; } - public double ScreenX { get => throw null; set => throw null; } - public double ScreenY { get => throw null; set => throw null; } - public TouchPoint() => throw null; - } - - public static class WebEventCallbackFactoryEventArgsExtensions - { - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; - } - - public static class WebRenderTreeBuilderExtensions - { - public static void AddEventPreventDefaultAttribute(this Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder, int sequence, string eventName, bool value) => throw null; - public static void AddEventStopPropagationAttribute(this Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder, int sequence, string eventName, bool value) => throw null; - } - - public class WheelEventArgs : Microsoft.AspNetCore.Components.Web.MouseEventArgs - { - public System.Int64 DeltaMode { get => throw null; set => throw null; } - public double DeltaX { get => throw null; set => throw null; } - public double DeltaY { get => throw null; set => throw null; } - public double DeltaZ { get => throw null; set => throw null; } - public WheelEventArgs() => throw null; - } - namespace Infrastructure { public class JSComponentInterop { - protected internal virtual int AddRootComponent(string identifier, string domElementSelector) => throw null; + protected virtual int AddRootComponent(string identifier, string domElementSelector) => throw null; public JSComponentInterop(Microsoft.AspNetCore.Components.Web.JSComponentConfigurationStore configuration) => throw null; - protected internal virtual void RemoveRootComponent(int componentId) => throw null; - protected internal void SetRootComponentParameters(int componentId, int parameterCount, System.Text.Json.JsonElement parametersJson, System.Text.Json.JsonSerializerOptions jsonOptions) => throw null; + protected virtual void RemoveRootComponent(int componentId) => throw null; + protected void SetRootComponentParameters(int componentId, int parameterCount, System.Text.Json.JsonElement parametersJson, System.Text.Json.JsonSerializerOptions jsonOptions) => throw null; } - + } + public static partial class JSComponentConfigurationExtensions + { + public static void RegisterForJavaScript(this Microsoft.AspNetCore.Components.Web.IJSComponentConfiguration configuration, string identifier) where TComponent : Microsoft.AspNetCore.Components.IComponent => throw null; + public static void RegisterForJavaScript(this Microsoft.AspNetCore.Components.Web.IJSComponentConfiguration configuration, string identifier, string javaScriptInitializer) where TComponent : Microsoft.AspNetCore.Components.IComponent => throw null; + public static void RegisterForJavaScript(this Microsoft.AspNetCore.Components.Web.IJSComponentConfiguration configuration, System.Type componentType, string identifier) => throw null; + public static void RegisterForJavaScript(this Microsoft.AspNetCore.Components.Web.IJSComponentConfiguration configuration, System.Type componentType, string identifier, string javaScriptInitializer) => throw null; + } + public sealed class JSComponentConfigurationStore + { + public JSComponentConfigurationStore() => throw null; + } + public class KeyboardEventArgs : System.EventArgs + { + public bool AltKey { get => throw null; set { } } + public string Code { get => throw null; set { } } + public KeyboardEventArgs() => throw null; + public bool CtrlKey { get => throw null; set { } } + public string Key { get => throw null; set { } } + public float Location { get => throw null; set { } } + public bool MetaKey { get => throw null; set { } } + public bool Repeat { get => throw null; set { } } + public bool ShiftKey { get => throw null; set { } } + public string Type { get => throw null; set { } } + } + public class MouseEventArgs : System.EventArgs + { + public bool AltKey { get => throw null; set { } } + public long Button { get => throw null; set { } } + public long Buttons { get => throw null; set { } } + public double ClientX { get => throw null; set { } } + public double ClientY { get => throw null; set { } } + public MouseEventArgs() => throw null; + public bool CtrlKey { get => throw null; set { } } + public long Detail { get => throw null; set { } } + public bool MetaKey { get => throw null; set { } } + public double MovementX { get => throw null; set { } } + public double MovementY { get => throw null; set { } } + public double OffsetX { get => throw null; set { } } + public double OffsetY { get => throw null; set { } } + public double PageX { get => throw null; set { } } + public double PageY { get => throw null; set { } } + public double ScreenX { get => throw null; set { } } + public double ScreenY { get => throw null; set { } } + public bool ShiftKey { get => throw null; set { } } + public string Type { get => throw null; set { } } + } + public sealed class PageTitle : Microsoft.AspNetCore.Components.ComponentBase + { + protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } + public PageTitle() => throw null; + } + public class PointerEventArgs : Microsoft.AspNetCore.Components.Web.MouseEventArgs + { + public PointerEventArgs() => throw null; + public float Height { get => throw null; set { } } + public bool IsPrimary { get => throw null; set { } } + public long PointerId { get => throw null; set { } } + public string PointerType { get => throw null; set { } } + public float Pressure { get => throw null; set { } } + public float TiltX { get => throw null; set { } } + public float TiltY { get => throw null; set { } } + public float Width { get => throw null; set { } } + } + public class ProgressEventArgs : System.EventArgs + { + public ProgressEventArgs() => throw null; + public bool LengthComputable { get => throw null; set { } } + public long Loaded { get => throw null; set { } } + public long Total { get => throw null; set { } } + public string Type { get => throw null; set { } } + } + public class TouchEventArgs : System.EventArgs + { + public bool AltKey { get => throw null; set { } } + public Microsoft.AspNetCore.Components.Web.TouchPoint[] ChangedTouches { get => throw null; set { } } + public TouchEventArgs() => throw null; + public bool CtrlKey { get => throw null; set { } } + public long Detail { get => throw null; set { } } + public bool MetaKey { get => throw null; set { } } + public bool ShiftKey { get => throw null; set { } } + public Microsoft.AspNetCore.Components.Web.TouchPoint[] TargetTouches { get => throw null; set { } } + public Microsoft.AspNetCore.Components.Web.TouchPoint[] Touches { get => throw null; set { } } + public string Type { get => throw null; set { } } + } + public class TouchPoint + { + public double ClientX { get => throw null; set { } } + public double ClientY { get => throw null; set { } } + public TouchPoint() => throw null; + public long Identifier { get => throw null; set { } } + public double PageX { get => throw null; set { } } + public double PageY { get => throw null; set { } } + public double ScreenX { get => throw null; set { } } + public double ScreenY { get => throw null; set { } } } namespace Virtualization { - internal interface IVirtualizeJsCallbacks - { - } - public delegate System.Threading.Tasks.ValueTask> ItemsProviderDelegate(Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest request); - public struct ItemsProviderRequest { public System.Threading.CancellationToken CancellationToken { get => throw null; } public int Count { get => throw null; } - // Stub generator skipped constructor public ItemsProviderRequest(int startIndex, int count, System.Threading.CancellationToken cancellationToken) => throw null; public int StartIndex { get => throw null; } } - public struct ItemsProviderResult { - public System.Collections.Generic.IEnumerable Items { get => throw null; } - // Stub generator skipped constructor public ItemsProviderResult(System.Collections.Generic.IEnumerable items, int totalItemCount) => throw null; + public System.Collections.Generic.IEnumerable Items { get => throw null; } public int TotalItemCount { get => throw null; } } - public struct PlaceholderContext { - public int Index { get => throw null; } - // Stub generator skipped constructor public PlaceholderContext(int index, float size = default(float)) => throw null; + public int Index { get => throw null; } public float Size { get => throw null; } } - - public class Virtualize : Microsoft.AspNetCore.Components.ComponentBase, System.IAsyncDisposable + public sealed class Virtualize : Microsoft.AspNetCore.Components.ComponentBase, System.IAsyncDisposable { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } + public Virtualize() => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ItemContent { get => throw null; set => throw null; } - public float ItemSize { get => throw null; set => throw null; } - public System.Collections.Generic.ICollection Items { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate ItemsProvider { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment ItemContent { get => throw null; set { } } + public System.Collections.Generic.ICollection Items { get => throw null; set { } } + public float ItemSize { get => throw null; set { } } + public Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate ItemsProvider { get => throw null; set { } } protected override System.Threading.Tasks.Task OnAfterRenderAsync(bool firstRender) => throw null; protected override void OnParametersSet() => throw null; - public int OverscanCount { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.RenderFragment Placeholder { get => throw null; set => throw null; } + public int OverscanCount { get => throw null; set { } } + public Microsoft.AspNetCore.Components.RenderFragment Placeholder { get => throw null; set { } } public System.Threading.Tasks.Task RefreshDataAsync() => throw null; - public string SpacerElement { get => throw null; set => throw null; } - public Virtualize() => throw null; + public string SpacerElement { get => throw null; set { } } } - } + public static partial class WebEventCallbackFactoryEventArgsExtensions + { + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + } + public static partial class WebRenderTreeBuilderExtensions + { + public static void AddEventPreventDefaultAttribute(this Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder, int sequence, string eventName, bool value) => throw null; + public static void AddEventStopPropagationAttribute(this Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder, int sequence, string eventName, bool value) => throw null; + } + public class WheelEventArgs : Microsoft.AspNetCore.Components.Web.MouseEventArgs + { + public WheelEventArgs() => throw null; + public long DeltaMode { get => throw null; set { } } + public double DeltaX { get => throw null; set { } } + public double DeltaY { get => throw null; set { } } + public double DeltaZ { get => throw null; set { } } + } + } + public class WebElementReferenceContext : Microsoft.AspNetCore.Components.ElementReferenceContext + { + public WebElementReferenceContext(Microsoft.JSInterop.IJSRuntime jsRuntime) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs index d9424fa5b1e..a929d37089b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Components, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,10 +8,21 @@ namespace Microsoft { public static class BindConverter { - public static string FormatValue(System.DateOnly value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(System.DateOnly value, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(System.DateOnly? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(System.DateOnly? value, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(string value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static bool FormatValue(bool value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static bool? FormatValue(bool? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(int value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(int? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(long value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(long? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(short value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(short? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(float value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(float? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(double value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(double? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(decimal value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(decimal? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static string FormatValue(System.DateTime value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static string FormatValue(System.DateTime value, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static string FormatValue(System.DateTime? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; @@ -21,25 +31,14 @@ namespace Microsoft public static string FormatValue(System.DateTimeOffset value, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static string FormatValue(System.DateTimeOffset? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static string FormatValue(System.DateTimeOffset? value, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(System.DateOnly value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(System.DateOnly value, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(System.DateOnly? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static string FormatValue(System.DateOnly? value, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static string FormatValue(System.TimeOnly value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static string FormatValue(System.TimeOnly value, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static string FormatValue(System.TimeOnly? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static string FormatValue(System.TimeOnly? value, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static bool FormatValue(bool value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static bool? FormatValue(bool? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(System.Decimal value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(System.Decimal? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(double value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(double? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(float value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(float? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(int value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(int? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(System.Int64 value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(System.Int64? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(System.Int16 value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(System.Int16? value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static string FormatValue(string value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static object FormatValue(T value, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static bool TryConvertTo(object obj, System.Globalization.CultureInfo culture, out T value) => throw null; public static bool TryConvertToBool(object obj, System.Globalization.CultureInfo culture, out bool value) => throw null; @@ -49,11 +48,11 @@ namespace Microsoft public static bool TryConvertToDateTime(object obj, System.Globalization.CultureInfo culture, string format, out System.DateTime value) => throw null; public static bool TryConvertToDateTimeOffset(object obj, System.Globalization.CultureInfo culture, out System.DateTimeOffset value) => throw null; public static bool TryConvertToDateTimeOffset(object obj, System.Globalization.CultureInfo culture, string format, out System.DateTimeOffset value) => throw null; - public static bool TryConvertToDecimal(object obj, System.Globalization.CultureInfo culture, out System.Decimal value) => throw null; + public static bool TryConvertToDecimal(object obj, System.Globalization.CultureInfo culture, out decimal value) => throw null; public static bool TryConvertToDouble(object obj, System.Globalization.CultureInfo culture, out double value) => throw null; public static bool TryConvertToFloat(object obj, System.Globalization.CultureInfo culture, out float value) => throw null; public static bool TryConvertToInt(object obj, System.Globalization.CultureInfo culture, out int value) => throw null; - public static bool TryConvertToLong(object obj, System.Globalization.CultureInfo culture, out System.Int64 value) => throw null; + public static bool TryConvertToLong(object obj, System.Globalization.CultureInfo culture, out long value) => throw null; public static bool TryConvertToNullableBool(object obj, System.Globalization.CultureInfo culture, out bool? value) => throw null; public static bool TryConvertToNullableDateOnly(object obj, System.Globalization.CultureInfo culture, out System.DateOnly? value) => throw null; public static bool TryConvertToNullableDateOnly(object obj, System.Globalization.CultureInfo culture, string format, out System.DateOnly? value) => throw null; @@ -61,59 +60,68 @@ namespace Microsoft public static bool TryConvertToNullableDateTime(object obj, System.Globalization.CultureInfo culture, string format, out System.DateTime? value) => throw null; public static bool TryConvertToNullableDateTimeOffset(object obj, System.Globalization.CultureInfo culture, out System.DateTimeOffset? value) => throw null; public static bool TryConvertToNullableDateTimeOffset(object obj, System.Globalization.CultureInfo culture, string format, out System.DateTimeOffset? value) => throw null; - public static bool TryConvertToNullableDecimal(object obj, System.Globalization.CultureInfo culture, out System.Decimal? value) => throw null; + public static bool TryConvertToNullableDecimal(object obj, System.Globalization.CultureInfo culture, out decimal? value) => throw null; public static bool TryConvertToNullableDouble(object obj, System.Globalization.CultureInfo culture, out double? value) => throw null; public static bool TryConvertToNullableFloat(object obj, System.Globalization.CultureInfo culture, out float? value) => throw null; public static bool TryConvertToNullableInt(object obj, System.Globalization.CultureInfo culture, out int? value) => throw null; - public static bool TryConvertToNullableLong(object obj, System.Globalization.CultureInfo culture, out System.Int64? value) => throw null; - public static bool TryConvertToNullableShort(object obj, System.Globalization.CultureInfo culture, out System.Int16? value) => throw null; + public static bool TryConvertToNullableLong(object obj, System.Globalization.CultureInfo culture, out long? value) => throw null; + public static bool TryConvertToNullableShort(object obj, System.Globalization.CultureInfo culture, out short? value) => throw null; public static bool TryConvertToNullableTimeOnly(object obj, System.Globalization.CultureInfo culture, out System.TimeOnly? value) => throw null; public static bool TryConvertToNullableTimeOnly(object obj, System.Globalization.CultureInfo culture, string format, out System.TimeOnly? value) => throw null; - public static bool TryConvertToShort(object obj, System.Globalization.CultureInfo culture, out System.Int16 value) => throw null; + public static bool TryConvertToShort(object obj, System.Globalization.CultureInfo culture, out short value) => throw null; public static bool TryConvertToString(object obj, System.Globalization.CultureInfo culture, out string value) => throw null; public static bool TryConvertToTimeOnly(object obj, System.Globalization.CultureInfo culture, out System.TimeOnly value) => throw null; public static bool TryConvertToTimeOnly(object obj, System.Globalization.CultureInfo culture, string format, out System.TimeOnly value) => throw null; } - - public class BindElementAttribute : System.Attribute + public sealed class BindElementAttribute : System.Attribute { - public BindElementAttribute(string element, string suffix, string valueAttribute, string changeAttribute) => throw null; public string ChangeAttribute { get => throw null; } + public BindElementAttribute(string element, string suffix, string valueAttribute, string changeAttribute) => throw null; public string Element { get => throw null; } public string Suffix { get => throw null; } public string ValueAttribute { get => throw null; } } - - public class CascadingParameterAttribute : System.Attribute + public sealed class CascadingParameterAttribute : System.Attribute { public CascadingParameterAttribute() => throw null; - public string Name { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } } - - public class CascadingTypeParameterAttribute : System.Attribute + public sealed class CascadingTypeParameterAttribute : System.Attribute { public CascadingTypeParameterAttribute(string name) => throw null; public string Name { get => throw null; } } - public class CascadingValue : Microsoft.AspNetCore.Components.IComponent { public void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } public CascadingValue() => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } - public bool IsFixed { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } + public bool IsFixed { get => throw null; set { } } + public string Name { get => throw null; set { } } public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; - public TValue Value { get => throw null; set => throw null; } + public TValue Value { get => throw null; set { } } } - public class ChangeEventArgs : System.EventArgs { public ChangeEventArgs() => throw null; - public object Value { get => throw null; set => throw null; } + public object Value { get => throw null; set { } } } - - public abstract class ComponentBase : Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleAfterRender, Microsoft.AspNetCore.Components.IHandleEvent + namespace CompilerServices + { + public static class RuntimeHelpers + { + public static System.Func CreateInferredBindSetter(System.Func callback, T value) => throw null; + public static System.Func CreateInferredBindSetter(System.Action callback, T value) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateInferredEventCallback(object receiver, System.Action callback, T value) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateInferredEventCallback(object receiver, System.Func callback, T value) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateInferredEventCallback(object receiver, Microsoft.AspNetCore.Components.EventCallback callback, T value) => throw null; + public static System.Threading.Tasks.Task InvokeAsynchronousDelegate(System.Action callback) => throw null; + public static System.Threading.Tasks.Task InvokeAsynchronousDelegate(System.Func callback) => throw null; + public static void InvokeSynchronousDelegate(System.Action callback) => throw null; + public static T TypeCheck(T value) => throw null; + } + } + public abstract class ComponentBase : Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleEvent, Microsoft.AspNetCore.Components.IHandleAfterRender { void Microsoft.AspNetCore.Components.IComponent.Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; protected virtual void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; @@ -122,8 +130,8 @@ namespace Microsoft protected System.Threading.Tasks.Task InvokeAsync(System.Action workItem) => throw null; protected System.Threading.Tasks.Task InvokeAsync(System.Func workItem) => throw null; protected virtual void OnAfterRender(bool firstRender) => throw null; - System.Threading.Tasks.Task Microsoft.AspNetCore.Components.IHandleAfterRender.OnAfterRenderAsync() => throw null; protected virtual System.Threading.Tasks.Task OnAfterRenderAsync(bool firstRender) => throw null; + System.Threading.Tasks.Task Microsoft.AspNetCore.Components.IHandleAfterRender.OnAfterRenderAsync() => throw null; protected virtual void OnInitialized() => throw null; protected virtual System.Threading.Tasks.Task OnInitializedAsync() => throw null; protected virtual void OnParametersSet() => throw null; @@ -132,7 +140,6 @@ namespace Microsoft protected virtual bool ShouldRender() => throw null; protected void StateHasChanged() => throw null; } - public abstract class Dispatcher { public void AssertAccess() => throw null; @@ -145,446 +152,180 @@ namespace Microsoft public abstract System.Threading.Tasks.Task InvokeAsync(System.Func> workItem); protected void OnUnhandledException(System.UnhandledExceptionEventArgs e) => throw null; } - public class DynamicComponent : Microsoft.AspNetCore.Components.IComponent { public void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; public DynamicComponent() => throw null; public object Instance { get => throw null; } - public System.Collections.Generic.IDictionary Parameters { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Parameters { get => throw null; set { } } public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; - public System.Type Type { get => throw null; set => throw null; } + public System.Type Type { get => throw null; set { } } } - - public class EditorRequiredAttribute : System.Attribute + public sealed class EditorRequiredAttribute : System.Attribute { public EditorRequiredAttribute() => throw null; } - public struct ElementReference { public Microsoft.AspNetCore.Components.ElementReferenceContext Context { get => throw null; } - // Stub generator skipped constructor - public ElementReference(string id) => throw null; public ElementReference(string id, Microsoft.AspNetCore.Components.ElementReferenceContext context) => throw null; + public ElementReference(string id) => throw null; public string Id { get => throw null; } } - public abstract class ElementReferenceContext { protected ElementReferenceContext() => throw null; } - public abstract class ErrorBoundaryBase : Microsoft.AspNetCore.Components.ComponentBase { - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } - protected System.Exception CurrentException { get => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } protected ErrorBoundaryBase() => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ErrorContent { get => throw null; set => throw null; } - public int MaximumErrorCount { get => throw null; set => throw null; } + protected System.Exception CurrentException { get => throw null; } + public Microsoft.AspNetCore.Components.RenderFragment ErrorContent { get => throw null; set { } } + public int MaximumErrorCount { get => throw null; set { } } protected abstract System.Threading.Tasks.Task OnErrorAsync(System.Exception exception); public void Recover() => throw null; } - public struct EventCallback { - public static Microsoft.AspNetCore.Components.EventCallback Empty; - // Stub generator skipped constructor public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Empty; public static Microsoft.AspNetCore.Components.EventCallbackFactory Factory; public bool HasDelegate { get => throw null; } - public System.Threading.Tasks.Task InvokeAsync() => throw null; public System.Threading.Tasks.Task InvokeAsync(object arg) => throw null; + public System.Threading.Tasks.Task InvokeAsync() => throw null; } - public struct EventCallback { - public static Microsoft.AspNetCore.Components.EventCallback Empty; - // Stub generator skipped constructor public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Empty; public bool HasDelegate { get => throw null; } - public System.Threading.Tasks.Task InvokeAsync() => throw null; public System.Threading.Tasks.Task InvokeAsync(TValue arg) => throw null; + public System.Threading.Tasks.Task InvokeAsync() => throw null; } - - public class EventCallbackFactory + public sealed class EventCallbackFactory { + public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, Microsoft.AspNetCore.Components.EventCallback callback) => throw null; public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Action callback) => throw null; public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Action callback) => throw null; - public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, Microsoft.AspNetCore.Components.EventCallback callback) => throw null; public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Func callback) => throw null; public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Func callback) => throw null; - public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Action callback) => throw null; - public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Action callback) => throw null; public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, Microsoft.AspNetCore.Components.EventCallback callback) => throw null; public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, Microsoft.AspNetCore.Components.EventCallback callback) => throw null; - public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Func callback) => throw null; + public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Action callback) => throw null; + public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Action callback) => throw null; public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Func callback) => throw null; + public Microsoft.AspNetCore.Components.EventCallback Create(object receiver, System.Func callback) => throw null; public Microsoft.AspNetCore.Components.EventCallback CreateInferred(object receiver, System.Action callback, TValue value) => throw null; public Microsoft.AspNetCore.Components.EventCallback CreateInferred(object receiver, System.Func callback, TValue value) => throw null; public EventCallbackFactory() => throw null; } - - public static class EventCallbackFactoryBinderExtensions + public static partial class EventCallbackFactoryBinderExtensions { - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateOnly existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateOnly existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateOnly? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateOnly? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTime existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTime existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTime? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTime? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTimeOffset existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTimeOffset existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTimeOffset? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTimeOffset? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.TimeOnly existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.TimeOnly existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.TimeOnly? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.TimeOnly? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, bool existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, bool? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.Decimal existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.Decimal? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, double existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, double? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, float existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, float? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, int existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, int? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.Int64 existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.Int64? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.Int16 existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.Int16? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, string existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateOnly existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateOnly existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateOnly? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateOnly? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTime existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTime existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTime? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTime? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTimeOffset existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTimeOffset existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTimeOffset? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTimeOffset? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.TimeOnly existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.TimeOnly existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.TimeOnly? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.TimeOnly? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, bool existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, bool? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.Decimal existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.Decimal? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, double existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, double? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, float existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, float? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, int existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, int? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.Int64 existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.Int64? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.Int16 existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.Int16? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, string existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, bool existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, bool existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, bool? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, bool? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, int existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, int existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, int? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, int? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, long existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, long existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, short existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, short existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, long? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, long? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, short? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, short? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, float existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, float existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, float? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, float? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, double existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, double existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, double? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, double? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, decimal existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, decimal existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, decimal? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, decimal? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTime existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTime existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTime existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTime existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTime? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTime? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTime? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTime? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTimeOffset existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTimeOffset existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTimeOffset existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTimeOffset existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTimeOffset? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTimeOffset? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateTimeOffset? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateTimeOffset? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateOnly existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateOnly existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateOnly existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateOnly existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateOnly? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateOnly? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.DateOnly? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.DateOnly? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.TimeOnly existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.TimeOnly existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.TimeOnly existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.TimeOnly existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.TimeOnly? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.TimeOnly? existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, System.TimeOnly? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, System.TimeOnly? existingValue, string format, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action setter, T existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; public static Microsoft.AspNetCore.Components.EventCallback CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func setter, T existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; } - - public static class EventCallbackFactoryEventArgsExtensions + public static partial class EventCallbackFactoryEventArgsExtensions { - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Action callback) => throw null; + public static Microsoft.AspNetCore.Components.EventCallback Create(this Microsoft.AspNetCore.Components.EventCallbackFactory factory, object receiver, System.Func callback) => throw null; } - public struct EventCallbackWorkItem { - public static Microsoft.AspNetCore.Components.EventCallbackWorkItem Empty; - // Stub generator skipped constructor public EventCallbackWorkItem(System.MulticastDelegate @delegate) => throw null; + public static Microsoft.AspNetCore.Components.EventCallbackWorkItem Empty; public System.Threading.Tasks.Task InvokeAsync(object arg) => throw null; } - - public class EventHandlerAttribute : System.Attribute + public sealed class EventHandlerAttribute : System.Attribute { public string AttributeName { get => throw null; } + public EventHandlerAttribute(string attributeName, System.Type eventArgsType) => throw null; + public EventHandlerAttribute(string attributeName, System.Type eventArgsType, bool enableStopPropagation, bool enablePreventDefault) => throw null; public bool EnablePreventDefault { get => throw null; } public bool EnableStopPropagation { get => throw null; } public System.Type EventArgsType { get => throw null; } - public EventHandlerAttribute(string attributeName, System.Type eventArgsType) => throw null; - public EventHandlerAttribute(string attributeName, System.Type eventArgsType, bool enableStopPropagation, bool enablePreventDefault) => throw null; } - - internal interface ICascadingValueComponent - { - } - public interface IComponent { void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle); System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters); } - public interface IComponentActivator { Microsoft.AspNetCore.Components.IComponent CreateInstance(System.Type componentType); } - - internal interface IErrorBoundary - { - } - - internal interface IEventCallback - { - bool HasDelegate { get; } - } - public interface IHandleAfterRender { System.Threading.Tasks.Task OnAfterRenderAsync(); } - public interface IHandleEvent { System.Threading.Tasks.Task HandleEventAsync(Microsoft.AspNetCore.Components.EventCallbackWorkItem item, object arg); } - - public interface IPersistentComponentStateStore - { - System.Threading.Tasks.Task> GetPersistedStateAsync(); - System.Threading.Tasks.Task PersistStateAsync(System.Collections.Generic.IReadOnlyDictionary state); - } - - public class InjectAttribute : System.Attribute - { - public InjectAttribute() => throw null; - } - - public class LayoutAttribute : System.Attribute - { - public LayoutAttribute(System.Type layoutType) => throw null; - public System.Type LayoutType { get => throw null; } - } - - public abstract class LayoutComponentBase : Microsoft.AspNetCore.Components.ComponentBase - { - public Microsoft.AspNetCore.Components.RenderFragment Body { get => throw null; set => throw null; } - protected LayoutComponentBase() => throw null; - public override System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; - } - - public class LayoutView : Microsoft.AspNetCore.Components.IComponent - { - public void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; - public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set => throw null; } - public System.Type Layout { get => throw null; set => throw null; } - public LayoutView() => throw null; - public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; - } - - public class LocationChangeException : System.Exception - { - public LocationChangeException(string message, System.Exception innerException) => throw null; - } - - public struct MarkupString - { - // Stub generator skipped constructor - public MarkupString(string value) => throw null; - public override string ToString() => throw null; - public string Value { get => throw null; } - public static explicit operator Microsoft.AspNetCore.Components.MarkupString(string value) => throw null; - } - - public class NavigationException : System.Exception - { - public string Location { get => throw null; } - public NavigationException(string uri) => throw null; - } - - public abstract class NavigationManager - { - public string BaseUri { get => throw null; set => throw null; } - protected virtual void EnsureInitialized() => throw null; - protected virtual void HandleLocationChangingHandlerException(System.Exception ex, Microsoft.AspNetCore.Components.Routing.LocationChangingContext context) => throw null; - public string HistoryEntryState { get => throw null; set => throw null; } - protected void Initialize(string baseUri, string uri) => throw null; - public event System.EventHandler LocationChanged; - public void NavigateTo(string uri, Microsoft.AspNetCore.Components.NavigationOptions options) => throw null; - public void NavigateTo(string uri, bool forceLoad) => throw null; - public void NavigateTo(string uri, bool forceLoad = default(bool), bool replace = default(bool)) => throw null; - protected virtual void NavigateToCore(string uri, Microsoft.AspNetCore.Components.NavigationOptions options) => throw null; - protected virtual void NavigateToCore(string uri, bool forceLoad) => throw null; - protected NavigationManager() => throw null; - protected void NotifyLocationChanged(bool isInterceptedLink) => throw null; - protected System.Threading.Tasks.ValueTask NotifyLocationChangingAsync(string uri, string state, bool isNavigationIntercepted) => throw null; - public System.IDisposable RegisterLocationChangingHandler(System.Func locationChangingHandler) => throw null; - protected virtual void SetNavigationLockState(bool value) => throw null; - public System.Uri ToAbsoluteUri(string relativeUri) => throw null; - public string ToBaseRelativePath(string uri) => throw null; - public string Uri { get => throw null; set => throw null; } - } - - public static class NavigationManagerExtensions - { - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.DateOnly value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.DateOnly? value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.DateTime value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.DateTime? value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.Guid value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.Guid? value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.TimeOnly value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.TimeOnly? value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, bool value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, bool? value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.Decimal value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.Decimal? value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, double value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, double? value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, float value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, float? value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, int value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, int? value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.Int64 value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.Int64? value) => throw null; - public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, string value) => throw null; - public static string GetUriWithQueryParameters(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, System.Collections.Generic.IReadOnlyDictionary parameters) => throw null; - public static string GetUriWithQueryParameters(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string uri, System.Collections.Generic.IReadOnlyDictionary parameters) => throw null; - } - - public struct NavigationOptions - { - public bool ForceLoad { get => throw null; set => throw null; } - public string HistoryEntryState { get => throw null; set => throw null; } - // Stub generator skipped constructor - public bool ReplaceHistoryEntry { get => throw null; set => throw null; } - } - - public abstract class OwningComponentBase : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable - { - void System.IDisposable.Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - protected bool IsDisposed { get => throw null; } - protected OwningComponentBase() => throw null; - protected System.IServiceProvider ScopedServices { get => throw null; } - } - - public abstract class OwningComponentBase : Microsoft.AspNetCore.Components.OwningComponentBase, System.IDisposable - { - protected OwningComponentBase() => throw null; - protected TService Service { get => throw null; } - } - - public class ParameterAttribute : System.Attribute - { - public bool CaptureUnmatchedValues { get => throw null; set => throw null; } - public ParameterAttribute() => throw null; - } - - public struct ParameterValue - { - public bool Cascading { get => throw null; } - public string Name { get => throw null; } - // Stub generator skipped constructor - public object Value { get => throw null; } - } - - public struct ParameterView - { - public struct Enumerator - { - public Microsoft.AspNetCore.Components.ParameterValue Current { get => throw null; } - // Stub generator skipped constructor - public bool MoveNext() => throw null; - } - - - public static Microsoft.AspNetCore.Components.ParameterView Empty { get => throw null; } - public static Microsoft.AspNetCore.Components.ParameterView FromDictionary(System.Collections.Generic.IDictionary parameters) => throw null; - public Microsoft.AspNetCore.Components.ParameterView.Enumerator GetEnumerator() => throw null; - public TValue GetValueOrDefault(string parameterName) => throw null; - public TValue GetValueOrDefault(string parameterName, TValue defaultValue) => throw null; - // Stub generator skipped constructor - public void SetParameterProperties(object target) => throw null; - public System.Collections.Generic.IReadOnlyDictionary ToDictionary() => throw null; - public bool TryGetValue(string parameterName, out TValue result) => throw null; - } - - public class PersistentComponentState - { - public void PersistAsJson(string key, TValue instance) => throw null; - public Microsoft.AspNetCore.Components.PersistingComponentStateSubscription RegisterOnPersisting(System.Func callback) => throw null; - public bool TryTakeFromJson(string key, out TValue instance) => throw null; - } - - public struct PersistingComponentStateSubscription : System.IDisposable - { - public void Dispose() => throw null; - // Stub generator skipped constructor - } - - public delegate void RenderFragment(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder); - - public delegate Microsoft.AspNetCore.Components.RenderFragment RenderFragment(TValue value); - - public struct RenderHandle - { - public Microsoft.AspNetCore.Components.Dispatcher Dispatcher { get => throw null; } - public bool IsInitialized { get => throw null; } - public bool IsRenderingOnMetadataUpdate { get => throw null; } - public void Render(Microsoft.AspNetCore.Components.RenderFragment renderFragment) => throw null; - // Stub generator skipped constructor - } - - public class RouteAttribute : System.Attribute - { - public RouteAttribute(string template) => throw null; - public string Template { get => throw null; } - } - - public class RouteData - { - public System.Type PageType { get => throw null; } - public RouteData(System.Type pageType, System.Collections.Generic.IReadOnlyDictionary routeValues) => throw null; - public System.Collections.Generic.IReadOnlyDictionary RouteValues { get => throw null; } - } - - public class RouteView : Microsoft.AspNetCore.Components.IComponent - { - public void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; - public System.Type DefaultLayout { get => throw null; set => throw null; } - protected virtual void Render(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; - public Microsoft.AspNetCore.Components.RouteData RouteData { get => throw null; set => throw null; } - public RouteView() => throw null; - public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; - } - - public class SupplyParameterFromQueryAttribute : System.Attribute - { - public string Name { get => throw null; set => throw null; } - public SupplyParameterFromQueryAttribute() => throw null; - } - - namespace CompilerServices - { - public static class RuntimeHelpers - { - public static System.Func CreateInferredBindSetter(System.Action callback, T value) => throw null; - public static System.Func CreateInferredBindSetter(System.Func callback, T value) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateInferredEventCallback(object receiver, System.Action callback, T value) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateInferredEventCallback(object receiver, Microsoft.AspNetCore.Components.EventCallback callback, T value) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback CreateInferredEventCallback(object receiver, System.Func callback, T value) => throw null; - public static System.Threading.Tasks.Task InvokeAsynchronousDelegate(System.Action callback) => throw null; - public static System.Threading.Tasks.Task InvokeAsynchronousDelegate(System.Func callback) => throw null; - public static void InvokeSynchronousDelegate(System.Action callback) => throw null; - public static T TypeCheck(T value) => throw null; - } - - } namespace Infrastructure { public class ComponentStatePersistenceManager @@ -594,80 +335,283 @@ namespace Microsoft public System.Threading.Tasks.Task RestoreStateAsync(Microsoft.AspNetCore.Components.IPersistentComponentStateStore store) => throw null; public Microsoft.AspNetCore.Components.PersistentComponentState State { get => throw null; } } - + } + public sealed class InjectAttribute : System.Attribute + { + public InjectAttribute() => throw null; + } + public interface IPersistentComponentStateStore + { + System.Threading.Tasks.Task> GetPersistedStateAsync(); + System.Threading.Tasks.Task PersistStateAsync(System.Collections.Generic.IReadOnlyDictionary state); + } + public sealed class LayoutAttribute : System.Attribute + { + public LayoutAttribute(System.Type layoutType) => throw null; + public System.Type LayoutType { get => throw null; } + } + public abstract class LayoutComponentBase : Microsoft.AspNetCore.Components.ComponentBase + { + public Microsoft.AspNetCore.Components.RenderFragment Body { get => throw null; set { } } + protected LayoutComponentBase() => throw null; + public override System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; + } + public class LayoutView : Microsoft.AspNetCore.Components.IComponent + { + public void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; + public Microsoft.AspNetCore.Components.RenderFragment ChildContent { get => throw null; set { } } + public LayoutView() => throw null; + public System.Type Layout { get => throw null; set { } } + public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; + } + public sealed class LocationChangeException : System.Exception + { + public LocationChangeException(string message, System.Exception innerException) => throw null; + } + public struct MarkupString + { + public MarkupString(string value) => throw null; + public static explicit operator Microsoft.AspNetCore.Components.MarkupString(string value) => throw null; + public override string ToString() => throw null; + public string Value { get => throw null; } + } + public class NavigationException : System.Exception + { + public NavigationException(string uri) => throw null; + public string Location { get => throw null; } + } + public abstract class NavigationManager + { + public string BaseUri { get => throw null; set { } } + protected NavigationManager() => throw null; + protected virtual void EnsureInitialized() => throw null; + protected virtual void HandleLocationChangingHandlerException(System.Exception ex, Microsoft.AspNetCore.Components.Routing.LocationChangingContext context) => throw null; + public string HistoryEntryState { get => throw null; set { } } + protected void Initialize(string baseUri, string uri) => throw null; + public event System.EventHandler LocationChanged { add { } remove { } } + public void NavigateTo(string uri, bool forceLoad) => throw null; + public void NavigateTo(string uri, bool forceLoad = default(bool), bool replace = default(bool)) => throw null; + public void NavigateTo(string uri, Microsoft.AspNetCore.Components.NavigationOptions options) => throw null; + protected virtual void NavigateToCore(string uri, bool forceLoad) => throw null; + protected virtual void NavigateToCore(string uri, Microsoft.AspNetCore.Components.NavigationOptions options) => throw null; + protected void NotifyLocationChanged(bool isInterceptedLink) => throw null; + protected System.Threading.Tasks.ValueTask NotifyLocationChangingAsync(string uri, string state, bool isNavigationIntercepted) => throw null; + public System.IDisposable RegisterLocationChangingHandler(System.Func locationChangingHandler) => throw null; + protected virtual void SetNavigationLockState(bool value) => throw null; + public System.Uri ToAbsoluteUri(string relativeUri) => throw null; + public string ToBaseRelativePath(string uri) => throw null; + public string Uri { get => throw null; set { } } + } + public static partial class NavigationManagerExtensions + { + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, bool value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, bool? value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.DateTime value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.DateTime? value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.DateOnly value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.DateOnly? value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.TimeOnly value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.TimeOnly? value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, decimal value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, decimal? value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, double value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, double? value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, float value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, float? value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.Guid value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, System.Guid? value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, int value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, int? value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, long value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, long? value) => throw null; + public static string GetUriWithQueryParameter(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string name, string value) => throw null; + public static string GetUriWithQueryParameters(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, System.Collections.Generic.IReadOnlyDictionary parameters) => throw null; + public static string GetUriWithQueryParameters(this Microsoft.AspNetCore.Components.NavigationManager navigationManager, string uri, System.Collections.Generic.IReadOnlyDictionary parameters) => throw null; + } + public struct NavigationOptions + { + public bool ForceLoad { get => throw null; set { } } + public string HistoryEntryState { get => throw null; set { } } + public bool ReplaceHistoryEntry { get => throw null; set { } } + } + public abstract class OwningComponentBase : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable + { + protected OwningComponentBase() => throw null; + void System.IDisposable.Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + protected bool IsDisposed { get => throw null; } + protected System.IServiceProvider ScopedServices { get => throw null; } + } + public abstract class OwningComponentBase : Microsoft.AspNetCore.Components.OwningComponentBase, System.IDisposable + { + protected OwningComponentBase() => throw null; + protected TService Service { get => throw null; } + } + public sealed class ParameterAttribute : System.Attribute + { + public bool CaptureUnmatchedValues { get => throw null; set { } } + public ParameterAttribute() => throw null; + } + public struct ParameterValue + { + public bool Cascading { get => throw null; } + public string Name { get => throw null; } + public object Value { get => throw null; } + } + public struct ParameterView + { + public static Microsoft.AspNetCore.Components.ParameterView Empty { get => throw null; } + public struct Enumerator + { + public Microsoft.AspNetCore.Components.ParameterValue Current { get => throw null; } + public bool MoveNext() => throw null; + } + public static Microsoft.AspNetCore.Components.ParameterView FromDictionary(System.Collections.Generic.IDictionary parameters) => throw null; + public Microsoft.AspNetCore.Components.ParameterView.Enumerator GetEnumerator() => throw null; + public TValue GetValueOrDefault(string parameterName) => throw null; + public TValue GetValueOrDefault(string parameterName, TValue defaultValue) => throw null; + public void SetParameterProperties(object target) => throw null; + public System.Collections.Generic.IReadOnlyDictionary ToDictionary() => throw null; + public bool TryGetValue(string parameterName, out TValue result) => throw null; + } + public class PersistentComponentState + { + public void PersistAsJson(string key, TValue instance) => throw null; + public Microsoft.AspNetCore.Components.PersistingComponentStateSubscription RegisterOnPersisting(System.Func callback) => throw null; + public bool TryTakeFromJson(string key, out TValue instance) => throw null; + } + public struct PersistingComponentStateSubscription : System.IDisposable + { + public void Dispose() => throw null; + } + public delegate void RenderFragment(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder); + public delegate Microsoft.AspNetCore.Components.RenderFragment RenderFragment(TValue value); + public struct RenderHandle + { + public Microsoft.AspNetCore.Components.Dispatcher Dispatcher { get => throw null; } + public bool IsInitialized { get => throw null; } + public bool IsRenderingOnMetadataUpdate { get => throw null; } + public void Render(Microsoft.AspNetCore.Components.RenderFragment renderFragment) => throw null; + } + namespace Rendering + { + public sealed class RenderTreeBuilder : System.IDisposable + { + public void AddAttribute(int sequence, string name) => throw null; + public void AddAttribute(int sequence, string name, bool value) => throw null; + public void AddAttribute(int sequence, string name, string value) => throw null; + public void AddAttribute(int sequence, string name, System.MulticastDelegate value) => throw null; + public void AddAttribute(int sequence, string name, Microsoft.AspNetCore.Components.EventCallback value) => throw null; + public void AddAttribute(int sequence, string name, Microsoft.AspNetCore.Components.EventCallback value) => throw null; + public void AddAttribute(int sequence, string name, object value) => throw null; + public void AddAttribute(int sequence, Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame frame) => throw null; + public void AddComponentReferenceCapture(int sequence, System.Action componentReferenceCaptureAction) => throw null; + public void AddContent(int sequence, string textContent) => throw null; + public void AddContent(int sequence, Microsoft.AspNetCore.Components.RenderFragment fragment) => throw null; + public void AddContent(int sequence, Microsoft.AspNetCore.Components.RenderFragment fragment, TValue value) => throw null; + public void AddContent(int sequence, Microsoft.AspNetCore.Components.MarkupString? markupContent) => throw null; + public void AddContent(int sequence, Microsoft.AspNetCore.Components.MarkupString markupContent) => throw null; + public void AddContent(int sequence, object textContent) => throw null; + public void AddElementReferenceCapture(int sequence, System.Action elementReferenceCaptureAction) => throw null; + public void AddMarkupContent(int sequence, string markupContent) => throw null; + public void AddMultipleAttributes(int sequence, System.Collections.Generic.IEnumerable> attributes) => throw null; + public void Clear() => throw null; + public void CloseComponent() => throw null; + public void CloseElement() => throw null; + public void CloseRegion() => throw null; + public RenderTreeBuilder() => throw null; + public void Dispose() => throw null; + public Microsoft.AspNetCore.Components.RenderTree.ArrayRange GetFrames() => throw null; + public void OpenComponent(int sequence) where TComponent : Microsoft.AspNetCore.Components.IComponent => throw null; + public void OpenComponent(int sequence, System.Type componentType) => throw null; + public void OpenElement(int sequence, string elementName) => throw null; + public void OpenRegion(int sequence) => throw null; + public void SetKey(object value) => throw null; + public void SetUpdatesAttributeName(string updatesAttributeName) => throw null; + } } namespace RenderTree { public struct ArrayBuilderSegment : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public T[] Array { get => throw null; } - // Stub generator skipped constructor public int Count { get => throw null; } System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public T this[int index] { get => throw null; } public int Offset { get => throw null; } + public T this[int index] { get => throw null; } } - public struct ArrayRange { public T[] Array; - // Stub generator skipped constructor - public ArrayRange(T[] array, int count) => throw null; public Microsoft.AspNetCore.Components.RenderTree.ArrayRange Clone() => throw null; public int Count; + public ArrayRange(T[] array, int count) => throw null; } - public class EventFieldInfo { - public int ComponentId { get => throw null; set => throw null; } + public int ComponentId { get => throw null; set { } } public EventFieldInfo() => throw null; - public object FieldValue { get => throw null; set => throw null; } + public object FieldValue { get => throw null; set { } } } - public struct RenderBatch { public Microsoft.AspNetCore.Components.RenderTree.ArrayRange DisposedComponentIDs { get => throw null; } - public Microsoft.AspNetCore.Components.RenderTree.ArrayRange DisposedEventHandlerIDs { get => throw null; } + public Microsoft.AspNetCore.Components.RenderTree.ArrayRange DisposedEventHandlerIDs { get => throw null; } public Microsoft.AspNetCore.Components.RenderTree.ArrayRange ReferenceFrames { get => throw null; } - // Stub generator skipped constructor public Microsoft.AspNetCore.Components.RenderTree.ArrayRange UpdatedComponents { get => throw null; } } - + public abstract class Renderer : System.IDisposable, System.IAsyncDisposable + { + protected int AssignRootComponentId(Microsoft.AspNetCore.Components.IComponent component) => throw null; + public Renderer(System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public Renderer(System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Components.IComponentActivator componentActivator) => throw null; + public abstract Microsoft.AspNetCore.Components.Dispatcher Dispatcher { get; } + public virtual System.Threading.Tasks.Task DispatchEventAsync(ulong eventHandlerId, Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo fieldInfo, System.EventArgs eventArgs) => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public void Dispose() => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + protected Microsoft.AspNetCore.Components.ElementReferenceContext ElementReferenceContext { get => throw null; set { } } + protected Microsoft.AspNetCore.Components.RenderTree.ArrayRange GetCurrentRenderTreeFrames(int componentId) => throw null; + public System.Type GetEventArgsType(ulong eventHandlerId) => throw null; + protected abstract void HandleException(System.Exception exception); + protected Microsoft.AspNetCore.Components.IComponent InstantiateComponent(System.Type componentType) => throw null; + protected virtual void ProcessPendingRender() => throw null; + protected void RemoveRootComponent(int componentId) => throw null; + protected System.Threading.Tasks.Task RenderRootComponentAsync(int componentId) => throw null; + protected System.Threading.Tasks.Task RenderRootComponentAsync(int componentId, Microsoft.AspNetCore.Components.ParameterView initialParameters) => throw null; + public event System.UnhandledExceptionEventHandler UnhandledSynchronizationException { add { } remove { } } + protected abstract System.Threading.Tasks.Task UpdateDisplayAsync(in Microsoft.AspNetCore.Components.RenderTree.RenderBatch renderBatch); + } public struct RenderTreeDiff { public int ComponentId; public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment Edits; - // Stub generator skipped constructor } - public struct RenderTreeEdit { public int MoveToSiblingIndex; public int ReferenceFrameIndex; public string RemovedAttributeName; - // Stub generator skipped constructor public int SiblingIndex; public Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType Type; } - - public enum RenderTreeEditType : int + public enum RenderTreeEditType { - PermutationListEnd = 10, - PermutationListEntry = 9, PrependFrame = 1, - RemoveAttribute = 4, RemoveFrame = 2, SetAttribute = 3, + RemoveAttribute = 4, + UpdateText = 5, StepIn = 6, StepOut = 7, UpdateMarkup = 8, - UpdateText = 5, + PermutationListEntry = 9, + PermutationListEnd = 10, } - public struct RenderTreeFrame { - public System.UInt64 AttributeEventHandlerId { get => throw null; } + public ulong AttributeEventHandlerId { get => throw null; } public string AttributeEventUpdatesAttributeName { get => throw null; } public string AttributeName { get => throw null; } public object AttributeValue { get => throw null; } @@ -686,86 +630,42 @@ namespace Microsoft public Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType FrameType { get => throw null; } public string MarkupContent { get => throw null; } public int RegionSubtreeLength { get => throw null; } - // Stub generator skipped constructor public int Sequence { get => throw null; } public string TextContent { get => throw null; } public override string ToString() => throw null; } - public enum RenderTreeFrameType : short { + None = 0, + Element = 1, + Text = 2, Attribute = 3, Component = 4, - ComponentReferenceCapture = 7, - Element = 1, - ElementReferenceCapture = 6, - Markup = 8, - None = 0, Region = 5, - Text = 2, + ElementReferenceCapture = 6, + ComponentReferenceCapture = 7, + Markup = 8, } - - public abstract class Renderer : System.IAsyncDisposable, System.IDisposable - { - protected internal int AssignRootComponentId(Microsoft.AspNetCore.Components.IComponent component) => throw null; - public virtual System.Threading.Tasks.Task DispatchEventAsync(System.UInt64 eventHandlerId, Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo fieldInfo, System.EventArgs eventArgs) => throw null; - public abstract Microsoft.AspNetCore.Components.Dispatcher Dispatcher { get; } - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - protected internal Microsoft.AspNetCore.Components.ElementReferenceContext ElementReferenceContext { get => throw null; set => throw null; } - protected Microsoft.AspNetCore.Components.RenderTree.ArrayRange GetCurrentRenderTreeFrames(int componentId) => throw null; - public System.Type GetEventArgsType(System.UInt64 eventHandlerId) => throw null; - protected abstract void HandleException(System.Exception exception); - protected Microsoft.AspNetCore.Components.IComponent InstantiateComponent(System.Type componentType) => throw null; - protected virtual void ProcessPendingRender() => throw null; - protected internal void RemoveRootComponent(int componentId) => throw null; - protected System.Threading.Tasks.Task RenderRootComponentAsync(int componentId) => throw null; - protected internal System.Threading.Tasks.Task RenderRootComponentAsync(int componentId, Microsoft.AspNetCore.Components.ParameterView initialParameters) => throw null; - public Renderer(System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public Renderer(System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Components.IComponentActivator componentActivator) => throw null; - public event System.UnhandledExceptionEventHandler UnhandledSynchronizationException; - protected abstract System.Threading.Tasks.Task UpdateDisplayAsync(Microsoft.AspNetCore.Components.RenderTree.RenderBatch renderBatch); - } - } - namespace Rendering + public sealed class RouteAttribute : System.Attribute { - public class RenderTreeBuilder : System.IDisposable - { - public void AddAttribute(int sequence, Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame frame) => throw null; - public void AddAttribute(int sequence, string name) => throw null; - public void AddAttribute(int sequence, string name, Microsoft.AspNetCore.Components.EventCallback value) => throw null; - public void AddAttribute(int sequence, string name, System.MulticastDelegate value) => throw null; - public void AddAttribute(int sequence, string name, bool value) => throw null; - public void AddAttribute(int sequence, string name, object value) => throw null; - public void AddAttribute(int sequence, string name, string value) => throw null; - public void AddAttribute(int sequence, string name, Microsoft.AspNetCore.Components.EventCallback value) => throw null; - public void AddComponentReferenceCapture(int sequence, System.Action componentReferenceCaptureAction) => throw null; - public void AddContent(int sequence, Microsoft.AspNetCore.Components.MarkupString markupContent) => throw null; - public void AddContent(int sequence, Microsoft.AspNetCore.Components.MarkupString? markupContent) => throw null; - public void AddContent(int sequence, Microsoft.AspNetCore.Components.RenderFragment fragment) => throw null; - public void AddContent(int sequence, object textContent) => throw null; - public void AddContent(int sequence, string textContent) => throw null; - public void AddContent(int sequence, Microsoft.AspNetCore.Components.RenderFragment fragment, TValue value) => throw null; - public void AddElementReferenceCapture(int sequence, System.Action elementReferenceCaptureAction) => throw null; - public void AddMarkupContent(int sequence, string markupContent) => throw null; - public void AddMultipleAttributes(int sequence, System.Collections.Generic.IEnumerable> attributes) => throw null; - public void Clear() => throw null; - public void CloseComponent() => throw null; - public void CloseElement() => throw null; - public void CloseRegion() => throw null; - public void Dispose() => throw null; - public Microsoft.AspNetCore.Components.RenderTree.ArrayRange GetFrames() => throw null; - public void OpenComponent(int sequence, System.Type componentType) => throw null; - public void OpenComponent(int sequence) where TComponent : Microsoft.AspNetCore.Components.IComponent => throw null; - public void OpenElement(int sequence, string elementName) => throw null; - public void OpenRegion(int sequence) => throw null; - public RenderTreeBuilder() => throw null; - public void SetKey(object value) => throw null; - public void SetUpdatesAttributeName(string updatesAttributeName) => throw null; - } - + public RouteAttribute(string template) => throw null; + public string Template { get => throw null; } + } + public sealed class RouteData + { + public RouteData(System.Type pageType, System.Collections.Generic.IReadOnlyDictionary routeValues) => throw null; + public System.Type PageType { get => throw null; } + public System.Collections.Generic.IReadOnlyDictionary RouteValues { get => throw null; } + } + public class RouteView : Microsoft.AspNetCore.Components.IComponent + { + public void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; + public RouteView() => throw null; + public System.Type DefaultLayout { get => throw null; set { } } + protected virtual void Render(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; + public Microsoft.AspNetCore.Components.RouteData RouteData { get => throw null; set { } } + public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; } namespace Routing { @@ -773,52 +673,51 @@ namespace Microsoft { void Initialize(string baseUri, string uri); } - public interface INavigationInterception { System.Threading.Tasks.Task EnableNavigationInterceptionAsync(); } - public class LocationChangedEventArgs : System.EventArgs { - public string HistoryEntryState { get => throw null; set => throw null; } + public LocationChangedEventArgs(string location, bool isNavigationIntercepted) => throw null; + public string HistoryEntryState { get => throw null; } public bool IsNavigationIntercepted { get => throw null; } public string Location { get => throw null; } - public LocationChangedEventArgs(string location, bool isNavigationIntercepted) => throw null; } - - public class LocationChangingContext + public sealed class LocationChangingContext { - public System.Threading.CancellationToken CancellationToken { get => throw null; set => throw null; } - public string HistoryEntryState { get => throw null; set => throw null; } - public bool IsNavigationIntercepted { get => throw null; set => throw null; } + public System.Threading.CancellationToken CancellationToken { get => throw null; set { } } public LocationChangingContext() => throw null; + public string HistoryEntryState { get => throw null; set { } } + public bool IsNavigationIntercepted { get => throw null; set { } } public void PreventNavigation() => throw null; - public string TargetLocation { get => throw null; set => throw null; } + public string TargetLocation { get => throw null; set { } } } - - public class NavigationContext + public sealed class NavigationContext { public System.Threading.CancellationToken CancellationToken { get => throw null; } public string Path { get => throw null; } } - public class Router : Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleAfterRender, System.IDisposable { - public System.Collections.Generic.IEnumerable AdditionalAssemblies { get => throw null; set => throw null; } - public System.Reflection.Assembly AppAssembly { get => throw null; set => throw null; } + public System.Collections.Generic.IEnumerable AdditionalAssemblies { get => throw null; set { } } + public System.Reflection.Assembly AppAssembly { get => throw null; set { } } public void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; - public void Dispose() => throw null; - public Microsoft.AspNetCore.Components.RenderFragment Found { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.RenderFragment Navigating { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Components.RenderFragment NotFound { get => throw null; set => throw null; } - System.Threading.Tasks.Task Microsoft.AspNetCore.Components.IHandleAfterRender.OnAfterRenderAsync() => throw null; - public Microsoft.AspNetCore.Components.EventCallback OnNavigateAsync { get => throw null; set => throw null; } - public bool PreferExactMatches { get => throw null; set => throw null; } public Router() => throw null; + public void Dispose() => throw null; + public Microsoft.AspNetCore.Components.RenderFragment Found { get => throw null; set { } } + public Microsoft.AspNetCore.Components.RenderFragment Navigating { get => throw null; set { } } + public Microsoft.AspNetCore.Components.RenderFragment NotFound { get => throw null; set { } } + System.Threading.Tasks.Task Microsoft.AspNetCore.Components.IHandleAfterRender.OnAfterRenderAsync() => throw null; + public Microsoft.AspNetCore.Components.EventCallback OnNavigateAsync { get => throw null; set { } } + public bool PreferExactMatches { get => throw null; set { } } public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; } - + } + public sealed class SupplyParameterFromQueryAttribute : System.Attribute + { + public SupplyParameterFromQueryAttribute() => throw null; + public string Name { get => throw null; set { } } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Connections.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Connections.Abstractions.cs index 34184920670..525c941546b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Connections.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Connections.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Connections.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -12,28 +11,25 @@ namespace Microsoft public AddressInUseException(string message) => throw null; public AddressInUseException(string message, System.Exception inner) => throw null; } - public abstract class BaseConnectionContext : System.IAsyncDisposable { public abstract void Abort(); public abstract void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason); - protected BaseConnectionContext() => throw null; - public virtual System.Threading.CancellationToken ConnectionClosed { get => throw null; set => throw null; } + public virtual System.Threading.CancellationToken ConnectionClosed { get => throw null; set { } } public abstract string ConnectionId { get; set; } + protected BaseConnectionContext() => throw null; public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public abstract Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get; } public abstract System.Collections.Generic.IDictionary Items { get; set; } - public virtual System.Net.EndPoint LocalEndPoint { get => throw null; set => throw null; } - public virtual System.Net.EndPoint RemoteEndPoint { get => throw null; set => throw null; } + public virtual System.Net.EndPoint LocalEndPoint { get => throw null; set { } } + public virtual System.Net.EndPoint RemoteEndPoint { get => throw null; set { } } } - public class ConnectionAbortedException : System.OperationCanceledException { public ConnectionAbortedException() => throw null; public ConnectionAbortedException(string message) => throw null; public ConnectionAbortedException(string message, System.Exception inner) => throw null; } - public class ConnectionBuilder : Microsoft.AspNetCore.Connections.IConnectionBuilder { public System.IServiceProvider ApplicationServices { get => throw null; } @@ -41,283 +37,148 @@ namespace Microsoft public ConnectionBuilder(System.IServiceProvider applicationServices) => throw null; public Microsoft.AspNetCore.Connections.IConnectionBuilder Use(System.Func middleware) => throw null; } - - public static class ConnectionBuilderExtensions + public static partial class ConnectionBuilderExtensions { public static Microsoft.AspNetCore.Connections.IConnectionBuilder Run(this Microsoft.AspNetCore.Connections.IConnectionBuilder connectionBuilder, System.Func middleware) => throw null; public static Microsoft.AspNetCore.Connections.IConnectionBuilder Use(this Microsoft.AspNetCore.Connections.IConnectionBuilder connectionBuilder, System.Func, System.Threading.Tasks.Task> middleware) => throw null; public static Microsoft.AspNetCore.Connections.IConnectionBuilder UseConnectionHandler(this Microsoft.AspNetCore.Connections.IConnectionBuilder connectionBuilder) where TConnectionHandler : Microsoft.AspNetCore.Connections.ConnectionHandler => throw null; } - public abstract class ConnectionContext : Microsoft.AspNetCore.Connections.BaseConnectionContext, System.IAsyncDisposable { - public override void Abort() => throw null; public override void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason) => throw null; + public override void Abort() => throw null; protected ConnectionContext() => throw null; public abstract System.IO.Pipelines.IDuplexPipe Transport { get; set; } } - public delegate System.Threading.Tasks.Task ConnectionDelegate(Microsoft.AspNetCore.Connections.ConnectionContext connection); - public abstract class ConnectionHandler { protected ConnectionHandler() => throw null; public abstract System.Threading.Tasks.Task OnConnectedAsync(Microsoft.AspNetCore.Connections.ConnectionContext connection); } - - public class ConnectionItems : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class ConnectionItems : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; void System.Collections.Generic.IDictionary.Add(object key, object value) => throw null; + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; void System.Collections.Generic.ICollection>.Clear() => throw null; - public ConnectionItems() => throw null; - public ConnectionItems(System.Collections.Generic.IDictionary items) => throw null; bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair item) => throw null; bool System.Collections.Generic.IDictionary.ContainsKey(object key) => throw null; void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; int System.Collections.Generic.ICollection>.Count { get => throw null; } + public ConnectionItems() => throw null; + public ConnectionItems(System.Collections.Generic.IDictionary items) => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } - object System.Collections.Generic.IDictionary.this[object key] { get => throw null; set => throw null; } + object System.Collections.Generic.IDictionary.this[object key] { get => throw null; set { } } public System.Collections.Generic.IDictionary Items { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; bool System.Collections.Generic.IDictionary.Remove(object key) => throw null; + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; bool System.Collections.Generic.IDictionary.TryGetValue(object key, out object value) => throw null; System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } } - public class ConnectionResetException : System.IO.IOException { public ConnectionResetException(string message) => throw null; public ConnectionResetException(string message, System.Exception inner) => throw null; } - - public class DefaultConnectionContext : Microsoft.AspNetCore.Connections.ConnectionContext, Microsoft.AspNetCore.Connections.Features.IConnectionEndPointFeature, Microsoft.AspNetCore.Connections.Features.IConnectionIdFeature, Microsoft.AspNetCore.Connections.Features.IConnectionItemsFeature, Microsoft.AspNetCore.Connections.Features.IConnectionLifetimeFeature, Microsoft.AspNetCore.Connections.Features.IConnectionTransportFeature, Microsoft.AspNetCore.Connections.Features.IConnectionUserFeature + public class DefaultConnectionContext : Microsoft.AspNetCore.Connections.ConnectionContext, Microsoft.AspNetCore.Connections.Features.IConnectionIdFeature, Microsoft.AspNetCore.Connections.Features.IConnectionItemsFeature, Microsoft.AspNetCore.Connections.Features.IConnectionTransportFeature, Microsoft.AspNetCore.Connections.Features.IConnectionUserFeature, Microsoft.AspNetCore.Connections.Features.IConnectionLifetimeFeature, Microsoft.AspNetCore.Connections.Features.IConnectionEndPointFeature { public override void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason) => throw null; - public System.IO.Pipelines.IDuplexPipe Application { get => throw null; set => throw null; } - public override System.Threading.CancellationToken ConnectionClosed { get => throw null; set => throw null; } - public override string ConnectionId { get => throw null; set => throw null; } + public System.IO.Pipelines.IDuplexPipe Application { get => throw null; set { } } + public override System.Threading.CancellationToken ConnectionClosed { get => throw null; set { } } + public override string ConnectionId { get => throw null; set { } } public DefaultConnectionContext() => throw null; public DefaultConnectionContext(string id) => throw null; public DefaultConnectionContext(string id, System.IO.Pipelines.IDuplexPipe transport, System.IO.Pipelines.IDuplexPipe application) => throw null; public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public override Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get => throw null; } - public override System.Collections.Generic.IDictionary Items { get => throw null; set => throw null; } - public override System.Net.EndPoint LocalEndPoint { get => throw null; set => throw null; } - public override System.Net.EndPoint RemoteEndPoint { get => throw null; set => throw null; } - public override System.IO.Pipelines.IDuplexPipe Transport { get => throw null; set => throw null; } - public System.Security.Claims.ClaimsPrincipal User { get => throw null; set => throw null; } + public override System.Collections.Generic.IDictionary Items { get => throw null; set { } } + public override System.Net.EndPoint LocalEndPoint { get => throw null; set { } } + public override System.Net.EndPoint RemoteEndPoint { get => throw null; set { } } + public override System.IO.Pipelines.IDuplexPipe Transport { get => throw null; set { } } + public System.Security.Claims.ClaimsPrincipal User { get => throw null; set { } } } - - public class FileHandleEndPoint : System.Net.EndPoint - { - public System.UInt64 FileHandle { get => throw null; } - public FileHandleEndPoint(System.UInt64 fileHandle, Microsoft.AspNetCore.Connections.FileHandleType fileHandleType) => throw null; - public Microsoft.AspNetCore.Connections.FileHandleType FileHandleType { get => throw null; } - } - - public enum FileHandleType : int - { - Auto = 0, - Pipe = 2, - Tcp = 1, - } - - public interface IConnectionBuilder - { - System.IServiceProvider ApplicationServices { get; } - Microsoft.AspNetCore.Connections.ConnectionDelegate Build(); - Microsoft.AspNetCore.Connections.IConnectionBuilder Use(System.Func middleware); - } - - public interface IConnectionFactory - { - System.Threading.Tasks.ValueTask ConnectAsync(System.Net.EndPoint endpoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - public interface IConnectionListener : System.IAsyncDisposable - { - System.Threading.Tasks.ValueTask AcceptAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Net.EndPoint EndPoint { get; } - System.Threading.Tasks.ValueTask UnbindAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - public interface IConnectionListenerFactory - { - System.Threading.Tasks.ValueTask BindAsync(System.Net.EndPoint endpoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - public interface IMultiplexedConnectionBuilder - { - System.IServiceProvider ApplicationServices { get; } - Microsoft.AspNetCore.Connections.MultiplexedConnectionDelegate Build(); - Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder Use(System.Func middleware); - } - - public interface IMultiplexedConnectionFactory - { - System.Threading.Tasks.ValueTask ConnectAsync(System.Net.EndPoint endpoint, Microsoft.AspNetCore.Http.Features.IFeatureCollection features = default(Microsoft.AspNetCore.Http.Features.IFeatureCollection), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - public interface IMultiplexedConnectionListener : System.IAsyncDisposable - { - System.Threading.Tasks.ValueTask AcceptAsync(Microsoft.AspNetCore.Http.Features.IFeatureCollection features = default(Microsoft.AspNetCore.Http.Features.IFeatureCollection), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Net.EndPoint EndPoint { get; } - System.Threading.Tasks.ValueTask UnbindAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - public interface IMultiplexedConnectionListenerFactory - { - System.Threading.Tasks.ValueTask BindAsync(System.Net.EndPoint endpoint, Microsoft.AspNetCore.Http.Features.IFeatureCollection features = default(Microsoft.AspNetCore.Http.Features.IFeatureCollection), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - public class MultiplexedConnectionBuilder : Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder - { - public System.IServiceProvider ApplicationServices { get => throw null; } - public Microsoft.AspNetCore.Connections.MultiplexedConnectionDelegate Build() => throw null; - public MultiplexedConnectionBuilder(System.IServiceProvider applicationServices) => throw null; - public Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder Use(System.Func middleware) => throw null; - } - - public abstract class MultiplexedConnectionContext : Microsoft.AspNetCore.Connections.BaseConnectionContext, System.IAsyncDisposable - { - public abstract System.Threading.Tasks.ValueTask AcceptAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - public abstract System.Threading.Tasks.ValueTask ConnectAsync(Microsoft.AspNetCore.Http.Features.IFeatureCollection features = default(Microsoft.AspNetCore.Http.Features.IFeatureCollection), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - protected MultiplexedConnectionContext() => throw null; - } - - public delegate System.Threading.Tasks.Task MultiplexedConnectionDelegate(Microsoft.AspNetCore.Connections.MultiplexedConnectionContext connection); - - public class TlsConnectionCallbackContext - { - public System.Net.Security.SslClientHelloInfo ClientHelloInfo { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Connections.BaseConnectionContext Connection { get => throw null; set => throw null; } - public object State { get => throw null; set => throw null; } - public TlsConnectionCallbackContext() => throw null; - } - - public class TlsConnectionCallbackOptions - { - public System.Collections.Generic.List ApplicationProtocols { get => throw null; set => throw null; } - public System.Func> OnConnection { get => throw null; set => throw null; } - public object OnConnectionState { get => throw null; set => throw null; } - public TlsConnectionCallbackOptions() => throw null; - } - - [System.Flags] - public enum TransferFormat : int - { - Binary = 1, - Text = 2, - } - - public class UriEndPoint : System.Net.EndPoint - { - public override string ToString() => throw null; - public System.Uri Uri { get => throw null; } - public UriEndPoint(System.Uri uri) => throw null; - } - namespace Features { public interface IConnectionCompleteFeature { void OnCompleted(System.Func callback, object state); } - public interface IConnectionEndPointFeature { System.Net.EndPoint LocalEndPoint { get; set; } System.Net.EndPoint RemoteEndPoint { get; set; } } - public interface IConnectionHeartbeatFeature { void OnHeartbeat(System.Action action, object state); } - public interface IConnectionIdFeature { string ConnectionId { get; set; } } - public interface IConnectionInherentKeepAliveFeature { bool HasInherentKeepAlive { get; } } - public interface IConnectionItemsFeature { System.Collections.Generic.IDictionary Items { get; set; } } - public interface IConnectionLifetimeFeature { void Abort(); System.Threading.CancellationToken ConnectionClosed { get; set; } } - public interface IConnectionLifetimeNotificationFeature { System.Threading.CancellationToken ConnectionClosedRequested { get; set; } void RequestClose(); } - public interface IConnectionSocketFeature { System.Net.Sockets.Socket Socket { get; } } - public interface IConnectionTransportFeature { System.IO.Pipelines.IDuplexPipe Transport { get; set; } } - public interface IConnectionUserFeature { System.Security.Claims.ClaimsPrincipal User { get; set; } } - public interface IMemoryPoolFeature { - System.Buffers.MemoryPool MemoryPool { get; } + System.Buffers.MemoryPool MemoryPool { get; } } - public interface IPersistentStateFeature { System.Collections.Generic.IDictionary State { get; } } - public interface IProtocolErrorCodeFeature { - System.Int64 Error { get; set; } + long Error { get; set; } } - public interface IStreamAbortFeature { - void AbortRead(System.Int64 errorCode, Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason); - void AbortWrite(System.Int64 errorCode, Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason); + void AbortRead(long errorCode, Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason); + void AbortWrite(long errorCode, Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason); } - public interface IStreamClosedFeature { void OnClosed(System.Action callback, object state); } - public interface IStreamDirectionFeature { bool CanRead { get; } bool CanWrite { get; } } - public interface IStreamIdFeature { - System.Int64 StreamId { get; } + long StreamId { get; } } - public interface ITlsHandshakeFeature { System.Security.Authentication.CipherAlgorithmType CipherAlgorithm { get; } @@ -328,13 +189,103 @@ namespace Microsoft int KeyExchangeStrength { get; } System.Security.Authentication.SslProtocols Protocol { get; } } - public interface ITransferFormatFeature { Microsoft.AspNetCore.Connections.TransferFormat ActiveFormat { get; set; } Microsoft.AspNetCore.Connections.TransferFormat SupportedFormats { get; } } - + } + public class FileHandleEndPoint : System.Net.EndPoint + { + public FileHandleEndPoint(ulong fileHandle, Microsoft.AspNetCore.Connections.FileHandleType fileHandleType) => throw null; + public ulong FileHandle { get => throw null; } + public Microsoft.AspNetCore.Connections.FileHandleType FileHandleType { get => throw null; } + } + public enum FileHandleType + { + Auto = 0, + Tcp = 1, + Pipe = 2, + } + public interface IConnectionBuilder + { + System.IServiceProvider ApplicationServices { get; } + Microsoft.AspNetCore.Connections.ConnectionDelegate Build(); + Microsoft.AspNetCore.Connections.IConnectionBuilder Use(System.Func middleware); + } + public interface IConnectionFactory + { + System.Threading.Tasks.ValueTask ConnectAsync(System.Net.EndPoint endpoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface IConnectionListener : System.IAsyncDisposable + { + System.Threading.Tasks.ValueTask AcceptAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Net.EndPoint EndPoint { get; } + System.Threading.Tasks.ValueTask UnbindAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface IConnectionListenerFactory + { + System.Threading.Tasks.ValueTask BindAsync(System.Net.EndPoint endpoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface IMultiplexedConnectionBuilder + { + System.IServiceProvider ApplicationServices { get; } + Microsoft.AspNetCore.Connections.MultiplexedConnectionDelegate Build(); + Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder Use(System.Func middleware); + } + public interface IMultiplexedConnectionFactory + { + System.Threading.Tasks.ValueTask ConnectAsync(System.Net.EndPoint endpoint, Microsoft.AspNetCore.Http.Features.IFeatureCollection features = default(Microsoft.AspNetCore.Http.Features.IFeatureCollection), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface IMultiplexedConnectionListener : System.IAsyncDisposable + { + System.Threading.Tasks.ValueTask AcceptAsync(Microsoft.AspNetCore.Http.Features.IFeatureCollection features = default(Microsoft.AspNetCore.Http.Features.IFeatureCollection), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Net.EndPoint EndPoint { get; } + System.Threading.Tasks.ValueTask UnbindAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface IMultiplexedConnectionListenerFactory + { + System.Threading.Tasks.ValueTask BindAsync(System.Net.EndPoint endpoint, Microsoft.AspNetCore.Http.Features.IFeatureCollection features = default(Microsoft.AspNetCore.Http.Features.IFeatureCollection), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public class MultiplexedConnectionBuilder : Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder + { + public System.IServiceProvider ApplicationServices { get => throw null; } + public Microsoft.AspNetCore.Connections.MultiplexedConnectionDelegate Build() => throw null; + public MultiplexedConnectionBuilder(System.IServiceProvider applicationServices) => throw null; + public Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder Use(System.Func middleware) => throw null; + } + public abstract class MultiplexedConnectionContext : Microsoft.AspNetCore.Connections.BaseConnectionContext, System.IAsyncDisposable + { + public abstract System.Threading.Tasks.ValueTask AcceptAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public abstract System.Threading.Tasks.ValueTask ConnectAsync(Microsoft.AspNetCore.Http.Features.IFeatureCollection features = default(Microsoft.AspNetCore.Http.Features.IFeatureCollection), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + protected MultiplexedConnectionContext() => throw null; + } + public delegate System.Threading.Tasks.Task MultiplexedConnectionDelegate(Microsoft.AspNetCore.Connections.MultiplexedConnectionContext connection); + public class TlsConnectionCallbackContext + { + public System.Net.Security.SslClientHelloInfo ClientHelloInfo { get => throw null; set { } } + public Microsoft.AspNetCore.Connections.BaseConnectionContext Connection { get => throw null; set { } } + public TlsConnectionCallbackContext() => throw null; + public object State { get => throw null; set { } } + } + public class TlsConnectionCallbackOptions + { + public System.Collections.Generic.List ApplicationProtocols { get => throw null; set { } } + public TlsConnectionCallbackOptions() => throw null; + public System.Func> OnConnection { get => throw null; set { } } + public object OnConnectionState { get => throw null; set { } } + } + [System.Flags] + public enum TransferFormat + { + Binary = 1, + Text = 2, + } + public class UriEndPoint : System.Net.EndPoint + { + public UriEndPoint(System.Uri uri) => throw null; + public override string ToString() => throw null; + public System.Uri Uri { get => throw null; } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.CookiePolicy.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.CookiePolicy.cs index 79c0c7f33e9..c435f6bd440 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.CookiePolicy.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.CookiePolicy.cs @@ -1,83 +1,75 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.CookiePolicy, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class CookiePolicyAppBuilderExtensions + public static partial class CookiePolicyAppBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseCookiePolicy(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseCookiePolicy(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.CookiePolicyOptions options) => throw null; } - public class CookiePolicyOptions { - public System.Func CheckConsentNeeded { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.CookieBuilder ConsentCookie { get => throw null; set => throw null; } - public string ConsentCookieValue { get => throw null; set => throw null; } + public System.Func CheckConsentNeeded { get => throw null; set { } } + public Microsoft.AspNetCore.Http.CookieBuilder ConsentCookie { get => throw null; set { } } + public string ConsentCookieValue { get => throw null; set { } } public CookiePolicyOptions() => throw null; - public Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy HttpOnly { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.SameSiteMode MinimumSameSitePolicy { get => throw null; set => throw null; } - public System.Action OnAppendCookie { get => throw null; set => throw null; } - public System.Action OnDeleteCookie { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.CookieSecurePolicy Secure { get => throw null; set => throw null; } + public Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy HttpOnly { get => throw null; set { } } + public Microsoft.AspNetCore.Http.SameSiteMode MinimumSameSitePolicy { get => throw null; set { } } + public System.Action OnAppendCookie { get => throw null; set { } } + public System.Action OnDeleteCookie { get => throw null; set { } } + public Microsoft.AspNetCore.Http.CookieSecurePolicy Secure { get => throw null; set { } } } - } namespace CookiePolicy { public class AppendCookieContext { - public AppendCookieContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.CookieOptions options, string name, string value) => throw null; public Microsoft.AspNetCore.Http.HttpContext Context { get => throw null; } - public string CookieName { get => throw null; set => throw null; } + public string CookieName { get => throw null; set { } } public Microsoft.AspNetCore.Http.CookieOptions CookieOptions { get => throw null; } - public string CookieValue { get => throw null; set => throw null; } + public string CookieValue { get => throw null; set { } } + public AppendCookieContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.CookieOptions options, string name, string value) => throw null; public bool HasConsent { get => throw null; } public bool IsConsentNeeded { get => throw null; } - public bool IssueCookie { get => throw null; set => throw null; } + public bool IssueCookie { get => throw null; set { } } } - public class CookiePolicyMiddleware { - public CookiePolicyMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) => throw null; public CookiePolicyMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory factory) => throw null; + public CookiePolicyMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; - public Microsoft.AspNetCore.Builder.CookiePolicyOptions Options { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Builder.CookiePolicyOptions Options { get => throw null; set { } } } - public class DeleteCookieContext { public Microsoft.AspNetCore.Http.HttpContext Context { get => throw null; } - public string CookieName { get => throw null; set => throw null; } + public string CookieName { get => throw null; set { } } public Microsoft.AspNetCore.Http.CookieOptions CookieOptions { get => throw null; } public DeleteCookieContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.CookieOptions options, string name) => throw null; public bool HasConsent { get => throw null; } public bool IsConsentNeeded { get => throw null; } - public bool IssueCookie { get => throw null; set => throw null; } + public bool IssueCookie { get => throw null; set { } } } - - public enum HttpOnlyPolicy : int + public enum HttpOnlyPolicy { - Always = 1, None = 0, + Always = 1, } - } } namespace Extensions { namespace DependencyInjection { - public static class CookiePolicyServiceCollectionExtensions + public static partial class CookiePolicyServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddCookiePolicy(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddCookiePolicy(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) where TService : class => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs index ff5767e49b8..4fc77ffddf0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs @@ -1,46 +1,40 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Cors, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class CorsEndpointConventionBuilderExtensions + public static partial class CorsEndpointConventionBuilderExtensions { - public static TBuilder RequireCors(this TBuilder builder, System.Action configurePolicy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder RequireCors(this TBuilder builder, string policyName) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; + public static TBuilder RequireCors(this TBuilder builder, System.Action configurePolicy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; } - - public static class CorsMiddlewareExtensions + public static partial class CorsMiddlewareExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseCors(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseCors(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configurePolicy) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseCors(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string policyName) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseCors(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configurePolicy) => throw null; } - } namespace Cors { - public class CorsPolicyMetadata : Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata, Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyMetadata + public class CorsPolicyMetadata : Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyMetadata, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata { public CorsPolicyMetadata(Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) => throw null; public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy Policy { get => throw null; } } - - public class DisableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata, Microsoft.AspNetCore.Cors.Infrastructure.IDisableCorsAttribute + public class DisableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.IDisableCorsAttribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata { public DisableCorsAttribute() => throw null; } - - public class EnableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata, Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute + public class EnableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata { public EnableCorsAttribute() => throw null; public EnableCorsAttribute(string policyName) => throw null; - public string PolicyName { get => throw null; set => throw null; } + public string PolicyName { get => throw null; set { } } } - namespace Infrastructure { public static class CorsConstants @@ -57,26 +51,23 @@ namespace Microsoft public static string Origin; public static string PreflightHttpMethod; } - public class CorsMiddleware { - public CorsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public CorsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public CorsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, string policyName) => throw null; + public CorsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider corsPolicyProvider) => throw null; } - public class CorsOptions { - public void AddDefaultPolicy(System.Action configurePolicy) => throw null; public void AddDefaultPolicy(Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) => throw null; - public void AddPolicy(string name, System.Action configurePolicy) => throw null; + public void AddDefaultPolicy(System.Action configurePolicy) => throw null; public void AddPolicy(string name, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) => throw null; + public void AddPolicy(string name, System.Action configurePolicy) => throw null; public CorsOptions() => throw null; - public string DefaultPolicyName { get => throw null; set => throw null; } + public string DefaultPolicyName { get => throw null; set { } } public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy GetPolicy(string name) => throw null; } - public class CorsPolicy { public bool AllowAnyHeader { get => throw null; } @@ -85,14 +76,13 @@ namespace Microsoft public CorsPolicy() => throw null; public System.Collections.Generic.IList ExposedHeaders { get => throw null; } public System.Collections.Generic.IList Headers { get => throw null; } - public System.Func IsOriginAllowed { get => throw null; set => throw null; } + public System.Func IsOriginAllowed { get => throw null; set { } } public System.Collections.Generic.IList Methods { get => throw null; } public System.Collections.Generic.IList Origins { get => throw null; } - public System.TimeSpan? PreflightMaxAge { get => throw null; set => throw null; } - public bool SupportsCredentials { get => throw null; set => throw null; } + public System.TimeSpan? PreflightMaxAge { get => throw null; set { } } + public bool SupportsCredentials { get => throw null; set { } } public override string ToString() => throw null; } - public class CorsPolicyBuilder { public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder AllowAnyHeader() => throw null; @@ -100,8 +90,8 @@ namespace Microsoft public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder AllowAnyOrigin() => throw null; public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder AllowCredentials() => throw null; public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy Build() => throw null; - public CorsPolicyBuilder(Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) => throw null; public CorsPolicyBuilder(params string[] origins) => throw null; + public CorsPolicyBuilder(Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) => throw null; public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder DisallowCredentials() => throw null; public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder SetIsOriginAllowed(System.Func isOriginAllowed) => throw null; public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder SetIsOriginAllowedToAllowWildcardSubdomains() => throw null; @@ -111,63 +101,54 @@ namespace Microsoft public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder WithMethods(params string[] methods) => throw null; public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder WithOrigins(params string[] origins) => throw null; } - public class CorsResult { public System.Collections.Generic.IList AllowedExposedHeaders { get => throw null; } public System.Collections.Generic.IList AllowedHeaders { get => throw null; } public System.Collections.Generic.IList AllowedMethods { get => throw null; } - public string AllowedOrigin { get => throw null; set => throw null; } + public string AllowedOrigin { get => throw null; set { } } public CorsResult() => throw null; - public bool IsOriginAllowed { get => throw null; set => throw null; } - public bool IsPreflightRequest { get => throw null; set => throw null; } - public System.TimeSpan? PreflightMaxAge { get => throw null; set => throw null; } - public bool SupportsCredentials { get => throw null; set => throw null; } + public bool IsOriginAllowed { get => throw null; set { } } + public bool IsPreflightRequest { get => throw null; set { } } + public System.TimeSpan? PreflightMaxAge { get => throw null; set { } } + public bool SupportsCredentials { get => throw null; set { } } public override string ToString() => throw null; - public bool VaryByOrigin { get => throw null; set => throw null; } + public bool VaryByOrigin { get => throw null; set { } } } - public class CorsService : Microsoft.AspNetCore.Cors.Infrastructure.ICorsService { public virtual void ApplyResult(Microsoft.AspNetCore.Cors.Infrastructure.CorsResult result, Microsoft.AspNetCore.Http.HttpResponse response) => throw null; public CorsService(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public Microsoft.AspNetCore.Cors.Infrastructure.CorsResult EvaluatePolicy(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) => throw null; public Microsoft.AspNetCore.Cors.Infrastructure.CorsResult EvaluatePolicy(Microsoft.AspNetCore.Http.HttpContext context, string policyName) => throw null; + public Microsoft.AspNetCore.Cors.Infrastructure.CorsResult EvaluatePolicy(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) => throw null; public virtual void EvaluatePreflightRequest(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy, Microsoft.AspNetCore.Cors.Infrastructure.CorsResult result) => throw null; public virtual void EvaluateRequest(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy, Microsoft.AspNetCore.Cors.Infrastructure.CorsResult result) => throw null; } - public class DefaultCorsPolicyProvider : Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider { public DefaultCorsPolicyProvider(Microsoft.Extensions.Options.IOptions options) => throw null; public System.Threading.Tasks.Task GetPolicyAsync(Microsoft.AspNetCore.Http.HttpContext context, string policyName) => throw null; } - public interface ICorsPolicyMetadata : Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata { Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy Policy { get; } } - public interface ICorsPolicyProvider { System.Threading.Tasks.Task GetPolicyAsync(Microsoft.AspNetCore.Http.HttpContext context, string policyName); } - public interface ICorsService { void ApplyResult(Microsoft.AspNetCore.Cors.Infrastructure.CorsResult result, Microsoft.AspNetCore.Http.HttpResponse response); Microsoft.AspNetCore.Cors.Infrastructure.CorsResult EvaluatePolicy(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy); } - public interface IDisableCorsAttribute : Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata { } - public interface IEnableCorsAttribute : Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata { string PolicyName { get; set; } } - } } } @@ -175,12 +156,11 @@ namespace Microsoft { namespace DependencyInjection { - public static class CorsServiceCollectionExtensions + public static partial class CorsServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddCors(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddCors(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs new file mode 100644 index 00000000000..90ae7542fd6 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.AspNetCore.Cryptography.Internal, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.KeyDerivation.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.KeyDerivation.cs index ec08c360049..94af8fe1d90 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.KeyDerivation.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.KeyDerivation.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Cryptography.KeyDerivation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -11,16 +10,14 @@ namespace Microsoft { public static class KeyDerivation { - public static System.Byte[] Pbkdf2(string password, System.Byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested) => throw null; + public static byte[] Pbkdf2(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested) => throw null; } - - public enum KeyDerivationPrf : int + public enum KeyDerivationPrf { HMACSHA1 = 0, HMACSHA256 = 1, HMACSHA512 = 2, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Abstractions.cs index 4b0d1c2e0aa..d4c54f046a4 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Abstractions.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.DataProtection.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace DataProtection { - public static class DataProtectionCommonExtensions + public static partial class DataProtectionCommonExtensions { public static Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(this Microsoft.AspNetCore.DataProtection.IDataProtectionProvider provider, System.Collections.Generic.IEnumerable purposes) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(this Microsoft.AspNetCore.DataProtection.IDataProtectionProvider provider, string purpose, params string[] subPurposes) => throw null; @@ -17,25 +16,21 @@ namespace Microsoft public static string Protect(this Microsoft.AspNetCore.DataProtection.IDataProtector protector, string plaintext) => throw null; public static string Unprotect(this Microsoft.AspNetCore.DataProtection.IDataProtector protector, string protectedData) => throw null; } - public interface IDataProtectionProvider { Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(string purpose); } - public interface IDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider { - System.Byte[] Protect(System.Byte[] plaintext); - System.Byte[] Unprotect(System.Byte[] protectedData); + byte[] Protect(byte[] plaintext); + byte[] Unprotect(byte[] protectedData); } - namespace Infrastructure { public interface IApplicationDiscriminator { string Discriminator { get; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Extensions.cs index 8af2af938a4..e7eec5b5d83 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Extensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Extensions.cs @@ -1,38 +1,34 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.DataProtection.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace DataProtection { - public static class DataProtectionAdvancedExtensions + public static partial class DataProtectionAdvancedExtensions { - public static System.Byte[] Protect(this Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector protector, System.Byte[] plaintext, System.TimeSpan lifetime) => throw null; + public static byte[] Protect(this Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector protector, byte[] plaintext, System.TimeSpan lifetime) => throw null; public static string Protect(this Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector protector, string plaintext, System.DateTimeOffset expiration) => throw null; public static string Protect(this Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector protector, string plaintext, System.TimeSpan lifetime) => throw null; public static Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector ToTimeLimitedDataProtector(this Microsoft.AspNetCore.DataProtection.IDataProtector protector) => throw null; public static string Unprotect(this Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector protector, string protectedData, out System.DateTimeOffset expiration) => throw null; } - public static class DataProtectionProvider { + public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(string applicationName) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(System.IO.DirectoryInfo keyDirectory) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(System.IO.DirectoryInfo keyDirectory, System.Action setupAction) => throw null; - public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(System.IO.DirectoryInfo keyDirectory, System.Action setupAction, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(System.IO.DirectoryInfo keyDirectory, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(string applicationName) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(string applicationName, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(System.IO.DirectoryInfo keyDirectory, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(System.IO.DirectoryInfo keyDirectory, System.Action setupAction, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; } - - public interface ITimeLimitedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider, Microsoft.AspNetCore.DataProtection.IDataProtector + public interface ITimeLimitedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtector, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider { Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector CreateProtector(string purpose); - System.Byte[] Protect(System.Byte[] plaintext, System.DateTimeOffset expiration); - System.Byte[] Unprotect(System.Byte[] protectedData, out System.DateTimeOffset expiration); + byte[] Protect(byte[] plaintext, System.DateTimeOffset expiration); + byte[] Unprotect(byte[] protectedData, out System.DateTimeOffset expiration); } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.cs index 7f59a478870..7b48e9f2f88 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.cs @@ -1,17 +1,161 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.DataProtection, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace DataProtection { - public static class DataProtectionBuilderExtensions + namespace AuthenticatedEncryption + { + public sealed class AuthenticatedEncryptorFactory : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory + { + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key) => throw null; + public AuthenticatedEncryptorFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + } + public sealed class CngCbcAuthenticatedEncryptorFactory : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory + { + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key) => throw null; + public CngCbcAuthenticatedEncryptorFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + } + public sealed class CngGcmAuthenticatedEncryptorFactory : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory + { + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key) => throw null; + public CngGcmAuthenticatedEncryptorFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + } + namespace ConfigurationModel + { + public abstract class AlgorithmConfiguration + { + public abstract Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor(); + protected AlgorithmConfiguration() => throw null; + } + public sealed class AuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration + { + public override Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor() => throw null; + public AuthenticatedEncryptorConfiguration() => throw null; + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.EncryptionAlgorithm EncryptionAlgorithm { get => throw null; set { } } + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ValidationAlgorithm ValidationAlgorithm { get => throw null; set { } } + } + public sealed class AuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor + { + public AuthenticatedEncryptorDescriptor(Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorConfiguration configuration, Microsoft.AspNetCore.DataProtection.ISecret masterKey) => throw null; + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml() => throw null; + } + public sealed class AuthenticatedEncryptorDescriptorDeserializer : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptorDeserializer + { + public AuthenticatedEncryptorDescriptorDeserializer() => throw null; + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element) => throw null; + } + public sealed class CngCbcAuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration + { + public override Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor() => throw null; + public CngCbcAuthenticatedEncryptorConfiguration() => throw null; + public string EncryptionAlgorithm { get => throw null; set { } } + public int EncryptionAlgorithmKeySize { get => throw null; set { } } + public string EncryptionAlgorithmProvider { get => throw null; set { } } + public string HashAlgorithm { get => throw null; set { } } + public string HashAlgorithmProvider { get => throw null; set { } } + } + public sealed class CngCbcAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor + { + public CngCbcAuthenticatedEncryptorDescriptor(Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorConfiguration configuration, Microsoft.AspNetCore.DataProtection.ISecret masterKey) => throw null; + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml() => throw null; + } + public sealed class CngCbcAuthenticatedEncryptorDescriptorDeserializer : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptorDeserializer + { + public CngCbcAuthenticatedEncryptorDescriptorDeserializer() => throw null; + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element) => throw null; + } + public sealed class CngGcmAuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration + { + public override Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor() => throw null; + public CngGcmAuthenticatedEncryptorConfiguration() => throw null; + public string EncryptionAlgorithm { get => throw null; set { } } + public int EncryptionAlgorithmKeySize { get => throw null; set { } } + public string EncryptionAlgorithmProvider { get => throw null; set { } } + } + public sealed class CngGcmAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor + { + public CngGcmAuthenticatedEncryptorDescriptor(Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorConfiguration configuration, Microsoft.AspNetCore.DataProtection.ISecret masterKey) => throw null; + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml() => throw null; + } + public sealed class CngGcmAuthenticatedEncryptorDescriptorDeserializer : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptorDeserializer + { + public CngGcmAuthenticatedEncryptorDescriptorDeserializer() => throw null; + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element) => throw null; + } + public interface IAuthenticatedEncryptorDescriptor + { + Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml(); + } + public interface IAuthenticatedEncryptorDescriptorDeserializer + { + Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element); + } + public sealed class ManagedAuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration + { + public override Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor() => throw null; + public ManagedAuthenticatedEncryptorConfiguration() => throw null; + public int EncryptionAlgorithmKeySize { get => throw null; set { } } + public System.Type EncryptionAlgorithmType { get => throw null; set { } } + public System.Type ValidationAlgorithmType { get => throw null; set { } } + } + public sealed class ManagedAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor + { + public ManagedAuthenticatedEncryptorDescriptor(Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorConfiguration configuration, Microsoft.AspNetCore.DataProtection.ISecret masterKey) => throw null; + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml() => throw null; + } + public sealed class ManagedAuthenticatedEncryptorDescriptorDeserializer : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptorDeserializer + { + public ManagedAuthenticatedEncryptorDescriptorDeserializer() => throw null; + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element) => throw null; + } + public static partial class XmlExtensions + { + public static void MarkAsRequiresEncryption(this System.Xml.Linq.XElement element) => throw null; + } + public sealed class XmlSerializedDescriptorInfo + { + public XmlSerializedDescriptorInfo(System.Xml.Linq.XElement serializedDescriptorElement, System.Type deserializerType) => throw null; + public System.Type DeserializerType { get => throw null; } + public System.Xml.Linq.XElement SerializedDescriptorElement { get => throw null; } + } + } + public enum EncryptionAlgorithm + { + AES_128_CBC = 0, + AES_192_CBC = 1, + AES_256_CBC = 2, + AES_128_GCM = 3, + AES_192_GCM = 4, + AES_256_GCM = 5, + } + public interface IAuthenticatedEncryptor + { + byte[] Decrypt(System.ArraySegment ciphertext, System.ArraySegment additionalAuthenticatedData); + byte[] Encrypt(System.ArraySegment plaintext, System.ArraySegment additionalAuthenticatedData); + } + public interface IAuthenticatedEncryptorFactory + { + Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key); + } + public sealed class ManagedAuthenticatedEncryptorFactory : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory + { + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key) => throw null; + public ManagedAuthenticatedEncryptorFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + } + public enum ValidationAlgorithm + { + HMACSHA256 = 0, + HMACSHA512 = 1, + } + } + public static partial class DataProtectionBuilderExtensions { - public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder AddKeyEscrowSink(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, System.Func factory) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder AddKeyEscrowSink(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyEscrowSink sink) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder AddKeyEscrowSink(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder) where TImplementation : class, Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyEscrowSink => throw null; + public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder AddKeyEscrowSink(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, System.Func factory) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder AddKeyManagementOptions(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, System.Action setupAction) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder DisableAutomaticKeyGeneration(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToFileSystem(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, System.IO.DirectoryInfo directory) => throw null; @@ -31,235 +175,40 @@ namespace Microsoft public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder UseCustomCryptographicAlgorithms(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorConfiguration configuration) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder UseEphemeralDataProtectionProvider(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder) => throw null; } - public class DataProtectionOptions { - public string ApplicationDiscriminator { get => throw null; set => throw null; } + public string ApplicationDiscriminator { get => throw null; set { } } public DataProtectionOptions() => throw null; } - - public static class DataProtectionUtilityExtensions + public static partial class DataProtectionUtilityExtensions { public static string GetApplicationUniqueIdentifier(this System.IServiceProvider services) => throw null; } - - public class EphemeralDataProtectionProvider : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider + public sealed class EphemeralDataProtectionProvider : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider { public Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(string purpose) => throw null; public EphemeralDataProtectionProvider() => throw null; public EphemeralDataProtectionProvider(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public interface IDataProtectionBuilder { Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - - public interface IPersistedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider, Microsoft.AspNetCore.DataProtection.IDataProtector - { - System.Byte[] DangerousUnprotect(System.Byte[] protectedData, bool ignoreRevocationErrors, out bool requiresMigration, out bool wasRevoked); - } - - public interface ISecret : System.IDisposable - { - int Length { get; } - void WriteSecretIntoBuffer(System.ArraySegment buffer); - } - - public class Secret : Microsoft.AspNetCore.DataProtection.ISecret, System.IDisposable - { - public void Dispose() => throw null; - public int Length { get => throw null; } - public static Microsoft.AspNetCore.DataProtection.Secret Random(int numBytes) => throw null; - public Secret(System.ArraySegment value) => throw null; - public Secret(System.Byte[] value) => throw null; - public Secret(Microsoft.AspNetCore.DataProtection.ISecret secret) => throw null; - unsafe public Secret(System.Byte* secret, int secretLength) => throw null; - public void WriteSecretIntoBuffer(System.ArraySegment buffer) => throw null; - unsafe public void WriteSecretIntoBuffer(System.Byte* buffer, int bufferLength) => throw null; - } - - namespace AuthenticatedEncryption - { - public class AuthenticatedEncryptorFactory : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory - { - public AuthenticatedEncryptorFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key) => throw null; - } - - public class CngCbcAuthenticatedEncryptorFactory : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory - { - public CngCbcAuthenticatedEncryptorFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key) => throw null; - } - - public class CngGcmAuthenticatedEncryptorFactory : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory - { - public CngGcmAuthenticatedEncryptorFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key) => throw null; - } - - public enum EncryptionAlgorithm : int - { - AES_128_CBC = 0, - AES_128_GCM = 3, - AES_192_CBC = 1, - AES_192_GCM = 4, - AES_256_CBC = 2, - AES_256_GCM = 5, - } - - public interface IAuthenticatedEncryptor - { - System.Byte[] Decrypt(System.ArraySegment ciphertext, System.ArraySegment additionalAuthenticatedData); - System.Byte[] Encrypt(System.ArraySegment plaintext, System.ArraySegment additionalAuthenticatedData); - } - - public interface IAuthenticatedEncryptorFactory - { - Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key); - } - - public class ManagedAuthenticatedEncryptorFactory : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory - { - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key) => throw null; - public ManagedAuthenticatedEncryptorFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - } - - public enum ValidationAlgorithm : int - { - HMACSHA256 = 0, - HMACSHA512 = 1, - } - - namespace ConfigurationModel - { - public abstract class AlgorithmConfiguration - { - protected AlgorithmConfiguration() => throw null; - public abstract Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor(); - } - - public class AuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration - { - public AuthenticatedEncryptorConfiguration() => throw null; - public override Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor() => throw null; - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.EncryptionAlgorithm EncryptionAlgorithm { get => throw null; set => throw null; } - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ValidationAlgorithm ValidationAlgorithm { get => throw null; set => throw null; } - } - - public class AuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor - { - public AuthenticatedEncryptorDescriptor(Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorConfiguration configuration, Microsoft.AspNetCore.DataProtection.ISecret masterKey) => throw null; - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml() => throw null; - } - - public class AuthenticatedEncryptorDescriptorDeserializer : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptorDeserializer - { - public AuthenticatedEncryptorDescriptorDeserializer() => throw null; - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element) => throw null; - } - - public class CngCbcAuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration - { - public CngCbcAuthenticatedEncryptorConfiguration() => throw null; - public override Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor() => throw null; - public string EncryptionAlgorithm { get => throw null; set => throw null; } - public int EncryptionAlgorithmKeySize { get => throw null; set => throw null; } - public string EncryptionAlgorithmProvider { get => throw null; set => throw null; } - public string HashAlgorithm { get => throw null; set => throw null; } - public string HashAlgorithmProvider { get => throw null; set => throw null; } - } - - public class CngCbcAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor - { - public CngCbcAuthenticatedEncryptorDescriptor(Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorConfiguration configuration, Microsoft.AspNetCore.DataProtection.ISecret masterKey) => throw null; - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml() => throw null; - } - - public class CngCbcAuthenticatedEncryptorDescriptorDeserializer : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptorDeserializer - { - public CngCbcAuthenticatedEncryptorDescriptorDeserializer() => throw null; - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element) => throw null; - } - - public class CngGcmAuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration - { - public CngGcmAuthenticatedEncryptorConfiguration() => throw null; - public override Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor() => throw null; - public string EncryptionAlgorithm { get => throw null; set => throw null; } - public int EncryptionAlgorithmKeySize { get => throw null; set => throw null; } - public string EncryptionAlgorithmProvider { get => throw null; set => throw null; } - } - - public class CngGcmAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor - { - public CngGcmAuthenticatedEncryptorDescriptor(Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorConfiguration configuration, Microsoft.AspNetCore.DataProtection.ISecret masterKey) => throw null; - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml() => throw null; - } - - public class CngGcmAuthenticatedEncryptorDescriptorDeserializer : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptorDeserializer - { - public CngGcmAuthenticatedEncryptorDescriptorDeserializer() => throw null; - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element) => throw null; - } - - public interface IAuthenticatedEncryptorDescriptor - { - Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml(); - } - - public interface IAuthenticatedEncryptorDescriptorDeserializer - { - Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element); - } - - internal interface IInternalAlgorithmConfiguration - { - } - - public class ManagedAuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration - { - public override Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor() => throw null; - public int EncryptionAlgorithmKeySize { get => throw null; set => throw null; } - public System.Type EncryptionAlgorithmType { get => throw null; set => throw null; } - public ManagedAuthenticatedEncryptorConfiguration() => throw null; - public System.Type ValidationAlgorithmType { get => throw null; set => throw null; } - } - - public class ManagedAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor - { - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml() => throw null; - public ManagedAuthenticatedEncryptorDescriptor(Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorConfiguration configuration, Microsoft.AspNetCore.DataProtection.ISecret masterKey) => throw null; - } - - public class ManagedAuthenticatedEncryptorDescriptorDeserializer : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptorDeserializer - { - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element) => throw null; - public ManagedAuthenticatedEncryptorDescriptorDeserializer() => throw null; - } - - public static class XmlExtensions - { - public static void MarkAsRequiresEncryption(this System.Xml.Linq.XElement element) => throw null; - } - - public class XmlSerializedDescriptorInfo - { - public System.Type DeserializerType { get => throw null; } - public System.Xml.Linq.XElement SerializedDescriptorElement { get => throw null; } - public XmlSerializedDescriptorInfo(System.Xml.Linq.XElement serializedDescriptorElement, System.Type deserializerType) => throw null; - } - - } - } namespace Internal { public interface IActivator { object CreateInstance(System.Type expectedBaseType, string implementationTypeName); } - + } + public interface IPersistedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtector, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider + { + byte[] DangerousUnprotect(byte[] protectedData, bool ignoreRevocationErrors, out bool requiresMigration, out bool wasRevoked); + } + public interface ISecret : System.IDisposable + { + int Length { get; } + void WriteSecretIntoBuffer(System.ArraySegment buffer); } namespace KeyManagement { @@ -273,12 +222,10 @@ namespace Microsoft bool IsRevoked { get; } System.Guid KeyId { get; } } - public interface IKeyEscrowSink { void Store(System.Guid keyId, System.Xml.Linq.XElement element); } - public interface IKeyManager { Microsoft.AspNetCore.DataProtection.KeyManagement.IKey CreateNewKey(System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate); @@ -287,104 +234,102 @@ namespace Microsoft void RevokeAllKeys(System.DateTimeOffset revocationDate, string reason = default(string)); void RevokeKey(System.Guid keyId, string reason = default(string)); } - - public class KeyManagementOptions - { - public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration AuthenticatedEncryptorConfiguration { get => throw null; set => throw null; } - public System.Collections.Generic.IList AuthenticatedEncryptorFactories { get => throw null; } - public bool AutoGenerateKeys { get => throw null; set => throw null; } - public System.Collections.Generic.IList KeyEscrowSinks { get => throw null; } - public KeyManagementOptions() => throw null; - public System.TimeSpan NewKeyLifetime { get => throw null; set => throw null; } - public Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor XmlEncryptor { get => throw null; set => throw null; } - public Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository XmlRepository { get => throw null; set => throw null; } - } - - public class XmlKeyManager : Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager - { - public Microsoft.AspNetCore.DataProtection.KeyManagement.IKey CreateNewKey(System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate) => throw null; - Microsoft.AspNetCore.DataProtection.KeyManagement.IKey Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager.CreateNewKey(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate) => throw null; - Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager.DeserializeDescriptorFromKeyElement(System.Xml.Linq.XElement keyElement) => throw null; - public System.Collections.Generic.IReadOnlyCollection GetAllKeys() => throw null; - public System.Threading.CancellationToken GetCacheExpirationToken() => throw null; - public void RevokeAllKeys(System.DateTimeOffset revocationDate, string reason = default(string)) => throw null; - public void RevokeKey(System.Guid keyId, string reason = default(string)) => throw null; - void Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager.RevokeSingleKey(System.Guid keyId, System.DateTimeOffset revocationDate, string reason) => throw null; - public XmlKeyManager(Microsoft.Extensions.Options.IOptions keyManagementOptions, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator) => throw null; - public XmlKeyManager(Microsoft.Extensions.Options.IOptions keyManagementOptions, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - } - namespace Internal { - public class CacheableKeyRing + public sealed class CacheableKeyRing { } - public struct DefaultKeyResolution { public Microsoft.AspNetCore.DataProtection.KeyManagement.IKey DefaultKey; - // Stub generator skipped constructor public Microsoft.AspNetCore.DataProtection.KeyManagement.IKey FallbackKey; public bool ShouldGenerateNewKey; } - public interface ICacheableKeyRingProvider { Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.CacheableKeyRing GetCacheableKeyRing(System.DateTimeOffset now); } - public interface IDefaultKeyResolver { Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution ResolveDefaultKeyPolicy(System.DateTimeOffset now, System.Collections.Generic.IEnumerable allKeys); } - public interface IInternalXmlKeyManager { Microsoft.AspNetCore.DataProtection.KeyManagement.IKey CreateNewKey(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate); Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor DeserializeDescriptorFromKeyElement(System.Xml.Linq.XElement keyElement); void RevokeSingleKey(System.Guid keyId, System.DateTimeOffset revocationDate, string reason); } - public interface IKeyRing { Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor DefaultAuthenticatedEncryptor { get; } System.Guid DefaultKeyId { get; } Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor GetAuthenticatedEncryptorByKeyId(System.Guid keyId, out bool isRevoked); } - public interface IKeyRingProvider { Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing GetCurrentKeyRing(); } - + } + public class KeyManagementOptions + { + public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration AuthenticatedEncryptorConfiguration { get => throw null; set { } } + public System.Collections.Generic.IList AuthenticatedEncryptorFactories { get => throw null; } + public bool AutoGenerateKeys { get => throw null; set { } } + public KeyManagementOptions() => throw null; + public System.Collections.Generic.IList KeyEscrowSinks { get => throw null; } + public System.TimeSpan NewKeyLifetime { get => throw null; set { } } + public Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor XmlEncryptor { get => throw null; set { } } + public Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository XmlRepository { get => throw null; set { } } + } + public sealed class XmlKeyManager : Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager + { + public Microsoft.AspNetCore.DataProtection.KeyManagement.IKey CreateNewKey(System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate) => throw null; + Microsoft.AspNetCore.DataProtection.KeyManagement.IKey Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager.CreateNewKey(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate) => throw null; + public XmlKeyManager(Microsoft.Extensions.Options.IOptions keyManagementOptions, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator) => throw null; + public XmlKeyManager(Microsoft.Extensions.Options.IOptions keyManagementOptions, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager.DeserializeDescriptorFromKeyElement(System.Xml.Linq.XElement keyElement) => throw null; + public System.Collections.Generic.IReadOnlyCollection GetAllKeys() => throw null; + public System.Threading.CancellationToken GetCacheExpirationToken() => throw null; + public void RevokeAllKeys(System.DateTimeOffset revocationDate, string reason = default(string)) => throw null; + public void RevokeKey(System.Guid keyId, string reason = default(string)) => throw null; + void Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager.RevokeSingleKey(System.Guid keyId, System.DateTimeOffset revocationDate, string reason) => throw null; } } namespace Repositories { public class FileSystemXmlRepository : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository { + public FileSystemXmlRepository(System.IO.DirectoryInfo directory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public static System.IO.DirectoryInfo DefaultKeyStorageDirectory { get => throw null; } public System.IO.DirectoryInfo Directory { get => throw null; } - public FileSystemXmlRepository(System.IO.DirectoryInfo directory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public virtual System.Collections.Generic.IReadOnlyCollection GetAllElements() => throw null; public virtual void StoreElement(System.Xml.Linq.XElement element, string friendlyName) => throw null; } - public interface IXmlRepository { System.Collections.Generic.IReadOnlyCollection GetAllElements(); void StoreElement(System.Xml.Linq.XElement element, string friendlyName); } - public class RegistryXmlRepository : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository { + public RegistryXmlRepository(Microsoft.Win32.RegistryKey registryKey, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public static Microsoft.Win32.RegistryKey DefaultRegistryKey { get => throw null; } public virtual System.Collections.Generic.IReadOnlyCollection GetAllElements() => throw null; public Microsoft.Win32.RegistryKey RegistryKey { get => throw null; } - public RegistryXmlRepository(Microsoft.Win32.RegistryKey registryKey, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public virtual void StoreElement(System.Xml.Linq.XElement element, string friendlyName) => throw null; } - + } + public sealed class Secret : System.IDisposable, Microsoft.AspNetCore.DataProtection.ISecret + { + public Secret(System.ArraySegment value) => throw null; + public Secret(byte[] value) => throw null; + public unsafe Secret(byte* secret, int secretLength) => throw null; + public Secret(Microsoft.AspNetCore.DataProtection.ISecret secret) => throw null; + public void Dispose() => throw null; + public int Length { get => throw null; } + public static Microsoft.AspNetCore.DataProtection.Secret Random(int numBytes) => throw null; + public void WriteSecretIntoBuffer(System.ArraySegment buffer) => throw null; + public unsafe void WriteSecretIntoBuffer(byte* buffer, int bufferLength) => throw null; } namespace XmlEncryption { @@ -393,98 +338,76 @@ namespace Microsoft public CertificateResolver() => throw null; public virtual System.Security.Cryptography.X509Certificates.X509Certificate2 ResolveCertificate(string thumbprint) => throw null; } - - public class CertificateXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor + public sealed class CertificateXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor { - public CertificateXmlEncryptor(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public CertificateXmlEncryptor(string thumbprint, Microsoft.AspNetCore.DataProtection.XmlEncryption.ICertificateResolver certificateResolver, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public CertificateXmlEncryptor(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo Encrypt(System.Xml.Linq.XElement plaintextElement) => throw null; } - [System.Flags] - public enum DpapiNGProtectionDescriptorFlags : int + public enum DpapiNGProtectionDescriptorFlags { - MachineKey = 32, - NamedDescriptor = 1, None = 0, + NamedDescriptor = 1, + MachineKey = 32, } - - public class DpapiNGXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor + public sealed class DpapiNGXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor { - public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; public DpapiNGXmlDecryptor() => throw null; public DpapiNGXmlDecryptor(System.IServiceProvider services) => throw null; + public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; } - - public class DpapiNGXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor + public sealed class DpapiNGXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor { public DpapiNGXmlEncryptor(string protectionDescriptorRule, Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiNGProtectionDescriptorFlags flags, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo Encrypt(System.Xml.Linq.XElement plaintextElement) => throw null; } - - public class DpapiXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor + public sealed class DpapiXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor { - public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; public DpapiXmlDecryptor() => throw null; public DpapiXmlDecryptor(System.IServiceProvider services) => throw null; + public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; } - - public class DpapiXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor + public sealed class DpapiXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor { public DpapiXmlEncryptor(bool protectToLocalMachine, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo Encrypt(System.Xml.Linq.XElement plaintextElement) => throw null; } - - public class EncryptedXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor + public sealed class EncryptedXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor { - public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; public EncryptedXmlDecryptor() => throw null; public EncryptedXmlDecryptor(System.IServiceProvider services) => throw null; + public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; } - - public class EncryptedXmlInfo + public sealed class EncryptedXmlInfo { + public EncryptedXmlInfo(System.Xml.Linq.XElement encryptedElement, System.Type decryptorType) => throw null; public System.Type DecryptorType { get => throw null; } public System.Xml.Linq.XElement EncryptedElement { get => throw null; } - public EncryptedXmlInfo(System.Xml.Linq.XElement encryptedElement, System.Type decryptorType) => throw null; } - public interface ICertificateResolver { System.Security.Cryptography.X509Certificates.X509Certificate2 ResolveCertificate(string thumbprint); } - - internal interface IInternalCertificateXmlEncryptor - { - } - - internal interface IInternalEncryptedXmlDecryptor - { - } - public interface IXmlDecryptor { System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement); } - public interface IXmlEncryptor { Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo Encrypt(System.Xml.Linq.XElement plaintextElement); } - - public class NullXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor + public sealed class NullXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor { - public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; public NullXmlDecryptor() => throw null; + public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; } - - public class NullXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor + public sealed class NullXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor { - public Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo Encrypt(System.Xml.Linq.XElement plaintextElement) => throw null; public NullXmlEncryptor() => throw null; public NullXmlEncryptor(System.IServiceProvider services) => throw null; + public Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo Encrypt(System.Xml.Linq.XElement plaintextElement) => throw null; } - } } } @@ -492,12 +415,11 @@ namespace Microsoft { namespace DependencyInjection { - public static class DataProtectionServiceCollectionExtensions + public static partial class DataProtectionServiceCollectionExtensions { public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder AddDataProtection(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder AddDataProtection(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.Abstractions.cs index a9a42cc87ac..d7fa10d7b78 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,15 +8,14 @@ namespace Microsoft { public class CompilationFailure { + public string CompiledContent { get => throw null; } public CompilationFailure(string sourceFilePath, string sourceFileContent, string compiledContent, System.Collections.Generic.IEnumerable messages) => throw null; public CompilationFailure(string sourceFilePath, string sourceFileContent, string compiledContent, System.Collections.Generic.IEnumerable messages, string failureSummary) => throw null; - public string CompiledContent { get => throw null; } public string FailureSummary { get => throw null; } public System.Collections.Generic.IEnumerable Messages { get => throw null; } public string SourceFileContent { get => throw null; } public string SourceFilePath { get => throw null; } } - public class DiagnosticMessage { public DiagnosticMessage(string message, string formattedMessage, string filePath, int startLine, int startColumn, int endLine, int endColumn) => throw null; @@ -29,51 +27,43 @@ namespace Microsoft public int StartColumn { get => throw null; } public int StartLine { get => throw null; } } - public class ErrorContext { public ErrorContext(Microsoft.AspNetCore.Http.HttpContext httpContext, System.Exception exception) => throw null; public System.Exception Exception { get => throw null; } public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } } - public interface ICompilationException { System.Collections.Generic.IEnumerable CompilationFailures { get; } } - public interface IDeveloperPageExceptionFilter { System.Threading.Tasks.Task HandleExceptionAsync(Microsoft.AspNetCore.Diagnostics.ErrorContext errorContext, System.Func next); } - public interface IExceptionHandlerFeature { - Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; } + virtual Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; } System.Exception Error { get; } - string Path { get => throw null; } - Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } + virtual string Path { get => throw null; } + virtual Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } } - public interface IExceptionHandlerPathFeature : Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature { - string Path { get => throw null; } + virtual string Path { get => throw null; } } - public interface IStatusCodePagesFeature { bool Enabled { get; set; } } - public interface IStatusCodeReExecuteFeature { - Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; } + virtual Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; } string OriginalPath { get; set; } string OriginalPathBase { get; set; } string OriginalQueryString { get; set; } - Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } + virtual Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.HealthChecks.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.HealthChecks.cs index 72e2ff634ce..7ff77eb9a75 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.HealthChecks.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.HealthChecks.cs @@ -1,28 +1,25 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Diagnostics.HealthChecks, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class HealthCheckApplicationBuilderExtensions + public static partial class HealthCheckApplicationBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, int port) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, int port, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, string port) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, int port, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, string port, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) => throw null; } - - public static class HealthCheckEndpointRouteBuilderExtensions + public static partial class HealthCheckEndpointRouteBuilderExtensions { public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapHealthChecks(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapHealthChecks(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) => throw null; } - } namespace Diagnostics { @@ -33,16 +30,14 @@ namespace Microsoft public HealthCheckMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions healthCheckOptions, Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService healthCheckService) => throw null; public System.Threading.Tasks.Task InvokeAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - public class HealthCheckOptions { - public bool AllowCachingResponses { get => throw null; set => throw null; } + public bool AllowCachingResponses { get => throw null; set { } } public HealthCheckOptions() => throw null; - public System.Func Predicate { get => throw null; set => throw null; } - public System.Func ResponseWriter { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary ResultStatusCodes { get => throw null; set => throw null; } + public System.Func Predicate { get => throw null; set { } } + public System.Func ResponseWriter { get => throw null; set { } } + public System.Collections.Generic.IDictionary ResultStatusCodes { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.cs index 25407c6d530..4e2c6079c2f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.cs @@ -1,72 +1,63 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Diagnostics, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class DeveloperExceptionPageExtensions + public static partial class DeveloperExceptionPageExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDeveloperExceptionPage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDeveloperExceptionPage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions options) => throw null; } - public class DeveloperExceptionPageOptions { public DeveloperExceptionPageOptions() => throw null; - public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set => throw null; } - public int SourceCodeLineCount { get => throw null; set => throw null; } + public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set { } } + public int SourceCodeLineCount { get => throw null; set { } } } - - public static class ExceptionHandlerExtensions + public static partial class ExceptionHandlerExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseExceptionHandler(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseExceptionHandler(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string errorHandlingPath) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseExceptionHandler(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configure) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseExceptionHandler(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.ExceptionHandlerOptions options) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseExceptionHandler(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string errorHandlingPath) => throw null; } - public class ExceptionHandlerOptions { - public bool AllowStatusCode404Response { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.RequestDelegate ExceptionHandler { get => throw null; set => throw null; } + public bool AllowStatusCode404Response { get => throw null; set { } } public ExceptionHandlerOptions() => throw null; - public Microsoft.AspNetCore.Http.PathString ExceptionHandlingPath { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.RequestDelegate ExceptionHandler { get => throw null; set { } } + public Microsoft.AspNetCore.Http.PathString ExceptionHandlingPath { get => throw null; set { } } } - - public static class StatusCodePagesExtensions + public static partial class StatusCodePagesExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configuration) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Func handler) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.StatusCodePagesOptions options) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Func handler) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string contentType, string bodyFormat) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string pathFormat, string queryFormat = default(string)) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configuration) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePagesWithRedirects(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string locationFormat) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string pathFormat, string queryFormat = default(string)) => throw null; } - public class StatusCodePagesOptions { - public System.Func HandleAsync { get => throw null; set => throw null; } public StatusCodePagesOptions() => throw null; + public System.Func HandleAsync { get => throw null; set { } } } - - public static class WelcomePageExtensions + public static partial class WelcomePageExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.WelcomePageOptions options) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string path) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - public class WelcomePageOptions { - public Microsoft.AspNetCore.Http.PathString Path { get => throw null; set => throw null; } public WelcomePageOptions() => throw null; + public Microsoft.AspNetCore.Http.PathString Path { get => throw null; set { } } } - } namespace Diagnostics { @@ -75,70 +66,61 @@ namespace Microsoft public DeveloperExceptionPageMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, System.Diagnostics.DiagnosticSource diagnosticSource, System.Collections.Generic.IEnumerable filters) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - - public class ExceptionHandlerFeature : Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature, Microsoft.AspNetCore.Diagnostics.IExceptionHandlerPathFeature + public class ExceptionHandlerFeature : Microsoft.AspNetCore.Diagnostics.IExceptionHandlerPathFeature, Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature { - public Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; set => throw null; } - public System.Exception Error { get => throw null; set => throw null; } public ExceptionHandlerFeature() => throw null; - public string Path { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; set { } } + public System.Exception Error { get => throw null; set { } } + public string Path { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } } - public class ExceptionHandlerMiddleware { public ExceptionHandlerMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options, System.Diagnostics.DiagnosticListener diagnosticListener) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class StatusCodeContext { + public StatusCodeContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Builder.StatusCodePagesOptions options, Microsoft.AspNetCore.Http.RequestDelegate next) => throw null; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public Microsoft.AspNetCore.Http.RequestDelegate Next { get => throw null; } public Microsoft.AspNetCore.Builder.StatusCodePagesOptions Options { get => throw null; } - public StatusCodeContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Builder.StatusCodePagesOptions options, Microsoft.AspNetCore.Http.RequestDelegate next) => throw null; } - public class StatusCodePagesFeature : Microsoft.AspNetCore.Diagnostics.IStatusCodePagesFeature { - public bool Enabled { get => throw null; set => throw null; } public StatusCodePagesFeature() => throw null; + public bool Enabled { get => throw null; set { } } } - public class StatusCodePagesMiddleware { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public StatusCodePagesMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class StatusCodeReExecuteFeature : Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature { - public Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; set => throw null; } - public string OriginalPath { get => throw null; set => throw null; } - public string OriginalPathBase { get => throw null; set => throw null; } - public string OriginalQueryString { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } public StatusCodeReExecuteFeature() => throw null; + public Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; set { } } + public string OriginalPath { get => throw null; set { } } + public string OriginalPathBase { get => throw null; set { } } + public string OriginalQueryString { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } } - public class WelcomePageMiddleware { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public WelcomePageMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - } } namespace Extensions { namespace DependencyInjection { - public static class ExceptionHandlerServiceCollectionExtensions + public static partial class ExceptionHandlerServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddExceptionHandler(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddExceptionHandler(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) where TService : class => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HostFiltering.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HostFiltering.cs index 88f68a97857..5b05ca1fce7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HostFiltering.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HostFiltering.cs @@ -1,22 +1,19 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.HostFiltering, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class HostFilteringBuilderExtensions + public static partial class HostFilteringBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHostFiltering(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - - public static class HostFilteringServicesExtensions + public static partial class HostFilteringServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHostFiltering(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } namespace HostFiltering { @@ -25,15 +22,13 @@ namespace Microsoft public HostFilteringMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Options.IOptionsMonitor optionsMonitor) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class HostFilteringOptions { - public bool AllowEmptyHosts { get => throw null; set => throw null; } - public System.Collections.Generic.IList AllowedHosts { get => throw null; set => throw null; } + public System.Collections.Generic.IList AllowedHosts { get => throw null; set { } } + public bool AllowEmptyHosts { get => throw null; set { } } public HostFilteringOptions() => throw null; - public bool IncludeFailureMessage { get => throw null; set => throw null; } + public bool IncludeFailureMessage { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Abstractions.cs index 104755283a9..62a895eb0fe 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Hosting.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -13,8 +12,7 @@ namespace Microsoft public static string Production; public static string Staging; } - - public static class HostingAbstractionsWebHostBuilderExtensions + public static partial class HostingAbstractionsWebHostBuilderExtensions { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CaptureStartupErrors(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, bool captureStartupErrors) => throw null; public static Microsoft.AspNetCore.Hosting.IWebHostBuilder PreferHostingUrls(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, bool preferHostingUrls) => throw null; @@ -29,7 +27,6 @@ namespace Microsoft public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseUrls(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, params string[] urls) => throw null; public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseWebRoot(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, string webRoot) => throw null; } - public static partial class HostingEnvironmentExtensions { public static bool IsDevelopment(this Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnvironment) => throw null; @@ -37,13 +34,11 @@ namespace Microsoft public static bool IsProduction(this Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnvironment) => throw null; public static bool IsStaging(this Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnvironment) => throw null; } - - public class HostingStartupAttribute : System.Attribute + public sealed class HostingStartupAttribute : System.Attribute { public HostingStartupAttribute(System.Type hostingStartupType) => throw null; public System.Type HostingStartupType { get => throw null; } } - public interface IApplicationLifetime { System.Threading.CancellationToken ApplicationStarted { get; } @@ -51,7 +46,6 @@ namespace Microsoft System.Threading.CancellationToken ApplicationStopping { get; } void StopApplication(); } - public interface IHostingEnvironment { string ApplicationName { get; set; } @@ -61,33 +55,27 @@ namespace Microsoft Microsoft.Extensions.FileProviders.IFileProvider WebRootFileProvider { get; set; } string WebRootPath { get; set; } } - public interface IHostingStartup { void Configure(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder); } - public interface IStartup { void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app); System.IServiceProvider ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services); } - public interface IStartupConfigureContainerFilter { System.Action ConfigureContainer(System.Action container); } - public interface IStartupConfigureServicesFilter { System.Action ConfigureServices(System.Action next); } - public interface IStartupFilter { System.Action Configure(System.Action next); } - public interface IWebHost : System.IDisposable { Microsoft.AspNetCore.Http.Features.IFeatureCollection ServerFeatures { get; } @@ -96,7 +84,6 @@ namespace Microsoft System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - public interface IWebHostBuilder { Microsoft.AspNetCore.Hosting.IWebHost Build(); @@ -106,20 +93,17 @@ namespace Microsoft string GetSetting(string key); Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSetting(string key, string value); } - public interface IWebHostEnvironment : Microsoft.Extensions.Hosting.IHostEnvironment { Microsoft.Extensions.FileProviders.IFileProvider WebRootFileProvider { get; set; } string WebRootPath { get; set; } } - public class WebHostBuilderContext { - public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get => throw null; set => throw null; } + public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set { } } public WebHostBuilderContext() => throw null; + public Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get => throw null; set { } } } - public static class WebHostDefaults { public static string ApplicationKey; @@ -138,7 +122,6 @@ namespace Microsoft public static string SuppressStatusMessagesKey; public static string WebRootKey; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Server.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Server.Abstractions.cs index 7360c39d570..eed5ceddba7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Server.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Server.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,40 +8,12 @@ namespace Microsoft { namespace Server { - public interface IHttpApplication - { - TContext CreateContext(Microsoft.AspNetCore.Http.Features.IFeatureCollection contextFeatures); - void DisposeContext(TContext context, System.Exception exception); - System.Threading.Tasks.Task ProcessRequestAsync(TContext context); - } - - public interface IServer : System.IDisposable - { - Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get; } - System.Threading.Tasks.Task StartAsync(Microsoft.AspNetCore.Hosting.Server.IHttpApplication application, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken); - } - - public interface IServerIntegratedAuth - { - string AuthenticationScheme { get; } - bool IsEnabled { get; } - } - - public class ServerIntegratedAuth : Microsoft.AspNetCore.Hosting.Server.IServerIntegratedAuth - { - public string AuthenticationScheme { get => throw null; set => throw null; } - public bool IsEnabled { get => throw null; set => throw null; } - public ServerIntegratedAuth() => throw null; - } - namespace Abstractions { public interface IHostContextContainer { TContext HostContext { get; set; } } - } namespace Features { @@ -51,7 +22,29 @@ namespace Microsoft System.Collections.Generic.ICollection Addresses { get; } bool PreferHostingUrls { get; set; } } - + } + public interface IHttpApplication + { + TContext CreateContext(Microsoft.AspNetCore.Http.Features.IFeatureCollection contextFeatures); + void DisposeContext(TContext context, System.Exception exception); + System.Threading.Tasks.Task ProcessRequestAsync(TContext context); + } + public interface IServer : System.IDisposable + { + Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get; } + System.Threading.Tasks.Task StartAsync(Microsoft.AspNetCore.Hosting.Server.IHttpApplication application, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken); + } + public interface IServerIntegratedAuth + { + string AuthenticationScheme { get; } + bool IsEnabled { get; } + } + public class ServerIntegratedAuth : Microsoft.AspNetCore.Hosting.Server.IServerIntegratedAuth + { + public string AuthenticationScheme { get => throw null; set { } } + public ServerIntegratedAuth() => throw null; + public bool IsEnabled { get => throw null; set { } } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.cs index 628fe2725a4..16c895b5187 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.cs @@ -1,86 +1,27 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Hosting, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Hosting { - public class DelegateStartup : Microsoft.AspNetCore.Hosting.StartupBase - { - public override void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public DelegateStartup(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory, System.Action configureApp) : base(default(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory)) => throw null; - } - - public static partial class HostingEnvironmentExtensions - { - } - - public abstract class StartupBase : Microsoft.AspNetCore.Hosting.IStartup - { - public abstract void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app); - public virtual void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - System.IServiceProvider Microsoft.AspNetCore.Hosting.IStartup.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - public virtual System.IServiceProvider CreateServiceProvider(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - protected StartupBase() => throw null; - } - - public abstract class StartupBase : Microsoft.AspNetCore.Hosting.StartupBase - { - public virtual void ConfigureContainer(TBuilder builder) => throw null; - public override System.IServiceProvider CreateServiceProvider(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - public StartupBase(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory) => throw null; - } - - public class WebHostBuilder : Microsoft.AspNetCore.Hosting.IWebHostBuilder - { - public Microsoft.AspNetCore.Hosting.IWebHost Build() => throw null; - public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureAppConfiguration(System.Action configureDelegate) => throw null; - public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action configureServices) => throw null; - public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action configureServices) => throw null; - public string GetSetting(string key) => throw null; - public Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSetting(string key, string value) => throw null; - public WebHostBuilder() => throw null; - } - - public static class WebHostBuilderExtensions - { - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureApp) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureApp) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureAppConfiguration(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureDelegate) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureLogging(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureLogging) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureLogging(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureLogging) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseDefaultServiceProvider(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configure) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseDefaultServiceProvider(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configure) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Type startupType) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) where TStartup : class => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Func startupFactory) where TStartup : class => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStaticWebAssets(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) => throw null; - } - - public static class WebHostExtensions - { - public static void Run(this Microsoft.AspNetCore.Hosting.IWebHost host) => throw null; - public static System.Threading.Tasks.Task RunAsync(this Microsoft.AspNetCore.Hosting.IWebHost host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task StopAsync(this Microsoft.AspNetCore.Hosting.IWebHost host, System.TimeSpan timeout) => throw null; - public static void WaitForShutdown(this Microsoft.AspNetCore.Hosting.IWebHost host) => throw null; - public static System.Threading.Tasks.Task WaitForShutdownAsync(this Microsoft.AspNetCore.Hosting.IWebHost host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - namespace Builder { public class ApplicationBuilderFactory : Microsoft.AspNetCore.Hosting.Builder.IApplicationBuilderFactory { - public ApplicationBuilderFactory(System.IServiceProvider serviceProvider) => throw null; public Microsoft.AspNetCore.Builder.IApplicationBuilder CreateBuilder(Microsoft.AspNetCore.Http.Features.IFeatureCollection serverFeatures) => throw null; + public ApplicationBuilderFactory(System.IServiceProvider serviceProvider) => throw null; } - public interface IApplicationBuilderFactory { Microsoft.AspNetCore.Builder.IApplicationBuilder CreateBuilder(Microsoft.AspNetCore.Http.Features.IFeatureCollection serverFeatures); } - + } + public class DelegateStartup : Microsoft.AspNetCore.Hosting.StartupBase + { + public override void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; + public DelegateStartup(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory, System.Action configureApp) : base(default(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory)) => throw null; } namespace Infrastructure { @@ -88,7 +29,6 @@ namespace Microsoft { Microsoft.Extensions.Hosting.IHostBuilder ConfigureWebHost(System.Action configure, System.Action configureOptions); } - public interface ISupportsStartup { Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(System.Action configure); @@ -96,7 +36,6 @@ namespace Microsoft Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(System.Type startupType); Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(System.Func startupFactory); } - } namespace Server { @@ -105,12 +44,25 @@ namespace Microsoft public class ServerAddressesFeature : Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature { public System.Collections.Generic.ICollection Addresses { get => throw null; } - public bool PreferHostingUrls { get => throw null; set => throw null; } public ServerAddressesFeature() => throw null; + public bool PreferHostingUrls { get => throw null; set { } } } - } } + public abstract class StartupBase : Microsoft.AspNetCore.Hosting.IStartup + { + public abstract void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app); + System.IServiceProvider Microsoft.AspNetCore.Hosting.IStartup.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + public virtual void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + public virtual System.IServiceProvider CreateServiceProvider(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + protected StartupBase() => throw null; + } + public abstract class StartupBase : Microsoft.AspNetCore.Hosting.StartupBase + { + public virtual void ConfigureContainer(TBuilder builder) => throw null; + public override System.IServiceProvider CreateServiceProvider(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + public StartupBase(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory) => throw null; + } namespace StaticWebAssets { public class StaticWebAssetsLoader @@ -118,7 +70,38 @@ namespace Microsoft public StaticWebAssetsLoader() => throw null; public static void UseStaticWebAssets(Microsoft.AspNetCore.Hosting.IWebHostEnvironment environment, Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; } - + } + public class WebHostBuilder : Microsoft.AspNetCore.Hosting.IWebHostBuilder + { + public Microsoft.AspNetCore.Hosting.IWebHost Build() => throw null; + public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureAppConfiguration(System.Action configureDelegate) => throw null; + public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action configureServices) => throw null; + public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action configureServices) => throw null; + public WebHostBuilder() => throw null; + public string GetSetting(string key) => throw null; + public Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSetting(string key, string value) => throw null; + } + public static partial class WebHostBuilderExtensions + { + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureApp) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureApp) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureAppConfiguration(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureDelegate) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureLogging(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureLogging) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureLogging(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureLogging) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseDefaultServiceProvider(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configure) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseDefaultServiceProvider(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configure) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Func startupFactory) where TStartup : class => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Type startupType) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) where TStartup : class => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStaticWebAssets(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) => throw null; + } + public static partial class WebHostExtensions + { + public static void Run(this Microsoft.AspNetCore.Hosting.IWebHost host) => throw null; + public static System.Threading.Tasks.Task RunAsync(this Microsoft.AspNetCore.Hosting.IWebHost host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task StopAsync(this Microsoft.AspNetCore.Hosting.IWebHost host, System.TimeSpan timeout) => throw null; + public static void WaitForShutdown(this Microsoft.AspNetCore.Hosting.IWebHost host) => throw null; + public static System.Threading.Tasks.Task WaitForShutdownAsync(this Microsoft.AspNetCore.Hosting.IWebHost host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; } } namespace Http @@ -129,25 +112,22 @@ namespace Microsoft public DefaultHttpContextFactory(System.IServiceProvider serviceProvider) => throw null; public void Dispose(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - } } namespace Extensions { namespace Hosting { - public static class GenericHostWebHostBuilderExtensions + public static partial class GenericHostWebHostBuilderExtensions { public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureWebHost(this Microsoft.Extensions.Hosting.IHostBuilder builder, System.Action configure) => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureWebHost(this Microsoft.Extensions.Hosting.IHostBuilder builder, System.Action configure, System.Action configureWebHostBuilder) => throw null; } - public class WebHostBuilderOptions { - public bool SuppressEnvironmentConfiguration { get => throw null; set => throw null; } public WebHostBuilderOptions() => throw null; + public bool SuppressEnvironmentConfiguration { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs index f645b2a4f44..16cf406455d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Html.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Html { - public class HtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContentContainer + public class HtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent { public Microsoft.AspNetCore.Html.IHtmlContentBuilder Append(string unencoded) => throw null; public Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) => throw null; @@ -16,61 +15,54 @@ namespace Microsoft public void CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; public int Count { get => throw null; } public HtmlContentBuilder() => throw null; - public HtmlContentBuilder(System.Collections.Generic.IList entries) => throw null; public HtmlContentBuilder(int capacity) => throw null; + public HtmlContentBuilder(System.Collections.Generic.IList entries) => throw null; public void MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - - public static class HtmlContentBuilderExtensions + public static partial class HtmlContentBuilderExtensions { - public static Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendFormat(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, System.IFormatProvider formatProvider, string format, params object[] args) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendFormat(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, string format, params object[] args) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendFormat(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, System.IFormatProvider formatProvider, string format, params object[] args) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtmlLine(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, string encoded) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendLine(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendLine(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, Microsoft.AspNetCore.Html.IHtmlContent content) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendLine(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, string unencoded) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendLine(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, Microsoft.AspNetCore.Html.IHtmlContent content) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContentBuilder SetContent(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, string unencoded) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContentBuilder SetHtmlContent(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, Microsoft.AspNetCore.Html.IHtmlContent content) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContentBuilder SetHtmlContent(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, string encoded) => throw null; } - public class HtmlFormattableString : Microsoft.AspNetCore.Html.IHtmlContent { - public HtmlFormattableString(System.IFormatProvider formatProvider, string format, params object[] args) => throw null; public HtmlFormattableString(string format, params object[] args) => throw null; + public HtmlFormattableString(System.IFormatProvider formatProvider, string format, params object[] args) => throw null; public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - public class HtmlString : Microsoft.AspNetCore.Html.IHtmlContent { - public static Microsoft.AspNetCore.Html.HtmlString Empty; public HtmlString(string value) => throw null; + public static Microsoft.AspNetCore.Html.HtmlString Empty; public static Microsoft.AspNetCore.Html.HtmlString NewLine; public override string ToString() => throw null; public string Value { get => throw null; } public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - public interface IHtmlContent { void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder); } - - public interface IHtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentContainer + public interface IHtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent { Microsoft.AspNetCore.Html.IHtmlContentBuilder Append(string unencoded); Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent content); Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(string encoded); Microsoft.AspNetCore.Html.IHtmlContentBuilder Clear(); } - public interface IHtmlContentContainer : Microsoft.AspNetCore.Html.IHtmlContent { void CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder builder); void MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder builder); } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs index ecfba7c73fb..84c1761ce5c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Http.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,15 +8,45 @@ namespace Microsoft { public abstract class EndpointBuilder { - public System.IServiceProvider ApplicationServices { get => throw null; set => throw null; } + public System.IServiceProvider ApplicationServices { get => throw null; set { } } public abstract Microsoft.AspNetCore.Http.Endpoint Build(); - public string DisplayName { get => throw null; set => throw null; } protected EndpointBuilder() => throw null; + public string DisplayName { get => throw null; set { } } public System.Collections.Generic.IList> FilterFactories { get => throw null; } public System.Collections.Generic.IList Metadata { get => throw null; } - public Microsoft.AspNetCore.Http.RequestDelegate RequestDelegate { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.RequestDelegate RequestDelegate { get => throw null; set { } } + } + namespace Extensions + { + public class MapMiddleware + { + public MapMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Builder.Extensions.MapOptions options) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; + } + public class MapOptions + { + public Microsoft.AspNetCore.Http.RequestDelegate Branch { get => throw null; set { } } + public MapOptions() => throw null; + public Microsoft.AspNetCore.Http.PathString PathMatch { get => throw null; set { } } + public bool PreserveMatchedPathSegment { get => throw null; set { } } + } + public class MapWhenMiddleware + { + public MapWhenMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions options) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; + } + public class MapWhenOptions + { + public Microsoft.AspNetCore.Http.RequestDelegate Branch { get => throw null; set { } } + public MapWhenOptions() => throw null; + public System.Func Predicate { get => throw null; set { } } + } + public class UsePathBaseMiddleware + { + public UsePathBaseMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Http.PathString pathBase) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; + } } - public interface IApplicationBuilder { System.IServiceProvider ApplicationServices { get; set; } @@ -27,88 +56,43 @@ namespace Microsoft Microsoft.AspNetCore.Http.Features.IFeatureCollection ServerFeatures { get; } Microsoft.AspNetCore.Builder.IApplicationBuilder Use(System.Func middleware); } - public interface IEndpointConventionBuilder { void Add(System.Action convention); - void Finally(System.Action finallyConvention) => throw null; + virtual void Finally(System.Action finallyConvention) => throw null; } - - public static class MapExtensions + public static partial class MapExtensions { + public static Microsoft.AspNetCore.Builder.IApplicationBuilder Map(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string pathMatch, System.Action configuration) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder Map(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString pathMatch, System.Action configuration) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder Map(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString pathMatch, bool preserveMatchedPathSegment, System.Action configuration) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder Map(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string pathMatch, System.Action configuration) => throw null; } - - public static class MapWhenExtensions + public static partial class MapWhenExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder MapWhen(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Func predicate, System.Action configuration) => throw null; } - - public static class RunExtensions + public static partial class RunExtensions { public static void Run(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; } - - public static class UseExtensions + public static partial class UseExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder Use(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Func, System.Threading.Tasks.Task> middleware) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder Use(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Func middleware) => throw null; } - - public static class UseMiddlewareExtensions + public static partial class UseMiddlewareExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseMiddleware(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Type middleware, params object[] args) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseMiddleware(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, params object[] args) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseMiddleware(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Type middleware, params object[] args) => throw null; } - - public static class UsePathBaseExtensions + public static partial class UsePathBaseExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UsePathBase(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString pathBase) => throw null; } - - public static class UseWhenExtensions + public static partial class UseWhenExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWhen(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Func predicate, System.Action configuration) => throw null; } - - namespace Extensions - { - public class MapMiddleware - { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; - public MapMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Builder.Extensions.MapOptions options) => throw null; - } - - public class MapOptions - { - public Microsoft.AspNetCore.Http.RequestDelegate Branch { get => throw null; set => throw null; } - public MapOptions() => throw null; - public Microsoft.AspNetCore.Http.PathString PathMatch { get => throw null; set => throw null; } - public bool PreserveMatchedPathSegment { get => throw null; set => throw null; } - } - - public class MapWhenMiddleware - { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; - public MapWhenMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions options) => throw null; - } - - public class MapWhenOptions - { - public Microsoft.AspNetCore.Http.RequestDelegate Branch { get => throw null; set => throw null; } - public MapWhenOptions() => throw null; - public System.Func Predicate { get => throw null; set => throw null; } - } - - public class UsePathBaseMiddleware - { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; - public UsePathBaseMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Http.PathString pathBase) => throw null; - } - - } } namespace Cors { @@ -117,25 +101,22 @@ namespace Microsoft public interface ICorsMetadata { } - } } namespace Http { - public class AsParametersAttribute : System.Attribute + public sealed class AsParametersAttribute : System.Attribute { public AsParametersAttribute() => throw null; } - public class BadHttpRequestException : System.IO.IOException { - public BadHttpRequestException(string message) => throw null; - public BadHttpRequestException(string message, System.Exception innerException) => throw null; public BadHttpRequestException(string message, int statusCode) => throw null; + public BadHttpRequestException(string message) => throw null; public BadHttpRequestException(string message, int statusCode, System.Exception innerException) => throw null; + public BadHttpRequestException(string message, System.Exception innerException) => throw null; public int StatusCode { get => throw null; } } - public abstract class ConnectionInfo { public abstract System.Security.Cryptography.X509Certificates.X509Certificate2 ClientCertificate { get; set; } @@ -148,57 +129,50 @@ namespace Microsoft public abstract int RemotePort { get; set; } public virtual void RequestClose() => throw null; } - public class CookieBuilder { public Microsoft.AspNetCore.Http.CookieOptions Build(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public virtual Microsoft.AspNetCore.Http.CookieOptions Build(Microsoft.AspNetCore.Http.HttpContext context, System.DateTimeOffset expiresFrom) => throw null; public CookieBuilder() => throw null; - public virtual string Domain { get => throw null; set => throw null; } - public virtual System.TimeSpan? Expiration { get => throw null; set => throw null; } + public virtual string Domain { get => throw null; set { } } + public virtual System.TimeSpan? Expiration { get => throw null; set { } } public System.Collections.Generic.IList Extensions { get => throw null; } - public virtual bool HttpOnly { get => throw null; set => throw null; } - public virtual bool IsEssential { get => throw null; set => throw null; } - public virtual System.TimeSpan? MaxAge { get => throw null; set => throw null; } - public virtual string Name { get => throw null; set => throw null; } - public virtual string Path { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Http.SameSiteMode SameSite { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Http.CookieSecurePolicy SecurePolicy { get => throw null; set => throw null; } + public virtual bool HttpOnly { get => throw null; set { } } + public virtual bool IsEssential { get => throw null; set { } } + public virtual System.TimeSpan? MaxAge { get => throw null; set { } } + public virtual string Name { get => throw null; set { } } + public virtual string Path { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Http.SameSiteMode SameSite { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Http.CookieSecurePolicy SecurePolicy { get => throw null; set { } } } - - public enum CookieSecurePolicy : int + public enum CookieSecurePolicy { + SameAsRequest = 0, Always = 1, None = 2, - SameAsRequest = 0, } - - public class DefaultEndpointFilterInvocationContext : Microsoft.AspNetCore.Http.EndpointFilterInvocationContext + public sealed class DefaultEndpointFilterInvocationContext : Microsoft.AspNetCore.Http.EndpointFilterInvocationContext { public override System.Collections.Generic.IList Arguments { get => throw null; } public DefaultEndpointFilterInvocationContext(Microsoft.AspNetCore.Http.HttpContext httpContext, params object[] arguments) => throw null; public override T GetArgument(int index) => throw null; public override Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } } - public class Endpoint { - public string DisplayName { get => throw null; } public Endpoint(Microsoft.AspNetCore.Http.RequestDelegate requestDelegate, Microsoft.AspNetCore.Http.EndpointMetadataCollection metadata, string displayName) => throw null; + public string DisplayName { get => throw null; } public Microsoft.AspNetCore.Http.EndpointMetadataCollection Metadata { get => throw null; } public Microsoft.AspNetCore.Http.RequestDelegate RequestDelegate { get => throw null; } public override string ToString() => throw null; } - public delegate System.Threading.Tasks.ValueTask EndpointFilterDelegate(Microsoft.AspNetCore.Http.EndpointFilterInvocationContext context); - - public class EndpointFilterFactoryContext + public sealed class EndpointFilterFactoryContext { - public System.IServiceProvider ApplicationServices { get => throw null; set => throw null; } + public System.IServiceProvider ApplicationServices { get => throw null; set { } } public EndpointFilterFactoryContext() => throw null; - public System.Reflection.MethodInfo MethodInfo { get => throw null; set => throw null; } + public System.Reflection.MethodInfo MethodInfo { get => throw null; set { } } } - public abstract class EndpointFilterInvocationContext { public abstract System.Collections.Generic.IList Arguments { get; } @@ -206,29 +180,24 @@ namespace Microsoft public abstract T GetArgument(int index); public abstract Microsoft.AspNetCore.Http.HttpContext HttpContext { get; } } - - public static class EndpointHttpContextExtensions + public static partial class EndpointHttpContextExtensions { public static Microsoft.AspNetCore.Http.Endpoint GetEndpoint(this Microsoft.AspNetCore.Http.HttpContext context) => throw null; public static void SetEndpoint(this Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.Endpoint endpoint) => throw null; } - - public class EndpointMetadataCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable + public sealed class EndpointMetadataCollection : System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { + public int Count { get => throw null; } + public EndpointMetadataCollection(System.Collections.Generic.IEnumerable items) => throw null; + public EndpointMetadataCollection(params object[] items) => throw null; + public static Microsoft.AspNetCore.Http.EndpointMetadataCollection Empty; public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public object Current { get => throw null; } public void Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; public void Reset() => throw null; } - - - public int Count { get => throw null; } - public static Microsoft.AspNetCore.Http.EndpointMetadataCollection Empty; - public EndpointMetadataCollection(System.Collections.Generic.IEnumerable items) => throw null; - public EndpointMetadataCollection(params object[] items) => throw null; public Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; @@ -237,60 +206,65 @@ namespace Microsoft public T GetRequiredMetadata() where T : class => throw null; public object this[int index] { get => throw null; } } - + namespace Features + { + public interface IEndpointFeature + { + Microsoft.AspNetCore.Http.Endpoint Endpoint { get; set; } + } + public interface IRouteValuesFeature + { + Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get; set; } + } + } public struct FragmentString : System.IEquatable { - public static bool operator !=(Microsoft.AspNetCore.Http.FragmentString left, Microsoft.AspNetCore.Http.FragmentString right) => throw null; - public static bool operator ==(Microsoft.AspNetCore.Http.FragmentString left, Microsoft.AspNetCore.Http.FragmentString right) => throw null; + public FragmentString(string value) => throw null; public static Microsoft.AspNetCore.Http.FragmentString Empty; public bool Equals(Microsoft.AspNetCore.Http.FragmentString other) => throw null; public override bool Equals(object obj) => throw null; - // Stub generator skipped constructor - public FragmentString(string value) => throw null; - public static Microsoft.AspNetCore.Http.FragmentString FromUriComponent(System.Uri uri) => throw null; public static Microsoft.AspNetCore.Http.FragmentString FromUriComponent(string uriComponent) => throw null; + public static Microsoft.AspNetCore.Http.FragmentString FromUriComponent(System.Uri uri) => throw null; public override int GetHashCode() => throw null; public bool HasValue { get => throw null; } + public static bool operator ==(Microsoft.AspNetCore.Http.FragmentString left, Microsoft.AspNetCore.Http.FragmentString right) => throw null; + public static bool operator !=(Microsoft.AspNetCore.Http.FragmentString left, Microsoft.AspNetCore.Http.FragmentString right) => throw null; public override string ToString() => throw null; public string ToUriComponent() => throw null; public string Value { get => throw null; } } - - public static class HeaderDictionaryExtensions + public static partial class HeaderDictionaryExtensions { public static void Append(this Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key, Microsoft.Extensions.Primitives.StringValues value) => throw null; public static void AppendCommaSeparatedValues(this Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key, params string[] values) => throw null; public static string[] GetCommaSeparatedValues(this Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key) => throw null; public static void SetCommaSeparatedValues(this Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key, params string[] values) => throw null; } - public struct HostString : System.IEquatable { - public static bool operator !=(Microsoft.AspNetCore.Http.HostString left, Microsoft.AspNetCore.Http.HostString right) => throw null; - public static bool operator ==(Microsoft.AspNetCore.Http.HostString left, Microsoft.AspNetCore.Http.HostString right) => throw null; + public HostString(string value) => throw null; + public HostString(string host, int port) => throw null; public bool Equals(Microsoft.AspNetCore.Http.HostString other) => throw null; public override bool Equals(object obj) => throw null; - public static Microsoft.AspNetCore.Http.HostString FromUriComponent(System.Uri uri) => throw null; public static Microsoft.AspNetCore.Http.HostString FromUriComponent(string uriComponent) => throw null; + public static Microsoft.AspNetCore.Http.HostString FromUriComponent(System.Uri uri) => throw null; public override int GetHashCode() => throw null; public bool HasValue { get => throw null; } public string Host { get => throw null; } - // Stub generator skipped constructor - public HostString(string value) => throw null; - public HostString(string host, int port) => throw null; public static bool MatchesAny(Microsoft.Extensions.Primitives.StringSegment value, System.Collections.Generic.IList patterns) => throw null; + public static bool operator ==(Microsoft.AspNetCore.Http.HostString left, Microsoft.AspNetCore.Http.HostString right) => throw null; + public static bool operator !=(Microsoft.AspNetCore.Http.HostString left, Microsoft.AspNetCore.Http.HostString right) => throw null; public int? Port { get => throw null; } public override string ToString() => throw null; public string ToUriComponent() => throw null; public string Value { get => throw null; } } - public abstract class HttpContext { public abstract void Abort(); public abstract Microsoft.AspNetCore.Http.ConnectionInfo Connection { get; } - public abstract Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get; } protected HttpContext() => throw null; + public abstract Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get; } public abstract System.Collections.Generic.IDictionary Items { get; set; } public abstract Microsoft.AspNetCore.Http.HttpRequest Request { get; } public abstract System.Threading.CancellationToken RequestAborted { get; set; } @@ -301,7 +275,6 @@ namespace Microsoft public abstract System.Security.Claims.ClaimsPrincipal User { get; set; } public abstract Microsoft.AspNetCore.Http.WebSocketManager WebSockets { get; } } - public static class HttpMethods { public static string Connect; @@ -325,7 +298,6 @@ namespace Microsoft public static string Put; public static string Trace; } - public static class HttpProtocol { public static string GetHttpProtocol(System.Version version) => throw null; @@ -340,20 +312,19 @@ namespace Microsoft public static bool IsHttp2(string protocol) => throw null; public static bool IsHttp3(string protocol) => throw null; } - public abstract class HttpRequest { public abstract System.IO.Stream Body { get; set; } public virtual System.IO.Pipelines.PipeReader BodyReader { get => throw null; } - public abstract System.Int64? ContentLength { get; set; } + public abstract long? ContentLength { get; set; } public abstract string ContentType { get; set; } public abstract Microsoft.AspNetCore.Http.IRequestCookieCollection Cookies { get; set; } + protected HttpRequest() => throw null; public abstract Microsoft.AspNetCore.Http.IFormCollection Form { get; set; } public abstract bool HasFormContentType { get; } public abstract Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get; } public abstract Microsoft.AspNetCore.Http.HostString Host { get; set; } public abstract Microsoft.AspNetCore.Http.HttpContext HttpContext { get; } - protected HttpRequest() => throw null; public abstract bool IsHttps { get; set; } public abstract string Method { get; set; } public abstract Microsoft.AspNetCore.Http.PathString Path { get; set; } @@ -362,26 +333,25 @@ namespace Microsoft public abstract Microsoft.AspNetCore.Http.IQueryCollection Query { get; set; } public abstract Microsoft.AspNetCore.Http.QueryString QueryString { get; set; } public abstract System.Threading.Tasks.Task ReadFormAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - public virtual Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } public abstract string Scheme { get; set; } } - public abstract class HttpResponse { public abstract System.IO.Stream Body { get; set; } public virtual System.IO.Pipelines.PipeWriter BodyWriter { get => throw null; } public virtual System.Threading.Tasks.Task CompleteAsync() => throw null; - public abstract System.Int64? ContentLength { get; set; } + public abstract long? ContentLength { get; set; } public abstract string ContentType { get; set; } public abstract Microsoft.AspNetCore.Http.IResponseCookies Cookies { get; } + protected HttpResponse() => throw null; public abstract bool HasStarted { get; } public abstract Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get; } public abstract Microsoft.AspNetCore.Http.HttpContext HttpContext { get; } - protected HttpResponse() => throw null; - public virtual void OnCompleted(System.Func callback) => throw null; public abstract void OnCompleted(System.Func callback, object state); - public virtual void OnStarting(System.Func callback) => throw null; + public virtual void OnCompleted(System.Func callback) => throw null; public abstract void OnStarting(System.Func callback, object state); + public virtual void OnStarting(System.Func callback) => throw null; public virtual void Redirect(string location) => throw null; public abstract void Redirect(string location, bool permanent); public virtual void RegisterForDispose(System.IDisposable disposable) => throw null; @@ -389,280 +359,81 @@ namespace Microsoft public virtual System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public abstract int StatusCode { get; set; } } - - public static class HttpResponseWritingExtensions + public static partial class HttpResponseWritingExtensions { public static System.Threading.Tasks.Task WriteAsync(this Microsoft.AspNetCore.Http.HttpResponse response, string text, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task WriteAsync(this Microsoft.AspNetCore.Http.HttpResponse response, string text, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - public class HttpValidationProblemDetails : Microsoft.AspNetCore.Mvc.ProblemDetails { - public System.Collections.Generic.IDictionary Errors { get => throw null; } public HttpValidationProblemDetails() => throw null; public HttpValidationProblemDetails(System.Collections.Generic.IDictionary errors) => throw null; + public System.Collections.Generic.IDictionary Errors { get => throw null; } } - public interface IBindableFromHttpContext where TSelf : class, Microsoft.AspNetCore.Http.IBindableFromHttpContext { - static abstract System.Threading.Tasks.ValueTask BindAsync(Microsoft.AspNetCore.Http.HttpContext context, System.Reflection.ParameterInfo parameter); + abstract static System.Threading.Tasks.ValueTask BindAsync(Microsoft.AspNetCore.Http.HttpContext context, System.Reflection.ParameterInfo parameter); } - public interface IContentTypeHttpResult { string ContentType { get; } } - public interface IEndpointFilter { System.Threading.Tasks.ValueTask InvokeAsync(Microsoft.AspNetCore.Http.EndpointFilterInvocationContext context, Microsoft.AspNetCore.Http.EndpointFilterDelegate next); } - public interface IFileHttpResult { string ContentType { get; } string FileDownloadName { get; } } - public interface IHttpContextAccessor { Microsoft.AspNetCore.Http.HttpContext HttpContext { get; set; } } - public interface IHttpContextFactory { Microsoft.AspNetCore.Http.HttpContext Create(Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection); void Dispose(Microsoft.AspNetCore.Http.HttpContext httpContext); } - public interface IMiddleware { System.Threading.Tasks.Task InvokeAsync(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.RequestDelegate next); } - public interface IMiddlewareFactory { Microsoft.AspNetCore.Http.IMiddleware Create(System.Type middlewareType); void Release(Microsoft.AspNetCore.Http.IMiddleware middleware); } - public interface INestedHttpResult { Microsoft.AspNetCore.Http.IResult Result { get; } } - public interface IProblemDetailsService { System.Threading.Tasks.ValueTask WriteAsync(Microsoft.AspNetCore.Http.ProblemDetailsContext context); } - public interface IProblemDetailsWriter { bool CanWrite(Microsoft.AspNetCore.Http.ProblemDetailsContext context); System.Threading.Tasks.ValueTask WriteAsync(Microsoft.AspNetCore.Http.ProblemDetailsContext context); } - public interface IResult { System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext); } - public interface IStatusCodeHttpResult { int? StatusCode { get; } } - public interface IValueHttpResult { object Value { get; } } - public interface IValueHttpResult { TValue Value { get; } } - - public struct PathString : System.IEquatable - { - public static bool operator !=(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.PathString right) => throw null; - public static Microsoft.AspNetCore.Http.PathString operator +(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.PathString right) => throw null; - public static string operator +(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.QueryString right) => throw null; - public static string operator +(Microsoft.AspNetCore.Http.PathString left, string right) => throw null; - public static string operator +(string left, Microsoft.AspNetCore.Http.PathString right) => throw null; - public static bool operator ==(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.PathString right) => throw null; - public Microsoft.AspNetCore.Http.PathString Add(Microsoft.AspNetCore.Http.PathString other) => throw null; - public string Add(Microsoft.AspNetCore.Http.QueryString other) => throw null; - public static Microsoft.AspNetCore.Http.PathString Empty; - public bool Equals(Microsoft.AspNetCore.Http.PathString other) => throw null; - public bool Equals(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType) => throw null; - public override bool Equals(object obj) => throw null; - public static Microsoft.AspNetCore.Http.PathString FromUriComponent(System.Uri uri) => throw null; - public static Microsoft.AspNetCore.Http.PathString FromUriComponent(string uriComponent) => throw null; - public override int GetHashCode() => throw null; - public bool HasValue { get => throw null; } - // Stub generator skipped constructor - public PathString(string value) => throw null; - public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other) => throw null; - public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType) => throw null; - public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType, out Microsoft.AspNetCore.Http.PathString remaining) => throw null; - public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType, out Microsoft.AspNetCore.Http.PathString matched, out Microsoft.AspNetCore.Http.PathString remaining) => throw null; - public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, out Microsoft.AspNetCore.Http.PathString remaining) => throw null; - public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, out Microsoft.AspNetCore.Http.PathString matched, out Microsoft.AspNetCore.Http.PathString remaining) => throw null; - public override string ToString() => throw null; - public string ToUriComponent() => throw null; - public string Value { get => throw null; } - public static implicit operator string(Microsoft.AspNetCore.Http.PathString path) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.PathString(string s) => throw null; - } - - public class ProblemDetailsContext - { - public Microsoft.AspNetCore.Http.EndpointMetadataCollection AdditionalMetadata { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ProblemDetails ProblemDetails { get => throw null; set => throw null; } - public ProblemDetailsContext() => throw null; - } - - public struct QueryString : System.IEquatable - { - public static bool operator !=(Microsoft.AspNetCore.Http.QueryString left, Microsoft.AspNetCore.Http.QueryString right) => throw null; - public static Microsoft.AspNetCore.Http.QueryString operator +(Microsoft.AspNetCore.Http.QueryString left, Microsoft.AspNetCore.Http.QueryString right) => throw null; - public static bool operator ==(Microsoft.AspNetCore.Http.QueryString left, Microsoft.AspNetCore.Http.QueryString right) => throw null; - public Microsoft.AspNetCore.Http.QueryString Add(Microsoft.AspNetCore.Http.QueryString other) => throw null; - public Microsoft.AspNetCore.Http.QueryString Add(string name, string value) => throw null; - public static Microsoft.AspNetCore.Http.QueryString Create(System.Collections.Generic.IEnumerable> parameters) => throw null; - public static Microsoft.AspNetCore.Http.QueryString Create(System.Collections.Generic.IEnumerable> parameters) => throw null; - public static Microsoft.AspNetCore.Http.QueryString Create(string name, string value) => throw null; - public static Microsoft.AspNetCore.Http.QueryString Empty; - public bool Equals(Microsoft.AspNetCore.Http.QueryString other) => throw null; - public override bool Equals(object obj) => throw null; - public static Microsoft.AspNetCore.Http.QueryString FromUriComponent(System.Uri uri) => throw null; - public static Microsoft.AspNetCore.Http.QueryString FromUriComponent(string uriComponent) => throw null; - public override int GetHashCode() => throw null; - public bool HasValue { get => throw null; } - // Stub generator skipped constructor - public QueryString(string value) => throw null; - public override string ToString() => throw null; - public string ToUriComponent() => throw null; - public string Value { get => throw null; } - } - - public delegate System.Threading.Tasks.Task RequestDelegate(Microsoft.AspNetCore.Http.HttpContext context); - - public class RequestDelegateResult - { - public System.Collections.Generic.IReadOnlyList EndpointMetadata { get => throw null; } - public Microsoft.AspNetCore.Http.RequestDelegate RequestDelegate { get => throw null; } - public RequestDelegateResult(Microsoft.AspNetCore.Http.RequestDelegate requestDelegate, System.Collections.Generic.IReadOnlyList metadata) => throw null; - } - - public static class RequestTrailerExtensions - { - public static bool CheckTrailersAvailable(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; - public static Microsoft.Extensions.Primitives.StringValues GetDeclaredTrailers(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; - public static Microsoft.Extensions.Primitives.StringValues GetTrailer(this Microsoft.AspNetCore.Http.HttpRequest request, string trailerName) => throw null; - public static bool SupportsTrailers(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; - } - - public static class ResponseTrailerExtensions - { - public static void AppendTrailer(this Microsoft.AspNetCore.Http.HttpResponse response, string trailerName, Microsoft.Extensions.Primitives.StringValues trailerValues) => throw null; - public static void DeclareTrailer(this Microsoft.AspNetCore.Http.HttpResponse response, string trailerName) => throw null; - public static bool SupportsTrailers(this Microsoft.AspNetCore.Http.HttpResponse response) => throw null; - } - - public static class StatusCodes - { - public const int Status100Continue = default; - public const int Status101SwitchingProtocols = default; - public const int Status102Processing = default; - public const int Status200OK = default; - public const int Status201Created = default; - public const int Status202Accepted = default; - public const int Status203NonAuthoritative = default; - public const int Status204NoContent = default; - public const int Status205ResetContent = default; - public const int Status206PartialContent = default; - public const int Status207MultiStatus = default; - public const int Status208AlreadyReported = default; - public const int Status226IMUsed = default; - public const int Status300MultipleChoices = default; - public const int Status301MovedPermanently = default; - public const int Status302Found = default; - public const int Status303SeeOther = default; - public const int Status304NotModified = default; - public const int Status305UseProxy = default; - public const int Status306SwitchProxy = default; - public const int Status307TemporaryRedirect = default; - public const int Status308PermanentRedirect = default; - public const int Status400BadRequest = default; - public const int Status401Unauthorized = default; - public const int Status402PaymentRequired = default; - public const int Status403Forbidden = default; - public const int Status404NotFound = default; - public const int Status405MethodNotAllowed = default; - public const int Status406NotAcceptable = default; - public const int Status407ProxyAuthenticationRequired = default; - public const int Status408RequestTimeout = default; - public const int Status409Conflict = default; - public const int Status410Gone = default; - public const int Status411LengthRequired = default; - public const int Status412PreconditionFailed = default; - public const int Status413PayloadTooLarge = default; - public const int Status413RequestEntityTooLarge = default; - public const int Status414RequestUriTooLong = default; - public const int Status414UriTooLong = default; - public const int Status415UnsupportedMediaType = default; - public const int Status416RangeNotSatisfiable = default; - public const int Status416RequestedRangeNotSatisfiable = default; - public const int Status417ExpectationFailed = default; - public const int Status418ImATeapot = default; - public const int Status419AuthenticationTimeout = default; - public const int Status421MisdirectedRequest = default; - public const int Status422UnprocessableEntity = default; - public const int Status423Locked = default; - public const int Status424FailedDependency = default; - public const int Status426UpgradeRequired = default; - public const int Status428PreconditionRequired = default; - public const int Status429TooManyRequests = default; - public const int Status431RequestHeaderFieldsTooLarge = default; - public const int Status451UnavailableForLegalReasons = default; - public const int Status500InternalServerError = default; - public const int Status501NotImplemented = default; - public const int Status502BadGateway = default; - public const int Status503ServiceUnavailable = default; - public const int Status504GatewayTimeout = default; - public const int Status505HttpVersionNotsupported = default; - public const int Status506VariantAlsoNegotiates = default; - public const int Status507InsufficientStorage = default; - public const int Status508LoopDetected = default; - public const int Status510NotExtended = default; - public const int Status511NetworkAuthenticationRequired = default; - } - - public abstract class WebSocketManager - { - public virtual System.Threading.Tasks.Task AcceptWebSocketAsync() => throw null; - public virtual System.Threading.Tasks.Task AcceptWebSocketAsync(Microsoft.AspNetCore.Http.WebSocketAcceptContext acceptContext) => throw null; - public abstract System.Threading.Tasks.Task AcceptWebSocketAsync(string subProtocol); - public abstract bool IsWebSocketRequest { get; } - protected WebSocketManager() => throw null; - public abstract System.Collections.Generic.IList WebSocketRequestedProtocols { get; } - } - - namespace Features - { - public interface IEndpointFeature - { - Microsoft.AspNetCore.Http.Endpoint Endpoint { get; set; } - } - - public interface IRouteValuesFeature - { - Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get; set; } - } - - } namespace Metadata { public interface IAcceptsMetadata @@ -671,109 +442,238 @@ namespace Microsoft bool IsOptional { get; } System.Type RequestType { get; } } - public interface IEndpointDescriptionMetadata { string Description { get; } } - public interface IEndpointMetadataProvider { - static abstract void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder); + abstract static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder); } - public interface IEndpointParameterMetadataProvider { - static abstract void PopulateMetadata(System.Reflection.ParameterInfo parameter, Microsoft.AspNetCore.Builder.EndpointBuilder builder); + abstract static void PopulateMetadata(System.Reflection.ParameterInfo parameter, Microsoft.AspNetCore.Builder.EndpointBuilder builder); } - public interface IEndpointSummaryMetadata { string Summary { get; } } - public interface IFromBodyMetadata { - bool AllowEmpty { get => throw null; } + virtual bool AllowEmpty { get => throw null; } } - public interface IFromFormMetadata { string Name { get; } } - public interface IFromHeaderMetadata { string Name { get; } } - public interface IFromQueryMetadata { string Name { get; } } - public interface IFromRouteMetadata { string Name { get; } } - public interface IFromServiceMetadata { } - public interface IProducesResponseTypeMetadata { System.Collections.Generic.IEnumerable ContentTypes { get; } int StatusCode { get; } System.Type Type { get; } } - public interface IRequestSizeLimitMetadata { - System.Int64? MaxRequestBodySize { get; } + long? MaxRequestBodySize { get; } } - public interface ISkipStatusCodePagesMetadata { } - public interface ITagsMetadata { System.Collections.Generic.IReadOnlyList Tags { get; } } - + } + public struct PathString : System.IEquatable + { + public Microsoft.AspNetCore.Http.PathString Add(Microsoft.AspNetCore.Http.PathString other) => throw null; + public string Add(Microsoft.AspNetCore.Http.QueryString other) => throw null; + public PathString(string value) => throw null; + public static Microsoft.AspNetCore.Http.PathString Empty; + public bool Equals(Microsoft.AspNetCore.Http.PathString other) => throw null; + public bool Equals(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType) => throw null; + public override bool Equals(object obj) => throw null; + public static Microsoft.AspNetCore.Http.PathString FromUriComponent(string uriComponent) => throw null; + public static Microsoft.AspNetCore.Http.PathString FromUriComponent(System.Uri uri) => throw null; + public override int GetHashCode() => throw null; + public bool HasValue { get => throw null; } + public static string operator +(string left, Microsoft.AspNetCore.Http.PathString right) => throw null; + public static string operator +(Microsoft.AspNetCore.Http.PathString left, string right) => throw null; + public static Microsoft.AspNetCore.Http.PathString operator +(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.PathString right) => throw null; + public static string operator +(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.QueryString right) => throw null; + public static bool operator ==(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.PathString right) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.PathString(string s) => throw null; + public static implicit operator string(Microsoft.AspNetCore.Http.PathString path) => throw null; + public static bool operator !=(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.PathString right) => throw null; + public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other) => throw null; + public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType) => throw null; + public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, out Microsoft.AspNetCore.Http.PathString remaining) => throw null; + public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType, out Microsoft.AspNetCore.Http.PathString remaining) => throw null; + public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, out Microsoft.AspNetCore.Http.PathString matched, out Microsoft.AspNetCore.Http.PathString remaining) => throw null; + public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType, out Microsoft.AspNetCore.Http.PathString matched, out Microsoft.AspNetCore.Http.PathString remaining) => throw null; + public override string ToString() => throw null; + public string ToUriComponent() => throw null; + public string Value { get => throw null; } + } + public sealed class ProblemDetailsContext + { + public Microsoft.AspNetCore.Http.EndpointMetadataCollection AdditionalMetadata { get => throw null; set { } } + public ProblemDetailsContext() => throw null; + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ProblemDetails ProblemDetails { get => throw null; set { } } + } + public struct QueryString : System.IEquatable + { + public Microsoft.AspNetCore.Http.QueryString Add(Microsoft.AspNetCore.Http.QueryString other) => throw null; + public Microsoft.AspNetCore.Http.QueryString Add(string name, string value) => throw null; + public static Microsoft.AspNetCore.Http.QueryString Create(string name, string value) => throw null; + public static Microsoft.AspNetCore.Http.QueryString Create(System.Collections.Generic.IEnumerable> parameters) => throw null; + public static Microsoft.AspNetCore.Http.QueryString Create(System.Collections.Generic.IEnumerable> parameters) => throw null; + public QueryString(string value) => throw null; + public static Microsoft.AspNetCore.Http.QueryString Empty; + public bool Equals(Microsoft.AspNetCore.Http.QueryString other) => throw null; + public override bool Equals(object obj) => throw null; + public static Microsoft.AspNetCore.Http.QueryString FromUriComponent(string uriComponent) => throw null; + public static Microsoft.AspNetCore.Http.QueryString FromUriComponent(System.Uri uri) => throw null; + public override int GetHashCode() => throw null; + public bool HasValue { get => throw null; } + public static Microsoft.AspNetCore.Http.QueryString operator +(Microsoft.AspNetCore.Http.QueryString left, Microsoft.AspNetCore.Http.QueryString right) => throw null; + public static bool operator ==(Microsoft.AspNetCore.Http.QueryString left, Microsoft.AspNetCore.Http.QueryString right) => throw null; + public static bool operator !=(Microsoft.AspNetCore.Http.QueryString left, Microsoft.AspNetCore.Http.QueryString right) => throw null; + public override string ToString() => throw null; + public string ToUriComponent() => throw null; + public string Value { get => throw null; } + } + public delegate System.Threading.Tasks.Task RequestDelegate(Microsoft.AspNetCore.Http.HttpContext context); + public sealed class RequestDelegateResult + { + public RequestDelegateResult(Microsoft.AspNetCore.Http.RequestDelegate requestDelegate, System.Collections.Generic.IReadOnlyList metadata) => throw null; + public System.Collections.Generic.IReadOnlyList EndpointMetadata { get => throw null; } + public Microsoft.AspNetCore.Http.RequestDelegate RequestDelegate { get => throw null; } + } + public static partial class RequestTrailerExtensions + { + public static bool CheckTrailersAvailable(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; + public static Microsoft.Extensions.Primitives.StringValues GetDeclaredTrailers(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; + public static Microsoft.Extensions.Primitives.StringValues GetTrailer(this Microsoft.AspNetCore.Http.HttpRequest request, string trailerName) => throw null; + public static bool SupportsTrailers(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; + } + public static partial class ResponseTrailerExtensions + { + public static void AppendTrailer(this Microsoft.AspNetCore.Http.HttpResponse response, string trailerName, Microsoft.Extensions.Primitives.StringValues trailerValues) => throw null; + public static void DeclareTrailer(this Microsoft.AspNetCore.Http.HttpResponse response, string trailerName) => throw null; + public static bool SupportsTrailers(this Microsoft.AspNetCore.Http.HttpResponse response) => throw null; + } + public static class StatusCodes + { + public static int Status100Continue; + public static int Status101SwitchingProtocols; + public static int Status102Processing; + public static int Status200OK; + public static int Status201Created; + public static int Status202Accepted; + public static int Status203NonAuthoritative; + public static int Status204NoContent; + public static int Status205ResetContent; + public static int Status206PartialContent; + public static int Status207MultiStatus; + public static int Status208AlreadyReported; + public static int Status226IMUsed; + public static int Status300MultipleChoices; + public static int Status301MovedPermanently; + public static int Status302Found; + public static int Status303SeeOther; + public static int Status304NotModified; + public static int Status305UseProxy; + public static int Status306SwitchProxy; + public static int Status307TemporaryRedirect; + public static int Status308PermanentRedirect; + public static int Status400BadRequest; + public static int Status401Unauthorized; + public static int Status402PaymentRequired; + public static int Status403Forbidden; + public static int Status404NotFound; + public static int Status405MethodNotAllowed; + public static int Status406NotAcceptable; + public static int Status407ProxyAuthenticationRequired; + public static int Status408RequestTimeout; + public static int Status409Conflict; + public static int Status410Gone; + public static int Status411LengthRequired; + public static int Status412PreconditionFailed; + public static int Status413PayloadTooLarge; + public static int Status413RequestEntityTooLarge; + public static int Status414RequestUriTooLong; + public static int Status414UriTooLong; + public static int Status415UnsupportedMediaType; + public static int Status416RangeNotSatisfiable; + public static int Status416RequestedRangeNotSatisfiable; + public static int Status417ExpectationFailed; + public static int Status418ImATeapot; + public static int Status419AuthenticationTimeout; + public static int Status421MisdirectedRequest; + public static int Status422UnprocessableEntity; + public static int Status423Locked; + public static int Status424FailedDependency; + public static int Status426UpgradeRequired; + public static int Status428PreconditionRequired; + public static int Status429TooManyRequests; + public static int Status431RequestHeaderFieldsTooLarge; + public static int Status451UnavailableForLegalReasons; + public static int Status500InternalServerError; + public static int Status501NotImplemented; + public static int Status502BadGateway; + public static int Status503ServiceUnavailable; + public static int Status504GatewayTimeout; + public static int Status505HttpVersionNotsupported; + public static int Status506VariantAlsoNegotiates; + public static int Status507InsufficientStorage; + public static int Status508LoopDetected; + public static int Status510NotExtended; + public static int Status511NetworkAuthenticationRequired; + } + public abstract class WebSocketManager + { + public virtual System.Threading.Tasks.Task AcceptWebSocketAsync() => throw null; + public abstract System.Threading.Tasks.Task AcceptWebSocketAsync(string subProtocol); + public virtual System.Threading.Tasks.Task AcceptWebSocketAsync(Microsoft.AspNetCore.Http.WebSocketAcceptContext acceptContext) => throw null; + protected WebSocketManager() => throw null; + public abstract bool IsWebSocketRequest { get; } + public abstract System.Collections.Generic.IList WebSocketRequestedProtocols { get; } } } namespace Mvc { public class ProblemDetails { - public string Detail { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Extensions { get => throw null; } - public string Instance { get => throw null; set => throw null; } public ProblemDetails() => throw null; - public int? Status { get => throw null; set => throw null; } - public string Title { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } + public string Detail { get => throw null; set { } } + public System.Collections.Generic.IDictionary Extensions { get => throw null; } + public string Instance { get => throw null; set { } } + public int? Status { get => throw null; set { } } + public string Title { get => throw null; set { } } + public string Type { get => throw null; set { } } } - } namespace Routing { - public class RouteValueDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.IEnumerable + public class RouteValueDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection> { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public Enumerator(Microsoft.AspNetCore.Routing.RouteValueDictionary dictionary) => throw null; - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(string key, object value) => throw null; public void Clear() => throw null; @@ -782,28 +682,36 @@ namespace Microsoft public bool ContainsKey(string key) => throw null; void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } + public RouteValueDictionary() => throw null; + public RouteValueDictionary(object values) => throw null; + public RouteValueDictionary(System.Collections.Generic.IEnumerable> values) => throw null; + public RouteValueDictionary(System.Collections.Generic.IEnumerable> values) => throw null; + public RouteValueDictionary(Microsoft.AspNetCore.Routing.RouteValueDictionary dictionary) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + { + public Enumerator(Microsoft.AspNetCore.Routing.RouteValueDictionary dictionary) => throw null; + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } public static Microsoft.AspNetCore.Routing.RouteValueDictionary FromArray(System.Collections.Generic.KeyValuePair[] items) => throw null; public Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } - public object this[string key] { get => throw null; set => throw null; } public System.Collections.Generic.ICollection Keys { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; public bool Remove(string key) => throw null; public bool Remove(string key, out object value) => throw null; - public RouteValueDictionary() => throw null; - public RouteValueDictionary(System.Collections.Generic.IEnumerable> values) => throw null; - public RouteValueDictionary(System.Collections.Generic.IEnumerable> values) => throw null; - public RouteValueDictionary(Microsoft.AspNetCore.Routing.RouteValueDictionary dictionary) => throw null; - public RouteValueDictionary(object values) => throw null; + public object this[string key] { get => throw null; set { } } public bool TryAdd(string key, object value) => throw null; public bool TryGetValue(string key, out object value) => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.Common.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.Common.cs index 2c97c6fff35..74626520238 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.Common.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.Common.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Http.Connections.Common, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -12,42 +11,37 @@ namespace Microsoft public class AvailableTransport { public AvailableTransport() => throw null; - public System.Collections.Generic.IList TransferFormats { get => throw null; set => throw null; } - public string Transport { get => throw null; set => throw null; } + public System.Collections.Generic.IList TransferFormats { get => throw null; set { } } + public string Transport { get => throw null; set { } } } - - [System.Flags] - public enum HttpTransportType : int - { - LongPolling = 4, - None = 0, - ServerSentEvents = 2, - WebSockets = 1, - } - public static class HttpTransports { public static Microsoft.AspNetCore.Http.Connections.HttpTransportType All; } - + [System.Flags] + public enum HttpTransportType + { + None = 0, + WebSockets = 1, + ServerSentEvents = 2, + LongPolling = 4, + } public static class NegotiateProtocol { - public static Microsoft.AspNetCore.Http.Connections.NegotiationResponse ParseResponse(System.ReadOnlySpan content) => throw null; - public static void WriteResponse(Microsoft.AspNetCore.Http.Connections.NegotiationResponse response, System.Buffers.IBufferWriter output) => throw null; + public static Microsoft.AspNetCore.Http.Connections.NegotiationResponse ParseResponse(System.ReadOnlySpan content) => throw null; + public static void WriteResponse(Microsoft.AspNetCore.Http.Connections.NegotiationResponse response, System.Buffers.IBufferWriter output) => throw null; } - public class NegotiationResponse { - public string AccessToken { get => throw null; set => throw null; } - public System.Collections.Generic.IList AvailableTransports { get => throw null; set => throw null; } - public string ConnectionId { get => throw null; set => throw null; } - public string ConnectionToken { get => throw null; set => throw null; } - public string Error { get => throw null; set => throw null; } + public string AccessToken { get => throw null; set { } } + public System.Collections.Generic.IList AvailableTransports { get => throw null; set { } } + public string ConnectionId { get => throw null; set { } } + public string ConnectionToken { get => throw null; set { } } public NegotiationResponse() => throw null; - public string Url { get => throw null; set => throw null; } - public int Version { get => throw null; set => throw null; } + public string Error { get => throw null; set { } } + public string Url { get => throw null; set { } } + public int Version { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.cs index e2a1f777e5f..57bed338219 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.cs @@ -1,26 +1,23 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Http.Connections, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public class ConnectionEndpointRouteBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + public sealed class ConnectionEndpointRouteBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { public void Add(System.Action convention) => throw null; public void Finally(System.Action finalConvention) => throw null; } - - public static class ConnectionEndpointRouteBuilderExtensions + public static partial class ConnectionEndpointRouteBuilderExtensions { public static Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder MapConnectionHandler(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern) where TConnectionHandler : Microsoft.AspNetCore.Connections.ConnectionHandler => throw null; public static Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder MapConnectionHandler(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Action configureOptions) where TConnectionHandler : Microsoft.AspNetCore.Connections.ConnectionHandler => throw null; public static Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder MapConnections(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Action configure) => throw null; public static Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder MapConnections(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions options, System.Action configure) => throw null; } - } namespace Http { @@ -29,65 +26,56 @@ namespace Microsoft public class ConnectionOptions { public ConnectionOptions() => throw null; - public System.TimeSpan? DisconnectTimeout { get => throw null; set => throw null; } + public System.TimeSpan? DisconnectTimeout { get => throw null; set { } } } - public class ConnectionOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions { public void Configure(Microsoft.AspNetCore.Http.Connections.ConnectionOptions options) => throw null; public ConnectionOptionsSetup() => throw null; public static System.TimeSpan DefaultDisconectTimeout; } - - public static class HttpConnectionContextExtensions - { - public static Microsoft.AspNetCore.Http.HttpContext GetHttpContext(this Microsoft.AspNetCore.Connections.ConnectionContext connection) => throw null; - } - - public class HttpConnectionDispatcherOptions - { - public System.Int64 ApplicationMaxBufferSize { get => throw null; set => throw null; } - public System.Collections.Generic.IList AuthorizationData { get => throw null; } - public bool CloseOnAuthenticationExpiration { get => throw null; set => throw null; } - public HttpConnectionDispatcherOptions() => throw null; - public Microsoft.AspNetCore.Http.Connections.LongPollingOptions LongPolling { get => throw null; } - public int MinimumProtocolVersion { get => throw null; set => throw null; } - public System.Int64 TransportMaxBufferSize { get => throw null; set => throw null; } - public System.TimeSpan TransportSendTimeout { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.Connections.HttpTransportType Transports { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.Connections.WebSocketOptions WebSockets { get => throw null; } - } - - public class LongPollingOptions - { - public LongPollingOptions() => throw null; - public System.TimeSpan PollTimeout { get => throw null; set => throw null; } - } - - public class NegotiateMetadata - { - public NegotiateMetadata() => throw null; - } - - public class WebSocketOptions - { - public System.TimeSpan CloseTimeout { get => throw null; set => throw null; } - public System.Func, string> SubProtocolSelector { get => throw null; set => throw null; } - public WebSocketOptions() => throw null; - } - namespace Features { public interface IHttpContextFeature { Microsoft.AspNetCore.Http.HttpContext HttpContext { get; set; } } - public interface IHttpTransportFeature { Microsoft.AspNetCore.Http.Connections.HttpTransportType TransportType { get; } } - + } + public static partial class HttpConnectionContextExtensions + { + public static Microsoft.AspNetCore.Http.HttpContext GetHttpContext(this Microsoft.AspNetCore.Connections.ConnectionContext connection) => throw null; + } + public class HttpConnectionDispatcherOptions + { + public long ApplicationMaxBufferSize { get => throw null; set { } } + public System.Collections.Generic.IList AuthorizationData { get => throw null; } + public bool CloseOnAuthenticationExpiration { get => throw null; set { } } + public HttpConnectionDispatcherOptions() => throw null; + public Microsoft.AspNetCore.Http.Connections.LongPollingOptions LongPolling { get => throw null; } + public int MinimumProtocolVersion { get => throw null; set { } } + public long TransportMaxBufferSize { get => throw null; set { } } + public Microsoft.AspNetCore.Http.Connections.HttpTransportType Transports { get => throw null; set { } } + public System.TimeSpan TransportSendTimeout { get => throw null; set { } } + public Microsoft.AspNetCore.Http.Connections.WebSocketOptions WebSockets { get => throw null; } + } + public class LongPollingOptions + { + public LongPollingOptions() => throw null; + public System.TimeSpan PollTimeout { get => throw null; set { } } + } + public class NegotiateMetadata + { + public NegotiateMetadata() => throw null; + } + public class WebSocketOptions + { + public System.TimeSpan CloseTimeout { get => throw null; set { } } + public WebSocketOptions() => throw null; + public System.Func, string> SubProtocolSelector { get => throw null; set { } } } } } @@ -96,12 +84,11 @@ namespace Microsoft { namespace DependencyInjection { - public static class ConnectionsDependencyInjectionExtensions + public static partial class ConnectionsDependencyInjectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddConnections(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddConnections(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action options) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Extensions.cs index 2e98c6e5cd5..b6f38080c29 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Extensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Extensions.cs @@ -1,147 +1,46 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Http.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Http { - public class EndpointDescriptionAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IEndpointDescriptionMetadata + public sealed class EndpointDescriptionAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IEndpointDescriptionMetadata { - public string Description { get => throw null; } public EndpointDescriptionAttribute(string description) => throw null; + public string Description { get => throw null; } } - - public class EndpointSummaryAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IEndpointSummaryMetadata + public sealed class EndpointSummaryAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IEndpointSummaryMetadata { public EndpointSummaryAttribute(string summary) => throw null; public string Summary { get => throw null; } } - - public static class HeaderDictionaryTypeExtensions - { - public static void AppendList(this Microsoft.AspNetCore.Http.IHeaderDictionary Headers, string name, System.Collections.Generic.IList values) => throw null; - public static Microsoft.AspNetCore.Http.Headers.RequestHeaders GetTypedHeaders(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; - public static Microsoft.AspNetCore.Http.Headers.ResponseHeaders GetTypedHeaders(this Microsoft.AspNetCore.Http.HttpResponse response) => throw null; - } - - public static class HttpContextServerVariableExtensions - { - public static string GetServerVariable(this Microsoft.AspNetCore.Http.HttpContext context, string variableName) => throw null; - } - - public static class HttpRequestJsonExtensions - { - public static bool HasJsonContentType(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; - public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Type type, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - } - - public static class HttpResponseJsonExtensions - { - public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, object value, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, object value, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, string contentType = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, object value, System.Type type, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, object value, System.Type type, System.Text.Json.JsonSerializerOptions options, string contentType, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, TValue value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, TValue value, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, TValue value, System.Text.Json.JsonSerializerOptions options, string contentType, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, string contentType = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - } - - public class ProblemDetailsOptions - { - public System.Action CustomizeProblemDetails { get => throw null; set => throw null; } - public ProblemDetailsOptions() => throw null; - } - - public static class RequestDelegateFactory - { - public static Microsoft.AspNetCore.Http.RequestDelegateResult Create(System.Delegate handler, Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options) => throw null; - public static Microsoft.AspNetCore.Http.RequestDelegateResult Create(System.Delegate handler, Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options = default(Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions), Microsoft.AspNetCore.Http.RequestDelegateMetadataResult metadataResult = default(Microsoft.AspNetCore.Http.RequestDelegateMetadataResult)) => throw null; - public static Microsoft.AspNetCore.Http.RequestDelegateResult Create(System.Reflection.MethodInfo methodInfo, System.Func targetFactory, Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options) => throw null; - public static Microsoft.AspNetCore.Http.RequestDelegateResult Create(System.Reflection.MethodInfo methodInfo, System.Func targetFactory = default(System.Func), Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options = default(Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions), Microsoft.AspNetCore.Http.RequestDelegateMetadataResult metadataResult = default(Microsoft.AspNetCore.Http.RequestDelegateMetadataResult)) => throw null; - public static Microsoft.AspNetCore.Http.RequestDelegateMetadataResult InferMetadata(System.Reflection.MethodInfo methodInfo, Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options = default(Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions)) => throw null; - } - - public class RequestDelegateFactoryOptions - { - public bool DisableInferBodyFromParameters { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Builder.EndpointBuilder EndpointBuilder { get => throw null; set => throw null; } - public RequestDelegateFactoryOptions() => throw null; - public System.Collections.Generic.IEnumerable RouteParameterNames { get => throw null; set => throw null; } - public System.IServiceProvider ServiceProvider { get => throw null; set => throw null; } - public bool ThrowOnBadRequest { get => throw null; set => throw null; } - } - - public class RequestDelegateMetadataResult - { - public System.Collections.Generic.IReadOnlyList EndpointMetadata { get => throw null; set => throw null; } - public RequestDelegateMetadataResult() => throw null; - } - - public static class ResponseExtensions - { - public static void Clear(this Microsoft.AspNetCore.Http.HttpResponse response) => throw null; - public static void Redirect(this Microsoft.AspNetCore.Http.HttpResponse response, string location, bool permanent, bool preserveMethod) => throw null; - } - - public static class SendFileResponseExtensions - { - public static System.Threading.Tasks.Task SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, Microsoft.Extensions.FileProviders.IFileInfo file, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, Microsoft.Extensions.FileProviders.IFileInfo file, System.Int64 offset, System.Int64? count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, string fileName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, string fileName, System.Int64 offset, System.Int64? count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - } - - public static class SessionExtensions - { - public static System.Byte[] Get(this Microsoft.AspNetCore.Http.ISession session, string key) => throw null; - public static int? GetInt32(this Microsoft.AspNetCore.Http.ISession session, string key) => throw null; - public static string GetString(this Microsoft.AspNetCore.Http.ISession session, string key) => throw null; - public static void SetInt32(this Microsoft.AspNetCore.Http.ISession session, string key, int value) => throw null; - public static void SetString(this Microsoft.AspNetCore.Http.ISession session, string key, string value) => throw null; - } - - public class TagsAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.ITagsMetadata - { - public System.Collections.Generic.IReadOnlyList Tags { get => throw null; } - public TagsAttribute(params string[] tags) => throw null; - } - namespace Extensions { - public static class HttpRequestMultipartExtensions + public static partial class HttpRequestMultipartExtensions { public static string GetMultipartBoundary(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; } - public class QueryBuilder : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { public void Add(string key, System.Collections.Generic.IEnumerable values) => throw null; public void Add(string key, string value) => throw null; + public QueryBuilder() => throw null; + public QueryBuilder(System.Collections.Generic.IEnumerable> parameters) => throw null; + public QueryBuilder(System.Collections.Generic.IEnumerable> parameters) => throw null; public override bool Equals(object obj) => throw null; public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public override int GetHashCode() => throw null; - public QueryBuilder() => throw null; - public QueryBuilder(System.Collections.Generic.IEnumerable> parameters) => throw null; - public QueryBuilder(System.Collections.Generic.IEnumerable> parameters) => throw null; public Microsoft.AspNetCore.Http.QueryString ToQueryString() => throw null; public override string ToString() => throw null; } - public static class StreamCopyOperation { - public static System.Threading.Tasks.Task CopyToAsync(System.IO.Stream source, System.IO.Stream destination, System.Int64? count, System.Threading.CancellationToken cancel) => throw null; - public static System.Threading.Tasks.Task CopyToAsync(System.IO.Stream source, System.IO.Stream destination, System.Int64? count, int bufferSize, System.Threading.CancellationToken cancel) => throw null; + public static System.Threading.Tasks.Task CopyToAsync(System.IO.Stream source, System.IO.Stream destination, long? count, System.Threading.CancellationToken cancel) => throw null; + public static System.Threading.Tasks.Task CopyToAsync(System.IO.Stream source, System.IO.Stream destination, long? count, int bufferSize, System.Threading.CancellationToken cancel) => throw null; } - public static class UriHelper { public static string BuildAbsolute(string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.PathString path = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.QueryString query = default(Microsoft.AspNetCore.Http.QueryString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString)) => throw null; @@ -152,66 +51,94 @@ namespace Microsoft public static string GetEncodedPathAndQuery(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; public static string GetEncodedUrl(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; } - + } + public static partial class HeaderDictionaryTypeExtensions + { + public static void AppendList(this Microsoft.AspNetCore.Http.IHeaderDictionary Headers, string name, System.Collections.Generic.IList values) => throw null; + public static Microsoft.AspNetCore.Http.Headers.RequestHeaders GetTypedHeaders(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; + public static Microsoft.AspNetCore.Http.Headers.ResponseHeaders GetTypedHeaders(this Microsoft.AspNetCore.Http.HttpResponse response) => throw null; } namespace Headers { public class RequestHeaders { - public System.Collections.Generic.IList Accept { get => throw null; set => throw null; } - public System.Collections.Generic.IList AcceptCharset { get => throw null; set => throw null; } - public System.Collections.Generic.IList AcceptEncoding { get => throw null; set => throw null; } - public System.Collections.Generic.IList AcceptLanguage { get => throw null; set => throw null; } + public System.Collections.Generic.IList Accept { get => throw null; set { } } + public System.Collections.Generic.IList AcceptCharset { get => throw null; set { } } + public System.Collections.Generic.IList AcceptEncoding { get => throw null; set { } } + public System.Collections.Generic.IList AcceptLanguage { get => throw null; set { } } public void Append(string name, object value) => throw null; public void AppendList(string name, System.Collections.Generic.IList values) => throw null; - public Microsoft.Net.Http.Headers.CacheControlHeaderValue CacheControl { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.ContentDispositionHeaderValue ContentDisposition { get => throw null; set => throw null; } - public System.Int64? ContentLength { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.ContentRangeHeaderValue ContentRange { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.MediaTypeHeaderValue ContentType { get => throw null; set => throw null; } - public System.Collections.Generic.IList Cookie { get => throw null; set => throw null; } - public System.DateTimeOffset? Date { get => throw null; set => throw null; } - public System.DateTimeOffset? Expires { get => throw null; set => throw null; } + public Microsoft.Net.Http.Headers.CacheControlHeaderValue CacheControl { get => throw null; set { } } + public Microsoft.Net.Http.Headers.ContentDispositionHeaderValue ContentDisposition { get => throw null; set { } } + public long? ContentLength { get => throw null; set { } } + public Microsoft.Net.Http.Headers.ContentRangeHeaderValue ContentRange { get => throw null; set { } } + public Microsoft.Net.Http.Headers.MediaTypeHeaderValue ContentType { get => throw null; set { } } + public System.Collections.Generic.IList Cookie { get => throw null; set { } } + public RequestHeaders(Microsoft.AspNetCore.Http.IHeaderDictionary headers) => throw null; + public System.DateTimeOffset? Date { get => throw null; set { } } + public System.DateTimeOffset? Expires { get => throw null; set { } } public T Get(string name) => throw null; public System.Collections.Generic.IList GetList(string name) => throw null; public Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get => throw null; } - public Microsoft.AspNetCore.Http.HostString Host { get => throw null; set => throw null; } - public System.Collections.Generic.IList IfMatch { get => throw null; set => throw null; } - public System.DateTimeOffset? IfModifiedSince { get => throw null; set => throw null; } - public System.Collections.Generic.IList IfNoneMatch { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.RangeConditionHeaderValue IfRange { get => throw null; set => throw null; } - public System.DateTimeOffset? IfUnmodifiedSince { get => throw null; set => throw null; } - public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.RangeHeaderValue Range { get => throw null; set => throw null; } - public System.Uri Referer { get => throw null; set => throw null; } - public RequestHeaders(Microsoft.AspNetCore.Http.IHeaderDictionary headers) => throw null; + public Microsoft.AspNetCore.Http.HostString Host { get => throw null; set { } } + public System.Collections.Generic.IList IfMatch { get => throw null; set { } } + public System.DateTimeOffset? IfModifiedSince { get => throw null; set { } } + public System.Collections.Generic.IList IfNoneMatch { get => throw null; set { } } + public Microsoft.Net.Http.Headers.RangeConditionHeaderValue IfRange { get => throw null; set { } } + public System.DateTimeOffset? IfUnmodifiedSince { get => throw null; set { } } + public System.DateTimeOffset? LastModified { get => throw null; set { } } + public Microsoft.Net.Http.Headers.RangeHeaderValue Range { get => throw null; set { } } + public System.Uri Referer { get => throw null; set { } } public void Set(string name, object value) => throw null; public void SetList(string name, System.Collections.Generic.IList values) => throw null; } - public class ResponseHeaders { public void Append(string name, object value) => throw null; public void AppendList(string name, System.Collections.Generic.IList values) => throw null; - public Microsoft.Net.Http.Headers.CacheControlHeaderValue CacheControl { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.ContentDispositionHeaderValue ContentDisposition { get => throw null; set => throw null; } - public System.Int64? ContentLength { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.ContentRangeHeaderValue ContentRange { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.MediaTypeHeaderValue ContentType { get => throw null; set => throw null; } - public System.DateTimeOffset? Date { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.EntityTagHeaderValue ETag { get => throw null; set => throw null; } - public System.DateTimeOffset? Expires { get => throw null; set => throw null; } + public Microsoft.Net.Http.Headers.CacheControlHeaderValue CacheControl { get => throw null; set { } } + public Microsoft.Net.Http.Headers.ContentDispositionHeaderValue ContentDisposition { get => throw null; set { } } + public long? ContentLength { get => throw null; set { } } + public Microsoft.Net.Http.Headers.ContentRangeHeaderValue ContentRange { get => throw null; set { } } + public Microsoft.Net.Http.Headers.MediaTypeHeaderValue ContentType { get => throw null; set { } } + public ResponseHeaders(Microsoft.AspNetCore.Http.IHeaderDictionary headers) => throw null; + public System.DateTimeOffset? Date { get => throw null; set { } } + public Microsoft.Net.Http.Headers.EntityTagHeaderValue ETag { get => throw null; set { } } + public System.DateTimeOffset? Expires { get => throw null; set { } } public T Get(string name) => throw null; public System.Collections.Generic.IList GetList(string name) => throw null; public Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get => throw null; } - public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } - public System.Uri Location { get => throw null; set => throw null; } - public ResponseHeaders(Microsoft.AspNetCore.Http.IHeaderDictionary headers) => throw null; + public System.DateTimeOffset? LastModified { get => throw null; set { } } + public System.Uri Location { get => throw null; set { } } public void Set(string name, object value) => throw null; - public System.Collections.Generic.IList SetCookie { get => throw null; set => throw null; } + public System.Collections.Generic.IList SetCookie { get => throw null; set { } } public void SetList(string name, System.Collections.Generic.IList values) => throw null; } - + } + public static partial class HttpContextServerVariableExtensions + { + public static string GetServerVariable(this Microsoft.AspNetCore.Http.HttpContext context, string variableName) => throw null; + } + public static partial class HttpRequestJsonExtensions + { + public static bool HasJsonContentType(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; + public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Type type, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest request, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public static partial class HttpResponseJsonExtensions + { + public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, TValue value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, TValue value, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, TValue value, System.Text.Json.JsonSerializerOptions options, string contentType, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, TValue value, System.Text.Json.Serialization.Metadata.JsonTypeInfo jsonTypeInfo, string contentType = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, object value, System.Type type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, object value, System.Type type, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, object value, System.Type type, System.Text.Json.JsonSerializerOptions options, string contentType, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse response, object value, System.Type type, System.Text.Json.Serialization.JsonSerializerContext context, string contentType = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } namespace Json { @@ -220,7 +147,58 @@ namespace Microsoft public JsonOptions() => throw null; public System.Text.Json.JsonSerializerOptions SerializerOptions { get => throw null; } } - + } + public class ProblemDetailsOptions + { + public ProblemDetailsOptions() => throw null; + public System.Action CustomizeProblemDetails { get => throw null; set { } } + } + public static class RequestDelegateFactory + { + public static Microsoft.AspNetCore.Http.RequestDelegateResult Create(System.Delegate handler, Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options) => throw null; + public static Microsoft.AspNetCore.Http.RequestDelegateResult Create(System.Delegate handler, Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options = default(Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions), Microsoft.AspNetCore.Http.RequestDelegateMetadataResult metadataResult = default(Microsoft.AspNetCore.Http.RequestDelegateMetadataResult)) => throw null; + public static Microsoft.AspNetCore.Http.RequestDelegateResult Create(System.Reflection.MethodInfo methodInfo, System.Func targetFactory, Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options) => throw null; + public static Microsoft.AspNetCore.Http.RequestDelegateResult Create(System.Reflection.MethodInfo methodInfo, System.Func targetFactory = default(System.Func), Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options = default(Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions), Microsoft.AspNetCore.Http.RequestDelegateMetadataResult metadataResult = default(Microsoft.AspNetCore.Http.RequestDelegateMetadataResult)) => throw null; + public static Microsoft.AspNetCore.Http.RequestDelegateMetadataResult InferMetadata(System.Reflection.MethodInfo methodInfo, Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options = default(Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions)) => throw null; + } + public sealed class RequestDelegateFactoryOptions + { + public RequestDelegateFactoryOptions() => throw null; + public bool DisableInferBodyFromParameters { get => throw null; set { } } + public Microsoft.AspNetCore.Builder.EndpointBuilder EndpointBuilder { get => throw null; set { } } + public System.Collections.Generic.IEnumerable RouteParameterNames { get => throw null; set { } } + public System.IServiceProvider ServiceProvider { get => throw null; set { } } + public bool ThrowOnBadRequest { get => throw null; set { } } + } + public sealed class RequestDelegateMetadataResult + { + public RequestDelegateMetadataResult() => throw null; + public System.Collections.Generic.IReadOnlyList EndpointMetadata { get => throw null; set { } } + } + public static partial class ResponseExtensions + { + public static void Clear(this Microsoft.AspNetCore.Http.HttpResponse response) => throw null; + public static void Redirect(this Microsoft.AspNetCore.Http.HttpResponse response, string location, bool permanent, bool preserveMethod) => throw null; + } + public static partial class SendFileResponseExtensions + { + public static System.Threading.Tasks.Task SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, Microsoft.Extensions.FileProviders.IFileInfo file, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, Microsoft.Extensions.FileProviders.IFileInfo file, long offset, long? count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, string fileName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, string fileName, long offset, long? count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public static partial class SessionExtensions + { + public static byte[] Get(this Microsoft.AspNetCore.Http.ISession session, string key) => throw null; + public static int? GetInt32(this Microsoft.AspNetCore.Http.ISession session, string key) => throw null; + public static string GetString(this Microsoft.AspNetCore.Http.ISession session, string key) => throw null; + public static void SetInt32(this Microsoft.AspNetCore.Http.ISession session, string key, int value) => throw null; + public static void SetString(this Microsoft.AspNetCore.Http.ISession session, string key, string value) => throw null; + } + public sealed class TagsAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.ITagsMetadata + { + public TagsAttribute(params string[] tags) => throw null; + public System.Collections.Generic.IReadOnlyList Tags { get => throw null; } } } } @@ -228,17 +206,15 @@ namespace Microsoft { namespace DependencyInjection { - public static class HttpJsonServiceExtensions + public static partial class HttpJsonServiceExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureHttpJsonOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - - public static class ProblemDetailsServiceCollectionExtensions + public static partial class ProblemDetailsServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddProblemDetails(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddProblemDetails(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Features.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Features.cs index acf927a9dca..728dd69c058 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Features.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Features.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Http.Features, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,217 +8,38 @@ namespace Microsoft { public class CookieOptions { + public Microsoft.Net.Http.Headers.SetCookieHeaderValue CreateCookieHeader(string name, string value) => throw null; public CookieOptions() => throw null; public CookieOptions(Microsoft.AspNetCore.Http.CookieOptions options) => throw null; - public Microsoft.Net.Http.Headers.SetCookieHeaderValue CreateCookieHeader(string name, string value) => throw null; - public string Domain { get => throw null; set => throw null; } - public System.DateTimeOffset? Expires { get => throw null; set => throw null; } + public string Domain { get => throw null; set { } } + public System.DateTimeOffset? Expires { get => throw null; set { } } public System.Collections.Generic.IList Extensions { get => throw null; } - public bool HttpOnly { get => throw null; set => throw null; } - public bool IsEssential { get => throw null; set => throw null; } - public System.TimeSpan? MaxAge { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.SameSiteMode SameSite { get => throw null; set => throw null; } - public bool Secure { get => throw null; set => throw null; } + public bool HttpOnly { get => throw null; set { } } + public bool IsEssential { get => throw null; set { } } + public System.TimeSpan? MaxAge { get => throw null; set { } } + public string Path { get => throw null; set { } } + public Microsoft.AspNetCore.Http.SameSiteMode SameSite { get => throw null; set { } } + public bool Secure { get => throw null; set { } } } - - public interface IFormCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable - { - bool ContainsKey(string key); - int Count { get; } - Microsoft.AspNetCore.Http.IFormFileCollection Files { get; } - Microsoft.Extensions.Primitives.StringValues this[string key] { get; } - System.Collections.Generic.ICollection Keys { get; } - bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value); - } - - public interface IFormFile - { - string ContentDisposition { get; } - string ContentType { get; } - void CopyTo(System.IO.Stream target); - System.Threading.Tasks.Task CopyToAsync(System.IO.Stream target, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - string FileName { get; } - Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get; } - System.Int64 Length { get; } - string Name { get; } - System.IO.Stream OpenReadStream(); - } - - public interface IFormFileCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable - { - Microsoft.AspNetCore.Http.IFormFile GetFile(string name); - System.Collections.Generic.IReadOnlyList GetFiles(string name); - Microsoft.AspNetCore.Http.IFormFile this[string name] { get; } - } - - public interface IHeaderDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable - { - Microsoft.Extensions.Primitives.StringValues Accept { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AcceptCharset { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AcceptEncoding { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AcceptLanguage { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AcceptRanges { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AccessControlAllowCredentials { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AccessControlAllowHeaders { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AccessControlAllowMethods { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AccessControlAllowOrigin { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AccessControlExposeHeaders { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AccessControlMaxAge { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AccessControlRequestHeaders { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AccessControlRequestMethod { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Age { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Allow { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues AltSvc { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Authorization { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Baggage { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues CacheControl { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Connection { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ContentDisposition { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ContentEncoding { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ContentLanguage { get => throw null; set => throw null; } - System.Int64? ContentLength { get; set; } - Microsoft.Extensions.Primitives.StringValues ContentLocation { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ContentMD5 { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ContentRange { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ContentSecurityPolicy { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ContentSecurityPolicyReportOnly { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ContentType { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Cookie { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues CorrelationContext { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Date { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ETag { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Expect { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Expires { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues From { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues GrpcAcceptEncoding { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues GrpcEncoding { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues GrpcMessage { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues GrpcStatus { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues GrpcTimeout { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Host { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues IfMatch { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues IfModifiedSince { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues IfNoneMatch { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues IfRange { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues IfUnmodifiedSince { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues this[string key] { get; set; } - Microsoft.Extensions.Primitives.StringValues KeepAlive { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues LastModified { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Link { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Location { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues MaxForwards { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Origin { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Pragma { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ProxyAuthenticate { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ProxyAuthorization { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues ProxyConnection { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Range { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Referer { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues RequestId { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues RetryAfter { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues SecWebSocketAccept { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues SecWebSocketExtensions { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues SecWebSocketKey { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues SecWebSocketProtocol { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues SecWebSocketVersion { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Server { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues SetCookie { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues StrictTransportSecurity { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues TE { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues TraceParent { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues TraceState { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Trailer { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues TransferEncoding { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Translate { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Upgrade { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues UpgradeInsecureRequests { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues UserAgent { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Vary { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Via { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues WWWAuthenticate { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues Warning { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues WebSocketSubProtocols { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues XContentTypeOptions { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues XFrameOptions { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues XPoweredBy { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues XRequestedWith { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues XUACompatible { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues XXSSProtection { get => throw null; set => throw null; } - } - - public interface IQueryCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable - { - bool ContainsKey(string key); - int Count { get; } - Microsoft.Extensions.Primitives.StringValues this[string key] { get; } - System.Collections.Generic.ICollection Keys { get; } - bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value); - } - - public interface IRequestCookieCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable - { - bool ContainsKey(string key); - int Count { get; } - string this[string key] { get; } - System.Collections.Generic.ICollection Keys { get; } - bool TryGetValue(string key, out string value); - } - - public interface IResponseCookies - { - void Append(System.ReadOnlySpan> keyValuePairs, Microsoft.AspNetCore.Http.CookieOptions options) => throw null; - void Append(string key, string value); - void Append(string key, string value, Microsoft.AspNetCore.Http.CookieOptions options); - void Delete(string key); - void Delete(string key, Microsoft.AspNetCore.Http.CookieOptions options); - } - - public interface ISession - { - void Clear(); - System.Threading.Tasks.Task CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - string Id { get; } - bool IsAvailable { get; } - System.Collections.Generic.IEnumerable Keys { get; } - System.Threading.Tasks.Task LoadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void Remove(string key); - void Set(string key, System.Byte[] value); - bool TryGetValue(string key, out System.Byte[] value); - } - - public enum SameSiteMode : int - { - Lax = 1, - None = 0, - Strict = 2, - Unspecified = -1, - } - - public class WebSocketAcceptContext - { - public bool DangerousEnableCompression { get => throw null; set => throw null; } - public bool DisableServerContextTakeover { get => throw null; set => throw null; } - public virtual System.TimeSpan? KeepAliveInterval { get => throw null; set => throw null; } - public int ServerMaxWindowBits { get => throw null; set => throw null; } - public virtual string SubProtocol { get => throw null; set => throw null; } - public WebSocketAcceptContext() => throw null; - } - namespace Features { - public enum HttpsCompressionMode : int + namespace Authentication + { + public interface IHttpAuthenticationFeature + { + System.Security.Claims.ClaimsPrincipal User { get; set; } + } + } + public enum HttpsCompressionMode { - Compress = 2, Default = 0, DoNotCompress = 1, + Compress = 2, } - public interface IBadRequestExceptionFeature { System.Exception Error { get; } } - public interface IFormFeature { Microsoft.AspNetCore.Http.IFormCollection Form { get; set; } @@ -227,12 +47,10 @@ namespace Microsoft Microsoft.AspNetCore.Http.IFormCollection ReadForm(); System.Threading.Tasks.Task ReadFormAsync(System.Threading.CancellationToken cancellationToken); } - public interface IHttpBodyControlFeature { bool AllowSynchronousIO { get; set; } } - public interface IHttpConnectionFeature { string ConnectionId { get; set; } @@ -241,25 +59,21 @@ namespace Microsoft System.Net.IPAddress RemoteIpAddress { get; set; } int RemotePort { get; set; } } - public interface IHttpExtendedConnectFeature { System.Threading.Tasks.ValueTask AcceptAsync(); bool IsExtendedConnect { get; } string Protocol { get; } } - public interface IHttpMaxRequestBodySizeFeature { bool IsReadOnly { get; } - System.Int64? MaxRequestBodySize { get; set; } + long? MaxRequestBodySize { get; set; } } - public interface IHttpRequestBodyDetectionFeature { bool CanHaveBody { get; } } - public interface IHttpRequestFeature { System.IO.Stream Body { get; set; } @@ -272,39 +86,33 @@ namespace Microsoft string RawTarget { get; set; } string Scheme { get; set; } } - public interface IHttpRequestIdentifierFeature { string TraceIdentifier { get; set; } } - public interface IHttpRequestLifetimeFeature { void Abort(); System.Threading.CancellationToken RequestAborted { get; set; } } - public interface IHttpRequestTrailersFeature { bool Available { get; } Microsoft.AspNetCore.Http.IHeaderDictionary Trailers { get; } } - public interface IHttpResetFeature { void Reset(int errorCode); } - public interface IHttpResponseBodyFeature { System.Threading.Tasks.Task CompleteAsync(); void DisableBuffering(); - System.Threading.Tasks.Task SendFileAsync(string path, System.Int64 offset, System.Int64? count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SendFileAsync(string path, long offset, long? count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); System.IO.Stream Stream { get; } System.IO.Pipelines.PipeWriter Writer { get; } } - public interface IHttpResponseFeature { System.IO.Stream Body { get; set; } @@ -315,87 +123,71 @@ namespace Microsoft string ReasonPhrase { get; set; } int StatusCode { get; set; } } - public interface IHttpResponseTrailersFeature { Microsoft.AspNetCore.Http.IHeaderDictionary Trailers { get; set; } } - + public interface IHttpsCompressionFeature + { + Microsoft.AspNetCore.Http.Features.HttpsCompressionMode Mode { get; set; } + } public interface IHttpUpgradeFeature { bool IsUpgradableRequest { get; } System.Threading.Tasks.Task UpgradeAsync(); } - public interface IHttpWebSocketFeature { System.Threading.Tasks.Task AcceptAsync(Microsoft.AspNetCore.Http.WebSocketAcceptContext context); bool IsWebSocketRequest { get; } } - public interface IHttpWebTransportFeature { System.Threading.Tasks.ValueTask AcceptAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); bool IsWebTransportRequest { get; } } - - public interface IHttpsCompressionFeature - { - Microsoft.AspNetCore.Http.Features.HttpsCompressionMode Mode { get; set; } - } - public interface IItemsFeature { System.Collections.Generic.IDictionary Items { get; set; } } - public interface IQueryFeature { Microsoft.AspNetCore.Http.IQueryCollection Query { get; set; } } - public interface IRequestBodyPipeFeature { System.IO.Pipelines.PipeReader Reader { get; } } - public interface IRequestCookiesFeature { Microsoft.AspNetCore.Http.IRequestCookieCollection Cookies { get; set; } } - public interface IResponseCookiesFeature { Microsoft.AspNetCore.Http.IResponseCookies Cookies { get; } } - public interface IServerVariablesFeature { string this[string variableName] { get; set; } } - public interface IServiceProvidersFeature { System.IServiceProvider RequestServices { get; set; } } - public interface ISessionFeature { Microsoft.AspNetCore.Http.ISession Session { get; set; } } - public interface ITlsConnectionFeature { System.Security.Cryptography.X509Certificates.X509Certificate2 ClientCertificate { get; set; } System.Threading.Tasks.Task GetClientCertificateAsync(System.Threading.CancellationToken cancellationToken); } - public interface ITlsTokenBindingFeature { - System.Byte[] GetProvidedTokenBindingId(); - System.Byte[] GetReferredTokenBindingId(); + byte[] GetProvidedTokenBindingId(); + byte[] GetReferredTokenBindingId(); } - public interface ITrackingConsentFeature { bool CanTrack { get; } @@ -405,24 +197,187 @@ namespace Microsoft bool IsConsentNeeded { get; } void WithdrawConsent(); } - public interface IWebTransportSession { void Abort(int errorCode); System.Threading.Tasks.ValueTask AcceptStreamAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); System.Threading.Tasks.ValueTask OpenUnidirectionalStreamAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Int64 SessionId { get; } - } - - namespace Authentication - { - public interface IHttpAuthenticationFeature - { - System.Security.Claims.ClaimsPrincipal User { get; set; } - } - + long SessionId { get; } } } + public interface IFormCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + bool ContainsKey(string key); + int Count { get; } + Microsoft.AspNetCore.Http.IFormFileCollection Files { get; } + System.Collections.Generic.ICollection Keys { get; } + Microsoft.Extensions.Primitives.StringValues this[string key] { get; } + bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value); + } + public interface IFormFile + { + string ContentDisposition { get; } + string ContentType { get; } + void CopyTo(System.IO.Stream target); + System.Threading.Tasks.Task CopyToAsync(System.IO.Stream target, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + string FileName { get; } + Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get; } + long Length { get; } + string Name { get; } + System.IO.Stream OpenReadStream(); + } + public interface IFormFileCollection : System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection + { + Microsoft.AspNetCore.Http.IFormFile GetFile(string name); + System.Collections.Generic.IReadOnlyList GetFiles(string name); + Microsoft.AspNetCore.Http.IFormFile this[string name] { get; } + } + public interface IHeaderDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + virtual Microsoft.Extensions.Primitives.StringValues Accept { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AcceptCharset { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AcceptEncoding { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AcceptLanguage { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AcceptRanges { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AccessControlAllowCredentials { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AccessControlAllowHeaders { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AccessControlAllowMethods { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AccessControlAllowOrigin { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AccessControlExposeHeaders { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AccessControlMaxAge { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AccessControlRequestHeaders { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AccessControlRequestMethod { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Age { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Allow { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues AltSvc { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Authorization { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Baggage { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues CacheControl { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Connection { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ContentDisposition { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ContentEncoding { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ContentLanguage { get => throw null; set { } } + long? ContentLength { get; set; } + virtual Microsoft.Extensions.Primitives.StringValues ContentLocation { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ContentMD5 { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ContentRange { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ContentSecurityPolicy { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ContentSecurityPolicyReportOnly { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ContentType { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Cookie { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues CorrelationContext { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Date { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ETag { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Expect { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Expires { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues From { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues GrpcAcceptEncoding { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues GrpcEncoding { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues GrpcMessage { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues GrpcStatus { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues GrpcTimeout { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Host { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues IfMatch { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues IfModifiedSince { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues IfNoneMatch { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues IfRange { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues IfUnmodifiedSince { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues KeepAlive { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues LastModified { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Link { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Location { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues MaxForwards { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Origin { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Pragma { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ProxyAuthenticate { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ProxyAuthorization { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues ProxyConnection { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Range { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Referer { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues RequestId { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues RetryAfter { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues SecWebSocketAccept { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues SecWebSocketExtensions { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues SecWebSocketKey { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues SecWebSocketProtocol { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues SecWebSocketVersion { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Server { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues SetCookie { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues StrictTransportSecurity { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues TE { get => throw null; set { } } + Microsoft.Extensions.Primitives.StringValues this[string key] { get; set; } + virtual Microsoft.Extensions.Primitives.StringValues TraceParent { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues TraceState { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Trailer { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues TransferEncoding { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Translate { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Upgrade { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues UpgradeInsecureRequests { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues UserAgent { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Vary { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Via { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues Warning { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues WebSocketSubProtocols { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues WWWAuthenticate { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues XContentTypeOptions { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues XFrameOptions { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues XPoweredBy { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues XRequestedWith { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues XUACompatible { get => throw null; set { } } + virtual Microsoft.Extensions.Primitives.StringValues XXSSProtection { get => throw null; set { } } + } + public interface IQueryCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + bool ContainsKey(string key); + int Count { get; } + System.Collections.Generic.ICollection Keys { get; } + Microsoft.Extensions.Primitives.StringValues this[string key] { get; } + bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value); + } + public interface IRequestCookieCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + bool ContainsKey(string key); + int Count { get; } + System.Collections.Generic.ICollection Keys { get; } + string this[string key] { get; } + bool TryGetValue(string key, out string value); + } + public interface IResponseCookies + { + void Append(string key, string value); + void Append(string key, string value, Microsoft.AspNetCore.Http.CookieOptions options); + virtual void Append(System.ReadOnlySpan> keyValuePairs, Microsoft.AspNetCore.Http.CookieOptions options) => throw null; + void Delete(string key); + void Delete(string key, Microsoft.AspNetCore.Http.CookieOptions options); + } + public interface ISession + { + void Clear(); + System.Threading.Tasks.Task CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + string Id { get; } + bool IsAvailable { get; } + System.Collections.Generic.IEnumerable Keys { get; } + System.Threading.Tasks.Task LoadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + void Remove(string key); + void Set(string key, byte[] value); + bool TryGetValue(string key, out byte[] value); + } + public enum SameSiteMode + { + Unspecified = -1, + None = 0, + Lax = 1, + Strict = 2, + } + public class WebSocketAcceptContext + { + public WebSocketAcceptContext() => throw null; + public bool DangerousEnableCompression { get => throw null; set { } } + public bool DisableServerContextTakeover { get => throw null; set { } } + public virtual System.TimeSpan? KeepAliveInterval { get => throw null; set { } } + public int ServerMaxWindowBits { get => throw null; set { } } + public virtual string SubProtocol { get => throw null; set { } } + } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Results.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Results.cs index d6c359772a4..b830eb33292 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Results.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Results.cs @@ -1,16 +1,387 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Http.Results, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Http { + namespace HttpResults + { + public sealed class Accepted : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string Location { get => throw null; } + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class Accepted : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string Location { get => throw null; } + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + public TValue Value { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class AcceptedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public string RouteName { get => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class AcceptedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public string RouteName { get => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + public TValue Value { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class BadRequest : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class BadRequest : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + public TValue Value { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class ChallengeHttpResult : Microsoft.AspNetCore.Http.IResult + { + public System.Collections.Generic.IReadOnlyList AuthenticationSchemes { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; } + } + public sealed class Conflict : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class Conflict : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + public TValue Value { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class ContentHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + { + public string ContentType { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string ResponseContent { get => throw null; } + public int? StatusCode { get => throw null; } + } + public sealed class Created : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string Location { get => throw null; } + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class Created : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string Location { get => throw null; } + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + public TValue Value { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class CreatedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public string RouteName { get => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class CreatedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public string RouteName { get => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + public TValue Value { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class EmptyHttpResult : Microsoft.AspNetCore.Http.IResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.EmptyHttpResult Instance { get => throw null; } + } + public sealed class FileContentHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + { + public string ContentType { get => throw null; } + public bool EnableRangeProcessing { get => throw null; } + public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public System.ReadOnlyMemory FileContents { get => throw null; } + public string FileDownloadName { get => throw null; } + public long? FileLength { get => throw null; } + public System.DateTimeOffset? LastModified { get => throw null; } + } + public sealed class FileStreamHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + { + public string ContentType { get => throw null; } + public bool EnableRangeProcessing { get => throw null; } + public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string FileDownloadName { get => throw null; } + public long? FileLength { get => throw null; } + public System.IO.Stream FileStream { get => throw null; } + public System.DateTimeOffset? LastModified { get => throw null; } + } + public sealed class ForbidHttpResult : Microsoft.AspNetCore.Http.IResult + { + public System.Collections.Generic.IReadOnlyList AuthenticationSchemes { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; } + } + public sealed class JsonHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + { + public string ContentType { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public System.Text.Json.JsonSerializerOptions JsonSerializerOptions { get => throw null; } + public int? StatusCode { get => throw null; } + public TValue Value { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public class NoContent : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class NotFound : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class NotFound : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + public TValue Value { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class Ok : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class Ok : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + public TValue Value { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class PhysicalFileHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + { + public string ContentType { get => throw null; } + public bool EnableRangeProcessing { get => throw null; } + public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string FileDownloadName { get => throw null; } + public long? FileLength { get => throw null; } + public string FileName { get => throw null; } + public System.DateTimeOffset? LastModified { get => throw null; } + } + public sealed class ProblemHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public string ContentType { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public Microsoft.AspNetCore.Mvc.ProblemDetails ProblemDetails { get => throw null; } + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + Microsoft.AspNetCore.Mvc.ProblemDetails Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class PushStreamHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + { + public string ContentType { get => throw null; } + public bool EnableRangeProcessing { get => throw null; } + public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string FileDownloadName { get => throw null; } + public long? FileLength { get => throw null; } + public System.DateTimeOffset? LastModified { get => throw null; } + } + public sealed class RedirectHttpResult : Microsoft.AspNetCore.Http.IResult + { + public bool AcceptLocalUrlOnly { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public bool Permanent { get => throw null; } + public bool PreserveMethod { get => throw null; } + public string Url { get => throw null; } + } + public sealed class RedirectToRouteHttpResult : Microsoft.AspNetCore.Http.IResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string Fragment { get => throw null; } + public bool Permanent { get => throw null; } + public bool PreserveMethod { get => throw null; } + public string RouteName { get => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } + } + public sealed class Results : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult2 result) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } + } + public sealed class Results : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult2 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult3 result) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } + } + public sealed class Results : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult2 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult3 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult4 result) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } + } + public sealed class Results : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult where TResult5 : Microsoft.AspNetCore.Http.IResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult2 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult3 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult4 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult5 result) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } + } + public sealed class Results : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult where TResult5 : Microsoft.AspNetCore.Http.IResult where TResult6 : Microsoft.AspNetCore.Http.IResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult2 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult3 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult4 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult5 result) => throw null; + public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult6 result) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } + } + public sealed class SignInHttpResult : Microsoft.AspNetCore.Http.IResult + { + public string AuthenticationScheme { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; } + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; } + } + public sealed class SignOutHttpResult : Microsoft.AspNetCore.Http.IResult + { + public System.Collections.Generic.IReadOnlyList AuthenticationSchemes { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; } + } + public sealed class StatusCodeHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class UnauthorizedHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class UnprocessableEntity : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + } + public sealed class UnprocessableEntity : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + public TValue Value { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class Utf8ContentHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + { + public string ContentType { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public System.ReadOnlyMemory ResponseContent { get => throw null; } + public int? StatusCode { get => throw null; } + } + public sealed class ValidationProblem : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + { + public string ContentType { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; + public Microsoft.AspNetCore.Http.HttpValidationProblemDetails ProblemDetails { get => throw null; } + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } + object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + Microsoft.AspNetCore.Http.HttpValidationProblemDetails Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } + } + public sealed class VirtualFileHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + { + public string ContentType { get => throw null; } + public bool EnableRangeProcessing { get => throw null; } + public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; } + public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string FileDownloadName { get => throw null; } + public long? FileLength { get => throw null; } + public string FileName { get => throw null; } + public System.DateTimeOffset? LastModified { get => throw null; } + } + } public interface IResultExtensions { } - public static class Results { public static Microsoft.AspNetCore.Http.IResult Accepted(string uri = default(string), object value = default(object)) => throw null; @@ -19,23 +390,23 @@ namespace Microsoft public static Microsoft.AspNetCore.Http.IResult AcceptedAtRoute(string routeName = default(string), object routeValues = default(object), TValue value = default(TValue)) => throw null; public static Microsoft.AspNetCore.Http.IResult BadRequest(object error = default(object)) => throw null; public static Microsoft.AspNetCore.Http.IResult BadRequest(TValue error) => throw null; - public static Microsoft.AspNetCore.Http.IResult Bytes(System.Byte[] contents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; - public static Microsoft.AspNetCore.Http.IResult Bytes(System.ReadOnlyMemory contents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; + public static Microsoft.AspNetCore.Http.IResult Bytes(byte[] contents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; + public static Microsoft.AspNetCore.Http.IResult Bytes(System.ReadOnlyMemory contents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; public static Microsoft.AspNetCore.Http.IResult Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties = default(Microsoft.AspNetCore.Authentication.AuthenticationProperties), System.Collections.Generic.IList authenticationSchemes = default(System.Collections.Generic.IList)) => throw null; public static Microsoft.AspNetCore.Http.IResult Conflict(object error = default(object)) => throw null; public static Microsoft.AspNetCore.Http.IResult Conflict(TValue error) => throw null; - public static Microsoft.AspNetCore.Http.IResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; public static Microsoft.AspNetCore.Http.IResult Content(string content, string contentType, System.Text.Encoding contentEncoding) => throw null; public static Microsoft.AspNetCore.Http.IResult Content(string content, string contentType = default(string), System.Text.Encoding contentEncoding = default(System.Text.Encoding), int? statusCode = default(int?)) => throw null; - public static Microsoft.AspNetCore.Http.IResult Created(System.Uri uri, object value) => throw null; + public static Microsoft.AspNetCore.Http.IResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; public static Microsoft.AspNetCore.Http.IResult Created(string uri, object value) => throw null; - public static Microsoft.AspNetCore.Http.IResult Created(System.Uri uri, TValue value) => throw null; public static Microsoft.AspNetCore.Http.IResult Created(string uri, TValue value) => throw null; + public static Microsoft.AspNetCore.Http.IResult Created(System.Uri uri, object value) => throw null; + public static Microsoft.AspNetCore.Http.IResult Created(System.Uri uri, TValue value) => throw null; public static Microsoft.AspNetCore.Http.IResult CreatedAtRoute(string routeName = default(string), object routeValues = default(object), object value = default(object)) => throw null; public static Microsoft.AspNetCore.Http.IResult CreatedAtRoute(string routeName = default(string), object routeValues = default(object), TValue value = default(TValue)) => throw null; public static Microsoft.AspNetCore.Http.IResult Empty { get => throw null; } public static Microsoft.AspNetCore.Http.IResultExtensions Extensions { get => throw null; } - public static Microsoft.AspNetCore.Http.IResult File(System.Byte[] fileContents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; + public static Microsoft.AspNetCore.Http.IResult File(byte[] fileContents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; public static Microsoft.AspNetCore.Http.IResult File(System.IO.Stream fileStream, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; public static Microsoft.AspNetCore.Http.IResult File(string path, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; public static Microsoft.AspNetCore.Http.IResult Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties = default(Microsoft.AspNetCore.Authentication.AuthenticationProperties), System.Collections.Generic.IList authenticationSchemes = default(System.Collections.Generic.IList)) => throw null; @@ -47,51 +418,50 @@ namespace Microsoft public static Microsoft.AspNetCore.Http.IResult NotFound(TValue value) => throw null; public static Microsoft.AspNetCore.Http.IResult Ok(object value = default(object)) => throw null; public static Microsoft.AspNetCore.Http.IResult Ok(TValue value) => throw null; - public static Microsoft.AspNetCore.Http.IResult Problem(Microsoft.AspNetCore.Mvc.ProblemDetails problemDetails) => throw null; public static Microsoft.AspNetCore.Http.IResult Problem(string detail = default(string), string instance = default(string), int? statusCode = default(int?), string title = default(string), string type = default(string), System.Collections.Generic.IDictionary extensions = default(System.Collections.Generic.IDictionary)) => throw null; + public static Microsoft.AspNetCore.Http.IResult Problem(Microsoft.AspNetCore.Mvc.ProblemDetails problemDetails) => throw null; public static Microsoft.AspNetCore.Http.IResult Redirect(string url, bool permanent = default(bool), bool preserveMethod = default(bool)) => throw null; public static Microsoft.AspNetCore.Http.IResult RedirectToRoute(string routeName = default(string), object routeValues = default(object), bool permanent = default(bool), bool preserveMethod = default(bool), string fragment = default(string)) => throw null; public static Microsoft.AspNetCore.Http.IResult SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties = default(Microsoft.AspNetCore.Authentication.AuthenticationProperties), string authenticationScheme = default(string)) => throw null; public static Microsoft.AspNetCore.Http.IResult SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties = default(Microsoft.AspNetCore.Authentication.AuthenticationProperties), System.Collections.Generic.IList authenticationSchemes = default(System.Collections.Generic.IList)) => throw null; public static Microsoft.AspNetCore.Http.IResult StatusCode(int statusCode) => throw null; - public static Microsoft.AspNetCore.Http.IResult Stream(System.Func streamWriterCallback, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; - public static Microsoft.AspNetCore.Http.IResult Stream(System.IO.Pipelines.PipeReader pipeReader, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; public static Microsoft.AspNetCore.Http.IResult Stream(System.IO.Stream stream, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; - public static Microsoft.AspNetCore.Http.IResult Text(System.ReadOnlySpan utf8Content, string contentType = default(string), int? statusCode = default(int?)) => throw null; + public static Microsoft.AspNetCore.Http.IResult Stream(System.IO.Pipelines.PipeReader pipeReader, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; + public static Microsoft.AspNetCore.Http.IResult Stream(System.Func streamWriterCallback, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; public static Microsoft.AspNetCore.Http.IResult Text(string content, string contentType, System.Text.Encoding contentEncoding) => throw null; public static Microsoft.AspNetCore.Http.IResult Text(string content, string contentType = default(string), System.Text.Encoding contentEncoding = default(System.Text.Encoding), int? statusCode = default(int?)) => throw null; + public static Microsoft.AspNetCore.Http.IResult Text(System.ReadOnlySpan utf8Content, string contentType = default(string), int? statusCode = default(int?)) => throw null; public static Microsoft.AspNetCore.Http.IResult Unauthorized() => throw null; public static Microsoft.AspNetCore.Http.IResult UnprocessableEntity(object error = default(object)) => throw null; public static Microsoft.AspNetCore.Http.IResult UnprocessableEntity(TValue error) => throw null; public static Microsoft.AspNetCore.Http.IResult ValidationProblem(System.Collections.Generic.IDictionary errors, string detail = default(string), string instance = default(string), int? statusCode = default(int?), string title = default(string), string type = default(string), System.Collections.Generic.IDictionary extensions = default(System.Collections.Generic.IDictionary)) => throw null; } - public static class TypedResults { - public static Microsoft.AspNetCore.Http.HttpResults.Accepted Accepted(System.Uri uri) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.Accepted Accepted(string uri) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.Accepted Accepted(System.Uri uri, TValue value) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.Accepted Accepted(string uri, TValue value) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.Accepted Accepted(System.Uri uri) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.Accepted Accepted(System.Uri uri, TValue value) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.AcceptedAtRoute AcceptedAtRoute(string routeName = default(string), object routeValues = default(object)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.AcceptedAtRoute AcceptedAtRoute(TValue value, string routeName = default(string), object routeValues = default(object)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.BadRequest BadRequest() => throw null; public static Microsoft.AspNetCore.Http.HttpResults.BadRequest BadRequest(TValue error) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.FileContentHttpResult Bytes(System.Byte[] contents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.FileContentHttpResult Bytes(System.ReadOnlyMemory contents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.FileContentHttpResult Bytes(byte[] contents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.FileContentHttpResult Bytes(System.ReadOnlyMemory contents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.ChallengeHttpResult Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties = default(Microsoft.AspNetCore.Authentication.AuthenticationProperties), System.Collections.Generic.IList authenticationSchemes = default(System.Collections.Generic.IList)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.Conflict Conflict() => throw null; public static Microsoft.AspNetCore.Http.HttpResults.Conflict Conflict(TValue error) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.ContentHttpResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.ContentHttpResult Content(string content, string contentType, System.Text.Encoding contentEncoding) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.ContentHttpResult Content(string content, string contentType = default(string), System.Text.Encoding contentEncoding = default(System.Text.Encoding), int? statusCode = default(int?)) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.Created Created(System.Uri uri) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.ContentHttpResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.Created Created(string uri) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.Created Created(System.Uri uri, TValue value) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.Created Created(string uri, TValue value) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.Created Created(System.Uri uri) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.Created Created(System.Uri uri, TValue value) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.CreatedAtRoute CreatedAtRoute(string routeName = default(string), object routeValues = default(object)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.CreatedAtRoute CreatedAtRoute(TValue value, string routeName = default(string), object routeValues = default(object)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.EmptyHttpResult Empty { get => throw null; } - public static Microsoft.AspNetCore.Http.HttpResults.FileContentHttpResult File(System.Byte[] fileContents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.FileContentHttpResult File(byte[] fileContents, string contentType = default(string), string fileDownloadName = default(string), bool enableRangeProcessing = default(bool), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.FileStreamHttpResult File(System.IO.Stream fileStream, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.ForbidHttpResult Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties = default(Microsoft.AspNetCore.Authentication.AuthenticationProperties), System.Collections.Generic.IList authenticationSchemes = default(System.Collections.Generic.IList)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.JsonHttpResult Json(TValue data, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), string contentType = default(string), int? statusCode = default(int?)) => throw null; @@ -102,18 +472,18 @@ namespace Microsoft public static Microsoft.AspNetCore.Http.HttpResults.Ok Ok() => throw null; public static Microsoft.AspNetCore.Http.HttpResults.Ok Ok(TValue value) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.PhysicalFileHttpResult PhysicalFile(string path, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.ProblemHttpResult Problem(Microsoft.AspNetCore.Mvc.ProblemDetails problemDetails) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.ProblemHttpResult Problem(string detail = default(string), string instance = default(string), int? statusCode = default(int?), string title = default(string), string type = default(string), System.Collections.Generic.IDictionary extensions = default(System.Collections.Generic.IDictionary)) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.ProblemHttpResult Problem(Microsoft.AspNetCore.Mvc.ProblemDetails problemDetails) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.RedirectHttpResult Redirect(string url, bool permanent = default(bool), bool preserveMethod = default(bool)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.RedirectToRouteHttpResult RedirectToRoute(string routeName = default(string), object routeValues = default(object), bool permanent = default(bool), bool preserveMethod = default(bool), string fragment = default(string)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.SignInHttpResult SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties = default(Microsoft.AspNetCore.Authentication.AuthenticationProperties), string authenticationScheme = default(string)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.SignOutHttpResult SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties = default(Microsoft.AspNetCore.Authentication.AuthenticationProperties), System.Collections.Generic.IList authenticationSchemes = default(System.Collections.Generic.IList)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.StatusCodeHttpResult StatusCode(int statusCode) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.PushStreamHttpResult Stream(System.Func streamWriterCallback, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.FileStreamHttpResult Stream(System.IO.Pipelines.PipeReader pipeReader, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.FileStreamHttpResult Stream(System.IO.Stream stream, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.Utf8ContentHttpResult Text(System.ReadOnlySpan utf8Content, string contentType = default(string), int? statusCode = default(int?)) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.FileStreamHttpResult Stream(System.IO.Pipelines.PipeReader pipeReader, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.PushStreamHttpResult Stream(System.Func streamWriterCallback, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.ContentHttpResult Text(string content, string contentType, System.Text.Encoding contentEncoding) => throw null; + public static Microsoft.AspNetCore.Http.HttpResults.Utf8ContentHttpResult Text(System.ReadOnlySpan utf8Content, string contentType = default(string), int? statusCode = default(int?)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.ContentHttpResult Text(string content, string contentType = default(string), System.Text.Encoding contentEncoding = default(System.Text.Encoding), int? statusCode = default(int?)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.UnauthorizedHttpResult Unauthorized() => throw null; public static Microsoft.AspNetCore.Http.HttpResults.UnprocessableEntity UnprocessableEntity() => throw null; @@ -121,423 +491,6 @@ namespace Microsoft public static Microsoft.AspNetCore.Http.HttpResults.ValidationProblem ValidationProblem(System.Collections.Generic.IDictionary errors, string detail = default(string), string instance = default(string), string title = default(string), string type = default(string), System.Collections.Generic.IDictionary extensions = default(System.Collections.Generic.IDictionary)) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.VirtualFileHttpResult VirtualFile(string path, string contentType = default(string), string fileDownloadName = default(string), System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue), bool enableRangeProcessing = default(bool)) => throw null; } - - namespace HttpResults - { - public class Accepted : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string Location { get => throw null; } - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class Accepted : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string Location { get => throw null; } - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - public TValue Value { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class AcceptedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public string RouteName { get => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class AcceptedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public string RouteName { get => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - public TValue Value { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class BadRequest : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class BadRequest : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - public TValue Value { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class ChallengeHttpResult : Microsoft.AspNetCore.Http.IResult - { - public System.Collections.Generic.IReadOnlyList AuthenticationSchemes { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } - } - - public class Conflict : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class Conflict : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - public TValue Value { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class ContentHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult - { - public string ContentType { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string ResponseContent { get => throw null; set => throw null; } - public int? StatusCode { get => throw null; set => throw null; } - } - - public class Created : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string Location { get => throw null; } - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class Created : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string Location { get => throw null; } - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - public TValue Value { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class CreatedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public string RouteName { get => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class CreatedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public string RouteName { get => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - public TValue Value { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class EmptyHttpResult : Microsoft.AspNetCore.Http.IResult - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static Microsoft.AspNetCore.Http.HttpResults.EmptyHttpResult Instance { get => throw null; } - } - - public class FileContentHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IResult - { - public string ContentType { get => throw null; set => throw null; } - public bool EnableRangeProcessing { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public System.ReadOnlyMemory FileContents { get => throw null; set => throw null; } - public string FileDownloadName { get => throw null; set => throw null; } - public System.Int64? FileLength { get => throw null; set => throw null; } - public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } - } - - public class FileStreamHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IResult - { - public string ContentType { get => throw null; set => throw null; } - public bool EnableRangeProcessing { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string FileDownloadName { get => throw null; set => throw null; } - public System.Int64? FileLength { get => throw null; set => throw null; } - public System.IO.Stream FileStream { get => throw null; } - public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } - } - - public class ForbidHttpResult : Microsoft.AspNetCore.Http.IResult - { - public System.Collections.Generic.IReadOnlyList AuthenticationSchemes { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } - } - - public class JsonHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult - { - public string ContentType { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public System.Text.Json.JsonSerializerOptions JsonSerializerOptions { get => throw null; set => throw null; } - public int? StatusCode { get => throw null; } - public TValue Value { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class NoContent : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class NotFound : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class NotFound : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - public TValue Value { get => throw null; set => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class Ok : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class Ok : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - public TValue Value { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class PhysicalFileHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IResult - { - public string ContentType { get => throw null; set => throw null; } - public bool EnableRangeProcessing { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string FileDownloadName { get => throw null; set => throw null; } - public System.Int64? FileLength { get => throw null; set => throw null; } - public string FileName { get => throw null; } - public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } - } - - public class ProblemHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult - { - public string ContentType { get => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public Microsoft.AspNetCore.Mvc.ProblemDetails ProblemDetails { get => throw null; } - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - Microsoft.AspNetCore.Mvc.ProblemDetails Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class PushStreamHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IResult - { - public string ContentType { get => throw null; set => throw null; } - public bool EnableRangeProcessing { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string FileDownloadName { get => throw null; set => throw null; } - public System.Int64? FileLength { get => throw null; set => throw null; } - public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } - } - - public class RedirectHttpResult : Microsoft.AspNetCore.Http.IResult - { - public bool AcceptLocalUrlOnly { get => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public bool Permanent { get => throw null; } - public bool PreserveMethod { get => throw null; } - public string Url { get => throw null; } - } - - public class RedirectToRouteHttpResult : Microsoft.AspNetCore.Http.IResult - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string Fragment { get => throw null; } - public bool Permanent { get => throw null; } - public bool PreserveMethod { get => throw null; } - public string RouteName { get => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } - } - - public class Results : Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult where TResult5 : Microsoft.AspNetCore.Http.IResult where TResult6 : Microsoft.AspNetCore.Http.IResult - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult2 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult3 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult4 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult5 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult6 result) => throw null; - } - - public class Results : Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult where TResult5 : Microsoft.AspNetCore.Http.IResult - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult2 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult3 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult4 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult5 result) => throw null; - } - - public class Results : Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult2 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult3 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult4 result) => throw null; - } - - public class Results : Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult2 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult3 result) => throw null; - } - - public class Results : Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; - public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult2 result) => throw null; - } - - public class SignInHttpResult : Microsoft.AspNetCore.Http.IResult - { - public string AuthenticationScheme { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } - } - - public class SignOutHttpResult : Microsoft.AspNetCore.Http.IResult - { - public System.Collections.Generic.IReadOnlyList AuthenticationSchemes { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } - } - - public class StatusCodeHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class UnauthorizedHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class UnprocessableEntity : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - } - - public class UnprocessableEntity : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - public TValue Value { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class Utf8ContentHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult - { - public string ContentType { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public System.ReadOnlyMemory ResponseContent { get => throw null; set => throw null; } - public int? StatusCode { get => throw null; set => throw null; } - } - - public class ValidationProblem : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider - { - public string ContentType { get => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static void PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; - public Microsoft.AspNetCore.Http.HttpValidationProblemDetails ProblemDetails { get => throw null; } - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } - object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - Microsoft.AspNetCore.Http.HttpValidationProblemDetails Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } - } - - public class VirtualFileHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IResult - { - public string ContentType { get => throw null; set => throw null; } - public bool EnableRangeProcessing { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string FileDownloadName { get => throw null; set => throw null; } - public System.Int64? FileLength { get => throw null; set => throw null; } - public string FileName { get => throw null; set => throw null; } - public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } - } - - } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs index 8625e51e6a0..1f1e3b721de 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Http, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,16 +8,15 @@ namespace Microsoft { public class ApplicationBuilder : Microsoft.AspNetCore.Builder.IApplicationBuilder { + public System.IServiceProvider ApplicationServices { get => throw null; set { } } + public Microsoft.AspNetCore.Http.RequestDelegate Build() => throw null; public ApplicationBuilder(System.IServiceProvider serviceProvider) => throw null; public ApplicationBuilder(System.IServiceProvider serviceProvider, object server) => throw null; - public System.IServiceProvider ApplicationServices { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.RequestDelegate Build() => throw null; public Microsoft.AspNetCore.Builder.IApplicationBuilder New() => throw null; public System.Collections.Generic.IDictionary Properties { get => throw null; } public Microsoft.AspNetCore.Http.Features.IFeatureCollection ServerFeatures { get => throw null; } public Microsoft.AspNetCore.Builder.IApplicationBuilder Use(System.Func middleware) => throw null; } - } namespace Http { @@ -36,350 +34,309 @@ namespace Microsoft public override string ToString() => throw null; public string UnixPipePath { get => throw null; } } - - public class DefaultHttpContext : Microsoft.AspNetCore.Http.HttpContext + public sealed class DefaultHttpContext : Microsoft.AspNetCore.Http.HttpContext { public override void Abort() => throw null; public override Microsoft.AspNetCore.Http.ConnectionInfo Connection { get => throw null; } public DefaultHttpContext() => throw null; public DefaultHttpContext(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; public override Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get => throw null; } - public Microsoft.AspNetCore.Http.Features.FormOptions FormOptions { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.Features.FormOptions FormOptions { get => throw null; set { } } public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public void Initialize(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; - public override System.Collections.Generic.IDictionary Items { get => throw null; set => throw null; } + public override System.Collections.Generic.IDictionary Items { get => throw null; set { } } public override Microsoft.AspNetCore.Http.HttpRequest Request { get => throw null; } - public override System.Threading.CancellationToken RequestAborted { get => throw null; set => throw null; } - public override System.IServiceProvider RequestServices { get => throw null; set => throw null; } + public override System.Threading.CancellationToken RequestAborted { get => throw null; set { } } + public override System.IServiceProvider RequestServices { get => throw null; set { } } public override Microsoft.AspNetCore.Http.HttpResponse Response { get => throw null; } - public Microsoft.Extensions.DependencyInjection.IServiceScopeFactory ServiceScopeFactory { get => throw null; set => throw null; } - public override Microsoft.AspNetCore.Http.ISession Session { get => throw null; set => throw null; } - public override string TraceIdentifier { get => throw null; set => throw null; } + public Microsoft.Extensions.DependencyInjection.IServiceScopeFactory ServiceScopeFactory { get => throw null; set { } } + public override Microsoft.AspNetCore.Http.ISession Session { get => throw null; set { } } + public override string TraceIdentifier { get => throw null; set { } } public void Uninitialize() => throw null; - public override System.Security.Claims.ClaimsPrincipal User { get => throw null; set => throw null; } + public override System.Security.Claims.ClaimsPrincipal User { get => throw null; set { } } public override Microsoft.AspNetCore.Http.WebSocketManager WebSockets { get => throw null; } } - - public class FormCollection : Microsoft.AspNetCore.Http.IFormCollection, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable - { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - public bool ContainsKey(string key) => throw null; - public int Count { get => throw null; } - public static Microsoft.AspNetCore.Http.FormCollection Empty; - public Microsoft.AspNetCore.Http.IFormFileCollection Files { get => throw null; } - public FormCollection(System.Collections.Generic.Dictionary fields, Microsoft.AspNetCore.Http.IFormFileCollection files = default(Microsoft.AspNetCore.Http.IFormFileCollection)) => throw null; - public Microsoft.AspNetCore.Http.FormCollection.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public Microsoft.Extensions.Primitives.StringValues this[string key] { get => throw null; } - public System.Collections.Generic.ICollection Keys { get => throw null; } - public bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value) => throw null; - } - - public class FormFile : Microsoft.AspNetCore.Http.IFormFile - { - public string ContentDisposition { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public void CopyTo(System.IO.Stream target) => throw null; - public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream target, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public string FileName { get => throw null; } - public FormFile(System.IO.Stream baseStream, System.Int64 baseStreamOffset, System.Int64 length, string name, string fileName) => throw null; - public Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get => throw null; set => throw null; } - public System.Int64 Length { get => throw null; } - public string Name { get => throw null; } - public System.IO.Stream OpenReadStream() => throw null; - } - - public class FormFileCollection : System.Collections.Generic.List, Microsoft.AspNetCore.Http.IFormFileCollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable - { - public FormFileCollection() => throw null; - public Microsoft.AspNetCore.Http.IFormFile GetFile(string name) => throw null; - public System.Collections.Generic.IReadOnlyList GetFiles(string name) => throw null; - public Microsoft.AspNetCore.Http.IFormFile this[string name] { get => throw null; } - } - - public class HeaderDictionary : Microsoft.AspNetCore.Http.IHeaderDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable - { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - public void Add(System.Collections.Generic.KeyValuePair item) => throw null; - public void Add(string key, Microsoft.Extensions.Primitives.StringValues value) => throw null; - public void Clear() => throw null; - public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; - public bool ContainsKey(string key) => throw null; - public System.Int64? ContentLength { get => throw null; set => throw null; } - public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public Microsoft.AspNetCore.Http.HeaderDictionary.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public HeaderDictionary() => throw null; - public HeaderDictionary(System.Collections.Generic.Dictionary store) => throw null; - public HeaderDictionary(int capacity) => throw null; - public bool IsReadOnly { get => throw null; set => throw null; } - public Microsoft.Extensions.Primitives.StringValues this[string key] { get => throw null; set => throw null; } - Microsoft.Extensions.Primitives.StringValues System.Collections.Generic.IDictionary.this[string key] { get => throw null; set => throw null; } - public System.Collections.Generic.ICollection Keys { get => throw null; } - public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; - public bool Remove(string key) => throw null; - public bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value) => throw null; - public System.Collections.Generic.ICollection Values { get => throw null; } - } - - public class HttpContextAccessor : Microsoft.AspNetCore.Http.IHttpContextAccessor - { - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set => throw null; } - public HttpContextAccessor() => throw null; - } - - public static class HttpRequestRewindExtensions - { - public static void EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; - public static void EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest request, int bufferThreshold) => throw null; - public static void EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest request, int bufferThreshold, System.Int64 bufferLimit) => throw null; - public static void EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest request, System.Int64 bufferLimit) => throw null; - } - - public class MiddlewareFactory : Microsoft.AspNetCore.Http.IMiddlewareFactory - { - public Microsoft.AspNetCore.Http.IMiddleware Create(System.Type middlewareType) => throw null; - public MiddlewareFactory(System.IServiceProvider serviceProvider) => throw null; - public void Release(Microsoft.AspNetCore.Http.IMiddleware middleware) => throw null; - } - - public class QueryCollection : Microsoft.AspNetCore.Http.IQueryCollection, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable - { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - public bool ContainsKey(string key) => throw null; - public int Count { get => throw null; } - public static Microsoft.AspNetCore.Http.QueryCollection Empty; - public Microsoft.AspNetCore.Http.QueryCollection.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public Microsoft.Extensions.Primitives.StringValues this[string key] { get => throw null; } - public System.Collections.Generic.ICollection Keys { get => throw null; } - public QueryCollection() => throw null; - public QueryCollection(System.Collections.Generic.Dictionary store) => throw null; - public QueryCollection(Microsoft.AspNetCore.Http.QueryCollection store) => throw null; - public QueryCollection(int capacity) => throw null; - public bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value) => throw null; - } - - public static class RequestFormReaderExtensions - { - public static System.Threading.Tasks.Task ReadFormAsync(this Microsoft.AspNetCore.Http.HttpRequest request, Microsoft.AspNetCore.Http.Features.FormOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - } - - public static class SendFileFallback - { - public static System.Threading.Tasks.Task SendFileAsync(System.IO.Stream destination, string filePath, System.Int64 offset, System.Int64? count, System.Threading.CancellationToken cancellationToken) => throw null; - } - - public class StreamResponseBodyFeature : Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature - { - public virtual System.Threading.Tasks.Task CompleteAsync() => throw null; - public virtual void DisableBuffering() => throw null; - public void Dispose() => throw null; - public Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature PriorFeature { get => throw null; } - public virtual System.Threading.Tasks.Task SendFileAsync(string path, System.Int64 offset, System.Int64? count, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.IO.Stream Stream { get => throw null; } - public StreamResponseBodyFeature(System.IO.Stream stream) => throw null; - public StreamResponseBodyFeature(System.IO.Stream stream, Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature priorFeature) => throw null; - public System.IO.Pipelines.PipeWriter Writer { get => throw null; } - } - namespace Features { + namespace Authentication + { + public class HttpAuthenticationFeature : Microsoft.AspNetCore.Http.Features.Authentication.IHttpAuthenticationFeature + { + public HttpAuthenticationFeature() => throw null; + public System.Security.Claims.ClaimsPrincipal User { get => throw null; set { } } + } + } public class DefaultSessionFeature : Microsoft.AspNetCore.Http.Features.ISessionFeature { public DefaultSessionFeature() => throw null; - public Microsoft.AspNetCore.Http.ISession Session { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.ISession Session { get => throw null; set { } } } - public class FormFeature : Microsoft.AspNetCore.Http.Features.IFormFeature { - public Microsoft.AspNetCore.Http.IFormCollection Form { get => throw null; set => throw null; } + public FormFeature(Microsoft.AspNetCore.Http.IFormCollection form) => throw null; public FormFeature(Microsoft.AspNetCore.Http.HttpRequest request) => throw null; public FormFeature(Microsoft.AspNetCore.Http.HttpRequest request, Microsoft.AspNetCore.Http.Features.FormOptions options) => throw null; - public FormFeature(Microsoft.AspNetCore.Http.IFormCollection form) => throw null; + public Microsoft.AspNetCore.Http.IFormCollection Form { get => throw null; set { } } public bool HasFormContentType { get => throw null; } public Microsoft.AspNetCore.Http.IFormCollection ReadForm() => throw null; public System.Threading.Tasks.Task ReadFormAsync() => throw null; public System.Threading.Tasks.Task ReadFormAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - public class FormOptions { - public bool BufferBody { get => throw null; set => throw null; } - public System.Int64 BufferBodyLengthLimit { get => throw null; set => throw null; } - public const int DefaultBufferBodyLengthLimit = default; - public const int DefaultMemoryBufferThreshold = default; - public const System.Int64 DefaultMultipartBodyLengthLimit = default; - public const int DefaultMultipartBoundaryLengthLimit = default; + public bool BufferBody { get => throw null; set { } } + public long BufferBodyLengthLimit { get => throw null; set { } } public FormOptions() => throw null; - public int KeyLengthLimit { get => throw null; set => throw null; } - public int MemoryBufferThreshold { get => throw null; set => throw null; } - public System.Int64 MultipartBodyLengthLimit { get => throw null; set => throw null; } - public int MultipartBoundaryLengthLimit { get => throw null; set => throw null; } - public int MultipartHeadersCountLimit { get => throw null; set => throw null; } - public int MultipartHeadersLengthLimit { get => throw null; set => throw null; } - public int ValueCountLimit { get => throw null; set => throw null; } - public int ValueLengthLimit { get => throw null; set => throw null; } + public static int DefaultBufferBodyLengthLimit; + public static int DefaultMemoryBufferThreshold; + public static long DefaultMultipartBodyLengthLimit; + public static int DefaultMultipartBoundaryLengthLimit; + public int KeyLengthLimit { get => throw null; set { } } + public int MemoryBufferThreshold { get => throw null; set { } } + public long MultipartBodyLengthLimit { get => throw null; set { } } + public int MultipartBoundaryLengthLimit { get => throw null; set { } } + public int MultipartHeadersCountLimit { get => throw null; set { } } + public int MultipartHeadersLengthLimit { get => throw null; set { } } + public int ValueCountLimit { get => throw null; set { } } + public int ValueLengthLimit { get => throw null; set { } } } - public class HttpConnectionFeature : Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature { - public string ConnectionId { get => throw null; set => throw null; } + public string ConnectionId { get => throw null; set { } } public HttpConnectionFeature() => throw null; - public System.Net.IPAddress LocalIpAddress { get => throw null; set => throw null; } - public int LocalPort { get => throw null; set => throw null; } - public System.Net.IPAddress RemoteIpAddress { get => throw null; set => throw null; } - public int RemotePort { get => throw null; set => throw null; } + public System.Net.IPAddress LocalIpAddress { get => throw null; set { } } + public int LocalPort { get => throw null; set { } } + public System.Net.IPAddress RemoteIpAddress { get => throw null; set { } } + public int RemotePort { get => throw null; set { } } } - public class HttpRequestFeature : Microsoft.AspNetCore.Http.Features.IHttpRequestFeature { - public System.IO.Stream Body { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get => throw null; set => throw null; } + public System.IO.Stream Body { get => throw null; set { } } public HttpRequestFeature() => throw null; - public string Method { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } - public string PathBase { get => throw null; set => throw null; } - public string Protocol { get => throw null; set => throw null; } - public string QueryString { get => throw null; set => throw null; } - public string RawTarget { get => throw null; set => throw null; } - public string Scheme { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get => throw null; set { } } + public string Method { get => throw null; set { } } + public string Path { get => throw null; set { } } + public string PathBase { get => throw null; set { } } + public string Protocol { get => throw null; set { } } + public string QueryString { get => throw null; set { } } + public string RawTarget { get => throw null; set { } } + public string Scheme { get => throw null; set { } } } - public class HttpRequestIdentifierFeature : Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature { public HttpRequestIdentifierFeature() => throw null; - public string TraceIdentifier { get => throw null; set => throw null; } + public string TraceIdentifier { get => throw null; set { } } } - public class HttpRequestLifetimeFeature : Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature { public void Abort() => throw null; public HttpRequestLifetimeFeature() => throw null; - public System.Threading.CancellationToken RequestAborted { get => throw null; set => throw null; } + public System.Threading.CancellationToken RequestAborted { get => throw null; set { } } } - public class HttpResponseFeature : Microsoft.AspNetCore.Http.Features.IHttpResponseFeature { - public System.IO.Stream Body { get => throw null; set => throw null; } - public virtual bool HasStarted { get => throw null; } - public Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get => throw null; set => throw null; } + public System.IO.Stream Body { get => throw null; set { } } public HttpResponseFeature() => throw null; + public virtual bool HasStarted { get => throw null; } + public Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get => throw null; set { } } public virtual void OnCompleted(System.Func callback, object state) => throw null; public virtual void OnStarting(System.Func callback, object state) => throw null; - public string ReasonPhrase { get => throw null; set => throw null; } - public int StatusCode { get => throw null; set => throw null; } + public string ReasonPhrase { get => throw null; set { } } + public int StatusCode { get => throw null; set { } } } - public interface IHttpActivityFeature { System.Diagnostics.Activity Activity { get; set; } } - public class ItemsFeature : Microsoft.AspNetCore.Http.Features.IItemsFeature { - public System.Collections.Generic.IDictionary Items { get => throw null; set => throw null; } public ItemsFeature() => throw null; + public System.Collections.Generic.IDictionary Items { get => throw null; set { } } } - public class QueryFeature : Microsoft.AspNetCore.Http.Features.IQueryFeature { - public Microsoft.AspNetCore.Http.IQueryCollection Query { get => throw null; set => throw null; } - public QueryFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; public QueryFeature(Microsoft.AspNetCore.Http.IQueryCollection query) => throw null; + public QueryFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; + public Microsoft.AspNetCore.Http.IQueryCollection Query { get => throw null; set { } } } - public class RequestBodyPipeFeature : Microsoft.AspNetCore.Http.Features.IRequestBodyPipeFeature { - public System.IO.Pipelines.PipeReader Reader { get => throw null; } public RequestBodyPipeFeature(Microsoft.AspNetCore.Http.HttpContext context) => throw null; + public System.IO.Pipelines.PipeReader Reader { get => throw null; } } - public class RequestCookiesFeature : Microsoft.AspNetCore.Http.Features.IRequestCookiesFeature { - public Microsoft.AspNetCore.Http.IRequestCookieCollection Cookies { get => throw null; set => throw null; } - public RequestCookiesFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; + public Microsoft.AspNetCore.Http.IRequestCookieCollection Cookies { get => throw null; set { } } public RequestCookiesFeature(Microsoft.AspNetCore.Http.IRequestCookieCollection cookies) => throw null; + public RequestCookiesFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; } - - public class RequestServicesFeature : Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature, System.IAsyncDisposable, System.IDisposable + public class RequestServicesFeature : Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature, System.IDisposable, System.IAsyncDisposable { + public RequestServicesFeature(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory scopeFactory) => throw null; public void Dispose() => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public System.IServiceProvider RequestServices { get => throw null; set => throw null; } - public RequestServicesFeature(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory scopeFactory) => throw null; + public System.IServiceProvider RequestServices { get => throw null; set { } } } - public class ResponseCookiesFeature : Microsoft.AspNetCore.Http.Features.IResponseCookiesFeature { public Microsoft.AspNetCore.Http.IResponseCookies Cookies { get => throw null; } public ResponseCookiesFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; public ResponseCookiesFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection features, Microsoft.Extensions.ObjectPool.ObjectPool builderPool) => throw null; } - public class RouteValuesFeature : Microsoft.AspNetCore.Http.Features.IRouteValuesFeature { - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } public RouteValuesFeature() => throw null; + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } } - public class ServiceProvidersFeature : Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature { - public System.IServiceProvider RequestServices { get => throw null; set => throw null; } public ServiceProvidersFeature() => throw null; + public System.IServiceProvider RequestServices { get => throw null; set { } } } - public class TlsConnectionFeature : Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature { - public System.Security.Cryptography.X509Certificates.X509Certificate2 ClientCertificate { get => throw null; set => throw null; } - public System.Threading.Tasks.Task GetClientCertificateAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Security.Cryptography.X509Certificates.X509Certificate2 ClientCertificate { get => throw null; set { } } public TlsConnectionFeature() => throw null; + public System.Threading.Tasks.Task GetClientCertificateAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - - namespace Authentication + } + public class FormCollection : Microsoft.AspNetCore.Http.IFormCollection, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + public bool ContainsKey(string key) => throw null; + public int Count { get => throw null; } + public FormCollection(System.Collections.Generic.Dictionary fields, Microsoft.AspNetCore.Http.IFormFileCollection files = default(Microsoft.AspNetCore.Http.IFormFileCollection)) => throw null; + public static Microsoft.AspNetCore.Http.FormCollection Empty; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable { - public class HttpAuthenticationFeature : Microsoft.AspNetCore.Http.Features.Authentication.IHttpAuthenticationFeature - { - public HttpAuthenticationFeature() => throw null; - public System.Security.Claims.ClaimsPrincipal User { get => throw null; set => throw null; } - } - + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; } + public Microsoft.AspNetCore.Http.IFormFileCollection Files { get => throw null; } + public Microsoft.AspNetCore.Http.FormCollection.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.ICollection Keys { get => throw null; } + public Microsoft.Extensions.Primitives.StringValues this[string key] { get => throw null; } + public bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value) => throw null; + } + public class FormFile : Microsoft.AspNetCore.Http.IFormFile + { + public string ContentDisposition { get => throw null; set { } } + public string ContentType { get => throw null; set { } } + public void CopyTo(System.IO.Stream target) => throw null; + public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream target, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public FormFile(System.IO.Stream baseStream, long baseStreamOffset, long length, string name, string fileName) => throw null; + public string FileName { get => throw null; } + public Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get => throw null; set { } } + public long Length { get => throw null; } + public string Name { get => throw null; } + public System.IO.Stream OpenReadStream() => throw null; + } + public class FormFileCollection : System.Collections.Generic.List, Microsoft.AspNetCore.Http.IFormFileCollection, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection + { + public FormFileCollection() => throw null; + public Microsoft.AspNetCore.Http.IFormFile GetFile(string name) => throw null; + public System.Collections.Generic.IReadOnlyList GetFiles(string name) => throw null; + public Microsoft.AspNetCore.Http.IFormFile this[string name] { get => throw null; } + } + public class HeaderDictionary : Microsoft.AspNetCore.Http.IHeaderDictionary, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + public void Add(System.Collections.Generic.KeyValuePair item) => throw null; + public void Add(string key, Microsoft.Extensions.Primitives.StringValues value) => throw null; + public void Clear() => throw null; + public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; + public bool ContainsKey(string key) => throw null; + public long? ContentLength { get => throw null; set { } } + public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + public int Count { get => throw null; } + public HeaderDictionary() => throw null; + public HeaderDictionary(System.Collections.Generic.Dictionary store) => throw null; + public HeaderDictionary(int capacity) => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + { + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + public Microsoft.AspNetCore.Http.HeaderDictionary.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public bool IsReadOnly { get => throw null; set { } } + Microsoft.Extensions.Primitives.StringValues System.Collections.Generic.IDictionary.this[string key] { get => throw null; set { } } + public System.Collections.Generic.ICollection Keys { get => throw null; } + public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public bool Remove(string key) => throw null; + public Microsoft.Extensions.Primitives.StringValues this[string key] { get => throw null; set { } } + public bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value) => throw null; + public System.Collections.Generic.ICollection Values { get => throw null; } + } + public class HttpContextAccessor : Microsoft.AspNetCore.Http.IHttpContextAccessor + { + public HttpContextAccessor() => throw null; + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set { } } + } + public static partial class HttpRequestRewindExtensions + { + public static void EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; + public static void EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest request, int bufferThreshold) => throw null; + public static void EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest request, long bufferLimit) => throw null; + public static void EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest request, int bufferThreshold, long bufferLimit) => throw null; + } + public class MiddlewareFactory : Microsoft.AspNetCore.Http.IMiddlewareFactory + { + public Microsoft.AspNetCore.Http.IMiddleware Create(System.Type middlewareType) => throw null; + public MiddlewareFactory(System.IServiceProvider serviceProvider) => throw null; + public void Release(Microsoft.AspNetCore.Http.IMiddleware middleware) => throw null; + } + public class QueryCollection : Microsoft.AspNetCore.Http.IQueryCollection, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + public bool ContainsKey(string key) => throw null; + public int Count { get => throw null; } + public QueryCollection() => throw null; + public QueryCollection(System.Collections.Generic.Dictionary store) => throw null; + public QueryCollection(Microsoft.AspNetCore.Http.QueryCollection store) => throw null; + public QueryCollection(int capacity) => throw null; + public static Microsoft.AspNetCore.Http.QueryCollection Empty; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + { + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } + public Microsoft.AspNetCore.Http.QueryCollection.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.ICollection Keys { get => throw null; } + public Microsoft.Extensions.Primitives.StringValues this[string key] { get => throw null; } + public bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value) => throw null; + } + public static partial class RequestFormReaderExtensions + { + public static System.Threading.Tasks.Task ReadFormAsync(this Microsoft.AspNetCore.Http.HttpRequest request, Microsoft.AspNetCore.Http.Features.FormOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public static class SendFileFallback + { + public static System.Threading.Tasks.Task SendFileAsync(System.IO.Stream destination, string filePath, long offset, long? count, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class StreamResponseBodyFeature : Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature + { + public virtual System.Threading.Tasks.Task CompleteAsync() => throw null; + public StreamResponseBodyFeature(System.IO.Stream stream) => throw null; + public StreamResponseBodyFeature(System.IO.Stream stream, Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature priorFeature) => throw null; + public virtual void DisableBuffering() => throw null; + public void Dispose() => throw null; + public Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature PriorFeature { get => throw null; } + public virtual System.Threading.Tasks.Task SendFileAsync(string path, long offset, long? count, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.IO.Stream Stream { get => throw null; } + public System.IO.Pipelines.PipeWriter Writer { get => throw null; } } } } @@ -387,11 +344,10 @@ namespace Microsoft { namespace DependencyInjection { - public static class HttpServiceCollectionExtensions + public static partial class HttpServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHttpContextAccessor(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpLogging.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpLogging.cs index b648a77f716..4411378fe7f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpLogging.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpLogging.cs @@ -1,57 +1,53 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.HttpLogging, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class HttpLoggingBuilderExtensions + public static partial class HttpLoggingBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHttpLogging(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseW3CLogging(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - } namespace HttpLogging { [System.Flags] public enum HttpLoggingFields : long { - All = 3325, None = 0, - Request = 1117, - RequestBody = 1024, - RequestHeaders = 64, - RequestMethod = 8, RequestPath = 1, + RequestQuery = 2, + RequestProtocol = 4, + RequestMethod = 8, + RequestScheme = 16, + ResponseStatusCode = 32, + RequestHeaders = 64, + ResponseHeaders = 128, + RequestTrailers = 256, + ResponseTrailers = 512, + RequestBody = 1024, + ResponseBody = 2048, RequestProperties = 29, RequestPropertiesAndHeaders = 93, - RequestProtocol = 4, - RequestQuery = 2, - RequestScheme = 16, - RequestTrailers = 256, - Response = 2208, - ResponseBody = 2048, - ResponseHeaders = 128, ResponsePropertiesAndHeaders = 160, - ResponseStatusCode = 32, - ResponseTrailers = 512, + Request = 1117, + Response = 2208, + All = 3325, } - - public class HttpLoggingOptions + public sealed class HttpLoggingOptions { public HttpLoggingOptions() => throw null; - public Microsoft.AspNetCore.HttpLogging.HttpLoggingFields LoggingFields { get => throw null; set => throw null; } + public Microsoft.AspNetCore.HttpLogging.HttpLoggingFields LoggingFields { get => throw null; set { } } public Microsoft.AspNetCore.HttpLogging.MediaTypeOptions MediaTypeOptions { get => throw null; } - public int RequestBodyLogLimit { get => throw null; set => throw null; } + public int RequestBodyLogLimit { get => throw null; set { } } public System.Collections.Generic.ISet RequestHeaders { get => throw null; } - public int ResponseBodyLogLimit { get => throw null; set => throw null; } + public int ResponseBodyLogLimit { get => throw null; set { } } public System.Collections.Generic.ISet ResponseHeaders { get => throw null; } } - - public class MediaTypeOptions + public sealed class MediaTypeOptions { public void AddBinary(Microsoft.Net.Http.Headers.MediaTypeHeaderValue mediaType) => throw null; public void AddBinary(string contentType) => throw null; @@ -59,58 +55,54 @@ namespace Microsoft public void AddText(string contentType, System.Text.Encoding encoding) => throw null; public void Clear() => throw null; } - - public class W3CLoggerOptions + public sealed class W3CLoggerOptions { public System.Collections.Generic.ISet AdditionalRequestHeaders { get => throw null; } - public string FileName { get => throw null; set => throw null; } - public int? FileSizeLimit { get => throw null; set => throw null; } - public System.TimeSpan FlushInterval { get => throw null; set => throw null; } - public string LogDirectory { get => throw null; set => throw null; } - public Microsoft.AspNetCore.HttpLogging.W3CLoggingFields LoggingFields { get => throw null; set => throw null; } - public int? RetainedFileCountLimit { get => throw null; set => throw null; } public W3CLoggerOptions() => throw null; + public string FileName { get => throw null; set { } } + public int? FileSizeLimit { get => throw null; set { } } + public System.TimeSpan FlushInterval { get => throw null; set { } } + public string LogDirectory { get => throw null; set { } } + public Microsoft.AspNetCore.HttpLogging.W3CLoggingFields LoggingFields { get => throw null; set { } } + public int? RetainedFileCountLimit { get => throw null; set { } } } - [System.Flags] public enum W3CLoggingFields : long { - All = 131071, - ClientIpAddress = 4, - ConnectionInfoFields = 100, - Cookie = 32768, - Date = 1, - Host = 8192, - Method = 128, None = 0, - ProtocolStatus = 1024, - ProtocolVersion = 4096, - Referer = 65536, - Request = 95104, - RequestHeaders = 90112, - ServerIpAddress = 32, - ServerName = 16, - ServerPort = 64, + Date = 1, Time = 2, - TimeTaken = 2048, - UriQuery = 512, - UriStem = 256, - UserAgent = 16384, + ClientIpAddress = 4, UserName = 8, + ServerName = 16, + ServerIpAddress = 32, + ServerPort = 64, + Method = 128, + UriStem = 256, + UriQuery = 512, + ProtocolStatus = 1024, + TimeTaken = 2048, + ProtocolVersion = 4096, + Host = 8192, + UserAgent = 16384, + Cookie = 32768, + Referer = 65536, + ConnectionInfoFields = 100, + RequestHeaders = 90112, + Request = 95104, + All = 131071, } - } } namespace Extensions { namespace DependencyInjection { - public static class HttpLoggingServicesExtensions + public static partial class HttpLoggingServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHttpLogging(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddW3CLogging(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpOverrides.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpOverrides.cs index 36678aa5c0d..b3d298e652b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpOverrides.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpOverrides.cs @@ -1,52 +1,46 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.HttpOverrides, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class CertificateForwardingBuilderExtensions + public static partial class CertificateForwardingBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseCertificateForwarding(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - - public static class ForwardedHeadersExtensions + public static partial class ForwardedHeadersExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseForwardedHeaders(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseForwardedHeaders(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, Microsoft.AspNetCore.Builder.ForwardedHeadersOptions options) => throw null; } - public class ForwardedHeadersOptions { - public System.Collections.Generic.IList AllowedHosts { get => throw null; set => throw null; } - public int? ForwardLimit { get => throw null; set => throw null; } - public string ForwardedForHeaderName { get => throw null; set => throw null; } - public Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders ForwardedHeaders { get => throw null; set => throw null; } + public System.Collections.Generic.IList AllowedHosts { get => throw null; set { } } public ForwardedHeadersOptions() => throw null; - public string ForwardedHostHeaderName { get => throw null; set => throw null; } - public string ForwardedProtoHeaderName { get => throw null; set => throw null; } + public string ForwardedForHeaderName { get => throw null; set { } } + public Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders ForwardedHeaders { get => throw null; set { } } + public string ForwardedHostHeaderName { get => throw null; set { } } + public string ForwardedProtoHeaderName { get => throw null; set { } } + public int? ForwardLimit { get => throw null; set { } } public System.Collections.Generic.IList KnownNetworks { get => throw null; } public System.Collections.Generic.IList KnownProxies { get => throw null; } - public string OriginalForHeaderName { get => throw null; set => throw null; } - public string OriginalHostHeaderName { get => throw null; set => throw null; } - public string OriginalProtoHeaderName { get => throw null; set => throw null; } - public bool RequireHeaderSymmetry { get => throw null; set => throw null; } + public string OriginalForHeaderName { get => throw null; set { } } + public string OriginalHostHeaderName { get => throw null; set { } } + public string OriginalProtoHeaderName { get => throw null; set { } } + public bool RequireHeaderSymmetry { get => throw null; set { } } } - - public static class HttpMethodOverrideExtensions + public static partial class HttpMethodOverrideExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHttpMethodOverride(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHttpMethodOverride(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, Microsoft.AspNetCore.Builder.HttpMethodOverrideOptions options) => throw null; } - public class HttpMethodOverrideOptions { - public string FormFieldName { get => throw null; set => throw null; } public HttpMethodOverrideOptions() => throw null; + public string FormFieldName { get => throw null; set { } } } - } namespace HttpOverrides { @@ -55,24 +49,21 @@ namespace Microsoft public CertificateForwardingMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - public class CertificateForwardingOptions { + public string CertificateHeader { get => throw null; set { } } public CertificateForwardingOptions() => throw null; - public string CertificateHeader { get => throw null; set => throw null; } public System.Func HeaderConverter; } - [System.Flags] - public enum ForwardedHeaders : int + public enum ForwardedHeaders { - All = 7, None = 0, XForwardedFor = 1, XForwardedHost = 2, XForwardedProto = 4, + All = 7, } - public static class ForwardedHeadersDefaults { public static string XForwardedForHeaderName { get => throw null; } @@ -82,20 +73,17 @@ namespace Microsoft public static string XOriginalHostHeaderName { get => throw null; } public static string XOriginalProtoHeaderName { get => throw null; } } - public class ForwardedHeadersMiddleware { public void ApplyForwarders(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public ForwardedHeadersMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class HttpMethodOverrideMiddleware { public HttpMethodOverrideMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class IPNetwork { public bool Contains(System.Net.IPAddress address) => throw null; @@ -103,18 +91,16 @@ namespace Microsoft public System.Net.IPAddress Prefix { get => throw null; } public int PrefixLength { get => throw null; } } - } } namespace Extensions { namespace DependencyInjection { - public static class CertificateForwardingServiceExtensions + public static partial class CertificateForwardingServiceExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddCertificateForwarding(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpsPolicy.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpsPolicy.cs index 5614099fd84..5fc8bf0c589 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpsPolicy.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpsPolicy.cs @@ -1,65 +1,56 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.HttpsPolicy, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class HstsBuilderExtensions + public static partial class HstsBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHsts(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - - public static class HstsServicesExtensions + public static partial class HstsServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHsts(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - - public static class HttpsPolicyBuilderExtensions + public static partial class HttpsPolicyBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHttpsRedirection(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - - public static class HttpsRedirectionServicesExtensions + public static partial class HttpsRedirectionServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHttpsRedirection(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } namespace HttpsPolicy { public class HstsMiddleware { - public HstsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) => throw null; public HstsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public HstsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class HstsOptions { - public System.Collections.Generic.IList ExcludedHosts { get => throw null; } public HstsOptions() => throw null; - public bool IncludeSubDomains { get => throw null; set => throw null; } - public System.TimeSpan MaxAge { get => throw null; set => throw null; } - public bool Preload { get => throw null; set => throw null; } + public System.Collections.Generic.IList ExcludedHosts { get => throw null; } + public bool IncludeSubDomains { get => throw null; set { } } + public System.TimeSpan MaxAge { get => throw null; set { } } + public bool Preload { get => throw null; set { } } } - public class HttpsRedirectionMiddleware { public HttpsRedirectionMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Configuration.IConfiguration config, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public HttpsRedirectionMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Configuration.IConfiguration config, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature serverAddressesFeature) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class HttpsRedirectionOptions { - public int? HttpsPort { get => throw null; set => throw null; } public HttpsRedirectionOptions() => throw null; - public int RedirectStatusCode { get => throw null; set => throw null; } + public int? HttpsPort { get => throw null; set { } } + public int RedirectStatusCode { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs index 134862c6d1c..a1929360a33 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Identity, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,23 +8,20 @@ namespace Microsoft { public class AspNetRoleManager : Microsoft.AspNetCore.Identity.RoleManager, System.IDisposable where TRole : class { - public AspNetRoleManager(Microsoft.AspNetCore.Identity.IRoleStore store, System.Collections.Generic.IEnumerable> roleValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, Microsoft.Extensions.Logging.ILogger> logger, Microsoft.AspNetCore.Http.IHttpContextAccessor contextAccessor) : base(default(Microsoft.AspNetCore.Identity.IRoleStore), default(System.Collections.Generic.IEnumerable>), default(Microsoft.AspNetCore.Identity.ILookupNormalizer), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber), default(Microsoft.Extensions.Logging.ILogger>)) => throw null; protected override System.Threading.CancellationToken CancellationToken { get => throw null; } + public AspNetRoleManager(Microsoft.AspNetCore.Identity.IRoleStore store, System.Collections.Generic.IEnumerable> roleValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, Microsoft.Extensions.Logging.ILogger> logger, Microsoft.AspNetCore.Http.IHttpContextAccessor contextAccessor) : base(default(Microsoft.AspNetCore.Identity.IRoleStore), default(System.Collections.Generic.IEnumerable>), default(Microsoft.AspNetCore.Identity.ILookupNormalizer), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber), default(Microsoft.Extensions.Logging.ILogger>)) => throw null; } - public class AspNetUserManager : Microsoft.AspNetCore.Identity.UserManager, System.IDisposable where TUser : class { - public AspNetUserManager(Microsoft.AspNetCore.Identity.IUserStore store, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Identity.IPasswordHasher passwordHasher, System.Collections.Generic.IEnumerable> userValidators, System.Collections.Generic.IEnumerable> passwordValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, System.IServiceProvider services, Microsoft.Extensions.Logging.ILogger> logger) : base(default(Microsoft.AspNetCore.Identity.IUserStore), default(Microsoft.Extensions.Options.IOptions), default(Microsoft.AspNetCore.Identity.IPasswordHasher), default(System.Collections.Generic.IEnumerable>), default(System.Collections.Generic.IEnumerable>), default(Microsoft.AspNetCore.Identity.ILookupNormalizer), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber), default(System.IServiceProvider), default(Microsoft.Extensions.Logging.ILogger>)) => throw null; protected override System.Threading.CancellationToken CancellationToken { get => throw null; } + public AspNetUserManager(Microsoft.AspNetCore.Identity.IUserStore store, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Identity.IPasswordHasher passwordHasher, System.Collections.Generic.IEnumerable> userValidators, System.Collections.Generic.IEnumerable> passwordValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, System.IServiceProvider services, Microsoft.Extensions.Logging.ILogger> logger) : base(default(Microsoft.AspNetCore.Identity.IUserStore), default(Microsoft.Extensions.Options.IOptions), default(Microsoft.AspNetCore.Identity.IPasswordHasher), default(System.Collections.Generic.IEnumerable>), default(System.Collections.Generic.IEnumerable>), default(Microsoft.AspNetCore.Identity.ILookupNormalizer), default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber), default(System.IServiceProvider), default(Microsoft.Extensions.Logging.ILogger>)) => throw null; } - public class DataProtectionTokenProviderOptions { public DataProtectionTokenProviderOptions() => throw null; - public string Name { get => throw null; set => throw null; } - public System.TimeSpan TokenLifespan { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } + public System.TimeSpan TokenLifespan { get => throw null; set { } } } - public class DataProtectorTokenProvider : Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider where TUser : class { public virtual System.Threading.Tasks.Task CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; @@ -37,41 +33,28 @@ namespace Microsoft protected Microsoft.AspNetCore.DataProtection.IDataProtector Protector { get => throw null; } public virtual System.Threading.Tasks.Task ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - public class ExternalLoginInfo : Microsoft.AspNetCore.Identity.UserLoginInfo { - public Microsoft.AspNetCore.Authentication.AuthenticationProperties AuthenticationProperties { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable AuthenticationTokens { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Authentication.AuthenticationProperties AuthenticationProperties { get => throw null; set { } } + public System.Collections.Generic.IEnumerable AuthenticationTokens { get => throw null; set { } } public ExternalLoginInfo(System.Security.Claims.ClaimsPrincipal principal, string loginProvider, string providerKey, string displayName) : base(default(string), default(string), default(string)) => throw null; - public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set => throw null; } + public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set { } } } - - public interface ISecurityStampValidator - { - System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context); - } - - public interface ITwoFactorSecurityStampValidator : Microsoft.AspNetCore.Identity.ISecurityStampValidator - { - } - - public static class IdentityBuilderExtensions + public static partial class IdentityBuilderExtensions { public static Microsoft.AspNetCore.Identity.IdentityBuilder AddDefaultTokenProviders(this Microsoft.AspNetCore.Identity.IdentityBuilder builder) => throw null; public static Microsoft.AspNetCore.Identity.IdentityBuilder AddSignInManager(this Microsoft.AspNetCore.Identity.IdentityBuilder builder) => throw null; public static Microsoft.AspNetCore.Identity.IdentityBuilder AddSignInManager(this Microsoft.AspNetCore.Identity.IdentityBuilder builder) where TSignInManager : class => throw null; } - public class IdentityConstants { public static string ApplicationScheme; - public static string ExternalScheme; public IdentityConstants() => throw null; + public static string ExternalScheme; public static string TwoFactorRememberMeScheme; public static string TwoFactorUserIdScheme; } - - public static class IdentityCookieAuthenticationBuilderExtensions + public static partial class IdentityCookieAuthenticationBuilderExtensions { public static Microsoft.Extensions.Options.OptionsBuilder AddApplicationCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) => throw null; public static Microsoft.Extensions.Options.OptionsBuilder AddExternalCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) => throw null; @@ -80,56 +63,58 @@ namespace Microsoft public static Microsoft.Extensions.Options.OptionsBuilder AddTwoFactorRememberMeCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) => throw null; public static Microsoft.Extensions.Options.OptionsBuilder AddTwoFactorUserIdCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) => throw null; } - public class IdentityCookiesBuilder { - public Microsoft.Extensions.Options.OptionsBuilder ApplicationCookie { get => throw null; set => throw null; } - public Microsoft.Extensions.Options.OptionsBuilder ExternalCookie { get => throw null; set => throw null; } + public Microsoft.Extensions.Options.OptionsBuilder ApplicationCookie { get => throw null; set { } } public IdentityCookiesBuilder() => throw null; - public Microsoft.Extensions.Options.OptionsBuilder TwoFactorRememberMeCookie { get => throw null; set => throw null; } - public Microsoft.Extensions.Options.OptionsBuilder TwoFactorUserIdCookie { get => throw null; set => throw null; } + public Microsoft.Extensions.Options.OptionsBuilder ExternalCookie { get => throw null; set { } } + public Microsoft.Extensions.Options.OptionsBuilder TwoFactorRememberMeCookie { get => throw null; set { } } + public Microsoft.Extensions.Options.OptionsBuilder TwoFactorUserIdCookie { get => throw null; set { } } + } + public interface ISecurityStampValidator + { + System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context); + } + public interface ITwoFactorSecurityStampValidator : Microsoft.AspNetCore.Identity.ISecurityStampValidator + { } - public class SecurityStampRefreshingPrincipalContext { - public System.Security.Claims.ClaimsPrincipal CurrentPrincipal { get => throw null; set => throw null; } - public System.Security.Claims.ClaimsPrincipal NewPrincipal { get => throw null; set => throw null; } public SecurityStampRefreshingPrincipalContext() => throw null; + public System.Security.Claims.ClaimsPrincipal CurrentPrincipal { get => throw null; set { } } + public System.Security.Claims.ClaimsPrincipal NewPrincipal { get => throw null; set { } } } - - public static class SecurityStampValidator - { - public static System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) where TValidator : Microsoft.AspNetCore.Identity.ISecurityStampValidator => throw null; - public static System.Threading.Tasks.Task ValidatePrincipalAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) => throw null; - } - public class SecurityStampValidator : Microsoft.AspNetCore.Identity.ISecurityStampValidator where TUser : class { public Microsoft.AspNetCore.Authentication.ISystemClock Clock { get => throw null; } - public Microsoft.Extensions.Logging.ILogger Logger { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions Options { get => throw null; } public SecurityStampValidator(Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.Identity.SignInManager signInManager, Microsoft.AspNetCore.Authentication.ISystemClock clock, Microsoft.Extensions.Logging.ILoggerFactory logger) => throw null; + public Microsoft.Extensions.Logging.ILogger Logger { get => throw null; set { } } + public Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions Options { get => throw null; } protected virtual System.Threading.Tasks.Task SecurityStampVerified(TUser user, Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) => throw null; public Microsoft.AspNetCore.Identity.SignInManager SignInManager { get => throw null; } public virtual System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) => throw null; protected virtual System.Threading.Tasks.Task VerifySecurityStamp(System.Security.Claims.ClaimsPrincipal principal) => throw null; } - + public static class SecurityStampValidator + { + public static System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) where TValidator : Microsoft.AspNetCore.Identity.ISecurityStampValidator => throw null; + public static System.Threading.Tasks.Task ValidatePrincipalAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) => throw null; + } public class SecurityStampValidatorOptions { - public System.Func OnRefreshingPrincipal { get => throw null; set => throw null; } public SecurityStampValidatorOptions() => throw null; - public System.TimeSpan ValidationInterval { get => throw null; set => throw null; } + public System.Func OnRefreshingPrincipal { get => throw null; set { } } + public System.TimeSpan ValidationInterval { get => throw null; set { } } } - public class SignInManager where TUser : class { public virtual System.Threading.Tasks.Task CanSignInAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task CheckPasswordSignInAsync(TUser user, string password, bool lockoutOnFailure) => throw null; - public Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory ClaimsFactory { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory ClaimsFactory { get => throw null; set { } } public virtual Microsoft.AspNetCore.Authentication.AuthenticationProperties ConfigureExternalAuthenticationProperties(string provider, string redirectUrl, string userId = default(string)) => throw null; - public Microsoft.AspNetCore.Http.HttpContext Context { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.HttpContext Context { get => throw null; set { } } public virtual System.Threading.Tasks.Task CreateUserPrincipalAsync(TUser user) => throw null; + public SignInManager(Microsoft.AspNetCore.Identity.UserManager userManager, Microsoft.AspNetCore.Http.IHttpContextAccessor contextAccessor, Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory claimsFactory, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.Extensions.Logging.ILogger> logger, Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider schemes, Microsoft.AspNetCore.Identity.IUserConfirmation confirmation) => throw null; public virtual System.Threading.Tasks.Task ExternalLoginSignInAsync(string loginProvider, string providerKey, bool isPersistent) => throw null; public virtual System.Threading.Tasks.Task ExternalLoginSignInAsync(string loginProvider, string providerKey, bool isPersistent, bool bypassTwoFactor) => throw null; public virtual System.Threading.Tasks.Task ForgetTwoFactorClientAsync() => throw null; @@ -140,38 +125,35 @@ namespace Microsoft public virtual bool IsSignedIn(System.Security.Claims.ClaimsPrincipal principal) => throw null; public virtual System.Threading.Tasks.Task IsTwoFactorClientRememberedAsync(TUser user) => throw null; protected virtual System.Threading.Tasks.Task LockedOut(TUser user) => throw null; - public virtual Microsoft.Extensions.Logging.ILogger Logger { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Identity.IdentityOptions Options { get => throw null; set => throw null; } + public virtual Microsoft.Extensions.Logging.ILogger Logger { get => throw null; set { } } + public Microsoft.AspNetCore.Identity.IdentityOptions Options { get => throw null; set { } } public virtual System.Threading.Tasks.Task PasswordSignInAsync(TUser user, string password, bool isPersistent, bool lockoutOnFailure) => throw null; public virtual System.Threading.Tasks.Task PasswordSignInAsync(string userName, string password, bool isPersistent, bool lockoutOnFailure) => throw null; protected virtual System.Threading.Tasks.Task PreSignInCheck(TUser user) => throw null; public virtual System.Threading.Tasks.Task RefreshSignInAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task RememberTwoFactorClientAsync(TUser user) => throw null; protected virtual System.Threading.Tasks.Task ResetLockout(TUser user) => throw null; - public virtual System.Threading.Tasks.Task SignInAsync(TUser user, Microsoft.AspNetCore.Authentication.AuthenticationProperties authenticationProperties, string authenticationMethod = default(string)) => throw null; public virtual System.Threading.Tasks.Task SignInAsync(TUser user, bool isPersistent, string authenticationMethod = default(string)) => throw null; - public SignInManager(Microsoft.AspNetCore.Identity.UserManager userManager, Microsoft.AspNetCore.Http.IHttpContextAccessor contextAccessor, Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory claimsFactory, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.Extensions.Logging.ILogger> logger, Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider schemes, Microsoft.AspNetCore.Identity.IUserConfirmation confirmation) => throw null; + public virtual System.Threading.Tasks.Task SignInAsync(TUser user, Microsoft.AspNetCore.Authentication.AuthenticationProperties authenticationProperties, string authenticationMethod = default(string)) => throw null; protected virtual System.Threading.Tasks.Task SignInOrTwoFactorAsync(TUser user, bool isPersistent, string loginProvider = default(string), bool bypassTwoFactor = default(bool)) => throw null; - public virtual System.Threading.Tasks.Task SignInWithClaimsAsync(TUser user, Microsoft.AspNetCore.Authentication.AuthenticationProperties authenticationProperties, System.Collections.Generic.IEnumerable additionalClaims) => throw null; public virtual System.Threading.Tasks.Task SignInWithClaimsAsync(TUser user, bool isPersistent, System.Collections.Generic.IEnumerable additionalClaims) => throw null; + public virtual System.Threading.Tasks.Task SignInWithClaimsAsync(TUser user, Microsoft.AspNetCore.Authentication.AuthenticationProperties authenticationProperties, System.Collections.Generic.IEnumerable additionalClaims) => throw null; public virtual System.Threading.Tasks.Task SignOutAsync() => throw null; public virtual System.Threading.Tasks.Task TwoFactorAuthenticatorSignInAsync(string code, bool isPersistent, bool rememberClient) => throw null; public virtual System.Threading.Tasks.Task TwoFactorRecoveryCodeSignInAsync(string recoveryCode) => throw null; public virtual System.Threading.Tasks.Task TwoFactorSignInAsync(string provider, string code, bool isPersistent, bool rememberClient) => throw null; public virtual System.Threading.Tasks.Task UpdateExternalAuthenticationTokensAsync(Microsoft.AspNetCore.Identity.ExternalLoginInfo externalLogin) => throw null; - public Microsoft.AspNetCore.Identity.UserManager UserManager { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.UserManager UserManager { get => throw null; set { } } public virtual System.Threading.Tasks.Task ValidateSecurityStampAsync(System.Security.Claims.ClaimsPrincipal principal) => throw null; public virtual System.Threading.Tasks.Task ValidateSecurityStampAsync(TUser user, string securityStamp) => throw null; public virtual System.Threading.Tasks.Task ValidateTwoFactorSecurityStampAsync(System.Security.Claims.ClaimsPrincipal principal) => throw null; } - - public class TwoFactorSecurityStampValidator : Microsoft.AspNetCore.Identity.SecurityStampValidator, Microsoft.AspNetCore.Identity.ISecurityStampValidator, Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator where TUser : class + public class TwoFactorSecurityStampValidator : Microsoft.AspNetCore.Identity.SecurityStampValidator, Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator, Microsoft.AspNetCore.Identity.ISecurityStampValidator where TUser : class { - protected override System.Threading.Tasks.Task SecurityStampVerified(TUser user, Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) => throw null; public TwoFactorSecurityStampValidator(Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.Identity.SignInManager signInManager, Microsoft.AspNetCore.Authentication.ISystemClock clock, Microsoft.Extensions.Logging.ILoggerFactory logger) : base(default(Microsoft.Extensions.Options.IOptions), default(Microsoft.AspNetCore.Identity.SignInManager), default(Microsoft.AspNetCore.Authentication.ISystemClock), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; + protected override System.Threading.Tasks.Task SecurityStampVerified(TUser user, Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) => throw null; protected override System.Threading.Tasks.Task VerifySecurityStamp(System.Security.Claims.ClaimsPrincipal principal) => throw null; } - } } namespace Extensions @@ -180,12 +162,11 @@ namespace Microsoft { public static partial class IdentityServiceCollectionExtensions { - public static Microsoft.AspNetCore.Identity.IdentityBuilder AddIdentity(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TRole : class where TUser : class => throw null; - public static Microsoft.AspNetCore.Identity.IdentityBuilder AddIdentity(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) where TRole : class where TUser : class => throw null; + public static Microsoft.AspNetCore.Identity.IdentityBuilder AddIdentity(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TUser : class where TRole : class => throw null; + public static Microsoft.AspNetCore.Identity.IdentityBuilder AddIdentity(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) where TUser : class where TRole : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureApplicationCookie(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureExternalCookie(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.Routing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.Routing.cs index 4afdc6833c3..ab14a3d7e7a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.Routing.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.Routing.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Localization.Routing, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -11,12 +10,11 @@ namespace Microsoft { public class RouteDataRequestCultureProvider : Microsoft.AspNetCore.Localization.RequestCultureProvider { - public override System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public RouteDataRequestCultureProvider() => throw null; - public string RouteDataStringKey { get => throw null; set => throw null; } - public string UIRouteDataStringKey { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string RouteDataStringKey { get => throw null; set { } } + public string UIRouteDataStringKey { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.cs index 64c83d42619..af979895770 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.cs @@ -1,40 +1,36 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Localization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class ApplicationBuilderExtensions + public static partial class ApplicationBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action optionsAction) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.RequestLocalizationOptions options) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action optionsAction) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, params string[] cultures) => throw null; } - public class RequestLocalizationOptions { public Microsoft.AspNetCore.Builder.RequestLocalizationOptions AddSupportedCultures(params string[] cultures) => throw null; public Microsoft.AspNetCore.Builder.RequestLocalizationOptions AddSupportedUICultures(params string[] uiCultures) => throw null; - public bool ApplyCurrentCultureToResponseHeaders { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Localization.RequestCulture DefaultRequestCulture { get => throw null; set => throw null; } - public bool FallBackToParentCultures { get => throw null; set => throw null; } - public bool FallBackToParentUICultures { get => throw null; set => throw null; } - public System.Collections.Generic.IList RequestCultureProviders { get => throw null; set => throw null; } + public bool ApplyCurrentCultureToResponseHeaders { get => throw null; set { } } public RequestLocalizationOptions() => throw null; + public Microsoft.AspNetCore.Localization.RequestCulture DefaultRequestCulture { get => throw null; set { } } + public bool FallBackToParentCultures { get => throw null; set { } } + public bool FallBackToParentUICultures { get => throw null; set { } } + public System.Collections.Generic.IList RequestCultureProviders { get => throw null; set { } } public Microsoft.AspNetCore.Builder.RequestLocalizationOptions SetDefaultCulture(string defaultCulture) => throw null; - public System.Collections.Generic.IList SupportedCultures { get => throw null; set => throw null; } - public System.Collections.Generic.IList SupportedUICultures { get => throw null; set => throw null; } + public System.Collections.Generic.IList SupportedCultures { get => throw null; set { } } + public System.Collections.Generic.IList SupportedUICultures { get => throw null; set { } } } - - public static class RequestLocalizationOptionsExtensions + public static partial class RequestLocalizationOptionsExtensions { public static Microsoft.AspNetCore.Builder.RequestLocalizationOptions AddInitialRequestCultureProvider(this Microsoft.AspNetCore.Builder.RequestLocalizationOptions requestLocalizationOptions, Microsoft.AspNetCore.Localization.RequestCultureProvider requestCultureProvider) => throw null; } - } namespace Localization { @@ -42,97 +38,85 @@ namespace Microsoft { public AcceptLanguageHeaderRequestCultureProvider() => throw null; public override System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public int MaximumAcceptLanguageHeaderValuesToTry { get => throw null; set => throw null; } + public int MaximumAcceptLanguageHeaderValuesToTry { get => throw null; set { } } } - public class CookieRequestCultureProvider : Microsoft.AspNetCore.Localization.RequestCultureProvider { - public string CookieName { get => throw null; set => throw null; } + public string CookieName { get => throw null; set { } } public CookieRequestCultureProvider() => throw null; public static string DefaultCookieName; public override System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public static string MakeCookieValue(Microsoft.AspNetCore.Localization.RequestCulture requestCulture) => throw null; public static Microsoft.AspNetCore.Localization.ProviderCultureResult ParseCookieValue(string value) => throw null; } - public class CustomRequestCultureProvider : Microsoft.AspNetCore.Localization.RequestCultureProvider { public CustomRequestCultureProvider(System.Func> provider) => throw null; public override System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - public interface IRequestCultureFeature { Microsoft.AspNetCore.Localization.IRequestCultureProvider Provider { get; } Microsoft.AspNetCore.Localization.RequestCulture RequestCulture { get; } } - public interface IRequestCultureProvider { System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext); } - public class ProviderCultureResult { - public System.Collections.Generic.IList Cultures { get => throw null; } - public ProviderCultureResult(System.Collections.Generic.IList cultures) => throw null; - public ProviderCultureResult(System.Collections.Generic.IList cultures, System.Collections.Generic.IList uiCultures) => throw null; public ProviderCultureResult(Microsoft.Extensions.Primitives.StringSegment culture) => throw null; public ProviderCultureResult(Microsoft.Extensions.Primitives.StringSegment culture, Microsoft.Extensions.Primitives.StringSegment uiCulture) => throw null; + public ProviderCultureResult(System.Collections.Generic.IList cultures) => throw null; + public ProviderCultureResult(System.Collections.Generic.IList cultures, System.Collections.Generic.IList uiCultures) => throw null; + public System.Collections.Generic.IList Cultures { get => throw null; } public System.Collections.Generic.IList UICultures { get => throw null; } } - public class QueryStringRequestCultureProvider : Microsoft.AspNetCore.Localization.RequestCultureProvider { - public override System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public string QueryStringKey { get => throw null; set => throw null; } public QueryStringRequestCultureProvider() => throw null; - public string UIQueryStringKey { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public string QueryStringKey { get => throw null; set { } } + public string UIQueryStringKey { get => throw null; set { } } } - public class RequestCulture { - public System.Globalization.CultureInfo Culture { get => throw null; } public RequestCulture(System.Globalization.CultureInfo culture) => throw null; - public RequestCulture(System.Globalization.CultureInfo culture, System.Globalization.CultureInfo uiCulture) => throw null; public RequestCulture(string culture) => throw null; public RequestCulture(string culture, string uiCulture) => throw null; + public RequestCulture(System.Globalization.CultureInfo culture, System.Globalization.CultureInfo uiCulture) => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; } public System.Globalization.CultureInfo UICulture { get => throw null; } } - public class RequestCultureFeature : Microsoft.AspNetCore.Localization.IRequestCultureFeature { + public RequestCultureFeature(Microsoft.AspNetCore.Localization.RequestCulture requestCulture, Microsoft.AspNetCore.Localization.IRequestCultureProvider provider) => throw null; public Microsoft.AspNetCore.Localization.IRequestCultureProvider Provider { get => throw null; } public Microsoft.AspNetCore.Localization.RequestCulture RequestCulture { get => throw null; } - public RequestCultureFeature(Microsoft.AspNetCore.Localization.RequestCulture requestCulture, Microsoft.AspNetCore.Localization.IRequestCultureProvider provider) => throw null; } - public abstract class RequestCultureProvider : Microsoft.AspNetCore.Localization.IRequestCultureProvider { + protected RequestCultureProvider() => throw null; public abstract System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext); protected static System.Threading.Tasks.Task NullProviderCultureResult; - public Microsoft.AspNetCore.Builder.RequestLocalizationOptions Options { get => throw null; set => throw null; } - protected RequestCultureProvider() => throw null; + public Microsoft.AspNetCore.Builder.RequestLocalizationOptions Options { get => throw null; set { } } } - public class RequestLocalizationMiddleware { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public RequestLocalizationMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - } } namespace Extensions { namespace DependencyInjection { - public static class RequestLocalizationServiceCollectionExtensions + public static partial class RequestLocalizationServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddRequestLocalization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddRequestLocalization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) where TService : class => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Metadata.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Metadata.cs index be7d524d89e..e5fd3f6267a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Metadata.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Metadata.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Metadata, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -10,14 +9,12 @@ namespace Microsoft public interface IAllowAnonymous { } - public interface IAuthorizeData { string AuthenticationSchemes { get; set; } string Policy { get; set; } string Roles { get; set; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs index a54fc4ec29d..609caf13df0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs @@ -1,121 +1,83 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Mvc { - public class ActionContext - { - public ActionContext() => throw null; - public ActionContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext) => throw null; - public ActionContext(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor) => throw null; - public ActionContext(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; - public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } - public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; set => throw null; } - } - - public interface IActionResult - { - System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context); - } - - public interface IUrlHelper - { - string Action(Microsoft.AspNetCore.Mvc.Routing.UrlActionContext actionContext); - Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get; } - string Content(string contentPath); - bool IsLocalUrl(string url); - string Link(string routeName, object values); - string RouteUrl(Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext routeContext); - } - namespace Abstractions { public class ActionDescriptor { - public System.Collections.Generic.IList ActionConstraints { get => throw null; set => throw null; } + public System.Collections.Generic.IList ActionConstraints { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo AttributeRouteInfo { get => throw null; set { } } + public System.Collections.Generic.IList BoundProperties { get => throw null; set { } } public ActionDescriptor() => throw null; - public Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo AttributeRouteInfo { get => throw null; set => throw null; } - public System.Collections.Generic.IList BoundProperties { get => throw null; set => throw null; } - public virtual string DisplayName { get => throw null; set => throw null; } - public System.Collections.Generic.IList EndpointMetadata { get => throw null; set => throw null; } - public System.Collections.Generic.IList FilterDescriptors { get => throw null; set => throw null; } + public virtual string DisplayName { get => throw null; set { } } + public System.Collections.Generic.IList EndpointMetadata { get => throw null; set { } } + public System.Collections.Generic.IList FilterDescriptors { get => throw null; set { } } public string Id { get => throw null; } - public System.Collections.Generic.IList Parameters { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary RouteValues { get => throw null; set => throw null; } + public System.Collections.Generic.IList Parameters { get => throw null; set { } } + public System.Collections.Generic.IDictionary Properties { get => throw null; set { } } + public System.Collections.Generic.IDictionary RouteValues { get => throw null; set { } } } - - public static class ActionDescriptorExtensions + public static partial class ActionDescriptorExtensions { public static T GetProperty(this Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor) => throw null; public static void SetProperty(this Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, T value) => throw null; } - public class ActionDescriptorProviderContext { public ActionDescriptorProviderContext() => throw null; public System.Collections.Generic.IList Results { get => throw null; } } - public class ActionInvokerProviderContext { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } public ActionInvokerProviderContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext) => throw null; - public Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker Result { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker Result { get => throw null; set { } } } - public interface IActionDescriptorProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context); void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context); int Order { get; } } - public interface IActionInvoker { System.Threading.Tasks.Task InvokeAsync(); } - public interface IActionInvokerProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext context); void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext context); int Order { get; } } - public class ParameterDescriptor { - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get => throw null; set { } } public ParameterDescriptor() => throw null; - public System.Type ParameterType { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } + public System.Type ParameterType { get => throw null; set { } } } - } namespace ActionConstraints { public class ActionConstraintContext { + public System.Collections.Generic.IReadOnlyList Candidates { get => throw null; set { } } public ActionConstraintContext() => throw null; - public System.Collections.Generic.IReadOnlyList Candidates { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ActionConstraints.ActionSelectorCandidate CurrentCandidate { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteContext RouteContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ActionConstraints.ActionSelectorCandidate CurrentCandidate { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteContext RouteContext { get => throw null; set { } } } - public class ActionConstraintItem { + public Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint Constraint { get => throw null; set { } } public ActionConstraintItem(Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata metadata) => throw null; - public Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint Constraint { get => throw null; set => throw null; } - public bool IsReusable { get => throw null; set => throw null; } + public bool IsReusable { get => throw null; set { } } public Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata Metadata { get => throw null; } } - public class ActionConstraintProviderContext { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor Action { get => throw null; } @@ -123,160 +85,150 @@ namespace Microsoft public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public System.Collections.Generic.IList Results { get => throw null; } } - public struct ActionSelectorCandidate { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor Action { get => throw null; } - // Stub generator skipped constructor - public ActionSelectorCandidate(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action, System.Collections.Generic.IReadOnlyList constraints) => throw null; public System.Collections.Generic.IReadOnlyList Constraints { get => throw null; } + public ActionSelectorCandidate(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action, System.Collections.Generic.IReadOnlyList constraints) => throw null; } - public interface IActionConstraint : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata { bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context); int Order { get; } } - public interface IActionConstraintFactory : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata { Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint CreateInstance(System.IServiceProvider services); bool IsReusable { get; } } - public interface IActionConstraintMetadata { } - public interface IActionConstraintProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext context); void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext context); int Order { get; } } - + } + public class ActionContext + { + public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; set { } } + public ActionContext() => throw null; + public ActionContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext) => throw null; + public ActionContext(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor) => throw null; + public ActionContext(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } + public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; set { } } } namespace ApiExplorer { public class ApiDescription { - public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; set { } } public ApiDescription() => throw null; - public string GroupName { get => throw null; set => throw null; } - public string HttpMethod { get => throw null; set => throw null; } + public string GroupName { get => throw null; set { } } + public string HttpMethod { get => throw null; set { } } public System.Collections.Generic.IList ParameterDescriptions { get => throw null; } public System.Collections.Generic.IDictionary Properties { get => throw null; } - public string RelativePath { get => throw null; set => throw null; } + public string RelativePath { get => throw null; set { } } public System.Collections.Generic.IList SupportedRequestFormats { get => throw null; } public System.Collections.Generic.IList SupportedResponseTypes { get => throw null; } } - public class ApiDescriptionProviderContext { public System.Collections.Generic.IReadOnlyList Actions { get => throw null; } public ApiDescriptionProviderContext(System.Collections.Generic.IReadOnlyList actions) => throw null; public System.Collections.Generic.IList Results { get => throw null; } } - public class ApiParameterDescription { + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get => throw null; set { } } public ApiParameterDescription() => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get => throw null; set => throw null; } - public object DefaultValue { get => throw null; set => throw null; } - public bool IsRequired { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor ParameterDescriptor { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo RouteInfo { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Source { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } + public object DefaultValue { get => throw null; set { } } + public bool IsRequired { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; set { } } + public string Name { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor ParameterDescriptor { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo RouteInfo { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Source { get => throw null; set { } } + public System.Type Type { get => throw null; set { } } } - public class ApiParameterRouteInfo { + public System.Collections.Generic.IEnumerable Constraints { get => throw null; set { } } public ApiParameterRouteInfo() => throw null; - public System.Collections.Generic.IEnumerable Constraints { get => throw null; set => throw null; } - public object DefaultValue { get => throw null; set => throw null; } - public bool IsOptional { get => throw null; set => throw null; } + public object DefaultValue { get => throw null; set { } } + public bool IsOptional { get => throw null; set { } } } - public class ApiRequestFormat { public ApiRequestFormat() => throw null; - public Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter Formatter { get => throw null; set => throw null; } - public string MediaType { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter Formatter { get => throw null; set { } } + public string MediaType { get => throw null; set { } } } - public class ApiResponseFormat { public ApiResponseFormat() => throw null; - public Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter Formatter { get => throw null; set => throw null; } - public string MediaType { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter Formatter { get => throw null; set { } } + public string MediaType { get => throw null; set { } } } - public class ApiResponseType { - public System.Collections.Generic.IList ApiResponseFormats { get => throw null; set => throw null; } + public System.Collections.Generic.IList ApiResponseFormats { get => throw null; set { } } public ApiResponseType() => throw null; - public bool IsDefaultResponse { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; set => throw null; } - public int StatusCode { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } + public bool IsDefaultResponse { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; set { } } + public int StatusCode { get => throw null; set { } } + public System.Type Type { get => throw null; set { } } } - public interface IApiDescriptionProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext context); void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext context); int Order { get; } } - } namespace Authorization { public interface IAllowAnonymousFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - } namespace Filters { public class ActionExecutedContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { - public ActionExecutedContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters, object controller) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; - public virtual bool Canceled { get => throw null; set => throw null; } + public virtual bool Canceled { get => throw null; set { } } public virtual object Controller { get => throw null; } - public virtual System.Exception Exception { get => throw null; set => throw null; } - public virtual System.Runtime.ExceptionServices.ExceptionDispatchInfo ExceptionDispatchInfo { get => throw null; set => throw null; } - public virtual bool ExceptionHandled { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } + public ActionExecutedContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters, object controller) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; + public virtual System.Exception Exception { get => throw null; set { } } + public virtual System.Runtime.ExceptionServices.ExceptionDispatchInfo ExceptionDispatchInfo { get => throw null; set { } } + public virtual bool ExceptionHandled { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set { } } } - public class ActionExecutingContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual System.Collections.Generic.IDictionary ActionArguments { get => throw null; } - public ActionExecutingContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters, System.Collections.Generic.IDictionary actionArguments, object controller) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; public virtual object Controller { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } + public ActionExecutingContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters, System.Collections.Generic.IDictionary actionArguments, object controller) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; + public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set { } } } - public delegate System.Threading.Tasks.Task ActionExecutionDelegate(); - public class AuthorizationFilterContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public AuthorizationFilterContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; - public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set { } } } - public class ExceptionContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { - public virtual System.Exception Exception { get => throw null; set => throw null; } public ExceptionContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; - public virtual System.Runtime.ExceptionServices.ExceptionDispatchInfo ExceptionDispatchInfo { get => throw null; set => throw null; } - public virtual bool ExceptionHandled { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } + public virtual System.Exception Exception { get => throw null; set { } } + public virtual System.Runtime.ExceptionServices.ExceptionDispatchInfo ExceptionDispatchInfo { get => throw null; set { } } + public virtual bool ExceptionHandled { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set { } } } - public abstract class FilterContext : Microsoft.AspNetCore.Mvc.ActionContext { public FilterContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters) => throw null; @@ -284,159 +236,132 @@ namespace Microsoft public TMetadata FindEffectivePolicy() where TMetadata : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => throw null; public bool IsEffectivePolicy(TMetadata policy) where TMetadata : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => throw null; } - public class FilterDescriptor { - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public FilterDescriptor(Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter, int filterScope) => throw null; - public int Order { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } + public int Order { get => throw null; set { } } public int Scope { get => throw null; } } - public class FilterItem { - public Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor Descriptor { get => throw null; } - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; set => throw null; } public FilterItem(Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor descriptor) => throw null; public FilterItem(Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor descriptor, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public bool IsReusable { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor Descriptor { get => throw null; } + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; set { } } + public bool IsReusable { get => throw null; set { } } } - public class FilterProviderContext { - public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; set { } } public FilterProviderContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList items) => throw null; - public System.Collections.Generic.IList Results { get => throw null; set => throw null; } + public System.Collections.Generic.IList Results { get => throw null; set { } } } - public interface IActionFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context); void OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context); } - - public interface IAlwaysRunResultFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResultFilter + public interface IAlwaysRunResultFilter : Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - public interface IAsyncActionFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { System.Threading.Tasks.Task OnActionExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate next); } - public interface IAsyncAlwaysRunResultFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - public interface IAsyncAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { System.Threading.Tasks.Task OnAuthorizationAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context); } - public interface IAsyncExceptionFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { System.Threading.Tasks.Task OnExceptionAsync(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext context); } - public interface IAsyncResourceFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { System.Threading.Tasks.Task OnResourceExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutionDelegate next); } - public interface IAsyncResultFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { System.Threading.Tasks.Task OnResultExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate next); } - public interface IAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnAuthorization(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context); } - public interface IExceptionFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnException(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext context); } - public interface IFilterContainer { Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata FilterDefinition { get; set; } } - public interface IFilterFactory : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider); bool IsReusable { get; } } - public interface IFilterMetadata { } - public interface IFilterProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext context); void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext context); int Order { get; } } - public interface IOrderedFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { int Order { get; } } - public interface IResourceFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext context); void OnResourceExecuting(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context); } - public interface IResultFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context); void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context); } - public class ResourceExecutedContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { - public virtual bool Canceled { get => throw null; set => throw null; } - public virtual System.Exception Exception { get => throw null; set => throw null; } - public virtual System.Runtime.ExceptionServices.ExceptionDispatchInfo ExceptionDispatchInfo { get => throw null; set => throw null; } - public virtual bool ExceptionHandled { get => throw null; set => throw null; } + public virtual bool Canceled { get => throw null; set { } } public ResourceExecutedContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; - public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } + public virtual System.Exception Exception { get => throw null; set { } } + public virtual System.Runtime.ExceptionServices.ExceptionDispatchInfo ExceptionDispatchInfo { get => throw null; set { } } + public virtual bool ExceptionHandled { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set { } } } - public class ResourceExecutingContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public ResourceExecutingContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters, System.Collections.Generic.IList valueProviderFactories) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; - public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set { } } public System.Collections.Generic.IList ValueProviderFactories { get => throw null; } } - public delegate System.Threading.Tasks.Task ResourceExecutionDelegate(); - public class ResultExecutedContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { - public virtual bool Canceled { get => throw null; set => throw null; } + public virtual bool Canceled { get => throw null; set { } } public virtual object Controller { get => throw null; } - public virtual System.Exception Exception { get => throw null; set => throw null; } - public virtual System.Runtime.ExceptionServices.ExceptionDispatchInfo ExceptionDispatchInfo { get => throw null; set => throw null; } - public virtual bool ExceptionHandled { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } public ResultExecutedContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters, Microsoft.AspNetCore.Mvc.IActionResult result, object controller) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; + public virtual System.Exception Exception { get => throw null; set { } } + public virtual System.Runtime.ExceptionServices.ExceptionDispatchInfo ExceptionDispatchInfo { get => throw null; set { } } + public virtual bool ExceptionHandled { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } } - public class ResultExecutingContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { - public virtual bool Cancel { get => throw null; set => throw null; } + public virtual bool Cancel { get => throw null; set { } } public virtual object Controller { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } public ResultExecutingContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters, Microsoft.AspNetCore.Mvc.IActionResult result, object controller) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; + public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set { } } } - public delegate System.Threading.Tasks.Task ResultExecutionDelegate(); - } namespace Formatters { @@ -444,32 +369,23 @@ namespace Microsoft { public FormatterCollection() => throw null; public FormatterCollection(System.Collections.Generic.IList list) => throw null; - public void RemoveType(System.Type formatterType) => throw null; public void RemoveType() where T : TFormatter => throw null; + public void RemoveType(System.Type formatterType) => throw null; } - public interface IInputFormatter { bool CanRead(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context); System.Threading.Tasks.Task ReadAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context); } - public interface IInputFormatterExceptionPolicy { Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy ExceptionPolicy { get; } } - - public interface IOutputFormatter - { - bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context); - System.Threading.Tasks.Task WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context); - } - public class InputFormatterContext { - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public InputFormatterContext(Microsoft.AspNetCore.Http.HttpContext httpContext, string modelName, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, System.Func readerFactory) => throw null; public InputFormatterContext(Microsoft.AspNetCore.Http.HttpContext httpContext, string modelName, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, System.Func readerFactory, bool treatEmptyInputAsDefaultValue) => throw null; + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; } public string ModelName { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } @@ -477,20 +393,17 @@ namespace Microsoft public System.Func ReaderFactory { get => throw null; } public bool TreatEmptyInputAsDefaultValue { get => throw null; } } - public class InputFormatterException : System.Exception { public InputFormatterException() => throw null; public InputFormatterException(string message) => throw null; public InputFormatterException(string message, System.Exception innerException) => throw null; } - - public enum InputFormatterExceptionPolicy : int + public enum InputFormatterExceptionPolicy { AllExceptions = 0, MalformedInputExceptions = 1, } - public class InputFormatterResult { public static Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult Failure() => throw null; @@ -503,48 +416,60 @@ namespace Microsoft public static Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult Success(object model) => throw null; public static System.Threading.Tasks.Task SuccessAsync(object model) => throw null; } - + public interface IOutputFormatter + { + bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context); + System.Threading.Tasks.Task WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context); + } public abstract class OutputFormatterCanWriteContext { - public virtual Microsoft.Extensions.Primitives.StringSegment ContentType { get => throw null; set => throw null; } - public virtual bool ContentTypeIsServerDefined { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set => throw null; } - public virtual object Object { get => throw null; set => throw null; } - public virtual System.Type ObjectType { get => throw null; set => throw null; } + public virtual Microsoft.Extensions.Primitives.StringSegment ContentType { get => throw null; set { } } + public virtual bool ContentTypeIsServerDefined { get => throw null; set { } } protected OutputFormatterCanWriteContext(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public virtual Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set { } } + public virtual object Object { get => throw null; set { } } + public virtual System.Type ObjectType { get => throw null; set { } } } - public class OutputFormatterWriteContext : Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext { public OutputFormatterWriteContext(Microsoft.AspNetCore.Http.HttpContext httpContext, System.Func writerFactory, System.Type objectType, object @object) : base(default(Microsoft.AspNetCore.Http.HttpContext)) => throw null; - public virtual System.Func WriterFactory { get => throw null; set => throw null; } + public virtual System.Func WriterFactory { get => throw null; set { } } } - + } + public interface IActionResult + { + System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context); + } + public interface IUrlHelper + { + string Action(Microsoft.AspNetCore.Mvc.Routing.UrlActionContext actionContext); + Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get; } + string Content(string contentPath); + bool IsLocalUrl(string url); + string Link(string routeName, object values); + string RouteUrl(Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext routeContext); } namespace ModelBinding { public class BindingInfo { - public string BinderModelName { get => throw null; set => throw null; } - public System.Type BinderType { get => throw null; set => throw null; } + public string BinderModelName { get => throw null; set { } } + public System.Type BinderType { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set { } } public BindingInfo() => throw null; public BindingInfo(Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo other) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior EmptyBodyBehavior { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior EmptyBodyBehavior { get => throw null; set { } } public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo GetBindingInfo(System.Collections.Generic.IEnumerable attributes) => throw null; public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo GetBindingInfo(System.Collections.Generic.IEnumerable attributes, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider PropertyFilterProvider { get => throw null; set => throw null; } - public System.Func RequestPredicate { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider PropertyFilterProvider { get => throw null; set { } } + public System.Func RequestPredicate { get => throw null; set { } } public bool TryApplyBindingInfo(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata) => throw null; } - public class BindingSource : System.IEquatable { - public static bool operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s2) => throw null; - public static bool operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s2) => throw null; - public BindingSource(string id, string displayName, bool isGreedy, bool isFromRequest) => throw null; public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Body; public virtual bool CanAcceptDataFrom(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; + public BindingSource(string id, string displayName, bool isGreedy, bool isFromRequest) => throw null; public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Custom; public string DisplayName { get => throw null; } public bool Equals(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource other) => throw null; @@ -557,168 +482,185 @@ namespace Microsoft public bool IsFromRequest { get => throw null; } public bool IsGreedy { get => throw null; } public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource ModelBinding; + public static bool operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s2) => throw null; + public static bool operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s2) => throw null; public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Path; public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Query; public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Services; public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Special; } - public class CompositeBindingSource : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource { - private CompositeBindingSource() : base(default(string), default(string), default(bool), default(bool)) => throw null; public System.Collections.Generic.IEnumerable BindingSources { get => throw null; } public override bool CanAcceptDataFrom(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; public static Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource Create(System.Collections.Generic.IEnumerable bindingSources, string displayName) => throw null; + internal CompositeBindingSource() : base(default(string), default(string), default(bool), default(bool)) { } } - - public enum EmptyBodyBehavior : int + public enum EmptyBodyBehavior { - Allow = 1, Default = 0, + Allow = 1, Disallow = 2, } - public struct EnumGroupAndName { - // Stub generator skipped constructor - public EnumGroupAndName(string group, System.Func name) => throw null; public EnumGroupAndName(string group, string name) => throw null; + public EnumGroupAndName(string group, System.Func name) => throw null; public string Group { get => throw null; } public string Name { get => throw null; } } - public interface IBinderTypeProviderMetadata : Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata { System.Type BinderType { get; } } - public interface IBindingSourceMetadata { Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get; } } - - internal interface IConfigureEmptyBodyBehavior - { - Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior EmptyBodyBehavior { get; } - } - public interface IModelBinder { System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext); } - public interface IModelBinderProvider { Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context); } - public interface IModelMetadataProvider { System.Collections.Generic.IEnumerable GetMetadataForProperties(System.Type modelType); Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForType(System.Type modelType); } - public interface IModelNameProvider { string Name { get; } } - public interface IPropertyFilterProvider { System.Func PropertyFilter { get; } } - public interface IRequestPredicateProvider { System.Func RequestPredicate { get; } } - public interface IValueProvider { bool ContainsPrefix(string prefix); Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key); } - public interface IValueProviderFactory { System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context); } - + namespace Metadata + { + public abstract class ModelBindingMessageProvider + { + public virtual System.Func AttemptedValueIsInvalidAccessor { get => throw null; } + protected ModelBindingMessageProvider() => throw null; + public virtual System.Func MissingBindRequiredValueAccessor { get => throw null; } + public virtual System.Func MissingKeyOrValueAccessor { get => throw null; } + public virtual System.Func MissingRequestBodyRequiredValueAccessor { get => throw null; } + public virtual System.Func NonPropertyAttemptedValueIsInvalidAccessor { get => throw null; } + public virtual System.Func NonPropertyUnknownValueIsInvalidAccessor { get => throw null; } + public virtual System.Func NonPropertyValueMustBeANumberAccessor { get => throw null; } + public virtual System.Func UnknownValueIsInvalidAccessor { get => throw null; } + public virtual System.Func ValueIsInvalidAccessor { get => throw null; } + public virtual System.Func ValueMustBeANumberAccessor { get => throw null; } + public virtual System.Func ValueMustNotBeNullAccessor { get => throw null; } + } + public struct ModelMetadataIdentity : System.IEquatable + { + public System.Reflection.ConstructorInfo ConstructorInfo { get => throw null; } + public System.Type ContainerType { get => throw null; } + public bool Equals(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity other) => throw null; + public override bool Equals(object obj) => throw null; + public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForConstructor(System.Reflection.ConstructorInfo constructor, System.Type modelType) => throw null; + public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForParameter(System.Reflection.ParameterInfo parameter) => throw null; + public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForParameter(System.Reflection.ParameterInfo parameter, System.Type modelType) => throw null; + public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForProperty(System.Type modelType, string name, System.Type containerType) => throw null; + public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForProperty(System.Reflection.PropertyInfo propertyInfo, System.Type modelType, System.Type containerType) => throw null; + public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForType(System.Type modelType) => throw null; + public override int GetHashCode() => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind MetadataKind { get => throw null; } + public System.Type ModelType { get => throw null; } + public string Name { get => throw null; } + public System.Reflection.ParameterInfo ParameterInfo { get => throw null; } + public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } + } + public enum ModelMetadataKind + { + Type = 0, + Property = 1, + Parameter = 2, + Constructor = 3, + } + } public abstract class ModelBinderProviderContext { public abstract Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata); public virtual Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo bindingInfo) => throw null; + protected ModelBinderProviderContext() => throw null; public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { get; } - protected ModelBinderProviderContext() => throw null; public virtual System.IServiceProvider Services { get => throw null; } } - public abstract class ModelBindingContext { - public struct NestedScope : System.IDisposable - { - public void Dispose() => throw null; - // Stub generator skipped constructor - public NestedScope(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext context) => throw null; - } - - public abstract Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get; set; } public abstract string BinderModelName { get; set; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get; set; } - public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope EnterNestedScope(); + protected ModelBindingContext() => throw null; public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope EnterNestedScope(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, string fieldName, string modelName, object model); + public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope EnterNestedScope(); protected abstract void ExitNestedScope(); public abstract string FieldName { get; set; } public virtual Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public abstract bool IsTopLevelObject { get; set; } public abstract object Model { get; set; } - protected ModelBindingContext() => throw null; public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get; set; } public abstract string ModelName { get; set; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get; set; } public virtual System.Type ModelType { get => throw null; } - public string OriginalModelName { get => throw null; set => throw null; } + public struct NestedScope : System.IDisposable + { + public NestedScope(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext context) => throw null; + public void Dispose() => throw null; + } + public string OriginalModelName { get => throw null; set { } } public abstract System.Func PropertyFilter { get; set; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult Result { get; set; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary ValidationState { get; set; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider ValueProvider { get; set; } } - public struct ModelBindingResult : System.IEquatable { - public static bool operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult y) => throw null; - public static bool operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult y) => throw null; - public bool Equals(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult other) => throw null; public override bool Equals(object obj) => throw null; + public bool Equals(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult other) => throw null; public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult Failed() => throw null; public override int GetHashCode() => throw null; public bool IsModelSet { get => throw null; } public object Model { get => throw null; } - // Stub generator skipped constructor + public static bool operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult y) => throw null; + public static bool operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult y) => throw null; public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult Success(object model) => throw null; public override string ToString() => throw null; } - public class ModelError { - public string ErrorMessage { get => throw null; } - public System.Exception Exception { get => throw null; } public ModelError(System.Exception exception) => throw null; public ModelError(System.Exception exception, string errorMessage) => throw null; public ModelError(string errorMessage) => throw null; + public string ErrorMessage { get => throw null; } + public System.Exception Exception { get => throw null; } } - public class ModelErrorCollection : System.Collections.ObjectModel.Collection { public void Add(System.Exception exception) => throw null; public void Add(string errorMessage) => throw null; public ModelErrorCollection() => throw null; } - - public abstract class ModelMetadata : Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider, System.IEquatable + public abstract class ModelMetadata : System.IEquatable, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider { public abstract System.Collections.Generic.IReadOnlyDictionary AdditionalValues { get; } public abstract string BinderModelName { get; } @@ -730,6 +672,7 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ContainerMetadata { get => throw null; } public System.Type ContainerType { get => throw null; } public abstract bool ConvertEmptyStringToNull { get; } + protected ModelMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity identity) => throw null; public abstract string DataTypeName { get; } public static int DefaultOrder; public abstract string Description { get; } @@ -750,7 +693,7 @@ namespace Microsoft public virtual bool? HasValidators { get => throw null; } public abstract bool HideSurroundingHtml { get; } public abstract bool HtmlEncode { get; } - protected internal Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity Identity { get => throw null; } + protected Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity Identity { get => throw null; } public abstract bool IsBindingAllowed { get; } public abstract bool IsBindingRequired { get; } public bool IsCollectionType { get => throw null; } @@ -764,7 +707,6 @@ namespace Microsoft public abstract bool IsRequired { get; } public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind MetadataKind { get => throw null; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider ModelBindingMessageProvider { get; } - protected ModelMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity identity) => throw null; public System.Type ModelType { get => throw null; } public string Name { get => throw null; } public abstract string NullDisplayText { get; } @@ -785,99 +727,42 @@ namespace Microsoft public abstract bool ValidateChildren { get; } public abstract System.Collections.Generic.IReadOnlyList ValidatorMetadata { get; } } - public abstract class ModelMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider { + protected ModelMetadataProvider() => throw null; public virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForConstructor(System.Reflection.ConstructorInfo constructor, System.Type modelType) => throw null; public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForParameter(System.Reflection.ParameterInfo parameter); public virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForParameter(System.Reflection.ParameterInfo parameter, System.Type modelType) => throw null; public abstract System.Collections.Generic.IEnumerable GetMetadataForProperties(System.Type modelType); public virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForProperty(System.Reflection.PropertyInfo propertyInfo, System.Type modelType) => throw null; public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForType(System.Type modelType); - protected ModelMetadataProvider() => throw null; } - public class ModelPropertyCollection : System.Collections.ObjectModel.ReadOnlyCollection { - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata this[string propertyName] { get => throw null; } public ModelPropertyCollection(System.Collections.Generic.IEnumerable properties) : base(default(System.Collections.Generic.IList)) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata this[string propertyName] { get => throw null; } } - - public class ModelStateDictionary : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.IEnumerable + public class ModelStateDictionary : System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection> { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public Enumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - - public struct KeyEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor - public KeyEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; - } - - - public struct KeyEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public string Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public KeyEnumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - - public struct PrefixEnumerable : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable - { - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor - public PrefixEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; - } - - - public struct ValueEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor - public ValueEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; - } - - - public struct ValueEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - public bool MoveNext() => throw null; - public void Reset() => throw null; - // Stub generator skipped constructor - public ValueEnumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; - } - - public void AddModelError(string key, System.Exception exception, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => throw null; public void AddModelError(string key, string errorMessage) => throw null; public void Clear() => throw null; public void ClearValidationState(string key) => throw null; public bool ContainsKey(string key) => throw null; public int Count { get => throw null; } + public ModelStateDictionary() => throw null; + public ModelStateDictionary(int maxAllowedErrors) => throw null; + public ModelStateDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; public static int DefaultMaxAllowedErrors; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + { + public Enumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } public int ErrorCount { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.PrefixEnumerable FindKeysWithPrefix(string prefix) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator GetEnumerator() => throw null; @@ -887,138 +772,87 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState GetValidationState(string key) => throw null; public bool HasReachedMaxErrors { get => throw null; } public bool IsValid { get => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry this[string key] { get => throw null; } + public struct KeyEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public KeyEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + } + public struct KeyEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public KeyEnumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; + public string Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerable Keys { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } public void MarkFieldSkipped(string key) => throw null; public void MarkFieldValid(string key) => throw null; - public int MaxAllowedErrors { get => throw null; set => throw null; } + public int MaxAllowedErrors { get => throw null; set { } } public void Merge(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; - public ModelStateDictionary() => throw null; - public ModelStateDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; - public ModelStateDictionary(int maxAllowedErrors) => throw null; + public struct PrefixEnumerable : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + public PrefixEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + } public bool Remove(string key) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry Root { get => throw null; } - public void SetModelValue(string key, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult valueProviderResult) => throw null; public void SetModelValue(string key, object rawValue, string attemptedValue) => throw null; + public void SetModelValue(string key, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult valueProviderResult) => throw null; public static bool StartsWithPrefix(string prefix, string key) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry this[string key] { get => throw null; } public bool TryAddModelError(string key, System.Exception exception, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => throw null; public bool TryAddModelError(string key, string errorMessage) => throw null; public bool TryAddModelException(string key, System.Exception exception) => throw null; public bool TryGetValue(string key, out Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry value) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState ValidationState { get => throw null; } + public struct ValueEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public ValueEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + } + public struct ValueEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public ValueEnumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerable Values { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } } - public abstract class ModelStateEntry { - public string AttemptedValue { get => throw null; set => throw null; } + public string AttemptedValue { get => throw null; set { } } public abstract System.Collections.Generic.IReadOnlyList Children { get; } + protected ModelStateEntry() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.ModelErrorCollection Errors { get => throw null; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry GetModelStateForProperty(string propertyName); public abstract bool IsContainerNode { get; } - protected ModelStateEntry() => throw null; - public object RawValue { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState ValidationState { get => throw null; set => throw null; } + public object RawValue { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState ValidationState { get => throw null; set { } } } - - public enum ModelValidationState : int + public enum ModelValidationState { - Invalid = 1, - Skipped = 3, Unvalidated = 0, + Invalid = 1, Valid = 2, + Skipped = 3, } - public class TooManyModelErrorsException : System.Exception { public TooManyModelErrorsException(string message) => throw null; } - - public class ValueProviderException : System.Exception - { - public ValueProviderException(string message) => throw null; - public ValueProviderException(string message, System.Exception innerException) => throw null; - } - - public class ValueProviderFactoryContext - { - public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } - public ValueProviderFactoryContext(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public System.Collections.Generic.IList ValueProviders { get => throw null; } - } - - public struct ValueProviderResult : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IEquatable - { - public static bool operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult y) => throw null; - public static bool operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult y) => throw null; - public System.Globalization.CultureInfo Culture { get => throw null; } - public bool Equals(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult other) => throw null; - public override bool Equals(object obj) => throw null; - public string FirstValue { get => throw null; } - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public override int GetHashCode() => throw null; - public int Length { get => throw null; } - public static Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult None; - public override string ToString() => throw null; - // Stub generator skipped constructor - public ValueProviderResult(Microsoft.Extensions.Primitives.StringValues values) => throw null; - public ValueProviderResult(Microsoft.Extensions.Primitives.StringValues values, System.Globalization.CultureInfo culture) => throw null; - public Microsoft.Extensions.Primitives.StringValues Values { get => throw null; } - public static explicit operator string(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult result) => throw null; - public static explicit operator string[](Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult result) => throw null; - } - - namespace Metadata - { - public abstract class ModelBindingMessageProvider - { - public virtual System.Func AttemptedValueIsInvalidAccessor { get => throw null; } - public virtual System.Func MissingBindRequiredValueAccessor { get => throw null; } - public virtual System.Func MissingKeyOrValueAccessor { get => throw null; } - public virtual System.Func MissingRequestBodyRequiredValueAccessor { get => throw null; } - protected ModelBindingMessageProvider() => throw null; - public virtual System.Func NonPropertyAttemptedValueIsInvalidAccessor { get => throw null; } - public virtual System.Func NonPropertyUnknownValueIsInvalidAccessor { get => throw null; } - public virtual System.Func NonPropertyValueMustBeANumberAccessor { get => throw null; } - public virtual System.Func UnknownValueIsInvalidAccessor { get => throw null; } - public virtual System.Func ValueIsInvalidAccessor { get => throw null; } - public virtual System.Func ValueMustBeANumberAccessor { get => throw null; } - public virtual System.Func ValueMustNotBeNullAccessor { get => throw null; } - } - - public struct ModelMetadataIdentity : System.IEquatable - { - public System.Reflection.ConstructorInfo ConstructorInfo { get => throw null; } - public System.Type ContainerType { get => throw null; } - public bool Equals(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity other) => throw null; - public override bool Equals(object obj) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForConstructor(System.Reflection.ConstructorInfo constructor, System.Type modelType) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForParameter(System.Reflection.ParameterInfo parameter) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForParameter(System.Reflection.ParameterInfo parameter, System.Type modelType) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForProperty(System.Reflection.PropertyInfo propertyInfo, System.Type modelType, System.Type containerType) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForProperty(System.Type modelType, string name, System.Type containerType) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity ForType(System.Type modelType) => throw null; - public override int GetHashCode() => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind MetadataKind { get => throw null; } - // Stub generator skipped constructor - public System.Type ModelType { get => throw null; } - public string Name { get => throw null; } - public System.Reflection.ParameterInfo ParameterInfo { get => throw null; } - public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } - } - - public enum ModelMetadataKind : int - { - Constructor = 3, - Parameter = 2, - Property = 1, - Type = 0, - } - - } namespace Validation { public class ClientModelValidationContext : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase @@ -1026,16 +860,14 @@ namespace Microsoft public System.Collections.Generic.IDictionary Attributes { get => throw null; } public ClientModelValidationContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, System.Collections.Generic.IDictionary attributes) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata), default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider)) => throw null; } - public class ClientValidatorItem { public ClientValidatorItem() => throw null; public ClientValidatorItem(object validatorMetadata) => throw null; - public bool IsReusable { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator Validator { get => throw null; set => throw null; } + public bool IsReusable { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator Validator { get => throw null; set { } } public object ValidatorMetadata { get => throw null; } } - public class ClientValidatorProviderContext { public ClientValidatorProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, System.Collections.Generic.IList items) => throw null; @@ -1043,78 +875,65 @@ namespace Microsoft public System.Collections.Generic.IList Results { get => throw null; } public System.Collections.Generic.IReadOnlyList ValidatorMetadata { get => throw null; } } - public interface IClientModelValidator { void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context); } - public interface IClientModelValidatorProvider { void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext context); } - public interface IModelValidator { System.Collections.Generic.IEnumerable Validate(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext context); } - public interface IModelValidatorProvider { void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext context); } - public interface IPropertyValidationFilter { bool ShouldValidateEntry(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry entry, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry parentEntry); } - public interface IValidationStrategy { System.Collections.Generic.IEnumerator GetChildren(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model); } - public class ModelValidationContext : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase { public object Container { get => throw null; } - public object Model { get => throw null; } public ModelValidationContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, object container, object model) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata), default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider)) => throw null; + public object Model { get => throw null; } } - public class ModelValidationContextBase { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } + public ModelValidationContextBase(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; } - public ModelValidationContextBase(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider) => throw null; } - public class ModelValidationResult { + public ModelValidationResult(string memberName, string message) => throw null; public string MemberName { get => throw null; } public string Message { get => throw null; } - public ModelValidationResult(string memberName, string message) => throw null; } - public class ModelValidatorProviderContext { - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; set => throw null; } public ModelValidatorProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, System.Collections.Generic.IList items) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; set { } } public System.Collections.Generic.IList Results { get => throw null; } public System.Collections.Generic.IReadOnlyList ValidatorMetadata { get => throw null; } } - public struct ValidationEntry { + public ValidationEntry(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model) => throw null; + public ValidationEntry(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, System.Func modelAccessor) => throw null; public string Key { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; } public object Model { get => throw null; } - // Stub generator skipped constructor - public ValidationEntry(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, System.Func modelAccessor) => throw null; - public ValidationEntry(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model) => throw null; } - - public class ValidationStateDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.IEnumerable + public class ValidationStateDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection> { public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(object key, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry value) => throw null; @@ -1123,40 +942,68 @@ namespace Microsoft public bool ContainsKey(object key) => throw null; public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } + public ValidationStateDictionary() => throw null; public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsReadOnly { get => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry this[object key] { get => throw null; set => throw null; } - Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry System.Collections.Generic.IDictionary.this[object key] { get => throw null; set => throw null; } + Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry System.Collections.Generic.IDictionary.this[object key] { get => throw null; set { } } Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry System.Collections.Generic.IReadOnlyDictionary.this[object key] { get => throw null; } public System.Collections.Generic.ICollection Keys { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; public bool Remove(object key) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry this[object key] { get => throw null; set { } } public bool TryGetValue(object key, out Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry value) => throw null; - public ValidationStateDictionary() => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } } - public class ValidationStateEntry { - public string Key { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy Strategy { get => throw null; set => throw null; } - public bool SuppressValidation { get => throw null; set => throw null; } public ValidationStateEntry() => throw null; + public string Key { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy Strategy { get => throw null; set { } } + public bool SuppressValidation { get => throw null; set { } } } - public class ValidatorItem { - public bool IsReusable { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidator Validator { get => throw null; set => throw null; } public ValidatorItem() => throw null; public ValidatorItem(object validatorMetadata) => throw null; + public bool IsReusable { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidator Validator { get => throw null; set { } } public object ValidatorMetadata { get => throw null; } } - + } + public sealed class ValueProviderException : System.Exception + { + public ValueProviderException(string message) => throw null; + public ValueProviderException(string message, System.Exception innerException) => throw null; + } + public class ValueProviderFactoryContext + { + public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } + public ValueProviderFactoryContext(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public System.Collections.Generic.IList ValueProviders { get => throw null; } + } + public struct ValueProviderResult : System.IEquatable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public ValueProviderResult(Microsoft.Extensions.Primitives.StringValues values) => throw null; + public ValueProviderResult(Microsoft.Extensions.Primitives.StringValues values, System.Globalization.CultureInfo culture) => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; } + public override bool Equals(object obj) => throw null; + public bool Equals(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult other) => throw null; + public string FirstValue { get => throw null; } + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public override int GetHashCode() => throw null; + public int Length { get => throw null; } + public static Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult None; + public static bool operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult y) => throw null; + public static explicit operator string(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult result) => throw null; + public static explicit operator string[](Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult result) => throw null; + public static bool operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult x, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult y) => throw null; + public override string ToString() => throw null; + public Microsoft.Extensions.Primitives.StringValues Values { get => throw null; } } } namespace Routing @@ -1164,34 +1011,31 @@ namespace Microsoft public class AttributeRouteInfo { public AttributeRouteInfo() => throw null; - public string Name { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - public bool SuppressLinkGeneration { get => throw null; set => throw null; } - public bool SuppressPathMatching { get => throw null; set => throw null; } - public string Template { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } + public int Order { get => throw null; set { } } + public bool SuppressLinkGeneration { get => throw null; set { } } + public bool SuppressPathMatching { get => throw null; set { } } + public string Template { get => throw null; set { } } } - public class UrlActionContext { - public string Action { get => throw null; set => throw null; } - public string Controller { get => throw null; set => throw null; } - public string Fragment { get => throw null; set => throw null; } - public string Host { get => throw null; set => throw null; } - public string Protocol { get => throw null; set => throw null; } + public string Action { get => throw null; set { } } + public string Controller { get => throw null; set { } } public UrlActionContext() => throw null; - public object Values { get => throw null; set => throw null; } + public string Fragment { get => throw null; set { } } + public string Host { get => throw null; set { } } + public string Protocol { get => throw null; set { } } + public object Values { get => throw null; set { } } } - public class UrlRouteContext { - public string Fragment { get => throw null; set => throw null; } - public string Host { get => throw null; set => throw null; } - public string Protocol { get => throw null; set => throw null; } - public string RouteName { get => throw null; set => throw null; } public UrlRouteContext() => throw null; - public object Values { get => throw null; set => throw null; } + public string Fragment { get => throw null; set { } } + public string Host { get => throw null; set { } } + public string Protocol { get => throw null; set { } } + public string RouteName { get => throw null; set { } } + public object Values { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ApiExplorer.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ApiExplorer.cs index 4da9d47995d..11059fb134a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ApiExplorer.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ApiExplorer.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,32 +8,28 @@ namespace Microsoft { namespace ApiExplorer { - public static class ApiDescriptionExtensions + public static partial class ApiDescriptionExtensions { public static T GetProperty(this Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription apiDescription) => throw null; public static void SetProperty(this Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription apiDescription, T value) => throw null; } - public class ApiDescriptionGroup { public ApiDescriptionGroup(string groupName, System.Collections.Generic.IReadOnlyList items) => throw null; public string GroupName { get => throw null; } public System.Collections.Generic.IReadOnlyList Items { get => throw null; } } - public class ApiDescriptionGroupCollection { public ApiDescriptionGroupCollection(System.Collections.Generic.IReadOnlyList items, int version) => throw null; public System.Collections.Generic.IReadOnlyList Items { get => throw null; } public int Version { get => throw null; } } - public class ApiDescriptionGroupCollectionProvider : Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupCollectionProvider { - public ApiDescriptionGroupCollectionProvider(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, System.Collections.Generic.IEnumerable apiDescriptionProviders) => throw null; public Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection ApiDescriptionGroups { get => throw null; } + public ApiDescriptionGroupCollectionProvider(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, System.Collections.Generic.IEnumerable apiDescriptionProviders) => throw null; } - public class DefaultApiDescriptionProvider : Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider { public DefaultApiDescriptionProvider(Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Routing.IInlineConstraintResolver constraintResolver, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper mapper, Microsoft.Extensions.Options.IOptions routeOptions) => throw null; @@ -42,12 +37,10 @@ namespace Microsoft public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext context) => throw null; public int Order { get => throw null; } } - public interface IApiDescriptionGroupCollectionProvider { Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection ApiDescriptionGroups { get; } } - } } } @@ -55,16 +48,14 @@ namespace Microsoft { namespace DependencyInjection { - public static class EndpointMetadataApiExplorerServiceCollectionExtensions + public static partial class EndpointMetadataApiExplorerServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddEndpointsApiExplorer(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; } - - public static class MvcApiExplorerMvcCoreBuilderExtensions + public static partial class MvcApiExplorerMvcCoreBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddApiExplorer(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs index f4223ac690f..4e34696df97 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs @@ -1,19 +1,17 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public class ControllerActionEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + public sealed class ControllerActionEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { public void Add(System.Action convention) => throw null; public void Finally(System.Action finalConvention) => throw null; } - - public static class ControllerEndpointRouteBuilderExtensions + public static partial class ControllerEndpointRouteBuilderExtensions { public static Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder MapAreaControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string name, string areaName, string pattern, object defaults = default(object), object constraints = default(object), object dataTokens = default(object)) => throw null; public static Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder MapControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string name, string pattern, object defaults = default(object), object constraints = default(object), object dataTokens = default(object)) => throw null; @@ -27,361 +25,711 @@ namespace Microsoft public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToController(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string action, string controller) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToController(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string action, string controller) => throw null; } - - public static class MvcApplicationBuilderExtensions + public static partial class MvcApplicationBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseMvc(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseMvc(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configureRoutes) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseMvcWithDefaultRoute(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - - public static class MvcAreaRouteBuilderExtensions + public static partial class MvcAreaRouteBuilderExtensions { public static Microsoft.AspNetCore.Routing.IRouteBuilder MapAreaRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string areaName, string template) => throw null; public static Microsoft.AspNetCore.Routing.IRouteBuilder MapAreaRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string areaName, string template, object defaults) => throw null; public static Microsoft.AspNetCore.Routing.IRouteBuilder MapAreaRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string areaName, string template, object defaults, object constraints) => throw null; public static Microsoft.AspNetCore.Routing.IRouteBuilder MapAreaRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string areaName, string template, object defaults, object constraints, object dataTokens) => throw null; } - } namespace Mvc { - public class AcceptVerbsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider - { - public AcceptVerbsAttribute(params string[] methods) => throw null; - public AcceptVerbsAttribute(string method) => throw null; - public System.Collections.Generic.IEnumerable HttpMethods { get => throw null; } - public string Name { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - int? Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Order { get => throw null; } - public string Route { get => throw null; set => throw null; } - string Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Template { get => throw null; } - } - public class AcceptedAtActionResult : Microsoft.AspNetCore.Mvc.ObjectResult { + public string ActionName { get => throw null; set { } } + public string ControllerName { get => throw null; set { } } public AcceptedAtActionResult(string actionName, string controllerName, object routeValues, object value) : base(default(object)) => throw null; - public string ActionName { get => throw null; set => throw null; } - public string ControllerName { get => throw null; set => throw null; } public override void OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } } - public class AcceptedAtRouteResult : Microsoft.AspNetCore.Mvc.ObjectResult { public AcceptedAtRouteResult(object routeValues, object value) : base(default(object)) => throw null; public AcceptedAtRouteResult(string routeName, object routeValues, object value) : base(default(object)) => throw null; public override void OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public string RouteName { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } + public string RouteName { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } } - public class AcceptedResult : Microsoft.AspNetCore.Mvc.ObjectResult { public AcceptedResult() : base(default(object)) => throw null; - public AcceptedResult(System.Uri locationUri, object value) : base(default(object)) => throw null; public AcceptedResult(string location, object value) : base(default(object)) => throw null; - public string Location { get => throw null; set => throw null; } + public AcceptedResult(System.Uri locationUri, object value) : base(default(object)) => throw null; + public string Location { get => throw null; set { } } public override void OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; } - + public sealed class AcceptVerbsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider + { + public AcceptVerbsAttribute(string method) => throw null; + public AcceptVerbsAttribute(params string[] methods) => throw null; + public System.Collections.Generic.IEnumerable HttpMethods { get => throw null; } + public string Name { get => throw null; set { } } + public int Order { get => throw null; set { } } + int? Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Order { get => throw null; } + public string Route { get => throw null; set { } } + string Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Template { get => throw null; } + } + namespace ActionConstraints + { + public abstract class ActionMethodSelectorAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata + { + public bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) => throw null; + protected ActionMethodSelectorAttribute() => throw null; + public abstract bool IsValidForRequest(Microsoft.AspNetCore.Routing.RouteContext routeContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action); + public int Order { get => throw null; set { } } + } + public class HttpMethodActionConstraint : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata + { + public virtual bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) => throw null; + public HttpMethodActionConstraint(System.Collections.Generic.IEnumerable httpMethods) => throw null; + public static int HttpMethodConstraintOrder; + public System.Collections.Generic.IEnumerable HttpMethods { get => throw null; } + public int Order { get => throw null; } + } + } public class ActionContextAttribute : System.Attribute { public ActionContextAttribute() => throw null; } - - public class ActionNameAttribute : System.Attribute + public sealed class ActionNameAttribute : System.Attribute { public ActionNameAttribute(string name) => throw null; public string Name { get => throw null; } } - public abstract class ActionResult : Microsoft.AspNetCore.Mvc.IActionResult { protected ActionResult() => throw null; public virtual void ExecuteResult(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; public virtual System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; } - - public class ActionResult : Microsoft.AspNetCore.Mvc.Infrastructure.IConvertToActionResult + public sealed class ActionResult : Microsoft.AspNetCore.Mvc.Infrastructure.IConvertToActionResult { - public ActionResult(Microsoft.AspNetCore.Mvc.ActionResult result) => throw null; - public ActionResult(TValue value) => throw null; Microsoft.AspNetCore.Mvc.IActionResult Microsoft.AspNetCore.Mvc.Infrastructure.IConvertToActionResult.Convert() => throw null; + public ActionResult(TValue value) => throw null; + public ActionResult(Microsoft.AspNetCore.Mvc.ActionResult result) => throw null; + public static implicit operator Microsoft.AspNetCore.Mvc.ActionResult(TValue value) => throw null; + public static implicit operator Microsoft.AspNetCore.Mvc.ActionResult(Microsoft.AspNetCore.Mvc.ActionResult result) => throw null; public Microsoft.AspNetCore.Mvc.ActionResult Result { get => throw null; } public TValue Value { get => throw null; } - public static implicit operator Microsoft.AspNetCore.Mvc.ActionResult(Microsoft.AspNetCore.Mvc.ActionResult result) => throw null; - public static implicit operator Microsoft.AspNetCore.Mvc.ActionResult(TValue value) => throw null; } - public class AntiforgeryValidationFailedResult : Microsoft.AspNetCore.Mvc.BadRequestResult, Microsoft.AspNetCore.Mvc.Core.Infrastructure.IAntiforgeryValidationFailedResult, Microsoft.AspNetCore.Mvc.IActionResult { public AntiforgeryValidationFailedResult() => throw null; } - public class ApiBehaviorOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - public ApiBehaviorOptions() => throw null; public System.Collections.Generic.IDictionary ClientErrorMapping { get => throw null; } - public bool DisableImplicitFromServicesParameters { get => throw null; set => throw null; } + public ApiBehaviorOptions() => throw null; + public bool DisableImplicitFromServicesParameters { get => throw null; set { } } System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public System.Func InvalidModelStateResponseFactory { get => throw null; set => throw null; } - public bool SuppressConsumesConstraintForFormFileParameters { get => throw null; set => throw null; } - public bool SuppressInferBindingSourcesForParameters { get => throw null; set => throw null; } - public bool SuppressMapClientErrors { get => throw null; set => throw null; } - public bool SuppressModelStateInvalidFilter { get => throw null; set => throw null; } + public System.Func InvalidModelStateResponseFactory { get => throw null; set { } } + public bool SuppressConsumesConstraintForFormFileParameters { get => throw null; set { } } + public bool SuppressInferBindingSourcesForParameters { get => throw null; set { } } + public bool SuppressMapClientErrors { get => throw null; set { } } + public bool SuppressModelStateInvalidFilter { get => throw null; set { } } } - - public class ApiControllerAttribute : Microsoft.AspNetCore.Mvc.ControllerAttribute, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Infrastructure.IApiBehaviorMetadata + public class ApiControllerAttribute : Microsoft.AspNetCore.Mvc.ControllerAttribute, Microsoft.AspNetCore.Mvc.Infrastructure.IApiBehaviorMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { public ApiControllerAttribute() => throw null; } - - public class ApiConventionMethodAttribute : System.Attribute + public sealed class ApiConventionMethodAttribute : System.Attribute { + public System.Type ConventionType { get => throw null; } public ApiConventionMethodAttribute(System.Type conventionType, string methodName) => throw null; - public System.Type ConventionType { get => throw null; } } - - public class ApiConventionTypeAttribute : System.Attribute + public sealed class ApiConventionTypeAttribute : System.Attribute { - public ApiConventionTypeAttribute(System.Type conventionType) => throw null; public System.Type ConventionType { get => throw null; } + public ApiConventionTypeAttribute(System.Type conventionType) => throw null; } - public class ApiDescriptionActionData { public ApiDescriptionActionData() => throw null; - public string GroupName { get => throw null; set => throw null; } + public string GroupName { get => throw null; set { } } + } + namespace ApiExplorer + { + public sealed class ApiConventionNameMatchAttribute : System.Attribute + { + public ApiConventionNameMatchAttribute(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior matchBehavior) => throw null; + public Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior MatchBehavior { get => throw null; } + } + public enum ApiConventionNameMatchBehavior + { + Any = 0, + Exact = 1, + Prefix = 2, + Suffix = 3, + } + public sealed class ApiConventionResult + { + public ApiConventionResult(System.Collections.Generic.IReadOnlyList responseMetadataProviders) => throw null; + public System.Collections.Generic.IReadOnlyList ResponseMetadataProviders { get => throw null; } + } + public sealed class ApiConventionTypeMatchAttribute : System.Attribute + { + public ApiConventionTypeMatchAttribute(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior matchBehavior) => throw null; + public Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior MatchBehavior { get => throw null; } + } + public enum ApiConventionTypeMatchBehavior + { + Any = 0, + AssignableFrom = 1, + } + public interface IApiDefaultResponseMetadataProvider : Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + { + } + public interface IApiDescriptionGroupNameProvider + { + string GroupName { get; } + } + public interface IApiDescriptionVisibilityProvider + { + bool IgnoreApi { get; } + } + public interface IApiRequestFormatMetadataProvider + { + System.Collections.Generic.IReadOnlyList GetSupportedContentTypes(string contentType, System.Type objectType); + } + public interface IApiRequestMetadataProvider : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + { + void SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes); + } + public interface IApiResponseMetadataProvider : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + { + void SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes); + int StatusCode { get; } + System.Type Type { get; } + } + public interface IApiResponseTypeMetadataProvider + { + System.Collections.Generic.IReadOnlyList GetSupportedContentTypes(string contentType, System.Type objectType); + } } - public class ApiExplorerSettingsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupNameProvider, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionVisibilityProvider { public ApiExplorerSettingsAttribute() => throw null; - public string GroupName { get => throw null; set => throw null; } - public bool IgnoreApi { get => throw null; set => throw null; } + public string GroupName { get => throw null; set { } } + public bool IgnoreApi { get => throw null; set { } } + } + namespace ApplicationModels + { + public class ActionModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel + { + public System.Reflection.MethodInfo ActionMethod { get => throw null; } + public string ActionName { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get => throw null; set { } } + public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } + public Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel Controller { get => throw null; set { } } + public ActionModel(System.Reflection.MethodInfo actionMethod, System.Collections.Generic.IReadOnlyList attributes) => throw null; + public ActionModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel other) => throw null; + public string DisplayName { get => throw null; } + public System.Collections.Generic.IList Filters { get => throw null; } + System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } + string Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.Name { get => throw null; } + public System.Collections.Generic.IList Parameters { get => throw null; } + public System.Collections.Generic.IDictionary Properties { get => throw null; } + public Microsoft.AspNetCore.Routing.IOutboundParameterTransformer RouteParameterTransformer { get => throw null; set { } } + public System.Collections.Generic.IDictionary RouteValues { get => throw null; } + public System.Collections.Generic.IList Selectors { get => throw null; } + } + public class ApiConventionApplicationModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention + { + public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + public ApiConventionApplicationModelConvention(Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute defaultErrorResponseType) => throw null; + public Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute DefaultErrorResponseType { get => throw null; } + protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + } + public class ApiExplorerModel + { + public ApiExplorerModel() => throw null; + public ApiExplorerModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel other) => throw null; + public string GroupName { get => throw null; set { } } + public bool? IsVisible { get => throw null; set { } } + } + public class ApiVisibilityConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention + { + public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + public ApiVisibilityConvention() => throw null; + protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + } + public class ApplicationModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel + { + public Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get => throw null; set { } } + public System.Collections.Generic.IList Controllers { get => throw null; } + public ApplicationModel() => throw null; + public System.Collections.Generic.IList Filters { get => throw null; } + public System.Collections.Generic.IDictionary Properties { get => throw null; } + } + public class ApplicationModelProviderContext + { + public System.Collections.Generic.IEnumerable ControllerTypes { get => throw null; } + public ApplicationModelProviderContext(System.Collections.Generic.IEnumerable controllerTypes) => throw null; + public Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel Result { get => throw null; } + } + public class AttributeRouteModel + { + public Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider Attribute { get => throw null; } + public static Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel CombineAttributeRouteModel(Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel left, Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel right) => throw null; + public static string CombineTemplates(string prefix, string template) => throw null; + public AttributeRouteModel() => throw null; + public AttributeRouteModel(Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider templateProvider) => throw null; + public AttributeRouteModel(Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel other) => throw null; + public bool IsAbsoluteTemplate { get => throw null; } + public static bool IsOverridePattern(string template) => throw null; + public string Name { get => throw null; set { } } + public int? Order { get => throw null; set { } } + public static string ReplaceTokens(string template, System.Collections.Generic.IDictionary values) => throw null; + public static string ReplaceTokens(string template, System.Collections.Generic.IDictionary values, Microsoft.AspNetCore.Routing.IOutboundParameterTransformer routeTokenTransformer) => throw null; + public bool SuppressLinkGeneration { get => throw null; set { } } + public bool SuppressPathMatching { get => throw null; set { } } + public string Template { get => throw null; set { } } + } + public class ClientErrorResultFilterConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention + { + public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + public ClientErrorResultFilterConvention() => throw null; + protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + } + public class ConsumesConstraintForFormFileParameterConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention + { + public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + public ConsumesConstraintForFormFileParameterConvention() => throw null; + protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + } + public class ControllerModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel + { + public System.Collections.Generic.IList Actions { get => throw null; } + public Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel Application { get => throw null; set { } } + public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } + public string ControllerName { get => throw null; set { } } + public System.Collections.Generic.IList ControllerProperties { get => throw null; } + public System.Reflection.TypeInfo ControllerType { get => throw null; } + public ControllerModel(System.Reflection.TypeInfo controllerType, System.Collections.Generic.IReadOnlyList attributes) => throw null; + public ControllerModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel other) => throw null; + public string DisplayName { get => throw null; } + public System.Collections.Generic.IList Filters { get => throw null; } + System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } + string Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.Name { get => throw null; } + public System.Collections.Generic.IDictionary Properties { get => throw null; } + public System.Collections.Generic.IDictionary RouteValues { get => throw null; } + public System.Collections.Generic.IList Selectors { get => throw null; } + } + public interface IActionModelConvention + { + void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action); + } + public interface IApiExplorerModel + { + Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get; set; } + } + public interface IApplicationModelConvention + { + void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel application); + } + public interface IApplicationModelProvider + { + void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context); + void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context); + int Order { get; } + } + public interface IBindingModel + { + Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get; set; } + } + public interface ICommonModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel + { + System.Collections.Generic.IReadOnlyList Attributes { get; } + System.Reflection.MemberInfo MemberInfo { get; } + string Name { get; } + } + public interface IControllerModelConvention + { + void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel controller); + } + public interface IFilterModel + { + System.Collections.Generic.IList Filters { get; } + } + public class InferParameterBindingInfoConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention + { + public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + public InferParameterBindingInfoConvention(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) => throw null; + public InferParameterBindingInfoConvention(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.Extensions.DependencyInjection.IServiceProviderIsService serviceProviderIsService) => throw null; + protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + } + public class InvalidModelStateFilterConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention + { + public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + public InvalidModelStateFilterConvention() => throw null; + protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + } + public interface IParameterModelBaseConvention + { + void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase parameter); + } + public interface IParameterModelConvention + { + void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel parameter); + } + public interface IPropertyModel + { + System.Collections.Generic.IDictionary Properties { get; } + } + public class ParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel + { + public Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel Action { get => throw null; set { } } + public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } + public ParameterModel(System.Reflection.ParameterInfo parameterInfo, System.Collections.Generic.IReadOnlyList attributes) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; + public ParameterModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel other) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; + public string DisplayName { get => throw null; } + System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } + public System.Reflection.ParameterInfo ParameterInfo { get => throw null; } + public string ParameterName { get => throw null; set { } } + public System.Collections.Generic.IDictionary Properties { get => throw null; } + } + public abstract class ParameterModelBase : Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel + { + public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get => throw null; set { } } + protected ParameterModelBase(System.Type parameterType, System.Collections.Generic.IReadOnlyList attributes) => throw null; + protected ParameterModelBase(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase other) => throw null; + public string Name { get => throw null; set { } } + public System.Type ParameterType { get => throw null; } + public System.Collections.Generic.IDictionary Properties { get => throw null; } + } + public class PropertyModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel + { + public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } + public Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel Controller { get => throw null; set { } } + public PropertyModel(System.Reflection.PropertyInfo propertyInfo, System.Collections.Generic.IReadOnlyList attributes) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; + public PropertyModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel other) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; + System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } + public System.Collections.Generic.IDictionary Properties { get => throw null; } + public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } + public string PropertyName { get => throw null; set { } } + } + public class RouteTokenTransformerConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention + { + public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + public RouteTokenTransformerConvention(Microsoft.AspNetCore.Routing.IOutboundParameterTransformer parameterTransformer) => throw null; + protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; + } + public class SelectorModel + { + public System.Collections.Generic.IList ActionConstraints { get => throw null; } + public Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel AttributeRouteModel { get => throw null; set { } } + public SelectorModel() => throw null; + public SelectorModel(Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel other) => throw null; + public System.Collections.Generic.IList EndpointMetadata { get => throw null; } + } + } + namespace ApplicationParts + { + public abstract class ApplicationPart + { + protected ApplicationPart() => throw null; + public abstract string Name { get; } + } + public sealed class ApplicationPartAttribute : System.Attribute + { + public string AssemblyName { get => throw null; } + public ApplicationPartAttribute(string assemblyName) => throw null; + } + public abstract class ApplicationPartFactory + { + protected ApplicationPartFactory() => throw null; + public static Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory GetApplicationPartFactory(System.Reflection.Assembly assembly) => throw null; + public abstract System.Collections.Generic.IEnumerable GetApplicationParts(System.Reflection.Assembly assembly); + } + public class ApplicationPartManager + { + public System.Collections.Generic.IList ApplicationParts { get => throw null; } + public ApplicationPartManager() => throw null; + public System.Collections.Generic.IList FeatureProviders { get => throw null; } + public void PopulateFeature(TFeature feature) => throw null; + } + public class AssemblyPart : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationPartTypeProvider + { + public System.Reflection.Assembly Assembly { get => throw null; } + public AssemblyPart(System.Reflection.Assembly assembly) => throw null; + public override string Name { get => throw null; } + public System.Collections.Generic.IEnumerable Types { get => throw null; } + } + public class DefaultApplicationPartFactory : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory + { + public DefaultApplicationPartFactory() => throw null; + public override System.Collections.Generic.IEnumerable GetApplicationParts(System.Reflection.Assembly assembly) => throw null; + public static System.Collections.Generic.IEnumerable GetDefaultApplicationParts(System.Reflection.Assembly assembly) => throw null; + public static Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory Instance { get => throw null; } + } + public interface IApplicationFeatureProvider + { + } + public interface IApplicationFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider + { + void PopulateFeature(System.Collections.Generic.IEnumerable parts, TFeature feature); + } + public interface IApplicationPartTypeProvider + { + System.Collections.Generic.IEnumerable Types { get; } + } + public interface ICompilationReferencesProvider + { + System.Collections.Generic.IEnumerable GetReferencePaths(); + } + public class NullApplicationPartFactory : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory + { + public NullApplicationPartFactory() => throw null; + public override System.Collections.Generic.IEnumerable GetApplicationParts(System.Reflection.Assembly assembly) => throw null; + } + public sealed class ProvideApplicationPartFactoryAttribute : System.Attribute + { + public ProvideApplicationPartFactoryAttribute(System.Type factoryType) => throw null; + public ProvideApplicationPartFactoryAttribute(string factoryTypeName) => throw null; + public System.Type GetFactoryType() => throw null; + } + public sealed class RelatedAssemblyAttribute : System.Attribute + { + public string AssemblyFileName { get => throw null; } + public RelatedAssemblyAttribute(string assemblyFileName) => throw null; + public static System.Collections.Generic.IReadOnlyList GetRelatedAssemblies(System.Reflection.Assembly assembly, bool throwOnError) => throw null; + } } - public class AreaAttribute : Microsoft.AspNetCore.Mvc.Routing.RouteValueAttribute { public AreaAttribute(string areaName) : base(default(string), default(string)) => throw null; } - + namespace Authorization + { + public class AllowAnonymousFilter : Microsoft.AspNetCore.Mvc.Authorization.IAllowAnonymousFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + { + public AllowAnonymousFilter() => throw null; + } + public class AuthorizeFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + { + public System.Collections.Generic.IEnumerable AuthorizeData { get => throw null; } + Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Microsoft.AspNetCore.Mvc.Filters.IFilterFactory.CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public AuthorizeFilter() => throw null; + public AuthorizeFilter(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; + public AuthorizeFilter(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, System.Collections.Generic.IEnumerable authorizeData) => throw null; + public AuthorizeFilter(System.Collections.Generic.IEnumerable authorizeData) => throw null; + public AuthorizeFilter(string policy) => throw null; + bool Microsoft.AspNetCore.Mvc.Filters.IFilterFactory.IsReusable { get => throw null; } + public virtual System.Threading.Tasks.Task OnAuthorizationAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) => throw null; + public Microsoft.AspNetCore.Authorization.AuthorizationPolicy Policy { get => throw null; } + public Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider PolicyProvider { get => throw null; } + } + } public class BadRequestObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public BadRequestObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(object)) => throw null; public BadRequestObjectResult(object error) : base(default(object)) => throw null; + public BadRequestObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(object)) => throw null; } - public class BadRequestResult : Microsoft.AspNetCore.Mvc.StatusCodeResult { public BadRequestResult() : base(default(int)) => throw null; } - public class BindAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider { public BindAttribute(params string[] include) => throw null; public string[] Include { get => throw null; } string Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider.Name { get => throw null; } - public string Prefix { get => throw null; set => throw null; } + public string Prefix { get => throw null; set { } } public System.Func PropertyFilter { get => throw null; } } - public class BindPropertiesAttribute : System.Attribute { public BindPropertiesAttribute() => throw null; - public bool SupportsGet { get => throw null; set => throw null; } + public bool SupportsGet { get => throw null; set { } } } - - public class BindPropertyAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IRequestPredicateProvider + public class BindPropertyAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IRequestPredicateProvider { + public System.Type BinderType { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set { } } public BindPropertyAttribute() => throw null; - public System.Type BinderType { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } System.Func Microsoft.AspNetCore.Mvc.ModelBinding.IRequestPredicateProvider.RequestPredicate { get => throw null; } - public bool SupportsGet { get => throw null; set => throw null; } + public bool SupportsGet { get => throw null; set { } } } - public class CacheProfile { public CacheProfile() => throw null; - public int? Duration { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ResponseCacheLocation? Location { get => throw null; set => throw null; } - public bool? NoStore { get => throw null; set => throw null; } - public string VaryByHeader { get => throw null; set => throw null; } - public string[] VaryByQueryKeys { get => throw null; set => throw null; } + public int? Duration { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ResponseCacheLocation? Location { get => throw null; set { } } + public bool? NoStore { get => throw null; set { } } + public string VaryByHeader { get => throw null; set { } } + public string[] VaryByQueryKeys { get => throw null; set { } } } - public class ChallengeResult : Microsoft.AspNetCore.Mvc.ActionResult { - public System.Collections.Generic.IList AuthenticationSchemes { get => throw null; set => throw null; } + public System.Collections.Generic.IList AuthenticationSchemes { get => throw null; set { } } public ChallengeResult() => throw null; - public ChallengeResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public ChallengeResult(System.Collections.Generic.IList authenticationSchemes) => throw null; - public ChallengeResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public ChallengeResult(string authenticationScheme) => throw null; + public ChallengeResult(System.Collections.Generic.IList authenticationSchemes) => throw null; + public ChallengeResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public ChallengeResult(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public ChallengeResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } } - public class ClientErrorData { public ClientErrorData() => throw null; - public string Link { get => throw null; set => throw null; } - public string Title { get => throw null; set => throw null; } + public string Link { get => throw null; set { } } + public string Title { get => throw null; set { } } } - - public enum CompatibilityVersion : int + public enum CompatibilityVersion { - Latest = 2147483647, Version_2_0 = 0, Version_2_1 = 1, Version_2_2 = 2, Version_3_0 = 3, + Latest = 2147483647, } - public class ConflictObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public ConflictObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(object)) => throw null; public ConflictObjectResult(object error) : base(default(object)) => throw null; + public ConflictObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(object)) => throw null; } - public class ConflictResult : Microsoft.AspNetCore.Mvc.StatusCodeResult { public ConflictResult() : base(default(int)) => throw null; } - - public class ConsumesAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter + public class ConsumesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestMetadataProvider, Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata { public bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) => throw null; public static int ConsumesActionConstraintOrder; - public ConsumesAttribute(System.Type requestType, string contentType, params string[] otherContentTypes) => throw null; - public ConsumesAttribute(string contentType, params string[] otherContentTypes) => throw null; - public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection ContentTypes { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection ContentTypes { get => throw null; set { } } System.Collections.Generic.IReadOnlyList Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata.ContentTypes { get => throw null; } - public bool IsOptional { get => throw null; set => throw null; } + public ConsumesAttribute(string contentType, params string[] otherContentTypes) => throw null; + public ConsumesAttribute(System.Type requestType, string contentType, params string[] otherContentTypes) => throw null; + public bool IsOptional { get => throw null; set { } } public void OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext context) => throw null; public void OnResourceExecuting(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context) => throw null; int Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint.Order { get => throw null; } System.Type Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata.RequestType { get => throw null; } public void SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) => throw null; } - - public class ContentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult + public class ContentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult { - public string Content { get => throw null; set => throw null; } + public string Content { get => throw null; set { } } + public string ContentType { get => throw null; set { } } public ContentResult() => throw null; - public string ContentType { get => throw null; set => throw null; } public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public int? StatusCode { get => throw null; set => throw null; } + public int? StatusCode { get => throw null; set { } } } - public class ControllerAttribute : System.Attribute { public ControllerAttribute() => throw null; } - public abstract class ControllerBase { public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted() => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(System.Uri uri) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(System.Uri uri, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(object value) => throw null; + public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(System.Uri uri) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(string uri) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(string uri, object value) => throw null; + public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(System.Uri uri, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedAtActionResult AcceptedAtAction(string actionName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedAtActionResult AcceptedAtAction(string actionName, object value) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedAtActionResult AcceptedAtAction(string actionName, object routeValues, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedAtActionResult AcceptedAtAction(string actionName, string controllerName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.AcceptedAtActionResult AcceptedAtAction(string actionName, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedAtActionResult AcceptedAtAction(string actionName, string controllerName, object routeValues) => throw null; + public virtual Microsoft.AspNetCore.Mvc.AcceptedAtActionResult AcceptedAtAction(string actionName, object routeValues, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedAtActionResult AcceptedAtAction(string actionName, string controllerName, object routeValues, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult AcceptedAtRoute(object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult AcceptedAtRoute(object routeValues, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult AcceptedAtRoute(string routeName) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult AcceptedAtRoute(string routeName, object routeValues) => throw null; + public virtual Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult AcceptedAtRoute(object routeValues, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult AcceptedAtRoute(string routeName, object routeValues, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.BadRequestResult BadRequest() => throw null; - public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(object error) => throw null; + public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge() => throw null; + public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.ConflictResult Conflict() => throw null; - public virtual Microsoft.AspNetCore.Mvc.ConflictObjectResult Conflict(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; public virtual Microsoft.AspNetCore.Mvc.ConflictObjectResult Conflict(object error) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ConflictObjectResult Conflict(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, string contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, string contentType, System.Text.Encoding contentEncoding) => throw null; - protected ControllerBase() => throw null; - public Microsoft.AspNetCore.Mvc.ControllerContext ControllerContext { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Mvc.CreatedResult Created(System.Uri uri, object value) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; + public Microsoft.AspNetCore.Mvc.ControllerContext ControllerContext { get => throw null; set { } } public virtual Microsoft.AspNetCore.Mvc.CreatedResult Created(string uri, object value) => throw null; + public virtual Microsoft.AspNetCore.Mvc.CreatedResult Created(System.Uri uri, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.CreatedAtActionResult CreatedAtAction(string actionName, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.CreatedAtActionResult CreatedAtAction(string actionName, object routeValues, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.CreatedAtActionResult CreatedAtAction(string actionName, string controllerName, object routeValues, object value) => throw null; - public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute(object routeValues, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute(string routeName, object value) => throw null; + public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute(object routeValues, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute(string routeName, object routeValues, object value) => throw null; + protected ControllerBase() => throw null; public static Microsoft.AspNetCore.Mvc.EmptyResult Empty { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType, bool enableRangeProcessing) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType, string fileDownloadName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType, string fileDownloadName, bool enableRangeProcessing) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType, bool enableRangeProcessing) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName, bool enableRangeProcessing) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, string fileDownloadName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, string fileDownloadName, bool enableRangeProcessing) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, string fileDownloadName, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; - public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, string fileDownloadName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, string fileDownloadName, bool enableRangeProcessing) => throw null; + public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; + public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; - public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, string fileDownloadName, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid() => throw null; + public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(params string[] authenticationSchemes) => throw null; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirect(string localUrl) => throw null; public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirectPermanent(string localUrl) => throw null; public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirectPermanentPreserveMethod(string localUrl) => throw null; public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirectPreserveMethod(string localUrl) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory ModelBinderFactory { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory ModelBinderFactory { get => throw null; set { } } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.NoContentResult NoContent() => throw null; public virtual Microsoft.AspNetCore.Mvc.NotFoundResult NotFound() => throw null; public virtual Microsoft.AspNetCore.Mvc.NotFoundObjectResult NotFound(object value) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator ObjectValidator { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator ObjectValidator { get => throw null; set { } } public virtual Microsoft.AspNetCore.Mvc.OkResult Ok() => throw null; public virtual Microsoft.AspNetCore.Mvc.OkObjectResult Ok(object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; - public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, string fileDownloadName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, string fileDownloadName, bool enableRangeProcessing) => throw null; + public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; + public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, string fileDownloadName, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, bool enableRangeProcessing) => throw null; - public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, string fileDownloadName, bool enableRangeProcessing) => throw null; public virtual Microsoft.AspNetCore.Mvc.ObjectResult Problem(string detail = default(string), string instance = default(string), int? statusCode = default(int?), string title = default(string), string type = default(string)) => throw null; - public Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory ProblemDetailsFactory { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory ProblemDetailsFactory { get => throw null; set { } } public virtual Microsoft.AspNetCore.Mvc.RedirectResult Redirect(string url) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectResult RedirectPermanent(string url) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectResult RedirectPermanentPreserveMethod(string url) => throw null; @@ -391,119 +739,192 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, object routeValues, string fragment) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanentPreserveMethod(string actionName = default(string), string controllerName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPreserveMethod(string actionName = default(string), string controllerName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanentPreserveMethod(string pageName, string pageHandler = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePreserveMethod(string pageName, string pageHandler = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, string fragment) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(object routeValues) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanentPreserveMethod(string routeName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePreserveMethod(string routeName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public Microsoft.AspNetCore.Http.HttpRequest Request { get => throw null; } public Microsoft.AspNetCore.Http.HttpResponse Response { get => throw null; } public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal) => throw null; + public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal, string authenticationScheme) => throw null; public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string authenticationScheme) => throw null; - public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal, string authenticationScheme) => throw null; public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut() => throw null; public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut(params string[] authenticationSchemes) => throw null; + public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.StatusCodeResult StatusCode(int statusCode) => throw null; public virtual Microsoft.AspNetCore.Mvc.ObjectResult StatusCode(int statusCode, object value) => throw null; - public virtual System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string prefix) => throw null; - public System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) => throw null; public virtual System.Threading.Tasks.Task TryUpdateModelAsync(TModel model) where TModel : class => throw null; public virtual System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix) where TModel : class => throw null; - public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, System.Func propertyFilter) where TModel : class => throw null; public virtual System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider) where TModel : class => throw null; - public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) where TModel : class => throw null; - public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, params System.Linq.Expressions.Expression>[] includeExpressions) where TModel : class => throw null; public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, params System.Linq.Expressions.Expression>[] includeExpressions) where TModel : class => throw null; + public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, System.Func propertyFilter) where TModel : class => throw null; + public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, params System.Linq.Expressions.Expression>[] includeExpressions) where TModel : class => throw null; + public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) where TModel : class => throw null; + public virtual System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string prefix) => throw null; + public System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) => throw null; public virtual bool TryValidateModel(object model) => throw null; public virtual bool TryValidateModel(object model, string prefix) => throw null; public virtual Microsoft.AspNetCore.Mvc.UnauthorizedResult Unauthorized() => throw null; public virtual Microsoft.AspNetCore.Mvc.UnauthorizedObjectResult Unauthorized(object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.UnprocessableEntityResult UnprocessableEntity() => throw null; - public virtual Microsoft.AspNetCore.Mvc.UnprocessableEntityObjectResult UnprocessableEntity(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; public virtual Microsoft.AspNetCore.Mvc.UnprocessableEntityObjectResult UnprocessableEntity(object error) => throw null; - public Microsoft.AspNetCore.Mvc.IUrlHelper Url { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.Mvc.UnprocessableEntityObjectResult UnprocessableEntity(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; + public Microsoft.AspNetCore.Mvc.IUrlHelper Url { get => throw null; set { } } public System.Security.Claims.ClaimsPrincipal User { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.ActionResult ValidationProblem() => throw null; - public virtual Microsoft.AspNetCore.Mvc.ActionResult ValidationProblem(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelStateDictionary) => throw null; public virtual Microsoft.AspNetCore.Mvc.ActionResult ValidationProblem(Microsoft.AspNetCore.Mvc.ValidationProblemDetails descriptor) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ActionResult ValidationProblem(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelStateDictionary) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ActionResult ValidationProblem() => throw null; public virtual Microsoft.AspNetCore.Mvc.ActionResult ValidationProblem(string detail = default(string), string instance = default(string), int? statusCode = default(int?), string title = default(string), string type = default(string), Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelStateDictionary = default(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary)) => throw null; } - public class ControllerContext : Microsoft.AspNetCore.Mvc.ActionContext { - public Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor ActionDescriptor { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor ActionDescriptor { get => throw null; set { } } public ControllerContext() => throw null; public ControllerContext(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public virtual System.Collections.Generic.IList ValueProviderFactories { get => throw null; set => throw null; } + public virtual System.Collections.Generic.IList ValueProviderFactories { get => throw null; set { } } } - public class ControllerContextAttribute : System.Attribute { public ControllerContextAttribute() => throw null; } - + namespace Controllers + { + public class ControllerActionDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor + { + public virtual string ActionName { get => throw null; set { } } + public string ControllerName { get => throw null; set { } } + public System.Reflection.TypeInfo ControllerTypeInfo { get => throw null; set { } } + public ControllerActionDescriptor() => throw null; + public override string DisplayName { get => throw null; set { } } + public System.Reflection.MethodInfo MethodInfo { get => throw null; set { } } + } + public class ControllerActivatorProvider : Microsoft.AspNetCore.Mvc.Controllers.IControllerActivatorProvider + { + public System.Func CreateActivator(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) => throw null; + public System.Func CreateAsyncReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) => throw null; + public System.Action CreateReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) => throw null; + public ControllerActivatorProvider(Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator controllerActivator) => throw null; + } + public class ControllerBoundPropertyDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor, Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor + { + public ControllerBoundPropertyDescriptor() => throw null; + public System.Reflection.PropertyInfo PropertyInfo { get => throw null; set { } } + } + public class ControllerFeature + { + public System.Collections.Generic.IList Controllers { get => throw null; } + public ControllerFeature() => throw null; + } + public class ControllerFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider + { + public ControllerFeatureProvider() => throw null; + protected virtual bool IsController(System.Reflection.TypeInfo typeInfo) => throw null; + public void PopulateFeature(System.Collections.Generic.IEnumerable parts, Microsoft.AspNetCore.Mvc.Controllers.ControllerFeature feature) => throw null; + } + public class ControllerParameterDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor, Microsoft.AspNetCore.Mvc.Infrastructure.IParameterInfoParameterDescriptor + { + public ControllerParameterDescriptor() => throw null; + public System.Reflection.ParameterInfo ParameterInfo { get => throw null; set { } } + } + public interface IControllerActivator + { + object Create(Microsoft.AspNetCore.Mvc.ControllerContext context); + void Release(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller); + virtual System.Threading.Tasks.ValueTask ReleaseAsync(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) => throw null; + } + public interface IControllerActivatorProvider + { + System.Func CreateActivator(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor); + virtual System.Func CreateAsyncReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) => throw null; + System.Action CreateReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor); + } + public interface IControllerFactory + { + object CreateController(Microsoft.AspNetCore.Mvc.ControllerContext context); + void ReleaseController(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller); + virtual System.Threading.Tasks.ValueTask ReleaseControllerAsync(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) => throw null; + } + public interface IControllerFactoryProvider + { + virtual System.Func CreateAsyncControllerReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) => throw null; + System.Func CreateControllerFactory(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor); + System.Action CreateControllerReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor); + } + public class ServiceBasedControllerActivator : Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator + { + public object Create(Microsoft.AspNetCore.Mvc.ControllerContext actionContext) => throw null; + public ServiceBasedControllerActivator() => throw null; + public virtual void Release(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) => throw null; + } + } + namespace Core + { + namespace Infrastructure + { + public interface IAntiforgeryValidationFailedResult : Microsoft.AspNetCore.Mvc.IActionResult + { + } + } + } public class CreatedAtActionResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public string ActionName { get => throw null; set => throw null; } - public string ControllerName { get => throw null; set => throw null; } + public string ActionName { get => throw null; set { } } + public string ControllerName { get => throw null; set { } } public CreatedAtActionResult(string actionName, string controllerName, object routeValues, object value) : base(default(object)) => throw null; public override void OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } } - public class CreatedAtRouteResult : Microsoft.AspNetCore.Mvc.ObjectResult { public CreatedAtRouteResult(object routeValues, object value) : base(default(object)) => throw null; public CreatedAtRouteResult(string routeName, object routeValues, object value) : base(default(object)) => throw null; public override void OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public string RouteName { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } + public string RouteName { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } } - public class CreatedResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public CreatedResult(System.Uri location, object value) : base(default(object)) => throw null; public CreatedResult(string location, object value) : base(default(object)) => throw null; - public string Location { get => throw null; set => throw null; } + public CreatedResult(System.Uri location, object value) : base(default(object)) => throw null; + public string Location { get => throw null; set { } } public override void OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; } - public static class DefaultApiConventions { public static void Create(object model) => throw null; @@ -515,1496 +936,346 @@ namespace Microsoft public static void Put(object id, object model) => throw null; public static void Update(object id, object model) => throw null; } - - public class DisableRequestSizeLimitAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IRequestSizeLimitMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; - public DisableRequestSizeLimitAttribute() => throw null; - public bool IsReusable { get => throw null; } - System.Int64? Microsoft.AspNetCore.Http.Metadata.IRequestSizeLimitMetadata.MaxRequestBodySize { get => throw null; } - public int Order { get => throw null; set => throw null; } - } - - public class EmptyResult : Microsoft.AspNetCore.Mvc.ActionResult - { - public EmptyResult() => throw null; - public override void ExecuteResult(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - } - - public class FileContentResult : Microsoft.AspNetCore.Mvc.FileResult - { - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public FileContentResult(System.Byte[] fileContents, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) : base(default(string)) => throw null; - public FileContentResult(System.Byte[] fileContents, string contentType) : base(default(string)) => throw null; - public System.Byte[] FileContents { get => throw null; set => throw null; } - } - - public abstract class FileResult : Microsoft.AspNetCore.Mvc.ActionResult - { - public string ContentType { get => throw null; } - public bool EnableRangeProcessing { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; set => throw null; } - public string FileDownloadName { get => throw null; set => throw null; } - protected FileResult(string contentType) => throw null; - public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } - } - - public class FileStreamResult : Microsoft.AspNetCore.Mvc.FileResult - { - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public System.IO.Stream FileStream { get => throw null; set => throw null; } - public FileStreamResult(System.IO.Stream fileStream, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) : base(default(string)) => throw null; - public FileStreamResult(System.IO.Stream fileStream, string contentType) : base(default(string)) => throw null; - } - - public class ForbidResult : Microsoft.AspNetCore.Mvc.ActionResult - { - public System.Collections.Generic.IList AuthenticationSchemes { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public ForbidResult() => throw null; - public ForbidResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public ForbidResult(System.Collections.Generic.IList authenticationSchemes) => throw null; - public ForbidResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public ForbidResult(string authenticationScheme) => throw null; - public ForbidResult(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } - } - - public class FormatFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; - public FormatFilterAttribute() => throw null; - public bool IsReusable { get => throw null; } - } - - public class FromBodyAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IFromBodyMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata - { - bool Microsoft.AspNetCore.Http.Metadata.IFromBodyMetadata.AllowEmpty { get => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior EmptyBodyBehavior { get => throw null; set => throw null; } - public FromBodyAttribute() => throw null; - } - - public class FromFormAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IFromFormMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider - { - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } - public FromFormAttribute() => throw null; - public string Name { get => throw null; set => throw null; } - } - - public class FromHeaderAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IFromHeaderMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider - { - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } - public FromHeaderAttribute() => throw null; - public string Name { get => throw null; set => throw null; } - } - - public class FromQueryAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IFromQueryMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider - { - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } - public FromQueryAttribute() => throw null; - public string Name { get => throw null; set => throw null; } - } - - public class FromRouteAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IFromRouteMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider - { - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } - public FromRouteAttribute() => throw null; - public string Name { get => throw null; set => throw null; } - } - - public class FromServicesAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IFromServiceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata - { - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } - public FromServicesAttribute() => throw null; - } - - public class HttpDeleteAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute - { - public HttpDeleteAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; - public HttpDeleteAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; - } - - public class HttpGetAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute - { - public HttpGetAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; - public HttpGetAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; - } - - public class HttpHeadAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute - { - public HttpHeadAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; - public HttpHeadAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; - } - - public class HttpOptionsAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute - { - public HttpOptionsAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; - public HttpOptionsAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; - } - - public class HttpPatchAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute - { - public HttpPatchAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; - public HttpPatchAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; - } - - public class HttpPostAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute - { - public HttpPostAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; - public HttpPostAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; - } - - public class HttpPutAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute - { - public HttpPutAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; - public HttpPutAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; - } - - public interface IDesignTimeMvcBuilderConfiguration - { - void ConfigureMvc(Microsoft.Extensions.DependencyInjection.IMvcBuilder builder); - } - - public interface IRequestFormLimitsPolicy : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - } - - public interface IRequestSizePolicy : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - } - - public class JsonOptions - { - public bool AllowInputFormatterExceptionMessages { get => throw null; set => throw null; } - public JsonOptions() => throw null; - public System.Text.Json.JsonSerializerOptions JsonSerializerOptions { get => throw null; } - } - - public class JsonResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult - { - public string ContentType { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public JsonResult(object value) => throw null; - public JsonResult(object value, object serializerSettings) => throw null; - public object SerializerSettings { get => throw null; set => throw null; } - public int? StatusCode { get => throw null; set => throw null; } - public object Value { get => throw null; set => throw null; } - } - - public class LocalRedirectResult : Microsoft.AspNetCore.Mvc.ActionResult - { - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public LocalRedirectResult(string localUrl) => throw null; - public LocalRedirectResult(string localUrl, bool permanent) => throw null; - public LocalRedirectResult(string localUrl, bool permanent, bool preserveMethod) => throw null; - public bool Permanent { get => throw null; set => throw null; } - public bool PreserveMethod { get => throw null; set => throw null; } - public string Url { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } - } - - public class MiddlewareFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - public System.Type ConfigurationType { get => throw null; } - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; - public bool IsReusable { get => throw null; } - public MiddlewareFilterAttribute(System.Type configurationType) => throw null; - public int Order { get => throw null; set => throw null; } - } - - public class ModelBinderAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider - { - public System.Type BinderType { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set => throw null; } - public ModelBinderAttribute() => throw null; - public ModelBinderAttribute(System.Type binderType) => throw null; - public string Name { get => throw null; set => throw null; } - } - - public class ModelMetadataTypeAttribute : System.Attribute - { - public System.Type MetadataType { get => throw null; } - public ModelMetadataTypeAttribute(System.Type type) => throw null; - } - - public class MvcOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - public bool AllowEmptyInputInBodyModelBinding { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary CacheProfiles { get => throw null; } - public System.Collections.Generic.IList Conventions { get => throw null; } - public bool EnableActionInvokers { get => throw null; set => throw null; } - public bool EnableEndpointRouting { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Filters.FilterCollection Filters { get => throw null; } - public Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings FormatterMappings { get => throw null; } - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection InputFormatters { get => throw null; } - public int MaxIAsyncEnumerableBufferLimit { get => throw null; set => throw null; } - public int MaxModelBindingCollectionSize { get => throw null; set => throw null; } - public int MaxModelBindingRecursionDepth { get => throw null; set => throw null; } - public int MaxModelValidationErrors { get => throw null; set => throw null; } - public int? MaxValidationDepth { get => throw null; set => throw null; } - public System.Collections.Generic.IList ModelBinderProviders { get => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider ModelBindingMessageProvider { get => throw null; } - public System.Collections.Generic.IList ModelMetadataDetailsProviders { get => throw null; } - public System.Collections.Generic.IList ModelValidatorProviders { get => throw null; } - public MvcOptions() => throw null; - public Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection OutputFormatters { get => throw null; } - public bool RequireHttpsPermanent { get => throw null; set => throw null; } - public bool RespectBrowserAcceptHeader { get => throw null; set => throw null; } - public bool ReturnHttpNotAcceptable { get => throw null; set => throw null; } - public int? SslPort { get => throw null; set => throw null; } - public bool SuppressAsyncSuffixInActionNames { get => throw null; set => throw null; } - public bool SuppressImplicitRequiredAttributeForNonNullableReferenceTypes { get => throw null; set => throw null; } - public bool SuppressInputFormatterBuffering { get => throw null; set => throw null; } - public bool SuppressOutputFormatterBuffering { get => throw null; set => throw null; } - public bool ValidateComplexTypesIfChildValidationFails { get => throw null; set => throw null; } - public System.Collections.Generic.IList ValueProviderFactories { get => throw null; } - } - - public class NoContentResult : Microsoft.AspNetCore.Mvc.StatusCodeResult - { - public NoContentResult() : base(default(int)) => throw null; - } - - public class NonActionAttribute : System.Attribute - { - public NonActionAttribute() => throw null; - } - - public class NonControllerAttribute : System.Attribute - { - public NonControllerAttribute() => throw null; - } - - public class NonViewComponentAttribute : System.Attribute - { - public NonViewComponentAttribute() => throw null; - } - - public class NotFoundObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult - { - public NotFoundObjectResult(object value) : base(default(object)) => throw null; - } - - public class NotFoundResult : Microsoft.AspNetCore.Mvc.StatusCodeResult - { - public NotFoundResult() : base(default(int)) => throw null; - } - - public class ObjectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult - { - public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection ContentTypes { get => throw null; set => throw null; } - public System.Type DeclaredType { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection Formatters { get => throw null; set => throw null; } - public ObjectResult(object value) => throw null; - public virtual void OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public int? StatusCode { get => throw null; set => throw null; } - public object Value { get => throw null; set => throw null; } - } - - public class OkObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult - { - public OkObjectResult(object value) : base(default(object)) => throw null; - } - - public class OkResult : Microsoft.AspNetCore.Mvc.StatusCodeResult - { - public OkResult() : base(default(int)) => throw null; - } - - public class PhysicalFileResult : Microsoft.AspNetCore.Mvc.FileResult - { - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public string FileName { get => throw null; set => throw null; } - public PhysicalFileResult(string fileName, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) : base(default(string)) => throw null; - public PhysicalFileResult(string fileName, string contentType) : base(default(string)) => throw null; - } - - public class ProducesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter - { - public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection ContentTypes { get => throw null; set => throw null; } - public virtual void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) => throw null; - public virtual void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) => throw null; - public int Order { get => throw null; set => throw null; } - public ProducesAttribute(System.Type type) => throw null; - public ProducesAttribute(string contentType, params string[] additionalContentTypes) => throw null; - public void SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) => throw null; - public int StatusCode { get => throw null; } - public System.Type Type { get => throw null; set => throw null; } - } - - public class ProducesDefaultResponseTypeAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDefaultResponseMetadataProvider, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - public ProducesDefaultResponseTypeAttribute() => throw null; - public ProducesDefaultResponseTypeAttribute(System.Type type) => throw null; - void Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider.SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) => throw null; - public int StatusCode { get => throw null; } - public System.Type Type { get => throw null; } - } - - public class ProducesErrorResponseTypeAttribute : System.Attribute - { - public ProducesErrorResponseTypeAttribute(System.Type type) => throw null; - public System.Type Type { get => throw null; } - } - - public class ProducesResponseTypeAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - public ProducesResponseTypeAttribute(System.Type type, int statusCode) => throw null; - public ProducesResponseTypeAttribute(System.Type type, int statusCode, string contentType, params string[] additionalContentTypes) => throw null; - public ProducesResponseTypeAttribute(int statusCode) => throw null; - void Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider.SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) => throw null; - public int StatusCode { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } - } - - public class RedirectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult - { - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public bool Permanent { get => throw null; set => throw null; } - public bool PreserveMethod { get => throw null; set => throw null; } - public RedirectResult(string url) => throw null; - public RedirectResult(string url, bool permanent) => throw null; - public RedirectResult(string url, bool permanent, bool preserveMethod) => throw null; - public string Url { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } - } - - public class RedirectToActionResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult - { - public string ActionName { get => throw null; set => throw null; } - public string ControllerName { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public string Fragment { get => throw null; set => throw null; } - public bool Permanent { get => throw null; set => throw null; } - public bool PreserveMethod { get => throw null; set => throw null; } - public RedirectToActionResult(string actionName, string controllerName, object routeValues) => throw null; - public RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent) => throw null; - public RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent, bool preserveMethod) => throw null; - public RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent, bool preserveMethod, string fragment) => throw null; - public RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent, string fragment) => throw null; - public RedirectToActionResult(string actionName, string controllerName, object routeValues, string fragment) => throw null; - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } - } - - public class RedirectToPageResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult - { - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public string Fragment { get => throw null; set => throw null; } - public string Host { get => throw null; set => throw null; } - public string PageHandler { get => throw null; set => throw null; } - public string PageName { get => throw null; set => throw null; } - public bool Permanent { get => throw null; set => throw null; } - public bool PreserveMethod { get => throw null; set => throw null; } - public string Protocol { get => throw null; set => throw null; } - public RedirectToPageResult(string pageName) => throw null; - public RedirectToPageResult(string pageName, object routeValues) => throw null; - public RedirectToPageResult(string pageName, string pageHandler) => throw null; - public RedirectToPageResult(string pageName, string pageHandler, object routeValues) => throw null; - public RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent) => throw null; - public RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent, bool preserveMethod) => throw null; - public RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent, bool preserveMethod, string fragment) => throw null; - public RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent, string fragment) => throw null; - public RedirectToPageResult(string pageName, string pageHandler, object routeValues, string fragment) => throw null; - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } - } - - public class RedirectToRouteResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult - { - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public string Fragment { get => throw null; set => throw null; } - public bool Permanent { get => throw null; set => throw null; } - public bool PreserveMethod { get => throw null; set => throw null; } - public RedirectToRouteResult(object routeValues) => throw null; - public RedirectToRouteResult(string routeName, object routeValues) => throw null; - public RedirectToRouteResult(string routeName, object routeValues, bool permanent) => throw null; - public RedirectToRouteResult(string routeName, object routeValues, bool permanent, bool preserveMethod) => throw null; - public RedirectToRouteResult(string routeName, object routeValues, bool permanent, bool preserveMethod, string fragment) => throw null; - public RedirectToRouteResult(string routeName, object routeValues, bool permanent, string fragment) => throw null; - public RedirectToRouteResult(string routeName, object routeValues, string fragment) => throw null; - public string RouteName { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } - } - - public class RequestFormLimitsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - public bool BufferBody { get => throw null; set => throw null; } - public System.Int64 BufferBodyLengthLimit { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; - public bool IsReusable { get => throw null; } - public int KeyLengthLimit { get => throw null; set => throw null; } - public int MemoryBufferThreshold { get => throw null; set => throw null; } - public System.Int64 MultipartBodyLengthLimit { get => throw null; set => throw null; } - public int MultipartBoundaryLengthLimit { get => throw null; set => throw null; } - public int MultipartHeadersCountLimit { get => throw null; set => throw null; } - public int MultipartHeadersLengthLimit { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - public RequestFormLimitsAttribute() => throw null; - public int ValueCountLimit { get => throw null; set => throw null; } - public int ValueLengthLimit { get => throw null; set => throw null; } - } - - public class RequestSizeLimitAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IRequestSizeLimitMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; - public bool IsReusable { get => throw null; } - System.Int64? Microsoft.AspNetCore.Http.Metadata.IRequestSizeLimitMetadata.MaxRequestBodySize { get => throw null; } - public int Order { get => throw null; set => throw null; } - public RequestSizeLimitAttribute(System.Int64 bytes) => throw null; - } - - public class RequireHttpsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - protected virtual void HandleNonHttpsRequest(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext filterContext) => throw null; - public virtual void OnAuthorization(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext filterContext) => throw null; - public int Order { get => throw null; set => throw null; } - public bool Permanent { get => throw null; set => throw null; } - public RequireHttpsAttribute() => throw null; - } - - public class ResponseCacheAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - public string CacheProfileName { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; - public int Duration { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.CacheProfile GetCacheProfile(Microsoft.AspNetCore.Mvc.MvcOptions options) => throw null; - public bool IsReusable { get => throw null; } - public Microsoft.AspNetCore.Mvc.ResponseCacheLocation Location { get => throw null; set => throw null; } - public bool NoStore { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - public ResponseCacheAttribute() => throw null; - public string VaryByHeader { get => throw null; set => throw null; } - public string[] VaryByQueryKeys { get => throw null; set => throw null; } - } - - public enum ResponseCacheLocation : int - { - Any = 0, - Client = 1, - None = 2, - } - - public class RouteAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider - { - public string Name { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - int? Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Order { get => throw null; } - public RouteAttribute(string template) => throw null; - public string Template { get => throw null; } - } - - public class SerializableError : System.Collections.Generic.Dictionary - { - public SerializableError() => throw null; - public SerializableError(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; - } - - public class ServiceFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; - public bool IsReusable { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - public ServiceFilterAttribute(System.Type type) => throw null; - public System.Type ServiceType { get => throw null; } - } - - public class SignInResult : Microsoft.AspNetCore.Mvc.ActionResult - { - public string AuthenticationScheme { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } - public SignInResult(System.Security.Claims.ClaimsPrincipal principal) => throw null; - public SignInResult(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public SignInResult(string authenticationScheme, System.Security.Claims.ClaimsPrincipal principal) => throw null; - public SignInResult(string authenticationScheme, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - } - - public class SignOutResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Http.IResult - { - public System.Collections.Generic.IList AuthenticationSchemes { get => throw null; set => throw null; } - System.Threading.Tasks.Task Microsoft.AspNetCore.Http.IResult.ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set => throw null; } - public SignOutResult() => throw null; - public SignOutResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public SignOutResult(System.Collections.Generic.IList authenticationSchemes) => throw null; - public SignOutResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public SignOutResult(string authenticationScheme) => throw null; - public SignOutResult(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - } - - public class StatusCodeResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult - { - public override void ExecuteResult(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public int StatusCode { get => throw null; } - int? Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult.StatusCode { get => throw null; } - public StatusCodeResult(int statusCode) => throw null; - } - - public class TypeFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - public object[] Arguments { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; - public System.Type ImplementationType { get => throw null; } - public bool IsReusable { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - public TypeFilterAttribute(System.Type type) => throw null; - } - - public class UnauthorizedObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult - { - public UnauthorizedObjectResult(object value) : base(default(object)) => throw null; - } - - public class UnauthorizedResult : Microsoft.AspNetCore.Mvc.StatusCodeResult - { - public UnauthorizedResult() : base(default(int)) => throw null; - } - - public class UnprocessableEntityObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult - { - public UnprocessableEntityObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(object)) => throw null; - public UnprocessableEntityObjectResult(object error) : base(default(object)) => throw null; - } - - public class UnprocessableEntityResult : Microsoft.AspNetCore.Mvc.StatusCodeResult - { - public UnprocessableEntityResult() : base(default(int)) => throw null; - } - - public class UnsupportedMediaTypeResult : Microsoft.AspNetCore.Mvc.StatusCodeResult - { - public UnsupportedMediaTypeResult() : base(default(int)) => throw null; - } - - public static class UrlHelperExtensions - { - public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper) => throw null; - public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action) => throw null; - public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, object values) => throw null; - public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller) => throw null; - public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values) => throw null; - public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values, string protocol) => throw null; - public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values, string protocol, string host) => throw null; - public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values, string protocol, string host, string fragment) => throw null; - public static string ActionLink(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action = default(string), string controller = default(string), object values = default(object), string protocol = default(string), string host = default(string), string fragment = default(string)) => throw null; - public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName) => throw null; - public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, object values) => throw null; - public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler) => throw null; - public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values) => throw null; - public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values, string protocol) => throw null; - public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values, string protocol, string host) => throw null; - public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values, string protocol, string host, string fragment) => throw null; - public static string PageLink(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName = default(string), string pageHandler = default(string), object values = default(object), string protocol = default(string), string host = default(string), string fragment = default(string)) => throw null; - public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, object values) => throw null; - public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName) => throw null; - public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values) => throw null; - public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values, string protocol) => throw null; - public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values, string protocol, string host) => throw null; - public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values, string protocol, string host, string fragment) => throw null; - } - - public class ValidationProblemDetails : Microsoft.AspNetCore.Http.HttpValidationProblemDetails - { - public System.Collections.Generic.IDictionary Errors { get => throw null; } - public ValidationProblemDetails() => throw null; - public ValidationProblemDetails(System.Collections.Generic.IDictionary errors) => throw null; - public ValidationProblemDetails(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; - } - - public class VirtualFileResult : Microsoft.AspNetCore.Mvc.FileResult - { - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public string FileName { get => throw null; set => throw null; } - public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set => throw null; } - public VirtualFileResult(string fileName, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) : base(default(string)) => throw null; - public VirtualFileResult(string fileName, string contentType) : base(default(string)) => throw null; - } - - namespace ActionConstraints - { - public abstract class ActionMethodSelectorAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata - { - public bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) => throw null; - protected ActionMethodSelectorAttribute() => throw null; - public abstract bool IsValidForRequest(Microsoft.AspNetCore.Routing.RouteContext routeContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action); - public int Order { get => throw null; set => throw null; } - } - - public class HttpMethodActionConstraint : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata - { - public virtual bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) => throw null; - public HttpMethodActionConstraint(System.Collections.Generic.IEnumerable httpMethods) => throw null; - public static int HttpMethodConstraintOrder; - public System.Collections.Generic.IEnumerable HttpMethods { get => throw null; } - public int Order { get => throw null; } - } - - internal interface IConsumesActionConstraint : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata - { - } - - } - namespace ApiExplorer - { - public class ApiConventionNameMatchAttribute : System.Attribute - { - public ApiConventionNameMatchAttribute(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior matchBehavior) => throw null; - public Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior MatchBehavior { get => throw null; } - } - - public enum ApiConventionNameMatchBehavior : int - { - Any = 0, - Exact = 1, - Prefix = 2, - Suffix = 3, - } - - public class ApiConventionResult - { - public ApiConventionResult(System.Collections.Generic.IReadOnlyList responseMetadataProviders) => throw null; - public System.Collections.Generic.IReadOnlyList ResponseMetadataProviders { get => throw null; } - } - - public class ApiConventionTypeMatchAttribute : System.Attribute - { - public ApiConventionTypeMatchAttribute(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior matchBehavior) => throw null; - public Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior MatchBehavior { get => throw null; } - } - - public enum ApiConventionTypeMatchBehavior : int - { - Any = 0, - AssignableFrom = 1, - } - - public interface IApiDefaultResponseMetadataProvider : Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - } - - public interface IApiDescriptionGroupNameProvider - { - string GroupName { get; } - } - - public interface IApiDescriptionVisibilityProvider - { - bool IgnoreApi { get; } - } - - public interface IApiRequestFormatMetadataProvider - { - System.Collections.Generic.IReadOnlyList GetSupportedContentTypes(string contentType, System.Type objectType); - } - - public interface IApiRequestMetadataProvider : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - void SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes); - } - - public interface IApiResponseMetadataProvider : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - void SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes); - int StatusCode { get; } - System.Type Type { get; } - } - - public interface IApiResponseTypeMetadataProvider - { - System.Collections.Generic.IReadOnlyList GetSupportedContentTypes(string contentType, System.Type objectType); - } - - } - namespace ApplicationModels - { - public class ActionModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel - { - public System.Reflection.MethodInfo ActionMethod { get => throw null; } - public ActionModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel other) => throw null; - public ActionModel(System.Reflection.MethodInfo actionMethod, System.Collections.Generic.IReadOnlyList attributes) => throw null; - public string ActionName { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get => throw null; set => throw null; } - public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } - public Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel Controller { get => throw null; set => throw null; } - public string DisplayName { get => throw null; } - public System.Collections.Generic.IList Filters { get => throw null; } - System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } - string Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.Name { get => throw null; } - public System.Collections.Generic.IList Parameters { get => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; } - public Microsoft.AspNetCore.Routing.IOutboundParameterTransformer RouteParameterTransformer { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary RouteValues { get => throw null; } - public System.Collections.Generic.IList Selectors { get => throw null; } - } - - public class ApiConventionApplicationModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention - { - public ApiConventionApplicationModelConvention(Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute defaultErrorResponseType) => throw null; - public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - public Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute DefaultErrorResponseType { get => throw null; } - protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - } - - public class ApiExplorerModel - { - public ApiExplorerModel() => throw null; - public ApiExplorerModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel other) => throw null; - public string GroupName { get => throw null; set => throw null; } - public bool? IsVisible { get => throw null; set => throw null; } - } - - public class ApiVisibilityConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention - { - public ApiVisibilityConvention() => throw null; - public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - } - - public class ApplicationModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel - { - public Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get => throw null; set => throw null; } - public ApplicationModel() => throw null; - public System.Collections.Generic.IList Controllers { get => throw null; } - public System.Collections.Generic.IList Filters { get => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; } - } - - public class ApplicationModelProviderContext - { - public ApplicationModelProviderContext(System.Collections.Generic.IEnumerable controllerTypes) => throw null; - public System.Collections.Generic.IEnumerable ControllerTypes { get => throw null; } - public Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel Result { get => throw null; } - } - - public class AttributeRouteModel - { - public Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider Attribute { get => throw null; } - public AttributeRouteModel() => throw null; - public AttributeRouteModel(Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel other) => throw null; - public AttributeRouteModel(Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider templateProvider) => throw null; - public static Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel CombineAttributeRouteModel(Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel left, Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel right) => throw null; - public static string CombineTemplates(string prefix, string template) => throw null; - public bool IsAbsoluteTemplate { get => throw null; } - public static bool IsOverridePattern(string template) => throw null; - public string Name { get => throw null; set => throw null; } - public int? Order { get => throw null; set => throw null; } - public static string ReplaceTokens(string template, System.Collections.Generic.IDictionary values) => throw null; - public static string ReplaceTokens(string template, System.Collections.Generic.IDictionary values, Microsoft.AspNetCore.Routing.IOutboundParameterTransformer routeTokenTransformer) => throw null; - public bool SuppressLinkGeneration { get => throw null; set => throw null; } - public bool SuppressPathMatching { get => throw null; set => throw null; } - public string Template { get => throw null; set => throw null; } - } - - public class ClientErrorResultFilterConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention - { - public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - public ClientErrorResultFilterConvention() => throw null; - protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - } - - public class ConsumesConstraintForFormFileParameterConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention - { - public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - public ConsumesConstraintForFormFileParameterConvention() => throw null; - protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - } - - public class ControllerModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel - { - public System.Collections.Generic.IList Actions { get => throw null; } - public Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel Application { get => throw null; set => throw null; } - public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } - public ControllerModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel other) => throw null; - public ControllerModel(System.Reflection.TypeInfo controllerType, System.Collections.Generic.IReadOnlyList attributes) => throw null; - public string ControllerName { get => throw null; set => throw null; } - public System.Collections.Generic.IList ControllerProperties { get => throw null; } - public System.Reflection.TypeInfo ControllerType { get => throw null; } - public string DisplayName { get => throw null; } - public System.Collections.Generic.IList Filters { get => throw null; } - System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } - string Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.Name { get => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; } - public System.Collections.Generic.IDictionary RouteValues { get => throw null; } - public System.Collections.Generic.IList Selectors { get => throw null; } - } - - public interface IActionModelConvention - { - void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action); - } - - public interface IApiExplorerModel - { - Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get; set; } - } - - public interface IApplicationModelConvention - { - void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel application); - } - - public interface IApplicationModelProvider - { - void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context); - void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context); - int Order { get; } - } - - public interface IBindingModel - { - Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get; set; } - } - - public interface ICommonModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel - { - System.Collections.Generic.IReadOnlyList Attributes { get; } - System.Reflection.MemberInfo MemberInfo { get; } - string Name { get; } - } - - public interface IControllerModelConvention - { - void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel controller); - } - - public interface IFilterModel - { - System.Collections.Generic.IList Filters { get; } - } - - public interface IParameterModelBaseConvention - { - void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase parameter); - } - - public interface IParameterModelConvention - { - void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel parameter); - } - - public interface IPropertyModel - { - System.Collections.Generic.IDictionary Properties { get; } - } - - public class InferParameterBindingInfoConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention - { - public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - public InferParameterBindingInfoConvention(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) => throw null; - public InferParameterBindingInfoConvention(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.Extensions.DependencyInjection.IServiceProviderIsService serviceProviderIsService) => throw null; - protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - } - - public class InvalidModelStateFilterConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention - { - public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - public InvalidModelStateFilterConvention() => throw null; - protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - } - - public class ParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel - { - public Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel Action { get => throw null; set => throw null; } - public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } - public string DisplayName { get => throw null; } - System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } - public System.Reflection.ParameterInfo ParameterInfo { get => throw null; } - public ParameterModel(System.Reflection.ParameterInfo parameterInfo, System.Collections.Generic.IReadOnlyList attributes) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; - public ParameterModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel other) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; - public string ParameterName { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; } - } - - public abstract class ParameterModelBase : Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel - { - public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - protected ParameterModelBase(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase other) => throw null; - protected ParameterModelBase(System.Type parameterType, System.Collections.Generic.IReadOnlyList attributes) => throw null; - public System.Type ParameterType { get => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; } - } - - public class PropertyModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel - { - public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } - public Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel Controller { get => throw null; set => throw null; } - System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; } - public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } - public PropertyModel(System.Reflection.PropertyInfo propertyInfo, System.Collections.Generic.IReadOnlyList attributes) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; - public PropertyModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel other) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; - public string PropertyName { get => throw null; set => throw null; } - } - - public class RouteTokenTransformerConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention - { - public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - public RouteTokenTransformerConvention(Microsoft.AspNetCore.Routing.IOutboundParameterTransformer parameterTransformer) => throw null; - protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; - } - - public class SelectorModel - { - public System.Collections.Generic.IList ActionConstraints { get => throw null; } - public Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel AttributeRouteModel { get => throw null; set => throw null; } - public System.Collections.Generic.IList EndpointMetadata { get => throw null; } - public SelectorModel() => throw null; - public SelectorModel(Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel other) => throw null; - } - - } - namespace ApplicationParts - { - public abstract class ApplicationPart - { - protected ApplicationPart() => throw null; - public abstract string Name { get; } - } - - public class ApplicationPartAttribute : System.Attribute - { - public ApplicationPartAttribute(string assemblyName) => throw null; - public string AssemblyName { get => throw null; } - } - - public abstract class ApplicationPartFactory - { - protected ApplicationPartFactory() => throw null; - public static Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory GetApplicationPartFactory(System.Reflection.Assembly assembly) => throw null; - public abstract System.Collections.Generic.IEnumerable GetApplicationParts(System.Reflection.Assembly assembly); - } - - public class ApplicationPartManager - { - public ApplicationPartManager() => throw null; - public System.Collections.Generic.IList ApplicationParts { get => throw null; } - public System.Collections.Generic.IList FeatureProviders { get => throw null; } - public void PopulateFeature(TFeature feature) => throw null; - } - - public class AssemblyPart : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationPartTypeProvider - { - public System.Reflection.Assembly Assembly { get => throw null; } - public AssemblyPart(System.Reflection.Assembly assembly) => throw null; - public override string Name { get => throw null; } - public System.Collections.Generic.IEnumerable Types { get => throw null; } - } - - public class DefaultApplicationPartFactory : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory - { - public DefaultApplicationPartFactory() => throw null; - public override System.Collections.Generic.IEnumerable GetApplicationParts(System.Reflection.Assembly assembly) => throw null; - public static System.Collections.Generic.IEnumerable GetDefaultApplicationParts(System.Reflection.Assembly assembly) => throw null; - public static Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory Instance { get => throw null; } - } - - public interface IApplicationFeatureProvider - { - } - - public interface IApplicationFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider - { - void PopulateFeature(System.Collections.Generic.IEnumerable parts, TFeature feature); - } - - public interface IApplicationPartTypeProvider - { - System.Collections.Generic.IEnumerable Types { get; } - } - - public interface ICompilationReferencesProvider - { - System.Collections.Generic.IEnumerable GetReferencePaths(); - } - - public class NullApplicationPartFactory : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory - { - public override System.Collections.Generic.IEnumerable GetApplicationParts(System.Reflection.Assembly assembly) => throw null; - public NullApplicationPartFactory() => throw null; - } - - public class ProvideApplicationPartFactoryAttribute : System.Attribute - { - public System.Type GetFactoryType() => throw null; - public ProvideApplicationPartFactoryAttribute(System.Type factoryType) => throw null; - public ProvideApplicationPartFactoryAttribute(string factoryTypeName) => throw null; - } - - public class RelatedAssemblyAttribute : System.Attribute - { - public string AssemblyFileName { get => throw null; } - public static System.Collections.Generic.IReadOnlyList GetRelatedAssemblies(System.Reflection.Assembly assembly, bool throwOnError) => throw null; - public RelatedAssemblyAttribute(string assemblyFileName) => throw null; - } - - } - namespace Authorization - { - public class AllowAnonymousFilter : Microsoft.AspNetCore.Mvc.Authorization.IAllowAnonymousFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - public AllowAnonymousFilter() => throw null; - } - - public class AuthorizeFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - public System.Collections.Generic.IEnumerable AuthorizeData { get => throw null; } - public AuthorizeFilter() => throw null; - public AuthorizeFilter(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; - public AuthorizeFilter(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, System.Collections.Generic.IEnumerable authorizeData) => throw null; - public AuthorizeFilter(System.Collections.Generic.IEnumerable authorizeData) => throw null; - public AuthorizeFilter(string policy) => throw null; - Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Microsoft.AspNetCore.Mvc.Filters.IFilterFactory.CreateInstance(System.IServiceProvider serviceProvider) => throw null; - bool Microsoft.AspNetCore.Mvc.Filters.IFilterFactory.IsReusable { get => throw null; } - public virtual System.Threading.Tasks.Task OnAuthorizationAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) => throw null; - public Microsoft.AspNetCore.Authorization.AuthorizationPolicy Policy { get => throw null; } - public Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider PolicyProvider { get => throw null; } - } - - } - namespace Controllers - { - public class ControllerActionDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor - { - public virtual string ActionName { get => throw null; set => throw null; } - public ControllerActionDescriptor() => throw null; - public string ControllerName { get => throw null; set => throw null; } - public System.Reflection.TypeInfo ControllerTypeInfo { get => throw null; set => throw null; } - public override string DisplayName { get => throw null; set => throw null; } - public System.Reflection.MethodInfo MethodInfo { get => throw null; set => throw null; } - } - - public class ControllerActivatorProvider : Microsoft.AspNetCore.Mvc.Controllers.IControllerActivatorProvider - { - public ControllerActivatorProvider(Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator controllerActivator) => throw null; - public System.Func CreateActivator(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) => throw null; - public System.Func CreateAsyncReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) => throw null; - public System.Action CreateReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) => throw null; - } - - public class ControllerBoundPropertyDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor, Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor - { - public ControllerBoundPropertyDescriptor() => throw null; - public System.Reflection.PropertyInfo PropertyInfo { get => throw null; set => throw null; } - } - - public class ControllerFeature - { - public ControllerFeature() => throw null; - public System.Collections.Generic.IList Controllers { get => throw null; } - } - - public class ControllerFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider - { - public ControllerFeatureProvider() => throw null; - protected virtual bool IsController(System.Reflection.TypeInfo typeInfo) => throw null; - public void PopulateFeature(System.Collections.Generic.IEnumerable parts, Microsoft.AspNetCore.Mvc.Controllers.ControllerFeature feature) => throw null; - } - - public class ControllerParameterDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor, Microsoft.AspNetCore.Mvc.Infrastructure.IParameterInfoParameterDescriptor - { - public ControllerParameterDescriptor() => throw null; - public System.Reflection.ParameterInfo ParameterInfo { get => throw null; set => throw null; } - } - - public interface IControllerActivator - { - object Create(Microsoft.AspNetCore.Mvc.ControllerContext context); - void Release(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller); - System.Threading.Tasks.ValueTask ReleaseAsync(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) => throw null; - } - - public interface IControllerActivatorProvider - { - System.Func CreateActivator(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor); - System.Func CreateAsyncReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) => throw null; - System.Action CreateReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor); - } - - public interface IControllerFactory - { - object CreateController(Microsoft.AspNetCore.Mvc.ControllerContext context); - void ReleaseController(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller); - System.Threading.Tasks.ValueTask ReleaseControllerAsync(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) => throw null; - } - - public interface IControllerFactoryProvider - { - System.Func CreateAsyncControllerReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor) => throw null; - System.Func CreateControllerFactory(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor); - System.Action CreateControllerReleaser(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor descriptor); - } - - internal interface IControllerPropertyActivator - { - void Activate(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller); - System.Action GetActivatorDelegate(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor actionDescriptor); - } - - public class ServiceBasedControllerActivator : Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator - { - public object Create(Microsoft.AspNetCore.Mvc.ControllerContext actionContext) => throw null; - public virtual void Release(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller) => throw null; - public ServiceBasedControllerActivator() => throw null; - } - - } - namespace Core - { - namespace Infrastructure - { - public interface IAntiforgeryValidationFailedResult : Microsoft.AspNetCore.Mvc.IActionResult - { - } - - } - } namespace Diagnostics { - public class AfterActionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterActionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } - public AfterActionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterActionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) => throw null; + public static string EventName; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterActionFilterOnActionExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterActionFilterOnActionExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext ActionExecutedContext { get => throw null; } - public AfterActionFilterOnActionExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterActionFilterOnActionExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterActionFilterOnActionExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterActionFilterOnActionExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext ActionExecutingContext { get => throw null; } - public AfterActionFilterOnActionExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterActionFilterOnActionExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterActionFilterOnActionExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterActionFilterOnActionExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext ActionExecutedContext { get => throw null; } - public AfterActionFilterOnActionExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterActionFilterOnActionExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterActionResultEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterActionResultEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } - public AfterActionResultEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public AfterActionResultEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterAuthorizationFilterOnAuthorizationEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterAuthorizationFilterOnAuthorizationEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } - public AfterAuthorizationFilterOnAuthorizationEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; public Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext AuthorizationContext { get => throw null; } protected override int Count { get => throw null; } - public const string EventName = default; + public AfterAuthorizationFilterOnAuthorizationEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterControllerActionMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterControllerActionMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } - public AfterControllerActionMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, object controller, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; public System.Collections.Generic.IReadOnlyDictionary Arguments { get => throw null; } public object Controller { get => throw null; } protected override int Count { get => throw null; } - public const string EventName = default; - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public AfterControllerActionMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, object controller, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterExceptionFilterOnExceptionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterExceptionFilterOnExceptionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } - public AfterExceptionFilterOnExceptionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterExceptionFilterOnExceptionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.ExceptionContext ExceptionContext { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterResourceFilterOnResourceExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterResourceFilterOnResourceExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public AfterResourceFilterOnResourceExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext ResourceExecutedContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterResourceFilterOnResourceExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterResourceFilterOnResourceExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public AfterResourceFilterOnResourceExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterResourceFilterOnResourceExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterResourceFilterOnResourceExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public AfterResourceFilterOnResourceExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext ResourceExecutedContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterResultFilterOnResultExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterResultFilterOnResultExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public AfterResultFilterOnResultExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext ResultExecutedContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterResultFilterOnResultExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterResultFilterOnResultExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public AfterResultFilterOnResultExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext ResultExecutingContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterResultFilterOnResultExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterResultFilterOnResultExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public AfterResultFilterOnResultExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext ResultExecutedContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeActionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeActionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } - public BeforeActionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforeActionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) => throw null; + public static string EventName; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeActionFilterOnActionExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeActionFilterOnActionExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext ActionExecutedContext { get => throw null; } + protected override int Count { get => throw null; } public BeforeActionFilterOnActionExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeActionFilterOnActionExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeActionFilterOnActionExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext ActionExecutingContext { get => throw null; } + protected override int Count { get => throw null; } public BeforeActionFilterOnActionExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeActionFilterOnActionExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeActionFilterOnActionExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext ActionExecutingContext { get => throw null; } - public BeforeActionFilterOnActionExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforeActionFilterOnActionExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeActionResultEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeActionResultEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } - public BeforeActionResultEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public BeforeActionResultEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeAuthorizationFilterOnAuthorizationEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeAuthorizationFilterOnAuthorizationEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext AuthorizationContext { get => throw null; } - public BeforeAuthorizationFilterOnAuthorizationEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforeAuthorizationFilterOnAuthorizationEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeControllerActionMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeControllerActionMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public System.Collections.Generic.IReadOnlyDictionary ActionArguments { get => throw null; } public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } - public BeforeControllerActionMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary actionArguments, object controller) => throw null; public object Controller { get => throw null; } - protected override int Count { get => throw null; } - public const string EventName = default; - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + protected override sealed int Count { get => throw null; } + public BeforeControllerActionMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary actionArguments, object controller) => throw null; + public static string EventName; + protected override sealed System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeExceptionFilterOnException : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeExceptionFilterOnException : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } - public BeforeExceptionFilterOnException(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforeExceptionFilterOnException(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.ExceptionContext ExceptionContext { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeResourceFilterOnResourceExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeResourceFilterOnResourceExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public BeforeResourceFilterOnResourceExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext ResourceExecutedContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeResourceFilterOnResourceExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeResourceFilterOnResourceExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public BeforeResourceFilterOnResourceExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeResourceFilterOnResourceExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeResourceFilterOnResourceExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public BeforeResourceFilterOnResourceExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeResultFilterOnResultExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeResultFilterOnResultExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public BeforeResultFilterOnResultExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext ResultExecutedContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeResultFilterOnResultExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeResultFilterOnResultExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public BeforeResultFilterOnResultExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext ResultExecutingContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeResultFilterOnResultExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeResultFilterOnResultExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } - public BeforeResultFilterOnResultExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforeResultFilterOnResultExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext ResultExecutingContext { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public abstract class EventData : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList>, System.Collections.IEnumerable + public abstract class EventData : System.Collections.Generic.IReadOnlyList>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection> { + protected abstract int Count { get; } + int System.Collections.Generic.IReadOnlyCollection>.Count { get => throw null; } + protected EventData() => throw null; public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - // Stub generator skipped constructor public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - - - protected abstract int Count { get; } - int System.Collections.Generic.IReadOnlyCollection>.Count { get => throw null; } - protected EventData() => throw null; - protected const string EventNamespace = default; + protected static string EventNamespace; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - protected abstract System.Collections.Generic.KeyValuePair this[int index] { get; } System.Collections.Generic.KeyValuePair System.Collections.Generic.IReadOnlyList>.this[int index] { get => throw null; } + protected abstract System.Collections.Generic.KeyValuePair this[int index] { get; } } - + } + public class DisableRequestSizeLimitAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Http.Metadata.IRequestSizeLimitMetadata + { + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public DisableRequestSizeLimitAttribute() => throw null; + public bool IsReusable { get => throw null; } + long? Microsoft.AspNetCore.Http.Metadata.IRequestSizeLimitMetadata.MaxRequestBodySize { get => throw null; } + public int Order { get => throw null; set { } } + } + public class EmptyResult : Microsoft.AspNetCore.Mvc.ActionResult + { + public EmptyResult() => throw null; + public override void ExecuteResult(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + } + public class FileContentResult : Microsoft.AspNetCore.Mvc.FileResult + { + public FileContentResult(byte[] fileContents, string contentType) : base(default(string)) => throw null; + public FileContentResult(byte[] fileContents, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) : base(default(string)) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public byte[] FileContents { get => throw null; set { } } + } + public abstract class FileResult : Microsoft.AspNetCore.Mvc.ActionResult + { + public string ContentType { get => throw null; } + protected FileResult(string contentType) => throw null; + public bool EnableRangeProcessing { get => throw null; set { } } + public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; set { } } + public string FileDownloadName { get => throw null; set { } } + public System.DateTimeOffset? LastModified { get => throw null; set { } } + } + public class FileStreamResult : Microsoft.AspNetCore.Mvc.FileResult + { + public FileStreamResult(System.IO.Stream fileStream, string contentType) : base(default(string)) => throw null; + public FileStreamResult(System.IO.Stream fileStream, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) : base(default(string)) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public System.IO.Stream FileStream { get => throw null; set { } } } namespace Filters { - public abstract class ActionFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter + public abstract class ActionFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter { protected ActionFilterAttribute() => throw null; public virtual void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) => throw null; @@ -2013,30 +1284,27 @@ namespace Microsoft public virtual void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) => throw null; public virtual void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) => throw null; public virtual System.Threading.Tasks.Task OnResultExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate next) => throw null; - public int Order { get => throw null; set => throw null; } + public int Order { get => throw null; set { } } } - - public abstract class ExceptionFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter, Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + public abstract class ExceptionFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter { protected ExceptionFilterAttribute() => throw null; public virtual void OnException(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext context) => throw null; public virtual System.Threading.Tasks.Task OnExceptionAsync(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext context) => throw null; - public int Order { get => throw null; set => throw null; } + public int Order { get => throw null; set { } } } - public class FilterCollection : System.Collections.ObjectModel.Collection { - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Add(System.Type filterType) => throw null; - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Add(System.Type filterType, int order) => throw null; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Add() where TFilterType : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => throw null; + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Add(System.Type filterType) => throw null; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Add(int order) where TFilterType : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => throw null; - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata AddService(System.Type filterType) => throw null; - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata AddService(System.Type filterType, int order) => throw null; + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Add(System.Type filterType, int order) => throw null; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata AddService() where TFilterType : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => throw null; + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata AddService(System.Type filterType) => throw null; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata AddService(int order) where TFilterType : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => throw null; + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata AddService(System.Type filterType, int order) => throw null; public FilterCollection() => throw null; } - public static class FilterScope { public static int Action; @@ -2045,16 +1313,32 @@ namespace Microsoft public static int Global; public static int Last; } - - public abstract class ResultFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter + public abstract class ResultFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter { + protected ResultFilterAttribute() => throw null; public virtual void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) => throw null; public virtual void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) => throw null; public virtual System.Threading.Tasks.Task OnResultExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate next) => throw null; - public int Order { get => throw null; set => throw null; } - protected ResultFilterAttribute() => throw null; + public int Order { get => throw null; set { } } } - + } + public class ForbidResult : Microsoft.AspNetCore.Mvc.ActionResult + { + public System.Collections.Generic.IList AuthenticationSchemes { get => throw null; set { } } + public ForbidResult() => throw null; + public ForbidResult(string authenticationScheme) => throw null; + public ForbidResult(System.Collections.Generic.IList authenticationSchemes) => throw null; + public ForbidResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public ForbidResult(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public ForbidResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } + } + public class FormatFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + { + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public FormatFilterAttribute() => throw null; + public bool IsReusable { get => throw null; } } namespace Formatters { @@ -2067,195 +1351,242 @@ namespace Microsoft public void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) => throw null; public void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) => throw null; } - public class FormatterMappings { public bool ClearMediaTypeMappingForFormat(string format) => throw null; public FormatterMappings() => throw null; public string GetMediaTypeMappingForFormat(string format) => throw null; - public void SetMediaTypeMappingForFormat(string format, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; public void SetMediaTypeMappingForFormat(string format, string contentType) => throw null; + public void SetMediaTypeMappingForFormat(string format, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; } - public class HttpNoContentOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter { public bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) => throw null; public HttpNoContentOutputFormatter() => throw null; - public bool TreatNullValueAsNoContent { get => throw null; set => throw null; } + public bool TreatNullValueAsNoContent { get => throw null; set { } } public System.Threading.Tasks.Task WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; } - - internal interface IFormatFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - string GetFormat(Microsoft.AspNetCore.Mvc.ActionContext context); - } - - public abstract class InputFormatter : Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestFormatMetadataProvider, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter + public abstract class InputFormatter : Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestFormatMetadataProvider { public virtual bool CanRead(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) => throw null; protected virtual bool CanReadType(System.Type type) => throw null; + protected InputFormatter() => throw null; protected virtual object GetDefaultValueForType(System.Type modelType) => throw null; public virtual System.Collections.Generic.IReadOnlyList GetSupportedContentTypes(string contentType, System.Type objectType) => throw null; - protected InputFormatter() => throw null; public virtual System.Threading.Tasks.Task ReadAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) => throw null; public abstract System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context); public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection SupportedMediaTypes { get => throw null; } } - public struct MediaType { public Microsoft.Extensions.Primitives.StringSegment Charset { get => throw null; } public static Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality CreateMediaTypeSegmentWithQuality(string mediaType, int start) => throw null; + public MediaType(string mediaType) => throw null; + public MediaType(Microsoft.Extensions.Primitives.StringSegment mediaType) => throw null; + public MediaType(string mediaType, int offset, int? length) => throw null; public System.Text.Encoding Encoding { get => throw null; } - public static System.Text.Encoding GetEncoding(Microsoft.Extensions.Primitives.StringSegment mediaType) => throw null; public static System.Text.Encoding GetEncoding(string mediaType) => throw null; - public Microsoft.Extensions.Primitives.StringSegment GetParameter(Microsoft.Extensions.Primitives.StringSegment parameterName) => throw null; + public static System.Text.Encoding GetEncoding(Microsoft.Extensions.Primitives.StringSegment mediaType) => throw null; public Microsoft.Extensions.Primitives.StringSegment GetParameter(string parameterName) => throw null; + public Microsoft.Extensions.Primitives.StringSegment GetParameter(Microsoft.Extensions.Primitives.StringSegment parameterName) => throw null; public bool HasWildcard { get => throw null; } public bool IsSubsetOf(Microsoft.AspNetCore.Mvc.Formatters.MediaType set) => throw null; public bool MatchesAllSubTypes { get => throw null; } public bool MatchesAllSubTypesWithoutSuffix { get => throw null; } public bool MatchesAllTypes { get => throw null; } - // Stub generator skipped constructor - public MediaType(Microsoft.Extensions.Primitives.StringSegment mediaType) => throw null; - public MediaType(string mediaType) => throw null; - public MediaType(string mediaType, int offset, int? length) => throw null; - public static string ReplaceEncoding(Microsoft.Extensions.Primitives.StringSegment mediaType, System.Text.Encoding encoding) => throw null; public static string ReplaceEncoding(string mediaType, System.Text.Encoding encoding) => throw null; + public static string ReplaceEncoding(Microsoft.Extensions.Primitives.StringSegment mediaType, System.Text.Encoding encoding) => throw null; public Microsoft.Extensions.Primitives.StringSegment SubType { get => throw null; } public Microsoft.Extensions.Primitives.StringSegment SubTypeSuffix { get => throw null; } public Microsoft.Extensions.Primitives.StringSegment SubTypeWithoutSuffix { get => throw null; } public Microsoft.Extensions.Primitives.StringSegment Type { get => throw null; } } - public class MediaTypeCollection : System.Collections.ObjectModel.Collection { public void Add(Microsoft.Net.Http.Headers.MediaTypeHeaderValue item) => throw null; - public void Insert(int index, Microsoft.Net.Http.Headers.MediaTypeHeaderValue item) => throw null; public MediaTypeCollection() => throw null; + public void Insert(int index, Microsoft.Net.Http.Headers.MediaTypeHeaderValue item) => throw null; public bool Remove(Microsoft.Net.Http.Headers.MediaTypeHeaderValue item) => throw null; } - public struct MediaTypeSegmentWithQuality { - public Microsoft.Extensions.Primitives.StringSegment MediaType { get => throw null; } - // Stub generator skipped constructor public MediaTypeSegmentWithQuality(Microsoft.Extensions.Primitives.StringSegment mediaType, double quality) => throw null; + public Microsoft.Extensions.Primitives.StringSegment MediaType { get => throw null; } public double Quality { get => throw null; } public override string ToString() => throw null; } - - public abstract class OutputFormatter : Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseTypeMetadataProvider, Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter + public abstract class OutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseTypeMetadataProvider { public virtual bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) => throw null; protected virtual bool CanWriteType(System.Type type) => throw null; - public virtual System.Collections.Generic.IReadOnlyList GetSupportedContentTypes(string contentType, System.Type objectType) => throw null; protected OutputFormatter() => throw null; + public virtual System.Collections.Generic.IReadOnlyList GetSupportedContentTypes(string contentType, System.Type objectType) => throw null; public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection SupportedMediaTypes { get => throw null; } public virtual System.Threading.Tasks.Task WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; public abstract System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context); public virtual void WriteResponseHeaders(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; } - public class StreamOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter { public bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) => throw null; public StreamOutputFormatter() => throw null; public System.Threading.Tasks.Task WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; } - public class StringOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter { public override bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) => throw null; public StringOutputFormatter() => throw null; public override System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding encoding) => throw null; } - public class SystemTextJsonInputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy { - Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy.ExceptionPolicy { get => throw null; } - public override System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) => throw null; - public System.Text.Json.JsonSerializerOptions SerializerOptions { get => throw null; } public SystemTextJsonInputFormatter(Microsoft.AspNetCore.Mvc.JsonOptions options, Microsoft.Extensions.Logging.ILogger logger) => throw null; + Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy.ExceptionPolicy { get => throw null; } + public override sealed System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) => throw null; + public System.Text.Json.JsonSerializerOptions SerializerOptions { get => throw null; } } - public class SystemTextJsonOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter { - public System.Text.Json.JsonSerializerOptions SerializerOptions { get => throw null; } public SystemTextJsonOutputFormatter(System.Text.Json.JsonSerializerOptions jsonSerializerOptions) => throw null; - public override System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) => throw null; + public System.Text.Json.JsonSerializerOptions SerializerOptions { get => throw null; } + public override sealed System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) => throw null; } - public abstract class TextInputFormatter : Microsoft.AspNetCore.Mvc.Formatters.InputFormatter { + protected TextInputFormatter() => throw null; public override System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) => throw null; public abstract System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding); protected System.Text.Encoding SelectCharacterEncoding(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) => throw null; public System.Collections.Generic.IList SupportedEncodings { get => throw null; } - protected TextInputFormatter() => throw null; protected static System.Text.Encoding UTF16EncodingLittleEndian; protected static System.Text.Encoding UTF8EncodingWithoutBOM; } - public abstract class TextOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter { + protected TextOutputFormatter() => throw null; public virtual System.Text.Encoding SelectCharacterEncoding(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; public System.Collections.Generic.IList SupportedEncodings { get => throw null; } - protected TextOutputFormatter() => throw null; public override System.Threading.Tasks.Task WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; - public override System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; + public override sealed System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; public abstract System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding); } - + } + public class FromBodyAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Http.Metadata.IFromBodyMetadata + { + bool Microsoft.AspNetCore.Http.Metadata.IFromBodyMetadata.AllowEmpty { get => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } + public FromBodyAttribute() => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior EmptyBodyBehavior { get => throw null; set { } } + } + public class FromFormAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Http.Metadata.IFromFormMetadata + { + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } + public FromFormAttribute() => throw null; + public string Name { get => throw null; set { } } + } + public class FromHeaderAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Http.Metadata.IFromHeaderMetadata + { + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } + public FromHeaderAttribute() => throw null; + public string Name { get => throw null; set { } } + } + public class FromQueryAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Http.Metadata.IFromQueryMetadata + { + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } + public FromQueryAttribute() => throw null; + public string Name { get => throw null; set { } } + } + public class FromRouteAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Http.Metadata.IFromRouteMetadata + { + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } + public FromRouteAttribute() => throw null; + public string Name { get => throw null; set { } } + } + public class FromServicesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Http.Metadata.IFromServiceMetadata + { + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } + public FromServicesAttribute() => throw null; + } + public class HttpDeleteAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute + { + public HttpDeleteAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpDeleteAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; + } + public class HttpGetAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute + { + public HttpGetAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpGetAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; + } + public class HttpHeadAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute + { + public HttpHeadAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpHeadAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; + } + public class HttpOptionsAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute + { + public HttpOptionsAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpOptionsAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; + } + public class HttpPatchAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute + { + public HttpPatchAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpPatchAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; + } + public class HttpPostAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute + { + public HttpPostAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpPostAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; + } + public class HttpPutAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute + { + public HttpPutAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpPutAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; + } + public interface IDesignTimeMvcBuilderConfiguration + { + void ConfigureMvc(Microsoft.Extensions.DependencyInjection.IMvcBuilder builder); } namespace Infrastructure { public class ActionContextAccessor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor { - public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; set { } } public ActionContextAccessor() => throw null; } - public class ActionDescriptorCollection { public ActionDescriptorCollection(System.Collections.Generic.IReadOnlyList items, int version) => throw null; public System.Collections.Generic.IReadOnlyList Items { get => throw null; } public int Version { get => throw null; } } - public abstract class ActionDescriptorCollectionProvider : Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider { - protected ActionDescriptorCollectionProvider() => throw null; public abstract Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection ActionDescriptors { get; } + protected ActionDescriptorCollectionProvider() => throw null; public abstract Microsoft.Extensions.Primitives.IChangeToken GetChangeToken(); } - - public class ActionResultObjectValueAttribute : System.Attribute + public sealed class ActionResultObjectValueAttribute : System.Attribute { public ActionResultObjectValueAttribute() => throw null; } - - public class ActionResultStatusCodeAttribute : System.Attribute + public sealed class ActionResultStatusCodeAttribute : System.Attribute { public ActionResultStatusCodeAttribute() => throw null; } - public class AmbiguousActionException : System.InvalidOperationException { - protected AmbiguousActionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public AmbiguousActionException(string message) => throw null; + protected AmbiguousActionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - public class CompatibilitySwitch : Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch where TValue : struct { public CompatibilitySwitch(string name) => throw null; public CompatibilitySwitch(string name, TValue initialValue) => throw null; public bool IsValueSet { get => throw null; } public string Name { get => throw null; } - public TValue Value { get => throw null; set => throw null; } - object Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch.Value { get => throw null; set => throw null; } + public TValue Value { get => throw null; set { } } + object Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch.Value { get => throw null; set { } } } - public abstract class ConfigureCompatibilityOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : class, System.Collections.Generic.IEnumerable { protected ConfigureCompatibilityOptions(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions compatibilityOptions) => throw null; @@ -2263,563 +1594,270 @@ namespace Microsoft public virtual void PostConfigure(string name, TOptions options) => throw null; protected Microsoft.AspNetCore.Mvc.CompatibilityVersion Version { get => throw null; } } - public class ContentResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { public ContentResultExecutor(Microsoft.Extensions.Logging.ILogger logger, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory httpResponseStreamWriterFactory) => throw null; public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.ContentResult result) => throw null; } - public class DefaultOutputFormatterSelector : Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector { public DefaultOutputFormatterSelector(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public override Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter SelectFormatter(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context, System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) => throw null; } - - public class DefaultStatusCodeAttribute : System.Attribute + public sealed class DefaultStatusCodeAttribute : System.Attribute { public DefaultStatusCodeAttribute(int statusCode) => throw null; public int StatusCode { get => throw null; } } - public class FileContentResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileContentResult result) => throw null; public FileContentResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base(default(Microsoft.Extensions.Logging.ILogger)) => throw null; - protected virtual System.Threading.Tasks.Task WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileContentResult result, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, System.Int64 rangeLength) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileContentResult result) => throw null; + protected virtual System.Threading.Tasks.Task WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileContentResult result, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength) => throw null; } - public class FileResultExecutorBase { - protected const int BufferSize = default; + protected static int BufferSize; protected static Microsoft.Extensions.Logging.ILogger CreateLogger(Microsoft.Extensions.Logging.ILoggerFactory factory) => throw null; public FileResultExecutorBase(Microsoft.Extensions.Logging.ILogger logger) => throw null; protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } - protected virtual (Microsoft.Net.Http.Headers.RangeItemHeaderValue, System.Int64, bool) SetHeadersAndLog(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileResult result, System.Int64? fileLength, bool enableRangeProcessing, System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue etag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; - protected static System.Threading.Tasks.Task WriteFileAsync(Microsoft.AspNetCore.Http.HttpContext context, System.IO.Stream fileStream, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, System.Int64 rangeLength) => throw null; + protected virtual (Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength, bool serveBody) SetHeadersAndLog(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileResult result, long? fileLength, bool enableRangeProcessing, System.DateTimeOffset? lastModified = default(System.DateTimeOffset?), Microsoft.Net.Http.Headers.EntityTagHeaderValue etag = default(Microsoft.Net.Http.Headers.EntityTagHeaderValue)) => throw null; + protected static System.Threading.Tasks.Task WriteFileAsync(Microsoft.AspNetCore.Http.HttpContext context, System.IO.Stream fileStream, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength) => throw null; } - public class FileStreamResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileStreamResult result) => throw null; public FileStreamResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base(default(Microsoft.Extensions.Logging.ILogger)) => throw null; - protected virtual System.Threading.Tasks.Task WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileStreamResult result, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, System.Int64 rangeLength) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileStreamResult result) => throw null; + protected virtual System.Threading.Tasks.Task WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.FileStreamResult result, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength) => throw null; } - public interface IActionContextAccessor { Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get; set; } } - public interface IActionDescriptorChangeProvider { Microsoft.Extensions.Primitives.IChangeToken GetChangeToken(); } - public interface IActionDescriptorCollectionProvider { Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection ActionDescriptors { get; } } - public interface IActionInvokerFactory { Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker CreateInvoker(Microsoft.AspNetCore.Mvc.ActionContext actionContext); } - public interface IActionResultExecutor where TResult : Microsoft.AspNetCore.Mvc.IActionResult { System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, TResult result); } - public interface IActionResultTypeMapper { Microsoft.AspNetCore.Mvc.IActionResult Convert(object value, System.Type returnType); System.Type GetResultDataType(System.Type returnType); } - public interface IActionSelector { Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor SelectBestCandidate(Microsoft.AspNetCore.Routing.RouteContext context, System.Collections.Generic.IReadOnlyList candidates); System.Collections.Generic.IReadOnlyList SelectCandidates(Microsoft.AspNetCore.Routing.RouteContext context); } - public interface IApiBehaviorMetadata : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - - public interface IClientErrorActionResult : Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult + public interface IClientErrorActionResult : Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult { } - public interface IClientErrorFactory { Microsoft.AspNetCore.Mvc.IActionResult GetClientError(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult clientError); } - public interface ICompatibilitySwitch { bool IsValueSet { get; } string Name { get; } object Value { get; set; } } - public interface IConvertToActionResult { Microsoft.AspNetCore.Mvc.IActionResult Convert(); } - public interface IHttpRequestStreamReaderFactory { System.IO.TextReader CreateReader(System.IO.Stream stream, System.Text.Encoding encoding); } - public interface IHttpResponseStreamWriterFactory { System.IO.TextWriter CreateWriter(System.IO.Stream stream, System.Text.Encoding encoding); } - public interface IParameterInfoParameterDescriptor { System.Reflection.ParameterInfo ParameterInfo { get; } } - public interface IPropertyInfoParameterDescriptor { System.Reflection.PropertyInfo PropertyInfo { get; } } - public interface IStatusCodeActionResult : Microsoft.AspNetCore.Mvc.IActionResult { int? StatusCode { get; } } - public class LocalRedirectResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.LocalRedirectResult result) => throw null; public LocalRedirectResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.LocalRedirectResult result) => throw null; } - public class ModelStateInvalidFilter : Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter { - public bool IsReusable { get => throw null; } public ModelStateInvalidFilter(Microsoft.AspNetCore.Mvc.ApiBehaviorOptions apiBehaviorOptions, Microsoft.Extensions.Logging.ILogger logger) => throw null; + public bool IsReusable { get => throw null; } public void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) => throw null; public void OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) => throw null; public int Order { get => throw null; } } - public class MvcCompatibilityOptions { - public Microsoft.AspNetCore.Mvc.CompatibilityVersion CompatibilityVersion { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.CompatibilityVersion CompatibilityVersion { get => throw null; set { } } public MvcCompatibilityOptions() => throw null; } - public class ObjectResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { + public ObjectResultExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector formatterSelector, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions mvcOptions) => throw null; public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.ObjectResult result) => throw null; protected Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector FormatterSelector { get => throw null; } protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } - public ObjectResultExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector formatterSelector, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions mvcOptions) => throw null; protected System.Func WriterFactory { get => throw null; } } - public abstract class OutputFormatterSelector { protected OutputFormatterSelector() => throw null; public abstract Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter SelectFormatter(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context, System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection mediaTypes); } - public class PhysicalFileResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { + public PhysicalFileResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base(default(Microsoft.Extensions.Logging.ILogger)) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.PhysicalFileResult result) => throw null; protected class FileMetadata { - public bool Exists { get => throw null; set => throw null; } public FileMetadata() => throw null; - public System.DateTimeOffset LastModified { get => throw null; set => throw null; } - public System.Int64 Length { get => throw null; set => throw null; } + public bool Exists { get => throw null; set { } } + public System.DateTimeOffset LastModified { get => throw null; set { } } + public long Length { get => throw null; set { } } } - - - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.PhysicalFileResult result) => throw null; protected virtual Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.FileMetadata GetFileInfo(string path) => throw null; protected virtual System.IO.Stream GetFileStream(string path) => throw null; - public PhysicalFileResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base(default(Microsoft.Extensions.Logging.ILogger)) => throw null; - protected virtual System.Threading.Tasks.Task WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.PhysicalFileResult result, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, System.Int64 rangeLength) => throw null; + protected virtual System.Threading.Tasks.Task WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.PhysicalFileResult result, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength) => throw null; } - public abstract class ProblemDetailsFactory { public abstract Microsoft.AspNetCore.Mvc.ProblemDetails CreateProblemDetails(Microsoft.AspNetCore.Http.HttpContext httpContext, int? statusCode = default(int?), string title = default(string), string type = default(string), string detail = default(string), string instance = default(string)); public abstract Microsoft.AspNetCore.Mvc.ValidationProblemDetails CreateValidationProblemDetails(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelStateDictionary, int? statusCode = default(int?), string title = default(string), string type = default(string), string detail = default(string), string instance = default(string)); protected ProblemDetailsFactory() => throw null; } - public class RedirectResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectResult result) => throw null; public RedirectResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectResult result) => throw null; } - public class RedirectToActionResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectToActionResult result) => throw null; public RedirectToActionResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectToActionResult result) => throw null; } - public class RedirectToPageResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectToPageResult result) => throw null; public RedirectToPageResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectToPageResult result) => throw null; } - public class RedirectToRouteResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectToRouteResult result) => throw null; public RedirectToRouteResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.RedirectToRouteResult result) => throw null; } - public class VirtualFileResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { + public VirtualFileResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) : base(default(Microsoft.Extensions.Logging.ILogger)) => throw null; public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.VirtualFileResult result) => throw null; protected virtual System.IO.Stream GetFileStream(Microsoft.Extensions.FileProviders.IFileInfo fileInfo) => throw null; - public VirtualFileResultExecutor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) : base(default(Microsoft.Extensions.Logging.ILogger)) => throw null; - protected virtual System.Threading.Tasks.Task WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.VirtualFileResult result, Microsoft.Extensions.FileProviders.IFileInfo fileInfo, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, System.Int64 rangeLength) => throw null; + protected virtual System.Threading.Tasks.Task WriteFileAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.VirtualFileResult result, Microsoft.Extensions.FileProviders.IFileInfo fileInfo, Microsoft.Net.Http.Headers.RangeItemHeaderValue range, long rangeLength) => throw null; } - + } + public interface IRequestFormLimitsPolicy : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + { + } + public interface IRequestSizePolicy : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + { + } + public class JsonOptions + { + public bool AllowInputFormatterExceptionMessages { get => throw null; set { } } + public JsonOptions() => throw null; + public System.Text.Json.JsonSerializerOptions JsonSerializerOptions { get => throw null; } + } + public class JsonResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + { + public string ContentType { get => throw null; set { } } + public JsonResult(object value) => throw null; + public JsonResult(object value, object serializerSettings) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public object SerializerSettings { get => throw null; set { } } + public int? StatusCode { get => throw null; set { } } + public object Value { get => throw null; set { } } + } + public class LocalRedirectResult : Microsoft.AspNetCore.Mvc.ActionResult + { + public LocalRedirectResult(string localUrl) => throw null; + public LocalRedirectResult(string localUrl, bool permanent) => throw null; + public LocalRedirectResult(string localUrl, bool permanent, bool preserveMethod) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public bool Permanent { get => throw null; set { } } + public bool PreserveMethod { get => throw null; set { } } + public string Url { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } + } + public class MiddlewareFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + { + public System.Type ConfigurationType { get => throw null; } + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public MiddlewareFilterAttribute(System.Type configurationType) => throw null; + public bool IsReusable { get => throw null; } + public int Order { get => throw null; set { } } + } + public class ModelBinderAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata + { + public System.Type BinderType { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set { } } + public ModelBinderAttribute() => throw null; + public ModelBinderAttribute(System.Type binderType) => throw null; + public string Name { get => throw null; set { } } } namespace ModelBinding { - public class BindNeverAttribute : Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute - { - public BindNeverAttribute() : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior)) => throw null; - } - - public class BindRequiredAttribute : Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute - { - public BindRequiredAttribute() : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior)) => throw null; - } - - public enum BindingBehavior : int - { - Never = 1, - Optional = 0, - Required = 2, - } - - public class BindingBehaviorAttribute : System.Attribute - { - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior Behavior { get => throw null; } - public BindingBehaviorAttribute(Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior behavior) => throw null; - } - - public abstract class BindingSourceValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider - { - protected Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } - public BindingSourceValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; - public abstract bool ContainsPrefix(string prefix); - public virtual Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; - public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key); - } - - public class CompositeValueProvider : System.Collections.ObjectModel.Collection, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider - { - public CompositeValueProvider() => throw null; - public CompositeValueProvider(System.Collections.Generic.IList valueProviders) => throw null; - public virtual bool ContainsPrefix(string prefix) => throw null; - public static System.Threading.Tasks.Task CreateAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList factories) => throw null; - public static System.Threading.Tasks.Task CreateAsync(Microsoft.AspNetCore.Mvc.ControllerContext controllerContext) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter() => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; - public virtual System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; - protected override void InsertItem(int index, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider item) => throw null; - protected override void SetItem(int index, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider item) => throw null; - } - - public class DefaultModelBindingContext : Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext - { - public override Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; set => throw null; } - public override string BinderModelName { get => throw null; set => throw null; } - public override Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set => throw null; } - public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext CreateBindingContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo bindingInfo, string modelName) => throw null; - public DefaultModelBindingContext() => throw null; - public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope EnterNestedScope() => throw null; - public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope EnterNestedScope(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, string fieldName, string modelName, object model) => throw null; - protected override void ExitNestedScope() => throw null; - public override string FieldName { get => throw null; set => throw null; } - public override bool IsTopLevelObject { get => throw null; set => throw null; } - public override object Model { get => throw null; set => throw null; } - public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; set => throw null; } - public override string ModelName { get => throw null; set => throw null; } - public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider OriginalValueProvider { get => throw null; set => throw null; } - public override System.Func PropertyFilter { get => throw null; set => throw null; } - public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult Result { get => throw null; set => throw null; } - public override Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary ValidationState { get => throw null; set => throw null; } - public override Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider ValueProvider { get => throw null; set => throw null; } - } - - public class DefaultPropertyFilterProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider where TModel : class - { - public DefaultPropertyFilterProvider() => throw null; - public virtual string Prefix { get => throw null; } - public virtual System.Func PropertyFilter { get => throw null; } - public virtual System.Collections.Generic.IEnumerable>> PropertyIncludeExpressions { get => throw null; } - } - - public class EmptyModelMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider - { - public EmptyModelMetadataProvider() : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider)) => throw null; - } - - public class FormFileValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider - { - public bool ContainsPrefix(string prefix) => throw null; - public FormFileValueProvider(Microsoft.AspNetCore.Http.IFormFileCollection files) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; - } - - public class FormFileValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory - { - public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; - public FormFileValueProviderFactory() => throw null; - } - - public class FormValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider - { - public override bool ContainsPrefix(string prefix) => throw null; - public System.Globalization.CultureInfo Culture { get => throw null; } - public FormValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Http.IFormCollection values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; - public virtual System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix) => throw null; - public override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; - protected Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer PrefixContainer { get => throw null; } - } - - public class FormValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory - { - public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; - public FormValueProviderFactory() => throw null; - } - - public interface IBindingSourceValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider - { - Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource); - } - - public interface ICollectionModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder - { - bool CanCreateInstance(System.Type targetType); - } - - public interface IEnumerableValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider - { - System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix); - } - - public interface IKeyRewriterValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider - { - Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(); - } - - public interface IModelBinderFactory - { - Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext context); - } - - public class JQueryFormValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider - { - public override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; - public JQueryFormValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, System.Collections.Generic.IDictionary values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource), default(System.Collections.Generic.IDictionary), default(System.Globalization.CultureInfo)) => throw null; - } - - public class JQueryFormValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory - { - public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; - public JQueryFormValueProviderFactory() => throw null; - } - - public class JQueryQueryStringValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider - { - public JQueryQueryStringValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, System.Collections.Generic.IDictionary values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource), default(System.Collections.Generic.IDictionary), default(System.Globalization.CultureInfo)) => throw null; - } - - public class JQueryQueryStringValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory - { - public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; - public JQueryQueryStringValueProviderFactory() => throw null; - } - - public abstract class JQueryValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider - { - public override bool ContainsPrefix(string prefix) => throw null; - public System.Globalization.CultureInfo Culture { get => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter() => throw null; - public System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix) => throw null; - public override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; - protected JQueryValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, System.Collections.Generic.IDictionary values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; - protected Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer PrefixContainer { get => throw null; } - } - - public class ModelAttributes - { - public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } - public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes GetAttributesForParameter(System.Reflection.ParameterInfo parameterInfo) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes GetAttributesForParameter(System.Reflection.ParameterInfo parameterInfo, System.Type modelType) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes GetAttributesForProperty(System.Type type, System.Reflection.PropertyInfo property) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes GetAttributesForProperty(System.Type containerType, System.Reflection.PropertyInfo property, System.Type modelType) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes GetAttributesForType(System.Type type) => throw null; - public System.Collections.Generic.IReadOnlyList ParameterAttributes { get => throw null; } - public System.Collections.Generic.IReadOnlyList PropertyAttributes { get => throw null; } - public System.Collections.Generic.IReadOnlyList TypeAttributes { get => throw null; } - } - - public class ModelBinderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory - { - public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext context) => throw null; - public ModelBinderFactory(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.Extensions.Options.IOptions options, System.IServiceProvider serviceProvider) => throw null; - } - - public class ModelBinderFactoryContext - { - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get => throw null; set => throw null; } - public object CacheToken { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; set => throw null; } - public ModelBinderFactoryContext() => throw null; - } - - public static class ModelBinderProviderExtensions - { - public static void RemoveType(this System.Collections.Generic.IList list, System.Type type) => throw null; - public static void RemoveType(this System.Collections.Generic.IList list) where TModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider => throw null; - } - - public static class ModelMetadataProviderExtensions - { - public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForProperty(this Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider provider, System.Type containerType, string propertyName) => throw null; - } - - public static class ModelNames - { - public static string CreateIndexModelName(string parentName, int index) => throw null; - public static string CreateIndexModelName(string parentName, string index) => throw null; - public static string CreatePropertyModelName(string prefix, string propertyName) => throw null; - } - - public abstract class ObjectModelValidator : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator - { - public abstract Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor GetValidationVisitor(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache validatorCache, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState); - public ObjectModelValidator(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, System.Collections.Generic.IList validatorProviders) => throw null; - public virtual void Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model) => throw null; - public virtual void Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => throw null; - public virtual void Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object container) => throw null; - } - - public class ParameterBinder - { - public virtual System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder modelBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object value) => throw null; - public virtual System.Threading.Tasks.ValueTask BindModelAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder modelBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object value, object container) => throw null; - protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } - public ParameterBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator validator, Microsoft.Extensions.Options.IOptions mvcOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - } - - public class PrefixContainer - { - public bool ContainsPrefix(string prefix) => throw null; - public System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix) => throw null; - public PrefixContainer(System.Collections.Generic.ICollection values) => throw null; - } - - public class QueryStringValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider - { - public override bool ContainsPrefix(string prefix) => throw null; - public System.Globalization.CultureInfo Culture { get => throw null; } - public virtual System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix) => throw null; - public override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; - protected Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer PrefixContainer { get => throw null; } - public QueryStringValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Http.IQueryCollection values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; - } - - public class QueryStringValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory - { - public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; - public QueryStringValueProviderFactory() => throw null; - } - - public class RouteValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider - { - public override bool ContainsPrefix(string key) => throw null; - protected System.Globalization.CultureInfo Culture { get => throw null; } - public override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; - protected Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer PrefixContainer { get => throw null; } - public RouteValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Routing.RouteValueDictionary values) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; - public RouteValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Routing.RouteValueDictionary values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; - } - - public class RouteValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory - { - public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; - public RouteValueProviderFactory() => throw null; - } - - public class SuppressChildValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider - { - public void CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context) => throw null; - public string FullTypeName { get => throw null; } - public SuppressChildValidationMetadataProvider(System.Type type) => throw null; - public SuppressChildValidationMetadataProvider(string fullTypeName) => throw null; - public System.Type Type { get => throw null; } - } - - public class UnsupportedContentTypeException : System.Exception - { - public UnsupportedContentTypeException(string message) => throw null; - } - - public class UnsupportedContentTypeFilter : Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - public void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) => throw null; - public void OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) => throw null; - public int Order { get => throw null; set => throw null; } - public UnsupportedContentTypeFilter() => throw null; - } - - public static class ValueProviderFactoryExtensions - { - public static void RemoveType(this System.Collections.Generic.IList list, System.Type type) => throw null; - public static void RemoveType(this System.Collections.Generic.IList list) where TValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory => throw null; - } - namespace Binders { public class ArrayModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder { - public ArrayModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; - public ArrayModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; - public ArrayModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; public override bool CanCreateInstance(System.Type targetType) => throw null; protected override object ConvertToCollectionType(System.Type targetType, System.Collections.Generic.IEnumerable collection) => throw null; protected override void CopyToModel(object target, System.Collections.Generic.IEnumerable sourceCollection) => throw null; protected override object CreateEmptyCollection(System.Type targetType) => throw null; + public ArrayModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; + public ArrayModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; + public ArrayModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; } - public class ArrayModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public ArrayModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class BinderTypeModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public BinderTypeModelBinder(System.Type binderType) => throw null; } - public class BinderTypeModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public BinderTypeModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class BodyModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; @@ -2827,7 +1865,6 @@ namespace Microsoft public BodyModelBinder(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public BodyModelBinder(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.MvcOptions options) => throw null; } - public class BodyModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public BodyModelBinderProvider(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory) => throw null; @@ -2835,99 +1872,85 @@ namespace Microsoft public BodyModelBinderProvider(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.MvcOptions options) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class ByteArrayModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public ByteArrayModelBinder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public class ByteArrayModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public ByteArrayModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class CancellationTokenModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public CancellationTokenModelBinder() => throw null; } - public class CancellationTokenModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public CancellationTokenModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class CollectionModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.ICollectionModelBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { protected void AddErrorIfBindingRequired(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public virtual System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public virtual bool CanCreateInstance(System.Type targetType) => throw null; - public CollectionModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public CollectionModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) => throw null; - public CollectionModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) => throw null; protected virtual object ConvertToCollectionType(System.Type targetType, System.Collections.Generic.IEnumerable collection) => throw null; protected virtual void CopyToModel(object target, System.Collections.Generic.IEnumerable sourceCollection) => throw null; protected virtual object CreateEmptyCollection(System.Type targetType) => throw null; protected object CreateInstance(System.Type targetType) => throw null; + public CollectionModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public CollectionModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) => throw null; + public CollectionModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder elementBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) => throw null; protected Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder ElementBinder { get => throw null; } protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } } - public class CollectionModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public CollectionModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - - public class ComplexObjectModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder + public sealed class ComplexObjectModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; } - public class ComplexObjectModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public ComplexObjectModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class ComplexTypeModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; protected virtual System.Threading.Tasks.Task BindProperty(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; protected virtual bool CanBindProperty(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata propertyMetadata) => throw null; + protected virtual object CreateModel(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public ComplexTypeModelBinder(System.Collections.Generic.IDictionary propertyBinders, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public ComplexTypeModelBinder(System.Collections.Generic.IDictionary propertyBinders, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) => throw null; - protected virtual object CreateModel(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; protected virtual void SetProperty(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, string modelName, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata propertyMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult result) => throw null; } - public class ComplexTypeModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public ComplexTypeModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class DateTimeModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public DateTimeModelBinder(System.Globalization.DateTimeStyles supportedStyles, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public class DateTimeModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public DateTimeModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class DecimalModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public DecimalModelBinder(System.Globalization.NumberStyles supportedStyles, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public class DictionaryModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder> { public override System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; @@ -2938,140 +1961,267 @@ namespace Microsoft public DictionaryModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder keyBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder valueBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; public DictionaryModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder keyBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder valueBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; } - public class DictionaryModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public DictionaryModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class DoubleModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public DoubleModelBinder(System.Globalization.NumberStyles supportedStyles, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public class EnumTypeModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder { protected override void CheckModel(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult valueProviderResult, object model) => throw null; public EnumTypeModelBinder(bool suppressBindingUndefinedValueToEnumType, System.Type modelType, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base(default(System.Type), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; } - public class EnumTypeModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public EnumTypeModelBinderProvider(Microsoft.AspNetCore.Mvc.MvcOptions options) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - - public class FloatModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder - { - public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; - public FloatModelBinder(System.Globalization.NumberStyles supportedStyles, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - } - public class FloatingPointTypeModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public FloatingPointTypeModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - + public class FloatModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder + { + public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; + public FloatModelBinder(System.Globalization.NumberStyles supportedStyles, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + } public class FormCollectionModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public FormCollectionModelBinder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public class FormCollectionModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public FormCollectionModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class FormFileModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public FormFileModelBinder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public class FormFileModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public FormFileModelBinderProvider() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class HeaderModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public HeaderModelBinder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public HeaderModelBinder(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder innerModelBinder) => throw null; } - public class HeaderModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { - public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; public HeaderModelBinderProvider() => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class KeyValuePairModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public KeyValuePairModelBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder keyBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder valueBinder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public class KeyValuePairModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { - public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; public KeyValuePairModelBinderProvider() => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class ServicesModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; public ServicesModelBinder() => throw null; } - public class ServicesModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { - public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; public ServicesModelBinderProvider() => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; } - public class SimpleTypeModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; protected virtual void CheckModel(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext, Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult valueProviderResult, object model) => throw null; public SimpleTypeModelBinder(System.Type type, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public class SimpleTypeModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { - public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; public SimpleTypeModelBinderProvider() => throw null; - } - - public class TryParseModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider - { public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; - public TryParseModelBinderProvider() => throw null; } - + public sealed class TryParseModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider + { + public TryParseModelBinderProvider() => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; + } + } + public enum BindingBehavior + { + Optional = 0, + Never = 1, + Required = 2, + } + public class BindingBehaviorAttribute : System.Attribute + { + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior Behavior { get => throw null; } + public BindingBehaviorAttribute(Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior behavior) => throw null; + } + public abstract class BindingSourceValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider + { + protected Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } + public abstract bool ContainsPrefix(string prefix); + public BindingSourceValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; + public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key); + } + public sealed class BindNeverAttribute : Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute + { + public BindNeverAttribute() : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior)) => throw null; + } + public sealed class BindRequiredAttribute : Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute + { + public BindRequiredAttribute() : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior)) => throw null; + } + public class CompositeValueProvider : System.Collections.ObjectModel.Collection, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider + { + public virtual bool ContainsPrefix(string prefix) => throw null; + public static System.Threading.Tasks.Task CreateAsync(Microsoft.AspNetCore.Mvc.ControllerContext controllerContext) => throw null; + public static System.Threading.Tasks.Task CreateAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList factories) => throw null; + public CompositeValueProvider() => throw null; + public CompositeValueProvider(System.Collections.Generic.IList valueProviders) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter() => throw null; + public virtual System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; + protected override void InsertItem(int index, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider item) => throw null; + protected override void SetItem(int index, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider item) => throw null; + } + public class DefaultModelBindingContext : Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext + { + public override Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; set { } } + public override string BinderModelName { get => throw null; set { } } + public override Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set { } } + public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext CreateBindingContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo bindingInfo, string modelName) => throw null; + public DefaultModelBindingContext() => throw null; + public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope EnterNestedScope(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, string fieldName, string modelName, object model) => throw null; + public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope EnterNestedScope() => throw null; + protected override void ExitNestedScope() => throw null; + public override string FieldName { get => throw null; set { } } + public override bool IsTopLevelObject { get => throw null; set { } } + public override object Model { get => throw null; set { } } + public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; set { } } + public override string ModelName { get => throw null; set { } } + public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider OriginalValueProvider { get => throw null; set { } } + public override System.Func PropertyFilter { get => throw null; set { } } + public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult Result { get => throw null; set { } } + public override Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary ValidationState { get => throw null; set { } } + public override Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider ValueProvider { get => throw null; set { } } + } + public class DefaultPropertyFilterProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider where TModel : class + { + public DefaultPropertyFilterProvider() => throw null; + public virtual string Prefix { get => throw null; } + public virtual System.Func PropertyFilter { get => throw null; } + public virtual System.Collections.Generic.IEnumerable>> PropertyIncludeExpressions { get => throw null; } + } + public class EmptyModelMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider + { + public EmptyModelMetadataProvider() : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider)) => throw null; + } + public sealed class FormFileValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider + { + public bool ContainsPrefix(string prefix) => throw null; + public FormFileValueProvider(Microsoft.AspNetCore.Http.IFormFileCollection files) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; + } + public sealed class FormFileValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory + { + public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; + public FormFileValueProviderFactory() => throw null; + } + public class FormValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider + { + public override bool ContainsPrefix(string prefix) => throw null; + public FormValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Http.IFormCollection values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; } + public virtual System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix) => throw null; + public override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; + protected Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer PrefixContainer { get => throw null; } + } + public class FormValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory + { + public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; + public FormValueProviderFactory() => throw null; + } + public interface IBindingSourceValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider + { + Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource); + } + public interface ICollectionModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder + { + bool CanCreateInstance(System.Type targetType); + } + public interface IEnumerableValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider + { + System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix); + } + public interface IKeyRewriterValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider + { + Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(); + } + public interface IModelBinderFactory + { + Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext context); + } + public class JQueryFormValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider + { + public JQueryFormValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, System.Collections.Generic.IDictionary values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource), default(System.Collections.Generic.IDictionary), default(System.Globalization.CultureInfo)) => throw null; + public override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; + } + public class JQueryFormValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory + { + public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; + public JQueryFormValueProviderFactory() => throw null; + } + public class JQueryQueryStringValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider + { + public JQueryQueryStringValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, System.Collections.Generic.IDictionary values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource), default(System.Collections.Generic.IDictionary), default(System.Globalization.CultureInfo)) => throw null; + } + public class JQueryQueryStringValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory + { + public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; + public JQueryQueryStringValueProviderFactory() => throw null; + } + public abstract class JQueryValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider + { + public override bool ContainsPrefix(string prefix) => throw null; + protected JQueryValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, System.Collections.Generic.IDictionary values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter() => throw null; + public System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix) => throw null; + public override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; + protected Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer PrefixContainer { get => throw null; } } namespace Metadata { public class BindingMetadata { - public string BinderModelName { get => throw null; set => throw null; } - public System.Type BinderType { get => throw null; set => throw null; } + public string BinderModelName { get => throw null; set { } } + public System.Type BinderType { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set { } } + public System.Reflection.ConstructorInfo BoundConstructor { get => throw null; set { } } public BindingMetadata() => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set => throw null; } - public System.Reflection.ConstructorInfo BoundConstructor { get => throw null; set => throw null; } - public bool IsBindingAllowed { get => throw null; set => throw null; } - public bool IsBindingRequired { get => throw null; set => throw null; } - public bool? IsReadOnly { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider ModelBindingMessageProvider { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider PropertyFilterProvider { get => throw null; set => throw null; } + public bool IsBindingAllowed { get => throw null; set { } } + public bool IsBindingRequired { get => throw null; set { } } + public bool? IsReadOnly { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider ModelBindingMessageProvider { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider PropertyFilterProvider { get => throw null; set { } } } - public class BindingMetadataProviderContext { public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } @@ -3082,31 +2232,28 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList PropertyAttributes { get => throw null; } public System.Collections.Generic.IReadOnlyList TypeAttributes { get => throw null; } } - public class BindingSourceMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider { public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } - public BindingSourceMetadataProvider(System.Type type, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; public void CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context) => throw null; + public BindingSourceMetadataProvider(System.Type type, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; public System.Type Type { get => throw null; } } - public class DefaultMetadataDetails { - public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata BindingMetadata { get => throw null; set => throw null; } - public System.Func BoundConstructorInvoker { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata[] BoundConstructorParameters { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ContainerMetadata { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata BindingMetadata { get => throw null; set { } } + public System.Func BoundConstructorInvoker { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata[] BoundConstructorParameters { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ContainerMetadata { get => throw null; set { } } public DefaultMetadataDetails(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes attributes) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata DisplayMetadata { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata DisplayMetadata { get => throw null; set { } } public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity Key { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes ModelAttributes { get => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata[] Properties { get => throw null; set => throw null; } - public System.Func PropertyGetter { get => throw null; set => throw null; } - public System.Action PropertySetter { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata ValidationMetadata { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata[] Properties { get => throw null; set { } } + public System.Func PropertyGetter { get => throw null; set { } } + public System.Action PropertySetter { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata ValidationMetadata { get => throw null; set { } } } - public class DefaultModelBindingMessageProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider { public override System.Func AttemptedValueIsInvalidAccessor { get => throw null; } @@ -3134,7 +2281,6 @@ namespace Microsoft public override System.Func ValueMustBeANumberAccessor { get => throw null; } public override System.Func ValueMustNotBeNullAccessor { get => throw null; } } - public class DefaultModelMetadata : Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata { public override System.Collections.Generic.IReadOnlyDictionary AdditionalValues { get => throw null; } @@ -3148,9 +2294,9 @@ namespace Microsoft public override System.Collections.Generic.IReadOnlyList BoundConstructorParameters { get => throw null; } public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ContainerMetadata { get => throw null; } public override bool ConvertEmptyStringToNull { get => throw null; } - public override string DataTypeName { get => throw null; } public DefaultModelMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider provider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider detailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails details) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity)) => throw null; public DefaultModelMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider provider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider detailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails details, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider modelBindingMessageProvider) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity)) => throw null; + public override string DataTypeName { get => throw null; } public override string Description { get => throw null; } public override string DisplayFormatString { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata DisplayMetadata { get => throw null; } @@ -3188,7 +2334,6 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata ValidationMetadata { get => throw null; } public override System.Collections.Generic.IReadOnlyList ValidatorMetadata { get => throw null; } } - public class DefaultModelMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider { protected virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata CreateModelMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails entry) => throw null; @@ -3206,111 +2351,205 @@ namespace Microsoft public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForType(System.Type modelType) => throw null; protected Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider ModelBindingMessageProvider { get => throw null; } } - public class DisplayMetadata { public System.Collections.Generic.IDictionary AdditionalValues { get => throw null; } - public bool ConvertEmptyStringToNull { get => throw null; set => throw null; } - public string DataTypeName { get => throw null; set => throw null; } - public System.Func Description { get => throw null; set => throw null; } - public string DisplayFormatString { get => throw null; set => throw null; } - public System.Func DisplayFormatStringProvider { get => throw null; set => throw null; } + public bool ConvertEmptyStringToNull { get => throw null; set { } } public DisplayMetadata() => throw null; - public System.Func DisplayName { get => throw null; set => throw null; } - public string EditFormatString { get => throw null; set => throw null; } - public System.Func EditFormatStringProvider { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable> EnumGroupedDisplayNamesAndValues { get => throw null; set => throw null; } - public System.Collections.Generic.IReadOnlyDictionary EnumNamesAndValues { get => throw null; set => throw null; } - public bool HasNonDefaultEditFormat { get => throw null; set => throw null; } - public bool HideSurroundingHtml { get => throw null; set => throw null; } - public bool HtmlEncode { get => throw null; set => throw null; } - public bool IsEnum { get => throw null; set => throw null; } - public bool IsFlagsEnum { get => throw null; set => throw null; } - public string NullDisplayText { get => throw null; set => throw null; } - public System.Func NullDisplayTextProvider { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } - public System.Func Placeholder { get => throw null; set => throw null; } - public bool ShowForDisplay { get => throw null; set => throw null; } - public bool ShowForEdit { get => throw null; set => throw null; } - public string SimpleDisplayProperty { get => throw null; set => throw null; } - public string TemplateHint { get => throw null; set => throw null; } + public string DataTypeName { get => throw null; set { } } + public System.Func Description { get => throw null; set { } } + public string DisplayFormatString { get => throw null; set { } } + public System.Func DisplayFormatStringProvider { get => throw null; set { } } + public System.Func DisplayName { get => throw null; set { } } + public string EditFormatString { get => throw null; set { } } + public System.Func EditFormatStringProvider { get => throw null; set { } } + public System.Collections.Generic.IEnumerable> EnumGroupedDisplayNamesAndValues { get => throw null; set { } } + public System.Collections.Generic.IReadOnlyDictionary EnumNamesAndValues { get => throw null; set { } } + public bool HasNonDefaultEditFormat { get => throw null; set { } } + public bool HideSurroundingHtml { get => throw null; set { } } + public bool HtmlEncode { get => throw null; set { } } + public bool IsEnum { get => throw null; set { } } + public bool IsFlagsEnum { get => throw null; set { } } + public string NullDisplayText { get => throw null; set { } } + public System.Func NullDisplayTextProvider { get => throw null; set { } } + public int Order { get => throw null; set { } } + public System.Func Placeholder { get => throw null; set { } } + public bool ShowForDisplay { get => throw null; set { } } + public bool ShowForEdit { get => throw null; set { } } + public string SimpleDisplayProperty { get => throw null; set { } } + public string TemplateHint { get => throw null; set { } } } - public class DisplayMetadataProviderContext { public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata DisplayMetadata { get => throw null; } public DisplayMetadataProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes attributes) => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata DisplayMetadata { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity Key { get => throw null; } public System.Collections.Generic.IReadOnlyList PropertyAttributes { get => throw null; } public System.Collections.Generic.IReadOnlyList TypeAttributes { get => throw null; } } - public class ExcludeBindingMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider { public void CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context) => throw null; public ExcludeBindingMetadataProvider(System.Type type) => throw null; } - public interface IBindingMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider { void CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context); } - - public interface ICompositeMetadataDetailsProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider + public interface ICompositeMetadataDetailsProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider { } - public interface IDisplayMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider { void CreateDisplayMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext context); } - public interface IMetadataDetailsProvider { } - public interface IValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider { void CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context); } - - public static class MetadataDetailsProviderExtensions + public static partial class MetadataDetailsProviderExtensions { - public static void RemoveType(this System.Collections.Generic.IList list, System.Type type) => throw null; public static void RemoveType(this System.Collections.Generic.IList list) where TMetadataDetailsProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider => throw null; + public static void RemoveType(this System.Collections.Generic.IList list, System.Type type) => throw null; } - - public class SystemTextJsonValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider + public sealed class SystemTextJsonValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider { public void CreateDisplayMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext context) => throw null; public void CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context) => throw null; public SystemTextJsonValidationMetadataProvider() => throw null; public SystemTextJsonValidationMetadataProvider(System.Text.Json.JsonNamingPolicy namingPolicy) => throw null; } - public class ValidationMetadata { - public bool? HasValidators { get => throw null; set => throw null; } - public bool? IsRequired { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter PropertyValidationFilter { get => throw null; set => throw null; } - public bool? ValidateChildren { get => throw null; set => throw null; } public ValidationMetadata() => throw null; - public string ValidationModelName { get => throw null; set => throw null; } + public bool? HasValidators { get => throw null; set { } } + public bool? IsRequired { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter PropertyValidationFilter { get => throw null; set { } } + public bool? ValidateChildren { get => throw null; set { } } + public string ValidationModelName { get => throw null; set { } } public System.Collections.Generic.IList ValidatorMetadata { get => throw null; } } - public class ValidationMetadataProviderContext { public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } + public ValidationMetadataProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes attributes) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity Key { get => throw null; } public System.Collections.Generic.IReadOnlyList ParameterAttributes { get => throw null; } public System.Collections.Generic.IReadOnlyList PropertyAttributes { get => throw null; } public System.Collections.Generic.IReadOnlyList TypeAttributes { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata ValidationMetadata { get => throw null; } - public ValidationMetadataProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes attributes) => throw null; } - + } + public class ModelAttributes + { + public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } + public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes GetAttributesForParameter(System.Reflection.ParameterInfo parameterInfo) => throw null; + public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes GetAttributesForParameter(System.Reflection.ParameterInfo parameterInfo, System.Type modelType) => throw null; + public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes GetAttributesForProperty(System.Type type, System.Reflection.PropertyInfo property) => throw null; + public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes GetAttributesForProperty(System.Type containerType, System.Reflection.PropertyInfo property, System.Type modelType) => throw null; + public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes GetAttributesForType(System.Type type) => throw null; + public System.Collections.Generic.IReadOnlyList ParameterAttributes { get => throw null; } + public System.Collections.Generic.IReadOnlyList PropertyAttributes { get => throw null; } + public System.Collections.Generic.IReadOnlyList TypeAttributes { get => throw null; } + } + public class ModelBinderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory + { + public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext context) => throw null; + public ModelBinderFactory(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.Extensions.Options.IOptions options, System.IServiceProvider serviceProvider) => throw null; + } + public class ModelBinderFactoryContext + { + public Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get => throw null; set { } } + public object CacheToken { get => throw null; set { } } + public ModelBinderFactoryContext() => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; set { } } + } + public static partial class ModelBinderProviderExtensions + { + public static void RemoveType(this System.Collections.Generic.IList list) where TModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider => throw null; + public static void RemoveType(this System.Collections.Generic.IList list, System.Type type) => throw null; + } + public static partial class ModelMetadataProviderExtensions + { + public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForProperty(this Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider provider, System.Type containerType, string propertyName) => throw null; + } + public static class ModelNames + { + public static string CreateIndexModelName(string parentName, int index) => throw null; + public static string CreateIndexModelName(string parentName, string index) => throw null; + public static string CreatePropertyModelName(string prefix, string propertyName) => throw null; + } + public abstract class ObjectModelValidator : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator + { + public ObjectModelValidator(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, System.Collections.Generic.IList validatorProviders) => throw null; + public abstract Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor GetValidationVisitor(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache validatorCache, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState); + public virtual void Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model) => throw null; + public virtual void Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => throw null; + public virtual void Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object container) => throw null; + } + public class ParameterBinder + { + public virtual System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder modelBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object value) => throw null; + public virtual System.Threading.Tasks.ValueTask BindModelAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder modelBinder, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor parameter, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object value, object container) => throw null; + public ParameterBinder(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory modelBinderFactory, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator validator, Microsoft.Extensions.Options.IOptions mvcOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } + } + public class PrefixContainer + { + public bool ContainsPrefix(string prefix) => throw null; + public PrefixContainer(System.Collections.Generic.ICollection values) => throw null; + public System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix) => throw null; + } + public class QueryStringValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider + { + public override bool ContainsPrefix(string prefix) => throw null; + public QueryStringValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Http.IQueryCollection values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; } + public virtual System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix) => throw null; + public override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; + protected Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer PrefixContainer { get => throw null; } + } + public class QueryStringValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory + { + public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; + public QueryStringValueProviderFactory() => throw null; + } + public class RouteValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider + { + public override bool ContainsPrefix(string key) => throw null; + public RouteValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Routing.RouteValueDictionary values) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; + public RouteValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, Microsoft.AspNetCore.Routing.RouteValueDictionary values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; + protected System.Globalization.CultureInfo Culture { get => throw null; } + public override Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; + protected Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer PrefixContainer { get => throw null; } + } + public class RouteValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory + { + public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; + public RouteValueProviderFactory() => throw null; + } + public class SuppressChildValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider + { + public void CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context) => throw null; + public SuppressChildValidationMetadataProvider(System.Type type) => throw null; + public SuppressChildValidationMetadataProvider(string fullTypeName) => throw null; + public string FullTypeName { get => throw null; } + public System.Type Type { get => throw null; } + } + public class UnsupportedContentTypeException : System.Exception + { + public UnsupportedContentTypeException(string message) => throw null; + } + public class UnsupportedContentTypeFilter : Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + { + public UnsupportedContentTypeFilter() => throw null; + public void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) => throw null; + public void OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) => throw null; + public int Order { get => throw null; set { } } } namespace Validation { @@ -3319,87 +2558,331 @@ namespace Microsoft public ClientValidatorCache() => throw null; public System.Collections.Generic.IReadOnlyList GetValidators(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider validatorProvider) => throw null; } - public class CompositeClientModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider { - public CompositeClientModelValidatorProvider(System.Collections.Generic.IEnumerable providers) => throw null; public void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext context) => throw null; + public CompositeClientModelValidatorProvider(System.Collections.Generic.IEnumerable providers) => throw null; public System.Collections.Generic.IReadOnlyList ValidatorProviders { get => throw null; } } - public class CompositeModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider { - public CompositeModelValidatorProvider(System.Collections.Generic.IList providers) => throw null; public void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext context) => throw null; + public CompositeModelValidatorProvider(System.Collections.Generic.IList providers) => throw null; public System.Collections.Generic.IList ValidatorProviders { get => throw null; } } - public interface IMetadataBasedModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider { bool HasValidators(System.Type modelType, System.Collections.Generic.IList validatorMetadata); } - public interface IObjectModelValidator { void Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model); } - - public static class ModelValidatorProviderExtensions + public static partial class ModelValidatorProviderExtensions { - public static void RemoveType(this System.Collections.Generic.IList list, System.Type type) => throw null; public static void RemoveType(this System.Collections.Generic.IList list) where TModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider => throw null; + public static void RemoveType(this System.Collections.Generic.IList list, System.Type type) => throw null; } - - public class ValidateNeverAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter + public sealed class ValidateNeverAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter { - public bool ShouldValidateEntry(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry entry, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry parentEntry) => throw null; public ValidateNeverAttribute() => throw null; + public bool ShouldValidateEntry(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry entry, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry parentEntry) => throw null; } - public class ValidationVisitor { + protected Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache Cache { get => throw null; } + protected object Container { get => throw null; set { } } + protected Microsoft.AspNetCore.Mvc.ActionContext Context { get => throw null; } + public ValidationVisitor(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache validatorCache, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState) => throw null; + protected virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry GetValidationEntry(object model) => throw null; + protected string Key { get => throw null; set { } } + public int? MaxValidationDepth { get => throw null; set { } } + protected Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; set { } } + protected Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { get => throw null; } + protected object Model { get => throw null; set { } } + protected Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } protected struct StateManager : System.IDisposable { + public StateManager(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor visitor, object newModel) => throw null; public void Dispose() => throw null; public static Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.StateManager Recurse(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor visitor, string key, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy strategy) => throw null; - // Stub generator skipped constructor - public StateManager(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor visitor, object newModel) => throw null; } - - - protected Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache Cache { get => throw null; } - protected object Container { get => throw null; set => throw null; } - protected Microsoft.AspNetCore.Mvc.ActionContext Context { get => throw null; } - protected virtual Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry GetValidationEntry(object model) => throw null; - protected string Key { get => throw null; set => throw null; } - public int? MaxValidationDepth { get => throw null; set => throw null; } - protected Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; set => throw null; } - protected Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { get => throw null; } - protected object Model { get => throw null; set => throw null; } - protected Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } - protected Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy Strategy { get => throw null; set => throw null; } + protected Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy Strategy { get => throw null; set { } } protected virtual void SuppressValidation(string key) => throw null; public bool Validate(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model) => throw null; public virtual bool Validate(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel) => throw null; public virtual bool Validate(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container) => throw null; - public bool ValidateComplexTypesIfChildValidationFails { get => throw null; set => throw null; } + public bool ValidateComplexTypesIfChildValidationFails { get => throw null; set { } } protected virtual bool ValidateNode() => throw null; protected Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary ValidationState { get => throw null; } - public ValidationVisitor(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache validatorCache, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState) => throw null; protected Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider ValidatorProvider { get => throw null; } protected virtual bool Visit(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model) => throw null; protected virtual bool VisitChildren(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy strategy) => throw null; protected virtual bool VisitComplexType(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy defaultStrategy) => throw null; protected virtual bool VisitSimpleType() => throw null; } - public class ValidatorCache { - public System.Collections.Generic.IReadOnlyList GetValidators(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider) => throw null; public ValidatorCache() => throw null; + public System.Collections.Generic.IReadOnlyList GetValidators(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider) => throw null; } - } + public static partial class ValueProviderFactoryExtensions + { + public static void RemoveType(this System.Collections.Generic.IList list) where TValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory => throw null; + public static void RemoveType(this System.Collections.Generic.IList list, System.Type type) => throw null; + } + } + public class ModelMetadataTypeAttribute : System.Attribute + { + public ModelMetadataTypeAttribute(System.Type type) => throw null; + public System.Type MetadataType { get => throw null; } + } + public class MvcOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public bool AllowEmptyInputInBodyModelBinding { get => throw null; set { } } + public System.Collections.Generic.IDictionary CacheProfiles { get => throw null; } + public System.Collections.Generic.IList Conventions { get => throw null; } + public MvcOptions() => throw null; + public bool EnableActionInvokers { get => throw null; set { } } + public bool EnableEndpointRouting { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Filters.FilterCollection Filters { get => throw null; } + public Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings FormatterMappings { get => throw null; } + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection InputFormatters { get => throw null; } + public int MaxIAsyncEnumerableBufferLimit { get => throw null; set { } } + public int MaxModelBindingCollectionSize { get => throw null; set { } } + public int MaxModelBindingRecursionDepth { get => throw null; set { } } + public int MaxModelValidationErrors { get => throw null; set { } } + public int? MaxValidationDepth { get => throw null; set { } } + public System.Collections.Generic.IList ModelBinderProviders { get => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider ModelBindingMessageProvider { get => throw null; } + public System.Collections.Generic.IList ModelMetadataDetailsProviders { get => throw null; } + public System.Collections.Generic.IList ModelValidatorProviders { get => throw null; } + public Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection OutputFormatters { get => throw null; } + public bool RequireHttpsPermanent { get => throw null; set { } } + public bool RespectBrowserAcceptHeader { get => throw null; set { } } + public bool ReturnHttpNotAcceptable { get => throw null; set { } } + public int? SslPort { get => throw null; set { } } + public bool SuppressAsyncSuffixInActionNames { get => throw null; set { } } + public bool SuppressImplicitRequiredAttributeForNonNullableReferenceTypes { get => throw null; set { } } + public bool SuppressInputFormatterBuffering { get => throw null; set { } } + public bool SuppressOutputFormatterBuffering { get => throw null; set { } } + public bool ValidateComplexTypesIfChildValidationFails { get => throw null; set { } } + public System.Collections.Generic.IList ValueProviderFactories { get => throw null; } + } + public class NoContentResult : Microsoft.AspNetCore.Mvc.StatusCodeResult + { + public NoContentResult() : base(default(int)) => throw null; + } + public sealed class NonActionAttribute : System.Attribute + { + public NonActionAttribute() => throw null; + } + public sealed class NonControllerAttribute : System.Attribute + { + public NonControllerAttribute() => throw null; + } + public class NonViewComponentAttribute : System.Attribute + { + public NonViewComponentAttribute() => throw null; + } + public class NotFoundObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult + { + public NotFoundObjectResult(object value) : base(default(object)) => throw null; + } + public class NotFoundResult : Microsoft.AspNetCore.Mvc.StatusCodeResult + { + public NotFoundResult() : base(default(int)) => throw null; + } + public class ObjectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + { + public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection ContentTypes { get => throw null; set { } } + public ObjectResult(object value) => throw null; + public System.Type DeclaredType { get => throw null; set { } } + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection Formatters { get => throw null; set { } } + public virtual void OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public int? StatusCode { get => throw null; set { } } + public object Value { get => throw null; set { } } + } + public class OkObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult + { + public OkObjectResult(object value) : base(default(object)) => throw null; + } + public class OkResult : Microsoft.AspNetCore.Mvc.StatusCodeResult + { + public OkResult() : base(default(int)) => throw null; + } + public class PhysicalFileResult : Microsoft.AspNetCore.Mvc.FileResult + { + public PhysicalFileResult(string fileName, string contentType) : base(default(string)) => throw null; + public PhysicalFileResult(string fileName, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) : base(default(string)) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public string FileName { get => throw null; set { } } + } + public class ProducesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider + { + public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection ContentTypes { get => throw null; set { } } + public ProducesAttribute(System.Type type) => throw null; + public ProducesAttribute(string contentType, params string[] additionalContentTypes) => throw null; + public virtual void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) => throw null; + public virtual void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) => throw null; + public int Order { get => throw null; set { } } + public void SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) => throw null; + public int StatusCode { get => throw null; } + public System.Type Type { get => throw null; set { } } + } + public sealed class ProducesDefaultResponseTypeAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDefaultResponseMetadataProvider, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + { + public ProducesDefaultResponseTypeAttribute() => throw null; + public ProducesDefaultResponseTypeAttribute(System.Type type) => throw null; + void Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider.SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) => throw null; + public int StatusCode { get => throw null; } + public System.Type Type { get => throw null; } + } + public sealed class ProducesErrorResponseTypeAttribute : System.Attribute + { + public ProducesErrorResponseTypeAttribute(System.Type type) => throw null; + public System.Type Type { get => throw null; } + } + public class ProducesResponseTypeAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + { + public ProducesResponseTypeAttribute(int statusCode) => throw null; + public ProducesResponseTypeAttribute(System.Type type, int statusCode) => throw null; + public ProducesResponseTypeAttribute(System.Type type, int statusCode, string contentType, params string[] additionalContentTypes) => throw null; + void Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider.SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) => throw null; + public int StatusCode { get => throw null; set { } } + public System.Type Type { get => throw null; set { } } + } + public class RedirectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + { + public RedirectResult(string url) => throw null; + public RedirectResult(string url, bool permanent) => throw null; + public RedirectResult(string url, bool permanent, bool preserveMethod) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public bool Permanent { get => throw null; set { } } + public bool PreserveMethod { get => throw null; set { } } + public string Url { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } + } + public class RedirectToActionResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + { + public string ActionName { get => throw null; set { } } + public string ControllerName { get => throw null; set { } } + public RedirectToActionResult(string actionName, string controllerName, object routeValues) => throw null; + public RedirectToActionResult(string actionName, string controllerName, object routeValues, string fragment) => throw null; + public RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent) => throw null; + public RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent, bool preserveMethod) => throw null; + public RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent, string fragment) => throw null; + public RedirectToActionResult(string actionName, string controllerName, object routeValues, bool permanent, bool preserveMethod, string fragment) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public string Fragment { get => throw null; set { } } + public bool Permanent { get => throw null; set { } } + public bool PreserveMethod { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } + } + public class RedirectToPageResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + { + public RedirectToPageResult(string pageName) => throw null; + public RedirectToPageResult(string pageName, string pageHandler) => throw null; + public RedirectToPageResult(string pageName, object routeValues) => throw null; + public RedirectToPageResult(string pageName, string pageHandler, object routeValues) => throw null; + public RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent) => throw null; + public RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent, bool preserveMethod) => throw null; + public RedirectToPageResult(string pageName, string pageHandler, object routeValues, string fragment) => throw null; + public RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent, string fragment) => throw null; + public RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent, bool preserveMethod, string fragment) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public string Fragment { get => throw null; set { } } + public string Host { get => throw null; set { } } + public string PageHandler { get => throw null; set { } } + public string PageName { get => throw null; set { } } + public bool Permanent { get => throw null; set { } } + public bool PreserveMethod { get => throw null; set { } } + public string Protocol { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } + } + public class RedirectToRouteResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + { + public RedirectToRouteResult(object routeValues) => throw null; + public RedirectToRouteResult(string routeName, object routeValues) => throw null; + public RedirectToRouteResult(string routeName, object routeValues, bool permanent) => throw null; + public RedirectToRouteResult(string routeName, object routeValues, bool permanent, bool preserveMethod) => throw null; + public RedirectToRouteResult(string routeName, object routeValues, string fragment) => throw null; + public RedirectToRouteResult(string routeName, object routeValues, bool permanent, string fragment) => throw null; + public RedirectToRouteResult(string routeName, object routeValues, bool permanent, bool preserveMethod, string fragment) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public string Fragment { get => throw null; set { } } + public bool Permanent { get => throw null; set { } } + public bool PreserveMethod { get => throw null; set { } } + public string RouteName { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } + } + public class RequestFormLimitsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + { + public bool BufferBody { get => throw null; set { } } + public long BufferBodyLengthLimit { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public RequestFormLimitsAttribute() => throw null; + public bool IsReusable { get => throw null; } + public int KeyLengthLimit { get => throw null; set { } } + public int MemoryBufferThreshold { get => throw null; set { } } + public long MultipartBodyLengthLimit { get => throw null; set { } } + public int MultipartBoundaryLengthLimit { get => throw null; set { } } + public int MultipartHeadersCountLimit { get => throw null; set { } } + public int MultipartHeadersLengthLimit { get => throw null; set { } } + public int Order { get => throw null; set { } } + public int ValueCountLimit { get => throw null; set { } } + public int ValueLengthLimit { get => throw null; set { } } + } + public class RequestSizeLimitAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Http.Metadata.IRequestSizeLimitMetadata + { + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public RequestSizeLimitAttribute(long bytes) => throw null; + public bool IsReusable { get => throw null; } + long? Microsoft.AspNetCore.Http.Metadata.IRequestSizeLimitMetadata.MaxRequestBodySize { get => throw null; } + public int Order { get => throw null; set { } } + } + public class RequireHttpsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + { + public RequireHttpsAttribute() => throw null; + protected virtual void HandleNonHttpsRequest(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext filterContext) => throw null; + public virtual void OnAuthorization(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext filterContext) => throw null; + public int Order { get => throw null; set { } } + public bool Permanent { get => throw null; set { } } + } + public class ResponseCacheAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + { + public string CacheProfileName { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public ResponseCacheAttribute() => throw null; + public int Duration { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.CacheProfile GetCacheProfile(Microsoft.AspNetCore.Mvc.MvcOptions options) => throw null; + public bool IsReusable { get => throw null; } + public Microsoft.AspNetCore.Mvc.ResponseCacheLocation Location { get => throw null; set { } } + public bool NoStore { get => throw null; set { } } + public int Order { get => throw null; set { } } + public string VaryByHeader { get => throw null; set { } } + public string[] VaryByQueryKeys { get => throw null; set { } } + } + public enum ResponseCacheLocation + { + Any = 0, + Client = 1, + None = 2, + } + public class RouteAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider + { + public RouteAttribute(string template) => throw null; + public string Name { get => throw null; set { } } + public int Order { get => throw null; set { } } + int? Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Order { get => throw null; } + public string Template { get => throw null; } } namespace Routing { @@ -3407,145 +2890,243 @@ namespace Microsoft { protected DynamicRouteValueTransformer() => throw null; public virtual System.Threading.Tasks.ValueTask> FilterAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary values, System.Collections.Generic.IReadOnlyList endpoints) => throw null; - public object State { get => throw null; set => throw null; } + public object State { get => throw null; set { } } public abstract System.Threading.Tasks.ValueTask TransformAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary values); } - public abstract class HttpMethodAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider { public HttpMethodAttribute(System.Collections.Generic.IEnumerable httpMethods) => throw null; public HttpMethodAttribute(System.Collections.Generic.IEnumerable httpMethods, string template) => throw null; public System.Collections.Generic.IEnumerable HttpMethods { get => throw null; } - public string Name { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } + public int Order { get => throw null; set { } } int? Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Order { get => throw null; } public string Template { get => throw null; } } - public interface IActionHttpMethodProvider { System.Collections.Generic.IEnumerable HttpMethods { get; } } - public interface IRouteTemplateProvider { string Name { get; } int? Order { get; } string Template { get; } } - public interface IRouteValueProvider { string RouteKey { get; } string RouteValue { get; } } - public interface IUrlHelperFactory { Microsoft.AspNetCore.Mvc.IUrlHelper GetUrlHelper(Microsoft.AspNetCore.Mvc.ActionContext context); } - - public class KnownRouteValueConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint + public class KnownRouteValueConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy { public KnownRouteValueConstraint(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; } - public abstract class RouteValueAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IRouteValueProvider { + protected RouteValueAttribute(string routeKey, string routeValue) => throw null; public string RouteKey { get => throw null; } public string RouteValue { get => throw null; } - protected RouteValueAttribute(string routeKey, string routeValue) => throw null; } - public class UrlHelper : Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase { public override string Action(Microsoft.AspNetCore.Mvc.Routing.UrlActionContext actionContext) => throw null; + public UrlHelper(Microsoft.AspNetCore.Mvc.ActionContext actionContext) : base(default(Microsoft.AspNetCore.Mvc.ActionContext)) => throw null; protected virtual string GenerateUrl(string protocol, string host, Microsoft.AspNetCore.Routing.VirtualPathData pathData, string fragment) => throw null; protected virtual Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPathData(string routeName, Microsoft.AspNetCore.Routing.RouteValueDictionary values) => throw null; protected Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } - public override string RouteUrl(Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext routeContext) => throw null; protected Microsoft.AspNetCore.Routing.IRouter Router { get => throw null; } - public UrlHelper(Microsoft.AspNetCore.Mvc.ActionContext actionContext) : base(default(Microsoft.AspNetCore.Mvc.ActionContext)) => throw null; + public override string RouteUrl(Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext routeContext) => throw null; } - public abstract class UrlHelperBase : Microsoft.AspNetCore.Mvc.IUrlHelper { public abstract string Action(Microsoft.AspNetCore.Mvc.Routing.UrlActionContext actionContext); public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } protected Microsoft.AspNetCore.Routing.RouteValueDictionary AmbientValues { get => throw null; } public virtual string Content(string contentPath) => throw null; - protected string GenerateUrl(string protocol, string host, string path) => throw null; + protected UrlHelperBase(Microsoft.AspNetCore.Mvc.ActionContext actionContext) => throw null; protected string GenerateUrl(string protocol, string host, string virtualPath, string fragment) => throw null; + protected string GenerateUrl(string protocol, string host, string path) => throw null; protected Microsoft.AspNetCore.Routing.RouteValueDictionary GetValuesDictionary(object values) => throw null; public virtual bool IsLocalUrl(string url) => throw null; public virtual string Link(string routeName, object values) => throw null; public abstract string RouteUrl(Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext routeContext); - protected UrlHelperBase(Microsoft.AspNetCore.Mvc.ActionContext actionContext) => throw null; } - public class UrlHelperFactory : Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory { - public Microsoft.AspNetCore.Mvc.IUrlHelper GetUrlHelper(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; public UrlHelperFactory() => throw null; + public Microsoft.AspNetCore.Mvc.IUrlHelper GetUrlHelper(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; } - + } + public sealed class SerializableError : System.Collections.Generic.Dictionary + { + public SerializableError() => throw null; + public SerializableError(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; + } + public class ServiceFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + { + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public ServiceFilterAttribute(System.Type type) => throw null; + public bool IsReusable { get => throw null; set { } } + public int Order { get => throw null; set { } } + public System.Type ServiceType { get => throw null; } + } + public class SignInResult : Microsoft.AspNetCore.Mvc.ActionResult + { + public string AuthenticationScheme { get => throw null; set { } } + public SignInResult(System.Security.Claims.ClaimsPrincipal principal) => throw null; + public SignInResult(string authenticationScheme, System.Security.Claims.ClaimsPrincipal principal) => throw null; + public SignInResult(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public SignInResult(string authenticationScheme, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set { } } + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } + } + public class SignOutResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Http.IResult + { + public System.Collections.Generic.IList AuthenticationSchemes { get => throw null; set { } } + public SignOutResult() => throw null; + public SignOutResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public SignOutResult(string authenticationScheme) => throw null; + public SignOutResult(System.Collections.Generic.IList authenticationSchemes) => throw null; + public SignOutResult(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public SignOutResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + System.Threading.Tasks.Task Microsoft.AspNetCore.Http.IResult.ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } + } + public class StatusCodeResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + { + public StatusCodeResult(int statusCode) => throw null; + public override void ExecuteResult(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public int StatusCode { get => throw null; } + int? Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult.StatusCode { get => throw null; } + } + public class TypeFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + { + public object[] Arguments { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public TypeFilterAttribute(System.Type type) => throw null; + public System.Type ImplementationType { get => throw null; } + public bool IsReusable { get => throw null; set { } } + public int Order { get => throw null; set { } } + } + public class UnauthorizedObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult + { + public UnauthorizedObjectResult(object value) : base(default(object)) => throw null; + } + public class UnauthorizedResult : Microsoft.AspNetCore.Mvc.StatusCodeResult + { + public UnauthorizedResult() : base(default(int)) => throw null; + } + public class UnprocessableEntityObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult + { + public UnprocessableEntityObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(object)) => throw null; + public UnprocessableEntityObjectResult(object error) : base(default(object)) => throw null; + } + public class UnprocessableEntityResult : Microsoft.AspNetCore.Mvc.StatusCodeResult + { + public UnprocessableEntityResult() : base(default(int)) => throw null; + } + public class UnsupportedMediaTypeResult : Microsoft.AspNetCore.Mvc.StatusCodeResult + { + public UnsupportedMediaTypeResult() : base(default(int)) => throw null; + } + public static partial class UrlHelperExtensions + { + public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper) => throw null; + public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action) => throw null; + public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, object values) => throw null; + public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller) => throw null; + public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values) => throw null; + public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values, string protocol) => throw null; + public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values, string protocol, string host) => throw null; + public static string Action(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action, string controller, object values, string protocol, string host, string fragment) => throw null; + public static string ActionLink(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string action = default(string), string controller = default(string), object values = default(object), string protocol = default(string), string host = default(string), string fragment = default(string)) => throw null; + public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName) => throw null; + public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler) => throw null; + public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, object values) => throw null; + public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values) => throw null; + public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values, string protocol) => throw null; + public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values, string protocol, string host) => throw null; + public static string Page(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName, string pageHandler, object values, string protocol, string host, string fragment) => throw null; + public static string PageLink(this Microsoft.AspNetCore.Mvc.IUrlHelper urlHelper, string pageName = default(string), string pageHandler = default(string), object values = default(object), string protocol = default(string), string host = default(string), string fragment = default(string)) => throw null; + public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, object values) => throw null; + public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName) => throw null; + public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values) => throw null; + public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values, string protocol) => throw null; + public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values, string protocol, string host) => throw null; + public static string RouteUrl(this Microsoft.AspNetCore.Mvc.IUrlHelper helper, string routeName, object values, string protocol, string host, string fragment) => throw null; + } + public class ValidationProblemDetails : Microsoft.AspNetCore.Http.HttpValidationProblemDetails + { + public ValidationProblemDetails() => throw null; + public ValidationProblemDetails(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; + public ValidationProblemDetails(System.Collections.Generic.IDictionary errors) => throw null; + public System.Collections.Generic.IDictionary Errors { get => throw null; } } namespace ViewFeatures { public interface IKeepTempDataResult : Microsoft.AspNetCore.Mvc.IActionResult { } - + } + public class VirtualFileResult : Microsoft.AspNetCore.Mvc.FileResult + { + public VirtualFileResult(string fileName, string contentType) : base(default(string)) => throw null; + public VirtualFileResult(string fileName, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) : base(default(string)) => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public string FileName { get => throw null; set { } } + public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set { } } } } namespace Routing { - public static class ControllerLinkGeneratorExtensions + public static partial class ControllerLinkGeneratorExtensions { public static string GetPathByAction(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string action = default(string), string controller = default(string), object values = default(object), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; public static string GetPathByAction(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string action, string controller, object values = default(object), Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; public static string GetUriByAction(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string action = default(string), string controller = default(string), object values = default(object), string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; public static string GetUriByAction(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string action, string controller, object values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; } - - public static class PageLinkGeneratorExtensions + public static partial class PageLinkGeneratorExtensions { public static string GetPathByPage(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string page = default(string), string handler = default(string), object values = default(object), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; public static string GetPathByPage(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string page, string handler = default(string), object values = default(object), Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; public static string GetUriByPage(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string page = default(string), string handler = default(string), object values = default(object), string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; public static string GetUriByPage(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string page, string handler, object values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; } - } } namespace Extensions { namespace DependencyInjection { - public static class ApplicationModelConventionExtensions + public static partial class ApplicationModelConventionExtensions { - public static void Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention actionModelConvention) => throw null; public static void Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IControllerModelConvention controllerModelConvention) => throw null; - public static void Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelBaseConvention parameterModelConvention) => throw null; + public static void Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention actionModelConvention) => throw null; public static void Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelConvention parameterModelConvention) => throw null; - public static void RemoveType(this System.Collections.Generic.IList list, System.Type type) => throw null; + public static void Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelBaseConvention parameterModelConvention) => throw null; public static void RemoveType(this System.Collections.Generic.IList list) where TApplicationModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention => throw null; + public static void RemoveType(this System.Collections.Generic.IList list, System.Type type) => throw null; } - public interface IMvcBuilder { Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager PartManager { get; } Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - public interface IMvcCoreBuilder { Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager PartManager { get; } Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - - public static class MvcCoreMvcBuilderExtensions + public static partial class MvcCoreMvcBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddApplicationPart(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Reflection.Assembly assembly) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddControllersAsServices(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; @@ -3556,8 +3137,7 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IMvcBuilder ConfigureApplicationPartManager(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder SetCompatibilityVersion(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.CompatibilityVersion version) => throw null; } - - public static class MvcCoreMvcCoreBuilderExtensions + public static partial class MvcCoreMvcCoreBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddApplicationPart(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Reflection.Assembly assembly) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddAuthorization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; @@ -3571,13 +3151,11 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder ConfigureApplicationPartManager(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder SetCompatibilityVersion(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.CompatibilityVersion version) => throw null; } - - public static class MvcCoreServiceCollectionExtensions + public static partial class MvcCoreServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Cors.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Cors.cs index d261e299d25..101f905ed87 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Cors.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Cors.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.Cors, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -15,13 +14,8 @@ namespace Microsoft public CorsAuthorizationFilter(Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider policyProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public System.Threading.Tasks.Task OnAuthorizationAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context) => throw null; public int Order { get => throw null; } - public string PolicyName { get => throw null; set => throw null; } + public string PolicyName { get => throw null; set { } } } - - internal interface ICorsAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - } - } } } @@ -29,13 +23,12 @@ namespace Microsoft { namespace DependencyInjection { - public static class MvcCorsMvcCoreBuilderExtensions + public static partial class MvcCorsMvcCoreBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCors(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCors(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder ConfigureCors(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.DataAnnotations.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.DataAnnotations.cs index a280c4ccc09..0095fefebbf 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.DataAnnotations.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.DataAnnotations.cs @@ -1,18 +1,11 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Mvc { - public class HiddenInputAttribute : System.Attribute - { - public bool DisplayValue { get => throw null; set => throw null; } - public HiddenInputAttribute() => throw null; - } - namespace DataAnnotations { public abstract class AttributeAdapterBase : Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapter, Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator where TAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute @@ -20,53 +13,50 @@ namespace Microsoft public AttributeAdapterBase(TAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) : base(default(TAttribute), default(Microsoft.Extensions.Localization.IStringLocalizer)) => throw null; public abstract string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext); } - public interface IAttributeAdapter : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator { string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext); } - public interface IValidationAttributeAdapterProvider { Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter GetAttributeAdapter(System.ComponentModel.DataAnnotations.ValidationAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer); } - public class MvcDataAnnotationsLocalizationOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + public MvcDataAnnotationsLocalizationOptions() => throw null; public System.Func DataAnnotationLocalizerProvider; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public MvcDataAnnotationsLocalizationOptions() => throw null; } - - public class RequiredAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase + public sealed class RequiredAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase { public override void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) => throw null; - public override string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) => throw null; public RequiredAttributeAdapter(System.ComponentModel.DataAnnotations.RequiredAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) : base(default(System.ComponentModel.DataAnnotations.RequiredAttribute), default(Microsoft.Extensions.Localization.IStringLocalizer)) => throw null; + public override string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext) => throw null; } - public abstract class ValidationAttributeAdapter : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator where TAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public abstract void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context); public TAttribute Attribute { get => throw null; } + public ValidationAttributeAdapter(TAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) => throw null; protected virtual string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, params object[] arguments) => throw null; protected static bool MergeAttribute(System.Collections.Generic.IDictionary attributes, string key, string value) => throw null; - public ValidationAttributeAdapter(TAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) => throw null; } - public class ValidationAttributeAdapterProvider : Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider { - public Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter GetAttributeAdapter(System.ComponentModel.DataAnnotations.ValidationAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) => throw null; public ValidationAttributeAdapterProvider() => throw null; + public Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter GetAttributeAdapter(System.ComponentModel.DataAnnotations.ValidationAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) => throw null; } - public abstract class ValidationProviderAttribute : System.Attribute { - public abstract System.Collections.Generic.IEnumerable GetValidationAttributes(); protected ValidationProviderAttribute() => throw null; + public abstract System.Collections.Generic.IEnumerable GetValidationAttributes(); } - + } + public sealed class HiddenInputAttribute : System.Attribute + { + public HiddenInputAttribute() => throw null; + public bool DisplayValue { get => throw null; set { } } } } } @@ -74,19 +64,17 @@ namespace Microsoft { namespace DependencyInjection { - public static class MvcDataAnnotationsMvcBuilderExtensions + public static partial class MvcDataAnnotationsMvcBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddDataAnnotationsLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddDataAnnotationsLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; } - - public static class MvcDataAnnotationsMvcCoreBuilderExtensions + public static partial class MvcDataAnnotationsMvcCoreBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddDataAnnotations(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddDataAnnotationsLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddDataAnnotationsLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs new file mode 100644 index 00000000000..8436e1dea12 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs @@ -0,0 +1,2 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.AspNetCore.Mvc.Formatters.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs index 3072a22a4da..75b355b4ccf 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,74 +8,6 @@ namespace Microsoft { namespace Formatters { - public class XmlDataContractSerializerInputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy - { - protected override bool CanReadType(System.Type type) => throw null; - protected virtual System.Runtime.Serialization.DataContractSerializer CreateSerializer(System.Type type) => throw null; - protected virtual System.Xml.XmlReader CreateXmlReader(System.IO.Stream readStream, System.Text.Encoding encoding) => throw null; - public virtual Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy ExceptionPolicy { get => throw null; } - protected virtual System.Runtime.Serialization.DataContractSerializer GetCachedSerializer(System.Type type) => throw null; - protected virtual System.Type GetSerializableType(System.Type declaredType) => throw null; - public int MaxDepth { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) => throw null; - public System.Runtime.Serialization.DataContractSerializerSettings SerializerSettings { get => throw null; set => throw null; } - public System.Collections.Generic.IList WrapperProviderFactories { get => throw null; } - public XmlDataContractSerializerInputFormatter(Microsoft.AspNetCore.Mvc.MvcOptions options) => throw null; - public System.Xml.XmlDictionaryReaderQuotas XmlDictionaryReaderQuotas { get => throw null; } - } - - public class XmlDataContractSerializerOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter - { - protected override bool CanWriteType(System.Type type) => throw null; - protected virtual System.Runtime.Serialization.DataContractSerializer CreateSerializer(System.Type type) => throw null; - public virtual System.Xml.XmlWriter CreateXmlWriter(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) => throw null; - public virtual System.Xml.XmlWriter CreateXmlWriter(System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) => throw null; - protected virtual System.Runtime.Serialization.DataContractSerializer GetCachedSerializer(System.Type type) => throw null; - protected virtual System.Type GetSerializableType(System.Type type) => throw null; - public System.Runtime.Serialization.DataContractSerializerSettings SerializerSettings { get => throw null; set => throw null; } - public System.Collections.Generic.IList WrapperProviderFactories { get => throw null; } - public override System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) => throw null; - public System.Xml.XmlWriterSettings WriterSettings { get => throw null; } - public XmlDataContractSerializerOutputFormatter() => throw null; - public XmlDataContractSerializerOutputFormatter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public XmlDataContractSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings) => throw null; - public XmlDataContractSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - } - - public class XmlSerializerInputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy - { - protected override bool CanReadType(System.Type type) => throw null; - protected virtual System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type) => throw null; - protected virtual System.Xml.XmlReader CreateXmlReader(System.IO.Stream readStream, System.Text.Encoding encoding) => throw null; - protected virtual System.Xml.XmlReader CreateXmlReader(System.IO.Stream readStream, System.Text.Encoding encoding, System.Type type) => throw null; - public virtual Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy ExceptionPolicy { get => throw null; } - protected virtual System.Xml.Serialization.XmlSerializer GetCachedSerializer(System.Type type) => throw null; - protected virtual System.Type GetSerializableType(System.Type declaredType) => throw null; - public int MaxDepth { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) => throw null; - public System.Collections.Generic.IList WrapperProviderFactories { get => throw null; } - public System.Xml.XmlDictionaryReaderQuotas XmlDictionaryReaderQuotas { get => throw null; } - public XmlSerializerInputFormatter(Microsoft.AspNetCore.Mvc.MvcOptions options) => throw null; - } - - public class XmlSerializerOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter - { - protected override bool CanWriteType(System.Type type) => throw null; - protected virtual System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type) => throw null; - public virtual System.Xml.XmlWriter CreateXmlWriter(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) => throw null; - public virtual System.Xml.XmlWriter CreateXmlWriter(System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) => throw null; - protected virtual System.Xml.Serialization.XmlSerializer GetCachedSerializer(System.Type type) => throw null; - protected virtual System.Type GetSerializableType(System.Type type) => throw null; - protected virtual void Serialize(System.Xml.Serialization.XmlSerializer xmlSerializer, System.Xml.XmlWriter xmlWriter, object value) => throw null; - public System.Collections.Generic.IList WrapperProviderFactories { get => throw null; } - public override System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) => throw null; - public System.Xml.XmlWriterSettings WriterSettings { get => throw null; } - public XmlSerializerOutputFormatter() => throw null; - public XmlSerializerOutputFormatter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public XmlSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings) => throw null; - public XmlSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - } - namespace Xml { public class DelegatingEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable @@ -87,110 +18,159 @@ namespace Microsoft public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public class DelegatingEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { + public DelegatingEnumerator(System.Collections.Generic.IEnumerator inner, Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider wrapperProvider) => throw null; public TWrapped Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } - public DelegatingEnumerator(System.Collections.Generic.IEnumerator inner, Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider wrapperProvider) => throw null; public void Dispose() => throw null; public bool MoveNext() => throw null; public void Reset() => throw null; } - public class EnumerableWrapperProvider : Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider { public EnumerableWrapperProvider(System.Type sourceEnumerableOfT, Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider elementWrapperProvider) => throw null; public object Wrap(object original) => throw null; public System.Type WrappingType { get => throw null; } } - public class EnumerableWrapperProviderFactory : Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProviderFactory { public EnumerableWrapperProviderFactory(System.Collections.Generic.IEnumerable wrapperProviderFactories) => throw null; public Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider GetProvider(Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext context) => throw null; } - public interface IUnwrappable { object Unwrap(System.Type declaredType); } - public interface IWrapperProvider { object Wrap(object original); System.Type WrappingType { get; } } - public interface IWrapperProviderFactory { Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider GetProvider(Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext context); } - public class MvcXmlOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + public MvcXmlOptions() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public MvcXmlOptions() => throw null; } - - public class ProblemDetailsWrapper : Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable, System.Xml.Serialization.IXmlSerializable + public class ProblemDetailsWrapper : System.Xml.Serialization.IXmlSerializable, Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable { - protected static string EmptyKey; - public System.Xml.Schema.XmlSchema GetSchema() => throw null; public ProblemDetailsWrapper() => throw null; public ProblemDetailsWrapper(Microsoft.AspNetCore.Mvc.ProblemDetails problemDetails) => throw null; + protected static string EmptyKey; + public System.Xml.Schema.XmlSchema GetSchema() => throw null; protected virtual void ReadValue(System.Xml.XmlReader reader, string name) => throw null; public virtual void ReadXml(System.Xml.XmlReader reader) => throw null; object Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable.Unwrap(System.Type declaredType) => throw null; public virtual void WriteXml(System.Xml.XmlWriter writer) => throw null; } - - public class SerializableErrorWrapper : Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable, System.Xml.Serialization.IXmlSerializable + public sealed class SerializableErrorWrapper : System.Xml.Serialization.IXmlSerializable, Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable { + public SerializableErrorWrapper() => throw null; + public SerializableErrorWrapper(Microsoft.AspNetCore.Mvc.SerializableError error) => throw null; public System.Xml.Schema.XmlSchema GetSchema() => throw null; public void ReadXml(System.Xml.XmlReader reader) => throw null; public Microsoft.AspNetCore.Mvc.SerializableError SerializableError { get => throw null; } - public SerializableErrorWrapper() => throw null; - public SerializableErrorWrapper(Microsoft.AspNetCore.Mvc.SerializableError error) => throw null; public object Unwrap(System.Type declaredType) => throw null; public void WriteXml(System.Xml.XmlWriter writer) => throw null; } - public class SerializableErrorWrapperProvider : Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider { public SerializableErrorWrapperProvider() => throw null; public object Wrap(object original) => throw null; public System.Type WrappingType { get => throw null; } } - public class SerializableErrorWrapperProviderFactory : Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProviderFactory { - public Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider GetProvider(Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext context) => throw null; public SerializableErrorWrapperProviderFactory() => throw null; + public Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider GetProvider(Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext context) => throw null; } - public class ValidationProblemDetailsWrapper : Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper, Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable { - protected override void ReadValue(System.Xml.XmlReader reader, string name) => throw null; - object Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable.Unwrap(System.Type declaredType) => throw null; public ValidationProblemDetailsWrapper() => throw null; public ValidationProblemDetailsWrapper(Microsoft.AspNetCore.Mvc.ValidationProblemDetails problemDetails) => throw null; + protected override void ReadValue(System.Xml.XmlReader reader, string name) => throw null; + object Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable.Unwrap(System.Type declaredType) => throw null; public override void WriteXml(System.Xml.XmlWriter writer) => throw null; } - public class WrapperProviderContext { + public WrapperProviderContext(System.Type declaredType, bool isSerialization) => throw null; public System.Type DeclaredType { get => throw null; } public bool IsSerialization { get => throw null; } - public WrapperProviderContext(System.Type declaredType, bool isSerialization) => throw null; } - - public static class WrapperProviderFactoriesExtensions + public static partial class WrapperProviderFactoriesExtensions { public static Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider GetWrapperProvider(this System.Collections.Generic.IEnumerable wrapperProviderFactories, Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext wrapperProviderContext) => throw null; } - + } + public class XmlDataContractSerializerInputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy + { + protected override bool CanReadType(System.Type type) => throw null; + protected virtual System.Runtime.Serialization.DataContractSerializer CreateSerializer(System.Type type) => throw null; + protected virtual System.Xml.XmlReader CreateXmlReader(System.IO.Stream readStream, System.Text.Encoding encoding) => throw null; + public XmlDataContractSerializerInputFormatter(Microsoft.AspNetCore.Mvc.MvcOptions options) => throw null; + public virtual Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy ExceptionPolicy { get => throw null; } + protected virtual System.Runtime.Serialization.DataContractSerializer GetCachedSerializer(System.Type type) => throw null; + protected virtual System.Type GetSerializableType(System.Type declaredType) => throw null; + public int MaxDepth { get => throw null; set { } } + public override System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) => throw null; + public System.Runtime.Serialization.DataContractSerializerSettings SerializerSettings { get => throw null; set { } } + public System.Collections.Generic.IList WrapperProviderFactories { get => throw null; } + public System.Xml.XmlDictionaryReaderQuotas XmlDictionaryReaderQuotas { get => throw null; } + } + public class XmlDataContractSerializerOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter + { + protected override bool CanWriteType(System.Type type) => throw null; + protected virtual System.Runtime.Serialization.DataContractSerializer CreateSerializer(System.Type type) => throw null; + public virtual System.Xml.XmlWriter CreateXmlWriter(System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) => throw null; + public virtual System.Xml.XmlWriter CreateXmlWriter(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) => throw null; + public XmlDataContractSerializerOutputFormatter() => throw null; + public XmlDataContractSerializerOutputFormatter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public XmlDataContractSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings) => throw null; + public XmlDataContractSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + protected virtual System.Runtime.Serialization.DataContractSerializer GetCachedSerializer(System.Type type) => throw null; + protected virtual System.Type GetSerializableType(System.Type type) => throw null; + public System.Runtime.Serialization.DataContractSerializerSettings SerializerSettings { get => throw null; set { } } + public System.Collections.Generic.IList WrapperProviderFactories { get => throw null; } + public override System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) => throw null; + public System.Xml.XmlWriterSettings WriterSettings { get => throw null; } + } + public class XmlSerializerInputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy + { + protected override bool CanReadType(System.Type type) => throw null; + protected virtual System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type) => throw null; + protected virtual System.Xml.XmlReader CreateXmlReader(System.IO.Stream readStream, System.Text.Encoding encoding, System.Type type) => throw null; + protected virtual System.Xml.XmlReader CreateXmlReader(System.IO.Stream readStream, System.Text.Encoding encoding) => throw null; + public XmlSerializerInputFormatter(Microsoft.AspNetCore.Mvc.MvcOptions options) => throw null; + public virtual Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy ExceptionPolicy { get => throw null; } + protected virtual System.Xml.Serialization.XmlSerializer GetCachedSerializer(System.Type type) => throw null; + protected virtual System.Type GetSerializableType(System.Type declaredType) => throw null; + public int MaxDepth { get => throw null; set { } } + public override System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding) => throw null; + public System.Collections.Generic.IList WrapperProviderFactories { get => throw null; } + public System.Xml.XmlDictionaryReaderQuotas XmlDictionaryReaderQuotas { get => throw null; } + } + public class XmlSerializerOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter + { + protected override bool CanWriteType(System.Type type) => throw null; + protected virtual System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type) => throw null; + public virtual System.Xml.XmlWriter CreateXmlWriter(System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) => throw null; + public virtual System.Xml.XmlWriter CreateXmlWriter(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.IO.TextWriter writer, System.Xml.XmlWriterSettings xmlWriterSettings) => throw null; + public XmlSerializerOutputFormatter() => throw null; + public XmlSerializerOutputFormatter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public XmlSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings) => throw null; + public XmlSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + protected virtual System.Xml.Serialization.XmlSerializer GetCachedSerializer(System.Type type) => throw null; + protected virtual System.Type GetSerializableType(System.Type type) => throw null; + protected virtual void Serialize(System.Xml.Serialization.XmlSerializer xmlSerializer, System.Xml.XmlWriter xmlWriter, object value) => throw null; + public System.Collections.Generic.IList WrapperProviderFactories { get => throw null; } + public override System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) => throw null; + public System.Xml.XmlWriterSettings WriterSettings { get => throw null; } } } namespace ModelBinding @@ -202,7 +182,6 @@ namespace Microsoft public void CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context) => throw null; public DataMemberRequiredBindingMetadataProvider() => throw null; } - } } } @@ -211,7 +190,7 @@ namespace Microsoft { namespace DependencyInjection { - public static class MvcXmlMvcBuilderExtensions + public static partial class MvcXmlMvcBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddXmlDataContractSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddXmlDataContractSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; @@ -219,8 +198,7 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddXmlSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddXmlSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; } - - public static class MvcXmlMvcCoreBuilderExtensions + public static partial class MvcXmlMvcCoreBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddXmlDataContractSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddXmlDataContractSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; @@ -228,7 +206,6 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddXmlSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddXmlSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Localization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Localization.cs index 2e1d41380f9..eeb8ed17261 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Localization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Localization.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.Localization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -11,85 +10,75 @@ namespace Microsoft { public class HtmlLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer { + public HtmlLocalizer(Microsoft.Extensions.Localization.IStringLocalizer localizer) => throw null; public virtual System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures) => throw null; public virtual Microsoft.Extensions.Localization.LocalizedString GetString(string name) => throw null; public virtual Microsoft.Extensions.Localization.LocalizedString GetString(string name, params object[] arguments) => throw null; - public HtmlLocalizer(Microsoft.Extensions.Localization.IStringLocalizer localizer) => throw null; - public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name, params object[] arguments] { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name] { get => throw null; } + public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name, params object[] arguments] { get => throw null; } protected virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString ToHtmlString(Microsoft.Extensions.Localization.LocalizedString result) => throw null; protected virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString ToHtmlString(Microsoft.Extensions.Localization.LocalizedString result, object[] arguments) => throw null; } - - public class HtmlLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer, Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer + public class HtmlLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer, Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer { + public HtmlLocalizer(Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory factory) => throw null; public virtual System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures) => throw null; public virtual Microsoft.Extensions.Localization.LocalizedString GetString(string name) => throw null; public virtual Microsoft.Extensions.Localization.LocalizedString GetString(string name, params object[] arguments) => throw null; - public HtmlLocalizer(Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory factory) => throw null; - public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name, params object[] arguments] { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name] { get => throw null; } + public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name, params object[] arguments] { get => throw null; } } - - public static class HtmlLocalizerExtensions + public static partial class HtmlLocalizerExtensions { public static System.Collections.Generic.IEnumerable GetAllStrings(this Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer htmlLocalizer) => throw null; public static Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString GetHtml(this Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer htmlLocalizer, string name) => throw null; public static Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString GetHtml(this Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer htmlLocalizer, string name, params object[] arguments) => throw null; } - public class HtmlLocalizerFactory : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory { public virtual Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer Create(System.Type resourceSource) => throw null; public virtual Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer Create(string baseName, string location) => throw null; public HtmlLocalizerFactory(Microsoft.Extensions.Localization.IStringLocalizerFactory localizerFactory) => throw null; } - public interface IHtmlLocalizer { System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures); Microsoft.Extensions.Localization.LocalizedString GetString(string name); Microsoft.Extensions.Localization.LocalizedString GetString(string name, params object[] arguments); - Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name, params object[] arguments] { get; } Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name] { get; } + Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name, params object[] arguments] { get; } } - public interface IHtmlLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer { } - public interface IHtmlLocalizerFactory { Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer Create(System.Type resourceSource); Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer Create(string baseName, string location); } - public interface IViewLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer { } - public class LocalizedHtmlString : Microsoft.AspNetCore.Html.IHtmlContent { - public bool IsResourceNotFound { get => throw null; } public LocalizedHtmlString(string name, string value) => throw null; public LocalizedHtmlString(string name, string value, bool isResourceNotFound) => throw null; public LocalizedHtmlString(string name, string value, bool isResourceNotFound, params object[] arguments) => throw null; + public bool IsResourceNotFound { get => throw null; } public string Name { get => throw null; } public string Value { get => throw null; } public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - - public class ViewLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer, Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer, Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware + public class ViewLocalizer : Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer, Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer, Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware { public void Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; + public ViewLocalizer(Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory localizerFactory, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) => throw null; public System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures) => throw null; public Microsoft.Extensions.Localization.LocalizedString GetString(string name) => throw null; public Microsoft.Extensions.Localization.LocalizedString GetString(string name, params object[] values) => throw null; - public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string key, params object[] arguments] { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string key] { get => throw null; } - public ViewLocalizer(Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory localizerFactory, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string key, params object[] arguments] { get => throw null; } } - } } } @@ -97,38 +86,36 @@ namespace Microsoft { namespace DependencyInjection { - public static class MvcLocalizationMvcBuilderExtensions + public static partial class MvcLocalizationMvcBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action setupAction) => throw null; } - - public static class MvcLocalizationMvcCoreBuilderExtensions + public static partial class MvcLocalizationMvcCoreBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action localizationOptionsSetupAction, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action dataAnnotationsLocalizationOptionsSetupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddViewLocalization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action setupAction) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs index eba7a1fa50f..9e6294d57b7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.Razor, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -15,7 +14,6 @@ namespace Microsoft public override System.Collections.Generic.IEnumerable GetApplicationParts(System.Reflection.Assembly assembly) => throw null; public static System.Collections.Generic.IEnumerable GetDefaultApplicationParts(System.Reflection.Assembly assembly) => throw null; } - public class CompiledRazorAssemblyPart : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart, Microsoft.AspNetCore.Mvc.ApplicationParts.IRazorCompiledItemProvider { public System.Reflection.Assembly Assembly { get => throw null; } @@ -23,59 +21,97 @@ namespace Microsoft public CompiledRazorAssemblyPart(System.Reflection.Assembly assembly) => throw null; public override string Name { get => throw null; } } - - public class ConsolidatedAssemblyApplicationPartFactory : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory + public sealed class ConsolidatedAssemblyApplicationPartFactory : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory { public ConsolidatedAssemblyApplicationPartFactory() => throw null; public override System.Collections.Generic.IEnumerable GetApplicationParts(System.Reflection.Assembly assembly) => throw null; } - public interface IRazorCompiledItemProvider { System.Collections.Generic.IEnumerable CompiledItems { get; } } - } namespace Diagnostics { - public class AfterViewPageEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterViewPageEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } + protected override int Count { get => throw null; } public AfterViewPageEventData(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Razor.IRazorPage Page { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } } - - public class BeforeViewPageEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeViewPageEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } - public BeforeViewPageEventData(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforeViewPageEventData(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public static string EventName; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Razor.IRazorPage Page { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } } - } namespace Razor { + namespace Compilation + { + public class CompiledViewDescriptor + { + public CompiledViewDescriptor() => throw null; + public CompiledViewDescriptor(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item) => throw null; + public CompiledViewDescriptor(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item, Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute attribute) => throw null; + public System.Collections.Generic.IList ExpirationTokens { get => throw null; set { } } + public Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem Item { get => throw null; set { } } + public string RelativePath { get => throw null; set { } } + public System.Type Type { get => throw null; } + public Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute ViewAttribute { get => throw null; set { } } + } + public interface IViewCompiler + { + System.Threading.Tasks.Task CompileAsync(string relativePath); + } + public interface IViewCompilerProvider + { + Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler GetCompiler(); + } + public class RazorViewAttribute : System.Attribute + { + public RazorViewAttribute(string path, System.Type viewType) => throw null; + public string Path { get => throw null; } + public System.Type ViewType { get => throw null; } + } + public class ViewsFeature + { + public ViewsFeature() => throw null; + public System.Collections.Generic.IList ViewDescriptors { get => throw null; } + } + } public class HelperResult : Microsoft.AspNetCore.Html.IHtmlContent { public HelperResult(System.Func asyncAction) => throw null; public System.Func WriteAction { get => throw null; } public virtual void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - - internal interface IModelTypeProvider + namespace Infrastructure { + public sealed class TagHelperMemoryCacheProvider + { + public Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; } + public TagHelperMemoryCacheProvider() => throw null; + } + } + namespace Internal + { + public class RazorInjectAttribute : System.Attribute + { + public RazorInjectAttribute() => throw null; + } } - public interface IRazorPage { Microsoft.AspNetCore.Html.IHtmlContent BodyContent { get; set; } @@ -88,90 +124,77 @@ namespace Microsoft System.Collections.Generic.IDictionary SectionWriters { get; } Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get; set; } } - public interface IRazorPageActivator { void Activate(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context); } - public interface IRazorPageFactoryProvider { Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult CreateFactory(string relativePath); } - public interface IRazorViewEngine : Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine { Microsoft.AspNetCore.Mvc.Razor.RazorPageResult FindPage(Microsoft.AspNetCore.Mvc.ActionContext context, string pageName); string GetAbsolutePath(string executingFilePath, string pagePath); Microsoft.AspNetCore.Mvc.Razor.RazorPageResult GetPage(string executingFilePath, string pagePath); } - public interface ITagHelperActivator { TTagHelper Create(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper; } - public interface ITagHelperFactory { TTagHelper CreateTagHelper(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper; } - public interface ITagHelperInitializer where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper { void Initialize(TTagHelper helper, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context); } - public interface IViewLocationExpander { System.Collections.Generic.IEnumerable ExpandViewLocations(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context, System.Collections.Generic.IEnumerable viewLocations); void PopulateValues(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context); } - public class LanguageViewLocationExpander : Microsoft.AspNetCore.Mvc.Razor.IViewLocationExpander { - public virtual System.Collections.Generic.IEnumerable ExpandViewLocations(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context, System.Collections.Generic.IEnumerable viewLocations) => throw null; public LanguageViewLocationExpander() => throw null; public LanguageViewLocationExpander(Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; + public virtual System.Collections.Generic.IEnumerable ExpandViewLocations(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context, System.Collections.Generic.IEnumerable viewLocations) => throw null; public void PopulateValues(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context) => throw null; } - - public enum LanguageViewLocationExpanderFormat : int + public enum LanguageViewLocationExpanderFormat { SubFolder = 0, Suffix = 1, } - public abstract class RazorPage : Microsoft.AspNetCore.Mvc.Razor.RazorPageBase { public override void BeginContext(int position, int length, bool isLiteral) => throw null; public Microsoft.AspNetCore.Http.HttpContext Context { get => throw null; } + protected RazorPage() => throw null; public override void DefineSection(string name, Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate section) => throw null; public override void EndContext() => throw null; public override void EnsureRenderedBodyOrSections() => throw null; public void IgnoreBody() => throw null; public void IgnoreSection(string sectionName) => throw null; public bool IsSectionDefined(string name) => throw null; - protected RazorPage() => throw null; protected virtual Microsoft.AspNetCore.Html.IHtmlContent RenderBody() => throw null; public Microsoft.AspNetCore.Html.HtmlString RenderSection(string name) => throw null; public Microsoft.AspNetCore.Html.HtmlString RenderSection(string name, bool required) => throw null; public System.Threading.Tasks.Task RenderSectionAsync(string name) => throw null; public System.Threading.Tasks.Task RenderSectionAsync(string name, bool required) => throw null; } - public abstract class RazorPage : Microsoft.AspNetCore.Mvc.Razor.RazorPage { - public TModel Model { get => throw null; } protected RazorPage() => throw null; - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } + public TModel Model { get => throw null; } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set { } } } - public class RazorPageActivator : Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator { public void Activate(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) => throw null; public RazorPageActivator(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory, Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper jsonHelper, System.Diagnostics.DiagnosticSource diagnosticSource, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider modelExpressionProvider) => throw null; } - public abstract class RazorPageBase : Microsoft.AspNetCore.Mvc.Razor.IRazorPage { public void AddHtmlAttributeValue(string prefix, int prefixOffset, object value, int valueOffset, int valueLength, bool isLiteral) => throw null; @@ -179,11 +202,12 @@ namespace Microsoft public abstract void BeginContext(int position, int length, bool isLiteral); public virtual void BeginWriteAttribute(string name, string prefix, int prefixOffset, string suffix, int suffixOffset, int attributeValuesCount) => throw null; public void BeginWriteTagHelperAttribute() => throw null; - public Microsoft.AspNetCore.Html.IHtmlContent BodyContent { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Html.IHtmlContent BodyContent { get => throw null; set { } } public TTagHelper CreateTagHelper() where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper => throw null; + protected RazorPageBase() => throw null; protected void DefineSection(string name, System.Func section) => throw null; public virtual void DefineSection(string name, Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate section) => throw null; - public System.Diagnostics.DiagnosticSource DiagnosticSource { get => throw null; set => throw null; } + public System.Diagnostics.DiagnosticSource DiagnosticSource { get => throw null; set { } } public void EndAddHtmlAttributeValues(Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext executionContext) => throw null; public abstract void EndContext(); public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent EndTagHelperWritingScope() => throw null; @@ -193,155 +217,77 @@ namespace Microsoft public abstract System.Threading.Tasks.Task ExecuteAsync(); public virtual System.Threading.Tasks.Task FlushAsync() => throw null; public virtual string Href(string contentPath) => throw null; - public System.Text.Encodings.Web.HtmlEncoder HtmlEncoder { get => throw null; set => throw null; } + public System.Text.Encodings.Web.HtmlEncoder HtmlEncoder { get => throw null; set { } } public string InvalidTagHelperIndexerAssignment(string attributeName, string tagHelperTypeName, string propertyName) => throw null; - public bool IsLayoutBeingRendered { get => throw null; set => throw null; } - public string Layout { get => throw null; set => throw null; } + public bool IsLayoutBeingRendered { get => throw null; set { } } + public string Layout { get => throw null; set { } } public virtual System.IO.TextWriter Output { get => throw null; } - public string Path { get => throw null; set => throw null; } - protected internal virtual System.IO.TextWriter PopWriter() => throw null; - public System.Collections.Generic.IDictionary PreviousSectionWriters { get => throw null; set => throw null; } - protected internal virtual void PushWriter(System.IO.TextWriter writer) => throw null; - protected RazorPageBase() => throw null; + public string Path { get => throw null; set { } } + protected virtual System.IO.TextWriter PopWriter() => throw null; + public System.Collections.Generic.IDictionary PreviousSectionWriters { get => throw null; set { } } + protected virtual void PushWriter(System.IO.TextWriter writer) => throw null; public System.Collections.Generic.IDictionary SectionWriters { get => throw null; } public virtual Microsoft.AspNetCore.Html.HtmlString SetAntiforgeryCookieAndHeader() => throw null; public void StartTagHelperWritingScope(System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; } public virtual System.Security.Claims.ClaimsPrincipal User { get => throw null; } public dynamic ViewBag { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } public virtual void Write(object value) => throw null; public virtual void Write(string value) => throw null; public void WriteAttributeValue(string prefix, int prefixOffset, object value, int valueOffset, int valueLength, bool isLiteral) => throw null; public virtual void WriteLiteral(object value) => throw null; public virtual void WriteLiteral(string value) => throw null; } - public struct RazorPageFactoryResult { - public System.Func RazorPageFactory { get => throw null; } - // Stub generator skipped constructor public RazorPageFactoryResult(Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor viewDescriptor, System.Func razorPageFactory) => throw null; + public System.Func RazorPageFactory { get => throw null; } public bool Success { get => throw null; } public Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor ViewDescriptor { get => throw null; } } - public struct RazorPageResult { + public RazorPageResult(string name, Microsoft.AspNetCore.Mvc.Razor.IRazorPage page) => throw null; + public RazorPageResult(string name, System.Collections.Generic.IEnumerable searchedLocations) => throw null; public string Name { get => throw null; } public Microsoft.AspNetCore.Mvc.Razor.IRazorPage Page { get => throw null; } - // Stub generator skipped constructor - public RazorPageResult(string name, System.Collections.Generic.IEnumerable searchedLocations) => throw null; - public RazorPageResult(string name, Microsoft.AspNetCore.Mvc.Razor.IRazorPage page) => throw null; public System.Collections.Generic.IEnumerable SearchedLocations { get => throw null; } } - public class RazorView : Microsoft.AspNetCore.Mvc.ViewEngines.IView { + public RazorView(Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine viewEngine, Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator pageActivator, System.Collections.Generic.IReadOnlyList viewStartPages, Microsoft.AspNetCore.Mvc.Razor.IRazorPage razorPage, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Diagnostics.DiagnosticListener diagnosticListener) => throw null; public string Path { get => throw null; } public Microsoft.AspNetCore.Mvc.Razor.IRazorPage RazorPage { get => throw null; } - public RazorView(Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine viewEngine, Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator pageActivator, System.Collections.Generic.IReadOnlyList viewStartPages, Microsoft.AspNetCore.Mvc.Razor.IRazorPage razorPage, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Diagnostics.DiagnosticListener diagnosticListener) => throw null; public virtual System.Threading.Tasks.Task RenderAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) => throw null; public System.Collections.Generic.IReadOnlyList ViewStartPages { get => throw null; } } - public class RazorViewEngine : Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine, Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine { + public RazorViewEngine(Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider pageFactory, Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator pageActivator, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Diagnostics.DiagnosticListener diagnosticListener) => throw null; public Microsoft.AspNetCore.Mvc.Razor.RazorPageResult FindPage(Microsoft.AspNetCore.Mvc.ActionContext context, string pageName) => throw null; public Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult FindView(Microsoft.AspNetCore.Mvc.ActionContext context, string viewName, bool isMainPage) => throw null; public string GetAbsolutePath(string executingFilePath, string pagePath) => throw null; public static string GetNormalizedRouteValue(Microsoft.AspNetCore.Mvc.ActionContext context, string key) => throw null; public Microsoft.AspNetCore.Mvc.Razor.RazorPageResult GetPage(string executingFilePath, string pagePath) => throw null; public Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult GetView(string executingFilePath, string viewPath, bool isMainPage) => throw null; - public RazorViewEngine(Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider pageFactory, Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator pageActivator, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Diagnostics.DiagnosticListener diagnosticListener) => throw null; public static string ViewExtension; - protected internal Microsoft.Extensions.Caching.Memory.IMemoryCache ViewLookupCache { get => throw null; } + protected Microsoft.Extensions.Caching.Memory.IMemoryCache ViewLookupCache { get => throw null; } } - public class RazorViewEngineOptions { public System.Collections.Generic.IList AreaPageViewLocationFormats { get => throw null; } public System.Collections.Generic.IList AreaViewLocationFormats { get => throw null; } - public System.Collections.Generic.IList PageViewLocationFormats { get => throw null; } public RazorViewEngineOptions() => throw null; + public System.Collections.Generic.IList PageViewLocationFormats { get => throw null; } public System.Collections.Generic.IList ViewLocationExpanders { get => throw null; } public System.Collections.Generic.IList ViewLocationFormats { get => throw null; } } - public delegate System.Threading.Tasks.Task RenderAsyncDelegate(); - public class TagHelperInitializer : Microsoft.AspNetCore.Mvc.Razor.ITagHelperInitializer where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper { - public void Initialize(TTagHelper helper, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) => throw null; public TagHelperInitializer(System.Action action) => throw null; - } - - public class ViewLocationExpanderContext - { - public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } - public string AreaName { get => throw null; } - public string ControllerName { get => throw null; } - public bool IsMainPage { get => throw null; } - public string PageName { get => throw null; } - public System.Collections.Generic.IDictionary Values { get => throw null; set => throw null; } - public ViewLocationExpanderContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, string viewName, string controllerName, string areaName, string pageName, bool isMainPage) => throw null; - public string ViewName { get => throw null; } - } - - namespace Compilation - { - public class CompiledViewDescriptor - { - public CompiledViewDescriptor() => throw null; - public CompiledViewDescriptor(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item) => throw null; - public CompiledViewDescriptor(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item, Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute attribute) => throw null; - public System.Collections.Generic.IList ExpirationTokens { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem Item { get => throw null; set => throw null; } - public string RelativePath { get => throw null; set => throw null; } - public System.Type Type { get => throw null; } - public Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute ViewAttribute { get => throw null; set => throw null; } - } - - public interface IViewCompiler - { - System.Threading.Tasks.Task CompileAsync(string relativePath); - } - - public interface IViewCompilerProvider - { - Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler GetCompiler(); - } - - public class RazorViewAttribute : System.Attribute - { - public string Path { get => throw null; } - public RazorViewAttribute(string path, System.Type viewType) => throw null; - public System.Type ViewType { get => throw null; } - } - - public class ViewsFeature - { - public System.Collections.Generic.IList ViewDescriptors { get => throw null; } - public ViewsFeature() => throw null; - } - - } - namespace Infrastructure - { - public class TagHelperMemoryCacheProvider - { - public Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; set => throw null; } - public TagHelperMemoryCacheProvider() => throw null; - } - - } - namespace Internal - { - public class RazorInjectAttribute : System.Attribute - { - public RazorInjectAttribute() => throw null; - } - + public void Initialize(TTagHelper helper, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) => throw null; } namespace TagHelpers { @@ -349,58 +295,61 @@ namespace Microsoft { public BodyTagHelper(Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager manager, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base(default(Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; } - public class HeadTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper { public HeadTagHelper(Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager manager, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base(default(Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; } - public interface ITagHelperComponentManager { System.Collections.Generic.ICollection Components { get; } } - public interface ITagHelperComponentPropertyActivator { void Activate(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context, Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent tagHelperComponent); } - public abstract class TagHelperComponentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { + public TagHelperComponentTagHelper(Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager manager, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public override void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentPropertyActivator PropertyActivator { get => throw null; set => throw null; } - public TagHelperComponentTagHelper(Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager manager, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentPropertyActivator PropertyActivator { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class TagHelperFeature { public TagHelperFeature() => throw null; public System.Collections.Generic.IList TagHelpers { get => throw null; } } - - public class TagHelperFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider + public class TagHelperFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider { + public TagHelperFeatureProvider() => throw null; protected virtual bool IncludePart(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart part) => throw null; protected virtual bool IncludeType(System.Reflection.TypeInfo type) => throw null; public void PopulateFeature(System.Collections.Generic.IEnumerable parts, Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeature feature) => throw null; - public TagHelperFeatureProvider() => throw null; } - public class UrlResolutionTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { + public UrlResolutionTagHelper(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; protected System.Text.Encodings.Web.HtmlEncoder HtmlEncoder { get => throw null; } public override int Order { get => throw null; } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; protected void ProcessUrlAttribute(string attributeName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - protected bool TryResolveUrl(string url, out Microsoft.AspNetCore.Html.IHtmlContent resolvedUrl) => throw null; protected bool TryResolveUrl(string url, out string resolvedUrl) => throw null; + protected bool TryResolveUrl(string url, out Microsoft.AspNetCore.Html.IHtmlContent resolvedUrl) => throw null; protected Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory UrlHelperFactory { get => throw null; } - public UrlResolutionTagHelper(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - + } + public class ViewLocationExpanderContext + { + public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } + public string AreaName { get => throw null; } + public string ControllerName { get => throw null; } + public ViewLocationExpanderContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, string viewName, string controllerName, string areaName, string pageName, bool isMainPage) => throw null; + public bool IsMainPage { get => throw null; } + public string PageName { get => throw null; } + public System.Collections.Generic.IDictionary Values { get => throw null; set { } } + public string ViewName { get => throw null; } } } } @@ -409,21 +358,19 @@ namespace Microsoft { namespace DependencyInjection { - public static class MvcRazorMvcBuilderExtensions + public static partial class MvcRazorMvcBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddRazorOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddTagHelpersAsServices(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder InitializeTagHelper(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action initialize) where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper => throw null; } - - public static class MvcRazorMvcCoreBuilderExtensions + public static partial class MvcRazorMvcCoreBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddRazorViewEngine(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddRazorViewEngine(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddTagHelpersAsServices(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder InitializeTagHelper(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action initialize) where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.RazorPages.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.RazorPages.cs index b1967712e1c..eb54f317cb7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.RazorPages.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.RazorPages.cs @@ -1,19 +1,17 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.RazorPages, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public class PageActionEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + public sealed class PageActionEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { public void Add(System.Action convention) => throw null; public void Finally(System.Action finalConvention) => throw null; } - - public static class RazorPagesEndpointRouteBuilderExtensions + public static partial class RazorPagesEndpointRouteBuilderExtensions { public static void MapDynamicPageRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern) where TTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer => throw null; public static void MapDynamicPageRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, object state) where TTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer => throw null; @@ -24,7 +22,6 @@ namespace Microsoft public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToPage(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string page) => throw null; public static Microsoft.AspNetCore.Builder.PageActionEndpointConventionBuilder MapRazorPages(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints) => throw null; } - } namespace Mvc { @@ -34,7 +31,6 @@ namespace Microsoft { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel model); } - public interface IPageApplicationModelPartsProvider { Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel CreateHandlerModel(System.Reflection.MethodInfo method); @@ -42,39 +38,36 @@ namespace Microsoft Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel CreatePropertyModel(System.Reflection.PropertyInfo property); bool IsHandler(System.Reflection.MethodInfo methodInfo); } - public interface IPageApplicationModelProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context); void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context); int Order { get; } } - public interface IPageConvention { } - public interface IPageHandlerModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel model); } - public interface IPageRouteModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel model); } - public interface IPageRouteModelProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext context); void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext context); int Order { get; } } - public class PageApplicationModel { public Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor ActionDescriptor { get => throw null; } public string AreaName { get => throw null; } + public PageApplicationModel(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor, System.Reflection.TypeInfo handlerType, System.Collections.Generic.IReadOnlyList handlerAttributes) => throw null; + public PageApplicationModel(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor, System.Reflection.TypeInfo declaredModelType, System.Reflection.TypeInfo handlerType, System.Collections.Generic.IReadOnlyList handlerAttributes) => throw null; + public PageApplicationModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel other) => throw null; public System.Reflection.TypeInfo DeclaredModelType { get => throw null; } public System.Collections.Generic.IList EndpointMetadata { get => throw null; } public System.Collections.Generic.IList Filters { get => throw null; } @@ -82,25 +75,20 @@ namespace Microsoft public System.Collections.Generic.IList HandlerProperties { get => throw null; } public System.Reflection.TypeInfo HandlerType { get => throw null; } public System.Collections.Generic.IReadOnlyList HandlerTypeAttributes { get => throw null; } - public System.Reflection.TypeInfo ModelType { get => throw null; set => throw null; } - public PageApplicationModel(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor, System.Reflection.TypeInfo handlerType, System.Collections.Generic.IReadOnlyList handlerAttributes) => throw null; - public PageApplicationModel(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor, System.Reflection.TypeInfo declaredModelType, System.Reflection.TypeInfo handlerType, System.Collections.Generic.IReadOnlyList handlerAttributes) => throw null; - public PageApplicationModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel other) => throw null; - public System.Reflection.TypeInfo PageType { get => throw null; set => throw null; } + public System.Reflection.TypeInfo ModelType { get => throw null; set { } } + public System.Reflection.TypeInfo PageType { get => throw null; set { } } public System.Collections.Generic.IDictionary Properties { get => throw null; } public string RelativePath { get => throw null; } public string RouteTemplate { get => throw null; } public string ViewEnginePath { get => throw null; } } - public class PageApplicationModelProviderContext { public Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor ActionDescriptor { get => throw null; } - public Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel PageApplicationModel { get => throw null; set => throw null; } public PageApplicationModelProviderContext(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor descriptor, System.Reflection.TypeInfo pageTypeInfo) => throw null; + public Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel PageApplicationModel { get => throw null; set { } } public System.Reflection.TypeInfo PageType { get => throw null; } } - public class PageConventionCollection : System.Collections.ObjectModel.Collection { public Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention AddAreaFolderApplicationModelConvention(string areaName, string folderPath, System.Action action) => throw null; @@ -113,217 +101,197 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention AddPageRouteModelConvention(string pageName, System.Action action) => throw null; public PageConventionCollection() => throw null; public PageConventionCollection(System.Collections.Generic.IList conventions) => throw null; - public void RemoveType(System.Type pageConventionType) => throw null; public void RemoveType() where TPageConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention => throw null; + public void RemoveType(System.Type pageConventionType) => throw null; } - public class PageHandlerModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel { public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } - public string HandlerName { get => throw null; set => throw null; } - public string HttpMethod { get => throw null; set => throw null; } - System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } - public System.Reflection.MethodInfo MethodInfo { get => throw null; } - public string Name { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel Page { get => throw null; set => throw null; } public PageHandlerModel(System.Reflection.MethodInfo handlerMethod, System.Collections.Generic.IReadOnlyList attributes) => throw null; public PageHandlerModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel other) => throw null; + public string HandlerName { get => throw null; set { } } + public string HttpMethod { get => throw null; set { } } + System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } + public System.Reflection.MethodInfo MethodInfo { get => throw null; } + public string Name { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel Page { get => throw null; set { } } public System.Collections.Generic.IList Parameters { get => throw null; } public System.Collections.Generic.IDictionary Properties { get => throw null; } } - - public class PageParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel + public class PageParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel { - public Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel Handler { get => throw null; set => throw null; } - System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } - public PageParameterModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel other) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; public PageParameterModel(System.Reflection.ParameterInfo parameterInfo, System.Collections.Generic.IReadOnlyList attributes) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; + public PageParameterModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel other) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; + public Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel Handler { get => throw null; set { } } + System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } public System.Reflection.ParameterInfo ParameterInfo { get => throw null; } - public string ParameterName { get => throw null; set => throw null; } + public string ParameterName { get => throw null; set { } } } - public class PagePropertyModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel { - System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } - public Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel Page { get => throw null; set => throw null; } - public PagePropertyModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel other) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; public PagePropertyModel(System.Reflection.PropertyInfo propertyInfo, System.Collections.Generic.IReadOnlyList attributes) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; + public PagePropertyModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel other) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; + System.Reflection.MemberInfo Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel.MemberInfo { get => throw null; } + public Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel Page { get => throw null; set { } } public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } - public string PropertyName { get => throw null; set => throw null; } + public string PropertyName { get => throw null; set { } } } - - public class PageRouteMetadata + public sealed class PageRouteMetadata { - public string PageRoute { get => throw null; } public PageRouteMetadata(string pageRoute, string routeTemplate) => throw null; + public string PageRoute { get => throw null; } public string RouteTemplate { get => throw null; } } - public class PageRouteModel { public string AreaName { get => throw null; } - public PageRouteModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel other) => throw null; public PageRouteModel(string relativePath, string viewEnginePath) => throw null; public PageRouteModel(string relativePath, string viewEnginePath, string areaName) => throw null; + public PageRouteModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel other) => throw null; public System.Collections.Generic.IDictionary Properties { get => throw null; } public string RelativePath { get => throw null; } - public Microsoft.AspNetCore.Routing.IOutboundParameterTransformer RouteParameterTransformer { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Routing.IOutboundParameterTransformer RouteParameterTransformer { get => throw null; set { } } public System.Collections.Generic.IDictionary RouteValues { get => throw null; } public System.Collections.Generic.IList Selectors { get => throw null; } public string ViewEnginePath { get => throw null; } } - public class PageRouteModelProviderContext { public PageRouteModelProviderContext() => throw null; public System.Collections.Generic.IList RouteModels { get => throw null; } } - - public class PageRouteTransformerConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention, Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention + public class PageRouteTransformerConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention, Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention { public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel model) => throw null; public PageRouteTransformerConvention(Microsoft.AspNetCore.Routing.IOutboundParameterTransformer parameterTransformer) => throw null; protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel action) => throw null; } - } namespace Diagnostics { - public class AfterHandlerMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterHandlerMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } + public System.Collections.Generic.IReadOnlyDictionary Arguments { get => throw null; } + protected override int Count { get => throw null; } public AfterHandlerMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethodDescriptor, object instance, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; - public System.Collections.Generic.IReadOnlyDictionary Arguments { get => throw null; } - protected override int Count { get => throw null; } - public const string EventName = default; + public static string EventName; public Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor HandlerMethodDescriptor { get => throw null; } public object Instance { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterPageFilterOnPageHandlerExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterPageFilterOnPageHandlerExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public AfterPageFilterOnPageHandlerExecutedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterPageFilterOnPageHandlerExecutedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext HandlerExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterPageFilterOnPageHandlerExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterPageFilterOnPageHandlerExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public AfterPageFilterOnPageHandlerExecutingEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterPageFilterOnPageHandlerExecutingEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext HandlerExecutingContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterPageFilterOnPageHandlerExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterPageFilterOnPageHandlerExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public AfterPageFilterOnPageHandlerExecutionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterPageFilterOnPageHandlerExecutionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext HandlerExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterPageFilterOnPageHandlerSelectedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterPageFilterOnPageHandlerSelectedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public AfterPageFilterOnPageHandlerSelectedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterPageFilterOnPageHandlerSelectedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext HandlerSelectedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class AfterPageFilterOnPageHandlerSelectionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterPageFilterOnPageHandlerSelectionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public AfterPageFilterOnPageHandlerSelectionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterPageFilterOnPageHandlerSelectionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext HandlerSelectedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforeHandlerMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeHandlerMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } public System.Collections.Generic.IReadOnlyDictionary Arguments { get => throw null; } - public BeforeHandlerMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethodDescriptor, object instance) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforeHandlerMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethodDescriptor, object instance) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor HandlerMethodDescriptor { get => throw null; } public object Instance { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforePageFilterOnPageHandlerExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforePageFilterOnPageHandlerExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public BeforePageFilterOnPageHandlerExecutedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforePageFilterOnPageHandlerExecutedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext HandlerExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforePageFilterOnPageHandlerExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforePageFilterOnPageHandlerExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public BeforePageFilterOnPageHandlerExecutingEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforePageFilterOnPageHandlerExecutingEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext HandlerExecutingContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforePageFilterOnPageHandlerExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforePageFilterOnPageHandlerExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public BeforePageFilterOnPageHandlerExecutionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutionContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforePageFilterOnPageHandlerExecutionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutionContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext HandlerExecutionContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforePageFilterOnPageHandlerSelectedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforePageFilterOnPageHandlerSelectedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public BeforePageFilterOnPageHandlerSelectedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforePageFilterOnPageHandlerSelectedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext HandlerSelectedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - - public class BeforePageFilterOnPageHandlerSelectionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforePageFilterOnPageHandlerSelectionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public BeforePageFilterOnPageHandlerSelectionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforePageFilterOnPageHandlerSelectionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; + public static string EventName; public Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext HandlerSelectedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - } namespace Filters { @@ -332,47 +300,41 @@ namespace Microsoft System.Threading.Tasks.Task OnPageHandlerExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutionDelegate next); System.Threading.Tasks.Task OnPageHandlerSelectionAsync(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context); } - public interface IPageFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnPageHandlerExecuted(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext context); void OnPageHandlerExecuting(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext context); void OnPageHandlerSelected(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context); } - public class PageHandlerExecutedContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public virtual bool Canceled { get => throw null; set => throw null; } - public virtual System.Exception Exception { get => throw null; set => throw null; } - public virtual System.Runtime.ExceptionServices.ExceptionDispatchInfo ExceptionDispatchInfo { get => throw null; set => throw null; } - public virtual bool ExceptionHandled { get => throw null; set => throw null; } + public virtual bool Canceled { get => throw null; set { } } + public PageHandlerExecutedContext(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, System.Collections.Generic.IList filters, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethod, object handlerInstance) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; + public virtual System.Exception Exception { get => throw null; set { } } + public virtual System.Runtime.ExceptionServices.ExceptionDispatchInfo ExceptionDispatchInfo { get => throw null; set { } } + public virtual bool ExceptionHandled { get => throw null; set { } } public virtual object HandlerInstance { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor HandlerMethod { get => throw null; } - public PageHandlerExecutedContext(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, System.Collections.Generic.IList filters, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethod, object handlerInstance) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; - public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set { } } } - public class PageHandlerExecutingContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } + public PageHandlerExecutingContext(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, System.Collections.Generic.IList filters, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethod, System.Collections.Generic.IDictionary handlerArguments, object handlerInstance) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; public virtual System.Collections.Generic.IDictionary HandlerArguments { get => throw null; } public virtual object HandlerInstance { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor HandlerMethod { get => throw null; } - public PageHandlerExecutingContext(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, System.Collections.Generic.IList filters, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethod, System.Collections.Generic.IDictionary handlerArguments, object handlerInstance) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; - public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set { } } } - public delegate System.Threading.Tasks.Task PageHandlerExecutionDelegate(); - public class PageHandlerSelectedContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } - public virtual object HandlerInstance { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor HandlerMethod { get => throw null; set => throw null; } public PageHandlerSelectedContext(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, System.Collections.Generic.IList filters, object handlerInstance) : base(default(Microsoft.AspNetCore.Mvc.ActionContext), default(System.Collections.Generic.IList)) => throw null; + public virtual object HandlerInstance { get => throw null; } + public virtual Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor HandlerMethod { get => throw null; set { } } } - } namespace RazorPages { @@ -380,100 +342,183 @@ namespace Microsoft { public CompiledPageActionDescriptor() => throw null; public CompiledPageActionDescriptor(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor) => throw null; - public System.Reflection.TypeInfo DeclaredModelTypeInfo { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; set => throw null; } - public System.Collections.Generic.IList HandlerMethods { get => throw null; set => throw null; } - public System.Reflection.TypeInfo HandlerTypeInfo { get => throw null; set => throw null; } - public System.Reflection.TypeInfo ModelTypeInfo { get => throw null; set => throw null; } - public System.Reflection.TypeInfo PageTypeInfo { get => throw null; set => throw null; } + public System.Reflection.TypeInfo DeclaredModelTypeInfo { get => throw null; set { } } + public Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; set { } } + public System.Collections.Generic.IList HandlerMethods { get => throw null; set { } } + public System.Reflection.TypeInfo HandlerTypeInfo { get => throw null; set { } } + public System.Reflection.TypeInfo ModelTypeInfo { get => throw null; set { } } + public System.Reflection.TypeInfo PageTypeInfo { get => throw null; set { } } + } + namespace Infrastructure + { + public sealed class CompiledPageActionDescriptorProvider : Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider + { + public CompiledPageActionDescriptorProvider(System.Collections.Generic.IEnumerable pageRouteModelProviders, System.Collections.Generic.IEnumerable applicationModelProviders, Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager applicationPartManager, Microsoft.Extensions.Options.IOptions mvcOptions, Microsoft.Extensions.Options.IOptions pageOptions) => throw null; + public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) => throw null; + public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) => throw null; + public int Order { get => throw null; } + } + public class HandlerMethodDescriptor + { + public HandlerMethodDescriptor() => throw null; + public string HttpMethod { get => throw null; set { } } + public System.Reflection.MethodInfo MethodInfo { get => throw null; set { } } + public string Name { get => throw null; set { } } + public System.Collections.Generic.IList Parameters { get => throw null; set { } } + } + public class HandlerParameterDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor, Microsoft.AspNetCore.Mvc.Infrastructure.IParameterInfoParameterDescriptor + { + public HandlerParameterDescriptor() => throw null; + public System.Reflection.ParameterInfo ParameterInfo { get => throw null; set { } } + } + public interface IPageHandlerMethodSelector + { + Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor Select(Microsoft.AspNetCore.Mvc.RazorPages.PageContext context); + } + public interface IPageLoader + { + Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor Load(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor); + } + public class PageActionDescriptorProvider : Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider + { + protected System.Collections.Generic.IList BuildModel() => throw null; + public PageActionDescriptorProvider(System.Collections.Generic.IEnumerable pageRouteModelProviders, Microsoft.Extensions.Options.IOptions mvcOptionsAccessor, Microsoft.Extensions.Options.IOptions pagesOptionsAccessor) => throw null; + public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) => throw null; + public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) => throw null; + public int Order { get => throw null; set { } } + } + public class PageBoundPropertyDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor, Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor + { + public PageBoundPropertyDescriptor() => throw null; + public System.Reflection.PropertyInfo Property { get => throw null; set { } } + System.Reflection.PropertyInfo Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor.PropertyInfo { get => throw null; } + } + public abstract class PageLoader : Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageLoader + { + protected PageLoader() => throw null; + Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageLoader.Load(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor) => throw null; + public abstract System.Threading.Tasks.Task LoadAsync(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor); + public virtual System.Threading.Tasks.Task LoadAsync(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.EndpointMetadataCollection endpointMetadata) => throw null; + } + public class PageModelAttribute : System.Attribute + { + public PageModelAttribute() => throw null; + } + public class PageResultExecutor : Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor + { + public PageResultExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine compositeViewEngine, Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine razorViewEngine, Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator razorPageActivator, System.Diagnostics.DiagnosticListener diagnosticListener, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) : base(default(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory), default(Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine), default(System.Diagnostics.DiagnosticListener)) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, Microsoft.AspNetCore.Mvc.RazorPages.PageResult result) => throw null; + } + public class PageViewLocationExpander : Microsoft.AspNetCore.Mvc.Razor.IViewLocationExpander + { + public PageViewLocationExpander() => throw null; + public System.Collections.Generic.IEnumerable ExpandViewLocations(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context, System.Collections.Generic.IEnumerable viewLocations) => throw null; + public void PopulateValues(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context) => throw null; + } + public class RazorPageAdapter : Microsoft.AspNetCore.Mvc.Razor.IRazorPage + { + public Microsoft.AspNetCore.Html.IHtmlContent BodyContent { get => throw null; set { } } + public RazorPageAdapter(Microsoft.AspNetCore.Mvc.Razor.RazorPageBase page, System.Type modelType) => throw null; + public void EnsureRenderedBodyOrSections() => throw null; + public System.Threading.Tasks.Task ExecuteAsync() => throw null; + public bool IsLayoutBeingRendered { get => throw null; set { } } + public string Layout { get => throw null; set { } } + public string Path { get => throw null; set { } } + public System.Collections.Generic.IDictionary PreviousSectionWriters { get => throw null; set { } } + public System.Collections.Generic.IDictionary SectionWriters { get => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } + } + public class RazorPageAttribute : Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute + { + public RazorPageAttribute(string path, System.Type viewType, string routeTemplate) : base(default(string), default(System.Type)) => throw null; + public string RouteTemplate { get => throw null; } + } + public class ServiceBasedPageModelActivatorProvider : Microsoft.AspNetCore.Mvc.RazorPages.IPageModelActivatorProvider + { + public System.Func CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; + public System.Action CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; + public ServiceBasedPageModelActivatorProvider() => throw null; + } } - public interface IPageActivatorProvider { System.Func CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); - System.Func CreateAsyncReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; + virtual System.Func CreateAsyncReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; System.Action CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); } - public interface IPageFactoryProvider { - System.Func CreateAsyncPageDisposer(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; + virtual System.Func CreateAsyncPageDisposer(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; System.Action CreatePageDisposer(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); System.Func CreatePageFactory(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); } - public interface IPageModelActivatorProvider { System.Func CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); - System.Func CreateAsyncReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; + virtual System.Func CreateAsyncReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; System.Action CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); } - public interface IPageModelFactoryProvider { - System.Func CreateAsyncModelDisposer(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; + virtual System.Func CreateAsyncModelDisposer(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; System.Action CreateModelDisposer(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); System.Func CreateModelFactory(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); } - public class NonHandlerAttribute : System.Attribute { public NonHandlerAttribute() => throw null; } - public abstract class Page : Microsoft.AspNetCore.Mvc.RazorPages.PageBase { protected Page() => throw null; } - public class PageActionDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor { - public string AreaName { get => throw null; set => throw null; } - public override string DisplayName { get => throw null; set => throw null; } + public string AreaName { get => throw null; set { } } public PageActionDescriptor() => throw null; public PageActionDescriptor(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor other) => throw null; - public string RelativePath { get => throw null; set => throw null; } - public string ViewEnginePath { get => throw null; set => throw null; } + public override string DisplayName { get => throw null; set { } } + public string RelativePath { get => throw null; set { } } + public string ViewEnginePath { get => throw null; set { } } } - public abstract class PageBase : Microsoft.AspNetCore.Mvc.Razor.RazorPageBase { public virtual Microsoft.AspNetCore.Mvc.BadRequestResult BadRequest() => throw null; - public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(object error) => throw null; + public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; public override void BeginContext(int position, int length, bool isLiteral) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge() => throw null; + public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, string contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, string contentType, System.Text.Encoding contentEncoding) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; + protected PageBase() => throw null; public override void EndContext() => throw null; public override void EnsureRenderedBodyOrSections() => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType, string fileDownloadName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName) => throw null; public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, string fileDownloadName) => throw null; public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, string fileDownloadName) => throw null; public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid() => throw null; + public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(params string[] authenticationSchemes) => throw null; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirect(string localUrl) => throw null; public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirectPermanent(string localUrl) => throw null; public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirectPermanentPreserveMethod(string localUrl) => throw null; public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirectPreserveMethod(string localUrl) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { get => throw null; set { } } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.NotFoundResult NotFound() => throw null; public virtual Microsoft.AspNetCore.Mvc.NotFoundObjectResult NotFound(object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.RazorPages.PageResult Page() => throw null; - protected PageBase() => throw null; - public Microsoft.AspNetCore.Mvc.RazorPages.PageContext PageContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.RazorPages.PageContext PageContext { get => throw null; set { } } public virtual Microsoft.AspNetCore.Mvc.PartialViewResult Partial(string viewName) => throw null; public virtual Microsoft.AspNetCore.Mvc.PartialViewResult Partial(string viewName, object model) => throw null; public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType) => throw null; @@ -486,115 +531,113 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, object routeValues, string fragment) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanentPreserveMethod(string actionName = default(string), string controllerName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPreserveMethod(string actionName = default(string), string controllerName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage() => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, object routeValues, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanentPreserveMethod(string pageName = default(string), string pageHandler = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePreserveMethod(string pageName = default(string), string pageHandler = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, string fragment) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(object routeValues) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanentPreserveMethod(string routeName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePreserveMethod(string routeName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public Microsoft.AspNetCore.Http.HttpRequest Request { get => throw null; } public Microsoft.AspNetCore.Http.HttpResponse Response { get => throw null; } public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string authenticationScheme) => throw null; public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal, string authenticationScheme) => throw null; - public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; + public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string authenticationScheme) => throw null; public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut(params string[] authenticationSchemes) => throw null; + public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.StatusCodeResult StatusCode(int statusCode) => throw null; public virtual Microsoft.AspNetCore.Mvc.ObjectResult StatusCode(int statusCode, object value) => throw null; - public virtual System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string prefix) => throw null; - public System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) => throw null; public virtual System.Threading.Tasks.Task TryUpdateModelAsync(TModel model) where TModel : class => throw null; public virtual System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix) where TModel : class => throw null; - public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, System.Func propertyFilter) where TModel : class => throw null; public virtual System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider) where TModel : class => throw null; - public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) where TModel : class => throw null; - public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, params System.Linq.Expressions.Expression>[] includeExpressions) where TModel : class => throw null; public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, params System.Linq.Expressions.Expression>[] includeExpressions) where TModel : class => throw null; + public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, System.Func propertyFilter) where TModel : class => throw null; + public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, params System.Linq.Expressions.Expression>[] includeExpressions) where TModel : class => throw null; + public System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) where TModel : class => throw null; + public virtual System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string prefix) => throw null; + public System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) => throw null; public virtual bool TryValidateModel(object model) => throw null; public virtual bool TryValidateModel(object model, string prefix) => throw null; public virtual Microsoft.AspNetCore.Mvc.UnauthorizedResult Unauthorized() => throw null; - public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType, object arguments) => throw null; public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(string componentName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(string componentName, object arguments) => throw null; - public override Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType, object arguments) => throw null; + public override Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class PageContext : Microsoft.AspNetCore.Mvc.ActionContext { - public virtual Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; set { } } public PageContext() => throw null; public PageContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext) => throw null; - public virtual System.Collections.Generic.IList ValueProviderFactories { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } - public virtual System.Collections.Generic.IList> ViewStartFactories { get => throw null; set => throw null; } + public virtual System.Collections.Generic.IList ValueProviderFactories { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set { } } + public virtual System.Collections.Generic.IList> ViewStartFactories { get => throw null; set { } } } - public class PageContextAttribute : System.Attribute { public PageContextAttribute() => throw null; } - public abstract class PageModel : Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IPageFilter { public virtual Microsoft.AspNetCore.Mvc.BadRequestResult BadRequest() => throw null; - public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(object error) => throw null; + public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge() => throw null; + public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge(params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, string contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, string contentType, System.Text.Encoding contentEncoding) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType, string fileDownloadName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; + protected PageModel() => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName) => throw null; public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType, string fileDownloadName) => throw null; public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType, string fileDownloadName) => throw null; public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid() => throw null; + public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(params string[] authenticationSchemes) => throw null; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirect(string localUrl) => throw null; public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirectPermanent(string localUrl) => throw null; public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirectPermanentPreserveMethod(string localUrl) => throw null; public virtual Microsoft.AspNetCore.Mvc.LocalRedirectResult LocalRedirectPreserveMethod(string localUrl) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider MetadataProvider { get => throw null; set { } } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } public virtual Microsoft.AspNetCore.Mvc.NotFoundResult NotFound() => throw null; public virtual Microsoft.AspNetCore.Mvc.NotFoundObjectResult NotFound(object value) => throw null; @@ -604,13 +647,12 @@ namespace Microsoft public virtual void OnPageHandlerSelected(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) => throw null; public virtual System.Threading.Tasks.Task OnPageHandlerSelectionAsync(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context) => throw null; public virtual Microsoft.AspNetCore.Mvc.RazorPages.PageResult Page() => throw null; - public Microsoft.AspNetCore.Mvc.RazorPages.PageContext PageContext { get => throw null; set => throw null; } - protected PageModel() => throw null; + public Microsoft.AspNetCore.Mvc.RazorPages.PageContext PageContext { get => throw null; set { } } public virtual Microsoft.AspNetCore.Mvc.PartialViewResult Partial(string viewName) => throw null; public virtual Microsoft.AspNetCore.Mvc.PartialViewResult Partial(string viewName, object model) => throw null; public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, string fileDownloadName) => throw null; - protected internal Microsoft.AspNetCore.Mvc.RedirectResult Redirect(string url) => throw null; + protected Microsoft.AspNetCore.Mvc.RedirectResult Redirect(string url) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectResult RedirectPermanent(string url) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectResult RedirectPermanentPreserveMethod(string url) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectResult RedirectPreserveMethod(string url) => throw null; @@ -618,200 +660,92 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName, string controllerName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, object routeValues, string fragment) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, string controllerName, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanentPreserveMethod(string actionName = default(string), string controllerName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPreserveMethod(string actionName = default(string), string controllerName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage() => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, object routeValues, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, string pageHandler, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, object routeValues, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanentPreserveMethod(string pageName = default(string), string pageHandler = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePreserveMethod(string pageName = default(string), string pageHandler = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, string fragment) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(object routeValues) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, string fragment) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName, object routeValues, string fragment) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanentPreserveMethod(string routeName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePreserveMethod(string routeName = default(string), object routeValues = default(object), string fragment = default(string)) => throw null; public Microsoft.AspNetCore.Http.HttpRequest Request { get => throw null; } public Microsoft.AspNetCore.Http.HttpResponse Response { get => throw null; } public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string authenticationScheme) => throw null; public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal, string authenticationScheme) => throw null; - public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; + public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string authenticationScheme) => throw null; public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut(params string[] authenticationSchemes) => throw null; + public virtual Microsoft.AspNetCore.Mvc.SignOutResult SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, params string[] authenticationSchemes) => throw null; public virtual Microsoft.AspNetCore.Mvc.StatusCodeResult StatusCode(int statusCode) => throw null; public virtual Microsoft.AspNetCore.Mvc.ObjectResult StatusCode(int statusCode, object value) => throw null; - public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set => throw null; } - protected internal System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string name) => throw null; - protected internal System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) => throw null; - protected internal System.Threading.Tasks.Task TryUpdateModelAsync(TModel model) where TModel : class => throw null; - protected internal System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name) where TModel : class => throw null; - protected internal System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name, System.Func propertyFilter) where TModel : class => throw null; - protected internal System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider) where TModel : class => throw null; - protected internal System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) where TModel : class => throw null; - protected internal System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, params System.Linq.Expressions.Expression>[] includeExpressions) where TModel : class => throw null; - protected internal System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name, params System.Linq.Expressions.Expression>[] includeExpressions) where TModel : class => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set { } } + protected System.Threading.Tasks.Task TryUpdateModelAsync(TModel model) where TModel : class => throw null; + protected System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name) where TModel : class => throw null; + protected System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider) where TModel : class => throw null; + protected System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name, params System.Linq.Expressions.Expression>[] includeExpressions) where TModel : class => throw null; + protected System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name, System.Func propertyFilter) where TModel : class => throw null; + protected System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, params System.Linq.Expressions.Expression>[] includeExpressions) where TModel : class => throw null; + protected System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) where TModel : class => throw null; + protected System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string name) => throw null; + protected System.Threading.Tasks.Task TryUpdateModelAsync(object model, System.Type modelType, string name, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider, System.Func propertyFilter) => throw null; public virtual bool TryValidateModel(object model) => throw null; public virtual bool TryValidateModel(object model, string name) => throw null; public virtual Microsoft.AspNetCore.Mvc.UnauthorizedResult Unauthorized() => throw null; - public Microsoft.AspNetCore.Mvc.IUrlHelper Url { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.IUrlHelper Url { get => throw null; set { } } public System.Security.Claims.ClaimsPrincipal User { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType, object arguments) => throw null; public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(string componentName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(string componentName, object arguments) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType, object arguments) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; } } - public class PageResult : Microsoft.AspNetCore.Mvc.ActionResult { - public string ContentType { get => throw null; set => throw null; } + public string ContentType { get => throw null; set { } } + public PageResult() => throw null; public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; public object Model { get => throw null; } - public Microsoft.AspNetCore.Mvc.RazorPages.PageBase Page { get => throw null; set => throw null; } - public PageResult() => throw null; - public int? StatusCode { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.RazorPages.PageBase Page { get => throw null; set { } } + public int? StatusCode { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set { } } } - public class RazorPagesOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - public Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection Conventions { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection Conventions { get => throw null; } + public RazorPagesOptions() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public RazorPagesOptions() => throw null; - public string RootDirectory { get => throw null; set => throw null; } - } - - namespace Infrastructure - { - public class CompiledPageActionDescriptorProvider : Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider - { - public CompiledPageActionDescriptorProvider(System.Collections.Generic.IEnumerable pageRouteModelProviders, System.Collections.Generic.IEnumerable applicationModelProviders, Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager applicationPartManager, Microsoft.Extensions.Options.IOptions mvcOptions, Microsoft.Extensions.Options.IOptions pageOptions) => throw null; - public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) => throw null; - public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) => throw null; - public int Order { get => throw null; } - } - - public class HandlerMethodDescriptor - { - public HandlerMethodDescriptor() => throw null; - public string HttpMethod { get => throw null; set => throw null; } - public System.Reflection.MethodInfo MethodInfo { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public System.Collections.Generic.IList Parameters { get => throw null; set => throw null; } - } - - public class HandlerParameterDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor, Microsoft.AspNetCore.Mvc.Infrastructure.IParameterInfoParameterDescriptor - { - public HandlerParameterDescriptor() => throw null; - public System.Reflection.ParameterInfo ParameterInfo { get => throw null; set => throw null; } - } - - public interface IPageHandlerMethodSelector - { - Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor Select(Microsoft.AspNetCore.Mvc.RazorPages.PageContext context); - } - - public interface IPageLoader - { - Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor Load(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor); - } - - public class PageActionDescriptorProvider : Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider - { - protected System.Collections.Generic.IList BuildModel() => throw null; - public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) => throw null; - public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) => throw null; - public int Order { get => throw null; set => throw null; } - public PageActionDescriptorProvider(System.Collections.Generic.IEnumerable pageRouteModelProviders, Microsoft.Extensions.Options.IOptions mvcOptionsAccessor, Microsoft.Extensions.Options.IOptions pagesOptionsAccessor) => throw null; - } - - public class PageBoundPropertyDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor, Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor - { - public PageBoundPropertyDescriptor() => throw null; - public System.Reflection.PropertyInfo Property { get => throw null; set => throw null; } - System.Reflection.PropertyInfo Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor.PropertyInfo { get => throw null; } - } - - public abstract class PageLoader : Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageLoader - { - Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageLoader.Load(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor) => throw null; - public abstract System.Threading.Tasks.Task LoadAsync(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor); - public virtual System.Threading.Tasks.Task LoadAsync(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.EndpointMetadataCollection endpointMetadata) => throw null; - protected PageLoader() => throw null; - } - - public class PageModelAttribute : System.Attribute - { - public PageModelAttribute() => throw null; - } - - public class PageResultExecutor : Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor - { - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.RazorPages.PageContext pageContext, Microsoft.AspNetCore.Mvc.RazorPages.PageResult result) => throw null; - public PageResultExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine compositeViewEngine, Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine razorViewEngine, Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator razorPageActivator, System.Diagnostics.DiagnosticListener diagnosticListener, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) : base(default(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory), default(Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine), default(System.Diagnostics.DiagnosticListener)) => throw null; - } - - public class PageViewLocationExpander : Microsoft.AspNetCore.Mvc.Razor.IViewLocationExpander - { - public System.Collections.Generic.IEnumerable ExpandViewLocations(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context, System.Collections.Generic.IEnumerable viewLocations) => throw null; - public PageViewLocationExpander() => throw null; - public void PopulateValues(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context) => throw null; - } - - public class RazorPageAdapter : Microsoft.AspNetCore.Mvc.Razor.IRazorPage - { - public Microsoft.AspNetCore.Html.IHtmlContent BodyContent { get => throw null; set => throw null; } - public void EnsureRenderedBodyOrSections() => throw null; - public System.Threading.Tasks.Task ExecuteAsync() => throw null; - public bool IsLayoutBeingRendered { get => throw null; set => throw null; } - public string Layout { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary PreviousSectionWriters { get => throw null; set => throw null; } - public RazorPageAdapter(Microsoft.AspNetCore.Mvc.Razor.RazorPageBase page, System.Type modelType) => throw null; - public System.Collections.Generic.IDictionary SectionWriters { get => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } - } - - public class RazorPageAttribute : Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute - { - public RazorPageAttribute(string path, System.Type viewType, string routeTemplate) : base(default(string), default(System.Type)) => throw null; - public string RouteTemplate { get => throw null; } - } - - public class ServiceBasedPageModelActivatorProvider : Microsoft.AspNetCore.Mvc.RazorPages.IPageModelActivatorProvider - { - public System.Func CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; - public System.Action CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; - public ServiceBasedPageModelActivatorProvider() => throw null; - } - + public string RootDirectory { get => throw null; set { } } } } } @@ -820,21 +754,19 @@ namespace Microsoft { namespace DependencyInjection { - public static class MvcRazorPagesMvcBuilderExtensions + public static partial class MvcRazorPagesMvcBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddRazorPagesOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder WithRazorPagesAtContentRoot(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder WithRazorPagesRoot(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, string rootDirectory) => throw null; } - - public static class MvcRazorPagesMvcCoreBuilderExtensions + public static partial class MvcRazorPagesMvcCoreBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddRazorPages(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddRazorPages(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder WithRazorPagesRoot(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, string rootDirectory) => throw null; } - - public static class PageConventionCollectionExtensions + public static partial class PageConventionCollectionExtensions { public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection Add(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelBaseConvention convention) => throw null; public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AddAreaPageRoute(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string pageName, string route) => throw null; @@ -847,14 +779,13 @@ namespace Microsoft public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AuthorizeAreaFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string folderPath, string policy) => throw null; public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AuthorizeAreaPage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string pageName) => throw null; public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AuthorizeAreaPage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string pageName, string policy) => throw null; - public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AuthorizeFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string folderPath) => throw null; public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AuthorizeFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string folderPath, string policy) => throw null; - public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AuthorizePage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string pageName) => throw null; + public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AuthorizeFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string folderPath) => throw null; public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AuthorizePage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string pageName, string policy) => throw null; + public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AuthorizePage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string pageName) => throw null; public static Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention ConfigureFilter(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, System.Func factory) => throw null; public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection ConfigureFilter(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.TagHelpers.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.TagHelpers.cs index 1baf6c52f14..0c9f17486e9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.TagHelpers.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.TagHelpers.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,290 +8,316 @@ namespace Microsoft { namespace Rendering { - public enum ValidationSummary : int + public enum ValidationSummary { - All = 2, - ModelOnly = 1, None = 0, + ModelOnly = 1, + All = 2, } - } namespace TagHelpers { public class AnchorTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { - public string Action { get => throw null; set => throw null; } + public string Action { get => throw null; set { } } + public string Area { get => throw null; set { } } + public string Controller { get => throw null; set { } } public AnchorTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; - public string Area { get => throw null; set => throw null; } - public string Controller { get => throw null; set => throw null; } - public string Fragment { get => throw null; set => throw null; } + public string Fragment { get => throw null; set { } } protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } - public string Host { get => throw null; set => throw null; } + public string Host { get => throw null; set { } } public override int Order { get => throw null; } - public string Page { get => throw null; set => throw null; } - public string PageHandler { get => throw null; set => throw null; } + public string Page { get => throw null; set { } } + public string PageHandler { get => throw null; set { } } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public string Protocol { get => throw null; set => throw null; } - public string Route { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary RouteValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public string Protocol { get => throw null; set { } } + public string Route { get => throw null; set { } } + public System.Collections.Generic.IDictionary RouteValues { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } + } + namespace Cache + { + public class CacheTagKey : System.IEquatable + { + public CacheTagKey(Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper tagHelper, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; + public CacheTagKey(Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper tagHelper) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey other) => throw null; + public string GenerateHashedKey() => throw null; + public string GenerateKey() => throw null; + public override int GetHashCode() => throw null; + } + public class DistributedCacheTagHelperFormatter : Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter + { + public DistributedCacheTagHelperFormatter() => throw null; + public System.Threading.Tasks.Task DeserializeAsync(byte[] value) => throw null; + public System.Threading.Tasks.Task SerializeAsync(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext context) => throw null; + } + public class DistributedCacheTagHelperFormattingContext + { + public DistributedCacheTagHelperFormattingContext() => throw null; + public Microsoft.AspNetCore.Html.HtmlString Html { get => throw null; set { } } + } + public class DistributedCacheTagHelperService : Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperService + { + public DistributedCacheTagHelperService(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage storage, Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter formatter, System.Text.Encodings.Web.HtmlEncoder HtmlEncoder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public System.Threading.Tasks.Task ProcessContentAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output, Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey key, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) => throw null; + } + public class DistributedCacheTagHelperStorage : Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage + { + public DistributedCacheTagHelperStorage(Microsoft.Extensions.Caching.Distributed.IDistributedCache distributedCache) => throw null; + public System.Threading.Tasks.Task GetAsync(string key) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) => throw null; + } + public interface IDistributedCacheTagHelperFormatter + { + System.Threading.Tasks.Task DeserializeAsync(byte[] value); + System.Threading.Tasks.Task SerializeAsync(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext context); + } + public interface IDistributedCacheTagHelperService + { + System.Threading.Tasks.Task ProcessContentAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output, Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey key, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options); + } + public interface IDistributedCacheTagHelperStorage + { + System.Threading.Tasks.Task GetAsync(string key); + System.Threading.Tasks.Task SetAsync(string key, byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options); + } } - public class CacheTagHelper : Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase { public static string CacheKeyPrefix; public CacheTagHelper(Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperMemoryCacheFactory factory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) : base(default(System.Text.Encodings.Web.HtmlEncoder)) => throw null; protected Microsoft.Extensions.Caching.Memory.IMemoryCache MemoryCache { get => throw null; } - public Microsoft.Extensions.Caching.Memory.CacheItemPriority? Priority { get => throw null; set => throw null; } + public Microsoft.Extensions.Caching.Memory.CacheItemPriority? Priority { get => throw null; set { } } public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; } - public abstract class CacheTagHelperBase : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public CacheTagHelperBase(System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; public static System.TimeSpan DefaultExpiration; - public bool Enabled { get => throw null; set => throw null; } - public System.TimeSpan? ExpiresAfter { get => throw null; set => throw null; } - public System.DateTimeOffset? ExpiresOn { get => throw null; set => throw null; } - public System.TimeSpan? ExpiresSliding { get => throw null; set => throw null; } + public bool Enabled { get => throw null; set { } } + public System.TimeSpan? ExpiresAfter { get => throw null; set { } } + public System.DateTimeOffset? ExpiresOn { get => throw null; set { } } + public System.TimeSpan? ExpiresSliding { get => throw null; set { } } protected System.Text.Encodings.Web.HtmlEncoder HtmlEncoder { get => throw null; } public override int Order { get => throw null; } - public string VaryBy { get => throw null; set => throw null; } - public string VaryByCookie { get => throw null; set => throw null; } - public bool VaryByCulture { get => throw null; set => throw null; } - public string VaryByHeader { get => throw null; set => throw null; } - public string VaryByQuery { get => throw null; set => throw null; } - public string VaryByRoute { get => throw null; set => throw null; } - public bool VaryByUser { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public string VaryBy { get => throw null; set { } } + public string VaryByCookie { get => throw null; set { } } + public bool VaryByCulture { get => throw null; set { } } + public string VaryByHeader { get => throw null; set { } } + public string VaryByQuery { get => throw null; set { } } + public string VaryByRoute { get => throw null; set { } } + public bool VaryByUser { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class CacheTagHelperMemoryCacheFactory { public Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; } public CacheTagHelperMemoryCacheFactory(Microsoft.Extensions.Options.IOptions options) => throw null; } - public class CacheTagHelperOptions { public CacheTagHelperOptions() => throw null; - public System.Int64 SizeLimit { get => throw null; set => throw null; } + public long SizeLimit { get => throw null; set { } } } - - public class ComponentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper + public sealed class ComponentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { + public System.Type ComponentType { get => throw null; set { } } public ComponentTagHelper() => throw null; - public System.Type ComponentType { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Parameters { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Parameters { get => throw null; set { } } public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.RenderMode RenderMode { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.RenderMode RenderMode { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class DistributedCacheTagHelper : Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase { public static string CacheKeyPrefix; public DistributedCacheTagHelper(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperService distributedCacheService, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) : base(default(System.Text.Encodings.Web.HtmlEncoder)) => throw null; protected Microsoft.Extensions.Caching.Memory.IMemoryCache MemoryCache { get => throw null; } - public string Name { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; } - public class EnvironmentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public EnvironmentTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) => throw null; - public string Exclude { get => throw null; set => throw null; } + public string Exclude { get => throw null; set { } } protected Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get => throw null; } - public string Include { get => throw null; set => throw null; } - public string Names { get => throw null; set => throw null; } + public string Include { get => throw null; set { } } + public string Names { get => throw null; set { } } public override int Order { get => throw null; } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; } - public class FormActionTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { - public string Action { get => throw null; set => throw null; } - public string Area { get => throw null; set => throw null; } - public string Controller { get => throw null; set => throw null; } + public string Action { get => throw null; set { } } + public string Area { get => throw null; set { } } + public string Controller { get => throw null; set { } } public FormActionTagHelper(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) => throw null; - public string Fragment { get => throw null; set => throw null; } + public string Fragment { get => throw null; set { } } public override int Order { get => throw null; } - public string Page { get => throw null; set => throw null; } - public string PageHandler { get => throw null; set => throw null; } + public string Page { get => throw null; set { } } + public string PageHandler { get => throw null; set { } } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public string Route { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary RouteValues { get => throw null; set => throw null; } + public string Route { get => throw null; set { } } + public System.Collections.Generic.IDictionary RouteValues { get => throw null; set { } } protected Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory UrlHelperFactory { get => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class FormTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { - public string Action { get => throw null; set => throw null; } - public bool? Antiforgery { get => throw null; set => throw null; } - public string Area { get => throw null; set => throw null; } - public string Controller { get => throw null; set => throw null; } + public string Action { get => throw null; set { } } + public bool? Antiforgery { get => throw null; set { } } + public string Area { get => throw null; set { } } + public string Controller { get => throw null; set { } } public FormTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; - public string Fragment { get => throw null; set => throw null; } + public string Fragment { get => throw null; set { } } protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } - public string Method { get => throw null; set => throw null; } + public string Method { get => throw null; set { } } public override int Order { get => throw null; } - public string Page { get => throw null; set => throw null; } - public string PageHandler { get => throw null; set => throw null; } + public string Page { get => throw null; set { } } + public string PageHandler { get => throw null; set { } } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public string Route { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary RouteValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public string Route { get => throw null; set { } } + public System.Collections.Generic.IDictionary RouteValues { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class GlobbingUrlBuilder { public virtual System.Collections.Generic.IReadOnlyList BuildUrlList(string staticUrl, string includePattern, string excludePattern) => throw null; public Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; } - public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; } public GlobbingUrlBuilder(Microsoft.Extensions.FileProviders.IFileProvider fileProvider, Microsoft.Extensions.Caching.Memory.IMemoryCache cache, Microsoft.AspNetCore.Http.PathString requestPathBase) => throw null; + public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; } public Microsoft.AspNetCore.Http.PathString RequestPathBase { get => throw null; } } - public class ImageTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper { - public bool AppendVersion { get => throw null; set => throw null; } - protected internal Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; } - protected internal Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get => throw null; } + public bool AppendVersion { get => throw null; set { } } + protected Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; } public ImageTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) : base(default(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory), default(System.Text.Encodings.Web.HtmlEncoder)) => throw null; public ImageTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider cacheProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) : base(default(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory), default(System.Text.Encodings.Web.HtmlEncoder)) => throw null; + protected Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get => throw null; } public override int Order { get => throw null; } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public string Src { get => throw null; set => throw null; } + public string Src { get => throw null; set { } } } - public class InputTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } - public string Format { get => throw null; set => throw null; } + public InputTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set { } } + public string Format { get => throw null; set { } } protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } protected string GetInputType(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, out string inputTypeHint) => throw null; - public InputTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; - public string InputTypeName { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } + public string InputTypeName { get => throw null; set { } } + public string Name { get => throw null; set { } } public override int Order { get => throw null; } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public string Value { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public string Value { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class LabelTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } - protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } public LabelTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set { } } + protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } public override int Order { get => throw null; } public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class LinkTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper { - public bool? AppendVersion { get => throw null; set => throw null; } - protected internal Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; } - public string FallbackHref { get => throw null; set => throw null; } - public string FallbackHrefExclude { get => throw null; set => throw null; } - public string FallbackHrefInclude { get => throw null; set => throw null; } - public string FallbackTestClass { get => throw null; set => throw null; } - public string FallbackTestProperty { get => throw null; set => throw null; } - public string FallbackTestValue { get => throw null; set => throw null; } - protected internal Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder GlobbingUrlBuilder { get => throw null; set => throw null; } - protected internal Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get => throw null; } - public string Href { get => throw null; set => throw null; } - public string HrefExclude { get => throw null; set => throw null; } - public string HrefInclude { get => throw null; set => throw null; } - protected System.Text.Encodings.Web.JavaScriptEncoder JavaScriptEncoder { get => throw null; } + public bool? AppendVersion { get => throw null; set { } } + protected Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; } public LinkTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider cacheProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.JavaScriptEncoder javaScriptEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) : base(default(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory), default(System.Text.Encodings.Web.HtmlEncoder)) => throw null; + public string FallbackHref { get => throw null; set { } } + public string FallbackHrefExclude { get => throw null; set { } } + public string FallbackHrefInclude { get => throw null; set { } } + public string FallbackTestClass { get => throw null; set { } } + public string FallbackTestProperty { get => throw null; set { } } + public string FallbackTestValue { get => throw null; set { } } + protected Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder GlobbingUrlBuilder { get => throw null; set { } } + protected Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get => throw null; } + public string Href { get => throw null; set { } } + public string HrefExclude { get => throw null; set { } } + public string HrefInclude { get => throw null; set { } } + protected System.Text.Encodings.Web.JavaScriptEncoder JavaScriptEncoder { get => throw null; } public override int Order { get => throw null; } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public bool SuppressFallbackIntegrity { get => throw null; set => throw null; } + public bool SuppressFallbackIntegrity { get => throw null; set { } } } - public class OptionTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { - protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } public OptionTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; + protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } public override int Order { get => throw null; } public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public string Value { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public string Value { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class PartialTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { - public string FallbackName { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } - public object Model { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public bool Optional { get => throw null; set => throw null; } public PartialTagHelper(Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope viewBufferScope) => throw null; + public string FallbackName { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set { } } + public object Model { get => throw null; set { } } + public string Name { get => throw null; set { } } + public bool Optional { get => throw null; set { } } public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set { } } } - public class PersistComponentStateTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public PersistComponentStateTagHelper() => throw null; - public Microsoft.AspNetCore.Mvc.TagHelpers.PersistenceMode? PersistenceMode { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.TagHelpers.PersistenceMode? PersistenceMode { get => throw null; set { } } public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - - public enum PersistenceMode : int + public enum PersistenceMode { Server = 0, WebAssembly = 1, } - public class RenderAtEndOfFormTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { + public RenderAtEndOfFormTagHelper() => throw null; public override void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; public override int Order { get => throw null; } public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public RenderAtEndOfFormTagHelper() => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class ScriptTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper { - public bool? AppendVersion { get => throw null; set => throw null; } - protected internal Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; } - public string FallbackSrc { get => throw null; set => throw null; } - public string FallbackSrcExclude { get => throw null; set => throw null; } - public string FallbackSrcInclude { get => throw null; set => throw null; } - public string FallbackTestExpression { get => throw null; set => throw null; } - protected internal Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder GlobbingUrlBuilder { get => throw null; set => throw null; } - protected internal Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get => throw null; } + public bool? AppendVersion { get => throw null; set { } } + protected Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; } + public ScriptTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider cacheProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.JavaScriptEncoder javaScriptEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) : base(default(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory), default(System.Text.Encodings.Web.HtmlEncoder)) => throw null; + public string FallbackSrc { get => throw null; set { } } + public string FallbackSrcExclude { get => throw null; set { } } + public string FallbackSrcInclude { get => throw null; set { } } + public string FallbackTestExpression { get => throw null; set { } } + protected Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder GlobbingUrlBuilder { get => throw null; set { } } + protected Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get => throw null; } protected System.Text.Encodings.Web.JavaScriptEncoder JavaScriptEncoder { get => throw null; } public override int Order { get => throw null; } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public ScriptTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider cacheProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.JavaScriptEncoder javaScriptEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) : base(default(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory), default(System.Text.Encodings.Web.HtmlEncoder)) => throw null; - public string Src { get => throw null; set => throw null; } - public string SrcExclude { get => throw null; set => throw null; } - public string SrcInclude { get => throw null; set => throw null; } - public bool SuppressFallbackIntegrity { get => throw null; set => throw null; } + public string Src { get => throw null; set { } } + public string SrcExclude { get => throw null; set { } } + public string SrcInclude { get => throw null; set { } } + public bool SuppressFallbackIntegrity { get => throw null; set { } } } - public class SelectTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } + public SelectTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set { } } protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } public override void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; - public System.Collections.Generic.IEnumerable Items { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } + public System.Collections.Generic.IEnumerable Items { get => throw null; set { } } + public string Name { get => throw null; set { } } public override int Order { get => throw null; } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public SelectTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - - public static class TagHelperOutputExtensions + public static partial class TagHelperOutputExtensions { public static void AddClass(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, string classValue, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; public static void CopyHtmlAttribute(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, string attributeName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; @@ -300,94 +325,33 @@ namespace Microsoft public static void RemoveClass(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, string classValue, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; public static void RemoveRange(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, System.Collections.Generic.IEnumerable attributes) => throw null; } - public class TextAreaTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } + public TextAreaTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set { } } protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } - public string Name { get => throw null; set => throw null; } + public string Name { get => throw null; set { } } public override int Order { get => throw null; } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public TextAreaTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class ValidationMessageTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } + public ValidationMessageTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set { } } protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } public override int Order { get => throw null; } public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public ValidationMessageTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } - public class ValidationSummaryTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { + public ValidationSummaryTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } public override int Order { get => throw null; } public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary ValidationSummary { get => throw null; set => throw null; } - public ValidationSummaryTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } - } - - namespace Cache - { - public class CacheTagKey : System.IEquatable - { - public CacheTagKey(Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper tagHelper, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; - public CacheTagKey(Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper tagHelper) => throw null; - public bool Equals(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey other) => throw null; - public override bool Equals(object obj) => throw null; - public string GenerateHashedKey() => throw null; - public string GenerateKey() => throw null; - public override int GetHashCode() => throw null; - } - - public class DistributedCacheTagHelperFormatter : Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter - { - public System.Threading.Tasks.Task DeserializeAsync(System.Byte[] value) => throw null; - public DistributedCacheTagHelperFormatter() => throw null; - public System.Threading.Tasks.Task SerializeAsync(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext context) => throw null; - } - - public class DistributedCacheTagHelperFormattingContext - { - public DistributedCacheTagHelperFormattingContext() => throw null; - public Microsoft.AspNetCore.Html.HtmlString Html { get => throw null; set => throw null; } - } - - public class DistributedCacheTagHelperService : Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperService - { - public DistributedCacheTagHelperService(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage storage, Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter formatter, System.Text.Encodings.Web.HtmlEncoder HtmlEncoder, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public System.Threading.Tasks.Task ProcessContentAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output, Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey key, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) => throw null; - } - - public class DistributedCacheTagHelperStorage : Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage - { - public DistributedCacheTagHelperStorage(Microsoft.Extensions.Caching.Distributed.IDistributedCache distributedCache) => throw null; - public System.Threading.Tasks.Task GetAsync(string key) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, System.Byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) => throw null; - } - - public interface IDistributedCacheTagHelperFormatter - { - System.Threading.Tasks.Task DeserializeAsync(System.Byte[] value); - System.Threading.Tasks.Task SerializeAsync(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext context); - } - - public interface IDistributedCacheTagHelperService - { - System.Threading.Tasks.Task ProcessContentAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output, Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey key, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options); - } - - public interface IDistributedCacheTagHelperStorage - { - System.Threading.Tasks.Task GetAsync(string key); - System.Threading.Tasks.Task SetAsync(string key, System.Byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options); - } - + public Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary ValidationSummary { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } } } } @@ -396,13 +360,12 @@ namespace Microsoft { namespace DependencyInjection { - public static class TagHelperServicesExtensions + public static partial class TagHelperServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCacheTagHelper(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddCacheTagHelperLimits(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action configure) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCacheTagHelperLimits(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action configure) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs index 11c24558c6e..98bbf1e83d8 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,13 +8,12 @@ namespace Microsoft { public class AutoValidateAntiforgeryTokenAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter { - public AutoValidateAntiforgeryTokenAttribute() => throw null; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public AutoValidateAntiforgeryTokenAttribute() => throw null; public bool IsReusable { get => throw null; } - public int Order { get => throw null; set => throw null; } + public int Order { get => throw null; set { } } } - - public abstract class Controller : Microsoft.AspNetCore.Mvc.ControllerBase, Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, System.IDisposable + public abstract class Controller : Microsoft.AspNetCore.Mvc.ControllerBase, Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, System.IDisposable { protected Controller() => throw null; public void Dispose() => throw null; @@ -26,325 +24,218 @@ namespace Microsoft public virtual void OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context) => throw null; public virtual System.Threading.Tasks.Task OnActionExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate next) => throw null; public virtual Microsoft.AspNetCore.Mvc.PartialViewResult PartialView() => throw null; - public virtual Microsoft.AspNetCore.Mvc.PartialViewResult PartialView(object model) => throw null; public virtual Microsoft.AspNetCore.Mvc.PartialViewResult PartialView(string viewName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.PartialViewResult PartialView(object model) => throw null; public virtual Microsoft.AspNetCore.Mvc.PartialViewResult PartialView(string viewName, object model) => throw null; - public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set { } } public virtual Microsoft.AspNetCore.Mvc.ViewResult View() => throw null; - public virtual Microsoft.AspNetCore.Mvc.ViewResult View(object model) => throw null; public virtual Microsoft.AspNetCore.Mvc.ViewResult View(string viewName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ViewResult View(object model) => throw null; public virtual Microsoft.AspNetCore.Mvc.ViewResult View(string viewName, object model) => throw null; public dynamic ViewBag { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType, object arguments) => throw null; public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(string componentName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType) => throw null; public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(string componentName, object arguments) => throw null; - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(System.Type componentType, object arguments) => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set { } } } - public class CookieTempDataProviderOptions { - public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set { } } public CookieTempDataProviderOptions() => throw null; } - - public interface IViewComponentHelper - { - System.Threading.Tasks.Task InvokeAsync(System.Type componentType, object arguments); - System.Threading.Tasks.Task InvokeAsync(string name, object arguments); - } - - public interface IViewComponentResult - { - void Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); - System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); - } - - public class IgnoreAntiforgeryTokenAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy - { - public IgnoreAntiforgeryTokenAttribute() => throw null; - public int Order { get => throw null; set => throw null; } - } - - public class MvcViewOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - public System.Collections.Generic.IList ClientModelValidatorProviders { get => throw null; } - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions HtmlHelperOptions { get => throw null; set => throw null; } - public MvcViewOptions() => throw null; - public System.Collections.Generic.IList ViewEngines { get => throw null; } - } - - public class PageRemoteAttribute : Microsoft.AspNetCore.Mvc.RemoteAttributeBase - { - protected override string GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) => throw null; - public string PageHandler { get => throw null; set => throw null; } - public string PageName { get => throw null; set => throw null; } - public PageRemoteAttribute() => throw null; - } - - public class PartialViewResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult - { - public string ContentType { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public object Model { get => throw null; } - public PartialViewResult() => throw null; - public int? StatusCode { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine ViewEngine { get => throw null; set => throw null; } - public string ViewName { get => throw null; set => throw null; } - } - - public class RemoteAttribute : Microsoft.AspNetCore.Mvc.RemoteAttributeBase - { - protected override string GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) => throw null; - protected RemoteAttribute() => throw null; - public RemoteAttribute(string routeName) => throw null; - public RemoteAttribute(string action, string controller) => throw null; - public RemoteAttribute(string action, string controller, string areaName) => throw null; - protected string RouteName { get => throw null; set => throw null; } - } - - public abstract class RemoteAttributeBase : System.ComponentModel.DataAnnotations.ValidationAttribute, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator - { - public virtual void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) => throw null; - public string AdditionalFields { get => throw null; set => throw null; } - public string FormatAdditionalFieldsForClientValidation(string property) => throw null; - public override string FormatErrorMessage(string name) => throw null; - public static string FormatPropertyForClientValidation(string property) => throw null; - protected abstract string GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context); - public string HttpMethod { get => throw null; set => throw null; } - public override bool IsValid(object value) => throw null; - protected RemoteAttributeBase() => throw null; - protected Microsoft.AspNetCore.Routing.RouteValueDictionary RouteData { get => throw null; } - } - - public class SkipStatusCodePagesAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.ISkipStatusCodePagesMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter - { - public void OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext context) => throw null; - public void OnResourceExecuting(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context) => throw null; - public SkipStatusCodePagesAttribute() => throw null; - } - - public class TempDataAttribute : System.Attribute - { - public string Key { get => throw null; set => throw null; } - public TempDataAttribute() => throw null; - } - - public class ValidateAntiForgeryTokenAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter - { - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; - public bool IsReusable { get => throw null; } - public int Order { get => throw null; set => throw null; } - public ValidateAntiForgeryTokenAttribute() => throw null; - } - - public abstract class ViewComponent - { - public Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult Content(string content) => throw null; - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } - public Microsoft.AspNetCore.Http.HttpRequest Request { get => throw null; } - public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper Url { get => throw null; set => throw null; } - public System.Security.Principal.IPrincipal User { get => throw null; } - public System.Security.Claims.ClaimsPrincipal UserClaimsPrincipal { get => throw null; } - public Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult View() => throw null; - public Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult View(string viewName) => throw null; - public Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult View(TModel model) => throw null; - public Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult View(string viewName, TModel model) => throw null; - public dynamic ViewBag { get => throw null; } - protected ViewComponent() => throw null; - public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; } - public Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine ViewEngine { get => throw null; set => throw null; } - } - - public class ViewComponentAttribute : System.Attribute - { - public string Name { get => throw null; set => throw null; } - public ViewComponentAttribute() => throw null; - } - - public class ViewComponentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult - { - public object Arguments { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public object Model { get => throw null; } - public int? StatusCode { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set => throw null; } - public string ViewComponentName { get => throw null; set => throw null; } - public ViewComponentResult() => throw null; - public System.Type ViewComponentType { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } - } - - public class ViewDataAttribute : System.Attribute - { - public string Key { get => throw null; set => throw null; } - public ViewDataAttribute() => throw null; - } - - public class ViewResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult - { - public string ContentType { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; - public object Model { get => throw null; } - public int? StatusCode { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine ViewEngine { get => throw null; set => throw null; } - public string ViewName { get => throw null; set => throw null; } - public ViewResult() => throw null; - } - namespace Diagnostics { - public class AfterViewComponentEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterViewComponentEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } - public AfterViewComponentEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.IViewComponentResult viewComponentResult, object viewComponent) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterViewComponentEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.IViewComponentResult viewComponentResult, object viewComponent) => throw null; + public static string EventName; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public object ViewComponent { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } public Microsoft.AspNetCore.Mvc.IViewComponentResult ViewComponentResult { get => throw null; } } - - public class AfterViewEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class AfterViewEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { - public AfterViewEventData(Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public AfterViewEventData(Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; + public static string EventName; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } } - - public class BeforeViewComponentEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeViewComponentEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } - public BeforeViewComponentEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, object viewComponent) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforeViewComponentEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, object viewComponent) => throw null; + public static string EventName; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public object ViewComponent { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } } - - public class BeforeViewEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class BeforeViewEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { - public BeforeViewEventData(Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; protected override int Count { get => throw null; } - public const string EventName = default; + public BeforeViewEventData(Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; + public static string EventName; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } } - - public class ViewComponentAfterViewExecuteEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class ViewComponentAfterViewExecuteEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } - public const string EventName = default; - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } - public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public ViewComponentAfterViewExecuteEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) => throw null; + public static string EventName; + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } } - - public class ViewComponentBeforeViewExecuteEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class ViewComponentBeforeViewExecuteEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } - public const string EventName = default; + public ViewComponentBeforeViewExecuteEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) => throw null; + public static string EventName; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } - public ViewComponentBeforeViewExecuteEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) => throw null; public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } } - - public class ViewFoundEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class ViewFoundEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } protected override int Count { get => throw null; } - public const string EventName = default; - public bool IsMainPage { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } - public Microsoft.AspNetCore.Mvc.ActionResult Result { get => throw null; } - public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public ViewFoundEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, bool isMainPage, Microsoft.AspNetCore.Mvc.ActionResult result, string viewName, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) => throw null; + public static string EventName; + public bool IsMainPage { get => throw null; } + public Microsoft.AspNetCore.Mvc.ActionResult Result { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public string ViewName { get => throw null; } } - - public class ViewNotFoundEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData + public sealed class ViewNotFoundEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } protected override int Count { get => throw null; } - public const string EventName = default; + public ViewNotFoundEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, bool isMainPage, Microsoft.AspNetCore.Mvc.ActionResult result, string viewName, System.Collections.Generic.IEnumerable searchedLocations) => throw null; + public static string EventName; public bool IsMainPage { get => throw null; } - protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.ActionResult Result { get => throw null; } public System.Collections.Generic.IEnumerable SearchedLocations { get => throw null; } + protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public string ViewName { get => throw null; } - public ViewNotFoundEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, bool isMainPage, Microsoft.AspNetCore.Mvc.ActionResult result, string viewName, System.Collections.Generic.IEnumerable searchedLocations) => throw null; } - + } + public class IgnoreAntiforgeryTokenAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + { + public IgnoreAntiforgeryTokenAttribute() => throw null; + public int Order { get => throw null; set { } } + } + public interface IViewComponentHelper + { + System.Threading.Tasks.Task InvokeAsync(string name, object arguments); + System.Threading.Tasks.Task InvokeAsync(System.Type componentType, object arguments); + } + public interface IViewComponentResult + { + void Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); + System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); } namespace ModelBinding { - public static class ModelStateDictionaryExtensions + public static partial class ModelStateDictionaryExtensions { - public static void AddModelError(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression, System.Exception exception, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => throw null; public static void AddModelError(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression, string errorMessage) => throw null; + public static void AddModelError(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression, System.Exception exception, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => throw null; public static bool Remove(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression) => throw null; public static void RemoveAll(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression) => throw null; public static void TryAddModelException(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression, System.Exception exception) => throw null; } - + } + public class MvcViewOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public System.Collections.Generic.IList ClientModelValidatorProviders { get => throw null; } + public MvcViewOptions() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions HtmlHelperOptions { get => throw null; set { } } + public System.Collections.Generic.IList ViewEngines { get => throw null; } + } + public class PageRemoteAttribute : Microsoft.AspNetCore.Mvc.RemoteAttributeBase + { + public PageRemoteAttribute() => throw null; + protected override string GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) => throw null; + public string PageHandler { get => throw null; set { } } + public string PageName { get => throw null; set { } } + } + public class PartialViewResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + { + public string ContentType { get => throw null; set { } } + public PartialViewResult() => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public object Model { get => throw null; } + public int? StatusCode { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine ViewEngine { get => throw null; set { } } + public string ViewName { get => throw null; set { } } + } + public class RemoteAttribute : Microsoft.AspNetCore.Mvc.RemoteAttributeBase + { + protected RemoteAttribute() => throw null; + public RemoteAttribute(string routeName) => throw null; + public RemoteAttribute(string action, string controller) => throw null; + public RemoteAttribute(string action, string controller, string areaName) => throw null; + protected override string GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) => throw null; + protected string RouteName { get => throw null; set { } } + } + public abstract class RemoteAttributeBase : System.ComponentModel.DataAnnotations.ValidationAttribute, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator + { + public string AdditionalFields { get => throw null; set { } } + public virtual void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) => throw null; + protected RemoteAttributeBase() => throw null; + public string FormatAdditionalFieldsForClientValidation(string property) => throw null; + public override string FormatErrorMessage(string name) => throw null; + public static string FormatPropertyForClientValidation(string property) => throw null; + protected abstract string GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context); + public string HttpMethod { get => throw null; set { } } + public override bool IsValid(object value) => throw null; + protected Microsoft.AspNetCore.Routing.RouteValueDictionary RouteData { get => throw null; } } namespace Rendering { - public enum CheckBoxHiddenInputRenderMode : int + public enum CheckBoxHiddenInputRenderMode { - EndOfForm = 2, - Inline = 1, None = 0, + Inline = 1, + EndOfForm = 2, } - - public enum FormInputRenderMode : int + public enum FormInputRenderMode { - AlwaysUseCurrentCulture = 1, DetectCultureFromInputType = 0, + AlwaysUseCurrentCulture = 1, } - - public enum FormMethod : int + public enum FormMethod { Get = 0, Post = 1, } - - public enum Html5DateRenderingMode : int + public enum Html5DateRenderingMode { - CurrentCulture = 1, Rfc3339 = 0, + CurrentCulture = 1, } - - public static class HtmlHelperComponentExtensions + public static partial class HtmlHelperComponentExtensions { - public static System.Threading.Tasks.Task RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Type componentType, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode, object parameters) => throw null; public static System.Threading.Tasks.Task RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode) where TComponent : Microsoft.AspNetCore.Components.IComponent => throw null; public static System.Threading.Tasks.Task RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode, object parameters) where TComponent : Microsoft.AspNetCore.Components.IComponent => throw null; + public static System.Threading.Tasks.Task RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Type componentType, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode, object parameters) => throw null; } - - public static class HtmlHelperDisplayExtensions + public static partial class HtmlHelperDisplayExtensions { public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object additionalViewData) => throw null; @@ -363,14 +254,12 @@ namespace Microsoft public static Microsoft.AspNetCore.Html.IHtmlContent DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, string htmlFieldName) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, string htmlFieldName, object additionalViewData) => throw null; } - - public static class HtmlHelperDisplayNameExtensions + public static partial class HtmlHelperDisplayNameExtensions { public static string DisplayNameFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper> htmlHelper, System.Linq.Expressions.Expression> expression) => throw null; public static string DisplayNameForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) => throw null; } - - public static class HtmlHelperEditorExtensions + public static partial class HtmlHelperEditorExtensions { public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object additionalViewData) => throw null; @@ -389,31 +278,29 @@ namespace Microsoft public static Microsoft.AspNetCore.Html.IHtmlContent EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, string htmlFieldName) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, string htmlFieldName, object additionalViewData) => throw null; } - - public static class HtmlHelperFormExtensions + public static partial class HtmlHelperFormExtensions { public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) => throw null; - public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; - public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, bool? antiforgery, object htmlAttributes) => throw null; - public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool? antiforgery) => throw null; + public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; + public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, object htmlAttributes) => throw null; + public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, bool? antiforgery, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object routeValues) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName) => throw null; - public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; - public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName, object routeValues) => throw null; + public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; + public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string actionName, string controllerName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object routeValues) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object routeValues, bool? antiforgery) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName) => throw null; - public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; - public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, bool? antiforgery) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, object routeValues) => throw null; + public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; + public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginRouteForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string routeName, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method, object htmlAttributes) => throw null; } - - public static class HtmlHelperInputExtensions + public static partial class HtmlHelperInputExtensions { public static Microsoft.AspNetCore.Html.IHtmlContent CheckBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent CheckBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, bool isChecked) => throw null; @@ -426,8 +313,8 @@ namespace Microsoft public static Microsoft.AspNetCore.Html.IHtmlContent Password(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent PasswordFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent RadioButton(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent RadioButton(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value, bool isChecked) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent RadioButton(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value, object htmlAttributes) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent RadioButton(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value, bool isChecked) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent RadioButtonFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object value) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object htmlAttributes) => throw null; @@ -437,27 +324,25 @@ namespace Microsoft public static Microsoft.AspNetCore.Html.IHtmlContent TextAreaFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent TextBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent TextBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent TextBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent TextBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value, string format) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent TextBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent TextBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent TextBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent TextBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string format) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent TextBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object htmlAttributes) => throw null; } - - public static class HtmlHelperLabelExtensions + public static partial class HtmlHelperLabelExtensions { public static Microsoft.AspNetCore.Html.IHtmlContent Label(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent Label(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string labelText) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent LabelFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent LabelFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent LabelFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string labelText) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent LabelFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent LabelForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent LabelForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent LabelForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string labelText) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent LabelForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent LabelForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string labelText, object htmlAttributes) => throw null; } - - public static class HtmlHelperLinkExtensions + public static partial class HtmlHelperLinkExtensions { public static Microsoft.AspNetCore.Html.IHtmlContent ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, object routeValues) => throw null; @@ -466,19 +351,17 @@ namespace Microsoft public static Microsoft.AspNetCore.Html.IHtmlContent ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, string controllerName, object routeValues) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, object routeValues) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, object routeValues, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, string routeName) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, string routeName, object routeValues) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, object routeValues, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, string routeName, object routeValues, object htmlAttributes) => throw null; } - - public static class HtmlHelperNameExtensions + public static partial class HtmlHelperNameExtensions { public static string IdForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) => throw null; public static string NameForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) => throw null; } - - public static class HtmlHelperPartialExtensions + public static partial class HtmlHelperPartialExtensions { public static Microsoft.AspNetCore.Html.IHtmlContent Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; @@ -495,14 +378,13 @@ namespace Microsoft public static System.Threading.Tasks.Task RenderPartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; public static System.Threading.Tasks.Task RenderPartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) => throw null; } - - public static class HtmlHelperSelectExtensions + public static partial class HtmlHelperSelectExtensions { public static Microsoft.AspNetCore.Html.IHtmlContent DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string optionLabel) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, System.Collections.Generic.IEnumerable selectList) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, System.Collections.Generic.IEnumerable selectList, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, System.Collections.Generic.IEnumerable selectList, string optionLabel) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string optionLabel) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent DropDownListFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent DropDownListFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent DropDownListFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList, string optionLabel) => throw null; @@ -510,37 +392,34 @@ namespace Microsoft public static Microsoft.AspNetCore.Html.IHtmlContent ListBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, System.Collections.Generic.IEnumerable selectList) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ListBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList) => throw null; } - - public static class HtmlHelperValidationExtensions + public static partial class HtmlHelperValidationExtensions { public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string message) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string message, object htmlAttributes) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string message, string tag) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string message, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessageFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessageFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string message) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessageFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string message, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessageFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string message, string tag) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors, string message) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors, string message, object htmlAttributes) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors, string message, string tag) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string message) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string message, string tag) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors, string message) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string message, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string message, object htmlAttributes, string tag) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string message, string tag) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors, string message, string tag) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, bool excludePropertyErrors, string message, object htmlAttributes) => throw null; } - - public static class HtmlHelperValueExtensions + public static partial class HtmlHelperValueExtensions { public static string Value(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; public static string ValueFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) => throw null; public static string ValueForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) => throw null; public static string ValueForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string format) => throw null; } - public interface IHtmlHelper { Microsoft.AspNetCore.Html.IHtmlContent ActionLink(string linkText, string actionName, string controllerName, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes); @@ -558,8 +437,8 @@ namespace Microsoft void EndForm(); string FormatValue(object value, string format); string GenerateIdFromName(string fullName); - System.Collections.Generic.IEnumerable GetEnumSelectList(System.Type enumType); System.Collections.Generic.IEnumerable GetEnumSelectList() where TEnum : struct; + System.Collections.Generic.IEnumerable GetEnumSelectList(System.Type enumType); Microsoft.AspNetCore.Html.IHtmlContent Hidden(string expression, object value, object htmlAttributes); Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode Html5DateRenderingMode { get; set; } string Id(string expression); @@ -571,8 +450,8 @@ namespace Microsoft System.Threading.Tasks.Task PartialAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData); Microsoft.AspNetCore.Html.IHtmlContent Password(string expression, object value, object htmlAttributes); Microsoft.AspNetCore.Html.IHtmlContent RadioButton(string expression, object value, bool? isChecked, object htmlAttributes); - Microsoft.AspNetCore.Html.IHtmlContent Raw(object value); Microsoft.AspNetCore.Html.IHtmlContent Raw(string value); + Microsoft.AspNetCore.Html.IHtmlContent Raw(object value); System.Threading.Tasks.Task RenderPartialAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData); Microsoft.AspNetCore.Html.IHtmlContent RouteLink(string linkText, string routeName, string protocol, string hostName, string fragment, object routeValues, object htmlAttributes); Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get; } @@ -586,7 +465,6 @@ namespace Microsoft Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get; } Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get; } } - public interface IHtmlHelper : Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper { Microsoft.AspNetCore.Html.IHtmlContent CheckBoxFor(System.Linq.Expressions.Expression> expression, object htmlAttributes); @@ -613,45 +491,40 @@ namespace Microsoft string ValueFor(System.Linq.Expressions.Expression> expression, string format); Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get; } } - public interface IJsonHelper { Microsoft.AspNetCore.Html.IHtmlContent Serialize(object value); } - public class MultiSelectList : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + public MultiSelectList(System.Collections.IEnumerable items) => throw null; + public MultiSelectList(System.Collections.IEnumerable items, System.Collections.IEnumerable selectedValues) => throw null; + public MultiSelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField) => throw null; + public MultiSelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, System.Collections.IEnumerable selectedValues) => throw null; + public MultiSelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, System.Collections.IEnumerable selectedValues, string dataGroupField) => throw null; public string DataGroupField { get => throw null; } public string DataTextField { get => throw null; } public string DataValueField { get => throw null; } public virtual System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public System.Collections.IEnumerable Items { get => throw null; } - public MultiSelectList(System.Collections.IEnumerable items) => throw null; - public MultiSelectList(System.Collections.IEnumerable items, System.Collections.IEnumerable selectedValues) => throw null; - public MultiSelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField) => throw null; - public MultiSelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, System.Collections.IEnumerable selectedValues) => throw null; - public MultiSelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, System.Collections.IEnumerable selectedValues, string dataGroupField) => throw null; public System.Collections.IEnumerable SelectedValues { get => throw null; } } - public class MvcForm : System.IDisposable { + public MvcForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; public void Dispose() => throw null; public void EndForm() => throw null; protected virtual void GenerateEndForm() => throw null; - public MvcForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; } - - public enum RenderMode : int + public enum RenderMode { + Static = 1, Server = 2, ServerPrerendered = 3, - Static = 1, WebAssembly = 4, WebAssemblyPrerendered = 5, } - public class SelectList : Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList { public SelectList(System.Collections.IEnumerable items) : base(default(System.Collections.IEnumerable)) => throw null; @@ -661,32 +534,31 @@ namespace Microsoft public SelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, object selectedValue, string dataGroupField) : base(default(System.Collections.IEnumerable)) => throw null; public object SelectedValue { get => throw null; } } - public class SelectListGroup { - public bool Disabled { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } public SelectListGroup() => throw null; + public bool Disabled { get => throw null; set { } } + public string Name { get => throw null; set { } } } - public class SelectListItem { - public bool Disabled { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup Group { get => throw null; set => throw null; } public SelectListItem() => throw null; public SelectListItem(string text, string value) => throw null; public SelectListItem(string text, string value, bool selected) => throw null; public SelectListItem(string text, string value, bool selected, bool disabled) => throw null; - public bool Selected { get => throw null; set => throw null; } - public string Text { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } + public bool Disabled { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup Group { get => throw null; set { } } + public bool Selected { get => throw null; set { } } + public string Text { get => throw null; set { } } + public string Value { get => throw null; set { } } } - public class TagBuilder : Microsoft.AspNetCore.Html.IHtmlContent { public void AddCssClass(string value) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary Attributes { get => throw null; } public static string CreateSanitizedId(string name, string invalidCharReplacement) => throw null; + public TagBuilder(string tagName) => throw null; + public TagBuilder(Microsoft.AspNetCore.Mvc.Rendering.TagBuilder tagBuilder) => throw null; public void GenerateId(string name, string invalidCharReplacement) => throw null; public bool HasInnerHtml { get => throw null; } public Microsoft.AspNetCore.Html.IHtmlContentBuilder InnerHtml { get => throw null; } @@ -698,49 +570,101 @@ namespace Microsoft public Microsoft.AspNetCore.Html.IHtmlContent RenderEndTag() => throw null; public Microsoft.AspNetCore.Html.IHtmlContent RenderSelfClosingTag() => throw null; public Microsoft.AspNetCore.Html.IHtmlContent RenderStartTag() => throw null; - public TagBuilder(Microsoft.AspNetCore.Mvc.Rendering.TagBuilder tagBuilder) => throw null; - public TagBuilder(string tagName) => throw null; public string TagName { get => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode TagRenderMode { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode TagRenderMode { get => throw null; set { } } public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - - public enum TagRenderMode : int + public enum TagRenderMode { - EndTag = 2, Normal = 0, - SelfClosing = 3, StartTag = 1, + EndTag = 2, + SelfClosing = 3, } - - public static class ViewComponentHelperExtensions + public static partial class ViewComponentHelperExtensions { - public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.Mvc.IViewComponentHelper helper, System.Type componentType) => throw null; public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.Mvc.IViewComponentHelper helper, string name) => throw null; - public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.Mvc.IViewComponentHelper helper) => throw null; + public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.Mvc.IViewComponentHelper helper, System.Type componentType) => throw null; public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.Mvc.IViewComponentHelper helper, object arguments) => throw null; + public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.Mvc.IViewComponentHelper helper) => throw null; } - public class ViewContext : Microsoft.AspNetCore.Mvc.ActionContext { - public Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode CheckBoxHiddenInputRenderMode { get => throw null; set => throw null; } - public bool ClientValidationEnabled { get => throw null; set => throw null; } - public string ExecutingFilePath { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext FormContext { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext GetFormContextForClientValidation() => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode Html5DateRenderingMode { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set => throw null; } - public string ValidationMessageElement { get => throw null; set => throw null; } - public string ValidationSummaryMessageElement { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; set => throw null; } - public dynamic ViewBag { get => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode CheckBoxHiddenInputRenderMode { get => throw null; set { } } + public bool ClientValidationEnabled { get => throw null; set { } } public ViewContext() => throw null; public ViewContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary tempData, System.IO.TextWriter writer, Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions htmlHelperOptions) => throw null; public ViewContext(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, System.IO.TextWriter writer) => throw null; - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } - public System.IO.TextWriter Writer { get => throw null; set => throw null; } + public string ExecutingFilePath { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext FormContext { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext GetFormContextForClientValidation() => throw null; + public Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode Html5DateRenderingMode { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set { } } + public string ValidationMessageElement { get => throw null; set { } } + public string ValidationSummaryMessageElement { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; set { } } + public dynamic ViewBag { get => throw null; } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set { } } + public System.IO.TextWriter Writer { get => throw null; set { } } } - + } + public class SkipStatusCodePagesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Http.Metadata.ISkipStatusCodePagesMetadata + { + public SkipStatusCodePagesAttribute() => throw null; + public void OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext context) => throw null; + public void OnResourceExecuting(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context) => throw null; + } + public sealed class TempDataAttribute : System.Attribute + { + public TempDataAttribute() => throw null; + public string Key { get => throw null; set { } } + } + public class ValidateAntiForgeryTokenAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + { + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; + public ValidateAntiForgeryTokenAttribute() => throw null; + public bool IsReusable { get => throw null; } + public int Order { get => throw null; set { } } + } + public abstract class ViewComponent + { + public Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult Content(string content) => throw null; + protected ViewComponent() => throw null; + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } + public Microsoft.AspNetCore.Http.HttpRequest Request { get => throw null; } + public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; } + public Microsoft.AspNetCore.Mvc.IUrlHelper Url { get => throw null; set { } } + public System.Security.Principal.IPrincipal User { get => throw null; } + public System.Security.Claims.ClaimsPrincipal UserClaimsPrincipal { get => throw null; } + public Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult View() => throw null; + public Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult View(string viewName) => throw null; + public Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult View(TModel model) => throw null; + public Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult View(string viewName, TModel model) => throw null; + public dynamic ViewBag { get => throw null; } + public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; } + public Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine ViewEngine { get => throw null; set { } } + } + public class ViewComponentAttribute : System.Attribute + { + public ViewComponentAttribute() => throw null; + public string Name { get => throw null; set { } } + } + public class ViewComponentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + { + public object Arguments { get => throw null; set { } } + public string ContentType { get => throw null; set { } } + public ViewComponentResult() => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public object Model { get => throw null; } + public int? StatusCode { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set { } } + public string ViewComponentName { get => throw null; set { } } + public System.Type ViewComponentType { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set { } } } namespace ViewComponents { @@ -751,20 +675,17 @@ namespace Microsoft public void Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; } - public class DefaultViewComponentDescriptorCollectionProvider : Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorCollectionProvider { public DefaultViewComponentDescriptorCollectionProvider(Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorProvider descriptorProvider) => throw null; public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection ViewComponents { get => throw null; } } - public class DefaultViewComponentDescriptorProvider : Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorProvider { public DefaultViewComponentDescriptorProvider(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager partManager) => throw null; protected virtual System.Collections.Generic.IEnumerable GetCandidateTypes() => throw null; public virtual System.Collections.Generic.IEnumerable GetViewComponents() => throw null; } - public class DefaultViewComponentFactory : Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentFactory { public object CreateViewComponent(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; @@ -772,93 +693,79 @@ namespace Microsoft public void ReleaseViewComponent(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object component) => throw null; public System.Threading.Tasks.ValueTask ReleaseViewComponentAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object component) => throw null; } - public class DefaultViewComponentHelper : Microsoft.AspNetCore.Mvc.IViewComponentHelper, Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware { public void Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; public DefaultViewComponentHelper(Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorCollectionProvider descriptorProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentSelector selector, Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvokerFactory invokerFactory, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope viewBufferScope) => throw null; - public System.Threading.Tasks.Task InvokeAsync(System.Type componentType, object arguments) => throw null; public System.Threading.Tasks.Task InvokeAsync(string name, object arguments) => throw null; + public System.Threading.Tasks.Task InvokeAsync(System.Type componentType, object arguments) => throw null; } - public class DefaultViewComponentSelector : Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentSelector { public DefaultViewComponentSelector(Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorCollectionProvider descriptorProvider) => throw null; public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor SelectComponent(string componentName) => throw null; } - public class HtmlContentViewComponentResult : Microsoft.AspNetCore.Mvc.IViewComponentResult { + public HtmlContentViewComponentResult(Microsoft.AspNetCore.Html.IHtmlContent encodedContent) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent EncodedContent { get => throw null; } public void Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; - public HtmlContentViewComponentResult(Microsoft.AspNetCore.Html.IHtmlContent encodedContent) => throw null; } - public interface IViewComponentActivator { object Create(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); void Release(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object viewComponent); - System.Threading.Tasks.ValueTask ReleaseAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object viewComponent) => throw null; + virtual System.Threading.Tasks.ValueTask ReleaseAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object viewComponent) => throw null; } - public interface IViewComponentDescriptorCollectionProvider { Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection ViewComponents { get; } } - public interface IViewComponentDescriptorProvider { System.Collections.Generic.IEnumerable GetViewComponents(); } - public interface IViewComponentFactory { object CreateViewComponent(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); void ReleaseViewComponent(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object component); - System.Threading.Tasks.ValueTask ReleaseViewComponentAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object component) => throw null; + virtual System.Threading.Tasks.ValueTask ReleaseViewComponentAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object component) => throw null; } - public interface IViewComponentInvoker { System.Threading.Tasks.Task InvokeAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); } - public interface IViewComponentInvokerFactory { Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvoker CreateInstance(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); } - public interface IViewComponentSelector { Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor SelectComponent(string componentName); } - public class ServiceBasedViewComponentActivator : Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentActivator { public object Create(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; - public virtual void Release(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object viewComponent) => throw null; public ServiceBasedViewComponentActivator() => throw null; + public virtual void Release(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context, object viewComponent) => throw null; } - public class ViewComponentContext { - public System.Collections.Generic.IDictionary Arguments { get => throw null; set => throw null; } - public System.Text.Encodings.Web.HtmlEncoder HtmlEncoder { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; } + public System.Collections.Generic.IDictionary Arguments { get => throw null; set { } } public ViewComponentContext() => throw null; public ViewComponentContext(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor viewComponentDescriptor, System.Collections.Generic.IDictionary arguments, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, System.IO.TextWriter writer) => throw null; - public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor ViewComponentDescriptor { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } + public System.Text.Encodings.Web.HtmlEncoder HtmlEncoder { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; } + public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor ViewComponentDescriptor { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set { } } public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; } public System.IO.TextWriter Writer { get => throw null; } } - public class ViewComponentContextAttribute : System.Attribute { public ViewComponentContextAttribute() => throw null; } - public static class ViewComponentConventions { public static string GetComponentFullName(System.Reflection.TypeInfo componentType) => throw null; @@ -866,49 +773,48 @@ namespace Microsoft public static bool IsComponent(System.Reflection.TypeInfo typeInfo) => throw null; public static string ViewComponentSuffix; } - public class ViewComponentDescriptor { - public string DisplayName { get => throw null; set => throw null; } - public string FullName { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Reflection.MethodInfo MethodInfo { get => throw null; set => throw null; } - public System.Collections.Generic.IReadOnlyList Parameters { get => throw null; set => throw null; } - public string ShortName { get => throw null; set => throw null; } - public System.Reflection.TypeInfo TypeInfo { get => throw null; set => throw null; } public ViewComponentDescriptor() => throw null; + public string DisplayName { get => throw null; set { } } + public string FullName { get => throw null; set { } } + public string Id { get => throw null; set { } } + public System.Reflection.MethodInfo MethodInfo { get => throw null; set { } } + public System.Collections.Generic.IReadOnlyList Parameters { get => throw null; set { } } + public string ShortName { get => throw null; set { } } + public System.Reflection.TypeInfo TypeInfo { get => throw null; set { } } } - public class ViewComponentDescriptorCollection { + public ViewComponentDescriptorCollection(System.Collections.Generic.IEnumerable items, int version) => throw null; public System.Collections.Generic.IReadOnlyList Items { get => throw null; } public int Version { get => throw null; } - public ViewComponentDescriptorCollection(System.Collections.Generic.IEnumerable items, int version) => throw null; } - public class ViewComponentFeature { public ViewComponentFeature() => throw null; public System.Collections.Generic.IList ViewComponents { get => throw null; } } - - public class ViewComponentFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider + public class ViewComponentFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider { - public void PopulateFeature(System.Collections.Generic.IEnumerable parts, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeature feature) => throw null; public ViewComponentFeatureProvider() => throw null; + public void PopulateFeature(System.Collections.Generic.IEnumerable parts, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeature feature) => throw null; } - public class ViewViewComponentResult : Microsoft.AspNetCore.Mvc.IViewComponentResult { + public ViewViewComponentResult() => throw null; public void Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; - public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine ViewEngine { get => throw null; set => throw null; } - public string ViewName { get => throw null; set => throw null; } - public ViewViewComponentResult() => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine ViewEngine { get => throw null; set { } } + public string ViewName { get => throw null; set { } } } - + } + public sealed class ViewDataAttribute : System.Attribute + { + public ViewDataAttribute() => throw null; + public string Key { get => throw null; set { } } } namespace ViewEngines { @@ -919,24 +825,20 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult GetView(string executingFilePath, string viewPath, bool isMainPage) => throw null; public System.Collections.Generic.IReadOnlyList ViewEngines { get => throw null; } } - public interface ICompositeViewEngine : Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine { System.Collections.Generic.IReadOnlyList ViewEngines { get; } } - public interface IView { string Path { get; } System.Threading.Tasks.Task RenderAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context); } - public interface IViewEngine { Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult FindView(Microsoft.AspNetCore.Mvc.ActionContext context, string viewName, bool isMainPage); Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult GetView(string executingFilePath, string viewPath, bool isMainPage); } - public class ViewEngineResult { public Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult EnsureSuccessful(System.Collections.Generic.IEnumerable originalLocations) => throw null; @@ -947,51 +849,60 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public string ViewName { get => throw null; } } - } namespace ViewFeatures { - public static class AntiforgeryExtensions + public static partial class AntiforgeryExtensions { public static Microsoft.AspNetCore.Html.IHtmlContent GetHtml(this Microsoft.AspNetCore.Antiforgery.IAntiforgery antiforgery, Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - - public class AttributeDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.IEnumerable + public class AttributeDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection> { - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public Enumerator(Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary attributes) => throw null; - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(string key, string value) => throw null; - public AttributeDictionary() => throw null; public void Clear() => throw null; public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; public bool ContainsKey(string key) => throw null; public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } + public AttributeDictionary() => throw null; + public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + { + public Enumerator(Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary attributes) => throw null; + public System.Collections.Generic.KeyValuePair Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } public Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Enumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; public bool IsReadOnly { get => throw null; } - public string this[string key] { get => throw null; set => throw null; } public System.Collections.Generic.ICollection Keys { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; public bool Remove(string key) => throw null; + public string this[string key] { get => throw null; set { } } public bool TryGetValue(string key, out string value) => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } } - + namespace Buffers + { + public interface IViewBufferScope + { + System.IO.TextWriter CreateWriter(System.IO.TextWriter writer); + Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue[] GetPage(int pageSize); + void ReturnSegment(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue[] segment); + } + public struct ViewBufferValue + { + public ViewBufferValue(string value) => throw null; + public ViewBufferValue(Microsoft.AspNetCore.Html.IHtmlContent content) => throw null; + public object Value { get => throw null; } + } + } public class CookieTempDataProvider : Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider { public static string CookieName; @@ -999,7 +910,6 @@ namespace Microsoft public System.Collections.Generic.IDictionary LoadTempData(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public void SaveTempData(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IDictionary values) => throw null; } - public class DefaultHtmlGenerator : Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator { protected virtual void AddMaxLengthAttribute(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, Microsoft.AspNetCore.Mvc.Rendering.TagBuilder tagBuilder, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression) => throw null; @@ -1007,8 +917,8 @@ namespace Microsoft protected virtual void AddValidationAttributes(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.Rendering.TagBuilder tagBuilder, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression) => throw null; protected bool AllowRenderingMaxLengthAttribute { get => throw null; } public DefaultHtmlGenerator(Microsoft.AspNetCore.Antiforgery.IAntiforgery antiforgery, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.ViewFeatures.ValidationHtmlAttributeProvider validationAttributeProvider) => throw null; - public string Encode(object value) => throw null; public string Encode(string value) => throw null; + public string Encode(object value) => throw null; public string FormatValue(object value, string format) => throw null; public virtual Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateActionLink(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string linkText, string actionName, string controllerName, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes) => throw null; public virtual Microsoft.AspNetCore.Html.IHtmlContent GenerateAntiforgery(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; @@ -1027,8 +937,8 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateRadioButton(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, bool? isChecked, object htmlAttributes) => throw null; public Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateRouteForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string routeName, object routeValues, string method, object htmlAttributes) => throw null; public virtual Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateRouteLink(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string linkText, string routeName, string protocol, string hostName, string fragment, object routeValues, object htmlAttributes) => throw null; - public virtual Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateSelect(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string optionLabel, string expression, System.Collections.Generic.IEnumerable selectList, System.Collections.Generic.ICollection currentValues, bool allowMultiple, object htmlAttributes) => throw null; public Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateSelect(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string optionLabel, string expression, System.Collections.Generic.IEnumerable selectList, bool allowMultiple, object htmlAttributes) => throw null; + public virtual Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateSelect(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string optionLabel, string expression, System.Collections.Generic.IEnumerable selectList, System.Collections.Generic.ICollection currentValues, bool allowMultiple, object htmlAttributes) => throw null; public virtual Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateTextArea(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, int rows, int columns, object htmlAttributes) => throw null; public virtual Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateTextBox(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, string format, object htmlAttributes) => throw null; public virtual Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateValidationMessage(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, string message, string tag, object htmlAttributes) => throw null; @@ -1036,32 +946,28 @@ namespace Microsoft public virtual System.Collections.Generic.ICollection GetCurrentValues(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, bool allowMultiple) => throw null; public string IdAttributeDotReplacement { get => throw null; } } - - public static class DefaultHtmlGeneratorExtensions + public static partial class DefaultHtmlGeneratorExtensions { public static Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateForm(this Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string actionName, string controllerName, string fragment, object routeValues, string method, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateRouteForm(this Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator generator, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string routeName, object routeValues, string fragment, string method, object htmlAttributes) => throw null; } - public class DefaultValidationHtmlAttributeProvider : Microsoft.AspNetCore.Mvc.ViewFeatures.ValidationHtmlAttributeProvider { public override void AddValidationAttributes(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, System.Collections.Generic.IDictionary attributes) => throw null; public DefaultValidationHtmlAttributeProvider(Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorCache clientValidatorCache) => throw null; } - public class FormContext { - public bool CanRenderAtEndOfForm { get => throw null; set => throw null; } - public System.Collections.Generic.IList EndOfFormContent { get => throw null; } + public bool CanRenderAtEndOfForm { get => throw null; set { } } public FormContext() => throw null; + public System.Collections.Generic.IList EndOfFormContent { get => throw null; } public System.Collections.Generic.IDictionary FormData { get => throw null; } - public bool HasAntiforgeryToken { get => throw null; set => throw null; } + public bool HasAntiforgeryToken { get => throw null; set { } } public bool HasEndOfFormContent { get => throw null; } public bool HasFormData { get => throw null; } public bool RenderedField(string fieldName) => throw null; public void RenderedField(string fieldName, bool value) => throw null; } - public class HtmlHelper : Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper, Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware { public Microsoft.AspNetCore.Html.IHtmlContent ActionLink(string linkText, string actionName, string controllerName, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes) => throw null; @@ -1072,13 +978,14 @@ namespace Microsoft public Microsoft.AspNetCore.Html.IHtmlContent CheckBox(string expression, bool? isChecked, object htmlAttributes) => throw null; public virtual void Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; protected virtual Microsoft.AspNetCore.Mvc.Rendering.MvcForm CreateForm() => throw null; + public HtmlHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator htmlGenerator, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope bufferScope, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.UrlEncoder urlEncoder) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent Display(string expression, string templateName, string htmlFieldName, object additionalViewData) => throw null; public string DisplayName(string expression) => throw null; public string DisplayText(string expression) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent DropDownList(string expression, System.Collections.Generic.IEnumerable selectList, string optionLabel, object htmlAttributes) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent Editor(string expression, string templateName, string htmlFieldName, object additionalViewData) => throw null; - public string Encode(object value) => throw null; public string Encode(string value) => throw null; + public string Encode(object value) => throw null; public void EndForm() => throw null; public string FormatValue(object value, string format) => throw null; protected virtual Microsoft.AspNetCore.Html.IHtmlContent GenerateCheckBox(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, bool? isChecked, object htmlAttributes) => throw null; @@ -1102,13 +1009,12 @@ namespace Microsoft protected virtual Microsoft.AspNetCore.Html.IHtmlContent GenerateValidationMessage(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, string message, string tag, object htmlAttributes) => throw null; protected virtual Microsoft.AspNetCore.Html.IHtmlContent GenerateValidationSummary(bool excludePropertyErrors, string message, object htmlAttributes, string tag) => throw null; protected virtual string GenerateValue(string expression, object value, string format, bool useViewData) => throw null; - protected virtual System.Collections.Generic.IEnumerable GetEnumSelectList(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => throw null; - public System.Collections.Generic.IEnumerable GetEnumSelectList(System.Type enumType) => throw null; public System.Collections.Generic.IEnumerable GetEnumSelectList() where TEnum : struct => throw null; + public System.Collections.Generic.IEnumerable GetEnumSelectList(System.Type enumType) => throw null; + protected virtual System.Collections.Generic.IEnumerable GetEnumSelectList(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => throw null; public static string GetFormMethodString(Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent Hidden(string expression, object value, object htmlAttributes) => throw null; - public Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode Html5DateRenderingMode { get => throw null; set => throw null; } - public HtmlHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator htmlGenerator, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope bufferScope, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.UrlEncoder urlEncoder) => throw null; + public Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode Html5DateRenderingMode { get => throw null; set { } } public string Id(string expression) => throw null; public string IdAttributeDotReplacement { get => throw null; } public Microsoft.AspNetCore.Html.IHtmlContent Label(string expression, string labelText, object htmlAttributes) => throw null; @@ -1119,8 +1025,8 @@ namespace Microsoft public System.Threading.Tasks.Task PartialAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent Password(string expression, object value, object htmlAttributes) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent RadioButton(string expression, object value, bool? isChecked, object htmlAttributes) => throw null; - public Microsoft.AspNetCore.Html.IHtmlContent Raw(object value) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent Raw(string value) => throw null; + public Microsoft.AspNetCore.Html.IHtmlContent Raw(object value) => throw null; public System.Threading.Tasks.Task RenderPartialAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; protected virtual System.Threading.Tasks.Task RenderPartialCoreAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, System.IO.TextWriter writer) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent RouteLink(string linkText, string routeName, string protocol, string hostName, string fragment, object routeValues, object htmlAttributes) => throw null; @@ -1141,11 +1047,11 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; } } - - public class HtmlHelper : Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper, Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper, Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper + public class HtmlHelper : Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper, Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper, Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper { public Microsoft.AspNetCore.Html.IHtmlContent CheckBoxFor(System.Linq.Expressions.Expression> expression, object htmlAttributes) => throw null; public override void Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; + public HtmlHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator htmlGenerator, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope bufferScope, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.UrlEncoder urlEncoder, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpressionProvider modelExpressionProvider) : base(default(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator), default(Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine), default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider), default(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope), default(System.Text.Encodings.Web.HtmlEncoder), default(System.Text.Encodings.Web.UrlEncoder)) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent DisplayFor(System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName, object additionalViewData) => throw null; public string DisplayNameFor(System.Linq.Expressions.Expression> expression) => throw null; public string DisplayNameForInnerType(System.Linq.Expressions.Expression> expression) => throw null; @@ -1155,7 +1061,6 @@ namespace Microsoft protected string GetExpressionName(System.Linq.Expressions.Expression> expression) => throw null; protected Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetModelExplorer(System.Linq.Expressions.Expression> expression) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent HiddenFor(System.Linq.Expressions.Expression> expression, object htmlAttributes) => throw null; - public HtmlHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator htmlGenerator, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope bufferScope, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, System.Text.Encodings.Web.UrlEncoder urlEncoder, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpressionProvider modelExpressionProvider) : base(default(Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator), default(Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine), default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider), default(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope), default(System.Text.Encodings.Web.HtmlEncoder), default(System.Text.Encodings.Web.UrlEncoder)) => throw null; public string IdFor(System.Linq.Expressions.Expression> expression) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent LabelFor(System.Linq.Expressions.Expression> expression, string labelText, object htmlAttributes) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent ListBoxFor(System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList, object htmlAttributes) => throw null; @@ -1168,32 +1073,28 @@ namespace Microsoft public string ValueFor(System.Linq.Expressions.Expression> expression, string format) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; } } - public class HtmlHelperOptions { - public Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode CheckBoxHiddenInputRenderMode { get => throw null; set => throw null; } - public bool ClientValidationEnabled { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.FormInputRenderMode FormInputRenderMode { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode Html5DateRenderingMode { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode CheckBoxHiddenInputRenderMode { get => throw null; set { } } + public bool ClientValidationEnabled { get => throw null; set { } } public HtmlHelperOptions() => throw null; - public string IdAttributeDotReplacement { get => throw null; set => throw null; } - public string ValidationMessageElement { get => throw null; set => throw null; } - public string ValidationSummaryMessageElement { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Mvc.Rendering.FormInputRenderMode FormInputRenderMode { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode Html5DateRenderingMode { get => throw null; set { } } + public string IdAttributeDotReplacement { get => throw null; set { } } + public string ValidationMessageElement { get => throw null; set { } } + public string ValidationSummaryMessageElement { get => throw null; set { } } } - public interface IAntiforgeryPolicy : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - public interface IFileVersionProvider { string AddFileVersionToPath(Microsoft.AspNetCore.Http.PathString requestPathBase, string path); } - public interface IHtmlGenerator { - string Encode(object value); string Encode(string value); + string Encode(object value); string FormatValue(object value, string format); Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateActionLink(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string linkText, string actionName, string controllerName, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes); Microsoft.AspNetCore.Html.IHtmlContent GenerateAntiforgery(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext); @@ -1209,8 +1110,8 @@ namespace Microsoft Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateRadioButton(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, bool? isChecked, object htmlAttributes); Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateRouteForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string routeName, object routeValues, string method, object htmlAttributes); Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateRouteLink(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string linkText, string routeName, string protocol, string hostName, string fragment, object routeValues, object htmlAttributes); - Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateSelect(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string optionLabel, string expression, System.Collections.Generic.IEnumerable selectList, System.Collections.Generic.ICollection currentValues, bool allowMultiple, object htmlAttributes); Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateSelect(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string optionLabel, string expression, System.Collections.Generic.IEnumerable selectList, bool allowMultiple, object htmlAttributes); + Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateSelect(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string optionLabel, string expression, System.Collections.Generic.IEnumerable selectList, System.Collections.Generic.ICollection currentValues, bool allowMultiple, object htmlAttributes); Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateTextArea(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, int rows, int columns, object htmlAttributes); Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateTextBox(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, object value, string format, object htmlAttributes); Microsoft.AspNetCore.Mvc.Rendering.TagBuilder GenerateValidationMessage(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, string message, string tag, object htmlAttributes); @@ -1218,38 +1119,21 @@ namespace Microsoft System.Collections.Generic.ICollection GetCurrentValues(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, bool allowMultiple); string IdAttributeDotReplacement { get; } } - public interface IModelExpressionProvider { Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression CreateModelExpression(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, System.Linq.Expressions.Expression> expression); } - - public interface ITempDataDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + namespace Infrastructure { - void Keep(); - void Keep(string key); - void Load(); - object Peek(string key); - void Save(); + public abstract class TempDataSerializer + { + public virtual bool CanSerializeType(System.Type type) => throw null; + protected TempDataSerializer() => throw null; + public abstract System.Collections.Generic.IDictionary Deserialize(byte[] unprotectedData); + public abstract byte[] Serialize(System.Collections.Generic.IDictionary values); + } } - - public interface ITempDataDictionaryFactory - { - Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary GetTempData(Microsoft.AspNetCore.Http.HttpContext context); - } - - public interface ITempDataProvider - { - System.Collections.Generic.IDictionary LoadTempData(Microsoft.AspNetCore.Http.HttpContext context); - void SaveTempData(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IDictionary values); - } - - public interface IViewContextAware - { - void Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext); - } - - public enum InputType : int + public enum InputType { CheckBox = 0, Hidden = 1, @@ -1257,163 +1141,172 @@ namespace Microsoft Radio = 3, Text = 4, } - + public interface ITempDataDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + void Keep(); + void Keep(string key); + void Load(); + object Peek(string key); + void Save(); + } + public interface ITempDataDictionaryFactory + { + Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary GetTempData(Microsoft.AspNetCore.Http.HttpContext context); + } + public interface ITempDataProvider + { + System.Collections.Generic.IDictionary LoadTempData(Microsoft.AspNetCore.Http.HttpContext context); + void SaveTempData(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IDictionary values); + } + public interface IViewContextAware + { + void Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext); + } public class ModelExplorer { public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer Container { get => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForExpression(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, System.Func modelAccessor) => throw null; + public ModelExplorer(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model) => throw null; + public ModelExplorer(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer container, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, System.Func modelAccessor) => throw null; + public ModelExplorer(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer container, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model) => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForExpression(System.Type modelType, object model) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForExpression(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForExpression(System.Type modelType, System.Func modelAccessor) => throw null; - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForExpression(System.Type modelType, object model) => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForExpression(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, System.Func modelAccessor) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForModel(object model) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForProperty(string name) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForProperty(string name, System.Func modelAccessor) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForProperty(string name, object model) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; } public object Model { get => throw null; } - public ModelExplorer(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer container, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, System.Func modelAccessor) => throw null; - public ModelExplorer(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer container, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model) => throw null; - public ModelExplorer(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object model) => throw null; public System.Type ModelType { get => throw null; } public System.Collections.Generic.IEnumerable Properties { get => throw null; } } - - public static class ModelExplorerExtensions + public static partial class ModelExplorerExtensions { public static string GetSimpleDisplayText(this Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) => throw null; } - - public class ModelExpression + public sealed class ModelExpression { + public ModelExpression(string name, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; } public object Model { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer ModelExplorer { get => throw null; } - public ModelExpression(string name, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) => throw null; public string Name { get => throw null; } } - public class ModelExpressionProvider : Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider { public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression CreateModelExpression(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, System.Linq.Expressions.Expression> expression) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression CreateModelExpression(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, string expression) => throw null; - public string GetExpressionText(System.Linq.Expressions.Expression> expression) => throw null; public ModelExpressionProvider(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) => throw null; + public string GetExpressionText(System.Linq.Expressions.Expression> expression) => throw null; } - - public static class ModelMetadataProviderExtensions + public static partial class ModelMetadataProviderExtensions { public static Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetModelExplorerForType(this Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider provider, System.Type modelType, object model) => throw null; } - public class PartialViewResultExecutor : Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { + public PartialViewResultExecutor(Microsoft.Extensions.Options.IOptions viewOptions, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) : base(default(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory), default(Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine), default(System.Diagnostics.DiagnosticListener)) => throw null; public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.PartialViewResult viewResult) => throw null; public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.PartialViewResult result) => throw null; public virtual Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult FindView(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.PartialViewResult viewResult) => throw null; protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } - public PartialViewResultExecutor(Microsoft.Extensions.Options.IOptions viewOptions, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) : base(default(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory), default(Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine), default(System.Diagnostics.DiagnosticListener)) => throw null; } - public class SaveTempDataAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter { public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider) => throw null; - public bool IsReusable { get => throw null; } - public int Order { get => throw null; set => throw null; } public SaveTempDataAttribute() => throw null; + public bool IsReusable { get => throw null; } + public int Order { get => throw null; set { } } } - public class SessionStateTempDataProvider : Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider { + public SessionStateTempDataProvider(Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer tempDataSerializer) => throw null; public virtual System.Collections.Generic.IDictionary LoadTempData(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public virtual void SaveTempData(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IDictionary values) => throw null; - public SessionStateTempDataProvider(Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer tempDataSerializer) => throw null; } - public class StringHtmlContent : Microsoft.AspNetCore.Html.IHtmlContent { public StringHtmlContent(string input) => throw null; public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - - public class TempDataDictionary : Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class TempDataDictionary : Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public void Add(string key, object value) => throw null; + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public void Clear() => throw null; bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public bool ContainsKey(string key) => throw null; public bool ContainsValue(object value) => throw null; void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int index) => throw null; public int Count { get => throw null; } + public TempDataDictionary(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider provider) => throw null; public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } - public object this[string key] { get => throw null; set => throw null; } public void Keep() => throw null; public void Keep(string key) => throw null; public System.Collections.Generic.ICollection Keys { get => throw null; } public void Load() => throw null; public object Peek(string key) => throw null; - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public bool Remove(string key) => throw null; + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; public void Save() => throw null; - public TempDataDictionary(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider provider) => throw null; + public object this[string key] { get => throw null; set { } } public bool TryGetValue(string key, out object value) => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } } - public class TempDataDictionaryFactory : Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory { - public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary GetTempData(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public TempDataDictionaryFactory(Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider provider) => throw null; + public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary GetTempData(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class TemplateInfo { public bool AddVisited(object value) => throw null; - public object FormattedModelValue { get => throw null; set => throw null; } - public string GetFullHtmlFieldName(string partialFieldName) => throw null; - public string HtmlFieldPrefix { get => throw null; set => throw null; } - public int TemplateDepth { get => throw null; } public TemplateInfo() => throw null; public TemplateInfo(Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo original) => throw null; + public object FormattedModelValue { get => throw null; set { } } + public string GetFullHtmlFieldName(string partialFieldName) => throw null; + public string HtmlFieldPrefix { get => throw null; set { } } + public int TemplateDepth { get => throw null; } public bool Visited(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) => throw null; } - public delegate bool TryGetValueDelegate(object dictionary, string key, out object value); - public static class TryGetValueProvider { public static Microsoft.AspNetCore.Mvc.ViewFeatures.TryGetValueDelegate CreateInstance(System.Type targetType) => throw null; } - public abstract class ValidationHtmlAttributeProvider { public virtual void AddAndTrackValidationAttributes(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, string expression, System.Collections.Generic.IDictionary attributes) => throw null; public abstract void AddValidationAttributes(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer, System.Collections.Generic.IDictionary attributes); protected ValidationHtmlAttributeProvider() => throw null; } - public class ViewComponentResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.ViewComponentResult result) => throw null; public ViewComponentResultExecutor(Microsoft.Extensions.Options.IOptions mvcHelperOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataDictionaryFactory, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.ViewComponentResult result) => throw null; } - public class ViewContextAttribute : System.Attribute { public ViewContextAttribute() => throw null; } - - public class ViewDataDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class ViewDataDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { - public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(string key, object value) => throw null; + public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Clear() => throw null; public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; public bool ContainsKey(string key) => throw null; public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } + public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; + public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source) => throw null; + protected ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, System.Type declaredModelType) => throw null; + protected ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Type declaredModelType) => throw null; + protected ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, System.Type declaredModelType) => throw null; + protected ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, object model, System.Type declaredModelType) => throw null; public object Eval(string expression) => throw null; public string Eval(string expression, string format) => throw null; public static string FormatValue(object value, string format) => throw null; @@ -1421,66 +1314,54 @@ namespace Microsoft System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo GetViewDataInfo(string expression) => throw null; public bool IsReadOnly { get => throw null; } - public object this[string index] { get => throw null; set => throw null; } public System.Collections.Generic.ICollection Keys { get => throw null; } - public object Model { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer ModelExplorer { get => throw null; set => throw null; } + public object Model { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer ModelExplorer { get => throw null; set { } } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } - public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; public bool Remove(string key) => throw null; + public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; protected virtual void SetModel(object value) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo TemplateInfo { get => throw null; } + public object this[string index] { get => throw null; set { } } public bool TryGetValue(string key, out object value) => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } - internal ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider) => throw null; - public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; - protected ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Type declaredModelType) => throw null; - protected ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, System.Type declaredModelType) => throw null; - public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source) => throw null; - protected ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, System.Type declaredModelType) => throw null; - protected ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, object model, System.Type declaredModelType) => throw null; } - public class ViewDataDictionary : Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary { - public TModel Model { get => throw null; set => throw null; } - internal ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider)) => throw null; - public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider)) => throw null; - public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider)) => throw null; - public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, object model) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider)) => throw null; + public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary)) => throw null; + public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source) : base(default(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary)) => throw null; + public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, object model) : base(default(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary)) => throw null; + public TModel Model { get => throw null; set { } } } - public class ViewDataDictionaryAttribute : System.Attribute { public ViewDataDictionaryAttribute() => throw null; } - public class ViewDataDictionaryControllerPropertyActivator { public void Activate(Microsoft.AspNetCore.Mvc.ControllerContext actionContext, object controller) => throw null; - public System.Action GetActivatorDelegate(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor actionDescriptor) => throw null; public ViewDataDictionaryControllerPropertyActivator(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) => throw null; + public System.Action GetActivatorDelegate(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor actionDescriptor) => throw null; } - public static class ViewDataEvaluator { public static Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo Eval(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, string expression) => throw null; public static Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo Eval(object indexableObject, string expression) => throw null; } - public class ViewDataInfo { public object Container { get => throw null; } - public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } - public object Value { get => throw null; set => throw null; } + public ViewDataInfo(object container, object value) => throw null; public ViewDataInfo(object container, System.Reflection.PropertyInfo propertyInfo) => throw null; public ViewDataInfo(object container, System.Reflection.PropertyInfo propertyInfo, System.Func valueAccessor) => throw null; - public ViewDataInfo(object container, object value) => throw null; + public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } + public object Value { get => throw null; set { } } } - public class ViewExecutor { + public ViewExecutor(Microsoft.Extensions.Options.IOptions viewOptions, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) => throw null; + protected ViewExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, System.Diagnostics.DiagnosticListener diagnosticListener) => throw null; public static string DefaultContentType; protected System.Diagnostics.DiagnosticListener DiagnosticListener { get => throw null; } public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary tempData, string contentType, int? statusCode) => throw null; @@ -1488,57 +1369,36 @@ namespace Microsoft protected Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider ModelMetadataProvider { get => throw null; } protected Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory TempDataFactory { get => throw null; } protected Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine ViewEngine { get => throw null; } - protected ViewExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, System.Diagnostics.DiagnosticListener diagnosticListener) => throw null; - public ViewExecutor(Microsoft.Extensions.Options.IOptions viewOptions, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) => throw null; protected Microsoft.AspNetCore.Mvc.MvcViewOptions ViewOptions { get => throw null; } protected Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory WriterFactory { get => throw null; } } - public class ViewResultExecutor : Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { + public ViewResultExecutor(Microsoft.Extensions.Options.IOptions viewOptions, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) : base(default(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory), default(Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine), default(System.Diagnostics.DiagnosticListener)) => throw null; public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.ViewResult result) => throw null; public virtual Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult FindView(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ViewResult viewResult) => throw null; protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } - public ViewResultExecutor(Microsoft.Extensions.Options.IOptions viewOptions, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) : base(default(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory), default(Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine), default(System.Diagnostics.DiagnosticListener)) => throw null; - } - - namespace Buffers - { - public interface IViewBufferScope - { - System.IO.TextWriter CreateWriter(System.IO.TextWriter writer); - Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue[] GetPage(int pageSize); - void ReturnSegment(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue[] segment); - } - - public struct ViewBufferValue - { - public object Value { get => throw null; } - // Stub generator skipped constructor - public ViewBufferValue(Microsoft.AspNetCore.Html.IHtmlContent content) => throw null; - public ViewBufferValue(string value) => throw null; - } - - } - namespace Infrastructure - { - public abstract class TempDataSerializer - { - public virtual bool CanSerializeType(System.Type type) => throw null; - public abstract System.Collections.Generic.IDictionary Deserialize(System.Byte[] unprotectedData); - public abstract System.Byte[] Serialize(System.Collections.Generic.IDictionary values); - protected TempDataSerializer() => throw null; - } - } } + public class ViewResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + { + public string ContentType { get => throw null; set { } } + public ViewResult() => throw null; + public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; + public object Model { get => throw null; } + public int? StatusCode { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set { } } + public Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine ViewEngine { get => throw null; set { } } + public string ViewName { get => throw null; set { } } + } } } namespace Extensions { namespace DependencyInjection { - public static class MvcViewFeaturesMvcBuilderExtensions + public static partial class MvcViewFeaturesMvcBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; @@ -1546,8 +1406,7 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddViewComponentsAsServices(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddViewOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; } - - public static class MvcViewFeaturesMvcCoreBuilderExtensions + public static partial class MvcViewFeaturesMvcCoreBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; @@ -1555,7 +1414,6 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddViews(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder ConfigureViews(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.cs index d45ae8e2a0f..d2f2724f8be 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Mvc, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class MvcServiceCollectionExtensions + public static partial class MvcServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddControllers(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddControllers(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; @@ -18,7 +17,6 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddRazorPages(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddRazorPages(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.OutputCaching.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.OutputCaching.cs index 404c5e60f22..0ad5295bbef 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.OutputCaching.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.OutputCaching.cs @@ -1,138 +1,126 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.OutputCaching, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class OutputCacheApplicationBuilderExtensions + public static partial class OutputCacheApplicationBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseOutputCache(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - } namespace OutputCaching { - public class CacheVaryByRules + public sealed class CacheVaryByRules { - public string CacheKeyPrefix { get => throw null; set => throw null; } + public string CacheKeyPrefix { get => throw null; set { } } public CacheVaryByRules() => throw null; - public Microsoft.Extensions.Primitives.StringValues HeaderNames { get => throw null; set => throw null; } - public Microsoft.Extensions.Primitives.StringValues QueryKeys { get => throw null; set => throw null; } - public Microsoft.Extensions.Primitives.StringValues RouteValueNames { get => throw null; set => throw null; } - public bool VaryByHost { get => throw null; set => throw null; } + public Microsoft.Extensions.Primitives.StringValues HeaderNames { get => throw null; set { } } + public Microsoft.Extensions.Primitives.StringValues QueryKeys { get => throw null; set { } } + public Microsoft.Extensions.Primitives.StringValues RouteValueNames { get => throw null; set { } } + public bool VaryByHost { get => throw null; set { } } public System.Collections.Generic.IDictionary VaryByValues { get => throw null; } } - public interface IOutputCacheFeature { Microsoft.AspNetCore.OutputCaching.OutputCacheContext Context { get; } } - public interface IOutputCachePolicy { System.Threading.Tasks.ValueTask CacheRequestAsync(Microsoft.AspNetCore.OutputCaching.OutputCacheContext context, System.Threading.CancellationToken cancellation); System.Threading.Tasks.ValueTask ServeFromCacheAsync(Microsoft.AspNetCore.OutputCaching.OutputCacheContext context, System.Threading.CancellationToken cancellation); System.Threading.Tasks.ValueTask ServeResponseAsync(Microsoft.AspNetCore.OutputCaching.OutputCacheContext context, System.Threading.CancellationToken cancellation); } - public interface IOutputCacheStore { System.Threading.Tasks.ValueTask EvictByTagAsync(string tag, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.ValueTask GetAsync(string key, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.ValueTask SetAsync(string key, System.Byte[] value, string[] tags, System.TimeSpan validFor, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.ValueTask GetAsync(string key, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.ValueTask SetAsync(string key, byte[] value, string[] tags, System.TimeSpan validFor, System.Threading.CancellationToken cancellationToken); } - - public class OutputCacheAttribute : System.Attribute + public sealed class OutputCacheAttribute : System.Attribute { - public int Duration { get => throw null; set => throw null; } - public bool NoStore { get => throw null; set => throw null; } public OutputCacheAttribute() => throw null; - public string PolicyName { get => throw null; set => throw null; } - public string[] VaryByHeaderNames { get => throw null; set => throw null; } - public string[] VaryByQueryKeys { get => throw null; set => throw null; } - public string[] VaryByRouteValueNames { get => throw null; set => throw null; } + public int Duration { get => throw null; set { } } + public bool NoStore { get => throw null; set { } } + public string PolicyName { get => throw null; set { } } + public string[] VaryByHeaderNames { get => throw null; set { } } + public string[] VaryByQueryKeys { get => throw null; set { } } + public string[] VaryByRouteValueNames { get => throw null; set { } } } - - public class OutputCacheContext + public sealed class OutputCacheContext { - public bool AllowCacheLookup { get => throw null; set => throw null; } - public bool AllowCacheStorage { get => throw null; set => throw null; } - public bool AllowLocking { get => throw null; set => throw null; } + public bool AllowCacheLookup { get => throw null; set { } } + public bool AllowCacheStorage { get => throw null; set { } } + public bool AllowLocking { get => throw null; set { } } public Microsoft.AspNetCore.OutputCaching.CacheVaryByRules CacheVaryByRules { get => throw null; } - public bool EnableOutputCaching { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set => throw null; } public OutputCacheContext() => throw null; - public System.TimeSpan? ResponseExpirationTimeSpan { get => throw null; set => throw null; } - public System.DateTimeOffset? ResponseTime { get => throw null; set => throw null; } + public bool EnableOutputCaching { get => throw null; set { } } + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set { } } + public System.TimeSpan? ResponseExpirationTimeSpan { get => throw null; set { } } + public System.DateTimeOffset? ResponseTime { get => throw null; set { } } public System.Collections.Generic.HashSet Tags { get => throw null; } } - public class OutputCacheOptions { + public void AddBasePolicy(Microsoft.AspNetCore.OutputCaching.IOutputCachePolicy policy) => throw null; public void AddBasePolicy(System.Action build) => throw null; public void AddBasePolicy(System.Action build, bool excludeDefaultPolicy) => throw null; - public void AddBasePolicy(Microsoft.AspNetCore.OutputCaching.IOutputCachePolicy policy) => throw null; + public void AddPolicy(string name, Microsoft.AspNetCore.OutputCaching.IOutputCachePolicy policy) => throw null; public void AddPolicy(string name, System.Action build) => throw null; public void AddPolicy(string name, System.Action build, bool excludeDefaultPolicy) => throw null; - public void AddPolicy(string name, Microsoft.AspNetCore.OutputCaching.IOutputCachePolicy policy) => throw null; - public System.IServiceProvider ApplicationServices { get => throw null; set => throw null; } - public System.TimeSpan DefaultExpirationTimeSpan { get => throw null; set => throw null; } - public System.Int64 MaximumBodySize { get => throw null; set => throw null; } + public System.IServiceProvider ApplicationServices { get => throw null; } public OutputCacheOptions() => throw null; - public System.Int64 SizeLimit { get => throw null; set => throw null; } - public bool UseCaseSensitivePaths { get => throw null; set => throw null; } + public System.TimeSpan DefaultExpirationTimeSpan { get => throw null; set { } } + public long MaximumBodySize { get => throw null; set { } } + public long SizeLimit { get => throw null; set { } } + public bool UseCaseSensitivePaths { get => throw null; set { } } } - - public class OutputCachePolicyBuilder + public sealed class OutputCachePolicyBuilder { public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder AddPolicy(System.Type policyType) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder AddPolicy() where T : Microsoft.AspNetCore.OutputCaching.IOutputCachePolicy => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder Cache() => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder Expire(System.TimeSpan expiration) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder NoCache() => throw null; - public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetCacheKeyPrefix(System.Func> keyPrefix) => throw null; - public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetCacheKeyPrefix(System.Func keyPrefix) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetCacheKeyPrefix(string keyPrefix) => throw null; + public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetCacheKeyPrefix(System.Func keyPrefix) => throw null; + public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetCacheKeyPrefix(System.Func> keyPrefix) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetLocking(bool enabled) => throw null; - public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetVaryByHeader(string[] headerNames) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetVaryByHeader(string headerName, params string[] headerNames) => throw null; + public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetVaryByHeader(string[] headerNames) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetVaryByHost(bool enabled) => throw null; - public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetVaryByQuery(string[] queryKeys) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetVaryByQuery(string queryKey, params string[] queryKeys) => throw null; - public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetVaryByRouteValue(string[] routeValueNames) => throw null; + public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetVaryByQuery(string[] queryKeys) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetVaryByRouteValue(string routeValueName, params string[] routeValueNames) => throw null; + public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder SetVaryByRouteValue(string[] routeValueNames) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder Tag(params string[] tags) => throw null; - public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder VaryByValue(System.Func>> varyBy) => throw null; - public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder VaryByValue(System.Func> varyBy) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder VaryByValue(string key, string value) => throw null; + public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder VaryByValue(System.Func> varyBy) => throw null; + public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder VaryByValue(System.Func>> varyBy) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder With(System.Func> predicate) => throw null; public Microsoft.AspNetCore.OutputCaching.OutputCachePolicyBuilder With(System.Func predicate) => throw null; } - } } namespace Extensions { namespace DependencyInjection { - public static class OutputCacheConventionBuilderExtensions + public static partial class OutputCacheConventionBuilderExtensions { public static TBuilder CacheOutput(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; + public static TBuilder CacheOutput(this TBuilder builder, Microsoft.AspNetCore.OutputCaching.IOutputCachePolicy policy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder CacheOutput(this TBuilder builder, System.Action policy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder CacheOutput(this TBuilder builder, System.Action policy, bool excludeDefaultPolicy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; - public static TBuilder CacheOutput(this TBuilder builder, Microsoft.AspNetCore.OutputCaching.IOutputCachePolicy policy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder CacheOutput(this TBuilder builder, string policyName) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; } - - public static class OutputCacheServiceCollectionExtensions + public static partial class OutputCacheServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddOutputCache(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddOutputCache(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.RateLimiting.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.RateLimiting.cs index 0bb4d3b987e..6fa8fb2c115 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.RateLimiting.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.RateLimiting.cs @@ -1,76 +1,66 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.RateLimiting, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class RateLimiterApplicationBuilderExtensions + public static partial class RateLimiterApplicationBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRateLimiter(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRateLimiter(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.RateLimiting.RateLimiterOptions options) => throw null; } - - public static class RateLimiterEndpointConventionBuilderExtensions + public static partial class RateLimiterEndpointConventionBuilderExtensions { public static TBuilder DisableRateLimiting(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; - public static TBuilder RequireRateLimiting(this TBuilder builder, Microsoft.AspNetCore.RateLimiting.IRateLimiterPolicy policy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder RequireRateLimiting(this TBuilder builder, string policyName) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; + public static TBuilder RequireRateLimiting(this TBuilder builder, Microsoft.AspNetCore.RateLimiting.IRateLimiterPolicy policy) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; } - - public static class RateLimiterServiceCollectionExtensions + public static partial class RateLimiterServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddRateLimiter(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } namespace RateLimiting { - public class DisableRateLimitingAttribute : System.Attribute + public sealed class DisableRateLimitingAttribute : System.Attribute { public DisableRateLimitingAttribute() => throw null; } - - public class EnableRateLimitingAttribute : System.Attribute + public sealed class EnableRateLimitingAttribute : System.Attribute { public EnableRateLimitingAttribute(string policyName) => throw null; public string PolicyName { get => throw null; } } - public interface IRateLimiterPolicy { System.Threading.RateLimiting.RateLimitPartition GetPartition(Microsoft.AspNetCore.Http.HttpContext httpContext); System.Func OnRejected { get; } } - - public class OnRejectedContext + public sealed class OnRejectedContext { - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set => throw null; } - public System.Threading.RateLimiting.RateLimitLease Lease { get => throw null; set => throw null; } public OnRejectedContext() => throw null; + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set { } } + public System.Threading.RateLimiting.RateLimitLease Lease { get => throw null; set { } } } - - public class RateLimiterOptions + public sealed class RateLimiterOptions { - public Microsoft.AspNetCore.RateLimiting.RateLimiterOptions AddPolicy(string policyName) where TPolicy : Microsoft.AspNetCore.RateLimiting.IRateLimiterPolicy => throw null; public Microsoft.AspNetCore.RateLimiting.RateLimiterOptions AddPolicy(string policyName, System.Func> partitioner) => throw null; + public Microsoft.AspNetCore.RateLimiting.RateLimiterOptions AddPolicy(string policyName) where TPolicy : Microsoft.AspNetCore.RateLimiting.IRateLimiterPolicy => throw null; public Microsoft.AspNetCore.RateLimiting.RateLimiterOptions AddPolicy(string policyName, Microsoft.AspNetCore.RateLimiting.IRateLimiterPolicy policy) => throw null; - public System.Threading.RateLimiting.PartitionedRateLimiter GlobalLimiter { get => throw null; set => throw null; } - public System.Func OnRejected { get => throw null; set => throw null; } public RateLimiterOptions() => throw null; - public int RejectionStatusCode { get => throw null; set => throw null; } + public System.Threading.RateLimiting.PartitionedRateLimiter GlobalLimiter { get => throw null; set { } } + public System.Func OnRejected { get => throw null; set { } } + public int RejectionStatusCode { get => throw null; set { } } } - - public static class RateLimiterOptionsExtensions + public static partial class RateLimiterOptionsExtensions { public static Microsoft.AspNetCore.RateLimiting.RateLimiterOptions AddConcurrencyLimiter(this Microsoft.AspNetCore.RateLimiting.RateLimiterOptions options, string policyName, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.RateLimiting.RateLimiterOptions AddFixedWindowLimiter(this Microsoft.AspNetCore.RateLimiting.RateLimiterOptions options, string policyName, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.RateLimiting.RateLimiterOptions AddSlidingWindowLimiter(this Microsoft.AspNetCore.RateLimiting.RateLimiterOptions options, string policyName, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.RateLimiting.RateLimiterOptions AddTokenBucketLimiter(this Microsoft.AspNetCore.RateLimiting.RateLimiterOptions options, string policyName, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.Runtime.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.Runtime.cs index fddb3de9a74..58ade22f1eb 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.Runtime.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.Runtime.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Razor.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -15,71 +14,61 @@ namespace Microsoft string ChecksumAlgorithm { get; } string Identifier { get; } } - public abstract class RazorCompiledItem { + protected RazorCompiledItem() => throw null; public abstract string Identifier { get; } public abstract string Kind { get; } public abstract System.Collections.Generic.IReadOnlyList Metadata { get; } - protected RazorCompiledItem() => throw null; public abstract System.Type Type { get; } } - - public class RazorCompiledItemAttribute : System.Attribute + public sealed class RazorCompiledItemAttribute : System.Attribute { + public RazorCompiledItemAttribute(System.Type type, string kind, string identifier) => throw null; public string Identifier { get => throw null; } public string Kind { get => throw null; } - public RazorCompiledItemAttribute(System.Type type, string kind, string identifier) => throw null; public System.Type Type { get => throw null; } } - - public static class RazorCompiledItemExtensions + public static partial class RazorCompiledItemExtensions { public static System.Collections.Generic.IReadOnlyList GetChecksumMetadata(this Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item) => throw null; } - public class RazorCompiledItemLoader { protected virtual Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem CreateItem(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute attribute) => throw null; + public RazorCompiledItemLoader() => throw null; protected System.Collections.Generic.IEnumerable LoadAttributes(System.Reflection.Assembly assembly) => throw null; public virtual System.Collections.Generic.IReadOnlyList LoadItems(System.Reflection.Assembly assembly) => throw null; - public RazorCompiledItemLoader() => throw null; } - - public class RazorCompiledItemMetadataAttribute : System.Attribute + public sealed class RazorCompiledItemMetadataAttribute : System.Attribute { - public string Key { get => throw null; } public RazorCompiledItemMetadataAttribute(string key, string value) => throw null; + public string Key { get => throw null; } public string Value { get => throw null; } } - - public class RazorConfigurationNameAttribute : System.Attribute + public sealed class RazorConfigurationNameAttribute : System.Attribute { public string ConfigurationName { get => throw null; } public RazorConfigurationNameAttribute(string configurationName) => throw null; } - - public class RazorExtensionAssemblyNameAttribute : System.Attribute + public sealed class RazorExtensionAssemblyNameAttribute : System.Attribute { public string AssemblyName { get => throw null; } - public string ExtensionName { get => throw null; } public RazorExtensionAssemblyNameAttribute(string extensionName, string assemblyName) => throw null; + public string ExtensionName { get => throw null; } } - - public class RazorLanguageVersionAttribute : System.Attribute + public sealed class RazorLanguageVersionAttribute : System.Attribute { - public string LanguageVersion { get => throw null; } public RazorLanguageVersionAttribute(string languageVersion) => throw null; + public string LanguageVersion { get => throw null; } } - - public class RazorSourceChecksumAttribute : System.Attribute, Microsoft.AspNetCore.Razor.Hosting.IRazorSourceChecksumMetadata + public sealed class RazorSourceChecksumAttribute : System.Attribute, Microsoft.AspNetCore.Razor.Hosting.IRazorSourceChecksumMetadata { public string Checksum { get => throw null; } public string ChecksumAlgorithm { get => throw null; } - public string Identifier { get => throw null; } public RazorSourceChecksumAttribute(string checksumAlgorithm, string checksum, string identifier) => throw null; + public string Identifier { get => throw null; } } - } namespace Runtime { @@ -88,33 +77,30 @@ namespace Microsoft public class TagHelperExecutionContext { public void Add(Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper tagHelper) => throw null; - public void AddHtmlAttribute(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; public void AddHtmlAttribute(string name, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) => throw null; - public void AddTagHelperAttribute(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; + public void AddHtmlAttribute(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; public void AddTagHelperAttribute(string name, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) => throw null; + public void AddTagHelperAttribute(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; public bool ChildContentRetrieved { get => throw null; } public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext Context { get => throw null; } + public TagHelperExecutionContext(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode, System.Collections.Generic.IDictionary items, string uniqueId, System.Func executeChildContentAsync, System.Action startTagHelperWritingScope, System.Func endTagHelperWritingScope) => throw null; public System.Collections.Generic.IDictionary Items { get => throw null; } - public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput Output { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput Output { get => throw null; } public void Reinitialize(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode, System.Collections.Generic.IDictionary items, string uniqueId, System.Func executeChildContentAsync) => throw null; public System.Threading.Tasks.Task SetOutputContentAsync() => throw null; - public TagHelperExecutionContext(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode, System.Collections.Generic.IDictionary items, string uniqueId, System.Func executeChildContentAsync, System.Action startTagHelperWritingScope, System.Func endTagHelperWritingScope) => throw null; public System.Collections.Generic.IList TagHelpers { get => throw null; } } - public class TagHelperRunner { - public System.Threading.Tasks.Task RunAsync(Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext executionContext) => throw null; public TagHelperRunner() => throw null; + public System.Threading.Tasks.Task RunAsync(Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext executionContext) => throw null; } - public class TagHelperScopeManager { public Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext Begin(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode, string uniqueId, System.Func executeChildContentAsync) => throw null; - public Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext End() => throw null; public TagHelperScopeManager(System.Action startTagHelperWritingScope, System.Func endTagHelperWritingScope) => throw null; + public Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext End() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.cs index e0237fcaff4..0f28ce7578b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Razor, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -25,152 +24,138 @@ namespace Microsoft public override void Reinitialize() => throw null; public override void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - - public class HtmlAttributeNameAttribute : System.Attribute + public sealed class HtmlAttributeNameAttribute : System.Attribute { - public string DictionaryAttributePrefix { get => throw null; set => throw null; } - public bool DictionaryAttributePrefixSet { get => throw null; } public HtmlAttributeNameAttribute() => throw null; public HtmlAttributeNameAttribute(string name) => throw null; + public string DictionaryAttributePrefix { get => throw null; set { } } + public bool DictionaryAttributePrefixSet { get => throw null; } public string Name { get => throw null; } } - - public class HtmlAttributeNotBoundAttribute : System.Attribute + public sealed class HtmlAttributeNotBoundAttribute : System.Attribute { public HtmlAttributeNotBoundAttribute() => throw null; } - - public enum HtmlAttributeValueStyle : int + public enum HtmlAttributeValueStyle { DoubleQuotes = 0, - Minimized = 3, - NoQuotes = 2, SingleQuotes = 1, + NoQuotes = 2, + Minimized = 3, } - - public class HtmlTargetElementAttribute : System.Attribute + public sealed class HtmlTargetElementAttribute : System.Attribute { - public string Attributes { get => throw null; set => throw null; } - public const string ElementCatchAllTarget = default; + public string Attributes { get => throw null; set { } } public HtmlTargetElementAttribute() => throw null; public HtmlTargetElementAttribute(string tag) => throw null; - public string ParentTag { get => throw null; set => throw null; } + public static string ElementCatchAllTarget; + public string ParentTag { get => throw null; set { } } public string Tag { get => throw null; } - public Microsoft.AspNetCore.Razor.TagHelpers.TagStructure TagStructure { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Razor.TagHelpers.TagStructure TagStructure { get => throw null; set { } } } - public interface ITagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent { } - public interface ITagHelperComponent { void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context); int Order { get; } System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output); } - - public class NullHtmlEncoder : System.Text.Encodings.Web.HtmlEncoder + public sealed class NullHtmlEncoder : System.Text.Encodings.Web.HtmlEncoder { public static Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder Default { get => throw null; } - public override void Encode(System.IO.TextWriter output, System.Char[] value, int startIndex, int characterCount) => throw null; - public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => throw null; public override string Encode(string value) => throw null; - unsafe public override int FindFirstCharacterToEncode(System.Char* text, int textLength) => throw null; + public override void Encode(System.IO.TextWriter output, char[] value, int startIndex, int characterCount) => throw null; + public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => throw null; + public override unsafe int FindFirstCharacterToEncode(char* text, int textLength) => throw null; public override int MaxOutputCharactersPerInputCharacter { get => throw null; } - unsafe public override bool TryEncodeUnicodeScalar(int unicodeScalar, System.Char* buffer, int bufferLength, out int numberOfCharactersWritten) => throw null; + public override unsafe bool TryEncodeUnicodeScalar(int unicodeScalar, char* buffer, int bufferLength, out int numberOfCharactersWritten) => throw null; public override bool WillEncode(int unicodeScalar) => throw null; } - - public class OutputElementHintAttribute : System.Attribute + public sealed class OutputElementHintAttribute : System.Attribute { - public string OutputElement { get => throw null; } public OutputElementHintAttribute(string outputElement) => throw null; + public string OutputElement { get => throw null; } } - public abstract class ReadOnlyTagHelperAttributeList : System.Collections.ObjectModel.ReadOnlyCollection { public bool ContainsName(string name) => throw null; - public int IndexOfName(string name) => throw null; - public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute this[string name] { get => throw null; } - protected static bool NameEquals(string name, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; protected ReadOnlyTagHelperAttributeList() : base(default(System.Collections.Generic.IList)) => throw null; public ReadOnlyTagHelperAttributeList(System.Collections.Generic.IList attributes) : base(default(System.Collections.Generic.IList)) => throw null; + public int IndexOfName(string name) => throw null; + protected static bool NameEquals(string name, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; + public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute this[string name] { get => throw null; } public bool TryGetAttribute(string name, out Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; public bool TryGetAttributes(string name, out System.Collections.Generic.IReadOnlyList attributes) => throw null; } - - public class RestrictChildrenAttribute : System.Attribute + public sealed class RestrictChildrenAttribute : System.Attribute { public System.Collections.Generic.IEnumerable ChildTags { get => throw null; } public RestrictChildrenAttribute(string childTag, params string[] childTags) => throw null; } - public abstract class TagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper, Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent { + protected TagHelper() => throw null; public virtual void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; public virtual int Order { get => throw null; } public virtual void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; public virtual System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - protected TagHelper() => throw null; } - - public class TagHelperAttribute : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentContainer + public class TagHelperAttribute : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent { public void CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; + public TagHelperAttribute(string name) => throw null; + public TagHelperAttribute(string name, object value) => throw null; + public TagHelperAttribute(string name, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) => throw null; public bool Equals(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public void MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; public string Name { get => throw null; } - public TagHelperAttribute(string name) => throw null; - public TagHelperAttribute(string name, object value) => throw null; - public TagHelperAttribute(string name, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) => throw null; public object Value { get => throw null; } public Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle ValueStyle { get => throw null; } public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - - public class TagHelperAttributeList : Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + public class TagHelperAttributeList : Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList, System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - public void Add(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; public void Add(string name, object value) => throw null; + public void Add(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; public void Clear() => throw null; - public void Insert(int index, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute this[int index] { get => throw null; set => throw null; } - public bool Remove(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; - public bool RemoveAll(string name) => throw null; - public void RemoveAt(int index) => throw null; - public void SetAttribute(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; - public void SetAttribute(string name, object value) => throw null; public TagHelperAttributeList() => throw null; public TagHelperAttributeList(System.Collections.Generic.IEnumerable attributes) => throw null; public TagHelperAttributeList(System.Collections.Generic.List attributes) => throw null; + public void Insert(int index, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; + bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } + public bool Remove(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; + public bool RemoveAll(string name) => throw null; + public void RemoveAt(int index) => throw null; + public void SetAttribute(string name, object value) => throw null; + public void SetAttribute(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; + public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute this[int index] { get => throw null; set { } } } - public abstract class TagHelperComponent : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent { + protected TagHelperComponent() => throw null; public virtual void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; public virtual int Order { get => throw null; } public virtual void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; public virtual System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; - protected TagHelperComponent() => throw null; } - - public abstract class TagHelperContent : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContentContainer + public abstract class TagHelperContent : Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent { public abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent Append(string unencoded); Microsoft.AspNetCore.Html.IHtmlContentBuilder Microsoft.AspNetCore.Html.IHtmlContentBuilder.Append(string unencoded) => throw null; - public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent AppendFormat(System.IFormatProvider provider, string format, params object[] args) => throw null; public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent AppendFormat(string format, params object[] args) => throw null; + public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent AppendFormat(System.IFormatProvider provider, string format, params object[] args) => throw null; public abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent htmlContent); - Microsoft.AspNetCore.Html.IHtmlContentBuilder Microsoft.AspNetCore.Html.IHtmlContentBuilder.AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent content) => throw null; public abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent AppendHtml(string encoded); + Microsoft.AspNetCore.Html.IHtmlContentBuilder Microsoft.AspNetCore.Html.IHtmlContentBuilder.AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent content) => throw null; Microsoft.AspNetCore.Html.IHtmlContentBuilder Microsoft.AspNetCore.Html.IHtmlContentBuilder.AppendHtml(string encoded) => throw null; public abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent Clear(); Microsoft.AspNetCore.Html.IHtmlContentBuilder Microsoft.AspNetCore.Html.IHtmlContentBuilder.Clear() => throw null; public abstract void CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination); + protected TagHelperContent() => throw null; public abstract string GetContent(); public abstract string GetContent(System.Text.Encodings.Web.HtmlEncoder encoder); public abstract bool IsEmptyOrWhiteSpace { get; } @@ -180,30 +165,28 @@ namespace Microsoft public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent SetContent(string unencoded) => throw null; public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent SetHtmlContent(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) => throw null; public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent SetHtmlContent(string encoded) => throw null; - protected TagHelperContent() => throw null; public abstract void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder); } - public class TagHelperContext { public Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList AllAttributes { get => throw null; } - public System.Collections.Generic.IDictionary Items { get => throw null; } - public void Reinitialize(System.Collections.Generic.IDictionary items, string uniqueId) => throw null; - public void Reinitialize(string tagName, System.Collections.Generic.IDictionary items, string uniqueId) => throw null; - public TagHelperContext(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList allAttributes, System.Collections.Generic.IDictionary items, string uniqueId) => throw null; public TagHelperContext(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList allAttributes, System.Collections.Generic.IDictionary items, string uniqueId) => throw null; + public TagHelperContext(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList allAttributes, System.Collections.Generic.IDictionary items, string uniqueId) => throw null; + public System.Collections.Generic.IDictionary Items { get => throw null; } + public void Reinitialize(string tagName, System.Collections.Generic.IDictionary items, string uniqueId) => throw null; + public void Reinitialize(System.Collections.Generic.IDictionary items, string uniqueId) => throw null; public string TagName { get => throw null; } public string UniqueId { get => throw null; } } - - public class TagHelperOutput : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentContainer + public class TagHelperOutput : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent { public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList Attributes { get => throw null; } - public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent Content { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent Content { get => throw null; set { } } void Microsoft.AspNetCore.Html.IHtmlContentContainer.CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; + public TagHelperOutput(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList attributes, System.Func> getChildContentAsync) => throw null; public System.Threading.Tasks.Task GetChildContentAsync() => throw null; - public System.Threading.Tasks.Task GetChildContentAsync(System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; public System.Threading.Tasks.Task GetChildContentAsync(bool useCachedResult) => throw null; + public System.Threading.Tasks.Task GetChildContentAsync(System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; public System.Threading.Tasks.Task GetChildContentAsync(bool useCachedResult, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; public bool IsContentModified { get => throw null; } void Microsoft.AspNetCore.Html.IHtmlContentContainer.MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; @@ -213,26 +196,22 @@ namespace Microsoft public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent PreElement { get => throw null; } public void Reinitialize(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode) => throw null; public void SuppressOutput() => throw null; - public TagHelperOutput(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList attributes, System.Func> getChildContentAsync) => throw null; - public Microsoft.AspNetCore.Razor.TagHelpers.TagMode TagMode { get => throw null; set => throw null; } - public string TagName { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Razor.TagHelpers.TagMode TagMode { get => throw null; set { } } + public string TagName { get => throw null; set { } } public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - - public enum TagMode : int + public enum TagMode { - SelfClosing = 1, StartTagAndEndTag = 0, + SelfClosing = 1, StartTagOnly = 2, } - - public enum TagStructure : int + public enum TagStructure { - NormalOrSelfClosing = 1, Unspecified = 0, + NormalOrSelfClosing = 1, WithoutEndTag = 2, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.RequestDecompression.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.RequestDecompression.cs index 1d9dbeeaa9a..b10d05167b0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.RequestDecompression.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.RequestDecompression.cs @@ -1,17 +1,15 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.RequestDecompression, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class RequestDecompressionBuilderExtensions + public static partial class RequestDecompressionBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRequestDecompression(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) => throw null; } - } namespace RequestDecompression { @@ -19,30 +17,26 @@ namespace Microsoft { System.IO.Stream GetDecompressionStream(System.IO.Stream stream); } - public interface IRequestDecompressionProvider { System.IO.Stream GetDecompressionStream(Microsoft.AspNetCore.Http.HttpContext context); } - - public class RequestDecompressionOptions + public sealed class RequestDecompressionOptions { - public System.Collections.Generic.IDictionary DecompressionProviders { get => throw null; } public RequestDecompressionOptions() => throw null; + public System.Collections.Generic.IDictionary DecompressionProviders { get => throw null; } } - } } namespace Extensions { namespace DependencyInjection { - public static class RequestDecompressionServiceExtensions + public static partial class RequestDecompressionServiceExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddRequestDecompression(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddRequestDecompression(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCaching.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCaching.Abstractions.cs index 3221fa5aba7..8710c555a08 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCaching.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCaching.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.ResponseCaching.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -11,7 +10,6 @@ namespace Microsoft { string[] VaryByQueryKeys { get; set; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCaching.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCaching.cs index 90b2a5cc97d..0285ed3d5b7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCaching.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCaching.cs @@ -1,52 +1,46 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.ResponseCaching, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class ResponseCachingExtensions + public static partial class ResponseCachingExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseResponseCaching(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - } namespace ResponseCaching { public class ResponseCachingFeature : Microsoft.AspNetCore.ResponseCaching.IResponseCachingFeature { public ResponseCachingFeature() => throw null; - public string[] VaryByQueryKeys { get => throw null; set => throw null; } + public string[] VaryByQueryKeys { get => throw null; set { } } } - public class ResponseCachingMiddleware { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public ResponseCachingMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.ObjectPool.ObjectPoolProvider poolProvider) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - public class ResponseCachingOptions { - public System.Int64 MaximumBodySize { get => throw null; set => throw null; } public ResponseCachingOptions() => throw null; - public System.Int64 SizeLimit { get => throw null; set => throw null; } - public bool UseCaseSensitivePaths { get => throw null; set => throw null; } + public long MaximumBodySize { get => throw null; set { } } + public long SizeLimit { get => throw null; set { } } + public bool UseCaseSensitivePaths { get => throw null; set { } } } - } } namespace Extensions { namespace DependencyInjection { - public static class ResponseCachingServicesExtensions + public static partial class ResponseCachingServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddResponseCaching(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddResponseCaching(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCompression.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCompression.cs index 3e1947b46f2..de463c5e6b5 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCompression.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCompression.cs @@ -1,106 +1,92 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.ResponseCompression, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class ResponseCompressionBuilderExtensions + public static partial class ResponseCompressionBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseResponseCompression(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) => throw null; } - - public static class ResponseCompressionServicesExtensions + public static partial class ResponseCompressionServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddResponseCompression(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddResponseCompression(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } namespace ResponseCompression { public class BrotliCompressionProvider : Microsoft.AspNetCore.ResponseCompression.ICompressionProvider { - public BrotliCompressionProvider(Microsoft.Extensions.Options.IOptions options) => throw null; public System.IO.Stream CreateStream(System.IO.Stream outputStream) => throw null; + public BrotliCompressionProvider(Microsoft.Extensions.Options.IOptions options) => throw null; public string EncodingName { get => throw null; } public bool SupportsFlush { get => throw null; } } - public class BrotliCompressionProviderOptions : Microsoft.Extensions.Options.IOptions { public BrotliCompressionProviderOptions() => throw null; - public System.IO.Compression.CompressionLevel Level { get => throw null; set => throw null; } + public System.IO.Compression.CompressionLevel Level { get => throw null; set { } } Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProviderOptions Microsoft.Extensions.Options.IOptions.Value { get => throw null; } } - public class CompressionProviderCollection : System.Collections.ObjectModel.Collection { - public void Add(System.Type providerType) => throw null; public void Add() where TCompressionProvider : Microsoft.AspNetCore.ResponseCompression.ICompressionProvider => throw null; + public void Add(System.Type providerType) => throw null; public CompressionProviderCollection() => throw null; } - public class GzipCompressionProvider : Microsoft.AspNetCore.ResponseCompression.ICompressionProvider { public System.IO.Stream CreateStream(System.IO.Stream outputStream) => throw null; - public string EncodingName { get => throw null; } public GzipCompressionProvider(Microsoft.Extensions.Options.IOptions options) => throw null; + public string EncodingName { get => throw null; } public bool SupportsFlush { get => throw null; } } - public class GzipCompressionProviderOptions : Microsoft.Extensions.Options.IOptions { public GzipCompressionProviderOptions() => throw null; - public System.IO.Compression.CompressionLevel Level { get => throw null; set => throw null; } + public System.IO.Compression.CompressionLevel Level { get => throw null; set { } } Microsoft.AspNetCore.ResponseCompression.GzipCompressionProviderOptions Microsoft.Extensions.Options.IOptions.Value { get => throw null; } } - public interface ICompressionProvider { System.IO.Stream CreateStream(System.IO.Stream outputStream); string EncodingName { get; } bool SupportsFlush { get; } } - public interface IResponseCompressionProvider { bool CheckRequestAcceptsCompression(Microsoft.AspNetCore.Http.HttpContext context); Microsoft.AspNetCore.ResponseCompression.ICompressionProvider GetCompressionProvider(Microsoft.AspNetCore.Http.HttpContext context); bool ShouldCompressResponse(Microsoft.AspNetCore.Http.HttpContext context); } - public class ResponseCompressionDefaults { - public static System.Collections.Generic.IEnumerable MimeTypes; public ResponseCompressionDefaults() => throw null; + public static System.Collections.Generic.IEnumerable MimeTypes; } - public class ResponseCompressionMiddleware { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public ResponseCompressionMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider provider) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class ResponseCompressionOptions { - public bool EnableForHttps { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable ExcludedMimeTypes { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable MimeTypes { get => throw null; set => throw null; } - public Microsoft.AspNetCore.ResponseCompression.CompressionProviderCollection Providers { get => throw null; } public ResponseCompressionOptions() => throw null; + public bool EnableForHttps { get => throw null; set { } } + public System.Collections.Generic.IEnumerable ExcludedMimeTypes { get => throw null; set { } } + public System.Collections.Generic.IEnumerable MimeTypes { get => throw null; set { } } + public Microsoft.AspNetCore.ResponseCompression.CompressionProviderCollection Providers { get => throw null; } } - public class ResponseCompressionProvider : Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider { public bool CheckRequestAcceptsCompression(Microsoft.AspNetCore.Http.HttpContext context) => throw null; - public virtual Microsoft.AspNetCore.ResponseCompression.ICompressionProvider GetCompressionProvider(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public ResponseCompressionProvider(System.IServiceProvider services, Microsoft.Extensions.Options.IOptions options) => throw null; + public virtual Microsoft.AspNetCore.ResponseCompression.ICompressionProvider GetCompressionProvider(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public virtual bool ShouldCompressResponse(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Rewrite.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Rewrite.cs index d5e6f4d527f..c9fe0b0571d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Rewrite.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Rewrite.cs @@ -1,64 +1,56 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Rewrite, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class RewriteBuilderExtensions + public static partial class RewriteBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRewriter(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRewriter(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Rewrite.RewriteOptions options) => throw null; } - } namespace Rewrite { - public static class ApacheModRewriteOptionsExtensions + public static partial class ApacheModRewriteOptionsExtensions { public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddApacheModRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, Microsoft.Extensions.FileProviders.IFileProvider fileProvider, string filePath) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddApacheModRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, System.IO.TextReader reader) => throw null; } - - public static class IISUrlRewriteOptionsExtensions + public static partial class IISUrlRewriteOptionsExtensions { public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddIISUrlRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, Microsoft.Extensions.FileProviders.IFileProvider fileProvider, string filePath, bool alwaysUseManagedServerVariables = default(bool)) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddIISUrlRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, System.IO.TextReader reader, bool alwaysUseManagedServerVariables = default(bool)) => throw null; } - public interface IRule { void ApplyRule(Microsoft.AspNetCore.Rewrite.RewriteContext context); } - public class RewriteContext { - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set => throw null; } - public Microsoft.Extensions.Logging.ILogger Logger { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Rewrite.RuleResult Result { get => throw null; set => throw null; } public RewriteContext() => throw null; - public Microsoft.Extensions.FileProviders.IFileProvider StaticFileProvider { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set { } } + public Microsoft.Extensions.Logging.ILogger Logger { get => throw null; set { } } + public Microsoft.AspNetCore.Rewrite.RuleResult Result { get => throw null; set { } } + public Microsoft.Extensions.FileProviders.IFileProvider StaticFileProvider { get => throw null; set { } } } - public class RewriteMiddleware { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public RewriteMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class RewriteOptions { public RewriteOptions() => throw null; public System.Collections.Generic.IList Rules { get => throw null; } - public Microsoft.Extensions.FileProviders.IFileProvider StaticFileProvider { get => throw null; set => throw null; } + public Microsoft.Extensions.FileProviders.IFileProvider StaticFileProvider { get => throw null; set { } } } - - public static class RewriteOptionsExtensions + public static partial class RewriteOptionsExtensions { - public static Microsoft.AspNetCore.Rewrite.RewriteOptions Add(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, System.Action applyRule) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions Add(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, Microsoft.AspNetCore.Rewrite.IRule rule) => throw null; + public static Microsoft.AspNetCore.Rewrite.RewriteOptions Add(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, System.Action applyRule) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirect(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, string regex, string replacement) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirect(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, string regex, string replacement, int statusCode) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToHttps(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) => throw null; @@ -66,27 +58,25 @@ namespace Microsoft public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToHttps(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode, int? sslPort) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToHttpsPermanent(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToNonWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) => throw null; + public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToNonWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, params string[] domains) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToNonWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToNonWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode, params string[] domains) => throw null; - public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToNonWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, params string[] domains) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToNonWwwPermanent(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToNonWwwPermanent(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, params string[] domains) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) => throw null; + public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, params string[] domains) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode, params string[] domains) => throw null; - public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, params string[] domains) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToWwwPermanent(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToWwwPermanent(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, params string[] domains) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, string regex, string replacement, bool skipRemainingRules) => throw null; } - - public enum RuleResult : int + public enum RuleResult { ContinueRules = 0, EndResponse = 1, SkipRemainingRules = 2, } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.Abstractions.cs index 55aaed4c900..c5ccb70470b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Routing.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -11,107 +10,90 @@ namespace Microsoft { string TransformOutbound(object value); } - public interface IParameterPolicy { } - public interface IRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy { bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection); } - public interface IRouteHandler { Microsoft.AspNetCore.Http.RequestDelegate GetRequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData); } - public interface IRouter { Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context); System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context); } - public interface IRoutingFeature { Microsoft.AspNetCore.Routing.RouteData RouteData { get; set; } } - public abstract class LinkGenerator { + protected LinkGenerator() => throw null; public abstract string GetPathByAddress(Microsoft.AspNetCore.Http.HttpContext httpContext, TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)); public abstract string GetPathByAddress(TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)); public abstract string GetUriByAddress(Microsoft.AspNetCore.Http.HttpContext httpContext, TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)); public abstract string GetUriByAddress(TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)); - protected LinkGenerator() => throw null; } - public class LinkOptions { - public bool? AppendTrailingSlash { get => throw null; set => throw null; } + public bool? AppendTrailingSlash { get => throw null; set { } } public LinkOptions() => throw null; - public bool? LowercaseQueryStrings { get => throw null; set => throw null; } - public bool? LowercaseUrls { get => throw null; set => throw null; } + public bool? LowercaseQueryStrings { get => throw null; set { } } + public bool? LowercaseUrls { get => throw null; set { } } } - public class RouteContext { - public Microsoft.AspNetCore.Http.RequestDelegate Handler { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public RouteContext(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.RequestDelegate Handler { get => throw null; set { } } + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } + public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; set { } } } - public class RouteData { - public struct RouteDataSnapshot - { - public void Restore() => throw null; - // Stub generator skipped constructor - public RouteDataSnapshot(Microsoft.AspNetCore.Routing.RouteData routeData, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens, System.Collections.Generic.IList routers, Microsoft.AspNetCore.Routing.RouteValueDictionary values) => throw null; - } - - - public Microsoft.AspNetCore.Routing.RouteValueDictionary DataTokens { get => throw null; } - public Microsoft.AspNetCore.Routing.RouteData.RouteDataSnapshot PushState(Microsoft.AspNetCore.Routing.IRouter router, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens) => throw null; public RouteData() => throw null; public RouteData(Microsoft.AspNetCore.Routing.RouteData other) => throw null; public RouteData(Microsoft.AspNetCore.Routing.RouteValueDictionary values) => throw null; + public Microsoft.AspNetCore.Routing.RouteValueDictionary DataTokens { get => throw null; } + public Microsoft.AspNetCore.Routing.RouteData.RouteDataSnapshot PushState(Microsoft.AspNetCore.Routing.IRouter router, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens) => throw null; + public struct RouteDataSnapshot + { + public RouteDataSnapshot(Microsoft.AspNetCore.Routing.RouteData routeData, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens, System.Collections.Generic.IList routers, Microsoft.AspNetCore.Routing.RouteValueDictionary values) => throw null; + public void Restore() => throw null; + } public System.Collections.Generic.IList Routers { get => throw null; } public Microsoft.AspNetCore.Routing.RouteValueDictionary Values { get => throw null; } } - - public enum RouteDirection : int + public enum RouteDirection { IncomingRequest = 0, UrlGeneration = 1, } - - public static class RoutingHttpContextExtensions + public static partial class RoutingHttpContextExtensions { public static Microsoft.AspNetCore.Routing.RouteData GetRouteData(this Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public static object GetRouteValue(this Microsoft.AspNetCore.Http.HttpContext httpContext, string key) => throw null; } - public class VirtualPathContext { public Microsoft.AspNetCore.Routing.RouteValueDictionary AmbientValues { get => throw null; } - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } - public string RouteName { get => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary Values { get => throw null; set => throw null; } public VirtualPathContext(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues, Microsoft.AspNetCore.Routing.RouteValueDictionary values) => throw null; public VirtualPathContext(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary ambientValues, Microsoft.AspNetCore.Routing.RouteValueDictionary values, string routeName) => throw null; + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } + public string RouteName { get => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary Values { get => throw null; set { } } } - public class VirtualPathData { - public Microsoft.AspNetCore.Routing.RouteValueDictionary DataTokens { get => throw null; } - public Microsoft.AspNetCore.Routing.IRouter Router { get => throw null; set => throw null; } - public string VirtualPath { get => throw null; set => throw null; } public VirtualPathData(Microsoft.AspNetCore.Routing.IRouter router, string virtualPath) => throw null; public VirtualPathData(Microsoft.AspNetCore.Routing.IRouter router, string virtualPath, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens) => throw null; + public Microsoft.AspNetCore.Routing.RouteValueDictionary DataTokens { get => throw null; } + public Microsoft.AspNetCore.Routing.IRouter Router { get => throw null; set { } } + public string VirtualPath { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs index 4122a512cec..800973d9788 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs @@ -1,121 +1,110 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Routing, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class EndpointRouteBuilderExtensions + public static partial class EndpointRouteBuilderExtensions { - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, Microsoft.AspNetCore.Routing.Patterns.RoutePattern pattern, System.Delegate handler) => throw null; + public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, Microsoft.AspNetCore.Routing.Patterns.RoutePattern pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; - public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapDelete(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, Microsoft.AspNetCore.Routing.Patterns.RoutePattern pattern, System.Delegate handler) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapDelete(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapDelete(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapFallback(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, System.Delegate handler) => throw null; public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapFallback(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; - public static Microsoft.AspNetCore.Routing.RouteGroupBuilder MapGroup(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, Microsoft.AspNetCore.Routing.Patterns.RoutePattern prefix) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; public static Microsoft.AspNetCore.Routing.RouteGroupBuilder MapGroup(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string prefix) => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapMethods(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Collections.Generic.IEnumerable httpMethods, System.Delegate handler) => throw null; + public static Microsoft.AspNetCore.Routing.RouteGroupBuilder MapGroup(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, Microsoft.AspNetCore.Routing.Patterns.RoutePattern prefix) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapMethods(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Collections.Generic.IEnumerable httpMethods, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPatch(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapMethods(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Collections.Generic.IEnumerable httpMethods, System.Delegate handler) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapPatch(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPatch(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPut(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapPut(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPut(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Delegate handler) => throw null; } - - public static class EndpointRoutingApplicationBuilderExtensions + public static partial class EndpointRoutingApplicationBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseEndpoints(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, System.Action configure) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRouting(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) => throw null; } - - public static class FallbackEndpointRouteBuilderExtensions + public static partial class FallbackEndpointRouteBuilderExtensions { public static string DefaultPattern; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallback(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallback(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; } - - public static class MapRouteRouteBuilderExtensions + public static partial class MapRouteRouteBuilderExtensions { public static Microsoft.AspNetCore.Routing.IRouteBuilder MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string template) => throw null; public static Microsoft.AspNetCore.Routing.IRouteBuilder MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string template, object defaults) => throw null; public static Microsoft.AspNetCore.Routing.IRouteBuilder MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string template, object defaults, object constraints) => throw null; public static Microsoft.AspNetCore.Routing.IRouteBuilder MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder routeBuilder, string name, string template, object defaults, object constraints, object dataTokens) => throw null; } - - public class RouteHandlerBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + public sealed class RouteHandlerBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { public void Add(System.Action convention) => throw null; - public void Finally(System.Action finalConvention) => throw null; public RouteHandlerBuilder(System.Collections.Generic.IEnumerable endpointConventionBuilders) => throw null; + public void Finally(System.Action finalConvention) => throw null; } - public class RouterMiddleware { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public RouterMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Routing.IRouter router) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - - public static class RoutingBuilderExtensions + public static partial class RoutingBuilderExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRouter(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, System.Action action) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRouter(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, Microsoft.AspNetCore.Routing.IRouter router) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRouter(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, System.Action action) => throw null; } - - public static class RoutingEndpointConventionBuilderExtensions + public static partial class RoutingEndpointConventionBuilderExtensions { public static TBuilder RequireHost(this TBuilder builder, params string[] hosts) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; - public static TBuilder WithDisplayName(this TBuilder builder, System.Func func) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder WithDisplayName(this TBuilder builder, string displayName) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; + public static TBuilder WithDisplayName(this TBuilder builder, System.Func func) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder WithGroupName(this TBuilder builder, string endpointGroupName) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder WithMetadata(this TBuilder builder, params object[] items) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder WithName(this TBuilder builder, string endpointName) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; } - } namespace Http { - public static class EndpointFilterExtensions + public static partial class EndpointFilterExtensions { - public static TBuilder AddEndpointFilter(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder where TFilterType : Microsoft.AspNetCore.Http.IEndpointFilter => throw null; - public static TBuilder AddEndpointFilter(this TBuilder builder, System.Func> routeHandlerFilter) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder AddEndpointFilter(this TBuilder builder, Microsoft.AspNetCore.Http.IEndpointFilter filter) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; - public static Microsoft.AspNetCore.Routing.RouteGroupBuilder AddEndpointFilter(this Microsoft.AspNetCore.Routing.RouteGroupBuilder builder) where TFilterType : Microsoft.AspNetCore.Http.IEndpointFilter => throw null; + public static TBuilder AddEndpointFilter(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder where TFilterType : Microsoft.AspNetCore.Http.IEndpointFilter => throw null; public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder AddEndpointFilter(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder) where TFilterType : Microsoft.AspNetCore.Http.IEndpointFilter => throw null; + public static Microsoft.AspNetCore.Routing.RouteGroupBuilder AddEndpointFilter(this Microsoft.AspNetCore.Routing.RouteGroupBuilder builder) where TFilterType : Microsoft.AspNetCore.Http.IEndpointFilter => throw null; + public static TBuilder AddEndpointFilter(this TBuilder builder, System.Func> routeHandlerFilter) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder AddEndpointFilterFactory(this TBuilder builder, System.Func filterFactory) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; } - - public static class OpenApiRouteHandlerBuilderExtensions + public static partial class OpenApiRouteHandlerBuilderExtensions { - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Accepts(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, System.Type requestType, bool isOptional, string contentType, params string[] additionalContentTypes) => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Accepts(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, System.Type requestType, string contentType, params string[] additionalContentTypes) => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Accepts(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, bool isOptional, string contentType, params string[] additionalContentTypes) => throw null; public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Accepts(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, string contentType, params string[] additionalContentTypes) => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder ExcludeFromDescription(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Accepts(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, bool isOptional, string contentType, params string[] additionalContentTypes) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Accepts(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, System.Type requestType, string contentType, params string[] additionalContentTypes) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Accepts(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, System.Type requestType, bool isOptional, string contentType, params string[] additionalContentTypes) => throw null; public static TBuilder ExcludeFromDescription(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Produces(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, int statusCode, System.Type responseType = default(System.Type), string contentType = default(string), params string[] additionalContentTypes) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder ExcludeFromDescription(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder) => throw null; public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Produces(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, int statusCode = default(int), string contentType = default(string), params string[] additionalContentTypes) => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Produces(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, int statusCode, System.Type responseType = default(System.Type), string contentType = default(string), params string[] additionalContentTypes) => throw null; public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder ProducesProblem(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, int statusCode, string contentType = default(string)) => throw null; public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder ProducesValidationProblem(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, int statusCode = default(int), string contentType = default(string)) => throw null; public static TBuilder WithDescription(this TBuilder builder, string description) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; public static TBuilder WithSummary(this TBuilder builder, string summary) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; - public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder WithTags(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, params string[] tags) => throw null; public static TBuilder WithTags(this TBuilder builder, params string[] tags) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; + public static Microsoft.AspNetCore.Builder.RouteHandlerBuilder WithTags(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, params string[] tags) => throw null; } - } namespace Routing { - public class CompositeEndpointDataSource : Microsoft.AspNetCore.Routing.EndpointDataSource, System.IDisposable + public sealed class CompositeEndpointDataSource : Microsoft.AspNetCore.Routing.EndpointDataSource, System.IDisposable { public CompositeEndpointDataSource(System.Collections.Generic.IEnumerable endpointDataSources) => throw null; public System.Collections.Generic.IEnumerable DataSources { get => throw null; } @@ -124,485 +113,74 @@ namespace Microsoft public override Microsoft.Extensions.Primitives.IChangeToken GetChangeToken() => throw null; public override System.Collections.Generic.IReadOnlyList GetGroupedEndpoints(Microsoft.AspNetCore.Routing.RouteGroupContext context) => throw null; } - - public class DataTokensMetadata : Microsoft.AspNetCore.Routing.IDataTokensMetadata - { - public System.Collections.Generic.IReadOnlyDictionary DataTokens { get => throw null; } - public DataTokensMetadata(System.Collections.Generic.IReadOnlyDictionary dataTokens) => throw null; - } - - public class DefaultEndpointDataSource : Microsoft.AspNetCore.Routing.EndpointDataSource - { - public DefaultEndpointDataSource(System.Collections.Generic.IEnumerable endpoints) => throw null; - public DefaultEndpointDataSource(params Microsoft.AspNetCore.Http.Endpoint[] endpoints) => throw null; - public override System.Collections.Generic.IReadOnlyList Endpoints { get => throw null; } - public override Microsoft.Extensions.Primitives.IChangeToken GetChangeToken() => throw null; - } - - public class DefaultInlineConstraintResolver : Microsoft.AspNetCore.Routing.IInlineConstraintResolver - { - public DefaultInlineConstraintResolver(Microsoft.Extensions.Options.IOptions routeOptions, System.IServiceProvider serviceProvider) => throw null; - public virtual Microsoft.AspNetCore.Routing.IRouteConstraint ResolveConstraint(string inlineConstraint) => throw null; - } - - public abstract class EndpointDataSource - { - protected EndpointDataSource() => throw null; - public abstract System.Collections.Generic.IReadOnlyList Endpoints { get; } - public abstract Microsoft.Extensions.Primitives.IChangeToken GetChangeToken(); - public virtual System.Collections.Generic.IReadOnlyList GetGroupedEndpoints(Microsoft.AspNetCore.Routing.RouteGroupContext context) => throw null; - } - - public class EndpointGroupNameAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IEndpointGroupNameMetadata - { - public string EndpointGroupName { get => throw null; } - public EndpointGroupNameAttribute(string endpointGroupName) => throw null; - } - - public class EndpointNameAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IEndpointNameMetadata - { - public string EndpointName { get => throw null; } - public EndpointNameAttribute(string endpointName) => throw null; - } - - public class EndpointNameMetadata : Microsoft.AspNetCore.Routing.IEndpointNameMetadata - { - public string EndpointName { get => throw null; } - public EndpointNameMetadata(string endpointName) => throw null; - } - - public class ExcludeFromDescriptionAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IExcludeFromDescriptionMetadata - { - public bool ExcludeFromDescription { get => throw null; } - public ExcludeFromDescriptionAttribute() => throw null; - } - - public class HostAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IHostMetadata - { - public HostAttribute(params string[] hosts) => throw null; - public HostAttribute(string host) => throw null; - public System.Collections.Generic.IReadOnlyList Hosts { get => throw null; } - } - - public class HttpMethodMetadata : Microsoft.AspNetCore.Routing.IHttpMethodMetadata - { - public bool AcceptCorsPreflight { get => throw null; set => throw null; } - public HttpMethodMetadata(System.Collections.Generic.IEnumerable httpMethods) => throw null; - public HttpMethodMetadata(System.Collections.Generic.IEnumerable httpMethods, bool acceptCorsPreflight) => throw null; - public System.Collections.Generic.IReadOnlyList HttpMethods { get => throw null; } - } - - public interface IDataTokensMetadata - { - System.Collections.Generic.IReadOnlyDictionary DataTokens { get; } - } - - public interface IDynamicEndpointMetadata - { - bool IsDynamic { get; } - } - - public interface IEndpointAddressScheme - { - System.Collections.Generic.IEnumerable FindEndpoints(TAddress address); - } - - public interface IEndpointGroupNameMetadata - { - string EndpointGroupName { get; } - } - - public interface IEndpointNameMetadata - { - string EndpointName { get; } - } - - public interface IEndpointRouteBuilder - { - Microsoft.AspNetCore.Builder.IApplicationBuilder CreateApplicationBuilder(); - System.Collections.Generic.ICollection DataSources { get; } - System.IServiceProvider ServiceProvider { get; } - } - - public interface IExcludeFromDescriptionMetadata - { - bool ExcludeFromDescription { get; } - } - - public interface IHostMetadata - { - System.Collections.Generic.IReadOnlyList Hosts { get; } - } - - public interface IHttpMethodMetadata - { - bool AcceptCorsPreflight { get => throw null; set => throw null; } - System.Collections.Generic.IReadOnlyList HttpMethods { get; } - } - - public interface IInlineConstraintResolver - { - Microsoft.AspNetCore.Routing.IRouteConstraint ResolveConstraint(string inlineConstraint); - } - - public interface INamedRouter : Microsoft.AspNetCore.Routing.IRouter - { - string Name { get; } - } - - public interface IRouteBuilder - { - Microsoft.AspNetCore.Builder.IApplicationBuilder ApplicationBuilder { get; } - Microsoft.AspNetCore.Routing.IRouter Build(); - Microsoft.AspNetCore.Routing.IRouter DefaultHandler { get; set; } - System.Collections.Generic.IList Routes { get; } - System.IServiceProvider ServiceProvider { get; } - } - - public interface IRouteCollection : Microsoft.AspNetCore.Routing.IRouter - { - void Add(Microsoft.AspNetCore.Routing.IRouter router); - } - - public interface IRouteNameMetadata - { - string RouteName { get; } - } - - public interface ISuppressLinkGenerationMetadata - { - bool SuppressLinkGeneration { get; } - } - - public interface ISuppressMatchingMetadata - { - bool SuppressMatching { get; } - } - - public static class InlineRouteParameterParser - { - public static Microsoft.AspNetCore.Routing.Template.TemplatePart ParseRouteParameter(string routeParameter) => throw null; - } - - public static class LinkGeneratorEndpointNameAddressExtensions - { - public static string GetPathByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string endpointName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetPathByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string endpointName, object values, Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetPathByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string endpointName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetPathByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string endpointName, object values, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetUriByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string endpointName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetUriByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string endpointName, object values, string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetUriByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string endpointName, Microsoft.AspNetCore.Routing.RouteValueDictionary values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetUriByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string endpointName, object values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - } - - public static class LinkGeneratorRouteValuesAddressExtensions - { - public static string GetPathByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string routeName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetPathByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string routeName, object values, Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetPathByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string routeName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetPathByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string routeName, object values, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetUriByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string routeName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetUriByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string routeName, object values, string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetUriByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string routeName, Microsoft.AspNetCore.Routing.RouteValueDictionary values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - public static string GetUriByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string routeName, object values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; - } - - public abstract class LinkParser - { - protected LinkParser() => throw null; - public abstract Microsoft.AspNetCore.Routing.RouteValueDictionary ParsePathByAddress(TAddress address, Microsoft.AspNetCore.Http.PathString path); - } - - public static class LinkParserEndpointNameAddressExtensions - { - public static Microsoft.AspNetCore.Routing.RouteValueDictionary ParsePathByEndpointName(this Microsoft.AspNetCore.Routing.LinkParser parser, string endpointName, Microsoft.AspNetCore.Http.PathString path) => throw null; - } - - public abstract class MatcherPolicy - { - protected static bool ContainsDynamicEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; - protected MatcherPolicy() => throw null; - public abstract int Order { get; } - } - - public abstract class ParameterPolicyFactory - { - public abstract Microsoft.AspNetCore.Routing.IParameterPolicy Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart parameter, Microsoft.AspNetCore.Routing.IParameterPolicy parameterPolicy); - public Microsoft.AspNetCore.Routing.IParameterPolicy Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart parameter, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference reference) => throw null; - public abstract Microsoft.AspNetCore.Routing.IParameterPolicy Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart parameter, string inlineText); - protected ParameterPolicyFactory() => throw null; - } - - public static class RequestDelegateRouteBuilderExtensions - { - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapDelete(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Func handler) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapDelete(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapGet(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Func handler) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapGet(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewareDelete(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Action action) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewareGet(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Action action) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewarePost(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Action action) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewarePut(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Action action) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewareRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Action action) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewareVerb(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string verb, string template, System.Action action) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapPost(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Func handler) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapPost(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapPut(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Func handler) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapPut(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapVerb(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string verb, string template, System.Func handler) => throw null; - public static Microsoft.AspNetCore.Routing.IRouteBuilder MapVerb(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string verb, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; - } - - public class Route : Microsoft.AspNetCore.Routing.RouteBase - { - protected override System.Threading.Tasks.Task OnRouteMatched(Microsoft.AspNetCore.Routing.RouteContext context) => throw null; - protected override Microsoft.AspNetCore.Routing.VirtualPathData OnVirtualPathGenerated(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; - public Route(Microsoft.AspNetCore.Routing.IRouter target, string routeTemplate, Microsoft.AspNetCore.Routing.IInlineConstraintResolver inlineConstraintResolver) : base(default(string), default(string), default(Microsoft.AspNetCore.Routing.IInlineConstraintResolver), default(Microsoft.AspNetCore.Routing.RouteValueDictionary), default(System.Collections.Generic.IDictionary), default(Microsoft.AspNetCore.Routing.RouteValueDictionary)) => throw null; - public Route(Microsoft.AspNetCore.Routing.IRouter target, string routeTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, System.Collections.Generic.IDictionary constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens, Microsoft.AspNetCore.Routing.IInlineConstraintResolver inlineConstraintResolver) : base(default(string), default(string), default(Microsoft.AspNetCore.Routing.IInlineConstraintResolver), default(Microsoft.AspNetCore.Routing.RouteValueDictionary), default(System.Collections.Generic.IDictionary), default(Microsoft.AspNetCore.Routing.RouteValueDictionary)) => throw null; - public Route(Microsoft.AspNetCore.Routing.IRouter target, string routeName, string routeTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, System.Collections.Generic.IDictionary constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens, Microsoft.AspNetCore.Routing.IInlineConstraintResolver inlineConstraintResolver) : base(default(string), default(string), default(Microsoft.AspNetCore.Routing.IInlineConstraintResolver), default(Microsoft.AspNetCore.Routing.RouteValueDictionary), default(System.Collections.Generic.IDictionary), default(Microsoft.AspNetCore.Routing.RouteValueDictionary)) => throw null; - public string RouteTemplate { get => throw null; } - } - - public abstract class RouteBase : Microsoft.AspNetCore.Routing.INamedRouter, Microsoft.AspNetCore.Routing.IRouter - { - protected virtual Microsoft.AspNetCore.Routing.IInlineConstraintResolver ConstraintResolver { get => throw null; set => throw null; } - public virtual System.Collections.Generic.IDictionary Constraints { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Routing.RouteValueDictionary DataTokens { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Routing.RouteValueDictionary Defaults { get => throw null; set => throw null; } - protected static System.Collections.Generic.IDictionary GetConstraints(Microsoft.AspNetCore.Routing.IInlineConstraintResolver inlineConstraintResolver, Microsoft.AspNetCore.Routing.Template.RouteTemplate parsedTemplate, System.Collections.Generic.IDictionary constraints) => throw null; - protected static Microsoft.AspNetCore.Routing.RouteValueDictionary GetDefaults(Microsoft.AspNetCore.Routing.Template.RouteTemplate parsedTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults) => throw null; - public virtual Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; - public virtual string Name { get => throw null; set => throw null; } - protected abstract System.Threading.Tasks.Task OnRouteMatched(Microsoft.AspNetCore.Routing.RouteContext context); - protected abstract Microsoft.AspNetCore.Routing.VirtualPathData OnVirtualPathGenerated(Microsoft.AspNetCore.Routing.VirtualPathContext context); - public virtual Microsoft.AspNetCore.Routing.Template.RouteTemplate ParsedTemplate { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) => throw null; - public RouteBase(string template, string name, Microsoft.AspNetCore.Routing.IInlineConstraintResolver constraintResolver, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, System.Collections.Generic.IDictionary constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens) => throw null; - public override string ToString() => throw null; - } - - public class RouteBuilder : Microsoft.AspNetCore.Routing.IRouteBuilder - { - public Microsoft.AspNetCore.Builder.IApplicationBuilder ApplicationBuilder { get => throw null; } - public Microsoft.AspNetCore.Routing.IRouter Build() => throw null; - public Microsoft.AspNetCore.Routing.IRouter DefaultHandler { get => throw null; set => throw null; } - public RouteBuilder(Microsoft.AspNetCore.Builder.IApplicationBuilder applicationBuilder) => throw null; - public RouteBuilder(Microsoft.AspNetCore.Builder.IApplicationBuilder applicationBuilder, Microsoft.AspNetCore.Routing.IRouter defaultHandler) => throw null; - public System.Collections.Generic.IList Routes { get => throw null; } - public System.IServiceProvider ServiceProvider { get => throw null; } - } - - public class RouteCollection : Microsoft.AspNetCore.Routing.IRouteCollection, Microsoft.AspNetCore.Routing.IRouter - { - public void Add(Microsoft.AspNetCore.Routing.IRouter router) => throw null; - public int Count { get => throw null; } - public virtual Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; - public Microsoft.AspNetCore.Routing.IRouter this[int index] { get => throw null; } - public virtual System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) => throw null; - public RouteCollection() => throw null; - } - - public class RouteConstraintBuilder - { - public void AddConstraint(string key, object value) => throw null; - public void AddResolvedConstraint(string key, string constraintText) => throw null; - public System.Collections.Generic.IDictionary Build() => throw null; - public RouteConstraintBuilder(Microsoft.AspNetCore.Routing.IInlineConstraintResolver inlineConstraintResolver, string displayName) => throw null; - public void SetOptional(string key) => throw null; - } - - public static class RouteConstraintMatcher - { - public static bool Match(System.Collections.Generic.IDictionary constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary routeValues, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, Microsoft.AspNetCore.Routing.RouteDirection routeDirection, Microsoft.Extensions.Logging.ILogger logger) => throw null; - } - - public class RouteCreationException : System.Exception - { - public RouteCreationException(string message) => throw null; - public RouteCreationException(string message, System.Exception innerException) => throw null; - } - - public class RouteEndpoint : Microsoft.AspNetCore.Http.Endpoint - { - public int Order { get => throw null; } - public RouteEndpoint(Microsoft.AspNetCore.Http.RequestDelegate requestDelegate, Microsoft.AspNetCore.Routing.Patterns.RoutePattern routePattern, int order, Microsoft.AspNetCore.Http.EndpointMetadataCollection metadata, string displayName) : base(default(Microsoft.AspNetCore.Http.RequestDelegate), default(Microsoft.AspNetCore.Http.EndpointMetadataCollection), default(string)) => throw null; - public Microsoft.AspNetCore.Routing.Patterns.RoutePattern RoutePattern { get => throw null; } - } - - public class RouteEndpointBuilder : Microsoft.AspNetCore.Builder.EndpointBuilder - { - public override Microsoft.AspNetCore.Http.Endpoint Build() => throw null; - public int Order { get => throw null; set => throw null; } - public RouteEndpointBuilder(Microsoft.AspNetCore.Http.RequestDelegate requestDelegate, Microsoft.AspNetCore.Routing.Patterns.RoutePattern routePattern, int order) => throw null; - public Microsoft.AspNetCore.Routing.Patterns.RoutePattern RoutePattern { get => throw null; set => throw null; } - } - - public class RouteGroupBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder, Microsoft.AspNetCore.Routing.IEndpointRouteBuilder - { - void Microsoft.AspNetCore.Builder.IEndpointConventionBuilder.Add(System.Action convention) => throw null; - Microsoft.AspNetCore.Builder.IApplicationBuilder Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.CreateApplicationBuilder() => throw null; - System.Collections.Generic.ICollection Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.DataSources { get => throw null; } - void Microsoft.AspNetCore.Builder.IEndpointConventionBuilder.Finally(System.Action finalConvention) => throw null; - System.IServiceProvider Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.ServiceProvider { get => throw null; } - } - - public class RouteGroupContext - { - public System.IServiceProvider ApplicationServices { get => throw null; set => throw null; } - public System.Collections.Generic.IReadOnlyList> Conventions { get => throw null; set => throw null; } - public System.Collections.Generic.IReadOnlyList> FinallyConventions { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.Patterns.RoutePattern Prefix { get => throw null; set => throw null; } - public RouteGroupContext() => throw null; - } - - public class RouteHandler : Microsoft.AspNetCore.Routing.IRouteHandler, Microsoft.AspNetCore.Routing.IRouter - { - public Microsoft.AspNetCore.Http.RequestDelegate GetRequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) => throw null; - public Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; - public System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) => throw null; - public RouteHandler(Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; - } - - public class RouteHandlerOptions - { - public RouteHandlerOptions() => throw null; - public bool ThrowOnBadRequest { get => throw null; set => throw null; } - } - - public class RouteNameMetadata : Microsoft.AspNetCore.Routing.IRouteNameMetadata - { - public string RouteName { get => throw null; } - public RouteNameMetadata(string routeName) => throw null; - } - - public class RouteOptions - { - public bool AppendTrailingSlash { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary ConstraintMap { get => throw null; set => throw null; } - public bool LowercaseQueryStrings { get => throw null; set => throw null; } - public bool LowercaseUrls { get => throw null; set => throw null; } - public RouteOptions() => throw null; - public void SetParameterPolicy(string token, System.Type type) => throw null; - public void SetParameterPolicy(string token) where T : Microsoft.AspNetCore.Routing.IParameterPolicy => throw null; - public bool SuppressCheckForUnhandledSecurityMetadata { get => throw null; set => throw null; } - } - - public class RouteValueEqualityComparer : System.Collections.Generic.IEqualityComparer - { - public static Microsoft.AspNetCore.Routing.RouteValueEqualityComparer Default; - public bool Equals(object x, object y) => throw null; - public int GetHashCode(object obj) => throw null; - public RouteValueEqualityComparer() => throw null; - } - - public class RouteValuesAddress - { - public Microsoft.AspNetCore.Routing.RouteValueDictionary AmbientValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary ExplicitValues { get => throw null; set => throw null; } - public string RouteName { get => throw null; set => throw null; } - public RouteValuesAddress() => throw null; - public override string ToString() => throw null; - } - - public class RoutingFeature : Microsoft.AspNetCore.Routing.IRoutingFeature - { - public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; set => throw null; } - public RoutingFeature() => throw null; - } - - public class SuppressLinkGenerationMetadata : Microsoft.AspNetCore.Routing.ISuppressLinkGenerationMetadata - { - public bool SuppressLinkGeneration { get => throw null; } - public SuppressLinkGenerationMetadata() => throw null; - } - - public class SuppressMatchingMetadata : Microsoft.AspNetCore.Routing.ISuppressMatchingMetadata - { - public bool SuppressMatching { get => throw null; } - public SuppressMatchingMetadata() => throw null; - } - namespace Constraints { public class AlphaRouteConstraint : Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint { public AlphaRouteConstraint() : base(default(System.Text.RegularExpressions.Regex)) => throw null; } - - public class BoolRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class BoolRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public BoolRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class CompositeRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class CompositeRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { - public CompositeRouteConstraint(System.Collections.Generic.IEnumerable constraints) => throw null; public System.Collections.Generic.IEnumerable Constraints { get => throw null; } + public CompositeRouteConstraint(System.Collections.Generic.IEnumerable constraints) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class DateTimeRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class DateTimeRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public DateTimeRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class DecimalRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class DecimalRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public DecimalRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class DoubleRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class DoubleRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public DoubleRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class FileNameRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class FileNameRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public FileNameRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class FloatRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class FloatRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public FloatRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class GuidRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class GuidRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public GuidRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class HttpMethodRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint + public class HttpMethodRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy { public System.Collections.Generic.IList AllowedMethods { get => throw null; } public HttpMethodRouteConstraint(params string[] allowedMethods) => throw null; public virtual bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; } - - public class IntRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class IntRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public IntRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class LengthRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class LengthRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public LengthRouteConstraint(int length) => throw null; public LengthRouteConstraint(int minLength, int maxLength) => throw null; @@ -611,96 +189,191 @@ namespace Microsoft public int MaxLength { get => throw null; } public int MinLength { get => throw null; } } - - public class LongRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class LongRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public LongRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class MaxLengthRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class MaxLengthRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { + public MaxLengthRouteConstraint(int maxLength) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; public int MaxLength { get => throw null; } - public MaxLengthRouteConstraint(int maxLength) => throw null; } - - public class MaxRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class MaxRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { + public MaxRouteConstraint(long max) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; - public System.Int64 Max { get => throw null; } - public MaxRouteConstraint(System.Int64 max) => throw null; + public long Max { get => throw null; } } - - public class MinLengthRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class MinLengthRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { + public MinLengthRouteConstraint(int minLength) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; public int MinLength { get => throw null; } - public MinLengthRouteConstraint(int minLength) => throw null; } - - public class MinRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class MinRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { + public MinRouteConstraint(long min) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; - public System.Int64 Min { get => throw null; } - public MinRouteConstraint(System.Int64 min) => throw null; + public long Min { get => throw null; } } - - public class NonFileNameRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class NonFileNameRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { - public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; - bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; public NonFileNameRouteConstraint() => throw null; + public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; + bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - - public class OptionalRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint + public class OptionalRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy { + public OptionalRouteConstraint(Microsoft.AspNetCore.Routing.IRouteConstraint innerConstraint) => throw null; public Microsoft.AspNetCore.Routing.IRouteConstraint InnerConstraint { get => throw null; } public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; - public OptionalRouteConstraint(Microsoft.AspNetCore.Routing.IRouteConstraint innerConstraint) => throw null; } - - public class RangeRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class RangeRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { + public RangeRouteConstraint(long min, long max) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; - public System.Int64 Max { get => throw null; } - public System.Int64 Min { get => throw null; } - public RangeRouteConstraint(System.Int64 min, System.Int64 max) => throw null; + public long Max { get => throw null; } + public long Min { get => throw null; } } - public class RegexInlineRouteConstraint : Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint { public RegexInlineRouteConstraint(string regexPattern) : base(default(System.Text.RegularExpressions.Regex)) => throw null; } - - public class RegexRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class RegexRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public System.Text.RegularExpressions.Regex Constraint { get => throw null; } - public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; - bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; public RegexRouteConstraint(System.Text.RegularExpressions.Regex regex) => throw null; public RegexRouteConstraint(string regexPattern) => throw null; - } - - public class RequiredRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint - { - public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; - public RequiredRouteConstraint() => throw null; - } - - public class StringRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy - { public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; - public StringRouteConstraint(string value) => throw null; } - + public class RequiredRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + { + public RequiredRouteConstraint() => throw null; + public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; + } + public class StringRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + { + public StringRouteConstraint(string value) => throw null; + public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; + bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; + } + } + public sealed class DataTokensMetadata : Microsoft.AspNetCore.Routing.IDataTokensMetadata + { + public DataTokensMetadata(System.Collections.Generic.IReadOnlyDictionary dataTokens) => throw null; + public System.Collections.Generic.IReadOnlyDictionary DataTokens { get => throw null; } + } + public sealed class DefaultEndpointDataSource : Microsoft.AspNetCore.Routing.EndpointDataSource + { + public DefaultEndpointDataSource(params Microsoft.AspNetCore.Http.Endpoint[] endpoints) => throw null; + public DefaultEndpointDataSource(System.Collections.Generic.IEnumerable endpoints) => throw null; + public override System.Collections.Generic.IReadOnlyList Endpoints { get => throw null; } + public override Microsoft.Extensions.Primitives.IChangeToken GetChangeToken() => throw null; + } + public class DefaultInlineConstraintResolver : Microsoft.AspNetCore.Routing.IInlineConstraintResolver + { + public DefaultInlineConstraintResolver(Microsoft.Extensions.Options.IOptions routeOptions, System.IServiceProvider serviceProvider) => throw null; + public virtual Microsoft.AspNetCore.Routing.IRouteConstraint ResolveConstraint(string inlineConstraint) => throw null; + } + public abstract class EndpointDataSource + { + protected EndpointDataSource() => throw null; + public abstract System.Collections.Generic.IReadOnlyList Endpoints { get; } + public abstract Microsoft.Extensions.Primitives.IChangeToken GetChangeToken(); + public virtual System.Collections.Generic.IReadOnlyList GetGroupedEndpoints(Microsoft.AspNetCore.Routing.RouteGroupContext context) => throw null; + } + public sealed class EndpointGroupNameAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IEndpointGroupNameMetadata + { + public EndpointGroupNameAttribute(string endpointGroupName) => throw null; + public string EndpointGroupName { get => throw null; } + } + public sealed class EndpointNameAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IEndpointNameMetadata + { + public EndpointNameAttribute(string endpointName) => throw null; + public string EndpointName { get => throw null; } + } + public class EndpointNameMetadata : Microsoft.AspNetCore.Routing.IEndpointNameMetadata + { + public EndpointNameMetadata(string endpointName) => throw null; + public string EndpointName { get => throw null; } + } + public sealed class ExcludeFromDescriptionAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IExcludeFromDescriptionMetadata + { + public ExcludeFromDescriptionAttribute() => throw null; + public bool ExcludeFromDescription { get => throw null; } + } + public sealed class HostAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IHostMetadata + { + public HostAttribute(string host) => throw null; + public HostAttribute(params string[] hosts) => throw null; + public System.Collections.Generic.IReadOnlyList Hosts { get => throw null; } + } + public sealed class HttpMethodMetadata : Microsoft.AspNetCore.Routing.IHttpMethodMetadata + { + public bool AcceptCorsPreflight { get => throw null; set { } } + public HttpMethodMetadata(System.Collections.Generic.IEnumerable httpMethods) => throw null; + public HttpMethodMetadata(System.Collections.Generic.IEnumerable httpMethods, bool acceptCorsPreflight) => throw null; + public System.Collections.Generic.IReadOnlyList HttpMethods { get => throw null; } + } + public interface IDataTokensMetadata + { + System.Collections.Generic.IReadOnlyDictionary DataTokens { get; } + } + public interface IDynamicEndpointMetadata + { + bool IsDynamic { get; } + } + public interface IEndpointAddressScheme + { + System.Collections.Generic.IEnumerable FindEndpoints(TAddress address); + } + public interface IEndpointGroupNameMetadata + { + string EndpointGroupName { get; } + } + public interface IEndpointNameMetadata + { + string EndpointName { get; } + } + public interface IEndpointRouteBuilder + { + Microsoft.AspNetCore.Builder.IApplicationBuilder CreateApplicationBuilder(); + System.Collections.Generic.ICollection DataSources { get; } + System.IServiceProvider ServiceProvider { get; } + } + public interface IExcludeFromDescriptionMetadata + { + bool ExcludeFromDescription { get; } + } + public interface IHostMetadata + { + System.Collections.Generic.IReadOnlyList Hosts { get; } + } + public interface IHttpMethodMetadata + { + virtual bool AcceptCorsPreflight { get => throw null; set { } } + System.Collections.Generic.IReadOnlyList HttpMethods { get; } + } + public interface IInlineConstraintResolver + { + Microsoft.AspNetCore.Routing.IRouteConstraint ResolveConstraint(string inlineConstraint); + } + public interface INamedRouter : Microsoft.AspNetCore.Routing.IRouter + { + string Name { get; } + } + public static class InlineRouteParameterParser + { + public static Microsoft.AspNetCore.Routing.Template.TemplatePart ParseRouteParameter(string routeParameter) => throw null; } namespace Internal { @@ -709,127 +382,177 @@ namespace Microsoft public DfaGraphWriter(System.IServiceProvider services) => throw null; public void Write(Microsoft.AspNetCore.Routing.EndpointDataSource dataSource, System.IO.TextWriter writer) => throw null; } - + } + public interface IRouteBuilder + { + Microsoft.AspNetCore.Builder.IApplicationBuilder ApplicationBuilder { get; } + Microsoft.AspNetCore.Routing.IRouter Build(); + Microsoft.AspNetCore.Routing.IRouter DefaultHandler { get; set; } + System.Collections.Generic.IList Routes { get; } + System.IServiceProvider ServiceProvider { get; } + } + public interface IRouteCollection : Microsoft.AspNetCore.Routing.IRouter + { + void Add(Microsoft.AspNetCore.Routing.IRouter router); + } + public interface IRouteNameMetadata + { + string RouteName { get; } + } + public interface ISuppressLinkGenerationMetadata + { + bool SuppressLinkGeneration { get; } + } + public interface ISuppressMatchingMetadata + { + bool SuppressMatching { get; } + } + public static partial class LinkGeneratorEndpointNameAddressExtensions + { + public static string GetPathByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string endpointName, object values, Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetPathByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string endpointName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetPathByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string endpointName, object values, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetPathByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string endpointName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetUriByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string endpointName, object values, string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetUriByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string endpointName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetUriByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string endpointName, object values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetUriByName(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string endpointName, Microsoft.AspNetCore.Routing.RouteValueDictionary values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + } + public static partial class LinkGeneratorRouteValuesAddressExtensions + { + public static string GetPathByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string routeName, object values, Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetPathByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string routeName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetPathByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string routeName, object values, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetPathByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string routeName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetUriByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string routeName, object values, string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetUriByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, Microsoft.AspNetCore.Http.HttpContext httpContext, string routeName, Microsoft.AspNetCore.Routing.RouteValueDictionary values = default(Microsoft.AspNetCore.Routing.RouteValueDictionary), string scheme = default(string), Microsoft.AspNetCore.Http.HostString? host = default(Microsoft.AspNetCore.Http.HostString?), Microsoft.AspNetCore.Http.PathString? pathBase = default(Microsoft.AspNetCore.Http.PathString?), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetUriByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string routeName, object values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + public static string GetUriByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator generator, string routeName, Microsoft.AspNetCore.Routing.RouteValueDictionary values, string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions options = default(Microsoft.AspNetCore.Routing.LinkOptions)) => throw null; + } + public abstract class LinkParser + { + protected LinkParser() => throw null; + public abstract Microsoft.AspNetCore.Routing.RouteValueDictionary ParsePathByAddress(TAddress address, Microsoft.AspNetCore.Http.PathString path); + } + public static partial class LinkParserEndpointNameAddressExtensions + { + public static Microsoft.AspNetCore.Routing.RouteValueDictionary ParsePathByEndpointName(this Microsoft.AspNetCore.Routing.LinkParser parser, string endpointName, Microsoft.AspNetCore.Http.PathString path) => throw null; + } + public abstract class MatcherPolicy + { + protected static bool ContainsDynamicEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; + protected MatcherPolicy() => throw null; + public abstract int Order { get; } } namespace Matching { - public class CandidateSet + public sealed class CandidateSet { - public CandidateSet(Microsoft.AspNetCore.Http.Endpoint[] endpoints, Microsoft.AspNetCore.Routing.RouteValueDictionary[] values, int[] scores) => throw null; public int Count { get => throw null; } + public CandidateSet(Microsoft.AspNetCore.Http.Endpoint[] endpoints, Microsoft.AspNetCore.Routing.RouteValueDictionary[] values, int[] scores) => throw null; public void ExpandEndpoint(int index, System.Collections.Generic.IReadOnlyList endpoints, System.Collections.Generic.IComparer comparer) => throw null; public bool IsValidCandidate(int index) => throw null; - public Microsoft.AspNetCore.Routing.Matching.CandidateState this[int index] { get => throw null; } public void ReplaceEndpoint(int index, Microsoft.AspNetCore.Http.Endpoint endpoint, Microsoft.AspNetCore.Routing.RouteValueDictionary values) => throw null; public void SetValidity(int index, bool value) => throw null; + public Microsoft.AspNetCore.Routing.Matching.CandidateState this[int index] { get => throw null; } } - public struct CandidateState { - // Stub generator skipped constructor public Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; } public int Score { get => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary Values { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary Values { get => throw null; } } - - public class EndpointMetadataComparer : System.Collections.Generic.IComparer + public sealed class EndpointMetadataComparer : System.Collections.Generic.IComparer { int System.Collections.Generic.IComparer.Compare(Microsoft.AspNetCore.Http.Endpoint x, Microsoft.AspNetCore.Http.Endpoint y) => throw null; } - public abstract class EndpointMetadataComparer : System.Collections.Generic.IComparer where TMetadata : class { public int Compare(Microsoft.AspNetCore.Http.Endpoint x, Microsoft.AspNetCore.Http.Endpoint y) => throw null; protected virtual int CompareMetadata(TMetadata x, TMetadata y) => throw null; - public static Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer Default; protected EndpointMetadataComparer() => throw null; + public static Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer Default; protected virtual TMetadata GetMetadata(Microsoft.AspNetCore.Http.Endpoint endpoint) => throw null; } - public abstract class EndpointSelector { protected EndpointSelector() => throw null; public abstract System.Threading.Tasks.Task SelectAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidates); } - - public class HostMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy + public sealed class HostMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy { - bool Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; bool Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; + bool Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; public System.Threading.Tasks.Task ApplyAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidates) => throw null; public Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable BuildJumpTable(int exitDestination, System.Collections.Generic.IReadOnlyList edges) => throw null; public System.Collections.Generic.IComparer Comparer { get => throw null; } - public System.Collections.Generic.IReadOnlyList GetEdges(System.Collections.Generic.IReadOnlyList endpoints) => throw null; public HostMatcherPolicy() => throw null; + public System.Collections.Generic.IReadOnlyList GetEdges(System.Collections.Generic.IReadOnlyList endpoints) => throw null; public override int Order { get => throw null; } } - - public class HttpMethodMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy + public sealed class HttpMethodMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy { - bool Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; bool Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; + bool Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; public System.Threading.Tasks.Task ApplyAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidates) => throw null; public Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable BuildJumpTable(int exitDestination, System.Collections.Generic.IReadOnlyList edges) => throw null; public System.Collections.Generic.IComparer Comparer { get => throw null; } - public System.Collections.Generic.IReadOnlyList GetEdges(System.Collections.Generic.IReadOnlyList endpoints) => throw null; public HttpMethodMatcherPolicy() => throw null; + public System.Collections.Generic.IReadOnlyList GetEdges(System.Collections.Generic.IReadOnlyList endpoints) => throw null; public override int Order { get => throw null; } } - public interface IEndpointComparerPolicy { System.Collections.Generic.IComparer Comparer { get; } } - public interface IEndpointSelectorPolicy { bool AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints); System.Threading.Tasks.Task ApplyAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidates); } - public interface INodeBuilderPolicy { bool AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints); Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable BuildJumpTable(int exitDestination, System.Collections.Generic.IReadOnlyList edges); System.Collections.Generic.IReadOnlyList GetEdges(System.Collections.Generic.IReadOnlyList endpoints); } - public interface IParameterLiteralNodeMatchingPolicy : Microsoft.AspNetCore.Routing.IParameterPolicy { bool MatchesLiteral(string parameterName, string literal); } - public abstract class PolicyJumpTable { - public abstract int GetDestination(Microsoft.AspNetCore.Http.HttpContext httpContext); protected PolicyJumpTable() => throw null; + public abstract int GetDestination(Microsoft.AspNetCore.Http.HttpContext httpContext); } - public struct PolicyJumpTableEdge { - public int Destination { get => throw null; } - // Stub generator skipped constructor public PolicyJumpTableEdge(object state, int destination) => throw null; + public int Destination { get => throw null; } public object State { get => throw null; } } - public struct PolicyNodeEdge { - public System.Collections.Generic.IReadOnlyList Endpoints { get => throw null; } - // Stub generator skipped constructor public PolicyNodeEdge(object state, System.Collections.Generic.IReadOnlyList endpoints) => throw null; + public System.Collections.Generic.IReadOnlyList Endpoints { get => throw null; } public object State { get => throw null; } } - + } + public abstract class ParameterPolicyFactory + { + public abstract Microsoft.AspNetCore.Routing.IParameterPolicy Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart parameter, string inlineText); + public abstract Microsoft.AspNetCore.Routing.IParameterPolicy Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart parameter, Microsoft.AspNetCore.Routing.IParameterPolicy parameterPolicy); + public Microsoft.AspNetCore.Routing.IParameterPolicy Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart parameter, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference reference) => throw null; + protected ParameterPolicyFactory() => throw null; } namespace Patterns { - public class RoutePattern + public sealed class RoutePattern { public System.Collections.Generic.IReadOnlyDictionary Defaults { get => throw null; } public Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart GetParameter(string name) => throw null; - public System.Decimal InboundPrecedence { get => throw null; } - public System.Decimal OutboundPrecedence { get => throw null; } + public decimal InboundPrecedence { get => throw null; } + public decimal OutboundPrecedence { get => throw null; } public System.Collections.Generic.IReadOnlyDictionary> ParameterPolicies { get => throw null; } public System.Collections.Generic.IReadOnlyList Parameters { get => throw null; } public System.Collections.Generic.IReadOnlyList PathSegments { get => throw null; } @@ -837,19 +560,17 @@ namespace Microsoft public static object RequiredValueAny; public System.Collections.Generic.IReadOnlyDictionary RequiredValues { get => throw null; } } - - public class RoutePatternException : System.Exception + public sealed class RoutePatternException : System.Exception { + public RoutePatternException(string pattern, string message) => throw null; public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public string Pattern { get => throw null; } - public RoutePatternException(string pattern, string message) => throw null; } - public static class RoutePatternFactory { public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Combine(Microsoft.AspNetCore.Routing.Patterns.RoutePattern left, Microsoft.AspNetCore.Routing.Patterns.RoutePattern right) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference Constraint(Microsoft.AspNetCore.Routing.IRouteConstraint constraint) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference Constraint(object constraint) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference Constraint(Microsoft.AspNetCore.Routing.IRouteConstraint constraint) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference Constraint(string constraint) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternLiteralPart LiteralPart(string content) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart ParameterPart(string parameterName) => throw null; @@ -860,41 +581,37 @@ namespace Microsoft public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference ParameterPolicy(Microsoft.AspNetCore.Routing.IParameterPolicy parameterPolicy) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference ParameterPolicy(string parameterPolicy) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Parse(string pattern) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Parse(string pattern, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Parse(string pattern, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies, Microsoft.AspNetCore.Routing.RouteValueDictionary requiredValues) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Parse(string pattern, object defaults, object parameterPolicies) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Parse(string pattern, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Parse(string pattern, object defaults, object parameterPolicies, object requiredValues) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Parse(string pattern, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies, Microsoft.AspNetCore.Routing.RouteValueDictionary requiredValues) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(System.Collections.Generic.IEnumerable segments) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies, System.Collections.Generic.IEnumerable segments) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(object defaults, object parameterPolicies, System.Collections.Generic.IEnumerable segments) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(object defaults, object parameterPolicies, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(string rawText, System.Collections.Generic.IEnumerable segments) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(string rawText, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies, System.Collections.Generic.IEnumerable segments) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(string rawText, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(object defaults, object parameterPolicies, System.Collections.Generic.IEnumerable segments) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies, System.Collections.Generic.IEnumerable segments) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(string rawText, object defaults, object parameterPolicies, System.Collections.Generic.IEnumerable segments) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(string rawText, object defaults, object parameterPolicies, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(string rawText, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies, System.Collections.Generic.IEnumerable segments) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(string rawText, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(object defaults, object parameterPolicies, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(string rawText, object defaults, object parameterPolicies, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(string rawText, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, Microsoft.AspNetCore.Routing.RouteValueDictionary parameterPolicies, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment[] segments) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment Segment(System.Collections.Generic.IEnumerable parts) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment Segment(params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart[] parts) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternSeparatorPart SeparatorPart(string content) => throw null; } - - public class RoutePatternLiteralPart : Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart + public sealed class RoutePatternLiteralPart : Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart { public string Content { get => throw null; } - internal RoutePatternLiteralPart(string content) : base(default(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind)) => throw null; } - - public enum RoutePatternParameterKind : int + public enum RoutePatternParameterKind { - CatchAll = 2, - Optional = 1, Standard = 0, + Optional = 1, + CatchAll = 2, } - - public class RoutePatternParameterPart : Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart + public sealed class RoutePatternParameterPart : Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart { public object Default { get => throw null; } public bool EncodeSlashes { get => throw null; } @@ -903,79 +620,234 @@ namespace Microsoft public string Name { get => throw null; } public Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind ParameterKind { get => throw null; } public System.Collections.Generic.IReadOnlyList ParameterPolicies { get => throw null; } - internal RoutePatternParameterPart(string parameterName, object @default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference[] parameterPolicies) : base(default(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind)) => throw null; - internal RoutePatternParameterPart(string parameterName, object @default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference[] parameterPolicies, bool encodeSlashes) : base(default(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind)) => throw null; } - - public class RoutePatternParameterPolicyReference + public sealed class RoutePatternParameterPolicyReference { public string Content { get => throw null; } public Microsoft.AspNetCore.Routing.IParameterPolicy ParameterPolicy { get => throw null; } } - public abstract class RoutePatternPart { public bool IsLiteral { get => throw null; } public bool IsParameter { get => throw null; } public bool IsSeparator { get => throw null; } public Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind PartKind { get => throw null; } - protected private RoutePatternPart(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind partKind) => throw null; } - - public enum RoutePatternPartKind : int + public enum RoutePatternPartKind { Literal = 0, Parameter = 1, Separator = 2, } - - public class RoutePatternPathSegment + public sealed class RoutePatternPathSegment { public bool IsSimple { get => throw null; } public System.Collections.Generic.IReadOnlyList Parts { get => throw null; } } - - public class RoutePatternSeparatorPart : Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart + public sealed class RoutePatternSeparatorPart : Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart { public string Content { get => throw null; } - internal RoutePatternSeparatorPart(string content) : base(default(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind)) => throw null; } - public abstract class RoutePatternTransformer { protected RoutePatternTransformer() => throw null; - public virtual Microsoft.AspNetCore.Routing.Patterns.RoutePattern SubstituteRequiredValues(Microsoft.AspNetCore.Routing.Patterns.RoutePattern original, Microsoft.AspNetCore.Routing.RouteValueDictionary requiredValues) => throw null; public abstract Microsoft.AspNetCore.Routing.Patterns.RoutePattern SubstituteRequiredValues(Microsoft.AspNetCore.Routing.Patterns.RoutePattern original, object requiredValues); + public virtual Microsoft.AspNetCore.Routing.Patterns.RoutePattern SubstituteRequiredValues(Microsoft.AspNetCore.Routing.Patterns.RoutePattern original, Microsoft.AspNetCore.Routing.RouteValueDictionary requiredValues) => throw null; } - + } + public static partial class RequestDelegateRouteBuilderExtensions + { + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapDelete(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapDelete(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Func handler) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapGet(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapGet(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Func handler) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewareDelete(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Action action) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewareGet(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Action action) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewarePost(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Action action) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewarePut(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Action action) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewareRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Action action) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapMiddlewareVerb(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string verb, string template, System.Action action) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapPost(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapPost(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Func handler) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapPut(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapPut(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Func handler) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapVerb(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string verb, string template, System.Func handler) => throw null; + public static Microsoft.AspNetCore.Routing.IRouteBuilder MapVerb(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string verb, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; + } + public class Route : Microsoft.AspNetCore.Routing.RouteBase + { + public Route(Microsoft.AspNetCore.Routing.IRouter target, string routeTemplate, Microsoft.AspNetCore.Routing.IInlineConstraintResolver inlineConstraintResolver) : base(default(string), default(string), default(Microsoft.AspNetCore.Routing.IInlineConstraintResolver), default(Microsoft.AspNetCore.Routing.RouteValueDictionary), default(System.Collections.Generic.IDictionary), default(Microsoft.AspNetCore.Routing.RouteValueDictionary)) => throw null; + public Route(Microsoft.AspNetCore.Routing.IRouter target, string routeTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, System.Collections.Generic.IDictionary constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens, Microsoft.AspNetCore.Routing.IInlineConstraintResolver inlineConstraintResolver) : base(default(string), default(string), default(Microsoft.AspNetCore.Routing.IInlineConstraintResolver), default(Microsoft.AspNetCore.Routing.RouteValueDictionary), default(System.Collections.Generic.IDictionary), default(Microsoft.AspNetCore.Routing.RouteValueDictionary)) => throw null; + public Route(Microsoft.AspNetCore.Routing.IRouter target, string routeName, string routeTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, System.Collections.Generic.IDictionary constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens, Microsoft.AspNetCore.Routing.IInlineConstraintResolver inlineConstraintResolver) : base(default(string), default(string), default(Microsoft.AspNetCore.Routing.IInlineConstraintResolver), default(Microsoft.AspNetCore.Routing.RouteValueDictionary), default(System.Collections.Generic.IDictionary), default(Microsoft.AspNetCore.Routing.RouteValueDictionary)) => throw null; + protected override System.Threading.Tasks.Task OnRouteMatched(Microsoft.AspNetCore.Routing.RouteContext context) => throw null; + protected override Microsoft.AspNetCore.Routing.VirtualPathData OnVirtualPathGenerated(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; + public string RouteTemplate { get => throw null; } + } + public abstract class RouteBase : Microsoft.AspNetCore.Routing.IRouter, Microsoft.AspNetCore.Routing.INamedRouter + { + protected virtual Microsoft.AspNetCore.Routing.IInlineConstraintResolver ConstraintResolver { get => throw null; set { } } + public virtual System.Collections.Generic.IDictionary Constraints { get => throw null; set { } } + public RouteBase(string template, string name, Microsoft.AspNetCore.Routing.IInlineConstraintResolver constraintResolver, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults, System.Collections.Generic.IDictionary constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens) => throw null; + public virtual Microsoft.AspNetCore.Routing.RouteValueDictionary DataTokens { get => throw null; set { } } + public virtual Microsoft.AspNetCore.Routing.RouteValueDictionary Defaults { get => throw null; set { } } + protected static System.Collections.Generic.IDictionary GetConstraints(Microsoft.AspNetCore.Routing.IInlineConstraintResolver inlineConstraintResolver, Microsoft.AspNetCore.Routing.Template.RouteTemplate parsedTemplate, System.Collections.Generic.IDictionary constraints) => throw null; + protected static Microsoft.AspNetCore.Routing.RouteValueDictionary GetDefaults(Microsoft.AspNetCore.Routing.Template.RouteTemplate parsedTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults) => throw null; + public virtual Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; + public virtual string Name { get => throw null; set { } } + protected abstract System.Threading.Tasks.Task OnRouteMatched(Microsoft.AspNetCore.Routing.RouteContext context); + protected abstract Microsoft.AspNetCore.Routing.VirtualPathData OnVirtualPathGenerated(Microsoft.AspNetCore.Routing.VirtualPathContext context); + public virtual Microsoft.AspNetCore.Routing.Template.RouteTemplate ParsedTemplate { get => throw null; set { } } + public virtual System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) => throw null; + public override string ToString() => throw null; + } + public class RouteBuilder : Microsoft.AspNetCore.Routing.IRouteBuilder + { + public Microsoft.AspNetCore.Builder.IApplicationBuilder ApplicationBuilder { get => throw null; } + public Microsoft.AspNetCore.Routing.IRouter Build() => throw null; + public RouteBuilder(Microsoft.AspNetCore.Builder.IApplicationBuilder applicationBuilder) => throw null; + public RouteBuilder(Microsoft.AspNetCore.Builder.IApplicationBuilder applicationBuilder, Microsoft.AspNetCore.Routing.IRouter defaultHandler) => throw null; + public Microsoft.AspNetCore.Routing.IRouter DefaultHandler { get => throw null; set { } } + public System.Collections.Generic.IList Routes { get => throw null; } + public System.IServiceProvider ServiceProvider { get => throw null; } + } + public class RouteCollection : Microsoft.AspNetCore.Routing.IRouteCollection, Microsoft.AspNetCore.Routing.IRouter + { + public void Add(Microsoft.AspNetCore.Routing.IRouter router) => throw null; + public int Count { get => throw null; } + public RouteCollection() => throw null; + public virtual Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; + public virtual System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) => throw null; + public Microsoft.AspNetCore.Routing.IRouter this[int index] { get => throw null; } + } + public class RouteConstraintBuilder + { + public void AddConstraint(string key, object value) => throw null; + public void AddResolvedConstraint(string key, string constraintText) => throw null; + public System.Collections.Generic.IDictionary Build() => throw null; + public RouteConstraintBuilder(Microsoft.AspNetCore.Routing.IInlineConstraintResolver inlineConstraintResolver, string displayName) => throw null; + public void SetOptional(string key) => throw null; + } + public static class RouteConstraintMatcher + { + public static bool Match(System.Collections.Generic.IDictionary constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary routeValues, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, Microsoft.AspNetCore.Routing.RouteDirection routeDirection, Microsoft.Extensions.Logging.ILogger logger) => throw null; + } + public class RouteCreationException : System.Exception + { + public RouteCreationException(string message) => throw null; + public RouteCreationException(string message, System.Exception innerException) => throw null; + } + public sealed class RouteEndpoint : Microsoft.AspNetCore.Http.Endpoint + { + public RouteEndpoint(Microsoft.AspNetCore.Http.RequestDelegate requestDelegate, Microsoft.AspNetCore.Routing.Patterns.RoutePattern routePattern, int order, Microsoft.AspNetCore.Http.EndpointMetadataCollection metadata, string displayName) : base(default(Microsoft.AspNetCore.Http.RequestDelegate), default(Microsoft.AspNetCore.Http.EndpointMetadataCollection), default(string)) => throw null; + public int Order { get => throw null; } + public Microsoft.AspNetCore.Routing.Patterns.RoutePattern RoutePattern { get => throw null; } + } + public sealed class RouteEndpointBuilder : Microsoft.AspNetCore.Builder.EndpointBuilder + { + public override Microsoft.AspNetCore.Http.Endpoint Build() => throw null; + public RouteEndpointBuilder(Microsoft.AspNetCore.Http.RequestDelegate requestDelegate, Microsoft.AspNetCore.Routing.Patterns.RoutePattern routePattern, int order) => throw null; + public int Order { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.Patterns.RoutePattern RoutePattern { get => throw null; set { } } + } + public sealed class RouteGroupBuilder : Microsoft.AspNetCore.Routing.IEndpointRouteBuilder, Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + { + void Microsoft.AspNetCore.Builder.IEndpointConventionBuilder.Add(System.Action convention) => throw null; + Microsoft.AspNetCore.Builder.IApplicationBuilder Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.CreateApplicationBuilder() => throw null; + System.Collections.Generic.ICollection Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.DataSources { get => throw null; } + void Microsoft.AspNetCore.Builder.IEndpointConventionBuilder.Finally(System.Action finalConvention) => throw null; + System.IServiceProvider Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.ServiceProvider { get => throw null; } + } + public sealed class RouteGroupContext + { + public System.IServiceProvider ApplicationServices { get => throw null; set { } } + public System.Collections.Generic.IReadOnlyList> Conventions { get => throw null; set { } } + public RouteGroupContext() => throw null; + public System.Collections.Generic.IReadOnlyList> FinallyConventions { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.Patterns.RoutePattern Prefix { get => throw null; set { } } + } + public class RouteHandler : Microsoft.AspNetCore.Routing.IRouteHandler, Microsoft.AspNetCore.Routing.IRouter + { + public RouteHandler(Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; + public Microsoft.AspNetCore.Http.RequestDelegate GetRequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) => throw null; + public Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; + public System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) => throw null; + } + public sealed class RouteHandlerOptions + { + public RouteHandlerOptions() => throw null; + public bool ThrowOnBadRequest { get => throw null; set { } } + } + public sealed class RouteNameMetadata : Microsoft.AspNetCore.Routing.IRouteNameMetadata + { + public RouteNameMetadata(string routeName) => throw null; + public string RouteName { get => throw null; } + } + public class RouteOptions + { + public bool AppendTrailingSlash { get => throw null; set { } } + public System.Collections.Generic.IDictionary ConstraintMap { get => throw null; set { } } + public RouteOptions() => throw null; + public bool LowercaseQueryStrings { get => throw null; set { } } + public bool LowercaseUrls { get => throw null; set { } } + public void SetParameterPolicy(string token) where T : Microsoft.AspNetCore.Routing.IParameterPolicy => throw null; + public void SetParameterPolicy(string token, System.Type type) => throw null; + public bool SuppressCheckForUnhandledSecurityMetadata { get => throw null; set { } } + } + public class RouteValueEqualityComparer : System.Collections.Generic.IEqualityComparer + { + public RouteValueEqualityComparer() => throw null; + public static Microsoft.AspNetCore.Routing.RouteValueEqualityComparer Default; + public bool Equals(object x, object y) => throw null; + public int GetHashCode(object obj) => throw null; + } + public class RouteValuesAddress + { + public Microsoft.AspNetCore.Routing.RouteValueDictionary AmbientValues { get => throw null; set { } } + public RouteValuesAddress() => throw null; + public Microsoft.AspNetCore.Routing.RouteValueDictionary ExplicitValues { get => throw null; set { } } + public string RouteName { get => throw null; set { } } + public override string ToString() => throw null; + } + public class RoutingFeature : Microsoft.AspNetCore.Routing.IRoutingFeature + { + public RoutingFeature() => throw null; + public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; set { } } + } + public sealed class SuppressLinkGenerationMetadata : Microsoft.AspNetCore.Routing.ISuppressLinkGenerationMetadata + { + public SuppressLinkGenerationMetadata() => throw null; + public bool SuppressLinkGeneration { get => throw null; } + } + public sealed class SuppressMatchingMetadata : Microsoft.AspNetCore.Routing.ISuppressMatchingMetadata + { + public SuppressMatchingMetadata() => throw null; + public bool SuppressMatching { get => throw null; } } namespace Template { public class InlineConstraint { public string Constraint { get => throw null; } - public InlineConstraint(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference other) => throw null; public InlineConstraint(string constraint) => throw null; + public InlineConstraint(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference other) => throw null; } - public static class RoutePrecedence { - public static System.Decimal ComputeInbound(Microsoft.AspNetCore.Routing.Template.RouteTemplate template) => throw null; - public static System.Decimal ComputeOutbound(Microsoft.AspNetCore.Routing.Template.RouteTemplate template) => throw null; + public static decimal ComputeInbound(Microsoft.AspNetCore.Routing.Template.RouteTemplate template) => throw null; + public static decimal ComputeOutbound(Microsoft.AspNetCore.Routing.Template.RouteTemplate template) => throw null; } - public class RouteTemplate { + public RouteTemplate(Microsoft.AspNetCore.Routing.Patterns.RoutePattern other) => throw null; + public RouteTemplate(string template, System.Collections.Generic.List segments) => throw null; public Microsoft.AspNetCore.Routing.Template.TemplatePart GetParameter(string name) => throw null; public Microsoft.AspNetCore.Routing.Template.TemplateSegment GetSegment(int index) => throw null; public System.Collections.Generic.IList Parameters { get => throw null; } - public RouteTemplate(Microsoft.AspNetCore.Routing.Patterns.RoutePattern other) => throw null; - public RouteTemplate(string template, System.Collections.Generic.List segments) => throw null; public System.Collections.Generic.IList Segments { get => throw null; } public string TemplateText { get => throw null; } public Microsoft.AspNetCore.Routing.Patterns.RoutePattern ToRoutePattern() => throw null; } - public class TemplateBinder { public string BindValues(Microsoft.AspNetCore.Routing.RouteValueDictionary acceptedValues) => throw null; @@ -983,104 +855,93 @@ namespace Microsoft public static bool RoutePartsEqual(object a, object b) => throw null; public bool TryProcessConstraints(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary combinedValues, out string parameterName, out Microsoft.AspNetCore.Routing.IRouteConstraint constraint) => throw null; } - public abstract class TemplateBinderFactory { - public abstract Microsoft.AspNetCore.Routing.Template.TemplateBinder Create(Microsoft.AspNetCore.Routing.Patterns.RoutePattern pattern); public abstract Microsoft.AspNetCore.Routing.Template.TemplateBinder Create(Microsoft.AspNetCore.Routing.Template.RouteTemplate template, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults); + public abstract Microsoft.AspNetCore.Routing.Template.TemplateBinder Create(Microsoft.AspNetCore.Routing.Patterns.RoutePattern pattern); protected TemplateBinderFactory() => throw null; } - public class TemplateMatcher { + public TemplateMatcher(Microsoft.AspNetCore.Routing.Template.RouteTemplate template, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults) => throw null; public Microsoft.AspNetCore.Routing.RouteValueDictionary Defaults { get => throw null; } public Microsoft.AspNetCore.Routing.Template.RouteTemplate Template { get => throw null; } - public TemplateMatcher(Microsoft.AspNetCore.Routing.Template.RouteTemplate template, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults) => throw null; public bool TryMatch(Microsoft.AspNetCore.Http.PathString path, Microsoft.AspNetCore.Routing.RouteValueDictionary values) => throw null; } - public static class TemplateParser { public static Microsoft.AspNetCore.Routing.Template.RouteTemplate Parse(string routeTemplate) => throw null; } - public class TemplatePart { public static Microsoft.AspNetCore.Routing.Template.TemplatePart CreateLiteral(string text) => throw null; public static Microsoft.AspNetCore.Routing.Template.TemplatePart CreateParameter(string name, bool isCatchAll, bool isOptional, object defaultValue, System.Collections.Generic.IEnumerable inlineConstraints) => throw null; + public TemplatePart() => throw null; + public TemplatePart(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart other) => throw null; public object DefaultValue { get => throw null; } public System.Collections.Generic.IEnumerable InlineConstraints { get => throw null; } public bool IsCatchAll { get => throw null; } public bool IsLiteral { get => throw null; } public bool IsOptional { get => throw null; } - public bool IsOptionalSeperator { get => throw null; set => throw null; } + public bool IsOptionalSeperator { get => throw null; set { } } public bool IsParameter { get => throw null; } public string Name { get => throw null; } - public TemplatePart() => throw null; - public TemplatePart(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart other) => throw null; public string Text { get => throw null; } public Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart ToRoutePatternPart() => throw null; } - public class TemplateSegment { - public bool IsSimple { get => throw null; } - public System.Collections.Generic.List Parts { get => throw null; } public TemplateSegment() => throw null; public TemplateSegment(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment other) => throw null; + public bool IsSimple { get => throw null; } + public System.Collections.Generic.List Parts { get => throw null; } public Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment ToRoutePatternPathSegment() => throw null; } - public class TemplateValuesResult { - public Microsoft.AspNetCore.Routing.RouteValueDictionary AcceptedValues { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary CombinedValues { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary AcceptedValues { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteValueDictionary CombinedValues { get => throw null; set { } } public TemplateValuesResult() => throw null; } - } namespace Tree { public class InboundMatch { - public Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry Entry { get => throw null; set => throw null; } public InboundMatch() => throw null; - public Microsoft.AspNetCore.Routing.Template.TemplateMatcher TemplateMatcher { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry Entry { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.Template.TemplateMatcher TemplateMatcher { get => throw null; set { } } } - public class InboundRouteEntry { - public System.Collections.Generic.IDictionary Constraints { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary Defaults { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.IRouter Handler { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Constraints { get => throw null; set { } } public InboundRouteEntry() => throw null; - public int Order { get => throw null; set => throw null; } - public System.Decimal Precedence { get => throw null; set => throw null; } - public string RouteName { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.Template.RouteTemplate RouteTemplate { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Routing.RouteValueDictionary Defaults { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.IRouter Handler { get => throw null; set { } } + public int Order { get => throw null; set { } } + public decimal Precedence { get => throw null; set { } } + public string RouteName { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.Template.RouteTemplate RouteTemplate { get => throw null; set { } } } - public class OutboundMatch { - public Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry Entry { get => throw null; set => throw null; } public OutboundMatch() => throw null; - public Microsoft.AspNetCore.Routing.Template.TemplateBinder TemplateBinder { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry Entry { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.Template.TemplateBinder TemplateBinder { get => throw null; set { } } } - public class OutboundRouteEntry { - public System.Collections.Generic.IDictionary Constraints { get => throw null; set => throw null; } - public object Data { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary Defaults { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.IRouter Handler { get => throw null; set => throw null; } - public int Order { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Constraints { get => throw null; set { } } public OutboundRouteEntry() => throw null; - public System.Decimal Precedence { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.RouteValueDictionary RequiredLinkValues { get => throw null; set => throw null; } - public string RouteName { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.Template.RouteTemplate RouteTemplate { get => throw null; set => throw null; } + public object Data { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteValueDictionary Defaults { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.IRouter Handler { get => throw null; set { } } + public int Order { get => throw null; set { } } + public decimal Precedence { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.RouteValueDictionary RequiredLinkValues { get => throw null; set { } } + public string RouteName { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.Template.RouteTemplate RouteTemplate { get => throw null; set { } } } - public class TreeRouteBuilder { public Microsoft.AspNetCore.Routing.Tree.TreeRouter Build() => throw null; @@ -1091,7 +952,6 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry MapOutbound(Microsoft.AspNetCore.Routing.IRouter handler, Microsoft.AspNetCore.Routing.Template.RouteTemplate routeTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary requiredLinkValues, string routeName, int order) => throw null; public System.Collections.Generic.IList OutboundEntries { get => throw null; } } - public class TreeRouter : Microsoft.AspNetCore.Routing.IRouter { public Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; @@ -1099,27 +959,24 @@ namespace Microsoft public static string RouteGroupKey; public int Version { get => throw null; } } - public class UrlMatchingNode { - public Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode CatchAlls { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode ConstrainedCatchAlls { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode ConstrainedParameters { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode CatchAlls { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode ConstrainedCatchAlls { get => throw null; set { } } + public Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode ConstrainedParameters { get => throw null; set { } } + public UrlMatchingNode(int length) => throw null; public int Depth { get => throw null; } - public bool IsCatchAll { get => throw null; set => throw null; } + public bool IsCatchAll { get => throw null; set { } } public System.Collections.Generic.Dictionary Literals { get => throw null; } public System.Collections.Generic.List Matches { get => throw null; } - public Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode Parameters { get => throw null; set => throw null; } - public UrlMatchingNode(int length) => throw null; + public Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode Parameters { get => throw null; set { } } } - public class UrlMatchingTree { + public UrlMatchingTree(int order) => throw null; public int Order { get => throw null; } public Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode Root { get => throw null; } - public UrlMatchingTree(int order) => throw null; } - } } } @@ -1127,12 +984,11 @@ namespace Microsoft { namespace DependencyInjection { - public static class RoutingServiceCollectionExtensions + public static partial class RoutingServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddRouting(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddRouting(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.HttpSys.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.HttpSys.cs index d378a4e9985..89e93f1a6b7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.HttpSys.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.HttpSys.cs @@ -1,131 +1,116 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Server.HttpSys, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Hosting { - public static class WebHostBuilderHttpSysExtensions + public static partial class WebHostBuilderHttpSysExtensions { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseHttpSys(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) => throw null; public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseHttpSys(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action options) => throw null; } - } namespace Server { namespace HttpSys { - public class AuthenticationManager + public sealed class AuthenticationManager { - public bool AllowAnonymous { get => throw null; set => throw null; } - public string AuthenticationDisplayName { get => throw null; set => throw null; } - public bool AutomaticAuthentication { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes Schemes { get => throw null; set => throw null; } + public bool AllowAnonymous { get => throw null; set { } } + public string AuthenticationDisplayName { get => throw null; set { } } + public bool AutomaticAuthentication { get => throw null; set { } } + public Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes Schemes { get => throw null; set { } } } - [System.Flags] - public enum AuthenticationSchemes : int + public enum AuthenticationSchemes { + None = 0, Basic = 1, - Kerberos = 16, NTLM = 4, Negotiate = 8, - None = 0, + Kerberos = 16, } - - public enum ClientCertificateMethod : int + public enum ClientCertificateMethod { + NoCertificate = 0, AllowCertificate = 1, AllowRenegotation = 2, - NoCertificate = 0, } - public class DelegationRule : System.IDisposable { public void Dispose() => throw null; public string QueueName { get => throw null; } public string UrlPrefix { get => throw null; } } - public enum Http503VerbosityLevel : long { Basic = 0, - Full = 2, Limited = 1, + Full = 2, } - public static class HttpSysDefaults { - public const string AuthenticationScheme = default; + public static string AuthenticationScheme; } - public class HttpSysException : System.ComponentModel.Win32Exception { public override int ErrorCode { get => throw null; } } - public class HttpSysOptions { - public bool AllowSynchronousIO { get => throw null; set => throw null; } + public bool AllowSynchronousIO { get => throw null; set { } } public Microsoft.AspNetCore.Server.HttpSys.AuthenticationManager Authentication { get => throw null; } - public Microsoft.AspNetCore.Server.HttpSys.ClientCertificateMethod ClientCertificateMethod { get => throw null; set => throw null; } - public bool EnableResponseCaching { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Server.HttpSys.Http503VerbosityLevel Http503Verbosity { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Server.HttpSys.ClientCertificateMethod ClientCertificateMethod { get => throw null; set { } } public HttpSysOptions() => throw null; - public int MaxAccepts { get => throw null; set => throw null; } - public System.Int64? MaxConnections { get => throw null; set => throw null; } - public System.Int64? MaxRequestBodySize { get => throw null; set => throw null; } - public System.Int64 RequestQueueLimit { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Server.HttpSys.RequestQueueMode RequestQueueMode { get => throw null; set => throw null; } - public string RequestQueueName { get => throw null; set => throw null; } - public bool ThrowWriteExceptions { get => throw null; set => throw null; } + public bool EnableResponseCaching { get => throw null; set { } } + public Microsoft.AspNetCore.Server.HttpSys.Http503VerbosityLevel Http503Verbosity { get => throw null; set { } } + public int MaxAccepts { get => throw null; set { } } + public long? MaxConnections { get => throw null; set { } } + public long? MaxRequestBodySize { get => throw null; set { } } + public long RequestQueueLimit { get => throw null; set { } } + public Microsoft.AspNetCore.Server.HttpSys.RequestQueueMode RequestQueueMode { get => throw null; set { } } + public string RequestQueueName { get => throw null; set { } } + public bool ThrowWriteExceptions { get => throw null; set { } } public Microsoft.AspNetCore.Server.HttpSys.TimeoutManager Timeouts { get => throw null; } - public bool UnsafePreferInlineScheduling { get => throw null; set => throw null; } + public bool UnsafePreferInlineScheduling { get => throw null; set { } } public Microsoft.AspNetCore.Server.HttpSys.UrlPrefixCollection UrlPrefixes { get => throw null; } - public bool UseLatin1RequestHeaders { get => throw null; set => throw null; } + public bool UseLatin1RequestHeaders { get => throw null; set { } } } - public interface IHttpSysRequestDelegationFeature { bool CanDelegate { get; } void DelegateRequest(Microsoft.AspNetCore.Server.HttpSys.DelegationRule destination); } - public interface IHttpSysRequestInfoFeature { - System.Collections.Generic.IReadOnlyDictionary> RequestInfo { get; } + System.Collections.Generic.IReadOnlyDictionary> RequestInfo { get; } } - public interface IServerDelegationFeature { Microsoft.AspNetCore.Server.HttpSys.DelegationRule CreateDelegationRule(string queueName, string urlPrefix); } - - public enum RequestQueueMode : int + public enum RequestQueueMode { - Attach = 1, Create = 0, + Attach = 1, CreateOrAttach = 2, } - - public class TimeoutManager + public sealed class TimeoutManager { - public System.TimeSpan DrainEntityBody { get => throw null; set => throw null; } - public System.TimeSpan EntityBody { get => throw null; set => throw null; } - public System.TimeSpan HeaderWait { get => throw null; set => throw null; } - public System.TimeSpan IdleConnection { get => throw null; set => throw null; } - public System.Int64 MinSendBytesPerSecond { get => throw null; set => throw null; } - public System.TimeSpan RequestQueue { get => throw null; set => throw null; } + public System.TimeSpan DrainEntityBody { get => throw null; set { } } + public System.TimeSpan EntityBody { get => throw null; set { } } + public System.TimeSpan HeaderWait { get => throw null; set { } } + public System.TimeSpan IdleConnection { get => throw null; set { } } + public long MinSendBytesPerSecond { get => throw null; set { } } + public System.TimeSpan RequestQueue { get => throw null; set { } } } - public class UrlPrefix { - public static Microsoft.AspNetCore.Server.HttpSys.UrlPrefix Create(string prefix) => throw null; - public static Microsoft.AspNetCore.Server.HttpSys.UrlPrefix Create(string scheme, string host, int? portValue, string path) => throw null; public static Microsoft.AspNetCore.Server.HttpSys.UrlPrefix Create(string scheme, string host, string port, string path) => throw null; + public static Microsoft.AspNetCore.Server.HttpSys.UrlPrefix Create(string scheme, string host, int? portValue, string path) => throw null; + public static Microsoft.AspNetCore.Server.HttpSys.UrlPrefix Create(string prefix) => throw null; public override bool Equals(object obj) => throw null; public string FullPrefix { get => throw null; } public override int GetHashCode() => throw null; @@ -137,11 +122,10 @@ namespace Microsoft public string Scheme { get => throw null; } public override string ToString() => throw null; } - public class UrlPrefixCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - public void Add(Microsoft.AspNetCore.Server.HttpSys.UrlPrefix item) => throw null; public void Add(string prefix) => throw null; + public void Add(Microsoft.AspNetCore.Server.HttpSys.UrlPrefix item) => throw null; public void Clear() => throw null; public bool Contains(Microsoft.AspNetCore.Server.HttpSys.UrlPrefix item) => throw null; public void CopyTo(Microsoft.AspNetCore.Server.HttpSys.UrlPrefix[] array, int arrayIndex) => throw null; @@ -149,10 +133,9 @@ namespace Microsoft public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsReadOnly { get => throw null; } - public bool Remove(Microsoft.AspNetCore.Server.HttpSys.UrlPrefix item) => throw null; public bool Remove(string prefix) => throw null; + public bool Remove(Microsoft.AspNetCore.Server.HttpSys.UrlPrefix item) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IIS.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IIS.cs index 55673f87da0..06c0700496c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IIS.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IIS.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Server.IIS, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,14 +8,13 @@ namespace Microsoft { public class IISServerOptions { - public bool AllowSynchronousIO { get => throw null; set => throw null; } - public string AuthenticationDisplayName { get => throw null; set => throw null; } - public bool AutomaticAuthentication { get => throw null; set => throw null; } + public bool AllowSynchronousIO { get => throw null; set { } } + public string AuthenticationDisplayName { get => throw null; set { } } + public bool AutomaticAuthentication { get => throw null; set { } } public IISServerOptions() => throw null; - public int MaxRequestBodyBufferSize { get => throw null; set => throw null; } - public System.Int64? MaxRequestBodySize { get => throw null; set => throw null; } + public int MaxRequestBodyBufferSize { get => throw null; set { } } + public long? MaxRequestBodySize { get => throw null; set { } } } - } namespace Hosting { @@ -24,70 +22,59 @@ namespace Microsoft { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseIIS(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) => throw null; } - } namespace Server { namespace IIS { - public class BadHttpRequestException : Microsoft.AspNetCore.Http.BadHttpRequestException + public sealed class BadHttpRequestException : Microsoft.AspNetCore.Http.BadHttpRequestException { - internal BadHttpRequestException(string message, int statusCode, Microsoft.AspNetCore.Server.IIS.RequestRejectionReason reason) : base(default(string)) => throw null; public int StatusCode { get => throw null; } + internal BadHttpRequestException() : base(default(string)) { } } - - public static class HttpContextExtensions - { - public static string GetIISServerVariable(this Microsoft.AspNetCore.Http.HttpContext context, string variableName) => throw null; - } - - public class IISServerDefaults - { - public const string AuthenticationScheme = default; - public IISServerDefaults() => throw null; - } - - internal enum RequestRejectionReason : int - { - } - namespace Core { public class IISServerAuthenticationHandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler { public System.Threading.Tasks.Task AuthenticateAsync() => throw null; public System.Threading.Tasks.Task ChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public System.Threading.Tasks.Task ForbidAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public IISServerAuthenticationHandler() => throw null; + public System.Threading.Tasks.Task ForbidAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public System.Threading.Tasks.Task InitializeAsync(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class ThrowingWasUpgradedWriteOnlyStream : Microsoft.AspNetCore.Server.IIS.Core.WriteOnlyStream { - public override void Flush() => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; public ThrowingWasUpgradedWriteOnlyStream() => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override void Flush() => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; } - public abstract class WriteOnlyStream : System.IO.Stream { public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } - public override System.Int64 Length { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken) => throw null; - public override int ReadTimeout { get => throw null; set => throw null; } - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; protected WriteOnlyStream() => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken) => throw null; + public override int ReadTimeout { get => throw null; set { } } + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; } - + } + public static partial class HttpContextExtensions + { + public static string GetIISServerVariable(this Microsoft.AspNetCore.Http.HttpContext context, string variableName) => throw null; + } + public class IISServerDefaults + { + public static string AuthenticationScheme; + public IISServerDefaults() => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IISIntegration.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IISIntegration.cs index 6ce7423ade8..e5721275127 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IISIntegration.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IISIntegration.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Server.IISIntegration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,12 +8,11 @@ namespace Microsoft { public class IISOptions { - public string AuthenticationDisplayName { get => throw null; set => throw null; } - public bool AutomaticAuthentication { get => throw null; set => throw null; } - public bool ForwardClientCertificate { get => throw null; set => throw null; } + public string AuthenticationDisplayName { get => throw null; set { } } + public bool AutomaticAuthentication { get => throw null; set { } } public IISOptions() => throw null; + public bool ForwardClientCertificate { get => throw null; set { } } } - } namespace Hosting { @@ -22,7 +20,6 @@ namespace Microsoft { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseIISIntegration(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) => throw null; } - } namespace Server { @@ -30,25 +27,22 @@ namespace Microsoft { public class IISDefaults { - public const string AuthenticationScheme = default; + public static string AuthenticationScheme; public IISDefaults() => throw null; - public const string Negotiate = default; - public const string Ntlm = default; + public static string Negotiate; + public static string Ntlm; } - public class IISHostingStartup : Microsoft.AspNetCore.Hosting.IHostingStartup { public void Configure(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) => throw null; public IISHostingStartup() => throw null; } - public class IISMiddleware { public IISMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options, string pairingToken, Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider authentication, Microsoft.Extensions.Hosting.IHostApplicationLifetime applicationLifetime) => throw null; public IISMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options, string pairingToken, bool isWebsocketsSupported, Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider authentication, Microsoft.Extensions.Hosting.IHostApplicationLifetime applicationLifetime) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Core.cs index f2d392840f8..2514cedba10 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Core.cs @@ -1,205 +1,51 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Hosting { - public static class KestrelServerOptionsSystemdExtensions + public static partial class KestrelServerOptionsSystemdExtensions { public static Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions UseSystemd(this Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions options) => throw null; public static Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions UseSystemd(this Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions options, System.Action configure) => throw null; } - - public static class ListenOptionsConnectionLoggingExtensions + public static partial class ListenOptionsConnectionLoggingExtensions { public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseConnectionLogging(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions) => throw null; public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseConnectionLogging(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, string loggerName) => throw null; } - - public static class ListenOptionsHttpsExtensions + public static partial class ListenOptionsHttpsExtensions { public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions) => throw null; - public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Action configureOptions) => throw null; - public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionAdapterOptions httpsOptions) => throw null; - public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Net.Security.ServerOptionsSelectionCallback serverOptionsSelectionCallback, object state) => throw null; - public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Net.Security.ServerOptionsSelectionCallback serverOptionsSelectionCallback, object state, System.TimeSpan handshakeTimeout) => throw null; + public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, string fileName) => throw null; + public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, string fileName, string password) => throw null; + public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, string fileName, string password, System.Action configureOptions) => throw null; public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Security.Cryptography.X509Certificates.StoreName storeName, string subject) => throw null; public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Security.Cryptography.X509Certificates.StoreName storeName, string subject, bool allowInvalid) => throw null; public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Security.Cryptography.X509Certificates.StoreName storeName, string subject, bool allowInvalid, System.Security.Cryptography.X509Certificates.StoreLocation location) => throw null; public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Security.Cryptography.X509Certificates.StoreName storeName, string subject, bool allowInvalid, System.Security.Cryptography.X509Certificates.StoreLocation location, System.Action configureOptions) => throw null; - public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, Microsoft.AspNetCore.Server.Kestrel.Https.TlsHandshakeCallbackOptions callbackOptions) => throw null; public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Security.Cryptography.X509Certificates.X509Certificate2 serverCertificate) => throw null; public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Security.Cryptography.X509Certificates.X509Certificate2 serverCertificate, System.Action configureOptions) => throw null; - public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, string fileName) => throw null; - public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, string fileName, string password) => throw null; - public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, string fileName, string password, System.Action configureOptions) => throw null; + public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Action configureOptions) => throw null; + public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionAdapterOptions httpsOptions) => throw null; + public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Net.Security.ServerOptionsSelectionCallback serverOptionsSelectionCallback, object state) => throw null; + public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, System.Net.Security.ServerOptionsSelectionCallback serverOptionsSelectionCallback, object state, System.TimeSpan handshakeTimeout) => throw null; + public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseHttps(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, Microsoft.AspNetCore.Server.Kestrel.Https.TlsHandshakeCallbackOptions callbackOptions) => throw null; } - } namespace Server { namespace Kestrel { - public class EndpointConfiguration - { - public Microsoft.Extensions.Configuration.IConfigurationSection ConfigSection { get => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionAdapterOptions HttpsOptions { get => throw null; } - public bool IsHttps { get => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions ListenOptions { get => throw null; } - } - - public class KestrelConfigurationLoader - { - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader AnyIPEndpoint(int port) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader AnyIPEndpoint(int port, System.Action configure) => throw null; - public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Endpoint(System.Net.IPAddress address, int port) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Endpoint(System.Net.IPAddress address, int port, System.Action configure) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Endpoint(System.Net.IPEndPoint endPoint) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Endpoint(System.Net.IPEndPoint endPoint, System.Action configure) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Endpoint(string name, System.Action configureOptions) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader HandleEndpoint(System.UInt64 handle) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader HandleEndpoint(System.UInt64 handle, System.Action configure) => throw null; - public void Load() => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader LocalhostEndpoint(int port) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader LocalhostEndpoint(int port, System.Action configure) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions Options { get => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader UnixSocketEndpoint(string socketPath) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader UnixSocketEndpoint(string socketPath, System.Action configure) => throw null; - } - namespace Core { - public class BadHttpRequestException : Microsoft.AspNetCore.Http.BadHttpRequestException + public sealed class BadHttpRequestException : Microsoft.AspNetCore.Http.BadHttpRequestException { - internal BadHttpRequestException(string message, int statusCode, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason reason) : base(default(string)) => throw null; - internal BadHttpRequestException(string message, int statusCode, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason reason, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod? requiredMethod) : base(default(string)) => throw null; public int StatusCode { get => throw null; } + internal BadHttpRequestException() : base(default(string)) { } } - - public class Http2Limits - { - public int HeaderTableSize { get => throw null; set => throw null; } - public Http2Limits() => throw null; - public int InitialConnectionWindowSize { get => throw null; set => throw null; } - public int InitialStreamWindowSize { get => throw null; set => throw null; } - public System.TimeSpan KeepAlivePingDelay { get => throw null; set => throw null; } - public System.TimeSpan KeepAlivePingTimeout { get => throw null; set => throw null; } - public int MaxFrameSize { get => throw null; set => throw null; } - public int MaxRequestHeaderFieldSize { get => throw null; set => throw null; } - public int MaxStreamsPerConnection { get => throw null; set => throw null; } - } - - public class Http3Limits - { - public Http3Limits() => throw null; - public int MaxRequestHeaderFieldSize { get => throw null; set => throw null; } - } - - [System.Flags] - public enum HttpProtocols : int - { - Http1 = 1, - Http1AndHttp2 = 3, - Http1AndHttp2AndHttp3 = 7, - Http2 = 2, - Http3 = 4, - None = 0, - } - - public class KestrelServer : Microsoft.AspNetCore.Hosting.Server.IServer, System.IDisposable - { - public void Dispose() => throw null; - public Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get => throw null; } - public KestrelServer(Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.Connections.IConnectionListenerFactory transportFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions Options { get => throw null; } - public System.Threading.Tasks.Task StartAsync(Microsoft.AspNetCore.Hosting.Server.IHttpApplication application, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) => throw null; - } - - public class KestrelServerLimits - { - public Microsoft.AspNetCore.Server.Kestrel.Core.Http2Limits Http2 { get => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.Core.Http3Limits Http3 { get => throw null; } - public System.TimeSpan KeepAliveTimeout { get => throw null; set => throw null; } - public KestrelServerLimits() => throw null; - public System.Int64? MaxConcurrentConnections { get => throw null; set => throw null; } - public System.Int64? MaxConcurrentUpgradedConnections { get => throw null; set => throw null; } - public System.Int64? MaxRequestBodySize { get => throw null; set => throw null; } - public System.Int64? MaxRequestBufferSize { get => throw null; set => throw null; } - public int MaxRequestHeaderCount { get => throw null; set => throw null; } - public int MaxRequestHeadersTotalSize { get => throw null; set => throw null; } - public int MaxRequestLineSize { get => throw null; set => throw null; } - public System.Int64? MaxResponseBufferSize { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate MinRequestBodyDataRate { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate MinResponseDataRate { get => throw null; set => throw null; } - public System.TimeSpan RequestHeadersTimeout { get => throw null; set => throw null; } - } - - public class KestrelServerOptions - { - public bool AddServerHeader { get => throw null; set => throw null; } - public bool AllowAlternateSchemes { get => throw null; set => throw null; } - public bool AllowResponseHeaderCompression { get => throw null; set => throw null; } - public bool AllowSynchronousIO { get => throw null; set => throw null; } - public System.IServiceProvider ApplicationServices { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader ConfigurationLoader { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Configure() => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Configure(Microsoft.Extensions.Configuration.IConfiguration config) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Configure(Microsoft.Extensions.Configuration.IConfiguration config, bool reloadOnChange) => throw null; - public void ConfigureEndpointDefaults(System.Action configureOptions) => throw null; - public void ConfigureHttpsDefaults(System.Action configureOptions) => throw null; - public bool DisableStringReuse { get => throw null; set => throw null; } - public bool EnableAltSvc { get => throw null; set => throw null; } - public KestrelServerOptions() => throw null; - public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerLimits Limits { get => throw null; } - public void Listen(System.Net.EndPoint endPoint) => throw null; - public void Listen(System.Net.EndPoint endPoint, System.Action configure) => throw null; - public void Listen(System.Net.IPAddress address, int port) => throw null; - public void Listen(System.Net.IPAddress address, int port, System.Action configure) => throw null; - public void Listen(System.Net.IPEndPoint endPoint) => throw null; - public void Listen(System.Net.IPEndPoint endPoint, System.Action configure) => throw null; - public void ListenAnyIP(int port) => throw null; - public void ListenAnyIP(int port, System.Action configure) => throw null; - public void ListenHandle(System.UInt64 handle) => throw null; - public void ListenHandle(System.UInt64 handle, System.Action configure) => throw null; - public void ListenLocalhost(int port) => throw null; - public void ListenLocalhost(int port, System.Action configure) => throw null; - public void ListenUnixSocket(string socketPath) => throw null; - public void ListenUnixSocket(string socketPath, System.Action configure) => throw null; - public System.Func RequestHeaderEncodingSelector { get => throw null; set => throw null; } - public System.Func ResponseHeaderEncodingSelector { get => throw null; set => throw null; } - } - - public class ListenOptions : Microsoft.AspNetCore.Connections.IConnectionBuilder, Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder - { - public System.IServiceProvider ApplicationServices { get => throw null; } - public Microsoft.AspNetCore.Connections.ConnectionDelegate Build() => throw null; - Microsoft.AspNetCore.Connections.MultiplexedConnectionDelegate Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder.Build() => throw null; - public bool DisableAltSvcHeader { get => throw null; set => throw null; } - public System.Net.EndPoint EndPoint { get => throw null; set => throw null; } - public System.UInt64 FileHandle { get => throw null; } - public System.Net.IPEndPoint IPEndPoint { get => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions KestrelServerOptions { get => throw null; set => throw null; } - internal ListenOptions(System.Net.EndPoint endPoint) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols Protocols { get => throw null; set => throw null; } - public string SocketPath { get => throw null; } - public override string ToString() => throw null; - public Microsoft.AspNetCore.Connections.IConnectionBuilder Use(System.Func middleware) => throw null; - Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder.Use(System.Func middleware) => throw null; - } - - public class MinDataRate - { - public double BytesPerSecond { get => throw null; } - public System.TimeSpan GracePeriod { get => throw null; } - public MinDataRate(double bytesPerSecond, System.TimeSpan gracePeriod) => throw null; - public override string ToString() => throw null; - } - namespace Features { public interface IConnectionTimeoutFeature @@ -208,32 +54,53 @@ namespace Microsoft void ResetTimeout(System.TimeSpan timeSpan); void SetTimeout(System.TimeSpan timeSpan); } - public interface IDecrementConcurrentConnectionCountFeature { void ReleaseConnection(); } - public interface IHttp2StreamIdFeature { int StreamId { get; } } - public interface IHttpMinRequestBodyDataRateFeature { Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate MinDataRate { get; set; } } - public interface IHttpMinResponseDataRateFeature { Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate MinDataRate { get; set; } } - public interface ITlsApplicationProtocolFeature { - System.ReadOnlyMemory ApplicationProtocol { get; } + System.ReadOnlyMemory ApplicationProtocol { get; } } - + } + public class Http2Limits + { + public Http2Limits() => throw null; + public int HeaderTableSize { get => throw null; set { } } + public int InitialConnectionWindowSize { get => throw null; set { } } + public int InitialStreamWindowSize { get => throw null; set { } } + public System.TimeSpan KeepAlivePingDelay { get => throw null; set { } } + public System.TimeSpan KeepAlivePingTimeout { get => throw null; set { } } + public int MaxFrameSize { get => throw null; set { } } + public int MaxRequestHeaderFieldSize { get => throw null; set { } } + public int MaxStreamsPerConnection { get => throw null; set { } } + } + public class Http3Limits + { + public Http3Limits() => throw null; + public int MaxRequestHeaderFieldSize { get => throw null; set { } } + } + [System.Flags] + public enum HttpProtocols + { + None = 0, + Http1 = 1, + Http2 = 2, + Http1AndHttp2 = 3, + Http3 = 4, + Http1AndHttp2AndHttp3 = 7, } namespace Internal { @@ -241,84 +108,157 @@ namespace Microsoft { public enum HttpMethod : byte { - Connect = 7, - Custom = 9, - Delete = 2, Get = 0, - Head = 4, - None = 255, - Options = 8, - Patch = 6, - Post = 3, Put = 1, + Delete = 2, + Post = 3, + Head = 4, Trace = 5, + Patch = 6, + Connect = 7, + Options = 8, + Custom = 9, + None = 255, } - public class HttpParser where TRequestHandler : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpRequestLineHandler { public HttpParser() => throw null; public HttpParser(bool showErrorDetails) => throw null; - public bool ParseHeaders(TRequestHandler handler, ref System.Buffers.SequenceReader reader) => throw null; - public bool ParseRequestLine(TRequestHandler handler, ref System.Buffers.SequenceReader reader) => throw null; + public bool ParseHeaders(TRequestHandler handler, ref System.Buffers.SequenceReader reader) => throw null; + public bool ParseRequestLine(TRequestHandler handler, ref System.Buffers.SequenceReader reader) => throw null; } - - public enum HttpScheme : int + public enum HttpScheme { + Unknown = -1, Http = 0, Https = 1, - Unknown = -1, } - public enum HttpVersion : sbyte { + Unknown = -1, Http10 = 0, Http11 = 1, Http2 = 2, Http3 = 3, - Unknown = -1, } - public struct HttpVersionAndMethod { - // Stub generator skipped constructor public HttpVersionAndMethod(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod method, int methodEnd) => throw null; public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod Method { get => throw null; } public int MethodEnd { get => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion Version { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion Version { get => throw null; set { } } } - public interface IHttpHeadersHandler { - void OnHeader(System.ReadOnlySpan name, System.ReadOnlySpan value); + void OnHeader(System.ReadOnlySpan name, System.ReadOnlySpan value); void OnHeadersComplete(bool endStream); void OnStaticIndexedHeader(int index); - void OnStaticIndexedHeader(int index, System.ReadOnlySpan value); + void OnStaticIndexedHeader(int index, System.ReadOnlySpan value); } - - internal interface IHttpParser where TRequestHandler : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpRequestLineHandler - { - } - public interface IHttpRequestLineHandler { - void OnStartLine(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersionAndMethod versionAndMethod, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.TargetOffsetPathLength targetPath, System.Span startLine); + void OnStartLine(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersionAndMethod versionAndMethod, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.TargetOffsetPathLength targetPath, System.Span startLine); } - - internal enum RequestRejectionReason : int - { - } - public struct TargetOffsetPathLength { + public TargetOffsetPathLength(int offset, int length, bool isEncoded) => throw null; public bool IsEncoded { get => throw null; } public int Length { get => throw null; } public int Offset { get => throw null; } - // Stub generator skipped constructor - public TargetOffsetPathLength(int offset, int length, bool isEncoded) => throw null; } - } } + public class KestrelServer : Microsoft.AspNetCore.Hosting.Server.IServer, System.IDisposable + { + public KestrelServer(Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.Connections.IConnectionListenerFactory transportFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public void Dispose() => throw null; + public Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get => throw null; } + public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions Options { get => throw null; } + public System.Threading.Tasks.Task StartAsync(Microsoft.AspNetCore.Hosting.Server.IHttpApplication application, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) => throw null; + } + public class KestrelServerLimits + { + public KestrelServerLimits() => throw null; + public Microsoft.AspNetCore.Server.Kestrel.Core.Http2Limits Http2 { get => throw null; } + public Microsoft.AspNetCore.Server.Kestrel.Core.Http3Limits Http3 { get => throw null; } + public System.TimeSpan KeepAliveTimeout { get => throw null; set { } } + public long? MaxConcurrentConnections { get => throw null; set { } } + public long? MaxConcurrentUpgradedConnections { get => throw null; set { } } + public long? MaxRequestBodySize { get => throw null; set { } } + public long? MaxRequestBufferSize { get => throw null; set { } } + public int MaxRequestHeaderCount { get => throw null; set { } } + public int MaxRequestHeadersTotalSize { get => throw null; set { } } + public int MaxRequestLineSize { get => throw null; set { } } + public long? MaxResponseBufferSize { get => throw null; set { } } + public Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate MinRequestBodyDataRate { get => throw null; set { } } + public Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate MinResponseDataRate { get => throw null; set { } } + public System.TimeSpan RequestHeadersTimeout { get => throw null; set { } } + } + public class KestrelServerOptions + { + public bool AddServerHeader { get => throw null; set { } } + public bool AllowAlternateSchemes { get => throw null; set { } } + public bool AllowResponseHeaderCompression { get => throw null; set { } } + public bool AllowSynchronousIO { get => throw null; set { } } + public System.IServiceProvider ApplicationServices { get => throw null; set { } } + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader ConfigurationLoader { get => throw null; set { } } + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Configure() => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Configure(Microsoft.Extensions.Configuration.IConfiguration config) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Configure(Microsoft.Extensions.Configuration.IConfiguration config, bool reloadOnChange) => throw null; + public void ConfigureEndpointDefaults(System.Action configureOptions) => throw null; + public void ConfigureHttpsDefaults(System.Action configureOptions) => throw null; + public KestrelServerOptions() => throw null; + public bool DisableStringReuse { get => throw null; set { } } + public bool EnableAltSvc { get => throw null; set { } } + public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerLimits Limits { get => throw null; } + public void Listen(System.Net.IPAddress address, int port) => throw null; + public void Listen(System.Net.IPAddress address, int port, System.Action configure) => throw null; + public void Listen(System.Net.IPEndPoint endPoint) => throw null; + public void Listen(System.Net.EndPoint endPoint) => throw null; + public void Listen(System.Net.IPEndPoint endPoint, System.Action configure) => throw null; + public void Listen(System.Net.EndPoint endPoint, System.Action configure) => throw null; + public void ListenAnyIP(int port) => throw null; + public void ListenAnyIP(int port, System.Action configure) => throw null; + public void ListenHandle(ulong handle) => throw null; + public void ListenHandle(ulong handle, System.Action configure) => throw null; + public void ListenLocalhost(int port) => throw null; + public void ListenLocalhost(int port, System.Action configure) => throw null; + public void ListenUnixSocket(string socketPath) => throw null; + public void ListenUnixSocket(string socketPath, System.Action configure) => throw null; + public System.Func RequestHeaderEncodingSelector { get => throw null; set { } } + public System.Func ResponseHeaderEncodingSelector { get => throw null; set { } } + } + public class ListenOptions : Microsoft.AspNetCore.Connections.IConnectionBuilder, Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder + { + public System.IServiceProvider ApplicationServices { get => throw null; } + public Microsoft.AspNetCore.Connections.ConnectionDelegate Build() => throw null; + Microsoft.AspNetCore.Connections.MultiplexedConnectionDelegate Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder.Build() => throw null; + public bool DisableAltSvcHeader { get => throw null; set { } } + public System.Net.EndPoint EndPoint { get => throw null; } + public ulong FileHandle { get => throw null; } + public System.Net.IPEndPoint IPEndPoint { get => throw null; } + public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions KestrelServerOptions { get => throw null; } + public Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols Protocols { get => throw null; set { } } + public string SocketPath { get => throw null; } + public override string ToString() => throw null; + public Microsoft.AspNetCore.Connections.IConnectionBuilder Use(System.Func middleware) => throw null; + Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder.Use(System.Func middleware) => throw null; + } + public class MinDataRate + { + public double BytesPerSecond { get => throw null; } + public MinDataRate(double bytesPerSecond, System.TimeSpan gracePeriod) => throw null; + public System.TimeSpan GracePeriod { get => throw null; } + public override string ToString() => throw null; + } + } + public class EndpointConfiguration + { + public Microsoft.Extensions.Configuration.IConfigurationSection ConfigSection { get => throw null; } + public Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionAdapterOptions HttpsOptions { get => throw null; } + public bool IsHttps { get => throw null; } + public Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions ListenOptions { get => throw null; } } namespace Https { @@ -326,49 +266,63 @@ namespace Microsoft { public static System.Security.Cryptography.X509Certificates.X509Certificate2 LoadFromStoreCert(string subject, string storeName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, bool allowInvalid) => throw null; } - - public enum ClientCertificateMode : int + public enum ClientCertificateMode { - AllowCertificate = 1, - DelayCertificate = 3, NoCertificate = 0, + AllowCertificate = 1, RequireCertificate = 2, + DelayCertificate = 3, } - public class HttpsConnectionAdapterOptions { public void AllowAnyClientCertificate() => throw null; - public bool CheckCertificateRevocation { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Server.Kestrel.Https.ClientCertificateMode ClientCertificateMode { get => throw null; set => throw null; } - public System.Func ClientCertificateValidation { get => throw null; set => throw null; } - public System.TimeSpan HandshakeTimeout { get => throw null; set => throw null; } + public bool CheckCertificateRevocation { get => throw null; set { } } + public Microsoft.AspNetCore.Server.Kestrel.Https.ClientCertificateMode ClientCertificateMode { get => throw null; set { } } + public System.Func ClientCertificateValidation { get => throw null; set { } } public HttpsConnectionAdapterOptions() => throw null; - public System.Action OnAuthenticate { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509Certificate2 ServerCertificate { get => throw null; set => throw null; } - public System.Security.Cryptography.X509Certificates.X509Certificate2Collection ServerCertificateChain { get => throw null; set => throw null; } - public System.Func ServerCertificateSelector { get => throw null; set => throw null; } - public System.Security.Authentication.SslProtocols SslProtocols { get => throw null; set => throw null; } + public System.TimeSpan HandshakeTimeout { get => throw null; set { } } + public System.Action OnAuthenticate { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509Certificate2 ServerCertificate { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509Certificate2Collection ServerCertificateChain { get => throw null; set { } } + public System.Func ServerCertificateSelector { get => throw null; set { } } + public System.Security.Authentication.SslProtocols SslProtocols { get => throw null; set { } } } - public class TlsHandshakeCallbackContext { - public bool AllowDelayedClientCertificateNegotation { get => throw null; set => throw null; } - public System.Threading.CancellationToken CancellationToken { get => throw null; set => throw null; } - public System.Net.Security.SslClientHelloInfo ClientHelloInfo { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Connections.ConnectionContext Connection { get => throw null; set => throw null; } - public System.Net.Security.SslStream SslStream { get => throw null; set => throw null; } - public object State { get => throw null; set => throw null; } + public bool AllowDelayedClientCertificateNegotation { get => throw null; set { } } + public System.Threading.CancellationToken CancellationToken { get => throw null; } + public System.Net.Security.SslClientHelloInfo ClientHelloInfo { get => throw null; } + public Microsoft.AspNetCore.Connections.ConnectionContext Connection { get => throw null; } public TlsHandshakeCallbackContext() => throw null; + public System.Net.Security.SslStream SslStream { get => throw null; } + public object State { get => throw null; } } - public class TlsHandshakeCallbackOptions { - public System.TimeSpan HandshakeTimeout { get => throw null; set => throw null; } - public System.Func> OnConnection { get => throw null; set => throw null; } - public object OnConnectionState { get => throw null; set => throw null; } public TlsHandshakeCallbackOptions() => throw null; + public System.TimeSpan HandshakeTimeout { get => throw null; set { } } + public System.Func> OnConnection { get => throw null; set { } } + public object OnConnectionState { get => throw null; set { } } } - + } + public class KestrelConfigurationLoader + { + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader AnyIPEndpoint(int port) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader AnyIPEndpoint(int port, System.Action configure) => throw null; + public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; } + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Endpoint(string name, System.Action configureOptions) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Endpoint(System.Net.IPAddress address, int port) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Endpoint(System.Net.IPAddress address, int port, System.Action configure) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Endpoint(System.Net.IPEndPoint endPoint) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Endpoint(System.Net.IPEndPoint endPoint, System.Action configure) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader HandleEndpoint(ulong handle) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader HandleEndpoint(ulong handle, System.Action configure) => throw null; + public void Load() => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader LocalhostEndpoint(int port) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader LocalhostEndpoint(int port, System.Action configure) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions Options { get => throw null; } + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader UnixSocketEndpoint(string socketPath) => throw null; + public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader UnixSocketEndpoint(string socketPath, System.Action configure) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.cs index d5561036f80..501a8a12ae0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.cs @@ -1,18 +1,16 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Server.Kestrel.Transport.Quic, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Hosting { - public static class WebHostBuilderQuicExtensions + public static partial class WebHostBuilderQuicExtensions { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseQuic(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) => throw null; public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseQuic(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureOptions) => throw null; } - } namespace Server { @@ -22,18 +20,17 @@ namespace Microsoft { namespace Quic { - public class QuicTransportOptions + public sealed class QuicTransportOptions { - public int Backlog { get => throw null; set => throw null; } - public System.Int64 DefaultCloseErrorCode { get => throw null; set => throw null; } - public System.Int64 DefaultStreamErrorCode { get => throw null; set => throw null; } - public int MaxBidirectionalStreamCount { get => throw null; set => throw null; } - public System.Int64? MaxReadBufferSize { get => throw null; set => throw null; } - public int MaxUnidirectionalStreamCount { get => throw null; set => throw null; } - public System.Int64? MaxWriteBufferSize { get => throw null; set => throw null; } + public int Backlog { get => throw null; set { } } public QuicTransportOptions() => throw null; + public long DefaultCloseErrorCode { get => throw null; set { } } + public long DefaultStreamErrorCode { get => throw null; set { } } + public int MaxBidirectionalStreamCount { get => throw null; set { } } + public long? MaxReadBufferSize { get => throw null; set { } } + public int MaxUnidirectionalStreamCount { get => throw null; set { } } + public long? MaxWriteBufferSize { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.cs index 7ad604b14b3..692fb263b71 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.cs @@ -1,18 +1,16 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Hosting { - public static class WebHostBuilderSocketExtensions + public static partial class WebHostBuilderSocketExtensions { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSockets(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) => throw null; public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSockets(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureOptions) => throw null; } - } namespace Server { @@ -22,43 +20,39 @@ namespace Microsoft { namespace Sockets { - public class SocketConnectionContextFactory : System.IDisposable + public sealed class SocketConnectionContextFactory : System.IDisposable { public Microsoft.AspNetCore.Connections.ConnectionContext Create(System.Net.Sockets.Socket socket) => throw null; - public void Dispose() => throw null; public SocketConnectionContextFactory(Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionFactoryOptions options, Microsoft.Extensions.Logging.ILogger logger) => throw null; + public void Dispose() => throw null; } - public class SocketConnectionFactoryOptions { - public int IOQueueCount { get => throw null; set => throw null; } - public System.Int64? MaxReadBufferSize { get => throw null; set => throw null; } - public System.Int64? MaxWriteBufferSize { get => throw null; set => throw null; } public SocketConnectionFactoryOptions() => throw null; - public bool UnsafePreferInlineScheduling { get => throw null; set => throw null; } - public bool WaitForDataBeforeAllocatingBuffer { get => throw null; set => throw null; } + public int IOQueueCount { get => throw null; set { } } + public long? MaxReadBufferSize { get => throw null; set { } } + public long? MaxWriteBufferSize { get => throw null; set { } } + public bool UnsafePreferInlineScheduling { get => throw null; set { } } + public bool WaitForDataBeforeAllocatingBuffer { get => throw null; set { } } } - - public class SocketTransportFactory : Microsoft.AspNetCore.Connections.IConnectionListenerFactory + public sealed class SocketTransportFactory : Microsoft.AspNetCore.Connections.IConnectionListenerFactory { public System.Threading.Tasks.ValueTask BindAsync(System.Net.EndPoint endpoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public SocketTransportFactory(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public class SocketTransportOptions { - public int Backlog { get => throw null; set => throw null; } - public System.Func CreateBoundListenSocket { get => throw null; set => throw null; } + public int Backlog { get => throw null; set { } } + public System.Func CreateBoundListenSocket { get => throw null; set { } } public static System.Net.Sockets.Socket CreateDefaultBoundListenSocket(System.Net.EndPoint endpoint) => throw null; - public int IOQueueCount { get => throw null; set => throw null; } - public System.Int64? MaxReadBufferSize { get => throw null; set => throw null; } - public System.Int64? MaxWriteBufferSize { get => throw null; set => throw null; } - public bool NoDelay { get => throw null; set => throw null; } public SocketTransportOptions() => throw null; - public bool UnsafePreferInlineScheduling { get => throw null; set => throw null; } - public bool WaitForDataBeforeAllocatingBuffer { get => throw null; set => throw null; } + public int IOQueueCount { get => throw null; set { } } + public long? MaxReadBufferSize { get => throw null; set { } } + public long? MaxWriteBufferSize { get => throw null; set { } } + public bool NoDelay { get => throw null; set { } } + public bool UnsafePreferInlineScheduling { get => throw null; set { } } + public bool WaitForDataBeforeAllocatingBuffer { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.cs index c823cee8ba8..eebc2225fc2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Server.Kestrel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Hosting { - public static class WebHostBuilderKestrelExtensions + public static partial class WebHostBuilderKestrelExtensions { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureKestrel(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action options) => throw null; public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureKestrel(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureOptions) => throw null; @@ -15,7 +14,6 @@ namespace Microsoft public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseKestrel(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action options) => throw null; public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseKestrel(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Session.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Session.cs index 28e8d10f164..31fd3bc742b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Session.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Session.cs @@ -1,26 +1,23 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.Session, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class SessionMiddlewareExtensions + public static partial class SessionMiddlewareExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseSession(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseSession(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.SessionOptions options) => throw null; } - public class SessionOptions { - public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set => throw null; } - public System.TimeSpan IOTimeout { get => throw null; set => throw null; } - public System.TimeSpan IdleTimeout { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set { } } public SessionOptions() => throw null; + public System.TimeSpan IdleTimeout { get => throw null; set { } } + public System.TimeSpan IOTimeout { get => throw null; set { } } } - } namespace Session { @@ -34,51 +31,44 @@ namespace Microsoft public System.Collections.Generic.IEnumerable Keys { get => throw null; } public System.Threading.Tasks.Task LoadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public void Remove(string key) => throw null; - public void Set(string key, System.Byte[] value) => throw null; - public bool TryGetValue(string key, out System.Byte[] value) => throw null; + public void Set(string key, byte[] value) => throw null; + public bool TryGetValue(string key, out byte[] value) => throw null; } - public class DistributedSessionStore : Microsoft.AspNetCore.Session.ISessionStore { public Microsoft.AspNetCore.Http.ISession Create(string sessionKey, System.TimeSpan idleTimeout, System.TimeSpan ioTimeout, System.Func tryEstablishSession, bool isNewSessionKey) => throw null; public DistributedSessionStore(Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public interface ISessionStore { Microsoft.AspNetCore.Http.ISession Create(string sessionKey, System.TimeSpan idleTimeout, System.TimeSpan ioTimeout, System.Func tryEstablishSession, bool isNewSessionKey); } - public static class SessionDefaults { public static string CookieName; public static string CookiePath; } - public class SessionFeature : Microsoft.AspNetCore.Http.Features.ISessionFeature { - public Microsoft.AspNetCore.Http.ISession Session { get => throw null; set => throw null; } public SessionFeature() => throw null; + public Microsoft.AspNetCore.Http.ISession Session { get => throw null; set { } } } - public class SessionMiddleware { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public SessionMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider, Microsoft.AspNetCore.Session.ISessionStore sessionStore, Microsoft.Extensions.Options.IOptions options) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - } } namespace Extensions { namespace DependencyInjection { - public static class SessionServiceCollectionExtensions + public static partial class SessionServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSession(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSession(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs index 3cd6eb28f50..d008cbd0a90 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.SignalR.Common, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -10,31 +9,27 @@ namespace Microsoft public class HubException : System.Exception { public HubException() => throw null; - public HubException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public HubException(string message) => throw null; public HubException(string message, System.Exception innerException) => throw null; + public HubException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - public interface IInvocationBinder { System.Collections.Generic.IReadOnlyList GetParameterTypes(string methodName); System.Type GetReturnType(string invocationId); System.Type GetStreamItemType(string streamId); - string GetTarget(System.ReadOnlySpan utf8Bytes) => throw null; + virtual string GetTarget(System.ReadOnlySpan utf8Bytes) => throw null; } - public interface ISignalRBuilder { Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - namespace Protocol { public class CancelInvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage { public CancelInvocationMessage(string invocationId) : base(default(string)) => throw null; } - public class CloseMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public bool AllowReconnect { get => throw null; } @@ -43,7 +38,6 @@ namespace Microsoft public static Microsoft.AspNetCore.SignalR.Protocol.CloseMessage Empty; public string Error { get => throw null; } } - public class CompletionMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage { public CompletionMessage(string invocationId, string error, object result, bool hasResult) : base(default(string)) => throw null; @@ -55,85 +49,74 @@ namespace Microsoft public static Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage WithError(string invocationId, string error) => throw null; public static Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage WithResult(string invocationId, object payload) => throw null; } - public static class HandshakeProtocol { - public static System.ReadOnlySpan GetSuccessfulHandshake(Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol) => throw null; - public static bool TryParseRequestMessage(ref System.Buffers.ReadOnlySequence buffer, out Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage requestMessage) => throw null; - public static bool TryParseResponseMessage(ref System.Buffers.ReadOnlySequence buffer, out Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage responseMessage) => throw null; - public static void WriteRequestMessage(Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage requestMessage, System.Buffers.IBufferWriter output) => throw null; - public static void WriteResponseMessage(Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage responseMessage, System.Buffers.IBufferWriter output) => throw null; + public static System.ReadOnlySpan GetSuccessfulHandshake(Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol) => throw null; + public static bool TryParseRequestMessage(ref System.Buffers.ReadOnlySequence buffer, out Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage requestMessage) => throw null; + public static bool TryParseResponseMessage(ref System.Buffers.ReadOnlySequence buffer, out Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage responseMessage) => throw null; + public static void WriteRequestMessage(Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage requestMessage, System.Buffers.IBufferWriter output) => throw null; + public static void WriteResponseMessage(Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage responseMessage, System.Buffers.IBufferWriter output) => throw null; } - public class HandshakeRequestMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public HandshakeRequestMessage(string protocol, int version) => throw null; public string Protocol { get => throw null; } public int Version { get => throw null; } } - public class HandshakeResponseMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { + public HandshakeResponseMessage(string error) => throw null; public static Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage Empty; public string Error { get => throw null; } - public HandshakeResponseMessage(string error) => throw null; } - public abstract class HubInvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { - public System.Collections.Generic.IDictionary Headers { get => throw null; set => throw null; } protected HubInvocationMessage(string invocationId) => throw null; + public System.Collections.Generic.IDictionary Headers { get => throw null; set { } } public string InvocationId { get => throw null; } } - public abstract class HubMessage { protected HubMessage() => throw null; } - public abstract class HubMethodInvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage { public object[] Arguments { get => throw null; } - protected HubMethodInvocationMessage(string invocationId, string target, object[] arguments) : base(default(string)) => throw null; protected HubMethodInvocationMessage(string invocationId, string target, object[] arguments, string[] streamIds) : base(default(string)) => throw null; + protected HubMethodInvocationMessage(string invocationId, string target, object[] arguments) : base(default(string)) => throw null; public string[] StreamIds { get => throw null; } public string Target { get => throw null; } } - public static class HubProtocolConstants { - public const int CancelInvocationMessageType = default; - public const int CloseMessageType = default; - public const int CompletionMessageType = default; - public const int InvocationMessageType = default; - public const int PingMessageType = default; - public const int StreamInvocationMessageType = default; - public const int StreamItemMessageType = default; + public static int CancelInvocationMessageType; + public static int CloseMessageType; + public static int CompletionMessageType; + public static int InvocationMessageType; + public static int PingMessageType; + public static int StreamInvocationMessageType; + public static int StreamItemMessageType; } - - public static class HubProtocolExtensions + public static partial class HubProtocolExtensions { - public static System.Byte[] GetMessageBytes(this Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol hubProtocol, Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) => throw null; + public static byte[] GetMessageBytes(this Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol hubProtocol, Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) => throw null; } - public interface IHubProtocol { - System.ReadOnlyMemory GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message); + System.ReadOnlyMemory GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message); bool IsVersionSupported(int version); string Name { get; } Microsoft.AspNetCore.Connections.TransferFormat TransferFormat { get; } - bool TryParseMessage(ref System.Buffers.ReadOnlySequence input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message); + bool TryParseMessage(ref System.Buffers.ReadOnlySequence input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message); int Version { get; } - void WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter output); + void WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter output); } - public class InvocationBindingFailureMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage { public System.Runtime.ExceptionServices.ExceptionDispatchInfo BindingFailure { get => throw null; } public InvocationBindingFailureMessage(string invocationId, string target, System.Runtime.ExceptionServices.ExceptionDispatchInfo bindingFailure) : base(default(string)) => throw null; public string Target { get => throw null; } } - public class InvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage { public InvocationMessage(string target, object[] arguments) : base(default(string), default(string), default(object[])) => throw null; @@ -141,39 +124,33 @@ namespace Microsoft public InvocationMessage(string invocationId, string target, object[] arguments, string[] streamIds) : base(default(string), default(string), default(object[])) => throw null; public override string ToString() => throw null; } - public class PingMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public static Microsoft.AspNetCore.SignalR.Protocol.PingMessage Instance; } - - public class RawResult + public sealed class RawResult { - public RawResult(System.Buffers.ReadOnlySequence rawBytes) => throw null; - public System.Buffers.ReadOnlySequence RawSerializedData { get => throw null; } + public RawResult(System.Buffers.ReadOnlySequence rawBytes) => throw null; + public System.Buffers.ReadOnlySequence RawSerializedData { get => throw null; } } - public class StreamBindingFailureMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public System.Runtime.ExceptionServices.ExceptionDispatchInfo BindingFailure { get => throw null; } - public string Id { get => throw null; } public StreamBindingFailureMessage(string id, System.Runtime.ExceptionServices.ExceptionDispatchInfo bindingFailure) => throw null; + public string Id { get => throw null; } } - public class StreamInvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage { public StreamInvocationMessage(string invocationId, string target, object[] arguments) : base(default(string), default(string), default(object[])) => throw null; public StreamInvocationMessage(string invocationId, string target, object[] arguments, string[] streamIds) : base(default(string), default(string), default(object[])) => throw null; public override string ToString() => throw null; } - public class StreamItemMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage { - public object Item { get => throw null; set => throw null; } public StreamItemMessage(string invocationId, object item) : base(default(string)) => throw null; + public object Item { get => throw null; set { } } public override string ToString() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Core.cs index 2858ce517d6..de43a674da1 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Core.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.SignalR.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace SignalR { - public static class ClientProxyExtensions + public static partial class ClientProxyExtensions { public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.ISingleClientProxy clientProxy, string method, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task InvokeAsync(this Microsoft.AspNetCore.SignalR.ISingleClientProxy clientProxy, string method, object arg1, System.Threading.CancellationToken cancellationToken) => throw null; @@ -32,7 +31,6 @@ namespace Microsoft public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - public class DefaultHubLifetimeManager : Microsoft.AspNetCore.SignalR.HubLifetimeManager where THub : Microsoft.AspNetCore.SignalR.Hub { public override System.Threading.Tasks.Task AddToGroupAsync(string connectionId, string groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; @@ -53,19 +51,16 @@ namespace Microsoft public override System.Threading.Tasks.Task SetConnectionResultAsync(string connectionId, Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage result) => throw null; public override bool TryGetReturnType(string invocationId, out System.Type type) => throw null; } - public class DefaultUserIdProvider : Microsoft.AspNetCore.SignalR.IUserIdProvider { public DefaultUserIdProvider() => throw null; public virtual string GetUserId(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) => throw null; } - public abstract class DynamicHub : Microsoft.AspNetCore.SignalR.Hub { - public Microsoft.AspNetCore.SignalR.DynamicHubClients Clients { get => throw null; set => throw null; } + public Microsoft.AspNetCore.SignalR.DynamicHubClients Clients { get => throw null; set { } } protected DynamicHub() => throw null; } - public class DynamicHubClients { public dynamic All { get => throw null; } @@ -82,40 +77,35 @@ namespace Microsoft public dynamic User(string userId) => throw null; public dynamic Users(System.Collections.Generic.IReadOnlyList userIds) => throw null; } - public abstract class Hub : System.IDisposable { - public Microsoft.AspNetCore.SignalR.IHubCallerClients Clients { get => throw null; set => throw null; } - public Microsoft.AspNetCore.SignalR.HubCallerContext Context { get => throw null; set => throw null; } - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public Microsoft.AspNetCore.SignalR.IGroupManager Groups { get => throw null; set => throw null; } + public Microsoft.AspNetCore.SignalR.IHubCallerClients Clients { get => throw null; set { } } + public Microsoft.AspNetCore.SignalR.HubCallerContext Context { get => throw null; set { } } protected Hub() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public void Dispose() => throw null; + public Microsoft.AspNetCore.SignalR.IGroupManager Groups { get => throw null; set { } } public virtual System.Threading.Tasks.Task OnConnectedAsync() => throw null; public virtual System.Threading.Tasks.Task OnDisconnectedAsync(System.Exception exception) => throw null; } - public abstract class Hub : Microsoft.AspNetCore.SignalR.Hub where T : class { - public Microsoft.AspNetCore.SignalR.IHubCallerClients Clients { get => throw null; set => throw null; } + public Microsoft.AspNetCore.SignalR.IHubCallerClients Clients { get => throw null; set { } } protected Hub() => throw null; } - public abstract class HubCallerContext { public abstract void Abort(); public abstract System.Threading.CancellationToken ConnectionAborted { get; } public abstract string ConnectionId { get; } - public abstract Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get; } protected HubCallerContext() => throw null; + public abstract Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get; } public abstract System.Collections.Generic.IDictionary Items { get; } public abstract System.Security.Claims.ClaimsPrincipal User { get; } public abstract string UserIdentifier { get; } } - - public static class HubClientsExtensions + public static partial class HubClientsExtensions { - public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, System.Collections.Generic.IEnumerable excludedConnectionIds) => throw null; public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1) => throw null; public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1, string excludedConnectionId2) => throw null; public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3) => throw null; @@ -124,7 +114,7 @@ namespace Microsoft public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4, string excludedConnectionId5, string excludedConnectionId6) => throw null; public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4, string excludedConnectionId5, string excludedConnectionId6, string excludedConnectionId7) => throw null; public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4, string excludedConnectionId5, string excludedConnectionId6, string excludedConnectionId7, string excludedConnectionId8) => throw null; - public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, System.Collections.Generic.IEnumerable connectionIds) => throw null; + public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, System.Collections.Generic.IEnumerable excludedConnectionIds) => throw null; public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1) => throw null; public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1, string connection2) => throw null; public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1, string connection2, string connection3) => throw null; @@ -133,7 +123,7 @@ namespace Microsoft public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1, string connection2, string connection3, string connection4, string connection5, string connection6) => throw null; public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1, string connection2, string connection3, string connection4, string connection5, string connection6, string connection7) => throw null; public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1, string connection2, string connection3, string connection4, string connection5, string connection6, string connection7, string connection8) => throw null; - public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, System.Collections.Generic.IEnumerable excludedConnectionIds) => throw null; + public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, System.Collections.Generic.IEnumerable connectionIds) => throw null; public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1) => throw null; public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1, string excludedConnectionId2) => throw null; public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3) => throw null; @@ -142,7 +132,7 @@ namespace Microsoft public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4, string excludedConnectionId5, string excludedConnectionId6) => throw null; public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4, string excludedConnectionId5, string excludedConnectionId6, string excludedConnectionId7) => throw null; public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4, string excludedConnectionId5, string excludedConnectionId6, string excludedConnectionId7, string excludedConnectionId8) => throw null; - public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, System.Collections.Generic.IEnumerable groupNames) => throw null; + public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, System.Collections.Generic.IEnumerable excludedConnectionIds) => throw null; public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1) => throw null; public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1, string group2) => throw null; public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1, string group2, string group3) => throw null; @@ -151,7 +141,7 @@ namespace Microsoft public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1, string group2, string group3, string group4, string group5, string group6) => throw null; public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1, string group2, string group3, string group4, string group5, string group6, string group7) => throw null; public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1, string group2, string group3, string group4, string group5, string group6, string group7, string group8) => throw null; - public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, System.Collections.Generic.IEnumerable userIds) => throw null; + public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, System.Collections.Generic.IEnumerable groupNames) => throw null; public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1) => throw null; public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1, string user2) => throw null; public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1, string user2, string user3) => throw null; @@ -160,80 +150,71 @@ namespace Microsoft public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1, string user2, string user3, string user4, string user5, string user6) => throw null; public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1, string user2, string user3, string user4, string user5, string user6, string user7) => throw null; public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1, string user2, string user3, string user4, string user5, string user6, string user7, string user8) => throw null; + public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, System.Collections.Generic.IEnumerable userIds) => throw null; } - public class HubConnectionContext { public virtual void Abort() => throw null; public virtual System.Threading.CancellationToken ConnectionAborted { get => throw null; } public virtual string ConnectionId { get => throw null; } - public virtual Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get => throw null; } public HubConnectionContext(Microsoft.AspNetCore.Connections.ConnectionContext connectionContext, Microsoft.AspNetCore.SignalR.HubConnectionContextOptions contextOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public virtual Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get => throw null; } public virtual System.Collections.Generic.IDictionary Items { get => throw null; } - public virtual Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol Protocol { get => throw null; set => throw null; } + public virtual Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol Protocol { get => throw null; set { } } public virtual System.Security.Claims.ClaimsPrincipal User { get => throw null; } - public string UserIdentifier { get => throw null; set => throw null; } + public string UserIdentifier { get => throw null; set { } } public virtual System.Threading.Tasks.ValueTask WriteAsync(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.ValueTask WriteAsync(Microsoft.AspNetCore.SignalR.SerializedHubMessage message, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - public class HubConnectionContextOptions { - public System.TimeSpan ClientTimeoutInterval { get => throw null; set => throw null; } + public System.TimeSpan ClientTimeoutInterval { get => throw null; set { } } public HubConnectionContextOptions() => throw null; - public System.TimeSpan KeepAliveInterval { get => throw null; set => throw null; } - public int MaximumParallelInvocations { get => throw null; set => throw null; } - public System.Int64? MaximumReceiveMessageSize { get => throw null; set => throw null; } - public int StreamBufferCapacity { get => throw null; set => throw null; } + public System.TimeSpan KeepAliveInterval { get => throw null; set { } } + public int MaximumParallelInvocations { get => throw null; set { } } + public long? MaximumReceiveMessageSize { get => throw null; set { } } + public int StreamBufferCapacity { get => throw null; set { } } } - public class HubConnectionHandler : Microsoft.AspNetCore.Connections.ConnectionHandler where THub : Microsoft.AspNetCore.SignalR.Hub { public HubConnectionHandler(Microsoft.AspNetCore.SignalR.HubLifetimeManager lifetimeManager, Microsoft.AspNetCore.SignalR.IHubProtocolResolver protocolResolver, Microsoft.Extensions.Options.IOptions globalHubOptions, Microsoft.Extensions.Options.IOptions> hubOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.SignalR.IUserIdProvider userIdProvider, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory serviceScopeFactory) => throw null; public override System.Threading.Tasks.Task OnConnectedAsync(Microsoft.AspNetCore.Connections.ConnectionContext connection) => throw null; } - public class HubConnectionStore { + public void Add(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) => throw null; + public int Count { get => throw null; } + public HubConnectionStore() => throw null; public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { + public Enumerator(Microsoft.AspNetCore.SignalR.HubConnectionStore hubConnectionList) => throw null; public Microsoft.AspNetCore.SignalR.HubConnectionContext Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - // Stub generator skipped constructor - public Enumerator(Microsoft.AspNetCore.SignalR.HubConnectionStore hubConnectionList) => throw null; public bool MoveNext() => throw null; public void Reset() => throw null; } - - - public void Add(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) => throw null; - public int Count { get => throw null; } public Microsoft.AspNetCore.SignalR.HubConnectionStore.Enumerator GetEnumerator() => throw null; - public HubConnectionStore() => throw null; - public Microsoft.AspNetCore.SignalR.HubConnectionContext this[string connectionId] { get => throw null; } public void Remove(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) => throw null; + public Microsoft.AspNetCore.SignalR.HubConnectionContext this[string connectionId] { get => throw null; } } - public class HubInvocationContext { public Microsoft.AspNetCore.SignalR.HubCallerContext Context { get => throw null; } - public Microsoft.AspNetCore.SignalR.Hub Hub { get => throw null; } public HubInvocationContext(Microsoft.AspNetCore.SignalR.HubCallerContext context, System.IServiceProvider serviceProvider, Microsoft.AspNetCore.SignalR.Hub hub, System.Reflection.MethodInfo hubMethod, System.Collections.Generic.IReadOnlyList hubMethodArguments) => throw null; + public Microsoft.AspNetCore.SignalR.Hub Hub { get => throw null; } public System.Reflection.MethodInfo HubMethod { get => throw null; } public System.Collections.Generic.IReadOnlyList HubMethodArguments { get => throw null; } public string HubMethodName { get => throw null; } public System.IServiceProvider ServiceProvider { get => throw null; } } - - public class HubLifetimeContext + public sealed class HubLifetimeContext { public Microsoft.AspNetCore.SignalR.HubCallerContext Context { get => throw null; } - public Microsoft.AspNetCore.SignalR.Hub Hub { get => throw null; } public HubLifetimeContext(Microsoft.AspNetCore.SignalR.HubCallerContext context, System.IServiceProvider serviceProvider, Microsoft.AspNetCore.SignalR.Hub hub) => throw null; + public Microsoft.AspNetCore.SignalR.Hub Hub { get => throw null; } public System.IServiceProvider ServiceProvider { get => throw null; } } - public abstract class HubLifetimeManager where THub : Microsoft.AspNetCore.SignalR.Hub { public abstract System.Threading.Tasks.Task AddToGroupAsync(string connectionId, string groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); @@ -254,92 +235,78 @@ namespace Microsoft public virtual System.Threading.Tasks.Task SetConnectionResultAsync(string connectionId, Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage result) => throw null; public virtual bool TryGetReturnType(string invocationId, out System.Type type) => throw null; } - public class HubMetadata { public HubMetadata(System.Type hubType) => throw null; public System.Type HubType { get => throw null; } } - public class HubMethodNameAttribute : System.Attribute { public HubMethodNameAttribute(string name) => throw null; public string Name { get => throw null; } } - public class HubOptions { - public System.TimeSpan? ClientTimeoutInterval { get => throw null; set => throw null; } - public bool DisableImplicitFromServicesParameters { get => throw null; set => throw null; } - public bool? EnableDetailedErrors { get => throw null; set => throw null; } - public System.TimeSpan? HandshakeTimeout { get => throw null; set => throw null; } + public System.TimeSpan? ClientTimeoutInterval { get => throw null; set { } } public HubOptions() => throw null; - public System.TimeSpan? KeepAliveInterval { get => throw null; set => throw null; } - public int MaximumParallelInvocationsPerClient { get => throw null; set => throw null; } - public System.Int64? MaximumReceiveMessageSize { get => throw null; set => throw null; } - public int? StreamBufferCapacity { get => throw null; set => throw null; } - public System.Collections.Generic.IList SupportedProtocols { get => throw null; set => throw null; } + public bool DisableImplicitFromServicesParameters { get => throw null; set { } } + public bool? EnableDetailedErrors { get => throw null; set { } } + public System.TimeSpan? HandshakeTimeout { get => throw null; set { } } + public System.TimeSpan? KeepAliveInterval { get => throw null; set { } } + public int MaximumParallelInvocationsPerClient { get => throw null; set { } } + public long? MaximumReceiveMessageSize { get => throw null; set { } } + public int? StreamBufferCapacity { get => throw null; set { } } + public System.Collections.Generic.IList SupportedProtocols { get => throw null; set { } } } - public class HubOptions : Microsoft.AspNetCore.SignalR.HubOptions where THub : Microsoft.AspNetCore.SignalR.Hub { public HubOptions() => throw null; } - - public static class HubOptionsExtensions + public static partial class HubOptionsExtensions { public static void AddFilter(this Microsoft.AspNetCore.SignalR.HubOptions options, Microsoft.AspNetCore.SignalR.IHubFilter hubFilter) => throw null; - public static void AddFilter(this Microsoft.AspNetCore.SignalR.HubOptions options, System.Type filterType) => throw null; public static void AddFilter(this Microsoft.AspNetCore.SignalR.HubOptions options) where TFilter : Microsoft.AspNetCore.SignalR.IHubFilter => throw null; + public static void AddFilter(this Microsoft.AspNetCore.SignalR.HubOptions options, System.Type filterType) => throw null; } - public class HubOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions { public void Configure(Microsoft.AspNetCore.SignalR.HubOptions options) => throw null; public HubOptionsSetup(System.Collections.Generic.IEnumerable protocols) => throw null; } - public class HubOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions> where THub : Microsoft.AspNetCore.SignalR.Hub { public void Configure(Microsoft.AspNetCore.SignalR.HubOptions options) => throw null; public HubOptionsSetup(Microsoft.Extensions.Options.IOptions options) => throw null; } - public interface IClientProxy { System.Threading.Tasks.Task SendCoreAsync(string method, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - public interface IGroupManager { System.Threading.Tasks.Task AddToGroupAsync(string connectionId, string groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); System.Threading.Tasks.Task RemoveFromGroupAsync(string connectionId, string groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - public interface IHubActivator where THub : Microsoft.AspNetCore.SignalR.Hub { THub Create(); void Release(THub hub); } - public interface IHubCallerClients : Microsoft.AspNetCore.SignalR.IHubCallerClients, Microsoft.AspNetCore.SignalR.IHubClients { - Microsoft.AspNetCore.SignalR.ISingleClientProxy Caller { get => throw null; } - Microsoft.AspNetCore.SignalR.ISingleClientProxy Client(string connectionId) => throw null; + virtual Microsoft.AspNetCore.SignalR.ISingleClientProxy Caller { get => throw null; } + virtual Microsoft.AspNetCore.SignalR.ISingleClientProxy Client(string connectionId) => throw null; } - public interface IHubCallerClients : Microsoft.AspNetCore.SignalR.IHubClients { T Caller { get; } T Others { get; } T OthersInGroup(string groupName); } - public interface IHubClients : Microsoft.AspNetCore.SignalR.IHubClients { - Microsoft.AspNetCore.SignalR.ISingleClientProxy Client(string connectionId) => throw null; + virtual Microsoft.AspNetCore.SignalR.ISingleClientProxy Client(string connectionId) => throw null; } - public interface IHubClients { T All { get; } @@ -352,73 +319,60 @@ namespace Microsoft T User(string userId); T Users(System.Collections.Generic.IReadOnlyList userIds); } - public interface IHubContext { Microsoft.AspNetCore.SignalR.IHubClients Clients { get; } Microsoft.AspNetCore.SignalR.IGroupManager Groups { get; } } - - public interface IHubContext where T : class where THub : Microsoft.AspNetCore.SignalR.Hub - { - Microsoft.AspNetCore.SignalR.IHubClients Clients { get; } - Microsoft.AspNetCore.SignalR.IGroupManager Groups { get; } - } - public interface IHubContext where THub : Microsoft.AspNetCore.SignalR.Hub { Microsoft.AspNetCore.SignalR.IHubClients Clients { get; } Microsoft.AspNetCore.SignalR.IGroupManager Groups { get; } } - + public interface IHubContext where THub : Microsoft.AspNetCore.SignalR.Hub where T : class + { + Microsoft.AspNetCore.SignalR.IHubClients Clients { get; } + Microsoft.AspNetCore.SignalR.IGroupManager Groups { get; } + } public interface IHubFilter { - System.Threading.Tasks.ValueTask InvokeMethodAsync(Microsoft.AspNetCore.SignalR.HubInvocationContext invocationContext, System.Func> next) => throw null; - System.Threading.Tasks.Task OnConnectedAsync(Microsoft.AspNetCore.SignalR.HubLifetimeContext context, System.Func next) => throw null; - System.Threading.Tasks.Task OnDisconnectedAsync(Microsoft.AspNetCore.SignalR.HubLifetimeContext context, System.Exception exception, System.Func next) => throw null; + virtual System.Threading.Tasks.ValueTask InvokeMethodAsync(Microsoft.AspNetCore.SignalR.HubInvocationContext invocationContext, System.Func> next) => throw null; + virtual System.Threading.Tasks.Task OnConnectedAsync(Microsoft.AspNetCore.SignalR.HubLifetimeContext context, System.Func next) => throw null; + virtual System.Threading.Tasks.Task OnDisconnectedAsync(Microsoft.AspNetCore.SignalR.HubLifetimeContext context, System.Exception exception, System.Func next) => throw null; } - public interface IHubProtocolResolver { System.Collections.Generic.IReadOnlyList AllProtocols { get; } Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol GetProtocol(string protocolName, System.Collections.Generic.IReadOnlyList supportedProtocols); } - public interface ISignalRServerBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder { } - public interface ISingleClientProxy : Microsoft.AspNetCore.SignalR.IClientProxy { System.Threading.Tasks.Task InvokeCoreAsync(string method, object[] args, System.Threading.CancellationToken cancellationToken); } - public interface IUserIdProvider { string GetUserId(Microsoft.AspNetCore.SignalR.HubConnectionContext connection); } - public class SerializedHubMessage { - public System.ReadOnlyMemory GetSerializedMessage(Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol) => throw null; - public Microsoft.AspNetCore.SignalR.Protocol.HubMessage Message { get => throw null; } - public SerializedHubMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) => throw null; public SerializedHubMessage(System.Collections.Generic.IReadOnlyList messages) => throw null; + public SerializedHubMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) => throw null; + public System.ReadOnlyMemory GetSerializedMessage(Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol) => throw null; + public Microsoft.AspNetCore.SignalR.Protocol.HubMessage Message { get => throw null; } } - public struct SerializedMessage { + public SerializedMessage(string protocolName, System.ReadOnlyMemory serialized) => throw null; public string ProtocolName { get => throw null; } - public System.ReadOnlyMemory Serialized { get => throw null; } - // Stub generator skipped constructor - public SerializedMessage(string protocolName, System.ReadOnlyMemory serialized) => throw null; + public System.ReadOnlyMemory Serialized { get => throw null; } } - - public static class SignalRConnectionBuilderExtensions + public static partial class SignalRConnectionBuilderExtensions { public static Microsoft.AspNetCore.Connections.IConnectionBuilder UseHub(this Microsoft.AspNetCore.Connections.IConnectionBuilder connectionBuilder) where THub : Microsoft.AspNetCore.SignalR.Hub => throw null; } - } } namespace Extensions @@ -429,7 +383,6 @@ namespace Microsoft { public static Microsoft.AspNetCore.SignalR.ISignalRServerBuilder AddSignalRCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Protocols.Json.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Protocols.Json.cs index ff4830b57ee..a7366207437 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Protocols.Json.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Protocols.Json.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.SignalR.Protocols.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -10,24 +9,22 @@ namespace Microsoft public class JsonHubProtocolOptions { public JsonHubProtocolOptions() => throw null; - public System.Text.Json.JsonSerializerOptions PayloadSerializerOptions { get => throw null; set => throw null; } + public System.Text.Json.JsonSerializerOptions PayloadSerializerOptions { get => throw null; set { } } } - namespace Protocol { - public class JsonHubProtocol : Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol + public sealed class JsonHubProtocol : Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol { - public System.ReadOnlyMemory GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) => throw null; - public bool IsVersionSupported(int version) => throw null; public JsonHubProtocol() => throw null; public JsonHubProtocol(Microsoft.Extensions.Options.IOptions options) => throw null; + public System.ReadOnlyMemory GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) => throw null; + public bool IsVersionSupported(int version) => throw null; public string Name { get => throw null; } public Microsoft.AspNetCore.Connections.TransferFormat TransferFormat { get => throw null; } - public bool TryParseMessage(ref System.Buffers.ReadOnlySequence input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) => throw null; + public bool TryParseMessage(ref System.Buffers.ReadOnlySequence input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) => throw null; public int Version { get => throw null; } - public void WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter output) => throw null; + public void WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter output) => throw null; } - } } } @@ -35,12 +32,11 @@ namespace Microsoft { namespace DependencyInjection { - public static class JsonProtocolDependencyInjectionExtensions + public static partial class JsonProtocolDependencyInjectionExtensions { public static TBuilder AddJsonProtocol(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder => throw null; public static TBuilder AddJsonProtocol(this TBuilder builder, System.Action configure) where TBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.cs index 9eb2652e6dc..23935f02f58 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.cs @@ -1,37 +1,32 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.SignalR, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public class HubEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder + public sealed class HubEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { public void Add(System.Action convention) => throw null; public void Finally(System.Action finalConvention) => throw null; } - - public static class HubEndpointRouteBuilderExtensions + public static partial class HubEndpointRouteBuilderExtensions { public static Microsoft.AspNetCore.Builder.HubEndpointConventionBuilder MapHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern) where THub : Microsoft.AspNetCore.SignalR.Hub => throw null; public static Microsoft.AspNetCore.Builder.HubEndpointConventionBuilder MapHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Action configureOptions) where THub : Microsoft.AspNetCore.SignalR.Hub => throw null; } - public interface IHubEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { } - } namespace SignalR { - public static class GetHttpContextExtensions + public static partial class GetHttpContextExtensions { public static Microsoft.AspNetCore.Http.HttpContext GetHttpContext(this Microsoft.AspNetCore.SignalR.HubCallerContext connection) => throw null; public static Microsoft.AspNetCore.Http.HttpContext GetHttpContext(this Microsoft.AspNetCore.SignalR.HubConnectionContext connection) => throw null; } - } } namespace Extensions @@ -44,7 +39,6 @@ namespace Microsoft public static Microsoft.AspNetCore.SignalR.ISignalRServerBuilder AddSignalR(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.AspNetCore.SignalR.ISignalRServerBuilder AddSignalR(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.StaticFiles.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.StaticFiles.cs index 6e68ef66b36..8abfa95de4e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.StaticFiles.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.StaticFiles.cs @@ -1,84 +1,74 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.StaticFiles, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class DefaultFilesExtensions + public static partial class DefaultFilesExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDefaultFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDefaultFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DefaultFilesOptions options) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDefaultFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string requestPath) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDefaultFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DefaultFilesOptions options) => throw null; } - public class DefaultFilesOptions : Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase { - public System.Collections.Generic.IList DefaultFileNames { get => throw null; set => throw null; } public DefaultFilesOptions() : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => throw null; public DefaultFilesOptions(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => throw null; + public System.Collections.Generic.IList DefaultFileNames { get => throw null; set { } } } - - public static class DirectoryBrowserExtensions + public static partial class DirectoryBrowserExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDirectoryBrowser(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDirectoryBrowser(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DirectoryBrowserOptions options) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDirectoryBrowser(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string requestPath) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDirectoryBrowser(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DirectoryBrowserOptions options) => throw null; } - public class DirectoryBrowserOptions : Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase { public DirectoryBrowserOptions() : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => throw null; public DirectoryBrowserOptions(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => throw null; - public Microsoft.AspNetCore.StaticFiles.IDirectoryFormatter Formatter { get => throw null; set => throw null; } + public Microsoft.AspNetCore.StaticFiles.IDirectoryFormatter Formatter { get => throw null; set { } } } - - public static class FileServerExtensions + public static partial class FileServerExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseFileServer(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseFileServer(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.FileServerOptions options) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseFileServer(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, bool enableDirectoryBrowsing) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseFileServer(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string requestPath) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseFileServer(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.FileServerOptions options) => throw null; } - public class FileServerOptions : Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase { + public FileServerOptions() : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => throw null; public Microsoft.AspNetCore.Builder.DefaultFilesOptions DefaultFilesOptions { get => throw null; } public Microsoft.AspNetCore.Builder.DirectoryBrowserOptions DirectoryBrowserOptions { get => throw null; } - public bool EnableDefaultFiles { get => throw null; set => throw null; } - public bool EnableDirectoryBrowsing { get => throw null; set => throw null; } - public FileServerOptions() : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => throw null; + public bool EnableDefaultFiles { get => throw null; set { } } + public bool EnableDirectoryBrowsing { get => throw null; set { } } public Microsoft.AspNetCore.Builder.StaticFileOptions StaticFileOptions { get => throw null; } } - - public static class StaticFileExtensions + public static partial class StaticFileExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.StaticFileOptions options) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string requestPath) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.StaticFileOptions options) => throw null; } - public class StaticFileOptions : Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase { - public Microsoft.AspNetCore.StaticFiles.IContentTypeProvider ContentTypeProvider { get => throw null; set => throw null; } - public string DefaultContentType { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.Features.HttpsCompressionMode HttpsCompression { get => throw null; set => throw null; } - public System.Action OnPrepareResponse { get => throw null; set => throw null; } - public bool ServeUnknownFileTypes { get => throw null; set => throw null; } + public Microsoft.AspNetCore.StaticFiles.IContentTypeProvider ContentTypeProvider { get => throw null; set { } } public StaticFileOptions() : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => throw null; public StaticFileOptions(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => throw null; + public string DefaultContentType { get => throw null; set { } } + public Microsoft.AspNetCore.Http.Features.HttpsCompressionMode HttpsCompression { get => throw null; set { } } + public System.Action OnPrepareResponse { get => throw null; set { } } + public bool ServeUnknownFileTypes { get => throw null; set { } } } - - public static class StaticFilesEndpointRouteBuilderExtensions + public static partial class StaticFilesEndpointRouteBuilderExtensions { public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToFile(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string filePath) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToFile(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string filePath, Microsoft.AspNetCore.Builder.StaticFileOptions options) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToFile(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string filePath) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToFile(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string filePath, Microsoft.AspNetCore.Builder.StaticFileOptions options) => throw null; } - } namespace StaticFiles { @@ -87,14 +77,12 @@ namespace Microsoft public DefaultFilesMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnv, Microsoft.Extensions.Options.IOptions options) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class DirectoryBrowserMiddleware { - public DirectoryBrowserMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnv, System.Text.Encodings.Web.HtmlEncoder encoder, Microsoft.Extensions.Options.IOptions options) => throw null; public DirectoryBrowserMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnv, Microsoft.Extensions.Options.IOptions options) => throw null; + public DirectoryBrowserMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnv, System.Text.Encodings.Web.HtmlEncoder encoder, Microsoft.Extensions.Options.IOptions options) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class FileExtensionContentTypeProvider : Microsoft.AspNetCore.StaticFiles.IContentTypeProvider { public FileExtensionContentTypeProvider() => throw null; @@ -102,55 +90,47 @@ namespace Microsoft public System.Collections.Generic.IDictionary Mappings { get => throw null; } public bool TryGetContentType(string subpath, out string contentType) => throw null; } - public class HtmlDirectoryFormatter : Microsoft.AspNetCore.StaticFiles.IDirectoryFormatter { - public virtual System.Threading.Tasks.Task GenerateContentAsync(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IEnumerable contents) => throw null; public HtmlDirectoryFormatter(System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; + public virtual System.Threading.Tasks.Task GenerateContentAsync(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IEnumerable contents) => throw null; } - public interface IContentTypeProvider { bool TryGetContentType(string subpath, out string contentType); } - public interface IDirectoryFormatter { System.Threading.Tasks.Task GenerateContentAsync(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IEnumerable contents); } - - public class StaticFileMiddleware - { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; - public StaticFileMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnv, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - } - - public class StaticFileResponseContext - { - public Microsoft.AspNetCore.Http.HttpContext Context { get => throw null; } - public Microsoft.Extensions.FileProviders.IFileInfo File { get => throw null; } - public StaticFileResponseContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.Extensions.FileProviders.IFileInfo file) => throw null; - } - namespace Infrastructure { public class SharedOptions { - public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set => throw null; } - public bool RedirectToAppendTrailingSlash { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.PathString RequestPath { get => throw null; set => throw null; } public SharedOptions() => throw null; + public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set { } } + public bool RedirectToAppendTrailingSlash { get => throw null; set { } } + public Microsoft.AspNetCore.Http.PathString RequestPath { get => throw null; set { } } } - public abstract class SharedOptionsBase { - public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set => throw null; } - public bool RedirectToAppendTrailingSlash { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Http.PathString RequestPath { get => throw null; set => throw null; } - protected Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions SharedOptions { get => throw null; } protected SharedOptionsBase(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) => throw null; + public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set { } } + public bool RedirectToAppendTrailingSlash { get => throw null; set { } } + public Microsoft.AspNetCore.Http.PathString RequestPath { get => throw null; set { } } + protected Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions SharedOptions { get => throw null; } } - + } + public class StaticFileMiddleware + { + public StaticFileMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnv, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; + } + public class StaticFileResponseContext + { + public Microsoft.AspNetCore.Http.HttpContext Context { get => throw null; } + public StaticFileResponseContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.Extensions.FileProviders.IFileInfo file) => throw null; + public Microsoft.Extensions.FileProviders.IFileInfo File { get => throw null; } } } } @@ -158,11 +138,10 @@ namespace Microsoft { namespace DependencyInjection { - public static class DirectoryBrowserServiceExtensions + public static partial class DirectoryBrowserServiceExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDirectoryBrowser(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebSockets.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebSockets.cs index 72f1e6ca3ca..607b765eaf0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebSockets.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebSockets.cs @@ -1,48 +1,42 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.WebSockets, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { namespace Builder { - public static class WebSocketMiddlewareExtensions + public static partial class WebSocketMiddlewareExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWebSockets(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWebSockets(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.WebSocketOptions options) => throw null; } - public class WebSocketOptions { public System.Collections.Generic.IList AllowedOrigins { get => throw null; } - public System.TimeSpan KeepAliveInterval { get => throw null; set => throw null; } - public int ReceiveBufferSize { get => throw null; set => throw null; } public WebSocketOptions() => throw null; + public System.TimeSpan KeepAliveInterval { get => throw null; set { } } + public int ReceiveBufferSize { get => throw null; set { } } } - } namespace WebSockets { public class ExtendedWebSocketAcceptContext : Microsoft.AspNetCore.Http.WebSocketAcceptContext { public ExtendedWebSocketAcceptContext() => throw null; - public System.TimeSpan? KeepAliveInterval { get => throw null; set => throw null; } - public int? ReceiveBufferSize { get => throw null; set => throw null; } - public override string SubProtocol { get => throw null; set => throw null; } + public System.TimeSpan? KeepAliveInterval { get => throw null; set { } } + public int? ReceiveBufferSize { get => throw null; set { } } + public override string SubProtocol { get => throw null; set { } } } - public class WebSocketMiddleware { - public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public WebSocketMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - - public static class WebSocketsDependencyInjectionExtensions + public static partial class WebSocketsDependencyInjectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddWebSockets(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs index 8ffc0cbc62e..65605e9e4d9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore.WebUtilities, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,19 +8,18 @@ namespace Microsoft { public static class Base64UrlTextEncoder { - public static System.Byte[] Decode(string text) => throw null; - public static string Encode(System.Byte[] data) => throw null; + public static byte[] Decode(string text) => throw null; + public static string Encode(byte[] data) => throw null; } - public class BufferedReadStream : System.IO.Stream { - public System.ArraySegment BufferedData { get => throw null; } - public BufferedReadStream(System.IO.Stream inner, int bufferSize) => throw null; - public BufferedReadStream(System.IO.Stream inner, int bufferSize, System.Buffers.ArrayPool bytePool) => throw null; + public System.ArraySegment BufferedData { get => throw null; } public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanTimeout { get => throw null; } public override bool CanWrite { get => throw null; } + public BufferedReadStream(System.IO.Stream inner, int bufferSize) => throw null; + public BufferedReadStream(System.IO.Stream inner, int bufferSize, System.Buffers.ArrayPool bytePool) => throw null; protected override void Dispose(bool disposing) => throw null; public bool EnsureBuffered() => throw null; public bool EnsureBuffered(int minCount) => throw null; @@ -29,75 +27,72 @@ namespace Microsoft public System.Threading.Tasks.Task EnsureBufferedAsync(int minCount, System.Threading.CancellationToken cancellationToken) => throw null; public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 Length { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken) => throw null; + public override long Length { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken) => throw null; public string ReadLine(int lengthLimit) => throw null; public System.Threading.Tasks.Task ReadLineAsync(int lengthLimit, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken) => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; } - public class FileBufferingReadStream : System.IO.Stream { public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) => throw null; + public FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold) => throw null; + public FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold, long? bufferLimit, System.Func tempFileDirectoryAccessor) => throw null; + public FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold, long? bufferLimit, System.Func tempFileDirectoryAccessor, System.Buffers.ArrayPool bytePool) => throw null; + public FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold, long? bufferLimit, string tempFileDirectory) => throw null; + public FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold, long? bufferLimit, string tempFileDirectory, System.Buffers.ArrayPool bytePool) => throw null; protected override void Dispose(bool disposing) => throw null; public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold) => throw null; - public FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold, System.Int64? bufferLimit, System.Func tempFileDirectoryAccessor) => throw null; - public FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold, System.Int64? bufferLimit, System.Func tempFileDirectoryAccessor, System.Buffers.ArrayPool bytePool) => throw null; - public FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold, System.Int64? bufferLimit, string tempFileDirectory) => throw null; - public FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold, System.Int64? bufferLimit, string tempFileDirectory, System.Buffers.ArrayPool bytePool) => throw null; public override void Flush() => throw null; public bool InMemory { get => throw null; } - public override System.Int64 Length { get => throw null; } + public override long Length { get => throw null; } public int MemoryThreshold { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; + public override long Position { get => throw null; set { } } + public override int Read(System.Span buffer) => throw null; + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; public string TempFileName { get => throw null; } - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; } - - public class FileBufferingWriteStream : System.IO.Stream + public sealed class FileBufferingWriteStream : System.IO.Stream { public override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } + public FileBufferingWriteStream(int memoryThreshold = default(int), long? bufferLimit = default(long?), System.Func tempFileDirectoryAccessor = default(System.Func)) => throw null; protected override void Dispose(bool disposing) => throw null; public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public System.Threading.Tasks.Task DrainBufferAsync(System.IO.Pipelines.PipeWriter destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task DrainBufferAsync(System.IO.Stream destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public FileBufferingWriteStream(int memoryThreshold = default(int), System.Int64? bufferLimit = default(System.Int64?), System.Func tempFileDirectoryAccessor = default(System.Func)) => throw null; + public System.Threading.Tasks.Task DrainBufferAsync(System.IO.Pipelines.PipeWriter destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 Length { get => throw null; } + public override long Length { get => throw null; } public int MemoryThreshold { get => throw null; } - public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken) => throw null; + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - public class FileMultipartSection { public FileMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; @@ -107,7 +102,6 @@ namespace Microsoft public string Name { get => throw null; } public Microsoft.AspNetCore.WebUtilities.MultipartSection Section { get => throw null; } } - public class FormMultipartSection { public FormMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; @@ -117,185 +111,162 @@ namespace Microsoft public string Name { get => throw null; } public Microsoft.AspNetCore.WebUtilities.MultipartSection Section { get => throw null; } } - public class FormPipeReader { public FormPipeReader(System.IO.Pipelines.PipeReader pipeReader) => throw null; public FormPipeReader(System.IO.Pipelines.PipeReader pipeReader, System.Text.Encoding encoding) => throw null; - public int KeyLengthLimit { get => throw null; set => throw null; } + public int KeyLengthLimit { get => throw null; set { } } public System.Threading.Tasks.Task> ReadFormAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public int ValueCountLimit { get => throw null; set => throw null; } - public int ValueLengthLimit { get => throw null; set => throw null; } + public int ValueCountLimit { get => throw null; set { } } + public int ValueLengthLimit { get => throw null; set { } } } - public class FormReader : System.IDisposable { - public const int DefaultKeyLengthLimit = default; - public const int DefaultValueCountLimit = default; - public const int DefaultValueLengthLimit = default; - public void Dispose() => throw null; + public FormReader(string data) => throw null; + public FormReader(string data, System.Buffers.ArrayPool charPool) => throw null; public FormReader(System.IO.Stream stream) => throw null; public FormReader(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; - public FormReader(System.IO.Stream stream, System.Text.Encoding encoding, System.Buffers.ArrayPool charPool) => throw null; - public FormReader(string data) => throw null; - public FormReader(string data, System.Buffers.ArrayPool charPool) => throw null; - public int KeyLengthLimit { get => throw null; set => throw null; } + public FormReader(System.IO.Stream stream, System.Text.Encoding encoding, System.Buffers.ArrayPool charPool) => throw null; + public static int DefaultKeyLengthLimit; + public static int DefaultValueCountLimit; + public static int DefaultValueLengthLimit; + public void Dispose() => throw null; + public int KeyLengthLimit { get => throw null; set { } } public System.Collections.Generic.Dictionary ReadForm() => throw null; public System.Threading.Tasks.Task> ReadFormAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Collections.Generic.KeyValuePair? ReadNextPair() => throw null; public System.Threading.Tasks.Task?> ReadNextPairAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public int ValueCountLimit { get => throw null; set => throw null; } - public int ValueLengthLimit { get => throw null; set => throw null; } + public int ValueCountLimit { get => throw null; set { } } + public int ValueLengthLimit { get => throw null; set { } } } - public class HttpRequestStreamReader : System.IO.TextReader { - protected override void Dispose(bool disposing) => throw null; public HttpRequestStreamReader(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; public HttpRequestStreamReader(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize) => throw null; - public HttpRequestStreamReader(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize, System.Buffers.ArrayPool bytePool, System.Buffers.ArrayPool charPool) => throw null; + public HttpRequestStreamReader(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize, System.Buffers.ArrayPool bytePool, System.Buffers.ArrayPool charPool) => throw null; + protected override void Dispose(bool disposing) => throw null; public override int Peek() => throw null; public override int Read() => throw null; - public override int Read(System.Char[] buffer, int index, int count) => throw null; - public override int Read(System.Span buffer) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Char[] buffer, int index, int count) => throw null; - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int Read(char[] buffer, int index, int count) => throw null; + public override int Read(System.Span buffer) => throw null; + public override System.Threading.Tasks.Task ReadAsync(char[] buffer, int index, int count) => throw null; + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override string ReadLine() => throw null; public override System.Threading.Tasks.Task ReadLineAsync() => throw null; public override System.Threading.Tasks.Task ReadToEndAsync() => throw null; } - public class HttpResponseStreamWriter : System.IO.TextWriter { + public HttpResponseStreamWriter(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; + public HttpResponseStreamWriter(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize) => throw null; + public HttpResponseStreamWriter(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize, System.Buffers.ArrayPool bytePool, System.Buffers.ArrayPool charPool) => throw null; protected override void Dispose(bool disposing) => throw null; public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public override System.Text.Encoding Encoding { get => throw null; } public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync() => throw null; - public HttpResponseStreamWriter(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; - public HttpResponseStreamWriter(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize) => throw null; - public HttpResponseStreamWriter(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize, System.Buffers.ArrayPool bytePool, System.Buffers.ArrayPool charPool) => throw null; - public override void Write(System.Char[] values, int index, int count) => throw null; - public override void Write(System.ReadOnlySpan value) => throw null; - public override void Write(System.Char value) => throw null; + public override void Write(char value) => throw null; + public override void Write(char[] values, int index, int count) => throw null; + public override void Write(System.ReadOnlySpan value) => throw null; public override void Write(string value) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Char[] values, int index, int count) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.Char value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(char value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(char[] values, int index, int count) => throw null; public override System.Threading.Tasks.Task WriteAsync(string value) => throw null; - public override void WriteLine(System.ReadOnlySpan value) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.Char[] values, int index, int count) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.ReadOnlyMemory value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteLineAsync(System.Char value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.ReadOnlyMemory value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WriteLine(System.ReadOnlySpan value) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(System.ReadOnlyMemory value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(char[] values, int index, int count) => throw null; + public override System.Threading.Tasks.Task WriteLineAsync(char value) => throw null; public override System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; } - public struct KeyValueAccumulator { public void Append(string key, string value) => throw null; public System.Collections.Generic.Dictionary GetResults() => throw null; public bool HasValues { get => throw null; } public int KeyCount { get => throw null; } - // Stub generator skipped constructor public int ValueCount { get => throw null; } } - public class MultipartReader { - public System.Int64? BodyLengthLimit { get => throw null; set => throw null; } - public const int DefaultHeadersCountLimit = default; - public const int DefaultHeadersLengthLimit = default; - public int HeadersCountLimit { get => throw null; set => throw null; } - public int HeadersLengthLimit { get => throw null; set => throw null; } + public long? BodyLengthLimit { get => throw null; set { } } public MultipartReader(string boundary, System.IO.Stream stream) => throw null; public MultipartReader(string boundary, System.IO.Stream stream, int bufferSize) => throw null; + public static int DefaultHeadersCountLimit; + public static int DefaultHeadersLengthLimit; + public int HeadersCountLimit { get => throw null; set { } } + public int HeadersLengthLimit { get => throw null; set { } } public System.Threading.Tasks.Task ReadNextSectionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - public class MultipartSection { - public System.Int64? BaseStreamOffset { get => throw null; set => throw null; } - public System.IO.Stream Body { get => throw null; set => throw null; } + public long? BaseStreamOffset { get => throw null; set { } } + public System.IO.Stream Body { get => throw null; set { } } public string ContentDisposition { get => throw null; } public string ContentType { get => throw null; } - public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } public MultipartSection() => throw null; + public System.Collections.Generic.Dictionary Headers { get => throw null; set { } } } - - public static class MultipartSectionConverterExtensions + public static partial class MultipartSectionConverterExtensions { public static Microsoft.AspNetCore.WebUtilities.FileMultipartSection AsFileSection(this Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; public static Microsoft.AspNetCore.WebUtilities.FormMultipartSection AsFormDataSection(this Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; public static Microsoft.Net.Http.Headers.ContentDispositionHeaderValue GetContentDispositionHeader(this Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; } - - public static class MultipartSectionStreamExtensions + public static partial class MultipartSectionStreamExtensions { public static System.Threading.Tasks.Task ReadAsStringAsync(this Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; public static System.Threading.Tasks.ValueTask ReadAsStringAsync(this Microsoft.AspNetCore.WebUtilities.MultipartSection section, System.Threading.CancellationToken cancellationToken) => throw null; } - public static class QueryHelpers { + public static string AddQueryString(string uri, string name, string value) => throw null; public static string AddQueryString(string uri, System.Collections.Generic.IDictionary queryString) => throw null; public static string AddQueryString(string uri, System.Collections.Generic.IEnumerable> queryString) => throw null; public static string AddQueryString(string uri, System.Collections.Generic.IEnumerable> queryString) => throw null; - public static string AddQueryString(string uri, string name, string value) => throw null; public static System.Collections.Generic.Dictionary ParseNullableQuery(string queryString) => throw null; public static System.Collections.Generic.Dictionary ParseQuery(string queryString) => throw null; } - public struct QueryStringEnumerable { + public QueryStringEnumerable(string queryString) => throw null; + public QueryStringEnumerable(System.ReadOnlyMemory queryString) => throw null; public struct EncodedNameValuePair { - public System.ReadOnlyMemory DecodeName() => throw null; - public System.ReadOnlyMemory DecodeValue() => throw null; - public System.ReadOnlyMemory EncodedName { get => throw null; } - // Stub generator skipped constructor - public System.ReadOnlyMemory EncodedValue { get => throw null; } + public System.ReadOnlyMemory DecodeName() => throw null; + public System.ReadOnlyMemory DecodeValue() => throw null; + public System.ReadOnlyMemory EncodedName { get => throw null; } + public System.ReadOnlyMemory EncodedValue { get => throw null; } } - - public struct Enumerator { public Microsoft.AspNetCore.WebUtilities.QueryStringEnumerable.EncodedNameValuePair Current { get => throw null; } - // Stub generator skipped constructor public bool MoveNext() => throw null; } - - public Microsoft.AspNetCore.WebUtilities.QueryStringEnumerable.Enumerator GetEnumerator() => throw null; - // Stub generator skipped constructor - public QueryStringEnumerable(System.ReadOnlyMemory queryString) => throw null; - public QueryStringEnumerable(string queryString) => throw null; } - public static class ReasonPhrases { public static string GetReasonPhrase(int statusCode) => throw null; } - - public static class StreamHelperExtensions + public static partial class StreamHelperExtensions { - public static System.Threading.Tasks.Task DrainAsync(this System.IO.Stream stream, System.Buffers.ArrayPool bytePool, System.Int64? limit, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task DrainAsync(this System.IO.Stream stream, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task DrainAsync(this System.IO.Stream stream, System.Int64? limit, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task DrainAsync(this System.IO.Stream stream, long? limit, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task DrainAsync(this System.IO.Stream stream, System.Buffers.ArrayPool bytePool, long? limit, System.Threading.CancellationToken cancellationToken) => throw null; } - public static class WebEncoders { - public static System.Byte[] Base64UrlDecode(string input) => throw null; - public static System.Byte[] Base64UrlDecode(string input, int offset, System.Char[] buffer, int bufferOffset, int count) => throw null; - public static System.Byte[] Base64UrlDecode(string input, int offset, int count) => throw null; - public static string Base64UrlEncode(System.Byte[] input) => throw null; - public static int Base64UrlEncode(System.Byte[] input, int offset, System.Char[] output, int outputOffset, int count) => throw null; - public static string Base64UrlEncode(System.Byte[] input, int offset, int count) => throw null; - public static string Base64UrlEncode(System.ReadOnlySpan input) => throw null; + public static byte[] Base64UrlDecode(string input) => throw null; + public static byte[] Base64UrlDecode(string input, int offset, int count) => throw null; + public static byte[] Base64UrlDecode(string input, int offset, char[] buffer, int bufferOffset, int count) => throw null; + public static string Base64UrlEncode(byte[] input) => throw null; + public static string Base64UrlEncode(byte[] input, int offset, int count) => throw null; + public static int Base64UrlEncode(byte[] input, int offset, char[] output, int outputOffset, int count) => throw null; + public static string Base64UrlEncode(System.ReadOnlySpan input) => throw null; public static int GetArraySizeRequiredToDecode(int count) => throw null; public static int GetArraySizeRequiredToEncode(int count) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.cs index be27bb030ef..07b15f99f01 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.cs @@ -1,26 +1,12 @@ // This file contains auto-generated code. // Generated from `Microsoft.AspNetCore, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore { - public static class WebHost - { - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateDefaultBuilder() => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateDefaultBuilder(string[] args) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateDefaultBuilder(string[] args) where TStartup : class => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHost Start(System.Action routeBuilder) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHost Start(Microsoft.AspNetCore.Http.RequestDelegate app) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHost Start(string url, System.Action routeBuilder) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHost Start(string url, Microsoft.AspNetCore.Http.RequestDelegate app) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHost StartWith(System.Action app) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHost StartWith(string url, System.Action app) => throw null; - } - namespace Builder { - public class ConfigureHostBuilder : Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsConfigureWebHost, Microsoft.Extensions.Hosting.IHostBuilder + public sealed class ConfigureHostBuilder : Microsoft.Extensions.Hosting.IHostBuilder, Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsConfigureWebHost { Microsoft.Extensions.Hosting.IHost Microsoft.Extensions.Hosting.IHostBuilder.Build() => throw null; public Microsoft.Extensions.Hosting.IHostBuilder ConfigureAppConfiguration(System.Action configureDelegate) => throw null; @@ -29,27 +15,25 @@ namespace Microsoft public Microsoft.Extensions.Hosting.IHostBuilder ConfigureServices(System.Action configureDelegate) => throw null; Microsoft.Extensions.Hosting.IHostBuilder Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsConfigureWebHost.ConfigureWebHost(System.Action configure, System.Action configureOptions) => throw null; public System.Collections.Generic.IDictionary Properties { get => throw null; } - public Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(System.Func> factory) => throw null; public Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory) => throw null; + public Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(System.Func> factory) => throw null; } - - public class ConfigureWebHostBuilder : Microsoft.AspNetCore.Hosting.IWebHostBuilder, Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup + public sealed class ConfigureWebHostBuilder : Microsoft.AspNetCore.Hosting.IWebHostBuilder, Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup { Microsoft.AspNetCore.Hosting.IWebHost Microsoft.AspNetCore.Hosting.IWebHostBuilder.Build() => throw null; Microsoft.AspNetCore.Hosting.IWebHostBuilder Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup.Configure(System.Action configure) => throw null; Microsoft.AspNetCore.Hosting.IWebHostBuilder Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup.Configure(System.Action configure) => throw null; public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureAppConfiguration(System.Action configureDelegate) => throw null; - public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action configureServices) => throw null; public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action configureServices) => throw null; + public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action configureServices) => throw null; public string GetSetting(string key) => throw null; public Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSetting(string key, string value) => throw null; Microsoft.AspNetCore.Hosting.IWebHostBuilder Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup.UseStartup(System.Type startupType) => throw null; Microsoft.AspNetCore.Hosting.IWebHostBuilder Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup.UseStartup(System.Func startupFactory) => throw null; } - - public class WebApplication : Microsoft.AspNetCore.Builder.IApplicationBuilder, Microsoft.AspNetCore.Routing.IEndpointRouteBuilder, Microsoft.Extensions.Hosting.IHost, System.IAsyncDisposable, System.IDisposable + public sealed class WebApplication : Microsoft.Extensions.Hosting.IHost, System.IDisposable, Microsoft.AspNetCore.Builder.IApplicationBuilder, Microsoft.AspNetCore.Routing.IEndpointRouteBuilder, System.IAsyncDisposable { - System.IServiceProvider Microsoft.AspNetCore.Builder.IApplicationBuilder.ApplicationServices { get => throw null; set => throw null; } + System.IServiceProvider Microsoft.AspNetCore.Builder.IApplicationBuilder.ApplicationServices { get => throw null; set { } } Microsoft.AspNetCore.Http.RequestDelegate Microsoft.AspNetCore.Builder.IApplicationBuilder.Build() => throw null; public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; } public static Microsoft.AspNetCore.Builder.WebApplication Create(string[] args = default(string[])) => throw null; @@ -75,8 +59,7 @@ namespace Microsoft public System.Collections.Generic.ICollection Urls { get => throw null; } public Microsoft.AspNetCore.Builder.IApplicationBuilder Use(System.Func middleware) => throw null; } - - public class WebApplicationBuilder + public sealed class WebApplicationBuilder { public Microsoft.AspNetCore.Builder.WebApplication Build() => throw null; public Microsoft.Extensions.Configuration.ConfigurationManager Configuration { get => throw null; } @@ -86,29 +69,38 @@ namespace Microsoft public Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get => throw null; } public Microsoft.AspNetCore.Builder.ConfigureWebHostBuilder WebHost { get => throw null; } } - public class WebApplicationOptions { - public string ApplicationName { get => throw null; set => throw null; } - public string[] Args { get => throw null; set => throw null; } - public string ContentRootPath { get => throw null; set => throw null; } - public string EnvironmentName { get => throw null; set => throw null; } + public string ApplicationName { get => throw null; set { } } + public string[] Args { get => throw null; set { } } + public string ContentRootPath { get => throw null; set { } } public WebApplicationOptions() => throw null; - public string WebRootPath { get => throw null; set => throw null; } + public string EnvironmentName { get => throw null; set { } } + public string WebRootPath { get => throw null; set { } } } - + } + public static class WebHost + { + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateDefaultBuilder() => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateDefaultBuilder(string[] args) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateDefaultBuilder(string[] args) where TStartup : class => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHost Start(Microsoft.AspNetCore.Http.RequestDelegate app) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHost Start(string url, Microsoft.AspNetCore.Http.RequestDelegate app) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHost Start(System.Action routeBuilder) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHost Start(string url, System.Action routeBuilder) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHost StartWith(System.Action app) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHost StartWith(string url, System.Action app) => throw null; } } namespace Extensions { namespace Hosting { - public static class GenericHostBuilderExtensions + public static partial class GenericHostBuilderExtensions { public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureWebHostDefaults(this Microsoft.Extensions.Hosting.IHostBuilder builder, System.Action configure) => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureWebHostDefaults(this Microsoft.Extensions.Hosting.IHostBuilder builder, System.Action configure, System.Action configureOptions) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Abstractions.cs index 0dd4639daa7..6cc1ad40b97 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Caching.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -9,49 +8,45 @@ namespace Microsoft { namespace Distributed { - public static class DistributedCacheEntryExtensions + public static partial class DistributedCacheEntryExtensions { public static Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions SetAbsoluteExpiration(this Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options, System.DateTimeOffset absolute) => throw null; public static Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions SetAbsoluteExpiration(this Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options, System.TimeSpan relative) => throw null; public static Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions SetSlidingExpiration(this Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options, System.TimeSpan offset) => throw null; } - public class DistributedCacheEntryOptions { - public System.DateTimeOffset? AbsoluteExpiration { get => throw null; set => throw null; } - public System.TimeSpan? AbsoluteExpirationRelativeToNow { get => throw null; set => throw null; } + public System.DateTimeOffset? AbsoluteExpiration { get => throw null; set { } } + public System.TimeSpan? AbsoluteExpirationRelativeToNow { get => throw null; set { } } public DistributedCacheEntryOptions() => throw null; - public System.TimeSpan? SlidingExpiration { get => throw null; set => throw null; } + public System.TimeSpan? SlidingExpiration { get => throw null; set { } } } - - public static class DistributedCacheExtensions + public static partial class DistributedCacheExtensions { public static string GetString(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key) => throw null; public static System.Threading.Tasks.Task GetStringAsync(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void Set(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, System.Byte[] value) => throw null; - public static System.Threading.Tasks.Task SetAsync(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void Set(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, byte[] value) => throw null; + public static System.Threading.Tasks.Task SetAsync(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; public static void SetString(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, string value) => throw null; public static void SetString(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, string value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) => throw null; - public static System.Threading.Tasks.Task SetStringAsync(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task SetStringAsync(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, string value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SetStringAsync(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; } - public interface IDistributedCache { - System.Byte[] Get(string key); - System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + byte[] Get(string key); + System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); void Refresh(string key); System.Threading.Tasks.Task RefreshAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); void Remove(string key); System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void Set(string key, System.Byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options); - System.Threading.Tasks.Task SetAsync(string key, System.Byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void Set(string key, byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options); + System.Threading.Tasks.Task SetAsync(string key, byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); } - } namespace Memory { - public static class CacheEntryExtensions + public static partial class CacheEntryExtensions { public static Microsoft.Extensions.Caching.Memory.ICacheEntry AddExpirationToken(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, Microsoft.Extensions.Primitives.IChangeToken expirationToken) => throw null; public static Microsoft.Extensions.Caching.Memory.ICacheEntry RegisterPostEvictionCallback(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, Microsoft.Extensions.Caching.Memory.PostEvictionDelegate callback) => throw null; @@ -60,43 +55,39 @@ namespace Microsoft public static Microsoft.Extensions.Caching.Memory.ICacheEntry SetAbsoluteExpiration(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, System.TimeSpan relative) => throw null; public static Microsoft.Extensions.Caching.Memory.ICacheEntry SetOptions(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options) => throw null; public static Microsoft.Extensions.Caching.Memory.ICacheEntry SetPriority(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, Microsoft.Extensions.Caching.Memory.CacheItemPriority priority) => throw null; - public static Microsoft.Extensions.Caching.Memory.ICacheEntry SetSize(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, System.Int64 size) => throw null; + public static Microsoft.Extensions.Caching.Memory.ICacheEntry SetSize(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, long size) => throw null; public static Microsoft.Extensions.Caching.Memory.ICacheEntry SetSlidingExpiration(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, System.TimeSpan offset) => throw null; public static Microsoft.Extensions.Caching.Memory.ICacheEntry SetValue(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, object value) => throw null; } - - public static class CacheExtensions + public static partial class CacheExtensions { public static object Get(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key) => throw null; public static TItem Get(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key) => throw null; public static TItem GetOrCreate(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key, System.Func factory) => throw null; public static System.Threading.Tasks.Task GetOrCreateAsync(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key, System.Func> factory) => throw null; public static TItem Set(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key, TItem value) => throw null; - public static TItem Set(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key, TItem value, System.DateTimeOffset absoluteExpiration) => throw null; - public static TItem Set(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key, TItem value, Microsoft.Extensions.Primitives.IChangeToken expirationToken) => throw null; public static TItem Set(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key, TItem value, Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options) => throw null; + public static TItem Set(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key, TItem value, Microsoft.Extensions.Primitives.IChangeToken expirationToken) => throw null; + public static TItem Set(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key, TItem value, System.DateTimeOffset absoluteExpiration) => throw null; public static TItem Set(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key, TItem value, System.TimeSpan absoluteExpirationRelativeToNow) => throw null; public static bool TryGetValue(this Microsoft.Extensions.Caching.Memory.IMemoryCache cache, object key, out TItem value) => throw null; } - - public enum CacheItemPriority : int + public enum CacheItemPriority { - High = 2, Low = 0, - NeverRemove = 3, Normal = 1, + High = 2, + NeverRemove = 3, } - - public enum EvictionReason : int + public enum EvictionReason { - Capacity = 5, - Expired = 3, None = 0, Removed = 1, Replaced = 2, + Expired = 3, TokenExpired = 4, + Capacity = 5, } - public interface ICacheEntry : System.IDisposable { System.DateTimeOffset? AbsoluteExpiration { get; set; } @@ -105,20 +96,18 @@ namespace Microsoft object Key { get; } System.Collections.Generic.IList PostEvictionCallbacks { get; } Microsoft.Extensions.Caching.Memory.CacheItemPriority Priority { get; set; } - System.Int64? Size { get; set; } + long? Size { get; set; } System.TimeSpan? SlidingExpiration { get; set; } object Value { get; set; } } - public interface IMemoryCache : System.IDisposable { Microsoft.Extensions.Caching.Memory.ICacheEntry CreateEntry(object key); - Microsoft.Extensions.Caching.Memory.MemoryCacheStatistics GetCurrentStatistics() => throw null; + virtual Microsoft.Extensions.Caching.Memory.MemoryCacheStatistics GetCurrentStatistics() => throw null; void Remove(object key); bool TryGetValue(object key, out object value); } - - public static class MemoryCacheEntryExtensions + public static partial class MemoryCacheEntryExtensions { public static Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions AddExpirationToken(this Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options, Microsoft.Extensions.Primitives.IChangeToken expirationToken) => throw null; public static Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions RegisterPostEvictionCallback(this Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options, Microsoft.Extensions.Caching.Memory.PostEvictionDelegate callback) => throw null; @@ -126,40 +115,35 @@ namespace Microsoft public static Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions SetAbsoluteExpiration(this Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options, System.DateTimeOffset absolute) => throw null; public static Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions SetAbsoluteExpiration(this Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options, System.TimeSpan relative) => throw null; public static Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions SetPriority(this Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options, Microsoft.Extensions.Caching.Memory.CacheItemPriority priority) => throw null; - public static Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions SetSize(this Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options, System.Int64 size) => throw null; + public static Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions SetSize(this Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options, long size) => throw null; public static Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions SetSlidingExpiration(this Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options, System.TimeSpan offset) => throw null; } - public class MemoryCacheEntryOptions { - public System.DateTimeOffset? AbsoluteExpiration { get => throw null; set => throw null; } - public System.TimeSpan? AbsoluteExpirationRelativeToNow { get => throw null; set => throw null; } - public System.Collections.Generic.IList ExpirationTokens { get => throw null; } + public System.DateTimeOffset? AbsoluteExpiration { get => throw null; set { } } + public System.TimeSpan? AbsoluteExpirationRelativeToNow { get => throw null; set { } } public MemoryCacheEntryOptions() => throw null; + public System.Collections.Generic.IList ExpirationTokens { get => throw null; } public System.Collections.Generic.IList PostEvictionCallbacks { get => throw null; } - public Microsoft.Extensions.Caching.Memory.CacheItemPriority Priority { get => throw null; set => throw null; } - public System.Int64? Size { get => throw null; set => throw null; } - public System.TimeSpan? SlidingExpiration { get => throw null; set => throw null; } + public Microsoft.Extensions.Caching.Memory.CacheItemPriority Priority { get => throw null; set { } } + public long? Size { get => throw null; set { } } + public System.TimeSpan? SlidingExpiration { get => throw null; set { } } } - public class MemoryCacheStatistics { - public System.Int64 CurrentEntryCount { get => throw null; set => throw null; } - public System.Int64? CurrentEstimatedSize { get => throw null; set => throw null; } public MemoryCacheStatistics() => throw null; - public System.Int64 TotalHits { get => throw null; set => throw null; } - public System.Int64 TotalMisses { get => throw null; set => throw null; } + public long CurrentEntryCount { get => throw null; set { } } + public long? CurrentEstimatedSize { get => throw null; set { } } + public long TotalHits { get => throw null; set { } } + public long TotalMisses { get => throw null; set { } } } - public class PostEvictionCallbackRegistration { - public Microsoft.Extensions.Caching.Memory.PostEvictionDelegate EvictionCallback { get => throw null; set => throw null; } public PostEvictionCallbackRegistration() => throw null; - public object State { get => throw null; set => throw null; } + public Microsoft.Extensions.Caching.Memory.PostEvictionDelegate EvictionCallback { get => throw null; set { } } + public object State { get => throw null; set { } } } - public delegate void PostEvictionDelegate(object key, object value, Microsoft.Extensions.Caching.Memory.EvictionReason reason, object state); - } } namespace Internal @@ -168,13 +152,11 @@ namespace Microsoft { System.DateTimeOffset UtcNow { get; } } - public class SystemClock : Microsoft.Extensions.Internal.ISystemClock { public SystemClock() => throw null; public System.DateTimeOffset UtcNow { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Memory.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Memory.cs index c6e3f69b3c5..3e39b4a2aaa 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Memory.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Memory.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Caching.Memory, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -11,18 +10,17 @@ namespace Microsoft { public class MemoryDistributedCache : Microsoft.Extensions.Caching.Distributed.IDistributedCache { - public System.Byte[] Get(string key) => throw null; - public System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; public MemoryDistributedCache(Microsoft.Extensions.Options.IOptions optionsAccessor) => throw null; public MemoryDistributedCache(Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + public byte[] Get(string key) => throw null; + public System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; public void Refresh(string key) => throw null; public System.Threading.Tasks.Task RefreshAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; public void Remove(string key) => throw null; public System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void Set(string key, System.Byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, System.Byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void Set(string key, byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; } - } namespace Memory { @@ -32,45 +30,40 @@ namespace Microsoft public void Compact(double percentage) => throw null; public int Count { get => throw null; } public Microsoft.Extensions.Caching.Memory.ICacheEntry CreateEntry(object key) => throw null; + public MemoryCache(Microsoft.Extensions.Options.IOptions optionsAccessor) => throw null; + public MemoryCache(Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public Microsoft.Extensions.Caching.Memory.MemoryCacheStatistics GetCurrentStatistics() => throw null; - public MemoryCache(Microsoft.Extensions.Options.IOptions optionsAccessor) => throw null; - public MemoryCache(Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public void Remove(object key) => throw null; public bool TryGetValue(object key, out object result) => throw null; - // ERR: Stub generator didn't handle member: ~MemoryCache } - public class MemoryCacheOptions : Microsoft.Extensions.Options.IOptions { - public Microsoft.Extensions.Internal.ISystemClock Clock { get => throw null; set => throw null; } - public double CompactionPercentage { get => throw null; set => throw null; } - public System.TimeSpan ExpirationScanFrequency { get => throw null; set => throw null; } + public Microsoft.Extensions.Internal.ISystemClock Clock { get => throw null; set { } } + public double CompactionPercentage { get => throw null; set { } } public MemoryCacheOptions() => throw null; - public System.Int64? SizeLimit { get => throw null; set => throw null; } - public bool TrackLinkedCacheEntries { get => throw null; set => throw null; } - public bool TrackStatistics { get => throw null; set => throw null; } + public System.TimeSpan ExpirationScanFrequency { get => throw null; set { } } + public long? SizeLimit { get => throw null; set { } } + public bool TrackLinkedCacheEntries { get => throw null; set { } } + public bool TrackStatistics { get => throw null; set { } } Microsoft.Extensions.Caching.Memory.MemoryCacheOptions Microsoft.Extensions.Options.IOptions.Value { get => throw null; } } - public class MemoryDistributedCacheOptions : Microsoft.Extensions.Caching.Memory.MemoryCacheOptions { public MemoryDistributedCacheOptions() => throw null; } - } } namespace DependencyInjection { - public static class MemoryCacheServiceCollectionExtensions + public static partial class MemoryCacheServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDistributedMemoryCache(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDistributedMemoryCache(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddMemoryCache(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddMemoryCache(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Abstractions.cs index 8018c018121..fb8f560a5eb 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -9,15 +8,13 @@ namespace Microsoft { public struct ConfigurationDebugViewContext { - // Stub generator skipped constructor - public ConfigurationDebugViewContext(string path, string key, string value, Microsoft.Extensions.Configuration.IConfigurationProvider configurationProvider) => throw null; public Microsoft.Extensions.Configuration.IConfigurationProvider ConfigurationProvider { get => throw null; } + public ConfigurationDebugViewContext(string path, string key, string value, Microsoft.Extensions.Configuration.IConfigurationProvider configurationProvider) => throw null; public string Key { get => throw null; } public string Path { get => throw null; } public string Value { get => throw null; } } - - public static class ConfigurationExtensions + public static partial class ConfigurationExtensions { public static Microsoft.Extensions.Configuration.IConfigurationBuilder Add(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) where TSource : Microsoft.Extensions.Configuration.IConfigurationSource, new() => throw null; public static System.Collections.Generic.IEnumerable> AsEnumerable(this Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; @@ -26,13 +23,11 @@ namespace Microsoft public static string GetConnectionString(this Microsoft.Extensions.Configuration.IConfiguration configuration, string name) => throw null; public static Microsoft.Extensions.Configuration.IConfigurationSection GetRequiredSection(this Microsoft.Extensions.Configuration.IConfiguration configuration, string key) => throw null; } - - public class ConfigurationKeyNameAttribute : System.Attribute + public sealed class ConfigurationKeyNameAttribute : System.Attribute { public ConfigurationKeyNameAttribute(string name) => throw null; public string Name { get => throw null; } } - public static class ConfigurationPath { public static string Combine(System.Collections.Generic.IEnumerable pathSegments) => throw null; @@ -41,13 +36,11 @@ namespace Microsoft public static string GetSectionKey(string path) => throw null; public static string KeyDelimiter; } - - public static class ConfigurationRootExtensions + public static partial class ConfigurationRootExtensions { public static string GetDebugView(this Microsoft.Extensions.Configuration.IConfigurationRoot root) => throw null; public static string GetDebugView(this Microsoft.Extensions.Configuration.IConfigurationRoot root, System.Func processValue) => throw null; } - public interface IConfiguration { System.Collections.Generic.IEnumerable GetChildren(); @@ -55,7 +48,6 @@ namespace Microsoft Microsoft.Extensions.Configuration.IConfigurationSection GetSection(string key); string this[string key] { get; set; } } - public interface IConfigurationBuilder { Microsoft.Extensions.Configuration.IConfigurationBuilder Add(Microsoft.Extensions.Configuration.IConfigurationSource source); @@ -63,7 +55,6 @@ namespace Microsoft System.Collections.Generic.IDictionary Properties { get; } System.Collections.Generic.IList Sources { get; } } - public interface IConfigurationProvider { System.Collections.Generic.IEnumerable GetChildKeys(System.Collections.Generic.IEnumerable earlierKeys, string parentPath); @@ -72,25 +63,21 @@ namespace Microsoft void Set(string key, string value); bool TryGet(string key, out string value); } - public interface IConfigurationRoot : Microsoft.Extensions.Configuration.IConfiguration { System.Collections.Generic.IEnumerable Providers { get; } void Reload(); } - public interface IConfigurationSection : Microsoft.Extensions.Configuration.IConfiguration { string Key { get; } string Path { get; } string Value { get; set; } } - public interface IConfigurationSource { Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder); } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Binder.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Binder.cs index cec49289494..b1dc7c6dc5e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Binder.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Binder.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration.Binder, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -9,11 +8,10 @@ namespace Microsoft { public class BinderOptions { - public bool BindNonPublicProperties { get => throw null; set => throw null; } + public bool BindNonPublicProperties { get => throw null; set { } } public BinderOptions() => throw null; - public bool ErrorOnUnknownConfiguration { get => throw null; set => throw null; } + public bool ErrorOnUnknownConfiguration { get => throw null; set { } } } - public static class ConfigurationBinder { public static void Bind(this Microsoft.Extensions.Configuration.IConfiguration configuration, object instance) => throw null; @@ -28,7 +26,6 @@ namespace Microsoft public static T GetValue(this Microsoft.Extensions.Configuration.IConfiguration configuration, string key) => throw null; public static T GetValue(this Microsoft.Extensions.Configuration.IConfiguration configuration, string key, T defaultValue) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.CommandLine.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.CommandLine.cs index 19426be86bd..e54197deada 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.CommandLine.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.CommandLine.cs @@ -1,19 +1,11 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration.CommandLine, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Configuration { - public static class CommandLineConfigurationExtensions - { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCommandLine(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCommandLine(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, string[] args) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCommandLine(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, string[] args, System.Collections.Generic.IDictionary switchMappings) => throw null; - } - namespace CommandLine { public class CommandLineConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider @@ -22,15 +14,19 @@ namespace Microsoft public CommandLineConfigurationProvider(System.Collections.Generic.IEnumerable args, System.Collections.Generic.IDictionary switchMappings = default(System.Collections.Generic.IDictionary)) => throw null; public override void Load() => throw null; } - public class CommandLineConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { - public System.Collections.Generic.IEnumerable Args { get => throw null; set => throw null; } + public System.Collections.Generic.IEnumerable Args { get => throw null; set { } } public Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; public CommandLineConfigurationSource() => throw null; - public System.Collections.Generic.IDictionary SwitchMappings { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary SwitchMappings { get => throw null; set { } } } - + } + public static partial class CommandLineConfigurationExtensions + { + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCommandLine(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCommandLine(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, string[] args) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCommandLine(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, string[] args, System.Collections.Generic.IDictionary switchMappings) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.EnvironmentVariables.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.EnvironmentVariables.cs index 532a50ee8d9..5d136d400e7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.EnvironmentVariables.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.EnvironmentVariables.cs @@ -1,19 +1,11 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration.EnvironmentVariables, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Configuration { - public static class EnvironmentVariablesExtensions - { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddEnvironmentVariables(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddEnvironmentVariables(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddEnvironmentVariables(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, string prefix) => throw null; - } - namespace EnvironmentVariables { public class EnvironmentVariablesConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider @@ -23,14 +15,18 @@ namespace Microsoft public override void Load() => throw null; public override string ToString() => throw null; } - public class EnvironmentVariablesConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; public EnvironmentVariablesConfigurationSource() => throw null; - public string Prefix { get => throw null; set => throw null; } + public string Prefix { get => throw null; set { } } } - + } + public static partial class EnvironmentVariablesExtensions + { + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddEnvironmentVariables(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddEnvironmentVariables(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddEnvironmentVariables(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, string prefix) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.FileExtensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.FileExtensions.cs index e6c8244ac62..90aa0679647 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.FileExtensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.FileExtensions.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration.FileExtensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Configuration { - public static class FileConfigurationExtensions + public static partial class FileConfigurationExtensions { public static System.Action GetFileLoadExceptionHandler(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; public static Microsoft.Extensions.FileProviders.IFileProvider GetFileProvider(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; @@ -15,40 +14,36 @@ namespace Microsoft public static Microsoft.Extensions.Configuration.IConfigurationBuilder SetFileLoadExceptionHandler(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action handler) => throw null; public static Microsoft.Extensions.Configuration.IConfigurationBuilder SetFileProvider(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Microsoft.Extensions.FileProviders.IFileProvider fileProvider) => throw null; } - public abstract class FileConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider, System.IDisposable { + public FileConfigurationProvider(Microsoft.Extensions.Configuration.FileConfigurationSource source) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public FileConfigurationProvider(Microsoft.Extensions.Configuration.FileConfigurationSource source) => throw null; public override void Load() => throw null; public abstract void Load(System.IO.Stream stream); public Microsoft.Extensions.Configuration.FileConfigurationSource Source { get => throw null; } public override string ToString() => throw null; } - public abstract class FileConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public abstract Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder); - public void EnsureDefaults(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; protected FileConfigurationSource() => throw null; - public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set => throw null; } - public System.Action OnLoadException { get => throw null; set => throw null; } - public bool Optional { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } - public int ReloadDelay { get => throw null; set => throw null; } - public bool ReloadOnChange { get => throw null; set => throw null; } + public void EnsureDefaults(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; + public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set { } } + public System.Action OnLoadException { get => throw null; set { } } + public bool Optional { get => throw null; set { } } + public string Path { get => throw null; set { } } + public int ReloadDelay { get => throw null; set { } } + public bool ReloadOnChange { get => throw null; set { } } public void ResolveFileProvider() => throw null; } - public class FileLoadExceptionContext { - public System.Exception Exception { get => throw null; set => throw null; } public FileLoadExceptionContext() => throw null; - public bool Ignore { get => throw null; set => throw null; } - public Microsoft.Extensions.Configuration.FileConfigurationProvider Provider { get => throw null; set => throw null; } + public System.Exception Exception { get => throw null; set { } } + public bool Ignore { get => throw null; set { } } + public Microsoft.Extensions.Configuration.FileConfigurationProvider Provider { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Ini.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Ini.cs index 781201b7ff3..4ca69e9175d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Ini.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Ini.cs @@ -1,22 +1,11 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration.Ini, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Configuration { - public static class IniConfigurationExtensions - { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Microsoft.Extensions.FileProviders.IFileProvider provider, string path, bool optional, bool reloadOnChange) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional, bool reloadOnChange) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniStream(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.IO.Stream stream) => throw null; - } - namespace Ini { public class IniConfigurationProvider : Microsoft.Extensions.Configuration.FileConfigurationProvider @@ -24,26 +13,31 @@ namespace Microsoft public IniConfigurationProvider(Microsoft.Extensions.Configuration.Ini.IniConfigurationSource source) : base(default(Microsoft.Extensions.Configuration.FileConfigurationSource)) => throw null; public override void Load(System.IO.Stream stream) => throw null; } - public class IniConfigurationSource : Microsoft.Extensions.Configuration.FileConfigurationSource { public override Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; public IniConfigurationSource() => throw null; } - public class IniStreamConfigurationProvider : Microsoft.Extensions.Configuration.StreamConfigurationProvider { public IniStreamConfigurationProvider(Microsoft.Extensions.Configuration.Ini.IniStreamConfigurationSource source) : base(default(Microsoft.Extensions.Configuration.StreamConfigurationSource)) => throw null; public override void Load(System.IO.Stream stream) => throw null; public static System.Collections.Generic.IDictionary Read(System.IO.Stream stream) => throw null; } - public class IniStreamConfigurationSource : Microsoft.Extensions.Configuration.StreamConfigurationSource { public override Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; public IniStreamConfigurationSource() => throw null; } - + } + public static partial class IniConfigurationExtensions + { + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Microsoft.Extensions.FileProviders.IFileProvider provider, string path, bool optional, bool reloadOnChange) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional, bool reloadOnChange) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddIniStream(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.IO.Stream stream) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Json.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Json.cs index f506e72a30f..8862ed93e96 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Json.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Json.cs @@ -1,22 +1,11 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Configuration { - public static class JsonConfigurationExtensions - { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Microsoft.Extensions.FileProviders.IFileProvider provider, string path, bool optional, bool reloadOnChange) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional, bool reloadOnChange) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonStream(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.IO.Stream stream) => throw null; - } - namespace Json { public class JsonConfigurationProvider : Microsoft.Extensions.Configuration.FileConfigurationProvider @@ -24,25 +13,30 @@ namespace Microsoft public JsonConfigurationProvider(Microsoft.Extensions.Configuration.Json.JsonConfigurationSource source) : base(default(Microsoft.Extensions.Configuration.FileConfigurationSource)) => throw null; public override void Load(System.IO.Stream stream) => throw null; } - public class JsonConfigurationSource : Microsoft.Extensions.Configuration.FileConfigurationSource { public override Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; public JsonConfigurationSource() => throw null; } - public class JsonStreamConfigurationProvider : Microsoft.Extensions.Configuration.StreamConfigurationProvider { public JsonStreamConfigurationProvider(Microsoft.Extensions.Configuration.Json.JsonStreamConfigurationSource source) : base(default(Microsoft.Extensions.Configuration.StreamConfigurationSource)) => throw null; public override void Load(System.IO.Stream stream) => throw null; } - public class JsonStreamConfigurationSource : Microsoft.Extensions.Configuration.StreamConfigurationSource { public override Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; public JsonStreamConfigurationSource() => throw null; } - + } + public static partial class JsonConfigurationExtensions + { + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Microsoft.Extensions.FileProviders.IFileProvider provider, string path, bool optional, bool reloadOnChange) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional, bool reloadOnChange) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddJsonStream(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.IO.Stream stream) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.KeyPerFile.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.KeyPerFile.cs index 44168c165bf..cb6ebd6c8b9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.KeyPerFile.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.KeyPerFile.cs @@ -1,43 +1,39 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration.KeyPerFile, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Configuration { - public static class KeyPerFileConfigurationBuilderExtensions - { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddKeyPerFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddKeyPerFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string directoryPath) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddKeyPerFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string directoryPath, bool optional) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddKeyPerFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string directoryPath, bool optional, bool reloadOnChange) => throw null; - } - namespace KeyPerFile { public class KeyPerFileConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider, System.IDisposable { - public void Dispose() => throw null; public KeyPerFileConfigurationProvider(Microsoft.Extensions.Configuration.KeyPerFile.KeyPerFileConfigurationSource source) => throw null; + public void Dispose() => throw null; public override void Load() => throw null; public override string ToString() => throw null; } - public class KeyPerFileConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; - public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set => throw null; } - public System.Func IgnoreCondition { get => throw null; set => throw null; } - public string IgnorePrefix { get => throw null; set => throw null; } public KeyPerFileConfigurationSource() => throw null; - public bool Optional { get => throw null; set => throw null; } - public int ReloadDelay { get => throw null; set => throw null; } - public bool ReloadOnChange { get => throw null; set => throw null; } - public string SectionDelimiter { get => throw null; set => throw null; } + public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set { } } + public System.Func IgnoreCondition { get => throw null; set { } } + public string IgnorePrefix { get => throw null; set { } } + public bool Optional { get => throw null; set { } } + public int ReloadDelay { get => throw null; set { } } + public bool ReloadOnChange { get => throw null; set { } } + public string SectionDelimiter { get => throw null; set { } } } - + } + public static partial class KeyPerFileConfigurationBuilderExtensions + { + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddKeyPerFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string directoryPath) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddKeyPerFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string directoryPath, bool optional) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddKeyPerFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string directoryPath, bool optional, bool reloadOnChange) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddKeyPerFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.UserSecrets.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.UserSecrets.cs index c19f4ae0880..6dca2bc59e3 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.UserSecrets.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.UserSecrets.cs @@ -1,13 +1,25 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration.UserSecrets, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Configuration { - public static class UserSecretsConfigurationExtensions + namespace UserSecrets + { + public class PathHelper + { + public PathHelper() => throw null; + public static string GetSecretsPathFromSecretsId(string userSecretsId) => throw null; + } + public class UserSecretsIdAttribute : System.Attribute + { + public UserSecretsIdAttribute(string userSecretId) => throw null; + public string UserSecretsId { get => throw null; } + } + } + public static partial class UserSecretsConfigurationExtensions { public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, System.Reflection.Assembly assembly) => throw null; public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, System.Reflection.Assembly assembly, bool optional) => throw null; @@ -18,22 +30,6 @@ namespace Microsoft public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, bool optional) where T : class => throw null; public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, bool optional, bool reloadOnChange) where T : class => throw null; } - - namespace UserSecrets - { - public class PathHelper - { - public static string GetSecretsPathFromSecretsId(string userSecretsId) => throw null; - public PathHelper() => throw null; - } - - public class UserSecretsIdAttribute : System.Attribute - { - public string UserSecretsId { get => throw null; } - public UserSecretsIdAttribute(string userSecretId) => throw null; - } - - } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Xml.cs index 34bceff70a4..ff2cd3e4a18 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Xml.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Xml.cs @@ -1,57 +1,50 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Configuration { - public static class XmlConfigurationExtensions - { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Microsoft.Extensions.FileProviders.IFileProvider provider, string path, bool optional, bool reloadOnChange) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional, bool reloadOnChange) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlStream(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.IO.Stream stream) => throw null; - } - namespace Xml { public class XmlConfigurationProvider : Microsoft.Extensions.Configuration.FileConfigurationProvider { - public override void Load(System.IO.Stream stream) => throw null; public XmlConfigurationProvider(Microsoft.Extensions.Configuration.Xml.XmlConfigurationSource source) : base(default(Microsoft.Extensions.Configuration.FileConfigurationSource)) => throw null; + public override void Load(System.IO.Stream stream) => throw null; } - public class XmlConfigurationSource : Microsoft.Extensions.Configuration.FileConfigurationSource { public override Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; public XmlConfigurationSource() => throw null; } - public class XmlDocumentDecryptor { public System.Xml.XmlReader CreateDecryptingXmlReader(System.IO.Stream input, System.Xml.XmlReaderSettings settings) => throw null; + protected XmlDocumentDecryptor() => throw null; protected virtual System.Xml.XmlReader DecryptDocumentAndCreateXmlReader(System.Xml.XmlDocument document) => throw null; public static Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor Instance; - protected XmlDocumentDecryptor() => throw null; } - public class XmlStreamConfigurationProvider : Microsoft.Extensions.Configuration.StreamConfigurationProvider { + public XmlStreamConfigurationProvider(Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationSource source) : base(default(Microsoft.Extensions.Configuration.StreamConfigurationSource)) => throw null; public override void Load(System.IO.Stream stream) => throw null; public static System.Collections.Generic.IDictionary Read(System.IO.Stream stream, Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor decryptor) => throw null; - public XmlStreamConfigurationProvider(Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationSource source) : base(default(Microsoft.Extensions.Configuration.StreamConfigurationSource)) => throw null; } - public class XmlStreamConfigurationSource : Microsoft.Extensions.Configuration.StreamConfigurationSource { public override Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; public XmlStreamConfigurationSource() => throw null; } - + } + public static partial class XmlConfigurationExtensions + { + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Microsoft.Extensions.FileProviders.IFileProvider provider, string path, bool optional, bool reloadOnChange) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action configureSource) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional, bool reloadOnChange) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlStream(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.IO.Stream stream) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.cs index 9cb343bf310..3a4e59e0ef9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.cs @@ -1,22 +1,20 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Configuration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Configuration { - public static class ChainedBuilderExtensions + public static partial class ChainedBuilderExtensions { public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddConfiguration(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, Microsoft.Extensions.Configuration.IConfiguration config) => throw null; public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddConfiguration(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, Microsoft.Extensions.Configuration.IConfiguration config, bool shouldDisposeConfiguration) => throw null; } - public class ChainedConfigurationProvider : Microsoft.Extensions.Configuration.IConfigurationProvider, System.IDisposable { - public ChainedConfigurationProvider(Microsoft.Extensions.Configuration.ChainedConfigurationSource source) => throw null; public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; } + public ChainedConfigurationProvider(Microsoft.Extensions.Configuration.ChainedConfigurationSource source) => throw null; public void Dispose() => throw null; public System.Collections.Generic.IEnumerable GetChildKeys(System.Collections.Generic.IEnumerable earlierKeys, string parentPath) => throw null; public Microsoft.Extensions.Primitives.IChangeToken GetReloadToken() => throw null; @@ -24,15 +22,13 @@ namespace Microsoft public void Set(string key, string value) => throw null; public bool TryGet(string key, out string value) => throw null; } - public class ChainedConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; + public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set { } } public ChainedConfigurationSource() => throw null; - public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set => throw null; } - public bool ShouldDisposeConfiguration { get => throw null; set => throw null; } + public bool ShouldDisposeConfiguration { get => throw null; set { } } } - public class ConfigurationBuilder : Microsoft.Extensions.Configuration.IConfigurationBuilder { public Microsoft.Extensions.Configuration.IConfigurationBuilder Add(Microsoft.Extensions.Configuration.IConfigurationSource source) => throw null; @@ -41,15 +37,13 @@ namespace Microsoft public System.Collections.Generic.IDictionary Properties { get => throw null; } public System.Collections.Generic.IList Sources { get => throw null; } } - public class ConfigurationKeyComparer : System.Collections.Generic.IComparer { public int Compare(string x, string y) => throw null; public ConfigurationKeyComparer() => throw null; public static Microsoft.Extensions.Configuration.ConfigurationKeyComparer Instance { get => throw null; } } - - public class ConfigurationManager : Microsoft.Extensions.Configuration.IConfiguration, Microsoft.Extensions.Configuration.IConfigurationBuilder, Microsoft.Extensions.Configuration.IConfigurationRoot, System.IDisposable + public sealed class ConfigurationManager : Microsoft.Extensions.Configuration.IConfiguration, Microsoft.Extensions.Configuration.IConfigurationBuilder, Microsoft.Extensions.Configuration.IConfigurationRoot, System.IDisposable { Microsoft.Extensions.Configuration.IConfigurationBuilder Microsoft.Extensions.Configuration.IConfigurationBuilder.Add(Microsoft.Extensions.Configuration.IConfigurationSource source) => throw null; Microsoft.Extensions.Configuration.IConfigurationRoot Microsoft.Extensions.Configuration.IConfigurationBuilder.Build() => throw null; @@ -58,17 +52,16 @@ namespace Microsoft public System.Collections.Generic.IEnumerable GetChildren() => throw null; Microsoft.Extensions.Primitives.IChangeToken Microsoft.Extensions.Configuration.IConfiguration.GetReloadToken() => throw null; public Microsoft.Extensions.Configuration.IConfigurationSection GetSection(string key) => throw null; - public string this[string key] { get => throw null; set => throw null; } System.Collections.Generic.IDictionary Microsoft.Extensions.Configuration.IConfigurationBuilder.Properties { get => throw null; } System.Collections.Generic.IEnumerable Microsoft.Extensions.Configuration.IConfigurationRoot.Providers { get => throw null; } void Microsoft.Extensions.Configuration.IConfigurationRoot.Reload() => throw null; public System.Collections.Generic.IList Sources { get => throw null; } + public string this[string key] { get => throw null; set { } } } - public abstract class ConfigurationProvider : Microsoft.Extensions.Configuration.IConfigurationProvider { protected ConfigurationProvider() => throw null; - protected System.Collections.Generic.IDictionary Data { get => throw null; set => throw null; } + protected System.Collections.Generic.IDictionary Data { get => throw null; set { } } public virtual System.Collections.Generic.IEnumerable GetChildKeys(System.Collections.Generic.IEnumerable earlierKeys, string parentPath) => throw null; public Microsoft.Extensions.Primitives.IChangeToken GetReloadToken() => throw null; public virtual void Load() => throw null; @@ -77,7 +70,6 @@ namespace Microsoft public override string ToString() => throw null; public virtual bool TryGet(string key, out string value) => throw null; } - public class ConfigurationReloadToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => throw null; } @@ -86,7 +78,6 @@ namespace Microsoft public void OnReload() => throw null; public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; } - public class ConfigurationRoot : Microsoft.Extensions.Configuration.IConfiguration, Microsoft.Extensions.Configuration.IConfigurationRoot, System.IDisposable { public ConfigurationRoot(System.Collections.Generic.IList providers) => throw null; @@ -94,61 +85,54 @@ namespace Microsoft public System.Collections.Generic.IEnumerable GetChildren() => throw null; public Microsoft.Extensions.Primitives.IChangeToken GetReloadToken() => throw null; public Microsoft.Extensions.Configuration.IConfigurationSection GetSection(string key) => throw null; - public string this[string key] { get => throw null; set => throw null; } public System.Collections.Generic.IEnumerable Providers { get => throw null; } public void Reload() => throw null; + public string this[string key] { get => throw null; set { } } } - public class ConfigurationSection : Microsoft.Extensions.Configuration.IConfiguration, Microsoft.Extensions.Configuration.IConfigurationSection { public ConfigurationSection(Microsoft.Extensions.Configuration.IConfigurationRoot root, string path) => throw null; public System.Collections.Generic.IEnumerable GetChildren() => throw null; public Microsoft.Extensions.Primitives.IChangeToken GetReloadToken() => throw null; public Microsoft.Extensions.Configuration.IConfigurationSection GetSection(string key) => throw null; - public string this[string key] { get => throw null; set => throw null; } public string Key { get => throw null; } public string Path { get => throw null; } - public string Value { get => throw null; set => throw null; } + public string this[string key] { get => throw null; set { } } + public string Value { get => throw null; set { } } } - - public static class MemoryConfigurationBuilderExtensions - { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddInMemoryCollection(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddInMemoryCollection(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, System.Collections.Generic.IEnumerable> initialData) => throw null; - } - - public abstract class StreamConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider - { - public override void Load() => throw null; - public abstract void Load(System.IO.Stream stream); - public Microsoft.Extensions.Configuration.StreamConfigurationSource Source { get => throw null; } - public StreamConfigurationProvider(Microsoft.Extensions.Configuration.StreamConfigurationSource source) => throw null; - } - - public abstract class StreamConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource - { - public abstract Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder); - public System.IO.Stream Stream { get => throw null; set => throw null; } - protected StreamConfigurationSource() => throw null; - } - namespace Memory { public class MemoryConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { public void Add(string key, string value) => throw null; + public MemoryConfigurationProvider(Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource source) => throw null; public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public MemoryConfigurationProvider(Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource source) => throw null; } - public class MemoryConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; - public System.Collections.Generic.IEnumerable> InitialData { get => throw null; set => throw null; } public MemoryConfigurationSource() => throw null; + public System.Collections.Generic.IEnumerable> InitialData { get => throw null; set { } } } - + } + public static partial class MemoryConfigurationBuilderExtensions + { + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddInMemoryCollection(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddInMemoryCollection(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, System.Collections.Generic.IEnumerable> initialData) => throw null; + } + public abstract class StreamConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider + { + public StreamConfigurationProvider(Microsoft.Extensions.Configuration.StreamConfigurationSource source) => throw null; + public override void Load() => throw null; + public abstract void Load(System.IO.Stream stream); + public Microsoft.Extensions.Configuration.StreamConfigurationSource Source { get => throw null; } + } + public abstract class StreamConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource + { + public abstract Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder); + protected StreamConfigurationSource() => throw null; + public System.IO.Stream Stream { get => throw null; set { } } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.Abstractions.cs index 8d7706b9823..42ec0bbdb52 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.DependencyInjection.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -15,101 +14,125 @@ namespace Microsoft public static object GetServiceOrCreateInstance(System.IServiceProvider provider, System.Type type) => throw null; public static T GetServiceOrCreateInstance(System.IServiceProvider provider) => throw null; } - public class ActivatorUtilitiesConstructorAttribute : System.Attribute { public ActivatorUtilitiesConstructorAttribute() => throw null; } - - public struct AsyncServiceScope : Microsoft.Extensions.DependencyInjection.IServiceScope, System.IAsyncDisposable, System.IDisposable + public struct AsyncServiceScope : Microsoft.Extensions.DependencyInjection.IServiceScope, System.IDisposable, System.IAsyncDisposable { - // Stub generator skipped constructor public AsyncServiceScope(Microsoft.Extensions.DependencyInjection.IServiceScope serviceScope) => throw null; public void Dispose() => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public System.IServiceProvider ServiceProvider { get => throw null; } } - - public interface IServiceCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + namespace Extensions + { + public static partial class ServiceCollectionDescriptorExtensions + { + public static Microsoft.Extensions.DependencyInjection.IServiceCollection Add(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, Microsoft.Extensions.DependencyInjection.ServiceDescriptor descriptor) => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection Add(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Collections.Generic.IEnumerable descriptors) => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection RemoveAll(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type serviceType) => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection RemoveAll(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection Replace(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, Microsoft.Extensions.DependencyInjection.ServiceDescriptor descriptor) => throw null; + public static void TryAdd(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, Microsoft.Extensions.DependencyInjection.ServiceDescriptor descriptor) => throw null; + public static void TryAdd(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Collections.Generic.IEnumerable descriptors) => throw null; + public static void TryAddEnumerable(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.DependencyInjection.ServiceDescriptor descriptor) => throw null; + public static void TryAddEnumerable(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Collections.Generic.IEnumerable descriptors) => throw null; + public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service) => throw null; + public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Func implementationFactory) => throw null; + public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Type implementationType) => throw null; + public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TService : class => throw null; + public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class => throw null; + public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TService : class where TImplementation : class, TService => throw null; + public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service) => throw null; + public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Func implementationFactory) => throw null; + public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Type implementationType) => throw null; + public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TService : class => throw null; + public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class => throw null; + public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, TService instance) where TService : class => throw null; + public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TService : class where TImplementation : class, TService => throw null; + public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service) => throw null; + public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Func implementationFactory) => throw null; + public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Type implementationType) => throw null; + public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TService : class => throw null; + public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class => throw null; + public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TService : class where TImplementation : class, TService => throw null; + } + } + public interface IServiceCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList { } - public interface IServiceProviderFactory { TContainerBuilder CreateBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection services); System.IServiceProvider CreateServiceProvider(TContainerBuilder containerBuilder); } - public interface IServiceProviderIsService { bool IsService(System.Type serviceType); } - public interface IServiceScope : System.IDisposable { System.IServiceProvider ServiceProvider { get; } } - public interface IServiceScopeFactory { Microsoft.Extensions.DependencyInjection.IServiceScope CreateScope(); } - public interface ISupportRequiredService { object GetRequiredService(System.Type serviceType); } - public delegate object ObjectFactory(System.IServiceProvider serviceProvider, object[] arguments); - - public class ServiceCollection : Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + public class ServiceCollection : Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList { void System.Collections.Generic.ICollection.Add(Microsoft.Extensions.DependencyInjection.ServiceDescriptor item) => throw null; public void Clear() => throw null; public bool Contains(Microsoft.Extensions.DependencyInjection.ServiceDescriptor item) => throw null; public void CopyTo(Microsoft.Extensions.DependencyInjection.ServiceDescriptor[] array, int arrayIndex) => throw null; public int Count { get => throw null; } + public ServiceCollection() => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public int IndexOf(Microsoft.Extensions.DependencyInjection.ServiceDescriptor item) => throw null; public void Insert(int index, Microsoft.Extensions.DependencyInjection.ServiceDescriptor item) => throw null; public bool IsReadOnly { get => throw null; } - public Microsoft.Extensions.DependencyInjection.ServiceDescriptor this[int index] { get => throw null; set => throw null; } public void MakeReadOnly() => throw null; public bool Remove(Microsoft.Extensions.DependencyInjection.ServiceDescriptor item) => throw null; public void RemoveAt(int index) => throw null; - public ServiceCollection() => throw null; + public Microsoft.Extensions.DependencyInjection.ServiceDescriptor this[int index] { get => throw null; set { } } } - - public static class ServiceCollectionServiceExtensions + public static partial class ServiceCollectionServiceExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType, System.Func implementationFactory) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType, System.Type implementationType) => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TImplementation : class, TService where TService : class => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TService : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TService : class where TImplementation : class, TService => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class where TImplementation : class, TService => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType, System.Func implementationFactory) => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType, System.Type implementationType) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType, object implementationInstance) => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TImplementation : class, TService where TService : class => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType, System.Type implementationType) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TService : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, TService implementationInstance) where TService : class => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TService : class where TImplementation : class, TService => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class where TImplementation : class, TService => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType, System.Func implementationFactory) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType, System.Type implementationType) => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TImplementation : class, TService where TService : class => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TService : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TService : class where TImplementation : class, TService => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class where TImplementation : class, TService => throw null; } - public class ServiceDescriptor { + public ServiceDescriptor(System.Type serviceType, System.Func factory, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime) => throw null; + public ServiceDescriptor(System.Type serviceType, object instance) => throw null; + public ServiceDescriptor(System.Type serviceType, System.Type implementationType, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime) => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Describe(System.Type serviceType, System.Func implementationFactory, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime) => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Describe(System.Type serviceType, System.Type implementationType, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime) => throw null; public System.Func ImplementationFactory { get => throw null; } @@ -118,39 +141,34 @@ namespace Microsoft public Microsoft.Extensions.DependencyInjection.ServiceLifetime Lifetime { get => throw null; } public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Scoped(System.Type service, System.Func implementationFactory) => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Scoped(System.Type service, System.Type implementationType) => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Scoped() where TImplementation : class, TService where TService : class => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Scoped(System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Scoped(System.Func implementationFactory) where TService : class => throw null; - public ServiceDescriptor(System.Type serviceType, System.Func factory, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime) => throw null; - public ServiceDescriptor(System.Type serviceType, System.Type implementationType, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime) => throw null; - public ServiceDescriptor(System.Type serviceType, object instance) => throw null; + public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Scoped() where TService : class where TImplementation : class, TService => throw null; + public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Scoped(System.Func implementationFactory) where TService : class where TImplementation : class, TService => throw null; public System.Type ServiceType { get => throw null; } public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(System.Type serviceType, System.Func implementationFactory) => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(System.Type service, System.Type implementationType) => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(System.Type serviceType, object implementationInstance) => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton() where TImplementation : class, TService where TService : class => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; + public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(System.Type service, System.Type implementationType) => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(System.Func implementationFactory) where TService : class => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(TService implementationInstance) where TService : class => throw null; + public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton() where TService : class where TImplementation : class, TService => throw null; + public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(System.Func implementationFactory) where TService : class where TImplementation : class, TService => throw null; public override string ToString() => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Transient(System.Type service, System.Func implementationFactory) => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Transient(System.Type service, System.Type implementationType) => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Transient() where TImplementation : class, TService where TService : class => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Transient(System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Transient(System.Func implementationFactory) where TService : class => throw null; + public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Transient() where TService : class where TImplementation : class, TService => throw null; + public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Transient(System.Func implementationFactory) where TService : class where TImplementation : class, TService => throw null; } - - public enum ServiceLifetime : int + public enum ServiceLifetime { - Scoped = 1, Singleton = 0, + Scoped = 1, Transient = 2, } - - public static class ServiceProviderServiceExtensions + public static partial class ServiceProviderServiceExtensions { - public static Microsoft.Extensions.DependencyInjection.AsyncServiceScope CreateAsyncScope(this System.IServiceProvider provider) => throw null; public static Microsoft.Extensions.DependencyInjection.AsyncServiceScope CreateAsyncScope(this Microsoft.Extensions.DependencyInjection.IServiceScopeFactory serviceScopeFactory) => throw null; + public static Microsoft.Extensions.DependencyInjection.AsyncServiceScope CreateAsyncScope(this System.IServiceProvider provider) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceScope CreateScope(this System.IServiceProvider provider) => throw null; public static object GetRequiredService(this System.IServiceProvider provider, System.Type serviceType) => throw null; public static T GetRequiredService(this System.IServiceProvider provider) => throw null; @@ -158,42 +176,6 @@ namespace Microsoft public static System.Collections.Generic.IEnumerable GetServices(this System.IServiceProvider provider, System.Type serviceType) => throw null; public static System.Collections.Generic.IEnumerable GetServices(this System.IServiceProvider provider) => throw null; } - - namespace Extensions - { - public static class ServiceCollectionDescriptorExtensions - { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection Add(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Collections.Generic.IEnumerable descriptors) => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection Add(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, Microsoft.Extensions.DependencyInjection.ServiceDescriptor descriptor) => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection RemoveAll(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type serviceType) => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection RemoveAll(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection Replace(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, Microsoft.Extensions.DependencyInjection.ServiceDescriptor descriptor) => throw null; - public static void TryAdd(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Collections.Generic.IEnumerable descriptors) => throw null; - public static void TryAdd(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, Microsoft.Extensions.DependencyInjection.ServiceDescriptor descriptor) => throw null; - public static void TryAddEnumerable(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Collections.Generic.IEnumerable descriptors) => throw null; - public static void TryAddEnumerable(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.DependencyInjection.ServiceDescriptor descriptor) => throw null; - public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service) => throw null; - public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Func implementationFactory) => throw null; - public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Type implementationType) => throw null; - public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TImplementation : class, TService where TService : class => throw null; - public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TService : class => throw null; - public static void TryAddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class => throw null; - public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service) => throw null; - public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Func implementationFactory) => throw null; - public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Type implementationType) => throw null; - public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TImplementation : class, TService where TService : class => throw null; - public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TService : class => throw null; - public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class => throw null; - public static void TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, TService instance) where TService : class => throw null; - public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service) => throw null; - public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Func implementationFactory) => throw null; - public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection, System.Type service, System.Type implementationType) => throw null; - public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TImplementation : class, TService where TService : class => throw null; - public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TService : class => throw null; - public static void TryAddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where TService : class => throw null; - } - - } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.cs index d0a76b8f06f..4c92aa7e1c0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.DependencyInjection, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -14,28 +13,24 @@ namespace Microsoft public DefaultServiceProviderFactory() => throw null; public DefaultServiceProviderFactory(Microsoft.Extensions.DependencyInjection.ServiceProviderOptions options) => throw null; } - - public static class ServiceCollectionContainerBuilderExtensions + public static partial class ServiceCollectionContainerBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.ServiceProvider BuildServiceProvider(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceProvider BuildServiceProvider(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.DependencyInjection.ServiceProviderOptions options) => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceProvider BuildServiceProvider(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, bool validateScopes) => throw null; } - - public class ServiceProvider : System.IAsyncDisposable, System.IDisposable, System.IServiceProvider + public sealed class ServiceProvider : System.IAsyncDisposable, System.IDisposable, System.IServiceProvider { public void Dispose() => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public object GetService(System.Type serviceType) => throw null; } - public class ServiceProviderOptions { public ServiceProviderOptions() => throw null; - public bool ValidateOnBuild { get => throw null; set => throw null; } - public bool ValidateScopes { get => throw null; set => throw null; } + public bool ValidateOnBuild { get => throw null; set { } } + public bool ValidateScopes { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.cs index 36b8d407872..112a88637cd 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -9,77 +8,67 @@ namespace Microsoft { namespace HealthChecks { - public class HealthCheckContext + public sealed class HealthCheckContext { public HealthCheckContext() => throw null; - public Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckRegistration Registration { get => throw null; set => throw null; } + public Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckRegistration Registration { get => throw null; set { } } } - - public class HealthCheckRegistration + public sealed class HealthCheckRegistration { - public System.Func Factory { get => throw null; set => throw null; } - public Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus FailureStatus { get => throw null; set => throw null; } - public HealthCheckRegistration(string name, System.Func factory, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags) => throw null; - public HealthCheckRegistration(string name, System.Func factory, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags, System.TimeSpan? timeout) => throw null; public HealthCheckRegistration(string name, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck instance, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags) => throw null; public HealthCheckRegistration(string name, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck instance, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags, System.TimeSpan? timeout) => throw null; - public string Name { get => throw null; set => throw null; } + public HealthCheckRegistration(string name, System.Func factory, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags) => throw null; + public HealthCheckRegistration(string name, System.Func factory, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags, System.TimeSpan? timeout) => throw null; + public System.Func Factory { get => throw null; set { } } + public Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus FailureStatus { get => throw null; set { } } + public string Name { get => throw null; set { } } public System.Collections.Generic.ISet Tags { get => throw null; } - public System.TimeSpan Timeout { get => throw null; set => throw null; } + public System.TimeSpan Timeout { get => throw null; set { } } } - public struct HealthCheckResult { + public HealthCheckResult(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus status, string description = default(string), System.Exception exception = default(System.Exception), System.Collections.Generic.IReadOnlyDictionary data = default(System.Collections.Generic.IReadOnlyDictionary)) => throw null; public System.Collections.Generic.IReadOnlyDictionary Data { get => throw null; } public static Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult Degraded(string description = default(string), System.Exception exception = default(System.Exception), System.Collections.Generic.IReadOnlyDictionary data = default(System.Collections.Generic.IReadOnlyDictionary)) => throw null; public string Description { get => throw null; } public System.Exception Exception { get => throw null; } - // Stub generator skipped constructor - public HealthCheckResult(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus status, string description = default(string), System.Exception exception = default(System.Exception), System.Collections.Generic.IReadOnlyDictionary data = default(System.Collections.Generic.IReadOnlyDictionary)) => throw null; public static Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult Healthy(string description = default(string), System.Collections.Generic.IReadOnlyDictionary data = default(System.Collections.Generic.IReadOnlyDictionary)) => throw null; public Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus Status { get => throw null; } public static Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult Unhealthy(string description = default(string), System.Exception exception = default(System.Exception), System.Collections.Generic.IReadOnlyDictionary data = default(System.Collections.Generic.IReadOnlyDictionary)) => throw null; } - - public class HealthReport + public sealed class HealthReport { - public System.Collections.Generic.IReadOnlyDictionary Entries { get => throw null; } - public HealthReport(System.Collections.Generic.IReadOnlyDictionary entries, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus status, System.TimeSpan totalDuration) => throw null; public HealthReport(System.Collections.Generic.IReadOnlyDictionary entries, System.TimeSpan totalDuration) => throw null; + public HealthReport(System.Collections.Generic.IReadOnlyDictionary entries, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus status, System.TimeSpan totalDuration) => throw null; + public System.Collections.Generic.IReadOnlyDictionary Entries { get => throw null; } public Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus Status { get => throw null; } public System.TimeSpan TotalDuration { get => throw null; } } - public struct HealthReportEntry { + public HealthReportEntry(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus status, string description, System.TimeSpan duration, System.Exception exception, System.Collections.Generic.IReadOnlyDictionary data) => throw null; + public HealthReportEntry(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus status, string description, System.TimeSpan duration, System.Exception exception, System.Collections.Generic.IReadOnlyDictionary data, System.Collections.Generic.IEnumerable tags = default(System.Collections.Generic.IEnumerable)) => throw null; public System.Collections.Generic.IReadOnlyDictionary Data { get => throw null; } public string Description { get => throw null; } public System.TimeSpan Duration { get => throw null; } public System.Exception Exception { get => throw null; } - // Stub generator skipped constructor - public HealthReportEntry(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus status, string description, System.TimeSpan duration, System.Exception exception, System.Collections.Generic.IReadOnlyDictionary data) => throw null; - public HealthReportEntry(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus status, string description, System.TimeSpan duration, System.Exception exception, System.Collections.Generic.IReadOnlyDictionary data, System.Collections.Generic.IEnumerable tags = default(System.Collections.Generic.IEnumerable)) => throw null; public Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus Status { get => throw null; } public System.Collections.Generic.IEnumerable Tags { get => throw null; } } - - public enum HealthStatus : int + public enum HealthStatus { + Unhealthy = 0, Degraded = 1, Healthy = 2, - Unhealthy = 0, } - public interface IHealthCheck { System.Threading.Tasks.Task CheckHealthAsync(Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - public interface IHealthCheckPublisher { System.Threading.Tasks.Task PublishAsync(Microsoft.Extensions.Diagnostics.HealthChecks.HealthReport report, System.Threading.CancellationToken cancellationToken); } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Diagnostics.HealthChecks.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Diagnostics.HealthChecks.cs index 7b0dead748d..504866e016c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Diagnostics.HealthChecks.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Diagnostics.HealthChecks.cs @@ -1,74 +1,66 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class HealthCheckServiceCollectionExtensions - { - public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddHealthChecks(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - } - - public static class HealthChecksBuilderAddCheckExtensions + public static partial class HealthChecksBuilderAddCheckExtensions { public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck instance, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags) => throw null; public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck instance, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus = default(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus?), System.Collections.Generic.IEnumerable tags = default(System.Collections.Generic.IEnumerable), System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags) where T : class, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck => throw null; public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus = default(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus?), System.Collections.Generic.IEnumerable tags = default(System.Collections.Generic.IEnumerable), System.TimeSpan? timeout = default(System.TimeSpan?)) where T : class, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck => throw null; - public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddTypeActivatedCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags, System.TimeSpan timeout, params object[] args) where T : class, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck => throw null; - public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddTypeActivatedCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags, params object[] args) where T : class, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck => throw null; - public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddTypeActivatedCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, params object[] args) where T : class, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck => throw null; public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddTypeActivatedCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, params object[] args) where T : class, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck => throw null; + public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddTypeActivatedCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, params object[] args) where T : class, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck => throw null; + public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddTypeActivatedCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags, params object[] args) where T : class, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck => throw null; + public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddTypeActivatedCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags, System.TimeSpan timeout, params object[] args) where T : class, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck => throw null; } - - public static class HealthChecksBuilderDelegateExtensions + public static partial class HealthChecksBuilderDelegateExtensions { - public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddAsyncCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func> check, System.Collections.Generic.IEnumerable tags) => throw null; - public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddAsyncCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func> check, System.Collections.Generic.IEnumerable tags = default(System.Collections.Generic.IEnumerable), System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddAsyncCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func> check, System.Collections.Generic.IEnumerable tags) => throw null; public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddAsyncCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func> check, System.Collections.Generic.IEnumerable tags = default(System.Collections.Generic.IEnumerable), System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; - public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func check, System.Collections.Generic.IEnumerable tags) => throw null; - public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func check, System.Collections.Generic.IEnumerable tags = default(System.Collections.Generic.IEnumerable), System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddAsyncCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func> check, System.Collections.Generic.IEnumerable tags) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddAsyncCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func> check, System.Collections.Generic.IEnumerable tags = default(System.Collections.Generic.IEnumerable), System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func check, System.Collections.Generic.IEnumerable tags) => throw null; public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func check, System.Collections.Generic.IEnumerable tags = default(System.Collections.Generic.IEnumerable), System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func check, System.Collections.Generic.IEnumerable tags) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name, System.Func check, System.Collections.Generic.IEnumerable tags = default(System.Collections.Generic.IEnumerable), System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; + } + public static partial class HealthCheckServiceCollectionExtensions + { + public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddHealthChecks(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; } - public interface IHealthChecksBuilder { Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder Add(Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckRegistration registration); Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - } namespace Diagnostics { namespace HealthChecks { - public class HealthCheckPublisherOptions + public sealed class HealthCheckPublisherOptions { - public System.TimeSpan Delay { get => throw null; set => throw null; } public HealthCheckPublisherOptions() => throw null; - public System.TimeSpan Period { get => throw null; set => throw null; } - public System.Func Predicate { get => throw null; set => throw null; } - public System.TimeSpan Timeout { get => throw null; set => throw null; } + public System.TimeSpan Delay { get => throw null; set { } } + public System.TimeSpan Period { get => throw null; set { } } + public System.Func Predicate { get => throw null; set { } } + public System.TimeSpan Timeout { get => throw null; set { } } } - public abstract class HealthCheckService { public System.Threading.Tasks.Task CheckHealthAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public abstract System.Threading.Tasks.Task CheckHealthAsync(System.Func predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); protected HealthCheckService() => throw null; } - - public class HealthCheckServiceOptions + public sealed class HealthCheckServiceOptions { public HealthCheckServiceOptions() => throw null; public System.Collections.Generic.ICollection Registrations { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs index 69563ef43fc..e5363a8a6b2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Features, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -12,36 +11,31 @@ namespace Microsoft public class FeatureCollection : Microsoft.AspNetCore.Http.Features.IFeatureCollection, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { public FeatureCollection() => throw null; - public FeatureCollection(Microsoft.AspNetCore.Http.Features.IFeatureCollection defaults) => throw null; public FeatureCollection(int initialCapacity) => throw null; + public FeatureCollection(Microsoft.AspNetCore.Http.Features.IFeatureCollection defaults) => throw null; public TFeature Get() => throw null; - public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; public bool IsReadOnly { get => throw null; } - public object this[System.Type key] { get => throw null; set => throw null; } public virtual int Revision { get => throw null; } public void Set(TFeature instance) => throw null; + public object this[System.Type key] { get => throw null; set { } } } - - public static class FeatureCollectionExtensions + public static partial class FeatureCollectionExtensions { - public static object GetRequiredFeature(this Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection, System.Type key) => throw null; public static TFeature GetRequiredFeature(this Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) => throw null; + public static object GetRequiredFeature(this Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection, System.Type key) => throw null; } - public struct FeatureReference { public static Microsoft.AspNetCore.Http.Features.FeatureReference Default; - // Stub generator skipped constructor public T Fetch(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; public T Update(Microsoft.AspNetCore.Http.Features.IFeatureCollection features, T feature) => throw null; } - public struct FeatureReferences { public TCache Cache; public Microsoft.AspNetCore.Http.Features.IFeatureCollection Collection { get => throw null; } - // Stub generator skipped constructor public FeatureReferences(Microsoft.AspNetCore.Http.Features.IFeatureCollection collection) => throw null; public TFeature Fetch(ref TFeature cached, TState state, System.Func factory) where TFeature : class => throw null; public TFeature Fetch(ref TFeature cached, System.Func factory) where TFeature : class => throw null; @@ -49,16 +43,14 @@ namespace Microsoft public void Initalize(Microsoft.AspNetCore.Http.Features.IFeatureCollection collection, int revision) => throw null; public int Revision { get => throw null; } } - public interface IFeatureCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { TFeature Get(); bool IsReadOnly { get; } - object this[System.Type key] { get; set; } int Revision { get; } void Set(TFeature instance); + object this[System.Type key] { get; set; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Abstractions.cs index f09d2e0fc08..7aad178a5ac 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.FileProviders.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -11,46 +10,41 @@ namespace Microsoft { bool Exists { get; } } - public interface IFileInfo { System.IO.Stream CreateReadStream(); bool Exists { get; } bool IsDirectory { get; } System.DateTimeOffset LastModified { get; } - System.Int64 Length { get; } + long Length { get; } string Name { get; } string PhysicalPath { get; } } - public interface IFileProvider { Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath); Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath); Microsoft.Extensions.Primitives.IChangeToken Watch(string filter); } - public class NotFoundDirectoryContents : Microsoft.Extensions.FileProviders.IDirectoryContents, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + public NotFoundDirectoryContents() => throw null; public bool Exists { get => throw null; } public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public NotFoundDirectoryContents() => throw null; public static Microsoft.Extensions.FileProviders.NotFoundDirectoryContents Singleton { get => throw null; } } - public class NotFoundFileInfo : Microsoft.Extensions.FileProviders.IFileInfo { public System.IO.Stream CreateReadStream() => throw null; + public NotFoundFileInfo(string name) => throw null; public bool Exists { get => throw null; } public bool IsDirectory { get => throw null; } public System.DateTimeOffset LastModified { get => throw null; } - public System.Int64 Length { get => throw null; } + public long Length { get => throw null; } public string Name { get => throw null; } - public NotFoundFileInfo(string name) => throw null; public string PhysicalPath { get => throw null; } } - public class NullChangeToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => throw null; } @@ -58,15 +52,13 @@ namespace Microsoft public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; public static Microsoft.Extensions.FileProviders.NullChangeToken Singleton { get => throw null; } } - public class NullFileProvider : Microsoft.Extensions.FileProviders.IFileProvider { + public NullFileProvider() => throw null; public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) => throw null; public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) => throw null; - public NullFileProvider() => throw null; public Microsoft.Extensions.Primitives.IChangeToken Watch(string filter) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Composite.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Composite.cs index de2b0bdd3fd..b5abefb69aa 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Composite.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Composite.cs @@ -1,22 +1,11 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.FileProviders.Composite, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace FileProviders { - public class CompositeFileProvider : Microsoft.Extensions.FileProviders.IFileProvider - { - public CompositeFileProvider(System.Collections.Generic.IEnumerable fileProviders) => throw null; - public CompositeFileProvider(params Microsoft.Extensions.FileProviders.IFileProvider[] fileProviders) => throw null; - public System.Collections.Generic.IEnumerable FileProviders { get => throw null; } - public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) => throw null; - public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) => throw null; - public Microsoft.Extensions.Primitives.IChangeToken Watch(string pattern) => throw null; - } - namespace Composite { public class CompositeDirectoryContents : Microsoft.Extensions.FileProviders.IDirectoryContents, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable @@ -26,7 +15,15 @@ namespace Microsoft public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - + } + public class CompositeFileProvider : Microsoft.Extensions.FileProviders.IFileProvider + { + public CompositeFileProvider(params Microsoft.Extensions.FileProviders.IFileProvider[] fileProviders) => throw null; + public CompositeFileProvider(System.Collections.Generic.IEnumerable fileProviders) => throw null; + public System.Collections.Generic.IEnumerable FileProviders { get => throw null; } + public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) => throw null; + public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) => throw null; + public Microsoft.Extensions.Primitives.IChangeToken Watch(string pattern) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Embedded.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Embedded.cs index 98158803de5..b9b5ca27d34 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Embedded.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Embedded.cs @@ -1,33 +1,11 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.FileProviders.Embedded, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace FileProviders { - public class EmbeddedFileProvider : Microsoft.Extensions.FileProviders.IFileProvider - { - public EmbeddedFileProvider(System.Reflection.Assembly assembly) => throw null; - public EmbeddedFileProvider(System.Reflection.Assembly assembly, string baseNamespace) => throw null; - public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) => throw null; - public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) => throw null; - public Microsoft.Extensions.Primitives.IChangeToken Watch(string pattern) => throw null; - } - - public class ManifestEmbeddedFileProvider : Microsoft.Extensions.FileProviders.IFileProvider - { - public System.Reflection.Assembly Assembly { get => throw null; } - public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) => throw null; - public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) => throw null; - public ManifestEmbeddedFileProvider(System.Reflection.Assembly assembly) => throw null; - public ManifestEmbeddedFileProvider(System.Reflection.Assembly assembly, string root) => throw null; - public ManifestEmbeddedFileProvider(System.Reflection.Assembly assembly, string root, System.DateTimeOffset lastModified) => throw null; - public ManifestEmbeddedFileProvider(System.Reflection.Assembly assembly, string root, string manifestName, System.DateTimeOffset lastModified) => throw null; - public Microsoft.Extensions.Primitives.IChangeToken Watch(string filter) => throw null; - } - namespace Embedded { public class EmbeddedResourceFileInfo : Microsoft.Extensions.FileProviders.IFileInfo @@ -37,11 +15,29 @@ namespace Microsoft public bool Exists { get => throw null; } public bool IsDirectory { get => throw null; } public System.DateTimeOffset LastModified { get => throw null; } - public System.Int64 Length { get => throw null; } + public long Length { get => throw null; } public string Name { get => throw null; } public string PhysicalPath { get => throw null; } } - + } + public class EmbeddedFileProvider : Microsoft.Extensions.FileProviders.IFileProvider + { + public EmbeddedFileProvider(System.Reflection.Assembly assembly) => throw null; + public EmbeddedFileProvider(System.Reflection.Assembly assembly, string baseNamespace) => throw null; + public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) => throw null; + public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) => throw null; + public Microsoft.Extensions.Primitives.IChangeToken Watch(string pattern) => throw null; + } + public class ManifestEmbeddedFileProvider : Microsoft.Extensions.FileProviders.IFileProvider + { + public System.Reflection.Assembly Assembly { get => throw null; } + public ManifestEmbeddedFileProvider(System.Reflection.Assembly assembly) => throw null; + public ManifestEmbeddedFileProvider(System.Reflection.Assembly assembly, string root) => throw null; + public ManifestEmbeddedFileProvider(System.Reflection.Assembly assembly, string root, System.DateTimeOffset lastModified) => throw null; + public ManifestEmbeddedFileProvider(System.Reflection.Assembly assembly, string root, string manifestName, System.DateTimeOffset lastModified) => throw null; + public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) => throw null; + public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) => throw null; + public Microsoft.Extensions.Primitives.IChangeToken Watch(string filter) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Physical.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Physical.cs index 557246dd9f4..b4c25348be6 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Physical.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Physical.cs @@ -1,102 +1,91 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.FileProviders.Physical, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace FileProviders { - public class PhysicalFileProvider : Microsoft.Extensions.FileProviders.IFileProvider, System.IDisposable - { - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) => throw null; - public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) => throw null; - public PhysicalFileProvider(string root) => throw null; - public PhysicalFileProvider(string root, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters) => throw null; - public string Root { get => throw null; } - public bool UseActivePolling { get => throw null; set => throw null; } - public bool UsePollingFileWatcher { get => throw null; set => throw null; } - public Microsoft.Extensions.Primitives.IChangeToken Watch(string filter) => throw null; - // ERR: Stub generator didn't handle member: ~PhysicalFileProvider - } - namespace Internal { public class PhysicalDirectoryContents : Microsoft.Extensions.FileProviders.IDirectoryContents, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + public PhysicalDirectoryContents(string directory) => throw null; + public PhysicalDirectoryContents(string directory, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters) => throw null; public bool Exists { get => throw null; } public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public PhysicalDirectoryContents(string directory) => throw null; - public PhysicalDirectoryContents(string directory, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters) => throw null; } - } namespace Physical { [System.Flags] - public enum ExclusionFilters : int + public enum ExclusionFilters { + None = 0, DotPrefixed = 1, Hidden = 2, - None = 0, - Sensitive = 7, System = 4, + Sensitive = 7, } - public class PhysicalDirectoryInfo : Microsoft.Extensions.FileProviders.IFileInfo { public System.IO.Stream CreateReadStream() => throw null; + public PhysicalDirectoryInfo(System.IO.DirectoryInfo info) => throw null; public bool Exists { get => throw null; } public bool IsDirectory { get => throw null; } public System.DateTimeOffset LastModified { get => throw null; } - public System.Int64 Length { get => throw null; } + public long Length { get => throw null; } public string Name { get => throw null; } - public PhysicalDirectoryInfo(System.IO.DirectoryInfo info) => throw null; public string PhysicalPath { get => throw null; } } - public class PhysicalFileInfo : Microsoft.Extensions.FileProviders.IFileInfo { public System.IO.Stream CreateReadStream() => throw null; + public PhysicalFileInfo(System.IO.FileInfo info) => throw null; public bool Exists { get => throw null; } public bool IsDirectory { get => throw null; } public System.DateTimeOffset LastModified { get => throw null; } - public System.Int64 Length { get => throw null; } + public long Length { get => throw null; } public string Name { get => throw null; } - public PhysicalFileInfo(System.IO.FileInfo info) => throw null; public string PhysicalPath { get => throw null; } } - public class PhysicalFilesWatcher : System.IDisposable { public Microsoft.Extensions.Primitives.IChangeToken CreateFileChangeToken(string filter) => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; public PhysicalFilesWatcher(string root, System.IO.FileSystemWatcher fileSystemWatcher, bool pollForChanges) => throw null; public PhysicalFilesWatcher(string root, System.IO.FileSystemWatcher fileSystemWatcher, bool pollForChanges, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters) => throw null; - // ERR: Stub generator didn't handle member: ~PhysicalFilesWatcher + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; } - public class PollingFileChangeToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => throw null; } - public bool HasChanged { get => throw null; } public PollingFileChangeToken(System.IO.FileInfo fileInfo) => throw null; + public bool HasChanged { get => throw null; } public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; } - public class PollingWildCardChangeToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => throw null; } + public PollingWildCardChangeToken(string root, string pattern) => throw null; protected virtual System.DateTime GetLastWriteUtc(string path) => throw null; public bool HasChanged { get => throw null; } - public PollingWildCardChangeToken(string root, string pattern) => throw null; System.IDisposable Microsoft.Extensions.Primitives.IChangeToken.RegisterChangeCallback(System.Action callback, object state) => throw null; } - + } + public class PhysicalFileProvider : Microsoft.Extensions.FileProviders.IFileProvider, System.IDisposable + { + public PhysicalFileProvider(string root) => throw null; + public PhysicalFileProvider(string root, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) => throw null; + public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) => throw null; + public string Root { get => throw null; } + public bool UseActivePolling { get => throw null; set { } } + public bool UsePollingFileWatcher { get => throw null; set { } } + public Microsoft.Extensions.Primitives.IChangeToken Watch(string filter) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileSystemGlobbing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileSystemGlobbing.cs index 17b83af8040..8b4f5ea9891 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileSystemGlobbing.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileSystemGlobbing.cs @@ -1,62 +1,11 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.FileSystemGlobbing, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace FileSystemGlobbing { - public struct FilePatternMatch : System.IEquatable - { - public bool Equals(Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch other) => throw null; - public override bool Equals(object obj) => throw null; - // Stub generator skipped constructor - public FilePatternMatch(string path, string stem) => throw null; - public override int GetHashCode() => throw null; - public string Path { get => throw null; } - public string Stem { get => throw null; } - } - - public class InMemoryDirectoryInfo : Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase - { - public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() => throw null; - public override string FullName { get => throw null; } - public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase GetDirectory(string path) => throw null; - public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase GetFile(string path) => throw null; - public InMemoryDirectoryInfo(string rootDir, System.Collections.Generic.IEnumerable files) => throw null; - public override string Name { get => throw null; } - public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase ParentDirectory { get => throw null; } - } - - public class Matcher - { - public virtual Microsoft.Extensions.FileSystemGlobbing.Matcher AddExclude(string pattern) => throw null; - public virtual Microsoft.Extensions.FileSystemGlobbing.Matcher AddInclude(string pattern) => throw null; - public virtual Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Execute(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directoryInfo) => throw null; - public Matcher() => throw null; - public Matcher(System.StringComparison comparisonType) => throw null; - } - - public static class MatcherExtensions - { - public static void AddExcludePatterns(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, params System.Collections.Generic.IEnumerable[] excludePatternsGroups) => throw null; - public static void AddIncludePatterns(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, params System.Collections.Generic.IEnumerable[] includePatternsGroups) => throw null; - public static System.Collections.Generic.IEnumerable GetResultsInFullPath(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, string directoryPath) => throw null; - public static Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Match(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, System.Collections.Generic.IEnumerable files) => throw null; - public static Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Match(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, string file) => throw null; - public static Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Match(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, string rootDir, System.Collections.Generic.IEnumerable files) => throw null; - public static Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Match(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, string rootDir, string file) => throw null; - } - - public class PatternMatchingResult - { - public System.Collections.Generic.IEnumerable Files { get => throw null; set => throw null; } - public bool HasMatches { get => throw null; } - public PatternMatchingResult(System.Collections.Generic.IEnumerable files) => throw null; - public PatternMatchingResult(System.Collections.Generic.IEnumerable files, bool hasMatches) => throw null; - } - namespace Abstractions { public abstract class DirectoryInfoBase : Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase @@ -66,7 +15,6 @@ namespace Microsoft public abstract Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase GetDirectory(string path); public abstract Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase GetFile(string path); } - public class DirectoryInfoWrapper : Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase { public DirectoryInfoWrapper(System.IO.DirectoryInfo directoryInfo) => throw null; @@ -77,12 +25,10 @@ namespace Microsoft public override string Name { get => throw null; } public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase ParentDirectory { get => throw null; } } - public abstract class FileInfoBase : Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase { protected FileInfoBase() => throw null; } - public class FileInfoWrapper : Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase { public FileInfoWrapper(System.IO.FileInfo fileInfo) => throw null; @@ -90,7 +36,6 @@ namespace Microsoft public override string Name { get => throw null; } public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase ParentDirectory { get => throw null; } } - public abstract class FileSystemInfoBase { protected FileSystemInfoBase() => throw null; @@ -98,7 +43,25 @@ namespace Microsoft public abstract string Name { get; } public abstract Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase ParentDirectory { get; } } - + } + public struct FilePatternMatch : System.IEquatable + { + public FilePatternMatch(string path, string stem) => throw null; + public bool Equals(Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public string Path { get => throw null; } + public string Stem { get => throw null; } + } + public class InMemoryDirectoryInfo : Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase + { + public InMemoryDirectoryInfo(string rootDir, System.Collections.Generic.IEnumerable files) => throw null; + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() => throw null; + public override string FullName { get => throw null; } + public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase GetDirectory(string path) => throw null; + public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase GetFile(string path) => throw null; + public override string Name { get => throw null; } + public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase ParentDirectory { get => throw null; } } namespace Internal { @@ -106,19 +69,16 @@ namespace Microsoft { System.Collections.Generic.IList Segments { get; } } - public interface IPathSegment { bool CanProduceStem { get; } bool Match(string value); } - public interface IPattern { Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext CreatePatternContextForExclude(); Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext CreatePatternContextForInclude(); } - public interface IPatternContext { void Declare(System.Action onDeclare); @@ -127,7 +87,6 @@ namespace Microsoft bool Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory); Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase file); } - public interface IRaggedPattern : Microsoft.Extensions.FileSystemGlobbing.Internal.IPattern { System.Collections.Generic.IList> Contains { get; } @@ -135,22 +94,11 @@ namespace Microsoft System.Collections.Generic.IList Segments { get; } System.Collections.Generic.IList StartsWith { get; } } - public class MatcherContext { - public Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Execute() => throw null; public MatcherContext(System.Collections.Generic.IEnumerable includePatterns, System.Collections.Generic.IEnumerable excludePatterns, Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directoryInfo, System.StringComparison comparison) => throw null; + public Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Execute() => throw null; } - - public struct PatternTestResult - { - public static Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Failed; - public bool IsSuccessful { get => throw null; } - // Stub generator skipped constructor - public string Stem { get => throw null; } - public static Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Success(string stem) => throw null; - } - namespace PathSegments { public class CurrentPathSegment : Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment @@ -159,99 +107,88 @@ namespace Microsoft public CurrentPathSegment() => throw null; public bool Match(string value) => throw null; } - public class LiteralPathSegment : Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment { public bool CanProduceStem { get => throw null; } + public LiteralPathSegment(string value, System.StringComparison comparisonType) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public LiteralPathSegment(string value, System.StringComparison comparisonType) => throw null; public bool Match(string value) => throw null; public string Value { get => throw null; } } - public class ParentPathSegment : Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment { public bool CanProduceStem { get => throw null; } - public bool Match(string value) => throw null; public ParentPathSegment() => throw null; + public bool Match(string value) => throw null; } - public class RecursiveWildcardSegment : Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment { public bool CanProduceStem { get => throw null; } - public bool Match(string value) => throw null; public RecursiveWildcardSegment() => throw null; + public bool Match(string value) => throw null; } - public class WildcardPathSegment : Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment { public string BeginsWith { get => throw null; } public bool CanProduceStem { get => throw null; } public System.Collections.Generic.List Contains { get => throw null; } + public WildcardPathSegment(string beginsWith, System.Collections.Generic.List contains, string endsWith, System.StringComparison comparisonType) => throw null; public string EndsWith { get => throw null; } public bool Match(string value) => throw null; public static Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment MatchAll; - public WildcardPathSegment(string beginsWith, System.Collections.Generic.List contains, string endsWith, System.StringComparison comparisonType) => throw null; } - } namespace PatternContexts { public abstract class PatternContext : Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext where TFrame : struct { + protected PatternContext() => throw null; public virtual void Declare(System.Action declare) => throw null; protected TFrame Frame; protected bool IsStackEmpty() => throw null; - protected PatternContext() => throw null; public virtual void PopDirectory() => throw null; protected void PushDataFrame(TFrame frame) => throw null; public abstract void PushDirectory(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory); public abstract bool Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory); public abstract Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase file); } - public abstract class PatternContextLinear : Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext { + protected string CalculateStem(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase matchedFile) => throw null; + public PatternContextLinear(Microsoft.Extensions.FileSystemGlobbing.Internal.ILinearPattern pattern) => throw null; public struct FrameData { - // Stub generator skipped constructor public bool InStem; public bool IsNotApplicable; public int SegmentIndex; public string Stem { get => throw null; } public System.Collections.Generic.IList StemItems { get => throw null; } } - - - protected string CalculateStem(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase matchedFile) => throw null; protected bool IsLastSegment() => throw null; protected Microsoft.Extensions.FileSystemGlobbing.Internal.ILinearPattern Pattern { get => throw null; } - public PatternContextLinear(Microsoft.Extensions.FileSystemGlobbing.Internal.ILinearPattern pattern) => throw null; public override void PushDirectory(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory) => throw null; public override Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase file) => throw null; protected bool TestMatchingSegment(string value) => throw null; } - public class PatternContextLinearExclude : Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinear { public PatternContextLinearExclude(Microsoft.Extensions.FileSystemGlobbing.Internal.ILinearPattern pattern) : base(default(Microsoft.Extensions.FileSystemGlobbing.Internal.ILinearPattern)) => throw null; public override bool Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory) => throw null; } - public class PatternContextLinearInclude : Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinear { - public override void Declare(System.Action onDeclare) => throw null; public PatternContextLinearInclude(Microsoft.Extensions.FileSystemGlobbing.Internal.ILinearPattern pattern) : base(default(Microsoft.Extensions.FileSystemGlobbing.Internal.ILinearPattern)) => throw null; + public override void Declare(System.Action onDeclare) => throw null; public override bool Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory) => throw null; } - public abstract class PatternContextRagged : Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext { + protected string CalculateStem(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase matchedFile) => throw null; + public PatternContextRagged(Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern pattern) => throw null; public struct FrameData { public int BacktrackAvailable; - // Stub generator skipped constructor public bool InStem; public bool IsNotApplicable; public System.Collections.Generic.IList SegmentGroup; @@ -260,33 +197,26 @@ namespace Microsoft public string Stem { get => throw null; } public System.Collections.Generic.IList StemItems { get => throw null; } } - - - protected string CalculateStem(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase matchedFile) => throw null; protected bool IsEndingGroup() => throw null; protected bool IsStartingGroup() => throw null; protected Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern Pattern { get => throw null; } - public PatternContextRagged(Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern pattern) => throw null; public override void PopDirectory() => throw null; - public override void PushDirectory(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory) => throw null; + public override sealed void PushDirectory(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory) => throw null; public override Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase file) => throw null; protected bool TestMatchingGroup(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase value) => throw null; protected bool TestMatchingSegment(string value) => throw null; } - public class PatternContextRaggedExclude : Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged { public PatternContextRaggedExclude(Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern pattern) : base(default(Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern)) => throw null; public override bool Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory) => throw null; } - public class PatternContextRaggedInclude : Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged { - public override void Declare(System.Action onDeclare) => throw null; public PatternContextRaggedInclude(Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern pattern) : base(default(Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern)) => throw null; + public override void Declare(System.Action onDeclare) => throw null; public override bool Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory) => throw null; } - } namespace Patterns { @@ -297,8 +227,39 @@ namespace Microsoft public PatternBuilder() => throw null; public PatternBuilder(System.StringComparison comparisonType) => throw null; } - } + public struct PatternTestResult + { + public static Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Failed; + public bool IsSuccessful { get => throw null; } + public string Stem { get => throw null; } + public static Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Success(string stem) => throw null; + } + } + public class Matcher + { + public virtual Microsoft.Extensions.FileSystemGlobbing.Matcher AddExclude(string pattern) => throw null; + public virtual Microsoft.Extensions.FileSystemGlobbing.Matcher AddInclude(string pattern) => throw null; + public Matcher() => throw null; + public Matcher(System.StringComparison comparisonType) => throw null; + public virtual Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Execute(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directoryInfo) => throw null; + } + public static partial class MatcherExtensions + { + public static void AddExcludePatterns(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, params System.Collections.Generic.IEnumerable[] excludePatternsGroups) => throw null; + public static void AddIncludePatterns(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, params System.Collections.Generic.IEnumerable[] includePatternsGroups) => throw null; + public static System.Collections.Generic.IEnumerable GetResultsInFullPath(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, string directoryPath) => throw null; + public static Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Match(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, System.Collections.Generic.IEnumerable files) => throw null; + public static Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Match(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, string file) => throw null; + public static Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Match(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, string rootDir, System.Collections.Generic.IEnumerable files) => throw null; + public static Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult Match(this Microsoft.Extensions.FileSystemGlobbing.Matcher matcher, string rootDir, string file) => throw null; + } + public class PatternMatchingResult + { + public PatternMatchingResult(System.Collections.Generic.IEnumerable files) => throw null; + public PatternMatchingResult(System.Collections.Generic.IEnumerable files, bool hasMatches) => throw null; + public System.Collections.Generic.IEnumerable Files { get => throw null; set { } } + public bool HasMatches { get => throw null; } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs index 47adebded54..faff556c012 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs @@ -1,18 +1,16 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Hosting.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class ServiceCollectionHostedServiceExtensions + public static partial class ServiceCollectionHostedServiceExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHostedService(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where THostedService : class, Microsoft.Extensions.Hosting.IHostedService => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHostedService(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func implementationFactory) where THostedService : class, Microsoft.Extensions.Hosting.IHostedService => throw null; } - } namespace Hosting { @@ -25,58 +23,50 @@ namespace Microsoft public virtual System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken) => throw null; public virtual System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - public static class EnvironmentName { public static string Development; public static string Production; public static string Staging; } - public static class Environments { public static string Development; public static string Production; public static string Staging; } - - public class HostAbortedException : System.Exception + public sealed class HostAbortedException : System.Exception { public HostAbortedException() => throw null; public HostAbortedException(string message) => throw null; public HostAbortedException(string message, System.Exception innerException) => throw null; } - public class HostBuilderContext { - public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set => throw null; } + public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set { } } public HostBuilderContext(System.Collections.Generic.IDictionary properties) => throw null; - public Microsoft.Extensions.Hosting.IHostEnvironment HostingEnvironment { get => throw null; set => throw null; } + public Microsoft.Extensions.Hosting.IHostEnvironment HostingEnvironment { get => throw null; set { } } public System.Collections.Generic.IDictionary Properties { get => throw null; } } - public static class HostDefaults { public static string ApplicationKey; public static string ContentRootKey; public static string EnvironmentKey; } - - public static class HostEnvironmentEnvExtensions + public static partial class HostEnvironmentEnvExtensions { public static bool IsDevelopment(this Microsoft.Extensions.Hosting.IHostEnvironment hostEnvironment) => throw null; public static bool IsEnvironment(this Microsoft.Extensions.Hosting.IHostEnvironment hostEnvironment, string environmentName) => throw null; public static bool IsProduction(this Microsoft.Extensions.Hosting.IHostEnvironment hostEnvironment) => throw null; public static bool IsStaging(this Microsoft.Extensions.Hosting.IHostEnvironment hostEnvironment) => throw null; } - - public static class HostingAbstractionsHostBuilderExtensions + public static partial class HostingAbstractionsHostBuilderExtensions { public static Microsoft.Extensions.Hosting.IHost Start(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder) => throw null; public static System.Threading.Tasks.Task StartAsync(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - public static class HostingAbstractionsHostExtensions + public static partial class HostingAbstractionsHostExtensions { public static void Run(this Microsoft.Extensions.Hosting.IHost host) => throw null; public static System.Threading.Tasks.Task RunAsync(this Microsoft.Extensions.Hosting.IHost host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; @@ -85,15 +75,13 @@ namespace Microsoft public static void WaitForShutdown(this Microsoft.Extensions.Hosting.IHost host) => throw null; public static System.Threading.Tasks.Task WaitForShutdownAsync(this Microsoft.Extensions.Hosting.IHost host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; } - - public static class HostingEnvironmentExtensions + public static partial class HostingEnvironmentExtensions { public static bool IsDevelopment(this Microsoft.Extensions.Hosting.IHostingEnvironment hostingEnvironment) => throw null; public static bool IsEnvironment(this Microsoft.Extensions.Hosting.IHostingEnvironment hostingEnvironment, string environmentName) => throw null; public static bool IsProduction(this Microsoft.Extensions.Hosting.IHostingEnvironment hostingEnvironment) => throw null; public static bool IsStaging(this Microsoft.Extensions.Hosting.IHostingEnvironment hostingEnvironment) => throw null; } - public interface IApplicationLifetime { System.Threading.CancellationToken ApplicationStarted { get; } @@ -101,14 +89,12 @@ namespace Microsoft System.Threading.CancellationToken ApplicationStopping { get; } void StopApplication(); } - public interface IHost : System.IDisposable { System.IServiceProvider Services { get; } System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - public interface IHostApplicationLifetime { System.Threading.CancellationToken ApplicationStarted { get; } @@ -116,7 +102,6 @@ namespace Microsoft System.Threading.CancellationToken ApplicationStopping { get; } void StopApplication(); } - public interface IHostBuilder { Microsoft.Extensions.Hosting.IHost Build(); @@ -125,10 +110,14 @@ namespace Microsoft Microsoft.Extensions.Hosting.IHostBuilder ConfigureHostConfiguration(System.Action configureDelegate); Microsoft.Extensions.Hosting.IHostBuilder ConfigureServices(System.Action configureDelegate); System.Collections.Generic.IDictionary Properties { get; } - Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(System.Func> factory); Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory); + Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(System.Func> factory); + } + public interface IHostedService + { + System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken); } - public interface IHostEnvironment { string ApplicationName { get; set; } @@ -136,19 +125,6 @@ namespace Microsoft string ContentRootPath { get; set; } string EnvironmentName { get; set; } } - - public interface IHostLifetime - { - System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task WaitForStartAsync(System.Threading.CancellationToken cancellationToken); - } - - public interface IHostedService - { - System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken); - } - public interface IHostingEnvironment { string ApplicationName { get; set; } @@ -156,7 +132,11 @@ namespace Microsoft string ContentRootPath { get; set; } string EnvironmentName { get; set; } } - + public interface IHostLifetime + { + System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task WaitForStartAsync(System.Threading.CancellationToken cancellationToken); + } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.cs index 8e078972865..d4e20dfa358 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.cs @@ -1,32 +1,28 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Hosting, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class OptionsBuilderExtensions + public static partial class OptionsBuilderExtensions { public static Microsoft.Extensions.Options.OptionsBuilder ValidateOnStart(this Microsoft.Extensions.Options.OptionsBuilder optionsBuilder) where TOptions : class => throw null; } - } namespace Hosting { - public enum BackgroundServiceExceptionBehavior : int + public enum BackgroundServiceExceptionBehavior { - Ignore = 1, StopHost = 0, + Ignore = 1, } - public class ConsoleLifetimeOptions { public ConsoleLifetimeOptions() => throw null; - public bool SuppressStatusMessages { get => throw null; set => throw null; } + public bool SuppressStatusMessages { get => throw null; set { } } } - public static class Host { public static Microsoft.Extensions.Hosting.HostApplicationBuilder CreateApplicationBuilder() => throw null; @@ -34,31 +30,28 @@ namespace Microsoft public static Microsoft.Extensions.Hosting.IHostBuilder CreateDefaultBuilder() => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder CreateDefaultBuilder(string[] args) => throw null; } - - public class HostApplicationBuilder + public sealed class HostApplicationBuilder { public Microsoft.Extensions.Hosting.IHost Build() => throw null; public Microsoft.Extensions.Configuration.ConfigurationManager Configuration { get => throw null; } public void ConfigureContainer(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory, System.Action configure = default(System.Action)) => throw null; - public Microsoft.Extensions.Hosting.IHostEnvironment Environment { get => throw null; } public HostApplicationBuilder() => throw null; public HostApplicationBuilder(Microsoft.Extensions.Hosting.HostApplicationBuilderSettings settings) => throw null; public HostApplicationBuilder(string[] args) => throw null; + public Microsoft.Extensions.Hosting.IHostEnvironment Environment { get => throw null; } public Microsoft.Extensions.Logging.ILoggingBuilder Logging { get => throw null; } public Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get => throw null; } } - - public class HostApplicationBuilderSettings + public sealed class HostApplicationBuilderSettings { - public string ApplicationName { get => throw null; set => throw null; } - public string[] Args { get => throw null; set => throw null; } - public Microsoft.Extensions.Configuration.ConfigurationManager Configuration { get => throw null; set => throw null; } - public string ContentRootPath { get => throw null; set => throw null; } - public bool DisableDefaults { get => throw null; set => throw null; } - public string EnvironmentName { get => throw null; set => throw null; } + public string ApplicationName { get => throw null; set { } } + public string[] Args { get => throw null; set { } } + public Microsoft.Extensions.Configuration.ConfigurationManager Configuration { get => throw null; set { } } + public string ContentRootPath { get => throw null; set { } } public HostApplicationBuilderSettings() => throw null; + public bool DisableDefaults { get => throw null; set { } } + public string EnvironmentName { get => throw null; set { } } } - public class HostBuilder : Microsoft.Extensions.Hosting.IHostBuilder { public Microsoft.Extensions.Hosting.IHost Build() => throw null; @@ -68,18 +61,10 @@ namespace Microsoft public Microsoft.Extensions.Hosting.IHostBuilder ConfigureServices(System.Action configureDelegate) => throw null; public HostBuilder() => throw null; public System.Collections.Generic.IDictionary Properties { get => throw null; } - public Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(System.Func> factory) => throw null; public Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory) => throw null; + public Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(System.Func> factory) => throw null; } - - public class HostOptions - { - public Microsoft.Extensions.Hosting.BackgroundServiceExceptionBehavior BackgroundServiceExceptionBehavior { get => throw null; set => throw null; } - public HostOptions() => throw null; - public System.TimeSpan ShutdownTimeout { get => throw null; set => throw null; } - } - - public static class HostingHostBuilderExtensions + public static partial class HostingHostBuilderExtensions { public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureAppConfiguration(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureDelegate) => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureContainer(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureDelegate) => throw null; @@ -94,24 +79,28 @@ namespace Microsoft public static Microsoft.Extensions.Hosting.IHostBuilder UseConsoleLifetime(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder) => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder UseConsoleLifetime(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureOptions) => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder UseContentRoot(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, string contentRoot) => throw null; - public static Microsoft.Extensions.Hosting.IHostBuilder UseDefaultServiceProvider(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configure) => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder UseDefaultServiceProvider(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configure) => throw null; + public static Microsoft.Extensions.Hosting.IHostBuilder UseDefaultServiceProvider(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configure) => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder UseEnvironment(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, string environment) => throw null; } - + public class HostOptions + { + public Microsoft.Extensions.Hosting.BackgroundServiceExceptionBehavior BackgroundServiceExceptionBehavior { get => throw null; set { } } + public HostOptions() => throw null; + public System.TimeSpan ShutdownTimeout { get => throw null; set { } } + } namespace Internal { public class ApplicationLifetime : Microsoft.Extensions.Hosting.IApplicationLifetime, Microsoft.Extensions.Hosting.IHostApplicationLifetime { - public ApplicationLifetime(Microsoft.Extensions.Logging.ILogger logger) => throw null; public System.Threading.CancellationToken ApplicationStarted { get => throw null; } public System.Threading.CancellationToken ApplicationStopped { get => throw null; } public System.Threading.CancellationToken ApplicationStopping { get => throw null; } + public ApplicationLifetime(Microsoft.Extensions.Logging.ILogger logger) => throw null; public void NotifyStarted() => throw null; public void NotifyStopped() => throw null; public void StopApplication() => throw null; } - public class ConsoleLifetime : Microsoft.Extensions.Hosting.IHostLifetime, System.IDisposable { public ConsoleLifetime(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Hosting.IHostEnvironment environment, Microsoft.Extensions.Hosting.IHostApplicationLifetime applicationLifetime, Microsoft.Extensions.Options.IOptions hostOptions) => throw null; @@ -120,16 +109,14 @@ namespace Microsoft public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task WaitForStartAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - public class HostingEnvironment : Microsoft.Extensions.Hosting.IHostEnvironment, Microsoft.Extensions.Hosting.IHostingEnvironment { - public string ApplicationName { get => throw null; set => throw null; } - public Microsoft.Extensions.FileProviders.IFileProvider ContentRootFileProvider { get => throw null; set => throw null; } - public string ContentRootPath { get => throw null; set => throw null; } - public string EnvironmentName { get => throw null; set => throw null; } + public string ApplicationName { get => throw null; set { } } + public Microsoft.Extensions.FileProviders.IFileProvider ContentRootFileProvider { get => throw null; set { } } + public string ContentRootPath { get => throw null; set { } } public HostingEnvironment() => throw null; + public string EnvironmentName { get => throw null; set { } } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Http.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Http.cs index 64f9e39c787..94e2236de5d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Http.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Http.cs @@ -1,112 +1,102 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Http, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class HttpClientBuilderExtensions + public static partial class HttpClientBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where THandler : System.Net.Http.DelegatingHandler => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where TClient : class where TImplementation : class, TClient => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where TClient : class => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func factory) where TClient : class => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func factory) where TClient : class => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureHttpClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureClient) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where TClient : class where TImplementation : class, TClient => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureHttpClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureClient) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureHttpClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureClient) => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureHttpMessageHandlerBuilder(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureBuilder) => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where THandler : System.Net.Http.HttpMessageHandler => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder RedactLoggedHeaders(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func shouldRedactHeaderValue) => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder RedactLoggedHeaders(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Collections.Generic.IEnumerable redactedLoggedHeaderNames) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder RedactLoggedHeaders(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func shouldRedactHeaderValue) => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder SetHandlerLifetime(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.TimeSpan handlerLifetime) => throw null; } - - public static class HttpClientFactoryServiceCollectionExtensions + public static partial class HttpClientFactoryServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name) => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TClient : class => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureClient) where TClient : class => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureClient) where TClient : class => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name) where TClient : class => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) where TClient : class => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) where TClient : class => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TClient : class where TImplementation : class, TClient => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureClient) where TClient : class where TImplementation : class, TClient => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureClient) where TClient : class where TImplementation : class, TClient => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureClient) where TClient : class where TImplementation : class, TClient => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func factory) where TClient : class where TImplementation : class, TClient => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Func factory) where TClient : class where TImplementation : class, TClient => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name) where TClient : class where TImplementation : class, TClient => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) where TClient : class where TImplementation : class, TClient => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) where TClient : class where TImplementation : class, TClient => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) where TClient : class where TImplementation : class, TClient => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Func factory) where TClient : class where TImplementation : class, TClient => throw null; public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Func factory) where TClient : class where TImplementation : class, TClient => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TClient : class => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureClient) where TClient : class => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureClient) where TClient : class => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name) where TClient : class => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) where TClient : class => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) where TClient : class => throw null; } - public interface IHttpClientBuilder { string Name { get; } Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - } namespace Http { public class HttpClientFactoryOptions { - public System.TimeSpan HandlerLifetime { get => throw null; set => throw null; } - public System.Collections.Generic.IList> HttpClientActions { get => throw null; } public HttpClientFactoryOptions() => throw null; + public System.TimeSpan HandlerLifetime { get => throw null; set { } } + public System.Collections.Generic.IList> HttpClientActions { get => throw null; } public System.Collections.Generic.IList> HttpMessageHandlerBuilderActions { get => throw null; } - public System.Func ShouldRedactHeaderValue { get => throw null; set => throw null; } - public bool SuppressHandlerScope { get => throw null; set => throw null; } + public System.Func ShouldRedactHeaderValue { get => throw null; set { } } + public bool SuppressHandlerScope { get => throw null; set { } } } - public abstract class HttpMessageHandlerBuilder { public abstract System.Collections.Generic.IList AdditionalHandlers { get; } public abstract System.Net.Http.HttpMessageHandler Build(); - protected internal static System.Net.Http.HttpMessageHandler CreateHandlerPipeline(System.Net.Http.HttpMessageHandler primaryHandler, System.Collections.Generic.IEnumerable additionalHandlers) => throw null; + protected static System.Net.Http.HttpMessageHandler CreateHandlerPipeline(System.Net.Http.HttpMessageHandler primaryHandler, System.Collections.Generic.IEnumerable additionalHandlers) => throw null; protected HttpMessageHandlerBuilder() => throw null; public abstract string Name { get; set; } public abstract System.Net.Http.HttpMessageHandler PrimaryHandler { get; set; } public virtual System.IServiceProvider Services { get => throw null; } } - public interface IHttpMessageHandlerBuilderFilter { System.Action Configure(System.Action next); } - public interface ITypedHttpClientFactory { TClient CreateClient(System.Net.Http.HttpClient httpClient); } - namespace Logging { public class LoggingHttpMessageHandler : System.Net.Http.DelegatingHandler { public LoggingHttpMessageHandler(Microsoft.Extensions.Logging.ILogger logger) => throw null; public LoggingHttpMessageHandler(Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Http.HttpClientFactoryOptions options) => throw null; - protected internal override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; } - public class LoggingScopeHttpMessageHandler : System.Net.Http.DelegatingHandler { public LoggingScopeHttpMessageHandler(Microsoft.Extensions.Logging.ILogger logger) => throw null; public LoggingScopeHttpMessageHandler(Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Http.HttpClientFactoryOptions options) => throw null; - protected internal override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; } - } } } @@ -117,26 +107,22 @@ namespace System { namespace Http { - public static class HttpClientFactoryExtensions + public static partial class HttpClientFactoryExtensions { public static System.Net.Http.HttpClient CreateClient(this System.Net.Http.IHttpClientFactory factory) => throw null; } - - public static class HttpMessageHandlerFactoryExtensions + public static partial class HttpMessageHandlerFactoryExtensions { public static System.Net.Http.HttpMessageHandler CreateHandler(this System.Net.Http.IHttpMessageHandlerFactory factory) => throw null; } - public interface IHttpClientFactory { System.Net.Http.HttpClient CreateClient(string name); } - public interface IHttpMessageHandlerFactory { System.Net.Http.HttpMessageHandler CreateHandler(string name); } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs index f4ad09fbca6..8c05a35db0f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Identity.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -9,261 +8,49 @@ namespace Microsoft { public class AuthenticatorTokenProvider : Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider where TUser : class { - public AuthenticatorTokenProvider() => throw null; public virtual System.Threading.Tasks.Task CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; + public AuthenticatorTokenProvider() => throw null; public virtual System.Threading.Tasks.Task GenerateAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; public virtual System.Threading.Tasks.Task ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - public class ClaimsIdentityOptions { public ClaimsIdentityOptions() => throw null; - public string EmailClaimType { get => throw null; set => throw null; } - public string RoleClaimType { get => throw null; set => throw null; } - public string SecurityStampClaimType { get => throw null; set => throw null; } - public string UserIdClaimType { get => throw null; set => throw null; } - public string UserNameClaimType { get => throw null; set => throw null; } + public string EmailClaimType { get => throw null; set { } } + public string RoleClaimType { get => throw null; set { } } + public string SecurityStampClaimType { get => throw null; set { } } + public string UserIdClaimType { get => throw null; set { } } + public string UserNameClaimType { get => throw null; set { } } } - public class DefaultPersonalDataProtector : Microsoft.AspNetCore.Identity.IPersonalDataProtector { public DefaultPersonalDataProtector(Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing keyRing, Microsoft.AspNetCore.Identity.ILookupProtector protector) => throw null; public virtual string Protect(string data) => throw null; public virtual string Unprotect(string data) => throw null; } - public class DefaultUserConfirmation : Microsoft.AspNetCore.Identity.IUserConfirmation where TUser : class { public DefaultUserConfirmation() => throw null; public virtual System.Threading.Tasks.Task IsConfirmedAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - public class EmailTokenProvider : Microsoft.AspNetCore.Identity.TotpSecurityStampBasedTokenProvider where TUser : class { public override System.Threading.Tasks.Task CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; public EmailTokenProvider() => throw null; public override System.Threading.Tasks.Task GetUserModifierAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - - public interface ILookupNormalizer - { - string NormalizeEmail(string email); - string NormalizeName(string name); - } - - public interface ILookupProtector - { - string Protect(string keyId, string data); - string Unprotect(string keyId, string data); - } - - public interface ILookupProtectorKeyRing - { - string CurrentKeyId { get; } - System.Collections.Generic.IEnumerable GetAllKeyIds(); - string this[string keyId] { get; } - } - - public interface IPasswordHasher where TUser : class - { - string HashPassword(TUser user, string password); - Microsoft.AspNetCore.Identity.PasswordVerificationResult VerifyHashedPassword(TUser user, string hashedPassword, string providedPassword); - } - - public interface IPasswordValidator where TUser : class - { - System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user, string password); - } - - public interface IPersonalDataProtector - { - string Protect(string data); - string Unprotect(string data); - } - - public interface IProtectedUserStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - } - - public interface IQueryableRoleStore : Microsoft.AspNetCore.Identity.IRoleStore, System.IDisposable where TRole : class - { - System.Linq.IQueryable Roles { get; } - } - - public interface IQueryableUserStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Linq.IQueryable Users { get; } - } - - public interface IRoleClaimStore : Microsoft.AspNetCore.Identity.IRoleStore, System.IDisposable where TRole : class - { - System.Threading.Tasks.Task AddClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetClaimsAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RemoveClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - public interface IRoleStore : System.IDisposable where TRole : class - { - System.Threading.Tasks.Task CreateAsync(TRole role, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task DeleteAsync(TRole role, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task FindByIdAsync(string roleId, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task FindByNameAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetNormalizedRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetRoleIdAsync(TRole role, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetNormalizedRoleNameAsync(TRole role, string normalizedName, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetRoleNameAsync(TRole role, string roleName, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task UpdateAsync(TRole role, System.Threading.CancellationToken cancellationToken); - } - - public interface IRoleValidator where TRole : class - { - System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.RoleManager manager, TRole role); - } - - public interface IUserAuthenticationTokenStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task GetTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task RemoveTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetTokenAsync(TUser user, string loginProvider, string name, string value, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserAuthenticatorKeyStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task GetAuthenticatorKeyAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetAuthenticatorKeyAsync(TUser user, string key, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserClaimStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task> GetClaimsAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task> GetUsersForClaimAsync(System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task RemoveClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task ReplaceClaimAsync(TUser user, System.Security.Claims.Claim claim, System.Security.Claims.Claim newClaim, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserClaimsPrincipalFactory where TUser : class - { - System.Threading.Tasks.Task CreateAsync(TUser user); - } - - public interface IUserConfirmation where TUser : class - { - System.Threading.Tasks.Task IsConfirmedAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); - } - - public interface IUserEmailStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task FindByEmailAsync(string normalizedEmail, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetEmailAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetEmailConfirmedAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetNormalizedEmailAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetEmailAsync(TUser user, string email, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetEmailConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetNormalizedEmailAsync(TUser user, string normalizedEmail, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserLockoutStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task GetAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetLockoutEnabledAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetLockoutEndDateAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task IncrementAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task ResetAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetLockoutEnabledAsync(TUser user, bool enabled, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetLockoutEndDateAsync(TUser user, System.DateTimeOffset? lockoutEnd, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserLoginStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task FindByLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task> GetLoginsAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task RemoveLoginAsync(TUser user, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserPasswordStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task GetPasswordHashAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task HasPasswordAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetPasswordHashAsync(TUser user, string passwordHash, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserPhoneNumberStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task GetPhoneNumberAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetPhoneNumberConfirmedAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetPhoneNumberAsync(TUser user, string phoneNumber, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetPhoneNumberConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserRoleStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task AddToRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task> GetRolesAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task> GetUsersInRoleAsync(string roleName, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task IsInRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task RemoveFromRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserSecurityStampStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task GetSecurityStampAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetSecurityStampAsync(TUser user, string stamp, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserStore : System.IDisposable where TUser : class - { - System.Threading.Tasks.Task CreateAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task DeleteAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task FindByIdAsync(string userId, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task FindByNameAsync(string normalizedUserName, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetNormalizedUserNameAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetUserIdAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task GetUserNameAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetNormalizedUserNameAsync(TUser user, string normalizedName, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetUserNameAsync(TUser user, string userName, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserTwoFactorRecoveryCodeStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task CountCodesAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task RedeemCodeAsync(TUser user, string code, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task ReplaceCodesAsync(TUser user, System.Collections.Generic.IEnumerable recoveryCodes, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserTwoFactorStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class - { - System.Threading.Tasks.Task GetTwoFactorEnabledAsync(TUser user, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task SetTwoFactorEnabledAsync(TUser user, bool enabled, System.Threading.CancellationToken cancellationToken); - } - - public interface IUserTwoFactorTokenProvider where TUser : class - { - System.Threading.Tasks.Task CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); - System.Threading.Tasks.Task GenerateAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user); - System.Threading.Tasks.Task ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user); - } - - public interface IUserValidator where TUser : class - { - System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); - } - public class IdentityBuilder { public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddClaimsPrincipalFactory() where TFactory : class => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddErrorDescriber() where TDescriber : Microsoft.AspNetCore.Identity.IdentityErrorDescriber => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddPasswordValidator() where TValidator : class => throw null; - public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddPersonalDataProtection() where TKeyRing : class, Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing where TProtector : class, Microsoft.AspNetCore.Identity.ILookupProtector => throw null; + public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddPersonalDataProtection() where TProtector : class, Microsoft.AspNetCore.Identity.ILookupProtector where TKeyRing : class, Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddRoleManager() where TRoleManager : class => throw null; + public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddRoles() where TRole : class => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddRoleStore() where TStore : class => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddRoleValidator() where TRole : class => throw null; - public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddRoles() where TRole : class => throw null; - public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddTokenProvider(string providerName, System.Type provider) => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddTokenProvider(string providerName) where TProvider : class => throw null; + public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddTokenProvider(string providerName, System.Type provider) => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddUserConfirmation() where TUserConfirmation : class => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddUserManager() where TUserManager : class => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddUserStore() where TStore : class => throw null; @@ -274,22 +61,20 @@ namespace Microsoft public Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get => throw null; } public System.Type UserType { get => throw null; } } - public class IdentityError { - public string Code { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } + public string Code { get => throw null; set { } } public IdentityError() => throw null; + public string Description { get => throw null; set { } } } - public class IdentityErrorDescriber { public virtual Microsoft.AspNetCore.Identity.IdentityError ConcurrencyFailure() => throw null; + public IdentityErrorDescriber() => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityError DefaultError() => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityError DuplicateEmail(string email) => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityError DuplicateRoleName(string role) => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityError DuplicateUserName(string userName) => throw null; - public IdentityErrorDescriber() => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityError InvalidEmail(string email) => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityError InvalidRoleName(string role) => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityError InvalidToken() => throw null; @@ -308,125 +93,290 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Identity.IdentityError UserLockoutNotEnabled() => throw null; public virtual Microsoft.AspNetCore.Identity.IdentityError UserNotInRole(string role) => throw null; } - public class IdentityOptions { - public Microsoft.AspNetCore.Identity.ClaimsIdentityOptions ClaimsIdentity { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.ClaimsIdentityOptions ClaimsIdentity { get => throw null; set { } } public IdentityOptions() => throw null; - public Microsoft.AspNetCore.Identity.LockoutOptions Lockout { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Identity.PasswordOptions Password { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Identity.SignInOptions SignIn { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Identity.StoreOptions Stores { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Identity.TokenOptions Tokens { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Identity.UserOptions User { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.LockoutOptions Lockout { get => throw null; set { } } + public Microsoft.AspNetCore.Identity.PasswordOptions Password { get => throw null; set { } } + public Microsoft.AspNetCore.Identity.SignInOptions SignIn { get => throw null; set { } } + public Microsoft.AspNetCore.Identity.StoreOptions Stores { get => throw null; set { } } + public Microsoft.AspNetCore.Identity.TokenOptions Tokens { get => throw null; set { } } + public Microsoft.AspNetCore.Identity.UserOptions User { get => throw null; set { } } } - public class IdentityResult { + public IdentityResult() => throw null; public System.Collections.Generic.IEnumerable Errors { get => throw null; } public static Microsoft.AspNetCore.Identity.IdentityResult Failed(params Microsoft.AspNetCore.Identity.IdentityError[] errors) => throw null; - public IdentityResult() => throw null; - public bool Succeeded { get => throw null; set => throw null; } + public bool Succeeded { get => throw null; set { } } public static Microsoft.AspNetCore.Identity.IdentityResult Success { get => throw null; } public override string ToString() => throw null; } - + public interface ILookupNormalizer + { + string NormalizeEmail(string email); + string NormalizeName(string name); + } + public interface ILookupProtector + { + string Protect(string keyId, string data); + string Unprotect(string keyId, string data); + } + public interface ILookupProtectorKeyRing + { + string CurrentKeyId { get; } + System.Collections.Generic.IEnumerable GetAllKeyIds(); + string this[string keyId] { get; } + } + public interface IPasswordHasher where TUser : class + { + string HashPassword(TUser user, string password); + Microsoft.AspNetCore.Identity.PasswordVerificationResult VerifyHashedPassword(TUser user, string hashedPassword, string providedPassword); + } + public interface IPasswordValidator where TUser : class + { + System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user, string password); + } + public interface IPersonalDataProtector + { + string Protect(string data); + string Unprotect(string data); + } + public interface IProtectedUserStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + } + public interface IQueryableRoleStore : Microsoft.AspNetCore.Identity.IRoleStore, System.IDisposable where TRole : class + { + System.Linq.IQueryable Roles { get; } + } + public interface IQueryableUserStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Linq.IQueryable Users { get; } + } + public interface IRoleClaimStore : Microsoft.AspNetCore.Identity.IRoleStore, System.IDisposable where TRole : class + { + System.Threading.Tasks.Task AddClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetClaimsAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RemoveClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface IRoleStore : System.IDisposable where TRole : class + { + System.Threading.Tasks.Task CreateAsync(TRole role, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task DeleteAsync(TRole role, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task FindByIdAsync(string roleId, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task FindByNameAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetNormalizedRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetRoleIdAsync(TRole role, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetNormalizedRoleNameAsync(TRole role, string normalizedName, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetRoleNameAsync(TRole role, string roleName, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task UpdateAsync(TRole role, System.Threading.CancellationToken cancellationToken); + } + public interface IRoleValidator where TRole : class + { + System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.RoleManager manager, TRole role); + } + public interface IUserAuthenticationTokenStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task GetTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task RemoveTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetTokenAsync(TUser user, string loginProvider, string name, string value, System.Threading.CancellationToken cancellationToken); + } + public interface IUserAuthenticatorKeyStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task GetAuthenticatorKeyAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetAuthenticatorKeyAsync(TUser user, string key, System.Threading.CancellationToken cancellationToken); + } + public interface IUserClaimsPrincipalFactory where TUser : class + { + System.Threading.Tasks.Task CreateAsync(TUser user); + } + public interface IUserClaimStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task> GetClaimsAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task> GetUsersForClaimAsync(System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task RemoveClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task ReplaceClaimAsync(TUser user, System.Security.Claims.Claim claim, System.Security.Claims.Claim newClaim, System.Threading.CancellationToken cancellationToken); + } + public interface IUserConfirmation where TUser : class + { + System.Threading.Tasks.Task IsConfirmedAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); + } + public interface IUserEmailStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task FindByEmailAsync(string normalizedEmail, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetEmailAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetEmailConfirmedAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetNormalizedEmailAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetEmailAsync(TUser user, string email, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetEmailConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetNormalizedEmailAsync(TUser user, string normalizedEmail, System.Threading.CancellationToken cancellationToken); + } + public interface IUserLockoutStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task GetAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetLockoutEnabledAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetLockoutEndDateAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task IncrementAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task ResetAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetLockoutEnabledAsync(TUser user, bool enabled, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetLockoutEndDateAsync(TUser user, System.DateTimeOffset? lockoutEnd, System.Threading.CancellationToken cancellationToken); + } + public interface IUserLoginStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task FindByLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task> GetLoginsAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task RemoveLoginAsync(TUser user, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken); + } + public interface IUserPasswordStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task GetPasswordHashAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task HasPasswordAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetPasswordHashAsync(TUser user, string passwordHash, System.Threading.CancellationToken cancellationToken); + } + public interface IUserPhoneNumberStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task GetPhoneNumberAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetPhoneNumberConfirmedAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetPhoneNumberAsync(TUser user, string phoneNumber, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetPhoneNumberConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken); + } + public interface IUserRoleStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task AddToRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task> GetRolesAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task> GetUsersInRoleAsync(string roleName, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task IsInRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task RemoveFromRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken); + } + public interface IUserSecurityStampStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task GetSecurityStampAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetSecurityStampAsync(TUser user, string stamp, System.Threading.CancellationToken cancellationToken); + } + public interface IUserStore : System.IDisposable where TUser : class + { + System.Threading.Tasks.Task CreateAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task DeleteAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task FindByIdAsync(string userId, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task FindByNameAsync(string normalizedUserName, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetNormalizedUserNameAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetUserIdAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task GetUserNameAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetNormalizedUserNameAsync(TUser user, string normalizedName, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetUserNameAsync(TUser user, string userName, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken); + } + public interface IUserTwoFactorRecoveryCodeStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task CountCodesAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task RedeemCodeAsync(TUser user, string code, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task ReplaceCodesAsync(TUser user, System.Collections.Generic.IEnumerable recoveryCodes, System.Threading.CancellationToken cancellationToken); + } + public interface IUserTwoFactorStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + { + System.Threading.Tasks.Task GetTwoFactorEnabledAsync(TUser user, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task SetTwoFactorEnabledAsync(TUser user, bool enabled, System.Threading.CancellationToken cancellationToken); + } + public interface IUserTwoFactorTokenProvider where TUser : class + { + System.Threading.Tasks.Task CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); + System.Threading.Tasks.Task GenerateAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user); + System.Threading.Tasks.Task ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user); + } + public interface IUserValidator where TUser : class + { + System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); + } public class LockoutOptions { - public bool AllowedForNewUsers { get => throw null; set => throw null; } - public System.TimeSpan DefaultLockoutTimeSpan { get => throw null; set => throw null; } + public bool AllowedForNewUsers { get => throw null; set { } } public LockoutOptions() => throw null; - public int MaxFailedAccessAttempts { get => throw null; set => throw null; } + public System.TimeSpan DefaultLockoutTimeSpan { get => throw null; set { } } + public int MaxFailedAccessAttempts { get => throw null; set { } } } - public class PasswordHasher : Microsoft.AspNetCore.Identity.IPasswordHasher where TUser : class { - public virtual string HashPassword(TUser user, string password) => throw null; public PasswordHasher(Microsoft.Extensions.Options.IOptions optionsAccessor = default(Microsoft.Extensions.Options.IOptions)) => throw null; + public virtual string HashPassword(TUser user, string password) => throw null; public virtual Microsoft.AspNetCore.Identity.PasswordVerificationResult VerifyHashedPassword(TUser user, string hashedPassword, string providedPassword) => throw null; } - - public enum PasswordHasherCompatibilityMode : int + public enum PasswordHasherCompatibilityMode { IdentityV2 = 0, IdentityV3 = 1, } - public class PasswordHasherOptions { - public Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode CompatibilityMode { get => throw null; set => throw null; } - public int IterationCount { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode CompatibilityMode { get => throw null; set { } } public PasswordHasherOptions() => throw null; + public int IterationCount { get => throw null; set { } } } - public class PasswordOptions { public PasswordOptions() => throw null; - public bool RequireDigit { get => throw null; set => throw null; } - public bool RequireLowercase { get => throw null; set => throw null; } - public bool RequireNonAlphanumeric { get => throw null; set => throw null; } - public bool RequireUppercase { get => throw null; set => throw null; } - public int RequiredLength { get => throw null; set => throw null; } - public int RequiredUniqueChars { get => throw null; set => throw null; } + public bool RequireDigit { get => throw null; set { } } + public int RequiredLength { get => throw null; set { } } + public int RequiredUniqueChars { get => throw null; set { } } + public bool RequireLowercase { get => throw null; set { } } + public bool RequireNonAlphanumeric { get => throw null; set { } } + public bool RequireUppercase { get => throw null; set { } } } - public class PasswordValidator : Microsoft.AspNetCore.Identity.IPasswordValidator where TUser : class { - public Microsoft.AspNetCore.Identity.IdentityErrorDescriber Describer { get => throw null; } - public virtual bool IsDigit(System.Char c) => throw null; - public virtual bool IsLetterOrDigit(System.Char c) => throw null; - public virtual bool IsLower(System.Char c) => throw null; - public virtual bool IsUpper(System.Char c) => throw null; public PasswordValidator(Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors = default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) => throw null; + public Microsoft.AspNetCore.Identity.IdentityErrorDescriber Describer { get => throw null; } + public virtual bool IsDigit(char c) => throw null; + public virtual bool IsLetterOrDigit(char c) => throw null; + public virtual bool IsLower(char c) => throw null; + public virtual bool IsUpper(char c) => throw null; public virtual System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user, string password) => throw null; } - - public enum PasswordVerificationResult : int + public enum PasswordVerificationResult { Failed = 0, Success = 1, SuccessRehashNeeded = 2, } - public class PersonalDataAttribute : System.Attribute { public PersonalDataAttribute() => throw null; } - public class PhoneNumberTokenProvider : Microsoft.AspNetCore.Identity.TotpSecurityStampBasedTokenProvider where TUser : class { public override System.Threading.Tasks.Task CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; - public override System.Threading.Tasks.Task GetUserModifierAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; public PhoneNumberTokenProvider() => throw null; + public override System.Threading.Tasks.Task GetUserModifierAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - public class ProtectedPersonalDataAttribute : Microsoft.AspNetCore.Identity.PersonalDataAttribute { public ProtectedPersonalDataAttribute() => throw null; } - public class RoleManager : System.IDisposable where TRole : class { public virtual System.Threading.Tasks.Task AddClaimAsync(TRole role, System.Security.Claims.Claim claim) => throw null; protected virtual System.Threading.CancellationToken CancellationToken { get => throw null; } public virtual System.Threading.Tasks.Task CreateAsync(TRole role) => throw null; + public RoleManager(Microsoft.AspNetCore.Identity.IRoleStore store, System.Collections.Generic.IEnumerable> roleValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, Microsoft.Extensions.Logging.ILogger> logger) => throw null; public virtual System.Threading.Tasks.Task DeleteAsync(TRole role) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public Microsoft.AspNetCore.Identity.IdentityErrorDescriber ErrorDescriber { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.IdentityErrorDescriber ErrorDescriber { get => throw null; set { } } public virtual System.Threading.Tasks.Task FindByIdAsync(string roleId) => throw null; public virtual System.Threading.Tasks.Task FindByNameAsync(string roleName) => throw null; public virtual System.Threading.Tasks.Task> GetClaimsAsync(TRole role) => throw null; public virtual System.Threading.Tasks.Task GetRoleIdAsync(TRole role) => throw null; public virtual System.Threading.Tasks.Task GetRoleNameAsync(TRole role) => throw null; - public Microsoft.AspNetCore.Identity.ILookupNormalizer KeyNormalizer { get => throw null; set => throw null; } - public virtual Microsoft.Extensions.Logging.ILogger Logger { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.ILookupNormalizer KeyNormalizer { get => throw null; set { } } + public virtual Microsoft.Extensions.Logging.ILogger Logger { get => throw null; set { } } public virtual string NormalizeKey(string key) => throw null; public virtual System.Threading.Tasks.Task RemoveClaimAsync(TRole role, System.Security.Claims.Claim claim) => throw null; public virtual System.Threading.Tasks.Task RoleExistsAsync(string roleName) => throw null; - public RoleManager(Microsoft.AspNetCore.Identity.IRoleStore store, System.Collections.Generic.IEnumerable> roleValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, Microsoft.Extensions.Logging.ILogger> logger) => throw null; - public System.Collections.Generic.IList> RoleValidators { get => throw null; } public virtual System.Linq.IQueryable Roles { get => throw null; } + public System.Collections.Generic.IList> RoleValidators { get => throw null; } public virtual System.Threading.Tasks.Task SetRoleNameAsync(TRole role, string name) => throw null; protected Microsoft.AspNetCore.Identity.IRoleStore Store { get => throw null; } public virtual bool SupportsQueryableRoles { get => throw null; } @@ -437,106 +387,94 @@ namespace Microsoft protected virtual System.Threading.Tasks.Task UpdateRoleAsync(TRole role) => throw null; protected virtual System.Threading.Tasks.Task ValidateRoleAsync(TRole role) => throw null; } - public class RoleValidator : Microsoft.AspNetCore.Identity.IRoleValidator where TRole : class { public RoleValidator(Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors = default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) => throw null; public virtual System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.RoleManager manager, TRole role) => throw null; } - public class SignInOptions { - public bool RequireConfirmedAccount { get => throw null; set => throw null; } - public bool RequireConfirmedEmail { get => throw null; set => throw null; } - public bool RequireConfirmedPhoneNumber { get => throw null; set => throw null; } public SignInOptions() => throw null; + public bool RequireConfirmedAccount { get => throw null; set { } } + public bool RequireConfirmedEmail { get => throw null; set { } } + public bool RequireConfirmedPhoneNumber { get => throw null; set { } } } - public class SignInResult { + public SignInResult() => throw null; public static Microsoft.AspNetCore.Identity.SignInResult Failed { get => throw null; } - public bool IsLockedOut { get => throw null; set => throw null; } - public bool IsNotAllowed { get => throw null; set => throw null; } + public bool IsLockedOut { get => throw null; set { } } + public bool IsNotAllowed { get => throw null; set { } } public static Microsoft.AspNetCore.Identity.SignInResult LockedOut { get => throw null; } public static Microsoft.AspNetCore.Identity.SignInResult NotAllowed { get => throw null; } - public bool RequiresTwoFactor { get => throw null; set => throw null; } - public SignInResult() => throw null; - public bool Succeeded { get => throw null; set => throw null; } + public bool RequiresTwoFactor { get => throw null; set { } } + public bool Succeeded { get => throw null; set { } } public static Microsoft.AspNetCore.Identity.SignInResult Success { get => throw null; } public override string ToString() => throw null; public static Microsoft.AspNetCore.Identity.SignInResult TwoFactorRequired { get => throw null; } } - public class StoreOptions { - public int MaxLengthForKeys { get => throw null; set => throw null; } - public bool ProtectPersonalData { get => throw null; set => throw null; } public StoreOptions() => throw null; + public int MaxLengthForKeys { get => throw null; set { } } + public bool ProtectPersonalData { get => throw null; set { } } } - public class TokenOptions { - public string AuthenticatorIssuer { get => throw null; set => throw null; } - public string AuthenticatorTokenProvider { get => throw null; set => throw null; } - public string ChangeEmailTokenProvider { get => throw null; set => throw null; } - public string ChangePhoneNumberTokenProvider { get => throw null; set => throw null; } + public string AuthenticatorIssuer { get => throw null; set { } } + public string AuthenticatorTokenProvider { get => throw null; set { } } + public string ChangeEmailTokenProvider { get => throw null; set { } } + public string ChangePhoneNumberTokenProvider { get => throw null; set { } } + public TokenOptions() => throw null; public static string DefaultAuthenticatorProvider; public static string DefaultEmailProvider; public static string DefaultPhoneProvider; public static string DefaultProvider; - public string EmailConfirmationTokenProvider { get => throw null; set => throw null; } - public string PasswordResetTokenProvider { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ProviderMap { get => throw null; set => throw null; } - public TokenOptions() => throw null; + public string EmailConfirmationTokenProvider { get => throw null; set { } } + public string PasswordResetTokenProvider { get => throw null; set { } } + public System.Collections.Generic.Dictionary ProviderMap { get => throw null; set { } } } - public class TokenProviderDescriptor { - public object ProviderInstance { get => throw null; set => throw null; } - public System.Type ProviderType { get => throw null; } public TokenProviderDescriptor(System.Type type) => throw null; + public object ProviderInstance { get => throw null; set { } } + public System.Type ProviderType { get => throw null; } } - public abstract class TotpSecurityStampBasedTokenProvider : Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider where TUser : class { public abstract System.Threading.Tasks.Task CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); + protected TotpSecurityStampBasedTokenProvider() => throw null; public virtual System.Threading.Tasks.Task GenerateAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; public virtual System.Threading.Tasks.Task GetUserModifierAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; - protected TotpSecurityStampBasedTokenProvider() => throw null; public virtual System.Threading.Tasks.Task ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - - public class UpperInvariantLookupNormalizer : Microsoft.AspNetCore.Identity.ILookupNormalizer + public sealed class UpperInvariantLookupNormalizer : Microsoft.AspNetCore.Identity.ILookupNormalizer { + public UpperInvariantLookupNormalizer() => throw null; public string NormalizeEmail(string email) => throw null; public string NormalizeName(string name) => throw null; - public UpperInvariantLookupNormalizer() => throw null; } - - public class UserClaimsPrincipalFactory : Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory where TRole : class where TUser : class - { - protected override System.Threading.Tasks.Task GenerateClaimsAsync(TUser user) => throw null; - public Microsoft.AspNetCore.Identity.RoleManager RoleManager { get => throw null; } - public UserClaimsPrincipalFactory(Microsoft.AspNetCore.Identity.UserManager userManager, Microsoft.AspNetCore.Identity.RoleManager roleManager, Microsoft.Extensions.Options.IOptions options) : base(default(Microsoft.AspNetCore.Identity.UserManager), default(Microsoft.Extensions.Options.IOptions)) => throw null; - } - public class UserClaimsPrincipalFactory : Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory where TUser : class { public virtual System.Threading.Tasks.Task CreateAsync(TUser user) => throw null; + public UserClaimsPrincipalFactory(Microsoft.AspNetCore.Identity.UserManager userManager, Microsoft.Extensions.Options.IOptions optionsAccessor) => throw null; protected virtual System.Threading.Tasks.Task GenerateClaimsAsync(TUser user) => throw null; public Microsoft.AspNetCore.Identity.IdentityOptions Options { get => throw null; } - public UserClaimsPrincipalFactory(Microsoft.AspNetCore.Identity.UserManager userManager, Microsoft.Extensions.Options.IOptions optionsAccessor) => throw null; public Microsoft.AspNetCore.Identity.UserManager UserManager { get => throw null; } } - + public class UserClaimsPrincipalFactory : Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory where TUser : class where TRole : class + { + public UserClaimsPrincipalFactory(Microsoft.AspNetCore.Identity.UserManager userManager, Microsoft.AspNetCore.Identity.RoleManager roleManager, Microsoft.Extensions.Options.IOptions options) : base(default(Microsoft.AspNetCore.Identity.UserManager), default(Microsoft.Extensions.Options.IOptions)) => throw null; + protected override System.Threading.Tasks.Task GenerateClaimsAsync(TUser user) => throw null; + public Microsoft.AspNetCore.Identity.RoleManager RoleManager { get => throw null; } + } public class UserLoginInfo { - public string LoginProvider { get => throw null; set => throw null; } - public string ProviderDisplayName { get => throw null; set => throw null; } - public string ProviderKey { get => throw null; set => throw null; } public UserLoginInfo(string loginProvider, string providerKey, string displayName) => throw null; + public string LoginProvider { get => throw null; set { } } + public string ProviderDisplayName { get => throw null; set { } } + public string ProviderKey { get => throw null; set { } } } - public class UserManager : System.IDisposable where TUser : class { public virtual System.Threading.Tasks.Task AccessFailedAsync(TUser user) => throw null; @@ -550,19 +488,20 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ChangeEmailAsync(TUser user, string newEmail, string token) => throw null; public virtual System.Threading.Tasks.Task ChangePasswordAsync(TUser user, string currentPassword, string newPassword) => throw null; public virtual System.Threading.Tasks.Task ChangePhoneNumberAsync(TUser user, string phoneNumber, string token) => throw null; - public const string ChangePhoneNumberTokenPurpose = default; + public static string ChangePhoneNumberTokenPurpose; public virtual System.Threading.Tasks.Task CheckPasswordAsync(TUser user, string password) => throw null; public virtual System.Threading.Tasks.Task ConfirmEmailAsync(TUser user, string token) => throw null; - public const string ConfirmEmailTokenPurpose = default; + public static string ConfirmEmailTokenPurpose; public virtual System.Threading.Tasks.Task CountRecoveryCodesAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task CreateAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task CreateAsync(TUser user, string password) => throw null; - public virtual System.Threading.Tasks.Task CreateSecurityTokenAsync(TUser user) => throw null; + public virtual System.Threading.Tasks.Task CreateSecurityTokenAsync(TUser user) => throw null; protected virtual string CreateTwoFactorRecoveryCode() => throw null; + public UserManager(Microsoft.AspNetCore.Identity.IUserStore store, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Identity.IPasswordHasher passwordHasher, System.Collections.Generic.IEnumerable> userValidators, System.Collections.Generic.IEnumerable> passwordValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, System.IServiceProvider services, Microsoft.Extensions.Logging.ILogger> logger) => throw null; public virtual System.Threading.Tasks.Task DeleteAsync(TUser user) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public Microsoft.AspNetCore.Identity.IdentityErrorDescriber ErrorDescriber { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.IdentityErrorDescriber ErrorDescriber { get => throw null; set { } } public virtual System.Threading.Tasks.Task FindByEmailAsync(string email) => throw null; public virtual System.Threading.Tasks.Task FindByIdAsync(string userId) => throw null; public virtual System.Threading.Tasks.Task FindByLoginAsync(string loginProvider, string providerKey) => throw null; @@ -602,12 +541,12 @@ namespace Microsoft public virtual System.Threading.Tasks.Task IsInRoleAsync(TUser user, string role) => throw null; public virtual System.Threading.Tasks.Task IsLockedOutAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task IsPhoneNumberConfirmedAsync(TUser user) => throw null; - public Microsoft.AspNetCore.Identity.ILookupNormalizer KeyNormalizer { get => throw null; set => throw null; } - public virtual Microsoft.Extensions.Logging.ILogger Logger { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.ILookupNormalizer KeyNormalizer { get => throw null; set { } } + public virtual Microsoft.Extensions.Logging.ILogger Logger { get => throw null; set { } } public virtual string NormalizeEmail(string email) => throw null; public virtual string NormalizeName(string name) => throw null; - public Microsoft.AspNetCore.Identity.IdentityOptions Options { get => throw null; set => throw null; } - public Microsoft.AspNetCore.Identity.IPasswordHasher PasswordHasher { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.IdentityOptions Options { get => throw null; set { } } + public Microsoft.AspNetCore.Identity.IPasswordHasher PasswordHasher { get => throw null; set { } } public System.Collections.Generic.IList> PasswordValidators { get => throw null; } public virtual System.Threading.Tasks.Task RedeemTwoFactorRecoveryCodeAsync(TUser user, string code) => throw null; public virtual void RegisterTokenProvider(string providerName, Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider provider) => throw null; @@ -622,7 +561,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ResetAccessFailedCountAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task ResetAuthenticatorKeyAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task ResetPasswordAsync(TUser user, string token, string newPassword) => throw null; - public const string ResetPasswordTokenPurpose = default; + public static string ResetPasswordTokenPurpose; public virtual System.Threading.Tasks.Task SetAuthenticationTokenAsync(TUser user, string loginProvider, string tokenName, string tokenValue) => throw null; public virtual System.Threading.Tasks.Task SetEmailAsync(TUser user, string email) => throw null; public virtual System.Threading.Tasks.Task SetLockoutEnabledAsync(TUser user, bool enabled) => throw null; @@ -630,7 +569,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task SetPhoneNumberAsync(TUser user, string phoneNumber) => throw null; public virtual System.Threading.Tasks.Task SetTwoFactorEnabledAsync(TUser user, bool enabled) => throw null; public virtual System.Threading.Tasks.Task SetUserNameAsync(TUser user, string userName) => throw null; - protected internal Microsoft.AspNetCore.Identity.IUserStore Store { get => throw null; set => throw null; } + protected Microsoft.AspNetCore.Identity.IUserStore Store { get => throw null; set { } } public virtual bool SupportsQueryableUsers { get => throw null; } public virtual bool SupportsUserAuthenticationTokens { get => throw null; } public virtual bool SupportsUserAuthenticatorKey { get => throw null; } @@ -651,9 +590,8 @@ namespace Microsoft protected virtual System.Threading.Tasks.Task UpdatePasswordHash(TUser user, string newPassword, bool validatePassword) => throw null; public virtual System.Threading.Tasks.Task UpdateSecurityStampAsync(TUser user) => throw null; protected virtual System.Threading.Tasks.Task UpdateUserAsync(TUser user) => throw null; - public UserManager(Microsoft.AspNetCore.Identity.IUserStore store, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Identity.IPasswordHasher passwordHasher, System.Collections.Generic.IEnumerable> userValidators, System.Collections.Generic.IEnumerable> passwordValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, System.IServiceProvider services, Microsoft.Extensions.Logging.ILogger> logger) => throw null; - public System.Collections.Generic.IList> UserValidators { get => throw null; } public virtual System.Linq.IQueryable Users { get => throw null; } + public System.Collections.Generic.IList> UserValidators { get => throw null; } protected System.Threading.Tasks.Task ValidatePasswordAsync(TUser user, string password) => throw null; protected System.Threading.Tasks.Task ValidateUserAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task VerifyChangePhoneNumberTokenAsync(TUser user, string token, string phoneNumber) => throw null; @@ -661,21 +599,18 @@ namespace Microsoft public virtual System.Threading.Tasks.Task VerifyTwoFactorTokenAsync(TUser user, string tokenProvider, string token) => throw null; public virtual System.Threading.Tasks.Task VerifyUserTokenAsync(TUser user, string tokenProvider, string purpose, string token) => throw null; } - public class UserOptions { - public string AllowedUserNameCharacters { get => throw null; set => throw null; } - public bool RequireUniqueEmail { get => throw null; set => throw null; } + public string AllowedUserNameCharacters { get => throw null; set { } } public UserOptions() => throw null; + public bool RequireUniqueEmail { get => throw null; set { } } } - public class UserValidator : Microsoft.AspNetCore.Identity.IUserValidator where TUser : class { - public Microsoft.AspNetCore.Identity.IdentityErrorDescriber Describer { get => throw null; } public UserValidator(Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors = default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) => throw null; + public Microsoft.AspNetCore.Identity.IdentityErrorDescriber Describer { get => throw null; } public virtual System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - } } namespace Extensions @@ -687,7 +622,6 @@ namespace Microsoft public static Microsoft.AspNetCore.Identity.IdentityBuilder AddIdentityCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TUser : class => throw null; public static Microsoft.AspNetCore.Identity.IdentityBuilder AddIdentityCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) where TUser : class => throw null; } - } } } @@ -697,11 +631,10 @@ namespace System { namespace Claims { - public static class PrincipalExtensions + public static partial class PrincipalExtensions { public static string FindFirstValue(this System.Security.Claims.ClaimsPrincipal principal, string claimType) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Stores.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Stores.cs index 9784752a233..ee4f06046b8 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Stores.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Stores.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Identity.Stores, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace AspNetCore @@ -12,103 +11,95 @@ namespace Microsoft public IdentityRole() => throw null; public IdentityRole(string roleName) => throw null; } - public class IdentityRole where TKey : System.IEquatable { - public virtual string ConcurrencyStamp { get => throw null; set => throw null; } - public virtual TKey Id { get => throw null; set => throw null; } + public virtual string ConcurrencyStamp { get => throw null; set { } } public IdentityRole() => throw null; public IdentityRole(string roleName) => throw null; - public virtual string Name { get => throw null; set => throw null; } - public virtual string NormalizedName { get => throw null; set => throw null; } + public virtual TKey Id { get => throw null; set { } } + public virtual string Name { get => throw null; set { } } + public virtual string NormalizedName { get => throw null; set { } } public override string ToString() => throw null; } - public class IdentityRoleClaim where TKey : System.IEquatable { - public virtual string ClaimType { get => throw null; set => throw null; } - public virtual string ClaimValue { get => throw null; set => throw null; } - public virtual int Id { get => throw null; set => throw null; } + public virtual string ClaimType { get => throw null; set { } } + public virtual string ClaimValue { get => throw null; set { } } public IdentityRoleClaim() => throw null; + public virtual int Id { get => throw null; set { } } public virtual void InitializeFromClaim(System.Security.Claims.Claim other) => throw null; - public virtual TKey RoleId { get => throw null; set => throw null; } + public virtual TKey RoleId { get => throw null; set { } } public virtual System.Security.Claims.Claim ToClaim() => throw null; } - public class IdentityUser : Microsoft.AspNetCore.Identity.IdentityUser { public IdentityUser() => throw null; public IdentityUser(string userName) => throw null; } - public class IdentityUser where TKey : System.IEquatable { - public virtual int AccessFailedCount { get => throw null; set => throw null; } - public virtual string ConcurrencyStamp { get => throw null; set => throw null; } - public virtual string Email { get => throw null; set => throw null; } - public virtual bool EmailConfirmed { get => throw null; set => throw null; } - public virtual TKey Id { get => throw null; set => throw null; } + public virtual int AccessFailedCount { get => throw null; set { } } + public virtual string ConcurrencyStamp { get => throw null; set { } } public IdentityUser() => throw null; public IdentityUser(string userName) => throw null; - public virtual bool LockoutEnabled { get => throw null; set => throw null; } - public virtual System.DateTimeOffset? LockoutEnd { get => throw null; set => throw null; } - public virtual string NormalizedEmail { get => throw null; set => throw null; } - public virtual string NormalizedUserName { get => throw null; set => throw null; } - public virtual string PasswordHash { get => throw null; set => throw null; } - public virtual string PhoneNumber { get => throw null; set => throw null; } - public virtual bool PhoneNumberConfirmed { get => throw null; set => throw null; } - public virtual string SecurityStamp { get => throw null; set => throw null; } + public virtual string Email { get => throw null; set { } } + public virtual bool EmailConfirmed { get => throw null; set { } } + public virtual TKey Id { get => throw null; set { } } + public virtual bool LockoutEnabled { get => throw null; set { } } + public virtual System.DateTimeOffset? LockoutEnd { get => throw null; set { } } + public virtual string NormalizedEmail { get => throw null; set { } } + public virtual string NormalizedUserName { get => throw null; set { } } + public virtual string PasswordHash { get => throw null; set { } } + public virtual string PhoneNumber { get => throw null; set { } } + public virtual bool PhoneNumberConfirmed { get => throw null; set { } } + public virtual string SecurityStamp { get => throw null; set { } } public override string ToString() => throw null; - public virtual bool TwoFactorEnabled { get => throw null; set => throw null; } - public virtual string UserName { get => throw null; set => throw null; } + public virtual bool TwoFactorEnabled { get => throw null; set { } } + public virtual string UserName { get => throw null; set { } } } - public class IdentityUserClaim where TKey : System.IEquatable { - public virtual string ClaimType { get => throw null; set => throw null; } - public virtual string ClaimValue { get => throw null; set => throw null; } - public virtual int Id { get => throw null; set => throw null; } + public virtual string ClaimType { get => throw null; set { } } + public virtual string ClaimValue { get => throw null; set { } } public IdentityUserClaim() => throw null; + public virtual int Id { get => throw null; set { } } public virtual void InitializeFromClaim(System.Security.Claims.Claim claim) => throw null; public virtual System.Security.Claims.Claim ToClaim() => throw null; - public virtual TKey UserId { get => throw null; set => throw null; } + public virtual TKey UserId { get => throw null; set { } } } - public class IdentityUserLogin where TKey : System.IEquatable { public IdentityUserLogin() => throw null; - public virtual string LoginProvider { get => throw null; set => throw null; } - public virtual string ProviderDisplayName { get => throw null; set => throw null; } - public virtual string ProviderKey { get => throw null; set => throw null; } - public virtual TKey UserId { get => throw null; set => throw null; } + public virtual string LoginProvider { get => throw null; set { } } + public virtual string ProviderDisplayName { get => throw null; set { } } + public virtual string ProviderKey { get => throw null; set { } } + public virtual TKey UserId { get => throw null; set { } } } - public class IdentityUserRole where TKey : System.IEquatable { public IdentityUserRole() => throw null; - public virtual TKey RoleId { get => throw null; set => throw null; } - public virtual TKey UserId { get => throw null; set => throw null; } + public virtual TKey RoleId { get => throw null; set { } } + public virtual TKey UserId { get => throw null; set { } } } - public class IdentityUserToken where TKey : System.IEquatable { public IdentityUserToken() => throw null; - public virtual string LoginProvider { get => throw null; set => throw null; } - public virtual string Name { get => throw null; set => throw null; } - public virtual TKey UserId { get => throw null; set => throw null; } - public virtual string Value { get => throw null; set => throw null; } + public virtual string LoginProvider { get => throw null; set { } } + public virtual string Name { get => throw null; set { } } + public virtual TKey UserId { get => throw null; set { } } + public virtual string Value { get => throw null; set { } } } - - public abstract class RoleStoreBase : Microsoft.AspNetCore.Identity.IQueryableRoleStore, Microsoft.AspNetCore.Identity.IRoleClaimStore, Microsoft.AspNetCore.Identity.IRoleStore, System.IDisposable where TKey : System.IEquatable where TRole : Microsoft.AspNetCore.Identity.IdentityRole where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim, new() where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole, new() + public abstract class RoleStoreBase : Microsoft.AspNetCore.Identity.IQueryableRoleStore, Microsoft.AspNetCore.Identity.IRoleStore, System.IDisposable, Microsoft.AspNetCore.Identity.IRoleClaimStore where TRole : Microsoft.AspNetCore.Identity.IdentityRole where TKey : System.IEquatable where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole, new() where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim, new() { public abstract System.Threading.Tasks.Task AddClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public virtual TKey ConvertIdFromString(string id) => throw null; public virtual string ConvertIdToString(TKey id) => throw null; public abstract System.Threading.Tasks.Task CreateAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); protected virtual TRoleClaim CreateRoleClaim(TRole role, System.Security.Claims.Claim claim) => throw null; + public RoleStoreBase(Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer) => throw null; public abstract System.Threading.Tasks.Task DeleteAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public void Dispose() => throw null; - public Microsoft.AspNetCore.Identity.IdentityErrorDescriber ErrorDescriber { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.IdentityErrorDescriber ErrorDescriber { get => throw null; set { } } public abstract System.Threading.Tasks.Task FindByIdAsync(string id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public abstract System.Threading.Tasks.Task FindByNameAsync(string normalizedName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public abstract System.Threading.Tasks.Task> GetClaimsAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); @@ -116,28 +107,13 @@ namespace Microsoft public virtual System.Threading.Tasks.Task GetRoleIdAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task GetRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public abstract System.Threading.Tasks.Task RemoveClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - public RoleStoreBase(Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer) => throw null; public abstract System.Linq.IQueryable Roles { get; } public virtual System.Threading.Tasks.Task SetNormalizedRoleNameAsync(TRole role, string normalizedName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task SetRoleNameAsync(TRole role, string roleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected void ThrowIfDisposed() => throw null; public abstract System.Threading.Tasks.Task UpdateAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - - public abstract class UserStoreBase : Microsoft.AspNetCore.Identity.UserStoreBase, Microsoft.AspNetCore.Identity.IUserRoleStore, Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TKey : System.IEquatable where TRole : Microsoft.AspNetCore.Identity.IdentityRole where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim, new() where TUser : Microsoft.AspNetCore.Identity.IdentityUser where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin, new() where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken, new() - { - public abstract System.Threading.Tasks.Task AddToRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - protected virtual TUserRole CreateUserRole(TUser user, TRole role) => throw null; - protected abstract System.Threading.Tasks.Task FindRoleAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken); - protected abstract System.Threading.Tasks.Task FindUserRoleAsync(TKey userId, TKey roleId, System.Threading.CancellationToken cancellationToken); - public abstract System.Threading.Tasks.Task> GetRolesAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - public abstract System.Threading.Tasks.Task> GetUsersInRoleAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - public abstract System.Threading.Tasks.Task IsInRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - public abstract System.Threading.Tasks.Task RemoveFromRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - public UserStoreBase(Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer) : base(default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) => throw null; - } - - public abstract class UserStoreBase : Microsoft.AspNetCore.Identity.IQueryableUserStore, Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore, Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore, Microsoft.AspNetCore.Identity.IUserClaimStore, Microsoft.AspNetCore.Identity.IUserEmailStore, Microsoft.AspNetCore.Identity.IUserLockoutStore, Microsoft.AspNetCore.Identity.IUserLoginStore, Microsoft.AspNetCore.Identity.IUserPasswordStore, Microsoft.AspNetCore.Identity.IUserPhoneNumberStore, Microsoft.AspNetCore.Identity.IUserSecurityStampStore, Microsoft.AspNetCore.Identity.IUserStore, Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore, Microsoft.AspNetCore.Identity.IUserTwoFactorStore, System.IDisposable where TKey : System.IEquatable where TUser : Microsoft.AspNetCore.Identity.IdentityUser where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken, new() + public abstract class UserStoreBase : Microsoft.AspNetCore.Identity.IUserLoginStore, Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable, Microsoft.AspNetCore.Identity.IUserClaimStore, Microsoft.AspNetCore.Identity.IUserPasswordStore, Microsoft.AspNetCore.Identity.IUserSecurityStampStore, Microsoft.AspNetCore.Identity.IUserEmailStore, Microsoft.AspNetCore.Identity.IUserLockoutStore, Microsoft.AspNetCore.Identity.IUserPhoneNumberStore, Microsoft.AspNetCore.Identity.IQueryableUserStore, Microsoft.AspNetCore.Identity.IUserTwoFactorStore, Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore, Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore, Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore where TUser : Microsoft.AspNetCore.Identity.IdentityUser where TKey : System.IEquatable where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken, new() { public abstract System.Threading.Tasks.Task AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public abstract System.Threading.Tasks.Task AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); @@ -149,9 +125,10 @@ namespace Microsoft protected virtual TUserClaim CreateUserClaim(TUser user, System.Security.Claims.Claim claim) => throw null; protected virtual TUserLogin CreateUserLogin(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login) => throw null; protected virtual TUserToken CreateUserToken(TUser user, string loginProvider, string name, string value) => throw null; + public UserStoreBase(Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer) => throw null; public abstract System.Threading.Tasks.Task DeleteAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public void Dispose() => throw null; - public Microsoft.AspNetCore.Identity.IdentityErrorDescriber ErrorDescriber { get => throw null; set => throw null; } + public Microsoft.AspNetCore.Identity.IdentityErrorDescriber ErrorDescriber { get => throw null; set { } } public abstract System.Threading.Tasks.Task FindByEmailAsync(string normalizedEmail, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public abstract System.Threading.Tasks.Task FindByIdAsync(string userId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public virtual System.Threading.Tasks.Task FindByLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; @@ -205,10 +182,20 @@ namespace Microsoft public virtual System.Threading.Tasks.Task SetUserNameAsync(TUser user, string userName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected void ThrowIfDisposed() => throw null; public abstract System.Threading.Tasks.Task UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - public UserStoreBase(Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer) => throw null; public abstract System.Linq.IQueryable Users { get; } } - + public abstract class UserStoreBase : Microsoft.AspNetCore.Identity.UserStoreBase, Microsoft.AspNetCore.Identity.IUserRoleStore, Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : Microsoft.AspNetCore.Identity.IdentityUser where TRole : Microsoft.AspNetCore.Identity.IdentityRole where TKey : System.IEquatable where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim, new() where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken, new() where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim, new() + { + public abstract System.Threading.Tasks.Task AddToRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + protected virtual TUserRole CreateUserRole(TUser user, TRole role) => throw null; + public UserStoreBase(Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer) : base(default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) => throw null; + protected abstract System.Threading.Tasks.Task FindRoleAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken); + protected abstract System.Threading.Tasks.Task FindUserRoleAsync(TKey userId, TKey roleId, System.Threading.CancellationToken cancellationToken); + public abstract System.Threading.Tasks.Task> GetRolesAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public abstract System.Threading.Tasks.Task> GetUsersInRoleAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public abstract System.Threading.Tasks.Task IsInRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public abstract System.Threading.Tasks.Task RemoveFromRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Localization.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Localization.Abstractions.cs index c64b40cfc9a..405e966a6da 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Localization.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Localization.Abstractions.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Localization.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -10,48 +9,42 @@ namespace Microsoft public interface IStringLocalizer { System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures); - Microsoft.Extensions.Localization.LocalizedString this[string name, params object[] arguments] { get; } Microsoft.Extensions.Localization.LocalizedString this[string name] { get; } + Microsoft.Extensions.Localization.LocalizedString this[string name, params object[] arguments] { get; } } - public interface IStringLocalizer : Microsoft.Extensions.Localization.IStringLocalizer { } - public interface IStringLocalizerFactory { Microsoft.Extensions.Localization.IStringLocalizer Create(System.Type resourceSource); Microsoft.Extensions.Localization.IStringLocalizer Create(string baseName, string location); } - public class LocalizedString { public LocalizedString(string name, string value) => throw null; public LocalizedString(string name, string value, bool resourceNotFound) => throw null; public LocalizedString(string name, string value, bool resourceNotFound, string searchedLocation) => throw null; public string Name { get => throw null; } + public static implicit operator string(Microsoft.Extensions.Localization.LocalizedString localizedString) => throw null; public bool ResourceNotFound { get => throw null; } public string SearchedLocation { get => throw null; } public override string ToString() => throw null; public string Value { get => throw null; } - public static implicit operator string(Microsoft.Extensions.Localization.LocalizedString localizedString) => throw null; } - - public class StringLocalizer : Microsoft.Extensions.Localization.IStringLocalizer, Microsoft.Extensions.Localization.IStringLocalizer + public class StringLocalizer : Microsoft.Extensions.Localization.IStringLocalizer, Microsoft.Extensions.Localization.IStringLocalizer { - public System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures) => throw null; - public virtual Microsoft.Extensions.Localization.LocalizedString this[string name, params object[] arguments] { get => throw null; } - public virtual Microsoft.Extensions.Localization.LocalizedString this[string name] { get => throw null; } public StringLocalizer(Microsoft.Extensions.Localization.IStringLocalizerFactory factory) => throw null; + public System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures) => throw null; + public virtual Microsoft.Extensions.Localization.LocalizedString this[string name] { get => throw null; } + public virtual Microsoft.Extensions.Localization.LocalizedString this[string name, params object[] arguments] { get => throw null; } } - - public static class StringLocalizerExtensions + public static partial class StringLocalizerExtensions { public static System.Collections.Generic.IEnumerable GetAllStrings(this Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) => throw null; public static Microsoft.Extensions.Localization.LocalizedString GetString(this Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer, string name) => throw null; public static Microsoft.Extensions.Localization.LocalizedString GetString(this Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer, string name, params object[] arguments) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Localization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Localization.cs index b1134a1f3ec..99932b86e13 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Localization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Localization.cs @@ -1,18 +1,16 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Localization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class LocalizationServiceCollectionExtensions + public static partial class LocalizationServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddLocalization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddLocalization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; } - } namespace Localization { @@ -20,55 +18,48 @@ namespace Microsoft { System.Collections.Generic.IList GetOrAdd(string name, System.Func> valueFactory); } - public class LocalizationOptions { public LocalizationOptions() => throw null; - public string ResourcesPath { get => throw null; set => throw null; } + public string ResourcesPath { get => throw null; set { } } } - public class ResourceLocationAttribute : System.Attribute { - public string ResourceLocation { get => throw null; } public ResourceLocationAttribute(string resourceLocation) => throw null; + public string ResourceLocation { get => throw null; } } - public class ResourceManagerStringLocalizer : Microsoft.Extensions.Localization.IStringLocalizer { + public ResourceManagerStringLocalizer(System.Resources.ResourceManager resourceManager, System.Reflection.Assembly resourceAssembly, string baseName, Microsoft.Extensions.Localization.IResourceNamesCache resourceNamesCache, Microsoft.Extensions.Logging.ILogger logger) => throw null; public virtual System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures) => throw null; protected System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures, System.Globalization.CultureInfo culture) => throw null; protected string GetStringSafely(string name, System.Globalization.CultureInfo culture) => throw null; - public virtual Microsoft.Extensions.Localization.LocalizedString this[string name, params object[] arguments] { get => throw null; } public virtual Microsoft.Extensions.Localization.LocalizedString this[string name] { get => throw null; } - public ResourceManagerStringLocalizer(System.Resources.ResourceManager resourceManager, System.Reflection.Assembly resourceAssembly, string baseName, Microsoft.Extensions.Localization.IResourceNamesCache resourceNamesCache, Microsoft.Extensions.Logging.ILogger logger) => throw null; + public virtual Microsoft.Extensions.Localization.LocalizedString this[string name, params object[] arguments] { get => throw null; } } - public class ResourceManagerStringLocalizerFactory : Microsoft.Extensions.Localization.IStringLocalizerFactory { public Microsoft.Extensions.Localization.IStringLocalizer Create(System.Type resourceSource) => throw null; public Microsoft.Extensions.Localization.IStringLocalizer Create(string baseName, string location) => throw null; protected virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizer CreateResourceManagerStringLocalizer(System.Reflection.Assembly assembly, string baseName) => throw null; + public ResourceManagerStringLocalizerFactory(Microsoft.Extensions.Options.IOptions localizationOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; protected virtual Microsoft.Extensions.Localization.ResourceLocationAttribute GetResourceLocationAttribute(System.Reflection.Assembly assembly) => throw null; protected virtual string GetResourcePrefix(System.Reflection.TypeInfo typeInfo) => throw null; protected virtual string GetResourcePrefix(System.Reflection.TypeInfo typeInfo, string baseNamespace, string resourcesRelativePath) => throw null; protected virtual string GetResourcePrefix(string baseResourceName, string baseNamespace) => throw null; protected virtual string GetResourcePrefix(string location, string baseName, string resourceLocation) => throw null; protected virtual Microsoft.Extensions.Localization.RootNamespaceAttribute GetRootNamespaceAttribute(System.Reflection.Assembly assembly) => throw null; - public ResourceManagerStringLocalizerFactory(Microsoft.Extensions.Options.IOptions localizationOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - public class ResourceNamesCache : Microsoft.Extensions.Localization.IResourceNamesCache { - public System.Collections.Generic.IList GetOrAdd(string name, System.Func> valueFactory) => throw null; public ResourceNamesCache() => throw null; + public System.Collections.Generic.IList GetOrAdd(string name, System.Func> valueFactory) => throw null; } - public class RootNamespaceAttribute : System.Attribute { - public string RootNamespace { get => throw null; } public RootNamespaceAttribute(string rootNamespace) => throw null; + public string RootNamespace { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs index 5797688f98a..a36de7c0a88 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs @@ -1,86 +1,106 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Logging.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Logging { + namespace Abstractions + { + public struct LogEntry + { + public string Category { get => throw null; } + public LogEntry(Microsoft.Extensions.Logging.LogLevel logLevel, string category, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => throw null; + public Microsoft.Extensions.Logging.EventId EventId { get => throw null; } + public System.Exception Exception { get => throw null; } + public System.Func Formatter { get => throw null; } + public Microsoft.Extensions.Logging.LogLevel LogLevel { get => throw null; } + public TState State { get => throw null; } + } + public class NullLogger : Microsoft.Extensions.Logging.ILogger + { + public System.IDisposable BeginScope(TState state) => throw null; + public static Microsoft.Extensions.Logging.Abstractions.NullLogger Instance { get => throw null; } + public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) => throw null; + public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => throw null; + } + public class NullLogger : Microsoft.Extensions.Logging.ILogger, Microsoft.Extensions.Logging.ILogger + { + public System.IDisposable BeginScope(TState state) => throw null; + public NullLogger() => throw null; + public static Microsoft.Extensions.Logging.Abstractions.NullLogger Instance; + public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) => throw null; + public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => throw null; + } + public class NullLoggerFactory : Microsoft.Extensions.Logging.ILoggerFactory, System.IDisposable + { + public void AddProvider(Microsoft.Extensions.Logging.ILoggerProvider provider) => throw null; + public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; + public NullLoggerFactory() => throw null; + public void Dispose() => throw null; + public static Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory Instance; + } + public class NullLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable + { + public Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName) => throw null; + public void Dispose() => throw null; + public static Microsoft.Extensions.Logging.Abstractions.NullLoggerProvider Instance { get => throw null; } + } + } public struct EventId : System.IEquatable { - public static bool operator !=(Microsoft.Extensions.Logging.EventId left, Microsoft.Extensions.Logging.EventId right) => throw null; - public static bool operator ==(Microsoft.Extensions.Logging.EventId left, Microsoft.Extensions.Logging.EventId right) => throw null; + public EventId(int id, string name = default(string)) => throw null; public bool Equals(Microsoft.Extensions.Logging.EventId other) => throw null; public override bool Equals(object obj) => throw null; - // Stub generator skipped constructor - public EventId(int id, string name = default(string)) => throw null; public override int GetHashCode() => throw null; public int Id { get => throw null; } public string Name { get => throw null; } - public override string ToString() => throw null; + public static bool operator ==(Microsoft.Extensions.Logging.EventId left, Microsoft.Extensions.Logging.EventId right) => throw null; public static implicit operator Microsoft.Extensions.Logging.EventId(int i) => throw null; + public static bool operator !=(Microsoft.Extensions.Logging.EventId left, Microsoft.Extensions.Logging.EventId right) => throw null; + public override string ToString() => throw null; } - public interface IExternalScopeProvider { void ForEachScope(System.Action callback, TState state); System.IDisposable Push(object state); } - public interface ILogger { System.IDisposable BeginScope(TState state); bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel); void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter); } - public interface ILogger : Microsoft.Extensions.Logging.ILogger { } - public interface ILoggerFactory : System.IDisposable { void AddProvider(Microsoft.Extensions.Logging.ILoggerProvider provider); Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName); } - public interface ILoggerProvider : System.IDisposable { Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName); } - public interface ISupportExternalScope { void SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider); } - public class LogDefineOptions { public LogDefineOptions() => throw null; - public bool SkipEnabledCheck { get => throw null; set => throw null; } + public bool SkipEnabledCheck { get => throw null; set { } } } - - public enum LogLevel : int - { - Critical = 5, - Debug = 1, - Error = 4, - Information = 2, - None = 6, - Trace = 0, - Warning = 3, - } - public class Logger : Microsoft.Extensions.Logging.ILogger, Microsoft.Extensions.Logging.ILogger { System.IDisposable Microsoft.Extensions.Logging.ILogger.BeginScope(TState state) => throw null; + public Logger(Microsoft.Extensions.Logging.ILoggerFactory factory) => throw null; bool Microsoft.Extensions.Logging.ILogger.IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) => throw null; void Microsoft.Extensions.Logging.ILogger.Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => throw null; - public Logger(Microsoft.Extensions.Logging.ILoggerFactory factory) => throw null; } - - public static class LoggerExtensions + public static partial class LoggerExtensions { public static System.IDisposable BeginScope(this Microsoft.Extensions.Logging.ILogger logger, string messageFormat, params object[] args) => throw null; public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) => throw null; @@ -112,103 +132,60 @@ namespace Microsoft public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; } - public class LoggerExternalScopeProvider : Microsoft.Extensions.Logging.IExternalScopeProvider { - public void ForEachScope(System.Action callback, TState state) => throw null; public LoggerExternalScopeProvider() => throw null; + public void ForEachScope(System.Action callback, TState state) => throw null; public System.IDisposable Push(object state) => throw null; } - - public static class LoggerFactoryExtensions + public static partial class LoggerFactoryExtensions { public static Microsoft.Extensions.Logging.ILogger CreateLogger(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Type type) => throw null; public static Microsoft.Extensions.Logging.ILogger CreateLogger(this Microsoft.Extensions.Logging.ILoggerFactory factory) => throw null; } - public static class LoggerMessage { public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) => throw null; + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString, Microsoft.Extensions.Logging.LogDefineOptions options) => throw null; public static System.Func DefineScope(string formatString) => throw null; - public static System.Func DefineScope(string formatString) => throw null; - public static System.Func DefineScope(string formatString) => throw null; - public static System.Func DefineScope(string formatString) => throw null; - public static System.Func DefineScope(string formatString) => throw null; - public static System.Func DefineScope(string formatString) => throw null; public static System.Func DefineScope(string formatString) => throw null; + public static System.Func DefineScope(string formatString) => throw null; + public static System.Func DefineScope(string formatString) => throw null; + public static System.Func DefineScope(string formatString) => throw null; + public static System.Func DefineScope(string formatString) => throw null; + public static System.Func DefineScope(string formatString) => throw null; } - - public class LoggerMessageAttribute : System.Attribute + public sealed class LoggerMessageAttribute : System.Attribute { - public int EventId { get => throw null; set => throw null; } - public string EventName { get => throw null; set => throw null; } - public Microsoft.Extensions.Logging.LogLevel Level { get => throw null; set => throw null; } public LoggerMessageAttribute() => throw null; public LoggerMessageAttribute(int eventId, Microsoft.Extensions.Logging.LogLevel level, string message) => throw null; - public string Message { get => throw null; set => throw null; } - public bool SkipEnabledCheck { get => throw null; set => throw null; } + public int EventId { get => throw null; set { } } + public string EventName { get => throw null; set { } } + public Microsoft.Extensions.Logging.LogLevel Level { get => throw null; set { } } + public string Message { get => throw null; set { } } + public bool SkipEnabledCheck { get => throw null; set { } } } - - namespace Abstractions + public enum LogLevel { - public struct LogEntry - { - public string Category { get => throw null; } - public Microsoft.Extensions.Logging.EventId EventId { get => throw null; } - public System.Exception Exception { get => throw null; } - public System.Func Formatter { get => throw null; } - // Stub generator skipped constructor - public LogEntry(Microsoft.Extensions.Logging.LogLevel logLevel, string category, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => throw null; - public Microsoft.Extensions.Logging.LogLevel LogLevel { get => throw null; } - public TState State { get => throw null; } - } - - public class NullLogger : Microsoft.Extensions.Logging.ILogger - { - public System.IDisposable BeginScope(TState state) => throw null; - public static Microsoft.Extensions.Logging.Abstractions.NullLogger Instance { get => throw null; } - public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) => throw null; - public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => throw null; - } - - public class NullLogger : Microsoft.Extensions.Logging.ILogger, Microsoft.Extensions.Logging.ILogger - { - public System.IDisposable BeginScope(TState state) => throw null; - public static Microsoft.Extensions.Logging.Abstractions.NullLogger Instance; - public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) => throw null; - public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => throw null; - public NullLogger() => throw null; - } - - public class NullLoggerFactory : Microsoft.Extensions.Logging.ILoggerFactory, System.IDisposable - { - public void AddProvider(Microsoft.Extensions.Logging.ILoggerProvider provider) => throw null; - public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; - public void Dispose() => throw null; - public static Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory Instance; - public NullLoggerFactory() => throw null; - } - - public class NullLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable - { - public Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName) => throw null; - public void Dispose() => throw null; - public static Microsoft.Extensions.Logging.Abstractions.NullLoggerProvider Instance { get => throw null; } - } - + Trace = 0, + Debug = 1, + Information = 2, + Warning = 3, + Error = 4, + Critical = 5, + None = 6, } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Configuration.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Configuration.cs index 0d098e3e4d3..b374ce35d5e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Configuration.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Configuration.cs @@ -1,44 +1,37 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Logging.Configuration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Logging { - public static partial class LoggingBuilderExtensions - { - public static Microsoft.Extensions.Logging.ILoggingBuilder AddConfiguration(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; - } - namespace Configuration { public interface ILoggerProviderConfiguration { Microsoft.Extensions.Configuration.IConfiguration Configuration { get; } } - public interface ILoggerProviderConfigurationFactory { Microsoft.Extensions.Configuration.IConfiguration GetConfiguration(System.Type providerType); } - public static class LoggerProviderOptions { public static void RegisterProviderOptions(Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TOptions : class => throw null; } - public class LoggerProviderOptionsChangeTokenSource : Microsoft.Extensions.Options.ConfigurationChangeTokenSource { public LoggerProviderOptionsChangeTokenSource(Microsoft.Extensions.Logging.Configuration.ILoggerProviderConfiguration providerConfiguration) : base(default(Microsoft.Extensions.Configuration.IConfiguration)) => throw null; } - - public static class LoggingBuilderConfigurationExtensions + public static partial class LoggingBuilderConfigurationExtensions { public static void AddConfiguration(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; } - + } + public static partial class LoggingBuilderExtensions + { + public static Microsoft.Extensions.Logging.ILoggingBuilder AddConfiguration(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Console.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Console.cs index ad283d7b3ad..9a7521d8ac4 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Console.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Console.cs @@ -1,13 +1,82 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Logging.Console, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Logging { - public static class ConsoleLoggerExtensions + namespace Console + { + public abstract class ConsoleFormatter + { + protected ConsoleFormatter(string name) => throw null; + public string Name { get => throw null; } + public abstract void Write(in Microsoft.Extensions.Logging.Abstractions.LogEntry logEntry, Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider, System.IO.TextWriter textWriter); + } + public static class ConsoleFormatterNames + { + public static string Json; + public static string Simple; + public static string Systemd; + } + public class ConsoleFormatterOptions + { + public ConsoleFormatterOptions() => throw null; + public bool IncludeScopes { get => throw null; set { } } + public string TimestampFormat { get => throw null; set { } } + public bool UseUtcTimestamp { get => throw null; set { } } + } + public enum ConsoleLoggerFormat + { + Default = 0, + Systemd = 1, + } + public class ConsoleLoggerOptions + { + public ConsoleLoggerOptions() => throw null; + public bool DisableColors { get => throw null; set { } } + public Microsoft.Extensions.Logging.Console.ConsoleLoggerFormat Format { get => throw null; set { } } + public string FormatterName { get => throw null; set { } } + public bool IncludeScopes { get => throw null; set { } } + public Microsoft.Extensions.Logging.LogLevel LogToStandardErrorThreshold { get => throw null; set { } } + public int MaxQueueLength { get => throw null; set { } } + public Microsoft.Extensions.Logging.Console.ConsoleLoggerQueueFullMode QueueFullMode { get => throw null; set { } } + public string TimestampFormat { get => throw null; set { } } + public bool UseUtcTimestamp { get => throw null; set { } } + } + public class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable, Microsoft.Extensions.Logging.ISupportExternalScope + { + public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; + public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options) => throw null; + public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options, System.Collections.Generic.IEnumerable formatters) => throw null; + public void Dispose() => throw null; + public void SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider) => throw null; + } + public enum ConsoleLoggerQueueFullMode + { + Wait = 0, + DropWrite = 1, + } + public class JsonConsoleFormatterOptions : Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions + { + public JsonConsoleFormatterOptions() => throw null; + public System.Text.Json.JsonWriterOptions JsonWriterOptions { get => throw null; set { } } + } + public enum LoggerColorBehavior + { + Default = 0, + Enabled = 1, + Disabled = 2, + } + public class SimpleConsoleFormatterOptions : Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions + { + public Microsoft.Extensions.Logging.Console.LoggerColorBehavior ColorBehavior { get => throw null; set { } } + public SimpleConsoleFormatterOptions() => throw null; + public bool SingleLine { get => throw null; set { } } + } + } + public static partial class ConsoleLoggerExtensions { public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) => throw null; @@ -20,87 +89,6 @@ namespace Microsoft public static Microsoft.Extensions.Logging.ILoggingBuilder AddSystemdConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddSystemdConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) => throw null; } - - namespace Console - { - public abstract class ConsoleFormatter - { - protected ConsoleFormatter(string name) => throw null; - public string Name { get => throw null; } - public abstract void Write(Microsoft.Extensions.Logging.Abstractions.LogEntry logEntry, Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider, System.IO.TextWriter textWriter); - } - - public static class ConsoleFormatterNames - { - public const string Json = default; - public const string Simple = default; - public const string Systemd = default; - } - - public class ConsoleFormatterOptions - { - public ConsoleFormatterOptions() => throw null; - public bool IncludeScopes { get => throw null; set => throw null; } - public string TimestampFormat { get => throw null; set => throw null; } - public bool UseUtcTimestamp { get => throw null; set => throw null; } - } - - public enum ConsoleLoggerFormat : int - { - Default = 0, - Systemd = 1, - } - - public class ConsoleLoggerOptions - { - public ConsoleLoggerOptions() => throw null; - public bool DisableColors { get => throw null; set => throw null; } - public Microsoft.Extensions.Logging.Console.ConsoleLoggerFormat Format { get => throw null; set => throw null; } - public string FormatterName { get => throw null; set => throw null; } - public bool IncludeScopes { get => throw null; set => throw null; } - public Microsoft.Extensions.Logging.LogLevel LogToStandardErrorThreshold { get => throw null; set => throw null; } - public int MaxQueueLength { get => throw null; set => throw null; } - public Microsoft.Extensions.Logging.Console.ConsoleLoggerQueueFullMode QueueFullMode { get => throw null; set => throw null; } - public string TimestampFormat { get => throw null; set => throw null; } - public bool UseUtcTimestamp { get => throw null; set => throw null; } - } - - public class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable - { - public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options) => throw null; - public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options, System.Collections.Generic.IEnumerable formatters) => throw null; - public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; - public void Dispose() => throw null; - public void SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider) => throw null; - } - - public enum ConsoleLoggerQueueFullMode : int - { - DropWrite = 1, - Wait = 0, - } - - public class JsonConsoleFormatterOptions : Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions - { - public JsonConsoleFormatterOptions() => throw null; - public System.Text.Json.JsonWriterOptions JsonWriterOptions { get => throw null; set => throw null; } - } - - public enum LoggerColorBehavior : int - { - Default = 0, - Disabled = 2, - Enabled = 1, - } - - public class SimpleConsoleFormatterOptions : Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions - { - public Microsoft.Extensions.Logging.Console.LoggerColorBehavior ColorBehavior { get => throw null; set => throw null; } - public SimpleConsoleFormatterOptions() => throw null; - public bool SingleLine { get => throw null; set => throw null; } - } - - } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Debug.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Debug.cs index 4aa3b8a9fb5..edd8a8c6932 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Debug.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Debug.cs @@ -1,17 +1,11 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Logging.Debug, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Logging { - public static class DebugLoggerFactoryExtensions - { - public static Microsoft.Extensions.Logging.ILoggingBuilder AddDebug(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; - } - namespace Debug { public class DebugLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable @@ -20,7 +14,10 @@ namespace Microsoft public DebugLoggerProvider() => throw null; public void Dispose() => throw null; } - + } + public static partial class DebugLoggerFactoryExtensions + { + public static Microsoft.Extensions.Logging.ILoggingBuilder AddDebug(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventLog.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventLog.cs index dc103021eb8..42a8d168d3c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventLog.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventLog.cs @@ -1,40 +1,36 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Logging.EventLog, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Logging { - public static class EventLoggerFactoryExtensions - { - public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Microsoft.Extensions.Logging.EventLog.EventLogSettings settings) => throw null; - } - namespace EventLog { - public class EventLogLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable + public class EventLogLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable, Microsoft.Extensions.Logging.ISupportExternalScope { public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; - public void Dispose() => throw null; public EventLogLoggerProvider() => throw null; public EventLogLoggerProvider(Microsoft.Extensions.Logging.EventLog.EventLogSettings settings) => throw null; public EventLogLoggerProvider(Microsoft.Extensions.Options.IOptions options) => throw null; + public void Dispose() => throw null; public void SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider) => throw null; } - public class EventLogSettings { public EventLogSettings() => throw null; - public System.Func Filter { get => throw null; set => throw null; } - public string LogName { get => throw null; set => throw null; } - public string MachineName { get => throw null; set => throw null; } - public string SourceName { get => throw null; set => throw null; } + public System.Func Filter { get => throw null; set { } } + public string LogName { get => throw null; set { } } + public string MachineName { get => throw null; set { } } + public string SourceName { get => throw null; set { } } } - + } + public static partial class EventLoggerFactoryExtensions + { + public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Microsoft.Extensions.Logging.EventLog.EventLogSettings settings) => throw null; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventSource.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventSource.cs index 8d4e1fb1f5f..e957725610b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventSource.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventSource.cs @@ -1,40 +1,34 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Logging.EventSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Logging { - public static class EventSourceLoggerFactoryExtensions - { - public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventSourceLogger(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; - } - namespace EventSource { public class EventSourceLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable { public Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName) => throw null; - public void Dispose() => throw null; public EventSourceLoggerProvider(Microsoft.Extensions.Logging.EventSource.LoggingEventSource eventSource) => throw null; + public void Dispose() => throw null; } - - public class LoggingEventSource : System.Diagnostics.Tracing.EventSource + public sealed class LoggingEventSource : System.Diagnostics.Tracing.EventSource { public static class Keywords { - public const System.Diagnostics.Tracing.EventKeywords FormattedMessage = default; - public const System.Diagnostics.Tracing.EventKeywords JsonMessage = default; - public const System.Diagnostics.Tracing.EventKeywords Message = default; - public const System.Diagnostics.Tracing.EventKeywords Meta = default; + public static System.Diagnostics.Tracing.EventKeywords FormattedMessage; + public static System.Diagnostics.Tracing.EventKeywords JsonMessage; + public static System.Diagnostics.Tracing.EventKeywords Message; + public static System.Diagnostics.Tracing.EventKeywords Meta; } - - protected override void OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs command) => throw null; } - + } + public static partial class EventSourceLoggerFactoryExtensions + { + public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventSourceLogger(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.TraceSource.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.TraceSource.cs index a28778aad6d..225274f9d12 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.TraceSource.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.TraceSource.cs @@ -1,31 +1,28 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Logging.TraceSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace Logging { - public static class TraceSourceFactoryExtensions + namespace TraceSource + { + public class TraceSourceLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable + { + public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; + public TraceSourceLoggerProvider(System.Diagnostics.SourceSwitch rootSourceSwitch) => throw null; + public TraceSourceLoggerProvider(System.Diagnostics.SourceSwitch rootSourceSwitch, System.Diagnostics.TraceListener rootTraceListener) => throw null; + public void Dispose() => throw null; + } + } + public static partial class TraceSourceFactoryExtensions { public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Diagnostics.SourceSwitch sourceSwitch) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, string switchName) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, string switchName, System.Diagnostics.TraceListener listener) => throw null; } - - namespace TraceSource - { - public class TraceSourceLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable - { - public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; - public void Dispose() => throw null; - public TraceSourceLoggerProvider(System.Diagnostics.SourceSwitch rootSourceSwitch) => throw null; - public TraceSourceLoggerProvider(System.Diagnostics.SourceSwitch rootSourceSwitch, System.Diagnostics.TraceListener rootTraceListener) => throw null; - } - - } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.cs index 0cc448912d1..01edf4dd457 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.cs @@ -1,35 +1,32 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Logging, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class LoggingServiceCollectionExtensions + public static partial class LoggingServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddLogging(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddLogging(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; } - } namespace Logging { [System.Flags] - public enum ActivityTrackingOptions : int + public enum ActivityTrackingOptions { - Baggage = 64, None = 0, - ParentId = 4, SpanId = 1, - Tags = 32, - TraceFlags = 16, TraceId = 2, + ParentId = 4, TraceState = 8, + TraceFlags = 16, + Tags = 32, + Baggage = 64, } - - public static class FilterLoggingBuilderExtensions + public static partial class FilterLoggingBuilderExtensions { public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Func levelFilter) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Func categoryLevelFilter) => throw null; @@ -50,51 +47,45 @@ namespace Microsoft public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, string category, System.Func levelFilter) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, string category, Microsoft.Extensions.Logging.LogLevel level) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; } - public interface ILoggingBuilder { Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - public class LoggerFactory : Microsoft.Extensions.Logging.ILoggerFactory, System.IDisposable { public void AddProvider(Microsoft.Extensions.Logging.ILoggerProvider provider) => throw null; protected virtual bool CheckDisposed() => throw null; public static Microsoft.Extensions.Logging.ILoggerFactory Create(System.Action configure) => throw null; public Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName) => throw null; - public void Dispose() => throw null; public LoggerFactory() => throw null; public LoggerFactory(System.Collections.Generic.IEnumerable providers) => throw null; + public LoggerFactory(System.Collections.Generic.IEnumerable providers, Microsoft.Extensions.Logging.LoggerFilterOptions filterOptions) => throw null; public LoggerFactory(System.Collections.Generic.IEnumerable providers, Microsoft.Extensions.Options.IOptionsMonitor filterOption) => throw null; public LoggerFactory(System.Collections.Generic.IEnumerable providers, Microsoft.Extensions.Options.IOptionsMonitor filterOption, Microsoft.Extensions.Options.IOptions options) => throw null; public LoggerFactory(System.Collections.Generic.IEnumerable providers, Microsoft.Extensions.Options.IOptionsMonitor filterOption, Microsoft.Extensions.Options.IOptions options = default(Microsoft.Extensions.Options.IOptions), Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider = default(Microsoft.Extensions.Logging.IExternalScopeProvider)) => throw null; - public LoggerFactory(System.Collections.Generic.IEnumerable providers, Microsoft.Extensions.Logging.LoggerFilterOptions filterOptions) => throw null; + public void Dispose() => throw null; } - public class LoggerFactoryOptions { - public Microsoft.Extensions.Logging.ActivityTrackingOptions ActivityTrackingOptions { get => throw null; set => throw null; } + public Microsoft.Extensions.Logging.ActivityTrackingOptions ActivityTrackingOptions { get => throw null; set { } } public LoggerFactoryOptions() => throw null; } - public class LoggerFilterOptions { - public bool CaptureScopes { get => throw null; set => throw null; } + public bool CaptureScopes { get => throw null; set { } } public LoggerFilterOptions() => throw null; - public Microsoft.Extensions.Logging.LogLevel MinLevel { get => throw null; set => throw null; } + public Microsoft.Extensions.Logging.LogLevel MinLevel { get => throw null; set { } } public System.Collections.Generic.IList Rules { get => throw null; } } - public class LoggerFilterRule { public string CategoryName { get => throw null; } + public LoggerFilterRule(string providerName, string categoryName, Microsoft.Extensions.Logging.LogLevel? logLevel, System.Func filter) => throw null; public System.Func Filter { get => throw null; } public Microsoft.Extensions.Logging.LogLevel? LogLevel { get => throw null; } - public LoggerFilterRule(string providerName, string categoryName, Microsoft.Extensions.Logging.LogLevel? logLevel, System.Func filter) => throw null; public string ProviderName { get => throw null; } public override string ToString() => throw null; } - public static partial class LoggingBuilderExtensions { public static Microsoft.Extensions.Logging.ILoggingBuilder AddProvider(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Microsoft.Extensions.Logging.ILoggerProvider provider) => throw null; @@ -102,13 +93,11 @@ namespace Microsoft public static Microsoft.Extensions.Logging.ILoggingBuilder Configure(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action action) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder SetMinimumLevel(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Microsoft.Extensions.Logging.LogLevel level) => throw null; } - public class ProviderAliasAttribute : System.Attribute { public string Alias { get => throw null; } public ProviderAliasAttribute(string alias) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.ObjectPool.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.ObjectPool.cs index b6e98e8213a..1cc1f21ffe7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.ObjectPool.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.ObjectPool.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.ObjectPool, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -14,81 +13,69 @@ namespace Microsoft public override T Get() => throw null; public override void Return(T obj) => throw null; } - public class DefaultObjectPoolProvider : Microsoft.Extensions.ObjectPool.ObjectPoolProvider { public override Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) where T : class => throw null; public DefaultObjectPoolProvider() => throw null; - public int MaximumRetained { get => throw null; set => throw null; } + public int MaximumRetained { get => throw null; set { } } } - public class DefaultPooledObjectPolicy : Microsoft.Extensions.ObjectPool.PooledObjectPolicy where T : class, new() { public override T Create() => throw null; public DefaultPooledObjectPolicy() => throw null; public override bool Return(T obj) => throw null; } - public interface IPooledObjectPolicy { T Create(); bool Return(T obj); } - public class LeakTrackingObjectPool : Microsoft.Extensions.ObjectPool.ObjectPool where T : class { - public override T Get() => throw null; public LeakTrackingObjectPool(Microsoft.Extensions.ObjectPool.ObjectPool inner) => throw null; + public override T Get() => throw null; public override void Return(T obj) => throw null; } - public class LeakTrackingObjectPoolProvider : Microsoft.Extensions.ObjectPool.ObjectPoolProvider { public override Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) where T : class => throw null; public LeakTrackingObjectPoolProvider(Microsoft.Extensions.ObjectPool.ObjectPoolProvider inner) => throw null; } - + public abstract class ObjectPool where T : class + { + protected ObjectPool() => throw null; + public abstract T Get(); + public abstract void Return(T obj); + } public static class ObjectPool { public static Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy = default(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy)) where T : class, new() => throw null; } - - public abstract class ObjectPool where T : class - { - public abstract T Get(); - protected ObjectPool() => throw null; - public abstract void Return(T obj); - } - public abstract class ObjectPoolProvider { public Microsoft.Extensions.ObjectPool.ObjectPool Create() where T : class, new() => throw null; public abstract Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) where T : class; protected ObjectPoolProvider() => throw null; } - - public static class ObjectPoolProviderExtensions + public static partial class ObjectPoolProviderExtensions { public static Microsoft.Extensions.ObjectPool.ObjectPool CreateStringBuilderPool(this Microsoft.Extensions.ObjectPool.ObjectPoolProvider provider) => throw null; public static Microsoft.Extensions.ObjectPool.ObjectPool CreateStringBuilderPool(this Microsoft.Extensions.ObjectPool.ObjectPoolProvider provider, int initialCapacity, int maximumRetainedCapacity) => throw null; } - public abstract class PooledObjectPolicy : Microsoft.Extensions.ObjectPool.IPooledObjectPolicy { public abstract T Create(); protected PooledObjectPolicy() => throw null; public abstract bool Return(T obj); } - public class StringBuilderPooledObjectPolicy : Microsoft.Extensions.ObjectPool.PooledObjectPolicy { public override System.Text.StringBuilder Create() => throw null; - public int InitialCapacity { get => throw null; set => throw null; } - public int MaximumRetainedCapacity { get => throw null; set => throw null; } - public override bool Return(System.Text.StringBuilder obj) => throw null; public StringBuilderPooledObjectPolicy() => throw null; + public int InitialCapacity { get => throw null; set { } } + public int MaximumRetainedCapacity { get => throw null; set { } } + public override bool Return(System.Text.StringBuilder obj) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.ConfigurationExtensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.ConfigurationExtensions.cs index 7131c76b988..cd45b9e6dd2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.ConfigurationExtensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.ConfigurationExtensions.cs @@ -1,27 +1,24 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Options.ConfigurationExtensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class OptionsBuilderConfigurationExtensions + public static partial class OptionsBuilderConfigurationExtensions { public static Microsoft.Extensions.Options.OptionsBuilder Bind(this Microsoft.Extensions.Options.OptionsBuilder optionsBuilder, Microsoft.Extensions.Configuration.IConfiguration config) where TOptions : class => throw null; public static Microsoft.Extensions.Options.OptionsBuilder Bind(this Microsoft.Extensions.Options.OptionsBuilder optionsBuilder, Microsoft.Extensions.Configuration.IConfiguration config, System.Action configureBinder) where TOptions : class => throw null; public static Microsoft.Extensions.Options.OptionsBuilder BindConfiguration(this Microsoft.Extensions.Options.OptionsBuilder optionsBuilder, string configSectionPath, System.Action configureBinder = default(System.Action)) where TOptions : class => throw null; } - - public static class OptionsConfigurationServiceCollectionExtensions + public static partial class OptionsConfigurationServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection Configure(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.Configuration.IConfiguration config) where TOptions : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection Configure(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.Configuration.IConfiguration config, System.Action configureBinder) where TOptions : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection Configure(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, Microsoft.Extensions.Configuration.IConfiguration config) where TOptions : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection Configure(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, Microsoft.Extensions.Configuration.IConfiguration config, System.Action configureBinder) where TOptions : class => throw null; } - } namespace Options { @@ -32,18 +29,15 @@ namespace Microsoft public Microsoft.Extensions.Primitives.IChangeToken GetChangeToken() => throw null; public string Name { get => throw null; } } - public class ConfigureFromConfigurationOptions : Microsoft.Extensions.Options.ConfigureOptions where TOptions : class { public ConfigureFromConfigurationOptions(Microsoft.Extensions.Configuration.IConfiguration config) : base(default(System.Action)) => throw null; } - public class NamedConfigureFromConfigurationOptions : Microsoft.Extensions.Options.ConfigureNamedOptions where TOptions : class { public NamedConfigureFromConfigurationOptions(string name, Microsoft.Extensions.Configuration.IConfiguration config) : base(default(string), default(System.Action)) => throw null; public NamedConfigureFromConfigurationOptions(string name, Microsoft.Extensions.Configuration.IConfiguration config, System.Action configureBinder) : base(default(string), default(System.Action)) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.DataAnnotations.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.DataAnnotations.cs index 1e256aac9fd..b40b3ad958b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.DataAnnotations.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.DataAnnotations.cs @@ -1,17 +1,15 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Options.DataAnnotations, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class OptionsBuilderDataAnnotationsExtensions + public static partial class OptionsBuilderDataAnnotationsExtensions { public static Microsoft.Extensions.Options.OptionsBuilder ValidateDataAnnotations(this Microsoft.Extensions.Options.OptionsBuilder optionsBuilder) where TOptions : class => throw null; } - } namespace Options { @@ -21,7 +19,6 @@ namespace Microsoft public string Name { get => throw null; } public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs index b77b3e65468..d6b43314f70 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Options, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class OptionsServiceCollectionExtensions + public static partial class OptionsServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.Options.OptionsBuilder AddOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TOptions : class => throw null; @@ -15,22 +14,71 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IServiceCollection Configure(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) where TOptions : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection Configure(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureOptions) where TOptions : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureAll(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) where TOptions : class => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type configureType) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, object configureInstance) => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type configureType) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TConfigureOptions : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection PostConfigure(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) where TOptions : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection PostConfigure(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureOptions) where TOptions : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection PostConfigureAll(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) where TOptions : class => throw null; } - } namespace Options { - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TDep5 : class where TOptions : class + public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TOptions : class + { + public System.Action Action { get => throw null; } + public virtual void Configure(string name, TOptions options) => throw null; + public void Configure(TOptions options) => throw null; + public ConfigureNamedOptions(string name, System.Action action) => throw null; + public string Name { get => throw null; } + } + public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TOptions : class where TDep : class + { + public System.Action Action { get => throw null; } + public virtual void Configure(string name, TOptions options) => throw null; + public void Configure(TOptions options) => throw null; + public ConfigureNamedOptions(string name, TDep dependency, System.Action action) => throw null; + public TDep Dependency { get => throw null; } + public string Name { get => throw null; } + } + public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TOptions : class where TDep1 : class where TDep2 : class + { + public System.Action Action { get => throw null; } + public virtual void Configure(string name, TOptions options) => throw null; + public void Configure(TOptions options) => throw null; + public ConfigureNamedOptions(string name, TDep1 dependency, TDep2 dependency2, System.Action action) => throw null; + public TDep1 Dependency1 { get => throw null; } + public TDep2 Dependency2 { get => throw null; } + public string Name { get => throw null; } + } + public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TOptions : class where TDep1 : class where TDep2 : class where TDep3 : class + { + public System.Action Action { get => throw null; } + public virtual void Configure(string name, TOptions options) => throw null; + public void Configure(TOptions options) => throw null; + public ConfigureNamedOptions(string name, TDep1 dependency, TDep2 dependency2, TDep3 dependency3, System.Action action) => throw null; + public TDep1 Dependency1 { get => throw null; } + public TDep2 Dependency2 { get => throw null; } + public TDep3 Dependency3 { get => throw null; } + public string Name { get => throw null; } + } + public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TOptions : class where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class + { + public System.Action Action { get => throw null; } + public virtual void Configure(string name, TOptions options) => throw null; + public void Configure(TOptions options) => throw null; + public ConfigureNamedOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, System.Action action) => throw null; + public TDep1 Dependency1 { get => throw null; } + public TDep2 Dependency2 { get => throw null; } + public TDep3 Dependency3 { get => throw null; } + public TDep4 Dependency4 { get => throw null; } + public string Name { get => throw null; } + } + public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TOptions : class where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TDep5 : class { public System.Action Action { get => throw null; } - public void Configure(TOptions options) => throw null; public virtual void Configure(string name, TOptions options) => throw null; + public void Configure(TOptions options) => throw null; public ConfigureNamedOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, TDep5 dependency5, System.Action action) => throw null; public TDep1 Dependency1 { get => throw null; } public TDep2 Dependency2 { get => throw null; } @@ -39,102 +87,39 @@ namespace Microsoft public TDep5 Dependency5 { get => throw null; } public string Name { get => throw null; } } - - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TOptions : class - { - public System.Action Action { get => throw null; } - public void Configure(TOptions options) => throw null; - public virtual void Configure(string name, TOptions options) => throw null; - public ConfigureNamedOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, System.Action action) => throw null; - public TDep1 Dependency1 { get => throw null; } - public TDep2 Dependency2 { get => throw null; } - public TDep3 Dependency3 { get => throw null; } - public TDep4 Dependency4 { get => throw null; } - public string Name { get => throw null; } - } - - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TDep1 : class where TDep2 : class where TDep3 : class where TOptions : class - { - public System.Action Action { get => throw null; } - public void Configure(TOptions options) => throw null; - public virtual void Configure(string name, TOptions options) => throw null; - public ConfigureNamedOptions(string name, TDep1 dependency, TDep2 dependency2, TDep3 dependency3, System.Action action) => throw null; - public TDep1 Dependency1 { get => throw null; } - public TDep2 Dependency2 { get => throw null; } - public TDep3 Dependency3 { get => throw null; } - public string Name { get => throw null; } - } - - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TDep1 : class where TDep2 : class where TOptions : class - { - public System.Action Action { get => throw null; } - public void Configure(TOptions options) => throw null; - public virtual void Configure(string name, TOptions options) => throw null; - public ConfigureNamedOptions(string name, TDep1 dependency, TDep2 dependency2, System.Action action) => throw null; - public TDep1 Dependency1 { get => throw null; } - public TDep2 Dependency2 { get => throw null; } - public string Name { get => throw null; } - } - - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TDep : class where TOptions : class - { - public System.Action Action { get => throw null; } - public void Configure(TOptions options) => throw null; - public virtual void Configure(string name, TOptions options) => throw null; - public ConfigureNamedOptions(string name, TDep dependency, System.Action action) => throw null; - public TDep Dependency { get => throw null; } - public string Name { get => throw null; } - } - - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureNamedOptions, Microsoft.Extensions.Options.IConfigureOptions where TOptions : class - { - public System.Action Action { get => throw null; } - public void Configure(TOptions options) => throw null; - public virtual void Configure(string name, TOptions options) => throw null; - public ConfigureNamedOptions(string name, System.Action action) => throw null; - public string Name { get => throw null; } - } - public class ConfigureOptions : Microsoft.Extensions.Options.IConfigureOptions where TOptions : class { public System.Action Action { get => throw null; } public virtual void Configure(TOptions options) => throw null; public ConfigureOptions(System.Action action) => throw null; } - public interface IConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureOptions where TOptions : class { void Configure(string name, TOptions options); } - public interface IConfigureOptions where TOptions : class { void Configure(TOptions options); } - public interface IOptions where TOptions : class { TOptions Value { get; } } - public interface IOptionsChangeTokenSource { Microsoft.Extensions.Primitives.IChangeToken GetChangeToken(); string Name { get; } } - public interface IOptionsFactory where TOptions : class { TOptions Create(string name); } - public interface IOptionsMonitor { TOptions CurrentValue { get; } TOptions Get(string name); System.IDisposable OnChange(System.Action listener); } - public interface IOptionsMonitorCache where TOptions : class { void Clear(); @@ -142,68 +127,61 @@ namespace Microsoft bool TryAdd(string name, TOptions options); bool TryRemove(string name); } - public interface IOptionsSnapshot : Microsoft.Extensions.Options.IOptions where TOptions : class { TOptions Get(string name); } - public interface IPostConfigureOptions where TOptions : class { void PostConfigure(string name, TOptions options); } - public interface IValidateOptions where TOptions : class { Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options); } - public static class Options { public static Microsoft.Extensions.Options.IOptions Create(TOptions options) where TOptions : class => throw null; public static string DefaultName; } - public class OptionsBuilder where TOptions : class { public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TDep5 : class => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) where TDep1 : class where TDep2 : class => throw null; public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) where TDep : class => throw null; - public string Name { get => throw null; } + public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) where TDep1 : class where TDep2 : class => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TDep5 : class => throw null; public OptionsBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name) => throw null; + public string Name { get => throw null; } public virtual Microsoft.Extensions.Options.OptionsBuilder PostConfigure(System.Action configureOptions) => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder PostConfigure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TDep5 : class => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder PostConfigure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder PostConfigure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder PostConfigure(System.Action configureOptions) where TDep1 : class where TDep2 : class => throw null; public virtual Microsoft.Extensions.Options.OptionsBuilder PostConfigure(System.Action configureOptions) where TDep : class => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder PostConfigure(System.Action configureOptions) where TDep1 : class where TDep2 : class => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder PostConfigure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder PostConfigure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder PostConfigure(System.Action configureOptions) where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TDep5 : class => throw null; public Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get => throw null; } public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation) => throw null; public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation, string failureMessage) => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation) => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation, string failureMessage) => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation) => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation, string failureMessage) => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation) => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation, string failureMessage) => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation) => throw null; - public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation, string failureMessage) => throw null; public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation) => throw null; public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation, string failureMessage) => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation) => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation, string failureMessage) => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation) => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation, string failureMessage) => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation) => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation, string failureMessage) => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation) => throw null; + public virtual Microsoft.Extensions.Options.OptionsBuilder Validate(System.Func validation, string failureMessage) => throw null; } - public class OptionsCache : Microsoft.Extensions.Options.IOptionsMonitorCache where TOptions : class { public void Clear() => throw null; - public virtual TOptions GetOrAdd(string name, System.Func createOptions) => throw null; public OptionsCache() => throw null; + public virtual TOptions GetOrAdd(string name, System.Func createOptions) => throw null; public virtual bool TryAdd(string name, TOptions options) => throw null; public virtual bool TryRemove(string name) => throw null; } - public class OptionsFactory : Microsoft.Extensions.Options.IOptionsFactory where TOptions : class { public TOptions Create(string name) => throw null; @@ -211,113 +189,152 @@ namespace Microsoft public OptionsFactory(System.Collections.Generic.IEnumerable> setups, System.Collections.Generic.IEnumerable> postConfigures) => throw null; public OptionsFactory(System.Collections.Generic.IEnumerable> setups, System.Collections.Generic.IEnumerable> postConfigures, System.Collections.Generic.IEnumerable> validations) => throw null; } - public class OptionsManager : Microsoft.Extensions.Options.IOptions, Microsoft.Extensions.Options.IOptionsSnapshot where TOptions : class { - public virtual TOptions Get(string name) => throw null; public OptionsManager(Microsoft.Extensions.Options.IOptionsFactory factory) => throw null; + public virtual TOptions Get(string name) => throw null; public TOptions Value { get => throw null; } } - public class OptionsMonitor : Microsoft.Extensions.Options.IOptionsMonitor, System.IDisposable where TOptions : class { + public OptionsMonitor(Microsoft.Extensions.Options.IOptionsFactory factory, System.Collections.Generic.IEnumerable> sources, Microsoft.Extensions.Options.IOptionsMonitorCache cache) => throw null; public TOptions CurrentValue { get => throw null; } public void Dispose() => throw null; public virtual TOptions Get(string name) => throw null; public System.IDisposable OnChange(System.Action listener) => throw null; - public OptionsMonitor(Microsoft.Extensions.Options.IOptionsFactory factory, System.Collections.Generic.IEnumerable> sources, Microsoft.Extensions.Options.IOptionsMonitorCache cache) => throw null; } - - public static class OptionsMonitorExtensions + public static partial class OptionsMonitorExtensions { public static System.IDisposable OnChange(this Microsoft.Extensions.Options.IOptionsMonitor monitor, System.Action listener) => throw null; } - public class OptionsValidationException : System.Exception { + public OptionsValidationException(string optionsName, System.Type optionsType, System.Collections.Generic.IEnumerable failureMessages) => throw null; public System.Collections.Generic.IEnumerable Failures { get => throw null; } public override string Message { get => throw null; } public string OptionsName { get => throw null; } public System.Type OptionsType { get => throw null; } - public OptionsValidationException(string optionsName, System.Type optionsType, System.Collections.Generic.IEnumerable failureMessages) => throw null; } - public class OptionsWrapper : Microsoft.Extensions.Options.IOptions where TOptions : class { public OptionsWrapper(TOptions options) => throw null; public TOptions Value { get => throw null; } } - - public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TDep5 : class where TOptions : class - { - public System.Action Action { get => throw null; } - public TDep1 Dependency1 { get => throw null; } - public TDep2 Dependency2 { get => throw null; } - public TDep3 Dependency3 { get => throw null; } - public TDep4 Dependency4 { get => throw null; } - public TDep5 Dependency5 { get => throw null; } - public string Name { get => throw null; } - public void PostConfigure(TOptions options) => throw null; - public virtual void PostConfigure(string name, TOptions options) => throw null; - public PostConfigureOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, TDep5 dependency5, System.Action action) => throw null; - } - - public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TOptions : class - { - public System.Action Action { get => throw null; } - public TDep1 Dependency1 { get => throw null; } - public TDep2 Dependency2 { get => throw null; } - public TDep3 Dependency3 { get => throw null; } - public TDep4 Dependency4 { get => throw null; } - public string Name { get => throw null; } - public void PostConfigure(TOptions options) => throw null; - public virtual void PostConfigure(string name, TOptions options) => throw null; - public PostConfigureOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, System.Action action) => throw null; - } - - public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TDep1 : class where TDep2 : class where TDep3 : class where TOptions : class - { - public System.Action Action { get => throw null; } - public TDep1 Dependency1 { get => throw null; } - public TDep2 Dependency2 { get => throw null; } - public TDep3 Dependency3 { get => throw null; } - public string Name { get => throw null; } - public void PostConfigure(TOptions options) => throw null; - public virtual void PostConfigure(string name, TOptions options) => throw null; - public PostConfigureOptions(string name, TDep1 dependency, TDep2 dependency2, TDep3 dependency3, System.Action action) => throw null; - } - - public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TDep1 : class where TDep2 : class where TOptions : class - { - public System.Action Action { get => throw null; } - public TDep1 Dependency1 { get => throw null; } - public TDep2 Dependency2 { get => throw null; } - public string Name { get => throw null; } - public void PostConfigure(TOptions options) => throw null; - public virtual void PostConfigure(string name, TOptions options) => throw null; - public PostConfigureOptions(string name, TDep1 dependency, TDep2 dependency2, System.Action action) => throw null; - } - - public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TDep : class where TOptions : class - { - public System.Action Action { get => throw null; } - public TDep Dependency { get => throw null; } - public string Name { get => throw null; } - public void PostConfigure(TOptions options) => throw null; - public virtual void PostConfigure(string name, TOptions options) => throw null; - public PostConfigureOptions(string name, TDep dependency, System.Action action) => throw null; - } - public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : class { public System.Action Action { get => throw null; } + public PostConfigureOptions(string name, System.Action action) => throw null; public string Name { get => throw null; } public virtual void PostConfigure(string name, TOptions options) => throw null; - public PostConfigureOptions(string name, System.Action action) => throw null; } - + public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : class where TDep : class + { + public System.Action Action { get => throw null; } + public PostConfigureOptions(string name, TDep dependency, System.Action action) => throw null; + public TDep Dependency { get => throw null; } + public string Name { get => throw null; } + public virtual void PostConfigure(string name, TOptions options) => throw null; + public void PostConfigure(TOptions options) => throw null; + } + public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : class where TDep1 : class where TDep2 : class + { + public System.Action Action { get => throw null; } + public PostConfigureOptions(string name, TDep1 dependency, TDep2 dependency2, System.Action action) => throw null; + public TDep1 Dependency1 { get => throw null; } + public TDep2 Dependency2 { get => throw null; } + public string Name { get => throw null; } + public virtual void PostConfigure(string name, TOptions options) => throw null; + public void PostConfigure(TOptions options) => throw null; + } + public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : class where TDep1 : class where TDep2 : class where TDep3 : class + { + public System.Action Action { get => throw null; } + public PostConfigureOptions(string name, TDep1 dependency, TDep2 dependency2, TDep3 dependency3, System.Action action) => throw null; + public TDep1 Dependency1 { get => throw null; } + public TDep2 Dependency2 { get => throw null; } + public TDep3 Dependency3 { get => throw null; } + public string Name { get => throw null; } + public virtual void PostConfigure(string name, TOptions options) => throw null; + public void PostConfigure(TOptions options) => throw null; + } + public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : class where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class + { + public System.Action Action { get => throw null; } + public PostConfigureOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, System.Action action) => throw null; + public TDep1 Dependency1 { get => throw null; } + public TDep2 Dependency2 { get => throw null; } + public TDep3 Dependency3 { get => throw null; } + public TDep4 Dependency4 { get => throw null; } + public string Name { get => throw null; } + public virtual void PostConfigure(string name, TOptions options) => throw null; + public void PostConfigure(TOptions options) => throw null; + } + public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : class where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TDep5 : class + { + public System.Action Action { get => throw null; } + public PostConfigureOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, TDep5 dependency5, System.Action action) => throw null; + public TDep1 Dependency1 { get => throw null; } + public TDep2 Dependency2 { get => throw null; } + public TDep3 Dependency3 { get => throw null; } + public TDep4 Dependency4 { get => throw null; } + public TDep5 Dependency5 { get => throw null; } + public string Name { get => throw null; } + public virtual void PostConfigure(string name, TOptions options) => throw null; + public void PostConfigure(TOptions options) => throw null; + } + public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { + public ValidateOptions(string name, System.Func validation, string failureMessage) => throw null; + public string FailureMessage { get => throw null; } + public string Name { get => throw null; } + public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; + public System.Func Validation { get => throw null; } + } + public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { + public ValidateOptions(string name, TDep dependency, System.Func validation, string failureMessage) => throw null; + public TDep Dependency { get => throw null; } + public string FailureMessage { get => throw null; } + public string Name { get => throw null; } + public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; + public System.Func Validation { get => throw null; } + } + public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { + public ValidateOptions(string name, TDep1 dependency1, TDep2 dependency2, System.Func validation, string failureMessage) => throw null; + public TDep1 Dependency1 { get => throw null; } + public TDep2 Dependency2 { get => throw null; } + public string FailureMessage { get => throw null; } + public string Name { get => throw null; } + public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; + public System.Func Validation { get => throw null; } + } + public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { + public ValidateOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, System.Func validation, string failureMessage) => throw null; + public TDep1 Dependency1 { get => throw null; } + public TDep2 Dependency2 { get => throw null; } + public TDep3 Dependency3 { get => throw null; } + public string FailureMessage { get => throw null; } + public string Name { get => throw null; } + public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; + public System.Func Validation { get => throw null; } + } + public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { + public ValidateOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, System.Func validation, string failureMessage) => throw null; + public TDep1 Dependency1 { get => throw null; } + public TDep2 Dependency2 { get => throw null; } + public TDep3 Dependency3 { get => throw null; } + public TDep4 Dependency4 { get => throw null; } + public string FailureMessage { get => throw null; } + public string Name { get => throw null; } + public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; + public System.Func Validation { get => throw null; } + } public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class { + public ValidateOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, TDep5 dependency5, System.Func validation, string failureMessage) => throw null; public TDep1 Dependency1 { get => throw null; } public TDep2 Dependency2 { get => throw null; } public TDep3 Dependency3 { get => throw null; } @@ -326,79 +343,21 @@ namespace Microsoft public string FailureMessage { get => throw null; } public string Name { get => throw null; } public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; - public ValidateOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, TDep5 dependency5, System.Func validation, string failureMessage) => throw null; public System.Func Validation { get => throw null; } } - - public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class - { - public TDep1 Dependency1 { get => throw null; } - public TDep2 Dependency2 { get => throw null; } - public TDep3 Dependency3 { get => throw null; } - public TDep4 Dependency4 { get => throw null; } - public string FailureMessage { get => throw null; } - public string Name { get => throw null; } - public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; - public ValidateOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, System.Func validation, string failureMessage) => throw null; - public System.Func Validation { get => throw null; } - } - - public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class - { - public TDep1 Dependency1 { get => throw null; } - public TDep2 Dependency2 { get => throw null; } - public TDep3 Dependency3 { get => throw null; } - public string FailureMessage { get => throw null; } - public string Name { get => throw null; } - public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; - public ValidateOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, System.Func validation, string failureMessage) => throw null; - public System.Func Validation { get => throw null; } - } - - public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class - { - public TDep1 Dependency1 { get => throw null; } - public TDep2 Dependency2 { get => throw null; } - public string FailureMessage { get => throw null; } - public string Name { get => throw null; } - public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; - public ValidateOptions(string name, TDep1 dependency1, TDep2 dependency2, System.Func validation, string failureMessage) => throw null; - public System.Func Validation { get => throw null; } - } - - public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class - { - public TDep Dependency { get => throw null; } - public string FailureMessage { get => throw null; } - public string Name { get => throw null; } - public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; - public ValidateOptions(string name, TDep dependency, System.Func validation, string failureMessage) => throw null; - public System.Func Validation { get => throw null; } - } - - public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class - { - public string FailureMessage { get => throw null; } - public string Name { get => throw null; } - public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options) => throw null; - public ValidateOptions(string name, System.Func validation, string failureMessage) => throw null; - public System.Func Validation { get => throw null; } - } - public class ValidateOptionsResult { + public ValidateOptionsResult() => throw null; public static Microsoft.Extensions.Options.ValidateOptionsResult Fail(System.Collections.Generic.IEnumerable failures) => throw null; public static Microsoft.Extensions.Options.ValidateOptionsResult Fail(string failureMessage) => throw null; - public bool Failed { get => throw null; set => throw null; } - public string FailureMessage { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable Failures { get => throw null; set => throw null; } + public bool Failed { get => throw null; set { } } + public string FailureMessage { get => throw null; set { } } + public System.Collections.Generic.IEnumerable Failures { get => throw null; set { } } public static Microsoft.Extensions.Options.ValidateOptionsResult Skip; - public bool Skipped { get => throw null; set => throw null; } - public bool Succeeded { get => throw null; set => throw null; } + public bool Skipped { get => throw null; set { } } + public bool Succeeded { get => throw null; set { } } public static Microsoft.Extensions.Options.ValidateOptionsResult Success; - public ValidateOptionsResult() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs index c79f01782ee..acc7bc88678 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions @@ -14,13 +13,11 @@ namespace Microsoft public bool HasChanged { get => throw null; } public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; } - public static class ChangeToken { public static System.IDisposable OnChange(System.Func changeTokenProducer, System.Action changeTokenConsumer) => throw null; public static System.IDisposable OnChange(System.Func changeTokenProducer, System.Action changeTokenConsumer, TState state) => throw null; } - public class CompositeChangeToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => throw null; } @@ -29,69 +26,64 @@ namespace Microsoft public bool HasChanged { get => throw null; } public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; } - - public static class Extensions + public static partial class Extensions { public static System.Text.StringBuilder Append(this System.Text.StringBuilder builder, Microsoft.Extensions.Primitives.StringSegment segment) => throw null; } - public interface IChangeToken { bool ActiveChangeCallbacks { get; } bool HasChanged { get; } System.IDisposable RegisterChangeCallback(System.Action callback, object state); } - public struct StringSegment : System.IEquatable, System.IEquatable { - public static bool operator !=(Microsoft.Extensions.Primitives.StringSegment left, Microsoft.Extensions.Primitives.StringSegment right) => throw null; - public static bool operator ==(Microsoft.Extensions.Primitives.StringSegment left, Microsoft.Extensions.Primitives.StringSegment right) => throw null; - public System.ReadOnlyMemory AsMemory() => throw null; - public System.ReadOnlySpan AsSpan() => throw null; - public System.ReadOnlySpan AsSpan(int start) => throw null; - public System.ReadOnlySpan AsSpan(int start, int length) => throw null; + public System.ReadOnlyMemory AsMemory() => throw null; + public System.ReadOnlySpan AsSpan() => throw null; + public System.ReadOnlySpan AsSpan(int start) => throw null; + public System.ReadOnlySpan AsSpan(int start, int length) => throw null; public string Buffer { get => throw null; } public static int Compare(Microsoft.Extensions.Primitives.StringSegment a, Microsoft.Extensions.Primitives.StringSegment b, System.StringComparison comparisonType) => throw null; + public StringSegment(string buffer) => throw null; + public StringSegment(string buffer, int offset, int length) => throw null; public static Microsoft.Extensions.Primitives.StringSegment Empty; public bool EndsWith(string text, System.StringComparison comparisonType) => throw null; public bool Equals(Microsoft.Extensions.Primitives.StringSegment other) => throw null; - public bool Equals(Microsoft.Extensions.Primitives.StringSegment other, System.StringComparison comparisonType) => throw null; public static bool Equals(Microsoft.Extensions.Primitives.StringSegment a, Microsoft.Extensions.Primitives.StringSegment b, System.StringComparison comparisonType) => throw null; + public bool Equals(Microsoft.Extensions.Primitives.StringSegment other, System.StringComparison comparisonType) => throw null; public override bool Equals(object obj) => throw null; public bool Equals(string text) => throw null; public bool Equals(string text, System.StringComparison comparisonType) => throw null; public override int GetHashCode() => throw null; public bool HasValue { get => throw null; } - public int IndexOf(System.Char c) => throw null; - public int IndexOf(System.Char c, int start) => throw null; - public int IndexOf(System.Char c, int start, int count) => throw null; - public int IndexOfAny(System.Char[] anyOf) => throw null; - public int IndexOfAny(System.Char[] anyOf, int startIndex) => throw null; - public int IndexOfAny(System.Char[] anyOf, int startIndex, int count) => throw null; + public int IndexOf(char c) => throw null; + public int IndexOf(char c, int start) => throw null; + public int IndexOf(char c, int start, int count) => throw null; + public int IndexOfAny(char[] anyOf) => throw null; + public int IndexOfAny(char[] anyOf, int startIndex) => throw null; + public int IndexOfAny(char[] anyOf, int startIndex, int count) => throw null; public static bool IsNullOrEmpty(Microsoft.Extensions.Primitives.StringSegment value) => throw null; - public System.Char this[int index] { get => throw null; } - public int LastIndexOf(System.Char value) => throw null; + public int LastIndexOf(char value) => throw null; public int Length { get => throw null; } public int Offset { get => throw null; } - public Microsoft.Extensions.Primitives.StringTokenizer Split(System.Char[] chars) => throw null; + public static bool operator ==(Microsoft.Extensions.Primitives.StringSegment left, Microsoft.Extensions.Primitives.StringSegment right) => throw null; + public static implicit operator System.ReadOnlyMemory(Microsoft.Extensions.Primitives.StringSegment segment) => throw null; + public static implicit operator System.ReadOnlySpan(Microsoft.Extensions.Primitives.StringSegment segment) => throw null; + public static implicit operator Microsoft.Extensions.Primitives.StringSegment(string value) => throw null; + public static bool operator !=(Microsoft.Extensions.Primitives.StringSegment left, Microsoft.Extensions.Primitives.StringSegment right) => throw null; + public Microsoft.Extensions.Primitives.StringTokenizer Split(char[] chars) => throw null; public bool StartsWith(string text, System.StringComparison comparisonType) => throw null; - // Stub generator skipped constructor - public StringSegment(string buffer) => throw null; - public StringSegment(string buffer, int offset, int length) => throw null; public Microsoft.Extensions.Primitives.StringSegment Subsegment(int offset) => throw null; public Microsoft.Extensions.Primitives.StringSegment Subsegment(int offset, int length) => throw null; public string Substring(int offset) => throw null; public string Substring(int offset, int length) => throw null; + public char this[int index] { get => throw null; } public override string ToString() => throw null; public Microsoft.Extensions.Primitives.StringSegment Trim() => throw null; public Microsoft.Extensions.Primitives.StringSegment TrimEnd() => throw null; public Microsoft.Extensions.Primitives.StringSegment TrimStart() => throw null; public string Value { get => throw null; } - public static implicit operator System.ReadOnlyMemory(Microsoft.Extensions.Primitives.StringSegment segment) => throw null; - public static implicit operator System.ReadOnlySpan(Microsoft.Extensions.Primitives.StringSegment segment) => throw null; - public static implicit operator Microsoft.Extensions.Primitives.StringSegment(string value) => throw null; } - public class StringSegmentComparer : System.Collections.Generic.IComparer, System.Collections.Generic.IEqualityComparer { public int Compare(Microsoft.Extensions.Primitives.StringSegment x, Microsoft.Extensions.Primitives.StringSegment y) => throw null; @@ -100,75 +92,54 @@ namespace Microsoft public static Microsoft.Extensions.Primitives.StringSegmentComparer Ordinal { get => throw null; } public static Microsoft.Extensions.Primitives.StringSegmentComparer OrdinalIgnoreCase { get => throw null; } } - public struct StringTokenizer : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + public StringTokenizer(Microsoft.Extensions.Primitives.StringSegment value, char[] separators) => throw null; + public StringTokenizer(string value, char[] separators) => throw null; public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { + public Enumerator(ref Microsoft.Extensions.Primitives.StringTokenizer tokenizer) => throw null; public Microsoft.Extensions.Primitives.StringSegment Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - // Stub generator skipped constructor - public Enumerator(ref Microsoft.Extensions.Primitives.StringTokenizer tokenizer) => throw null; public bool MoveNext() => throw null; public void Reset() => throw null; } - - public Microsoft.Extensions.Primitives.StringTokenizer.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - // Stub generator skipped constructor - public StringTokenizer(Microsoft.Extensions.Primitives.StringSegment value, System.Char[] separators) => throw null; - public StringTokenizer(string value, System.Char[] separators) => throw null; } - - public struct StringValues : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable, System.IEquatable, System.IEquatable, System.IEquatable + public struct StringValues : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.IEquatable, System.IEquatable, System.IEquatable { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public string Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - // Stub generator skipped constructor - public Enumerator(ref Microsoft.Extensions.Primitives.StringValues values) => throw null; - public bool MoveNext() => throw null; - void System.Collections.IEnumerator.Reset() => throw null; - } - - - public static bool operator !=(Microsoft.Extensions.Primitives.StringValues left, Microsoft.Extensions.Primitives.StringValues right) => throw null; - public static bool operator !=(Microsoft.Extensions.Primitives.StringValues left, string[] right) => throw null; - public static bool operator !=(Microsoft.Extensions.Primitives.StringValues left, object right) => throw null; - public static bool operator !=(Microsoft.Extensions.Primitives.StringValues left, string right) => throw null; - public static bool operator !=(string[] left, Microsoft.Extensions.Primitives.StringValues right) => throw null; - public static bool operator !=(object left, Microsoft.Extensions.Primitives.StringValues right) => throw null; - public static bool operator !=(string left, Microsoft.Extensions.Primitives.StringValues right) => throw null; - public static bool operator ==(Microsoft.Extensions.Primitives.StringValues left, Microsoft.Extensions.Primitives.StringValues right) => throw null; - public static bool operator ==(Microsoft.Extensions.Primitives.StringValues left, string[] right) => throw null; - public static bool operator ==(Microsoft.Extensions.Primitives.StringValues left, object right) => throw null; - public static bool operator ==(Microsoft.Extensions.Primitives.StringValues left, string right) => throw null; - public static bool operator ==(string[] left, Microsoft.Extensions.Primitives.StringValues right) => throw null; - public static bool operator ==(object left, Microsoft.Extensions.Primitives.StringValues right) => throw null; - public static bool operator ==(string left, Microsoft.Extensions.Primitives.StringValues right) => throw null; void System.Collections.Generic.ICollection.Add(string item) => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; public static Microsoft.Extensions.Primitives.StringValues Concat(Microsoft.Extensions.Primitives.StringValues values1, Microsoft.Extensions.Primitives.StringValues values2) => throw null; - public static Microsoft.Extensions.Primitives.StringValues Concat(Microsoft.Extensions.Primitives.StringValues values, string value) => throw null; - public static Microsoft.Extensions.Primitives.StringValues Concat(string value, Microsoft.Extensions.Primitives.StringValues values) => throw null; + public static Microsoft.Extensions.Primitives.StringValues Concat(in Microsoft.Extensions.Primitives.StringValues values, string value) => throw null; + public static Microsoft.Extensions.Primitives.StringValues Concat(string value, in Microsoft.Extensions.Primitives.StringValues values) => throw null; bool System.Collections.Generic.ICollection.Contains(string item) => throw null; void System.Collections.Generic.ICollection.CopyTo(string[] array, int arrayIndex) => throw null; public int Count { get => throw null; } + public StringValues(string value) => throw null; + public StringValues(string[] values) => throw null; public static Microsoft.Extensions.Primitives.StringValues Empty; + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + { + public Enumerator(ref Microsoft.Extensions.Primitives.StringValues values) => throw null; + public string Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + void System.Collections.IEnumerator.Reset() => throw null; + } public bool Equals(Microsoft.Extensions.Primitives.StringValues other) => throw null; public static bool Equals(Microsoft.Extensions.Primitives.StringValues left, Microsoft.Extensions.Primitives.StringValues right) => throw null; - public static bool Equals(Microsoft.Extensions.Primitives.StringValues left, string[] right) => throw null; public static bool Equals(Microsoft.Extensions.Primitives.StringValues left, string right) => throw null; - public bool Equals(string[] other) => throw null; - public static bool Equals(string[] left, Microsoft.Extensions.Primitives.StringValues right) => throw null; + public static bool Equals(Microsoft.Extensions.Primitives.StringValues left, string[] right) => throw null; public override bool Equals(object obj) => throw null; public bool Equals(string other) => throw null; public static bool Equals(string left, Microsoft.Extensions.Primitives.StringValues right) => throw null; + public bool Equals(string[] other) => throw null; + public static bool Equals(string[] left, Microsoft.Extensions.Primitives.StringValues right) => throw null; public Microsoft.Extensions.Primitives.StringValues.Enumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; @@ -177,21 +148,31 @@ namespace Microsoft void System.Collections.Generic.IList.Insert(int index, string item) => throw null; public static bool IsNullOrEmpty(Microsoft.Extensions.Primitives.StringValues value) => throw null; bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - public string this[int index] { get => throw null; } - string System.Collections.Generic.IList.this[int index] { get => throw null; set => throw null; } - bool System.Collections.Generic.ICollection.Remove(string item) => throw null; - void System.Collections.Generic.IList.RemoveAt(int index) => throw null; - // Stub generator skipped constructor - public StringValues(string[] values) => throw null; - public StringValues(string value) => throw null; - public string[] ToArray() => throw null; - public override string ToString() => throw null; + string System.Collections.Generic.IList.this[int index] { get => throw null; set { } } + public static bool operator ==(Microsoft.Extensions.Primitives.StringValues left, Microsoft.Extensions.Primitives.StringValues right) => throw null; + public static bool operator ==(Microsoft.Extensions.Primitives.StringValues left, object right) => throw null; + public static bool operator ==(Microsoft.Extensions.Primitives.StringValues left, string right) => throw null; + public static bool operator ==(Microsoft.Extensions.Primitives.StringValues left, string[] right) => throw null; + public static bool operator ==(object left, Microsoft.Extensions.Primitives.StringValues right) => throw null; + public static bool operator ==(string left, Microsoft.Extensions.Primitives.StringValues right) => throw null; + public static bool operator ==(string[] left, Microsoft.Extensions.Primitives.StringValues right) => throw null; public static implicit operator string(Microsoft.Extensions.Primitives.StringValues values) => throw null; public static implicit operator string[](Microsoft.Extensions.Primitives.StringValues value) => throw null; - public static implicit operator Microsoft.Extensions.Primitives.StringValues(string[] values) => throw null; public static implicit operator Microsoft.Extensions.Primitives.StringValues(string value) => throw null; + public static implicit operator Microsoft.Extensions.Primitives.StringValues(string[] values) => throw null; + public static bool operator !=(Microsoft.Extensions.Primitives.StringValues left, Microsoft.Extensions.Primitives.StringValues right) => throw null; + public static bool operator !=(Microsoft.Extensions.Primitives.StringValues left, object right) => throw null; + public static bool operator !=(Microsoft.Extensions.Primitives.StringValues left, string right) => throw null; + public static bool operator !=(Microsoft.Extensions.Primitives.StringValues left, string[] right) => throw null; + public static bool operator !=(object left, Microsoft.Extensions.Primitives.StringValues right) => throw null; + public static bool operator !=(string left, Microsoft.Extensions.Primitives.StringValues right) => throw null; + public static bool operator !=(string[] left, Microsoft.Extensions.Primitives.StringValues right) => throw null; + bool System.Collections.Generic.ICollection.Remove(string item) => throw null; + void System.Collections.Generic.IList.RemoveAt(int index) => throw null; + public string this[int index] { get => throw null; } + public string[] ToArray() => throw null; + public override string ToString() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.WebEncoders.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.WebEncoders.cs index c276b598b64..422f3b8a561 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.WebEncoders.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.WebEncoders.cs @@ -1,65 +1,59 @@ // This file contains auto-generated code. // Generated from `Microsoft.Extensions.WebEncoders, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Extensions { namespace DependencyInjection { - public static class EncoderServiceCollectionExtensions + public static partial class EncoderServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddWebEncoders(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddWebEncoders(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; } - } namespace WebEncoders { - public class WebEncoderOptions - { - public System.Text.Encodings.Web.TextEncoderSettings TextEncoderSettings { get => throw null; set => throw null; } - public WebEncoderOptions() => throw null; - } - namespace Testing { - public class HtmlTestEncoder : System.Text.Encodings.Web.HtmlEncoder + public sealed class HtmlTestEncoder : System.Text.Encodings.Web.HtmlEncoder { - public override void Encode(System.IO.TextWriter output, System.Char[] value, int startIndex, int characterCount) => throw null; - public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => throw null; - public override string Encode(string value) => throw null; - unsafe public override int FindFirstCharacterToEncode(System.Char* text, int textLength) => throw null; public HtmlTestEncoder() => throw null; + public override string Encode(string value) => throw null; + public override void Encode(System.IO.TextWriter output, char[] value, int startIndex, int characterCount) => throw null; + public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => throw null; + public override unsafe int FindFirstCharacterToEncode(char* text, int textLength) => throw null; public override int MaxOutputCharactersPerInputCharacter { get => throw null; } - unsafe public override bool TryEncodeUnicodeScalar(int unicodeScalar, System.Char* buffer, int bufferLength, out int numberOfCharactersWritten) => throw null; + public override unsafe bool TryEncodeUnicodeScalar(int unicodeScalar, char* buffer, int bufferLength, out int numberOfCharactersWritten) => throw null; public override bool WillEncode(int unicodeScalar) => throw null; } - public class JavaScriptTestEncoder : System.Text.Encodings.Web.JavaScriptEncoder { - public override void Encode(System.IO.TextWriter output, System.Char[] value, int startIndex, int characterCount) => throw null; - public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => throw null; - public override string Encode(string value) => throw null; - unsafe public override int FindFirstCharacterToEncode(System.Char* text, int textLength) => throw null; public JavaScriptTestEncoder() => throw null; + public override string Encode(string value) => throw null; + public override void Encode(System.IO.TextWriter output, char[] value, int startIndex, int characterCount) => throw null; + public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => throw null; + public override unsafe int FindFirstCharacterToEncode(char* text, int textLength) => throw null; public override int MaxOutputCharactersPerInputCharacter { get => throw null; } - unsafe public override bool TryEncodeUnicodeScalar(int unicodeScalar, System.Char* buffer, int bufferLength, out int numberOfCharactersWritten) => throw null; + public override unsafe bool TryEncodeUnicodeScalar(int unicodeScalar, char* buffer, int bufferLength, out int numberOfCharactersWritten) => throw null; public override bool WillEncode(int unicodeScalar) => throw null; } - public class UrlTestEncoder : System.Text.Encodings.Web.UrlEncoder { - public override void Encode(System.IO.TextWriter output, System.Char[] value, int startIndex, int characterCount) => throw null; - public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => throw null; - public override string Encode(string value) => throw null; - unsafe public override int FindFirstCharacterToEncode(System.Char* text, int textLength) => throw null; - public override int MaxOutputCharactersPerInputCharacter { get => throw null; } - unsafe public override bool TryEncodeUnicodeScalar(int unicodeScalar, System.Char* buffer, int bufferLength, out int numberOfCharactersWritten) => throw null; public UrlTestEncoder() => throw null; + public override string Encode(string value) => throw null; + public override void Encode(System.IO.TextWriter output, char[] value, int startIndex, int characterCount) => throw null; + public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => throw null; + public override unsafe int FindFirstCharacterToEncode(char* text, int textLength) => throw null; + public override int MaxOutputCharactersPerInputCharacter { get => throw null; } + public override unsafe bool TryEncodeUnicodeScalar(int unicodeScalar, char* buffer, int bufferLength, out int numberOfCharactersWritten) => throw null; public override bool WillEncode(int unicodeScalar) => throw null; } - + } + public sealed class WebEncoderOptions + { + public WebEncoderOptions() => throw null; + public System.Text.Encodings.Web.TextEncoderSettings TextEncoderSettings { get => throw null; set { } } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.JSInterop.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.JSInterop.cs index 9dfd9f3db1a..4a29f8c28d4 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.JSInterop.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.JSInterop.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.JSInterop, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace JSInterop @@ -9,178 +8,83 @@ namespace Microsoft { public static Microsoft.JSInterop.DotNetObjectReference Create(TValue value) where TValue : class => throw null; } - - public class DotNetObjectReference : System.IDisposable where TValue : class + public sealed class DotNetObjectReference : System.IDisposable where TValue : class { public void Dispose() => throw null; public TValue Value { get => throw null; } } - - public class DotNetStreamReference : System.IDisposable + public sealed class DotNetStreamReference : System.IDisposable { - public void Dispose() => throw null; public DotNetStreamReference(System.IO.Stream stream, bool leaveOpen = default(bool)) => throw null; + public void Dispose() => throw null; public bool LeaveOpen { get => throw null; } public System.IO.Stream Stream { get => throw null; } } - public interface IJSInProcessObjectReference : Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable, System.IDisposable { TValue Invoke(string identifier, params object[] args); } - public interface IJSInProcessRuntime : Microsoft.JSInterop.IJSRuntime { TResult Invoke(string identifier, params object[] args); } - public interface IJSObjectReference : System.IAsyncDisposable { - System.Threading.Tasks.ValueTask InvokeAsync(string identifier, System.Threading.CancellationToken cancellationToken, object[] args); System.Threading.Tasks.ValueTask InvokeAsync(string identifier, object[] args); + System.Threading.Tasks.ValueTask InvokeAsync(string identifier, System.Threading.CancellationToken cancellationToken, object[] args); } - public interface IJSRuntime { - System.Threading.Tasks.ValueTask InvokeAsync(string identifier, System.Threading.CancellationToken cancellationToken, object[] args); System.Threading.Tasks.ValueTask InvokeAsync(string identifier, object[] args); + System.Threading.Tasks.ValueTask InvokeAsync(string identifier, System.Threading.CancellationToken cancellationToken, object[] args); } - public interface IJSStreamReference : System.IAsyncDisposable { - System.Int64 Length { get; } - System.Threading.Tasks.ValueTask OpenReadStreamAsync(System.Int64 maxAllowedSize = default(System.Int64), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + long Length { get; } + System.Threading.Tasks.ValueTask OpenReadStreamAsync(long maxAllowedSize = default(long), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - public interface IJSUnmarshalledObjectReference : Microsoft.JSInterop.IJSInProcessObjectReference, Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable, System.IDisposable { - TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2); - TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1); - TResult InvokeUnmarshalled(string identifier, T0 arg0); TResult InvokeUnmarshalled(string identifier); + TResult InvokeUnmarshalled(string identifier, T0 arg0); + TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1); + TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2); } - public interface IJSUnmarshalledRuntime { - TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2); - TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1); - TResult InvokeUnmarshalled(string identifier, T0 arg0); TResult InvokeUnmarshalled(string identifier); + TResult InvokeUnmarshalled(string identifier, T0 arg0); + TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1); + TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2); } - - public enum JSCallResultType : int - { - Default = 0, - JSObjectReference = 1, - JSStreamReference = 2, - JSVoidResult = 3, - } - - public class JSDisconnectedException : System.Exception - { - public JSDisconnectedException(string message) => throw null; - } - - public class JSException : System.Exception - { - public JSException(string message) => throw null; - public JSException(string message, System.Exception innerException) => throw null; - } - - public static class JSInProcessObjectReferenceExtensions - { - public static void InvokeVoid(this Microsoft.JSInterop.IJSInProcessObjectReference jsObjectReference, string identifier, params object[] args) => throw null; - } - - public abstract class JSInProcessRuntime : Microsoft.JSInterop.JSRuntime, Microsoft.JSInterop.IJSInProcessRuntime, Microsoft.JSInterop.IJSRuntime - { - public TValue Invoke(string identifier, params object[] args) => throw null; - protected virtual string InvokeJS(string identifier, string argsJson) => throw null; - protected abstract string InvokeJS(string identifier, string argsJson, Microsoft.JSInterop.JSCallResultType resultType, System.Int64 targetInstanceId); - protected JSInProcessRuntime() => throw null; - } - - public static class JSInProcessRuntimeExtensions - { - public static void InvokeVoid(this Microsoft.JSInterop.IJSInProcessRuntime jsRuntime, string identifier, params object[] args) => throw null; - } - - public class JSInvokableAttribute : System.Attribute - { - public string Identifier { get => throw null; } - public JSInvokableAttribute() => throw null; - public JSInvokableAttribute(string identifier) => throw null; - } - - public static class JSObjectReferenceExtensions - { - public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, System.Threading.CancellationToken cancellationToken, params object[] args) => throw null; - public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, System.TimeSpan timeout, params object[] args) => throw null; - public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, params object[] args) => throw null; - public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, System.Threading.CancellationToken cancellationToken, params object[] args) => throw null; - public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, System.TimeSpan timeout, params object[] args) => throw null; - public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, params object[] args) => throw null; - } - - public abstract class JSRuntime : Microsoft.JSInterop.IJSRuntime, System.IDisposable - { - protected virtual void BeginInvokeJS(System.Int64 taskId, string identifier, string argsJson) => throw null; - protected abstract void BeginInvokeJS(System.Int64 taskId, string identifier, string argsJson, Microsoft.JSInterop.JSCallResultType resultType, System.Int64 targetInstanceId); - protected System.TimeSpan? DefaultAsyncTimeout { get => throw null; set => throw null; } - public void Dispose() => throw null; - protected internal abstract void EndInvokeDotNet(Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, Microsoft.JSInterop.Infrastructure.DotNetInvocationResult invocationResult); - public System.Threading.Tasks.ValueTask InvokeAsync(string identifier, System.Threading.CancellationToken cancellationToken, object[] args) => throw null; - public System.Threading.Tasks.ValueTask InvokeAsync(string identifier, object[] args) => throw null; - protected JSRuntime() => throw null; - protected internal System.Text.Json.JsonSerializerOptions JsonSerializerOptions { get => throw null; } - protected internal virtual System.Threading.Tasks.Task ReadJSDataAsStreamAsync(Microsoft.JSInterop.IJSStreamReference jsStreamReference, System.Int64 totalLength, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - protected internal virtual void ReceiveByteArray(int id, System.Byte[] data) => throw null; - protected internal virtual void SendByteArray(int id, System.Byte[] data) => throw null; - protected internal virtual System.Threading.Tasks.Task TransmitStreamAsync(System.Int64 streamId, Microsoft.JSInterop.DotNetStreamReference dotNetStreamReference) => throw null; - } - - public static class JSRuntimeExtensions - { - public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, System.Threading.CancellationToken cancellationToken, params object[] args) => throw null; - public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, System.TimeSpan timeout, params object[] args) => throw null; - public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, params object[] args) => throw null; - public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, System.Threading.CancellationToken cancellationToken, params object[] args) => throw null; - public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, System.TimeSpan timeout, params object[] args) => throw null; - public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, params object[] args) => throw null; - } - namespace Implementation { public class JSInProcessObjectReference : Microsoft.JSInterop.Implementation.JSObjectReference, Microsoft.JSInterop.IJSInProcessObjectReference, Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable, System.IDisposable { + protected JSInProcessObjectReference(Microsoft.JSInterop.JSInProcessRuntime jsRuntime, long id) : base(default(Microsoft.JSInterop.JSRuntime), default(long)) => throw null; public void Dispose() => throw null; public TValue Invoke(string identifier, params object[] args) => throw null; - protected internal JSInProcessObjectReference(Microsoft.JSInterop.JSInProcessRuntime jsRuntime, System.Int64 id) : base(default(Microsoft.JSInterop.JSRuntime), default(System.Int64)) => throw null; } - public class JSObjectReference : Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable { + protected JSObjectReference(Microsoft.JSInterop.JSRuntime jsRuntime, long id) => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - protected internal System.Int64 Id { get => throw null; } - public System.Threading.Tasks.ValueTask InvokeAsync(string identifier, System.Threading.CancellationToken cancellationToken, object[] args) => throw null; + protected long Id { get => throw null; } public System.Threading.Tasks.ValueTask InvokeAsync(string identifier, object[] args) => throw null; - protected internal JSObjectReference(Microsoft.JSInterop.JSRuntime jsRuntime, System.Int64 id) => throw null; + public System.Threading.Tasks.ValueTask InvokeAsync(string identifier, System.Threading.CancellationToken cancellationToken, object[] args) => throw null; protected void ThrowIfDisposed() => throw null; } - public static class JSObjectReferenceJsonWorker { - public static System.Int64 ReadJSObjectReferenceIdentifier(ref System.Text.Json.Utf8JsonReader reader) => throw null; + public static long ReadJSObjectReferenceIdentifier(ref System.Text.Json.Utf8JsonReader reader) => throw null; public static void WriteJSObjectReference(System.Text.Json.Utf8JsonWriter writer, Microsoft.JSInterop.Implementation.JSObjectReference objectReference) => throw null; } - - public class JSStreamReference : Microsoft.JSInterop.Implementation.JSObjectReference, Microsoft.JSInterop.IJSStreamReference, System.IAsyncDisposable + public sealed class JSStreamReference : Microsoft.JSInterop.Implementation.JSObjectReference, Microsoft.JSInterop.IJSStreamReference, System.IAsyncDisposable { - internal JSStreamReference(Microsoft.JSInterop.JSRuntime jsRuntime, System.Int64 id, System.Int64 totalLength) : base(default(Microsoft.JSInterop.JSRuntime), default(System.Int64)) => throw null; - public System.Int64 Length { get => throw null; } - System.Threading.Tasks.ValueTask Microsoft.JSInterop.IJSStreamReference.OpenReadStreamAsync(System.Int64 maxAllowedSize, System.Threading.CancellationToken cancellationToken) => throw null; + public long Length { get => throw null; } + System.Threading.Tasks.ValueTask Microsoft.JSInterop.IJSStreamReference.OpenReadStreamAsync(long maxAllowedSize, System.Threading.CancellationToken cancellationToken) => throw null; + internal JSStreamReference() : base(default(Microsoft.JSInterop.JSRuntime), default(long)) { } } - } namespace Infrastructure { @@ -188,37 +92,98 @@ namespace Microsoft { public static void BeginInvokeDotNet(Microsoft.JSInterop.JSRuntime jsRuntime, Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, string argsJson) => throw null; public static void EndInvokeJS(Microsoft.JSInterop.JSRuntime jsRuntime, string arguments) => throw null; - public static string Invoke(Microsoft.JSInterop.JSRuntime jsRuntime, Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, string argsJson) => throw null; - public static void ReceiveByteArray(Microsoft.JSInterop.JSRuntime jsRuntime, int id, System.Byte[] data) => throw null; + public static string Invoke(Microsoft.JSInterop.JSRuntime jsRuntime, in Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, string argsJson) => throw null; + public static void ReceiveByteArray(Microsoft.JSInterop.JSRuntime jsRuntime, int id, byte[] data) => throw null; } - public struct DotNetInvocationInfo { public string AssemblyName { get => throw null; } public string CallId { get => throw null; } - // Stub generator skipped constructor - public DotNetInvocationInfo(string assemblyName, string methodIdentifier, System.Int64 dotNetObjectId, string callId) => throw null; - public System.Int64 DotNetObjectId { get => throw null; } + public DotNetInvocationInfo(string assemblyName, string methodIdentifier, long dotNetObjectId, string callId) => throw null; + public long DotNetObjectId { get => throw null; } public string MethodIdentifier { get => throw null; } } - public struct DotNetInvocationResult { - // Stub generator skipped constructor public string ErrorKind { get => throw null; } public System.Exception Exception { get => throw null; } public string ResultJson { get => throw null; } public bool Success { get => throw null; } } - - internal interface IDotNetObjectReference : System.IDisposable - { - } - public interface IJSVoidResult { } - + } + public enum JSCallResultType + { + Default = 0, + JSObjectReference = 1, + JSStreamReference = 2, + JSVoidResult = 3, + } + public sealed class JSDisconnectedException : System.Exception + { + public JSDisconnectedException(string message) => throw null; + } + public class JSException : System.Exception + { + public JSException(string message) => throw null; + public JSException(string message, System.Exception innerException) => throw null; + } + public static partial class JSInProcessObjectReferenceExtensions + { + public static void InvokeVoid(this Microsoft.JSInterop.IJSInProcessObjectReference jsObjectReference, string identifier, params object[] args) => throw null; + } + public abstract class JSInProcessRuntime : Microsoft.JSInterop.JSRuntime, Microsoft.JSInterop.IJSInProcessRuntime, Microsoft.JSInterop.IJSRuntime + { + protected JSInProcessRuntime() => throw null; + public TValue Invoke(string identifier, params object[] args) => throw null; + protected virtual string InvokeJS(string identifier, string argsJson) => throw null; + protected abstract string InvokeJS(string identifier, string argsJson, Microsoft.JSInterop.JSCallResultType resultType, long targetInstanceId); + } + public static partial class JSInProcessRuntimeExtensions + { + public static void InvokeVoid(this Microsoft.JSInterop.IJSInProcessRuntime jsRuntime, string identifier, params object[] args) => throw null; + } + public sealed class JSInvokableAttribute : System.Attribute + { + public JSInvokableAttribute() => throw null; + public JSInvokableAttribute(string identifier) => throw null; + public string Identifier { get => throw null; } + } + public static partial class JSObjectReferenceExtensions + { + public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, params object[] args) => throw null; + public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, System.Threading.CancellationToken cancellationToken, params object[] args) => throw null; + public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, System.TimeSpan timeout, params object[] args) => throw null; + public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, params object[] args) => throw null; + public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, System.Threading.CancellationToken cancellationToken, params object[] args) => throw null; + public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, System.TimeSpan timeout, params object[] args) => throw null; + } + public abstract class JSRuntime : Microsoft.JSInterop.IJSRuntime, System.IDisposable + { + protected virtual void BeginInvokeJS(long taskId, string identifier, string argsJson) => throw null; + protected abstract void BeginInvokeJS(long taskId, string identifier, string argsJson, Microsoft.JSInterop.JSCallResultType resultType, long targetInstanceId); + protected JSRuntime() => throw null; + protected System.TimeSpan? DefaultAsyncTimeout { get => throw null; set { } } + public void Dispose() => throw null; + protected abstract void EndInvokeDotNet(Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, in Microsoft.JSInterop.Infrastructure.DotNetInvocationResult invocationResult); + public System.Threading.Tasks.ValueTask InvokeAsync(string identifier, object[] args) => throw null; + public System.Threading.Tasks.ValueTask InvokeAsync(string identifier, System.Threading.CancellationToken cancellationToken, object[] args) => throw null; + protected System.Text.Json.JsonSerializerOptions JsonSerializerOptions { get => throw null; } + protected virtual System.Threading.Tasks.Task ReadJSDataAsStreamAsync(Microsoft.JSInterop.IJSStreamReference jsStreamReference, long totalLength, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected virtual void ReceiveByteArray(int id, byte[] data) => throw null; + protected virtual void SendByteArray(int id, byte[] data) => throw null; + protected virtual System.Threading.Tasks.Task TransmitStreamAsync(long streamId, Microsoft.JSInterop.DotNetStreamReference dotNetStreamReference) => throw null; + } + public static partial class JSRuntimeExtensions + { + public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, params object[] args) => throw null; + public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, System.Threading.CancellationToken cancellationToken, params object[] args) => throw null; + public static System.Threading.Tasks.ValueTask InvokeAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, System.TimeSpan timeout, params object[] args) => throw null; + public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, params object[] args) => throw null; + public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, System.Threading.CancellationToken cancellationToken, params object[] args) => throw null; + public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, System.TimeSpan timeout, params object[] args) => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs index 313c38fbba1..f4acc51ab11 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `Microsoft.Net.Http.Headers, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. - namespace Microsoft { namespace Net @@ -15,90 +14,86 @@ namespace Microsoft public override bool Equals(object obj) => throw null; public System.Collections.Generic.IList Extensions { get => throw null; } public override int GetHashCode() => throw null; - public System.TimeSpan? MaxAge { get => throw null; set => throw null; } + public System.TimeSpan? MaxAge { get => throw null; set { } } public static string MaxAgeString; - public bool MaxStale { get => throw null; set => throw null; } - public System.TimeSpan? MaxStaleLimit { get => throw null; set => throw null; } + public bool MaxStale { get => throw null; set { } } + public System.TimeSpan? MaxStaleLimit { get => throw null; set { } } public static string MaxStaleString; - public System.TimeSpan? MinFresh { get => throw null; set => throw null; } + public System.TimeSpan? MinFresh { get => throw null; set { } } public static string MinFreshString; - public bool MustRevalidate { get => throw null; set => throw null; } + public bool MustRevalidate { get => throw null; set { } } public static string MustRevalidateString; - public bool NoCache { get => throw null; set => throw null; } + public bool NoCache { get => throw null; set { } } public System.Collections.Generic.ICollection NoCacheHeaders { get => throw null; } public static string NoCacheString; - public bool NoStore { get => throw null; set => throw null; } + public bool NoStore { get => throw null; set { } } public static string NoStoreString; - public bool NoTransform { get => throw null; set => throw null; } + public bool NoTransform { get => throw null; set { } } public static string NoTransformString; - public bool OnlyIfCached { get => throw null; set => throw null; } + public bool OnlyIfCached { get => throw null; set { } } public static string OnlyIfCachedString; public static Microsoft.Net.Http.Headers.CacheControlHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; - public bool Private { get => throw null; set => throw null; } + public bool Private { get => throw null; set { } } public System.Collections.Generic.ICollection PrivateHeaders { get => throw null; } public static string PrivateString; - public bool ProxyRevalidate { get => throw null; set => throw null; } + public bool ProxyRevalidate { get => throw null; set { } } public static string ProxyRevalidateString; - public bool Public { get => throw null; set => throw null; } + public bool Public { get => throw null; set { } } public static string PublicString; - public System.TimeSpan? SharedMaxAge { get => throw null; set => throw null; } + public System.TimeSpan? SharedMaxAge { get => throw null; set { } } public static string SharedMaxAgeString; public override string ToString() => throw null; public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.CacheControlHeaderValue parsedValue) => throw null; } - public class ContentDispositionHeaderValue { + public System.DateTimeOffset? CreationDate { get => throw null; set { } } public ContentDispositionHeaderValue(Microsoft.Extensions.Primitives.StringSegment dispositionType) => throw null; - public System.DateTimeOffset? CreationDate { get => throw null; set => throw null; } - public Microsoft.Extensions.Primitives.StringSegment DispositionType { get => throw null; set => throw null; } + public Microsoft.Extensions.Primitives.StringSegment DispositionType { get => throw null; set { } } public override bool Equals(object obj) => throw null; - public Microsoft.Extensions.Primitives.StringSegment FileName { get => throw null; set => throw null; } - public Microsoft.Extensions.Primitives.StringSegment FileNameStar { get => throw null; set => throw null; } + public Microsoft.Extensions.Primitives.StringSegment FileName { get => throw null; set { } } + public Microsoft.Extensions.Primitives.StringSegment FileNameStar { get => throw null; set { } } public override int GetHashCode() => throw null; - public System.DateTimeOffset? ModificationDate { get => throw null; set => throw null; } - public Microsoft.Extensions.Primitives.StringSegment Name { get => throw null; set => throw null; } + public System.DateTimeOffset? ModificationDate { get => throw null; set { } } + public Microsoft.Extensions.Primitives.StringSegment Name { get => throw null; set { } } public System.Collections.Generic.IList Parameters { get => throw null; } public static Microsoft.Net.Http.Headers.ContentDispositionHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; - public System.DateTimeOffset? ReadDate { get => throw null; set => throw null; } + public System.DateTimeOffset? ReadDate { get => throw null; set { } } public void SetHttpFileName(Microsoft.Extensions.Primitives.StringSegment fileName) => throw null; public void SetMimeFileName(Microsoft.Extensions.Primitives.StringSegment fileName) => throw null; - public System.Int64? Size { get => throw null; set => throw null; } + public long? Size { get => throw null; set { } } public override string ToString() => throw null; public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.ContentDispositionHeaderValue parsedValue) => throw null; } - - public static class ContentDispositionHeaderValueIdentityExtensions + public static partial class ContentDispositionHeaderValueIdentityExtensions { public static bool IsFileDisposition(this Microsoft.Net.Http.Headers.ContentDispositionHeaderValue header) => throw null; public static bool IsFormDisposition(this Microsoft.Net.Http.Headers.ContentDispositionHeaderValue header) => throw null; } - public class ContentRangeHeaderValue { - public ContentRangeHeaderValue(System.Int64 length) => throw null; - public ContentRangeHeaderValue(System.Int64 from, System.Int64 to) => throw null; - public ContentRangeHeaderValue(System.Int64 from, System.Int64 to, System.Int64 length) => throw null; + public ContentRangeHeaderValue(long from, long to, long length) => throw null; + public ContentRangeHeaderValue(long length) => throw null; + public ContentRangeHeaderValue(long from, long to) => throw null; public override bool Equals(object obj) => throw null; - public System.Int64? From { get => throw null; } + public long? From { get => throw null; } public override int GetHashCode() => throw null; public bool HasLength { get => throw null; } public bool HasRange { get => throw null; } - public System.Int64? Length { get => throw null; } + public long? Length { get => throw null; } public static Microsoft.Net.Http.Headers.ContentRangeHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; - public System.Int64? To { get => throw null; } + public long? To { get => throw null; } public override string ToString() => throw null; public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.ContentRangeHeaderValue parsedValue) => throw null; - public Microsoft.Extensions.Primitives.StringSegment Unit { get => throw null; set => throw null; } + public Microsoft.Extensions.Primitives.StringSegment Unit { get => throw null; set { } } } - public class CookieHeaderValue { public CookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name) => throw null; public CookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name, Microsoft.Extensions.Primitives.StringSegment value) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public Microsoft.Extensions.Primitives.StringSegment Name { get => throw null; set => throw null; } + public Microsoft.Extensions.Primitives.StringSegment Name { get => throw null; set { } } public static Microsoft.Net.Http.Headers.CookieHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; public static System.Collections.Generic.IList ParseList(System.Collections.Generic.IList inputs) => throw null; public static System.Collections.Generic.IList ParseStrictList(System.Collections.Generic.IList inputs) => throw null; @@ -106,9 +101,8 @@ namespace Microsoft public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.CookieHeaderValue parsedValue) => throw null; public static bool TryParseList(System.Collections.Generic.IList inputs, out System.Collections.Generic.IList parsedValues) => throw null; public static bool TryParseStrictList(System.Collections.Generic.IList inputs, out System.Collections.Generic.IList parsedValues) => throw null; - public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; set => throw null; } + public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; set { } } } - public class EntityTagHeaderValue { public static Microsoft.Net.Http.Headers.EntityTagHeaderValue Any { get => throw null; } @@ -127,7 +121,6 @@ namespace Microsoft public static bool TryParseList(System.Collections.Generic.IList inputs, out System.Collections.Generic.IList parsedValues) => throw null; public static bool TryParseStrictList(System.Collections.Generic.IList inputs, out System.Collections.Generic.IList parsedValues) => throw null; } - public static class HeaderNames { public static string Accept; @@ -163,8 +156,8 @@ namespace Microsoft public static string ContentType; public static string Cookie; public static string CorrelationContext; - public static string DNT; public static string Date; + public static string DNT; public static string ETag; public static string Expect; public static string Expires; @@ -217,9 +210,9 @@ namespace Microsoft public static string UserAgent; public static string Vary; public static string Via; - public static string WWWAuthenticate; public static string Warning; public static string WebSocketSubProtocols; + public static string WWWAuthenticate; public static string XContentTypeOptions; public static string XFrameOptions; public static string XPoweredBy; @@ -227,36 +220,35 @@ namespace Microsoft public static string XUACompatible; public static string XXSSProtection; } - public static class HeaderQuality { - public const double Match = default; - public const double NoMatch = default; + public static double Match; + public static double NoMatch; } - public static class HeaderUtilities { public static bool ContainsCacheDirective(Microsoft.Extensions.Primitives.StringValues cacheControlDirectives, string targetDirectives) => throw null; public static Microsoft.Extensions.Primitives.StringSegment EscapeAsQuotedString(Microsoft.Extensions.Primitives.StringSegment input) => throw null; public static string FormatDate(System.DateTimeOffset dateTime) => throw null; public static string FormatDate(System.DateTimeOffset dateTime, bool quoted) => throw null; - public static string FormatNonNegativeInt64(System.Int64 value) => throw null; + public static string FormatNonNegativeInt64(long value) => throw null; public static bool IsQuoted(Microsoft.Extensions.Primitives.StringSegment input) => throw null; public static Microsoft.Extensions.Primitives.StringSegment RemoveQuotes(Microsoft.Extensions.Primitives.StringSegment input) => throw null; public static bool TryParseDate(Microsoft.Extensions.Primitives.StringSegment input, out System.DateTimeOffset result) => throw null; public static bool TryParseNonNegativeInt32(Microsoft.Extensions.Primitives.StringSegment value, out int result) => throw null; - public static bool TryParseNonNegativeInt64(Microsoft.Extensions.Primitives.StringSegment value, out System.Int64 result) => throw null; + public static bool TryParseNonNegativeInt64(Microsoft.Extensions.Primitives.StringSegment value, out long result) => throw null; public static bool TryParseSeconds(Microsoft.Extensions.Primitives.StringValues headerValues, string targetValue, out System.TimeSpan? value) => throw null; public static Microsoft.Extensions.Primitives.StringSegment UnescapeAsQuotedString(Microsoft.Extensions.Primitives.StringSegment input) => throw null; } - public class MediaTypeHeaderValue { - public Microsoft.Extensions.Primitives.StringSegment Boundary { get => throw null; set => throw null; } - public Microsoft.Extensions.Primitives.StringSegment Charset { get => throw null; set => throw null; } + public Microsoft.Extensions.Primitives.StringSegment Boundary { get => throw null; set { } } + public Microsoft.Extensions.Primitives.StringSegment Charset { get => throw null; set { } } public Microsoft.Net.Http.Headers.MediaTypeHeaderValue Copy() => throw null; public Microsoft.Net.Http.Headers.MediaTypeHeaderValue CopyAsReadOnly() => throw null; - public System.Text.Encoding Encoding { get => throw null; set => throw null; } + public MediaTypeHeaderValue(Microsoft.Extensions.Primitives.StringSegment mediaType) => throw null; + public MediaTypeHeaderValue(Microsoft.Extensions.Primitives.StringSegment mediaType, double quality) => throw null; + public System.Text.Encoding Encoding { get => throw null; set { } } public override bool Equals(object obj) => throw null; public System.Collections.Generic.IEnumerable Facets { get => throw null; } public override int GetHashCode() => throw null; @@ -266,14 +258,12 @@ namespace Microsoft public bool MatchesAllSubTypesWithoutSuffix { get => throw null; } public bool MatchesAllTypes { get => throw null; } public bool MatchesMediaType(Microsoft.Extensions.Primitives.StringSegment otherMediaType) => throw null; - public Microsoft.Extensions.Primitives.StringSegment MediaType { get => throw null; set => throw null; } - public MediaTypeHeaderValue(Microsoft.Extensions.Primitives.StringSegment mediaType) => throw null; - public MediaTypeHeaderValue(Microsoft.Extensions.Primitives.StringSegment mediaType, double quality) => throw null; + public Microsoft.Extensions.Primitives.StringSegment MediaType { get => throw null; set { } } public System.Collections.Generic.IList Parameters { get => throw null; } public static Microsoft.Net.Http.Headers.MediaTypeHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; public static System.Collections.Generic.IList ParseList(System.Collections.Generic.IList inputs) => throw null; public static System.Collections.Generic.IList ParseStrictList(System.Collections.Generic.IList inputs) => throw null; - public double? Quality { get => throw null; set => throw null; } + public double? Quality { get => throw null; set { } } public Microsoft.Extensions.Primitives.StringSegment SubType { get => throw null; } public Microsoft.Extensions.Primitives.StringSegment SubTypeWithoutSuffix { get => throw null; } public Microsoft.Extensions.Primitives.StringSegment Suffix { get => throw null; } @@ -283,25 +273,23 @@ namespace Microsoft public static bool TryParseStrictList(System.Collections.Generic.IList inputs, out System.Collections.Generic.IList parsedValues) => throw null; public Microsoft.Extensions.Primitives.StringSegment Type { get => throw null; } } - public class MediaTypeHeaderValueComparer : System.Collections.Generic.IComparer { public int Compare(Microsoft.Net.Http.Headers.MediaTypeHeaderValue mediaType1, Microsoft.Net.Http.Headers.MediaTypeHeaderValue mediaType2) => throw null; public static Microsoft.Net.Http.Headers.MediaTypeHeaderValueComparer QualityComparer { get => throw null; } } - public class NameValueHeaderValue { public Microsoft.Net.Http.Headers.NameValueHeaderValue Copy() => throw null; public Microsoft.Net.Http.Headers.NameValueHeaderValue CopyAsReadOnly() => throw null; + public NameValueHeaderValue(Microsoft.Extensions.Primitives.StringSegment name) => throw null; + public NameValueHeaderValue(Microsoft.Extensions.Primitives.StringSegment name, Microsoft.Extensions.Primitives.StringSegment value) => throw null; public override bool Equals(object obj) => throw null; public static Microsoft.Net.Http.Headers.NameValueHeaderValue Find(System.Collections.Generic.IList values, Microsoft.Extensions.Primitives.StringSegment name) => throw null; public override int GetHashCode() => throw null; public Microsoft.Extensions.Primitives.StringSegment GetUnescapedValue() => throw null; public bool IsReadOnly { get => throw null; } public Microsoft.Extensions.Primitives.StringSegment Name { get => throw null; } - public NameValueHeaderValue(Microsoft.Extensions.Primitives.StringSegment name) => throw null; - public NameValueHeaderValue(Microsoft.Extensions.Primitives.StringSegment name, Microsoft.Extensions.Primitives.StringSegment value) => throw null; public static Microsoft.Net.Http.Headers.NameValueHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; public static System.Collections.Generic.IList ParseList(System.Collections.Generic.IList input) => throw null; public static System.Collections.Generic.IList ParseStrictList(System.Collections.Generic.IList input) => throw null; @@ -310,103 +298,95 @@ namespace Microsoft public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.NameValueHeaderValue parsedValue) => throw null; public static bool TryParseList(System.Collections.Generic.IList input, out System.Collections.Generic.IList parsedValues) => throw null; public static bool TryParseStrictList(System.Collections.Generic.IList input, out System.Collections.Generic.IList parsedValues) => throw null; - public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; set => throw null; } + public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; set { } } } - public class RangeConditionHeaderValue { + public RangeConditionHeaderValue(System.DateTimeOffset lastModified) => throw null; + public RangeConditionHeaderValue(Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; + public RangeConditionHeaderValue(string entityTag) => throw null; public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; } public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public System.DateTimeOffset? LastModified { get => throw null; } public static Microsoft.Net.Http.Headers.RangeConditionHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; - public RangeConditionHeaderValue(System.DateTimeOffset lastModified) => throw null; - public RangeConditionHeaderValue(Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; - public RangeConditionHeaderValue(string entityTag) => throw null; public override string ToString() => throw null; public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.RangeConditionHeaderValue parsedValue) => throw null; } - public class RangeHeaderValue { + public RangeHeaderValue() => throw null; + public RangeHeaderValue(long? from, long? to) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static Microsoft.Net.Http.Headers.RangeHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; - public RangeHeaderValue() => throw null; - public RangeHeaderValue(System.Int64? from, System.Int64? to) => throw null; public System.Collections.Generic.ICollection Ranges { get => throw null; } public override string ToString() => throw null; public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.RangeHeaderValue parsedValue) => throw null; - public Microsoft.Extensions.Primitives.StringSegment Unit { get => throw null; set => throw null; } + public Microsoft.Extensions.Primitives.StringSegment Unit { get => throw null; set { } } } - public class RangeItemHeaderValue { + public RangeItemHeaderValue(long? from, long? to) => throw null; public override bool Equals(object obj) => throw null; - public System.Int64? From { get => throw null; } + public long? From { get => throw null; } public override int GetHashCode() => throw null; - public RangeItemHeaderValue(System.Int64? from, System.Int64? to) => throw null; - public System.Int64? To { get => throw null; } + public long? To { get => throw null; } public override string ToString() => throw null; } - - public enum SameSiteMode : int + public enum SameSiteMode { - Lax = 1, - None = 0, - Strict = 2, Unspecified = -1, + None = 0, + Lax = 1, + Strict = 2, } - public class SetCookieHeaderValue { public void AppendToStringBuilder(System.Text.StringBuilder builder) => throw null; - public Microsoft.Extensions.Primitives.StringSegment Domain { get => throw null; set => throw null; } + public SetCookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name) => throw null; + public SetCookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name, Microsoft.Extensions.Primitives.StringSegment value) => throw null; + public Microsoft.Extensions.Primitives.StringSegment Domain { get => throw null; set { } } public override bool Equals(object obj) => throw null; - public System.DateTimeOffset? Expires { get => throw null; set => throw null; } + public System.DateTimeOffset? Expires { get => throw null; set { } } public System.Collections.Generic.IList Extensions { get => throw null; } public override int GetHashCode() => throw null; - public bool HttpOnly { get => throw null; set => throw null; } - public System.TimeSpan? MaxAge { get => throw null; set => throw null; } - public Microsoft.Extensions.Primitives.StringSegment Name { get => throw null; set => throw null; } + public bool HttpOnly { get => throw null; set { } } + public System.TimeSpan? MaxAge { get => throw null; set { } } + public Microsoft.Extensions.Primitives.StringSegment Name { get => throw null; set { } } public static Microsoft.Net.Http.Headers.SetCookieHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; public static System.Collections.Generic.IList ParseList(System.Collections.Generic.IList inputs) => throw null; public static System.Collections.Generic.IList ParseStrictList(System.Collections.Generic.IList inputs) => throw null; - public Microsoft.Extensions.Primitives.StringSegment Path { get => throw null; set => throw null; } - public Microsoft.Net.Http.Headers.SameSiteMode SameSite { get => throw null; set => throw null; } - public bool Secure { get => throw null; set => throw null; } - public SetCookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name) => throw null; - public SetCookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name, Microsoft.Extensions.Primitives.StringSegment value) => throw null; + public Microsoft.Extensions.Primitives.StringSegment Path { get => throw null; set { } } + public Microsoft.Net.Http.Headers.SameSiteMode SameSite { get => throw null; set { } } + public bool Secure { get => throw null; set { } } public override string ToString() => throw null; public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.SetCookieHeaderValue parsedValue) => throw null; public static bool TryParseList(System.Collections.Generic.IList inputs, out System.Collections.Generic.IList parsedValues) => throw null; public static bool TryParseStrictList(System.Collections.Generic.IList inputs, out System.Collections.Generic.IList parsedValues) => throw null; - public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; set => throw null; } + public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; set { } } } - public class StringWithQualityHeaderValue { + public StringWithQualityHeaderValue(Microsoft.Extensions.Primitives.StringSegment value) => throw null; + public StringWithQualityHeaderValue(Microsoft.Extensions.Primitives.StringSegment value, double quality) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static Microsoft.Net.Http.Headers.StringWithQualityHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; public static System.Collections.Generic.IList ParseList(System.Collections.Generic.IList input) => throw null; public static System.Collections.Generic.IList ParseStrictList(System.Collections.Generic.IList input) => throw null; public double? Quality { get => throw null; } - public StringWithQualityHeaderValue(Microsoft.Extensions.Primitives.StringSegment value) => throw null; - public StringWithQualityHeaderValue(Microsoft.Extensions.Primitives.StringSegment value, double quality) => throw null; public override string ToString() => throw null; public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.StringWithQualityHeaderValue parsedValue) => throw null; public static bool TryParseList(System.Collections.Generic.IList input, out System.Collections.Generic.IList parsedValues) => throw null; public static bool TryParseStrictList(System.Collections.Generic.IList input, out System.Collections.Generic.IList parsedValues) => throw null; public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; } } - public class StringWithQualityHeaderValueComparer : System.Collections.Generic.IComparer { public int Compare(Microsoft.Net.Http.Headers.StringWithQualityHeaderValue stringWithQuality1, Microsoft.Net.Http.Headers.StringWithQualityHeaderValue stringWithQuality2) => throw null; public static Microsoft.Net.Http.Headers.StringWithQualityHeaderValueComparer QualityComparer { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Diagnostics.EventLog.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Diagnostics.EventLog.cs index 95b5a1e0111..da3269ed7d8 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Diagnostics.EventLog.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Diagnostics.EventLog.cs @@ -1,232 +1,84 @@ // This file contains auto-generated code. // Generated from `System.Diagnostics.EventLog, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Diagnostics { public class EntryWrittenEventArgs : System.EventArgs { - public System.Diagnostics.EventLogEntry Entry { get => throw null; } public EntryWrittenEventArgs() => throw null; public EntryWrittenEventArgs(System.Diagnostics.EventLogEntry entry) => throw null; + public System.Diagnostics.EventLogEntry Entry { get => throw null; } } - public delegate void EntryWrittenEventHandler(object sender, System.Diagnostics.EntryWrittenEventArgs e); - - public class EventInstance - { - public int CategoryId { get => throw null; set => throw null; } - public System.Diagnostics.EventLogEntryType EntryType { get => throw null; set => throw null; } - public EventInstance(System.Int64 instanceId, int categoryId) => throw null; - public EventInstance(System.Int64 instanceId, int categoryId, System.Diagnostics.EventLogEntryType entryType) => throw null; - public System.Int64 InstanceId { get => throw null; set => throw null; } - } - - public class EventLog : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize - { - public void BeginInit() => throw null; - public void Clear() => throw null; - public void Close() => throw null; - public static void CreateEventSource(System.Diagnostics.EventSourceCreationData sourceData) => throw null; - public static void CreateEventSource(string source, string logName) => throw null; - public static void CreateEventSource(string source, string logName, string machineName) => throw null; - public static void Delete(string logName) => throw null; - public static void Delete(string logName, string machineName) => throw null; - public static void DeleteEventSource(string source) => throw null; - public static void DeleteEventSource(string source, string machineName) => throw null; - protected override void Dispose(bool disposing) => throw null; - public bool EnableRaisingEvents { get => throw null; set => throw null; } - public void EndInit() => throw null; - public System.Diagnostics.EventLogEntryCollection Entries { get => throw null; } - public event System.Diagnostics.EntryWrittenEventHandler EntryWritten; - public EventLog() => throw null; - public EventLog(string logName) => throw null; - public EventLog(string logName, string machineName) => throw null; - public EventLog(string logName, string machineName, string source) => throw null; - public static bool Exists(string logName) => throw null; - public static bool Exists(string logName, string machineName) => throw null; - public static System.Diagnostics.EventLog[] GetEventLogs() => throw null; - public static System.Diagnostics.EventLog[] GetEventLogs(string machineName) => throw null; - public string Log { get => throw null; set => throw null; } - public string LogDisplayName { get => throw null; } - public static string LogNameFromSourceName(string source, string machineName) => throw null; - public string MachineName { get => throw null; set => throw null; } - public System.Int64 MaximumKilobytes { get => throw null; set => throw null; } - public int MinimumRetentionDays { get => throw null; } - public void ModifyOverflowPolicy(System.Diagnostics.OverflowAction action, int retentionDays) => throw null; - public System.Diagnostics.OverflowAction OverflowAction { get => throw null; } - public void RegisterDisplayName(string resourceFile, System.Int64 resourceId) => throw null; - public string Source { get => throw null; set => throw null; } - public static bool SourceExists(string source) => throw null; - public static bool SourceExists(string source, string machineName) => throw null; - public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get => throw null; set => throw null; } - public void WriteEntry(string message) => throw null; - public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type) => throw null; - public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type, int eventID) => throw null; - public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type, int eventID, System.Int16 category) => throw null; - public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type, int eventID, System.Int16 category, System.Byte[] rawData) => throw null; - public static void WriteEntry(string source, string message) => throw null; - public static void WriteEntry(string source, string message, System.Diagnostics.EventLogEntryType type) => throw null; - public static void WriteEntry(string source, string message, System.Diagnostics.EventLogEntryType type, int eventID) => throw null; - public static void WriteEntry(string source, string message, System.Diagnostics.EventLogEntryType type, int eventID, System.Int16 category) => throw null; - public static void WriteEntry(string source, string message, System.Diagnostics.EventLogEntryType type, int eventID, System.Int16 category, System.Byte[] rawData) => throw null; - public void WriteEvent(System.Diagnostics.EventInstance instance, System.Byte[] data, params object[] values) => throw null; - public void WriteEvent(System.Diagnostics.EventInstance instance, params object[] values) => throw null; - public static void WriteEvent(string source, System.Diagnostics.EventInstance instance, System.Byte[] data, params object[] values) => throw null; - public static void WriteEvent(string source, System.Diagnostics.EventInstance instance, params object[] values) => throw null; - } - - public class EventLogEntry : System.ComponentModel.Component, System.Runtime.Serialization.ISerializable - { - public string Category { get => throw null; } - public System.Int16 CategoryNumber { get => throw null; } - public System.Byte[] Data { get => throw null; } - public System.Diagnostics.EventLogEntryType EntryType { get => throw null; } - public bool Equals(System.Diagnostics.EventLogEntry otherEntry) => throw null; - public int EventID { get => throw null; } - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public int Index { get => throw null; } - public System.Int64 InstanceId { get => throw null; } - public string MachineName { get => throw null; } - public string Message { get => throw null; } - public string[] ReplacementStrings { get => throw null; } - public string Source { get => throw null; } - public System.DateTime TimeGenerated { get => throw null; } - public System.DateTime TimeWritten { get => throw null; } - public string UserName { get => throw null; } - } - - public class EventLogEntryCollection : System.Collections.ICollection, System.Collections.IEnumerable - { - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(System.Diagnostics.EventLogEntry[] entries, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.IEnumerator GetEnumerator() => throw null; - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public virtual System.Diagnostics.EventLogEntry this[int index] { get => throw null; } - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - public enum EventLogEntryType : int - { - Error = 1, - FailureAudit = 16, - Information = 4, - SuccessAudit = 8, - Warning = 2, - } - - public class EventLogTraceListener : System.Diagnostics.TraceListener - { - public override void Close() => throw null; - protected override void Dispose(bool disposing) => throw null; - public System.Diagnostics.EventLog EventLog { get => throw null; set => throw null; } - public EventLogTraceListener() => throw null; - public EventLogTraceListener(System.Diagnostics.EventLog eventLog) => throw null; - public EventLogTraceListener(string source) => throw null; - public override string Name { get => throw null; set => throw null; } - public override void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType severity, int id, object data) => throw null; - public override void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType severity, int id, params object[] data) => throw null; - public override void TraceEvent(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType severity, int id, string message) => throw null; - public override void TraceEvent(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType severity, int id, string format, params object[] args) => throw null; - public override void Write(string message) => throw null; - public override void WriteLine(string message) => throw null; - } - - public class EventSourceCreationData - { - public int CategoryCount { get => throw null; set => throw null; } - public string CategoryResourceFile { get => throw null; set => throw null; } - public EventSourceCreationData(string source, string logName) => throw null; - public string LogName { get => throw null; set => throw null; } - public string MachineName { get => throw null; set => throw null; } - public string MessageResourceFile { get => throw null; set => throw null; } - public string ParameterResourceFile { get => throw null; set => throw null; } - public string Source { get => throw null; set => throw null; } - } - - public enum OverflowAction : int - { - DoNotOverwrite = -1, - OverwriteAsNeeded = 0, - OverwriteOlder = 1, - } - namespace Eventing { namespace Reader { - public class EventBookmark + public sealed class EventBookmark { public string BookmarkXml { get => throw null; } public EventBookmark(string bookmarkXml) => throw null; } - - public class EventKeyword + public sealed class EventKeyword { public string DisplayName { get => throw null; } public string Name { get => throw null; } - public System.Int64 Value { get => throw null; } + public long Value { get => throw null; } } - - public class EventLevel + public sealed class EventLevel { public string DisplayName { get => throw null; } public string Name { get => throw null; } public int Value { get => throw null; } } - public class EventLogConfiguration : System.IDisposable { - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; public EventLogConfiguration(string logName) => throw null; public EventLogConfiguration(string logName, System.Diagnostics.Eventing.Reader.EventLogSession session) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; public bool IsClassicLog { get => throw null; } - public bool IsEnabled { get => throw null; set => throw null; } - public string LogFilePath { get => throw null; set => throw null; } + public bool IsEnabled { get => throw null; set { } } + public string LogFilePath { get => throw null; set { } } public System.Diagnostics.Eventing.Reader.EventLogIsolation LogIsolation { get => throw null; } - public System.Diagnostics.Eventing.Reader.EventLogMode LogMode { get => throw null; set => throw null; } + public System.Diagnostics.Eventing.Reader.EventLogMode LogMode { get => throw null; set { } } public string LogName { get => throw null; } public System.Diagnostics.Eventing.Reader.EventLogType LogType { get => throw null; } - public System.Int64 MaximumSizeInBytes { get => throw null; set => throw null; } + public long MaximumSizeInBytes { get => throw null; set { } } public string OwningProviderName { get => throw null; } public int? ProviderBufferSize { get => throw null; } public System.Guid? ProviderControlGuid { get => throw null; } - public System.Int64? ProviderKeywords { get => throw null; set => throw null; } + public long? ProviderKeywords { get => throw null; set { } } public int? ProviderLatency { get => throw null; } - public int? ProviderLevel { get => throw null; set => throw null; } + public int? ProviderLevel { get => throw null; set { } } public int? ProviderMaximumNumberOfBuffers { get => throw null; } public int? ProviderMinimumNumberOfBuffers { get => throw null; } public System.Collections.Generic.IEnumerable ProviderNames { get => throw null; } public void SaveChanges() => throw null; - public string SecurityDescriptor { get => throw null; set => throw null; } + public string SecurityDescriptor { get => throw null; set { } } } - public class EventLogException : System.Exception { public EventLogException() => throw null; - protected EventLogException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; protected EventLogException(int errorCode) => throw null; + protected EventLogException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; public EventLogException(string message) => throw null; public EventLogException(string message, System.Exception innerException) => throw null; public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public override string Message { get => throw null; } } - - public class EventLogInformation + public sealed class EventLogInformation { public int? Attributes { get => throw null; } public System.DateTime? CreationTime { get => throw null; } - public System.Int64? FileSize { get => throw null; } + public long? FileSize { get => throw null; } public bool? IsLogFull { get => throw null; } public System.DateTime? LastAccessTime { get => throw null; } public System.DateTime? LastWriteTime { get => throw null; } - public System.Int64? OldestRecordNumber { get => throw null; } - public System.Int64? RecordCount { get => throw null; } + public long? OldestRecordNumber { get => throw null; } + public long? RecordCount { get => throw null; } } - public class EventLogInvalidDataException : System.Diagnostics.Eventing.Reader.EventLogException { public EventLogInvalidDataException() => throw null; @@ -234,28 +86,24 @@ namespace System public EventLogInvalidDataException(string message) => throw null; public EventLogInvalidDataException(string message, System.Exception innerException) => throw null; } - - public enum EventLogIsolation : int + public enum EventLogIsolation { Application = 0, - Custom = 2, System = 1, + Custom = 2, } - - public class EventLogLink + public sealed class EventLogLink { public string DisplayName { get => throw null; } public bool IsImported { get => throw null; } public string LogName { get => throw null; } } - - public enum EventLogMode : int + public enum EventLogMode { - AutoBackup = 1, Circular = 0, + AutoBackup = 1, Retain = 2, } - public class EventLogNotFoundException : System.Diagnostics.Eventing.Reader.EventLogException { public EventLogNotFoundException() => throw null; @@ -263,14 +111,12 @@ namespace System public EventLogNotFoundException(string message) => throw null; public EventLogNotFoundException(string message, System.Exception innerException) => throw null; } - public class EventLogPropertySelector : System.IDisposable { + public EventLogPropertySelector(System.Collections.Generic.IEnumerable propertyQueries) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public EventLogPropertySelector(System.Collections.Generic.IEnumerable propertyQueries) => throw null; } - public class EventLogProviderDisabledException : System.Diagnostics.Eventing.Reader.EventLogException { public EventLogProviderDisabledException() => throw null; @@ -278,34 +124,31 @@ namespace System public EventLogProviderDisabledException(string message) => throw null; public EventLogProviderDisabledException(string message, System.Exception innerException) => throw null; } - public class EventLogQuery { public EventLogQuery(string path, System.Diagnostics.Eventing.Reader.PathType pathType) => throw null; public EventLogQuery(string path, System.Diagnostics.Eventing.Reader.PathType pathType, string query) => throw null; - public bool ReverseDirection { get => throw null; set => throw null; } - public System.Diagnostics.Eventing.Reader.EventLogSession Session { get => throw null; set => throw null; } - public bool TolerateQueryErrors { get => throw null; set => throw null; } + public bool ReverseDirection { get => throw null; set { } } + public System.Diagnostics.Eventing.Reader.EventLogSession Session { get => throw null; set { } } + public bool TolerateQueryErrors { get => throw null; set { } } } - public class EventLogReader : System.IDisposable { - public int BatchSize { get => throw null; set => throw null; } + public int BatchSize { get => throw null; set { } } public void CancelReading() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; public EventLogReader(System.Diagnostics.Eventing.Reader.EventLogQuery eventQuery) => throw null; public EventLogReader(System.Diagnostics.Eventing.Reader.EventLogQuery eventQuery, System.Diagnostics.Eventing.Reader.EventBookmark bookmark) => throw null; public EventLogReader(string path) => throw null; public EventLogReader(string path, System.Diagnostics.Eventing.Reader.PathType pathType) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; public System.Collections.Generic.IList LogStatus { get => throw null; } public System.Diagnostics.Eventing.Reader.EventRecord ReadEvent() => throw null; public System.Diagnostics.Eventing.Reader.EventRecord ReadEvent(System.TimeSpan timeout) => throw null; public void Seek(System.Diagnostics.Eventing.Reader.EventBookmark bookmark) => throw null; - public void Seek(System.Diagnostics.Eventing.Reader.EventBookmark bookmark, System.Int64 offset) => throw null; - public void Seek(System.IO.SeekOrigin origin, System.Int64 offset) => throw null; + public void Seek(System.Diagnostics.Eventing.Reader.EventBookmark bookmark, long offset) => throw null; + public void Seek(System.IO.SeekOrigin origin, long offset) => throw null; } - public class EventLogReadingException : System.Diagnostics.Eventing.Reader.EventLogException { public EventLogReadingException() => throw null; @@ -313,7 +156,6 @@ namespace System public EventLogReadingException(string message) => throw null; public EventLogReadingException(string message, System.Exception innerException) => throw null; } - public class EventLogRecord : System.Diagnostics.Eventing.Reader.EventRecord { public override System.Guid? ActivityId { get => throw null; } @@ -324,21 +166,21 @@ namespace System public override string FormatDescription(System.Collections.Generic.IEnumerable values) => throw null; public System.Collections.Generic.IList GetPropertyValues(System.Diagnostics.Eventing.Reader.EventLogPropertySelector propertySelector) => throw null; public override int Id { get => throw null; } - public override System.Int64? Keywords { get => throw null; } + public override long? Keywords { get => throw null; } public override System.Collections.Generic.IEnumerable KeywordsDisplayNames { get => throw null; } - public override System.Byte? Level { get => throw null; } + public override byte? Level { get => throw null; } public override string LevelDisplayName { get => throw null; } public override string LogName { get => throw null; } public override string MachineName { get => throw null; } public System.Collections.Generic.IEnumerable MatchedQueryIds { get => throw null; } - public override System.Int16? Opcode { get => throw null; } + public override short? Opcode { get => throw null; } public override string OpcodeDisplayName { get => throw null; } public override int? ProcessId { get => throw null; } public override System.Collections.Generic.IList Properties { get => throw null; } public override System.Guid? ProviderId { get => throw null; } public override string ProviderName { get => throw null; } public override int? Qualifiers { get => throw null; } - public override System.Int64? RecordId { get => throw null; } + public override long? RecordId { get => throw null; } public override System.Guid? RelatedActivityId { get => throw null; } public override int? Task { get => throw null; } public override string TaskDisplayName { get => throw null; } @@ -346,19 +188,18 @@ namespace System public override System.DateTime? TimeCreated { get => throw null; } public override string ToXml() => throw null; public override System.Security.Principal.SecurityIdentifier UserId { get => throw null; } - public override System.Byte? Version { get => throw null; } + public override byte? Version { get => throw null; } } - public class EventLogSession : System.IDisposable { public void CancelCurrentOperations() => throw null; public void ClearLog(string logName) => throw null; public void ClearLog(string logName, string backupPath) => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; public EventLogSession() => throw null; public EventLogSession(string server) => throw null; public EventLogSession(string server, string domain, string user, System.Security.SecureString password, System.Diagnostics.Eventing.Reader.SessionAuthentication logOnType) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; public void ExportLog(string path, System.Diagnostics.Eventing.Reader.PathType pathType, string query, string targetFilePath) => throw null; public void ExportLog(string path, System.Diagnostics.Eventing.Reader.PathType pathType, string query, string targetFilePath, bool tolerateQueryErrors) => throw null; public void ExportLogAndMessages(string path, System.Diagnostics.Eventing.Reader.PathType pathType, string query, string targetFilePath) => throw null; @@ -368,82 +209,75 @@ namespace System public System.Collections.Generic.IEnumerable GetProviderNames() => throw null; public static System.Diagnostics.Eventing.Reader.EventLogSession GlobalSession { get => throw null; } } - - public class EventLogStatus + public sealed class EventLogStatus { public string LogName { get => throw null; } public int StatusCode { get => throw null; } } - - public enum EventLogType : int + public enum EventLogType { Administrative = 0, + Operational = 1, Analytical = 2, Debug = 3, - Operational = 1, } - public class EventLogWatcher : System.IDisposable { - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public bool Enabled { get => throw null; set => throw null; } public EventLogWatcher(System.Diagnostics.Eventing.Reader.EventLogQuery eventQuery) => throw null; public EventLogWatcher(System.Diagnostics.Eventing.Reader.EventLogQuery eventQuery, System.Diagnostics.Eventing.Reader.EventBookmark bookmark) => throw null; public EventLogWatcher(System.Diagnostics.Eventing.Reader.EventLogQuery eventQuery, System.Diagnostics.Eventing.Reader.EventBookmark bookmark, bool readExistingEvents) => throw null; public EventLogWatcher(string path) => throw null; - public event System.EventHandler EventRecordWritten; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public bool Enabled { get => throw null; set { } } + public event System.EventHandler EventRecordWritten { add { } remove { } } } - - public class EventMetadata + public sealed class EventMetadata { public string Description { get => throw null; } - public System.Int64 Id { get => throw null; } + public long Id { get => throw null; } public System.Collections.Generic.IEnumerable Keywords { get => throw null; } public System.Diagnostics.Eventing.Reader.EventLevel Level { get => throw null; } public System.Diagnostics.Eventing.Reader.EventLogLink LogLink { get => throw null; } public System.Diagnostics.Eventing.Reader.EventOpcode Opcode { get => throw null; } public System.Diagnostics.Eventing.Reader.EventTask Task { get => throw null; } public string Template { get => throw null; } - public System.Byte Version { get => throw null; } + public byte Version { get => throw null; } } - - public class EventOpcode + public sealed class EventOpcode { public string DisplayName { get => throw null; } public string Name { get => throw null; } public int Value { get => throw null; } } - - public class EventProperty + public sealed class EventProperty { public object Value { get => throw null; } } - public abstract class EventRecord : System.IDisposable { public abstract System.Guid? ActivityId { get; } public abstract System.Diagnostics.Eventing.Reader.EventBookmark Bookmark { get; } + protected EventRecord() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - protected EventRecord() => throw null; public abstract string FormatDescription(); public abstract string FormatDescription(System.Collections.Generic.IEnumerable values); public abstract int Id { get; } - public abstract System.Int64? Keywords { get; } + public abstract long? Keywords { get; } public abstract System.Collections.Generic.IEnumerable KeywordsDisplayNames { get; } - public abstract System.Byte? Level { get; } + public abstract byte? Level { get; } public abstract string LevelDisplayName { get; } public abstract string LogName { get; } public abstract string MachineName { get; } - public abstract System.Int16? Opcode { get; } + public abstract short? Opcode { get; } public abstract string OpcodeDisplayName { get; } public abstract int? ProcessId { get; } public abstract System.Collections.Generic.IList Properties { get; } public abstract System.Guid? ProviderId { get; } public abstract string ProviderName { get; } public abstract int? Qualifiers { get; } - public abstract System.Int64? RecordId { get; } + public abstract long? RecordId { get; } public abstract System.Guid? RelatedActivityId { get; } public abstract int? Task { get; } public abstract string TaskDisplayName { get; } @@ -451,31 +285,29 @@ namespace System public abstract System.DateTime? TimeCreated { get; } public abstract string ToXml(); public abstract System.Security.Principal.SecurityIdentifier UserId { get; } - public abstract System.Byte? Version { get; } + public abstract byte? Version { get; } } - - public class EventRecordWrittenEventArgs : System.EventArgs + public sealed class EventRecordWrittenEventArgs : System.EventArgs { public System.Exception EventException { get => throw null; } public System.Diagnostics.Eventing.Reader.EventRecord EventRecord { get => throw null; } } - - public class EventTask + public sealed class EventTask { public string DisplayName { get => throw null; } public System.Guid EventGuid { get => throw null; } public string Name { get => throw null; } public int Value { get => throw null; } } - - public enum PathType : int + public enum PathType { - FilePath = 2, LogName = 1, + FilePath = 2, } - public class ProviderMetadata : System.IDisposable { + public ProviderMetadata(string providerName) => throw null; + public ProviderMetadata(string providerName, System.Diagnostics.Eventing.Reader.EventLogSession session, System.Globalization.CultureInfo targetCultureInfo) => throw null; public string DisplayName { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; @@ -489,66 +321,189 @@ namespace System public string Name { get => throw null; } public System.Collections.Generic.IList Opcodes { get => throw null; } public string ParameterFilePath { get => throw null; } - public ProviderMetadata(string providerName) => throw null; - public ProviderMetadata(string providerName, System.Diagnostics.Eventing.Reader.EventLogSession session, System.Globalization.CultureInfo targetCultureInfo) => throw null; public string ResourceFilePath { get => throw null; } public System.Collections.Generic.IList Tasks { get => throw null; } } - - public enum SessionAuthentication : int + public enum SessionAuthentication { Default = 0, - Kerberos = 2, Negotiate = 1, + Kerberos = 2, Ntlm = 3, } - [System.Flags] public enum StandardEventKeywords : long { - AuditFailure = 4503599627370496, - AuditSuccess = 9007199254740992, - CorrelationHint = 4503599627370496, - CorrelationHint2 = 18014398509481984, - EventLogClassic = 36028797018963968, None = 0, ResponseTime = 281474976710656, - Sqm = 2251799813685248, WdiContext = 562949953421312, WdiDiagnostic = 1125899906842624, + Sqm = 2251799813685248, + AuditFailure = 4503599627370496, + CorrelationHint = 4503599627370496, + AuditSuccess = 9007199254740992, + CorrelationHint2 = 18014398509481984, + EventLogClassic = 36028797018963968, } - - public enum StandardEventLevel : int + public enum StandardEventLevel { + LogAlways = 0, Critical = 1, Error = 2, - Informational = 4, - LogAlways = 0, - Verbose = 5, Warning = 3, + Informational = 4, + Verbose = 5, } - - public enum StandardEventOpcode : int + public enum StandardEventOpcode { + Info = 0, + Start = 1, + Stop = 2, DataCollectionStart = 3, DataCollectionStop = 4, Extension = 5, - Info = 0, - Receive = 240, Reply = 6, Resume = 7, - Send = 9, - Start = 1, - Stop = 2, Suspend = 8, + Send = 9, + Receive = 240, } - - public enum StandardEventTask : int + public enum StandardEventTask { None = 0, } - } } + public class EventInstance + { + public int CategoryId { get => throw null; set { } } + public EventInstance(long instanceId, int categoryId) => throw null; + public EventInstance(long instanceId, int categoryId, System.Diagnostics.EventLogEntryType entryType) => throw null; + public System.Diagnostics.EventLogEntryType EntryType { get => throw null; set { } } + public long InstanceId { get => throw null; set { } } + } + public class EventLog : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize + { + public void BeginInit() => throw null; + public void Clear() => throw null; + public void Close() => throw null; + public static void CreateEventSource(System.Diagnostics.EventSourceCreationData sourceData) => throw null; + public static void CreateEventSource(string source, string logName) => throw null; + public static void CreateEventSource(string source, string logName, string machineName) => throw null; + public EventLog() => throw null; + public EventLog(string logName) => throw null; + public EventLog(string logName, string machineName) => throw null; + public EventLog(string logName, string machineName, string source) => throw null; + public static void Delete(string logName) => throw null; + public static void Delete(string logName, string machineName) => throw null; + public static void DeleteEventSource(string source) => throw null; + public static void DeleteEventSource(string source, string machineName) => throw null; + protected override void Dispose(bool disposing) => throw null; + public bool EnableRaisingEvents { get => throw null; set { } } + public void EndInit() => throw null; + public System.Diagnostics.EventLogEntryCollection Entries { get => throw null; } + public event System.Diagnostics.EntryWrittenEventHandler EntryWritten { add { } remove { } } + public static bool Exists(string logName) => throw null; + public static bool Exists(string logName, string machineName) => throw null; + public static System.Diagnostics.EventLog[] GetEventLogs() => throw null; + public static System.Diagnostics.EventLog[] GetEventLogs(string machineName) => throw null; + public string Log { get => throw null; set { } } + public string LogDisplayName { get => throw null; } + public static string LogNameFromSourceName(string source, string machineName) => throw null; + public string MachineName { get => throw null; set { } } + public long MaximumKilobytes { get => throw null; set { } } + public int MinimumRetentionDays { get => throw null; } + public void ModifyOverflowPolicy(System.Diagnostics.OverflowAction action, int retentionDays) => throw null; + public System.Diagnostics.OverflowAction OverflowAction { get => throw null; } + public void RegisterDisplayName(string resourceFile, long resourceId) => throw null; + public string Source { get => throw null; set { } } + public static bool SourceExists(string source) => throw null; + public static bool SourceExists(string source, string machineName) => throw null; + public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get => throw null; set { } } + public void WriteEntry(string message) => throw null; + public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type) => throw null; + public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type, int eventID) => throw null; + public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type, int eventID, short category) => throw null; + public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type, int eventID, short category, byte[] rawData) => throw null; + public static void WriteEntry(string source, string message) => throw null; + public static void WriteEntry(string source, string message, System.Diagnostics.EventLogEntryType type) => throw null; + public static void WriteEntry(string source, string message, System.Diagnostics.EventLogEntryType type, int eventID) => throw null; + public static void WriteEntry(string source, string message, System.Diagnostics.EventLogEntryType type, int eventID, short category) => throw null; + public static void WriteEntry(string source, string message, System.Diagnostics.EventLogEntryType type, int eventID, short category, byte[] rawData) => throw null; + public void WriteEvent(System.Diagnostics.EventInstance instance, byte[] data, params object[] values) => throw null; + public void WriteEvent(System.Diagnostics.EventInstance instance, params object[] values) => throw null; + public static void WriteEvent(string source, System.Diagnostics.EventInstance instance, byte[] data, params object[] values) => throw null; + public static void WriteEvent(string source, System.Diagnostics.EventInstance instance, params object[] values) => throw null; + } + public sealed class EventLogEntry : System.ComponentModel.Component, System.Runtime.Serialization.ISerializable + { + public string Category { get => throw null; } + public short CategoryNumber { get => throw null; } + public byte[] Data { get => throw null; } + public System.Diagnostics.EventLogEntryType EntryType { get => throw null; } + public bool Equals(System.Diagnostics.EventLogEntry otherEntry) => throw null; + public int EventID { get => throw null; } + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public int Index { get => throw null; } + public long InstanceId { get => throw null; } + public string MachineName { get => throw null; } + public string Message { get => throw null; } + public string[] ReplacementStrings { get => throw null; } + public string Source { get => throw null; } + public System.DateTime TimeGenerated { get => throw null; } + public System.DateTime TimeWritten { get => throw null; } + public string UserName { get => throw null; } + } + public class EventLogEntryCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public void CopyTo(System.Diagnostics.EventLogEntry[] entries, int index) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public System.Collections.IEnumerator GetEnumerator() => throw null; + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.ICollection.SyncRoot { get => throw null; } + public virtual System.Diagnostics.EventLogEntry this[int index] { get => throw null; } + } + public enum EventLogEntryType + { + Error = 1, + Warning = 2, + Information = 4, + SuccessAudit = 8, + FailureAudit = 16, + } + public sealed class EventLogTraceListener : System.Diagnostics.TraceListener + { + public override void Close() => throw null; + public EventLogTraceListener() => throw null; + public EventLogTraceListener(System.Diagnostics.EventLog eventLog) => throw null; + public EventLogTraceListener(string source) => throw null; + protected override void Dispose(bool disposing) => throw null; + public System.Diagnostics.EventLog EventLog { get => throw null; set { } } + public override string Name { get => throw null; set { } } + public override void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType severity, int id, object data) => throw null; + public override void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType severity, int id, params object[] data) => throw null; + public override void TraceEvent(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType severity, int id, string message) => throw null; + public override void TraceEvent(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType severity, int id, string format, params object[] args) => throw null; + public override void Write(string message) => throw null; + public override void WriteLine(string message) => throw null; + } + public class EventSourceCreationData + { + public int CategoryCount { get => throw null; set { } } + public string CategoryResourceFile { get => throw null; set { } } + public EventSourceCreationData(string source, string logName) => throw null; + public string LogName { get => throw null; set { } } + public string MachineName { get => throw null; set { } } + public string MessageResourceFile { get => throw null; set { } } + public string ParameterResourceFile { get => throw null; set { } } + public string Source { get => throw null; set { } } + } + public enum OverflowAction + { + DoNotOverwrite = -1, + OverwriteAsNeeded = 0, + OverwriteOlder = 1, + } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.IO.Pipelines.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.IO.Pipelines.cs index 9bba4b098f2..41b13ee951a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.IO.Pipelines.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.IO.Pipelines.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.IO.Pipelines, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace IO @@ -9,19 +8,16 @@ namespace System { public struct FlushResult { - // Stub generator skipped constructor public FlushResult(bool isCanceled, bool isCompleted) => throw null; public bool IsCanceled { get => throw null; } public bool IsCompleted { get => throw null; } } - public interface IDuplexPipe { System.IO.Pipelines.PipeReader Input { get; } System.IO.Pipelines.PipeWriter Output { get; } } - - public class Pipe + public sealed class Pipe { public Pipe() => throw null; public Pipe(System.IO.Pipelines.PipeOptions options) => throw null; @@ -29,20 +25,18 @@ namespace System public void Reset() => throw null; public System.IO.Pipelines.PipeWriter Writer { get => throw null; } } - public class PipeOptions { + public PipeOptions(System.Buffers.MemoryPool pool = default(System.Buffers.MemoryPool), System.IO.Pipelines.PipeScheduler readerScheduler = default(System.IO.Pipelines.PipeScheduler), System.IO.Pipelines.PipeScheduler writerScheduler = default(System.IO.Pipelines.PipeScheduler), long pauseWriterThreshold = default(long), long resumeWriterThreshold = default(long), int minimumSegmentSize = default(int), bool useSynchronizationContext = default(bool)) => throw null; public static System.IO.Pipelines.PipeOptions Default { get => throw null; } public int MinimumSegmentSize { get => throw null; } - public System.Int64 PauseWriterThreshold { get => throw null; } - public PipeOptions(System.Buffers.MemoryPool pool = default(System.Buffers.MemoryPool), System.IO.Pipelines.PipeScheduler readerScheduler = default(System.IO.Pipelines.PipeScheduler), System.IO.Pipelines.PipeScheduler writerScheduler = default(System.IO.Pipelines.PipeScheduler), System.Int64 pauseWriterThreshold = default(System.Int64), System.Int64 resumeWriterThreshold = default(System.Int64), int minimumSegmentSize = default(int), bool useSynchronizationContext = default(bool)) => throw null; - public System.Buffers.MemoryPool Pool { get => throw null; } + public long PauseWriterThreshold { get => throw null; } + public System.Buffers.MemoryPool Pool { get => throw null; } public System.IO.Pipelines.PipeScheduler ReaderScheduler { get => throw null; } - public System.Int64 ResumeWriterThreshold { get => throw null; } + public long ResumeWriterThreshold { get => throw null; } public bool UseSynchronizationContext { get => throw null; } public System.IO.Pipelines.PipeScheduler WriterScheduler { get => throw null; } } - public abstract class PipeReader { public abstract void AdvanceTo(System.SequencePosition consumed); @@ -53,76 +47,68 @@ namespace System public virtual System.Threading.Tasks.ValueTask CompleteAsync(System.Exception exception = default(System.Exception)) => throw null; public virtual System.Threading.Tasks.Task CopyToAsync(System.IO.Pipelines.PipeWriter destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.IO.Pipelines.PipeReader Create(System.Buffers.ReadOnlySequence sequence) => throw null; + public static System.IO.Pipelines.PipeReader Create(System.Buffers.ReadOnlySequence sequence) => throw null; public static System.IO.Pipelines.PipeReader Create(System.IO.Stream stream, System.IO.Pipelines.StreamPipeReaderOptions readerOptions = default(System.IO.Pipelines.StreamPipeReaderOptions)) => throw null; - public virtual void OnWriterCompleted(System.Action callback, object state) => throw null; protected PipeReader() => throw null; + public virtual void OnWriterCompleted(System.Action callback, object state) => throw null; public abstract System.Threading.Tasks.ValueTask ReadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public System.Threading.Tasks.ValueTask ReadAtLeastAsync(int minimumSize, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected virtual System.Threading.Tasks.ValueTask ReadAtLeastAsyncCore(int minimumSize, System.Threading.CancellationToken cancellationToken) => throw null; public abstract bool TryRead(out System.IO.Pipelines.ReadResult result); } - public abstract class PipeScheduler { - public static System.IO.Pipelines.PipeScheduler Inline { get => throw null; } protected PipeScheduler() => throw null; + public static System.IO.Pipelines.PipeScheduler Inline { get => throw null; } public abstract void Schedule(System.Action action, object state); public static System.IO.Pipelines.PipeScheduler ThreadPool { get => throw null; } } - - public abstract class PipeWriter : System.Buffers.IBufferWriter + public abstract class PipeWriter : System.Buffers.IBufferWriter { public abstract void Advance(int bytes); public virtual System.IO.Stream AsStream(bool leaveOpen = default(bool)) => throw null; - public virtual bool CanGetUnflushedBytes { get => throw null; } public abstract void CancelPendingFlush(); + public virtual bool CanGetUnflushedBytes { get => throw null; } public abstract void Complete(System.Exception exception = default(System.Exception)); public virtual System.Threading.Tasks.ValueTask CompleteAsync(System.Exception exception = default(System.Exception)) => throw null; - protected internal virtual System.Threading.Tasks.Task CopyFromAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected virtual System.Threading.Tasks.Task CopyFromAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.IO.Pipelines.PipeWriter Create(System.IO.Stream stream, System.IO.Pipelines.StreamPipeWriterOptions writerOptions = default(System.IO.Pipelines.StreamPipeWriterOptions)) => throw null; - public abstract System.Threading.Tasks.ValueTask FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - public abstract System.Memory GetMemory(int sizeHint = default(int)); - public abstract System.Span GetSpan(int sizeHint = default(int)); - public virtual void OnReaderCompleted(System.Action callback, object state) => throw null; protected PipeWriter() => throw null; - public virtual System.Int64 UnflushedBytes { get => throw null; } - public virtual System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public abstract System.Threading.Tasks.ValueTask FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public abstract System.Memory GetMemory(int sizeHint = default(int)); + public abstract System.Span GetSpan(int sizeHint = default(int)); + public virtual void OnReaderCompleted(System.Action callback, object state) => throw null; + public virtual long UnflushedBytes { get => throw null; } + public virtual System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - public struct ReadResult { - public System.Buffers.ReadOnlySequence Buffer { get => throw null; } + public System.Buffers.ReadOnlySequence Buffer { get => throw null; } + public ReadResult(System.Buffers.ReadOnlySequence buffer, bool isCanceled, bool isCompleted) => throw null; public bool IsCanceled { get => throw null; } public bool IsCompleted { get => throw null; } - // Stub generator skipped constructor - public ReadResult(System.Buffers.ReadOnlySequence buffer, bool isCanceled, bool isCompleted) => throw null; } - - public static class StreamPipeExtensions + public static partial class StreamPipeExtensions { public static System.Threading.Tasks.Task CopyToAsync(this System.IO.Stream source, System.IO.Pipelines.PipeWriter destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - public class StreamPipeReaderOptions { public int BufferSize { get => throw null; } + public StreamPipeReaderOptions(System.Buffers.MemoryPool pool, int bufferSize, int minimumReadSize, bool leaveOpen) => throw null; + public StreamPipeReaderOptions(System.Buffers.MemoryPool pool = default(System.Buffers.MemoryPool), int bufferSize = default(int), int minimumReadSize = default(int), bool leaveOpen = default(bool), bool useZeroByteReads = default(bool)) => throw null; public bool LeaveOpen { get => throw null; } public int MinimumReadSize { get => throw null; } - public System.Buffers.MemoryPool Pool { get => throw null; } - public StreamPipeReaderOptions(System.Buffers.MemoryPool pool, int bufferSize, int minimumReadSize, bool leaveOpen) => throw null; - public StreamPipeReaderOptions(System.Buffers.MemoryPool pool = default(System.Buffers.MemoryPool), int bufferSize = default(int), int minimumReadSize = default(int), bool leaveOpen = default(bool), bool useZeroByteReads = default(bool)) => throw null; + public System.Buffers.MemoryPool Pool { get => throw null; } public bool UseZeroByteReads { get => throw null; } } - public class StreamPipeWriterOptions { + public StreamPipeWriterOptions(System.Buffers.MemoryPool pool = default(System.Buffers.MemoryPool), int minimumBufferSize = default(int), bool leaveOpen = default(bool)) => throw null; public bool LeaveOpen { get => throw null; } public int MinimumBufferSize { get => throw null; } - public System.Buffers.MemoryPool Pool { get => throw null; } - public StreamPipeWriterOptions(System.Buffers.MemoryPool pool = default(System.Buffers.MemoryPool), int minimumBufferSize = default(int), bool leaveOpen = default(bool)) => throw null; + public System.Buffers.MemoryPool Pool { get => throw null; } } - } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Xml.cs index b47994b9b08..1b113c55b5e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Xml.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Xml.cs @@ -1,6 +1,5 @@ // This file contains auto-generated code. // Generated from `System.Security.Cryptography.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Security @@ -9,18 +8,17 @@ namespace System { namespace Xml { - public class CipherData + public sealed class CipherData { + public System.Security.Cryptography.Xml.CipherReference CipherReference { get => throw null; set { } } + public byte[] CipherValue { get => throw null; set { } } public CipherData() => throw null; - public CipherData(System.Byte[] cipherValue) => throw null; + public CipherData(byte[] cipherValue) => throw null; public CipherData(System.Security.Cryptography.Xml.CipherReference cipherReference) => throw null; - public System.Security.Cryptography.Xml.CipherReference CipherReference { get => throw null; set => throw null; } - public System.Byte[] CipherValue { get => throw null; set => throw null; } public System.Xml.XmlElement GetXml() => throw null; public void LoadXml(System.Xml.XmlElement value) => throw null; } - - public class CipherReference : System.Security.Cryptography.Xml.EncryptedReference + public sealed class CipherReference : System.Security.Cryptography.Xml.EncryptedReference { public CipherReference() => throw null; public CipherReference(string uri) => throw null; @@ -28,155 +26,144 @@ namespace System public override System.Xml.XmlElement GetXml() => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; } - - public class DSAKeyValue : System.Security.Cryptography.Xml.KeyInfoClause - { - public DSAKeyValue() => throw null; - public DSAKeyValue(System.Security.Cryptography.DSA key) => throw null; - public override System.Xml.XmlElement GetXml() => throw null; - public System.Security.Cryptography.DSA Key { get => throw null; set => throw null; } - public override void LoadXml(System.Xml.XmlElement value) => throw null; - } - public class DataObject { - public System.Xml.XmlNodeList Data { get => throw null; set => throw null; } public DataObject() => throw null; public DataObject(string id, string mimeType, string encoding, System.Xml.XmlElement data) => throw null; - public string Encoding { get => throw null; set => throw null; } + public System.Xml.XmlNodeList Data { get => throw null; set { } } + public string Encoding { get => throw null; set { } } public System.Xml.XmlElement GetXml() => throw null; - public string Id { get => throw null; set => throw null; } + public string Id { get => throw null; set { } } public void LoadXml(System.Xml.XmlElement value) => throw null; - public string MimeType { get => throw null; set => throw null; } + public string MimeType { get => throw null; set { } } } - - public class DataReference : System.Security.Cryptography.Xml.EncryptedReference + public sealed class DataReference : System.Security.Cryptography.Xml.EncryptedReference { public DataReference() => throw null; public DataReference(string uri) => throw null; public DataReference(string uri, System.Security.Cryptography.Xml.TransformChain transformChain) => throw null; } - - public class EncryptedData : System.Security.Cryptography.Xml.EncryptedType + public class DSAKeyValue : System.Security.Cryptography.Xml.KeyInfoClause + { + public DSAKeyValue() => throw null; + public DSAKeyValue(System.Security.Cryptography.DSA key) => throw null; + public override System.Xml.XmlElement GetXml() => throw null; + public System.Security.Cryptography.DSA Key { get => throw null; set { } } + public override void LoadXml(System.Xml.XmlElement value) => throw null; + } + public sealed class EncryptedData : System.Security.Cryptography.Xml.EncryptedType { public EncryptedData() => throw null; public override System.Xml.XmlElement GetXml() => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; } - - public class EncryptedKey : System.Security.Cryptography.Xml.EncryptedType + public sealed class EncryptedKey : System.Security.Cryptography.Xml.EncryptedType { public void AddReference(System.Security.Cryptography.Xml.DataReference dataReference) => throw null; public void AddReference(System.Security.Cryptography.Xml.KeyReference keyReference) => throw null; - public string CarriedKeyName { get => throw null; set => throw null; } + public string CarriedKeyName { get => throw null; set { } } public EncryptedKey() => throw null; public override System.Xml.XmlElement GetXml() => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; - public string Recipient { get => throw null; set => throw null; } + public string Recipient { get => throw null; set { } } public System.Security.Cryptography.Xml.ReferenceList ReferenceList { get => throw null; } } - public abstract class EncryptedReference { public void AddTransform(System.Security.Cryptography.Xml.Transform transform) => throw null; - protected internal bool CacheValid { get => throw null; } + protected bool CacheValid { get => throw null; } protected EncryptedReference() => throw null; protected EncryptedReference(string uri) => throw null; protected EncryptedReference(string uri, System.Security.Cryptography.Xml.TransformChain transformChain) => throw null; public virtual System.Xml.XmlElement GetXml() => throw null; public virtual void LoadXml(System.Xml.XmlElement value) => throw null; - protected string ReferenceType { get => throw null; set => throw null; } - public System.Security.Cryptography.Xml.TransformChain TransformChain { get => throw null; set => throw null; } - public string Uri { get => throw null; set => throw null; } + protected string ReferenceType { get => throw null; set { } } + public System.Security.Cryptography.Xml.TransformChain TransformChain { get => throw null; set { } } + public string Uri { get => throw null; set { } } } - public abstract class EncryptedType { public void AddProperty(System.Security.Cryptography.Xml.EncryptionProperty ep) => throw null; - public virtual System.Security.Cryptography.Xml.CipherData CipherData { get => throw null; set => throw null; } - public virtual string Encoding { get => throw null; set => throw null; } + public virtual System.Security.Cryptography.Xml.CipherData CipherData { get => throw null; set { } } protected EncryptedType() => throw null; - public virtual System.Security.Cryptography.Xml.EncryptionMethod EncryptionMethod { get => throw null; set => throw null; } + public virtual string Encoding { get => throw null; set { } } + public virtual System.Security.Cryptography.Xml.EncryptionMethod EncryptionMethod { get => throw null; set { } } public virtual System.Security.Cryptography.Xml.EncryptionPropertyCollection EncryptionProperties { get => throw null; } public abstract System.Xml.XmlElement GetXml(); - public virtual string Id { get => throw null; set => throw null; } - public System.Security.Cryptography.Xml.KeyInfo KeyInfo { get => throw null; set => throw null; } + public virtual string Id { get => throw null; set { } } + public System.Security.Cryptography.Xml.KeyInfo KeyInfo { get => throw null; set { } } public abstract void LoadXml(System.Xml.XmlElement value); - public virtual string MimeType { get => throw null; set => throw null; } - public virtual string Type { get => throw null; set => throw null; } + public virtual string MimeType { get => throw null; set { } } + public virtual string Type { get => throw null; set { } } } - public class EncryptedXml { public void AddKeyNameMapping(string keyName, object keyObject) => throw null; public void ClearKeyNameMappings() => throw null; - public System.Byte[] DecryptData(System.Security.Cryptography.Xml.EncryptedData encryptedData, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm) => throw null; - public void DecryptDocument() => throw null; - public virtual System.Byte[] DecryptEncryptedKey(System.Security.Cryptography.Xml.EncryptedKey encryptedKey) => throw null; - public static System.Byte[] DecryptKey(System.Byte[] keyData, System.Security.Cryptography.RSA rsa, bool useOAEP) => throw null; - public static System.Byte[] DecryptKey(System.Byte[] keyData, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm) => throw null; - public System.Security.Policy.Evidence DocumentEvidence { get => throw null; set => throw null; } - public System.Text.Encoding Encoding { get => throw null; set => throw null; } - public System.Security.Cryptography.Xml.EncryptedData Encrypt(System.Xml.XmlElement inputElement, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public System.Security.Cryptography.Xml.EncryptedData Encrypt(System.Xml.XmlElement inputElement, string keyName) => throw null; - public System.Byte[] EncryptData(System.Byte[] plaintext, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm) => throw null; - public System.Byte[] EncryptData(System.Xml.XmlElement inputElement, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm, bool content) => throw null; - public static System.Byte[] EncryptKey(System.Byte[] keyData, System.Security.Cryptography.RSA rsa, bool useOAEP) => throw null; - public static System.Byte[] EncryptKey(System.Byte[] keyData, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm) => throw null; public EncryptedXml() => throw null; public EncryptedXml(System.Xml.XmlDocument document) => throw null; public EncryptedXml(System.Xml.XmlDocument document, System.Security.Policy.Evidence evidence) => throw null; - public virtual System.Byte[] GetDecryptionIV(System.Security.Cryptography.Xml.EncryptedData encryptedData, string symmetricAlgorithmUri) => throw null; + public byte[] DecryptData(System.Security.Cryptography.Xml.EncryptedData encryptedData, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm) => throw null; + public void DecryptDocument() => throw null; + public virtual byte[] DecryptEncryptedKey(System.Security.Cryptography.Xml.EncryptedKey encryptedKey) => throw null; + public static byte[] DecryptKey(byte[] keyData, System.Security.Cryptography.RSA rsa, bool useOAEP) => throw null; + public static byte[] DecryptKey(byte[] keyData, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm) => throw null; + public System.Security.Policy.Evidence DocumentEvidence { get => throw null; set { } } + public System.Text.Encoding Encoding { get => throw null; set { } } + public System.Security.Cryptography.Xml.EncryptedData Encrypt(System.Xml.XmlElement inputElement, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public System.Security.Cryptography.Xml.EncryptedData Encrypt(System.Xml.XmlElement inputElement, string keyName) => throw null; + public byte[] EncryptData(byte[] plaintext, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm) => throw null; + public byte[] EncryptData(System.Xml.XmlElement inputElement, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm, bool content) => throw null; + public static byte[] EncryptKey(byte[] keyData, System.Security.Cryptography.RSA rsa, bool useOAEP) => throw null; + public static byte[] EncryptKey(byte[] keyData, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm) => throw null; + public virtual byte[] GetDecryptionIV(System.Security.Cryptography.Xml.EncryptedData encryptedData, string symmetricAlgorithmUri) => throw null; public virtual System.Security.Cryptography.SymmetricAlgorithm GetDecryptionKey(System.Security.Cryptography.Xml.EncryptedData encryptedData, string symmetricAlgorithmUri) => throw null; public virtual System.Xml.XmlElement GetIdElement(System.Xml.XmlDocument document, string idValue) => throw null; - public System.Security.Cryptography.CipherMode Mode { get => throw null; set => throw null; } - public System.Security.Cryptography.PaddingMode Padding { get => throw null; set => throw null; } - public string Recipient { get => throw null; set => throw null; } - public void ReplaceData(System.Xml.XmlElement inputElement, System.Byte[] decryptedData) => throw null; + public System.Security.Cryptography.CipherMode Mode { get => throw null; set { } } + public System.Security.Cryptography.PaddingMode Padding { get => throw null; set { } } + public string Recipient { get => throw null; set { } } + public void ReplaceData(System.Xml.XmlElement inputElement, byte[] decryptedData) => throw null; public static void ReplaceElement(System.Xml.XmlElement inputElement, System.Security.Cryptography.Xml.EncryptedData encryptedData, bool content) => throw null; - public System.Xml.XmlResolver Resolver { get => throw null; set => throw null; } - public int XmlDSigSearchDepth { get => throw null; set => throw null; } - public const string XmlEncAES128KeyWrapUrl = default; - public const string XmlEncAES128Url = default; - public const string XmlEncAES192KeyWrapUrl = default; - public const string XmlEncAES192Url = default; - public const string XmlEncAES256KeyWrapUrl = default; - public const string XmlEncAES256Url = default; - public const string XmlEncDESUrl = default; - public const string XmlEncElementContentUrl = default; - public const string XmlEncElementUrl = default; - public const string XmlEncEncryptedKeyUrl = default; - public const string XmlEncNamespaceUrl = default; - public const string XmlEncRSA15Url = default; - public const string XmlEncRSAOAEPUrl = default; - public const string XmlEncSHA256Url = default; - public const string XmlEncSHA512Url = default; - public const string XmlEncTripleDESKeyWrapUrl = default; - public const string XmlEncTripleDESUrl = default; + public System.Xml.XmlResolver Resolver { get => throw null; set { } } + public int XmlDSigSearchDepth { get => throw null; set { } } + public static string XmlEncAES128KeyWrapUrl; + public static string XmlEncAES128Url; + public static string XmlEncAES192KeyWrapUrl; + public static string XmlEncAES192Url; + public static string XmlEncAES256KeyWrapUrl; + public static string XmlEncAES256Url; + public static string XmlEncDESUrl; + public static string XmlEncElementContentUrl; + public static string XmlEncElementUrl; + public static string XmlEncEncryptedKeyUrl; + public static string XmlEncNamespaceUrl; + public static string XmlEncRSA15Url; + public static string XmlEncRSAOAEPUrl; + public static string XmlEncSHA256Url; + public static string XmlEncSHA512Url; + public static string XmlEncTripleDESKeyWrapUrl; + public static string XmlEncTripleDESUrl; } - public class EncryptionMethod { public EncryptionMethod() => throw null; public EncryptionMethod(string algorithm) => throw null; public System.Xml.XmlElement GetXml() => throw null; - public string KeyAlgorithm { get => throw null; set => throw null; } - public int KeySize { get => throw null; set => throw null; } + public string KeyAlgorithm { get => throw null; set { } } + public int KeySize { get => throw null; set { } } public void LoadXml(System.Xml.XmlElement value) => throw null; } - - public class EncryptionProperty + public sealed class EncryptionProperty { public EncryptionProperty() => throw null; public EncryptionProperty(System.Xml.XmlElement elementProperty) => throw null; public System.Xml.XmlElement GetXml() => throw null; public string Id { get => throw null; } public void LoadXml(System.Xml.XmlElement value) => throw null; - public System.Xml.XmlElement PropertyElement { get => throw null; set => throw null; } + public System.Xml.XmlElement PropertyElement { get => throw null; set { } } public string Target { get => throw null; } } - - public class EncryptionPropertyCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + public sealed class EncryptionPropertyCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { public int Add(System.Security.Cryptography.Xml.EncryptionProperty value) => throw null; int System.Collections.IList.Add(object value) => throw null; @@ -196,136 +183,117 @@ namespace System public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } public System.Security.Cryptography.Xml.EncryptionProperty Item(int index) => throw null; - [System.Runtime.CompilerServices.IndexerName("ItemOf")] - public System.Security.Cryptography.Xml.EncryptionProperty this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } + object System.Collections.IList.this[int index] { get => throw null; set { } } public void Remove(System.Security.Cryptography.Xml.EncryptionProperty value) => throw null; void System.Collections.IList.Remove(object value) => throw null; public void RemoveAt(int index) => throw null; public object SyncRoot { get => throw null; } + [System.Runtime.CompilerServices.IndexerName("ItemOf")] + public System.Security.Cryptography.Xml.EncryptionProperty this[int index] { get => throw null; set { } } } - public interface IRelDecryptor { System.IO.Stream Decrypt(System.Security.Cryptography.Xml.EncryptionMethod encryptionMethod, System.Security.Cryptography.Xml.KeyInfo keyInfo, System.IO.Stream toDecrypt); } - public class KeyInfo : System.Collections.IEnumerable { public void AddClause(System.Security.Cryptography.Xml.KeyInfoClause clause) => throw null; public int Count { get => throw null; } + public KeyInfo() => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; public System.Collections.IEnumerator GetEnumerator(System.Type requestedObjectType) => throw null; public System.Xml.XmlElement GetXml() => throw null; - public string Id { get => throw null; set => throw null; } - public KeyInfo() => throw null; + public string Id { get => throw null; set { } } public void LoadXml(System.Xml.XmlElement value) => throw null; } - public abstract class KeyInfoClause { - public abstract System.Xml.XmlElement GetXml(); protected KeyInfoClause() => throw null; + public abstract System.Xml.XmlElement GetXml(); public abstract void LoadXml(System.Xml.XmlElement element); } - public class KeyInfoEncryptedKey : System.Security.Cryptography.Xml.KeyInfoClause { - public System.Security.Cryptography.Xml.EncryptedKey EncryptedKey { get => throw null; set => throw null; } - public override System.Xml.XmlElement GetXml() => throw null; public KeyInfoEncryptedKey() => throw null; public KeyInfoEncryptedKey(System.Security.Cryptography.Xml.EncryptedKey encryptedKey) => throw null; + public System.Security.Cryptography.Xml.EncryptedKey EncryptedKey { get => throw null; set { } } + public override System.Xml.XmlElement GetXml() => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; } - public class KeyInfoName : System.Security.Cryptography.Xml.KeyInfoClause { - public override System.Xml.XmlElement GetXml() => throw null; public KeyInfoName() => throw null; public KeyInfoName(string keyName) => throw null; + public override System.Xml.XmlElement GetXml() => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; - public string Value { get => throw null; set => throw null; } + public string Value { get => throw null; set { } } } - public class KeyInfoNode : System.Security.Cryptography.Xml.KeyInfoClause { - public override System.Xml.XmlElement GetXml() => throw null; public KeyInfoNode() => throw null; public KeyInfoNode(System.Xml.XmlElement node) => throw null; + public override System.Xml.XmlElement GetXml() => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; - public System.Xml.XmlElement Value { get => throw null; set => throw null; } + public System.Xml.XmlElement Value { get => throw null; set { } } } - public class KeyInfoRetrievalMethod : System.Security.Cryptography.Xml.KeyInfoClause { - public override System.Xml.XmlElement GetXml() => throw null; public KeyInfoRetrievalMethod() => throw null; public KeyInfoRetrievalMethod(string strUri) => throw null; public KeyInfoRetrievalMethod(string strUri, string typeName) => throw null; + public override System.Xml.XmlElement GetXml() => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; - public string Type { get => throw null; set => throw null; } - public string Uri { get => throw null; set => throw null; } + public string Type { get => throw null; set { } } + public string Uri { get => throw null; set { } } } - public class KeyInfoX509Data : System.Security.Cryptography.Xml.KeyInfoClause { public void AddCertificate(System.Security.Cryptography.X509Certificates.X509Certificate certificate) => throw null; public void AddIssuerSerial(string issuerName, string serialNumber) => throw null; - public void AddSubjectKeyId(System.Byte[] subjectKeyId) => throw null; + public void AddSubjectKeyId(byte[] subjectKeyId) => throw null; public void AddSubjectKeyId(string subjectKeyId) => throw null; public void AddSubjectName(string subjectName) => throw null; - public System.Byte[] CRL { get => throw null; set => throw null; } public System.Collections.ArrayList Certificates { get => throw null; } - public override System.Xml.XmlElement GetXml() => throw null; - public System.Collections.ArrayList IssuerSerials { get => throw null; } + public byte[] CRL { get => throw null; set { } } public KeyInfoX509Data() => throw null; - public KeyInfoX509Data(System.Byte[] rgbCert) => throw null; + public KeyInfoX509Data(byte[] rgbCert) => throw null; public KeyInfoX509Data(System.Security.Cryptography.X509Certificates.X509Certificate cert) => throw null; public KeyInfoX509Data(System.Security.Cryptography.X509Certificates.X509Certificate cert, System.Security.Cryptography.X509Certificates.X509IncludeOption includeOption) => throw null; + public override System.Xml.XmlElement GetXml() => throw null; + public System.Collections.ArrayList IssuerSerials { get => throw null; } public override void LoadXml(System.Xml.XmlElement element) => throw null; public System.Collections.ArrayList SubjectKeyIds { get => throw null; } public System.Collections.ArrayList SubjectNames { get => throw null; } } - - public class KeyReference : System.Security.Cryptography.Xml.EncryptedReference + public sealed class KeyReference : System.Security.Cryptography.Xml.EncryptedReference { public KeyReference() => throw null; public KeyReference(string uri) => throw null; public KeyReference(string uri, System.Security.Cryptography.Xml.TransformChain transformChain) => throw null; } - - public class RSAKeyValue : System.Security.Cryptography.Xml.KeyInfoClause - { - public override System.Xml.XmlElement GetXml() => throw null; - public System.Security.Cryptography.RSA Key { get => throw null; set => throw null; } - public override void LoadXml(System.Xml.XmlElement value) => throw null; - public RSAKeyValue() => throw null; - public RSAKeyValue(System.Security.Cryptography.RSA key) => throw null; - } - public class Reference { public void AddTransform(System.Security.Cryptography.Xml.Transform transform) => throw null; - public string DigestMethod { get => throw null; set => throw null; } - public System.Byte[] DigestValue { get => throw null; set => throw null; } - public System.Xml.XmlElement GetXml() => throw null; - public string Id { get => throw null; set => throw null; } - public void LoadXml(System.Xml.XmlElement value) => throw null; public Reference() => throw null; public Reference(System.IO.Stream stream) => throw null; public Reference(string uri) => throw null; - public System.Security.Cryptography.Xml.TransformChain TransformChain { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - public string Uri { get => throw null; set => throw null; } + public string DigestMethod { get => throw null; set { } } + public byte[] DigestValue { get => throw null; set { } } + public System.Xml.XmlElement GetXml() => throw null; + public string Id { get => throw null; set { } } + public void LoadXml(System.Xml.XmlElement value) => throw null; + public System.Security.Cryptography.Xml.TransformChain TransformChain { get => throw null; set { } } + public string Type { get => throw null; set { } } + public string Uri { get => throw null; set { } } } - - public class ReferenceList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList + public sealed class ReferenceList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { public int Add(object value) => throw null; public void Clear() => throw null; public bool Contains(object value) => throw null; public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public ReferenceList() => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; public int IndexOf(object value) => throw null; public void Insert(int index, object value) => throw null; @@ -333,48 +301,52 @@ namespace System bool System.Collections.IList.IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } public System.Security.Cryptography.Xml.EncryptedReference Item(int index) => throw null; - [System.Runtime.CompilerServices.IndexerName("ItemOf")] - public System.Security.Cryptography.Xml.EncryptedReference this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public ReferenceList() => throw null; + object System.Collections.IList.this[int index] { get => throw null; set { } } public void Remove(object value) => throw null; public void RemoveAt(int index) => throw null; public object SyncRoot { get => throw null; } + [System.Runtime.CompilerServices.IndexerName("ItemOf")] + public System.Security.Cryptography.Xml.EncryptedReference this[int index] { get => throw null; set { } } + } + public class RSAKeyValue : System.Security.Cryptography.Xml.KeyInfoClause + { + public RSAKeyValue() => throw null; + public RSAKeyValue(System.Security.Cryptography.RSA key) => throw null; + public override System.Xml.XmlElement GetXml() => throw null; + public System.Security.Cryptography.RSA Key { get => throw null; set { } } + public override void LoadXml(System.Xml.XmlElement value) => throw null; } - public class Signature { public void AddObject(System.Security.Cryptography.Xml.DataObject dataObject) => throw null; - public System.Xml.XmlElement GetXml() => throw null; - public string Id { get => throw null; set => throw null; } - public System.Security.Cryptography.Xml.KeyInfo KeyInfo { get => throw null; set => throw null; } - public void LoadXml(System.Xml.XmlElement value) => throw null; - public System.Collections.IList ObjectList { get => throw null; set => throw null; } public Signature() => throw null; - public System.Byte[] SignatureValue { get => throw null; set => throw null; } - public System.Security.Cryptography.Xml.SignedInfo SignedInfo { get => throw null; set => throw null; } + public System.Xml.XmlElement GetXml() => throw null; + public string Id { get => throw null; set { } } + public System.Security.Cryptography.Xml.KeyInfo KeyInfo { get => throw null; set { } } + public void LoadXml(System.Xml.XmlElement value) => throw null; + public System.Collections.IList ObjectList { get => throw null; set { } } + public byte[] SignatureValue { get => throw null; set { } } + public System.Security.Cryptography.Xml.SignedInfo SignedInfo { get => throw null; set { } } } - public class SignedInfo : System.Collections.ICollection, System.Collections.IEnumerable { public void AddReference(System.Security.Cryptography.Xml.Reference reference) => throw null; - public string CanonicalizationMethod { get => throw null; set => throw null; } + public string CanonicalizationMethod { get => throw null; set { } } public System.Security.Cryptography.Xml.Transform CanonicalizationMethodObject { get => throw null; } public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public SignedInfo() => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; public System.Xml.XmlElement GetXml() => throw null; - public string Id { get => throw null; set => throw null; } + public string Id { get => throw null; set { } } public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } public void LoadXml(System.Xml.XmlElement value) => throw null; public System.Collections.ArrayList References { get => throw null; } - public string SignatureLength { get => throw null; set => throw null; } - public string SignatureMethod { get => throw null; set => throw null; } - public SignedInfo() => throw null; + public string SignatureLength { get => throw null; set { } } + public string SignatureMethod { get => throw null; set { } } public object SyncRoot { get => throw null; } } - public class SignedXml { public void AddObject(System.Security.Cryptography.Xml.DataObject dataObject) => throw null; @@ -386,58 +358,58 @@ namespace System public bool CheckSignatureReturningKey(out System.Security.Cryptography.AsymmetricAlgorithm signingKey) => throw null; public void ComputeSignature() => throw null; public void ComputeSignature(System.Security.Cryptography.KeyedHashAlgorithm macAlg) => throw null; - public System.Security.Cryptography.Xml.EncryptedXml EncryptedXml { get => throw null; set => throw null; } - public virtual System.Xml.XmlElement GetIdElement(System.Xml.XmlDocument document, string idValue) => throw null; - protected virtual System.Security.Cryptography.AsymmetricAlgorithm GetPublicKey() => throw null; - public System.Xml.XmlElement GetXml() => throw null; - public System.Security.Cryptography.Xml.KeyInfo KeyInfo { get => throw null; set => throw null; } - public void LoadXml(System.Xml.XmlElement value) => throw null; - public System.Xml.XmlResolver Resolver { set => throw null; } - public System.Collections.ObjectModel.Collection SafeCanonicalizationMethods { get => throw null; } - public System.Security.Cryptography.Xml.Signature Signature { get => throw null; } - public System.Func SignatureFormatValidator { get => throw null; set => throw null; } - public string SignatureLength { get => throw null; } - public string SignatureMethod { get => throw null; } - public System.Byte[] SignatureValue { get => throw null; } - public System.Security.Cryptography.Xml.SignedInfo SignedInfo { get => throw null; } public SignedXml() => throw null; public SignedXml(System.Xml.XmlDocument document) => throw null; public SignedXml(System.Xml.XmlElement elem) => throw null; - public System.Security.Cryptography.AsymmetricAlgorithm SigningKey { get => throw null; set => throw null; } - public string SigningKeyName { get => throw null; set => throw null; } - public const string XmlDecryptionTransformUrl = default; - public const string XmlDsigBase64TransformUrl = default; - public const string XmlDsigC14NTransformUrl = default; - public const string XmlDsigC14NWithCommentsTransformUrl = default; - public const string XmlDsigCanonicalizationUrl = default; - public const string XmlDsigCanonicalizationWithCommentsUrl = default; - public const string XmlDsigDSAUrl = default; - public const string XmlDsigEnvelopedSignatureTransformUrl = default; - public const string XmlDsigExcC14NTransformUrl = default; - public const string XmlDsigExcC14NWithCommentsTransformUrl = default; - public const string XmlDsigHMACSHA1Url = default; - public const string XmlDsigMinimalCanonicalizationUrl = default; - public const string XmlDsigNamespaceUrl = default; - public const string XmlDsigRSASHA1Url = default; - public const string XmlDsigRSASHA256Url = default; - public const string XmlDsigRSASHA384Url = default; - public const string XmlDsigRSASHA512Url = default; - public const string XmlDsigSHA1Url = default; - public const string XmlDsigSHA256Url = default; - public const string XmlDsigSHA384Url = default; - public const string XmlDsigSHA512Url = default; - public const string XmlDsigXPathTransformUrl = default; - public const string XmlDsigXsltTransformUrl = default; - public const string XmlLicenseTransformUrl = default; + public System.Security.Cryptography.Xml.EncryptedXml EncryptedXml { get => throw null; set { } } + public virtual System.Xml.XmlElement GetIdElement(System.Xml.XmlDocument document, string idValue) => throw null; + protected virtual System.Security.Cryptography.AsymmetricAlgorithm GetPublicKey() => throw null; + public System.Xml.XmlElement GetXml() => throw null; + public System.Security.Cryptography.Xml.KeyInfo KeyInfo { get => throw null; set { } } + public void LoadXml(System.Xml.XmlElement value) => throw null; protected System.Security.Cryptography.Xml.Signature m_signature; protected string m_strSigningKeyName; + public System.Xml.XmlResolver Resolver { set { } } + public System.Collections.ObjectModel.Collection SafeCanonicalizationMethods { get => throw null; } + public System.Security.Cryptography.Xml.Signature Signature { get => throw null; } + public System.Func SignatureFormatValidator { get => throw null; set { } } + public string SignatureLength { get => throw null; } + public string SignatureMethod { get => throw null; } + public byte[] SignatureValue { get => throw null; } + public System.Security.Cryptography.Xml.SignedInfo SignedInfo { get => throw null; } + public System.Security.Cryptography.AsymmetricAlgorithm SigningKey { get => throw null; set { } } + public string SigningKeyName { get => throw null; set { } } + public static string XmlDecryptionTransformUrl; + public static string XmlDsigBase64TransformUrl; + public static string XmlDsigC14NTransformUrl; + public static string XmlDsigC14NWithCommentsTransformUrl; + public static string XmlDsigCanonicalizationUrl; + public static string XmlDsigCanonicalizationWithCommentsUrl; + public static string XmlDsigDSAUrl; + public static string XmlDsigEnvelopedSignatureTransformUrl; + public static string XmlDsigExcC14NTransformUrl; + public static string XmlDsigExcC14NWithCommentsTransformUrl; + public static string XmlDsigHMACSHA1Url; + public static string XmlDsigMinimalCanonicalizationUrl; + public static string XmlDsigNamespaceUrl; + public static string XmlDsigRSASHA1Url; + public static string XmlDsigRSASHA256Url; + public static string XmlDsigRSASHA384Url; + public static string XmlDsigRSASHA512Url; + public static string XmlDsigSHA1Url; + public static string XmlDsigSHA256Url; + public static string XmlDsigSHA384Url; + public static string XmlDsigSHA512Url; + public static string XmlDsigXPathTransformUrl; + public static string XmlDsigXsltTransformUrl; + public static string XmlLicenseTransformUrl; } - public abstract class Transform { - public string Algorithm { get => throw null; set => throw null; } - public System.Xml.XmlElement Context { get => throw null; set => throw null; } - public virtual System.Byte[] GetDigestedOutput(System.Security.Cryptography.HashAlgorithm hash) => throw null; + public string Algorithm { get => throw null; set { } } + public System.Xml.XmlElement Context { get => throw null; set { } } + protected Transform() => throw null; + public virtual byte[] GetDigestedOutput(System.Security.Cryptography.HashAlgorithm hash) => throw null; protected abstract System.Xml.XmlNodeList GetInnerXml(); public abstract object GetOutput(); public abstract object GetOutput(System.Type type); @@ -447,23 +419,21 @@ namespace System public abstract void LoadInput(object obj); public abstract System.Type[] OutputTypes { get; } public System.Collections.Hashtable PropagatedNamespaces { get => throw null; } - public System.Xml.XmlResolver Resolver { set => throw null; } - protected Transform() => throw null; + public System.Xml.XmlResolver Resolver { set { } } } - public class TransformChain { public void Add(System.Security.Cryptography.Xml.Transform transform) => throw null; public int Count { get => throw null; } + public TransformChain() => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; public System.Security.Cryptography.Xml.Transform this[int index] { get => throw null; } - public TransformChain() => throw null; } - public class XmlDecryptionTransform : System.Security.Cryptography.Xml.Transform { public void AddExceptUri(string uri) => throw null; - public System.Security.Cryptography.Xml.EncryptedXml EncryptedXml { get => throw null; set => throw null; } + public XmlDecryptionTransform() => throw null; + public System.Security.Cryptography.Xml.EncryptedXml EncryptedXml { get => throw null; set { } } protected override System.Xml.XmlNodeList GetInnerXml() => throw null; public override object GetOutput() => throw null; public override object GetOutput(System.Type type) => throw null; @@ -472,11 +442,10 @@ namespace System public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; public override void LoadInput(object obj) => throw null; public override System.Type[] OutputTypes { get => throw null; } - public XmlDecryptionTransform() => throw null; } - public class XmlDsigBase64Transform : System.Security.Cryptography.Xml.Transform { + public XmlDsigBase64Transform() => throw null; protected override System.Xml.XmlNodeList GetInnerXml() => throw null; public override object GetOutput() => throw null; public override object GetOutput(System.Type type) => throw null; @@ -484,12 +453,12 @@ namespace System public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; public override void LoadInput(object obj) => throw null; public override System.Type[] OutputTypes { get => throw null; } - public XmlDsigBase64Transform() => throw null; } - public class XmlDsigC14NTransform : System.Security.Cryptography.Xml.Transform { - public override System.Byte[] GetDigestedOutput(System.Security.Cryptography.HashAlgorithm hash) => throw null; + public XmlDsigC14NTransform() => throw null; + public XmlDsigC14NTransform(bool includeComments) => throw null; + public override byte[] GetDigestedOutput(System.Security.Cryptography.HashAlgorithm hash) => throw null; protected override System.Xml.XmlNodeList GetInnerXml() => throw null; public override object GetOutput() => throw null; public override object GetOutput(System.Type type) => throw null; @@ -497,53 +466,47 @@ namespace System public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; public override void LoadInput(object obj) => throw null; public override System.Type[] OutputTypes { get => throw null; } - public XmlDsigC14NTransform() => throw null; - public XmlDsigC14NTransform(bool includeComments) => throw null; } - public class XmlDsigC14NWithCommentsTransform : System.Security.Cryptography.Xml.XmlDsigC14NTransform { public XmlDsigC14NWithCommentsTransform() => throw null; } - public class XmlDsigEnvelopedSignatureTransform : System.Security.Cryptography.Xml.Transform { - protected override System.Xml.XmlNodeList GetInnerXml() => throw null; - public override object GetOutput() => throw null; - public override object GetOutput(System.Type type) => throw null; - public override System.Type[] InputTypes { get => throw null; } - public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; - public override void LoadInput(object obj) => throw null; - public override System.Type[] OutputTypes { get => throw null; } public XmlDsigEnvelopedSignatureTransform() => throw null; public XmlDsigEnvelopedSignatureTransform(bool includeComments) => throw null; - } - - public class XmlDsigExcC14NTransform : System.Security.Cryptography.Xml.Transform - { - public override System.Byte[] GetDigestedOutput(System.Security.Cryptography.HashAlgorithm hash) => throw null; protected override System.Xml.XmlNodeList GetInnerXml() => throw null; public override object GetOutput() => throw null; public override object GetOutput(System.Type type) => throw null; - public string InclusiveNamespacesPrefixList { get => throw null; set => throw null; } public override System.Type[] InputTypes { get => throw null; } public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; public override void LoadInput(object obj) => throw null; public override System.Type[] OutputTypes { get => throw null; } + } + public class XmlDsigExcC14NTransform : System.Security.Cryptography.Xml.Transform + { public XmlDsigExcC14NTransform() => throw null; public XmlDsigExcC14NTransform(bool includeComments) => throw null; public XmlDsigExcC14NTransform(bool includeComments, string inclusiveNamespacesPrefixList) => throw null; public XmlDsigExcC14NTransform(string inclusiveNamespacesPrefixList) => throw null; + public override byte[] GetDigestedOutput(System.Security.Cryptography.HashAlgorithm hash) => throw null; + protected override System.Xml.XmlNodeList GetInnerXml() => throw null; + public override object GetOutput() => throw null; + public override object GetOutput(System.Type type) => throw null; + public string InclusiveNamespacesPrefixList { get => throw null; set { } } + public override System.Type[] InputTypes { get => throw null; } + public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; + public override void LoadInput(object obj) => throw null; + public override System.Type[] OutputTypes { get => throw null; } } - public class XmlDsigExcC14NWithCommentsTransform : System.Security.Cryptography.Xml.XmlDsigExcC14NTransform { public XmlDsigExcC14NWithCommentsTransform() => throw null; public XmlDsigExcC14NWithCommentsTransform(string inclusiveNamespacesPrefixList) => throw null; } - public class XmlDsigXPathTransform : System.Security.Cryptography.Xml.Transform { + public XmlDsigXPathTransform() => throw null; protected override System.Xml.XmlNodeList GetInnerXml() => throw null; public override object GetOutput() => throw null; public override object GetOutput(System.Type type) => throw null; @@ -551,25 +514,11 @@ namespace System public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; public override void LoadInput(object obj) => throw null; public override System.Type[] OutputTypes { get => throw null; } - public XmlDsigXPathTransform() => throw null; } - public class XmlDsigXsltTransform : System.Security.Cryptography.Xml.Transform { - protected override System.Xml.XmlNodeList GetInnerXml() => throw null; - public override object GetOutput() => throw null; - public override object GetOutput(System.Type type) => throw null; - public override System.Type[] InputTypes { get => throw null; } - public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; - public override void LoadInput(object obj) => throw null; - public override System.Type[] OutputTypes { get => throw null; } public XmlDsigXsltTransform() => throw null; public XmlDsigXsltTransform(bool includeComments) => throw null; - } - - public class XmlLicenseTransform : System.Security.Cryptography.Xml.Transform - { - public System.Security.Cryptography.Xml.IRelDecryptor Decryptor { get => throw null; set => throw null; } protected override System.Xml.XmlNodeList GetInnerXml() => throw null; public override object GetOutput() => throw null; public override object GetOutput(System.Type type) => throw null; @@ -577,9 +526,19 @@ namespace System public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; public override void LoadInput(object obj) => throw null; public override System.Type[] OutputTypes { get => throw null; } - public XmlLicenseTransform() => throw null; } - + public class XmlLicenseTransform : System.Security.Cryptography.Xml.Transform + { + public XmlLicenseTransform() => throw null; + public System.Security.Cryptography.Xml.IRelDecryptor Decryptor { get => throw null; set { } } + protected override System.Xml.XmlNodeList GetInnerXml() => throw null; + public override object GetOutput() => throw null; + public override object GetOutput(System.Type type) => throw null; + public override System.Type[] InputTypes { get => throw null; } + public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; + public override void LoadInput(object obj) => throw null; + public override System.Type[] OutputTypes { get => throw null; } + } } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Threading.RateLimiting.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Threading.RateLimiting.cs index dfad6d3fa06..7fee4120782 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Threading.RateLimiting.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Threading.RateLimiting.cs @@ -1,13 +1,12 @@ // This file contains auto-generated code. // Generated from `System.Threading.RateLimiting, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. - namespace System { namespace Threading { namespace RateLimiting { - public class ConcurrencyLimiter : System.Threading.RateLimiting.RateLimiter + public sealed class ConcurrencyLimiter : System.Threading.RateLimiting.RateLimiter { protected override System.Threading.Tasks.ValueTask AcquireAsyncCore(int permitCount, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override System.Threading.RateLimiting.RateLimitLease AttemptAcquireCore(int permitCount) => throw null; @@ -17,97 +16,109 @@ namespace System public override System.Threading.RateLimiting.RateLimiterStatistics GetStatistics() => throw null; public override System.TimeSpan? IdleDuration { get => throw null; } } - - public class ConcurrencyLimiterOptions + public sealed class ConcurrencyLimiterOptions { public ConcurrencyLimiterOptions() => throw null; - public int PermitLimit { get => throw null; set => throw null; } - public int QueueLimit { get => throw null; set => throw null; } - public System.Threading.RateLimiting.QueueProcessingOrder QueueProcessingOrder { get => throw null; set => throw null; } + public int PermitLimit { get => throw null; set { } } + public int QueueLimit { get => throw null; set { } } + public System.Threading.RateLimiting.QueueProcessingOrder QueueProcessingOrder { get => throw null; set { } } } - - public class FixedWindowRateLimiter : System.Threading.RateLimiting.ReplenishingRateLimiter + public sealed class FixedWindowRateLimiter : System.Threading.RateLimiting.ReplenishingRateLimiter { protected override System.Threading.Tasks.ValueTask AcquireAsyncCore(int permitCount, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override System.Threading.RateLimiting.RateLimitLease AttemptAcquireCore(int permitCount) => throw null; + public FixedWindowRateLimiter(System.Threading.RateLimiting.FixedWindowRateLimiterOptions options) => throw null; protected override void Dispose(bool disposing) => throw null; protected override System.Threading.Tasks.ValueTask DisposeAsyncCore() => throw null; - public FixedWindowRateLimiter(System.Threading.RateLimiting.FixedWindowRateLimiterOptions options) => throw null; public override System.Threading.RateLimiting.RateLimiterStatistics GetStatistics() => throw null; public override System.TimeSpan? IdleDuration { get => throw null; } public override bool IsAutoReplenishing { get => throw null; } public override System.TimeSpan ReplenishmentPeriod { get => throw null; } public override bool TryReplenish() => throw null; } - - public class FixedWindowRateLimiterOptions + public sealed class FixedWindowRateLimiterOptions { - public bool AutoReplenishment { get => throw null; set => throw null; } + public bool AutoReplenishment { get => throw null; set { } } public FixedWindowRateLimiterOptions() => throw null; - public int PermitLimit { get => throw null; set => throw null; } - public int QueueLimit { get => throw null; set => throw null; } - public System.Threading.RateLimiting.QueueProcessingOrder QueueProcessingOrder { get => throw null; set => throw null; } - public System.TimeSpan Window { get => throw null; set => throw null; } + public int PermitLimit { get => throw null; set { } } + public int QueueLimit { get => throw null; set { } } + public System.Threading.RateLimiting.QueueProcessingOrder QueueProcessingOrder { get => throw null; set { } } + public System.TimeSpan Window { get => throw null; set { } } } - public static class MetadataName { public static System.Threading.RateLimiting.MetadataName Create(string name) => throw null; public static System.Threading.RateLimiting.MetadataName ReasonPhrase { get => throw null; } public static System.Threading.RateLimiting.MetadataName RetryAfter { get => throw null; } } - - public class MetadataName : System.IEquatable> + public sealed class MetadataName : System.IEquatable> { - public static bool operator !=(System.Threading.RateLimiting.MetadataName left, System.Threading.RateLimiting.MetadataName right) => throw null; - public static bool operator ==(System.Threading.RateLimiting.MetadataName left, System.Threading.RateLimiting.MetadataName right) => throw null; - public bool Equals(System.Threading.RateLimiting.MetadataName other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; public MetadataName(string name) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(System.Threading.RateLimiting.MetadataName other) => throw null; + public override int GetHashCode() => throw null; public string Name { get => throw null; } + public static bool operator ==(System.Threading.RateLimiting.MetadataName left, System.Threading.RateLimiting.MetadataName right) => throw null; + public static bool operator !=(System.Threading.RateLimiting.MetadataName left, System.Threading.RateLimiting.MetadataName right) => throw null; public override string ToString() => throw null; } - public static class PartitionedRateLimiter { public static System.Threading.RateLimiting.PartitionedRateLimiter Create(System.Func> partitioner, System.Collections.Generic.IEqualityComparer equalityComparer = default(System.Collections.Generic.IEqualityComparer)) => throw null; public static System.Threading.RateLimiting.PartitionedRateLimiter CreateChained(params System.Threading.RateLimiting.PartitionedRateLimiter[] limiters) => throw null; } - public abstract class PartitionedRateLimiter : System.IAsyncDisposable, System.IDisposable { public System.Threading.Tasks.ValueTask AcquireAsync(TResource resource, int permitCount = default(int), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected abstract System.Threading.Tasks.ValueTask AcquireAsyncCore(TResource resource, int permitCount, System.Threading.CancellationToken cancellationToken); public System.Threading.RateLimiting.RateLimitLease AttemptAcquire(TResource resource, int permitCount = default(int)) => throw null; protected abstract System.Threading.RateLimiting.RateLimitLease AttemptAcquireCore(TResource resource, int permitCount); + protected PartitionedRateLimiter() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; protected virtual System.Threading.Tasks.ValueTask DisposeAsyncCore() => throw null; public abstract System.Threading.RateLimiting.RateLimiterStatistics GetStatistics(TResource resource); - protected PartitionedRateLimiter() => throw null; public System.Threading.RateLimiting.PartitionedRateLimiter WithTranslatedKey(System.Func keyAdapter, bool leaveOpen) => throw null; } - - public enum QueueProcessingOrder : int + public enum QueueProcessingOrder { - NewestFirst = 1, OldestFirst = 0, + NewestFirst = 1, + } + public abstract class RateLimiter : System.IAsyncDisposable, System.IDisposable + { + public System.Threading.Tasks.ValueTask AcquireAsync(int permitCount = default(int), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected abstract System.Threading.Tasks.ValueTask AcquireAsyncCore(int permitCount, System.Threading.CancellationToken cancellationToken); + public System.Threading.RateLimiting.RateLimitLease AttemptAcquire(int permitCount = default(int)) => throw null; + protected abstract System.Threading.RateLimiting.RateLimitLease AttemptAcquireCore(int permitCount); + protected RateLimiter() => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + protected virtual System.Threading.Tasks.ValueTask DisposeAsyncCore() => throw null; + public abstract System.Threading.RateLimiting.RateLimiterStatistics GetStatistics(); + public abstract System.TimeSpan? IdleDuration { get; } + } + public class RateLimiterStatistics + { + public RateLimiterStatistics() => throw null; + public long CurrentAvailablePermits { get => throw null; set { } } + public long CurrentQueuedCount { get => throw null; set { } } + public long TotalFailedLeases { get => throw null; set { } } + public long TotalSuccessfulLeases { get => throw null; set { } } } - public abstract class RateLimitLease : System.IDisposable { + protected RateLimitLease() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public virtual System.Collections.Generic.IEnumerable> GetAllMetadata() => throw null; public abstract bool IsAcquired { get; } public abstract System.Collections.Generic.IEnumerable MetadataNames { get; } - protected RateLimitLease() => throw null; public abstract bool TryGetMetadata(string metadataName, out object metadata); public bool TryGetMetadata(System.Threading.RateLimiting.MetadataName metadataName, out T metadata) => throw null; } - public static class RateLimitPartition { public static System.Threading.RateLimiting.RateLimitPartition Get(TKey partitionKey, System.Func factory) => throw null; @@ -117,97 +128,65 @@ namespace System public static System.Threading.RateLimiting.RateLimitPartition GetSlidingWindowLimiter(TKey partitionKey, System.Func factory) => throw null; public static System.Threading.RateLimiting.RateLimitPartition GetTokenBucketLimiter(TKey partitionKey, System.Func factory) => throw null; } - public struct RateLimitPartition { + public RateLimitPartition(TKey partitionKey, System.Func factory) => throw null; public System.Func Factory { get => throw null; } public TKey PartitionKey { get => throw null; } - // Stub generator skipped constructor - public RateLimitPartition(TKey partitionKey, System.Func factory) => throw null; } - - public abstract class RateLimiter : System.IAsyncDisposable, System.IDisposable - { - public System.Threading.Tasks.ValueTask AcquireAsync(int permitCount = default(int), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - protected abstract System.Threading.Tasks.ValueTask AcquireAsyncCore(int permitCount, System.Threading.CancellationToken cancellationToken); - public System.Threading.RateLimiting.RateLimitLease AttemptAcquire(int permitCount = default(int)) => throw null; - protected abstract System.Threading.RateLimiting.RateLimitLease AttemptAcquireCore(int permitCount); - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - protected virtual System.Threading.Tasks.ValueTask DisposeAsyncCore() => throw null; - public abstract System.Threading.RateLimiting.RateLimiterStatistics GetStatistics(); - public abstract System.TimeSpan? IdleDuration { get; } - protected RateLimiter() => throw null; - } - - public class RateLimiterStatistics - { - public System.Int64 CurrentAvailablePermits { get => throw null; set => throw null; } - public System.Int64 CurrentQueuedCount { get => throw null; set => throw null; } - public RateLimiterStatistics() => throw null; - public System.Int64 TotalFailedLeases { get => throw null; set => throw null; } - public System.Int64 TotalSuccessfulLeases { get => throw null; set => throw null; } - } - public abstract class ReplenishingRateLimiter : System.Threading.RateLimiting.RateLimiter { - public abstract bool IsAutoReplenishing { get; } protected ReplenishingRateLimiter() => throw null; + public abstract bool IsAutoReplenishing { get; } public abstract System.TimeSpan ReplenishmentPeriod { get; } public abstract bool TryReplenish(); } - - public class SlidingWindowRateLimiter : System.Threading.RateLimiting.ReplenishingRateLimiter + public sealed class SlidingWindowRateLimiter : System.Threading.RateLimiting.ReplenishingRateLimiter { protected override System.Threading.Tasks.ValueTask AcquireAsyncCore(int permitCount, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override System.Threading.RateLimiting.RateLimitLease AttemptAcquireCore(int permitCount) => throw null; + public SlidingWindowRateLimiter(System.Threading.RateLimiting.SlidingWindowRateLimiterOptions options) => throw null; protected override void Dispose(bool disposing) => throw null; protected override System.Threading.Tasks.ValueTask DisposeAsyncCore() => throw null; public override System.Threading.RateLimiting.RateLimiterStatistics GetStatistics() => throw null; public override System.TimeSpan? IdleDuration { get => throw null; } public override bool IsAutoReplenishing { get => throw null; } public override System.TimeSpan ReplenishmentPeriod { get => throw null; } - public SlidingWindowRateLimiter(System.Threading.RateLimiting.SlidingWindowRateLimiterOptions options) => throw null; public override bool TryReplenish() => throw null; } - - public class SlidingWindowRateLimiterOptions + public sealed class SlidingWindowRateLimiterOptions { - public bool AutoReplenishment { get => throw null; set => throw null; } - public int PermitLimit { get => throw null; set => throw null; } - public int QueueLimit { get => throw null; set => throw null; } - public System.Threading.RateLimiting.QueueProcessingOrder QueueProcessingOrder { get => throw null; set => throw null; } - public int SegmentsPerWindow { get => throw null; set => throw null; } + public bool AutoReplenishment { get => throw null; set { } } public SlidingWindowRateLimiterOptions() => throw null; - public System.TimeSpan Window { get => throw null; set => throw null; } + public int PermitLimit { get => throw null; set { } } + public int QueueLimit { get => throw null; set { } } + public System.Threading.RateLimiting.QueueProcessingOrder QueueProcessingOrder { get => throw null; set { } } + public int SegmentsPerWindow { get => throw null; set { } } + public System.TimeSpan Window { get => throw null; set { } } } - - public class TokenBucketRateLimiter : System.Threading.RateLimiting.ReplenishingRateLimiter + public sealed class TokenBucketRateLimiter : System.Threading.RateLimiting.ReplenishingRateLimiter { protected override System.Threading.Tasks.ValueTask AcquireAsyncCore(int tokenCount, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override System.Threading.RateLimiting.RateLimitLease AttemptAcquireCore(int tokenCount) => throw null; + public TokenBucketRateLimiter(System.Threading.RateLimiting.TokenBucketRateLimiterOptions options) => throw null; protected override void Dispose(bool disposing) => throw null; protected override System.Threading.Tasks.ValueTask DisposeAsyncCore() => throw null; public override System.Threading.RateLimiting.RateLimiterStatistics GetStatistics() => throw null; public override System.TimeSpan? IdleDuration { get => throw null; } public override bool IsAutoReplenishing { get => throw null; } public override System.TimeSpan ReplenishmentPeriod { get => throw null; } - public TokenBucketRateLimiter(System.Threading.RateLimiting.TokenBucketRateLimiterOptions options) => throw null; public override bool TryReplenish() => throw null; } - - public class TokenBucketRateLimiterOptions + public sealed class TokenBucketRateLimiterOptions { - public bool AutoReplenishment { get => throw null; set => throw null; } - public int QueueLimit { get => throw null; set => throw null; } - public System.Threading.RateLimiting.QueueProcessingOrder QueueProcessingOrder { get => throw null; set => throw null; } - public System.TimeSpan ReplenishmentPeriod { get => throw null; set => throw null; } + public bool AutoReplenishment { get => throw null; set { } } public TokenBucketRateLimiterOptions() => throw null; - public int TokenLimit { get => throw null; set => throw null; } - public int TokensPerPeriod { get => throw null; set => throw null; } + public int QueueLimit { get => throw null; set { } } + public System.Threading.RateLimiting.QueueProcessingOrder QueueProcessingOrder { get => throw null; set { } } + public System.TimeSpan ReplenishmentPeriod { get => throw null; set { } } + public int TokenLimit { get => throw null; set { } } + public int TokensPerPeriod { get => throw null; set { } } } - } } } From 2343e5ecd8b0ec123aaea18d0642b5b4c6246953 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 6 Sep 2023 09:23:13 +0200 Subject: [PATCH 579/788] C#: Regenerate `NHibernate` stubs --- .../frameworks/NHibernate/options | 2 +- .../Antlr3.Runtime/3.5.1/Antlr3.Runtime.cs | 1698 +- .../4.0.4/Iesi.Collections.cs | 90 - .../NHibernate/{5.3.8 => 5.4.6}/NHibernate.cs | 34028 +++++++--------- .../{5.3.8 => 5.4.6}/NHibernate.csproj | 6 +- .../2.2.0/Remotion.Linq.EagerFetching.cs | 80 +- .../Remotion.Linq/2.2.0/Remotion.Linq.cs | 2226 +- ...stem.Configuration.ConfigurationManager.cs | 2017 +- ....Configuration.ConfigurationManager.csproj | 0 9 files changed, 17291 insertions(+), 22856 deletions(-) delete mode 100644 csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.cs rename csharp/ql/test/resources/stubs/NHibernate/{5.3.8 => 5.4.6}/NHibernate.cs (80%) rename csharp/ql/test/resources/stubs/NHibernate/{5.3.8 => 5.4.6}/NHibernate.csproj (93%) rename csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/{4.4.1 => 6.0.0}/System.Configuration.ConfigurationManager.cs (67%) rename csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/{4.4.1 => 6.0.0}/System.Configuration.ConfigurationManager.csproj (100%) diff --git a/csharp/ql/test/library-tests/frameworks/NHibernate/options b/csharp/ql/test/library-tests/frameworks/NHibernate/options index 65d73f7f5f3..5dd1f690756 100644 --- a/csharp/ql/test/library-tests/frameworks/NHibernate/options +++ b/csharp/ql/test/library-tests/frameworks/NHibernate/options @@ -1 +1 @@ -semmle-extractor-options: /nostdlib /noconfig --load-sources-from-project:../../../resources/stubs/NHibernate/5.3.8/NHibernate.csproj +semmle-extractor-options: /nostdlib /noconfig --load-sources-from-project:../../../resources/stubs/NHibernate/5.4.6/NHibernate.csproj diff --git a/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.cs b/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.cs index 6f83dad6003..b3d00e8d91c 100644 --- a/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.cs +++ b/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.cs @@ -1,46 +1,48 @@ // This file contains auto-generated code. - +// Generated from `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f`. namespace Antlr { namespace Runtime { - // Generated from `Antlr.Runtime.ANTLRInputStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class ANTLRInputStream : Antlr.Runtime.ANTLRReaderStream { - public ANTLRInputStream(System.IO.Stream input, int size, int readBufferSize, System.Text.Encoding encoding) : base(default(System.IO.TextReader)) => throw null; - public ANTLRInputStream(System.IO.Stream input, int size, System.Text.Encoding encoding) : base(default(System.IO.TextReader)) => throw null; + public ANTLRInputStream(System.IO.Stream input) : base(default(System.IO.TextReader)) => throw null; public ANTLRInputStream(System.IO.Stream input, int size) : base(default(System.IO.TextReader)) => throw null; public ANTLRInputStream(System.IO.Stream input, System.Text.Encoding encoding) : base(default(System.IO.TextReader)) => throw null; - public ANTLRInputStream(System.IO.Stream input) : base(default(System.IO.TextReader)) => throw null; + public ANTLRInputStream(System.IO.Stream input, int size, System.Text.Encoding encoding) : base(default(System.IO.TextReader)) => throw null; + public ANTLRInputStream(System.IO.Stream input, int size, int readBufferSize, System.Text.Encoding encoding) : base(default(System.IO.TextReader)) => throw null; } - - // Generated from `Antlr.Runtime.ANTLRReaderStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class ANTLRReaderStream : Antlr.Runtime.ANTLRStringStream { - public ANTLRReaderStream(System.IO.TextReader r, int size, int readChunkSize) => throw null; - public ANTLRReaderStream(System.IO.TextReader r, int size) => throw null; public ANTLRReaderStream(System.IO.TextReader r) => throw null; - public const int InitialBufferSize = default; + public ANTLRReaderStream(System.IO.TextReader r, int size) => throw null; + public ANTLRReaderStream(System.IO.TextReader r, int size, int readChunkSize) => throw null; + public static int InitialBufferSize; public virtual void Load(System.IO.TextReader r, int size, int readChunkSize) => throw null; - public const int ReadBufferSize = default; + public static int ReadBufferSize; } - - // Generated from `Antlr.Runtime.ANTLRStringStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class ANTLRStringStream : Antlr.Runtime.IIntStream, Antlr.Runtime.ICharStream + public class ANTLRStringStream : Antlr.Runtime.ICharStream, Antlr.Runtime.IIntStream { - public ANTLRStringStream(string input, string sourceName) => throw null; - public ANTLRStringStream(string input) => throw null; - public ANTLRStringStream(System.Char[] data, int numberOfActualCharsInArray, string sourceName) => throw null; - public ANTLRStringStream(System.Char[] data, int numberOfActualCharsInArray) => throw null; - protected ANTLRStringStream() => throw null; - public virtual int CharPositionInLine { get => throw null; set => throw null; } + public virtual int CharPositionInLine { get => throw null; set { } } public virtual void Consume() => throw null; public virtual int Count { get => throw null; } + public ANTLRStringStream(string input) => throw null; + public ANTLRStringStream(string input, string sourceName) => throw null; + public ANTLRStringStream(char[] data, int numberOfActualCharsInArray) => throw null; + public ANTLRStringStream(char[] data, int numberOfActualCharsInArray, string sourceName) => throw null; + protected ANTLRStringStream() => throw null; + protected char[] data; public virtual int Index { get => throw null; } public virtual int LA(int i) => throw null; + protected int lastMarker; + public virtual int Line { get => throw null; set { } } public virtual int LT(int i) => throw null; - public virtual int Line { get => throw null; set => throw null; } public virtual int Mark() => throw null; + protected int markDepth; + protected System.Collections.Generic.IList markers; + protected int n; + public string name; + protected int p; public virtual void Release(int marker) => throw null; public virtual void Reset() => throw null; public virtual void Rewind(int m) => throw null; @@ -49,36 +51,25 @@ namespace Antlr public virtual string SourceName { get => throw null; } public virtual string Substring(int start, int length) => throw null; public override string ToString() => throw null; - protected System.Char[] data; - protected int lastMarker; - protected int markDepth; - protected System.Collections.Generic.IList markers; - protected int n; - public string name; - protected int p; } - - // Generated from `Antlr.Runtime.AstParserRuleReturnScope<,>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class AstParserRuleReturnScope : Antlr.Runtime.ParserRuleReturnScope, Antlr.Runtime.IRuleReturnScope, Antlr.Runtime.IAstRuleReturnScope, Antlr.Runtime.IAstRuleReturnScope + public class AstParserRuleReturnScope : Antlr.Runtime.ParserRuleReturnScope, Antlr.Runtime.IAstRuleReturnScope, Antlr.Runtime.IAstRuleReturnScope, Antlr.Runtime.IRuleReturnScope { public AstParserRuleReturnScope() => throw null; - public TTree Tree { get => throw null; set => throw null; } + public TTree Tree { get => throw null; set { } } object Antlr.Runtime.IAstRuleReturnScope.Tree { get => throw null; } } - - // Generated from `Antlr.Runtime.BaseRecognizer` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public abstract class BaseRecognizer { public virtual bool AlreadyParsedRule(Antlr.Runtime.IIntStream input, int ruleIndex) => throw null; - public virtual int BacktrackingLevel { get => throw null; set => throw null; } - public BaseRecognizer(Antlr.Runtime.RecognizerSharedState state) => throw null; - public BaseRecognizer() => throw null; + public virtual int BacktrackingLevel { get => throw null; set { } } public virtual void BeginResync() => throw null; protected virtual Antlr.Runtime.BitSet CombineFollows(bool exact) => throw null; protected virtual Antlr.Runtime.BitSet ComputeContextSensitiveRuleFOLLOW() => throw null; protected virtual Antlr.Runtime.BitSet ComputeErrorRecoverySet() => throw null; public virtual void ConsumeUntil(Antlr.Runtime.IIntStream input, int tokenType) => throw null; public virtual void ConsumeUntil(Antlr.Runtime.IIntStream input, Antlr.Runtime.BitSet set) => throw null; + public BaseRecognizer() => throw null; + public BaseRecognizer(Antlr.Runtime.RecognizerSharedState state) => throw null; protected virtual void DebugBeginBacktrack(int level) => throw null; protected virtual void DebugEndBacktrack(int level, bool successful) => throw null; protected virtual void DebugEnterAlt(int alt) => throw null; @@ -92,7 +83,7 @@ namespace Antlr protected virtual void DebugLocation(int line, int charPositionInLine) => throw null; protected virtual void DebugRecognitionException(Antlr.Runtime.RecognitionException ex) => throw null; protected virtual void DebugSemanticPredicate(bool result, string predicate) => throw null; - public const int DefaultTokenChannel = default; + public static int DefaultTokenChannel; public virtual void DisplayRecognitionError(string[] tokenNames, Antlr.Runtime.RecognitionException e) => throw null; public virtual void EmitErrorMessage(string msg) => throw null; public virtual void EndResync() => throw null; @@ -105,17 +96,17 @@ namespace Antlr public virtual int GetRuleMemoizationCacheSize() => throw null; public virtual string GetTokenErrorDisplay(Antlr.Runtime.IToken t) => throw null; public virtual string GrammarFileName { get => throw null; } - public const int Hidden = default; + public static int Hidden; protected virtual void InitDFAs() => throw null; - public const int InitialFollowStackSize = default; + public static int InitialFollowStackSize; public virtual object Match(Antlr.Runtime.IIntStream input, int ttype, Antlr.Runtime.BitSet follow) => throw null; public virtual void MatchAny(Antlr.Runtime.IIntStream input) => throw null; - public const int MemoRuleFailed = default; - public const int MemoRuleUnknown = default; public virtual void Memoize(Antlr.Runtime.IIntStream input, int ruleIndex, int ruleStartIndex) => throw null; + public static int MemoRuleFailed; + public static int MemoRuleUnknown; public virtual bool MismatchIsMissingToken(Antlr.Runtime.IIntStream input, Antlr.Runtime.BitSet follow) => throw null; public virtual bool MismatchIsUnwantedToken(Antlr.Runtime.IIntStream input, int ttype) => throw null; - public const string NextTokenRuleName = default; + public static string NextTokenRuleName; public virtual int NumberOfSyntaxErrors { get => throw null; } protected void PopFollow() => throw null; protected void PushFollow(Antlr.Runtime.BitSet fset) => throw null; @@ -126,23 +117,21 @@ namespace Antlr public virtual void Reset() => throw null; public virtual void SetState(Antlr.Runtime.RecognizerSharedState value) => throw null; public abstract string SourceName { get; } - public virtual System.Collections.Generic.List ToStrings(System.Collections.Generic.ICollection tokens) => throw null; + protected Antlr.Runtime.RecognizerSharedState state; public virtual string[] TokenNames { get => throw null; } - public System.IO.TextWriter TraceDestination { get => throw null; set => throw null; } + public virtual System.Collections.Generic.List ToStrings(System.Collections.Generic.ICollection tokens) => throw null; + public System.IO.TextWriter TraceDestination { get => throw null; set { } } public virtual void TraceIn(string ruleName, int ruleIndex, object inputSymbol) => throw null; public virtual void TraceOut(string ruleName, int ruleIndex, object inputSymbol) => throw null; - protected internal Antlr.Runtime.RecognizerSharedState state; } - - // Generated from `Antlr.Runtime.BitSet` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class BitSet : System.ICloneable + public sealed class BitSet { public void Add(int el) => throw null; - public BitSet(int nbits) => throw null; - public BitSet(System.UInt64[] bits) => throw null; - public BitSet(System.Collections.Generic.IEnumerable items) => throw null; - public BitSet() => throw null; public object Clone() => throw null; + public BitSet() => throw null; + public BitSet(ulong[] bits) => throw null; + public BitSet(System.Collections.Generic.IEnumerable items) => throw null; + public BitSet(int nbits) => throw null; public override bool Equals(object other) => throw null; public override int GetHashCode() => throw null; public void GrowToInclude(int bit) => throw null; @@ -151,42 +140,42 @@ namespace Antlr public bool Member(int el) => throw null; public int NumBits() => throw null; public static Antlr.Runtime.BitSet Of(int el) => throw null; - public static Antlr.Runtime.BitSet Of(int a, int b, int c, int d) => throw null; - public static Antlr.Runtime.BitSet Of(int a, int b, int c) => throw null; public static Antlr.Runtime.BitSet Of(int a, int b) => throw null; + public static Antlr.Runtime.BitSet Of(int a, int b, int c) => throw null; + public static Antlr.Runtime.BitSet Of(int a, int b, int c, int d) => throw null; public Antlr.Runtime.BitSet Or(Antlr.Runtime.BitSet a) => throw null; public void OrInPlace(Antlr.Runtime.BitSet a) => throw null; public void Remove(int el) => throw null; public int Size() => throw null; public int[] ToArray() => throw null; - public string ToString(string[] tokenNames) => throw null; public override string ToString() => throw null; + public string ToString(string[] tokenNames) => throw null; } - - // Generated from `Antlr.Runtime.BufferedTokenStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class BufferedTokenStream : Antlr.Runtime.ITokenStreamInformation, Antlr.Runtime.ITokenStream, Antlr.Runtime.IIntStream + public class BufferedTokenStream : Antlr.Runtime.ITokenStream, Antlr.Runtime.IIntStream, Antlr.Runtime.ITokenStreamInformation { - public BufferedTokenStream(Antlr.Runtime.ITokenSource tokenSource) => throw null; - public BufferedTokenStream() => throw null; + protected int _p; + protected System.Collections.Generic.List _tokens; public virtual void Consume() => throw null; public virtual int Count { get => throw null; } + public BufferedTokenStream() => throw null; + public BufferedTokenStream(Antlr.Runtime.ITokenSource tokenSource) => throw null; protected virtual void Fetch(int n) => throw null; public virtual void Fill() => throw null; public virtual Antlr.Runtime.IToken Get(int i) => throw null; - public virtual System.Collections.Generic.List GetTokens(int start, int stop, int ttype) => throw null; - public virtual System.Collections.Generic.List GetTokens(int start, int stop, System.Collections.Generic.IEnumerable types) => throw null; - public virtual System.Collections.Generic.List GetTokens(int start, int stop, Antlr.Runtime.BitSet types) => throw null; - public virtual System.Collections.Generic.List GetTokens(int start, int stop) => throw null; public virtual System.Collections.Generic.List GetTokens() => throw null; + public virtual System.Collections.Generic.List GetTokens(int start, int stop) => throw null; + public virtual System.Collections.Generic.List GetTokens(int start, int stop, Antlr.Runtime.BitSet types) => throw null; + public virtual System.Collections.Generic.List GetTokens(int start, int stop, System.Collections.Generic.IEnumerable types) => throw null; + public virtual System.Collections.Generic.List GetTokens(int start, int stop, int ttype) => throw null; public virtual int Index { get => throw null; } public virtual int LA(int i) => throw null; - protected virtual Antlr.Runtime.IToken LB(int k) => throw null; - public virtual Antlr.Runtime.IToken LT(int k) => throw null; public virtual Antlr.Runtime.IToken LastRealToken { get => throw null; } public virtual Antlr.Runtime.IToken LastToken { get => throw null; } + protected virtual Antlr.Runtime.IToken LB(int k) => throw null; + public virtual Antlr.Runtime.IToken LT(int k) => throw null; public virtual int Mark() => throw null; public virtual int MaxLookBehind { get => throw null; } - public virtual int Range { get => throw null; set => throw null; } + public virtual int Range { get => throw null; set { } } public virtual void Release(int marker) => throw null; public virtual void Reset() => throw null; public virtual void Rewind(int marker) => throw null; @@ -195,642 +184,74 @@ namespace Antlr protected virtual void Setup() => throw null; public virtual string SourceName { get => throw null; } protected virtual void Sync(int i) => throw null; + public virtual Antlr.Runtime.ITokenSource TokenSource { get => throw null; set { } } + public override string ToString() => throw null; public virtual string ToString(int start, int stop) => throw null; public virtual string ToString(Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop) => throw null; - public override string ToString() => throw null; - public virtual Antlr.Runtime.ITokenSource TokenSource { get => throw null; set => throw null; } - protected int _p; - protected System.Collections.Generic.List _tokens; } - - // Generated from `Antlr.Runtime.CharStreamConstants` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public static class CharStreamConstants { - public const int EndOfFile = default; + public static int EndOfFile; } - - // Generated from `Antlr.Runtime.CharStreamState` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class CharStreamState { - public CharStreamState() => throw null; public int charPositionInLine; + public CharStreamState() => throw null; public int line; public int p; } - - // Generated from `Antlr.Runtime.ClassicToken` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class ClassicToken : Antlr.Runtime.IToken { - public int Channel { get => throw null; set => throw null; } - public int CharPositionInLine { get => throw null; set => throw null; } - public ClassicToken(int type, string text, int channel) => throw null; - public ClassicToken(int type, string text) => throw null; + public int Channel { get => throw null; set { } } + public int CharPositionInLine { get => throw null; set { } } public ClassicToken(int type) => throw null; public ClassicToken(Antlr.Runtime.IToken oldToken) => throw null; - public Antlr.Runtime.ICharStream InputStream { get => throw null; set => throw null; } - public int Line { get => throw null; set => throw null; } - public int StartIndex { get => throw null; set => throw null; } - public int StopIndex { get => throw null; set => throw null; } - public string Text { get => throw null; set => throw null; } + public ClassicToken(int type, string text) => throw null; + public ClassicToken(int type, string text, int channel) => throw null; + public Antlr.Runtime.ICharStream InputStream { get => throw null; set { } } + public int Line { get => throw null; set { } } + public int StartIndex { get => throw null; set { } } + public int StopIndex { get => throw null; set { } } + public string Text { get => throw null; set { } } + public int TokenIndex { get => throw null; set { } } public override string ToString() => throw null; - public int TokenIndex { get => throw null; set => throw null; } - public int Type { get => throw null; set => throw null; } + public int Type { get => throw null; set { } } } - - // Generated from `Antlr.Runtime.CommonToken` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class CommonToken : Antlr.Runtime.IToken { - public int Channel { get => throw null; set => throw null; } - public int CharPositionInLine { get => throw null; set => throw null; } - public CommonToken(int type, string text) => throw null; - public CommonToken(int type) => throw null; - public CommonToken(Antlr.Runtime.IToken oldToken) => throw null; - public CommonToken(Antlr.Runtime.ICharStream input, int type, int channel, int start, int stop) => throw null; + public int Channel { get => throw null; set { } } + public int CharPositionInLine { get => throw null; set { } } public CommonToken() => throw null; - public Antlr.Runtime.ICharStream InputStream { get => throw null; set => throw null; } - public int Line { get => throw null; set => throw null; } - public int StartIndex { get => throw null; set => throw null; } - public int StopIndex { get => throw null; set => throw null; } - public string Text { get => throw null; set => throw null; } + public CommonToken(int type) => throw null; + public CommonToken(Antlr.Runtime.ICharStream input, int type, int channel, int start, int stop) => throw null; + public CommonToken(int type, string text) => throw null; + public CommonToken(Antlr.Runtime.IToken oldToken) => throw null; + public Antlr.Runtime.ICharStream InputStream { get => throw null; set { } } + public int Line { get => throw null; set { } } + public int StartIndex { get => throw null; set { } } + public int StopIndex { get => throw null; set { } } + public string Text { get => throw null; set { } } + public int TokenIndex { get => throw null; set { } } public override string ToString() => throw null; - public int TokenIndex { get => throw null; set => throw null; } - public int Type { get => throw null; set => throw null; } + public int Type { get => throw null; set { } } } - - // Generated from `Antlr.Runtime.CommonTokenStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class CommonTokenStream : Antlr.Runtime.BufferedTokenStream { public int Channel { get => throw null; } - public CommonTokenStream(Antlr.Runtime.ITokenSource tokenSource, int channel) => throw null; - public CommonTokenStream(Antlr.Runtime.ITokenSource tokenSource) => throw null; - public CommonTokenStream() => throw null; public override void Consume() => throw null; + public CommonTokenStream() => throw null; + public CommonTokenStream(Antlr.Runtime.ITokenSource tokenSource) => throw null; + public CommonTokenStream(Antlr.Runtime.ITokenSource tokenSource, int channel) => throw null; protected override Antlr.Runtime.IToken LB(int k) => throw null; public override Antlr.Runtime.IToken LT(int k) => throw null; public override void Reset() => throw null; protected override void Setup() => throw null; protected virtual int SkipOffTokenChannels(int i) => throw null; protected virtual int SkipOffTokenChannelsReverse(int i) => throw null; - public override Antlr.Runtime.ITokenSource TokenSource { get => throw null; set => throw null; } + public override Antlr.Runtime.ITokenSource TokenSource { get => throw null; set { } } } - - // Generated from `Antlr.Runtime.DFA` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class DFA - { - public DFA(Antlr.Runtime.SpecialStateTransitionHandler specialStateTransition) => throw null; - public DFA() => throw null; - protected virtual void DebugRecognitionException(Antlr.Runtime.RecognitionException ex) => throw null; - public virtual string Description { get => throw null; } - public virtual void Error(Antlr.Runtime.NoViableAltException nvae) => throw null; - protected virtual void NoViableAlt(int s, Antlr.Runtime.IIntStream input) => throw null; - public virtual int Predict(Antlr.Runtime.IIntStream input) => throw null; - public Antlr.Runtime.SpecialStateTransitionHandler SpecialStateTransition { get => throw null; set => throw null; } - public static System.Int16[] UnpackEncodedString(string encodedString) => throw null; - public static System.Char[] UnpackEncodedStringToUnsignedChars(string encodedString) => throw null; - protected System.Int16[] accept; - public bool debug; - protected int decisionNumber; - protected System.Int16[] eof; - protected System.Int16[] eot; - protected System.Char[] max; - protected System.Char[] min; - protected Antlr.Runtime.BaseRecognizer recognizer; - protected System.Int16[] special; - protected System.Int16[][] transition; - } - - // Generated from `Antlr.Runtime.EarlyExitException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class EarlyExitException : Antlr.Runtime.RecognitionException - { - public int DecisionNumber { get => throw null; } - public EarlyExitException(string message, int decisionNumber, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; - public EarlyExitException(string message, int decisionNumber, Antlr.Runtime.IIntStream input) => throw null; - public EarlyExitException(string message, System.Exception innerException) => throw null; - public EarlyExitException(string message) => throw null; - public EarlyExitException(int decisionNumber, Antlr.Runtime.IIntStream input) => throw null; - public EarlyExitException() => throw null; - } - - // Generated from `Antlr.Runtime.FailedPredicateException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class FailedPredicateException : Antlr.Runtime.RecognitionException - { - public FailedPredicateException(string message, System.Exception innerException) => throw null; - public FailedPredicateException(string message, Antlr.Runtime.IIntStream input, string ruleName, string predicateText, System.Exception innerException) => throw null; - public FailedPredicateException(string message, Antlr.Runtime.IIntStream input, string ruleName, string predicateText) => throw null; - public FailedPredicateException(string message) => throw null; - public FailedPredicateException(Antlr.Runtime.IIntStream input, string ruleName, string predicateText) => throw null; - public FailedPredicateException() => throw null; - public string PredicateText { get => throw null; } - public string RuleName { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `Antlr.Runtime.GrammarRuleAttribute` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class GrammarRuleAttribute : System.Attribute - { - public GrammarRuleAttribute(string name) => throw null; - public string Name { get => throw null; } - } - - // Generated from `Antlr.Runtime.IAstRuleReturnScope` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface IAstRuleReturnScope : Antlr.Runtime.IRuleReturnScope - { - object Tree { get; } - } - - // Generated from `Antlr.Runtime.IAstRuleReturnScope<>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface IAstRuleReturnScope : Antlr.Runtime.IRuleReturnScope, Antlr.Runtime.IAstRuleReturnScope - { - TAstLabel Tree { get; } - } - - // Generated from `Antlr.Runtime.ICharStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface ICharStream : Antlr.Runtime.IIntStream - { - int CharPositionInLine { get; set; } - int LT(int i); - int Line { get; set; } - string Substring(int start, int length); - } - - // Generated from `Antlr.Runtime.IIntStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface IIntStream - { - void Consume(); - int Count { get; } - int Index { get; } - int LA(int i); - int Mark(); - void Release(int marker); - void Rewind(int marker); - void Rewind(); - void Seek(int index); - string SourceName { get; } - } - - // Generated from `Antlr.Runtime.IRuleReturnScope` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface IRuleReturnScope - { - object Start { get; } - object Stop { get; } - } - - // Generated from `Antlr.Runtime.IRuleReturnScope<>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface IRuleReturnScope : Antlr.Runtime.IRuleReturnScope - { - TLabel Start { get; } - TLabel Stop { get; } - } - - // Generated from `Antlr.Runtime.ITemplateRuleReturnScope` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface ITemplateRuleReturnScope - { - object Template { get; } - } - - // Generated from `Antlr.Runtime.ITemplateRuleReturnScope<>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface ITemplateRuleReturnScope : Antlr.Runtime.ITemplateRuleReturnScope - { - TTemplate Template { get; } - } - - // Generated from `Antlr.Runtime.IToken` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface IToken - { - int Channel { get; set; } - int CharPositionInLine { get; set; } - Antlr.Runtime.ICharStream InputStream { get; set; } - int Line { get; set; } - int StartIndex { get; set; } - int StopIndex { get; set; } - string Text { get; set; } - int TokenIndex { get; set; } - int Type { get; set; } - } - - // Generated from `Antlr.Runtime.ITokenSource` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface ITokenSource - { - Antlr.Runtime.IToken NextToken(); - string SourceName { get; } - string[] TokenNames { get; } - } - - // Generated from `Antlr.Runtime.ITokenStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface ITokenStream : Antlr.Runtime.IIntStream - { - Antlr.Runtime.IToken Get(int i); - Antlr.Runtime.IToken LT(int k); - int Range { get; } - string ToString(int start, int stop); - string ToString(Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop); - Antlr.Runtime.ITokenSource TokenSource { get; } - } - - // Generated from `Antlr.Runtime.ITokenStreamInformation` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public interface ITokenStreamInformation - { - Antlr.Runtime.IToken LastRealToken { get; } - Antlr.Runtime.IToken LastToken { get; } - int MaxLookBehind { get; } - } - - // Generated from `Antlr.Runtime.LegacyCommonTokenStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class LegacyCommonTokenStream : Antlr.Runtime.ITokenStream, Antlr.Runtime.IIntStream - { - public virtual void Consume() => throw null; - public virtual int Count { get => throw null; } - public virtual void DiscardTokenType(int ttype) => throw null; - public virtual void FillBuffer() => throw null; - public virtual Antlr.Runtime.IToken Get(int i) => throw null; - public virtual System.Collections.Generic.IList GetTokens(int start, int stop, int ttype) => throw null; - public virtual System.Collections.Generic.IList GetTokens(int start, int stop, System.Collections.Generic.IList types) => throw null; - public virtual System.Collections.Generic.IList GetTokens(int start, int stop, Antlr.Runtime.BitSet types) => throw null; - public virtual System.Collections.Generic.IList GetTokens(int start, int stop) => throw null; - public virtual System.Collections.Generic.IList GetTokens() => throw null; - public virtual int Index { get => throw null; } - public virtual int LA(int i) => throw null; - protected virtual Antlr.Runtime.IToken LB(int k) => throw null; - public virtual Antlr.Runtime.IToken LT(int k) => throw null; - public LegacyCommonTokenStream(Antlr.Runtime.ITokenSource tokenSource, int channel) => throw null; - public LegacyCommonTokenStream(Antlr.Runtime.ITokenSource tokenSource) => throw null; - public LegacyCommonTokenStream() => throw null; - public virtual int Mark() => throw null; - public virtual int Range { get => throw null; set => throw null; } - public virtual void Release(int marker) => throw null; - public virtual void Reset() => throw null; - public virtual void Rewind(int marker) => throw null; - public virtual void Rewind() => throw null; - public virtual void Seek(int index) => throw null; - public virtual void SetDiscardOffChannelTokens(bool discardOffChannelTokens) => throw null; - public virtual void SetTokenSource(Antlr.Runtime.ITokenSource tokenSource) => throw null; - public virtual void SetTokenTypeChannel(int ttype, int channel) => throw null; - protected virtual int SkipOffTokenChannels(int i) => throw null; - protected virtual int SkipOffTokenChannelsReverse(int i) => throw null; - public virtual string SourceName { get => throw null; } - public virtual string ToString(int start, int stop) => throw null; - public virtual string ToString(Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop) => throw null; - public override string ToString() => throw null; - public virtual Antlr.Runtime.ITokenSource TokenSource { get => throw null; } - protected int channel; - protected System.Collections.Generic.IDictionary channelOverrideMap; - protected bool discardOffChannelTokens; - protected System.Collections.Generic.List discardSet; - protected int lastMarker; - protected int p; - protected System.Collections.Generic.List tokens; - } - - // Generated from `Antlr.Runtime.Lexer` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public abstract class Lexer : Antlr.Runtime.BaseRecognizer, Antlr.Runtime.ITokenSource - { - public virtual int CharIndex { get => throw null; } - public int CharPositionInLine { get => throw null; set => throw null; } - public virtual Antlr.Runtime.ICharStream CharStream { get => throw null; set => throw null; } - public virtual void Emit(Antlr.Runtime.IToken token) => throw null; - public virtual Antlr.Runtime.IToken Emit() => throw null; - public virtual string GetCharErrorDisplay(int c) => throw null; - public virtual Antlr.Runtime.IToken GetEndOfFileToken() => throw null; - public override string GetErrorMessage(Antlr.Runtime.RecognitionException e, string[] tokenNames) => throw null; - public Lexer(Antlr.Runtime.ICharStream input, Antlr.Runtime.RecognizerSharedState state) => throw null; - public Lexer(Antlr.Runtime.ICharStream input) => throw null; - public Lexer() => throw null; - public int Line { get => throw null; set => throw null; } - public virtual void Match(string s) => throw null; - public virtual void Match(int c) => throw null; - public virtual void MatchAny() => throw null; - public virtual void MatchRange(int a, int b) => throw null; - public virtual Antlr.Runtime.IToken NextToken() => throw null; - protected virtual void ParseNextToken() => throw null; - public virtual void Recover(Antlr.Runtime.RecognitionException re) => throw null; - public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null; - public override void Reset() => throw null; - public virtual void Skip() => throw null; - public override string SourceName { get => throw null; } - public string Text { get => throw null; set => throw null; } - public virtual void TraceIn(string ruleName, int ruleIndex) => throw null; - public virtual void TraceOut(string ruleName, int ruleIndex) => throw null; - protected Antlr.Runtime.ICharStream input; - public abstract void mTokens(); - } - - // Generated from `Antlr.Runtime.MismatchedNotSetException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class MismatchedNotSetException : Antlr.Runtime.MismatchedSetException - { - public MismatchedNotSetException(string message, System.Exception innerException) => throw null; - public MismatchedNotSetException(string message, Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; - public MismatchedNotSetException(string message, Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input) => throw null; - public MismatchedNotSetException(string message) => throw null; - public MismatchedNotSetException(Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input) => throw null; - public MismatchedNotSetException() => throw null; - public override string ToString() => throw null; - } - - // Generated from `Antlr.Runtime.MismatchedRangeException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class MismatchedRangeException : Antlr.Runtime.RecognitionException - { - public int A { get => throw null; } - public int B { get => throw null; } - public MismatchedRangeException(string message, int a, int b, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; - public MismatchedRangeException(string message, int a, int b, Antlr.Runtime.IIntStream input) => throw null; - public MismatchedRangeException(string message, System.Exception innerException) => throw null; - public MismatchedRangeException(string message) => throw null; - public MismatchedRangeException(int a, int b, Antlr.Runtime.IIntStream input) => throw null; - public MismatchedRangeException() => throw null; - public override string ToString() => throw null; - } - - // Generated from `Antlr.Runtime.MismatchedSetException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class MismatchedSetException : Antlr.Runtime.RecognitionException - { - public Antlr.Runtime.BitSet Expecting { get => throw null; } - public MismatchedSetException(string message, System.Exception innerException) => throw null; - public MismatchedSetException(string message, Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; - public MismatchedSetException(string message, Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input) => throw null; - public MismatchedSetException(string message) => throw null; - public MismatchedSetException(Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input) => throw null; - public MismatchedSetException() => throw null; - public override string ToString() => throw null; - } - - // Generated from `Antlr.Runtime.MismatchedTokenException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class MismatchedTokenException : Antlr.Runtime.RecognitionException - { - public int Expecting { get => throw null; } - public MismatchedTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames, System.Exception innerException) => throw null; - public MismatchedTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames) => throw null; - public MismatchedTokenException(string message, System.Exception innerException) => throw null; - public MismatchedTokenException(string message) => throw null; - public MismatchedTokenException(int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames) => throw null; - public MismatchedTokenException(int expecting, Antlr.Runtime.IIntStream input) => throw null; - public MismatchedTokenException() => throw null; - public override string ToString() => throw null; - public System.Collections.ObjectModel.ReadOnlyCollection TokenNames { get => throw null; } - } - - // Generated from `Antlr.Runtime.MismatchedTreeNodeException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class MismatchedTreeNodeException : Antlr.Runtime.RecognitionException - { - public int Expecting { get => throw null; } - public MismatchedTreeNodeException(string message, int expecting, Antlr.Runtime.Tree.ITreeNodeStream input, System.Exception innerException) => throw null; - public MismatchedTreeNodeException(string message, int expecting, Antlr.Runtime.Tree.ITreeNodeStream input) => throw null; - public MismatchedTreeNodeException(string message, System.Exception innerException) => throw null; - public MismatchedTreeNodeException(string message) => throw null; - public MismatchedTreeNodeException(int expecting, Antlr.Runtime.Tree.ITreeNodeStream input) => throw null; - public MismatchedTreeNodeException() => throw null; - public override string ToString() => throw null; - } - - // Generated from `Antlr.Runtime.MissingTokenException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class MissingTokenException : Antlr.Runtime.MismatchedTokenException - { - public MissingTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, object inserted, System.Collections.Generic.IList tokenNames, System.Exception innerException) => throw null; - public MissingTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, object inserted, System.Collections.Generic.IList tokenNames) => throw null; - public MissingTokenException(string message, System.Exception innerException) => throw null; - public MissingTokenException(string message) => throw null; - public MissingTokenException(int expecting, Antlr.Runtime.IIntStream input, object inserted, System.Collections.Generic.IList tokenNames) => throw null; - public MissingTokenException(int expecting, Antlr.Runtime.IIntStream input, object inserted) => throw null; - public MissingTokenException() => throw null; - public virtual int MissingType { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `Antlr.Runtime.NoViableAltException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class NoViableAltException : Antlr.Runtime.RecognitionException - { - public int DecisionNumber { get => throw null; } - public string GrammarDecisionDescription { get => throw null; } - public NoViableAltException(string message, string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input, int k, System.Exception innerException) => throw null; - public NoViableAltException(string message, string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input, int k) => throw null; - public NoViableAltException(string message, string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; - public NoViableAltException(string message, string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input) => throw null; - public NoViableAltException(string message, string grammarDecisionDescription, System.Exception innerException) => throw null; - public NoViableAltException(string message, string grammarDecisionDescription) => throw null; - public NoViableAltException(string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input, int k) => throw null; - public NoViableAltException(string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input) => throw null; - public NoViableAltException(string grammarDecisionDescription) => throw null; - public NoViableAltException() => throw null; - public int StateNumber { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `Antlr.Runtime.Parser` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class Parser : Antlr.Runtime.BaseRecognizer - { - protected override object GetCurrentInputSymbol(Antlr.Runtime.IIntStream input) => throw null; - protected override object GetMissingSymbol(Antlr.Runtime.IIntStream input, Antlr.Runtime.RecognitionException e, int expectedTokenType, Antlr.Runtime.BitSet follow) => throw null; - public Parser(Antlr.Runtime.ITokenStream input, Antlr.Runtime.RecognizerSharedState state) => throw null; - public Parser(Antlr.Runtime.ITokenStream input) => throw null; - public override void Reset() => throw null; - public override string SourceName { get => throw null; } - public virtual Antlr.Runtime.ITokenStream TokenStream { get => throw null; set => throw null; } - public virtual void TraceIn(string ruleName, int ruleIndex) => throw null; - public virtual void TraceOut(string ruleName, int ruleIndex) => throw null; - public Antlr.Runtime.ITokenStream input; - } - - // Generated from `Antlr.Runtime.ParserRuleReturnScope<>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class ParserRuleReturnScope : Antlr.Runtime.IRuleReturnScope, Antlr.Runtime.IRuleReturnScope - { - public ParserRuleReturnScope() => throw null; - public TToken Start { get => throw null; set => throw null; } - object Antlr.Runtime.IRuleReturnScope.Start { get => throw null; } - public TToken Stop { get => throw null; set => throw null; } - object Antlr.Runtime.IRuleReturnScope.Stop { get => throw null; } - } - - // Generated from `Antlr.Runtime.RecognitionException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class RecognitionException : System.Exception - { - public bool ApproximateLineInfo { get => throw null; set => throw null; } - public int CharPositionInLine { get => throw null; set => throw null; } - public int Character { get => throw null; set => throw null; } - protected virtual void ExtractInformationFromTreeNodeStream(Antlr.Runtime.Tree.ITreeNodeStream input, int k) => throw null; - protected virtual void ExtractInformationFromTreeNodeStream(Antlr.Runtime.Tree.ITreeNodeStream input) => throw null; - public int Index { get => throw null; set => throw null; } - public Antlr.Runtime.IIntStream Input { get => throw null; set => throw null; } - public int Line { get => throw null; set => throw null; } - public int Lookahead { get => throw null; } - public object Node { get => throw null; set => throw null; } - public RecognitionException(string message, System.Exception innerException) => throw null; - public RecognitionException(string message, Antlr.Runtime.IIntStream input, int k, System.Exception innerException) => throw null; - public RecognitionException(string message, Antlr.Runtime.IIntStream input, int k) => throw null; - public RecognitionException(string message, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; - public RecognitionException(string message, Antlr.Runtime.IIntStream input) => throw null; - public RecognitionException(string message) => throw null; - public RecognitionException(Antlr.Runtime.IIntStream input, int k) => throw null; - public RecognitionException(Antlr.Runtime.IIntStream input) => throw null; - public RecognitionException() => throw null; - public Antlr.Runtime.IToken Token { get => throw null; set => throw null; } - public virtual int UnexpectedType { get => throw null; } - } - - // Generated from `Antlr.Runtime.RecognizerSharedState` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class RecognizerSharedState - { - public RecognizerSharedState(Antlr.Runtime.RecognizerSharedState state) => throw null; - public RecognizerSharedState() => throw null; - public int _fsp; - public int backtracking; - public int channel; - public bool errorRecovery; - public bool failed; - public Antlr.Runtime.BitSet[] following; - public int lastErrorIndex; - public System.Collections.Generic.IDictionary[] ruleMemo; - public int syntaxErrors; - public string text; - public Antlr.Runtime.IToken token; - public int tokenStartCharIndex; - public int tokenStartCharPositionInLine; - public int tokenStartLine; - public int type; - } - - // Generated from `Antlr.Runtime.SpecialStateTransitionHandler` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public delegate int SpecialStateTransitionHandler(Antlr.Runtime.DFA dfa, int s, Antlr.Runtime.IIntStream input); - - // Generated from `Antlr.Runtime.TemplateParserRuleReturnScope<,>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class TemplateParserRuleReturnScope : Antlr.Runtime.ParserRuleReturnScope, Antlr.Runtime.ITemplateRuleReturnScope, Antlr.Runtime.ITemplateRuleReturnScope - { - public TTemplate Template { get => throw null; set => throw null; } - object Antlr.Runtime.ITemplateRuleReturnScope.Template { get => throw null; } - public TemplateParserRuleReturnScope() => throw null; - } - - // Generated from `Antlr.Runtime.TokenChannels` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public static class TokenChannels - { - public const int Default = default; - public const int Hidden = default; - } - - // Generated from `Antlr.Runtime.TokenRewriteStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class TokenRewriteStream : Antlr.Runtime.CommonTokenStream - { - protected virtual string CatOpText(object a, object b) => throw null; - public const string DEFAULT_PROGRAM_NAME = default; - public virtual void Delete(string programName, int from, int to) => throw null; - public virtual void Delete(string programName, Antlr.Runtime.IToken from, Antlr.Runtime.IToken to) => throw null; - public virtual void Delete(int index) => throw null; - public virtual void Delete(int from, int to) => throw null; - public virtual void Delete(Antlr.Runtime.IToken indexT) => throw null; - public virtual void Delete(Antlr.Runtime.IToken from, Antlr.Runtime.IToken to) => throw null; - public virtual void DeleteProgram(string programName) => throw null; - public virtual void DeleteProgram() => throw null; - protected virtual System.Collections.Generic.IList GetKindOfOps(System.Collections.Generic.IList rewrites, System.Type kind, int before) => throw null; - protected virtual System.Collections.Generic.IList GetKindOfOps(System.Collections.Generic.IList rewrites, System.Type kind) => throw null; - public virtual int GetLastRewriteTokenIndex() => throw null; - protected virtual int GetLastRewriteTokenIndex(string programName) => throw null; - protected virtual System.Collections.Generic.IList GetProgram(string name) => throw null; - protected void Init() => throw null; - public virtual void InsertAfter(string programName, int index, object text) => throw null; - public virtual void InsertAfter(string programName, Antlr.Runtime.IToken t, object text) => throw null; - public virtual void InsertAfter(int index, object text) => throw null; - public virtual void InsertAfter(Antlr.Runtime.IToken t, object text) => throw null; - public virtual void InsertBefore(string programName, int index, object text) => throw null; - public virtual void InsertBefore(string programName, Antlr.Runtime.IToken t, object text) => throw null; - public virtual void InsertBefore(int index, object text) => throw null; - public virtual void InsertBefore(Antlr.Runtime.IToken t, object text) => throw null; - public const int MIN_TOKEN_INDEX = default; - public const int PROGRAM_INIT_SIZE = default; - protected virtual System.Collections.Generic.IDictionary ReduceToSingleOperationPerIndex(System.Collections.Generic.IList rewrites) => throw null; - public virtual void Replace(string programName, int from, int to, object text) => throw null; - public virtual void Replace(string programName, Antlr.Runtime.IToken from, Antlr.Runtime.IToken to, object text) => throw null; - public virtual void Replace(int index, object text) => throw null; - public virtual void Replace(int from, int to, object text) => throw null; - public virtual void Replace(Antlr.Runtime.IToken indexT, object text) => throw null; - public virtual void Replace(Antlr.Runtime.IToken from, Antlr.Runtime.IToken to, object text) => throw null; - // Generated from `Antlr.Runtime.TokenRewriteStream+RewriteOperation` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - protected class RewriteOperation - { - public virtual int Execute(System.Text.StringBuilder buf) => throw null; - protected RewriteOperation(Antlr.Runtime.TokenRewriteStream stream, int index, object text) => throw null; - protected RewriteOperation(Antlr.Runtime.TokenRewriteStream stream, int index) => throw null; - public override string ToString() => throw null; - public int index; - public int instructionIndex; - protected Antlr.Runtime.TokenRewriteStream stream; - public object text; - } - - - public virtual void Rollback(string programName, int instructionIndex) => throw null; - public virtual void Rollback(int instructionIndex) => throw null; - protected virtual void SetLastRewriteTokenIndex(string programName, int i) => throw null; - public virtual string ToDebugString(int start, int end) => throw null; - public virtual string ToDebugString() => throw null; - public virtual string ToOriginalString(int start, int end) => throw null; - public virtual string ToOriginalString() => throw null; - public virtual string ToString(string programName, int start, int end) => throw null; - public virtual string ToString(string programName) => throw null; - public override string ToString(int start, int end) => throw null; - public override string ToString() => throw null; - public TokenRewriteStream(Antlr.Runtime.ITokenSource tokenSource, int channel) => throw null; - public TokenRewriteStream(Antlr.Runtime.ITokenSource tokenSource) => throw null; - public TokenRewriteStream() => throw null; - protected System.Collections.Generic.IDictionary lastRewriteTokenIndexes; - protected System.Collections.Generic.IDictionary> programs; - } - - // Generated from `Antlr.Runtime.TokenTypes` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public static class TokenTypes - { - public const int Down = default; - public const int EndOfFile = default; - public const int EndOfRule = default; - public const int Invalid = default; - public const int Min = default; - public const int Up = default; - } - - // Generated from `Antlr.Runtime.Tokens` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public static class Tokens - { - public static Antlr.Runtime.IToken Skip; - } - - // Generated from `Antlr.Runtime.UnbufferedTokenStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class UnbufferedTokenStream : Antlr.Runtime.Misc.LookaheadStream, Antlr.Runtime.ITokenStreamInformation, Antlr.Runtime.ITokenStream, Antlr.Runtime.IIntStream - { - public override void Clear() => throw null; - public override void Consume() => throw null; - public Antlr.Runtime.IToken Get(int i) => throw null; - public override bool IsEndOfFile(Antlr.Runtime.IToken o) => throw null; - public int LA(int i) => throw null; - public Antlr.Runtime.IToken LastRealToken { get => throw null; } - public Antlr.Runtime.IToken LastToken { get => throw null; } - public override int Mark() => throw null; - public int MaxLookBehind { get => throw null; } - public override Antlr.Runtime.IToken NextElement() => throw null; - public override void Release(int marker) => throw null; - public string SourceName { get => throw null; } - public string ToString(int start, int stop) => throw null; - public string ToString(Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop) => throw null; - public Antlr.Runtime.ITokenSource TokenSource { get => throw null; } - public UnbufferedTokenStream(Antlr.Runtime.ITokenSource tokenSource) => throw null; - protected int channel; - protected int tokenIndex; - protected Antlr.Runtime.ITokenSource tokenSource; - } - - // Generated from `Antlr.Runtime.UnwantedTokenException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class UnwantedTokenException : Antlr.Runtime.MismatchedTokenException - { - public override string ToString() => throw null; - public virtual Antlr.Runtime.IToken UnexpectedToken { get => throw null; } - public UnwantedTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames, System.Exception innerException) => throw null; - public UnwantedTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames) => throw null; - public UnwantedTokenException(string message, System.Exception innerException) => throw null; - public UnwantedTokenException(string message) => throw null; - public UnwantedTokenException(int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames) => throw null; - public UnwantedTokenException(int expecting, Antlr.Runtime.IIntStream input) => throw null; - public UnwantedTokenException() => throw null; - } - namespace Debug { - // Generated from `Antlr.Runtime.Debug.IDebugEventListener` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public interface IDebugEventListener { void AddChild(object root, object child); @@ -854,9 +275,9 @@ namespace Antlr void ExitRule(string grammarFileName, string ruleName); void ExitSubRule(int decisionNumber); void Initialize(); - void LT(int i, object t); - void LT(int i, Antlr.Runtime.IToken t); void Location(int line, int pos); + void LT(int i, Antlr.Runtime.IToken t); + void LT(int i, object t); void Mark(int marker); void NilNode(object t); void RecognitionException(Antlr.Runtime.RecognitionException e); @@ -866,59 +287,251 @@ namespace Antlr void SetTokenBoundaries(object t, int tokenStartIndex, int tokenStopIndex); void Terminate(); } - + } + public class DFA + { + protected short[] accept; + public DFA() => throw null; + public DFA(Antlr.Runtime.SpecialStateTransitionHandler specialStateTransition) => throw null; + public bool debug; + protected virtual void DebugRecognitionException(Antlr.Runtime.RecognitionException ex) => throw null; + protected int decisionNumber; + public virtual string Description { get => throw null; } + protected short[] eof; + protected short[] eot; + public virtual void Error(Antlr.Runtime.NoViableAltException nvae) => throw null; + protected char[] max; + protected char[] min; + protected virtual void NoViableAlt(int s, Antlr.Runtime.IIntStream input) => throw null; + public virtual int Predict(Antlr.Runtime.IIntStream input) => throw null; + protected Antlr.Runtime.BaseRecognizer recognizer; + protected short[] special; + public Antlr.Runtime.SpecialStateTransitionHandler SpecialStateTransition { get => throw null; } + protected short[][] transition; + public static short[] UnpackEncodedString(string encodedString) => throw null; + public static char[] UnpackEncodedStringToUnsignedChars(string encodedString) => throw null; + } + public class EarlyExitException : Antlr.Runtime.RecognitionException + { + public EarlyExitException() => throw null; + public EarlyExitException(string message) => throw null; + public EarlyExitException(string message, System.Exception innerException) => throw null; + public EarlyExitException(int decisionNumber, Antlr.Runtime.IIntStream input) => throw null; + public EarlyExitException(string message, int decisionNumber, Antlr.Runtime.IIntStream input) => throw null; + public EarlyExitException(string message, int decisionNumber, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; + public int DecisionNumber { get => throw null; } + } + public class FailedPredicateException : Antlr.Runtime.RecognitionException + { + public FailedPredicateException() => throw null; + public FailedPredicateException(string message) => throw null; + public FailedPredicateException(string message, System.Exception innerException) => throw null; + public FailedPredicateException(Antlr.Runtime.IIntStream input, string ruleName, string predicateText) => throw null; + public FailedPredicateException(string message, Antlr.Runtime.IIntStream input, string ruleName, string predicateText) => throw null; + public FailedPredicateException(string message, Antlr.Runtime.IIntStream input, string ruleName, string predicateText, System.Exception innerException) => throw null; + public string PredicateText { get => throw null; } + public string RuleName { get => throw null; } + public override string ToString() => throw null; + } + public sealed class GrammarRuleAttribute : System.Attribute + { + public GrammarRuleAttribute(string name) => throw null; + public string Name { get => throw null; } + } + public interface IAstRuleReturnScope : Antlr.Runtime.IRuleReturnScope + { + object Tree { get; } + } + public interface IAstRuleReturnScope : Antlr.Runtime.IAstRuleReturnScope, Antlr.Runtime.IRuleReturnScope + { + TAstLabel Tree { get; } + } + public interface ICharStream : Antlr.Runtime.IIntStream + { + int CharPositionInLine { get; set; } + int Line { get; set; } + int LT(int i); + string Substring(int start, int length); + } + public interface IIntStream + { + void Consume(); + int Count { get; } + int Index { get; } + int LA(int i); + int Mark(); + void Release(int marker); + void Rewind(int marker); + void Rewind(); + void Seek(int index); + string SourceName { get; } + } + public interface IRuleReturnScope + { + object Start { get; } + object Stop { get; } + } + public interface IRuleReturnScope : Antlr.Runtime.IRuleReturnScope + { + TLabel Start { get; } + TLabel Stop { get; } + } + public interface ITemplateRuleReturnScope + { + object Template { get; } + } + public interface ITemplateRuleReturnScope : Antlr.Runtime.ITemplateRuleReturnScope + { + TTemplate Template { get; } + } + public interface IToken + { + int Channel { get; set; } + int CharPositionInLine { get; set; } + Antlr.Runtime.ICharStream InputStream { get; set; } + int Line { get; set; } + int StartIndex { get; set; } + int StopIndex { get; set; } + string Text { get; set; } + int TokenIndex { get; set; } + int Type { get; set; } + } + public interface ITokenSource + { + Antlr.Runtime.IToken NextToken(); + string SourceName { get; } + string[] TokenNames { get; } + } + public interface ITokenStream : Antlr.Runtime.IIntStream + { + Antlr.Runtime.IToken Get(int i); + Antlr.Runtime.IToken LT(int k); + int Range { get; } + Antlr.Runtime.ITokenSource TokenSource { get; } + string ToString(int start, int stop); + string ToString(Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop); + } + public interface ITokenStreamInformation + { + Antlr.Runtime.IToken LastRealToken { get; } + Antlr.Runtime.IToken LastToken { get; } + int MaxLookBehind { get; } + } + public class LegacyCommonTokenStream : Antlr.Runtime.ITokenStream, Antlr.Runtime.IIntStream + { + protected int channel; + protected System.Collections.Generic.IDictionary channelOverrideMap; + public virtual void Consume() => throw null; + public virtual int Count { get => throw null; } + public LegacyCommonTokenStream() => throw null; + public LegacyCommonTokenStream(Antlr.Runtime.ITokenSource tokenSource) => throw null; + public LegacyCommonTokenStream(Antlr.Runtime.ITokenSource tokenSource, int channel) => throw null; + protected bool discardOffChannelTokens; + protected System.Collections.Generic.List discardSet; + public virtual void DiscardTokenType(int ttype) => throw null; + public virtual void FillBuffer() => throw null; + public virtual Antlr.Runtime.IToken Get(int i) => throw null; + public virtual System.Collections.Generic.IList GetTokens() => throw null; + public virtual System.Collections.Generic.IList GetTokens(int start, int stop) => throw null; + public virtual System.Collections.Generic.IList GetTokens(int start, int stop, Antlr.Runtime.BitSet types) => throw null; + public virtual System.Collections.Generic.IList GetTokens(int start, int stop, System.Collections.Generic.IList types) => throw null; + public virtual System.Collections.Generic.IList GetTokens(int start, int stop, int ttype) => throw null; + public virtual int Index { get => throw null; } + public virtual int LA(int i) => throw null; + protected int lastMarker; + protected virtual Antlr.Runtime.IToken LB(int k) => throw null; + public virtual Antlr.Runtime.IToken LT(int k) => throw null; + public virtual int Mark() => throw null; + protected int p; + public virtual int Range { get => throw null; set { } } + public virtual void Release(int marker) => throw null; + public virtual void Reset() => throw null; + public virtual void Rewind(int marker) => throw null; + public virtual void Rewind() => throw null; + public virtual void Seek(int index) => throw null; + public virtual void SetDiscardOffChannelTokens(bool discardOffChannelTokens) => throw null; + public virtual void SetTokenSource(Antlr.Runtime.ITokenSource tokenSource) => throw null; + public virtual void SetTokenTypeChannel(int ttype, int channel) => throw null; + protected virtual int SkipOffTokenChannels(int i) => throw null; + protected virtual int SkipOffTokenChannelsReverse(int i) => throw null; + public virtual string SourceName { get => throw null; } + protected System.Collections.Generic.List tokens; + public virtual Antlr.Runtime.ITokenSource TokenSource { get => throw null; } + public override string ToString() => throw null; + public virtual string ToString(int start, int stop) => throw null; + public virtual string ToString(Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop) => throw null; + } + public abstract class Lexer : Antlr.Runtime.BaseRecognizer, Antlr.Runtime.ITokenSource + { + public virtual int CharIndex { get => throw null; } + public int CharPositionInLine { get => throw null; set { } } + public virtual Antlr.Runtime.ICharStream CharStream { get => throw null; set { } } + public Lexer() => throw null; + public Lexer(Antlr.Runtime.ICharStream input) => throw null; + public Lexer(Antlr.Runtime.ICharStream input, Antlr.Runtime.RecognizerSharedState state) => throw null; + public virtual void Emit(Antlr.Runtime.IToken token) => throw null; + public virtual Antlr.Runtime.IToken Emit() => throw null; + public virtual string GetCharErrorDisplay(int c) => throw null; + public virtual Antlr.Runtime.IToken GetEndOfFileToken() => throw null; + public override string GetErrorMessage(Antlr.Runtime.RecognitionException e, string[] tokenNames) => throw null; + protected Antlr.Runtime.ICharStream input; + public int Line { get => throw null; set { } } + public virtual void Match(string s) => throw null; + public virtual void Match(int c) => throw null; + public virtual void MatchAny() => throw null; + public virtual void MatchRange(int a, int b) => throw null; + public abstract void mTokens(); + public virtual Antlr.Runtime.IToken NextToken() => throw null; + protected virtual void ParseNextToken() => throw null; + public virtual void Recover(Antlr.Runtime.RecognitionException re) => throw null; + public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null; + public override void Reset() => throw null; + public virtual void Skip() => throw null; + public override string SourceName { get => throw null; } + public string Text { get => throw null; set { } } + public virtual void TraceIn(string ruleName, int ruleIndex) => throw null; + public virtual void TraceOut(string ruleName, int ruleIndex) => throw null; } namespace Misc { - // Generated from `Antlr.Runtime.Misc.Action` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public delegate void Action(); - - // Generated from `Antlr.Runtime.Misc.FastQueue<>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class FastQueue { public virtual void Clear() => throw null; public virtual int Count { get => throw null; } + public FastQueue() => throw null; public virtual T Dequeue() => throw null; public virtual void Enqueue(T o) => throw null; - public FastQueue() => throw null; - public virtual T this[int i] { get => throw null; } public virtual T Peek() => throw null; - public virtual int Range { get => throw null; set => throw null; } + public virtual int Range { get => throw null; set { } } + public virtual T this[int i] { get => throw null; } public override string ToString() => throw null; } - - // Generated from `Antlr.Runtime.Misc.Func<,>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public delegate TResult Func(T arg); - - // Generated from `Antlr.Runtime.Misc.Func<>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public delegate TResult Func(); - - // Generated from `Antlr.Runtime.Misc.ListStack<>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` + public delegate TResult Func(T arg); public class ListStack : System.Collections.Generic.List { public ListStack() => throw null; - public T Peek(int depth) => throw null; public T Peek() => throw null; + public T Peek(int depth) => throw null; public T Pop() => throw null; public void Push(T item) => throw null; public bool TryPeek(out T item) => throw null; public bool TryPeek(int depth, out T item) => throw null; public bool TryPop(out T item) => throw null; } - - // Generated from `Antlr.Runtime.Misc.LookaheadStream<>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public abstract class LookaheadStream : Antlr.Runtime.Misc.FastQueue where T : class { public virtual void Consume() => throw null; public override int Count { get => throw null; } + protected LookaheadStream() => throw null; public override T Dequeue() => throw null; - public T EndOfFile { get => throw null; set => throw null; } + public T EndOfFile { get => throw null; set { } } public virtual void Fill(int n) => throw null; public virtual int Index { get => throw null; } public abstract bool IsEndOfFile(T o); protected virtual T LB(int k) => throw null; public virtual T LT(int k) => throw null; - protected LookaheadStream() => throw null; public virtual int Mark() => throw null; public abstract T NextElement(); public T PreviousElement { get => throw null; } @@ -929,36 +542,271 @@ namespace Antlr public virtual void Seek(int index) => throw null; protected virtual void SyncAhead(int need) => throw null; } - + } + public class MismatchedNotSetException : Antlr.Runtime.MismatchedSetException + { + public MismatchedNotSetException() => throw null; + public MismatchedNotSetException(string message) => throw null; + public MismatchedNotSetException(string message, System.Exception innerException) => throw null; + public MismatchedNotSetException(Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input) => throw null; + public MismatchedNotSetException(string message, Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input) => throw null; + public MismatchedNotSetException(string message, Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; + public override string ToString() => throw null; + } + public class MismatchedRangeException : Antlr.Runtime.RecognitionException + { + public int A { get => throw null; } + public int B { get => throw null; } + public MismatchedRangeException() => throw null; + public MismatchedRangeException(string message) => throw null; + public MismatchedRangeException(string message, System.Exception innerException) => throw null; + public MismatchedRangeException(int a, int b, Antlr.Runtime.IIntStream input) => throw null; + public MismatchedRangeException(string message, int a, int b, Antlr.Runtime.IIntStream input) => throw null; + public MismatchedRangeException(string message, int a, int b, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; + public override string ToString() => throw null; + } + public class MismatchedSetException : Antlr.Runtime.RecognitionException + { + public MismatchedSetException() => throw null; + public MismatchedSetException(string message) => throw null; + public MismatchedSetException(string message, System.Exception innerException) => throw null; + public MismatchedSetException(Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input) => throw null; + public MismatchedSetException(string message, Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input) => throw null; + public MismatchedSetException(string message, Antlr.Runtime.BitSet expecting, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; + public Antlr.Runtime.BitSet Expecting { get => throw null; } + public override string ToString() => throw null; + } + public class MismatchedTokenException : Antlr.Runtime.RecognitionException + { + public MismatchedTokenException() => throw null; + public MismatchedTokenException(string message) => throw null; + public MismatchedTokenException(string message, System.Exception innerException) => throw null; + public MismatchedTokenException(int expecting, Antlr.Runtime.IIntStream input) => throw null; + public MismatchedTokenException(int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames) => throw null; + public MismatchedTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames) => throw null; + public MismatchedTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames, System.Exception innerException) => throw null; + public int Expecting { get => throw null; } + public System.Collections.ObjectModel.ReadOnlyCollection TokenNames { get => throw null; } + public override string ToString() => throw null; + } + public class MismatchedTreeNodeException : Antlr.Runtime.RecognitionException + { + public MismatchedTreeNodeException() => throw null; + public MismatchedTreeNodeException(string message) => throw null; + public MismatchedTreeNodeException(string message, System.Exception innerException) => throw null; + public MismatchedTreeNodeException(int expecting, Antlr.Runtime.Tree.ITreeNodeStream input) => throw null; + public MismatchedTreeNodeException(string message, int expecting, Antlr.Runtime.Tree.ITreeNodeStream input) => throw null; + public MismatchedTreeNodeException(string message, int expecting, Antlr.Runtime.Tree.ITreeNodeStream input, System.Exception innerException) => throw null; + public int Expecting { get => throw null; } + public override string ToString() => throw null; + } + public class MissingTokenException : Antlr.Runtime.MismatchedTokenException + { + public MissingTokenException() => throw null; + public MissingTokenException(string message) => throw null; + public MissingTokenException(string message, System.Exception innerException) => throw null; + public MissingTokenException(int expecting, Antlr.Runtime.IIntStream input, object inserted) => throw null; + public MissingTokenException(int expecting, Antlr.Runtime.IIntStream input, object inserted, System.Collections.Generic.IList tokenNames) => throw null; + public MissingTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, object inserted, System.Collections.Generic.IList tokenNames) => throw null; + public MissingTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, object inserted, System.Collections.Generic.IList tokenNames, System.Exception innerException) => throw null; + public virtual int MissingType { get => throw null; } + public override string ToString() => throw null; + } + public class NoViableAltException : Antlr.Runtime.RecognitionException + { + public NoViableAltException() => throw null; + public NoViableAltException(string grammarDecisionDescription) => throw null; + public NoViableAltException(string message, string grammarDecisionDescription) => throw null; + public NoViableAltException(string message, string grammarDecisionDescription, System.Exception innerException) => throw null; + public NoViableAltException(string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input) => throw null; + public NoViableAltException(string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input, int k) => throw null; + public NoViableAltException(string message, string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input) => throw null; + public NoViableAltException(string message, string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input, int k) => throw null; + public NoViableAltException(string message, string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; + public NoViableAltException(string message, string grammarDecisionDescription, int decisionNumber, int stateNumber, Antlr.Runtime.IIntStream input, int k, System.Exception innerException) => throw null; + public int DecisionNumber { get => throw null; } + public string GrammarDecisionDescription { get => throw null; } + public int StateNumber { get => throw null; } + public override string ToString() => throw null; + } + public class Parser : Antlr.Runtime.BaseRecognizer + { + public Parser(Antlr.Runtime.ITokenStream input) => throw null; + public Parser(Antlr.Runtime.ITokenStream input, Antlr.Runtime.RecognizerSharedState state) => throw null; + protected override object GetCurrentInputSymbol(Antlr.Runtime.IIntStream input) => throw null; + protected override object GetMissingSymbol(Antlr.Runtime.IIntStream input, Antlr.Runtime.RecognitionException e, int expectedTokenType, Antlr.Runtime.BitSet follow) => throw null; + public Antlr.Runtime.ITokenStream input; + public override void Reset() => throw null; + public override string SourceName { get => throw null; } + public virtual Antlr.Runtime.ITokenStream TokenStream { get => throw null; set { } } + public virtual void TraceIn(string ruleName, int ruleIndex) => throw null; + public virtual void TraceOut(string ruleName, int ruleIndex) => throw null; + } + public class ParserRuleReturnScope : Antlr.Runtime.IRuleReturnScope, Antlr.Runtime.IRuleReturnScope + { + public ParserRuleReturnScope() => throw null; + public TToken Start { get => throw null; set { } } + object Antlr.Runtime.IRuleReturnScope.Start { get => throw null; } + public TToken Stop { get => throw null; set { } } + object Antlr.Runtime.IRuleReturnScope.Stop { get => throw null; } + } + public class RecognitionException : System.Exception + { + public bool ApproximateLineInfo { get => throw null; set { } } + public int Character { get => throw null; set { } } + public int CharPositionInLine { get => throw null; set { } } + public RecognitionException() => throw null; + public RecognitionException(Antlr.Runtime.IIntStream input) => throw null; + public RecognitionException(Antlr.Runtime.IIntStream input, int k) => throw null; + public RecognitionException(string message) => throw null; + public RecognitionException(string message, Antlr.Runtime.IIntStream input) => throw null; + public RecognitionException(string message, Antlr.Runtime.IIntStream input, int k) => throw null; + public RecognitionException(string message, System.Exception innerException) => throw null; + public RecognitionException(string message, Antlr.Runtime.IIntStream input, System.Exception innerException) => throw null; + public RecognitionException(string message, Antlr.Runtime.IIntStream input, int k, System.Exception innerException) => throw null; + protected virtual void ExtractInformationFromTreeNodeStream(Antlr.Runtime.Tree.ITreeNodeStream input) => throw null; + protected virtual void ExtractInformationFromTreeNodeStream(Antlr.Runtime.Tree.ITreeNodeStream input, int k) => throw null; + public int Index { get => throw null; set { } } + public Antlr.Runtime.IIntStream Input { get => throw null; set { } } + public int Line { get => throw null; set { } } + public int Lookahead { get => throw null; } + public object Node { get => throw null; set { } } + public Antlr.Runtime.IToken Token { get => throw null; set { } } + public virtual int UnexpectedType { get => throw null; } + } + public class RecognizerSharedState + { + public int _fsp; + public int backtracking; + public int channel; + public RecognizerSharedState() => throw null; + public RecognizerSharedState(Antlr.Runtime.RecognizerSharedState state) => throw null; + public bool errorRecovery; + public bool failed; + public Antlr.Runtime.BitSet[] following; + public int lastErrorIndex; + public System.Collections.Generic.IDictionary[] ruleMemo; + public int syntaxErrors; + public string text; + public Antlr.Runtime.IToken token; + public int tokenStartCharIndex; + public int tokenStartCharPositionInLine; + public int tokenStartLine; + public int type; + } + public delegate int SpecialStateTransitionHandler(Antlr.Runtime.DFA dfa, int s, Antlr.Runtime.IIntStream input); + public class TemplateParserRuleReturnScope : Antlr.Runtime.ParserRuleReturnScope, Antlr.Runtime.ITemplateRuleReturnScope, Antlr.Runtime.ITemplateRuleReturnScope + { + public TemplateParserRuleReturnScope() => throw null; + public TTemplate Template { get => throw null; set { } } + object Antlr.Runtime.ITemplateRuleReturnScope.Template { get => throw null; } + } + public static class TokenChannels + { + public static int Default; + public static int Hidden; + } + public class TokenRewriteStream : Antlr.Runtime.CommonTokenStream + { + protected virtual string CatOpText(object a, object b) => throw null; + public TokenRewriteStream() => throw null; + public TokenRewriteStream(Antlr.Runtime.ITokenSource tokenSource) => throw null; + public TokenRewriteStream(Antlr.Runtime.ITokenSource tokenSource, int channel) => throw null; + public static string DEFAULT_PROGRAM_NAME; + public virtual void Delete(int index) => throw null; + public virtual void Delete(int from, int to) => throw null; + public virtual void Delete(Antlr.Runtime.IToken indexT) => throw null; + public virtual void Delete(Antlr.Runtime.IToken from, Antlr.Runtime.IToken to) => throw null; + public virtual void Delete(string programName, int from, int to) => throw null; + public virtual void Delete(string programName, Antlr.Runtime.IToken from, Antlr.Runtime.IToken to) => throw null; + public virtual void DeleteProgram() => throw null; + public virtual void DeleteProgram(string programName) => throw null; + protected virtual System.Collections.Generic.IList GetKindOfOps(System.Collections.Generic.IList rewrites, System.Type kind) => throw null; + protected virtual System.Collections.Generic.IList GetKindOfOps(System.Collections.Generic.IList rewrites, System.Type kind, int before) => throw null; + public virtual int GetLastRewriteTokenIndex() => throw null; + protected virtual int GetLastRewriteTokenIndex(string programName) => throw null; + protected virtual System.Collections.Generic.IList GetProgram(string name) => throw null; + protected void Init() => throw null; + public virtual void InsertAfter(Antlr.Runtime.IToken t, object text) => throw null; + public virtual void InsertAfter(int index, object text) => throw null; + public virtual void InsertAfter(string programName, Antlr.Runtime.IToken t, object text) => throw null; + public virtual void InsertAfter(string programName, int index, object text) => throw null; + public virtual void InsertBefore(Antlr.Runtime.IToken t, object text) => throw null; + public virtual void InsertBefore(int index, object text) => throw null; + public virtual void InsertBefore(string programName, Antlr.Runtime.IToken t, object text) => throw null; + public virtual void InsertBefore(string programName, int index, object text) => throw null; + protected System.Collections.Generic.IDictionary lastRewriteTokenIndexes; + public static int MIN_TOKEN_INDEX; + public static int PROGRAM_INIT_SIZE; + protected System.Collections.Generic.IDictionary> programs; + protected virtual System.Collections.Generic.IDictionary ReduceToSingleOperationPerIndex(System.Collections.Generic.IList rewrites) => throw null; + public virtual void Replace(int index, object text) => throw null; + public virtual void Replace(int from, int to, object text) => throw null; + public virtual void Replace(Antlr.Runtime.IToken indexT, object text) => throw null; + public virtual void Replace(Antlr.Runtime.IToken from, Antlr.Runtime.IToken to, object text) => throw null; + public virtual void Replace(string programName, int from, int to, object text) => throw null; + public virtual void Replace(string programName, Antlr.Runtime.IToken from, Antlr.Runtime.IToken to, object text) => throw null; + protected class RewriteOperation + { + protected RewriteOperation(Antlr.Runtime.TokenRewriteStream stream, int index) => throw null; + protected RewriteOperation(Antlr.Runtime.TokenRewriteStream stream, int index, object text) => throw null; + public virtual int Execute(System.Text.StringBuilder buf) => throw null; + public int index; + public int instructionIndex; + protected Antlr.Runtime.TokenRewriteStream stream; + public object text; + public override string ToString() => throw null; + } + public virtual void Rollback(int instructionIndex) => throw null; + public virtual void Rollback(string programName, int instructionIndex) => throw null; + protected virtual void SetLastRewriteTokenIndex(string programName, int i) => throw null; + public virtual string ToDebugString() => throw null; + public virtual string ToDebugString(int start, int end) => throw null; + public virtual string ToOriginalString() => throw null; + public virtual string ToOriginalString(int start, int end) => throw null; + public override string ToString() => throw null; + public virtual string ToString(string programName) => throw null; + public override string ToString(int start, int end) => throw null; + public virtual string ToString(string programName, int start, int end) => throw null; + } + public static class Tokens + { + public static Antlr.Runtime.IToken Skip; + } + public static class TokenTypes + { + public static int Down; + public static int EndOfFile; + public static int EndOfRule; + public static int Invalid; + public static int Min; + public static int Up; } namespace Tree { - // Generated from `Antlr.Runtime.Tree.AstTreeRuleReturnScope<,>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class AstTreeRuleReturnScope : Antlr.Runtime.Tree.TreeRuleReturnScope, Antlr.Runtime.IRuleReturnScope, Antlr.Runtime.IAstRuleReturnScope, Antlr.Runtime.IAstRuleReturnScope + public class AstTreeRuleReturnScope : Antlr.Runtime.Tree.TreeRuleReturnScope, Antlr.Runtime.IAstRuleReturnScope, Antlr.Runtime.IAstRuleReturnScope, Antlr.Runtime.IRuleReturnScope { public AstTreeRuleReturnScope() => throw null; - public TOutputTree Tree { get => throw null; set => throw null; } + public TOutputTree Tree { get => throw null; set { } } object Antlr.Runtime.IAstRuleReturnScope.Tree { get => throw null; } } - - // Generated from `Antlr.Runtime.Tree.BaseTree` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public abstract class BaseTree : Antlr.Runtime.Tree.ITree { public virtual void AddChild(Antlr.Runtime.Tree.ITree t) => throw null; public virtual void AddChildren(System.Collections.Generic.IEnumerable kids) => throw null; - public BaseTree(Antlr.Runtime.Tree.ITree node) => throw null; - public BaseTree() => throw null; - public virtual int CharPositionInLine { get => throw null; set => throw null; } + public virtual int CharPositionInLine { get => throw null; set { } } public virtual int ChildCount { get => throw null; } - public virtual int ChildIndex { get => throw null; set => throw null; } - public virtual System.Collections.Generic.IList Children { get => throw null; set => throw null; } + public virtual int ChildIndex { get => throw null; set { } } + public virtual System.Collections.Generic.IList Children { get => throw null; } protected virtual System.Collections.Generic.IList CreateChildrenList() => throw null; + public BaseTree() => throw null; + public BaseTree(Antlr.Runtime.Tree.ITree node) => throw null; public virtual object DeleteChild(int i) => throw null; public abstract Antlr.Runtime.Tree.ITree DupNode(); - public virtual void FreshenParentAndChildIndexes(int offset) => throw null; public virtual void FreshenParentAndChildIndexes() => throw null; - public virtual void FreshenParentAndChildIndexesDeeply(int offset) => throw null; + public virtual void FreshenParentAndChildIndexes(int offset) => throw null; public virtual void FreshenParentAndChildIndexesDeeply() => throw null; + public virtual void FreshenParentAndChildIndexesDeeply(int offset) => throw null; public virtual Antlr.Runtime.Tree.ITree GetAncestor(int ttype) => throw null; public virtual System.Collections.Generic.IList GetAncestors() => throw null; public virtual Antlr.Runtime.Tree.ITree GetChild(int i) => throw null; @@ -966,39 +814,37 @@ namespace Antlr public virtual bool HasAncestor(int ttype) => throw null; public virtual void InsertChild(int i, Antlr.Runtime.Tree.ITree t) => throw null; public virtual bool IsNil { get => throw null; } - public virtual int Line { get => throw null; set => throw null; } - public virtual Antlr.Runtime.Tree.ITree Parent { get => throw null; set => throw null; } + public virtual int Line { get => throw null; set { } } + public virtual Antlr.Runtime.Tree.ITree Parent { get => throw null; set { } } public virtual void ReplaceChildren(int startChildIndex, int stopChildIndex, object t) => throw null; - public virtual void SanityCheckParentAndChildIndexes(Antlr.Runtime.Tree.ITree parent, int i) => throw null; public virtual void SanityCheckParentAndChildIndexes() => throw null; + public virtual void SanityCheckParentAndChildIndexes(Antlr.Runtime.Tree.ITree parent, int i) => throw null; public virtual void SetChild(int i, Antlr.Runtime.Tree.ITree t) => throw null; public abstract string Text { get; set; } - public abstract override string ToString(); - public virtual string ToStringTree() => throw null; public abstract int TokenStartIndex { get; set; } public abstract int TokenStopIndex { get; set; } + public abstract override string ToString(); + public virtual string ToStringTree() => throw null; public abstract int Type { get; set; } } - - // Generated from `Antlr.Runtime.Tree.BaseTreeAdaptor` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public abstract class BaseTreeAdaptor : Antlr.Runtime.Tree.ITreeAdaptor { public virtual void AddChild(object t, object child) => throw null; - protected BaseTreeAdaptor() => throw null; public virtual object BecomeRoot(object newRoot, object oldRoot) => throw null; public virtual object BecomeRoot(Antlr.Runtime.IToken newRoot, object oldRoot) => throw null; - public virtual object Create(int tokenType, string text) => throw null; - public virtual object Create(int tokenType, Antlr.Runtime.IToken fromToken, string text) => throw null; public virtual object Create(int tokenType, Antlr.Runtime.IToken fromToken) => throw null; + public virtual object Create(int tokenType, Antlr.Runtime.IToken fromToken, string text) => throw null; public virtual object Create(Antlr.Runtime.IToken fromToken, string text) => throw null; + public virtual object Create(int tokenType, string text) => throw null; public abstract object Create(Antlr.Runtime.IToken payload); public abstract Antlr.Runtime.IToken CreateToken(int tokenType, string text); public abstract Antlr.Runtime.IToken CreateToken(Antlr.Runtime.IToken fromToken); + protected BaseTreeAdaptor() => throw null; public virtual object DeleteChild(object t, int i) => throw null; - public virtual object DupNode(object treeNode, string text) => throw null; - public virtual object DupNode(object treeNode) => throw null; - public virtual object DupNode(int type, object treeNode, string text) => throw null; public virtual object DupNode(int type, object treeNode) => throw null; + public virtual object DupNode(object treeNode, string text) => throw null; + public virtual object DupNode(int type, object treeNode, string text) => throw null; + public virtual object DupNode(object treeNode) => throw null; public virtual object DupTree(object tree) => throw null; public virtual object DupTree(object t, object parent) => throw null; public virtual object ErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null; @@ -1026,32 +872,35 @@ namespace Antlr protected System.Collections.Generic.IDictionary treeToUniqueIDMap; protected int uniqueNodeID; } - - // Generated from `Antlr.Runtime.Tree.BufferedTreeNodeStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class BufferedTreeNodeStream : Antlr.Runtime.Tree.ITreeNodeStream, Antlr.Runtime.ITokenStreamInformation, Antlr.Runtime.IIntStream + public class BufferedTreeNodeStream : Antlr.Runtime.Tree.ITreeNodeStream, Antlr.Runtime.IIntStream, Antlr.Runtime.ITokenStreamInformation { protected virtual void AddNavigationNode(int ttype) => throw null; - public BufferedTreeNodeStream(object tree) => throw null; - public BufferedTreeNodeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, object tree, int initialBufferSize) => throw null; - public BufferedTreeNodeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, object tree) => throw null; + protected System.Collections.Generic.Stack calls; public virtual void Consume() => throw null; public virtual int Count { get => throw null; } - public const int DEFAULT_INITIAL_BUFFER_SIZE = default; - public virtual void FillBuffer(object t) => throw null; + public BufferedTreeNodeStream(object tree) => throw null; + public BufferedTreeNodeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, object tree) => throw null; + public BufferedTreeNodeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, object tree, int initialBufferSize) => throw null; + public static int DEFAULT_INITIAL_BUFFER_SIZE; + protected object down; + protected object eof; protected virtual void FillBuffer() => throw null; + public virtual void FillBuffer(object t) => throw null; public virtual object GetCurrentSymbol() => throw null; protected virtual int GetNodeIndex(object node) => throw null; - public const int INITIAL_CALL_STACK_SIZE = default; public virtual int Index { get => throw null; } - public virtual object this[int i] { get => throw null; } + public static int INITIAL_CALL_STACK_SIZE; public virtual System.Collections.Generic.IEnumerator Iterator() => throw null; public virtual int LA(int i) => throw null; - protected virtual object LB(int k) => throw null; - public virtual object LT(int k) => throw null; + protected int lastMarker; public virtual Antlr.Runtime.IToken LastRealToken { get => throw null; } public virtual Antlr.Runtime.IToken LastToken { get => throw null; } + protected virtual object LB(int k) => throw null; + public virtual object LT(int k) => throw null; public virtual int Mark() => throw null; public virtual int MaxLookBehind { get => throw null; } + protected System.Collections.IList nodes; + protected int p; public virtual int Pop() => throw null; public virtual void Push(int index) => throw null; public virtual void Release(int marker) => throw null; @@ -1059,94 +908,78 @@ namespace Antlr public virtual void Reset() => throw null; public virtual void Rewind(int marker) => throw null; public virtual void Rewind() => throw null; + protected object root; public virtual void Seek(int index) => throw null; public virtual string SourceName { get => throw null; } - // Generated from `Antlr.Runtime.Tree.BufferedTreeNodeStream+StreamIterator` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - protected class StreamIterator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + protected sealed class StreamIterator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { + public StreamIterator(Antlr.Runtime.Tree.BufferedTreeNodeStream outer) => throw null; public object Current { get => throw null; } public void Dispose() => throw null; public bool MoveNext() => throw null; public void Reset() => throw null; - public StreamIterator(Antlr.Runtime.Tree.BufferedTreeNodeStream outer) => throw null; } - - + public virtual object this[int i] { get => throw null; } + protected Antlr.Runtime.ITokenStream tokens; + public virtual Antlr.Runtime.ITokenStream TokenStream { get => throw null; set { } } public virtual string ToString(object start, object stop) => throw null; public virtual string ToTokenString(int start, int stop) => throw null; public virtual string ToTokenTypeString() => throw null; - public virtual Antlr.Runtime.ITokenStream TokenStream { get => throw null; set => throw null; } - public virtual Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get => throw null; set => throw null; } + public virtual Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get => throw null; set { } } public virtual object TreeSource { get => throw null; } - public virtual bool UniqueNavigationNodes { get => throw null; set => throw null; } - protected System.Collections.Generic.Stack calls; - protected object down; - protected object eof; - protected int lastMarker; - protected System.Collections.IList nodes; - protected int p; - protected object root; - protected Antlr.Runtime.ITokenStream tokens; + public virtual bool UniqueNavigationNodes { get => throw null; set { } } protected object up; } - - // Generated from `Antlr.Runtime.Tree.CommonErrorNode` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class CommonErrorNode : Antlr.Runtime.Tree.CommonTree { public CommonErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null; - public override bool IsNil { get => throw null; } - public override string Text { get => throw null; set => throw null; } - public override string ToString() => throw null; - public override int Type { get => throw null; set => throw null; } public Antlr.Runtime.IIntStream input; + public override bool IsNil { get => throw null; } public Antlr.Runtime.IToken start; public Antlr.Runtime.IToken stop; + public override string Text { get => throw null; set { } } + public override string ToString() => throw null; public Antlr.Runtime.RecognitionException trappedException; + public override int Type { get => throw null; set { } } } - - // Generated from `Antlr.Runtime.Tree.CommonTree` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class CommonTree : Antlr.Runtime.Tree.BaseTree { - public override int CharPositionInLine { get => throw null; set => throw null; } - public override int ChildIndex { get => throw null; set => throw null; } + public override int CharPositionInLine { get => throw null; set { } } + public override int ChildIndex { get => throw null; set { } } + public CommonTree() => throw null; public CommonTree(Antlr.Runtime.Tree.CommonTree node) => throw null; public CommonTree(Antlr.Runtime.IToken t) => throw null; - public CommonTree() => throw null; public override Antlr.Runtime.Tree.ITree DupNode() => throw null; public override bool IsNil { get => throw null; } - public override int Line { get => throw null; set => throw null; } - public override Antlr.Runtime.Tree.ITree Parent { get => throw null; set => throw null; } + public override int Line { get => throw null; set { } } + public override Antlr.Runtime.Tree.ITree Parent { get => throw null; set { } } public virtual void SetUnknownTokenBoundaries() => throw null; - public override string Text { get => throw null; set => throw null; } - public override string ToString() => throw null; - public Antlr.Runtime.IToken Token { get => throw null; set => throw null; } - public override int TokenStartIndex { get => throw null; set => throw null; } - public override int TokenStopIndex { get => throw null; set => throw null; } - public override int Type { get => throw null; set => throw null; } protected int startIndex; protected int stopIndex; + public override string Text { get => throw null; set { } } + public Antlr.Runtime.IToken Token { get => throw null; set { } } + public override int TokenStartIndex { get => throw null; set { } } + public override int TokenStopIndex { get => throw null; set { } } + public override string ToString() => throw null; + public override int Type { get => throw null; set { } } } - - // Generated from `Antlr.Runtime.Tree.CommonTreeAdaptor` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class CommonTreeAdaptor : Antlr.Runtime.Tree.BaseTreeAdaptor { - public CommonTreeAdaptor() => throw null; public override object Create(Antlr.Runtime.IToken payload) => throw null; public override Antlr.Runtime.IToken CreateToken(int tokenType, string text) => throw null; public override Antlr.Runtime.IToken CreateToken(Antlr.Runtime.IToken fromToken) => throw null; + public CommonTreeAdaptor() => throw null; public override Antlr.Runtime.IToken GetToken(object t) => throw null; } - - // Generated from `Antlr.Runtime.Tree.CommonTreeNodeStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class CommonTreeNodeStream : Antlr.Runtime.Misc.LookaheadStream, Antlr.Runtime.Tree.ITreeNodeStream, Antlr.Runtime.Tree.IPositionTrackingStream, Antlr.Runtime.IIntStream + public class CommonTreeNodeStream : Antlr.Runtime.Misc.LookaheadStream, Antlr.Runtime.Tree.ITreeNodeStream, Antlr.Runtime.IIntStream, Antlr.Runtime.Tree.IPositionTrackingStream { public CommonTreeNodeStream(object tree) => throw null; public CommonTreeNodeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, object tree) => throw null; - public const int DEFAULT_INITIAL_BUFFER_SIZE = default; + public static int DEFAULT_INITIAL_BUFFER_SIZE; public override object Dequeue() => throw null; public object GetKnownPositionElement(bool allowApproximateLocation) => throw null; public bool HasPositionInformation(object node) => throw null; - public const int INITIAL_CALL_STACK_SIZE = default; + public static int INITIAL_CALL_STACK_SIZE; public override bool IsEndOfFile(object o) => throw null; public virtual int LA(int i) => throw null; public override object NextElement() => throw null; @@ -1155,36 +988,30 @@ namespace Antlr public virtual void ReplaceChildren(object parent, int startChildIndex, int stopChildIndex, object t) => throw null; public override void Reset() => throw null; public virtual string SourceName { get => throw null; } + protected Antlr.Runtime.ITokenStream tokens; + public virtual Antlr.Runtime.ITokenStream TokenStream { get => throw null; set { } } public virtual string ToString(object start, object stop) => throw null; public virtual string ToTokenTypeString() => throw null; - public virtual Antlr.Runtime.ITokenStream TokenStream { get => throw null; set => throw null; } - public virtual Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get => throw null; set => throw null; } + public virtual Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get => throw null; set { } } public virtual object TreeSource { get => throw null; } - public virtual bool UniqueNavigationNodes { get => throw null; set => throw null; } - protected Antlr.Runtime.ITokenStream tokens; + public virtual bool UniqueNavigationNodes { get => throw null; set { } } } - - // Generated from `Antlr.Runtime.Tree.DotTreeGenerator` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class DotTreeGenerator { + public DotTreeGenerator() => throw null; protected virtual System.Collections.Generic.IEnumerable DefineEdges(object tree, Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; protected virtual System.Collections.Generic.IEnumerable DefineNodes(object tree, Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; - public DotTreeGenerator() => throw null; protected virtual string FixString(string text) => throw null; protected virtual int GetNodeNumber(object t) => throw null; protected virtual string GetNodeText(Antlr.Runtime.Tree.ITreeAdaptor adaptor, object t) => throw null; public virtual string ToDot(object tree, Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; public virtual string ToDot(Antlr.Runtime.Tree.ITree tree) => throw null; } - - // Generated from `Antlr.Runtime.Tree.IPositionTrackingStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public interface IPositionTrackingStream { object GetKnownPositionElement(bool allowApproximateLocation); bool HasPositionInformation(object element); } - - // Generated from `Antlr.Runtime.Tree.ITree` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public interface ITree { void AddChild(Antlr.Runtime.Tree.ITree t); @@ -1204,29 +1031,27 @@ namespace Antlr void ReplaceChildren(int startChildIndex, int stopChildIndex, object t); void SetChild(int i, Antlr.Runtime.Tree.ITree t); string Text { get; } - string ToString(); - string ToStringTree(); int TokenStartIndex { get; set; } int TokenStopIndex { get; set; } + string ToString(); + string ToStringTree(); int Type { get; } } - - // Generated from `Antlr.Runtime.Tree.ITreeAdaptor` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public interface ITreeAdaptor { void AddChild(object t, object child); object BecomeRoot(object newRoot, object oldRoot); object BecomeRoot(Antlr.Runtime.IToken newRoot, object oldRoot); - object Create(int tokenType, string text); - object Create(int tokenType, Antlr.Runtime.IToken fromToken, string text); - object Create(int tokenType, Antlr.Runtime.IToken fromToken); object Create(Antlr.Runtime.IToken payload); + object Create(int tokenType, Antlr.Runtime.IToken fromToken); + object Create(int tokenType, Antlr.Runtime.IToken fromToken, string text); object Create(Antlr.Runtime.IToken fromToken, string text); + object Create(int tokenType, string text); object DeleteChild(object t, int i); - object DupNode(object treeNode, string text); object DupNode(object treeNode); - object DupNode(int type, object treeNode, string text); object DupNode(int type, object treeNode); + object DupNode(object treeNode, string text); + object DupNode(int type, object treeNode, string text); object DupTree(object tree); object ErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e); object GetChild(object t, int i); @@ -1250,179 +1075,154 @@ namespace Antlr void SetTokenBoundaries(object t, Antlr.Runtime.IToken startToken, Antlr.Runtime.IToken stopToken); void SetType(object t, int type); } - - // Generated from `Antlr.Runtime.Tree.ITreeNodeStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public interface ITreeNodeStream : Antlr.Runtime.IIntStream { - object this[int i] { get; } object LT(int k); void ReplaceChildren(object parent, int startChildIndex, int stopChildIndex, object t); - string ToString(object start, object stop); + object this[int i] { get; } Antlr.Runtime.ITokenStream TokenStream { get; } + string ToString(object start, object stop); Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get; } object TreeSource { get; } bool UniqueNavigationNodes { get; set; } } - - // Generated from `Antlr.Runtime.Tree.ITreeVisitorAction` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public interface ITreeVisitorAction { object Post(object t); object Pre(object t); } - - // Generated from `Antlr.Runtime.Tree.ParseTree` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class ParseTree : Antlr.Runtime.Tree.BaseTree { - public override Antlr.Runtime.Tree.ITree DupNode() => throw null; public ParseTree(object label) => throw null; - public override string Text { get => throw null; set => throw null; } + public override Antlr.Runtime.Tree.ITree DupNode() => throw null; + public System.Collections.Generic.List hiddenTokens; + public object payload; + public override string Text { get => throw null; set { } } public virtual string ToInputString() => throw null; + public override int TokenStartIndex { get => throw null; set { } } + public override int TokenStopIndex { get => throw null; set { } } public override string ToString() => throw null; protected virtual void ToStringLeaves(System.Text.StringBuilder buf) => throw null; public virtual string ToStringWithHiddenTokens() => throw null; - public override int TokenStartIndex { get => throw null; set => throw null; } - public override int TokenStopIndex { get => throw null; set => throw null; } - public override int Type { get => throw null; set => throw null; } - public System.Collections.Generic.List hiddenTokens; - public object payload; + public override int Type { get => throw null; set { } } } - - // Generated from `Antlr.Runtime.Tree.RewriteCardinalityException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class RewriteCardinalityException : System.Exception { - public RewriteCardinalityException(string message, string elementDescription, System.Exception innerException) => throw null; - public RewriteCardinalityException(string message, string elementDescription) => throw null; - public RewriteCardinalityException(string elementDescription, System.Exception innerException) => throw null; - public RewriteCardinalityException(string elementDescription) => throw null; public RewriteCardinalityException() => throw null; + public RewriteCardinalityException(string elementDescription) => throw null; + public RewriteCardinalityException(string elementDescription, System.Exception innerException) => throw null; + public RewriteCardinalityException(string message, string elementDescription) => throw null; + public RewriteCardinalityException(string message, string elementDescription, System.Exception innerException) => throw null; } - - // Generated from `Antlr.Runtime.Tree.RewriteEarlyExitException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class RewriteEarlyExitException : Antlr.Runtime.Tree.RewriteCardinalityException { - public RewriteEarlyExitException(string message, string elementDescription, System.Exception innerException) => throw null; - public RewriteEarlyExitException(string message, string elementDescription) => throw null; - public RewriteEarlyExitException(string elementDescription, System.Exception innerException) => throw null; - public RewriteEarlyExitException(string elementDescription) => throw null; public RewriteEarlyExitException() => throw null; + public RewriteEarlyExitException(string elementDescription) => throw null; + public RewriteEarlyExitException(string elementDescription, System.Exception innerException) => throw null; + public RewriteEarlyExitException(string message, string elementDescription) => throw null; + public RewriteEarlyExitException(string message, string elementDescription, System.Exception innerException) => throw null; } - - // Generated from `Antlr.Runtime.Tree.RewriteEmptyStreamException` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class RewriteEmptyStreamException : Antlr.Runtime.Tree.RewriteCardinalityException { - public RewriteEmptyStreamException(string message, string elementDescription, System.Exception innerException) => throw null; - public RewriteEmptyStreamException(string message, string elementDescription) => throw null; - public RewriteEmptyStreamException(string elementDescription, System.Exception innerException) => throw null; - public RewriteEmptyStreamException(string elementDescription) => throw null; public RewriteEmptyStreamException() => throw null; + public RewriteEmptyStreamException(string elementDescription) => throw null; + public RewriteEmptyStreamException(string elementDescription, System.Exception innerException) => throw null; + public RewriteEmptyStreamException(string message, string elementDescription) => throw null; + public RewriteEmptyStreamException(string message, string elementDescription, System.Exception innerException) => throw null; } - - // Generated from `Antlr.Runtime.Tree.RewriteRuleElementStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public abstract class RewriteRuleElementStream { + protected Antlr.Runtime.Tree.ITreeAdaptor adaptor; public virtual void Add(object el) => throw null; public virtual int Count { get => throw null; } + public RewriteRuleElementStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription) => throw null; + public RewriteRuleElementStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, object oneElement) => throw null; + public RewriteRuleElementStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, System.Collections.IList elements) => throw null; + protected int cursor; public virtual string Description { get => throw null; } + protected bool dirty; protected abstract object Dup(object el); + protected string elementDescription; + protected System.Collections.IList elements; public virtual bool HasNext { get => throw null; } protected virtual object NextCore() => throw null; public virtual object NextTree() => throw null; public virtual void Reset() => throw null; - public RewriteRuleElementStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, object oneElement) => throw null; - public RewriteRuleElementStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, System.Collections.IList elements) => throw null; - public RewriteRuleElementStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription) => throw null; - protected virtual object ToTree(object el) => throw null; - protected Antlr.Runtime.Tree.ITreeAdaptor adaptor; - protected int cursor; - protected bool dirty; - protected string elementDescription; - protected System.Collections.IList elements; protected object singleElement; + protected virtual object ToTree(object el) => throw null; } - - // Generated from `Antlr.Runtime.Tree.RewriteRuleNodeStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class RewriteRuleNodeStream : Antlr.Runtime.Tree.RewriteRuleElementStream { - protected override object Dup(object el) => throw null; - public virtual object NextNode() => throw null; + public RewriteRuleNodeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; public RewriteRuleNodeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, object oneElement) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; public RewriteRuleNodeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, System.Collections.IList elements) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; - public RewriteRuleNodeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; - protected override object ToTree(object el) => throw null; - } - - // Generated from `Antlr.Runtime.Tree.RewriteRuleSubtreeStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class RewriteRuleSubtreeStream : Antlr.Runtime.Tree.RewriteRuleElementStream - { protected override object Dup(object el) => throw null; public virtual object NextNode() => throw null; + protected override object ToTree(object el) => throw null; + } + public class RewriteRuleSubtreeStream : Antlr.Runtime.Tree.RewriteRuleElementStream + { + public RewriteRuleSubtreeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; public RewriteRuleSubtreeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, object oneElement) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; public RewriteRuleSubtreeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, System.Collections.IList elements) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; - public RewriteRuleSubtreeStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; + protected override object Dup(object el) => throw null; + public virtual object NextNode() => throw null; } - - // Generated from `Antlr.Runtime.Tree.RewriteRuleTokenStream` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class RewriteRuleTokenStream : Antlr.Runtime.Tree.RewriteRuleElementStream { + public RewriteRuleTokenStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; + public RewriteRuleTokenStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, object oneElement) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; + public RewriteRuleTokenStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, System.Collections.IList elements) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; protected override object Dup(object el) => throw null; public virtual object NextNode() => throw null; public virtual Antlr.Runtime.IToken NextToken() => throw null; - public RewriteRuleTokenStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, object oneElement) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; - public RewriteRuleTokenStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription, System.Collections.IList elements) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; - public RewriteRuleTokenStream(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string elementDescription) : base(default(Antlr.Runtime.Tree.ITreeAdaptor), default(string)) => throw null; protected override object ToTree(object el) => throw null; } - - // Generated from `Antlr.Runtime.Tree.TemplateTreeRuleReturnScope<,>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TemplateTreeRuleReturnScope : Antlr.Runtime.Tree.TreeRuleReturnScope, Antlr.Runtime.ITemplateRuleReturnScope, Antlr.Runtime.ITemplateRuleReturnScope { - public TTemplate Template { get => throw null; set => throw null; } - object Antlr.Runtime.ITemplateRuleReturnScope.Template { get => throw null; } public TemplateTreeRuleReturnScope() => throw null; + public TTemplate Template { get => throw null; set { } } + object Antlr.Runtime.ITemplateRuleReturnScope.Template { get => throw null; } } - - // Generated from `Antlr.Runtime.Tree.TreeFilter` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TreeFilter : Antlr.Runtime.Tree.TreeParser { public virtual void ApplyOnce(object t, Antlr.Runtime.Misc.Action whichRule) => throw null; protected virtual void Bottomup() => throw null; - public virtual void Downup(object t) => throw null; - protected virtual void Topdown() => throw null; - public TreeFilter(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; public TreeFilter(Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; + public TreeFilter(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; + public virtual void Downup(object t) => throw null; protected Antlr.Runtime.Tree.ITreeAdaptor originalAdaptor; protected Antlr.Runtime.ITokenStream originalTokenStream; + protected virtual void Topdown() => throw null; } - - // Generated from `Antlr.Runtime.Tree.TreeIterator` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` - public class TreeIterator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + public class TreeIterator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { - public object Current { get => throw null; set => throw null; } - public void Dispose() => throw null; - public bool MoveNext() => throw null; - public void Reset() => throw null; - public TreeIterator(Antlr.Runtime.Tree.ITreeAdaptor adaptor, object tree) => throw null; - public TreeIterator(Antlr.Runtime.Tree.CommonTree tree) => throw null; protected Antlr.Runtime.Tree.ITreeAdaptor adaptor; + public TreeIterator(Antlr.Runtime.Tree.CommonTree tree) => throw null; + public TreeIterator(Antlr.Runtime.Tree.ITreeAdaptor adaptor, object tree) => throw null; + public object Current { get => throw null; } + public void Dispose() => throw null; public object down; public object eof; protected bool firstTime; + public bool MoveNext() => throw null; protected System.Collections.Generic.Queue nodes; + public void Reset() => throw null; protected object root; protected object tree; public object up; } - - // Generated from `Antlr.Runtime.Tree.TreeParser` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TreeParser : Antlr.Runtime.BaseRecognizer { - public const int DOWN = default; + public TreeParser(Antlr.Runtime.Tree.ITreeNodeStream input) => throw null; + public TreeParser(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) => throw null; + public static int DOWN; protected override object GetCurrentInputSymbol(Antlr.Runtime.IIntStream input) => throw null; public override string GetErrorHeader(Antlr.Runtime.RecognitionException e) => throw null; public override string GetErrorMessage(Antlr.Runtime.RecognitionException e, string[] tokenNames) => throw null; protected override object GetMissingSymbol(Antlr.Runtime.IIntStream input, Antlr.Runtime.RecognitionException e, int expectedTokenType, Antlr.Runtime.BitSet follow) => throw null; public virtual Antlr.Runtime.Tree.ITreeNodeStream GetTreeNodeStream() => throw null; + protected Antlr.Runtime.Tree.ITreeNodeStream input; public override void MatchAny(Antlr.Runtime.IIntStream ignore) => throw null; protected override object RecoverFromMismatchedToken(Antlr.Runtime.IIntStream input, int ttype, Antlr.Runtime.BitSet follow) => throw null; public override void Reset() => throw null; @@ -1430,181 +1230,163 @@ namespace Antlr public override string SourceName { get => throw null; } public virtual void TraceIn(string ruleName, int ruleIndex) => throw null; public virtual void TraceOut(string ruleName, int ruleIndex) => throw null; - public TreeParser(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) => throw null; - public TreeParser(Antlr.Runtime.Tree.ITreeNodeStream input) => throw null; - public const int UP = default; - protected Antlr.Runtime.Tree.ITreeNodeStream input; + public static int UP; } - - // Generated from `Antlr.Runtime.Tree.TreePatternLexer` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TreePatternLexer { - public const int Arg = default; - public const int Begin = default; - public const int Colon = default; - protected virtual void Consume() => throw null; - public const int Dot = default; - public const int End = default; - public const int Id = default; - public virtual int NextToken() => throw null; - public const int Percent = default; - public TreePatternLexer(string pattern) => throw null; + public static int Arg; + public static int Begin; protected int c; + public static int Colon; + protected virtual void Consume() => throw null; + public TreePatternLexer(string pattern) => throw null; + public static int Dot; + public static int End; public bool error; + public static int Id; protected int n; + public virtual int NextToken() => throw null; protected int p; protected string pattern; + public static int Percent; public System.Text.StringBuilder sval; } - - // Generated from `Antlr.Runtime.Tree.TreePatternParser` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TreePatternParser { + protected Antlr.Runtime.Tree.ITreeAdaptor adaptor; + public TreePatternParser(Antlr.Runtime.Tree.TreePatternLexer tokenizer, Antlr.Runtime.Tree.TreeWizard wizard, Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; public virtual object ParseNode() => throw null; public virtual object ParseTree() => throw null; public virtual object Pattern() => throw null; - public TreePatternParser(Antlr.Runtime.Tree.TreePatternLexer tokenizer, Antlr.Runtime.Tree.TreeWizard wizard, Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; - protected Antlr.Runtime.Tree.ITreeAdaptor adaptor; protected Antlr.Runtime.Tree.TreePatternLexer tokenizer; protected int ttype; protected Antlr.Runtime.Tree.TreeWizard wizard; } - - // Generated from `Antlr.Runtime.Tree.TreeRewriter` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TreeRewriter : Antlr.Runtime.Tree.TreeParser { public virtual object ApplyOnce(object t, Antlr.Runtime.Misc.Func whichRule) => throw null; public virtual object ApplyRepeatedly(object t, Antlr.Runtime.Misc.Func whichRule) => throw null; protected virtual Antlr.Runtime.IAstRuleReturnScope Bottomup() => throw null; - public virtual object Downup(object t, bool showTransformations) => throw null; - public virtual object Downup(object t) => throw null; - protected virtual void ReportTransformation(object oldTree, object newTree) => throw null; - protected virtual Antlr.Runtime.IAstRuleReturnScope Topdown() => throw null; - public TreeRewriter(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; public TreeRewriter(Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; + public TreeRewriter(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; + public virtual object Downup(object t) => throw null; + public virtual object Downup(object t, bool showTransformations) => throw null; protected Antlr.Runtime.Tree.ITreeAdaptor originalAdaptor; protected Antlr.Runtime.ITokenStream originalTokenStream; + protected virtual void ReportTransformation(object oldTree, object newTree) => throw null; protected bool showTransformations; + protected virtual Antlr.Runtime.IAstRuleReturnScope Topdown() => throw null; } - - // Generated from `Antlr.Runtime.Tree.TreeRuleReturnScope<>` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TreeRuleReturnScope : Antlr.Runtime.IRuleReturnScope, Antlr.Runtime.IRuleReturnScope { - public TTree Start { get => throw null; set => throw null; } - object Antlr.Runtime.IRuleReturnScope.Start { get => throw null; } - object Antlr.Runtime.IRuleReturnScope.Stop { get => throw null; } - TTree Antlr.Runtime.IRuleReturnScope.Stop { get => throw null; } public TreeRuleReturnScope() => throw null; + public TTree Start { get => throw null; set { } } + object Antlr.Runtime.IRuleReturnScope.Start { get => throw null; } + TTree Antlr.Runtime.IRuleReturnScope.Stop { get => throw null; } + object Antlr.Runtime.IRuleReturnScope.Stop { get => throw null; } } - - // Generated from `Antlr.Runtime.Tree.TreeVisitor` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TreeVisitor { + protected Antlr.Runtime.Tree.ITreeAdaptor adaptor; public TreeVisitor(Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; public TreeVisitor() => throw null; public object Visit(object t, Antlr.Runtime.Tree.ITreeVisitorAction action) => throw null; public object Visit(object t, Antlr.Runtime.Misc.Func preAction, Antlr.Runtime.Misc.Func postAction) => throw null; - protected Antlr.Runtime.Tree.ITreeAdaptor adaptor; } - - // Generated from `Antlr.Runtime.Tree.TreeVisitorAction` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TreeVisitorAction : Antlr.Runtime.Tree.ITreeVisitorAction { + public TreeVisitorAction(Antlr.Runtime.Misc.Func preAction, Antlr.Runtime.Misc.Func postAction) => throw null; public object Post(object t) => throw null; public object Pre(object t) => throw null; - public TreeVisitorAction(Antlr.Runtime.Misc.Func preAction, Antlr.Runtime.Misc.Func postAction) => throw null; } - - // Generated from `Antlr.Runtime.Tree.TreeWizard` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TreeWizard { + protected Antlr.Runtime.Tree.ITreeAdaptor adaptor; public virtual System.Collections.Generic.IDictionary ComputeTokenTypes(string[] tokenNames) => throw null; public virtual object Create(string pattern) => throw null; + public TreeWizard(Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; + public TreeWizard(Antlr.Runtime.Tree.ITreeAdaptor adaptor, System.Collections.Generic.IDictionary tokenNameToTypeMap) => throw null; + public TreeWizard(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string[] tokenNames) => throw null; + public TreeWizard(string[] tokenNames) => throw null; public static bool Equals(object t1, object t2, Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; public bool Equals(object t1, object t2) => throw null; protected static bool EqualsCore(object t1, object t2, Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; - public virtual System.Collections.IList Find(object t, string pattern) => throw null; public virtual System.Collections.IList Find(object t, int ttype) => throw null; - public virtual object FindFirst(object t, string pattern) => throw null; + public virtual System.Collections.IList Find(object t, string pattern) => throw null; public virtual object FindFirst(object t, int ttype) => throw null; + public virtual object FindFirst(object t, string pattern) => throw null; public virtual int GetTokenType(string tokenName) => throw null; - // Generated from `Antlr.Runtime.Tree.TreeWizard+IContextVisitor` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public interface IContextVisitor { void Visit(object t, object parent, int childIndex, System.Collections.Generic.IDictionary labels); } - - public System.Collections.Generic.IDictionary Index(object t) => throw null; protected virtual void IndexCore(object t, System.Collections.Generic.IDictionary m) => throw null; public bool Parse(object t, string pattern, System.Collections.Generic.IDictionary labels) => throw null; public bool Parse(object t, string pattern) => throw null; protected virtual bool ParseCore(object t1, Antlr.Runtime.Tree.TreeWizard.TreePattern tpattern, System.Collections.Generic.IDictionary labels) => throw null; - // Generated from `Antlr.Runtime.Tree.TreeWizard+TreePattern` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` + protected System.Collections.Generic.IDictionary tokenNameToTypeMap; public class TreePattern : Antlr.Runtime.Tree.CommonTree { - public override string ToString() => throw null; public TreePattern(Antlr.Runtime.IToken payload) => throw null; public bool hasTextArg; public string label; + public override string ToString() => throw null; } - - - // Generated from `Antlr.Runtime.Tree.TreeWizard+TreePatternTreeAdaptor` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class TreePatternTreeAdaptor : Antlr.Runtime.Tree.CommonTreeAdaptor { public override object Create(Antlr.Runtime.IToken payload) => throw null; public TreePatternTreeAdaptor() => throw null; } - - - public TreeWizard(string[] tokenNames) => throw null; - public TreeWizard(Antlr.Runtime.Tree.ITreeAdaptor adaptor, string[] tokenNames) => throw null; - public TreeWizard(Antlr.Runtime.Tree.ITreeAdaptor adaptor, System.Collections.Generic.IDictionary tokenNameToTypeMap) => throw null; - public TreeWizard(Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; - public void Visit(object t, string pattern, Antlr.Runtime.Tree.TreeWizard.IContextVisitor visitor) => throw null; - public void Visit(object t, int ttype, System.Action action) => throw null; public void Visit(object t, int ttype, Antlr.Runtime.Tree.TreeWizard.IContextVisitor visitor) => throw null; + public void Visit(object t, int ttype, System.Action action) => throw null; + public void Visit(object t, string pattern, Antlr.Runtime.Tree.TreeWizard.IContextVisitor visitor) => throw null; protected virtual void VisitCore(object t, object parent, int childIndex, int ttype, Antlr.Runtime.Tree.TreeWizard.IContextVisitor visitor) => throw null; - // Generated from `Antlr.Runtime.Tree.TreeWizard+Visitor` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public abstract class Visitor : Antlr.Runtime.Tree.TreeWizard.IContextVisitor { + protected Visitor() => throw null; public virtual void Visit(object t, object parent, int childIndex, System.Collections.Generic.IDictionary labels) => throw null; public abstract void Visit(object t); - protected Visitor() => throw null; } - - - // Generated from `Antlr.Runtime.Tree.TreeWizard+WildcardTreePattern` in `Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f` public class WildcardTreePattern : Antlr.Runtime.Tree.TreeWizard.TreePattern { public WildcardTreePattern(Antlr.Runtime.IToken payload) : base(default(Antlr.Runtime.IToken)) => throw null; } - - - protected Antlr.Runtime.Tree.ITreeAdaptor adaptor; - protected System.Collections.Generic.IDictionary tokenNameToTypeMap; } - } - } -} -namespace System -{ - /* Duplicate type 'ICloneable' is not stubbed in this assembly 'Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f'. */ - - /* Duplicate type 'NonSerializedAttribute' is not stubbed in this assembly 'Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f'. */ - - /* Duplicate type 'SerializableAttribute' is not stubbed in this assembly 'Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f'. */ - - namespace Runtime - { - namespace Serialization + public class UnbufferedTokenStream : Antlr.Runtime.Misc.LookaheadStream, Antlr.Runtime.ITokenStream, Antlr.Runtime.IIntStream, Antlr.Runtime.ITokenStreamInformation { - /* Duplicate type 'OnSerializingAttribute' is not stubbed in this assembly 'Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f'. */ - - /* Duplicate type 'StreamingContext' is not stubbed in this assembly 'Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f'. */ - + protected int channel; + public override void Clear() => throw null; + public override void Consume() => throw null; + public UnbufferedTokenStream(Antlr.Runtime.ITokenSource tokenSource) => throw null; + public Antlr.Runtime.IToken Get(int i) => throw null; + public override bool IsEndOfFile(Antlr.Runtime.IToken o) => throw null; + public int LA(int i) => throw null; + public Antlr.Runtime.IToken LastRealToken { get => throw null; } + public Antlr.Runtime.IToken LastToken { get => throw null; } + public override int Mark() => throw null; + public int MaxLookBehind { get => throw null; } + public override Antlr.Runtime.IToken NextElement() => throw null; + public override void Release(int marker) => throw null; + public string SourceName { get => throw null; } + protected int tokenIndex; + protected Antlr.Runtime.ITokenSource tokenSource; + public Antlr.Runtime.ITokenSource TokenSource { get => throw null; } + public string ToString(int start, int stop) => throw null; + public string ToString(Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop) => throw null; + } + public class UnwantedTokenException : Antlr.Runtime.MismatchedTokenException + { + public UnwantedTokenException() => throw null; + public UnwantedTokenException(string message) => throw null; + public UnwantedTokenException(string message, System.Exception innerException) => throw null; + public UnwantedTokenException(int expecting, Antlr.Runtime.IIntStream input) => throw null; + public UnwantedTokenException(int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames) => throw null; + public UnwantedTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames) => throw null; + public UnwantedTokenException(string message, int expecting, Antlr.Runtime.IIntStream input, System.Collections.Generic.IList tokenNames, System.Exception innerException) => throw null; + public override string ToString() => throw null; + public virtual Antlr.Runtime.IToken UnexpectedToken { get => throw null; } } } } diff --git a/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.cs b/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.cs deleted file mode 100644 index 92d7db311f3..00000000000 --- a/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.cs +++ /dev/null @@ -1,90 +0,0 @@ -// This file contains auto-generated code. - -namespace Iesi -{ - namespace Collections - { - namespace Generic - { - // Generated from `Iesi.Collections.Generic.LinkedHashSet<>` in `Iesi.Collections, Version=4.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LinkedHashSet : System.Collections.IEnumerable, System.Collections.Generic.ISet, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection - { - void System.Collections.Generic.ICollection.Add(T item) => throw null; - public bool Add(T item) => throw null; - public void Clear() => throw null; - public bool Contains(T item) => throw null; - public void CopyTo(T[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public void ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - public void IntersectWith(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - public bool IsSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; - public LinkedHashSet(System.Collections.Generic.IEnumerable initialValues) => throw null; - public LinkedHashSet() => throw null; - public bool Overlaps(System.Collections.Generic.IEnumerable other) => throw null; - public bool Remove(T item) => throw null; - public bool SetEquals(System.Collections.Generic.IEnumerable other) => throw null; - public void SymmetricExceptWith(System.Collections.Generic.IEnumerable other) => throw null; - public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; - } - - // Generated from `Iesi.Collections.Generic.ReadOnlySet<>` in `Iesi.Collections, Version=4.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ReadOnlySet : System.Collections.IEnumerable, System.Collections.Generic.ISet, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection - { - void System.Collections.Generic.ICollection.Add(T item) => throw null; - bool System.Collections.Generic.ISet.Add(T item) => throw null; - void System.Collections.Generic.ICollection.Clear() => throw null; - public bool Contains(T item) => throw null; - public void CopyTo(T[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - void System.Collections.Generic.ISet.ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - void System.Collections.Generic.ISet.IntersectWith(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsReadOnly { get => throw null; } - public bool IsSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool Overlaps(System.Collections.Generic.IEnumerable other) => throw null; - public ReadOnlySet(System.Collections.Generic.ISet basisSet) => throw null; - bool System.Collections.Generic.ICollection.Remove(T item) => throw null; - public bool SetEquals(System.Collections.Generic.IEnumerable other) => throw null; - void System.Collections.Generic.ISet.SymmetricExceptWith(System.Collections.Generic.IEnumerable other) => throw null; - void System.Collections.Generic.ISet.UnionWith(System.Collections.Generic.IEnumerable other) => throw null; - } - - // Generated from `Iesi.Collections.Generic.SynchronizedSet<>` in `Iesi.Collections, Version=4.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SynchronizedSet : System.Collections.IEnumerable, System.Collections.Generic.ISet, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection - { - void System.Collections.Generic.ICollection.Add(T item) => throw null; - public bool Add(T item) => throw null; - public void Clear() => throw null; - public bool Contains(T item) => throw null; - public void CopyTo(T[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public void ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public void IntersectWith(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsReadOnly { get => throw null; } - public bool IsSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool Overlaps(System.Collections.Generic.IEnumerable other) => throw null; - public bool Remove(T item) => throw null; - public bool SetEquals(System.Collections.Generic.IEnumerable other) => throw null; - public void SymmetricExceptWith(System.Collections.Generic.IEnumerable other) => throw null; - public SynchronizedSet(System.Collections.Generic.ISet basisSet) => throw null; - public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; - } - - } - } -} diff --git a/csharp/ql/test/resources/stubs/NHibernate/5.3.8/NHibernate.cs b/csharp/ql/test/resources/stubs/NHibernate/5.4.6/NHibernate.cs similarity index 80% rename from csharp/ql/test/resources/stubs/NHibernate/5.3.8/NHibernate.cs rename to csharp/ql/test/resources/stubs/NHibernate/5.4.6/NHibernate.cs index a7577c91b06..4897168ea80 100644 --- a/csharp/ql/test/resources/stubs/NHibernate/5.3.8/NHibernate.cs +++ b/csharp/ql/test/resources/stubs/NHibernate/5.4.6/NHibernate.cs @@ -1,1635 +1,17 @@ // This file contains auto-generated code. - +// Generated from `NHibernate, Version=5.4.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4`. namespace NHibernate { - // Generated from `NHibernate.ADOException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ADOException : NHibernate.HibernateException - { - public ADOException(string message, System.Exception innerException, string sql) => throw null; - public ADOException(string message, System.Exception innerException) => throw null; - public ADOException() => throw null; - protected ADOException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public string SqlString { get => throw null; } - } - - // Generated from `NHibernate.AssertionFailure` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AssertionFailure : System.Exception - { - public AssertionFailure(string message, System.Exception innerException) => throw null; - public AssertionFailure(string message) => throw null; - public AssertionFailure() => throw null; - protected AssertionFailure(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.CacheMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - [System.Flags] - public enum CacheMode - { - Get, - Ignore, - Normal, - Put, - Refresh, - } - - // Generated from `NHibernate.CallbackException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CallbackException : NHibernate.HibernateException - { - public CallbackException(string message, System.Exception innerException) => throw null; - public CallbackException(string message) => throw null; - public CallbackException(System.Exception innerException) => throw null; - protected CallbackException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.ConnectionReleaseMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum ConnectionReleaseMode - { - AfterStatement, - AfterTransaction, - OnClose, - } - - // Generated from `NHibernate.ConnectionReleaseModeParser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ConnectionReleaseModeParser - { - public static NHibernate.ConnectionReleaseMode Convert(string value) => throw null; - public static string ToString(NHibernate.ConnectionReleaseMode value) => throw null; - } - - // Generated from `NHibernate.CriteriaTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class CriteriaTransformer - { - public static NHibernate.ICriteria Clone(NHibernate.ICriteria criteria) => throw null; - public static NHibernate.Criterion.DetachedCriteria Clone(NHibernate.Criterion.DetachedCriteria criteria) => throw null; - public static NHibernate.ICriteria TransformToRowCount(NHibernate.ICriteria criteria) => throw null; - public static NHibernate.Criterion.DetachedCriteria TransformToRowCount(NHibernate.Criterion.DetachedCriteria criteria) => throw null; - } - - // Generated from `NHibernate.DuplicateMappingException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DuplicateMappingException : NHibernate.MappingException - { - public DuplicateMappingException(string type, string name) : base(default(System.Exception)) => throw null; - public DuplicateMappingException(string customMessage, string type, string name) : base(default(System.Exception)) => throw null; - public DuplicateMappingException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(System.Exception)) => throw null; - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public string Name { get => throw null; } - public string Type { get => throw null; } - } - - // Generated from `NHibernate.EmptyInterceptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EmptyInterceptor : NHibernate.IInterceptor - { - public virtual void AfterTransactionBegin(NHibernate.ITransaction tx) => throw null; - public virtual void AfterTransactionCompletion(NHibernate.ITransaction tx) => throw null; - public virtual void BeforeTransactionCompletion(NHibernate.ITransaction tx) => throw null; - public EmptyInterceptor() => throw null; - public virtual int[] FindDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types) => throw null; - public virtual object GetEntity(string entityName, object id) => throw null; - public virtual string GetEntityName(object entity) => throw null; - public static NHibernate.EmptyInterceptor Instance; - public virtual object Instantiate(string clazz, object id) => throw null; - public virtual bool? IsTransient(object entity) => throw null; - public virtual void OnCollectionRecreate(object collection, object key) => throw null; - public virtual void OnCollectionRemove(object collection, object key) => throw null; - public virtual void OnCollectionUpdate(object collection, object key) => throw null; - public virtual void OnDelete(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types) => throw null; - public virtual bool OnFlushDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types) => throw null; - public virtual bool OnLoad(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types) => throw null; - public virtual NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql) => throw null; - public virtual bool OnSave(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types) => throw null; - public virtual void PostFlush(System.Collections.ICollection entities) => throw null; - public virtual void PreFlush(System.Collections.ICollection entitites) => throw null; - public virtual void SetSession(NHibernate.ISession session) => throw null; - } - - // Generated from `NHibernate.EntityJoinExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class EntityJoinExtensions - { - public static NHibernate.ICriteria CreateEntityAlias(this NHibernate.ICriteria criteria, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; - public static NHibernate.ICriteria CreateEntityAlias(this NHibernate.ICriteria criteria, string alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null; - public static NHibernate.ICriteria CreateEntityCriteria(this NHibernate.ICriteria criteria, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; - public static NHibernate.ICriteria CreateEntityCriteria(this NHibernate.ICriteria criteria, string alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null; - public static TThis JoinEntityAlias(this TThis queryOver, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) where TThis : NHibernate.IQueryOver => throw null; - public static TThis JoinEntityAlias(this TThis queryOver, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) where TThis : NHibernate.IQueryOver => throw null; - public static NHibernate.IQueryOver JoinEntityQueryOver(this NHibernate.IQueryOver queryOver, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; - public static NHibernate.IQueryOver JoinEntityQueryOver(this NHibernate.IQueryOver queryOver, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; - } - - // Generated from `NHibernate.EntityMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum EntityMode - { - Map, - Poco, - } - - // Generated from `NHibernate.FKUnmatchingColumnsException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FKUnmatchingColumnsException : NHibernate.MappingException - { - public FKUnmatchingColumnsException(string message, System.Exception innerException) : base(default(System.Exception)) => throw null; - public FKUnmatchingColumnsException(string message) : base(default(System.Exception)) => throw null; - protected FKUnmatchingColumnsException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(System.Exception)) => throw null; - } - - // Generated from `NHibernate.FetchMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum FetchMode - { - Default, - Eager, - Join, - Lazy, - Select, - } - - // Generated from `NHibernate.FlushMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum FlushMode - { - Always, - Auto, - Commit, - Manual, - Never, - Unspecified, - } - - // Generated from `NHibernate.HibernateException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HibernateException : System.Exception - { - public HibernateException(string message, System.Exception innerException) => throw null; - public HibernateException(string message) => throw null; - public HibernateException(System.Exception innerException) => throw null; - public HibernateException() => throw null; - protected HibernateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.ICacheableQueryExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - internal interface ICacheableQueryExpression - { - bool CanCachePlan { get; } - } - - // Generated from `NHibernate.ICriteria` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICriteria : System.ICloneable - { - NHibernate.ICriteria Add(NHibernate.Criterion.ICriterion expression); - NHibernate.ICriteria AddOrder(NHibernate.Criterion.Order order); - string Alias { get; } - void ClearOrders(); - NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); - NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType); - NHibernate.ICriteria CreateAlias(string associationPath, string alias); - NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); - NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType); - NHibernate.ICriteria CreateCriteria(string associationPath, string alias); - NHibernate.ICriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType); - NHibernate.ICriteria CreateCriteria(string associationPath); - NHibernate.IFutureEnumerable Future(); - NHibernate.IFutureValue FutureValue(); - NHibernate.ICriteria GetCriteriaByAlias(string alias); - NHibernate.ICriteria GetCriteriaByPath(string path); - System.Type GetRootEntityTypeIfAvailable(); - bool IsReadOnly { get; } - bool IsReadOnlyInitialized { get; } - void List(System.Collections.IList results); - System.Collections.IList List(); - System.Collections.Generic.IList List(); - System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.ICriteria SetCacheMode(NHibernate.CacheMode cacheMode); - NHibernate.ICriteria SetCacheRegion(string cacheRegion); - NHibernate.ICriteria SetCacheable(bool cacheable); - NHibernate.ICriteria SetComment(string comment); - NHibernate.ICriteria SetFetchMode(string associationPath, NHibernate.FetchMode mode); - NHibernate.ICriteria SetFetchSize(int fetchSize); - NHibernate.ICriteria SetFirstResult(int firstResult); - NHibernate.ICriteria SetFlushMode(NHibernate.FlushMode flushMode); - NHibernate.ICriteria SetLockMode(string alias, NHibernate.LockMode lockMode); - NHibernate.ICriteria SetLockMode(NHibernate.LockMode lockMode); - NHibernate.ICriteria SetMaxResults(int maxResults); - NHibernate.ICriteria SetProjection(params NHibernate.Criterion.IProjection[] projection); - NHibernate.ICriteria SetReadOnly(bool readOnly); - NHibernate.ICriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer); - NHibernate.ICriteria SetTimeout(int timeout); - object UniqueResult(); - T UniqueResult(); - System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - // Generated from `NHibernate.IDatabinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDatabinder - { - NHibernate.IDatabinder Bind(object obj); - NHibernate.IDatabinder BindAll(System.Collections.ICollection objs); - bool InitializeLazy { get; set; } - string ToGenericXml(); - System.Xml.XmlDocument ToGenericXmlDocument(); - string ToXML(); - System.Xml.XmlDocument ToXmlDocument(); - } - - // Generated from `NHibernate.IDetachedQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDetachedQuery - { - NHibernate.IQuery GetExecutableQuery(NHibernate.ISession session); - NHibernate.IDetachedQuery SetAnsiString(string name, string val); - NHibernate.IDetachedQuery SetAnsiString(int position, string val); - NHibernate.IDetachedQuery SetBinary(string name, System.Byte[] val); - NHibernate.IDetachedQuery SetBinary(int position, System.Byte[] val); - NHibernate.IDetachedQuery SetBoolean(string name, bool val); - NHibernate.IDetachedQuery SetBoolean(int position, bool val); - NHibernate.IDetachedQuery SetByte(string name, System.Byte val); - NHibernate.IDetachedQuery SetByte(int position, System.Byte val); - NHibernate.IDetachedQuery SetCacheMode(NHibernate.CacheMode cacheMode); - NHibernate.IDetachedQuery SetCacheRegion(string cacheRegion); - NHibernate.IDetachedQuery SetCacheable(bool cacheable); - NHibernate.IDetachedQuery SetCharacter(string name, System.Char val); - NHibernate.IDetachedQuery SetCharacter(int position, System.Char val); - NHibernate.IDetachedQuery SetComment(string comment); - NHibernate.IDetachedQuery SetDateTime(string name, System.DateTime val); - NHibernate.IDetachedQuery SetDateTime(int position, System.DateTime val); - NHibernate.IDetachedQuery SetDateTimeNoMs(string name, System.DateTime val); - NHibernate.IDetachedQuery SetDateTimeNoMs(int position, System.DateTime val); - NHibernate.IDetachedQuery SetDecimal(string name, System.Decimal val); - NHibernate.IDetachedQuery SetDecimal(int position, System.Decimal val); - NHibernate.IDetachedQuery SetDouble(string name, double val); - NHibernate.IDetachedQuery SetDouble(int position, double val); - NHibernate.IDetachedQuery SetEntity(string name, object val); - NHibernate.IDetachedQuery SetEntity(int position, object val); - NHibernate.IDetachedQuery SetEnum(string name, System.Enum val); - NHibernate.IDetachedQuery SetEnum(int position, System.Enum val); - NHibernate.IDetachedQuery SetFetchSize(int fetchSize); - NHibernate.IDetachedQuery SetFirstResult(int firstResult); - NHibernate.IDetachedQuery SetFlushMode(NHibernate.FlushMode flushMode); - NHibernate.IDetachedQuery SetGuid(string name, System.Guid val); - NHibernate.IDetachedQuery SetGuid(int position, System.Guid val); - NHibernate.IDetachedQuery SetIgnoreUknownNamedParameters(bool ignoredUnknownNamedParameters); - NHibernate.IDetachedQuery SetInt16(string name, System.Int16 val); - NHibernate.IDetachedQuery SetInt16(int position, System.Int16 val); - NHibernate.IDetachedQuery SetInt32(string name, int val); - NHibernate.IDetachedQuery SetInt32(int position, int val); - NHibernate.IDetachedQuery SetInt64(string name, System.Int64 val); - NHibernate.IDetachedQuery SetInt64(int position, System.Int64 val); - void SetLockMode(string alias, NHibernate.LockMode lockMode); - NHibernate.IDetachedQuery SetMaxResults(int maxResults); - NHibernate.IDetachedQuery SetParameter(string name, object val, NHibernate.Type.IType type); - NHibernate.IDetachedQuery SetParameter(string name, object val); - NHibernate.IDetachedQuery SetParameter(int position, object val, NHibernate.Type.IType type); - NHibernate.IDetachedQuery SetParameter(int position, object val); - NHibernate.IDetachedQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type); - NHibernate.IDetachedQuery SetParameterList(string name, System.Collections.IEnumerable vals); - NHibernate.IDetachedQuery SetProperties(object obj); - NHibernate.IDetachedQuery SetReadOnly(bool readOnly); - NHibernate.IDetachedQuery SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer); - NHibernate.IDetachedQuery SetSingle(string name, float val); - NHibernate.IDetachedQuery SetSingle(int position, float val); - NHibernate.IDetachedQuery SetString(string name, string val); - NHibernate.IDetachedQuery SetString(int position, string val); - NHibernate.IDetachedQuery SetTime(string name, System.DateTime val); - NHibernate.IDetachedQuery SetTime(int position, System.DateTime val); - NHibernate.IDetachedQuery SetTimeout(int timeout); - NHibernate.IDetachedQuery SetTimestamp(string name, System.DateTime val); - NHibernate.IDetachedQuery SetTimestamp(int position, System.DateTime val); - } - - // Generated from `NHibernate.IFilter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IFilter - { - NHibernate.Engine.FilterDefinition FilterDefinition { get; } - string Name { get; } - NHibernate.IFilter SetParameter(string name, object value); - NHibernate.IFilter SetParameterList(string name, System.Collections.Generic.ICollection values); - void Validate(); - } - - // Generated from `NHibernate.IFutureEnumerable<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IFutureEnumerable : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable - { - System.Collections.Generic.IEnumerable GetEnumerable(); - System.Threading.Tasks.Task> GetEnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Collections.Generic.IEnumerator GetEnumerator(); - } - - // Generated from `NHibernate.IFutureValue<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IFutureValue - { - System.Threading.Tasks.Task GetValueAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - T Value { get; } - } - - // Generated from `NHibernate.IInterceptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IInterceptor - { - void AfterTransactionBegin(NHibernate.ITransaction tx); - void AfterTransactionCompletion(NHibernate.ITransaction tx); - void BeforeTransactionCompletion(NHibernate.ITransaction tx); - int[] FindDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types); - object GetEntity(string entityName, object id); - string GetEntityName(object entity); - object Instantiate(string entityName, object id); - bool? IsTransient(object entity); - void OnCollectionRecreate(object collection, object key); - void OnCollectionRemove(object collection, object key); - void OnCollectionUpdate(object collection, object key); - void OnDelete(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types); - bool OnFlushDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types); - bool OnLoad(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types); - NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql); - bool OnSave(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types); - void PostFlush(System.Collections.ICollection entities); - void PreFlush(System.Collections.ICollection entities); - void SetSession(NHibernate.ISession session); - } - - // Generated from `NHibernate.IInternalLogger` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IInternalLogger - { - void Debug(object message, System.Exception exception); - void Debug(object message); - void DebugFormat(string format, params object[] args); - void Error(object message, System.Exception exception); - void Error(object message); - void ErrorFormat(string format, params object[] args); - void Fatal(object message, System.Exception exception); - void Fatal(object message); - void Info(object message, System.Exception exception); - void Info(object message); - void InfoFormat(string format, params object[] args); - bool IsDebugEnabled { get; } - bool IsErrorEnabled { get; } - bool IsFatalEnabled { get; } - bool IsInfoEnabled { get; } - bool IsWarnEnabled { get; } - void Warn(object message, System.Exception exception); - void Warn(object message); - void WarnFormat(string format, params object[] args); - } - - // Generated from `NHibernate.ILoggerFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ILoggerFactory - { - NHibernate.IInternalLogger LoggerFor(string keyName); - NHibernate.IInternalLogger LoggerFor(System.Type type); - } - - // Generated from `NHibernate.IMultiCriteria` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IMultiCriteria - { - NHibernate.IMultiCriteria Add(string key, NHibernate.IQueryOver queryOver); - NHibernate.IMultiCriteria Add(NHibernate.IQueryOver queryOver); - NHibernate.IMultiCriteria Add(string key, NHibernate.IQueryOver queryOver); - NHibernate.IMultiCriteria Add(string key, NHibernate.ICriteria criteria); - NHibernate.IMultiCriteria Add(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria); - NHibernate.IMultiCriteria Add(NHibernate.IQueryOver queryOver); - NHibernate.IMultiCriteria Add(NHibernate.ICriteria criteria); - NHibernate.IMultiCriteria Add(NHibernate.Criterion.DetachedCriteria detachedCriteria); - NHibernate.IMultiCriteria Add(string key, NHibernate.ICriteria criteria); - NHibernate.IMultiCriteria Add(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria); - NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.IQueryOver queryOver); - NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.ICriteria criteria); - NHibernate.IMultiCriteria Add(NHibernate.ICriteria criteria); - NHibernate.IMultiCriteria Add(NHibernate.Criterion.DetachedCriteria detachedCriteria); - NHibernate.IMultiCriteria ForceCacheRefresh(bool forceRefresh); - object GetResult(string key); - System.Threading.Tasks.Task GetResultAsync(string key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Collections.IList List(); - System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.IMultiCriteria SetCacheRegion(string region); - NHibernate.IMultiCriteria SetCacheable(bool cachable); - NHibernate.IMultiCriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer); - } - - // Generated from `NHibernate.IMultiQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IMultiQuery - { - NHibernate.IMultiQuery Add(string key, string hql); - NHibernate.IMultiQuery Add(string key, NHibernate.IQuery query); - NHibernate.IMultiQuery Add(string hql); - NHibernate.IMultiQuery Add(NHibernate.IQuery query); - NHibernate.IMultiQuery Add(string key, string hql); - NHibernate.IMultiQuery Add(string key, NHibernate.IQuery query); - NHibernate.IMultiQuery Add(string hql); - NHibernate.IMultiQuery Add(System.Type resultGenericListType, NHibernate.IQuery query); - NHibernate.IMultiQuery Add(NHibernate.IQuery query); - NHibernate.IMultiQuery AddNamedQuery(string queryName); - NHibernate.IMultiQuery AddNamedQuery(string key, string queryName); - NHibernate.IMultiQuery AddNamedQuery(string queryName); - NHibernate.IMultiQuery AddNamedQuery(string key, string queryName); - object GetResult(string key); - System.Threading.Tasks.Task GetResultAsync(string key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Collections.IList List(); - System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.IMultiQuery SetAnsiString(string name, string val); - NHibernate.IMultiQuery SetBinary(string name, System.Byte[] val); - NHibernate.IMultiQuery SetBoolean(string name, bool val); - NHibernate.IMultiQuery SetByte(string name, System.Byte val); - NHibernate.IMultiQuery SetCacheRegion(string region); - NHibernate.IMultiQuery SetCacheable(bool cacheable); - NHibernate.IMultiQuery SetCharacter(string name, System.Char val); - NHibernate.IMultiQuery SetDateTime(string name, System.DateTime val); - NHibernate.IMultiQuery SetDateTime2(string name, System.DateTime val); - NHibernate.IMultiQuery SetDateTimeNoMs(string name, System.DateTime val); - NHibernate.IMultiQuery SetDateTimeOffset(string name, System.DateTimeOffset val); - NHibernate.IMultiQuery SetDecimal(string name, System.Decimal val); - NHibernate.IMultiQuery SetDouble(string name, double val); - NHibernate.IMultiQuery SetEntity(string name, object val); - NHibernate.IMultiQuery SetEnum(string name, System.Enum val); - NHibernate.IMultiQuery SetFlushMode(NHibernate.FlushMode mode); - NHibernate.IMultiQuery SetForceCacheRefresh(bool forceCacheRefresh); - NHibernate.IMultiQuery SetGuid(string name, System.Guid val); - NHibernate.IMultiQuery SetInt16(string name, System.Int16 val); - NHibernate.IMultiQuery SetInt32(string name, int val); - NHibernate.IMultiQuery SetInt64(string name, System.Int64 val); - NHibernate.IMultiQuery SetParameter(string name, object val, NHibernate.Type.IType type); - NHibernate.IMultiQuery SetParameter(string name, object val); - NHibernate.IMultiQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type); - NHibernate.IMultiQuery SetParameterList(string name, System.Collections.IEnumerable vals); - NHibernate.IMultiQuery SetResultTransformer(NHibernate.Transform.IResultTransformer transformer); - NHibernate.IMultiQuery SetSingle(string name, float val); - NHibernate.IMultiQuery SetString(string name, string val); - NHibernate.IMultiQuery SetTime(string name, System.DateTime val); - NHibernate.IMultiQuery SetTimeAsTimeSpan(string name, System.TimeSpan val); - NHibernate.IMultiQuery SetTimeSpan(string name, System.TimeSpan val); - NHibernate.IMultiQuery SetTimeout(int timeout); - NHibernate.IMultiQuery SetTimestamp(string name, System.DateTime val); - } - - // Generated from `NHibernate.INHibernateLogger` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface INHibernateLogger - { - bool IsEnabled(NHibernate.NHibernateLogLevel logLevel); - void Log(NHibernate.NHibernateLogLevel logLevel, NHibernate.NHibernateLogValues state, System.Exception exception); - } - - // Generated from `NHibernate.INHibernateLoggerFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface INHibernateLoggerFactory - { - NHibernate.INHibernateLogger LoggerFor(string keyName); - NHibernate.INHibernateLogger LoggerFor(System.Type type); - } - - // Generated from `NHibernate.IQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQuery - { - System.Collections.IEnumerable Enumerable(); - System.Collections.Generic.IEnumerable Enumerable(); - System.Threading.Tasks.Task EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - int ExecuteUpdate(); - System.Threading.Tasks.Task ExecuteUpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.IFutureEnumerable Future(); - NHibernate.IFutureValue FutureValue(); - bool IsReadOnly { get; } - void List(System.Collections.IList results); - System.Collections.IList List(); - System.Collections.Generic.IList List(); - System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - string[] NamedParameters { get; } - string QueryString { get; } - string[] ReturnAliases { get; } - NHibernate.Type.IType[] ReturnTypes { get; } - NHibernate.IQuery SetAnsiString(string name, string val); - NHibernate.IQuery SetAnsiString(int position, string val); - NHibernate.IQuery SetBinary(string name, System.Byte[] val); - NHibernate.IQuery SetBinary(int position, System.Byte[] val); - NHibernate.IQuery SetBoolean(string name, bool val); - NHibernate.IQuery SetBoolean(int position, bool val); - NHibernate.IQuery SetByte(string name, System.Byte val); - NHibernate.IQuery SetByte(int position, System.Byte val); - NHibernate.IQuery SetCacheMode(NHibernate.CacheMode cacheMode); - NHibernate.IQuery SetCacheRegion(string cacheRegion); - NHibernate.IQuery SetCacheable(bool cacheable); - NHibernate.IQuery SetCharacter(string name, System.Char val); - NHibernate.IQuery SetCharacter(int position, System.Char val); - NHibernate.IQuery SetComment(string comment); - NHibernate.IQuery SetDateTime(string name, System.DateTime val); - NHibernate.IQuery SetDateTime(int position, System.DateTime val); - NHibernate.IQuery SetDateTime2(string name, System.DateTime val); - NHibernate.IQuery SetDateTime2(int position, System.DateTime val); - NHibernate.IQuery SetDateTimeNoMs(string name, System.DateTime val); - NHibernate.IQuery SetDateTimeNoMs(int position, System.DateTime val); - NHibernate.IQuery SetDateTimeOffset(string name, System.DateTimeOffset val); - NHibernate.IQuery SetDateTimeOffset(int position, System.DateTimeOffset val); - NHibernate.IQuery SetDecimal(string name, System.Decimal val); - NHibernate.IQuery SetDecimal(int position, System.Decimal val); - NHibernate.IQuery SetDouble(string name, double val); - NHibernate.IQuery SetDouble(int position, double val); - NHibernate.IQuery SetEntity(string name, object val); - NHibernate.IQuery SetEntity(int position, object val); - NHibernate.IQuery SetEnum(string name, System.Enum val); - NHibernate.IQuery SetEnum(int position, System.Enum val); - NHibernate.IQuery SetFetchSize(int fetchSize); - NHibernate.IQuery SetFirstResult(int firstResult); - NHibernate.IQuery SetFlushMode(NHibernate.FlushMode flushMode); - NHibernate.IQuery SetGuid(string name, System.Guid val); - NHibernate.IQuery SetGuid(int position, System.Guid val); - NHibernate.IQuery SetInt16(string name, System.Int16 val); - NHibernate.IQuery SetInt16(int position, System.Int16 val); - NHibernate.IQuery SetInt32(string name, int val); - NHibernate.IQuery SetInt32(int position, int val); - NHibernate.IQuery SetInt64(string name, System.Int64 val); - NHibernate.IQuery SetInt64(int position, System.Int64 val); - NHibernate.IQuery SetLockMode(string alias, NHibernate.LockMode lockMode); - NHibernate.IQuery SetMaxResults(int maxResults); - NHibernate.IQuery SetParameter(string name, T val); - NHibernate.IQuery SetParameter(int position, T val); - NHibernate.IQuery SetParameter(string name, object val, NHibernate.Type.IType type); - NHibernate.IQuery SetParameter(string name, object val); - NHibernate.IQuery SetParameter(int position, object val, NHibernate.Type.IType type); - NHibernate.IQuery SetParameter(int position, object val); - NHibernate.IQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type); - NHibernate.IQuery SetParameterList(string name, System.Collections.IEnumerable vals); - NHibernate.IQuery SetProperties(object obj); - NHibernate.IQuery SetReadOnly(bool readOnly); - NHibernate.IQuery SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer); - NHibernate.IQuery SetSingle(string name, float val); - NHibernate.IQuery SetSingle(int position, float val); - NHibernate.IQuery SetString(string name, string val); - NHibernate.IQuery SetString(int position, string val); - NHibernate.IQuery SetTime(string name, System.DateTime val); - NHibernate.IQuery SetTime(int position, System.DateTime val); - NHibernate.IQuery SetTimeAsTimeSpan(string name, System.TimeSpan val); - NHibernate.IQuery SetTimeAsTimeSpan(int position, System.TimeSpan val); - NHibernate.IQuery SetTimeSpan(string name, System.TimeSpan val); - NHibernate.IQuery SetTimeSpan(int position, System.TimeSpan val); - NHibernate.IQuery SetTimeout(int timeout); - NHibernate.IQuery SetTimestamp(string name, System.DateTime val); - NHibernate.IQuery SetTimestamp(int position, System.DateTime val); - object UniqueResult(); - T UniqueResult(); - System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - // Generated from `NHibernate.IQueryExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryExpression - { - string Key { get; } - System.Collections.Generic.IList ParameterDescriptors { get; } - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Translate(NHibernate.Engine.ISessionFactoryImplementor sessionFactory, bool filter); - System.Type Type { get; } - } - - // Generated from `NHibernate.IQueryOver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryOver - { - NHibernate.ICriteria RootCriteria { get; } - NHibernate.ICriteria UnderlyingCriteria { get; } - } - - // Generated from `NHibernate.IQueryOver<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryOver : NHibernate.IQueryOver, NHibernate.IQueryOver - { - NHibernate.IQueryOver And(System.Linq.Expressions.Expression> expression); - NHibernate.IQueryOver And(System.Linq.Expressions.Expression> expression); - NHibernate.IQueryOver And(NHibernate.Criterion.ICriterion expression); - NHibernate.IQueryOver AndNot(System.Linq.Expressions.Expression> expression); - NHibernate.IQueryOver AndNot(System.Linq.Expressions.Expression> expression); - NHibernate.IQueryOver AndNot(NHibernate.Criterion.ICriterion expression); - NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder AndRestrictionOn(System.Linq.Expressions.Expression> expression); - NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder AndRestrictionOn(System.Linq.Expressions.Expression> expression); - NHibernate.Criterion.Lambda.IQueryOverFetchBuilder Fetch(System.Linq.Expressions.Expression> path); - NHibernate.Criterion.Lambda.IQueryOverJoinBuilder Full { get; } - NHibernate.Criterion.Lambda.IQueryOverJoinBuilder Inner { get; } - NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); - NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); - NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); - NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); - NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); - NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias); - NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); - NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType); - NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path); - NHibernate.Criterion.Lambda.IQueryOverJoinBuilder Left { get; } - NHibernate.Criterion.Lambda.IQueryOverLockBuilder Lock(System.Linq.Expressions.Expression> alias); - NHibernate.Criterion.Lambda.IQueryOverLockBuilder Lock(); - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder OrderBy(System.Linq.Expressions.Expression> path); - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder OrderBy(System.Linq.Expressions.Expression> path); - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder OrderBy(NHibernate.Criterion.IProjection projection); - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder OrderByAlias(System.Linq.Expressions.Expression> path); - NHibernate.Criterion.Lambda.IQueryOverJoinBuilder Right { get; } - NHibernate.IQueryOver Select(params System.Linq.Expressions.Expression>[] projections); - NHibernate.IQueryOver Select(params NHibernate.Criterion.IProjection[] projections); - NHibernate.IQueryOver SelectList(System.Func, NHibernate.Criterion.Lambda.QueryOverProjectionBuilder> list); - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder ThenBy(System.Linq.Expressions.Expression> path); - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder ThenBy(System.Linq.Expressions.Expression> path); - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder ThenBy(NHibernate.Criterion.IProjection projection); - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder ThenByAlias(System.Linq.Expressions.Expression> path); - NHibernate.IQueryOver TransformUsing(NHibernate.Transform.IResultTransformer resultTransformer); - NHibernate.IQueryOver Where(System.Linq.Expressions.Expression> expression); - NHibernate.IQueryOver Where(System.Linq.Expressions.Expression> expression); - NHibernate.IQueryOver Where(NHibernate.Criterion.ICriterion expression); - NHibernate.IQueryOver WhereNot(System.Linq.Expressions.Expression> expression); - NHibernate.IQueryOver WhereNot(System.Linq.Expressions.Expression> expression); - NHibernate.IQueryOver WhereNot(NHibernate.Criterion.ICriterion expression); - NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder WhereRestrictionOn(System.Linq.Expressions.Expression> expression); - NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder WhereRestrictionOn(System.Linq.Expressions.Expression> expression); - NHibernate.Criterion.Lambda.IQueryOverSubqueryBuilder WithSubquery { get; } - } - - // Generated from `NHibernate.IQueryOver<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryOver : NHibernate.IQueryOver - { - NHibernate.IQueryOver CacheMode(NHibernate.CacheMode cacheMode); - NHibernate.IQueryOver CacheRegion(string cacheRegion); - NHibernate.IQueryOver Cacheable(); - NHibernate.IQueryOver ClearOrders(); - NHibernate.IQueryOver Clone(); - NHibernate.IFutureEnumerable Future(); - NHibernate.IFutureEnumerable Future(); - NHibernate.IFutureValue FutureValue(); - NHibernate.IFutureValue FutureValue(); - System.Collections.Generic.IList List(); - System.Collections.Generic.IList List(); - System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.IQueryOver ReadOnly(); - int RowCount(); - System.Threading.Tasks.Task RowCountAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Int64 RowCountInt64(); - System.Threading.Tasks.Task RowCountInt64Async(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - U SingleOrDefault(); - TRoot SingleOrDefault(); - System.Threading.Tasks.Task SingleOrDefaultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SingleOrDefaultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.IQueryOver Skip(int firstResult); - NHibernate.IQueryOver Take(int maxResults); - NHibernate.IQueryOver ToRowCountInt64Query(); - NHibernate.IQueryOver ToRowCountQuery(); - } - - // Generated from `NHibernate.ISQLQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISQLQuery : NHibernate.IQuery - { - NHibernate.ISQLQuery AddEntity(string entityName); - NHibernate.ISQLQuery AddEntity(string alias, string entityName, NHibernate.LockMode lockMode); - NHibernate.ISQLQuery AddEntity(string alias, string entityName); - NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass, NHibernate.LockMode lockMode); - NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass); - NHibernate.ISQLQuery AddEntity(System.Type entityClass); - NHibernate.ISQLQuery AddJoin(string alias, string path, NHibernate.LockMode lockMode); - NHibernate.ISQLQuery AddJoin(string alias, string path); - NHibernate.ISQLQuery AddScalar(string columnAlias, NHibernate.Type.IType type); - NHibernate.ISQLQuery SetResultSetMapping(string name); - } - - // Generated from `NHibernate.ISession` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISession : System.IDisposable - { - NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel); - NHibernate.ITransaction BeginTransaction(); - NHibernate.CacheMode CacheMode { get; set; } - void CancelQuery(); - void Clear(); - System.Data.Common.DbConnection Close(); - System.Data.Common.DbConnection Connection { get; } - bool Contains(object obj); - NHibernate.ICriteria CreateCriteria(string alias) where T : class; - NHibernate.ICriteria CreateCriteria() where T : class; - NHibernate.ICriteria CreateCriteria(string entityName, string alias); - NHibernate.ICriteria CreateCriteria(string entityName); - NHibernate.ICriteria CreateCriteria(System.Type persistentClass, string alias); - NHibernate.ICriteria CreateCriteria(System.Type persistentClass); - NHibernate.IQuery CreateFilter(object collection, string queryString); - System.Threading.Tasks.Task CreateFilterAsync(object collection, string queryString, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.IMultiCriteria CreateMultiCriteria(); - NHibernate.IMultiQuery CreateMultiQuery(); - NHibernate.IQuery CreateQuery(string queryString); - NHibernate.ISQLQuery CreateSQLQuery(string queryString); - bool DefaultReadOnly { get; set; } - void Delete(string entityName, object obj); - void Delete(object obj); - int Delete(string query, object[] values, NHibernate.Type.IType[] types); - int Delete(string query, object value, NHibernate.Type.IType type); - int Delete(string query); - System.Threading.Tasks.Task DeleteAsync(string query, object[] values, NHibernate.Type.IType[] types, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(string query, object value, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(string query, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void DisableFilter(string filterName); - System.Data.Common.DbConnection Disconnect(); - NHibernate.IFilter EnableFilter(string filterName); - void Evict(object obj); - System.Threading.Tasks.Task EvictAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void Flush(); - System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.FlushMode FlushMode { get; set; } - object Get(string entityName, object id); - object Get(System.Type clazz, object id, NHibernate.LockMode lockMode); - object Get(System.Type clazz, object id); - T Get(object id, NHibernate.LockMode lockMode); - T Get(object id); - System.Threading.Tasks.Task GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(System.Type clazz, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(System.Type clazz, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.LockMode GetCurrentLockMode(object obj); - NHibernate.IFilter GetEnabledFilter(string filterName); - string GetEntityName(object obj); - System.Threading.Tasks.Task GetEntityNameAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - object GetIdentifier(object obj); - NHibernate.IQuery GetNamedQuery(string queryName); - NHibernate.ISession GetSession(NHibernate.EntityMode entityMode); - NHibernate.Engine.ISessionImplementor GetSessionImplementation(); - bool IsConnected { get; } - bool IsDirty(); - System.Threading.Tasks.Task IsDirtyAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - bool IsOpen { get; } - bool IsReadOnly(object entityOrProxy); - void JoinTransaction(); - void Load(object obj, object id); - object Load(string entityName, object id, NHibernate.LockMode lockMode); - object Load(string entityName, object id); - object Load(System.Type theType, object id, NHibernate.LockMode lockMode); - object Load(System.Type theType, object id); - T Load(object id, NHibernate.LockMode lockMode); - T Load(object id); - System.Threading.Tasks.Task LoadAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task LoadAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task LoadAsync(System.Type theType, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task LoadAsync(System.Type theType, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task LoadAsync(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task LoadAsync(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task LoadAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void Lock(string entityName, object obj, NHibernate.LockMode lockMode); - void Lock(object obj, NHibernate.LockMode lockMode); - System.Threading.Tasks.Task LockAsync(string entityName, object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task LockAsync(object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - object Merge(string entityName, object obj); - object Merge(object obj); - T Merge(string entityName, T entity) where T : class; - T Merge(T entity) where T : class; - System.Threading.Tasks.Task MergeAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task MergeAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task MergeAsync(string entityName, T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class; - System.Threading.Tasks.Task MergeAsync(T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class; - void Persist(string entityName, object obj); - void Persist(object obj); - System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PersistAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Linq.IQueryable Query(string entityName); - System.Linq.IQueryable Query(); - NHibernate.IQueryOver QueryOver(string entityName, System.Linq.Expressions.Expression> alias) where T : class; - NHibernate.IQueryOver QueryOver(string entityName) where T : class; - NHibernate.IQueryOver QueryOver(System.Linq.Expressions.Expression> alias) where T : class; - NHibernate.IQueryOver QueryOver() where T : class; - void Reconnect(System.Data.Common.DbConnection connection); - void Reconnect(); - void Refresh(object obj, NHibernate.LockMode lockMode); - void Refresh(object obj); - System.Threading.Tasks.Task RefreshAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RefreshAsync(object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void Replicate(string entityName, object obj, NHibernate.ReplicationMode replicationMode); - void Replicate(object obj, NHibernate.ReplicationMode replicationMode); - System.Threading.Tasks.Task ReplicateAsync(string entityName, object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ReplicateAsync(object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void Save(string entityName, object obj, object id); - void Save(object obj, object id); - object Save(string entityName, object obj); - object Save(object obj); - System.Threading.Tasks.Task SaveAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SaveAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SaveAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SaveAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void SaveOrUpdate(string entityName, object obj, object id); - void SaveOrUpdate(string entityName, object obj); - void SaveOrUpdate(object obj); - System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SaveOrUpdateAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.ISessionFactory SessionFactory { get; } - NHibernate.ISharedSessionBuilder SessionWithOptions(); - NHibernate.ISession SetBatchSize(int batchSize); - void SetReadOnly(object entityOrProxy, bool readOnly); - NHibernate.Stat.ISessionStatistics Statistics { get; } - NHibernate.ITransaction Transaction { get; } - void Update(string entityName, object obj, object id); - void Update(string entityName, object obj); - void Update(object obj, object id); - void Update(object obj); - System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task UpdateAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task UpdateAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - // Generated from `NHibernate.ISessionBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISessionBuilder : NHibernate.ISessionBuilder - { - } - - // Generated from `NHibernate.ISessionBuilder<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISessionBuilder where T : NHibernate.ISessionBuilder - { - T AutoClose(bool autoClose); - T AutoJoinTransaction(bool autoJoinTransaction); - T Connection(System.Data.Common.DbConnection connection); - T ConnectionReleaseMode(NHibernate.ConnectionReleaseMode connectionReleaseMode); - T FlushMode(NHibernate.FlushMode flushMode); - T Interceptor(NHibernate.IInterceptor interceptor); - T NoInterceptor(); - NHibernate.ISession OpenSession(); - } - - // Generated from `NHibernate.ISessionFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISessionFactory : System.IDisposable - { - void Close(); - System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Collections.Generic.ICollection DefinedFilterNames { get; } - void Evict(System.Type persistentClass, object id); - void Evict(System.Type persistentClass); - System.Threading.Tasks.Task EvictAsync(System.Type persistentClass, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task EvictAsync(System.Type persistentClass, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void EvictCollection(string roleName, object id); - void EvictCollection(string roleName); - System.Threading.Tasks.Task EvictCollectionAsync(string roleName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task EvictCollectionAsync(string roleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void EvictEntity(string entityName, object id); - void EvictEntity(string entityName); - System.Threading.Tasks.Task EvictEntityAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task EvictEntityAsync(string entityName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void EvictQueries(string cacheRegion); - void EvictQueries(); - System.Threading.Tasks.Task EvictQueriesAsync(string cacheRegion, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task EvictQueriesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Collections.Generic.IDictionary GetAllClassMetadata(); - System.Collections.Generic.IDictionary GetAllCollectionMetadata(); - NHibernate.Metadata.IClassMetadata GetClassMetadata(string entityName); - NHibernate.Metadata.IClassMetadata GetClassMetadata(System.Type persistentClass); - NHibernate.Metadata.ICollectionMetadata GetCollectionMetadata(string roleName); - NHibernate.ISession GetCurrentSession(); - NHibernate.Engine.FilterDefinition GetFilterDefinition(string filterName); - bool IsClosed { get; } - NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection); - NHibernate.ISession OpenSession(System.Data.Common.DbConnection conn, NHibernate.IInterceptor sessionLocalInterceptor); - NHibernate.ISession OpenSession(NHibernate.IInterceptor sessionLocalInterceptor); - NHibernate.ISession OpenSession(); - NHibernate.IStatelessSession OpenStatelessSession(System.Data.Common.DbConnection connection); - NHibernate.IStatelessSession OpenStatelessSession(); - NHibernate.Stat.IStatistics Statistics { get; } - NHibernate.ISessionBuilder WithOptions(); - NHibernate.IStatelessSessionBuilder WithStatelessOptions(); - } - - // Generated from `NHibernate.ISharedSessionBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISharedSessionBuilder : NHibernate.ISessionBuilder - { - NHibernate.ISharedSessionBuilder AutoClose(); - NHibernate.ISharedSessionBuilder AutoJoinTransaction(); - NHibernate.ISharedSessionBuilder Connection(); - NHibernate.ISharedSessionBuilder ConnectionReleaseMode(); - NHibernate.ISharedSessionBuilder FlushMode(); - NHibernate.ISharedSessionBuilder Interceptor(); - } - - // Generated from `NHibernate.ISharedStatelessSessionBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISharedStatelessSessionBuilder : NHibernate.IStatelessSessionBuilder - { - NHibernate.ISharedStatelessSessionBuilder AutoJoinTransaction(bool autoJoinTransaction); - NHibernate.ISharedStatelessSessionBuilder AutoJoinTransaction(); - NHibernate.ISharedStatelessSessionBuilder Connection(System.Data.Common.DbConnection connection); - NHibernate.ISharedStatelessSessionBuilder Connection(); - } - - // Generated from `NHibernate.IStatelessSession` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IStatelessSession : System.IDisposable - { - NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel); - NHibernate.ITransaction BeginTransaction(); - void Close(); - System.Data.Common.DbConnection Connection { get; } - NHibernate.ICriteria CreateCriteria(string alias) where T : class; - NHibernate.ICriteria CreateCriteria() where T : class; - NHibernate.ICriteria CreateCriteria(string entityName, string alias); - NHibernate.ICriteria CreateCriteria(string entityName); - NHibernate.ICriteria CreateCriteria(System.Type entityType, string alias); - NHibernate.ICriteria CreateCriteria(System.Type entityType); - NHibernate.IQuery CreateQuery(string queryString); - NHibernate.ISQLQuery CreateSQLQuery(string queryString); - void Delete(string entityName, object entity); - void Delete(object entity); - System.Threading.Tasks.Task DeleteAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - object Get(string entityName, object id, NHibernate.LockMode lockMode); - object Get(string entityName, object id); - T Get(object id, NHibernate.LockMode lockMode); - T Get(object id); - System.Threading.Tasks.Task GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.IQuery GetNamedQuery(string queryName); - NHibernate.Engine.ISessionImplementor GetSessionImplementation(); - object Insert(string entityName, object entity); - object Insert(object entity); - System.Threading.Tasks.Task InsertAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task InsertAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - bool IsConnected { get; } - bool IsOpen { get; } - void JoinTransaction(); - System.Linq.IQueryable Query(string entityName); - System.Linq.IQueryable Query(); - NHibernate.IQueryOver QueryOver(System.Linq.Expressions.Expression> alias) where T : class; - NHibernate.IQueryOver QueryOver() where T : class; - void Refresh(string entityName, object entity, NHibernate.LockMode lockMode); - void Refresh(string entityName, object entity); - void Refresh(object entity, NHibernate.LockMode lockMode); - void Refresh(object entity); - System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RefreshAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RefreshAsync(object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - NHibernate.IStatelessSession SetBatchSize(int batchSize); - NHibernate.ITransaction Transaction { get; } - void Update(string entityName, object entity); - void Update(object entity); - System.Threading.Tasks.Task UpdateAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task UpdateAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } - - // Generated from `NHibernate.IStatelessSessionBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IStatelessSessionBuilder - { - NHibernate.IStatelessSessionBuilder AutoJoinTransaction(bool autoJoinTransaction); - NHibernate.IStatelessSessionBuilder Connection(System.Data.Common.DbConnection connection); - NHibernate.IStatelessSession OpenStatelessSession(); - } - - // Generated from `NHibernate.ISupportSelectModeCriteria` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISupportSelectModeCriteria - { - NHibernate.ICriteria Fetch(NHibernate.SelectMode selectMode, string associationPath, string alias); - } - - // Generated from `NHibernate.ISynchronizableQuery<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISynchronizableQuery where T : NHibernate.ISynchronizableQuery - { - T AddSynchronizedEntityClass(System.Type entityType); - T AddSynchronizedEntityName(string entityName); - T AddSynchronizedQuerySpace(string querySpace); - System.Collections.Generic.IReadOnlyCollection GetSynchronizedQuerySpaces(); - } - - // Generated from `NHibernate.ISynchronizableSQLQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISynchronizableSQLQuery : NHibernate.ISynchronizableQuery, NHibernate.ISQLQuery, NHibernate.IQuery - { - } - - // Generated from `NHibernate.ITransaction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ITransaction : System.IDisposable - { - void Begin(System.Data.IsolationLevel isolationLevel); - void Begin(); - void Commit(); - System.Threading.Tasks.Task CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - void Enlist(System.Data.Common.DbCommand command); - bool IsActive { get; } - void RegisterSynchronization(NHibernate.Transaction.ISynchronization synchronization); - void Rollback(); - System.Threading.Tasks.Task RollbackAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - bool WasCommitted { get; } - bool WasRolledBack { get; } - } - - // Generated from `NHibernate.IdentityEqualityComparer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentityEqualityComparer : System.Collections.IEqualityComparer, System.Collections.Generic.IEqualityComparer - { - public bool Equals(object x, object y) => throw null; - public int GetHashCode(object obj) => throw null; - public IdentityEqualityComparer() => throw null; - } - - // Generated from `NHibernate.InstantiationException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class InstantiationException : NHibernate.HibernateException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public InstantiationException(string message, System.Type type) => throw null; - public InstantiationException(string message, System.Exception innerException, System.Type type) => throw null; - protected InstantiationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } - public System.Type PersistentType { get => throw null; } - } - - // Generated from `NHibernate.InvalidProxyTypeException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class InvalidProxyTypeException : NHibernate.MappingException - { - public System.Collections.Generic.ICollection Errors { get => throw null; set => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public InvalidProxyTypeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(System.Exception)) => throw null; - public InvalidProxyTypeException(System.Collections.Generic.ICollection errors) : base(default(System.Exception)) => throw null; - } - - // Generated from `NHibernate.LazyInitializationException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LazyInitializationException : NHibernate.HibernateException - { - public object EntityId { get => throw null; } - public string EntityName { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public LazyInitializationException(string message, System.Exception innerException) => throw null; - public LazyInitializationException(string message) => throw null; - public LazyInitializationException(string entityName, object entityId, string message) => throw null; - public LazyInitializationException(System.Exception innerException) => throw null; - protected LazyInitializationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.LockMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LockMode - { - public override bool Equals(object obj) => throw null; - public bool Equals(NHibernate.LockMode other) => throw null; - public static NHibernate.LockMode Force; - public override int GetHashCode() => throw null; - public bool GreaterThan(NHibernate.LockMode mode) => throw null; - public bool LessThan(NHibernate.LockMode mode) => throw null; - public static NHibernate.LockMode None; - public static NHibernate.LockMode Read; - public override string ToString() => throw null; - public static NHibernate.LockMode Upgrade; - public static NHibernate.LockMode UpgradeNoWait; - public static NHibernate.LockMode Write; - } - - // Generated from `NHibernate.Log4NetLogger` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Log4NetLogger : NHibernate.IInternalLogger - { - public void Debug(object message, System.Exception exception) => throw null; - public void Debug(object message) => throw null; - public void DebugFormat(string format, params object[] args) => throw null; - public void Error(object message, System.Exception exception) => throw null; - public void Error(object message) => throw null; - public void ErrorFormat(string format, params object[] args) => throw null; - public void Fatal(object message, System.Exception exception) => throw null; - public void Fatal(object message) => throw null; - public void Info(object message, System.Exception exception) => throw null; - public void Info(object message) => throw null; - public void InfoFormat(string format, params object[] args) => throw null; - public bool IsDebugEnabled { get => throw null; } - public bool IsErrorEnabled { get => throw null; } - public bool IsFatalEnabled { get => throw null; } - public bool IsInfoEnabled { get => throw null; } - public bool IsWarnEnabled { get => throw null; } - public Log4NetLogger(object logger) => throw null; - public void Warn(object message, System.Exception exception) => throw null; - public void Warn(object message) => throw null; - public void WarnFormat(string format, params object[] args) => throw null; - } - - // Generated from `NHibernate.Log4NetLoggerFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Log4NetLoggerFactory : NHibernate.ILoggerFactory - { - public Log4NetLoggerFactory() => throw null; - public NHibernate.IInternalLogger LoggerFor(string keyName) => throw null; - public NHibernate.IInternalLogger LoggerFor(System.Type type) => throw null; - } - - // Generated from `NHibernate.LoggerProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LoggerProvider - { - public static NHibernate.IInternalLogger LoggerFor(string keyName) => throw null; - public static NHibernate.IInternalLogger LoggerFor(System.Type type) => throw null; - public LoggerProvider() => throw null; - public static void SetLoggersFactory(NHibernate.ILoggerFactory loggerFactory) => throw null; - } - - // Generated from `NHibernate.MappingException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MappingException : NHibernate.HibernateException - { - public MappingException(string message, System.Exception innerException) => throw null; - public MappingException(string message) => throw null; - public MappingException(System.Exception innerException) => throw null; - protected MappingException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.MultiCriteriaExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class MultiCriteriaExtensions - { - public static NHibernate.IMultiCriteria SetTimeout(this NHibernate.IMultiCriteria multiCriteria, int timeout) => throw null; - } - - // Generated from `NHibernate.NHibernateLogLevel` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum NHibernateLogLevel - { - Debug, - Error, - Fatal, - Info, - None, - Trace, - Warn, - } - - // Generated from `NHibernate.NHibernateLogValues` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public struct NHibernateLogValues - { - public object[] Args { get => throw null; } - public string Format { get => throw null; } - public NHibernateLogValues(string format, object[] args) => throw null; - // Stub generator skipped constructor - public override string ToString() => throw null; - } - - // Generated from `NHibernate.NHibernateLogger` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class NHibernateLogger - { - public static NHibernate.INHibernateLogger For(string keyName) => throw null; - public static NHibernate.INHibernateLogger For(System.Type type) => throw null; - public static void SetLoggersFactory(NHibernate.INHibernateLoggerFactory loggerFactory) => throw null; - } - - // Generated from `NHibernate.NHibernateLoggerExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class NHibernateLoggerExtensions - { - public static void Debug(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null; - public static void Debug(this NHibernate.INHibernateLogger logger, string message) => throw null; - public static void Debug(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null; - public static void Debug(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null; - public static void Debug(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null; - public static void Error(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null; - public static void Error(this NHibernate.INHibernateLogger logger, string message) => throw null; - public static void Error(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null; - public static void Error(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null; - public static void Error(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null; - public static void Fatal(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null; - public static void Fatal(this NHibernate.INHibernateLogger logger, string message) => throw null; - public static void Fatal(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null; - public static void Fatal(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null; - public static void Fatal(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null; - public static void Info(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null; - public static void Info(this NHibernate.INHibernateLogger logger, string message) => throw null; - public static void Info(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null; - public static void Info(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null; - public static void Info(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null; - public static bool IsDebugEnabled(this NHibernate.INHibernateLogger logger) => throw null; - public static bool IsErrorEnabled(this NHibernate.INHibernateLogger logger) => throw null; - public static bool IsFatalEnabled(this NHibernate.INHibernateLogger logger) => throw null; - public static bool IsInfoEnabled(this NHibernate.INHibernateLogger logger) => throw null; - public static bool IsWarnEnabled(this NHibernate.INHibernateLogger logger) => throw null; - public static void Warn(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null; - public static void Warn(this NHibernate.INHibernateLogger logger, string message) => throw null; - public static void Warn(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null; - public static void Warn(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null; - public static void Warn(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null; - } - - // Generated from `NHibernate.NHibernateUtil` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class NHibernateUtil - { - public static NHibernate.Type.AnsiCharType AnsiChar; - public static NHibernate.Type.AnsiStringType AnsiString; - public static NHibernate.Type.IType Any(NHibernate.Type.IType metaType, NHibernate.Type.IType identifierType) => throw null; - public static NHibernate.Type.BinaryType Binary; - public static NHibernate.Type.BinaryBlobType BinaryBlob; - public static NHibernate.Type.BooleanType Boolean; - public static NHibernate.Type.ByteType Byte; - public static NHibernate.Type.CharType Character; - public static NHibernate.Type.TypeType Class; - public static NHibernate.Type.ClassMetaType ClassMetaType; - public static void Close(System.Collections.IEnumerator enumerator) => throw null; - public static void Close(System.Collections.IEnumerable enumerable) => throw null; - public static NHibernate.Type.CultureInfoType CultureInfo; - public static NHibernate.Type.CurrencyType Currency; - public static NHibernate.Type.IType Custom(System.Type userTypeClass) => throw null; - public static NHibernate.Type.DateType Date; - public static NHibernate.Type.DateTimeType DateTime; - public static NHibernate.Type.DateTime2Type DateTime2; - public static NHibernate.Type.DateTimeNoMsType DateTimeNoMs; - public static NHibernate.Type.DateTimeOffsetType DateTimeOffset; - public static NHibernate.Type.DbTimestampType DbTimestamp; - public static NHibernate.Type.DecimalType Decimal; - public static NHibernate.Type.DoubleType Double; - public static NHibernate.Type.IType Entity(string entityName) => throw null; - public static NHibernate.Type.IType Entity(System.Type persistentClass) => throw null; - public static NHibernate.Type.IType Enum(System.Type enumClass) => throw null; - public static System.Type GetClass(object proxy) => throw null; - public static System.Threading.Tasks.Task GetClassAsync(object proxy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static NHibernate.Type.IType GetSerializable(System.Type serializableClass) => throw null; - public static NHibernate.Type.IType GuessType(object obj) => throw null; - public static NHibernate.Type.IType GuessType(System.Type type) => throw null; - public static NHibernate.Type.GuidType Guid; - public static void Initialize(object proxy) => throw null; - public static System.Threading.Tasks.Task InitializeAsync(object proxy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static NHibernate.Type.Int16Type Int16; - public static NHibernate.Type.Int32Type Int32; - public static NHibernate.Type.Int64Type Int64; - public static bool IsInitialized(object proxy) => throw null; - public static bool IsPropertyInitialized(object proxy, string propertyName) => throw null; - public static NHibernate.Type.DateType LocalDate; - public static NHibernate.Type.LocalDateTimeType LocalDateTime; - public static NHibernate.Type.LocalDateTimeNoMsType LocalDateTimeNoMs; - public static NHibernate.Type.MetaType MetaType; - public static NHibernate.Type.AnyType Object; - public static NHibernate.Type.SByteType SByte; - public static NHibernate.Type.SerializableType Serializable; - public static NHibernate.Type.SingleType Single; - public static NHibernate.Type.StringType String; - public static NHibernate.Type.StringClobType StringClob; - public static NHibernate.Type.TicksType Ticks; - public static NHibernate.Type.TimeType Time; - public static NHibernate.Type.TimeAsTimeSpanType TimeAsTimeSpan; - public static NHibernate.Type.TimeSpanType TimeSpan; - public static NHibernate.Type.TimestampType Timestamp; - public static NHibernate.Type.TrueFalseType TrueFalse; - public static NHibernate.Type.UInt16Type UInt16; - public static NHibernate.Type.UInt32Type UInt32; - public static NHibernate.Type.UInt64Type UInt64; - public static NHibernate.Type.UriType Uri; - public static NHibernate.Type.UtcDateTimeType UtcDateTime; - public static NHibernate.Type.UtcDateTimeNoMsType UtcDateTimeNoMs; - public static NHibernate.Type.UtcDbTimestampType UtcDbTimestamp; - public static NHibernate.Type.UtcTicksType UtcTicks; - public static NHibernate.Type.XDocType XDoc; - public static NHibernate.Type.XmlDocType XmlDoc; - public static NHibernate.Type.YesNoType YesNo; - } - - // Generated from `NHibernate.NoLoggingInternalLogger` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NoLoggingInternalLogger : NHibernate.IInternalLogger - { - public void Debug(object message, System.Exception exception) => throw null; - public void Debug(object message) => throw null; - public void DebugFormat(string format, params object[] args) => throw null; - public void Error(object message, System.Exception exception) => throw null; - public void Error(object message) => throw null; - public void ErrorFormat(string format, params object[] args) => throw null; - public void Fatal(object message, System.Exception exception) => throw null; - public void Fatal(object message) => throw null; - public void Info(object message, System.Exception exception) => throw null; - public void Info(object message) => throw null; - public void InfoFormat(string format, params object[] args) => throw null; - public bool IsDebugEnabled { get => throw null; } - public bool IsErrorEnabled { get => throw null; } - public bool IsFatalEnabled { get => throw null; } - public bool IsInfoEnabled { get => throw null; } - public bool IsWarnEnabled { get => throw null; } - public NoLoggingInternalLogger() => throw null; - public void Warn(object message, System.Exception exception) => throw null; - public void Warn(object message) => throw null; - public void WarnFormat(string format, params object[] args) => throw null; - } - - // Generated from `NHibernate.NoLoggingLoggerFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NoLoggingLoggerFactory : NHibernate.ILoggerFactory - { - public NHibernate.IInternalLogger LoggerFor(string keyName) => throw null; - public NHibernate.IInternalLogger LoggerFor(System.Type type) => throw null; - public NoLoggingLoggerFactory() => throw null; - } - - // Generated from `NHibernate.NonUniqueObjectException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NonUniqueObjectException : NHibernate.HibernateException - { - public string EntityName { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public object Identifier { get => throw null; } - public override string Message { get => throw null; } - public NonUniqueObjectException(string message, object id, string entityName) => throw null; - public NonUniqueObjectException(object id, string entityName) => throw null; - protected NonUniqueObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.NonUniqueResultException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NonUniqueResultException : NHibernate.HibernateException - { - public NonUniqueResultException(int resultCount) => throw null; - protected NonUniqueResultException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.ObjectDeletedException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ObjectDeletedException : NHibernate.UnresolvableObjectException - { - public ObjectDeletedException(string message, object identifier, string clazz) : base(default(System.Runtime.Serialization.SerializationInfo), default(System.Runtime.Serialization.StreamingContext)) => throw null; - protected ObjectDeletedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(System.Runtime.Serialization.SerializationInfo), default(System.Runtime.Serialization.StreamingContext)) => throw null; - } - - // Generated from `NHibernate.ObjectNotFoundByUniqueKeyException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ObjectNotFoundByUniqueKeyException : NHibernate.HibernateException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public object Key { get => throw null; } - public ObjectNotFoundByUniqueKeyException(string entityName, string propertyName, object key) => throw null; - protected ObjectNotFoundByUniqueKeyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public string PropertyName { get => throw null; } - } - - // Generated from `NHibernate.ObjectNotFoundException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ObjectNotFoundException : NHibernate.UnresolvableObjectException - { - public ObjectNotFoundException(object identifier, string entityName) : base(default(System.Runtime.Serialization.SerializationInfo), default(System.Runtime.Serialization.StreamingContext)) => throw null; - public ObjectNotFoundException(object identifier, System.Type type) : base(default(System.Runtime.Serialization.SerializationInfo), default(System.Runtime.Serialization.StreamingContext)) => throw null; - protected ObjectNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(System.Runtime.Serialization.SerializationInfo), default(System.Runtime.Serialization.StreamingContext)) => throw null; - } - - // Generated from `NHibernate.PersistentObjectException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PersistentObjectException : NHibernate.HibernateException - { - public PersistentObjectException(string message) => throw null; - protected PersistentObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.PropertyAccessException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PropertyAccessException : NHibernate.HibernateException, System.Runtime.Serialization.ISerializable - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } - public System.Type PersistentType { get => throw null; } - public PropertyAccessException(System.Exception innerException, string message, bool wasSetter, System.Type persistentType, string propertyName) => throw null; - public PropertyAccessException(System.Exception innerException, string message, bool wasSetter, System.Type persistentType) => throw null; - protected PropertyAccessException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.PropertyNotFoundException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PropertyNotFoundException : NHibernate.MappingException - { - public string AccessorType { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public string PropertyName { get => throw null; } - public PropertyNotFoundException(string propertyName, string fieldName, System.Type targetType) : base(default(System.Exception)) => throw null; - public PropertyNotFoundException(System.Type targetType, string propertyName, string accessorType) : base(default(System.Exception)) => throw null; - public PropertyNotFoundException(System.Type targetType, string propertyName) : base(default(System.Exception)) => throw null; - protected PropertyNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(System.Exception)) => throw null; - public System.Type TargetType { get => throw null; } - } - - // Generated from `NHibernate.PropertyValueException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PropertyValueException : NHibernate.HibernateException - { - public string EntityName { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } - public string PropertyName { get => throw null; } - public PropertyValueException(string message, string entityName, string propertyName, System.Exception innerException) => throw null; - public PropertyValueException(string message, string entityName, string propertyName) => throw null; - protected PropertyValueException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.QueryException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryException : NHibernate.HibernateException, System.Runtime.Serialization.ISerializable - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } - public QueryException(string message, string queryString, System.Exception innerException) => throw null; - public QueryException(string message, string queryString) => throw null; - public QueryException(string message, System.Exception innerException) => throw null; - public QueryException(string message) => throw null; - public QueryException(System.Exception innerException) => throw null; - protected QueryException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected QueryException() => throw null; - public string QueryString { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.QueryOverExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class QueryOverExtensions - { - public static TQueryOver SetComment(this TQueryOver queryOver, string comment) where TQueryOver : NHibernate.IQueryOver => throw null; - public static TQueryOver SetFetchSize(this TQueryOver queryOver, int fetchSize) where TQueryOver : NHibernate.IQueryOver => throw null; - public static TQueryOver SetFlushMode(this TQueryOver queryOver, NHibernate.FlushMode flushMode) where TQueryOver : NHibernate.IQueryOver => throw null; - public static TQueryOver SetTimeout(this TQueryOver queryOver, int timeout) where TQueryOver : NHibernate.IQueryOver => throw null; - } - - // Generated from `NHibernate.QueryParameterException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryParameterException : NHibernate.QueryException - { - public QueryParameterException(string message, System.Exception inner) => throw null; - public QueryParameterException(string message) => throw null; - protected QueryParameterException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.ReplicationMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class ReplicationMode - { - public static NHibernate.ReplicationMode Exception; - public static NHibernate.ReplicationMode Ignore; - public static NHibernate.ReplicationMode LatestVersion; - public static NHibernate.ReplicationMode Overwrite; - protected ReplicationMode(string name) => throw null; - public abstract bool ShouldOverwriteCurrentVersion(object entity, object currentVersion, object newVersion, NHibernate.Type.IVersionType versionType); - public override string ToString() => throw null; - } - - // Generated from `NHibernate.SQLQueryExtension` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class SQLQueryExtension - { - public static NHibernate.ISQLQuery AddSynchronizedEntityClass(this NHibernate.ISQLQuery sqlQuery, System.Type entityType) => throw null; - public static NHibernate.ISQLQuery AddSynchronizedEntityName(this NHibernate.ISQLQuery sqlQuery, string entityName) => throw null; - public static NHibernate.ISQLQuery AddSynchronizedQuerySpace(this NHibernate.ISQLQuery sqlQuery, string querySpace) => throw null; - public static System.Collections.Generic.IReadOnlyCollection GetSynchronizedQuerySpaces(this NHibernate.ISQLQuery sqlQuery) => throw null; - } - - // Generated from `NHibernate.SchemaValidationException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SchemaValidationException : NHibernate.HibernateException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public SchemaValidationException(string msg, System.Collections.Generic.IList validationErrors) => throw null; - protected SchemaValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Collections.ObjectModel.ReadOnlyCollection ValidationErrors { get => throw null; } - } - - // Generated from `NHibernate.SelectMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum SelectMode - { - ChildFetch, - Fetch, - FetchLazyProperties, - FetchLazyPropertyGroup, - JoinOnly, - Skip, - Undefined, - } - - // Generated from `NHibernate.SelectModeExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class SelectModeExtensions - { - public static TThis Fetch(this TThis queryOver, NHibernate.SelectMode mode, params System.Linq.Expressions.Expression>[] aliasedAssociationPaths) where TThis : NHibernate.IQueryOver => throw null; - public static NHibernate.IQueryOver Fetch(this NHibernate.IQueryOver queryOver, params System.Linq.Expressions.Expression>[] associationPaths) => throw null; - public static NHibernate.IQueryOver Fetch(this NHibernate.IQueryOver queryOver, NHibernate.SelectMode mode, params System.Linq.Expressions.Expression>[] associationPaths) => throw null; - public static NHibernate.ICriteria Fetch(this NHibernate.ICriteria criteria, string associationPath, string alias = default(string)) => throw null; - public static NHibernate.ICriteria Fetch(this NHibernate.ICriteria criteria, NHibernate.SelectMode mode, string associationPath, string alias = default(string)) => throw null; - public static NHibernate.Criterion.QueryOver Fetch(this NHibernate.Criterion.QueryOver queryOver, params System.Linq.Expressions.Expression>[] associationPaths) => throw null; - public static NHibernate.Criterion.QueryOver Fetch(this NHibernate.Criterion.QueryOver queryOver, NHibernate.SelectMode mode, params System.Linq.Expressions.Expression>[] associationPaths) => throw null; - public static NHibernate.Criterion.DetachedCriteria Fetch(this NHibernate.Criterion.DetachedCriteria criteria, string associationPath, string alias = default(string)) => throw null; - public static NHibernate.Criterion.DetachedCriteria Fetch(this NHibernate.Criterion.DetachedCriteria criteria, NHibernate.SelectMode mode, string associationPath, string alias = default(string)) => throw null; - } - - // Generated from `NHibernate.SessionBuilderExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class SessionBuilderExtensions - { - public static T Tenant(this T builder, string tenantIdentifier) where T : NHibernate.ISessionBuilder => throw null; - public static T Tenant(this T builder, NHibernate.MultiTenancy.TenantConfiguration tenantConfig) where T : NHibernate.ISessionBuilder => throw null; - } - - // Generated from `NHibernate.SessionException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SessionException : NHibernate.HibernateException - { - public SessionException(string message) => throw null; - protected SessionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.SessionExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class SessionExtensions - { - public static NHibernate.Multi.IQueryBatch CreateQueryBatch(this NHibernate.ISession session) => throw null; - public static object Get(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode) => throw null; - public static T Get(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode) => throw null; - public static T Get(this NHibernate.ISession session, string entityName, object id) => throw null; - public static System.Threading.Tasks.Task GetAsync(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetAsync(this NHibernate.ISession session, string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetAsync(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static NHibernate.ITransaction GetCurrentTransaction(this NHibernate.ISession session) => throw null; - public static NHibernate.ISharedStatelessSessionBuilder StatelessSessionWithOptions(this NHibernate.ISession session) => throw null; - } - - // Generated from `NHibernate.SessionFactoryExtension` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class SessionFactoryExtension - { - public static void Evict(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable persistentClasses) => throw null; - public static System.Threading.Tasks.Task EvictAsync(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable persistentClasses, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static void EvictCollection(this NHibernate.ISessionFactory factory, string roleName, object id, string tenantIdentifier) => throw null; - public static void EvictCollection(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable roleNames) => throw null; - public static System.Threading.Tasks.Task EvictCollectionAsync(this NHibernate.ISessionFactory factory, string roleName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task EvictCollectionAsync(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable roleNames, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static void EvictEntity(this NHibernate.ISessionFactory factory, string entityName, object id, string tenantIdentifier) => throw null; - public static void EvictEntity(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable entityNames) => throw null; - public static System.Threading.Tasks.Task EvictEntityAsync(this NHibernate.ISessionFactory factory, string entityName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task EvictEntityAsync(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable entityNames, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `NHibernate.StaleObjectStateException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StaleObjectStateException : NHibernate.StaleStateException - { - public string EntityName { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public object Identifier { get => throw null; } - public override string Message { get => throw null; } - public StaleObjectStateException(string entityName, object identifier, System.Exception innerException) : base(default(string)) => throw null; - public StaleObjectStateException(string entityName, object identifier) : base(default(string)) => throw null; - protected StaleObjectStateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; - } - - // Generated from `NHibernate.StaleStateException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StaleStateException : NHibernate.HibernateException - { - public StaleStateException(string message, System.Exception innerException) => throw null; - public StaleStateException(string message) => throw null; - protected StaleStateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.StatelessSessionBuilderExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class StatelessSessionBuilderExtensions - { - public static T Tenant(this T builder, string tenantIdentifier) where T : NHibernate.ISessionBuilder => throw null; - public static NHibernate.IStatelessSessionBuilder Tenant(this NHibernate.IStatelessSessionBuilder builder, NHibernate.MultiTenancy.TenantConfiguration tenantConfig) => throw null; - } - - // Generated from `NHibernate.StatelessSessionExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class StatelessSessionExtensions - { - public static NHibernate.Multi.IQueryBatch CreateQueryBatch(this NHibernate.IStatelessSession session) => throw null; - public static T Get(this NHibernate.IStatelessSession session, string entityName, object id, NHibernate.LockMode lockMode) => throw null; - public static T Get(this NHibernate.IStatelessSession session, string entityName, object id) => throw null; - public static System.Threading.Tasks.Task GetAsync(this NHibernate.IStatelessSession session, string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetAsync(this NHibernate.IStatelessSession session, string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static NHibernate.ITransaction GetCurrentTransaction(this NHibernate.IStatelessSession session) => throw null; - } - - // Generated from `NHibernate.TransactionException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TransactionException : NHibernate.HibernateException - { - public TransactionException(string message, System.Exception innerException) => throw null; - public TransactionException(string message) => throw null; - protected TransactionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.TransactionExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class TransactionExtensions - { - public static void RegisterSynchronization(this NHibernate.ITransaction transaction, NHibernate.Transaction.ITransactionCompletionSynchronization synchronization) => throw null; - } - - // Generated from `NHibernate.TransientObjectException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TransientObjectException : NHibernate.HibernateException - { - public TransientObjectException(string message) => throw null; - protected TransientObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.TypeMismatchException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TypeMismatchException : NHibernate.HibernateException - { - public TypeMismatchException(string message, System.Exception inner) => throw null; - public TypeMismatchException(string message) => throw null; - protected TypeMismatchException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.UnresolvableObjectException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnresolvableObjectException : NHibernate.HibernateException - { - public string EntityName { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public object Identifier { get => throw null; } - public override string Message { get => throw null; } - public System.Type PersistentClass { get => throw null; } - public static void ThrowIfNull(object o, object id, string entityName) => throw null; - public static void ThrowIfNull(object o, object id, System.Type clazz) => throw null; - public UnresolvableObjectException(string message, object identifier, string entityName) => throw null; - public UnresolvableObjectException(string message, object identifier, System.Type clazz) => throw null; - public UnresolvableObjectException(object identifier, string entityName) => throw null; - public UnresolvableObjectException(object identifier, System.Type clazz) => throw null; - protected UnresolvableObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.WrongClassException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class WrongClassException : NHibernate.HibernateException, System.Runtime.Serialization.ISerializable - { - public string EntityName { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public object Identifier { get => throw null; } - public override string Message { get => throw null; } - public WrongClassException(string message, object identifier, string entityName) => throw null; - protected WrongClassException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - namespace Action { - // Generated from `NHibernate.Action.AbstractEntityInsertAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractEntityInsertAction : NHibernate.Action.EntityAction { - protected internal AbstractEntityInsertAction(object id, object[] state, object instance, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Engine.ISessionImplementor), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; + protected AbstractEntityInsertAction(object id, object[] state, object instance, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Engine.ISessionImplementor), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; public object[] State { get => throw null; } } - - // Generated from `NHibernate.Action.AfterTransactionCompletionProcessDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public delegate void AfterTransactionCompletionProcessDelegate(bool success); - - // Generated from `NHibernate.Action.BeforeTransactionCompletionProcessDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public delegate void BeforeTransactionCompletionProcessDelegate(); - - // Generated from `NHibernate.Action.BulkOperationCleanupAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BulkOperationCleanupAction : NHibernate.Action.IExecutable, NHibernate.Action.IAsyncExecutable, NHibernate.Action.IAfterTransactionCompletionProcess + public class BulkOperationCleanupAction : NHibernate.Action.IAsyncExecutable, NHibernate.Action.IExecutable, NHibernate.Action.IAfterTransactionCompletionProcess, NHibernate.Action.ICacheableExecutable { public NHibernate.Action.AfterTransactionCompletionProcessDelegate AfterTransactionCompletionProcess { get => throw null; } NHibernate.Action.IAfterTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.AfterTransactionCompletionProcess { get => throw null; } @@ -1637,8 +19,8 @@ namespace NHibernate public System.Threading.Tasks.Task BeforeExecutionsAsync(System.Threading.CancellationToken cancellationToken) => throw null; public NHibernate.Action.BeforeTransactionCompletionProcessDelegate BeforeTransactionCompletionProcess { get => throw null; } NHibernate.Action.IBeforeTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.BeforeTransactionCompletionProcess { get => throw null; } - public BulkOperationCleanupAction(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet querySpaces) => throw null; public BulkOperationCleanupAction(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Entity.IQueryable[] affectedQueryables) => throw null; + public BulkOperationCleanupAction(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet querySpaces) => throw null; public void Execute() => throw null; public void ExecuteAfterTransactionCompletion(bool success) => throw null; public System.Threading.Tasks.Task ExecuteAfterTransactionCompletionAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null; @@ -1646,57 +28,51 @@ namespace NHibernate public virtual void Init() => throw null; public virtual System.Threading.Tasks.Task InitAsync(System.Threading.CancellationToken cancellationToken) => throw null; public string[] PropertySpaces { get => throw null; } + public string[] QueryCacheSpaces { get => throw null; } } - - // Generated from `NHibernate.Action.CollectionAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class CollectionAction : System.Runtime.Serialization.IDeserializationCallback, System.IComparable, NHibernate.Action.IExecutable, NHibernate.Action.IAsyncExecutable, NHibernate.Action.IAfterTransactionCompletionProcess + public abstract class CollectionAction : NHibernate.Action.IAsyncExecutable, NHibernate.Action.IExecutable, System.IComparable, System.Runtime.Serialization.IDeserializationCallback, NHibernate.Action.IAfterTransactionCompletionProcess, NHibernate.Action.ICacheableExecutable { - public virtual NHibernate.Action.AfterTransactionCompletionProcessDelegate AfterTransactionCompletionProcess { get => throw null; } NHibernate.Action.IAfterTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.AfterTransactionCompletionProcess { get => throw null; } + public virtual NHibernate.Action.AfterTransactionCompletionProcessDelegate AfterTransactionCompletionProcess { get => throw null; } public virtual void BeforeExecutions() => throw null; public virtual System.Threading.Tasks.Task BeforeExecutionsAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public virtual NHibernate.Action.BeforeTransactionCompletionProcessDelegate BeforeTransactionCompletionProcess { get => throw null; } NHibernate.Action.IBeforeTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.BeforeTransactionCompletionProcess { get => throw null; } - protected internal NHibernate.Collection.IPersistentCollection Collection { get => throw null; } - protected CollectionAction(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session) => throw null; + public virtual NHibernate.Action.BeforeTransactionCompletionProcessDelegate BeforeTransactionCompletionProcess { get => throw null; } + protected NHibernate.Collection.IPersistentCollection Collection { get => throw null; } public virtual int CompareTo(NHibernate.Action.CollectionAction other) => throw null; - protected internal void Evict() => throw null; - protected internal System.Threading.Tasks.Task EvictAsync(System.Threading.CancellationToken cancellationToken) => throw null; + protected CollectionAction(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session) => throw null; + protected void Evict() => throw null; + protected System.Threading.Tasks.Task EvictAsync(System.Threading.CancellationToken cancellationToken) => throw null; public abstract void Execute(); public virtual void ExecuteAfterTransactionCompletion(bool success) => throw null; public virtual System.Threading.Tasks.Task ExecuteAfterTransactionCompletionAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null; public abstract System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken); protected object GetKey() => throw null; protected System.Threading.Tasks.Task GetKeyAsync(System.Threading.CancellationToken cancellationToken) => throw null; - protected internal object Key { get => throw null; } + protected object Key { get => throw null; } public NHibernate.Cache.Access.ISoftLock Lock { get => throw null; } void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - protected internal NHibernate.Persister.Collection.ICollectionPersister Persister { get => throw null; } + protected NHibernate.Persister.Collection.ICollectionPersister Persister { get => throw null; } public string[] PropertySpaces { get => throw null; } - protected internal NHibernate.Engine.ISessionImplementor Session { get => throw null; } + public string[] QueryCacheSpaces { get => throw null; } + protected NHibernate.Engine.ISessionImplementor Session { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.Action.CollectionRecreateAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionRecreateAction : NHibernate.Action.CollectionAction + public sealed class CollectionRecreateAction : NHibernate.Action.CollectionAction { public CollectionRecreateAction(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object key, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null; public override void Execute() => throw null; public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Action.CollectionRemoveAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionRemoveAction : NHibernate.Action.CollectionAction + public sealed class CollectionRemoveAction : NHibernate.Action.CollectionAction { - public CollectionRemoveAction(object affectedOwner, NHibernate.Persister.Collection.ICollectionPersister persister, object id, bool emptySnapshot, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null; - public CollectionRemoveAction(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object id, bool emptySnapshot, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null; public override int CompareTo(NHibernate.Action.CollectionAction other) => throw null; + public CollectionRemoveAction(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object id, bool emptySnapshot, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null; + public CollectionRemoveAction(object affectedOwner, NHibernate.Persister.Collection.ICollectionPersister persister, object id, bool emptySnapshot, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null; public override void Execute() => throw null; public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Action.CollectionUpdateAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionUpdateAction : NHibernate.Action.CollectionAction + public sealed class CollectionUpdateAction : NHibernate.Action.CollectionAction { public CollectionUpdateAction(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object key, bool emptySnapshot, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null; public override void Execute() => throw null; @@ -1704,20 +80,16 @@ namespace NHibernate public override System.Threading.Tasks.Task ExecuteAfterTransactionCompletionAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Action.DelayedPostInsertIdentifier` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DelayedPostInsertIdentifier { - public object ActualId { get => throw null; set => throw null; } + public object ActualId { get => throw null; set { } } public DelayedPostInsertIdentifier() => throw null; public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Action.DelayedPostInsertIdentifier that) => throw null; public override int GetHashCode() => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Action.EntityAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class EntityAction : System.Runtime.Serialization.IDeserializationCallback, System.IComparable, NHibernate.Action.IExecutable, NHibernate.Action.IBeforeTransactionCompletionProcess, NHibernate.Action.IAsyncExecutable, NHibernate.Action.IAfterTransactionCompletionProcess + public abstract class EntityAction : NHibernate.Action.IAsyncExecutable, NHibernate.Action.IExecutable, NHibernate.Action.IBeforeTransactionCompletionProcess, NHibernate.Action.IAfterTransactionCompletionProcess, System.IComparable, System.Runtime.Serialization.IDeserializationCallback, NHibernate.Action.ICacheableExecutable { public virtual NHibernate.Action.AfterTransactionCompletionProcessDelegate AfterTransactionCompletionProcess { get => throw null; } NHibernate.Action.IAfterTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.AfterTransactionCompletionProcess { get => throw null; } @@ -1730,7 +102,7 @@ namespace NHibernate protected virtual void BeforeTransactionCompletionProcessImpl() => throw null; protected virtual System.Threading.Tasks.Task BeforeTransactionCompletionProcessImplAsync(System.Threading.CancellationToken cancellationToken) => throw null; public virtual int CompareTo(NHibernate.Action.EntityAction other) => throw null; - protected internal EntityAction(NHibernate.Engine.ISessionImplementor session, object id, object instance, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; + protected EntityAction(NHibernate.Engine.ISessionImplementor session, object id, object instance, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; public string EntityName { get => throw null; } public abstract void Execute(); public void ExecuteAfterTransactionCompletion(bool success) => throw null; @@ -1738,7 +110,7 @@ namespace NHibernate public abstract System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken); public void ExecuteBeforeTransactionCompletion() => throw null; public System.Threading.Tasks.Task ExecuteBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken) => throw null; - protected internal abstract bool HasPostCommitEventListeners { get; } + protected abstract bool HasPostCommitEventListeners { get; } public object Id { get => throw null; } public object Instance { get => throw null; } protected virtual bool NeedsAfterTransactionCompletion() => throw null; @@ -1746,12 +118,11 @@ namespace NHibernate void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; } public string[] PropertySpaces { get => throw null; } + public string[] QueryCacheSpaces { get => throw null; } public NHibernate.Engine.ISessionImplementor Session { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.Action.EntityDeleteAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityDeleteAction : NHibernate.Action.EntityAction + public sealed class EntityDeleteAction : NHibernate.Action.EntityAction { protected override void AfterTransactionCompletionProcessImpl(bool success) => throw null; protected override System.Threading.Tasks.Task AfterTransactionCompletionProcessImplAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null; @@ -1759,24 +130,20 @@ namespace NHibernate public EntityDeleteAction(object id, object[] state, object version, object instance, NHibernate.Persister.Entity.IEntityPersister persister, bool isCascadeDeleteEnabled, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Engine.ISessionImplementor), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; public override void Execute() => throw null; public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override bool HasPostCommitEventListeners { get => throw null; } + protected override bool HasPostCommitEventListeners { get => throw null; } } - - // Generated from `NHibernate.Action.EntityIdentityInsertAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityIdentityInsertAction : NHibernate.Action.AbstractEntityInsertAction + public sealed class EntityIdentityInsertAction : NHibernate.Action.AbstractEntityInsertAction { protected override void AfterTransactionCompletionProcessImpl(bool success) => throw null; protected override System.Threading.Tasks.Task AfterTransactionCompletionProcessImplAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.Engine.EntityKey DelayedEntityKey { get => throw null; } public EntityIdentityInsertAction(object[] state, object instance, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor session, bool isDelayed) : base(default(object), default(object[]), default(object), default(NHibernate.Persister.Entity.IEntityPersister), default(NHibernate.Engine.ISessionImplementor)) => throw null; + public NHibernate.Engine.EntityKey DelayedEntityKey { get => throw null; } public override void Execute() => throw null; public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; public object GeneratedId { get => throw null; } - protected internal override bool HasPostCommitEventListeners { get => throw null; } + protected override bool HasPostCommitEventListeners { get => throw null; } } - - // Generated from `NHibernate.Action.EntityInsertAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityInsertAction : NHibernate.Action.AbstractEntityInsertAction + public sealed class EntityInsertAction : NHibernate.Action.AbstractEntityInsertAction { protected override void AfterTransactionCompletionProcessImpl(bool success) => throw null; protected override System.Threading.Tasks.Task AfterTransactionCompletionProcessImplAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null; @@ -1784,42 +151,36 @@ namespace NHibernate public EntityInsertAction(object id, object[] state, object instance, object version, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor session) : base(default(object), default(object[]), default(object), default(NHibernate.Persister.Entity.IEntityPersister), default(NHibernate.Engine.ISessionImplementor)) => throw null; public override void Execute() => throw null; public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override bool HasPostCommitEventListeners { get => throw null; } + protected override bool HasPostCommitEventListeners { get => throw null; } } - - // Generated from `NHibernate.Action.EntityUpdateAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityUpdateAction : NHibernate.Action.EntityAction + public sealed class EntityUpdateAction : NHibernate.Action.EntityAction { protected override void AfterTransactionCompletionProcessImpl(bool success) => throw null; protected override System.Threading.Tasks.Task AfterTransactionCompletionProcessImplAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null; public EntityUpdateAction(object id, object[] state, int[] dirtyProperties, bool hasDirtyCollection, object[] previousState, object previousVersion, object nextVersion, object instance, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Engine.ISessionImplementor), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; public override void Execute() => throw null; public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override bool HasPostCommitEventListeners { get => throw null; } + protected override bool HasPostCommitEventListeners { get => throw null; } } - - // Generated from `NHibernate.Action.IAfterTransactionCompletionProcess` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IAfterTransactionCompletionProcess { void ExecuteAfterTransactionCompletion(bool success); System.Threading.Tasks.Task ExecuteAfterTransactionCompletionAsync(bool success, System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Action.IAsyncExecutable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IAsyncExecutable : NHibernate.Action.IExecutable { NHibernate.Action.IAfterTransactionCompletionProcess AfterTransactionCompletionProcess { get; } NHibernate.Action.IBeforeTransactionCompletionProcess BeforeTransactionCompletionProcess { get; } } - - // Generated from `NHibernate.Action.IBeforeTransactionCompletionProcess` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBeforeTransactionCompletionProcess { void ExecuteBeforeTransactionCompletion(); System.Threading.Tasks.Task ExecuteBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Action.IExecutable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public interface ICacheableExecutable : NHibernate.Action.IExecutable + { + string[] QueryCacheSpaces { get; } + } public interface IExecutable { NHibernate.Action.AfterTransactionCompletionProcessDelegate AfterTransactionCompletionProcess { get; } @@ -1830,15 +191,21 @@ namespace NHibernate System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken); string[] PropertySpaces { get; } } - + } + public class ADOException : NHibernate.HibernateException + { + public ADOException() => throw null; + public ADOException(string message, System.Exception innerException) => throw null; + public ADOException(string message, System.Exception innerException, string sql) => throw null; + protected ADOException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string SqlString { get => throw null; } } namespace AdoNet { - // Generated from `NHibernate.AdoNet.AbstractBatcher` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractBatcher : System.IDisposable, NHibernate.Engine.IBatcher + public abstract class AbstractBatcher : NHibernate.Engine.IBatcher, System.IDisposable { public void AbortBatch(System.Exception e) => throw null; - protected AbstractBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null; public abstract void AddToBatch(NHibernate.AdoNet.IExpectation expectation); public abstract System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken); public abstract int BatchSize { get; set; } @@ -1851,6 +218,7 @@ namespace NHibernate protected NHibernate.AdoNet.ConnectionManager ConnectionManager { get => throw null; } protected System.Exception Convert(System.Exception sqlException, string message) => throw null; protected abstract int CountOfStatementsInCurrentBatch { get; } + protected AbstractBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null; protected System.Data.Common.DbCommand CurrentCommand { get => throw null; } protected NHibernate.SqlTypes.SqlType[] CurrentCommandParameterTypes { get => throw null; } protected NHibernate.SqlCommand.SqlString CurrentCommandSql { get => throw null; } @@ -1882,17 +250,12 @@ namespace NHibernate public System.Data.Common.DbCommand PrepareCommand(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null; public System.Threading.Tasks.Task PrepareCommandAsync(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes, System.Threading.CancellationToken cancellationToken) => throw null; public System.Data.Common.DbCommand PrepareQueryCommand(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null; - // ERR: Stub generator didn't handle member: ~AbstractBatcher } - - // Generated from `NHibernate.AdoNet.ColumnNameCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ColumnNameCache { public ColumnNameCache(int columnCount) => throw null; public int GetIndexForColumnName(string columnName, NHibernate.AdoNet.ResultSetWrapper rs) => throw null; } - - // Generated from `NHibernate.AdoNet.ConnectionManager` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ConnectionManager : System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IDeserializationCallback { public void AddDependentSession(NHibernate.Engine.ISessionImplementor session) => throw null; @@ -1904,10 +267,10 @@ namespace NHibernate public NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel) => throw null; public NHibernate.ITransaction BeginTransaction() => throw null; public System.Data.Common.DbConnection Close() => throw null; - public ConnectionManager(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection suppliedConnection, NHibernate.ConnectionReleaseMode connectionReleaseMode, NHibernate.IInterceptor interceptor, bool shouldAutoJoinTransaction, NHibernate.Connection.IConnectionAccess connectionAccess) => throw null; - public ConnectionManager(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection suppliedConnection, NHibernate.ConnectionReleaseMode connectionReleaseMode, NHibernate.IInterceptor interceptor, bool shouldAutoJoinTransaction) => throw null; public System.Data.Common.DbCommand CreateCommand() => throw null; public System.Threading.Tasks.Task CreateCommandAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public ConnectionManager(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection suppliedConnection, NHibernate.ConnectionReleaseMode connectionReleaseMode, NHibernate.IInterceptor interceptor, bool shouldAutoJoinTransaction, NHibernate.Connection.IConnectionAccess connectionAccess) => throw null; + public ConnectionManager(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection suppliedConnection, NHibernate.ConnectionReleaseMode connectionReleaseMode, NHibernate.IInterceptor interceptor, bool shouldAutoJoinTransaction) => throw null; public NHibernate.ITransaction CurrentTransaction { get => throw null; } public System.Collections.Generic.IReadOnlyCollection DependentSessions { get => throw null; } public System.Data.Common.DbConnection Disconnect() => throw null; @@ -1918,6 +281,8 @@ namespace NHibernate public void FlushEnding() => throw null; public System.Data.Common.DbConnection GetConnection() => throw null; public System.Threading.Tasks.Task GetConnectionAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Data.Common.DbConnection GetNewConnection() => throw null; + public System.Threading.Tasks.Task GetNewConnectionAsync(System.Threading.CancellationToken cancellationToken) => throw null; public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public bool IsConnected { get => throw null; } public bool IsInActiveExplicitTransaction { get => throw null; } @@ -1925,208 +290,169 @@ namespace NHibernate public bool IsReadyForSerialization { get => throw null; } void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; public bool ProcessingFromSystemTransaction { get => throw null; } - public void Reconnect(System.Data.Common.DbConnection suppliedConnection) => throw null; public void Reconnect() => throw null; + public void Reconnect(System.Data.Common.DbConnection suppliedConnection) => throw null; public void RemoveDependentSession(NHibernate.Engine.ISessionImplementor session) => throw null; public NHibernate.Engine.ISessionImplementor Session { get => throw null; } public bool ShouldAutoJoinTransaction { get => throw null; } public NHibernate.ITransaction Transaction { get => throw null; } } - - // Generated from `NHibernate.AdoNet.Expectations` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Expectations { public static NHibernate.AdoNet.IExpectation AppropriateExpectation(NHibernate.Engine.ExecuteUpdateResultCheckStyle style) => throw null; public static NHibernate.AdoNet.IExpectation Basic; - // Generated from `NHibernate.AdoNet.Expectations+BasicExpectation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BasicExpectation : NHibernate.AdoNet.IExpectation { - public BasicExpectation(int expectedRowCount) => throw null; public virtual bool CanBeBatched { get => throw null; } + public BasicExpectation(int expectedRowCount) => throw null; protected virtual int DetermineRowCount(int reportedRowCount, System.Data.Common.DbCommand statement) => throw null; public virtual int ExpectedRowCount { get => throw null; } public void VerifyOutcomeNonBatched(int rowCount, System.Data.Common.DbCommand statement) => throw null; } - - public static NHibernate.AdoNet.IExpectation None; - // Generated from `NHibernate.AdoNet.Expectations+NoneExpectation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NoneExpectation : NHibernate.AdoNet.IExpectation { public bool CanBeBatched { get => throw null; } - public int ExpectedRowCount { get => throw null; } public NoneExpectation() => throw null; + public int ExpectedRowCount { get => throw null; } public void VerifyOutcomeNonBatched(int rowCount, System.Data.Common.DbCommand statement) => throw null; } - - - public static void VerifyOutcomeBatched(int expectedRowCount, int rowCount, System.Data.Common.DbCommand statement) => throw null; public static void VerifyOutcomeBatched(int expectedRowCount, int rowCount) => throw null; + public static void VerifyOutcomeBatched(int expectedRowCount, int rowCount, System.Data.Common.DbCommand statement) => throw null; } - - // Generated from `NHibernate.AdoNet.GenericBatchingBatcher` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericBatchingBatcher : NHibernate.AdoNet.AbstractBatcher { public override void AddToBatch(NHibernate.AdoNet.IExpectation expectation) => throw null; public override System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken) => throw null; - public override int BatchSize { get => throw null; set => throw null; } + public override sealed int BatchSize { get => throw null; set { } } public override void CloseCommands() => throw null; protected override int CountOfStatementsInCurrentBatch { get => throw null; } + public GenericBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null; protected override void Dispose(bool isDisposing) => throw null; protected override void DoExecuteBatch(System.Data.Common.DbCommand ps) => throw null; protected override System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null; - public GenericBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null; } - - // Generated from `NHibernate.AdoNet.GenericBatchingBatcherFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericBatchingBatcherFactory : NHibernate.AdoNet.IBatcherFactory { public virtual NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null; public GenericBatchingBatcherFactory() => throw null; } - - // Generated from `NHibernate.AdoNet.HanaBatchingBatcher` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HanaBatchingBatcher : NHibernate.AdoNet.AbstractBatcher { public override void AddToBatch(NHibernate.AdoNet.IExpectation expectation) => throw null; public override System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken) => throw null; - public override int BatchSize { get => throw null; set => throw null; } + public override int BatchSize { get => throw null; set { } } public override void CloseCommands() => throw null; protected override int CountOfStatementsInCurrentBatch { get => throw null; } + public HanaBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null; protected override void Dispose(bool isDisposing) => throw null; protected override void DoExecuteBatch(System.Data.Common.DbCommand ps) => throw null; protected override System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null; - public HanaBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null; } - - // Generated from `NHibernate.AdoNet.HanaBatchingBatcherFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HanaBatchingBatcherFactory : NHibernate.AdoNet.IBatcherFactory { public virtual NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null; public HanaBatchingBatcherFactory() => throw null; } - - // Generated from `NHibernate.AdoNet.IBatcherFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBatcherFactory { NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor); } - - // Generated from `NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEmbeddedBatcherFactoryProvider { System.Type BatcherFactoryClass { get; } } - - // Generated from `NHibernate.AdoNet.IExpectation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IExpectation { bool CanBeBatched { get; } int ExpectedRowCount { get; } void VerifyOutcomeNonBatched(int rowCount, System.Data.Common.DbCommand statement); } - - // Generated from `NHibernate.AdoNet.IParameterAdjuster` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IParameterAdjuster { void AdjustParameterForValue(System.Data.Common.DbParameter parameter, NHibernate.SqlTypes.SqlType sqlType, object value); } - - // Generated from `NHibernate.AdoNet.MySqlClientBatchingBatcher` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MySqlClientBatchingBatcher : NHibernate.AdoNet.AbstractBatcher { public override void AddToBatch(NHibernate.AdoNet.IExpectation expectation) => throw null; public override System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken) => throw null; - public override int BatchSize { get => throw null; set => throw null; } + public override int BatchSize { get => throw null; set { } } public override void CloseCommands() => throw null; protected override int CountOfStatementsInCurrentBatch { get => throw null; } + public MySqlClientBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null; protected override void Dispose(bool isDisposing) => throw null; protected override void DoExecuteBatch(System.Data.Common.DbCommand ps) => throw null; protected override System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null; - public MySqlClientBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null; } - - // Generated from `NHibernate.AdoNet.MySqlClientBatchingBatcherFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MySqlClientBatchingBatcherFactory : NHibernate.AdoNet.IBatcherFactory { public virtual NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null; public MySqlClientBatchingBatcherFactory() => throw null; } - - // Generated from `NHibernate.AdoNet.MySqlClientSqlCommandSet` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MySqlClientSqlCommandSet : System.IDisposable { public void Append(System.Data.Common.DbCommand command) => throw null; public int CountOfCommands { get => throw null; } + public MySqlClientSqlCommandSet(int batchSize) => throw null; public void Dispose() => throw null; public int ExecuteNonQuery() => throw null; - public MySqlClientSqlCommandSet(int batchSize) => throw null; } - - // Generated from `NHibernate.AdoNet.NonBatchingBatcher` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NonBatchingBatcher : NHibernate.AdoNet.AbstractBatcher { public override void AddToBatch(NHibernate.AdoNet.IExpectation expectation) => throw null; public override System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken) => throw null; - public override int BatchSize { get => throw null; set => throw null; } + public override int BatchSize { get => throw null; set { } } protected override int CountOfStatementsInCurrentBatch { get => throw null; } + public NonBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null; protected override void DoExecuteBatch(System.Data.Common.DbCommand ps) => throw null; protected override System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null; - public NonBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null; } - - // Generated from `NHibernate.AdoNet.NonBatchingBatcherFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NonBatchingBatcherFactory : NHibernate.AdoNet.IBatcherFactory { public virtual NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null; public NonBatchingBatcherFactory() => throw null; } - - // Generated from `NHibernate.AdoNet.OracleDataClientBatchingBatcher` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OracleDataClientBatchingBatcher : NHibernate.AdoNet.AbstractBatcher { public override void AddToBatch(NHibernate.AdoNet.IExpectation expectation) => throw null; public override System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken) => throw null; - public override int BatchSize { get => throw null; set => throw null; } + public override int BatchSize { get => throw null; set { } } protected override int CountOfStatementsInCurrentBatch { get => throw null; } + public OracleDataClientBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null; protected override void DoExecuteBatch(System.Data.Common.DbCommand ps) => throw null; protected override System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null; - public OracleDataClientBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null; } - - // Generated from `NHibernate.AdoNet.OracleDataClientBatchingBatcherFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OracleDataClientBatchingBatcherFactory : NHibernate.AdoNet.IBatcherFactory { public virtual NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null; public OracleDataClientBatchingBatcherFactory() => throw null; } - - // Generated from `NHibernate.AdoNet.ResultSetWrapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ResultSetWrapper : System.Data.Common.DbDataReader { public override void Close() => throw null; + public ResultSetWrapper(System.Data.Common.DbDataReader resultSet, NHibernate.AdoNet.ColumnNameCache columnNameCache) => throw null; public override int Depth { get => throw null; } protected override void Dispose(bool disposing) => throw null; public override bool Equals(object obj) => throw null; public override int FieldCount { get => throw null; } public override bool GetBoolean(int i) => throw null; - public override System.Byte GetByte(int i) => throw null; - public override System.Int64 GetBytes(int i, System.Int64 fieldOffset, System.Byte[] buffer, int bufferoffset, int length) => throw null; - public override System.Char GetChar(int i) => throw null; - public override System.Int64 GetChars(int i, System.Int64 fieldoffset, System.Char[] buffer, int bufferoffset, int length) => throw null; + public override byte GetByte(int i) => throw null; + public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) => throw null; + public override char GetChar(int i) => throw null; + public override long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length) => throw null; public override string GetDataTypeName(int i) => throw null; public override System.DateTime GetDateTime(int i) => throw null; protected override System.Data.Common.DbDataReader GetDbDataReader(int ordinal) => throw null; - public override System.Decimal GetDecimal(int i) => throw null; + public override decimal GetDecimal(int i) => throw null; public override double GetDouble(int i) => throw null; public override System.Collections.IEnumerator GetEnumerator() => throw null; public override System.Type GetFieldType(int i) => throw null; public override float GetFloat(int i) => throw null; public override System.Guid GetGuid(int i) => throw null; public override int GetHashCode() => throw null; - public override System.Int16 GetInt16(int i) => throw null; + public override short GetInt16(int i) => throw null; public override int GetInt32(int i) => throw null; - public override System.Int64 GetInt64(int i) => throw null; + public override long GetInt64(int i) => throw null; public override string GetName(int i) => throw null; public override int GetOrdinal(string name) => throw null; public override System.Data.DataTable GetSchemaTable() => throw null; @@ -2137,44 +463,37 @@ namespace NHibernate public override bool IsClosed { get => throw null; } public override bool IsDBNull(int i) => throw null; public override System.Threading.Tasks.Task IsDBNullAsync(int ordinal, System.Threading.CancellationToken cancellationToken) => throw null; - public override object this[string name] { get => throw null; } - public override object this[int i] { get => throw null; } public override bool NextResult() => throw null; public override System.Threading.Tasks.Task NextResultAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override bool Read() => throw null; public override System.Threading.Tasks.Task ReadAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override int RecordsAffected { get => throw null; } - public ResultSetWrapper(System.Data.Common.DbDataReader resultSet, NHibernate.AdoNet.ColumnNameCache columnNameCache) => throw null; + public override object this[int i] { get => throw null; } + public override object this[string name] { get => throw null; } } - - // Generated from `NHibernate.AdoNet.TooManyRowsAffectedException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TooManyRowsAffectedException : NHibernate.HibernateException { public int ActualRowCount { get => throw null; } - public int ExpectedRowCount { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public TooManyRowsAffectedException(string message, int expectedRowCount, int actualRowCount) => throw null; protected TooManyRowsAffectedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public int ExpectedRowCount { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - namespace Util { - // Generated from `NHibernate.AdoNet.Util.BasicFormatter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BasicFormatter : NHibernate.AdoNet.Util.IFormatter { - public BasicFormatter() => throw null; - public virtual string Format(string source) => throw null; - protected const string IndentString = default; - protected const string Initial = default; protected static System.Collections.Generic.HashSet beginClauses; + public BasicFormatter() => throw null; protected static System.Collections.Generic.HashSet dml; protected static System.Collections.Generic.HashSet endClauses; + public virtual string Format(string source) => throw null; + protected static string IndentString; + protected static string Initial; protected static System.Collections.Generic.HashSet logical; protected static System.Collections.Generic.HashSet misc; protected static System.Collections.Generic.HashSet quantifiers; } - - // Generated from `NHibernate.AdoNet.Util.DdlFormatter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DdlFormatter : NHibernate.AdoNet.Util.IFormatter { public DdlFormatter() => throw null; @@ -2183,83 +502,74 @@ namespace NHibernate protected virtual string FormatCommentOn(string sql) => throw null; protected virtual string FormatCreateTable(string sql) => throw null; } - - // Generated from `NHibernate.AdoNet.Util.FormatStyle` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FormatStyle { public static NHibernate.AdoNet.Util.FormatStyle Basic; public static NHibernate.AdoNet.Util.FormatStyle Ddl; public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.AdoNet.Util.FormatStyle other) => throw null; - public NHibernate.AdoNet.Util.IFormatter Formatter { get => throw null; set => throw null; } + public NHibernate.AdoNet.Util.IFormatter Formatter { get => throw null; } public override int GetHashCode() => throw null; - public string Name { get => throw null; set => throw null; } + public string Name { get => throw null; } public static NHibernate.AdoNet.Util.FormatStyle None; } - - // Generated from `NHibernate.AdoNet.Util.IFormatter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IFormatter { string Format(string source); } - - // Generated from `NHibernate.AdoNet.Util.SqlStatementLogger` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlStatementLogger { + public SqlStatementLogger() => throw null; + public SqlStatementLogger(bool logToStdout, bool formatSql) => throw null; public NHibernate.AdoNet.Util.FormatStyle DetermineActualStyle(NHibernate.AdoNet.Util.FormatStyle style) => throw null; - public bool FormatSql { get => throw null; set => throw null; } + public bool FormatSql { get => throw null; set { } } public string GetCommandLineWithParameters(System.Data.Common.DbCommand command) => throw null; public string GetParameterLoggableValue(System.Data.Common.DbParameter parameter) => throw null; public bool IsDebugEnabled { get => throw null; } public void LogBatchCommand(string batchCommand) => throw null; public virtual void LogCommand(string message, System.Data.Common.DbCommand command, NHibernate.AdoNet.Util.FormatStyle style) => throw null; public virtual void LogCommand(System.Data.Common.DbCommand command, NHibernate.AdoNet.Util.FormatStyle style) => throw null; - public bool LogToStdout { get => throw null; set => throw null; } - public SqlStatementLogger(bool logToStdout, bool formatSql) => throw null; - public SqlStatementLogger() => throw null; + public bool LogToStdout { get => throw null; set { } } } - } } + public class AssertionFailure : System.Exception + { + public AssertionFailure() => throw null; + public AssertionFailure(string message) => throw null; + public AssertionFailure(string message, System.Exception innerException) => throw null; + protected AssertionFailure(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } namespace Bytecode { - // Generated from `NHibernate.Bytecode.AbstractBytecodeProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractBytecodeProvider : NHibernate.Bytecode.IInjectableProxyFactoryFactory, NHibernate.Bytecode.IInjectableCollectionTypeFactoryClass, NHibernate.Bytecode.IBytecodeProvider + public abstract class AbstractBytecodeProvider : NHibernate.Bytecode.IBytecodeProvider, NHibernate.Bytecode.IInjectableProxyFactoryFactory, NHibernate.Bytecode.IInjectableCollectionTypeFactoryClass { - protected AbstractBytecodeProvider() => throw null; public virtual NHibernate.Bytecode.ICollectionTypeFactory CollectionTypeFactory { get => throw null; } + protected AbstractBytecodeProvider() => throw null; public abstract NHibernate.Bytecode.IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters); public virtual NHibernate.Bytecode.IObjectsFactory ObjectsFactory { get => throw null; } + protected System.Type proxyFactoryFactory; public virtual NHibernate.Bytecode.IProxyFactoryFactory ProxyFactoryFactory { get => throw null; } public void SetCollectionTypeFactoryClass(string typeAssemblyQualifiedName) => throw null; public void SetCollectionTypeFactoryClass(System.Type type) => throw null; public virtual void SetProxyFactoryFactory(string typeName) => throw null; - protected System.Type proxyFactoryFactory; } - - // Generated from `NHibernate.Bytecode.AccessOptimizerExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class AccessOptimizerExtensions + public static partial class AccessOptimizerExtensions { public static object GetPropertyValue(this NHibernate.Bytecode.IAccessOptimizer optimizer, object target, int i) => throw null; public static void SetPropertyValue(this NHibernate.Bytecode.IAccessOptimizer optimizer, object target, int i, object value) => throw null; } - - // Generated from `NHibernate.Bytecode.ActivatorObjectsFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ActivatorObjectsFactory : NHibernate.Bytecode.IObjectsFactory { - public ActivatorObjectsFactory() => throw null; - public object CreateInstance(System.Type type, params object[] ctorArgs) => throw null; - public object CreateInstance(System.Type type, bool nonPublic) => throw null; public object CreateInstance(System.Type type) => throw null; + public object CreateInstance(System.Type type, bool nonPublic) => throw null; + public object CreateInstance(System.Type type, params object[] ctorArgs) => throw null; + public ActivatorObjectsFactory() => throw null; } - - // Generated from `NHibernate.Bytecode.BytecodeProviderExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class BytecodeProviderExtensions + public static partial class BytecodeProviderExtensions { public static NHibernate.Bytecode.IReflectionOptimizer GetReflectionOptimizer(this NHibernate.Bytecode.IBytecodeProvider bytecodeProvider, System.Type clazz, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters, NHibernate.Properties.IGetter specializedGetter, NHibernate.Properties.ISetter specializedSetter) => throw null; } - - // Generated from `NHibernate.Bytecode.DefaultProxyFactoryFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory { public NHibernate.Proxy.IProxyFactory BuildProxyFactory() => throw null; @@ -2268,47 +578,37 @@ namespace NHibernate public bool IsProxy(object entity) => throw null; public NHibernate.Proxy.IProxyValidator ProxyValidator { get => throw null; } } - - // Generated from `NHibernate.Bytecode.HibernateByteCodeException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HibernateByteCodeException : NHibernate.HibernateException { - public HibernateByteCodeException(string message, System.Exception inner) => throw null; - public HibernateByteCodeException(string message) => throw null; public HibernateByteCodeException() => throw null; + public HibernateByteCodeException(string message) => throw null; + public HibernateByteCodeException(string message, System.Exception inner) => throw null; protected HibernateByteCodeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Bytecode.HibernateObjectsFactoryException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HibernateObjectsFactoryException : NHibernate.HibernateException { - public HibernateObjectsFactoryException(string message, System.Exception inner) => throw null; - public HibernateObjectsFactoryException(string message) => throw null; public HibernateObjectsFactoryException() => throw null; + public HibernateObjectsFactoryException(string message) => throw null; + public HibernateObjectsFactoryException(string message, System.Exception inner) => throw null; protected HibernateObjectsFactoryException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Bytecode.IAccessOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IAccessOptimizer { object[] GetPropertyValues(object target); void SetPropertyValues(object target, object[] values); } - - // Generated from `NHibernate.Bytecode.IBytecodeEnhancementMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBytecodeEnhancementMetadata { bool EnhancedForLazyLoading { get; } string EntityName { get; } NHibernate.Intercept.IFieldInterceptor ExtractInterceptor(object entity); - System.Collections.Generic.ISet GetUninitializedLazyProperties(object[] entityState); System.Collections.Generic.ISet GetUninitializedLazyProperties(object entity); + System.Collections.Generic.ISet GetUninitializedLazyProperties(object[] entityState); bool HasAnyUninitializedLazyProperties(object entity); NHibernate.Intercept.IFieldInterceptor InjectInterceptor(object entity, NHibernate.Engine.ISessionImplementor session); NHibernate.Bytecode.LazyPropertiesMetadata LazyPropertiesMetadata { get; } NHibernate.Bytecode.UnwrapProxyPropertiesMetadata UnwrapProxyPropertiesMetadata { get; } } - - // Generated from `NHibernate.Bytecode.IBytecodeProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBytecodeProvider { NHibernate.Bytecode.ICollectionTypeFactory CollectionTypeFactory { get; } @@ -2316,8 +616,6 @@ namespace NHibernate NHibernate.Bytecode.IObjectsFactory ObjectsFactory { get; } NHibernate.Bytecode.IProxyFactoryFactory ProxyFactoryFactory { get; } } - - // Generated from `NHibernate.Bytecode.ICollectionTypeFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionTypeFactory { NHibernate.Type.CollectionType Array(string role, string propertyRef, System.Type elementClass); @@ -2331,35 +629,25 @@ namespace NHibernate NHibernate.Type.CollectionType SortedList(string role, string propertyRef, System.Collections.Generic.IComparer comparer); NHibernate.Type.CollectionType SortedSet(string role, string propertyRef, System.Collections.Generic.IComparer comparer); } - - // Generated from `NHibernate.Bytecode.IInjectableCollectionTypeFactoryClass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IInjectableCollectionTypeFactoryClass { void SetCollectionTypeFactoryClass(string typeAssemblyQualifiedName); void SetCollectionTypeFactoryClass(System.Type type); } - - // Generated from `NHibernate.Bytecode.IInjectableProxyFactoryFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IInjectableProxyFactoryFactory { void SetProxyFactoryFactory(string typeName); } - - // Generated from `NHibernate.Bytecode.IInstantiationOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IInstantiationOptimizer { object CreateInstance(); } - - // Generated from `NHibernate.Bytecode.IObjectsFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IObjectsFactory { - object CreateInstance(System.Type type, params object[] ctorArgs); - object CreateInstance(System.Type type, bool nonPublic); object CreateInstance(System.Type type); + object CreateInstance(System.Type type, bool nonPublic); + object CreateInstance(System.Type type, params object[] ctorArgs); } - - // Generated from `NHibernate.Bytecode.IProxyFactoryFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IProxyFactoryFactory { NHibernate.Proxy.IProxyFactory BuildProxyFactory(); @@ -2367,17 +655,14 @@ namespace NHibernate bool IsProxy(object entity); NHibernate.Proxy.IProxyValidator ProxyValidator { get; } } - - // Generated from `NHibernate.Bytecode.IReflectionOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IReflectionOptimizer { NHibernate.Bytecode.IAccessOptimizer AccessOptimizer { get; } NHibernate.Bytecode.IInstantiationOptimizer InstantiationOptimizer { get; } } - - // Generated from `NHibernate.Bytecode.LazyPropertiesMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class LazyPropertiesMetadata { + public LazyPropertiesMetadata(string entityName, System.Collections.Generic.IDictionary lazyPropertyDescriptors, System.Collections.Generic.IDictionary> fetchGroups) => throw null; public string EntityName { get => throw null; } public System.Collections.Generic.ISet FetchGroupNames { get => throw null; } public static NHibernate.Bytecode.LazyPropertiesMetadata From(string entityName, System.Collections.Generic.IEnumerable lazyPropertyDescriptors) => throw null; @@ -2386,13 +671,10 @@ namespace NHibernate public NHibernate.Bytecode.LazyPropertyDescriptor GetLazyPropertyDescriptor(string propertyName) => throw null; public System.Collections.Generic.ISet GetPropertiesInFetchGroup(string groupName) => throw null; public bool HasLazyProperties { get => throw null; } - public LazyPropertiesMetadata(string entityName, System.Collections.Generic.IDictionary lazyPropertyDescriptors, System.Collections.Generic.IDictionary> fetchGroups) => throw null; public System.Collections.Generic.IEnumerable LazyPropertyDescriptors { get => throw null; } public System.Collections.Generic.ISet LazyPropertyNames { get => throw null; } public static NHibernate.Bytecode.LazyPropertiesMetadata NonEnhanced(string entityName) => throw null; } - - // Generated from `NHibernate.Bytecode.LazyPropertyDescriptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class LazyPropertyDescriptor { public string FetchGroupName { get => throw null; } @@ -2402,66 +684,8 @@ namespace NHibernate public int PropertyIndex { get => throw null; } public NHibernate.Type.IType Type { get => throw null; } } - - // Generated from `NHibernate.Bytecode.NotInstrumentedException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NotInstrumentedException : NHibernate.HibernateException - { - public NotInstrumentedException(string message) => throw null; - protected NotInstrumentedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.Bytecode.NullBytecodeProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NullBytecodeProvider : NHibernate.Bytecode.AbstractBytecodeProvider - { - public override NHibernate.Bytecode.IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters) => throw null; - public NullBytecodeProvider() => throw null; - } - - // Generated from `NHibernate.Bytecode.StaticProxyFactoryFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StaticProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory - { - public NHibernate.Proxy.IProxyFactory BuildProxyFactory() => throw null; - public bool IsInstrumented(System.Type entityClass) => throw null; - public bool IsProxy(object entity) => throw null; - public NHibernate.Proxy.IProxyValidator ProxyValidator { get => throw null; } - public StaticProxyFactoryFactory() => throw null; - } - - // Generated from `NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnableToLoadProxyFactoryFactoryException : NHibernate.Bytecode.HibernateByteCodeException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string Message { get => throw null; } - public string TypeName { get => throw null; } - public UnableToLoadProxyFactoryFactoryException(string typeName, System.Exception inner) => throw null; - protected UnableToLoadProxyFactoryFactoryException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.Bytecode.UnwrapProxyPropertiesMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnwrapProxyPropertiesMetadata - { - public string EntityName { get => throw null; } - public static NHibernate.Bytecode.UnwrapProxyPropertiesMetadata From(string entityName, System.Collections.Generic.IEnumerable unwrapProxyPropertyDescriptors) => throw null; - public int GetUnwrapProxyPropertyIndex(string propertyName) => throw null; - public bool HasUnwrapProxyProperties { get => throw null; } - public static NHibernate.Bytecode.UnwrapProxyPropertiesMetadata NonEnhanced(string entityName) => throw null; - public UnwrapProxyPropertiesMetadata(string entityName, System.Collections.Generic.IDictionary unwrapProxyPropertyDescriptors) => throw null; - public System.Collections.Generic.IEnumerable UnwrapProxyPropertyDescriptors { get => throw null; } - public System.Collections.Generic.ISet UnwrapProxyPropertyNames { get => throw null; } - } - - // Generated from `NHibernate.Bytecode.UnwrapProxyPropertyDescriptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnwrapProxyPropertyDescriptor - { - public static NHibernate.Bytecode.UnwrapProxyPropertyDescriptor From(NHibernate.Mapping.Property property, int propertyIndex) => throw null; - public string Name { get => throw null; } - public int PropertyIndex { get => throw null; } - public NHibernate.Type.IType Type { get => throw null; } - } - namespace Lightweight { - // Generated from `NHibernate.Bytecode.Lightweight.AccessOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AccessOptimizer : NHibernate.Bytecode.IAccessOptimizer { public AccessOptimizer(NHibernate.Bytecode.Lightweight.GetPropertyValuesInvoker getDelegate, NHibernate.Bytecode.Lightweight.SetPropertyValuesInvoker setDelegate, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters) => throw null; @@ -2471,71 +695,101 @@ namespace NHibernate public void SetPropertyValue(object target, int i, object value) => throw null; public void SetPropertyValues(object target, object[] values) => throw null; } - - // Generated from `NHibernate.Bytecode.Lightweight.BytecodeProviderImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BytecodeProviderImpl : NHibernate.Bytecode.AbstractBytecodeProvider { public BytecodeProviderImpl() => throw null; public override NHibernate.Bytecode.IReflectionOptimizer GetReflectionOptimizer(System.Type mappedClass, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters) => throw null; } - - // Generated from `NHibernate.Bytecode.Lightweight.CreateInstanceInvoker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public delegate object CreateInstanceInvoker(); - - // Generated from `NHibernate.Bytecode.Lightweight.GetPropertyValueInvoker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public delegate object GetPropertyValueInvoker(object obj); - - // Generated from `NHibernate.Bytecode.Lightweight.GetPropertyValuesInvoker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public delegate object[] GetPropertyValuesInvoker(object obj, NHibernate.Bytecode.Lightweight.GetterCallback callback); - - // Generated from `NHibernate.Bytecode.Lightweight.GetterCallback` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public delegate object GetterCallback(object obj, int index); - - // Generated from `NHibernate.Bytecode.Lightweight.ReflectionOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ReflectionOptimizer : NHibernate.Bytecode.IReflectionOptimizer, NHibernate.Bytecode.IInstantiationOptimizer { public NHibernate.Bytecode.IAccessOptimizer AccessOptimizer { get => throw null; } protected virtual NHibernate.Bytecode.Lightweight.CreateInstanceInvoker CreateCreateInstanceMethod(System.Type type) => throw null; protected System.Reflection.Emit.DynamicMethod CreateDynamicMethod(System.Type returnType, System.Type[] argumentTypes) => throw null; public virtual object CreateInstance() => throw null; - public NHibernate.Bytecode.IInstantiationOptimizer InstantiationOptimizer { get => throw null; } - public ReflectionOptimizer(System.Type mappedType, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters, NHibernate.Properties.IGetter specializedGetter, NHibernate.Properties.ISetter specializedSetter) => throw null; public ReflectionOptimizer(System.Type mappedType, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters) => throw null; - protected virtual void ThrowExceptionForNoDefaultCtor(System.Type type) => throw null; + public ReflectionOptimizer(System.Type mappedType, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters, NHibernate.Properties.IGetter specializedGetter, NHibernate.Properties.ISetter specializedSetter) => throw null; + public NHibernate.Bytecode.IInstantiationOptimizer InstantiationOptimizer { get => throw null; } protected System.Type mappedType; + protected virtual void ThrowExceptionForNoDefaultCtor(System.Type type) => throw null; } - - // Generated from `NHibernate.Bytecode.Lightweight.SetPropertyValueInvoker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public delegate void SetPropertyValueInvoker(object obj, object value); - - // Generated from `NHibernate.Bytecode.Lightweight.SetPropertyValuesInvoker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public delegate void SetPropertyValuesInvoker(object obj, object[] values, NHibernate.Bytecode.Lightweight.SetterCallback callback); - - // Generated from `NHibernate.Bytecode.Lightweight.SetterCallback` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public delegate void SetterCallback(object obj, int index, object value); - + } + public class NotInstrumentedException : NHibernate.HibernateException + { + public NotInstrumentedException(string message) => throw null; + protected NotInstrumentedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class NullBytecodeProvider : NHibernate.Bytecode.AbstractBytecodeProvider + { + public NullBytecodeProvider() => throw null; + public override NHibernate.Bytecode.IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters) => throw null; + } + public class StaticProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory + { + public NHibernate.Proxy.IProxyFactory BuildProxyFactory() => throw null; + public StaticProxyFactoryFactory() => throw null; + public bool IsInstrumented(System.Type entityClass) => throw null; + public bool IsProxy(object entity) => throw null; + public NHibernate.Proxy.IProxyValidator ProxyValidator { get => throw null; } + } + public class UnableToLoadProxyFactoryFactoryException : NHibernate.Bytecode.HibernateByteCodeException + { + public UnableToLoadProxyFactoryFactoryException(string typeName, System.Exception inner) => throw null; + protected UnableToLoadProxyFactoryFactoryException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } + public string TypeName { get => throw null; } + } + public class UnwrapProxyPropertiesMetadata + { + public UnwrapProxyPropertiesMetadata(string entityName, System.Collections.Generic.IDictionary unwrapProxyPropertyDescriptors) => throw null; + public string EntityName { get => throw null; } + public static NHibernate.Bytecode.UnwrapProxyPropertiesMetadata From(string entityName, System.Collections.Generic.IEnumerable unwrapProxyPropertyDescriptors) => throw null; + public int GetUnwrapProxyPropertyIndex(string propertyName) => throw null; + public bool HasUnwrapProxyProperties { get => throw null; } + public static NHibernate.Bytecode.UnwrapProxyPropertiesMetadata NonEnhanced(string entityName) => throw null; + public System.Collections.Generic.IEnumerable UnwrapProxyPropertyDescriptors { get => throw null; } + public System.Collections.Generic.ISet UnwrapProxyPropertyNames { get => throw null; } + } + public class UnwrapProxyPropertyDescriptor + { + public static NHibernate.Bytecode.UnwrapProxyPropertyDescriptor From(NHibernate.Mapping.Property property, int propertyIndex) => throw null; + public string Name { get => throw null; } + public int PropertyIndex { get => throw null; } + public NHibernate.Type.IType Type { get => throw null; } } } namespace Cache { - // Generated from `NHibernate.Cache.CacheBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace Access + { + public interface ISoftLock + { + } + } public abstract class CacheBase : NHibernate.Cache.ICache { - protected CacheBase() => throw null; public abstract void Clear(); public virtual System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null; + protected CacheBase() => throw null; public abstract void Destroy(); public abstract object Get(object key); public virtual System.Threading.Tasks.Task GetAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null; public virtual object[] GetMany(object[] keys) => throw null; public virtual System.Threading.Tasks.Task GetManyAsync(object[] keys, System.Threading.CancellationToken cancellationToken) => throw null; - void NHibernate.Cache.ICache.Lock(object key) => throw null; public abstract object Lock(object key); + void NHibernate.Cache.ICache.Lock(object key) => throw null; public virtual System.Threading.Tasks.Task LockAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null; System.Threading.Tasks.Task NHibernate.Cache.ICache.LockAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null; public virtual object LockMany(object[] keys) => throw null; public virtual System.Threading.Tasks.Task LockManyAsync(object[] keys, System.Threading.CancellationToken cancellationToken) => throw null; - public abstract System.Int64 NextTimestamp(); + public abstract long NextTimestamp(); public virtual bool PreferMultipleGet { get => throw null; } public abstract void Put(object key, object value); public virtual System.Threading.Tasks.Task PutAsync(object key, object value, System.Threading.CancellationToken cancellationToken) => throw null; @@ -2545,41 +799,49 @@ namespace NHibernate public abstract void Remove(object key); public virtual System.Threading.Tasks.Task RemoveAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null; public abstract int Timeout { get; } - void NHibernate.Cache.ICache.Unlock(object key) => throw null; public abstract void Unlock(object key, object lockValue); - public virtual System.Threading.Tasks.Task UnlockAsync(object key, object lockValue, System.Threading.CancellationToken cancellationToken) => throw null; + void NHibernate.Cache.ICache.Unlock(object key) => throw null; System.Threading.Tasks.Task NHibernate.Cache.ICache.UnlockAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task UnlockAsync(object key, object lockValue, System.Threading.CancellationToken cancellationToken) => throw null; public virtual void UnlockMany(object[] keys, object lockValue) => throw null; public virtual System.Threading.Tasks.Task UnlockManyAsync(object[] keys, object lockValue, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Cache.CacheBatcher` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CacheBatcher + public sealed class CacheBatcher { } - - // Generated from `NHibernate.Cache.CacheException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class CachedItem : NHibernate.Cache.ReadWriteCache.ILockable + { + public CachedItem() => throw null; + public CachedItem(object value, long currentTimestamp, object version) => throw null; + public long FreshTimestamp { get => throw null; set { } } + public bool IsGettable(long txTimestamp) => throw null; + public bool IsLock { get => throw null; } + public bool IsPuttable(long txTimestamp, object newVersion, System.Collections.IComparer comparator, bool minimalPut) => throw null; + public bool IsPuttable(long txTimestamp, object newVersion, System.Collections.IComparer comparator) => throw null; + public NHibernate.Cache.CacheLock Lock(long timeout, int id) => throw null; + public override string ToString() => throw null; + public object Value { get => throw null; set { } } + public object Version { get => throw null; set { } } + } public class CacheException : NHibernate.HibernateException { - public CacheException(string message, System.Exception innerException) => throw null; + public CacheException() => throw null; public CacheException(string message) => throw null; public CacheException(System.Exception innerException) => throw null; - public CacheException() => throw null; + public CacheException(string message, System.Exception innerException) => throw null; protected CacheException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Cache.CacheFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class CacheFactory { public static NHibernate.Cache.ICacheConcurrencyStrategy CreateCache(string usage, string name, bool mutable, NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary properties) => throw null; public static NHibernate.Cache.ICacheConcurrencyStrategy CreateCache(string usage, NHibernate.Cache.CacheBase cache) => throw null; - public const string NonstrictReadWrite = default; - public const string ReadOnly = default; - public const string ReadWrite = default; - public const string Transactional = default; + public static NHibernate.Cache.ICacheConcurrencyStrategy CreateCache(string usage, NHibernate.Cache.CacheBase cache, NHibernate.Cfg.Settings settings) => throw null; + public static string Never; + public static string NonstrictReadWrite; + public static string ReadOnly; + public static string ReadWrite; + public static string Transactional; } - - // Generated from `NHibernate.Cache.CacheKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CacheKey : System.Runtime.Serialization.IDeserializationCallback { public CacheKey(object id, NHibernate.Type.IType type, string entityOrRoleName, NHibernate.Engine.ISessionFactoryImplementor factory, string tenantIdentifier) => throw null; @@ -2591,53 +853,93 @@ namespace NHibernate public void OnDeserialization(object sender) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Cache.CacheLock` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CacheLock : NHibernate.Cache.ReadWriteCache.ILockable, NHibernate.Cache.Access.ISoftLock { - public CacheLock(System.Int64 timeout, int id, object version) => throw null; public CacheLock() => throw null; - public int Id { get => throw null; set => throw null; } - public bool IsGettable(System.Int64 txTimestamp) => throw null; + public CacheLock(long timeout, int id, object version) => throw null; + public int Id { get => throw null; set { } } + public bool IsGettable(long txTimestamp) => throw null; public bool IsLock { get => throw null; } - public bool IsPuttable(System.Int64 txTimestamp, object newVersion, System.Collections.IComparer comparator) => throw null; - public NHibernate.Cache.CacheLock Lock(System.Int64 timeout, int id) => throw null; - public int Multiplicity { get => throw null; set => throw null; } - public System.Int64 Timeout { get => throw null; set => throw null; } + public bool IsPuttable(long txTimestamp, object newVersion, System.Collections.IComparer comparator, bool minimalPut) => throw null; + public bool IsPuttable(long txTimestamp, object newVersion, System.Collections.IComparer comparator) => throw null; + public NHibernate.Cache.CacheLock Lock(long timeout, int id) => throw null; + public int Multiplicity { get => throw null; set { } } + public long Timeout { get => throw null; set { } } public override string ToString() => throw null; - public void Unlock(System.Int64 currentTimestamp) => throw null; - public System.Int64 UnlockTimestamp { get => throw null; set => throw null; } - public object Version { get => throw null; set => throw null; } - public bool WasLockedConcurrently { get => throw null; set => throw null; } + public void Unlock(long currentTimestamp) => throw null; + public long UnlockTimestamp { get => throw null; set { } } + public object Version { get => throw null; set { } } + public bool WasLockedConcurrently { get => throw null; set { } } } - - // Generated from `NHibernate.Cache.CachedItem` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CachedItem : NHibernate.Cache.ReadWriteCache.ILockable + namespace Entry { - public CachedItem(object value, System.Int64 currentTimestamp, object version) => throw null; - public CachedItem() => throw null; - public System.Int64 FreshTimestamp { get => throw null; set => throw null; } - public bool IsGettable(System.Int64 txTimestamp) => throw null; - public bool IsLock { get => throw null; } - public bool IsPuttable(System.Int64 txTimestamp, object newVersion, System.Collections.IComparer comparator) => throw null; - public NHibernate.Cache.CacheLock Lock(System.Int64 timeout, int id) => throw null; - public override string ToString() => throw null; - public object Value { get => throw null; set => throw null; } - public object Version { get => throw null; set => throw null; } + public sealed class CacheEntry + { + public bool AreLazyPropertiesUnfetched { get => throw null; set { } } + public object[] Assemble(object instance, object id, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.IInterceptor interceptor, NHibernate.Engine.ISessionImplementor session) => throw null; + public System.Threading.Tasks.Task AssembleAsync(object instance, object id, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.IInterceptor interceptor, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public static NHibernate.Cache.Entry.CacheEntry Create(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, bool unfetched, object version, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; + public static NHibernate.Cache.Entry.CacheEntry Create(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, object version, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; + public static System.Threading.Tasks.Task CreateAsync(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, bool unfetched, object version, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task CreateAsync(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, object version, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public CacheEntry() => throw null; + public CacheEntry(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, bool unfetched, object version, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; + public object[] DisassembledState { get => throw null; set { } } + public string Subclass { get => throw null; set { } } + public object Version { get => throw null; set { } } + } + public class CollectionCacheEntry + { + public virtual void Assemble(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object owner) => throw null; + public virtual System.Threading.Tasks.Task AssembleAsync(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public static NHibernate.Cache.Entry.CollectionCacheEntry Create(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public static System.Threading.Tasks.Task CreateAsync(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + public CollectionCacheEntry() => throw null; + public CollectionCacheEntry(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public virtual object[] State { get => throw null; set { } } + public override string ToString() => throw null; + } + public interface ICacheEntryStructure + { + object Destructure(object map, NHibernate.Engine.ISessionFactoryImplementor factory); + object Structure(object item); + } + public class StructuredCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure + { + public StructuredCacheEntry(NHibernate.Persister.Entity.IEntityPersister persister) => throw null; + public object Destructure(object item, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public object Structure(object item) => throw null; + } + public class StructuredCollectionCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure + { + public StructuredCollectionCacheEntry() => throw null; + public virtual object Destructure(object item, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public virtual object Structure(object item) => throw null; + } + public class StructuredMapCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure + { + public StructuredMapCacheEntry() => throw null; + public object Destructure(object item, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public object Structure(object item) => throw null; + } + public class UnstructuredCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure + { + public UnstructuredCacheEntry() => throw null; + public object Destructure(object map, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public object Structure(object item) => throw null; + } } - - // Generated from `NHibernate.Cache.FakeCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FakeCache : NHibernate.Cache.CacheBase { public override void Clear() => throw null; public override System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override void Destroy() => throw null; public FakeCache(string regionName) => throw null; + public override void Destroy() => throw null; public override object Get(object key) => throw null; public override System.Threading.Tasks.Task GetAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null; public override object Lock(object key) => throw null; public override System.Threading.Tasks.Task LockAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 NextTimestamp() => throw null; + public override long NextTimestamp() => throw null; public override bool PreferMultipleGet { get => throw null; } public override void Put(object key, object value) => throw null; public override System.Threading.Tasks.Task PutAsync(object key, object value, System.Threading.CancellationToken cancellationToken) => throw null; @@ -2648,30 +950,26 @@ namespace NHibernate public override void Unlock(object key, object lockValue) => throw null; public override System.Threading.Tasks.Task UnlockAsync(object key, object lockValue, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Cache.FilterKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FilterKey { public static System.Collections.Generic.ISet CreateFilterKeys(System.Collections.Generic.IDictionary enabledFilters) => throw null; - public override bool Equals(object other) => throw null; public FilterKey(string name, System.Collections.Generic.IEnumerable> @params, System.Collections.Generic.IDictionary types) => throw null; public FilterKey(NHibernate.Impl.FilterImpl filter) => throw null; + public override bool Equals(object other) => throw null; public override int GetHashCode() => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Cache.HashtableCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HashtableCache : NHibernate.Cache.CacheBase { public override void Clear() => throw null; public override System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public HashtableCache(string regionName) => throw null; public override void Destroy() => throw null; public override object Get(object key) => throw null; public override System.Threading.Tasks.Task GetAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null; - public HashtableCache(string regionName) => throw null; public override object Lock(object key) => throw null; public override System.Threading.Tasks.Task LockAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 NextTimestamp() => throw null; + public override long NextTimestamp() => throw null; public override bool PreferMultipleGet { get => throw null; } public override void Put(object key, object value) => throw null; public override System.Threading.Tasks.Task PutAsync(object key, object value, System.Threading.CancellationToken cancellationToken) => throw null; @@ -2682,29 +980,23 @@ namespace NHibernate public override void Unlock(object key, object lockValue) => throw null; public override System.Threading.Tasks.Task UnlockAsync(object key, object lockValue, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Cache.HashtableCacheProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HashtableCacheProvider : NHibernate.Cache.ICacheProvider { - public NHibernate.Cache.CacheBase BuildCache(string regionName, System.Collections.Generic.IDictionary properties) => throw null; NHibernate.Cache.ICache NHibernate.Cache.ICacheProvider.BuildCache(string regionName, System.Collections.Generic.IDictionary properties) => throw null; + public NHibernate.Cache.CacheBase BuildCache(string regionName, System.Collections.Generic.IDictionary properties) => throw null; public HashtableCacheProvider() => throw null; - public System.Int64 NextTimestamp() => throw null; + public long NextTimestamp() => throw null; public void Start(System.Collections.Generic.IDictionary properties) => throw null; public void Stop() => throw null; } - - // Generated from `NHibernate.Cache.IBatchableCacheConcurrencyStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBatchableCacheConcurrencyStrategy : NHibernate.Cache.ICacheConcurrencyStrategy { NHibernate.Cache.CacheBase Cache { get; set; } - object[] GetMany(NHibernate.Cache.CacheKey[] keys, System.Int64 timestamp); - System.Threading.Tasks.Task GetManyAsync(NHibernate.Cache.CacheKey[] keys, System.Int64 timestamp, System.Threading.CancellationToken cancellationToken); - bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, System.Int64 timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts); - System.Threading.Tasks.Task PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, System.Int64 timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken); + object[] GetMany(NHibernate.Cache.CacheKey[] keys, long timestamp); + System.Threading.Tasks.Task GetManyAsync(NHibernate.Cache.CacheKey[] keys, long timestamp, System.Threading.CancellationToken cancellationToken); + bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts); + System.Threading.Tasks.Task PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Cache.IBatchableQueryCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBatchableQueryCache : NHibernate.Cache.IQueryCache { System.Collections.IList Get(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.Generic.ISet spaces, NHibernate.Engine.ISessionImplementor session); @@ -2716,8 +1008,6 @@ namespace NHibernate bool[] PutMany(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.IList[] results, NHibernate.Engine.ISessionImplementor session); System.Threading.Tasks.Task PutManyAsync(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.IList[] results, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Cache.ICache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICache { void Clear(); @@ -2727,7 +1017,7 @@ namespace NHibernate System.Threading.Tasks.Task GetAsync(object key, System.Threading.CancellationToken cancellationToken); void Lock(object key); System.Threading.Tasks.Task LockAsync(object key, System.Threading.CancellationToken cancellationToken); - System.Int64 NextTimestamp(); + long NextTimestamp(); void Put(object key, object value); System.Threading.Tasks.Task PutAsync(object key, object value, System.Threading.CancellationToken cancellationToken); string RegionName { get; } @@ -2737,8 +1027,6 @@ namespace NHibernate void Unlock(object key); System.Threading.Tasks.Task UnlockAsync(object key, System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Cache.ICacheConcurrencyStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICacheConcurrencyStrategy { bool AfterInsert(NHibernate.Cache.CacheKey key, object value, object version); @@ -2751,13 +1039,13 @@ namespace NHibernate void Destroy(); void Evict(NHibernate.Cache.CacheKey key); System.Threading.Tasks.Task EvictAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken); - object Get(NHibernate.Cache.CacheKey key, System.Int64 txTimestamp); - System.Threading.Tasks.Task GetAsync(NHibernate.Cache.CacheKey key, System.Int64 txTimestamp, System.Threading.CancellationToken cancellationToken); + object Get(NHibernate.Cache.CacheKey key, long txTimestamp); + System.Threading.Tasks.Task GetAsync(NHibernate.Cache.CacheKey key, long txTimestamp, System.Threading.CancellationToken cancellationToken); bool Insert(NHibernate.Cache.CacheKey key, object value, object currentVersion); NHibernate.Cache.Access.ISoftLock Lock(NHibernate.Cache.CacheKey key, object version); System.Threading.Tasks.Task LockAsync(NHibernate.Cache.CacheKey key, object version, System.Threading.CancellationToken cancellationToken); - bool Put(NHibernate.Cache.CacheKey key, object value, System.Int64 txTimestamp, object version, System.Collections.IComparer versionComparer, bool minimalPut); - System.Threading.Tasks.Task PutAsync(NHibernate.Cache.CacheKey key, object value, System.Int64 txTimestamp, object version, System.Collections.IComparer versionComparer, bool minimalPut, System.Threading.CancellationToken cancellationToken); + bool Put(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparer, bool minimalPut); + System.Threading.Tasks.Task PutAsync(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparer, bool minimalPut, System.Threading.CancellationToken cancellationToken); string RegionName { get; } void Release(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock); System.Threading.Tasks.Task ReleaseAsync(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken); @@ -2766,24 +1054,29 @@ namespace NHibernate bool Update(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion); System.Threading.Tasks.Task UpdateAsync(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion, System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Cache.ICacheProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public interface ICacheLock : System.IDisposable + { + System.IDisposable ReadLock(); + System.Threading.Tasks.Task ReadLockAsync(); + System.IDisposable WriteLock(); + System.Threading.Tasks.Task WriteLockAsync(); + } public interface ICacheProvider { NHibernate.Cache.ICache BuildCache(string regionName, System.Collections.Generic.IDictionary properties); - System.Int64 NextTimestamp(); + long NextTimestamp(); void Start(System.Collections.Generic.IDictionary properties); void Stop(); } - - // Generated from `NHibernate.Cache.IOptimisticCacheSource` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public interface ICacheReadWriteLockFactory + { + NHibernate.Cache.ICacheLock Create(); + } public interface IOptimisticCacheSource { bool IsVersioned { get; } System.Collections.IComparer VersionComparator { get; } } - - // Generated from `NHibernate.Cache.IQueryCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IQueryCache { NHibernate.Cache.ICache Cache { get; } @@ -2796,51 +1089,48 @@ namespace NHibernate System.Threading.Tasks.Task PutAsync(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, bool isNaturalKeyLookup, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); string RegionName { get; } } - - // Generated from `NHibernate.Cache.IQueryCacheFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IQueryCacheFactory { NHibernate.Cache.IQueryCache GetQueryCache(string regionName, NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary props); } - - // Generated from `NHibernate.Cache.NoCacheProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public static class LocableExtension + { + } public class NoCacheProvider : NHibernate.Cache.ICacheProvider { - public NHibernate.Cache.CacheBase BuildCache(string regionName, System.Collections.Generic.IDictionary properties) => throw null; NHibernate.Cache.ICache NHibernate.Cache.ICacheProvider.BuildCache(string regionName, System.Collections.Generic.IDictionary properties) => throw null; - public System.Int64 NextTimestamp() => throw null; + public NHibernate.Cache.CacheBase BuildCache(string regionName, System.Collections.Generic.IDictionary properties) => throw null; public NoCacheProvider() => throw null; + public long NextTimestamp() => throw null; public void Start(System.Collections.Generic.IDictionary properties) => throw null; public void Stop() => throw null; - public const string WarnMessage = default; + public static string WarnMessage; } - - // Generated from `NHibernate.Cache.NonstrictReadWriteCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NonstrictReadWriteCache : NHibernate.Cache.ICacheConcurrencyStrategy, NHibernate.Cache.IBatchableCacheConcurrencyStrategy + public class NonstrictReadWriteCache : NHibernate.Cache.IBatchableCacheConcurrencyStrategy, NHibernate.Cache.ICacheConcurrencyStrategy { public bool AfterInsert(NHibernate.Cache.CacheKey key, object value, object version) => throw null; public System.Threading.Tasks.Task AfterInsertAsync(NHibernate.Cache.CacheKey key, object value, object version, System.Threading.CancellationToken cancellationToken) => throw null; public bool AfterUpdate(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock @lock) => throw null; public System.Threading.Tasks.Task AfterUpdateAsync(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.Cache.ICache Cache { get => throw null; set => throw null; } - NHibernate.Cache.CacheBase NHibernate.Cache.IBatchableCacheConcurrencyStrategy.Cache { get => throw null; set => throw null; } + public NHibernate.Cache.ICache Cache { get => throw null; set { } } + NHibernate.Cache.CacheBase NHibernate.Cache.IBatchableCacheConcurrencyStrategy.Cache { get => throw null; set { } } public void Clear() => throw null; public System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public NonstrictReadWriteCache() => throw null; public void Destroy() => throw null; public void Evict(NHibernate.Cache.CacheKey key) => throw null; public System.Threading.Tasks.Task EvictAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken) => throw null; - public object Get(NHibernate.Cache.CacheKey key, System.Int64 txTimestamp) => throw null; - public System.Threading.Tasks.Task GetAsync(NHibernate.Cache.CacheKey key, System.Int64 txTimestamp, System.Threading.CancellationToken cancellationToken) => throw null; - public object[] GetMany(NHibernate.Cache.CacheKey[] keys, System.Int64 timestamp) => throw null; - public System.Threading.Tasks.Task GetManyAsync(NHibernate.Cache.CacheKey[] keys, System.Int64 timestamp, System.Threading.CancellationToken cancellationToken) => throw null; + public object Get(NHibernate.Cache.CacheKey key, long txTimestamp) => throw null; + public System.Threading.Tasks.Task GetAsync(NHibernate.Cache.CacheKey key, long txTimestamp, System.Threading.CancellationToken cancellationToken) => throw null; + public object[] GetMany(NHibernate.Cache.CacheKey[] keys, long timestamp) => throw null; + public System.Threading.Tasks.Task GetManyAsync(NHibernate.Cache.CacheKey[] keys, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null; public bool Insert(NHibernate.Cache.CacheKey key, object value, object currentVersion) => throw null; public NHibernate.Cache.Access.ISoftLock Lock(NHibernate.Cache.CacheKey key, object version) => throw null; public System.Threading.Tasks.Task LockAsync(NHibernate.Cache.CacheKey key, object version, System.Threading.CancellationToken cancellationToken) => throw null; - public NonstrictReadWriteCache() => throw null; - public bool Put(NHibernate.Cache.CacheKey key, object value, System.Int64 txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut) => throw null; - public System.Threading.Tasks.Task PutAsync(NHibernate.Cache.CacheKey key, object value, System.Int64 txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut, System.Threading.CancellationToken cancellationToken) => throw null; - public bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, System.Int64 timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts) => throw null; - public System.Threading.Tasks.Task PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, System.Int64 timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken) => throw null; + public bool Put(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut) => throw null; + public System.Threading.Tasks.Task PutAsync(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut, System.Threading.CancellationToken cancellationToken) => throw null; + public bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts) => throw null; + public System.Threading.Tasks.Task PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken) => throw null; public string RegionName { get => throw null; } public void Release(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock) => throw null; public System.Threading.Tasks.Task ReleaseAsync(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken) => throw null; @@ -2849,61 +1139,53 @@ namespace NHibernate public bool Update(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion) => throw null; public System.Threading.Tasks.Task UpdateAsync(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Cache.QueryCacheFactoryExtension` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class QueryCacheFactoryExtension { public static NHibernate.Cache.IQueryCache GetQueryCache(this NHibernate.Cache.IQueryCacheFactory factory, NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, System.Collections.Generic.IDictionary props, NHibernate.Cache.CacheBase regionCache) => throw null; } - - // Generated from `NHibernate.Cache.QueryCacheResultBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryCacheResultBuilder + public sealed class QueryCacheResultBuilder { public static bool IsCacheWithFetches(NHibernate.Loader.Loader loader) => throw null; } - - // Generated from `NHibernate.Cache.QueryKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QueryKey : System.Runtime.Serialization.IDeserializationCallback, System.IEquatable { public int ComputeHashCode() => throw null; + public QueryKey(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.SqlCommand.SqlString queryString, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet filters, NHibernate.Transform.CacheableResultTransformer customTransformer, string tenantIdentifier) => throw null; + public QueryKey(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.SqlCommand.SqlString queryString, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet filters, NHibernate.Transform.CacheableResultTransformer customTransformer) => throw null; public override bool Equals(object other) => throw null; public bool Equals(NHibernate.Cache.QueryKey other) => throw null; public override int GetHashCode() => throw null; public void OnDeserialization(object sender) => throw null; - public QueryKey(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.SqlCommand.SqlString queryString, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet filters, NHibernate.Transform.CacheableResultTransformer customTransformer, string tenantIdentifier) => throw null; - public QueryKey(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.SqlCommand.SqlString queryString, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet filters, NHibernate.Transform.CacheableResultTransformer customTransformer) => throw null; public NHibernate.Transform.CacheableResultTransformer ResultTransformer { get => throw null; } public NHibernate.Cache.QueryKey SetFirstRows(int[] firstRows) => throw null; public NHibernate.Cache.QueryKey SetMaxRows(int[] maxRows) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Cache.ReadOnlyCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ReadOnlyCache : NHibernate.Cache.ICacheConcurrencyStrategy, NHibernate.Cache.IBatchableCacheConcurrencyStrategy + public class ReadOnlyCache : NHibernate.Cache.IBatchableCacheConcurrencyStrategy, NHibernate.Cache.ICacheConcurrencyStrategy { public bool AfterInsert(NHibernate.Cache.CacheKey key, object value, object version) => throw null; public System.Threading.Tasks.Task AfterInsertAsync(NHibernate.Cache.CacheKey key, object value, object version, System.Threading.CancellationToken cancellationToken) => throw null; public bool AfterUpdate(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock @lock) => throw null; public System.Threading.Tasks.Task AfterUpdateAsync(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.Cache.ICache Cache { get => throw null; set => throw null; } - NHibernate.Cache.CacheBase NHibernate.Cache.IBatchableCacheConcurrencyStrategy.Cache { get => throw null; set => throw null; } + public NHibernate.Cache.ICache Cache { get => throw null; set { } } + NHibernate.Cache.CacheBase NHibernate.Cache.IBatchableCacheConcurrencyStrategy.Cache { get => throw null; set { } } public void Clear() => throw null; public System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public ReadOnlyCache() => throw null; public void Destroy() => throw null; public void Evict(NHibernate.Cache.CacheKey key) => throw null; public System.Threading.Tasks.Task EvictAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken) => throw null; - public object Get(NHibernate.Cache.CacheKey key, System.Int64 timestamp) => throw null; - public System.Threading.Tasks.Task GetAsync(NHibernate.Cache.CacheKey key, System.Int64 timestamp, System.Threading.CancellationToken cancellationToken) => throw null; - public object[] GetMany(NHibernate.Cache.CacheKey[] keys, System.Int64 timestamp) => throw null; - public System.Threading.Tasks.Task GetManyAsync(NHibernate.Cache.CacheKey[] keys, System.Int64 timestamp, System.Threading.CancellationToken cancellationToken) => throw null; + public object Get(NHibernate.Cache.CacheKey key, long timestamp) => throw null; + public System.Threading.Tasks.Task GetAsync(NHibernate.Cache.CacheKey key, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null; + public object[] GetMany(NHibernate.Cache.CacheKey[] keys, long timestamp) => throw null; + public System.Threading.Tasks.Task GetManyAsync(NHibernate.Cache.CacheKey[] keys, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null; public bool Insert(NHibernate.Cache.CacheKey key, object value, object currentVersion) => throw null; public NHibernate.Cache.Access.ISoftLock Lock(NHibernate.Cache.CacheKey key, object version) => throw null; public System.Threading.Tasks.Task LockAsync(NHibernate.Cache.CacheKey key, object version, System.Threading.CancellationToken cancellationToken) => throw null; - public bool Put(NHibernate.Cache.CacheKey key, object value, System.Int64 timestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut) => throw null; - public System.Threading.Tasks.Task PutAsync(NHibernate.Cache.CacheKey key, object value, System.Int64 timestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut, System.Threading.CancellationToken cancellationToken) => throw null; - public bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, System.Int64 timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts) => throw null; - public System.Threading.Tasks.Task PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, System.Int64 timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken) => throw null; - public ReadOnlyCache() => throw null; + public bool Put(NHibernate.Cache.CacheKey key, object value, long timestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut) => throw null; + public System.Threading.Tasks.Task PutAsync(NHibernate.Cache.CacheKey key, object value, long timestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut, System.Threading.CancellationToken cancellationToken) => throw null; + public bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts) => throw null; + public System.Threading.Tasks.Task PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken) => throw null; public string RegionName { get => throw null; } public void Release(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock) => throw null; public System.Threading.Tasks.Task ReleaseAsync(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken) => throw null; @@ -2912,43 +1194,39 @@ namespace NHibernate public bool Update(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion) => throw null; public System.Threading.Tasks.Task UpdateAsync(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Cache.ReadWriteCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ReadWriteCache : NHibernate.Cache.ICacheConcurrencyStrategy, NHibernate.Cache.IBatchableCacheConcurrencyStrategy + public class ReadWriteCache : NHibernate.Cache.IBatchableCacheConcurrencyStrategy, NHibernate.Cache.ICacheConcurrencyStrategy { public bool AfterInsert(NHibernate.Cache.CacheKey key, object value, object version) => throw null; public System.Threading.Tasks.Task AfterInsertAsync(NHibernate.Cache.CacheKey key, object value, object version, System.Threading.CancellationToken cancellationToken) => throw null; public bool AfterUpdate(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock clientLock) => throw null; public System.Threading.Tasks.Task AfterUpdateAsync(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock clientLock, System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.Cache.ICache Cache { get => throw null; set => throw null; } - NHibernate.Cache.CacheBase NHibernate.Cache.IBatchableCacheConcurrencyStrategy.Cache { get => throw null; set => throw null; } + public NHibernate.Cache.ICache Cache { get => throw null; set { } } + NHibernate.Cache.CacheBase NHibernate.Cache.IBatchableCacheConcurrencyStrategy.Cache { get => throw null; set { } } public void Clear() => throw null; public System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public ReadWriteCache() => throw null; + public ReadWriteCache(NHibernate.Cache.ICacheLock locker) => throw null; public void Destroy() => throw null; public void Evict(NHibernate.Cache.CacheKey key) => throw null; public System.Threading.Tasks.Task EvictAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken) => throw null; - public object Get(NHibernate.Cache.CacheKey key, System.Int64 txTimestamp) => throw null; - public System.Threading.Tasks.Task GetAsync(NHibernate.Cache.CacheKey key, System.Int64 txTimestamp, System.Threading.CancellationToken cancellationToken) => throw null; - public object[] GetMany(NHibernate.Cache.CacheKey[] keys, System.Int64 timestamp) => throw null; - public System.Threading.Tasks.Task GetManyAsync(NHibernate.Cache.CacheKey[] keys, System.Int64 timestamp, System.Threading.CancellationToken cancellationToken) => throw null; - // Generated from `NHibernate.Cache.ReadWriteCache+ILockable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public object Get(NHibernate.Cache.CacheKey key, long txTimestamp) => throw null; + public System.Threading.Tasks.Task GetAsync(NHibernate.Cache.CacheKey key, long txTimestamp, System.Threading.CancellationToken cancellationToken) => throw null; + public object[] GetMany(NHibernate.Cache.CacheKey[] keys, long timestamp) => throw null; + public System.Threading.Tasks.Task GetManyAsync(NHibernate.Cache.CacheKey[] keys, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null; public interface ILockable { - bool IsGettable(System.Int64 txTimestamp); + bool IsGettable(long txTimestamp); bool IsLock { get; } - bool IsPuttable(System.Int64 txTimestamp, object newVersion, System.Collections.IComparer comparator); - NHibernate.Cache.CacheLock Lock(System.Int64 timeout, int id); + bool IsPuttable(long txTimestamp, object newVersion, System.Collections.IComparer comparator); + NHibernate.Cache.CacheLock Lock(long timeout, int id); } - - public bool Insert(NHibernate.Cache.CacheKey key, object value, object currentVersion) => throw null; public NHibernate.Cache.Access.ISoftLock Lock(NHibernate.Cache.CacheKey key, object version) => throw null; public System.Threading.Tasks.Task LockAsync(NHibernate.Cache.CacheKey key, object version, System.Threading.CancellationToken cancellationToken) => throw null; - public bool Put(NHibernate.Cache.CacheKey key, object value, System.Int64 txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut) => throw null; - public System.Threading.Tasks.Task PutAsync(NHibernate.Cache.CacheKey key, object value, System.Int64 txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut, System.Threading.CancellationToken cancellationToken) => throw null; - public bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, System.Int64 timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts) => throw null; - public System.Threading.Tasks.Task PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, System.Int64 timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken) => throw null; - public ReadWriteCache() => throw null; + public bool Put(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut) => throw null; + public System.Threading.Tasks.Task PutAsync(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut, System.Threading.CancellationToken cancellationToken) => throw null; + public bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts) => throw null; + public System.Threading.Tasks.Task PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken) => throw null; public string RegionName { get => throw null; } public void Release(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock clientLock) => throw null; public System.Threading.Tasks.Task ReleaseAsync(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock clientLock, System.Threading.CancellationToken cancellationToken) => throw null; @@ -2957,160 +1235,84 @@ namespace NHibernate public bool Update(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion) => throw null; public System.Threading.Tasks.Task UpdateAsync(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Cache.StandardQueryCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class StandardQueryCache : NHibernate.Cache.IQueryCache, NHibernate.Cache.IBatchableQueryCache { public NHibernate.Cache.ICache Cache { get => throw null; } public void Clear() => throw null; public System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public StandardQueryCache(NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary props, NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, string regionName) => throw null; + public StandardQueryCache(NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, NHibernate.Cache.CacheBase regionCache) => throw null; public void Destroy() => throw null; - public System.Collections.IList Get(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, bool isNaturalKeyLookup, System.Collections.Generic.ISet spaces, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Collections.IList Get(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.Generic.ISet spaces, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task GetAsync(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, bool isNaturalKeyLookup, System.Collections.Generic.ISet spaces, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Collections.IList Get(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, bool isNaturalKeyLookup, System.Collections.Generic.ISet spaces, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task GetAsync(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.Generic.ISet spaces, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetAsync(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, bool isNaturalKeyLookup, System.Collections.Generic.ISet spaces, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public System.Collections.IList[] GetMany(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.Generic.ISet[] spaces, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task GetManyAsync(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.Generic.ISet[] spaces, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected virtual bool IsUpToDate(System.Collections.Generic.ISet spaces, System.Int64 timestamp) => throw null; - protected virtual System.Threading.Tasks.Task IsUpToDateAsync(System.Collections.Generic.ISet spaces, System.Int64 timestamp, System.Threading.CancellationToken cancellationToken) => throw null; - public bool Put(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, bool isNaturalKeyLookup, NHibernate.Engine.ISessionImplementor session) => throw null; + protected virtual bool IsUpToDate(System.Collections.Generic.ISet spaces, long timestamp) => throw null; + protected virtual System.Threading.Tasks.Task IsUpToDateAsync(System.Collections.Generic.ISet spaces, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null; public bool Put(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task PutAsync(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, bool isNaturalKeyLookup, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public bool Put(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, bool isNaturalKeyLookup, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task PutAsync(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task PutAsync(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, bool isNaturalKeyLookup, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public bool[] PutMany(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.IList[] results, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task PutManyAsync(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.IList[] results, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public string RegionName { get => throw null; } - public StandardQueryCache(NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary props, NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, string regionName) => throw null; - public StandardQueryCache(NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, NHibernate.Cache.CacheBase regionCache) => throw null; } - - // Generated from `NHibernate.Cache.StandardQueryCacheFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class StandardQueryCacheFactory : NHibernate.Cache.IQueryCacheFactory { - public virtual NHibernate.Cache.IQueryCache GetQueryCache(NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, System.Collections.Generic.IDictionary props, NHibernate.Cache.CacheBase regionCache) => throw null; - public NHibernate.Cache.IQueryCache GetQueryCache(string regionName, NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary props) => throw null; public StandardQueryCacheFactory() => throw null; + public NHibernate.Cache.IQueryCache GetQueryCache(string regionName, NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary props) => throw null; + public virtual NHibernate.Cache.IQueryCache GetQueryCache(NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, System.Collections.Generic.IDictionary props, NHibernate.Cache.CacheBase regionCache) => throw null; } - - // Generated from `NHibernate.Cache.Timestamper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class Timestamper { - public static System.Int64 Next() => throw null; - public const System.Int16 OneMs = default; + public static long Next() => throw null; + public static short OneMs; } - - // Generated from `NHibernate.Cache.UpdateTimestampsCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class UpdateTimestampsCache { - public virtual bool[] AreUpToDate(System.Collections.Generic.ISet[] spaces, System.Int64[] timestamps) => throw null; - public virtual System.Threading.Tasks.Task AreUpToDateAsync(System.Collections.Generic.ISet[] spaces, System.Int64[] timestamps, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual bool[] AreUpToDate(System.Collections.Generic.ISet[] spaces, long[] timestamps) => throw null; + public virtual System.Threading.Tasks.Task AreUpToDateAsync(System.Collections.Generic.ISet[] spaces, long[] timestamps, System.Threading.CancellationToken cancellationToken) => throw null; public virtual void Clear() => throw null; public virtual System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public UpdateTimestampsCache(NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary props) => throw null; + public UpdateTimestampsCache(NHibernate.Cache.CacheBase cache) => throw null; public virtual void Destroy() => throw null; public void Invalidate(object[] spaces) => throw null; public virtual void Invalidate(System.Collections.Generic.IReadOnlyCollection spaces) => throw null; - public virtual System.Threading.Tasks.Task InvalidateAsync(System.Collections.Generic.IReadOnlyCollection spaces, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task InvalidateAsync(object[] spaces, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual bool IsUpToDate(System.Collections.Generic.ISet spaces, System.Int64 timestamp) => throw null; - public virtual System.Threading.Tasks.Task IsUpToDateAsync(System.Collections.Generic.ISet spaces, System.Int64 timestamp, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task InvalidateAsync(System.Collections.Generic.IReadOnlyCollection spaces, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual bool IsUpToDate(System.Collections.Generic.ISet spaces, long timestamp) => throw null; + public virtual System.Threading.Tasks.Task IsUpToDateAsync(System.Collections.Generic.ISet spaces, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null; public void PreInvalidate(object[] spaces) => throw null; public virtual void PreInvalidate(System.Collections.Generic.IReadOnlyCollection spaces) => throw null; - public virtual System.Threading.Tasks.Task PreInvalidateAsync(System.Collections.Generic.IReadOnlyCollection spaces, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task PreInvalidateAsync(object[] spaces, System.Threading.CancellationToken cancellationToken) => throw null; - public UpdateTimestampsCache(NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary props) => throw null; - public UpdateTimestampsCache(NHibernate.Cache.CacheBase cache) => throw null; - } - - namespace Access - { - // Generated from `NHibernate.Cache.Access.ISoftLock` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISoftLock - { - } - - } - namespace Entry - { - // Generated from `NHibernate.Cache.Entry.CacheEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CacheEntry - { - public bool AreLazyPropertiesUnfetched { get => throw null; set => throw null; } - public object[] Assemble(object instance, object id, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.IInterceptor interceptor, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task AssembleAsync(object instance, object id, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.IInterceptor interceptor, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public CacheEntry(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, bool unfetched, object version, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; - public CacheEntry() => throw null; - public static NHibernate.Cache.Entry.CacheEntry Create(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, object version, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; - public static NHibernate.Cache.Entry.CacheEntry Create(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, bool unfetched, object version, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; - public static System.Threading.Tasks.Task CreateAsync(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, object version, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task CreateAsync(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, bool unfetched, object version, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public object[] DisassembledState { get => throw null; set => throw null; } - public string Subclass { get => throw null; set => throw null; } - public object Version { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Cache.Entry.CollectionCacheEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionCacheEntry - { - public virtual void Assemble(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object owner) => throw null; - public virtual System.Threading.Tasks.Task AssembleAsync(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public CollectionCacheEntry(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public CollectionCacheEntry() => throw null; - public static NHibernate.Cache.Entry.CollectionCacheEntry Create(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public static System.Threading.Tasks.Task CreateAsync(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual object[] State { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Cache.Entry.ICacheEntryStructure` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICacheEntryStructure - { - object Destructure(object map, NHibernate.Engine.ISessionFactoryImplementor factory); - object Structure(object item); - } - - // Generated from `NHibernate.Cache.Entry.StructuredCacheEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StructuredCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure - { - public object Destructure(object item, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public object Structure(object item) => throw null; - public StructuredCacheEntry(NHibernate.Persister.Entity.IEntityPersister persister) => throw null; - } - - // Generated from `NHibernate.Cache.Entry.StructuredCollectionCacheEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StructuredCollectionCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure - { - public virtual object Destructure(object item, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public virtual object Structure(object item) => throw null; - public StructuredCollectionCacheEntry() => throw null; - } - - // Generated from `NHibernate.Cache.Entry.StructuredMapCacheEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StructuredMapCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure - { - public object Destructure(object item, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public object Structure(object item) => throw null; - public StructuredMapCacheEntry() => throw null; - } - - // Generated from `NHibernate.Cache.Entry.UnstructuredCacheEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnstructuredCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure - { - public object Destructure(object map, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public object Structure(object item) => throw null; - public UnstructuredCacheEntry() => throw null; - } - + public virtual System.Threading.Tasks.Task PreInvalidateAsync(System.Collections.Generic.IReadOnlyCollection spaces, System.Threading.CancellationToken cancellationToken) => throw null; } } + [System.Flags] + public enum CacheMode + { + Ignore = 0, + Put = 1, + Get = 2, + Normal = 3, + Refresh = 5, + } + public class CallbackException : NHibernate.HibernateException + { + public CallbackException(System.Exception innerException) => throw null; + public CallbackException(string message) => throw null; + public CallbackException(string message, System.Exception innerException) => throw null; + protected CallbackException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } namespace Cfg { - // Generated from `NHibernate.Cfg.AppSettings` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class AppSettings { - public const string LoggerFactoryClassName = default; + public static string LoggerFactoryClassName; } - - // Generated from `NHibernate.Cfg.BindMappingEventArgs` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BindMappingEventArgs : System.EventArgs { public BindMappingEventArgs(NHibernate.Dialect.Dialect dialect, NHibernate.Cfg.MappingSchema.HbmMapping mapping, string fileName) => throw null; @@ -3119,11 +1321,8 @@ namespace NHibernate public string FileName { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmMapping Mapping { get => throw null; } } - - // Generated from `NHibernate.Cfg.ClassExtractor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ClassExtractor { - // Generated from `NHibernate.Cfg.ClassExtractor+ClassEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ClassEntry { public ClassEntry(string extends, string className, string entityName, string assembly, string @namespace) => throw null; @@ -3135,13 +1334,9 @@ namespace NHibernate public NHibernate.Util.AssemblyQualifiedTypeName FullExtends { get => throw null; } public override int GetHashCode() => throw null; } - - public ClassExtractor() => throw null; public static System.Collections.Generic.ICollection GetClassEntries(NHibernate.Cfg.MappingSchema.HbmMapping document) => throw null; } - - // Generated from `NHibernate.Cfg.Configuration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Configuration : System.Runtime.Serialization.ISerializable { public NHibernate.Cfg.Configuration AddAssembly(string assemblyName) => throw null; @@ -3150,13 +1345,13 @@ namespace NHibernate public NHibernate.Cfg.Configuration AddClass(System.Type persistentClass) => throw null; public void AddDeserializedMapping(NHibernate.Cfg.MappingSchema.HbmMapping mappingDocument, string documentFileName) => throw null; public NHibernate.Cfg.Configuration AddDirectory(System.IO.DirectoryInfo dir) => throw null; - public NHibernate.Cfg.Configuration AddDocument(System.Xml.XmlDocument doc, string name) => throw null; public NHibernate.Cfg.Configuration AddDocument(System.Xml.XmlDocument doc) => throw null; + public NHibernate.Cfg.Configuration AddDocument(System.Xml.XmlDocument doc, string name) => throw null; public NHibernate.Cfg.Configuration AddFile(string xmlFile) => throw null; public NHibernate.Cfg.Configuration AddFile(System.IO.FileInfo xmlFile) => throw null; public void AddFilterDefinition(NHibernate.Engine.FilterDefinition definition) => throw null; - public NHibernate.Cfg.Configuration AddInputStream(System.IO.Stream xmlInputStream, string name) => throw null; public NHibernate.Cfg.Configuration AddInputStream(System.IO.Stream xmlInputStream) => throw null; + public NHibernate.Cfg.Configuration AddInputStream(System.IO.Stream xmlInputStream, string name) => throw null; public void AddMapping(NHibernate.Cfg.MappingSchema.HbmMapping mappingDocument) => throw null; public NHibernate.Cfg.Configuration AddNamedQuery(string queryIdentifier, System.Action namedQueryDefinition) => throw null; public NHibernate.Cfg.Configuration AddProperties(System.Collections.Generic.IDictionary additionalProperties) => throw null; @@ -3165,69 +1360,77 @@ namespace NHibernate public void AddSqlFunction(string functionName, NHibernate.Dialect.Function.ISQLFunction sqlFunction) => throw null; public NHibernate.Cfg.Configuration AddUrl(string url) => throw null; public NHibernate.Cfg.Configuration AddUrl(System.Uri url) => throw null; - public NHibernate.Cfg.Configuration AddXml(string xml, string name) => throw null; public NHibernate.Cfg.Configuration AddXml(string xml) => throw null; + public NHibernate.Cfg.Configuration AddXml(string xml, string name) => throw null; public NHibernate.Cfg.Configuration AddXmlFile(string xmlFile) => throw null; - public NHibernate.Cfg.Configuration AddXmlReader(System.Xml.XmlReader hbmReader, string name) => throw null; public NHibernate.Cfg.Configuration AddXmlReader(System.Xml.XmlReader hbmReader) => throw null; + public NHibernate.Cfg.Configuration AddXmlReader(System.Xml.XmlReader hbmReader, string name) => throw null; public NHibernate.Cfg.Configuration AddXmlString(string xml) => throw null; - public event System.EventHandler AfterBindMapping; + public event System.EventHandler AfterBindMapping { add { } remove { } } public void AppendListeners(NHibernate.Event.ListenerType type, object[] listeners) => throw null; - public event System.EventHandler BeforeBindMapping; + protected System.Collections.Generic.IList auxiliaryDatabaseObjects; + public event System.EventHandler BeforeBindMapping { add { } remove { } } public virtual NHibernate.Engine.IMapping BuildMapping() => throw null; public virtual void BuildMappings() => throw null; public NHibernate.ISessionFactory BuildSessionFactory() => throw null; public NHibernate.Cfg.Configuration Cache(System.Action cacheProperties) => throw null; + protected System.Collections.Generic.IDictionary classes; public System.Collections.Generic.ICollection ClassMappings { get => throw null; } public System.Collections.Generic.ICollection CollectionMappings { get => throw null; } + protected System.Collections.Generic.IDictionary collections; public NHibernate.Cfg.Configuration CollectionTypeFactory() => throw null; - public Configuration(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public Configuration() => throw null; - protected Configuration(NHibernate.Cfg.SettingsFactory settingsFactory) => throw null; - public NHibernate.Cfg.Configuration Configure(string fileName) => throw null; - public NHibernate.Cfg.Configuration Configure(System.Xml.XmlReader textReader) => throw null; - public NHibernate.Cfg.Configuration Configure(System.Reflection.Assembly assembly, string resourceName) => throw null; + protected System.Collections.Generic.IDictionary columnNameBindingPerTable; public NHibernate.Cfg.Configuration Configure() => throw null; + public NHibernate.Cfg.Configuration Configure(string fileName) => throw null; + public NHibernate.Cfg.Configuration Configure(System.Reflection.Assembly assembly, string resourceName) => throw null; + public NHibernate.Cfg.Configuration Configure(System.Xml.XmlReader textReader) => throw null; protected virtual void ConfigureProxyFactoryFactory() => throw null; public NHibernate.Cfg.Mappings CreateMappings(NHibernate.Dialect.Dialect dialect) => throw null; public NHibernate.Cfg.Mappings CreateMappings() => throw null; + public Configuration(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + protected Configuration(NHibernate.Cfg.SettingsFactory settingsFactory) => throw null; + public Configuration() => throw null; public NHibernate.Cfg.Configuration CurrentSessionContext() where TCurrentSessionContext : NHibernate.Context.ICurrentSessionContext => throw null; public NHibernate.Cfg.Configuration DataBaseIntegration(System.Action dataBaseIntegration) => throw null; - public const string DefaultHibernateCfgFileName = default; + public static string DefaultHibernateCfgFileName; protected NHibernate.Cfg.Configuration DoConfigure(NHibernate.Cfg.ISessionFactoryConfiguration factoryConfiguration) => throw null; public NHibernate.Cfg.Configuration EntityCache(System.Action> entityCacheConfiguration) where TEntity : class => throw null; - public NHibernate.Proxy.IEntityNotFoundDelegate EntityNotFoundDelegate { get => throw null; set => throw null; } + public NHibernate.Proxy.IEntityNotFoundDelegate EntityNotFoundDelegate { get => throw null; set { } } public NHibernate.Event.EventListeners EventListeners { get => throw null; } - public System.Collections.Generic.IDictionary FilterDefinitions { get => throw null; set => throw null; } + protected System.Collections.Generic.ISet extendsQueue; + public System.Collections.Generic.IDictionary FilterDefinitions { get => throw null; set { } } + protected System.Collections.Generic.Queue filtersSecondPasses; public string[] GenerateDropSchemaScript(NHibernate.Dialect.Dialect dialect) => throw null; public string[] GenerateSchemaCreationScript(NHibernate.Dialect.Dialect dialect) => throw null; public string[] GenerateSchemaUpdateScript(NHibernate.Dialect.Dialect dialect, NHibernate.Tool.hbm2ddl.IDatabaseMetadata databaseMetadata) => throw null; - public NHibernate.Mapping.PersistentClass GetClassMapping(string entityName) => throw null; public NHibernate.Mapping.PersistentClass GetClassMapping(System.Type persistentClass) => throw null; + public NHibernate.Mapping.PersistentClass GetClassMapping(string entityName) => throw null; public NHibernate.Mapping.Collection GetCollectionMapping(string role) => throw null; protected virtual string GetDefaultConfigurationFilePath() => throw null; public System.Collections.Generic.IDictionary GetDerivedProperties() => throw null; public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public string GetProperty(string name) => throw null; public NHibernate.Cfg.Configuration HqlQueryTranslator() where TQueryTranslator : NHibernate.Hql.IQueryTranslatorFactory => throw null; - public System.Collections.Generic.IDictionary Imports { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Imports { get => throw null; set { } } public static bool IncludeAction(NHibernate.Mapping.SchemaAction actionsSource, NHibernate.Mapping.SchemaAction includedAction) => throw null; - public NHibernate.IInterceptor Interceptor { get => throw null; set => throw null; } + public NHibernate.IInterceptor Interceptor { get => throw null; set { } } public NHibernate.Cfg.Configuration LinqQueryProvider() where TQueryProvider : NHibernate.Linq.INhQueryProvider => throw null; public NHibernate.Cfg.Configuration LinqToHqlGeneratorsRegistry() where TLinqToHqlGeneratorsRegistry : NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry => throw null; public NHibernate.Cfg.NamedXmlDocument LoadMappingDocument(System.Xml.XmlReader hbmReader, string name) => throw null; public NHibernate.Cfg.Configuration Mappings(System.Action mappingsProperties) => throw null; - public System.Collections.Generic.IDictionary NamedQueries { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary NamedSQLQueries { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary NamedQueries { get => throw null; set { } } + public System.Collections.Generic.IDictionary NamedSQLQueries { get => throw null; set { } } public NHibernate.Cfg.INamingStrategy NamingStrategy { get => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Properties { get => throw null; set { } } + protected System.Collections.Generic.IList propertyReferences; public NHibernate.Cfg.Configuration Proxy(System.Action proxyProperties) => throw null; protected void Reset() => throw null; + protected System.Collections.Generic.IList secondPasses; public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration SessionFactory() => throw null; public NHibernate.Cfg.Configuration SessionFactory(System.Action configure) => throw null; public NHibernate.Cfg.Configuration SessionFactoryName(string sessionFactoryName) => throw null; - public void SetCacheConcurrencyStrategy(string clazz, string concurrencyStrategy, string region) => throw null; public NHibernate.Cfg.Configuration SetCacheConcurrencyStrategy(string clazz, string concurrencyStrategy) => throw null; + public void SetCacheConcurrencyStrategy(string clazz, string concurrencyStrategy, string region) => throw null; public NHibernate.Cfg.Configuration SetCollectionCacheConcurrencyStrategy(string collectionRole, string concurrencyStrategy) => throw null; public NHibernate.Cfg.Configuration SetDefaultAssembly(string newDefaultAssembly) => throw null; public NHibernate.Cfg.Configuration SetDefaultNamespace(string newDefaultNamespace) => throw null; @@ -3238,26 +1441,16 @@ namespace NHibernate public NHibernate.Cfg.Configuration SetNamingStrategy(NHibernate.Cfg.INamingStrategy newNamingStrategy) => throw null; public NHibernate.Cfg.Configuration SetProperties(System.Collections.Generic.IDictionary newProperties) => throw null; public NHibernate.Cfg.Configuration SetProperty(string name, string value) => throw null; - public System.Collections.Generic.IDictionary SqlFunctions { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary SqlResultSetMappings { get => throw null; set => throw null; } - public NHibernate.Cfg.Configuration TypeDefinition(System.Action typeDefConfiguration) where TDef : class => throw null; - public void ValidateSchema(NHibernate.Dialect.Dialect dialect, NHibernate.Tool.hbm2ddl.IDatabaseMetadata databaseMetadata) => throw null; - protected System.Collections.Generic.IList auxiliaryDatabaseObjects; - protected System.Collections.Generic.IDictionary classes; - protected System.Collections.Generic.IDictionary collections; - protected System.Collections.Generic.IDictionary columnNameBindingPerTable; - protected System.Collections.Generic.ISet extendsQueue; - protected System.Collections.Generic.Queue filtersSecondPasses; - protected System.Collections.Generic.IList propertyReferences; - protected System.Collections.Generic.IList secondPasses; - protected internal NHibernate.Cfg.SettingsFactory settingsFactory; + protected NHibernate.Cfg.SettingsFactory settingsFactory; + public System.Collections.Generic.IDictionary SqlFunctions { get => throw null; set { } } + public System.Collections.Generic.IDictionary SqlResultSetMappings { get => throw null; set { } } protected System.Collections.Generic.IDictionary tableNameBinding; protected System.Collections.Generic.IDictionary tables; + public NHibernate.Cfg.Configuration TypeDefinition(System.Action typeDefConfiguration) where TDef : class => throw null; protected System.Collections.Generic.IDictionary typeDefs; + public void ValidateSchema(NHibernate.Dialect.Dialect dialect, NHibernate.Tool.hbm2ddl.IDatabaseMetadata databaseMetadata) => throw null; } - - // Generated from `NHibernate.Cfg.ConfigurationExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ConfigurationExtensions + public static partial class ConfigurationExtensions { public static NHibernate.Cfg.Configuration AddNamedQuery(this NHibernate.Cfg.Configuration configuration, string queryIdentifier, System.Action namedQueryDefinition) => throw null; public static NHibernate.Cfg.Configuration Cache(this NHibernate.Cfg.Configuration configuration, System.Action cacheProperties) => throw null; @@ -3274,528 +1467,27 @@ namespace NHibernate public static NHibernate.Cfg.Configuration SessionFactoryName(this NHibernate.Cfg.Configuration configuration, string sessionFactoryName) => throw null; public static NHibernate.Cfg.Configuration TypeDefinition(this NHibernate.Cfg.Configuration configuration, System.Action typeDefConfiguration) where TDef : class => throw null; } - - // Generated from `NHibernate.Cfg.ConfigurationProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class ConfigurationProvider { protected ConfigurationProvider() => throw null; - public static NHibernate.Cfg.ConfigurationProvider Current { get => throw null; set => throw null; } + public static NHibernate.Cfg.ConfigurationProvider Current { get => throw null; set { } } public abstract NHibernate.Cfg.IHibernateConfiguration GetConfiguration(); public abstract string GetLoggerFactoryClassName(); public abstract string GetNamedConnectionString(string name); } - - // Generated from `NHibernate.Cfg.ConfigurationSectionHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ConfigurationSectionHandler : System.Configuration.IConfigurationSectionHandler - { - public ConfigurationSectionHandler() => throw null; - object System.Configuration.IConfigurationSectionHandler.Create(object parent, object configContext, System.Xml.XmlNode section) => throw null; - } - - // Generated from `NHibernate.Cfg.DefaultNamingStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DefaultNamingStrategy : NHibernate.Cfg.INamingStrategy - { - public string ClassToTableName(string className) => throw null; - public string ColumnName(string columnName) => throw null; - public static NHibernate.Cfg.INamingStrategy Instance; - public string LogicalColumnName(string columnName, string propertyName) => throw null; - public string PropertyToColumnName(string propertyName) => throw null; - public string PropertyToTableName(string className, string propertyName) => throw null; - public string TableName(string tableName) => throw null; - } - - // Generated from `NHibernate.Cfg.EntityCacheUsage` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum EntityCacheUsage - { - NonStrictReadWrite, - ReadWrite, - Readonly, - Transactional, - } - - // Generated from `NHibernate.Cfg.EntityCacheUsageParser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class EntityCacheUsageParser - { - public static NHibernate.Cfg.EntityCacheUsage Parse(string value) => throw null; - public static string ToString(NHibernate.Cfg.EntityCacheUsage value) => throw null; - } - - // Generated from `NHibernate.Cfg.Environment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class Environment - { - public const string AutoJoinTransaction = default; - public const string BatchSize = default; - public const string BatchStrategy = default; - public const string BatchVersionedData = default; - public static NHibernate.Bytecode.IBytecodeProvider BuildBytecodeProvider(System.Collections.Generic.IDictionary properties) => throw null; - public static NHibernate.Bytecode.IObjectsFactory BuildObjectsFactory(System.Collections.Generic.IDictionary properties) => throw null; - public static NHibernate.Bytecode.IBytecodeProvider BytecodeProvider { get => throw null; set => throw null; } - public const string CacheDefaultExpiration = default; - public const string CacheProvider = default; - public const string CacheRegionPrefix = default; - public const string CollectionTypeFactoryClass = default; - public const string CommandTimeout = default; - public const string ConnectionDriver = default; - public const string ConnectionProvider = default; - public const string ConnectionString = default; - public const string ConnectionStringName = default; - public const string CurrentSessionContextClass = default; - public const string DefaultBatchFetchSize = default; - public const string DefaultCatalog = default; - public const string DefaultEntityMode = default; - public const string DefaultFlushMode = default; - public const string DefaultSchema = default; - public const string Dialect = default; - public const string FirebirdDisableParameterCasting = default; - public const string FormatSql = default; - public const string GenerateStatistics = default; - public const string Hbm2ddlAuto = default; - public const string Hbm2ddlKeyWords = default; - public const string Hbm2ddlThrowOnUpdate = default; - public static void InitializeGlobalProperties(NHibernate.Cfg.IHibernateConfiguration config) => throw null; - public const string Isolation = default; - public const string LinqToHqlFallbackOnPreEvaluation = default; - public const string LinqToHqlGeneratorsRegistry = default; - public const string LinqToHqlLegacyPreEvaluation = default; - public const string MaxFetchDepth = default; - public const string MultiTenancy = default; - public const string MultiTenancyConnectionProvider = default; - public static NHibernate.Bytecode.IObjectsFactory ObjectsFactory { get => throw null; set => throw null; } - public const string OdbcDateTimeScale = default; - public const string OracleUseBinaryFloatingPointTypes = default; - public const string OracleUseNPrefixedTypesForUnicode = default; - public const string OrderInserts = default; - public const string OrderUpdates = default; - public const string OutputStylesheet = default; - public const string PreTransformerRegistrar = default; - public const string PreferPooledValuesLo = default; - public const string PrepareSql = default; - public static System.Collections.Generic.IDictionary Properties { get => throw null; } - public const string PropertyBytecodeProvider = default; - public const string PropertyObjectsFactory = default; - public const string PropertyUseReflectionOptimizer = default; - public const string ProxyFactoryFactoryClass = default; - public const string QueryCacheFactory = default; - public const string QueryDefaultCastLength = default; - public const string QueryDefaultCastPrecision = default; - public const string QueryDefaultCastScale = default; - public const string QueryImports = default; - public const string QueryLinqProvider = default; - public const string QueryModelRewriterFactory = default; - public const string QueryStartupChecking = default; - public const string QuerySubstitutions = default; - public const string QueryTranslator = default; - public const string ReleaseConnections = default; - public const string SessionFactoryName = default; - public const string ShowSql = default; - public const string SqlExceptionConverter = default; - public const string SqlTypesKeepDateTime = default; - public const string SqliteBinaryGuid = default; - public const string StatementFetchSize = default; - public const string SystemTransactionCompletionLockTimeout = default; - public const string TrackSessionId = default; - public const string TransactionManagerStrategy = default; - public const string TransactionStrategy = default; - public const string UseConnectionOnSystemTransactionPrepare = default; - public const string UseGetGeneratedKeys = default; - public const string UseIdentifierRollBack = default; - public const string UseMinimalPuts = default; - public const string UseProxyValidator = default; - public const string UseQueryCache = default; - public static bool UseReflectionOptimizer { get => throw null; set => throw null; } - public const string UseSecondLevelCache = default; - public const string UseSqlComments = default; - public static void VerifyProperties(System.Collections.Generic.IDictionary props) => throw null; - public static string Version { get => throw null; } - public const string WrapResultSets = default; - } - - // Generated from `NHibernate.Cfg.ExtendsQueueEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ExtendsQueueEntry - { - public System.Xml.XmlDocument Document { get => throw null; } - public string ExplicitName { get => throw null; } - public ExtendsQueueEntry(string explicitName, string mappingPackage, System.Xml.XmlDocument document) => throw null; - public string MappingPackage { get => throw null; } - } - - // Generated from `NHibernate.Cfg.FilterSecondPassArgs` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FilterSecondPassArgs - { - public string FilterName { get => throw null; set => throw null; } - public FilterSecondPassArgs(NHibernate.Mapping.IFilterable filterable, string filterName) => throw null; - public NHibernate.Mapping.IFilterable Filterable { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Cfg.Hbm2DDLKeyWords` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Hbm2DDLKeyWords - { - public static bool operator !=(string a, NHibernate.Cfg.Hbm2DDLKeyWords b) => throw null; - public static bool operator !=(NHibernate.Cfg.Hbm2DDLKeyWords a, string b) => throw null; - public static bool operator ==(string a, NHibernate.Cfg.Hbm2DDLKeyWords b) => throw null; - public static bool operator ==(NHibernate.Cfg.Hbm2DDLKeyWords a, string b) => throw null; - public static NHibernate.Cfg.Hbm2DDLKeyWords AutoQuote; - public override bool Equals(object obj) => throw null; - public bool Equals(string other) => throw null; - public bool Equals(NHibernate.Cfg.Hbm2DDLKeyWords other) => throw null; - public override int GetHashCode() => throw null; - public static NHibernate.Cfg.Hbm2DDLKeyWords Keywords; - public static NHibernate.Cfg.Hbm2DDLKeyWords None; - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Cfg.HbmConstants` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmConstants - { - public HbmConstants() => throw null; - public const string nsClass = default; - public const string nsCollectionId = default; - public const string nsColumn = default; - public const string nsCreate = default; - public const string nsDatabaseObject = default; - public const string nsDefinition = default; - public const string nsDialectScope = default; - public const string nsDrop = default; - public const string nsFilter = default; - public const string nsFilterDef = default; - public const string nsFilterParam = default; - public const string nsFormula = default; - public const string nsGenerator = default; - public const string nsImport = default; - public const string nsIndex = default; - public const string nsJoinedSubclass = default; - public const string nsKey = default; - public const string nsListIndex = default; - public const string nsLoader = default; - public const string nsMeta = default; - public const string nsMetaValue = default; - public const string nsOneToMany = default; - public const string nsParam = default; - public const string nsPrefix = default; - public const string nsQuery = default; - public const string nsQueryParam = default; - public const string nsResultset = default; - public const string nsReturnColumn = default; - public const string nsReturnDiscriminator = default; - public const string nsReturnProperty = default; - public const string nsSqlDelete = default; - public const string nsSqlDeleteAll = default; - public const string nsSqlInsert = default; - public const string nsSqlQuery = default; - public const string nsSqlUpdate = default; - public const string nsSubclass = default; - public const string nsSynchronize = default; - public const string nsTuplizer = default; - public const string nsType = default; - public const string nsUnionSubclass = default; - } - - // Generated from `NHibernate.Cfg.HibernateConfigException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HibernateConfigException : NHibernate.MappingException - { - public HibernateConfigException(string message, System.Exception innerException) : base(default(System.Exception)) => throw null; - public HibernateConfigException(string message) : base(default(System.Exception)) => throw null; - public HibernateConfigException(System.Exception innerException) : base(default(System.Exception)) => throw null; - public HibernateConfigException() : base(default(System.Exception)) => throw null; - protected HibernateConfigException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(System.Exception)) => throw null; - } - - // Generated from `NHibernate.Cfg.IHibernateConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IHibernateConfiguration - { - string ByteCodeProviderType { get; } - NHibernate.Cfg.ISessionFactoryConfiguration SessionFactory { get; } - bool UseReflectionOptimizer { get; } - } - - // Generated from `NHibernate.Cfg.INamingStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface INamingStrategy - { - string ClassToTableName(string className); - string ColumnName(string columnName); - string LogicalColumnName(string columnName, string propertyName); - string PropertyToColumnName(string propertyName); - string PropertyToTableName(string className, string propertyName); - string TableName(string tableName); - } - - // Generated from `NHibernate.Cfg.ISessionFactoryConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISessionFactoryConfiguration - { - System.Collections.Generic.IList ClassesCache { get; } - System.Collections.Generic.IList CollectionsCache { get; } - System.Collections.Generic.IList Events { get; } - System.Collections.Generic.IList Listeners { get; } - System.Collections.Generic.IList Mappings { get; } - string Name { get; } - System.Collections.Generic.IDictionary Properties { get; } - } - - // Generated from `NHibernate.Cfg.ImprovedNamingStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ImprovedNamingStrategy : NHibernate.Cfg.INamingStrategy - { - public string ClassToTableName(string className) => throw null; - public string ColumnName(string columnName) => throw null; - public static NHibernate.Cfg.INamingStrategy Instance; - public string LogicalColumnName(string columnName, string propertyName) => throw null; - public string PropertyToColumnName(string propertyName) => throw null; - public string PropertyToTableName(string className, string propertyName) => throw null; - public string TableName(string tableName) => throw null; - } - - // Generated from `NHibernate.Cfg.Mappings` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Mappings - { - public void AddAuxiliaryDatabaseObject(NHibernate.Mapping.IAuxiliaryDatabaseObject auxiliaryDatabaseObject) => throw null; - public void AddClass(NHibernate.Mapping.PersistentClass persistentClass) => throw null; - public void AddCollection(NHibernate.Mapping.Collection collection) => throw null; - public void AddColumnBinding(string logicalName, NHibernate.Mapping.Column finalColumn, NHibernate.Mapping.Table table) => throw null; - public NHibernate.Mapping.Table AddDenormalizedTable(string schema, string catalog, string name, bool isAbstract, string subselect, NHibernate.Mapping.Table includedTable) => throw null; - public void AddFilterDefinition(NHibernate.Engine.FilterDefinition definition) => throw null; - public void AddImport(string className, string rename) => throw null; - public void AddPropertyReference(string referencedClass, string propertyName) => throw null; - public void AddQuery(string name, NHibernate.Engine.NamedQueryDefinition query) => throw null; - public void AddResultSetMapping(NHibernate.Engine.ResultSetMappingDefinition sqlResultSetMapping) => throw null; - public void AddSQLQuery(string name, NHibernate.Engine.NamedSQLQueryDefinition query) => throw null; - public void AddSecondPass(NHibernate.Cfg.SecondPassCommand command, bool onTopOfTheQueue) => throw null; - public void AddSecondPass(NHibernate.Cfg.SecondPassCommand command) => throw null; - public NHibernate.Mapping.Table AddTable(string schema, string catalog, string name, string subselect, bool isAbstract, string schemaAction) => throw null; - public void AddTableBinding(string schema, string catalog, string logicalName, string physicalName, NHibernate.Mapping.Table denormalizedSuperTable) => throw null; - public void AddToExtendsQueue(NHibernate.Cfg.ExtendsQueueEntry entry) => throw null; - public void AddTypeDef(string typeName, string typeClass, System.Collections.Generic.IDictionary paramMap) => throw null; - public void AddUniquePropertyReference(string referencedClass, string propertyName) => throw null; - public string CatalogName { get => throw null; set => throw null; } - // Generated from `NHibernate.Cfg.Mappings+ColumnNames` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ColumnNames - { - public ColumnNames() => throw null; - public System.Collections.Generic.IDictionary logicalToPhysical; - public System.Collections.Generic.IDictionary physicalToLogical; - } - - - public string DefaultAccess { get => throw null; set => throw null; } - public string DefaultAssembly { get => throw null; set => throw null; } - public string DefaultCascade { get => throw null; set => throw null; } - public string DefaultCatalog { get => throw null; set => throw null; } - public bool DefaultLazy { get => throw null; set => throw null; } - public string DefaultNamespace { get => throw null; set => throw null; } - public string DefaultSchema { get => throw null; set => throw null; } - public NHibernate.Dialect.Dialect Dialect { get => throw null; } - public void ExpectedFilterDefinition(NHibernate.Mapping.IFilterable filterable, string filterName, string condition) => throw null; - public System.Collections.Generic.IDictionary FilterDefinitions { get => throw null; } - public NHibernate.Mapping.PersistentClass GetClass(string className) => throw null; - public NHibernate.Mapping.Collection GetCollection(string role) => throw null; - public NHibernate.Engine.FilterDefinition GetFilterDefinition(string name) => throw null; - public string GetLogicalColumnName(string physicalName, NHibernate.Mapping.Table table) => throw null; - public string GetLogicalTableName(NHibernate.Mapping.Table table) => throw null; - public string GetPhysicalColumnName(string logicalName, NHibernate.Mapping.Table table) => throw null; - public NHibernate.Engine.NamedQueryDefinition GetQuery(string name) => throw null; - public NHibernate.Engine.ResultSetMappingDefinition GetResultSetMapping(string name) => throw null; - public NHibernate.Mapping.Table GetTable(string schema, string catalog, string name) => throw null; - public NHibernate.Mapping.TypeDef GetTypeDef(string typeName) => throw null; - public bool IsAutoImport { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable IterateCollections { get => throw null; } - public System.Collections.Generic.IEnumerable IterateTables { get => throw null; } - public NHibernate.Mapping.PersistentClass LocatePersistentClassByEntityName(string entityName) => throw null; - protected internal Mappings(System.Collections.Generic.IDictionary classes, System.Collections.Generic.IDictionary collections, System.Collections.Generic.IDictionary tables, System.Collections.Generic.IDictionary queries, System.Collections.Generic.IDictionary sqlqueries, System.Collections.Generic.IDictionary resultSetMappings, System.Collections.Generic.IDictionary imports, System.Collections.Generic.IList secondPasses, System.Collections.Generic.Queue filtersSecondPasses, System.Collections.Generic.IList propertyReferences, NHibernate.Cfg.INamingStrategy namingStrategy, System.Collections.Generic.IDictionary typeDefs, System.Collections.Generic.IDictionary filterDefinitions, System.Collections.Generic.ISet extendsQueue, System.Collections.Generic.IList auxiliaryDatabaseObjects, System.Collections.Generic.IDictionary tableNameBinding, System.Collections.Generic.IDictionary columnNameBindingPerTable, string defaultAssembly, string defaultNamespace, string defaultCatalog, string defaultSchema, string preferPooledValuesLo, NHibernate.Dialect.Dialect dialect) => throw null; - protected internal Mappings(System.Collections.Generic.IDictionary classes, System.Collections.Generic.IDictionary collections, System.Collections.Generic.IDictionary tables, System.Collections.Generic.IDictionary queries, System.Collections.Generic.IDictionary sqlqueries, System.Collections.Generic.IDictionary resultSetMappings, System.Collections.Generic.IDictionary imports, System.Collections.Generic.IList secondPasses, System.Collections.Generic.Queue filtersSecondPasses, System.Collections.Generic.IList propertyReferences, NHibernate.Cfg.INamingStrategy namingStrategy, System.Collections.Generic.IDictionary typeDefs, System.Collections.Generic.IDictionary filterDefinitions, System.Collections.Generic.ISet extendsQueue, System.Collections.Generic.IList auxiliaryDatabaseObjects, System.Collections.Generic.IDictionary tableNameBinding, System.Collections.Generic.IDictionary columnNameBindingPerTable, string defaultAssembly, string defaultNamespace, string defaultCatalog, string defaultSchema, string preferPooledValuesLo) => throw null; - public NHibernate.Cfg.INamingStrategy NamingStrategy { get => throw null; } - public string PreferPooledValuesLo { get => throw null; set => throw null; } - // Generated from `NHibernate.Cfg.Mappings+PropertyReference` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PropertyReference - { - public PropertyReference() => throw null; - public string propertyName; - public string referencedClass; - public bool unique; - } - - - public string SchemaName { get => throw null; set => throw null; } - // Generated from `NHibernate.Cfg.Mappings+TableDescription` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TableDescription - { - public TableDescription(string logicalName, NHibernate.Mapping.Table denormalizedSupertable) => throw null; - public NHibernate.Mapping.Table denormalizedSupertable; - public string logicalName; - } - - - protected internal System.Collections.Generic.IDictionary columnNameBindingPerTable; - protected internal System.Collections.Generic.ISet extendsQueue; - protected internal System.Collections.Generic.IDictionary tableNameBinding; - protected internal System.Collections.Generic.IDictionary typeDefs; - } - - // Generated from `NHibernate.Cfg.MappingsQueue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MappingsQueue - { - public void AddDocument(NHibernate.Cfg.NamedXmlDocument document) => throw null; - public void CheckNoUnavailableEntries() => throw null; - public NHibernate.Cfg.NamedXmlDocument GetNextAvailableResource() => throw null; - public MappingsQueue() => throw null; - } - - // Generated from `NHibernate.Cfg.MappingsQueueEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MappingsQueueEntry - { - public System.Collections.Generic.ICollection ContainedClassNames { get => throw null; } - public NHibernate.Cfg.NamedXmlDocument Document { get => throw null; } - public MappingsQueueEntry(NHibernate.Cfg.NamedXmlDocument document, System.Collections.Generic.IEnumerable classEntries) => throw null; - public System.Collections.Generic.ICollection RequiredClassNames { get => throw null; } - // Generated from `NHibernate.Cfg.MappingsQueueEntry+RequiredEntityName` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class RequiredEntityName - { - public string EntityName { get => throw null; set => throw null; } - public override bool Equals(object obj) => throw null; - public bool Equals(NHibernate.Cfg.MappingsQueueEntry.RequiredEntityName obj) => throw null; - public string FullClassName { get => throw null; set => throw null; } - public override int GetHashCode() => throw null; - public RequiredEntityName(string entityName, string fullClassName) => throw null; - public override string ToString() => throw null; - } - - - } - - // Generated from `NHibernate.Cfg.NamedXmlDocument` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NamedXmlDocument - { - public NHibernate.Cfg.MappingSchema.HbmMapping Document { get => throw null; } - public string Name { get => throw null; } - public NamedXmlDocument(string name, System.Xml.XmlDocument document, System.Xml.Serialization.XmlSerializer serializer) => throw null; - public NamedXmlDocument(string name, System.Xml.XmlDocument document) => throw null; - } - - // Generated from `NHibernate.Cfg.SchemaAutoAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SchemaAutoAction - { - public static bool operator !=(string a, NHibernate.Cfg.SchemaAutoAction b) => throw null; - public static bool operator !=(NHibernate.Cfg.SchemaAutoAction a, string b) => throw null; - public static bool operator ==(string a, NHibernate.Cfg.SchemaAutoAction b) => throw null; - public static bool operator ==(NHibernate.Cfg.SchemaAutoAction a, string b) => throw null; - public static NHibernate.Cfg.SchemaAutoAction Create; - public override bool Equals(object obj) => throw null; - public bool Equals(string other) => throw null; - public bool Equals(NHibernate.Cfg.SchemaAutoAction other) => throw null; - public override int GetHashCode() => throw null; - public static NHibernate.Cfg.SchemaAutoAction Recreate; - public override string ToString() => throw null; - public static NHibernate.Cfg.SchemaAutoAction Update; - public static NHibernate.Cfg.SchemaAutoAction Validate; - } - - // Generated from `NHibernate.Cfg.SecondPassCommand` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void SecondPassCommand(System.Collections.Generic.IDictionary persistentClasses); - - // Generated from `NHibernate.Cfg.SessionFactoryConfigurationBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SessionFactoryConfigurationBase : NHibernate.Cfg.ISessionFactoryConfiguration - { - public System.Collections.Generic.IList ClassesCache { get => throw null; } - public System.Collections.Generic.IList CollectionsCache { get => throw null; } - public System.Collections.Generic.IList Events { get => throw null; } - public System.Collections.Generic.IList Listeners { get => throw null; } - public System.Collections.Generic.IList Mappings { get => throw null; } - public string Name { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Properties { get => throw null; } - public SessionFactoryConfigurationBase() => throw null; - } - - // Generated from `NHibernate.Cfg.Settings` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Settings - { - public int AdoBatchSize { get => throw null; set => throw null; } - public bool AutoJoinTransaction { get => throw null; set => throw null; } - public NHibernate.AdoNet.IBatcherFactory BatcherFactory { get => throw null; set => throw null; } - public NHibernate.Cache.ICacheProvider CacheProvider { get => throw null; set => throw null; } - public string CacheRegionPrefix { get => throw null; set => throw null; } - public NHibernate.Connection.IConnectionProvider ConnectionProvider { get => throw null; set => throw null; } - public NHibernate.ConnectionReleaseMode ConnectionReleaseMode { get => throw null; set => throw null; } - public int DefaultBatchFetchSize { get => throw null; set => throw null; } - public string DefaultCatalogName { get => throw null; set => throw null; } - public NHibernate.FlushMode DefaultFlushMode { get => throw null; set => throw null; } - public string DefaultSchemaName { get => throw null; set => throw null; } - public NHibernate.Dialect.Dialect Dialect { get => throw null; set => throw null; } - public bool IsAutoCloseSessionEnabled { get => throw null; set => throw null; } - public bool IsAutoCreateSchema { get => throw null; set => throw null; } - public bool IsAutoDropSchema { get => throw null; set => throw null; } - public bool IsAutoQuoteEnabled { get => throw null; set => throw null; } - public bool IsAutoUpdateSchema { get => throw null; set => throw null; } - public bool IsAutoValidateSchema { get => throw null; set => throw null; } - public bool IsBatchVersionedDataEnabled { get => throw null; set => throw null; } - public bool IsCommentsEnabled { get => throw null; set => throw null; } - public bool IsDataDefinitionImplicitCommit { get => throw null; set => throw null; } - public bool IsDataDefinitionInTransactionSupported { get => throw null; set => throw null; } - public bool IsFlushBeforeCompletionEnabled { get => throw null; set => throw null; } - public bool IsGetGeneratedKeysEnabled { get => throw null; set => throw null; } - public bool IsIdentifierRollbackEnabled { get => throw null; set => throw null; } - public bool IsKeywordsImportEnabled { get => throw null; set => throw null; } - public bool IsMinimalPutsEnabled { get => throw null; set => throw null; } - public bool IsNamedQueryStartupCheckingEnabled { get => throw null; set => throw null; } - public bool IsOrderInsertsEnabled { get => throw null; set => throw null; } - public bool IsOrderUpdatesEnabled { get => throw null; set => throw null; } - public bool IsOuterJoinFetchEnabled { get => throw null; set => throw null; } - public bool IsQueryCacheEnabled { get => throw null; set => throw null; } - public bool IsScrollableResultSetsEnabled { get => throw null; set => throw null; } - public bool IsSecondLevelCacheEnabled { get => throw null; set => throw null; } - public bool IsStatisticsEnabled { get => throw null; set => throw null; } - public bool IsStructuredCacheEntriesEnabled { get => throw null; set => throw null; } - public bool IsWrapResultSetsEnabled { get => throw null; set => throw null; } - public System.Data.IsolationLevel IsolationLevel { get => throw null; set => throw null; } - public System.Type LinqQueryProviderType { get => throw null; set => throw null; } - public bool LinqToHqlFallbackOnPreEvaluation { get => throw null; set => throw null; } - public NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry LinqToHqlGeneratorsRegistry { get => throw null; set => throw null; } - public bool LinqToHqlLegacyPreEvaluation { get => throw null; set => throw null; } - public int MaximumFetchDepth { get => throw null; set => throw null; } - public NHibernate.MultiTenancy.IMultiTenancyConnectionProvider MultiTenancyConnectionProvider { get => throw null; set => throw null; } - public NHibernate.MultiTenancy.MultiTenancyStrategy MultiTenancyStrategy { get => throw null; set => throw null; } - public NHibernate.Linq.Visitors.IExpressionTransformerRegistrar PreTransformerRegistrar { get => throw null; set => throw null; } - public NHibernate.Cache.IQueryCacheFactory QueryCacheFactory { get => throw null; set => throw null; } - public NHibernate.Linq.Visitors.IQueryModelRewriterFactory QueryModelRewriterFactory { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary QuerySubstitutions { get => throw null; set => throw null; } - public NHibernate.Hql.IQueryTranslatorFactory QueryTranslatorFactory { get => throw null; set => throw null; } - public string SessionFactoryName { get => throw null; set => throw null; } - public Settings() => throw null; - public NHibernate.Exceptions.ISQLExceptionConverter SqlExceptionConverter { get => throw null; set => throw null; } - public NHibernate.AdoNet.Util.SqlStatementLogger SqlStatementLogger { get => throw null; set => throw null; } - public bool ThrowOnSchemaUpdate { get => throw null; set => throw null; } - public bool TrackSessionId { get => throw null; set => throw null; } - public NHibernate.Transaction.ITransactionFactory TransactionFactory { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Cfg.SettingsFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SettingsFactory - { - public NHibernate.Cfg.Settings BuildSettings(System.Collections.Generic.IDictionary properties) => throw null; - public SettingsFactory() => throw null; - } - - // Generated from `NHibernate.Cfg.SystemConfigurationProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SystemConfigurationProvider : NHibernate.Cfg.ConfigurationProvider - { - public override NHibernate.Cfg.IHibernateConfiguration GetConfiguration() => throw null; - public override string GetLoggerFactoryClassName() => throw null; - public override string GetNamedConnectionString(string name) => throw null; - public SystemConfigurationProvider(System.Configuration.Configuration configuration) => throw null; - } - namespace ConfigurationSchema { - // Generated from `NHibernate.Cfg.ConfigurationSchema.BytecodeProviderType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum BytecodeProviderType { - Lcg, - Null, + Lcg = 0, + Null = 1, } - - // Generated from `NHibernate.Cfg.ConfigurationSchema.CfgXmlHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class CfgXmlHelper { public static System.Xml.XPath.XPathExpression ByteCodeProviderExpression; - public const string CfgNamespacePrefix = default; - public const string CfgSchemaXMLNS = default; - public const string CfgSectionName = default; + public static string CfgNamespacePrefix; + public static string CfgSchemaXMLNS; + public static string CfgSectionName; public static NHibernate.Cfg.ConfigurationSchema.ClassCacheInclude ClassCacheIncludeConvertFrom(string include) => throw null; public static NHibernate.Event.ListenerType ListenerTypeConvertFrom(string listenerType) => throw null; public static System.Xml.XPath.XPathExpression ObjectsFactoryExpression; @@ -3808,103 +1500,321 @@ namespace NHibernate public static System.Xml.XPath.XPathExpression SessionFactoryMappingsExpression; public static System.Xml.XPath.XPathExpression SessionFactoryPropertiesExpression; } - - // Generated from `NHibernate.Cfg.ConfigurationSchema.ClassCacheConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ClassCacheConfiguration { public string Class { get => throw null; } + public ClassCacheConfiguration(string clazz, NHibernate.Cfg.EntityCacheUsage usage) => throw null; + public ClassCacheConfiguration(string clazz, NHibernate.Cfg.EntityCacheUsage usage, NHibernate.Cfg.ConfigurationSchema.ClassCacheInclude include) => throw null; public ClassCacheConfiguration(string clazz, NHibernate.Cfg.EntityCacheUsage usage, string region) => throw null; public ClassCacheConfiguration(string clazz, NHibernate.Cfg.EntityCacheUsage usage, NHibernate.Cfg.ConfigurationSchema.ClassCacheInclude include, string region) => throw null; - public ClassCacheConfiguration(string clazz, NHibernate.Cfg.EntityCacheUsage usage, NHibernate.Cfg.ConfigurationSchema.ClassCacheInclude include) => throw null; - public ClassCacheConfiguration(string clazz, NHibernate.Cfg.EntityCacheUsage usage) => throw null; public NHibernate.Cfg.ConfigurationSchema.ClassCacheInclude Include { get => throw null; } public string Region { get => throw null; } public NHibernate.Cfg.EntityCacheUsage Usage { get => throw null; } } - - // Generated from `NHibernate.Cfg.ConfigurationSchema.ClassCacheInclude` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum ClassCacheInclude { - All, - NonLazy, + All = 0, + NonLazy = 1, } - - // Generated from `NHibernate.Cfg.ConfigurationSchema.CollectionCacheConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionCacheConfiguration { public string Collection { get => throw null; } - public CollectionCacheConfiguration(string collection, NHibernate.Cfg.EntityCacheUsage usage, string region) => throw null; public CollectionCacheConfiguration(string collection, NHibernate.Cfg.EntityCacheUsage usage) => throw null; + public CollectionCacheConfiguration(string collection, NHibernate.Cfg.EntityCacheUsage usage, string region) => throw null; public string Region { get => throw null; } public NHibernate.Cfg.EntityCacheUsage Usage { get => throw null; } } - - // Generated from `NHibernate.Cfg.ConfigurationSchema.EventConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EventConfiguration { public EventConfiguration(NHibernate.Cfg.ConfigurationSchema.ListenerConfiguration listener, NHibernate.Event.ListenerType type) => throw null; public System.Collections.Generic.IList Listeners { get => throw null; } public NHibernate.Event.ListenerType Type { get => throw null; } } - - // Generated from `NHibernate.Cfg.ConfigurationSchema.HibernateConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HibernateConfiguration : NHibernate.Cfg.IHibernateConfiguration { public string ByteCodeProviderType { get => throw null; } - public static NHibernate.Cfg.ConfigurationSchema.HibernateConfiguration FromAppConfig(string xml) => throw null; - public static NHibernate.Cfg.ConfigurationSchema.HibernateConfiguration FromAppConfig(System.Xml.XmlNode node) => throw null; public HibernateConfiguration(System.Xml.XmlReader hbConfigurationReader) => throw null; - public string ObjectsFactoryType { get => throw null; set => throw null; } + public static NHibernate.Cfg.ConfigurationSchema.HibernateConfiguration FromAppConfig(System.Xml.XmlNode node) => throw null; + public static NHibernate.Cfg.ConfigurationSchema.HibernateConfiguration FromAppConfig(string xml) => throw null; + public string ObjectsFactoryType { get => throw null; } public NHibernate.Cfg.ISessionFactoryConfiguration SessionFactory { get => throw null; } public bool UseReflectionOptimizer { get => throw null; } } - - // Generated from `NHibernate.Cfg.ConfigurationSchema.ListenerConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ListenerConfiguration { public string Class { get => throw null; } - public ListenerConfiguration(string clazz, NHibernate.Event.ListenerType type) => throw null; public ListenerConfiguration(string clazz) => throw null; + public ListenerConfiguration(string clazz, NHibernate.Event.ListenerType type) => throw null; public NHibernate.Event.ListenerType Type { get => throw null; } } - - // Generated from `NHibernate.Cfg.ConfigurationSchema.MappingConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MappingConfiguration : System.IEquatable { public string Assembly { get => throw null; } + public MappingConfiguration(string file) => throw null; + public MappingConfiguration(string assembly, string resource) => throw null; public bool Equals(NHibernate.Cfg.ConfigurationSchema.MappingConfiguration other) => throw null; public string File { get => throw null; } public bool IsEmpty() => throw null; - public MappingConfiguration(string file) => throw null; - public MappingConfiguration(string assembly, string resource) => throw null; public string Resource { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.Cfg.ConfigurationSchema.SessionFactoryConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SessionFactoryConfiguration : NHibernate.Cfg.SessionFactoryConfigurationBase { public SessionFactoryConfiguration(string name) => throw null; } - + } + public class ConfigurationSectionHandler : System.Configuration.IConfigurationSectionHandler + { + object System.Configuration.IConfigurationSectionHandler.Create(object parent, object configContext, System.Xml.XmlNode section) => throw null; + public ConfigurationSectionHandler() => throw null; + } + public class DefaultNamingStrategy : NHibernate.Cfg.INamingStrategy + { + public string ClassToTableName(string className) => throw null; + public string ColumnName(string columnName) => throw null; + public static NHibernate.Cfg.INamingStrategy Instance; + public string LogicalColumnName(string columnName, string propertyName) => throw null; + public string PropertyToColumnName(string propertyName) => throw null; + public string PropertyToTableName(string className, string propertyName) => throw null; + public string TableName(string tableName) => throw null; + } + public enum EntityCacheUsage + { + Readonly = 0, + ReadWrite = 1, + NonStrictReadWrite = 2, + Transactional = 3, + Never = 4, + } + public static class EntityCacheUsageParser + { + public static NHibernate.Cfg.EntityCacheUsage Parse(string value) => throw null; + public static string ToString(NHibernate.Cfg.EntityCacheUsage value) => throw null; + } + public static class Environment + { + public static string AutoJoinTransaction; + public static string BatchFetchStyle; + public static string BatchSize; + public static string BatchStrategy; + public static string BatchVersionedData; + public static NHibernate.Bytecode.IBytecodeProvider BuildBytecodeProvider(System.Collections.Generic.IDictionary properties) => throw null; + public static NHibernate.Bytecode.IObjectsFactory BuildObjectsFactory(System.Collections.Generic.IDictionary properties) => throw null; + public static NHibernate.Bytecode.IBytecodeProvider BytecodeProvider { get => throw null; set { } } + public static string CacheDefaultExpiration; + public static string CacheProvider; + public static string CacheReadWriteLockFactory; + public static string CacheRegionPrefix; + public static string CollectionTypeFactoryClass; + public static string CommandTimeout; + public static string ConnectionDriver; + public static string ConnectionProvider; + public static string ConnectionString; + public static string ConnectionStringName; + public static string CurrentSessionContextClass; + public static string DefaultBatchFetchSize; + public static string DefaultCatalog; + public static string DefaultEntityMode; + public static string DefaultFlushMode; + public static string DefaultSchema; + public static string DetectFetchLoops; + public static string Dialect; + public static string FirebirdDisableParameterCasting; + public static string FormatSql; + public static string GenerateStatistics; + public static string Hbm2ddlAuto; + public static string Hbm2ddlKeyWords; + public static string Hbm2ddlThrowOnUpdate; + public static void InitializeGlobalProperties(NHibernate.Cfg.IHibernateConfiguration config) => throw null; + public static string Isolation; + public static string LinqToHqlFallbackOnPreEvaluation; + public static string LinqToHqlGeneratorsRegistry; + public static string LinqToHqlLegacyPreEvaluation; + public static string MaxFetchDepth; + public static string MultiTenancy; + public static string MultiTenancyConnectionProvider; + public static NHibernate.Bytecode.IObjectsFactory ObjectsFactory { get => throw null; set { } } + public static string OdbcDateTimeScale; + public static string OracleSuppressDecimalInvalidCastException; + public static string OracleUseBinaryFloatingPointTypes; + public static string OracleUseNPrefixedTypesForUnicode; + public static string OrderInserts; + public static string OrderUpdates; + public static string OutputStylesheet; + public static string PreferPooledValuesLo; + public static string PrepareSql; + public static string PreTransformerRegistrar; + public static System.Collections.Generic.IDictionary Properties { get => throw null; } + public static string PropertyBytecodeProvider; + public static string PropertyObjectsFactory; + public static string PropertyUseReflectionOptimizer; + public static string ProxyFactoryFactoryClass; + public static string QueryCacheFactory; + public static string QueryDefaultCastLength; + public static string QueryDefaultCastPrecision; + public static string QueryDefaultCastScale; + public static string QueryImports; + public static string QueryLinqProvider; + public static string QueryModelRewriterFactory; + public static string QueryPlanCacheMaxSize; + public static string QueryPlanCacheParameterMetadataMaxSize; + public static string QueryStartupChecking; + public static string QuerySubstitutions; + public static string QueryThrowNeverCached; + public static string QueryTranslator; + public static string ReleaseConnections; + public static string SessionFactoryName; + public static string ShowSql; + public static string SqlExceptionConverter; + public static string SqliteBinaryGuid; + public static string SqlTypesKeepDateTime; + public static string StatementFetchSize; + public static string SystemTransactionCompletionLockTimeout; + public static string TrackSessionId; + public static string TransactionManagerStrategy; + public static string TransactionStrategy; + public static string UseConnectionOnSystemTransactionPrepare; + public static string UseGetGeneratedKeys; + public static string UseIdentifierRollBack; + public static string UseMinimalPuts; + public static string UseProxyValidator; + public static string UseQueryCache; + public static bool UseReflectionOptimizer { get => throw null; set { } } + public static string UseSecondLevelCache; + public static string UseSqlComments; + public static void VerifyProperties(System.Collections.Generic.IDictionary props) => throw null; + public static string Version { get => throw null; } + public static string WrapResultSets; + } + public class ExtendsQueueEntry + { + public ExtendsQueueEntry(string explicitName, string mappingPackage, System.Xml.XmlDocument document) => throw null; + public System.Xml.XmlDocument Document { get => throw null; } + public string ExplicitName { get => throw null; } + public string MappingPackage { get => throw null; } + } + public class FilterSecondPassArgs + { + public FilterSecondPassArgs(NHibernate.Mapping.IFilterable filterable, string filterName) => throw null; + public NHibernate.Mapping.IFilterable Filterable { get => throw null; } + public string FilterName { get => throw null; } + } + public class Hbm2DDLKeyWords + { + public static NHibernate.Cfg.Hbm2DDLKeyWords AutoQuote; + public override bool Equals(object obj) => throw null; + public bool Equals(string other) => throw null; + public bool Equals(NHibernate.Cfg.Hbm2DDLKeyWords other) => throw null; + public override int GetHashCode() => throw null; + public static NHibernate.Cfg.Hbm2DDLKeyWords Keywords; + public static NHibernate.Cfg.Hbm2DDLKeyWords None; + public static bool operator ==(string a, NHibernate.Cfg.Hbm2DDLKeyWords b) => throw null; + public static bool operator ==(NHibernate.Cfg.Hbm2DDLKeyWords a, string b) => throw null; + public static bool operator !=(NHibernate.Cfg.Hbm2DDLKeyWords a, string b) => throw null; + public static bool operator !=(string a, NHibernate.Cfg.Hbm2DDLKeyWords b) => throw null; + public override string ToString() => throw null; + } + public class HbmConstants + { + public HbmConstants() => throw null; + public static string nsClass; + public static string nsCollectionId; + public static string nsColumn; + public static string nsCreate; + public static string nsDatabaseObject; + public static string nsDefinition; + public static string nsDialectScope; + public static string nsDrop; + public static string nsFilter; + public static string nsFilterDef; + public static string nsFilterParam; + public static string nsFormula; + public static string nsGenerator; + public static string nsImport; + public static string nsIndex; + public static string nsJoinedSubclass; + public static string nsKey; + public static string nsListIndex; + public static string nsLoader; + public static string nsMeta; + public static string nsMetaValue; + public static string nsOneToMany; + public static string nsParam; + public static string nsPrefix; + public static string nsQuery; + public static string nsQueryParam; + public static string nsResultset; + public static string nsReturnColumn; + public static string nsReturnDiscriminator; + public static string nsReturnProperty; + public static string nsSqlDelete; + public static string nsSqlDeleteAll; + public static string nsSqlInsert; + public static string nsSqlQuery; + public static string nsSqlUpdate; + public static string nsSubclass; + public static string nsSynchronize; + public static string nsTuplizer; + public static string nsType; + public static string nsUnionSubclass; + } + public class HibernateConfigException : NHibernate.MappingException + { + public HibernateConfigException() : base(default(string)) => throw null; + public HibernateConfigException(System.Exception innerException) : base(default(string)) => throw null; + public HibernateConfigException(string message) : base(default(string)) => throw null; + public HibernateConfigException(string message, System.Exception innerException) : base(default(string)) => throw null; + protected HibernateConfigException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; + } + public interface IHibernateConfiguration + { + string ByteCodeProviderType { get; } + NHibernate.Cfg.ISessionFactoryConfiguration SessionFactory { get; } + bool UseReflectionOptimizer { get; } + } + public class ImprovedNamingStrategy : NHibernate.Cfg.INamingStrategy + { + public string ClassToTableName(string className) => throw null; + public string ColumnName(string columnName) => throw null; + public static NHibernate.Cfg.INamingStrategy Instance; + public string LogicalColumnName(string columnName, string propertyName) => throw null; + public string PropertyToColumnName(string propertyName) => throw null; + public string PropertyToTableName(string className, string propertyName) => throw null; + public string TableName(string tableName) => throw null; + } + public interface INamingStrategy + { + string ClassToTableName(string className); + string ColumnName(string columnName); + string LogicalColumnName(string columnName, string propertyName); + string PropertyToColumnName(string propertyName); + string PropertyToTableName(string className, string propertyName); + string TableName(string tableName); + } + public interface ISessionFactoryConfiguration + { + System.Collections.Generic.IList ClassesCache { get; } + System.Collections.Generic.IList CollectionsCache { get; } + System.Collections.Generic.IList Events { get; } + System.Collections.Generic.IList Listeners { get; } + System.Collections.Generic.IList Mappings { get; } + string Name { get; } + System.Collections.Generic.IDictionary Properties { get; } } namespace Loquacious { - // Generated from `NHibernate.Cfg.Loquacious.BatcherConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BatcherConfiguration : NHibernate.Cfg.Loquacious.IBatcherConfiguration { public BatcherConfiguration(NHibernate.Cfg.Loquacious.DbIntegrationConfiguration dbc) => throw null; public NHibernate.Cfg.Loquacious.BatcherConfiguration DisablingInsertsOrdering() => throw null; NHibernate.Cfg.Loquacious.IBatcherConfiguration NHibernate.Cfg.Loquacious.IBatcherConfiguration.DisablingInsertsOrdering() => throw null; - public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Each(System.Int16 batchSize) => throw null; - NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IBatcherConfiguration.Each(System.Int16 batchSize) => throw null; + public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Each(short batchSize) => throw null; + NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IBatcherConfiguration.Each(short batchSize) => throw null; public NHibernate.Cfg.Loquacious.BatcherConfiguration OrderingInserts() => throw null; NHibernate.Cfg.Loquacious.IBatcherConfiguration NHibernate.Cfg.Loquacious.IBatcherConfiguration.OrderingInserts() => throw null; public NHibernate.Cfg.Loquacious.BatcherConfiguration Through() where TBatcher : NHibernate.AdoNet.IBatcherFactory => throw null; NHibernate.Cfg.Loquacious.IBatcherConfiguration NHibernate.Cfg.Loquacious.IBatcherConfiguration.Through() => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.CacheConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CacheConfiguration : NHibernate.Cfg.Loquacious.ICacheConfiguration { public CacheConfiguration(NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration parent) => throw null; @@ -3919,55 +1829,45 @@ namespace NHibernate public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration WithDefaultExpiration(int seconds) => throw null; NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.ICacheConfiguration.WithDefaultExpiration(int seconds) => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.CacheConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CacheConfigurationProperties : NHibernate.Cfg.Loquacious.ICacheConfigurationProperties { public CacheConfigurationProperties(NHibernate.Cfg.Configuration cfg) => throw null; - public int DefaultExpiration { set => throw null; } + public int DefaultExpiration { set { } } public void Provider() where TProvider : NHibernate.Cache.ICacheProvider => throw null; public void QueryCache() where TFactory : NHibernate.Cache.IQueryCache => throw null; public void QueryCacheFactory() where TFactory : NHibernate.Cache.IQueryCacheFactory => throw null; - public string RegionsPrefix { set => throw null; } - public bool UseMinimalPuts { set => throw null; } - public bool UseQueryCache { set => throw null; } + public string RegionsPrefix { set { } } + public bool UseMinimalPuts { set { } } + public bool UseQueryCache { set { } } } - - // Generated from `NHibernate.Cfg.Loquacious.CacheConfigurationPropertiesExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class CacheConfigurationPropertiesExtensions + public static partial class CacheConfigurationPropertiesExtensions { public static void QueryCacheFactory(this NHibernate.Cfg.Loquacious.ICacheConfigurationProperties config) where TFactory : NHibernate.Cache.IQueryCacheFactory => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.CollectionFactoryConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionFactoryConfiguration : NHibernate.Cfg.Loquacious.ICollectionFactoryConfiguration { public CollectionFactoryConfiguration(NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration parent) => throw null; public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration Through() where TCollectionsFactory : NHibernate.Bytecode.ICollectionTypeFactory => throw null; NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.ICollectionFactoryConfiguration.Through() => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.CommandsConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CommandsConfiguration : NHibernate.Cfg.Loquacious.ICommandsConfiguration { public NHibernate.Cfg.Loquacious.CommandsConfiguration AutoCommentingSql() => throw null; NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.AutoCommentingSql() => throw null; - public CommandsConfiguration(NHibernate.Cfg.Loquacious.DbIntegrationConfiguration dbc) => throw null; public NHibernate.Cfg.Loquacious.CommandsConfiguration ConvertingExceptionsThrough() where TExceptionConverter : NHibernate.Exceptions.ISQLExceptionConverter => throw null; NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.ConvertingExceptionsThrough() => throw null; + public CommandsConfiguration(NHibernate.Cfg.Loquacious.DbIntegrationConfiguration dbc) => throw null; public NHibernate.Cfg.Loquacious.CommandsConfiguration Preparing() => throw null; NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.Preparing() => throw null; public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration WithDefaultHqlToSqlSubstitutions() => throw null; NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.WithDefaultHqlToSqlSubstitutions() => throw null; public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration WithHqlToSqlSubstitutions(string csvQuerySubstitutions) => throw null; NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.WithHqlToSqlSubstitutions(string csvQuerySubstitutions) => throw null; - public NHibernate.Cfg.Loquacious.CommandsConfiguration WithMaximumDepthOfOuterJoinFetching(System.Byte maxFetchDepth) => throw null; - NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.WithMaximumDepthOfOuterJoinFetching(System.Byte maxFetchDepth) => throw null; - public NHibernate.Cfg.Loquacious.CommandsConfiguration WithTimeout(System.Byte seconds) => throw null; - NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.WithTimeout(System.Byte seconds) => throw null; + public NHibernate.Cfg.Loquacious.CommandsConfiguration WithMaximumDepthOfOuterJoinFetching(byte maxFetchDepth) => throw null; + NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.WithMaximumDepthOfOuterJoinFetching(byte maxFetchDepth) => throw null; + public NHibernate.Cfg.Loquacious.CommandsConfiguration WithTimeout(byte seconds) => throw null; + NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.WithTimeout(byte seconds) => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.ConnectionConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ConnectionConfiguration : NHibernate.Cfg.Loquacious.IConnectionConfiguration { public NHibernate.Cfg.Loquacious.ConnectionConfiguration By() where TDriver : NHibernate.Driver.IDriver => throw null; @@ -3986,8 +1886,6 @@ namespace NHibernate public NHibernate.Cfg.Loquacious.ConnectionConfiguration With(System.Data.IsolationLevel level) => throw null; NHibernate.Cfg.Loquacious.IConnectionConfiguration NHibernate.Cfg.Loquacious.IConnectionConfiguration.With(System.Data.IsolationLevel level) => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.DbIntegrationConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DbIntegrationConfiguration : NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration { public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration AutoQuoteKeywords() => throw null; @@ -4013,40 +1911,36 @@ namespace NHibernate public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Using() where TDialect : NHibernate.Dialect.Dialect => throw null; NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.Using() => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.DbIntegrationConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DbIntegrationConfigurationProperties : NHibernate.Cfg.Loquacious.IDbIntegrationConfigurationProperties { - public bool AutoCommentSql { set => throw null; } - public System.Int16 BatchSize { set => throw null; } + public bool AutoCommentSql { set { } } public void Batcher() where TBatcher : NHibernate.AdoNet.IBatcherFactory => throw null; + public short BatchSize { set { } } public void ConnectionProvider() where TProvider : NHibernate.Connection.IConnectionProvider => throw null; - public NHibernate.ConnectionReleaseMode ConnectionReleaseMode { set => throw null; } - public string ConnectionString { set => throw null; } - public string ConnectionStringName { set => throw null; } + public NHibernate.ConnectionReleaseMode ConnectionReleaseMode { set { } } + public string ConnectionString { set { } } + public string ConnectionStringName { set { } } public DbIntegrationConfigurationProperties(NHibernate.Cfg.Configuration configuration) => throw null; public void Dialect() where TDialect : NHibernate.Dialect.Dialect => throw null; public void Driver() where TDriver : NHibernate.Driver.IDriver => throw null; public void ExceptionConverter() where TExceptionConverter : NHibernate.Exceptions.ISQLExceptionConverter => throw null; - public string HqlToSqlSubstitutions { set => throw null; } - public System.Data.IsolationLevel IsolationLevel { set => throw null; } - public NHibernate.Cfg.Hbm2DDLKeyWords KeywordsAutoImport { set => throw null; } - public bool LogFormattedSql { set => throw null; } - public bool LogSqlInConsole { set => throw null; } - public System.Byte MaximumDepthOfOuterJoinFetching { set => throw null; } - public NHibernate.MultiTenancy.MultiTenancyStrategy MultiTenancy { set => throw null; } + public string HqlToSqlSubstitutions { set { } } + public System.Data.IsolationLevel IsolationLevel { set { } } + public NHibernate.Cfg.Hbm2DDLKeyWords KeywordsAutoImport { set { } } + public bool LogFormattedSql { set { } } + public bool LogSqlInConsole { set { } } + public byte MaximumDepthOfOuterJoinFetching { set { } } + public NHibernate.MultiTenancy.MultiTenancyStrategy MultiTenancy { set { } } public void MultiTenancyConnectionProvider() where TProvider : NHibernate.MultiTenancy.IMultiTenancyConnectionProvider => throw null; - public bool OrderInserts { set => throw null; } + public bool OrderInserts { set { } } + public bool PrepareCommands { set { } } public void PreTransformerRegistrar() where TRegistrar : NHibernate.Linq.Visitors.IExpressionTransformerRegistrar => throw null; - public bool PrepareCommands { set => throw null; } public void QueryModelRewriterFactory() where TFactory : NHibernate.Linq.Visitors.IQueryModelRewriterFactory => throw null; - public NHibernate.Cfg.SchemaAutoAction SchemaAction { set => throw null; } - public bool ThrowOnSchemaUpdate { set => throw null; } - public System.Byte Timeout { set => throw null; } + public NHibernate.Cfg.SchemaAutoAction SchemaAction { set { } } + public bool ThrowOnSchemaUpdate { set { } } + public byte Timeout { set { } } public void TransactionFactory() where TFactory : NHibernate.Transaction.ITransactionFactory => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.DbSchemaIntegrationConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DbSchemaIntegrationConfiguration : NHibernate.Cfg.Loquacious.IDbSchemaIntegrationConfiguration { public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Creating() => throw null; @@ -4060,33 +1954,27 @@ namespace NHibernate public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Validating() => throw null; NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbSchemaIntegrationConfiguration.Validating() => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.EntityCacheConfigurationProperties<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EntityCacheConfigurationProperties : NHibernate.Cfg.Loquacious.IEntityCacheConfigurationProperties where TEntity : class { - void NHibernate.Cfg.Loquacious.IEntityCacheConfigurationProperties.Collection(System.Linq.Expressions.Expression> collectionProperty, System.Action collectionCacheConfiguration) => throw null; public void Collection(System.Linq.Expressions.Expression> collectionProperty, System.Action collectionCacheConfiguration) where TCollection : System.Collections.IEnumerable => throw null; + void NHibernate.Cfg.Loquacious.IEntityCacheConfigurationProperties.Collection(System.Linq.Expressions.Expression> collectionProperty, System.Action collectionCacheConfiguration) => throw null; public EntityCacheConfigurationProperties() => throw null; - public string RegionName { get => throw null; set => throw null; } - public NHibernate.Cfg.EntityCacheUsage? Strategy { get => throw null; set => throw null; } + public string RegionName { get => throw null; set { } } + public NHibernate.Cfg.EntityCacheUsage? Strategy { get => throw null; set { } } } - - // Generated from `NHibernate.Cfg.Loquacious.EntityCollectionCacheConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EntityCollectionCacheConfigurationProperties : NHibernate.Cfg.Loquacious.IEntityCollectionCacheConfigurationProperties { public EntityCollectionCacheConfigurationProperties() => throw null; - public string RegionName { get => throw null; set => throw null; } - public NHibernate.Cfg.EntityCacheUsage Strategy { get => throw null; set => throw null; } + public string RegionName { get => throw null; set { } } + public NHibernate.Cfg.EntityCacheUsage Strategy { get => throw null; set { } } } - - // Generated from `NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FluentSessionFactoryConfiguration : NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration { public NHibernate.Cfg.Loquacious.CacheConfiguration Caching { get => throw null; } NHibernate.Cfg.Loquacious.ICacheConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.Caching { get => throw null; } + public FluentSessionFactoryConfiguration(NHibernate.Cfg.Configuration configuration) => throw null; public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration DefaultFlushMode(NHibernate.FlushMode flushMode) => throw null; NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.DefaultFlushMode(NHibernate.FlushMode flushMode) => throw null; - public FluentSessionFactoryConfiguration(NHibernate.Cfg.Configuration configuration) => throw null; public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration GenerateStatistics() => throw null; NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.GenerateStatistics() => throw null; public NHibernate.Cfg.Loquacious.CollectionFactoryConfiguration GeneratingCollections { get => throw null; } @@ -4104,17 +1992,13 @@ namespace NHibernate public NHibernate.Cfg.Loquacious.ProxyConfiguration Proxy { get => throw null; } NHibernate.Cfg.Loquacious.IProxyConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.Proxy { get => throw null; } } - - // Generated from `NHibernate.Cfg.Loquacious.IBatcherConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBatcherConfiguration { NHibernate.Cfg.Loquacious.IBatcherConfiguration DisablingInsertsOrdering(); - NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Each(System.Int16 batchSize); + NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Each(short batchSize); NHibernate.Cfg.Loquacious.IBatcherConfiguration OrderingInserts(); NHibernate.Cfg.Loquacious.IBatcherConfiguration Through() where TBatcher : NHibernate.AdoNet.IBatcherFactory; } - - // Generated from `NHibernate.Cfg.Loquacious.ICacheConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICacheConfiguration { NHibernate.Cfg.Loquacious.ICacheConfiguration PrefixingRegionsWith(string regionPrefix); @@ -4123,8 +2007,6 @@ namespace NHibernate NHibernate.Cfg.Loquacious.ICacheConfiguration UsingMinimalPuts(); NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration WithDefaultExpiration(int seconds); } - - // Generated from `NHibernate.Cfg.Loquacious.ICacheConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICacheConfigurationProperties { int DefaultExpiration { set; } @@ -4134,14 +2016,10 @@ namespace NHibernate bool UseMinimalPuts { set; } bool UseQueryCache { set; } } - - // Generated from `NHibernate.Cfg.Loquacious.ICollectionFactoryConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionFactoryConfiguration { NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration Through() where TCollecionsFactory : NHibernate.Bytecode.ICollectionTypeFactory; } - - // Generated from `NHibernate.Cfg.Loquacious.ICommandsConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICommandsConfiguration { NHibernate.Cfg.Loquacious.ICommandsConfiguration AutoCommentingSql(); @@ -4149,11 +2027,9 @@ namespace NHibernate NHibernate.Cfg.Loquacious.ICommandsConfiguration Preparing(); NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration WithDefaultHqlToSqlSubstitutions(); NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration WithHqlToSqlSubstitutions(string csvQuerySubstitutions); - NHibernate.Cfg.Loquacious.ICommandsConfiguration WithMaximumDepthOfOuterJoinFetching(System.Byte maxFetchDepth); - NHibernate.Cfg.Loquacious.ICommandsConfiguration WithTimeout(System.Byte seconds); + NHibernate.Cfg.Loquacious.ICommandsConfiguration WithMaximumDepthOfOuterJoinFetching(byte maxFetchDepth); + NHibernate.Cfg.Loquacious.ICommandsConfiguration WithTimeout(byte seconds); } - - // Generated from `NHibernate.Cfg.Loquacious.IConnectionConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IConnectionConfiguration { NHibernate.Cfg.Loquacious.IConnectionConfiguration By() where TDriver : NHibernate.Driver.IDriver; @@ -4164,8 +2040,6 @@ namespace NHibernate NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Using(System.Data.Common.DbConnectionStringBuilder connectionStringBuilder); NHibernate.Cfg.Loquacious.IConnectionConfiguration With(System.Data.IsolationLevel level); } - - // Generated from `NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDbIntegrationConfiguration { NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration AutoQuoteKeywords(); @@ -4179,13 +2053,11 @@ namespace NHibernate NHibernate.Cfg.Loquacious.ITransactionConfiguration Transactions { get; } NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Using() where TDialect : NHibernate.Dialect.Dialect; } - - // Generated from `NHibernate.Cfg.Loquacious.IDbIntegrationConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDbIntegrationConfigurationProperties { bool AutoCommentSql { set; } - System.Int16 BatchSize { set; } void Batcher() where TBatcher : NHibernate.AdoNet.IBatcherFactory; + short BatchSize { set; } void ConnectionProvider() where TProvider : NHibernate.Connection.IConnectionProvider; NHibernate.ConnectionReleaseMode ConnectionReleaseMode { set; } string ConnectionString { set; } @@ -4198,16 +2070,14 @@ namespace NHibernate NHibernate.Cfg.Hbm2DDLKeyWords KeywordsAutoImport { set; } bool LogFormattedSql { set; } bool LogSqlInConsole { set; } - System.Byte MaximumDepthOfOuterJoinFetching { set; } + byte MaximumDepthOfOuterJoinFetching { set; } bool OrderInserts { set; } bool PrepareCommands { set; } void QueryModelRewriterFactory() where TFactory : NHibernate.Linq.Visitors.IQueryModelRewriterFactory; NHibernate.Cfg.SchemaAutoAction SchemaAction { set; } - System.Byte Timeout { set; } + byte Timeout { set; } void TransactionFactory() where TFactory : NHibernate.Transaction.ITransactionFactory; } - - // Generated from `NHibernate.Cfg.Loquacious.IDbSchemaIntegrationConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDbSchemaIntegrationConfiguration { NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Creating(); @@ -4215,23 +2085,17 @@ namespace NHibernate NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Updating(); NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Validating(); } - - // Generated from `NHibernate.Cfg.Loquacious.IEntityCacheConfigurationProperties<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntityCacheConfigurationProperties where TEntity : class { void Collection(System.Linq.Expressions.Expression> collectionProperty, System.Action collectionCacheConfiguration) where TCollection : System.Collections.IEnumerable; string RegionName { get; set; } NHibernate.Cfg.EntityCacheUsage? Strategy { get; set; } } - - // Generated from `NHibernate.Cfg.Loquacious.IEntityCollectionCacheConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntityCollectionCacheConfigurationProperties { string RegionName { get; set; } NHibernate.Cfg.EntityCacheUsage Strategy { get; set; } } - - // Generated from `NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IFluentSessionFactoryConfiguration { NHibernate.Cfg.Loquacious.ICacheConfiguration Caching { get; } @@ -4245,22 +2109,16 @@ namespace NHibernate NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration ParsingLinqThrough() where TQueryProvider : NHibernate.Linq.INhQueryProvider; NHibernate.Cfg.Loquacious.IProxyConfiguration Proxy { get; } } - - // Generated from `NHibernate.Cfg.Loquacious.IMappingsConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMappingsConfiguration { NHibernate.Cfg.Loquacious.IMappingsConfiguration UsingDefaultCatalog(string defaultCatalogName); NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration UsingDefaultSchema(string defaultSchemaName); } - - // Generated from `NHibernate.Cfg.Loquacious.IMappingsConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMappingsConfigurationProperties { string DefaultCatalog { set; } string DefaultSchema { set; } } - - // Generated from `NHibernate.Cfg.Loquacious.INamedQueryDefinitionBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface INamedQueryDefinitionBuilder { NHibernate.CacheMode? CacheMode { get; set; } @@ -4273,41 +2131,29 @@ namespace NHibernate string Query { get; set; } int Timeout { get; set; } } - - // Generated from `NHibernate.Cfg.Loquacious.IProxyConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IProxyConfiguration { NHibernate.Cfg.Loquacious.IProxyConfiguration DisableValidation(); NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration Through() where TProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory; } - - // Generated from `NHibernate.Cfg.Loquacious.IProxyConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IProxyConfigurationProperties { void ProxyFactoryFactory() where TProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory; bool Validation { set; } } - - // Generated from `NHibernate.Cfg.Loquacious.IQueryCacheConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IQueryCacheConfiguration { NHibernate.Cfg.Loquacious.ICacheConfiguration Through(); } - - // Generated from `NHibernate.Cfg.Loquacious.ITransactionConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ITransactionConfiguration { NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Through() where TFactory : NHibernate.Transaction.ITransactionFactory; } - - // Generated from `NHibernate.Cfg.Loquacious.ITypeDefConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ITypeDefConfigurationProperties { string Alias { get; set; } object Properties { get; set; } } - - // Generated from `NHibernate.Cfg.Loquacious.MappingsConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MappingsConfiguration : NHibernate.Cfg.Loquacious.IMappingsConfiguration { public MappingsConfiguration(NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration parent) => throw null; @@ -4316,283 +2162,329 @@ namespace NHibernate public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration UsingDefaultSchema(string defaultSchemaName) => throw null; NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IMappingsConfiguration.UsingDefaultSchema(string defaultSchemaName) => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.MappingsConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MappingsConfigurationProperties : NHibernate.Cfg.Loquacious.IMappingsConfigurationProperties { - public string DefaultCatalog { set => throw null; } - public string DefaultSchema { set => throw null; } public MappingsConfigurationProperties(NHibernate.Cfg.Configuration configuration) => throw null; + public string DefaultCatalog { set { } } + public string DefaultSchema { set { } } } - - // Generated from `NHibernate.Cfg.Loquacious.NamedQueryDefinitionBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NamedQueryDefinitionBuilder : NHibernate.Cfg.Loquacious.INamedQueryDefinitionBuilder { - public NHibernate.CacheMode? CacheMode { get => throw null; set => throw null; } - public string CacheRegion { get => throw null; set => throw null; } - public string Comment { get => throw null; set => throw null; } - public int FetchSize { get => throw null; set => throw null; } - public NHibernate.FlushMode FlushMode { get => throw null; set => throw null; } - public bool IsCacheable { get => throw null; set => throw null; } - public bool IsReadOnly { get => throw null; set => throw null; } + public NHibernate.CacheMode? CacheMode { get => throw null; set { } } + public string CacheRegion { get => throw null; set { } } + public string Comment { get => throw null; set { } } public NamedQueryDefinitionBuilder() => throw null; - public string Query { get => throw null; set => throw null; } - public int Timeout { get => throw null; set => throw null; } + public int FetchSize { get => throw null; set { } } + public NHibernate.FlushMode FlushMode { get => throw null; set { } } + public bool IsCacheable { get => throw null; set { } } + public bool IsReadOnly { get => throw null; set { } } + public string Query { get => throw null; set { } } + public int Timeout { get => throw null; set { } } } - - // Generated from `NHibernate.Cfg.Loquacious.ProxyConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ProxyConfiguration : NHibernate.Cfg.Loquacious.IProxyConfiguration { + public ProxyConfiguration(NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration parent) => throw null; public NHibernate.Cfg.Loquacious.ProxyConfiguration DisableValidation() => throw null; NHibernate.Cfg.Loquacious.IProxyConfiguration NHibernate.Cfg.Loquacious.IProxyConfiguration.DisableValidation() => throw null; - public ProxyConfiguration(NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration parent) => throw null; public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration Through() where TProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory => throw null; NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IProxyConfiguration.Through() => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.ProxyConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ProxyConfigurationProperties : NHibernate.Cfg.Loquacious.IProxyConfigurationProperties { public ProxyConfigurationProperties(NHibernate.Cfg.Configuration configuration) => throw null; public void ProxyFactoryFactory() where TProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory => throw null; - public bool Validation { set => throw null; } + public bool Validation { set { } } } - - // Generated from `NHibernate.Cfg.Loquacious.QueryCacheConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QueryCacheConfiguration : NHibernate.Cfg.Loquacious.IQueryCacheConfiguration { public QueryCacheConfiguration(NHibernate.Cfg.Loquacious.CacheConfiguration cc) => throw null; public NHibernate.Cfg.Loquacious.CacheConfiguration Through() => throw null; NHibernate.Cfg.Loquacious.ICacheConfiguration NHibernate.Cfg.Loquacious.IQueryCacheConfiguration.Through() => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.TransactionConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TransactionConfiguration : NHibernate.Cfg.Loquacious.ITransactionConfiguration { + public TransactionConfiguration(NHibernate.Cfg.Loquacious.DbIntegrationConfiguration dbc) => throw null; public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Through() where TFactory : NHibernate.Transaction.ITransactionFactory => throw null; NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.ITransactionConfiguration.Through() => throw null; - public TransactionConfiguration(NHibernate.Cfg.Loquacious.DbIntegrationConfiguration dbc) => throw null; } - - // Generated from `NHibernate.Cfg.Loquacious.TypeDefConfigurationProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TypeDefConfigurationProperties : NHibernate.Cfg.Loquacious.ITypeDefConfigurationProperties { - public string Alias { get => throw null; set => throw null; } - public object Properties { get => throw null; set => throw null; } + public string Alias { get => throw null; set { } } public TypeDefConfigurationProperties() => throw null; + public object Properties { get => throw null; set { } } } - + } + public class Mappings + { + public void AddAuxiliaryDatabaseObject(NHibernate.Mapping.IAuxiliaryDatabaseObject auxiliaryDatabaseObject) => throw null; + public void AddClass(NHibernate.Mapping.PersistentClass persistentClass) => throw null; + public void AddCollection(NHibernate.Mapping.Collection collection) => throw null; + public void AddColumnBinding(string logicalName, NHibernate.Mapping.Column finalColumn, NHibernate.Mapping.Table table) => throw null; + public NHibernate.Mapping.Table AddDenormalizedTable(string schema, string catalog, string name, bool isAbstract, string subselect, NHibernate.Mapping.Table includedTable) => throw null; + public void AddFilterDefinition(NHibernate.Engine.FilterDefinition definition) => throw null; + public void AddImport(string className, string rename) => throw null; + public void AddPropertyReference(string referencedClass, string propertyName) => throw null; + public void AddQuery(string name, NHibernate.Engine.NamedQueryDefinition query) => throw null; + public void AddResultSetMapping(NHibernate.Engine.ResultSetMappingDefinition sqlResultSetMapping) => throw null; + public void AddSecondPass(NHibernate.Cfg.SecondPassCommand command) => throw null; + public void AddSecondPass(NHibernate.Cfg.SecondPassCommand command, bool onTopOfTheQueue) => throw null; + public void AddSQLQuery(string name, NHibernate.Engine.NamedSQLQueryDefinition query) => throw null; + public NHibernate.Mapping.Table AddTable(string schema, string catalog, string name, string subselect, bool isAbstract, string schemaAction) => throw null; + public void AddTableBinding(string schema, string catalog, string logicalName, string physicalName, NHibernate.Mapping.Table denormalizedSuperTable) => throw null; + public void AddToExtendsQueue(NHibernate.Cfg.ExtendsQueueEntry entry) => throw null; + public void AddTypeDef(string typeName, string typeClass, System.Collections.Generic.IDictionary paramMap) => throw null; + public void AddUniquePropertyReference(string referencedClass, string propertyName) => throw null; + public string CatalogName { get => throw null; set { } } + protected System.Collections.Generic.IDictionary columnNameBindingPerTable; + public class ColumnNames + { + public ColumnNames() => throw null; + public System.Collections.Generic.IDictionary logicalToPhysical; + public System.Collections.Generic.IDictionary physicalToLogical; + } + protected Mappings(System.Collections.Generic.IDictionary classes, System.Collections.Generic.IDictionary collections, System.Collections.Generic.IDictionary tables, System.Collections.Generic.IDictionary queries, System.Collections.Generic.IDictionary sqlqueries, System.Collections.Generic.IDictionary resultSetMappings, System.Collections.Generic.IDictionary imports, System.Collections.Generic.IList secondPasses, System.Collections.Generic.Queue filtersSecondPasses, System.Collections.Generic.IList propertyReferences, NHibernate.Cfg.INamingStrategy namingStrategy, System.Collections.Generic.IDictionary typeDefs, System.Collections.Generic.IDictionary filterDefinitions, System.Collections.Generic.ISet extendsQueue, System.Collections.Generic.IList auxiliaryDatabaseObjects, System.Collections.Generic.IDictionary tableNameBinding, System.Collections.Generic.IDictionary columnNameBindingPerTable, string defaultAssembly, string defaultNamespace, string defaultCatalog, string defaultSchema, string preferPooledValuesLo, NHibernate.Dialect.Dialect dialect) => throw null; + protected Mappings(System.Collections.Generic.IDictionary classes, System.Collections.Generic.IDictionary collections, System.Collections.Generic.IDictionary tables, System.Collections.Generic.IDictionary queries, System.Collections.Generic.IDictionary sqlqueries, System.Collections.Generic.IDictionary resultSetMappings, System.Collections.Generic.IDictionary imports, System.Collections.Generic.IList secondPasses, System.Collections.Generic.Queue filtersSecondPasses, System.Collections.Generic.IList propertyReferences, NHibernate.Cfg.INamingStrategy namingStrategy, System.Collections.Generic.IDictionary typeDefs, System.Collections.Generic.IDictionary filterDefinitions, System.Collections.Generic.ISet extendsQueue, System.Collections.Generic.IList auxiliaryDatabaseObjects, System.Collections.Generic.IDictionary tableNameBinding, System.Collections.Generic.IDictionary columnNameBindingPerTable, string defaultAssembly, string defaultNamespace, string defaultCatalog, string defaultSchema, string preferPooledValuesLo) => throw null; + public string DefaultAccess { get => throw null; set { } } + public string DefaultAssembly { get => throw null; set { } } + public string DefaultCascade { get => throw null; set { } } + public string DefaultCatalog { get => throw null; set { } } + public bool DefaultLazy { get => throw null; set { } } + public string DefaultNamespace { get => throw null; set { } } + public string DefaultSchema { get => throw null; set { } } + public NHibernate.Dialect.Dialect Dialect { get => throw null; } + public void ExpectedFilterDefinition(NHibernate.Mapping.IFilterable filterable, string filterName, string condition) => throw null; + protected System.Collections.Generic.ISet extendsQueue; + public System.Collections.Generic.IDictionary FilterDefinitions { get => throw null; } + public NHibernate.Mapping.PersistentClass GetClass(string className) => throw null; + public NHibernate.Mapping.Collection GetCollection(string role) => throw null; + public NHibernate.Engine.FilterDefinition GetFilterDefinition(string name) => throw null; + public string GetLogicalColumnName(string physicalName, NHibernate.Mapping.Table table) => throw null; + public string GetLogicalTableName(NHibernate.Mapping.Table table) => throw null; + public string GetPhysicalColumnName(string logicalName, NHibernate.Mapping.Table table) => throw null; + public NHibernate.Engine.NamedQueryDefinition GetQuery(string name) => throw null; + public NHibernate.Engine.ResultSetMappingDefinition GetResultSetMapping(string name) => throw null; + public NHibernate.Mapping.Table GetTable(string schema, string catalog, string name) => throw null; + public NHibernate.Mapping.TypeDef GetTypeDef(string typeName) => throw null; + public bool IsAutoImport { get => throw null; set { } } + public System.Collections.Generic.IEnumerable IterateCollections { get => throw null; } + public System.Collections.Generic.IEnumerable IterateTables { get => throw null; } + public NHibernate.Mapping.PersistentClass LocatePersistentClassByEntityName(string entityName) => throw null; + public NHibernate.Cfg.INamingStrategy NamingStrategy { get => throw null; } + public string PreferPooledValuesLo { get => throw null; set { } } + public sealed class PropertyReference + { + public PropertyReference() => throw null; + public string propertyName; + public string referencedClass; + public bool unique; + } + public string SchemaName { get => throw null; set { } } + public class TableDescription + { + public TableDescription(string logicalName, NHibernate.Mapping.Table denormalizedSupertable) => throw null; + public NHibernate.Mapping.Table denormalizedSupertable; + public string logicalName; + } + protected System.Collections.Generic.IDictionary tableNameBinding; + protected System.Collections.Generic.IDictionary typeDefs; } namespace MappingSchema { - // Generated from `NHibernate.Cfg.MappingSchema.AbstractDecoratable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractDecoratable : NHibernate.Cfg.MappingSchema.IDecoratable { - protected AbstractDecoratable() => throw null; protected void CreateMappedMetadata(NHibernate.Cfg.MappingSchema.HbmMeta[] metadatas) => throw null; + protected AbstractDecoratable() => throw null; public System.Collections.Generic.IDictionary InheritableMetaData { get => throw null; } public virtual System.Collections.Generic.IDictionary MappedMetaData { get => throw null; } protected abstract NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.EndsWithHbmXmlFilter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EndsWithHbmXmlFilter : NHibernate.Cfg.MappingSchema.IAssemblyResourceFilter { public EndsWithHbmXmlFilter() => throw null; public bool ShouldParse(string resourceName) => throw null; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmAny` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmAny : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IAnyMapping { - public string Access { get => throw null; } - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public HbmAny() => throw null; - public bool IsLazyProperty { get => throw null; } - public string MetaType { get => throw null; } - public System.Collections.Generic.ICollection MetaValues { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } public string access; + public string Access { get => throw null; } public string cascade; public NHibernate.Cfg.MappingSchema.HbmColumn[] column; public string column1; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmAny() => throw null; public string idtype; public string index; public bool insert; + public bool IsLazyProperty { get => throw null; } public bool lazy; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string metatype; + public string MetaType { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmMetaValue[] metavalue; + public System.Collections.Generic.ICollection MetaValues { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } public bool update; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmArray` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmArray : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.IIndexedCollectionMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping + public class HbmArray : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IIndexedCollectionMapping { + public string access; public string Access { get => throw null; } + public int batchsize; public int? BatchSize { get => throw null; } + public bool batchsizeSpecified; + public NHibernate.Cfg.MappingSchema.HbmCache cache; public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; } + public string cascade; public string Cascade { get => throw null; } + public string catalog; public string Catalog { get => throw null; } + public string check; public string Check { get => throw null; } + public string collectiontype; public string CollectionType { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmComment comment; + public HbmArray() => throw null; + public string elementclass; public object ElementRelationship { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } + public bool fetchSpecified; public System.Collections.Generic.IEnumerable Filters { get => throw null; } public bool? Generic { get => throw null; } - public HbmArray() => throw null; public NHibernate.Cfg.MappingSchema.HbmIndex Index { get => throw null; } + public bool inverse; public bool Inverse { get => throw null; } public bool IsLazyProperty { get => throw null; } public object Item; public object Item1; + public NHibernate.Cfg.MappingSchema.HbmKey key; public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmListIndex ListIndex { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public bool Mutable { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } - public string OrderBy { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } - public string PersisterQualifiedName { get => throw null; } - public string Schema { get => throw null; } - public string Sort { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public string Subselect { get => throw null; } - public string Table { get => throw null; } - public string Where { get => throw null; } - public string access; - public int batchsize; - public bool batchsizeSpecified; - public NHibernate.Cfg.MappingSchema.HbmCache cache; - public string cascade; - public string catalog; - public string check; - public string collectiontype; - public NHibernate.Cfg.MappingSchema.HbmComment comment; - public string elementclass; - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; - public bool fetchSpecified; - public bool inverse; - public NHibernate.Cfg.MappingSchema.HbmKey key; public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public bool mutable; + public bool Mutable { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } + public string OrderBy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin; + public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } public bool outerjoinSpecified; public string persister; + public string PersisterQualifiedName { get => throw null; } public string schema; + public string Schema { get => throw null; } + public string Sort { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; public string table; + public string Table { get => throw null; } public string where; + public string Where { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmBag` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmBag : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping + public class HbmBag : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping { + public string access; public string Access { get => throw null; } + public int batchsize; public int? BatchSize { get => throw null; } + public bool batchsizeSpecified; + public NHibernate.Cfg.MappingSchema.HbmCache cache; public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; } + public string cascade; public string Cascade { get => throw null; } + public string catalog; public string Catalog { get => throw null; } + public string check; public string Check { get => throw null; } + public string collectiontype; public string CollectionType { get => throw null; } - public object ElementRelationship { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } - public System.Collections.Generic.IEnumerable Filters { get => throw null; } - public bool? Generic { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmComment comment; public HbmBag() => throw null; + public object ElementRelationship { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } + public bool fetchSpecified; + public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; + public System.Collections.Generic.IEnumerable Filters { get => throw null; } + public bool generic; + public bool? Generic { get => throw null; } + public bool genericSpecified; + public bool inverse; public bool Inverse { get => throw null; } public bool IsLazyProperty { get => throw null; } public object Item; - public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public bool Mutable { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } - public string OrderBy { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } - public string PersisterQualifiedName { get => throw null; } - public string Schema { get => throw null; } - public string Sort { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public string Subselect { get => throw null; } - public string Table { get => throw null; } - public string Where { get => throw null; } - public string access; - public int batchsize; - public bool batchsizeSpecified; - public NHibernate.Cfg.MappingSchema.HbmCache cache; - public string cascade; - public string catalog; - public string check; - public string collectiontype; - public NHibernate.Cfg.MappingSchema.HbmComment comment; - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; - public bool fetchSpecified; - public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; - public bool generic; - public bool genericSpecified; - public bool inverse; public NHibernate.Cfg.MappingSchema.HbmKey key; + public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCollectionLazy lazy; + public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public bool mutable; + public bool Mutable { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } public string orderby; + public string OrderBy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin; + public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } public bool outerjoinSpecified; public string persister; + public string PersisterQualifiedName { get => throw null; } public string schema; + public string Schema { get => throw null; } + public string Sort { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; public string table; + public string Table { get => throw null; } public string where; + public string Where { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class HbmBase { + protected HbmBase() => throw null; protected static T Find(object[] array) => throw null; protected static T[] FindAll(object[] array) => throw null; - protected HbmBase() => throw null; protected static string JoinString(string[] text) => throw null; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmCache { public HbmCache() => throw null; @@ -4600,43 +2492,50 @@ namespace NHibernate public string region; public NHibernate.Cfg.MappingSchema.HbmCacheUsage usage; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCacheInclude` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmCacheInclude { - All, - NonLazy, + All = 0, + NonLazy = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCacheMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmCacheMode { - Get, - Ignore, - Normal, - Put, - Refresh, + Get = 0, + Ignore = 1, + Normal = 2, + Put = 3, + Refresh = 4, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCacheUsage` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmCacheUsage { - NonstrictReadWrite, - ReadOnly, - ReadWrite, - Transactional, + ReadOnly = 0, + ReadWrite = 1, + NonstrictReadWrite = 2, + Transactional = 3, + Never = 4, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmClass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmClass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IEntityDiscriminableMapping, NHibernate.Cfg.MappingSchema.IDecoratable + public class HbmClass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntityDiscriminableMapping { + public bool @abstract; + public bool abstractSpecified; + public int batchsize; public int? BatchSize { get => throw null; } + public bool batchsizeSpecified; + public NHibernate.Cfg.MappingSchema.HbmCache cache; + public string catalog; + public string check; + public NHibernate.Cfg.MappingSchema.HbmComment comment; public NHibernate.Cfg.MappingSchema.HbmCompositeId CompositeId { get => throw null; } - public string DiscriminatorValue { get => throw null; } - public bool DynamicInsert { get => throw null; } - public bool DynamicUpdate { get => throw null; } - public string EntityName { get => throw null; } public HbmClass() => throw null; + public NHibernate.Cfg.MappingSchema.HbmDiscriminator discriminator; + public string discriminatorvalue; + public string DiscriminatorValue { get => throw null; } + public bool dynamicinsert; + public bool DynamicInsert { get => throw null; } + public bool dynamicupdate; + public bool DynamicUpdate { get => throw null; } + public string entityname; + public string EntityName { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; public NHibernate.Cfg.MappingSchema.HbmId Id { get => throw null; } public bool? IsAbstract { get => throw null; } public object Item; @@ -4646,103 +2545,81 @@ namespace NHibernate public object[] Items2; public System.Collections.Generic.IEnumerable JoinedSubclasses { get => throw null; } public System.Collections.Generic.IEnumerable Joins { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } - public string Node { get => throw null; } - public string Persister { get => throw null; } - public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public string Proxy { get => throw null; } - public bool SelectBeforeUpdate { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public System.Collections.Generic.IEnumerable Subclasses { get => throw null; } - public string Subselect { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmTimestamp Timestamp { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; } - public System.Collections.Generic.IEnumerable UnionSubclasses { get => throw null; } - public bool? UseLazy { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmVersion Version { get => throw null; } - public bool @abstract; - public bool abstractSpecified; - public int batchsize; - public bool batchsizeSpecified; - public NHibernate.Cfg.MappingSchema.HbmCache cache; - public string catalog; - public string check; - public NHibernate.Cfg.MappingSchema.HbmComment comment; - public NHibernate.Cfg.MappingSchema.HbmDiscriminator discriminator; - public string discriminatorvalue; - public bool dynamicinsert; - public bool dynamicupdate; - public string entityname; - public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; public bool lazy; public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public bool mutable; public string name; + public string Name { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmNaturalId naturalid; public string node; + public string Node { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmOptimisticLockMode optimisticlock; public string persister; + public string Persister { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmPolymorphismType polymorphism; + public System.Collections.Generic.IEnumerable Properties { get => throw null; } public string proxy; + public string Proxy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmResultSet[] resultset; public string rowid; public string schema; public string schemaaction; public bool selectbeforeupdate; + public bool SelectBeforeUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } + public System.Collections.Generic.IEnumerable Subclasses { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; + public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; } public string table; + public NHibernate.Cfg.MappingSchema.HbmTimestamp Timestamp { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmTuplizer[] tuplizer; + public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; } + public System.Collections.Generic.IEnumerable UnionSubclasses { get => throw null; } + public bool? UseLazy { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmVersion Version { get => throw null; } public string where; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmCollectionFetchMode { - Join, - Select, - Subselect, + Select = 0, + Join = 1, + Subselect = 2, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCollectionId` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmCollectionId : NHibernate.Cfg.MappingSchema.ITypeMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmCollectionId : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.ITypeMapping { - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public HbmCollectionId() => throw null; - public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmColumn[] column; public string column1; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmCollectionId() => throw null; public NHibernate.Cfg.MappingSchema.HbmGenerator generator; public string length; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; public string type; + public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCollectionLazy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmCollectionLazy { - Extra, - False, - True, + True = 0, + False = 1, + Extra = 2, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmColumn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmColumn { - public HbmColumn() => throw null; public string check; public NHibernate.Cfg.MappingSchema.HbmComment comment; + public HbmColumn() => throw null; public string @default; public string index; public string length; @@ -4753,228 +2630,194 @@ namespace NHibernate public string scale; public string sqltype; public bool unique; - public bool uniqueSpecified; public string uniquekey; + public bool uniqueSpecified; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmComment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmComment { public HbmComment() => throw null; public string[] Text; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmComponent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmComponent : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping + public class HbmComponent : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { + public string access; public string Access { get => throw null; } + public string @class; public string Class { get => throw null; } - public string EmbeddedNode { get => throw null; } public HbmComponent() => throw null; + public string EmbeddedNode { get => throw null; } + public bool insert; public bool IsLazyProperty { get => throw null; } public object[] Items; - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; } - public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public string access; - public string @class; - public bool insert; public bool lazy; public string lazygroup; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmParent parent; + public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; } + public System.Collections.Generic.IEnumerable Properties { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmTuplizer[] tuplizer; public bool unique; public bool update; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCompositeElement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmCompositeElement : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IComponentMapping + public class HbmCompositeElement : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { + public string @class; public string Class { get => throw null; } - public string EmbeddedNode { get => throw null; } public HbmCompositeElement() => throw null; + public string EmbeddedNode { get => throw null; } public object[] Items; + public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string Name { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; } - public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public string @class; - public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; public string node; public NHibernate.Cfg.MappingSchema.HbmParent parent; + public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; } + public System.Collections.Generic.IEnumerable Properties { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCompositeId` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmCompositeId { - public HbmCompositeId() => throw null; - public object[] Items; public string access; public string @class; + public HbmCompositeId() => throw null; + public object[] Items; public bool mapped; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; public string name; public string node; public NHibernate.Cfg.MappingSchema.HbmUnsavedValueType unsavedvalue; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCompositeIndex` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmCompositeIndex : NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IComponentMapping + public class HbmCompositeIndex : NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { + public string @class; public string Class { get => throw null; } - public string EmbeddedNode { get => throw null; } public HbmCompositeIndex() => throw null; - public object[] Items; - public string Name { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; } - public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public string @class; - } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCompositeMapKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmCompositeMapKey : NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IComponentMapping - { - public string Class { get => throw null; } public string EmbeddedNode { get => throw null; } - public HbmCompositeMapKey() => throw null; public object[] Items; public string Name { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; } public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public string @class; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCreate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class HbmCompositeMapKey : NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping + { + public string @class; + public string Class { get => throw null; } + public HbmCompositeMapKey() => throw null; + public string EmbeddedNode { get => throw null; } + public object[] Items; + public string Name { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; } + public System.Collections.Generic.IEnumerable Properties { get => throw null; } + } public class HbmCreate { public HbmCreate() => throw null; public string[] Text; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCustomSQL` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmCustomSQL { - public HbmCustomSQL() => throw null; - public string[] Text; public bool callable; public bool callableSpecified; public NHibernate.Cfg.MappingSchema.HbmCustomSQLCheck check; public bool checkSpecified; + public HbmCustomSQL() => throw null; + public string[] Text; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmCustomSQLCheck` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmCustomSQLCheck { - None, - Param, - Rowcount, + None = 0, + Rowcount = 1, + Param = 2, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmDatabaseObject` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmDatabaseObject : NHibernate.Cfg.MappingSchema.HbmBase { + public HbmDatabaseObject() => throw null; + public NHibernate.Cfg.MappingSchema.HbmDialectScope[] dialectscope; public string FindCreateText() => throw null; public NHibernate.Cfg.MappingSchema.HbmDefinition FindDefinition() => throw null; public System.Collections.Generic.IList FindDialectScopeNames() => throw null; public string FindDropText() => throw null; public bool HasDefinition() => throw null; - public HbmDatabaseObject() => throw null; public object[] Items; - public NHibernate.Cfg.MappingSchema.HbmDialectScope[] dialectscope; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmDefinition` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmDefinition : NHibernate.Cfg.MappingSchema.HbmBase { - public System.Collections.Generic.IDictionary FindParameterValues() => throw null; - public HbmDefinition() => throw null; public string @class; + public HbmDefinition() => throw null; + public System.Collections.Generic.IDictionary FindParameterValues() => throw null; public NHibernate.Cfg.MappingSchema.HbmParam[] param; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmDialectScope` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmDialectScope { public HbmDialectScope() => throw null; - public string[] Text; public string name; + public string[] Text; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmDiscriminator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmDiscriminator : NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmDiscriminator : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping { - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public System.Collections.Generic.IEnumerable Formulas { get => throw null; } - public HbmDiscriminator() => throw null; - public object Item; public string column; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmDiscriminator() => throw null; public bool force; public string formula; + public System.Collections.Generic.IEnumerable Formulas { get => throw null; } public bool insert; + public object Item; public string length; public bool notnull; public string type; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmDrop` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmDrop { public HbmDrop() => throw null; public string[] Text; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmDynamicComponent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmDynamicComponent : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping + public class HbmDynamicComponent : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { + public string access; public string Access { get => throw null; } public string Class { get => throw null; } - public string EmbeddedNode { get => throw null; } public HbmDynamicComponent() => throw null; + public string EmbeddedNode { get => throw null; } + public bool insert; public bool IsLazyProperty { get => throw null; } public object[] Items; protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } + public string name; public string Name { get => throw null; } + public string node; + public bool optimisticlock; public bool OptimisticLock { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; } public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public string access; - public bool insert; - public string name; - public string node; - public bool optimisticlock; public bool unique; public bool update; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmElement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmElement : NHibernate.Cfg.MappingSchema.ITypeMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmElement : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.ITypeMapping { + public string column; public System.Collections.Generic.IEnumerable Columns { get => throw null; } public System.Collections.Generic.IEnumerable ColumnsAndFormulas { get => throw null; } - public System.Collections.Generic.IEnumerable Formulas { get => throw null; } public HbmElement() => throw null; - public object[] Items; - public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } - public string column; public string formula; + public System.Collections.Generic.IEnumerable Formulas { get => throw null; } + public object[] Items; public string length; public string node; public bool notnull; public string precision; public string scale; public NHibernate.Cfg.MappingSchema.HbmType type; + public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } public string type1; public bool unique; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class HbmExtensions + public static partial class HbmExtensions { public static string JoinString(this string[] source) => throw null; public static string ToCacheConcurrencyStrategy(this NHibernate.Cfg.MappingSchema.HbmCacheUsage cacheUsage) => throw null; @@ -4982,320 +2825,286 @@ namespace NHibernate public static string ToNullValue(this NHibernate.Cfg.MappingSchema.HbmUnsavedValueType unsavedValueType) => throw null; public static NHibernate.Engine.Versioning.OptimisticLock ToOptimisticLock(this NHibernate.Cfg.MappingSchema.HbmOptimisticLockMode hbmOptimisticLockMode) => throw null; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmFetchMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmFetchMode { - Join, - Select, + Select = 0, + Join = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmFilter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmFilter { - public HbmFilter() => throw null; - public string[] Text; public string condition; + public HbmFilter() => throw null; public string name; + public string[] Text; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmFilterDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmFilterDef : NHibernate.Cfg.MappingSchema.HbmBase { - public string GetDefaultCondition() => throw null; + public string condition; public HbmFilterDef() => throw null; + public string GetDefaultCondition() => throw null; public NHibernate.Cfg.MappingSchema.HbmFilterParam[] Items; public NHibernate.Cfg.MappingSchema.HbmFilterParam[] ListParameters() => throw null; - public string[] Text; - public string condition; public string name; + public string[] Text; public bool usemanytoone; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmFilterParam` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmFilterParam { public HbmFilterParam() => throw null; public string name; public string type; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmFlushMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmFlushMode { - Always, - Auto, - Manual, - Never, + Auto = 0, + Manual = 1, + Always = 2, + Never = 3, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmFormula` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmFormula { public HbmFormula() => throw null; public string[] Text; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmGenerator { - public HbmGenerator() => throw null; public string @class; + public HbmGenerator() => throw null; public NHibernate.Cfg.MappingSchema.HbmParam[] param; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmId` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmId : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ITypeMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmId : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.ITypeMapping { - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public HbmId() => throw null; - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } public string access; public NHibernate.Cfg.MappingSchema.HbmColumn[] column; public string column1; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmId() => throw null; public NHibernate.Cfg.MappingSchema.HbmGenerator generator; public string generator1; public string length; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; public string node; public NHibernate.Cfg.MappingSchema.HbmType type; + public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } public string type1; public string unsavedvalue; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmIdbag` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmIdbag : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping + public class HbmIdbag : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping { + public string access; public string Access { get => throw null; } + public int batchsize; public int? BatchSize { get => throw null; } + public bool batchsizeSpecified; + public NHibernate.Cfg.MappingSchema.HbmCache cache; public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; } + public string cascade; public string Cascade { get => throw null; } + public string catalog; public string Catalog { get => throw null; } + public string check; public string Check { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmCollectionId collectionid; + public string collectiontype; public string CollectionType { get => throw null; } - public object ElementRelationship { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } - public System.Collections.Generic.IEnumerable Filters { get => throw null; } - public bool? Generic { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmComment comment; public HbmIdbag() => throw null; + public object ElementRelationship { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } + public bool fetchSpecified; + public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; + public System.Collections.Generic.IEnumerable Filters { get => throw null; } + public bool generic; + public bool? Generic { get => throw null; } + public bool genericSpecified; + public bool inverse; public bool Inverse { get => throw null; } public bool IsLazyProperty { get => throw null; } public object Item; - public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public bool Mutable { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } - public string OrderBy { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } - public string PersisterQualifiedName { get => throw null; } - public string Schema { get => throw null; } - public string Sort { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public string Subselect { get => throw null; } - public string Table { get => throw null; } - public string Where { get => throw null; } - public string access; - public int batchsize; - public bool batchsizeSpecified; - public NHibernate.Cfg.MappingSchema.HbmCache cache; - public string cascade; - public string catalog; - public string check; - public NHibernate.Cfg.MappingSchema.HbmCollectionId collectionid; - public string collectiontype; - public NHibernate.Cfg.MappingSchema.HbmComment comment; - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; - public bool fetchSpecified; - public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; - public bool generic; - public bool genericSpecified; - public bool inverse; public NHibernate.Cfg.MappingSchema.HbmKey key; + public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCollectionLazy lazy; + public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public bool mutable; + public bool Mutable { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } public string orderby; + public string OrderBy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin; + public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } public bool outerjoinSpecified; public string persister; + public string PersisterQualifiedName { get => throw null; } public string schema; + public string Schema { get => throw null; } + public string Sort { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; public string table; + public string Table { get => throw null; } public string where; + public string Where { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmImport` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmImport { - public HbmImport() => throw null; public string @class; + public HbmImport() => throw null; public string rename; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmIndex` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmIndex : NHibernate.Cfg.MappingSchema.ITypeMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmIndex : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.ITypeMapping { + public NHibernate.Cfg.MappingSchema.HbmColumn[] column; + public string column1; public System.Collections.Generic.IEnumerable Columns { get => throw null; } public HbmIndex() => throw null; - public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmColumn[] column; - public string column1; public string length; public string type; + public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmIndexManyToAny` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmIndexManyToAny : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IAnyMapping { + public NHibernate.Cfg.MappingSchema.HbmColumn[] column; + public string column1; public System.Collections.Generic.IEnumerable Columns { get => throw null; } public HbmIndexManyToAny() => throw null; - public string MetaType { get => throw null; } - public System.Collections.Generic.ICollection MetaValues { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmColumn[] column; - public string column1; public string idtype; public string metatype; + public string MetaType { get => throw null; } + public System.Collections.Generic.ICollection MetaValues { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmIndexManyToMany` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmIndexManyToMany : NHibernate.Cfg.MappingSchema.IRelationship, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmIndexManyToMany : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IRelationship { - public string Class { get => throw null; } - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public string EntityName { get => throw null; } - public HbmIndexManyToMany() => throw null; - public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } public string @class; + public string Class { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmColumn[] column; public string column1; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmIndexManyToMany() => throw null; public string entityname; + public string EntityName { get => throw null; } public string foreignkey; + public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmJoin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmJoin : NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping + public class HbmJoin : NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { - public HbmJoin() => throw null; - public object[] Items; - public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public string Subselect { get => throw null; } public string catalog; public NHibernate.Cfg.MappingSchema.HbmComment comment; + public HbmJoin() => throw null; public NHibernate.Cfg.MappingSchema.HbmJoinFetch fetch; public bool inverse; + public object[] Items; public NHibernate.Cfg.MappingSchema.HbmKey key; public bool optional; + public System.Collections.Generic.IEnumerable Properties { get => throw null; } public string schema; public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public string table; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmJoinFetch` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum HbmJoinFetch + public class HbmJoinedSubclass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { - Join, - Select, - } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmJoinedSubclass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmJoinedSubclass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IDecoratable - { - public int? BatchSize { get => throw null; } - public bool DynamicInsert { get => throw null; } - public bool DynamicUpdate { get => throw null; } - public string EntityName { get => throw null; } - public HbmJoinedSubclass() => throw null; - public bool? IsAbstract { get => throw null; } - public object[] Items; - public object[] Items1; - public System.Collections.Generic.IEnumerable JoinedSubclasses { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } - public string Node { get => throw null; } - public string Persister { get => throw null; } - public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public string Proxy { get => throw null; } - public bool SelectBeforeUpdate { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public string Subselect { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; } - public bool? UseLazy { get => throw null; } public bool @abstract; public bool abstractSpecified; public string batchsize; + public int? BatchSize { get => throw null; } public string catalog; public string check; public NHibernate.Cfg.MappingSchema.HbmComment comment; + public HbmJoinedSubclass() => throw null; public bool dynamicinsert; + public bool DynamicInsert { get => throw null; } public bool dynamicupdate; + public bool DynamicUpdate { get => throw null; } public string entityname; + public string EntityName { get => throw null; } public string extends; public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; + public bool? IsAbstract { get => throw null; } + public object[] Items; + public object[] Items1; public NHibernate.Cfg.MappingSchema.HbmJoinedSubclass[] joinedsubclass1; + public System.Collections.Generic.IEnumerable JoinedSubclasses { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmKey key; public bool lazy; public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; + public string Name { get => throw null; } public string node; + public string Node { get => throw null; } public string persister; + public string Persister { get => throw null; } + public System.Collections.Generic.IEnumerable Properties { get => throw null; } public string proxy; + public string Proxy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmResultSet[] resultset; public string schema; public string schemaaction; public bool selectbeforeupdate; + public bool SelectBeforeUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; + public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; } public string table; public NHibernate.Cfg.MappingSchema.HbmTuplizer[] tuplizer; + public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; } + public bool? UseLazy { get => throw null; } + } + public enum HbmJoinFetch + { + Join = 0, + Select = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmKey : NHibernate.Cfg.MappingSchema.IColumnsMapping { - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public HbmKey() => throw null; - public bool? IsNullable { get => throw null; } - public bool? IsUpdatable { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmColumn[] column; public string column1; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmKey() => throw null; public string foreignkey; + public bool? IsNullable { get => throw null; } + public bool? IsUpdatable { get => throw null; } public bool notnull; public bool notnullSpecified; public NHibernate.Cfg.MappingSchema.HbmOndelete ondelete; @@ -5305,219 +3114,199 @@ namespace NHibernate public bool update; public bool updateSpecified; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmKeyManyToOne` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmKeyManyToOne : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IRelationship, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmKeyManyToOne : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IRelationship, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable { - public string Access { get => throw null; } - public string Class { get => throw null; } - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public string EntityName { get => throw null; } - public HbmKeyManyToOne() => throw null; - public bool IsLazyProperty { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmRestrictedLaziness? Lazy { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } - public bool OptimisticLock { get => throw null; } public string access; + public string Access { get => throw null; } public string @class; + public string Class { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmColumn[] column; public string column1; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmKeyManyToOne() => throw null; public string entityname; + public string EntityName { get => throw null; } public string foreignkey; + public bool IsLazyProperty { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmRestrictedLaziness lazy; + public NHibernate.Cfg.MappingSchema.HbmRestrictedLaziness? Lazy { get => throw null; } public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; + public string Name { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmNotFoundMode notfound; + public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } + public bool OptimisticLock { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmKeyProperty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmKeyProperty : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ITypeMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmKeyProperty : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.ITypeMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable { + public string access; public string Access { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmColumn[] column; + public string column1; public System.Collections.Generic.IEnumerable Columns { get => throw null; } public HbmKeyProperty() => throw null; public bool IsLazyProperty { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } - public string access; - public NHibernate.Cfg.MappingSchema.HbmColumn[] column; - public string column1; public string length; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; + public string Name { get => throw null; } public string node; + public bool OptimisticLock { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmType type; + public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } public string type1; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmLaziness` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmLaziness { - False, - NoProxy, - Proxy, + False = 0, + Proxy = 1, + NoProxy = 2, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmList` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmList : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.IIndexedCollectionMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping + public class HbmList : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IIndexedCollectionMapping { + public string access; public string Access { get => throw null; } + public int batchsize; public int? BatchSize { get => throw null; } + public bool batchsizeSpecified; + public NHibernate.Cfg.MappingSchema.HbmCache cache; public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; } + public string cascade; public string Cascade { get => throw null; } + public string catalog; public string Catalog { get => throw null; } + public string check; public string Check { get => throw null; } + public string collectiontype; public string CollectionType { get => throw null; } - public object ElementRelationship { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } - public System.Collections.Generic.IEnumerable Filters { get => throw null; } - public bool? Generic { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmComment comment; public HbmList() => throw null; + public object ElementRelationship { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } + public bool fetchSpecified; + public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; + public System.Collections.Generic.IEnumerable Filters { get => throw null; } + public bool generic; + public bool? Generic { get => throw null; } + public bool genericSpecified; public NHibernate.Cfg.MappingSchema.HbmIndex Index { get => throw null; } + public bool inverse; public bool Inverse { get => throw null; } public bool IsLazyProperty { get => throw null; } public object Item; public object Item1; - public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmListIndex ListIndex { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public bool Mutable { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } - public string OrderBy { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } - public string PersisterQualifiedName { get => throw null; } - public string Schema { get => throw null; } - public string Sort { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public string Subselect { get => throw null; } - public string Table { get => throw null; } - public string Where { get => throw null; } - public string access; - public int batchsize; - public bool batchsizeSpecified; - public NHibernate.Cfg.MappingSchema.HbmCache cache; - public string cascade; - public string catalog; - public string check; - public string collectiontype; - public NHibernate.Cfg.MappingSchema.HbmComment comment; - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; - public bool fetchSpecified; - public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; - public bool generic; - public bool genericSpecified; - public bool inverse; public NHibernate.Cfg.MappingSchema.HbmKey key; + public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCollectionLazy lazy; + public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } public bool lazySpecified; + public NHibernate.Cfg.MappingSchema.HbmListIndex ListIndex { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public bool mutable; + public bool Mutable { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } public string orderby; + public string OrderBy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin; + public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } public bool outerjoinSpecified; public string persister; + public string PersisterQualifiedName { get => throw null; } public string schema; + public string Schema { get => throw null; } + public string Sort { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; public string table; + public string Table { get => throw null; } public string where; + public string Where { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmListIndex` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmListIndex : NHibernate.Cfg.MappingSchema.IColumnsMapping { - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public HbmListIndex() => throw null; public string @base; public NHibernate.Cfg.MappingSchema.HbmColumn column; public string column1; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmListIndex() => throw null; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmLoadCollection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmLoadCollection { - public HbmLoadCollection() => throw null; public string alias; + public HbmLoadCollection() => throw null; public NHibernate.Cfg.MappingSchema.HbmLockMode lockmode; public NHibernate.Cfg.MappingSchema.HbmReturnProperty[] returnproperty; public string role; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmLoader { public HbmLoader() => throw null; public string queryref; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmLockMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmLockMode { - None, - Read, - Upgrade, - UpgradeNowait, - Write, + None = 0, + Read = 1, + Upgrade = 2, + UpgradeNowait = 3, + Write = 4, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmManyToAny` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmManyToAny : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IAnyMapping { - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public HbmManyToAny() => throw null; - public string MetaType { get => throw null; } - public System.Collections.Generic.ICollection MetaValues { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmColumn[] column; public string column1; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmManyToAny() => throw null; public string idtype; public string metatype; + public string MetaType { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmMetaValue[] metavalue; + public System.Collections.Generic.ICollection MetaValues { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmManyToMany` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmManyToMany : NHibernate.Cfg.MappingSchema.IRelationship, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmManyToMany : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IRelationship { + public string @class; public string Class { get => throw null; } + public string column; public System.Collections.Generic.IEnumerable Columns { get => throw null; } public System.Collections.Generic.IEnumerable ColumnsAndFormulas { get => throw null; } - public string EntityName { get => throw null; } - public System.Collections.Generic.IEnumerable Formulas { get => throw null; } public HbmManyToMany() => throw null; - public object[] Items; - public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } - public string @class; - public string column; public string entityname; + public string EntityName { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmFetchMode fetch; public bool fetchSpecified; public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; public string foreignkey; public string formula; + public System.Collections.Generic.IEnumerable Formulas { get => throw null; } + public object[] Items; public NHibernate.Cfg.MappingSchema.HbmRestrictedLaziness lazy; public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; public string node; public NHibernate.Cfg.MappingSchema.HbmNotFoundMode notfound; + public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } public string orderby; public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin; public bool outerjoinSpecified; @@ -5525,44 +3314,42 @@ namespace NHibernate public bool unique; public string where; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmManyToOne` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmManyToOne : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IRelationship, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmManyToOne : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IRelationship { - public string Access { get => throw null; } - public string Class { get => throw null; } - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public System.Collections.Generic.IEnumerable ColumnsAndFormulas { get => throw null; } - public string EntityName { get => throw null; } - public System.Collections.Generic.IEnumerable Formulas { get => throw null; } - public HbmManyToOne() => throw null; - public bool IsLazyProperty { get => throw null; } - public object[] Items; - public NHibernate.Cfg.MappingSchema.HbmLaziness? Lazy { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } - public bool OptimisticLock { get => throw null; } public string access; + public string Access { get => throw null; } public string cascade; public string @class; + public string Class { get => throw null; } public string column; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public System.Collections.Generic.IEnumerable ColumnsAndFormulas { get => throw null; } + public HbmManyToOne() => throw null; public string entityname; + public string EntityName { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmFetchMode fetch; public bool fetchSpecified; public string foreignkey; public string formula; + public System.Collections.Generic.IEnumerable Formulas { get => throw null; } public string index; public bool insert; + public bool IsLazyProperty { get => throw null; } + public object[] Items; public NHibernate.Cfg.MappingSchema.HbmLaziness lazy; + public NHibernate.Cfg.MappingSchema.HbmLaziness? Lazy { get => throw null; } public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public NHibernate.Cfg.MappingSchema.HbmNotFoundMode notfound; + public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } public bool notnull; public bool notnullSpecified; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin; public bool outerjoinSpecified; public string propertyref; @@ -5570,905 +3357,802 @@ namespace NHibernate public string uniquekey; public bool update; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmMap` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmMap : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping + public class HbmMap : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping { + public string access; public string Access { get => throw null; } + public int batchsize; public int? BatchSize { get => throw null; } + public bool batchsizeSpecified; + public NHibernate.Cfg.MappingSchema.HbmCache cache; public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; } + public string cascade; public string Cascade { get => throw null; } + public string catalog; public string Catalog { get => throw null; } + public string check; public string Check { get => throw null; } + public string collectiontype; public string CollectionType { get => throw null; } - public object ElementRelationship { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } - public System.Collections.Generic.IEnumerable Filters { get => throw null; } - public bool? Generic { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmComment comment; public HbmMap() => throw null; + public object ElementRelationship { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } + public bool fetchSpecified; + public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; + public System.Collections.Generic.IEnumerable Filters { get => throw null; } + public bool generic; + public bool? Generic { get => throw null; } + public bool genericSpecified; + public bool inverse; public bool Inverse { get => throw null; } public bool IsLazyProperty { get => throw null; } public object Item; public object Item1; - public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public bool Mutable { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } - public string OrderBy { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } - public string PersisterQualifiedName { get => throw null; } - public string Schema { get => throw null; } - public string Sort { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public string Subselect { get => throw null; } - public string Table { get => throw null; } - public string Where { get => throw null; } - public string access; - public int batchsize; - public bool batchsizeSpecified; - public NHibernate.Cfg.MappingSchema.HbmCache cache; - public string cascade; - public string catalog; - public string check; - public string collectiontype; - public NHibernate.Cfg.MappingSchema.HbmComment comment; - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; - public bool fetchSpecified; - public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; - public bool generic; - public bool genericSpecified; - public bool inverse; public NHibernate.Cfg.MappingSchema.HbmKey key; + public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCollectionLazy lazy; + public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public bool mutable; + public bool Mutable { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } public string orderby; + public string OrderBy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin; + public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } public bool outerjoinSpecified; public string persister; + public string PersisterQualifiedName { get => throw null; } public string schema; + public string Schema { get => throw null; } public string sort; + public string Sort { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; public string table; + public string Table { get => throw null; } public string where; + public string Where { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmMapKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmMapKey : NHibernate.Cfg.MappingSchema.ITypeMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmMapKey : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.ITypeMapping { + public string column; public System.Collections.Generic.IEnumerable Columns { get => throw null; } public System.Collections.Generic.IEnumerable ColumnsAndFormulas { get => throw null; } - public System.Collections.Generic.IEnumerable Formulas { get => throw null; } public HbmMapKey() => throw null; - public object[] Items; - public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } - public string column; public string formula; + public System.Collections.Generic.IEnumerable Formulas { get => throw null; } + public object[] Items; public string length; public string node; public string type; + public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmMapKeyManyToMany` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmMapKeyManyToMany : NHibernate.Cfg.MappingSchema.IRelationship, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmMapKeyManyToMany : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IRelationship { + public string @class; public string Class { get => throw null; } + public string column; public System.Collections.Generic.IEnumerable Columns { get => throw null; } public System.Collections.Generic.IEnumerable ColumnsAndFormulas { get => throw null; } - public string EntityName { get => throw null; } - public System.Collections.Generic.IEnumerable Formulas { get => throw null; } public HbmMapKeyManyToMany() => throw null; - public object[] Items; - public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } - public string @class; - public string column; public string entityname; + public string EntityName { get => throw null; } public string foreignkey; public string formula; + public System.Collections.Generic.IEnumerable Formulas { get => throw null; } + public object[] Items; + public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmMapping : NHibernate.Cfg.MappingSchema.AbstractDecoratable { - public NHibernate.Cfg.MappingSchema.HbmDatabaseObject[] DatabaseObjects { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmFilterDef[] FilterDefinitions { get => throw null; } - public HbmMapping() => throw null; - public NHibernate.Cfg.MappingSchema.HbmQuery[] HqlQueries { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmImport[] Imports { get => throw null; } - public object[] Items; - public object[] Items1; - public NHibernate.Cfg.MappingSchema.HbmJoinedSubclass[] JoinedSubclasses { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmResultSet[] ResultSets { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmClass[] RootClasses { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmSqlQuery[] SqlQueries { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmSubclass[] SubClasses { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmTypedef[] TypeDefinitions { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmUnionSubclass[] UnionSubclasses { get => throw null; } public string assembly; public bool autoimport; public string catalog; + public HbmMapping() => throw null; public NHibernate.Cfg.MappingSchema.HbmDatabaseObject[] databaseobject; + public NHibernate.Cfg.MappingSchema.HbmDatabaseObject[] DatabaseObjects { get => throw null; } public string defaultaccess; public string defaultcascade; public bool defaultlazy; public NHibernate.Cfg.MappingSchema.HbmFilterDef[] filterdef; + public NHibernate.Cfg.MappingSchema.HbmFilterDef[] FilterDefinitions { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmQuery[] HqlQueries { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmImport[] import; + public NHibernate.Cfg.MappingSchema.HbmImport[] Imports { get => throw null; } + public object[] Items; + public object[] Items1; + public NHibernate.Cfg.MappingSchema.HbmJoinedSubclass[] JoinedSubclasses { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string @namespace; public NHibernate.Cfg.MappingSchema.HbmResultSet[] resultset; + public NHibernate.Cfg.MappingSchema.HbmResultSet[] ResultSets { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmClass[] RootClasses { get => throw null; } public string schema; + public NHibernate.Cfg.MappingSchema.HbmSqlQuery[] SqlQueries { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmSubclass[] SubClasses { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmTypedef[] typedef; + public NHibernate.Cfg.MappingSchema.HbmTypedef[] TypeDefinitions { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmUnionSubclass[] UnionSubclasses { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmMeta` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmMeta : NHibernate.Cfg.MappingSchema.HbmBase { - public string GetText() => throw null; - public HbmMeta() => throw null; - public string[] Text; public string attribute; + public HbmMeta() => throw null; + public string GetText() => throw null; public bool inherit; + public string[] Text; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmMetaValue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmMetaValue { - public HbmMetaValue() => throw null; public string @class; + public HbmMetaValue() => throw null; public string value; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmNaturalId` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmNaturalId : NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { public HbmNaturalId() => throw null; public object[] Items; - public System.Collections.Generic.IEnumerable Properties { get => throw null; } public bool mutable; + public System.Collections.Generic.IEnumerable Properties { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmNestedCompositeElement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmNestedCompositeElement : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping + public class HbmNestedCompositeElement : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { + public string access; public string Access { get => throw null; } + public string @class; public string Class { get => throw null; } - public string EmbeddedNode { get => throw null; } public HbmNestedCompositeElement() => throw null; + public string EmbeddedNode { get => throw null; } public bool IsLazyProperty { get => throw null; } public object[] Items; protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } + public string name; public string Name { get => throw null; } + public string node; public bool OptimisticLock { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmParent parent; public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; } public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public string access; - public string @class; - public string name; - public string node; - public NHibernate.Cfg.MappingSchema.HbmParent parent; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmNotFoundMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmNotFoundMode { - Exception, - Ignore, + Ignore = 0, + Exception = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmOndelete` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmOndelete { - Cascade, - Noaction, + Cascade = 0, + Noaction = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmOneToMany` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmOneToMany : NHibernate.Cfg.MappingSchema.IRelationship { - public string Class { get => throw null; } - public string EntityName { get => throw null; } - public HbmOneToMany() => throw null; - public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } public string @class; + public string Class { get => throw null; } + public HbmOneToMany() => throw null; public string entityname; + public string EntityName { get => throw null; } public string node; public NHibernate.Cfg.MappingSchema.HbmNotFoundMode notfound; - } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmOneToOne` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmOneToOne : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IRelationship, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable - { - public string Access { get => throw null; } - public string Class { get => throw null; } - public string EntityName { get => throw null; } - public System.Collections.Generic.IEnumerable Formulas { get => throw null; } - public HbmOneToOne() => throw null; - public bool IsLazyProperty { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLaziness? Lazy { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } - public bool OptimisticLock { get => throw null; } + } + public class HbmOneToOne : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IRelationship + { public string access; + public string Access { get => throw null; } public string cascade; public string @class; + public string Class { get => throw null; } public bool constrained; + public HbmOneToOne() => throw null; public string entityname; + public string EntityName { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmFetchMode fetch; public bool fetchSpecified; public string foreignkey; public NHibernate.Cfg.MappingSchema.HbmFormula[] formula; public string formula1; + public System.Collections.Generic.IEnumerable Formulas { get => throw null; } + public bool IsLazyProperty { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmLaziness lazy; + public NHibernate.Cfg.MappingSchema.HbmLaziness? Lazy { get => throw null; } public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; + public string Name { get => throw null; } public string node; + public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; } + public bool optimisticlock; + public bool OptimisticLock { get => throw null; set { } } public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin; public bool outerjoinSpecified; public string propertyref; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmOptimisticLockMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmOptimisticLockMode { - All, - Dirty, - None, - Version, + None = 0, + Version = 1, + Dirty = 2, + All = 3, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmOuterJoinStrategy { - Auto, - False, - True, + Auto = 0, + True = 1, + False = 2, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmParam` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmParam : NHibernate.Cfg.MappingSchema.HbmBase { - public string GetText() => throw null; public HbmParam() => throw null; - public string[] Text; + public string GetText() => throw null; public string name; + public string[] Text; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmParent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmParent { - public HbmParent() => throw null; public string access; + public HbmParent() => throw null; public string name; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmPolymorphismType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmPolymorphismType { - Explicit, - Implicit, + Implicit = 0, + Explicit = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmPrimitiveArray` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmPrimitiveArray : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.IIndexedCollectionMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping + public class HbmPrimitiveArray : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IIndexedCollectionMapping { + public string access; public string Access { get => throw null; } + public string batchsize; public int? BatchSize { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmCache cache; public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; } public string Cascade { get => throw null; } + public string catalog; public string Catalog { get => throw null; } + public string check; public string Check { get => throw null; } + public string collectiontype; public string CollectionType { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmComment comment; + public HbmPrimitiveArray() => throw null; + public NHibernate.Cfg.MappingSchema.HbmElement element; public object ElementRelationship { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmPrimitivearrayFetch fetch; public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } + public bool fetchSpecified; public System.Collections.Generic.IEnumerable Filters { get => throw null; } public bool? Generic { get => throw null; } - public HbmPrimitiveArray() => throw null; public NHibernate.Cfg.MappingSchema.HbmIndex Index { get => throw null; } public bool Inverse { get => throw null; } public bool IsLazyProperty { get => throw null; } public object Item; + public NHibernate.Cfg.MappingSchema.HbmKey key; public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmListIndex ListIndex { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public bool Mutable { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } - public string OrderBy { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } - public string PersisterQualifiedName { get => throw null; } - public string Schema { get => throw null; } - public string Sort { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public string Subselect { get => throw null; } - public string Table { get => throw null; } - public string Where { get => throw null; } - public string access; - public string batchsize; - public NHibernate.Cfg.MappingSchema.HbmCache cache; - public string catalog; - public string check; - public string collectiontype; - public NHibernate.Cfg.MappingSchema.HbmComment comment; - public NHibernate.Cfg.MappingSchema.HbmElement element; - public NHibernate.Cfg.MappingSchema.HbmPrimitivearrayFetch fetch; - public bool fetchSpecified; - public NHibernate.Cfg.MappingSchema.HbmKey key; public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public bool mutable; + public bool Mutable { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } + public string OrderBy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmPrimitivearrayOuterjoin outerjoin; + public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } public bool outerjoinSpecified; public string persister; + public string PersisterQualifiedName { get => throw null; } public string schema; + public string Schema { get => throw null; } + public string Sort { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; public string table; + public string Table { get => throw null; } public string where; + public string Where { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmPrimitivearrayFetch` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmPrimitivearrayFetch { - Join, - Select, - Subselect, + Join = 0, + Select = 1, + Subselect = 2, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmPrimitivearrayOuterjoin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmPrimitivearrayOuterjoin { - Auto, - False, - True, + True = 0, + False = 1, + Auto = 2, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmProperties` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmProperties : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping + public class HbmProperties : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { public string Access { get => throw null; } public string Class { get => throw null; } - public string EmbeddedNode { get => throw null; } public HbmProperties() => throw null; + public string EmbeddedNode { get => throw null; } + public bool insert; public bool IsLazyProperty { get => throw null; } public object[] Items; protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } + public string name; public string Name { get => throw null; } + public string node; + public bool optimisticlock; public bool OptimisticLock { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; } public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public bool insert; - public string name; - public string node; - public bool optimisticlock; public bool unique; public bool update; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmProperty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmProperty : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ITypeMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping + public class HbmProperty : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.ITypeMapping { + public string access; public string Access { get => throw null; } + public string column; public System.Collections.Generic.IEnumerable Columns { get => throw null; } public System.Collections.Generic.IEnumerable ColumnsAndFormulas { get => throw null; } - public string FetchGroup { get => throw null; } - public System.Collections.Generic.IEnumerable Formulas { get => throw null; } public HbmProperty() => throw null; - public bool IsLazyProperty { get => throw null; } - public object[] Items; - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } - public string access; - public string column; + public string FetchGroup { get => throw null; } public string formula; + public System.Collections.Generic.IEnumerable Formulas { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmPropertyGeneration generated; public string index; public bool insert; public bool insertSpecified; + public bool IsLazyProperty { get => throw null; } + public object[] Items; public bool lazy; public string lazygroup; public string length; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public bool notnull; public bool notnullSpecified; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } public string precision; public string scale; public NHibernate.Cfg.MappingSchema.HbmType type; + public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; } public string type1; public bool unique; public string uniquekey; public bool update; public bool updateSpecified; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmPropertyGeneration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmPropertyGeneration { - Always, - Insert, - Never, + Never = 0, + Insert = 1, + Always = 2, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmQuery : NHibernate.Cfg.MappingSchema.HbmBase { - public string GetText() => throw null; - public HbmQuery() => throw null; - public NHibernate.Cfg.MappingSchema.HbmQueryParam[] Items; - public string[] Text; public bool cacheable; public NHibernate.Cfg.MappingSchema.HbmCacheMode cachemode; public bool cachemodeSpecified; public string cacheregion; public string comment; + public HbmQuery() => throw null; public int fetchsize; public bool fetchsizeSpecified; public NHibernate.Cfg.MappingSchema.HbmFlushMode flushmode; public bool flushmodeSpecified; + public string GetText() => throw null; + public NHibernate.Cfg.MappingSchema.HbmQueryParam[] Items; public string name; public bool @readonly; public bool readonlySpecified; + public string[] Text; public string timeout; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmQueryParam` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmQueryParam { public HbmQueryParam() => throw null; public string name; public string type; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmRestrictedLaziness` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmRestrictedLaziness { - False, - Proxy, + False = 0, + Proxy = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmResultSet` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmResultSet { public HbmResultSet() => throw null; public object[] Items; public string name; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmReturn { - public HbmReturn() => throw null; public string alias; public string @class; + public HbmReturn() => throw null; public string entityname; public NHibernate.Cfg.MappingSchema.HbmLockMode lockmode; public NHibernate.Cfg.MappingSchema.HbmReturnDiscriminator returndiscriminator; public NHibernate.Cfg.MappingSchema.HbmReturnProperty[] returnproperty; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmReturnColumn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmReturnColumn { public HbmReturnColumn() => throw null; public string name; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmReturnDiscriminator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmReturnDiscriminator { - public HbmReturnDiscriminator() => throw null; public string column; + public HbmReturnDiscriminator() => throw null; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmReturnJoin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmReturnJoin { - public HbmReturnJoin() => throw null; public string alias; + public HbmReturnJoin() => throw null; public NHibernate.Cfg.MappingSchema.HbmLockMode lockmode; public string property; public NHibernate.Cfg.MappingSchema.HbmReturnProperty[] returnproperty; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmReturnProperty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmReturnProperty { - public HbmReturnProperty() => throw null; public string column; + public HbmReturnProperty() => throw null; public string name; public NHibernate.Cfg.MappingSchema.HbmReturnColumn[] returncolumn; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmReturnScalar` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmReturnScalar { - public HbmReturnScalar() => throw null; public string column; + public HbmReturnScalar() => throw null; public string type; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmSet` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmSet : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping + public class HbmSet : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping { + public string access; public string Access { get => throw null; } + public int batchsize; public int? BatchSize { get => throw null; } + public bool batchsizeSpecified; + public NHibernate.Cfg.MappingSchema.HbmCache cache; public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; } + public string cascade; public string Cascade { get => throw null; } + public string catalog; public string Catalog { get => throw null; } + public string check; public string Check { get => throw null; } + public string collectiontype; public string CollectionType { get => throw null; } - public object ElementRelationship { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } - public System.Collections.Generic.IEnumerable Filters { get => throw null; } - public bool? Generic { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmComment comment; public HbmSet() => throw null; + public object ElementRelationship { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; + public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; } + public bool fetchSpecified; + public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; + public System.Collections.Generic.IEnumerable Filters { get => throw null; } + public bool generic; + public bool? Generic { get => throw null; } + public bool genericSpecified; + public bool inverse; public bool Inverse { get => throw null; } public bool IsLazyProperty { get => throw null; } public object Item; - public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public bool Mutable { get => throw null; } - public string Name { get => throw null; } - public bool OptimisticLock { get => throw null; } - public string OrderBy { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } - public string PersisterQualifiedName { get => throw null; } - public string Schema { get => throw null; } - public string Sort { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public string Subselect { get => throw null; } - public string Table { get => throw null; } - public string Where { get => throw null; } - public string access; - public int batchsize; - public bool batchsizeSpecified; - public NHibernate.Cfg.MappingSchema.HbmCache cache; - public string cascade; - public string catalog; - public string check; - public string collectiontype; - public NHibernate.Cfg.MappingSchema.HbmComment comment; - public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch; - public bool fetchSpecified; - public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; - public bool generic; - public bool genericSpecified; - public bool inverse; public NHibernate.Cfg.MappingSchema.HbmKey key; + public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCollectionLazy lazy; + public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; } public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public bool mutable; + public bool Mutable { get => throw null; } public string name; + public string Name { get => throw null; } public string node; public bool optimisticlock; + public bool OptimisticLock { get => throw null; } public string orderby; + public string OrderBy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin; + public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; } public bool outerjoinSpecified; public string persister; + public string PersisterQualifiedName { get => throw null; } public string schema; + public string Schema { get => throw null; } public string sort; + public string Sort { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; public string table; + public string Table { get => throw null; } public string where; + public string Where { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmSqlQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmSqlQuery : NHibernate.Cfg.MappingSchema.HbmBase { - public string GetText() => throw null; - public HbmSqlQuery() => throw null; - public object[] Items; - public string[] Text; public bool cacheable; public NHibernate.Cfg.MappingSchema.HbmCacheMode cachemode; public bool cachemodeSpecified; public string cacheregion; public bool callable; public string comment; + public HbmSqlQuery() => throw null; public int fetchsize; public bool fetchsizeSpecified; public NHibernate.Cfg.MappingSchema.HbmFlushMode flushmode; public bool flushmodeSpecified; + public string GetText() => throw null; + public object[] Items; public string name; public bool @readonly; public bool readonlySpecified; public string resultsetref; + public string[] Text; public string timeout; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmSubclass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmSubclass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IEntityDiscriminableMapping, NHibernate.Cfg.MappingSchema.IDecoratable + public class HbmSubclass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntityDiscriminableMapping { - public int? BatchSize { get => throw null; } - public string DiscriminatorValue { get => throw null; } - public bool DynamicInsert { get => throw null; } - public bool DynamicUpdate { get => throw null; } - public string EntityName { get => throw null; } - public HbmSubclass() => throw null; - public bool? IsAbstract { get => throw null; } - public object[] Items; - public object[] Items1; - public System.Collections.Generic.IEnumerable Joins { get => throw null; } - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } - public string Node { get => throw null; } - public string Persister { get => throw null; } - public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public string Proxy { get => throw null; } - public bool SelectBeforeUpdate { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public System.Collections.Generic.IEnumerable Subclasses { get => throw null; } - public string Subselect { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; } - public bool? UseLazy { get => throw null; } public bool @abstract; public bool abstractSpecified; public string batchsize; + public int? BatchSize { get => throw null; } + public HbmSubclass() => throw null; public string discriminatorvalue; + public string DiscriminatorValue { get => throw null; } public bool dynamicinsert; + public bool DynamicInsert { get => throw null; } public bool dynamicupdate; + public bool DynamicUpdate { get => throw null; } public string entityname; + public string EntityName { get => throw null; } public string extends; public NHibernate.Cfg.MappingSchema.HbmFilter[] filter; + public bool? IsAbstract { get => throw null; } + public object[] Items; + public object[] Items1; public NHibernate.Cfg.MappingSchema.HbmJoin[] join; + public System.Collections.Generic.IEnumerable Joins { get => throw null; } public bool lazy; public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; + public string Name { get => throw null; } public string node; + public string Node { get => throw null; } public string persister; + public string Persister { get => throw null; } + public System.Collections.Generic.IEnumerable Properties { get => throw null; } public string proxy; + public string Proxy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmResultSet[] resultset; public bool selectbeforeupdate; + public bool SelectBeforeUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubclass[] subclass1; + public System.Collections.Generic.IEnumerable Subclasses { get => throw null; } + public string Subselect { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; + public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmTuplizer[] tuplizer; + public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; } + public bool? UseLazy { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmSubselect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmSubselect { public HbmSubselect() => throw null; public string[] Text; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmSynchronize` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmSynchronize { public HbmSynchronize() => throw null; public string table; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmTimestamp` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmTimestamp : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping { - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public HbmTimestamp() => throw null; - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string access; public string column; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmTimestamp() => throw null; public NHibernate.Cfg.MappingSchema.HbmVersionGeneration generated; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; public string node; public NHibernate.Cfg.MappingSchema.HbmTimestampSource source; public NHibernate.Cfg.MappingSchema.HbmTimestampUnsavedvalue unsavedvalue; public bool unsavedvalueSpecified; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmTimestampSource` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmTimestampSource { - Db, - Vm, + Vm = 0, + Db = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmTimestampUnsavedvalue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmTimestampUnsavedvalue { - Null, - Undefined, + Null = 0, + Undefined = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmTuplizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmTuplizer { - public HbmTuplizer() => throw null; public string @class; + public HbmTuplizer() => throw null; public NHibernate.Cfg.MappingSchema.HbmTuplizerEntitymode entitymode; public bool entitymodeSpecified; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmTuplizerEntitymode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmTuplizerEntitymode { - DynamicMap, - Poco, + Poco = 0, + DynamicMap = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmType { public HbmType() => throw null; public string name; public NHibernate.Cfg.MappingSchema.HbmParam[] param; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmTypedef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmTypedef { - public HbmTypedef() => throw null; public string @class; + public HbmTypedef() => throw null; public string name; public NHibernate.Cfg.MappingSchema.HbmParam[] param; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmUnionSubclass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HbmUnionSubclass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IDecoratable + public class HbmUnionSubclass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { - public int? BatchSize { get => throw null; } - public bool DynamicInsert { get => throw null; } - public bool DynamicUpdate { get => throw null; } - public string EntityName { get => throw null; } - public HbmUnionSubclass() => throw null; - public bool? IsAbstract { get => throw null; } - public object[] Items; - public object[] Items1; - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } - public string Name { get => throw null; } - public string Node { get => throw null; } - public string Persister { get => throw null; } - public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public string Proxy { get => throw null; } - public bool SelectBeforeUpdate { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } - public string Subselect { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; } - public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; } - public System.Collections.Generic.IEnumerable UnionSubclasses { get => throw null; } - public bool? UseLazy { get => throw null; } public bool @abstract; public bool abstractSpecified; public string batchsize; + public int? BatchSize { get => throw null; } public string catalog; public string check; public NHibernate.Cfg.MappingSchema.HbmComment comment; + public HbmUnionSubclass() => throw null; public bool dynamicinsert; + public bool DynamicInsert { get => throw null; } public bool dynamicupdate; + public bool DynamicUpdate { get => throw null; } public string entityname; + public string EntityName { get => throw null; } public string extends; + public bool? IsAbstract { get => throw null; } + public object[] Items; + public object[] Items1; public bool lazy; public bool lazySpecified; public NHibernate.Cfg.MappingSchema.HbmLoader loader; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; + public string Name { get => throw null; } public string node; + public string Node { get => throw null; } public string persister; + public string Persister { get => throw null; } + public System.Collections.Generic.IEnumerable Properties { get => throw null; } public string proxy; + public string Proxy { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmResultSet[] resultset; public string schema; public bool selectbeforeupdate; + public bool SelectBeforeUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; } + public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate; + public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmSubselect subselect; + public string Subselect { get => throw null; } public string subselect1; public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize; + public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; } public string table; public NHibernate.Cfg.MappingSchema.HbmTuplizer[] tuplizer; + public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; } public NHibernate.Cfg.MappingSchema.HbmUnionSubclass[] unionsubclass1; + public System.Collections.Generic.IEnumerable UnionSubclasses { get => throw null; } + public bool? UseLazy { get => throw null; } } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmUnsavedValueType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmUnsavedValueType { - Any, - None, - Undefined, + Undefined = 0, + Any = 1, + None = 2, } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmVersion` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HbmVersion : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping { - public System.Collections.Generic.IEnumerable Columns { get => throw null; } - public HbmVersion() => throw null; - protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string access; public NHibernate.Cfg.MappingSchema.HbmColumn[] column; public string column1; + public System.Collections.Generic.IEnumerable Columns { get => throw null; } + public HbmVersion() => throw null; public NHibernate.Cfg.MappingSchema.HbmVersionGeneration generated; public bool insert; public bool insertSpecified; public NHibernate.Cfg.MappingSchema.HbmMeta[] meta; + protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; } public string name; public string node; public string type; public string unsavedvalue; } - - // Generated from `NHibernate.Cfg.MappingSchema.HbmVersionGeneration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HbmVersionGeneration { - Always, - Never, + Never = 0, + Always = 1, } - - // Generated from `NHibernate.Cfg.MappingSchema.IAnyMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IAnyMapping { string MetaType { get; } System.Collections.Generic.ICollection MetaValues { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IAssemblyResourceFilter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IAssemblyResourceFilter { bool ShouldParse(string resourceName); } - - // Generated from `NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICollectionPropertiesMapping : NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping + public interface ICollectionPropertiesMapping : NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping { int? BatchSize { get; } NHibernate.Cfg.MappingSchema.HbmCache Cache { get; } @@ -6491,8 +4175,6 @@ namespace NHibernate string Table { get; } string Where { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionSqlsMapping { NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get; } @@ -6502,14 +4184,10 @@ namespace NHibernate NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get; } string Subselect { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IColumnsMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IColumnsMapping { System.Collections.Generic.IEnumerable Columns { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IComponentMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComponentMapping : NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { string Class { get; } @@ -6517,22 +4195,16 @@ namespace NHibernate string Name { get; } NHibernate.Cfg.MappingSchema.HbmParent Parent { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IDecoratable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDecoratable { System.Collections.Generic.IDictionary InheritableMetaData { get; } System.Collections.Generic.IDictionary MappedMetaData { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IEntityDiscriminableMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntityDiscriminableMapping { string DiscriminatorValue { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IEntityMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IEntityMapping : NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IDecoratable + public interface IEntityMapping : NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping { int? BatchSize { get; } bool DynamicInsert { get; } @@ -6548,8 +4220,6 @@ namespace NHibernate NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get; } bool? UseLazy { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IEntityPropertyMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntityPropertyMapping : NHibernate.Cfg.MappingSchema.IDecoratable { string Access { get; } @@ -6557,8 +4227,6 @@ namespace NHibernate string Name { get; } bool OptimisticLock { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IEntitySqlsMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntitySqlsMapping { NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get; } @@ -6567,103 +4235,218 @@ namespace NHibernate NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get; } string Subselect { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IFormulasMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IFormulasMapping { System.Collections.Generic.IEnumerable Formulas { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IIndexedCollectionMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IIndexedCollectionMapping { NHibernate.Cfg.MappingSchema.HbmIndex Index { get; } NHibernate.Cfg.MappingSchema.HbmListIndex ListIndex { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IMappingDocumentParser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMappingDocumentParser { NHibernate.Cfg.MappingSchema.HbmMapping Parse(System.IO.Stream stream); } - - // Generated from `NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IPropertiesContainerMapping { System.Collections.Generic.IEnumerable Properties { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IReferencePropertyMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IReferencePropertyMapping { string Cascade { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.IRelationship` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IRelationship { string Class { get; } string EntityName { get; } NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.ITypeMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ITypeMapping { NHibernate.Cfg.MappingSchema.HbmType Type { get; } } - - // Generated from `NHibernate.Cfg.MappingSchema.MappingDocumentAggregator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MappingDocumentAggregator { - public void Add(string fileName) => throw null; + public void Add(NHibernate.Cfg.MappingSchema.HbmMapping document) => throw null; + public void Add(System.IO.Stream stream) => throw null; public void Add(System.Reflection.Assembly assembly, string resourceName) => throw null; public void Add(System.Reflection.Assembly assembly, NHibernate.Cfg.MappingSchema.IAssemblyResourceFilter filter) => throw null; public void Add(System.Reflection.Assembly assembly) => throw null; - public void Add(System.IO.Stream stream) => throw null; public void Add(System.IO.FileInfo file) => throw null; - public void Add(NHibernate.Cfg.MappingSchema.HbmMapping document) => throw null; - public System.Collections.Generic.IList List() => throw null; - public MappingDocumentAggregator(NHibernate.Cfg.MappingSchema.IMappingDocumentParser parser, NHibernate.Cfg.MappingSchema.IAssemblyResourceFilter defaultFilter) => throw null; + public void Add(string fileName) => throw null; public MappingDocumentAggregator() => throw null; + public MappingDocumentAggregator(NHibernate.Cfg.MappingSchema.IMappingDocumentParser parser, NHibernate.Cfg.MappingSchema.IAssemblyResourceFilter defaultFilter) => throw null; + public System.Collections.Generic.IList List() => throw null; } - - // Generated from `NHibernate.Cfg.MappingSchema.MappingDocumentParser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MappingDocumentParser : NHibernate.Cfg.MappingSchema.IMappingDocumentParser { public MappingDocumentParser() => throw null; public NHibernate.Cfg.MappingSchema.HbmMapping Parse(System.IO.Stream stream) => throw null; } - - // Generated from `NHibernate.Cfg.MappingSchema.MappingExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class MappingExtensions + public static partial class MappingExtensions { public static NHibernate.EntityMode ToEntityMode(this NHibernate.Cfg.MappingSchema.HbmTuplizerEntitymode source) => throw null; } - + } + public class MappingsQueue + { + public void AddDocument(NHibernate.Cfg.NamedXmlDocument document) => throw null; + public void CheckNoUnavailableEntries() => throw null; + public MappingsQueue() => throw null; + public NHibernate.Cfg.NamedXmlDocument GetNextAvailableResource() => throw null; + } + public class MappingsQueueEntry + { + public System.Collections.Generic.ICollection ContainedClassNames { get => throw null; } + public MappingsQueueEntry(NHibernate.Cfg.NamedXmlDocument document, System.Collections.Generic.IEnumerable classEntries) => throw null; + public NHibernate.Cfg.NamedXmlDocument Document { get => throw null; } + public System.Collections.Generic.ICollection RequiredClassNames { get => throw null; } + public class RequiredEntityName + { + public RequiredEntityName(string entityName, string fullClassName) => throw null; + public string EntityName { get => throw null; } + public bool Equals(NHibernate.Cfg.MappingsQueueEntry.RequiredEntityName obj) => throw null; + public override bool Equals(object obj) => throw null; + public string FullClassName { get => throw null; } + public override int GetHashCode() => throw null; + public override string ToString() => throw null; + } + } + public class NamedXmlDocument + { + public NamedXmlDocument(string name, System.Xml.XmlDocument document) => throw null; + public NamedXmlDocument(string name, System.Xml.XmlDocument document, System.Xml.Serialization.XmlSerializer serializer) => throw null; + public NHibernate.Cfg.MappingSchema.HbmMapping Document { get => throw null; } + public string Name { get => throw null; } + } + public class SchemaAutoAction + { + public static NHibernate.Cfg.SchemaAutoAction Create; + public override bool Equals(object obj) => throw null; + public bool Equals(string other) => throw null; + public bool Equals(NHibernate.Cfg.SchemaAutoAction other) => throw null; + public override int GetHashCode() => throw null; + public static bool operator ==(string a, NHibernate.Cfg.SchemaAutoAction b) => throw null; + public static bool operator ==(NHibernate.Cfg.SchemaAutoAction a, string b) => throw null; + public static bool operator !=(NHibernate.Cfg.SchemaAutoAction a, string b) => throw null; + public static bool operator !=(string a, NHibernate.Cfg.SchemaAutoAction b) => throw null; + public static NHibernate.Cfg.SchemaAutoAction Recreate; + public override string ToString() => throw null; + public static NHibernate.Cfg.SchemaAutoAction Update; + public static NHibernate.Cfg.SchemaAutoAction Validate; + } + public delegate void SecondPassCommand(System.Collections.Generic.IDictionary persistentClasses); + public class SessionFactoryConfigurationBase : NHibernate.Cfg.ISessionFactoryConfiguration + { + public System.Collections.Generic.IList ClassesCache { get => throw null; } + public System.Collections.Generic.IList CollectionsCache { get => throw null; } + public SessionFactoryConfigurationBase() => throw null; + public System.Collections.Generic.IList Events { get => throw null; } + public System.Collections.Generic.IList Listeners { get => throw null; } + public System.Collections.Generic.IList Mappings { get => throw null; } + public string Name { get => throw null; set { } } + public System.Collections.Generic.IDictionary Properties { get => throw null; } + } + public sealed class Settings + { + public int AdoBatchSize { get => throw null; } + public bool AutoJoinTransaction { get => throw null; } + public NHibernate.AdoNet.IBatcherFactory BatcherFactory { get => throw null; } + public NHibernate.Loader.BatchFetchStyle BatchFetchStyle { get => throw null; } + public NHibernate.Loader.Collection.BatchingCollectionInitializerBuilder BatchingCollectionInitializationBuilder { get => throw null; } + public NHibernate.Loader.Entity.BatchingEntityLoaderBuilder BatchingEntityLoaderBuilder { get => throw null; } + public NHibernate.Cache.ICacheProvider CacheProvider { get => throw null; } + public NHibernate.Cache.ICacheReadWriteLockFactory CacheReadWriteLockFactory { get => throw null; } + public string CacheRegionPrefix { get => throw null; } + public NHibernate.Connection.IConnectionProvider ConnectionProvider { get => throw null; } + public NHibernate.ConnectionReleaseMode ConnectionReleaseMode { get => throw null; } + public Settings() => throw null; + public int DefaultBatchFetchSize { get => throw null; } + public string DefaultCatalogName { get => throw null; } + public NHibernate.FlushMode DefaultFlushMode { get => throw null; } + public string DefaultSchemaName { get => throw null; set { } } + public bool DetectFetchLoops { get => throw null; } + public NHibernate.Dialect.Dialect Dialect { get => throw null; } + public bool IsAutoCloseSessionEnabled { get => throw null; } + public bool IsAutoCreateSchema { get => throw null; } + public bool IsAutoDropSchema { get => throw null; } + public bool IsAutoQuoteEnabled { get => throw null; } + public bool IsAutoUpdateSchema { get => throw null; } + public bool IsAutoValidateSchema { get => throw null; } + public bool IsBatchVersionedDataEnabled { get => throw null; } + public bool IsCommentsEnabled { get => throw null; } + public bool IsDataDefinitionImplicitCommit { get => throw null; } + public bool IsDataDefinitionInTransactionSupported { get => throw null; } + public bool IsFlushBeforeCompletionEnabled { get => throw null; } + public bool IsGetGeneratedKeysEnabled { get => throw null; } + public bool IsIdentifierRollbackEnabled { get => throw null; } + public bool IsKeywordsImportEnabled { get => throw null; } + public bool IsMinimalPutsEnabled { get => throw null; } + public bool IsNamedQueryStartupCheckingEnabled { get => throw null; } + public System.Data.IsolationLevel IsolationLevel { get => throw null; } + public bool IsOrderInsertsEnabled { get => throw null; } + public bool IsOrderUpdatesEnabled { get => throw null; } + public bool IsOuterJoinFetchEnabled { get => throw null; } + public bool IsQueryCacheEnabled { get => throw null; } + public bool IsScrollableResultSetsEnabled { get => throw null; } + public bool IsSecondLevelCacheEnabled { get => throw null; } + public bool IsStatisticsEnabled { get => throw null; } + public bool IsStructuredCacheEntriesEnabled { get => throw null; } + public bool IsWrapResultSetsEnabled { get => throw null; } + public System.Type LinqQueryProviderType { get => throw null; } + public bool LinqToHqlFallbackOnPreEvaluation { get => throw null; } + public NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry LinqToHqlGeneratorsRegistry { get => throw null; } + public bool LinqToHqlLegacyPreEvaluation { get => throw null; } + public int MaximumFetchDepth { get => throw null; } + public NHibernate.MultiTenancy.IMultiTenancyConnectionProvider MultiTenancyConnectionProvider { get => throw null; } + public NHibernate.MultiTenancy.MultiTenancyStrategy MultiTenancyStrategy { get => throw null; } + public NHibernate.Linq.Visitors.IExpressionTransformerRegistrar PreTransformerRegistrar { get => throw null; } + public NHibernate.Cache.IQueryCacheFactory QueryCacheFactory { get => throw null; } + public NHibernate.Linq.Visitors.IQueryModelRewriterFactory QueryModelRewriterFactory { get => throw null; } + public int QueryPlanCacheMaxSize { get => throw null; } + public int QueryPlanCacheParameterMetadataMaxSize { get => throw null; } + public System.Collections.Generic.IDictionary QuerySubstitutions { get => throw null; } + public bool QueryThrowNeverCached { get => throw null; } + public NHibernate.Hql.IQueryTranslatorFactory QueryTranslatorFactory { get => throw null; } + public string SessionFactoryName { get => throw null; } + public NHibernate.Exceptions.ISQLExceptionConverter SqlExceptionConverter { get => throw null; } + public NHibernate.AdoNet.Util.SqlStatementLogger SqlStatementLogger { get => throw null; } + public bool ThrowOnSchemaUpdate { get => throw null; } + public bool TrackSessionId { get => throw null; } + public NHibernate.Transaction.ITransactionFactory TransactionFactory { get => throw null; } + } + public sealed class SettingsFactory + { + public NHibernate.Cfg.Settings BuildSettings(System.Collections.Generic.IDictionary properties) => throw null; + public SettingsFactory() => throw null; + } + public class SystemConfigurationProvider : NHibernate.Cfg.ConfigurationProvider + { + public SystemConfigurationProvider(System.Configuration.Configuration configuration) => throw null; + public override NHibernate.Cfg.IHibernateConfiguration GetConfiguration() => throw null; + public override string GetLoggerFactoryClassName() => throw null; + public override string GetNamedConnectionString(string name) => throw null; } namespace XmlHbmBinding { - // Generated from `NHibernate.Cfg.XmlHbmBinding.Binder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class Binder { - protected Binder(NHibernate.Cfg.Mappings mappings) => throw null; protected static System.Type ClassForFullNameChecked(string fullName, string errorMessage) => throw null; protected static System.Type ClassForNameChecked(string name, NHibernate.Cfg.Mappings mappings, string errorMessage) => throw null; + protected Binder(NHibernate.Cfg.Mappings mappings) => throw null; protected static System.Collections.Generic.IDictionary EmptyMeta; protected static string FullClassName(string className, NHibernate.Cfg.Mappings mappings) => throw null; protected static string FullQualifiedClassName(string className, NHibernate.Cfg.Mappings mappings) => throw null; protected static string GetClassName(string unqualifiedName, NHibernate.Cfg.Mappings mappings) => throw null; - public static System.Collections.Generic.IDictionary GetMetas(NHibernate.Cfg.MappingSchema.IDecoratable decoratable, System.Collections.Generic.IDictionary inheritedMeta, bool onlyInheritable) => throw null; public static System.Collections.Generic.IDictionary GetMetas(NHibernate.Cfg.MappingSchema.IDecoratable decoratable, System.Collections.Generic.IDictionary inheritedMeta) => throw null; + public static System.Collections.Generic.IDictionary GetMetas(NHibernate.Cfg.MappingSchema.IDecoratable decoratable, System.Collections.Generic.IDictionary inheritedMeta, bool onlyInheritable) => throw null; protected static string GetQualifiedClassName(string unqualifiedName, NHibernate.Cfg.Mappings mappings) => throw null; - public NHibernate.Cfg.Mappings Mappings { get => throw null; } - protected static bool NeedQualifiedClassName(string className) => throw null; protected static NHibernate.INHibernateLogger log; protected NHibernate.Cfg.Mappings mappings; + public NHibernate.Cfg.Mappings Mappings { get => throw null; } + protected static bool NeedQualifiedClassName(string className) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.ClassBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class ClassBinder : NHibernate.Cfg.XmlHbmBinding.Binder { protected void BindAny(NHibernate.Cfg.MappingSchema.HbmAny node, NHibernate.Mapping.Any model, bool isNullable) => throw null; @@ -6676,100 +4459,78 @@ namespace NHibernate protected void BindOneToOne(NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOneMapping, NHibernate.Mapping.OneToOne model) => throw null; protected void BindSubclasses(System.Collections.Generic.IEnumerable subclasses, NHibernate.Mapping.PersistentClass persistentClass, System.Collections.Generic.IDictionary inheritedMetas) => throw null; protected void BindUnionSubclasses(System.Collections.Generic.IEnumerable unionSubclasses, NHibernate.Mapping.PersistentClass persistentClass, System.Collections.Generic.IDictionary inheritedMetas) => throw null; - protected ClassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.Mappings)) => throw null; protected ClassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null; + protected ClassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.Mappings)) => throw null; protected ClassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; + protected NHibernate.Dialect.Dialect dialect; protected string GetClassTableName(NHibernate.Mapping.PersistentClass model, string mappedTableName) => throw null; protected static string GetEntityName(NHibernate.Cfg.MappingSchema.IRelationship relationship, NHibernate.Cfg.Mappings mappings) => throw null; - protected NHibernate.FetchMode GetFetchStyle(NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerJoinStrategyMapping) => throw null; protected NHibernate.FetchMode GetFetchStyle(NHibernate.Cfg.MappingSchema.HbmFetchMode fetchModeMapping) => throw null; + protected NHibernate.FetchMode GetFetchStyle(NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerJoinStrategyMapping) => throw null; protected static NHibernate.Engine.ExecuteUpdateResultCheckStyle GetResultCheckStyle(NHibernate.Cfg.MappingSchema.HbmCustomSQL customSQL) => throw null; protected NHibernate.Mapping.PersistentClass GetSuperclass(string extendsName) => throw null; protected static void InitLaziness(NHibernate.Cfg.MappingSchema.HbmRestrictedLaziness? restrictedLaziness, NHibernate.Mapping.ToOne fetchable, bool defaultLazy) => throw null; protected static void InitLaziness(NHibernate.Cfg.MappingSchema.HbmLaziness? laziness, NHibernate.Mapping.ToOne fetchable, bool defaultLazy) => throw null; - protected void InitOuterJoinFetchSetting(NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne, NHibernate.Mapping.OneToOne model) => throw null; protected void InitOuterJoinFetchSetting(NHibernate.Cfg.MappingSchema.HbmManyToMany manyToMany, NHibernate.Mapping.IFetchable model) => throw null; - protected NHibernate.Dialect.Dialect dialect; + protected void InitOuterJoinFetchSetting(NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne, NHibernate.Mapping.OneToOne model) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.ClassCompositeIdBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ClassCompositeIdBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder { public void BindCompositeId(NHibernate.Cfg.MappingSchema.HbmCompositeId idSchema, NHibernate.Mapping.PersistentClass rootClass) => throw null; - public ClassCompositeIdBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public ClassCompositeIdBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; + public ClassCompositeIdBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public ClassCompositeIdBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.ClassDiscriminatorBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ClassDiscriminatorBinder : NHibernate.Cfg.XmlHbmBinding.Binder { public void BindDiscriminator(NHibernate.Cfg.MappingSchema.HbmDiscriminator discriminatorSchema, NHibernate.Mapping.Table table) => throw null; public ClassDiscriminatorBinder(NHibernate.Mapping.PersistentClass rootClass, NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.ClassIdBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ClassIdBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder { public void BindId(NHibernate.Cfg.MappingSchema.HbmId idSchema, NHibernate.Mapping.PersistentClass rootClass, NHibernate.Mapping.Table table) => throw null; - public ClassIdBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public ClassIdBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; + public ClassIdBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public ClassIdBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.CollectionBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder { - public CollectionBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public CollectionBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; public NHibernate.Mapping.Collection Create(NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping collectionMapping, string className, string propertyFullPath, NHibernate.Mapping.PersistentClass owner, System.Type containingType, System.Collections.Generic.IDictionary inheritedMetas) => throw null; + public CollectionBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public CollectionBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.ColumnsBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ColumnsBinder : NHibernate.Cfg.XmlHbmBinding.Binder { - public void Bind(System.Collections.Generic.IEnumerable columns, bool isNullable, System.Func defaultColumnDelegate) => throw null; public void Bind(NHibernate.Cfg.MappingSchema.HbmColumn column, bool isNullable) => throw null; + public void Bind(System.Collections.Generic.IEnumerable columns, bool isNullable, System.Func defaultColumnDelegate) => throw null; public ColumnsBinder(NHibernate.Mapping.SimpleValue value, NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.FilterDefinitionFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FilterDefinitionFactory { public static NHibernate.Engine.FilterDefinition CreateFilterDefinition(NHibernate.Cfg.MappingSchema.HbmFilterDef filterDefSchema) => throw null; public FilterDefinitionFactory() => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.FiltersBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FiltersBinder : NHibernate.Cfg.XmlHbmBinding.Binder { - public void Bind(System.Collections.Generic.IEnumerable filters, System.Action addFilterDelegate) => throw null; public void Bind(System.Collections.Generic.IEnumerable filters) => throw null; + public void Bind(System.Collections.Generic.IEnumerable filters, System.Action addFilterDelegate) => throw null; public FiltersBinder(NHibernate.Mapping.IFilterable filterable, NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.IdGeneratorBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class IdGeneratorBinder : NHibernate.Cfg.XmlHbmBinding.Binder { public void BindGenerator(NHibernate.Mapping.SimpleValue id, NHibernate.Cfg.MappingSchema.HbmGenerator generatorMapping) => throw null; public IdGeneratorBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.JoinedSubclassBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class JoinedSubclassBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder { public void Bind(NHibernate.Cfg.MappingSchema.HbmJoinedSubclass joinedSubclassMapping, System.Collections.Generic.IDictionary inheritedMetas) => throw null; + public JoinedSubclassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public JoinedSubclassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public JoinedSubclassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; public void HandleJoinedSubclass(NHibernate.Mapping.PersistentClass model, NHibernate.Cfg.MappingSchema.HbmJoinedSubclass joinedSubclassMapping, System.Collections.Generic.IDictionary inheritedMetas) => throw null; - public JoinedSubclassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public JoinedSubclassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public JoinedSubclassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.MappingLogExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class MappingLogExtensions + public static partial class MappingLogExtensions { public static void LogMapped(this NHibernate.Mapping.Property property, NHibernate.INHibernateLogger log) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.MappingRootBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MappingRootBinder : NHibernate.Cfg.XmlHbmBinding.Binder { public void AddImports(NHibernate.Cfg.MappingSchema.HbmMapping mappingSchema) => throw null; @@ -6778,102 +4539,82 @@ namespace NHibernate public MappingRootBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null; public MappingRootBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.NamedQueryBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NamedQueryBinder : NHibernate.Cfg.XmlHbmBinding.Binder { public void AddQuery(NHibernate.Cfg.MappingSchema.HbmQuery querySchema) => throw null; public NamedQueryBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.NamedSQLQueryBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NamedSQLQueryBinder : NHibernate.Cfg.XmlHbmBinding.Binder { public void AddSqlQuery(NHibernate.Cfg.MappingSchema.HbmSqlQuery querySchema) => throw null; public NamedSQLQueryBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.PropertiesBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PropertiesBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder { - public void Bind(System.Collections.Generic.IEnumerable properties, System.Collections.Generic.IDictionary inheritedMetas, System.Action modifier) => throw null; public void Bind(System.Collections.Generic.IEnumerable properties, System.Collections.Generic.IDictionary inheritedMetas) => throw null; + public void Bind(System.Collections.Generic.IEnumerable properties, System.Collections.Generic.IDictionary inheritedMetas, System.Action modifier) => throw null; public void Bind(System.Collections.Generic.IEnumerable properties, NHibernate.Mapping.Table table, System.Collections.Generic.IDictionary inheritedMetas, System.Action modifier, System.Action addToModelAction) => throw null; - public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.PersistentClass persistentClass) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.Component component, string className, string path, bool isNullable, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.Component component, string className, string path, bool isNullable) : base(default(NHibernate.Cfg.Mappings)) => throw null; + public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.Component component, string className, string path, bool isNullable, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.PersistentClass persistentClass) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.Component component, string className, string path, bool isNullable) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.ResultSetMappingBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ResultSetMappingBinder : NHibernate.Cfg.XmlHbmBinding.Binder { - public NHibernate.Engine.ResultSetMappingDefinition Create(NHibernate.Cfg.MappingSchema.HbmSqlQuery sqlQuerySchema) => throw null; public NHibernate.Engine.ResultSetMappingDefinition Create(NHibernate.Cfg.MappingSchema.HbmResultSet resultSetSchema) => throw null; + public NHibernate.Engine.ResultSetMappingDefinition Create(NHibernate.Cfg.MappingSchema.HbmSqlQuery sqlQuerySchema) => throw null; public ResultSetMappingBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.RootClassBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class RootClassBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder { public void Bind(NHibernate.Cfg.MappingSchema.HbmClass classSchema, System.Collections.Generic.IDictionary inheritedMetas) => throw null; - public RootClassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public RootClassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; + public RootClassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public RootClassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.SubclassBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SubclassBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder { public void Bind(NHibernate.Cfg.MappingSchema.HbmSubclass subClassMapping, System.Collections.Generic.IDictionary inheritedMetas) => throw null; + public SubclassBinder(NHibernate.Cfg.XmlHbmBinding.Binder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public SubclassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public SubclassBinder(NHibernate.Cfg.XmlHbmBinding.Binder parent, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public SubclassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; public void HandleSubclass(NHibernate.Mapping.PersistentClass model, NHibernate.Cfg.MappingSchema.HbmSubclass subClassMapping, System.Collections.Generic.IDictionary inheritedMetas) => throw null; - public SubclassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public SubclassBinder(NHibernate.Cfg.XmlHbmBinding.Binder parent, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public SubclassBinder(NHibernate.Cfg.XmlHbmBinding.Binder parent) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public SubclassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.TypeBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TypeBinder : NHibernate.Cfg.XmlHbmBinding.Binder { public void Bind(string typeName) => throw null; public void Bind(NHibernate.Cfg.MappingSchema.HbmType typeMapping) => throw null; public TypeBinder(NHibernate.Mapping.SimpleValue value, NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.UnionSubclassBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class UnionSubclassBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder { public void Bind(NHibernate.Cfg.MappingSchema.HbmUnionSubclass unionSubclassMapping, System.Collections.Generic.IDictionary inheritedMetas) => throw null; + public UnionSubclassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public UnionSubclassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; + public UnionSubclassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null; public void HandleUnionSubclass(NHibernate.Mapping.PersistentClass model, NHibernate.Cfg.MappingSchema.HbmUnionSubclass unionSubclassMapping, System.Collections.Generic.IDictionary inheritedMetas) => throw null; - public UnionSubclassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public UnionSubclassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null; - public UnionSubclassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - - // Generated from `NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ValuePropertyBinder : NHibernate.Cfg.XmlHbmBinding.Binder { public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmProperty propertyMapping, string propertyPath, bool isNullable) => throw null; - public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmMapKeyManyToMany mapKeyManyToManyMapping, string propertyPath, bool isNullable) => throw null; + public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmElement element, string propertyPath, bool isNullable) => throw null; + public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmKey propertyMapping, string propertyPath, bool isNullable) => throw null; + public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmManyToMany manyToManyMapping, string propertyPath, bool isNullable) => throw null; + public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmCollectionId collectionIdMapping, string propertyPath) => throw null; + public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmListIndex listIndexMapping, string propertyPath, bool isNullable) => throw null; + public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmIndex indexMapping, string propertyPath, bool isNullable) => throw null; public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmMapKey mapKeyMapping, string propertyPath, bool isNullable) => throw null; public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmManyToOne manyToOneMapping, string propertyPath, bool isNullable) => throw null; - public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmManyToMany manyToManyMapping, string propertyPath, bool isNullable) => throw null; - public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmListIndex listIndexMapping, string propertyPath, bool isNullable) => throw null; + public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmIndexManyToMany indexManyToManyMapping, string propertyPath, bool isNullable) => throw null; + public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmMapKeyManyToMany mapKeyManyToManyMapping, string propertyPath, bool isNullable) => throw null; public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmKeyProperty mapKeyManyToManyMapping, string propertyPath, bool isNullable) => throw null; public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmKeyManyToOne mapKeyManyToManyMapping, string propertyPath, bool isNullable) => throw null; - public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmKey propertyMapping, string propertyPath, bool isNullable) => throw null; - public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmIndexManyToMany indexManyToManyMapping, string propertyPath, bool isNullable) => throw null; - public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmIndex indexMapping, string propertyPath, bool isNullable) => throw null; - public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmElement element, string propertyPath, bool isNullable) => throw null; - public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmCollectionId collectionIdMapping, string propertyPath) => throw null; public ValuePropertyBinder(NHibernate.Mapping.SimpleValue value, NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null; } - } } namespace Classic { - // Generated from `NHibernate.Classic.ILifecycle` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ILifecycle { NHibernate.Classic.LifecycleVeto OnDelete(NHibernate.ISession s); @@ -6881,46 +4622,38 @@ namespace NHibernate NHibernate.Classic.LifecycleVeto OnSave(NHibernate.ISession s); NHibernate.Classic.LifecycleVeto OnUpdate(NHibernate.ISession s); } - - // Generated from `NHibernate.Classic.IValidatable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IValidatable { void Validate(); } - - // Generated from `NHibernate.Classic.LifecycleVeto` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum LifecycleVeto { - NoVeto, - Veto, + Veto = 0, + NoVeto = 1, } - - // Generated from `NHibernate.Classic.ValidationFailure` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ValidationFailure : NHibernate.HibernateException { - public ValidationFailure(string message, System.Exception innerException) => throw null; + public ValidationFailure() => throw null; public ValidationFailure(string message) => throw null; public ValidationFailure(System.Exception innerException) => throw null; - public ValidationFailure() => throw null; + public ValidationFailure(string message, System.Exception innerException) => throw null; protected ValidationFailure(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - } namespace Collection { - // Generated from `NHibernate.Collection.AbstractPersistentCollection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractPersistentCollection : NHibernate.Collection.IPersistentCollection, NHibernate.Collection.ILazyInitializedCollection { - protected AbstractPersistentCollection(NHibernate.Engine.ISessionImplementor session) => throw null; - protected AbstractPersistentCollection() => throw null; public virtual bool AfterInitialize(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; public virtual void AfterRowInsert(NHibernate.Persister.Collection.ICollectionPersister persister, object entry, int i, object id) => throw null; public virtual void ApplyQueuedOperations() => throw null; public abstract void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize); public virtual void BeginRead() => throw null; - protected int CachedSize { get => throw null; set => throw null; } + protected int CachedSize { get => throw null; set { } } public void ClearDirty() => throw null; protected bool ClearQueueEnabled { get => throw null; } + protected AbstractPersistentCollection() => throw null; + protected AbstractPersistentCollection(NHibernate.Engine.ISessionImplementor session) => throw null; public void Dirty() => throw null; public abstract object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister); public abstract System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken); @@ -6939,24 +4672,21 @@ namespace NHibernate public abstract object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister); public abstract System.Collections.ICollection GetOrphans(object snapshot, string entityName); protected virtual System.Collections.ICollection GetOrphans(System.Collections.ICollection oldElements, System.Collections.ICollection currentElements, string entityName, NHibernate.Engine.ISessionImplementor session) => throw null; - public abstract System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken); protected virtual System.Threading.Tasks.Task GetOrphansAsync(System.Collections.ICollection oldElements, System.Collections.ICollection currentElements, string entityName, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public abstract System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken); public System.Collections.ICollection GetQueuedOrphans(string entityName) => throw null; public System.Threading.Tasks.Task GetQueuedOrphansAsync(string entityName, System.Threading.CancellationToken cancellationToken) => throw null; - public abstract object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister); protected virtual object GetSnapshot() => throw null; + public abstract object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister); public abstract object GetSnapshotElement(object entry, int i); public virtual object GetValue() => throw null; public bool HasQueuedOperations { get => throw null; } - // Generated from `NHibernate.Collection.AbstractPersistentCollection+IDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` protected interface IDelayedOperation { object AddedInstance { get; } void Operate(); object Orphan { get; } } - - public void IdentityRemove(System.Collections.IList list, object obj, string entityName, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task IdentityRemoveAsync(System.Collections.IList list, object obj, string entityName, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual void Initialize(bool writing) => throw null; @@ -6966,7 +4696,7 @@ namespace NHibernate protected bool InverseCollectionNoOrphanDelete { get => throw null; } protected bool InverseOneToManyOrNoOrphanDelete { get => throw null; } protected bool IsConnectedToSession { get => throw null; } - public virtual bool IsDirectlyAccessible { get => throw null; set => throw null; } + public virtual bool IsDirectlyAccessible { get => throw null; set { } } public bool IsDirty { get => throw null; } protected bool IsInverseCollection { get => throw null; } protected bool IsOperationQueueEnabled { get => throw null; } @@ -6979,8 +4709,8 @@ namespace NHibernate public virtual bool NeedsRecreate(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; public abstract bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType); public abstract System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken); - protected internal static object NotFound; - public virtual object Owner { get => throw null; set => throw null; } + protected static object NotFound; + public virtual object Owner { get => throw null; set { } } protected virtual void PerformQueuedOperations() => throw null; public virtual void PostAction() => throw null; public virtual void PreInsert(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; @@ -6990,17 +4720,17 @@ namespace NHibernate protected void QueueAddElementAtIndex(int index, T element) => throw null; protected void QueueAddElementByKey(TKey elementKey, TValue element) => throw null; protected void QueueClearCollection() => throw null; + public System.Collections.IEnumerable QueuedAdditionIterator { get => throw null; } protected virtual void QueueOperation(NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation element) => throw null; protected void QueueRemoveElementAtIndex(int index, T element) => throw null; protected bool QueueRemoveElementByKey(TKey elementKey, TValue oldElement, bool? existsInDb) => throw null; protected void QueueRemoveExistingElement(T element, bool? existsInDb) => throw null; protected void QueueSetElementAtIndex(int index, T element, T oldElement) => throw null; protected void QueueSetElementByKey(TKey elementKey, TValue element, TValue oldElement, bool? existsInDb) => throw null; - public System.Collections.IEnumerable QueuedAdditionIterator { get => throw null; } public virtual void Read() => throw null; protected virtual object ReadElementByIndex(object index) => throw null; - protected virtual bool? ReadElementExistence(T element, out bool? existsInDb) => throw null; protected virtual bool? ReadElementExistence(object element) => throw null; + protected virtual bool? ReadElementExistence(T element, out bool? existsInDb) => throw null; public abstract object ReadFrom(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner); public abstract System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken); protected virtual bool? ReadIndexExistence(object index) => throw null; @@ -7018,21 +4748,415 @@ namespace NHibernate protected void ThrowLazyInitializationExceptionIfNotConnected() => throw null; protected virtual bool? TryReadElementAtIndex(int index, out T element) => throw null; protected virtual bool? TryReadElementByKey(TKey elementKey, out TValue element, out bool? existsInDb) => throw null; - protected internal static object Unknown; + protected static object Unknown; public bool UnsetSession(NHibernate.Engine.ISessionImplementor currentSession) => throw null; public bool WasInitialized { get => throw null; } protected virtual void Write() => throw null; } - - // Generated from `NHibernate.Collection.ILazyInitializedCollection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace Generic + { + public class PersistentGenericBag : NHibernate.Collection.AbstractPersistentCollection, System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlyCollection, System.Collections.IList, System.Collections.ICollection, System.Linq.IQueryable, System.Linq.IQueryable + { + int System.Collections.IList.Add(object value) => throw null; + public void Add(T item) => throw null; + public override void ApplyQueuedOperations() => throw null; + public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; + public void Clear() => throw null; + bool System.Collections.IList.Contains(object value) => throw null; + public bool Contains(T item) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; + public void CopyTo(T[] array, int arrayIndex) => throw null; + public int Count { get => throw null; } + public PersistentGenericBag() => throw null; + public PersistentGenericBag(NHibernate.Engine.ISessionImplementor session) => throw null; + public PersistentGenericBag(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IEnumerable coll) => throw null; + public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + System.Type System.Linq.IQueryable.ElementType { get => throw null; } + public override bool Empty { get => throw null; } + public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override bool EntryExists(object entry, int i) => throw null; + public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; } + public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null; + public override System.Threading.Tasks.Task GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null; + public override object GetElement(object entry) => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null; + public override System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null; + public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override object GetSnapshotElement(object entry, int i) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; + public int IndexOf(T item) => throw null; + public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null; + public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + void System.Collections.IList.Insert(int index, object value) => throw null; + public void Insert(int index, T item) => throw null; + protected System.Collections.Generic.IList InternalBag { get => throw null; set { } } + bool System.Collections.IList.IsFixedSize { get => throw null; } + public bool IsReadOnly { get => throw null; } + public override bool IsSnapshotEmpty(object snapshot) => throw null; + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + public override bool IsWrapper(object collection) => throw null; + object System.Collections.IList.this[int index] { get => throw null; set { } } + public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null; + public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool NeedsRecreate(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; + public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; + System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; } + public override object ReadFrom(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; + public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + void System.Collections.IList.Remove(object value) => throw null; + public bool Remove(T item) => throw null; + public void RemoveAt(int index) => throw null; + public override bool RowUpdatePossible { get => throw null; } + object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; set { } } + public override string ToString() => throw null; + } + public class PersistentGenericList : NHibernate.Collection.AbstractPersistentCollection, System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlyCollection, System.Collections.IList, System.Collections.ICollection, System.Linq.IQueryable, System.Linq.IQueryable + { + int System.Collections.IList.Add(object value) => throw null; + public void Add(T item) => throw null; + protected sealed class AddDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public AddDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance, int index, T value) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + public override void ApplyQueuedOperations() => throw null; + public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; + public void Clear() => throw null; + protected sealed class ClearDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public ClearDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + bool System.Collections.IList.Contains(object value) => throw null; + public bool Contains(T item) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; + public void CopyTo(T[] array, int arrayIndex) => throw null; + public int Count { get => throw null; } + public PersistentGenericList() => throw null; + public PersistentGenericList(NHibernate.Engine.ISessionImplementor session) => throw null; + public PersistentGenericList(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IList list) => throw null; + protected virtual T DefaultForType { get => throw null; } + public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + System.Type System.Linq.IQueryable.ElementType { get => throw null; } + public override bool Empty { get => throw null; } + public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override bool EntryExists(object entry, int i) => throw null; + public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; } + public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null; + public override System.Threading.Tasks.Task GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null; + public override object GetElement(object entry) => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null; + public override System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null; + public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override object GetSnapshotElement(object entry, int i) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; + public int IndexOf(T item) => throw null; + public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null; + public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + void System.Collections.IList.Insert(int index, object value) => throw null; + public void Insert(int index, T item) => throw null; + bool System.Collections.IList.IsFixedSize { get => throw null; } + bool System.Collections.IList.IsReadOnly { get => throw null; } + bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } + public override bool IsSnapshotEmpty(object snapshot) => throw null; + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + public override bool IsWrapper(object collection) => throw null; + object System.Collections.IList.this[int index] { get => throw null; set { } } + public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null; + public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; + public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; + System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; } + public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; + public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + void System.Collections.IList.Remove(object value) => throw null; + public bool Remove(T item) => throw null; + public void RemoveAt(int index) => throw null; + protected sealed class RemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public RemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance, int index, object old) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + protected sealed class SetDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public SetDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance, int index, T value, object old) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + protected sealed class SimpleAddDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public SimpleAddDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance, T value) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + protected sealed class SimpleRemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public SimpleRemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance, T value) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; set { } } + public override string ToString() => throw null; + protected System.Collections.Generic.IList WrappedList; + } + public class PersistentGenericMap : NHibernate.Collection.AbstractPersistentCollection, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.ICollection + { + public void Add(TKey key, TValue value) => throw null; + public void Add(System.Collections.Generic.KeyValuePair item) => throw null; + protected virtual void AddDuringInitialize(object index, object element) => throw null; + public override void ApplyQueuedOperations() => throw null; + public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; + public void Clear() => throw null; + protected sealed class ClearDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public ClearDelayedOperation(NHibernate.Collection.Generic.PersistentGenericMap enclosingInstance) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; + public bool ContainsKey(TKey key) => throw null; + public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; + public void CopyTo(System.Array array, int arrayIndex) => throw null; + public int Count { get => throw null; } + public PersistentGenericMap() => throw null; + public PersistentGenericMap(NHibernate.Engine.ISessionImplementor session) => throw null; + public PersistentGenericMap(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IDictionary map) => throw null; + public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool Empty { get => throw null; } + public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override bool EntryExists(object entry, int i) => throw null; + public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null; + public override System.Threading.Tasks.Task GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null; + public override object GetElement(object entry) => throw null; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null; + public override System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null; + public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override object GetSnapshotElement(object entry, int i) => throw null; + public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null; + public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public bool IsReadOnly { get => throw null; } + public override bool IsSnapshotEmpty(object snapshot) => throw null; + public bool IsSynchronized { get => throw null; } + public override bool IsWrapper(object collection) => throw null; + public System.Collections.Generic.ICollection Keys { get => throw null; } + System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } + public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null; + public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; + public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; + protected sealed class PutDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public PutDelayedOperation(NHibernate.Collection.Generic.PersistentGenericMap enclosingInstance, TKey index, TValue value, object old) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; + public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public bool Remove(TKey key) => throw null; + public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; + protected sealed class RemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public RemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericMap enclosingInstance, TKey index, object old) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + public object SyncRoot { get => throw null; } + public TValue this[TKey key] { get => throw null; set { } } + public override string ToString() => throw null; + public bool TryGetValue(TKey key, out TValue value) => throw null; + public System.Collections.Generic.ICollection Values { get => throw null; } + System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } + protected System.Collections.Generic.IDictionary WrappedMap; + } + public class PersistentGenericSet : NHibernate.Collection.AbstractPersistentCollection, System.Collections.Generic.ISet, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Linq.IQueryable, System.Linq.IQueryable + { + public bool Add(T o) => throw null; + void System.Collections.Generic.ICollection.Add(T item) => throw null; + public override void ApplyQueuedOperations() => throw null; + public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; + public override void BeginRead() => throw null; + public void Clear() => throw null; + protected sealed class ClearDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public ClearDelayedOperation(NHibernate.Collection.Generic.PersistentGenericSet enclosingInstance) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + public bool Contains(T item) => throw null; + public void CopyTo(T[] array, int arrayIndex) => throw null; + public int Count { get => throw null; } + public PersistentGenericSet() => throw null; + public PersistentGenericSet(NHibernate.Engine.ISessionImplementor session) => throw null; + public PersistentGenericSet(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet original) => throw null; + public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + System.Type System.Linq.IQueryable.ElementType { get => throw null; } + public override bool Empty { get => throw null; } + public override bool EndRead(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override bool EntryExists(object entry, int i) => throw null; + public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + public void ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; + System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; } + public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null; + public override System.Threading.Tasks.Task GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null; + public override object GetElement(object entry) => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null; + public override System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null; + public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override object GetSnapshotElement(object entry, int i) => throw null; + public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null; + public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public void IntersectWith(System.Collections.Generic.IEnumerable other) => throw null; + public bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; + public bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; + public bool IsReadOnly { get => throw null; } + public override bool IsSnapshotEmpty(object snapshot) => throw null; + public bool IsSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; + public bool IsSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; + public bool IsSynchronized { get => throw null; } + public override bool IsWrapper(object collection) => throw null; + public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null; + public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; + public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; + public bool Overlaps(System.Collections.Generic.IEnumerable other) => throw null; + System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; } + public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; + public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public bool Remove(T o) => throw null; + public override bool RowUpdatePossible { get => throw null; } + public bool SetEquals(System.Collections.Generic.IEnumerable other) => throw null; + protected sealed class SimpleAddDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public SimpleAddDelayedOperation(NHibernate.Collection.Generic.PersistentGenericSet enclosingInstance, T value) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + protected sealed class SimpleRemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation + { + public object AddedInstance { get => throw null; } + public SimpleRemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericSet enclosingInstance, T value) => throw null; + public void Operate() => throw null; + public object Orphan { get => throw null; } + } + public void SymmetricExceptWith(System.Collections.Generic.IEnumerable other) => throw null; + public object SyncRoot { get => throw null; } + public override string ToString() => throw null; + public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; + protected System.Collections.Generic.ISet WrappedSet; + } + public class PersistentIdentifierBag : NHibernate.Collection.AbstractPersistentCollection, System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlyCollection, System.Collections.IList, System.Collections.ICollection, System.Linq.IQueryable, System.Linq.IQueryable + { + int System.Collections.IList.Add(object value) => throw null; + public void Add(T item) => throw null; + public override void AfterRowInsert(NHibernate.Persister.Collection.ICollectionPersister persister, object entry, int i, object id) => throw null; + public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; + protected void BeforeInsert(int index) => throw null; + protected void BeforeRemove(int index) => throw null; + public void Clear() => throw null; + bool System.Collections.IList.Contains(object value) => throw null; + public bool Contains(T item) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; + public void CopyTo(T[] array, int arrayIndex) => throw null; + public int Count { get => throw null; } + public PersistentIdentifierBag() => throw null; + public PersistentIdentifierBag(NHibernate.Engine.ISessionImplementor session) => throw null; + public PersistentIdentifierBag(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IEnumerable coll) => throw null; + public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + System.Type System.Linq.IQueryable.ElementType { get => throw null; } + public override bool Empty { get => throw null; } + public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override bool EntryExists(object entry, int i) => throw null; + public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; } + public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null; + public override System.Threading.Tasks.Task GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null; + public override object GetElement(object entry) => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + public override object GetIdentifier(object entry, int i) => throw null; + public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null; + public override System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null; + public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override object GetSnapshotElement(object entry, int i) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; + public int IndexOf(T item) => throw null; + public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null; + public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + void System.Collections.IList.Insert(int index, object value) => throw null; + public void Insert(int index, T item) => throw null; + protected System.Collections.Generic.IList InternalValues { get => throw null; set { } } + bool System.Collections.IList.IsFixedSize { get => throw null; } + public bool IsReadOnly { get => throw null; } + public override bool IsSnapshotEmpty(object snapshot) => throw null; + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + public override bool IsWrapper(object collection) => throw null; + object System.Collections.IList.this[int index] { get => throw null; set { } } + public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null; + public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; + public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; + public override void PreInsert(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public override System.Threading.Tasks.Task PreInsertAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; } + public override object ReadFrom(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; + public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + void System.Collections.IList.Remove(object value) => throw null; + public bool Remove(T item) => throw null; + public void RemoveAt(int index) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + public T this[int index] { get => throw null; set { } } + } + } public interface ILazyInitializedCollection { void ForceInitialization(); System.Threading.Tasks.Task ForceInitializationAsync(System.Threading.CancellationToken cancellationToken); bool WasInitialized { get; } } - - // Generated from `NHibernate.Collection.IPersistentCollection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IPersistentCollection { bool AfterInitialize(NHibernate.Persister.Collection.ICollectionPersister persister); @@ -7092,15 +5216,15 @@ namespace NHibernate bool UnsetSession(NHibernate.Engine.ISessionImplementor currentSession); bool WasInitialized { get; } } - - // Generated from `NHibernate.Collection.PersistentArrayHolder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PersistentArrayHolder : NHibernate.Collection.AbstractPersistentCollection, System.Collections.IEnumerable, System.Collections.ICollection + public class PersistentArrayHolder : NHibernate.Collection.AbstractPersistentCollection, System.Collections.ICollection, System.Collections.IEnumerable { - public object Array { get => throw null; set => throw null; } + public object Array { get => throw null; set { } } public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; public override void BeginRead() => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; int System.Collections.ICollection.Count { get => throw null; } + public PersistentArrayHolder(NHibernate.Engine.ISessionImplementor session, object array) => throw null; + public PersistentArrayHolder(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; public System.Collections.ICollection Elements() => throw null; @@ -7130,504 +5254,41 @@ namespace NHibernate public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public PersistentArrayHolder(NHibernate.Engine.ISessionImplementor session, object array) => throw null; - public PersistentArrayHolder(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } } - - // Generated from `NHibernate.Collection.PersistentCollectionExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class PersistentCollectionExtensions + public static partial class PersistentCollectionExtensions { public static void ApplyQueuedOperations(this NHibernate.Collection.IPersistentCollection collection) => throw null; } - - namespace Generic - { - // Generated from `NHibernate.Collection.Generic.PersistentGenericBag<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PersistentGenericBag : NHibernate.Collection.AbstractPersistentCollection, System.Linq.IQueryable, System.Linq.IQueryable, System.Collections.IList, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection - { - public void Add(T item) => throw null; - int System.Collections.IList.Add(object value) => throw null; - public override void ApplyQueuedOperations() => throw null; - public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; - public void Clear() => throw null; - public bool Contains(T item) => throw null; - bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; - public void CopyTo(T[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - System.Type System.Linq.IQueryable.ElementType { get => throw null; } - public override bool Empty { get => throw null; } - public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override bool EntryExists(object entry, int i) => throw null; - public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; } - public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null; - public override System.Threading.Tasks.Task GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null; - public override object GetElement(object entry) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null; - public override System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null; - public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override object GetSnapshotElement(object entry, int i) => throw null; - public int IndexOf(T item) => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; - public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null; - public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; - public void Insert(int index, T item) => throw null; - protected System.Collections.Generic.IList InternalBag { get => throw null; set => throw null; } - bool System.Collections.IList.IsFixedSize { get => throw null; } - public bool IsReadOnly { get => throw null; } - public override bool IsSnapshotEmpty(object snapshot) => throw null; - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public override bool IsWrapper(object collection) => throw null; - public T this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null; - public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public override bool NeedsRecreate(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; - public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public PersistentGenericBag(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IEnumerable coll) => throw null; - public PersistentGenericBag(NHibernate.Engine.ISessionImplementor session) => throw null; - public PersistentGenericBag() => throw null; - System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; } - public override object ReadFrom(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; - public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - void System.Collections.IList.Remove(object value) => throw null; - public bool Remove(T item) => throw null; - public void RemoveAt(int index) => throw null; - public override bool RowUpdatePossible { get => throw null; } - object System.Collections.ICollection.SyncRoot { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Collection.Generic.PersistentGenericList<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PersistentGenericList : NHibernate.Collection.AbstractPersistentCollection, System.Linq.IQueryable, System.Linq.IQueryable, System.Collections.IList, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection - { - public void Add(T item) => throw null; - int System.Collections.IList.Add(object value) => throw null; - // Generated from `NHibernate.Collection.Generic.PersistentGenericList<>+AddDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class AddDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public AddDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance, int index, T value) => throw null; - public object AddedInstance { get => throw null; } - public void Operate() => throw null; - public object Orphan { get => throw null; } - } - - - public override void ApplyQueuedOperations() => throw null; - public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; - public void Clear() => throw null; - // Generated from `NHibernate.Collection.Generic.PersistentGenericList<>+ClearDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class ClearDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public ClearDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance) => throw null; - public void Operate() => throw null; - public object Orphan { get => throw null; } - } - - - public bool Contains(T item) => throw null; - bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; - public void CopyTo(T[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - protected virtual T DefaultForType { get => throw null; } - public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - System.Type System.Linq.IQueryable.ElementType { get => throw null; } - public override bool Empty { get => throw null; } - public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override bool EntryExists(object entry, int i) => throw null; - public override bool Equals(object obj) => throw null; - public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; } - public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null; - public override System.Threading.Tasks.Task GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null; - public override object GetElement(object entry) => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - public override int GetHashCode() => throw null; - public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null; - public override System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null; - public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override object GetSnapshotElement(object entry, int i) => throw null; - public int IndexOf(T item) => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; - public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null; - public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; - public void Insert(int index, T item) => throw null; - bool System.Collections.IList.IsFixedSize { get => throw null; } - bool System.Collections.IList.IsReadOnly { get => throw null; } - bool System.Collections.Generic.ICollection.IsReadOnly { get => throw null; } - public override bool IsSnapshotEmpty(object snapshot) => throw null; - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public override bool IsWrapper(object collection) => throw null; - public T this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null; - public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; - public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public PersistentGenericList(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IList list) => throw null; - public PersistentGenericList(NHibernate.Engine.ISessionImplementor session) => throw null; - public PersistentGenericList() => throw null; - System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; } - public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; - public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - void System.Collections.IList.Remove(object value) => throw null; - public bool Remove(T item) => throw null; - public void RemoveAt(int index) => throw null; - // Generated from `NHibernate.Collection.Generic.PersistentGenericList<>+RemoveDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class RemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public void Operate() => throw null; - public object Orphan { get => throw null; } - public RemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance, int index, object old) => throw null; - } - - - // Generated from `NHibernate.Collection.Generic.PersistentGenericList<>+SetDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class SetDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public void Operate() => throw null; - public object Orphan { get => throw null; } - public SetDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance, int index, T value, object old) => throw null; - } - - - // Generated from `NHibernate.Collection.Generic.PersistentGenericList<>+SimpleAddDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class SimpleAddDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public void Operate() => throw null; - public object Orphan { get => throw null; } - public SimpleAddDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance, T value) => throw null; - } - - - // Generated from `NHibernate.Collection.Generic.PersistentGenericList<>+SimpleRemoveDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class SimpleRemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public void Operate() => throw null; - public object Orphan { get => throw null; } - public SimpleRemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList enclosingInstance, T value) => throw null; - } - - - object System.Collections.ICollection.SyncRoot { get => throw null; } - public override string ToString() => throw null; - protected System.Collections.Generic.IList WrappedList; - } - - // Generated from `NHibernate.Collection.Generic.PersistentGenericMap<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PersistentGenericMap : NHibernate.Collection.AbstractPersistentCollection, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> - { - public void Add(TKey key, TValue value) => throw null; - public void Add(System.Collections.Generic.KeyValuePair item) => throw null; - protected virtual void AddDuringInitialize(object index, object element) => throw null; - public override void ApplyQueuedOperations() => throw null; - public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; - public void Clear() => throw null; - // Generated from `NHibernate.Collection.Generic.PersistentGenericMap<,>+ClearDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class ClearDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public ClearDelayedOperation(NHibernate.Collection.Generic.PersistentGenericMap enclosingInstance) => throw null; - public void Operate() => throw null; - public object Orphan { get => throw null; } - } - - - public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; - public bool ContainsKey(TKey key) => throw null; - public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; - public void CopyTo(System.Array array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - public override bool Empty { get => throw null; } - public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override bool EntryExists(object entry, int i) => throw null; - public override bool Equals(object other) => throw null; - public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null; - public override System.Threading.Tasks.Task GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null; - public override object GetElement(object entry) => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - public override int GetHashCode() => throw null; - public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null; - public override System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null; - public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override object GetSnapshotElement(object entry, int i) => throw null; - public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null; - public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public bool IsReadOnly { get => throw null; } - public override bool IsSnapshotEmpty(object snapshot) => throw null; - public bool IsSynchronized { get => throw null; } - public override bool IsWrapper(object collection) => throw null; - public TValue this[TKey key] { get => throw null; set => throw null; } - public System.Collections.Generic.ICollection Keys { get => throw null; } - System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Keys { get => throw null; } - public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null; - public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; - public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public PersistentGenericMap(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IDictionary map) => throw null; - public PersistentGenericMap(NHibernate.Engine.ISessionImplementor session) => throw null; - public PersistentGenericMap() => throw null; - // Generated from `NHibernate.Collection.Generic.PersistentGenericMap<,>+PutDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class PutDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public void Operate() => throw null; - public object Orphan { get => throw null; } - public PutDelayedOperation(NHibernate.Collection.Generic.PersistentGenericMap enclosingInstance, TKey index, TValue value, object old) => throw null; - } - - - public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; - public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public bool Remove(TKey key) => throw null; - public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; - // Generated from `NHibernate.Collection.Generic.PersistentGenericMap<,>+RemoveDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class RemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public void Operate() => throw null; - public object Orphan { get => throw null; } - public RemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericMap enclosingInstance, TKey index, object old) => throw null; - } - - - public object SyncRoot { get => throw null; } - public override string ToString() => throw null; - public bool TryGetValue(TKey key, out TValue value) => throw null; - public System.Collections.Generic.ICollection Values { get => throw null; } - System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } - protected System.Collections.Generic.IDictionary WrappedMap; - } - - // Generated from `NHibernate.Collection.Generic.PersistentGenericSet<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PersistentGenericSet : NHibernate.Collection.AbstractPersistentCollection, System.Linq.IQueryable, System.Linq.IQueryable, System.Collections.IEnumerable, System.Collections.Generic.ISet, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection - { - void System.Collections.Generic.ICollection.Add(T item) => throw null; - public bool Add(T o) => throw null; - public override void ApplyQueuedOperations() => throw null; - public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; - public override void BeginRead() => throw null; - public void Clear() => throw null; - // Generated from `NHibernate.Collection.Generic.PersistentGenericSet<>+ClearDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class ClearDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public ClearDelayedOperation(NHibernate.Collection.Generic.PersistentGenericSet enclosingInstance) => throw null; - public void Operate() => throw null; - public object Orphan { get => throw null; } - } - - - public bool Contains(T item) => throw null; - public void CopyTo(T[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - System.Type System.Linq.IQueryable.ElementType { get => throw null; } - public override bool Empty { get => throw null; } - public override bool EndRead(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override bool EntryExists(object entry, int i) => throw null; - public override bool Equals(object other) => throw null; - public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - public void ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; - System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; } - public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null; - public override System.Threading.Tasks.Task GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null; - public override object GetElement(object entry) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public override int GetHashCode() => throw null; - public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null; - public override System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null; - public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override object GetSnapshotElement(object entry, int i) => throw null; - public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null; - public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public void IntersectWith(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsReadOnly { get => throw null; } - public override bool IsSnapshotEmpty(object snapshot) => throw null; - public bool IsSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; - public bool IsSynchronized { get => throw null; } - public override bool IsWrapper(object collection) => throw null; - public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null; - public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; - public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public bool Overlaps(System.Collections.Generic.IEnumerable other) => throw null; - public PersistentGenericSet(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet original) => throw null; - public PersistentGenericSet(NHibernate.Engine.ISessionImplementor session) => throw null; - public PersistentGenericSet() => throw null; - System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; } - public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; - public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public bool Remove(T o) => throw null; - public override bool RowUpdatePossible { get => throw null; } - public bool SetEquals(System.Collections.Generic.IEnumerable other) => throw null; - // Generated from `NHibernate.Collection.Generic.PersistentGenericSet<>+SimpleAddDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class SimpleAddDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public void Operate() => throw null; - public object Orphan { get => throw null; } - public SimpleAddDelayedOperation(NHibernate.Collection.Generic.PersistentGenericSet enclosingInstance, T value) => throw null; - } - - - // Generated from `NHibernate.Collection.Generic.PersistentGenericSet<>+SimpleRemoveDelayedOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class SimpleRemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation - { - public object AddedInstance { get => throw null; } - public void Operate() => throw null; - public object Orphan { get => throw null; } - public SimpleRemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericSet enclosingInstance, T value) => throw null; - } - - - public void SymmetricExceptWith(System.Collections.Generic.IEnumerable other) => throw null; - public object SyncRoot { get => throw null; } - public override string ToString() => throw null; - public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; - protected System.Collections.Generic.ISet WrappedSet; - } - - // Generated from `NHibernate.Collection.Generic.PersistentIdentifierBag<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PersistentIdentifierBag : NHibernate.Collection.AbstractPersistentCollection, System.Linq.IQueryable, System.Linq.IQueryable, System.Collections.IList, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection - { - public void Add(T item) => throw null; - int System.Collections.IList.Add(object value) => throw null; - public override void AfterRowInsert(NHibernate.Persister.Collection.ICollectionPersister persister, object entry, int i, object id) => throw null; - public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null; - protected void BeforeInsert(int index) => throw null; - protected void BeforeRemove(int index) => throw null; - public void Clear() => throw null; - public bool Contains(T item) => throw null; - bool System.Collections.IList.Contains(object value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; - public void CopyTo(T[] array, int arrayIndex) => throw null; - public int Count { get => throw null; } - public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - System.Type System.Linq.IQueryable.ElementType { get => throw null; } - public override bool Empty { get => throw null; } - public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override bool EntryExists(object entry, int i) => throw null; - public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; } - public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null; - public override System.Threading.Tasks.Task GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null; - public override object GetElement(object entry) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public override object GetIdentifier(object entry, int i) => throw null; - public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null; - public override System.Threading.Tasks.Task GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null; - public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override object GetSnapshotElement(object entry, int i) => throw null; - public int IndexOf(T item) => throw null; - int System.Collections.IList.IndexOf(object value) => throw null; - public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null; - public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; - public void Insert(int index, T item) => throw null; - protected System.Collections.Generic.IList InternalValues { get => throw null; set => throw null; } - bool System.Collections.IList.IsFixedSize { get => throw null; } - public bool IsReadOnly { get => throw null; } - public override bool IsSnapshotEmpty(object snapshot) => throw null; - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public override bool IsWrapper(object collection) => throw null; - public T this[int index] { get => throw null; set => throw null; } - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } - public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null; - public override System.Threading.Tasks.Task NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null; - public override System.Threading.Tasks.Task NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null; - public PersistentIdentifierBag(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IEnumerable coll) => throw null; - public PersistentIdentifierBag(NHibernate.Engine.ISessionImplementor session) => throw null; - public PersistentIdentifierBag() => throw null; - public override void PreInsert(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public override System.Threading.Tasks.Task PreInsertAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; } - public override object ReadFrom(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null; - public override System.Threading.Tasks.Task ReadFromAsync(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - void System.Collections.IList.Remove(object value) => throw null; - public bool Remove(T item) => throw null; - public void RemoveAt(int index) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - } } namespace Connection { - // Generated from `NHibernate.Connection.ConnectionProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class ConnectionProvider : System.IDisposable, NHibernate.Connection.IConnectionProvider + public abstract class ConnectionProvider : NHibernate.Connection.IConnectionProvider, System.IDisposable { public virtual void CloseConnection(System.Data.Common.DbConnection conn) => throw null; public virtual void Configure(System.Collections.Generic.IDictionary settings) => throw null; protected virtual void ConfigureDriver(System.Collections.Generic.IDictionary settings) => throw null; + protected virtual string ConnectionString { get => throw null; } protected ConnectionProvider() => throw null; - protected internal virtual string ConnectionString { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool isDisposing) => throw null; public NHibernate.Driver.IDriver Driver { get => throw null; } - public virtual System.Data.Common.DbConnection GetConnection(string connectionString) => throw null; public virtual System.Data.Common.DbConnection GetConnection() => throw null; - public virtual System.Threading.Tasks.Task GetConnectionAsync(string connectionString, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Data.Common.DbConnection GetConnection(string connectionString) => throw null; public virtual System.Threading.Tasks.Task GetConnectionAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task GetConnectionAsync(string connectionString, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual string GetNamedConnectionString(System.Collections.Generic.IDictionary settings) => throw null; - // ERR: Stub generator didn't handle member: ~ConnectionProvider } - - // Generated from `NHibernate.Connection.ConnectionProviderExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ConnectionProviderExtensions + public static partial class ConnectionProviderExtensions { public static string GetConnectionString(this NHibernate.Connection.IConnectionProvider connectionProvider) => throw null; } - - // Generated from `NHibernate.Connection.ConnectionProviderFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ConnectionProviderFactory { public static NHibernate.Connection.IConnectionProvider NewConnectionProvider(System.Collections.Generic.IDictionary settings) => throw null; } - - // Generated from `NHibernate.Connection.DriverConnectionProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DriverConnectionProvider : NHibernate.Connection.ConnectionProvider { public override void CloseConnection(System.Data.Common.DbConnection conn) => throw null; @@ -7635,8 +5296,6 @@ namespace NHibernate public override System.Data.Common.DbConnection GetConnection(string connectionString) => throw null; public override System.Threading.Tasks.Task GetConnectionAsync(string connectionString, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Connection.IConnectionAccess` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IConnectionAccess { void CloseConnection(System.Data.Common.DbConnection connection); @@ -7644,8 +5303,6 @@ namespace NHibernate System.Data.Common.DbConnection GetConnection(); System.Threading.Tasks.Task GetConnectionAsync(System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Connection.IConnectionProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IConnectionProvider : System.IDisposable { void CloseConnection(System.Data.Common.DbConnection conn); @@ -7654,135 +5311,125 @@ namespace NHibernate System.Data.Common.DbConnection GetConnection(); System.Threading.Tasks.Task GetConnectionAsync(System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Connection.UserSuppliedConnectionProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class UserSuppliedConnectionProvider : NHibernate.Connection.ConnectionProvider { public override void CloseConnection(System.Data.Common.DbConnection conn) => throw null; public override void Configure(System.Collections.Generic.IDictionary settings) => throw null; + public UserSuppliedConnectionProvider() => throw null; public override System.Data.Common.DbConnection GetConnection(string connectionString) => throw null; public override System.Threading.Tasks.Task GetConnectionAsync(string connectionString, System.Threading.CancellationToken cancellationToken) => throw null; - public UserSuppliedConnectionProvider() => throw null; } - + } + public enum ConnectionReleaseMode + { + AfterStatement = 0, + AfterTransaction = 1, + OnClose = 2, + } + public static class ConnectionReleaseModeParser + { + public static NHibernate.ConnectionReleaseMode Convert(string value) => throw null; + public static string ToString(NHibernate.ConnectionReleaseMode value) => throw null; } namespace Context { - // Generated from `NHibernate.Context.AsyncLocalSessionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AsyncLocalSessionContext : NHibernate.Context.CurrentSessionContext { public AsyncLocalSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - protected override NHibernate.ISession Session { get => throw null; set => throw null; } + protected override NHibernate.ISession Session { get => throw null; set { } } } - - // Generated from `NHibernate.Context.CallSessionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CallSessionContext : NHibernate.Context.MapBasedSessionContext { public CallSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; protected override System.Collections.IDictionary GetMap() => throw null; protected override void SetMap(System.Collections.IDictionary value) => throw null; } - - // Generated from `NHibernate.Context.CurrentSessionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class CurrentSessionContext : NHibernate.Context.ICurrentSessionContext { public static void Bind(NHibernate.ISession session) => throw null; - public virtual NHibernate.ISession CurrentSession() => throw null; protected CurrentSessionContext() => throw null; + public virtual NHibernate.ISession CurrentSession() => throw null; public static bool HasBind(NHibernate.ISessionFactory factory) => throw null; protected abstract NHibernate.ISession Session { get; set; } public static NHibernate.ISession Unbind(NHibernate.ISessionFactory factory) => throw null; } - - // Generated from `NHibernate.Context.ICurrentSessionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICurrentSessionContext { NHibernate.ISession CurrentSession(); } - - // Generated from `NHibernate.Context.ISessionFactoryAwareCurrentSessionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISessionFactoryAwareCurrentSessionContext : NHibernate.Context.ICurrentSessionContext { void SetFactory(NHibernate.Engine.ISessionFactoryImplementor factory); } - - // Generated from `NHibernate.Context.MapBasedSessionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class MapBasedSessionContext : NHibernate.Context.CurrentSessionContext { - protected abstract System.Collections.IDictionary GetMap(); protected MapBasedSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - protected override NHibernate.ISession Session { get => throw null; set => throw null; } + protected abstract System.Collections.IDictionary GetMap(); + protected override NHibernate.ISession Session { get => throw null; set { } } protected abstract void SetMap(System.Collections.IDictionary value); } - - // Generated from `NHibernate.Context.ReflectiveHttpContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ReflectiveHttpContext { - public static System.Func HttpContextCurrentGetter { get => throw null; set => throw null; } + public static System.Func HttpContextCurrentGetter { get => throw null; } public static System.Collections.IDictionary HttpContextCurrentItems { get => throw null; } - public static System.Func HttpContextItemsGetter { get => throw null; set => throw null; } + public static System.Func HttpContextItemsGetter { get => throw null; } } - - // Generated from `NHibernate.Context.ThreadLocalSessionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ThreadLocalSessionContext : NHibernate.Context.ICurrentSessionContext { public static void Bind(NHibernate.ISession session) => throw null; public static System.Threading.Tasks.Task BindAsync(NHibernate.ISession session, System.Threading.CancellationToken cancellationToken) => throw null; protected NHibernate.ISession BuildOrObtainSession() => throw null; + protected static System.Collections.Generic.IDictionary context; + public ThreadLocalSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public NHibernate.ISession CurrentSession() => throw null; + protected NHibernate.Engine.ISessionFactoryImplementor factory; protected virtual bool IsAutoCloseEnabled() => throw null; protected virtual bool IsAutoFlushEnabled() => throw null; - public ThreadLocalSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public static NHibernate.ISession Unbind(NHibernate.ISessionFactory factory) => throw null; - protected static System.Collections.Generic.IDictionary context; - protected NHibernate.Engine.ISessionFactoryImplementor factory; } - - // Generated from `NHibernate.Context.ThreadStaticSessionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ThreadStaticSessionContext : NHibernate.Context.MapBasedSessionContext { + public ThreadStaticSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; protected override System.Collections.IDictionary GetMap() => throw null; protected override void SetMap(System.Collections.IDictionary value) => throw null; - public ThreadStaticSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; } - - // Generated from `NHibernate.Context.WcfOperationSessionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class WcfOperationSessionContext : NHibernate.Context.MapBasedSessionContext { + public WcfOperationSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; protected override System.Collections.IDictionary GetMap() => throw null; protected override void SetMap(System.Collections.IDictionary value) => throw null; - public WcfOperationSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; } - - // Generated from `NHibernate.Context.WebSessionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class WebSessionContext : NHibernate.Context.MapBasedSessionContext { + public WebSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; protected override System.Collections.IDictionary GetMap() => throw null; protected override void SetMap(System.Collections.IDictionary value) => throw null; - public WebSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; } - + } + public static class CriteriaTransformer + { + public static NHibernate.Criterion.DetachedCriteria Clone(NHibernate.Criterion.DetachedCriteria criteria) => throw null; + public static NHibernate.ICriteria Clone(NHibernate.ICriteria criteria) => throw null; + public static NHibernate.Criterion.DetachedCriteria TransformToRowCount(NHibernate.Criterion.DetachedCriteria criteria) => throw null; + public static NHibernate.ICriteria TransformToRowCount(NHibernate.ICriteria criteria) => throw null; } namespace Criterion { - // Generated from `NHibernate.Criterion.AbstractCriterion` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractCriterion : NHibernate.Criterion.ICriterion { - public static NHibernate.Criterion.AbstractCriterion operator !(NHibernate.Criterion.AbstractCriterion crit) => throw null; - public static NHibernate.Criterion.AbstractCriterion operator &(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractEmptinessExpression rhs) => throw null; - public static NHibernate.Criterion.AbstractCriterion operator &(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractCriterion rhs) => throw null; protected AbstractCriterion() => throw null; public abstract NHibernate.Criterion.IProjection[] GetProjections(); public abstract NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); + public static NHibernate.Criterion.AbstractCriterion operator &(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractCriterion rhs) => throw null; + public static NHibernate.Criterion.AbstractCriterion operator &(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractEmptinessExpression rhs) => throw null; + public static NHibernate.Criterion.AbstractCriterion operator |(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractCriterion rhs) => throw null; + public static NHibernate.Criterion.AbstractCriterion operator |(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractEmptinessExpression rhs) => throw null; + public static bool operator false(NHibernate.Criterion.AbstractCriterion criteria) => throw null; + public static NHibernate.Criterion.AbstractCriterion operator !(NHibernate.Criterion.AbstractCriterion crit) => throw null; + public static bool operator true(NHibernate.Criterion.AbstractCriterion criteria) => throw null; public abstract NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); public abstract override string ToString(); - public static bool operator false(NHibernate.Criterion.AbstractCriterion criteria) => throw null; - public static bool operator true(NHibernate.Criterion.AbstractCriterion criteria) => throw null; - public static NHibernate.Criterion.AbstractCriterion operator |(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractEmptinessExpression rhs) => throw null; - public static NHibernate.Criterion.AbstractCriterion operator |(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractCriterion rhs) => throw null; } - - // Generated from `NHibernate.Criterion.AbstractEmptinessExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractEmptinessExpression : NHibernate.Criterion.AbstractCriterion { protected AbstractEmptinessExpression(string propertyName) => throw null; @@ -7790,71 +5437,59 @@ namespace NHibernate protected NHibernate.Persister.Collection.IQueryableCollection GetQueryableCollection(string entityName, string actualPropertyName, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public override string ToString() => throw null; + public override sealed string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.AggregateProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AggregateProjection : NHibernate.Criterion.SimpleProjection { - protected internal AggregateProjection(string aggregate, string propertyName) => throw null; - protected internal AggregateProjection(string aggregate, NHibernate.Criterion.IProjection projection) => throw null; + protected string aggregate; + protected AggregateProjection(string aggregate, string propertyName) => throw null; + protected AggregateProjection(string aggregate, NHibernate.Criterion.IProjection projection) => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override bool IsAggregate { get => throw null; } public override bool IsGrouped { get => throw null; } + protected NHibernate.Criterion.IProjection projection; + protected string propertyName; public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; - protected string aggregate; - protected NHibernate.Criterion.IProjection projection; - protected string propertyName; } - - // Generated from `NHibernate.Criterion.AliasedProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AliasedProjection : NHibernate.Criterion.IProjection { - protected internal AliasedProjection(NHibernate.Criterion.IProjection projection, string alias) => throw null; public virtual string[] Aliases { get => throw null; } - public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + protected AliasedProjection(NHibernate.Criterion.IProjection projection, string alias) => throw null; public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public virtual NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public virtual NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public virtual NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public bool IsAggregate { get => throw null; } public virtual bool IsGrouped { get => throw null; } public virtual NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public virtual NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.AndExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AndExpression : NHibernate.Criterion.LogicalExpression { public AndExpression(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) : base(default(NHibernate.Criterion.ICriterion), default(NHibernate.Criterion.ICriterion)) => throw null; protected override string Op { get => throw null; } } - - // Generated from `NHibernate.Criterion.AvgProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AvgProjection : NHibernate.Criterion.AggregateProjection { - public AvgProjection(string propertyName) : base(default(string), default(NHibernate.Criterion.IProjection)) => throw null; - public AvgProjection(NHibernate.Criterion.IProjection projection) : base(default(string), default(NHibernate.Criterion.IProjection)) => throw null; + public AvgProjection(NHibernate.Criterion.IProjection projection) : base(default(string), default(string)) => throw null; + public AvgProjection(string propertyName) : base(default(string), default(string)) => throw null; public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; } - - // Generated from `NHibernate.Criterion.BetweenExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BetweenExpression : NHibernate.Criterion.AbstractCriterion { - public BetweenExpression(string propertyName, object lo, object hi) => throw null; public BetweenExpression(NHibernate.Criterion.IProjection projection, object lo, object hi) => throw null; + public BetweenExpression(string propertyName, object lo, object hi) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.CastProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CastProjection : NHibernate.Criterion.SimpleProjection { public CastProjection(NHibernate.Type.IType type, NHibernate.Criterion.IProjection projection) => throw null; @@ -7865,11 +5500,10 @@ namespace NHibernate public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; } - - // Generated from `NHibernate.Criterion.ConditionalProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ConditionalProjection : NHibernate.Criterion.SimpleProjection { public ConditionalProjection(NHibernate.Criterion.ICriterion criterion, NHibernate.Criterion.IProjection whenTrue, NHibernate.Criterion.IProjection whenFalse) => throw null; + public ConditionalProjection(NHibernate.Criterion.ConditionalProjectionCase[] cases, NHibernate.Criterion.IProjection elseProjection) => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override bool IsAggregate { get => throw null; } @@ -7877,20 +5511,22 @@ namespace NHibernate public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; } - - // Generated from `NHibernate.Criterion.Conjunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class ConditionalProjectionCase + { + public NHibernate.Criterion.ICriterion Criterion { get => throw null; } + public ConditionalProjectionCase(NHibernate.Criterion.ICriterion criterion, NHibernate.Criterion.IProjection projection) => throw null; + public NHibernate.Criterion.IProjection Projection { get => throw null; } + } public class Conjunction : NHibernate.Criterion.Junction { public Conjunction() => throw null; protected override NHibernate.SqlCommand.SqlString EmptyExpression { get => throw null; } protected override string Op { get => throw null; } } - - // Generated from `NHibernate.Criterion.ConstantProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ConstantProjection : NHibernate.Criterion.SimpleProjection { - public ConstantProjection(object value, NHibernate.Type.IType type) => throw null; public ConstantProjection(object value) => throw null; + public ConstantProjection(object value, NHibernate.Type.IType type) => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override bool IsAggregate { get => throw null; } @@ -7899,19 +5535,15 @@ namespace NHibernate public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public NHibernate.Engine.TypedValue TypedValue { get => throw null; } } - - // Generated from `NHibernate.Criterion.CountProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CountProjection : NHibernate.Criterion.AggregateProjection { - protected internal CountProjection(string prop) : base(default(string), default(NHibernate.Criterion.IProjection)) => throw null; - protected internal CountProjection(NHibernate.Criterion.IProjection projection) : base(default(string), default(NHibernate.Criterion.IProjection)) => throw null; + protected CountProjection(string prop) : base(default(string), default(string)) => throw null; + protected CountProjection(NHibernate.Criterion.IProjection projection) : base(default(string), default(string)) => throw null; public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public NHibernate.Criterion.CountProjection SetDistinct() => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.CriteriaSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class CriteriaSpecification { public static NHibernate.Transform.IResultTransformer AliasToEntityMap; @@ -7923,8 +5555,6 @@ namespace NHibernate public static string RootAlias; public static NHibernate.Transform.IResultTransformer RootEntity; } - - // Generated from `NHibernate.Criterion.CriterionUtil` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class CriterionUtil { public static NHibernate.SqlCommand.SqlString[] GetColumnNames(string propertyName, NHibernate.Criterion.IProjection projection, NHibernate.Criterion.ICriteriaQuery criteriaQuery, NHibernate.ICriteria criteria) => throw null; @@ -7932,86 +5562,78 @@ namespace NHibernate public static NHibernate.Engine.TypedValue GetTypedValue(NHibernate.Criterion.ICriteriaQuery criteriaQuery, NHibernate.ICriteria criteria, NHibernate.Criterion.IProjection projection, string propertyName, object value) => throw null; public static NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.Criterion.ICriteriaQuery criteriaQuery, NHibernate.ICriteria criteria, NHibernate.Criterion.IProjection projection, string propertyName, params object[] values) => throw null; } - - // Generated from `NHibernate.Criterion.DetachedCriteria` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DetachedCriteria { public NHibernate.Criterion.DetachedCriteria Add(NHibernate.Criterion.ICriterion criterion) => throw null; public NHibernate.Criterion.DetachedCriteria AddOrder(NHibernate.Criterion.Order order) => throw null; public string Alias { get => throw null; } public void ClearOrders() => throw null; - public NHibernate.Criterion.DetachedCriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.DetachedCriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; public NHibernate.Criterion.DetachedCriteria CreateAlias(string associationPath, string alias) => throw null; - public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.DetachedCriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.DetachedCriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, string alias) => throw null; - public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType) => throw null; public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath) => throw null; - protected internal DetachedCriteria(NHibernate.Impl.CriteriaImpl impl, NHibernate.ICriteria criteria) => throw null; - protected DetachedCriteria(string entityName, string alias) => throw null; - protected DetachedCriteria(string entityName) => throw null; - protected DetachedCriteria(System.Type entityType, string alias) => throw null; + public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; protected DetachedCriteria(System.Type entityType) => throw null; + protected DetachedCriteria(System.Type entityType, string alias) => throw null; + protected DetachedCriteria(string entityName) => throw null; + protected DetachedCriteria(string entityName, string alias) => throw null; + protected DetachedCriteria(NHibernate.Impl.CriteriaImpl impl, NHibernate.ICriteria criteria) => throw null; public string EntityOrClassName { get => throw null; } - public static NHibernate.Criterion.DetachedCriteria For(string alias) => throw null; - public static NHibernate.Criterion.DetachedCriteria For() => throw null; - public static NHibernate.Criterion.DetachedCriteria For(System.Type entityType, string alias) => throw null; public static NHibernate.Criterion.DetachedCriteria For(System.Type entityType) => throw null; - public static NHibernate.Criterion.DetachedCriteria ForEntityName(string entityName, string alias) => throw null; + public static NHibernate.Criterion.DetachedCriteria For() => throw null; + public static NHibernate.Criterion.DetachedCriteria For(string alias) => throw null; + public static NHibernate.Criterion.DetachedCriteria For(System.Type entityType, string alias) => throw null; public static NHibernate.Criterion.DetachedCriteria ForEntityName(string entityName) => throw null; + public static NHibernate.Criterion.DetachedCriteria ForEntityName(string entityName, string alias) => throw null; public NHibernate.Criterion.DetachedCriteria GetCriteriaByAlias(string alias) => throw null; public NHibernate.Criterion.DetachedCriteria GetCriteriaByPath(string path) => throw null; - protected internal NHibernate.Impl.CriteriaImpl GetCriteriaImpl() => throw null; - public NHibernate.ICriteria GetExecutableCriteria(NHibernate.IStatelessSession session) => throw null; + protected NHibernate.Impl.CriteriaImpl GetCriteriaImpl() => throw null; public NHibernate.ICriteria GetExecutableCriteria(NHibernate.ISession session) => throw null; + public NHibernate.ICriteria GetExecutableCriteria(NHibernate.IStatelessSession session) => throw null; public System.Type GetRootEntityTypeIfAvailable() => throw null; + public NHibernate.Criterion.DetachedCriteria SetCacheable(bool cacheable) => throw null; public NHibernate.Criterion.DetachedCriteria SetCacheMode(NHibernate.CacheMode cacheMode) => throw null; public NHibernate.Criterion.DetachedCriteria SetCacheRegion(string region) => throw null; - public NHibernate.Criterion.DetachedCriteria SetCacheable(bool cacheable) => throw null; public NHibernate.Criterion.DetachedCriteria SetFetchMode(string associationPath, NHibernate.FetchMode mode) => throw null; public NHibernate.Criterion.DetachedCriteria SetFirstResult(int firstResult) => throw null; - public NHibernate.Criterion.DetachedCriteria SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null; public NHibernate.Criterion.DetachedCriteria SetLockMode(NHibernate.LockMode lockMode) => throw null; + public NHibernate.Criterion.DetachedCriteria SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null; public NHibernate.Criterion.DetachedCriteria SetMaxResults(int maxResults) => throw null; public NHibernate.Criterion.DetachedCriteria SetProjection(NHibernate.Criterion.IProjection projection) => throw null; public NHibernate.Criterion.DetachedCriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.Disjunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Disjunction : NHibernate.Criterion.Junction { public Disjunction() => throw null; protected override NHibernate.SqlCommand.SqlString EmptyExpression { get => throw null; } protected override string Op { get => throw null; } } - - // Generated from `NHibernate.Criterion.Distinct` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Distinct : NHibernate.Criterion.IProjection { public virtual string[] Aliases { get => throw null; } public Distinct(NHibernate.Criterion.IProjection proj) => throw null; - public virtual string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public virtual string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public virtual string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public virtual NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public virtual NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public virtual NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public bool IsAggregate { get => throw null; } public virtual bool IsGrouped { get => throw null; } public virtual NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public virtual NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.EntityProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EntityProjection : NHibernate.Criterion.IProjection { string[] NHibernate.Criterion.IProjection.Aliases { get => throw null; } - public EntityProjection(System.Type entityType, string entityAlias) => throw null; public EntityProjection() => throw null; - public bool FetchLazyProperties { get => throw null; set => throw null; } - public System.Collections.Generic.ICollection FetchLazyPropertyGroups { get => throw null; set => throw null; } + public EntityProjection(System.Type entityType, string entityAlias) => throw null; + public bool FetchLazyProperties { get => throw null; set { } } + public System.Collections.Generic.ICollection FetchLazyPropertyGroups { get => throw null; set { } } string[] NHibernate.Criterion.IProjection.GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; string[] NHibernate.Criterion.IProjection.GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; NHibernate.Engine.TypedValue[] NHibernate.Criterion.IProjection.GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; @@ -8019,25 +5641,21 @@ namespace NHibernate NHibernate.Type.IType[] NHibernate.Criterion.IProjection.GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; bool NHibernate.Criterion.IProjection.IsAggregate { get => throw null; } bool NHibernate.Criterion.IProjection.IsGrouped { get => throw null; } - public bool Lazy { get => throw null; set => throw null; } + public bool Lazy { get => throw null; set { } } public NHibernate.Criterion.EntityProjection SetFetchLazyProperties(bool fetchLazyProperties = default(bool)) => throw null; public NHibernate.Criterion.EntityProjection SetFetchLazyPropertyGroups(params string[] lazyPropertyGroups) => throw null; public NHibernate.Criterion.EntityProjection SetLazy(bool lazy = default(bool)) => throw null; NHibernate.SqlCommand.SqlString NHibernate.Criterion.IProjection.ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; NHibernate.SqlCommand.SqlString NHibernate.Criterion.IProjection.ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; } - - // Generated from `NHibernate.Criterion.EqPropertyExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EqPropertyExpression : NHibernate.Criterion.PropertyExpression { - public EqPropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public EqPropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public EqPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public EqPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; + public EqPropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public EqPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public EqPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public EqPropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; protected override string Op { get => throw null; } } - - // Generated from `NHibernate.Criterion.Example` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Example : NHibernate.Criterion.AbstractCriterion { protected void AddComponentTypedValues(string path, object component, NHibernate.Type.IAbstractComponentType type, System.Collections.IList list, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; @@ -8046,9 +5664,9 @@ namespace NHibernate protected void AppendComponentCondition(string path, object component, NHibernate.Type.IAbstractComponentType type, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery, NHibernate.SqlCommand.SqlStringBuilder builder) => throw null; protected void AppendPropertyCondition(string propertyName, object propertyValue, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery cq, NHibernate.SqlCommand.SqlStringBuilder builder) => throw null; public static NHibernate.Criterion.Example Create(object entity) => throw null; + protected Example(object entity, NHibernate.Criterion.Example.IPropertySelector selector) => throw null; public NHibernate.Criterion.Example EnableLike(NHibernate.Criterion.MatchMode matchMode) => throw null; public NHibernate.Criterion.Example EnableLike() => throw null; - protected Example(object entity, NHibernate.Criterion.Example.IPropertySelector selector) => throw null; public NHibernate.Criterion.Example ExcludeNone() => throw null; public NHibernate.Criterion.Example ExcludeNulls() => throw null; public NHibernate.Criterion.Example ExcludeProperty(string name) => throw null; @@ -8056,82 +5674,67 @@ namespace NHibernate protected virtual NHibernate.Criterion.ICriterion GetNotNullPropertyCriterion(object propertyValue, string propertyName) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - // Generated from `NHibernate.Criterion.Example+IPropertySelector` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public NHibernate.Criterion.Example IgnoreCase() => throw null; public interface IPropertySelector { bool Include(object propertyValue, string propertyName, NHibernate.Type.IType type); } - - - public NHibernate.Criterion.Example IgnoreCase() => throw null; protected static NHibernate.Criterion.Example.IPropertySelector NotNullOrEmptyString; protected static NHibernate.Criterion.Example.IPropertySelector NotNullOrZero; - public virtual NHibernate.Criterion.Example SetEscapeCharacter(System.Char? escapeCharacter) => throw null; + public virtual NHibernate.Criterion.Example SetEscapeCharacter(char? escapeCharacter) => throw null; public NHibernate.Criterion.Example SetPropertySelector(NHibernate.Criterion.Example.IPropertySelector selector) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.ExistsSubqueryExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ExistsSubqueryExpression : NHibernate.Criterion.SubqueryExpression { - internal ExistsSubqueryExpression(string quantifier, NHibernate.Criterion.DetachedCriteria dc) : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) => throw null; protected override NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery outerQuery) => throw null; + internal ExistsSubqueryExpression() : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) { } } - - // Generated from `NHibernate.Criterion.Expression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Expression : NHibernate.Criterion.Restrictions + public sealed class Expression : NHibernate.Criterion.Restrictions { - public static NHibernate.Criterion.AbstractCriterion Sql(string sql, object[] values, NHibernate.Type.IType[] types) => throw null; - public static NHibernate.Criterion.AbstractCriterion Sql(string sql, object value, NHibernate.Type.IType type) => throw null; - public static NHibernate.Criterion.AbstractCriterion Sql(string sql) => throw null; public static NHibernate.Criterion.AbstractCriterion Sql(NHibernate.SqlCommand.SqlString sql, object[] values, NHibernate.Type.IType[] types) => throw null; public static NHibernate.Criterion.AbstractCriterion Sql(NHibernate.SqlCommand.SqlString sql, object value, NHibernate.Type.IType type) => throw null; + public static NHibernate.Criterion.AbstractCriterion Sql(string sql, object value, NHibernate.Type.IType type) => throw null; + public static NHibernate.Criterion.AbstractCriterion Sql(string sql, object[] values, NHibernate.Type.IType[] types) => throw null; public static NHibernate.Criterion.AbstractCriterion Sql(NHibernate.SqlCommand.SqlString sql) => throw null; + public static NHibernate.Criterion.AbstractCriterion Sql(string sql) => throw null; } - - // Generated from `NHibernate.Criterion.GePropertyExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GePropertyExpression : NHibernate.Criterion.PropertyExpression { - public GePropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public GePropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public GePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public GePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; + public GePropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public GePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public GePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public GePropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; protected override string Op { get => throw null; } } - - // Generated from `NHibernate.Criterion.GroupedProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GroupedProjection : NHibernate.Criterion.IProjection { public virtual string[] Aliases { get => throw null; } - public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public virtual NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public virtual NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public GroupedProjection(NHibernate.Criterion.IProjection projection) => throw null; + public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public virtual NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public virtual NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public bool IsAggregate { get => throw null; } public virtual bool IsGrouped { get => throw null; } public virtual NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public virtual NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.GtPropertyExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GtPropertyExpression : NHibernate.Criterion.PropertyExpression { - public GtPropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public GtPropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public GtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public GtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; + public GtPropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public GtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public GtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public GtPropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; protected override string Op { get => throw null; } } - - // Generated from `NHibernate.Criterion.ICriteriaQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICriteriaQuery { - System.Collections.Generic.ICollection CollectedParameterSpecifications { get; } System.Collections.Generic.ICollection CollectedParameters { get; } + System.Collections.Generic.ICollection CollectedParameterSpecifications { get; } NHibernate.SqlCommand.Parameter CreateSkipParameter(int value); NHibernate.SqlCommand.Parameter CreateTakeParameter(int value); NHibernate.Engine.ISessionFactoryImplementor Factory { get; } @@ -8140,8 +5743,8 @@ namespace NHibernate string[] GetColumnAliasesUsingProjection(NHibernate.ICriteria criteria, string propertyPath); string[] GetColumns(NHibernate.ICriteria criteria, string propertyPath); string[] GetColumnsUsingProjection(NHibernate.ICriteria criteria, string propertyPath); - string GetEntityName(NHibernate.ICriteria criteria, string propertyPath); string GetEntityName(NHibernate.ICriteria criteria); + string GetEntityName(NHibernate.ICriteria criteria, string propertyPath); string[] GetIdentifierColumns(NHibernate.ICriteria subcriteria); NHibernate.Type.IType GetIdentifierType(NHibernate.ICriteria subcriteria); int GetIndexForAlias(); @@ -8149,70 +5752,31 @@ namespace NHibernate string GetSQLAlias(NHibernate.ICriteria subcriteria); string GetSQLAlias(NHibernate.ICriteria criteria, string propertyPath); NHibernate.Type.IType GetType(NHibernate.ICriteria criteria, string propertyPath); - NHibernate.Type.IType GetTypeUsingProjection(NHibernate.ICriteria criteria, string propertyPath); NHibernate.Engine.TypedValue GetTypedIdentifierValue(NHibernate.ICriteria subcriteria, object value); NHibernate.Engine.TypedValue GetTypedValue(NHibernate.ICriteria criteria, string propertyPath, object value); + NHibernate.Type.IType GetTypeUsingProjection(NHibernate.ICriteria criteria, string propertyPath); System.Collections.Generic.IEnumerable NewQueryParameter(NHibernate.Engine.TypedValue parameter); } - - // Generated from `NHibernate.Criterion.ICriterion` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICriterion { NHibernate.Criterion.IProjection[] GetProjections(); NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); } - - // Generated from `NHibernate.Criterion.IProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IProjection - { - string[] Aliases { get; } - string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); - string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); - NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); - NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); - NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); - bool IsAggregate { get; } - bool IsGrouped { get; } - NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); - NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery); - } - - // Generated from `NHibernate.Criterion.IPropertyProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPropertyProjection - { - string PropertyName { get; } - } - - // Generated from `NHibernate.Criterion.ISupportEntityJoinQueryOver<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISupportEntityJoinQueryOver - { - NHibernate.IQueryOver JoinEntityQueryOver(System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName); - } - - // Generated from `NHibernate.Criterion.ISupportSelectModeQueryOver<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISupportSelectModeQueryOver - { - NHibernate.IQueryOver Fetch(NHibernate.SelectMode mode, System.Linq.Expressions.Expression> path); - } - - // Generated from `NHibernate.Criterion.IdentifierEqExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class IdentifierEqExpression : NHibernate.Criterion.AbstractCriterion { + public IdentifierEqExpression(NHibernate.Criterion.IProjection projection) => throw null; + public IdentifierEqExpression(object value) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public IdentifierEqExpression(object value) => throw null; - public IdentifierEqExpression(NHibernate.Criterion.IProjection projection) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.IdentifierProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class IdentifierProjection : NHibernate.Criterion.SimpleProjection, NHibernate.Criterion.IPropertyProjection { + protected IdentifierProjection(bool grouped) => throw null; + protected IdentifierProjection() => throw null; public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - protected internal IdentifierProjection(bool grouped) => throw null; - protected internal IdentifierProjection() => throw null; public override bool IsAggregate { get => throw null; } public override bool IsGrouped { get => throw null; } public string PropertyName { get => throw null; } @@ -8220,247 +5784,533 @@ namespace NHibernate public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.InExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InExpression : NHibernate.Criterion.AbstractCriterion { + public InExpression(NHibernate.Criterion.IProjection projection, object[] values) => throw null; + public InExpression(string propertyName, object[] values) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public InExpression(string propertyName, object[] values) => throw null; - public InExpression(NHibernate.Criterion.IProjection projection, object[] values) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; - public object[] Values { get => throw null; set => throw null; } + public object[] Values { get => throw null; set { } } } - - // Generated from `NHibernate.Criterion.InsensitiveLikeExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InsensitiveLikeExpression : NHibernate.Criterion.AbstractCriterion { + public InsensitiveLikeExpression(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; + public InsensitiveLikeExpression(NHibernate.Criterion.IProjection projection, object value) => throw null; + public InsensitiveLikeExpression(string propertyName, object value) => throw null; + public InsensitiveLikeExpression(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; public NHibernate.Engine.TypedValue GetParameterTypedValue(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public InsensitiveLikeExpression(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; - public InsensitiveLikeExpression(string propertyName, object value) => throw null; - public InsensitiveLikeExpression(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; - public InsensitiveLikeExpression(NHibernate.Criterion.IProjection projection, object value) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.IsEmptyExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public interface IProjection + { + string[] Aliases { get; } + string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); + string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); + NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); + NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); + NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); + bool IsAggregate { get; } + bool IsGrouped { get; } + NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); + NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery); + } + public interface IPropertyProjection + { + string PropertyName { get; } + } public class IsEmptyExpression : NHibernate.Criterion.AbstractEmptinessExpression { + public IsEmptyExpression(string propertyName) : base(default(string)) => throw null; protected override bool ExcludeEmpty { get => throw null; } public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; - public IsEmptyExpression(string propertyName) : base(default(string)) => throw null; } - - // Generated from `NHibernate.Criterion.IsNotEmptyExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class IsNotEmptyExpression : NHibernate.Criterion.AbstractEmptinessExpression { + public IsNotEmptyExpression(string propertyName) : base(default(string)) => throw null; protected override bool ExcludeEmpty { get => throw null; } public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; - public IsNotEmptyExpression(string propertyName) : base(default(string)) => throw null; } - - // Generated from `NHibernate.Criterion.Junction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public interface ISupportEntityJoinQueryOver + { + NHibernate.IQueryOver JoinEntityQueryOver(System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName); + } + public interface ISupportSelectModeQueryOver + { + NHibernate.IQueryOver Fetch(NHibernate.SelectMode mode, System.Linq.Expressions.Expression> path); + } public abstract class Junction : NHibernate.Criterion.AbstractCriterion { + public NHibernate.Criterion.Junction Add(NHibernate.Criterion.ICriterion criterion) => throw null; public NHibernate.Criterion.Junction Add(System.Linq.Expressions.Expression> expression) => throw null; public NHibernate.Criterion.Junction Add(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Junction Add(NHibernate.Criterion.ICriterion criterion) => throw null; + protected Junction() => throw null; protected abstract NHibernate.SqlCommand.SqlString EmptyExpression { get; } public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - protected Junction() => throw null; protected abstract string Op { get; } public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.LePropertyExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace Lambda + { + public class IQueryOverFetchBuilder : NHibernate.Criterion.Lambda.QueryOverFetchBuilderBase, TRoot, TSubType> + { + public IQueryOverFetchBuilder(NHibernate.IQueryOver root, System.Linq.Expressions.Expression> path) : base(default(NHibernate.IQueryOver), default(System.Linq.Expressions.Expression>)) => throw null; + } + public class IQueryOverJoinBuilder : NHibernate.Criterion.Lambda.QueryOverJoinBuilderBase, TRoot, TSubType> + { + public IQueryOverJoinBuilder(NHibernate.IQueryOver root, NHibernate.SqlCommand.JoinType joinType) : base(default(NHibernate.IQueryOver), default(NHibernate.SqlCommand.JoinType)) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + } + public class IQueryOverLockBuilder : NHibernate.Criterion.Lambda.QueryOverLockBuilderBase, TRoot, TSubType> + { + public IQueryOverLockBuilder(NHibernate.IQueryOver root, System.Linq.Expressions.Expression> alias) : base(default(NHibernate.IQueryOver), default(System.Linq.Expressions.Expression>)) => throw null; + } + public class IQueryOverOrderBuilder : NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase, TRoot, TSubType> + { + public IQueryOverOrderBuilder(NHibernate.IQueryOver root, System.Linq.Expressions.Expression> path) : base(default(NHibernate.IQueryOver), default(System.Linq.Expressions.Expression>)) => throw null; + public IQueryOverOrderBuilder(NHibernate.IQueryOver root, System.Linq.Expressions.Expression> path, bool isAlias) : base(default(NHibernate.IQueryOver), default(System.Linq.Expressions.Expression>)) => throw null; + public IQueryOverOrderBuilder(NHibernate.IQueryOver root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.IQueryOver), default(System.Linq.Expressions.Expression>)) => throw null; + } + public class IQueryOverRestrictionBuilder : NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase, TRoot, TSubType> + { + public IQueryOverRestrictionBuilder(NHibernate.IQueryOver root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.IQueryOver), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null; + public NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder Not { get => throw null; } + } + public class IQueryOverSubqueryBuilder : NHibernate.Criterion.Lambda.QueryOverSubqueryBuilderBase, TRoot, TSubType, NHibernate.Criterion.Lambda.IQueryOverSubqueryPropertyBuilder> + { + public IQueryOverSubqueryBuilder(NHibernate.IQueryOver root) : base(default(NHibernate.IQueryOver)) => throw null; + } + public class IQueryOverSubqueryPropertyBuilder : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase, TRoot, TSubType> + { + public IQueryOverSubqueryPropertyBuilder() => throw null; + } + public class LambdaNaturalIdentifierBuilder + { + public LambdaNaturalIdentifierBuilder(NHibernate.Criterion.NaturalIdentifier naturalIdentifier, string propertyName) => throw null; + public NHibernate.Criterion.NaturalIdentifier Is(object value) => throw null; + } + public class LambdaRestrictionBuilder + { + public LambdaRestrictionBuilder(NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) => throw null; + public NHibernate.Criterion.Lambda.LambdaRestrictionBuilder.LambdaBetweenBuilder IsBetween(object lo) => throw null; + public NHibernate.Criterion.AbstractCriterion IsEmpty { get => throw null; } + public NHibernate.Criterion.AbstractCriterion IsIn(System.Collections.ICollection values) => throw null; + public NHibernate.Criterion.AbstractCriterion IsIn(object[] values) => throw null; + public NHibernate.Criterion.AbstractCriterion IsInG(System.Collections.Generic.IEnumerable values) => throw null; + public NHibernate.Criterion.AbstractCriterion IsInsensitiveLike(object value) => throw null; + public NHibernate.Criterion.AbstractCriterion IsInsensitiveLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null; + public NHibernate.Criterion.AbstractCriterion IsLike(object value) => throw null; + public NHibernate.Criterion.AbstractCriterion IsLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null; + public NHibernate.Criterion.AbstractCriterion IsLike(string value, NHibernate.Criterion.MatchMode matchMode, char? escapeChar) => throw null; + public NHibernate.Criterion.AbstractCriterion IsNotEmpty { get => throw null; } + public NHibernate.Criterion.AbstractCriterion IsNotNull { get => throw null; } + public NHibernate.Criterion.AbstractCriterion IsNull { get => throw null; } + public class LambdaBetweenBuilder + { + public NHibernate.Criterion.AbstractCriterion And(object hi) => throw null; + public LambdaBetweenBuilder(NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection, object lo, bool isNot) => throw null; + } + public NHibernate.Criterion.Lambda.LambdaRestrictionBuilder Not { get => throw null; } + } + public class LambdaSubqueryBuilder + { + public LambdaSubqueryBuilder(string propertyName, object value) => throw null; + public NHibernate.Criterion.AbstractCriterion Eq(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion EqAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion Ge(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion GeAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion GeSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion Gt(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion GtAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion GtSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion In(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion Le(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion LeAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion LeSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion Lt(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion LtAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion LtSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion Ne(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public NHibernate.Criterion.AbstractCriterion NotIn(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + } + public class QueryOverFetchBuilder : NHibernate.Criterion.Lambda.QueryOverFetchBuilderBase, TRoot, TSubType> + { + public QueryOverFetchBuilder(NHibernate.Criterion.QueryOver root, System.Linq.Expressions.Expression> path) : base(default(NHibernate.Criterion.QueryOver), default(System.Linq.Expressions.Expression>)) => throw null; + } + public class QueryOverFetchBuilderBase where TReturn : NHibernate.IQueryOver + { + protected QueryOverFetchBuilderBase(TReturn root, System.Linq.Expressions.Expression> path) => throw null; + public TReturn Default { get => throw null; } + public TReturn Eager { get => throw null; } + public TReturn Lazy { get => throw null; } + protected string path; + protected TReturn root; + } + public class QueryOverJoinBuilder : NHibernate.Criterion.Lambda.QueryOverJoinBuilderBase, TRoot, TSubType> + { + public QueryOverJoinBuilder(NHibernate.Criterion.QueryOver root, NHibernate.SqlCommand.JoinType joinType) : base(default(NHibernate.Criterion.QueryOver), default(NHibernate.SqlCommand.JoinType)) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + } + public class QueryOverJoinBuilderBase where TReturn : NHibernate.IQueryOver + { + public QueryOverJoinBuilderBase(TReturn root, NHibernate.SqlCommand.JoinType joinType) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; + public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; + protected NHibernate.SqlCommand.JoinType joinType; + protected TReturn root; + } + public class QueryOverLockBuilder : NHibernate.Criterion.Lambda.QueryOverLockBuilderBase, TRoot, TSubType> + { + public QueryOverLockBuilder(NHibernate.Criterion.QueryOver root, System.Linq.Expressions.Expression> alias) : base(default(NHibernate.Criterion.QueryOver), default(System.Linq.Expressions.Expression>)) => throw null; + } + public class QueryOverLockBuilderBase where TReturn : NHibernate.IQueryOver + { + protected string alias; + protected QueryOverLockBuilderBase(TReturn root, System.Linq.Expressions.Expression> alias) => throw null; + public TReturn Force { get => throw null; } + public TReturn None { get => throw null; } + public TReturn Read { get => throw null; } + protected TReturn root; + public TReturn Upgrade { get => throw null; } + public TReturn UpgradeNoWait { get => throw null; } + public TReturn Write { get => throw null; } + } + public class QueryOverOrderBuilder : NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase, TRoot, TSubType> + { + public QueryOverOrderBuilder(NHibernate.Criterion.QueryOver root, System.Linq.Expressions.Expression> path) : base(default(NHibernate.Criterion.QueryOver), default(System.Linq.Expressions.Expression>)) => throw null; + public QueryOverOrderBuilder(NHibernate.Criterion.QueryOver root, System.Linq.Expressions.Expression> path, bool isAlias) : base(default(NHibernate.Criterion.QueryOver), default(System.Linq.Expressions.Expression>)) => throw null; + public QueryOverOrderBuilder(NHibernate.Criterion.QueryOver root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.Criterion.QueryOver), default(System.Linq.Expressions.Expression>)) => throw null; + } + public class QueryOverOrderBuilderBase where TReturn : NHibernate.IQueryOver + { + public TReturn Asc { get => throw null; } + protected QueryOverOrderBuilderBase(TReturn root, System.Linq.Expressions.Expression> path) => throw null; + protected QueryOverOrderBuilderBase(TReturn root, System.Linq.Expressions.Expression> path, bool isAlias) => throw null; + protected QueryOverOrderBuilderBase(TReturn root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) => throw null; + public TReturn Desc { get => throw null; } + protected bool isAlias; + protected System.Linq.Expressions.LambdaExpression path; + protected NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection; + protected TReturn root; + } + public class QueryOverProjectionBuilder + { + public QueryOverProjectionBuilder() => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder Select(NHibernate.Criterion.IProjection projection) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder Select(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder Select(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectAvg(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectAvg(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectCount(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectCount(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectCountDistinct(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectCountDistinct(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectGroup(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectGroup(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectMax(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectMax(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectMin(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectMin(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectSubQuery(NHibernate.Criterion.QueryOver detachedQueryOver) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectSum(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectSum(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder WithAlias(System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder WithAlias(string alias) => throw null; + } + public class QueryOverRestrictionBuilder : NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase, TRoot, TSubType> + { + public QueryOverRestrictionBuilder(NHibernate.Criterion.QueryOver root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.Criterion.QueryOver), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null; + public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder Not { get => throw null; } + } + public class QueryOverRestrictionBuilderBase where TReturn : NHibernate.IQueryOver + { + public QueryOverRestrictionBuilderBase(TReturn root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) => throw null; + public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase.LambdaBetweenBuilder IsBetween(object lo) => throw null; + public TReturn IsEmpty { get => throw null; } + public TReturn IsIn(System.Collections.ICollection values) => throw null; + public TReturn IsIn(object[] values) => throw null; + public TReturn IsInG(System.Collections.Generic.IEnumerable values) => throw null; + public TReturn IsInsensitiveLike(object value) => throw null; + public TReturn IsInsensitiveLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null; + public TReturn IsLike(object value) => throw null; + public TReturn IsLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null; + public TReturn IsLike(string value, NHibernate.Criterion.MatchMode matchMode, char? escapeChar) => throw null; + protected bool isNot; + public TReturn IsNotEmpty { get => throw null; } + public TReturn IsNotNull { get => throw null; } + public TReturn IsNull { get => throw null; } + public class LambdaBetweenBuilder + { + public TReturn And(object hi) => throw null; + public LambdaBetweenBuilder(TReturn root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection, bool isNot, object lo) => throw null; + } + } + public class QueryOverSubqueryBuilder : NHibernate.Criterion.Lambda.QueryOverSubqueryBuilderBase, TRoot, TSubType, NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilder> + { + public QueryOverSubqueryBuilder(NHibernate.Criterion.QueryOver root) : base(default(NHibernate.Criterion.QueryOver)) => throw null; + } + public class QueryOverSubqueryBuilderBase where TReturn : NHibernate.IQueryOver where TBuilderType : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase, new() + { + protected QueryOverSubqueryBuilderBase(TReturn root) => throw null; + protected TReturn root; + public TReturn Where(System.Linq.Expressions.Expression> expression) => throw null; + public TReturn Where(System.Linq.Expressions.Expression> expression) => throw null; + public TReturn WhereAll(System.Linq.Expressions.Expression> expression) => throw null; + public TReturn WhereAll(System.Linq.Expressions.Expression> expression) => throw null; + public TReturn WhereExists(NHibernate.Criterion.QueryOver detachedQuery) => throw null; + public TReturn WhereNotExists(NHibernate.Criterion.QueryOver detachedQuery) => throw null; + public TBuilderType WhereProperty(System.Linq.Expressions.Expression> expression) => throw null; + public TBuilderType WhereProperty(System.Linq.Expressions.Expression> expression) => throw null; + public TReturn WhereSome(System.Linq.Expressions.Expression> expression) => throw null; + public TReturn WhereSome(System.Linq.Expressions.Expression> expression) => throw null; + public TBuilderType WhereValue(object value) => throw null; + } + public class QueryOverSubqueryPropertyBuilder : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase, TRoot, TSubType> + { + public QueryOverSubqueryPropertyBuilder() => throw null; + } + public abstract class QueryOverSubqueryPropertyBuilderBase + { + protected QueryOverSubqueryPropertyBuilderBase() => throw null; + } + public class QueryOverSubqueryPropertyBuilderBase : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase where TReturn : NHibernate.IQueryOver + { + protected QueryOverSubqueryPropertyBuilderBase() => throw null; + public TReturn Eq(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn EqAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn Ge(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn GeAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn GeSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn Gt(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn GtAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn GtSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn In(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn Le(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn LeAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn LeSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn Lt(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn LtAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn LtSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn Ne(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + public TReturn NotIn(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; + protected string path; + protected TReturn root; + protected object value; + } + } public class LePropertyExpression : NHibernate.Criterion.PropertyExpression { - public LePropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public LePropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public LePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public LePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; + public LePropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public LePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public LePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public LePropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; protected override string Op { get => throw null; } } - - // Generated from `NHibernate.Criterion.LikeExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class LikeExpression : NHibernate.Criterion.AbstractCriterion { + public LikeExpression(string propertyName, string value, char? escapeChar, bool ignoreCase) => throw null; + public LikeExpression(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; + public LikeExpression(string propertyName, string value) => throw null; + public LikeExpression(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; + public LikeExpression(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode, char? escapeChar, bool ignoreCase) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public LikeExpression(string propertyName, string value, System.Char? escapeChar, bool ignoreCase) => throw null; - public LikeExpression(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode, System.Char? escapeChar, bool ignoreCase) => throw null; - public LikeExpression(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; - public LikeExpression(string propertyName, string value) => throw null; - public LikeExpression(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.LogicalExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class LogicalExpression : NHibernate.Criterion.AbstractCriterion { + protected LogicalExpression(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; protected NHibernate.Criterion.ICriterion LeftHandSide { get => throw null; } - protected LogicalExpression(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) => throw null; protected abstract string Op { get; } protected NHibernate.Criterion.ICriterion RightHandSide { get => throw null; } public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.LtPropertyExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class LtPropertyExpression : NHibernate.Criterion.PropertyExpression { - public LtPropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public LtPropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public LtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; - public LtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(NHibernate.Criterion.IProjection)) => throw null; + public LtPropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public LtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public LtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; + public LtPropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null; protected override string Op { get => throw null; } } - - // Generated from `NHibernate.Criterion.MatchMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class MatchMode { public static NHibernate.Criterion.MatchMode Anywhere; + protected MatchMode(int intCode, string name) => throw null; public static NHibernate.Criterion.MatchMode End; public static NHibernate.Criterion.MatchMode Exact; - protected MatchMode(int intCode, string name) => throw null; public static NHibernate.Criterion.MatchMode Start; public abstract string ToMatchString(string pattern); public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.NaturalIdentifier` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NaturalIdentifier : NHibernate.Criterion.ICriterion { + public NaturalIdentifier() => throw null; public NHibernate.Criterion.IProjection[] GetProjections() => throw null; public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public NaturalIdentifier() => throw null; public NHibernate.Criterion.NaturalIdentifier Set(string property, object value) => throw null; public NHibernate.Criterion.Lambda.LambdaNaturalIdentifierBuilder Set(System.Linq.Expressions.Expression> expression) => throw null; public NHibernate.Criterion.Lambda.LambdaNaturalIdentifierBuilder Set(System.Linq.Expressions.Expression> expression) => throw null; public NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; } - - // Generated from `NHibernate.Criterion.NotExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NotExpression : NHibernate.Criterion.AbstractCriterion { + public NotExpression(NHibernate.Criterion.ICriterion criterion) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public NotExpression(NHibernate.Criterion.ICriterion criterion) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.NotNullExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NotNullExpression : NHibernate.Criterion.AbstractCriterion { + public NotNullExpression(NHibernate.Criterion.IProjection projection) => throw null; + public NotNullExpression(string propertyName) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public NotNullExpression(string propertyName) => throw null; - public NotNullExpression(NHibernate.Criterion.IProjection projection) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.NullExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NullExpression : NHibernate.Criterion.AbstractCriterion { + public NullExpression(NHibernate.Criterion.IProjection projection) => throw null; + public NullExpression(string propertyName) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public NullExpression(string propertyName) => throw null; - public NullExpression(NHibernate.Criterion.IProjection projection) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.NullSubqueryExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NullSubqueryExpression : NHibernate.Criterion.SubqueryExpression { - internal NullSubqueryExpression(string quantifier, NHibernate.Criterion.DetachedCriteria dc) : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) => throw null; protected override NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery outerQuery) => throw null; + internal NullSubqueryExpression() : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) { } } - - // Generated from `NHibernate.Criterion.OrExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OrExpression : NHibernate.Criterion.LogicalExpression - { - protected override string Op { get => throw null; } - public OrExpression(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) : base(default(NHibernate.Criterion.ICriterion), default(NHibernate.Criterion.ICriterion)) => throw null; - } - - // Generated from `NHibernate.Criterion.Order` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Order { public static NHibernate.Criterion.Order Asc(string propertyName) => throw null; public static NHibernate.Criterion.Order Asc(NHibernate.Criterion.IProjection projection) => throw null; - public static NHibernate.Criterion.Order Desc(string propertyName) => throw null; + protected bool ascending; + public Order(NHibernate.Criterion.IProjection projection, bool ascending) => throw null; + public Order(string propertyName, bool ascending) => throw null; public static NHibernate.Criterion.Order Desc(NHibernate.Criterion.IProjection projection) => throw null; + public static NHibernate.Criterion.Order Desc(string propertyName) => throw null; public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public NHibernate.Criterion.Order IgnoreCase() => throw null; - public Order(string propertyName, bool ascending) => throw null; - public Order(NHibernate.Criterion.IProjection projection, bool ascending) => throw null; - public virtual NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public override string ToString() => throw null; - protected bool ascending; protected NHibernate.Criterion.IProjection projection; protected string propertyName; + public virtual NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public override string ToString() => throw null; + } + public class OrExpression : NHibernate.Criterion.LogicalExpression + { + public OrExpression(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) : base(default(NHibernate.Criterion.ICriterion), default(NHibernate.Criterion.ICriterion)) => throw null; + protected override string Op { get => throw null; } } - - // Generated from `NHibernate.Criterion.ProjectionList` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ProjectionList : NHibernate.Criterion.IProjection { - public NHibernate.Criterion.ProjectionList Add(NHibernate.Criterion.IProjection projection, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.ProjectionList Add(NHibernate.Criterion.IProjection projection, string alias) => throw null; public NHibernate.Criterion.ProjectionList Add(NHibernate.Criterion.IProjection proj) => throw null; + public NHibernate.Criterion.ProjectionList Add(NHibernate.Criterion.IProjection projection, string alias) => throw null; + public NHibernate.Criterion.ProjectionList Add(NHibernate.Criterion.IProjection projection, System.Linq.Expressions.Expression> alias) => throw null; public string[] Aliases { get => throw null; } public NHibernate.Criterion.ProjectionList Create() => throw null; - public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + protected ProjectionList() => throw null; public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public bool IsAggregate { get => throw null; } public bool IsGrouped { get => throw null; } - public NHibernate.Criterion.IProjection this[int index] { get => throw null; } public int Length { get => throw null; } - protected internal ProjectionList() => throw null; + public NHibernate.Criterion.IProjection this[int index] { get => throw null; } public NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.Projections` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class Projections { public static NHibernate.Criterion.IProjection Alias(NHibernate.Criterion.IProjection projection, string alias) => throw null; - public static NHibernate.Criterion.AggregateProjection Avg(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AggregateProjection Avg(string propertyName) => throw null; - public static NHibernate.Criterion.AggregateProjection Avg(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AggregateProjection Avg(NHibernate.Criterion.IProjection projection) => throw null; + public static NHibernate.Criterion.AggregateProjection Avg(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.AggregateProjection Avg(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.IProjection Cast(NHibernate.Type.IType type, NHibernate.Criterion.IProjection projection) => throw null; public static string Concat(params string[] strings) => throw null; public static NHibernate.Criterion.IProjection Conditional(NHibernate.Criterion.ICriterion criterion, NHibernate.Criterion.IProjection whenTrue, NHibernate.Criterion.IProjection whenFalse) => throw null; - public static NHibernate.Criterion.IProjection Constant(object obj, NHibernate.Type.IType type) => throw null; + public static NHibernate.Criterion.IProjection Conditional(NHibernate.Criterion.ConditionalProjectionCase[] cases, NHibernate.Criterion.IProjection elseProjection) => throw null; public static NHibernate.Criterion.IProjection Constant(object obj) => throw null; - public static NHibernate.Criterion.CountProjection Count(System.Linq.Expressions.Expression> expression) => throw null; - public static NHibernate.Criterion.CountProjection Count(string propertyName) => throw null; - public static NHibernate.Criterion.CountProjection Count(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.IProjection Constant(object obj, NHibernate.Type.IType type) => throw null; public static NHibernate.Criterion.CountProjection Count(NHibernate.Criterion.IProjection projection) => throw null; - public static NHibernate.Criterion.CountProjection CountDistinct(System.Linq.Expressions.Expression> expression) => throw null; - public static NHibernate.Criterion.CountProjection CountDistinct(string propertyName) => throw null; - public static NHibernate.Criterion.CountProjection CountDistinct(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.CountProjection Count(string propertyName) => throw null; + public static NHibernate.Criterion.CountProjection Count(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.CountProjection Count(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.CountProjection CountDistinct(NHibernate.Criterion.IProjection projection) => throw null; + public static NHibernate.Criterion.CountProjection CountDistinct(string propertyName) => throw null; + public static NHibernate.Criterion.CountProjection CountDistinct(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.CountProjection CountDistinct(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.IProjection Distinct(NHibernate.Criterion.IProjection proj) => throw null; + public static NHibernate.Criterion.EntityProjection Entity(System.Type type, string alias) => throw null; public static NHibernate.Criterion.EntityProjection Entity(string alias) => throw null; public static NHibernate.Criterion.EntityProjection Entity(System.Linq.Expressions.Expression> alias) => throw null; - public static NHibernate.Criterion.EntityProjection Entity(System.Type type, string alias) => throw null; public static NHibernate.Criterion.PropertyProjection Group(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.PropertyProjection Group(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.IProjection GroupProjection(System.Linq.Expressions.Expression> expression) => throw null; @@ -8468,60 +6318,58 @@ namespace NHibernate public static NHibernate.Criterion.PropertyProjection GroupProperty(string propertyName) => throw null; public static NHibernate.Criterion.GroupedProjection GroupProperty(NHibernate.Criterion.IProjection projection) => throw null; public static NHibernate.Criterion.IdentifierProjection Id() => throw null; - public static NHibernate.Criterion.AggregateProjection Max(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AggregateProjection Max(string propertyName) => throw null; - public static NHibernate.Criterion.AggregateProjection Max(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AggregateProjection Max(NHibernate.Criterion.IProjection projection) => throw null; - public static NHibernate.Criterion.AggregateProjection Min(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.AggregateProjection Max(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.AggregateProjection Max(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AggregateProjection Min(string propertyName) => throw null; - public static NHibernate.Criterion.AggregateProjection Min(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AggregateProjection Min(NHibernate.Criterion.IProjection projection) => throw null; + public static NHibernate.Criterion.AggregateProjection Min(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.AggregateProjection Min(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.ProjectionList ProjectionList() => throw null; - public static NHibernate.Criterion.PropertyProjection Property(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.PropertyProjection Property(string propertyName) => throw null; + public static NHibernate.Criterion.PropertyProjection Property(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.PropertyProjection Property(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.EntityProjection RootEntity() => throw null; public static NHibernate.Criterion.IProjection RowCount() => throw null; public static NHibernate.Criterion.IProjection RowCountInt64() => throw null; + public static NHibernate.Criterion.IProjection Select(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.IProjection Select(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.IProjection SqlFunction(string functionName, NHibernate.Type.IType type, params NHibernate.Criterion.IProjection[] projections) => throw null; public static NHibernate.Criterion.IProjection SqlFunction(NHibernate.Dialect.Function.ISQLFunction function, NHibernate.Type.IType type, params NHibernate.Criterion.IProjection[] projections) => throw null; public static NHibernate.Criterion.IProjection SqlGroupProjection(string sql, string groupBy, string[] columnAliases, NHibernate.Type.IType[] types) => throw null; public static NHibernate.Criterion.IProjection SqlProjection(string sql, string[] columnAliases, NHibernate.Type.IType[] types) => throw null; - public static NHibernate.Criterion.IProjection SubQuery(NHibernate.Criterion.QueryOver detachedQueryOver) => throw null; public static NHibernate.Criterion.IProjection SubQuery(NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null; - public static NHibernate.Criterion.AggregateProjection Sum(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.IProjection SubQuery(NHibernate.Criterion.QueryOver detachedQueryOver) => throw null; public static NHibernate.Criterion.AggregateProjection Sum(string propertyName) => throw null; - public static NHibernate.Criterion.AggregateProjection Sum(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AggregateProjection Sum(NHibernate.Criterion.IProjection projection) => throw null; + public static NHibernate.Criterion.AggregateProjection Sum(System.Linq.Expressions.Expression> expression) => throw null; + public static NHibernate.Criterion.AggregateProjection Sum(System.Linq.Expressions.Expression> expression) => throw null; } - - // Generated from `NHibernate.Criterion.ProjectionsExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ProjectionsExtensions + public static partial class ProjectionsExtensions { public static int Abs(this int numericProperty) => throw null; + public static long Abs(this long numericProperty) => throw null; public static double Abs(this double numericProperty) => throw null; - public static System.Int64 Abs(this System.Int64 numericProperty) => throw null; public static T AsEntity(this T alias) where T : class => throw null; public static int BitLength(this string stringProperty) => throw null; public static int CharIndex(this string stringProperty, string theChar, int startLocation) => throw null; - public static T? Coalesce(this T? objectProperty, T replaceValueIfIsNull) where T : struct => throw null; public static T Coalesce(this T objectProperty, T replaceValueIfIsNull) => throw null; + public static T? Coalesce(this T? objectProperty, T replaceValueIfIsNull) where T : struct => throw null; public static string Lower(this string stringProperty) => throw null; public static int Mod(this int numericProperty, int divisor) => throw null; - public static double Sqrt(this int numericProperty) => throw null; public static double Sqrt(this double numericProperty) => throw null; - public static double Sqrt(this System.Int64 numericProperty) => throw null; - public static double Sqrt(this System.Decimal numericProperty) => throw null; - public static double Sqrt(this System.Byte numericProperty) => throw null; + public static double Sqrt(this int numericProperty) => throw null; + public static double Sqrt(this long numericProperty) => throw null; + public static double Sqrt(this decimal numericProperty) => throw null; + public static double Sqrt(this byte numericProperty) => throw null; public static int StrLength(this string stringProperty) => throw null; public static string Substr(this string stringProperty, int startIndex, int length) => throw null; public static string TrimStr(this string stringProperty) => throw null; public static string Upper(this string stringProperty) => throw null; - public static NHibernate.Criterion.IProjection WithAlias(this NHibernate.Criterion.IProjection projection, string alias) => throw null; public static NHibernate.Criterion.IProjection WithAlias(this NHibernate.Criterion.IProjection projection, System.Linq.Expressions.Expression> alias) => throw null; + public static NHibernate.Criterion.IProjection WithAlias(this NHibernate.Criterion.IProjection projection, string alias) => throw null; } - - // Generated from `NHibernate.Criterion.Property` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Property : NHibernate.Criterion.PropertyProjection { public NHibernate.Criterion.Order Asc() => throw null; @@ -8533,24 +6381,24 @@ namespace NHibernate public NHibernate.Criterion.AbstractCriterion Eq(object value) => throw null; public NHibernate.Criterion.AbstractCriterion Eq(NHibernate.Criterion.DetachedCriteria subselect) => throw null; public NHibernate.Criterion.AbstractCriterion EqAll(NHibernate.Criterion.DetachedCriteria subselect) => throw null; - public NHibernate.Criterion.AbstractCriterion EqProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion EqProperty(NHibernate.Criterion.Property other) => throw null; + public NHibernate.Criterion.AbstractCriterion EqProperty(string other) => throw null; public static NHibernate.Criterion.Property ForName(string propertyName) => throw null; public NHibernate.Criterion.AbstractCriterion Ge(object value) => throw null; public NHibernate.Criterion.AbstractCriterion Ge(NHibernate.Criterion.DetachedCriteria subselect) => throw null; public NHibernate.Criterion.AbstractCriterion GeAll(NHibernate.Criterion.DetachedCriteria subselect) => throw null; - public NHibernate.Criterion.AbstractCriterion GeProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion GeProperty(NHibernate.Criterion.Property other) => throw null; + public NHibernate.Criterion.AbstractCriterion GeProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion GeSome(NHibernate.Criterion.DetachedCriteria subselect) => throw null; public NHibernate.Criterion.Property GetProperty(string propertyName) => throw null; public NHibernate.Criterion.PropertyProjection Group() => throw null; public NHibernate.Criterion.AbstractCriterion Gt(object value) => throw null; public NHibernate.Criterion.AbstractCriterion GtAll(NHibernate.Criterion.DetachedCriteria subselect) => throw null; - public NHibernate.Criterion.AbstractCriterion GtProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion GtProperty(NHibernate.Criterion.Property other) => throw null; + public NHibernate.Criterion.AbstractCriterion GtProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion GtSome(NHibernate.Criterion.DetachedCriteria subselect) => throw null; - public NHibernate.Criterion.AbstractCriterion In(object[] values) => throw null; public NHibernate.Criterion.AbstractCriterion In(System.Collections.ICollection values) => throw null; + public NHibernate.Criterion.AbstractCriterion In(object[] values) => throw null; public NHibernate.Criterion.AbstractCriterion In(NHibernate.Criterion.DetachedCriteria subselect) => throw null; public NHibernate.Criterion.AbstractEmptinessExpression IsEmpty() => throw null; public NHibernate.Criterion.AbstractEmptinessExpression IsNotEmpty() => throw null; @@ -8559,255 +6407,88 @@ namespace NHibernate public NHibernate.Criterion.AbstractCriterion Le(object value) => throw null; public NHibernate.Criterion.AbstractCriterion Le(NHibernate.Criterion.DetachedCriteria subselect) => throw null; public NHibernate.Criterion.AbstractCriterion LeAll(NHibernate.Criterion.DetachedCriteria subselect) => throw null; - public NHibernate.Criterion.AbstractCriterion LeProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion LeProperty(NHibernate.Criterion.Property other) => throw null; + public NHibernate.Criterion.AbstractCriterion LeProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion LeSome(NHibernate.Criterion.DetachedCriteria subselect) => throw null; - public NHibernate.Criterion.AbstractCriterion Like(string value, NHibernate.Criterion.MatchMode matchMode) => throw null; public NHibernate.Criterion.AbstractCriterion Like(object value) => throw null; + public NHibernate.Criterion.AbstractCriterion Like(string value, NHibernate.Criterion.MatchMode matchMode) => throw null; public NHibernate.Criterion.AbstractCriterion Lt(object value) => throw null; public NHibernate.Criterion.AbstractCriterion Lt(NHibernate.Criterion.DetachedCriteria subselect) => throw null; public NHibernate.Criterion.AbstractCriterion LtAll(NHibernate.Criterion.DetachedCriteria subselect) => throw null; - public NHibernate.Criterion.AbstractCriterion LtProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion LtProperty(NHibernate.Criterion.Property other) => throw null; + public NHibernate.Criterion.AbstractCriterion LtProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion LtSome(NHibernate.Criterion.DetachedCriteria subselect) => throw null; public NHibernate.Criterion.AggregateProjection Max() => throw null; public NHibernate.Criterion.AggregateProjection Min() => throw null; public NHibernate.Criterion.AbstractCriterion Ne(NHibernate.Criterion.DetachedCriteria subselect) => throw null; - public NHibernate.Criterion.AbstractCriterion NotEqProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion NotEqProperty(NHibernate.Criterion.Property other) => throw null; + public NHibernate.Criterion.AbstractCriterion NotEqProperty(string other) => throw null; public NHibernate.Criterion.AbstractCriterion NotIn(NHibernate.Criterion.DetachedCriteria subselect) => throw null; - internal Property(string propertyName) : base(default(string)) => throw null; + internal Property() : base(default(string)) { } } - - // Generated from `NHibernate.Criterion.PropertyExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class PropertyExpression : NHibernate.Criterion.AbstractCriterion { + protected PropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) => throw null; + protected PropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null; + protected PropertyExpression(string lhsPropertyName, string rhsPropertyName) => throw null; + protected PropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; protected abstract string Op { get; } - protected PropertyExpression(string lhsPropertyName, string rhsPropertyName) => throw null; - protected PropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) => throw null; - protected PropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) => throw null; - protected PropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.PropertyProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PropertyProjection : NHibernate.Criterion.SimpleProjection, NHibernate.Criterion.IPropertyProjection { + protected PropertyProjection(string propertyName, bool grouped) => throw null; + protected PropertyProjection(string propertyName) => throw null; public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override bool IsAggregate { get => throw null; } public override bool IsGrouped { get => throw null; } public string PropertyName { get => throw null; } - protected internal PropertyProjection(string propertyName, bool grouped) => throw null; - protected internal PropertyProjection(string propertyName) => throw null; public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.PropertySubqueryExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PropertySubqueryExpression : NHibernate.Criterion.SubqueryExpression { - internal PropertySubqueryExpression(string propertyName, string op, string quantifier, NHibernate.Criterion.DetachedCriteria dc) : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) => throw null; protected override NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + internal PropertySubqueryExpression() : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) { } } - - // Generated from `NHibernate.Criterion.QueryOver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class QueryOver - { - public NHibernate.Criterion.DetachedCriteria DetachedCriteria { get => throw null; } - public static NHibernate.Criterion.QueryOver Of(string entityName, System.Linq.Expressions.Expression> alias) => throw null; - public static NHibernate.Criterion.QueryOver Of(string entityName) => throw null; - public static NHibernate.Criterion.QueryOver Of(System.Linq.Expressions.Expression> alias) => throw null; - public static NHibernate.Criterion.QueryOver Of() => throw null; - protected QueryOver() => throw null; - public NHibernate.ICriteria RootCriteria { get => throw null; } - public NHibernate.ICriteria UnderlyingCriteria { get => throw null; } - protected NHibernate.ICriteria criteria; - protected NHibernate.Impl.CriteriaImpl impl; - } - - // Generated from `NHibernate.Criterion.QueryOver<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOver : NHibernate.Criterion.QueryOver, NHibernate.IQueryOver, NHibernate.IQueryOver, NHibernate.IQueryOver, NHibernate.Criterion.ISupportSelectModeQueryOver, NHibernate.Criterion.ISupportEntityJoinQueryOver - { - public NHibernate.Criterion.QueryOver And(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.QueryOver And(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.QueryOver And(NHibernate.Criterion.ICriterion expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.And(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.And(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.And(NHibernate.Criterion.ICriterion expression) => throw null; - public NHibernate.Criterion.QueryOver AndNot(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.QueryOver AndNot(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.QueryOver AndNot(NHibernate.Criterion.ICriterion expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.AndNot(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.AndNot(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.AndNot(NHibernate.Criterion.ICriterion expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder AndRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder AndRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder NHibernate.IQueryOver.AndRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder NHibernate.IQueryOver.AndRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.QueryOver Fetch(NHibernate.SelectMode mode, System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.Lambda.QueryOverFetchBuilder Fetch(System.Linq.Expressions.Expression> path) => throw null; - NHibernate.IQueryOver NHibernate.Criterion.ISupportSelectModeQueryOver.Fetch(NHibernate.SelectMode mode, System.Linq.Expressions.Expression> path) => throw null; - NHibernate.Criterion.Lambda.IQueryOverFetchBuilder NHibernate.IQueryOver.Fetch(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.Lambda.QueryOverJoinBuilder Full { get => throw null; } - NHibernate.Criterion.Lambda.IQueryOverJoinBuilder NHibernate.IQueryOver.Full { get => throw null; } - public NHibernate.Criterion.Lambda.QueryOverJoinBuilder Inner { get => throw null; } - NHibernate.Criterion.Lambda.IQueryOverJoinBuilder NHibernate.IQueryOver.Inner { get => throw null; } - public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.QueryOver JoinEntityQueryOver(System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; - public NHibernate.Criterion.QueryOver JoinEntityQueryOver(System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; - NHibernate.IQueryOver NHibernate.Criterion.ISupportEntityJoinQueryOver.JoinEntityQueryOver(System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; - public NHibernate.Criterion.Lambda.QueryOverJoinBuilder Left { get => throw null; } - NHibernate.Criterion.Lambda.IQueryOverJoinBuilder NHibernate.IQueryOver.Left { get => throw null; } - public NHibernate.Criterion.Lambda.QueryOverLockBuilder Lock(System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.Lambda.QueryOverLockBuilder Lock() => throw null; - NHibernate.Criterion.Lambda.IQueryOverLockBuilder NHibernate.IQueryOver.Lock(System.Linq.Expressions.Expression> alias) => throw null; - NHibernate.Criterion.Lambda.IQueryOverLockBuilder NHibernate.IQueryOver.Lock() => throw null; - public NHibernate.Criterion.Lambda.QueryOverOrderBuilder OrderBy(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.Lambda.QueryOverOrderBuilder OrderBy(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.Lambda.QueryOverOrderBuilder OrderBy(NHibernate.Criterion.IProjection projection) => throw null; - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.OrderBy(System.Linq.Expressions.Expression> path) => throw null; - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.OrderBy(System.Linq.Expressions.Expression> path) => throw null; - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.OrderBy(NHibernate.Criterion.IProjection projection) => throw null; - public NHibernate.Criterion.Lambda.QueryOverOrderBuilder OrderByAlias(System.Linq.Expressions.Expression> path) => throw null; - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.OrderByAlias(System.Linq.Expressions.Expression> path) => throw null; - protected internal QueryOver(string entityName, System.Linq.Expressions.Expression> alias) => throw null; - protected internal QueryOver(string entityName) => throw null; - protected internal QueryOver(System.Linq.Expressions.Expression> alias) => throw null; - protected internal QueryOver(NHibernate.Impl.CriteriaImpl rootImpl, NHibernate.ICriteria criteria) => throw null; - protected internal QueryOver(NHibernate.Impl.CriteriaImpl impl) => throw null; - protected internal QueryOver() => throw null; - public NHibernate.Criterion.Lambda.QueryOverJoinBuilder Right { get => throw null; } - NHibernate.Criterion.Lambda.IQueryOverJoinBuilder NHibernate.IQueryOver.Right { get => throw null; } - public NHibernate.Criterion.QueryOver Select(params System.Linq.Expressions.Expression>[] projections) => throw null; - public NHibernate.Criterion.QueryOver Select(params NHibernate.Criterion.IProjection[] projections) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.Select(params System.Linq.Expressions.Expression>[] projections) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.Select(params NHibernate.Criterion.IProjection[] projections) => throw null; - public NHibernate.Criterion.QueryOver SelectList(System.Func, NHibernate.Criterion.Lambda.QueryOverProjectionBuilder> list) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.SelectList(System.Func, NHibernate.Criterion.Lambda.QueryOverProjectionBuilder> list) => throw null; - public NHibernate.Criterion.Lambda.QueryOverOrderBuilder ThenBy(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.Lambda.QueryOverOrderBuilder ThenBy(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.Lambda.QueryOverOrderBuilder ThenBy(NHibernate.Criterion.IProjection projection) => throw null; - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.ThenBy(System.Linq.Expressions.Expression> path) => throw null; - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.ThenBy(System.Linq.Expressions.Expression> path) => throw null; - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.ThenBy(NHibernate.Criterion.IProjection projection) => throw null; - public NHibernate.Criterion.Lambda.QueryOverOrderBuilder ThenByAlias(System.Linq.Expressions.Expression> path) => throw null; - NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.ThenByAlias(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.QueryOver TransformUsing(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.TransformUsing(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; - public NHibernate.Criterion.QueryOver Where(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.QueryOver Where(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.QueryOver Where(NHibernate.Criterion.ICriterion expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.Where(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.Where(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.Where(NHibernate.Criterion.ICriterion expression) => throw null; - public NHibernate.Criterion.QueryOver WhereNot(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.QueryOver WhereNot(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.QueryOver WhereNot(NHibernate.Criterion.ICriterion expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.WhereNot(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.WhereNot(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.WhereNot(NHibernate.Criterion.ICriterion expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder WhereRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder WhereRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder NHibernate.IQueryOver.WhereRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; - NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder NHibernate.IQueryOver.WhereRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverSubqueryBuilder WithSubquery { get => throw null; } - NHibernate.Criterion.Lambda.IQueryOverSubqueryBuilder NHibernate.IQueryOver.WithSubquery { get => throw null; } - } - - // Generated from `NHibernate.Criterion.QueryOver<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class QueryOver : NHibernate.Criterion.QueryOver, NHibernate.IQueryOver, NHibernate.IQueryOver { public S As() => throw null; + public NHibernate.Criterion.QueryOver Cacheable() => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.Cacheable() => throw null; public NHibernate.Criterion.QueryOver CacheMode(NHibernate.CacheMode cacheMode) => throw null; NHibernate.IQueryOver NHibernate.IQueryOver.CacheMode(NHibernate.CacheMode cacheMode) => throw null; public NHibernate.Criterion.QueryOver CacheRegion(string cacheRegion) => throw null; NHibernate.IQueryOver NHibernate.IQueryOver.CacheRegion(string cacheRegion) => throw null; - public NHibernate.Criterion.QueryOver Cacheable() => throw null; - NHibernate.IQueryOver NHibernate.IQueryOver.Cacheable() => throw null; public NHibernate.Criterion.QueryOver ClearOrders() => throw null; NHibernate.IQueryOver NHibernate.IQueryOver.ClearOrders() => throw null; public NHibernate.Criterion.QueryOver Clone() => throw null; NHibernate.IQueryOver NHibernate.IQueryOver.Clone() => throw null; - protected internal NHibernate.Criterion.QueryOver Create(NHibernate.ICriteria criteria) => throw null; - NHibernate.IFutureEnumerable NHibernate.IQueryOver.Future() => throw null; - NHibernate.IFutureEnumerable NHibernate.IQueryOver.Future() => throw null; - NHibernate.IFutureValue NHibernate.IQueryOver.FutureValue() => throw null; - NHibernate.IFutureValue NHibernate.IQueryOver.FutureValue() => throw null; - public NHibernate.IQueryOver GetExecutableQueryOver(NHibernate.IStatelessSession session) => throw null; - public NHibernate.IQueryOver GetExecutableQueryOver(NHibernate.ISession session) => throw null; - System.Collections.Generic.IList NHibernate.IQueryOver.List() => throw null; - System.Collections.Generic.IList NHibernate.IQueryOver.List() => throw null; - System.Threading.Tasks.Task> NHibernate.IQueryOver.ListAsync(System.Threading.CancellationToken cancellationToken) => throw null; - System.Threading.Tasks.Task> NHibernate.IQueryOver.ListAsync(System.Threading.CancellationToken cancellationToken) => throw null; + protected NHibernate.Criterion.QueryOver Create(NHibernate.ICriteria criteria) => throw null; protected QueryOver() => throw null; + NHibernate.IFutureEnumerable NHibernate.IQueryOver.Future() => throw null; + NHibernate.IFutureEnumerable NHibernate.IQueryOver.Future() => throw null; + NHibernate.IFutureValue NHibernate.IQueryOver.FutureValue() => throw null; + NHibernate.IFutureValue NHibernate.IQueryOver.FutureValue() => throw null; + public NHibernate.IQueryOver GetExecutableQueryOver(NHibernate.ISession session) => throw null; + public NHibernate.IQueryOver GetExecutableQueryOver(NHibernate.IStatelessSession session) => throw null; + System.Collections.Generic.IList NHibernate.IQueryOver.List() => throw null; + System.Collections.Generic.IList NHibernate.IQueryOver.List() => throw null; + System.Threading.Tasks.Task> NHibernate.IQueryOver.ListAsync(System.Threading.CancellationToken cancellationToken) => throw null; + System.Threading.Tasks.Task> NHibernate.IQueryOver.ListAsync(System.Threading.CancellationToken cancellationToken) => throw null; NHibernate.IQueryOver NHibernate.IQueryOver.ReadOnly() => throw null; int NHibernate.IQueryOver.RowCount() => throw null; System.Threading.Tasks.Task NHibernate.IQueryOver.RowCountAsync(System.Threading.CancellationToken cancellationToken) => throw null; - System.Int64 NHibernate.IQueryOver.RowCountInt64() => throw null; - System.Threading.Tasks.Task NHibernate.IQueryOver.RowCountInt64Async(System.Threading.CancellationToken cancellationToken) => throw null; - U NHibernate.IQueryOver.SingleOrDefault() => throw null; + long NHibernate.IQueryOver.RowCountInt64() => throw null; + System.Threading.Tasks.Task NHibernate.IQueryOver.RowCountInt64Async(System.Threading.CancellationToken cancellationToken) => throw null; TRoot NHibernate.IQueryOver.SingleOrDefault() => throw null; - System.Threading.Tasks.Task NHibernate.IQueryOver.SingleOrDefaultAsync(System.Threading.CancellationToken cancellationToken) => throw null; + U NHibernate.IQueryOver.SingleOrDefault() => throw null; System.Threading.Tasks.Task NHibernate.IQueryOver.SingleOrDefaultAsync(System.Threading.CancellationToken cancellationToken) => throw null; + System.Threading.Tasks.Task NHibernate.IQueryOver.SingleOrDefaultAsync(System.Threading.CancellationToken cancellationToken) => throw null; public NHibernate.Criterion.QueryOver Skip(int firstResult) => throw null; NHibernate.IQueryOver NHibernate.IQueryOver.Skip(int firstResult) => throw null; public NHibernate.Criterion.QueryOver Take(int maxResults) => throw null; @@ -8817,53 +6498,204 @@ namespace NHibernate public NHibernate.Criterion.QueryOver ToRowCountQuery() => throw null; NHibernate.IQueryOver NHibernate.IQueryOver.ToRowCountQuery() => throw null; } - - // Generated from `NHibernate.Criterion.QueryOverBuilderExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class QueryOverBuilderExtensions + public abstract class QueryOver { - public static NHibernate.IQueryOver Asc(this NHibernate.Criterion.Lambda.IQueryOverOrderBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver Asc(this NHibernate.Criterion.Lambda.QueryOverOrderBuilder builder) => throw null; - public static NHibernate.IQueryOver Default(this NHibernate.Criterion.Lambda.IQueryOverFetchBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver Default(this NHibernate.Criterion.Lambda.QueryOverFetchBuilder builder) => throw null; - public static NHibernate.IQueryOver Desc(this NHibernate.Criterion.Lambda.IQueryOverOrderBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver Desc(this NHibernate.Criterion.Lambda.QueryOverOrderBuilder builder) => throw null; - public static NHibernate.IQueryOver Eager(this NHibernate.Criterion.Lambda.IQueryOverFetchBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver Eager(this NHibernate.Criterion.Lambda.QueryOverFetchBuilder builder) => throw null; - public static NHibernate.IQueryOver Force(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver Force(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; - public static NHibernate.IQueryOver IsEmpty(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver IsEmpty(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder builder) => throw null; - public static NHibernate.IQueryOver IsNotEmpty(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver IsNotEmpty(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder builder) => throw null; - public static NHibernate.IQueryOver IsNotNull(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver IsNotNull(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder builder) => throw null; - public static NHibernate.IQueryOver IsNull(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver IsNull(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder builder) => throw null; - public static NHibernate.IQueryOver Lazy(this NHibernate.Criterion.Lambda.IQueryOverFetchBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver Lazy(this NHibernate.Criterion.Lambda.QueryOverFetchBuilder builder) => throw null; - public static NHibernate.IQueryOver None(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver None(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; - public static NHibernate.IQueryOver Read(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver Read(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; - public static NHibernate.IQueryOver Upgrade(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver Upgrade(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; - public static NHibernate.IQueryOver UpgradeNoWait(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver UpgradeNoWait(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; - public static NHibernate.IQueryOver Write(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; - public static NHibernate.Criterion.QueryOver Write(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; + protected NHibernate.ICriteria criteria; + protected QueryOver() => throw null; + public NHibernate.Criterion.DetachedCriteria DetachedCriteria { get => throw null; } + protected NHibernate.Impl.CriteriaImpl impl; + public static NHibernate.Criterion.QueryOver Of() => throw null; + public static NHibernate.Criterion.QueryOver Of(System.Linq.Expressions.Expression> alias) => throw null; + public static NHibernate.Criterion.QueryOver Of(string entityName) => throw null; + public static NHibernate.Criterion.QueryOver Of(string entityName, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.ICriteria RootCriteria { get => throw null; } + public NHibernate.ICriteria UnderlyingCriteria { get => throw null; } } - - // Generated from `NHibernate.Criterion.RestrictionExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class RestrictionExtensions + public class QueryOver : NHibernate.Criterion.QueryOver, NHibernate.IQueryOver, NHibernate.IQueryOver, NHibernate.IQueryOver, NHibernate.Criterion.ISupportEntityJoinQueryOver, NHibernate.Criterion.ISupportSelectModeQueryOver + { + public NHibernate.Criterion.QueryOver And(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.QueryOver And(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.QueryOver And(NHibernate.Criterion.ICriterion expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.And(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.And(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.And(NHibernate.Criterion.ICriterion expression) => throw null; + public NHibernate.Criterion.QueryOver AndNot(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.QueryOver AndNot(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.QueryOver AndNot(NHibernate.Criterion.ICriterion expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.AndNot(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.AndNot(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.AndNot(NHibernate.Criterion.ICriterion expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder AndRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder AndRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder NHibernate.IQueryOver.AndRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder NHibernate.IQueryOver.AndRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; + protected QueryOver() => throw null; + protected QueryOver(string entityName) => throw null; + protected QueryOver(System.Linq.Expressions.Expression> alias) => throw null; + protected QueryOver(string entityName, System.Linq.Expressions.Expression> alias) => throw null; + protected QueryOver(NHibernate.Impl.CriteriaImpl impl) => throw null; + protected QueryOver(NHibernate.Impl.CriteriaImpl rootImpl, NHibernate.ICriteria criteria) => throw null; + public NHibernate.Criterion.Lambda.QueryOverFetchBuilder Fetch(System.Linq.Expressions.Expression> path) => throw null; + NHibernate.Criterion.Lambda.IQueryOverFetchBuilder NHibernate.IQueryOver.Fetch(System.Linq.Expressions.Expression> path) => throw null; + NHibernate.IQueryOver NHibernate.Criterion.ISupportSelectModeQueryOver.Fetch(NHibernate.SelectMode mode, System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.QueryOver Fetch(NHibernate.SelectMode mode, System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.Lambda.QueryOverJoinBuilder Full { get => throw null; } + NHibernate.Criterion.Lambda.IQueryOverJoinBuilder NHibernate.IQueryOver.Full { get => throw null; } + public NHibernate.Criterion.Lambda.QueryOverJoinBuilder Inner { get => throw null; } + NHibernate.Criterion.Lambda.IQueryOverJoinBuilder NHibernate.IQueryOver.Inner { get => throw null; } + public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinEntityQueryOver(System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; + public NHibernate.Criterion.QueryOver JoinEntityQueryOver(System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; + NHibernate.IQueryOver NHibernate.Criterion.ISupportEntityJoinQueryOver.JoinEntityQueryOver(System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; + public NHibernate.Criterion.Lambda.QueryOverJoinBuilder Left { get => throw null; } + NHibernate.Criterion.Lambda.IQueryOverJoinBuilder NHibernate.IQueryOver.Left { get => throw null; } + public NHibernate.Criterion.Lambda.QueryOverLockBuilder Lock() => throw null; + public NHibernate.Criterion.Lambda.QueryOverLockBuilder Lock(System.Linq.Expressions.Expression> alias) => throw null; + NHibernate.Criterion.Lambda.IQueryOverLockBuilder NHibernate.IQueryOver.Lock() => throw null; + NHibernate.Criterion.Lambda.IQueryOverLockBuilder NHibernate.IQueryOver.Lock(System.Linq.Expressions.Expression> alias) => throw null; + public NHibernate.Criterion.Lambda.QueryOverOrderBuilder OrderBy(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.Lambda.QueryOverOrderBuilder OrderBy(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.Lambda.QueryOverOrderBuilder OrderBy(NHibernate.Criterion.IProjection projection) => throw null; + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.OrderBy(System.Linq.Expressions.Expression> path) => throw null; + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.OrderBy(System.Linq.Expressions.Expression> path) => throw null; + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.OrderBy(NHibernate.Criterion.IProjection projection) => throw null; + public NHibernate.Criterion.Lambda.QueryOverOrderBuilder OrderByAlias(System.Linq.Expressions.Expression> path) => throw null; + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.OrderByAlias(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.Lambda.QueryOverJoinBuilder Right { get => throw null; } + NHibernate.Criterion.Lambda.IQueryOverJoinBuilder NHibernate.IQueryOver.Right { get => throw null; } + public NHibernate.Criterion.QueryOver Select(params System.Linq.Expressions.Expression>[] projections) => throw null; + public NHibernate.Criterion.QueryOver Select(params NHibernate.Criterion.IProjection[] projections) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.Select(params System.Linq.Expressions.Expression>[] projections) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.Select(params NHibernate.Criterion.IProjection[] projections) => throw null; + public NHibernate.Criterion.QueryOver SelectList(System.Func, NHibernate.Criterion.Lambda.QueryOverProjectionBuilder> list) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.SelectList(System.Func, NHibernate.Criterion.Lambda.QueryOverProjectionBuilder> list) => throw null; + public NHibernate.Criterion.Lambda.QueryOverOrderBuilder ThenBy(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.Lambda.QueryOverOrderBuilder ThenBy(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.Lambda.QueryOverOrderBuilder ThenBy(NHibernate.Criterion.IProjection projection) => throw null; + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.ThenBy(System.Linq.Expressions.Expression> path) => throw null; + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.ThenBy(System.Linq.Expressions.Expression> path) => throw null; + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.ThenBy(NHibernate.Criterion.IProjection projection) => throw null; + public NHibernate.Criterion.Lambda.QueryOverOrderBuilder ThenByAlias(System.Linq.Expressions.Expression> path) => throw null; + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder NHibernate.IQueryOver.ThenByAlias(System.Linq.Expressions.Expression> path) => throw null; + public NHibernate.Criterion.QueryOver TransformUsing(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.TransformUsing(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; + public NHibernate.Criterion.QueryOver Where(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.QueryOver Where(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.QueryOver Where(NHibernate.Criterion.ICriterion expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.Where(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.Where(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.Where(NHibernate.Criterion.ICriterion expression) => throw null; + public NHibernate.Criterion.QueryOver WhereNot(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.QueryOver WhereNot(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.QueryOver WhereNot(NHibernate.Criterion.ICriterion expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.WhereNot(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.WhereNot(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.IQueryOver NHibernate.IQueryOver.WhereNot(NHibernate.Criterion.ICriterion expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder WhereRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder WhereRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder NHibernate.IQueryOver.WhereRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; + NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder NHibernate.IQueryOver.WhereRestrictionOn(System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Criterion.Lambda.QueryOverSubqueryBuilder WithSubquery { get => throw null; } + NHibernate.Criterion.Lambda.IQueryOverSubqueryBuilder NHibernate.IQueryOver.WithSubquery { get => throw null; } + } + public static partial class QueryOverBuilderExtensions + { + public static NHibernate.Criterion.QueryOver Asc(this NHibernate.Criterion.Lambda.QueryOverOrderBuilder builder) => throw null; + public static NHibernate.IQueryOver Asc(this NHibernate.Criterion.Lambda.IQueryOverOrderBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver Default(this NHibernate.Criterion.Lambda.QueryOverFetchBuilder builder) => throw null; + public static NHibernate.IQueryOver Default(this NHibernate.Criterion.Lambda.IQueryOverFetchBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver Desc(this NHibernate.Criterion.Lambda.QueryOverOrderBuilder builder) => throw null; + public static NHibernate.IQueryOver Desc(this NHibernate.Criterion.Lambda.IQueryOverOrderBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver Eager(this NHibernate.Criterion.Lambda.QueryOverFetchBuilder builder) => throw null; + public static NHibernate.IQueryOver Eager(this NHibernate.Criterion.Lambda.IQueryOverFetchBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver Force(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; + public static NHibernate.IQueryOver Force(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver IsEmpty(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder builder) => throw null; + public static NHibernate.IQueryOver IsEmpty(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver IsNotEmpty(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder builder) => throw null; + public static NHibernate.IQueryOver IsNotEmpty(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver IsNotNull(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder builder) => throw null; + public static NHibernate.IQueryOver IsNotNull(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver IsNull(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder builder) => throw null; + public static NHibernate.IQueryOver IsNull(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver Lazy(this NHibernate.Criterion.Lambda.QueryOverFetchBuilder builder) => throw null; + public static NHibernate.IQueryOver Lazy(this NHibernate.Criterion.Lambda.IQueryOverFetchBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver None(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; + public static NHibernate.IQueryOver None(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver Read(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; + public static NHibernate.IQueryOver Read(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver Upgrade(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; + public static NHibernate.IQueryOver Upgrade(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver UpgradeNoWait(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; + public static NHibernate.IQueryOver UpgradeNoWait(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; + public static NHibernate.Criterion.QueryOver Write(this NHibernate.Criterion.Lambda.QueryOverLockBuilder builder) => throw null; + public static NHibernate.IQueryOver Write(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder builder) => throw null; + } + public static partial class RestrictionExtensions { public static NHibernate.Criterion.RestrictionExtensions.RestrictionBetweenBuilder IsBetween(this object projection, object lo) => throw null; public static bool IsIn(this object projection, object[] values) => throw null; public static bool IsIn(this object projection, System.Collections.ICollection values) => throw null; - public static bool IsInsensitiveLike(this string projection, string comparison, NHibernate.Criterion.MatchMode matchMode) => throw null; public static bool IsInsensitiveLike(this string projection, string comparison) => throw null; - public static bool IsLike(this string projection, string comparison, NHibernate.Criterion.MatchMode matchMode, System.Char? escapeChar) => throw null; - public static bool IsLike(this string projection, string comparison, NHibernate.Criterion.MatchMode matchMode) => throw null; + public static bool IsInsensitiveLike(this string projection, string comparison, NHibernate.Criterion.MatchMode matchMode) => throw null; public static bool IsLike(this string projection, string comparison) => throw null; + public static bool IsLike(this string projection, string comparison, NHibernate.Criterion.MatchMode matchMode) => throw null; + public static bool IsLike(this string projection, string comparison, NHibernate.Criterion.MatchMode matchMode, char? escapeChar) => throw null; public static NHibernate.Criterion.ICriterion ProcessIsBetween(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null; public static NHibernate.Criterion.ICriterion ProcessIsInArray(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null; public static NHibernate.Criterion.ICriterion ProcessIsInCollection(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null; @@ -8872,17 +6704,12 @@ namespace NHibernate public static NHibernate.Criterion.ICriterion ProcessIsLike(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null; public static NHibernate.Criterion.ICriterion ProcessIsLikeMatchMode(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null; public static NHibernate.Criterion.ICriterion ProcessIsLikeMatchModeEscapeChar(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null; - // Generated from `NHibernate.Criterion.RestrictionExtensions+RestrictionBetweenBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class RestrictionBetweenBuilder { public bool And(object hi) => throw null; public RestrictionBetweenBuilder() => throw null; } - - } - - // Generated from `NHibernate.Criterion.Restrictions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Restrictions { public static NHibernate.Criterion.AbstractCriterion AllEq(System.Collections.IDictionary propertyNameValues) => throw null; @@ -8894,32 +6721,32 @@ namespace NHibernate public static NHibernate.Criterion.SimpleExpression Eq(string propertyName, object value) => throw null; public static NHibernate.Criterion.SimpleExpression Eq(NHibernate.Criterion.IProjection projection, object value) => throw null; public static NHibernate.Criterion.AbstractCriterion EqProperty(string propertyName, string otherPropertyName) => throw null; - public static NHibernate.Criterion.AbstractCriterion EqProperty(string propertyName, NHibernate.Criterion.IProjection rshProjection) => throw null; public static NHibernate.Criterion.AbstractCriterion EqProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null; public static NHibernate.Criterion.AbstractCriterion EqProperty(NHibernate.Criterion.IProjection lshProjection, NHibernate.Criterion.IProjection rshProjection) => throw null; + public static NHibernate.Criterion.AbstractCriterion EqProperty(string propertyName, NHibernate.Criterion.IProjection rshProjection) => throw null; public static NHibernate.Criterion.SimpleExpression Ge(string propertyName, object value) => throw null; public static NHibernate.Criterion.SimpleExpression Ge(NHibernate.Criterion.IProjection projection, object value) => throw null; public static NHibernate.Criterion.AbstractCriterion GeProperty(string propertyName, string otherPropertyName) => throw null; - public static NHibernate.Criterion.AbstractCriterion GeProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null; - public static NHibernate.Criterion.AbstractCriterion GeProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null; public static NHibernate.Criterion.AbstractCriterion GeProperty(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null; + public static NHibernate.Criterion.AbstractCriterion GeProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null; + public static NHibernate.Criterion.AbstractCriterion GeProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null; public static NHibernate.Criterion.SimpleExpression Gt(string propertyName, object value) => throw null; public static NHibernate.Criterion.SimpleExpression Gt(NHibernate.Criterion.IProjection projection, object value) => throw null; public static NHibernate.Criterion.AbstractCriterion GtProperty(string propertyName, string otherPropertyName) => throw null; - public static NHibernate.Criterion.AbstractCriterion GtProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null; public static NHibernate.Criterion.AbstractCriterion GtProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null; + public static NHibernate.Criterion.AbstractCriterion GtProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null; public static NHibernate.Criterion.AbstractCriterion GtProperty(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null; public static NHibernate.Criterion.AbstractCriterion IdEq(object value) => throw null; public static NHibernate.Criterion.AbstractCriterion IdEq(NHibernate.Criterion.IProjection projection) => throw null; public static NHibernate.Criterion.AbstractCriterion In(string propertyName, object[] values) => throw null; - public static NHibernate.Criterion.AbstractCriterion In(string propertyName, System.Collections.ICollection values) => throw null; public static NHibernate.Criterion.AbstractCriterion In(NHibernate.Criterion.IProjection projection, object[] values) => throw null; public static NHibernate.Criterion.AbstractCriterion In(NHibernate.Criterion.IProjection projection, System.Collections.ICollection values) => throw null; + public static NHibernate.Criterion.AbstractCriterion In(string propertyName, System.Collections.ICollection values) => throw null; public static NHibernate.Criterion.AbstractCriterion InG(string propertyName, System.Collections.Generic.IEnumerable values) => throw null; public static NHibernate.Criterion.AbstractCriterion InG(NHibernate.Criterion.IProjection projection, System.Collections.Generic.IEnumerable values) => throw null; public static NHibernate.Criterion.AbstractCriterion InsensitiveLike(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; - public static NHibernate.Criterion.AbstractCriterion InsensitiveLike(string propertyName, object value) => throw null; public static NHibernate.Criterion.AbstractCriterion InsensitiveLike(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; + public static NHibernate.Criterion.AbstractCriterion InsensitiveLike(string propertyName, object value) => throw null; public static NHibernate.Criterion.AbstractCriterion InsensitiveLike(NHibernate.Criterion.IProjection projection, object value) => throw null; public static NHibernate.Criterion.AbstractEmptinessExpression IsEmpty(string propertyName) => throw null; public static NHibernate.Criterion.AbstractEmptinessExpression IsNotEmpty(string propertyName) => throw null; @@ -8930,112 +6757,75 @@ namespace NHibernate public static NHibernate.Criterion.SimpleExpression Le(string propertyName, object value) => throw null; public static NHibernate.Criterion.SimpleExpression Le(NHibernate.Criterion.IProjection projection, object value) => throw null; public static NHibernate.Criterion.AbstractCriterion LeProperty(string propertyName, string otherPropertyName) => throw null; - public static NHibernate.Criterion.AbstractCriterion LeProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null; public static NHibernate.Criterion.AbstractCriterion LeProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null; + public static NHibernate.Criterion.AbstractCriterion LeProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null; public static NHibernate.Criterion.AbstractCriterion LeProperty(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null; - public static NHibernate.Criterion.SimpleExpression Like(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; public static NHibernate.Criterion.SimpleExpression Like(string propertyName, object value) => throw null; - public static NHibernate.Criterion.SimpleExpression Like(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; + public static NHibernate.Criterion.AbstractCriterion Like(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode, char? escapeChar) => throw null; public static NHibernate.Criterion.SimpleExpression Like(NHibernate.Criterion.IProjection projection, object value) => throw null; - public static NHibernate.Criterion.AbstractCriterion Like(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode, System.Char? escapeChar) => throw null; + public static NHibernate.Criterion.SimpleExpression Like(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; + public static NHibernate.Criterion.SimpleExpression Like(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null; public static NHibernate.Criterion.SimpleExpression Lt(string propertyName, object value) => throw null; public static NHibernate.Criterion.SimpleExpression Lt(NHibernate.Criterion.IProjection projection, object value) => throw null; public static NHibernate.Criterion.AbstractCriterion LtProperty(string propertyName, string otherPropertyName) => throw null; - public static NHibernate.Criterion.AbstractCriterion LtProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null; public static NHibernate.Criterion.AbstractCriterion LtProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null; + public static NHibernate.Criterion.AbstractCriterion LtProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null; public static NHibernate.Criterion.AbstractCriterion LtProperty(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null; public static NHibernate.Criterion.NaturalIdentifier NaturalId() => throw null; public static NHibernate.Criterion.AbstractCriterion Not(NHibernate.Criterion.ICriterion expression) => throw null; public static NHibernate.Criterion.AbstractCriterion NotEqProperty(string propertyName, string otherPropertyName) => throw null; - public static NHibernate.Criterion.AbstractCriterion NotEqProperty(string propertyName, NHibernate.Criterion.IProjection rhsProjection) => throw null; public static NHibernate.Criterion.AbstractCriterion NotEqProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null; public static NHibernate.Criterion.AbstractCriterion NotEqProperty(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null; + public static NHibernate.Criterion.AbstractCriterion NotEqProperty(string propertyName, NHibernate.Criterion.IProjection rhsProjection) => throw null; public static NHibernate.Criterion.Lambda.LambdaRestrictionBuilder On(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.Lambda.LambdaRestrictionBuilder On(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AbstractCriterion Or(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) => throw null; - internal Restrictions() => throw null; public static NHibernate.Criterion.ICriterion Where(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.ICriterion Where(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.ICriterion WhereNot(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.ICriterion WhereNot(System.Linq.Expressions.Expression> expression) => throw null; } - - // Generated from `NHibernate.Criterion.RowCountInt64Projection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class RowCountInt64Projection : NHibernate.Criterion.RowCountProjection { - public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public RowCountInt64Projection() => throw null; + public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; } - - // Generated from `NHibernate.Criterion.RowCountProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class RowCountProjection : NHibernate.Criterion.SimpleProjection { + protected RowCountProjection() => throw null; public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override bool IsAggregate { get => throw null; } public override bool IsGrouped { get => throw null; } - protected internal RowCountProjection() => throw null; public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.SQLCriterion` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLCriterion : NHibernate.Criterion.AbstractCriterion - { - public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; - public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public SQLCriterion(NHibernate.SqlCommand.SqlString sql, object[] values, NHibernate.Type.IType[] types) => throw null; - public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Criterion.SQLProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLProjection : NHibernate.Criterion.IProjection - { - public string[] Aliases { get => throw null; } - public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public string[] GetColumnAliases(string alias, int loc) => throw null; - public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public string[] GetColumnAliases(int loc) => throw null; - public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria crit, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria crit, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public bool IsAggregate { get => throw null; } - public bool IsGrouped { get => throw null; } - public NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Criterion.SelectSubqueryExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SelectSubqueryExpression : NHibernate.Criterion.SubqueryExpression { - internal SelectSubqueryExpression(NHibernate.Criterion.DetachedCriteria dc) : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) => throw null; protected override NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + internal SelectSubqueryExpression() : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) { } } - - // Generated from `NHibernate.Criterion.SimpleExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SimpleExpression : NHibernate.Criterion.AbstractCriterion { + protected SimpleExpression(NHibernate.Criterion.IProjection projection, object value, string op) => throw null; + public SimpleExpression(string propertyName, object value, string op) => throw null; + public SimpleExpression(string propertyName, object value, string op, bool ignoreCase) => throw null; public NHibernate.Engine.TypedValue GetParameterTypedValue(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public NHibernate.Criterion.SimpleExpression IgnoreCase() => throw null; protected virtual string Op { get => throw null; } public string PropertyName { get => throw null; } - public SimpleExpression(string propertyName, object value, string op, bool ignoreCase) => throw null; - public SimpleExpression(string propertyName, object value, string op) => throw null; - protected internal SimpleExpression(NHibernate.Criterion.IProjection projection, object value, string op) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; public object Value { get => throw null; } } - - // Generated from `NHibernate.Criterion.SimpleProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class SimpleProjection : NHibernate.Criterion.IProjection { public virtual string[] Aliases { get => throw null; } public NHibernate.Criterion.IProjection As(string alias) => throw null; + protected SimpleProjection() => throw null; + protected string GetColumnAlias(int position) => throw null; public virtual string[] GetColumnAliases(string alias, int loc) => throw null; public virtual string[] GetColumnAliases(int loc) => throw null; public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; @@ -9045,36 +6835,54 @@ namespace NHibernate public abstract NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); public abstract bool IsAggregate { get; } public abstract bool IsGrouped { get; } - protected SimpleProjection() => throw null; public abstract NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery); public abstract NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery); } - - // Generated from `NHibernate.Criterion.SimpleSubqueryExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SimpleSubqueryExpression : NHibernate.Criterion.SubqueryExpression { public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; - internal SimpleSubqueryExpression(object value, string op, string quantifier, NHibernate.Criterion.DetachedCriteria dc) : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) => throw null; protected override NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + internal SimpleSubqueryExpression() : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) { } + } + public class SQLCriterion : NHibernate.Criterion.AbstractCriterion + { + public SQLCriterion(NHibernate.SqlCommand.SqlString sql, object[] values, NHibernate.Type.IType[] types) => throw null; + public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; + public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.SqlFunctionProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlFunctionProjection : NHibernate.Criterion.SimpleProjection { + public SqlFunctionProjection(string functionName, NHibernate.Type.IType returnType, params NHibernate.Criterion.IProjection[] args) => throw null; + public SqlFunctionProjection(NHibernate.Dialect.Function.ISQLFunction function, NHibernate.Type.IType returnType, params NHibernate.Criterion.IProjection[] args) => throw null; + public SqlFunctionProjection(string functionName, NHibernate.Criterion.IProjection returnTypeProjection, params NHibernate.Criterion.IProjection[] args) => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override bool IsAggregate { get => throw null; } public override bool IsGrouped { get => throw null; } - public SqlFunctionProjection(string functionName, NHibernate.Type.IType returnType, params NHibernate.Criterion.IProjection[] args) => throw null; - public SqlFunctionProjection(string functionName, NHibernate.Criterion.IProjection returnTypeProjection, params NHibernate.Criterion.IProjection[] args) => throw null; - public SqlFunctionProjection(NHibernate.Dialect.Function.ISQLFunction function, NHibernate.Type.IType returnType, params NHibernate.Criterion.IProjection[] args) => throw null; public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; } - - // Generated from `NHibernate.Criterion.Subqueries` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public sealed class SQLProjection : NHibernate.Criterion.IProjection + { + public string[] Aliases { get => throw null; } + public string[] GetColumnAliases(int loc) => throw null; + public string[] GetColumnAliases(string alias, int loc) => throw null; + public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria crit, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria crit, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public bool IsAggregate { get => throw null; } + public bool IsGrouped { get => throw null; } + public NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; + public override string ToString() => throw null; + } public class Subqueries { + public Subqueries() => throw null; public static NHibernate.Criterion.AbstractCriterion Eq(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null; public static NHibernate.Criterion.AbstractCriterion EqAll(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null; public static NHibernate.Criterion.AbstractCriterion Exists(NHibernate.Criterion.DetachedCriteria dc) => throw null; @@ -9114,7 +6922,6 @@ namespace NHibernate public static NHibernate.Criterion.AbstractCriterion PropertyNe(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null; public static NHibernate.Criterion.AbstractCriterion PropertyNotIn(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null; public static NHibernate.Criterion.AbstractCriterion Select(NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null; - public Subqueries() => throw null; public static NHibernate.Criterion.AbstractCriterion Where(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AbstractCriterion Where(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AbstractCriterion WhereAll(System.Linq.Expressions.Expression> expression) => throw null; @@ -9127,445 +6934,69 @@ namespace NHibernate public static NHibernate.Criterion.AbstractCriterion WhereSome(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.Lambda.LambdaSubqueryBuilder WhereValue(object value) => throw null; } - - // Generated from `NHibernate.Criterion.SubqueryExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class SubqueryExpression : NHibernate.Criterion.AbstractCriterion { public NHibernate.ICriteria Criteria { get => throw null; } + protected SubqueryExpression(string op, string quantifier, NHibernate.Criterion.DetachedCriteria dc) => throw null; + protected SubqueryExpression(string op, string quantifier, NHibernate.Criterion.DetachedCriteria dc, bool prefixOp) => throw null; public override NHibernate.Criterion.IProjection[] GetProjections() => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public NHibernate.Type.IType[] GetTypes() => throw null; - protected SubqueryExpression(string op, string quantifier, NHibernate.Criterion.DetachedCriteria dc, bool prefixOp) => throw null; - protected SubqueryExpression(string op, string quantifier, NHibernate.Criterion.DetachedCriteria dc) => throw null; protected abstract NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery outerQuery); public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Criterion.SubqueryProjection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SubqueryProjection : NHibernate.Criterion.SimpleProjection { + protected SubqueryProjection(NHibernate.Criterion.SelectSubqueryExpression subquery) => throw null; public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override bool IsAggregate { get => throw null; } public override bool IsGrouped { get => throw null; } - protected internal SubqueryProjection(NHibernate.Criterion.SelectSubqueryExpression subquery) => throw null; public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null; public override string ToString() => throw null; } - - namespace Lambda - { - // Generated from `NHibernate.Criterion.Lambda.IQueryOverFetchBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IQueryOverFetchBuilder : NHibernate.Criterion.Lambda.QueryOverFetchBuilderBase, TRoot, TSubType> - { - public IQueryOverFetchBuilder(NHibernate.IQueryOver root, System.Linq.Expressions.Expression> path) : base(default(NHibernate.IQueryOver), default(System.Linq.Expressions.Expression>)) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.IQueryOverJoinBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IQueryOverJoinBuilder : NHibernate.Criterion.Lambda.QueryOverJoinBuilderBase, TRoot, TSubType> - { - public IQueryOverJoinBuilder(NHibernate.IQueryOver root, NHibernate.SqlCommand.JoinType joinType) : base(default(NHibernate.IQueryOver), default(NHibernate.SqlCommand.JoinType)) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.IQueryOverLockBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IQueryOverLockBuilder : NHibernate.Criterion.Lambda.QueryOverLockBuilderBase, TRoot, TSubType> - { - public IQueryOverLockBuilder(NHibernate.IQueryOver root, System.Linq.Expressions.Expression> alias) : base(default(NHibernate.IQueryOver), default(System.Linq.Expressions.Expression>)) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IQueryOverOrderBuilder : NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase, TRoot, TSubType> - { - public IQueryOverOrderBuilder(NHibernate.IQueryOver root, System.Linq.Expressions.Expression> path, bool isAlias) : base(default(NHibernate.IQueryOver), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null; - public IQueryOverOrderBuilder(NHibernate.IQueryOver root, System.Linq.Expressions.Expression> path) : base(default(NHibernate.IQueryOver), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null; - public IQueryOverOrderBuilder(NHibernate.IQueryOver root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.IQueryOver), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IQueryOverRestrictionBuilder : NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase, TRoot, TSubType> - { - public IQueryOverRestrictionBuilder(NHibernate.IQueryOver root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.IQueryOver), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null; - public NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder Not { get => throw null; } - } - - // Generated from `NHibernate.Criterion.Lambda.IQueryOverSubqueryBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IQueryOverSubqueryBuilder : NHibernate.Criterion.Lambda.QueryOverSubqueryBuilderBase, TRoot, TSubType, NHibernate.Criterion.Lambda.IQueryOverSubqueryPropertyBuilder> - { - public IQueryOverSubqueryBuilder(NHibernate.IQueryOver root) : base(default(NHibernate.IQueryOver)) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.IQueryOverSubqueryPropertyBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IQueryOverSubqueryPropertyBuilder : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase, TRoot, TSubType> - { - public IQueryOverSubqueryPropertyBuilder() => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.LambdaNaturalIdentifierBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LambdaNaturalIdentifierBuilder - { - public NHibernate.Criterion.NaturalIdentifier Is(object value) => throw null; - public LambdaNaturalIdentifierBuilder(NHibernate.Criterion.NaturalIdentifier naturalIdentifier, string propertyName) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.LambdaRestrictionBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LambdaRestrictionBuilder - { - public NHibernate.Criterion.Lambda.LambdaRestrictionBuilder.LambdaBetweenBuilder IsBetween(object lo) => throw null; - public NHibernate.Criterion.AbstractCriterion IsEmpty { get => throw null; } - public NHibernate.Criterion.AbstractCriterion IsIn(object[] values) => throw null; - public NHibernate.Criterion.AbstractCriterion IsIn(System.Collections.ICollection values) => throw null; - public NHibernate.Criterion.AbstractCriterion IsInG(System.Collections.Generic.IEnumerable values) => throw null; - public NHibernate.Criterion.AbstractCriterion IsInsensitiveLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null; - public NHibernate.Criterion.AbstractCriterion IsInsensitiveLike(object value) => throw null; - public NHibernate.Criterion.AbstractCriterion IsLike(string value, NHibernate.Criterion.MatchMode matchMode, System.Char? escapeChar) => throw null; - public NHibernate.Criterion.AbstractCriterion IsLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null; - public NHibernate.Criterion.AbstractCriterion IsLike(object value) => throw null; - public NHibernate.Criterion.AbstractCriterion IsNotEmpty { get => throw null; } - public NHibernate.Criterion.AbstractCriterion IsNotNull { get => throw null; } - public NHibernate.Criterion.AbstractCriterion IsNull { get => throw null; } - // Generated from `NHibernate.Criterion.Lambda.LambdaRestrictionBuilder+LambdaBetweenBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LambdaBetweenBuilder - { - public NHibernate.Criterion.AbstractCriterion And(object hi) => throw null; - public LambdaBetweenBuilder(NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection, object lo, bool isNot) => throw null; - } - - - public LambdaRestrictionBuilder(NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) => throw null; - public NHibernate.Criterion.Lambda.LambdaRestrictionBuilder Not { get => throw null; } - } - - // Generated from `NHibernate.Criterion.Lambda.LambdaSubqueryBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LambdaSubqueryBuilder - { - public NHibernate.Criterion.AbstractCriterion Eq(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion EqAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion Ge(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion GeAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion GeSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion Gt(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion GtAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion GtSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion In(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public LambdaSubqueryBuilder(string propertyName, object value) => throw null; - public NHibernate.Criterion.AbstractCriterion Le(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion LeAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion LeSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion Lt(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion LtAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion LtSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion Ne(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public NHibernate.Criterion.AbstractCriterion NotIn(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverFetchBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverFetchBuilder : NHibernate.Criterion.Lambda.QueryOverFetchBuilderBase, TRoot, TSubType> - { - public QueryOverFetchBuilder(NHibernate.Criterion.QueryOver root, System.Linq.Expressions.Expression> path) : base(default(NHibernate.Criterion.QueryOver), default(System.Linq.Expressions.Expression>)) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverFetchBuilderBase<,,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverFetchBuilderBase where TReturn : NHibernate.IQueryOver - { - public TReturn Default { get => throw null; } - public TReturn Eager { get => throw null; } - public TReturn Lazy { get => throw null; } - protected QueryOverFetchBuilderBase(TReturn root, System.Linq.Expressions.Expression> path) => throw null; - protected string path; - protected TReturn root; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverJoinBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverJoinBuilder : NHibernate.Criterion.Lambda.QueryOverJoinBuilderBase, TRoot, TSubType> - { - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression> path) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias) => throw null; - public NHibernate.Criterion.QueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path) => throw null; - public QueryOverJoinBuilder(NHibernate.Criterion.QueryOver root, NHibernate.SqlCommand.JoinType joinType) : base(default(NHibernate.Criterion.QueryOver), default(NHibernate.SqlCommand.JoinType)) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverJoinBuilderBase<,,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverJoinBuilderBase where TReturn : NHibernate.IQueryOver - { - public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - public TReturn JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias) => throw null; - public QueryOverJoinBuilderBase(TReturn root, NHibernate.SqlCommand.JoinType joinType) => throw null; - protected NHibernate.SqlCommand.JoinType joinType; - protected TReturn root; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverLockBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverLockBuilder : NHibernate.Criterion.Lambda.QueryOverLockBuilderBase, TRoot, TSubType> - { - public QueryOverLockBuilder(NHibernate.Criterion.QueryOver root, System.Linq.Expressions.Expression> alias) : base(default(NHibernate.Criterion.QueryOver), default(System.Linq.Expressions.Expression>)) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverLockBuilderBase<,,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverLockBuilderBase where TReturn : NHibernate.IQueryOver - { - public TReturn Force { get => throw null; } - public TReturn None { get => throw null; } - protected QueryOverLockBuilderBase(TReturn root, System.Linq.Expressions.Expression> alias) => throw null; - public TReturn Read { get => throw null; } - public TReturn Upgrade { get => throw null; } - public TReturn UpgradeNoWait { get => throw null; } - public TReturn Write { get => throw null; } - protected string alias; - protected TReturn root; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverOrderBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverOrderBuilder : NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase, TRoot, TSubType> - { - public QueryOverOrderBuilder(NHibernate.Criterion.QueryOver root, System.Linq.Expressions.Expression> path, bool isAlias) : base(default(NHibernate.Criterion.QueryOver), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null; - public QueryOverOrderBuilder(NHibernate.Criterion.QueryOver root, System.Linq.Expressions.Expression> path) : base(default(NHibernate.Criterion.QueryOver), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null; - public QueryOverOrderBuilder(NHibernate.Criterion.QueryOver root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.Criterion.QueryOver), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase<,,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverOrderBuilderBase where TReturn : NHibernate.IQueryOver - { - public TReturn Asc { get => throw null; } - public TReturn Desc { get => throw null; } - protected QueryOverOrderBuilderBase(TReturn root, System.Linq.Expressions.Expression> path, bool isAlias) => throw null; - protected QueryOverOrderBuilderBase(TReturn root, System.Linq.Expressions.Expression> path) => throw null; - protected QueryOverOrderBuilderBase(TReturn root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) => throw null; - protected bool isAlias; - protected System.Linq.Expressions.LambdaExpression path; - protected NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection; - protected TReturn root; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverProjectionBuilder - { - public QueryOverProjectionBuilder() => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder Select(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder Select(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder Select(NHibernate.Criterion.IProjection projection) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectAvg(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectAvg(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectCount(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectCount(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectCountDistinct(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectCountDistinct(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectGroup(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectGroup(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectMax(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectMax(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectMin(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectMin(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectSubQuery(NHibernate.Criterion.QueryOver detachedQueryOver) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectSum(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder SelectSum(System.Linq.Expressions.Expression> expression) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder WithAlias(string alias) => throw null; - public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder WithAlias(System.Linq.Expressions.Expression> alias) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverRestrictionBuilder : NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase, TRoot, TSubType> - { - public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder Not { get => throw null; } - public QueryOverRestrictionBuilder(NHibernate.Criterion.QueryOver root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.Criterion.QueryOver), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<,,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverRestrictionBuilderBase where TReturn : NHibernate.IQueryOver - { - public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase.LambdaBetweenBuilder IsBetween(object lo) => throw null; - public TReturn IsEmpty { get => throw null; } - public TReturn IsIn(object[] values) => throw null; - public TReturn IsIn(System.Collections.ICollection values) => throw null; - public TReturn IsInG(System.Collections.Generic.IEnumerable values) => throw null; - public TReturn IsInsensitiveLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null; - public TReturn IsInsensitiveLike(object value) => throw null; - public TReturn IsLike(string value, NHibernate.Criterion.MatchMode matchMode, System.Char? escapeChar) => throw null; - public TReturn IsLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null; - public TReturn IsLike(object value) => throw null; - public TReturn IsNotEmpty { get => throw null; } - public TReturn IsNotNull { get => throw null; } - public TReturn IsNull { get => throw null; } - // Generated from `NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<,,>+LambdaBetweenBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LambdaBetweenBuilder - { - public TReturn And(object hi) => throw null; - public LambdaBetweenBuilder(TReturn root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection, bool isNot, object lo) => throw null; - } - - - public QueryOverRestrictionBuilderBase(TReturn root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) => throw null; - protected bool isNot; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverSubqueryBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverSubqueryBuilder : NHibernate.Criterion.Lambda.QueryOverSubqueryBuilderBase, TRoot, TSubType, NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilder> - { - public QueryOverSubqueryBuilder(NHibernate.Criterion.QueryOver root) : base(default(NHibernate.Criterion.QueryOver)) => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverSubqueryBuilderBase<,,,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverSubqueryBuilderBase where TBuilderType : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase, new() where TReturn : NHibernate.IQueryOver - { - protected QueryOverSubqueryBuilderBase(TReturn root) => throw null; - public TReturn Where(System.Linq.Expressions.Expression> expression) => throw null; - public TReturn Where(System.Linq.Expressions.Expression> expression) => throw null; - public TReturn WhereAll(System.Linq.Expressions.Expression> expression) => throw null; - public TReturn WhereAll(System.Linq.Expressions.Expression> expression) => throw null; - public TReturn WhereExists(NHibernate.Criterion.QueryOver detachedQuery) => throw null; - public TReturn WhereNotExists(NHibernate.Criterion.QueryOver detachedQuery) => throw null; - public TBuilderType WhereProperty(System.Linq.Expressions.Expression> expression) => throw null; - public TBuilderType WhereProperty(System.Linq.Expressions.Expression> expression) => throw null; - public TReturn WhereSome(System.Linq.Expressions.Expression> expression) => throw null; - public TReturn WhereSome(System.Linq.Expressions.Expression> expression) => throw null; - public TBuilderType WhereValue(object value) => throw null; - protected TReturn root; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverSubqueryPropertyBuilder : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase, TRoot, TSubType> - { - public QueryOverSubqueryPropertyBuilder() => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class QueryOverSubqueryPropertyBuilderBase - { - protected QueryOverSubqueryPropertyBuilderBase() => throw null; - } - - // Generated from `NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase<,,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryOverSubqueryPropertyBuilderBase : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase where TReturn : NHibernate.IQueryOver - { - public TReturn Eq(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn EqAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn Ge(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn GeAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn GeSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn Gt(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn GtAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn GtSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn In(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn Le(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn LeAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn LeSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn Lt(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn LtAll(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn LtSome(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn Ne(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - public TReturn NotIn(NHibernate.Criterion.QueryOver detachedCriteria) => throw null; - protected QueryOverSubqueryPropertyBuilderBase() => throw null; - protected string path; - protected TReturn root; - protected object value; - } - - } } namespace DebugHelpers { - // Generated from `NHibernate.DebugHelpers.CollectionProxy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionProxy { public CollectionProxy(System.Collections.ICollection dic) => throw null; public object[] Items { get => throw null; } } - - // Generated from `NHibernate.DebugHelpers.CollectionProxy<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionProxy { public CollectionProxy(System.Collections.Generic.ICollection dic) => throw null; public T[] Items { get => throw null; } } - - // Generated from `NHibernate.DebugHelpers.DictionaryProxy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DictionaryProxy { public DictionaryProxy(System.Collections.IDictionary dic) => throw null; public System.Collections.DictionaryEntry[] Items { get => throw null; } } - - // Generated from `NHibernate.DebugHelpers.DictionaryProxy<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DictionaryProxy { public DictionaryProxy(System.Collections.Generic.IDictionary dic) => throw null; public System.Collections.Generic.KeyValuePair[] Items { get => throw null; } } - } namespace Dialect { - // Generated from `NHibernate.Dialect.AnsiSqlKeywords` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AnsiSqlKeywords { public AnsiSqlKeywords() => throw null; public static System.Collections.Generic.IReadOnlyCollection Sql2003; } - - // Generated from `NHibernate.Dialect.BitwiseFunctionOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BitwiseFunctionOperation : NHibernate.Dialect.Function.BitwiseFunctionOperation { public BitwiseFunctionOperation(string functionName) : base(default(string)) => throw null; } - - // Generated from `NHibernate.Dialect.BitwiseNativeOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BitwiseNativeOperation : NHibernate.Dialect.Function.BitwiseNativeOperation { - public BitwiseNativeOperation(string sqlOpToken, bool isNot) : base(default(string)) => throw null; public BitwiseNativeOperation(string sqlOpToken) : base(default(string)) => throw null; + public BitwiseNativeOperation(string sqlOpToken, bool isNot) : base(default(string)) => throw null; } - - // Generated from `NHibernate.Dialect.DB2400Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DB2400Dialect : NHibernate.Dialect.DB2Dialect { public DB2400Dialect() => throw null; @@ -9577,8 +7008,6 @@ namespace NHibernate public override bool SupportsVariableLimit { get => throw null; } public override bool UseMaxForLimit { get => throw null; } } - - // Generated from `NHibernate.Dialect.DB2Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DB2Dialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } @@ -9589,7 +7018,7 @@ namespace NHibernate public override string GetCreateSequenceString(string sequenceName) => throw null; public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null; public override string GetDropSequenceString(string sequenceName) => throw null; - public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString querySqlString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; + public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString sql, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; public override string GetSelectSequenceNextValString(string sequenceName) => throw null; public override string GetSequenceNextValString(string sequenceName) => throw null; public override string IdentityColumnString { get => throw null; } @@ -9602,27 +7031,26 @@ namespace NHibernate public override bool SupportsIdentityColumns { get => throw null; } public override bool SupportsLimit { get => throw null; } public override bool SupportsLobValueChangePropogation { get => throw null; } + public override bool SupportsNullInUnique { get => throw null; } public override bool SupportsResultSetPositionQueryMethodsOnForwardOnlyCursor { get => throw null; } public override bool SupportsSequences { get => throw null; } public override bool SupportsVariableLimit { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } public override bool UseMaxForLimit { get => throw null; } } - - // Generated from `NHibernate.Dialect.Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class Dialect { public virtual string AddColumnString { get => throw null; } public virtual string AddColumnSuffixString { get => throw null; } public virtual NHibernate.SqlCommand.SqlString AddIdentifierOutParameterToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName, string parameterName) => throw null; - public virtual NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName) => throw null; public virtual NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString) => throw null; + public virtual NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName) => throw null; public virtual string AppendLockHint(NHibernate.LockMode lockMode, string tableName) => throw null; public virtual NHibernate.SqlCommand.SqlString ApplyLocksToSql(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary aliasedLockModes, System.Collections.Generic.IDictionary keyColumnNames) => throw null; public virtual bool AreStringComparisonsCaseInsensitive { get => throw null; } public virtual NHibernate.Exceptions.ISQLExceptionConverter BuildSQLExceptionConverter() => throw null; public virtual string CascadeConstraintsString { get => throw null; } - public virtual System.Char CloseQuote { get => throw null; } + public virtual char CloseQuote { get => throw null; } public virtual void Configure(System.Collections.Generic.IDictionary settings) => throw null; public virtual string ConvertQuotesForAliasName(string aliasName) => throw null; public virtual string ConvertQuotesForCatalogName(string catalogName) => throw null; @@ -9635,16 +7063,16 @@ namespace NHibernate public virtual string CreateTableString { get => throw null; } public virtual string CreateTemporaryTablePostfix { get => throw null; } public virtual string CreateTemporaryTableString { get => throw null; } - public virtual string CurrentTimestampSQLFunctionName { get => throw null; } - public virtual string CurrentTimestampSelectString { get => throw null; } - public virtual string CurrentUtcTimestampSQLFunctionName { get => throw null; } - public virtual string CurrentUtcTimestampSelectString { get => throw null; } - protected const string DefaultBatchSize = default; - public int DefaultCastLength { get => throw null; set => throw null; } - public System.Byte DefaultCastPrecision { get => throw null; set => throw null; } - public System.Byte DefaultCastScale { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary DefaultProperties { get => throw null; } protected Dialect() => throw null; + public virtual string CurrentTimestampSelectString { get => throw null; } + public virtual string CurrentTimestampSQLFunctionName { get => throw null; } + public virtual string CurrentUtcTimestampSelectString { get => throw null; } + public virtual string CurrentUtcTimestampSQLFunctionName { get => throw null; } + protected static string DefaultBatchSize; + public int DefaultCastLength { get => throw null; set { } } + public byte DefaultCastPrecision { get => throw null; set { } } + public byte DefaultCastScale { get => throw null; set { } } + public System.Collections.Generic.IDictionary DefaultProperties { get => throw null; } public virtual string DisableForeignKeyConstraintsString { get => throw null; } public virtual bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; } public virtual bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; } @@ -9667,8 +7095,8 @@ namespace NHibernate protected virtual string GetCreateSequenceString(string sequenceName, int initialValue, int incrementSize) => throw null; public virtual string[] GetCreateSequenceStrings(string sequenceName, int initialValue, int incrementSize) => throw null; public virtual NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null; - public static NHibernate.Dialect.Dialect GetDialect(System.Collections.Generic.IDictionary props) => throw null; public static NHibernate.Dialect.Dialect GetDialect() => throw null; + public static NHibernate.Dialect.Dialect GetDialect(System.Collections.Generic.IDictionary props) => throw null; public virtual string GetDropForeignKeyConstraintString(string constraintName) => throw null; public virtual string GetDropIndexConstraintString(string constraintName) => throw null; public virtual string GetDropPrimaryKeyConstraintString(string constraintName) => throw null; @@ -9676,18 +7104,18 @@ namespace NHibernate public virtual string[] GetDropSequenceStrings(string sequenceName) => throw null; public virtual string GetDropTableString(string tableName) => throw null; public virtual string GetForUpdateNowaitString(string aliases) => throw null; - public virtual string GetForUpdateString(string aliases) => throw null; public virtual string GetForUpdateString(NHibernate.LockMode lockMode) => throw null; + public virtual string GetForUpdateString(string aliases) => throw null; public virtual string GetIdentityColumnString(System.Data.DbType type) => throw null; public virtual string GetIdentitySelectString(string identityColumn, string tableName, System.Data.DbType type) => throw null; - public virtual string GetIfExistsDropConstraint(string catalog, string schema, string table, string name) => throw null; public virtual string GetIfExistsDropConstraint(NHibernate.Mapping.Table table, string name) => throw null; - public virtual string GetIfExistsDropConstraintEnd(string catalog, string schema, string table, string name) => throw null; + public virtual string GetIfExistsDropConstraint(string catalog, string schema, string table, string name) => throw null; public virtual string GetIfExistsDropConstraintEnd(NHibernate.Mapping.Table table, string name) => throw null; - public virtual string GetIfNotExistsCreateConstraint(string catalog, string schema, string table, string name) => throw null; + public virtual string GetIfExistsDropConstraintEnd(string catalog, string schema, string table, string name) => throw null; public virtual string GetIfNotExistsCreateConstraint(NHibernate.Mapping.Table table, string name) => throw null; - public virtual string GetIfNotExistsCreateConstraintEnd(string catalog, string schema, string table, string name) => throw null; + public virtual string GetIfNotExistsCreateConstraint(string catalog, string schema, string table, string name) => throw null; public virtual string GetIfNotExistsCreateConstraintEnd(NHibernate.Mapping.Table table, string name) => throw null; + public virtual string GetIfNotExistsCreateConstraintEnd(string catalog, string schema, string table, string name) => throw null; public virtual NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; public NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, int? offset, int? limit, NHibernate.SqlCommand.Parameter offsetParameter, NHibernate.SqlCommand.Parameter limitParameter) => throw null; public int GetLimitValue(int offset, int limit) => throw null; @@ -9700,8 +7128,8 @@ namespace NHibernate public virtual string GetSelectSequenceNextValString(string sequenceName) => throw null; public virtual string GetSequenceNextValString(string sequenceName) => throw null; public virtual string GetTableComment(string comment) => throw null; - public virtual string GetTypeName(NHibernate.SqlTypes.SqlType sqlType, int length, int precision, int scale) => throw null; public virtual string GetTypeName(NHibernate.SqlTypes.SqlType sqlType) => throw null; + public virtual string GetTypeName(NHibernate.SqlTypes.SqlType sqlType, int length, int precision, int scale) => throw null; public virtual bool HasDataTypeInIdentityColumn { get => throw null; } public virtual bool HasSelfReferentialForeignKeyBug { get => throw null; } public virtual string IdentityColumnString { get => throw null; } @@ -9710,6 +7138,7 @@ namespace NHibernate public virtual System.Type IdentityStyleIdentifierGeneratorClass { get => throw null; } public virtual NHibernate.Dialect.InsertGeneratedIdentifierRetrievalMethod InsertGeneratedIdentifierRetrievalMethod { get => throw null; } public virtual bool IsCurrentTimestampSelectStringCallable { get => throw null; } + public virtual bool IsDecimalStoredAsFloatingPointNumber { get => throw null; } public bool IsKeyword(string str) => throw null; public virtual bool IsKnownToken(string currentToken, string nextToken) => throw null; public virtual bool IsQuoted(string name) => throw null; @@ -9718,55 +7147,49 @@ namespace NHibernate public virtual int MaxAliasLength { get => throw null; } public virtual int? MaxNumberOfParameters { get => throw null; } public virtual System.Type NativeIdentifierGeneratorClass { get => throw null; } - protected const string NoBatch = default; + protected static string NoBatch; public virtual string NoColumnsInsertString { get => throw null; } public virtual string NullColumnString { get => throw null; } public virtual bool OffsetStartsAtOne { get => throw null; } - public virtual System.Char OpenQuote { get => throw null; } + public virtual char OpenQuote { get => throw null; } public virtual NHibernate.SqlTypes.SqlType OverrideSqlType(NHibernate.SqlTypes.SqlType type) => throw null; public virtual bool? PerformTemporaryTableDDLInIsolation() => throw null; - public const string PossibleClosedQuoteChars = default; - public const string PossibleQuoteChars = default; + public static string PossibleClosedQuoteChars; + public static string PossibleQuoteChars; public virtual string PrimaryKeyString { get => throw null; } public virtual string Qualify(string catalog, string schema, string name) => throw null; public virtual bool QualifyIndexName { get => throw null; } public virtual string QuerySequencesString { get => throw null; } protected virtual string Quote(string name) => throw null; + public class QuotedAndParenthesisStringTokenizer : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public QuotedAndParenthesisStringTokenizer(NHibernate.SqlCommand.SqlString original) => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; + public System.Collections.Generic.IList GetTokens() => throw null; + public enum TokenizerState + { + WhiteSpace = 0, + Quoted = 1, + InParenthesis = 2, + Token = 3, + } + } public virtual string QuoteForAliasName(string aliasName) => throw null; public virtual string QuoteForCatalogName(string catalogName) => throw null; public virtual string QuoteForColumnName(string columnName) => throw null; public virtual string QuoteForSchemaName(string schemaName) => throw null; public virtual string QuoteForTableName(string tableName) => throw null; - // Generated from `NHibernate.Dialect.Dialect+QuotedAndParenthesisStringTokenizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QuotedAndParenthesisStringTokenizer : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable - { - public System.Collections.IEnumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - public System.Collections.Generic.IList GetTokens() => throw null; - public QuotedAndParenthesisStringTokenizer(NHibernate.SqlCommand.SqlString original) => throw null; - // Generated from `NHibernate.Dialect.Dialect+QuotedAndParenthesisStringTokenizer+TokenizerState` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum TokenizerState - { - InParenthesis, - Quoted, - Token, - WhiteSpace, - } - - - } - - - protected void RegisterColumnType(System.Data.DbType code, string name) => throw null; protected void RegisterColumnType(System.Data.DbType code, int capacity, string name) => throw null; + protected void RegisterColumnType(System.Data.DbType code, string name) => throw null; protected void RegisterFunction(string name, NHibernate.Dialect.Function.ISQLFunction function) => throw null; protected void RegisterKeyword(string word) => throw null; - protected internal void RegisterKeywords(params string[] keywords) => throw null; - protected internal void RegisterKeywords(System.Collections.Generic.IEnumerable keywords) => throw null; + protected void RegisterKeywords(params string[] keywords) => throw null; + protected void RegisterKeywords(System.Collections.Generic.IEnumerable keywords) => throw null; public virtual int RegisterResultSetOutParameter(System.Data.Common.DbCommand statement, int position) => throw null; public virtual bool ReplaceResultVariableInOrderByClauseWithPosition { get => throw null; } public virtual string SelectGUIDString { get => throw null; } - public virtual System.Char StatementTerminator { get => throw null; } + public virtual char StatementTerminator { get => throw null; } public virtual bool SupportsBindAsCallableArgument { get => throw null; } public virtual bool SupportsCascadeDelete { get => throw null; } public virtual bool SupportsCircularCascadeDeleteConstraints { get => throw null; } @@ -9782,8 +7205,8 @@ namespace NHibernate public virtual bool SupportsEmptyInList { get => throw null; } public virtual bool SupportsExistsInSelect { get => throw null; } public virtual bool SupportsExpectedLobUsagePattern { get => throw null; } - public virtual bool SupportsForUpdateOf { get => throw null; } public virtual bool SupportsForeignKeyConstraintInAlterTable { get => throw null; } + public virtual bool SupportsForUpdateOf { get => throw null; } public virtual bool SupportsHavingOnGroupedByComputation { get => throw null; } public virtual bool SupportsIdentityColumns { get => throw null; } public virtual bool SupportsIfExistsAfterTableName { get => throw null; } @@ -9804,10 +7227,10 @@ namespace NHibernate public virtual bool SupportsScalarSubSelects { get => throw null; } public virtual bool SupportsSequences { get => throw null; } public virtual bool SupportsSqlBatches { get => throw null; } - public virtual bool SupportsSubSelects { get => throw null; } - public virtual bool SupportsSubSelectsWithPagingAsInPredicateRhs { get => throw null; } public virtual bool SupportsSubqueryOnMutatingTable { get => throw null; } public virtual bool SupportsSubselectAsInPredicateLHS { get => throw null; } + public virtual bool SupportsSubSelects { get => throw null; } + public virtual bool SupportsSubSelectsWithPagingAsInPredicateRhs { get => throw null; } public virtual bool SupportsTableCheck { get => throw null; } public virtual bool SupportsTemporaryTables { get => throw null; } public virtual bool SupportsUnboundedLobLocatorMaterialization { get => throw null; } @@ -9816,27 +7239,25 @@ namespace NHibernate public virtual bool SupportsUniqueConstraintInCreateAlterTable { get => throw null; } public virtual bool SupportsVariableLimit { get => throw null; } public virtual string TableTypeString { get => throw null; } - public virtual System.Int64 TimestampResolutionInTicks { get => throw null; } + public virtual long TimestampResolutionInTicks { get => throw null; } public virtual string ToBooleanValueString(bool value) => throw null; public virtual bool TryGetCastTypeName(NHibernate.SqlTypes.SqlType sqlType, out string typeName) => throw null; protected virtual bool TryGetCastTypeName(NHibernate.SqlTypes.SqlType sqlType, NHibernate.Dialect.TypeNames castTypeNames, out string typeName) => throw null; - public virtual string[] UnQuote(string[] quoted) => throw null; public virtual string UnQuote(string quoted) => throw null; + public virtual string[] UnQuote(string[] quoted) => throw null; public virtual bool UseInputStreamToInsertBlob { get => throw null; } public virtual bool UseMaxForLimit { get => throw null; } public virtual bool UsesColumnsWithForUpdateOf { get => throw null; } public virtual NHibernate.Exceptions.IViolatedConstraintNameExtracter ViolatedConstraintNameExtracter { get => throw null; } } - - // Generated from `NHibernate.Dialect.FirebirdDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FirebirdDialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } public override NHibernate.SqlCommand.SqlString AddIdentifierOutParameterToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName, string parameterName) => throw null; public override string CreateTemporaryTableString { get => throw null; } + public FirebirdDialect() => throw null; public override string CurrentTimestampSelectString { get => throw null; } public override bool DropTemporaryTableAfterUse() => throw null; - public FirebirdDialect() => throw null; public override string GetCreateSequenceString(string sequenceName) => throw null; public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null; public override string GetDropSequenceString(string sequenceName) => throw null; @@ -9856,33 +7277,276 @@ namespace NHibernate public override bool SupportsLimitOffset { get => throw null; } public override bool SupportsSequences { get => throw null; } public override bool SupportsTemporaryTables { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } + } + namespace Function + { + public class AnsiExtractFunction : NHibernate.Dialect.Function.SQLFunctionTemplate, NHibernate.Dialect.Function.IFunctionGrammar + { + public AnsiExtractFunction() : base(default(NHibernate.Type.IType), default(string)) => throw null; + bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null; + bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null; + } + public class AnsiSubstringFunction : NHibernate.Dialect.Function.ISQLFunction + { + public AnsiSubstringFunction() => throw null; + public NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + public string Name { get => throw null; } + public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public class AnsiTrimEmulationFunction : NHibernate.Dialect.Function.ISQLFunction, NHibernate.Dialect.Function.IFunctionGrammar + { + public AnsiTrimEmulationFunction() => throw null; + public AnsiTrimEmulationFunction(string replaceFunction) => throw null; + public NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null; + bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null; + public string Name { get => throw null; } + public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public class AnsiTrimFunction : NHibernate.Dialect.Function.SQLFunctionTemplate, NHibernate.Dialect.Function.IFunctionGrammar + { + public AnsiTrimFunction() : base(default(NHibernate.Type.IType), default(string)) => throw null; + bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null; + bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null; + } + public class BitwiseFunctionOperation : NHibernate.Dialect.Function.ISQLFunction + { + public BitwiseFunctionOperation(string functionName) => throw null; + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + public string Name { get => throw null; } + public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public class BitwiseNativeOperation : NHibernate.Dialect.Function.ISQLFunction + { + public BitwiseNativeOperation(string sqlOpToken) => throw null; + public BitwiseNativeOperation(string sqlOpToken, bool isUnary) => throw null; + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + public string Name { get => throw null; } + public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public class CastFunction : NHibernate.Dialect.Function.ISQLFunction, NHibernate.Dialect.Function.IFunctionGrammar + { + protected virtual bool CastingIsRequired(string sqlType) => throw null; + public CastFunction() => throw null; + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null; + bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null; + public string Name { get => throw null; } + public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + protected virtual NHibernate.SqlCommand.SqlString Render(object expression, string sqlType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public class CharIndexFunction : NHibernate.Dialect.Function.ISQLFunction + { + public CharIndexFunction() => throw null; + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + public string Name { get => throw null; } + public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public class ClassicAggregateFunction : NHibernate.Dialect.Function.ISQLFunction, NHibernate.Dialect.Function.IFunctionGrammar + { + protected bool acceptAsterisk; + public ClassicAggregateFunction(string name, bool acceptAsterisk) => throw null; + public ClassicAggregateFunction(string name, bool acceptAsterisk, NHibernate.Type.IType typeValue) => throw null; + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null; + bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null; + public string Name { get => throw null; } + public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public virtual NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + public override string ToString() => throw null; + protected bool TryGetArgumentType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError, out NHibernate.Type.IType argumentType, out NHibernate.SqlTypes.SqlType sqlType) => throw null; + } + public class ClassicAvgFunction : NHibernate.Dialect.Function.ClassicAggregateFunction + { + public ClassicAvgFunction() : base(default(string), default(bool)) => throw null; + public override NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public override NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public class ClassicCountFunction : NHibernate.Dialect.Function.ClassicAggregateFunction + { + public ClassicCountFunction() : base(default(string), default(bool)) => throw null; + public override NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public override NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public class ClassicSumFunction : NHibernate.Dialect.Function.ClassicAggregateFunction + { + public ClassicSumFunction() : base(default(string), default(bool)) => throw null; + } + public class CommonGrammar : NHibernate.Dialect.Function.IFunctionGrammar + { + public CommonGrammar() => throw null; + public bool IsKnownArgument(string token) => throw null; + public bool IsSeparator(string token) => throw null; + } + public class EmulatedLengthSubstringFunction : NHibernate.Dialect.Function.StandardSQLFunction + { + public EmulatedLengthSubstringFunction() : base(default(string)) => throw null; + public override NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + } + public interface IFunctionGrammar + { + bool IsKnownArgument(string token); + bool IsSeparator(string token); + } + public interface ISQLFunction + { + bool HasArguments { get; } + bool HasParenthesesIfNoArguments { get; } + NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory); + NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping); + } + public class NoArgSQLFunction : NHibernate.Dialect.Function.ISQLFunction + { + public NoArgSQLFunction(string name, NHibernate.Type.IType returnType) => throw null; + public NoArgSQLFunction(string name, NHibernate.Type.IType returnType, bool hasParenthesesIfNoArguments) => throw null; + public NHibernate.Type.IType FunctionReturnType { get => throw null; set { } } + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; set { } } + public string Name { get => throw null; set { } } + public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public class NvlFunction : NHibernate.Dialect.Function.ISQLFunction + { + public NvlFunction() => throw null; + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + public string Name { get => throw null; } + public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public class PositionSubstringFunction : NHibernate.Dialect.Function.ISQLFunction + { + public PositionSubstringFunction() => throw null; + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + public string Name { get => throw null; } + public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } + public static partial class SQLFunctionExtensions + { + public static NHibernate.Type.IType GetEffectiveReturnType(this NHibernate.Dialect.Function.ISQLFunction sqlFunction, System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public static NHibernate.Type.IType GetReturnType(this NHibernate.Dialect.Function.ISQLFunction sqlFunction, System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + } + public class SQLFunctionRegistry + { + public SQLFunctionRegistry(NHibernate.Dialect.Dialect dialect, System.Collections.Generic.IDictionary userFunctions) => throw null; + public NHibernate.Dialect.Function.ISQLFunction FindSQLFunction(string functionName) => throw null; + public bool HasFunction(string functionName) => throw null; + } + public class SQLFunctionTemplate : NHibernate.Dialect.Function.ISQLFunction + { + public SQLFunctionTemplate(NHibernate.Type.IType type, string template) => throw null; + public SQLFunctionTemplate(NHibernate.Type.IType type, string template, bool hasParenthesesIfNoArgs) => throw null; + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + public virtual string Name { get => throw null; } + public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + public override string ToString() => throw null; + } + public class SQLFunctionTemplateWithRequiredParameters : NHibernate.Dialect.Function.SQLFunctionTemplate + { + public SQLFunctionTemplateWithRequiredParameters(NHibernate.Type.IType type, string template, object[] requiredArgs) : base(default(NHibernate.Type.IType), default(string)) => throw null; + public SQLFunctionTemplateWithRequiredParameters(NHibernate.Type.IType type, string template, object[] requiredArgs, bool hasParenthesesIfNoArgs) : base(default(NHibernate.Type.IType), default(string)) => throw null; + public override NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + } + public class StandardSafeSQLFunction : NHibernate.Dialect.Function.StandardSQLFunction + { + public StandardSafeSQLFunction(string name, int allowedArgsCount) : base(default(string)) => throw null; + public StandardSafeSQLFunction(string name, NHibernate.Type.IType typeValue, int allowedArgsCount) : base(default(string)) => throw null; + public override NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + } + public class StandardSQLFunction : NHibernate.Dialect.Function.ISQLFunction + { + public StandardSQLFunction(string name) => throw null; + public StandardSQLFunction(string name, NHibernate.Type.IType typeValue) => throw null; + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + protected string name; + public string Name { get => throw null; } + public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public virtual NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + public override string ToString() => throw null; + } + public class TransparentCastFunction : NHibernate.Dialect.Function.CastFunction + { + protected override bool CastingIsRequired(string sqlType) => throw null; + public TransparentCastFunction() => throw null; + protected override NHibernate.SqlCommand.SqlString Render(object expression, string sqlType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + } + public class VarArgsSQLFunction : NHibernate.Dialect.Function.ISQLFunction + { + public VarArgsSQLFunction(string begin, string sep, string end) => throw null; + public VarArgsSQLFunction(NHibernate.Type.IType type, string begin, string sep, string end) => throw null; + public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; + public bool HasArguments { get => throw null; } + public bool HasParenthesesIfNoArguments { get => throw null; } + public virtual string Name { get => throw null; } + public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public virtual NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; + } } - - // Generated from `NHibernate.Dialect.GenericDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericDialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } public GenericDialect() => throw null; } - - // Generated from `NHibernate.Dialect.HanaColumnStoreDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HanaColumnStoreDialect : NHibernate.Dialect.HanaDialectBase { public override string CreateTableString { get => throw null; } public override string CreateTemporaryTableString { get => throw null; } public HanaColumnStoreDialect() => throw null; } - - // Generated from `NHibernate.Dialect.HanaDialectBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class HanaDialectBase : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } public override string AddColumnSuffixString { get => throw null; } public override string CascadeConstraintsString { get => throw null; } + protected HanaDialectBase() => throw null; public override string CurrentTimestampSelectString { get => throw null; } - public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } public override string CurrentUtcTimestampSelectString { get => throw null; } + public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } public override bool DropConstraints { get => throw null; } public override string ForUpdateNowaitString { get => throw null; } public override string GenerateTemporaryTableName(string baseTableName) => throw null; @@ -9899,7 +7563,6 @@ namespace NHibernate public override string GetSelectSequenceNextValString(string sequenceName) => throw null; public override string GetSequenceNextValString(string sequenceName) => throw null; public override string GetTableComment(string comment) => throw null; - protected HanaDialectBase() => throw null; public override string IdentityColumnString { get => throw null; } public override string IdentitySelectString { get => throw null; } public override bool IsCurrentTimestampSelectStringCallable { get => throw null; } @@ -9929,12 +7592,10 @@ namespace NHibernate public override bool SupportsTemporaryTables { get => throw null; } public override bool SupportsUnboundedLobLocatorMaterialization { get => throw null; } public override bool SupportsUnionAll { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } public override string ToBooleanValueString(bool value) => throw null; public override bool UsesColumnsWithForUpdateOf { get => throw null; } } - - // Generated from `NHibernate.Dialect.HanaRowStoreDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HanaRowStoreDialect : NHibernate.Dialect.HanaDialectBase { public override string CreateTableString { get => throw null; } @@ -9943,15 +7604,11 @@ namespace NHibernate public override bool SupportsDistributedTransactions { get => throw null; } public override bool SupportsOuterJoinForUpdate { get => throw null; } } - - // Generated from `NHibernate.Dialect.IfxViolatedConstraintExtracter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class IfxViolatedConstraintExtracter : NHibernate.Exceptions.TemplatedViolatedConstraintNameExtracter { - public override string ExtractConstraintName(System.Data.Common.DbException sqle) => throw null; public IfxViolatedConstraintExtracter() => throw null; + public override string ExtractConstraintName(System.Data.Common.DbException sqle) => throw null; } - - // Generated from `NHibernate.Dialect.InformixDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InformixDialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } @@ -9959,8 +7616,9 @@ namespace NHibernate public override NHibernate.SqlCommand.JoinFragment CreateOuterJoinFragment() => throw null; public override string CreateTemporaryTablePostfix { get => throw null; } public override string CreateTemporaryTableString { get => throw null; } - public override string CurrentTimestampSQLFunctionName { get => throw null; } + public InformixDialect() => throw null; public override string CurrentTimestampSelectString { get => throw null; } + public override string CurrentTimestampSQLFunctionName { get => throw null; } public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; } public override bool ForUpdateOfColumns { get => throw null; } public override string GetAddForeignKeyConstraintString(string constraintName, string[] foreignKey, string referencedTable, string[] primaryKey, bool referencesPrimaryKey) => throw null; @@ -9974,11 +7632,11 @@ namespace NHibernate public override string IdentityColumnString { get => throw null; } public override string IdentityInsertString { get => throw null; } public override string IdentitySelectString { get => throw null; } - public InformixDialect() => throw null; public override bool IsCurrentTimestampSelectStringCallable { get => throw null; } public override int MaxAliasLength { get => throw null; } public override bool? PerformTemporaryTableDDLInIsolation() => throw null; public override int RegisterResultSetOutParameter(System.Data.Common.DbCommand statement, int position) => throw null; + public override bool SupportsCrossJoin { get => throw null; } public override bool SupportsCurrentTimestampSelection { get => throw null; } public override bool SupportsEmptyInList { get => throw null; } public override bool SupportsIdentityColumns { get => throw null; } @@ -9990,40 +7648,34 @@ namespace NHibernate public override bool SupportsTemporaryTables { get => throw null; } public override bool SupportsUnionAll { get => throw null; } public override bool SupportsVariableLimit { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } public override string ToBooleanValueString(bool value) => throw null; public override NHibernate.Exceptions.IViolatedConstraintNameExtracter ViolatedConstraintNameExtracter { get => throw null; } } - - // Generated from `NHibernate.Dialect.InformixDialect0940` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InformixDialect0940 : NHibernate.Dialect.InformixDialect { public override NHibernate.SqlCommand.JoinFragment CreateOuterJoinFragment() => throw null; + public InformixDialect0940() => throw null; public override string GetCreateSequenceString(string sequenceName) => throw null; public override string GetDropSequenceString(string sequenceName) => throw null; public override string GetSelectSequenceNextValString(string sequenceName) => throw null; public override string GetSequenceNextValString(string sequenceName) => throw null; - public InformixDialect0940() => throw null; public override int MaxAliasLength { get => throw null; } public override string QuerySequencesString { get => throw null; } - public override bool SupportsCrossJoin { get => throw null; } public override bool SupportsLimit { get => throw null; } public override bool SupportsLimitOffset { get => throw null; } public override bool SupportsPooledSequences { get => throw null; } public override bool SupportsSequences { get => throw null; } } - - // Generated from `NHibernate.Dialect.InformixDialect1000` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InformixDialect1000 : NHibernate.Dialect.InformixDialect0940 { public InformixDialect1000() => throw null; public override bool SupportsLimit { get => throw null; } public override bool SupportsLimitOffset { get => throw null; } } - - // Generated from `NHibernate.Dialect.Ingres9Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Ingres9Dialect : NHibernate.Dialect.IngresDialect { + public Ingres9Dialect() => throw null; public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; } public override string GetCreateSequenceString(string sequenceName) => throw null; public override string GetDropSequenceString(string sequenceName) => throw null; @@ -10031,7 +7683,6 @@ namespace NHibernate public override string GetSelectSequenceNextValString(string sequenceName) => throw null; public override string GetSequenceNextValString(string sequenceName) => throw null; public override System.Type IdentityStyleIdentifierGeneratorClass { get => throw null; } - public Ingres9Dialect() => throw null; public override System.Type NativeIdentifierGeneratorClass { get => throw null; } public override string QuerySequencesString { get => throw null; } public override bool SupportsLimit { get => throw null; } @@ -10040,26 +7691,40 @@ namespace NHibernate public override bool SupportsSequences { get => throw null; } public override bool SupportsVariableLimit { get => throw null; } } - - // Generated from `NHibernate.Dialect.IngresDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class IngresDialect : NHibernate.Dialect.Dialect { - public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; } public IngresDialect() => throw null; + public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; } public override int MaxAliasLength { get => throw null; } public override bool SupportsEmptyInList { get => throw null; } public override bool SupportsExpectedLobUsagePattern { get => throw null; } public override bool SupportsSubselectAsInPredicateLHS { get => throw null; } } - - // Generated from `NHibernate.Dialect.InsertGeneratedIdentifierRetrievalMethod` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum InsertGeneratedIdentifierRetrievalMethod { - OutputParameter, - ReturnValueParameter, + OutputParameter = 0, + ReturnValueParameter = 1, + } + namespace Lock + { + public interface ILockingStrategy + { + void Lock(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session); + System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + } + public class SelectLockingStrategy : NHibernate.Dialect.Lock.ILockingStrategy + { + public SelectLockingStrategy(NHibernate.Persister.Entity.ILockable lockable, NHibernate.LockMode lockMode) => throw null; + public void Lock(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; + public System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class UpdateLockingStrategy : NHibernate.Dialect.Lock.ILockingStrategy + { + public UpdateLockingStrategy(NHibernate.Persister.Entity.ILockable lockable, NHibernate.LockMode lockMode) => throw null; + public void Lock(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; + public System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + } } - - // Generated from `NHibernate.Dialect.MsSql2000Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MsSql2000Dialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } @@ -10067,18 +7732,16 @@ namespace NHibernate public override string AppendLockHint(NHibernate.LockMode lockMode, string tableName) => throw null; public override NHibernate.SqlCommand.SqlString ApplyLocksToSql(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary aliasedLockModes, System.Collections.Generic.IDictionary keyColumnNames) => throw null; public override bool AreStringComparisonsCaseInsensitive { get => throw null; } - public override System.Char CloseQuote { get => throw null; } - // Generated from `NHibernate.Dialect.MsSql2000Dialect+CountBigQueryFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public override char CloseQuote { get => throw null; } protected class CountBigQueryFunction : NHibernate.Dialect.Function.ClassicAggregateFunction { public CountBigQueryFunction() : base(default(string), default(bool)) => throw null; } - - - public override string CurrentTimestampSQLFunctionName { get => throw null; } + public MsSql2000Dialect() => throw null; public override string CurrentTimestampSelectString { get => throw null; } - public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } + public override string CurrentTimestampSQLFunctionName { get => throw null; } public override string CurrentUtcTimestampSelectString { get => throw null; } + public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; } public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; } public override bool DropTemporaryTableAfterUse() => throw null; @@ -10095,30 +7758,25 @@ namespace NHibernate public override string IdentitySelectString { get => throw null; } public override bool IsCurrentTimestampSelectStringCallable { get => throw null; } public override bool IsKnownToken(string currentToken, string nextToken) => throw null; - // Generated from `NHibernate.Dialect.MsSql2000Dialect+LockHintAppender` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public struct LockHintAppender { public NHibernate.SqlCommand.SqlString AppendLockHint(NHibernate.SqlCommand.SqlString sql) => throw null; public LockHintAppender(NHibernate.Dialect.MsSql2000Dialect dialect, System.Collections.Generic.IDictionary aliasedLockModes) => throw null; - // Stub generator skipped constructor } - - public override int MaxAliasLength { get => throw null; } - public const System.Byte MaxDateTime2 = default; - public const System.Byte MaxDateTimeOffset = default; + public static byte MaxDateTime2; + public static byte MaxDateTimeOffset; public override int? MaxNumberOfParameters { get => throw null; } - public const int MaxSizeForAnsiClob = default; - public const int MaxSizeForBlob = default; - public const int MaxSizeForClob = default; - public const int MaxSizeForLengthLimitedAnsiString = default; - public const int MaxSizeForLengthLimitedBinary = default; - public const int MaxSizeForLengthLimitedString = default; - public MsSql2000Dialect() => throw null; + public static int MaxSizeForAnsiClob; + public static int MaxSizeForBlob; + public static int MaxSizeForClob; + public static int MaxSizeForLengthLimitedAnsiString; + public static int MaxSizeForLengthLimitedBinary; + public static int MaxSizeForLengthLimitedString; protected bool NeedsLockHint(NHibernate.LockMode lockMode) => throw null; public override string NoColumnsInsertString { get => throw null; } public override string NullColumnString { get => throw null; } - public override System.Char OpenQuote { get => throw null; } + public override char OpenQuote { get => throw null; } public override string Qualify(string catalog, string schema, string name) => throw null; public override bool QualifyIndexName { get => throw null; } protected override string Quote(string name) => throw null; @@ -10145,22 +7803,20 @@ namespace NHibernate public override bool SupportsTemporaryTables { get => throw null; } public override bool SupportsUnionAll { get => throw null; } public override bool SupportsVariableLimit { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } public override string UnQuote(string quoted) => throw null; public override bool UseMaxForLimit { get => throw null; } } - - // Generated from `NHibernate.Dialect.MsSql2005Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MsSql2005Dialect : NHibernate.Dialect.MsSql2000Dialect { public override string AppendLockHint(NHibernate.LockMode lockMode, string tableName) => throw null; + public MsSql2005Dialect() => throw null; public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; } public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; } public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; protected override string GetSelectExistingObject(string catalog, string schema, string table, string name) => throw null; public override int MaxAliasLength { get => throw null; } - public const int MaxSizeForXml = default; - public MsSql2005Dialect() => throw null; + public static int MaxSizeForXml; protected override void RegisterCharacterTypeMappings() => throw null; protected override void RegisterKeywords() => throw null; protected override void RegisterLargeObjectTypeMappings() => throw null; @@ -10169,74 +7825,62 @@ namespace NHibernate public override bool SupportsVariableLimit { get => throw null; } public override bool UseMaxForLimit { get => throw null; } } - - // Generated from `NHibernate.Dialect.MsSql2008Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MsSql2008Dialect : NHibernate.Dialect.MsSql2005Dialect { public override void Configure(System.Collections.Generic.IDictionary settings) => throw null; + public MsSql2008Dialect() => throw null; public override string CurrentTimestampSQLFunctionName { get => throw null; } public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } - protected bool KeepDateTime { get => throw null; set => throw null; } - public MsSql2008Dialect() => throw null; + protected bool KeepDateTime { get => throw null; } public override NHibernate.SqlTypes.SqlType OverrideSqlType(NHibernate.SqlTypes.SqlType type) => throw null; protected override void RegisterDateTimeTypeMappings() => throw null; protected override void RegisterDefaultProperties() => throw null; protected override void RegisterFunctions() => throw null; protected override void RegisterKeywords() => throw null; public override bool SupportsDateTimeScale { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } } - - // Generated from `NHibernate.Dialect.MsSql2012Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MsSql2012Dialect : NHibernate.Dialect.MsSql2008Dialect { + public MsSql2012Dialect() => throw null; public override string GetCreateSequenceString(string sequenceName) => throw null; protected override string GetCreateSequenceString(string sequenceName, int initialValue, int incrementSize) => throw null; public override string GetDropSequenceString(string sequenceName) => throw null; public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString querySqlString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; public override string GetSelectSequenceNextValString(string sequenceName) => throw null; public override string GetSequenceNextValString(string sequenceName) => throw null; - public MsSql2012Dialect() => throw null; public override string QuerySequencesString { get => throw null; } protected override void RegisterFunctions() => throw null; public override bool SupportsPooledSequences { get => throw null; } public override bool SupportsSequences { get => throw null; } } - - // Generated from `NHibernate.Dialect.MsSql7Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MsSql7Dialect : NHibernate.Dialect.MsSql2000Dialect { - public override string IdentitySelectString { get => throw null; } public MsSql7Dialect() => throw null; + public override string IdentitySelectString { get => throw null; } } - - // Generated from `NHibernate.Dialect.MsSqlAzure2008Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MsSqlAzure2008Dialect : NHibernate.Dialect.MsSql2008Dialect { public MsSqlAzure2008Dialect() => throw null; public override string PrimaryKeyString { get => throw null; } } - - // Generated from `NHibernate.Dialect.MsSqlCe40Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MsSqlCe40Dialect : NHibernate.Dialect.MsSqlCeDialect { - public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; public MsSqlCe40Dialect() => throw null; + public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; public override bool SupportsLimitOffset { get => throw null; } public override bool SupportsVariableLimit { get => throw null; } } - - // Generated from `NHibernate.Dialect.MsSqlCeDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MsSqlCeDialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } + public MsSqlCeDialect() => throw null; public override string ForUpdateString { get => throw null; } public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null; public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString querySqlString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; public override string IdentityColumnString { get => throw null; } public override string IdentitySelectString { get => throw null; } public override int MaxAliasLength { get => throw null; } - public MsSqlCeDialect() => throw null; public override System.Type NativeIdentifierGeneratorClass { get => throw null; } public override string NullColumnString { get => throw null; } public override string Qualify(string catalog, string schema, string table) => throw null; @@ -10254,63 +7898,52 @@ namespace NHibernate public override bool SupportsLimitOffset { get => throw null; } public override bool SupportsPoolingParameter { get => throw null; } public override bool SupportsScalarSubSelects { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } } - - // Generated from `NHibernate.Dialect.MySQL55Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MySQL55Dialect : NHibernate.Dialect.MySQL5Dialect { public MySQL55Dialect() => throw null; protected override void RegisterFunctions() => throw null; } - - // Generated from `NHibernate.Dialect.MySQL55InnoDBDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MySQL55InnoDBDialect : NHibernate.Dialect.MySQL55Dialect { - public override bool HasSelfReferentialForeignKeyBug { get => throw null; } public MySQL55InnoDBDialect() => throw null; + public override bool HasSelfReferentialForeignKeyBug { get => throw null; } public override bool SupportsCascadeDelete { get => throw null; } public override string TableTypeString { get => throw null; } } - - // Generated from `NHibernate.Dialect.MySQL57Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MySQL57Dialect : NHibernate.Dialect.MySQL55Dialect { public MySQL57Dialect() => throw null; public override bool SupportsDateTimeScale { get => throw null; } public override bool SupportsRowValueConstructorSyntaxInInList { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } } - - // Generated from `NHibernate.Dialect.MySQL5Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MySQL5Dialect : NHibernate.Dialect.MySQLDialect { public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString) => throw null; - public override int MaxAliasLength { get => throw null; } public MySQL5Dialect() => throw null; + public override int MaxAliasLength { get => throw null; } protected override void RegisterCastTypes() => throw null; protected override void RegisterFunctions() => throw null; public override string SelectGUIDString { get => throw null; } public override bool SupportsInsertSelectIdentity { get => throw null; } public override bool SupportsSubSelects { get => throw null; } } - - // Generated from `NHibernate.Dialect.MySQL5InnoDBDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MySQL5InnoDBDialect : NHibernate.Dialect.MySQL5Dialect { - public override bool HasSelfReferentialForeignKeyBug { get => throw null; } public MySQL5InnoDBDialect() => throw null; + public override bool HasSelfReferentialForeignKeyBug { get => throw null; } public override bool SupportsCascadeDelete { get => throw null; } public override string TableTypeString { get => throw null; } } - - // Generated from `NHibernate.Dialect.MySQLDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MySQLDialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } public override bool AreStringComparisonsCaseInsensitive { get => throw null; } - public override System.Char CloseQuote { get => throw null; } + public override char CloseQuote { get => throw null; } public override string CreateTemporaryTableString { get => throw null; } + public MySQLDialect() => throw null; public override string GetAddForeignKeyConstraintString(string constraintName, string[] foreignKey, string referencedTable, string[] primaryKey, bool referencesPrimaryKey) => throw null; public override string GetCastTypeName(NHibernate.SqlTypes.SqlType sqlType) => throw null; public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null; @@ -10320,8 +7953,7 @@ namespace NHibernate public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; public override string IdentityColumnString { get => throw null; } public override string IdentitySelectString { get => throw null; } - public MySQLDialect() => throw null; - public override System.Char OpenQuote { get => throw null; } + public override char OpenQuote { get => throw null; } public override bool QualifyIndexName { get => throw null; } protected void RegisterCastType(System.Data.DbType code, string name) => throw null; protected void RegisterCastType(System.Data.DbType code, int capacity, string name) => throw null; @@ -10336,15 +7968,13 @@ namespace NHibernate public override bool SupportsIfExistsBeforeTableName { get => throw null; } public override bool SupportsLimit { get => throw null; } public override bool SupportsLobValueChangePropogation { get => throw null; } + public override bool SupportsSubqueryOnMutatingTable { get => throw null; } public override bool SupportsSubSelects { get => throw null; } public override bool SupportsSubSelectsWithPagingAsInPredicateRhs { get => throw null; } - public override bool SupportsSubqueryOnMutatingTable { get => throw null; } public override bool SupportsTemporaryTables { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } public override bool TryGetCastTypeName(NHibernate.SqlTypes.SqlType sqlType, out string typeName) => throw null; } - - // Generated from `NHibernate.Dialect.Oracle10gDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Oracle10gDialect : NHibernate.Dialect.Oracle9iDialect { public override void Configure(System.Collections.Generic.IDictionary settings) => throw null; @@ -10354,16 +7984,12 @@ namespace NHibernate protected override void RegisterFunctions() => throw null; public override bool SupportsCrossJoin { get => throw null; } } - - // Generated from `NHibernate.Dialect.Oracle12cDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Oracle12cDialect : NHibernate.Dialect.Oracle10gDialect { - public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString querySqlString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; public Oracle12cDialect() => throw null; + public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString querySqlString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; public override bool UseMaxForLimit { get => throw null; } } - - // Generated from `NHibernate.Dialect.Oracle8iDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Oracle8iDialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } @@ -10374,8 +8000,9 @@ namespace NHibernate public override NHibernate.SqlCommand.JoinFragment CreateOuterJoinFragment() => throw null; public override string CreateTemporaryTablePostfix { get => throw null; } public override string CreateTemporaryTableString { get => throw null; } - public override string CurrentTimestampSQLFunctionName { get => throw null; } + public Oracle8iDialect() => throw null; public override string CurrentTimestampSelectString { get => throw null; } + public override string CurrentTimestampSQLFunctionName { get => throw null; } public override bool DropConstraints { get => throw null; } public override bool DropTemporaryTableAfterUse() => throw null; public override string ForUpdateNowaitString { get => throw null; } @@ -10393,11 +8020,10 @@ namespace NHibernate public override string GetSequenceNextValString(string sequenceName) => throw null; public override bool IsCurrentTimestampSelectStringCallable { get => throw null; } public override int MaxAliasLength { get => throw null; } - public Oracle8iDialect() => throw null; public override string QuerySequencesString { get => throw null; } protected virtual void RegisterCharacterTypeMappings() => throw null; protected virtual void RegisterDateTimeTypeMappings() => throw null; - protected internal virtual void RegisterDefaultProperties() => throw null; + protected virtual void RegisterDefaultProperties() => throw null; protected virtual void RegisterFloatingPointTypeMappings() => throw null; protected virtual void RegisterFunctions() => throw null; protected virtual void RegisterGuidTypeMapping() => throw null; @@ -10416,42 +8042,37 @@ namespace NHibernate public override bool SupportsSequences { get => throw null; } public override bool SupportsTemporaryTables { get => throw null; } public override bool SupportsUnionAll { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } public override bool UseMaxForLimit { get => throw null; } - public bool UseNPrefixedTypesForUnicode { get => throw null; set => throw null; } + public bool UseNPrefixedTypesForUnicode { get => throw null; } } - - // Generated from `NHibernate.Dialect.Oracle9iDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Oracle9iDialect : NHibernate.Dialect.Oracle8iDialect { public override NHibernate.SqlCommand.CaseFragment CreateCaseFragment() => throw null; - public override string CurrentTimestampSQLFunctionName { get => throw null; } - public override string CurrentTimestampSelectString { get => throw null; } - public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } - public override string CurrentUtcTimestampSelectString { get => throw null; } - public override string GetSelectClauseNullString(NHibernate.SqlTypes.SqlType sqlType) => throw null; public Oracle9iDialect() => throw null; + public override string CurrentTimestampSelectString { get => throw null; } + public override string CurrentTimestampSQLFunctionName { get => throw null; } + public override string CurrentUtcTimestampSelectString { get => throw null; } + public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } + public override string GetSelectClauseNullString(NHibernate.SqlTypes.SqlType sqlType) => throw null; protected override void RegisterDateTimeTypeMappings() => throw null; protected override void RegisterFunctions() => throw null; public override bool SupportsCurrentUtcTimestampSelection { get => throw null; } public override bool SupportsDateTimeScale { get => throw null; } public override bool SupportsRowValueConstructorSyntaxInInList { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } } - - // Generated from `NHibernate.Dialect.OracleLiteDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OracleLiteDialect : NHibernate.Dialect.Oracle9iDialect { + public OracleLiteDialect() => throw null; public override string GetCreateSequenceString(string sequenceName) => throw null; protected override string GetCreateSequenceString(string sequenceName, int initialValue, int incrementSize) => throw null; - public OracleLiteDialect() => throw null; } - - // Generated from `NHibernate.Dialect.PostgreSQL81Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PostgreSQL81Dialect : NHibernate.Dialect.PostgreSQLDialect { - public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName) => throw null; public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertSql) => throw null; + public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName) => throw null; + public PostgreSQL81Dialect() => throw null; public override string ForUpdateNowaitString { get => throw null; } public override string GetForUpdateNowaitString(string aliases) => throw null; public override string GetIdentityColumnString(System.Data.DbType type) => throw null; @@ -10459,29 +8080,22 @@ namespace NHibernate public override string IdentitySelectString { get => throw null; } public override int MaxAliasLength { get => throw null; } public override string NoColumnsInsertString { get => throw null; } - public PostgreSQL81Dialect() => throw null; protected override void RegisterDateTimeTypeMappings() => throw null; public override bool SupportsDateTimeScale { get => throw null; } public override bool SupportsIdentityColumns { get => throw null; } public override bool SupportsInsertSelectIdentity { get => throw null; } } - - // Generated from `NHibernate.Dialect.PostgreSQL82Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PostgreSQL82Dialect : NHibernate.Dialect.PostgreSQL81Dialect { - public override string GetDropSequenceString(string sequenceName) => throw null; public PostgreSQL82Dialect() => throw null; + public override string GetDropSequenceString(string sequenceName) => throw null; public override bool SupportsIfExistsBeforeTableName { get => throw null; } public override bool SupportsRowValueConstructorSyntaxInInList { get => throw null; } } - - // Generated from `NHibernate.Dialect.PostgreSQL83Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PostgreSQL83Dialect : NHibernate.Dialect.PostgreSQL82Dialect { public PostgreSQL83Dialect() => throw null; } - - // Generated from `NHibernate.Dialect.PostgreSQLDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PostgreSQLDialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } @@ -10489,6 +8103,7 @@ namespace NHibernate public override string CascadeConstraintsString { get => throw null; } public override string CreateTemporaryTablePostfix { get => throw null; } public override string CreateTemporaryTableString { get => throw null; } + public PostgreSQLDialect() => throw null; public override string CurrentTimestampSelectString { get => throw null; } public override bool DropConstraints { get => throw null; } public override string GetCreateSequenceString(string sequenceName) => throw null; @@ -10500,7 +8115,6 @@ namespace NHibernate public override string GetSelectSequenceNextValString(string sequenceName) => throw null; public override string GetSequenceNextValString(string sequenceName) => throw null; public override NHibernate.Dialect.InsertGeneratedIdentifierRetrievalMethod InsertGeneratedIdentifierRetrievalMethod { get => throw null; } - public PostgreSQLDialect() => throw null; public override string QuerySequencesString { get => throw null; } protected virtual void RegisterDateTimeTypeMappings() => throw null; protected virtual void RegisterKeywords() => throw null; @@ -10518,18 +8132,502 @@ namespace NHibernate public override bool SupportsTemporaryTables { get => throw null; } public override bool SupportsUnboundedLobLocatorMaterialization { get => throw null; } public override bool SupportsUnionAll { get => throw null; } - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } public override string ToBooleanValueString(bool value) => throw null; public override bool UseInputStreamToInsertBlob { get => throw null; } } - - // Generated from `NHibernate.Dialect.SQLiteDialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class SapSQLAnywhere17Dialect : NHibernate.Dialect.SybaseSQLAnywhere12Dialect + { + public override void Configure(System.Collections.Generic.IDictionary settings) => throw null; + public SapSQLAnywhere17Dialect() => throw null; + public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null; + public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString sql, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; + protected virtual void RegisterConfigurationDependentFunctions() => throw null; + protected override void RegisterKeywords() => throw null; + protected override void RegisterMathFunctions() => throw null; + protected override void RegisterStringFunctions() => throw null; + public override bool SupportsNullInUnique { get => throw null; } + } + namespace Schema + { + public abstract class AbstractColumnMetaData : NHibernate.Dialect.Schema.IColumnMetadata + { + public int ColumnSize { get => throw null; set { } } + public AbstractColumnMetaData(System.Data.DataRow rs) => throw null; + public string Name { get => throw null; set { } } + public string Nullable { get => throw null; set { } } + public int NumericalPrecision { get => throw null; set { } } + protected void SetColumnSize(object columnSizeValue) => throw null; + protected void SetNumericalPrecision(object numericalPrecisionValue) => throw null; + public override string ToString() => throw null; + public string TypeName { get => throw null; set { } } + } + public abstract class AbstractDataBaseSchema : NHibernate.Dialect.Schema.IDataBaseSchema + { + public virtual string ColumnNameForTableName { get => throw null; } + protected System.Data.Common.DbConnection Connection { get => throw null; } + protected AbstractDataBaseSchema(System.Data.Common.DbConnection connection) => throw null; + protected AbstractDataBaseSchema(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) => throw null; + protected virtual string ForeignKeysSchemaName { get => throw null; } + public virtual System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; + public virtual System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; + public virtual System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; + public virtual System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; + public virtual System.Collections.Generic.ISet GetReservedWords() => throw null; + public abstract NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras); + public virtual System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; + public virtual bool IncludeDataTypesInReservedWords { get => throw null; } + public virtual bool StoresLowerCaseIdentifiers { get => throw null; } + public virtual bool StoresLowerCaseQuotedIdentifiers { get => throw null; } + public virtual bool StoresMixedCaseQuotedIdentifiers { get => throw null; } + public virtual bool StoresUpperCaseIdentifiers { get => throw null; } + public virtual bool StoresUpperCaseQuotedIdentifiers { get => throw null; } + public virtual bool UseDialectQualifyInsteadOfTableName { get => throw null; } + } + public class AbstractForeignKeyMetadata : NHibernate.Dialect.Schema.IForeignKeyMetadata + { + public void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column) => throw null; + public NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get => throw null; } + public AbstractForeignKeyMetadata(System.Data.DataRow rs) => throw null; + public string Name { get => throw null; set { } } + public override string ToString() => throw null; + } + public abstract class AbstractIndexMetadata : NHibernate.Dialect.Schema.IIndexMetadata + { + public void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column) => throw null; + public NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get => throw null; } + public AbstractIndexMetadata(System.Data.DataRow rs) => throw null; + public string Name { get => throw null; set { } } + public override string ToString() => throw null; + } + public abstract class AbstractTableMetadata : NHibernate.Dialect.Schema.ITableMetadata + { + public string Catalog { get => throw null; set { } } + public AbstractTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) => throw null; + protected abstract NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs); + public NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(string columnName) => throw null; + protected abstract string GetColumnName(System.Data.DataRow rs); + protected abstract string GetConstraintName(System.Data.DataRow rs); + protected abstract NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs); + public NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(string keyName) => throw null; + protected abstract NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs); + public NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(string indexName) => throw null; + protected abstract string GetIndexName(System.Data.DataRow rs); + public string Name { get => throw null; set { } } + public virtual bool NeedPhysicalConstraintCreation(string fkName) => throw null; + protected abstract void ParseTableInfo(System.Data.DataRow rs); + public string Schema { get => throw null; set { } } + public override string ToString() => throw null; + } + public class DB2ColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public DB2ColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class DB2ForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public DB2ForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class DB2IndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public DB2IndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class DB2MetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public DB2MetaData(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; + public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; + public override System.Collections.Generic.ISet GetReservedWords() => throw null; + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + } + public class DB2TableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public DB2TableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + public class FirebirdColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public FirebirdColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class FirebirdDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public FirebirdDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + public override bool StoresUpperCaseIdentifiers { get => throw null; } + } + public class FirebirdForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public FirebirdForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class FirebirdIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public FirebirdIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class FirebirdTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public FirebirdTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + public class HanaColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public HanaColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class HanaDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public HanaDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; + public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; + public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; + public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; + public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; + public override System.Collections.Generic.ISet GetReservedWords() => throw null; + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; + public override bool StoresUpperCaseIdentifiers { get => throw null; } + } + public class HanaForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public HanaForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class HanaIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public HanaIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class HanaTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public HanaTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + public interface IColumnMetadata + { + int ColumnSize { get; } + string Name { get; } + string Nullable { get; } + int NumericalPrecision { get; } + string TypeName { get; } + } + public interface IDataBaseSchema + { + string ColumnNameForTableName { get; } + System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern); + System.Data.DataTable GetForeignKeys(string catalog, string schema, string table); + System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName); + System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName); + System.Collections.Generic.ISet GetReservedWords(); + NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras); + System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types); + bool StoresLowerCaseIdentifiers { get; } + bool StoresLowerCaseQuotedIdentifiers { get; } + bool StoresMixedCaseQuotedIdentifiers { get; } + bool StoresUpperCaseIdentifiers { get; } + bool StoresUpperCaseQuotedIdentifiers { get; } + } + public interface IForeignKeyMetadata + { + void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column); + NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get; } + string Name { get; } + } + public interface IIndexMetadata + { + void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column); + NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get; } + string Name { get; } + } + public interface ITableMetadata + { + string Catalog { get; } + NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(string columnName); + NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(string keyName); + NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(string indexName); + string Name { get; } + bool NeedPhysicalConstraintCreation(string fkName); + string Schema { get; } + } + public class MsSqlCeColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public MsSqlCeColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class MsSqlCeDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public MsSqlCeDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; + public MsSqlCeDataBaseSchema(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) : base(default(System.Data.Common.DbConnection)) => throw null; + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + public override bool UseDialectQualifyInsteadOfTableName { get => throw null; } + } + public class MsSqlCeForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public MsSqlCeForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class MsSqlCeIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public MsSqlCeIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class MsSqlCeTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public MsSqlCeTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + public class MsSqlColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public MsSqlColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class MsSqlDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public MsSqlDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + } + public class MsSqlForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public MsSqlForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class MsSqlIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public MsSqlIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class MsSqlTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public MsSqlTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + public class MySQLColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public MySQLColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class MySQLDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public MySQLDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; + protected override string ForeignKeysSchemaName { get => throw null; } + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + } + public class MySQLForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public MySQLForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class MySQLIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public MySQLIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class MySQLTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public MySQLTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + public class OracleColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public OracleColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class OracleDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public OracleDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; + public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; + public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; + public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; + public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; + public override bool StoresUpperCaseIdentifiers { get => throw null; } + } + public class OracleForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public OracleForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class OracleIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public OracleIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class OracleTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public OracleTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + public class PostgreSQLColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public PostgreSQLColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class PostgreSQLDataBaseMetadata : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public PostgreSQLDataBaseMetadata(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; + public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; + public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; + public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; + public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; + public override bool IncludeDataTypesInReservedWords { get => throw null; } + public override bool StoresLowerCaseIdentifiers { get => throw null; } + public override bool StoresMixedCaseQuotedIdentifiers { get => throw null; } + } + public class PostgreSQLForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public PostgreSQLForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class PostgreSQLIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public PostgreSQLIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class PostgreSQLTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public PostgreSQLTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + public class SapSqlAnywhere17ColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public SapSqlAnywhere17ColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class SapSqlAnywhere17DataBaseMetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public SapSqlAnywhere17DataBaseMetaData(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; + public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; + public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; + public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; + public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; + public override System.Collections.Generic.ISet GetReservedWords() => throw null; + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; + } + public class SapSqlAnywhere17ForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public SapSqlAnywhere17ForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class SapSqlAnywhere17IndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public SapSqlAnywhere17IndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class SapSqlAnywhere17TableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public SapSqlAnywhere17TableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + public static class SchemaHelper + { + public static string GetString(System.Data.DataRow row, params string[] alternativeColumnNames) => throw null; + public static object GetValue(System.Data.DataRow row, params string[] alternativeColumnNames) => throw null; + } + public class SQLiteColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public SQLiteColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class SQLiteDataBaseMetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public SQLiteDataBaseMetaData(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; + public SQLiteDataBaseMetaData(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) : base(default(System.Data.Common.DbConnection)) => throw null; + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; + public override bool UseDialectQualifyInsteadOfTableName { get => throw null; } + } + public class SQLiteForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public SQLiteForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class SQLiteIndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public SQLiteIndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class SQLiteTableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public SQLiteTableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + public class SybaseAnywhereColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData + { + public SybaseAnywhereColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class SybaseAnywhereDataBaseMetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema + { + public SybaseAnywhereDataBaseMetaData(System.Data.Common.DbConnection pObjConnection) : base(default(System.Data.Common.DbConnection)) => throw null; + public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; + public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; + public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; + public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; + public override System.Collections.Generic.ISet GetReservedWords() => throw null; + public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; + public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; + } + public class SybaseAnywhereForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata + { + public SybaseAnywhereForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class SybaseAnywhereIndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata + { + public SybaseAnywhereIndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; + } + public class SybaseAnywhereTableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata + { + public SybaseAnywhereTableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; + protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; + protected override string GetColumnName(System.Data.DataRow rs) => throw null; + protected override string GetConstraintName(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; + protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; + protected override string GetIndexName(System.Data.DataRow rs) => throw null; + protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; + } + } public class SQLiteDialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertSql) => throw null; public override void Configure(System.Collections.Generic.IDictionary settings) => throw null; public override string CreateTemporaryTableString { get => throw null; } + public SQLiteDialect() => throw null; public override string DisableForeignKeyConstraintsString { get => throw null; } public override bool DropConstraints { get => throw null; } public override bool DropTemporaryTableAfterUse() => throw null; @@ -10541,6 +8639,7 @@ namespace NHibernate public override bool HasDataTypeInIdentityColumn { get => throw null; } public override string IdentityColumnString { get => throw null; } public override string IdentitySelectString { get => throw null; } + public override bool IsDecimalStoredAsFloatingPointNumber { get => throw null; } public override int MaxAliasLength { get => throw null; } public override string NoColumnsInsertString { get => throw null; } public override string Qualify(string catalog, string schema, string table) => throw null; @@ -10548,16 +8647,12 @@ namespace NHibernate protected virtual void RegisterDefaultProperties() => throw null; protected virtual void RegisterFunctions() => throw null; protected virtual void RegisterKeywords() => throw null; - // Generated from `NHibernate.Dialect.SQLiteDialect+SQLiteCastFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public override string SelectGUIDString { get => throw null; } protected class SQLiteCastFunction : NHibernate.Dialect.Function.CastFunction { protected override bool CastingIsRequired(string sqlType) => throw null; public SQLiteCastFunction() => throw null; } - - - public SQLiteDialect() => throw null; - public override string SelectGUIDString { get => throw null; } public override bool SupportsConcurrentWritingConnections { get => throw null; } public override bool SupportsDistributedTransactions { get => throw null; } public override bool SupportsForeignKeyConstraintInAlterTable { get => throw null; } @@ -10569,25 +8664,10 @@ namespace NHibernate public override bool SupportsSubSelects { get => throw null; } public override bool SupportsTemporaryTables { get => throw null; } } - - // Generated from `NHibernate.Dialect.SapSQLAnywhere17Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SapSQLAnywhere17Dialect : NHibernate.Dialect.SybaseSQLAnywhere12Dialect - { - public override void Configure(System.Collections.Generic.IDictionary settings) => throw null; - public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null; - public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString sql, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null; - protected virtual void RegisterConfigurationDependentFunctions() => throw null; - protected override void RegisterKeywords() => throw null; - protected override void RegisterMathFunctions() => throw null; - protected override void RegisterStringFunctions() => throw null; - public SapSQLAnywhere17Dialect() => throw null; - public override bool SupportsNullInUnique { get => throw null; } - } - - // Generated from `NHibernate.Dialect.SybaseASA9Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseASA9Dialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } + public SybaseASA9Dialect() => throw null; public override bool DropConstraints { get => throw null; } public override string ForUpdateString { get => throw null; } public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null; @@ -10602,10 +8682,7 @@ namespace NHibernate public override bool SupportsIdentityColumns { get => throw null; } public override bool SupportsLimit { get => throw null; } public override bool SupportsVariableLimit { get => throw null; } - public SybaseASA9Dialect() => throw null; } - - // Generated from `NHibernate.Dialect.SybaseASE15Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseASE15Dialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } @@ -10613,11 +8690,12 @@ namespace NHibernate public override string AppendLockHint(NHibernate.LockMode lockMode, string tableName) => throw null; public override NHibernate.SqlCommand.SqlString ApplyLocksToSql(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary aliasedLockModes, System.Collections.Generic.IDictionary keyColumnNames) => throw null; public override bool AreStringComparisonsCaseInsensitive { get => throw null; } - public override System.Char CloseQuote { get => throw null; } - public override string CurrentTimestampSQLFunctionName { get => throw null; } + public override char CloseQuote { get => throw null; } + public SybaseASE15Dialect() => throw null; public override string CurrentTimestampSelectString { get => throw null; } - public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } + public override string CurrentTimestampSQLFunctionName { get => throw null; } public override string CurrentUtcTimestampSelectString { get => throw null; } + public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; } public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; } public override bool DropTemporaryTableAfterUse() => throw null; @@ -10630,7 +8708,7 @@ namespace NHibernate public override bool IsCurrentTimestampSelectStringCallable { get => throw null; } public override int MaxAliasLength { get => throw null; } public override string NullColumnString { get => throw null; } - public override System.Char OpenQuote { get => throw null; } + public override char OpenQuote { get => throw null; } public override bool QualifyIndexName { get => throw null; } public override int RegisterResultSetOutParameter(System.Data.Common.DbCommand statement, int position) => throw null; public override string SelectGUIDString { get => throw null; } @@ -10645,20 +8723,18 @@ namespace NHibernate public override bool SupportsInsertSelectIdentity { get => throw null; } public override bool SupportsTemporaryTables { get => throw null; } public override bool SupportsUnionAll { get => throw null; } - public SybaseASE15Dialect() => throw null; } - - // Generated from `NHibernate.Dialect.SybaseSQLAnywhere10Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseSQLAnywhere10Dialect : NHibernate.Dialect.Dialect { public override string AddColumnString { get => throw null; } public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertSql) => throw null; public override bool AreStringComparisonsCaseInsensitive { get => throw null; } - public override System.Char CloseQuote { get => throw null; } + public override char CloseQuote { get => throw null; } public override string CreateTemporaryTablePostfix { get => throw null; } public override string CreateTemporaryTableString { get => throw null; } - public override string CurrentTimestampSQLFunctionName { get => throw null; } + public SybaseSQLAnywhere10Dialect() => throw null; public override string CurrentTimestampSelectString { get => throw null; } + public override string CurrentTimestampSQLFunctionName { get => throw null; } public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; } public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; } public override bool DropConstraints { get => throw null; } @@ -10681,7 +8757,7 @@ namespace NHibernate public override string NoColumnsInsertString { get => throw null; } public override string NullColumnString { get => throw null; } public override bool OffsetStartsAtOne { get => throw null; } - public override System.Char OpenQuote { get => throw null; } + public override char OpenQuote { get => throw null; } public override bool? PerformTemporaryTableDDLInIsolation() => throw null; public override bool QualifyIndexName { get => throw null; } protected virtual void RegisterAggregationFunctions() => throw null; @@ -10713,21 +8789,17 @@ namespace NHibernate public override bool SupportsTemporaryTables { get => throw null; } public override bool SupportsUnionAll { get => throw null; } public override bool SupportsVariableLimit { get => throw null; } - public SybaseSQLAnywhere10Dialect() => throw null; - public override System.Int64 TimestampResolutionInTicks { get => throw null; } + public override long TimestampResolutionInTicks { get => throw null; } } - - // Generated from `NHibernate.Dialect.SybaseSQLAnywhere11Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseSQLAnywhere11Dialect : NHibernate.Dialect.SybaseSQLAnywhere10Dialect { public SybaseSQLAnywhere11Dialect() => throw null; } - - // Generated from `NHibernate.Dialect.SybaseSQLAnywhere12Dialect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseSQLAnywhere12Dialect : NHibernate.Dialect.SybaseSQLAnywhere11Dialect { - public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } + public SybaseSQLAnywhere12Dialect() => throw null; public override string CurrentUtcTimestampSelectString { get => throw null; } + public override string CurrentUtcTimestampSQLFunctionName { get => throw null; } public override string GetCreateSequenceString(string sequenceName) => throw null; public override string GetDropSequenceString(string sequenceName) => throw null; public override string GetSelectSequenceNextValString(string sequenceName) => throw null; @@ -10740,1012 +8812,64 @@ namespace NHibernate public override bool SupportsCurrentUtcTimestampSelection { get => throw null; } public override bool SupportsPooledSequences { get => throw null; } public override bool SupportsSequences { get => throw null; } - public SybaseSQLAnywhere12Dialect() => throw null; } - - // Generated from `NHibernate.Dialect.TypeNames` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TypeNames { - public string Get(System.Data.DbType typecode, int size, int precision, int scale) => throw null; + public TypeNames() => throw null; public string Get(System.Data.DbType typecode) => throw null; + public string Get(System.Data.DbType typecode, int size, int precision, int scale) => throw null; public string GetLongest(System.Data.DbType typecode) => throw null; - public const string LengthPlaceHolder = default; - public const string PrecisionPlaceHolder = default; - public void Put(System.Data.DbType typecode, string value) => throw null; + public static string LengthPlaceHolder; + public static string PrecisionPlaceHolder; public void Put(System.Data.DbType typecode, int capacity, string value) => throw null; - public const string ScalePlaceHolder = default; + public void Put(System.Data.DbType typecode, string value) => throw null; + public static string ScalePlaceHolder; public bool TryGet(System.Data.DbType typecode, out string typeName) => throw null; public bool TryGet(System.Data.DbType typecode, int size, int precision, int scale, out string typeName) => throw null; - public TypeNames() => throw null; - } - - namespace Function - { - // Generated from `NHibernate.Dialect.Function.AnsiExtractFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AnsiExtractFunction : NHibernate.Dialect.Function.SQLFunctionTemplate, NHibernate.Dialect.Function.IFunctionGrammar - { - public AnsiExtractFunction() : base(default(NHibernate.Type.IType), default(string)) => throw null; - bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null; - bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.AnsiSubstringFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AnsiSubstringFunction : NHibernate.Dialect.Function.ISQLFunction - { - public AnsiSubstringFunction() => throw null; - public NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - public string Name { get => throw null; } - public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.AnsiTrimEmulationFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AnsiTrimEmulationFunction : NHibernate.Dialect.Function.ISQLFunction, NHibernate.Dialect.Function.IFunctionGrammar - { - public AnsiTrimEmulationFunction(string replaceFunction) => throw null; - public AnsiTrimEmulationFunction() => throw null; - public NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null; - bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null; - public string Name { get => throw null; } - public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.AnsiTrimFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AnsiTrimFunction : NHibernate.Dialect.Function.SQLFunctionTemplate, NHibernate.Dialect.Function.IFunctionGrammar - { - public AnsiTrimFunction() : base(default(NHibernate.Type.IType), default(string)) => throw null; - bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null; - bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.BitwiseFunctionOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BitwiseFunctionOperation : NHibernate.Dialect.Function.ISQLFunction - { - public BitwiseFunctionOperation(string functionName) => throw null; - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - public string Name { get => throw null; } - public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.BitwiseNativeOperation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BitwiseNativeOperation : NHibernate.Dialect.Function.ISQLFunction - { - public BitwiseNativeOperation(string sqlOpToken, bool isUnary) => throw null; - public BitwiseNativeOperation(string sqlOpToken) => throw null; - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - public string Name { get => throw null; } - public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.CastFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CastFunction : NHibernate.Dialect.Function.ISQLFunction, NHibernate.Dialect.Function.IFunctionGrammar - { - public CastFunction() => throw null; - protected virtual bool CastingIsRequired(string sqlType) => throw null; - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null; - bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null; - public string Name { get => throw null; } - public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - protected virtual NHibernate.SqlCommand.SqlString Render(object expression, string sqlType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.CharIndexFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CharIndexFunction : NHibernate.Dialect.Function.ISQLFunction - { - public CharIndexFunction() => throw null; - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - public string Name { get => throw null; } - public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.ClassicAggregateFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ClassicAggregateFunction : NHibernate.Dialect.Function.ISQLFunction, NHibernate.Dialect.Function.IFunctionGrammar - { - public ClassicAggregateFunction(string name, bool acceptAsterisk, NHibernate.Type.IType typeValue) => throw null; - public ClassicAggregateFunction(string name, bool acceptAsterisk) => throw null; - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null; - bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null; - public string Name { get => throw null; } - public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public virtual NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - public override string ToString() => throw null; - protected bool TryGetArgumentType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError, out NHibernate.Type.IType argumentType, out NHibernate.SqlTypes.SqlType sqlType) => throw null; - protected bool acceptAsterisk; - } - - // Generated from `NHibernate.Dialect.Function.ClassicAvgFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ClassicAvgFunction : NHibernate.Dialect.Function.ClassicAggregateFunction - { - public ClassicAvgFunction() : base(default(string), default(bool)) => throw null; - public override NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public override NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.ClassicCountFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ClassicCountFunction : NHibernate.Dialect.Function.ClassicAggregateFunction - { - public ClassicCountFunction() : base(default(string), default(bool)) => throw null; - public override NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public override NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.ClassicSumFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ClassicSumFunction : NHibernate.Dialect.Function.ClassicAggregateFunction - { - public ClassicSumFunction() : base(default(string), default(bool)) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.CommonGrammar` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CommonGrammar : NHibernate.Dialect.Function.IFunctionGrammar - { - public CommonGrammar() => throw null; - public bool IsKnownArgument(string token) => throw null; - public bool IsSeparator(string token) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.EmulatedLengthSubstringFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EmulatedLengthSubstringFunction : NHibernate.Dialect.Function.StandardSQLFunction - { - public EmulatedLengthSubstringFunction() : base(default(string)) => throw null; - public override NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.IFunctionGrammar` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IFunctionGrammar - { - bool IsKnownArgument(string token); - bool IsSeparator(string token); - } - - // Generated from `NHibernate.Dialect.Function.ISQLFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISQLFunction - { - bool HasArguments { get; } - bool HasParenthesesIfNoArguments { get; } - NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory); - NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping); - } - - // Generated from `NHibernate.Dialect.Function.ISQLFunctionExtended` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - internal interface ISQLFunctionExtended : NHibernate.Dialect.Function.ISQLFunction - { - NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError); - NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError); - string Name { get; } - } - - // Generated from `NHibernate.Dialect.Function.NoArgSQLFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NoArgSQLFunction : NHibernate.Dialect.Function.ISQLFunction - { - public NHibernate.Type.IType FunctionReturnType { get => throw null; set => throw null; } - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public NoArgSQLFunction(string name, NHibernate.Type.IType returnType, bool hasParenthesesIfNoArguments) => throw null; - public NoArgSQLFunction(string name, NHibernate.Type.IType returnType) => throw null; - public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.NvlFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NvlFunction : NHibernate.Dialect.Function.ISQLFunction - { - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - public string Name { get => throw null; } - public NvlFunction() => throw null; - public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.PositionSubstringFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PositionSubstringFunction : NHibernate.Dialect.Function.ISQLFunction - { - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - public string Name { get => throw null; } - public PositionSubstringFunction() => throw null; - public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.SQLFunctionExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class SQLFunctionExtensions - { - public static NHibernate.Type.IType GetEffectiveReturnType(this NHibernate.Dialect.Function.ISQLFunction sqlFunction, System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public static NHibernate.Type.IType GetReturnType(this NHibernate.Dialect.Function.ISQLFunction sqlFunction, System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.SQLFunctionRegistry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLFunctionRegistry - { - public NHibernate.Dialect.Function.ISQLFunction FindSQLFunction(string functionName) => throw null; - public bool HasFunction(string functionName) => throw null; - public SQLFunctionRegistry(NHibernate.Dialect.Dialect dialect, System.Collections.Generic.IDictionary userFunctions) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.SQLFunctionTemplate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLFunctionTemplate : NHibernate.Dialect.Function.ISQLFunction - { - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - public virtual string Name { get => throw null; } - public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - public SQLFunctionTemplate(NHibernate.Type.IType type, string template, bool hasParenthesesIfNoArgs) => throw null; - public SQLFunctionTemplate(NHibernate.Type.IType type, string template) => throw null; - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Dialect.Function.SQLFunctionTemplateWithRequiredParameters` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLFunctionTemplateWithRequiredParameters : NHibernate.Dialect.Function.SQLFunctionTemplate - { - public override NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public SQLFunctionTemplateWithRequiredParameters(NHibernate.Type.IType type, string template, object[] requiredArgs, bool hasParenthesesIfNoArgs) : base(default(NHibernate.Type.IType), default(string)) => throw null; - public SQLFunctionTemplateWithRequiredParameters(NHibernate.Type.IType type, string template, object[] requiredArgs) : base(default(NHibernate.Type.IType), default(string)) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.StandardSQLFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StandardSQLFunction : NHibernate.Dialect.Function.ISQLFunction - { - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - public string Name { get => throw null; } - public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public virtual NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - public StandardSQLFunction(string name, NHibernate.Type.IType typeValue) => throw null; - public StandardSQLFunction(string name) => throw null; - public override string ToString() => throw null; - protected string name; - } - - // Generated from `NHibernate.Dialect.Function.StandardSafeSQLFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StandardSafeSQLFunction : NHibernate.Dialect.Function.StandardSQLFunction - { - public override NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public StandardSafeSQLFunction(string name, int allowedArgsCount) : base(default(string)) => throw null; - public StandardSafeSQLFunction(string name, NHibernate.Type.IType typeValue, int allowedArgsCount) : base(default(string)) => throw null; - } - - // Generated from `NHibernate.Dialect.Function.TransparentCastFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TransparentCastFunction : NHibernate.Dialect.Function.CastFunction - { - protected override bool CastingIsRequired(string sqlType) => throw null; - protected override NHibernate.SqlCommand.SqlString Render(object expression, string sqlType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public TransparentCastFunction() => throw null; - } - - // Generated from `NHibernate.Dialect.Function.VarArgsSQLFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class VarArgsSQLFunction : NHibernate.Dialect.Function.ISQLFunction - { - public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null; - public bool HasArguments { get => throw null; } - public bool HasParenthesesIfNoArguments { get => throw null; } - public virtual string Name { get => throw null; } - public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public virtual NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null; - public VarArgsSQLFunction(string begin, string sep, string end) => throw null; - public VarArgsSQLFunction(NHibernate.Type.IType type, string begin, string sep, string end) => throw null; - } - - } - namespace Lock - { - // Generated from `NHibernate.Dialect.Lock.ILockingStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ILockingStrategy - { - void Lock(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session); - System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Dialect.Lock.SelectLockingStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SelectLockingStrategy : NHibernate.Dialect.Lock.ILockingStrategy - { - public void Lock(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public SelectLockingStrategy(NHibernate.Persister.Entity.ILockable lockable, NHibernate.LockMode lockMode) => throw null; - } - - // Generated from `NHibernate.Dialect.Lock.UpdateLockingStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UpdateLockingStrategy : NHibernate.Dialect.Lock.ILockingStrategy - { - public void Lock(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public UpdateLockingStrategy(NHibernate.Persister.Entity.ILockable lockable, NHibernate.LockMode lockMode) => throw null; - } - - } - namespace Schema - { - // Generated from `NHibernate.Dialect.Schema.AbstractColumnMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractColumnMetaData : NHibernate.Dialect.Schema.IColumnMetadata - { - public AbstractColumnMetaData(System.Data.DataRow rs) => throw null; - public int ColumnSize { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string Nullable { get => throw null; set => throw null; } - public int NumericalPrecision { get => throw null; set => throw null; } - protected void SetColumnSize(object columnSizeValue) => throw null; - protected void SetNumericalPrecision(object numericalPrecisionValue) => throw null; - public override string ToString() => throw null; - public string TypeName { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Dialect.Schema.AbstractDataBaseSchema` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractDataBaseSchema : NHibernate.Dialect.Schema.IDataBaseSchema - { - protected AbstractDataBaseSchema(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) => throw null; - protected AbstractDataBaseSchema(System.Data.Common.DbConnection connection) => throw null; - public virtual string ColumnNameForTableName { get => throw null; } - protected System.Data.Common.DbConnection Connection { get => throw null; } - protected virtual string ForeignKeysSchemaName { get => throw null; } - public virtual System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; - public virtual System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; - public virtual System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; - public virtual System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; - public virtual System.Collections.Generic.ISet GetReservedWords() => throw null; - public abstract NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras); - public virtual System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; - public virtual bool IncludeDataTypesInReservedWords { get => throw null; } - public virtual bool StoresLowerCaseIdentifiers { get => throw null; } - public virtual bool StoresLowerCaseQuotedIdentifiers { get => throw null; } - public virtual bool StoresMixedCaseQuotedIdentifiers { get => throw null; } - public virtual bool StoresUpperCaseIdentifiers { get => throw null; } - public virtual bool StoresUpperCaseQuotedIdentifiers { get => throw null; } - public virtual bool UseDialectQualifyInsteadOfTableName { get => throw null; } - } - - // Generated from `NHibernate.Dialect.Schema.AbstractForeignKeyMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AbstractForeignKeyMetadata : NHibernate.Dialect.Schema.IForeignKeyMetadata - { - public AbstractForeignKeyMetadata(System.Data.DataRow rs) => throw null; - public void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column) => throw null; - public NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get => throw null; } - public string Name { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.AbstractIndexMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractIndexMetadata : NHibernate.Dialect.Schema.IIndexMetadata - { - public AbstractIndexMetadata(System.Data.DataRow rs) => throw null; - public void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column) => throw null; - public NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get => throw null; } - public string Name { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.AbstractTableMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractTableMetadata : NHibernate.Dialect.Schema.ITableMetadata - { - public AbstractTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) => throw null; - public string Catalog { get => throw null; set => throw null; } - public NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(string columnName) => throw null; - protected abstract NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs); - protected abstract string GetColumnName(System.Data.DataRow rs); - protected abstract string GetConstraintName(System.Data.DataRow rs); - public NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(string keyName) => throw null; - protected abstract NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs); - public NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(string indexName) => throw null; - protected abstract NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs); - protected abstract string GetIndexName(System.Data.DataRow rs); - public string Name { get => throw null; set => throw null; } - public virtual bool NeedPhysicalConstraintCreation(string fkName) => throw null; - protected abstract void ParseTableInfo(System.Data.DataRow rs); - public string Schema { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.DB2ColumnMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DB2ColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public DB2ColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.DB2ForeignKeyMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DB2ForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public DB2ForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.DB2IndexMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DB2IndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public DB2IndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.DB2MetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DB2MetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - public DB2MetaData(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; - public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; - public override System.Collections.Generic.ISet GetReservedWords() => throw null; - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.DB2TableMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DB2TableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata - { - public DB2TableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.FirebirdColumnMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FirebirdColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public FirebirdColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.FirebirdDataBaseSchema` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FirebirdDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - public FirebirdDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - public override bool StoresUpperCaseIdentifiers { get => throw null; } - } - - // Generated from `NHibernate.Dialect.Schema.FirebirdForeignKeyMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FirebirdForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public FirebirdForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.FirebirdIndexMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FirebirdIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public FirebirdIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.FirebirdTableMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FirebirdTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata - { - public FirebirdTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.HanaColumnMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HanaColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public HanaColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.HanaDataBaseSchema` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HanaDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; - public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; - public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; - public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; - public override System.Collections.Generic.ISet GetReservedWords() => throw null; - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; - public HanaDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; - public override bool StoresUpperCaseIdentifiers { get => throw null; } - } - - // Generated from `NHibernate.Dialect.Schema.HanaForeignKeyMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HanaForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public HanaForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.HanaIndexMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HanaIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public HanaIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.HanaTableMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HanaTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata - { - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - public HanaTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.IColumnMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IColumnMetadata - { - int ColumnSize { get; } - string Name { get; } - string Nullable { get; } - int NumericalPrecision { get; } - string TypeName { get; } - } - - // Generated from `NHibernate.Dialect.Schema.IDataBaseSchema` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDataBaseSchema - { - string ColumnNameForTableName { get; } - System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern); - System.Data.DataTable GetForeignKeys(string catalog, string schema, string table); - System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName); - System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName); - System.Collections.Generic.ISet GetReservedWords(); - NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras); - System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types); - bool StoresLowerCaseIdentifiers { get; } - bool StoresLowerCaseQuotedIdentifiers { get; } - bool StoresMixedCaseQuotedIdentifiers { get; } - bool StoresUpperCaseIdentifiers { get; } - bool StoresUpperCaseQuotedIdentifiers { get; } - } - - // Generated from `NHibernate.Dialect.Schema.IForeignKeyMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IForeignKeyMetadata - { - void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column); - NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get; } - string Name { get; } - } - - // Generated from `NHibernate.Dialect.Schema.IIndexMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IIndexMetadata - { - void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column); - NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get; } - string Name { get; } - } - - // Generated from `NHibernate.Dialect.Schema.ITableMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ITableMetadata - { - string Catalog { get; } - NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(string columnName); - NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(string keyName); - NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(string indexName); - string Name { get; } - bool NeedPhysicalConstraintCreation(string fkName); - string Schema { get; } - } - - // Generated from `NHibernate.Dialect.Schema.MsSqlCeColumnMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MsSqlCeColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public MsSqlCeColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MsSqlCeDataBaseSchema` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MsSqlCeDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - public MsSqlCeDataBaseSchema(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) : base(default(System.Data.Common.DbConnection)) => throw null; - public MsSqlCeDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; - public override bool UseDialectQualifyInsteadOfTableName { get => throw null; } - } - - // Generated from `NHibernate.Dialect.Schema.MsSqlCeForeignKeyMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MsSqlCeForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public MsSqlCeForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MsSqlCeIndexMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MsSqlCeIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public MsSqlCeIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MsSqlCeTableMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MsSqlCeTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata - { - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - public MsSqlCeTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MsSqlColumnMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MsSqlColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public MsSqlColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MsSqlDataBaseSchema` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MsSqlDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - public MsSqlDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MsSqlForeignKeyMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MsSqlForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public MsSqlForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MsSqlIndexMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MsSqlIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public MsSqlIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MsSqlTableMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MsSqlTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata - { - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - public MsSqlTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MySQLColumnMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MySQLColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public MySQLColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MySQLDataBaseSchema` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MySQLDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - protected override string ForeignKeysSchemaName { get => throw null; } - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - public MySQLDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MySQLForeignKeyMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MySQLForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public MySQLForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MySQLIndexMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MySQLIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public MySQLIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.MySQLTableMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MySQLTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata - { - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - public MySQLTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.OracleColumnMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OracleColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public OracleColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.OracleDataBaseSchema` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OracleDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; - public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; - public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; - public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; - public OracleDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; - public override bool StoresUpperCaseIdentifiers { get => throw null; } - } - - // Generated from `NHibernate.Dialect.Schema.OracleForeignKeyMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OracleForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public OracleForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.OracleIndexMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OracleIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public OracleIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.OracleTableMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OracleTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata - { - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - public OracleTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.PostgreSQLColumnMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostgreSQLColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public PostgreSQLColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.PostgreSQLDataBaseMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostgreSQLDataBaseMetadata : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; - public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; - public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; - public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; - public override bool IncludeDataTypesInReservedWords { get => throw null; } - public PostgreSQLDataBaseMetadata(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; - public override bool StoresLowerCaseIdentifiers { get => throw null; } - public override bool StoresMixedCaseQuotedIdentifiers { get => throw null; } - } - - // Generated from `NHibernate.Dialect.Schema.PostgreSQLForeignKeyMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostgreSQLForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public PostgreSQLForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.PostgreSQLIndexMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostgreSQLIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public PostgreSQLIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.PostgreSQLTableMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostgreSQLTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata - { - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - public PostgreSQLTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SQLiteColumnMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLiteColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public SQLiteColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SQLiteDataBaseMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLiteDataBaseMetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; - public SQLiteDataBaseMetaData(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) : base(default(System.Data.Common.DbConnection)) => throw null; - public SQLiteDataBaseMetaData(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; - public override bool UseDialectQualifyInsteadOfTableName { get => throw null; } - } - - // Generated from `NHibernate.Dialect.Schema.SQLiteForeignKeyMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLiteForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public SQLiteForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SQLiteIndexMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLiteIndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public SQLiteIndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SQLiteTableMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLiteTableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata - { - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - public SQLiteTableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SapSqlAnywhere17ColumnMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SapSqlAnywhere17ColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public SapSqlAnywhere17ColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SapSqlAnywhere17DataBaseMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SapSqlAnywhere17DataBaseMetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; - public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; - public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; - public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; - public override System.Collections.Generic.ISet GetReservedWords() => throw null; - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; - public SapSqlAnywhere17DataBaseMetaData(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SapSqlAnywhere17ForeignKeyMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SapSqlAnywhere17ForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public SapSqlAnywhere17ForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SapSqlAnywhere17IndexMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SapSqlAnywhere17IndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public SapSqlAnywhere17IndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SapSqlAnywhere17TableMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SapSqlAnywhere17TableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata - { - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - public SapSqlAnywhere17TableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SchemaHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class SchemaHelper - { - public static string GetString(System.Data.DataRow row, params string[] alternativeColumnNames) => throw null; - public static object GetValue(System.Data.DataRow row, params string[] alternativeColumnNames) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SybaseAnywhereColumnMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SybaseAnywhereColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData - { - public SybaseAnywhereColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SybaseAnywhereDataBaseMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SybaseAnywhereDataBaseMetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema - { - public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null; - public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null; - public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null; - public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null; - public override System.Collections.Generic.ISet GetReservedWords() => throw null; - public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null; - public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null; - public SybaseAnywhereDataBaseMetaData(System.Data.Common.DbConnection pObjConnection) : base(default(System.Data.Common.DbConnection)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SybaseAnywhereForeignKeyMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SybaseAnywhereForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata - { - public SybaseAnywhereForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SybaseAnywhereIndexMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SybaseAnywhereIndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata - { - public SybaseAnywhereIndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null; - } - - // Generated from `NHibernate.Dialect.Schema.SybaseAnywhereTableMetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SybaseAnywhereTableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata - { - protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null; - protected override string GetColumnName(System.Data.DataRow rs) => throw null; - protected override string GetConstraintName(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null; - protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null; - protected override string GetIndexName(System.Data.DataRow rs) => throw null; - protected override void ParseTableInfo(System.Data.DataRow rs) => throw null; - public SybaseAnywhereTableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null; - } - } } namespace Driver { - // Generated from `NHibernate.Driver.BasicResultSetsCommand` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BasicResultSetsCommand : NHibernate.Driver.IResultSetsCommand { public virtual void Append(NHibernate.SqlCommand.ISqlCommand command) => throw null; - public BasicResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; protected virtual void BindParameters(System.Data.Common.DbCommand command) => throw null; - protected System.Collections.Generic.List Commands { get => throw null; set => throw null; } + protected System.Collections.Generic.List Commands { get => throw null; } + public BasicResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; protected void ForEachSqlCommand(System.Action actionToDo) => throw null; public virtual System.Data.Common.DbDataReader GetReader(int? commandTimeout) => throw null; public virtual System.Threading.Tasks.Task GetReaderAsync(int? commandTimeout, System.Threading.CancellationToken cancellationToken) => throw null; public bool HasQueries { get => throw null; } - protected NHibernate.Engine.ISessionImplementor Session { get => throw null; set => throw null; } + protected NHibernate.Engine.ISessionImplementor Session { get => throw null; } public virtual NHibernate.SqlCommand.SqlString Sql { get => throw null; } } - - // Generated from `NHibernate.Driver.BatcherDataReaderWrapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BatcherDataReaderWrapper : System.Data.Common.DbDataReader { - protected BatcherDataReaderWrapper(NHibernate.Engine.IBatcher batcher, System.Data.Common.DbCommand command) => throw null; public override void Close() => throw null; public static NHibernate.Driver.BatcherDataReaderWrapper Create(NHibernate.Engine.IBatcher batcher, System.Data.Common.DbCommand command) => throw null; public static System.Threading.Tasks.Task CreateAsync(NHibernate.Engine.IBatcher batcher, System.Data.Common.DbCommand command, System.Threading.CancellationToken cancellationToken) => throw null; + protected BatcherDataReaderWrapper(NHibernate.Engine.IBatcher batcher, System.Data.Common.DbCommand command) => throw null; public override int Depth { get => throw null; } public override bool Equals(object obj) => throw null; public override int FieldCount { get => throw null; } public override bool GetBoolean(int i) => throw null; - public override System.Byte GetByte(int i) => throw null; - public override System.Int64 GetBytes(int i, System.Int64 fieldOffset, System.Byte[] buffer, int bufferoffset, int length) => throw null; - public override System.Char GetChar(int i) => throw null; - public override System.Int64 GetChars(int i, System.Int64 fieldoffset, System.Char[] buffer, int bufferoffset, int length) => throw null; + public override byte GetByte(int i) => throw null; + public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) => throw null; + public override char GetChar(int i) => throw null; + public override long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length) => throw null; public override string GetDataTypeName(int i) => throw null; public override System.DateTime GetDateTime(int i) => throw null; protected override System.Data.Common.DbDataReader GetDbDataReader(int ordinal) => throw null; - public override System.Decimal GetDecimal(int i) => throw null; + public override decimal GetDecimal(int i) => throw null; public override double GetDouble(int i) => throw null; public override System.Collections.IEnumerator GetEnumerator() => throw null; public override System.Type GetFieldType(int i) => throw null; public override float GetFloat(int i) => throw null; public override System.Guid GetGuid(int i) => throw null; public override int GetHashCode() => throw null; - public override System.Int16 GetInt16(int i) => throw null; + public override short GetInt16(int i) => throw null; public override int GetInt32(int i) => throw null; - public override System.Int64 GetInt64(int i) => throw null; + public override long GetInt64(int i) => throw null; public override string GetName(int i) => throw null; public override int GetOrdinal(string name) => throw null; public override System.Data.DataTable GetSchemaTable() => throw null; @@ -11756,16 +8880,14 @@ namespace NHibernate public override bool IsClosed { get => throw null; } public override bool IsDBNull(int i) => throw null; public override System.Threading.Tasks.Task IsDBNullAsync(int ordinal, System.Threading.CancellationToken cancellationToken) => throw null; - public override object this[string name] { get => throw null; } - public override object this[int i] { get => throw null; } public override bool NextResult() => throw null; public override System.Threading.Tasks.Task NextResultAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override bool Read() => throw null; public override System.Threading.Tasks.Task ReadAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override int RecordsAffected { get => throw null; } + public override object this[int i] { get => throw null; } + public override object this[string name] { get => throw null; } } - - // Generated from `NHibernate.Driver.CsharpSqliteDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CsharpSqliteDriver : NHibernate.Driver.ReflectionBasedDriver { public CsharpSqliteDriver() : base(default(string), default(string), default(string)) => throw null; @@ -11774,8 +8896,6 @@ namespace NHibernate public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.DB2400Driver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DB2400Driver : NHibernate.Driver.ReflectionBasedDriver { public DB2400Driver() : base(default(string), default(string), default(string)) => throw null; @@ -11784,20 +8904,18 @@ namespace NHibernate public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.DB2CoreDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DB2CoreDriver : NHibernate.Driver.DB2DriverBase { public DB2CoreDriver() : base(default(string)) => throw null; + protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null; + public override string NamedPrefix { get => throw null; } + public override bool UseNamedPrefixInParameter { get => throw null; } + public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.DB2Driver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DB2Driver : NHibernate.Driver.DB2DriverBase { public DB2Driver() : base(default(string)) => throw null; } - - // Generated from `NHibernate.Driver.DB2DriverBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class DB2DriverBase : NHibernate.Driver.ReflectionBasedDriver { protected DB2DriverBase(string assemblyName) : base(default(string), default(string), default(string)) => throw null; @@ -11809,16 +8927,12 @@ namespace NHibernate public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.DbProviderFactoryDriveConnectionCommandProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DbProviderFactoryDriveConnectionCommandProvider : NHibernate.Driver.IDriveConnectionCommandProvider { public System.Data.Common.DbCommand CreateCommand() => throw null; public System.Data.Common.DbConnection CreateConnection() => throw null; public DbProviderFactoryDriveConnectionCommandProvider(System.Data.Common.DbProviderFactory dbProviderFactory) => throw null; } - - // Generated from `NHibernate.Driver.DotConnectMySqlDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DotConnectMySqlDriver : NHibernate.Driver.ReflectionBasedDriver { public DotConnectMySqlDriver() : base(default(string), default(string), default(string)) => throw null; @@ -11826,9 +8940,7 @@ namespace NHibernate public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.DriverBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class DriverBase : NHibernate.Driver.ISqlParameterFormatter, NHibernate.Driver.IDriver + public abstract class DriverBase : NHibernate.Driver.IDriver, NHibernate.Driver.ISqlParameterFormatter { public virtual void AdjustCommand(System.Data.Common.DbCommand command) => throw null; public virtual System.Data.Common.DbTransaction BeginTransaction(System.Data.IsolationLevel isolationLevel, System.Data.Common.DbConnection connection) => throw null; @@ -11863,17 +8975,15 @@ namespace NHibernate public virtual bool SupportsNullEnlistment { get => throw null; } protected virtual bool SupportsPreparingCommands { get => throw null; } public virtual bool SupportsSystemTransactions { get => throw null; } + public virtual System.Data.Common.DbCommand UnwrapDbCommand(System.Data.Common.DbCommand command) => throw null; public abstract bool UseNamedPrefixInParameter { get; } public abstract bool UseNamedPrefixInSql { get; } } - - // Generated from `NHibernate.Driver.DriverExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class DriverExtensions + public static partial class DriverExtensions { public static System.Data.Common.DbTransaction BeginTransaction(this NHibernate.Driver.IDriver driver, System.Data.IsolationLevel isolationLevel, System.Data.Common.DbConnection connection) => throw null; + public static System.Data.Common.DbCommand UnwrapDbCommand(this NHibernate.Driver.IDriver driver, System.Data.Common.DbCommand command) => throw null; } - - // Generated from `NHibernate.Driver.FirebirdClientDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FirebirdClientDriver : NHibernate.Driver.ReflectionBasedDriver { public void ClearPool(string connectionString) => throw null; @@ -11887,41 +8997,31 @@ namespace NHibernate public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.HanaColumnStoreDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HanaColumnStoreDriver : NHibernate.Driver.HanaDriverBase { public HanaColumnStoreDriver() => throw null; } - - // Generated from `NHibernate.Driver.HanaDriverBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class HanaDriverBase : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider { System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; } - public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; protected HanaDriverBase() : base(default(string), default(string), default(string)) => throw null; + public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; public override string NamedPrefix { get => throw null; } public override bool RequiresTimeSpanForTime { get => throw null; } public override bool SupportsNullEnlistment { get => throw null; } public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.HanaRowStoreDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HanaRowStoreDriver : NHibernate.Driver.HanaDriverBase { public HanaRowStoreDriver() => throw null; public override bool SupportsSystemTransactions { get => throw null; } } - - // Generated from `NHibernate.Driver.IDriveConnectionCommandProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDriveConnectionCommandProvider { System.Data.Common.DbCommand CreateCommand(); System.Data.Common.DbConnection CreateConnection(); } - - // Generated from `NHibernate.Driver.IDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDriver { void AdjustCommand(System.Data.Common.DbCommand command); @@ -11942,8 +9042,20 @@ namespace NHibernate bool SupportsNullEnlistment { get; } bool SupportsSystemTransactions { get; } } - - // Generated from `NHibernate.Driver.IResultSetsCommand` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class IfxDriver : NHibernate.Driver.ReflectionBasedDriver + { + public IfxDriver() : base(default(string), default(string), default(string)) => throw null; + public override string NamedPrefix { get => throw null; } + public override bool UseNamedPrefixInParameter { get => throw null; } + public override bool UseNamedPrefixInSql { get => throw null; } + } + public class IngresDriver : NHibernate.Driver.ReflectionBasedDriver + { + public IngresDriver() : base(default(string), default(string), default(string)) => throw null; + public override string NamedPrefix { get => throw null; } + public override bool UseNamedPrefixInParameter { get => throw null; } + public override bool UseNamedPrefixInSql { get => throw null; } + } public interface IResultSetsCommand { void Append(NHibernate.SqlCommand.ISqlCommand command); @@ -11952,44 +9064,22 @@ namespace NHibernate bool HasQueries { get; } NHibernate.SqlCommand.SqlString Sql { get; } } - - // Generated from `NHibernate.Driver.ISqlParameterFormatter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISqlParameterFormatter { string GetParameterName(int index); } - - // Generated from `NHibernate.Driver.IfxDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IfxDriver : NHibernate.Driver.ReflectionBasedDriver - { - public IfxDriver() : base(default(string), default(string), default(string)) => throw null; - public override string NamedPrefix { get => throw null; } - public override bool UseNamedPrefixInParameter { get => throw null; } - public override bool UseNamedPrefixInSql { get => throw null; } - } - - // Generated from `NHibernate.Driver.IngresDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IngresDriver : NHibernate.Driver.ReflectionBasedDriver - { - public IngresDriver() : base(default(string), default(string), default(string)) => throw null; - public override string NamedPrefix { get => throw null; } - public override bool UseNamedPrefixInParameter { get => throw null; } - public override bool UseNamedPrefixInSql { get => throw null; } - } - - // Generated from `NHibernate.Driver.MicrosoftDataSqlClientDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MicrosoftDataSqlClientDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IParameterAdjuster, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider + public class MicrosoftDataSqlClientDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider, NHibernate.AdoNet.IParameterAdjuster { public virtual void AdjustParameterForValue(System.Data.Common.DbParameter parameter, NHibernate.SqlTypes.SqlType sqlType, object value) => throw null; System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; } public override void Configure(System.Collections.Generic.IDictionary settings) => throw null; + public MicrosoftDataSqlClientDriver() : base(default(string), default(string), default(string)) => throw null; public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; public override bool HasDelayedDistributedTransactionCompletion { get => throw null; } protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null; protected static bool IsAnsiText(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null; protected static bool IsBlob(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null; protected static bool IsText(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null; - public MicrosoftDataSqlClientDriver() : base(default(string), default(string), default(string)) => throw null; public override System.DateTime MinDate { get => throw null; } public override string NamedPrefix { get => throw null; } public override bool RequiresTimeSpanForTime { get => throw null; } @@ -11998,14 +9088,12 @@ namespace NHibernate public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.MySqlDataDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MySqlDataDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider { System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; } + public MySqlDataDriver() : base(default(string), default(string), default(string)) => throw null; public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; public override System.DateTime MinDate { get => throw null; } - public MySqlDataDriver() : base(default(string), default(string), default(string)) => throw null; public override string NamedPrefix { get => throw null; } public override bool RequiresTimeSpanForTime { get => throw null; } public override bool SupportsMultipleOpenReaders { get => throw null; } @@ -12014,33 +9102,32 @@ namespace NHibernate public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.NDataReader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NDataReader : System.Data.Common.DbDataReader { public override void Close() => throw null; public static NHibernate.Driver.NDataReader Create(System.Data.Common.DbDataReader reader, bool isMidstream) => throw null; public static System.Threading.Tasks.Task CreateAsync(System.Data.Common.DbDataReader reader, bool isMidstream, System.Threading.CancellationToken cancellationToken) => throw null; + protected NDataReader() => throw null; public override int Depth { get => throw null; } protected override void Dispose(bool disposing) => throw null; public override int FieldCount { get => throw null; } public override bool GetBoolean(int i) => throw null; - public override System.Byte GetByte(int i) => throw null; - public override System.Int64 GetBytes(int i, System.Int64 fieldOffset, System.Byte[] buffer, int bufferOffset, int length) => throw null; - public override System.Char GetChar(int i) => throw null; - public override System.Int64 GetChars(int i, System.Int64 fieldOffset, System.Char[] buffer, int bufferOffset, int length) => throw null; + public override byte GetByte(int i) => throw null; + public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferOffset, int length) => throw null; + public override char GetChar(int i) => throw null; + public override long GetChars(int i, long fieldOffset, char[] buffer, int bufferOffset, int length) => throw null; public override string GetDataTypeName(int i) => throw null; public override System.DateTime GetDateTime(int i) => throw null; protected override System.Data.Common.DbDataReader GetDbDataReader(int ordinal) => throw null; - public override System.Decimal GetDecimal(int i) => throw null; + public override decimal GetDecimal(int i) => throw null; public override double GetDouble(int i) => throw null; public override System.Collections.IEnumerator GetEnumerator() => throw null; public override System.Type GetFieldType(int i) => throw null; public override float GetFloat(int i) => throw null; public override System.Guid GetGuid(int i) => throw null; - public override System.Int16 GetInt16(int i) => throw null; + public override short GetInt16(int i) => throw null; public override int GetInt32(int i) => throw null; - public override System.Int64 GetInt64(int i) => throw null; + public override long GetInt64(int i) => throw null; public override string GetName(int i) => throw null; public override int GetOrdinal(string name) => throw null; public override System.Data.DataTable GetSchemaTable() => throw null; @@ -12051,44 +9138,42 @@ namespace NHibernate public override bool IsClosed { get => throw null; } public override bool IsDBNull(int i) => throw null; public override System.Threading.Tasks.Task IsDBNullAsync(int ordinal, System.Threading.CancellationToken cancellationToken) => throw null; - public override object this[string name] { get => throw null; } - public override object this[int i] { get => throw null; } - protected NDataReader() => throw null; public override bool NextResult() => throw null; public override System.Threading.Tasks.Task NextResultAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override bool Read() => throw null; public override System.Threading.Tasks.Task ReadAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override int RecordsAffected { get => throw null; } + public override object this[string name] { get => throw null; } + public override object this[int i] { get => throw null; } } - - // Generated from `NHibernate.Driver.NHybridDataReader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NHybridDataReader : System.Data.Common.DbDataReader { public override void Close() => throw null; - public static NHibernate.Driver.NHybridDataReader Create(System.Data.Common.DbDataReader reader, bool inMemory) => throw null; public static NHibernate.Driver.NHybridDataReader Create(System.Data.Common.DbDataReader reader) => throw null; - public static System.Threading.Tasks.Task CreateAsync(System.Data.Common.DbDataReader reader, bool inMemory, System.Threading.CancellationToken cancellationToken) => throw null; + public static NHibernate.Driver.NHybridDataReader Create(System.Data.Common.DbDataReader reader, bool inMemory) => throw null; public static System.Threading.Tasks.Task CreateAsync(System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task CreateAsync(System.Data.Common.DbDataReader reader, bool inMemory, System.Threading.CancellationToken cancellationToken) => throw null; + protected NHybridDataReader() => throw null; public override int Depth { get => throw null; } protected override void Dispose(bool disposing) => throw null; public override int FieldCount { get => throw null; } public override bool GetBoolean(int i) => throw null; - public override System.Byte GetByte(int i) => throw null; - public override System.Int64 GetBytes(int i, System.Int64 fieldOffset, System.Byte[] buffer, int bufferoffset, int length) => throw null; - public override System.Char GetChar(int i) => throw null; - public override System.Int64 GetChars(int i, System.Int64 fieldoffset, System.Char[] buffer, int bufferoffset, int length) => throw null; + public override byte GetByte(int i) => throw null; + public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) => throw null; + public override char GetChar(int i) => throw null; + public override long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length) => throw null; public override string GetDataTypeName(int i) => throw null; public override System.DateTime GetDateTime(int i) => throw null; protected override System.Data.Common.DbDataReader GetDbDataReader(int ordinal) => throw null; - public override System.Decimal GetDecimal(int i) => throw null; + public override decimal GetDecimal(int i) => throw null; public override double GetDouble(int i) => throw null; public override System.Collections.IEnumerator GetEnumerator() => throw null; public override System.Type GetFieldType(int i) => throw null; public override float GetFloat(int i) => throw null; public override System.Guid GetGuid(int i) => throw null; - public override System.Int16 GetInt16(int i) => throw null; + public override short GetInt16(int i) => throw null; public override int GetInt32(int i) => throw null; - public override System.Int64 GetInt64(int i) => throw null; + public override long GetInt64(int i) => throw null; public override string GetName(int i) => throw null; public override int GetOrdinal(string name) => throw null; public override System.Data.DataTable GetSchemaTable() => throw null; @@ -12100,9 +9185,6 @@ namespace NHibernate public override bool IsDBNull(int i) => throw null; public override System.Threading.Tasks.Task IsDBNullAsync(int ordinal, System.Threading.CancellationToken cancellationToken) => throw null; public bool IsMidstream { get => throw null; } - public override object this[string name] { get => throw null; } - public override object this[int i] { get => throw null; } - protected NHybridDataReader() => throw null; public override bool NextResult() => throw null; public override System.Threading.Tasks.Task NextResultAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override bool Read() => throw null; @@ -12111,18 +9193,18 @@ namespace NHibernate public System.Threading.Tasks.Task ReadIntoMemoryAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override int RecordsAffected { get => throw null; } public System.Data.Common.DbDataReader Target { get => throw null; } - // ERR: Stub generator didn't handle member: ~NHybridDataReader + public override object this[string name] { get => throw null; } + public override object this[int i] { get => throw null; } } - - // Generated from `NHibernate.Driver.NpgsqlDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NpgsqlDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider { + public override void AdjustCommand(System.Data.Common.DbCommand command) => throw null; System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; } + public NpgsqlDriver() : base(default(string), default(string), default(string)) => throw null; public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; public override bool HasDelayedDistributedTransactionCompletion { get => throw null; } protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null; public override string NamedPrefix { get => throw null; } - public NpgsqlDriver() : base(default(string), default(string), default(string)) => throw null; public override bool RequiresTimeSpanForTime { get => throw null; } public override bool SupportsMultipleOpenReaders { get => throw null; } public override bool SupportsMultipleQueries { get => throw null; } @@ -12131,141 +9213,105 @@ namespace NHibernate public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.OdbcDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OdbcDriver : NHibernate.Driver.ReflectionBasedDriver { public override void Configure(System.Collections.Generic.IDictionary settings) => throw null; + public OdbcDriver() : base(default(string), default(string), default(string)) => throw null; public override bool HasDelayedDistributedTransactionCompletion { get => throw null; } protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null; public override System.DateTime MinDate { get => throw null; } public override string NamedPrefix { get => throw null; } - public OdbcDriver() : base(default(string), default(string), default(string)) => throw null; public override bool RequiresTimeSpanForTime { get => throw null; } public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.OleDbDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OleDbDriver : NHibernate.Driver.ReflectionBasedDriver { - public override string NamedPrefix { get => throw null; } public OleDbDriver() : base(default(string), default(string), default(string)) => throw null; + public override string NamedPrefix { get => throw null; } public override bool SupportsMultipleOpenReaders { get => throw null; } public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.OracleClientDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OracleClientDriver : NHibernate.Driver.ReflectionBasedDriver { + public OracleClientDriver() : base(default(string), default(string), default(string)) => throw null; protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null; public override string NamedPrefix { get => throw null; } protected override void OnBeforePrepare(System.Data.Common.DbCommand command) => throw null; - public OracleClientDriver() : base(default(string), default(string), default(string)) => throw null; public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.OracleDataClientDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OracleDataClientDriver : NHibernate.Driver.OracleDataClientDriverBase { public OracleDataClientDriver() : base(default(string)) => throw null; } - - // Generated from `NHibernate.Driver.OracleDataClientDriverBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class OracleDataClientDriverBase : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider { System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; } public override void Configure(System.Collections.Generic.IDictionary settings) => throw null; + public override System.Data.Common.DbCommand CreateCommand() => throw null; + protected OracleDataClientDriverBase(string assemblyName) : base(default(string), default(string), default(string)) => throw null; protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null; public override string NamedPrefix { get => throw null; } protected override void OnBeforePrepare(System.Data.Common.DbCommand command) => throw null; - protected OracleDataClientDriverBase(string assemblyName) : base(default(string), default(string), default(string)) => throw null; - private OracleDataClientDriverBase(string driverAssemblyName, string clientNamespace) : base(default(string), default(string), default(string)) => throw null; - public bool UseBinaryFloatingPointTypes { get => throw null; set => throw null; } - public bool UseNPrefixedTypesForUnicode { get => throw null; set => throw null; } + public bool SuppressDecimalInvalidCastException { get => throw null; } + public override System.Data.Common.DbCommand UnwrapDbCommand(System.Data.Common.DbCommand command) => throw null; + public bool UseBinaryFloatingPointTypes { get => throw null; } public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } + public bool UseNPrefixedTypesForUnicode { get => throw null; } } - - // Generated from `NHibernate.Driver.OracleLiteDataClientDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OracleLiteDataClientDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider { System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; } + public OracleLiteDataClientDriver() : base(default(string), default(string), default(string)) => throw null; protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null; public override string NamedPrefix { get => throw null; } - public OracleLiteDataClientDriver() : base(default(string), default(string), default(string)) => throw null; public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.OracleManagedDataClientDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OracleManagedDataClientDriver : NHibernate.Driver.OracleDataClientDriverBase { - public override bool HasDelayedDistributedTransactionCompletion { get => throw null; } public OracleManagedDataClientDriver() : base(default(string)) => throw null; + public override bool HasDelayedDistributedTransactionCompletion { get => throw null; } } - - // Generated from `NHibernate.Driver.ReflectionBasedDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class ReflectionBasedDriver : NHibernate.Driver.DriverBase { public override System.Data.Common.DbCommand CreateCommand() => throw null; public override System.Data.Common.DbConnection CreateConnection() => throw null; - protected System.Version DriverVersion { get => throw null; } - protected ReflectionBasedDriver(string providerInvariantName, string driverAssemblyName, string connectionTypeName, string commandTypeName) => throw null; protected ReflectionBasedDriver(string driverAssemblyName, string connectionTypeName, string commandTypeName) => throw null; - protected const string ReflectionTypedProviderExceptionMessageTemplate = default; + protected ReflectionBasedDriver(string providerInvariantName, string driverAssemblyName, string connectionTypeName, string commandTypeName) => throw null; + protected System.Version DriverVersion { get => throw null; } + protected static string ReflectionTypedProviderExceptionMessageTemplate; } - - // Generated from `NHibernate.Driver.ReflectionDriveConnectionCommandProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ReflectionDriveConnectionCommandProvider : NHibernate.Driver.IDriveConnectionCommandProvider { public System.Data.Common.DbCommand CreateCommand() => throw null; public System.Data.Common.DbConnection CreateConnection() => throw null; public ReflectionDriveConnectionCommandProvider(System.Type connectionType, System.Type commandType) => throw null; } - - // Generated from `NHibernate.Driver.SQLite20Driver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLite20Driver : NHibernate.Driver.ReflectionBasedDriver - { - public override System.Data.Common.DbConnection CreateConnection() => throw null; - public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; - public override bool HasDelayedDistributedTransactionCompletion { get => throw null; } - public override string NamedPrefix { get => throw null; } - public SQLite20Driver() : base(default(string), default(string), default(string)) => throw null; - public override bool SupportsMultipleOpenReaders { get => throw null; } - public override bool SupportsMultipleQueries { get => throw null; } - public override bool SupportsNullEnlistment { get => throw null; } - public override bool UseNamedPrefixInParameter { get => throw null; } - public override bool UseNamedPrefixInSql { get => throw null; } - } - - // Generated from `NHibernate.Driver.SapSQLAnywhere17Driver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SapSQLAnywhere17Driver : NHibernate.Driver.ReflectionBasedDriver { + public SapSQLAnywhere17Driver() : base(default(string), default(string), default(string)) => throw null; public override string NamedPrefix { get => throw null; } public override bool RequiresTimeSpanForTime { get => throw null; } - public SapSQLAnywhere17Driver() : base(default(string), default(string), default(string)) => throw null; public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.Sql2008ClientDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Sql2008ClientDriver : NHibernate.Driver.SqlClientDriver { + public Sql2008ClientDriver() => throw null; protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null; public override System.DateTime MinDate { get => throw null; } public override bool RequiresTimeSpanForTime { get => throw null; } - public Sql2008ClientDriver() => throw null; } - - // Generated from `NHibernate.Driver.SqlClientDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SqlClientDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IParameterAdjuster, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider + public class SqlClientDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider, NHibernate.AdoNet.IParameterAdjuster { public virtual void AdjustParameterForValue(System.Data.Common.DbParameter parameter, NHibernate.SqlTypes.SqlType sqlType, object value) => throw null; System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; } public override void Configure(System.Collections.Generic.IDictionary settings) => throw null; + public SqlClientDriver() : base(default(string), default(string), default(string)) => throw null; public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; public override bool HasDelayedDistributedTransactionCompletion { get => throw null; } protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null; @@ -12273,143 +9319,165 @@ namespace NHibernate protected static bool IsBlob(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null; protected static bool IsChar(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null; protected static bool IsText(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null; - public const System.Byte MaxDateTime2 = default; - public const System.Byte MaxDateTimeOffset = default; - public const System.Byte MaxPrecision = default; - public const System.Byte MaxScale = default; - public const int MaxSizeForAnsiClob = default; - public const int MaxSizeForBlob = default; - public const int MaxSizeForClob = default; - public const int MaxSizeForLengthLimitedAnsiString = default; - public const int MaxSizeForLengthLimitedBinary = default; - public const int MaxSizeForLengthLimitedString = default; - public const int MaxSizeForXml = default; + public static byte MaxDateTime2; + public static byte MaxDateTimeOffset; + public static byte MaxPrecision; + public static byte MaxScale; + public static int MaxSizeForAnsiClob; + public static int MaxSizeForBlob; + public static int MaxSizeForClob; + public static int MaxSizeForLengthLimitedAnsiString; + public static int MaxSizeForLengthLimitedBinary; + public static int MaxSizeForLengthLimitedString; + public static int MaxSizeForXml; public override System.DateTime MinDate { get => throw null; } public override string NamedPrefix { get => throw null; } protected static void SetDefaultParameterSize(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null; public static void SetVariableLengthParameterSize(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null; - public SqlClientDriver() : base(default(string), default(string), default(string)) => throw null; public override bool SupportsMultipleOpenReaders { get => throw null; } public override bool SupportsMultipleQueries { get => throw null; } public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.SqlServerCeDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class SQLite20Driver : NHibernate.Driver.ReflectionBasedDriver + { + public override System.Data.Common.DbConnection CreateConnection() => throw null; + public SQLite20Driver() : base(default(string), default(string), default(string)) => throw null; + public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; + public override bool HasDelayedDistributedTransactionCompletion { get => throw null; } + public override string NamedPrefix { get => throw null; } + public override bool SupportsMultipleOpenReaders { get => throw null; } + public override bool SupportsMultipleQueries { get => throw null; } + public override bool SupportsNullEnlistment { get => throw null; } + public override bool UseNamedPrefixInParameter { get => throw null; } + public override bool UseNamedPrefixInSql { get => throw null; } + } public class SqlServerCeDriver : NHibernate.Driver.ReflectionBasedDriver { + public SqlServerCeDriver() : base(default(string), default(string), default(string)) => throw null; public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null; protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null; public override System.DateTime MinDate { get => throw null; } public override string NamedPrefix { get => throw null; } protected override void SetCommandTimeout(System.Data.Common.DbCommand cmd) => throw null; - public SqlServerCeDriver() : base(default(string), default(string), default(string)) => throw null; public override bool SupportsEnlistmentWhenAutoEnlistmentIsDisabled { get => throw null; } public override bool SupportsMultipleOpenReaders { get => throw null; } public override bool SupportsNullEnlistment { get => throw null; } public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.SqlStringFormatter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlStringFormatter : NHibernate.SqlCommand.ISqlStringVisitor { public string[] AssignedParameterNames { get => throw null; } + public SqlStringFormatter(NHibernate.Driver.ISqlParameterFormatter formatter, string multipleQueriesSeparator) => throw null; public void Format(NHibernate.SqlCommand.SqlString text) => throw null; public string GetFormattedText() => throw null; public bool HasReturnParameter { get => throw null; } void NHibernate.SqlCommand.ISqlStringVisitor.Parameter(NHibernate.SqlCommand.Parameter parameter) => throw null; - public SqlStringFormatter(NHibernate.Driver.ISqlParameterFormatter formatter, string multipleQueriesSeparator) => throw null; void NHibernate.SqlCommand.ISqlStringVisitor.String(string text) => throw null; void NHibernate.SqlCommand.ISqlStringVisitor.String(NHibernate.SqlCommand.SqlString sqlString) => throw null; } - - // Generated from `NHibernate.Driver.SybaseAdoNet45Driver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseAdoNet45Driver : NHibernate.Driver.SybaseAseClientDriverBase { public SybaseAdoNet45Driver() : base(default(string)) => throw null; } - - // Generated from `NHibernate.Driver.SybaseAdoNet4Driver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseAdoNet4Driver : NHibernate.Driver.SybaseAseClientDriverBase { public SybaseAdoNet4Driver() : base(default(string)) => throw null; } - - // Generated from `NHibernate.Driver.SybaseAsaClientDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseAsaClientDriver : NHibernate.Driver.ReflectionBasedDriver { + public SybaseAsaClientDriver() : base(default(string), default(string), default(string)) => throw null; public override string NamedPrefix { get => throw null; } public override bool RequiresTimeSpanForTime { get => throw null; } - public SybaseAsaClientDriver() : base(default(string), default(string), default(string)) => throw null; public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.SybaseAseClientDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseAseClientDriver : NHibernate.Driver.SybaseAseClientDriverBase { public SybaseAseClientDriver() : base(default(string)) => throw null; } - - // Generated from `NHibernate.Driver.SybaseAseClientDriverBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class SybaseAseClientDriverBase : NHibernate.Driver.ReflectionBasedDriver { - public override string NamedPrefix { get => throw null; } - protected SybaseAseClientDriverBase(string providerInvariantName, string assemblyName, string connectionTypeName, string commandTypeName) : base(default(string), default(string), default(string)) => throw null; protected SybaseAseClientDriverBase(string assemblyName) : base(default(string), default(string), default(string)) => throw null; + protected SybaseAseClientDriverBase(string providerInvariantName, string assemblyName, string connectionTypeName, string commandTypeName) : base(default(string), default(string), default(string)) => throw null; + public override string NamedPrefix { get => throw null; } public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.SybaseSQLAnywhereDotNet4Driver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseSQLAnywhereDotNet4Driver : NHibernate.Driver.ReflectionBasedDriver { + public SybaseSQLAnywhereDotNet4Driver() : base(default(string), default(string), default(string)) => throw null; public override string NamedPrefix { get => throw null; } public override bool RequiresTimeSpanForTime { get => throw null; } - public SybaseSQLAnywhereDotNet4Driver() : base(default(string), default(string), default(string)) => throw null; public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - - // Generated from `NHibernate.Driver.SybaseSQLAnywhereDriver` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SybaseSQLAnywhereDriver : NHibernate.Driver.ReflectionBasedDriver { + public SybaseSQLAnywhereDriver() : base(default(string), default(string), default(string)) => throw null; public override string NamedPrefix { get => throw null; } public override bool RequiresTimeSpanForTime { get => throw null; } - public SybaseSQLAnywhereDriver() : base(default(string), default(string), default(string)) => throw null; public override bool UseNamedPrefixInParameter { get => throw null; } public override bool UseNamedPrefixInSql { get => throw null; } } - + } + public class DuplicateMappingException : NHibernate.MappingException + { + public DuplicateMappingException(string customMessage, string type, string name) : base(default(string)) => throw null; + public DuplicateMappingException(string type, string name) : base(default(string)) => throw null; + public DuplicateMappingException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string Name { get => throw null; } + public string Type { get => throw null; } + } + public class EmptyInterceptor : NHibernate.IInterceptor + { + public virtual void AfterTransactionBegin(NHibernate.ITransaction tx) => throw null; + public virtual void AfterTransactionCompletion(NHibernate.ITransaction tx) => throw null; + public virtual void BeforeTransactionCompletion(NHibernate.ITransaction tx) => throw null; + public EmptyInterceptor() => throw null; + public virtual int[] FindDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types) => throw null; + public virtual object GetEntity(string entityName, object id) => throw null; + public virtual string GetEntityName(object entity) => throw null; + public static NHibernate.EmptyInterceptor Instance; + public virtual object Instantiate(string clazz, object id) => throw null; + public virtual bool? IsTransient(object entity) => throw null; + public virtual void OnCollectionRecreate(object collection, object key) => throw null; + public virtual void OnCollectionRemove(object collection, object key) => throw null; + public virtual void OnCollectionUpdate(object collection, object key) => throw null; + public virtual void OnDelete(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types) => throw null; + public virtual bool OnFlushDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types) => throw null; + public virtual bool OnLoad(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types) => throw null; + public virtual NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql) => throw null; + public virtual bool OnSave(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types) => throw null; + public virtual void PostFlush(System.Collections.ICollection entities) => throw null; + public virtual void PreFlush(System.Collections.ICollection entitites) => throw null; + public virtual void SetSession(NHibernate.ISession session) => throw null; } namespace Engine { - // Generated from `NHibernate.Engine.AbstractLhsAssociationTypeSqlInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractLhsAssociationTypeSqlInfo : NHibernate.Engine.ILhsAssociationTypeSqlInfo { + public string Alias { get => throw null; } protected AbstractLhsAssociationTypeSqlInfo(string alias, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.IMapping mapping) => throw null; - public string Alias { get => throw null; set => throw null; } public string[] GetAliasedColumnNames(NHibernate.Type.IAssociationType type, int begin) => throw null; protected abstract string[] GetAliasedColumns(); public string[] GetColumnNames(NHibernate.Type.IAssociationType type, int begin) => throw null; protected abstract string[] GetColumns(); public abstract string GetTableName(NHibernate.Type.IAssociationType type); - public NHibernate.Engine.IMapping Mapping { get => throw null; set => throw null; } - public NHibernate.Persister.Entity.IOuterJoinLoadable Persister { get => throw null; set => throw null; } + public NHibernate.Engine.IMapping Mapping { get => throw null; } + public NHibernate.Persister.Entity.IOuterJoinLoadable Persister { get => throw null; } } - - // Generated from `NHibernate.Engine.ActionQueue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ActionQueue { - public ActionQueue(NHibernate.Engine.ISessionImplementor session) => throw null; - public void AddAction(NHibernate.Action.EntityUpdateAction action) => throw null; public void AddAction(NHibernate.Action.EntityInsertAction action) => throw null; - public void AddAction(NHibernate.Action.EntityIdentityInsertAction insert) => throw null; public void AddAction(NHibernate.Action.EntityDeleteAction action) => throw null; - public void AddAction(NHibernate.Action.CollectionUpdateAction action) => throw null; - public void AddAction(NHibernate.Action.CollectionRemoveAction action) => throw null; + public void AddAction(NHibernate.Action.EntityUpdateAction action) => throw null; public void AddAction(NHibernate.Action.CollectionRecreateAction action) => throw null; + public void AddAction(NHibernate.Action.CollectionRemoveAction action) => throw null; + public void AddAction(NHibernate.Action.CollectionUpdateAction action) => throw null; + public void AddAction(NHibernate.Action.EntityIdentityInsertAction insert) => throw null; public void AddAction(NHibernate.Action.BulkOperationCleanupAction cleanupAction) => throw null; public System.Threading.Tasks.Task AddActionAsync(NHibernate.Action.BulkOperationCleanupAction cleanupAction, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public void AfterTransactionCompletion(bool success) => throw null; @@ -12424,6 +9492,7 @@ namespace NHibernate public int CollectionCreationsCount { get => throw null; } public int CollectionRemovalsCount { get => throw null; } public int CollectionUpdatesCount { get => throw null; } + public ActionQueue(NHibernate.Engine.ISessionImplementor session) => throw null; public int DeletionsCount { get => throw null; } public void Execute(NHibernate.Action.IExecutable executable) => throw null; public void ExecuteActions() => throw null; @@ -12446,16 +9515,14 @@ namespace NHibernate public override string ToString() => throw null; public int UpdatesCount { get => throw null; } } - - // Generated from `NHibernate.Engine.BatchFetchQueue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BatchFetchQueue { public void AddBatchLoadableCollection(NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.CollectionEntry ce) => throw null; public void AddBatchLoadableEntityKey(NHibernate.Engine.EntityKey key) => throw null; public void AddSubselect(NHibernate.Engine.EntityKey key, NHibernate.Engine.SubselectFetch subquery) => throw null; - public BatchFetchQueue(NHibernate.Engine.IPersistenceContext context) => throw null; public void Clear() => throw null; public void ClearSubselects() => throw null; + public BatchFetchQueue(NHibernate.Engine.IPersistenceContext context) => throw null; public object[] GetCollectionBatch(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, object id, int batchSize) => throw null; public System.Threading.Tasks.Task GetCollectionBatchAsync(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, object id, int batchSize, System.Threading.CancellationToken cancellationToken) => throw null; public object[] GetEntityBatch(NHibernate.Persister.Entity.IEntityPersister persister, object id, int batchSize) => throw null; @@ -12465,37 +9532,30 @@ namespace NHibernate public void RemoveBatchLoadableEntityKey(NHibernate.Engine.EntityKey key) => throw null; public void RemoveSubselect(NHibernate.Engine.EntityKey key) => throw null; } - - // Generated from `NHibernate.Engine.Cascade` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Cascade + public sealed class Cascade { - public Cascade(NHibernate.Engine.CascadingAction action, NHibernate.Engine.CascadePoint point, NHibernate.Event.IEventSource eventSource) => throw null; - public void CascadeOn(NHibernate.Persister.Entity.IEntityPersister persister, object parent, object anything) => throw null; public void CascadeOn(NHibernate.Persister.Entity.IEntityPersister persister, object parent) => throw null; - public System.Threading.Tasks.Task CascadeOnAsync(NHibernate.Persister.Entity.IEntityPersister persister, object parent, object anything, System.Threading.CancellationToken cancellationToken) => throw null; + public void CascadeOn(NHibernate.Persister.Entity.IEntityPersister persister, object parent, object anything) => throw null; public System.Threading.Tasks.Task CascadeOnAsync(NHibernate.Persister.Entity.IEntityPersister persister, object parent, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task CascadeOnAsync(NHibernate.Persister.Entity.IEntityPersister persister, object parent, object anything, System.Threading.CancellationToken cancellationToken) => throw null; + public Cascade(NHibernate.Engine.CascadingAction action, NHibernate.Engine.CascadePoint point, NHibernate.Event.IEventSource eventSource) => throw null; } - - // Generated from `NHibernate.Engine.CascadePoint` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum CascadePoint { - AfterEvict, - AfterInsertBeforeDelete, - AfterInsertBeforeDeleteViaCollection, - AfterLock, - AfterUpdate, - BeforeFlush, - BeforeInsertAfterDelete, - BeforeMerge, - BeforeRefresh, + AfterInsertBeforeDelete = 1, + BeforeInsertAfterDelete = 2, + AfterInsertBeforeDeleteViaCollection = 3, + AfterUpdate = 0, + BeforeFlush = 0, + AfterEvict = 0, + BeforeRefresh = 0, + AfterLock = 0, + BeforeMerge = 0, } - - // Generated from `NHibernate.Engine.CascadeStyle` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class CascadeStyle : System.Runtime.Serialization.ISerializable { public static NHibernate.Engine.CascadeStyle All; public static NHibernate.Engine.CascadeStyle AllDeleteOrphan; - internal CascadeStyle() => throw null; public static NHibernate.Engine.CascadeStyle Delete; public static NHibernate.Engine.CascadeStyle DeleteOrphan; public abstract bool DoCascade(NHibernate.Engine.CascadingAction action); @@ -12505,18 +9565,15 @@ namespace NHibernate public virtual bool HasOrphanDelete { get => throw null; } public static NHibernate.Engine.CascadeStyle Lock; public static NHibernate.Engine.CascadeStyle Merge; - // Generated from `NHibernate.Engine.CascadeStyle+MultipleCascadeStyle` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MultipleCascadeStyle : NHibernate.Engine.CascadeStyle, System.Runtime.Serialization.ISerializable + public sealed class MultipleCascadeStyle : NHibernate.Engine.CascadeStyle, System.Runtime.Serialization.ISerializable { + public MultipleCascadeStyle(NHibernate.Engine.CascadeStyle[] styles) => throw null; public override bool DoCascade(NHibernate.Engine.CascadingAction action) => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public override bool HasOrphanDelete { get => throw null; } - public MultipleCascadeStyle(NHibernate.Engine.CascadeStyle[] styles) => throw null; public override bool ReallyDoCascade(NHibernate.Engine.CascadingAction action) => throw null; public override string ToString() => throw null; } - - public static NHibernate.Engine.CascadeStyle None; public static NHibernate.Engine.CascadeStyle Persist; public virtual bool ReallyDoCascade(NHibernate.Engine.CascadingAction action) => throw null; @@ -12524,8 +9581,6 @@ namespace NHibernate public static NHibernate.Engine.CascadeStyle Replicate; public static NHibernate.Engine.CascadeStyle Update; } - - // Generated from `NHibernate.Engine.CascadingAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class CascadingAction { public abstract void Cascade(NHibernate.Event.IEventSource session, object child, string entityName, object anything, bool isCascadeDeleteEnabled); @@ -12548,41 +9603,37 @@ namespace NHibernate public virtual bool RequiresNoCascadeChecking { get => throw null; } public static NHibernate.Engine.CascadingAction SaveUpdate; } - - // Generated from `NHibernate.Engine.CollectionEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionEntry { public void AfterAction(NHibernate.Collection.IPersistentCollection collection) => throw null; public CollectionEntry(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection) => throw null; - public CollectionEntry(NHibernate.Persister.Collection.ICollectionPersister loadedPersister, object loadedKey) => throw null; public CollectionEntry(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister loadedPersister, object loadedKey, bool ignore) => throw null; - public object CurrentKey { get => throw null; set => throw null; } - public NHibernate.Persister.Collection.ICollectionPersister CurrentPersister { get => throw null; set => throw null; } + public CollectionEntry(NHibernate.Persister.Collection.ICollectionPersister loadedPersister, object loadedKey) => throw null; + public object CurrentKey { get => throw null; set { } } + public NHibernate.Persister.Collection.ICollectionPersister CurrentPersister { get => throw null; set { } } public System.Collections.ICollection GetOrphans(string entityName, NHibernate.Collection.IPersistentCollection collection) => throw null; public System.Threading.Tasks.Task GetOrphansAsync(string entityName, NHibernate.Collection.IPersistentCollection collection, System.Threading.CancellationToken cancellationToken) => throw null; - public bool IsDorecreate { get => throw null; set => throw null; } - public bool IsDoremove { get => throw null; set => throw null; } - public bool IsDoupdate { get => throw null; set => throw null; } + public bool IsDorecreate { get => throw null; set { } } + public bool IsDoremove { get => throw null; set { } } + public bool IsDoupdate { get => throw null; set { } } public bool IsIgnore { get => throw null; } - public bool IsProcessed { get => throw null; set => throw null; } - public bool IsReached { get => throw null; set => throw null; } + public bool IsProcessed { get => throw null; set { } } + public bool IsReached { get => throw null; set { } } public bool IsSnapshotEmpty(NHibernate.Collection.IPersistentCollection collection) => throw null; public object Key { get => throw null; } public object LoadedKey { get => throw null; } public NHibernate.Persister.Collection.ICollectionPersister LoadedPersister { get => throw null; } public void PostFlush(NHibernate.Collection.IPersistentCollection collection) => throw null; - public void PostInitialize(NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.IPersistenceContext persistenceContext) => throw null; public void PostInitialize(NHibernate.Collection.IPersistentCollection collection) => throw null; + public void PostInitialize(NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.IPersistenceContext persistenceContext) => throw null; public void PreFlush(NHibernate.Collection.IPersistentCollection collection) => throw null; public System.Threading.Tasks.Task PreFlushAsync(NHibernate.Collection.IPersistentCollection collection, System.Threading.CancellationToken cancellationToken) => throw null; - public string Role { get => throw null; set => throw null; } + public string Role { get => throw null; set { } } public object Snapshot { get => throw null; } public override string ToString() => throw null; public bool WasDereferenced { get => throw null; } } - - // Generated from `NHibernate.Engine.CollectionKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionKey : System.Runtime.Serialization.IDeserializationCallback + public sealed class CollectionKey : System.Runtime.Serialization.IDeserializationCallback { public CollectionKey(NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null; public override bool Equals(object obj) => throw null; @@ -12592,8 +9643,6 @@ namespace NHibernate public string Role { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.Engine.Collections` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class Collections { public static void ProcessReachableCollection(NHibernate.Collection.IPersistentCollection collection, NHibernate.Type.CollectionType type, object entity, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -12601,11 +9650,9 @@ namespace NHibernate public static void ProcessUnreachableCollection(NHibernate.Collection.IPersistentCollection coll, NHibernate.Engine.ISessionImplementor session) => throw null; public static System.Threading.Tasks.Task ProcessUnreachableCollectionAsync(NHibernate.Collection.IPersistentCollection coll, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Engine.EntityEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityEntry + public sealed class EntityEntry { - public object[] DeletedState { get => throw null; set => throw null; } + public object[] DeletedState { get => throw null; set { } } public NHibernate.Engine.EntityKey EntityKey { get => throw null; } public string EntityName { get => throw null; } public bool ExistsInDatabase { get => throw null; } @@ -12618,21 +9665,19 @@ namespace NHibernate public bool IsReadOnly { get => throw null; } public object[] LoadedState { get => throw null; } public bool LoadedWithLazyPropertiesUnfetched { get => throw null; } - public NHibernate.LockMode LockMode { get => throw null; set => throw null; } - public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; set => throw null; } + public NHibernate.LockMode LockMode { get => throw null; set { } } + public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; } public void PostDelete() => throw null; public void PostInsert() => throw null; public void PostUpdate(object entity, object[] updatedState, object nextVersion) => throw null; public bool RequiresDirtyCheck(object entity) => throw null; public object RowId { get => throw null; } public void SetReadOnly(bool readOnly, object entity) => throw null; - public NHibernate.Engine.Status Status { get => throw null; set => throw null; } + public NHibernate.Engine.Status Status { get => throw null; set { } } public override string ToString() => throw null; public object Version { get => throw null; } } - - // Generated from `NHibernate.Engine.EntityKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityKey : System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IDeserializationCallback, System.IEquatable + public sealed class EntityKey : System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable, System.IEquatable { public EntityKey(object id, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; public string EntityName { get => throw null; } @@ -12645,12 +9690,10 @@ namespace NHibernate public void OnDeserialization(object sender) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Engine.EntityUniqueKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EntityUniqueKey : System.Runtime.Serialization.IDeserializationCallback { - public string EntityName { get => throw null; } public EntityUniqueKey(string entityName, string uniqueKeyName, object semiResolvedKey, NHibernate.Type.IType keyType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public string EntityName { get => throw null; } public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Engine.EntityUniqueKey that) => throw null; public int GenerateHashCode() => throw null; @@ -12660,8 +9703,6 @@ namespace NHibernate public override string ToString() => throw null; public string UniqueKeyName { get => throw null; } } - - // Generated from `NHibernate.Engine.ExecuteUpdateResultCheckStyle` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ExecuteUpdateResultCheckStyle { public static NHibernate.Engine.ExecuteUpdateResultCheckStyle Count; @@ -12672,20 +9713,16 @@ namespace NHibernate public static NHibernate.Engine.ExecuteUpdateResultCheckStyle Parse(string name) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Engine.FilterDefinition` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FilterDefinition { - public string DefaultFilterCondition { get => throw null; } public FilterDefinition(string name, string defaultCondition, System.Collections.Generic.IDictionary parameterTypes, bool useManyToOne) => throw null; + public string DefaultFilterCondition { get => throw null; } public string FilterName { get => throw null; } public NHibernate.Type.IType GetParameterType(string parameterName) => throw null; public System.Collections.Generic.ICollection ParameterNames { get => throw null; } public System.Collections.Generic.IDictionary ParameterTypes { get => throw null; } public bool UseInManyToOne { get => throw null; } } - - // Generated from `NHibernate.Engine.ForeignKeys` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ForeignKeys { public static object GetEntityIdentifierIfNotUnsaved(string entityName, object entity, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -12696,18 +9733,13 @@ namespace NHibernate public static System.Threading.Tasks.Task IsTransientFastAsync(string entityName, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public static bool IsTransientSlow(string entityName, object entity, NHibernate.Engine.ISessionImplementor session) => throw null; public static System.Threading.Tasks.Task IsTransientSlowAsync(string entityName, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - // Generated from `NHibernate.Engine.ForeignKeys+Nullifier` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Nullifier { public Nullifier(object self, bool isDelete, bool isEarlyInsert, NHibernate.Engine.ISessionImplementor session) => throw null; public void NullifyTransientReferences(object[] values, NHibernate.Type.IType[] types) => throw null; public System.Threading.Tasks.Task NullifyTransientReferencesAsync(object[] values, NHibernate.Type.IType[] types, System.Threading.CancellationToken cancellationToken) => throw null; } - - } - - // Generated from `NHibernate.Engine.IBatcher` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBatcher : System.IDisposable { void AbortBatch(System.Exception e); @@ -12731,16 +9763,36 @@ namespace NHibernate System.Threading.Tasks.Task PrepareCommandAsync(System.Data.CommandType commandType, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes, System.Threading.CancellationToken cancellationToken); System.Data.Common.DbCommand PrepareQueryCommand(System.Data.CommandType commandType, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes); } - - // Generated from `NHibernate.Engine.ILhsAssociationTypeSqlInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class IdentifierValue + { + protected IdentifierValue() => throw null; + public IdentifierValue(object value) => throw null; + public virtual object GetDefaultValue(object currentValue) => throw null; + public virtual bool? IsUnsaved(object id) => throw null; + public static NHibernate.Engine.IdentifierValue SaveAny; + public static NHibernate.Engine.IdentifierValue SaveNone; + public static NHibernate.Engine.IdentifierValue SaveNull; + public static NHibernate.Engine.IdentifierValue Undefined; + public class UndefinedClass : NHibernate.Engine.IdentifierValue + { + public UndefinedClass() => throw null; + public override object GetDefaultValue(object currentValue) => throw null; + public override bool? IsUnsaved(object id) => throw null; + } + } + public class IdPropertiesLhsAssociationTypeSqlInfo : NHibernate.Engine.AbstractLhsAssociationTypeSqlInfo + { + public IdPropertiesLhsAssociationTypeSqlInfo(string alias, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.IMapping mapping) : base(default(string), default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.IMapping)) => throw null; + protected override string[] GetAliasedColumns() => throw null; + protected override string[] GetColumns() => throw null; + public override string GetTableName(NHibernate.Type.IAssociationType type) => throw null; + } public interface ILhsAssociationTypeSqlInfo { string[] GetAliasedColumnNames(NHibernate.Type.IAssociationType type, int begin); string[] GetColumnNames(NHibernate.Type.IAssociationType type, int begin); string GetTableName(NHibernate.Type.IAssociationType type); } - - // Generated from `NHibernate.Engine.IMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMapping { NHibernate.Dialect.Dialect Dialect { get; } @@ -12749,14 +9801,12 @@ namespace NHibernate NHibernate.Type.IType GetReferencedPropertyType(string className, string propertyName); bool HasNonIdentifierPropertyNamedId(string className); } - - // Generated from `NHibernate.Engine.IPersistenceContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IPersistenceContext { void AddChildParent(object child, object parent); void AddCollectionHolder(NHibernate.Collection.IPersistentCollection holder); - void AddEntity(NHibernate.Engine.EntityUniqueKey euk, object entity); void AddEntity(NHibernate.Engine.EntityKey key, object entity); + void AddEntity(NHibernate.Engine.EntityUniqueKey euk, object entity); NHibernate.Engine.EntityEntry AddEntity(object entity, NHibernate.Engine.Status status, object[] loadedState, NHibernate.Engine.EntityKey entityKey, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement, bool lazyPropertiesAreUnfetched); NHibernate.Engine.EntityEntry AddEntry(object entity, NHibernate.Engine.Status status, object[] loadedState, object rowId, object id, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement, bool lazyPropertiesAreUnfetched); NHibernate.Engine.CollectionEntry AddInitializedCollection(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection, object id); @@ -12793,8 +9843,8 @@ namespace NHibernate object GetCollectionOwner(object key, NHibernate.Persister.Collection.ICollectionPersister collectionPersister); object[] GetDatabaseSnapshot(object id, NHibernate.Persister.Entity.IEntityPersister persister); System.Threading.Tasks.Task GetDatabaseSnapshotAsync(object id, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken); - object GetEntity(NHibernate.Engine.EntityUniqueKey euk); object GetEntity(NHibernate.Engine.EntityKey key); + object GetEntity(NHibernate.Engine.EntityUniqueKey euk); NHibernate.Engine.EntityEntry GetEntry(object entity); object GetIndexInOwner(string entity, string property, object childObject, System.Collections.IDictionary mergeMap); object GetLoadedCollectionOwnerIdOrNull(NHibernate.Collection.IPersistentCollection collection); @@ -12816,8 +9866,8 @@ namespace NHibernate NHibernate.Engine.Loading.LoadContexts LoadContexts { get; } object NarrowProxy(NHibernate.Proxy.INHibernateProxy proxy, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey key, object obj); System.Collections.Generic.ISet NullifiableEntityKeys { get; } - object ProxyFor(object impl); object ProxyFor(NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey key, object impl); + object ProxyFor(object impl); bool ReassociateIfUninitializedProxy(object value); void ReassociateProxy(object value, object id); void RemoveChildParent(object child); @@ -12834,9 +9884,7 @@ namespace NHibernate System.Threading.Tasks.Task UnproxyAndReassociateAsync(object maybeProxy, System.Threading.CancellationToken cancellationToken); NHibernate.Collection.IPersistentCollection UseUnownedCollection(NHibernate.Engine.CollectionKey key); } - - // Generated from `NHibernate.Engine.ISessionFactoryImplementor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISessionFactoryImplementor : System.IDisposable, NHibernate.ISessionFactory, NHibernate.Engine.IMapping + public interface ISessionFactoryImplementor : NHibernate.Engine.IMapping, NHibernate.ISessionFactory, System.IDisposable { NHibernate.Connection.IConnectionProvider ConnectionProvider { get; } NHibernate.Context.ICurrentSessionContext CurrentSessionContext { get; } @@ -12859,17 +9907,15 @@ namespace NHibernate NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection, bool flushBeforeCompletionEnabled, bool autoCloseSessionEnabled, NHibernate.ConnectionReleaseMode connectionReleaseMode); NHibernate.Cache.IQueryCache QueryCache { get; } NHibernate.Engine.Query.QueryPlanCache QueryPlanCache { get; } + NHibernate.Cfg.Settings Settings { get; } NHibernate.Exceptions.ISQLExceptionConverter SQLExceptionConverter { get; } NHibernate.Dialect.Function.SQLFunctionRegistry SQLFunctionRegistry { get; } - NHibernate.Cfg.Settings Settings { get; } NHibernate.Stat.IStatisticsImplementor StatisticsImplementor { get; } NHibernate.Transaction.ITransactionFactory TransactionFactory { get; } NHibernate.Persister.Entity.IEntityPersister TryGetEntityPersister(string entityName); string TryGetGuessEntityName(System.Type implementor); NHibernate.Cache.UpdateTimestampsCache UpdateTimestampsCache { get; } } - - // Generated from `NHibernate.Engine.ISessionImplementor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISessionImplementor { void AfterTransactionBegin(NHibernate.ITransaction tx); @@ -12935,241 +9981,427 @@ namespace NHibernate bool IsEventSource { get; } bool IsOpen { get; } void JoinTransaction(); - void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results); - void List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results); - void List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results); - System.Collections.IList List(NHibernate.Impl.CriteriaImpl criteria); System.Collections.IList List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters); - System.Collections.IList List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters); - System.Collections.Generic.IList List(NHibernate.Impl.CriteriaImpl criteria); + void List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results); System.Collections.Generic.IList List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters); + System.Collections.Generic.IList List(NHibernate.Impl.CriteriaImpl criteria); + void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results); + System.Collections.IList List(NHibernate.Impl.CriteriaImpl criteria); + System.Collections.IList List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters); + void List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results); System.Collections.Generic.IList List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters); - System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task> ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task> ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task> ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task> ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task> ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task> ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); void ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results); System.Collections.Generic.IList ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters); - System.Threading.Tasks.Task> ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task> ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); + NHibernate.Event.EventListeners Listeners { get; } System.Collections.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters); System.Collections.IList ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters); System.Collections.Generic.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters); System.Threading.Tasks.Task ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task> ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken); - NHibernate.Event.EventListeners Listeners { get; } NHibernate.Engine.IPersistenceContext PersistenceContext { get; } System.Guid SessionId { get; } - System.Int64 Timestamp { get; } + long Timestamp { get; } NHibernate.Transaction.ITransactionContext TransactionContext { get; set; } bool TransactionInProgress { get; } } - - // Generated from `NHibernate.Engine.IdPropertiesLhsAssociationTypeSqlInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdPropertiesLhsAssociationTypeSqlInfo : NHibernate.Engine.AbstractLhsAssociationTypeSqlInfo - { - protected override string[] GetAliasedColumns() => throw null; - protected override string[] GetColumns() => throw null; - public override string GetTableName(NHibernate.Type.IAssociationType type) => throw null; - public IdPropertiesLhsAssociationTypeSqlInfo(string alias, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.IMapping mapping) : base(default(string), default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.IMapping)) => throw null; - } - - // Generated from `NHibernate.Engine.IdentifierValue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentifierValue - { - public virtual object GetDefaultValue(object currentValue) => throw null; - public IdentifierValue(object value) => throw null; - protected IdentifierValue() => throw null; - public virtual bool? IsUnsaved(object id) => throw null; - public static NHibernate.Engine.IdentifierValue SaveAny; - public static NHibernate.Engine.IdentifierValue SaveNone; - public static NHibernate.Engine.IdentifierValue SaveNull; - public static NHibernate.Engine.IdentifierValue Undefined; - // Generated from `NHibernate.Engine.IdentifierValue+UndefinedClass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UndefinedClass : NHibernate.Engine.IdentifierValue - { - public override object GetDefaultValue(object currentValue) => throw null; - public override bool? IsUnsaved(object id) => throw null; - public UndefinedClass() => throw null; - } - - - } - - // Generated from `NHibernate.Engine.JoinHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class JoinHelper { public static NHibernate.Engine.ILhsAssociationTypeSqlInfo GetIdLhsSqlInfo(string alias, NHibernate.Persister.Entity.IOuterJoinLoadable lhsPersister, NHibernate.Engine.IMapping mapping) => throw null; public static NHibernate.Engine.ILhsAssociationTypeSqlInfo GetLhsSqlInfo(string alias, int property, NHibernate.Persister.Entity.IOuterJoinLoadable lhsPersister, NHibernate.Engine.IMapping mapping) => throw null; public static string[] GetRHSColumnNames(NHibernate.Type.IAssociationType type, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public static string[] GetRHSColumnNames(NHibernate.Persister.Entity.IJoinable joinable, NHibernate.Type.IAssociationType type) => throw null; } - - // Generated from `NHibernate.Engine.JoinSequence` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class JoinSequence { - public NHibernate.Engine.JoinSequence AddCondition(string alias, string[] columns, string condition, bool appendParameter) => throw null; public NHibernate.Engine.JoinSequence AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null; + public NHibernate.Engine.JoinSequence AddCondition(string alias, string[] columns, string condition, bool appendParameter) => throw null; public NHibernate.Engine.JoinSequence AddJoin(NHibernate.Type.IAssociationType associationType, string alias, NHibernate.SqlCommand.JoinType joinType, string[] referencingKey) => throw null; + public NHibernate.Engine.JoinSequence AddJoin(NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement) => throw null; public NHibernate.Engine.JoinSequence Copy() => throw null; + public JoinSequence(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; } public NHibernate.Engine.JoinSequence GetFromPart() => throw null; - // Generated from `NHibernate.Engine.JoinSequence+ISelector` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISelector { bool IncludeSubclasses(string alias); } - - public bool IsThetaStyle { get => throw null; } public int JoinCount { get => throw null; } - public JoinSequence(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public NHibernate.Engine.JoinSequence SetNext(NHibernate.Engine.JoinSequence next) => throw null; public NHibernate.Engine.JoinSequence SetRoot(NHibernate.Persister.Entity.IJoinable joinable, string alias) => throw null; public NHibernate.Engine.JoinSequence SetSelector(NHibernate.Engine.JoinSequence.ISelector s) => throw null; public NHibernate.Engine.JoinSequence SetUseThetaStyle(bool useThetaStyle) => throw null; - public NHibernate.SqlCommand.JoinFragment ToJoinFragment(System.Collections.Generic.IDictionary enabledFilters, bool includeExtraJoins, NHibernate.SqlCommand.SqlString withClauseFragment, string withClauseJoinAlias) => throw null; - public NHibernate.SqlCommand.JoinFragment ToJoinFragment(System.Collections.Generic.IDictionary enabledFilters, bool includeExtraJoins) => throw null; public NHibernate.SqlCommand.JoinFragment ToJoinFragment() => throw null; + public NHibernate.SqlCommand.JoinFragment ToJoinFragment(System.Collections.Generic.IDictionary enabledFilters, bool includeExtraJoins) => throw null; + public NHibernate.SqlCommand.JoinFragment ToJoinFragment(System.Collections.Generic.IDictionary enabledFilters, bool includeAllSubclassJoins, NHibernate.SqlCommand.SqlString withClause) => throw null; + public NHibernate.SqlCommand.JoinFragment ToJoinFragment(System.Collections.Generic.IDictionary enabledFilters, bool includeExtraJoins, NHibernate.SqlCommand.SqlString withClauseFragment, string withClauseJoinAlias) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Engine.NamedQueryDefinition` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace Loading + { + public class CollectionLoadContext + { + public CollectionLoadContext(NHibernate.Engine.Loading.LoadContexts loadContexts, System.Data.Common.DbDataReader resultSet) => throw null; + public void EndLoadingCollections(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; + public void EndLoadingCollections(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache) => throw null; + public void EndLoadingCollections(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache, NHibernate.Cache.CacheBatcher cacheBatcher) => throw null; + public System.Threading.Tasks.Task EndLoadingCollectionsAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task EndLoadingCollectionsAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task EndLoadingCollectionsAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache, NHibernate.Cache.CacheBatcher cacheBatcher, System.Threading.CancellationToken cancellationToken) => throw null; + public NHibernate.Collection.IPersistentCollection GetLoadingCollection(NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null; + public NHibernate.Engine.Loading.LoadContexts LoadContext { get => throw null; } + public System.Data.Common.DbDataReader ResultSet { get => throw null; } + public override string ToString() => throw null; + } + public class LoadContexts + { + public virtual void Cleanup(System.Data.Common.DbDataReader resultSet) => throw null; + public void Cleanup() => throw null; + public LoadContexts(NHibernate.Engine.IPersistenceContext persistenceContext) => throw null; + public NHibernate.Engine.Loading.CollectionLoadContext GetCollectionLoadContext(System.Data.Common.DbDataReader resultSet) => throw null; + public bool HasLoadingCollectionEntries { get => throw null; } + public bool HasRegisteredLoadingCollectionEntries { get => throw null; } + public NHibernate.Collection.IPersistentCollection LocateLoadingCollection(NHibernate.Persister.Collection.ICollectionPersister persister, object ownerKey) => throw null; + public NHibernate.Engine.IPersistenceContext PersistenceContext { get => throw null; } + } + public class LoadingCollectionEntry + { + public NHibernate.Collection.IPersistentCollection Collection { get => throw null; } + public LoadingCollectionEntry(System.Data.Common.DbDataReader resultSet, NHibernate.Persister.Collection.ICollectionPersister persister, object key, NHibernate.Collection.IPersistentCollection collection) => throw null; + public object Key { get => throw null; } + public NHibernate.Persister.Collection.ICollectionPersister Persister { get => throw null; } + public System.Data.Common.DbDataReader ResultSet { get => throw null; } + public bool StopLoading { get => throw null; set { } } + public override string ToString() => throw null; + } + } public class NamedQueryDefinition { public NHibernate.CacheMode? CacheMode { get => throw null; } public string CacheRegion { get => throw null; } public string Comment { get => throw null; } + public NamedQueryDefinition(string query, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, bool readOnly, string comment, System.Collections.Generic.IDictionary parameterTypes) => throw null; + public NamedQueryDefinition(string query, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, NHibernate.CacheMode? cacheMode, bool readOnly, string comment, System.Collections.Generic.IDictionary parameterTypes) => throw null; public int FetchSize { get => throw null; } public NHibernate.FlushMode FlushMode { get => throw null; } public bool IsCacheable { get => throw null; } public bool IsReadOnly { get => throw null; } - public NamedQueryDefinition(string query, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, bool readOnly, string comment, System.Collections.Generic.IDictionary parameterTypes) => throw null; - public NamedQueryDefinition(string query, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, NHibernate.CacheMode? cacheMode, bool readOnly, string comment, System.Collections.Generic.IDictionary parameterTypes) => throw null; public System.Collections.Generic.IDictionary ParameterTypes { get => throw null; } public string Query { get => throw null; } public string QueryString { get => throw null; } public int Timeout { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.Engine.NamedSQLQueryDefinition` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NamedSQLQueryDefinition : NHibernate.Engine.NamedQueryDefinition { - public bool IsCallable { get => throw null; } - public NamedSQLQueryDefinition(string query, string resultSetRef, System.Collections.Generic.IList querySpaces, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, NHibernate.CacheMode? cacheMode, bool readOnly, string comment, System.Collections.Generic.IDictionary parameterTypes, bool callable) : base(default(string), default(bool), default(string), default(int), default(int), default(NHibernate.FlushMode), default(bool), default(string), default(System.Collections.Generic.IDictionary)) => throw null; public NamedSQLQueryDefinition(string query, NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] queryReturns, System.Collections.Generic.IList querySpaces, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, NHibernate.CacheMode? cacheMode, bool readOnly, string comment, System.Collections.Generic.IDictionary parameterTypes, bool callable) : base(default(string), default(bool), default(string), default(int), default(int), default(NHibernate.FlushMode), default(bool), default(string), default(System.Collections.Generic.IDictionary)) => throw null; + public NamedSQLQueryDefinition(string query, string resultSetRef, System.Collections.Generic.IList querySpaces, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, NHibernate.CacheMode? cacheMode, bool readOnly, string comment, System.Collections.Generic.IDictionary parameterTypes, bool callable) : base(default(string), default(bool), default(string), default(int), default(int), default(NHibernate.FlushMode), default(bool), default(string), default(System.Collections.Generic.IDictionary)) => throw null; + public bool IsCallable { get => throw null; } public NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] QueryReturns { get => throw null; } public System.Collections.Generic.IList QuerySpaces { get => throw null; } public string ResultSetRef { get => throw null; } } - - // Generated from `NHibernate.Engine.Nullability` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Nullability + public sealed class Nullability { public void CheckNullability(object[] values, NHibernate.Persister.Entity.IEntityPersister persister, bool isUpdate) => throw null; public Nullability(NHibernate.Engine.ISessionImplementor session) => throw null; } - - // Generated from `NHibernate.Engine.PersistenceContextExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class PersistenceContextExtensions + public static partial class PersistenceContextExtensions { public static NHibernate.Engine.EntityEntry AddEntity(this NHibernate.Engine.IPersistenceContext context, object entity, NHibernate.Engine.Status status, object[] loadedState, NHibernate.Engine.EntityKey entityKey, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement) => throw null; public static NHibernate.Engine.EntityEntry AddEntry(this NHibernate.Engine.IPersistenceContext context, object entity, NHibernate.Engine.Status status, object[] loadedState, object rowId, object id, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement) => throw null; } - - // Generated from `NHibernate.Engine.PropertiesLhsAssociationTypeSqlInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PropertiesLhsAssociationTypeSqlInfo : NHibernate.Engine.AbstractLhsAssociationTypeSqlInfo { + public PropertiesLhsAssociationTypeSqlInfo(string alias, int propertyIdx, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.IMapping mapping) : base(default(string), default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.IMapping)) => throw null; protected override string[] GetAliasedColumns() => throw null; protected override string[] GetColumns() => throw null; public override string GetTableName(NHibernate.Type.IAssociationType type) => throw null; - public PropertiesLhsAssociationTypeSqlInfo(string alias, int propertyIdx, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.IMapping mapping) : base(default(string), default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.IMapping)) => throw null; } - - // Generated from `NHibernate.Engine.QueryParameters` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryParameters + namespace Query { - public NHibernate.CacheMode? CacheMode { get => throw null; set => throw null; } - public string CacheRegion { get => throw null; set => throw null; } - public bool Cacheable { get => throw null; set => throw null; } - public bool Callable { get => throw null; set => throw null; } + public static class CallableParser + { + public class Detail + { + public Detail() => throw null; + public string FunctionName; + public bool HasReturn; + public bool IsCallable; + } + public static NHibernate.Engine.Query.CallableParser.Detail Parse(string sqlString) => throw null; + } + public class FilterQueryPlan : NHibernate.Engine.Query.QueryExpressionPlan + { + public string CollectionRole { get => throw null; } + public override NHibernate.Engine.Query.QueryExpressionPlan Copy(NHibernate.IQueryExpression expression) => throw null; + public FilterQueryPlan(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null; + protected FilterQueryPlan(NHibernate.Engine.Query.FilterQueryPlan source, NHibernate.IQueryExpression expression) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null; + } + public class HQLQueryPlan : NHibernate.Engine.Query.IQueryPlan + { + protected HQLQueryPlan(string sourceQuery, NHibernate.Hql.IQueryTranslator[] translators) => throw null; + protected static NHibernate.INHibernateLogger Log; + public NHibernate.Engine.Query.ParameterMetadata ParameterMetadata { get => throw null; } + public int PerformExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; + public System.Threading.Tasks.Task PerformExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Collections.IEnumerable PerformIterate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session) => throw null; + public System.Collections.Generic.IEnumerable PerformIterate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session) => throw null; + public System.Threading.Tasks.Task PerformIterateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task> PerformIterateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null; + public void PerformList(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Collections.IList results) => throw null; + public System.Threading.Tasks.Task PerformListAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Collections.Generic.ISet QuerySpaces { get => throw null; } + public NHibernate.Engine.Query.ReturnMetadata ReturnMetadata { get => throw null; } + public string[] SqlStrings { get => throw null; } + public NHibernate.Hql.IQueryTranslator[] Translators { get => throw null; } + } + public interface IQueryExpressionPlan : NHibernate.Engine.Query.IQueryPlan + { + NHibernate.IQueryExpression QueryExpression { get; } + } + public interface IQueryPlan + { + NHibernate.Engine.Query.ParameterMetadata ParameterMetadata { get; } + int PerformExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl); + System.Threading.Tasks.Task PerformExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl, System.Threading.CancellationToken cancellationToken); + System.Collections.Generic.IEnumerable PerformIterate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session); + System.Collections.IEnumerable PerformIterate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session); + System.Threading.Tasks.Task> PerformIterateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task PerformIterateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken); + void PerformList(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl, System.Collections.IList results); + System.Threading.Tasks.Task PerformListAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); + System.Collections.Generic.ISet QuerySpaces { get; } + NHibernate.Engine.Query.ReturnMetadata ReturnMetadata { get; } + NHibernate.Hql.IQueryTranslator[] Translators { get; } + } + public class NamedParameterDescriptor + { + public NamedParameterDescriptor(string name, NHibernate.Type.IType expectedType, bool jpaStyle) => throw null; + public NHibernate.Type.IType ExpectedType { get => throw null; } + public bool JpaStyle { get => throw null; } + public string Name { get => throw null; } + } + public class NativeSQLQueryPlan + { + public NativeSQLQueryPlan(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification specification, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Loader.Custom.Sql.SQLCustomQuery CustomQuery { get => throw null; } + public int PerformExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; + public System.Threading.Tasks.Task PerformExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public string SourceQuery { get => throw null; } + } + public class OrdinalParameterDescriptor + { + public OrdinalParameterDescriptor(int ordinalPosition, NHibernate.Type.IType expectedType) => throw null; + public NHibernate.Type.IType ExpectedType { get => throw null; } + public int OrdinalPosition { get => throw null; } + } + public class ParameterMetadata + { + public ParameterMetadata(System.Collections.Generic.IEnumerable ordinalDescriptors, System.Collections.Generic.IDictionary namedDescriptorMap) => throw null; + public NHibernate.Engine.Query.NamedParameterDescriptor GetNamedParameterDescriptor(string name) => throw null; + public NHibernate.Type.IType GetNamedParameterExpectedType(string name) => throw null; + public NHibernate.Engine.Query.OrdinalParameterDescriptor GetOrdinalParameterDescriptor(int position) => throw null; + public NHibernate.Type.IType GetOrdinalParameterExpectedType(int position) => throw null; + public System.Collections.Generic.ICollection NamedParameterNames { get => throw null; } + public int OrdinalParameterCount { get => throw null; } + } + public class ParameterParser + { + public interface IRecognizer + { + void JpaPositionalParameter(string name, int position); + void NamedParameter(string name, int position); + void OrdinalParameter(int position); + void Other(char character); + void Other(string sqlPart); + void OutParameter(int position); + } + public static void Parse(string sqlString, NHibernate.Engine.Query.ParameterParser.IRecognizer recognizer) => throw null; + } + public class ParamLocationRecognizer : NHibernate.Engine.Query.ParameterParser.IRecognizer + { + public ParamLocationRecognizer() => throw null; + public void JpaPositionalParameter(string name, int position) => throw null; + public void NamedParameter(string name, int position) => throw null; + public class NamedParameterDescription + { + public int[] BuildPositionsArray() => throw null; + public NamedParameterDescription(bool jpaStyle) => throw null; + public bool JpaStyle { get => throw null; } + } + public System.Collections.Generic.IDictionary NamedParameterDescriptionMap { get => throw null; } + public void OrdinalParameter(int position) => throw null; + public System.Collections.Generic.List OrdinalParameterLocationList { get => throw null; } + public void Other(char character) => throw null; + public void Other(string sqlPart) => throw null; + public void OutParameter(int position) => throw null; + public static NHibernate.Engine.Query.ParamLocationRecognizer ParseLocations(string query) => throw null; + } + public class QueryExpressionPlan : NHibernate.Engine.Query.HQLQueryPlan, NHibernate.Engine.Query.IQueryExpressionPlan, NHibernate.Engine.Query.IQueryPlan + { + public virtual NHibernate.Engine.Query.QueryExpressionPlan Copy(NHibernate.IQueryExpression expression) => throw null; + protected static NHibernate.Hql.IQueryTranslator[] CreateTranslators(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public QueryExpressionPlan(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null; + public QueryExpressionPlan(NHibernate.IQueryExpression queryExpression, bool shallow, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null; + protected QueryExpressionPlan(string key, NHibernate.Hql.IQueryTranslator[] translators) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null; + protected QueryExpressionPlan(NHibernate.Engine.Query.HQLQueryPlan source, NHibernate.IQueryExpression expression) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null; + public NHibernate.IQueryExpression QueryExpression { get => throw null; } + } + public class QueryPlanCache + { + public QueryPlanCache(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public NHibernate.Engine.Query.IQueryExpressionPlan GetFilterQueryPlan(string filterString, string collectionRole, bool shallow, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public NHibernate.Engine.Query.IQueryExpressionPlan GetFilterQueryPlan(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public NHibernate.Engine.Query.IQueryExpressionPlan GetHQLQueryPlan(NHibernate.IQueryExpression queryExpression, bool shallow, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public NHibernate.Engine.Query.NativeSQLQueryPlan GetNativeSQLQueryPlan(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec) => throw null; + public NHibernate.Engine.Query.ParameterMetadata GetSQLParameterMetadata(string query) => throw null; + } + public class ReturnMetadata + { + public ReturnMetadata(string[] returnAliases, NHibernate.Type.IType[] returnTypes) => throw null; + public string[] ReturnAliases { get => throw null; } + public NHibernate.Type.IType[] ReturnTypes { get => throw null; } + } + namespace Sql + { + public interface INativeSQLQueryReturn + { + } + public class NativeSQLQueryCollectionReturn : NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn + { + public NativeSQLQueryCollectionReturn(string alias, string ownerEntityName, string ownerProperty, System.Collections.Generic.IDictionary propertyResults, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary), default(NHibernate.LockMode)) => throw null; + public string OwnerEntityName { get => throw null; } + public string OwnerProperty { get => throw null; } + } + public class NativeSQLQueryJoinReturn : NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn + { + public NativeSQLQueryJoinReturn(string alias, string ownerAlias, string ownerProperty, System.Collections.Generic.IDictionary propertyResults, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary), default(NHibernate.LockMode)) => throw null; + public string OwnerAlias { get => throw null; } + public string OwnerProperty { get => throw null; } + } + public abstract class NativeSQLQueryNonScalarReturn : NHibernate.Engine.Query.Sql.INativeSQLQueryReturn + { + public string Alias { get => throw null; } + protected NativeSQLQueryNonScalarReturn(string alias, System.Collections.Generic.IDictionary propertyResults, NHibernate.LockMode lockMode) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn other) => throw null; + public override int GetHashCode() => throw null; + public NHibernate.LockMode LockMode { get => throw null; } + public System.Collections.Generic.IDictionary PropertyResultsMap { get => throw null; } + } + public class NativeSQLQueryRootReturn : NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn + { + public NativeSQLQueryRootReturn(string alias, string entityName, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary), default(NHibernate.LockMode)) => throw null; + public NativeSQLQueryRootReturn(string alias, string entityName, System.Collections.Generic.IDictionary propertyResults, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary), default(NHibernate.LockMode)) => throw null; + public string ReturnEntityName { get => throw null; } + } + public class NativeSQLQueryScalarReturn : NHibernate.Engine.Query.Sql.INativeSQLQueryReturn + { + public string ColumnAlias { get => throw null; } + public NativeSQLQueryScalarReturn(string alias, NHibernate.Type.IType type) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(NHibernate.Engine.Query.Sql.NativeSQLQueryScalarReturn other) => throw null; + public override int GetHashCode() => throw null; + public NHibernate.Type.IType Type { get => throw null; } + } + public class NativeSQLQuerySpecification + { + public NativeSQLQuerySpecification(string queryString, NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] sqlQueryReturns, System.Collections.Generic.ICollection querySpaces) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public System.Collections.Generic.ISet QuerySpaces { get => throw null; } + public string QueryString { get => throw null; } + public NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] SqlQueryReturns { get => throw null; } + } + } + } + public sealed class QueryParameters + { + public bool Cacheable { get => throw null; set { } } + public NHibernate.CacheMode? CacheMode { get => throw null; set { } } + public string CacheRegion { get => throw null; set { } } + public bool Callable { get => throw null; set { } } public bool CanGetFromCache(NHibernate.Engine.ISessionImplementor session) => throw null; public bool CanPutToCache(NHibernate.Engine.ISessionImplementor session) => throw null; - public object[] CollectionKeys { get => throw null; set => throw null; } - public string Comment { get => throw null; set => throw null; } + public object[] CollectionKeys { get => throw null; set { } } + public string Comment { get => throw null; set { } } public NHibernate.Engine.QueryParameters CreateCopyUsing(NHibernate.Engine.RowSelection selection) => throw null; - public bool ForceCacheRefresh { get => throw null; set => throw null; } - public bool HasAutoDiscoverScalarTypes { get => throw null; set => throw null; } + public QueryParameters() => throw null; + public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues, object optionalObject, string optionalEntityName, object optionalObjectId) => throw null; + public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues) => throw null; + public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues, object[] collectionKeys) => throw null; + public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues, System.Collections.Generic.IDictionary namedParameters, object[] collectionKeys) => throw null; + public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] positionalParameterValues, System.Collections.Generic.IDictionary lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, bool isLookupByNaturalKey, NHibernate.Transform.IResultTransformer transformer) => throw null; + public QueryParameters(System.Collections.Generic.IDictionary namedParameters, System.Collections.Generic.IDictionary lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, bool isLookupByNaturalKey, NHibernate.Transform.IResultTransformer transformer) => throw null; + public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] positionalParameterValues, System.Collections.Generic.IDictionary namedParameters, System.Collections.Generic.IDictionary lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, object[] collectionKeys, NHibernate.Transform.IResultTransformer transformer) => throw null; + public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] positionalParameterValues, System.Collections.Generic.IDictionary namedParameters, System.Collections.Generic.IDictionary lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, object[] collectionKeys, object optionalObject, string optionalEntityName, object optionalId, NHibernate.Transform.IResultTransformer transformer) => throw null; + public bool ForceCacheRefresh { get => throw null; set { } } + public bool HasAutoDiscoverScalarTypes { get => throw null; set { } } public bool HasRowSelection { get => throw null; } public bool IsReadOnly(NHibernate.Engine.ISessionImplementor session) => throw null; - public bool IsReadOnlyInitialized { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary LockModes { get => throw null; set => throw null; } + public bool IsReadOnlyInitialized { get => throw null; } + public System.Collections.Generic.IDictionary LockModes { get => throw null; set { } } public void LogParameters(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public System.Collections.Generic.IDictionary NamedParameters { get => throw null; set => throw null; } - public bool NaturalKeyLookup { get => throw null; set => throw null; } - public string OptionalEntityName { get => throw null; set => throw null; } - public object OptionalId { get => throw null; set => throw null; } - public object OptionalObject { get => throw null; set => throw null; } - public NHibernate.Type.IType[] PositionalParameterTypes { get => throw null; set => throw null; } - public object[] PositionalParameterValues { get => throw null; set => throw null; } - public NHibernate.Engine.RowSelection ProcessedRowSelection { get => throw null; set => throw null; } - public NHibernate.SqlCommand.SqlString ProcessedSql { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable ProcessedSqlParameters { get => throw null; set => throw null; } - public QueryParameters(System.Collections.Generic.IDictionary namedParameters, System.Collections.Generic.IDictionary lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, bool isLookupByNaturalKey, NHibernate.Transform.IResultTransformer transformer) => throw null; - public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues, object[] collectionKeys) => throw null; - public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues, object optionalObject, string optionalEntityName, object optionalObjectId) => throw null; - public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues, System.Collections.Generic.IDictionary namedParameters, object[] collectionKeys) => throw null; - public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues) => throw null; - public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] positionalParameterValues, System.Collections.Generic.IDictionary lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, bool isLookupByNaturalKey, NHibernate.Transform.IResultTransformer transformer) => throw null; - public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] positionalParameterValues, System.Collections.Generic.IDictionary namedParameters, System.Collections.Generic.IDictionary lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, object[] collectionKeys, object optionalObject, string optionalEntityName, object optionalId, NHibernate.Transform.IResultTransformer transformer) => throw null; - public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] positionalParameterValues, System.Collections.Generic.IDictionary namedParameters, System.Collections.Generic.IDictionary lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, object[] collectionKeys, NHibernate.Transform.IResultTransformer transformer) => throw null; - public QueryParameters() => throw null; - public bool ReadOnly { get => throw null; set => throw null; } - public NHibernate.Transform.IResultTransformer ResultTransformer { get => throw null; set => throw null; } - public NHibernate.Engine.RowSelection RowSelection { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary NamedParameters { get => throw null; } + public bool NaturalKeyLookup { get => throw null; set { } } + public string OptionalEntityName { get => throw null; set { } } + public object OptionalId { get => throw null; set { } } + public object OptionalObject { get => throw null; set { } } + public NHibernate.Type.IType[] PositionalParameterTypes { get => throw null; set { } } + public object[] PositionalParameterValues { get => throw null; set { } } + public NHibernate.Engine.RowSelection ProcessedRowSelection { get => throw null; } + public NHibernate.SqlCommand.SqlString ProcessedSql { get => throw null; } + public System.Collections.Generic.IEnumerable ProcessedSqlParameters { get => throw null; } + public bool ReadOnly { get => throw null; set { } } + public NHibernate.Transform.IResultTransformer ResultTransformer { get => throw null; } + public NHibernate.Engine.RowSelection RowSelection { get => throw null; set { } } public void ValidateParameters() => throw null; } - - // Generated from `NHibernate.Engine.ResultSetMappingDefinition` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ResultSetMappingDefinition { public void AddQueryReturn(NHibernate.Engine.Query.Sql.INativeSQLQueryReturn queryReturn) => throw null; + public ResultSetMappingDefinition(string name) => throw null; public NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] GetQueryReturns() => throw null; public string Name { get => throw null; } - public ResultSetMappingDefinition(string name) => throw null; } - - // Generated from `NHibernate.Engine.RowSelection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class RowSelection + public sealed class RowSelection { - public bool DefinesLimits { get => throw null; } - public int FetchSize { get => throw null; set => throw null; } - public int FirstRow { get => throw null; set => throw null; } - public int MaxRows { get => throw null; set => throw null; } - public static int NoValue; public RowSelection() => throw null; - public int Timeout { get => throw null; set => throw null; } + public bool DefinesLimits { get => throw null; } + public int FetchSize { get => throw null; set { } } + public int FirstRow { get => throw null; set { } } + public int MaxRows { get => throw null; set { } } + public static int NoValue; + public int Timeout { get => throw null; set { } } } - - // Generated from `NHibernate.Engine.SessionImplementorExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class SessionImplementorExtensions + public static class SessionFactoryImplementorExtension + { + public static System.Collections.Generic.ISet GetCollectionPersisters(this NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.ISet spaces) => throw null; + public static System.Collections.Generic.ISet GetEntityPersisters(this NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.ISet spaces) => throw null; + } + public static partial class SessionImplementorExtensions { public static string GetTenantIdentifier(this NHibernate.Engine.ISessionImplementor session) => throw null; } - - // Generated from `NHibernate.Engine.StatefulPersistenceContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StatefulPersistenceContext : System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IDeserializationCallback, NHibernate.Engine.IPersistenceContext + public class StatefulPersistenceContext : NHibernate.Engine.IPersistenceContext, System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IDeserializationCallback { public void AddChildParent(object child, object parent) => throw null; public void AddCollectionHolder(NHibernate.Collection.IPersistentCollection holder) => throw null; - public void AddEntity(NHibernate.Engine.EntityUniqueKey euk, object entity) => throw null; public void AddEntity(NHibernate.Engine.EntityKey key, object entity) => throw null; + public void AddEntity(NHibernate.Engine.EntityUniqueKey euk, object entity) => throw null; public NHibernate.Engine.EntityEntry AddEntity(object entity, NHibernate.Engine.Status status, object[] loadedState, NHibernate.Engine.EntityKey entityKey, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement, bool lazyPropertiesAreUnfetched) => throw null; public NHibernate.Engine.EntityEntry AddEntity(object entity, NHibernate.Engine.Status status, object[] loadedState, NHibernate.Engine.EntityKey entityKey, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement) => throw null; public NHibernate.Engine.EntityEntry AddEntry(object entity, NHibernate.Engine.Status status, object[] loadedState, object rowId, object id, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement, bool lazyPropertiesAreUnfetched) => throw null; @@ -13195,11 +10427,12 @@ namespace NHibernate public bool ContainsCollection(NHibernate.Collection.IPersistentCollection collection) => throw null; public bool ContainsEntity(NHibernate.Engine.EntityKey key) => throw null; public bool ContainsProxy(NHibernate.Proxy.INHibernateProxy proxy) => throw null; + public StatefulPersistenceContext(NHibernate.Engine.ISessionImplementor session) => throw null; public int DecrementCascadeLevel() => throw null; - public bool DefaultReadOnly { get => throw null; set => throw null; } + public bool DefaultReadOnly { get => throw null; set { } } public System.Collections.Generic.IDictionary EntitiesByKey { get => throw null; } public System.Collections.IDictionary EntityEntries { get => throw null; } - public bool Flushing { get => throw null; set => throw null; } + public bool Flushing { get => throw null; set { } } public object[] GetCachedDatabaseSnapshot(NHibernate.Engine.EntityKey key) => throw null; public NHibernate.Collection.IPersistentCollection GetCollection(NHibernate.Engine.CollectionKey collectionKey) => throw null; public NHibernate.Engine.CollectionEntry GetCollectionEntry(NHibernate.Collection.IPersistentCollection coll) => throw null; @@ -13208,8 +10441,8 @@ namespace NHibernate public object GetCollectionOwner(object key, NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null; public object[] GetDatabaseSnapshot(object id, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; public System.Threading.Tasks.Task GetDatabaseSnapshotAsync(object id, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - public object GetEntity(NHibernate.Engine.EntityUniqueKey euk) => throw null; public object GetEntity(NHibernate.Engine.EntityKey key) => throw null; + public object GetEntity(NHibernate.Engine.EntityUniqueKey euk) => throw null; public NHibernate.Engine.EntityEntry GetEntry(object entity) => throw null; public object GetIndexInOwner(string entity, string property, object childEntity, System.Collections.IDictionary mergeMap) => throw null; public virtual object GetLoadedCollectionOwnerIdOrNull(NHibernate.Collection.IPersistentCollection collection) => throw null; @@ -13234,8 +10467,8 @@ namespace NHibernate public static object NoRow; public System.Collections.Generic.ISet NullifiableEntityKeys { get => throw null; } void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public object ProxyFor(object impl) => throw null; public object ProxyFor(NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey key, object impl) => throw null; + public object ProxyFor(object impl) => throw null; public bool ReassociateIfUninitializedProxy(object value) => throw null; public void ReassociateProxy(object value, object id) => throw null; public void RemoveChildParent(object child) => throw null; @@ -13247,59 +10480,63 @@ namespace NHibernate public NHibernate.Engine.ISessionImplementor Session { get => throw null; } public void SetEntryStatus(NHibernate.Engine.EntityEntry entry, NHibernate.Engine.Status status) => throw null; public void SetReadOnly(object entityOrProxy, bool readOnly) => throw null; - public StatefulPersistenceContext(NHibernate.Engine.ISessionImplementor session) => throw null; public override string ToString() => throw null; public object Unproxy(object maybeProxy) => throw null; public object UnproxyAndReassociate(object maybeProxy) => throw null; public System.Threading.Tasks.Task UnproxyAndReassociateAsync(object maybeProxy, System.Threading.CancellationToken cancellationToken) => throw null; public NHibernate.Collection.IPersistentCollection UseUnownedCollection(NHibernate.Engine.CollectionKey key) => throw null; } - - // Generated from `NHibernate.Engine.Status` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum Status { - Deleted, - Gone, - Loaded, - Loading, - ReadOnly, - Saving, + Loaded = 0, + Deleted = 1, + Gone = 2, + Loading = 3, + Saving = 4, + ReadOnly = 5, } - - // Generated from `NHibernate.Engine.SubselectFetch` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SubselectFetch { + public SubselectFetch(string alias, NHibernate.Persister.Entity.ILoadable loadable, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet resultingEntityKeys) => throw null; public NHibernate.Engine.QueryParameters QueryParameters { get => throw null; } public System.Collections.Generic.ISet Result { get => throw null; } - public SubselectFetch(string alias, NHibernate.Persister.Entity.ILoadable loadable, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet resultingEntityKeys) => throw null; public override string ToString() => throw null; public NHibernate.SqlCommand.SqlString ToSubselectString(string ukname) => throw null; } - - // Generated from `NHibernate.Engine.TransactionHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace Transaction + { + public interface IIsolatedWork + { + void DoWork(System.Data.Common.DbConnection connection, System.Data.Common.DbTransaction transaction); + System.Threading.Tasks.Task DoWorkAsync(System.Data.Common.DbConnection connection, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken); + } + public class Isolater + { + public Isolater() => throw null; + public static void DoIsolatedWork(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session) => throw null; + public static System.Threading.Tasks.Task DoIsolatedWorkAsync(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public static void DoNonTransactedWork(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session) => throw null; + public static System.Threading.Tasks.Task DoNonTransactedWorkAsync(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + } + } public abstract class TransactionHelper { + protected TransactionHelper() => throw null; public abstract object DoWorkInCurrentTransaction(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction); public abstract System.Threading.Tasks.Task DoWorkInCurrentTransactionAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken); public virtual object DoWorkInNewTransaction(NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task DoWorkInNewTransactionAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected TransactionHelper() => throw null; - // Generated from `NHibernate.Engine.TransactionHelper+Work` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Work : NHibernate.Engine.Transaction.IIsolatedWork { + public Work(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.TransactionHelper owner) => throw null; public void DoWork(System.Data.Common.DbConnection connection, System.Data.Common.DbTransaction transaction) => throw null; public System.Threading.Tasks.Task DoWorkAsync(System.Data.Common.DbConnection connection, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken) => throw null; - public Work(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.TransactionHelper owner) => throw null; } - - } - - // Generated from `NHibernate.Engine.TwoPhaseLoad` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class TwoPhaseLoad { - public static void AddUninitializedCachedEntity(NHibernate.Engine.EntityKey key, object obj, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.LockMode lockMode, object version, NHibernate.Engine.ISessionImplementor session) => throw null; public static void AddUninitializedCachedEntity(NHibernate.Engine.EntityKey key, object obj, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.LockMode lockMode, bool lazyPropertiesAreUnfetched, object version, NHibernate.Engine.ISessionImplementor session) => throw null; + public static void AddUninitializedCachedEntity(NHibernate.Engine.EntityKey key, object obj, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.LockMode lockMode, object version, NHibernate.Engine.ISessionImplementor session) => throw null; public static void AddUninitializedEntity(NHibernate.Engine.EntityKey key, object obj, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.LockMode lockMode, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session) => throw null; public static void AddUninitializedEntity(NHibernate.Engine.EntityKey key, object obj, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session) => throw null; public static void InitializeEntity(object entity, bool readOnly, NHibernate.Engine.ISessionImplementor session, NHibernate.Event.PreLoadEvent preLoadEvent, NHibernate.Event.PostLoadEvent postLoadEvent) => throw null; @@ -13307,1063 +10544,136 @@ namespace NHibernate public static void PostHydrate(NHibernate.Persister.Entity.IEntityPersister persister, object id, object[] values, object rowId, object obj, NHibernate.LockMode lockMode, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session) => throw null; public static void PostHydrate(NHibernate.Persister.Entity.IEntityPersister persister, object id, object[] values, object rowId, object obj, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session) => throw null; } - - // Generated from `NHibernate.Engine.TypedValue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TypedValue + public sealed class TypedValue { public System.Collections.Generic.IEqualityComparer Comparer { get => throw null; } - // Generated from `NHibernate.Engine.TypedValue+DefaultComparer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public TypedValue(NHibernate.Type.IType type, object value) => throw null; + public TypedValue(NHibernate.Type.IType type, object value, bool isList) => throw null; public class DefaultComparer : System.Collections.Generic.IEqualityComparer { public DefaultComparer() => throw null; public bool Equals(NHibernate.Engine.TypedValue x, NHibernate.Engine.TypedValue y) => throw null; public int GetHashCode(NHibernate.Engine.TypedValue obj) => throw null; } - - public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - // Generated from `NHibernate.Engine.TypedValue+ParameterListComparer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ParameterListComparer : System.Collections.Generic.IEqualityComparer { + public ParameterListComparer() => throw null; public bool Equals(NHibernate.Engine.TypedValue x, NHibernate.Engine.TypedValue y) => throw null; public int GetHashCode(NHibernate.Engine.TypedValue obj) => throw null; - public ParameterListComparer() => throw null; } - - public override string ToString() => throw null; public NHibernate.Type.IType Type { get => throw null; } - public TypedValue(NHibernate.Type.IType type, object value, bool isList) => throw null; - public TypedValue(NHibernate.Type.IType type, object value) => throw null; public object Value { get => throw null; } } - - // Generated from `NHibernate.Engine.UnsavedValueFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class UnsavedValueFactory { public static NHibernate.Engine.IdentifierValue GetUnsavedIdentifierValue(string unsavedValue, NHibernate.Properties.IGetter identifierGetter, NHibernate.Type.IType identifierType, System.Reflection.ConstructorInfo constructor) => throw null; public static NHibernate.Engine.VersionValue GetUnsavedVersionValue(string versionUnsavedValue, NHibernate.Properties.IGetter versionGetter, NHibernate.Type.IVersionType versionType, System.Reflection.ConstructorInfo constructor) => throw null; } - - // Generated from `NHibernate.Engine.ValueInclusion` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum ValueInclusion { - Full, - None, - Partial, + None = 0, + Partial = 1, + Full = 2, } - - // Generated from `NHibernate.Engine.VersionValue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class VersionValue - { - public virtual object GetDefaultValue(object currentValue) => throw null; - public virtual bool? IsUnsaved(object version) => throw null; - public static NHibernate.Engine.VersionValue VersionNegative; - public static NHibernate.Engine.VersionValue VersionSaveNull; - public static NHibernate.Engine.VersionValue VersionUndefined; - public VersionValue(object value) => throw null; - protected VersionValue() => throw null; - } - - // Generated from `NHibernate.Engine.Versioning` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Versioning { + public Versioning() => throw null; public static object GetVersion(object[] fields, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; public static object Increment(object version, NHibernate.Type.IVersionType versionType, NHibernate.Engine.ISessionImplementor session) => throw null; public static System.Threading.Tasks.Task IncrementAsync(object version, NHibernate.Type.IVersionType versionType, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public static bool IsVersionIncrementRequired(int[] dirtyProperties, bool hasDirtyCollections, bool[] propertyVersionability) => throw null; - // Generated from `NHibernate.Engine.Versioning+OptimisticLock` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum OptimisticLock { - All, - Dirty, - None, - Version, + None = -1, + Version = 0, + Dirty = 1, + All = 2, } - - public static object Seed(NHibernate.Type.IVersionType versionType, NHibernate.Engine.ISessionImplementor session) => throw null; public static System.Threading.Tasks.Task SeedAsync(NHibernate.Type.IVersionType versionType, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public static bool SeedVersion(object[] fields, int versionProperty, NHibernate.Type.IVersionType versionType, bool? force, NHibernate.Engine.ISessionImplementor session) => throw null; public static System.Threading.Tasks.Task SeedVersionAsync(object[] fields, int versionProperty, NHibernate.Type.IVersionType versionType, bool? force, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public static void SetVersion(object[] fields, object version, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; - public Versioning() => throw null; } - - namespace Loading + public class VersionValue { - // Generated from `NHibernate.Engine.Loading.CollectionLoadContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionLoadContext - { - public CollectionLoadContext(NHibernate.Engine.Loading.LoadContexts loadContexts, System.Data.Common.DbDataReader resultSet) => throw null; - public void EndLoadingCollections(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache, NHibernate.Cache.CacheBatcher cacheBatcher) => throw null; - public void EndLoadingCollections(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache) => throw null; - public void EndLoadingCollections(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; - public System.Threading.Tasks.Task EndLoadingCollectionsAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task EndLoadingCollectionsAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache, NHibernate.Cache.CacheBatcher cacheBatcher, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task EndLoadingCollectionsAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.Collection.IPersistentCollection GetLoadingCollection(NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null; - public NHibernate.Engine.Loading.LoadContexts LoadContext { get => throw null; } - public System.Data.Common.DbDataReader ResultSet { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Engine.Loading.LoadContexts` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LoadContexts - { - public void Cleanup() => throw null; - public virtual void Cleanup(System.Data.Common.DbDataReader resultSet) => throw null; - public NHibernate.Engine.Loading.CollectionLoadContext GetCollectionLoadContext(System.Data.Common.DbDataReader resultSet) => throw null; - public bool HasLoadingCollectionEntries { get => throw null; } - public bool HasRegisteredLoadingCollectionEntries { get => throw null; } - public LoadContexts(NHibernate.Engine.IPersistenceContext persistenceContext) => throw null; - public NHibernate.Collection.IPersistentCollection LocateLoadingCollection(NHibernate.Persister.Collection.ICollectionPersister persister, object ownerKey) => throw null; - public NHibernate.Engine.IPersistenceContext PersistenceContext { get => throw null; } - } - - // Generated from `NHibernate.Engine.Loading.LoadingCollectionEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LoadingCollectionEntry - { - public NHibernate.Collection.IPersistentCollection Collection { get => throw null; } - public object Key { get => throw null; } - public LoadingCollectionEntry(System.Data.Common.DbDataReader resultSet, NHibernate.Persister.Collection.ICollectionPersister persister, object key, NHibernate.Collection.IPersistentCollection collection) => throw null; - public NHibernate.Persister.Collection.ICollectionPersister Persister { get => throw null; } - public System.Data.Common.DbDataReader ResultSet { get => throw null; } - public bool StopLoading { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - } - namespace Query - { - // Generated from `NHibernate.Engine.Query.CallableParser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class CallableParser - { - // Generated from `NHibernate.Engine.Query.CallableParser+Detail` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Detail - { - public Detail() => throw null; - public string FunctionName; - public bool HasReturn; - public bool IsCallable; - } - - - public static NHibernate.Engine.Query.CallableParser.Detail Parse(string sqlString) => throw null; - } - - // Generated from `NHibernate.Engine.Query.FilterQueryPlan` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FilterQueryPlan : NHibernate.Engine.Query.QueryExpressionPlan - { - public string CollectionRole { get => throw null; } - public override NHibernate.Engine.Query.QueryExpressionPlan Copy(NHibernate.IQueryExpression expression) => throw null; - public FilterQueryPlan(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.Query.HQLQueryPlan), default(NHibernate.IQueryExpression)) => throw null; - protected FilterQueryPlan(NHibernate.Engine.Query.FilterQueryPlan source, NHibernate.IQueryExpression expression) : base(default(NHibernate.Engine.Query.HQLQueryPlan), default(NHibernate.IQueryExpression)) => throw null; - } - - // Generated from `NHibernate.Engine.Query.HQLQueryPlan` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HQLQueryPlan : NHibernate.Engine.Query.IQueryPlan - { - protected HQLQueryPlan(string sourceQuery, NHibernate.Hql.IQueryTranslator[] translators) => throw null; - internal HQLQueryPlan(NHibernate.Engine.Query.HQLQueryPlan source) => throw null; - protected static NHibernate.INHibernateLogger Log; - public NHibernate.Engine.Query.ParameterMetadata ParameterMetadata { get => throw null; set => throw null; } - public int PerformExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task PerformExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Collections.IEnumerable PerformIterate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session) => throw null; - public System.Collections.Generic.IEnumerable PerformIterate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session) => throw null; - public System.Threading.Tasks.Task PerformIterateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task> PerformIterateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null; - public void PerformList(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Collections.IList results) => throw null; - public System.Threading.Tasks.Task PerformListAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Collections.Generic.ISet QuerySpaces { get => throw null; set => throw null; } - public NHibernate.Engine.Query.ReturnMetadata ReturnMetadata { get => throw null; set => throw null; } - public string[] SqlStrings { get => throw null; set => throw null; } - public NHibernate.Hql.IQueryTranslator[] Translators { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Engine.Query.IQueryExpressionPlan` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryExpressionPlan : NHibernate.Engine.Query.IQueryPlan - { - NHibernate.IQueryExpression QueryExpression { get; } - } - - // Generated from `NHibernate.Engine.Query.IQueryPlan` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryPlan - { - NHibernate.Engine.Query.ParameterMetadata ParameterMetadata { get; } - int PerformExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl); - System.Threading.Tasks.Task PerformExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl, System.Threading.CancellationToken cancellationToken); - System.Collections.IEnumerable PerformIterate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session); - System.Collections.Generic.IEnumerable PerformIterate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session); - System.Threading.Tasks.Task PerformIterateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task> PerformIterateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken); - void PerformList(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl, System.Collections.IList results); - System.Threading.Tasks.Task PerformListAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); - System.Collections.Generic.ISet QuerySpaces { get; } - NHibernate.Engine.Query.ReturnMetadata ReturnMetadata { get; } - NHibernate.Hql.IQueryTranslator[] Translators { get; } - } - - // Generated from `NHibernate.Engine.Query.NamedParameterDescriptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NamedParameterDescriptor - { - public NHibernate.Type.IType ExpectedType { get => throw null; } - public bool JpaStyle { get => throw null; } - public string Name { get => throw null; } - public NamedParameterDescriptor(string name, NHibernate.Type.IType expectedType, bool jpaStyle) => throw null; - } - - // Generated from `NHibernate.Engine.Query.NativeSQLQueryPlan` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NativeSQLQueryPlan - { - public NHibernate.Loader.Custom.Sql.SQLCustomQuery CustomQuery { get => throw null; } - public NativeSQLQueryPlan(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification specification, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public int PerformExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task PerformExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public string SourceQuery { get => throw null; } - } - - // Generated from `NHibernate.Engine.Query.OrdinalParameterDescriptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OrdinalParameterDescriptor - { - public NHibernate.Type.IType ExpectedType { get => throw null; } - public OrdinalParameterDescriptor(int ordinalPosition, NHibernate.Type.IType expectedType) => throw null; - public int OrdinalPosition { get => throw null; } - } - - // Generated from `NHibernate.Engine.Query.ParamLocationRecognizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ParamLocationRecognizer : NHibernate.Engine.Query.ParameterParser.IRecognizer - { - public void JpaPositionalParameter(string name, int position) => throw null; - public void NamedParameter(string name, int position) => throw null; - // Generated from `NHibernate.Engine.Query.ParamLocationRecognizer+NamedParameterDescription` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NamedParameterDescription - { - public int[] BuildPositionsArray() => throw null; - public bool JpaStyle { get => throw null; } - public NamedParameterDescription(bool jpaStyle) => throw null; - } - - - public System.Collections.Generic.IDictionary NamedParameterDescriptionMap { get => throw null; } - public void OrdinalParameter(int position) => throw null; - public System.Collections.Generic.List OrdinalParameterLocationList { get => throw null; } - public void Other(string sqlPart) => throw null; - public void Other(System.Char character) => throw null; - public void OutParameter(int position) => throw null; - public ParamLocationRecognizer() => throw null; - public static NHibernate.Engine.Query.ParamLocationRecognizer ParseLocations(string query) => throw null; - } - - // Generated from `NHibernate.Engine.Query.ParameterMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ParameterMetadata - { - public NHibernate.Engine.Query.NamedParameterDescriptor GetNamedParameterDescriptor(string name) => throw null; - public NHibernate.Type.IType GetNamedParameterExpectedType(string name) => throw null; - public NHibernate.Engine.Query.OrdinalParameterDescriptor GetOrdinalParameterDescriptor(int position) => throw null; - public NHibernate.Type.IType GetOrdinalParameterExpectedType(int position) => throw null; - public System.Collections.Generic.ICollection NamedParameterNames { get => throw null; } - public int OrdinalParameterCount { get => throw null; } - public ParameterMetadata(System.Collections.Generic.IEnumerable ordinalDescriptors, System.Collections.Generic.IDictionary namedDescriptorMap) => throw null; - } - - // Generated from `NHibernate.Engine.Query.ParameterParser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ParameterParser - { - // Generated from `NHibernate.Engine.Query.ParameterParser+IRecognizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IRecognizer - { - void JpaPositionalParameter(string name, int position); - void NamedParameter(string name, int position); - void OrdinalParameter(int position); - void Other(string sqlPart); - void Other(System.Char character); - void OutParameter(int position); - } - - - public static void Parse(string sqlString, NHibernate.Engine.Query.ParameterParser.IRecognizer recognizer) => throw null; - } - - // Generated from `NHibernate.Engine.Query.QueryExpressionPlan` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryExpressionPlan : NHibernate.Engine.Query.HQLQueryPlan, NHibernate.Engine.Query.IQueryPlan, NHibernate.Engine.Query.IQueryExpressionPlan - { - public virtual NHibernate.Engine.Query.QueryExpressionPlan Copy(NHibernate.IQueryExpression expression) => throw null; - protected static NHibernate.Hql.IQueryTranslator[] CreateTranslators(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public NHibernate.IQueryExpression QueryExpression { get => throw null; } - public QueryExpressionPlan(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.Query.HQLQueryPlan)) => throw null; - public QueryExpressionPlan(NHibernate.IQueryExpression queryExpression, bool shallow, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.Query.HQLQueryPlan)) => throw null; - protected QueryExpressionPlan(string key, NHibernate.Hql.IQueryTranslator[] translators) : base(default(NHibernate.Engine.Query.HQLQueryPlan)) => throw null; - protected QueryExpressionPlan(NHibernate.Engine.Query.HQLQueryPlan source, NHibernate.IQueryExpression expression) : base(default(NHibernate.Engine.Query.HQLQueryPlan)) => throw null; - } - - // Generated from `NHibernate.Engine.Query.QueryPlanCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryPlanCache - { - public NHibernate.Engine.Query.IQueryExpressionPlan GetFilterQueryPlan(string filterString, string collectionRole, bool shallow, System.Collections.Generic.IDictionary enabledFilters) => throw null; - public NHibernate.Engine.Query.IQueryExpressionPlan GetFilterQueryPlan(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary enabledFilters) => throw null; - public NHibernate.Engine.Query.IQueryExpressionPlan GetHQLQueryPlan(NHibernate.IQueryExpression queryExpression, bool shallow, System.Collections.Generic.IDictionary enabledFilters) => throw null; - public NHibernate.Engine.Query.NativeSQLQueryPlan GetNativeSQLQueryPlan(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec) => throw null; - public NHibernate.Engine.Query.ParameterMetadata GetSQLParameterMetadata(string query) => throw null; - public QueryPlanCache(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - } - - // Generated from `NHibernate.Engine.Query.ReturnMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ReturnMetadata - { - public string[] ReturnAliases { get => throw null; } - public ReturnMetadata(string[] returnAliases, NHibernate.Type.IType[] returnTypes) => throw null; - public NHibernate.Type.IType[] ReturnTypes { get => throw null; } - } - - namespace Sql - { - // Generated from `NHibernate.Engine.Query.Sql.INativeSQLQueryReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface INativeSQLQueryReturn - { - } - - // Generated from `NHibernate.Engine.Query.Sql.NativeSQLQueryCollectionReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NativeSQLQueryCollectionReturn : NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn - { - public NativeSQLQueryCollectionReturn(string alias, string ownerEntityName, string ownerProperty, System.Collections.Generic.IDictionary propertyResults, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary), default(NHibernate.LockMode)) => throw null; - public string OwnerEntityName { get => throw null; } - public string OwnerProperty { get => throw null; } - } - - // Generated from `NHibernate.Engine.Query.Sql.NativeSQLQueryJoinReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NativeSQLQueryJoinReturn : NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn - { - public NativeSQLQueryJoinReturn(string alias, string ownerAlias, string ownerProperty, System.Collections.Generic.IDictionary propertyResults, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary), default(NHibernate.LockMode)) => throw null; - public string OwnerAlias { get => throw null; } - public string OwnerProperty { get => throw null; } - } - - // Generated from `NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class NativeSQLQueryNonScalarReturn : NHibernate.Engine.Query.Sql.INativeSQLQueryReturn - { - public string Alias { get => throw null; } - public override bool Equals(object obj) => throw null; - public bool Equals(NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn other) => throw null; - public override int GetHashCode() => throw null; - public NHibernate.LockMode LockMode { get => throw null; } - protected internal NativeSQLQueryNonScalarReturn(string alias, System.Collections.Generic.IDictionary propertyResults, NHibernate.LockMode lockMode) => throw null; - public System.Collections.Generic.IDictionary PropertyResultsMap { get => throw null; } - } - - // Generated from `NHibernate.Engine.Query.Sql.NativeSQLQueryRootReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NativeSQLQueryRootReturn : NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn - { - public NativeSQLQueryRootReturn(string alias, string entityName, System.Collections.Generic.IDictionary propertyResults, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary), default(NHibernate.LockMode)) => throw null; - public NativeSQLQueryRootReturn(string alias, string entityName, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary), default(NHibernate.LockMode)) => throw null; - public string ReturnEntityName { get => throw null; } - } - - // Generated from `NHibernate.Engine.Query.Sql.NativeSQLQueryScalarReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NativeSQLQueryScalarReturn : NHibernate.Engine.Query.Sql.INativeSQLQueryReturn - { - public string ColumnAlias { get => throw null; } - public override bool Equals(object obj) => throw null; - public bool Equals(NHibernate.Engine.Query.Sql.NativeSQLQueryScalarReturn other) => throw null; - public override int GetHashCode() => throw null; - public NativeSQLQueryScalarReturn(string alias, NHibernate.Type.IType type) => throw null; - public NHibernate.Type.IType Type { get => throw null; } - } - - // Generated from `NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NativeSQLQuerySpecification - { - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public NativeSQLQuerySpecification(string queryString, NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] sqlQueryReturns, System.Collections.Generic.ICollection querySpaces) => throw null; - public System.Collections.Generic.ISet QuerySpaces { get => throw null; } - public string QueryString { get => throw null; } - public NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] SqlQueryReturns { get => throw null; } - } - - } - } - namespace Transaction - { - // Generated from `NHibernate.Engine.Transaction.IIsolatedWork` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IIsolatedWork - { - void DoWork(System.Data.Common.DbConnection connection, System.Data.Common.DbTransaction transaction); - System.Threading.Tasks.Task DoWorkAsync(System.Data.Common.DbConnection connection, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Engine.Transaction.Isolater` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Isolater - { - public static void DoIsolatedWork(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session) => throw null; - public static System.Threading.Tasks.Task DoIsolatedWorkAsync(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public static void DoNonTransactedWork(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session) => throw null; - public static System.Threading.Tasks.Task DoNonTransactedWorkAsync(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public Isolater() => throw null; - } - + protected VersionValue() => throw null; + public VersionValue(object value) => throw null; + public virtual object GetDefaultValue(object currentValue) => throw null; + public virtual bool? IsUnsaved(object version) => throw null; + public static NHibernate.Engine.VersionValue VersionNegative; + public static NHibernate.Engine.VersionValue VersionSaveNull; + public static NHibernate.Engine.VersionValue VersionUndefined; } } + public static partial class EntityJoinExtensions + { + public static NHibernate.ICriteria CreateEntityAlias(this NHibernate.ICriteria criteria, string alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null; + public static NHibernate.ICriteria CreateEntityAlias(this NHibernate.ICriteria criteria, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; + public static NHibernate.ICriteria CreateEntityCriteria(this NHibernate.ICriteria criteria, string alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null; + public static NHibernate.ICriteria CreateEntityCriteria(this NHibernate.ICriteria criteria, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; + public static TThis JoinEntityAlias(this TThis queryOver, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) where TThis : NHibernate.IQueryOver => throw null; + public static TThis JoinEntityAlias(this TThis queryOver, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) where TThis : NHibernate.IQueryOver => throw null; + public static NHibernate.IQueryOver JoinEntityQueryOver(this NHibernate.IQueryOver queryOver, System.Linq.Expressions.Expression> alias, System.Linq.Expressions.Expression> withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; + public static NHibernate.IQueryOver JoinEntityQueryOver(this NHibernate.IQueryOver queryOver, System.Linq.Expressions.Expression> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null; + } + public enum EntityMode + { + Poco = 0, + Map = 1, + } namespace Event { - // Generated from `NHibernate.Event.AbstractCollectionEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractCollectionEvent : NHibernate.Event.AbstractEvent { - protected AbstractCollectionEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source, object affectedOwner, object affectedOwnerId) : base(default(NHibernate.Event.IEventSource)) => throw null; public object AffectedOwnerIdOrNull { get => throw null; } public object AffectedOwnerOrNull { get => throw null; } public NHibernate.Collection.IPersistentCollection Collection { get => throw null; } - public virtual string GetAffectedOwnerEntityName() => throw null; + protected AbstractCollectionEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source, object affectedOwner, object affectedOwnerId) : base(default(NHibernate.Event.IEventSource)) => throw null; protected static string GetAffectedOwnerEntityName(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, object affectedOwner, NHibernate.Event.IEventSource source) => throw null; + public virtual string GetAffectedOwnerEntityName() => throw null; protected static NHibernate.Persister.Collection.ICollectionPersister GetLoadedCollectionPersister(NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) => throw null; protected static object GetLoadedOwnerIdOrNull(NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) => throw null; protected static object GetLoadedOwnerOrNull(NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) => throw null; protected static object GetOwnerIdOrNull(object owner, NHibernate.Event.IEventSource source) => throw null; } - - // Generated from `NHibernate.Event.AbstractEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AbstractEvent : NHibernate.Event.IDatabaseEventArgs { public AbstractEvent(NHibernate.Event.IEventSource source) => throw null; - public NHibernate.Event.IEventSource Session { get => throw null; set => throw null; } + public NHibernate.Event.IEventSource Session { get => throw null; } } - - // Generated from `NHibernate.Event.AbstractPostDatabaseOperationEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AbstractPostDatabaseOperationEvent : NHibernate.Event.AbstractEvent, NHibernate.Event.IPostDatabaseOperationEventArgs, NHibernate.Event.IDatabaseEventArgs { protected AbstractPostDatabaseOperationEvent(NHibernate.Event.IEventSource source, object entity, object id, NHibernate.Persister.Entity.IEntityPersister persister) : base(default(NHibernate.Event.IEventSource)) => throw null; - public object Entity { get => throw null; set => throw null; } - public object Id { get => throw null; set => throw null; } - public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; set => throw null; } + public object Entity { get => throw null; } + public object Id { get => throw null; } + public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; } } - - // Generated from `NHibernate.Event.AbstractPreDatabaseOperationEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractPreDatabaseOperationEvent : NHibernate.Event.AbstractEvent, NHibernate.Event.IPreDatabaseOperationEventArgs, NHibernate.Event.IDatabaseEventArgs { protected AbstractPreDatabaseOperationEvent(NHibernate.Event.IEventSource source, object entity, object id, NHibernate.Persister.Entity.IEntityPersister persister) : base(default(NHibernate.Event.IEventSource)) => throw null; - public object Entity { get => throw null; set => throw null; } - public object Id { get => throw null; set => throw null; } - public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; set => throw null; } + public object Entity { get => throw null; } + public object Id { get => throw null; } + public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; } } - - // Generated from `NHibernate.Event.AutoFlushEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AutoFlushEvent : NHibernate.Event.FlushEvent { public AutoFlushEvent(System.Collections.Generic.ISet querySpaces, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public bool FlushRequired { get => throw null; set => throw null; } - public System.Collections.Generic.ISet QuerySpaces { get => throw null; set => throw null; } + public bool FlushRequired { get => throw null; set { } } + public System.Collections.Generic.ISet QuerySpaces { get => throw null; set { } } } - - // Generated from `NHibernate.Event.DeleteEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DeleteEvent : NHibernate.Event.AbstractEvent - { - public bool CascadeDeleteEnabled { get => throw null; } - public DeleteEvent(string entityName, object entity, bool isCascadeDeleteEnabled, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public DeleteEvent(string entityName, object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public DeleteEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public object Entity { get => throw null; } - public string EntityName { get => throw null; } - } - - // Generated from `NHibernate.Event.DirtyCheckEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DirtyCheckEvent : NHibernate.Event.FlushEvent - { - public bool Dirty { get => throw null; set => throw null; } - public DirtyCheckEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - } - - // Generated from `NHibernate.Event.EventListeners` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EventListeners - { - public NHibernate.Event.IAutoFlushEventListener[] AutoFlushEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IDeleteEventListener[] DeleteEventListeners { get => throw null; set => throw null; } - public void DestroyListeners() => throw null; - public NHibernate.Event.IDirtyCheckEventListener[] DirtyCheckEventListeners { get => throw null; set => throw null; } - public EventListeners() => throw null; - public NHibernate.Event.IEvictEventListener[] EvictEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IFlushEntityEventListener[] FlushEntityEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IFlushEventListener[] FlushEventListeners { get => throw null; set => throw null; } - public System.Type GetListenerClassFor(NHibernate.Event.ListenerType type) => throw null; - public NHibernate.Event.IInitializeCollectionEventListener[] InitializeCollectionEventListeners { get => throw null; set => throw null; } - public virtual void InitializeListeners(NHibernate.Cfg.Configuration cfg) => throw null; - public NHibernate.Event.ILoadEventListener[] LoadEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.ILockEventListener[] LockEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IMergeEventListener[] MergeEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPersistEventListener[] PersistEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPersistEventListener[] PersistOnFlushEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPostCollectionRecreateEventListener[] PostCollectionRecreateEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPostCollectionRemoveEventListener[] PostCollectionRemoveEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPostCollectionUpdateEventListener[] PostCollectionUpdateEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPostDeleteEventListener[] PostCommitDeleteEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPostInsertEventListener[] PostCommitInsertEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPostUpdateEventListener[] PostCommitUpdateEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPostDeleteEventListener[] PostDeleteEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPostInsertEventListener[] PostInsertEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPostLoadEventListener[] PostLoadEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPostUpdateEventListener[] PostUpdateEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPreCollectionRecreateEventListener[] PreCollectionRecreateEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPreCollectionRemoveEventListener[] PreCollectionRemoveEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPreCollectionUpdateEventListener[] PreCollectionUpdateEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPreDeleteEventListener[] PreDeleteEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPreInsertEventListener[] PreInsertEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPreLoadEventListener[] PreLoadEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IPreUpdateEventListener[] PreUpdateEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IRefreshEventListener[] RefreshEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.IReplicateEventListener[] ReplicateEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.ISaveOrUpdateEventListener[] SaveEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.ISaveOrUpdateEventListener[] SaveOrUpdateEventListeners { get => throw null; set => throw null; } - public NHibernate.Event.EventListeners ShallowCopy() => throw null; - public NHibernate.Event.ISaveOrUpdateEventListener[] UpdateEventListeners { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.EvictEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EvictEvent : NHibernate.Event.AbstractEvent - { - public object Entity { get => throw null; set => throw null; } - public EvictEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - } - - // Generated from `NHibernate.Event.FlushEntityEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FlushEntityEvent : NHibernate.Event.AbstractEvent - { - public object[] DatabaseSnapshot { get => throw null; set => throw null; } - public bool DirtyCheckHandledByInterceptor { get => throw null; set => throw null; } - public bool DirtyCheckPossible { get => throw null; set => throw null; } - public int[] DirtyProperties { get => throw null; set => throw null; } - public object Entity { get => throw null; } - public NHibernate.Engine.EntityEntry EntityEntry { get => throw null; } - public FlushEntityEvent(NHibernate.Event.IEventSource source, object entity, NHibernate.Engine.EntityEntry entry) : base(default(NHibernate.Event.IEventSource)) => throw null; - public bool HasDatabaseSnapshot { get => throw null; } - public bool HasDirtyCollection { get => throw null; set => throw null; } - public object[] PropertyValues { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.FlushEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FlushEvent : NHibernate.Event.AbstractEvent - { - public FlushEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - } - - // Generated from `NHibernate.Event.IAutoFlushEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IAutoFlushEventListener - { - void OnAutoFlush(NHibernate.Event.AutoFlushEvent @event); - System.Threading.Tasks.Task OnAutoFlushAsync(NHibernate.Event.AutoFlushEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IDatabaseEventArgs` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDatabaseEventArgs - { - NHibernate.Event.IEventSource Session { get; } - } - - // Generated from `NHibernate.Event.IDeleteEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDeleteEventListener - { - void OnDelete(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet transientEntities); - void OnDelete(NHibernate.Event.DeleteEvent @event); - System.Threading.Tasks.Task OnDeleteAsync(NHibernate.Event.DeleteEvent @event, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task OnDeleteAsync(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet transientEntities, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IDestructible` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDestructible - { - void Cleanup(); - } - - // Generated from `NHibernate.Event.IDirtyCheckEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDirtyCheckEventListener - { - void OnDirtyCheck(NHibernate.Event.DirtyCheckEvent @event); - System.Threading.Tasks.Task OnDirtyCheckAsync(NHibernate.Event.DirtyCheckEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IEventSource` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IEventSource : System.IDisposable, NHibernate.ISession, NHibernate.Engine.ISessionImplementor - { - NHibernate.Engine.ActionQueue ActionQueue { get; } - bool AutoFlushSuspended { get; } - void Delete(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet transientEntities); - System.Threading.Tasks.Task DeleteAsync(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet transientEntities, System.Threading.CancellationToken cancellationToken); - void ForceFlush(NHibernate.Engine.EntityEntry e); - System.Threading.Tasks.Task ForceFlushAsync(NHibernate.Engine.EntityEntry e, System.Threading.CancellationToken cancellationToken); - object Instantiate(NHibernate.Persister.Entity.IEntityPersister persister, object id); - void Merge(string entityName, object obj, System.Collections.IDictionary copiedAlready); - System.Threading.Tasks.Task MergeAsync(string entityName, object obj, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken); - void Persist(string entityName, object obj, System.Collections.IDictionary createdAlready); - System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Collections.IDictionary createdAlready, System.Threading.CancellationToken cancellationToken); - void PersistOnFlush(string entityName, object obj, System.Collections.IDictionary copiedAlready); - System.Threading.Tasks.Task PersistOnFlushAsync(string entityName, object obj, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken); - void Refresh(object obj, System.Collections.IDictionary refreshedAlready); - System.Threading.Tasks.Task RefreshAsync(object obj, System.Collections.IDictionary refreshedAlready, System.Threading.CancellationToken cancellationToken); - System.IDisposable SuspendAutoFlush(); - } - - // Generated from `NHibernate.Event.IEvictEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IEvictEventListener - { - void OnEvict(NHibernate.Event.EvictEvent @event); - System.Threading.Tasks.Task OnEvictAsync(NHibernate.Event.EvictEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IFlushEntityEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IFlushEntityEventListener - { - void OnFlushEntity(NHibernate.Event.FlushEntityEvent @event); - System.Threading.Tasks.Task OnFlushEntityAsync(NHibernate.Event.FlushEntityEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IFlushEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IFlushEventListener - { - void OnFlush(NHibernate.Event.FlushEvent @event); - System.Threading.Tasks.Task OnFlushAsync(NHibernate.Event.FlushEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IInitializable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IInitializable - { - void Initialize(NHibernate.Cfg.Configuration cfg); - } - - // Generated from `NHibernate.Event.IInitializeCollectionEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IInitializeCollectionEventListener - { - void OnInitializeCollection(NHibernate.Event.InitializeCollectionEvent @event); - System.Threading.Tasks.Task OnInitializeCollectionAsync(NHibernate.Event.InitializeCollectionEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.ILoadEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ILoadEventListener - { - void OnLoad(NHibernate.Event.LoadEvent @event, NHibernate.Event.LoadType loadType); - System.Threading.Tasks.Task OnLoadAsync(NHibernate.Event.LoadEvent @event, NHibernate.Event.LoadType loadType, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.ILockEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ILockEventListener - { - void OnLock(NHibernate.Event.LockEvent @event); - System.Threading.Tasks.Task OnLockAsync(NHibernate.Event.LockEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IMergeEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IMergeEventListener - { - void OnMerge(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready); - void OnMerge(NHibernate.Event.MergeEvent @event); - System.Threading.Tasks.Task OnMergeAsync(NHibernate.Event.MergeEvent @event, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task OnMergeAsync(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPersistEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPersistEventListener - { - void OnPersist(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready); - void OnPersist(NHibernate.Event.PersistEvent @event); - System.Threading.Tasks.Task OnPersistAsync(NHibernate.Event.PersistEvent @event, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task OnPersistAsync(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPostCollectionRecreateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPostCollectionRecreateEventListener - { - void OnPostRecreateCollection(NHibernate.Event.PostCollectionRecreateEvent @event); - System.Threading.Tasks.Task OnPostRecreateCollectionAsync(NHibernate.Event.PostCollectionRecreateEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPostCollectionRemoveEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPostCollectionRemoveEventListener - { - void OnPostRemoveCollection(NHibernate.Event.PostCollectionRemoveEvent @event); - System.Threading.Tasks.Task OnPostRemoveCollectionAsync(NHibernate.Event.PostCollectionRemoveEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPostCollectionUpdateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPostCollectionUpdateEventListener - { - void OnPostUpdateCollection(NHibernate.Event.PostCollectionUpdateEvent @event); - System.Threading.Tasks.Task OnPostUpdateCollectionAsync(NHibernate.Event.PostCollectionUpdateEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPostDatabaseOperationEventArgs` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPostDatabaseOperationEventArgs : NHibernate.Event.IDatabaseEventArgs - { - object Entity { get; } - object Id { get; } - NHibernate.Persister.Entity.IEntityPersister Persister { get; } - } - - // Generated from `NHibernate.Event.IPostDeleteEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPostDeleteEventListener - { - void OnPostDelete(NHibernate.Event.PostDeleteEvent @event); - System.Threading.Tasks.Task OnPostDeleteAsync(NHibernate.Event.PostDeleteEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPostInsertEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPostInsertEventListener - { - void OnPostInsert(NHibernate.Event.PostInsertEvent @event); - System.Threading.Tasks.Task OnPostInsertAsync(NHibernate.Event.PostInsertEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPostLoadEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPostLoadEventListener - { - void OnPostLoad(NHibernate.Event.PostLoadEvent @event); - } - - // Generated from `NHibernate.Event.IPostUpdateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPostUpdateEventListener - { - void OnPostUpdate(NHibernate.Event.PostUpdateEvent @event); - System.Threading.Tasks.Task OnPostUpdateAsync(NHibernate.Event.PostUpdateEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPreCollectionRecreateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPreCollectionRecreateEventListener - { - void OnPreRecreateCollection(NHibernate.Event.PreCollectionRecreateEvent @event); - System.Threading.Tasks.Task OnPreRecreateCollectionAsync(NHibernate.Event.PreCollectionRecreateEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPreCollectionRemoveEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPreCollectionRemoveEventListener - { - void OnPreRemoveCollection(NHibernate.Event.PreCollectionRemoveEvent @event); - System.Threading.Tasks.Task OnPreRemoveCollectionAsync(NHibernate.Event.PreCollectionRemoveEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPreCollectionUpdateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPreCollectionUpdateEventListener - { - void OnPreUpdateCollection(NHibernate.Event.PreCollectionUpdateEvent @event); - System.Threading.Tasks.Task OnPreUpdateCollectionAsync(NHibernate.Event.PreCollectionUpdateEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPreDatabaseOperationEventArgs` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPreDatabaseOperationEventArgs : NHibernate.Event.IDatabaseEventArgs - { - object Entity { get; } - object Id { get; } - NHibernate.Persister.Entity.IEntityPersister Persister { get; } - } - - // Generated from `NHibernate.Event.IPreDeleteEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPreDeleteEventListener - { - bool OnPreDelete(NHibernate.Event.PreDeleteEvent @event); - System.Threading.Tasks.Task OnPreDeleteAsync(NHibernate.Event.PreDeleteEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPreInsertEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPreInsertEventListener - { - bool OnPreInsert(NHibernate.Event.PreInsertEvent @event); - System.Threading.Tasks.Task OnPreInsertAsync(NHibernate.Event.PreInsertEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPreLoadEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPreLoadEventListener - { - void OnPreLoad(NHibernate.Event.PreLoadEvent @event); - System.Threading.Tasks.Task OnPreLoadAsync(NHibernate.Event.PreLoadEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IPreUpdateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPreUpdateEventListener - { - bool OnPreUpdate(NHibernate.Event.PreUpdateEvent @event); - System.Threading.Tasks.Task OnPreUpdateAsync(NHibernate.Event.PreUpdateEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IRefreshEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IRefreshEventListener - { - void OnRefresh(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready); - void OnRefresh(NHibernate.Event.RefreshEvent @event); - System.Threading.Tasks.Task OnRefreshAsync(NHibernate.Event.RefreshEvent @event, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task OnRefreshAsync(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.IReplicateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IReplicateEventListener - { - void OnReplicate(NHibernate.Event.ReplicateEvent @event); - System.Threading.Tasks.Task OnReplicateAsync(NHibernate.Event.ReplicateEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.ISaveOrUpdateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISaveOrUpdateEventListener - { - void OnSaveOrUpdate(NHibernate.Event.SaveOrUpdateEvent @event); - System.Threading.Tasks.Task OnSaveOrUpdateAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Event.InitializeCollectionEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class InitializeCollectionEvent : NHibernate.Event.AbstractCollectionEvent - { - public InitializeCollectionEvent(NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; - } - - // Generated from `NHibernate.Event.ListenerType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum ListenerType - { - Autoflush, - Create, - CreateOnFlush, - Delete, - DirtyCheck, - Evict, - Flush, - FlushEntity, - Load, - LoadCollection, - Lock, - Merge, - NotValidType, - PostCollectionRecreate, - PostCollectionRemove, - PostCollectionUpdate, - PostCommitDelete, - PostCommitInsert, - PostCommitUpdate, - PostDelete, - PostInsert, - PostLoad, - PostUpdate, - PreCollectionRecreate, - PreCollectionRemove, - PreCollectionUpdate, - PreDelete, - PreInsert, - PreLoad, - PreUpdate, - Refresh, - Replicate, - Save, - SaveUpdate, - Update, - } - - // Generated from `NHibernate.Event.LoadEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LoadEvent : NHibernate.Event.AbstractEvent - { - public static NHibernate.LockMode DefaultLockMode; - public string EntityClassName { get => throw null; set => throw null; } - public object EntityId { get => throw null; set => throw null; } - public object InstanceToLoad { get => throw null; set => throw null; } - public bool IsAssociationFetch { get => throw null; } - public LoadEvent(object entityId, string entityClassName, bool isAssociationFetch, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public LoadEvent(object entityId, string entityClassName, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public LoadEvent(object entityId, object instanceToLoad, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - private LoadEvent(object entityId, string entityClassName, object instanceToLoad, NHibernate.LockMode lockMode, bool isAssociationFetch, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public NHibernate.LockMode LockMode { get => throw null; set => throw null; } - public object Result { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.LoadEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class LoadEventListener - { - public static NHibernate.Event.LoadType Get; - public static NHibernate.Event.LoadType ImmediateLoad; - public static NHibernate.Event.LoadType InternalLoadEager; - public static NHibernate.Event.LoadType InternalLoadLazy; - public static NHibernate.Event.LoadType InternalLoadNullable; - public static NHibernate.Event.LoadType Load; - public static NHibernate.Event.LoadType Reload; - } - - // Generated from `NHibernate.Event.LoadType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LoadType - { - public bool ExactPersister { get => throw null; } - public bool IsAllowNulls { get => throw null; } - public bool IsAllowProxyCreation { get => throw null; } - public bool IsCheckDeleted { get => throw null; } - public bool IsNakedEntityReturned { get => throw null; } - public string Name { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Event.LockEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LockEvent : NHibernate.Event.AbstractEvent - { - public object Entity { get => throw null; set => throw null; } - public string EntityName { get => throw null; set => throw null; } - public LockEvent(string entityName, object original, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public LockEvent(object entity, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public NHibernate.LockMode LockMode { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.MergeEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MergeEvent : NHibernate.Event.AbstractEvent - { - public object Entity { get => throw null; set => throw null; } - public string EntityName { get => throw null; set => throw null; } - public MergeEvent(string entityName, object original, object id, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public MergeEvent(string entityName, object original, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public MergeEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public object Original { get => throw null; set => throw null; } - public object RequestedId { get => throw null; set => throw null; } - public object Result { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.PersistEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PersistEvent : NHibernate.Event.AbstractEvent - { - public object Entity { get => throw null; set => throw null; } - public string EntityName { get => throw null; set => throw null; } - public PersistEvent(string entityName, object original, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public PersistEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - } - - // Generated from `NHibernate.Event.PostCollectionRecreateEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostCollectionRecreateEvent : NHibernate.Event.AbstractCollectionEvent - { - public PostCollectionRecreateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; - } - - // Generated from `NHibernate.Event.PostCollectionRemoveEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostCollectionRemoveEvent : NHibernate.Event.AbstractCollectionEvent - { - public PostCollectionRemoveEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source, object loadedOwner) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; - } - - // Generated from `NHibernate.Event.PostCollectionUpdateEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostCollectionUpdateEvent : NHibernate.Event.AbstractCollectionEvent - { - public PostCollectionUpdateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; - } - - // Generated from `NHibernate.Event.PostDeleteEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostDeleteEvent : NHibernate.Event.AbstractPostDatabaseOperationEvent - { - public object[] DeletedState { get => throw null; set => throw null; } - public PostDeleteEvent(object entity, object id, object[] deletedState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; - } - - // Generated from `NHibernate.Event.PostInsertEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostInsertEvent : NHibernate.Event.AbstractPostDatabaseOperationEvent - { - public PostInsertEvent(object entity, object id, object[] state, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; - public object[] State { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.PostLoadEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostLoadEvent : NHibernate.Event.AbstractEvent, NHibernate.Event.IPostDatabaseOperationEventArgs, NHibernate.Event.IDatabaseEventArgs - { - public object Entity { get => throw null; set => throw null; } - public object Id { get => throw null; set => throw null; } - public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; set => throw null; } - public PostLoadEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - } - - // Generated from `NHibernate.Event.PostUpdateEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PostUpdateEvent : NHibernate.Event.AbstractPostDatabaseOperationEvent - { - public object[] OldState { get => throw null; set => throw null; } - public PostUpdateEvent(object entity, object id, object[] state, object[] oldState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; - public object[] State { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.PreCollectionRecreateEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PreCollectionRecreateEvent : NHibernate.Event.AbstractCollectionEvent - { - public PreCollectionRecreateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; - } - - // Generated from `NHibernate.Event.PreCollectionRemoveEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PreCollectionRemoveEvent : NHibernate.Event.AbstractCollectionEvent - { - public PreCollectionRemoveEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source, object loadedOwner) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; - } - - // Generated from `NHibernate.Event.PreCollectionUpdateEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PreCollectionUpdateEvent : NHibernate.Event.AbstractCollectionEvent - { - public PreCollectionUpdateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; - } - - // Generated from `NHibernate.Event.PreDeleteEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PreDeleteEvent : NHibernate.Event.AbstractPreDatabaseOperationEvent - { - public object[] DeletedState { get => throw null; set => throw null; } - public PreDeleteEvent(object entity, object id, object[] deletedState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; - } - - // Generated from `NHibernate.Event.PreInsertEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PreInsertEvent : NHibernate.Event.AbstractPreDatabaseOperationEvent - { - public PreInsertEvent(object entity, object id, object[] state, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; - public object[] State { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.PreLoadEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PreLoadEvent : NHibernate.Event.AbstractEvent, NHibernate.Event.IPreDatabaseOperationEventArgs, NHibernate.Event.IDatabaseEventArgs - { - public object Entity { get => throw null; set => throw null; } - public object Id { get => throw null; set => throw null; } - public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; set => throw null; } - public PreLoadEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public object[] State { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.PreUpdateEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PreUpdateEvent : NHibernate.Event.AbstractPreDatabaseOperationEvent - { - public object[] OldState { get => throw null; set => throw null; } - public PreUpdateEvent(object entity, object id, object[] state, object[] oldState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; - public object[] State { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.RefreshEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class RefreshEvent : NHibernate.Event.AbstractEvent - { - public object Entity { get => throw null; } - public NHibernate.LockMode LockMode { get => throw null; } - public RefreshEvent(object entity, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public RefreshEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - } - - // Generated from `NHibernate.Event.ReplicateEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ReplicateEvent : NHibernate.Event.AbstractEvent - { - public object Entity { get => throw null; set => throw null; } - public string EntityName { get => throw null; set => throw null; } - public ReplicateEvent(string entityName, object entity, NHibernate.ReplicationMode replicationMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public ReplicateEvent(object entity, NHibernate.ReplicationMode replicationMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public NHibernate.ReplicationMode ReplicationMode { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Event.SaveOrUpdateEvent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SaveOrUpdateEvent : NHibernate.Event.AbstractEvent - { - public object Entity { get => throw null; set => throw null; } - public string EntityName { get => throw null; set => throw null; } - public NHibernate.Engine.EntityEntry Entry { get => throw null; set => throw null; } - public object RequestedId { get => throw null; set => throw null; } - public object ResultEntity { get => throw null; set => throw null; } - public object ResultId { get => throw null; set => throw null; } - public SaveOrUpdateEvent(string entityName, object original, object id, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public SaveOrUpdateEvent(string entityName, object original, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - public SaveOrUpdateEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; - } - namespace Default { - // Generated from `NHibernate.Event.Default.AbstractFlushingEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractFlushingEventListener { - protected AbstractFlushingEventListener() => throw null; protected virtual object Anything { get => throw null; } protected virtual void CascadeOnFlush(NHibernate.Event.IEventSource session, NHibernate.Persister.Entity.IEntityPersister persister, object key, object anything) => throw null; protected virtual System.Threading.Tasks.Task CascadeOnFlushAsync(NHibernate.Event.IEventSource session, NHibernate.Persister.Entity.IEntityPersister persister, object key, object anything, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual NHibernate.Engine.CascadingAction CascadingAction { get => throw null; } + protected AbstractFlushingEventListener() => throw null; protected virtual void FlushCollections(NHibernate.Event.IEventSource session) => throw null; protected virtual System.Threading.Tasks.Task FlushCollectionsAsync(NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual void FlushEntities(NHibernate.Event.FlushEvent @event) => throw null; @@ -14378,33 +10688,27 @@ namespace NHibernate protected virtual void PrepareEntityFlushes(NHibernate.Event.IEventSource session) => throw null; protected virtual System.Threading.Tasks.Task PrepareEntityFlushesAsync(NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.AbstractLockUpgradeEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AbstractLockUpgradeEventListener : NHibernate.Event.Default.AbstractReassociateEventListener { public AbstractLockUpgradeEventListener() => throw null; protected virtual void UpgradeLock(object entity, NHibernate.Engine.EntityEntry entry, NHibernate.LockMode requestedLockMode, NHibernate.Engine.ISessionImplementor source) => throw null; protected virtual System.Threading.Tasks.Task UpgradeLockAsync(object entity, NHibernate.Engine.EntityEntry entry, NHibernate.LockMode requestedLockMode, NHibernate.Engine.ISessionImplementor source, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.AbstractReassociateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AbstractReassociateEventListener { public AbstractReassociateEventListener() => throw null; protected NHibernate.Engine.EntityEntry Reassociate(NHibernate.Event.AbstractEvent @event, object entity, object id, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; protected System.Threading.Tasks.Task ReassociateAsync(NHibernate.Event.AbstractEvent @event, object entity, object id, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.AbstractSaveEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractSaveEventListener : NHibernate.Event.Default.AbstractReassociateEventListener { - protected AbstractSaveEventListener() => throw null; protected virtual bool? AssumedUnsaved { get => throw null; } protected abstract NHibernate.Engine.CascadingAction CascadeAction { get; } protected virtual void CascadeAfterSave(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything) => throw null; protected virtual System.Threading.Tasks.Task CascadeAfterSaveAsync(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual void CascadeBeforeSave(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything) => throw null; protected virtual System.Threading.Tasks.Task CascadeBeforeSaveAsync(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything, System.Threading.CancellationToken cancellationToken) => throw null; + protected AbstractSaveEventListener() => throw null; protected virtual NHibernate.Event.Default.EntityState GetEntityState(object entity, string entityName, NHibernate.Engine.EntityEntry entry, NHibernate.Engine.ISessionImplementor source) => throw null; protected virtual System.Threading.Tasks.Task GetEntityStateAsync(object entity, string entityName, NHibernate.Engine.EntityEntry entry, NHibernate.Engine.ISessionImplementor source, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual string GetLoggableName(string entityName, object entity) => throw null; @@ -14425,8 +10729,6 @@ namespace NHibernate protected virtual bool VisitCollectionsBeforeSave(object entity, object id, object[] values, NHibernate.Type.IType[] types, NHibernate.Event.IEventSource source) => throw null; protected virtual System.Threading.Tasks.Task VisitCollectionsBeforeSaveAsync(object entity, object id, object[] values, NHibernate.Type.IType[] types, NHibernate.Event.IEventSource source, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.AbstractVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractVisitor { public AbstractVisitor(NHibernate.Event.IEventSource session) => throw null; @@ -14434,16 +10736,12 @@ namespace NHibernate public System.Threading.Tasks.Task ProcessEntityPropertyValuesAsync(object[] values, NHibernate.Type.IType[] types, System.Threading.CancellationToken cancellationToken) => throw null; public NHibernate.Event.IEventSource Session { get => throw null; } } - - // Generated from `NHibernate.Event.Default.DefaultAutoFlushEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultAutoFlushEventListener : NHibernate.Event.Default.AbstractFlushingEventListener, NHibernate.Event.IAutoFlushEventListener { public DefaultAutoFlushEventListener() => throw null; public virtual void OnAutoFlush(NHibernate.Event.AutoFlushEvent @event) => throw null; public virtual System.Threading.Tasks.Task OnAutoFlushAsync(NHibernate.Event.AutoFlushEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultDeleteEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultDeleteEventListener : NHibernate.Event.IDeleteEventListener { protected virtual void CascadeAfterDelete(NHibernate.Event.IEventSource session, NHibernate.Persister.Entity.IEntityPersister persister, object entity, System.Collections.Generic.ISet transientEntities) => throw null; @@ -14456,22 +10754,20 @@ namespace NHibernate protected virtual void DeleteTransientEntity(NHibernate.Event.IEventSource session, object entity, bool cascadeDeleteEnabled, NHibernate.Persister.Entity.IEntityPersister persister, System.Collections.Generic.ISet transientEntities) => throw null; protected virtual System.Threading.Tasks.Task DeleteTransientEntityAsync(NHibernate.Event.IEventSource session, object entity, bool cascadeDeleteEnabled, NHibernate.Persister.Entity.IEntityPersister persister, System.Collections.Generic.ISet transientEntities, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual bool InvokeDeleteLifecycle(NHibernate.Event.IEventSource session, object entity, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; - public virtual void OnDelete(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet transientEntities) => throw null; public virtual void OnDelete(NHibernate.Event.DeleteEvent @event) => throw null; + public virtual void OnDelete(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet transientEntities) => throw null; public virtual System.Threading.Tasks.Task OnDeleteAsync(NHibernate.Event.DeleteEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; public virtual System.Threading.Tasks.Task OnDeleteAsync(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet transientEntities, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual void PerformDetachedEntityDeletionCheck(NHibernate.Event.DeleteEvent @event) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultDirtyCheckEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultDirtyCheckEventListener : NHibernate.Event.Default.AbstractFlushingEventListener, NHibernate.Event.IDirtyCheckEventListener { + protected override object Anything { get => throw null; } + protected override NHibernate.Engine.CascadingAction CascadingAction { get => throw null; } public DefaultDirtyCheckEventListener() => throw null; public virtual void OnDirtyCheck(NHibernate.Event.DirtyCheckEvent @event) => throw null; public virtual System.Threading.Tasks.Task OnDirtyCheckAsync(NHibernate.Event.DirtyCheckEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultEvictEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultEvictEventListener : NHibernate.Event.IEvictEventListener { public DefaultEvictEventListener() => throw null; @@ -14480,8 +10776,6 @@ namespace NHibernate public virtual void OnEvict(NHibernate.Event.EvictEvent @event) => throw null; public virtual System.Threading.Tasks.Task OnEvictAsync(NHibernate.Event.EvictEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultFlushEntityEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultFlushEntityEventListener : NHibernate.Event.IFlushEntityEventListener { public virtual void CheckId(object obj, NHibernate.Persister.Entity.IEntityPersister persister, object id) => throw null; @@ -14497,24 +10791,18 @@ namespace NHibernate public virtual System.Threading.Tasks.Task OnFlushEntityAsync(NHibernate.Event.FlushEntityEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual void Validate(object entity, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.Status status) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultFlushEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultFlushEventListener : NHibernate.Event.Default.AbstractFlushingEventListener, NHibernate.Event.IFlushEventListener { public DefaultFlushEventListener() => throw null; public virtual void OnFlush(NHibernate.Event.FlushEvent @event) => throw null; public virtual System.Threading.Tasks.Task OnFlushAsync(NHibernate.Event.FlushEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultInitializeCollectionEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultInitializeCollectionEventListener : NHibernate.Event.IInitializeCollectionEventListener { public DefaultInitializeCollectionEventListener() => throw null; public virtual void OnInitializeCollection(NHibernate.Event.InitializeCollectionEvent @event) => throw null; public virtual System.Threading.Tasks.Task OnInitializeCollectionAsync(NHibernate.Event.InitializeCollectionEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultLoadEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultLoadEventListener : NHibernate.Event.Default.AbstractLockUpgradeEventListener, NHibernate.Event.ILoadEventListener { public DefaultLoadEventListener() => throw null; @@ -14539,16 +10827,12 @@ namespace NHibernate protected virtual System.Threading.Tasks.Task ProxyOrLoadAsync(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options, System.Threading.CancellationToken cancellationToken) => throw null; public static object RemovedEntityMarker; } - - // Generated from `NHibernate.Event.Default.DefaultLockEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultLockEventListener : NHibernate.Event.Default.AbstractLockUpgradeEventListener, NHibernate.Event.ILockEventListener { public DefaultLockEventListener() => throw null; public virtual void OnLock(NHibernate.Event.LockEvent @event) => throw null; public virtual System.Threading.Tasks.Task OnLockAsync(NHibernate.Event.LockEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultMergeEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultMergeEventListener : NHibernate.Event.Default.AbstractSaveEventListener, NHibernate.Event.IMergeEventListener { protected override bool? AssumedUnsaved { get => throw null; } @@ -14559,8 +10843,8 @@ namespace NHibernate protected override System.Threading.Tasks.Task CascadeBeforeSaveAsync(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual void CascadeOnMerge(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, System.Collections.IDictionary copyCache) => throw null; protected virtual System.Threading.Tasks.Task CascadeOnMergeAsync(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null; - protected virtual void CopyValues(NHibernate.Persister.Entity.IEntityPersister persister, object entity, object target, NHibernate.Engine.ISessionImplementor source, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null; protected virtual void CopyValues(NHibernate.Persister.Entity.IEntityPersister persister, object entity, object target, NHibernate.Engine.ISessionImplementor source, System.Collections.IDictionary copyCache) => throw null; + protected virtual void CopyValues(NHibernate.Persister.Entity.IEntityPersister persister, object entity, object target, NHibernate.Engine.ISessionImplementor source, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null; protected virtual System.Threading.Tasks.Task CopyValuesAsync(NHibernate.Persister.Entity.IEntityPersister persister, object entity, object target, NHibernate.Engine.ISessionImplementor source, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual System.Threading.Tasks.Task CopyValuesAsync(NHibernate.Persister.Entity.IEntityPersister persister, object entity, object target, NHibernate.Engine.ISessionImplementor source, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null; public DefaultMergeEventListener() => throw null; @@ -14574,15 +10858,13 @@ namespace NHibernate protected NHibernate.Event.Default.EventCache GetTransientCopyCache(NHibernate.Event.MergeEvent @event, NHibernate.Event.Default.EventCache copyCache) => throw null; protected System.Threading.Tasks.Task GetTransientCopyCacheAsync(NHibernate.Event.MergeEvent @event, NHibernate.Event.Default.EventCache copyCache, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual bool InvokeUpdateLifecycle(object entity, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) => throw null; - public virtual void OnMerge(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready) => throw null; public virtual void OnMerge(NHibernate.Event.MergeEvent @event) => throw null; + public virtual void OnMerge(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready) => throw null; public virtual System.Threading.Tasks.Task OnMergeAsync(NHibernate.Event.MergeEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; public virtual System.Threading.Tasks.Task OnMergeAsync(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null; protected void RetryMergeTransientEntities(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary transientCopyCache, NHibernate.Event.Default.EventCache copyCache) => throw null; protected System.Threading.Tasks.Task RetryMergeTransientEntitiesAsync(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary transientCopyCache, NHibernate.Event.Default.EventCache copyCache, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultPersistEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultPersistEventListener : NHibernate.Event.Default.AbstractSaveEventListener, NHibernate.Event.IPersistEventListener { protected override bool? AssumedUnsaved { get => throw null; } @@ -14592,45 +10874,35 @@ namespace NHibernate protected virtual System.Threading.Tasks.Task EntityIsPersistentAsync(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createCache, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual void EntityIsTransient(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createCache) => throw null; protected virtual System.Threading.Tasks.Task EntityIsTransientAsync(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createCache, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual void OnPersist(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready) => throw null; public virtual void OnPersist(NHibernate.Event.PersistEvent @event) => throw null; + public virtual void OnPersist(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready) => throw null; public virtual System.Threading.Tasks.Task OnPersistAsync(NHibernate.Event.PersistEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; public virtual System.Threading.Tasks.Task OnPersistAsync(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultPersistOnFlushEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultPersistOnFlushEventListener : NHibernate.Event.Default.DefaultPersistEventListener { protected override NHibernate.Engine.CascadingAction CascadeAction { get => throw null; } public DefaultPersistOnFlushEventListener() => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultPostLoadEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultPostLoadEventListener : NHibernate.Event.IPostLoadEventListener { public DefaultPostLoadEventListener() => throw null; public virtual void OnPostLoad(NHibernate.Event.PostLoadEvent @event) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultPreLoadEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultPreLoadEventListener : NHibernate.Event.IPreLoadEventListener { public DefaultPreLoadEventListener() => throw null; public virtual void OnPreLoad(NHibernate.Event.PreLoadEvent @event) => throw null; public virtual System.Threading.Tasks.Task OnPreLoadAsync(NHibernate.Event.PreLoadEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultRefreshEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultRefreshEventListener : NHibernate.Event.IRefreshEventListener { public DefaultRefreshEventListener() => throw null; - public virtual void OnRefresh(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready) => throw null; public virtual void OnRefresh(NHibernate.Event.RefreshEvent @event) => throw null; + public virtual void OnRefresh(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready) => throw null; public virtual System.Threading.Tasks.Task OnRefreshAsync(NHibernate.Event.RefreshEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; public virtual System.Threading.Tasks.Task OnRefreshAsync(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultReplicateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultReplicateEventListener : NHibernate.Event.Default.AbstractSaveEventListener, NHibernate.Event.IReplicateEventListener { protected override NHibernate.Engine.CascadingAction CascadeAction { get => throw null; } @@ -14643,8 +10915,6 @@ namespace NHibernate protected override bool VisitCollectionsBeforeSave(object entity, object id, object[] values, NHibernate.Type.IType[] types, NHibernate.Event.IEventSource source) => throw null; protected override System.Threading.Tasks.Task VisitCollectionsBeforeSaveAsync(object entity, object id, object[] values, NHibernate.Type.IType[] types, NHibernate.Event.IEventSource source, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultSaveEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultSaveEventListener : NHibernate.Event.Default.DefaultSaveOrUpdateEventListener { public DefaultSaveEventListener() => throw null; @@ -14652,8 +10922,6 @@ namespace NHibernate protected override System.Threading.Tasks.Task PerformSaveOrUpdateAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; protected override bool ReassociateIfUninitializedProxy(object obj, NHibernate.Engine.ISessionImplementor source) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultSaveOrUpdateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultSaveOrUpdateEventListener : NHibernate.Event.Default.AbstractSaveEventListener, NHibernate.Event.ISaveOrUpdateEventListener { protected override NHibernate.Engine.CascadingAction CascadeAction { get => throw null; } @@ -14675,8 +10943,6 @@ namespace NHibernate protected virtual object SaveWithGeneratedOrRequestedId(NHibernate.Event.SaveOrUpdateEvent @event) => throw null; protected virtual System.Threading.Tasks.Task SaveWithGeneratedOrRequestedIdAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DefaultUpdateEventListener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultUpdateEventListener : NHibernate.Event.Default.DefaultSaveOrUpdateEventListener { public DefaultUpdateEventListener() => throw null; @@ -14686,26 +10952,20 @@ namespace NHibernate protected override object SaveWithGeneratedOrRequestedId(NHibernate.Event.SaveOrUpdateEvent @event) => throw null; protected override System.Threading.Tasks.Task SaveWithGeneratedOrRequestedIdAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Event.Default.DirtyCollectionSearchVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DirtyCollectionSearchVisitor : NHibernate.Event.Default.AbstractVisitor { public DirtyCollectionSearchVisitor(NHibernate.Event.IEventSource session, bool[] propertyVersionability) : base(default(NHibernate.Event.IEventSource)) => throw null; public bool WasDirtyCollectionFound { get => throw null; } } - - // Generated from `NHibernate.Event.Default.EntityState` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum EntityState { - Deleted, - Detached, - Persistent, - Transient, - Undefined, + Undefined = -1, + Persistent = 0, + Transient = 1, + Detached = 2, + Deleted = 3, } - - // Generated from `NHibernate.Event.Default.EventCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EventCache : System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.ICollection + public class EventCache : System.Collections.IDictionary, System.Collections.ICollection, System.Collections.IEnumerable { public void Add(object key, object value) => throw null; public void Add(object entity, object copy, bool isOperatedOn) => throw null; @@ -14714,125 +10974,566 @@ namespace NHibernate public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public EventCache() => throw null; - public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; public System.Collections.IDictionary InvertMap() => throw null; public bool IsFixedSize { get => throw null; } public bool IsOperatedOn(object entity) => throw null; public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public object this[object key] { get => throw null; set => throw null; } public System.Collections.ICollection Keys { get => throw null; } public void Remove(object key) => throw null; public void SetOperatedOn(object entity, bool isOperatedOn) => throw null; public object SyncRoot { get => throw null; } + public object this[object key] { get => throw null; set { } } public System.Collections.ICollection Values { get => throw null; } } - - // Generated from `NHibernate.Event.Default.EvictVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EvictVisitor : NHibernate.Event.Default.AbstractVisitor { - public virtual void EvictCollection(object value, NHibernate.Type.CollectionType type) => throw null; public EvictVisitor(NHibernate.Event.IEventSource session) : base(default(NHibernate.Event.IEventSource)) => throw null; + public virtual void EvictCollection(object value, NHibernate.Type.CollectionType type) => throw null; } - - // Generated from `NHibernate.Event.Default.FlushVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FlushVisitor : NHibernate.Event.Default.AbstractVisitor { public FlushVisitor(NHibernate.Event.IEventSource session, object owner) : base(default(NHibernate.Event.IEventSource)) => throw null; } - - // Generated from `NHibernate.Event.Default.OnLockVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OnLockVisitor : NHibernate.Event.Default.ReattachVisitor { public OnLockVisitor(NHibernate.Event.IEventSource session, object ownerIdentifier, object owner) : base(default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; } - - // Generated from `NHibernate.Event.Default.OnReplicateVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OnReplicateVisitor : NHibernate.Event.Default.ReattachVisitor { public OnReplicateVisitor(NHibernate.Event.IEventSource session, object ownerIdentifier, object owner, bool isUpdate) : base(default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; } - - // Generated from `NHibernate.Event.Default.OnUpdateVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OnUpdateVisitor : NHibernate.Event.Default.ReattachVisitor { public OnUpdateVisitor(NHibernate.Event.IEventSource session, object ownerIdentifier, object owner) : base(default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; } - - // Generated from `NHibernate.Event.Default.ProxyVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class ProxyVisitor : NHibernate.Event.Default.AbstractVisitor { - protected internal static bool IsOwnerUnchanged(NHibernate.Collection.IPersistentCollection snapshot, NHibernate.Persister.Collection.ICollectionPersister persister, object id) => throw null; public ProxyVisitor(NHibernate.Event.IEventSource session) : base(default(NHibernate.Event.IEventSource)) => throw null; - protected internal void ReattachCollection(NHibernate.Collection.IPersistentCollection collection, NHibernate.Type.CollectionType type) => throw null; + protected static bool IsOwnerUnchanged(NHibernate.Collection.IPersistentCollection snapshot, NHibernate.Persister.Collection.ICollectionPersister persister, object id) => throw null; + protected void ReattachCollection(NHibernate.Collection.IPersistentCollection collection, NHibernate.Type.CollectionType type) => throw null; } - - // Generated from `NHibernate.Event.Default.ReattachVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class ReattachVisitor : NHibernate.Event.Default.ProxyVisitor { + protected ReattachVisitor(NHibernate.Event.IEventSource session, object ownerIdentifier, object owner) : base(default(NHibernate.Event.IEventSource)) => throw null; public object Owner { get => throw null; } public object OwnerIdentifier { get => throw null; } - protected ReattachVisitor(NHibernate.Event.IEventSource session, object ownerIdentifier, object owner) : base(default(NHibernate.Event.IEventSource)) => throw null; } - - // Generated from `NHibernate.Event.Default.WrapVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class WrapVisitor : NHibernate.Event.Default.ProxyVisitor { public WrapVisitor(NHibernate.Event.IEventSource session) : base(default(NHibernate.Event.IEventSource)) => throw null; } - + } + public class DeleteEvent : NHibernate.Event.AbstractEvent + { + public bool CascadeDeleteEnabled { get => throw null; } + public DeleteEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public DeleteEvent(string entityName, object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public DeleteEvent(string entityName, object entity, bool isCascadeDeleteEnabled, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object Entity { get => throw null; } + public string EntityName { get => throw null; } + } + public class DirtyCheckEvent : NHibernate.Event.FlushEvent + { + public DirtyCheckEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public bool Dirty { get => throw null; set { } } + } + public class EventListeners + { + public NHibernate.Event.IAutoFlushEventListener[] AutoFlushEventListeners { get => throw null; set { } } + public EventListeners() => throw null; + public NHibernate.Event.IDeleteEventListener[] DeleteEventListeners { get => throw null; set { } } + public void DestroyListeners() => throw null; + public NHibernate.Event.IDirtyCheckEventListener[] DirtyCheckEventListeners { get => throw null; set { } } + public NHibernate.Event.IEvictEventListener[] EvictEventListeners { get => throw null; set { } } + public NHibernate.Event.IFlushEntityEventListener[] FlushEntityEventListeners { get => throw null; set { } } + public NHibernate.Event.IFlushEventListener[] FlushEventListeners { get => throw null; set { } } + public System.Type GetListenerClassFor(NHibernate.Event.ListenerType type) => throw null; + public NHibernate.Event.IInitializeCollectionEventListener[] InitializeCollectionEventListeners { get => throw null; set { } } + public virtual void InitializeListeners(NHibernate.Cfg.Configuration cfg) => throw null; + public NHibernate.Event.ILoadEventListener[] LoadEventListeners { get => throw null; set { } } + public NHibernate.Event.ILockEventListener[] LockEventListeners { get => throw null; set { } } + public NHibernate.Event.IMergeEventListener[] MergeEventListeners { get => throw null; set { } } + public NHibernate.Event.IPersistEventListener[] PersistEventListeners { get => throw null; set { } } + public NHibernate.Event.IPersistEventListener[] PersistOnFlushEventListeners { get => throw null; set { } } + public NHibernate.Event.IPostCollectionRecreateEventListener[] PostCollectionRecreateEventListeners { get => throw null; set { } } + public NHibernate.Event.IPostCollectionRemoveEventListener[] PostCollectionRemoveEventListeners { get => throw null; set { } } + public NHibernate.Event.IPostCollectionUpdateEventListener[] PostCollectionUpdateEventListeners { get => throw null; set { } } + public NHibernate.Event.IPostDeleteEventListener[] PostCommitDeleteEventListeners { get => throw null; set { } } + public NHibernate.Event.IPostInsertEventListener[] PostCommitInsertEventListeners { get => throw null; set { } } + public NHibernate.Event.IPostUpdateEventListener[] PostCommitUpdateEventListeners { get => throw null; set { } } + public NHibernate.Event.IPostDeleteEventListener[] PostDeleteEventListeners { get => throw null; set { } } + public NHibernate.Event.IPostInsertEventListener[] PostInsertEventListeners { get => throw null; set { } } + public NHibernate.Event.IPostLoadEventListener[] PostLoadEventListeners { get => throw null; set { } } + public NHibernate.Event.IPostUpdateEventListener[] PostUpdateEventListeners { get => throw null; set { } } + public NHibernate.Event.IPreCollectionRecreateEventListener[] PreCollectionRecreateEventListeners { get => throw null; set { } } + public NHibernate.Event.IPreCollectionRemoveEventListener[] PreCollectionRemoveEventListeners { get => throw null; set { } } + public NHibernate.Event.IPreCollectionUpdateEventListener[] PreCollectionUpdateEventListeners { get => throw null; set { } } + public NHibernate.Event.IPreDeleteEventListener[] PreDeleteEventListeners { get => throw null; set { } } + public NHibernate.Event.IPreInsertEventListener[] PreInsertEventListeners { get => throw null; set { } } + public NHibernate.Event.IPreLoadEventListener[] PreLoadEventListeners { get => throw null; set { } } + public NHibernate.Event.IPreUpdateEventListener[] PreUpdateEventListeners { get => throw null; set { } } + public NHibernate.Event.IRefreshEventListener[] RefreshEventListeners { get => throw null; set { } } + public NHibernate.Event.IReplicateEventListener[] ReplicateEventListeners { get => throw null; set { } } + public NHibernate.Event.ISaveOrUpdateEventListener[] SaveEventListeners { get => throw null; set { } } + public NHibernate.Event.ISaveOrUpdateEventListener[] SaveOrUpdateEventListeners { get => throw null; set { } } + public NHibernate.Event.EventListeners ShallowCopy() => throw null; + public NHibernate.Event.ISaveOrUpdateEventListener[] UpdateEventListeners { get => throw null; set { } } + } + public class EvictEvent : NHibernate.Event.AbstractEvent + { + public EvictEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object Entity { get => throw null; set { } } + } + public class FlushEntityEvent : NHibernate.Event.AbstractEvent + { + public FlushEntityEvent(NHibernate.Event.IEventSource source, object entity, NHibernate.Engine.EntityEntry entry) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object[] DatabaseSnapshot { get => throw null; set { } } + public bool DirtyCheckHandledByInterceptor { get => throw null; set { } } + public bool DirtyCheckPossible { get => throw null; set { } } + public int[] DirtyProperties { get => throw null; set { } } + public object Entity { get => throw null; } + public NHibernate.Engine.EntityEntry EntityEntry { get => throw null; } + public bool HasDatabaseSnapshot { get => throw null; } + public bool HasDirtyCollection { get => throw null; set { } } + public object[] PropertyValues { get => throw null; set { } } + } + public class FlushEvent : NHibernate.Event.AbstractEvent + { + public FlushEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + } + public interface IAutoFlushEventListener + { + void OnAutoFlush(NHibernate.Event.AutoFlushEvent @event); + System.Threading.Tasks.Task OnAutoFlushAsync(NHibernate.Event.AutoFlushEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IDatabaseEventArgs + { + NHibernate.Event.IEventSource Session { get; } + } + public interface IDeleteEventListener + { + void OnDelete(NHibernate.Event.DeleteEvent @event); + void OnDelete(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet transientEntities); + System.Threading.Tasks.Task OnDeleteAsync(NHibernate.Event.DeleteEvent @event, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task OnDeleteAsync(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet transientEntities, System.Threading.CancellationToken cancellationToken); + } + public interface IDestructible + { + void Cleanup(); + } + public interface IDirtyCheckEventListener + { + void OnDirtyCheck(NHibernate.Event.DirtyCheckEvent @event); + System.Threading.Tasks.Task OnDirtyCheckAsync(NHibernate.Event.DirtyCheckEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IEventSource : NHibernate.Engine.ISessionImplementor, NHibernate.ISession, System.IDisposable + { + NHibernate.Engine.ActionQueue ActionQueue { get; } + bool AutoFlushSuspended { get; } + void Delete(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet transientEntities); + System.Threading.Tasks.Task DeleteAsync(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet transientEntities, System.Threading.CancellationToken cancellationToken); + void ForceFlush(NHibernate.Engine.EntityEntry e); + System.Threading.Tasks.Task ForceFlushAsync(NHibernate.Engine.EntityEntry e, System.Threading.CancellationToken cancellationToken); + object Instantiate(NHibernate.Persister.Entity.IEntityPersister persister, object id); + void Merge(string entityName, object obj, System.Collections.IDictionary copiedAlready); + System.Threading.Tasks.Task MergeAsync(string entityName, object obj, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken); + void Persist(string entityName, object obj, System.Collections.IDictionary createdAlready); + System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Collections.IDictionary createdAlready, System.Threading.CancellationToken cancellationToken); + void PersistOnFlush(string entityName, object obj, System.Collections.IDictionary copiedAlready); + System.Threading.Tasks.Task PersistOnFlushAsync(string entityName, object obj, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken); + void Refresh(object obj, System.Collections.IDictionary refreshedAlready); + System.Threading.Tasks.Task RefreshAsync(object obj, System.Collections.IDictionary refreshedAlready, System.Threading.CancellationToken cancellationToken); + System.IDisposable SuspendAutoFlush(); + } + public interface IEvictEventListener + { + void OnEvict(NHibernate.Event.EvictEvent @event); + System.Threading.Tasks.Task OnEvictAsync(NHibernate.Event.EvictEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IFlushEntityEventListener + { + void OnFlushEntity(NHibernate.Event.FlushEntityEvent @event); + System.Threading.Tasks.Task OnFlushEntityAsync(NHibernate.Event.FlushEntityEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IFlushEventListener + { + void OnFlush(NHibernate.Event.FlushEvent @event); + System.Threading.Tasks.Task OnFlushAsync(NHibernate.Event.FlushEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IInitializable + { + void Initialize(NHibernate.Cfg.Configuration cfg); + } + public interface IInitializeCollectionEventListener + { + void OnInitializeCollection(NHibernate.Event.InitializeCollectionEvent @event); + System.Threading.Tasks.Task OnInitializeCollectionAsync(NHibernate.Event.InitializeCollectionEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface ILoadEventListener + { + void OnLoad(NHibernate.Event.LoadEvent @event, NHibernate.Event.LoadType loadType); + System.Threading.Tasks.Task OnLoadAsync(NHibernate.Event.LoadEvent @event, NHibernate.Event.LoadType loadType, System.Threading.CancellationToken cancellationToken); + } + public interface ILockEventListener + { + void OnLock(NHibernate.Event.LockEvent @event); + System.Threading.Tasks.Task OnLockAsync(NHibernate.Event.LockEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IMergeEventListener + { + void OnMerge(NHibernate.Event.MergeEvent @event); + void OnMerge(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready); + System.Threading.Tasks.Task OnMergeAsync(NHibernate.Event.MergeEvent @event, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task OnMergeAsync(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken); + } + public class InitializeCollectionEvent : NHibernate.Event.AbstractCollectionEvent + { + public InitializeCollectionEvent(NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; + } + public interface IPersistEventListener + { + void OnPersist(NHibernate.Event.PersistEvent @event); + void OnPersist(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready); + System.Threading.Tasks.Task OnPersistAsync(NHibernate.Event.PersistEvent @event, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task OnPersistAsync(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready, System.Threading.CancellationToken cancellationToken); + } + public interface IPostCollectionRecreateEventListener + { + void OnPostRecreateCollection(NHibernate.Event.PostCollectionRecreateEvent @event); + System.Threading.Tasks.Task OnPostRecreateCollectionAsync(NHibernate.Event.PostCollectionRecreateEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPostCollectionRemoveEventListener + { + void OnPostRemoveCollection(NHibernate.Event.PostCollectionRemoveEvent @event); + System.Threading.Tasks.Task OnPostRemoveCollectionAsync(NHibernate.Event.PostCollectionRemoveEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPostCollectionUpdateEventListener + { + void OnPostUpdateCollection(NHibernate.Event.PostCollectionUpdateEvent @event); + System.Threading.Tasks.Task OnPostUpdateCollectionAsync(NHibernate.Event.PostCollectionUpdateEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPostDatabaseOperationEventArgs : NHibernate.Event.IDatabaseEventArgs + { + object Entity { get; } + object Id { get; } + NHibernate.Persister.Entity.IEntityPersister Persister { get; } + } + public interface IPostDeleteEventListener + { + void OnPostDelete(NHibernate.Event.PostDeleteEvent @event); + System.Threading.Tasks.Task OnPostDeleteAsync(NHibernate.Event.PostDeleteEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPostInsertEventListener + { + void OnPostInsert(NHibernate.Event.PostInsertEvent @event); + System.Threading.Tasks.Task OnPostInsertAsync(NHibernate.Event.PostInsertEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPostLoadEventListener + { + void OnPostLoad(NHibernate.Event.PostLoadEvent @event); + } + public interface IPostUpdateEventListener + { + void OnPostUpdate(NHibernate.Event.PostUpdateEvent @event); + System.Threading.Tasks.Task OnPostUpdateAsync(NHibernate.Event.PostUpdateEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPreCollectionRecreateEventListener + { + void OnPreRecreateCollection(NHibernate.Event.PreCollectionRecreateEvent @event); + System.Threading.Tasks.Task OnPreRecreateCollectionAsync(NHibernate.Event.PreCollectionRecreateEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPreCollectionRemoveEventListener + { + void OnPreRemoveCollection(NHibernate.Event.PreCollectionRemoveEvent @event); + System.Threading.Tasks.Task OnPreRemoveCollectionAsync(NHibernate.Event.PreCollectionRemoveEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPreCollectionUpdateEventListener + { + void OnPreUpdateCollection(NHibernate.Event.PreCollectionUpdateEvent @event); + System.Threading.Tasks.Task OnPreUpdateCollectionAsync(NHibernate.Event.PreCollectionUpdateEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPreDatabaseOperationEventArgs : NHibernate.Event.IDatabaseEventArgs + { + object Entity { get; } + object Id { get; } + NHibernate.Persister.Entity.IEntityPersister Persister { get; } + } + public interface IPreDeleteEventListener + { + bool OnPreDelete(NHibernate.Event.PreDeleteEvent @event); + System.Threading.Tasks.Task OnPreDeleteAsync(NHibernate.Event.PreDeleteEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPreInsertEventListener + { + bool OnPreInsert(NHibernate.Event.PreInsertEvent @event); + System.Threading.Tasks.Task OnPreInsertAsync(NHibernate.Event.PreInsertEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPreLoadEventListener + { + void OnPreLoad(NHibernate.Event.PreLoadEvent @event); + System.Threading.Tasks.Task OnPreLoadAsync(NHibernate.Event.PreLoadEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IPreUpdateEventListener + { + bool OnPreUpdate(NHibernate.Event.PreUpdateEvent @event); + System.Threading.Tasks.Task OnPreUpdateAsync(NHibernate.Event.PreUpdateEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface IRefreshEventListener + { + void OnRefresh(NHibernate.Event.RefreshEvent @event); + void OnRefresh(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready); + System.Threading.Tasks.Task OnRefreshAsync(NHibernate.Event.RefreshEvent @event, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task OnRefreshAsync(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready, System.Threading.CancellationToken cancellationToken); + } + public interface IReplicateEventListener + { + void OnReplicate(NHibernate.Event.ReplicateEvent @event); + System.Threading.Tasks.Task OnReplicateAsync(NHibernate.Event.ReplicateEvent @event, System.Threading.CancellationToken cancellationToken); + } + public interface ISaveOrUpdateEventListener + { + void OnSaveOrUpdate(NHibernate.Event.SaveOrUpdateEvent @event); + System.Threading.Tasks.Task OnSaveOrUpdateAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken); + } + public enum ListenerType + { + NotValidType = 0, + Autoflush = 1, + Merge = 2, + Create = 3, + CreateOnFlush = 4, + Delete = 5, + DirtyCheck = 6, + Evict = 7, + Flush = 8, + FlushEntity = 9, + Load = 10, + LoadCollection = 11, + Lock = 12, + Refresh = 13, + Replicate = 14, + SaveUpdate = 15, + Save = 16, + PreUpdate = 17, + Update = 18, + PreLoad = 19, + PreDelete = 20, + PreInsert = 21, + PreCollectionRecreate = 22, + PreCollectionRemove = 23, + PreCollectionUpdate = 24, + PostLoad = 25, + PostInsert = 26, + PostUpdate = 27, + PostDelete = 28, + PostCommitUpdate = 29, + PostCommitInsert = 30, + PostCommitDelete = 31, + PostCollectionRecreate = 32, + PostCollectionRemove = 33, + PostCollectionUpdate = 34, + } + public class LoadEvent : NHibernate.Event.AbstractEvent + { + public LoadEvent(object entityId, object instanceToLoad, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public LoadEvent(object entityId, string entityClassName, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public LoadEvent(object entityId, string entityClassName, bool isAssociationFetch, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public static NHibernate.LockMode DefaultLockMode; + public string EntityClassName { get => throw null; set { } } + public object EntityId { get => throw null; set { } } + public object InstanceToLoad { get => throw null; set { } } + public bool IsAssociationFetch { get => throw null; } + public NHibernate.LockMode LockMode { get => throw null; set { } } + public object Result { get => throw null; set { } } + } + public static class LoadEventListener + { + public static NHibernate.Event.LoadType Get; + public static NHibernate.Event.LoadType ImmediateLoad; + public static NHibernate.Event.LoadType InternalLoadEager; + public static NHibernate.Event.LoadType InternalLoadLazy; + public static NHibernate.Event.LoadType InternalLoadNullable; + public static NHibernate.Event.LoadType Load; + public static NHibernate.Event.LoadType Reload; + } + public sealed class LoadType + { + public bool ExactPersister { get => throw null; } + public bool IsAllowNulls { get => throw null; } + public bool IsAllowProxyCreation { get => throw null; } + public bool IsCheckDeleted { get => throw null; } + public bool IsNakedEntityReturned { get => throw null; } + public string Name { get => throw null; } + public override string ToString() => throw null; + } + public class LockEvent : NHibernate.Event.AbstractEvent + { + public LockEvent(object entity, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public LockEvent(string entityName, object original, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object Entity { get => throw null; set { } } + public string EntityName { get => throw null; set { } } + public NHibernate.LockMode LockMode { get => throw null; set { } } + } + public class MergeEvent : NHibernate.Event.AbstractEvent + { + public MergeEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public MergeEvent(string entityName, object original, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public MergeEvent(string entityName, object original, object id, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object Entity { get => throw null; set { } } + public string EntityName { get => throw null; set { } } + public object Original { get => throw null; set { } } + public object RequestedId { get => throw null; set { } } + public object Result { get => throw null; set { } } + } + public class PersistEvent : NHibernate.Event.AbstractEvent + { + public PersistEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public PersistEvent(string entityName, object original, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object Entity { get => throw null; set { } } + public string EntityName { get => throw null; set { } } + } + public class PostCollectionRecreateEvent : NHibernate.Event.AbstractCollectionEvent + { + public PostCollectionRecreateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; + } + public class PostCollectionRemoveEvent : NHibernate.Event.AbstractCollectionEvent + { + public PostCollectionRemoveEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source, object loadedOwner) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; + } + public class PostCollectionUpdateEvent : NHibernate.Event.AbstractCollectionEvent + { + public PostCollectionUpdateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; + } + public class PostDeleteEvent : NHibernate.Event.AbstractPostDatabaseOperationEvent + { + public PostDeleteEvent(object entity, object id, object[] deletedState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; + public object[] DeletedState { get => throw null; } + } + public class PostInsertEvent : NHibernate.Event.AbstractPostDatabaseOperationEvent + { + public PostInsertEvent(object entity, object id, object[] state, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; + public object[] State { get => throw null; } + } + public class PostLoadEvent : NHibernate.Event.AbstractEvent, NHibernate.Event.IPostDatabaseOperationEventArgs, NHibernate.Event.IDatabaseEventArgs + { + public PostLoadEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object Entity { get => throw null; set { } } + public object Id { get => throw null; set { } } + public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; set { } } + } + public class PostUpdateEvent : NHibernate.Event.AbstractPostDatabaseOperationEvent + { + public PostUpdateEvent(object entity, object id, object[] state, object[] oldState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; + public object[] OldState { get => throw null; } + public object[] State { get => throw null; } + } + public class PreCollectionRecreateEvent : NHibernate.Event.AbstractCollectionEvent + { + public PreCollectionRecreateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; + } + public class PreCollectionRemoveEvent : NHibernate.Event.AbstractCollectionEvent + { + public PreCollectionRemoveEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source, object loadedOwner) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; + } + public class PreCollectionUpdateEvent : NHibernate.Event.AbstractCollectionEvent + { + public PreCollectionUpdateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null; + } + public class PreDeleteEvent : NHibernate.Event.AbstractPreDatabaseOperationEvent + { + public PreDeleteEvent(object entity, object id, object[] deletedState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; + public object[] DeletedState { get => throw null; } + } + public class PreInsertEvent : NHibernate.Event.AbstractPreDatabaseOperationEvent + { + public PreInsertEvent(object entity, object id, object[] state, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; + public object[] State { get => throw null; } + } + public class PreLoadEvent : NHibernate.Event.AbstractEvent, NHibernate.Event.IPreDatabaseOperationEventArgs, NHibernate.Event.IDatabaseEventArgs + { + public PreLoadEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object Entity { get => throw null; set { } } + public object Id { get => throw null; set { } } + public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; set { } } + public object[] State { get => throw null; set { } } + } + public class PreUpdateEvent : NHibernate.Event.AbstractPreDatabaseOperationEvent + { + public PreUpdateEvent(object entity, object id, object[] state, object[] oldState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; + public object[] OldState { get => throw null; } + public object[] State { get => throw null; } + } + public class RefreshEvent : NHibernate.Event.AbstractEvent + { + public RefreshEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public RefreshEvent(object entity, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object Entity { get => throw null; } + public NHibernate.LockMode LockMode { get => throw null; } + } + public class ReplicateEvent : NHibernate.Event.AbstractEvent + { + public ReplicateEvent(object entity, NHibernate.ReplicationMode replicationMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public ReplicateEvent(string entityName, object entity, NHibernate.ReplicationMode replicationMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object Entity { get => throw null; set { } } + public string EntityName { get => throw null; set { } } + public NHibernate.ReplicationMode ReplicationMode { get => throw null; set { } } + } + public class SaveOrUpdateEvent : NHibernate.Event.AbstractEvent + { + public SaveOrUpdateEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public SaveOrUpdateEvent(string entityName, object original, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public SaveOrUpdateEvent(string entityName, object original, object id, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null; + public object Entity { get => throw null; set { } } + public string EntityName { get => throw null; set { } } + public NHibernate.Engine.EntityEntry Entry { get => throw null; set { } } + public object RequestedId { get => throw null; set { } } + public object ResultEntity { get => throw null; set { } } + public object ResultId { get => throw null; set { } } } } namespace Exceptions { - // Generated from `NHibernate.Exceptions.ADOConnectionException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ADOConnectionException : NHibernate.ADOException { + public ADOConnectionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public ADOConnectionException(string message, System.Exception innerException, string sql) => throw null; public ADOConnectionException(string message, System.Exception innerException) => throw null; - public ADOConnectionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Exceptions.ADOExceptionHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ADOExceptionHelper - { - public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, System.Exception sqle, string message, NHibernate.SqlCommand.SqlString sql, object[] parameterValues, System.Collections.Generic.IDictionary namedParameters) => throw null; - public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, System.Exception sqlException, string message, NHibernate.SqlCommand.SqlString sql) => throw null; - public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, System.Exception sqlException, string message) => throw null; - public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, NHibernate.Exceptions.AdoExceptionContextInfo exceptionContextInfo) => throw null; - public static string ExtendMessage(string message, string sql, object[] parameterValues, System.Collections.Generic.IDictionary namedParameters) => throw null; - public static System.Data.Common.DbException ExtractDbException(System.Exception sqlException) => throw null; - public const string SQLNotAvailable = default; - public static string TryGetActualSqlQuery(System.Exception sqle, string sql) => throw null; - public static NHibernate.SqlCommand.SqlString TryGetActualSqlQuery(System.Exception sqle, NHibernate.SqlCommand.SqlString sql) => throw null; - } - - // Generated from `NHibernate.Exceptions.AdoExceptionContextInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AdoExceptionContextInfo { public AdoExceptionContextInfo() => throw null; - public object EntityId { get => throw null; set => throw null; } - public string EntityName { get => throw null; set => throw null; } - public string Message { get => throw null; set => throw null; } - public string Sql { get => throw null; set => throw null; } - public System.Exception SqlException { get => throw null; set => throw null; } + public object EntityId { get => throw null; set { } } + public string EntityName { get => throw null; set { } } + public string Message { get => throw null; set { } } + public string Sql { get => throw null; set { } } + public System.Exception SqlException { get => throw null; set { } } + } + public static class ADOExceptionHelper + { + public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, NHibernate.Exceptions.AdoExceptionContextInfo exceptionContextInfo) => throw null; + public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, System.Exception sqlException, string message, NHibernate.SqlCommand.SqlString sql) => throw null; + public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, System.Exception sqlException, string message) => throw null; + public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, System.Exception sqle, string message, NHibernate.SqlCommand.SqlString sql, object[] parameterValues, System.Collections.Generic.IDictionary namedParameters) => throw null; + public static string ExtendMessage(string message, string sql, object[] parameterValues, System.Collections.Generic.IDictionary namedParameters) => throw null; + public static System.Data.Common.DbException ExtractDbException(System.Exception sqlException) => throw null; + public static string SQLNotAvailable; + public static NHibernate.SqlCommand.SqlString TryGetActualSqlQuery(System.Exception sqle, NHibernate.SqlCommand.SqlString sql) => throw null; + public static string TryGetActualSqlQuery(System.Exception sqle, string sql) => throw null; } - - // Generated from `NHibernate.Exceptions.AggregateHibernateException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AggregateHibernateException : NHibernate.HibernateException { - public AggregateHibernateException(string message, params System.Exception[] innerExceptions) => throw null; - public AggregateHibernateException(string message, System.Collections.Generic.IEnumerable innerExceptions) => throw null; - public AggregateHibernateException(params System.Exception[] innerExceptions) => throw null; public AggregateHibernateException(System.Collections.Generic.IEnumerable innerExceptions) => throw null; + public AggregateHibernateException(params System.Exception[] innerExceptions) => throw null; + public AggregateHibernateException(string message, System.Collections.Generic.IEnumerable innerExceptions) => throw null; + public AggregateHibernateException(string message, params System.Exception[] innerExceptions) => throw null; protected AggregateHibernateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public System.Collections.ObjectModel.ReadOnlyCollection InnerExceptions { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.Exceptions.ConstraintViolationException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ConstraintViolationException : NHibernate.ADOException { public string ConstraintName { get => throw null; } @@ -14841,795 +11542,2214 @@ namespace NHibernate public ConstraintViolationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Exceptions.DataException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DataException : NHibernate.ADOException { + public DataException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public DataException(string message, System.Exception innerException, string sql) => throw null; public DataException(string message, System.Exception innerException) => throw null; - public DataException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Exceptions.GenericADOException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericADOException : NHibernate.ADOException { + public GenericADOException() => throw null; + public GenericADOException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public GenericADOException(string message, System.Exception innerException, string sql) => throw null; public GenericADOException(string message, System.Exception innerException) => throw null; - public GenericADOException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public GenericADOException() => throw null; } - - // Generated from `NHibernate.Exceptions.IConfigurable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IConfigurable { void Configure(System.Collections.Generic.IDictionary properties); } - - // Generated from `NHibernate.Exceptions.ISQLExceptionConverter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISQLExceptionConverter { System.Exception Convert(NHibernate.Exceptions.AdoExceptionContextInfo adoExceptionContextInfo); } - - // Generated from `NHibernate.Exceptions.IViolatedConstraintNameExtracter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IViolatedConstraintNameExtracter { string ExtractConstraintName(System.Data.Common.DbException sqle); } - - // Generated from `NHibernate.Exceptions.LockAcquisitionException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class LockAcquisitionException : NHibernate.ADOException { + public LockAcquisitionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public LockAcquisitionException(string message, System.Exception innerException, string sql) => throw null; public LockAcquisitionException(string message, System.Exception innerException) => throw null; - public LockAcquisitionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Exceptions.NoOpViolatedConstraintNameExtracter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NoOpViolatedConstraintNameExtracter : NHibernate.Exceptions.IViolatedConstraintNameExtracter { - public virtual string ExtractConstraintName(System.Data.Common.DbException sqle) => throw null; public NoOpViolatedConstraintNameExtracter() => throw null; + public virtual string ExtractConstraintName(System.Data.Common.DbException sqle) => throw null; } - - // Generated from `NHibernate.Exceptions.SQLExceptionConverterFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class SQLExceptionConverterFactory { public static NHibernate.Exceptions.ISQLExceptionConverter BuildMinimalSQLExceptionConverter() => throw null; public static NHibernate.Exceptions.ISQLExceptionConverter BuildSQLExceptionConverter(NHibernate.Dialect.Dialect dialect, System.Collections.Generic.IDictionary properties) => throw null; } - - // Generated from `NHibernate.Exceptions.SQLGrammarException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SQLGrammarException : NHibernate.ADOException { + public SQLGrammarException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public SQLGrammarException(string message, System.Exception innerException, string sql) => throw null; public SQLGrammarException(string message, System.Exception innerException) => throw null; - public SQLGrammarException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Exceptions.SQLStateConverter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLStateConverter : NHibernate.Exceptions.ISQLExceptionConverter - { - public System.Exception Convert(NHibernate.Exceptions.AdoExceptionContextInfo exceptionInfo) => throw null; - public static NHibernate.ADOException HandledNonSpecificException(System.Exception sqlException, string message, string sql) => throw null; - public SQLStateConverter(NHibernate.Exceptions.IViolatedConstraintNameExtracter extracter) => throw null; - } - - // Generated from `NHibernate.Exceptions.SqlParseException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlParseException : System.Exception { public SqlParseException(string message) => throw null; protected SqlParseException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Exceptions.SqlStateExtracter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class SQLStateConverter : NHibernate.Exceptions.ISQLExceptionConverter + { + public System.Exception Convert(NHibernate.Exceptions.AdoExceptionContextInfo exceptionInfo) => throw null; + public SQLStateConverter(NHibernate.Exceptions.IViolatedConstraintNameExtracter extracter) => throw null; + public static NHibernate.ADOException HandledNonSpecificException(System.Exception sqlException, string message, string sql) => throw null; + } public abstract class SqlStateExtracter { + protected SqlStateExtracter() => throw null; public int ExtractErrorCode(System.Data.Common.DbException sqle) => throw null; public abstract int ExtractSingleErrorCode(System.Data.Common.DbException sqle); public abstract string ExtractSingleSqlState(System.Data.Common.DbException sqle); public string ExtractSqlState(System.Data.Common.DbException sqle) => throw null; - protected SqlStateExtracter() => throw null; } - - // Generated from `NHibernate.Exceptions.TemplatedViolatedConstraintNameExtracter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class TemplatedViolatedConstraintNameExtracter : NHibernate.Exceptions.IViolatedConstraintNameExtracter { + protected TemplatedViolatedConstraintNameExtracter() => throw null; public abstract string ExtractConstraintName(System.Data.Common.DbException sqle); protected string ExtractUsingTemplate(string templateStart, string templateEnd, string message) => throw null; - protected TemplatedViolatedConstraintNameExtracter() => throw null; } - + } + public enum FetchMode + { + Default = 0, + Select = 1, + Join = 2, + Lazy = 1, + Eager = 2, + } + public class FKUnmatchingColumnsException : NHibernate.MappingException + { + public FKUnmatchingColumnsException(string message) : base(default(string)) => throw null; + public FKUnmatchingColumnsException(string message, System.Exception innerException) : base(default(string)) => throw null; + protected FKUnmatchingColumnsException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; + } + public enum FlushMode + { + Unspecified = -1, + Manual = 0, + Never = 0, + Commit = 5, + Auto = 10, + Always = 20, + } + public class HibernateException : System.Exception + { + public HibernateException() => throw null; + public HibernateException(string message) => throw null; + public HibernateException(System.Exception innerException) => throw null; + public HibernateException(string message, System.Exception innerException) => throw null; + protected HibernateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } namespace Hql { - // Generated from `NHibernate.Hql.CollectionSubqueryFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionSubqueryFactory - { - public CollectionSubqueryFactory() => throw null; - public static string CreateCollectionSubquery(NHibernate.Engine.JoinSequence joinSequence, System.Collections.Generic.IDictionary enabledFilters, string[] columns) => throw null; - } - - // Generated from `NHibernate.Hql.HolderInstantiator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HolderInstantiator - { - public static NHibernate.Hql.HolderInstantiator CreateClassicHolderInstantiator(System.Reflection.ConstructorInfo constructor, NHibernate.Transform.IResultTransformer transformer) => throw null; - public static NHibernate.Transform.IResultTransformer CreateSelectNewTransformer(System.Reflection.ConstructorInfo constructor, bool returnMaps, bool returnLists) => throw null; - public static NHibernate.Hql.HolderInstantiator GetHolderInstantiator(NHibernate.Transform.IResultTransformer selectNewTransformer, NHibernate.Transform.IResultTransformer customTransformer, string[] queryReturnAliases) => throw null; - public HolderInstantiator(NHibernate.Transform.IResultTransformer transformer, string[] queryReturnAliases) => throw null; - public object Instantiate(object[] row) => throw null; - public bool IsRequired { get => throw null; } - public static NHibernate.Hql.HolderInstantiator NoopInstantiator; - public string[] QueryReturnAliases { get => throw null; } - public static NHibernate.Transform.IResultTransformer ResolveClassicResultTransformer(System.Reflection.ConstructorInfo constructor, NHibernate.Transform.IResultTransformer transformer) => throw null; - public static NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer selectNewTransformer, NHibernate.Transform.IResultTransformer customTransformer) => throw null; - public NHibernate.Transform.IResultTransformer ResultTransformer { get => throw null; } - } - - // Generated from `NHibernate.Hql.IFilterTranslator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IFilterTranslator : NHibernate.Hql.IQueryTranslator - { - void Compile(string collectionRole, System.Collections.Generic.IDictionary replacements, bool shallow); - } - - // Generated from `NHibernate.Hql.IQueryTranslator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryTranslator - { - NHibernate.Type.IType[] ActualReturnTypes { get; } - NHibernate.Engine.Query.ParameterMetadata BuildParameterMetadata(); - System.Collections.Generic.IList CollectSqlStrings { get; } - void Compile(System.Collections.Generic.IDictionary replacements, bool shallow); - bool ContainsCollectionFetches { get; } - System.Collections.Generic.IDictionary EnabledFilters { get; } - int ExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session); - System.Threading.Tasks.Task ExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - string[][] GetColumnNames(); - System.Collections.IEnumerable GetEnumerable(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session); - System.Threading.Tasks.Task GetEnumerableAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken); - bool IsManipulationStatement { get; } - System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters); - System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); - NHibernate.Loader.Loader Loader { get; } - System.Collections.Generic.ISet QuerySpaces { get; } - string QueryString { get; } - string[] ReturnAliases { get; } - NHibernate.Type.IType[] ReturnTypes { get; } - string SQLString { get; } - } - - // Generated from `NHibernate.Hql.IQueryTranslatorFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryTranslatorFactory - { - NHibernate.Hql.IQueryTranslator[] CreateQueryTranslators(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary filters, NHibernate.Engine.ISessionFactoryImplementor factory); - } - - // Generated from `NHibernate.Hql.NameGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NameGenerator - { - public static string[][] GenerateColumnNames(NHibernate.Type.IType[] types, NHibernate.Engine.ISessionFactoryImplementor f) => throw null; - public NameGenerator() => throw null; - public static string ScalarName(int x, int y) => throw null; - } - - // Generated from `NHibernate.Hql.ParserHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ParserHelper - { - public const string EntityClass = default; - public const string HqlSeparators = default; - public const string HqlVariablePrefix = default; - public static bool IsWhitespace(string str) => throw null; - public const string Whitespace = default; - } - - // Generated from `NHibernate.Hql.QueryExecutionRequestException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryExecutionRequestException : NHibernate.QueryException - { - public QueryExecutionRequestException(string message, string queryString) => throw null; - protected QueryExecutionRequestException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.Hql.QuerySplitter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QuerySplitter - { - public static string[] ConcreteQueries(string query, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public QuerySplitter() => throw null; - } - - // Generated from `NHibernate.Hql.StringQueryExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StringQueryExpression : NHibernate.IQueryExpression - { - public string Key { get => throw null; } - public System.Collections.Generic.IList ParameterDescriptors { get => throw null; set => throw null; } - public StringQueryExpression(string queryString) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Translate(NHibernate.Engine.ISessionFactoryImplementor factory, bool filter) => throw null; - public System.Type Type { get => throw null; } - } - namespace Ast { - // Generated from `NHibernate.Hql.Ast.HqlAdd` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace ANTLR + { + public class AstPolymorphicProcessor + { + public static NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] Process(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ast, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + } + public class ASTQueryTranslatorFactory : NHibernate.Hql.IQueryTranslatorFactory + { + public NHibernate.Hql.IQueryTranslator[] CreateQueryTranslators(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary filters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public ASTQueryTranslatorFactory() => throw null; + } + public static class CrossJoinDictionaryArrays + { + public static System.Collections.Generic.IList> PerformCrossJoin(System.Collections.Generic.IEnumerable> input) => throw null; + } + public class DetailedSemanticException : NHibernate.Hql.Ast.ANTLR.SemanticException + { + public DetailedSemanticException(string message) : base(default(string)) => throw null; + public DetailedSemanticException(string message, System.Exception inner) : base(default(string)) => throw null; + protected DetailedSemanticException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; + } + namespace Exec + { + public abstract class AbstractStatementExecutor : NHibernate.Hql.Ast.ANTLR.Exec.IStatementExecutor + { + protected abstract NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get; } + protected virtual void CoordinateSharedCacheCleanup(NHibernate.Engine.ISessionImplementor session) => throw null; + protected virtual System.Threading.Tasks.Task CoordinateSharedCacheCleanupAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected virtual void CreateTemporaryTableIfNecessary(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session) => throw null; + protected virtual System.Threading.Tasks.Task CreateTemporaryTableIfNecessaryAsync(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected AbstractStatementExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement, NHibernate.INHibernateLogger log) => throw null; + protected virtual void DropTemporaryTableIfNecessary(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session) => throw null; + protected virtual System.Threading.Tasks.Task DropTemporaryTableIfNecessaryAsync(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public abstract int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session); + public abstract System.Threading.Tasks.Task ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + protected NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; } + protected NHibernate.SqlCommand.SqlString GenerateIdInsertSelect(NHibernate.Persister.Entity.IQueryable persister, string tableAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode whereClause) => throw null; + protected string GenerateIdSubselect(NHibernate.Persister.Entity.IQueryable persister) => throw null; + protected virtual bool ShouldIsolateTemporaryTableDDL() => throw null; + public abstract NHibernate.SqlCommand.SqlString[] SqlStatements { get; } + protected NHibernate.Hql.Ast.ANTLR.Tree.IStatement Statement { get => throw null; } + protected NHibernate.Hql.Ast.ANTLR.HqlSqlWalker Walker { get => throw null; } + } + public class BasicExecutor : NHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor + { + protected override NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get => throw null; } + public BasicExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement, NHibernate.Persister.Entity.IQueryable persister) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IStatement), default(NHibernate.INHibernateLogger)) => throw null; + public override int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session) => throw null; + public override System.Threading.Tasks.Task ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override NHibernate.SqlCommand.SqlString[] SqlStatements { get => throw null; } + } + public interface IStatementExecutor + { + int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session); + System.Threading.Tasks.Task ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + NHibernate.SqlCommand.SqlString[] SqlStatements { get; } + } + public class MultiTableDeleteExecutor : NHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor + { + protected override NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get => throw null; } + public MultiTableDeleteExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IStatement), default(NHibernate.INHibernateLogger)) => throw null; + public override int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session) => throw null; + public override System.Threading.Tasks.Task ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override NHibernate.SqlCommand.SqlString[] SqlStatements { get => throw null; } + } + public class MultiTableUpdateExecutor : NHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor + { + protected override NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get => throw null; } + public MultiTableUpdateExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IStatement), default(NHibernate.INHibernateLogger)) => throw null; + public override int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session) => throw null; + public override System.Threading.Tasks.Task ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override NHibernate.SqlCommand.SqlString[] SqlStatements { get => throw null; } + } + } + public class HqlLexer : Antlr.Runtime.Lexer + { + public static int AGGREGATE; + public static int ALIAS; + public static int ALL; + public static int AND; + public static int ANY; + public static int AS; + public static int ASCENDING; + public static int AVG; + public static int BAND; + public static int BETWEEN; + public static int BNOT; + public static int BOR; + public static int BOTH; + public static int BXOR; + public static int CASE; + public static int CASE2; + public static int CLASS; + public static int CLOSE; + public static int CLOSE_BRACKET; + public static int COLON; + public static int COMMA; + public static int CONCAT; + public static int CONSTANT; + public static int CONSTRUCTOR; + public static int COUNT; + public static int CROSS; + public HqlLexer() => throw null; + public HqlLexer(Antlr.Runtime.ICharStream input) => throw null; + public HqlLexer(Antlr.Runtime.ICharStream input, Antlr.Runtime.RecognizerSharedState state) => throw null; + public static int DELETE; + public static int DESCENDING; + public static int DISTINCT; + public static int DIV; + public static int DOT; + public static int ELEMENTS; + public static int ELSE; + public override Antlr.Runtime.IToken Emit() => throw null; + public static int EMPTY; + public static int END; + public static int EOF; + public static int EQ; + public static int ESCAPE; + public static int ESCqs; + public static int EXISTS; + public static int EXPONENT; + public static int EXPR_LIST; + public static int FALSE; + public static int FETCH; + public static int FILTER_ENTITY; + public static int FLOAT_SUFFIX; + public static int FROM; + public static int FULL; + public static int GE; + public override string GrammarFileName { get => throw null; } + public static int GROUP; + public static int GT; + public static int HAVING; + public static int HEX_DIGIT; + public static int ID_LETTER; + public static int ID_START_LETTER; + public static int IDENT; + public static int IN; + public static int IN_LIST; + public static int INDEX_OP; + public static int INDICES; + protected override void InitDFAs() => throw null; + public static int INNER; + public static int INSERT; + public static int INTO; + public static int IS; + public static int IS_NOT_NULL; + public static int IS_NULL; + public static int JAVA_CONSTANT; + public static int JOIN; + public static int LE; + public static int LEADING; + public static int LEFT; + public static int LIKE; + public static int LITERAL_by; + public static int LT; + public static int MAX; + public static int MEMBER; + public static int METHOD_CALL; + public static int MIN; + public static int MINUS; + public override void mTokens() => throw null; + public static int NE; + public static int NEW; + public static int NOT; + public static int NOT_BETWEEN; + public static int NOT_IN; + public static int NOT_LIKE; + public static int NULL; + public static int NUM_DECIMAL; + public static int NUM_DOUBLE; + public static int NUM_FLOAT; + public static int NUM_INT; + public static int NUM_LONG; + public static int OBJECT; + public static int OF; + public static int ON; + public static int OPEN; + public static int OPEN_BRACKET; + public static int OR; + public static int ORDER; + public static int ORDER_ELEMENT; + public static int OUTER; + public static int PARAM; + public static int PLUS; + public static int PROPERTIES; + public static int QUERY; + public static int QUOTED_String; + public static int RANGE; + public static int RIGHT; + public static int ROW_STAR; + public static int SELECT; + public static int SELECT_FROM; + public static int SET; + public static int SKIP; + public static int SOME; + public static int SQL_NE; + public static int STAR; + public static int SUM; + public static int T__134; + public static int T__135; + public static int TAKE; + public static int THEN; + public static int TRAILING; + public static int TRUE; + public static int UNARY_MINUS; + public static int UNARY_PLUS; + public static int UNION; + public static int UPDATE; + public static int VECTOR_EXPR; + public static int VERSIONED; + public static int WEIRD_IDENT; + public static int WHEN; + public static int WHERE; + public static int WITH; + public static int WS; + } + public class HqlParseEngine + { + public HqlParseEngine(string hql, bool filter, NHibernate.Engine.ISessionFactoryImplementor sfi) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Parse() => throw null; + } + public class HqlParser : Antlr.Runtime.Parser + { + public static int AGGREGATE; + public static int ALIAS; + public static int ALL; + public static int AND; + public static int ANY; + public static int AS; + public static int ASCENDING; + public static int AVG; + public static int BAND; + public static int BETWEEN; + public static int BNOT; + public static int BOR; + public static int BOTH; + public static int BXOR; + public static int CASE; + public static int CASE2; + public static int CLASS; + public static int CLOSE; + public static int CLOSE_BRACKET; + public static int COLON; + public static int COMMA; + public static int CONCAT; + public static int CONSTANT; + public static int CONSTRUCTOR; + public static int COUNT; + public static int CROSS; + public HqlParser(Antlr.Runtime.ITokenStream input) : base(default(Antlr.Runtime.ITokenStream)) => throw null; + public HqlParser(Antlr.Runtime.ITokenStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.ITokenStream)) => throw null; + public static int DELETE; + public static int DESCENDING; + public static int DISTINCT; + public static int DIV; + public static int DOT; + public static int ELEMENTS; + public static int ELSE; + public static int EMPTY; + public static int END; + public static int EOF; + public static int EQ; + public static int ESCAPE; + public static int ESCqs; + public static int EXISTS; + public static int EXPONENT; + public static int EXPR_LIST; + public static int FALSE; + public static int FETCH; + public bool Filter { get => throw null; set { } } + public static int FILTER_ENTITY; + public static int FLOAT_SUFFIX; + public static int FROM; + public static int FULL; + public static int GE; + public override string GrammarFileName { get => throw null; } + public static int GROUP; + public static int GT; + public void HandleDotIdent() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode HandleIdentifierError(Antlr.Runtime.IToken token, Antlr.Runtime.RecognitionException ex) => throw null; + public static int HAVING; + public static int HEX_DIGIT; + public static int ID_LETTER; + public static int ID_START_LETTER; + public static int IDENT; + public static int IN; + public static int IN_LIST; + public static int INDEX_OP; + public static int INDICES; + public static int INNER; + public static int INSERT; + public static int INTO; + public static int IS; + public static int IS_NOT_NULL; + public static int IS_NULL; + public static int JAVA_CONSTANT; + public static int JOIN; + public static int LE; + public static int LEADING; + public static int LEFT; + public static int LIKE; + public static int LITERAL_by; + public static int LT; + public static int MAX; + public static int MEMBER; + public static int METHOD_CALL; + public static int MIN; + public static int MINUS; + public static int NE; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode NegateNode(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node) => throw null; + public static int NEW; + public static int NOT; + public static int NOT_BETWEEN; + public static int NOT_IN; + public static int NOT_LIKE; + public static int NULL; + public static int NUM_DECIMAL; + public static int NUM_DOUBLE; + public static int NUM_FLOAT; + public static int NUM_INT; + public static int NUM_LONG; + public static int OBJECT; + public static int OF; + public static int ON; + public static int OPEN; + public static int OPEN_BRACKET; + public static int OR; + public static int ORDER; + public static int ORDER_ELEMENT; + public static int OUTER; + public static int PARAM; + public NHibernate.Hql.Ast.ANTLR.IParseErrorHandler ParseErrorHandler { get => throw null; set { } } + public static int PLUS; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ProcessEqualityExpression(object o) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ProcessMemberOf(Antlr.Runtime.IToken n, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode p, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root) => throw null; + public static int PROPERTIES; + public static int QUERY; + public static int QUOTED_String; + public static int RANGE; + protected override object RecoverFromMismatchedToken(Antlr.Runtime.IIntStream input, int ttype, Antlr.Runtime.BitSet follow) => throw null; + public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null; + public static int RIGHT; + public static int ROW_STAR; + public static int SELECT; + public static int SELECT_FROM; + public static int SET; + public static int SKIP; + public static int SOME; + public static int SQL_NE; + public static int STAR; + public Antlr.Runtime.AstParserRuleReturnScope statement() => throw null; + public static int SUM; + public static int T__134; + public static int T__135; + public static int TAKE; + public static int THEN; + public override string[] TokenNames { get => throw null; } + public static int TRAILING; + public Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get => throw null; set { } } + public static int TRUE; + public static int UNARY_MINUS; + public static int UNARY_PLUS; + public static int UNION; + public static int UPDATE; + public static int VECTOR_EXPR; + public static int VERSIONED; + public void WeakKeywords() => throw null; + public void WeakKeywords2() => throw null; + public static int WEIRD_IDENT; + public static int WHEN; + public static int WHERE; + public static int WITH; + public static int WS; + } + public class HqlSqlWalker : Antlr.Runtime.Tree.TreeParser + { + public void AddQuerySpaces(NHibernate.Persister.Entity.IEntityPersister persister) => throw null; + public void AddQuerySpaces(NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null; + public void AddQuerySpaces(string[] spaces) => throw null; + public static int AGGREGATE; + public static int ALIAS; + public static int ALIAS_REF; + public NHibernate.Hql.Ast.ANTLR.Util.AliasGenerator AliasGenerator { get => throw null; } + public static int ALL; + public static int AND; + public static int ANY; + public static int AS; + public static int ASCENDING; + public System.Collections.Generic.IList AssignmentSpecifications { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory ASTFactory { get => throw null; } + public static int AVG; + public static int BAND; + public static int BETWEEN; + public static int BNOT; + public static int BOGUS; + public static int BOR; + public static int BOTH; + public static int BXOR; + public static int CASE; + public static int CASE2; + public static int CLASS; + public static int CLOSE; + public static int CLOSE_BRACKET; + public string CollectionFilterRole { get => throw null; } + public static int COLON; + public static int COMMA; + public static int CONCAT; + public static int CONSTANT; + public static int CONSTRUCTOR; + public static int COUNT; + public static int CROSS; + public HqlSqlWalker(NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl qti, NHibernate.Engine.ISessionFactoryImplementor sfi, Antlr.Runtime.Tree.ITreeNodeStream input, System.Collections.Generic.IDictionary tokenReplacements, string collectionRole) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; + public HqlSqlWalker(Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; + public HqlSqlWalker(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; + public int CurrentClauseType { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.FromClause CurrentFromClause { get => throw null; } + public int CurrentStatementType { get => throw null; } + public int CurrentTopLevelClauseType { get => throw null; } + public static int DELETE; + public static int DESCENDING; + public static int DISTINCT; + public static int DIV; + public static int DOT; + public static int ELEMENTS; + public static int ELSE; + public static int EMPTY; + public System.Collections.Generic.IDictionary EnabledFilters { get => throw null; } + public static int END; + public static int ENTITY_JOIN; + public static int EOF; + public static int EQ; + public static int ESCAPE; + public static int ESCqs; + protected void EvaluateAssignment(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode eq) => throw null; + public static int EXISTS; + public static int EXPONENT; + public static int EXPR_LIST; + public static int FALSE; + public static int FETCH; + public static int FILTER_ENTITY; + public static int FILTERS; + public static int FLOAT_SUFFIX; + public static int FROM; + public static int FROM_FRAGMENT; + public static int FULL; + public static int GE; + public NHibernate.Hql.Ast.ANTLR.Tree.FromClause GetFinalFromClause() => throw null; + public override string GrammarFileName { get => throw null; } + public static int GROUP; + public static int GT; + protected void HandleResultVariableRef(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode resultVariableRef) => throw null; + public static int HAVING; + public static int HEX_DIGIT; + public static int ID_LETTER; + public static int ID_START_LETTER; + public static int IDENT; + public static int IMPLIED_FROM; + public NHibernate.SqlCommand.JoinType ImpliedJoinType { get => throw null; } + public static int IN; + public static int IN_LIST; + public static int INDEX_OP; + public static int INDICES; + public static int INNER; + public static int INSERT; + public static int INTO; + public static int IS; + public static int IS_NOT_NULL; + public static int IS_NULL; + public bool IsComparativeExpressionClause { get => throw null; } + public bool IsFilter() => throw null; + public bool IsInCase { get => throw null; } + public bool IsInFrom { get => throw null; } + public bool IsInSelect { get => throw null; } + protected bool IsOrderExpressionResultVariableRef(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode orderExpressionNode) => throw null; + public bool IsScalarSubQuery { get => throw null; } + public bool IsSelectStatement { get => throw null; } + public bool IsShallowQuery { get => throw null; } + public bool IsSubQuery { get => throw null; } + public static int JAVA_CONSTANT; + public static int JOIN; + public static int JOIN_FRAGMENT; + public static int JOIN_SUBQUERY; + public static int LE; + public static int LEADING; + public static int LEFT; + public static int LEFT_OUTER; + public static int LIKE; + public static int LITERAL_by; + public NHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor LiteralProcessor { get => throw null; } + protected NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LookupProperty(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode dot, bool root, bool inSelect) => throw null; + public static int LT; + public static int MAX; + public static int MEMBER; + public static int METHOD_CALL; + public static int METHOD_NAME; + public static int MIN; + public static int MINUS; + public static int NAMED_PARAM; + public System.Collections.Generic.IDictionary NamedParameters { get => throw null; } + public static int NE; + public static int NEW; + public static int NOT; + public static int NOT_BETWEEN; + public static int NOT_IN; + public static int NOT_LIKE; + public static int NULL; + public static int NUM_DECIMAL; + public static int NUM_DOUBLE; + public static int NUM_FLOAT; + public static int NUM_INT; + public static int NUM_LONG; + public int NumberOfParametersInSetClause { get => throw null; } + public static int OBJECT; + public static int OF; + public static int ON; + public static int OPEN; + public static int OPEN_BRACKET; + public static int OR; + public static int ORDER; + public static int ORDER_ELEMENT; + public static int OUTER; + public static int PARAM; + public System.Collections.Generic.IList Parameters { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.IParseErrorHandler ParseErrorHandler { get => throw null; set { } } + public static int PLUS; + public static int PROPERTIES; + public static int PROPERTY_REF; + public static int QUERY; + public System.Collections.Generic.ISet QuerySpaces { get => throw null; } + public static int QUOTED_String; + public static int RANGE; + public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null; + public static int RESULT_VARIABLE_REF; + public string[] ReturnAliases { get => throw null; } + public NHibernate.Type.IType[] ReturnTypes { get => throw null; } + public static int RIGHT; + public static int RIGHT_OUTER; + public static int ROW_STAR; + public static int SELECT; + public static int SELECT_CLAUSE; + public static int SELECT_COLUMNS; + public static int SELECT_EXPR; + public static int SELECT_FROM; + public NHibernate.Hql.Ast.ANTLR.Tree.SelectClause SelectClause { get => throw null; } + public static int SET; + public static int SKIP; + public static int SOME; + public static int SQL_NE; + public static int SQL_TOKEN; + public static int STAR; + public Antlr.Runtime.Tree.AstTreeRuleReturnScope statement() => throw null; + public int StatementType { get => throw null; } + public static int SUM; + public static bool SupportsIdGenWithBulkInsertion(NHibernate.Id.IIdentifierGenerator generator) => throw null; + public bool SupportsQueryCache { get => throw null; } + public static int T__134; + public static int T__135; + public static int TAKE; + public static int THEN; + public static int THETA_JOINS; + public override string[] TokenNames { get => throw null; } + public System.Collections.Generic.IDictionary TokenReplacements { get => throw null; } + public static int TRAILING; + public Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get => throw null; set { } } + public static int TRUE; + public static int UNARY_MINUS; + public static int UNARY_PLUS; + public static int UNION; + public static int UPDATE; + public static int VECTOR_EXPR; + public static int VERSIONED; + public static int WEIRD_IDENT; + public static int WHEN; + public static int WHERE; + public static int WITH; + public static int WS; + } + public class HqlToken : Antlr.Runtime.CommonToken + { + public HqlToken(Antlr.Runtime.ICharStream input, int type, int channel, int start, int stop) => throw null; + public HqlToken(Antlr.Runtime.IToken other) => throw null; + public bool PossibleId { get => throw null; } + public override string ToString() => throw null; + } + public interface IErrorReporter + { + void ReportError(Antlr.Runtime.RecognitionException e); + void ReportError(string s); + void ReportWarning(string s); + } + public class InvalidPathException : NHibernate.Hql.Ast.ANTLR.SemanticException + { + public InvalidPathException(string s) : base(default(string)) => throw null; + protected InvalidPathException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; + } + public class InvalidWithClauseException : NHibernate.Hql.Ast.ANTLR.QuerySyntaxException + { + protected InvalidWithClauseException() => throw null; + public InvalidWithClauseException(string message) => throw null; + public InvalidWithClauseException(string message, System.Exception inner) => throw null; + protected InvalidWithClauseException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public interface IParseErrorHandler : NHibernate.Hql.Ast.ANTLR.IErrorReporter + { + int GetErrorCount(); + void ThrowQueryException(); + } + public class QuerySyntaxException : NHibernate.QueryException + { + public static NHibernate.Hql.Ast.ANTLR.QuerySyntaxException Convert(Antlr.Runtime.RecognitionException e) => throw null; + public static NHibernate.Hql.Ast.ANTLR.QuerySyntaxException Convert(Antlr.Runtime.RecognitionException e, string hql) => throw null; + protected QuerySyntaxException() => throw null; + public QuerySyntaxException(string message, string hql) => throw null; + public QuerySyntaxException(string message, string hql, System.Exception inner) => throw null; + public QuerySyntaxException(string message) => throw null; + public QuerySyntaxException(string message, System.Exception inner) => throw null; + protected QuerySyntaxException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class QueryTranslatorImpl : NHibernate.Hql.IFilterTranslator, NHibernate.Hql.IQueryTranslator + { + public virtual NHibernate.Type.IType[] ActualReturnTypes { get => throw null; } + public NHibernate.Engine.Query.ParameterMetadata BuildParameterMetadata() => throw null; + public System.Collections.Generic.IList CollectedParameterSpecifications { get => throw null; } + public System.Collections.Generic.IList CollectSqlStrings { get => throw null; } + public void Compile(System.Collections.Generic.IDictionary replacements, bool shallow) => throw null; + public void Compile(string collectionRole, System.Collections.Generic.IDictionary replacements, bool shallow) => throw null; + public bool ContainsCollectionFetches { get => throw null; } + public QueryTranslatorImpl(string queryIdentifier, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parsedQuery, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public System.Collections.Generic.IDictionary EnabledFilters { get => throw null; } + public int ExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; + public System.Threading.Tasks.Task ExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public string[][] GetColumnNames() => throw null; + public System.Collections.IEnumerable GetEnumerable(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session) => throw null; + public System.Threading.Tasks.Task GetEnumerableAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null; + public bool IsManipulationStatement { get => throw null; } + public bool IsShallowQuery { get => throw null; } + public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null; + public System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; + public NHibernate.Loader.Loader Loader { get => throw null; } + public string QueryIdentifier { get => throw null; } + public System.Collections.Generic.ISet QuerySpaces { get => throw null; } + public string QueryString { get => throw null; } + public string[] ReturnAliases { get => throw null; } + public NHibernate.Type.IType[] ReturnTypes { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.IStatement SqlAST { get => throw null; } + public NHibernate.SqlCommand.SqlString SqlString { get => throw null; } + public string SQLString { get => throw null; } + public bool SupportsQueryCache { get => throw null; } + public bool TryGetNamedParameterType(string name, out NHibernate.Type.IType type, out bool isGuessedType) => throw null; + public System.Collections.Generic.ISet UncacheableCollectionPersisters { get => throw null; } + } + public class SemanticException : NHibernate.QueryException + { + public SemanticException(string message) => throw null; + public SemanticException(string message, System.Exception inner) => throw null; + protected SemanticException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SessionFactoryHelperExtensions + { + public NHibernate.Engine.JoinSequence CreateCollectionJoinSequence(NHibernate.Persister.Collection.IQueryableCollection collPersister, string collectionName) => throw null; + public NHibernate.Engine.JoinSequence CreateJoinSequence() => throw null; + public NHibernate.Engine.JoinSequence CreateJoinSequence(bool implicitJoin, NHibernate.Type.IAssociationType associationType, string tableAlias, NHibernate.SqlCommand.JoinType joinType, string[] columns) => throw null; + public SessionFactoryHelperExtensions(NHibernate.Engine.ISessionFactoryImplementor sfi) => throw null; + public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; } + public NHibernate.Type.IType FindFunctionReturnType(string functionName, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode first) => throw null; + public NHibernate.Type.IType FindFunctionReturnType(string functionName, System.Collections.Generic.IEnumerable arguments) => throw null; + public NHibernate.Persister.Entity.IQueryable FindQueryableUsingImports(string className) => throw null; + public NHibernate.Dialect.Function.ISQLFunction FindSQLFunction(string functionName) => throw null; + public string[][] GenerateColumnNames(NHibernate.Type.IType[] sqlResultTypes) => throw null; + public string[] GetCollectionElementColumns(string role, string roleAlias) => throw null; + public NHibernate.Persister.Collection.IQueryableCollection GetCollectionPersister(string collectionFilterRole) => throw null; + public NHibernate.Type.IAssociationType GetElementAssociationType(NHibernate.Type.CollectionType collectionType) => throw null; + public string GetIdentifierOrUniqueKeyPropertyName(NHibernate.Type.EntityType entityType) => throw null; + public string GetImportedClassName(string className) => throw null; + public bool HasPhysicalDiscriminatorColumn(NHibernate.Persister.Entity.IQueryable persister) => throw null; + public bool IsStrictJPAQLComplianceEnabled { get => throw null; } + public NHibernate.Persister.Entity.IEntityPersister RequireClassPersister(string name) => throw null; + public NHibernate.Persister.Collection.IQueryableCollection RequireQueryableCollection(string role) => throw null; + } + public class SqlGenerator : Antlr.Runtime.Tree.TreeParser, NHibernate.Hql.Ast.ANTLR.IErrorReporter + { + public static int AGGREGATE; + public static int ALIAS; + public static int ALIAS_REF; + public static int ALL; + public static int AND; + public static int ANY; + public static int AS; + public static int ASCENDING; + public static int AVG; + public static int BAND; + public static int BETWEEN; + public static int BNOT; + public static int BOGUS; + public static int BOR; + public static int BOTH; + public static int BXOR; + public static int CASE; + public static int CASE2; + public static int CLASS; + public static int CLOSE; + public static int CLOSE_BRACKET; + public static int COLON; + public static int COMMA; + public void comparisonExpr(bool parens) => throw null; + public static int CONCAT; + public static int CONSTANT; + public static int CONSTRUCTOR; + public static int COUNT; + public static int CROSS; + public SqlGenerator(NHibernate.Engine.ISessionFactoryImplementor sfi, Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; + public SqlGenerator(Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; + public SqlGenerator(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; + public static int DELETE; + public static int DESCENDING; + public static int DISTINCT; + public static int DIV; + public static int DOT; + public static int ELEMENTS; + public static int ELSE; + public static int EMPTY; + public static int END; + public static int ENTITY_JOIN; + public static int EOF; + public static int EQ; + public static int ESCAPE; + public static int ESCqs; + public static int EXISTS; + public static int EXPONENT; + public static int EXPR_LIST; + public static int FALSE; + public static int FETCH; + public static int FILTER_ENTITY; + public static int FILTERS; + public static int FLOAT_SUFFIX; + public static int FROM; + public static int FROM_FRAGMENT; + protected virtual void FromFragmentSeparator(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode a) => throw null; + public static int FULL; + public static int GE; + public System.Collections.Generic.IList GetCollectedParameters() => throw null; + public NHibernate.SqlCommand.SqlString GetSQL() => throw null; + public override string GrammarFileName { get => throw null; } + public static int GROUP; + public static int GT; + public static int HAVING; + public static int HEX_DIGIT; + public static int ID_LETTER; + public static int ID_START_LETTER; + public static int IDENT; + public static int IMPLIED_FROM; + public static int IN; + public static int IN_LIST; + public static int INDEX_OP; + public static int INDICES; + public static int INNER; + public static int INSERT; + public static int INTO; + public static int IS; + public static int IS_NOT_NULL; + public static int IS_NULL; + public static int JAVA_CONSTANT; + public static int JOIN; + public static int JOIN_FRAGMENT; + public static int JOIN_SUBQUERY; + public static int LE; + public static int LEADING; + public static int LEFT; + public static int LEFT_OUTER; + public static int LIKE; + public static int LITERAL_by; + public static int LT; + public static int MAX; + public static int MEMBER; + public static int METHOD_CALL; + public static int METHOD_NAME; + public static int MIN; + public static int MINUS; + public static int NAMED_PARAM; + public static int NE; + protected virtual void NestedFromFragment(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode d, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + public static int NEW; + public static int NOT; + public static int NOT_BETWEEN; + public static int NOT_IN; + public static int NOT_LIKE; + public static int NULL; + public static int NUM_DECIMAL; + public static int NUM_DOUBLE; + public static int NUM_FLOAT; + public static int NUM_INT; + public static int NUM_LONG; + public static int OBJECT; + public static int OF; + public static int ON; + public static int OPEN; + public static int OPEN_BRACKET; + public static int OR; + public static int ORDER; + public static int ORDER_ELEMENT; + public static int OUTER; + public static int PARAM; + public NHibernate.Hql.Ast.ANTLR.IParseErrorHandler ParseErrorHandler { get => throw null; } + public static int PLUS; + public static int PROPERTIES; + public static int PROPERTY_REF; + public static int QUERY; + public static int QUOTED_String; + public static int RANGE; + public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null; + public void ReportError(string s) => throw null; + public void ReportWarning(string s) => throw null; + public static int RESULT_VARIABLE_REF; + public static int RIGHT; + public static int RIGHT_OUTER; + public static int ROW_STAR; + public static int SELECT; + public static int SELECT_CLAUSE; + public static int SELECT_COLUMNS; + public static int SELECT_EXPR; + public static int SELECT_FROM; + public static int SET; + public Antlr.Runtime.Tree.TreeRuleReturnScope simpleExpr() => throw null; + public static int SKIP; + public static int SOME; + public static int SQL_NE; + public static int SQL_TOKEN; + public static int STAR; + public void statement() => throw null; + public static int SUM; + public static int T__134; + public static int T__135; + public static int TAKE; + public static int THEN; + public static int THETA_JOINS; + public override string[] TokenNames { get => throw null; } + public static int TRAILING; + public static int TRUE; + public static int UNARY_MINUS; + public static int UNARY_PLUS; + public static int UNION; + public static int UPDATE; + public static int VECTOR_EXPR; + public static int VERSIONED; + public static int WEIRD_IDENT; + public static int WHEN; + public static int WHERE; + public void whereClause() => throw null; + public void whereExpr() => throw null; + public static int WITH; + public static int WS; + } + namespace Tree + { + public abstract class AbstractNullnessCheckNode : NHibernate.Hql.Ast.ANTLR.Tree.UnaryLogicOperatorNode + { + protected AbstractNullnessCheckNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + protected abstract string ExpansionConnectorText { get; } + protected abstract int ExpansionConnectorType { get; } + public override void Initialize() => throw null; + } + public abstract class AbstractRestrictableStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractStatement, NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement, NHibernate.Hql.Ast.ANTLR.Tree.IStatement + { + protected AbstractRestrictableStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromClause FromClause { get => throw null; } + protected abstract NHibernate.INHibernateLogger GetLog(); + protected abstract int GetWhereClauseParentTokenType(); + public bool HasWhereClause { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode WhereClause { get => throw null; } + } + public abstract class AbstractSelectExpression : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression + { + public string Alias { get => throw null; set { } } + protected AbstractSelectExpression(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public virtual NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set { } } + public bool IsConstructor { get => throw null; } + public virtual bool IsReturnableEntity { get => throw null; } + public virtual bool IsScalar { get => throw null; } + public int ScalarColumnIndex { get => throw null; } + public void SetScalarColumn(int i) => throw null; + public string[] SetScalarColumn(int i, System.Func aliasCreator) => throw null; + public abstract void SetScalarColumnText(int i); + public virtual string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + } + public abstract class AbstractStatement : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode, NHibernate.Hql.Ast.ANTLR.Tree.IStatement + { + protected AbstractStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public string GetDisplayText() => throw null; + public abstract bool NeedsExecutor { get; } + public abstract int StatementType { get; } + } + public class AggregateNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression + { + public AggregateNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public string FunctionName { get => throw null; } + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + } + public class AssignmentSpecification + { + public bool AffectsTable(string tableName) => throw null; + public AssignmentSpecification(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode eq, NHibernate.Persister.Entity.IQueryable persister) => throw null; + public NHibernate.Param.IParameterSpecification[] Parameters { get => throw null; } + public NHibernate.SqlCommand.SqlString SqlAssignmentFragment { get => throw null; } + } + public class ASTErrorNode : NHibernate.Hql.Ast.ANTLR.Tree.ASTNode + { + public ASTErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null; + public Antlr.Runtime.ITokenStream Input { get => throw null; } + public Antlr.Runtime.RecognitionException RecognitionException { get => throw null; } + public Antlr.Runtime.IToken Stop { get => throw null; } + } + public class ASTFactory : NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory + { + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode CreateNode(int type, string text, params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children) => throw null; + public ASTFactory(Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; + } + public class ASTNode : NHibernate.Hql.Ast.ANTLR.Tree.IASTNode, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, Antlr.Runtime.Tree.ITree + { + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null; + void Antlr.Runtime.Tree.ITree.AddChild(Antlr.Runtime.Tree.ITree t) => throw null; + public void AddChildren(System.Collections.Generic.IEnumerable children) => throw null; + public void AddChildren(params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddSibling(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newSibling) => throw null; + public int CharPositionInLine { get => throw null; } + public int ChildCount { get => throw null; } + public int ChildIndex { get => throw null; } + int Antlr.Runtime.Tree.ITree.ChildIndex { get => throw null; set { } } + public void ClearChildren() => throw null; + public ASTNode() => throw null; + public ASTNode(Antlr.Runtime.IToken token) => throw null; + public ASTNode(NHibernate.Hql.Ast.ANTLR.Tree.ASTNode other) => throw null; + object Antlr.Runtime.Tree.ITree.DeleteChild(int i) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode DupNode() => throw null; + Antlr.Runtime.Tree.ITree Antlr.Runtime.Tree.ITree.DupNode() => throw null; + void Antlr.Runtime.Tree.ITree.FreshenParentAndChildIndexes() => throw null; + public Antlr.Runtime.Tree.ITree GetAncestor(int ttype) => throw null; + public System.Collections.Generic.IList GetAncestors() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetChild(int index) => throw null; + Antlr.Runtime.Tree.ITree Antlr.Runtime.Tree.ITree.GetChild(int i) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstChild() => throw null; + public bool HasAncestor(int ttype) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode InsertChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null; + public bool IsNil { get => throw null; } + public int Line { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode NextSibling { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Parent { get => throw null; set { } } + Antlr.Runtime.Tree.ITree Antlr.Runtime.Tree.ITree.Parent { get => throw null; set { } } + public void RemoveChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null; + public void RemoveChild(int index) => throw null; + void Antlr.Runtime.Tree.ITree.ReplaceChildren(int startChildIndex, int stopChildIndex, object t) => throw null; + public void SetChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild) => throw null; + void Antlr.Runtime.Tree.ITree.SetChild(int i, Antlr.Runtime.Tree.ITree t) => throw null; + public void SetFirstChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild) => throw null; + public virtual string Text { get => throw null; set { } } + public Antlr.Runtime.IToken Token { get => throw null; } + int Antlr.Runtime.Tree.ITree.TokenStartIndex { get => throw null; set { } } + int Antlr.Runtime.Tree.ITree.TokenStopIndex { get => throw null; set { } } + public override string ToString() => throw null; + public string ToStringTree() => throw null; + public int Type { get => throw null; set { } } + } + public class ASTTreeAdaptor : Antlr.Runtime.Tree.BaseTreeAdaptor + { + public override object Create(Antlr.Runtime.IToken payload) => throw null; + public override Antlr.Runtime.IToken CreateToken(int tokenType, string text) => throw null; + public override Antlr.Runtime.IToken CreateToken(Antlr.Runtime.IToken fromToken) => throw null; + public ASTTreeAdaptor() => throw null; + public override object DupNode(object t) => throw null; + public override object ErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null; + public override Antlr.Runtime.IToken GetToken(object treeNode) => throw null; + } + public class BetweenOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode + { + public BetweenOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public void Initialize() => throw null; + } + public class BinaryArithmeticOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IBinaryOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode + { + public BinaryArithmeticOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public string GetDisplayText() => throw null; + public void Initialize() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LeftHandOperand { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode RightHandOperand { get => throw null; } + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + } + public class BinaryLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IBinaryOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer + { + public void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification) => throw null; + public BinaryLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + protected static NHibernate.Type.IType ExtractDataType(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode operand) => throw null; + public NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters() => throw null; + public bool HasEmbeddedParameters { get => throw null; } + public virtual void Initialize() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LeftHandOperand { get => throw null; } + protected void MutateRowValueConstructorSyntaxesIfNecessary(NHibernate.Type.IType lhsType, NHibernate.Type.IType rhsType) => throw null; + public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode RightHandOperand { get => throw null; } + } + public class BooleanLiteralNode : NHibernate.Hql.Ast.ANTLR.Tree.LiteralNode, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode + { + public BooleanLiteralNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } + public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + } + public class Case2Node : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression + { + public Case2Node(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + } + public class CaseNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode + { + public CaseNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } + public System.Collections.Generic.IEnumerable GetResultNodes() => throw null; + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + } + public class CollectionFunction : NHibernate.Hql.Ast.ANTLR.Tree.MethodNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode + { + public CollectionFunction(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + protected override void PrepareSelectColumns(string[] selectColumns) => throw null; + public override void Resolve(bool inSelect) => throw null; + } + public class ComponentJoin : NHibernate.Hql.Ast.ANTLR.Tree.FromElement + { + public class ComponentFromElementType : NHibernate.Hql.Ast.ANTLR.Tree.FromElementType + { + public ComponentFromElementType(NHibernate.Hql.Ast.ANTLR.Tree.ComponentJoin fromElement) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.FromElement)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.ComponentJoin FromElement { get => throw null; } + protected NHibernate.Persister.Entity.IPropertyMapping GetBasePropertyMapping() => throw null; + public override NHibernate.Persister.Entity.IPropertyMapping GetPropertyMapping(string propertyName) => throw null; + public override NHibernate.Type.IType GetPropertyType(string propertyName, string propertyPath) => throw null; + public override NHibernate.SqlCommand.SelectFragment GetScalarIdentifierSelectFragment(int i, System.Func aliasCreator) => throw null; + public override NHibernate.Persister.Collection.IQueryableCollection QueryableCollection { get => throw null; set { } } + public override string RenderScalarIdentifierSelect(int i) => throw null; + } + public string ComponentPath { get => throw null; } + public string ComponentProperty { get => throw null; } + public NHibernate.Type.ComponentType ComponentType { get => throw null; } + public ComponentJoin(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string alias, string componentPath, NHibernate.Type.ComponentType componentType) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public override string GetDisplayText() => throw null; + public override string GetIdentityColumn() => throw null; + } + public class ConstructorNode : NHibernate.Hql.Ast.ANTLR.Tree.SelectExpressionList, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression + { + public string Alias { get => throw null; set { } } + public System.Reflection.ConstructorInfo Constructor { get => throw null; } + public System.Collections.Generic.IList ConstructorArgumentTypeList { get => throw null; } + public ConstructorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; } + public string[] GetAliases() => throw null; + protected override NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstSelectExpression() => throw null; + public bool IsConstructor { get => throw null; } + public bool IsList { get => throw null; } + public bool IsMap { get => throw null; } + public bool IsReturnableEntity { get => throw null; } + public bool IsScalar { get => throw null; } + public void Prepare() => throw null; + public int ScalarColumnIndex { get => throw null; } + public void SetScalarColumn(int i) => throw null; + public string[] SetScalarColumn(int i, System.Func aliasCreator) => throw null; + public void SetScalarColumnText(int i) => throw null; + } + public class DeleteStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement + { + public DeleteStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + protected override NHibernate.INHibernateLogger GetLog() => throw null; + protected override int GetWhereClauseParentTokenType() => throw null; + public override bool NeedsExecutor { get => throw null; } + public override int StatementType { get => throw null; } + } + public class DotNode : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode + { + public DotNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public bool Fetch { set { } } + public override NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetImpliedJoin() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode GetLhs() => throw null; + public NHibernate.SqlCommand.JoinType JoinType { set { } } + public override string Path { get => throw null; } + public string PropertyPath { get => throw null; set { } } + public static bool REGRESSION_STYLE_JOIN_SUPPRESSION; + public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + public override void ResolveFirstChild() => throw null; + public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + public override void ResolveInFunctionCall(bool generateJoin, bool implicitJoin) => throw null; + public void ResolveSelectExpression() => throw null; + public void SetResolvedConstant(string text) => throw null; + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + public static bool UseThetaStyleImplicitJoins; + } + public class FromClause : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode + { + public void AddCollectionJoinFromElementByPath(string path, NHibernate.Hql.Ast.ANTLR.Tree.FromElement destination) => throw null; + public void AddDuplicateAlias(string alias, NHibernate.Hql.Ast.ANTLR.Tree.FromElement element) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement AddFromElement(string path, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode alias) => throw null; + public void AddJoinByPathMap(string path, NHibernate.Hql.Ast.ANTLR.Tree.FromElement destination) => throw null; + public bool ContainsClassAlias(string alias) => throw null; + public bool ContainsTableAlias(string alias) => throw null; + public FromClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FindCollectionJoin(string path) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FindJoinByPath(string path) => throw null; + public System.Collections.Generic.IList GetCollectionFetches() => throw null; + public string GetDisplayText() => throw null; + public System.Collections.Generic.IList GetExplicitFromElements() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetFromElement(string aliasOrClassName) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetFromElement() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetFromElementByClassName(string className) => throw null; + public System.Collections.Generic.IList GetFromElements() => throw null; + public System.Collections.Generic.IList GetProjectionList() => throw null; + public bool IsFromElementAlias(string possibleAlias) => throw null; + public bool IsSubQuery { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.FromClause ParentFromClause { get => throw null; } + public void RegisterFromElement(NHibernate.Hql.Ast.ANTLR.Tree.FromElement element) => throw null; + public virtual void Resolve() => throw null; + public void SetParentFromClause(NHibernate.Hql.Ast.ANTLR.Tree.FromClause parentFromClause) => throw null; + public override string ToString() => throw null; + } + public class FromElement : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer + { + public void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification) => throw null; + protected void AppendDisplayText(System.Text.StringBuilder buf) => throw null; + public void CheckInitialized() => throw null; + public string ClassAlias { get => throw null; } + public string ClassName { get => throw null; } + public bool CollectionJoin { get => throw null; set { } } + public string CollectionSuffix { get => throw null; set { } } + public string CollectionTableAlias { get => throw null; set { } } + public string[] Columns { get => throw null; set { } } + public FromElement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + protected FromElement(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string alias) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public NHibernate.Persister.Entity.IEntityPersister EntityPersister { get => throw null; } + public string EntitySuffix { get => throw null; set { } } + public bool Fetch { get => throw null; set { } } + public string[] FetchLazyProperties { get => throw null; set { } } + public bool Filter { set { } } + public NHibernate.Hql.Ast.ANTLR.Tree.FromClause FromClause { get => throw null; } + public NHibernate.SqlCommand.SelectFragment GetCollectionSelectFragment(string suffix) => throw null; + public virtual string GetDisplayText() => throw null; + public NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters() => throw null; + public NHibernate.SqlCommand.SelectFragment GetIdentifierSelectFragment(string suffix) => throw null; + public virtual string GetIdentityColumn() => throw null; + public NHibernate.SqlCommand.SelectFragment GetPropertiesSelectFragment(string suffix) => throw null; + public NHibernate.Persister.Entity.IPropertyMapping GetPropertyMapping(string propertyName) => throw null; + public NHibernate.Type.IType GetPropertyType(string propertyName, string propertyPath) => throw null; + public NHibernate.SqlCommand.SelectFragment GetScalarIdentifierSelectFragment(int i, System.Func aliasCreator) => throw null; + public NHibernate.SqlCommand.SelectFragment GetValueCollectionSelectFragment(string suffix) => throw null; + public void HandlePropertyBeingDereferenced(NHibernate.Type.IType propertySource, string propertyName) => throw null; + public bool HasEmbeddedParameters { get => throw null; } + public virtual bool IncludeSubclasses { get => throw null; set { } } + public NHibernate.Param.IParameterSpecification IndexCollectionSelectorParamSpec { get => throw null; set { } } + public void InitializeCollection(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, string classAlias, string tableAlias) => throw null; + protected void InitializeComponentJoin(NHibernate.Hql.Ast.ANTLR.Tree.FromElementType elementType) => throw null; + public void InitializeEntity(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, string className, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Type.EntityType type, string classAlias, string tableAlias) => throw null; + public virtual bool InProjectionList { get => throw null; set { } } + public bool IsAllPropertyFetch { get => throw null; set { } } + public bool IsCollectionJoin { get => throw null; } + public bool IsCollectionOfValuesOrComponents { get => throw null; } + public bool IsDereferencedBySubclassProperty { get => throw null; } + public bool IsDereferencedBySuperclassOrSubclassProperty { get => throw null; } + public bool IsEntity { get => throw null; } + public bool IsFetch { get => throw null; } + public bool IsFilter { get => throw null; } + public bool IsFromOrJoinFragment { get => throw null; } + public virtual bool IsImplied { get => throw null; } + public virtual bool IsImpliedInFromClause { get => throw null; } + public NHibernate.Engine.JoinSequence JoinSequence { get => throw null; set { } } + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement Origin { get => throw null; } + public NHibernate.Persister.Entity.IQueryable Queryable { get => throw null; } + public NHibernate.Persister.Collection.IQueryableCollection QueryableCollection { get => throw null; set { } } + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement RealOrigin { get => throw null; } + public string RenderCollectionSelectFragment(int size, int k) => throw null; + public string RenderIdentifierSelect(int size, int k) => throw null; + public string RenderPropertySelect(int size, int k) => throw null; + public string RenderScalarIdentifierSelect(int i) => throw null; + public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + public string RenderValueCollectionSelectFragment(int size, int k) => throw null; + public virtual NHibernate.Type.IType SelectType { get => throw null; } + public void SetAllPropertyFetch(bool fetch) => throw null; + public virtual void SetImpliedInFromClause(bool flag) => throw null; + public void SetIncludeSubclasses(bool includeSubclasses) => throw null; + public void SetIndexCollectionSelectorParamSpec(NHibernate.Param.IParameterSpecification indexCollectionSelectorParamSpec) => throw null; + public void SetOrigin(NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, bool manyToMany) => throw null; + public void SetRole(string role) => throw null; + public void SetWithClauseFragment(string withClauseJoinAlias, NHibernate.SqlCommand.SqlString withClauseFragment) => throw null; + public string TableAlias { get => throw null; } + public string[] ToColumns(string tableAlias, string path, bool inSelect) => throw null; + public string[] ToColumns(string tableAlias, string path, bool inSelect, bool forceAlias) => throw null; + public bool UseFromFragment { get => throw null; set { } } + public bool UseWhereFragment { get => throw null; set { } } + public NHibernate.SqlCommand.SqlString WithClauseFragment { get => throw null; set { } } + public string WithClauseJoinAlias { get => throw null; } + } + public class FromElementFactory + { + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement AddFromElement() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateCollection(NHibernate.Persister.Collection.IQueryableCollection queryableCollection, string role, NHibernate.SqlCommand.JoinType joinType, bool fetchFlag, bool indexed) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateCollectionElementsJoin(NHibernate.Persister.Collection.IQueryableCollection queryableCollection, string collectionName) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateComponentJoin(NHibernate.Type.ComponentType type) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateElementJoin(NHibernate.Persister.Collection.IQueryableCollection queryableCollection) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateEntityJoin(string entityClass, string tableAlias, NHibernate.Engine.JoinSequence joinSequence, bool fetchFlag, bool inFrom, NHibernate.Type.EntityType type) => throw null; + public FromElementFactory(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string path) => throw null; + public FromElementFactory(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string path, string classAlias, string[] columns, bool implied) => throw null; + } + public class FromElementType + { + public string CollectionSuffix { get => throw null; set { } } + public FromElementType(NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Type.EntityType entityType) => throw null; + protected FromElementType(NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement) => throw null; + public virtual NHibernate.Type.IType DataType { get => throw null; } + public NHibernate.Persister.Entity.IEntityPersister EntityPersister { get => throw null; } + public string EntitySuffix { get => throw null; set { } } + public NHibernate.SqlCommand.SelectFragment GetCollectionSelectFragment(string suffix) => throw null; + public NHibernate.SqlCommand.SelectFragment GetIdentifierSelectFragment(string suffix) => throw null; + public virtual NHibernate.Persister.Entity.IPropertyMapping GetPropertyMapping(string propertyName) => throw null; + public virtual NHibernate.Type.IType GetPropertyType(string propertyName, string propertyPath) => throw null; + public virtual NHibernate.SqlCommand.SelectFragment GetScalarIdentifierSelectFragment(int i, System.Func aliasCreator) => throw null; + public NHibernate.SqlCommand.SelectFragment GetValueCollectionSelectFragment(string suffix) => throw null; + public NHibernate.Param.IParameterSpecification IndexCollectionSelectorParamSpec { get => throw null; set { } } + public bool IsCollectionOfValuesOrComponents { get => throw null; } + public bool IsEntity { get => throw null; } + public NHibernate.Engine.JoinSequence JoinSequence { get => throw null; set { } } + public NHibernate.Persister.Entity.IQueryable Queryable { get => throw null; } + public virtual NHibernate.Persister.Collection.IQueryableCollection QueryableCollection { get => throw null; set { } } + public string RenderCollectionSelectFragment(int size, int k) => throw null; + public string RenderIdentifierSelect(int size, int k) => throw null; + public string RenderPropertySelect(int size, int k, bool allProperties) => throw null; + public string RenderPropertySelect(int size, int k, string[] fetchLazyProperties) => throw null; + public virtual string RenderScalarIdentifierSelect(int i) => throw null; + public string RenderValueCollectionSelectFragment(int size, int k) => throw null; + public NHibernate.Type.IType SelectType { get => throw null; } + public string[] ToColumns(string tableAlias, string path, bool inSelect) => throw null; + public string[] ToColumns(string tableAlias, string path, bool inSelect, bool forceAlias) => throw null; + } + public abstract class FromReferenceNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IResolvableNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode, NHibernate.Hql.Ast.ANTLR.Tree.IPathNode + { + protected FromReferenceNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set { } } + public string GetDisplayText() => throw null; + public virtual NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetImpliedJoin() => throw null; + public bool IsResolved { get => throw null; set { } } + public override bool IsReturnableEntity { get => throw null; } + public virtual string Path { get => throw null; } + public virtual void PrepareForDot(string propertyName) => throw null; + public void RecursiveResolve(int level, bool impliedAtRoot, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + public abstract void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent); + public void Resolve(bool generateJoin, bool implicitJoin, string classAlias) => throw null; + public void Resolve(bool generateJoin, bool implicitJoin) => throw null; + public virtual void ResolveFirstChild() => throw null; + public abstract void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent); + public virtual void ResolveInFunctionCall(bool generateJoin, bool implicitJoin) => throw null; + public static int RootLevel; + } + public class HqlSqlWalkerNode : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IInitializableNode + { + public NHibernate.Hql.Ast.ANTLR.Util.AliasGenerator AliasGenerator { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory ASTFactory { get => throw null; } + public HqlSqlWalkerNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public virtual void Initialize(object param) => throw null; + public NHibernate.Hql.Ast.ANTLR.HqlSqlWalker Walker { get => throw null; set { } } + } + public class HqlSqlWalkerTreeAdaptor : NHibernate.Hql.Ast.ANTLR.Tree.ASTTreeAdaptor + { + public override object Create(Antlr.Runtime.IToken payload) => throw null; + public HqlSqlWalkerTreeAdaptor(object walker) => throw null; + public override object DupNode(object t) => throw null; + public override object ErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null; + } + public interface IASTFactory + { + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode CreateNode(int type, string text, params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children); + } + public interface IASTNode : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode childNode); + void AddChildren(System.Collections.Generic.IEnumerable children); + void AddChildren(params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children); + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddSibling(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newSibling); + int CharPositionInLine { get; } + int ChildCount { get; } + int ChildIndex { get; } + void ClearChildren(); + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode DupNode(); + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetChild(int index); + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstChild(); + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode InsertChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child); + bool IsNil { get; } + int Line { get; } + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode NextSibling { get; } + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Parent { get; set; } + void RemoveChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child); + void SetChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild); + void SetFirstChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild); + string Text { get; set; } + Antlr.Runtime.IToken Token { get; } + string ToStringTree(); + int Type { get; set; } + } + public interface IBinaryOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode + { + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LeftHandOperand { get; } + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode RightHandOperand { get; } + } + public class IdentNode : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode + { + public IdentNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + } + public interface IDisplayableNode + { + string GetDisplayText(); + } + public interface IExpectedTypeAwareNode + { + NHibernate.Type.IType ExpectedType { get; set; } + } + public interface IInitializableNode + { + void Initialize(object param); + } + public class ImpliedFromElement : NHibernate.Hql.Ast.ANTLR.Tree.FromElement + { + public ImpliedFromElement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override string GetDisplayText() => throw null; + public override bool IncludeSubclasses { get => throw null; set { } } + public override bool InProjectionList { get => throw null; set { } } + public override bool IsImplied { get => throw null; } + public override bool IsImpliedInFromClause { get => throw null; } + public override void SetImpliedInFromClause(bool flag) => throw null; + } + public class IndexNode : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode + { + public IndexNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override void PrepareForDot(string propertyName) => throw null; + public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + } + public class InLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.BinaryLogicOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IBinaryOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode + { + public InLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override void Initialize() => throw null; + } + public class InsertStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractStatement + { + public InsertStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IntoClause IntoClause { get => throw null; } + public override bool NeedsExecutor { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.SelectClause SelectClause { get => throw null; } + public override int StatementType { get => throw null; } + public virtual void Validate() => throw null; + } + public class IntoClause : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode + { + public IntoClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public string GetDisplayText() => throw null; + public void Initialize(NHibernate.Persister.Entity.IQueryable persister) => throw null; + public bool IsDiscriminated { get => throw null; } + public bool IsExplicitIdInsertion { get => throw null; } + public bool IsExplicitVersionInsertion { get => throw null; } + public void PrependIdColumnSpec() => throw null; + public void PrependVersionColumnSpec() => throw null; + public NHibernate.Persister.Entity.IQueryable Queryable { get => throw null; } + public void ValidateTypes(NHibernate.Hql.Ast.ANTLR.Tree.SelectClause selectClause) => throw null; + } + public interface IOperatorNode + { + NHibernate.Type.IType DataType { get; } + void Initialize(); + } + public interface IParameterContainer + { + void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification); + NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters(); + bool HasEmbeddedParameters { get; } + string Text { set; } + } + public interface IPathNode + { + string Path { get; } + } + public interface IResolvableNode + { + void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent); + void Resolve(bool generateJoin, bool implicitJoin, string classAlias); + void Resolve(bool generateJoin, bool implicitJoin); + void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent); + void ResolveInFunctionCall(bool generateJoin, bool implicitJoin); + } + public interface IRestrictableStatement : NHibernate.Hql.Ast.ANTLR.Tree.IStatement + { + NHibernate.Hql.Ast.ANTLR.Tree.FromClause FromClause { get; } + bool HasWhereClause { get; } + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode WhereClause { get; } + } + public interface ISelectExpression + { + string Alias { get; set; } + NHibernate.Type.IType DataType { get; } + NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get; } + bool IsConstructor { get; } + bool IsReturnableEntity { get; } + bool IsScalar { get; } + int ScalarColumnIndex { get; } + void SetScalarColumn(int i); + void SetScalarColumnText(int i); + string Text { set; } + } + public interface ISessionFactoryAwareNode + { + NHibernate.Engine.ISessionFactoryImplementor SessionFactory { set; } + } + public class IsNotNullLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractNullnessCheckNode + { + public IsNotNullLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + protected override string ExpansionConnectorText { get => throw null; } + protected override int ExpansionConnectorType { get => throw null; } + } + public class IsNullLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractNullnessCheckNode + { + public IsNullLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + protected override string ExpansionConnectorText { get => throw null; } + protected override int ExpansionConnectorType { get => throw null; } + } + public interface IStatement + { + bool NeedsExecutor { get; } + int StatementType { get; } + NHibernate.Hql.Ast.ANTLR.HqlSqlWalker Walker { get; } + } + public interface IUnaryOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode + { + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Operand { get; } + } + public class JavaConstantNode : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode, NHibernate.Hql.Ast.ANTLR.Tree.ISessionFactoryAwareNode + { + public JavaConstantNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } + public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { set { } } + } + public class LiteralNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression + { + public LiteralNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + } + public class MethodNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression + { + public MethodNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set { } } + public string GetDisplayText() => throw null; + public void InitializeMethodNode(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode name, bool inSelect) => throw null; + public bool IsCollectionPropertyMethod { get => throw null; } + public override bool IsScalar { get => throw null; } + protected virtual void PrepareSelectColumns(string[] columns) => throw null; + public virtual void Resolve(bool inSelect) => throw null; + public void ResolveCollectionProperty(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode expr) => throw null; + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + public NHibernate.Dialect.Function.ISQLFunction SQLFunction { get => throw null; } + } + public class OrderByClause : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode + { + public void AddOrderFragment(string orderByFragment) => throw null; + public OrderByClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + } + public class ParameterNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression + { + public string Alias { get => throw null; set { } } + public ParameterNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; } + public string GetDisplayText() => throw null; + public NHibernate.Param.IParameterSpecification HqlParameterSpecification { get => throw null; set { } } + public bool IsConstructor { get => throw null; } + public bool IsReturnableEntity { get => throw null; } + public bool IsScalar { get => throw null; } + public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + public int ScalarColumnIndex { get => throw null; } + public void SetScalarColumn(int i) => throw null; + public string[] SetScalarColumn(int i, System.Func aliasCreator) => throw null; + public void SetScalarColumnText(int i) => throw null; + } + public class QueryNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression + { + public string Alias { get => throw null; set { } } + public QueryNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; } + protected override NHibernate.INHibernateLogger GetLog() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.OrderByClause GetOrderByClause() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.SelectClause GetSelectClause() => throw null; + protected override int GetWhereClauseParentTokenType() => throw null; + public bool IsConstructor { get => throw null; } + public bool IsReturnableEntity { get => throw null; } + public bool IsScalar { get => throw null; } + public override bool NeedsExecutor { get => throw null; } + public int ScalarColumnIndex { get => throw null; } + public void SetScalarColumn(int i) => throw null; + public string[] SetScalarColumn(int i, System.Func aliasCreator) => throw null; + public void SetScalarColumnText(int i) => throw null; + public override int StatementType { get => throw null; } + } + public class ResultVariableRefNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode + { + public ResultVariableRefNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + public void SetSelectExpression(NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression selectExpression) => throw null; + } + public class SelectClause : NHibernate.Hql.Ast.ANTLR.Tree.SelectExpressionList + { + public System.Collections.Generic.IList CollectionFromElements { get => throw null; } + public string[][] ColumnNames { get => throw null; } + public System.Reflection.ConstructorInfo Constructor { get => throw null; } + public SelectClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public System.Collections.Generic.IList FromElementsForLoad { get => throw null; } + public int GetColumnNamesStartPosition(int i) => throw null; + protected override NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstSelectExpression() => throw null; + public void InitializeDerivedSelectClause(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause) => throw null; + public void InitializeExplicitSelectClause(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause) => throw null; + public bool IsDistinct { get => throw null; } + public bool IsList { get => throw null; } + public bool IsMap { get => throw null; } + public bool IsScalarSelect { get => throw null; } + public string[] QueryReturnAliases { get => throw null; } + public NHibernate.Type.IType[] QueryReturnTypes { get => throw null; } + public static bool VERSION2_SQL; + } + public static partial class SelectExpressionExtensions + { + public static string[] SetScalarColumn(this NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression selectExpression, int i, System.Func aliasCreator) => throw null; + } + public class SelectExpressionImpl : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode + { + public SelectExpressionImpl(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + } + public abstract class SelectExpressionList : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode + { + public NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression[] CollectSelectExpressions() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression[] CollectSelectExpressions(bool recurse) => throw null; + protected SelectExpressionList(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + protected abstract NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstSelectExpression(); + public System.Collections.Generic.List GetSelectExpressions() => throw null; + public System.Collections.Generic.List GetSelectExpressions(bool recurse, System.Predicate predicate) => throw null; + } + public class SqlFragment : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer + { + public void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification) => throw null; + public SqlFragment(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set { } } + public NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters() => throw null; + public bool HasEmbeddedParameters { get => throw null; } + public bool HasFilterCondition { get => throw null; } + public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + public void SetJoinFragment(NHibernate.SqlCommand.JoinFragment joinFragment) => throw null; + } + public class SqlNode : NHibernate.Hql.Ast.ANTLR.Tree.ASTNode + { + public SqlNode(Antlr.Runtime.IToken token) => throw null; + public virtual NHibernate.Type.IType DataType { get => throw null; set { } } + public string OriginalText { get => throw null; } + public virtual NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + public override string Text { get => throw null; set { } } + } + public class UnaryArithmeticNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IUnaryOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode + { + public UnaryArithmeticNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public void Initialize() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Operand { get => throw null; } + public override void SetScalarColumnText(int i) => throw null; + public override string[] SetScalarColumnText(int i, System.Func aliasCreator) => throw null; + } + public class UnaryLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IUnaryOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode + { + public UnaryLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + public override NHibernate.Type.IType DataType { get => throw null; set { } } + public virtual void Initialize() => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Operand { get => throw null; } + } + public class UpdateStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement + { + public UpdateStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; + protected override NHibernate.INHibernateLogger GetLog() => throw null; + protected override int GetWhereClauseParentTokenType() => throw null; + public override bool NeedsExecutor { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode SetClause { get => throw null; } + public override int StatementType { get => throw null; } + } + } + namespace Util + { + public class AliasGenerator + { + public string CreateName(string name) => throw null; + public AliasGenerator() => throw null; + } + public class ASTAppender + { + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Append(int type, string text, bool appendIfEmpty) => throw null; + public ASTAppender(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; + } + public class ASTIterator : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public ASTIterator(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode tree) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + } + public static class ASTUtil + { + public static System.Collections.Generic.IList CollectChildren(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root, NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) => throw null; + public static System.Collections.Generic.IList CollectChildren(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root, NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) where TNode : NHibernate.Hql.Ast.ANTLR.Tree.IASTNode => throw null; + public static NHibernate.Hql.Ast.ANTLR.Tree.IASTNode FindTypeInChildren(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent, int type) => throw null; + public static string GetDebugstring(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode n) => throw null; + public static string GetPathText(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode n) => throw null; + public static bool IsSubtreeChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode fixture, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode test) => throw null; + public static void MakeSiblingOfParent(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null; + } + public class CollectingNodeVisitor : NHibernate.Hql.Ast.ANTLR.Util.CollectingNodeVisitor + { + public CollectingNodeVisitor(NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) : base(default(NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate)) => throw null; + } + public class CollectingNodeVisitor : NHibernate.Hql.Ast.ANTLR.Util.IVisitationStrategy + { + public System.Collections.Generic.IList Collect(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root) => throw null; + public CollectingNodeVisitor(NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) => throw null; + public void Visit(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node) => throw null; + } + public class ColumnHelper + { + public ColumnHelper() => throw null; + public static void GenerateScalarColumns(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node, string[] sqlColumns, int i) => throw null; + public static string[] GenerateScalarColumns(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node, string[] sqlColumns, int i, System.Func aliasCreator) => throw null; + public static void GenerateSingleScalarColumn(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node, int i) => throw null; + public static string GenerateSingleScalarColumn(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node, int i, System.Func aliasCreator) => throw null; + } + public delegate bool FilterPredicate(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node); + public interface IVisitationStrategy + { + void Visit(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node); + } + public class JoinProcessor + { + public JoinProcessor(NHibernate.Hql.Ast.ANTLR.HqlSqlWalker walker) => throw null; + public static void ProcessDynamicFilterParameters(NHibernate.SqlCommand.SqlString sqlFragment, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer container, NHibernate.Hql.Ast.ANTLR.HqlSqlWalker walker) => throw null; + public void ProcessJoins(NHibernate.Hql.Ast.ANTLR.Tree.QueryNode query) => throw null; + public void ProcessJoins(NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement query) => throw null; + public static NHibernate.SqlCommand.JoinType ToHibernateJoinType(int astJoinType) => throw null; + } + public class LiteralProcessor + { + public static int APPROXIMATE; + public LiteralProcessor(NHibernate.Hql.Ast.ANTLR.HqlSqlWalker walker) => throw null; + public static int DECIMAL_LITERAL_FORMAT; + public static string ErrorCannotDetermineType; + public static string ErrorCannotFetchWithIterate; + public static string ErrorCannotFormatLiteral; + public static string ErrorNamedParameterDoesNotAppear; + public static int EXACT; + public void LookupConstant(NHibernate.Hql.Ast.ANTLR.Tree.DotNode node) => throw null; + public void ProcessBoolean(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode constant) => throw null; + public void ProcessConstant(NHibernate.Hql.Ast.ANTLR.Tree.SqlNode constant, bool resolveIdent) => throw null; + public void ProcessNumericLiteral(NHibernate.Hql.Ast.ANTLR.Tree.SqlNode literal) => throw null; + } + public class NodeTraverser + { + public NodeTraverser(NHibernate.Hql.Ast.ANTLR.Util.IVisitationStrategy visitor) => throw null; + public void TraverseDepthFirst(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ast) => throw null; + } + public static class PathHelper + { + public static string GetAlias(string path) => throw null; + public static NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ParsePath(string path, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) => throw null; + } + public class SyntheticAndFactory + { + public virtual void AddDiscriminatorWhereFragment(NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement statement, NHibernate.Persister.Entity.IQueryable persister, System.Collections.Generic.IDictionary enabledFilters, string alias) => throw null; + public void AddWhereFragment(NHibernate.SqlCommand.JoinFragment joinFragment, NHibernate.SqlCommand.SqlString whereFragment, NHibernate.Hql.Ast.ANTLR.Tree.QueryNode query, NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement, NHibernate.Hql.Ast.ANTLR.HqlSqlWalker hqlSqlWalker) => throw null; + public void AddWhereFragment(NHibernate.SqlCommand.JoinFragment joinFragment, NHibernate.SqlCommand.SqlString whereFragment, NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement query, NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement, NHibernate.Hql.Ast.ANTLR.HqlSqlWalker hqlSqlWalker) => throw null; + public SyntheticAndFactory(NHibernate.Hql.Ast.ANTLR.HqlSqlWalker hqlSqlWalker) => throw null; + } + } + } public class HqlAdd : NHibernate.Hql.Ast.HqlExpression { public HqlAdd(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlAlias` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlAlias : NHibernate.Hql.Ast.HqlExpression { public HqlAlias(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlAll` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlAll : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlAll(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlAny` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlAny : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlAny(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlAs` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlAs : NHibernate.Hql.Ast.HqlExpression { public HqlAs(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, System.Type type) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlAverage` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlAverage : NHibernate.Hql.Ast.HqlExpression { public HqlAverage(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlBitwiseAnd` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlBitwiseAnd : NHibernate.Hql.Ast.HqlExpression { public HqlBitwiseAnd(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlBitwiseNot` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlBitwiseNot : NHibernate.Hql.Ast.HqlExpression { public HqlBitwiseNot(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlBitwiseOr` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlBitwiseOr : NHibernate.Hql.Ast.HqlExpression { public HqlBitwiseOr(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlBooleanAnd` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlBooleanAnd : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlBooleanAnd(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlBooleanExpression lhs, NHibernate.Hql.Ast.HqlBooleanExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlBooleanDot` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlBooleanDot : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlBooleanDot(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlDot dot) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlBooleanExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class HqlBooleanExpression : NHibernate.Hql.Ast.HqlExpression { - protected HqlBooleanExpression(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; protected HqlBooleanExpression(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + protected HqlBooleanExpression(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlBooleanMethodCall` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlBooleanMethodCall : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlBooleanMethodCall(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string methodName, System.Collections.Generic.IEnumerable parameters) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlBooleanNot` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlBooleanNot : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlBooleanNot(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlBooleanExpression operand) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlBooleanOr` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlBooleanOr : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlBooleanOr(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlBooleanExpression lhs, NHibernate.Hql.Ast.HqlBooleanExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlCase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlCase : NHibernate.Hql.Ast.HqlExpression { public HqlCase(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlWhen[] whenClauses, NHibernate.Hql.Ast.HqlExpression ifFalse) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlCast` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlCast : NHibernate.Hql.Ast.HqlExpression { public HqlCast(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, System.Type type) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlClass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlClass : NHibernate.Hql.Ast.HqlExpression { public HqlClass(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlCoalesce` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlCoalesce : NHibernate.Hql.Ast.HqlExpression { public HqlCoalesce(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlConcat` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlConcat : NHibernate.Hql.Ast.HqlExpression { public HqlConcat(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] args) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlConstant` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlConstant : NHibernate.Hql.Ast.HqlExpression { public HqlConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, int type, string value) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlCount` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlCount : NHibernate.Hql.Ast.HqlExpression { - public HqlCount(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression child) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; public HqlCount(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlCount(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression child) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlCountBig` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlCountBig : NHibernate.Hql.Ast.HqlExpression { - public HqlCountBig(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression child) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; public HqlCountBig(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlCountBig(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression child) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlCross` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlCross : NHibernate.Hql.Ast.HqlTreeNode { public HqlCross(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlCrossJoin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlCrossJoin : NHibernate.Hql.Ast.HqlTreeNode { public HqlCrossJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlDecimalConstant` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlDecimalConstant : NHibernate.Hql.Ast.HqlConstant { public HqlDecimalConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string s) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlDelete` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlDelete : NHibernate.Hql.Ast.HqlStatement { - internal HqlDelete(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + internal HqlDelete() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { } } - - // Generated from `NHibernate.Hql.Ast.HqlDictionaryIndex` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlDictionaryIndex : NHibernate.Hql.Ast.HqlIndex { public HqlDictionaryIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression dictionary, NHibernate.Hql.Ast.HqlExpression index) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlExpression), default(NHibernate.Hql.Ast.HqlExpression)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlDirection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum HqlDirection { - Ascending, - Descending, + Ascending = 0, + Descending = 1, } - - // Generated from `NHibernate.Hql.Ast.HqlDirectionAscending` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlDirectionAscending : NHibernate.Hql.Ast.HqlDirectionStatement { public HqlDirectionAscending(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlDirectionDescending` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlDirectionDescending : NHibernate.Hql.Ast.HqlDirectionStatement { public HqlDirectionDescending(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlDirectionStatement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlDirectionStatement : NHibernate.Hql.Ast.HqlStatement { - public HqlDirectionStatement(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlDirectionStatement(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlDistinct` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlDistinct : NHibernate.Hql.Ast.HqlStatement { - public HqlDistinct(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlDistinct(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlDivide` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlDivide : NHibernate.Hql.Ast.HqlExpression { public HqlDivide(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlDot` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlDot : NHibernate.Hql.Ast.HqlExpression { public HqlDot(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlDoubleConstant` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlDoubleConstant : NHibernate.Hql.Ast.HqlConstant { public HqlDoubleConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string s) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlElements` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlElements : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlElements(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlElse` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlElse : NHibernate.Hql.Ast.HqlStatement { - public HqlElse(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression ifFalse) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlElse(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression ifFalse) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlEquality` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlEquality : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlEquality(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlEscape` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlEscape : NHibernate.Hql.Ast.HqlStatement { - public HqlEscape(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlConstant escapeCharacter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlEscape(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlConstant escapeCharacter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlExists` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlExists : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlExists(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlQuery query) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class HqlExpression : NHibernate.Hql.Ast.HqlTreeNode { - protected HqlExpression(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; protected HqlExpression(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + protected HqlExpression(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlExpressionList` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlExpressionList : NHibernate.Hql.Ast.HqlStatement { - public HqlExpressionList(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] expressions) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; - public HqlExpressionList(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable expressions) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlExpressionList(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] expressions) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; + public HqlExpressionList(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable expressions) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlExpressionSubTreeHolder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlExpressionSubTreeHolder : NHibernate.Hql.Ast.HqlExpression { - public HqlExpressionSubTreeHolder(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; public HqlExpressionSubTreeHolder(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlExpressionSubTreeHolder(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlFalse` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlFalse : NHibernate.Hql.Ast.HqlConstant { public HqlFalse(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlFetch` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlFetch : NHibernate.Hql.Ast.HqlTreeNode { public HqlFetch(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlFetchJoin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlFetchJoin : NHibernate.Hql.Ast.HqlTreeNode { public HqlFetchJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlFloatConstant` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlFloatConstant : NHibernate.Hql.Ast.HqlConstant { public HqlFloatConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string s) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlFrom` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlFrom : NHibernate.Hql.Ast.HqlStatement { - internal HqlFrom(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + internal HqlFrom() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { } } - - // Generated from `NHibernate.Hql.Ast.HqlGreaterThan` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlGreaterThan : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlGreaterThan(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlGreaterThanOrEqual` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlGreaterThanOrEqual : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlGreaterThanOrEqual(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlGroupBy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlGroupBy : NHibernate.Hql.Ast.HqlStatement { - public HqlGroupBy(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] expressions) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlGroupBy(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] expressions) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlHaving` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlHaving : NHibernate.Hql.Ast.HqlStatement { - public HqlHaving(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlHaving(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlIdent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlIdent : NHibernate.Hql.Ast.HqlExpression { - internal HqlIdent(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string ident) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; - internal HqlIdent(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Type type) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + internal HqlIdent() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) { } } - - // Generated from `NHibernate.Hql.Ast.HqlIn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlIn : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlIn(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression itemExpression, NHibernate.Hql.Ast.HqlTreeNode source) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlInList` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HqlInList : NHibernate.Hql.Ast.HqlTreeNode - { - public HqlInList(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlTreeNode source) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.HqlIndex` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlIndex : NHibernate.Hql.Ast.HqlExpression { public HqlIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression collection, NHibernate.Hql.Ast.HqlExpression index) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlIndices` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlIndices : NHibernate.Hql.Ast.HqlExpression { public HqlIndices(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression dictionary) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlInequality` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlInequality : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlInequality(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlInner` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class HqlInList : NHibernate.Hql.Ast.HqlTreeNode + { + public HqlInList(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlTreeNode source) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + } public class HqlInner : NHibernate.Hql.Ast.HqlTreeNode { public HqlInner(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlInnerJoin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlInnerJoin : NHibernate.Hql.Ast.HqlTreeNode { public HqlInnerJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlInsert` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlInsert : NHibernate.Hql.Ast.HqlStatement { - internal HqlInsert(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + internal HqlInsert() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { } } - - // Generated from `NHibernate.Hql.Ast.HqlIntegerConstant` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlIntegerConstant : NHibernate.Hql.Ast.HqlConstant { public HqlIntegerConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string s) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlInto` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlInto : NHibernate.Hql.Ast.HqlStatement { - public HqlInto(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlInto(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlIsNotNull` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlIsNotNull : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlIsNotNull(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlIsNull` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlIsNull : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlIsNull(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlJoin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlJoin : NHibernate.Hql.Ast.HqlStatement { - public HqlJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlLeft` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlLeft : NHibernate.Hql.Ast.HqlTreeNode { public HqlLeft(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlLeftFetchJoin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlLeftFetchJoin : NHibernate.Hql.Ast.HqlTreeNode { public HqlLeftFetchJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlLeftJoin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlLeftJoin : NHibernate.Hql.Ast.HqlTreeNode { public HqlLeftJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlLessThan` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlLessThan : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlLessThan(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlLessThanOrEqual` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlLessThanOrEqual : NHibernate.Hql.Ast.HqlBooleanExpression { public HqlLessThanOrEqual(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlLike` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlLike : NHibernate.Hql.Ast.HqlBooleanExpression { - public HqlLike(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs, NHibernate.Hql.Ast.HqlConstant escapeCharacter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; public HqlLike(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlLike(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs, NHibernate.Hql.Ast.HqlConstant escapeCharacter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlMax` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlMax : NHibernate.Hql.Ast.HqlExpression { public HqlMax(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlMethodCall` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlMethodCall : NHibernate.Hql.Ast.HqlExpression { public HqlMethodCall(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string methodName, System.Collections.Generic.IEnumerable parameters) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlMin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlMin : NHibernate.Hql.Ast.HqlExpression { public HqlMin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlMultiplty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlMultiplty : NHibernate.Hql.Ast.HqlExpression { public HqlMultiplty(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlNegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlNegate : NHibernate.Hql.Ast.HqlExpression { public HqlNegate(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlNull` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlNull : NHibernate.Hql.Ast.HqlConstant { public HqlNull(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlOrderBy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlOrderBy : NHibernate.Hql.Ast.HqlStatement { - public HqlOrderBy(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlOrderBy(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlParameter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlParameter : NHibernate.Hql.Ast.HqlExpression { public HqlParameter(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string name) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlQuery : NHibernate.Hql.Ast.HqlExpression { - internal HqlQuery(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlStatement[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + internal HqlQuery() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) { } } - - // Generated from `NHibernate.Hql.Ast.HqlRange` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlRange : NHibernate.Hql.Ast.HqlStatement { - internal HqlRange(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + internal HqlRange() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { } } - - // Generated from `NHibernate.Hql.Ast.HqlRowStar` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlRowStar : NHibernate.Hql.Ast.HqlStatement { - public HqlRowStar(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlRowStar(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlSelect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlSelect : NHibernate.Hql.Ast.HqlStatement { - public HqlSelect(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlSelect(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlSelectFrom` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlSelectFrom : NHibernate.Hql.Ast.HqlStatement { - internal HqlSelectFrom(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + internal HqlSelectFrom() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { } } - - // Generated from `NHibernate.Hql.Ast.HqlSet` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlSet : NHibernate.Hql.Ast.HqlStatement { - public HqlSet(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; - public HqlSet(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlSet(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; + public HqlSet(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlSkip` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlSkip : NHibernate.Hql.Ast.HqlStatement { - public HqlSkip(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression parameter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlSkip(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression parameter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlStar` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlStar : NHibernate.Hql.Ast.HqlExpression { public HqlStar(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlStatement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class HqlStatement : NHibernate.Hql.Ast.HqlTreeNode { protected HqlStatement(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; protected HqlStatement(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlStringConstant` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlStringConstant : NHibernate.Hql.Ast.HqlConstant { public HqlStringConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string s) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlSubtract` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlSubtract : NHibernate.Hql.Ast.HqlExpression { public HqlSubtract(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlSum` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlSum : NHibernate.Hql.Ast.HqlExpression { - public HqlSum(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; public HqlSum(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlSum(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlTake` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlTake : NHibernate.Hql.Ast.HqlStatement { - public HqlTake(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression parameter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlTake(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression parameter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlTransparentCast` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlTransparentCast : NHibernate.Hql.Ast.HqlExpression { public HqlTransparentCast(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, System.Type type) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlTreeBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlTreeBuilder { public NHibernate.Hql.Ast.HqlAdd Add(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null; @@ -15645,17 +13765,18 @@ namespace NHibernate public NHibernate.Hql.Ast.HqlBooleanMethodCall BooleanMethodCall(string methodName, System.Collections.Generic.IEnumerable parameters) => throw null; public NHibernate.Hql.Ast.HqlBooleanNot BooleanNot(NHibernate.Hql.Ast.HqlBooleanExpression operand) => throw null; public NHibernate.Hql.Ast.HqlBooleanOr BooleanOr(NHibernate.Hql.Ast.HqlBooleanExpression lhs, NHibernate.Hql.Ast.HqlBooleanExpression rhs) => throw null; - public NHibernate.Hql.Ast.HqlCase Case(NHibernate.Hql.Ast.HqlWhen[] whenClauses, NHibernate.Hql.Ast.HqlExpression ifFalse) => throw null; public NHibernate.Hql.Ast.HqlCase Case(NHibernate.Hql.Ast.HqlWhen[] whenClauses) => throw null; + public NHibernate.Hql.Ast.HqlCase Case(NHibernate.Hql.Ast.HqlWhen[] whenClauses, NHibernate.Hql.Ast.HqlExpression ifFalse) => throw null; public NHibernate.Hql.Ast.HqlCast Cast(NHibernate.Hql.Ast.HqlExpression expression, System.Type type) => throw null; public NHibernate.Hql.Ast.HqlClass Class() => throw null; public NHibernate.Hql.Ast.HqlTreeNode Coalesce(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null; public NHibernate.Hql.Ast.HqlConcat Concat(params NHibernate.Hql.Ast.HqlExpression[] args) => throw null; public NHibernate.Hql.Ast.HqlConstant Constant(object value) => throw null; - public NHibernate.Hql.Ast.HqlCount Count(NHibernate.Hql.Ast.HqlExpression child) => throw null; public NHibernate.Hql.Ast.HqlCount Count() => throw null; + public NHibernate.Hql.Ast.HqlCount Count(NHibernate.Hql.Ast.HqlExpression child) => throw null; public NHibernate.Hql.Ast.HqlCountBig CountBig(NHibernate.Hql.Ast.HqlExpression child) => throw null; public NHibernate.Hql.Ast.HqlCrossJoin CrossJoin(NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) => throw null; + public HqlTreeBuilder() => throw null; public NHibernate.Hql.Ast.HqlDelete Delete(NHibernate.Hql.Ast.HqlFrom from) => throw null; public NHibernate.Hql.Ast.HqlDirectionDescending Descending() => throw null; public NHibernate.Hql.Ast.HqlTreeNode DictionaryItem(NHibernate.Hql.Ast.HqlExpression dictionary, NHibernate.Hql.Ast.HqlExpression index) => throw null; @@ -15680,7 +13801,6 @@ namespace NHibernate public NHibernate.Hql.Ast.HqlGreaterThanOrEqual GreaterThanOrEqual(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null; public NHibernate.Hql.Ast.HqlGroupBy GroupBy(params NHibernate.Hql.Ast.HqlExpression[] expressions) => throw null; public NHibernate.Hql.Ast.HqlHaving Having(NHibernate.Hql.Ast.HqlExpression expression) => throw null; - public HqlTreeBuilder() => throw null; public NHibernate.Hql.Ast.HqlIdent Ident(string ident) => throw null; public NHibernate.Hql.Ast.HqlIdent Ident(System.Type type) => throw null; public NHibernate.Hql.Ast.HqlIn In(NHibernate.Hql.Ast.HqlExpression itemExpression, NHibernate.Hql.Ast.HqlTreeNode source) => throw null; @@ -15697,32 +13817,32 @@ namespace NHibernate public NHibernate.Hql.Ast.HqlLeftJoin LeftJoin(NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) => throw null; public NHibernate.Hql.Ast.HqlLessThan LessThan(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null; public NHibernate.Hql.Ast.HqlLessThanOrEqual LessThanOrEqual(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null; - public NHibernate.Hql.Ast.HqlLike Like(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs, NHibernate.Hql.Ast.HqlConstant escapeCharacter) => throw null; public NHibernate.Hql.Ast.HqlLike Like(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null; + public NHibernate.Hql.Ast.HqlLike Like(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs, NHibernate.Hql.Ast.HqlConstant escapeCharacter) => throw null; public NHibernate.Hql.Ast.HqlMax Max(NHibernate.Hql.Ast.HqlExpression expression) => throw null; - public NHibernate.Hql.Ast.HqlMethodCall MethodCall(string methodName, params NHibernate.Hql.Ast.HqlExpression[] parameters) => throw null; public NHibernate.Hql.Ast.HqlMethodCall MethodCall(string methodName, System.Collections.Generic.IEnumerable parameters) => throw null; + public NHibernate.Hql.Ast.HqlMethodCall MethodCall(string methodName, params NHibernate.Hql.Ast.HqlExpression[] parameters) => throw null; public NHibernate.Hql.Ast.HqlMin Min(NHibernate.Hql.Ast.HqlExpression expression) => throw null; public NHibernate.Hql.Ast.HqlMultiplty Multiply(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null; public NHibernate.Hql.Ast.HqlNegate Negate(NHibernate.Hql.Ast.HqlExpression expression) => throw null; public NHibernate.Hql.Ast.HqlOrderBy OrderBy() => throw null; public NHibernate.Hql.Ast.HqlParameter Parameter(string name) => throw null; - public NHibernate.Hql.Ast.HqlTreeNode Query(NHibernate.Hql.Ast.HqlSelectFrom selectFrom, NHibernate.Hql.Ast.HqlWhere where, NHibernate.Hql.Ast.HqlOrderBy orderBy) => throw null; - public NHibernate.Hql.Ast.HqlQuery Query(NHibernate.Hql.Ast.HqlSelectFrom selectFrom, NHibernate.Hql.Ast.HqlWhere where) => throw null; - public NHibernate.Hql.Ast.HqlQuery Query(NHibernate.Hql.Ast.HqlSelectFrom selectFrom) => throw null; public NHibernate.Hql.Ast.HqlQuery Query() => throw null; + public NHibernate.Hql.Ast.HqlQuery Query(NHibernate.Hql.Ast.HqlSelectFrom selectFrom) => throw null; + public NHibernate.Hql.Ast.HqlQuery Query(NHibernate.Hql.Ast.HqlSelectFrom selectFrom, NHibernate.Hql.Ast.HqlWhere where) => throw null; + public NHibernate.Hql.Ast.HqlTreeNode Query(NHibernate.Hql.Ast.HqlSelectFrom selectFrom, NHibernate.Hql.Ast.HqlWhere where, NHibernate.Hql.Ast.HqlOrderBy orderBy) => throw null; public NHibernate.Hql.Ast.HqlRange Range(params NHibernate.Hql.Ast.HqlIdent[] idents) => throw null; public NHibernate.Hql.Ast.HqlRange Range(NHibernate.Hql.Ast.HqlTreeNode ident, NHibernate.Hql.Ast.HqlAlias alias) => throw null; public NHibernate.Hql.Ast.HqlRowStar RowStar() => throw null; + public NHibernate.Hql.Ast.HqlSelect Select(NHibernate.Hql.Ast.HqlExpression expression) => throw null; public NHibernate.Hql.Ast.HqlSelect Select(params NHibernate.Hql.Ast.HqlExpression[] expression) => throw null; public NHibernate.Hql.Ast.HqlSelect Select(System.Collections.Generic.IEnumerable expressions) => throw null; - public NHibernate.Hql.Ast.HqlSelect Select(NHibernate.Hql.Ast.HqlExpression expression) => throw null; + public NHibernate.Hql.Ast.HqlSelectFrom SelectFrom() => throw null; public NHibernate.Hql.Ast.HqlSelectFrom SelectFrom(NHibernate.Hql.Ast.HqlSelect select) => throw null; public NHibernate.Hql.Ast.HqlSelectFrom SelectFrom(NHibernate.Hql.Ast.HqlFrom from, NHibernate.Hql.Ast.HqlSelect select) => throw null; public NHibernate.Hql.Ast.HqlSelectFrom SelectFrom(NHibernate.Hql.Ast.HqlFrom from) => throw null; - public NHibernate.Hql.Ast.HqlSelectFrom SelectFrom() => throw null; - public NHibernate.Hql.Ast.HqlSet Set(NHibernate.Hql.Ast.HqlExpression expression) => throw null; public NHibernate.Hql.Ast.HqlSet Set() => throw null; + public NHibernate.Hql.Ast.HqlSet Set(NHibernate.Hql.Ast.HqlExpression expression) => throw null; public NHibernate.Hql.Ast.HqlSkip Skip(NHibernate.Hql.Ast.HqlExpression parameter) => throw null; public NHibernate.Hql.Ast.HqlStar Star() => throw null; public NHibernate.Hql.Ast.HqlSubtract Subtract(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null; @@ -15730,1951 +13850,142 @@ namespace NHibernate public NHibernate.Hql.Ast.HqlTake Take(NHibernate.Hql.Ast.HqlExpression parameter) => throw null; public NHibernate.Hql.Ast.HqlTransparentCast TransparentCast(NHibernate.Hql.Ast.HqlExpression expression, System.Type type) => throw null; public NHibernate.Hql.Ast.HqlTrue True() => throw null; - public NHibernate.Hql.Ast.HqlUpdate Update(NHibernate.Hql.Ast.HqlVersioned versioned, NHibernate.Hql.Ast.HqlFrom from, NHibernate.Hql.Ast.HqlSet set) => throw null; public NHibernate.Hql.Ast.HqlUpdate Update(NHibernate.Hql.Ast.HqlFrom from, NHibernate.Hql.Ast.HqlSet set) => throw null; + public NHibernate.Hql.Ast.HqlUpdate Update(NHibernate.Hql.Ast.HqlVersioned versioned, NHibernate.Hql.Ast.HqlFrom from, NHibernate.Hql.Ast.HqlSet set) => throw null; public NHibernate.Hql.Ast.HqlVersioned Versioned() => throw null; public NHibernate.Hql.Ast.HqlWhen When(NHibernate.Hql.Ast.HqlExpression predicate, NHibernate.Hql.Ast.HqlExpression ifTrue) => throw null; public NHibernate.Hql.Ast.HqlWhere Where(NHibernate.Hql.Ast.HqlExpression expression) => throw null; public NHibernate.Hql.Ast.HqlWith With(NHibernate.Hql.Ast.HqlExpression expression) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlTreeNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlTreeNode { public System.Collections.Generic.IEnumerable Children { get => throw null; } public void ClearChildren() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory Factory { get => throw null; set => throw null; } - protected HqlTreeNode(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) => throw null; protected HqlTreeNode(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable children) => throw null; + protected HqlTreeNode(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) => throw null; + public NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory Factory { get => throw null; } public System.Collections.Generic.IEnumerable NodesPostOrder { get => throw null; } public System.Collections.Generic.IEnumerable NodesPreOrder { get => throw null; } protected void SetText(string text) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlTreeNodeExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class HqlTreeNodeExtensions + public static partial class HqlTreeNodeExtensions { public static NHibernate.Hql.Ast.HqlBooleanExpression AsBooleanExpression(this NHibernate.Hql.Ast.HqlTreeNode node) => throw null; public static NHibernate.Hql.Ast.HqlExpression AsExpression(this NHibernate.Hql.Ast.HqlTreeNode node) => throw null; public static NHibernate.Hql.Ast.HqlBooleanExpression ToBooleanExpression(this NHibernate.Hql.Ast.HqlTreeNode node) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlTrue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlTrue : NHibernate.Hql.Ast.HqlConstant { public HqlTrue(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlUpdate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlUpdate : NHibernate.Hql.Ast.HqlStatement { - internal HqlUpdate(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + internal HqlUpdate() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { } } - - // Generated from `NHibernate.Hql.Ast.HqlVersioned` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlVersioned : NHibernate.Hql.Ast.HqlExpression { public HqlVersioned(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlWhen` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlWhen : NHibernate.Hql.Ast.HqlStatement { - public HqlWhen(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression predicate, NHibernate.Hql.Ast.HqlExpression ifTrue) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlWhen(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression predicate, NHibernate.Hql.Ast.HqlExpression ifTrue) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlWhere` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlWhere : NHibernate.Hql.Ast.HqlStatement { - public HqlWhere(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; + public HqlWhere(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } - - // Generated from `NHibernate.Hql.Ast.HqlWith` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlWith : NHibernate.Hql.Ast.HqlStatement { - public HqlWith(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable)) => throw null; - } - - namespace ANTLR - { - // Generated from `NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ASTQueryTranslatorFactory : NHibernate.Hql.IQueryTranslatorFactory - { - public ASTQueryTranslatorFactory() => throw null; - public NHibernate.Hql.IQueryTranslator[] CreateQueryTranslators(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary filters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.AstPolymorphicProcessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AstPolymorphicProcessor - { - public static NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] Process(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ast, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.CrossJoinDictionaryArrays` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class CrossJoinDictionaryArrays - { - public static System.Collections.Generic.IList> PerformCrossJoin(System.Collections.Generic.IEnumerable> input) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.DetailedSemanticException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DetailedSemanticException : NHibernate.Hql.Ast.ANTLR.SemanticException - { - public DetailedSemanticException(string message, System.Exception inner) : base(default(string)) => throw null; - public DetailedSemanticException(string message) : base(default(string)) => throw null; - protected DetailedSemanticException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.HqlLexer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HqlLexer : Antlr.Runtime.Lexer - { - public const int AGGREGATE = default; - public const int ALIAS = default; - public const int ALL = default; - public const int AND = default; - public const int ANY = default; - public const int AS = default; - public const int ASCENDING = default; - public const int AVG = default; - public const int BAND = default; - public const int BETWEEN = default; - public const int BNOT = default; - public const int BOR = default; - public const int BOTH = default; - public const int BXOR = default; - public const int CASE = default; - public const int CASE2 = default; - public const int CLASS = default; - public const int CLOSE = default; - public const int CLOSE_BRACKET = default; - public const int COLON = default; - public const int COMMA = default; - public const int CONCAT = default; - public const int CONSTANT = default; - public const int CONSTRUCTOR = default; - public const int COUNT = default; - public const int CROSS = default; - public const int DELETE = default; - public const int DESCENDING = default; - public const int DISTINCT = default; - public const int DIV = default; - public const int DOT = default; - public const int ELEMENTS = default; - public const int ELSE = default; - public const int EMPTY = default; - public const int END = default; - public const int EOF = default; - public const int EQ = default; - public const int ESCAPE = default; - public const int ESCqs = default; - public const int EXISTS = default; - public const int EXPONENT = default; - public const int EXPR_LIST = default; - public override Antlr.Runtime.IToken Emit() => throw null; - public const int FALSE = default; - public const int FETCH = default; - public const int FILTER_ENTITY = default; - public const int FLOAT_SUFFIX = default; - public const int FROM = default; - public const int FULL = default; - public const int GE = default; - public const int GROUP = default; - public const int GT = default; - public override string GrammarFileName { get => throw null; } - public const int HAVING = default; - public const int HEX_DIGIT = default; - public HqlLexer(Antlr.Runtime.ICharStream input, Antlr.Runtime.RecognizerSharedState state) => throw null; - public HqlLexer(Antlr.Runtime.ICharStream input) => throw null; - public HqlLexer() => throw null; - public const int IDENT = default; - public const int ID_LETTER = default; - public const int ID_START_LETTER = default; - public const int IN = default; - public const int INDEX_OP = default; - public const int INDICES = default; - public const int INNER = default; - public const int INSERT = default; - public const int INTO = default; - public const int IN_LIST = default; - public const int IS = default; - public const int IS_NOT_NULL = default; - public const int IS_NULL = default; - protected override void InitDFAs() => throw null; - public const int JAVA_CONSTANT = default; - public const int JOIN = default; - public const int LE = default; - public const int LEADING = default; - public const int LEFT = default; - public const int LIKE = default; - public const int LITERAL_by = default; - public const int LT = default; - public const int MAX = default; - public const int MEMBER = default; - public const int METHOD_CALL = default; - public const int MIN = default; - public const int MINUS = default; - public const int NE = default; - public const int NEW = default; - public const int NOT = default; - public const int NOT_BETWEEN = default; - public const int NOT_IN = default; - public const int NOT_LIKE = default; - public const int NULL = default; - public const int NUM_DECIMAL = default; - public const int NUM_DOUBLE = default; - public const int NUM_FLOAT = default; - public const int NUM_INT = default; - public const int NUM_LONG = default; - public const int OBJECT = default; - public const int OF = default; - public const int ON = default; - public const int OPEN = default; - public const int OPEN_BRACKET = default; - public const int OR = default; - public const int ORDER = default; - public const int ORDER_ELEMENT = default; - public const int OUTER = default; - public const int PARAM = default; - public const int PLUS = default; - public const int PROPERTIES = default; - public const int QUERY = default; - public const int QUOTED_String = default; - public const int RANGE = default; - public const int RIGHT = default; - public const int ROW_STAR = default; - public const int SELECT = default; - public const int SELECT_FROM = default; - public const int SET = default; - public const int SKIP = default; - public const int SOME = default; - public const int SQL_NE = default; - public const int STAR = default; - public const int SUM = default; - public const int TAKE = default; - public const int THEN = default; - public const int TRAILING = default; - public const int TRUE = default; - public const int T__134 = default; - public const int T__135 = default; - public const int UNARY_MINUS = default; - public const int UNARY_PLUS = default; - public const int UNION = default; - public const int UPDATE = default; - public const int VECTOR_EXPR = default; - public const int VERSIONED = default; - public const int WEIRD_IDENT = default; - public const int WHEN = default; - public const int WHERE = default; - public const int WITH = default; - public const int WS = default; - public override void mTokens() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.HqlParseEngine` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HqlParseEngine - { - public HqlParseEngine(string hql, bool filter, NHibernate.Engine.ISessionFactoryImplementor sfi) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Parse() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.HqlParser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HqlParser : Antlr.Runtime.Parser - { - public const int AGGREGATE = default; - public const int ALIAS = default; - public const int ALL = default; - public const int AND = default; - public const int ANY = default; - public const int AS = default; - public const int ASCENDING = default; - public const int AVG = default; - public const int BAND = default; - public const int BETWEEN = default; - public const int BNOT = default; - public const int BOR = default; - public const int BOTH = default; - public const int BXOR = default; - public const int CASE = default; - public const int CASE2 = default; - public const int CLASS = default; - public const int CLOSE = default; - public const int CLOSE_BRACKET = default; - public const int COLON = default; - public const int COMMA = default; - public const int CONCAT = default; - public const int CONSTANT = default; - public const int CONSTRUCTOR = default; - public const int COUNT = default; - public const int CROSS = default; - public const int DELETE = default; - public const int DESCENDING = default; - public const int DISTINCT = default; - public const int DIV = default; - public const int DOT = default; - public const int ELEMENTS = default; - public const int ELSE = default; - public const int EMPTY = default; - public const int END = default; - public const int EOF = default; - public const int EQ = default; - public const int ESCAPE = default; - public const int ESCqs = default; - public const int EXISTS = default; - public const int EXPONENT = default; - public const int EXPR_LIST = default; - public const int FALSE = default; - public const int FETCH = default; - public const int FILTER_ENTITY = default; - public const int FLOAT_SUFFIX = default; - public const int FROM = default; - public const int FULL = default; - public bool Filter { get => throw null; set => throw null; } - public const int GE = default; - public const int GROUP = default; - public const int GT = default; - public override string GrammarFileName { get => throw null; } - public const int HAVING = default; - public const int HEX_DIGIT = default; - public void HandleDotIdent() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode HandleIdentifierError(Antlr.Runtime.IToken token, Antlr.Runtime.RecognitionException ex) => throw null; - public HqlParser(Antlr.Runtime.ITokenStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.ITokenStream)) => throw null; - public HqlParser(Antlr.Runtime.ITokenStream input) : base(default(Antlr.Runtime.ITokenStream)) => throw null; - public const int IDENT = default; - public const int ID_LETTER = default; - public const int ID_START_LETTER = default; - public const int IN = default; - public const int INDEX_OP = default; - public const int INDICES = default; - public const int INNER = default; - public const int INSERT = default; - public const int INTO = default; - public const int IN_LIST = default; - public const int IS = default; - public const int IS_NOT_NULL = default; - public const int IS_NULL = default; - public const int JAVA_CONSTANT = default; - public const int JOIN = default; - public const int LE = default; - public const int LEADING = default; - public const int LEFT = default; - public const int LIKE = default; - public const int LITERAL_by = default; - public const int LT = default; - public const int MAX = default; - public const int MEMBER = default; - public const int METHOD_CALL = default; - public const int MIN = default; - public const int MINUS = default; - public const int NE = default; - public const int NEW = default; - public const int NOT = default; - public const int NOT_BETWEEN = default; - public const int NOT_IN = default; - public const int NOT_LIKE = default; - public const int NULL = default; - public const int NUM_DECIMAL = default; - public const int NUM_DOUBLE = default; - public const int NUM_FLOAT = default; - public const int NUM_INT = default; - public const int NUM_LONG = default; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode NegateNode(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node) => throw null; - public const int OBJECT = default; - public const int OF = default; - public const int ON = default; - public const int OPEN = default; - public const int OPEN_BRACKET = default; - public const int OR = default; - public const int ORDER = default; - public const int ORDER_ELEMENT = default; - public const int OUTER = default; - public const int PARAM = default; - public const int PLUS = default; - public const int PROPERTIES = default; - public NHibernate.Hql.Ast.ANTLR.IParseErrorHandler ParseErrorHandler { get => throw null; set => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ProcessEqualityExpression(object o) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ProcessMemberOf(Antlr.Runtime.IToken n, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode p, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root) => throw null; - public const int QUERY = default; - public const int QUOTED_String = default; - public const int RANGE = default; - public const int RIGHT = default; - public const int ROW_STAR = default; - protected override object RecoverFromMismatchedToken(Antlr.Runtime.IIntStream input, int ttype, Antlr.Runtime.BitSet follow) => throw null; - public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null; - public const int SELECT = default; - public const int SELECT_FROM = default; - public const int SET = default; - public const int SKIP = default; - public const int SOME = default; - public const int SQL_NE = default; - public const int STAR = default; - public const int SUM = default; - public const int TAKE = default; - public const int THEN = default; - public const int TRAILING = default; - public const int TRUE = default; - public const int T__134 = default; - public const int T__135 = default; - public override string[] TokenNames { get => throw null; } - public Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get => throw null; set => throw null; } - public const int UNARY_MINUS = default; - public const int UNARY_PLUS = default; - public const int UNION = default; - public const int UPDATE = default; - public const int VECTOR_EXPR = default; - public const int VERSIONED = default; - public const int WEIRD_IDENT = default; - public const int WHEN = default; - public const int WHERE = default; - public const int WITH = default; - public const int WS = default; - public void WeakKeywords() => throw null; - public void WeakKeywords2() => throw null; - public Antlr.Runtime.AstParserRuleReturnScope statement() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.HqlSqlWalker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HqlSqlWalker : Antlr.Runtime.Tree.TreeParser - { - public const int AGGREGATE = default; - public const int ALIAS = default; - public const int ALIAS_REF = default; - public const int ALL = default; - public const int AND = default; - public const int ANY = default; - public const int AS = default; - public const int ASCENDING = default; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory ASTFactory { get => throw null; } - public const int AVG = default; - public void AddQuerySpaces(string[] spaces) => throw null; - public NHibernate.Hql.Ast.ANTLR.Util.AliasGenerator AliasGenerator { get => throw null; } - public System.Collections.Generic.IList AssignmentSpecifications { get => throw null; } - public const int BAND = default; - public const int BETWEEN = default; - public const int BNOT = default; - public const int BOGUS = default; - public const int BOR = default; - public const int BOTH = default; - public const int BXOR = default; - public const int CASE = default; - public const int CASE2 = default; - public const int CLASS = default; - public const int CLOSE = default; - public const int CLOSE_BRACKET = default; - public const int COLON = default; - public const int COMMA = default; - public const int CONCAT = default; - public const int CONSTANT = default; - public const int CONSTRUCTOR = default; - public const int COUNT = default; - public const int CROSS = default; - public string CollectionFilterRole { get => throw null; } - public int CurrentClauseType { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.FromClause CurrentFromClause { get => throw null; } - public int CurrentStatementType { get => throw null; } - public const int DELETE = default; - public const int DESCENDING = default; - public const int DISTINCT = default; - public const int DIV = default; - public const int DOT = default; - public const int ELEMENTS = default; - public const int ELSE = default; - public const int EMPTY = default; - public const int END = default; - public const int ENTITY_JOIN = default; - public const int EOF = default; - public const int EQ = default; - public const int ESCAPE = default; - public const int ESCqs = default; - public const int EXISTS = default; - public const int EXPONENT = default; - public const int EXPR_LIST = default; - public System.Collections.Generic.IDictionary EnabledFilters { get => throw null; } - protected void EvaluateAssignment(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode eq) => throw null; - public const int FALSE = default; - public const int FETCH = default; - public const int FILTERS = default; - public const int FILTER_ENTITY = default; - public const int FLOAT_SUFFIX = default; - public const int FROM = default; - public const int FROM_FRAGMENT = default; - public const int FULL = default; - public const int GE = default; - public const int GROUP = default; - public const int GT = default; - public NHibernate.Hql.Ast.ANTLR.Tree.FromClause GetFinalFromClause() => throw null; - public override string GrammarFileName { get => throw null; } - public const int HAVING = default; - public const int HEX_DIGIT = default; - protected void HandleResultVariableRef(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode resultVariableRef) => throw null; - public HqlSqlWalker(NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl qti, NHibernate.Engine.ISessionFactoryImplementor sfi, Antlr.Runtime.Tree.ITreeNodeStream input, System.Collections.Generic.IDictionary tokenReplacements, string collectionRole) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; - public HqlSqlWalker(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; - public HqlSqlWalker(Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; - internal HqlSqlWalker(NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl qti, NHibernate.Engine.ISessionFactoryImplementor sfi, Antlr.Runtime.Tree.ITreeNodeStream input, System.Collections.Generic.IDictionary tokenReplacements, System.Collections.Generic.IDictionary namedParameters, string collectionRole) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; - public const int IDENT = default; - public const int ID_LETTER = default; - public const int ID_START_LETTER = default; - public const int IMPLIED_FROM = default; - public const int IN = default; - public const int INDEX_OP = default; - public const int INDICES = default; - public const int INNER = default; - public const int INSERT = default; - public const int INTO = default; - public const int IN_LIST = default; - public const int IS = default; - public const int IS_NOT_NULL = default; - public const int IS_NULL = default; - public NHibernate.SqlCommand.JoinType ImpliedJoinType { get => throw null; } - public bool IsComparativeExpressionClause { get => throw null; } - public bool IsFilter() => throw null; - public bool IsInCase { get => throw null; } - public bool IsInFrom { get => throw null; } - public bool IsInSelect { get => throw null; } - protected bool IsOrderExpressionResultVariableRef(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode orderExpressionNode) => throw null; - public bool IsSelectStatement { get => throw null; } - public bool IsShallowQuery { get => throw null; } - public bool IsSubQuery { get => throw null; } - public const int JAVA_CONSTANT = default; - public const int JOIN = default; - public const int JOIN_FRAGMENT = default; - public const int LE = default; - public const int LEADING = default; - public const int LEFT = default; - public const int LEFT_OUTER = default; - public const int LIKE = default; - public const int LITERAL_by = default; - public const int LT = default; - public NHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor LiteralProcessor { get => throw null; } - protected NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LookupProperty(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode dot, bool root, bool inSelect) => throw null; - public const int MAX = default; - public const int MEMBER = default; - public const int METHOD_CALL = default; - public const int METHOD_NAME = default; - public const int MIN = default; - public const int MINUS = default; - public const int NAMED_PARAM = default; - public const int NE = default; - public const int NEW = default; - public const int NOT = default; - public const int NOT_BETWEEN = default; - public const int NOT_IN = default; - public const int NOT_LIKE = default; - public const int NULL = default; - public const int NUM_DECIMAL = default; - public const int NUM_DOUBLE = default; - public const int NUM_FLOAT = default; - public const int NUM_INT = default; - public const int NUM_LONG = default; - public System.Collections.Generic.IDictionary NamedParameters { get => throw null; } - public int NumberOfParametersInSetClause { get => throw null; } - public const int OBJECT = default; - public const int OF = default; - public const int ON = default; - public const int OPEN = default; - public const int OPEN_BRACKET = default; - public const int OR = default; - public const int ORDER = default; - public const int ORDER_ELEMENT = default; - public const int OUTER = default; - public const int PARAM = default; - public const int PLUS = default; - public const int PROPERTIES = default; - public const int PROPERTY_REF = default; - public System.Collections.Generic.IList Parameters { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.IParseErrorHandler ParseErrorHandler { get => throw null; set => throw null; } - public const int QUERY = default; - public const int QUOTED_String = default; - public System.Collections.Generic.ISet QuerySpaces { get => throw null; } - public const int RANGE = default; - public const int RESULT_VARIABLE_REF = default; - public const int RIGHT = default; - public const int RIGHT_OUTER = default; - public const int ROW_STAR = default; - public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null; - public string[] ReturnAliases { get => throw null; } - public NHibernate.Type.IType[] ReturnTypes { get => throw null; } - public const int SELECT = default; - public const int SELECT_CLAUSE = default; - public const int SELECT_COLUMNS = default; - public const int SELECT_EXPR = default; - public const int SELECT_FROM = default; - public const int SET = default; - public const int SKIP = default; - public const int SOME = default; - public const int SQL_NE = default; - public const int SQL_TOKEN = default; - public const int STAR = default; - public const int SUM = default; - public NHibernate.Hql.Ast.ANTLR.Tree.SelectClause SelectClause { get => throw null; } - public int StatementType { get => throw null; } - public static bool SupportsIdGenWithBulkInsertion(NHibernate.Id.IIdentifierGenerator generator) => throw null; - public const int TAKE = default; - public const int THEN = default; - public const int THETA_JOINS = default; - public const int TRAILING = default; - public const int TRUE = default; - public const int T__134 = default; - public const int T__135 = default; - public override string[] TokenNames { get => throw null; } - public System.Collections.Generic.IDictionary TokenReplacements { get => throw null; } - public Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get => throw null; set => throw null; } - public const int UNARY_MINUS = default; - public const int UNARY_PLUS = default; - public const int UNION = default; - public const int UPDATE = default; - public const int VECTOR_EXPR = default; - public const int VERSIONED = default; - public const int WEIRD_IDENT = default; - public const int WHEN = default; - public const int WHERE = default; - public const int WITH = default; - public const int WS = default; - public Antlr.Runtime.Tree.AstTreeRuleReturnScope statement() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.HqlToken` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HqlToken : Antlr.Runtime.CommonToken - { - public HqlToken(Antlr.Runtime.IToken other) => throw null; - public HqlToken(Antlr.Runtime.ICharStream input, int type, int channel, int start, int stop) => throw null; - public bool PossibleId { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.IErrorReporter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IErrorReporter - { - void ReportError(string s); - void ReportError(Antlr.Runtime.RecognitionException e); - void ReportWarning(string s); - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.IParseErrorHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IParseErrorHandler : NHibernate.Hql.Ast.ANTLR.IErrorReporter - { - int GetErrorCount(); - void ThrowQueryException(); - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.InvalidPathException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class InvalidPathException : NHibernate.Hql.Ast.ANTLR.SemanticException - { - public InvalidPathException(string s) : base(default(string)) => throw null; - protected InvalidPathException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.InvalidWithClauseException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class InvalidWithClauseException : NHibernate.Hql.Ast.ANTLR.QuerySyntaxException - { - public InvalidWithClauseException(string message, System.Exception inner) => throw null; - public InvalidWithClauseException(string message) => throw null; - protected InvalidWithClauseException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected InvalidWithClauseException() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.QuerySyntaxException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QuerySyntaxException : NHibernate.QueryException - { - public static NHibernate.Hql.Ast.ANTLR.QuerySyntaxException Convert(Antlr.Runtime.RecognitionException e, string hql) => throw null; - public static NHibernate.Hql.Ast.ANTLR.QuerySyntaxException Convert(Antlr.Runtime.RecognitionException e) => throw null; - public QuerySyntaxException(string message, string hql, System.Exception inner) => throw null; - public QuerySyntaxException(string message, string hql) => throw null; - public QuerySyntaxException(string message, System.Exception inner) => throw null; - public QuerySyntaxException(string message) => throw null; - protected QuerySyntaxException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected QuerySyntaxException() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryTranslatorImpl : NHibernate.Hql.IQueryTranslator, NHibernate.Hql.IFilterTranslator - { - public virtual NHibernate.Type.IType[] ActualReturnTypes { get => throw null; } - public NHibernate.Engine.Query.ParameterMetadata BuildParameterMetadata() => throw null; - public System.Collections.Generic.IList CollectSqlStrings { get => throw null; } - public System.Collections.Generic.IList CollectedParameterSpecifications { get => throw null; } - public void Compile(string collectionRole, System.Collections.Generic.IDictionary replacements, bool shallow) => throw null; - public void Compile(System.Collections.Generic.IDictionary replacements, bool shallow) => throw null; - public bool ContainsCollectionFetches { get => throw null; } - public System.Collections.Generic.IDictionary EnabledFilters { get => throw null; } - public int ExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task ExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public string[][] GetColumnNames() => throw null; - public System.Collections.IEnumerable GetEnumerable(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session) => throw null; - public System.Threading.Tasks.Task GetEnumerableAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null; - public bool IsManipulationStatement { get => throw null; } - public bool IsShallowQuery { get => throw null; } - public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null; - public System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.Loader.Loader Loader { get => throw null; } - public string QueryIdentifier { get => throw null; } - public System.Collections.Generic.ISet QuerySpaces { get => throw null; } - public string QueryString { get => throw null; } - public QueryTranslatorImpl(string queryIdentifier, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parsedQuery, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public string[] ReturnAliases { get => throw null; } - public NHibernate.Type.IType[] ReturnTypes { get => throw null; } - public string SQLString { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.IStatement SqlAST { get => throw null; } - public NHibernate.SqlCommand.SqlString SqlString { get => throw null; } - public System.Collections.Generic.ISet UncacheableCollectionPersisters { get => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.SemanticException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SemanticException : NHibernate.QueryException - { - public SemanticException(string message, System.Exception inner) => throw null; - public SemanticException(string message) => throw null; - protected SemanticException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.SessionFactoryHelperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SessionFactoryHelperExtensions - { - public NHibernate.Engine.JoinSequence CreateCollectionJoinSequence(NHibernate.Persister.Collection.IQueryableCollection collPersister, string collectionName) => throw null; - public NHibernate.Engine.JoinSequence CreateJoinSequence(bool implicitJoin, NHibernate.Type.IAssociationType associationType, string tableAlias, NHibernate.SqlCommand.JoinType joinType, string[] columns) => throw null; - public NHibernate.Engine.JoinSequence CreateJoinSequence() => throw null; - public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; } - public NHibernate.Type.IType FindFunctionReturnType(string functionName, System.Collections.Generic.IEnumerable arguments) => throw null; - public NHibernate.Type.IType FindFunctionReturnType(string functionName, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode first) => throw null; - public NHibernate.Persister.Entity.IQueryable FindQueryableUsingImports(string className) => throw null; - public NHibernate.Dialect.Function.ISQLFunction FindSQLFunction(string functionName) => throw null; - public string[][] GenerateColumnNames(NHibernate.Type.IType[] sqlResultTypes) => throw null; - public string[] GetCollectionElementColumns(string role, string roleAlias) => throw null; - public NHibernate.Persister.Collection.IQueryableCollection GetCollectionPersister(string collectionFilterRole) => throw null; - public NHibernate.Type.IAssociationType GetElementAssociationType(NHibernate.Type.CollectionType collectionType) => throw null; - public string GetIdentifierOrUniqueKeyPropertyName(NHibernate.Type.EntityType entityType) => throw null; - public string GetImportedClassName(string className) => throw null; - public bool HasPhysicalDiscriminatorColumn(NHibernate.Persister.Entity.IQueryable persister) => throw null; - public bool IsStrictJPAQLComplianceEnabled { get => throw null; } - public NHibernate.Persister.Entity.IEntityPersister RequireClassPersister(string name) => throw null; - public NHibernate.Persister.Collection.IQueryableCollection RequireQueryableCollection(string role) => throw null; - public SessionFactoryHelperExtensions(NHibernate.Engine.ISessionFactoryImplementor sfi) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.SqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SqlGenerator : Antlr.Runtime.Tree.TreeParser, NHibernate.Hql.Ast.ANTLR.IErrorReporter - { - public const int AGGREGATE = default; - public const int ALIAS = default; - public const int ALIAS_REF = default; - public const int ALL = default; - public const int AND = default; - public const int ANY = default; - public const int AS = default; - public const int ASCENDING = default; - public const int AVG = default; - public const int BAND = default; - public const int BETWEEN = default; - public const int BNOT = default; - public const int BOGUS = default; - public const int BOR = default; - public const int BOTH = default; - public const int BXOR = default; - public const int CASE = default; - public const int CASE2 = default; - public const int CLASS = default; - public const int CLOSE = default; - public const int CLOSE_BRACKET = default; - public const int COLON = default; - public const int COMMA = default; - public const int CONCAT = default; - public const int CONSTANT = default; - public const int CONSTRUCTOR = default; - public const int COUNT = default; - public const int CROSS = default; - public const int DELETE = default; - public const int DESCENDING = default; - public const int DISTINCT = default; - public const int DIV = default; - public const int DOT = default; - public const int ELEMENTS = default; - public const int ELSE = default; - public const int EMPTY = default; - public const int END = default; - public const int ENTITY_JOIN = default; - public const int EOF = default; - public const int EQ = default; - public const int ESCAPE = default; - public const int ESCqs = default; - public const int EXISTS = default; - public const int EXPONENT = default; - public const int EXPR_LIST = default; - public const int FALSE = default; - public const int FETCH = default; - public const int FILTERS = default; - public const int FILTER_ENTITY = default; - public const int FLOAT_SUFFIX = default; - public const int FROM = default; - public const int FROM_FRAGMENT = default; - public const int FULL = default; - protected virtual void FromFragmentSeparator(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode a) => throw null; - public const int GE = default; - public const int GROUP = default; - public const int GT = default; - public System.Collections.Generic.IList GetCollectedParameters() => throw null; - public NHibernate.SqlCommand.SqlString GetSQL() => throw null; - public override string GrammarFileName { get => throw null; } - public const int HAVING = default; - public const int HEX_DIGIT = default; - public const int IDENT = default; - public const int ID_LETTER = default; - public const int ID_START_LETTER = default; - public const int IMPLIED_FROM = default; - public const int IN = default; - public const int INDEX_OP = default; - public const int INDICES = default; - public const int INNER = default; - public const int INSERT = default; - public const int INTO = default; - public const int IN_LIST = default; - public const int IS = default; - public const int IS_NOT_NULL = default; - public const int IS_NULL = default; - public const int JAVA_CONSTANT = default; - public const int JOIN = default; - public const int JOIN_FRAGMENT = default; - public const int LE = default; - public const int LEADING = default; - public const int LEFT = default; - public const int LEFT_OUTER = default; - public const int LIKE = default; - public const int LITERAL_by = default; - public const int LT = default; - public const int MAX = default; - public const int MEMBER = default; - public const int METHOD_CALL = default; - public const int METHOD_NAME = default; - public const int MIN = default; - public const int MINUS = default; - public const int NAMED_PARAM = default; - public const int NE = default; - public const int NEW = default; - public const int NOT = default; - public const int NOT_BETWEEN = default; - public const int NOT_IN = default; - public const int NOT_LIKE = default; - public const int NULL = default; - public const int NUM_DECIMAL = default; - public const int NUM_DOUBLE = default; - public const int NUM_FLOAT = default; - public const int NUM_INT = default; - public const int NUM_LONG = default; - protected virtual void NestedFromFragment(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode d, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public const int OBJECT = default; - public const int OF = default; - public const int ON = default; - public const int OPEN = default; - public const int OPEN_BRACKET = default; - public const int OR = default; - public const int ORDER = default; - public const int ORDER_ELEMENT = default; - public const int OUTER = default; - public const int PARAM = default; - public const int PLUS = default; - public const int PROPERTIES = default; - public const int PROPERTY_REF = default; - public NHibernate.Hql.Ast.ANTLR.IParseErrorHandler ParseErrorHandler { get => throw null; } - public const int QUERY = default; - public const int QUOTED_String = default; - public const int RANGE = default; - public const int RESULT_VARIABLE_REF = default; - public const int RIGHT = default; - public const int RIGHT_OUTER = default; - public const int ROW_STAR = default; - public void ReportError(string s) => throw null; - public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null; - public void ReportWarning(string s) => throw null; - public const int SELECT = default; - public const int SELECT_CLAUSE = default; - public const int SELECT_COLUMNS = default; - public const int SELECT_EXPR = default; - public const int SELECT_FROM = default; - public const int SET = default; - public const int SKIP = default; - public const int SOME = default; - public const int SQL_NE = default; - public const int SQL_TOKEN = default; - public const int STAR = default; - public const int SUM = default; - public SqlGenerator(NHibernate.Engine.ISessionFactoryImplementor sfi, Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; - public SqlGenerator(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; - public SqlGenerator(Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null; - public const int TAKE = default; - public const int THEN = default; - public const int THETA_JOINS = default; - public const int TRAILING = default; - public const int TRUE = default; - public const int T__134 = default; - public const int T__135 = default; - public override string[] TokenNames { get => throw null; } - public const int UNARY_MINUS = default; - public const int UNARY_PLUS = default; - public const int UNION = default; - public const int UPDATE = default; - public const int VECTOR_EXPR = default; - public const int VERSIONED = default; - public const int WEIRD_IDENT = default; - public const int WHEN = default; - public const int WHERE = default; - public const int WITH = default; - public const int WS = default; - public void comparisonExpr(bool parens) => throw null; - public Antlr.Runtime.Tree.TreeRuleReturnScope simpleExpr() => throw null; - public void statement() => throw null; - public void whereClause() => throw null; - public void whereExpr() => throw null; - } - - namespace Exec - { - // Generated from `NHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractStatementExecutor : NHibernate.Hql.Ast.ANTLR.Exec.IStatementExecutor - { - protected AbstractStatementExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement, NHibernate.INHibernateLogger log) => throw null; - protected abstract NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get; } - protected virtual void CoordinateSharedCacheCleanup(NHibernate.Engine.ISessionImplementor session) => throw null; - protected virtual System.Threading.Tasks.Task CoordinateSharedCacheCleanupAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected virtual void CreateTemporaryTableIfNecessary(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session) => throw null; - protected virtual System.Threading.Tasks.Task CreateTemporaryTableIfNecessaryAsync(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected virtual void DropTemporaryTableIfNecessary(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session) => throw null; - protected virtual System.Threading.Tasks.Task DropTemporaryTableIfNecessaryAsync(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public abstract int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session); - public abstract System.Threading.Tasks.Task ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - protected NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; } - protected NHibernate.SqlCommand.SqlString GenerateIdInsertSelect(NHibernate.Persister.Entity.IQueryable persister, string tableAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode whereClause) => throw null; - protected string GenerateIdSubselect(NHibernate.Persister.Entity.IQueryable persister) => throw null; - protected virtual bool ShouldIsolateTemporaryTableDDL() => throw null; - public abstract NHibernate.SqlCommand.SqlString[] SqlStatements { get; } - protected NHibernate.Hql.Ast.ANTLR.Tree.IStatement Statement { get => throw null; set => throw null; } - protected NHibernate.Hql.Ast.ANTLR.HqlSqlWalker Walker { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Exec.BasicExecutor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BasicExecutor : NHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor - { - protected override NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get => throw null; } - public BasicExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement, NHibernate.Persister.Entity.IQueryable persister) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IStatement), default(NHibernate.INHibernateLogger)) => throw null; - public override int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override NHibernate.SqlCommand.SqlString[] SqlStatements { get => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Exec.IStatementExecutor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IStatementExecutor - { - int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session); - System.Threading.Tasks.Task ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - NHibernate.SqlCommand.SqlString[] SqlStatements { get; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Exec.MultiTableDeleteExecutor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MultiTableDeleteExecutor : NHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor - { - protected override NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get => throw null; } - public override int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public MultiTableDeleteExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IStatement), default(NHibernate.INHibernateLogger)) => throw null; - public override NHibernate.SqlCommand.SqlString[] SqlStatements { get => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Exec.MultiTableUpdateExecutor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MultiTableUpdateExecutor : NHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor - { - protected override NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get => throw null; } - public override int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public MultiTableUpdateExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IStatement), default(NHibernate.INHibernateLogger)) => throw null; - public override NHibernate.SqlCommand.SqlString[] SqlStatements { get => throw null; } - } - - } - namespace Tree - { - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ASTErrorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ASTErrorNode : NHibernate.Hql.Ast.ANTLR.Tree.ASTNode - { - public ASTErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null; - public Antlr.Runtime.ITokenStream Input { get => throw null; set => throw null; } - public Antlr.Runtime.RecognitionException RecognitionException { get => throw null; set => throw null; } - public Antlr.Runtime.IToken Stop { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ASTFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ASTFactory : NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory - { - public ASTFactory(Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode CreateNode(int type, string text, params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ASTNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ASTNode : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode, Antlr.Runtime.Tree.ITree - { - public ASTNode(NHibernate.Hql.Ast.ANTLR.Tree.ASTNode other) => throw null; - public ASTNode(Antlr.Runtime.IToken token) => throw null; - public ASTNode() => throw null; - void Antlr.Runtime.Tree.ITree.AddChild(Antlr.Runtime.Tree.ITree t) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null; - public void AddChildren(params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children) => throw null; - public void AddChildren(System.Collections.Generic.IEnumerable children) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddSibling(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newSibling) => throw null; - public int CharPositionInLine { get => throw null; } - public int ChildCount { get => throw null; } - public int ChildIndex { get => throw null; } - int Antlr.Runtime.Tree.ITree.ChildIndex { get => throw null; set => throw null; } - public void ClearChildren() => throw null; - object Antlr.Runtime.Tree.ITree.DeleteChild(int i) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode DupNode() => throw null; - Antlr.Runtime.Tree.ITree Antlr.Runtime.Tree.ITree.DupNode() => throw null; - void Antlr.Runtime.Tree.ITree.FreshenParentAndChildIndexes() => throw null; - public Antlr.Runtime.Tree.ITree GetAncestor(int ttype) => throw null; - public System.Collections.Generic.IList GetAncestors() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetChild(int index) => throw null; - Antlr.Runtime.Tree.ITree Antlr.Runtime.Tree.ITree.GetChild(int i) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstChild() => throw null; - public bool HasAncestor(int ttype) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode InsertChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null; - public bool IsNil { get => throw null; } - public int Line { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode NextSibling { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Parent { get => throw null; set => throw null; } - Antlr.Runtime.Tree.ITree Antlr.Runtime.Tree.ITree.Parent { get => throw null; set => throw null; } - public void RemoveChild(int index) => throw null; - public void RemoveChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null; - void Antlr.Runtime.Tree.ITree.ReplaceChildren(int startChildIndex, int stopChildIndex, object t) => throw null; - void Antlr.Runtime.Tree.ITree.SetChild(int i, Antlr.Runtime.Tree.ITree t) => throw null; - public void SetChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild) => throw null; - public void SetFirstChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild) => throw null; - public virtual string Text { get => throw null; set => throw null; } - public override string ToString() => throw null; - public string ToStringTree() => throw null; - public Antlr.Runtime.IToken Token { get => throw null; } - int Antlr.Runtime.Tree.ITree.TokenStartIndex { get => throw null; set => throw null; } - int Antlr.Runtime.Tree.ITree.TokenStopIndex { get => throw null; set => throw null; } - public int Type { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ASTTreeAdaptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ASTTreeAdaptor : Antlr.Runtime.Tree.BaseTreeAdaptor - { - public ASTTreeAdaptor() => throw null; - public override object Create(Antlr.Runtime.IToken payload) => throw null; - public override Antlr.Runtime.IToken CreateToken(int tokenType, string text) => throw null; - public override Antlr.Runtime.IToken CreateToken(Antlr.Runtime.IToken fromToken) => throw null; - public override object DupNode(object t) => throw null; - public override object ErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null; - public override Antlr.Runtime.IToken GetToken(object treeNode) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.AbstractNullnessCheckNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractNullnessCheckNode : NHibernate.Hql.Ast.ANTLR.Tree.UnaryLogicOperatorNode - { - protected AbstractNullnessCheckNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - protected abstract string ExpansionConnectorText { get; } - protected abstract int ExpansionConnectorType { get; } - public override void Initialize() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractRestrictableStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractStatement, NHibernate.Hql.Ast.ANTLR.Tree.IStatement, NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement - { - protected AbstractRestrictableStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromClause FromClause { get => throw null; } - protected abstract NHibernate.INHibernateLogger GetLog(); - protected abstract int GetWhereClauseParentTokenType(); - public bool HasWhereClause { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode WhereClause { get => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractSelectExpression : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression - { - protected AbstractSelectExpression(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public string Alias { get => throw null; set => throw null; } - public virtual NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set => throw null; } - public bool IsConstructor { get => throw null; } - public virtual bool IsReturnableEntity { get => throw null; } - public virtual bool IsScalar { get => throw null; } - public int ScalarColumnIndex { get => throw null; } - public void SetScalarColumn(int i) => throw null; - public abstract void SetScalarColumnText(int i); - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.AbstractStatement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractStatement : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IStatement, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode - { - protected AbstractStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public string GetDisplayText() => throw null; - public abstract bool NeedsExecutor { get; } - public abstract int StatementType { get; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.AggregateNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AggregateNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression - { - public AggregateNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public string FunctionName { get => throw null; } - public override void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.AssignmentSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AssignmentSpecification - { - public bool AffectsTable(string tableName) => throw null; - public AssignmentSpecification(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode eq, NHibernate.Persister.Entity.IQueryable persister) => throw null; - public NHibernate.Param.IParameterSpecification[] Parameters { get => throw null; } - public NHibernate.SqlCommand.SqlString SqlAssignmentFragment { get => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.BetweenOperatorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BetweenOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode - { - public BetweenOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public void Initialize() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.BinaryArithmeticOperatorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BinaryArithmeticOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode, NHibernate.Hql.Ast.ANTLR.Tree.IBinaryOperatorNode - { - public BinaryArithmeticOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public string GetDisplayText() => throw null; - public void Initialize() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LeftHandOperand { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode RightHandOperand { get => throw null; } - public override void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.BinaryLogicOperatorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BinaryLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IBinaryOperatorNode - { - public void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification) => throw null; - public BinaryLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - protected static NHibernate.Type.IType ExtractDataType(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode operand) => throw null; - public NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters() => throw null; - public bool HasEmbeddedParameters { get => throw null; } - public virtual void Initialize() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LeftHandOperand { get => throw null; } - protected void MutateRowValueConstructorSyntaxesIfNecessary(NHibernate.Type.IType lhsType, NHibernate.Type.IType rhsType) => throw null; - public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode RightHandOperand { get => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.BooleanLiteralNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BooleanLiteralNode : NHibernate.Hql.Ast.ANTLR.Tree.LiteralNode, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode - { - public BooleanLiteralNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } - public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.Case2Node` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Case2Node : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression - { - public Case2Node(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public override void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.CaseNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CaseNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode - { - public CaseNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable GetResultNodes() => throw null; - public override void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.CollectionFunction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionFunction : NHibernate.Hql.Ast.ANTLR.Tree.MethodNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode - { - public CollectionFunction(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - protected override void PrepareSelectColumns(string[] selectColumns) => throw null; - public override void Resolve(bool inSelect) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ComponentJoin` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentJoin : NHibernate.Hql.Ast.ANTLR.Tree.FromElement - { - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ComponentJoin+ComponentFromElementType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentFromElementType : NHibernate.Hql.Ast.ANTLR.Tree.FromElementType - { - public ComponentFromElementType(NHibernate.Hql.Ast.ANTLR.Tree.ComponentJoin fromElement) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.FromElement)) => throw null; - public override NHibernate.Type.IType DataType { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.ComponentJoin FromElement { get => throw null; } - protected NHibernate.Persister.Entity.IPropertyMapping GetBasePropertyMapping() => throw null; - public override NHibernate.Persister.Entity.IPropertyMapping GetPropertyMapping(string propertyName) => throw null; - public override NHibernate.Type.IType GetPropertyType(string propertyName, string propertyPath) => throw null; - public override NHibernate.Persister.Collection.IQueryableCollection QueryableCollection { get => throw null; set => throw null; } - public override string RenderScalarIdentifierSelect(int i) => throw null; - } - - - public ComponentJoin(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string alias, string componentPath, NHibernate.Type.ComponentType componentType) : base(default(Antlr.Runtime.IToken)) => throw null; - public string ComponentPath { get => throw null; } - public string ComponentProperty { get => throw null; } - public NHibernate.Type.ComponentType ComponentType { get => throw null; } - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public override string GetDisplayText() => throw null; - public override string GetIdentityColumn() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ConstructorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ConstructorNode : NHibernate.Hql.Ast.ANTLR.Tree.SelectExpressionList, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression - { - public string Alias { get => throw null; set => throw null; } - public System.Reflection.ConstructorInfo Constructor { get => throw null; } - public System.Collections.Generic.IList ConstructorArgumentTypeList { get => throw null; } - public ConstructorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; } - public string[] GetAliases() => throw null; - protected internal override NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstSelectExpression() => throw null; - public bool IsConstructor { get => throw null; } - public bool IsList { get => throw null; } - public bool IsMap { get => throw null; } - public bool IsReturnableEntity { get => throw null; } - public bool IsScalar { get => throw null; } - public void Prepare() => throw null; - public int ScalarColumnIndex { get => throw null; } - public void SetScalarColumn(int i) => throw null; - public void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.DeleteStatement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DeleteStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement - { - public DeleteStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - protected override NHibernate.INHibernateLogger GetLog() => throw null; - protected override int GetWhereClauseParentTokenType() => throw null; - public override bool NeedsExecutor { get => throw null; } - public override int StatementType { get => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.DotNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DotNode : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode - { - public DotNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public bool Fetch { set => throw null; } - public override NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetImpliedJoin() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode GetLhs() => throw null; - public NHibernate.SqlCommand.JoinType JoinType { set => throw null; } - public override string Path { get => throw null; } - public string PropertyPath { get => throw null; set => throw null; } - public static bool REGRESSION_STYLE_JOIN_SUPPRESSION; - public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public override void ResolveFirstChild() => throw null; - public override void ResolveInFunctionCall(bool generateJoin, bool implicitJoin) => throw null; - public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public void ResolveSelectExpression() => throw null; - public void SetResolvedConstant(string text) => throw null; - public override void SetScalarColumnText(int i) => throw null; - public static bool UseThetaStyleImplicitJoins; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.FromClause` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FromClause : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode - { - public void AddCollectionJoinFromElementByPath(string path, NHibernate.Hql.Ast.ANTLR.Tree.FromElement destination) => throw null; - public void AddDuplicateAlias(string alias, NHibernate.Hql.Ast.ANTLR.Tree.FromElement element) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement AddFromElement(string path, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode alias) => throw null; - public void AddJoinByPathMap(string path, NHibernate.Hql.Ast.ANTLR.Tree.FromElement destination) => throw null; - public bool ContainsClassAlias(string alias) => throw null; - public bool ContainsTableAlias(string alias) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FindCollectionJoin(string path) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FindJoinByPath(string path) => throw null; - public FromClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public System.Collections.Generic.IList GetCollectionFetches() => throw null; - public string GetDisplayText() => throw null; - public System.Collections.Generic.IList GetExplicitFromElements() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetFromElement(string aliasOrClassName) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetFromElement() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetFromElementByClassName(string className) => throw null; - public System.Collections.Generic.IList GetFromElements() => throw null; - public System.Collections.Generic.IList GetProjectionList() => throw null; - public bool IsFromElementAlias(string possibleAlias) => throw null; - public bool IsSubQuery { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.FromClause ParentFromClause { get => throw null; } - public void RegisterFromElement(NHibernate.Hql.Ast.ANTLR.Tree.FromElement element) => throw null; - public virtual void Resolve() => throw null; - public void SetParentFromClause(NHibernate.Hql.Ast.ANTLR.Tree.FromClause parentFromClause) => throw null; - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.FromElement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FromElement : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode - { - public void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification) => throw null; - protected void AppendDisplayText(System.Text.StringBuilder buf) => throw null; - public void CheckInitialized() => throw null; - public string ClassAlias { get => throw null; } - public string ClassName { get => throw null; } - public bool CollectionJoin { get => throw null; set => throw null; } - public string CollectionSuffix { get => throw null; set => throw null; } - public string CollectionTableAlias { get => throw null; set => throw null; } - public string[] Columns { get => throw null; set => throw null; } - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public NHibernate.Persister.Entity.IEntityPersister EntityPersister { get => throw null; } - public bool Fetch { get => throw null; set => throw null; } - public string[] FetchLazyProperties { get => throw null; set => throw null; } - public bool Filter { set => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.FromClause FromClause { get => throw null; } - public FromElement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - protected FromElement(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string alias) : base(default(Antlr.Runtime.IToken)) => throw null; - public virtual string GetDisplayText() => throw null; - public NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters() => throw null; - public virtual string GetIdentityColumn() => throw null; - public NHibernate.Persister.Entity.IPropertyMapping GetPropertyMapping(string propertyName) => throw null; - public NHibernate.Type.IType GetPropertyType(string propertyName, string propertyPath) => throw null; - public void HandlePropertyBeingDereferenced(NHibernate.Type.IType propertySource, string propertyName) => throw null; - public bool HasEmbeddedParameters { get => throw null; } - public virtual bool InProjectionList { get => throw null; set => throw null; } - public virtual bool IncludeSubclasses { get => throw null; set => throw null; } - public NHibernate.Param.IParameterSpecification IndexCollectionSelectorParamSpec { get => throw null; set => throw null; } - public void InitializeCollection(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, string classAlias, string tableAlias) => throw null; - protected void InitializeComponentJoin(NHibernate.Hql.Ast.ANTLR.Tree.FromElementType elementType) => throw null; - public void InitializeEntity(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, string className, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Type.EntityType type, string classAlias, string tableAlias) => throw null; - public bool IsAllPropertyFetch { get => throw null; set => throw null; } - public bool IsCollectionJoin { get => throw null; } - public bool IsCollectionOfValuesOrComponents { get => throw null; } - public bool IsDereferencedBySubclassProperty { get => throw null; } - public bool IsDereferencedBySuperclassOrSubclassProperty { get => throw null; } - public bool IsEntity { get => throw null; } - public bool IsFetch { get => throw null; } - public bool IsFilter { get => throw null; } - public bool IsFromOrJoinFragment { get => throw null; } - public virtual bool IsImplied { get => throw null; } - public virtual bool IsImpliedInFromClause { get => throw null; } - public NHibernate.Engine.JoinSequence JoinSequence { get => throw null; set => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement Origin { get => throw null; } - public NHibernate.Persister.Entity.IQueryable Queryable { get => throw null; } - public NHibernate.Persister.Collection.IQueryableCollection QueryableCollection { get => throw null; set => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement RealOrigin { get => throw null; } - public string RenderCollectionSelectFragment(int size, int k) => throw null; - public string RenderIdentifierSelect(int size, int k) => throw null; - public string RenderPropertySelect(int size, int k) => throw null; - public string RenderScalarIdentifierSelect(int i) => throw null; - public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; - public string RenderValueCollectionSelectFragment(int size, int k) => throw null; - public NHibernate.Type.IType SelectType { get => throw null; } - public void SetAllPropertyFetch(bool fetch) => throw null; - public virtual void SetImpliedInFromClause(bool flag) => throw null; - public void SetIncludeSubclasses(bool includeSubclasses) => throw null; - public void SetIndexCollectionSelectorParamSpec(NHibernate.Param.IParameterSpecification indexCollectionSelectorParamSpec) => throw null; - public void SetOrigin(NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, bool manyToMany) => throw null; - public void SetRole(string role) => throw null; - public void SetWithClauseFragment(string withClauseJoinAlias, NHibernate.SqlCommand.SqlString withClauseFragment) => throw null; - public string TableAlias { get => throw null; } - public string[] ToColumns(string tableAlias, string path, bool inSelect, bool forceAlias) => throw null; - public string[] ToColumns(string tableAlias, string path, bool inSelect) => throw null; - public bool UseFromFragment { get => throw null; set => throw null; } - public bool UseWhereFragment { get => throw null; set => throw null; } - public NHibernate.SqlCommand.SqlString WithClauseFragment { get => throw null; } - public string WithClauseJoinAlias { get => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.FromElementFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FromElementFactory - { - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement AddFromElement() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateCollection(NHibernate.Persister.Collection.IQueryableCollection queryableCollection, string role, NHibernate.SqlCommand.JoinType joinType, bool fetchFlag, bool indexed) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateCollectionElementsJoin(NHibernate.Persister.Collection.IQueryableCollection queryableCollection, string collectionName) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateComponentJoin(NHibernate.Type.ComponentType type) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateElementJoin(NHibernate.Persister.Collection.IQueryableCollection queryableCollection) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateEntityJoin(string entityClass, string tableAlias, NHibernate.Engine.JoinSequence joinSequence, bool fetchFlag, bool inFrom, NHibernate.Type.EntityType type) => throw null; - public FromElementFactory(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string path, string classAlias, string[] columns, bool implied) => throw null; - public FromElementFactory(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string path) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.FromElementType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FromElementType - { - public string CollectionSuffix { get => throw null; set => throw null; } - public virtual NHibernate.Type.IType DataType { get => throw null; } - public NHibernate.Persister.Entity.IEntityPersister EntityPersister { get => throw null; } - public FromElementType(NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Type.EntityType entityType) => throw null; - protected FromElementType(NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement) => throw null; - public virtual NHibernate.Persister.Entity.IPropertyMapping GetPropertyMapping(string propertyName) => throw null; - public virtual NHibernate.Type.IType GetPropertyType(string propertyName, string propertyPath) => throw null; - public NHibernate.Param.IParameterSpecification IndexCollectionSelectorParamSpec { get => throw null; set => throw null; } - public bool IsCollectionOfValuesOrComponents { get => throw null; } - public bool IsEntity { get => throw null; } - public NHibernate.Engine.JoinSequence JoinSequence { get => throw null; set => throw null; } - public NHibernate.Persister.Entity.IQueryable Queryable { get => throw null; } - public virtual NHibernate.Persister.Collection.IQueryableCollection QueryableCollection { get => throw null; set => throw null; } - public string RenderCollectionSelectFragment(int size, int k) => throw null; - public string RenderIdentifierSelect(int size, int k) => throw null; - public string RenderPropertySelect(int size, int k, string[] fetchLazyProperties) => throw null; - public string RenderPropertySelect(int size, int k, bool allProperties) => throw null; - public virtual string RenderScalarIdentifierSelect(int i) => throw null; - public string RenderValueCollectionSelectFragment(int size, int k) => throw null; - public NHibernate.Type.IType SelectType { get => throw null; } - public string[] ToColumns(string tableAlias, string path, bool inSelect, bool forceAlias) => throw null; - public string[] ToColumns(string tableAlias, string path, bool inSelect) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class FromReferenceNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IResolvableNode, NHibernate.Hql.Ast.ANTLR.Tree.IPathNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode - { - public override NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set => throw null; } - protected FromReferenceNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public string GetDisplayText() => throw null; - public virtual NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetImpliedJoin() => throw null; - public bool IsResolved { get => throw null; set => throw null; } - public override bool IsReturnableEntity { get => throw null; } - public virtual string Path { get => throw null; } - public virtual void PrepareForDot(string propertyName) => throw null; - public void RecursiveResolve(int level, bool impliedAtRoot, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public void Resolve(bool generateJoin, bool implicitJoin, string classAlias) => throw null; - public void Resolve(bool generateJoin, bool implicitJoin) => throw null; - public abstract void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent); - public virtual void ResolveFirstChild() => throw null; - public virtual void ResolveInFunctionCall(bool generateJoin, bool implicitJoin) => throw null; - public abstract void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent); - public const int RootLevel = default; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HqlSqlWalkerNode : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IInitializableNode - { - public NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory ASTFactory { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Util.AliasGenerator AliasGenerator { get => throw null; } - public HqlSqlWalkerNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public virtual void Initialize(object param) => throw null; - public NHibernate.Hql.Ast.ANTLR.HqlSqlWalker Walker { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerTreeAdaptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HqlSqlWalkerTreeAdaptor : NHibernate.Hql.Ast.ANTLR.Tree.ASTTreeAdaptor - { - public override object Create(Antlr.Runtime.IToken payload) => throw null; - public override object DupNode(object t) => throw null; - public override object ErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null; - public HqlSqlWalkerTreeAdaptor(object walker) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IASTFactory - { - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode CreateNode(int type, string text, params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children); - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IASTNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IASTNode : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable - { - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode childNode); - void AddChildren(params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children); - void AddChildren(System.Collections.Generic.IEnumerable children); - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddSibling(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newSibling); - int CharPositionInLine { get; } - int ChildCount { get; } - int ChildIndex { get; } - void ClearChildren(); - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode DupNode(); - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetChild(int index); - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstChild(); - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode InsertChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child); - bool IsNil { get; } - int Line { get; } - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode NextSibling { get; } - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Parent { get; set; } - void RemoveChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child); - void SetChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild); - void SetFirstChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild); - string Text { get; set; } - string ToStringTree(); - Antlr.Runtime.IToken Token { get; } - int Type { get; set; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IBinaryOperatorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IBinaryOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode - { - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LeftHandOperand { get; } - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode RightHandOperand { get; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDisplayableNode - { - string GetDisplayText(); - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IExpectedTypeAwareNode - { - NHibernate.Type.IType ExpectedType { get; set; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IInitializableNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IInitializableNode - { - void Initialize(object param); - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IOperatorNode - { - NHibernate.Type.IType DataType { get; } - void Initialize(); - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IParameterContainer - { - void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification); - NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters(); - bool HasEmbeddedParameters { get; } - string Text { set; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IPathNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPathNode - { - string Path { get; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IResolvableNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IResolvableNode - { - void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent); - void Resolve(bool generateJoin, bool implicitJoin, string classAlias); - void Resolve(bool generateJoin, bool implicitJoin); - void ResolveInFunctionCall(bool generateJoin, bool implicitJoin); - void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent); - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IRestrictableStatement : NHibernate.Hql.Ast.ANTLR.Tree.IStatement - { - NHibernate.Hql.Ast.ANTLR.Tree.FromClause FromClause { get; } - bool HasWhereClause { get; } - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode WhereClause { get; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISelectExpression - { - string Alias { get; set; } - NHibernate.Type.IType DataType { get; } - NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get; } - bool IsConstructor { get; } - bool IsReturnableEntity { get; } - bool IsScalar { get; } - int ScalarColumnIndex { get; } - void SetScalarColumn(int i); - void SetScalarColumnText(int i); - string Text { set; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ISessionFactoryAwareNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISessionFactoryAwareNode - { - NHibernate.Engine.ISessionFactoryImplementor SessionFactory { set; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IStatement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IStatement - { - bool NeedsExecutor { get; } - int StatementType { get; } - NHibernate.Hql.Ast.ANTLR.HqlSqlWalker Walker { get; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IUnaryOperatorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IUnaryOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode - { - NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Operand { get; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IdentNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentNode : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression - { - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public IdentNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public override void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ImpliedFromElement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ImpliedFromElement : NHibernate.Hql.Ast.ANTLR.Tree.FromElement - { - public override string GetDisplayText() => throw null; - public ImpliedFromElement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override bool InProjectionList { get => throw null; set => throw null; } - public override bool IncludeSubclasses { get => throw null; set => throw null; } - public override bool IsImplied { get => throw null; } - public override bool IsImpliedInFromClause { get => throw null; } - public override void SetImpliedInFromClause(bool flag) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.InLogicOperatorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class InLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.BinaryLogicOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IBinaryOperatorNode - { - public InLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override void Initialize() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IndexNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IndexNode : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode - { - public IndexNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override void PrepareForDot(string propertyName) => throw null; - public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public override void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.InsertStatement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class InsertStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractStatement - { - public InsertStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IntoClause IntoClause { get => throw null; } - public override bool NeedsExecutor { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.SelectClause SelectClause { get => throw null; } - public override int StatementType { get => throw null; } - public virtual void Validate() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IntoClause` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IntoClause : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode - { - public string GetDisplayText() => throw null; - public void Initialize(NHibernate.Persister.Entity.IQueryable persister) => throw null; - public IntoClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public bool IsDiscriminated { get => throw null; } - public bool IsExplicitIdInsertion { get => throw null; } - public bool IsExplicitVersionInsertion { get => throw null; } - public void PrependIdColumnSpec() => throw null; - public void PrependVersionColumnSpec() => throw null; - public NHibernate.Persister.Entity.IQueryable Queryable { get => throw null; } - public void ValidateTypes(NHibernate.Hql.Ast.ANTLR.Tree.SelectClause selectClause) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IsNotNullLogicOperatorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IsNotNullLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractNullnessCheckNode - { - protected override string ExpansionConnectorText { get => throw null; } - protected override int ExpansionConnectorType { get => throw null; } - public IsNotNullLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.IsNullLogicOperatorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IsNullLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractNullnessCheckNode - { - protected override string ExpansionConnectorText { get => throw null; } - protected override int ExpansionConnectorType { get => throw null; } - public IsNullLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.JavaConstantNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JavaConstantNode : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.ISessionFactoryAwareNode, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode - { - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } - public JavaConstantNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; - public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { set => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.LiteralNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LiteralNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression - { - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public LiteralNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.MethodNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MethodNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression - { - public override NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set => throw null; } - public string GetDisplayText() => throw null; - public void InitializeMethodNode(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode name, bool inSelect) => throw null; - public bool IsCollectionPropertyMethod { get => throw null; } - public override bool IsScalar { get => throw null; } - public MethodNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - protected virtual void PrepareSelectColumns(string[] columns) => throw null; - public virtual void Resolve(bool inSelect) => throw null; - public void ResolveCollectionProperty(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode expr) => throw null; - public NHibernate.Dialect.Function.ISQLFunction SQLFunction { get => throw null; } - public override void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.OrderByClause` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OrderByClause : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode - { - public void AddOrderFragment(string orderByFragment) => throw null; - public OrderByClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ParameterNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ParameterNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode - { - public string Alias { get => throw null; set => throw null; } - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; } - public string GetDisplayText() => throw null; - public NHibernate.Param.IParameterSpecification HqlParameterSpecification { get => throw null; set => throw null; } - public bool IsConstructor { get => throw null; } - public bool IsReturnableEntity { get => throw null; } - public bool IsScalar { get => throw null; } - public ParameterNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; - public int ScalarColumnIndex { get => throw null; } - public void SetScalarColumn(int i) => throw null; - public void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.QueryNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression - { - public string Alias { get => throw null; set => throw null; } - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; } - protected override NHibernate.INHibernateLogger GetLog() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.OrderByClause GetOrderByClause() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.SelectClause GetSelectClause() => throw null; - protected override int GetWhereClauseParentTokenType() => throw null; - public bool IsConstructor { get => throw null; } - public bool IsReturnableEntity { get => throw null; } - public bool IsScalar { get => throw null; } - public override bool NeedsExecutor { get => throw null; } - public QueryNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public int ScalarColumnIndex { get => throw null; } - public void SetScalarColumn(int i) => throw null; - public void SetScalarColumnText(int i) => throw null; - public override int StatementType { get => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.ResultVariableRefNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ResultVariableRefNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode - { - public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; - public ResultVariableRefNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public void SetSelectExpression(NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression selectExpression) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.SelectClause` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SelectClause : NHibernate.Hql.Ast.ANTLR.Tree.SelectExpressionList - { - public System.Collections.Generic.IList CollectionFromElements { get => throw null; } - public string[][] ColumnNames { get => throw null; } - public System.Reflection.ConstructorInfo Constructor { get => throw null; } - public System.Collections.Generic.IList FromElementsForLoad { get => throw null; } - public int GetColumnNamesStartPosition(int i) => throw null; - protected internal override NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstSelectExpression() => throw null; - public void InitializeDerivedSelectClause(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause) => throw null; - public void InitializeExplicitSelectClause(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause) => throw null; - public bool IsDistinct { get => throw null; } - public bool IsList { get => throw null; } - public bool IsMap { get => throw null; } - public bool IsScalarSelect { get => throw null; } - public string[] QueryReturnAliases { get => throw null; } - public NHibernate.Type.IType[] QueryReturnTypes { get => throw null; } - public SelectClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public static bool VERSION2_SQL; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.SelectExpressionImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SelectExpressionImpl : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression - { - public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public SelectExpressionImpl(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - public override void SetScalarColumnText(int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.SelectExpressionList` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class SelectExpressionList : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode - { - public NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression[] CollectSelectExpressions(bool recurse) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression[] CollectSelectExpressions() => throw null; - protected internal abstract NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstSelectExpression(); - protected SelectExpressionList(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.SqlFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SqlFragment : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer - { - public void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set => throw null; } - public NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters() => throw null; - public bool HasEmbeddedParameters { get => throw null; } - public bool HasFilterCondition { get => throw null; } - public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; - public void SetJoinFragment(NHibernate.SqlCommand.JoinFragment joinFragment) => throw null; - public SqlFragment(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.SqlNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SqlNode : NHibernate.Hql.Ast.ANTLR.Tree.ASTNode - { - public virtual NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public string OriginalText { get => throw null; } - public virtual NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; - public SqlNode(Antlr.Runtime.IToken token) => throw null; - public override string Text { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.UnaryArithmeticNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnaryArithmeticNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IUnaryOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode - { - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public void Initialize() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Operand { get => throw null; } - public override void SetScalarColumnText(int i) => throw null; - public UnaryArithmeticNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.UnaryLogicOperatorNode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnaryLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IUnaryOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode - { - public override NHibernate.Type.IType DataType { get => throw null; set => throw null; } - public virtual void Initialize() => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Operand { get => throw null; } - public UnaryLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Tree.UpdateStatement` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UpdateStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement - { - protected override NHibernate.INHibernateLogger GetLog() => throw null; - protected override int GetWhereClauseParentTokenType() => throw null; - public override bool NeedsExecutor { get => throw null; } - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode SetClause { get => throw null; } - public override int StatementType { get => throw null; } - public UpdateStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null; - } - - } - namespace Util - { - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.ASTAppender` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ASTAppender - { - public ASTAppender(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null; - public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Append(int type, string text, bool appendIfEmpty) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.ASTIterator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ASTIterator : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable - { - public ASTIterator(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode tree) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.ASTUtil` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ASTUtil - { - public static System.Collections.Generic.IList CollectChildren(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root, NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) where TNode : NHibernate.Hql.Ast.ANTLR.Tree.IASTNode => throw null; - public static System.Collections.Generic.IList CollectChildren(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root, NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) => throw null; - public static NHibernate.Hql.Ast.ANTLR.Tree.IASTNode FindTypeInChildren(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent, int type) => throw null; - public static string GetDebugstring(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode n) => throw null; - public static string GetPathText(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode n) => throw null; - public static bool IsSubtreeChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode fixture, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode test) => throw null; - public static void MakeSiblingOfParent(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.AliasGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AliasGenerator - { - public AliasGenerator() => throw null; - public string CreateName(string name) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.CollectingNodeVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectingNodeVisitor : NHibernate.Hql.Ast.ANTLR.Util.CollectingNodeVisitor - { - public CollectingNodeVisitor(NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) : base(default(NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate)) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.CollectingNodeVisitor<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectingNodeVisitor : NHibernate.Hql.Ast.ANTLR.Util.IVisitationStrategy - { - public System.Collections.Generic.IList Collect(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root) => throw null; - public CollectingNodeVisitor(NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) => throw null; - public void Visit(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.ColumnHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ColumnHelper - { - public ColumnHelper() => throw null; - public static void GenerateScalarColumns(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node, string[] sqlColumns, int i) => throw null; - public static void GenerateSingleScalarColumn(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node, int i) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate bool FilterPredicate(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node); - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.IVisitationStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IVisitationStrategy - { - void Visit(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node); - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.JoinProcessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JoinProcessor - { - public JoinProcessor(NHibernate.Hql.Ast.ANTLR.HqlSqlWalker walker) => throw null; - public static void ProcessDynamicFilterParameters(NHibernate.SqlCommand.SqlString sqlFragment, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer container, NHibernate.Hql.Ast.ANTLR.HqlSqlWalker walker) => throw null; - public void ProcessJoins(NHibernate.Hql.Ast.ANTLR.Tree.QueryNode query) => throw null; - public void ProcessJoins(NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement query) => throw null; - public static NHibernate.SqlCommand.JoinType ToHibernateJoinType(int astJoinType) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LiteralProcessor - { - public static int APPROXIMATE; - public static int DECIMAL_LITERAL_FORMAT; - public static int EXACT; - public const string ErrorCannotDetermineType = default; - public const string ErrorCannotFetchWithIterate = default; - public const string ErrorCannotFormatLiteral = default; - public const string ErrorNamedParameterDoesNotAppear = default; - public LiteralProcessor(NHibernate.Hql.Ast.ANTLR.HqlSqlWalker walker) => throw null; - public void LookupConstant(NHibernate.Hql.Ast.ANTLR.Tree.DotNode node) => throw null; - public void ProcessBoolean(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode constant) => throw null; - public void ProcessConstant(NHibernate.Hql.Ast.ANTLR.Tree.SqlNode constant, bool resolveIdent) => throw null; - public void ProcessNumericLiteral(NHibernate.Hql.Ast.ANTLR.Tree.SqlNode literal) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.NodeTraverser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NodeTraverser - { - public NodeTraverser(NHibernate.Hql.Ast.ANTLR.Util.IVisitationStrategy visitor) => throw null; - public void TraverseDepthFirst(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ast) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.PathHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class PathHelper - { - public static string GetAlias(string path) => throw null; - public static NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ParsePath(string path, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) => throw null; - } - - // Generated from `NHibernate.Hql.Ast.ANTLR.Util.SyntheticAndFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SyntheticAndFactory - { - public virtual void AddDiscriminatorWhereFragment(NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement statement, NHibernate.Persister.Entity.IQueryable persister, System.Collections.Generic.IDictionary enabledFilters, string alias) => throw null; - public void AddWhereFragment(NHibernate.SqlCommand.JoinFragment joinFragment, NHibernate.SqlCommand.SqlString whereFragment, NHibernate.Hql.Ast.ANTLR.Tree.QueryNode query, NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement, NHibernate.Hql.Ast.ANTLR.HqlSqlWalker hqlSqlWalker) => throw null; - public void AddWhereFragment(NHibernate.SqlCommand.JoinFragment joinFragment, NHibernate.SqlCommand.SqlString whereFragment, NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement query, NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement, NHibernate.Hql.Ast.ANTLR.HqlSqlWalker hqlSqlWalker) => throw null; - public SyntheticAndFactory(NHibernate.Hql.Ast.ANTLR.HqlSqlWalker hqlSqlWalker) => throw null; - } - - } + public HqlWith(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null; } } + public class CollectionSubqueryFactory + { + public static string CreateCollectionSubquery(NHibernate.Engine.JoinSequence joinSequence, System.Collections.Generic.IDictionary enabledFilters, string[] columns) => throw null; + public CollectionSubqueryFactory() => throw null; + } + public sealed class HolderInstantiator + { + public static NHibernate.Hql.HolderInstantiator CreateClassicHolderInstantiator(System.Reflection.ConstructorInfo constructor, NHibernate.Transform.IResultTransformer transformer) => throw null; + public static NHibernate.Transform.IResultTransformer CreateSelectNewTransformer(System.Reflection.ConstructorInfo constructor, bool returnMaps, bool returnLists) => throw null; + public HolderInstantiator(NHibernate.Transform.IResultTransformer transformer, string[] queryReturnAliases) => throw null; + public static NHibernate.Hql.HolderInstantiator GetHolderInstantiator(NHibernate.Transform.IResultTransformer selectNewTransformer, NHibernate.Transform.IResultTransformer customTransformer, string[] queryReturnAliases) => throw null; + public object Instantiate(object[] row) => throw null; + public bool IsRequired { get => throw null; } + public static NHibernate.Hql.HolderInstantiator NoopInstantiator; + public string[] QueryReturnAliases { get => throw null; } + public static NHibernate.Transform.IResultTransformer ResolveClassicResultTransformer(System.Reflection.ConstructorInfo constructor, NHibernate.Transform.IResultTransformer transformer) => throw null; + public static NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer selectNewTransformer, NHibernate.Transform.IResultTransformer customTransformer) => throw null; + public NHibernate.Transform.IResultTransformer ResultTransformer { get => throw null; } + } + public interface IFilterTranslator : NHibernate.Hql.IQueryTranslator + { + void Compile(string collectionRole, System.Collections.Generic.IDictionary replacements, bool shallow); + } + public interface IQueryTranslator + { + NHibernate.Type.IType[] ActualReturnTypes { get; } + NHibernate.Engine.Query.ParameterMetadata BuildParameterMetadata(); + System.Collections.Generic.IList CollectSqlStrings { get; } + void Compile(System.Collections.Generic.IDictionary replacements, bool shallow); + bool ContainsCollectionFetches { get; } + System.Collections.Generic.IDictionary EnabledFilters { get; } + int ExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session); + System.Threading.Tasks.Task ExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + string[][] GetColumnNames(); + System.Collections.IEnumerable GetEnumerable(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session); + System.Threading.Tasks.Task GetEnumerableAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken); + bool IsManipulationStatement { get; } + System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters); + System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); + NHibernate.Loader.Loader Loader { get; } + System.Collections.Generic.ISet QuerySpaces { get; } + string QueryString { get; } + string[] ReturnAliases { get; } + NHibernate.Type.IType[] ReturnTypes { get; } + string SQLString { get; } + } + public interface IQueryTranslatorFactory + { + NHibernate.Hql.IQueryTranslator[] CreateQueryTranslators(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary filters, NHibernate.Engine.ISessionFactoryImplementor factory); + } + public class NameGenerator + { + public NameGenerator() => throw null; + public static string[][] GenerateColumnNames(NHibernate.Type.IType[] types, NHibernate.Engine.ISessionFactoryImplementor f) => throw null; + public static string ScalarName(int x, int y) => throw null; + } + public static class ParserHelper + { + public static string EntityClass; + public static string HqlSeparators; + public static string HqlVariablePrefix; + public static bool IsWhitespace(string str) => throw null; + public static string Whitespace; + } + public class QueryExecutionRequestException : NHibernate.QueryException + { + public QueryExecutionRequestException(string message, string queryString) => throw null; + protected QueryExecutionRequestException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class QuerySplitter + { + public static string[] ConcreteQueries(string query, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public QuerySplitter() => throw null; + } + public class StringQueryExpression : NHibernate.IQueryExpression + { + public StringQueryExpression(string queryString) => throw null; + public string Key { get => throw null; } + public System.Collections.Generic.IList ParameterDescriptors { get => throw null; } + public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Translate(NHibernate.Engine.ISessionFactoryImplementor factory, bool filter) => throw null; + public System.Type Type { get => throw null; } + } namespace Util { - // Generated from `NHibernate.Hql.Util.SessionFactoryHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SessionFactoryHelper { + public SessionFactoryHelper(NHibernate.Engine.ISessionFactoryImplementor sfi) => throw null; public NHibernate.Persister.Entity.IEntityPersister FindEntityPersisterUsingImports(string className) => throw null; public NHibernate.Persister.Entity.IQueryable FindQueryableUsingImports(string className) => throw null; public NHibernate.Persister.Collection.IQueryableCollection GetCollectionPersister(string role) => throw null; @@ -17682,14 +13993,58 @@ namespace NHibernate public System.Type GetImportedClass(string className) => throw null; public NHibernate.Persister.Entity.IEntityPersister RequireClassPersister(string name) => throw null; public NHibernate.Persister.Collection.IQueryableCollection RequireQueryableCollection(string role) => throw null; - public SessionFactoryHelper(NHibernate.Engine.ISessionFactoryImplementor sfi) => throw null; } - } } + public interface ICriteria : System.ICloneable + { + NHibernate.ICriteria Add(NHibernate.Criterion.ICriterion expression); + NHibernate.ICriteria AddOrder(NHibernate.Criterion.Order order); + string Alias { get; } + void ClearOrders(); + NHibernate.ICriteria CreateAlias(string associationPath, string alias); + NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType); + NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); + NHibernate.ICriteria CreateCriteria(string associationPath); + NHibernate.ICriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType); + NHibernate.ICriteria CreateCriteria(string associationPath, string alias); + NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType); + NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); + NHibernate.IFutureEnumerable Future(); + NHibernate.IFutureValue FutureValue(); + NHibernate.ICriteria GetCriteriaByAlias(string alias); + NHibernate.ICriteria GetCriteriaByPath(string path); + System.Type GetRootEntityTypeIfAvailable(); + bool IsReadOnly { get; } + bool IsReadOnlyInitialized { get; } + System.Collections.IList List(); + void List(System.Collections.IList results); + System.Collections.Generic.IList List(); + System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.ICriteria SetCacheable(bool cacheable); + NHibernate.ICriteria SetCacheMode(NHibernate.CacheMode cacheMode); + NHibernate.ICriteria SetCacheRegion(string cacheRegion); + NHibernate.ICriteria SetComment(string comment); + NHibernate.ICriteria SetFetchMode(string associationPath, NHibernate.FetchMode mode); + NHibernate.ICriteria SetFetchSize(int fetchSize); + NHibernate.ICriteria SetFirstResult(int firstResult); + NHibernate.ICriteria SetFlushMode(NHibernate.FlushMode flushMode); + NHibernate.ICriteria SetLockMode(NHibernate.LockMode lockMode); + NHibernate.ICriteria SetLockMode(string alias, NHibernate.LockMode lockMode); + NHibernate.ICriteria SetMaxResults(int maxResults); + NHibernate.ICriteria SetProjection(params NHibernate.Criterion.IProjection[] projection); + NHibernate.ICriteria SetReadOnly(bool readOnly); + NHibernate.ICriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer); + NHibernate.ICriteria SetTimeout(int timeout); + object UniqueResult(); + T UniqueResult(); + System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } namespace Id { - // Generated from `NHibernate.Id.AbstractPostInsertGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractPostInsertGenerator : NHibernate.Id.IPostInsertIdentifierGenerator, NHibernate.Id.IIdentifierGenerator { protected AbstractPostInsertGenerator() => throw null; @@ -17697,320 +14052,27 @@ namespace NHibernate public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor s, object obj, System.Threading.CancellationToken cancellationToken) => throw null; public abstract NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled); } - - // Generated from `NHibernate.Id.Assigned` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Assigned : NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable { - public Assigned() => throw null; public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; + public Assigned() => throw null; public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Id.CounterGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CounterGenerator : NHibernate.Id.IIdentifierGenerator { - protected System.Int16 Count { get => throw null; } + protected short Count { get => throw null; } public CounterGenerator() => throw null; public object Generate(NHibernate.Engine.ISessionImplementor cache, object obj) => throw null; public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor cache, object obj, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Id.ForeignGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ForeignGenerator : NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable - { - public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public ForeignGenerator() => throw null; - public object Generate(NHibernate.Engine.ISessionImplementor sessionImplementor, object obj) => throw null; - public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - } - - // Generated from `NHibernate.Id.GuidCombGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class GuidCombGenerator : NHibernate.Id.IIdentifierGenerator - { - public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public GuidCombGenerator() => throw null; - } - - // Generated from `NHibernate.Id.GuidGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class GuidGenerator : NHibernate.Id.IIdentifierGenerator - { - public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public GuidGenerator() => throw null; - } - - // Generated from `NHibernate.Id.ICompositeKeyPostInsertIdentityPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICompositeKeyPostInsertIdentityPersister - { - void BindSelectByUniqueKey(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames); - System.Threading.Tasks.Task BindSelectByUniqueKeyAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames, System.Threading.CancellationToken cancellationToken); - NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string[] suppliedPropertyNames, out NHibernate.Type.IType[] parameterTypes); - } - - // Generated from `NHibernate.Id.IConfigurable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IConfigurable - { - void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect); - } - - // Generated from `NHibernate.Id.IIdentifierGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IIdentifierGenerator - { - object Generate(NHibernate.Engine.ISessionImplementor session, object obj); - System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Id.IPersistentIdentifierGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPersistentIdentifierGenerator : NHibernate.Id.IIdentifierGenerator - { - string GeneratorKey(); - string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect); - string[] SqlDropString(NHibernate.Dialect.Dialect dialect); - } - - // Generated from `NHibernate.Id.IPostInsertIdentifierGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPostInsertIdentifierGenerator : NHibernate.Id.IIdentifierGenerator - { - NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled); - } - - // Generated from `NHibernate.Id.IPostInsertIdentityPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPostInsertIdentityPersister - { - string GetInfoString(); - NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string propertyName); - NHibernate.Type.IType IdentifierType { get; } - string IdentitySelectString { get; } - string[] RootTableKeyColumnNames { get; } - } - - // Generated from `NHibernate.Id.IdGeneratorParmsNames` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public struct IdGeneratorParmsNames - { - public static string EntityName; - // Stub generator skipped constructor - } - - // Generated from `NHibernate.Id.IdentifierGenerationException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentifierGenerationException : NHibernate.HibernateException - { - public IdentifierGenerationException(string message, System.Exception e) => throw null; - public IdentifierGenerationException(string message) => throw null; - public IdentifierGenerationException() => throw null; - protected IdentifierGenerationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.Id.IdentifierGeneratorFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class IdentifierGeneratorFactory - { - public static NHibernate.Id.IIdentifierGenerator Create(string strategy, NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public static object CreateNumber(System.Int64 value, System.Type type) => throw null; - public static object Get(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session) => throw null; - public static System.Threading.Tasks.Task GetAsync(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public static object GetGeneratedIdentity(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session) => throw null; - public static System.Threading.Tasks.Task GetGeneratedIdentityAsync(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Type GetIdentifierGeneratorClass(string strategy, NHibernate.Dialect.Dialect dialect) => throw null; - public static object PostInsertIndicator; - public static object ShortCircuitIndicator; - } - - // Generated from `NHibernate.Id.IdentityGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentityGenerator : NHibernate.Id.AbstractPostInsertGenerator - { - // Generated from `NHibernate.Id.IdentityGenerator+BasicDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BasicDelegate : NHibernate.Id.Insert.AbstractSelectingDelegate, NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate - { - public BasicDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Id.IPostInsertIdentityPersister)) => throw null; - protected internal override object GetResult(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object obj) => throw null; - protected internal override System.Threading.Tasks.Task GetResultAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null; - protected internal override NHibernate.SqlCommand.SqlString SelectSQL { get => throw null; } - } - - - public override NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null; - public IdentityGenerator() => throw null; - // Generated from `NHibernate.Id.IdentityGenerator+InsertSelectDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class InsertSelectDelegate : NHibernate.Id.Insert.AbstractReturningDelegate, NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate - { - public object DetermineGeneratedIdentifier(NHibernate.Engine.ISessionImplementor session, object entity) => throw null; - public override object ExecuteAndExtract(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task ExecuteAndExtractAsync(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public InsertSelectDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Id.IPostInsertIdentityPersister)) => throw null; - protected internal override System.Data.Common.DbCommand Prepare(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session) => throw null; - protected internal override System.Threading.Tasks.Task PrepareAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null; - } - - - } - - // Generated from `NHibernate.Id.IncrementGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IncrementGenerator : NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable - { - public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public IncrementGenerator() => throw null; - } - - // Generated from `NHibernate.Id.NativeGuidGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NativeGuidGenerator : NHibernate.Id.IIdentifierGenerator - { - public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public NativeGuidGenerator() => throw null; - } - - // Generated from `NHibernate.Id.PersistentIdGeneratorParmsNames` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public struct PersistentIdGeneratorParmsNames - { - public static string Catalog; - public static string PK; - // Stub generator skipped constructor - public static string Schema; - public static NHibernate.AdoNet.Util.SqlStatementLogger SqlStatementLogger; - public static string Table; - public static string Tables; - } - - // Generated from `NHibernate.Id.SelectGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SelectGenerator : NHibernate.Id.AbstractPostInsertGenerator, NHibernate.Id.IConfigurable - { - public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public override NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null; - public SelectGenerator() => throw null; - // Generated from `NHibernate.Id.SelectGenerator+SelectGeneratorDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SelectGeneratorDelegate : NHibernate.Id.Insert.AbstractSelectingDelegate - { - protected internal override void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity) => throw null; - protected internal override void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder) => throw null; - protected internal override System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override object GetResult(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity) => throw null; - protected internal override System.Threading.Tasks.Task GetResultAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal override NHibernate.SqlTypes.SqlType[] ParametersTypes { get => throw null; } - public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null; - internal SelectGeneratorDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, string suppliedUniqueKeyPropertyNames) : base(default(NHibernate.Id.IPostInsertIdentityPersister)) => throw null; - protected internal override NHibernate.SqlCommand.SqlString SelectSQL { get => throw null; } - } - - - } - - // Generated from `NHibernate.Id.SequenceGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SequenceGenerator : NHibernate.Id.IPersistentIdentifierGenerator, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable - { - public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public virtual System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public string GeneratorKey() => throw null; - public const string Parameters = default; - public const string Sequence = default; - public SequenceGenerator() => throw null; - public string SequenceName { get => throw null; } - public string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null; - public string[] SqlDropString(NHibernate.Dialect.Dialect dialect) => throw null; - } - - // Generated from `NHibernate.Id.SequenceHiLoGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SequenceHiLoGenerator : NHibernate.Id.SequenceGenerator - { - public override void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public override object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public override System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public const string MaxLo = default; - public SequenceHiLoGenerator() => throw null; - } - - // Generated from `NHibernate.Id.SequenceIdentityGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SequenceIdentityGenerator : NHibernate.Id.SequenceGenerator, NHibernate.Id.IPostInsertIdentifierGenerator, NHibernate.Id.IIdentifierGenerator - { - public override object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public override System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null; - // Generated from `NHibernate.Id.SequenceIdentityGenerator+SequenceIdentityDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SequenceIdentityDelegate : NHibernate.Id.Insert.OutputParamReturningDelegate - { - public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null; - public SequenceIdentityDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, string sequenceName) : base(default(NHibernate.Id.IPostInsertIdentityPersister), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; - } - - - public SequenceIdentityGenerator() => throw null; - } - - // Generated from `NHibernate.Id.TableGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TableGenerator : NHibernate.Engine.TransactionHelper, NHibernate.Id.IPersistentIdentifierGenerator, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable - { - public const string ColumnParamName = default; - public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public const string DefaultColumnName = default; - public const string DefaultTableName = default; - public override object DoWorkInCurrentTransaction(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction) => throw null; - public override System.Threading.Tasks.Task DoWorkInCurrentTransactionAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public virtual System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public string GeneratorKey() => throw null; - public virtual string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null; - public virtual string[] SqlDropString(NHibernate.Dialect.Dialect dialect) => throw null; - public TableGenerator() => throw null; - public const string TableParamName = default; - public const string Where = default; - protected NHibernate.SqlTypes.SqlType columnSqlType; - protected NHibernate.Type.PrimitiveType columnType; - } - - // Generated from `NHibernate.Id.TableHiLoGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TableHiLoGenerator : NHibernate.Id.TableGenerator - { - public override void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public override object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public override System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public const string MaxLo = default; - public TableHiLoGenerator() => throw null; - } - - // Generated from `NHibernate.Id.TriggerIdentityGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TriggerIdentityGenerator : NHibernate.Id.AbstractPostInsertGenerator - { - public override NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null; - public TriggerIdentityGenerator() => throw null; - } - - // Generated from `NHibernate.Id.UUIDHexGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UUIDHexGenerator : NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable - { - public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - protected const string FormatWithDigitsOnly = default; - public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public virtual System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - protected virtual string GenerateNewGuid() => throw null; - public UUIDHexGenerator() => throw null; - protected string format; - protected string sep; - } - - // Generated from `NHibernate.Id.UUIDStringGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UUIDStringGenerator : NHibernate.Id.IIdentifierGenerator - { - public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; - public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public UUIDStringGenerator() => throw null; - } - namespace Enhanced { - // Generated from `NHibernate.Id.Enhanced.IAccessCallback` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IAccessCallback { - System.Int64 GetNextValue(); - System.Threading.Tasks.Task GetNextValueAsync(System.Threading.CancellationToken cancellationToken); + long GetNextValue(); + System.Threading.Tasks.Task GetNextValueAsync(System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Id.Enhanced.IDatabaseStructure` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDatabaseStructure { NHibernate.Id.Enhanced.IAccessCallback BuildCallback(NHibernate.Engine.ISessionImplementor session); @@ -18021,159 +14083,132 @@ namespace NHibernate string[] SqlDropStrings(NHibernate.Dialect.Dialect dialect); int TimesAccessed { get; } } - - // Generated from `NHibernate.Id.Enhanced.IOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IOptimizer { bool ApplyIncrementSizeToSourceValues { get; } object Generate(NHibernate.Id.Enhanced.IAccessCallback callback); System.Threading.Tasks.Task GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback callback, System.Threading.CancellationToken cancellationToken); int IncrementSize { get; } - System.Int64 LastSourceValue { get; } + long LastSourceValue { get; } } - - // Generated from `NHibernate.Id.Enhanced.OptimizerFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OptimizerFactory { - public static NHibernate.Id.Enhanced.IOptimizer BuildOptimizer(string type, System.Type returnClass, int incrementSize, System.Int64 explicitInitialValue) => throw null; - public const string HiLo = default; - // Generated from `NHibernate.Id.Enhanced.OptimizerFactory+HiLoOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public static NHibernate.Id.Enhanced.IOptimizer BuildOptimizer(string type, System.Type returnClass, int incrementSize, long explicitInitialValue) => throw null; + public OptimizerFactory() => throw null; + public static string HiLo; public class HiLoOptimizer : NHibernate.Id.Enhanced.OptimizerFactory.OptimizerSupport { public override bool ApplyIncrementSizeToSourceValues { get => throw null; } + public HiLoOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null; public override object Generate(NHibernate.Id.Enhanced.IAccessCallback callback) => throw null; public override System.Threading.Tasks.Task GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback callback, System.Threading.CancellationToken cancellationToken) => throw null; - public HiLoOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null; - public System.Int64 HiValue { get => throw null; } - public override System.Int64 LastSourceValue { get => throw null; } - public System.Int64 LastValue { get => throw null; } + public long HiValue { get => throw null; } + public override long LastSourceValue { get => throw null; } + public long LastValue { get => throw null; } } - - - // Generated from `NHibernate.Id.Enhanced.OptimizerFactory+IInitialValueAwareOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IInitialValueAwareOptimizer { - void InjectInitialValue(System.Int64 initialValue); + void InjectInitialValue(long initialValue); } - - - public const string None = default; - // Generated from `NHibernate.Id.Enhanced.OptimizerFactory+NoopOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public static string None; public class NoopOptimizer : NHibernate.Id.Enhanced.OptimizerFactory.OptimizerSupport { public override bool ApplyIncrementSizeToSourceValues { get => throw null; } + public NoopOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null; public override object Generate(NHibernate.Id.Enhanced.IAccessCallback callback) => throw null; public override System.Threading.Tasks.Task GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback callback, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 LastSourceValue { get => throw null; } - public NoopOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null; + public override long LastSourceValue { get => throw null; } } - - - public OptimizerFactory() => throw null; - // Generated from `NHibernate.Id.Enhanced.OptimizerFactory+OptimizerSupport` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class OptimizerSupport : NHibernate.Id.Enhanced.IOptimizer { public abstract bool ApplyIncrementSizeToSourceValues { get; } + protected OptimizerSupport(System.Type returnClass, int incrementSize) => throw null; public abstract object Generate(NHibernate.Id.Enhanced.IAccessCallback param); public abstract System.Threading.Tasks.Task GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback param, System.Threading.CancellationToken cancellationToken); - public int IncrementSize { get => throw null; set => throw null; } - public abstract System.Int64 LastSourceValue { get; } - protected virtual object Make(System.Int64 value) => throw null; - protected OptimizerSupport(System.Type returnClass, int incrementSize) => throw null; - public System.Type ReturnClass { get => throw null; set => throw null; } + public int IncrementSize { get => throw null; set { } } + public abstract long LastSourceValue { get; } + protected virtual object Make(long value) => throw null; + public System.Type ReturnClass { get => throw null; set { } } } - - - public const string Pool = default; - public const string PoolLo = default; - // Generated from `NHibernate.Id.Enhanced.OptimizerFactory+PooledLoOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public static string Pool; public class PooledLoOptimizer : NHibernate.Id.Enhanced.OptimizerFactory.OptimizerSupport { public override bool ApplyIncrementSizeToSourceValues { get => throw null; } + public PooledLoOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null; public override object Generate(NHibernate.Id.Enhanced.IAccessCallback callback) => throw null; public override System.Threading.Tasks.Task GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback callback, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Int64 LastSourceValue { get => throw null; } - public System.Int64 LastValue { get => throw null; } - public PooledLoOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null; + public override long LastSourceValue { get => throw null; } + public long LastValue { get => throw null; } } - - - // Generated from `NHibernate.Id.Enhanced.OptimizerFactory+PooledOptimizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PooledOptimizer : NHibernate.Id.Enhanced.OptimizerFactory.OptimizerSupport, NHibernate.Id.Enhanced.OptimizerFactory.IInitialValueAwareOptimizer { public override bool ApplyIncrementSizeToSourceValues { get => throw null; } + public PooledOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null; public override object Generate(NHibernate.Id.Enhanced.IAccessCallback callback) => throw null; public override System.Threading.Tasks.Task GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback callback, System.Threading.CancellationToken cancellationToken) => throw null; - public void InjectInitialValue(System.Int64 initialValue) => throw null; - public override System.Int64 LastSourceValue { get => throw null; } - public System.Int64 LastValue { get => throw null; } - public PooledOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null; + public void InjectInitialValue(long initialValue) => throw null; + public override long LastSourceValue { get => throw null; } + public long LastValue { get => throw null; } } - - + public static string PoolLo; } - - // Generated from `NHibernate.Id.Enhanced.SequenceStructure` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SequenceStructure : NHibernate.Id.Enhanced.IDatabaseStructure { public NHibernate.Id.Enhanced.IAccessCallback BuildCallback(NHibernate.Engine.ISessionImplementor session) => throw null; + public SequenceStructure(NHibernate.Dialect.Dialect dialect, string sequenceName, int initialValue, int incrementSize) => throw null; public int IncrementSize { get => throw null; } public string Name { get => throw null; } public void Prepare(NHibernate.Id.Enhanced.IOptimizer optimizer) => throw null; - public SequenceStructure(NHibernate.Dialect.Dialect dialect, string sequenceName, int initialValue, int incrementSize) => throw null; public string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null; public string[] SqlDropStrings(NHibernate.Dialect.Dialect dialect) => throw null; public int TimesAccessed { get => throw null; } } - - // Generated from `NHibernate.Id.Enhanced.SequenceStyleGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SequenceStyleGenerator : NHibernate.Id.IPersistentIdentifierGenerator, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable { protected NHibernate.Id.Enhanced.IDatabaseStructure BuildDatabaseStructure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect, bool forceTableUse, string sequenceName, int initialValue, int incrementSize) => throw null; public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public NHibernate.Id.Enhanced.IDatabaseStructure DatabaseStructure { get => throw null; set => throw null; } - public const int DefaultIncrementSize = default; - public const int DefaultInitialValue = default; - public const string DefaultSequenceName = default; - public const string DefaultValueColumnName = default; + public SequenceStyleGenerator() => throw null; + public NHibernate.Id.Enhanced.IDatabaseStructure DatabaseStructure { get => throw null; } + public static int DefaultIncrementSize; + public static int DefaultInitialValue; + public static string DefaultSequenceName; + public static string DefaultValueColumnName; protected int DetermineAdjustedIncrementSize(string optimizationStrategy, int incrementSize) => throw null; protected int DetermineIncrementSize(System.Collections.Generic.IDictionary parms) => throw null; protected int DetermineInitialValue(System.Collections.Generic.IDictionary parms) => throw null; protected string DetermineOptimizationStrategy(System.Collections.Generic.IDictionary parms, int incrementSize) => throw null; protected string DetermineSequenceName(System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; protected string DetermineValueColumnName(System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public const string ForceTableParam = default; + public static string ForceTableParam; public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; public virtual System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; public virtual string GeneratorKey() => throw null; - public NHibernate.Type.IType IdentifierType { get => throw null; set => throw null; } - public const string IncrementParam = default; - public const string InitialParam = default; - public NHibernate.Id.Enhanced.IOptimizer Optimizer { get => throw null; set => throw null; } - public const string OptimizerParam = default; + public NHibernate.Type.IType IdentifierType { get => throw null; } + public static string IncrementParam; + public static string InitialParam; + public NHibernate.Id.Enhanced.IOptimizer Optimizer { get => throw null; } + public static string OptimizerParam; protected bool RequiresPooledSequence(int initialValue, int incrementSize, NHibernate.Id.Enhanced.IOptimizer optimizer) => throw null; - public const string SequenceParam = default; - public SequenceStyleGenerator() => throw null; + public static string SequenceParam; public virtual string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null; public virtual string[] SqlDropString(NHibernate.Dialect.Dialect dialect) => throw null; - public const string ValueColumnParam = default; + public static string ValueColumnParam; } - - // Generated from `NHibernate.Id.Enhanced.TableGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TableGenerator : NHibernate.Engine.TransactionHelper, NHibernate.Id.IPersistentIdentifierGenerator, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable { protected void BuildInsertQuery() => throw null; protected void BuildSelectQuery(NHibernate.Dialect.Dialect dialect) => throw null; protected void BuildUpdateQuery() => throw null; - public const string ConfigPreferSegmentPerEntity = default; + public static string ConfigPreferSegmentPerEntity; public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; - public const int DefaltInitialValue = default; - public const int DefaultIncrementSize = default; - public const string DefaultSegmentColumn = default; - public const int DefaultSegmentLength = default; - public const string DefaultSegmentValue = default; - public const string DefaultTable = default; - public const string DefaultValueColumn = default; + public TableGenerator() => throw null; + public static int DefaltInitialValue; + public static int DefaultIncrementSize; + public static string DefaultSegmentColumn; + public static int DefaultSegmentLength; + public static string DefaultSegmentValue; + public static string DefaultTable; + public static string DefaultValueColumn; protected string DetermineDefaultSegmentValue(System.Collections.Generic.IDictionary parms) => throw null; protected string DetermineGeneratorTableName(System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; protected int DetermineIncrementSize(System.Collections.Generic.IDictionary parms) => throw null; @@ -18187,33 +14222,31 @@ namespace NHibernate public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; public virtual System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; public virtual string GeneratorKey() => throw null; - public NHibernate.Type.IType IdentifierType { get => throw null; set => throw null; } - public const string IncrementParam = default; - public int IncrementSize { get => throw null; set => throw null; } - public const string InitialParam = default; - public int InitialValue { get => throw null; set => throw null; } - public NHibernate.Id.Enhanced.IOptimizer Optimizer { get => throw null; set => throw null; } - public const string OptimizerParam = default; - public string SegmentColumnName { get => throw null; set => throw null; } - public const string SegmentColumnParam = default; - public const string SegmentLengthParam = default; - public string SegmentValue { get => throw null; set => throw null; } - public int SegmentValueLength { get => throw null; set => throw null; } - public const string SegmentValueParam = default; + public NHibernate.Type.IType IdentifierType { get => throw null; } + public static string IncrementParam; + public int IncrementSize { get => throw null; } + public static string InitialParam; + public int InitialValue { get => throw null; } + public NHibernate.Id.Enhanced.IOptimizer Optimizer { get => throw null; } + public static string OptimizerParam; + public string SegmentColumnName { get => throw null; } + public static string SegmentColumnParam; + public static string SegmentLengthParam; + public string SegmentValue { get => throw null; } + public int SegmentValueLength { get => throw null; } + public static string SegmentValueParam; public virtual string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null; public virtual string[] SqlDropString(NHibernate.Dialect.Dialect dialect) => throw null; - public System.Int64 TableAccessCount { get => throw null; set => throw null; } - public TableGenerator() => throw null; - public string TableName { get => throw null; set => throw null; } - public const string TableParam = default; - public string ValueColumnName { get => throw null; set => throw null; } - public const string ValueColumnParam = default; + public long TableAccessCount { get => throw null; } + public string TableName { get => throw null; } + public static string TableParam; + public string ValueColumnName { get => throw null; } + public static string ValueColumnParam; } - - // Generated from `NHibernate.Id.Enhanced.TableStructure` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TableStructure : NHibernate.Engine.TransactionHelper, NHibernate.Id.Enhanced.IDatabaseStructure { public virtual NHibernate.Id.Enhanced.IAccessCallback BuildCallback(NHibernate.Engine.ISessionImplementor session) => throw null; + public TableStructure(NHibernate.Dialect.Dialect dialect, string tableName, string valueColumnName, int initialValue, int incrementSize) => throw null; public override object DoWorkInCurrentTransaction(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction) => throw null; public override System.Threading.Tasks.Task DoWorkInCurrentTransactionAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken) => throw null; public int IncrementSize { get => throw null; } @@ -18221,14 +14254,98 @@ namespace NHibernate public virtual void Prepare(NHibernate.Id.Enhanced.IOptimizer optimizer) => throw null; public virtual string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null; public virtual string[] SqlDropStrings(NHibernate.Dialect.Dialect dialect) => throw null; - public TableStructure(NHibernate.Dialect.Dialect dialect, string tableName, string valueColumnName, int initialValue, int incrementSize) => throw null; public int TimesAccessed { get => throw null; } } - + } + public class ForeignGenerator : NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable + { + public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; + public ForeignGenerator() => throw null; + public object Generate(NHibernate.Engine.ISessionImplementor sessionImplementor, object obj) => throw null; + public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class GuidCombGenerator : NHibernate.Id.IIdentifierGenerator + { + public GuidCombGenerator() => throw null; + public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class GuidGenerator : NHibernate.Id.IIdentifierGenerator + { + public GuidGenerator() => throw null; + public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + } + public interface ICompositeKeyPostInsertIdentityPersister + { + void BindSelectByUniqueKey(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames); + System.Threading.Tasks.Task BindSelectByUniqueKeyAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames, System.Threading.CancellationToken cancellationToken); + NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string[] suppliedPropertyNames, out NHibernate.Type.IType[] parameterTypes); + } + public interface IConfigurable + { + void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect); + } + public class IdentifierGenerationException : NHibernate.HibernateException + { + public IdentifierGenerationException() => throw null; + public IdentifierGenerationException(string message) => throw null; + public IdentifierGenerationException(string message, System.Exception e) => throw null; + protected IdentifierGenerationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public static class IdentifierGeneratorFactory + { + public static NHibernate.Id.IIdentifierGenerator Create(string strategy, NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; + public static object CreateNumber(long value, System.Type type) => throw null; + public static object Get(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session) => throw null; + public static System.Threading.Tasks.Task GetAsync(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public static object GetGeneratedIdentity(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session) => throw null; + public static System.Threading.Tasks.Task GetGeneratedIdentityAsync(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Type GetIdentifierGeneratorClass(string strategy, NHibernate.Dialect.Dialect dialect) => throw null; + public static object PostInsertIndicator; + public static object ShortCircuitIndicator; + } + public class IdentityGenerator : NHibernate.Id.AbstractPostInsertGenerator + { + public class BasicDelegate : NHibernate.Id.Insert.AbstractSelectingDelegate, NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate + { + public BasicDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Id.IPostInsertIdentityPersister)) => throw null; + protected override object GetResult(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object obj) => throw null; + protected override System.Threading.Tasks.Task GetResultAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null; + protected override NHibernate.SqlCommand.SqlString SelectSQL { get => throw null; } + } + public IdentityGenerator() => throw null; + public override NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null; + public class InsertSelectDelegate : NHibernate.Id.Insert.AbstractReturningDelegate, NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate + { + public InsertSelectDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Id.IPostInsertIdentityPersister)) => throw null; + public object DetermineGeneratedIdentifier(NHibernate.Engine.ISessionImplementor session, object entity) => throw null; + public override object ExecuteAndExtract(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session) => throw null; + public override System.Threading.Tasks.Task ExecuteAndExtractAsync(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Data.Common.DbCommand Prepare(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session) => throw null; + protected override System.Threading.Tasks.Task PrepareAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null; + } + } + public struct IdGeneratorParmsNames + { + public static string EntityName; + } + public interface IIdentifierGenerator + { + object Generate(NHibernate.Engine.ISessionImplementor session, object obj); + System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken); + } + public class IncrementGenerator : NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable + { + public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; + public IncrementGenerator() => throw null; + public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; } namespace Insert { - // Generated from `NHibernate.Id.Insert.AbstractReturningDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractReturningDelegate : NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate { protected AbstractReturningDelegate(NHibernate.Id.IPostInsertIdentityPersister persister) => throw null; @@ -18237,141 +14354,419 @@ namespace NHibernate public object PerformInsert(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder) => throw null; public System.Threading.Tasks.Task PerformInsertAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken) => throw null; protected NHibernate.Id.IPostInsertIdentityPersister Persister { get => throw null; } - protected internal abstract System.Data.Common.DbCommand Prepare(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session); - protected internal abstract System.Threading.Tasks.Task PrepareAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + protected abstract System.Data.Common.DbCommand Prepare(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session); + protected abstract System.Threading.Tasks.Task PrepareAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); public abstract NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert(); - protected internal virtual void ReleaseStatement(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session) => throw null; + protected virtual void ReleaseStatement(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session) => throw null; } - - // Generated from `NHibernate.Id.Insert.AbstractSelectingDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractSelectingDelegate : NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate { - protected internal AbstractSelectingDelegate(NHibernate.Id.IPostInsertIdentityPersister persister) => throw null; - protected internal virtual void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity) => throw null; - protected internal virtual void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder) => throw null; - protected internal virtual System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal virtual System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal abstract object GetResult(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity); - protected internal abstract System.Threading.Tasks.Task GetResultAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity, System.Threading.CancellationToken cancellationToken); - protected internal virtual NHibernate.SqlTypes.SqlType[] ParametersTypes { get => throw null; } + protected virtual void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity) => throw null; + protected virtual void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder) => throw null; + protected virtual System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity, System.Threading.CancellationToken cancellationToken) => throw null; + protected virtual System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken) => throw null; + protected AbstractSelectingDelegate(NHibernate.Id.IPostInsertIdentityPersister persister) => throw null; + protected abstract object GetResult(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity); + protected abstract System.Threading.Tasks.Task GetResultAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity, System.Threading.CancellationToken cancellationToken); + protected virtual NHibernate.SqlTypes.SqlType[] ParametersTypes { get => throw null; } public object PerformInsert(NHibernate.SqlCommand.SqlCommandInfo insertSql, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder) => throw null; public System.Threading.Tasks.Task PerformInsertAsync(NHibernate.SqlCommand.SqlCommandInfo insertSql, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken) => throw null; public abstract NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert(); - protected internal abstract NHibernate.SqlCommand.SqlString SelectSQL { get; } + protected abstract NHibernate.SqlCommand.SqlString SelectSQL { get; } } - - // Generated from `NHibernate.Id.Insert.IBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBinder { void BindValues(System.Data.Common.DbCommand cm); System.Threading.Tasks.Task BindValuesAsync(System.Data.Common.DbCommand cm, System.Threading.CancellationToken cancellationToken); object Entity { get; } } - - // Generated from `NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class IdentifierGeneratingInsert : NHibernate.SqlCommand.SqlInsertBuilder + { + public IdentifierGeneratingInsert(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; + } public interface IInsertGeneratedIdentifierDelegate { object PerformInsert(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder); System.Threading.Tasks.Task PerformInsertAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken); NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert(); } - - // Generated from `NHibernate.Id.Insert.IdentifierGeneratingInsert` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentifierGeneratingInsert : NHibernate.SqlCommand.SqlInsertBuilder - { - public IdentifierGeneratingInsert(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; - } - - // Generated from `NHibernate.Id.Insert.InsertSelectIdentityInsert` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InsertSelectIdentityInsert : NHibernate.Id.Insert.IdentifierGeneratingInsert { - public InsertSelectIdentityInsert(NHibernate.Engine.ISessionFactoryImplementor factory, string identifierColumnName) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; public InsertSelectIdentityInsert(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; + public InsertSelectIdentityInsert(NHibernate.Engine.ISessionFactoryImplementor factory, string identifierColumnName) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString() => throw null; } - - // Generated from `NHibernate.Id.Insert.NoCommentsInsert` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NoCommentsInsert : NHibernate.Id.Insert.IdentifierGeneratingInsert { public NoCommentsInsert(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; public override NHibernate.SqlCommand.SqlInsertBuilder SetComment(string comment) => throw null; } - - // Generated from `NHibernate.Id.Insert.OutputParamReturningDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OutputParamReturningDelegate : NHibernate.Id.Insert.AbstractReturningDelegate { + public OutputParamReturningDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Id.IPostInsertIdentityPersister)) => throw null; public override object ExecuteAndExtract(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task ExecuteAndExtractAsync(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public OutputParamReturningDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Id.IPostInsertIdentityPersister)) => throw null; - protected internal override System.Data.Common.DbCommand Prepare(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session) => throw null; - protected internal override System.Threading.Tasks.Task PrepareAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Data.Common.DbCommand Prepare(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session) => throw null; + protected override System.Threading.Tasks.Task PrepareAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null; } - - // Generated from `NHibernate.Id.Insert.ReturningIdentifierInsert` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ReturningIdentifierInsert : NHibernate.Id.Insert.NoCommentsInsert { public ReturningIdentifierInsert(NHibernate.Engine.ISessionFactoryImplementor factory, string identifierColumnName, string returnParameterName) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; public override NHibernate.SqlCommand.SqlString ToSqlString() => throw null; } - } + public interface IPersistentIdentifierGenerator : NHibernate.Id.IIdentifierGenerator + { + string GeneratorKey(); + string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect); + string[] SqlDropString(NHibernate.Dialect.Dialect dialect); + } + public interface IPostInsertIdentifierGenerator : NHibernate.Id.IIdentifierGenerator + { + NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled); + } + public interface IPostInsertIdentityPersister + { + string GetInfoString(); + NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string propertyName); + NHibernate.Type.IType IdentifierType { get; } + string IdentitySelectString { get; } + string[] RootTableKeyColumnNames { get; } + } + public class NativeGuidGenerator : NHibernate.Id.IIdentifierGenerator + { + public NativeGuidGenerator() => throw null; + public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + } + public struct PersistentIdGeneratorParmsNames + { + public static string Catalog; + public static string PK; + public static string Schema; + public static NHibernate.AdoNet.Util.SqlStatementLogger SqlStatementLogger; + public static string Table; + public static string Tables; + } + public class SelectGenerator : NHibernate.Id.AbstractPostInsertGenerator, NHibernate.Id.IConfigurable + { + public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; + public SelectGenerator() => throw null; + public override NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null; + public class SelectGeneratorDelegate : NHibernate.Id.Insert.AbstractSelectingDelegate + { + protected override void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity) => throw null; + protected override void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder) => throw null; + protected override System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken) => throw null; + protected override object GetResult(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity) => throw null; + protected override System.Threading.Tasks.Task GetResultAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity, System.Threading.CancellationToken cancellationToken) => throw null; + protected override NHibernate.SqlTypes.SqlType[] ParametersTypes { get => throw null; } + public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null; + protected override NHibernate.SqlCommand.SqlString SelectSQL { get => throw null; } + internal SelectGeneratorDelegate() : base(default(NHibernate.Id.IPostInsertIdentityPersister)) { } + } + } + public class SequenceGenerator : NHibernate.Id.IPersistentIdentifierGenerator, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable + { + public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; + public SequenceGenerator() => throw null; + public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public virtual System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + public string GeneratorKey() => throw null; + public static string Parameters; + public static string Sequence; + public string SequenceName { get => throw null; } + public string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null; + public string[] SqlDropString(NHibernate.Dialect.Dialect dialect) => throw null; + } + public class SequenceHiLoGenerator : NHibernate.Id.SequenceGenerator + { + public override void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; + public SequenceHiLoGenerator() => throw null; + public override object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public override System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + public static string MaxLo; + } + public class SequenceIdentityGenerator : NHibernate.Id.SequenceGenerator, NHibernate.Id.IPostInsertIdentifierGenerator, NHibernate.Id.IIdentifierGenerator + { + public SequenceIdentityGenerator() => throw null; + public override object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public override System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + public NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null; + public class SequenceIdentityDelegate : NHibernate.Id.Insert.OutputParamReturningDelegate + { + public SequenceIdentityDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, string sequenceName) : base(default(NHibernate.Id.IPostInsertIdentityPersister), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; + public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null; + } + } + public class TableGenerator : NHibernate.Engine.TransactionHelper, NHibernate.Id.IPersistentIdentifierGenerator, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable + { + public static string ColumnParamName; + protected NHibernate.SqlTypes.SqlType columnSqlType; + protected NHibernate.Type.PrimitiveType columnType; + public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; + public TableGenerator() => throw null; + public static string DefaultColumnName; + public static string DefaultTableName; + public override object DoWorkInCurrentTransaction(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction) => throw null; + public override System.Threading.Tasks.Task DoWorkInCurrentTransactionAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public virtual System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + public string GeneratorKey() => throw null; + public virtual string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null; + public virtual string[] SqlDropString(NHibernate.Dialect.Dialect dialect) => throw null; + public static string TableParamName; + public static string Where; + } + public class TableHiLoGenerator : NHibernate.Id.TableGenerator + { + public override void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; + public TableHiLoGenerator() => throw null; + public override object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public override System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + public static string MaxLo; + } + public class TriggerIdentityGenerator : NHibernate.Id.AbstractPostInsertGenerator + { + public TriggerIdentityGenerator() => throw null; + public override NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null; + } + public class UUIDHexGenerator : NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IConfigurable + { + public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary parms, NHibernate.Dialect.Dialect dialect) => throw null; + public UUIDHexGenerator() => throw null; + protected string format; + protected static string FormatWithDigitsOnly; + public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public virtual System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + protected virtual string GenerateNewGuid() => throw null; + protected string sep; + } + public class UUIDStringGenerator : NHibernate.Id.IIdentifierGenerator + { + public UUIDStringGenerator() => throw null; + public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null; + public System.Threading.Tasks.Task GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null; + } + } + public interface IDatabinder + { + NHibernate.IDatabinder Bind(object obj); + NHibernate.IDatabinder BindAll(System.Collections.ICollection objs); + bool InitializeLazy { get; set; } + string ToGenericXml(); + System.Xml.XmlDocument ToGenericXmlDocument(); + string ToXML(); + System.Xml.XmlDocument ToXmlDocument(); + } + public class IdentityEqualityComparer : System.Collections.IEqualityComparer, System.Collections.Generic.IEqualityComparer + { + public IdentityEqualityComparer() => throw null; + public bool Equals(object x, object y) => throw null; + public int GetHashCode(object obj) => throw null; + } + public interface IDetachedQuery + { + NHibernate.IQuery GetExecutableQuery(NHibernate.ISession session); + NHibernate.IDetachedQuery SetAnsiString(int position, string val); + NHibernate.IDetachedQuery SetAnsiString(string name, string val); + NHibernate.IDetachedQuery SetBinary(int position, byte[] val); + NHibernate.IDetachedQuery SetBinary(string name, byte[] val); + NHibernate.IDetachedQuery SetBoolean(int position, bool val); + NHibernate.IDetachedQuery SetBoolean(string name, bool val); + NHibernate.IDetachedQuery SetByte(int position, byte val); + NHibernate.IDetachedQuery SetByte(string name, byte val); + NHibernate.IDetachedQuery SetCacheable(bool cacheable); + NHibernate.IDetachedQuery SetCacheMode(NHibernate.CacheMode cacheMode); + NHibernate.IDetachedQuery SetCacheRegion(string cacheRegion); + NHibernate.IDetachedQuery SetCharacter(int position, char val); + NHibernate.IDetachedQuery SetCharacter(string name, char val); + NHibernate.IDetachedQuery SetComment(string comment); + NHibernate.IDetachedQuery SetDateTime(int position, System.DateTime val); + NHibernate.IDetachedQuery SetDateTime(string name, System.DateTime val); + NHibernate.IDetachedQuery SetDateTimeNoMs(int position, System.DateTime val); + NHibernate.IDetachedQuery SetDateTimeNoMs(string name, System.DateTime val); + NHibernate.IDetachedQuery SetDecimal(int position, decimal val); + NHibernate.IDetachedQuery SetDecimal(string name, decimal val); + NHibernate.IDetachedQuery SetDouble(int position, double val); + NHibernate.IDetachedQuery SetDouble(string name, double val); + NHibernate.IDetachedQuery SetEntity(int position, object val); + NHibernate.IDetachedQuery SetEntity(string name, object val); + NHibernate.IDetachedQuery SetEnum(int position, System.Enum val); + NHibernate.IDetachedQuery SetEnum(string name, System.Enum val); + NHibernate.IDetachedQuery SetFetchSize(int fetchSize); + NHibernate.IDetachedQuery SetFirstResult(int firstResult); + NHibernate.IDetachedQuery SetFlushMode(NHibernate.FlushMode flushMode); + NHibernate.IDetachedQuery SetGuid(int position, System.Guid val); + NHibernate.IDetachedQuery SetGuid(string name, System.Guid val); + NHibernate.IDetachedQuery SetIgnoreUknownNamedParameters(bool ignoredUnknownNamedParameters); + NHibernate.IDetachedQuery SetInt16(int position, short val); + NHibernate.IDetachedQuery SetInt16(string name, short val); + NHibernate.IDetachedQuery SetInt32(int position, int val); + NHibernate.IDetachedQuery SetInt32(string name, int val); + NHibernate.IDetachedQuery SetInt64(int position, long val); + NHibernate.IDetachedQuery SetInt64(string name, long val); + void SetLockMode(string alias, NHibernate.LockMode lockMode); + NHibernate.IDetachedQuery SetMaxResults(int maxResults); + NHibernate.IDetachedQuery SetParameter(int position, object val, NHibernate.Type.IType type); + NHibernate.IDetachedQuery SetParameter(string name, object val, NHibernate.Type.IType type); + NHibernate.IDetachedQuery SetParameter(int position, object val); + NHibernate.IDetachedQuery SetParameter(string name, object val); + NHibernate.IDetachedQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type); + NHibernate.IDetachedQuery SetParameterList(string name, System.Collections.IEnumerable vals); + NHibernate.IDetachedQuery SetProperties(object obj); + NHibernate.IDetachedQuery SetReadOnly(bool readOnly); + NHibernate.IDetachedQuery SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer); + NHibernate.IDetachedQuery SetSingle(int position, float val); + NHibernate.IDetachedQuery SetSingle(string name, float val); + NHibernate.IDetachedQuery SetString(int position, string val); + NHibernate.IDetachedQuery SetString(string name, string val); + NHibernate.IDetachedQuery SetTime(int position, System.DateTime val); + NHibernate.IDetachedQuery SetTime(string name, System.DateTime val); + NHibernate.IDetachedQuery SetTimeout(int timeout); + NHibernate.IDetachedQuery SetTimestamp(int position, System.DateTime val); + NHibernate.IDetachedQuery SetTimestamp(string name, System.DateTime val); + } + public interface IFilter + { + NHibernate.Engine.FilterDefinition FilterDefinition { get; } + string Name { get; } + NHibernate.IFilter SetParameter(string name, object value); + NHibernate.IFilter SetParameterList(string name, System.Collections.Generic.ICollection values); + void Validate(); + } + public interface IFutureEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + System.Collections.Generic.IEnumerable GetEnumerable(); + System.Threading.Tasks.Task> GetEnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Collections.Generic.IEnumerator GetEnumerator(); + } + public interface IFutureValue + { + System.Threading.Tasks.Task GetValueAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + T Value { get; } + } + public interface IInterceptor + { + void AfterTransactionBegin(NHibernate.ITransaction tx); + void AfterTransactionCompletion(NHibernate.ITransaction tx); + void BeforeTransactionCompletion(NHibernate.ITransaction tx); + int[] FindDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types); + object GetEntity(string entityName, object id); + string GetEntityName(object entity); + object Instantiate(string entityName, object id); + bool? IsTransient(object entity); + void OnCollectionRecreate(object collection, object key); + void OnCollectionRemove(object collection, object key); + void OnCollectionUpdate(object collection, object key); + void OnDelete(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types); + bool OnFlushDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types); + bool OnLoad(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types); + NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql); + bool OnSave(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types); + void PostFlush(System.Collections.ICollection entities); + void PreFlush(System.Collections.ICollection entities); + void SetSession(NHibernate.ISession session); + } + public interface IInternalLogger + { + void Debug(object message); + void Debug(object message, System.Exception exception); + void DebugFormat(string format, params object[] args); + void Error(object message); + void Error(object message, System.Exception exception); + void ErrorFormat(string format, params object[] args); + void Fatal(object message); + void Fatal(object message, System.Exception exception); + void Info(object message); + void Info(object message, System.Exception exception); + void InfoFormat(string format, params object[] args); + bool IsDebugEnabled { get; } + bool IsErrorEnabled { get; } + bool IsFatalEnabled { get; } + bool IsInfoEnabled { get; } + bool IsWarnEnabled { get; } + void Warn(object message); + void Warn(object message, System.Exception exception); + void WarnFormat(string format, params object[] args); + } + public interface ILoggerFactory + { + NHibernate.IInternalLogger LoggerFor(string keyName); + NHibernate.IInternalLogger LoggerFor(System.Type type); } namespace Impl { - // Generated from `NHibernate.Impl.AbstractDetachedQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractDetachedQuery : NHibernate.Impl.IDetachedQueryImplementor, NHibernate.IDetachedQuery + public abstract class AbstractDetachedQuery : NHibernate.IDetachedQuery, NHibernate.Impl.IDetachedQueryImplementor { - protected AbstractDetachedQuery() => throw null; + protected bool cacheable; + protected NHibernate.CacheMode? cacheMode; + protected string cacheRegion; + protected string comment; public NHibernate.IDetachedQuery CopyParametersFrom(NHibernate.Impl.IDetachedQueryImplementor origin) => throw null; public void CopyTo(NHibernate.IDetachedQuery destination) => throw null; + protected AbstractDetachedQuery() => throw null; + protected NHibernate.FlushMode flushMode; public abstract NHibernate.IQuery GetExecutableQuery(NHibernate.ISession session); + protected System.Collections.Generic.Dictionary lockModes; + protected System.Collections.Generic.Dictionary namedListParams; + protected System.Collections.Generic.Dictionary namedParams; + protected System.Collections.Generic.Dictionary namedUntypeListParams; + protected System.Collections.Generic.Dictionary namedUntypeParams; + protected System.Collections.IList optionalUntypeParams; void NHibernate.Impl.IDetachedQueryImplementor.OverrideInfoFrom(NHibernate.Impl.IDetachedQueryImplementor origin) => throw null; void NHibernate.Impl.IDetachedQueryImplementor.OverrideParametersFrom(NHibernate.Impl.IDetachedQueryImplementor origin) => throw null; - public NHibernate.IDetachedQuery SetAnsiString(string name, string val) => throw null; + protected System.Collections.Generic.Dictionary posParams; + protected System.Collections.Generic.Dictionary posUntypeParams; + protected bool readOnly; + protected NHibernate.Transform.IResultTransformer resultTransformer; + protected NHibernate.Engine.RowSelection selection; public NHibernate.IDetachedQuery SetAnsiString(int position, string val) => throw null; - public NHibernate.IDetachedQuery SetBinary(string name, System.Byte[] val) => throw null; - public NHibernate.IDetachedQuery SetBinary(int position, System.Byte[] val) => throw null; - public NHibernate.IDetachedQuery SetBoolean(string name, bool val) => throw null; + public NHibernate.IDetachedQuery SetAnsiString(string name, string val) => throw null; + public NHibernate.IDetachedQuery SetBinary(int position, byte[] val) => throw null; + public NHibernate.IDetachedQuery SetBinary(string name, byte[] val) => throw null; public NHibernate.IDetachedQuery SetBoolean(int position, bool val) => throw null; - public NHibernate.IDetachedQuery SetByte(string name, System.Byte val) => throw null; - public NHibernate.IDetachedQuery SetByte(int position, System.Byte val) => throw null; + public NHibernate.IDetachedQuery SetBoolean(string name, bool val) => throw null; + public NHibernate.IDetachedQuery SetByte(int position, byte val) => throw null; + public NHibernate.IDetachedQuery SetByte(string name, byte val) => throw null; + public virtual NHibernate.IDetachedQuery SetCacheable(bool cacheable) => throw null; public virtual NHibernate.IDetachedQuery SetCacheMode(NHibernate.CacheMode cacheMode) => throw null; public virtual NHibernate.IDetachedQuery SetCacheRegion(string cacheRegion) => throw null; - public virtual NHibernate.IDetachedQuery SetCacheable(bool cacheable) => throw null; - public NHibernate.IDetachedQuery SetCharacter(string name, System.Char val) => throw null; - public NHibernate.IDetachedQuery SetCharacter(int position, System.Char val) => throw null; + public NHibernate.IDetachedQuery SetCharacter(int position, char val) => throw null; + public NHibernate.IDetachedQuery SetCharacter(string name, char val) => throw null; public virtual NHibernate.IDetachedQuery SetComment(string comment) => throw null; - public NHibernate.IDetachedQuery SetDateTime(string name, System.DateTime val) => throw null; public NHibernate.IDetachedQuery SetDateTime(int position, System.DateTime val) => throw null; - public NHibernate.IDetachedQuery SetDateTimeNoMs(string name, System.DateTime val) => throw null; + public NHibernate.IDetachedQuery SetDateTime(string name, System.DateTime val) => throw null; public NHibernate.IDetachedQuery SetDateTimeNoMs(int position, System.DateTime val) => throw null; - public NHibernate.IDetachedQuery SetDecimal(string name, System.Decimal val) => throw null; - public NHibernate.IDetachedQuery SetDecimal(int position, System.Decimal val) => throw null; - public NHibernate.IDetachedQuery SetDouble(string name, double val) => throw null; + public NHibernate.IDetachedQuery SetDateTimeNoMs(string name, System.DateTime val) => throw null; + public NHibernate.IDetachedQuery SetDecimal(int position, decimal val) => throw null; + public NHibernate.IDetachedQuery SetDecimal(string name, decimal val) => throw null; public NHibernate.IDetachedQuery SetDouble(int position, double val) => throw null; - public NHibernate.IDetachedQuery SetEntity(string name, object val) => throw null; + public NHibernate.IDetachedQuery SetDouble(string name, double val) => throw null; public NHibernate.IDetachedQuery SetEntity(int position, object val) => throw null; - public NHibernate.IDetachedQuery SetEnum(string name, System.Enum val) => throw null; + public NHibernate.IDetachedQuery SetEntity(string name, object val) => throw null; public NHibernate.IDetachedQuery SetEnum(int position, System.Enum val) => throw null; + public NHibernate.IDetachedQuery SetEnum(string name, System.Enum val) => throw null; public virtual NHibernate.IDetachedQuery SetFetchSize(int fetchSize) => throw null; public NHibernate.IDetachedQuery SetFirstResult(int firstResult) => throw null; public virtual NHibernate.IDetachedQuery SetFlushMode(NHibernate.FlushMode flushMode) => throw null; - public NHibernate.IDetachedQuery SetGuid(string name, System.Guid val) => throw null; public NHibernate.IDetachedQuery SetGuid(int position, System.Guid val) => throw null; + public NHibernate.IDetachedQuery SetGuid(string name, System.Guid val) => throw null; public NHibernate.IDetachedQuery SetIgnoreUknownNamedParameters(bool ignoredUnknownNamedParameters) => throw null; - public NHibernate.IDetachedQuery SetInt16(string name, System.Int16 val) => throw null; - public NHibernate.IDetachedQuery SetInt16(int position, System.Int16 val) => throw null; - public NHibernate.IDetachedQuery SetInt32(string name, int val) => throw null; + public NHibernate.IDetachedQuery SetInt16(int position, short val) => throw null; + public NHibernate.IDetachedQuery SetInt16(string name, short val) => throw null; public NHibernate.IDetachedQuery SetInt32(int position, int val) => throw null; - public NHibernate.IDetachedQuery SetInt64(string name, System.Int64 val) => throw null; - public NHibernate.IDetachedQuery SetInt64(int position, System.Int64 val) => throw null; + public NHibernate.IDetachedQuery SetInt32(string name, int val) => throw null; + public NHibernate.IDetachedQuery SetInt64(int position, long val) => throw null; + public NHibernate.IDetachedQuery SetInt64(string name, long val) => throw null; public void SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null; public NHibernate.IDetachedQuery SetMaxResults(int maxResults) => throw null; - public NHibernate.IDetachedQuery SetParameter(string name, object val, NHibernate.Type.IType type) => throw null; - public NHibernate.IDetachedQuery SetParameter(string name, object val) => throw null; public NHibernate.IDetachedQuery SetParameter(int position, object val, NHibernate.Type.IType type) => throw null; + public NHibernate.IDetachedQuery SetParameter(string name, object val, NHibernate.Type.IType type) => throw null; public NHibernate.IDetachedQuery SetParameter(int position, object val) => throw null; + public NHibernate.IDetachedQuery SetParameter(string name, object val) => throw null; public NHibernate.IDetachedQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type) => throw null; public NHibernate.IDetachedQuery SetParameterList(string name, System.Collections.IEnumerable vals) => throw null; public void SetParametersTo(NHibernate.IDetachedQuery destination) => throw null; @@ -18379,168 +14774,149 @@ namespace NHibernate protected void SetQueryProperties(NHibernate.IQuery q) => throw null; public virtual NHibernate.IDetachedQuery SetReadOnly(bool readOnly) => throw null; public NHibernate.IDetachedQuery SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; - public NHibernate.IDetachedQuery SetSingle(string name, float val) => throw null; public NHibernate.IDetachedQuery SetSingle(int position, float val) => throw null; - public NHibernate.IDetachedQuery SetString(string name, string val) => throw null; + public NHibernate.IDetachedQuery SetSingle(string name, float val) => throw null; public NHibernate.IDetachedQuery SetString(int position, string val) => throw null; - public NHibernate.IDetachedQuery SetTime(string name, System.DateTime val) => throw null; + public NHibernate.IDetachedQuery SetString(string name, string val) => throw null; public NHibernate.IDetachedQuery SetTime(int position, System.DateTime val) => throw null; + public NHibernate.IDetachedQuery SetTime(string name, System.DateTime val) => throw null; public virtual NHibernate.IDetachedQuery SetTimeout(int timeout) => throw null; - public NHibernate.IDetachedQuery SetTimestamp(string name, System.DateTime val) => throw null; public NHibernate.IDetachedQuery SetTimestamp(int position, System.DateTime val) => throw null; - protected NHibernate.CacheMode? cacheMode; - protected string cacheRegion; - protected bool cacheable; - protected string comment; - protected NHibernate.FlushMode flushMode; - protected System.Collections.Generic.Dictionary lockModes; - protected System.Collections.Generic.Dictionary namedListParams; - protected System.Collections.Generic.Dictionary namedParams; - protected System.Collections.Generic.Dictionary namedUntypeListParams; - protected System.Collections.Generic.Dictionary namedUntypeParams; - protected System.Collections.IList optionalUntypeParams; - protected System.Collections.Generic.Dictionary posParams; - protected System.Collections.Generic.Dictionary posUntypeParams; - protected bool readOnly; - protected NHibernate.Transform.IResultTransformer resultTransformer; - protected NHibernate.Engine.RowSelection selection; + public NHibernate.IDetachedQuery SetTimestamp(string name, System.DateTime val) => throw null; protected bool shouldIgnoredUnknownNamedParameters; } - - // Generated from `NHibernate.Impl.AbstractQueryImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractQueryImpl : NHibernate.IQuery { - protected AbstractQueryImpl(string queryString, NHibernate.FlushMode flushMode, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) => throw null; protected void After() => throw null; protected void Before() => throw null; - public string CacheRegion { get => throw null; } public bool Cacheable { get => throw null; } - protected internal virtual NHibernate.Type.IType DetermineType(string paramName, object paramValue, NHibernate.Type.IType defaultType) => throw null; - protected internal virtual NHibernate.Type.IType DetermineType(string paramName, object paramValue) => throw null; - protected internal virtual NHibernate.Type.IType DetermineType(string paramName, System.Type clazz) => throw null; - protected internal virtual NHibernate.Type.IType DetermineType(int paramPosition, object paramValue, NHibernate.Type.IType defaultType) => throw null; - protected internal virtual NHibernate.Type.IType DetermineType(int paramPosition, object paramValue) => throw null; + public string CacheRegion { get => throw null; } + protected AbstractQueryImpl(string queryString, NHibernate.FlushMode flushMode, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) => throw null; + protected virtual NHibernate.Type.IType DetermineType(int paramPosition, object paramValue, NHibernate.Type.IType defaultType) => throw null; + protected virtual NHibernate.Type.IType DetermineType(int paramPosition, object paramValue) => throw null; + protected virtual NHibernate.Type.IType DetermineType(string paramName, object paramValue, NHibernate.Type.IType defaultType) => throw null; + protected virtual NHibernate.Type.IType DetermineType(string paramName, object paramValue) => throw null; + protected virtual NHibernate.Type.IType DetermineType(string paramName, System.Type clazz) => throw null; public abstract System.Collections.IEnumerable Enumerable(); public abstract System.Collections.Generic.IEnumerable Enumerable(); public abstract System.Threading.Tasks.Task EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public abstract System.Threading.Tasks.Task> EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public abstract int ExecuteUpdate(); public abstract System.Threading.Tasks.Task ExecuteUpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - protected internal virtual string ExpandParameterLists(System.Collections.Generic.IDictionary namedParamsCopy) => throw null; + protected virtual string ExpandParameterLists(System.Collections.Generic.IDictionary namedParamsCopy) => throw null; public NHibernate.IFutureEnumerable Future() => throw null; public NHibernate.IFutureValue FutureValue() => throw null; - public virtual NHibernate.Engine.QueryParameters GetQueryParameters(System.Collections.Generic.IDictionary namedParams) => throw null; public virtual NHibernate.Engine.QueryParameters GetQueryParameters() => throw null; - protected internal abstract System.Collections.Generic.IEnumerable GetTranslators(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters); - protected internal abstract System.Threading.Tasks.Task> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); + public virtual NHibernate.Engine.QueryParameters GetQueryParameters(System.Collections.Generic.IDictionary namedParams) => throw null; + protected abstract System.Collections.Generic.IEnumerable GetTranslators(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters); + protected abstract System.Threading.Tasks.Task> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); public bool HasNamedParameters { get => throw null; } public bool IsReadOnly { get => throw null; } - public abstract void List(System.Collections.IList results); public abstract System.Collections.IList List(); + public abstract void List(System.Collections.IList results); public abstract System.Collections.Generic.IList List(); public abstract System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - public abstract System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public abstract System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - protected internal abstract System.Collections.Generic.IDictionary LockModes { get; } + public abstract System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + protected abstract System.Collections.Generic.IDictionary LockModes { get; } + protected System.Collections.Generic.Dictionary namedParameterLists; protected System.Collections.IDictionary NamedParameterLists { get => throw null; } public string[] NamedParameters { get => throw null; } - protected internal System.Collections.Generic.IDictionary NamedParams { get => throw null; } + protected System.Collections.Generic.IDictionary NamedParams { get => throw null; } + protected NHibernate.Engine.Query.ParameterMetadata parameterMetadata; public string QueryString { get => throw null; } public virtual string[] ReturnAliases { get => throw null; } public virtual NHibernate.Type.IType[] ReturnTypes { get => throw null; } protected NHibernate.Engine.RowSelection RowSelection { get => throw null; } public NHibernate.Engine.RowSelection Selection { get => throw null; } - protected internal NHibernate.Engine.ISessionImplementor Session { get => throw null; } - public NHibernate.IQuery SetAnsiString(string name, string val) => throw null; + protected NHibernate.Engine.ISessionImplementor session; + protected NHibernate.Engine.ISessionImplementor Session { get => throw null; } public NHibernate.IQuery SetAnsiString(int position, string val) => throw null; - public NHibernate.IQuery SetBinary(string name, System.Byte[] val) => throw null; - public NHibernate.IQuery SetBinary(int position, System.Byte[] val) => throw null; - public NHibernate.IQuery SetBoolean(string name, bool val) => throw null; + public NHibernate.IQuery SetAnsiString(string name, string val) => throw null; + public NHibernate.IQuery SetBinary(int position, byte[] val) => throw null; + public NHibernate.IQuery SetBinary(string name, byte[] val) => throw null; public NHibernate.IQuery SetBoolean(int position, bool val) => throw null; - public NHibernate.IQuery SetByte(string name, System.Byte val) => throw null; - public NHibernate.IQuery SetByte(int position, System.Byte val) => throw null; + public NHibernate.IQuery SetBoolean(string name, bool val) => throw null; + public NHibernate.IQuery SetByte(int position, byte val) => throw null; + public NHibernate.IQuery SetByte(string name, byte val) => throw null; + public NHibernate.IQuery SetCacheable(bool cacheable) => throw null; public NHibernate.IQuery SetCacheMode(NHibernate.CacheMode cacheMode) => throw null; public NHibernate.IQuery SetCacheRegion(string cacheRegion) => throw null; - public NHibernate.IQuery SetCacheable(bool cacheable) => throw null; - public NHibernate.IQuery SetCharacter(string name, System.Char val) => throw null; - public NHibernate.IQuery SetCharacter(int position, System.Char val) => throw null; + public NHibernate.IQuery SetCharacter(int position, char val) => throw null; + public NHibernate.IQuery SetCharacter(string name, char val) => throw null; public NHibernate.IQuery SetCollectionKey(object collectionKey) => throw null; public NHibernate.IQuery SetComment(string comment) => throw null; - public NHibernate.IQuery SetDateTime(string name, System.DateTime val) => throw null; public NHibernate.IQuery SetDateTime(int position, System.DateTime val) => throw null; - public NHibernate.IQuery SetDateTime2(string name, System.DateTime val) => throw null; + public NHibernate.IQuery SetDateTime(string name, System.DateTime val) => throw null; public NHibernate.IQuery SetDateTime2(int position, System.DateTime val) => throw null; - public NHibernate.IQuery SetDateTimeNoMs(string name, System.DateTime val) => throw null; + public NHibernate.IQuery SetDateTime2(string name, System.DateTime val) => throw null; public NHibernate.IQuery SetDateTimeNoMs(int position, System.DateTime val) => throw null; + public NHibernate.IQuery SetDateTimeNoMs(string name, System.DateTime val) => throw null; public NHibernate.IQuery SetDateTimeOffset(string name, System.DateTimeOffset val) => throw null; public NHibernate.IQuery SetDateTimeOffset(int position, System.DateTimeOffset val) => throw null; - public NHibernate.IQuery SetDecimal(string name, System.Decimal val) => throw null; - public NHibernate.IQuery SetDecimal(int position, System.Decimal val) => throw null; - public NHibernate.IQuery SetDouble(string name, double val) => throw null; + public NHibernate.IQuery SetDecimal(int position, decimal val) => throw null; + public NHibernate.IQuery SetDecimal(string name, decimal val) => throw null; public NHibernate.IQuery SetDouble(int position, double val) => throw null; - public NHibernate.IQuery SetEntity(string name, object val) => throw null; + public NHibernate.IQuery SetDouble(string name, double val) => throw null; public NHibernate.IQuery SetEntity(int position, object val) => throw null; - public NHibernate.IQuery SetEnum(string name, System.Enum val) => throw null; + public NHibernate.IQuery SetEntity(string name, object val) => throw null; public NHibernate.IQuery SetEnum(int position, System.Enum val) => throw null; + public NHibernate.IQuery SetEnum(string name, System.Enum val) => throw null; public NHibernate.IQuery SetFetchSize(int fetchSize) => throw null; public NHibernate.IQuery SetFirstResult(int firstResult) => throw null; public NHibernate.IQuery SetFlushMode(NHibernate.FlushMode flushMode) => throw null; public NHibernate.IQuery SetGuid(string name, System.Guid val) => throw null; public NHibernate.IQuery SetGuid(int position, System.Guid val) => throw null; public NHibernate.IQuery SetIgnoreUknownNamedParameters(bool ignoredUnknownNamedParameters) => throw null; - public NHibernate.IQuery SetInt16(string name, System.Int16 val) => throw null; - public NHibernate.IQuery SetInt16(int position, System.Int16 val) => throw null; - public NHibernate.IQuery SetInt32(string name, int val) => throw null; + public NHibernate.IQuery SetInt16(int position, short val) => throw null; + public NHibernate.IQuery SetInt16(string name, short val) => throw null; public NHibernate.IQuery SetInt32(int position, int val) => throw null; - public NHibernate.IQuery SetInt64(string name, System.Int64 val) => throw null; - public NHibernate.IQuery SetInt64(int position, System.Int64 val) => throw null; + public NHibernate.IQuery SetInt32(string name, int val) => throw null; + public NHibernate.IQuery SetInt64(int position, long val) => throw null; + public NHibernate.IQuery SetInt64(string name, long val) => throw null; public abstract NHibernate.IQuery SetLockMode(string alias, NHibernate.LockMode lockMode); public NHibernate.IQuery SetMaxResults(int maxResults) => throw null; public void SetOptionalEntityName(string optionalEntityName) => throw null; public void SetOptionalId(object optionalId) => throw null; public void SetOptionalObject(object optionalObject) => throw null; - public NHibernate.IQuery SetParameter(string name, T val) => throw null; - public NHibernate.IQuery SetParameter(int position, T val) => throw null; - public NHibernate.IQuery SetParameter(string name, object val, NHibernate.Type.IType type) => throw null; - public NHibernate.IQuery SetParameter(string name, object val) => throw null; public NHibernate.IQuery SetParameter(int position, object val, NHibernate.Type.IType type) => throw null; + public NHibernate.IQuery SetParameter(string name, object val, NHibernate.Type.IType type) => throw null; + public NHibernate.IQuery SetParameter(string name, object val, NHibernate.Type.IType type, bool preferMetadataType) => throw null; + public NHibernate.IQuery SetParameter(int position, T val) => throw null; + public NHibernate.IQuery SetParameter(string name, T val) => throw null; + public NHibernate.IQuery SetParameter(string name, object val) => throw null; public NHibernate.IQuery SetParameter(int position, object val) => throw null; public NHibernate.IQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type) => throw null; public NHibernate.IQuery SetParameterList(string name, System.Collections.IEnumerable vals) => throw null; - public NHibernate.IQuery SetProperties(object bean) => throw null; public NHibernate.IQuery SetProperties(System.Collections.IDictionary map) => throw null; + public NHibernate.IQuery SetProperties(object bean) => throw null; public NHibernate.IQuery SetReadOnly(bool readOnly) => throw null; public NHibernate.IQuery SetResultTransformer(NHibernate.Transform.IResultTransformer transformer) => throw null; - public NHibernate.IQuery SetSingle(string name, float val) => throw null; public NHibernate.IQuery SetSingle(int position, float val) => throw null; - public NHibernate.IQuery SetString(string name, string val) => throw null; + public NHibernate.IQuery SetSingle(string name, float val) => throw null; public NHibernate.IQuery SetString(int position, string val) => throw null; - public NHibernate.IQuery SetTime(string name, System.DateTime val) => throw null; + public NHibernate.IQuery SetString(string name, string val) => throw null; public NHibernate.IQuery SetTime(int position, System.DateTime val) => throw null; - public NHibernate.IQuery SetTimeAsTimeSpan(string name, System.TimeSpan val) => throw null; + public NHibernate.IQuery SetTime(string name, System.DateTime val) => throw null; public NHibernate.IQuery SetTimeAsTimeSpan(int position, System.TimeSpan val) => throw null; - public NHibernate.IQuery SetTimeSpan(string name, System.TimeSpan val) => throw null; - public NHibernate.IQuery SetTimeSpan(int position, System.TimeSpan val) => throw null; + public NHibernate.IQuery SetTimeAsTimeSpan(string name, System.TimeSpan val) => throw null; public NHibernate.IQuery SetTimeout(int timeout) => throw null; - public NHibernate.IQuery SetTimestamp(string name, System.DateTime val) => throw null; + public NHibernate.IQuery SetTimeSpan(int position, System.TimeSpan val) => throw null; + public NHibernate.IQuery SetTimeSpan(string name, System.TimeSpan val) => throw null; public NHibernate.IQuery SetTimestamp(int position, System.DateTime val) => throw null; + public NHibernate.IQuery SetTimestamp(string name, System.DateTime val) => throw null; public override string ToString() => throw null; public virtual NHibernate.Type.IType[] TypeArray() => throw null; protected virtual System.Collections.Generic.IList Types { get => throw null; } - public object UniqueResult() => throw null; public T UniqueResult() => throw null; - public System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public object UniqueResult() => throw null; public System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual object[] ValueArray() => throw null; protected virtual System.Collections.IList Values { get => throw null; } - protected internal virtual void VerifyParameters(bool reserveFirstParameter) => throw null; - protected internal virtual void VerifyParameters() => throw null; - protected System.Collections.Generic.Dictionary namedParameterLists; - protected internal NHibernate.Engine.Query.ParameterMetadata parameterMetadata; - protected NHibernate.Engine.ISessionImplementor session; + protected virtual void VerifyParameters() => throw null; + protected virtual void VerifyParameters(bool reserveFirstParameter) => throw null; } - - // Generated from `NHibernate.Impl.AbstractQueryImpl2` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractQueryImpl2 : NHibernate.Impl.AbstractQueryImpl { protected AbstractQueryImpl2(string queryString, NHibernate.FlushMode flushMode, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null; @@ -18551,23 +14927,19 @@ namespace NHibernate public override int ExecuteUpdate() => throw null; public override System.Threading.Tasks.Task ExecuteUpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected abstract NHibernate.IQueryExpression ExpandParameters(System.Collections.Generic.IDictionary namedParamsCopy); - protected internal override System.Collections.Generic.IEnumerable GetTranslators(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters) => throw null; - protected internal override System.Threading.Tasks.Task> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - public override void List(System.Collections.IList results) => throw null; + protected override System.Collections.Generic.IEnumerable GetTranslators(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters) => throw null; + protected override System.Threading.Tasks.Task> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Collections.IList List() => throw null; + public override void List(System.Collections.IList results) => throw null; public override System.Collections.Generic.IList List() => throw null; public override System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - protected internal override System.Collections.Generic.IDictionary LockModes { get => throw null; } + public override System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected override System.Collections.Generic.IDictionary LockModes { get => throw null; } public override NHibernate.IQuery SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null; } - - // Generated from `NHibernate.Impl.AbstractSessionImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractSessionImpl : NHibernate.Engine.ISessionImplementor { - protected internal AbstractSessionImpl(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.ISessionCreationOptions options) => throw null; - internal AbstractSessionImpl() => throw null; protected void AfterOperation(bool success) => throw null; protected System.Threading.Tasks.Task AfterOperationAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null; public abstract void AfterTransactionBegin(NHibernate.ITransaction tx); @@ -18580,22 +14952,23 @@ namespace NHibernate public abstract System.Threading.Tasks.Task BeforeTransactionCompletionAsync(NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken); public System.IDisposable BeginContext() => throw null; public System.IDisposable BeginProcess() => throw null; - public NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel) => throw null; public NHibernate.ITransaction BeginTransaction() => throw null; + public NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel) => throw null; public abstract string BestGuessEntityName(object entity); public abstract NHibernate.CacheMode CacheMode { get; set; } - protected internal virtual void CheckAndUpdateSessionStatus() => throw null; + protected virtual void CheckAndUpdateSessionStatus() => throw null; protected System.Data.Common.DbConnection CloseConnectionManager() => throw null; public abstract void CloseSessionFromSystemTransaction(); public virtual System.Data.Common.DbConnection Connection { get => throw null; } - public virtual NHibernate.AdoNet.ConnectionManager ConnectionManager { get => throw null; set => throw null; } + public virtual NHibernate.AdoNet.ConnectionManager ConnectionManager { get => throw null; set { } } protected System.Exception Convert(System.Exception sqlException, string message) => throw null; public abstract NHibernate.IQuery CreateFilter(object collection, NHibernate.IQueryExpression queryExpression); public abstract System.Threading.Tasks.Task CreateFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, System.Threading.CancellationToken cancellationToken); - public virtual NHibernate.IQuery CreateQuery(string queryString) => throw null; public virtual NHibernate.IQuery CreateQuery(NHibernate.IQueryExpression queryExpression) => throw null; + public virtual NHibernate.IQuery CreateQuery(string queryString) => throw null; public virtual NHibernate.Multi.IQueryBatch CreateQueryBatch() => throw null; public virtual NHibernate.ISQLQuery CreateSQLQuery(string sql) => throw null; + protected AbstractSessionImpl(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.ISessionCreationOptions options) => throw null; public abstract System.Collections.Generic.IDictionary EnabledFilters { get; } protected void EnlistInAmbientTransactionIfNeeded() => throw null; public abstract System.Collections.IEnumerable Enumerable(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters); @@ -18611,13 +14984,13 @@ namespace NHibernate public abstract System.Threading.Tasks.Task ExecuteNativeUpdateAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification specification, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); public abstract int ExecuteUpdate(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters); public abstract System.Threading.Tasks.Task ExecuteUpdateAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken); - public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; set => throw null; } + public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; set { } } public abstract string FetchProfile { get; set; } public abstract void Flush(); public abstract System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken); public abstract void FlushBeforeTransactionCompletion(); public abstract System.Threading.Tasks.Task FlushBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken); - public virtual NHibernate.FlushMode FlushMode { get => throw null; set => throw null; } + public virtual NHibernate.FlushMode FlushMode { get => throw null; set { } } public virtual NHibernate.Multi.IQueryBatch FutureBatch { get => throw null; } public abstract NHibernate.Impl.FutureCriteriaBatch FutureCriteriaBatch { get; set; } public abstract NHibernate.Impl.FutureQueryBatch FutureQueryBatch { get; set; } @@ -18629,10 +15002,10 @@ namespace NHibernate public abstract System.Threading.Tasks.Task GetEntityUsingInterceptorAsync(NHibernate.Engine.EntityKey key, System.Threading.CancellationToken cancellationToken); public abstract NHibernate.Type.IType GetFilterParameterType(string filterParameterName); public abstract object GetFilterParameterValue(string filterParameterName); - protected internal virtual NHibernate.Engine.Query.IQueryExpressionPlan GetHQLQueryPlan(NHibernate.IQueryExpression queryExpression, bool shallow) => throw null; + protected virtual NHibernate.Engine.Query.IQueryExpressionPlan GetHQLQueryPlan(NHibernate.IQueryExpression queryExpression, bool shallow) => throw null; public virtual NHibernate.IQuery GetNamedQuery(string queryName) => throw null; public virtual NHibernate.IQuery GetNamedSQLQuery(string name) => throw null; - protected internal virtual NHibernate.Engine.Query.NativeSQLQueryPlan GetNativeSQLQueryPlan(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec) => throw null; + protected virtual NHibernate.Engine.Query.NativeSQLQueryPlan GetNativeSQLQueryPlan(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec) => throw null; public abstract NHibernate.Hql.IQueryTranslator[] GetQueries(NHibernate.IQueryExpression query, bool scalar); public abstract System.Threading.Tasks.Task GetQueriesAsync(NHibernate.IQueryExpression query, bool scalar, System.Threading.CancellationToken cancellationToken); public abstract string GuessEntityName(object entity); @@ -18641,63 +15014,61 @@ namespace NHibernate public void Initialize() => throw null; public abstract void InitializeCollection(NHibernate.Collection.IPersistentCollection collection, bool writing); public abstract System.Threading.Tasks.Task InitializeCollectionAsync(NHibernate.Collection.IPersistentCollection collection, bool writing, System.Threading.CancellationToken cancellationToken); - public virtual object Instantiate(NHibernate.Persister.Entity.IEntityPersister persister, object id) => throw null; public abstract object Instantiate(string clazz, object id); - public virtual NHibernate.IInterceptor Interceptor { get => throw null; set => throw null; } + public virtual object Instantiate(NHibernate.Persister.Entity.IEntityPersister persister, object id) => throw null; + public virtual NHibernate.IInterceptor Interceptor { get => throw null; set { } } public abstract object InternalLoad(string entityName, object id, bool eager, bool isNullable); public abstract System.Threading.Tasks.Task InternalLoadAsync(string entityName, object id, bool eager, bool isNullable, System.Threading.CancellationToken cancellationToken); - protected bool IsAlreadyDisposed { get => throw null; set => throw null; } + protected bool IsAlreadyDisposed { get => throw null; set { } } public bool IsClosed { get => throw null; } public virtual bool IsConnected { get => throw null; } public abstract bool IsEventSource { get; } public abstract bool IsOpen { get; } protected bool IsTransactionCoordinatorShared { get => throw null; } public void JoinTransaction() => throw null; - public virtual void List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null; - public virtual System.Collections.IList List(NHibernate.Impl.CriteriaImpl criteria) => throw null; public virtual System.Collections.IList List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters) => throw null; - public virtual System.Collections.IList List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters) => throw null; - public virtual System.Collections.Generic.IList List(NHibernate.Impl.CriteriaImpl criteria) => throw null; - public virtual System.Collections.Generic.IList List(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters parameters) => throw null; - public virtual System.Collections.Generic.IList List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters) => throw null; - public abstract void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results); public abstract void List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results); - public virtual System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Collections.Generic.IList List(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters parameters) => throw null; + public virtual System.Collections.Generic.IList List(NHibernate.Impl.CriteriaImpl criteria) => throw null; + public abstract void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results); + public virtual System.Collections.IList List(NHibernate.Impl.CriteriaImpl criteria) => throw null; + public virtual System.Collections.IList List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters) => throw null; + public virtual void List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null; + public virtual System.Collections.Generic.IList List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters) => throw null; public virtual System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Threading.Tasks.Task ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Threading.Tasks.Task> ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Threading.Tasks.Task> ListAsync(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Threading.Tasks.Task> ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual System.Threading.Tasks.Task ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; - public abstract System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); public abstract System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); - public virtual System.Collections.Generic.IList ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters) => throw null; + public virtual System.Threading.Tasks.Task> ListAsync(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task> ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken) => throw null; + public abstract System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); + public virtual System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task> ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; public abstract void ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results); - public virtual System.Threading.Tasks.Task> ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Collections.Generic.IList ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters) => throw null; public abstract System.Threading.Tasks.Task ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); + public virtual System.Threading.Tasks.Task> ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; + public abstract NHibernate.Event.EventListeners Listeners { get; } public abstract System.Collections.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters); - public abstract System.Collections.Generic.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters); public System.Collections.IList ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters) => throw null; protected abstract void ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Collections.IList results); + public abstract System.Collections.Generic.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters); public abstract System.Threading.Tasks.Task ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken); - public abstract System.Threading.Tasks.Task> ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken); public System.Threading.Tasks.Task ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null; protected abstract System.Threading.Tasks.Task ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken); - public abstract NHibernate.Event.EventListeners Listeners { get; } + public abstract System.Threading.Tasks.Task> ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken); public abstract NHibernate.Engine.IPersistenceContext PersistenceContext { get; } - public System.Linq.IQueryable Query(string entityName) => throw null; public System.Linq.IQueryable Query() => throw null; + public System.Linq.IQueryable Query(string entityName) => throw null; public System.Guid SessionId { get => throw null; } - protected internal void SetClosed() => throw null; - public NHibernate.MultiTenancy.TenantConfiguration TenantConfiguration { get => throw null; set => throw null; } + protected void SetClosed() => throw null; + public NHibernate.MultiTenancy.TenantConfiguration TenantConfiguration { get => throw null; set { } } public string TenantIdentifier { get => throw null; } - public virtual System.Int64 Timestamp { get => throw null; set => throw null; } + public virtual long Timestamp { get => throw null; set { } } public NHibernate.ITransaction Transaction { get => throw null; } - public NHibernate.Transaction.ITransactionContext TransactionContext { get => throw null; set => throw null; } + public NHibernate.Transaction.ITransactionContext TransactionContext { get => throw null; set { } } public virtual bool TransactionInProgress { get => throw null; } } - - // Generated from `NHibernate.Impl.CollectionFilterImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionFilterImpl : NHibernate.Impl.QueryImpl { public CollectionFilterImpl(string queryString, object collection, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null; @@ -18705,55 +15076,50 @@ namespace NHibernate public override System.Collections.Generic.IEnumerable Enumerable() => throw null; public override System.Threading.Tasks.Task EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task> EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - protected internal override System.Collections.Generic.IEnumerable GetTranslators(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null; - protected internal override System.Threading.Tasks.Task> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - public override void List(System.Collections.IList results) => throw null; + protected override System.Collections.Generic.IEnumerable GetTranslators(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null; + protected override System.Threading.Tasks.Task> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Collections.IList List() => throw null; public override System.Collections.Generic.IList List() => throw null; + public override void List(System.Collections.IList results) => throw null; public override System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override NHibernate.Type.IType[] TypeArray() => throw null; public override object[] ValueArray() => throw null; } - - // Generated from `NHibernate.Impl.CriteriaImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CriteriaImpl : System.ICloneable, NHibernate.Impl.ISupportEntityJoinCriteria, NHibernate.ISupportSelectModeCriteria, NHibernate.ICriteria + public class CriteriaImpl : NHibernate.ICriteria, System.ICloneable, NHibernate.Impl.ISupportEntityJoinCriteria, NHibernate.ISupportSelectModeCriteria { - public NHibernate.ICriteria Add(NHibernate.ICriteria criteriaInst, NHibernate.Criterion.ICriterion expression) => throw null; public NHibernate.ICriteria Add(NHibernate.Criterion.ICriterion expression) => throw null; + public NHibernate.ICriteria Add(NHibernate.ICriteria criteriaInst, NHibernate.Criterion.ICriterion expression) => throw null; public NHibernate.ICriteria AddOrder(NHibernate.Criterion.Order ordering) => throw null; - protected internal void After() => throw null; + protected void After() => throw null; public string Alias { get => throw null; } - protected internal void Before() => throw null; + protected void Before() => throw null; + public bool Cacheable { get => throw null; } public NHibernate.CacheMode? CacheMode { get => throw null; } public string CacheRegion { get => throw null; } - public bool Cacheable { get => throw null; } public void ClearOrders() => throw null; public object Clone() => throw null; public string Comment { get => throw null; } - public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; public NHibernate.ICriteria CreateAlias(string associationPath, string alias) => throw null; - public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.ICriteria CreateCriteria(string associationPath, string alias) => throw null; - public NHibernate.ICriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; public NHibernate.ICriteria CreateCriteria(string associationPath) => throw null; + public NHibernate.ICriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.ICriteria CreateCriteria(string associationPath, string alias) => throw null; + public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; public NHibernate.ICriteria CreateEntityCriteria(string alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null; - public CriteriaImpl(string entityOrClassName, string alias, NHibernate.Engine.ISessionImplementor session) => throw null; - public CriteriaImpl(string entityOrClassName, NHibernate.Engine.ISessionImplementor session) => throw null; - public CriteriaImpl(System.Type persistentClass, string alias, NHibernate.Engine.ISessionImplementor session) => throw null; - public CriteriaImpl(System.Type persistentClass, NHibernate.Engine.ISessionImplementor session) => throw null; - // Generated from `NHibernate.Impl.CriteriaImpl+CriterionEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CriterionEntry + public sealed class CriterionEntry { public NHibernate.ICriteria Criteria { get => throw null; } public NHibernate.Criterion.ICriterion Criterion { get => throw null; } public override string ToString() => throw null; } - - + public CriteriaImpl(System.Type persistentClass, NHibernate.Engine.ISessionImplementor session) => throw null; + public CriteriaImpl(System.Type persistentClass, string alias, NHibernate.Engine.ISessionImplementor session) => throw null; + public CriteriaImpl(string entityOrClassName, NHibernate.Engine.ISessionImplementor session) => throw null; + public CriteriaImpl(string entityOrClassName, string alias, NHibernate.Engine.ISessionImplementor session) => throw null; public string EntityOrClassName { get => throw null; } public NHibernate.ICriteria Fetch(NHibernate.SelectMode selectMode, string associationPath, string alias) => throw null; public int FetchSize { get => throw null; } @@ -18771,59 +15137,55 @@ namespace NHibernate public System.Collections.Generic.IEnumerable IterateExpressionEntries() => throw null; public System.Collections.Generic.IEnumerable IterateOrderings() => throw null; public System.Collections.Generic.IEnumerable IterateSubcriteria() => throw null; - public void List(System.Collections.IList results) => throw null; public System.Collections.IList List() => throw null; + public void List(System.Collections.IList results) => throw null; public System.Collections.Generic.IList List() => throw null; public System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Collections.Generic.IDictionary LockModes { get => throw null; } public bool LookupByNaturalKey { get => throw null; } public int MaxResults { get => throw null; } - // Generated from `NHibernate.Impl.CriteriaImpl+OrderEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OrderEntry + public sealed class OrderEntry { public NHibernate.ICriteria Criteria { get => throw null; } public NHibernate.Criterion.Order Order { get => throw null; } public override string ToString() => throw null; } - - public NHibernate.Criterion.IProjection Projection { get => throw null; } public NHibernate.ICriteria ProjectionCriteria { get => throw null; } public NHibernate.Transform.IResultTransformer ResultTransformer { get => throw null; } - public NHibernate.Engine.ISessionImplementor Session { get => throw null; set => throw null; } + public NHibernate.Engine.ISessionImplementor Session { get => throw null; set { } } + public NHibernate.ICriteria SetCacheable(bool cacheable) => throw null; public NHibernate.ICriteria SetCacheMode(NHibernate.CacheMode cacheMode) => throw null; public NHibernate.ICriteria SetCacheRegion(string cacheRegion) => throw null; - public NHibernate.ICriteria SetCacheable(bool cacheable) => throw null; public NHibernate.ICriteria SetComment(string comment) => throw null; public NHibernate.ICriteria SetFetchMode(string associationPath, NHibernate.FetchMode mode) => throw null; public NHibernate.ICriteria SetFetchSize(int fetchSize) => throw null; public NHibernate.ICriteria SetFirstResult(int firstResult) => throw null; public NHibernate.ICriteria SetFlushMode(NHibernate.FlushMode flushMode) => throw null; - public NHibernate.ICriteria SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null; public NHibernate.ICriteria SetLockMode(NHibernate.LockMode lockMode) => throw null; + public NHibernate.ICriteria SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null; public NHibernate.ICriteria SetMaxResults(int maxResults) => throw null; public NHibernate.ICriteria SetProjection(params NHibernate.Criterion.IProjection[] projections) => throw null; public NHibernate.ICriteria SetReadOnly(bool readOnly) => throw null; public NHibernate.ICriteria SetResultTransformer(NHibernate.Transform.IResultTransformer tupleMapper) => throw null; public NHibernate.ICriteria SetTimeout(int timeout) => throw null; - // Generated from `NHibernate.Impl.CriteriaImpl+Subcriteria` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Subcriteria : System.ICloneable, NHibernate.ISupportSelectModeCriteria, NHibernate.ICriteria + public sealed class Subcriteria : NHibernate.ICriteria, System.ICloneable, NHibernate.ISupportSelectModeCriteria { public NHibernate.ICriteria Add(NHibernate.Criterion.ICriterion expression) => throw null; public NHibernate.ICriteria AddOrder(NHibernate.Criterion.Order order) => throw null; - public string Alias { get => throw null; set => throw null; } + public string Alias { get => throw null; set { } } public void ClearOrders() => throw null; public object Clone() => throw null; - public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; public NHibernate.ICriteria CreateAlias(string associationPath, string alias) => throw null; - public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; - public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; - public NHibernate.ICriteria CreateCriteria(string associationPath, string alias) => throw null; - public NHibernate.ICriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; public NHibernate.ICriteria CreateCriteria(string associationPath) => throw null; + public NHibernate.ICriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.ICriteria CreateCriteria(string associationPath, string alias) => throw null; + public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null; + public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null; public NHibernate.ICriteria Fetch(NHibernate.SelectMode selectMode, string associationPath, string alias) => throw null; public NHibernate.IFutureEnumerable Future() => throw null; public NHibernate.IFutureValue FutureValue() => throw null; @@ -18836,64 +15198,58 @@ namespace NHibernate public bool IsReadOnlyInitialized { get => throw null; } public string JoinEntityName { get => throw null; } public NHibernate.SqlCommand.JoinType JoinType { get => throw null; } - public void List(System.Collections.IList results) => throw null; public System.Collections.IList List() => throw null; + public void List(System.Collections.IList results) => throw null; public System.Collections.Generic.IList List() => throw null; public System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public NHibernate.LockMode LockMode { get => throw null; } public NHibernate.ICriteria Parent { get => throw null; } public string Path { get => throw null; } + public NHibernate.ICriteria SetCacheable(bool cacheable) => throw null; public NHibernate.ICriteria SetCacheMode(NHibernate.CacheMode cacheMode) => throw null; public NHibernate.ICriteria SetCacheRegion(string cacheRegion) => throw null; - public NHibernate.ICriteria SetCacheable(bool cacheable) => throw null; public NHibernate.ICriteria SetComment(string comment) => throw null; public NHibernate.ICriteria SetFetchMode(string associationPath, NHibernate.FetchMode mode) => throw null; public NHibernate.ICriteria SetFetchSize(int fetchSize) => throw null; public NHibernate.ICriteria SetFirstResult(int firstResult) => throw null; public NHibernate.ICriteria SetFlushMode(NHibernate.FlushMode flushMode) => throw null; - public NHibernate.ICriteria SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null; public NHibernate.ICriteria SetLockMode(NHibernate.LockMode lockMode) => throw null; + public NHibernate.ICriteria SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null; public NHibernate.ICriteria SetMaxResults(int maxResults) => throw null; public NHibernate.ICriteria SetProjection(params NHibernate.Criterion.IProjection[] projections) => throw null; public NHibernate.ICriteria SetReadOnly(bool readOnly) => throw null; public NHibernate.ICriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultProcessor) => throw null; public NHibernate.ICriteria SetTimeout(int timeout) => throw null; - public object UniqueResult() => throw null; public T UniqueResult() => throw null; - public System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public object UniqueResult() => throw null; public System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public NHibernate.Criterion.ICriterion WithClause { get => throw null; } } - - public int Timeout { get => throw null; } public override string ToString() => throw null; - public object UniqueResult() => throw null; public T UniqueResult() => throw null; - public System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public object UniqueResult() => throw null; public System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - // Generated from `NHibernate.Impl.DetachedNamedQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DetachedNamedQuery : NHibernate.Impl.AbstractDetachedQuery { public NHibernate.Impl.DetachedNamedQuery Clone() => throw null; public DetachedNamedQuery(string queryName) => throw null; public override NHibernate.IQuery GetExecutableQuery(NHibernate.ISession session) => throw null; public string QueryName { get => throw null; } + public override NHibernate.IDetachedQuery SetCacheable(bool cacheable) => throw null; public override NHibernate.IDetachedQuery SetCacheMode(NHibernate.CacheMode cacheMode) => throw null; public override NHibernate.IDetachedQuery SetCacheRegion(string cacheRegion) => throw null; - public override NHibernate.IDetachedQuery SetCacheable(bool cacheable) => throw null; public override NHibernate.IDetachedQuery SetComment(string comment) => throw null; public override NHibernate.IDetachedQuery SetFetchSize(int fetchSize) => throw null; public override NHibernate.IDetachedQuery SetFlushMode(NHibernate.FlushMode flushMode) => throw null; public override NHibernate.IDetachedQuery SetReadOnly(bool readOnly) => throw null; public override NHibernate.IDetachedQuery SetTimeout(int timeout) => throw null; } - - // Generated from `NHibernate.Impl.DetachedQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DetachedQuery : NHibernate.Impl.AbstractDetachedQuery { public NHibernate.Impl.DetachedQuery Clone() => throw null; @@ -18901,22 +15257,17 @@ namespace NHibernate public override NHibernate.IQuery GetExecutableQuery(NHibernate.ISession session) => throw null; public string Hql { get => throw null; } } - - // Generated from `NHibernate.Impl.EnumerableImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EnumerableImpl : System.IDisposable, System.Collections.IEnumerator, System.Collections.IEnumerable + public class EnumerableImpl : System.Collections.IEnumerable, System.Collections.IEnumerator, System.IDisposable { + public EnumerableImpl(System.Data.Common.DbDataReader reader, System.Data.Common.DbCommand cmd, NHibernate.Event.IEventSource session, bool readOnly, NHibernate.Type.IType[] types, string[][] columnNames, NHibernate.Engine.RowSelection selection, NHibernate.Hql.HolderInstantiator holderInstantiator) => throw null; + public EnumerableImpl(System.Data.Common.DbDataReader reader, System.Data.Common.DbCommand cmd, NHibernate.Event.IEventSource session, bool readOnly, NHibernate.Type.IType[] types, string[][] columnNames, NHibernate.Engine.RowSelection selection, NHibernate.Transform.IResultTransformer resultTransformer, string[] returnAliases) => throw null; public object Current { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool isDisposing) => throw null; - public EnumerableImpl(System.Data.Common.DbDataReader reader, System.Data.Common.DbCommand cmd, NHibernate.Event.IEventSource session, bool readOnly, NHibernate.Type.IType[] types, string[][] columnNames, NHibernate.Engine.RowSelection selection, NHibernate.Transform.IResultTransformer resultTransformer, string[] returnAliases) => throw null; - public EnumerableImpl(System.Data.Common.DbDataReader reader, System.Data.Common.DbCommand cmd, NHibernate.Event.IEventSource session, bool readOnly, NHibernate.Type.IType[] types, string[][] columnNames, NHibernate.Engine.RowSelection selection, NHibernate.Hql.HolderInstantiator holderInstantiator) => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; public bool MoveNext() => throw null; public void Reset() => throw null; - // ERR: Stub generator didn't handle member: ~EnumerableImpl } - - // Generated from `NHibernate.Impl.ExpressionProcessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ExpressionProcessor { public static NHibernate.Criterion.DetachedCriteria FindDetachedCriteria(System.Linq.Expressions.Expression expression) => throw null; @@ -18927,40 +15278,35 @@ namespace NHibernate public static NHibernate.Criterion.ICriterion ProcessExpression(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.ICriterion ProcessExpression(System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.Order ProcessOrder(System.Linq.Expressions.Expression> expression, System.Func orderDelegate) => throw null; - public static NHibernate.Criterion.Order ProcessOrder(System.Linq.Expressions.LambdaExpression expression, System.Func orderStringDelegate, System.Func orderProjectionDelegate) => throw null; - public static NHibernate.Criterion.Order ProcessOrder(System.Linq.Expressions.LambdaExpression expression, System.Func orderDelegate) => throw null; public static NHibernate.Criterion.Order ProcessOrder(System.Linq.Expressions.Expression> expression, System.Func orderDelegate) => throw null; + public static NHibernate.Criterion.Order ProcessOrder(System.Linq.Expressions.LambdaExpression expression, System.Func orderDelegate) => throw null; + public static NHibernate.Criterion.Order ProcessOrder(System.Linq.Expressions.LambdaExpression expression, System.Func orderStringDelegate, System.Func orderProjectionDelegate) => throw null; public static NHibernate.Criterion.AbstractCriterion ProcessSubquery(NHibernate.Impl.LambdaSubqueryType subqueryType, System.Linq.Expressions.Expression> expression) => throw null; public static NHibernate.Criterion.AbstractCriterion ProcessSubquery(NHibernate.Impl.LambdaSubqueryType subqueryType, System.Linq.Expressions.Expression> expression) => throw null; - // Generated from `NHibernate.Impl.ExpressionProcessor+ProjectionInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ProjectionInfo { public NHibernate.Criterion.IProjection AsProjection() => throw null; public string AsProperty() => throw null; public T Create(System.Func stringFunc, System.Func projectionFunc) => throw null; - public NHibernate.Criterion.ICriterion CreateCriterion(System.Func stringFunc, System.Func projectionFunc, object value) => throw null; public NHibernate.Criterion.ICriterion CreateCriterion(System.Func stringFunc, System.Func projectionFunc) => throw null; + public NHibernate.Criterion.ICriterion CreateCriterion(System.Func stringFunc, System.Func projectionFunc, object value) => throw null; public NHibernate.Criterion.ICriterion CreateCriterion(NHibernate.Impl.ExpressionProcessor.ProjectionInfo rhs, System.Func ssFunc, System.Func spFunc, System.Func psFunc, System.Func ppFunc) => throw null; public NHibernate.Criterion.Order CreateOrder(System.Func orderStringDelegate, System.Func orderProjectionDelegate) => throw null; + protected ProjectionInfo() => throw null; public static NHibernate.Impl.ExpressionProcessor.ProjectionInfo ForProjection(NHibernate.Criterion.IProjection projection) => throw null; public static NHibernate.Impl.ExpressionProcessor.ProjectionInfo ForProperty(string property) => throw null; - protected ProjectionInfo() => throw null; } - - public static void RegisterCustomMethodCall(System.Linq.Expressions.Expression> function, System.Func functionProcessor) => throw null; public static void RegisterCustomProjection(System.Linq.Expressions.Expression> function, System.Func functionProcessor) => throw null; public static void RegisterCustomProjection(System.Linq.Expressions.Expression> function, System.Func functionProcessor) => throw null; public static string Signature(System.Reflection.MethodInfo methodInfo) => throw null; public static string Signature(System.Reflection.MemberInfo memberInfo) => throw null; } - - // Generated from `NHibernate.Impl.FilterImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FilterImpl : NHibernate.IFilter { public void AfterDeserialize(NHibernate.Engine.FilterDefinition factoryDefinition) => throw null; - public NHibernate.Engine.FilterDefinition FilterDefinition { get => throw null; } public FilterImpl(NHibernate.Engine.FilterDefinition configuration) => throw null; + public NHibernate.Engine.FilterDefinition FilterDefinition { get => throw null; } public object GetParameter(string name) => throw null; public int? GetParameterSpan(string name) => throw null; public static string MARKER; @@ -18970,8 +15316,6 @@ namespace NHibernate public NHibernate.IFilter SetParameterList(string name, System.Collections.Generic.ICollection values) => throw null; public void Validate() => throw null; } - - // Generated from `NHibernate.Impl.FutureBatch<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class FutureBatch { public void Add(TQueryApproach query) => throw null; @@ -18991,8 +15335,6 @@ namespace NHibernate protected virtual System.Threading.Tasks.Task ListAsync(TQueryApproach query, System.Threading.CancellationToken cancellationToken) => throw null; protected NHibernate.Impl.SessionImpl session; } - - // Generated from `NHibernate.Impl.FutureCriteriaBatch` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FutureCriteriaBatch : NHibernate.Impl.FutureBatch { protected override void AddTo(NHibernate.IMultiCriteria multiApproach, NHibernate.ICriteria query, System.Type resultType) => throw null; @@ -19006,8 +15348,6 @@ namespace NHibernate protected override System.Collections.IList List(NHibernate.ICriteria query) => throw null; protected override System.Threading.Tasks.Task ListAsync(NHibernate.ICriteria query, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Impl.FutureQueryBatch` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FutureQueryBatch : NHibernate.Impl.FutureBatch { protected override void AddResultTransformer(NHibernate.IMultiQuery multiApproach, NHibernate.Transform.IResultTransformer futureResulsTransformer) => throw null; @@ -19022,8 +15362,6 @@ namespace NHibernate protected override System.Collections.IList List(NHibernate.IQuery query) => throw null; protected override System.Threading.Tasks.Task ListAsync(NHibernate.IQuery query, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Impl.IDetachedQueryImplementor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDetachedQueryImplementor { void CopyTo(NHibernate.IDetachedQuery destination); @@ -19031,8 +15369,6 @@ namespace NHibernate void OverrideParametersFrom(NHibernate.Impl.IDetachedQueryImplementor origin); void SetParametersTo(NHibernate.IDetachedQuery destination); } - - // Generated from `NHibernate.Impl.ISessionCreationOptions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISessionCreationOptions { NHibernate.FlushMode InitialSessionFlushMode { get; } @@ -19042,27 +15378,19 @@ namespace NHibernate bool ShouldAutoJoinTransaction { get; } System.Data.Common.DbConnection UserSuppliedConnection { get; } } - - // Generated from `NHibernate.Impl.ISessionCreationOptionsWithMultiTenancy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISessionCreationOptionsWithMultiTenancy { NHibernate.MultiTenancy.TenantConfiguration TenantConfiguration { get; set; } } - - // Generated from `NHibernate.Impl.ISharedSessionCreationOptions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISharedSessionCreationOptions : NHibernate.Impl.ISessionCreationOptions { NHibernate.AdoNet.ConnectionManager ConnectionManager { get; } bool IsTransactionCoordinatorShared { get; } } - - // Generated from `NHibernate.Impl.ISupportEntityJoinCriteria` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISupportEntityJoinCriteria { NHibernate.ICriteria CreateEntityCriteria(string alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName); } - - // Generated from `NHibernate.Impl.ITranslator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ITranslator { NHibernate.Loader.Loader Loader { get; } @@ -19070,78 +15398,71 @@ namespace NHibernate string[] ReturnAliases { get; } NHibernate.Type.IType[] ReturnTypes { get; } } - - // Generated from `NHibernate.Impl.LambdaSubqueryType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum LambdaSubqueryType { - All, - Exact, - Some, + Exact = 1, + All = 2, + Some = 3, } - - // Generated from `NHibernate.Impl.MessageHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class MessageHelper { - public static string InfoString(string entityName, string propertyName, object key) => throw null; - public static string InfoString(string entityName, object id) => throw null; public static string InfoString(System.Type clazz, object id) => throw null; - public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister, object[] ids, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister, object id, NHibernate.Type.IType identifierType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister, object id, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister, object id, NHibernate.Type.IType identifierType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister, object[] ids, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister, object id) => throw null; public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister) => throw null; - public static string InfoString(NHibernate.Persister.Collection.ICollectionPersister persister, object id, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public static string InfoString(NHibernate.Persister.Collection.ICollectionPersister persister, object id) => throw null; + public static string InfoString(string entityName, string propertyName, object key) => throw null; + public static string InfoString(NHibernate.Persister.Collection.ICollectionPersister persister, object id, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public static string InfoString(string entityName, object id) => throw null; } - - // Generated from `NHibernate.Impl.MultiCriteriaImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MultiCriteriaImpl : NHibernate.IMultiCriteria { - public NHibernate.IMultiCriteria Add(string key, NHibernate.IQueryOver queryOver) => throw null; - public NHibernate.IMultiCriteria Add(NHibernate.IQueryOver queryOver) => throw null; - public NHibernate.IMultiCriteria Add(string key, NHibernate.IQueryOver queryOver) => throw null; - public NHibernate.IMultiCriteria Add(string key, NHibernate.ICriteria criteria) => throw null; - public NHibernate.IMultiCriteria Add(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null; - public NHibernate.IMultiCriteria Add(NHibernate.IQueryOver queryOver) => throw null; - public NHibernate.IMultiCriteria Add(NHibernate.ICriteria criteria) => throw null; - public NHibernate.IMultiCriteria Add(NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null; - public NHibernate.IMultiCriteria Add(string key, NHibernate.ICriteria criteria) => throw null; - public NHibernate.IMultiCriteria Add(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null; - public NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.IQueryOver queryOver) => throw null; public NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.ICriteria criteria) => throw null; public NHibernate.IMultiCriteria Add(NHibernate.ICriteria criteria) => throw null; + public NHibernate.IMultiCriteria Add(string key, NHibernate.ICriteria criteria) => throw null; public NHibernate.IMultiCriteria Add(NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null; + public NHibernate.IMultiCriteria Add(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null; + public NHibernate.IMultiCriteria Add(NHibernate.ICriteria criteria) => throw null; + public NHibernate.IMultiCriteria Add(string key, NHibernate.ICriteria criteria) => throw null; + public NHibernate.IMultiCriteria Add(NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null; + public NHibernate.IMultiCriteria Add(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null; + public NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.IQueryOver queryOver) => throw null; + public NHibernate.IMultiCriteria Add(NHibernate.IQueryOver queryOver) => throw null; + public NHibernate.IMultiCriteria Add(NHibernate.IQueryOver queryOver) => throw null; + public NHibernate.IMultiCriteria Add(string key, NHibernate.IQueryOver queryOver) => throw null; + public NHibernate.IMultiCriteria Add(string key, NHibernate.IQueryOver queryOver) => throw null; public NHibernate.IMultiCriteria ForceCacheRefresh(bool forceRefresh) => throw null; public object GetResult(string key) => throw null; public System.Threading.Tasks.Task GetResultAsync(string key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected virtual System.Collections.IList GetResultList(System.Collections.IList results) => throw null; public System.Collections.IList List() => throw null; public System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public NHibernate.IMultiCriteria SetCacheRegion(string cacheRegion) => throw null; public NHibernate.IMultiCriteria SetCacheable(bool cachable) => throw null; + public NHibernate.IMultiCriteria SetCacheRegion(string cacheRegion) => throw null; public NHibernate.IMultiCriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; public NHibernate.IMultiCriteria SetTimeout(int timeout) => throw null; public NHibernate.SqlCommand.SqlString SqlString { get => throw null; } } - - // Generated from `NHibernate.Impl.MultiQueryImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MultiQueryImpl : NHibernate.IMultiQuery { - public NHibernate.IMultiQuery Add(string key, string hql) => throw null; + public NHibernate.IMultiQuery Add(System.Type resultGenericListType, NHibernate.IQuery query) => throw null; + public NHibernate.IMultiQuery Add(string key, NHibernate.IQuery query) => throw null; + public NHibernate.IMultiQuery Add(NHibernate.IQuery query) => throw null; + public NHibernate.IMultiQuery Add(string key, string hql) => throw null; + public NHibernate.IMultiQuery Add(string hql) => throw null; + public NHibernate.IMultiQuery Add(NHibernate.IQuery query) => throw null; public NHibernate.IMultiQuery Add(string key, NHibernate.IQuery query) => throw null; public NHibernate.IMultiQuery Add(string hql) => throw null; - public NHibernate.IMultiQuery Add(NHibernate.IQuery query) => throw null; - public NHibernate.IMultiQuery Add(string key, string hql) => throw null; - public NHibernate.IMultiQuery Add(string key, NHibernate.IQuery query) => throw null; - public NHibernate.IMultiQuery Add(string hql) => throw null; - public NHibernate.IMultiQuery Add(System.Type resultGenericListType, NHibernate.IQuery query) => throw null; - public NHibernate.IMultiQuery Add(NHibernate.IQuery query) => throw null; - public NHibernate.IMultiQuery AddNamedQuery(string queryName) => throw null; + public NHibernate.IMultiQuery Add(string key, string hql) => throw null; public NHibernate.IMultiQuery AddNamedQuery(string key, string namedQuery) => throw null; public NHibernate.IMultiQuery AddNamedQuery(string queryName) => throw null; public NHibernate.IMultiQuery AddNamedQuery(string key, string namedQuery) => throw null; + public NHibernate.IMultiQuery AddNamedQuery(string queryName) => throw null; protected void After() => throw null; protected void Before() => throw null; + public MultiQueryImpl(NHibernate.Engine.ISessionImplementor session) => throw null; protected System.Collections.Generic.List DoList() => throw null; protected System.Threading.Tasks.Task> DoListAsync(System.Threading.CancellationToken cancellationToken) => throw null; public object GetResult(string key) => throw null; @@ -19149,28 +15470,27 @@ namespace NHibernate protected virtual System.Collections.IList GetResultList(System.Collections.IList results) => throw null; public System.Collections.IList List() => throw null; public System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public MultiQueryImpl(NHibernate.Engine.ISessionImplementor session) => throw null; public NHibernate.IMultiQuery SetAnsiString(string name, string val) => throw null; - public NHibernate.IMultiQuery SetBinary(string name, System.Byte[] val) => throw null; + public NHibernate.IMultiQuery SetBinary(string name, byte[] val) => throw null; public NHibernate.IMultiQuery SetBoolean(string name, bool val) => throw null; - public NHibernate.IMultiQuery SetByte(string name, System.Byte val) => throw null; - public NHibernate.IMultiQuery SetCacheRegion(string region) => throw null; + public NHibernate.IMultiQuery SetByte(string name, byte val) => throw null; public NHibernate.IMultiQuery SetCacheable(bool cacheable) => throw null; - public NHibernate.IMultiQuery SetCharacter(string name, System.Char val) => throw null; + public NHibernate.IMultiQuery SetCacheRegion(string region) => throw null; + public NHibernate.IMultiQuery SetCharacter(string name, char val) => throw null; public NHibernate.IMultiQuery SetDateTime(string name, System.DateTime val) => throw null; public NHibernate.IMultiQuery SetDateTime2(string name, System.DateTime val) => throw null; public NHibernate.IMultiQuery SetDateTimeNoMs(string name, System.DateTime val) => throw null; public NHibernate.IMultiQuery SetDateTimeOffset(string name, System.DateTimeOffset val) => throw null; - public NHibernate.IMultiQuery SetDecimal(string name, System.Decimal val) => throw null; + public NHibernate.IMultiQuery SetDecimal(string name, decimal val) => throw null; public NHibernate.IMultiQuery SetDouble(string name, double val) => throw null; public NHibernate.IMultiQuery SetEntity(string name, object val) => throw null; public NHibernate.IMultiQuery SetEnum(string name, System.Enum val) => throw null; public NHibernate.IMultiQuery SetFlushMode(NHibernate.FlushMode mode) => throw null; public NHibernate.IMultiQuery SetForceCacheRefresh(bool cacheRefresh) => throw null; public NHibernate.IMultiQuery SetGuid(string name, System.Guid val) => throw null; - public NHibernate.IMultiQuery SetInt16(string name, System.Int16 val) => throw null; + public NHibernate.IMultiQuery SetInt16(string name, short val) => throw null; public NHibernate.IMultiQuery SetInt32(string name, int val) => throw null; - public NHibernate.IMultiQuery SetInt64(string name, System.Int64 val) => throw null; + public NHibernate.IMultiQuery SetInt64(string name, long val) => throw null; public NHibernate.IMultiQuery SetParameter(string name, object val, NHibernate.Type.IType type) => throw null; public NHibernate.IMultiQuery SetParameter(string name, object val) => throw null; public NHibernate.IMultiQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type) => throw null; @@ -19180,37 +15500,32 @@ namespace NHibernate public NHibernate.IMultiQuery SetString(string name, string val) => throw null; public NHibernate.IMultiQuery SetTime(string name, System.DateTime val) => throw null; public NHibernate.IMultiQuery SetTimeAsTimeSpan(string name, System.TimeSpan val) => throw null; - public NHibernate.IMultiQuery SetTimeSpan(string name, System.TimeSpan val) => throw null; public NHibernate.IMultiQuery SetTimeout(int timeout) => throw null; + public NHibernate.IMultiQuery SetTimeSpan(string name, System.TimeSpan val) => throw null; public NHibernate.IMultiQuery SetTimestamp(string name, System.DateTime val) => throw null; protected NHibernate.SqlCommand.SqlString SqlString { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.Impl.Printer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Printer + public sealed class Printer { public Printer(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public void ToString(object[] entities) => throw null; public string ToString(object entity) => throw null; - public string ToString(System.Collections.Generic.IDictionary namedTypedValues) => throw null; public string ToString(NHibernate.Type.IType[] types, object[] values) => throw null; + public string ToString(System.Collections.Generic.IDictionary namedTypedValues) => throw null; + public void ToString(object[] entities) => throw null; } - - // Generated from `NHibernate.Impl.QueryImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QueryImpl : NHibernate.Impl.AbstractQueryImpl2 { - protected override NHibernate.IQueryExpression ExpandParameters(System.Collections.Generic.IDictionary namedParams) => throw null; public QueryImpl(string queryString, NHibernate.FlushMode flushMode, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null; public QueryImpl(string queryString, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null; + protected override NHibernate.IQueryExpression ExpandParameters(System.Collections.Generic.IDictionary namedParams) => throw null; } - - // Generated from `NHibernate.Impl.SessionFactoryImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SessionFactoryImpl : System.Runtime.Serialization.IObjectReference, System.IDisposable, NHibernate.ISessionFactory, NHibernate.Engine.ISessionFactoryImplementor, NHibernate.Engine.IMapping + public sealed class SessionFactoryImpl : NHibernate.Engine.ISessionFactoryImplementor, NHibernate.Engine.IMapping, NHibernate.ISessionFactory, System.IDisposable, System.Runtime.Serialization.IObjectReference { public void Close() => throw null; public System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public NHibernate.Connection.IConnectionProvider ConnectionProvider { get => throw null; } + public SessionFactoryImpl(NHibernate.Cfg.Configuration cfg, NHibernate.Engine.IMapping mapping, NHibernate.Cfg.Settings settings, NHibernate.Event.EventListeners listeners) => throw null; public NHibernate.Context.ICurrentSessionContext CurrentSessionContext { get => throw null; } public System.Collections.Generic.ICollection DefinedFilterNames { get => throw null; } public NHibernate.Dialect.Dialect Dialect { get => throw null; } @@ -19223,36 +15538,38 @@ namespace NHibernate public System.Threading.Tasks.Task EvictAsync(System.Type persistentClass, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task EvictAsync(System.Type persistentClass, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task EvictAsync(System.Collections.Generic.IEnumerable persistentClasses, System.Threading.CancellationToken cancellationToken) => throw null; - public void EvictCollection(string roleName, object id, string tenantIdentifier) => throw null; public void EvictCollection(string roleName, object id) => throw null; + public void EvictCollection(string roleName, object id, string tenantIdentifier) => throw null; public void EvictCollection(string roleName) => throw null; public void EvictCollection(System.Collections.Generic.IEnumerable roleNames) => throw null; - public System.Threading.Tasks.Task EvictCollectionAsync(string roleName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task EvictCollectionAsync(string roleName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task EvictCollectionAsync(string roleName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task EvictCollectionAsync(string roleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task EvictCollectionAsync(System.Collections.Generic.IEnumerable roleNames, System.Threading.CancellationToken cancellationToken) => throw null; - public void EvictEntity(string entityName, object id, string tenantIdentifier) => throw null; - public void EvictEntity(string entityName, object id) => throw null; public void EvictEntity(string entityName) => throw null; public void EvictEntity(System.Collections.Generic.IEnumerable entityNames) => throw null; - public System.Threading.Tasks.Task EvictEntityAsync(string entityName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task EvictEntityAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void EvictEntity(string entityName, object id) => throw null; + public void EvictEntity(string entityName, object id, string tenantIdentifier) => throw null; public System.Threading.Tasks.Task EvictEntityAsync(string entityName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task EvictEntityAsync(System.Collections.Generic.IEnumerable entityNames, System.Threading.CancellationToken cancellationToken) => throw null; - public void EvictQueries(string cacheRegion) => throw null; + public System.Threading.Tasks.Task EvictEntityAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task EvictEntityAsync(string entityName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken) => throw null; public void EvictQueries() => throw null; - public System.Threading.Tasks.Task EvictQueriesAsync(string cacheRegion, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void EvictQueries(string cacheRegion) => throw null; public System.Threading.Tasks.Task EvictQueriesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task EvictQueriesAsync(string cacheRegion, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Collections.Generic.IDictionary GetAllClassMetadata() => throw null; public System.Collections.Generic.IDictionary GetAllCollectionMetadata() => throw null; public System.Collections.Generic.IDictionary GetAllSecondLevelCacheRegions() => throw null; - public NHibernate.Metadata.IClassMetadata GetClassMetadata(string entityName) => throw null; public NHibernate.Metadata.IClassMetadata GetClassMetadata(System.Type persistentClass) => throw null; + public NHibernate.Metadata.IClassMetadata GetClassMetadata(string entityName) => throw null; public NHibernate.Metadata.ICollectionMetadata GetCollectionMetadata(string roleName) => throw null; public NHibernate.Persister.Collection.ICollectionPersister GetCollectionPersister(string role) => throw null; + public System.Collections.Generic.ISet GetCollectionPersisters(System.Collections.Generic.ISet spaces) => throw null; public System.Collections.Generic.ISet GetCollectionRolesByEntityParticipant(string entityName) => throw null; public NHibernate.ISession GetCurrentSession() => throw null; public NHibernate.Persister.Entity.IEntityPersister GetEntityPersister(string entityName) => throw null; + public System.Collections.Generic.ISet GetEntityPersisters(System.Collections.Generic.ISet spaces) => throw null; public NHibernate.Engine.FilterDefinition GetFilterDefinition(string filterName) => throw null; public NHibernate.Id.IIdentifierGenerator GetIdentifierGenerator(string rootEntityName) => throw null; public string GetIdentifierPropertyName(string className) => throw null; @@ -19272,19 +15589,18 @@ namespace NHibernate public NHibernate.IInterceptor Interceptor { get => throw null; } public bool IsClosed { get => throw null; } public string Name { get => throw null; } - public NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection, bool flushBeforeCompletionEnabled, bool autoCloseSessionEnabled, NHibernate.ConnectionReleaseMode connectionReleaseMode) => throw null; - public NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection, NHibernate.IInterceptor sessionLocalInterceptor) => throw null; - public NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection) => throw null; - public NHibernate.ISession OpenSession(NHibernate.IInterceptor sessionLocalInterceptor) => throw null; public NHibernate.ISession OpenSession() => throw null; - public NHibernate.IStatelessSession OpenStatelessSession(System.Data.Common.DbConnection connection) => throw null; + public NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection) => throw null; + public NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection, NHibernate.IInterceptor sessionLocalInterceptor) => throw null; + public NHibernate.ISession OpenSession(NHibernate.IInterceptor sessionLocalInterceptor) => throw null; + public NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection, bool flushBeforeCompletionEnabled, bool autoCloseSessionEnabled, NHibernate.ConnectionReleaseMode connectionReleaseMode) => throw null; public NHibernate.IStatelessSession OpenStatelessSession() => throw null; + public NHibernate.IStatelessSession OpenStatelessSession(System.Data.Common.DbConnection connection) => throw null; public NHibernate.Cache.IQueryCache QueryCache { get => throw null; } public NHibernate.Engine.Query.QueryPlanCache QueryPlanCache { get => throw null; } + public NHibernate.Cfg.Settings Settings { get => throw null; } public NHibernate.Exceptions.ISQLExceptionConverter SQLExceptionConverter { get => throw null; } public NHibernate.Dialect.Function.SQLFunctionRegistry SQLFunctionRegistry { get => throw null; } - public SessionFactoryImpl(NHibernate.Cfg.Configuration cfg, NHibernate.Engine.IMapping mapping, NHibernate.Cfg.Settings settings, NHibernate.Event.EventListeners listeners) => throw null; - public NHibernate.Cfg.Settings Settings { get => throw null; } public NHibernate.Stat.IStatistics Statistics { get => throw null; } public NHibernate.Stat.IStatisticsImplementor StatisticsImplementor { get => throw null; } public NHibernate.Transaction.ITransactionFactory TransactionFactory { get => throw null; } @@ -19295,8 +15611,6 @@ namespace NHibernate public NHibernate.ISessionBuilder WithOptions() => throw null; public NHibernate.IStatelessSessionBuilder WithStatelessOptions() => throw null; } - - // Generated from `NHibernate.Impl.SessionFactoryObjectFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class SessionFactoryObjectFactory { public static void AddInstance(string uid, string name, NHibernate.ISessionFactory instance, System.Collections.Generic.IDictionary properties) => throw null; @@ -19304,18 +15618,14 @@ namespace NHibernate public static NHibernate.ISessionFactory GetNamedInstance(string name) => throw null; public static void RemoveInstance(string uid, string name, System.Collections.Generic.IDictionary properties) => throw null; } - - // Generated from `NHibernate.Impl.SessionIdLoggingContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SessionIdLoggingContext : System.IDisposable { public static System.IDisposable CreateOrNull(System.Guid id) => throw null; - public void Dispose() => throw null; - public static System.Guid? SessionId { get => throw null; set => throw null; } public SessionIdLoggingContext(System.Guid id) => throw null; + public void Dispose() => throw null; + public static System.Guid? SessionId { get => throw null; set { } } } - - // Generated from `NHibernate.Impl.SessionImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SessionImpl : NHibernate.Impl.AbstractSessionImpl, System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IDeserializationCallback, System.IDisposable, NHibernate.ISession, NHibernate.Event.IEventSource, NHibernate.Engine.ISessionImplementor + public sealed class SessionImpl : NHibernate.Impl.AbstractSessionImpl, NHibernate.Event.IEventSource, NHibernate.Engine.ISessionImplementor, NHibernate.ISession, System.IDisposable, System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IDeserializationCallback { public NHibernate.Engine.ActionQueue ActionQueue { get => throw null; } public override void AfterTransactionBegin(NHibernate.ITransaction tx) => throw null; @@ -19327,47 +15637,47 @@ namespace NHibernate public override void BeforeTransactionCompletion(NHibernate.ITransaction tx) => throw null; public override System.Threading.Tasks.Task BeforeTransactionCompletionAsync(NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken) => throw null; public override string BestGuessEntityName(object entity) => throw null; - public override NHibernate.CacheMode CacheMode { get => throw null; set => throw null; } + public override NHibernate.CacheMode CacheMode { get => throw null; set { } } public void CancelQuery() => throw null; public void Clear() => throw null; public System.Data.Common.DbConnection Close() => throw null; public override void CloseSessionFromSystemTransaction() => throw null; public NHibernate.ConnectionReleaseMode ConnectionReleaseMode { get => throw null; } public bool Contains(object obj) => throw null; - public NHibernate.ICriteria CreateCriteria(string alias) where T : class => throw null; public NHibernate.ICriteria CreateCriteria() where T : class => throw null; + public NHibernate.ICriteria CreateCriteria(System.Type persistentClass) => throw null; + public NHibernate.ICriteria CreateCriteria(string alias) where T : class => throw null; + public NHibernate.ICriteria CreateCriteria(System.Type persistentClass, string alias) => throw null; public NHibernate.ICriteria CreateCriteria(string entityName, string alias) => throw null; public NHibernate.ICriteria CreateCriteria(string entityName) => throw null; - public NHibernate.ICriteria CreateCriteria(System.Type persistentClass, string alias) => throw null; - public NHibernate.ICriteria CreateCriteria(System.Type persistentClass) => throw null; - public override NHibernate.IQuery CreateFilter(object collection, NHibernate.IQueryExpression queryExpression) => throw null; public NHibernate.IQuery CreateFilter(object collection, string queryString) => throw null; - public override System.Threading.Tasks.Task CreateFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, System.Threading.CancellationToken cancellationToken) => throw null; + public override NHibernate.IQuery CreateFilter(object collection, NHibernate.IQueryExpression queryExpression) => throw null; public System.Threading.Tasks.Task CreateFilterAsync(object collection, string queryString, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task CreateFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, System.Threading.CancellationToken cancellationToken) => throw null; public NHibernate.IMultiCriteria CreateMultiCriteria() => throw null; public NHibernate.IMultiQuery CreateMultiQuery() => throw null; - public bool DefaultReadOnly { get => throw null; set => throw null; } - public void Delete(string entityName, object obj) => throw null; - public void Delete(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet transientEntities) => throw null; + public bool DefaultReadOnly { get => throw null; set { } } public void Delete(object obj) => throw null; - public int Delete(string query, object[] values, NHibernate.Type.IType[] types) => throw null; - public int Delete(string query, object value, NHibernate.Type.IType type) => throw null; + public void Delete(string entityName, object obj) => throw null; public int Delete(string query) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string query, object[] values, NHibernate.Type.IType[] types, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string query, object value, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string query, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet transientEntities, System.Threading.CancellationToken cancellationToken) => throw null; + public int Delete(string query, object value, NHibernate.Type.IType type) => throw null; + public int Delete(string query, object[] values, NHibernate.Type.IType[] types) => throw null; + public void Delete(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet transientEntities) => throw null; public System.Threading.Tasks.Task DeleteAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string query, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string query, object value, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string query, object[] values, NHibernate.Type.IType[] types, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet transientEntities, System.Threading.CancellationToken cancellationToken) => throw null; public void DisableFilter(string filterName) => throw null; public System.Data.Common.DbConnection Disconnect() => throw null; public void Dispose() => throw null; - public NHibernate.IFilter EnableFilter(string filterName) => throw null; public override System.Collections.Generic.IDictionary EnabledFilters { get => throw null; } - public override System.Collections.IEnumerable Enumerable(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null; + public NHibernate.IFilter EnableFilter(string filterName) => throw null; public override System.Collections.Generic.IEnumerable Enumerable(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null; - public override System.Threading.Tasks.Task EnumerableAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Collections.IEnumerable Enumerable(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null; public override System.Threading.Tasks.Task> EnumerableAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task EnumerableAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Collections.IEnumerable EnumerableFilter(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters) => throw null; public override System.Collections.Generic.IEnumerable EnumerableFilter(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters) => throw null; public override System.Threading.Tasks.Task EnumerableFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; @@ -19378,7 +15688,7 @@ namespace NHibernate public override System.Threading.Tasks.Task ExecuteNativeUpdateAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification nativeQuerySpecification, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; public override int ExecuteUpdate(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null; public override System.Threading.Tasks.Task ExecuteUpdateAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - public override string FetchProfile { get => throw null; set => throw null; } + public override string FetchProfile { get => throw null; set { } } public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public bool FlushBeforeCompletionEnabled { get => throw null; } @@ -19386,20 +15696,20 @@ namespace NHibernate public override System.Threading.Tasks.Task FlushBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken) => throw null; public void ForceFlush(NHibernate.Engine.EntityEntry entityEntry) => throw null; public System.Threading.Tasks.Task ForceFlushAsync(NHibernate.Engine.EntityEntry entityEntry, System.Threading.CancellationToken cancellationToken) => throw null; - public override NHibernate.Impl.FutureCriteriaBatch FutureCriteriaBatch { get => throw null; set => throw null; } - public override NHibernate.Impl.FutureQueryBatch FutureQueryBatch { get => throw null; set => throw null; } - public object Get(string entityName, object id, NHibernate.LockMode lockMode) => throw null; - public object Get(string entityName, object id) => throw null; + public override NHibernate.Impl.FutureCriteriaBatch FutureCriteriaBatch { get => throw null; set { } } + public override NHibernate.Impl.FutureQueryBatch FutureQueryBatch { get => throw null; set { } } + public T Get(object id) => throw null; + public T Get(object id, NHibernate.LockMode lockMode) => throw null; public object Get(System.Type entityClass, object id) => throw null; public object Get(System.Type clazz, object id, NHibernate.LockMode lockMode) => throw null; - public T Get(object id, NHibernate.LockMode lockMode) => throw null; - public T Get(object id) => throw null; - public System.Threading.Tasks.Task GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task GetAsync(System.Type entityClass, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(System.Type clazz, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public object Get(string entityName, object id, NHibernate.LockMode lockMode) => throw null; + public object Get(string entityName, object id) => throw null; public System.Threading.Tasks.Task GetAsync(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task GetAsync(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(System.Type entityClass, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(System.Type clazz, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override object GetContextEntityIdentifier(object obj) => throw null; public NHibernate.LockMode GetCurrentLockMode(object obj) => throw null; public NHibernate.IFilter GetEnabledFilter(string filterName) => throw null; @@ -19431,93 +15741,93 @@ namespace NHibernate public override bool IsEventSource { get => throw null; } public override bool IsOpen { get => throw null; } public bool IsReadOnly(object entityOrProxy) => throw null; - public override void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results) => throw null; public override void List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null; public override System.Collections.Generic.IList List(NHibernate.Impl.CriteriaImpl criteria) => throw null; + public override void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results) => throw null; + public override System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task> ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; public override void ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null; public override System.Threading.Tasks.Task ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; + public override NHibernate.Event.EventListeners Listeners { get => throw null; } + protected override void ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null; public override System.Collections.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters) => throw null; public override System.Collections.Generic.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters) => throw null; - protected override void ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null; + protected override System.Threading.Tasks.Task ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task> ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - protected override System.Threading.Tasks.Task ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; - public override NHibernate.Event.EventListeners Listeners { get => throw null; } public void Load(object obj, object id) => throw null; - public object Load(string entityName, object id, NHibernate.LockMode lockMode) => throw null; - public object Load(string entityName, object id) => throw null; - public object Load(System.Type entityClass, object id, NHibernate.LockMode lockMode) => throw null; - public object Load(System.Type entityClass, object id) => throw null; - public T Load(object id, NHibernate.LockMode lockMode) => throw null; public T Load(object id) => throw null; + public T Load(object id, NHibernate.LockMode lockMode) => throw null; + public object Load(System.Type entityClass, object id, NHibernate.LockMode lockMode) => throw null; + public object Load(string entityName, object id) => throw null; + public object Load(string entityName, object id, NHibernate.LockMode lockMode) => throw null; + public object Load(System.Type entityClass, object id) => throw null; + public System.Threading.Tasks.Task LoadAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task LoadAsync(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task LoadAsync(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task LoadAsync(System.Type entityClass, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task LoadAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task LoadAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task LoadAsync(System.Type entityClass, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task LoadAsync(System.Type entityClass, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task LoadAsync(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task LoadAsync(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task LoadAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public void Lock(string entityName, object obj, NHibernate.LockMode lockMode) => throw null; public void Lock(object obj, NHibernate.LockMode lockMode) => throw null; - public System.Threading.Tasks.Task LockAsync(string entityName, object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void Lock(string entityName, object obj, NHibernate.LockMode lockMode) => throw null; public System.Threading.Tasks.Task LockAsync(object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task LockAsync(string entityName, object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public void Merge(string entityName, object obj, System.Collections.IDictionary copiedAlready) => throw null; public object Merge(string entityName, object obj) => throw null; - public object Merge(object obj) => throw null; - public T Merge(string entityName, T entity) where T : class => throw null; public T Merge(T entity) where T : class => throw null; - public System.Threading.Tasks.Task MergeAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task MergeAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task MergeAsync(string entityName, T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class => throw null; - public System.Threading.Tasks.Task MergeAsync(T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class => throw null; + public T Merge(string entityName, T entity) where T : class => throw null; + public object Merge(object obj) => throw null; public System.Threading.Tasks.Task MergeAsync(string entityName, object obj, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task MergeAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task MergeAsync(T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class => throw null; + public System.Threading.Tasks.Task MergeAsync(string entityName, T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class => throw null; + public System.Threading.Tasks.Task MergeAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; public void Persist(string entityName, object obj, System.Collections.IDictionary createdAlready) => throw null; public void Persist(string entityName, object obj) => throw null; public void Persist(object obj) => throw null; - public System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Collections.IDictionary createdAlready, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task PersistAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override NHibernate.Engine.IPersistenceContext PersistenceContext { get => throw null; } public void PersistOnFlush(string entityName, object obj, System.Collections.IDictionary copiedAlready) => throw null; public void PersistOnFlush(string entityName, object obj) => throw null; public void PersistOnFlush(object obj) => throw null; - public System.Threading.Tasks.Task PersistOnFlushAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task PersistOnFlushAsync(string entityName, object obj, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task PersistOnFlushAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task PersistOnFlushAsync(object obj, System.Threading.CancellationToken cancellationToken) => throw null; - public override NHibernate.Engine.IPersistenceContext PersistenceContext { get => throw null; } - public NHibernate.IQueryOver QueryOver(string entityName, System.Linq.Expressions.Expression> alias) where T : class => throw null; - public NHibernate.IQueryOver QueryOver(string entityName) where T : class => throw null; - public NHibernate.IQueryOver QueryOver(System.Linq.Expressions.Expression> alias) where T : class => throw null; public NHibernate.IQueryOver QueryOver() where T : class => throw null; - public void Reconnect(System.Data.Common.DbConnection conn) => throw null; + public NHibernate.IQueryOver QueryOver(System.Linq.Expressions.Expression> alias) where T : class => throw null; + public NHibernate.IQueryOver QueryOver(string entityName) where T : class => throw null; + public NHibernate.IQueryOver QueryOver(string entityName, System.Linq.Expressions.Expression> alias) where T : class => throw null; public void Reconnect() => throw null; + public void Reconnect(System.Data.Common.DbConnection conn) => throw null; public void Refresh(object obj, System.Collections.IDictionary refreshedAlready) => throw null; - public void Refresh(object obj, NHibernate.LockMode lockMode) => throw null; public void Refresh(object obj) => throw null; - public System.Threading.Tasks.Task RefreshAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void Refresh(object obj, NHibernate.LockMode lockMode) => throw null; public System.Threading.Tasks.Task RefreshAsync(object obj, System.Collections.IDictionary refreshedAlready, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task RefreshAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task RefreshAsync(object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public void Replicate(string entityName, object obj, NHibernate.ReplicationMode replicationMode) => throw null; public void Replicate(object obj, NHibernate.ReplicationMode replicationMode) => throw null; - public System.Threading.Tasks.Task ReplicateAsync(string entityName, object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void Replicate(string entityName, object obj, NHibernate.ReplicationMode replicationMode) => throw null; public System.Threading.Tasks.Task ReplicateAsync(object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ReplicateAsync(string entityName, object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public object Save(object obj) => throw null; + public object Save(string entityName, object obj) => throw null; public void Save(string entityName, object obj, object id) => throw null; public void Save(object obj, object id) => throw null; - public object Save(string entityName, object obj) => throw null; - public object Save(object obj) => throw null; - public System.Threading.Tasks.Task SaveAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task SaveAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SaveAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task SaveAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task SaveAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public void SaveOrUpdate(string entityName, object obj, object id) => throw null; - public void SaveOrUpdate(string entityName, object obj) => throw null; public void SaveOrUpdate(object obj) => throw null; - public System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void SaveOrUpdate(string entityName, object obj) => throw null; + public void SaveOrUpdate(string entityName, object obj, object id) => throw null; public System.Threading.Tasks.Task SaveOrUpdateAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public NHibernate.ISessionFactory SessionFactory { get => throw null; } public NHibernate.ISharedSessionBuilder SessionWithOptions() => throw null; public NHibernate.ISession SetBatchSize(int batchSize) => throw null; @@ -19526,28 +15836,26 @@ namespace NHibernate public NHibernate.ISharedStatelessSessionBuilder StatelessSessionWithOptions() => throw null; public NHibernate.Stat.ISessionStatistics Statistics { get => throw null; } public System.IDisposable SuspendAutoFlush() => throw null; - public void Update(string entityName, object obj, object id) => throw null; - public void Update(string entityName, object obj) => throw null; - public void Update(object obj, object id) => throw null; public void Update(object obj) => throw null; - public System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task UpdateAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void Update(string entityName, object obj) => throw null; + public void Update(string entityName, object obj, object id) => throw null; + public void Update(object obj, object id) => throw null; public System.Threading.Tasks.Task UpdateAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - // ERR: Stub generator didn't handle member: ~SessionImpl + public System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task UpdateAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + internal SessionImpl() : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(NHibernate.Impl.ISessionCreationOptions)) { } } - - // Generated from `NHibernate.Impl.SqlQueryImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SqlQueryImpl : NHibernate.Impl.AbstractQueryImpl, NHibernate.ISynchronizableSQLQuery, NHibernate.ISynchronizableQuery, NHibernate.ISQLQuery, NHibernate.IQuery + public class SqlQueryImpl : NHibernate.Impl.AbstractQueryImpl, NHibernate.ISQLQuery, NHibernate.IQuery, NHibernate.ISynchronizableSQLQuery, NHibernate.ISynchronizableQuery { - public NHibernate.ISQLQuery AddEntity(string entityName) => throw null; - public NHibernate.ISQLQuery AddEntity(string alias, string entityName, NHibernate.LockMode lockMode) => throw null; - public NHibernate.ISQLQuery AddEntity(string alias, string entityName) => throw null; - public NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass, NHibernate.LockMode lockMode) => throw null; - public NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass) => throw null; public NHibernate.ISQLQuery AddEntity(System.Type entityClass) => throw null; - public NHibernate.ISQLQuery AddJoin(string alias, string path, NHibernate.LockMode lockMode) => throw null; + public NHibernate.ISQLQuery AddEntity(string entityName) => throw null; + public NHibernate.ISQLQuery AddEntity(string alias, string entityName) => throw null; + public NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass) => throw null; + public NHibernate.ISQLQuery AddEntity(string alias, string entityName, NHibernate.LockMode lockMode) => throw null; + public NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass, NHibernate.LockMode lockMode) => throw null; public NHibernate.ISQLQuery AddJoin(string alias, string path) => throw null; + public NHibernate.ISQLQuery AddJoin(string alias, string path, NHibernate.LockMode lockMode) => throw null; public NHibernate.ISQLQuery AddScalar(string columnAlias, NHibernate.Type.IType type) => throw null; public NHibernate.ISynchronizableSQLQuery AddSynchronizedEntityClass(System.Type entityType) => throw null; public NHibernate.ISynchronizableSQLQuery AddSynchronizedEntityName(string entityName) => throw null; @@ -19561,34 +15869,28 @@ namespace NHibernate public NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification GenerateQuerySpecification(System.Collections.Generic.IDictionary parameters) => throw null; public override NHibernate.Engine.QueryParameters GetQueryParameters(System.Collections.Generic.IDictionary namedParams) => throw null; public System.Collections.Generic.IReadOnlyCollection GetSynchronizedQuerySpaces() => throw null; - protected internal override System.Collections.Generic.IEnumerable GetTranslators(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters) => throw null; - protected internal override System.Threading.Tasks.Task> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - public override void List(System.Collections.IList results) => throw null; + protected override System.Collections.Generic.IEnumerable GetTranslators(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters) => throw null; + protected override System.Threading.Tasks.Task> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Collections.IList List() => throw null; + public override void List(System.Collections.IList results) => throw null; public override System.Collections.Generic.IList List() => throw null; public override System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - protected internal override System.Collections.Generic.IDictionary LockModes { get => throw null; } + public override System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected override System.Collections.Generic.IDictionary LockModes { get => throw null; } public override string[] ReturnAliases { get => throw null; } public override NHibernate.Type.IType[] ReturnTypes { get => throw null; } public override NHibernate.IQuery SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null; public NHibernate.ISQLQuery SetResultSetMapping(string name) => throw null; - internal SqlQueryImpl(string sql, string[] returnAliases, System.Type[] returnClasses, NHibernate.LockMode[] lockModes, NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ICollection querySpaces, NHibernate.FlushMode flushMode, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null; - internal SqlQueryImpl(string sql, string[] returnAliases, System.Type[] returnClasses, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null; - internal SqlQueryImpl(string sql, System.Collections.Generic.IList queryReturns, System.Collections.Generic.ICollection querySpaces, NHibernate.FlushMode flushMode, bool callable, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null; - internal SqlQueryImpl(string sql, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null; - internal SqlQueryImpl(NHibernate.Engine.NamedSQLQueryDefinition queryDef, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null; public override NHibernate.Type.IType[] TypeArray() => throw null; protected override System.Collections.Generic.IList Types { get => throw null; } public override object[] ValueArray() => throw null; protected override System.Collections.IList Values { get => throw null; } - protected internal override void VerifyParameters(bool reserveFirstParameter) => throw null; - protected internal override void VerifyParameters() => throw null; + protected override void VerifyParameters() => throw null; + protected override void VerifyParameters(bool reserveFirstParameter) => throw null; + internal SqlQueryImpl() : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) { } } - - // Generated from `NHibernate.Impl.StatelessSessionImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StatelessSessionImpl : NHibernate.Impl.AbstractSessionImpl, System.IDisposable, NHibernate.IStatelessSession + public class StatelessSessionImpl : NHibernate.Impl.AbstractSessionImpl, NHibernate.IStatelessSession, System.IDisposable { public override void AfterTransactionBegin(NHibernate.ITransaction tx) => throw null; public override void AfterTransactionCompletion(bool successful, NHibernate.ITransaction tx) => throw null; @@ -19596,21 +15898,21 @@ namespace NHibernate public override void BeforeTransactionCompletion(NHibernate.ITransaction tx) => throw null; public override System.Threading.Tasks.Task BeforeTransactionCompletionAsync(NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken) => throw null; public override string BestGuessEntityName(object entity) => throw null; - public override NHibernate.CacheMode CacheMode { get => throw null; set => throw null; } + public override NHibernate.CacheMode CacheMode { get => throw null; set { } } public void Close() => throw null; public override void CloseSessionFromSystemTransaction() => throw null; - public NHibernate.ICriteria CreateCriteria(string alias) where T : class => throw null; public NHibernate.ICriteria CreateCriteria() where T : class => throw null; - public NHibernate.ICriteria CreateCriteria(string entityName, string alias) => throw null; - public NHibernate.ICriteria CreateCriteria(string entityName) => throw null; - public NHibernate.ICriteria CreateCriteria(System.Type entityType, string alias) => throw null; + public NHibernate.ICriteria CreateCriteria(string alias) where T : class => throw null; public NHibernate.ICriteria CreateCriteria(System.Type entityType) => throw null; + public NHibernate.ICriteria CreateCriteria(System.Type entityType, string alias) => throw null; + public NHibernate.ICriteria CreateCriteria(string entityName) => throw null; + public NHibernate.ICriteria CreateCriteria(string entityName, string alias) => throw null; public override NHibernate.IQuery CreateFilter(object collection, NHibernate.IQueryExpression queryExpression) => throw null; public override System.Threading.Tasks.Task CreateFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, System.Threading.CancellationToken cancellationToken) => throw null; - public void Delete(string entityName, object entity) => throw null; public void Delete(object entity) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void Delete(string entityName, object entity) => throw null; public System.Threading.Tasks.Task DeleteAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public void Dispose() => throw null; protected void Dispose(bool isDisposing) => throw null; public override System.Collections.Generic.IDictionary EnabledFilters { get => throw null; } @@ -19626,21 +15928,21 @@ namespace NHibernate public override System.Threading.Tasks.Task ExecuteNativeUpdateAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification nativeSQLQuerySpecification, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; public override int ExecuteUpdate(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null; public override System.Threading.Tasks.Task ExecuteUpdateAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - public override string FetchProfile { get => throw null; set => throw null; } + public override string FetchProfile { get => throw null; set { } } public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override void FlushBeforeTransactionCompletion() => throw null; public override System.Threading.Tasks.Task FlushBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public override NHibernate.FlushMode FlushMode { get => throw null; set => throw null; } - public override NHibernate.Impl.FutureCriteriaBatch FutureCriteriaBatch { get => throw null; set => throw null; } - public override NHibernate.Impl.FutureQueryBatch FutureQueryBatch { get => throw null; set => throw null; } - public object Get(string entityName, object id, NHibernate.LockMode lockMode) => throw null; + public override NHibernate.FlushMode FlushMode { get => throw null; set { } } + public override NHibernate.Impl.FutureCriteriaBatch FutureCriteriaBatch { get => throw null; set { } } + public override NHibernate.Impl.FutureQueryBatch FutureQueryBatch { get => throw null; set { } } public object Get(string entityName, object id) => throw null; - public T Get(object id, NHibernate.LockMode lockMode) => throw null; public T Get(object id) => throw null; + public object Get(string entityName, object id, NHibernate.LockMode lockMode) => throw null; + public T Get(object id, NHibernate.LockMode lockMode) => throw null; public System.Threading.Tasks.Task GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task GetAsync(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task GetAsync(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override object GetContextEntityIdentifier(object obj) => throw null; public override NHibernate.Persister.Entity.IEntityPersister GetEntityPersister(string entityName, object obj) => throw null; @@ -19656,10 +15958,10 @@ namespace NHibernate public override System.Threading.Tasks.Task ImmediateLoadAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken) => throw null; public override void InitializeCollection(NHibernate.Collection.IPersistentCollection collection, bool writing) => throw null; public override System.Threading.Tasks.Task InitializeCollectionAsync(NHibernate.Collection.IPersistentCollection collection, bool writing, System.Threading.CancellationToken cancellationToken) => throw null; - public object Insert(string entityName, object entity) => throw null; public object Insert(object entity) => throw null; - public System.Threading.Tasks.Task InsertAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public object Insert(string entityName, object entity) => throw null; public System.Threading.Tasks.Task InsertAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task InsertAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override object Instantiate(string clazz, object id) => throw null; public override object Instantiate(NHibernate.Persister.Entity.IEntityPersister persister, object id) => throw null; public override NHibernate.IInterceptor Interceptor { get => throw null; } @@ -19667,99 +15969,185 @@ namespace NHibernate public override System.Threading.Tasks.Task InternalLoadAsync(string entityName, object id, bool eager, bool isNullable, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsEventSource { get => throw null; } public override bool IsOpen { get => throw null; } - public override void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results) => throw null; public override void List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null; public override System.Collections.Generic.IList List(NHibernate.Impl.CriteriaImpl criteria) => throw null; + public override void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results) => throw null; + public override System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task> ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; public override void ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null; public override System.Threading.Tasks.Task ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Collections.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters) => throw null; - public override System.Collections.Generic.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters) => throw null; - protected override void ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Collections.IList results) => throw null; - public override System.Threading.Tasks.Task ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.Task> ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null; - protected override System.Threading.Tasks.Task ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; public override NHibernate.Event.EventListeners Listeners { get => throw null; } + public override System.Collections.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters) => throw null; + protected override void ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Collections.IList results) => throw null; + public override System.Collections.Generic.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters) => throw null; + public override System.Threading.Tasks.Task ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null; + protected override System.Threading.Tasks.Task ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task> ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null; public void ManagedClose() => throw null; + public System.Threading.Tasks.Task ManagedCloseAsync(System.Threading.CancellationToken cancellationToken) => throw null; public void ManagedFlush() => throw null; public System.Threading.Tasks.Task ManagedFlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override NHibernate.Engine.IPersistenceContext PersistenceContext { get => throw null; } - public NHibernate.IQueryOver QueryOver(System.Linq.Expressions.Expression> alias) where T : class => throw null; public NHibernate.IQueryOver QueryOver() where T : class => throw null; - public void Refresh(string entityName, object entity, NHibernate.LockMode lockMode) => throw null; + public NHibernate.IQueryOver QueryOver(System.Linq.Expressions.Expression> alias) where T : class => throw null; + public void Refresh(object entity) => throw null; public void Refresh(string entityName, object entity) => throw null; public void Refresh(object entity, NHibernate.LockMode lockMode) => throw null; - public void Refresh(object entity) => throw null; - public System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void Refresh(string entityName, object entity, NHibernate.LockMode lockMode) => throw null; public System.Threading.Tasks.Task RefreshAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task RefreshAsync(object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public NHibernate.IStatelessSession SetBatchSize(int batchSize) => throw null; - public override System.Int64 Timestamp { get => throw null; } - public void Update(string entityName, object entity) => throw null; + public override long Timestamp { get => throw null; } public void Update(object entity) => throw null; - public System.Threading.Tasks.Task UpdateAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void Update(string entityName, object entity) => throw null; public System.Threading.Tasks.Task UpdateAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - // ERR: Stub generator didn't handle member: ~StatelessSessionImpl + public System.Threading.Tasks.Task UpdateAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + internal StatelessSessionImpl() : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(NHibernate.Impl.ISessionCreationOptions)) { } } - + } + public interface IMultiCriteria + { + NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.ICriteria criteria); + NHibernate.IMultiCriteria Add(NHibernate.ICriteria criteria); + NHibernate.IMultiCriteria Add(string key, NHibernate.ICriteria criteria); + NHibernate.IMultiCriteria Add(NHibernate.Criterion.DetachedCriteria detachedCriteria); + NHibernate.IMultiCriteria Add(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria); + NHibernate.IMultiCriteria Add(NHibernate.ICriteria criteria); + NHibernate.IMultiCriteria Add(string key, NHibernate.ICriteria criteria); + NHibernate.IMultiCriteria Add(NHibernate.Criterion.DetachedCriteria detachedCriteria); + NHibernate.IMultiCriteria Add(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria); + NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.IQueryOver queryOver); + NHibernate.IMultiCriteria Add(NHibernate.IQueryOver queryOver); + NHibernate.IMultiCriteria Add(NHibernate.IQueryOver queryOver); + NHibernate.IMultiCriteria Add(string key, NHibernate.IQueryOver queryOver); + NHibernate.IMultiCriteria Add(string key, NHibernate.IQueryOver queryOver); + NHibernate.IMultiCriteria ForceCacheRefresh(bool forceRefresh); + object GetResult(string key); + System.Threading.Tasks.Task GetResultAsync(string key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Collections.IList List(); + System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.IMultiCriteria SetCacheable(bool cachable); + NHibernate.IMultiCriteria SetCacheRegion(string region); + NHibernate.IMultiCriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer); + } + public interface IMultiQuery + { + NHibernate.IMultiQuery Add(System.Type resultGenericListType, NHibernate.IQuery query); + NHibernate.IMultiQuery Add(NHibernate.IQuery query); + NHibernate.IMultiQuery Add(string key, NHibernate.IQuery query); + NHibernate.IMultiQuery Add(string key, string hql); + NHibernate.IMultiQuery Add(string hql); + NHibernate.IMultiQuery Add(string key, NHibernate.IQuery query); + NHibernate.IMultiQuery Add(NHibernate.IQuery query); + NHibernate.IMultiQuery Add(string key, string hql); + NHibernate.IMultiQuery Add(string hql); + NHibernate.IMultiQuery AddNamedQuery(string queryName); + NHibernate.IMultiQuery AddNamedQuery(string key, string queryName); + NHibernate.IMultiQuery AddNamedQuery(string queryName); + NHibernate.IMultiQuery AddNamedQuery(string key, string queryName); + object GetResult(string key); + System.Threading.Tasks.Task GetResultAsync(string key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Collections.IList List(); + System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.IMultiQuery SetAnsiString(string name, string val); + NHibernate.IMultiQuery SetBinary(string name, byte[] val); + NHibernate.IMultiQuery SetBoolean(string name, bool val); + NHibernate.IMultiQuery SetByte(string name, byte val); + NHibernate.IMultiQuery SetCacheable(bool cacheable); + NHibernate.IMultiQuery SetCacheRegion(string region); + NHibernate.IMultiQuery SetCharacter(string name, char val); + NHibernate.IMultiQuery SetDateTime(string name, System.DateTime val); + NHibernate.IMultiQuery SetDateTime2(string name, System.DateTime val); + NHibernate.IMultiQuery SetDateTimeNoMs(string name, System.DateTime val); + NHibernate.IMultiQuery SetDateTimeOffset(string name, System.DateTimeOffset val); + NHibernate.IMultiQuery SetDecimal(string name, decimal val); + NHibernate.IMultiQuery SetDouble(string name, double val); + NHibernate.IMultiQuery SetEntity(string name, object val); + NHibernate.IMultiQuery SetEnum(string name, System.Enum val); + NHibernate.IMultiQuery SetFlushMode(NHibernate.FlushMode mode); + NHibernate.IMultiQuery SetForceCacheRefresh(bool forceCacheRefresh); + NHibernate.IMultiQuery SetGuid(string name, System.Guid val); + NHibernate.IMultiQuery SetInt16(string name, short val); + NHibernate.IMultiQuery SetInt32(string name, int val); + NHibernate.IMultiQuery SetInt64(string name, long val); + NHibernate.IMultiQuery SetParameter(string name, object val, NHibernate.Type.IType type); + NHibernate.IMultiQuery SetParameter(string name, object val); + NHibernate.IMultiQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type); + NHibernate.IMultiQuery SetParameterList(string name, System.Collections.IEnumerable vals); + NHibernate.IMultiQuery SetResultTransformer(NHibernate.Transform.IResultTransformer transformer); + NHibernate.IMultiQuery SetSingle(string name, float val); + NHibernate.IMultiQuery SetString(string name, string val); + NHibernate.IMultiQuery SetTime(string name, System.DateTime val); + NHibernate.IMultiQuery SetTimeAsTimeSpan(string name, System.TimeSpan val); + NHibernate.IMultiQuery SetTimeout(int timeout); + NHibernate.IMultiQuery SetTimeSpan(string name, System.TimeSpan val); + NHibernate.IMultiQuery SetTimestamp(string name, System.DateTime val); + } + public interface INHibernateLogger + { + bool IsEnabled(NHibernate.NHibernateLogLevel logLevel); + void Log(NHibernate.NHibernateLogLevel logLevel, NHibernate.NHibernateLogValues state, System.Exception exception); + } + public interface INHibernateLoggerFactory + { + NHibernate.INHibernateLogger LoggerFor(string keyName); + NHibernate.INHibernateLogger LoggerFor(System.Type type); + } + public class InstantiationException : NHibernate.HibernateException + { + public InstantiationException(string message, System.Type type) => throw null; + public InstantiationException(string message, System.Exception innerException, System.Type type) => throw null; + protected InstantiationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } + public System.Type PersistentType { get => throw null; } } namespace Intercept { - // Generated from `NHibernate.Intercept.AbstractFieldInterceptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractFieldInterceptor : NHibernate.Intercept.IFieldInterceptor { - protected internal AbstractFieldInterceptor(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet uninitializedFields, System.Collections.Generic.ISet unwrapProxyFieldNames, string entityName, System.Type mappedClass) => throw null; public void ClearDirty() => throw null; + protected AbstractFieldInterceptor(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet uninitializedFields, System.Collections.Generic.ISet unwrapProxyFieldNames, string entityName, System.Type mappedClass) => throw null; public string EntityName { get => throw null; } public System.Collections.Generic.ISet GetUninitializedFields() => throw null; public bool Initializing { get => throw null; } - public object Intercept(object target, string fieldName, object value, bool setter) => throw null; public object Intercept(object target, string fieldName, object value) => throw null; + public object Intercept(object target, string fieldName, object value, bool setter) => throw null; public static object InvokeImplementation; public bool IsDirty { get => throw null; } public bool IsInitialized { get => throw null; } public bool IsInitializedField(string field) => throw null; public System.Type MappedClass { get => throw null; } public void MarkDirty() => throw null; - public NHibernate.Engine.ISessionImplementor Session { get => throw null; set => throw null; } + public NHibernate.Engine.ISessionImplementor Session { get => throw null; set { } } public System.Collections.Generic.ISet UninitializedFields { get => throw null; } } - - // Generated from `NHibernate.Intercept.DefaultDynamicLazyFieldInterceptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DefaultDynamicLazyFieldInterceptor : NHibernate.Proxy.DynamicProxy.IInterceptor, NHibernate.Intercept.IFieldInterceptorAccessor + public class DefaultDynamicLazyFieldInterceptor : NHibernate.Intercept.IFieldInterceptorAccessor, NHibernate.Proxy.DynamicProxy.IInterceptor { public DefaultDynamicLazyFieldInterceptor() => throw null; - public NHibernate.Intercept.IFieldInterceptor FieldInterceptor { get => throw null; set => throw null; } + public NHibernate.Intercept.IFieldInterceptor FieldInterceptor { get => throw null; set { } } public object Intercept(NHibernate.Proxy.DynamicProxy.InvocationInfo info) => throw null; } - - // Generated from `NHibernate.Intercept.DefaultFieldInterceptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultFieldInterceptor : NHibernate.Intercept.AbstractFieldInterceptor { public DefaultFieldInterceptor(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet uninitializedFields, System.Collections.Generic.ISet unwrapProxyFieldNames, string entityName, System.Type mappedClass) : base(default(NHibernate.Engine.ISessionImplementor), default(System.Collections.Generic.ISet), default(System.Collections.Generic.ISet), default(string), default(System.Type)) => throw null; } - - // Generated from `NHibernate.Intercept.FieldInterceptionHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class FieldInterceptionHelper { public static void ClearDirty(object entity) => throw null; public static NHibernate.Intercept.IFieldInterceptor ExtractFieldInterceptor(object entity) => throw null; public static NHibernate.Intercept.IFieldInterceptor InjectFieldInterceptor(object entity, string entityName, System.Type mappedClass, System.Collections.Generic.ISet uninitializedFieldNames, System.Collections.Generic.ISet unwrapProxyFieldNames, NHibernate.Engine.ISessionImplementor session) => throw null; - public static bool IsInstrumented(object entity) => throw null; public static bool IsInstrumented(System.Type entityClass) => throw null; + public static bool IsInstrumented(object entity) => throw null; public static void MarkDirty(object entity) => throw null; } - - // Generated from `NHibernate.Intercept.FieldInterceptorExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class FieldInterceptorExtensions + public static partial class FieldInterceptorExtensions { public static object Intercept(this NHibernate.Intercept.IFieldInterceptor interceptor, object target, string fieldName, object value, bool setter) => throw null; } - - // Generated from `NHibernate.Intercept.IFieldInterceptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IFieldInterceptor { void ClearDirty(); @@ -19772,49 +16160,622 @@ namespace NHibernate void MarkDirty(); NHibernate.Engine.ISessionImplementor Session { get; set; } } - - // Generated from `NHibernate.Intercept.IFieldInterceptorAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IFieldInterceptorAccessor { NHibernate.Intercept.IFieldInterceptor FieldInterceptor { get; set; } } - - // Generated from `NHibernate.Intercept.ILazyPropertyInitializer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ILazyPropertyInitializer { object InitializeLazyProperty(string fieldName, object entity, NHibernate.Engine.ISessionImplementor session); } - - // Generated from `NHibernate.Intercept.LazyPropertyInitializer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public struct LazyPropertyInitializer { - // Stub generator skipped constructor public static object UnfetchedProperty; } - - // Generated from `NHibernate.Intercept.UnfetchedLazyProperty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public struct UnfetchedLazyProperty { - // Stub generator skipped constructor } - + } + public class InvalidProxyTypeException : NHibernate.MappingException + { + public InvalidProxyTypeException(System.Collections.Generic.ICollection errors) : base(default(string)) => throw null; + public InvalidProxyTypeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; + public System.Collections.Generic.ICollection Errors { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public interface IQuery + { + System.Collections.IEnumerable Enumerable(); + System.Collections.Generic.IEnumerable Enumerable(); + System.Threading.Tasks.Task EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + int ExecuteUpdate(); + System.Threading.Tasks.Task ExecuteUpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.IFutureEnumerable Future(); + NHibernate.IFutureValue FutureValue(); + bool IsReadOnly { get; } + System.Collections.IList List(); + void List(System.Collections.IList results); + System.Collections.Generic.IList List(); + System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + string[] NamedParameters { get; } + string QueryString { get; } + string[] ReturnAliases { get; } + NHibernate.Type.IType[] ReturnTypes { get; } + NHibernate.IQuery SetAnsiString(int position, string val); + NHibernate.IQuery SetAnsiString(string name, string val); + NHibernate.IQuery SetBinary(int position, byte[] val); + NHibernate.IQuery SetBinary(string name, byte[] val); + NHibernate.IQuery SetBoolean(int position, bool val); + NHibernate.IQuery SetBoolean(string name, bool val); + NHibernate.IQuery SetByte(int position, byte val); + NHibernate.IQuery SetByte(string name, byte val); + NHibernate.IQuery SetCacheable(bool cacheable); + NHibernate.IQuery SetCacheMode(NHibernate.CacheMode cacheMode); + NHibernate.IQuery SetCacheRegion(string cacheRegion); + NHibernate.IQuery SetCharacter(int position, char val); + NHibernate.IQuery SetCharacter(string name, char val); + NHibernate.IQuery SetComment(string comment); + NHibernate.IQuery SetDateTime(int position, System.DateTime val); + NHibernate.IQuery SetDateTime(string name, System.DateTime val); + NHibernate.IQuery SetDateTime2(int position, System.DateTime val); + NHibernate.IQuery SetDateTime2(string name, System.DateTime val); + NHibernate.IQuery SetDateTimeNoMs(int position, System.DateTime val); + NHibernate.IQuery SetDateTimeNoMs(string name, System.DateTime val); + NHibernate.IQuery SetDateTimeOffset(int position, System.DateTimeOffset val); + NHibernate.IQuery SetDateTimeOffset(string name, System.DateTimeOffset val); + NHibernate.IQuery SetDecimal(int position, decimal val); + NHibernate.IQuery SetDecimal(string name, decimal val); + NHibernate.IQuery SetDouble(int position, double val); + NHibernate.IQuery SetDouble(string name, double val); + NHibernate.IQuery SetEntity(int position, object val); + NHibernate.IQuery SetEntity(string name, object val); + NHibernate.IQuery SetEnum(int position, System.Enum val); + NHibernate.IQuery SetEnum(string name, System.Enum val); + NHibernate.IQuery SetFetchSize(int fetchSize); + NHibernate.IQuery SetFirstResult(int firstResult); + NHibernate.IQuery SetFlushMode(NHibernate.FlushMode flushMode); + NHibernate.IQuery SetGuid(int position, System.Guid val); + NHibernate.IQuery SetGuid(string name, System.Guid val); + NHibernate.IQuery SetInt16(int position, short val); + NHibernate.IQuery SetInt16(string name, short val); + NHibernate.IQuery SetInt32(int position, int val); + NHibernate.IQuery SetInt32(string name, int val); + NHibernate.IQuery SetInt64(int position, long val); + NHibernate.IQuery SetInt64(string name, long val); + NHibernate.IQuery SetLockMode(string alias, NHibernate.LockMode lockMode); + NHibernate.IQuery SetMaxResults(int maxResults); + NHibernate.IQuery SetParameter(int position, object val, NHibernate.Type.IType type); + NHibernate.IQuery SetParameter(string name, object val, NHibernate.Type.IType type); + NHibernate.IQuery SetParameter(int position, T val); + NHibernate.IQuery SetParameter(string name, T val); + NHibernate.IQuery SetParameter(int position, object val); + NHibernate.IQuery SetParameter(string name, object val); + NHibernate.IQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type); + NHibernate.IQuery SetParameterList(string name, System.Collections.IEnumerable vals); + NHibernate.IQuery SetProperties(object obj); + NHibernate.IQuery SetReadOnly(bool readOnly); + NHibernate.IQuery SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer); + NHibernate.IQuery SetSingle(int position, float val); + NHibernate.IQuery SetSingle(string name, float val); + NHibernate.IQuery SetString(int position, string val); + NHibernate.IQuery SetString(string name, string val); + NHibernate.IQuery SetTime(int position, System.DateTime val); + NHibernate.IQuery SetTime(string name, System.DateTime val); + NHibernate.IQuery SetTimeAsTimeSpan(int position, System.TimeSpan val); + NHibernate.IQuery SetTimeAsTimeSpan(string name, System.TimeSpan val); + NHibernate.IQuery SetTimeout(int timeout); + NHibernate.IQuery SetTimeSpan(int position, System.TimeSpan val); + NHibernate.IQuery SetTimeSpan(string name, System.TimeSpan val); + NHibernate.IQuery SetTimestamp(int position, System.DateTime val); + NHibernate.IQuery SetTimestamp(string name, System.DateTime val); + object UniqueResult(); + T UniqueResult(); + System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface IQueryExpression + { + string Key { get; } + System.Collections.Generic.IList ParameterDescriptors { get; } + NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Translate(NHibernate.Engine.ISessionFactoryImplementor sessionFactory, bool filter); + System.Type Type { get; } + } + public interface IQueryOver : NHibernate.IQueryOver + { + NHibernate.IQueryOver Cacheable(); + NHibernate.IQueryOver CacheMode(NHibernate.CacheMode cacheMode); + NHibernate.IQueryOver CacheRegion(string cacheRegion); + NHibernate.IQueryOver ClearOrders(); + NHibernate.IQueryOver Clone(); + NHibernate.IFutureEnumerable Future(); + NHibernate.IFutureEnumerable Future(); + NHibernate.IFutureValue FutureValue(); + NHibernate.IFutureValue FutureValue(); + System.Collections.Generic.IList List(); + System.Collections.Generic.IList List(); + System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.IQueryOver ReadOnly(); + int RowCount(); + System.Threading.Tasks.Task RowCountAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + long RowCountInt64(); + System.Threading.Tasks.Task RowCountInt64Async(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + TRoot SingleOrDefault(); + U SingleOrDefault(); + System.Threading.Tasks.Task SingleOrDefaultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SingleOrDefaultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.IQueryOver Skip(int firstResult); + NHibernate.IQueryOver Take(int maxResults); + NHibernate.IQueryOver ToRowCountInt64Query(); + NHibernate.IQueryOver ToRowCountQuery(); + } + public interface IQueryOver + { + NHibernate.ICriteria RootCriteria { get; } + NHibernate.ICriteria UnderlyingCriteria { get; } + } + public interface IQueryOver : NHibernate.IQueryOver, NHibernate.IQueryOver + { + NHibernate.IQueryOver And(System.Linq.Expressions.Expression> expression); + NHibernate.IQueryOver And(System.Linq.Expressions.Expression> expression); + NHibernate.IQueryOver And(NHibernate.Criterion.ICriterion expression); + NHibernate.IQueryOver AndNot(System.Linq.Expressions.Expression> expression); + NHibernate.IQueryOver AndNot(System.Linq.Expressions.Expression> expression); + NHibernate.IQueryOver AndNot(NHibernate.Criterion.ICriterion expression); + NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder AndRestrictionOn(System.Linq.Expressions.Expression> expression); + NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder AndRestrictionOn(System.Linq.Expressions.Expression> expression); + NHibernate.Criterion.Lambda.IQueryOverFetchBuilder Fetch(System.Linq.Expressions.Expression> path); + NHibernate.Criterion.Lambda.IQueryOverJoinBuilder Full { get; } + NHibernate.Criterion.Lambda.IQueryOverJoinBuilder Inner { get; } + NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias); + NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias); + NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); + NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); + NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); + NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); + NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); + NHibernate.IQueryOver JoinAlias(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, NHibernate.SqlCommand.JoinType joinType); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, NHibernate.SqlCommand.JoinType joinType); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType); + NHibernate.IQueryOver JoinQueryOver(System.Linq.Expressions.Expression>> path, System.Linq.Expressions.Expression> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause); + NHibernate.Criterion.Lambda.IQueryOverJoinBuilder Left { get; } + NHibernate.Criterion.Lambda.IQueryOverLockBuilder Lock(); + NHibernate.Criterion.Lambda.IQueryOverLockBuilder Lock(System.Linq.Expressions.Expression> alias); + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder OrderBy(System.Linq.Expressions.Expression> path); + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder OrderBy(System.Linq.Expressions.Expression> path); + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder OrderBy(NHibernate.Criterion.IProjection projection); + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder OrderByAlias(System.Linq.Expressions.Expression> path); + NHibernate.Criterion.Lambda.IQueryOverJoinBuilder Right { get; } + NHibernate.IQueryOver Select(params System.Linq.Expressions.Expression>[] projections); + NHibernate.IQueryOver Select(params NHibernate.Criterion.IProjection[] projections); + NHibernate.IQueryOver SelectList(System.Func, NHibernate.Criterion.Lambda.QueryOverProjectionBuilder> list); + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder ThenBy(System.Linq.Expressions.Expression> path); + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder ThenBy(System.Linq.Expressions.Expression> path); + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder ThenBy(NHibernate.Criterion.IProjection projection); + NHibernate.Criterion.Lambda.IQueryOverOrderBuilder ThenByAlias(System.Linq.Expressions.Expression> path); + NHibernate.IQueryOver TransformUsing(NHibernate.Transform.IResultTransformer resultTransformer); + NHibernate.IQueryOver Where(System.Linq.Expressions.Expression> expression); + NHibernate.IQueryOver Where(System.Linq.Expressions.Expression> expression); + NHibernate.IQueryOver Where(NHibernate.Criterion.ICriterion expression); + NHibernate.IQueryOver WhereNot(System.Linq.Expressions.Expression> expression); + NHibernate.IQueryOver WhereNot(System.Linq.Expressions.Expression> expression); + NHibernate.IQueryOver WhereNot(NHibernate.Criterion.ICriterion expression); + NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder WhereRestrictionOn(System.Linq.Expressions.Expression> expression); + NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder WhereRestrictionOn(System.Linq.Expressions.Expression> expression); + NHibernate.Criterion.Lambda.IQueryOverSubqueryBuilder WithSubquery { get; } + } + public interface ISession : System.IDisposable + { + NHibernate.ITransaction BeginTransaction(); + NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel); + NHibernate.CacheMode CacheMode { get; set; } + void CancelQuery(); + void Clear(); + System.Data.Common.DbConnection Close(); + System.Data.Common.DbConnection Connection { get; } + bool Contains(object obj); + NHibernate.ICriteria CreateCriteria() where T : class; + NHibernate.ICriteria CreateCriteria(string alias) where T : class; + NHibernate.ICriteria CreateCriteria(System.Type persistentClass); + NHibernate.ICriteria CreateCriteria(System.Type persistentClass, string alias); + NHibernate.ICriteria CreateCriteria(string entityName); + NHibernate.ICriteria CreateCriteria(string entityName, string alias); + NHibernate.IQuery CreateFilter(object collection, string queryString); + System.Threading.Tasks.Task CreateFilterAsync(object collection, string queryString, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.IMultiCriteria CreateMultiCriteria(); + NHibernate.IMultiQuery CreateMultiQuery(); + NHibernate.IQuery CreateQuery(string queryString); + NHibernate.ISQLQuery CreateSQLQuery(string queryString); + bool DefaultReadOnly { get; set; } + void Delete(object obj); + void Delete(string entityName, object obj); + int Delete(string query); + int Delete(string query, object value, NHibernate.Type.IType type); + int Delete(string query, object[] values, NHibernate.Type.IType[] types); + System.Threading.Tasks.Task DeleteAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(string query, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(string query, object value, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(string query, object[] values, NHibernate.Type.IType[] types, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + void DisableFilter(string filterName); + System.Data.Common.DbConnection Disconnect(); + NHibernate.IFilter EnableFilter(string filterName); + void Evict(object obj); + System.Threading.Tasks.Task EvictAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + void Flush(); + System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.FlushMode FlushMode { get; set; } + object Get(System.Type clazz, object id); + object Get(System.Type clazz, object id, NHibernate.LockMode lockMode); + object Get(string entityName, object id); + T Get(object id); + T Get(object id, NHibernate.LockMode lockMode); + System.Threading.Tasks.Task GetAsync(System.Type clazz, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(System.Type clazz, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.LockMode GetCurrentLockMode(object obj); + NHibernate.IFilter GetEnabledFilter(string filterName); + string GetEntityName(object obj); + System.Threading.Tasks.Task GetEntityNameAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + object GetIdentifier(object obj); + NHibernate.IQuery GetNamedQuery(string queryName); + NHibernate.ISession GetSession(NHibernate.EntityMode entityMode); + NHibernate.Engine.ISessionImplementor GetSessionImplementation(); + bool IsConnected { get; } + bool IsDirty(); + System.Threading.Tasks.Task IsDirtyAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + bool IsOpen { get; } + bool IsReadOnly(object entityOrProxy); + void JoinTransaction(); + object Load(System.Type theType, object id, NHibernate.LockMode lockMode); + object Load(string entityName, object id, NHibernate.LockMode lockMode); + object Load(System.Type theType, object id); + T Load(object id, NHibernate.LockMode lockMode); + T Load(object id); + object Load(string entityName, object id); + void Load(object obj, object id); + System.Threading.Tasks.Task LoadAsync(System.Type theType, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task LoadAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task LoadAsync(System.Type theType, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task LoadAsync(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task LoadAsync(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task LoadAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task LoadAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + void Lock(object obj, NHibernate.LockMode lockMode); + void Lock(string entityName, object obj, NHibernate.LockMode lockMode); + System.Threading.Tasks.Task LockAsync(object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task LockAsync(string entityName, object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + object Merge(object obj); + object Merge(string entityName, object obj); + T Merge(T entity) where T : class; + T Merge(string entityName, T entity) where T : class; + System.Threading.Tasks.Task MergeAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task MergeAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task MergeAsync(T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class; + System.Threading.Tasks.Task MergeAsync(string entityName, T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class; + void Persist(object obj); + void Persist(string entityName, object obj); + System.Threading.Tasks.Task PersistAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Linq.IQueryable Query(); + System.Linq.IQueryable Query(string entityName); + NHibernate.IQueryOver QueryOver() where T : class; + NHibernate.IQueryOver QueryOver(System.Linq.Expressions.Expression> alias) where T : class; + NHibernate.IQueryOver QueryOver(string entityName) where T : class; + NHibernate.IQueryOver QueryOver(string entityName, System.Linq.Expressions.Expression> alias) where T : class; + void Reconnect(); + void Reconnect(System.Data.Common.DbConnection connection); + void Refresh(object obj); + void Refresh(object obj, NHibernate.LockMode lockMode); + System.Threading.Tasks.Task RefreshAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RefreshAsync(object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + void Replicate(object obj, NHibernate.ReplicationMode replicationMode); + void Replicate(string entityName, object obj, NHibernate.ReplicationMode replicationMode); + System.Threading.Tasks.Task ReplicateAsync(object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ReplicateAsync(string entityName, object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + object Save(object obj); + void Save(object obj, object id); + object Save(string entityName, object obj); + void Save(string entityName, object obj, object id); + System.Threading.Tasks.Task SaveAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SaveAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SaveAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SaveAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + void SaveOrUpdate(object obj); + void SaveOrUpdate(string entityName, object obj); + void SaveOrUpdate(string entityName, object obj, object id); + System.Threading.Tasks.Task SaveOrUpdateAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.ISessionFactory SessionFactory { get; } + NHibernate.ISharedSessionBuilder SessionWithOptions(); + NHibernate.ISession SetBatchSize(int batchSize); + void SetReadOnly(object entityOrProxy, bool readOnly); + NHibernate.Stat.ISessionStatistics Statistics { get; } + NHibernate.ITransaction Transaction { get; } + void Update(object obj); + void Update(object obj, object id); + void Update(string entityName, object obj); + void Update(string entityName, object obj, object id); + System.Threading.Tasks.Task UpdateAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UpdateAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface ISessionBuilder : NHibernate.ISessionBuilder + { + } + public interface ISessionBuilder where T : NHibernate.ISessionBuilder + { + T AutoClose(bool autoClose); + T AutoJoinTransaction(bool autoJoinTransaction); + T Connection(System.Data.Common.DbConnection connection); + T ConnectionReleaseMode(NHibernate.ConnectionReleaseMode connectionReleaseMode); + T FlushMode(NHibernate.FlushMode flushMode); + T Interceptor(NHibernate.IInterceptor interceptor); + T NoInterceptor(); + NHibernate.ISession OpenSession(); + } + public interface ISessionFactory : System.IDisposable + { + void Close(); + System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Collections.Generic.ICollection DefinedFilterNames { get; } + void Evict(System.Type persistentClass); + void Evict(System.Type persistentClass, object id); + System.Threading.Tasks.Task EvictAsync(System.Type persistentClass, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task EvictAsync(System.Type persistentClass, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + void EvictCollection(string roleName); + void EvictCollection(string roleName, object id); + System.Threading.Tasks.Task EvictCollectionAsync(string roleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task EvictCollectionAsync(string roleName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + void EvictEntity(string entityName); + void EvictEntity(string entityName, object id); + System.Threading.Tasks.Task EvictEntityAsync(string entityName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task EvictEntityAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + void EvictQueries(); + void EvictQueries(string cacheRegion); + System.Threading.Tasks.Task EvictQueriesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task EvictQueriesAsync(string cacheRegion, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Collections.Generic.IDictionary GetAllClassMetadata(); + System.Collections.Generic.IDictionary GetAllCollectionMetadata(); + NHibernate.Metadata.IClassMetadata GetClassMetadata(System.Type persistentClass); + NHibernate.Metadata.IClassMetadata GetClassMetadata(string entityName); + NHibernate.Metadata.ICollectionMetadata GetCollectionMetadata(string roleName); + NHibernate.ISession GetCurrentSession(); + NHibernate.Engine.FilterDefinition GetFilterDefinition(string filterName); + bool IsClosed { get; } + NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection); + NHibernate.ISession OpenSession(NHibernate.IInterceptor sessionLocalInterceptor); + NHibernate.ISession OpenSession(System.Data.Common.DbConnection conn, NHibernate.IInterceptor sessionLocalInterceptor); + NHibernate.ISession OpenSession(); + NHibernate.IStatelessSession OpenStatelessSession(); + NHibernate.IStatelessSession OpenStatelessSession(System.Data.Common.DbConnection connection); + NHibernate.Stat.IStatistics Statistics { get; } + NHibernate.ISessionBuilder WithOptions(); + NHibernate.IStatelessSessionBuilder WithStatelessOptions(); + } + public interface ISharedSessionBuilder : NHibernate.ISessionBuilder + { + NHibernate.ISharedSessionBuilder AutoClose(); + NHibernate.ISharedSessionBuilder AutoJoinTransaction(); + NHibernate.ISharedSessionBuilder Connection(); + NHibernate.ISharedSessionBuilder ConnectionReleaseMode(); + NHibernate.ISharedSessionBuilder FlushMode(); + NHibernate.ISharedSessionBuilder Interceptor(); + } + public interface ISharedStatelessSessionBuilder : NHibernate.IStatelessSessionBuilder + { + NHibernate.ISharedStatelessSessionBuilder AutoJoinTransaction(bool autoJoinTransaction); + NHibernate.ISharedStatelessSessionBuilder AutoJoinTransaction(); + NHibernate.ISharedStatelessSessionBuilder Connection(System.Data.Common.DbConnection connection); + NHibernate.ISharedStatelessSessionBuilder Connection(); + } + public interface ISQLQuery : NHibernate.IQuery + { + NHibernate.ISQLQuery AddEntity(string entityName); + NHibernate.ISQLQuery AddEntity(string alias, string entityName); + NHibernate.ISQLQuery AddEntity(string alias, string entityName, NHibernate.LockMode lockMode); + NHibernate.ISQLQuery AddEntity(System.Type entityClass); + NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass); + NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass, NHibernate.LockMode lockMode); + NHibernate.ISQLQuery AddJoin(string alias, string path); + NHibernate.ISQLQuery AddJoin(string alias, string path, NHibernate.LockMode lockMode); + NHibernate.ISQLQuery AddScalar(string columnAlias, NHibernate.Type.IType type); + NHibernate.ISQLQuery SetResultSetMapping(string name); + } + public interface IStatelessSession : System.IDisposable + { + NHibernate.ITransaction BeginTransaction(); + NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel); + void Close(); + System.Data.Common.DbConnection Connection { get; } + NHibernate.ICriteria CreateCriteria() where T : class; + NHibernate.ICriteria CreateCriteria(string alias) where T : class; + NHibernate.ICriteria CreateCriteria(System.Type entityType); + NHibernate.ICriteria CreateCriteria(System.Type entityType, string alias); + NHibernate.ICriteria CreateCriteria(string entityName); + NHibernate.ICriteria CreateCriteria(string entityName, string alias); + NHibernate.IQuery CreateQuery(string queryString); + NHibernate.ISQLQuery CreateSQLQuery(string queryString); + void Delete(object entity); + void Delete(string entityName, object entity); + System.Threading.Tasks.Task DeleteAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + object Get(string entityName, object id); + T Get(object id); + object Get(string entityName, object id, NHibernate.LockMode lockMode); + T Get(object id, NHibernate.LockMode lockMode); + System.Threading.Tasks.Task GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.IQuery GetNamedQuery(string queryName); + NHibernate.Engine.ISessionImplementor GetSessionImplementation(); + object Insert(object entity); + object Insert(string entityName, object entity); + System.Threading.Tasks.Task InsertAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task InsertAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + bool IsConnected { get; } + bool IsOpen { get; } + void JoinTransaction(); + System.Linq.IQueryable Query(); + System.Linq.IQueryable Query(string entityName); + NHibernate.IQueryOver QueryOver() where T : class; + NHibernate.IQueryOver QueryOver(System.Linq.Expressions.Expression> alias) where T : class; + void Refresh(object entity); + void Refresh(string entityName, object entity); + void Refresh(object entity, NHibernate.LockMode lockMode); + void Refresh(string entityName, object entity, NHibernate.LockMode lockMode); + System.Threading.Tasks.Task RefreshAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RefreshAsync(object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + NHibernate.IStatelessSession SetBatchSize(int batchSize); + NHibernate.ITransaction Transaction { get; } + void Update(object entity); + void Update(string entityName, object entity); + System.Threading.Tasks.Task UpdateAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UpdateAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface IStatelessSessionBuilder + { + NHibernate.IStatelessSessionBuilder AutoJoinTransaction(bool autoJoinTransaction); + NHibernate.IStatelessSessionBuilder Connection(System.Data.Common.DbConnection connection); + NHibernate.IStatelessSession OpenStatelessSession(); + } + public interface ISupportSelectModeCriteria + { + NHibernate.ICriteria Fetch(NHibernate.SelectMode selectMode, string associationPath, string alias); + } + public interface ISynchronizableQuery where T : NHibernate.ISynchronizableQuery + { + T AddSynchronizedEntityClass(System.Type entityType); + T AddSynchronizedEntityName(string entityName); + T AddSynchronizedQuerySpace(string querySpace); + System.Collections.Generic.IReadOnlyCollection GetSynchronizedQuerySpaces(); + } + public interface ISynchronizableSQLQuery : NHibernate.ISQLQuery, NHibernate.IQuery, NHibernate.ISynchronizableQuery + { + } + public interface ITransaction : System.IDisposable + { + void Begin(); + void Begin(System.Data.IsolationLevel isolationLevel); + void Commit(); + System.Threading.Tasks.Task CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + void Enlist(System.Data.Common.DbCommand command); + bool IsActive { get; } + void RegisterSynchronization(NHibernate.Transaction.ISynchronization synchronization); + void Rollback(); + System.Threading.Tasks.Task RollbackAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + bool WasCommitted { get; } + bool WasRolledBack { get; } + } + public class LazyInitializationException : NHibernate.HibernateException + { + public LazyInitializationException(string entityName, object entityId, string message) => throw null; + public LazyInitializationException(string message) => throw null; + public LazyInitializationException(System.Exception innerException) => throw null; + public LazyInitializationException(string message, System.Exception innerException) => throw null; + protected LazyInitializationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public object EntityId { get => throw null; } + public string EntityName { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } namespace Linq { - // Generated from `NHibernate.Linq.DefaultQueryProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DefaultQueryProvider : System.Linq.IQueryProvider, NHibernate.Linq.ISupportFutureBatchNhQueryProvider, NHibernate.Linq.IQueryProviderWithOptions, NHibernate.Linq.INhQueryProvider + namespace Clauses + { + public abstract class NhClauseBase + { + public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; + protected abstract void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index); + protected NhClauseBase() => throw null; + } + public class NhHavingClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause + { + protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; + Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public NHibernate.Linq.Clauses.NhHavingClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public NhHavingClause(System.Linq.Expressions.Expression predicate) => throw null; + public System.Linq.Expressions.Expression Predicate { get => throw null; set { } } + public override string ToString() => throw null; + public void TransformExpressions(System.Func transformation) => throw null; + } + public class NhJoinClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IFromClause, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IQuerySource, Remotion.Linq.Clauses.IBodyClause + { + protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; + Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public NHibernate.Linq.Clauses.NhJoinClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public void CopyFromSource(Remotion.Linq.Clauses.IFromClause source) => throw null; + public NhJoinClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression) => throw null; + public NhJoinClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression, System.Collections.Generic.IEnumerable restrictions) => throw null; + public System.Linq.Expressions.Expression FromExpression { get => throw null; set { } } + public bool IsInner { get => throw null; } + public string ItemName { get => throw null; set { } } + public System.Type ItemType { get => throw null; set { } } + public void MakeInner() => throw null; + public System.Collections.ObjectModel.ObservableCollection Restrictions { get => throw null; } + public override string ToString() => throw null; + public void TransformExpressions(System.Func transformation) => throw null; + } + public class NhOuterJoinClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IQuerySource + { + protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; + public Remotion.Linq.Clauses.IBodyClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public NhOuterJoinClause(Remotion.Linq.Clauses.JoinClause joinClause) => throw null; + public string ItemName { get => throw null; } + public System.Type ItemType { get => throw null; } + public Remotion.Linq.Clauses.JoinClause JoinClause { get => throw null; } + public void TransformExpressions(System.Func transformation) => throw null; + } + public class NhWithClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause + { + protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; + Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public NHibernate.Linq.Clauses.NhWithClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public NhWithClause(System.Linq.Expressions.Expression predicate) => throw null; + public System.Linq.Expressions.Expression Predicate { get => throw null; set { } } + public override string ToString() => throw null; + public void TransformExpressions(System.Func transformation) => throw null; + } + } + public class DefaultQueryProvider : NHibernate.Linq.INhQueryProvider, System.Linq.IQueryProvider, NHibernate.Linq.IQueryProviderWithOptions, NHibernate.Linq.ISupportFutureBatchNhQueryProvider { public object Collection { get => throw null; } - public virtual System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression) => throw null; public virtual System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression) => throw null; + public virtual System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression) => throw null; protected virtual System.Linq.IQueryProvider CreateWithOptions(NHibernate.Linq.NhQueryableOptions options) => throw null; - public DefaultQueryProvider(NHibernate.Engine.ISessionImplementor session, object collection) => throw null; public DefaultQueryProvider(NHibernate.Engine.ISessionImplementor session) => throw null; + public DefaultQueryProvider(NHibernate.Engine.ISessionImplementor session, object collection) => throw null; protected DefaultQueryProvider(NHibernate.Engine.ISessionImplementor session, object collection, NHibernate.Linq.NhQueryableOptions options) => throw null; public virtual object Execute(System.Linq.Expressions.Expression expression) => throw null; public TResult Execute(System.Linq.Expressions.Expression expression) => throw null; - public virtual System.Threading.Tasks.Task ExecuteAsync(System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task ExecuteAsync(System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken) => throw null; public int ExecuteDml(NHibernate.Linq.QueryMode queryMode, System.Linq.Expressions.Expression expression) => throw null; public System.Threading.Tasks.Task ExecuteDmlAsync(NHibernate.Linq.QueryMode queryMode, System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken) => throw null; public virtual NHibernate.IFutureEnumerable ExecuteFuture(System.Linq.Expressions.Expression expression) => throw null; @@ -19823,45 +16784,39 @@ namespace NHibernate public virtual System.Threading.Tasks.Task> ExecuteListAsync(System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual object ExecuteQuery(NHibernate.Linq.NhLinqExpression nhLinqExpression, NHibernate.IQuery query, NHibernate.Linq.NhLinqExpression nhQuery) => throw null; protected virtual object ExecuteQuery(NHibernate.Linq.NhLinqExpression nhLinqExpression, NHibernate.IQuery query) => throw null; - protected virtual System.Threading.Tasks.Task ExecuteQueryAsync(NHibernate.Linq.NhLinqExpression nhLinqExpression, NHibernate.IQuery query, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual System.Threading.Tasks.Task ExecuteQueryAsync(NHibernate.Linq.NhLinqExpression nhLinqExpression, NHibernate.IQuery query, NHibernate.Linq.NhLinqExpression nhQuery, System.Threading.CancellationToken cancellationToken) => throw null; + protected virtual System.Threading.Tasks.Task ExecuteQueryAsync(NHibernate.Linq.NhLinqExpression nhLinqExpression, NHibernate.IQuery query, System.Threading.CancellationToken cancellationToken) => throw null; public NHibernate.IQuery GetPreparedQuery(System.Linq.Expressions.Expression expression, out NHibernate.Linq.NhLinqExpression nhExpression) => throw null; protected virtual NHibernate.Linq.NhLinqExpression PrepareQuery(System.Linq.Expressions.Expression expression, out NHibernate.IQuery query) => throw null; public virtual NHibernate.Engine.ISessionImplementor Session { get => throw null; } public virtual void SetResultTransformerAndAdditionalCriteria(NHibernate.IQuery query, NHibernate.Linq.NhLinqExpression nhExpression, System.Collections.Generic.IDictionary> parameters) => throw null; public System.Linq.IQueryProvider WithOptions(System.Action setOptions) => throw null; } - - // Generated from `NHibernate.Linq.DmlExpressionRewriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DmlExpressionRewriter { - public static System.Linq.Expressions.Expression PrepareExpression(System.Linq.Expressions.Expression sourceExpression, System.Collections.Generic.IReadOnlyDictionary assignments) => throw null; public static System.Linq.Expressions.Expression PrepareExpression(System.Linq.Expressions.Expression sourceExpression, System.Linq.Expressions.Expression> expression) => throw null; + public static System.Linq.Expressions.Expression PrepareExpression(System.Linq.Expressions.Expression sourceExpression, System.Collections.Generic.IReadOnlyDictionary assignments) => throw null; public static System.Linq.Expressions.Expression PrepareExpressionFromAnonymous(System.Linq.Expressions.Expression sourceExpression, System.Linq.Expressions.Expression> expression) => throw null; } - - // Generated from `NHibernate.Linq.DmlExtensionMethods` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class DmlExtensionMethods { public static int Delete(this System.Linq.IQueryable source) => throw null; public static System.Threading.Tasks.Task DeleteAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static NHibernate.Linq.InsertBuilder InsertBuilder(this System.Linq.IQueryable source) => throw null; - public static int InsertInto(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression) => throw null; public static int InsertInto(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression) => throw null; - public static System.Threading.Tasks.Task InsertIntoAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static int InsertInto(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression) => throw null; public static System.Threading.Tasks.Task InsertIntoAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static int Update(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression) => throw null; + public static System.Threading.Tasks.Task InsertIntoAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static int Update(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression) => throw null; - public static System.Threading.Tasks.Task UpdateAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static int Update(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression) => throw null; public static System.Threading.Tasks.Task UpdateAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static NHibernate.Linq.UpdateBuilder UpdateBuilder(this System.Linq.IQueryable source) => throw null; - public static int UpdateVersioned(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression) => throw null; public static int UpdateVersioned(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression) => throw null; - public static System.Threading.Tasks.Task UpdateVersionedAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static int UpdateVersioned(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression) => throw null; public static System.Threading.Tasks.Task UpdateVersionedAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateVersionedAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - // Generated from `NHibernate.Linq.EagerFetchingExtensionMethods` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class EagerFetchingExtensionMethods { public static NHibernate.Linq.INhFetchRequest Fetch(this System.Linq.IQueryable query, System.Linq.Expressions.Expression> relatedObjectSelector) => throw null; @@ -19870,59 +16825,491 @@ namespace NHibernate public static NHibernate.Linq.INhFetchRequest ThenFetch(this NHibernate.Linq.INhFetchRequest query, System.Linq.Expressions.Expression> relatedObjectSelector) => throw null; public static NHibernate.Linq.INhFetchRequest ThenFetchMany(this NHibernate.Linq.INhFetchRequest query, System.Linq.Expressions.Expression>> relatedObjectSelector) => throw null; } - - // Generated from `NHibernate.Linq.EnumerableHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class EnumerableHelper { - public static System.Reflection.MethodInfo GetMethod(string name, System.Type[] parameterTypes, System.Type[] genericTypeParameters) => throw null; public static System.Reflection.MethodInfo GetMethod(string name, System.Type[] parameterTypes) => throw null; + public static System.Reflection.MethodInfo GetMethod(string name, System.Type[] parameterTypes, System.Type[] genericTypeParameters) => throw null; } - - // Generated from `NHibernate.Linq.ExpressionExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ExpressionExtensions + public static partial class ExpressionExtensions { public static bool IsGroupingElementOf(this Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression, Remotion.Linq.Clauses.ResultOperators.GroupResultOperator groupBy) => throw null; public static bool IsGroupingKey(this System.Linq.Expressions.MemberExpression expression) => throw null; public static bool IsGroupingKeyOf(this System.Linq.Expressions.MemberExpression expression, Remotion.Linq.Clauses.ResultOperators.GroupResultOperator groupBy) => throw null; } - - // Generated from `NHibernate.Linq.ExpressionToHqlTranslationResults` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace Expressions + { + public abstract class NhAggregatedExpression : NHibernate.Linq.Expressions.NhExpression + { + protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; + public virtual bool AllowsNullableReturnType { get => throw null; } + public abstract System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression); + protected NhAggregatedExpression(System.Linq.Expressions.Expression expression) => throw null; + protected NhAggregatedExpression(System.Linq.Expressions.Expression expression, System.Type type) => throw null; + public System.Linq.Expressions.Expression Expression { get => throw null; } + public override sealed System.Type Type { get => throw null; } + protected override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + } + public class NhAverageExpression : NHibernate.Linq.Expressions.NhAggregatedExpression + { + protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; + public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; + public NhAverageExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null; + } + public abstract class NhCountExpression : NHibernate.Linq.Expressions.NhAggregatedExpression + { + protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; + public override bool AllowsNullableReturnType { get => throw null; } + protected NhCountExpression(System.Linq.Expressions.Expression expression, System.Type type) : base(default(System.Linq.Expressions.Expression)) => throw null; + } + public class NhDistinctExpression : NHibernate.Linq.Expressions.NhAggregatedExpression + { + protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; + public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; + public NhDistinctExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null; + } + public abstract class NhExpression : System.Linq.Expressions.Expression + { + protected override sealed System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected abstract System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor); + protected NhExpression() => throw null; + public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + } + public class NhLongCountExpression : NHibernate.Linq.Expressions.NhCountExpression + { + public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; + public NhLongCountExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression), default(System.Type)) => throw null; + } + public class NhMaxExpression : NHibernate.Linq.Expressions.NhAggregatedExpression + { + protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; + public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; + public NhMaxExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null; + } + public class NhMinExpression : NHibernate.Linq.Expressions.NhAggregatedExpression + { + protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; + public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; + public NhMinExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null; + } + public class NhNewExpression : NHibernate.Linq.Expressions.NhExpression + { + protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; + public System.Collections.ObjectModel.ReadOnlyCollection Arguments { get => throw null; } + public NhNewExpression(System.Collections.Generic.IList members, System.Collections.Generic.IList arguments) => throw null; + public System.Collections.ObjectModel.ReadOnlyCollection Members { get => throw null; } + public override System.Type Type { get => throw null; } + protected override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + } + public class NhNominatedExpression : NHibernate.Linq.Expressions.NhExpression + { + protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; + public NhNominatedExpression(System.Linq.Expressions.Expression expression) => throw null; + public System.Linq.Expressions.Expression Expression { get => throw null; } + public override System.Type Type { get => throw null; } + protected override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + } + public class NhShortCountExpression : NHibernate.Linq.Expressions.NhCountExpression + { + public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; + public NhShortCountExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression), default(System.Type)) => throw null; + } + public class NhStarExpression : NHibernate.Linq.Expressions.NhExpression + { + protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; + public NhStarExpression(System.Linq.Expressions.Expression expression) => throw null; + public System.Linq.Expressions.Expression Expression { get => throw null; } + public override System.Type Type { get => throw null; } + protected override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + } + public class NhSumExpression : NHibernate.Linq.Expressions.NhAggregatedExpression + { + protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; + public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; + public NhSumExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null; + } + } public class ExpressionToHqlTranslationResults { public System.Collections.Generic.List>>> AdditionalCriteria { get => throw null; } - public System.Type ExecuteResultTypeOverride { get => throw null; } public ExpressionToHqlTranslationResults(NHibernate.Hql.Ast.HqlTreeNode statement, System.Collections.Generic.IList itemTransformers, System.Collections.Generic.IList listTransformers, System.Collections.Generic.IList postExecuteTransformers, System.Collections.Generic.List>>> additionalCriteria, System.Type executeResultTypeOverride) => throw null; + public System.Type ExecuteResultTypeOverride { get => throw null; } public System.Delegate PostExecuteTransformer { get => throw null; } public NHibernate.Linq.ResultTransformer ResultTransformer { get => throw null; } public NHibernate.Hql.Ast.HqlTreeNode Statement { get => throw null; } } - - // Generated from `NHibernate.Linq.IEntityNameProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - internal interface IEntityNameProvider + namespace ExpressionTransformers { - string EntityName { get; } + public class RemoveCharToIntConversion : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer + { + public RemoveCharToIntConversion() => throw null; + public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } + public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.BinaryExpression expression) => throw null; + } + public class RemoveRedundantCast : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer + { + public RemoveRedundantCast() => throw null; + public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } + public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.UnaryExpression expression) => throw null; + } } - - // Generated from `NHibernate.Linq.INhFetchRequest<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface INhFetchRequest : System.Linq.IQueryable, System.Linq.IQueryable, System.Linq.IOrderedQueryable, System.Linq.IOrderedQueryable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + namespace Functions + { + public class AllHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public AllHqlGenerator() => throw null; + } + public class AnyHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public AnyHqlGenerator() => throw null; + } + public abstract class BaseHqlGeneratorForMethod : NHibernate.Linq.Functions.IHqlGeneratorForMethod + { + public virtual bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; + public abstract NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor); + protected BaseHqlGeneratorForMethod() => throw null; + protected static NHibernate.INHibernateLogger Log; + public System.Collections.Generic.IEnumerable SupportedMethods { get => throw null; set { } } + public virtual bool TryGetCollectionParameter(System.Linq.Expressions.MethodCallExpression expression, out System.Linq.Expressions.ConstantExpression collectionParameter) => throw null; + } + public abstract class BaseHqlGeneratorForProperty : NHibernate.Linq.Functions.IHqlGeneratorForProperty + { + public abstract NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor); + protected BaseHqlGeneratorForProperty() => throw null; + public System.Collections.Generic.IEnumerable SupportedProperties { get => throw null; set { } } + } + public class CollectionContainsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public CollectionContainsGenerator() => throw null; + public override bool TryGetCollectionParameter(System.Linq.Expressions.MethodCallExpression expression, out System.Linq.Expressions.ConstantExpression collectionParameter) => throw null; + } + public class CollectionContainsRuntimeHqlGenerator : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator + { + public CollectionContainsRuntimeHqlGenerator() => throw null; + public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; + public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; + } + public class ContainsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public ContainsGenerator() => throw null; + } + public class ConvertToBooleanGenerator : NHibernate.Linq.Functions.ConvertToGenerator + { + public ConvertToBooleanGenerator() => throw null; + } + public class ConvertToDateTimeGenerator : NHibernate.Linq.Functions.ConvertToGenerator + { + public ConvertToDateTimeGenerator() => throw null; + } + public class ConvertToDecimalGenerator : NHibernate.Linq.Functions.ConvertToGenerator + { + public ConvertToDecimalGenerator() => throw null; + } + public class ConvertToDoubleGenerator : NHibernate.Linq.Functions.ConvertToGenerator + { + public ConvertToDoubleGenerator() => throw null; + } + public abstract class ConvertToGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + protected ConvertToGenerator() => throw null; + } + public class ConvertToInt32Generator : NHibernate.Linq.Functions.ConvertToGenerator + { + public ConvertToInt32Generator() => throw null; + } + public class DateTimeNowHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForProperty, NHibernate.Linq.Functions.IAllowPreEvaluationHqlGenerator + { + public bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public DateTimeNowHqlGenerator() => throw null; + public bool IgnoreInstance(System.Reflection.MemberInfo member) => throw null; + } + public class DateTimePropertiesHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForProperty + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public DateTimePropertiesHqlGenerator() => throw null; + } + public class DefaultLinqToHqlGeneratorsRegistry : NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry + { + public DefaultLinqToHqlGeneratorsRegistry() => throw null; + protected bool GetRuntimeMethodGenerator(System.Reflection.MethodInfo method, out NHibernate.Linq.Functions.IHqlGeneratorForMethod methodGenerator) => throw null; + public virtual void RegisterGenerator(System.Reflection.MethodInfo method, NHibernate.Linq.Functions.IHqlGeneratorForMethod generator) => throw null; + public virtual void RegisterGenerator(System.Reflection.MemberInfo property, NHibernate.Linq.Functions.IHqlGeneratorForProperty generator) => throw null; + public void RegisterGenerator(NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator generator) => throw null; + public virtual bool TryGetGenerator(System.Reflection.MethodInfo method, out NHibernate.Linq.Functions.IHqlGeneratorForMethod generator) => throw null; + public virtual bool TryGetGenerator(System.Reflection.MemberInfo property, out NHibernate.Linq.Functions.IHqlGeneratorForProperty generator) => throw null; + } + public class DictionaryContainsKeyGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public DictionaryContainsKeyGenerator() => throw null; + } + public class DictionaryContainsKeyRuntimeHqlGenerator : NHibernate.Linq.Functions.DictionaryRuntimeMethodHqlGeneratorBase + { + public DictionaryContainsKeyRuntimeHqlGenerator() => throw null; + protected override string MethodName { get => throw null; } + } + public class DictionaryItemGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public DictionaryItemGenerator() => throw null; + } + public class DictionaryItemRuntimeHqlGenerator : NHibernate.Linq.Functions.DictionaryRuntimeMethodHqlGeneratorBase + { + public DictionaryItemRuntimeHqlGenerator() => throw null; + protected override string MethodName { get => throw null; } + } + public abstract class DictionaryRuntimeMethodHqlGeneratorBase : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator where TGenerator : NHibernate.Linq.Functions.IHqlGeneratorForMethod, new() + { + protected DictionaryRuntimeMethodHqlGeneratorBase() => throw null; + public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; + protected abstract string MethodName { get; } + public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; + } + public class EndsWithGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public EndsWithGenerator() => throw null; + } + public class EqualsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public EqualsGenerator() => throw null; + } + public class GenericDictionaryContainsKeyRuntimeHqlGenerator : NHibernate.Linq.Functions.GenericDictionaryRuntimeMethodHqlGeneratorBase + { + public GenericDictionaryContainsKeyRuntimeHqlGenerator() => throw null; + protected override string MethodName { get => throw null; } + } + public class GenericDictionaryItemRuntimeHqlGenerator : NHibernate.Linq.Functions.GenericDictionaryRuntimeMethodHqlGeneratorBase + { + public GenericDictionaryItemRuntimeHqlGenerator() => throw null; + protected override string MethodName { get => throw null; } + } + public abstract class GenericDictionaryRuntimeMethodHqlGeneratorBase : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator where TGenerator : NHibernate.Linq.Functions.IHqlGeneratorForMethod, new() + { + protected GenericDictionaryRuntimeMethodHqlGeneratorBase() => throw null; + public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; + protected abstract string MethodName { get; } + public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; + } + public class GetCharsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public GetCharsGenerator() => throw null; + } + public class HqlGeneratorForExtensionMethod : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public HqlGeneratorForExtensionMethod(NHibernate.Linq.LinqExtensionMethodAttribute attribute, System.Reflection.MethodInfo method) => throw null; + } + public static partial class HqlGeneratorForPropertyExtensions + { + public static bool AllowPreEvaluation(this NHibernate.Linq.Functions.IHqlGeneratorForProperty generator, System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + } + public interface IAllowPreEvaluationHqlGenerator + { + bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory); + bool IgnoreInstance(System.Reflection.MemberInfo member); + } + public interface IHqlGeneratorForMethod + { + NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor); + System.Collections.Generic.IEnumerable SupportedMethods { get; } + } + public interface IHqlGeneratorForProperty + { + NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor); + System.Collections.Generic.IEnumerable SupportedProperties { get; } + } + public interface ILinqToHqlGeneratorsRegistry + { + void RegisterGenerator(System.Reflection.MethodInfo method, NHibernate.Linq.Functions.IHqlGeneratorForMethod generator); + void RegisterGenerator(System.Reflection.MemberInfo property, NHibernate.Linq.Functions.IHqlGeneratorForProperty generator); + void RegisterGenerator(NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator generator); + bool TryGetGenerator(System.Reflection.MethodInfo method, out NHibernate.Linq.Functions.IHqlGeneratorForMethod generator); + bool TryGetGenerator(System.Reflection.MemberInfo property, out NHibernate.Linq.Functions.IHqlGeneratorForProperty generator); + } + public class IndexOfGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public IndexOfGenerator() => throw null; + } + public interface IRuntimeMethodHqlGenerator + { + NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method); + bool SupportsMethod(System.Reflection.MethodInfo method); + } + public class LengthGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForProperty + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public LengthGenerator() => throw null; + } + public class LikeGenerator : NHibernate.Linq.Functions.IHqlGeneratorForMethod, NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator + { + public bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; + public NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public LikeGenerator() => throw null; + public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; + public System.Collections.Generic.IEnumerable SupportedMethods { get => throw null; } + public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; + public bool TryGetCollectionParameter(System.Linq.Expressions.MethodCallExpression expression, out System.Linq.Expressions.ConstantExpression collectionParameter) => throw null; + } + public static partial class LinqToHqlGeneratorsRegistryExtensions + { + public static void Merge(this NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry registry, NHibernate.Linq.Functions.IHqlGeneratorForMethod generator) => throw null; + public static void Merge(this NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry registry, NHibernate.Linq.Functions.IHqlGeneratorForProperty generator) => throw null; + } + public sealed class LinqToHqlGeneratorsRegistryFactory + { + public static NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry CreateGeneratorsRegistry(System.Collections.Generic.IDictionary properties) => throw null; + public LinqToHqlGeneratorsRegistryFactory() => throw null; + } + public class MathGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression expression, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public MathGenerator() => throw null; + } + public class MaxHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public MaxHqlGenerator() => throw null; + } + public class MinHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public MinHqlGenerator() => throw null; + } + public class NewGuidHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod, NHibernate.Linq.Functions.IAllowPreEvaluationHqlGenerator + { + public bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public NewGuidHqlGenerator() => throw null; + public bool IgnoreInstance(System.Reflection.MemberInfo member) => throw null; + } + public class RandomHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod, NHibernate.Linq.Functions.IAllowPreEvaluationHqlGenerator + { + public bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public RandomHqlGenerator() => throw null; + public bool IgnoreInstance(System.Reflection.MemberInfo member) => throw null; + } + public class ReplaceGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public ReplaceGenerator() => throw null; + } + public class StandardLinqExtensionMethodGenerator : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator + { + public StandardLinqExtensionMethodGenerator() => throw null; + public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; + public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; + } + public class StartsWithGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public StartsWithGenerator() => throw null; + } + public class SubStringGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public SubStringGenerator() => throw null; + } + public class ToLowerGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public ToLowerGenerator() => throw null; + } + public class ToStringHqlGeneratorForMethod : NHibernate.Linq.Functions.IHqlGeneratorForMethod + { + public NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public ToStringHqlGeneratorForMethod() => throw null; + public System.Collections.Generic.IEnumerable SupportedMethods { get => throw null; } + } + public class ToStringRuntimeMethodHqlGenerator : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator + { + public ToStringRuntimeMethodHqlGenerator() => throw null; + public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; + public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; + } + public class ToUpperGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public ToUpperGenerator() => throw null; + } + public class TrimGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod + { + public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; + public TrimGenerator() => throw null; + } + } + namespace GroupBy + { + public static class AggregatingGroupByRewriter + { + public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null; + } + public class ClientSideSelect : NHibernate.Linq.ResultOperators.ClientSideTransformOperator + { + public ClientSideSelect(System.Linq.Expressions.LambdaExpression selectClause) => throw null; + public System.Linq.Expressions.LambdaExpression SelectClause { get => throw null; } + } + public class ClientSideSelect2 : NHibernate.Linq.ResultOperators.ClientSideTransformOperator + { + public ClientSideSelect2(System.Linq.Expressions.LambdaExpression selectClause) => throw null; + public System.Linq.Expressions.LambdaExpression SelectClause { get => throw null; } + } + public static class NonAggregatingGroupByRewriter + { + public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null; + } + } + namespace GroupJoin + { + public static class AggregatingGroupJoinRewriter + { + public static void ReWrite(Remotion.Linq.QueryModel model) => throw null; + } + public class GroupJoinSelectClauseRewriter : Remotion.Linq.Parsing.RelinqExpressionVisitor + { + public static System.Linq.Expressions.Expression ReWrite(System.Linq.Expressions.Expression expression, NHibernate.Linq.GroupJoin.IsAggregatingResults results) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + } + public class IsAggregatingResults + { + public System.Collections.Generic.List AggregatingClauses { get => throw null; set { } } + public IsAggregatingResults() => throw null; + public System.Collections.Generic.List NonAggregatingClauses { get => throw null; set { } } + public System.Collections.Generic.List NonAggregatingExpressions { get => throw null; set { } } + } + public class LocateGroupJoinQuerySource : Remotion.Linq.Parsing.RelinqExpressionVisitor + { + public LocateGroupJoinQuerySource(NHibernate.Linq.GroupJoin.IsAggregatingResults results) => throw null; + public Remotion.Linq.Clauses.GroupJoinClause Detect(System.Linq.Expressions.Expression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; + } + } + public interface INhFetchRequest : System.Linq.IOrderedQueryable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IQueryable { } - - // Generated from `NHibernate.Linq.INhQueryModelVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface INhQueryModelVisitor : Remotion.Linq.IQueryModelVisitor { void VisitNhHavingClause(NHibernate.Linq.Clauses.NhHavingClause nhWhereClause, Remotion.Linq.QueryModel queryModel, int index); void VisitNhJoinClause(NHibernate.Linq.Clauses.NhJoinClause nhJoinClause, Remotion.Linq.QueryModel queryModel, int index); void VisitNhWithClause(NHibernate.Linq.Clauses.NhWithClause nhWhereClause, Remotion.Linq.QueryModel queryModel, int index); } - - // Generated from `NHibernate.Linq.INhQueryModelVisitorExtended` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - internal interface INhQueryModelVisitorExtended : Remotion.Linq.IQueryModelVisitor, NHibernate.Linq.INhQueryModelVisitor - { - void VisitNhOuterJoinClause(NHibernate.Linq.Clauses.NhOuterJoinClause nhOuterJoinClause, Remotion.Linq.QueryModel queryModel, int index); - } - - // Generated from `NHibernate.Linq.INhQueryProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface INhQueryProvider : System.Linq.IQueryProvider { System.Threading.Tasks.Task ExecuteAsync(System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken); @@ -19932,45 +17319,17 @@ namespace NHibernate NHibernate.IFutureValue ExecuteFutureValue(System.Linq.Expressions.Expression expression); void SetResultTransformerAndAdditionalCriteria(NHibernate.IQuery query, NHibernate.Linq.NhLinqExpression nhExpression, System.Collections.Generic.IDictionary> parameters); } - - // Generated from `NHibernate.Linq.IQueryProviderWithOptions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryProviderWithOptions : System.Linq.IQueryProvider - { - System.Linq.IQueryProvider WithOptions(System.Action setOptions); - } - - // Generated from `NHibernate.Linq.IQueryableOptions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryableOptions - { - NHibernate.Linq.IQueryableOptions SetCacheMode(NHibernate.CacheMode cacheMode); - NHibernate.Linq.IQueryableOptions SetCacheRegion(string cacheRegion); - NHibernate.Linq.IQueryableOptions SetCacheable(bool cacheable); - NHibernate.Linq.IQueryableOptions SetTimeout(int timeout); - } - - // Generated from `NHibernate.Linq.ISupportFutureBatchNhQueryProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISupportFutureBatchNhQueryProvider - { - NHibernate.IQuery GetPreparedQuery(System.Linq.Expressions.Expression expression, out NHibernate.Linq.NhLinqExpression nhExpression); - NHibernate.Engine.ISessionImplementor Session { get; } - } - - // Generated from `NHibernate.Linq.InsertBuilder<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InsertBuilder { public int Insert() => throw null; public System.Threading.Tasks.Task InsertAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public NHibernate.Linq.InsertBuilder Value(System.Linq.Expressions.Expression> property, TProp value) => throw null; public NHibernate.Linq.InsertBuilder Value(System.Linq.Expressions.Expression> property, System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Linq.InsertBuilder Value(System.Linq.Expressions.Expression> property, TProp value) => throw null; } - - // Generated from `NHibernate.Linq.InsertBuilder<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InsertBuilder { public NHibernate.Linq.InsertBuilder Into() => throw null; } - - // Generated from `NHibernate.Linq.IntermediateHqlTree` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class IntermediateHqlTree { public void AddAdditionalCriteria(System.Action>> criteria) => throw null; @@ -19989,61 +17348,71 @@ namespace NHibernate public void AddSkipClause(NHibernate.Hql.Ast.HqlExpression toSkip) => throw null; public void AddTakeClause(NHibernate.Hql.Ast.HqlExpression toTake) => throw null; public void AddWhereClause(NHibernate.Hql.Ast.HqlBooleanExpression where) => throw null; - public System.Type ExecuteResultTypeOverride { get => throw null; set => throw null; } - public NHibernate.Linq.ExpressionToHqlTranslationResults GetTranslation() => throw null; public IntermediateHqlTree(bool root, NHibernate.Linq.QueryMode mode) => throw null; + public System.Type ExecuteResultTypeOverride { get => throw null; set { } } + public NHibernate.Linq.ExpressionToHqlTranslationResults GetTranslation() => throw null; public bool IsRoot { get => throw null; } public NHibernate.Hql.Ast.HqlTreeNode Root { get => throw null; } public void SetRoot(NHibernate.Hql.Ast.HqlTreeNode newRoot) => throw null; public NHibernate.Hql.Ast.HqlTreeBuilder TreeBuilder { get => throw null; } } - - // Generated from `NHibernate.Linq.LinqExtensionMethodAttribute` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public interface IQueryableOptions + { + NHibernate.Linq.IQueryableOptions SetCacheable(bool cacheable); + NHibernate.Linq.IQueryableOptions SetCacheMode(NHibernate.CacheMode cacheMode); + NHibernate.Linq.IQueryableOptions SetCacheRegion(string cacheRegion); + NHibernate.Linq.IQueryableOptions SetTimeout(int timeout); + } + public interface IQueryProviderWithOptions : System.Linq.IQueryProvider + { + System.Linq.IQueryProvider WithOptions(System.Action setOptions); + } + public interface ISupportFutureBatchNhQueryProvider + { + NHibernate.IQuery GetPreparedQuery(System.Linq.Expressions.Expression expression, out NHibernate.Linq.NhLinqExpression nhExpression); + NHibernate.Engine.ISessionImplementor Session { get; } + } public class LinqExtensionMethodAttribute : NHibernate.Linq.LinqExtensionMethodAttributeBase { - public LinqExtensionMethodAttribute(string name, NHibernate.Linq.LinqExtensionPreEvaluation preEvaluation) : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null; + public LinqExtensionMethodAttribute() : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null; public LinqExtensionMethodAttribute(string name) : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null; public LinqExtensionMethodAttribute(NHibernate.Linq.LinqExtensionPreEvaluation preEvaluation) : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null; - public LinqExtensionMethodAttribute() : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null; + public LinqExtensionMethodAttribute(string name, NHibernate.Linq.LinqExtensionPreEvaluation preEvaluation) : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null; public string Name { get => throw null; } } - - // Generated from `NHibernate.Linq.LinqExtensionMethodAttributeBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class LinqExtensionMethodAttributeBase : System.Attribute { protected LinqExtensionMethodAttributeBase(NHibernate.Linq.LinqExtensionPreEvaluation preEvaluation) => throw null; public NHibernate.Linq.LinqExtensionPreEvaluation PreEvaluation { get => throw null; } } - - // Generated from `NHibernate.Linq.LinqExtensionMethods` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class LinqExtensionMethods { public static System.Threading.Tasks.Task AllAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task AnyAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task AnyAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AverageAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Linq.IQueryable Cacheable(this System.Linq.IQueryable query) => throw null; public static System.Linq.IQueryable CacheMode(this System.Linq.IQueryable query, NHibernate.CacheMode cacheMode) => throw null; public static System.Linq.IQueryable CacheRegion(this System.Linq.IQueryable query, string region) => throw null; - public static System.Linq.IQueryable Cacheable(this System.Linq.IQueryable query) => throw null; public static System.Threading.Tasks.Task CountAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task CountAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task FirstAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; @@ -20051,8 +17420,8 @@ namespace NHibernate public static System.Threading.Tasks.Task FirstOrDefaultAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task FirstOrDefaultAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Linq.IQueryable LeftJoin(this System.Linq.IQueryable outer, System.Linq.IQueryable inner, System.Linq.Expressions.Expression> outerKeySelector, System.Linq.Expressions.Expression> innerKeySelector, System.Linq.Expressions.Expression> resultSelector) => throw null; - public static System.Threading.Tasks.Task LongCountAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task LongCountAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task LongCountAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task LongCountAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static T MappedAs(this T parameter, NHibernate.Type.IType type) => throw null; public static System.Threading.Tasks.Task MaxAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task MaxAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; @@ -20063,26 +17432,26 @@ namespace NHibernate public static System.Threading.Tasks.Task SingleAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task SingleOrDefaultAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task SingleOrDefaultAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SumAsync(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Linq.IQueryable Timeout(this System.Linq.IQueryable query, int timeout) => throw null; public static NHibernate.IFutureEnumerable ToFuture(this System.Linq.IQueryable source) => throw null; public static NHibernate.IFutureValue ToFutureValue(this System.Linq.IQueryable source) => throw null; @@ -20092,130 +17461,104 @@ namespace NHibernate public static System.Collections.Generic.IEnumerable WithLock(this System.Collections.Generic.IEnumerable query, NHibernate.LockMode lockMode) => throw null; public static System.Linq.IQueryable WithOptions(this System.Linq.IQueryable query, System.Action setOptions) => throw null; } - - // Generated from `NHibernate.Linq.LinqExtensionPreEvaluation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum LinqExtensionPreEvaluation { - AllowPreEvaluation, - NoEvaluation, + NoEvaluation = 0, + AllowPreEvaluation = 1, } - - // Generated from `NHibernate.Linq.NHibernateNodeTypeProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NHibernateNodeTypeProvider : Remotion.Linq.Parsing.Structure.INodeTypeProvider - { - public System.Type GetNodeType(System.Reflection.MethodInfo method) => throw null; - public bool IsRegistered(System.Reflection.MethodInfo method) => throw null; - public NHibernateNodeTypeProvider() => throw null; - } - - // Generated from `NHibernate.Linq.NhFetchRequest<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhFetchRequest : Remotion.Linq.QueryableBase, System.Linq.IQueryable, System.Linq.IQueryable, System.Linq.IOrderedQueryable, System.Linq.IOrderedQueryable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, NHibernate.Linq.INhFetchRequest + public class NhFetchRequest : Remotion.Linq.QueryableBase, NHibernate.Linq.INhFetchRequest, System.Linq.IOrderedQueryable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IQueryable { public NhFetchRequest(System.Linq.IQueryProvider provider, System.Linq.Expressions.Expression expression) : base(default(System.Linq.IQueryProvider)) => throw null; } - - // Generated from `NHibernate.Linq.NhLinqDmlExpression<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class NHibernateNodeTypeProvider : Remotion.Linq.Parsing.Structure.INodeTypeProvider + { + public NHibernateNodeTypeProvider() => throw null; + public System.Type GetNodeType(System.Reflection.MethodInfo method) => throw null; + public bool IsRegistered(System.Reflection.MethodInfo method) => throw null; + } public class NhLinqDmlExpression : NHibernate.Linq.NhLinqExpression { public NhLinqDmlExpression(NHibernate.Linq.QueryMode queryMode, System.Linq.Expressions.Expression expression, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) : base(default(System.Linq.Expressions.Expression), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; protected override System.Type TargetType { get => throw null; } } - - // Generated from `NHibernate.Linq.NhLinqExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NhLinqExpression : NHibernate.IQueryExpression { - public bool CanCachePlan { get => throw null; set => throw null; } - public NHibernate.Linq.ExpressionToHqlTranslationResults ExpressionToHqlTranslationResults { get => throw null; set => throw null; } - public string Key { get => throw null; set => throw null; } + public bool CanCachePlan { get => throw null; } public NhLinqExpression(System.Linq.Expressions.Expression expression, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; - public System.Collections.Generic.IList ParameterDescriptors { get => throw null; set => throw null; } + public NHibernate.Linq.ExpressionToHqlTranslationResults ExpressionToHqlTranslationResults { get => throw null; } + public string Key { get => throw null; set { } } + public System.Collections.Generic.IList ParameterDescriptors { get => throw null; } public System.Collections.Generic.IDictionary> ParameterValuesByName { get => throw null; } protected virtual NHibernate.Linq.QueryMode QueryMode { get => throw null; } public NHibernate.Linq.NhLinqExpressionReturnType ReturnType { get => throw null; } protected virtual System.Type TargetType { get => throw null; } public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Translate(NHibernate.Engine.ISessionFactoryImplementor sessionFactory, bool filter) => throw null; - public System.Type Type { get => throw null; set => throw null; } + public System.Type Type { get => throw null; } } - - // Generated from `NHibernate.Linq.NhLinqExpressionReturnType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum NhLinqExpressionReturnType { - Scalar, - Sequence, + Sequence = 0, + Scalar = 1, } - - // Generated from `NHibernate.Linq.NhQueryable<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhQueryable : Remotion.Linq.QueryableBase, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + public class NhQueryable : Remotion.Linq.QueryableBase, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - public string EntityName { get => throw null; set => throw null; } - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - public NhQueryable(System.Linq.IQueryProvider provider, System.Linq.Expressions.Expression expression, string entityName) : base(default(System.Linq.IQueryProvider)) => throw null; - public NhQueryable(System.Linq.IQueryProvider provider, System.Linq.Expressions.Expression expression) : base(default(System.Linq.IQueryProvider)) => throw null; - public NhQueryable(NHibernate.Engine.ISessionImplementor session, string entityName) : base(default(System.Linq.IQueryProvider)) => throw null; - public NhQueryable(NHibernate.Engine.ISessionImplementor session, object collection) : base(default(System.Linq.IQueryProvider)) => throw null; public NhQueryable(NHibernate.Engine.ISessionImplementor session) : base(default(System.Linq.IQueryProvider)) => throw null; + public NhQueryable(NHibernate.Engine.ISessionImplementor session, string entityName) : base(default(System.Linq.IQueryProvider)) => throw null; + public NhQueryable(System.Linq.IQueryProvider provider, System.Linq.Expressions.Expression expression) : base(default(System.Linq.IQueryProvider)) => throw null; + public NhQueryable(System.Linq.IQueryProvider provider, System.Linq.Expressions.Expression expression, string entityName) : base(default(System.Linq.IQueryProvider)) => throw null; + public NhQueryable(NHibernate.Engine.ISessionImplementor session, object collection) : base(default(System.Linq.IQueryProvider)) => throw null; + public string EntityName { get => throw null; } + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Linq.NhQueryableOptions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NhQueryableOptions : NHibernate.Linq.IQueryableOptions { - protected internal void Apply(NHibernate.IQuery query) => throw null; - protected NHibernate.CacheMode? CacheMode { get => throw null; set => throw null; } - protected string CacheRegion { get => throw null; set => throw null; } - protected bool? Cacheable { get => throw null; set => throw null; } - protected internal NHibernate.Linq.NhQueryableOptions Clone() => throw null; - protected string Comment { get => throw null; set => throw null; } - protected NHibernate.FlushMode? FlushMode { get => throw null; set => throw null; } + protected void Apply(NHibernate.IQuery query) => throw null; + protected bool? Cacheable { get => throw null; } + protected NHibernate.CacheMode? CacheMode { get => throw null; } + protected string CacheRegion { get => throw null; } + protected NHibernate.Linq.NhQueryableOptions Clone() => throw null; + protected string Comment { get => throw null; } public NhQueryableOptions() => throw null; - protected bool? ReadOnly { get => throw null; set => throw null; } - public NHibernate.Linq.NhQueryableOptions SetCacheMode(NHibernate.CacheMode cacheMode) => throw null; - NHibernate.Linq.IQueryableOptions NHibernate.Linq.IQueryableOptions.SetCacheMode(NHibernate.CacheMode cacheMode) => throw null; - public NHibernate.Linq.NhQueryableOptions SetCacheRegion(string cacheRegion) => throw null; - NHibernate.Linq.IQueryableOptions NHibernate.Linq.IQueryableOptions.SetCacheRegion(string cacheRegion) => throw null; - public NHibernate.Linq.NhQueryableOptions SetCacheable(bool cacheable) => throw null; + protected NHibernate.FlushMode? FlushMode { get => throw null; } + protected bool? ReadOnly { get => throw null; } NHibernate.Linq.IQueryableOptions NHibernate.Linq.IQueryableOptions.SetCacheable(bool cacheable) => throw null; + public NHibernate.Linq.NhQueryableOptions SetCacheable(bool cacheable) => throw null; + NHibernate.Linq.IQueryableOptions NHibernate.Linq.IQueryableOptions.SetCacheMode(NHibernate.CacheMode cacheMode) => throw null; + public NHibernate.Linq.NhQueryableOptions SetCacheMode(NHibernate.CacheMode cacheMode) => throw null; + NHibernate.Linq.IQueryableOptions NHibernate.Linq.IQueryableOptions.SetCacheRegion(string cacheRegion) => throw null; + public NHibernate.Linq.NhQueryableOptions SetCacheRegion(string cacheRegion) => throw null; public NHibernate.Linq.NhQueryableOptions SetComment(string comment) => throw null; public NHibernate.Linq.NhQueryableOptions SetFlushMode(NHibernate.FlushMode flushMode) => throw null; public NHibernate.Linq.NhQueryableOptions SetReadOnly(bool readOnly) => throw null; - public NHibernate.Linq.NhQueryableOptions SetTimeout(int timeout) => throw null; NHibernate.Linq.IQueryableOptions NHibernate.Linq.IQueryableOptions.SetTimeout(int timeout) => throw null; - protected int? Timeout { get => throw null; set => throw null; } + public NHibernate.Linq.NhQueryableOptions SetTimeout(int timeout) => throw null; + protected int? Timeout { get => throw null; } } - - // Generated from `NHibernate.Linq.NhRelinqQueryParser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class NhRelinqQueryParser { public static Remotion.Linq.QueryModel Parse(System.Linq.Expressions.Expression expression) => throw null; public static System.Linq.Expressions.Expression PreTransform(System.Linq.Expressions.Expression expression) => throw null; public static NHibernate.Linq.Visitors.PreTransformationResult PreTransform(System.Linq.Expressions.Expression expression, NHibernate.Linq.Visitors.PreTransformationParameters parameters) => throw null; } - - // Generated from `NHibernate.Linq.NoPreEvaluationAttribute` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NoPreEvaluationAttribute : NHibernate.Linq.LinqExtensionMethodAttributeBase { public NoPreEvaluationAttribute() : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null; } - - // Generated from `NHibernate.Linq.QueryMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum QueryMode { - Delete, - Insert, - Select, - Update, - UpdateVersioned, + Select = 0, + Delete = 1, + Update = 2, + UpdateVersioned = 3, + Insert = 4, } - - // Generated from `NHibernate.Linq.QuerySourceNamer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QuerySourceNamer { public void Add(Remotion.Linq.Clauses.IQuerySource querySource) => throw null; - public string GetName(Remotion.Linq.Clauses.IQuerySource querySource) => throw null; public QuerySourceNamer() => throw null; + public string GetName(Remotion.Linq.Clauses.IQuerySource querySource) => throw null; } - - // Generated from `NHibernate.Linq.ReflectionHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ReflectionHelper { public static System.Reflection.MethodInfo GetMethod(System.Linq.Expressions.Expression> method) => throw null; @@ -20224,721 +17567,35 @@ namespace NHibernate public static System.Reflection.MethodInfo GetMethodDefinition(System.Linq.Expressions.Expression method) => throw null; public static System.Reflection.MemberInfo GetProperty(System.Linq.Expressions.Expression> property) => throw null; } - - // Generated from `NHibernate.Linq.ResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ResultTransformer : System.IEquatable, NHibernate.Transform.IResultTransformer + namespace ResultOperators + { + public class ClientSideTransformOperator : Remotion.Linq.Clauses.ResultOperatorBase + { + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public ClientSideTransformOperator() => throw null; + public override Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData input) => throw null; + public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + } + public class NonAggregatingGroupBy : NHibernate.Linq.ResultOperators.ClientSideTransformOperator + { + public NonAggregatingGroupBy(Remotion.Linq.Clauses.ResultOperators.GroupResultOperator groupBy) => throw null; + public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public Remotion.Linq.Clauses.ResultOperators.GroupResultOperator GroupBy { get => throw null; } + } + } + public class ResultTransformer : NHibernate.Transform.IResultTransformer, System.IEquatable { - public override bool Equals(object obj) => throw null; - public bool Equals(NHibernate.Linq.ResultTransformer other) => throw null; - public override int GetHashCode() => throw null; public ResultTransformer(System.Func itemTransformation, System.Func, object> listTransformation) => throw null; + public bool Equals(NHibernate.Linq.ResultTransformer other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; public System.Collections.IList TransformList(System.Collections.IList collection) => throw null; public object TransformTuple(object[] tuple, string[] aliases) => throw null; } - - // Generated from `NHibernate.Linq.SqlMethods` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class SqlMethods - { - public static bool Like(this string matchExpression, string sqlLikePattern, System.Char escapeCharacter) => throw null; - public static bool Like(this string matchExpression, string sqlLikePattern) => throw null; - } - - // Generated from `NHibernate.Linq.UpdateBuilder<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UpdateBuilder - { - public NHibernate.Linq.UpdateBuilder Set(System.Linq.Expressions.Expression> property, TProp value) => throw null; - public NHibernate.Linq.UpdateBuilder Set(System.Linq.Expressions.Expression> property, System.Linq.Expressions.Expression> expression) => throw null; - public int Update() => throw null; - public System.Threading.Tasks.Task UpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public int UpdateVersioned() => throw null; - public System.Threading.Tasks.Task UpdateVersionedAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - } - - namespace Clauses - { - // Generated from `NHibernate.Linq.Clauses.NhClauseBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class NhClauseBase - { - public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; - protected abstract void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index); - protected NhClauseBase() => throw null; - } - - // Generated from `NHibernate.Linq.Clauses.NhHavingClause` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhHavingClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IBodyClause - { - protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; - public NHibernate.Linq.Clauses.NhHavingClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public NhHavingClause(System.Linq.Expressions.Expression predicate) => throw null; - public System.Linq.Expressions.Expression Predicate { get => throw null; set => throw null; } - public override string ToString() => throw null; - public void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `NHibernate.Linq.Clauses.NhJoinClause` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhJoinClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IQuerySource, Remotion.Linq.Clauses.IFromClause, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IBodyClause - { - protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; - public NHibernate.Linq.Clauses.NhJoinClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public void CopyFromSource(Remotion.Linq.Clauses.IFromClause source) => throw null; - public System.Linq.Expressions.Expression FromExpression { get => throw null; set => throw null; } - public bool IsInner { get => throw null; set => throw null; } - public string ItemName { get => throw null; set => throw null; } - public System.Type ItemType { get => throw null; set => throw null; } - public void MakeInner() => throw null; - public NhJoinClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression, System.Collections.Generic.IEnumerable restrictions) => throw null; - public NhJoinClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression) => throw null; - public System.Collections.ObjectModel.ObservableCollection Restrictions { get => throw null; } - public override string ToString() => throw null; - public void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `NHibernate.Linq.Clauses.NhOuterJoinClause` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhOuterJoinClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IQuerySource, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IBodyClause - { - protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; - public Remotion.Linq.Clauses.IBodyClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public string ItemName { get => throw null; } - public System.Type ItemType { get => throw null; } - public Remotion.Linq.Clauses.JoinClause JoinClause { get => throw null; } - public NhOuterJoinClause(Remotion.Linq.Clauses.JoinClause joinClause) => throw null; - public void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `NHibernate.Linq.Clauses.NhWithClause` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhWithClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IBodyClause - { - protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; - public NHibernate.Linq.Clauses.NhWithClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public NhWithClause(System.Linq.Expressions.Expression predicate) => throw null; - public System.Linq.Expressions.Expression Predicate { get => throw null; set => throw null; } - public override string ToString() => throw null; - public void TransformExpressions(System.Func transformation) => throw null; - } - - } - namespace ExpressionTransformers - { - // Generated from `NHibernate.Linq.ExpressionTransformers.RemoveCharToIntConversion` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class RemoveCharToIntConversion : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer - { - public RemoveCharToIntConversion() => throw null; - public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } - public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.BinaryExpression expression) => throw null; - } - - // Generated from `NHibernate.Linq.ExpressionTransformers.RemoveRedundantCast` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class RemoveRedundantCast : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer - { - public RemoveRedundantCast() => throw null; - public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } - public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.UnaryExpression expression) => throw null; - } - - } - namespace Expressions - { - // Generated from `NHibernate.Linq.Expressions.NhAggregatedExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class NhAggregatedExpression : NHibernate.Linq.Expressions.NhExpression - { - protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; - public virtual bool AllowsNullableReturnType { get => throw null; } - public abstract System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression); - public System.Linq.Expressions.Expression Expression { get => throw null; } - protected NhAggregatedExpression(System.Linq.Expressions.Expression expression, System.Type type) => throw null; - protected NhAggregatedExpression(System.Linq.Expressions.Expression expression) => throw null; - public override System.Type Type { get => throw null; } - protected internal override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhAverageExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhAverageExpression : NHibernate.Linq.Expressions.NhAggregatedExpression - { - protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; - public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; - public NhAverageExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhCountExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class NhCountExpression : NHibernate.Linq.Expressions.NhAggregatedExpression - { - protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; - public override bool AllowsNullableReturnType { get => throw null; } - protected NhCountExpression(System.Linq.Expressions.Expression expression, System.Type type) : base(default(System.Linq.Expressions.Expression)) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhDistinctExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhDistinctExpression : NHibernate.Linq.Expressions.NhAggregatedExpression - { - protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; - public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; - public NhDistinctExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class NhExpression : System.Linq.Expressions.Expression - { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; - protected abstract System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor); - protected NhExpression() => throw null; - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } - } - - // Generated from `NHibernate.Linq.Expressions.NhLongCountExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhLongCountExpression : NHibernate.Linq.Expressions.NhCountExpression - { - public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; - public NhLongCountExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression), default(System.Type)) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhMaxExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhMaxExpression : NHibernate.Linq.Expressions.NhAggregatedExpression - { - protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; - public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; - public NhMaxExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhMinExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhMinExpression : NHibernate.Linq.Expressions.NhAggregatedExpression - { - protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; - public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; - public NhMinExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhNewExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhNewExpression : NHibernate.Linq.Expressions.NhExpression - { - protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; - public System.Collections.ObjectModel.ReadOnlyCollection Arguments { get => throw null; } - public System.Collections.ObjectModel.ReadOnlyCollection Members { get => throw null; } - public NhNewExpression(System.Collections.Generic.IList members, System.Collections.Generic.IList arguments) => throw null; - public override System.Type Type { get => throw null; } - protected internal override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhNominatedExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhNominatedExpression : NHibernate.Linq.Expressions.NhExpression - { - protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; - public System.Linq.Expressions.Expression Expression { get => throw null; } - public NhNominatedExpression(System.Linq.Expressions.Expression expression) => throw null; - public override System.Type Type { get => throw null; } - protected internal override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhShortCountExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhShortCountExpression : NHibernate.Linq.Expressions.NhCountExpression - { - public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; - public NhShortCountExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression), default(System.Type)) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhStarExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhStarExpression : NHibernate.Linq.Expressions.NhExpression - { - protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; - public System.Linq.Expressions.Expression Expression { get => throw null; } - public NhStarExpression(System.Linq.Expressions.Expression expression) => throw null; - public override System.Type Type { get => throw null; } - protected internal override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; - } - - // Generated from `NHibernate.Linq.Expressions.NhSumExpression` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhSumExpression : NHibernate.Linq.Expressions.NhAggregatedExpression - { - protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null; - public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null; - public NhSumExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null; - } - - } - namespace Functions - { - // Generated from `NHibernate.Linq.Functions.AllHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AllHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public AllHqlGenerator() => throw null; - public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.AnyHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AnyHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; - public AnyHqlGenerator() => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.BaseHqlGeneratorForMethod` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class BaseHqlGeneratorForMethod : NHibernate.Linq.Functions.IHqlGeneratorForMethod - { - public virtual bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; - protected BaseHqlGeneratorForMethod() => throw null; - public abstract NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor); - protected static NHibernate.INHibernateLogger Log; - public System.Collections.Generic.IEnumerable SupportedMethods { get => throw null; set => throw null; } - public virtual bool TryGetCollectionParameter(System.Linq.Expressions.MethodCallExpression expression, out System.Linq.Expressions.ConstantExpression collectionParameter) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.BaseHqlGeneratorForProperty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class BaseHqlGeneratorForProperty : NHibernate.Linq.Functions.IHqlGeneratorForProperty - { - protected BaseHqlGeneratorForProperty() => throw null; - public abstract NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor); - public System.Collections.Generic.IEnumerable SupportedProperties { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Linq.Functions.CollectionContainsGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionContainsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public CollectionContainsGenerator() => throw null; - public override bool TryGetCollectionParameter(System.Linq.Expressions.MethodCallExpression expression, out System.Linq.Expressions.ConstantExpression collectionParameter) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.CollectionContainsRuntimeHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionContainsRuntimeHqlGenerator : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator - { - public CollectionContainsRuntimeHqlGenerator() => throw null; - public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; - public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ContainsGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ContainsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public ContainsGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ConvertToBooleanGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ConvertToBooleanGenerator : NHibernate.Linq.Functions.ConvertToGenerator - { - public ConvertToBooleanGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ConvertToDateTimeGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ConvertToDateTimeGenerator : NHibernate.Linq.Functions.ConvertToGenerator - { - public ConvertToDateTimeGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ConvertToDecimalGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ConvertToDecimalGenerator : NHibernate.Linq.Functions.ConvertToGenerator - { - public ConvertToDecimalGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ConvertToDoubleGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ConvertToDoubleGenerator : NHibernate.Linq.Functions.ConvertToGenerator - { - public ConvertToDoubleGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ConvertToGenerator<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class ConvertToGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - protected ConvertToGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ConvertToInt32Generator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ConvertToInt32Generator : NHibernate.Linq.Functions.ConvertToGenerator - { - public ConvertToInt32Generator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.DateTimeNowHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DateTimeNowHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForProperty, NHibernate.Linq.Functions.IAllowPreEvaluationHqlGenerator - { - public bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public DateTimeNowHqlGenerator() => throw null; - public bool IgnoreInstance(System.Reflection.MemberInfo member) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.DateTimePropertiesHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DateTimePropertiesHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForProperty - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public DateTimePropertiesHqlGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.DefaultLinqToHqlGeneratorsRegistry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DefaultLinqToHqlGeneratorsRegistry : NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry - { - public DefaultLinqToHqlGeneratorsRegistry() => throw null; - protected bool GetRuntimeMethodGenerator(System.Reflection.MethodInfo method, out NHibernate.Linq.Functions.IHqlGeneratorForMethod methodGenerator) => throw null; - public void RegisterGenerator(NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator generator) => throw null; - public virtual void RegisterGenerator(System.Reflection.MethodInfo method, NHibernate.Linq.Functions.IHqlGeneratorForMethod generator) => throw null; - public virtual void RegisterGenerator(System.Reflection.MemberInfo property, NHibernate.Linq.Functions.IHqlGeneratorForProperty generator) => throw null; - public virtual bool TryGetGenerator(System.Reflection.MethodInfo method, out NHibernate.Linq.Functions.IHqlGeneratorForMethod generator) => throw null; - public virtual bool TryGetGenerator(System.Reflection.MemberInfo property, out NHibernate.Linq.Functions.IHqlGeneratorForProperty generator) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.DictionaryContainsKeyGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DictionaryContainsKeyGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public DictionaryContainsKeyGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.DictionaryContainsKeyRuntimeHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DictionaryContainsKeyRuntimeHqlGenerator : NHibernate.Linq.Functions.DictionaryRuntimeMethodHqlGeneratorBase - { - public DictionaryContainsKeyRuntimeHqlGenerator() => throw null; - protected override string MethodName { get => throw null; } - } - - // Generated from `NHibernate.Linq.Functions.DictionaryItemGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DictionaryItemGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public DictionaryItemGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.DictionaryItemRuntimeHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DictionaryItemRuntimeHqlGenerator : NHibernate.Linq.Functions.DictionaryRuntimeMethodHqlGeneratorBase - { - public DictionaryItemRuntimeHqlGenerator() => throw null; - protected override string MethodName { get => throw null; } - } - - // Generated from `NHibernate.Linq.Functions.DictionaryRuntimeMethodHqlGeneratorBase<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class DictionaryRuntimeMethodHqlGeneratorBase : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator where TGenerator : NHibernate.Linq.Functions.IHqlGeneratorForMethod, new() - { - protected DictionaryRuntimeMethodHqlGeneratorBase() => throw null; - public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; - protected abstract string MethodName { get; } - public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.EndsWithGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EndsWithGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public EndsWithGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.EqualsGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EqualsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public EqualsGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.GenericDictionaryContainsKeyRuntimeHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class GenericDictionaryContainsKeyRuntimeHqlGenerator : NHibernate.Linq.Functions.GenericDictionaryRuntimeMethodHqlGeneratorBase - { - public GenericDictionaryContainsKeyRuntimeHqlGenerator() => throw null; - protected override string MethodName { get => throw null; } - } - - // Generated from `NHibernate.Linq.Functions.GenericDictionaryItemRuntimeHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class GenericDictionaryItemRuntimeHqlGenerator : NHibernate.Linq.Functions.GenericDictionaryRuntimeMethodHqlGeneratorBase - { - public GenericDictionaryItemRuntimeHqlGenerator() => throw null; - protected override string MethodName { get => throw null; } - } - - // Generated from `NHibernate.Linq.Functions.GenericDictionaryRuntimeMethodHqlGeneratorBase<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class GenericDictionaryRuntimeMethodHqlGeneratorBase : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator where TGenerator : NHibernate.Linq.Functions.IHqlGeneratorForMethod, new() - { - protected GenericDictionaryRuntimeMethodHqlGeneratorBase() => throw null; - public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; - protected abstract string MethodName { get; } - public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.GetCharsGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class GetCharsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public GetCharsGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.HqlGeneratorForExtensionMethod` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class HqlGeneratorForExtensionMethod : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public HqlGeneratorForExtensionMethod(NHibernate.Linq.LinqExtensionMethodAttribute attribute, System.Reflection.MethodInfo method) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.HqlGeneratorForPropertyExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class HqlGeneratorForPropertyExtensions - { - public static bool AllowPreEvaluation(this NHibernate.Linq.Functions.IHqlGeneratorForProperty generator, System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.IAllowPreEvaluationHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IAllowPreEvaluationHqlGenerator - { - bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory); - bool IgnoreInstance(System.Reflection.MemberInfo member); - } - - // Generated from `NHibernate.Linq.Functions.IHqlGeneratorForMethod` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IHqlGeneratorForMethod - { - NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor); - System.Collections.Generic.IEnumerable SupportedMethods { get; } - } - - // Generated from `NHibernate.Linq.Functions.IHqlGeneratorForMethodExtended` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - internal interface IHqlGeneratorForMethodExtended - { - bool AllowsNullableReturnType(System.Reflection.MethodInfo method); - bool TryGetCollectionParameter(System.Linq.Expressions.MethodCallExpression expression, out System.Linq.Expressions.ConstantExpression collectionParameter); - } - - // Generated from `NHibernate.Linq.Functions.IHqlGeneratorForProperty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IHqlGeneratorForProperty - { - NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor); - System.Collections.Generic.IEnumerable SupportedProperties { get; } - } - - // Generated from `NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ILinqToHqlGeneratorsRegistry - { - void RegisterGenerator(System.Reflection.MethodInfo method, NHibernate.Linq.Functions.IHqlGeneratorForMethod generator); - void RegisterGenerator(System.Reflection.MemberInfo property, NHibernate.Linq.Functions.IHqlGeneratorForProperty generator); - void RegisterGenerator(NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator generator); - bool TryGetGenerator(System.Reflection.MethodInfo method, out NHibernate.Linq.Functions.IHqlGeneratorForMethod generator); - bool TryGetGenerator(System.Reflection.MemberInfo property, out NHibernate.Linq.Functions.IHqlGeneratorForProperty generator); - } - - // Generated from `NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IRuntimeMethodHqlGenerator - { - NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method); - bool SupportsMethod(System.Reflection.MethodInfo method); - } - - // Generated from `NHibernate.Linq.Functions.IndexOfGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IndexOfGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public IndexOfGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.LengthGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LengthGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForProperty - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public LengthGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.LikeGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LikeGenerator : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator, NHibernate.Linq.Functions.IHqlGeneratorForMethod - { - public bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; - public NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; - public LikeGenerator() => throw null; - public System.Collections.Generic.IEnumerable SupportedMethods { get => throw null; } - public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; - public bool TryGetCollectionParameter(System.Linq.Expressions.MethodCallExpression expression, out System.Linq.Expressions.ConstantExpression collectionParameter) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.LinqToHqlGeneratorsRegistryExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class LinqToHqlGeneratorsRegistryExtensions - { - public static void Merge(this NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry registry, NHibernate.Linq.Functions.IHqlGeneratorForProperty generator) => throw null; - public static void Merge(this NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry registry, NHibernate.Linq.Functions.IHqlGeneratorForMethod generator) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.LinqToHqlGeneratorsRegistryFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LinqToHqlGeneratorsRegistryFactory - { - public static NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry CreateGeneratorsRegistry(System.Collections.Generic.IDictionary properties) => throw null; - public LinqToHqlGeneratorsRegistryFactory() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.MathGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MathGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression expression, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public MathGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.MaxHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MaxHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public MaxHqlGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.MinHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MinHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public MinHqlGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.NewGuidHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NewGuidHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod, NHibernate.Linq.Functions.IAllowPreEvaluationHqlGenerator - { - public bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public bool IgnoreInstance(System.Reflection.MemberInfo member) => throw null; - public NewGuidHqlGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.RandomHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class RandomHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod, NHibernate.Linq.Functions.IAllowPreEvaluationHqlGenerator - { - public bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public bool IgnoreInstance(System.Reflection.MemberInfo member) => throw null; - public RandomHqlGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ReplaceGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ReplaceGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public ReplaceGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.StandardLinqExtensionMethodGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StandardLinqExtensionMethodGenerator : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator - { - public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; - public StandardLinqExtensionMethodGenerator() => throw null; - public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; - } - - // Generated from `NHibernate.Linq.Functions.StartsWithGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StartsWithGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null; - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public StartsWithGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.SubStringGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SubStringGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public SubStringGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ToLowerGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ToLowerGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public ToLowerGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ToStringHqlGeneratorForMethod` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ToStringHqlGeneratorForMethod : NHibernate.Linq.Functions.IHqlGeneratorForMethod - { - public NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public System.Collections.Generic.IEnumerable SupportedMethods { get => throw null; } - public ToStringHqlGeneratorForMethod() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ToStringRuntimeMethodHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ToStringRuntimeMethodHqlGenerator : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator - { - public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null; - public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null; - public ToStringRuntimeMethodHqlGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.ToUpperGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ToUpperGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public ToUpperGenerator() => throw null; - } - - // Generated from `NHibernate.Linq.Functions.TrimGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TrimGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod - { - public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null; - public TrimGenerator() => throw null; - } - - } - namespace GroupBy - { - // Generated from `NHibernate.Linq.GroupBy.AggregatingGroupByRewriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class AggregatingGroupByRewriter - { - public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null; - } - - // Generated from `NHibernate.Linq.GroupBy.ClientSideSelect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ClientSideSelect : NHibernate.Linq.ResultOperators.ClientSideTransformOperator - { - public ClientSideSelect(System.Linq.Expressions.LambdaExpression selectClause) => throw null; - public System.Linq.Expressions.LambdaExpression SelectClause { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Linq.GroupBy.ClientSideSelect2` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ClientSideSelect2 : NHibernate.Linq.ResultOperators.ClientSideTransformOperator - { - public ClientSideSelect2(System.Linq.Expressions.LambdaExpression selectClause) => throw null; - public System.Linq.Expressions.LambdaExpression SelectClause { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Linq.GroupBy.NonAggregatingGroupByRewriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class NonAggregatingGroupByRewriter - { - public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null; - } - - } - namespace GroupJoin - { - // Generated from `NHibernate.Linq.GroupJoin.AggregatingGroupJoinRewriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class AggregatingGroupJoinRewriter - { - public static void ReWrite(Remotion.Linq.QueryModel model) => throw null; - } - - // Generated from `NHibernate.Linq.GroupJoin.GroupJoinSelectClauseRewriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class GroupJoinSelectClauseRewriter : Remotion.Linq.Parsing.RelinqExpressionVisitor - { - public static System.Linq.Expressions.Expression ReWrite(System.Linq.Expressions.Expression expression, NHibernate.Linq.GroupJoin.IsAggregatingResults results) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; - } - - // Generated from `NHibernate.Linq.GroupJoin.IsAggregatingResults` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IsAggregatingResults - { - public System.Collections.Generic.List AggregatingClauses { get => throw null; set => throw null; } - public IsAggregatingResults() => throw null; - public System.Collections.Generic.List NonAggregatingClauses { get => throw null; set => throw null; } - public System.Collections.Generic.List NonAggregatingExpressions { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Linq.GroupJoin.LocateGroupJoinQuerySource` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LocateGroupJoinQuerySource : Remotion.Linq.Parsing.RelinqExpressionVisitor - { - public Remotion.Linq.Clauses.GroupJoinClause Detect(System.Linq.Expressions.Expression expression) => throw null; - public LocateGroupJoinQuerySource(NHibernate.Linq.GroupJoin.IsAggregatingResults results) => throw null; - protected internal override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; - } - - } namespace ReWriters { - // Generated from `NHibernate.Linq.ReWriters.AddJoinsReWriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AddJoinsReWriter : NHibernate.Linq.Visitors.NhQueryModelVisitorBase, Remotion.Linq.IQueryModelVisitor, NHibernate.Linq.INhQueryModelVisitor + public class AddJoinsReWriter : NHibernate.Linq.Visitors.NhQueryModelVisitorBase, NHibernate.Linq.INhQueryModelVisitor, Remotion.Linq.IQueryModelVisitor { public bool IsEntity(System.Type type) => throw null; public bool IsIdentifier(System.Type type, string propertyName) => throw null; @@ -20951,22 +17608,13 @@ namespace NHibernate public override void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; } - - // Generated from `NHibernate.Linq.ReWriters.ArrayIndexExpressionFlattener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ArrayIndexExpressionFlattener : Remotion.Linq.Parsing.RelinqExpressionVisitor { public ArrayIndexExpressionFlattener() => throw null; public static void ReWrite(Remotion.Linq.QueryModel model) => throw null; - protected internal override System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; } - - // Generated from `NHibernate.Linq.ReWriters.IIsEntityDecider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - internal interface IIsEntityDecider - { - } - - // Generated from `NHibernate.Linq.ReWriters.MergeAggregatingResultsRewriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MergeAggregatingResultsRewriter : NHibernate.Linq.Visitors.NhQueryModelVisitorBase { public static void ReWrite(Remotion.Linq.QueryModel model) => throw null; @@ -20975,30 +17623,22 @@ namespace NHibernate public override void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; } - - // Generated from `NHibernate.Linq.ReWriters.MoveOrderByToEndRewriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MoveOrderByToEndRewriter { public MoveOrderByToEndRewriter() => throw null; public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null; } - - // Generated from `NHibernate.Linq.ReWriters.QueryReferenceExpressionFlattener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QueryReferenceExpressionFlattener : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static void ReWrite(Remotion.Linq.QueryModel model) => throw null; - protected internal override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression subQuery) => throw null; + protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression subQuery) => throw null; } - - // Generated from `NHibernate.Linq.ReWriters.RemoveUnnecessaryBodyOperators` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class RemoveUnnecessaryBodyOperators : NHibernate.Linq.Visitors.NhQueryModelVisitorBase { public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null; } - - // Generated from `NHibernate.Linq.ReWriters.ResultOperatorRemover` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ResultOperatorRemover : NHibernate.Linq.Visitors.NhQueryModelVisitorBase { public static void Remove(Remotion.Linq.QueryModel queryModel, System.Func predicate) => throw null; @@ -21006,94 +17646,74 @@ namespace NHibernate public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null; } - - // Generated from `NHibernate.Linq.ReWriters.ResultOperatorRewriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ResultOperatorRewriter : NHibernate.Linq.Visitors.NhQueryModelVisitorBase { public static NHibernate.Linq.ReWriters.ResultOperatorRewriterResult Rewrite(Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null; } - - // Generated from `NHibernate.Linq.ReWriters.ResultOperatorRewriterResult` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ResultOperatorRewriterResult { - public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo EvaluationType { get => throw null; set => throw null; } public ResultOperatorRewriterResult(System.Collections.Generic.IEnumerable rewrittenOperators, Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo evaluationType) => throw null; - public System.Collections.Generic.IEnumerable RewrittenOperators { get => throw null; set => throw null; } + public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo EvaluationType { get => throw null; } + public System.Collections.Generic.IEnumerable RewrittenOperators { get => throw null; } } - } - namespace ResultOperators + public static class SqlMethods { - // Generated from `NHibernate.Linq.ResultOperators.ClientSideTransformOperator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ClientSideTransformOperator : Remotion.Linq.Clauses.ResultOperatorBase - { - public ClientSideTransformOperator() => throw null; - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public override Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData input) => throw null; - public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `NHibernate.Linq.ResultOperators.NonAggregatingGroupBy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NonAggregatingGroupBy : NHibernate.Linq.ResultOperators.ClientSideTransformOperator - { - public Remotion.Linq.Clauses.ResultOperators.GroupResultOperator GroupBy { get => throw null; set => throw null; } - public NonAggregatingGroupBy(Remotion.Linq.Clauses.ResultOperators.GroupResultOperator groupBy) => throw null; - } - + public static bool Like(this string matchExpression, string sqlLikePattern) => throw null; + public static bool Like(this string matchExpression, string sqlLikePattern, char escapeCharacter) => throw null; + } + public class UpdateBuilder + { + public NHibernate.Linq.UpdateBuilder Set(System.Linq.Expressions.Expression> property, System.Linq.Expressions.Expression> expression) => throw null; + public NHibernate.Linq.UpdateBuilder Set(System.Linq.Expressions.Expression> property, TProp value) => throw null; + public int Update() => throw null; + public System.Threading.Tasks.Task UpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public int UpdateVersioned() => throw null; + public System.Threading.Tasks.Task UpdateVersionedAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } namespace Visitors { - // Generated from `NHibernate.Linq.Visitors.BooleanToCaseConvertor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class BooleanToCaseConvertor { public static System.Collections.Generic.IEnumerable Convert(System.Collections.Generic.IEnumerable hqlTreeNodes) => throw null; public static NHibernate.Hql.Ast.HqlExpression ConvertBooleanToCase(NHibernate.Hql.Ast.HqlExpression node) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.EqualityHqlGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EqualityHqlGenerator { public EqualityHqlGenerator(NHibernate.Linq.Visitors.VisitorParameters parameters) => throw null; public NHibernate.Hql.Ast.HqlBooleanExpression Visit(System.Linq.Expressions.Expression innerKeySelector, System.Linq.Expressions.Expression outerKeySelector) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.ExpressionKeyVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ExpressionKeyVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public override string ToString() => throw null; - public static string Visit(System.Linq.Expressions.Expression rootExpression, System.Collections.Generic.IDictionary parameters, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; public static string Visit(System.Linq.Expressions.Expression expression, System.Collections.Generic.IDictionary parameters) => throw null; - protected internal override System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitDynamic(System.Linq.Expressions.DynamicExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitLambda(System.Linq.Expressions.Expression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null; + public static string Visit(System.Linq.Expressions.Expression rootExpression, System.Collections.Generic.IDictionary parameters, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + protected override System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitDynamic(System.Linq.Expressions.DynamicExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitLambda(System.Linq.Expressions.Expression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.ExpressionParameterVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ExpressionParameterVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { - public ExpressionParameterVisitor(NHibernate.Linq.Visitors.PreTransformationResult preTransformationResult) => throw null; public ExpressionParameterVisitor(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + public ExpressionParameterVisitor(NHibernate.Linq.Visitors.PreTransformationResult preTransformationResult) => throw null; public static System.Collections.Generic.IDictionary Visit(System.Linq.Expressions.Expression expression, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; public static System.Collections.Generic.IDictionary Visit(NHibernate.Linq.Visitors.PreTransformationResult preTransformationResult) => throw null; - protected internal override System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression node) => throw null; + protected override System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression node) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.HqlGeneratorExpressionVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HqlGeneratorExpressionVisitor : NHibernate.Linq.Visitors.IHqlExpressionVisitor { public HqlGeneratorExpressionVisitor(NHibernate.Linq.Visitors.VisitorParameters parameters) => throw null; @@ -21120,35 +17740,25 @@ namespace NHibernate protected NHibernate.Hql.Ast.HqlTreeNode VisitSubQueryExpression(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; protected NHibernate.Hql.Ast.HqlTreeNode VisitUnaryExpression(System.Linq.Expressions.UnaryExpression expression) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.IExpressionTransformerRegistrar` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IExpressionTransformerRegistrar { void Register(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry expressionTransformerRegistry); } - - // Generated from `NHibernate.Linq.Visitors.IHqlExpressionVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IHqlExpressionVisitor { NHibernate.ISessionFactory SessionFactory { get; } NHibernate.Hql.Ast.HqlTreeNode Visit(System.Linq.Expressions.Expression expression); } - - // Generated from `NHibernate.Linq.Visitors.IJoiner` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IJoiner { System.Linq.Expressions.Expression AddJoin(System.Linq.Expressions.Expression expression, string key); bool CanAddJoin(System.Linq.Expressions.Expression expression); void MakeInnerIfJoined(string key); } - - // Generated from `NHibernate.Linq.Visitors.IQueryModelRewriterFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IQueryModelRewriterFactory { Remotion.Linq.QueryModelVisitorBase CreateVisitor(NHibernate.Linq.Visitors.VisitorParameters parameters); } - - // Generated from `NHibernate.Linq.Visitors.Joiner` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Joiner : NHibernate.Linq.Visitors.IJoiner { public System.Linq.Expressions.Expression AddJoin(System.Linq.Expressions.Expression expression, string key) => throw null; @@ -21156,60 +17766,46 @@ namespace NHibernate public System.Collections.Generic.IEnumerable Joins { get => throw null; } public void MakeInnerIfJoined(string key) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.LeftJoinRewriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class LeftJoinRewriter : NHibernate.Linq.Visitors.NhQueryModelVisitorBase { public LeftJoinRewriter() => throw null; public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.NameGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NameGenerator { - public string GetNewName() => throw null; public NameGenerator(Remotion.Linq.QueryModel model) => throw null; + public string GetNewName() => throw null; } - - // Generated from `NHibernate.Linq.Visitors.NhExpressionVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NhExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public NhExpressionVisitor() => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNhAggregated(NHibernate.Linq.Expressions.NhAggregatedExpression node) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNhAverage(NHibernate.Linq.Expressions.NhAverageExpression expression) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNhCount(NHibernate.Linq.Expressions.NhCountExpression expression) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNhDistinct(NHibernate.Linq.Expressions.NhDistinctExpression expression) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNhMax(NHibernate.Linq.Expressions.NhMaxExpression expression) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNhMin(NHibernate.Linq.Expressions.NhMinExpression expression) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNhNew(NHibernate.Linq.Expressions.NhNewExpression expression) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNhNominated(NHibernate.Linq.Expressions.NhNominatedExpression expression) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNhStar(NHibernate.Linq.Expressions.NhStarExpression expression) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitNhSum(NHibernate.Linq.Expressions.NhSumExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNhAggregated(NHibernate.Linq.Expressions.NhAggregatedExpression node) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNhAverage(NHibernate.Linq.Expressions.NhAverageExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNhCount(NHibernate.Linq.Expressions.NhCountExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNhDistinct(NHibernate.Linq.Expressions.NhDistinctExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNhMax(NHibernate.Linq.Expressions.NhMaxExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNhMin(NHibernate.Linq.Expressions.NhMinExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNhNew(NHibernate.Linq.Expressions.NhNewExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNhNominated(NHibernate.Linq.Expressions.NhNominatedExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNhStar(NHibernate.Linq.Expressions.NhStarExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNhSum(NHibernate.Linq.Expressions.NhSumExpression expression) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.NhQueryModelVisitorBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NhQueryModelVisitorBase : Remotion.Linq.QueryModelVisitorBase, Remotion.Linq.IQueryModelVisitor, Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator.ISupportedByIQueryModelVistor, NHibernate.Linq.INhQueryModelVisitor + public class NhQueryModelVisitorBase : Remotion.Linq.QueryModelVisitorBase, NHibernate.Linq.INhQueryModelVisitor, Remotion.Linq.IQueryModelVisitor, Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator.ISupportedByIQueryModelVistor { public NhQueryModelVisitorBase() => throw null; public virtual void VisitNhHavingClause(NHibernate.Linq.Clauses.NhHavingClause havingClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public virtual void VisitNhJoinClause(NHibernate.Linq.Clauses.NhJoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public virtual void VisitNhWithClause(NHibernate.Linq.Clauses.NhWithClause nhWhereClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.NonAggregatingGroupJoinRewriter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NonAggregatingGroupJoinRewriter { public static void ReWrite(Remotion.Linq.QueryModel model) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.ParameterTypeLocator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ParameterTypeLocator { public static void SetParameterTypes(System.Collections.Generic.IDictionary parameters, Remotion.Linq.QueryModel queryModel, System.Type targetType, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.PossibleValueSet` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PossibleValueSet { public NHibernate.Linq.Visitors.PossibleValueSet Add(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null; @@ -21247,38 +17843,30 @@ namespace NHibernate public NHibernate.Linq.Visitors.PossibleValueSet Subtract(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null; public NHibernate.Linq.Visitors.PossibleValueSet UnaryPlus(System.Type resultType) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.PreTransformationParameters` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PreTransformationParameters { - public bool MinimizeParameters { get => throw null; set => throw null; } public PreTransformationParameters(NHibernate.Linq.QueryMode queryMode, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; + public bool MinimizeParameters { get => throw null; set { } } public NHibernate.Linq.QueryMode QueryMode { get => throw null; } public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { get => throw null; } } - - // Generated from `NHibernate.Linq.Visitors.PreTransformationResult` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PreTransformationResult { public System.Linq.Expressions.Expression Expression { get => throw null; } public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { get => throw null; } } - - // Generated from `NHibernate.Linq.Visitors.QueryExpressionSourceIdentifer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QueryExpressionSourceIdentifer : Remotion.Linq.Parsing.RelinqExpressionVisitor { public QueryExpressionSourceIdentifer(NHibernate.Linq.Visitors.QuerySourceIdentifier identifier) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.QueryModelVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryModelVisitor : NHibernate.Linq.Visitors.NhQueryModelVisitorBase, Remotion.Linq.IQueryModelVisitor, NHibernate.Linq.INhQueryModelVisitor + public class QueryModelVisitor : NHibernate.Linq.Visitors.NhQueryModelVisitorBase, NHibernate.Linq.INhQueryModelVisitor, Remotion.Linq.IQueryModelVisitor { - public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo CurrentEvaluationType { get => throw null; set => throw null; } + public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo CurrentEvaluationType { get => throw null; } public static NHibernate.Linq.ExpressionToHqlTranslationResults GenerateHqlQuery(Remotion.Linq.QueryModel queryModel, NHibernate.Linq.Visitors.VisitorParameters parameters, bool root, NHibernate.Linq.NhLinqExpressionReturnType? rootReturnType) => throw null; public Remotion.Linq.QueryModel Model { get => throw null; } - public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo PreviousEvaluationType { get => throw null; set => throw null; } - public NHibernate.Linq.ReWriters.ResultOperatorRewriterResult RewrittenOperatorResult { get => throw null; set => throw null; } + public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo PreviousEvaluationType { get => throw null; } + public NHibernate.Linq.ReWriters.ResultOperatorRewriterResult RewrittenOperatorResult { get => throw null; } public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitGroupJoinClause(Remotion.Linq.Clauses.GroupJoinClause groupJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; @@ -21288,29 +17876,25 @@ namespace NHibernate public void VisitNhOuterJoinClause(NHibernate.Linq.Clauses.NhOuterJoinClause outerJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitNhWithClause(NHibernate.Linq.Clauses.NhWithClause withClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitOrderByClause(Remotion.Linq.Clauses.OrderByClause orderByClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; + public NHibernate.Linq.Visitors.VisitorParameters VisitorParameters { get => throw null; } public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; - public NHibernate.Linq.Visitors.VisitorParameters VisitorParameters { get => throw null; } } - - // Generated from `NHibernate.Linq.Visitors.QuerySourceIdentifier` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QuerySourceIdentifier : NHibernate.Linq.Visitors.NhQueryModelVisitorBase, Remotion.Linq.IQueryModelVisitor, NHibernate.Linq.INhQueryModelVisitor + public class QuerySourceIdentifier : NHibernate.Linq.Visitors.NhQueryModelVisitorBase, NHibernate.Linq.INhQueryModelVisitor, Remotion.Linq.IQueryModelVisitor { public NHibernate.Linq.QuerySourceNamer Namer { get => throw null; } public static void Visit(NHibernate.Linq.QuerySourceNamer namer, Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitGroupJoinClause(Remotion.Linq.Clauses.GroupJoinClause groupJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; - public override void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.GroupJoinClause groupJoinClause) => throw null; + public override void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitNhJoinClause(NHibernate.Linq.Clauses.NhJoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public void VisitNhOuterJoinClause(NHibernate.Linq.Clauses.NhOuterJoinClause outerJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, Remotion.Linq.QueryModel queryModel) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.QuerySourceLocator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QuerySourceLocator : NHibernate.Linq.Visitors.NhQueryModelVisitorBase { public static Remotion.Linq.Clauses.IQuerySource FindQuerySource(Remotion.Linq.QueryModel queryModel, System.Type type) => throw null; @@ -21318,48 +17902,174 @@ namespace NHibernate public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitNhJoinClause(NHibernate.Linq.Clauses.NhJoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.SelectClauseVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace ResultOperatorProcessors + { + public interface IResultOperatorProcessor + { + void Process(T resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree); + } + public class ProcessAggregate : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessAggregate() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessAggregateFromSeed : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessAggregateFromSeed() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessAll : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessAll() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.AllResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessAny : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessAny() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.AnyResultOperator anyOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessAsQueryable : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessAsQueryable() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessCast : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessCast() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.CastResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessClientSideSelect : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessClientSideSelect() => throw null; + public void Process(NHibernate.Linq.GroupBy.ClientSideSelect resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessClientSideSelect2 : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessClientSideSelect2() => throw null; + public void Process(NHibernate.Linq.GroupBy.ClientSideSelect2 resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessContains : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessContains() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessFetch + { + public ProcessFetch() => throw null; + public void Process(Remotion.Linq.EagerFetching.FetchRequestBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + public void Process(Remotion.Linq.EagerFetching.FetchRequestBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree, string sourceAlias) => throw null; + } + public class ProcessFetchMany : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFetch, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessFetchMany() => throw null; + public void Process(Remotion.Linq.EagerFetching.FetchManyRequest resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessFetchOne : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFetch, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessFetchOne() => throw null; + public void Process(Remotion.Linq.EagerFetching.FetchOneRequest resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessFirst : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFirstOrSingleBase, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessFirst() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.FirstResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessFirstOrSingleBase + { + protected static void AddClientSideEval(System.Reflection.MethodInfo target, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + public ProcessFirstOrSingleBase() => throw null; + } + public class ProcessGroupBy : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessGroupBy() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.GroupResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessNonAggregatingGroupBy : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessNonAggregatingGroupBy() => throw null; + public void Process(NHibernate.Linq.ResultOperators.NonAggregatingGroupBy resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessOfType : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessOfType() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.OfTypeResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessResultOperatorReturn + { + public System.Action>> AdditionalCriteria { get => throw null; set { } } + public NHibernate.Hql.Ast.HqlTreeNode AdditionalFrom { get => throw null; set { } } + public ProcessResultOperatorReturn() => throw null; + public NHibernate.Hql.Ast.HqlGroupBy GroupBy { get => throw null; set { } } + public System.Linq.Expressions.LambdaExpression ListTransformer { get => throw null; set { } } + public System.Linq.Expressions.LambdaExpression PostExecuteTransformer { get => throw null; set { } } + public NHibernate.Hql.Ast.HqlTreeNode TreeNode { get => throw null; set { } } + public NHibernate.Hql.Ast.HqlBooleanExpression WhereClause { get => throw null; set { } } + } + public class ProcessSingle : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFirstOrSingleBase, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessSingle() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.SingleResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessSkip : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessSkip() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.SkipResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ProcessTake : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor + { + public ProcessTake() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperators.TakeResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ResultOperatorMap + { + public void Add() where TOperator : Remotion.Linq.Clauses.ResultOperatorBase where TProcessor : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor, new() => throw null; + public ResultOperatorMap() => throw null; + public void Process(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModel, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public class ResultOperatorProcessor : NHibernate.Linq.Visitors.ResultOperatorProcessors.ResultOperatorProcessorBase where T : Remotion.Linq.Clauses.ResultOperatorBase + { + public ResultOperatorProcessor(NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor processor) => throw null; + public override void Process(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModel, NHibernate.Linq.IntermediateHqlTree tree) => throw null; + } + public abstract class ResultOperatorProcessorBase + { + protected ResultOperatorProcessorBase() => throw null; + public abstract void Process(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModel, NHibernate.Linq.IntermediateHqlTree tree); + } + } public class SelectClauseVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { - public System.Collections.Generic.IEnumerable GetHqlNodes() => throw null; - public System.Linq.Expressions.LambdaExpression ProjectionExpression { get => throw null; set => throw null; } public SelectClauseVisitor(System.Type inputType, NHibernate.Linq.Visitors.VisitorParameters parameters) => throw null; + public System.Collections.Generic.IEnumerable GetHqlNodes() => throw null; + public System.Linq.Expressions.LambdaExpression ProjectionExpression { get => throw null; } public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null; public void VisitSelector(System.Linq.Expressions.Expression expression) => throw null; + public void VisitSelector(System.Linq.Expressions.Expression expression, bool isSubQuery) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.SubQueryFromClauseFlattener` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SubQueryFromClauseFlattener : NHibernate.Linq.Visitors.NhQueryModelVisitorBase { - public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null; public SubQueryFromClauseFlattener() => throw null; + public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null; public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.SwapQuerySourceVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SwapQuerySourceVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { - public System.Linq.Expressions.Expression Swap(System.Linq.Expressions.Expression expression) => throw null; public SwapQuerySourceVisitor(Remotion.Linq.Clauses.IQuerySource oldClause, Remotion.Linq.Clauses.IQuerySource newClause) => throw null; - protected internal override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + public System.Linq.Expressions.Expression Swap(System.Linq.Expressions.Expression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; } - - // Generated from `NHibernate.Linq.Visitors.VisitorParameters` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class VisitorParameters { - public System.Collections.Generic.IDictionary ConstantToParameterMap { get => throw null; set => throw null; } - public NHibernate.Linq.QuerySourceNamer QuerySourceNamer { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiredHqlParameters { get => throw null; set => throw null; } - public NHibernate.Linq.QueryMode RootQueryMode { get => throw null; } - public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { get => throw null; set => throw null; } - public System.Type TargetEntityType { get => throw null; } + public System.Collections.Generic.IDictionary ConstantToParameterMap { get => throw null; } public VisitorParameters(NHibernate.Engine.ISessionFactoryImplementor sessionFactory, System.Collections.Generic.IDictionary constantToParameterMap, System.Collections.Generic.List requiredHqlParameters, NHibernate.Linq.QuerySourceNamer querySourceNamer, System.Type targetEntityType, NHibernate.Linq.QueryMode rootQueryMode) => throw null; + public NHibernate.Linq.QuerySourceNamer QuerySourceNamer { get => throw null; set { } } + public System.Collections.Generic.List RequiredHqlParameters { get => throw null; } + public NHibernate.Linq.QueryMode RootQueryMode { get => throw null; } + public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { get => throw null; } + public System.Type TargetEntityType { get => throw null; } } - - // Generated from `NHibernate.Linq.Visitors.VisitorUtil` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class VisitorUtil { public static string GetMemberPath(this System.Linq.Expressions.MemberExpression memberExpression) => throw null; @@ -21370,235 +18080,496 @@ namespace NHibernate public static bool IsNullConstant(System.Linq.Expressions.Expression expression) => throw null; public static System.Linq.Expressions.Expression Replace(this System.Linq.Expressions.Expression expression, System.Linq.Expressions.Expression oldExpression, System.Linq.Expressions.Expression newExpression) => throw null; } - - namespace ResultOperatorProcessors - { - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IResultOperatorProcessor - { - void Process(T resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree); - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessAggregate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessAggregate : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessAggregate() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessAggregateFromSeed` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessAggregateFromSeed : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessAggregateFromSeed() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessAll` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessAll : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.AllResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessAll() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessAny` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessAny : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.AnyResultOperator anyOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessAny() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessAsQueryable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessAsQueryable : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessAsQueryable() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessCast` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessCast : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.CastResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessCast() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessClientSideSelect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessClientSideSelect : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(NHibernate.Linq.GroupBy.ClientSideSelect resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessClientSideSelect() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessClientSideSelect2` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessClientSideSelect2 : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(NHibernate.Linq.GroupBy.ClientSideSelect2 resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessClientSideSelect2() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessContains` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessContains : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessContains() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFetch` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessFetch - { - public void Process(Remotion.Linq.EagerFetching.FetchRequestBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree, string sourceAlias) => throw null; - public void Process(Remotion.Linq.EagerFetching.FetchRequestBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessFetch() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFetchMany` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessFetchMany : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFetch, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.EagerFetching.FetchManyRequest resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessFetchMany() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFetchOne` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessFetchOne : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFetch, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.EagerFetching.FetchOneRequest resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessFetchOne() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFirst` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessFirst : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFirstOrSingleBase, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.FirstResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessFirst() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFirstOrSingleBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessFirstOrSingleBase - { - protected static void AddClientSideEval(System.Reflection.MethodInfo target, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessFirstOrSingleBase() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessGroupBy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessGroupBy : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.GroupResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessGroupBy() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessNonAggregatingGroupBy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessNonAggregatingGroupBy : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(NHibernate.Linq.ResultOperators.NonAggregatingGroupBy resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessNonAggregatingGroupBy() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessOfType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessOfType : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.OfTypeResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessOfType() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessResultOperatorReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessResultOperatorReturn - { - public System.Action>> AdditionalCriteria { get => throw null; set => throw null; } - public NHibernate.Hql.Ast.HqlTreeNode AdditionalFrom { get => throw null; set => throw null; } - public NHibernate.Hql.Ast.HqlGroupBy GroupBy { get => throw null; set => throw null; } - public System.Linq.Expressions.LambdaExpression ListTransformer { get => throw null; set => throw null; } - public System.Linq.Expressions.LambdaExpression PostExecuteTransformer { get => throw null; set => throw null; } - public ProcessResultOperatorReturn() => throw null; - public NHibernate.Hql.Ast.HqlTreeNode TreeNode { get => throw null; set => throw null; } - public NHibernate.Hql.Ast.HqlBooleanExpression WhereClause { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessSingle` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessSingle : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFirstOrSingleBase, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.SingleResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessSingle() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessSkip` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessSkip : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.SkipResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessSkip() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessTake` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProcessTake : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor - { - public void Process(Remotion.Linq.Clauses.ResultOperators.TakeResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ProcessTake() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ResultOperatorMap` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ResultOperatorMap - { - public void Add() where TOperator : Remotion.Linq.Clauses.ResultOperatorBase where TProcessor : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor, new() => throw null; - public void Process(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModel, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ResultOperatorMap() => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ResultOperatorProcessor<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ResultOperatorProcessor : NHibernate.Linq.Visitors.ResultOperatorProcessors.ResultOperatorProcessorBase where T : Remotion.Linq.Clauses.ResultOperatorBase - { - public override void Process(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModel, NHibernate.Linq.IntermediateHqlTree tree) => throw null; - public ResultOperatorProcessor(NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor processor) => throw null; - } - - // Generated from `NHibernate.Linq.Visitors.ResultOperatorProcessors.ResultOperatorProcessorBase` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class ResultOperatorProcessorBase - { - public abstract void Process(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModel, NHibernate.Linq.IntermediateHqlTree tree); - protected ResultOperatorProcessorBase() => throw null; - } - - } } } namespace Loader { - // Generated from `NHibernate.Loader.AbstractEntityJoinWalker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractEntityJoinWalker : NHibernate.Loader.JoinWalker { - public AbstractEntityJoinWalker(string rootSqlAlias, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - public AbstractEntityJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; protected virtual void AddAssociations() => throw null; protected string Alias { get => throw null; } public abstract string Comment { get; } protected virtual NHibernate.Loader.OuterJoinableAssociation CreateRootAssociation() => throw null; + public AbstractEntityJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + public AbstractEntityJoinWalker(string rootSqlAlias, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; protected virtual void InitAll(NHibernate.SqlCommand.SqlString whereString, NHibernate.SqlCommand.SqlString orderByString, NHibernate.LockMode lockMode) => throw null; - protected void InitProjection(NHibernate.SqlCommand.SqlString projectionString, NHibernate.SqlCommand.SqlString whereString, NHibernate.SqlCommand.SqlString orderByString, NHibernate.SqlCommand.SqlString groupByString, NHibernate.SqlCommand.SqlString havingString, System.Collections.Generic.IDictionary enabledFilters, NHibernate.LockMode lockMode, System.Collections.Generic.IList entityProjections) => throw null; protected void InitProjection(NHibernate.SqlCommand.SqlString projectionString, NHibernate.SqlCommand.SqlString whereString, NHibernate.SqlCommand.SqlString orderByString, NHibernate.SqlCommand.SqlString groupByString, NHibernate.SqlCommand.SqlString havingString, System.Collections.Generic.IDictionary enabledFilters, NHibernate.LockMode lockMode) => throw null; + protected void InitProjection(NHibernate.SqlCommand.SqlString projectionString, NHibernate.SqlCommand.SqlString whereString, NHibernate.SqlCommand.SqlString orderByString, NHibernate.SqlCommand.SqlString groupByString, NHibernate.SqlCommand.SqlString havingString, System.Collections.Generic.IDictionary enabledFilters, NHibernate.LockMode lockMode, System.Collections.Generic.IList entityProjections) => throw null; protected override bool IsJoinedFetchEnabled(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; protected NHibernate.Persister.Entity.IOuterJoinLoadable Persister { get => throw null; } public override string ToString() => throw null; protected virtual NHibernate.SqlCommand.SqlString WhereFragment { get => throw null; } } - - // Generated from `NHibernate.Loader.BasicLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class BasicLoader : NHibernate.Loader.Loader { - public BasicLoader(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; - protected override NHibernate.Loader.ICollectionAliases[] CollectionAliases { get => throw null; } + protected override sealed NHibernate.Loader.ICollectionAliases[] CollectionAliases { get => throw null; } protected abstract string[] CollectionSuffixes { get; } - protected override NHibernate.Loader.IEntityAliases[] EntityAliases { get => throw null; } + public BasicLoader(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; + protected override sealed NHibernate.Loader.IEntityAliases[] EntityAliases { get => throw null; } public static string GenerateSuffix(int index) => throw null; - public static string[] GenerateSuffixes(int seed, int length) => throw null; public static string[] GenerateSuffixes(int length) => throw null; + public static string[] GenerateSuffixes(int seed, int length) => throw null; protected virtual System.Collections.Generic.IDictionary GetCollectionUserProvidedAlias(int index) => throw null; protected static string[] NoSuffix; protected override void PostInstantiate() => throw null; protected abstract string[] Suffixes { get; } } - - // Generated from `NHibernate.Loader.DefaultEntityAliases` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public enum BatchFetchStyle + { + Legacy = 0, + Dynamic = 1, + } + namespace Collection + { + public abstract class AbstractBatchingCollectionInitializer : NHibernate.Loader.Collection.ICollectionInitializer + { + protected NHibernate.Persister.Collection.IQueryableCollection CollectionPersister { get => throw null; } + protected AbstractBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection collectionPersister) => throw null; + public abstract void Initialize(object id, NHibernate.Engine.ISessionImplementor session); + public abstract System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + } + public class BasicCollectionJoinWalker : NHibernate.Loader.Collection.CollectionJoinWalker + { + public BasicCollectionJoinWalker(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + public override string ToString() => throw null; + } + public class BasicCollectionLoader : NHibernate.Loader.Collection.CollectionLoader + { + public BasicCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, NHibernate.Engine.ISessionFactoryImplementor session, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + public BasicCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int batchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected BasicCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected virtual void InitializeFromWalker(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, NHibernate.SqlCommand.SqlString subquery, int batchSize, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + } + public class BatchingCollectionInitializer : NHibernate.Loader.Collection.AbstractBatchingCollectionInitializer + { + public static NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public static NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingOneToManyInitializer(NHibernate.Persister.Collection.OneToManyPersister persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public static NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingOneToManyInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public BatchingCollectionInitializer(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, int[] batchSizes, NHibernate.Loader.Loader[] loaders) : base(default(NHibernate.Persister.Collection.IQueryableCollection)) => throw null; + public BatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int[] batchSizes, NHibernate.Loader.Loader[] loaders) : base(default(NHibernate.Persister.Collection.IQueryableCollection)) => throw null; + public override void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null; + public override System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + } + public abstract class BatchingCollectionInitializerBuilder + { + public virtual NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public virtual NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingOneToManyInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + protected abstract NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters); + protected abstract NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingOneToManyInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters); + protected BatchingCollectionInitializerBuilder() => throw null; + } + public abstract class CollectionJoinWalker : NHibernate.Loader.JoinWalker + { + public CollectionJoinWalker(NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected NHibernate.SqlCommand.SqlStringBuilder WhereString(string alias, string[] columnNames, NHibernate.SqlCommand.SqlString subselect, int batchSize) => throw null; + } + public class CollectionLoader : NHibernate.Loader.OuterJoinLoader, NHibernate.Loader.Collection.ICollectionInitializer + { + protected NHibernate.Persister.Collection.IQueryableCollection CollectionPersister { get => throw null; } + protected virtual System.Collections.Generic.IEnumerable CreateParameterSpecificationsAndAssignBackTrack(System.Collections.Generic.IEnumerable sqlPatameters) => throw null; + public CollectionLoader(NHibernate.Persister.Collection.IQueryableCollection persister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; + protected NHibernate.SqlCommand.SqlString GetSubSelectWithLimits(NHibernate.SqlCommand.SqlString subquery, System.Collections.Generic.ICollection parameterSpecs, NHibernate.Engine.RowSelection processedRowSelection, System.Collections.Generic.IDictionary parameters) => throw null; + public virtual void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null; + public virtual System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool IsSubselectLoadingEnabled { get => throw null; } + protected NHibernate.Type.IType KeyType { get => throw null; } + public override string ToString() => throw null; + } + public class DynamicBatchingCollectionInitializerBuilder : NHibernate.Loader.Collection.BatchingCollectionInitializerBuilder + { + protected override NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + protected override NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingOneToManyInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public DynamicBatchingCollectionInitializerBuilder() => throw null; + } + public interface ICollectionInitializer + { + void Initialize(object id, NHibernate.Engine.ISessionImplementor session); + System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + } + public class LegacyBatchingCollectionInitializerBuilder : NHibernate.Loader.Collection.BatchingCollectionInitializerBuilder + { + protected override NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + protected override NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingOneToManyInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public LegacyBatchingCollectionInitializerBuilder() => throw null; + } + public class OneToManyJoinWalker : NHibernate.Loader.Collection.CollectionJoinWalker + { + public OneToManyJoinWalker(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected override string GenerateAliasForColumn(string rootAlias, string column) => throw null; + protected override bool IsDuplicateAssociation(string foreignKeyTable, string[] foreignKeyColumns) => throw null; + public override string ToString() => throw null; + } + public class OneToManyLoader : NHibernate.Loader.Collection.CollectionLoader + { + public OneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, NHibernate.Engine.ISessionFactoryImplementor session, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + public OneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, int batchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + public OneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected virtual void InitializeFromWalker(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, NHibernate.SqlCommand.SqlString subquery, int batchSize, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + } + public class SubselectCollectionLoader : NHibernate.Loader.Collection.BasicCollectionLoader + { + public SubselectCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection persister, NHibernate.SqlCommand.SqlString subquery, System.Collections.Generic.ICollection entityKeys, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; + public override void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null; + public override System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class SubselectOneToManyLoader : NHibernate.Loader.Collection.OneToManyLoader + { + public SubselectOneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection persister, NHibernate.SqlCommand.SqlString subquery, System.Collections.Generic.ICollection entityKeys, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; + public override void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null; + public override System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + } + } + namespace Criteria + { + public class ComponentCollectionCriteriaInfoProvider : NHibernate.Loader.Criteria.ICriteriaInfoProvider + { + public ComponentCollectionCriteriaInfoProvider(NHibernate.Persister.Collection.IQueryableCollection persister) => throw null; + public NHibernate.Type.IType GetType(string relativePath) => throw null; + public string Name { get => throw null; } + public NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get => throw null; } + public string[] Spaces { get => throw null; } + } + public class CriteriaJoinWalker : NHibernate.Loader.AbstractEntityJoinWalker + { + protected override void AddAssociations() => throw null; + public override string Comment { get => throw null; } + protected override NHibernate.Loader.OuterJoinableAssociation CreateRootAssociation() => throw null; + public CriteriaJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Loader.Criteria.CriteriaQueryTranslator translator, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.ICriteria criteria, string rootEntityName, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected override string GenerateRootAlias(string tableName) => throw null; + protected override string GenerateTableAlias(int n, string path, string pathAlias, NHibernate.Persister.Entity.IJoinable joinable) => throw null; + protected override System.Collections.Generic.IReadOnlyCollection GetChildAliases(string parentSqlAlias, string childPath) => throw null; + protected override System.Collections.Generic.ISet GetEntityFetchLazyProperties(string path) => throw null; + protected override NHibernate.SqlCommand.JoinType GetJoinType(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, string path, string pathAlias, string lhsTable, string[] lhsColumns, bool nullable, int currentDepth, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; + protected override NHibernate.SelectMode GetSelectMode(string path) => throw null; + protected override NHibernate.SqlCommand.SqlString GetWithClause(string path, string pathAlias) => throw null; + public bool[] IncludeInResultRow { get => throw null; } + public System.Collections.Generic.ISet QuerySpaces { get => throw null; } + public NHibernate.Type.IType[] ResultTypes { get => throw null; } + public string[] UserAliases { get => throw null; } + protected override void WalkEntityTree(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias, string path) => throw null; + protected override NHibernate.SqlCommand.SqlString WhereFragment { get => throw null; } + } + public class CriteriaLoader : NHibernate.Loader.OuterJoinLoader + { + protected override NHibernate.SqlCommand.SqlString ApplyLocks(NHibernate.SqlCommand.SqlString sqlSelectString, System.Collections.Generic.IDictionary lockModes, NHibernate.Dialect.Dialect dialect) => throw null; + protected override bool AreResultSetRowsTransformedImmediately() => throw null; + public CriteriaLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.CriteriaImpl rootCriteria, string rootEntityName, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected override System.Collections.Generic.ISet[] EntityFetchLazyProperties { get => throw null; } + public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary lockModes) => throw null; + protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; + protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer customResultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; + protected override System.Threading.Tasks.Task GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer customResultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer) => throw null; + protected override object[] GetResultRow(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; + protected override System.Threading.Tasks.Task GetResultRowAsync(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected override bool[] IncludeInResultRow { get => throw null; } + protected override bool IsChildFetchEntity(int i) => throw null; + protected override bool IsCollectionPersisterCacheable(NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null; + public override bool IsSubselectLoadingEnabled { get => throw null; } + public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session) => throw null; + public System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Collections.Generic.ISet QuerySpaces { get => throw null; } + protected override NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; + protected override string[] ResultRowAliases { get => throw null; } + public NHibernate.Loader.Criteria.CriteriaQueryTranslator Translator { get => throw null; } + } + public class CriteriaQueryTranslator : NHibernate.Criterion.ICriteriaQuery, NHibernate.Loader.Criteria.ISupportEntityProjectionCriteriaQuery + { + public System.Collections.Generic.ICollection CollectedParameters { get => throw null; } + public System.Collections.Generic.ICollection CollectedParameterSpecifications { get => throw null; } + public NHibernate.SqlCommand.Parameter CreateSkipParameter(int value) => throw null; + public NHibernate.SqlCommand.Parameter CreateTakeParameter(int value) => throw null; + public CriteriaQueryTranslator(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.CriteriaImpl criteria, string rootEntityName, string rootSQLAlias, NHibernate.Criterion.ICriteriaQuery outerQuery) => throw null; + public CriteriaQueryTranslator(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.CriteriaImpl criteria, string rootEntityName, string rootSQLAlias) => throw null; + public class EntityJoinInfo + { + public NHibernate.ICriteria Criteria; + public EntityJoinInfo() => throw null; + public NHibernate.Persister.Entity.IQueryable Persister; + } + public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; } + public string GenerateSQLAlias() => throw null; + public System.Collections.Generic.IReadOnlyCollection GetChildAliases(string parentSqlAlias, string childPath) => throw null; + public string GetColumn(NHibernate.ICriteria criteria, string propertyName) => throw null; + public string[] GetColumnAliasesUsingProjection(NHibernate.ICriteria subcriteria, string propertyName) => throw null; + public string[] GetColumns(NHibernate.ICriteria subcriteria, string propertyName) => throw null; + public string[] GetColumnsUsingProjection(NHibernate.ICriteria subcriteria, string propertyName) => throw null; + public NHibernate.ICriteria GetCriteria(string path) => throw null; + public NHibernate.ICriteria GetCriteria(string path, string critAlias) => throw null; + public string GetEntityName(NHibernate.ICriteria criteria) => throw null; + public string GetEntityName(NHibernate.ICriteria subcriteria, string propertyName) => throw null; + public System.Collections.Generic.IList GetEntityProjections() => throw null; + public NHibernate.SqlCommand.SqlString GetGroupBy() => throw null; + public NHibernate.SqlCommand.SqlString GetHavingCondition() => throw null; + public string[] GetIdentifierColumns(NHibernate.ICriteria subcriteria) => throw null; + public NHibernate.Type.IType GetIdentifierType(NHibernate.ICriteria subcriteria) => throw null; + public int GetIndexForAlias() => throw null; + public NHibernate.SqlCommand.JoinType GetJoinType(string path) => throw null; + public NHibernate.SqlCommand.JoinType GetJoinType(string path, string critAlias) => throw null; + public NHibernate.SqlCommand.SqlString GetOrderBy() => throw null; + public string GetPropertyName(string propertyName) => throw null; + public NHibernate.Engine.QueryParameters GetQueryParameters() => throw null; + public System.Collections.Generic.ISet GetQuerySpaces() => throw null; + public NHibernate.SqlCommand.SqlString GetSelect() => throw null; + public string GetSQLAlias(NHibernate.ICriteria criteria) => throw null; + public string GetSQLAlias(NHibernate.ICriteria criteria, string propertyName) => throw null; + public NHibernate.Type.IType GetType(NHibernate.ICriteria subcriteria, string propertyName) => throw null; + public NHibernate.Engine.TypedValue GetTypedIdentifierValue(NHibernate.ICriteria subcriteria, object value) => throw null; + public NHibernate.Engine.TypedValue GetTypedValue(NHibernate.ICriteria subcriteria, string propertyName, object value) => throw null; + public NHibernate.Type.IType GetTypeUsingProjection(NHibernate.ICriteria subcriteria, string propertyName) => throw null; + public NHibernate.SqlCommand.SqlString GetWhereCondition() => throw null; + public NHibernate.SqlCommand.SqlString GetWithClause(string path) => throw null; + public NHibernate.SqlCommand.SqlString GetWithClause(string path, string pathAlias) => throw null; + protected static bool HasGroupedOrAggregateProjection(NHibernate.Criterion.IProjection[] projections) => throw null; + public bool HasProjection { get => throw null; } + public bool IsJoin(string path) => throw null; + public bool IsJoin(string path, string critAlias) => throw null; + public System.Collections.Generic.IEnumerable NewQueryParameter(NHibernate.Engine.TypedValue parameter) => throw null; + public string[] ProjectedAliases { get => throw null; } + public string[] ProjectedColumnAliases { get => throw null; } + public NHibernate.Type.IType[] ProjectedTypes { get => throw null; } + public void RegisterEntityProjection(NHibernate.Criterion.EntityProjection projection) => throw null; + public NHibernate.SqlCommand.SqlString RenderSQLAliases(NHibernate.SqlCommand.SqlString sqlTemplate) => throw null; + public NHibernate.Impl.CriteriaImpl RootCriteria { get => throw null; } + NHibernate.ICriteria NHibernate.Loader.Criteria.ISupportEntityProjectionCriteriaQuery.RootCriteria { get => throw null; } + public static string RootSqlAlias; + public string RootSQLAlias { get => throw null; } + public int SQLAliasCount { get => throw null; } + public bool TryGetType(NHibernate.ICriteria subcriteria, string propertyName, out NHibernate.Type.IType type) => throw null; + public System.Collections.Generic.ISet UncacheableCollectionPersisters { get => throw null; } + } + public class EntityCriteriaInfoProvider : NHibernate.Loader.Criteria.ICriteriaInfoProvider + { + public EntityCriteriaInfoProvider(NHibernate.Persister.Entity.IQueryable persister) => throw null; + public NHibernate.Type.IType GetType(string relativePath) => throw null; + public string Name { get => throw null; } + public NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get => throw null; } + public string[] Spaces { get => throw null; } + } + public interface ICriteriaInfoProvider + { + NHibernate.Type.IType GetType(string relativePath); + string Name { get; } + NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get; } + string[] Spaces { get; } + } + public interface ISupportEntityProjectionCriteriaQuery + { + void RegisterEntityProjection(NHibernate.Criterion.EntityProjection projection); + NHibernate.ICriteria RootCriteria { get; } + } + public class ScalarCollectionCriteriaInfoProvider : NHibernate.Loader.Criteria.ICriteriaInfoProvider + { + public ScalarCollectionCriteriaInfoProvider(NHibernate.Hql.Util.SessionFactoryHelper helper, string role) => throw null; + public NHibernate.Type.IType GetType(string relativePath) => throw null; + public string Name { get => throw null; } + public NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get => throw null; } + public string[] Spaces { get => throw null; } + } + } + namespace Custom + { + public class CollectionFetchReturn : NHibernate.Loader.Custom.FetchReturn + { + public NHibernate.Loader.ICollectionAliases CollectionAliases { get => throw null; } + public CollectionFetchReturn(string alias, NHibernate.Loader.Custom.NonScalarReturn owner, string ownerProperty, NHibernate.Loader.ICollectionAliases collectionAliases, NHibernate.Loader.IEntityAliases elementEntityAliases, NHibernate.LockMode lockMode) : base(default(NHibernate.Loader.Custom.NonScalarReturn), default(string), default(string), default(NHibernate.LockMode)) => throw null; + public NHibernate.Loader.IEntityAliases ElementEntityAliases { get => throw null; } + } + public class CollectionReturn : NHibernate.Loader.Custom.NonScalarReturn + { + public NHibernate.Loader.ICollectionAliases CollectionAliases { get => throw null; } + public CollectionReturn(string alias, string ownerEntityName, string ownerProperty, NHibernate.Loader.ICollectionAliases collectionAliases, NHibernate.Loader.IEntityAliases elementEntityAliases, NHibernate.LockMode lockMode) : base(default(string), default(NHibernate.LockMode)) => throw null; + public NHibernate.Loader.IEntityAliases ElementEntityAliases { get => throw null; } + public string OwnerEntityName { get => throw null; } + public string OwnerProperty { get => throw null; } + } + public class ColumnCollectionAliases : NHibernate.Loader.ICollectionAliases + { + public ColumnCollectionAliases(System.Collections.Generic.IDictionary userProvidedAliases, NHibernate.Persister.Collection.ISqlLoadableCollection persister) => throw null; + public string Suffix { get => throw null; } + public string[] SuffixedElementAliases { get => throw null; } + public string SuffixedIdentifierAlias { get => throw null; } + public string[] SuffixedIndexAliases { get => throw null; } + public string[] SuffixedKeyAliases { get => throw null; } + public override string ToString() => throw null; + } + public class ColumnEntityAliases : NHibernate.Loader.DefaultEntityAliases + { + public ColumnEntityAliases(System.Collections.Generic.IDictionary returnProperties, NHibernate.Persister.Entity.ILoadable persister, string suffix) : base(default(NHibernate.Persister.Entity.ILoadable), default(string)) => throw null; + protected override string GetDiscriminatorAlias(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null; + protected override string[] GetIdentifierAliases(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null; + protected override string[] GetPropertyAliases(NHibernate.Persister.Entity.ILoadable persister, int j) => throw null; + } + public class CustomLoader : NHibernate.Loader.Loader + { + protected override void AutoDiscoverTypes(System.Data.Common.DbDataReader rs, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer) => throw null; + protected override NHibernate.Loader.ICollectionAliases[] CollectionAliases { get => throw null; } + protected override int[] CollectionOwners { get => throw null; } + protected override NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; } + public CustomLoader(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; + protected override NHibernate.Loader.IEntityAliases[] EntityAliases { get => throw null; } + public override NHibernate.Persister.Entity.ILoadable[] EntityPersisters { get => throw null; } + public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary lockModesMap) => throw null; + protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; + protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; + protected override System.Threading.Tasks.Task GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer) => throw null; + protected override object[] GetResultRow(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; + protected override System.Threading.Tasks.Task GetResultRowAsync(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected override bool[] IncludeInResultRow { get => throw null; } + public interface IResultColumnProcessor + { + object Extract(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session); + System.Threading.Tasks.Task ExtractAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + void PerformDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata, System.Collections.Generic.IList types, System.Collections.Generic.IList aliases); + } + public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null; + public System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; + public class MetaData + { + public MetaData(System.Data.Common.DbDataReader resultSet) => throw null; + public int GetColumnCount() => throw null; + public string GetColumnName(int position) => throw null; + public int GetColumnPosition(string columnName) => throw null; + public NHibernate.Type.IType GetHibernateType(int columnPos) => throw null; + } + public System.Collections.Generic.IEnumerable NamedParameters { get => throw null; } + public class NonScalarResultColumnProcessor : NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor + { + public NonScalarResultColumnProcessor(int position) => throw null; + public object Extract(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session) => throw null; + public System.Threading.Tasks.Task ExtractAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public void PerformDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata, System.Collections.Generic.IList types, System.Collections.Generic.IList aliases) => throw null; + } + protected override int[] Owners { get => throw null; } + public override string QueryIdentifier { get => throw null; } + public System.Collections.Generic.ISet QuerySpaces { get => throw null; } + protected override void ResetEffectiveExpectedType(System.Collections.Generic.IEnumerable parameterSpecs, NHibernate.Engine.QueryParameters queryParameters) => throw null; + protected override NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; + protected override string[] ResultRowAliases { get => throw null; } + public class ResultRowProcessor + { + public object BuildResultRow(object[] data, System.Data.Common.DbDataReader resultSet, bool hasTransformer, NHibernate.Engine.ISessionImplementor session) => throw null; + public object[] BuildResultRow(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session) => throw null; + public System.Threading.Tasks.Task BuildResultRowAsync(object[] data, System.Data.Common.DbDataReader resultSet, bool hasTransformer, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task BuildResultRowAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor[] ColumnProcessors { get => throw null; } + public ResultRowProcessor(bool hasScalars, NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor[] columnProcessors) => throw null; + public void PrepareForAutoDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata) => throw null; + } + public string[] ReturnAliases { get => throw null; } + public class ScalarResultColumnProcessor : NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor + { + public ScalarResultColumnProcessor(int position) => throw null; + public ScalarResultColumnProcessor(string alias, NHibernate.Type.IType type) => throw null; + public object Extract(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session) => throw null; + public System.Threading.Tasks.Task ExtractAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public void PerformDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata, System.Collections.Generic.IList types, System.Collections.Generic.IList aliases) => throw null; + } + public override NHibernate.SqlCommand.SqlString SqlString { get => throw null; } + } + public class EntityFetchReturn : NHibernate.Loader.Custom.FetchReturn + { + public EntityFetchReturn(string alias, NHibernate.Loader.IEntityAliases entityAliases, NHibernate.Loader.Custom.NonScalarReturn owner, string ownerProperty, NHibernate.LockMode lockMode) : base(default(NHibernate.Loader.Custom.NonScalarReturn), default(string), default(string), default(NHibernate.LockMode)) => throw null; + public NHibernate.Loader.IEntityAliases EntityAliases { get => throw null; } + } + public abstract class FetchReturn : NHibernate.Loader.Custom.NonScalarReturn + { + public FetchReturn(NHibernate.Loader.Custom.NonScalarReturn owner, string ownerProperty, string alias, NHibernate.LockMode lockMode) : base(default(string), default(NHibernate.LockMode)) => throw null; + public NHibernate.Loader.Custom.NonScalarReturn Owner { get => throw null; } + public string OwnerProperty { get => throw null; } + } + public interface ICustomQuery + { + System.Collections.Generic.IEnumerable CollectedParametersSpecifications { get; } + System.Collections.Generic.IList CustomQueryReturns { get; } + System.Collections.Generic.ISet QuerySpaces { get; } + NHibernate.SqlCommand.SqlString SQL { get; } + } + public interface IReturn + { + } + public abstract class NonScalarReturn : NHibernate.Loader.Custom.IReturn + { + public string Alias { get => throw null; } + public NonScalarReturn(string alias, NHibernate.LockMode lockMode) => throw null; + public NHibernate.LockMode LockMode { get => throw null; } + } + public class RootReturn : NHibernate.Loader.Custom.NonScalarReturn + { + public RootReturn(string alias, string entityName, NHibernate.Loader.IEntityAliases entityAliases, NHibernate.LockMode lockMode) : base(default(string), default(NHibernate.LockMode)) => throw null; + public NHibernate.Loader.IEntityAliases EntityAliases { get => throw null; } + public string EntityName { get => throw null; } + } + public class ScalarReturn : NHibernate.Loader.Custom.IReturn + { + public string ColumnAlias { get => throw null; } + public ScalarReturn(NHibernate.Type.IType type, string columnAlias) => throw null; + public NHibernate.Type.IType Type { get => throw null; } + } + namespace Sql + { + public class SQLCustomQuery : NHibernate.Loader.Custom.ICustomQuery + { + public System.Collections.Generic.IEnumerable CollectedParametersSpecifications { get => throw null; } + public SQLCustomQuery(NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] queryReturns, string sqlQuery, System.Collections.Generic.ICollection additionalQuerySpaces, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public System.Collections.Generic.IList CustomQueryReturns { get => throw null; } + public System.Collections.Generic.ISet QuerySpaces { get => throw null; } + public NHibernate.SqlCommand.SqlString SQL { get => throw null; } + } + public class SQLQueryParser + { + public System.Collections.Generic.IEnumerable CollectedParametersSpecifications { get => throw null; } + public SQLQueryParser(NHibernate.Engine.ISessionFactoryImplementor factory, string sqlQuery, NHibernate.Loader.Custom.Sql.SQLQueryParser.IParserContext context) => throw null; + public interface IParserContext + { + NHibernate.Persister.Collection.ISqlLoadableCollection GetCollectionPersisterByAlias(string alias); + string GetCollectionSuffixByAlias(string alias); + NHibernate.Persister.Entity.ISqlLoadable GetEntityPersisterByAlias(string alias); + string GetEntitySuffixByAlias(string alias); + System.Collections.Generic.IDictionary GetPropertyResultsMapByAlias(string alias); + bool IsCollectionAlias(string aliasName); + bool IsEntityAlias(string aliasName); + } + public class ParameterSubstitutionRecognizer : NHibernate.Engine.Query.ParameterParser.IRecognizer + { + public ParameterSubstitutionRecognizer(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public void JpaPositionalParameter(string name, int position) => throw null; + public void NamedParameter(string name, int position) => throw null; + public void OrdinalParameter(int position) => throw null; + public void Other(char character) => throw null; + public void Other(string sqlPart) => throw null; + public void OutParameter(int position) => throw null; + public System.Collections.Generic.IEnumerable ParametersSpecifications { get => throw null; } + } + public NHibernate.SqlCommand.SqlString Process() => throw null; + public bool QueryHasAliases { get => throw null; } + } + public class SQLQueryReturnProcessor + { + public SQLQueryReturnProcessor(NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] queryReturns, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public System.Collections.IList GenerateCustomReturns(bool queryHadAliases) => throw null; + public NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.ResultAliasContext Process() => throw null; + public class ResultAliasContext + { + public ResultAliasContext(NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor parent) => throw null; + public NHibernate.Persister.Collection.ISqlLoadableCollection GetCollectionPersister(string alias) => throw null; + public string GetCollectionSuffix(string alias) => throw null; + public NHibernate.Persister.Entity.ISqlLoadable GetEntityPersister(string alias) => throw null; + public string GetEntitySuffix(string alias) => throw null; + public string GetOwnerAlias(string alias) => throw null; + public System.Collections.Generic.IDictionary GetPropertyResultsMap(string alias) => throw null; + } + } + } + } public class DefaultEntityAliases : NHibernate.Loader.IEntityAliases { - public DefaultEntityAliases(System.Collections.Generic.IDictionary userProvidedAliases, NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null; public DefaultEntityAliases(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null; + public DefaultEntityAliases(System.Collections.Generic.IDictionary userProvidedAliases, NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null; protected virtual string GetDiscriminatorAlias(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null; protected virtual string[] GetIdentifierAliases(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null; protected virtual string[] GetPropertyAliases(NHibernate.Persister.Entity.ILoadable persister, int j) => throw null; @@ -21609,8 +18580,99 @@ namespace NHibernate public string[][] SuffixedPropertyAliases { get => throw null; } public string[] SuffixedVersionAliases { get => throw null; } } - - // Generated from `NHibernate.Loader.GeneratedCollectionAliases` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace Entity + { + public abstract class AbstractBatchingEntityLoader : NHibernate.Loader.Entity.IUniqueEntityLoader + { + protected virtual NHibernate.Engine.QueryParameters BuildQueryParameters(object id, object[] ids, object optionalObject) => throw null; + protected AbstractBatchingEntityLoader(NHibernate.Persister.Entity.IEntityPersister persister) => throw null; + protected object GetObjectFromList(System.Collections.IList results, object id, NHibernate.Engine.ISessionImplementor session) => throw null; + public abstract object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session); + public abstract System.Threading.Tasks.Task LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + protected NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; } + } + public abstract class AbstractEntityLoader : NHibernate.Loader.OuterJoinLoader, NHibernate.Loader.Entity.IUniqueEntityLoader + { + protected AbstractEntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Type.IType uniqueKeyType, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected string entityName; + protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; + protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; + protected override System.Threading.Tasks.Task GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected override bool IsSingleRowLoader { get => throw null; } + public object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session) => throw null; + protected virtual object Load(NHibernate.Engine.ISessionImplementor session, object id, object optionalObject, object optionalId) => throw null; + public System.Threading.Tasks.Task LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected virtual System.Threading.Tasks.Task LoadAsync(NHibernate.Engine.ISessionImplementor session, object id, object optionalObject, object optionalId, System.Threading.CancellationToken cancellationToken) => throw null; + protected static NHibernate.INHibernateLogger log; + protected NHibernate.Persister.Entity.IOuterJoinLoadable persister; + protected NHibernate.Type.IType UniqueKeyType { get => throw null; } + } + public class BatchingEntityLoader : NHibernate.Loader.Entity.AbstractBatchingEntityLoader + { + public static NHibernate.Loader.Entity.IUniqueEntityLoader CreateBatchingEntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int maxBatchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public BatchingEntityLoader(NHibernate.Persister.Entity.IEntityPersister persister, int[] batchSizes, NHibernate.Loader.Loader[] loaders) : base(default(NHibernate.Persister.Entity.IEntityPersister)) => throw null; + public override object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session) => throw null; + public override System.Threading.Tasks.Task LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + } + public abstract class BatchingEntityLoaderBuilder + { + protected abstract NHibernate.Loader.Entity.IUniqueEntityLoader BuildBatchingLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters); + public virtual NHibernate.Loader.Entity.IUniqueEntityLoader BuildLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + protected BatchingEntityLoaderBuilder() => throw null; + } + public class CascadeEntityJoinWalker : NHibernate.Loader.AbstractEntityJoinWalker + { + public override string Comment { get => throw null; } + public CascadeEntityJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.CascadingAction action, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected override bool IsJoinedFetchEnabled(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; + protected override bool IsTooManyCollections { get => throw null; } + } + public class CascadeEntityLoader : NHibernate.Loader.Entity.AbstractEntityLoader + { + public CascadeEntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.CascadingAction action, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + } + public class CollectionElementLoader : NHibernate.Loader.OuterJoinLoader + { + public CollectionElementLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; + protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer transformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; + protected override System.Threading.Tasks.Task GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer transformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected override bool IsSingleRowLoader { get => throw null; } + public virtual object LoadElement(NHibernate.Engine.ISessionImplementor session, object key, object index) => throw null; + public virtual System.Threading.Tasks.Task LoadElementAsync(NHibernate.Engine.ISessionImplementor session, object key, object index, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class DynamicBatchingEntityLoaderBuilder : NHibernate.Loader.Entity.BatchingEntityLoaderBuilder + { + protected override NHibernate.Loader.Entity.IUniqueEntityLoader BuildBatchingLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public DynamicBatchingEntityLoaderBuilder() => throw null; + } + public class EntityJoinWalker : NHibernate.Loader.AbstractEntityJoinWalker + { + public override string Comment { get => throw null; } + public EntityJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string[] uniqueKey, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected override string GenerateAliasForColumn(string rootAlias, string column) => throw null; + protected override bool IsJoinedFetchEnabled(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; + } + public class EntityLoader : NHibernate.Loader.Entity.AbstractEntityLoader + { + public EntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + public EntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + public EntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string[] uniqueKey, NHibernate.Type.IType uniqueKeyType, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; + protected override bool IsSingleRowLoader { get => throw null; } + public object LoadByUniqueKey(NHibernate.Engine.ISessionImplementor session, object key) => throw null; + public System.Threading.Tasks.Task LoadByUniqueKeyAsync(NHibernate.Engine.ISessionImplementor session, object key, System.Threading.CancellationToken cancellationToken) => throw null; + } + public interface IUniqueEntityLoader + { + object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session); + System.Threading.Tasks.Task LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + } + public class LegacyBatchingEntityLoaderBuilder : NHibernate.Loader.Entity.BatchingEntityLoaderBuilder + { + protected override NHibernate.Loader.Entity.IUniqueEntityLoader BuildBatchingLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public LegacyBatchingEntityLoaderBuilder() => throw null; + } + } public class GeneratedCollectionAliases : NHibernate.Loader.ICollectionAliases { public GeneratedCollectionAliases(System.Collections.Generic.IDictionary userProvidedAliases, NHibernate.Persister.Collection.ICollectionPersister persister, string suffix) => throw null; @@ -21622,8 +18684,43 @@ namespace NHibernate public string[] SuffixedKeyAliases { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.Loader.ICollectionAliases` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace Hql + { + public class QueryLoader : NHibernate.Loader.BasicLoader + { + protected override string[] Aliases { get => throw null; } + protected override NHibernate.SqlCommand.SqlString ApplyLocks(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary lockModes, NHibernate.Dialect.Dialect dialect) => throw null; + protected override int[] CollectionOwners { get => throw null; } + protected override NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; } + protected override string[] CollectionSuffixes { get => throw null; } + public QueryLoader(NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl queryTranslator, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Hql.Ast.ANTLR.Tree.SelectClause selectClause) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; + protected override bool[] EntityEagerPropertyFetches { get => throw null; } + protected override System.Collections.Generic.ISet[] EntityFetchLazyProperties { get => throw null; } + public override NHibernate.Persister.Entity.ILoadable[] EntityPersisters { get => throw null; } + public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary lockModes) => throw null; + protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; + protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; + protected override System.Threading.Tasks.Task GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer) => throw null; + protected override object[] GetResultRow(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; + protected override System.Threading.Tasks.Task GetResultRowAsync(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected override bool[] IncludeInResultRow { get => throw null; } + protected override bool IsCollectionPersisterCacheable(NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null; + public override bool IsSubselectLoadingEnabled { get => throw null; } + public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null; + public System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; + protected override NHibernate.Type.EntityType[] OwnerAssociationTypes { get => throw null; } + protected override int[] Owners { get => throw null; } + public override string QueryIdentifier { get => throw null; } + protected override void ResetEffectiveExpectedType(System.Collections.Generic.IEnumerable parameterSpecs, NHibernate.Engine.QueryParameters queryParameters) => throw null; + protected override NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; + protected override string[] ResultRowAliases { get => throw null; } + public NHibernate.Type.IType[] ReturnTypes { get => throw null; } + public override NHibernate.SqlCommand.SqlString SqlString { get => throw null; } + protected override string[] Suffixes { get => throw null; } + protected override bool UpgradeLocks() => throw null; + } + } public interface ICollectionAliases { string Suffix { get; } @@ -21632,8 +18729,6 @@ namespace NHibernate string[] SuffixedIndexAliases { get; } string[] SuffixedKeyAliases { get; } } - - // Generated from `NHibernate.Loader.IEntityAliases` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntityAliases { string[][] GetSuffixedPropertyAliases(NHibernate.Persister.Entity.ILoadable persister); @@ -21643,86 +18738,98 @@ namespace NHibernate string[][] SuffixedPropertyAliases { get; } string[] SuffixedVersionAliases { get; } } - - // Generated from `NHibernate.Loader.JoinWalker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class JoinWalker { - public string[] Aliases { get => throw null; set => throw null; } - // Generated from `NHibernate.Loader.JoinWalker+AssociationKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class AssociationKey + public string[] Aliases { get => throw null; set { } } + protected sealed class AssociationKey { public AssociationKey(string[] columns, string table) => throw null; public override bool Equals(object other) => throw null; public override int GetHashCode() => throw null; } - - - public bool[] ChildFetchEntities { get => throw null; set => throw null; } - public int[] CollectionOwners { get => throw null; set => throw null; } - public NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; set => throw null; } - public string[] CollectionSuffixes { get => throw null; set => throw null; } + protected System.Collections.Generic.IList associations; + public bool[] ChildFetchEntities { get => throw null; set { } } + protected class CollectionJoinQueueEntry : NHibernate.Loader.JoinWalker.IJoinQueueEntry + { + public CollectionJoinQueueEntry(NHibernate.Persister.Collection.IQueryableCollection persister, string alias, string path, string pathAlias) => throw null; + public void Walk(NHibernate.Loader.JoinWalker walker) => throw null; + } + public int[] CollectionOwners { get => throw null; set { } } + public NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; set { } } + public string[] CollectionSuffixes { get => throw null; set { } } protected static int CountCollectionPersisters(System.Collections.Generic.IList associations) => throw null; protected static int CountEntityPersisters(System.Collections.Generic.IList associations) => throw null; - // Generated from `NHibernate.Loader.JoinWalker+DependentAlias` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + protected JoinWalker(NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; public class DependentAlias { - public string Alias { get => throw null; set => throw null; } + public string Alias { get => throw null; set { } } public DependentAlias() => throw null; - public string[] DependsOn { get => throw null; set => throw null; } + public string[] DependsOn { get => throw null; set { } } } - - protected NHibernate.Dialect.Dialect Dialect { get => throw null; } - public bool[] EagerPropertyFetches { get => throw null; set => throw null; } + public bool[] EagerPropertyFetches { get => throw null; set { } } protected System.Collections.Generic.IDictionary EnabledFilters { get => throw null; } - public System.Collections.Generic.ISet[] EntityFetchLazyProperties { get => throw null; set => throw null; } + public System.Collections.Generic.ISet[] EntityFetchLazyProperties { get => throw null; set { } } + protected class EntityJoinQueueEntry : NHibernate.Loader.JoinWalker.IJoinQueueEntry + { + public EntityJoinQueueEntry(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias, string path) => throw null; + public void Walk(NHibernate.Loader.JoinWalker walker) => throw null; + } protected NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; } protected virtual string GenerateAliasForColumn(string rootAlias, string column) => throw null; protected virtual string GenerateRootAlias(string description) => throw null; - protected virtual string GenerateTableAlias(int n, string path, string pathAlias, NHibernate.Persister.Entity.IJoinable joinable) => throw null; protected virtual string GenerateTableAlias(int n, string path, NHibernate.Persister.Entity.IJoinable joinable) => throw null; + protected virtual string GenerateTableAlias(int n, string path, string pathAlias, NHibernate.Persister.Entity.IJoinable joinable) => throw null; protected virtual System.Collections.Generic.IReadOnlyCollection GetChildAliases(string parentSqlAlias, string childPath) => throw null; protected virtual System.Collections.Generic.ISet GetEntityFetchLazyProperties(string path) => throw null; - protected virtual NHibernate.SqlCommand.JoinType GetJoinType(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, string path, string pathAlias, string lhsTable, string[] lhsColumns, bool nullable, int currentDepth, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; protected virtual NHibernate.SqlCommand.JoinType GetJoinType(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, string path, string lhsTable, string[] lhsColumns, bool nullable, int currentDepth, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; + protected virtual NHibernate.SqlCommand.JoinType GetJoinType(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, string path, string pathAlias, string lhsTable, string[] lhsColumns, bool nullable, int currentDepth, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; protected NHibernate.SqlCommand.JoinType GetJoinType(bool nullable, int currentDepth) => throw null; protected static string GetSelectFragment(NHibernate.Loader.OuterJoinableAssociation join, string entitySuffix, string collectionSuffix, NHibernate.Loader.OuterJoinableAssociation next = default(NHibernate.Loader.OuterJoinableAssociation)) => throw null; protected virtual NHibernate.SelectMode GetSelectMode(string path) => throw null; - protected virtual NHibernate.SqlCommand.SqlString GetWithClause(string path, string pathAlias) => throw null; protected virtual NHibernate.SqlCommand.SqlString GetWithClause(string path) => throw null; + protected virtual NHibernate.SqlCommand.SqlString GetWithClause(string path, string pathAlias) => throw null; + protected interface IJoinQueueEntry + { + void Walk(NHibernate.Loader.JoinWalker walker); + } protected void InitPersisters(System.Collections.Generic.IList associations, NHibernate.LockMode lockMode) => throw null; - protected virtual bool IsDuplicateAssociation(string lhsTable, string[] lhsColumnNames, NHibernate.Type.IAssociationType type) => throw null; protected virtual bool IsDuplicateAssociation(string foreignKeyTable, string[] foreignKeyColumns) => throw null; + protected virtual bool IsDuplicateAssociation(string lhsTable, string[] lhsColumnNames, NHibernate.Type.IAssociationType type) => throw null; protected bool IsJoinable(NHibernate.SqlCommand.JoinType joinType, System.Collections.Generic.ISet visitedAssociationKeys, string lhsTable, string[] lhsColumnNames, NHibernate.Type.IAssociationType type, int depth) => throw null; protected virtual bool IsJoinedFetchEnabled(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; protected bool IsJoinedFetchEnabledInMapping(NHibernate.FetchMode config, NHibernate.Type.IAssociationType type) => throw null; protected virtual bool IsTooDeep(int currentDepth) => throw null; protected virtual bool IsTooManyCollections { get => throw null; } - protected JoinWalker(NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; - public NHibernate.LockMode[] LockModeArray { get => throw null; set => throw null; } - protected NHibernate.SqlCommand.SqlString MergeOrderings(string ass, string orderBy) => throw null; - protected NHibernate.SqlCommand.SqlString MergeOrderings(string ass, NHibernate.SqlCommand.SqlString orderBy) => throw null; + public NHibernate.LockMode[] LockModeArray { get => throw null; set { } } protected NHibernate.SqlCommand.SqlString MergeOrderings(NHibernate.SqlCommand.SqlString ass, NHibernate.SqlCommand.SqlString orderBy) => throw null; + protected NHibernate.SqlCommand.SqlString MergeOrderings(string ass, NHibernate.SqlCommand.SqlString orderBy) => throw null; + protected NHibernate.SqlCommand.SqlString MergeOrderings(string ass, string orderBy) => throw null; protected NHibernate.SqlCommand.JoinFragment MergeOuterJoins(System.Collections.Generic.IList associations) => throw null; - protected NHibernate.SqlCommand.SqlString OrderBy(System.Collections.Generic.IList associations, string orderBy) => throw null; + protected class NextLevelJoinQueueEntry : NHibernate.Loader.JoinWalker.IJoinQueueEntry + { + public static NHibernate.Loader.JoinWalker.NextLevelJoinQueueEntry Instance; + public void Walk(NHibernate.Loader.JoinWalker walker) => throw null; + } protected NHibernate.SqlCommand.SqlString OrderBy(System.Collections.Generic.IList associations, NHibernate.SqlCommand.SqlString orderBy) => throw null; + protected NHibernate.SqlCommand.SqlString OrderBy(System.Collections.Generic.IList associations, string orderBy) => throw null; protected NHibernate.SqlCommand.SqlString OrderBy(System.Collections.Generic.IList associations) => throw null; - public NHibernate.Type.EntityType[] OwnerAssociationTypes { get => throw null; set => throw null; } - public int[] Owners { get => throw null; set => throw null; } - public NHibernate.Persister.Entity.ILoadable[] Persisters { get => throw null; set => throw null; } + public NHibernate.Type.EntityType[] OwnerAssociationTypes { get => throw null; set { } } + public int[] Owners { get => throw null; set { } } + public NHibernate.Persister.Entity.ILoadable[] Persisters { get => throw null; set { } } + protected void ProcessJoins() => throw null; public string SelectString(System.Collections.Generic.IList associations) => throw null; - public NHibernate.SqlCommand.SqlString SqlString { get => throw null; set => throw null; } + public NHibernate.SqlCommand.SqlString SqlString { get => throw null; set { } } protected static string SubPath(string path, string property) => throw null; - public string[] Suffixes { get => throw null; set => throw null; } + public string[] Suffixes { get => throw null; set { } } protected void WalkCollectionTree(NHibernate.Persister.Collection.IQueryableCollection persister, string alias) => throw null; + protected void WalkComponentTree(NHibernate.Type.IAbstractComponentType componentType, int begin, string alias, string path, NHibernate.Engine.ILhsAssociationTypeSqlInfo associationTypeSQLInfo) => throw null; protected void WalkComponentTree(NHibernate.Type.IAbstractComponentType componentType, int begin, string alias, string path, int currentDepth, NHibernate.Engine.ILhsAssociationTypeSqlInfo associationTypeSQLInfo) => throw null; protected void WalkEntityTree(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias) => throw null; + protected virtual void WalkEntityTree(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias, string path) => throw null; protected virtual void WalkEntityTree(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias, string path, int currentDepth) => throw null; - protected NHibernate.SqlCommand.SqlStringBuilder WhereString(string alias, string[] columnNames, int batchSize) => throw null; - protected System.Collections.Generic.IList associations; + protected virtual NHibernate.SqlCommand.SqlStringBuilder WhereString(string alias, string[] columnNames, int batchSize) => throw null; } - - // Generated from `NHibernate.Loader.Loader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class Loader { protected NHibernate.SqlCommand.SqlString AddLimitsParametersIfNeeded(NHibernate.SqlCommand.SqlString sqlString, System.Collections.Generic.ICollection parameterSpecs, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -21730,18 +18837,19 @@ namespace NHibernate protected virtual string[] Aliases { get => throw null; } protected virtual NHibernate.SqlCommand.SqlString ApplyLocks(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary lockModes, NHibernate.Dialect.Dialect dialect) => throw null; protected virtual bool AreResultSetRowsTransformedImmediately() => throw null; - protected internal virtual void AutoDiscoverTypes(System.Data.Common.DbDataReader rs, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer) => throw null; - protected internal virtual void AutoDiscoverTypes(System.Data.Common.DbDataReader rs) => throw null; + protected virtual void AutoDiscoverTypes(System.Data.Common.DbDataReader rs) => throw null; + protected virtual void AutoDiscoverTypes(System.Data.Common.DbDataReader rs, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer) => throw null; public virtual NHibernate.Loader.Loader.QueryCacheInfo CacheInfo { get => throw null; } protected void CachePersistersWithCollections(System.Collections.Generic.IEnumerable resultTypePersisters) => throw null; public NHibernate.Type.IType[] CacheTypes { get => throw null; } protected abstract NHibernate.Loader.ICollectionAliases[] CollectionAliases { get; } protected virtual int[] CollectionOwners { get => throw null; } - protected internal virtual NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; } + protected virtual NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; } public virtual NHibernate.SqlCommand.ISqlCommand CreateSqlCommand(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; - protected System.Collections.IList DoList(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer, NHibernate.Cache.QueryCacheResultBuilder queryCacheResultBuilder) => throw null; - protected System.Collections.IList DoList(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer) => throw null; + protected Loader(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; protected System.Collections.IList DoList(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null; + protected System.Collections.IList DoList(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer) => throw null; + protected System.Collections.IList DoList(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer, NHibernate.Cache.QueryCacheResultBuilder queryCacheResultBuilder) => throw null; protected System.Threading.Tasks.Task DoListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; protected System.Threading.Tasks.Task DoListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer, System.Threading.CancellationToken cancellationToken) => throw null; protected System.Threading.Tasks.Task DoListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer, NHibernate.Cache.QueryCacheResultBuilder queryCacheResultBuilder, System.Threading.CancellationToken cancellationToken) => throw null; @@ -21771,1817 +18879,186 @@ namespace NHibernate public virtual bool IsSubselectLoadingEnabled { get => throw null; } protected System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet querySpaces, NHibernate.Type.IType[] resultTypes) => throw null; protected System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet querySpaces) => throw null; - protected System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet querySpaces, System.Threading.CancellationToken cancellationToken) => throw null; protected System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet querySpaces, NHibernate.Type.IType[] resultTypes, System.Threading.CancellationToken cancellationToken) => throw null; + protected System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet querySpaces, System.Threading.CancellationToken cancellationToken) => throw null; public void LoadCollection(NHibernate.Engine.ISessionImplementor session, object id, NHibernate.Type.IType type) => throw null; public System.Threading.Tasks.Task LoadCollectionAsync(NHibernate.Engine.ISessionImplementor session, object id, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken) => throw null; public void LoadCollectionBatch(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType type) => throw null; public System.Threading.Tasks.Task LoadCollectionBatchAsync(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken) => throw null; protected void LoadCollectionSubselect(NHibernate.Engine.ISessionImplementor session, object[] ids, object[] parameterValues, NHibernate.Type.IType[] parameterTypes, System.Collections.Generic.IDictionary namedParameters, NHibernate.Type.IType type) => throw null; protected System.Threading.Tasks.Task LoadCollectionSubselectAsync(NHibernate.Engine.ISessionImplementor session, object[] ids, object[] parameterValues, NHibernate.Type.IType[] parameterTypes, System.Collections.Generic.IDictionary namedParameters, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken) => throw null; - protected System.Collections.IList LoadEntity(NHibernate.Engine.ISessionImplementor session, object key, object index, NHibernate.Type.IType keyType, NHibernate.Type.IType indexType, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; protected System.Collections.IList LoadEntity(NHibernate.Engine.ISessionImplementor session, object id, NHibernate.Type.IType identifierType, object optionalObject, string optionalEntityName, object optionalIdentifier, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; - protected System.Threading.Tasks.Task LoadEntityAsync(NHibernate.Engine.ISessionImplementor session, object key, object index, NHibernate.Type.IType keyType, NHibernate.Type.IType indexType, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + protected System.Collections.IList LoadEntity(NHibernate.Engine.ISessionImplementor session, object key, object index, NHibernate.Type.IType keyType, NHibernate.Type.IType indexType, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; protected System.Threading.Tasks.Task LoadEntityAsync(NHibernate.Engine.ISessionImplementor session, object id, NHibernate.Type.IType identifierType, object optionalObject, string optionalEntityName, object optionalIdentifier, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal System.Collections.IList LoadEntityBatch(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType idType, object optionalObject, string optionalEntityName, object optionalId, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; - protected internal System.Threading.Tasks.Task LoadEntityBatchAsync(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType idType, object optionalObject, string optionalEntityName, object optionalId, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + protected System.Threading.Tasks.Task LoadEntityAsync(NHibernate.Engine.ISessionImplementor session, object key, object index, NHibernate.Type.IType keyType, NHibernate.Type.IType indexType, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + protected System.Collections.IList LoadEntityBatch(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType idType, object optionalObject, string optionalEntityName, object optionalId, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; + protected System.Collections.IList LoadEntityBatch(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.QueryParameters queryParameters) => throw null; + protected System.Threading.Tasks.Task LoadEntityBatchAsync(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType idType, object optionalObject, string optionalEntityName, object optionalId, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null; + protected System.Threading.Tasks.Task LoadEntityBatchAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; protected object LoadSingleRow(System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, bool returnProxies) => throw null; protected System.Threading.Tasks.Task LoadSingleRowAsync(System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, bool returnProxies, System.Threading.CancellationToken cancellationToken) => throw null; - protected Loader(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; protected virtual NHibernate.Type.EntityType[] OwnerAssociationTypes { get => throw null; } protected virtual int[] Owners { get => throw null; } protected virtual void PostInstantiate() => throw null; - protected internal virtual System.Data.Common.DbCommand PrepareQueryCommand(NHibernate.Engine.QueryParameters queryParameters, bool scroll, NHibernate.Engine.ISessionImplementor session) => throw null; - protected internal virtual System.Threading.Tasks.Task PrepareQueryCommandAsync(NHibernate.Engine.QueryParameters queryParameters, bool scroll, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected virtual System.Data.Common.DbCommand PrepareQueryCommand(NHibernate.Engine.QueryParameters queryParameters, bool scroll, NHibernate.Engine.ISessionImplementor session) => throw null; + protected virtual System.Threading.Tasks.Task PrepareQueryCommandAsync(NHibernate.Engine.QueryParameters queryParameters, bool scroll, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual NHibernate.SqlCommand.SqlString PreprocessSQL(NHibernate.SqlCommand.SqlString sql, NHibernate.Engine.QueryParameters parameters, NHibernate.Dialect.Dialect dialect) => throw null; - // Generated from `NHibernate.Loader.Loader+QueryCacheInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryCacheInfo + public sealed class QueryCacheInfo { - public System.Collections.Generic.IReadOnlyList AdditionalEntities { get => throw null; set => throw null; } - public NHibernate.Type.IType[] CacheTypes { get => throw null; set => throw null; } + public System.Collections.Generic.IReadOnlyList AdditionalEntities { get => throw null; set { } } + public NHibernate.Type.IType[] CacheTypes { get => throw null; set { } } public QueryCacheInfo() => throw null; } - - public virtual string QueryIdentifier { get => throw null; } protected virtual void ResetEffectiveExpectedType(System.Collections.Generic.IEnumerable parameterSpecs, NHibernate.Engine.QueryParameters queryParameters) => throw null; protected virtual NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; protected virtual string[] ResultRowAliases { get => throw null; } - public NHibernate.Type.IType[] ResultTypes { get => throw null; set => throw null; } + public NHibernate.Type.IType[] ResultTypes { get => throw null; set { } } public abstract NHibernate.SqlCommand.SqlString SqlString { get; } public override string ToString() => throw null; protected bool TryGetLimitString(NHibernate.Dialect.Dialect dialect, NHibernate.SqlCommand.SqlString queryString, int? offset, int? limit, NHibernate.SqlCommand.Parameter offsetParameter, NHibernate.SqlCommand.Parameter limitParameter, out NHibernate.SqlCommand.SqlString result) => throw null; protected virtual bool UpgradeLocks() => throw null; } - - // Generated from `NHibernate.Loader.OuterJoinLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public sealed class OuterJoinableAssociation + { + public void AddJoins(NHibernate.SqlCommand.JoinFragment outerjoin) => throw null; + public void AddManyToManyJoin(NHibernate.SqlCommand.JoinFragment outerjoin, NHibernate.Persister.Collection.IQueryableCollection collection) => throw null; + public OuterJoinableAssociation(NHibernate.Type.IAssociationType joinableType, string lhsAlias, string[] lhsColumns, string rhsAlias, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString withClause, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters, NHibernate.SelectMode selectMode) => throw null; + public OuterJoinableAssociation(NHibernate.Type.IAssociationType joinableType, string lhsAlias, string[] lhsColumns, string rhsAlias, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString withClause, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public System.Collections.Generic.ISet EntityFetchLazyProperties { get => throw null; set { } } + public int GetOwner(System.Collections.Generic.IList associations) => throw null; + public bool IsCollection { get => throw null; } + public bool IsManyToManyWith(NHibernate.Loader.OuterJoinableAssociation other) => throw null; + public NHibernate.Persister.Entity.IJoinable Joinable { get => throw null; } + public NHibernate.Type.IAssociationType JoinableType { get => throw null; } + public NHibernate.SqlCommand.JoinType JoinType { get => throw null; } + public NHibernate.SqlCommand.SqlString On { get => throw null; } + public string RHSAlias { get => throw null; } + public string RHSUniqueKeyName { get => throw null; } + public NHibernate.SelectMode SelectMode { get => throw null; } + public void ValidateJoin(string path) => throw null; + } public abstract class OuterJoinLoader : NHibernate.Loader.BasicLoader { protected override string[] Aliases { get => throw null; } protected override int[] CollectionOwners { get => throw null; } - protected internal override NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; } + protected override NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; } protected override string[] CollectionSuffixes { get => throw null; } + protected OuterJoinLoader(NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; protected NHibernate.Dialect.Dialect Dialect { get => throw null; } public System.Collections.Generic.IDictionary EnabledFilters { get => throw null; } protected override bool[] EntityEagerPropertyFetches { get => throw null; } public override NHibernate.Persister.Entity.ILoadable[] EntityPersisters { get => throw null; } public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary lockModes) => throw null; protected void InitFromWalker(NHibernate.Loader.JoinWalker walker) => throw null; - protected OuterJoinLoader(NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; protected override NHibernate.Type.EntityType[] OwnerAssociationTypes { get => throw null; } protected override int[] Owners { get => throw null; } public override NHibernate.SqlCommand.SqlString SqlString { get => throw null; } protected override string[] Suffixes { get => throw null; } } - - // Generated from `NHibernate.Loader.OuterJoinableAssociation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OuterJoinableAssociation - { - public void AddJoins(NHibernate.SqlCommand.JoinFragment outerjoin) => throw null; - public void AddManyToManyJoin(NHibernate.SqlCommand.JoinFragment outerjoin, NHibernate.Persister.Collection.IQueryableCollection collection) => throw null; - public System.Collections.Generic.ISet EntityFetchLazyProperties { get => throw null; set => throw null; } - public int GetOwner(System.Collections.Generic.IList associations) => throw null; - public bool IsCollection { get => throw null; } - public bool IsManyToManyWith(NHibernate.Loader.OuterJoinableAssociation other) => throw null; - public NHibernate.SqlCommand.JoinType JoinType { get => throw null; } - public NHibernate.Persister.Entity.IJoinable Joinable { get => throw null; } - public NHibernate.Type.IAssociationType JoinableType { get => throw null; } - public NHibernate.SqlCommand.SqlString On { get => throw null; } - public OuterJoinableAssociation(NHibernate.Type.IAssociationType joinableType, string lhsAlias, string[] lhsColumns, string rhsAlias, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString withClause, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters, NHibernate.SelectMode selectMode) => throw null; - public OuterJoinableAssociation(NHibernate.Type.IAssociationType joinableType, string lhsAlias, string[] lhsColumns, string rhsAlias, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString withClause, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; - public string RHSAlias { get => throw null; } - public string RHSUniqueKeyName { get => throw null; } - public NHibernate.SelectMode SelectMode { get => throw null; } - public void ValidateJoin(string path) => throw null; - } - - namespace Collection - { - // Generated from `NHibernate.Loader.Collection.BasicCollectionJoinWalker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BasicCollectionJoinWalker : NHibernate.Loader.Collection.CollectionJoinWalker - { - public BasicCollectionJoinWalker(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Loader.Collection.BasicCollectionLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BasicCollectionLoader : NHibernate.Loader.Collection.CollectionLoader - { - public BasicCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int batchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - public BasicCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, NHibernate.Engine.ISessionFactoryImplementor session, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - protected BasicCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - protected virtual void InitializeFromWalker(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, NHibernate.SqlCommand.SqlString subquery, int batchSize, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - } - - // Generated from `NHibernate.Loader.Collection.BatchingCollectionInitializer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BatchingCollectionInitializer : NHibernate.Loader.Collection.ICollectionInitializer - { - public BatchingCollectionInitializer(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, int[] batchSizes, NHibernate.Loader.Loader[] loaders) => throw null; - public static NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; - public static NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingOneToManyInitializer(NHibernate.Persister.Collection.OneToManyPersister persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; - public void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - } - - // Generated from `NHibernate.Loader.Collection.CollectionJoinWalker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class CollectionJoinWalker : NHibernate.Loader.JoinWalker - { - public CollectionJoinWalker(NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - protected NHibernate.SqlCommand.SqlStringBuilder WhereString(string alias, string[] columnNames, NHibernate.SqlCommand.SqlString subselect, int batchSize) => throw null; - } - - // Generated from `NHibernate.Loader.Collection.CollectionLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionLoader : NHibernate.Loader.OuterJoinLoader, NHibernate.Loader.Collection.ICollectionInitializer - { - public CollectionLoader(NHibernate.Persister.Collection.IQueryableCollection persister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - protected virtual System.Collections.Generic.IEnumerable CreateParameterSpecificationsAndAssignBackTrack(System.Collections.Generic.IEnumerable sqlPatameters) => throw null; - protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; - protected NHibernate.SqlCommand.SqlString GetSubSelectWithLimits(NHibernate.SqlCommand.SqlString subquery, System.Collections.Generic.ICollection parameterSpecs, NHibernate.Engine.RowSelection processedRowSelection, System.Collections.Generic.IDictionary parameters) => throw null; - public virtual void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null; - public virtual System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override bool IsSubselectLoadingEnabled { get => throw null; } - protected NHibernate.Type.IType KeyType { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Loader.Collection.ICollectionInitializer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICollectionInitializer - { - void Initialize(object id, NHibernate.Engine.ISessionImplementor session); - System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - } - - // Generated from `NHibernate.Loader.Collection.OneToManyJoinWalker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OneToManyJoinWalker : NHibernate.Loader.Collection.CollectionJoinWalker - { - protected override string GenerateAliasForColumn(string rootAlias, string column) => throw null; - protected override bool IsDuplicateAssociation(string foreignKeyTable, string[] foreignKeyColumns) => throw null; - public OneToManyJoinWalker(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Loader.Collection.OneToManyLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OneToManyLoader : NHibernate.Loader.Collection.CollectionLoader - { - protected virtual void InitializeFromWalker(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, NHibernate.SqlCommand.SqlString subquery, int batchSize, System.Collections.Generic.IDictionary enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public OneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - public OneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, int batchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - public OneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, NHibernate.Engine.ISessionFactoryImplementor session, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - } - - // Generated from `NHibernate.Loader.Collection.SubselectCollectionLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SubselectCollectionLoader : NHibernate.Loader.Collection.BasicCollectionLoader - { - protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; - public override void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public SubselectCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection persister, NHibernate.SqlCommand.SqlString subquery, System.Collections.Generic.ICollection entityKeys, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - } - - // Generated from `NHibernate.Loader.Collection.SubselectOneToManyLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SubselectOneToManyLoader : NHibernate.Loader.Collection.OneToManyLoader - { - protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; - public override void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public SubselectOneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection persister, NHibernate.SqlCommand.SqlString subquery, System.Collections.Generic.ICollection entityKeys, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - } - - } - namespace Criteria - { - // Generated from `NHibernate.Loader.Criteria.ComponentCollectionCriteriaInfoProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentCollectionCriteriaInfoProvider : NHibernate.Loader.Criteria.ICriteriaInfoProvider - { - public ComponentCollectionCriteriaInfoProvider(NHibernate.Persister.Collection.IQueryableCollection persister) => throw null; - public NHibernate.Type.IType GetType(string relativePath) => throw null; - public string Name { get => throw null; } - public NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get => throw null; } - public string[] Spaces { get => throw null; } - } - - // Generated from `NHibernate.Loader.Criteria.CriteriaJoinWalker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CriteriaJoinWalker : NHibernate.Loader.AbstractEntityJoinWalker - { - protected override void AddAssociations() => throw null; - public override string Comment { get => throw null; } - protected override NHibernate.Loader.OuterJoinableAssociation CreateRootAssociation() => throw null; - public CriteriaJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Loader.Criteria.CriteriaQueryTranslator translator, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.ICriteria criteria, string rootEntityName, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - protected override string GenerateRootAlias(string tableName) => throw null; - protected override string GenerateTableAlias(int n, string path, string pathAlias, NHibernate.Persister.Entity.IJoinable joinable) => throw null; - protected override System.Collections.Generic.IReadOnlyCollection GetChildAliases(string parentSqlAlias, string childPath) => throw null; - protected override System.Collections.Generic.ISet GetEntityFetchLazyProperties(string path) => throw null; - protected override NHibernate.SqlCommand.JoinType GetJoinType(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, string path, string pathAlias, string lhsTable, string[] lhsColumns, bool nullable, int currentDepth, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; - protected override NHibernate.SelectMode GetSelectMode(string path) => throw null; - protected override NHibernate.SqlCommand.SqlString GetWithClause(string path, string pathAlias) => throw null; - public bool[] IncludeInResultRow { get => throw null; } - public System.Collections.Generic.ISet QuerySpaces { get => throw null; } - public NHibernate.Type.IType[] ResultTypes { get => throw null; } - public string[] UserAliases { get => throw null; } - protected override void WalkEntityTree(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias, string path, int currentDepth) => throw null; - protected override NHibernate.SqlCommand.SqlString WhereFragment { get => throw null; } - } - - // Generated from `NHibernate.Loader.Criteria.CriteriaLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CriteriaLoader : NHibernate.Loader.OuterJoinLoader - { - protected override NHibernate.SqlCommand.SqlString ApplyLocks(NHibernate.SqlCommand.SqlString sqlSelectString, System.Collections.Generic.IDictionary lockModes, NHibernate.Dialect.Dialect dialect) => throw null; - protected override bool AreResultSetRowsTransformedImmediately() => throw null; - public CriteriaLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.CriteriaImpl rootCriteria, string rootEntityName, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - protected override System.Collections.Generic.ISet[] EntityFetchLazyProperties { get => throw null; } - public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary lockModes) => throw null; - protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; - protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer customResultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; - protected override System.Threading.Tasks.Task GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer customResultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer) => throw null; - protected override object[] GetResultRow(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; - protected override System.Threading.Tasks.Task GetResultRowAsync(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected override bool[] IncludeInResultRow { get => throw null; } - protected override bool IsChildFetchEntity(int i) => throw null; - protected override bool IsCollectionPersisterCacheable(NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null; - public override bool IsSubselectLoadingEnabled { get => throw null; } - public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Collections.Generic.ISet QuerySpaces { get => throw null; } - protected override NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; - protected override string[] ResultRowAliases { get => throw null; } - public NHibernate.Loader.Criteria.CriteriaQueryTranslator Translator { get => throw null; } - } - - // Generated from `NHibernate.Loader.Criteria.CriteriaQueryTranslator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CriteriaQueryTranslator : NHibernate.Loader.Criteria.ISupportEntityProjectionCriteriaQuery, NHibernate.Criterion.ICriteriaQuery - { - public System.Collections.Generic.ICollection CollectedParameterSpecifications { get => throw null; } - public System.Collections.Generic.ICollection CollectedParameters { get => throw null; } - public NHibernate.SqlCommand.Parameter CreateSkipParameter(int value) => throw null; - public NHibernate.SqlCommand.Parameter CreateTakeParameter(int value) => throw null; - public CriteriaQueryTranslator(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.CriteriaImpl criteria, string rootEntityName, string rootSQLAlias, NHibernate.Criterion.ICriteriaQuery outerQuery) => throw null; - public CriteriaQueryTranslator(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.CriteriaImpl criteria, string rootEntityName, string rootSQLAlias) => throw null; - // Generated from `NHibernate.Loader.Criteria.CriteriaQueryTranslator+EntityJoinInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityJoinInfo - { - public NHibernate.ICriteria Criteria; - public EntityJoinInfo() => throw null; - public NHibernate.Persister.Entity.IQueryable Persister; - } - - - public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; } - public string GenerateSQLAlias() => throw null; - public System.Collections.Generic.IReadOnlyCollection GetChildAliases(string parentSqlAlias, string childPath) => throw null; - public string GetColumn(NHibernate.ICriteria criteria, string propertyName) => throw null; - public string[] GetColumnAliasesUsingProjection(NHibernate.ICriteria subcriteria, string propertyName) => throw null; - public string[] GetColumns(NHibernate.ICriteria subcriteria, string propertyName) => throw null; - public string[] GetColumnsUsingProjection(NHibernate.ICriteria subcriteria, string propertyName) => throw null; - public NHibernate.ICriteria GetCriteria(string path, string critAlias) => throw null; - public NHibernate.ICriteria GetCriteria(string path) => throw null; - public string GetEntityName(NHibernate.ICriteria subcriteria, string propertyName) => throw null; - public string GetEntityName(NHibernate.ICriteria criteria) => throw null; - public System.Collections.Generic.IList GetEntityProjections() => throw null; - public NHibernate.SqlCommand.SqlString GetGroupBy() => throw null; - public NHibernate.SqlCommand.SqlString GetHavingCondition() => throw null; - public string[] GetIdentifierColumns(NHibernate.ICriteria subcriteria) => throw null; - public NHibernate.Type.IType GetIdentifierType(NHibernate.ICriteria subcriteria) => throw null; - public int GetIndexForAlias() => throw null; - public NHibernate.SqlCommand.JoinType GetJoinType(string path, string critAlias) => throw null; - public NHibernate.SqlCommand.JoinType GetJoinType(string path) => throw null; - public NHibernate.SqlCommand.SqlString GetOrderBy() => throw null; - public string GetPropertyName(string propertyName) => throw null; - public NHibernate.Engine.QueryParameters GetQueryParameters() => throw null; - public System.Collections.Generic.ISet GetQuerySpaces() => throw null; - public string GetSQLAlias(NHibernate.ICriteria criteria, string propertyName) => throw null; - public string GetSQLAlias(NHibernate.ICriteria criteria) => throw null; - public NHibernate.SqlCommand.SqlString GetSelect() => throw null; - public NHibernate.Type.IType GetType(NHibernate.ICriteria subcriteria, string propertyName) => throw null; - public NHibernate.Type.IType GetTypeUsingProjection(NHibernate.ICriteria subcriteria, string propertyName) => throw null; - public NHibernate.Engine.TypedValue GetTypedIdentifierValue(NHibernate.ICriteria subcriteria, object value) => throw null; - public NHibernate.Engine.TypedValue GetTypedValue(NHibernate.ICriteria subcriteria, string propertyName, object value) => throw null; - public NHibernate.SqlCommand.SqlString GetWhereCondition() => throw null; - public NHibernate.SqlCommand.SqlString GetWithClause(string path, string pathAlias) => throw null; - public NHibernate.SqlCommand.SqlString GetWithClause(string path) => throw null; - protected static bool HasGroupedOrAggregateProjection(NHibernate.Criterion.IProjection[] projections) => throw null; - public bool HasProjection { get => throw null; } - public bool IsJoin(string path, string critAlias) => throw null; - public bool IsJoin(string path) => throw null; - public System.Collections.Generic.IEnumerable NewQueryParameter(NHibernate.Engine.TypedValue parameter) => throw null; - public string[] ProjectedAliases { get => throw null; } - public string[] ProjectedColumnAliases { get => throw null; } - public NHibernate.Type.IType[] ProjectedTypes { get => throw null; } - public void RegisterEntityProjection(NHibernate.Criterion.EntityProjection projection) => throw null; - public NHibernate.SqlCommand.SqlString RenderSQLAliases(NHibernate.SqlCommand.SqlString sqlTemplate) => throw null; - public NHibernate.Impl.CriteriaImpl RootCriteria { get => throw null; } - NHibernate.ICriteria NHibernate.Loader.Criteria.ISupportEntityProjectionCriteriaQuery.RootCriteria { get => throw null; } - public string RootSQLAlias { get => throw null; } - public static string RootSqlAlias; - public int SQLAliasCount { get => throw null; } - public bool TryGetType(NHibernate.ICriteria subcriteria, string propertyName, out NHibernate.Type.IType type) => throw null; - public System.Collections.Generic.ISet UncacheableCollectionPersisters { get => throw null; } - } - - // Generated from `NHibernate.Loader.Criteria.EntityCriteriaInfoProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityCriteriaInfoProvider : NHibernate.Loader.Criteria.ICriteriaInfoProvider - { - public EntityCriteriaInfoProvider(NHibernate.Persister.Entity.IQueryable persister) => throw null; - public NHibernate.Type.IType GetType(string relativePath) => throw null; - public string Name { get => throw null; } - public NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get => throw null; } - public string[] Spaces { get => throw null; } - } - - // Generated from `NHibernate.Loader.Criteria.ICriteriaInfoProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICriteriaInfoProvider - { - NHibernate.Type.IType GetType(string relativePath); - string Name { get; } - NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get; } - string[] Spaces { get; } - } - - // Generated from `NHibernate.Loader.Criteria.ISupportEntityProjectionCriteriaQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISupportEntityProjectionCriteriaQuery - { - void RegisterEntityProjection(NHibernate.Criterion.EntityProjection projection); - NHibernate.ICriteria RootCriteria { get; } - } - - // Generated from `NHibernate.Loader.Criteria.ScalarCollectionCriteriaInfoProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ScalarCollectionCriteriaInfoProvider : NHibernate.Loader.Criteria.ICriteriaInfoProvider - { - public NHibernate.Type.IType GetType(string relativePath) => throw null; - public string Name { get => throw null; } - public NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get => throw null; } - public ScalarCollectionCriteriaInfoProvider(NHibernate.Hql.Util.SessionFactoryHelper helper, string role) => throw null; - public string[] Spaces { get => throw null; } - } - - } - namespace Custom - { - // Generated from `NHibernate.Loader.Custom.CollectionFetchReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionFetchReturn : NHibernate.Loader.Custom.FetchReturn - { - public NHibernate.Loader.ICollectionAliases CollectionAliases { get => throw null; } - public CollectionFetchReturn(string alias, NHibernate.Loader.Custom.NonScalarReturn owner, string ownerProperty, NHibernate.Loader.ICollectionAliases collectionAliases, NHibernate.Loader.IEntityAliases elementEntityAliases, NHibernate.LockMode lockMode) : base(default(NHibernate.Loader.Custom.NonScalarReturn), default(string), default(string), default(NHibernate.LockMode)) => throw null; - public NHibernate.Loader.IEntityAliases ElementEntityAliases { get => throw null; } - } - - // Generated from `NHibernate.Loader.Custom.CollectionReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionReturn : NHibernate.Loader.Custom.NonScalarReturn - { - public NHibernate.Loader.ICollectionAliases CollectionAliases { get => throw null; } - public CollectionReturn(string alias, string ownerEntityName, string ownerProperty, NHibernate.Loader.ICollectionAliases collectionAliases, NHibernate.Loader.IEntityAliases elementEntityAliases, NHibernate.LockMode lockMode) : base(default(string), default(NHibernate.LockMode)) => throw null; - public NHibernate.Loader.IEntityAliases ElementEntityAliases { get => throw null; } - public string OwnerEntityName { get => throw null; } - public string OwnerProperty { get => throw null; } - } - - // Generated from `NHibernate.Loader.Custom.ColumnCollectionAliases` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ColumnCollectionAliases : NHibernate.Loader.ICollectionAliases - { - public ColumnCollectionAliases(System.Collections.Generic.IDictionary userProvidedAliases, NHibernate.Persister.Collection.ISqlLoadableCollection persister) => throw null; - public string Suffix { get => throw null; } - public string[] SuffixedElementAliases { get => throw null; } - public string SuffixedIdentifierAlias { get => throw null; } - public string[] SuffixedIndexAliases { get => throw null; } - public string[] SuffixedKeyAliases { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Loader.Custom.ColumnEntityAliases` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ColumnEntityAliases : NHibernate.Loader.DefaultEntityAliases - { - public ColumnEntityAliases(System.Collections.Generic.IDictionary returnProperties, NHibernate.Persister.Entity.ILoadable persister, string suffix) : base(default(NHibernate.Persister.Entity.ILoadable), default(string)) => throw null; - protected override string GetDiscriminatorAlias(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null; - protected override string[] GetIdentifierAliases(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null; - protected override string[] GetPropertyAliases(NHibernate.Persister.Entity.ILoadable persister, int j) => throw null; - } - - // Generated from `NHibernate.Loader.Custom.CustomLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CustomLoader : NHibernate.Loader.Loader - { - protected internal override void AutoDiscoverTypes(System.Data.Common.DbDataReader rs, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer) => throw null; - protected override NHibernate.Loader.ICollectionAliases[] CollectionAliases { get => throw null; } - protected override int[] CollectionOwners { get => throw null; } - protected internal override NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; } - public CustomLoader(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; - protected override NHibernate.Loader.IEntityAliases[] EntityAliases { get => throw null; } - public override NHibernate.Persister.Entity.ILoadable[] EntityPersisters { get => throw null; } - public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary lockModesMap) => throw null; - protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; - protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; - protected override System.Threading.Tasks.Task GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer) => throw null; - protected override object[] GetResultRow(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; - protected override System.Threading.Tasks.Task GetResultRowAsync(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - // Generated from `NHibernate.Loader.Custom.CustomLoader+IResultColumnProcessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IResultColumnProcessor - { - object Extract(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session); - System.Threading.Tasks.Task ExtractAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - void PerformDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata, System.Collections.Generic.IList types, System.Collections.Generic.IList aliases); - } - - - protected override bool[] IncludeInResultRow { get => throw null; } - public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null; - public System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - // Generated from `NHibernate.Loader.Custom.CustomLoader+MetaData` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MetaData - { - public int GetColumnCount() => throw null; - public string GetColumnName(int position) => throw null; - public int GetColumnPosition(string columnName) => throw null; - public NHibernate.Type.IType GetHibernateType(int columnPos) => throw null; - public MetaData(System.Data.Common.DbDataReader resultSet) => throw null; - } - - - public System.Collections.Generic.IEnumerable NamedParameters { get => throw null; } - // Generated from `NHibernate.Loader.Custom.CustomLoader+NonScalarResultColumnProcessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NonScalarResultColumnProcessor : NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor - { - public object Extract(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task ExtractAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public NonScalarResultColumnProcessor(int position) => throw null; - public void PerformDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata, System.Collections.Generic.IList types, System.Collections.Generic.IList aliases) => throw null; - } - - - protected override int[] Owners { get => throw null; } - public override string QueryIdentifier { get => throw null; } - public System.Collections.Generic.ISet QuerySpaces { get => throw null; } - protected override void ResetEffectiveExpectedType(System.Collections.Generic.IEnumerable parameterSpecs, NHibernate.Engine.QueryParameters queryParameters) => throw null; - protected override NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; - protected override string[] ResultRowAliases { get => throw null; } - // Generated from `NHibernate.Loader.Custom.CustomLoader+ResultRowProcessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ResultRowProcessor - { - public object[] BuildResultRow(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session) => throw null; - public object BuildResultRow(object[] data, System.Data.Common.DbDataReader resultSet, bool hasTransformer, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task BuildResultRowAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task BuildResultRowAsync(object[] data, System.Data.Common.DbDataReader resultSet, bool hasTransformer, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor[] ColumnProcessors { get => throw null; } - public void PrepareForAutoDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata) => throw null; - public ResultRowProcessor(bool hasScalars, NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor[] columnProcessors) => throw null; - } - - - public string[] ReturnAliases { get => throw null; } - // Generated from `NHibernate.Loader.Custom.CustomLoader+ScalarResultColumnProcessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ScalarResultColumnProcessor : NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor - { - public object Extract(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task ExtractAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public void PerformDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata, System.Collections.Generic.IList types, System.Collections.Generic.IList aliases) => throw null; - public ScalarResultColumnProcessor(string alias, NHibernate.Type.IType type) => throw null; - public ScalarResultColumnProcessor(int position) => throw null; - } - - - public override NHibernate.SqlCommand.SqlString SqlString { get => throw null; } - } - - // Generated from `NHibernate.Loader.Custom.EntityFetchReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityFetchReturn : NHibernate.Loader.Custom.FetchReturn - { - public NHibernate.Loader.IEntityAliases EntityAliases { get => throw null; } - public EntityFetchReturn(string alias, NHibernate.Loader.IEntityAliases entityAliases, NHibernate.Loader.Custom.NonScalarReturn owner, string ownerProperty, NHibernate.LockMode lockMode) : base(default(NHibernate.Loader.Custom.NonScalarReturn), default(string), default(string), default(NHibernate.LockMode)) => throw null; - } - - // Generated from `NHibernate.Loader.Custom.FetchReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class FetchReturn : NHibernate.Loader.Custom.NonScalarReturn - { - public FetchReturn(NHibernate.Loader.Custom.NonScalarReturn owner, string ownerProperty, string alias, NHibernate.LockMode lockMode) : base(default(string), default(NHibernate.LockMode)) => throw null; - public NHibernate.Loader.Custom.NonScalarReturn Owner { get => throw null; } - public string OwnerProperty { get => throw null; } - } - - // Generated from `NHibernate.Loader.Custom.ICustomQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICustomQuery - { - System.Collections.Generic.IEnumerable CollectedParametersSpecifications { get; } - System.Collections.Generic.IList CustomQueryReturns { get; } - System.Collections.Generic.ISet QuerySpaces { get; } - NHibernate.SqlCommand.SqlString SQL { get; } - } - - // Generated from `NHibernate.Loader.Custom.IReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IReturn - { - } - - // Generated from `NHibernate.Loader.Custom.NonScalarReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class NonScalarReturn : NHibernate.Loader.Custom.IReturn - { - public string Alias { get => throw null; } - public NHibernate.LockMode LockMode { get => throw null; } - public NonScalarReturn(string alias, NHibernate.LockMode lockMode) => throw null; - } - - // Generated from `NHibernate.Loader.Custom.RootReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class RootReturn : NHibernate.Loader.Custom.NonScalarReturn - { - public NHibernate.Loader.IEntityAliases EntityAliases { get => throw null; } - public string EntityName { get => throw null; } - public RootReturn(string alias, string entityName, NHibernate.Loader.IEntityAliases entityAliases, NHibernate.LockMode lockMode) : base(default(string), default(NHibernate.LockMode)) => throw null; - } - - // Generated from `NHibernate.Loader.Custom.ScalarReturn` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ScalarReturn : NHibernate.Loader.Custom.IReturn - { - public string ColumnAlias { get => throw null; } - public ScalarReturn(NHibernate.Type.IType type, string columnAlias) => throw null; - public NHibernate.Type.IType Type { get => throw null; } - } - - namespace Sql - { - // Generated from `NHibernate.Loader.Custom.Sql.SQLCustomQuery` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLCustomQuery : NHibernate.Loader.Custom.ICustomQuery - { - public System.Collections.Generic.IEnumerable CollectedParametersSpecifications { get => throw null; } - public System.Collections.Generic.IList CustomQueryReturns { get => throw null; } - public System.Collections.Generic.ISet QuerySpaces { get => throw null; } - public NHibernate.SqlCommand.SqlString SQL { get => throw null; } - public SQLCustomQuery(NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] queryReturns, string sqlQuery, System.Collections.Generic.ICollection additionalQuerySpaces, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - } - - // Generated from `NHibernate.Loader.Custom.Sql.SQLQueryParser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLQueryParser - { - public System.Collections.Generic.IEnumerable CollectedParametersSpecifications { get => throw null; } - // Generated from `NHibernate.Loader.Custom.Sql.SQLQueryParser+IParserContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IParserContext - { - NHibernate.Persister.Collection.ISqlLoadableCollection GetCollectionPersisterByAlias(string alias); - string GetCollectionSuffixByAlias(string alias); - NHibernate.Persister.Entity.ISqlLoadable GetEntityPersisterByAlias(string alias); - string GetEntitySuffixByAlias(string alias); - System.Collections.Generic.IDictionary GetPropertyResultsMapByAlias(string alias); - bool IsCollectionAlias(string aliasName); - bool IsEntityAlias(string aliasName); - } - - - // Generated from `NHibernate.Loader.Custom.Sql.SQLQueryParser+ParameterSubstitutionRecognizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ParameterSubstitutionRecognizer : NHibernate.Engine.Query.ParameterParser.IRecognizer - { - public void JpaPositionalParameter(string name, int position) => throw null; - public void NamedParameter(string name, int position) => throw null; - public void OrdinalParameter(int position) => throw null; - public void Other(string sqlPart) => throw null; - public void Other(System.Char character) => throw null; - public void OutParameter(int position) => throw null; - public ParameterSubstitutionRecognizer(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public System.Collections.Generic.IEnumerable ParametersSpecifications { get => throw null; } - } - - - public NHibernate.SqlCommand.SqlString Process() => throw null; - public bool QueryHasAliases { get => throw null; } - public SQLQueryParser(NHibernate.Engine.ISessionFactoryImplementor factory, string sqlQuery, NHibernate.Loader.Custom.Sql.SQLQueryParser.IParserContext context) => throw null; - } - - // Generated from `NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SQLQueryReturnProcessor - { - public System.Collections.IList GenerateCustomReturns(bool queryHadAliases) => throw null; - public NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.ResultAliasContext Process() => throw null; - // Generated from `NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor+ResultAliasContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ResultAliasContext - { - public NHibernate.Persister.Collection.ISqlLoadableCollection GetCollectionPersister(string alias) => throw null; - public string GetCollectionSuffix(string alias) => throw null; - public NHibernate.Persister.Entity.ISqlLoadable GetEntityPersister(string alias) => throw null; - public string GetEntitySuffix(string alias) => throw null; - public string GetOwnerAlias(string alias) => throw null; - public System.Collections.Generic.IDictionary GetPropertyResultsMap(string alias) => throw null; - public ResultAliasContext(NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor parent) => throw null; - } - - - public SQLQueryReturnProcessor(NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] queryReturns, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - } - - } - } - namespace Entity - { - // Generated from `NHibernate.Loader.Entity.AbstractEntityLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractEntityLoader : NHibernate.Loader.OuterJoinLoader, NHibernate.Loader.Entity.IUniqueEntityLoader - { - protected AbstractEntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Type.IType uniqueKeyType, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; - protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; - protected override System.Threading.Tasks.Task GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected override bool IsSingleRowLoader { get => throw null; } - public object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session) => throw null; - protected virtual object Load(NHibernate.Engine.ISessionImplementor session, object id, object optionalObject, object optionalId) => throw null; - public System.Threading.Tasks.Task LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected virtual System.Threading.Tasks.Task LoadAsync(NHibernate.Engine.ISessionImplementor session, object id, object optionalObject, object optionalId, System.Threading.CancellationToken cancellationToken) => throw null; - protected NHibernate.Type.IType UniqueKeyType { get => throw null; set => throw null; } - protected string entityName; - protected static NHibernate.INHibernateLogger log; - protected NHibernate.Persister.Entity.IOuterJoinLoadable persister; - } - - // Generated from `NHibernate.Loader.Entity.BatchingEntityLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BatchingEntityLoader : NHibernate.Loader.Entity.IUniqueEntityLoader - { - public BatchingEntityLoader(NHibernate.Persister.Entity.IEntityPersister persister, int[] batchSizes, NHibernate.Loader.Loader[] loaders) => throw null; - public static NHibernate.Loader.Entity.IUniqueEntityLoader CreateBatchingEntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int maxBatchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; - public object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - } - - // Generated from `NHibernate.Loader.Entity.CascadeEntityJoinWalker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CascadeEntityJoinWalker : NHibernate.Loader.AbstractEntityJoinWalker - { - public CascadeEntityJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.CascadingAction action, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - public override string Comment { get => throw null; } - protected override bool IsJoinedFetchEnabled(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; - protected override bool IsTooManyCollections { get => throw null; } - } - - // Generated from `NHibernate.Loader.Entity.CascadeEntityLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CascadeEntityLoader : NHibernate.Loader.Entity.AbstractEntityLoader - { - public CascadeEntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.CascadingAction action, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - } - - // Generated from `NHibernate.Loader.Entity.CollectionElementLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionElementLoader : NHibernate.Loader.OuterJoinLoader - { - public CollectionElementLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; - protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer transformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; - protected override System.Threading.Tasks.Task GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer transformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected override bool IsSingleRowLoader { get => throw null; } - public virtual object LoadElement(NHibernate.Engine.ISessionImplementor session, object key, object index) => throw null; - public virtual System.Threading.Tasks.Task LoadElementAsync(NHibernate.Engine.ISessionImplementor session, object key, object index, System.Threading.CancellationToken cancellationToken) => throw null; - } - - // Generated from `NHibernate.Loader.Entity.EntityJoinWalker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityJoinWalker : NHibernate.Loader.AbstractEntityJoinWalker - { - public override string Comment { get => throw null; } - public EntityJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string[] uniqueKey, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - protected override string GenerateAliasForColumn(string rootAlias, string column) => throw null; - protected override bool IsJoinedFetchEnabled(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null; - } - - // Generated from `NHibernate.Loader.Entity.EntityLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityLoader : NHibernate.Loader.Entity.AbstractEntityLoader - { - public EntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string[] uniqueKey, NHibernate.Type.IType uniqueKeyType, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - public EntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - public EntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary)) => throw null; - protected override bool IsSingleRowLoader { get => throw null; } - public object LoadByUniqueKey(NHibernate.Engine.ISessionImplementor session, object key) => throw null; - public System.Threading.Tasks.Task LoadByUniqueKeyAsync(NHibernate.Engine.ISessionImplementor session, object key, System.Threading.CancellationToken cancellationToken) => throw null; - } - - // Generated from `NHibernate.Loader.Entity.IUniqueEntityLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IUniqueEntityLoader - { - object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session); - System.Threading.Tasks.Task LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - } - - } - namespace Hql - { - // Generated from `NHibernate.Loader.Hql.QueryLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class QueryLoader : NHibernate.Loader.BasicLoader - { - protected override string[] Aliases { get => throw null; } - protected override NHibernate.SqlCommand.SqlString ApplyLocks(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary lockModes, NHibernate.Dialect.Dialect dialect) => throw null; - protected override int[] CollectionOwners { get => throw null; } - protected internal override NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; } - protected override string[] CollectionSuffixes { get => throw null; } - protected override bool[] EntityEagerPropertyFetches { get => throw null; } - protected override System.Collections.Generic.ISet[] EntityFetchLazyProperties { get => throw null; } - public override NHibernate.Persister.Entity.ILoadable[] EntityPersisters { get => throw null; } - protected override System.Collections.Generic.IDictionary GetCollectionUserProvidedAlias(int index) => throw null; - public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary lockModes) => throw null; - protected override System.Collections.Generic.IEnumerable GetParameterSpecifications() => throw null; - protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; - protected override System.Threading.Tasks.Task GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer) => throw null; - protected override object[] GetResultRow(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null; - protected override System.Threading.Tasks.Task GetResultRowAsync(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected override bool[] IncludeInResultRow { get => throw null; } - protected override bool IsCollectionPersisterCacheable(NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null; - public override bool IsSubselectLoadingEnabled { get => throw null; } - public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null; - public System.Threading.Tasks.Task ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null; - protected override NHibernate.Type.EntityType[] OwnerAssociationTypes { get => throw null; } - protected override int[] Owners { get => throw null; } - public override string QueryIdentifier { get => throw null; } - public QueryLoader(NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl queryTranslator, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Hql.Ast.ANTLR.Tree.SelectClause selectClause) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; - protected override void ResetEffectiveExpectedType(System.Collections.Generic.IEnumerable parameterSpecs, NHibernate.Engine.QueryParameters queryParameters) => throw null; - protected override NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null; - protected override string[] ResultRowAliases { get => throw null; } - public NHibernate.Type.IType[] ReturnTypes { get => throw null; } - public override NHibernate.SqlCommand.SqlString SqlString { get => throw null; } - protected override string[] Suffixes { get => throw null; } - protected override bool UpgradeLocks() => throw null; - } - - } + } + public sealed class LockMode + { + public override bool Equals(object obj) => throw null; + public bool Equals(NHibernate.LockMode other) => throw null; + public static NHibernate.LockMode Force; + public override int GetHashCode() => throw null; + public bool GreaterThan(NHibernate.LockMode mode) => throw null; + public bool LessThan(NHibernate.LockMode mode) => throw null; + public static NHibernate.LockMode None; + public static NHibernate.LockMode Read; + public override string ToString() => throw null; + public static NHibernate.LockMode Upgrade; + public static NHibernate.LockMode UpgradeNoWait; + public static NHibernate.LockMode Write; + } + public class Log4NetLogger : NHibernate.IInternalLogger + { + public Log4NetLogger(object logger) => throw null; + public void Debug(object message) => throw null; + public void Debug(object message, System.Exception exception) => throw null; + public void DebugFormat(string format, params object[] args) => throw null; + public void Error(object message) => throw null; + public void Error(object message, System.Exception exception) => throw null; + public void ErrorFormat(string format, params object[] args) => throw null; + public void Fatal(object message) => throw null; + public void Fatal(object message, System.Exception exception) => throw null; + public void Info(object message) => throw null; + public void Info(object message, System.Exception exception) => throw null; + public void InfoFormat(string format, params object[] args) => throw null; + public bool IsDebugEnabled { get => throw null; } + public bool IsErrorEnabled { get => throw null; } + public bool IsFatalEnabled { get => throw null; } + public bool IsInfoEnabled { get => throw null; } + public bool IsWarnEnabled { get => throw null; } + public void Warn(object message) => throw null; + public void Warn(object message, System.Exception exception) => throw null; + public void WarnFormat(string format, params object[] args) => throw null; + } + public class Log4NetLoggerFactory : NHibernate.ILoggerFactory + { + public Log4NetLoggerFactory() => throw null; + public NHibernate.IInternalLogger LoggerFor(string keyName) => throw null; + public NHibernate.IInternalLogger LoggerFor(System.Type type) => throw null; + } + public class LoggerProvider + { + public LoggerProvider() => throw null; + public static NHibernate.IInternalLogger LoggerFor(string keyName) => throw null; + public static NHibernate.IInternalLogger LoggerFor(System.Type type) => throw null; + public static void SetLoggersFactory(NHibernate.ILoggerFactory loggerFactory) => throw null; } namespace Mapping { - // Generated from `NHibernate.Mapping.AbstractAuxiliaryDatabaseObject` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractAuxiliaryDatabaseObject : NHibernate.Mapping.IRelationalModel, NHibernate.Mapping.IAuxiliaryDatabaseObject + public abstract class AbstractAuxiliaryDatabaseObject : NHibernate.Mapping.IAuxiliaryDatabaseObject, NHibernate.Mapping.IRelationalModel { - protected AbstractAuxiliaryDatabaseObject(System.Collections.Generic.HashSet dialectScopes) => throw null; - protected AbstractAuxiliaryDatabaseObject() => throw null; public void AddDialectScope(string dialectName) => throw null; public bool AppliesToDialect(NHibernate.Dialect.Dialect dialect) => throw null; + protected AbstractAuxiliaryDatabaseObject() => throw null; + protected AbstractAuxiliaryDatabaseObject(System.Collections.Generic.HashSet dialectScopes) => throw null; public System.Collections.Generic.HashSet DialectScopes { get => throw null; } public System.Collections.Generic.IDictionary Parameters { get => throw null; } public void SetParameterValues(System.Collections.Generic.IDictionary parameters) => throw null; public abstract string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema); public abstract string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema); } - - // Generated from `NHibernate.Mapping.Any` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Any : NHibernate.Mapping.SimpleValue { public Any(NHibernate.Mapping.Table table) => throw null; - public virtual string IdentifierTypeName { get => throw null; set => throw null; } - public virtual string MetaType { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary MetaValues { get => throw null; set => throw null; } + public virtual string IdentifierTypeName { get => throw null; set { } } + public virtual string MetaType { get => throw null; set { } } + public System.Collections.Generic.IDictionary MetaValues { get => throw null; set { } } public void ResetCachedType() => throw null; public override void SetTypeUsingReflection(string className, string propertyName, string access) => throw null; public override NHibernate.Type.IType Type { get => throw null; } } - - // Generated from `NHibernate.Mapping.Array` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Array : NHibernate.Mapping.List { public Array(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; } public System.Type ElementClass { get => throw null; } - public string ElementClassName { get => throw null; set => throw null; } + public string ElementClassName { get => throw null; set { } } public override bool IsArray { get => throw null; } } - - // Generated from `NHibernate.Mapping.Backref` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Backref : NHibernate.Mapping.Property { public override bool BackRef { get => throw null; } + public string CollectionRole { get => throw null; set { } } public Backref() => throw null; - public string CollectionRole { get => throw null; set => throw null; } - public string EntityName { get => throw null; set => throw null; } + public string EntityName { get => throw null; set { } } public override bool IsBasicPropertyAccessor { get => throw null; } protected override NHibernate.Properties.IPropertyAccessor PropertyAccessor { get => throw null; } } - - // Generated from `NHibernate.Mapping.Bag` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Bag : NHibernate.Mapping.Collection { + public override void CreatePrimaryKey() => throw null; public Bag(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - public override void CreatePrimaryKey() => throw null; public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; } } - - // Generated from `NHibernate.Mapping.Collection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class Collection : NHibernate.Mapping.IValue, NHibernate.Mapping.IFilterable, NHibernate.Mapping.IFetchable - { - public object Accept(NHibernate.Mapping.IValueVisitor visitor) => throw null; - public void AddFilter(string name, string condition) => throw null; - public void AddManyToManyFilter(string name, string condition) => throw null; - public int BatchSize { get => throw null; set => throw null; } - public string CacheConcurrencyStrategy { get => throw null; set => throw null; } - public string CacheRegionName { get => throw null; set => throw null; } - protected void CheckGenericArgumentsLength(int expectedLength) => throw null; - protected Collection(NHibernate.Mapping.PersistentClass owner) => throw null; - public System.Type CollectionPersisterClass { get => throw null; set => throw null; } - public NHibernate.Mapping.Table CollectionTable { get => throw null; set => throw null; } - public virtual NHibernate.Type.CollectionType CollectionType { get => throw null; } - public bool[] ColumnInsertability { get => throw null; } - public System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } - public int ColumnSpan { get => throw null; } - public bool[] ColumnUpdateability { get => throw null; } - public object Comparer { get => throw null; set => throw null; } - public string ComparerClassName { get => throw null; set => throw null; } - public virtual void CreateAllKeys() => throw null; - public void CreateForeignKey() => throw null; - public abstract void CreatePrimaryKey(); - public NHibernate.SqlCommand.SqlString CustomSQLDelete { get => throw null; } - public NHibernate.SqlCommand.SqlString CustomSQLDeleteAll { get => throw null; } - public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteAllCheckStyle { get => throw null; } - public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteCheckStyle { get => throw null; } - public NHibernate.SqlCommand.SqlString CustomSQLInsert { get => throw null; } - public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLInsertCheckStyle { get => throw null; } - public NHibernate.SqlCommand.SqlString CustomSQLUpdate { get => throw null; } - public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLUpdateCheckStyle { get => throw null; } - public abstract NHibernate.Type.CollectionType DefaultCollectionType { get; } - public const string DefaultElementColumnName = default; - public const string DefaultKeyColumnName = default; - public NHibernate.Mapping.IValue Element { get => throw null; set => throw null; } - public bool ExtraLazy { get => throw null; set => throw null; } - public NHibernate.FetchMode FetchMode { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary FilterMap { get => throw null; } - public NHibernate.Mapping.Formula Formula { get => throw null; } - public System.Type[] GenericArguments { get => throw null; set => throw null; } - public virtual bool HasFormula { get => throw null; } - public bool HasOrder { get => throw null; } - public bool HasOrphanDelete { get => throw null; set => throw null; } - public virtual bool IsAlternateUniqueKey { get => throw null; } - public virtual bool IsArray { get => throw null; } - public bool IsCustomDeleteAllCallable { get => throw null; } - public bool IsCustomDeleteCallable { get => throw null; } - public bool IsCustomInsertCallable { get => throw null; } - public bool IsCustomUpdateCallable { get => throw null; } - public bool IsGeneric { get => throw null; set => throw null; } - public virtual bool IsIdentified { get => throw null; } - public virtual bool IsIndexed { get => throw null; } - public bool IsInverse { get => throw null; set => throw null; } - public bool IsLazy { get => throw null; set => throw null; } - public virtual bool IsMap { get => throw null; } - public bool IsMutable { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; } - public bool IsOneToMany { get => throw null; } - public bool IsOptimisticLocked { get => throw null; set => throw null; } - public virtual bool IsPrimitiveArray { get => throw null; } - public virtual bool IsSet { get => throw null; } - public bool IsSimpleValue { get => throw null; } - public bool IsSorted { get => throw null; set => throw null; } - public bool IsSubselectLoadable { get => throw null; set => throw null; } - public bool IsUnique { get => throw null; } - public bool IsValid(NHibernate.Engine.IMapping mapping) => throw null; - public NHibernate.Mapping.IKeyValue Key { get => throw null; set => throw null; } - public string LoaderName { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary ManyToManyFilterMap { get => throw null; } - public string ManyToManyOrdering { get => throw null; set => throw null; } - public string ManyToManyWhere { get => throw null; set => throw null; } - public string OrderBy { get => throw null; set => throw null; } - public NHibernate.Mapping.PersistentClass Owner { get => throw null; set => throw null; } - public string OwnerEntityName { get => throw null; } - public string ReferencedPropertyName { get => throw null; set => throw null; } - public string Role { get => throw null; set => throw null; } - public void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; - public void SetCustomSQLDeleteAll(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; - public void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; - public void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; - public void SetTypeUsingReflection(string className, string propertyName, string access) => throw null; - public System.Collections.Generic.ISet SynchronizedTables { get => throw null; } - public NHibernate.Mapping.Table Table { get => throw null; } - public override string ToString() => throw null; - public NHibernate.Type.IType Type { get => throw null; } - public string TypeName { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary TypeParameters { get => throw null; set => throw null; } - public virtual void Validate(NHibernate.Engine.IMapping mapping) => throw null; - public string Where { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Mapping.Column` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Column : System.ICloneable, NHibernate.Mapping.ISelectable - { - public string CanonicalName { get => throw null; } - public string CheckConstraint { get => throw null; set => throw null; } - public object Clone() => throw null; - public Column(string columnName) => throw null; - public Column() => throw null; - public string Comment { get => throw null; set => throw null; } - public const int DefaultLength = default; - public const int DefaultPrecision = default; - public const int DefaultScale = default; - public string DefaultValue { get => throw null; set => throw null; } - public override bool Equals(object obj) => throw null; - public bool Equals(NHibernate.Mapping.Column column) => throw null; - public string GetAlias(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table) => throw null; - public string GetAlias(NHibernate.Dialect.Dialect dialect) => throw null; - public override int GetHashCode() => throw null; - public string GetQuotedName(NHibernate.Dialect.Dialect d) => throw null; - public string GetQuotedName() => throw null; - public string GetSqlType(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) => throw null; - public NHibernate.SqlTypes.SqlType GetSqlTypeCode(NHibernate.Engine.IMapping mapping) => throw null; - public string GetTemplate(NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null; - public string GetText(NHibernate.Dialect.Dialect dialect) => throw null; - public bool HasCheckConstraint { get => throw null; } - public bool IsCaracteristicsDefined() => throw null; - public bool IsFormula { get => throw null; } - public bool IsLengthDefined() => throw null; - public bool IsNullable { get => throw null; set => throw null; } - public bool IsPrecisionDefined() => throw null; - public bool IsQuoted { get => throw null; set => throw null; } - public bool IsScaleDefined() => throw null; - public bool IsUnique { get => throw null; set => throw null; } - public int Length { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public int Precision { get => throw null; set => throw null; } - public int Scale { get => throw null; set => throw null; } - public string SqlType { get => throw null; set => throw null; } - public NHibernate.SqlTypes.SqlType SqlTypeCode { get => throw null; set => throw null; } - public string Text { get => throw null; } - public override string ToString() => throw null; - public int TypeIndex { get => throw null; set => throw null; } - public bool Unique { get => throw null; set => throw null; } - public NHibernate.Mapping.IValue Value { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Mapping.Component` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Component : NHibernate.Mapping.SimpleValue, NHibernate.Mapping.IMetaAttributable - { - public override void AddColumn(NHibernate.Mapping.Column column) => throw null; - public void AddProperty(NHibernate.Mapping.Property p) => throw null; - public virtual void AddTuplizer(NHibernate.EntityMode entityMode, string implClassName) => throw null; - public override bool[] ColumnInsertability { get => throw null; } - public override System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } - public override int ColumnSpan { get => throw null; } - public override bool[] ColumnUpdateability { get => throw null; } - public Component(NHibernate.Mapping.Table table, NHibernate.Mapping.PersistentClass owner) => throw null; - public Component(NHibernate.Mapping.PersistentClass owner) => throw null; - public Component(NHibernate.Mapping.Component component) => throw null; - public Component(NHibernate.Mapping.Collection collection) => throw null; - public System.Type ComponentClass { get => throw null; set => throw null; } - public string ComponentClassName { get => throw null; set => throw null; } - public NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName) => throw null; - public NHibernate.Mapping.Property GetProperty(string propertyName) => throw null; - public virtual string GetTuplizerImplClassName(NHibernate.EntityMode mode) => throw null; - public bool HasPocoRepresentation { get => throw null; } - public bool IsDynamic { get => throw null; set => throw null; } - public bool IsEmbedded { get => throw null; set => throw null; } - public bool IsKey { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary MetaAttributes { get => throw null; set => throw null; } - public NHibernate.Mapping.PersistentClass Owner { get => throw null; set => throw null; } - public NHibernate.Mapping.Property ParentProperty { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable PropertyIterator { get => throw null; } - public int PropertySpan { get => throw null; } - public string RoleName { get => throw null; set => throw null; } - public override void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null; - public override string ToString() => throw null; - public virtual System.Collections.Generic.IDictionary TuplizerMap { get => throw null; } - public override NHibernate.Type.IType Type { get => throw null; } - } - - // Generated from `NHibernate.Mapping.Constraint` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class Constraint : NHibernate.Mapping.IRelationalModel - { - public void AddColumn(NHibernate.Mapping.Column column) => throw null; - public void AddColumns(System.Collections.Generic.IEnumerable columnIterator) => throw null; - public void AddColumns(System.Collections.Generic.IEnumerable columnIterator) => throw null; - public System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } - public int ColumnSpan { get => throw null; } - public System.Collections.Generic.IList Columns { get => throw null; } - protected Constraint() => throw null; - public static string GenerateName(string prefix, NHibernate.Mapping.Table table, NHibernate.Mapping.Table referencedTable, System.Collections.Generic.IEnumerable columns) => throw null; - public virtual bool IsGenerated(NHibernate.Dialect.Dialect dialect) => throw null; - public string Name { get => throw null; set => throw null; } - public abstract string SqlConstraintString(NHibernate.Dialect.Dialect d, string constraintName, string defaultCatalog, string defaultSchema); - public virtual string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null; - public virtual string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; - public NHibernate.Mapping.Table Table { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Mapping.DenormalizedTable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DenormalizedTable : NHibernate.Mapping.Table - { - public override System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } - public override bool ContainsColumn(NHibernate.Mapping.Column column) => throw null; - public override void CreateForeignKeys() => throw null; - public DenormalizedTable(NHibernate.Mapping.Table includedTable) => throw null; - public override NHibernate.Mapping.Column GetColumn(NHibernate.Mapping.Column column) => throw null; - public override System.Collections.Generic.IEnumerable IndexIterator { get => throw null; } - public override NHibernate.Mapping.PrimaryKey PrimaryKey { get => throw null; set => throw null; } - public override System.Collections.Generic.IEnumerable UniqueKeyIterator { get => throw null; } - } - - // Generated from `NHibernate.Mapping.DependantValue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DependantValue : NHibernate.Mapping.SimpleValue - { - public DependantValue(NHibernate.Mapping.Table table, NHibernate.Mapping.IKeyValue prototype) => throw null; - public override bool IsNullable { get => throw null; } - public override bool IsUpdateable { get => throw null; } - public void SetNullable(bool nullable) => throw null; - public void SetTypeUsingReflection(string className, string propertyName) => throw null; - public virtual void SetUpdateable(bool updateable) => throw null; - public override NHibernate.Type.IType Type { get => throw null; } - } - - // Generated from `NHibernate.Mapping.ForeignKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ForeignKey : NHibernate.Mapping.Constraint - { - public virtual void AddReferencedColumns(System.Collections.Generic.IEnumerable referencedColumnsIterator) => throw null; - public void AlignColumns() => throw null; - public bool CascadeDeleteEnabled { get => throw null; set => throw null; } - public ForeignKey() => throw null; - public string GeneratedConstraintNamePrefix { get => throw null; } - public bool HasPhysicalConstraint { get => throw null; } - public override bool IsGenerated(NHibernate.Dialect.Dialect dialect) => throw null; - public bool IsReferenceToPrimaryKey { get => throw null; } - public System.Collections.Generic.IList ReferencedColumns { get => throw null; } - public string ReferencedEntityName { get => throw null; set => throw null; } - public NHibernate.Mapping.Table ReferencedTable { get => throw null; set => throw null; } - public override string SqlConstraintString(NHibernate.Dialect.Dialect d, string constraintName, string defaultCatalog, string defaultSchema) => throw null; - public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Mapping.Formula` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Formula : NHibernate.Mapping.ISelectable - { - public Formula() => throw null; - public string FormulaString { get => throw null; set => throw null; } - public string GetAlias(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table) => throw null; - public string GetAlias(NHibernate.Dialect.Dialect dialect) => throw null; - public string GetTemplate(NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null; - public string GetText(NHibernate.Dialect.Dialect dialect) => throw null; - public bool IsFormula { get => throw null; } - public string Text { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Mapping.IAuxiliaryDatabaseObject` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IAuxiliaryDatabaseObject : NHibernate.Mapping.IRelationalModel - { - void AddDialectScope(string dialectName); - bool AppliesToDialect(NHibernate.Dialect.Dialect dialect); - void SetParameterValues(System.Collections.Generic.IDictionary parameters); - } - - // Generated from `NHibernate.Mapping.IFetchable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IFetchable - { - NHibernate.FetchMode FetchMode { get; set; } - bool IsLazy { get; set; } - } - - // Generated from `NHibernate.Mapping.IFilterable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IFilterable - { - void AddFilter(string name, string condition); - System.Collections.Generic.IDictionary FilterMap { get; } - } - - // Generated from `NHibernate.Mapping.IKeyValue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IKeyValue : NHibernate.Mapping.IValue - { - void CreateForeignKeyOfEntity(string entityName); - NHibernate.Id.IIdentifierGenerator CreateIdentifierGenerator(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema, NHibernate.Mapping.RootClass rootClass); - bool IsCascadeDeleteEnabled { get; } - bool IsIdentityColumn(NHibernate.Dialect.Dialect dialect); - bool IsUpdateable { get; } - string NullValue { get; } - } - - // Generated from `NHibernate.Mapping.IMetaAttributable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IMetaAttributable - { - NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName); - System.Collections.Generic.IDictionary MetaAttributes { get; set; } - } - - // Generated from `NHibernate.Mapping.IPersistentClassVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPersistentClassVisitor - { - object Accept(NHibernate.Mapping.PersistentClass clazz); - } - - // Generated from `NHibernate.Mapping.IPersistentClassVisitor<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPersistentClassVisitor where T : NHibernate.Mapping.PersistentClass - { - object Accept(T clazz); - } - - // Generated from `NHibernate.Mapping.IRelationalModel` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IRelationalModel - { - string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema); - string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema); - } - - // Generated from `NHibernate.Mapping.ISelectable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISelectable - { - string GetAlias(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table); - string GetAlias(NHibernate.Dialect.Dialect dialect); - string GetTemplate(NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry); - string GetText(NHibernate.Dialect.Dialect dialect); - bool IsFormula { get; } - string Text { get; } - } - - // Generated from `NHibernate.Mapping.ISqlCustomizable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISqlCustomizable - { - void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle); - void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle); - void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle); - } - - // Generated from `NHibernate.Mapping.ITableOwner` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ITableOwner - { - NHibernate.Mapping.Table Table { set; } - } - - // Generated from `NHibernate.Mapping.IValue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IValue - { - object Accept(NHibernate.Mapping.IValueVisitor visitor); - bool[] ColumnInsertability { get; } - System.Collections.Generic.IEnumerable ColumnIterator { get; } - int ColumnSpan { get; } - bool[] ColumnUpdateability { get; } - void CreateForeignKey(); - NHibernate.FetchMode FetchMode { get; } - bool HasFormula { get; } - bool IsAlternateUniqueKey { get; } - bool IsNullable { get; } - bool IsSimpleValue { get; } - bool IsValid(NHibernate.Engine.IMapping mapping); - void SetTypeUsingReflection(string className, string propertyName, string accesorName); - NHibernate.Mapping.Table Table { get; } - NHibernate.Type.IType Type { get; } - } - - // Generated from `NHibernate.Mapping.IValueVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IValueVisitor - { - object Accept(NHibernate.Mapping.IValue visited); - } - - // Generated from `NHibernate.Mapping.IValueVisitor<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IValueVisitor : NHibernate.Mapping.IValueVisitor where T : NHibernate.Mapping.IValue - { - object Accept(T visited); - } - - // Generated from `NHibernate.Mapping.IdentifierBag` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentifierBag : NHibernate.Mapping.IdentifierCollection - { - public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; } - public IdentifierBag(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - } - - // Generated from `NHibernate.Mapping.IdentifierCollection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class IdentifierCollection : NHibernate.Mapping.Collection - { - public override void CreatePrimaryKey() => throw null; - public const string DefaultIdentifierColumnName = default; - public NHibernate.Mapping.IKeyValue Identifier { get => throw null; set => throw null; } - protected IdentifierCollection(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - public override bool IsIdentified { get => throw null; } - public override void Validate(NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.Index` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Index : NHibernate.Mapping.IRelationalModel - { - public void AddColumn(NHibernate.Mapping.Column column) => throw null; - public void AddColumns(System.Collections.Generic.IEnumerable extraColumns) => throw null; - public static string BuildSqlCreateIndexString(NHibernate.Dialect.Dialect dialect, string name, NHibernate.Mapping.Table table, System.Collections.Generic.IEnumerable columns, bool unique, string defaultCatalog, string defaultSchema) => throw null; - public static string BuildSqlDropIndexString(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table, string name, string defaultCatalog, string defaultSchema) => throw null; - public System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } - public int ColumnSpan { get => throw null; } - public bool ContainsColumn(NHibernate.Mapping.Column column) => throw null; - public Index() => throw null; - public bool IsInherited { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null; - public string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; - public NHibernate.Mapping.Table Table { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `NHibernate.Mapping.IndexBackref` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IndexBackref : NHibernate.Mapping.Property - { - public override bool BackRef { get => throw null; } - public string CollectionRole { get => throw null; set => throw null; } - public string EntityName { get => throw null; set => throw null; } - public IndexBackref() => throw null; - public override bool IsBasicPropertyAccessor { get => throw null; } - protected override NHibernate.Properties.IPropertyAccessor PropertyAccessor { get => throw null; } - } - - // Generated from `NHibernate.Mapping.IndexedCollection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class IndexedCollection : NHibernate.Mapping.Collection - { - public override void CreatePrimaryKey() => throw null; - public const string DefaultIndexColumnName = default; - public NHibernate.Mapping.SimpleValue Index { get => throw null; set => throw null; } - protected IndexedCollection(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - public override bool IsIndexed { get => throw null; } - public virtual bool IsList { get => throw null; } - public override void Validate(NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.Join` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Join : NHibernate.Mapping.ISqlCustomizable - { - public void AddProperty(NHibernate.Mapping.Property prop) => throw null; - public bool ContainsProperty(NHibernate.Mapping.Property prop) => throw null; - public void CreateForeignKey() => throw null; - public void CreatePrimaryKey(NHibernate.Dialect.Dialect dialect) => throw null; - public void CreatePrimaryKey() => throw null; - public NHibernate.SqlCommand.SqlString CustomSQLDelete { get => throw null; } - public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteCheckStyle { get => throw null; } - public NHibernate.SqlCommand.SqlString CustomSQLInsert { get => throw null; } - public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLInsertCheckStyle { get => throw null; } - public NHibernate.SqlCommand.SqlString CustomSQLUpdate { get => throw null; } - public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLUpdateCheckStyle { get => throw null; } - public bool IsCustomDeleteCallable { get => throw null; } - public bool IsCustomInsertCallable { get => throw null; } - public bool IsCustomUpdateCallable { get => throw null; } - public virtual bool IsInverse { get => throw null; set => throw null; } - public bool IsLazy { get => throw null; } - public virtual bool IsOptional { get => throw null; set => throw null; } - public virtual bool IsSequentialSelect { get => throw null; set => throw null; } - public Join() => throw null; - public virtual NHibernate.Mapping.IKeyValue Key { get => throw null; set => throw null; } - public virtual NHibernate.Mapping.PersistentClass PersistentClass { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable PropertyIterator { get => throw null; } - public int PropertySpan { get => throw null; } - public NHibernate.Mapping.Property RefIdProperty { get => throw null; set => throw null; } - public void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; - public void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; - public void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; - public virtual NHibernate.Mapping.Table Table { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Mapping.JoinedSubclass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JoinedSubclass : NHibernate.Mapping.Subclass, NHibernate.Mapping.ITableOwner - { - public JoinedSubclass(NHibernate.Mapping.PersistentClass superclass) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - public override NHibernate.Mapping.IKeyValue Key { get => throw null; set => throw null; } - public override System.Collections.Generic.IEnumerable ReferenceablePropertyIterator { get => throw null; } - public override NHibernate.Mapping.Table Table { get => throw null; } - NHibernate.Mapping.Table NHibernate.Mapping.ITableOwner.Table { set => throw null; } - public override void Validate(NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.List` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class List : NHibernate.Mapping.IndexedCollection - { - public int BaseIndex { get => throw null; set => throw null; } - public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; } - public override bool IsList { get => throw null; } - public List(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - } - - // Generated from `NHibernate.Mapping.ManyToOne` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ManyToOne : NHibernate.Mapping.ToOne - { - public override void CreateForeignKey() => throw null; - public void CreatePropertyRefConstraints(System.Collections.Generic.IDictionary persistentClasses) => throw null; - public bool IsIgnoreNotFound { get => throw null; set => throw null; } - public bool IsLogicalOneToOne { get => throw null; set => throw null; } - public ManyToOne(NHibernate.Mapping.Table table) : base(default(NHibernate.Mapping.Table)) => throw null; - public string PropertyName { get => throw null; set => throw null; } - public override NHibernate.Type.IType Type { get => throw null; } - } - - // Generated from `NHibernate.Mapping.Map` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Map : NHibernate.Mapping.IndexedCollection - { - public override NHibernate.Type.CollectionType CollectionType { get => throw null; } - public override void CreateAllKeys() => throw null; - public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; } - public override bool IsMap { get => throw null; } - public Map(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - } - - // Generated from `NHibernate.Mapping.MetaAttribute` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MetaAttribute - { - public void AddValue(string value) => throw null; - public void AddValues(System.Collections.Generic.IEnumerable range) => throw null; - public bool IsMultiValued { get => throw null; } - public MetaAttribute(string name) => throw null; - public string Name { get => throw null; } - public override string ToString() => throw null; - public string Value { get => throw null; } - public System.Collections.Generic.IList Values { get => throw null; } - } - - // Generated from `NHibernate.Mapping.OneToMany` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OneToMany : NHibernate.Mapping.IValue - { - public object Accept(NHibernate.Mapping.IValueVisitor visitor) => throw null; - public NHibernate.Mapping.PersistentClass AssociatedClass { get => throw null; set => throw null; } - public bool[] ColumnInsertability { get => throw null; } - public System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } - public int ColumnSpan { get => throw null; } - public bool[] ColumnUpdateability { get => throw null; } - public void CreateForeignKey() => throw null; - public NHibernate.FetchMode FetchMode { get => throw null; } - public NHibernate.Mapping.Formula Formula { get => throw null; } - public bool HasFormula { get => throw null; } - public bool IsAlternateUniqueKey { get => throw null; } - public bool IsIgnoreNotFound { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; } - public bool IsSimpleValue { get => throw null; } - public bool IsUnique { get => throw null; } - public bool IsValid(NHibernate.Engine.IMapping mapping) => throw null; - public OneToMany(NHibernate.Mapping.PersistentClass owner) => throw null; - public string ReferencedEntityName { get => throw null; set => throw null; } - public NHibernate.Mapping.Table ReferencingTable { get => throw null; } - public void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null; - public NHibernate.Mapping.Table Table { get => throw null; } - public NHibernate.Type.IType Type { get => throw null; } - } - - // Generated from `NHibernate.Mapping.OneToOne` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OneToOne : NHibernate.Mapping.ToOne - { - public override System.Collections.Generic.IEnumerable ConstraintColumns { get => throw null; } - public override void CreateForeignKey() => throw null; - public string EntityName { get => throw null; set => throw null; } - public NHibernate.Type.ForeignKeyDirection ForeignKeyType { get => throw null; set => throw null; } - public NHibernate.Mapping.IKeyValue Identifier { get => throw null; set => throw null; } - public bool IsConstrained { get => throw null; set => throw null; } - public override bool IsNullable { get => throw null; } - public OneToOne(NHibernate.Mapping.Table table, NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.Table)) => throw null; - public string PropertyName { get => throw null; set => throw null; } - public override NHibernate.Type.IType Type { get => throw null; } - } - - // Generated from `NHibernate.Mapping.PersistentClass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class PersistentClass : NHibernate.Mapping.ISqlCustomizable, NHibernate.Mapping.IMetaAttributable, NHibernate.Mapping.IFilterable - { - public abstract object Accept(NHibernate.Mapping.IPersistentClassVisitor mv); - public void AddFilter(string name, string condition) => throw null; - public virtual void AddJoin(NHibernate.Mapping.Join join) => throw null; - public virtual void AddProperty(NHibernate.Mapping.Property p) => throw null; - public virtual void AddSubclass(NHibernate.Mapping.Subclass subclass) => throw null; - public virtual void AddSubclassJoin(NHibernate.Mapping.Join join) => throw null; - public virtual void AddSubclassProperty(NHibernate.Mapping.Property p) => throw null; - public virtual void AddSubclassTable(NHibernate.Mapping.Table table) => throw null; - public void AddSynchronizedTable(string table) => throw null; - public void AddTuplizer(NHibernate.EntityMode entityMode, string implClass) => throw null; - public int? BatchSize { get => throw null; set => throw null; } - public abstract string CacheConcurrencyStrategy { get; set; } - protected internal void CheckColumnDuplication(System.Collections.Generic.ISet distinctColumns, System.Collections.Generic.IEnumerable columns) => throw null; - protected internal virtual void CheckColumnDuplication() => throw null; - protected internal void CheckPropertyColumnDuplication(System.Collections.Generic.ISet distinctColumns, System.Collections.Generic.IEnumerable properties) => throw null; - public string ClassName { get => throw null; set => throw null; } - public virtual void CreatePrimaryKey(NHibernate.Dialect.Dialect dialect) => throw null; - public virtual void CreatePrimaryKey() => throw null; - public NHibernate.SqlCommand.SqlString CustomSQLDelete { get => throw null; } - public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteCheckStyle { get => throw null; } - public NHibernate.SqlCommand.SqlString CustomSQLInsert { get => throw null; } - public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLInsertCheckStyle { get => throw null; } - public NHibernate.SqlCommand.SqlString CustomSQLUpdate { get => throw null; } - public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLUpdateCheckStyle { get => throw null; } - public virtual System.Collections.Generic.IEnumerable DirectSubclasses { get => throw null; } - public abstract NHibernate.Mapping.IValue Discriminator { get; set; } - protected internal virtual System.Collections.Generic.IEnumerable DiscriminatorColumnIterator { get => throw null; } - public virtual string DiscriminatorValue { get => throw null; set => throw null; } - public virtual bool DynamicInsert { get => throw null; set => throw null; } - public virtual bool DynamicUpdate { get => throw null; set => throw null; } - public virtual string EntityName { get => throw null; set => throw null; } - public abstract System.Type EntityPersisterClass { get; set; } - public virtual System.Collections.Generic.IDictionary FilterMap { get => throw null; } - public virtual int GetJoinNumber(NHibernate.Mapping.Property prop) => throw null; - public NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName) => throw null; - public NHibernate.Mapping.Property GetProperty(string propertyName) => throw null; - public NHibernate.Mapping.Property GetRecursiveProperty(string propertyPath) => throw null; - public NHibernate.Mapping.Property GetReferencedProperty(string propertyPath) => throw null; - public virtual string GetTuplizerImplClassName(NHibernate.EntityMode mode) => throw null; - public abstract bool HasEmbeddedIdentifier { get; set; } - public bool HasIdentifierMapper { get => throw null; } - public abstract bool HasIdentifierProperty { get; } - public bool HasNaturalId() => throw null; - public bool HasPocoRepresentation { get => throw null; } - public virtual bool HasSubclasses { get => throw null; } - public virtual bool HasSubselectLoadableCollections { get => throw null; set => throw null; } - public abstract NHibernate.Mapping.IKeyValue Identifier { get; set; } - public virtual NHibernate.Mapping.Component IdentifierMapper { get => throw null; set => throw null; } - public abstract NHibernate.Mapping.Property IdentifierProperty { get; set; } - public virtual NHibernate.Mapping.Table IdentityTable { get => throw null; } - public bool? IsAbstract { get => throw null; set => throw null; } - public virtual bool IsClassOrSuperclassJoin(NHibernate.Mapping.Join join) => throw null; - public virtual bool IsClassOrSuperclassTable(NHibernate.Mapping.Table closureTable) => throw null; - public bool IsCustomDeleteCallable { get => throw null; } - public bool IsCustomInsertCallable { get => throw null; } - public bool IsCustomUpdateCallable { get => throw null; } - public abstract bool IsDiscriminatorInsertable { get; set; } - public bool IsDiscriminatorValueNotNull { get => throw null; } - public bool IsDiscriminatorValueNull { get => throw null; } - public abstract bool IsExplicitPolymorphism { get; set; } - public virtual bool IsForceDiscriminator { get => throw null; set => throw null; } - public abstract bool IsInherited { get; } - public abstract bool IsJoinedSubclass { get; } - public bool IsLazy { get => throw null; set => throw null; } - public abstract bool IsLazyPropertiesCacheable { get; } - public abstract bool IsMutable { get; set; } - public abstract bool IsPolymorphic { get; set; } - public abstract bool IsVersioned { get; } - public virtual System.Collections.Generic.IEnumerable JoinClosureIterator { get => throw null; } - public virtual int JoinClosureSpan { get => throw null; } - public virtual System.Collections.Generic.IEnumerable JoinIterator { get => throw null; } - public abstract NHibernate.Mapping.IKeyValue Key { get; set; } - public abstract System.Collections.Generic.IEnumerable KeyClosureIterator { get; } - public string LoaderName { get => throw null; set => throw null; } - public virtual System.Type MappedClass { get => throw null; } - public System.Collections.Generic.IDictionary MetaAttributes { get => throw null; set => throw null; } - protected internal virtual System.Collections.Generic.IEnumerable NonDuplicatedPropertyIterator { get => throw null; } - public const string NotNullDiscriminatorMapping = default; - public const string NullDiscriminatorMapping = default; - public virtual NHibernate.Engine.Versioning.OptimisticLock OptimisticLockMode { get => throw null; set => throw null; } - protected PersistentClass() => throw null; - public void PrepareTemporaryTables(NHibernate.Engine.IMapping mapping, NHibernate.Dialect.Dialect dialect) => throw null; - public abstract System.Collections.Generic.IEnumerable PropertyClosureIterator { get; } - public virtual int PropertyClosureSpan { get => throw null; } - public virtual System.Collections.Generic.IEnumerable PropertyIterator { get => throw null; } - public virtual System.Type ProxyInterface { get => throw null; } - public string ProxyInterfaceName { get => throw null; set => throw null; } - public virtual System.Collections.Generic.IEnumerable ReferenceablePropertyIterator { get => throw null; } - public abstract NHibernate.Mapping.RootClass RootClazz { get; } - public abstract NHibernate.Mapping.Table RootTable { get; } - public bool SelectBeforeUpdate { get => throw null; set => throw null; } - public void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; - public void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; - public void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; - public virtual System.Collections.Generic.IEnumerable SubclassClosureIterator { get => throw null; } - public abstract int SubclassId { get; } - public virtual System.Collections.Generic.IEnumerable SubclassIterator { get => throw null; } - public virtual System.Collections.Generic.IEnumerable SubclassJoinClosureIterator { get => throw null; } - public virtual System.Collections.Generic.IEnumerable SubclassPropertyClosureIterator { get => throw null; } - public virtual int SubclassSpan { get => throw null; } - public virtual System.Collections.Generic.IEnumerable SubclassTableClosureIterator { get => throw null; } - public abstract NHibernate.Mapping.PersistentClass Superclass { get; set; } - public virtual System.Collections.Generic.ISet SynchronizedTables { get => throw null; } - public abstract NHibernate.Mapping.Table Table { get; } - public abstract System.Collections.Generic.IEnumerable TableClosureIterator { get; } - public string TemporaryIdTableDDL { get => throw null; } - public string TemporaryIdTableName { get => throw null; } - public override string ToString() => throw null; - public virtual System.Collections.Generic.IDictionary TuplizerMap { get => throw null; } - public virtual System.Collections.Generic.IEnumerable UnjoinedPropertyIterator { get => throw null; } - public virtual void Validate(NHibernate.Engine.IMapping mapping) => throw null; - public abstract NHibernate.Mapping.Property Version { get; set; } - public abstract string Where { get; set; } - } - - // Generated from `NHibernate.Mapping.PrimaryKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PrimaryKey : NHibernate.Mapping.Constraint - { - public PrimaryKey() => throw null; - public string SqlConstraintString(NHibernate.Dialect.Dialect d, string defaultSchema) => throw null; - public override string SqlConstraintString(NHibernate.Dialect.Dialect d, string constraintName, string defaultCatalog, string defaultSchema) => throw null; - public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; - } - - // Generated from `NHibernate.Mapping.PrimitiveArray` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PrimitiveArray : NHibernate.Mapping.Array - { - public override bool IsPrimitiveArray { get => throw null; } - public PrimitiveArray(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - } - - // Generated from `NHibernate.Mapping.Property` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Property : NHibernate.Mapping.IMetaAttributable - { - public virtual bool BackRef { get => throw null; } - public string Cascade { get => throw null; set => throw null; } - public NHibernate.Engine.CascadeStyle CascadeStyle { get => throw null; } - public System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } - public int ColumnSpan { get => throw null; } - public NHibernate.Mapping.PropertyGeneration Generation { get => throw null; set => throw null; } - public NHibernate.Properties.IGetter GetGetter(System.Type clazz) => throw null; - public NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName) => throw null; - public NHibernate.Properties.ISetter GetSetter(System.Type clazz) => throw null; - public virtual bool IsBasicPropertyAccessor { get => throw null; } - public bool IsComposite { get => throw null; } - public bool IsEntityRelation { get => throw null; } - public bool IsInsertable { get => throw null; set => throw null; } - public bool IsLazy { get => throw null; set => throw null; } - public bool IsNaturalIdentifier { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; } - public bool IsOptimisticLocked { get => throw null; set => throw null; } - public bool IsOptional { get => throw null; set => throw null; } - public bool IsSelectable { get => throw null; set => throw null; } - public bool IsUpdateable { get => throw null; set => throw null; } - public bool IsValid(NHibernate.Engine.IMapping mapping) => throw null; - public string LazyGroup { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary MetaAttributes { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string NullValue { get => throw null; } - public NHibernate.Mapping.PersistentClass PersistentClass { get => throw null; set => throw null; } - public Property(NHibernate.Mapping.IValue propertyValue) => throw null; - public Property() => throw null; - protected virtual NHibernate.Properties.IPropertyAccessor PropertyAccessor { get => throw null; } - public string PropertyAccessorName { get => throw null; set => throw null; } - public NHibernate.Type.IType Type { get => throw null; } - public bool UnwrapProxy { get => throw null; set => throw null; } - public NHibernate.Mapping.IValue Value { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Mapping.PropertyGeneration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public enum PropertyGeneration - { - Always, - Insert, - Never, - } - - // Generated from `NHibernate.Mapping.ReferenceDependantValue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ReferenceDependantValue : NHibernate.Mapping.DependantValue - { - public override void CreateForeignKeyOfEntity(string entityName) => throw null; - public System.Collections.Generic.IEnumerable ReferenceColumns { get => throw null; } - public ReferenceDependantValue(NHibernate.Mapping.Table table, NHibernate.Mapping.SimpleValue prototype) : base(default(NHibernate.Mapping.Table), default(NHibernate.Mapping.IKeyValue)) => throw null; - } - - // Generated from `NHibernate.Mapping.RootClass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class RootClass : NHibernate.Mapping.PersistentClass, NHibernate.Mapping.ITableOwner - { - public override object Accept(NHibernate.Mapping.IPersistentClassVisitor mv) => throw null; - public override void AddSubclass(NHibernate.Mapping.Subclass subclass) => throw null; - public override string CacheConcurrencyStrategy { get => throw null; set => throw null; } - public string CacheRegionName { get => throw null; set => throw null; } - public const string DefaultDiscriminatorColumnName = default; - public const string DefaultIdentifierColumnName = default; - public override NHibernate.Mapping.IValue Discriminator { get => throw null; set => throw null; } - public override System.Type EntityPersisterClass { get => throw null; set => throw null; } - public override bool HasEmbeddedIdentifier { get => throw null; set => throw null; } - public override bool HasIdentifierProperty { get => throw null; } - public override NHibernate.Mapping.IKeyValue Identifier { get => throw null; set => throw null; } - public override NHibernate.Mapping.Property IdentifierProperty { get => throw null; set => throw null; } - public virtual System.Collections.Generic.ISet IdentityTables { get => throw null; } - public override bool IsDiscriminatorInsertable { get => throw null; set => throw null; } - public override bool IsExplicitPolymorphism { get => throw null; set => throw null; } - public override bool IsForceDiscriminator { get => throw null; set => throw null; } - public override bool IsInherited { get => throw null; } - public override bool IsJoinedSubclass { get => throw null; } - public override bool IsLazyPropertiesCacheable { get => throw null; } - public override bool IsMutable { get => throw null; set => throw null; } - public override bool IsPolymorphic { get => throw null; set => throw null; } - public override bool IsVersioned { get => throw null; } - public override NHibernate.Mapping.IKeyValue Key { get => throw null; set => throw null; } - public override System.Collections.Generic.IEnumerable KeyClosureIterator { get => throw null; } - public override System.Collections.Generic.IEnumerable PropertyClosureIterator { get => throw null; } - public RootClass() => throw null; - public override NHibernate.Mapping.RootClass RootClazz { get => throw null; } - public override NHibernate.Mapping.Table RootTable { get => throw null; } - public void SetLazyPropertiesCacheable(bool isLazyPropertiesCacheable) => throw null; - public override int SubclassId { get => throw null; } - public override NHibernate.Mapping.PersistentClass Superclass { get => throw null; set => throw null; } - public override NHibernate.Mapping.Table Table { get => throw null; } - NHibernate.Mapping.Table NHibernate.Mapping.ITableOwner.Table { set => throw null; } - public override System.Collections.Generic.IEnumerable TableClosureIterator { get => throw null; } - public override void Validate(NHibernate.Engine.IMapping mapping) => throw null; - public override NHibernate.Mapping.Property Version { get => throw null; set => throw null; } - public override string Where { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Mapping.SchemaAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - [System.Flags] - public enum SchemaAction - { - All, - Drop, - Export, - None, - Update, - Validate, - } - - // Generated from `NHibernate.Mapping.Set` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Set : NHibernate.Mapping.Collection - { - public override void CreatePrimaryKey() => throw null; - public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; } - public override bool IsSet { get => throw null; } - public Set(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - } - - // Generated from `NHibernate.Mapping.SimpleAuxiliaryDatabaseObject` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SimpleAuxiliaryDatabaseObject : NHibernate.Mapping.AbstractAuxiliaryDatabaseObject - { - public SimpleAuxiliaryDatabaseObject(string sqlCreateString, string sqlDropString, System.Collections.Generic.HashSet dialectScopes) => throw null; - public SimpleAuxiliaryDatabaseObject(string sqlCreateString, string sqlDropString) => throw null; - public override string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null; - public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; - } - - // Generated from `NHibernate.Mapping.SimpleValue` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SimpleValue : NHibernate.Mapping.IValue, NHibernate.Mapping.IKeyValue - { - public virtual object Accept(NHibernate.Mapping.IValueVisitor visitor) => throw null; - public virtual void AddColumn(NHibernate.Mapping.Column column) => throw null; - public virtual void AddFormula(NHibernate.Mapping.Formula formula) => throw null; - public virtual bool[] ColumnInsertability { get => throw null; } - public virtual System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } - public virtual int ColumnSpan { get => throw null; } - public virtual bool[] ColumnUpdateability { get => throw null; } - public virtual System.Collections.Generic.IEnumerable ConstraintColumns { get => throw null; } - public virtual void CreateForeignKey() => throw null; - public virtual void CreateForeignKeyOfEntity(string entityName) => throw null; - public NHibernate.Id.IIdentifierGenerator CreateIdentifierGenerator(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema, NHibernate.Mapping.RootClass rootClass) => throw null; - public virtual NHibernate.FetchMode FetchMode { get => throw null; set => throw null; } - public string ForeignKeyName { get => throw null; set => throw null; } - public bool HasFormula { get => throw null; } - public System.Collections.Generic.IDictionary IdentifierGeneratorProperties { get => throw null; set => throw null; } - public string IdentifierGeneratorStrategy { get => throw null; set => throw null; } - public bool IsAlternateUniqueKey { get => throw null; set => throw null; } - public bool IsCascadeDeleteEnabled { get => throw null; set => throw null; } - public virtual bool IsComposite { get => throw null; } - public bool IsIdentityColumn(NHibernate.Dialect.Dialect dialect) => throw null; - public virtual bool IsNullable { get => throw null; } - public bool IsSimpleValue { get => throw null; } - public virtual bool IsTypeSpecified { get => throw null; } - public virtual bool IsUpdateable { get => throw null; } - public virtual bool IsValid(NHibernate.Engine.IMapping mapping) => throw null; - public string NullValue { get => throw null; set => throw null; } - public virtual void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null; - public SimpleValue(NHibernate.Mapping.Table table) => throw null; - public SimpleValue() => throw null; - public NHibernate.Mapping.Table Table { get => throw null; set => throw null; } - public override string ToString() => throw null; - public virtual NHibernate.Type.IType Type { get => throw null; } - public string TypeName { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary TypeParameters { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Mapping.SingleTableSubclass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SingleTableSubclass : NHibernate.Mapping.Subclass - { - protected internal override System.Collections.Generic.IEnumerable DiscriminatorColumnIterator { get => throw null; } - protected internal override System.Collections.Generic.IEnumerable NonDuplicatedPropertyIterator { get => throw null; } - public SingleTableSubclass(NHibernate.Mapping.PersistentClass superclass) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - public override void Validate(NHibernate.Engine.IMapping mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.Subclass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Subclass : NHibernate.Mapping.PersistentClass - { - public override object Accept(NHibernate.Mapping.IPersistentClassVisitor mv) => throw null; - public override void AddJoin(NHibernate.Mapping.Join join) => throw null; - public override void AddProperty(NHibernate.Mapping.Property p) => throw null; - public override void AddSubclassJoin(NHibernate.Mapping.Join join) => throw null; - public override void AddSubclassProperty(NHibernate.Mapping.Property p) => throw null; - public override void AddSubclassTable(NHibernate.Mapping.Table table) => throw null; - public override string CacheConcurrencyStrategy { get => throw null; set => throw null; } - public void CreateForeignKey() => throw null; - public override NHibernate.Mapping.IValue Discriminator { get => throw null; set => throw null; } - public override System.Type EntityPersisterClass { get => throw null; set => throw null; } - public override System.Collections.Generic.IDictionary FilterMap { get => throw null; } - public override string GetTuplizerImplClassName(NHibernate.EntityMode mode) => throw null; - public override bool HasEmbeddedIdentifier { get => throw null; set => throw null; } - public override bool HasIdentifierProperty { get => throw null; } - public override bool HasSubselectLoadableCollections { get => throw null; set => throw null; } - public override NHibernate.Mapping.IKeyValue Identifier { get => throw null; set => throw null; } - public override NHibernate.Mapping.Component IdentifierMapper { get => throw null; } - public override NHibernate.Mapping.Property IdentifierProperty { get => throw null; set => throw null; } - public override bool IsClassOrSuperclassJoin(NHibernate.Mapping.Join join) => throw null; - public override bool IsClassOrSuperclassTable(NHibernate.Mapping.Table closureTable) => throw null; - public override bool IsDiscriminatorInsertable { get => throw null; set => throw null; } - public override bool IsExplicitPolymorphism { get => throw null; set => throw null; } - public override bool IsForceDiscriminator { get => throw null; } - public override bool IsInherited { get => throw null; } - public override bool IsJoinedSubclass { get => throw null; } - public override bool IsLazyPropertiesCacheable { get => throw null; } - public override bool IsMutable { get => throw null; set => throw null; } - public override bool IsPolymorphic { get => throw null; set => throw null; } - public override bool IsVersioned { get => throw null; } - public override System.Collections.Generic.IEnumerable JoinClosureIterator { get => throw null; } - public override int JoinClosureSpan { get => throw null; } - public override NHibernate.Mapping.IKeyValue Key { get => throw null; set => throw null; } - public override System.Collections.Generic.IEnumerable KeyClosureIterator { get => throw null; } - public override NHibernate.Engine.Versioning.OptimisticLock OptimisticLockMode { get => throw null; } - public override System.Collections.Generic.IEnumerable PropertyClosureIterator { get => throw null; } - public override int PropertyClosureSpan { get => throw null; } - public override NHibernate.Mapping.RootClass RootClazz { get => throw null; } - public override NHibernate.Mapping.Table RootTable { get => throw null; } - public Subclass(NHibernate.Mapping.PersistentClass superclass) => throw null; - public override int SubclassId { get => throw null; } - public override NHibernate.Mapping.PersistentClass Superclass { get => throw null; set => throw null; } - public override System.Collections.Generic.ISet SynchronizedTables { get => throw null; } - public override NHibernate.Mapping.Table Table { get => throw null; } - public override System.Collections.Generic.IEnumerable TableClosureIterator { get => throw null; } - public override System.Collections.Generic.IDictionary TuplizerMap { get => throw null; } - public override NHibernate.Mapping.Property Version { get => throw null; set => throw null; } - public override string Where { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Mapping.Table` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Table : NHibernate.Mapping.IRelationalModel - { - public void AddCheckConstraint(string constraint) => throw null; - public void AddColumn(NHibernate.Mapping.Column column) => throw null; - public NHibernate.Mapping.Index AddIndex(NHibernate.Mapping.Index index) => throw null; - public NHibernate.Mapping.UniqueKey AddUniqueKey(NHibernate.Mapping.UniqueKey uniqueKey) => throw null; - public string Catalog { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable CheckConstraintsIterator { get => throw null; } - public virtual System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } - public int ColumnSpan { get => throw null; } - public string Comment { get => throw null; set => throw null; } - public virtual bool ContainsColumn(NHibernate.Mapping.Column column) => throw null; - public virtual NHibernate.Mapping.ForeignKey CreateForeignKey(string keyName, System.Collections.Generic.IEnumerable keyColumns, string referencedEntityName, System.Collections.Generic.IEnumerable referencedColumns) => throw null; - public virtual NHibernate.Mapping.ForeignKey CreateForeignKey(string keyName, System.Collections.Generic.IEnumerable keyColumns, string referencedEntityName) => throw null; - public virtual void CreateForeignKeys() => throw null; - public virtual NHibernate.Mapping.UniqueKey CreateUniqueKey(System.Collections.Generic.IList keyColumns) => throw null; - public System.Collections.Generic.IEnumerable ForeignKeyIterator { get => throw null; } - public virtual NHibernate.Mapping.Column GetColumn(NHibernate.Mapping.Column column) => throw null; - public NHibernate.Mapping.Column GetColumn(int n) => throw null; - public NHibernate.Mapping.Index GetIndex(string indexName) => throw null; - public NHibernate.Mapping.Index GetOrCreateIndex(string indexName) => throw null; - public NHibernate.Mapping.UniqueKey GetOrCreateUniqueKey(string keyName) => throw null; - public virtual string GetQualifiedName(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; - public string GetQualifiedName(NHibernate.Dialect.Dialect dialect) => throw null; - public string GetQuotedCatalog(NHibernate.Dialect.Dialect dialect, string defaultQuotedCatalog) => throw null; - public string GetQuotedCatalog(NHibernate.Dialect.Dialect dialect) => throw null; - public string GetQuotedCatalog() => throw null; - public string GetQuotedName(NHibernate.Dialect.Dialect dialect) => throw null; - public string GetQuotedName() => throw null; - public string GetQuotedSchema(NHibernate.Dialect.Dialect dialect, string defaultQuotedSchema) => throw null; - public string GetQuotedSchema(NHibernate.Dialect.Dialect dialect) => throw null; - public string GetQuotedSchema() => throw null; - public string GetQuotedSchemaName(NHibernate.Dialect.Dialect dialect) => throw null; - public NHibernate.Mapping.UniqueKey GetUniqueKey(string keyName) => throw null; - public bool HasDenormalizedTables { get => throw null; } - public bool HasPrimaryKey { get => throw null; } - public NHibernate.Mapping.IKeyValue IdentifierValue { get => throw null; set => throw null; } - public virtual System.Collections.Generic.IEnumerable IndexIterator { get => throw null; } - public bool IsAbstract { get => throw null; set => throw null; } - public bool IsAbstractUnionTable { get => throw null; } - public bool IsCatalogQuoted { get => throw null; } - public bool IsPhysicalTable { get => throw null; } - public bool IsQuoted { get => throw null; set => throw null; } - public bool IsSchemaQuoted { get => throw null; } - public bool IsSubselect { get => throw null; } - public string Name { get => throw null; set => throw null; } - public virtual NHibernate.Mapping.PrimaryKey PrimaryKey { get => throw null; set => throw null; } - public string RowId { get => throw null; set => throw null; } - public string Schema { get => throw null; set => throw null; } - public NHibernate.Mapping.SchemaAction SchemaActions { get => throw null; set => throw null; } - public void SetIdentifierValue(NHibernate.Mapping.SimpleValue identifierValue) => throw null; - public string[] SqlAlterStrings(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, NHibernate.Dialect.Schema.ITableMetadata tableInfo, string defaultCatalog, string defaultSchema) => throw null; - public virtual string[] SqlCommentStrings(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; - public string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null; - public string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; - public virtual string SqlTemporaryTableCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) => throw null; - public string Subselect { get => throw null; set => throw null; } - public Table(string name) => throw null; - public Table() => throw null; - public override string ToString() => throw null; - public string UniqueColumnString(System.Collections.IEnumerable uniqueColumns) => throw null; - public string UniqueColumnString(System.Collections.IEnumerable iterator, string referencedEntityName) => throw null; - public int UniqueInteger { get => throw null; set => throw null; } - public virtual System.Collections.Generic.IEnumerable UniqueKeyIterator { get => throw null; } - public System.Collections.Generic.IEnumerable ValidateColumns(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping, NHibernate.Dialect.Schema.ITableMetadata tableInfo) => throw null; - } - - // Generated from `NHibernate.Mapping.ToOne` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class ToOne : NHibernate.Mapping.SimpleValue, NHibernate.Mapping.IFetchable - { - public abstract override void CreateForeignKey(); - public override NHibernate.FetchMode FetchMode { get => throw null; set => throw null; } - public bool IsLazy { get => throw null; set => throw null; } - public override bool IsTypeSpecified { get => throw null; } - public override bool IsValid(NHibernate.Engine.IMapping mapping) => throw null; - public string ReferencedEntityName { get => throw null; set => throw null; } - public string ReferencedPropertyName { get => throw null; set => throw null; } - public override void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null; - public ToOne(NHibernate.Mapping.Table table) => throw null; - public abstract override NHibernate.Type.IType Type { get; } - public bool UnwrapProxy { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Mapping.TypeDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TypeDef - { - public System.Collections.Generic.IDictionary Parameters { get => throw null; } - public string TypeClass { get => throw null; } - public TypeDef(string typeClass, System.Collections.Generic.IDictionary parameters) => throw null; - } - - // Generated from `NHibernate.Mapping.UnionSubclass` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnionSubclass : NHibernate.Mapping.Subclass, NHibernate.Mapping.ITableOwner - { - public override NHibernate.Mapping.Table IdentityTable { get => throw null; } - protected internal override System.Collections.Generic.IEnumerable NonDuplicatedPropertyIterator { get => throw null; } - public override NHibernate.Mapping.Table Table { get => throw null; } - NHibernate.Mapping.Table NHibernate.Mapping.ITableOwner.Table { set => throw null; } - public UnionSubclass(NHibernate.Mapping.PersistentClass superclass) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; - } - - // Generated from `NHibernate.Mapping.UniqueKey` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UniqueKey : NHibernate.Mapping.Constraint - { - public override bool IsGenerated(NHibernate.Dialect.Dialect dialect) => throw null; - public string SqlConstraintString(NHibernate.Dialect.Dialect dialect) => throw null; - public override string SqlConstraintString(NHibernate.Dialect.Dialect dialect, string constraintName, string defaultCatalog, string defaultSchema) => throw null; - public override string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null; - public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; - public UniqueKey() => throw null; - } - namespace ByCode { - // Generated from `NHibernate.Mapping.ByCode.AbstractExplicitlyDeclaredModel` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractExplicitlyDeclaredModel : NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder { - protected AbstractExplicitlyDeclaredModel() => throw null; public void AddAsAny(System.Reflection.MemberInfo member) => throw null; public void AddAsArray(System.Reflection.MemberInfo member) => throw null; public void AddAsBag(System.Reflection.MemberInfo member) => throw null; @@ -23616,6 +19093,7 @@ namespace NHibernate public System.Collections.Generic.IEnumerable Bags { get => throw null; } public System.Collections.Generic.IEnumerable Components { get => throw null; } public System.Collections.Generic.IEnumerable ComposedIds { get => throw null; } + protected AbstractExplicitlyDeclaredModel() => throw null; public System.Collections.Generic.IEnumerable Dictionaries { get => throw null; } public System.Collections.Generic.IEnumerable DynamicComponents { get => throw null; } protected void EnlistTypeRegistration(System.Type type, System.Action registration) => throw null; @@ -23652,89 +19130,69 @@ namespace NHibernate public System.Collections.Generic.IEnumerable TablePerConcreteClassEntities { get => throw null; } public System.Collections.Generic.IEnumerable VersionProperties { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.Accessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum Accessor { - Field, - NoSetter, - None, - Property, - ReadOnly, + Property = 0, + Field = 1, + NoSetter = 2, + ReadOnly = 3, + None = 4, + Backfield = 5, } - - // Generated from `NHibernate.Mapping.ByCode.AssignedGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AssignedGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { - public AssignedGeneratorDef() => throw null; public string Class { get => throw null; } + public AssignedGeneratorDef() => throw null; public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.BasePlainPropertyContainerMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class BasePlainPropertyContainerMapperExtensions + public static partial class BasePlainPropertyContainerMapperExtensions { public static void Component(this NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper mapper, System.Linq.Expressions.Expression>> property, TComponent dynamicComponentTemplate, System.Action> mapping) where TComponent : class => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.CacheInclude` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class CacheInclude { public static NHibernate.Mapping.ByCode.CacheInclude All; - // Generated from `NHibernate.Mapping.ByCode.CacheInclude+AllCacheInclude` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AllCacheInclude : NHibernate.Mapping.ByCode.CacheInclude { public AllCacheInclude() => throw null; } - - protected CacheInclude() => throw null; public static NHibernate.Mapping.ByCode.CacheInclude NonLazy; - // Generated from `NHibernate.Mapping.ByCode.CacheInclude+NonLazyCacheInclude` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NonLazyCacheInclude : NHibernate.Mapping.ByCode.CacheInclude { public NonLazyCacheInclude() => throw null; } - - } - - // Generated from `NHibernate.Mapping.ByCode.CacheUsage` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class CacheUsage { protected CacheUsage() => throw null; + public static NHibernate.Mapping.ByCode.CacheUsage Never; public static NHibernate.Mapping.ByCode.CacheUsage NonstrictReadWrite; public static NHibernate.Mapping.ByCode.CacheUsage ReadOnly; public static NHibernate.Mapping.ByCode.CacheUsage ReadWrite; public static NHibernate.Mapping.ByCode.CacheUsage Transactional; } - - // Generated from `NHibernate.Mapping.ByCode.Cascade` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` [System.Flags] public enum Cascade { - All, - DeleteOrphans, - Detach, - Merge, - None, - Persist, - ReAttach, - Refresh, - Remove, + None = 0, + Persist = 2, + Refresh = 4, + Merge = 8, + Remove = 16, + Detach = 32, + ReAttach = 64, + DeleteOrphans = 128, + All = 256, } - - // Generated from `NHibernate.Mapping.ByCode.CascadeExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class CascadeExtensions + public static partial class CascadeExtensions { public static NHibernate.Mapping.ByCode.Cascade Exclude(this NHibernate.Mapping.ByCode.Cascade source, NHibernate.Mapping.ByCode.Cascade value) => throw null; public static bool Has(this NHibernate.Mapping.ByCode.Cascade source, NHibernate.Mapping.ByCode.Cascade value) => throw null; public static NHibernate.Mapping.ByCode.Cascade Include(this NHibernate.Mapping.ByCode.Cascade source, NHibernate.Mapping.ByCode.Cascade value) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.CollectionFetchMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class CollectionFetchMode { protected CollectionFetchMode() => throw null; @@ -23742,47 +19200,67 @@ namespace NHibernate public static NHibernate.Mapping.ByCode.CollectionFetchMode Select; public static NHibernate.Mapping.ByCode.CollectionFetchMode Subselect; } - - // Generated from `NHibernate.Mapping.ByCode.CollectionLazy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum CollectionLazy { - Extra, - Lazy, - NoLazy, + Lazy = 0, + NoLazy = 1, + Extra = 2, } - - // Generated from `NHibernate.Mapping.ByCode.CollectionPropertiesMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class CollectionPropertiesMapperExtensions + public static partial class CollectionPropertiesMapperExtensions { public static void Type(this NHibernate.Mapping.ByCode.ICollectionPropertiesMapper mapper, string collectionType) => throw null; public static void Type(this NHibernate.Mapping.ByCode.ICollectionPropertiesMapper mapper, string collectionType) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.ColumnsAndFormulasMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ColumnsAndFormulasMapperExtensions + public static partial class CollectionSqlsWithCheckMapperExtensions + { + public static void SqlDelete(this NHibernate.Mapping.ByCode.ICollectionSqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public static void SqlDeleteAll(this NHibernate.Mapping.ByCode.ICollectionSqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public static void SqlInsert(this NHibernate.Mapping.ByCode.ICollectionSqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public static void SqlUpdate(this NHibernate.Mapping.ByCode.ICollectionSqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + } + public static partial class ColumnsAndFormulasMapperExtensions { - public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IPropertyMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; - public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IMapKeyMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; - public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; - public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IManyToOneMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; - public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IManyToManyMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IElementMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; - public static void Formulas(this NHibernate.Mapping.ByCode.IPropertyMapper mapper, params string[] formulas) => throw null; - public static void Formulas(this NHibernate.Mapping.ByCode.IMapKeyMapper mapper, params string[] formulas) => throw null; - public static void Formulas(this NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper, params string[] formulas) => throw null; - public static void Formulas(this NHibernate.Mapping.ByCode.IManyToOneMapper mapper, params string[] formulas) => throw null; - public static void Formulas(this NHibernate.Mapping.ByCode.IManyToManyMapper mapper, params string[] formulas) => throw null; + public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IManyToManyMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; + public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IManyToOneMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; + public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; + public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IMapKeyMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; + public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IPropertyMapper mapper, params System.Action[] columnOrFormulaMapper) => throw null; public static void Formulas(this NHibernate.Mapping.ByCode.IElementMapper mapper, params string[] formulas) => throw null; + public static void Formulas(this NHibernate.Mapping.ByCode.IManyToManyMapper mapper, params string[] formulas) => throw null; + public static void Formulas(this NHibernate.Mapping.ByCode.IManyToOneMapper mapper, params string[] formulas) => throw null; + public static void Formulas(this NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper, params string[] formulas) => throw null; + public static void Formulas(this NHibernate.Mapping.ByCode.IMapKeyMapper mapper, params string[] formulas) => throw null; + public static void Formulas(this NHibernate.Mapping.ByCode.IPropertyMapper mapper, params string[] formulas) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.ComponentAttributesMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ComponentAttributesMapperExtensions + public static partial class ComponentAttributesMapperExtensions { - public static void LazyGroup(this NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper, string name) => throw null; public static void LazyGroup(this NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper, string name) => throw null; + public static void LazyGroup(this NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper, string name) => throw null; + } + namespace Conformist + { + public class ClassMapping : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ClassCustomizer where T : class + { + public ClassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; + } + public class ComponentMapping : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ComponentCustomizer + { + public ComponentMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; + } + public class JoinedSubclassMapping : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.JoinedSubclassCustomizer where T : class + { + public JoinedSubclassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; + } + public class SubclassMapping : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.SubclassCustomizer where T : class + { + public SubclassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; + } + public class UnionSubclassMapping : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.UnionSubclassCustomizer where T : class + { + public UnionSubclassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; + } } - - // Generated from `NHibernate.Mapping.ByCode.ConventionModelMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ConventionModelMapper : NHibernate.Mapping.ByCode.ModelMapper { protected virtual void AppendDefaultEvents() => throw null; @@ -23823,8 +19301,6 @@ namespace NHibernate protected NHibernate.Mapping.ByCode.SimpleModelInspector SimpleModelInspector { get => throw null; } public void SplitsFor(System.Func, System.Collections.Generic.IEnumerable> getPropertiesSplitsId) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.CounterGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CounterGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } @@ -23833,28 +19309,28 @@ namespace NHibernate public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.EnhancedSequenceGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EnhancedSequenceGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } public EnhancedSequenceGeneratorDef() => throw null; + public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.EnhancedTableGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EnhancedTableGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } public EnhancedTableGeneratorDef() => throw null; + public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.ExplicitlyDeclaredModel` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public static partial class EntitySqlsWithCheckMapperExtensions + { + public static void SqlDelete(this NHibernate.Mapping.ByCode.IEntitySqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public static void SqlInsert(this NHibernate.Mapping.ByCode.IEntitySqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public static void SqlUpdate(this NHibernate.Mapping.ByCode.IEntitySqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + } public class ExplicitlyDeclaredModel : NHibernate.Mapping.ByCode.AbstractExplicitlyDeclaredModel, NHibernate.Mapping.ByCode.IModelInspector { public ExplicitlyDeclaredModel() => throw null; @@ -23887,8 +19363,6 @@ namespace NHibernate public virtual bool IsTablePerConcreteClass(System.Type type) => throw null; public virtual bool IsVersion(System.Reflection.MemberInfo member) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.FakeModelExplicitDeclarationsHolder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FakeModelExplicitDeclarationsHolder : NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder { public void AddAsAny(System.Reflection.MemberInfo member) => throw null; @@ -23922,9 +19396,9 @@ namespace NHibernate public System.Collections.Generic.IEnumerable Bags { get => throw null; } public System.Collections.Generic.IEnumerable Components { get => throw null; } public System.Collections.Generic.IEnumerable ComposedIds { get => throw null; } + public FakeModelExplicitDeclarationsHolder() => throw null; public System.Collections.Generic.IEnumerable Dictionaries { get => throw null; } public System.Collections.Generic.IEnumerable DynamicComponents { get => throw null; } - public FakeModelExplicitDeclarationsHolder() => throw null; public System.Type GetDynamicComponentTemplate(System.Reflection.MemberInfo member) => throw null; public string GetSplitGroupFor(System.Reflection.MemberInfo member) => throw null; public System.Collections.Generic.IEnumerable GetSplitGroupsFor(System.Type type) => throw null; @@ -23949,155 +19423,125 @@ namespace NHibernate public System.Collections.Generic.IEnumerable TablePerConcreteClassEntities { get => throw null; } public System.Collections.Generic.IEnumerable VersionProperties { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.FetchKind` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class FetchKind { protected FetchKind() => throw null; public static NHibernate.Mapping.ByCode.FetchKind Join; public static NHibernate.Mapping.ByCode.FetchKind Select; } - - // Generated from `NHibernate.Mapping.ByCode.ForClass<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ForClass { public static System.Reflection.FieldInfo Field(string fieldName) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.ForeignGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ForeignGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } public ForeignGeneratorDef(System.Reflection.MemberInfo foreignProperty) => throw null; + public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.Generators` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class Generators { - public static NHibernate.Mapping.ByCode.IGeneratorDef Assigned { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef Counter { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef EnhancedSequence { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef EnhancedTable { get => throw null; set => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef Assigned { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef Counter { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef EnhancedSequence { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef EnhancedTable { get => throw null; } public static NHibernate.Mapping.ByCode.IGeneratorDef Foreign(System.Linq.Expressions.Expression> property) => throw null; public static NHibernate.Mapping.ByCode.IGeneratorDef Foreign(System.Reflection.MemberInfo property) => throw null; - public static NHibernate.Mapping.ByCode.IGeneratorDef Guid { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef GuidComb { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef HighLow { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef Identity { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef Increment { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef Native { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef NativeGuid { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef Select { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef Sequence { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef SequenceHiLo { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef SequenceIdentity { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef Table { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef TriggerIdentity { get => throw null; set => throw null; } - public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDHex(string format, string separator) => throw null; - public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDHex(string format) => throw null; + public static NHibernate.Mapping.ByCode.IGeneratorDef Guid { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef GuidComb { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef HighLow { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef Identity { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef Increment { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef Native { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef NativeGuid { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef Select { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef Sequence { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef SequenceHiLo { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef SequenceIdentity { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef Table { get => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef TriggerIdentity { get => throw null; } public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDHex() => throw null; - public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDString { get => throw null; set => throw null; } + public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDHex(string format) => throw null; + public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDHex(string format, string separator) => throw null; + public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDString { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.GuidCombGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GuidCombGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } public GuidCombGeneratorDef() => throw null; + public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.GuidGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GuidGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } public GuidGeneratorDef() => throw null; + public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.HighLowGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class HighLowGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } public HighLowGeneratorDef() => throw null; + public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.IAccessorPropertyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IAccessorPropertyMapper { - void Access(System.Type accessorType); void Access(NHibernate.Mapping.ByCode.Accessor accessor); + void Access(System.Type accessorType); } - - // Generated from `NHibernate.Mapping.ByCode.IAnyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IAnyMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper { void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle); void Columns(System.Action idColumnMapping, System.Action classColumnMapping); + void IdType(NHibernate.Type.IType idType); void IdType(); void IdType(System.Type idType); - void IdType(NHibernate.Type.IType idType); void Index(string indexName); void Insert(bool consideredInInsertQuery); void Lazy(bool isLazy); + void MetaType(NHibernate.Type.IType metaType); void MetaType(); void MetaType(System.Type metaType); - void MetaType(NHibernate.Type.IType metaType); void MetaValue(object value, System.Type entityType); void Update(bool consideredInUpdateQuery); } - - // Generated from `NHibernate.Mapping.ByCode.IBagPropertiesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IBagPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IBagPropertiesMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IBagPropertiesMapper<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IBagPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IBagPropertiesMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBasePlainPropertyContainerMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { void Any(System.Reflection.MemberInfo property, System.Type idTypeOfMetaType, System.Action mapping); - void Component(System.Reflection.MemberInfo property, System.Action mapping); void Component(System.Reflection.MemberInfo property, System.Action mapping); + void Component(System.Reflection.MemberInfo property, System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IBasePlainPropertyContainerMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { - void Any(string notVisiblePropertyOrFieldName, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class; void Any(System.Linq.Expressions.Expression> property, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class; - void Component(string notVisiblePropertyOrFieldName, TComponent dynamicComponentTemplate, System.Action> mapping); - void Component(string notVisiblePropertyOrFieldName, System.Action> mapping); - void Component(string notVisiblePropertyOrFieldName); + void Any(string notVisiblePropertyOrFieldName, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class; void Component(System.Linq.Expressions.Expression> property, System.Action> mapping); void Component(System.Linq.Expressions.Expression> property); void Component(System.Linq.Expressions.Expression> property, TComponent dynamicComponentTemplate, System.Action> mapping); + void Component(string notVisiblePropertyOrFieldName, System.Action> mapping); + void Component(string notVisiblePropertyOrFieldName); + void Component(string notVisiblePropertyOrFieldName, TComponent dynamicComponentTemplate, System.Action> mapping); } - - // Generated from `NHibernate.Mapping.ByCode.ICacheMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICacheMapper { void Include(NHibernate.Mapping.ByCode.CacheInclude cacheInclude); void Region(string regionName); void Usage(NHibernate.Mapping.ByCode.CacheUsage cacheUsage); } - - // Generated from `NHibernate.Mapping.ByCode.IClassAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IClassAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper + public interface IClassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper { void Abstract(bool isAbstract); void Cache(System.Action cacheMapping); @@ -24108,8 +19552,8 @@ namespace NHibernate void Discriminator(System.Action discriminatorMapping); void DiscriminatorValue(object value); void Filter(string filterName, System.Action filterMapping); - void Id(System.Reflection.MemberInfo idProperty, System.Action idMapper); void Id(System.Action idMapper); + void Id(System.Reflection.MemberInfo idProperty, System.Action idMapper); void Mutable(bool isMutable); void NaturalId(System.Action naturalIdMapping); void OptimisticLock(NHibernate.Mapping.ByCode.OptimisticLockMode mode); @@ -24120,23 +19564,21 @@ namespace NHibernate void Version(System.Reflection.MemberInfo versionProperty, System.Action versionMapping); void Where(string whereClause); } - - // Generated from `NHibernate.Mapping.ByCode.IClassAttributesMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IClassAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper where TEntity : class + public interface IClassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper where TEntity : class { void Abstract(bool isAbstract); void Cache(System.Action cacheMapping); void Catalog(string catalogName); - void ComponentAsId(string notVisiblePropertyOrFieldName, System.Action> idMapper); - void ComponentAsId(string notVisiblePropertyOrFieldName); - void ComponentAsId(System.Linq.Expressions.Expression> idProperty, System.Action> idMapper); void ComponentAsId(System.Linq.Expressions.Expression> idProperty); + void ComponentAsId(System.Linq.Expressions.Expression> idProperty, System.Action> idMapper); + void ComponentAsId(string notVisiblePropertyOrFieldName); + void ComponentAsId(string notVisiblePropertyOrFieldName, System.Action> idMapper); void ComposedId(System.Action> idPropertiesMapping); void Discriminator(System.Action discriminatorMapping); void DiscriminatorValue(object value); void Filter(string filterName, System.Action filterMapping); - void Id(System.Linq.Expressions.Expression> idProperty, System.Action idMapper); void Id(System.Linq.Expressions.Expression> idProperty); + void Id(System.Linq.Expressions.Expression> idProperty, System.Action idMapper); void Id(string notVisiblePropertyOrFieldName, System.Action idMapper); void Mutable(bool isMutable); void NaturalId(System.Action> naturalIdPropertiesMapping, System.Action naturalIdMapping); @@ -24150,20 +19592,14 @@ namespace NHibernate void Version(string notVisiblePropertyOrFieldName, System.Action versionMapping); void Where(string whereClause); } - - // Generated from `NHibernate.Mapping.ByCode.IClassMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IClassMapper : NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IClassAttributesMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper + public interface IClassMapper : NHibernate.Mapping.ByCode.IClassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { void Join(string splitGroupId, System.Action splitMapping); } - - // Generated from `NHibernate.Mapping.ByCode.IClassMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IClassMapper : NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IClassAttributesMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class + public interface IClassMapper : NHibernate.Mapping.ByCode.IClassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper where TEntity : class { void Join(string splitGroupId, System.Action> splitMapping); } - - // Generated from `NHibernate.Mapping.ByCode.ICollectionElementRelation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionElementRelation { void Component(System.Action mapping); @@ -24172,32 +19608,26 @@ namespace NHibernate void ManyToMany(System.Action mapping); void OneToMany(System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.ICollectionElementRelation<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionElementRelation { void Component(System.Action> mapping); - void Element(System.Action mapping); void Element(); - void ManyToAny(System.Action mapping); + void Element(System.Action mapping); void ManyToAny(System.Type idTypeOfMetaType, System.Action mapping); - void ManyToMany(System.Action mapping); + void ManyToAny(System.Action mapping); void ManyToMany(); - void OneToMany(System.Action mapping); + void ManyToMany(System.Action mapping); void OneToMany(); + void OneToMany(System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.ICollectionIdMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionIdMapper { void Column(string name); - void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action generatorMapping); void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator); + void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action generatorMapping); void Length(int length); void Type(NHibernate.Type.IIdentifierType persistentType); } - - // Generated from `NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionPropertiesContainerMapper { void Bag(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping); @@ -24206,36 +19636,32 @@ namespace NHibernate void Map(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action keyMapping, System.Action mapping); void Set(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionPropertiesContainerMapper { - void Bag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping); - void Bag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping); void Bag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping); void Bag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping); - void IdBag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping); - void IdBag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping); + void Bag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping); + void Bag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping); void IdBag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping); void IdBag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping); - void List(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping); - void List(string notVisiblePropertyOrFieldName, System.Action> collectionMapping); + void IdBag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping); + void IdBag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping); void List(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping); void List(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping); - void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping); - void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping); - void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping); + void List(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping); + void List(string notVisiblePropertyOrFieldName, System.Action> collectionMapping); void Map(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping); void Map(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping); void Map(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping); - void Set(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping); - void Set(string notVisiblePropertyOrFieldName, System.Action> collectionMapping); + void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping); + void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping); + void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping); void Set(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping); void Set(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping); + void Set(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping); + void Set(string notVisiblePropertyOrFieldName, System.Action> collectionMapping); } - - // Generated from `NHibernate.Mapping.ByCode.ICollectionPropertiesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICollectionPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface ICollectionPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { void BatchSize(int value); void Cache(System.Action cacheMapping); @@ -24247,20 +19673,18 @@ namespace NHibernate void Key(System.Action keyMapping); void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy); void Mutable(bool value); - void OrderBy(string sqlOrderByClause); void OrderBy(System.Reflection.MemberInfo property); + void OrderBy(string sqlOrderByClause); void Persister(System.Type persister); void Schema(string schemaName); - void Sort(); void Sort(); + void Sort(); void Table(string tableName); void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType; void Type(System.Type collectionType); void Where(string sqlWhereClause); } - - // Generated from `NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICollectionPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface ICollectionPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { void BatchSize(int value); void Cache(System.Action cacheMapping); @@ -24276,15 +19700,13 @@ namespace NHibernate void OrderBy(string sqlOrderByClause); void Persister() where TPersister : NHibernate.Persister.Collection.ICollectionPersister; void Schema(string schemaName); - void Sort(); void Sort(); + void Sort(); void Table(string tableName); void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType; void Type(System.Type collectionType); void Where(string sqlWhereClause); } - - // Generated from `NHibernate.Mapping.ByCode.ICollectionSqlsMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionSqlsMapper { void Loader(string namedQueryReference); @@ -24294,8 +19716,13 @@ namespace NHibernate void SqlUpdate(string sql); void Subselect(string sql); } - - // Generated from `NHibernate.Mapping.ByCode.IColumnMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public interface ICollectionSqlsWithCheckMapper + { + void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck); + void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck); + void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck); + void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck); + } public interface IColumnMapper { void Check(string checkConstraint); @@ -24304,145 +19731,113 @@ namespace NHibernate void Length(int length); void Name(string name); void NotNullable(bool notnull); - void Precision(System.Int16 precision); - void Scale(System.Int16 scale); + void Precision(short precision); + void Scale(short scale); void SqlType(string sqltype); void Unique(bool unique); void UniqueKey(string uniquekeyName); } - - // Generated from `NHibernate.Mapping.ByCode.IColumnOrFormulaMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IColumnOrFormulaMapper : NHibernate.Mapping.ByCode.IColumnMapper { void Formula(string formula); } - - // Generated from `NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IColumnsAndFormulasMapper : NHibernate.Mapping.ByCode.IColumnsMapper { void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper); void Formula(string formula); void Formulas(params string[] formulas); } - - // Generated from `NHibernate.Mapping.ByCode.IColumnsMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IColumnsMapper { - void Column(string name); void Column(System.Action columnMapper); + void Column(string name); void Columns(params System.Action[] columnMapper); } - - // Generated from `NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComponentAsIdAttributesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper { void Class(System.Type componentType); void UnsavedValue(NHibernate.Mapping.ByCode.UnsavedValueType unsavedValueType); } - - // Generated from `NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComponentAsIdAttributesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper { void Class() where TConcrete : TComponent; void UnsavedValue(NHibernate.Mapping.ByCode.UnsavedValueType unsavedValueType); } - - // Generated from `NHibernate.Mapping.ByCode.IComponentAsIdMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IComponentAsIdMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IComponentAsIdMapper : NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IComponentAsIdMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IComponentAsIdMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IComponentAsIdMapper : NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IComponentAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComponentAttributesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper { void Class(System.Type componentType); void Insert(bool consideredInInsertQuery); void Lazy(bool isLazy); - void Parent(System.Reflection.MemberInfo parent, System.Action parentMapping); void Parent(System.Reflection.MemberInfo parent); + void Parent(System.Reflection.MemberInfo parent, System.Action parentMapping); void Unique(bool unique); void Update(bool consideredInUpdateQuery); } - - // Generated from `NHibernate.Mapping.ByCode.IComponentAttributesMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComponentAttributesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper { void Class() where TConcrete : TComponent; void Insert(bool consideredInInsertQuery); void Lazy(bool isLazy); - void Parent(System.Linq.Expressions.Expression> parent, System.Action parentMapping) where TProperty : class; void Parent(System.Linq.Expressions.Expression> parent) where TProperty : class; + void Parent(System.Linq.Expressions.Expression> parent, System.Action parentMapping) where TProperty : class; void Parent(string notVisiblePropertyOrFieldName, System.Action mapping); void Unique(bool unique); void Update(bool consideredInUpdateQuery); } - - // Generated from `NHibernate.Mapping.ByCode.IComponentElementMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IComponentElementMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IComponentElementMapper : NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { void Component(System.Reflection.MemberInfo property, System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.IComponentElementMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IComponentElementMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IComponentElementMapper : NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { - void Component(string notVisiblePropertyOrFieldName, System.Action> mapping) where TNestedComponent : class; void Component(System.Linq.Expressions.Expression> property, System.Action> mapping) where TNestedComponent : class; + void Component(string notVisiblePropertyOrFieldName, System.Action> mapping) where TNestedComponent : class; } - - // Generated from `NHibernate.Mapping.ByCode.IComponentMapKeyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComponentMapKeyMapper { void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping); void Property(System.Reflection.MemberInfo property, System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.IComponentMapKeyMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComponentMapKeyMapper { void ManyToOne(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class; void Property(System.Linq.Expressions.Expression> property, System.Action mapping); void Property(System.Linq.Expressions.Expression> property); } - - // Generated from `NHibernate.Mapping.ByCode.IComponentMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IComponentMapper : NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IComponentMapper : NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IComponentMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IComponentMapper : NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IComponentMapper : NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IComponentParentMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComponentParentMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IComposedIdMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComposedIdMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IComposedIdMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComposedIdMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper where TEntity : class { } - - // Generated from `NHibernate.Mapping.ByCode.IConformistHoldersProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IConformistHoldersProvider { NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get; } NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder ExplicitDeclarationsHolder { get; } } - - // Generated from `NHibernate.Mapping.ByCode.IDiscriminatorMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class IdentityGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef + { + public string Class { get => throw null; } + public IdentityGeneratorDef() => throw null; + public System.Type DefaultReturnType { get => throw null; } + public object Params { get => throw null; } + public bool SupportedAsCollectionElementId { get => throw null; } + } public interface IDiscriminatorMapper { void Column(string column); @@ -24452,54 +19847,48 @@ namespace NHibernate void Insert(bool applyOnApplyOnInsert); void Length(int length); void NotNullable(bool isNotNullable); - void Type() where TPersistentType : NHibernate.Type.IDiscriminatorType; - void Type(System.Type persistentType); void Type(NHibernate.Type.IType persistentType); void Type(NHibernate.Type.IDiscriminatorType persistentType); + void Type() where TPersistentType : NHibernate.Type.IDiscriminatorType; + void Type(System.Type persistentType); + } + public static partial class IdMapperExtensions + { + public static void Type(this NHibernate.Mapping.ByCode.IIdMapper idMapper) => throw null; + public static void Type(this NHibernate.Mapping.ByCode.IIdMapper idMapper, object parameters) => throw null; + public static void Type(this NHibernate.Mapping.ByCode.IIdMapper idMapper, System.Type persistentType, object parameters) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDynamicComponentAttributesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper { void Insert(bool consideredInInsertQuery); void Unique(bool unique); void Update(bool consideredInUpdateQuery); } - - // Generated from `NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDynamicComponentAttributesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper { void Insert(bool consideredInInsertQuery); void Unique(bool unique); void Update(bool consideredInUpdateQuery); } - - // Generated from `NHibernate.Mapping.ByCode.IDynamicComponentMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDynamicComponentMapper : NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IDynamicComponentMapper : NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IDynamicComponentMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDynamicComponentMapper : NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IDynamicComponentMapper : NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IElementMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IElementMapper : NHibernate.Mapping.ByCode.IColumnsMapper { void Formula(string formula); void Length(int length); void NotNullable(bool notnull); - void Precision(System.Int16 precision); - void Scale(System.Int16 scale); - void Type(object parameters); - void Type(); - void Type(System.Type persistentType, object parameters); + void Precision(short precision); + void Scale(short scale); void Type(NHibernate.Type.IType persistentType); + void Type(); + void Type(object parameters); + void Type(System.Type persistentType, object parameters); void Unique(bool unique); } - - // Generated from `NHibernate.Mapping.ByCode.IEntityAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntityAttributesMapper { void BatchSize(int value); @@ -24512,14 +19901,10 @@ namespace NHibernate void SelectBeforeUpdate(bool value); void Synchronize(params string[] table); } - - // Generated from `NHibernate.Mapping.ByCode.IEntityPropertyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntityPropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper { void OptimisticLock(bool takeInConsiderationForOptimisticLock); } - - // Generated from `NHibernate.Mapping.ByCode.IEntitySqlsMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntitySqlsMapper { void Loader(string namedQueryReference); @@ -24528,19 +19913,19 @@ namespace NHibernate void SqlUpdate(string sql); void Subselect(string sql); } - - // Generated from `NHibernate.Mapping.ByCode.IFilterMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public interface IEntitySqlsWithCheckMapper + { + void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck); + void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck); + void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck); + } public interface IFilterMapper { void Condition(string sqlCondition); } - - // Generated from `NHibernate.Mapping.ByCode.IGenerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IGenerator { } - - // Generated from `NHibernate.Mapping.ByCode.IGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IGeneratorDef { string Class { get; } @@ -24548,37 +19933,27 @@ namespace NHibernate object Params { get; } bool SupportedAsCollectionElementId { get; } } - - // Generated from `NHibernate.Mapping.ByCode.IGeneratorMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IGeneratorMapper { void Params(object generatorParameters); void Params(System.Collections.Generic.IDictionary generatorParameters); } - - // Generated from `NHibernate.Mapping.ByCode.IIdBagPropertiesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IIdBagPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IIdBagPropertiesMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { void Id(System.Action idMapping); } - - // Generated from `NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IIdBagPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IIdBagPropertiesMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { void Id(System.Action idMapping); } - - // Generated from `NHibernate.Mapping.ByCode.IIdMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IIdMapper : NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IIdMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper { - void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action generatorMapping); void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator); + void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action generatorMapping); void Length(int length); void Type(NHibernate.Type.IIdentifierType persistentType); void UnsavedValue(object value); } - - // Generated from `NHibernate.Mapping.ByCode.IJoinAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IJoinAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper { void Catalog(string catalogName); @@ -24589,8 +19964,6 @@ namespace NHibernate void Schema(string schemaName); void Table(string tableName); } - - // Generated from `NHibernate.Mapping.ByCode.IJoinAttributesMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IJoinAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper where TEntity : class { void Catalog(string catalogName); @@ -24601,19 +19974,7 @@ namespace NHibernate void Schema(string schemaName); void Table(string tableName); } - - // Generated from `NHibernate.Mapping.ByCode.IJoinMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IJoinMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IJoinAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper - { - } - - // Generated from `NHibernate.Mapping.ByCode.IJoinMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IJoinMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IJoinAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class - { - } - - // Generated from `NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IJoinedSubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper + public interface IJoinedSubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper { void Abstract(bool isAbstract); void Catalog(string catalogName); @@ -24624,9 +19985,7 @@ namespace NHibernate void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action); void Table(string tableName); } - - // Generated from `NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IJoinedSubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper where TEntity : class + public interface IJoinedSubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper where TEntity : class { void Abstract(bool isAbstract); void Catalog(string catalogName); @@ -24637,18 +19996,18 @@ namespace NHibernate void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action); void Table(string tableName); } - - // Generated from `NHibernate.Mapping.ByCode.IJoinedSubclassMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IJoinedSubclassMapper : NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper + public interface IJoinedSubclassMapper : NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IJoinedSubclassMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IJoinedSubclassMapper : NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class + public interface IJoinedSubclassMapper : NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper where TEntity : class + { + } + public interface IJoinMapper : NHibernate.Mapping.ByCode.IJoinAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + } + public interface IJoinMapper : NHibernate.Mapping.ByCode.IJoinAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper where TEntity : class { } - - // Generated from `NHibernate.Mapping.ByCode.IKeyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IKeyMapper : NHibernate.Mapping.ByCode.IColumnsMapper { void ForeignKey(string foreignKeyName); @@ -24658,8 +20017,6 @@ namespace NHibernate void Unique(bool unique); void Update(bool consideredInUpdateQuery); } - - // Generated from `NHibernate.Mapping.ByCode.IKeyMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IKeyMapper : NHibernate.Mapping.ByCode.IColumnsMapper { void ForeignKey(string foreignKeyName); @@ -24669,41 +20026,31 @@ namespace NHibernate void Unique(bool unique); void Update(bool consideredInUpdateQuery); } - - // Generated from `NHibernate.Mapping.ByCode.IListIndexMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IListIndexMapper { void Base(int baseIndex); void Column(string columnName); void Column(System.Action columnMapper); } - - // Generated from `NHibernate.Mapping.ByCode.IListPropertiesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IListPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IListPropertiesMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { void Index(System.Action listIndexMapping); } - - // Generated from `NHibernate.Mapping.ByCode.IListPropertiesMapper<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IListPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IListPropertiesMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { void Index(System.Action listIndexMapping); } - - // Generated from `NHibernate.Mapping.ByCode.IManyToAnyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IManyToAnyMapper { void Columns(System.Action idColumnMapping, System.Action classColumnMapping); + void IdType(NHibernate.Type.IType idType); void IdType(); void IdType(System.Type idType); - void IdType(NHibernate.Type.IType idType); + void MetaType(NHibernate.Type.IType metaType); void MetaType(); void MetaType(System.Type metaType); - void MetaType(NHibernate.Type.IType metaType); void MetaValue(object value, System.Type entityType); } - - // Generated from `NHibernate.Mapping.ByCode.IManyToManyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IManyToManyMapper : NHibernate.Mapping.ByCode.IColumnsMapper { void Class(System.Type entityType); @@ -24714,9 +20061,7 @@ namespace NHibernate void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode); void Where(string sqlWhereClause); } - - // Generated from `NHibernate.Mapping.ByCode.IManyToOneMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IManyToOneMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IManyToOneMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper { void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle); void Class(System.Type entityType); @@ -24733,71 +20078,53 @@ namespace NHibernate void UniqueKey(string uniquekeyName); void Update(bool consideredInUpdateQuery); } - - // Generated from `NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMapKeyManyToManyMapper : NHibernate.Mapping.ByCode.IColumnsMapper { void ForeignKey(string foreignKeyName); void Formula(string formula); } - - // Generated from `NHibernate.Mapping.ByCode.IMapKeyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMapKeyMapper : NHibernate.Mapping.ByCode.IColumnsMapper { void Formula(string formula); void Length(int length); + void Type(NHibernate.Type.IType persistentType); void Type(); void Type(System.Type persistentType); - void Type(NHibernate.Type.IType persistentType); } - - // Generated from `NHibernate.Mapping.ByCode.IMapKeyRelation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMapKeyRelation { void Component(System.Action mapping); void Element(System.Action mapping); void ManyToMany(System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.IMapKeyRelation<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMapKeyRelation { void Component(System.Action> mapping); - void Element(System.Action mapping); void Element(); - void ManyToMany(System.Action mapping); + void Element(System.Action mapping); void ManyToMany(); + void ManyToMany(System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.IMapPropertiesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IMapPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IMapPropertiesMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IMapPropertiesMapper<,,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IMapPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IMapPropertiesMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMinimalPlainPropertyContainerMapper { void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping); void Property(System.Reflection.MemberInfo property, System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMinimalPlainPropertyContainerMapper { - void ManyToOne(string notVisiblePropertyOrFieldName, System.Action mapping) where TProperty : class; void ManyToOne(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class; void ManyToOne(System.Linq.Expressions.Expression> property) where TProperty : class; - void Property(System.Linq.Expressions.Expression> property, System.Action mapping); + void ManyToOne(string notVisiblePropertyOrFieldName, System.Action mapping) where TProperty : class; void Property(System.Linq.Expressions.Expression> property); + void Property(System.Linq.Expressions.Expression> property, System.Action mapping); void Property(string notVisiblePropertyOrFieldName, System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IModelExplicitDeclarationsHolder { void AddAsAny(System.Reflection.MemberInfo member); @@ -24856,8 +20183,6 @@ namespace NHibernate System.Collections.Generic.IEnumerable TablePerConcreteClassEntities { get; } System.Collections.Generic.IEnumerable VersionProperties { get; } } - - // Generated from `NHibernate.Mapping.ByCode.IModelInspector` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IModelInspector { System.Type GetDynamicComponentTemplate(System.Reflection.MemberInfo member); @@ -24890,27 +20215,1677 @@ namespace NHibernate bool IsTablePerConcreteClass(System.Type type); bool IsVersion(System.Reflection.MemberInfo member); } - - // Generated from `NHibernate.Mapping.ByCode.INaturalIdAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace Impl + { + public abstract class AbstractBasePropertyContainerMapper + { + protected abstract void AddProperty(object property); + public virtual void Any(System.Reflection.MemberInfo property, System.Type idTypeOfMetaType, System.Action mapping) => throw null; + public virtual void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public virtual void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + protected System.Type container; + protected System.Type Container { get => throw null; } + protected AbstractBasePropertyContainerMapper(System.Type container, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + protected virtual bool IsMemberSupportedByMappedContainer(System.Reflection.MemberInfo property) => throw null; + public virtual void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + protected NHibernate.Cfg.MappingSchema.HbmMapping mapDoc; + protected NHibernate.Cfg.MappingSchema.HbmMapping MapDoc { get => throw null; } + public virtual void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + } + public abstract class AbstractPropertyContainerMapper : NHibernate.Mapping.ByCode.Impl.AbstractBasePropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + public virtual void Bag(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; + protected AbstractPropertyContainerMapper(System.Type container, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; + public virtual void IdBag(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; + public virtual void List(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; + public virtual void Map(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action keyMapping, System.Action mapping) => throw null; + public virtual void OneToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public virtual void Set(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; + } + public class AccessorPropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public AccessorPropertyMapper(System.Type declaringType, string propertyName, System.Action accesorValueSetter) => throw null; + public string PropertyName { get => throw null; set { } } + } + public class AnyMapper : NHibernate.Mapping.ByCode.IAnyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; + public void Columns(System.Action idColumnMapping, System.Action classColumnMapping) => throw null; + public AnyMapper(System.Reflection.MemberInfo member, System.Type foreignIdType, NHibernate.Cfg.MappingSchema.HbmAny any, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public AnyMapper(System.Reflection.MemberInfo member, System.Type foreignIdType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmAny any, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void IdType(NHibernate.Type.IType idType) => throw null; + public void IdType() => throw null; + public void IdType(System.Type idType) => throw null; + public void Index(string indexName) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(bool isLazy) => throw null; + public void MetaType(NHibernate.Type.IType metaType) => throw null; + public void MetaType() => throw null; + public void MetaType(System.Type metaType) => throw null; + public void MetaValue(object value, System.Type entityType) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public delegate void AnyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAnyMapper propertyCustomizer); + public class BagMapper : NHibernate.Mapping.ByCode.IBagPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void BatchSize(int value) => throw null; + public void Cache(System.Action cacheMapping) => throw null; + public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; + public void Catalog(string catalogName) => throw null; + public BagMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmBag mapping) => throw null; + public BagMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmBag mapping) => throw null; + public System.Type ElementType { get => throw null; } + public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Inverse(bool value) => throw null; + public void Key(System.Action keyMapping) => throw null; + public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Mutable(bool value) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void OrderBy(System.Reflection.MemberInfo property) => throw null; + public void OrderBy(string sqlOrderByClause) => throw null; + public System.Type OwnerType { get => throw null; } + public void Persister(System.Type persister) => throw null; + public void Schema(string schemaName) => throw null; + public void Sort() => throw null; + public void Sort() => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlDeleteAll(string sql) => throw null; + public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Table(string tableName) => throw null; + public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; + public void Type(System.Type collectionType) => throw null; + public void Type(string collectionType) => throw null; + public void Where(string sqlWhereClause) => throw null; + } + public delegate void BagMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IBagPropertiesMapper propertyCustomizer); + public class CacheMapper : NHibernate.Mapping.ByCode.ICacheMapper + { + public CacheMapper(NHibernate.Cfg.MappingSchema.HbmCache cacheMapping) => throw null; + public void Include(NHibernate.Mapping.ByCode.CacheInclude cacheInclude) => throw null; + public void Region(string regionName) => throw null; + public void Usage(NHibernate.Mapping.ByCode.CacheUsage cacheUsage) => throw null; + } + public static class CascadeConverter + { + public static string ToCascadeString(this NHibernate.Mapping.ByCode.Cascade source) => throw null; + } + public class ClassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IClassMapper, NHibernate.Mapping.ByCode.IClassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper + { + public void Abstract(bool isAbstract) => throw null; + protected override void AddProperty(object property) => throw null; + public void BatchSize(int value) => throw null; + public void Cache(System.Action cacheMapping) => throw null; + public void Catalog(string catalogName) => throw null; + public void Check(string check) => throw null; + public void ComponentAsId(System.Reflection.MemberInfo idProperty, System.Action mapper) => throw null; + public void ComposedId(System.Action idPropertiesMapping) => throw null; + public ClassMapper(System.Type rootClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, System.Reflection.MemberInfo idProperty) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; + public void Discriminator(System.Action discriminatorMapping) => throw null; + public void DiscriminatorValue(object value) => throw null; + public void DynamicInsert(bool value) => throw null; + public void DynamicUpdate(bool value) => throw null; + public void EntityName(string value) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Id(System.Action mapper) => throw null; + public void Id(System.Reflection.MemberInfo idProperty, System.Action mapper) => throw null; + public void Join(string splitGroupId, System.Action splitMapping) => throw null; + public System.Collections.Generic.Dictionary JoinMappers { get => throw null; } + public void Lazy(bool value) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Mutable(bool isMutable) => throw null; + public void NaturalId(System.Action naturalIdMapping) => throw null; + public void OptimisticLock(NHibernate.Mapping.ByCode.OptimisticLockMode mode) => throw null; + public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; + public void Polymorphism(NHibernate.Mapping.ByCode.PolymorphismType type) => throw null; + public void Proxy(System.Type proxy) => throw null; + public void Schema(string schemaName) => throw null; + public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null; + public void SelectBeforeUpdate(bool value) => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Synchronize(params string[] table) => throw null; + public void Table(string tableName) => throw null; + public void Version(System.Reflection.MemberInfo versionProperty, System.Action versionMapping) => throw null; + public void Where(string whereClause) => throw null; + } + public class CollectionElementRelation : NHibernate.Mapping.ByCode.ICollectionElementRelation + { + public void Component(System.Action mapping) => throw null; + public CollectionElementRelation(System.Type collectionElementType, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, System.Action elementRelationshipAssing) => throw null; + public void Element(System.Action mapping) => throw null; + public void ManyToAny(System.Type idTypeOfMetaType, System.Action mapping) => throw null; + public void ManyToMany(System.Action mapping) => throw null; + public void OneToMany(System.Action mapping) => throw null; + } + public class CollectionIdMapper : NHibernate.Mapping.ByCode.ICollectionIdMapper + { + public void Column(string name) => throw null; + public CollectionIdMapper(NHibernate.Cfg.MappingSchema.HbmCollectionId hbmId) => throw null; + public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator) => throw null; + public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action generatorMapping) => throw null; + public void Length(int length) => throw null; + public void Type(NHibernate.Type.IIdentifierType persistentType) => throw null; + } + public class ColumnMapper : NHibernate.Mapping.ByCode.IColumnMapper + { + public void Check(string checkConstraint) => throw null; + public ColumnMapper(NHibernate.Cfg.MappingSchema.HbmColumn mapping, string memberName) => throw null; + public void Default(object defaultValue) => throw null; + public void Index(string indexName) => throw null; + public void Length(int length) => throw null; + public void Name(string name) => throw null; + public void NotNullable(bool notnull) => throw null; + public void Precision(short precision) => throw null; + public void Scale(short scale) => throw null; + public void SqlType(string sqltype) => throw null; + public void Unique(bool unique) => throw null; + public void UniqueKey(string uniquekeyName) => throw null; + } + public class ColumnOrFormulaMapper : NHibernate.Mapping.ByCode.Impl.ColumnMapper, NHibernate.Mapping.ByCode.IColumnOrFormulaMapper, NHibernate.Mapping.ByCode.IColumnMapper + { + public ColumnOrFormulaMapper(NHibernate.Cfg.MappingSchema.HbmColumn columnMapping, string memberName, NHibernate.Cfg.MappingSchema.HbmFormula formulaMapping) : base(default(NHibernate.Cfg.MappingSchema.HbmColumn), default(string)) => throw null; + public void Formula(string formula) => throw null; + public static object[] GetItemsFor(System.Action[] columnOrFormulaMapper, string baseDefaultColumnName) => throw null; + } + public class ComponentAsIdLikeComponentAttributesMapper : NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Class(System.Type componentType) => throw null; + public ComponentAsIdLikeComponentAttributesMapper(NHibernate.Mapping.ByCode.IComponentAsIdMapper realMapper) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(bool isLazy) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Parent(System.Reflection.MemberInfo parent) => throw null; + public void Parent(System.Reflection.MemberInfo parent, System.Action parentMapping) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class ComponentAsIdMapper : NHibernate.Mapping.ByCode.IComponentAsIdMapper, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + protected void AddProperty(object property) => throw null; + public void Class(System.Type componentType) => throw null; + public NHibernate.Cfg.MappingSchema.HbmCompositeId CompositeId { get => throw null; } + public ComponentAsIdMapper(System.Type componentType, System.Reflection.MemberInfo declaringTypeMember, NHibernate.Cfg.MappingSchema.HbmCompositeId id, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void UnsavedValue(NHibernate.Mapping.ByCode.UnsavedValueType unsavedValueType) => throw null; + } + public class ComponentElementMapper : NHibernate.Mapping.ByCode.IComponentElementMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + protected void AddProperty(object property) => throw null; + public void Class(System.Type componentConcreteType) => throw null; + public void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public ComponentElementMapper(System.Type componentType, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, NHibernate.Cfg.MappingSchema.HbmCompositeElement component) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(bool isLazy) => throw null; + public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Parent(System.Reflection.MemberInfo parent) => throw null; + public void Parent(System.Reflection.MemberInfo parent, System.Action parentMapping) => throw null; + public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class ComponentMapKeyMapper : NHibernate.Mapping.ByCode.IComponentMapKeyMapper + { + protected void AddProperty(object property) => throw null; + public NHibernate.Cfg.MappingSchema.HbmCompositeMapKey CompositeMapKeyMapping { get => throw null; } + public ComponentMapKeyMapper(System.Type componentType, NHibernate.Cfg.MappingSchema.HbmCompositeMapKey component, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + } + public class ComponentMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IComponentMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + protected override void AddProperty(object property) => throw null; + public void Class(System.Type componentType) => throw null; + public ComponentMapper(NHibernate.Cfg.MappingSchema.HbmComponent component, System.Type componentType, System.Reflection.MemberInfo declaringTypeMember, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; + public ComponentMapper(NHibernate.Cfg.MappingSchema.HbmComponent component, System.Type componentType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(bool isLazy) => throw null; + public void LazyGroup(string name) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Parent(System.Reflection.MemberInfo parent) => throw null; + public void Parent(System.Reflection.MemberInfo parent, System.Action parentMapping) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public delegate void ComponentMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper propertyCustomizer); + public class ComponentNestedElementMapper : NHibernate.Mapping.ByCode.IComponentElementMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + protected void AddProperty(object property) => throw null; + public void Class(System.Type componentConcreteType) => throw null; + public void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public ComponentNestedElementMapper(System.Type componentType, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, NHibernate.Cfg.MappingSchema.HbmNestedCompositeElement component, System.Reflection.MemberInfo declaringComponentMember) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(bool isLazy) => throw null; + public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Parent(System.Reflection.MemberInfo parent) => throw null; + public void Parent(System.Reflection.MemberInfo parent, System.Action parentMapping) => throw null; + public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class ComponentParentMapper : NHibernate.Mapping.ByCode.IComponentParentMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public ComponentParentMapper(NHibernate.Cfg.MappingSchema.HbmParent parent, System.Reflection.MemberInfo member) => throw null; + } + public class ComposedIdMapper : NHibernate.Mapping.ByCode.IComposedIdMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + protected void AddProperty(object property) => throw null; + public NHibernate.Cfg.MappingSchema.HbmCompositeId ComposedId { get => throw null; } + public ComposedIdMapper(System.Type container, NHibernate.Cfg.MappingSchema.HbmCompositeId id, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + } + public class CustomizersHolder : NHibernate.Mapping.ByCode.Impl.ICustomizersHolder + { + public void AddCustomizer(System.Type type, System.Action classCustomizer) => throw null; + public void AddCustomizer(System.Type type, System.Action classCustomizer) => throw null; + public void AddCustomizer(System.Type type, System.Action classCustomizer) => throw null; + public void AddCustomizer(System.Type type, System.Action classCustomizer) => throw null; + public void AddCustomizer(System.Type type, System.Action classCustomizer) => throw null; + public void AddCustomizer(System.Type type, System.Action joinCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationManyToManyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationElementCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationOneToManyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationManyToAnyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action mapKeyManyToManyCustomizer) => throw null; + public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action mapKeyElementCustomizer) => throw null; + public CustomizersHolder() => throw null; + public System.Collections.Generic.IEnumerable GetAllCustomizedEntities() => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToAnyMapper mapper) => throw null; + public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IClassMapper mapper) => throw null; + public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.ISubclassMapper mapper) => throw null; + public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper mapper) => throw null; + public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper mapper) => throw null; + public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper) => throw null; + public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinAttributesMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IPropertyMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToOneMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToOneMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAnyMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.ISetPropertiesMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IBagPropertiesMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IListPropertiesMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapPropertiesMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToManyMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IElementMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToManyMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper) => throw null; + public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyMapper mapper) => throw null; + public void Merge(NHibernate.Mapping.ByCode.Impl.CustomizersHolder source) => throw null; + } + namespace CustomizersImpl + { + public class BagPropertiesCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer, NHibernate.Mapping.ByCode.IBagPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper + { + public BagPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; + } + public class ClassCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IClassMapper, NHibernate.Mapping.ByCode.IClassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper where TEntity : class + { + public void Abstract(bool isAbstract) => throw null; + public void BatchSize(int value) => throw null; + public void Cache(System.Action cacheMapping) => throw null; + public void Catalog(string catalogName) => throw null; + public void Check(string tableName) => throw null; + public void ComponentAsId(System.Linq.Expressions.Expression> idProperty) => throw null; + public void ComponentAsId(System.Linq.Expressions.Expression> idProperty, System.Action> idMapper) => throw null; + public void ComponentAsId(string notVisiblePropertyOrFieldName) => throw null; + public void ComponentAsId(string notVisiblePropertyOrFieldName, System.Action> idMapper) => throw null; + public void ComposedId(System.Action> idPropertiesMapping) => throw null; + public ClassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; } + public void Discriminator(System.Action discriminatorMapping) => throw null; + public void DiscriminatorValue(object value) => throw null; + public void DynamicInsert(bool value) => throw null; + public void DynamicUpdate(bool value) => throw null; + public void EntityName(string value) => throw null; + NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; } + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Id(System.Linq.Expressions.Expression> idProperty) => throw null; + public void Id(System.Linq.Expressions.Expression> idProperty, System.Action idMapper) => throw null; + public void Id(string notVisiblePropertyOrFieldName, System.Action idMapper) => throw null; + public void Join(string splitGroupId, System.Action> splitMapping) => throw null; + public void Lazy(bool value) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Mutable(bool isMutable) => throw null; + public void NaturalId(System.Action> naturalIdPropertiesMapping, System.Action naturalIdMapping) => throw null; + public void NaturalId(System.Action> naturalIdPropertiesMapping) => throw null; + public void OptimisticLock(NHibernate.Mapping.ByCode.OptimisticLockMode mode) => throw null; + public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; + public void Polymorphism(NHibernate.Mapping.ByCode.PolymorphismType type) => throw null; + public void Proxy(System.Type proxy) => throw null; + public void Schema(string schemaName) => throw null; + public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null; + public void SelectBeforeUpdate(bool value) => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Synchronize(params string[] table) => throw null; + public void Table(string tableName) => throw null; + public void Version(System.Linq.Expressions.Expression> versionProperty, System.Action versionMapping) => throw null; + public void Version(string notVisiblePropertyOrFieldName, System.Action versionMapping) => throw null; + public void Where(string whereClause) => throw null; + } + public class CollectionElementCustomizer : NHibernate.Mapping.ByCode.IElementMapper, NHibernate.Mapping.ByCode.IColumnsMapper + { + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public CollectionElementCustomizer(NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; } + public void Formula(string formula) => throw null; + public void Length(int length) => throw null; + public void NotNullable(bool notnull) => throw null; + public void Precision(short precision) => throw null; + public void Scale(short scale) => throw null; + public void Type(NHibernate.Type.IType persistentType) => throw null; + public void Type() => throw null; + public void Type(object parameters) => throw null; + public void Type(System.Type persistentType, object parameters) => throw null; + public void Unique(bool unique) => throw null; + } + public class CollectionElementRelationCustomizer : NHibernate.Mapping.ByCode.ICollectionElementRelation + { + public void Component(System.Action> mapping) => throw null; + public CollectionElementRelationCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public void Element() => throw null; + public void Element(System.Action mapping) => throw null; + public void ManyToAny(System.Type idTypeOfMetaType, System.Action mapping) => throw null; + public void ManyToAny(System.Action mapping) => throw null; + public void ManyToMany() => throw null; + public void ManyToMany(System.Action mapping) => throw null; + public void OneToMany() => throw null; + public void OneToMany(System.Action mapping) => throw null; + } + public class CollectionKeyCustomizer : NHibernate.Mapping.ByCode.IKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper + { + public void Column(System.Action columnMapper) => throw null; + public void Column(string columnName) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public CollectionKeyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; } + public void ForeignKey(string foreignKeyName) => throw null; + public void NotNullable(bool notnull) => throw null; + public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null; + public void PropertyRef(System.Linq.Expressions.Expression> propertyGetter) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class CollectionPropertiesCustomizer : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void BatchSize(int value) => throw null; + public void Cache(System.Action cacheMapping) => throw null; + public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; + public void Catalog(string catalogName) => throw null; + public CollectionPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; } + public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Inverse(bool value) => throw null; + public void Key(System.Action> keyMapping) => throw null; + public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Mutable(bool value) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void OrderBy(System.Linq.Expressions.Expression> property) => throw null; + public void OrderBy(string sqlOrderByClause) => throw null; + public void Persister() where TPersister : NHibernate.Persister.Collection.ICollectionPersister => throw null; + public NHibernate.Mapping.ByCode.PropertyPath PropertyPath { get => throw null; } + public void Schema(string schemaName) => throw null; + public void Sort() => throw null; + public void Sort() => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlDeleteAll(string sql) => throw null; + public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Table(string tableName) => throw null; + public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; + public void Type(System.Type collectionType) => throw null; + public void Type(string collectionType) => throw null; + public void Where(string sqlWhereClause) => throw null; + } + public class ComponentAsIdCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IComponentAsIdMapper, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Class() where TConcrete : TComponent => throw null; + public ComponentAsIdCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + public void UnsavedValue(NHibernate.Mapping.ByCode.UnsavedValueType unsavedValueType) => throw null; + } + public class ComponentCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IComponentMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IConformistHoldersProvider + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Class() where TConcrete : TComponent => throw null; + public ComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + public ComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; } + NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; } + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(bool isLazy) => throw null; + public void LazyGroup(string name) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Parent(System.Linq.Expressions.Expression> parent) where TProperty : class => throw null; + public void Parent(string notVisiblePropertyOrFieldName, System.Action parentMapping) => throw null; + public void Parent(System.Linq.Expressions.Expression> parent, System.Action parentMapping) where TProperty : class => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class ComponentElementCustomizer : NHibernate.Mapping.ByCode.IComponentElementMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Class() where TConcrete : TComponent => throw null; + public void Component(System.Linq.Expressions.Expression> property, System.Action> mapping) where TNestedComponent : class => throw null; + public void Component(string notVisiblePropertyOrFieldName, System.Action> mapping) where TNestedComponent : class => throw null; + public ComponentElementCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public static System.Reflection.MemberInfo GetPropertyOrFieldMatchingNameOrThrow(string memberName) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(bool isLazy) => throw null; + public void LazyGroup(string name) => throw null; + public void ManyToOne(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; + public void ManyToOne(System.Linq.Expressions.Expression> property) where TProperty : class => throw null; + public void ManyToOne(string notVisiblePropertyOrFieldName, System.Action mapping) where TProperty : class => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Parent(string notVisiblePropertyOrFieldName, System.Action parentMapping) => throw null; + public void Parent(System.Linq.Expressions.Expression> parent) where TProperty : class => throw null; + public void Parent(System.Linq.Expressions.Expression> parent, System.Action parentMapping) where TProperty : class => throw null; + public void Property(string notVisiblePropertyOrFieldName, System.Action mapping) => throw null; + public void Property(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; + public void Property(System.Linq.Expressions.Expression> property) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class ComposedIdCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IComposedIdMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper where TEntity : class + { + public ComposedIdCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + protected override void RegisterManyToOneMapping(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; + protected override void RegisterPropertyMapping(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; + } + public class DynamicComponentCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IDynamicComponentMapper, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public DynamicComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + protected override System.Reflection.MemberInfo GetRequiredPropertyOrFieldByName(string memberName) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class IdBagPropertiesCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper + { + public IdBagPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; + public void Id(System.Action idMapping) => throw null; + } + public class JoinCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IJoinMapper, NHibernate.Mapping.ByCode.IJoinAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper where TEntity : class + { + public void Catalog(string catalogName) => throw null; + public JoinCustomizer(string splitGroupId, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; + public void Inverse(bool value) => throw null; + public void Key(System.Action> keyMapping) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Optional(bool isOptional) => throw null; + protected override void RegisterAnyMapping(System.Linq.Expressions.Expression> property, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class => throw null; + protected override void RegisterBagMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + protected override void RegisterComponentMapping(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; + protected override void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; + protected override void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression>> property, System.Action> mapping) where TComponent : class => throw null; + protected override void RegisterIdBagMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + protected override void RegisterListMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + protected override void RegisterManyToOneMapping(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; + protected override void RegisterMapMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping) => throw null; + protected override void RegisterNoVisiblePropertyMapping(string notVisiblePropertyOrFieldName, System.Action mapping) => throw null; + protected override void RegisterPropertyMapping(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; + protected override void RegisterSetMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void Schema(string schemaName) => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Table(string tableName) => throw null; + } + public class JoinedSubclassCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IJoinedSubclassMapper, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper where TEntity : class + { + public void Abstract(bool isAbstract) => throw null; + public void BatchSize(int value) => throw null; + public void Catalog(string catalogName) => throw null; + public JoinedSubclassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; } + public void DynamicInsert(bool value) => throw null; + public void DynamicUpdate(bool value) => throw null; + public void EntityName(string value) => throw null; + NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; } + public void Extends(System.Type baseType) => throw null; + public void Extends(string entityOrClassName) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Key(System.Action> keyMapping) => throw null; + public void Lazy(bool value) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; + public void Proxy(System.Type proxy) => throw null; + public void Schema(string schemaName) => throw null; + public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null; + public void SelectBeforeUpdate(bool value) => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Synchronize(params string[] table) => throw null; + public void Table(string tableName) => throw null; + } + public class JoinedSubclassKeyCustomizer : NHibernate.Mapping.ByCode.IKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper where TEntity : class + { + public void Column(System.Action columnMapper) => throw null; + public void Column(string columnName) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public JoinedSubclassKeyCustomizer(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; } + public void ForeignKey(string foreignKeyName) => throw null; + public void NotNullable(bool notnull) => throw null; + public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null; + public void PropertyRef(System.Linq.Expressions.Expression> propertyGetter) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class JoinKeyCustomizer : NHibernate.Mapping.ByCode.IKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper where TEntity : class + { + public void Column(System.Action columnMapper) => throw null; + public void Column(string columnName) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public JoinKeyCustomizer(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; } + public void ForeignKey(string foreignKeyName) => throw null; + public void NotNullable(bool notnull) => throw null; + public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null; + public void PropertyRef(System.Linq.Expressions.Expression> propertyGetter) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class ListPropertiesCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer, NHibernate.Mapping.ByCode.IListPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper + { + public ListPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; + public void Index(System.Action listIndexMapping) => throw null; + } + public class ManyToAnyCustomizer : NHibernate.Mapping.ByCode.IManyToAnyMapper + { + public void Columns(System.Action idColumnMapping, System.Action classColumnMapping) => throw null; + public ManyToAnyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public void IdType(NHibernate.Type.IType idType) => throw null; + public void IdType() => throw null; + public void IdType(System.Type idType) => throw null; + public void MetaType(NHibernate.Type.IType metaType) => throw null; + public void MetaType() => throw null; + public void MetaType(System.Type metaType) => throw null; + public void MetaValue(object value, System.Type entityType) => throw null; + } + public class ManyToManyCustomizer : NHibernate.Mapping.ByCode.IManyToManyMapper, NHibernate.Mapping.ByCode.IColumnsMapper + { + public void Class(System.Type entityType) => throw null; + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public ManyToManyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public void EntityName(string entityName) => throw null; + public void ForeignKey(string foreignKeyName) => throw null; + public void Formula(string formula) => throw null; + public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null; + public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; + public void Where(string sqlWhereClause) => throw null; + } + public class MapKeyComponentCustomizer : NHibernate.Mapping.ByCode.IComponentMapKeyMapper + { + public MapKeyComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public void ManyToOne(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; + public void Property(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; + public void Property(System.Linq.Expressions.Expression> property) => throw null; + } + public class MapKeyCustomizer : NHibernate.Mapping.ByCode.IMapKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper + { + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public MapKeyCustomizer(NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public void Formula(string formula) => throw null; + public void Length(int length) => throw null; + public void Type(NHibernate.Type.IType persistentType) => throw null; + public void Type() => throw null; + public void Type(System.Type persistentType) => throw null; + } + public class MapKeyManyToManyCustomizer : NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper, NHibernate.Mapping.ByCode.IColumnsMapper + { + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public MapKeyManyToManyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public void ForeignKey(string foreignKeyName) => throw null; + public void Formula(string formula) => throw null; + } + public class MapKeyRelationCustomizer : NHibernate.Mapping.ByCode.IMapKeyRelation + { + public void Component(System.Action> mapping) => throw null; + public MapKeyRelationCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public void Element() => throw null; + public void Element(System.Action mapping) => throw null; + public void ManyToMany() => throw null; + public void ManyToMany(System.Action mapping) => throw null; + } + public class MapPropertiesCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer, NHibernate.Mapping.ByCode.IMapPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper + { + public MapPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; + } + public class NaturalIdCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper where TEntity : class + { + public NaturalIdCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + protected override void RegisterAnyMapping(System.Linq.Expressions.Expression> property, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class => throw null; + protected override void RegisterComponentMapping(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; + protected override void RegisterManyToOneMapping(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; + protected override void RegisterNoVisiblePropertyMapping(string notVisiblePropertyOrFieldName, System.Action mapping) => throw null; + protected override void RegisterPropertyMapping(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; + } + public class OneToManyCustomizer : NHibernate.Mapping.ByCode.IOneToManyMapper + { + public void Class(System.Type entityType) => throw null; + public OneToManyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; + public void EntityName(string entityName) => throw null; + public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; + } + public class PropertyContainerCustomizer + { + public void Any(System.Linq.Expressions.Expression> property, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class => throw null; + public void Any(string notVisiblePropertyOrFieldName, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class => throw null; + public void Bag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void Bag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping) => throw null; + public void Bag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void Bag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping) => throw null; + public void Component(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; + public void Component(System.Linq.Expressions.Expression> property) => throw null; + public void Component(System.Linq.Expressions.Expression> property, TComponent dynamicComponentTemplate, System.Action> mapping) => throw null; + public void Component(System.Linq.Expressions.Expression>> property, TComponent dynamicComponentTemplate, System.Action> mapping) where TComponent : class => throw null; + public void Component(string notVisiblePropertyOrFieldName, System.Action> mapping) => throw null; + public void Component(string notVisiblePropertyOrFieldName) => throw null; + public void Component(string notVisiblePropertyOrFieldName, TComponent dynamicComponentTemplate, System.Action> mapping) => throw null; + public PropertyContainerCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) => throw null; + protected NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; } + protected NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder ExplicitDeclarationsHolder { get => throw null; } + public static System.Reflection.MemberInfo GetPropertyOrFieldMatchingNameOrThrow(string memberName) => throw null; + protected virtual System.Reflection.MemberInfo GetRequiredPropertyOrFieldByName(string memberName) => throw null; + public void IdBag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void IdBag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping) => throw null; + public void IdBag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void IdBag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping) => throw null; + public void List(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void List(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping) => throw null; + public void List(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void List(string notVisiblePropertyOrFieldName, System.Action> collectionMapping) => throw null; + public void ManyToOne(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; + public void ManyToOne(System.Linq.Expressions.Expression> property) where TProperty : class => throw null; + public void ManyToOne(string notVisiblePropertyOrFieldName, System.Action mapping) where TProperty : class => throw null; + public void Map(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping) => throw null; + public void Map(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping) => throw null; + public void Map(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping) => throw null; + public void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping) => throw null; + public void OneToOne(System.Linq.Expressions.Expression> property, System.Action> mapping) where TProperty : class => throw null; + public void OneToOne(string notVisiblePropertyOrFieldName, System.Action> mapping) where TProperty : class => throw null; + public void Property(System.Linq.Expressions.Expression> property) => throw null; + public void Property(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; + public void Property(string notVisiblePropertyOrFieldName, System.Action mapping) => throw null; + protected NHibernate.Mapping.ByCode.PropertyPath PropertyPath { get => throw null; } + protected void RegistePropertyMapping(System.Action mapping, params System.Reflection.MemberInfo[] members) => throw null; + protected virtual void RegisterAnyMapping(System.Linq.Expressions.Expression> property, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class => throw null; + protected void RegisterAnyMapping(System.Action mapping, System.Type idTypeOfMetaType, params System.Reflection.MemberInfo[] members) where TProperty : class => throw null; + protected virtual void RegisterBagMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + protected void RegisterBagMapping(System.Action> collectionMapping, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; + protected virtual void RegisterComponentMapping(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; + protected void RegisterComponentMapping(System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; + protected virtual void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; + protected virtual void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression> property, System.Type componentType, System.Action> mapping) => throw null; + protected virtual void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression>> property, System.Action> mapping) where TComponent : class => throw null; + protected virtual void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression>> property, System.Type componentType, System.Action> mapping) => throw null; + protected void RegisterDynamicComponentMapping(System.Type componentType, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; + protected void RegisterDynamicComponentMapping(System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; + protected virtual void RegisterIdBagMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + protected virtual void RegisterIdBagMapping(System.Action> collectionMapping, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; + protected virtual void RegisterListMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + protected void RegisterListMapping(System.Action> collectionMapping, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; + protected virtual void RegisterManyToOneMapping(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; + protected void RegisterManyToOneMapping(System.Action mapping, params System.Reflection.MemberInfo[] members) where TProperty : class => throw null; + protected virtual void RegisterMapMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping) => throw null; + protected virtual void RegisterMapMapping(System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; + protected virtual void RegisterNoVisiblePropertyMapping(string notVisiblePropertyOrFieldName, System.Action mapping) => throw null; + protected void RegisterOneToOneMapping(System.Action> mapping, params System.Reflection.MemberInfo[] members) where TProperty : class => throw null; + protected virtual void RegisterPropertyMapping(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; + protected virtual void RegisterSetMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + protected void RegisterSetMapping(System.Action> collectionMapping, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; + public void Set(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void Set(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping) => throw null; + public void Set(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping) => throw null; + public void Set(string notVisiblePropertyOrFieldName, System.Action> collectionMapping) => throw null; + } + public class SetPropertiesCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer, NHibernate.Mapping.ByCode.ISetPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper + { + public SetPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; + } + public class SubclassCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.ISubclassMapper, NHibernate.Mapping.ByCode.ISubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper where TEntity : class + { + public void Abstract(bool isAbstract) => throw null; + public void BatchSize(int value) => throw null; + public SubclassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; } + public void DiscriminatorValue(object value) => throw null; + public void DynamicInsert(bool value) => throw null; + public void DynamicUpdate(bool value) => throw null; + public void EntityName(string value) => throw null; + NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; } + public void Extends(System.Type baseType) => throw null; + public void Extends(string entityOrClassName) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Join(string splitGroupId, System.Action> splitMapping) => throw null; + public void Lazy(bool value) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; + public void Proxy(System.Type proxy) => throw null; + public void SelectBeforeUpdate(bool value) => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Synchronize(params string[] table) => throw null; + } + public class UnionSubclassCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IUnionSubclassMapper, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper where TEntity : class + { + public void Abstract(bool isAbstract) => throw null; + public void BatchSize(int value) => throw null; + public void Catalog(string catalogName) => throw null; + public UnionSubclassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; + NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; } + public void DynamicInsert(bool value) => throw null; + public void DynamicUpdate(bool value) => throw null; + public void EntityName(string value) => throw null; + NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; } + public void Extends(System.Type baseType) => throw null; + public void Extends(string entityOrClassName) => throw null; + public void Lazy(bool value) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; + public void Proxy(System.Type proxy) => throw null; + public void Schema(string schemaName) => throw null; + public void SelectBeforeUpdate(bool value) => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Synchronize(params string[] table) => throw null; + public void Table(string tableName) => throw null; + } + } + public class DefaultCandidatePersistentMembersProvider : NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider + { + public DefaultCandidatePersistentMembersProvider() => throw null; + public System.Collections.Generic.IEnumerable GetComponentMembers(System.Type componentClass) => throw null; + public System.Collections.Generic.IEnumerable GetEntityMembersForPoid(System.Type entityClass) => throw null; + public System.Collections.Generic.IEnumerable GetRootEntityMembers(System.Type entityClass) => throw null; + public System.Collections.Generic.IEnumerable GetSubEntityMembers(System.Type entityClass, System.Type entitySuperclass) => throw null; + protected System.Collections.Generic.IEnumerable GetUserDeclaredFields(System.Type type) => throw null; + } + public class DiscriminatorMapper : NHibernate.Mapping.ByCode.IDiscriminatorMapper + { + public void Column(string column) => throw null; + public void Column(System.Action columnMapper) => throw null; + public DiscriminatorMapper(NHibernate.Cfg.MappingSchema.HbmDiscriminator discriminatorMapping) => throw null; + public void Force(bool force) => throw null; + public void Formula(string formula) => throw null; + public void Insert(bool applyOnInsert) => throw null; + public void Length(int length) => throw null; + public void NotNullable(bool isNotNullable) => throw null; + public void Type(NHibernate.Type.IType persistentType) => throw null; + public void Type(NHibernate.Type.IDiscriminatorType persistentType) => throw null; + public void Type() where TPersistentType : NHibernate.Type.IDiscriminatorType => throw null; + public void Type(System.Type persistentType) => throw null; + } + public class DynamicComponentMapper : NHibernate.Mapping.ByCode.IDynamicComponentMapper, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + protected void AddProperty(object property) => throw null; + public void Any(System.Reflection.MemberInfo property, System.Type idTypeOfMetaType, System.Action mapping) => throw null; + public void Bag(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; + public void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public DynamicComponentMapper(NHibernate.Cfg.MappingSchema.HbmDynamicComponent component, System.Reflection.MemberInfo declaringTypeMember, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void IdBag(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void List(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; + public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void Map(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action keyMapping, System.Action mapping) => throw null; + public void OneToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; + public void Set(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class ElementMapper : NHibernate.Mapping.ByCode.IElementMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper + { + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; + public ElementMapper(System.Type elementType, NHibernate.Cfg.MappingSchema.HbmElement elementMapping) => throw null; + public void Formula(string formula) => throw null; + public void Formulas(params string[] formulas) => throw null; + public void Length(int length) => throw null; + public void NotNullable(bool notnull) => throw null; + public void Precision(short precision) => throw null; + public void Scale(short scale) => throw null; + public void Type(NHibernate.Type.IType persistentType) => throw null; + public void Type() => throw null; + public void Type(object parameters) => throw null; + public void Type(System.Type persistentType, object parameters) => throw null; + public void Unique(bool unique) => throw null; + } + public delegate void ElementMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IElementMapper collectionRelationElementCustomizer); + public class ExplicitDeclarationsHolder : NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder + { + public void AddAsAny(System.Reflection.MemberInfo member) => throw null; + public void AddAsArray(System.Reflection.MemberInfo member) => throw null; + public void AddAsBag(System.Reflection.MemberInfo member) => throw null; + public void AddAsComponent(System.Type type) => throw null; + public void AddAsDynamicComponent(System.Reflection.MemberInfo member, System.Type componentTemplate) => throw null; + public void AddAsIdBag(System.Reflection.MemberInfo member) => throw null; + public void AddAsList(System.Reflection.MemberInfo member) => throw null; + public void AddAsManyToAnyRelation(System.Reflection.MemberInfo member) => throw null; + public void AddAsManyToManyItemRelation(System.Reflection.MemberInfo member) => throw null; + public void AddAsManyToManyKeyRelation(System.Reflection.MemberInfo member) => throw null; + public void AddAsManyToOneRelation(System.Reflection.MemberInfo member) => throw null; + public void AddAsMap(System.Reflection.MemberInfo member) => throw null; + public void AddAsNaturalId(System.Reflection.MemberInfo member) => throw null; + public void AddAsOneToManyRelation(System.Reflection.MemberInfo member) => throw null; + public void AddAsOneToOneRelation(System.Reflection.MemberInfo member) => throw null; + public void AddAsPartOfComposedId(System.Reflection.MemberInfo member) => throw null; + public void AddAsPersistentMember(System.Reflection.MemberInfo member) => throw null; + public void AddAsPoid(System.Reflection.MemberInfo member) => throw null; + public void AddAsProperty(System.Reflection.MemberInfo member) => throw null; + public void AddAsPropertySplit(NHibernate.Mapping.ByCode.SplitDefinition definition) => throw null; + public void AddAsRootEntity(System.Type type) => throw null; + public void AddAsSet(System.Reflection.MemberInfo member) => throw null; + public void AddAsTablePerClassEntity(System.Type type) => throw null; + public void AddAsTablePerClassHierarchyEntity(System.Type type) => throw null; + public void AddAsTablePerConcreteClassEntity(System.Type type) => throw null; + public void AddAsVersionProperty(System.Reflection.MemberInfo member) => throw null; + public System.Collections.Generic.IEnumerable Any { get => throw null; } + public System.Collections.Generic.IEnumerable Arrays { get => throw null; } + public System.Collections.Generic.IEnumerable Bags { get => throw null; } + public System.Collections.Generic.IEnumerable Components { get => throw null; } + public System.Collections.Generic.IEnumerable ComposedIds { get => throw null; } + public ExplicitDeclarationsHolder() => throw null; + public System.Collections.Generic.IEnumerable Dictionaries { get => throw null; } + public System.Collections.Generic.IEnumerable DynamicComponents { get => throw null; } + public System.Type GetDynamicComponentTemplate(System.Reflection.MemberInfo member) => throw null; + public string GetSplitGroupFor(System.Reflection.MemberInfo member) => throw null; + public System.Collections.Generic.IEnumerable GetSplitGroupsFor(System.Type type) => throw null; + public System.Collections.Generic.IEnumerable IdBags { get => throw null; } + public System.Collections.Generic.IEnumerable ItemManyToManyRelations { get => throw null; } + public System.Collections.Generic.IEnumerable KeyManyToManyRelations { get => throw null; } + public System.Collections.Generic.IEnumerable Lists { get => throw null; } + public System.Collections.Generic.IEnumerable ManyToAnyRelations { get => throw null; } + public System.Collections.Generic.IEnumerable ManyToOneRelations { get => throw null; } + public System.Collections.Generic.IEnumerable NaturalIds { get => throw null; } + public System.Collections.Generic.IEnumerable OneToManyRelations { get => throw null; } + public System.Collections.Generic.IEnumerable OneToOneRelations { get => throw null; } + public System.Collections.Generic.IEnumerable PersistentMembers { get => throw null; } + public System.Collections.Generic.IEnumerable Poids { get => throw null; } + public System.Collections.Generic.IEnumerable Properties { get => throw null; } + public System.Collections.Generic.IEnumerable RootEntities { get => throw null; } + public System.Collections.Generic.IEnumerable Sets { get => throw null; } + public System.Collections.Generic.IEnumerable SplitDefinitions { get => throw null; } + public System.Collections.Generic.IEnumerable TablePerClassEntities { get => throw null; } + public System.Collections.Generic.IEnumerable TablePerClassHierarchyEntities { get => throw null; } + public System.Collections.Generic.IEnumerable TablePerConcreteClassEntities { get => throw null; } + public System.Collections.Generic.IEnumerable VersionProperties { get => throw null; } + } + public class FilterMapper : NHibernate.Mapping.ByCode.IFilterMapper + { + public void Condition(string sqlCondition) => throw null; + public FilterMapper(string filterName, NHibernate.Cfg.MappingSchema.HbmFilter filter) => throw null; + } + public class GeneratorMapper : NHibernate.Mapping.ByCode.IGeneratorMapper + { + public GeneratorMapper(NHibernate.Cfg.MappingSchema.HbmGenerator generator) => throw null; + public void Params(object generatorParameters) => throw null; + public void Params(System.Collections.Generic.IDictionary generatorParameters) => throw null; + } + public interface ICandidatePersistentMembersProvider + { + System.Collections.Generic.IEnumerable GetComponentMembers(System.Type componentClass); + System.Collections.Generic.IEnumerable GetEntityMembersForPoid(System.Type entityClass); + System.Collections.Generic.IEnumerable GetRootEntityMembers(System.Type entityClass); + System.Collections.Generic.IEnumerable GetSubEntityMembers(System.Type entityClass, System.Type entitySuperclass); + } + public interface ICustomizersHolder + { + void AddCustomizer(System.Type type, System.Action classCustomizer); + void AddCustomizer(System.Type type, System.Action classCustomizer); + void AddCustomizer(System.Type type, System.Action classCustomizer); + void AddCustomizer(System.Type type, System.Action classCustomizer); + void AddCustomizer(System.Type type, System.Action classCustomizer); + void AddCustomizer(System.Type type, System.Action classCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action mapKeyManyToManyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action mapKeyElementCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationManyToManyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationElementCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationOneToManyCustomizer); + void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationManyToAnyCustomizer); + System.Collections.Generic.IEnumerable GetAllCustomizedEntities(); + void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IClassMapper mapper); + void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.ISubclassMapper mapper); + void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper mapper); + void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper mapper); + void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper); + void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinAttributesMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IPropertyMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToOneMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToOneMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAnyMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.ISetPropertiesMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IBagPropertiesMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IListPropertiesMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapPropertiesMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToManyMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IElementMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToManyMapper mapper); + void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToAnyMapper mapper); + } + public class IdBagMapper : NHibernate.Mapping.ByCode.IIdBagPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void BatchSize(int value) => throw null; + public void Cache(System.Action cacheMapping) => throw null; + public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; + public void Catalog(string catalogName) => throw null; + public IdBagMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmIdbag mapping) => throw null; + public IdBagMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmIdbag mapping) => throw null; + public System.Type ElementType { get => throw null; } + public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Id(System.Action idMapping) => throw null; + public void Inverse(bool value) => throw null; + public void Key(System.Action keyMapping) => throw null; + public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Mutable(bool value) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void OrderBy(System.Reflection.MemberInfo property) => throw null; + public void OrderBy(string sqlOrderByClause) => throw null; + public System.Type OwnerType { get => throw null; } + public void Persister(System.Type persister) => throw null; + public void Schema(string schemaName) => throw null; + public void Sort() => throw null; + public void Sort() => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlDeleteAll(string sql) => throw null; + public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Table(string tableName) => throw null; + public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; + public void Type(System.Type collectionType) => throw null; + public void Type(string collectionType) => throw null; + public void Where(string sqlWhereClause) => throw null; + } + public delegate void IdBagMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper propertyCustomizer); + public class IdMapper : NHibernate.Mapping.ByCode.IIdMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public IdMapper(NHibernate.Cfg.MappingSchema.HbmId hbmId) => throw null; + public IdMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmId hbmId) => throw null; + public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator) => throw null; + public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action generatorMapping) => throw null; + public void Length(int length) => throw null; + public void Type(NHibernate.Type.IIdentifierType persistentType) => throw null; + public void Type(System.Type persistentType, object parameters) => throw null; + public void UnsavedValue(object value) => throw null; + } + public class JoinedSubclassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IJoinedSubclassMapper, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper + { + public void Abstract(bool isAbstract) => throw null; + protected override void AddProperty(object property) => throw null; + public void BatchSize(int value) => throw null; + public void Catalog(string catalogName) => throw null; + public JoinedSubclassMapper(System.Type subClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; + public void DynamicInsert(bool value) => throw null; + public void DynamicUpdate(bool value) => throw null; + public void EntityName(string value) => throw null; + public void Extends(System.Type baseType) => throw null; + public void Extends(string entityOrClassName) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Key(System.Action keyMapping) => throw null; + public void Lazy(bool value) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; + public void Proxy(System.Type proxy) => throw null; + public void Schema(string schemaName) => throw null; + public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null; + public void SelectBeforeUpdate(bool value) => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Synchronize(params string[] table) => throw null; + public void Table(string tableName) => throw null; + } + public delegate void JoinedSubclassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper joinedSubclassCustomizer); + public class JoinMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IJoinMapper, NHibernate.Mapping.ByCode.IJoinAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper + { + protected override void AddProperty(object property) => throw null; + public void Catalog(string catalogName) => throw null; + public JoinMapper(System.Type container, string splitGroupId, NHibernate.Cfg.MappingSchema.HbmJoin hbmJoin, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; + public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; + public void Inverse(bool value) => throw null; + public void Key(System.Action keyMapping) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Optional(bool isOptional) => throw null; + public void Schema(string schemaName) => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Table(string tableName) => throw null; + public event NHibernate.Mapping.ByCode.Impl.TableNameChangedHandler TableNameChanged { add { } remove { } } + } + public class KeyManyToOneMapper : NHibernate.Mapping.ByCode.IManyToOneMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; + public void Class(System.Type entityType) => throw null; + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public KeyManyToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmKeyManyToOne manyToOne, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void EntityName(string entityName) => throw null; + public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; + public void ForeignKey(string foreignKeyName) => throw null; + public void Formula(string formula) => throw null; + public void Index(string indexName) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null; + public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; + public void NotNullable(bool notnull) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void PropertyRef(string propertyReferencedName) => throw null; + public void Unique(bool unique) => throw null; + public void UniqueKey(string uniquekeyName) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class KeyMapper : NHibernate.Mapping.ByCode.IKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper + { + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public KeyMapper(System.Type ownerEntityType, NHibernate.Cfg.MappingSchema.HbmKey mapping) => throw null; + public static string DefaultColumnName(System.Type ownerEntityType) => throw null; + public void ForeignKey(string foreignKeyName) => throw null; + public void NotNullable(bool notnull) => throw null; + public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null; + public void PropertyRef(System.Reflection.MemberInfo property) => throw null; + public void Unique(bool unique) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class KeyPropertyMapper : NHibernate.Mapping.ByCode.IPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public KeyPropertyMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmKeyProperty propertyMapping) => throw null; + public void Formula(string formula) => throw null; + public void Generated(NHibernate.Mapping.ByCode.PropertyGeneration generation) => throw null; + public void Index(string indexName) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(bool isLazy) => throw null; + public void Length(int length) => throw null; + public void NotNullable(bool notnull) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Precision(short precision) => throw null; + public void Scale(short scale) => throw null; + public void Type(NHibernate.Type.IType persistentType) => throw null; + public void Type() => throw null; + public void Type(object parameters) => throw null; + public void Type(System.Type persistentType, object parameters) => throw null; + public void Unique(bool unique) => throw null; + public void UniqueKey(string uniquekeyName) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public class ListIndexMapper : NHibernate.Mapping.ByCode.IListIndexMapper + { + public void Base(int baseIndex) => throw null; + public void Column(string columnName) => throw null; + public void Column(System.Action columnMapper) => throw null; + public ListIndexMapper(System.Type ownerEntityType, NHibernate.Cfg.MappingSchema.HbmListIndex mapping) => throw null; + } + public class ListMapper : NHibernate.Mapping.ByCode.IListPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void BatchSize(int value) => throw null; + public void Cache(System.Action cacheMapping) => throw null; + public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; + public void Catalog(string catalogName) => throw null; + public ListMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmList mapping) => throw null; + public ListMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmList mapping) => throw null; + public System.Type ElementType { get => throw null; } + public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Index(System.Action listIndexMapping) => throw null; + public void Inverse(bool value) => throw null; + public void Key(System.Action keyMapping) => throw null; + public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Mutable(bool value) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void OrderBy(System.Reflection.MemberInfo property) => throw null; + public void OrderBy(string sqlOrderByClause) => throw null; + public System.Type OwnerType { get => throw null; } + public void Persister(System.Type persister) => throw null; + public void Schema(string schemaName) => throw null; + public void Sort() => throw null; + public void Sort() => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlDeleteAll(string sql) => throw null; + public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Table(string tableName) => throw null; + public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; + public void Type(System.Type collectionType) => throw null; + public void Type(string collectionType) => throw null; + public void Where(string sqlWhereClause) => throw null; + } + public delegate void ListMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IListPropertiesMapper propertyCustomizer); + public class ManyToAnyMapper : NHibernate.Mapping.ByCode.IManyToAnyMapper + { + public void Columns(System.Action idColumnMapping, System.Action classColumnMapping) => throw null; + public ManyToAnyMapper(System.Type elementType, System.Type foreignIdType, NHibernate.Cfg.MappingSchema.HbmManyToAny manyToAny, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void IdType(NHibernate.Type.IType idType) => throw null; + public void IdType() => throw null; + public void IdType(System.Type idType) => throw null; + public void MetaType(NHibernate.Type.IType metaType) => throw null; + public void MetaType() => throw null; + public void MetaType(System.Type metaType) => throw null; + public void MetaValue(object value, System.Type entityType) => throw null; + } + public class ManyToManyMapper : NHibernate.Mapping.ByCode.IManyToManyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper + { + public void Class(System.Type entityType) => throw null; + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; + public ManyToManyMapper(System.Type elementType, NHibernate.Cfg.MappingSchema.HbmManyToMany manyToMany, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void EntityName(string entityName) => throw null; + public void ForeignKey(string foreignKeyName) => throw null; + public void Formula(string formula) => throw null; + public void Formulas(params string[] formulas) => throw null; + public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null; + public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; + public void Where(string sqlWhereClause) => throw null; + } + public delegate void ManyToManyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToManyMapper collectionRelationManyToManyCustomizer); + public class ManyToOneMapper : NHibernate.Mapping.ByCode.IManyToOneMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; + public void Class(System.Type entityType) => throw null; + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; + public ManyToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmManyToOne manyToOne, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public ManyToOneMapper(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorPropertyMapper, NHibernate.Cfg.MappingSchema.HbmManyToOne manyToOne, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void EntityName(string entityName) => throw null; + public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; + public void ForeignKey(string foreignKeyName) => throw null; + public void Formula(string formula) => throw null; + public void Formulas(params string[] formulas) => throw null; + public void Index(string indexName) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null; + public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; + public void NotNullable(bool notnull) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void PropertyRef(string propertyReferencedName) => throw null; + public void Unique(bool unique) => throw null; + public void UniqueKey(string uniquekeyName) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public delegate void ManyToOneMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToOneMapper propertyCustomizer); + public class MapKeyManyToManyMapper : NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper + { + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; + public MapKeyManyToManyMapper(NHibernate.Cfg.MappingSchema.HbmMapKeyManyToMany mapping) => throw null; + public void ForeignKey(string foreignKeyName) => throw null; + public void Formula(string formula) => throw null; + public void Formulas(params string[] formulas) => throw null; + public NHibernate.Cfg.MappingSchema.HbmMapKeyManyToMany MapKeyManyToManyMapping { get => throw null; } + } + public delegate void MapKeyManyToManyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapKeyManyToManyCustomizer); + public class MapKeyMapper : NHibernate.Mapping.ByCode.IMapKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper + { + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; + public MapKeyMapper(NHibernate.Cfg.MappingSchema.HbmMapKey hbmMapKey) => throw null; + public void Formula(string formula) => throw null; + public void Formulas(params string[] formulas) => throw null; + public void Length(int length) => throw null; + public NHibernate.Cfg.MappingSchema.HbmMapKey MapKeyMapping { get => throw null; } + public void Type(NHibernate.Type.IType persistentType) => throw null; + public void Type() => throw null; + public void Type(System.Type persistentType) => throw null; + } + public delegate void MapKeyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyMapper mapKeyElementCustomizer); + public class MapKeyRelation : NHibernate.Mapping.ByCode.IMapKeyRelation + { + public void Component(System.Action mapping) => throw null; + public MapKeyRelation(System.Type dictionaryKeyType, NHibernate.Cfg.MappingSchema.HbmMap mapMapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void Element(System.Action mapping) => throw null; + public void ManyToMany(System.Action mapping) => throw null; + } + public class MapMapper : NHibernate.Mapping.ByCode.IMapPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void BatchSize(int value) => throw null; + public void Cache(System.Action cacheMapping) => throw null; + public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; + public void Catalog(string catalogName) => throw null; + public MapMapper(System.Type ownerType, System.Type keyType, System.Type valueType, NHibernate.Cfg.MappingSchema.HbmMap mapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public MapMapper(System.Type ownerType, System.Type keyType, System.Type valueType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmMap mapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Inverse(bool value) => throw null; + public void Key(System.Action keyMapping) => throw null; + public System.Type KeyType { get => throw null; } + public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Mutable(bool value) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void OrderBy(System.Reflection.MemberInfo property) => throw null; + public void OrderBy(string sqlOrderByClause) => throw null; + public System.Type OwnerType { get => throw null; } + public void Persister(System.Type persister) => throw null; + public void Schema(string schemaName) => throw null; + public void Sort() => throw null; + public void Sort() => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlDeleteAll(string sql) => throw null; + public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Table(string tableName) => throw null; + public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; + public void Type(System.Type collectionType) => throw null; + public void Type(string collectionType) => throw null; + public System.Type ValueType { get => throw null; } + public void Where(string sqlWhereClause) => throw null; + } + public delegate void MapMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapPropertiesMapper propertyCustomizer); + public class NaturalIdMapper : NHibernate.Mapping.ByCode.Impl.AbstractBasePropertyContainerMapper, NHibernate.Mapping.ByCode.INaturalIdMapper, NHibernate.Mapping.ByCode.INaturalIdAttributesMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper + { + protected override void AddProperty(object property) => throw null; + public NaturalIdMapper(System.Type rootClass, NHibernate.Cfg.MappingSchema.HbmClass classMapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; + public void Mutable(bool isMutable) => throw null; + } + public class NoMemberPropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public NoMemberPropertyMapper() => throw null; + } + public class OneToManyMapper : NHibernate.Mapping.ByCode.IOneToManyMapper + { + public void Class(System.Type entityType) => throw null; + public OneToManyMapper(System.Type collectionElementType, NHibernate.Cfg.MappingSchema.HbmOneToMany oneToManyMapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + public void EntityName(string entityName) => throw null; + public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; + } + public delegate void OneToManyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToManyMapper collectionRelationOneToManyCustomizer); + public class OneToOneMapper : NHibernate.Mapping.ByCode.IOneToOneMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; + public void Class(System.Type clazz) => throw null; + public void Constrained(bool value) => throw null; + public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) => throw null; + public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) => throw null; + public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; + public void ForeignKey(string foreignKeyName) => throw null; + public void Formula(string formula) => throw null; + public void Formulas(params string[] formulas) => throw null; + public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void PropertyReference(System.Reflection.MemberInfo propertyInTheOtherSide) => throw null; + } + public class OneToOneMapper : NHibernate.Mapping.ByCode.Impl.OneToOneMapper, NHibernate.Mapping.ByCode.IOneToOneMapper, NHibernate.Mapping.ByCode.IOneToOneMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + { + public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) : base(default(System.Reflection.MemberInfo), default(NHibernate.Cfg.MappingSchema.HbmOneToOne)) => throw null; + public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) : base(default(System.Reflection.MemberInfo), default(NHibernate.Cfg.MappingSchema.HbmOneToOne)) => throw null; + public void PropertyReference(System.Linq.Expressions.Expression> reference) => throw null; + } + public delegate void OneToOneMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToOneMapper propertyCustomizer); + public class PropertyMapper : NHibernate.Mapping.ByCode.IPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; + public PropertyMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmProperty propertyMapping, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper) => throw null; + public PropertyMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmProperty propertyMapping) => throw null; + public void FetchGroup(string name) => throw null; + public void Formula(string formula) => throw null; + public void Formulas(params string[] formulas) => throw null; + public void Generated(NHibernate.Mapping.ByCode.PropertyGeneration generation) => throw null; + public void Index(string indexName) => throw null; + public void Insert(bool consideredInInsertQuery) => throw null; + public void Lazy(bool isLazy) => throw null; + public void Length(int length) => throw null; + public void NotNullable(bool notnull) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void Precision(short precision) => throw null; + public void Scale(short scale) => throw null; + public void Type(NHibernate.Type.IType persistentType) => throw null; + public void Type() => throw null; + public void Type(object parameters) => throw null; + public void Type(System.Type persistentType, object parameters) => throw null; + public void Unique(bool unique) => throw null; + public void UniqueKey(string uniquekeyName) => throw null; + public void Update(bool consideredInUpdateQuery) => throw null; + } + public delegate void PropertyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IPropertyMapper propertyCustomizer); + public delegate void RootClassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IClassAttributesMapper classCustomizer); + public class SetMapper : NHibernate.Mapping.ByCode.ISetPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void BatchSize(int value) => throw null; + public void Cache(System.Action cacheMapping) => throw null; + public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; + public void Catalog(string catalogName) => throw null; + public SetMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmSet mapping) => throw null; + public SetMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmSet mapping) => throw null; + public System.Type ElementType { get => throw null; } + public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Inverse(bool value) => throw null; + public void Key(System.Action keyMapping) => throw null; + public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Mutable(bool value) => throw null; + public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; + public void OrderBy(System.Reflection.MemberInfo property) => throw null; + public void OrderBy(string sqlOrderByClause) => throw null; + public System.Type OwnerType { get => throw null; } + public void Persister(System.Type persister) => throw null; + public void Schema(string schemaName) => throw null; + public void Sort() => throw null; + public void Sort() => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlDeleteAll(string sql) => throw null; + public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Table(string tableName) => throw null; + public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; + public void Type(System.Type collectionType) => throw null; + public void Type(string collectionType) => throw null; + public void Where(string sqlWhereClause) => throw null; + } + public delegate void SetMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.ISetPropertiesMapper propertyCustomizer); + public class SubclassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.ISubclassMapper, NHibernate.Mapping.ByCode.ISubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper + { + public void Abstract(bool isAbstract) => throw null; + protected override void AddProperty(object property) => throw null; + public void BatchSize(int value) => throw null; + public SubclassMapper(System.Type subClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; + public void DiscriminatorValue(object value) => throw null; + public void DynamicInsert(bool value) => throw null; + public void DynamicUpdate(bool value) => throw null; + public void EntityName(string value) => throw null; + public void Extends(System.Type baseType) => throw null; + public void Extends(string entityOrClassName) => throw null; + public void Filter(string filterName, System.Action filterMapping) => throw null; + public void Join(string splitGroupId, System.Action splitMapping) => throw null; + public System.Collections.Generic.Dictionary JoinMappers { get => throw null; } + public void Lazy(bool value) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; + public void Proxy(System.Type proxy) => throw null; + public void SelectBeforeUpdate(bool value) => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Synchronize(params string[] table) => throw null; + } + public delegate void SubclassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.ISubclassAttributesMapper subclassCustomizer); + public class TableNameChangedEventArgs + { + public TableNameChangedEventArgs(string oldName, string newName) => throw null; + public string NewName { get => throw null; } + public string OldName { get => throw null; } + } + public delegate void TableNameChangedHandler(NHibernate.Mapping.ByCode.IJoinMapper mapper, NHibernate.Mapping.ByCode.Impl.TableNameChangedEventArgs args); + public static class TypeNameUtil + { + public static string GetNhTypeName(this System.Type type) => throw null; + public static string GetShortClassName(this System.Type type, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; + } + public class UnionSubclassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IUnionSubclassMapper, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper + { + public void Abstract(bool isAbstract) => throw null; + protected override void AddProperty(object property) => throw null; + public void BatchSize(int value) => throw null; + public void Catalog(string catalogName) => throw null; + public UnionSubclassMapper(System.Type subClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; + public void DynamicInsert(bool value) => throw null; + public void DynamicUpdate(bool value) => throw null; + public void EntityName(string value) => throw null; + public void Extends(System.Type baseType) => throw null; + public void Extends(string entityOrClassName) => throw null; + public void Lazy(bool value) => throw null; + public void Loader(string namedQueryReference) => throw null; + public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; + public void Proxy(System.Type proxy) => throw null; + public void Schema(string schemaName) => throw null; + public void SelectBeforeUpdate(bool value) => throw null; + public void SqlDelete(string sql) => throw null; + public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlInsert(string sql) => throw null; + public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void SqlUpdate(string sql) => throw null; + public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null; + public void Subselect(string sql) => throw null; + public void Synchronize(params string[] table) => throw null; + public void Table(string tableName) => throw null; + } + public delegate void UnionSubclassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper unionSubclassCustomizer); + public class VersionMapper : NHibernate.Mapping.ByCode.IVersionMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper + { + public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; + public void Access(System.Type accessorType) => throw null; + public void Column(System.Action columnMapper) => throw null; + public void Column(string name) => throw null; + public void Columns(params System.Action[] columnMapper) => throw null; + public VersionMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmVersion hbmVersion) => throw null; + public void Generated(NHibernate.Mapping.ByCode.VersionGeneration generatedByDb) => throw null; + public void Insert(bool useInInsert) => throw null; + public void Type(NHibernate.Type.IVersionType persistentType) => throw null; + public void Type() where TPersistentType : NHibernate.UserTypes.IUserVersionType => throw null; + public void Type(System.Type persistentType) => throw null; + public void UnsavedValue(object value) => throw null; + } + } + public class Import + { + public void AddToMapping(NHibernate.Cfg.MappingSchema.HbmMapping hbmMapping) => throw null; + public Import(System.Type importType, string rename) => throw null; + } public interface INaturalIdAttributesMapper { void Mutable(bool isMutable); } - - // Generated from `NHibernate.Mapping.ByCode.INaturalIdMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface INaturalIdMapper : NHibernate.Mapping.ByCode.INaturalIdAttributesMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper + public interface INaturalIdMapper : NHibernate.Mapping.ByCode.INaturalIdAttributesMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IOneToManyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class IncrementGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef + { + public string Class { get => throw null; } + public IncrementGeneratorDef() => throw null; + public System.Type DefaultReturnType { get => throw null; } + public object Params { get => throw null; } + public bool SupportedAsCollectionElementId { get => throw null; } + } public interface IOneToManyMapper { void Class(System.Type entityType); void EntityName(string entityName); void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode); } - - // Generated from `NHibernate.Mapping.ByCode.IOneToOneMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IOneToOneMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper { void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle); @@ -24921,38 +21896,26 @@ namespace NHibernate void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation); void PropertyReference(System.Reflection.MemberInfo propertyInTheOtherSide); } - - // Generated from `NHibernate.Mapping.ByCode.IOneToOneMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IOneToOneMapper : NHibernate.Mapping.ByCode.IOneToOneMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper { void PropertyReference(System.Linq.Expressions.Expression> reference); } - - // Generated from `NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPlainPropertyContainerMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper + public interface IPlainPropertyContainerMapper : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { void OneToOne(System.Reflection.MemberInfo property, System.Action mapping); } - - // Generated from `NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPlainPropertyContainerMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper + public interface IPlainPropertyContainerMapper : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { - void OneToOne(string notVisiblePropertyOrFieldName, System.Action> mapping) where TProperty : class; void OneToOne(System.Linq.Expressions.Expression> property, System.Action> mapping) where TProperty : class; + void OneToOne(string notVisiblePropertyOrFieldName, System.Action> mapping) where TProperty : class; } - - // Generated from `NHibernate.Mapping.ByCode.IPropertyContainerMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPropertyContainerMapper : NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper + public interface IPropertyContainerMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IPropertyContainerMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPropertyContainerMapper : NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper + public interface IPropertyContainerMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IPropertyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPropertyMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IPropertyMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper { void Formula(string formula); void Generated(NHibernate.Mapping.ByCode.PropertyGeneration generation); @@ -24961,59 +21924,45 @@ namespace NHibernate void Lazy(bool isLazy); void Length(int length); void NotNullable(bool notnull); - void Precision(System.Int16 precision); - void Scale(System.Int16 scale); - void Type(object parameters); - void Type(); - void Type(System.Type persistentType, object parameters); + void Precision(short precision); + void Scale(short scale); void Type(NHibernate.Type.IType persistentType); + void Type(); + void Type(object parameters); + void Type(System.Type persistentType, object parameters); void Unique(bool unique); void UniqueKey(string uniquekeyName); void Update(bool consideredInUpdateQuery); } - - // Generated from `NHibernate.Mapping.ByCode.ISetPropertiesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISetPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface ISetPropertiesMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { } - - // Generated from `NHibernate.Mapping.ByCode.ISetPropertiesMapper<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISetPropertiesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface ISetPropertiesMapper : NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper { } - - // Generated from `NHibernate.Mapping.ByCode.ISubclassAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper + public interface ISubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper { void Abstract(bool isAbstract); void DiscriminatorValue(object value); void Extends(System.Type baseType); void Filter(string filterName, System.Action filterMapping); } - - // Generated from `NHibernate.Mapping.ByCode.ISubclassAttributesMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper where TEntity : class + public interface ISubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper where TEntity : class { void Abstract(bool isAbstract); void DiscriminatorValue(object value); void Extends(System.Type baseType); void Filter(string filterName, System.Action filterMapping); } - - // Generated from `NHibernate.Mapping.ByCode.ISubclassMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISubclassMapper : NHibernate.Mapping.ByCode.ISubclassAttributesMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper + public interface ISubclassMapper : NHibernate.Mapping.ByCode.ISubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { void Join(string splitGroupId, System.Action splitMapping); } - - // Generated from `NHibernate.Mapping.ByCode.ISubclassMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISubclassMapper : NHibernate.Mapping.ByCode.ISubclassAttributesMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class + public interface ISubclassMapper : NHibernate.Mapping.ByCode.ISubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper where TEntity : class { void Join(string splitGroupId, System.Action> splitMapping); } - - // Generated from `NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IUnionSubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper + public interface IUnionSubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper { void Abstract(bool isAbstract); void Catalog(string catalogName); @@ -25021,9 +21970,7 @@ namespace NHibernate void Schema(string schemaName); void Table(string tableName); } - - // Generated from `NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IUnionSubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper where TEntity : class + public interface IUnionSubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper where TEntity : class { void Abstract(bool isAbstract); void Catalog(string catalogName); @@ -25031,71 +21978,26 @@ namespace NHibernate void Schema(string schemaName); void Table(string tableName); } - - // Generated from `NHibernate.Mapping.ByCode.IUnionSubclassMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IUnionSubclassMapper : NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper + public interface IUnionSubclassMapper : NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper { } - - // Generated from `NHibernate.Mapping.ByCode.IUnionSubclassMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IUnionSubclassMapper : NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class + public interface IUnionSubclassMapper : NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper where TEntity : class { } - - // Generated from `NHibernate.Mapping.ByCode.IVersionMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IVersionMapper : NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper + public interface IVersionMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper { void Generated(NHibernate.Mapping.ByCode.VersionGeneration generatedByDb); void Insert(bool useInInsert); + void Type(NHibernate.Type.IVersionType persistentType); void Type() where TPersistentType : NHibernate.UserTypes.IUserVersionType; void Type(System.Type persistentType); - void Type(NHibernate.Type.IVersionType persistentType); void UnsavedValue(object value); } - - // Generated from `NHibernate.Mapping.ByCode.IdMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class IdMapperExtensions - { - public static void Type(this NHibernate.Mapping.ByCode.IIdMapper idMapper, object parameters) => throw null; - public static void Type(this NHibernate.Mapping.ByCode.IIdMapper idMapper) => throw null; - public static void Type(this NHibernate.Mapping.ByCode.IIdMapper idMapper, System.Type persistentType, object parameters) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.IdentityGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentityGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef - { - public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } - public IdentityGeneratorDef() => throw null; - public object Params { get => throw null; } - public bool SupportedAsCollectionElementId { get => throw null; } - } - - // Generated from `NHibernate.Mapping.ByCode.Import` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Import - { - public void AddToMapping(NHibernate.Cfg.MappingSchema.HbmMapping hbmMapping) => throw null; - public Import(System.Type importType, string rename) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.IncrementGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IncrementGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef - { - public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } - public IncrementGeneratorDef() => throw null; - public object Params { get => throw null; } - public bool SupportedAsCollectionElementId { get => throw null; } - } - - // Generated from `NHibernate.Mapping.ByCode.JoinedSubclassAttributesMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class JoinedSubclassAttributesMapperExtensions + public static partial class JoinedSubclassAttributesMapperExtensions { public static void Extends(this NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper mapper, string entityOrClassName) where TEntity : class => throw null; public static void Extends(this NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper mapper, string entityOrClassName) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.LazyRelation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class LazyRelation { protected LazyRelation() => throw null; @@ -25104,295 +22006,234 @@ namespace NHibernate public static NHibernate.Mapping.ByCode.LazyRelation Proxy; public abstract NHibernate.Cfg.MappingSchema.HbmLaziness ToHbm(); } - - // Generated from `NHibernate.Mapping.ByCode.ManyToOneMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ManyToOneMapperExtensions + public static partial class ManyToOneMapperExtensions { public static void EntityName(this NHibernate.Mapping.ByCode.IManyToOneMapper mapper, string entityName) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.MappingsExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class MappingsExtensions + public static partial class MappingsExtensions { public static string AsString(this NHibernate.Cfg.MappingSchema.HbmMapping mappings) => throw null; public static void WriteAllXmlMapping(this System.Collections.Generic.IEnumerable mappings) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.ModelExplicitDeclarationsHolderExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ModelExplicitDeclarationsHolderExtensions + public static partial class ModelExplicitDeclarationsHolderExtensions { public static void Merge(this NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder destination, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder source) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.ModelMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ModelMapper { public void AddMapping() where T : NHibernate.Mapping.ByCode.IConformistHoldersProvider, new() => throw null; - public void AddMapping(System.Type type) => throw null; public void AddMapping(NHibernate.Mapping.ByCode.IConformistHoldersProvider mapping) => throw null; + public void AddMapping(System.Type type) => throw null; public void AddMappings(System.Collections.Generic.IEnumerable types) => throw null; - public event NHibernate.Mapping.ByCode.Impl.AnyMappingHandler AfterMapAny; - public event NHibernate.Mapping.ByCode.Impl.BagMappingHandler AfterMapBag; - public event NHibernate.Mapping.ByCode.Impl.RootClassMappingHandler AfterMapClass; - public event NHibernate.Mapping.ByCode.Impl.ComponentMappingHandler AfterMapComponent; - public event NHibernate.Mapping.ByCode.Impl.ElementMappingHandler AfterMapElement; - public event NHibernate.Mapping.ByCode.Impl.IdBagMappingHandler AfterMapIdBag; - public event NHibernate.Mapping.ByCode.Impl.JoinedSubclassMappingHandler AfterMapJoinedSubclass; - public event NHibernate.Mapping.ByCode.Impl.ListMappingHandler AfterMapList; - public event NHibernate.Mapping.ByCode.Impl.ManyToManyMappingHandler AfterMapManyToMany; - public event NHibernate.Mapping.ByCode.Impl.ManyToOneMappingHandler AfterMapManyToOne; - public event NHibernate.Mapping.ByCode.Impl.MapMappingHandler AfterMapMap; - public event NHibernate.Mapping.ByCode.Impl.MapKeyMappingHandler AfterMapMapKey; - public event NHibernate.Mapping.ByCode.Impl.MapKeyManyToManyMappingHandler AfterMapMapKeyManyToMany; - public event NHibernate.Mapping.ByCode.Impl.OneToManyMappingHandler AfterMapOneToMany; - public event NHibernate.Mapping.ByCode.Impl.OneToOneMappingHandler AfterMapOneToOne; - public event NHibernate.Mapping.ByCode.Impl.PropertyMappingHandler AfterMapProperty; - public event NHibernate.Mapping.ByCode.Impl.SetMappingHandler AfterMapSet; - public event NHibernate.Mapping.ByCode.Impl.SubclassMappingHandler AfterMapSubclass; - public event NHibernate.Mapping.ByCode.Impl.UnionSubclassMappingHandler AfterMapUnionSubclass; - public event NHibernate.Mapping.ByCode.Impl.AnyMappingHandler BeforeMapAny; - public event NHibernate.Mapping.ByCode.Impl.BagMappingHandler BeforeMapBag; - public event NHibernate.Mapping.ByCode.Impl.RootClassMappingHandler BeforeMapClass; - public event NHibernate.Mapping.ByCode.Impl.ComponentMappingHandler BeforeMapComponent; - public event NHibernate.Mapping.ByCode.Impl.ElementMappingHandler BeforeMapElement; - public event NHibernate.Mapping.ByCode.Impl.IdBagMappingHandler BeforeMapIdBag; - public event NHibernate.Mapping.ByCode.Impl.JoinedSubclassMappingHandler BeforeMapJoinedSubclass; - public event NHibernate.Mapping.ByCode.Impl.ListMappingHandler BeforeMapList; - public event NHibernate.Mapping.ByCode.Impl.ManyToManyMappingHandler BeforeMapManyToMany; - public event NHibernate.Mapping.ByCode.Impl.ManyToOneMappingHandler BeforeMapManyToOne; - public event NHibernate.Mapping.ByCode.Impl.MapMappingHandler BeforeMapMap; - public event NHibernate.Mapping.ByCode.Impl.MapKeyMappingHandler BeforeMapMapKey; - public event NHibernate.Mapping.ByCode.Impl.MapKeyManyToManyMappingHandler BeforeMapMapKeyManyToMany; - public event NHibernate.Mapping.ByCode.Impl.OneToManyMappingHandler BeforeMapOneToMany; - public event NHibernate.Mapping.ByCode.Impl.OneToOneMappingHandler BeforeMapOneToOne; - public event NHibernate.Mapping.ByCode.Impl.PropertyMappingHandler BeforeMapProperty; - public event NHibernate.Mapping.ByCode.Impl.SetMappingHandler BeforeMapSet; - public event NHibernate.Mapping.ByCode.Impl.SubclassMappingHandler BeforeMapSubclass; - public event NHibernate.Mapping.ByCode.Impl.UnionSubclassMappingHandler BeforeMapUnionSubclass; + public event NHibernate.Mapping.ByCode.Impl.AnyMappingHandler AfterMapAny { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.BagMappingHandler AfterMapBag { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.RootClassMappingHandler AfterMapClass { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.ComponentMappingHandler AfterMapComponent { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.ElementMappingHandler AfterMapElement { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.IdBagMappingHandler AfterMapIdBag { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.JoinedSubclassMappingHandler AfterMapJoinedSubclass { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.ListMappingHandler AfterMapList { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.ManyToManyMappingHandler AfterMapManyToMany { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.ManyToOneMappingHandler AfterMapManyToOne { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.MapMappingHandler AfterMapMap { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.MapKeyMappingHandler AfterMapMapKey { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.MapKeyManyToManyMappingHandler AfterMapMapKeyManyToMany { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.OneToManyMappingHandler AfterMapOneToMany { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.OneToOneMappingHandler AfterMapOneToOne { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.PropertyMappingHandler AfterMapProperty { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.SetMappingHandler AfterMapSet { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.SubclassMappingHandler AfterMapSubclass { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.UnionSubclassMappingHandler AfterMapUnionSubclass { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.AnyMappingHandler BeforeMapAny { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.BagMappingHandler BeforeMapBag { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.RootClassMappingHandler BeforeMapClass { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.ComponentMappingHandler BeforeMapComponent { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.ElementMappingHandler BeforeMapElement { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.IdBagMappingHandler BeforeMapIdBag { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.JoinedSubclassMappingHandler BeforeMapJoinedSubclass { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.ListMappingHandler BeforeMapList { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.ManyToManyMappingHandler BeforeMapManyToMany { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.ManyToOneMappingHandler BeforeMapManyToOne { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.MapMappingHandler BeforeMapMap { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.MapKeyMappingHandler BeforeMapMapKey { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.MapKeyManyToManyMappingHandler BeforeMapMapKeyManyToMany { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.OneToManyMappingHandler BeforeMapOneToMany { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.OneToOneMappingHandler BeforeMapOneToOne { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.PropertyMappingHandler BeforeMapProperty { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.SetMappingHandler BeforeMapSet { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.SubclassMappingHandler BeforeMapSubclass { add { } remove { } } + public event NHibernate.Mapping.ByCode.Impl.UnionSubclassMappingHandler BeforeMapUnionSubclass { add { } remove { } } public void Class(System.Action> customizeAction) where TRootEntity : class => throw null; public NHibernate.Cfg.MappingSchema.HbmMapping CompileMappingFor(System.Collections.Generic.IEnumerable types) => throw null; public NHibernate.Cfg.MappingSchema.HbmMapping CompileMappingForAllExplicitlyAddedEntities() => throw null; public System.Collections.Generic.IEnumerable CompileMappingForEach(System.Collections.Generic.IEnumerable types) => throw null; public System.Collections.Generic.IEnumerable CompileMappingForEachExplicitlyAddedEntity() => throw null; public void Component(System.Action> customizeAction) => throw null; + public ModelMapper() => throw null; + public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector) => throw null; + public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider membersProvider) => throw null; + public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder) => throw null; + public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizerHolder, NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider membersProvider) => throw null; protected virtual NHibernate.Mapping.ByCode.ModelMapper.ICollectionElementRelationMapper DetermineCollectionElementRelationType(System.Reflection.MemberInfo property, NHibernate.Mapping.ByCode.PropertyPath propertyPath, System.Type collectionElementType) => throw null; protected void ForEachMemberPath(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.PropertyPath progressivePath, System.Action invoke) => throw null; protected System.Reflection.MemberInfo GetComponentParentReferenceProperty(System.Collections.Generic.IEnumerable persistentProperties, System.Type propertiesContainerType) => throw null; - // Generated from `NHibernate.Mapping.ByCode.ModelMapper+ICollectionElementRelationMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` protected interface ICollectionElementRelationMapper { void Map(NHibernate.Mapping.ByCode.ICollectionElementRelation relation); void MapCollectionProperties(NHibernate.Mapping.ByCode.ICollectionPropertiesMapper mapped); } - - - // Generated from `NHibernate.Mapping.ByCode.ModelMapper+IMapKeyRelationMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` protected interface IMapKeyRelationMapper { void Map(NHibernate.Mapping.ByCode.IMapKeyRelation relation); } - - - public void Import(string rename) => throw null; public void Import() => throw null; + public void Import(string rename) => throw null; public void JoinedSubclass(System.Action> customizeAction) where TEntity : class => throw null; protected NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider MembersProvider { get => throw null; } public NHibernate.Mapping.ByCode.IModelInspector ModelInspector { get => throw null; } - public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider membersProvider) => throw null; - public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizerHolder, NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider membersProvider) => throw null; - public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder) => throw null; - public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector) => throw null; - public ModelMapper() => throw null; public void Subclass(System.Action> customizeAction) where TEntity : class => throw null; public void UnionSubclass(System.Action> customizeAction) where TEntity : class => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.NativeGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NativeGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } public NativeGeneratorDef() => throw null; + public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.NativeGuidGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NativeGuidGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } public NativeGuidGeneratorDef() => throw null; + public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.NotFoundMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class NotFoundMode { + protected NotFoundMode() => throw null; public static NHibernate.Mapping.ByCode.NotFoundMode Exception; public static NHibernate.Mapping.ByCode.NotFoundMode Ignore; - protected NotFoundMode() => throw null; public abstract NHibernate.Cfg.MappingSchema.HbmNotFoundMode ToHbm(); } - - // Generated from `NHibernate.Mapping.ByCode.OnDeleteAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum OnDeleteAction { - Cascade, - NoAction, + NoAction = 0, + Cascade = 1, } - - // Generated from `NHibernate.Mapping.ByCode.OneToOneMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class OneToOneMapperExtensions + public static partial class OneToOneMapperExtensions { public static void Fetch(this NHibernate.Mapping.ByCode.IOneToOneMapper mapper, NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; public static void Formulas(this NHibernate.Mapping.ByCode.IOneToOneMapper mapper, params string[] formulas) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.OptimisticLockMode` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum OptimisticLockMode { - All, - Dirty, - None, - Version, + None = 0, + Version = 1, + Dirty = 2, + All = 3, } - - // Generated from `NHibernate.Mapping.ByCode.PolymorphismType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum PolymorphismType { - Explicit, - Implicit, + Implicit = 0, + Explicit = 1, } - - // Generated from `NHibernate.Mapping.ByCode.PropertyGeneration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class PropertyGeneration { public static NHibernate.Mapping.ByCode.PropertyGeneration Always; - // Generated from `NHibernate.Mapping.ByCode.PropertyGeneration+AlwaysPropertyGeneration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AlwaysPropertyGeneration : NHibernate.Mapping.ByCode.PropertyGeneration { public AlwaysPropertyGeneration() => throw null; } - - + protected PropertyGeneration() => throw null; public static NHibernate.Mapping.ByCode.PropertyGeneration Insert; - // Generated from `NHibernate.Mapping.ByCode.PropertyGeneration+InsertPropertyGeneration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InsertPropertyGeneration : NHibernate.Mapping.ByCode.PropertyGeneration { public InsertPropertyGeneration() => throw null; } - - public static NHibernate.Mapping.ByCode.PropertyGeneration Never; - // Generated from `NHibernate.Mapping.ByCode.PropertyGeneration+NeverPropertyGeneration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NeverPropertyGeneration : NHibernate.Mapping.ByCode.PropertyGeneration { public NeverPropertyGeneration() => throw null; } - - - protected PropertyGeneration() => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.PropertyMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class PropertyMapperExtensions + public static partial class PropertyMapperExtensions { public static void FetchGroup(this NHibernate.Mapping.ByCode.IPropertyMapper mapper, string name) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.PropertyPath` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PropertyPath { + public PropertyPath(NHibernate.Mapping.ByCode.PropertyPath previousPath, System.Reflection.MemberInfo localMember) => throw null; public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Mapping.ByCode.PropertyPath other) => throw null; public override int GetHashCode() => throw null; public System.Reflection.MemberInfo GetRootMember() => throw null; public System.Reflection.MemberInfo LocalMember { get => throw null; } public NHibernate.Mapping.ByCode.PropertyPath PreviousPath { get => throw null; } - public PropertyPath(NHibernate.Mapping.ByCode.PropertyPath previousPath, System.Reflection.MemberInfo localMember) => throw null; public string ToColumnName() => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.PropertyPathExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class PropertyPathExtensions + public static partial class PropertyPathExtensions { public static NHibernate.Mapping.ByCode.PropertyPath DepureFirstLevelIfCollection(this NHibernate.Mapping.ByCode.PropertyPath source) => throw null; public static System.Type GetContainerEntity(this NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.IModelInspector domainInspector) => throw null; public static System.Collections.Generic.IEnumerable InverseProgressivePath(this NHibernate.Mapping.ByCode.PropertyPath source) => throw null; public static string ToColumnName(this NHibernate.Mapping.ByCode.PropertyPath propertyPath, string pathSeparator) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.PropertyToField` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PropertyToField { + public PropertyToField() => throw null; public static System.Collections.Generic.IDictionary DefaultStrategies { get => throw null; } public static System.Reflection.FieldInfo GetBackFieldInfo(System.Reflection.PropertyInfo subject) => throw null; - public PropertyToField() => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.SchemaAction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` [System.Flags] public enum SchemaAction { - All, - Drop, - Export, - None, - Update, - Validate, + None = 0, + Drop = 1, + Update = 2, + Export = 4, + Validate = 8, + All = 15, } - - // Generated from `NHibernate.Mapping.ByCode.SchemaActionConverter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class SchemaActionConverter { public static bool Has(this NHibernate.Mapping.ByCode.SchemaAction source, NHibernate.Mapping.ByCode.SchemaAction value) => throw null; public static string ToSchemaActionString(this NHibernate.Mapping.ByCode.SchemaAction source) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.SelectGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SelectGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } + public SelectGeneratorDef() => throw null; public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } - public SelectGeneratorDef() => throw null; public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.SequenceGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SequenceGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } + public SequenceGeneratorDef() => throw null; public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } - public SequenceGeneratorDef() => throw null; public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.SequenceHiLoGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SequenceHiLoGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } + public SequenceHiLoGeneratorDef() => throw null; public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } - public SequenceHiLoGeneratorDef() => throw null; public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.SequenceIdentityGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SequenceIdentityGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } + public SequenceIdentityGeneratorDef() => throw null; public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } - public SequenceIdentityGeneratorDef() => throw null; public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.SimpleModelInspector` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SimpleModelInspector : NHibernate.Mapping.ByCode.IModelInspector, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder { void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsAny(System.Reflection.MemberInfo member) => throw null; @@ -25428,6 +22269,7 @@ namespace NHibernate protected bool CanReadCantWriteInsideType(System.Reflection.PropertyInfo property) => throw null; System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Components { get => throw null; } System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.ComposedIds { get => throw null; } + public SimpleModelInspector() => throw null; protected virtual bool DeclaredPolymorphicMatch(System.Reflection.MemberInfo member, System.Func declaredMatch) => throw null; System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Dictionaries { get => throw null; } System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.DynamicComponents { get => throw null; } @@ -25437,60 +22279,60 @@ namespace NHibernate string NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.GetSplitGroupFor(System.Reflection.MemberInfo member) => throw null; System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.GetSplitGroupsFor(System.Type type) => throw null; System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.IdBags { get => throw null; } - public void IsAny(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsAny(System.Reflection.MemberInfo member) => throw null; - public void IsArray(System.Func match) => throw null; + public void IsAny(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsArray(System.Reflection.MemberInfo role) => throw null; + public void IsArray(System.Func match) => throw null; protected bool IsAutoproperty(System.Reflection.PropertyInfo property) => throw null; - public void IsBag(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsBag(System.Reflection.MemberInfo role) => throw null; - public void IsComponent(System.Func match) => throw null; + public void IsBag(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsComponent(System.Type type) => throw null; - public void IsDictionary(System.Func match) => throw null; + public void IsComponent(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsDictionary(System.Reflection.MemberInfo role) => throw null; - public void IsDynamicComponent(System.Func match) => throw null; + public void IsDictionary(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsDynamicComponent(System.Reflection.MemberInfo member) => throw null; - public void IsEntity(System.Func match) => throw null; + public void IsDynamicComponent(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsEntity(System.Type type) => throw null; - public void IsIdBag(System.Func match) => throw null; + public void IsEntity(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsIdBag(System.Reflection.MemberInfo role) => throw null; - public void IsList(System.Func match) => throw null; + public void IsIdBag(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsList(System.Reflection.MemberInfo role) => throw null; - public void IsManyToAny(System.Func match) => throw null; + public void IsList(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsManyToAny(System.Reflection.MemberInfo member) => throw null; + public void IsManyToAny(System.Func match) => throw null; public void IsManyToMany(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsManyToManyItem(System.Reflection.MemberInfo member) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsManyToManyKey(System.Reflection.MemberInfo member) => throw null; - public void IsManyToOne(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsManyToOne(System.Reflection.MemberInfo member) => throw null; + public void IsManyToOne(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsMemberOfComposedId(System.Reflection.MemberInfo member) => throw null; - public void IsMemberOfNaturalId(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsMemberOfNaturalId(System.Reflection.MemberInfo member) => throw null; - public void IsOneToMany(System.Func match) => throw null; + public void IsMemberOfNaturalId(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsOneToMany(System.Reflection.MemberInfo member) => throw null; - public void IsOneToOne(System.Func match) => throw null; + public void IsOneToMany(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsOneToOne(System.Reflection.MemberInfo member) => throw null; - public void IsPersistentId(System.Func match) => throw null; + public void IsOneToOne(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsPersistentId(System.Reflection.MemberInfo member) => throw null; - public void IsPersistentProperty(System.Func match) => throw null; + public void IsPersistentId(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsPersistentProperty(System.Reflection.MemberInfo member) => throw null; - public void IsProperty(System.Func match) => throw null; + public void IsPersistentProperty(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsProperty(System.Reflection.MemberInfo member) => throw null; + public void IsProperty(System.Func match) => throw null; protected bool IsReadOnlyProperty(System.Reflection.MemberInfo subject) => throw null; - public void IsRootEntity(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsRootEntity(System.Type type) => throw null; - public void IsSet(System.Func match) => throw null; + public void IsRootEntity(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsSet(System.Reflection.MemberInfo role) => throw null; - public void IsTablePerClass(System.Func match) => throw null; + public void IsSet(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsTablePerClass(System.Type type) => throw null; - public void IsTablePerClassHierarchy(System.Func match) => throw null; + public void IsTablePerClass(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsTablePerClassHierarchy(System.Type type) => throw null; - public void IsTablePerClassSplit(System.Func match) => throw null; + public void IsTablePerClassHierarchy(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsTablePerClassSplit(System.Type type, object splitGroupId, System.Reflection.MemberInfo member) => throw null; - public void IsTablePerConcreteClass(System.Func match) => throw null; + public void IsTablePerClassSplit(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsTablePerConcreteClass(System.Type type) => throw null; - public void IsVersion(System.Func match) => throw null; + public void IsTablePerConcreteClass(System.Func match) => throw null; bool NHibernate.Mapping.ByCode.IModelInspector.IsVersion(System.Reflection.MemberInfo member) => throw null; + public void IsVersion(System.Func match) => throw null; System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.ItemManyToManyRelations { get => throw null; } System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.KeyManyToManyRelations { get => throw null; } System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Lists { get => throw null; } @@ -25513,7 +22355,6 @@ namespace NHibernate System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Properties { get => throw null; } System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.RootEntities { get => throw null; } System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Sets { get => throw null; } - public SimpleModelInspector() => throw null; System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.SplitDefinitions { get => throw null; } public void SplitsFor(System.Func, System.Collections.Generic.IEnumerable> getPropertiesSplitsId) => throw null; System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.TablePerClassEntities { get => throw null; } @@ -25521,55 +22362,49 @@ namespace NHibernate System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.TablePerConcreteClassEntities { get => throw null; } System.Collections.Generic.IEnumerable NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.VersionProperties { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.SplitDefinition` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SplitDefinition { - public string GroupId { get => throw null; set => throw null; } - public System.Reflection.MemberInfo Member { get => throw null; set => throw null; } - public System.Type On { get => throw null; set => throw null; } public SplitDefinition(System.Type on, string groupId, System.Reflection.MemberInfo member) => throw null; + public string GroupId { get => throw null; } + public System.Reflection.MemberInfo Member { get => throw null; } + public System.Type On { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.SubclassAttributesMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class SubclassAttributesMapperExtensions + public enum SqlCheck + { + None = 0, + RowCount = 1, + Param = 2, + } + public static partial class SubclassAttributesMapperExtensions { public static void Extends(this NHibernate.Mapping.ByCode.ISubclassAttributesMapper mapper, string entityOrClassName) where TEntity : class => throw null; public static void Extends(this NHibernate.Mapping.ByCode.ISubclassAttributesMapper mapper, string entityOrClassName) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.TableGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TableGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } + public TableGeneratorDef() => throw null; public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } - public TableGeneratorDef() => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.TableHiLoGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TableHiLoGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } + public TableHiLoGeneratorDef() => throw null; public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } - public TableHiLoGeneratorDef() => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.TriggerIdentityGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TriggerIdentityGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef { public string Class { get => throw null; } + public TriggerIdentityGeneratorDef() => throw null; public System.Type DefaultReturnType { get => throw null; } public object Params { get => throw null; } public bool SupportedAsCollectionElementId { get => throw null; } - public TriggerIdentityGeneratorDef() => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.TypeExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class TypeExtensions + public static partial class TypeExtensions { public static System.Reflection.MemberInfo DecodeMemberAccessExpression(System.Linq.Expressions.Expression> expression) => throw null; public static System.Reflection.MemberInfo DecodeMemberAccessExpression(System.Linq.Expressions.Expression> expression) => throw null; @@ -25582,10 +22417,10 @@ namespace NHibernate public static System.Type DetermineRequiredCollectionElementType(this System.Reflection.MemberInfo collectionProperty) => throw null; public static System.Collections.Generic.IEnumerable GetBaseTypes(this System.Type type) => throw null; public static System.Type GetFirstImplementorOf(this System.Type source, System.Type abstractType) => throw null; - public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType, System.Reflection.BindingFlags bindingFlags, System.Func acceptPropertyClauses) => throw null; - public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType, System.Reflection.BindingFlags bindingFlags) => throw null; - public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType, System.Func acceptPropertyClauses) => throw null; public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType) => throw null; + public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType, System.Func acceptPropertyClauses) => throw null; + public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType, System.Reflection.BindingFlags bindingFlags) => throw null; + public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType, System.Reflection.BindingFlags bindingFlags, System.Func acceptPropertyClauses) => throw null; public static System.Collections.Generic.IEnumerable GetGenericInterfaceTypeDefinitions(this System.Type type) => throw null; public static System.Collections.Generic.IEnumerable GetHierarchyFromBase(this System.Type type) => throw null; public static System.Collections.Generic.IEnumerable GetInterfaceProperties(this System.Type type) => throw null; @@ -25595,1905 +22430,981 @@ namespace NHibernate public static System.Collections.Generic.IEnumerable GetPropertyFromInterfaces(this System.Reflection.MemberInfo source) => throw null; public static System.Reflection.MemberInfo GetPropertyOrFieldMatchingName(this System.Type source, string memberName) => throw null; public static System.Type GetPropertyOrFieldType(this System.Reflection.MemberInfo propertyOrField) => throw null; - public static bool HasPublicPropertyOf(this System.Type source, System.Type typeOfProperty, System.Func acceptPropertyClauses) => throw null; public static bool HasPublicPropertyOf(this System.Type source, System.Type typeOfProperty) => throw null; + public static bool HasPublicPropertyOf(this System.Type source, System.Type typeOfProperty, System.Func acceptPropertyClauses) => throw null; public static bool IsEnumOrNullableEnum(this System.Type type) => throw null; public static bool IsFlagEnumOrNullableFlagEnum(this System.Type type) => throw null; public static bool IsGenericCollection(this System.Type source) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.UUIDHexGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UUIDHexGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef - { - public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } - public object Params { get => throw null; } - public bool SupportedAsCollectionElementId { get => throw null; } - public UUIDHexGeneratorDef(string format, string separator) => throw null; - public UUIDHexGeneratorDef(string format) => throw null; - public UUIDHexGeneratorDef() => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.UUIDStringGeneratorDef` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UUIDStringGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef - { - public string Class { get => throw null; } - public System.Type DefaultReturnType { get => throw null; } - public object Params { get => throw null; } - public bool SupportedAsCollectionElementId { get => throw null; } - public UUIDStringGeneratorDef() => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.UnionSubclassAttributesMapperExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class UnionSubclassAttributesMapperExtensions + public static partial class UnionSubclassAttributesMapperExtensions { public static void Extends(this NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper mapper, string entityOrClassName) where TEntity : class => throw null; public static void Extends(this NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper mapper, string entityOrClassName) => throw null; } - - // Generated from `NHibernate.Mapping.ByCode.UnsavedValueType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum UnsavedValueType { - Any, - None, - Undefined, + Undefined = 0, + Any = 1, + None = 2, + } + public class UUIDHexGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef + { + public string Class { get => throw null; } + public UUIDHexGeneratorDef() => throw null; + public UUIDHexGeneratorDef(string format) => throw null; + public UUIDHexGeneratorDef(string format, string separator) => throw null; + public System.Type DefaultReturnType { get => throw null; } + public object Params { get => throw null; } + public bool SupportedAsCollectionElementId { get => throw null; } + } + public class UUIDStringGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef + { + public string Class { get => throw null; } + public UUIDStringGeneratorDef() => throw null; + public System.Type DefaultReturnType { get => throw null; } + public object Params { get => throw null; } + public bool SupportedAsCollectionElementId { get => throw null; } } - - // Generated from `NHibernate.Mapping.ByCode.VersionGeneration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class VersionGeneration { public static NHibernate.Mapping.ByCode.VersionGeneration Always; + protected VersionGeneration() => throw null; public static NHibernate.Mapping.ByCode.VersionGeneration Never; public abstract NHibernate.Cfg.MappingSchema.HbmVersionGeneration ToHbm(); - protected VersionGeneration() => throw null; - } - - namespace Conformist - { - // Generated from `NHibernate.Mapping.ByCode.Conformist.ClassMapping<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ClassMapping : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ClassCustomizer where T : class - { - public ClassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Conformist.ComponentMapping<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentMapping : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ComponentCustomizer - { - public ComponentMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Conformist.JoinedSubclassMapping<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JoinedSubclassMapping : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.JoinedSubclassCustomizer where T : class - { - public JoinedSubclassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Conformist.SubclassMapping<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SubclassMapping : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.SubclassCustomizer where T : class - { - public SubclassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Conformist.UnionSubclassMapping<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnionSubclassMapping : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.UnionSubclassCustomizer where T : class - { - public UnionSubclassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; - } - - } - namespace Impl - { - // Generated from `NHibernate.Mapping.ByCode.Impl.AbstractBasePropertyContainerMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractBasePropertyContainerMapper - { - protected AbstractBasePropertyContainerMapper(System.Type container, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - protected abstract void AddProperty(object property); - public virtual void Any(System.Reflection.MemberInfo property, System.Type idTypeOfMetaType, System.Action mapping) => throw null; - public virtual void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public virtual void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - protected System.Type Container { get => throw null; } - protected virtual bool IsMemberSupportedByMappedContainer(System.Reflection.MemberInfo property) => throw null; - public virtual void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - protected NHibernate.Cfg.MappingSchema.HbmMapping MapDoc { get => throw null; } - public virtual void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - protected System.Type container; - protected NHibernate.Cfg.MappingSchema.HbmMapping mapDoc; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractPropertyContainerMapper : NHibernate.Mapping.ByCode.Impl.AbstractBasePropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper - { - protected AbstractPropertyContainerMapper(System.Type container, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; - public virtual void Bag(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; - public virtual void IdBag(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; - public virtual void List(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; - public virtual void Map(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action keyMapping, System.Action mapping) => throw null; - public virtual void OneToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public virtual void Set(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.AccessorPropertyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AccessorPropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public AccessorPropertyMapper(System.Type declaringType, string propertyName, System.Action accesorValueSetter) => throw null; - public string PropertyName { get => throw null; set => throw null; } - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.AnyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AnyMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAnyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public AnyMapper(System.Reflection.MemberInfo member, System.Type foreignIdType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmAny any, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public AnyMapper(System.Reflection.MemberInfo member, System.Type foreignIdType, NHibernate.Cfg.MappingSchema.HbmAny any, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; - public void Columns(System.Action idColumnMapping, System.Action classColumnMapping) => throw null; - public void IdType() => throw null; - public void IdType(System.Type idType) => throw null; - public void IdType(NHibernate.Type.IType idType) => throw null; - public void Index(string indexName) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public void Lazy(bool isLazy) => throw null; - public void MetaType() => throw null; - public void MetaType(System.Type metaType) => throw null; - public void MetaType(NHibernate.Type.IType metaType) => throw null; - public void MetaValue(object value, System.Type entityType) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.AnyMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void AnyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAnyMapper propertyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.BagMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BagMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IBagPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public BagMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmBag mapping) => throw null; - public BagMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmBag mapping) => throw null; - public void BatchSize(int value) => throw null; - public void Cache(System.Action cacheMapping) => throw null; - public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; - public void Catalog(string catalogName) => throw null; - public System.Type ElementType { get => throw null; set => throw null; } - public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public void Inverse(bool value) => throw null; - public void Key(System.Action keyMapping) => throw null; - public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Mutable(bool value) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void OrderBy(string sqlOrderByClause) => throw null; - public void OrderBy(System.Reflection.MemberInfo property) => throw null; - public System.Type OwnerType { get => throw null; set => throw null; } - public void Persister(System.Type persister) => throw null; - public void Schema(string schemaName) => throw null; - public void Sort() => throw null; - public void Sort() => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlDeleteAll(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Table(string tableName) => throw null; - public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; - public void Type(string collectionType) => throw null; - public void Type(System.Type collectionType) => throw null; - public void Where(string sqlWhereClause) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.BagMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void BagMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IBagPropertiesMapper propertyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.CacheMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CacheMapper : NHibernate.Mapping.ByCode.ICacheMapper - { - public CacheMapper(NHibernate.Cfg.MappingSchema.HbmCache cacheMapping) => throw null; - public void Include(NHibernate.Mapping.ByCode.CacheInclude cacheInclude) => throw null; - public void Region(string regionName) => throw null; - public void Usage(NHibernate.Mapping.ByCode.CacheUsage cacheUsage) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CascadeConverter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class CascadeConverter - { - public static string ToCascadeString(this NHibernate.Mapping.ByCode.Cascade source) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ClassMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ClassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IClassMapper, NHibernate.Mapping.ByCode.IClassAttributesMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper - { - public void Abstract(bool isAbstract) => throw null; - protected override void AddProperty(object property) => throw null; - public void BatchSize(int value) => throw null; - public void Cache(System.Action cacheMapping) => throw null; - public void Catalog(string catalogName) => throw null; - public void Check(string check) => throw null; - public ClassMapper(System.Type rootClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, System.Reflection.MemberInfo idProperty) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; - public void ComponentAsId(System.Reflection.MemberInfo idProperty, System.Action mapper) => throw null; - public void ComposedId(System.Action idPropertiesMapping) => throw null; - public void Discriminator(System.Action discriminatorMapping) => throw null; - public void DiscriminatorValue(object value) => throw null; - public void DynamicInsert(bool value) => throw null; - public void DynamicUpdate(bool value) => throw null; - public void EntityName(string value) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public void Id(System.Reflection.MemberInfo idProperty, System.Action mapper) => throw null; - public void Id(System.Action mapper) => throw null; - public void Join(string splitGroupId, System.Action splitMapping) => throw null; - public System.Collections.Generic.Dictionary JoinMappers { get => throw null; } - public void Lazy(bool value) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Mutable(bool isMutable) => throw null; - public void NaturalId(System.Action naturalIdMapping) => throw null; - public void OptimisticLock(NHibernate.Mapping.ByCode.OptimisticLockMode mode) => throw null; - public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; - public void Polymorphism(NHibernate.Mapping.ByCode.PolymorphismType type) => throw null; - public void Proxy(System.Type proxy) => throw null; - public void Schema(string schemaName) => throw null; - public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null; - public void SelectBeforeUpdate(bool value) => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Synchronize(params string[] table) => throw null; - public void Table(string tableName) => throw null; - public void Version(System.Reflection.MemberInfo versionProperty, System.Action versionMapping) => throw null; - public void Where(string whereClause) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CollectionElementRelation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionElementRelation : NHibernate.Mapping.ByCode.ICollectionElementRelation - { - public CollectionElementRelation(System.Type collectionElementType, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, System.Action elementRelationshipAssing) => throw null; - public void Component(System.Action mapping) => throw null; - public void Element(System.Action mapping) => throw null; - public void ManyToAny(System.Type idTypeOfMetaType, System.Action mapping) => throw null; - public void ManyToMany(System.Action mapping) => throw null; - public void OneToMany(System.Action mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CollectionIdMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionIdMapper : NHibernate.Mapping.ByCode.ICollectionIdMapper - { - public CollectionIdMapper(NHibernate.Cfg.MappingSchema.HbmCollectionId hbmId) => throw null; - public void Column(string name) => throw null; - public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action generatorMapping) => throw null; - public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator) => throw null; - public void Length(int length) => throw null; - public void Type(NHibernate.Type.IIdentifierType persistentType) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ColumnMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ColumnMapper : NHibernate.Mapping.ByCode.IColumnMapper - { - public void Check(string checkConstraint) => throw null; - public ColumnMapper(NHibernate.Cfg.MappingSchema.HbmColumn mapping, string memberName) => throw null; - public void Default(object defaultValue) => throw null; - public void Index(string indexName) => throw null; - public void Length(int length) => throw null; - public void Name(string name) => throw null; - public void NotNullable(bool notnull) => throw null; - public void Precision(System.Int16 precision) => throw null; - public void Scale(System.Int16 scale) => throw null; - public void SqlType(string sqltype) => throw null; - public void Unique(bool unique) => throw null; - public void UniqueKey(string uniquekeyName) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ColumnOrFormulaMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ColumnOrFormulaMapper : NHibernate.Mapping.ByCode.Impl.ColumnMapper, NHibernate.Mapping.ByCode.IColumnOrFormulaMapper, NHibernate.Mapping.ByCode.IColumnMapper - { - public ColumnOrFormulaMapper(NHibernate.Cfg.MappingSchema.HbmColumn columnMapping, string memberName, NHibernate.Cfg.MappingSchema.HbmFormula formulaMapping) : base(default(NHibernate.Cfg.MappingSchema.HbmColumn), default(string)) => throw null; - public void Formula(string formula) => throw null; - public static object[] GetItemsFor(System.Action[] columnOrFormulaMapper, string baseDefaultColumnName) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ComponentAsIdLikeComponentAttributesMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentAsIdLikeComponentAttributesMapper : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Class(System.Type componentType) => throw null; - public ComponentAsIdLikeComponentAttributesMapper(NHibernate.Mapping.ByCode.IComponentAsIdMapper realMapper) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public void Lazy(bool isLazy) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Parent(System.Reflection.MemberInfo parent, System.Action parentMapping) => throw null; - public void Parent(System.Reflection.MemberInfo parent) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ComponentAsIdMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentAsIdMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IComponentAsIdMapper, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - protected void AddProperty(object property) => throw null; - public void Class(System.Type componentType) => throw null; - public ComponentAsIdMapper(System.Type componentType, System.Reflection.MemberInfo declaringTypeMember, NHibernate.Cfg.MappingSchema.HbmCompositeId id, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public NHibernate.Cfg.MappingSchema.HbmCompositeId CompositeId { get => throw null; } - public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void UnsavedValue(NHibernate.Mapping.ByCode.UnsavedValueType unsavedValueType) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ComponentElementMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentElementMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IComponentElementMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - protected void AddProperty(object property) => throw null; - public void Class(System.Type componentConcreteType) => throw null; - public void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public ComponentElementMapper(System.Type componentType, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, NHibernate.Cfg.MappingSchema.HbmCompositeElement component) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public void Lazy(bool isLazy) => throw null; - public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Parent(System.Reflection.MemberInfo parent, System.Action parentMapping) => throw null; - public void Parent(System.Reflection.MemberInfo parent) => throw null; - public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ComponentMapKeyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentMapKeyMapper : NHibernate.Mapping.ByCode.IComponentMapKeyMapper - { - protected void AddProperty(object property) => throw null; - public ComponentMapKeyMapper(System.Type componentType, NHibernate.Cfg.MappingSchema.HbmCompositeMapKey component, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public NHibernate.Cfg.MappingSchema.HbmCompositeMapKey CompositeMapKeyMapping { get => throw null; } - public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ComponentMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IComponentMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - protected override void AddProperty(object property) => throw null; - public void Class(System.Type componentType) => throw null; - public ComponentMapper(NHibernate.Cfg.MappingSchema.HbmComponent component, System.Type componentType, System.Reflection.MemberInfo declaringTypeMember, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; - public ComponentMapper(NHibernate.Cfg.MappingSchema.HbmComponent component, System.Type componentType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public void Lazy(bool isLazy) => throw null; - public void LazyGroup(string name) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Parent(System.Reflection.MemberInfo parent, System.Action parentMapping) => throw null; - public void Parent(System.Reflection.MemberInfo parent) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ComponentMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void ComponentMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper propertyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.ComponentNestedElementMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentNestedElementMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IComponentElementMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - protected void AddProperty(object property) => throw null; - public void Class(System.Type componentConcreteType) => throw null; - public void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public ComponentNestedElementMapper(System.Type componentType, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, NHibernate.Cfg.MappingSchema.HbmNestedCompositeElement component, System.Reflection.MemberInfo declaringComponentMember) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public void Lazy(bool isLazy) => throw null; - public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Parent(System.Reflection.MemberInfo parent, System.Action parentMapping) => throw null; - public void Parent(System.Reflection.MemberInfo parent) => throw null; - public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ComponentParentMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentParentMapper : NHibernate.Mapping.ByCode.IComponentParentMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public ComponentParentMapper(NHibernate.Cfg.MappingSchema.HbmParent parent, System.Reflection.MemberInfo member) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ComposedIdMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComposedIdMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IComposedIdMapper - { - protected void AddProperty(object property) => throw null; - public NHibernate.Cfg.MappingSchema.HbmCompositeId ComposedId { get => throw null; } - public ComposedIdMapper(System.Type container, NHibernate.Cfg.MappingSchema.HbmCompositeId id, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersHolder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CustomizersHolder : NHibernate.Mapping.ByCode.Impl.ICustomizersHolder - { - public void AddCustomizer(System.Type type, System.Action classCustomizer) => throw null; - public void AddCustomizer(System.Type type, System.Action classCustomizer) => throw null; - public void AddCustomizer(System.Type type, System.Action classCustomizer) => throw null; - public void AddCustomizer(System.Type type, System.Action joinCustomizer) => throw null; - public void AddCustomizer(System.Type type, System.Action classCustomizer) => throw null; - public void AddCustomizer(System.Type type, System.Action classCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationOneToManyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action mapKeyElementCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action mapKeyManyToManyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationManyToManyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationManyToAnyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationElementCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer) => throw null; - public CustomizersHolder() => throw null; - public System.Collections.Generic.IEnumerable GetAllCustomizedEntities() => throw null; - public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper mapper) => throw null; - public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.ISubclassMapper mapper) => throw null; - public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper mapper) => throw null; - public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinAttributesMapper mapper) => throw null; - public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper) => throw null; - public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IClassMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.ISetPropertiesMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IPropertyMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToOneMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToManyMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapPropertiesMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToOneMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToManyMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToAnyMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IListPropertiesMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IElementMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IBagPropertiesMapper mapper) => throw null; - public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAnyMapper mapper) => throw null; - public void Merge(NHibernate.Mapping.ByCode.Impl.CustomizersHolder source) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.DefaultCandidatePersistentMembersProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DefaultCandidatePersistentMembersProvider : NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider - { - public DefaultCandidatePersistentMembersProvider() => throw null; - public System.Collections.Generic.IEnumerable GetComponentMembers(System.Type componentClass) => throw null; - public System.Collections.Generic.IEnumerable GetEntityMembersForPoid(System.Type entityClass) => throw null; - public System.Collections.Generic.IEnumerable GetRootEntityMembers(System.Type entityClass) => throw null; - public System.Collections.Generic.IEnumerable GetSubEntityMembers(System.Type entityClass, System.Type entitySuperclass) => throw null; - protected System.Collections.Generic.IEnumerable GetUserDeclaredFields(System.Type type) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.DiscriminatorMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DiscriminatorMapper : NHibernate.Mapping.ByCode.IDiscriminatorMapper - { - public void Column(string column) => throw null; - public void Column(System.Action columnMapper) => throw null; - public DiscriminatorMapper(NHibernate.Cfg.MappingSchema.HbmDiscriminator discriminatorMapping) => throw null; - public void Force(bool force) => throw null; - public void Formula(string formula) => throw null; - public void Insert(bool applyOnInsert) => throw null; - public void Length(int length) => throw null; - public void NotNullable(bool isNotNullable) => throw null; - public void Type() where TPersistentType : NHibernate.Type.IDiscriminatorType => throw null; - public void Type(System.Type persistentType) => throw null; - public void Type(NHibernate.Type.IType persistentType) => throw null; - public void Type(NHibernate.Type.IDiscriminatorType persistentType) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.DynamicComponentMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DynamicComponentMapper : NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IDynamicComponentMapper, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - protected void AddProperty(object property) => throw null; - public void Any(System.Reflection.MemberInfo property, System.Type idTypeOfMetaType, System.Action mapping) => throw null; - public void Bag(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; - public void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void Component(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public DynamicComponentMapper(NHibernate.Cfg.MappingSchema.HbmDynamicComponent component, System.Reflection.MemberInfo declaringTypeMember, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public void IdBag(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public void List(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; - public void ManyToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void Map(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action keyMapping, System.Action mapping) => throw null; - public void OneToOne(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Property(System.Reflection.MemberInfo property, System.Action mapping) => throw null; - public void Set(System.Reflection.MemberInfo property, System.Action collectionMapping, System.Action mapping) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ElementMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ElementMapper : NHibernate.Mapping.ByCode.IElementMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper - { - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; - public ElementMapper(System.Type elementType, NHibernate.Cfg.MappingSchema.HbmElement elementMapping) => throw null; - public void Formula(string formula) => throw null; - public void Formulas(params string[] formulas) => throw null; - public void Length(int length) => throw null; - public void NotNullable(bool notnull) => throw null; - public void Precision(System.Int16 precision) => throw null; - public void Scale(System.Int16 scale) => throw null; - public void Type(object parameters) => throw null; - public void Type() => throw null; - public void Type(System.Type persistentType, object parameters) => throw null; - public void Type(NHibernate.Type.IType persistentType) => throw null; - public void Unique(bool unique) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ElementMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void ElementMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IElementMapper collectionRelationElementCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.ExplicitDeclarationsHolder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ExplicitDeclarationsHolder : NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder - { - public void AddAsAny(System.Reflection.MemberInfo member) => throw null; - public void AddAsArray(System.Reflection.MemberInfo member) => throw null; - public void AddAsBag(System.Reflection.MemberInfo member) => throw null; - public void AddAsComponent(System.Type type) => throw null; - public void AddAsDynamicComponent(System.Reflection.MemberInfo member, System.Type componentTemplate) => throw null; - public void AddAsIdBag(System.Reflection.MemberInfo member) => throw null; - public void AddAsList(System.Reflection.MemberInfo member) => throw null; - public void AddAsManyToAnyRelation(System.Reflection.MemberInfo member) => throw null; - public void AddAsManyToManyItemRelation(System.Reflection.MemberInfo member) => throw null; - public void AddAsManyToManyKeyRelation(System.Reflection.MemberInfo member) => throw null; - public void AddAsManyToOneRelation(System.Reflection.MemberInfo member) => throw null; - public void AddAsMap(System.Reflection.MemberInfo member) => throw null; - public void AddAsNaturalId(System.Reflection.MemberInfo member) => throw null; - public void AddAsOneToManyRelation(System.Reflection.MemberInfo member) => throw null; - public void AddAsOneToOneRelation(System.Reflection.MemberInfo member) => throw null; - public void AddAsPartOfComposedId(System.Reflection.MemberInfo member) => throw null; - public void AddAsPersistentMember(System.Reflection.MemberInfo member) => throw null; - public void AddAsPoid(System.Reflection.MemberInfo member) => throw null; - public void AddAsProperty(System.Reflection.MemberInfo member) => throw null; - public void AddAsPropertySplit(NHibernate.Mapping.ByCode.SplitDefinition definition) => throw null; - public void AddAsRootEntity(System.Type type) => throw null; - public void AddAsSet(System.Reflection.MemberInfo member) => throw null; - public void AddAsTablePerClassEntity(System.Type type) => throw null; - public void AddAsTablePerClassHierarchyEntity(System.Type type) => throw null; - public void AddAsTablePerConcreteClassEntity(System.Type type) => throw null; - public void AddAsVersionProperty(System.Reflection.MemberInfo member) => throw null; - public System.Collections.Generic.IEnumerable Any { get => throw null; } - public System.Collections.Generic.IEnumerable Arrays { get => throw null; } - public System.Collections.Generic.IEnumerable Bags { get => throw null; } - public System.Collections.Generic.IEnumerable Components { get => throw null; } - public System.Collections.Generic.IEnumerable ComposedIds { get => throw null; } - public System.Collections.Generic.IEnumerable Dictionaries { get => throw null; } - public System.Collections.Generic.IEnumerable DynamicComponents { get => throw null; } - public ExplicitDeclarationsHolder() => throw null; - public System.Type GetDynamicComponentTemplate(System.Reflection.MemberInfo member) => throw null; - public string GetSplitGroupFor(System.Reflection.MemberInfo member) => throw null; - public System.Collections.Generic.IEnumerable GetSplitGroupsFor(System.Type type) => throw null; - public System.Collections.Generic.IEnumerable IdBags { get => throw null; } - public System.Collections.Generic.IEnumerable ItemManyToManyRelations { get => throw null; } - public System.Collections.Generic.IEnumerable KeyManyToManyRelations { get => throw null; } - public System.Collections.Generic.IEnumerable Lists { get => throw null; } - public System.Collections.Generic.IEnumerable ManyToAnyRelations { get => throw null; } - public System.Collections.Generic.IEnumerable ManyToOneRelations { get => throw null; } - public System.Collections.Generic.IEnumerable NaturalIds { get => throw null; } - public System.Collections.Generic.IEnumerable OneToManyRelations { get => throw null; } - public System.Collections.Generic.IEnumerable OneToOneRelations { get => throw null; } - public System.Collections.Generic.IEnumerable PersistentMembers { get => throw null; } - public System.Collections.Generic.IEnumerable Poids { get => throw null; } - public System.Collections.Generic.IEnumerable Properties { get => throw null; } - public System.Collections.Generic.IEnumerable RootEntities { get => throw null; } - public System.Collections.Generic.IEnumerable Sets { get => throw null; } - public System.Collections.Generic.IEnumerable SplitDefinitions { get => throw null; } - public System.Collections.Generic.IEnumerable TablePerClassEntities { get => throw null; } - public System.Collections.Generic.IEnumerable TablePerClassHierarchyEntities { get => throw null; } - public System.Collections.Generic.IEnumerable TablePerConcreteClassEntities { get => throw null; } - public System.Collections.Generic.IEnumerable VersionProperties { get => throw null; } - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.FilterMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FilterMapper : NHibernate.Mapping.ByCode.IFilterMapper - { - public void Condition(string sqlCondition) => throw null; - public FilterMapper(string filterName, NHibernate.Cfg.MappingSchema.HbmFilter filter) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.GeneratorMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class GeneratorMapper : NHibernate.Mapping.ByCode.IGeneratorMapper - { - public GeneratorMapper(NHibernate.Cfg.MappingSchema.HbmGenerator generator) => throw null; - public void Params(object generatorParameters) => throw null; - public void Params(System.Collections.Generic.IDictionary generatorParameters) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICandidatePersistentMembersProvider - { - System.Collections.Generic.IEnumerable GetComponentMembers(System.Type componentClass); - System.Collections.Generic.IEnumerable GetEntityMembersForPoid(System.Type entityClass); - System.Collections.Generic.IEnumerable GetRootEntityMembers(System.Type entityClass); - System.Collections.Generic.IEnumerable GetSubEntityMembers(System.Type entityClass, System.Type entitySuperclass); - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ICustomizersHolder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ICustomizersHolder - { - void AddCustomizer(System.Type type, System.Action classCustomizer); - void AddCustomizer(System.Type type, System.Action classCustomizer); - void AddCustomizer(System.Type type, System.Action classCustomizer); - void AddCustomizer(System.Type type, System.Action classCustomizer); - void AddCustomizer(System.Type type, System.Action classCustomizer); - void AddCustomizer(System.Type type, System.Action classCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationOneToManyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action mapKeyElementCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action mapKeyManyToManyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationManyToManyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationManyToAnyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action collectionRelationElementCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action propertyCustomizer); - System.Collections.Generic.IEnumerable GetAllCustomizedEntities(); - void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper mapper); - void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.ISubclassMapper mapper); - void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper mapper); - void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinAttributesMapper mapper); - void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper); - void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IClassMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.ISetPropertiesMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IPropertyMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToOneMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToManyMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapPropertiesMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToOneMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToManyMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToAnyMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IListPropertiesMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IElementMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IBagPropertiesMapper mapper); - void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAnyMapper mapper); - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.IdBagMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdBagMapper : NHibernate.Mapping.ByCode.IIdBagPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void BatchSize(int value) => throw null; - public void Cache(System.Action cacheMapping) => throw null; - public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; - public void Catalog(string catalogName) => throw null; - public System.Type ElementType { get => throw null; set => throw null; } - public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public void Id(System.Action idMapping) => throw null; - public IdBagMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmIdbag mapping) => throw null; - public IdBagMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmIdbag mapping) => throw null; - public void Inverse(bool value) => throw null; - public void Key(System.Action keyMapping) => throw null; - public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Mutable(bool value) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void OrderBy(string sqlOrderByClause) => throw null; - public void OrderBy(System.Reflection.MemberInfo property) => throw null; - public System.Type OwnerType { get => throw null; set => throw null; } - public void Persister(System.Type persister) => throw null; - public void Schema(string schemaName) => throw null; - public void Sort() => throw null; - public void Sort() => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlDeleteAll(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Table(string tableName) => throw null; - public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; - public void Type(string collectionType) => throw null; - public void Type(System.Type collectionType) => throw null; - public void Where(string sqlWhereClause) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.IdBagMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void IdBagMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper propertyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.IdMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdMapper : NHibernate.Mapping.ByCode.IIdMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action generatorMapping) => throw null; - public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator) => throw null; - public IdMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmId hbmId) => throw null; - public IdMapper(NHibernate.Cfg.MappingSchema.HbmId hbmId) => throw null; - public void Length(int length) => throw null; - public void Type(System.Type persistentType, object parameters) => throw null; - public void Type(NHibernate.Type.IIdentifierType persistentType) => throw null; - public void UnsavedValue(object value) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.JoinMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JoinMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IJoinMapper, NHibernate.Mapping.ByCode.IJoinAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper - { - protected override void AddProperty(object property) => throw null; - public void Catalog(string catalogName) => throw null; - public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; - public void Inverse(bool value) => throw null; - public JoinMapper(System.Type container, string splitGroupId, NHibernate.Cfg.MappingSchema.HbmJoin hbmJoin, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; - public void Key(System.Action keyMapping) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Optional(bool isOptional) => throw null; - public void Schema(string schemaName) => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Table(string tableName) => throw null; - public event NHibernate.Mapping.ByCode.Impl.TableNameChangedHandler TableNameChanged; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.JoinedSubclassMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JoinedSubclassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IJoinedSubclassMapper, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper - { - public void Abstract(bool isAbstract) => throw null; - protected override void AddProperty(object property) => throw null; - public void BatchSize(int value) => throw null; - public void Catalog(string catalogName) => throw null; - public void DynamicInsert(bool value) => throw null; - public void DynamicUpdate(bool value) => throw null; - public void EntityName(string value) => throw null; - public void Extends(string entityOrClassName) => throw null; - public void Extends(System.Type baseType) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public JoinedSubclassMapper(System.Type subClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; - public void Key(System.Action keyMapping) => throw null; - public void Lazy(bool value) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; - public void Proxy(System.Type proxy) => throw null; - public void Schema(string schemaName) => throw null; - public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null; - public void SelectBeforeUpdate(bool value) => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Synchronize(params string[] table) => throw null; - public void Table(string tableName) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.JoinedSubclassMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void JoinedSubclassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper joinedSubclassCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.KeyManyToOneMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class KeyManyToOneMapper : NHibernate.Mapping.ByCode.IManyToOneMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; - public void Class(System.Type entityType) => throw null; - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void EntityName(string entityName) => throw null; - public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; - public void ForeignKey(string foreignKeyName) => throw null; - public void Formula(string formula) => throw null; - public void Index(string indexName) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public KeyManyToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmKeyManyToOne manyToOne, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null; - public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; - public void NotNullable(bool notnull) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void PropertyRef(string propertyReferencedName) => throw null; - public void Unique(bool unique) => throw null; - public void UniqueKey(string uniquekeyName) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.KeyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class KeyMapper : NHibernate.Mapping.ByCode.IKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper - { - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public static string DefaultColumnName(System.Type ownerEntityType) => throw null; - public void ForeignKey(string foreignKeyName) => throw null; - public KeyMapper(System.Type ownerEntityType, NHibernate.Cfg.MappingSchema.HbmKey mapping) => throw null; - public void NotNullable(bool notnull) => throw null; - public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null; - public void PropertyRef(System.Reflection.MemberInfo property) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.KeyPropertyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class KeyPropertyMapper : NHibernate.Mapping.ByCode.IPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void Formula(string formula) => throw null; - public void Generated(NHibernate.Mapping.ByCode.PropertyGeneration generation) => throw null; - public void Index(string indexName) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public KeyPropertyMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmKeyProperty propertyMapping) => throw null; - public void Lazy(bool isLazy) => throw null; - public void Length(int length) => throw null; - public void NotNullable(bool notnull) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Precision(System.Int16 precision) => throw null; - public void Scale(System.Int16 scale) => throw null; - public void Type(object parameters) => throw null; - public void Type() => throw null; - public void Type(System.Type persistentType, object parameters) => throw null; - public void Type(NHibernate.Type.IType persistentType) => throw null; - public void Unique(bool unique) => throw null; - public void UniqueKey(string uniquekeyName) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ListIndexMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ListIndexMapper : NHibernate.Mapping.ByCode.IListIndexMapper - { - public void Base(int baseIndex) => throw null; - public void Column(string columnName) => throw null; - public void Column(System.Action columnMapper) => throw null; - public ListIndexMapper(System.Type ownerEntityType, NHibernate.Cfg.MappingSchema.HbmListIndex mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ListMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ListMapper : NHibernate.Mapping.ByCode.IListPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void BatchSize(int value) => throw null; - public void Cache(System.Action cacheMapping) => throw null; - public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; - public void Catalog(string catalogName) => throw null; - public System.Type ElementType { get => throw null; set => throw null; } - public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public void Index(System.Action listIndexMapping) => throw null; - public void Inverse(bool value) => throw null; - public void Key(System.Action keyMapping) => throw null; - public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; - public ListMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmList mapping) => throw null; - public ListMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmList mapping) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Mutable(bool value) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void OrderBy(string sqlOrderByClause) => throw null; - public void OrderBy(System.Reflection.MemberInfo property) => throw null; - public System.Type OwnerType { get => throw null; set => throw null; } - public void Persister(System.Type persister) => throw null; - public void Schema(string schemaName) => throw null; - public void Sort() => throw null; - public void Sort() => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlDeleteAll(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Table(string tableName) => throw null; - public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; - public void Type(string collectionType) => throw null; - public void Type(System.Type collectionType) => throw null; - public void Where(string sqlWhereClause) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ListMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void ListMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IListPropertiesMapper propertyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.ManyToAnyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ManyToAnyMapper : NHibernate.Mapping.ByCode.IManyToAnyMapper - { - public void Columns(System.Action idColumnMapping, System.Action classColumnMapping) => throw null; - public void IdType() => throw null; - public void IdType(System.Type idType) => throw null; - public void IdType(NHibernate.Type.IType idType) => throw null; - public ManyToAnyMapper(System.Type elementType, System.Type foreignIdType, NHibernate.Cfg.MappingSchema.HbmManyToAny manyToAny, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public void MetaType() => throw null; - public void MetaType(System.Type metaType) => throw null; - public void MetaType(NHibernate.Type.IType metaType) => throw null; - public void MetaValue(object value, System.Type entityType) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ManyToManyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ManyToManyMapper : NHibernate.Mapping.ByCode.IManyToManyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper - { - public void Class(System.Type entityType) => throw null; - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; - public void EntityName(string entityName) => throw null; - public void ForeignKey(string foreignKeyName) => throw null; - public void Formula(string formula) => throw null; - public void Formulas(params string[] formulas) => throw null; - public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null; - public ManyToManyMapper(System.Type elementType, NHibernate.Cfg.MappingSchema.HbmManyToMany manyToMany, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; - public void Where(string sqlWhereClause) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ManyToManyMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void ManyToManyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToManyMapper collectionRelationManyToManyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.ManyToOneMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ManyToOneMapper : NHibernate.Mapping.ByCode.IManyToOneMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; - public void Class(System.Type entityType) => throw null; - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; - public void EntityName(string entityName) => throw null; - public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; - public void ForeignKey(string foreignKeyName) => throw null; - public void Formula(string formula) => throw null; - public void Formulas(params string[] formulas) => throw null; - public void Index(string indexName) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null; - public ManyToOneMapper(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorPropertyMapper, NHibernate.Cfg.MappingSchema.HbmManyToOne manyToOne, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public ManyToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmManyToOne manyToOne, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; - public void NotNullable(bool notnull) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void PropertyRef(string propertyReferencedName) => throw null; - public void Unique(bool unique) => throw null; - public void UniqueKey(string uniquekeyName) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.ManyToOneMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void ManyToOneMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToOneMapper propertyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.MapKeyManyToManyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapKeyManyToManyMapper : NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper - { - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; - public void ForeignKey(string foreignKeyName) => throw null; - public void Formula(string formula) => throw null; - public void Formulas(params string[] formulas) => throw null; - public MapKeyManyToManyMapper(NHibernate.Cfg.MappingSchema.HbmMapKeyManyToMany mapping) => throw null; - public NHibernate.Cfg.MappingSchema.HbmMapKeyManyToMany MapKeyManyToManyMapping { get => throw null; } - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.MapKeyManyToManyMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void MapKeyManyToManyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapKeyManyToManyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.MapKeyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapKeyMapper : NHibernate.Mapping.ByCode.IMapKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper - { - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; - public void Formula(string formula) => throw null; - public void Formulas(params string[] formulas) => throw null; - public void Length(int length) => throw null; - public MapKeyMapper(NHibernate.Cfg.MappingSchema.HbmMapKey hbmMapKey) => throw null; - public NHibernate.Cfg.MappingSchema.HbmMapKey MapKeyMapping { get => throw null; } - public void Type() => throw null; - public void Type(System.Type persistentType) => throw null; - public void Type(NHibernate.Type.IType persistentType) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.MapKeyMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void MapKeyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyMapper mapKeyElementCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.MapKeyRelation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapKeyRelation : NHibernate.Mapping.ByCode.IMapKeyRelation - { - public void Component(System.Action mapping) => throw null; - public void Element(System.Action mapping) => throw null; - public void ManyToMany(System.Action mapping) => throw null; - public MapKeyRelation(System.Type dictionaryKeyType, NHibernate.Cfg.MappingSchema.HbmMap mapMapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.MapMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapMapper : NHibernate.Mapping.ByCode.IMapPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void BatchSize(int value) => throw null; - public void Cache(System.Action cacheMapping) => throw null; - public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; - public void Catalog(string catalogName) => throw null; - public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public void Inverse(bool value) => throw null; - public void Key(System.Action keyMapping) => throw null; - public System.Type KeyType { get => throw null; set => throw null; } - public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; - public void Loader(string namedQueryReference) => throw null; - public MapMapper(System.Type ownerType, System.Type keyType, System.Type valueType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmMap mapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public MapMapper(System.Type ownerType, System.Type keyType, System.Type valueType, NHibernate.Cfg.MappingSchema.HbmMap mapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - public void Mutable(bool value) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void OrderBy(string sqlOrderByClause) => throw null; - public void OrderBy(System.Reflection.MemberInfo property) => throw null; - public System.Type OwnerType { get => throw null; set => throw null; } - public void Persister(System.Type persister) => throw null; - public void Schema(string schemaName) => throw null; - public void Sort() => throw null; - public void Sort() => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlDeleteAll(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Table(string tableName) => throw null; - public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; - public void Type(string collectionType) => throw null; - public void Type(System.Type collectionType) => throw null; - public System.Type ValueType { get => throw null; set => throw null; } - public void Where(string sqlWhereClause) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.MapMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void MapMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapPropertiesMapper propertyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.NaturalIdMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NaturalIdMapper : NHibernate.Mapping.ByCode.Impl.AbstractBasePropertyContainerMapper, NHibernate.Mapping.ByCode.INaturalIdMapper, NHibernate.Mapping.ByCode.INaturalIdAttributesMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper - { - protected override void AddProperty(object property) => throw null; - public void Mutable(bool isMutable) => throw null; - public NaturalIdMapper(System.Type rootClass, NHibernate.Cfg.MappingSchema.HbmClass classMapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.NoMemberPropertyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NoMemberPropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public NoMemberPropertyMapper() => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.OneToManyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OneToManyMapper : NHibernate.Mapping.ByCode.IOneToManyMapper - { - public void Class(System.Type entityType) => throw null; - public void EntityName(string entityName) => throw null; - public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; - public OneToManyMapper(System.Type collectionElementType, NHibernate.Cfg.MappingSchema.HbmOneToMany oneToManyMapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.OneToManyMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void OneToManyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToManyMapper collectionRelationOneToManyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.OneToOneMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OneToOneMapper : NHibernate.Mapping.ByCode.IOneToOneMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; - public void Class(System.Type clazz) => throw null; - public void Constrained(bool value) => throw null; - public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; - public void ForeignKey(string foreignKeyName) => throw null; - public void Formula(string formula) => throw null; - public void Formulas(params string[] formulas) => throw null; - public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null; - public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) => throw null; - public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void PropertyReference(System.Reflection.MemberInfo propertyInTheOtherSide) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.OneToOneMapper<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OneToOneMapper : NHibernate.Mapping.ByCode.Impl.OneToOneMapper, NHibernate.Mapping.ByCode.IOneToOneMapper, NHibernate.Mapping.ByCode.IOneToOneMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) : base(default(System.Reflection.MemberInfo), default(NHibernate.Cfg.MappingSchema.HbmOneToOne)) => throw null; - public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) : base(default(System.Reflection.MemberInfo), default(NHibernate.Cfg.MappingSchema.HbmOneToOne)) => throw null; - public void PropertyReference(System.Linq.Expressions.Expression> reference) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.OneToOneMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void OneToOneMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToOneMapper propertyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.PropertyMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PropertyMapper : NHibernate.Mapping.ByCode.IPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void ColumnsAndFormulas(params System.Action[] columnOrFormulaMapper) => throw null; - public void FetchGroup(string name) => throw null; - public void Formula(string formula) => throw null; - public void Formulas(params string[] formulas) => throw null; - public void Generated(NHibernate.Mapping.ByCode.PropertyGeneration generation) => throw null; - public void Index(string indexName) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public void Lazy(bool isLazy) => throw null; - public void Length(int length) => throw null; - public void NotNullable(bool notnull) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Precision(System.Int16 precision) => throw null; - public PropertyMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmProperty propertyMapping, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper) => throw null; - public PropertyMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmProperty propertyMapping) => throw null; - public void Scale(System.Int16 scale) => throw null; - public void Type(object parameters) => throw null; - public void Type() => throw null; - public void Type(System.Type persistentType, object parameters) => throw null; - public void Type(NHibernate.Type.IType persistentType) => throw null; - public void Unique(bool unique) => throw null; - public void UniqueKey(string uniquekeyName) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.PropertyMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void PropertyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IPropertyMapper propertyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.RootClassMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void RootClassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IClassAttributesMapper classCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.SetMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SetMapper : NHibernate.Mapping.ByCode.ISetPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void BatchSize(int value) => throw null; - public void Cache(System.Action cacheMapping) => throw null; - public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; - public void Catalog(string catalogName) => throw null; - public System.Type ElementType { get => throw null; set => throw null; } - public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public void Inverse(bool value) => throw null; - public void Key(System.Action keyMapping) => throw null; - public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Mutable(bool value) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void OrderBy(string sqlOrderByClause) => throw null; - public void OrderBy(System.Reflection.MemberInfo property) => throw null; - public System.Type OwnerType { get => throw null; set => throw null; } - public void Persister(System.Type persister) => throw null; - public void Schema(string schemaName) => throw null; - public SetMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmSet mapping) => throw null; - public SetMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmSet mapping) => throw null; - public void Sort() => throw null; - public void Sort() => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlDeleteAll(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Table(string tableName) => throw null; - public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; - public void Type(string collectionType) => throw null; - public void Type(System.Type collectionType) => throw null; - public void Where(string sqlWhereClause) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.SetMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void SetMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.ISetPropertiesMapper propertyCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.SubclassMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SubclassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.ISubclassMapper, NHibernate.Mapping.ByCode.ISubclassAttributesMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper - { - public void Abstract(bool isAbstract) => throw null; - protected override void AddProperty(object property) => throw null; - public void BatchSize(int value) => throw null; - public void DiscriminatorValue(object value) => throw null; - public void DynamicInsert(bool value) => throw null; - public void DynamicUpdate(bool value) => throw null; - public void EntityName(string value) => throw null; - public void Extends(string entityOrClassName) => throw null; - public void Extends(System.Type baseType) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public void Join(string splitGroupId, System.Action splitMapping) => throw null; - public System.Collections.Generic.Dictionary JoinMappers { get => throw null; } - public void Lazy(bool value) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; - public void Proxy(System.Type proxy) => throw null; - public void SelectBeforeUpdate(bool value) => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public SubclassMapper(System.Type subClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; - public void Subselect(string sql) => throw null; - public void Synchronize(params string[] table) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.SubclassMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void SubclassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.ISubclassAttributesMapper subclassCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.TableNameChangedEventArgs` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TableNameChangedEventArgs - { - public string NewName { get => throw null; set => throw null; } - public string OldName { get => throw null; set => throw null; } - public TableNameChangedEventArgs(string oldName, string newName) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.TableNameChangedHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void TableNameChangedHandler(NHibernate.Mapping.ByCode.IJoinMapper mapper, NHibernate.Mapping.ByCode.Impl.TableNameChangedEventArgs args); - - // Generated from `NHibernate.Mapping.ByCode.Impl.TypeNameUtil` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class TypeNameUtil - { - public static string GetNhTypeName(this System.Type type) => throw null; - public static string GetShortClassName(this System.Type type, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.UnionSubclassMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnionSubclassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IUnionSubclassMapper, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper - { - public void Abstract(bool isAbstract) => throw null; - protected override void AddProperty(object property) => throw null; - public void BatchSize(int value) => throw null; - public void Catalog(string catalogName) => throw null; - public void DynamicInsert(bool value) => throw null; - public void DynamicUpdate(bool value) => throw null; - public void EntityName(string value) => throw null; - public void Extends(string entityOrClassName) => throw null; - public void Extends(System.Type baseType) => throw null; - public void Lazy(bool value) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; - public void Proxy(System.Type proxy) => throw null; - public void Schema(string schemaName) => throw null; - public void SelectBeforeUpdate(bool value) => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Synchronize(params string[] table) => throw null; - public void Table(string tableName) => throw null; - public UnionSubclassMapper(System.Type subClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.UnionSubclassMappingHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate void UnionSubclassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper unionSubclassCustomizer); - - // Generated from `NHibernate.Mapping.ByCode.Impl.VersionMapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class VersionMapper : NHibernate.Mapping.ByCode.IVersionMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void Generated(NHibernate.Mapping.ByCode.VersionGeneration generatedByDb) => throw null; - public void Insert(bool useInInsert) => throw null; - public void Type() where TPersistentType : NHibernate.UserTypes.IUserVersionType => throw null; - public void Type(System.Type persistentType) => throw null; - public void Type(NHibernate.Type.IVersionType persistentType) => throw null; - public void UnsavedValue(object value) => throw null; - public VersionMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmVersion hbmVersion) => throw null; - } - - namespace CustomizersImpl - { - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.BagPropertiesCustomizer<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BagPropertiesCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IBagPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public BagPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ClassCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ClassCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IClassMapper, NHibernate.Mapping.ByCode.IClassAttributesMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class - { - public void Abstract(bool isAbstract) => throw null; - public void BatchSize(int value) => throw null; - public void Cache(System.Action cacheMapping) => throw null; - public void Catalog(string catalogName) => throw null; - public void Check(string tableName) => throw null; - public ClassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - public void ComponentAsId(string notVisiblePropertyOrFieldName, System.Action> idMapper) => throw null; - public void ComponentAsId(string notVisiblePropertyOrFieldName) => throw null; - public void ComponentAsId(System.Linq.Expressions.Expression> idProperty, System.Action> idMapper) => throw null; - public void ComponentAsId(System.Linq.Expressions.Expression> idProperty) => throw null; - public void ComposedId(System.Action> idPropertiesMapping) => throw null; - NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; } - public void Discriminator(System.Action discriminatorMapping) => throw null; - public void DiscriminatorValue(object value) => throw null; - public void DynamicInsert(bool value) => throw null; - public void DynamicUpdate(bool value) => throw null; - public void EntityName(string value) => throw null; - NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; } - public void Filter(string filterName, System.Action filterMapping) => throw null; - public void Id(System.Linq.Expressions.Expression> idProperty, System.Action idMapper) => throw null; - public void Id(System.Linq.Expressions.Expression> idProperty) => throw null; - public void Id(string notVisiblePropertyOrFieldName, System.Action idMapper) => throw null; - public void Join(string splitGroupId, System.Action> splitMapping) => throw null; - public void Lazy(bool value) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Mutable(bool isMutable) => throw null; - public void NaturalId(System.Action> naturalIdPropertiesMapping, System.Action naturalIdMapping) => throw null; - public void NaturalId(System.Action> naturalIdPropertiesMapping) => throw null; - public void OptimisticLock(NHibernate.Mapping.ByCode.OptimisticLockMode mode) => throw null; - public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; - public void Polymorphism(NHibernate.Mapping.ByCode.PolymorphismType type) => throw null; - public void Proxy(System.Type proxy) => throw null; - public void Schema(string schemaName) => throw null; - public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null; - public void SelectBeforeUpdate(bool value) => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Synchronize(params string[] table) => throw null; - public void Table(string tableName) => throw null; - public void Version(System.Linq.Expressions.Expression> versionProperty, System.Action versionMapping) => throw null; - public void Version(string notVisiblePropertyOrFieldName, System.Action versionMapping) => throw null; - public void Where(string whereClause) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionElementCustomizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionElementCustomizer : NHibernate.Mapping.ByCode.IElementMapper, NHibernate.Mapping.ByCode.IColumnsMapper - { - public CollectionElementCustomizer(NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; set => throw null; } - public void Formula(string formula) => throw null; - public void Length(int length) => throw null; - public void NotNullable(bool notnull) => throw null; - public void Precision(System.Int16 precision) => throw null; - public void Scale(System.Int16 scale) => throw null; - public void Type(object parameters) => throw null; - public void Type() => throw null; - public void Type(System.Type persistentType, object parameters) => throw null; - public void Type(NHibernate.Type.IType persistentType) => throw null; - public void Unique(bool unique) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionElementRelationCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionElementRelationCustomizer : NHibernate.Mapping.ByCode.ICollectionElementRelation - { - public CollectionElementRelationCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public void Component(System.Action> mapping) => throw null; - public void Element(System.Action mapping) => throw null; - public void Element() => throw null; - public void ManyToAny(System.Action mapping) => throw null; - public void ManyToAny(System.Type idTypeOfMetaType, System.Action mapping) => throw null; - public void ManyToMany(System.Action mapping) => throw null; - public void ManyToMany() => throw null; - public void OneToMany(System.Action mapping) => throw null; - public void OneToMany() => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionKeyCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionKeyCustomizer : NHibernate.Mapping.ByCode.IKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper - { - public CollectionKeyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public void Column(string columnName) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; set => throw null; } - public void ForeignKey(string foreignKeyName) => throw null; - public void NotNullable(bool notnull) => throw null; - public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null; - public void PropertyRef(System.Linq.Expressions.Expression> propertyGetter) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CollectionPropertiesCustomizer : NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void BatchSize(int value) => throw null; - public void Cache(System.Action cacheMapping) => throw null; - public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null; - public void Catalog(string catalogName) => throw null; - public CollectionPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; set => throw null; } - public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public void Inverse(bool value) => throw null; - public void Key(System.Action> keyMapping) => throw null; - public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Mutable(bool value) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void OrderBy(System.Linq.Expressions.Expression> property) => throw null; - public void OrderBy(string sqlOrderByClause) => throw null; - public void Persister() where TPersister : NHibernate.Persister.Collection.ICollectionPersister => throw null; - public NHibernate.Mapping.ByCode.PropertyPath PropertyPath { get => throw null; set => throw null; } - public void Schema(string schemaName) => throw null; - public void Sort() => throw null; - public void Sort() => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlDeleteAll(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Table(string tableName) => throw null; - public void Type() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null; - public void Type(string collectionType) => throw null; - public void Type(System.Type collectionType) => throw null; - public void Where(string sqlWhereClause) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ComponentAsIdCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentAsIdCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IComponentAsIdMapper, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Class() where TConcrete : TComponent => throw null; - public ComponentAsIdCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - public void UnsavedValue(NHibernate.Mapping.ByCode.UnsavedValueType unsavedValueType) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ComponentCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.IComponentMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Class() where TConcrete : TComponent => throw null; - public ComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - public ComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; } - NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; } - public void Insert(bool consideredInInsertQuery) => throw null; - public void Lazy(bool isLazy) => throw null; - public void LazyGroup(string name) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Parent(System.Linq.Expressions.Expression> parent, System.Action parentMapping) where TProperty : class => throw null; - public void Parent(System.Linq.Expressions.Expression> parent) where TProperty : class => throw null; - public void Parent(string notVisiblePropertyOrFieldName, System.Action parentMapping) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ComponentElementCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentElementCustomizer : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IComponentElementMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public void Class() where TConcrete : TComponent => throw null; - public void Component(string notVisiblePropertyOrFieldName, System.Action> mapping) where TNestedComponent : class => throw null; - public void Component(System.Linq.Expressions.Expression> property, System.Action> mapping) where TNestedComponent : class => throw null; - public ComponentElementCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public static System.Reflection.MemberInfo GetPropertyOrFieldMatchingNameOrThrow(string memberName) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public void Lazy(bool isLazy) => throw null; - public void LazyGroup(string name) => throw null; - public void ManyToOne(string notVisiblePropertyOrFieldName, System.Action mapping) where TProperty : class => throw null; - public void ManyToOne(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; - public void ManyToOne(System.Linq.Expressions.Expression> property) where TProperty : class => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Parent(System.Linq.Expressions.Expression> parent, System.Action parentMapping) where TProperty : class => throw null; - public void Parent(System.Linq.Expressions.Expression> parent) where TProperty : class => throw null; - public void Parent(string notVisiblePropertyOrFieldName, System.Action parentMapping) => throw null; - public void Property(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; - public void Property(System.Linq.Expressions.Expression> property) => throw null; - public void Property(string notVisiblePropertyOrFieldName, System.Action mapping) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ComposedIdCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComposedIdCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IComposedIdMapper where TEntity : class - { - public ComposedIdCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - protected override void RegisterManyToOneMapping(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; - protected override void RegisterPropertyMapping(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.DynamicComponentCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DynamicComponentCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IDynamicComponentMapper, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Access(System.Type accessorType) => throw null; - public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null; - public DynamicComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - internal DynamicComponentCustomizer(System.Type componentType, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - protected override System.Reflection.MemberInfo GetRequiredPropertyOrFieldByName(string memberName) => throw null; - public void Insert(bool consideredInInsertQuery) => throw null; - public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.IdBagPropertiesCustomizer<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdBagPropertiesCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Id(System.Action idMapping) => throw null; - public IdBagPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.JoinCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JoinCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IJoinMapper, NHibernate.Mapping.ByCode.IJoinAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class - { - public void Catalog(string catalogName) => throw null; - public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null; - public void Inverse(bool value) => throw null; - public JoinCustomizer(string splitGroupId, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - public void Key(System.Action> keyMapping) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Optional(bool isOptional) => throw null; - protected override void RegisterAnyMapping(System.Linq.Expressions.Expression> property, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class => throw null; - protected override void RegisterBagMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - protected override void RegisterComponentMapping(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; - protected override void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; - protected override void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression>> property, System.Action> mapping) where TComponent : class => throw null; - protected override void RegisterIdBagMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - protected override void RegisterListMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - protected override void RegisterManyToOneMapping(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; - protected override void RegisterMapMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping) => throw null; - protected override void RegisterNoVisiblePropertyMapping(string notVisiblePropertyOrFieldName, System.Action mapping) => throw null; - protected override void RegisterPropertyMapping(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; - protected override void RegisterSetMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void Schema(string schemaName) => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Table(string tableName) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.JoinKeyCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JoinKeyCustomizer : NHibernate.Mapping.ByCode.IKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper where TEntity : class - { - public void Column(string columnName) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; set => throw null; } - public void ForeignKey(string foreignKeyName) => throw null; - public JoinKeyCustomizer(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public void NotNullable(bool notnull) => throw null; - public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null; - public void PropertyRef(System.Linq.Expressions.Expression> propertyGetter) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.JoinedSubclassCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JoinedSubclassCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IJoinedSubclassMapper, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class - { - public void Abstract(bool isAbstract) => throw null; - public void BatchSize(int value) => throw null; - public void Catalog(string catalogName) => throw null; - NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; } - public void DynamicInsert(bool value) => throw null; - public void DynamicUpdate(bool value) => throw null; - public void EntityName(string value) => throw null; - NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; } - public void Extends(string entityOrClassName) => throw null; - public void Extends(System.Type baseType) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public JoinedSubclassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - public void Key(System.Action> keyMapping) => throw null; - public void Lazy(bool value) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; - public void Proxy(System.Type proxy) => throw null; - public void Schema(string schemaName) => throw null; - public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null; - public void SelectBeforeUpdate(bool value) => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Synchronize(params string[] table) => throw null; - public void Table(string tableName) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.JoinedSubclassKeyCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JoinedSubclassKeyCustomizer : NHibernate.Mapping.ByCode.IKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper where TEntity : class - { - public void Column(string columnName) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; set => throw null; } - public void ForeignKey(string foreignKeyName) => throw null; - public JoinedSubclassKeyCustomizer(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public void NotNullable(bool notnull) => throw null; - public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null; - public void PropertyRef(System.Linq.Expressions.Expression> propertyGetter) => throw null; - public void Unique(bool unique) => throw null; - public void Update(bool consideredInUpdateQuery) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ListPropertiesCustomizer<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ListPropertiesCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer, NHibernate.Mapping.ByCode.IListPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public void Index(System.Action listIndexMapping) => throw null; - public ListPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ManyToAnyCustomizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ManyToAnyCustomizer : NHibernate.Mapping.ByCode.IManyToAnyMapper - { - public void Columns(System.Action idColumnMapping, System.Action classColumnMapping) => throw null; - public void IdType() => throw null; - public void IdType(System.Type idType) => throw null; - public void IdType(NHibernate.Type.IType idType) => throw null; - public ManyToAnyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public void MetaType() => throw null; - public void MetaType(System.Type metaType) => throw null; - public void MetaType(NHibernate.Type.IType metaType) => throw null; - public void MetaValue(object value, System.Type entityType) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ManyToManyCustomizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ManyToManyCustomizer : NHibernate.Mapping.ByCode.IManyToManyMapper, NHibernate.Mapping.ByCode.IColumnsMapper - { - public void Class(System.Type entityType) => throw null; - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void EntityName(string entityName) => throw null; - public void ForeignKey(string foreignKeyName) => throw null; - public void Formula(string formula) => throw null; - public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null; - public ManyToManyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; - public void Where(string sqlWhereClause) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.MapKeyComponentCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapKeyComponentCustomizer : NHibernate.Mapping.ByCode.IComponentMapKeyMapper - { - public void ManyToOne(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; - public MapKeyComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public void Property(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; - public void Property(System.Linq.Expressions.Expression> property) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.MapKeyCustomizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapKeyCustomizer : NHibernate.Mapping.ByCode.IMapKeyMapper, NHibernate.Mapping.ByCode.IColumnsMapper - { - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void Formula(string formula) => throw null; - public void Length(int length) => throw null; - public MapKeyCustomizer(NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - public void Type() => throw null; - public void Type(System.Type persistentType) => throw null; - public void Type(NHibernate.Type.IType persistentType) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.MapKeyManyToManyCustomizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapKeyManyToManyCustomizer : NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper, NHibernate.Mapping.ByCode.IColumnsMapper - { - public void Column(string name) => throw null; - public void Column(System.Action columnMapper) => throw null; - public void Columns(params System.Action[] columnMapper) => throw null; - public void ForeignKey(string foreignKeyName) => throw null; - public void Formula(string formula) => throw null; - public MapKeyManyToManyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.MapKeyRelationCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapKeyRelationCustomizer : NHibernate.Mapping.ByCode.IMapKeyRelation - { - public void Component(System.Action> mapping) => throw null; - public void Element(System.Action mapping) => throw null; - public void Element() => throw null; - public void ManyToMany(System.Action mapping) => throw null; - public void ManyToMany() => throw null; - public MapKeyRelationCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.MapPropertiesCustomizer<,,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapPropertiesCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer, NHibernate.Mapping.ByCode.IMapPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public MapPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.NaturalIdCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NaturalIdCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class - { - public NaturalIdCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - protected override void RegisterAnyMapping(System.Linq.Expressions.Expression> property, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class => throw null; - protected override void RegisterComponentMapping(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; - protected override void RegisterManyToOneMapping(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; - protected override void RegisterNoVisiblePropertyMapping(string notVisiblePropertyOrFieldName, System.Action mapping) => throw null; - protected override void RegisterPropertyMapping(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.OneToManyCustomizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OneToManyCustomizer : NHibernate.Mapping.ByCode.IOneToManyMapper - { - public void Class(System.Type entityType) => throw null; - public void EntityName(string entityName) => throw null; - public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null; - public OneToManyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PropertyContainerCustomizer - { - public void Any(string notVisiblePropertyOrFieldName, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class => throw null; - public void Any(System.Linq.Expressions.Expression> property, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class => throw null; - public void Bag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void Bag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping) => throw null; - public void Bag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void Bag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping) => throw null; - public void Component(string notVisiblePropertyOrFieldName, TComponent dynamicComponentTemplate, System.Action> mapping) => throw null; - public void Component(string notVisiblePropertyOrFieldName, System.Action> mapping) => throw null; - public void Component(string notVisiblePropertyOrFieldName) => throw null; - public void Component(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; - public void Component(System.Linq.Expressions.Expression> property) => throw null; - public void Component(System.Linq.Expressions.Expression> property, TComponent dynamicComponentTemplate, System.Action> mapping) => throw null; - public void Component(System.Linq.Expressions.Expression>> property, TComponent dynamicComponentTemplate, System.Action> mapping) where TComponent : class => throw null; - protected internal NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; set => throw null; } - protected internal NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder ExplicitDeclarationsHolder { get => throw null; } - public static System.Reflection.MemberInfo GetPropertyOrFieldMatchingNameOrThrow(string memberName) => throw null; - protected virtual System.Reflection.MemberInfo GetRequiredPropertyOrFieldByName(string memberName) => throw null; - public void IdBag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void IdBag(string notVisiblePropertyOrFieldName, System.Action> collectionMapping) => throw null; - public void IdBag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void IdBag(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping) => throw null; - public void List(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void List(string notVisiblePropertyOrFieldName, System.Action> collectionMapping) => throw null; - public void List(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void List(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping) => throw null; - public void ManyToOne(string notVisiblePropertyOrFieldName, System.Action mapping) where TProperty : class => throw null; - public void ManyToOne(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; - public void ManyToOne(System.Linq.Expressions.Expression> property) where TProperty : class => throw null; - public void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping) => throw null; - public void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void Map(string notVisiblePropertyOrFieldName, System.Action> collectionMapping) => throw null; - public void Map(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping) => throw null; - public void Map(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void Map(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping) => throw null; - public void OneToOne(string notVisiblePropertyOrFieldName, System.Action> mapping) where TProperty : class => throw null; - public void OneToOne(System.Linq.Expressions.Expression> property, System.Action> mapping) where TProperty : class => throw null; - public void Property(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; - public void Property(System.Linq.Expressions.Expression> property) => throw null; - public void Property(string notVisiblePropertyOrFieldName, System.Action mapping) => throw null; - public PropertyContainerCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) => throw null; - protected internal NHibernate.Mapping.ByCode.PropertyPath PropertyPath { get => throw null; set => throw null; } - protected void RegistePropertyMapping(System.Action mapping, params System.Reflection.MemberInfo[] members) => throw null; - protected void RegisterAnyMapping(System.Action mapping, System.Type idTypeOfMetaType, params System.Reflection.MemberInfo[] members) where TProperty : class => throw null; - protected virtual void RegisterAnyMapping(System.Linq.Expressions.Expression> property, System.Type idTypeOfMetaType, System.Action mapping) where TProperty : class => throw null; - protected void RegisterBagMapping(System.Action> collectionMapping, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; - protected virtual void RegisterBagMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - protected void RegisterComponentMapping(System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; - protected virtual void RegisterComponentMapping(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; - protected void RegisterDynamicComponentMapping(System.Type componentType, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; - protected void RegisterDynamicComponentMapping(System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; - protected virtual void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression> property, System.Type componentType, System.Action> mapping) => throw null; - protected virtual void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression> property, System.Action> mapping) => throw null; - protected virtual void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression>> property, System.Type componentType, System.Action> mapping) => throw null; - protected virtual void RegisterDynamicComponentMapping(System.Linq.Expressions.Expression>> property, System.Action> mapping) where TComponent : class => throw null; - protected virtual void RegisterIdBagMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - protected virtual void RegisterIdBagMapping(System.Action> collectionMapping, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; - protected void RegisterListMapping(System.Action> collectionMapping, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; - protected virtual void RegisterListMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - protected void RegisterManyToOneMapping(System.Action mapping, params System.Reflection.MemberInfo[] members) where TProperty : class => throw null; - protected virtual void RegisterManyToOneMapping(System.Linq.Expressions.Expression> property, System.Action mapping) where TProperty : class => throw null; - protected virtual void RegisterMapMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping) => throw null; - protected virtual void RegisterMapMapping(System.Action> collectionMapping, System.Action> keyMapping, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; - protected virtual void RegisterNoVisiblePropertyMapping(string notVisiblePropertyOrFieldName, System.Action mapping) => throw null; - protected void RegisterOneToOneMapping(System.Action> mapping, params System.Reflection.MemberInfo[] members) where TProperty : class => throw null; - protected virtual void RegisterPropertyMapping(System.Linq.Expressions.Expression> property, System.Action mapping) => throw null; - protected void RegisterSetMapping(System.Action> collectionMapping, System.Action> mapping, params System.Reflection.MemberInfo[] members) => throw null; - protected virtual void RegisterSetMapping(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void Set(string notVisiblePropertyOrFieldName, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void Set(string notVisiblePropertyOrFieldName, System.Action> collectionMapping) => throw null; - public void Set(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping, System.Action> mapping) => throw null; - public void Set(System.Linq.Expressions.Expression>> property, System.Action> collectionMapping) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.SetPropertiesCustomizer<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SetPropertiesCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer, NHibernate.Mapping.ByCode.ISetPropertiesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper - { - public SetPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.SubclassCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SubclassCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.ISubclassMapper, NHibernate.Mapping.ByCode.ISubclassAttributesMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class - { - public void Abstract(bool isAbstract) => throw null; - public void BatchSize(int value) => throw null; - NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; } - public void DiscriminatorValue(object value) => throw null; - public void DynamicInsert(bool value) => throw null; - public void DynamicUpdate(bool value) => throw null; - public void EntityName(string value) => throw null; - NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; } - public void Extends(string entityOrClassName) => throw null; - public void Extends(System.Type baseType) => throw null; - public void Filter(string filterName, System.Action filterMapping) => throw null; - public void Join(string splitGroupId, System.Action> splitMapping) => throw null; - public void Lazy(bool value) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; - public void Proxy(System.Type proxy) => throw null; - public void SelectBeforeUpdate(bool value) => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public SubclassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - public void Subselect(string sql) => throw null; - public void Synchronize(params string[] table) => throw null; - } - - // Generated from `NHibernate.Mapping.ByCode.Impl.CustomizersImpl.UnionSubclassCustomizer<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnionSubclassCustomizer : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer, NHibernate.Mapping.ByCode.IUnionSubclassMapper, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper where TEntity : class - { - public void Abstract(bool isAbstract) => throw null; - public void BatchSize(int value) => throw null; - public void Catalog(string catalogName) => throw null; - NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; } - public void DynamicInsert(bool value) => throw null; - public void DynamicUpdate(bool value) => throw null; - public void EntityName(string value) => throw null; - NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; } - public void Extends(string entityOrClassName) => throw null; - public void Extends(System.Type baseType) => throw null; - public void Lazy(bool value) => throw null; - public void Loader(string namedQueryReference) => throw null; - public void Persister() where T : NHibernate.Persister.Entity.IEntityPersister => throw null; - public void Proxy(System.Type proxy) => throw null; - public void Schema(string schemaName) => throw null; - public void SelectBeforeUpdate(bool value) => throw null; - public void SqlDelete(string sql) => throw null; - public void SqlInsert(string sql) => throw null; - public void SqlUpdate(string sql) => throw null; - public void Subselect(string sql) => throw null; - public void Synchronize(params string[] table) => throw null; - public void Table(string tableName) => throw null; - public UnionSubclassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null; - } - - } } } + public abstract class Collection : NHibernate.Mapping.IFetchable, NHibernate.Mapping.IValue, NHibernate.Mapping.IFilterable + { + public object Accept(NHibernate.Mapping.IValueVisitor visitor) => throw null; + public void AddFilter(string name, string condition) => throw null; + public void AddManyToManyFilter(string name, string condition) => throw null; + public int BatchSize { get => throw null; set { } } + public string CacheConcurrencyStrategy { get => throw null; set { } } + public string CacheRegionName { get => throw null; set { } } + protected void CheckGenericArgumentsLength(int expectedLength) => throw null; + public System.Type CollectionPersisterClass { get => throw null; set { } } + public NHibernate.Mapping.Table CollectionTable { get => throw null; set { } } + public virtual NHibernate.Type.CollectionType CollectionType { get => throw null; } + public bool[] ColumnInsertability { get => throw null; } + public System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } + public int ColumnSpan { get => throw null; } + public bool[] ColumnUpdateability { get => throw null; } + public object Comparer { get => throw null; set { } } + public string ComparerClassName { get => throw null; set { } } + public virtual void CreateAllKeys() => throw null; + public void CreateForeignKey() => throw null; + public abstract void CreatePrimaryKey(); + protected Collection(NHibernate.Mapping.PersistentClass owner) => throw null; + public NHibernate.SqlCommand.SqlString CustomSQLDelete { get => throw null; } + public NHibernate.SqlCommand.SqlString CustomSQLDeleteAll { get => throw null; } + public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteAllCheckStyle { get => throw null; } + public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteCheckStyle { get => throw null; } + public NHibernate.SqlCommand.SqlString CustomSQLInsert { get => throw null; } + public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLInsertCheckStyle { get => throw null; } + public NHibernate.SqlCommand.SqlString CustomSQLUpdate { get => throw null; } + public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLUpdateCheckStyle { get => throw null; } + public abstract NHibernate.Type.CollectionType DefaultCollectionType { get; } + public static string DefaultElementColumnName; + public static string DefaultKeyColumnName; + public NHibernate.Mapping.IValue Element { get => throw null; set { } } + public bool ExtraLazy { get => throw null; set { } } + public NHibernate.FetchMode FetchMode { get => throw null; set { } } + public System.Collections.Generic.IDictionary FilterMap { get => throw null; } + public NHibernate.Mapping.Formula Formula { get => throw null; } + public System.Type[] GenericArguments { get => throw null; set { } } + public virtual bool HasFormula { get => throw null; } + public bool HasOrder { get => throw null; } + public bool HasOrphanDelete { get => throw null; set { } } + public virtual bool IsAlternateUniqueKey { get => throw null; } + public virtual bool IsArray { get => throw null; } + public bool IsCustomDeleteAllCallable { get => throw null; } + public bool IsCustomDeleteCallable { get => throw null; } + public bool IsCustomInsertCallable { get => throw null; } + public bool IsCustomUpdateCallable { get => throw null; } + public bool IsGeneric { get => throw null; set { } } + public virtual bool IsIdentified { get => throw null; } + public virtual bool IsIndexed { get => throw null; } + public bool IsInverse { get => throw null; set { } } + public bool IsLazy { get => throw null; set { } } + public virtual bool IsMap { get => throw null; } + public bool IsMutable { get => throw null; set { } } + public bool IsNullable { get => throw null; } + public bool IsOneToMany { get => throw null; } + public bool IsOptimisticLocked { get => throw null; set { } } + public virtual bool IsPrimitiveArray { get => throw null; } + public virtual bool IsSet { get => throw null; } + public bool IsSimpleValue { get => throw null; } + public bool IsSorted { get => throw null; set { } } + public bool IsSubselectLoadable { get => throw null; set { } } + public bool IsUnique { get => throw null; } + public bool IsValid(NHibernate.Engine.IMapping mapping) => throw null; + public NHibernate.Mapping.IKeyValue Key { get => throw null; set { } } + public string LoaderName { get => throw null; set { } } + public System.Collections.Generic.IDictionary ManyToManyFilterMap { get => throw null; } + public string ManyToManyOrdering { get => throw null; set { } } + public string ManyToManyWhere { get => throw null; set { } } + public string OrderBy { get => throw null; set { } } + public NHibernate.Mapping.PersistentClass Owner { get => throw null; set { } } + public string OwnerEntityName { get => throw null; } + public string ReferencedPropertyName { get => throw null; set { } } + public string Role { get => throw null; set { } } + public void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; + public void SetCustomSQLDeleteAll(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; + public void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; + public void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; + public void SetTypeUsingReflection(string className, string propertyName, string access) => throw null; + public System.Collections.Generic.ISet SynchronizedTables { get => throw null; } + public NHibernate.Mapping.Table Table { get => throw null; } + public override string ToString() => throw null; + public NHibernate.Type.IType Type { get => throw null; } + public string TypeName { get => throw null; set { } } + public System.Collections.Generic.IDictionary TypeParameters { get => throw null; set { } } + public virtual void Validate(NHibernate.Engine.IMapping mapping) => throw null; + public string Where { get => throw null; set { } } + } + public class Column : NHibernate.Mapping.ISelectable, System.ICloneable + { + public string CanonicalName { get => throw null; } + public string CheckConstraint { get => throw null; set { } } + public object Clone() => throw null; + public string Comment { get => throw null; set { } } + public Column() => throw null; + public Column(string columnName) => throw null; + public static int DefaultLength; + public static int DefaultPrecision; + public static int DefaultScale; + public string DefaultValue { get => throw null; set { } } + public override bool Equals(object obj) => throw null; + public bool Equals(NHibernate.Mapping.Column column) => throw null; + public string GetAlias(NHibernate.Dialect.Dialect dialect) => throw null; + public string GetAlias(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table) => throw null; + public override int GetHashCode() => throw null; + public string GetQuotedName(NHibernate.Dialect.Dialect d) => throw null; + public string GetQuotedName() => throw null; + public string GetSqlType(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) => throw null; + public NHibernate.SqlTypes.SqlType GetSqlTypeCode(NHibernate.Engine.IMapping mapping) => throw null; + public string GetTemplate(NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null; + public string GetText(NHibernate.Dialect.Dialect dialect) => throw null; + public bool HasCheckConstraint { get => throw null; } + public bool IsCaracteristicsDefined() => throw null; + public bool IsFormula { get => throw null; } + public bool IsLengthDefined() => throw null; + public bool IsNullable { get => throw null; set { } } + public bool IsPrecisionDefined() => throw null; + public bool IsQuoted { get => throw null; set { } } + public bool IsScaleDefined() => throw null; + public bool IsUnique { get => throw null; set { } } + public int Length { get => throw null; set { } } + public string Name { get => throw null; set { } } + public int Precision { get => throw null; set { } } + public int Scale { get => throw null; set { } } + public string SqlType { get => throw null; set { } } + public NHibernate.SqlTypes.SqlType SqlTypeCode { get => throw null; set { } } + public string Text { get => throw null; } + public override string ToString() => throw null; + public int TypeIndex { get => throw null; set { } } + public bool Unique { get => throw null; set { } } + public NHibernate.Mapping.IValue Value { get => throw null; set { } } + } + public class Component : NHibernate.Mapping.SimpleValue, NHibernate.Mapping.IMetaAttributable + { + public override void AddColumn(NHibernate.Mapping.Column column) => throw null; + public void AddProperty(NHibernate.Mapping.Property p) => throw null; + public virtual void AddTuplizer(NHibernate.EntityMode entityMode, string implClassName) => throw null; + public override bool[] ColumnInsertability { get => throw null; } + public override System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } + public override int ColumnSpan { get => throw null; } + public override bool[] ColumnUpdateability { get => throw null; } + public System.Type ComponentClass { get => throw null; set { } } + public string ComponentClassName { get => throw null; set { } } + public Component(NHibernate.Mapping.PersistentClass owner) => throw null; + public Component(NHibernate.Mapping.Table table, NHibernate.Mapping.PersistentClass owner) => throw null; + public Component(NHibernate.Mapping.Collection collection) => throw null; + public Component(NHibernate.Mapping.Component component) => throw null; + public NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName) => throw null; + public NHibernate.Mapping.Property GetProperty(string propertyName) => throw null; + public virtual string GetTuplizerImplClassName(NHibernate.EntityMode mode) => throw null; + public bool HasPocoRepresentation { get => throw null; } + public bool IsDynamic { get => throw null; set { } } + public bool IsEmbedded { get => throw null; set { } } + public bool IsKey { get => throw null; set { } } + public System.Collections.Generic.IDictionary MetaAttributes { get => throw null; set { } } + public NHibernate.Mapping.PersistentClass Owner { get => throw null; set { } } + public NHibernate.Mapping.Property ParentProperty { get => throw null; set { } } + public System.Collections.Generic.IEnumerable PropertyIterator { get => throw null; } + public int PropertySpan { get => throw null; } + public string RoleName { get => throw null; set { } } + public override void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null; + public override string ToString() => throw null; + public virtual System.Collections.Generic.IDictionary TuplizerMap { get => throw null; } + public override NHibernate.Type.IType Type { get => throw null; } + } + public abstract class Constraint : NHibernate.Mapping.IRelationalModel + { + public void AddColumn(NHibernate.Mapping.Column column) => throw null; + public void AddColumns(System.Collections.Generic.IEnumerable columnIterator) => throw null; + public void AddColumns(System.Collections.Generic.IEnumerable columnIterator) => throw null; + public System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } + public System.Collections.Generic.IList Columns { get => throw null; } + public int ColumnSpan { get => throw null; } + protected Constraint() => throw null; + public static string GenerateName(string prefix, NHibernate.Mapping.Table table, NHibernate.Mapping.Table referencedTable, System.Collections.Generic.IEnumerable columns) => throw null; + public virtual bool IsGenerated(NHibernate.Dialect.Dialect dialect) => throw null; + public string Name { get => throw null; set { } } + public abstract string SqlConstraintString(NHibernate.Dialect.Dialect d, string constraintName, string defaultCatalog, string defaultSchema); + public virtual string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null; + public virtual string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; + public NHibernate.Mapping.Table Table { get => throw null; set { } } + public override string ToString() => throw null; + } + public class DenormalizedTable : NHibernate.Mapping.Table + { + public override System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } + public override bool ContainsColumn(NHibernate.Mapping.Column column) => throw null; + public override void CreateForeignKeys() => throw null; + public DenormalizedTable(NHibernate.Mapping.Table includedTable) => throw null; + public override NHibernate.Mapping.Column GetColumn(NHibernate.Mapping.Column column) => throw null; + public override System.Collections.Generic.IEnumerable IndexIterator { get => throw null; } + public override NHibernate.Mapping.PrimaryKey PrimaryKey { get => throw null; set { } } + public override System.Collections.Generic.IEnumerable UniqueKeyIterator { get => throw null; } + } + public class DependantValue : NHibernate.Mapping.SimpleValue + { + public DependantValue(NHibernate.Mapping.Table table, NHibernate.Mapping.IKeyValue prototype) => throw null; + public override bool IsNullable { get => throw null; } + public override bool IsUpdateable { get => throw null; } + public void SetNullable(bool nullable) => throw null; + public void SetTypeUsingReflection(string className, string propertyName) => throw null; + public virtual void SetUpdateable(bool updateable) => throw null; + public override NHibernate.Type.IType Type { get => throw null; } + } + public class ForeignKey : NHibernate.Mapping.Constraint + { + public virtual void AddReferencedColumns(System.Collections.Generic.IEnumerable referencedColumnsIterator) => throw null; + public void AlignColumns() => throw null; + public bool CascadeDeleteEnabled { get => throw null; set { } } + public ForeignKey() => throw null; + public string GeneratedConstraintNamePrefix { get => throw null; } + public bool HasPhysicalConstraint { get => throw null; } + public override bool IsGenerated(NHibernate.Dialect.Dialect dialect) => throw null; + public bool IsReferenceToPrimaryKey { get => throw null; } + public System.Collections.Generic.IList ReferencedColumns { get => throw null; } + public string ReferencedEntityName { get => throw null; set { } } + public NHibernate.Mapping.Table ReferencedTable { get => throw null; set { } } + public override string SqlConstraintString(NHibernate.Dialect.Dialect d, string constraintName, string defaultCatalog, string defaultSchema) => throw null; + public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; + public override string ToString() => throw null; + } + public class Formula : NHibernate.Mapping.ISelectable + { + public Formula() => throw null; + public string FormulaString { get => throw null; set { } } + public string GetAlias(NHibernate.Dialect.Dialect dialect) => throw null; + public string GetAlias(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table) => throw null; + public string GetTemplate(NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null; + public string GetText(NHibernate.Dialect.Dialect dialect) => throw null; + public bool IsFormula { get => throw null; } + public string Text { get => throw null; } + public override string ToString() => throw null; + } + public interface IAuxiliaryDatabaseObject : NHibernate.Mapping.IRelationalModel + { + void AddDialectScope(string dialectName); + bool AppliesToDialect(NHibernate.Dialect.Dialect dialect); + void SetParameterValues(System.Collections.Generic.IDictionary parameters); + } + public class IdentifierBag : NHibernate.Mapping.IdentifierCollection + { + public IdentifierBag(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; + public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; } + } + public abstract class IdentifierCollection : NHibernate.Mapping.Collection + { + public override void CreatePrimaryKey() => throw null; + protected IdentifierCollection(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; + public static string DefaultIdentifierColumnName; + public NHibernate.Mapping.IKeyValue Identifier { get => throw null; set { } } + public override bool IsIdentified { get => throw null; } + public override void Validate(NHibernate.Engine.IMapping mapping) => throw null; + } + public interface IFetchable + { + NHibernate.FetchMode FetchMode { get; set; } + bool IsLazy { get; set; } + } + public interface IFilterable + { + void AddFilter(string name, string condition); + System.Collections.Generic.IDictionary FilterMap { get; } + } + public interface IKeyValue : NHibernate.Mapping.IValue + { + void CreateForeignKeyOfEntity(string entityName); + NHibernate.Id.IIdentifierGenerator CreateIdentifierGenerator(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema, NHibernate.Mapping.RootClass rootClass); + bool IsCascadeDeleteEnabled { get; } + bool IsIdentityColumn(NHibernate.Dialect.Dialect dialect); + bool IsUpdateable { get; } + string NullValue { get; } + } + public interface IMetaAttributable + { + NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName); + System.Collections.Generic.IDictionary MetaAttributes { get; set; } + } + public class Index : NHibernate.Mapping.IRelationalModel + { + public void AddColumn(NHibernate.Mapping.Column column) => throw null; + public void AddColumns(System.Collections.Generic.IEnumerable extraColumns) => throw null; + public static string BuildSqlCreateIndexString(NHibernate.Dialect.Dialect dialect, string name, NHibernate.Mapping.Table table, System.Collections.Generic.IEnumerable columns, bool unique, string defaultCatalog, string defaultSchema) => throw null; + public static string BuildSqlDropIndexString(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table, string name, string defaultCatalog, string defaultSchema) => throw null; + public System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } + public int ColumnSpan { get => throw null; } + public bool ContainsColumn(NHibernate.Mapping.Column column) => throw null; + public Index() => throw null; + public bool IsInherited { get => throw null; set { } } + public string Name { get => throw null; set { } } + public string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null; + public string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; + public NHibernate.Mapping.Table Table { get => throw null; set { } } + public override string ToString() => throw null; + } + public class IndexBackref : NHibernate.Mapping.Property + { + public override bool BackRef { get => throw null; } + public string CollectionRole { get => throw null; set { } } + public IndexBackref() => throw null; + public string EntityName { get => throw null; set { } } + public override bool IsBasicPropertyAccessor { get => throw null; } + protected override NHibernate.Properties.IPropertyAccessor PropertyAccessor { get => throw null; } + } + public abstract class IndexedCollection : NHibernate.Mapping.Collection + { + public override void CreatePrimaryKey() => throw null; + protected IndexedCollection(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; + public static string DefaultIndexColumnName; + public NHibernate.Mapping.SimpleValue Index { get => throw null; set { } } + public override bool IsIndexed { get => throw null; } + public virtual bool IsList { get => throw null; } + public override void Validate(NHibernate.Engine.IMapping mapping) => throw null; + } + public interface IPersistentClassVisitor + { + object Accept(NHibernate.Mapping.PersistentClass clazz); + } + public interface IPersistentClassVisitor where T : NHibernate.Mapping.PersistentClass + { + object Accept(T clazz); + } + public interface IRelationalModel + { + string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema); + string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema); + } + public interface ISelectable + { + string GetAlias(NHibernate.Dialect.Dialect dialect); + string GetAlias(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table); + string GetTemplate(NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry); + string GetText(NHibernate.Dialect.Dialect dialect); + bool IsFormula { get; } + string Text { get; } + } + public interface ISqlCustomizable + { + void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle); + void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle); + void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle); + } + public interface ITableOwner + { + NHibernate.Mapping.Table Table { set; } + } + public interface IValue + { + object Accept(NHibernate.Mapping.IValueVisitor visitor); + bool[] ColumnInsertability { get; } + System.Collections.Generic.IEnumerable ColumnIterator { get; } + int ColumnSpan { get; } + bool[] ColumnUpdateability { get; } + void CreateForeignKey(); + NHibernate.FetchMode FetchMode { get; } + bool HasFormula { get; } + bool IsAlternateUniqueKey { get; } + bool IsNullable { get; } + bool IsSimpleValue { get; } + bool IsValid(NHibernate.Engine.IMapping mapping); + void SetTypeUsingReflection(string className, string propertyName, string accesorName); + NHibernate.Mapping.Table Table { get; } + NHibernate.Type.IType Type { get; } + } + public interface IValueVisitor + { + object Accept(NHibernate.Mapping.IValue visited); + } + public interface IValueVisitor : NHibernate.Mapping.IValueVisitor where T : NHibernate.Mapping.IValue + { + object Accept(T visited); + } + public class Join : NHibernate.Mapping.ISqlCustomizable + { + public void AddProperty(NHibernate.Mapping.Property prop) => throw null; + public bool ContainsProperty(NHibernate.Mapping.Property prop) => throw null; + public void CreateForeignKey() => throw null; + public void CreatePrimaryKey(NHibernate.Dialect.Dialect dialect) => throw null; + public void CreatePrimaryKey() => throw null; + public Join() => throw null; + public NHibernate.SqlCommand.SqlString CustomSQLDelete { get => throw null; } + public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteCheckStyle { get => throw null; } + public NHibernate.SqlCommand.SqlString CustomSQLInsert { get => throw null; } + public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLInsertCheckStyle { get => throw null; } + public NHibernate.SqlCommand.SqlString CustomSQLUpdate { get => throw null; } + public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLUpdateCheckStyle { get => throw null; } + public bool IsCustomDeleteCallable { get => throw null; } + public bool IsCustomInsertCallable { get => throw null; } + public bool IsCustomUpdateCallable { get => throw null; } + public virtual bool IsInverse { get => throw null; set { } } + public bool IsLazy { get => throw null; } + public virtual bool IsOptional { get => throw null; set { } } + public virtual bool IsSequentialSelect { get => throw null; set { } } + public virtual NHibernate.Mapping.IKeyValue Key { get => throw null; set { } } + public virtual NHibernate.Mapping.PersistentClass PersistentClass { get => throw null; set { } } + public System.Collections.Generic.IEnumerable PropertyIterator { get => throw null; } + public int PropertySpan { get => throw null; } + public NHibernate.Mapping.Property RefIdProperty { get => throw null; set { } } + public void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; + public void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; + public void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; + public virtual NHibernate.Mapping.Table Table { get => throw null; set { } } + } + public class JoinedSubclass : NHibernate.Mapping.Subclass, NHibernate.Mapping.ITableOwner + { + public JoinedSubclass(NHibernate.Mapping.PersistentClass superclass) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; + public override NHibernate.Mapping.IKeyValue Key { get => throw null; set { } } + public override NHibernate.Mapping.Table Table { get => throw null; } + NHibernate.Mapping.Table NHibernate.Mapping.ITableOwner.Table { set { } } + public override void Validate(NHibernate.Engine.IMapping mapping) => throw null; + } + public class List : NHibernate.Mapping.IndexedCollection + { + public int BaseIndex { get => throw null; set { } } + public List(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; + public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; } + public override bool IsList { get => throw null; } + } + public class ManyToOne : NHibernate.Mapping.ToOne + { + public override void CreateForeignKey() => throw null; + public void CreatePropertyRefConstraints(System.Collections.Generic.IDictionary persistentClasses) => throw null; + public ManyToOne(NHibernate.Mapping.Table table) : base(default(NHibernate.Mapping.Table)) => throw null; + public bool IsIgnoreNotFound { get => throw null; set { } } + public bool IsLogicalOneToOne { get => throw null; set { } } + public string PropertyName { get => throw null; set { } } + public override NHibernate.Type.IType Type { get => throw null; } + } + public class Map : NHibernate.Mapping.IndexedCollection + { + public override NHibernate.Type.CollectionType CollectionType { get => throw null; } + public override void CreateAllKeys() => throw null; + public Map(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; + public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; } + public override bool IsMap { get => throw null; } + } + public class MetaAttribute + { + public void AddValue(string value) => throw null; + public void AddValues(System.Collections.Generic.IEnumerable range) => throw null; + public MetaAttribute(string name) => throw null; + public bool IsMultiValued { get => throw null; } + public string Name { get => throw null; } + public override string ToString() => throw null; + public string Value { get => throw null; } + public System.Collections.Generic.IList Values { get => throw null; } + } + public class OneToMany : NHibernate.Mapping.IValue + { + public object Accept(NHibernate.Mapping.IValueVisitor visitor) => throw null; + public NHibernate.Mapping.PersistentClass AssociatedClass { get => throw null; set { } } + public bool[] ColumnInsertability { get => throw null; } + public System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } + public int ColumnSpan { get => throw null; } + public bool[] ColumnUpdateability { get => throw null; } + public void CreateForeignKey() => throw null; + public OneToMany(NHibernate.Mapping.PersistentClass owner) => throw null; + public NHibernate.FetchMode FetchMode { get => throw null; } + public NHibernate.Mapping.Formula Formula { get => throw null; } + public bool HasFormula { get => throw null; } + public bool IsAlternateUniqueKey { get => throw null; } + public bool IsIgnoreNotFound { get => throw null; set { } } + public bool IsNullable { get => throw null; } + public bool IsSimpleValue { get => throw null; } + public bool IsUnique { get => throw null; } + public bool IsValid(NHibernate.Engine.IMapping mapping) => throw null; + public string ReferencedEntityName { get => throw null; set { } } + public NHibernate.Mapping.Table ReferencingTable { get => throw null; } + public void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null; + public NHibernate.Mapping.Table Table { get => throw null; } + public NHibernate.Type.IType Type { get => throw null; } + } + public class OneToOne : NHibernate.Mapping.ToOne + { + public override System.Collections.Generic.IEnumerable ConstraintColumns { get => throw null; } + public override void CreateForeignKey() => throw null; + public OneToOne(NHibernate.Mapping.Table table, NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.Table)) => throw null; + public string EntityName { get => throw null; set { } } + public NHibernate.Type.ForeignKeyDirection ForeignKeyType { get => throw null; set { } } + public NHibernate.Mapping.IKeyValue Identifier { get => throw null; set { } } + public bool IsConstrained { get => throw null; set { } } + public override bool IsNullable { get => throw null; } + public string PropertyName { get => throw null; set { } } + public override NHibernate.Type.IType Type { get => throw null; } + } + public abstract class PersistentClass : NHibernate.Mapping.IFilterable, NHibernate.Mapping.IMetaAttributable, NHibernate.Mapping.ISqlCustomizable + { + public abstract object Accept(NHibernate.Mapping.IPersistentClassVisitor mv); + public void AddFilter(string name, string condition) => throw null; + public virtual void AddJoin(NHibernate.Mapping.Join join) => throw null; + public virtual void AddProperty(NHibernate.Mapping.Property p) => throw null; + public virtual void AddSubclass(NHibernate.Mapping.Subclass subclass) => throw null; + public virtual void AddSubclassJoin(NHibernate.Mapping.Join join) => throw null; + public virtual void AddSubclassProperty(NHibernate.Mapping.Property p) => throw null; + public virtual void AddSubclassTable(NHibernate.Mapping.Table table) => throw null; + public void AddSynchronizedTable(string table) => throw null; + public void AddTuplizer(NHibernate.EntityMode entityMode, string implClass) => throw null; + public int? BatchSize { get => throw null; set { } } + public abstract string CacheConcurrencyStrategy { get; set; } + protected void CheckColumnDuplication(System.Collections.Generic.ISet distinctColumns, System.Collections.Generic.IEnumerable columns) => throw null; + protected virtual void CheckColumnDuplication() => throw null; + protected void CheckPropertyColumnDuplication(System.Collections.Generic.ISet distinctColumns, System.Collections.Generic.IEnumerable properties) => throw null; + public string ClassName { get => throw null; set { } } + public virtual void CreatePrimaryKey(NHibernate.Dialect.Dialect dialect) => throw null; + public virtual void CreatePrimaryKey() => throw null; + protected PersistentClass() => throw null; + public NHibernate.SqlCommand.SqlString CustomSQLDelete { get => throw null; } + public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteCheckStyle { get => throw null; } + public NHibernate.SqlCommand.SqlString CustomSQLInsert { get => throw null; } + public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLInsertCheckStyle { get => throw null; } + public NHibernate.SqlCommand.SqlString CustomSQLUpdate { get => throw null; } + public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLUpdateCheckStyle { get => throw null; } + public virtual System.Collections.Generic.IEnumerable DirectSubclasses { get => throw null; } + public abstract NHibernate.Mapping.IValue Discriminator { get; set; } + protected virtual System.Collections.Generic.IEnumerable DiscriminatorColumnIterator { get => throw null; } + public virtual string DiscriminatorValue { get => throw null; set { } } + public virtual bool DynamicInsert { get => throw null; set { } } + public virtual bool DynamicUpdate { get => throw null; set { } } + public virtual string EntityName { get => throw null; set { } } + public abstract System.Type EntityPersisterClass { get; set; } + public virtual System.Collections.Generic.IDictionary FilterMap { get => throw null; } + public virtual int GetJoinNumber(NHibernate.Mapping.Property prop) => throw null; + public NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName) => throw null; + public NHibernate.Mapping.Property GetProperty(string propertyName) => throw null; + public NHibernate.Mapping.Property GetRecursiveProperty(string propertyPath) => throw null; + public NHibernate.Mapping.Property GetReferencedProperty(string propertyPath) => throw null; + public virtual string GetTuplizerImplClassName(NHibernate.EntityMode mode) => throw null; + public abstract bool HasEmbeddedIdentifier { get; set; } + public bool HasIdentifierMapper { get => throw null; } + public abstract bool HasIdentifierProperty { get; } + public bool HasNaturalId() => throw null; + public bool HasPocoRepresentation { get => throw null; } + public virtual bool HasSubclasses { get => throw null; } + public virtual bool HasSubselectLoadableCollections { get => throw null; set { } } + public abstract NHibernate.Mapping.IKeyValue Identifier { get; set; } + public virtual NHibernate.Mapping.Component IdentifierMapper { get => throw null; set { } } + public abstract NHibernate.Mapping.Property IdentifierProperty { get; set; } + public virtual NHibernate.Mapping.Table IdentityTable { get => throw null; } + public bool? IsAbstract { get => throw null; set { } } + public virtual bool IsClassOrSuperclassJoin(NHibernate.Mapping.Join join) => throw null; + public virtual bool IsClassOrSuperclassTable(NHibernate.Mapping.Table closureTable) => throw null; + public bool IsCustomDeleteCallable { get => throw null; } + public bool IsCustomInsertCallable { get => throw null; } + public bool IsCustomUpdateCallable { get => throw null; } + public abstract bool IsDiscriminatorInsertable { get; set; } + public bool IsDiscriminatorValueNotNull { get => throw null; } + public bool IsDiscriminatorValueNull { get => throw null; } + public abstract bool IsExplicitPolymorphism { get; set; } + public virtual bool IsForceDiscriminator { get => throw null; set { } } + public abstract bool IsInherited { get; } + public abstract bool IsJoinedSubclass { get; } + public bool IsLazy { get => throw null; set { } } + public abstract bool IsLazyPropertiesCacheable { get; } + public abstract bool IsMutable { get; set; } + public abstract bool IsPolymorphic { get; set; } + public abstract bool IsVersioned { get; } + public virtual System.Collections.Generic.IEnumerable JoinClosureIterator { get => throw null; } + public virtual int JoinClosureSpan { get => throw null; } + public virtual System.Collections.Generic.IEnumerable JoinIterator { get => throw null; } + public abstract NHibernate.Mapping.IKeyValue Key { get; set; } + public abstract System.Collections.Generic.IEnumerable KeyClosureIterator { get; } + public string LoaderName { get => throw null; set { } } + public virtual System.Type MappedClass { get => throw null; } + public System.Collections.Generic.IDictionary MetaAttributes { get => throw null; set { } } + protected virtual System.Collections.Generic.IEnumerable NonDuplicatedPropertyIterator { get => throw null; } + public static string NotNullDiscriminatorMapping; + public static string NullDiscriminatorMapping; + public virtual NHibernate.Engine.Versioning.OptimisticLock OptimisticLockMode { get => throw null; set { } } + public void PrepareTemporaryTables(NHibernate.Engine.IMapping mapping, NHibernate.Dialect.Dialect dialect) => throw null; + public abstract System.Collections.Generic.IEnumerable PropertyClosureIterator { get; } + public virtual int PropertyClosureSpan { get => throw null; } + public virtual System.Collections.Generic.IEnumerable PropertyIterator { get => throw null; } + public virtual System.Type ProxyInterface { get => throw null; } + public string ProxyInterfaceName { get => throw null; set { } } + public virtual System.Collections.Generic.IEnumerable ReferenceablePropertyIterator { get => throw null; } + public abstract NHibernate.Mapping.RootClass RootClazz { get; } + public abstract NHibernate.Mapping.Table RootTable { get; } + public bool SelectBeforeUpdate { get => throw null; set { } } + public void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; + public void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; + public void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null; + public virtual System.Collections.Generic.IEnumerable SubclassClosureIterator { get => throw null; } + public abstract int SubclassId { get; } + public virtual System.Collections.Generic.IEnumerable SubclassIterator { get => throw null; } + public virtual System.Collections.Generic.IEnumerable SubclassJoinClosureIterator { get => throw null; } + public virtual System.Collections.Generic.IEnumerable SubclassPropertyClosureIterator { get => throw null; } + public virtual int SubclassSpan { get => throw null; } + public virtual System.Collections.Generic.IEnumerable SubclassTableClosureIterator { get => throw null; } + public abstract NHibernate.Mapping.PersistentClass Superclass { get; set; } + public virtual System.Collections.Generic.ISet SynchronizedTables { get => throw null; } + public abstract NHibernate.Mapping.Table Table { get; } + public abstract System.Collections.Generic.IEnumerable TableClosureIterator { get; } + public string TemporaryIdTableDDL { get => throw null; } + public string TemporaryIdTableName { get => throw null; } + public override string ToString() => throw null; + public virtual System.Collections.Generic.IDictionary TuplizerMap { get => throw null; } + public virtual System.Collections.Generic.IEnumerable UnjoinedPropertyIterator { get => throw null; } + public virtual void Validate(NHibernate.Engine.IMapping mapping) => throw null; + public abstract NHibernate.Mapping.Property Version { get; set; } + public abstract string Where { get; set; } + } + public class PrimaryKey : NHibernate.Mapping.Constraint + { + public PrimaryKey() => throw null; + public string SqlConstraintString(NHibernate.Dialect.Dialect d, string defaultSchema) => throw null; + public override string SqlConstraintString(NHibernate.Dialect.Dialect d, string constraintName, string defaultCatalog, string defaultSchema) => throw null; + public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; + } + public class PrimitiveArray : NHibernate.Mapping.Array + { + public PrimitiveArray(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; + public override bool IsPrimitiveArray { get => throw null; } + } + public class Property : NHibernate.Mapping.IMetaAttributable + { + public virtual bool BackRef { get => throw null; } + public string Cascade { get => throw null; set { } } + public NHibernate.Engine.CascadeStyle CascadeStyle { get => throw null; } + public System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } + public int ColumnSpan { get => throw null; } + public Property() => throw null; + public Property(NHibernate.Mapping.IValue propertyValue) => throw null; + public NHibernate.Mapping.PropertyGeneration Generation { get => throw null; set { } } + public NHibernate.Properties.IGetter GetGetter(System.Type clazz) => throw null; + public NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName) => throw null; + public NHibernate.Properties.ISetter GetSetter(System.Type clazz) => throw null; + public virtual bool IsBasicPropertyAccessor { get => throw null; } + public bool IsComposite { get => throw null; } + public bool IsEntityRelation { get => throw null; } + public bool IsInsertable { get => throw null; set { } } + public bool IsLazy { get => throw null; set { } } + public bool IsNaturalIdentifier { get => throw null; set { } } + public bool IsNullable { get => throw null; } + public bool IsOptimisticLocked { get => throw null; set { } } + public bool IsOptional { get => throw null; set { } } + public bool IsSelectable { get => throw null; set { } } + public bool IsUpdateable { get => throw null; set { } } + public bool IsValid(NHibernate.Engine.IMapping mapping) => throw null; + public string LazyGroup { get => throw null; set { } } + public System.Collections.Generic.IDictionary MetaAttributes { get => throw null; set { } } + public string Name { get => throw null; set { } } + public string NullValue { get => throw null; } + public NHibernate.Mapping.PersistentClass PersistentClass { get => throw null; set { } } + protected virtual NHibernate.Properties.IPropertyAccessor PropertyAccessor { get => throw null; } + public string PropertyAccessorName { get => throw null; set { } } + public NHibernate.Type.IType Type { get => throw null; } + public bool UnwrapProxy { get => throw null; set { } } + public NHibernate.Mapping.IValue Value { get => throw null; set { } } + } + public enum PropertyGeneration + { + Never = 0, + Insert = 1, + Always = 2, + } + public class ReferenceDependantValue : NHibernate.Mapping.DependantValue + { + public override void CreateForeignKeyOfEntity(string entityName) => throw null; + public ReferenceDependantValue(NHibernate.Mapping.Table table, NHibernate.Mapping.SimpleValue prototype) : base(default(NHibernate.Mapping.Table), default(NHibernate.Mapping.IKeyValue)) => throw null; + public System.Collections.Generic.IEnumerable ReferenceColumns { get => throw null; } + } + public class RootClass : NHibernate.Mapping.PersistentClass, NHibernate.Mapping.ITableOwner + { + public override object Accept(NHibernate.Mapping.IPersistentClassVisitor mv) => throw null; + public override void AddSubclass(NHibernate.Mapping.Subclass subclass) => throw null; + public override string CacheConcurrencyStrategy { get => throw null; set { } } + public string CacheRegionName { get => throw null; set { } } + public RootClass() => throw null; + public static string DefaultDiscriminatorColumnName; + public static string DefaultIdentifierColumnName; + public override NHibernate.Mapping.IValue Discriminator { get => throw null; set { } } + public override System.Type EntityPersisterClass { get => throw null; set { } } + public override bool HasEmbeddedIdentifier { get => throw null; set { } } + public override bool HasIdentifierProperty { get => throw null; } + public override NHibernate.Mapping.IKeyValue Identifier { get => throw null; set { } } + public override NHibernate.Mapping.Property IdentifierProperty { get => throw null; set { } } + public virtual System.Collections.Generic.ISet IdentityTables { get => throw null; } + public override bool IsDiscriminatorInsertable { get => throw null; set { } } + public override bool IsExplicitPolymorphism { get => throw null; set { } } + public override bool IsForceDiscriminator { get => throw null; set { } } + public override bool IsInherited { get => throw null; } + public override bool IsJoinedSubclass { get => throw null; } + public override bool IsLazyPropertiesCacheable { get => throw null; } + public override bool IsMutable { get => throw null; set { } } + public override bool IsPolymorphic { get => throw null; set { } } + public override bool IsVersioned { get => throw null; } + public override NHibernate.Mapping.IKeyValue Key { get => throw null; set { } } + public override System.Collections.Generic.IEnumerable KeyClosureIterator { get => throw null; } + public override System.Collections.Generic.IEnumerable PropertyClosureIterator { get => throw null; } + public override NHibernate.Mapping.RootClass RootClazz { get => throw null; } + public override NHibernate.Mapping.Table RootTable { get => throw null; } + public void SetLazyPropertiesCacheable(bool isLazyPropertiesCacheable) => throw null; + public override int SubclassId { get => throw null; } + public override NHibernate.Mapping.PersistentClass Superclass { get => throw null; set { } } + public override NHibernate.Mapping.Table Table { get => throw null; } + NHibernate.Mapping.Table NHibernate.Mapping.ITableOwner.Table { set { } } + public override System.Collections.Generic.IEnumerable TableClosureIterator { get => throw null; } + public override void Validate(NHibernate.Engine.IMapping mapping) => throw null; + public override NHibernate.Mapping.Property Version { get => throw null; set { } } + public override string Where { get => throw null; set { } } + } + [System.Flags] + public enum SchemaAction + { + None = 0, + Drop = 1, + Update = 2, + Export = 4, + Validate = 8, + All = 15, + } + public class Set : NHibernate.Mapping.Collection + { + public override void CreatePrimaryKey() => throw null; + public Set(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; + public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; } + public override bool IsSet { get => throw null; } + } + public class SimpleAuxiliaryDatabaseObject : NHibernate.Mapping.AbstractAuxiliaryDatabaseObject + { + public SimpleAuxiliaryDatabaseObject(string sqlCreateString, string sqlDropString) => throw null; + public SimpleAuxiliaryDatabaseObject(string sqlCreateString, string sqlDropString, System.Collections.Generic.HashSet dialectScopes) => throw null; + public override string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null; + public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; + } + public class SimpleValue : NHibernate.Mapping.IKeyValue, NHibernate.Mapping.IValue + { + public virtual object Accept(NHibernate.Mapping.IValueVisitor visitor) => throw null; + public virtual void AddColumn(NHibernate.Mapping.Column column) => throw null; + public virtual void AddFormula(NHibernate.Mapping.Formula formula) => throw null; + public virtual bool[] ColumnInsertability { get => throw null; } + public virtual System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } + public virtual int ColumnSpan { get => throw null; } + public virtual bool[] ColumnUpdateability { get => throw null; } + public virtual System.Collections.Generic.IEnumerable ConstraintColumns { get => throw null; } + public virtual void CreateForeignKey() => throw null; + public virtual void CreateForeignKeyOfEntity(string entityName) => throw null; + public NHibernate.Id.IIdentifierGenerator CreateIdentifierGenerator(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema, NHibernate.Mapping.RootClass rootClass) => throw null; + public SimpleValue() => throw null; + public SimpleValue(NHibernate.Mapping.Table table) => throw null; + public virtual NHibernate.FetchMode FetchMode { get => throw null; set { } } + public string ForeignKeyName { get => throw null; set { } } + public bool HasFormula { get => throw null; } + public System.Collections.Generic.IDictionary IdentifierGeneratorProperties { get => throw null; set { } } + public string IdentifierGeneratorStrategy { get => throw null; set { } } + public bool IsAlternateUniqueKey { get => throw null; set { } } + public bool IsCascadeDeleteEnabled { get => throw null; set { } } + public virtual bool IsComposite { get => throw null; } + public bool IsIdentityColumn(NHibernate.Dialect.Dialect dialect) => throw null; + public virtual bool IsNullable { get => throw null; } + public bool IsSimpleValue { get => throw null; } + public virtual bool IsTypeSpecified { get => throw null; } + public virtual bool IsUpdateable { get => throw null; } + public virtual bool IsValid(NHibernate.Engine.IMapping mapping) => throw null; + public string NullValue { get => throw null; set { } } + public virtual void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null; + public NHibernate.Mapping.Table Table { get => throw null; set { } } + public override string ToString() => throw null; + public virtual NHibernate.Type.IType Type { get => throw null; } + public string TypeName { get => throw null; set { } } + public System.Collections.Generic.IDictionary TypeParameters { get => throw null; set { } } + } + public class SingleTableSubclass : NHibernate.Mapping.Subclass + { + public SingleTableSubclass(NHibernate.Mapping.PersistentClass superclass) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; + protected override System.Collections.Generic.IEnumerable DiscriminatorColumnIterator { get => throw null; } + protected override System.Collections.Generic.IEnumerable NonDuplicatedPropertyIterator { get => throw null; } + public override void Validate(NHibernate.Engine.IMapping mapping) => throw null; + } + public class Subclass : NHibernate.Mapping.PersistentClass + { + public override object Accept(NHibernate.Mapping.IPersistentClassVisitor mv) => throw null; + public override void AddJoin(NHibernate.Mapping.Join join) => throw null; + public override void AddProperty(NHibernate.Mapping.Property p) => throw null; + public override void AddSubclassJoin(NHibernate.Mapping.Join join) => throw null; + public override void AddSubclassProperty(NHibernate.Mapping.Property p) => throw null; + public override void AddSubclassTable(NHibernate.Mapping.Table table) => throw null; + public override string CacheConcurrencyStrategy { get => throw null; set { } } + public void CreateForeignKey() => throw null; + public Subclass(NHibernate.Mapping.PersistentClass superclass) => throw null; + public override NHibernate.Mapping.IValue Discriminator { get => throw null; set { } } + public override System.Type EntityPersisterClass { get => throw null; set { } } + public override System.Collections.Generic.IDictionary FilterMap { get => throw null; } + public override string GetTuplizerImplClassName(NHibernate.EntityMode mode) => throw null; + public override bool HasEmbeddedIdentifier { get => throw null; set { } } + public override bool HasIdentifierProperty { get => throw null; } + public override bool HasSubselectLoadableCollections { get => throw null; set { } } + public override NHibernate.Mapping.IKeyValue Identifier { get => throw null; set { } } + public override NHibernate.Mapping.Component IdentifierMapper { get => throw null; } + public override NHibernate.Mapping.Property IdentifierProperty { get => throw null; set { } } + public override bool IsClassOrSuperclassJoin(NHibernate.Mapping.Join join) => throw null; + public override bool IsClassOrSuperclassTable(NHibernate.Mapping.Table closureTable) => throw null; + public override bool IsDiscriminatorInsertable { get => throw null; set { } } + public override bool IsExplicitPolymorphism { get => throw null; set { } } + public override bool IsForceDiscriminator { get => throw null; } + public override bool IsInherited { get => throw null; } + public override bool IsJoinedSubclass { get => throw null; } + public override bool IsLazyPropertiesCacheable { get => throw null; } + public override bool IsMutable { get => throw null; set { } } + public override bool IsPolymorphic { get => throw null; set { } } + public override bool IsVersioned { get => throw null; } + public override System.Collections.Generic.IEnumerable JoinClosureIterator { get => throw null; } + public override int JoinClosureSpan { get => throw null; } + public override NHibernate.Mapping.IKeyValue Key { get => throw null; set { } } + public override System.Collections.Generic.IEnumerable KeyClosureIterator { get => throw null; } + public override NHibernate.Engine.Versioning.OptimisticLock OptimisticLockMode { get => throw null; } + public override System.Collections.Generic.IEnumerable PropertyClosureIterator { get => throw null; } + public override int PropertyClosureSpan { get => throw null; } + public override NHibernate.Mapping.RootClass RootClazz { get => throw null; } + public override NHibernate.Mapping.Table RootTable { get => throw null; } + public override int SubclassId { get => throw null; } + public override NHibernate.Mapping.PersistentClass Superclass { get => throw null; set { } } + public override System.Collections.Generic.ISet SynchronizedTables { get => throw null; } + public override NHibernate.Mapping.Table Table { get => throw null; } + public override System.Collections.Generic.IEnumerable TableClosureIterator { get => throw null; } + public override System.Collections.Generic.IDictionary TuplizerMap { get => throw null; } + public override NHibernate.Mapping.Property Version { get => throw null; set { } } + public override string Where { get => throw null; set { } } + } + public class Table : NHibernate.Mapping.IRelationalModel + { + public void AddCheckConstraint(string constraint) => throw null; + public void AddColumn(NHibernate.Mapping.Column column) => throw null; + public NHibernate.Mapping.Index AddIndex(NHibernate.Mapping.Index index) => throw null; + public NHibernate.Mapping.UniqueKey AddUniqueKey(NHibernate.Mapping.UniqueKey uniqueKey) => throw null; + public string Catalog { get => throw null; set { } } + public System.Collections.Generic.IEnumerable CheckConstraintsIterator { get => throw null; } + public virtual System.Collections.Generic.IEnumerable ColumnIterator { get => throw null; } + public int ColumnSpan { get => throw null; } + public string Comment { get => throw null; set { } } + public virtual bool ContainsColumn(NHibernate.Mapping.Column column) => throw null; + public virtual NHibernate.Mapping.ForeignKey CreateForeignKey(string keyName, System.Collections.Generic.IEnumerable keyColumns, string referencedEntityName) => throw null; + public virtual NHibernate.Mapping.ForeignKey CreateForeignKey(string keyName, System.Collections.Generic.IEnumerable keyColumns, string referencedEntityName, System.Collections.Generic.IEnumerable referencedColumns) => throw null; + public virtual void CreateForeignKeys() => throw null; + public virtual NHibernate.Mapping.UniqueKey CreateUniqueKey(System.Collections.Generic.IList keyColumns) => throw null; + public Table() => throw null; + public Table(string name) => throw null; + public System.Collections.Generic.IEnumerable ForeignKeyIterator { get => throw null; } + public NHibernate.Mapping.Column GetColumn(int n) => throw null; + public virtual NHibernate.Mapping.Column GetColumn(NHibernate.Mapping.Column column) => throw null; + public NHibernate.Mapping.Index GetIndex(string indexName) => throw null; + public NHibernate.Mapping.Index GetOrCreateIndex(string indexName) => throw null; + public NHibernate.Mapping.UniqueKey GetOrCreateUniqueKey(string keyName) => throw null; + public string GetQualifiedName(NHibernate.Dialect.Dialect dialect) => throw null; + public virtual string GetQualifiedName(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; + public string GetQuotedCatalog() => throw null; + public string GetQuotedCatalog(NHibernate.Dialect.Dialect dialect) => throw null; + public string GetQuotedCatalog(NHibernate.Dialect.Dialect dialect, string defaultQuotedCatalog) => throw null; + public string GetQuotedName() => throw null; + public string GetQuotedName(NHibernate.Dialect.Dialect dialect) => throw null; + public string GetQuotedSchema() => throw null; + public string GetQuotedSchema(NHibernate.Dialect.Dialect dialect) => throw null; + public string GetQuotedSchema(NHibernate.Dialect.Dialect dialect, string defaultQuotedSchema) => throw null; + public string GetQuotedSchemaName(NHibernate.Dialect.Dialect dialect) => throw null; + public NHibernate.Mapping.UniqueKey GetUniqueKey(string keyName) => throw null; + public bool HasDenormalizedTables { get => throw null; } + public bool HasPrimaryKey { get => throw null; } + public NHibernate.Mapping.IKeyValue IdentifierValue { get => throw null; set { } } + public virtual System.Collections.Generic.IEnumerable IndexIterator { get => throw null; } + public bool IsAbstract { get => throw null; set { } } + public bool IsAbstractUnionTable { get => throw null; } + public bool IsCatalogQuoted { get => throw null; } + public bool IsPhysicalTable { get => throw null; } + public bool IsQuoted { get => throw null; set { } } + public bool IsSchemaQuoted { get => throw null; } + public bool IsSubselect { get => throw null; } + public string Name { get => throw null; set { } } + public virtual NHibernate.Mapping.PrimaryKey PrimaryKey { get => throw null; set { } } + public string RowId { get => throw null; set { } } + public string Schema { get => throw null; set { } } + public NHibernate.Mapping.SchemaAction SchemaActions { get => throw null; set { } } + public void SetIdentifierValue(NHibernate.Mapping.SimpleValue identifierValue) => throw null; + public string[] SqlAlterStrings(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, NHibernate.Dialect.Schema.ITableMetadata tableInfo, string defaultCatalog, string defaultSchema) => throw null; + public virtual string[] SqlCommentStrings(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; + public string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null; + public string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; + public virtual string SqlTemporaryTableCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) => throw null; + public string Subselect { get => throw null; set { } } + public override string ToString() => throw null; + public string UniqueColumnString(System.Collections.IEnumerable uniqueColumns) => throw null; + public string UniqueColumnString(System.Collections.IEnumerable iterator, string referencedEntityName) => throw null; + public int UniqueInteger { get => throw null; set { } } + public virtual System.Collections.Generic.IEnumerable UniqueKeyIterator { get => throw null; } + public System.Collections.Generic.IEnumerable ValidateColumns(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping, NHibernate.Dialect.Schema.ITableMetadata tableInfo) => throw null; + } + public abstract class ToOne : NHibernate.Mapping.SimpleValue, NHibernate.Mapping.IFetchable + { + public abstract override void CreateForeignKey(); + public ToOne(NHibernate.Mapping.Table table) => throw null; + public override NHibernate.FetchMode FetchMode { get => throw null; set { } } + public bool IsLazy { get => throw null; set { } } + public override bool IsTypeSpecified { get => throw null; } + public override bool IsValid(NHibernate.Engine.IMapping mapping) => throw null; + public string ReferencedEntityName { get => throw null; set { } } + public string ReferencedPropertyName { get => throw null; set { } } + public override void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null; + public abstract override NHibernate.Type.IType Type { get; } + public bool UnwrapProxy { get => throw null; set { } } + } + public class TypeDef + { + public TypeDef(string typeClass, System.Collections.Generic.IDictionary parameters) => throw null; + public System.Collections.Generic.IDictionary Parameters { get => throw null; } + public string TypeClass { get => throw null; } + } + public class UnionSubclass : NHibernate.Mapping.Subclass, NHibernate.Mapping.ITableOwner + { + public UnionSubclass(NHibernate.Mapping.PersistentClass superclass) : base(default(NHibernate.Mapping.PersistentClass)) => throw null; + public override NHibernate.Mapping.Table IdentityTable { get => throw null; } + protected override System.Collections.Generic.IEnumerable NonDuplicatedPropertyIterator { get => throw null; } + NHibernate.Mapping.Table NHibernate.Mapping.ITableOwner.Table { set { } } + public override NHibernate.Mapping.Table Table { get => throw null; } + } + public class UniqueKey : NHibernate.Mapping.Constraint + { + public UniqueKey() => throw null; + public override bool IsGenerated(NHibernate.Dialect.Dialect dialect) => throw null; + public string SqlConstraintString(NHibernate.Dialect.Dialect dialect) => throw null; + public override string SqlConstraintString(NHibernate.Dialect.Dialect dialect, string constraintName, string defaultCatalog, string defaultSchema) => throw null; + public override string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null; + public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null; + } + } + public class MappingException : NHibernate.HibernateException + { + public MappingException(string message) => throw null; + public MappingException(System.Exception innerException) => throw null; + public MappingException(string message, System.Exception innerException) => throw null; + protected MappingException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } namespace Metadata { - // Generated from `NHibernate.Metadata.IClassMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IClassMetadata { string EntityName { get; } @@ -27526,8 +23437,6 @@ namespace NHibernate void SetPropertyValues(object entity, object[] values); int VersionProperty { get; } } - - // Generated from `NHibernate.Metadata.ICollectionMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionMetadata { NHibernate.Type.IType ElementType { get; } @@ -27539,11 +23448,9 @@ namespace NHibernate NHibernate.Type.IType KeyType { get; } string Role { get; } } - } namespace Multi { - // Generated from `NHibernate.Multi.CriteriaBatchItem<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CriteriaBatchItem : NHibernate.Multi.QueryBatchItemBase { public CriteriaBatchItem(NHibernate.ICriteria query) => throw null; @@ -27552,8 +23459,6 @@ namespace NHibernate protected override System.Collections.Generic.IList GetResultsNonBatched() => throw null; protected override System.Threading.Tasks.Task> GetResultsNonBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Multi.ICachingInformation` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICachingInformation { NHibernate.Cache.QueryKey CacheKey { get; } @@ -27567,35 +23472,20 @@ namespace NHibernate void SetCacheBatcher(NHibernate.Cache.CacheBatcher cacheBatcher); void SetCachedResult(System.Collections.IList result); } - - // Generated from `NHibernate.Multi.ICachingInformationWithFetches` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - internal interface ICachingInformationWithFetches - { - NHibernate.Type.IType[] CacheTypes { get; } - } - - // Generated from `NHibernate.Multi.ILinqBatchItem` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - internal interface ILinqBatchItem - { - } - - // Generated from `NHibernate.Multi.IQueryBatch` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IQueryBatch { - void Add(string key, NHibernate.Multi.IQueryBatchItem query); void Add(NHibernate.Multi.IQueryBatchItem query); + void Add(string key, NHibernate.Multi.IQueryBatchItem query); void Execute(); - System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); NHibernate.FlushMode? FlushMode { get; set; } - System.Collections.Generic.IList GetResult(string querykey); System.Collections.Generic.IList GetResult(int queryIndex); - System.Threading.Tasks.Task> GetResultAsync(string querykey, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task> GetResultAsync(int queryIndex, System.Threading.CancellationToken cancellationToken); + System.Collections.Generic.IList GetResult(string querykey); + System.Threading.Tasks.Task> GetResultAsync(int queryIndex, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetResultAsync(string querykey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); bool IsExecutedOrEmpty { get; } int? Timeout { get; set; } } - - // Generated from `NHibernate.Multi.IQueryBatchItem` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IQueryBatchItem { System.Collections.Generic.IEnumerable CachingInformation { get; } @@ -27608,110 +23498,89 @@ namespace NHibernate int ProcessResultsSet(System.Data.Common.DbDataReader reader); System.Threading.Tasks.Task ProcessResultsSetAsync(System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Multi.IQueryBatchItem<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IQueryBatchItem : NHibernate.Multi.IQueryBatchItem { System.Action> AfterLoadCallback { get; set; } System.Collections.Generic.IList GetResults(); } - - // Generated from `NHibernate.Multi.IQueryBatchItemWithAsyncProcessResults` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - internal interface IQueryBatchItemWithAsyncProcessResults + public class LinqBatchItem : NHibernate.Multi.QueryBatchItem { - void ProcessResults(); - System.Threading.Tasks.Task ProcessResultsAsync(System.Threading.CancellationToken cancellationToken); + public LinqBatchItem(NHibernate.IQuery query) : base(default(NHibernate.IQuery)) => throw null; + protected override System.Collections.Generic.List DoGetResults() => throw null; + protected override System.Collections.Generic.IList GetResultsNonBatched() => throw null; + protected override System.Threading.Tasks.Task> GetResultsNonBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Multi.LinqBatchItem` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class LinqBatchItem { public static NHibernate.Multi.LinqBatchItem Create(System.Linq.IQueryable query, System.Linq.Expressions.Expression, TResult>> selector) => throw null; public static NHibernate.Multi.LinqBatchItem Create(System.Linq.IQueryable query) => throw null; } - - // Generated from `NHibernate.Multi.LinqBatchItem<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LinqBatchItem : NHibernate.Multi.QueryBatchItem - { - protected override System.Collections.Generic.List DoGetResults() => throw null; - protected override System.Collections.Generic.IList GetResultsNonBatched() => throw null; - protected override System.Threading.Tasks.Task> GetResultsNonBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public LinqBatchItem(NHibernate.IQuery query) : base(default(NHibernate.IQuery)) => throw null; - internal LinqBatchItem(NHibernate.IQuery query, NHibernate.Linq.NhLinqExpression linq) : base(default(NHibernate.IQuery)) => throw null; - } - - // Generated from `NHibernate.Multi.QueryBatch` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QueryBatch : NHibernate.Multi.IQueryBatch { - public void Add(string key, NHibernate.Multi.IQueryBatchItem query) => throw null; public void Add(NHibernate.Multi.IQueryBatchItem query) => throw null; + public void Add(string key, NHibernate.Multi.IQueryBatchItem query) => throw null; + public QueryBatch(NHibernate.Engine.ISessionImplementor session, bool autoReset) => throw null; public void Execute() => throw null; - public System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected void ExecuteBatched() => throw null; protected System.Threading.Tasks.Task ExecuteBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.FlushMode? FlushMode { get => throw null; set => throw null; } - public System.Collections.Generic.IList GetResult(string querykey) => throw null; + public NHibernate.FlushMode? FlushMode { get => throw null; set { } } public System.Collections.Generic.IList GetResult(int queryIndex) => throw null; - public System.Threading.Tasks.Task> GetResultAsync(string querykey, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task> GetResultAsync(int queryIndex, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Collections.Generic.IList GetResult(string querykey) => throw null; + public System.Threading.Tasks.Task> GetResultAsync(int queryIndex, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> GetResultAsync(string querykey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public bool IsExecutedOrEmpty { get => throw null; } - public QueryBatch(NHibernate.Engine.ISessionImplementor session, bool autoReset) => throw null; protected NHibernate.Engine.ISessionImplementor Session { get => throw null; } - public int? Timeout { get => throw null; set => throw null; } + public int? Timeout { get => throw null; set { } } } - - // Generated from `NHibernate.Multi.QueryBatchExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class QueryBatchExtensions + public static partial class QueryBatchExtensions { - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, System.Linq.IQueryable query, System.Linq.Expressions.Expression, TResult>> selector) => throw null; - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable query, System.Linq.Expressions.Expression, TResult>> selector, System.Action afterLoad = default(System.Action)) => throw null; - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, System.Linq.IQueryable query) => throw null; - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.IQueryOver query) => throw null; - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.IQueryOver query) => throw null; - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.IQuery query) => throw null; - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.ICriteria query) => throw null; - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.Criterion.DetachedCriteria query) => throw null; - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable query, System.Action> afterLoad = default(System.Action>)) => throw null; - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query, System.Action> afterLoad = default(System.Action>)) => throw null; public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query, System.Action> afterLoad = default(System.Action>)) => throw null; - public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQuery query, System.Action> afterLoad = default(System.Action>)) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.IQueryOver query) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query, System.Action> afterLoad = default(System.Action>)) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.IQueryOver query) => throw null; public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, NHibernate.ICriteria query, System.Action> afterLoad = default(System.Action>)) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.ICriteria query) => throw null; public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, NHibernate.Criterion.DetachedCriteria query, System.Action> afterLoad = default(System.Action>)) => throw null; - public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable query) => throw null; - public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, NHibernate.Multi.IQueryBatchItem query) => throw null; - public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.Criterion.DetachedCriteria query) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQuery query, System.Action> afterLoad = default(System.Action>)) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.IQuery query) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable query, System.Action> afterLoad = default(System.Action>)) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, System.Linq.IQueryable query) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable query, System.Linq.Expressions.Expression, TResult>> selector, System.Action afterLoad = default(System.Action)) => throw null; + public static NHibernate.Multi.IQueryBatch Add(this NHibernate.Multi.IQueryBatch batch, string key, System.Linq.IQueryable query, System.Linq.Expressions.Expression, TResult>> selector) => throw null; public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query) => throw null; - public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQuery query) => throw null; + public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query) => throw null; public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, NHibernate.ICriteria query) => throw null; public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, NHibernate.Criterion.DetachedCriteria query) => throw null; + public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQuery query) => throw null; + public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable query) => throw null; + public static NHibernate.IFutureEnumerable AddAsFuture(this NHibernate.Multi.IQueryBatch batch, NHibernate.Multi.IQueryBatchItem query) => throw null; public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable query, System.Linq.Expressions.Expression, TResult>> selector) => throw null; public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable query) => throw null; - public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, NHibernate.Multi.IQueryBatchItem query) => throw null; - public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query) => throw null; - public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query) => throw null; - public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQuery query) => throw null; public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, NHibernate.ICriteria query) => throw null; public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, NHibernate.Criterion.DetachedCriteria query) => throw null; + public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query) => throw null; + public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query) => throw null; + public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQuery query) => throw null; + public static NHibernate.IFutureValue AddAsFutureValue(this NHibernate.Multi.IQueryBatch batch, NHibernate.Multi.IQueryBatchItem query) => throw null; public static NHibernate.Multi.IQueryBatch SetFlushMode(this NHibernate.Multi.IQueryBatch batch, NHibernate.FlushMode mode) => throw null; public static NHibernate.Multi.IQueryBatch SetTimeout(this NHibernate.Multi.IQueryBatch batch, int? timeout) => throw null; } - - // Generated from `NHibernate.Multi.QueryBatchItem<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QueryBatchItem : NHibernate.Multi.QueryBatchItemBase { + public QueryBatchItem(NHibernate.IQuery query) => throw null; protected override System.Collections.Generic.List DoGetResults() => throw null; protected override System.Collections.Generic.List.QueryInfo> GetQueryInformation(NHibernate.Engine.ISessionImplementor session) => throw null; protected override System.Collections.Generic.IList GetResultsNonBatched() => throw null; protected override System.Threading.Tasks.Task> GetResultsNonBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null; protected NHibernate.Impl.AbstractQueryImpl Query; - public QueryBatchItem(NHibernate.IQuery query) => throw null; } - - // Generated from `NHibernate.Multi.QueryBatchItemBase<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class QueryBatchItemBase : NHibernate.Multi.IQueryBatchItem, NHibernate.Multi.IQueryBatchItem { - public System.Action> AfterLoadCallback { get => throw null; set => throw null; } + public System.Action> AfterLoadCallback { get => throw null; set { } } public System.Collections.Generic.IEnumerable CachingInformation { get => throw null; } + protected QueryBatchItemBase() => throw null; protected abstract System.Collections.Generic.List DoGetResults(); public void ExecuteNonBatched() => throw null; public System.Threading.Tasks.Task ExecuteNonBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null; @@ -27727,76 +23596,254 @@ namespace NHibernate public System.Threading.Tasks.Task ProcessResultsAsync(System.Threading.CancellationToken cancellationToken) => throw null; public int ProcessResultsSet(System.Data.Common.DbDataReader reader) => throw null; public System.Threading.Tasks.Task ProcessResultsSetAsync(System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken) => throw null; - protected QueryBatchItemBase() => throw null; - // Generated from `NHibernate.Multi.QueryBatchItemBase<>+QueryInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` protected class QueryInfo : NHibernate.Multi.ICachingInformation { - public NHibernate.Cache.CacheBatcher CacheBatcher { get => throw null; set => throw null; } + public NHibernate.Cache.CacheBatcher CacheBatcher { get => throw null; } public NHibernate.Cache.QueryKey CacheKey { get => throw null; } public NHibernate.Type.IType[] CacheTypes { get => throw null; } public bool CanGetFromCache { get => throw null; } public bool CanPutToCache { get => throw null; } + public QueryInfo(NHibernate.Engine.QueryParameters parameters, NHibernate.Loader.Loader loader, System.Collections.Generic.ISet querySpaces, NHibernate.Engine.ISessionImplementor session) => throw null; public bool IsCacheable { get => throw null; } - public bool IsResultFromCache { get => throw null; set => throw null; } - public NHibernate.Loader.Loader Loader { get => throw null; set => throw null; } + public bool IsResultFromCache { get => throw null; } + public NHibernate.Loader.Loader Loader { get => throw null; set { } } public NHibernate.Engine.QueryParameters Parameters { get => throw null; } public string QueryIdentifier { get => throw null; } - public QueryInfo(NHibernate.Engine.QueryParameters parameters, NHibernate.Loader.Loader loader, System.Collections.Generic.ISet querySpaces, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Collections.Generic.ISet QuerySpaces { get => throw null; } - public System.Collections.IList Result { get => throw null; set => throw null; } - public System.Collections.IList ResultToCache { get => throw null; set => throw null; } + public System.Collections.IList Result { get => throw null; set { } } + public System.Collections.IList ResultToCache { get => throw null; set { } } public NHibernate.Type.IType[] ResultTypes { get => throw null; } public void SetCacheBatcher(NHibernate.Cache.CacheBatcher cacheBatcher) => throw null; public void SetCachedResult(System.Collections.IList result) => throw null; } - - protected NHibernate.Engine.ISessionImplementor Session; } - + } + public static partial class MultiCriteriaExtensions + { + public static NHibernate.IMultiCriteria SetTimeout(this NHibernate.IMultiCriteria multiCriteria, int timeout) => throw null; } namespace MultiTenancy { - // Generated from `NHibernate.MultiTenancy.AbstractMultiTenancyConnectionProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractMultiTenancyConnectionProvider : NHibernate.MultiTenancy.IMultiTenancyConnectionProvider { protected AbstractMultiTenancyConnectionProvider() => throw null; public NHibernate.Connection.IConnectionAccess GetConnectionAccess(NHibernate.MultiTenancy.TenantConfiguration tenantConfiguration, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; protected abstract string GetTenantConnectionString(NHibernate.MultiTenancy.TenantConfiguration tenantConfiguration, NHibernate.Engine.ISessionFactoryImplementor sessionFactory); } - - // Generated from `NHibernate.MultiTenancy.IMultiTenancyConnectionProvider` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IMultiTenancyConnectionProvider { NHibernate.Connection.IConnectionAccess GetConnectionAccess(NHibernate.MultiTenancy.TenantConfiguration tenantConfiguration, NHibernate.Engine.ISessionFactoryImplementor sessionFactory); } - - // Generated from `NHibernate.MultiTenancy.MultiTenancyStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum MultiTenancyStrategy { - Database, - None, + None = 0, + Database = 1, } - - // Generated from `NHibernate.MultiTenancy.TenantConfiguration` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TenantConfiguration { public TenantConfiguration(string tenantIdentifier) => throw null; public string TenantIdentifier { get => throw null; } } - + } + public static class NHibernateLogger + { + public static NHibernate.INHibernateLogger For(string keyName) => throw null; + public static NHibernate.INHibernateLogger For(System.Type type) => throw null; + public static void SetLoggersFactory(NHibernate.INHibernateLoggerFactory loggerFactory) => throw null; + } + public static partial class NHibernateLoggerExtensions + { + public static void Debug(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null; + public static void Debug(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null; + public static void Debug(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null; + public static void Debug(this NHibernate.INHibernateLogger logger, string message) => throw null; + public static void Debug(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null; + public static void Error(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null; + public static void Error(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null; + public static void Error(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null; + public static void Error(this NHibernate.INHibernateLogger logger, string message) => throw null; + public static void Error(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null; + public static void Fatal(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null; + public static void Fatal(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null; + public static void Fatal(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null; + public static void Fatal(this NHibernate.INHibernateLogger logger, string message) => throw null; + public static void Fatal(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null; + public static void Info(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null; + public static void Info(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null; + public static void Info(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null; + public static void Info(this NHibernate.INHibernateLogger logger, string message) => throw null; + public static void Info(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null; + public static bool IsDebugEnabled(this NHibernate.INHibernateLogger logger) => throw null; + public static bool IsErrorEnabled(this NHibernate.INHibernateLogger logger) => throw null; + public static bool IsFatalEnabled(this NHibernate.INHibernateLogger logger) => throw null; + public static bool IsInfoEnabled(this NHibernate.INHibernateLogger logger) => throw null; + public static bool IsWarnEnabled(this NHibernate.INHibernateLogger logger) => throw null; + public static void Warn(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null; + public static void Warn(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null; + public static void Warn(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null; + public static void Warn(this NHibernate.INHibernateLogger logger, string message) => throw null; + public static void Warn(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null; + } + public enum NHibernateLogLevel + { + Trace = 0, + Debug = 1, + Info = 2, + Warn = 3, + Error = 4, + Fatal = 5, + None = 6, + } + public struct NHibernateLogValues + { + public object[] Args { get => throw null; } + public NHibernateLogValues(string format, object[] args) => throw null; + public string Format { get => throw null; } + public override string ToString() => throw null; + } + public static class NHibernateUtil + { + public static NHibernate.Type.AnsiCharType AnsiChar; + public static NHibernate.Type.AnsiStringType AnsiString; + public static NHibernate.Type.IType Any(NHibernate.Type.IType metaType, NHibernate.Type.IType identifierType) => throw null; + public static NHibernate.Type.BinaryType Binary; + public static NHibernate.Type.BinaryBlobType BinaryBlob; + public static NHibernate.Type.BooleanType Boolean; + public static NHibernate.Type.ByteType Byte; + public static NHibernate.Type.CharType Character; + public static NHibernate.Type.TypeType Class; + public static NHibernate.Type.ClassMetaType ClassMetaType; + public static void Close(System.Collections.IEnumerator enumerator) => throw null; + public static void Close(System.Collections.IEnumerable enumerable) => throw null; + public static NHibernate.Type.CultureInfoType CultureInfo; + public static NHibernate.Type.CurrencyType Currency; + public static NHibernate.Type.IType Custom(System.Type userTypeClass) => throw null; + public static NHibernate.Type.DateType Date; + public static NHibernate.Type.DateTimeType DateTime; + public static NHibernate.Type.DateTime2Type DateTime2; + public static NHibernate.Type.DateTimeNoMsType DateTimeNoMs; + public static NHibernate.Type.DateTimeOffsetType DateTimeOffset; + public static NHibernate.Type.DbTimestampType DbTimestamp; + public static NHibernate.Type.DecimalType Decimal; + public static NHibernate.Type.DoubleType Double; + public static NHibernate.Type.IType Entity(System.Type persistentClass) => throw null; + public static NHibernate.Type.IType Entity(string entityName) => throw null; + public static NHibernate.Type.IType Enum(System.Type enumClass) => throw null; + public static System.Type GetClass(object proxy) => throw null; + public static System.Threading.Tasks.Task GetClassAsync(object proxy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static NHibernate.Type.IType GetSerializable(System.Type serializableClass) => throw null; + public static NHibernate.Type.IType GuessType(object obj) => throw null; + public static NHibernate.Type.IType GuessType(System.Type type) => throw null; + public static NHibernate.Type.GuidType Guid; + public static void Initialize(object proxy) => throw null; + public static System.Threading.Tasks.Task InitializeAsync(object proxy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static NHibernate.Type.Int16Type Int16; + public static NHibernate.Type.Int32Type Int32; + public static NHibernate.Type.Int64Type Int64; + public static bool IsInitialized(object proxy) => throw null; + public static bool IsPropertyInitialized(object proxy, string propertyName) => throw null; + public static NHibernate.Type.DateType LocalDate; + public static NHibernate.Type.LocalDateTimeType LocalDateTime; + public static NHibernate.Type.LocalDateTimeNoMsType LocalDateTimeNoMs; + public static NHibernate.Type.MetaType MetaType; + public static NHibernate.Type.AnyType Object; + public static NHibernate.Type.SByteType SByte; + public static NHibernate.Type.SerializableType Serializable; + public static NHibernate.Type.SingleType Single; + public static NHibernate.Type.StringType String; + public static NHibernate.Type.StringClobType StringClob; + public static NHibernate.Type.TicksType Ticks; + public static NHibernate.Type.TimeType Time; + public static NHibernate.Type.TimeAsTimeSpanType TimeAsTimeSpan; + public static NHibernate.Type.TimeSpanType TimeSpan; + public static NHibernate.Type.TimestampType Timestamp; + public static NHibernate.Type.TrueFalseType TrueFalse; + public static NHibernate.Type.UInt16Type UInt16; + public static NHibernate.Type.UInt32Type UInt32; + public static NHibernate.Type.UInt64Type UInt64; + public static NHibernate.Type.UriType Uri; + public static NHibernate.Type.UtcDateTimeType UtcDateTime; + public static NHibernate.Type.UtcDateTimeNoMsType UtcDateTimeNoMs; + public static NHibernate.Type.UtcDbTimestampType UtcDbTimestamp; + public static NHibernate.Type.UtcTicksType UtcTicks; + public static NHibernate.Type.XDocType XDoc; + public static NHibernate.Type.XmlDocType XmlDoc; + public static NHibernate.Type.YesNoType YesNo; + } + public class NoLoggingInternalLogger : NHibernate.IInternalLogger + { + public NoLoggingInternalLogger() => throw null; + public void Debug(object message) => throw null; + public void Debug(object message, System.Exception exception) => throw null; + public void DebugFormat(string format, params object[] args) => throw null; + public void Error(object message) => throw null; + public void Error(object message, System.Exception exception) => throw null; + public void ErrorFormat(string format, params object[] args) => throw null; + public void Fatal(object message) => throw null; + public void Fatal(object message, System.Exception exception) => throw null; + public void Info(object message) => throw null; + public void Info(object message, System.Exception exception) => throw null; + public void InfoFormat(string format, params object[] args) => throw null; + public bool IsDebugEnabled { get => throw null; } + public bool IsErrorEnabled { get => throw null; } + public bool IsFatalEnabled { get => throw null; } + public bool IsInfoEnabled { get => throw null; } + public bool IsWarnEnabled { get => throw null; } + public void Warn(object message) => throw null; + public void Warn(object message, System.Exception exception) => throw null; + public void WarnFormat(string format, params object[] args) => throw null; + } + public class NoLoggingLoggerFactory : NHibernate.ILoggerFactory + { + public NoLoggingLoggerFactory() => throw null; + public NHibernate.IInternalLogger LoggerFor(string keyName) => throw null; + public NHibernate.IInternalLogger LoggerFor(System.Type type) => throw null; + } + public class NonUniqueObjectException : NHibernate.HibernateException + { + public NonUniqueObjectException(string message, object id, string entityName) => throw null; + public NonUniqueObjectException(object id, string entityName) => throw null; + protected NonUniqueObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string EntityName { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public object Identifier { get => throw null; } + public override string Message { get => throw null; } + } + public class NonUniqueResultException : NHibernate.HibernateException + { + public NonUniqueResultException(int resultCount) => throw null; + protected NonUniqueResultException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class ObjectDeletedException : NHibernate.UnresolvableObjectException + { + public ObjectDeletedException(string message, object identifier, string clazz) : base(default(object), default(System.Type)) => throw null; + protected ObjectDeletedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(object), default(System.Type)) => throw null; + } + public class ObjectNotFoundByUniqueKeyException : NHibernate.HibernateException + { + public ObjectNotFoundByUniqueKeyException(string entityName, string propertyName, object key) => throw null; + protected ObjectNotFoundByUniqueKeyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public object Key { get => throw null; } + public string PropertyName { get => throw null; } + } + public class ObjectNotFoundException : NHibernate.UnresolvableObjectException + { + public ObjectNotFoundException(object identifier, System.Type type) : base(default(object), default(System.Type)) => throw null; + public ObjectNotFoundException(object identifier, string entityName) : base(default(object), default(System.Type)) => throw null; + protected ObjectNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(object), default(System.Type)) => throw null; } namespace Param { - // Generated from `NHibernate.Param.AbstractExplicitParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractExplicitParameterSpecification : NHibernate.Param.IParameterSpecification, NHibernate.Param.IPageableParameterSpecification, NHibernate.Param.IExplicitParameterSpecification + public abstract class AbstractExplicitParameterSpecification : NHibernate.Param.IPageableParameterSpecification, NHibernate.Param.IExplicitParameterSpecification, NHibernate.Param.IParameterSpecification { - protected AbstractExplicitParameterSpecification(int sourceLine, int sourceColumn) => throw null; public abstract void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session); public abstract void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session); public abstract System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); public abstract System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } + protected AbstractExplicitParameterSpecification(int sourceLine, int sourceColumn) => throw null; + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } public abstract System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory); protected object GetPagingValue(object value, NHibernate.Dialect.Dialect dialect, NHibernate.Engine.QueryParameters queryParameters) => throw null; protected int GetParemeterSpan(NHibernate.Engine.IMapping sessionFactory) => throw null; @@ -27808,37 +23855,31 @@ namespace NHibernate public int SourceColumn { get => throw null; } public int SourceLine { get => throw null; } } - - // Generated from `NHibernate.Param.AggregatedIndexCollectionSelectorParameterSpecifications` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AggregatedIndexCollectionSelectorParameterSpecifications : NHibernate.Param.IParameterSpecification { - public AggregatedIndexCollectionSelectorParameterSpecifications(System.Collections.Generic.IList paramSpecs) => throw null; public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } + public AggregatedIndexCollectionSelectorParameterSpecifications(System.Collections.Generic.IList paramSpecs) => throw null; + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } public System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null; public string RenderDisplayInfo() => throw null; } - - // Generated from `NHibernate.Param.CollectionFilterKeyParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionFilterKeyParameterSpecification : NHibernate.Param.IParameterSpecification { - public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public CollectionFilterKeyParameterSpecification(string collectionRole, NHibernate.Type.IType keyType, int queryParameterPosition) => throw null; public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Param.CollectionFilterKeyParameterSpecification other) => throw null; - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } public override int GetHashCode() => throw null; public System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null; public string RenderDisplayInfo() => throw null; } - - // Generated from `NHibernate.Param.CriteriaNamedParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CriteriaNamedParameterSpecification : NHibernate.Param.IParameterSpecification { public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -27848,14 +23889,12 @@ namespace NHibernate public CriteriaNamedParameterSpecification(string name, NHibernate.Type.IType expectedType) => throw null; public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Param.CriteriaNamedParameterSpecification other) => throw null; - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } public override int GetHashCode() => throw null; public System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null; protected int GetParemeterSpan(NHibernate.Engine.IMapping sessionFactory) => throw null; public string RenderDisplayInfo() => throw null; } - - // Generated from `NHibernate.Param.DynamicFilterParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DynamicFilterParameterSpecification : NHibernate.Param.IParameterSpecification { public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -27866,30 +23905,24 @@ namespace NHibernate public NHibernate.Type.IType ElementType { get => throw null; } public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Param.DynamicFilterParameterSpecification other) => throw null; - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } public string FilterParameterFullName { get => throw null; } public override int GetHashCode() => throw null; public System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null; public string RenderDisplayInfo() => throw null; } - - // Generated from `NHibernate.Param.IExplicitParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IExplicitParameterSpecification : NHibernate.Param.IParameterSpecification { void SetEffectiveType(NHibernate.Engine.QueryParameters queryParameters); int SourceColumn { get; } int SourceLine { get; } } - - // Generated from `NHibernate.Param.IPageableParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPageableParameterSpecification : NHibernate.Param.IParameterSpecification, NHibernate.Param.IExplicitParameterSpecification + public interface IPageableParameterSpecification : NHibernate.Param.IExplicitParameterSpecification, NHibernate.Param.IParameterSpecification { int GetSkipValue(NHibernate.Engine.QueryParameters queryParameters); void IsSkipParameter(); void IsTakeParameterWithSkipParameter(NHibernate.Param.IPageableParameterSpecification skipParameter); } - - // Generated from `NHibernate.Param.IParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IParameterSpecification { void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session); @@ -27900,130 +23933,110 @@ namespace NHibernate System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory); string RenderDisplayInfo(); } - - // Generated from `NHibernate.Param.NamedParameter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NamedParameter { - public override bool Equals(object obj) => throw null; + public NamedParameter(string name, object value, NHibernate.Type.IType type) => throw null; public bool Equals(NHibernate.Param.NamedParameter other) => throw null; + public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public virtual bool IsCollection { get => throw null; } - public string Name { get => throw null; set => throw null; } - public NamedParameter(string name, object value, NHibernate.Type.IType type) => throw null; - public NHibernate.Type.IType Type { get => throw null; set => throw null; } - public object Value { get => throw null; set => throw null; } + public string Name { get => throw null; } + public NHibernate.Type.IType Type { get => throw null; } + public object Value { get => throw null; } } - - // Generated from `NHibernate.Param.NamedParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NamedParameterSpecification : NHibernate.Param.AbstractExplicitParameterSpecification { public override void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public override void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public NamedParameterSpecification(int sourceLine, int sourceColumn, string name) : base(default(int), default(int)) => throw null; public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Param.NamedParameterSpecification other) => throw null; public override int GetHashCode() => throw null; public override System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null; public override int GetSkipValue(NHibernate.Engine.QueryParameters queryParameters) => throw null; public string Name { get => throw null; } - public NamedParameterSpecification(int sourceLine, int sourceColumn, string name) : base(default(int), default(int)) => throw null; public override string RenderDisplayInfo() => throw null; public override void SetEffectiveType(NHibernate.Engine.QueryParameters queryParameters) => throw null; } - - // Generated from `NHibernate.Param.ParametersBackTrackExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ParametersBackTrackExtensions + public static partial class ParametersBackTrackExtensions { public static System.Collections.Generic.IEnumerable GetEffectiveParameterLocations(this System.Collections.Generic.IList sqlParameters, string backTrackId) => throw null; public static NHibernate.SqlTypes.SqlType[] GetQueryParameterTypes(this System.Collections.Generic.IEnumerable parameterSpecs, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public static void ResetEffectiveExpectedType(this System.Collections.Generic.IEnumerable parameterSpecs, NHibernate.Engine.QueryParameters queryParameters) => throw null; } - - // Generated from `NHibernate.Param.PositionalParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PositionalParameterSpecification : NHibernate.Param.AbstractExplicitParameterSpecification { public override void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public override void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public PositionalParameterSpecification(int sourceLine, int sourceColumn, int hqlPosition) : base(default(int), default(int)) => throw null; public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Param.PositionalParameterSpecification other) => throw null; public override int GetHashCode() => throw null; public override System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null; public override int GetSkipValue(NHibernate.Engine.QueryParameters queryParameters) => throw null; public int HqlPosition { get => throw null; } - public PositionalParameterSpecification(int sourceLine, int sourceColumn, int hqlPosition) : base(default(int), default(int)) => throw null; public override string RenderDisplayInfo() => throw null; public override void SetEffectiveType(NHibernate.Engine.QueryParameters queryParameters) => throw null; } - - // Generated from `NHibernate.Param.QuerySkipParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QuerySkipParameterSpecification : NHibernate.Param.IParameterSpecification { public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public QuerySkipParameterSpecification() => throw null; public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Param.QuerySkipParameterSpecification other) => throw null; - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } public override int GetHashCode() => throw null; public System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null; - public QuerySkipParameterSpecification() => throw null; public string RenderDisplayInfo() => throw null; } - - // Generated from `NHibernate.Param.QueryTakeParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QueryTakeParameterSpecification : NHibernate.Param.IParameterSpecification { public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public QueryTakeParameterSpecification() => throw null; public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Param.QueryTakeParameterSpecification other) => throw null; - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } public override int GetHashCode() => throw null; public System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null; - public QueryTakeParameterSpecification() => throw null; public string RenderDisplayInfo() => throw null; } - - // Generated from `NHibernate.Param.VersionTypeSeedParameterSpecification` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class VersionTypeSeedParameterSpecification : NHibernate.Param.IParameterSpecification { public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public NHibernate.Type.IType ExpectedType { get => throw null; set => throw null; } + public VersionTypeSeedParameterSpecification(NHibernate.Type.IVersionType type) => throw null; + public NHibernate.Type.IType ExpectedType { get => throw null; set { } } public System.Collections.Generic.IEnumerable GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null; public string RenderDisplayInfo() => throw null; - public VersionTypeSeedParameterSpecification(NHibernate.Type.IVersionType type) => throw null; } - + } + public class PersistentObjectException : NHibernate.HibernateException + { + public PersistentObjectException(string message) => throw null; + protected PersistentObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } namespace Persister { - // Generated from `NHibernate.Persister.PersisterFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class PersisterFactory - { - public static NHibernate.Persister.Entity.IEntityPersister Create(System.Type persisterClass, NHibernate.Mapping.PersistentClass model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping cfg) => throw null; - public static NHibernate.Persister.Collection.ICollectionPersister Create(System.Type persisterClass, NHibernate.Mapping.Collection model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public static NHibernate.Persister.Entity.IEntityPersister CreateClassPersister(NHibernate.Mapping.PersistentClass model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping cfg) => throw null; - public static NHibernate.Persister.Collection.ICollectionPersister CreateCollectionPersister(NHibernate.Mapping.Collection model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - } - namespace Collection { - // Generated from `NHibernate.Persister.Collection.AbstractCollectionPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractCollectionPersister : NHibernate.Persister.Entity.ISupportSelectModeJoinable, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Collection.ISqlLoadableCollection, NHibernate.Persister.Collection.IQueryableCollection, NHibernate.Persister.Collection.ICollectionPersister, NHibernate.Metadata.ICollectionMetadata, NHibernate.Id.IPostInsertIdentityPersister, NHibernate.Id.ICompositeKeyPostInsertIdentityPersister + public abstract class AbstractCollectionPersister : NHibernate.Metadata.ICollectionMetadata, NHibernate.Persister.Collection.ISqlLoadableCollection, NHibernate.Persister.Collection.IQueryableCollection, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Collection.ICollectionPersister, NHibernate.Id.IPostInsertIdentityPersister, NHibernate.Persister.Entity.ISupportSelectModeJoinable, NHibernate.Id.ICompositeKeyPostInsertIdentityPersister { - public AbstractCollectionPersister(NHibernate.Mapping.Collection collection, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; protected virtual void AppendElementColumns(NHibernate.SqlCommand.SelectFragment frag, string elemAlias) => throw null; protected virtual void AppendIdentifierColumns(NHibernate.SqlCommand.SelectFragment frag, string alias) => throw null; protected virtual void AppendIndexColumns(NHibernate.SqlCommand.SelectFragment frag, string alias) => throw null; + protected int batchSize; public void BindSelectByUniqueKey(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames) => throw null; public System.Threading.Tasks.Task BindSelectByUniqueKeyAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames, System.Threading.CancellationToken cancellationToken) => throw null; public NHibernate.Cache.ICacheConcurrencyStrategy Cache { get => throw null; } @@ -28037,6 +24050,7 @@ namespace NHibernate public abstract bool ConsumesEntityAlias(); protected abstract NHibernate.Loader.Collection.ICollectionInitializer CreateCollectionInitializer(System.Collections.Generic.IDictionary enabledFilters); protected abstract NHibernate.Loader.Collection.ICollectionInitializer CreateSubselectInitializer(NHibernate.Engine.SubselectFetch subselect, NHibernate.Engine.ISessionImplementor session); + public AbstractCollectionPersister(NHibernate.Mapping.Collection collection, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public object DecrementIndexByBase(object index) => throw null; protected virtual bool DeleteAllCallable { get => throw null; } protected NHibernate.Engine.ExecuteUpdateResultCheckStyle DeleteAllCheckStyle { get => throw null; } @@ -28048,33 +24062,36 @@ namespace NHibernate protected abstract int DoUpdateRows(object key, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session); protected abstract System.Threading.Tasks.Task DoUpdateRowsAsync(object key, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); public System.Type ElementClass { get => throw null; } + protected string[] elementColumnAliases; + protected bool[] elementColumnIsInPrimaryKey; + protected bool[] elementColumnIsSettable; public string[] ElementColumnNames { get => throw null; } public bool ElementExists(object key, object element, NHibernate.Engine.ISessionImplementor session) => throw null; + protected string[] elementFormulas; + protected string[] elementFormulaTemplates; + protected bool elementIsPureFormula; public NHibernate.Persister.Entity.IEntityPersister ElementPersister { get => throw null; } public NHibernate.Type.IType ElementType { get => throw null; } public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; } public NHibernate.FetchMode FetchMode { get => throw null; } - public virtual string FilterFragment(string alias, System.Collections.Generic.IDictionary enabledFilters) => throw null; protected virtual string FilterFragment(string alias) => throw null; + public virtual string FilterFragment(string alias, System.Collections.Generic.IDictionary enabledFilters) => throw null; public abstract NHibernate.SqlCommand.SqlString FromJoinFragment(string alias, bool innerJoin, bool includeSubclasses); - protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteRowString(bool[] columnNullness) => throw null; protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteRowString() => throw null; + protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteRowString(bool[] columnNullness) => throw null; protected abstract NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteString(); + protected class GeneratedIdentifierBinder : NHibernate.Id.Insert.IBinder + { + public void BindValues(System.Data.Common.DbCommand cm) => throw null; + public System.Threading.Tasks.Task BindValuesAsync(System.Data.Common.DbCommand cm, System.Threading.CancellationToken cancellationToken) => throw null; + public GeneratedIdentifierBinder(object ownerId, NHibernate.Collection.IPersistentCollection collection, object entry, int index, NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.AbstractCollectionPersister persister) => throw null; + public object Entity { get => throw null; } + } protected abstract NHibernate.SqlCommand.SqlCommandInfo GenerateIdentityInsertRowString(); protected abstract NHibernate.SqlCommand.SqlCommandInfo GenerateInsertRowString(); protected virtual NHibernate.SqlCommand.SelectFragment GenerateSelectFragment(string alias, string columnSuffix) => throw null; public virtual string GenerateTableAliasForKeyColumns(string alias) => throw null; protected abstract NHibernate.SqlCommand.SqlCommandInfo GenerateUpdateRowString(); - // Generated from `NHibernate.Persister.Collection.AbstractCollectionPersister+GeneratedIdentifierBinder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected class GeneratedIdentifierBinder : NHibernate.Id.Insert.IBinder - { - public void BindValues(System.Data.Common.DbCommand cm) => throw null; - public System.Threading.Tasks.Task BindValuesAsync(System.Data.Common.DbCommand cm, System.Threading.CancellationToken cancellationToken) => throw null; - public object Entity { get => throw null; } - public GeneratedIdentifierBinder(object ownerId, NHibernate.Collection.IPersistentCollection collection, object entry, int index, NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.AbstractCollectionPersister persister) => throw null; - } - - protected NHibernate.Loader.Collection.ICollectionInitializer GetAppropriateInitializer(object key, NHibernate.Engine.ISessionImplementor session) => throw null; public int GetBatchSize() => throw null; public string[] GetCollectionPropertyColumnAliases(string propertyName, string suffix) => throw null; @@ -28089,12 +24106,14 @@ namespace NHibernate public string[] GetKeyColumnAliases(string suffix) => throw null; public string GetManyToManyFilterFragment(string alias, System.Collections.Generic.IDictionary enabledFilters) => throw null; public string GetManyToManyOrderByString(string alias) => throw null; + public NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string propertyName) => throw null; + public virtual NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string[] suppliedPropertyNames, out NHibernate.Type.IType[] parameterTypes) => throw null; + public NHibernate.SqlCommand.SelectFragment GetSelectFragment(string alias, string columnSuffix) => throw null; + public int GetSize(object key, NHibernate.Engine.ISessionImplementor session) => throw null; public string GetSQLOrderByString(string alias) => throw null; public string GetSQLWhereString(string alias) => throw null; - public virtual NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string[] suppliedPropertyNames, out NHibernate.Type.IType[] parameterTypes) => throw null; - public NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string propertyName) => throw null; - public int GetSize(object key, NHibernate.Engine.ISessionImplementor session) => throw null; public bool HasCache { get => throw null; } + protected bool hasIdentifier; public bool HasIndex { get => throw null; } public bool HasManyToManyOrdering { get => throw null; } public bool HasOrdering { get => throw null; } @@ -28104,11 +24123,15 @@ namespace NHibernate public NHibernate.Id.IIdentifierGenerator IdentifierGenerator { get => throw null; } public virtual string IdentifierSelectFragment(string name, string suffix) => throw null; public NHibernate.Type.IType IdentifierType { get => throw null; } + protected NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate identityDelegate; public string IdentitySelectString { get => throw null; } protected object IncrementIndexByBase(object index) => throw null; + protected bool[] indexColumnIsSettable; public string[] IndexColumnNames { get => throw null; } + protected bool indexContainsFormula; public bool IndexExists(object key, object index, NHibernate.Engine.ISessionImplementor session) => throw null; public string[] IndexFormulas { get => throw null; } + protected string[] indexFormulaTemplates; public NHibernate.Type.IType IndexType { get => throw null; } public void InitCollectionPropertyMap() => throw null; public void Initialize(object key, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -28142,11 +24165,12 @@ namespace NHibernate public string OneToManyFilterFragment(string alias) => throw null; public virtual string OwnerEntityName { get => throw null; } public NHibernate.Persister.Entity.IEntityPersister OwnerEntityPersister { get => throw null; } - protected object PerformInsert(object ownerId, NHibernate.Collection.IPersistentCollection collection, object entry, int index, NHibernate.Engine.ISessionImplementor session) => throw null; protected object PerformInsert(object ownerId, NHibernate.Collection.IPersistentCollection collection, NHibernate.AdoNet.IExpectation expectation, object entry, int index, bool useBatch, bool callable, NHibernate.Engine.ISessionImplementor session) => throw null; - protected System.Threading.Tasks.Task PerformInsertAsync(object ownerId, NHibernate.Collection.IPersistentCollection collection, object entry, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected object PerformInsert(object ownerId, NHibernate.Collection.IPersistentCollection collection, object entry, int index, NHibernate.Engine.ISessionImplementor session) => throw null; protected System.Threading.Tasks.Task PerformInsertAsync(object ownerId, NHibernate.Collection.IPersistentCollection collection, NHibernate.AdoNet.IExpectation expectation, object entry, int index, bool useBatch, bool callable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected System.Threading.Tasks.Task PerformInsertAsync(object ownerId, NHibernate.Collection.IPersistentCollection collection, object entry, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public void PostInstantiate() => throw null; + protected string qualifiedTableName; public object ReadElement(System.Data.Common.DbDataReader rs, object owner, string[] aliases, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task ReadElementAsync(System.Data.Common.DbDataReader rs, object owner, string[] aliases, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public object ReadIdentifier(System.Data.Common.DbDataReader rs, string alias, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -28163,18 +24187,20 @@ namespace NHibernate public string[] RootTableKeyColumnNames { get => throw null; } protected virtual bool RowDeleteEnabled { get => throw null; } protected virtual bool RowInsertEnabled { get => throw null; } - protected virtual NHibernate.Exceptions.ISQLExceptionConverter SQLExceptionConverter { get => throw null; } - public virtual string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string entitySuffix, string collectionSuffix, bool includeCollectionColumns, bool includeLazyProperties) => throw null; - public virtual string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string currentEntitySuffix, string currentCollectionSuffix, bool includeCollectionColumns) => throw null; - public virtual string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string currentCollectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null; public string SelectFragment(string alias, string columnSuffix) => throw null; + public virtual string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string currentEntitySuffix, string currentCollectionSuffix, bool includeCollectionColumns) => throw null; + public virtual string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string entitySuffix, string collectionSuffix, bool includeCollectionColumns, bool includeLazyProperties) => throw null; + public virtual string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string currentCollectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null; protected NHibernate.SqlCommand.SqlCommandInfo SqlDeleteRowString { get => throw null; } protected NHibernate.SqlCommand.SqlCommandInfo SqlDeleteString { get => throw null; } + protected virtual NHibernate.Exceptions.ISQLExceptionConverter SQLExceptionConverter { get => throw null; } protected NHibernate.SqlCommand.SqlCommandInfo SqlInsertRowString { get => throw null; } protected NHibernate.SqlCommand.SqlCommandInfo SqlUpdateRowString { get => throw null; } + protected string sqlWhereString; + public bool SupportsQueryCache { get => throw null; } public virtual string TableName { get => throw null; } - public string[] ToColumns(string propertyName) => throw null; public string[] ToColumns(string alias, string propertyName) => throw null; + public string[] ToColumns(string propertyName) => throw null; public override string ToString() => throw null; public NHibernate.Type.IType ToType(string propertyName) => throw null; public bool TryToType(string propertyName, out NHibernate.Type.IType type) => throw null; @@ -28188,10 +24214,10 @@ namespace NHibernate public abstract NHibernate.SqlCommand.SqlString WhereJoinFragment(string alias, bool innerJoin, bool includeSubclasses); protected int WriteElement(System.Data.Common.DbCommand st, object elt, int i, NHibernate.Engine.ISessionImplementor session) => throw null; protected System.Threading.Tasks.Task WriteElementAsync(System.Data.Common.DbCommand st, object elt, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected int WriteElementToWhere(System.Data.Common.DbCommand st, object elt, int i, NHibernate.Engine.ISessionImplementor session) => throw null; protected int WriteElementToWhere(System.Data.Common.DbCommand st, object elt, bool[] columnNullness, int i, NHibernate.Engine.ISessionImplementor session) => throw null; - protected System.Threading.Tasks.Task WriteElementToWhereAsync(System.Data.Common.DbCommand st, object elt, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected int WriteElementToWhere(System.Data.Common.DbCommand st, object elt, int i, NHibernate.Engine.ISessionImplementor session) => throw null; protected System.Threading.Tasks.Task WriteElementToWhereAsync(System.Data.Common.DbCommand st, object elt, bool[] columnNullness, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected System.Threading.Tasks.Task WriteElementToWhereAsync(System.Data.Common.DbCommand st, object elt, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; protected int WriteIdentifier(System.Data.Common.DbCommand st, object idx, int i, NHibernate.Engine.ISessionImplementor session) => throw null; protected System.Threading.Tasks.Task WriteIdentifierAsync(System.Data.Common.DbCommand st, object idx, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; protected int WriteIndex(System.Data.Common.DbCommand st, object idx, int i, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -28200,31 +24226,15 @@ namespace NHibernate protected System.Threading.Tasks.Task WriteIndexToWhereAsync(System.Data.Common.DbCommand st, object index, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; protected int WriteKey(System.Data.Common.DbCommand st, object id, int i, NHibernate.Engine.ISessionImplementor session) => throw null; protected System.Threading.Tasks.Task WriteKeyAsync(System.Data.Common.DbCommand st, object id, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected int batchSize; - protected string[] elementColumnAliases; - protected bool[] elementColumnIsInPrimaryKey; - protected bool[] elementColumnIsSettable; - protected string[] elementFormulaTemplates; - protected string[] elementFormulas; - protected internal bool elementIsPureFormula; - protected bool hasIdentifier; - protected NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate identityDelegate; - protected bool[] indexColumnIsSettable; - protected internal bool indexContainsFormula; - protected string[] indexFormulaTemplates; - protected string qualifiedTableName; - protected string sqlWhereString; } - - // Generated from `NHibernate.Persister.Collection.BasicCollectionPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BasicCollectionPersister : NHibernate.Persister.Collection.AbstractCollectionPersister { - public BasicCollectionPersister(NHibernate.Mapping.Collection collection, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Mapping.Collection), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; public override bool CascadeDeleteEnabled { get => throw null; } public override bool ConsumesCollectionAlias() => throw null; public override bool ConsumesEntityAlias() => throw null; protected override NHibernate.Loader.Collection.ICollectionInitializer CreateCollectionInitializer(System.Collections.Generic.IDictionary enabledFilters) => throw null; protected override NHibernate.Loader.Collection.ICollectionInitializer CreateSubselectInitializer(NHibernate.Engine.SubselectFetch subselect, NHibernate.Engine.ISessionImplementor session) => throw null; + public BasicCollectionPersister(NHibernate.Mapping.Collection collection, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Mapping.Collection), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; protected override int DoUpdateRows(object id, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session) => throw null; protected override System.Threading.Tasks.Task DoUpdateRowsAsync(object id, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override NHibernate.SqlCommand.SqlString FromJoinFragment(string alias, bool innerJoin, bool includeSubclasses) => throw null; @@ -28238,58 +24248,46 @@ namespace NHibernate public override string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null; public override NHibernate.SqlCommand.SqlString WhereJoinFragment(string alias, bool innerJoin, bool includeSubclasses) => throw null; } - - // Generated from `NHibernate.Persister.Collection.CollectionPersisterExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class CollectionPersisterExtensions + public static partial class CollectionPersisterExtensions { public static int GetBatchSize(this NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; } - - // Generated from `NHibernate.Persister.Collection.CollectionPropertyMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionPropertyMapping : NHibernate.Persister.Entity.IPropertyMapping { public CollectionPropertyMapping(NHibernate.Persister.Collection.IQueryableCollection memberPersister) => throw null; - public string[] ToColumns(string propertyName) => throw null; public string[] ToColumns(string alias, string propertyName) => throw null; + public string[] ToColumns(string propertyName) => throw null; public NHibernate.Type.IType ToType(string propertyName) => throw null; public bool TryToType(string propertyName, out NHibernate.Type.IType type) => throw null; public NHibernate.Type.IType Type { get => throw null; } } - - // Generated from `NHibernate.Persister.Collection.CollectionPropertyNames` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionPropertyNames { public CollectionPropertyNames() => throw null; - public const string Elements = default; - public const string Index = default; - public const string Indices = default; - public const string MaxElement = default; - public const string MaxIndex = default; - public const string MinElement = default; - public const string MinIndex = default; - public const string Size = default; + public static string Elements; + public static string Index; + public static string Indices; + public static string MaxElement; + public static string MaxIndex; + public static string MinElement; + public static string MinIndex; + public static string Size; } - - // Generated from `NHibernate.Persister.Collection.CompositeElementPropertyMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CompositeElementPropertyMapping : NHibernate.Persister.Entity.AbstractPropertyMapping { public CompositeElementPropertyMapping(string[] elementColumns, string[] elementFormulaTemplates, NHibernate.Type.IAbstractComponentType compositeType, NHibernate.Engine.IMapping factory) => throw null; protected override string EntityName { get => throw null; } public override NHibernate.Type.IType Type { get => throw null; } } - - // Generated from `NHibernate.Persister.Collection.ElementPropertyMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ElementPropertyMapping : NHibernate.Persister.Entity.IPropertyMapping { public ElementPropertyMapping(string[] elementColumns, NHibernate.Type.IType type) => throw null; - public string[] ToColumns(string propertyName) => throw null; public string[] ToColumns(string alias, string propertyName) => throw null; + public string[] ToColumns(string propertyName) => throw null; public NHibernate.Type.IType ToType(string propertyName) => throw null; public bool TryToType(string propertyName, out NHibernate.Type.IType outType) => throw null; public NHibernate.Type.IType Type { get => throw null; } } - - // Generated from `NHibernate.Persister.Collection.ICollectionPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICollectionPersister { NHibernate.Cache.ICacheConcurrencyStrategy Cache { get; } @@ -28354,8 +24352,6 @@ namespace NHibernate void UpdateRows(NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session); System.Threading.Tasks.Task UpdateRowsAsync(NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Persister.Collection.IQueryableCollection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IQueryableCollection : NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Collection.ICollectionPersister { string[] ElementColumnNames { get; } @@ -28372,23 +24368,17 @@ namespace NHibernate string[] IndexFormulas { get; } string SelectFragment(string alias, string columnSuffix); } - - // Generated from `NHibernate.Persister.Collection.ISqlLoadableCollection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISqlLoadableCollection : NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Collection.IQueryableCollection, NHibernate.Persister.Collection.ICollectionPersister + public interface ISqlLoadableCollection : NHibernate.Persister.Collection.IQueryableCollection, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Collection.ICollectionPersister { string[] GetCollectionPropertyColumnAliases(string propertyName, string str); string IdentifierColumnName { get; } } - - // Generated from `NHibernate.Persister.Collection.NamedQueryCollectionInitializer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NamedQueryCollectionInitializer : NHibernate.Loader.Collection.ICollectionInitializer { + public NamedQueryCollectionInitializer(string queryName, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; public void Initialize(object key, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task InitializeAsync(object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public NamedQueryCollectionInitializer(string queryName, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null; } - - // Generated from `NHibernate.Persister.Collection.OneToManyPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OneToManyPersister : NHibernate.Persister.Collection.AbstractCollectionPersister, NHibernate.Persister.Entity.ISupportSelectModeJoinable { public override bool CascadeDeleteEnabled { get => throw null; } @@ -28396,6 +24386,7 @@ namespace NHibernate public override bool ConsumesEntityAlias() => throw null; protected override NHibernate.Loader.Collection.ICollectionInitializer CreateCollectionInitializer(System.Collections.Generic.IDictionary enabledFilters) => throw null; protected override NHibernate.Loader.Collection.ICollectionInitializer CreateSubselectInitializer(NHibernate.Engine.SubselectFetch subselect, NHibernate.Engine.ISessionImplementor session) => throw null; + public OneToManyPersister(NHibernate.Mapping.Collection collection, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Mapping.Collection), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; protected override int DoUpdateRows(object id, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session) => throw null; protected override System.Threading.Tasks.Task DoUpdateRowsAsync(object id, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; protected override string FilterFragment(string alias) => throw null; @@ -28409,21 +24400,21 @@ namespace NHibernate public override object GetElementByIndex(object key, object index, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override bool IsManyToMany { get => throw null; } public override bool IsOneToMany { get => throw null; } - public OneToManyPersister(NHibernate.Mapping.Collection collection, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Mapping.Collection), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; protected override bool RowDeleteEnabled { get => throw null; } protected override bool RowInsertEnabled { get => throw null; } public override string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null; public override string TableName { get => throw null; } public override NHibernate.SqlCommand.SqlString WhereJoinFragment(string alias, bool innerJoin, bool includeSubclasses) => throw null; } - + public static partial class QueryableCollectionExtensions + { + public static NHibernate.SqlCommand.SelectFragment GetSelectFragment(this NHibernate.Persister.Collection.IQueryableCollection queryable, string alias, string columnSuffix) => throw null; + } } namespace Entity { - // Generated from `NHibernate.Persister.Entity.AbstractEntityPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractEntityPersister : NHibernate.Persister.Entity.IUniqueKeyLoadable, NHibernate.Persister.Entity.ISupportSelectModeJoinable, NHibernate.Persister.Entity.ISqlLoadable, NHibernate.Persister.Entity.IQueryable, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.IOuterJoinLoadable, NHibernate.Persister.Entity.ILockable, NHibernate.Persister.Entity.ILoadable, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Metadata.IClassMetadata, NHibernate.Intercept.ILazyPropertyInitializer, NHibernate.Id.IPostInsertIdentityPersister, NHibernate.Id.ICompositeKeyPostInsertIdentityPersister, NHibernate.Cache.IOptimisticCacheSource + public abstract class AbstractEntityPersister : NHibernate.Persister.Entity.IOuterJoinLoadable, NHibernate.Persister.Entity.ILoadable, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Entity.IQueryable, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Metadata.IClassMetadata, NHibernate.Persister.Entity.IUniqueKeyLoadable, NHibernate.Persister.Entity.ISqlLoadable, NHibernate.Intercept.ILazyPropertyInitializer, NHibernate.Id.IPostInsertIdentityPersister, NHibernate.Persister.Entity.ILockable, NHibernate.Persister.Entity.ISupportSelectModeJoinable, NHibernate.Id.ICompositeKeyPostInsertIdentityPersister { - protected AbstractEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; protected virtual void AddDiscriminatorToInsert(NHibernate.SqlCommand.SqlInsertBuilder insert) => throw null; protected virtual void AddDiscriminatorToSelect(NHibernate.SqlCommand.SelectFragment select, string name, string suffix) => throw null; public void AfterInitialize(object entity, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -28438,10 +24429,11 @@ namespace NHibernate public NHibernate.Cache.Entry.ICacheEntryStructure CacheEntryStructure { get => throw null; } public virtual bool CanExtractIdOutOfEntity { get => throw null; } protected bool Check(int rows, object id, int tableNumber, NHibernate.AdoNet.IExpectation expectation, System.Data.Common.DbCommand statement) => throw null; + protected bool Check(int rows, object id, int tableNumber, NHibernate.AdoNet.IExpectation expectation, System.Data.Common.DbCommand statement, bool forceThrowStaleException = default(bool)) => throw null; public virtual NHibernate.Metadata.IClassMetadata ClassMetadata { get => throw null; } + protected string ConcretePropertySelectFragment(string alias, NHibernate.Engine.ValueInclusion[] inclusions) => throw null; protected string ConcretePropertySelectFragment(string alias, bool[] includeProperty) => throw null; protected string ConcretePropertySelectFragment(string alias, NHibernate.Persister.Entity.AbstractEntityPersister.IInclusionChecker inclusionChecker) => throw null; - protected string ConcretePropertySelectFragment(string alias, NHibernate.Engine.ValueInclusion[] inclusions) => throw null; protected string ConcretePropertySelectFragmentSansLeadingComma(string alias, bool[] include) => throw null; public System.Type ConcreteProxyClass { get => throw null; } public abstract string[][] ConstraintOrderedTableKeyColumnClosure { get; } @@ -28457,30 +24449,36 @@ namespace NHibernate protected NHibernate.SqlCommand.SelectFragment CreateSelect(int[] subclassColumnNumbers, int[] subclassFormulaNumbers) => throw null; protected void CreateUniqueKeyLoaders() => throw null; protected NHibernate.SqlCommand.SqlString CreateWhereByKey(int tableNumber, string alias) => throw null; - protected int Dehydrate(object id, object[] fields, object rowId, bool[] includeProperty, bool[][] includeColumns, int table, System.Data.Common.DbCommand statement, NHibernate.Engine.ISessionImplementor session, int index) => throw null; + protected AbstractEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + protected NHibernate.SqlCommand.SqlString[] customSQLDelete; + protected NHibernate.SqlCommand.SqlString[] customSQLInsert; + protected NHibernate.SqlCommand.SqlString[] customSQLUpdate; protected int Dehydrate(object id, object[] fields, bool[] includeProperty, bool[][] includeColumns, int j, System.Data.Common.DbCommand st, NHibernate.Engine.ISessionImplementor session) => throw null; - protected System.Threading.Tasks.Task DehydrateAsync(object id, object[] fields, object rowId, bool[] includeProperty, bool[][] includeColumns, int table, System.Data.Common.DbCommand statement, NHibernate.Engine.ISessionImplementor session, int index, System.Threading.CancellationToken cancellationToken) => throw null; + protected int Dehydrate(object id, object[] fields, object rowId, bool[] includeProperty, bool[][] includeColumns, int table, System.Data.Common.DbCommand statement, NHibernate.Engine.ISessionImplementor session, int index) => throw null; protected System.Threading.Tasks.Task DehydrateAsync(object id, object[] fields, bool[] includeProperty, bool[][] includeColumns, int j, System.Data.Common.DbCommand st, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public void Delete(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; + protected System.Threading.Tasks.Task DehydrateAsync(object id, object[] fields, object rowId, bool[] includeProperty, bool[][] includeColumns, int table, System.Data.Common.DbCommand statement, NHibernate.Engine.ISessionImplementor session, int index, System.Threading.CancellationToken cancellationToken) => throw null; public void Delete(object id, object version, int j, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session, object[] loadedState) => throw null; - public System.Threading.Tasks.Task DeleteAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public void Delete(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task DeleteAsync(object id, object version, int j, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session, object[] loadedState, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal virtual string DiscriminatorAlias { get => throw null; } + public System.Threading.Tasks.Task DeleteAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected bool[] deleteCallable; + protected NHibernate.Engine.ExecuteUpdateResultCheckStyle[] deleteResultCheckStyles; + protected static string Discriminator_Alias; + protected virtual string DiscriminatorAlias { get => throw null; } public virtual string DiscriminatorColumnName { get => throw null; } protected virtual string DiscriminatorFormulaTemplate { get => throw null; } public abstract string DiscriminatorSQLValue { get; } public abstract NHibernate.Type.IType DiscriminatorType { get; } public abstract object DiscriminatorValue { get; } - protected const string Discriminator_Alias = default; - public const string EntityClass = default; + public static string EntityClass; public NHibernate.Tuple.Entity.EntityMetamodel EntityMetamodel { get => throw null; } public NHibernate.EntityMode EntityMode { get => throw null; } public string EntityName { get => throw null; } public NHibernate.Tuple.Entity.IEntityTuplizer EntityTuplizer { get => throw null; } public NHibernate.Type.EntityType EntityType { get => throw null; } public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; } - public virtual string FilterFragment(string alias, System.Collections.Generic.IDictionary enabledFilters) => throw null; public abstract string FilterFragment(string alias); + public virtual string FilterFragment(string alias, System.Collections.Generic.IDictionary enabledFilters) => throw null; public virtual int[] FindDirty(object[] currentState, object[] previousState, object entity, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task FindDirtyAsync(object[] currentState, object[] previousState, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public virtual int[] FindModified(object[] old, object[] current, object entity, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -28493,20 +24491,20 @@ namespace NHibernate public virtual string GenerateFilterConditionAlias(string rootAlias) => throw null; protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateIdentityInsertString(bool[] includeProperty) => throw null; protected NHibernate.SqlCommand.SqlString GenerateInsertGeneratedValuesSelectString() => throw null; - protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateInsertString(bool identityInsert, bool[] includeProperty, int j) => throw null; protected NHibernate.SqlCommand.SqlCommandInfo GenerateInsertString(bool[] includeProperty, int j) => throw null; protected NHibernate.SqlCommand.SqlCommandInfo GenerateInsertString(bool identityInsert, bool[] includeProperty) => throw null; - protected internal virtual NHibernate.SqlCommand.SqlString GenerateLazySelectString() => throw null; + protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateInsertString(bool identityInsert, bool[] includeProperty, int j) => throw null; + protected virtual NHibernate.SqlCommand.SqlString GenerateLazySelectString() => throw null; protected virtual System.Collections.Generic.IDictionary GenerateLazySelectStringsByFetchGroup() => throw null; - protected internal virtual NHibernate.Dialect.Lock.ILockingStrategy GenerateLocker(NHibernate.LockMode lockMode) => throw null; - protected NHibernate.SqlCommand.SqlCommandInfo[] GenerateSQLDeleteStrings(object[] loadedState) => throw null; + protected virtual NHibernate.Dialect.Lock.ILockingStrategy GenerateLocker(NHibernate.LockMode lockMode) => throw null; protected NHibernate.SqlCommand.SqlString GenerateSelectVersionString() => throw null; protected virtual NHibernate.SqlCommand.SqlString GenerateSnapshotSelectString() => throw null; + protected NHibernate.SqlCommand.SqlCommandInfo[] GenerateSQLDeleteStrings(object[] loadedState) => throw null; public string GenerateTableAlias(string rootAlias, int tableNumber) => throw null; public virtual string GenerateTableAliasForColumn(string rootAlias, string column) => throw null; protected NHibernate.SqlCommand.SqlString GenerateUpdateGeneratedValuesSelectString() => throw null; protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateUpdateString(bool[] includeProperty, int j, bool useRowId) => throw null; - protected internal NHibernate.SqlCommand.SqlCommandInfo GenerateUpdateString(bool[] includeProperty, int j, object[] oldFields, bool useRowId) => throw null; + protected NHibernate.SqlCommand.SqlCommandInfo GenerateUpdateString(bool[] includeProperty, int j, object[] oldFields, bool useRowId) => throw null; public NHibernate.Engine.CascadeStyle GetCascadeStyle(int i) => throw null; public object GetCurrentVersion(object id, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task GetCurrentVersionAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; @@ -28517,14 +24515,17 @@ namespace NHibernate protected virtual NHibernate.Tuple.Property GetIdentiferProperty(int table) => throw null; public virtual object GetIdentifier(object obj) => throw null; public string[] GetIdentifierAliases(string suffix) => throw null; + public virtual NHibernate.SqlCommand.SelectFragment GetIdentifierSelectFragment(string alias, string suffix) => throw null; public virtual NHibernate.Type.IType GetIdentifierType(int j) => throw null; public string GetInfoString() => throw null; protected virtual string[] GetJoinIdKeyColumns(int j) => throw null; - protected virtual object GetJoinTableId(int table, object obj) => throw null; protected virtual object GetJoinTableId(int j, object[] fields) => throw null; + protected virtual object GetJoinTableId(int table, object obj) => throw null; protected abstract string[] GetKeyColumns(int table); public virtual object[] GetNaturalIdentifierSnapshot(object id, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task GetNaturalIdentifierSnapshotAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public NHibernate.SqlCommand.SelectFragment GetPropertiesSelectFragment(string alias, string suffix, bool allProperties) => throw null; + public NHibernate.SqlCommand.SelectFragment GetPropertiesSelectFragment(string alias, string suffix, System.Collections.Generic.ICollection fetchProperties) => throw null; protected bool[] GetPropertiesToInsert(object[] fields) => throw null; protected virtual bool[] GetPropertiesToUpdate(int[] dirtyProperties, bool hasDirtyCollection) => throw null; public string[] GetPropertyAliases(string suffix, int i) => throw null; @@ -28535,34 +24536,34 @@ namespace NHibernate public abstract string GetPropertyTableName(string propertyName); public virtual NHibernate.Type.IType GetPropertyType(string path) => throw null; protected bool[] GetPropertyUpdateability(object entity) => throw null; - public object GetPropertyValue(object obj, string propertyName) => throw null; public object GetPropertyValue(object obj, int i) => throw null; + public object GetPropertyValue(object obj, string propertyName) => throw null; public object[] GetPropertyValues(object obj) => throw null; public virtual object[] GetPropertyValuesToInsert(object obj, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null; protected virtual int? GetRefIdColumnOfTable(int table) => throw null; public virtual string GetRootTableAlias(string drivingAlias) => throw null; - protected NHibernate.SqlCommand.SqlString GetSQLLazySelectString(string fetchGroup) => throw null; - protected string GetSQLWhereString(string alias) => throw null; - public virtual NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string[] suppliedPropertyNames, out NHibernate.Type.IType[] parameterTypes) => throw null; public virtual NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string propertyName) => throw null; + public virtual NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string[] suppliedPropertyNames, out NHibernate.Type.IType[] parameterTypes) => throw null; protected virtual NHibernate.SqlCommand.SqlString GetSequentialSelect(string entityName) => throw null; protected virtual NHibernate.SqlCommand.SqlString GetSequentialSelect() => throw null; + protected NHibernate.SqlCommand.SqlString GetSQLLazySelectString(string fetchGroup) => throw null; + protected string GetSQLWhereString(string alias) => throw null; public NHibernate.Persister.Entity.IEntityPersister GetSubclassEntityPersister(object instance, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public abstract string GetSubclassForDiscriminatorValue(object value); public string[] GetSubclassPropertyColumnAliases(string propertyName, string suffix) => throw null; - public string[] GetSubclassPropertyColumnNames(string propertyName) => throw null; public string[] GetSubclassPropertyColumnNames(int i) => throw null; + public string[] GetSubclassPropertyColumnNames(string propertyName) => throw null; public virtual NHibernate.Persister.Entity.Declarer GetSubclassPropertyDeclarer(string propertyPath) => throw null; public string GetSubclassPropertyName(int i) => throw null; public abstract string GetSubclassPropertyTableName(int i); - public virtual int GetSubclassPropertyTableNumber(string propertyPath) => throw null; protected abstract int GetSubclassPropertyTableNumber(int i); + public virtual int GetSubclassPropertyTableNumber(string propertyPath) => throw null; public NHibernate.Type.IType GetSubclassPropertyType(int i) => throw null; protected abstract string[] GetSubclassTableKeyColumns(int j); public abstract string GetSubclassTableName(int j); protected abstract string GetTableName(int table); protected virtual bool[] GetTableUpdateNeeded(int[] dirtyProperties, bool hasDirtyCollection) => throw null; - protected internal NHibernate.Tuple.Entity.IEntityTuplizer GetTuplizer(NHibernate.Engine.ISessionImplementor session) => throw null; + protected NHibernate.Tuple.Entity.IEntityTuplizer GetTuplizer(NHibernate.Engine.ISessionImplementor session) => throw null; public virtual object GetVersion(object obj) => throw null; public virtual bool HasCache { get => throw null; } public virtual bool HasCascades { get => throw null; } @@ -28586,13 +24587,6 @@ namespace NHibernate public object[] Hydrate(System.Data.Common.DbDataReader rs, object id, object obj, NHibernate.Persister.Entity.ILoadable rootLoadable, string[][] suffixedPropertyColumns, bool allProperties, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task HydrateAsync(System.Data.Common.DbDataReader rs, object id, object obj, string[][] suffixedPropertyColumns, System.Collections.Generic.ISet fetchedLazyProperties, bool allProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task HydrateAsync(System.Data.Common.DbDataReader rs, object id, object obj, NHibernate.Persister.Entity.ILoadable rootLoadable, string[][] suffixedPropertyColumns, bool allProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - // Generated from `NHibernate.Persister.Entity.AbstractEntityPersister+IInclusionChecker` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected internal interface IInclusionChecker - { - bool IncludeProperty(int propertyNumber); - } - - public virtual NHibernate.SqlTypes.SqlType[] IdAndVersionSqlTypes { get => throw null; } public string[] IdentifierAliases { get => throw null; } public virtual string[] IdentifierColumnNames { get => throw null; } @@ -28602,34 +24596,40 @@ namespace NHibernate public virtual string IdentifierSelectFragment(string name, string suffix) => throw null; public virtual NHibernate.Type.IType IdentifierType { get => throw null; } public string IdentitySelectString { get => throw null; } + protected interface IInclusionChecker + { + bool IncludeProperty(int propertyNumber); + } public bool ImplementsLifecycle { get => throw null; } public bool ImplementsValidatable { get => throw null; } - protected internal virtual void InitLockers() => throw null; - protected void InitSubclassPropertyAliasesMap(NHibernate.Mapping.PersistentClass model) => throw null; public void InitializeLazyProperties(System.Data.Common.DbDataReader rs, object id, object entity, string[][] suffixedPropertyColumns, string[] uninitializedLazyProperties, bool allLazyProperties, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task InitializeLazyPropertiesAsync(System.Data.Common.DbDataReader rs, object id, object entity, string[][] suffixedPropertyColumns, string[] uninitializedLazyProperties, bool allLazyProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public virtual object InitializeLazyProperty(string fieldName, object entity, NHibernate.Engine.ISessionImplementor session) => throw null; - public void Insert(object id, object[] fields, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; - public object Insert(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; - protected void Insert(object id, object[] fields, bool[] notNull, int j, NHibernate.SqlCommand.SqlCommandInfo sql, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; + protected virtual void InitLockers() => throw null; + protected void InitSubclassPropertyAliasesMap(NHibernate.Mapping.PersistentClass model) => throw null; protected object Insert(object[] fields, bool[] notNull, NHibernate.SqlCommand.SqlCommandInfo sql, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task InsertAsync(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task InsertAsync(object id, object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected void Insert(object id, object[] fields, bool[] notNull, int j, NHibernate.SqlCommand.SqlCommandInfo sql, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; + public object Insert(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; + public void Insert(object id, object[] fields, object obj, NHibernate.Engine.ISessionImplementor session) => throw null; protected System.Threading.Tasks.Task InsertAsync(object[] fields, bool[] notNull, NHibernate.SqlCommand.SqlCommandInfo sql, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; protected System.Threading.Tasks.Task InsertAsync(object id, object[] fields, bool[] notNull, int j, NHibernate.SqlCommand.SqlCommandInfo sql, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task InsertAsync(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task InsertAsync(object id, object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected bool[] insertCallable; + protected NHibernate.Engine.ExecuteUpdateResultCheckStyle[] insertResultCheckStyles; public virtual object Instantiate(object id) => throw null; public NHibernate.Bytecode.IBytecodeEnhancementMetadata InstrumentationMetadata { get => throw null; } public virtual bool IsAbstract { get => throw null; } - public bool IsBatchLoadable { get => throw null; } public bool IsBatchable { get => throw null; } + public bool IsBatchLoadable { get => throw null; } public bool IsCacheInvalidationRequired { get => throw null; } protected abstract bool IsClassOrSuperclassTable(int j); public bool IsCollection { get => throw null; } public bool IsDefinedOnSubclass(int i) => throw null; protected bool IsDeleteCallable(int j) => throw null; public virtual bool IsExplicitPolymorphism { get => throw null; } - protected virtual bool IsIdOfTable(int property, int table) => throw null; public virtual bool IsIdentifierAssignedByInsert { get => throw null; } + protected virtual bool IsIdOfTable(int property, int table) => throw null; public virtual bool IsInherited { get => throw null; } protected bool IsInsertCallable(int j) => throw null; public bool IsInstance(object entity) => throw null; @@ -28649,18 +24649,18 @@ namespace NHibernate public virtual bool IsSubclassEntityName(string entityName) => throw null; protected virtual bool IsSubclassPropertyDeferred(string propertyName, string entityName) => throw null; public bool IsSubclassPropertyNullable(int i) => throw null; - protected internal virtual bool IsSubclassTableLazy(int j) => throw null; + protected virtual bool IsSubclassTableLazy(int j) => throw null; protected virtual bool IsSubclassTableSequentialSelect(int table) => throw null; protected abstract bool IsTableCascadeDeleteEnabled(int j); public virtual bool? IsTransient(object entity, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task IsTransientAsync(object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public bool? IsUnsavedVersion(object version) => throw null; protected bool IsUpdateCallable(int j) => throw null; - public bool IsVersionPropertyGenerated { get => throw null; } public virtual bool IsVersioned { get => throw null; } + public bool IsVersionPropertyGenerated { get => throw null; } public string[] JoinColumnNames { get => throw null; } public string[] KeyColumnNames { get => throw null; } - protected internal System.Collections.Generic.ISet LazyProperties { get => throw null; } + protected System.Collections.Generic.ISet LazyProperties { get => throw null; } public object Load(object id, object optionalObject, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task LoadAsync(object id, object optionalObject, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public object LoadByUniqueKey(string propertyName, object uniqueKey, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -28683,21 +24683,23 @@ namespace NHibernate public System.Threading.Tasks.Task ProcessUpdateGeneratedPropertiesAsync(object id, object entity, object[] state, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public virtual NHibernate.Engine.CascadeStyle[] PropertyCascadeStyles { get => throw null; } public virtual bool[] PropertyCheckability { get => throw null; } - public NHibernate.Engine.ValueInclusion[] PropertyInsertGenerationInclusions { get => throw null; } + protected bool[] propertyDefinedOnSubclass; public virtual bool[] PropertyInsertability { get => throw null; } + public NHibernate.Engine.ValueInclusion[] PropertyInsertGenerationInclusions { get => throw null; } public bool[] PropertyLaziness { get => throw null; } + protected NHibernate.Persister.Entity.BasicEntityPropertyMapping propertyMapping; public virtual string[] PropertyNames { get => throw null; } public virtual bool[] PropertyNullability { get => throw null; } public string PropertySelectFragment(string name, string suffix, bool allProperties) => throw null; public string PropertySelectFragment(string name, string suffix, System.Collections.Generic.ICollection fetchProperties) => throw null; public abstract string[] PropertySpaces { get; } protected int PropertySpan { get => throw null; } - protected internal string[] PropertySubclassNames { get => throw null; } - protected internal abstract int[] PropertyTableNumbers { get; } - protected internal abstract int[] PropertyTableNumbersInSelect { get; } + protected string[] PropertySubclassNames { get => throw null; } + protected abstract int[] PropertyTableNumbers { get; } + protected abstract int[] PropertyTableNumbersInSelect { get; } public virtual NHibernate.Type.IType[] PropertyTypes { get => throw null; } - public NHibernate.Engine.ValueInclusion[] PropertyUpdateGenerationInclusions { get => throw null; } public virtual bool[] PropertyUpdateability { get => throw null; } + public NHibernate.Engine.ValueInclusion[] PropertyUpdateGenerationInclusions { get => throw null; } public virtual bool[] PropertyVersionability { get => throw null; } public virtual string[] QuerySpaces { get => throw null; } protected NHibernate.SqlCommand.SqlString RenderSelect(int[] tableNumbers, int[] columnNumbers, int[] formulaNumbers) => throw null; @@ -28706,32 +24708,33 @@ namespace NHibernate public virtual string[] RootTableIdentifierColumnNames { get => throw null; } public string[] RootTableKeyColumnNames { get => throw null; } public virtual string RootTableName { get => throw null; } - protected internal NHibernate.SqlCommand.SqlCommandInfo SQLIdentityInsertString { get => throw null; } - protected NHibernate.SqlCommand.SqlString SQLLazySelectString { get => throw null; } - protected internal NHibernate.SqlCommand.SqlCommandInfo[] SQLLazyUpdateByRowIdStrings { get => throw null; } - protected internal NHibernate.SqlCommand.SqlCommandInfo[] SQLLazyUpdateStrings { get => throw null; } - protected NHibernate.SqlCommand.SqlString SQLSnapshotSelectString { get => throw null; } - protected internal NHibernate.SqlCommand.SqlCommandInfo[] SQLUpdateByRowIdStrings { get => throw null; } - public string SelectFragment(string alias, string suffix, bool fetchLazyProperties) => throw null; + protected string rowIdName; public string SelectFragment(string alias, string suffix) => throw null; - public string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string entitySuffix, string collectionSuffix, bool includeCollectionColumns, bool includeLazyProperties) => throw null; + public string SelectFragment(string alias, string suffix, bool fetchLazyProperties) => throw null; public string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string entitySuffix, string collectionSuffix, bool includeCollectionColumns) => throw null; + public string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string entitySuffix, string collectionSuffix, bool includeCollectionColumns, bool includeLazyProperties) => throw null; public string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null; public virtual void SetIdentifier(object obj, object id) => throw null; public void SetPropertyValue(object obj, int i, object value) => throw null; public virtual void SetPropertyValue(object obj, string propertyName, object value) => throw null; public void SetPropertyValues(object obj, object[] values) => throw null; protected NHibernate.SqlCommand.SqlCommandInfo[] SqlDeleteStrings { get => throw null; } + protected NHibernate.SqlCommand.SqlCommandInfo SQLIdentityInsertString { get => throw null; } protected NHibernate.SqlCommand.SqlCommandInfo[] SqlInsertStrings { get => throw null; } + protected NHibernate.SqlCommand.SqlString SQLLazySelectString { get => throw null; } + protected NHibernate.SqlCommand.SqlCommandInfo[] SQLLazyUpdateByRowIdStrings { get => throw null; } + protected NHibernate.SqlCommand.SqlCommandInfo[] SQLLazyUpdateStrings { get => throw null; } + protected NHibernate.SqlCommand.SqlString SQLSnapshotSelectString { get => throw null; } + protected NHibernate.SqlCommand.SqlCommandInfo[] SQLUpdateByRowIdStrings { get => throw null; } protected NHibernate.SqlCommand.SqlCommandInfo[] SqlUpdateStrings { get => throw null; } public abstract string[] SubclassClosure { get; } protected string[] SubclassColumnAliasClosure { get => throw null; } protected string[] SubclassColumnClosure { get => throw null; } - protected internal bool[] SubclassColumnLaziness { get => throw null; } + protected bool[] SubclassColumnLaziness { get => throw null; } protected abstract int[] SubclassColumnTableNumberClosure { get; } protected string[] SubclassFormulaAliasClosure { get => throw null; } protected string[] SubclassFormulaClosure { get => throw null; } - protected internal bool[] SubclassFormulaLaziness { get => throw null; } + protected bool[] SubclassFormulaLaziness { get => throw null; } protected abstract int[] SubclassFormulaTableNumberClosure { get; } protected string[] SubclassFormulaTemplateClosure { get => throw null; } protected string[][] SubclassPropertyColumnNameClosure { get => throw null; } @@ -28740,6 +24743,7 @@ namespace NHibernate protected string[] SubclassPropertySubclassNameClosure { get => throw null; } protected NHibernate.Type.IType[] SubclassPropertyTypeClosure { get => throw null; } protected abstract int SubclassTableSpan { get; } + public bool SupportsQueryCache { get => throw null; } protected bool[] TableHasColumns { get => throw null; } public abstract string TableName { get; } protected abstract int TableSpan { get; } @@ -28753,58 +24757,49 @@ namespace NHibernate public NHibernate.Type.IType ToType(string propertyName) => throw null; public bool TryToType(string propertyName, out NHibernate.Type.IType type) => throw null; public NHibernate.Type.IType Type { get => throw null; } - public void Update(object id, object[] fields, int[] dirtyFields, bool hasDirtyCollection, object[] oldFields, object oldVersion, object obj, object rowId, NHibernate.Engine.ISessionImplementor session) => throw null; protected bool Update(object id, object[] fields, object[] oldFields, object rowId, bool[] includeProperty, int j, object oldVersion, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session) => throw null; - public System.Threading.Tasks.Task UpdateAsync(object id, object[] fields, int[] dirtyFields, bool hasDirtyCollection, object[] oldFields, object oldVersion, object obj, object rowId, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public void Update(object id, object[] fields, int[] dirtyFields, bool hasDirtyCollection, object[] oldFields, object oldVersion, object obj, object rowId, NHibernate.Engine.ISessionImplementor session) => throw null; protected System.Threading.Tasks.Task UpdateAsync(object id, object[] fields, object[] oldFields, object rowId, bool[] includeProperty, int j, object oldVersion, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected internal virtual void UpdateOrInsert(object id, object[] fields, object[] oldFields, object rowId, bool[] includeProperty, int j, object oldVersion, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session) => throw null; - protected internal virtual System.Threading.Tasks.Task UpdateOrInsertAsync(object id, object[] fields, object[] oldFields, object rowId, bool[] includeProperty, int j, object oldVersion, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task UpdateAsync(object id, object[] fields, int[] dirtyFields, bool hasDirtyCollection, object[] oldFields, object oldVersion, object obj, object rowId, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected bool[] updateCallable; + protected virtual void UpdateOrInsert(object id, object[] fields, object[] oldFields, object rowId, bool[] includeProperty, int j, object oldVersion, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session) => throw null; + protected virtual System.Threading.Tasks.Task UpdateOrInsertAsync(object id, object[] fields, object[] oldFields, object rowId, bool[] includeProperty, int j, object oldVersion, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected NHibernate.Engine.ExecuteUpdateResultCheckStyle[] updateResultCheckStyles; protected virtual bool UseDynamicInsert { get => throw null; } protected virtual bool UseDynamicUpdate { get => throw null; } protected bool UseGetGeneratedKeys() => throw null; protected bool UseInsertSelectIdentity() => throw null; public virtual string VersionColumnName { get => throw null; } public System.Collections.IComparer VersionComparator { get => throw null; } + protected string VersionedTableName { get => throw null; } public virtual int VersionProperty { get => throw null; } public bool VersionPropertyInsertable { get => throw null; } protected NHibernate.SqlCommand.SqlString VersionSelectString { get => throw null; } public virtual NHibernate.Type.IVersionType VersionType { get => throw null; } - protected internal string VersionedTableName { get => throw null; } public virtual NHibernate.SqlCommand.SqlString WhereJoinFragment(string alias, bool innerJoin, bool includeSubclasses) => throw null; - protected internal NHibernate.SqlCommand.SqlString[] customSQLDelete; - protected internal NHibernate.SqlCommand.SqlString[] customSQLInsert; - protected internal NHibernate.SqlCommand.SqlString[] customSQLUpdate; - protected internal bool[] deleteCallable; - protected internal NHibernate.Engine.ExecuteUpdateResultCheckStyle[] deleteResultCheckStyles; - protected internal bool[] insertCallable; - protected internal NHibernate.Engine.ExecuteUpdateResultCheckStyle[] insertResultCheckStyles; - protected bool[] propertyDefinedOnSubclass; - protected NHibernate.Persister.Entity.BasicEntityPropertyMapping propertyMapping; - protected internal string rowIdName; - protected internal bool[] updateCallable; - protected internal NHibernate.Engine.ExecuteUpdateResultCheckStyle[] updateResultCheckStyles; } - - // Generated from `NHibernate.Persister.Entity.AbstractPropertyMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public static partial class AbstractEntityPersisterExtensions + { + public static NHibernate.SqlCommand.SelectFragment GetIdentifierSelectFragment(this NHibernate.Persister.Entity.IQueryable queryable, string alias, string suffix) => throw null; + public static NHibernate.SqlCommand.SelectFragment GetPropertiesSelectFragment(this NHibernate.Persister.Entity.IQueryable queryable, string alias, string suffix, bool allProperties) => throw null; + } public abstract class AbstractPropertyMapping : NHibernate.Persister.Entity.IPropertyMapping { - protected AbstractPropertyMapping() => throw null; protected void AddPropertyPath(string path, NHibernate.Type.IType type, string[] columns, string[] formulaTemplates) => throw null; + protected AbstractPropertyMapping() => throw null; protected abstract string EntityName { get; } public string[] GetColumnNames(string propertyName) => throw null; public virtual string[] IdentifierColumnNames { get => throw null; } protected void InitComponentPropertyPaths(string path, NHibernate.Type.IAbstractComponentType type, string[] columns, string[] formulaTemplates, NHibernate.Engine.IMapping factory) => throw null; protected void InitIdentifierPropertyPaths(string path, NHibernate.Type.EntityType etype, string[] columns, NHibernate.Engine.IMapping factory) => throw null; - protected internal void InitPropertyPaths(string path, NHibernate.Type.IType type, string[] columns, string[] formulaTemplates, NHibernate.Engine.IMapping factory) => throw null; + protected void InitPropertyPaths(string path, NHibernate.Type.IType type, string[] columns, string[] formulaTemplates, NHibernate.Engine.IMapping factory) => throw null; protected NHibernate.QueryException PropertyException(string propertyName) => throw null; - public virtual string[] ToColumns(string propertyName) => throw null; public virtual string[] ToColumns(string alias, string propertyName) => throw null; + public virtual string[] ToColumns(string propertyName) => throw null; public NHibernate.Type.IType ToType(string propertyName) => throw null; public bool TryToType(string propertyName, out NHibernate.Type.IType type) => throw null; public abstract NHibernate.Type.IType Type { get; } } - - // Generated from `NHibernate.Persister.Entity.BasicEntityPropertyMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BasicEntityPropertyMapping : NHibernate.Persister.Entity.AbstractPropertyMapping { public BasicEntityPropertyMapping(NHibernate.Persister.Entity.AbstractEntityPersister persister) => throw null; @@ -28813,32 +24808,23 @@ namespace NHibernate public override string[] ToColumns(string alias, string propertyName) => throw null; public override NHibernate.Type.IType Type { get => throw null; } } - - // Generated from `NHibernate.Persister.Entity.Declarer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum Declarer { - Class, - SubClass, - SuperClass, + Class = 0, + SubClass = 1, + SuperClass = 2, } - - // Generated from `NHibernate.Persister.Entity.EntityLoadInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EntityLoadInfo + public sealed class EntityLoadInfo { public EntityLoadInfo(string entitySuffix) => throw null; public string EntitySuffix { get => throw null; } - public bool IncludeLazyProps { get => throw null; set => throw null; } - public System.Collections.Generic.ISet LazyProperties { get => throw null; set => throw null; } + public bool IncludeLazyProps { get => throw null; set { } } + public System.Collections.Generic.ISet LazyProperties { get => throw null; set { } } } - - // Generated from `NHibernate.Persister.Entity.EntityPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public struct EntityPersister { public static string EntityID; - // Stub generator skipped constructor } - - // Generated from `NHibernate.Persister.Entity.IEntityPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntityPersister : NHibernate.Cache.IOptimisticCacheSource { void AfterInitialize(object entity, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session); @@ -28870,8 +24856,8 @@ namespace NHibernate object[] GetNaturalIdentifierSnapshot(object id, NHibernate.Engine.ISessionImplementor session); System.Threading.Tasks.Task GetNaturalIdentifierSnapshotAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); NHibernate.Type.IType GetPropertyType(string propertyName); - object GetPropertyValue(object obj, string name); object GetPropertyValue(object obj, int i); + object GetPropertyValue(object obj, string name); object[] GetPropertyValues(object obj); object[] GetPropertyValuesToInsert(object obj, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session); NHibernate.Persister.Entity.IEntityPersister GetSubclassEntityPersister(object instance, NHibernate.Engine.ISessionFactoryImplementor factory); @@ -28895,8 +24881,8 @@ namespace NHibernate bool ImplementsValidatable { get; } void Insert(object id, object[] fields, object obj, NHibernate.Engine.ISessionImplementor session); object Insert(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session); - System.Threading.Tasks.Task InsertAsync(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task InsertAsync(object id, object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task InsertAsync(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); object Instantiate(object id); bool IsBatchLoadable { get; } bool IsCacheInvalidationRequired { get; } @@ -28911,8 +24897,8 @@ namespace NHibernate bool? IsTransient(object obj, NHibernate.Engine.ISessionImplementor session); System.Threading.Tasks.Task IsTransientAsync(object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); bool? IsUnsavedVersion(object version); - bool IsVersionPropertyGenerated { get; } bool IsVersioned { get; } + bool IsVersionPropertyGenerated { get; } object Load(object id, object optionalObject, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session); System.Threading.Tasks.Task LoadAsync(object id, object optionalObject, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); void Lock(object id, object version, object obj, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session); @@ -28926,15 +24912,15 @@ namespace NHibernate System.Threading.Tasks.Task ProcessUpdateGeneratedPropertiesAsync(object id, object entity, object[] state, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); NHibernate.Engine.CascadeStyle[] PropertyCascadeStyles { get; } bool[] PropertyCheckability { get; } - NHibernate.Engine.ValueInclusion[] PropertyInsertGenerationInclusions { get; } bool[] PropertyInsertability { get; } + NHibernate.Engine.ValueInclusion[] PropertyInsertGenerationInclusions { get; } bool[] PropertyLaziness { get; } string[] PropertyNames { get; } bool[] PropertyNullability { get; } string[] PropertySpaces { get; } NHibernate.Type.IType[] PropertyTypes { get; } - NHibernate.Engine.ValueInclusion[] PropertyUpdateGenerationInclusions { get; } bool[] PropertyUpdateability { get; } + NHibernate.Engine.ValueInclusion[] PropertyUpdateGenerationInclusions { get; } bool[] PropertyVersionability { get; } string[] QuerySpaces { get; } void ResetIdentifier(object entity, object currentId, object currentVersion); @@ -28947,8 +24933,6 @@ namespace NHibernate int VersionProperty { get; } NHibernate.Type.IVersionType VersionType { get; } } - - // Generated from `NHibernate.Persister.Entity.IJoinable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IJoinable { bool ConsumesCollectionAlias(); @@ -28964,8 +24948,6 @@ namespace NHibernate string TableName { get; } NHibernate.SqlCommand.SqlString WhereJoinFragment(string alias, bool innerJoin, bool includeSubclasses); } - - // Generated from `NHibernate.Persister.Entity.ILoadable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ILoadable : NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource { string DiscriminatorColumnName { get; } @@ -28982,8 +24964,6 @@ namespace NHibernate string[] IdentifierColumnNames { get; } bool IsAbstract { get; } } - - // Generated from `NHibernate.Persister.Entity.ILockable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ILockable : NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource { string GetRootTableAlias(string drivingAlias); @@ -28992,9 +24972,7 @@ namespace NHibernate string RootTableName { get; } string VersionColumnName { get; } } - - // Generated from `NHibernate.Persister.Entity.IOuterJoinLoadable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IOuterJoinLoadable : NHibernate.Persister.Entity.ILoadable, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource + public interface IOuterJoinLoadable : NHibernate.Persister.Entity.ILoadable, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource, NHibernate.Persister.Entity.IJoinable { int CountSubclassProperties(); NHibernate.Type.EntityType EntityType { get; } @@ -29014,19 +24992,15 @@ namespace NHibernate string[] ToColumns(string name, int i); string[] ToIdentifierColumns(string alias); } - - // Generated from `NHibernate.Persister.Entity.IPropertyMapping` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IPropertyMapping { - string[] ToColumns(string propertyName); string[] ToColumns(string alias, string propertyName); + string[] ToColumns(string propertyName); NHibernate.Type.IType ToType(string propertyName); bool TryToType(string propertyName, out NHibernate.Type.IType type); NHibernate.Type.IType Type { get; } } - - // Generated from `NHibernate.Persister.Entity.IQueryable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IQueryable : NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.ILoadable, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource + public interface IQueryable : NHibernate.Persister.Entity.ILoadable, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.IJoinable { string[][] ConstraintOrderedTableKeyColumnClosure { get; } string[] ConstraintOrderedTableNameClosure { get; } @@ -29045,8 +25019,6 @@ namespace NHibernate string TemporaryIdTableName { get; } bool VersionPropertyInsertable { get; } } - - // Generated from `NHibernate.Persister.Entity.ISqlLoadable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISqlLoadable : NHibernate.Persister.Entity.ILoadable, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource { string[] GetSubclassPropertyColumnAliases(string propertyName, string suffix); @@ -29054,34 +25026,23 @@ namespace NHibernate string SelectFragment(string alias, string suffix); NHibernate.Type.IType Type { get; } } - - // Generated from `NHibernate.Persister.Entity.ISupportLazyPropsJoinable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - internal interface ISupportLazyPropsJoinable - { - string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo); - } - - // Generated from `NHibernate.Persister.Entity.ISupportSelectModeJoinable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISupportSelectModeJoinable { string IdentifierSelectFragment(string name, string suffix); string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string entitySuffix, string currentCollectionSuffix, bool includeCollectionColumns, bool includeLazyProperties); } - - // Generated from `NHibernate.Persister.Entity.IUniqueKeyLoadable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IUniqueKeyLoadable { int GetPropertyIndex(string propertyName); object LoadByUniqueKey(string propertyName, object uniqueKey, NHibernate.Engine.ISessionImplementor session); System.Threading.Tasks.Task LoadByUniqueKeyAsync(string propertyName, object uniqueKey, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Persister.Entity.JoinedSubclassEntityPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class JoinedSubclassEntityPersister : NHibernate.Persister.Entity.AbstractEntityPersister { protected override void AddDiscriminatorToSelect(NHibernate.SqlCommand.SelectFragment select, string name, string suffix) => throw null; public override string[][] ConstraintOrderedTableKeyColumnClosure { get => throw null; } public override string[] ConstraintOrderedTableNameClosure { get => throw null; } + public JoinedSubclassEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Mapping.PersistentClass), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; public override string DiscriminatorSQLValue { get => throw null; } public override NHibernate.Type.IType DiscriminatorType { get => throw null; } public override object DiscriminatorValue { get => throw null; } @@ -29105,10 +25066,9 @@ namespace NHibernate public override bool IsMultiTable { get => throw null; } protected override bool IsPropertyOfTable(int property, int table) => throw null; protected override bool IsTableCascadeDeleteEnabled(int j) => throw null; - public JoinedSubclassEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Mapping.PersistentClass), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; public override string[] PropertySpaces { get => throw null; } - protected internal override int[] PropertyTableNumbers { get => throw null; } - protected internal override int[] PropertyTableNumbersInSelect { get => throw null; } + protected override int[] PropertyTableNumbers { get => throw null; } + protected override int[] PropertyTableNumbersInSelect { get => throw null; } public override string RootTableName { get => throw null; } public override string[] SubclassClosure { get => throw null; } protected override int[] SubclassColumnTableNumberClosure { get => throw null; } @@ -29118,37 +25078,29 @@ namespace NHibernate protected override int TableSpan { get => throw null; } public override string[] ToColumns(string alias, string propertyName) => throw null; } - - // Generated from `NHibernate.Persister.Entity.Loadable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public struct Loadable { - // Stub generator skipped constructor public static string RowIdAlias; } - - // Generated from `NHibernate.Persister.Entity.LoadableExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class LoadableExtensions + public static partial class LoadableExtensions { public static object[] Hydrate(this NHibernate.Persister.Entity.ILoadable loadable, System.Data.Common.DbDataReader rs, object id, object obj, string[][] suffixedPropertyColumns, System.Collections.Generic.ISet fetchedLazyProperties, bool allProperties, NHibernate.Engine.ISessionImplementor session) => throw null; public static System.Threading.Tasks.Task HydrateAsync(this NHibernate.Persister.Entity.ILoadable loadable, System.Data.Common.DbDataReader rs, object id, object obj, string[][] suffixedPropertyColumns, System.Collections.Generic.ISet fetchedLazyProperties, bool allProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Persister.Entity.NamedQueryLoader` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NamedQueryLoader : NHibernate.Loader.Entity.IUniqueEntityLoader { + public NamedQueryLoader(string queryName, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; public object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public NamedQueryLoader(string queryName, NHibernate.Persister.Entity.IEntityPersister persister) => throw null; } - - // Generated from `NHibernate.Persister.Entity.SingleTableEntityPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SingleTableEntityPersister : NHibernate.Persister.Entity.AbstractEntityPersister, NHibernate.Persister.Entity.IQueryable, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.ILoadable, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource + public class SingleTableEntityPersister : NHibernate.Persister.Entity.AbstractEntityPersister, NHibernate.Persister.Entity.IQueryable, NHibernate.Persister.Entity.ILoadable, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.IJoinable { protected override void AddDiscriminatorToInsert(NHibernate.SqlCommand.SqlInsertBuilder insert) => throw null; protected override void AddDiscriminatorToSelect(NHibernate.SqlCommand.SelectFragment select, string name, string suffix) => throw null; public override string[][] ConstraintOrderedTableKeyColumnClosure { get => throw null; } public override string[] ConstraintOrderedTableNameClosure { get => throw null; } - protected internal override string DiscriminatorAlias { get => throw null; } + public SingleTableEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Mapping.PersistentClass), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; + protected override string DiscriminatorAlias { get => throw null; } public override string DiscriminatorColumnName { get => throw null; } protected string DiscriminatorFormula { get => throw null; } protected override string DiscriminatorFormulaTemplate { get => throw null; } @@ -29159,8 +25111,8 @@ namespace NHibernate public override string FromTableFragment(string name) => throw null; public override NHibernate.Type.IType GetIdentifierType(int j) => throw null; protected override string[] GetJoinIdKeyColumns(int j) => throw null; - protected override object GetJoinTableId(int table, object[] fields) => throw null; protected override object GetJoinTableId(int table, object obj) => throw null; + protected override object GetJoinTableId(int table, object[] fields) => throw null; protected override string[] GetKeyColumns(int table) => throw null; public override string GetPropertyTableName(string propertyName) => throw null; protected override int? GetRefIdColumnOfTable(int table) => throw null; @@ -29168,8 +25120,8 @@ namespace NHibernate protected override NHibernate.SqlCommand.SqlString GetSequentialSelect() => throw null; public override string GetSubclassForDiscriminatorValue(object value) => throw null; public override string GetSubclassPropertyTableName(int i) => throw null; - public int GetSubclassPropertyTableNumber(string propertyName, string entityName) => throw null; protected override int GetSubclassPropertyTableNumber(int i) => throw null; + public int GetSubclassPropertyTableNumber(string propertyName, string entityName) => throw null; protected override string[] GetSubclassTableKeyColumns(int j) => throw null; public override string GetSubclassTableName(int j) => throw null; protected override string GetTableName(int table) => throw null; @@ -29185,15 +25137,14 @@ namespace NHibernate protected override bool IsPropertyDeferred(int propertyIndex) => throw null; protected override bool IsPropertyOfTable(int property, int table) => throw null; protected override bool IsSubclassPropertyDeferred(string propertyName, string entityName) => throw null; - protected internal override bool IsSubclassTableLazy(int j) => throw null; + protected override bool IsSubclassTableLazy(int j) => throw null; protected override bool IsSubclassTableSequentialSelect(int table) => throw null; protected override bool IsTableCascadeDeleteEnabled(int j) => throw null; public override string OneToManyFilterFragment(string alias) => throw null; public override void PostInstantiate() => throw null; public override string[] PropertySpaces { get => throw null; } - protected internal override int[] PropertyTableNumbers { get => throw null; } - protected internal override int[] PropertyTableNumbersInSelect { get => throw null; } - public SingleTableEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Mapping.PersistentClass), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; + protected override int[] PropertyTableNumbers { get => throw null; } + protected override int[] PropertyTableNumbersInSelect { get => throw null; } public override string[] SubclassClosure { get => throw null; } protected override int[] SubclassColumnTableNumberClosure { get => throw null; } protected override int[] SubclassFormulaTableNumberClosure { get => throw null; } @@ -29201,13 +25152,12 @@ namespace NHibernate public override string TableName { get => throw null; } protected override int TableSpan { get => throw null; } } - - // Generated from `NHibernate.Persister.Entity.UnionSubclassEntityPersister` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class UnionSubclassEntityPersister : NHibernate.Persister.Entity.AbstractEntityPersister { protected override void AddDiscriminatorToSelect(NHibernate.SqlCommand.SelectFragment select, string name, string suffix) => throw null; public override string[][] ConstraintOrderedTableKeyColumnClosure { get => throw null; } public override string[] ConstraintOrderedTableNameClosure { get => throw null; } + public UnionSubclassEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Mapping.PersistentClass), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; public override string DiscriminatorSQLValue { get => throw null; } public override NHibernate.Type.IType DiscriminatorType { get => throw null; } public override object DiscriminatorValue { get => throw null; } @@ -29218,8 +25168,8 @@ namespace NHibernate public override string GetPropertyTableName(string propertyName) => throw null; public override string GetSubclassForDiscriminatorValue(object value) => throw null; public override string GetSubclassPropertyTableName(int i) => throw null; - public override int GetSubclassPropertyTableNumber(string propertyName) => throw null; protected override int GetSubclassPropertyTableNumber(int i) => throw null; + public override int GetSubclassPropertyTableNumber(string propertyName) => throw null; protected override string[] GetSubclassTableKeyColumns(int j) => throw null; public override string GetSubclassTableName(int j) => throw null; protected override string GetTableName(int table) => throw null; @@ -29228,8 +25178,8 @@ namespace NHibernate protected override bool IsPropertyOfTable(int property, int j) => throw null; protected override bool IsTableCascadeDeleteEnabled(int j) => throw null; public override string[] PropertySpaces { get => throw null; } - protected internal override int[] PropertyTableNumbers { get => throw null; } - protected internal override int[] PropertyTableNumbersInSelect { get => throw null; } + protected override int[] PropertyTableNumbers { get => throw null; } + protected override int[] PropertyTableNumbersInSelect { get => throw null; } public override string[] QuerySpaces { get => throw null; } public override string[] SubclassClosure { get => throw null; } protected override int[] SubclassColumnTableNumberClosure { get => throw null; } @@ -29237,42 +25187,39 @@ namespace NHibernate protected override int SubclassTableSpan { get => throw null; } public override string TableName { get => throw null; } protected override int TableSpan { get => throw null; } - public UnionSubclassEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Mapping.PersistentClass), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null; } - - // Generated from `NHibernate.Persister.Entity.UniqueKeyLoadableExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class UniqueKeyLoadableExtensions + public static partial class UniqueKeyLoadableExtensions { public static void CacheByUniqueKeys(this NHibernate.Persister.Entity.IUniqueKeyLoadable ukLoadable, object entity, NHibernate.Engine.ISessionImplementor session) => throw null; public static System.Threading.Tasks.Task CacheByUniqueKeysAsync(this NHibernate.Persister.Entity.IUniqueKeyLoadable ukLoadable, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; } - + } + public static class PersisterFactory + { + public static NHibernate.Persister.Entity.IEntityPersister Create(System.Type persisterClass, NHibernate.Mapping.PersistentClass model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping cfg) => throw null; + public static NHibernate.Persister.Collection.ICollectionPersister Create(System.Type persisterClass, NHibernate.Mapping.Collection model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public static NHibernate.Persister.Entity.IEntityPersister CreateClassPersister(NHibernate.Mapping.PersistentClass model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping cfg) => throw null; + public static NHibernate.Persister.Collection.ICollectionPersister CreateCollectionPersister(NHibernate.Mapping.Collection model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; } } namespace Properties { - // Generated from `NHibernate.Properties.BackFieldStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BackFieldStrategy : NHibernate.Properties.IFieldNamingStrategy { public BackFieldStrategy() => throw null; public string GetFieldName(string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.BackrefPropertyAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BackrefPropertyAccessor : NHibernate.Properties.IPropertyAccessor { - public BackrefPropertyAccessor(string collectionRole, string entityName) => throw null; public bool CanAccessThroughReflectionOptimizer { get => throw null; } + public BackrefPropertyAccessor(string collectionRole, string entityName) => throw null; public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null; public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null; public static object Unknown; } - - // Generated from `NHibernate.Properties.BasicPropertyAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BasicPropertyAccessor : NHibernate.Properties.IPropertyAccessor { - // Generated from `NHibernate.Properties.BasicPropertyAccessor+BasicGetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BasicGetter : NHibernate.Properties.IOptimizableGetter, NHibernate.Properties.IGetter + public sealed class BasicGetter : NHibernate.Properties.IGetter, NHibernate.Properties.IOptimizableGetter { public BasicGetter(System.Type clazz, System.Reflection.PropertyInfo property, string propertyName) => throw null; public void Emit(System.Reflection.Emit.ILGenerator il) => throw null; @@ -29283,11 +25230,7 @@ namespace NHibernate public string PropertyName { get => throw null; } public System.Type ReturnType { get => throw null; } } - - - public BasicPropertyAccessor() => throw null; - // Generated from `NHibernate.Properties.BasicPropertyAccessor+BasicSetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BasicSetter : NHibernate.Properties.ISetter, NHibernate.Properties.IOptimizableSetter + public sealed class BasicSetter : NHibernate.Properties.ISetter, NHibernate.Properties.IOptimizableSetter { public BasicSetter(System.Type clazz, System.Reflection.PropertyInfo property, string propertyName) => throw null; public void Emit(System.Reflection.Emit.ILGenerator il) => throw null; @@ -29297,35 +25240,26 @@ namespace NHibernate public void Set(object target, object value) => throw null; public System.Type Type { get => throw null; } } - - public bool CanAccessThroughReflectionOptimizer { get => throw null; } + public BasicPropertyAccessor() => throw null; public NHibernate.Properties.IGetter GetGetter(System.Type type, string propertyName) => throw null; public NHibernate.Properties.ISetter GetSetter(System.Type type, string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.CamelCaseMUnderscoreStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CamelCaseMUnderscoreStrategy : NHibernate.Properties.IFieldNamingStrategy { public CamelCaseMUnderscoreStrategy() => throw null; public string GetFieldName(string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.CamelCaseStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CamelCaseStrategy : NHibernate.Properties.IFieldNamingStrategy { public CamelCaseStrategy() => throw null; public string GetFieldName(string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.CamelCaseUnderscoreStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CamelCaseUnderscoreStrategy : NHibernate.Properties.IFieldNamingStrategy { public CamelCaseUnderscoreStrategy() => throw null; public string GetFieldName(string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.ChainedPropertyAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ChainedPropertyAccessor : NHibernate.Properties.IPropertyAccessor { public bool CanAccessThroughReflectionOptimizer { get => throw null; } @@ -29333,13 +25267,11 @@ namespace NHibernate public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null; public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.EmbeddedPropertyAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EmbeddedPropertyAccessor : NHibernate.Properties.IPropertyAccessor { public bool CanAccessThroughReflectionOptimizer { get => throw null; } - // Generated from `NHibernate.Properties.EmbeddedPropertyAccessor+EmbeddedGetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EmbeddedGetter : NHibernate.Properties.IGetter + public EmbeddedPropertyAccessor() => throw null; + public sealed class EmbeddedGetter : NHibernate.Properties.IGetter { public object Get(object target) => throw null; public object GetForInsert(object owner, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -29348,66 +25280,48 @@ namespace NHibernate public System.Type ReturnType { get => throw null; } public override string ToString() => throw null; } - - - public EmbeddedPropertyAccessor() => throw null; - // Generated from `NHibernate.Properties.EmbeddedPropertyAccessor+EmbeddedSetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EmbeddedSetter : NHibernate.Properties.ISetter + public sealed class EmbeddedSetter : NHibernate.Properties.ISetter { public System.Reflection.MethodInfo Method { get => throw null; } public string PropertyName { get => throw null; } public void Set(object target, object value) => throw null; public override string ToString() => throw null; } - - public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null; public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.FieldAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class FieldAccessor : NHibernate.Properties.IPropertyAccessor { public bool CanAccessThroughReflectionOptimizer { get => throw null; } - public FieldAccessor(NHibernate.Properties.IFieldNamingStrategy namingStrategy) => throw null; public FieldAccessor() => throw null; - // Generated from `NHibernate.Properties.FieldAccessor+FieldGetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FieldGetter : NHibernate.Properties.IOptimizableGetter, NHibernate.Properties.IGetter + public FieldAccessor(NHibernate.Properties.IFieldNamingStrategy namingStrategy) => throw null; + public sealed class FieldGetter : NHibernate.Properties.IGetter, NHibernate.Properties.IOptimizableGetter { - public void Emit(System.Reflection.Emit.ILGenerator il) => throw null; public FieldGetter(System.Reflection.FieldInfo field, System.Type clazz, string name) => throw null; + public void Emit(System.Reflection.Emit.ILGenerator il) => throw null; public object Get(object target) => throw null; public object GetForInsert(object owner, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Reflection.MethodInfo Method { get => throw null; } public string PropertyName { get => throw null; } public System.Type ReturnType { get => throw null; } } - - - // Generated from `NHibernate.Properties.FieldAccessor+FieldSetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FieldSetter : NHibernate.Properties.ISetter, NHibernate.Properties.IOptimizableSetter + public sealed class FieldSetter : NHibernate.Properties.ISetter, NHibernate.Properties.IOptimizableSetter { - public void Emit(System.Reflection.Emit.ILGenerator il) => throw null; public FieldSetter(System.Reflection.FieldInfo field, System.Type clazz, string name) => throw null; + public void Emit(System.Reflection.Emit.ILGenerator il) => throw null; public System.Reflection.MethodInfo Method { get => throw null; } public string PropertyName { get => throw null; } public void Set(object target, object value) => throw null; public System.Type Type { get => throw null; } } - - public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null; public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null; public NHibernate.Properties.IFieldNamingStrategy NamingStrategy { get => throw null; } } - - // Generated from `NHibernate.Properties.IFieldNamingStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IFieldNamingStrategy { string GetFieldName(string propertyName); } - - // Generated from `NHibernate.Properties.IGetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IGetter { object Get(object target); @@ -29416,90 +25330,67 @@ namespace NHibernate string PropertyName { get; } System.Type ReturnType { get; } } - - // Generated from `NHibernate.Properties.IOptimizableGetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IOptimizableGetter - { - void Emit(System.Reflection.Emit.ILGenerator il); - } - - // Generated from `NHibernate.Properties.IOptimizableSetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IOptimizableSetter - { - void Emit(System.Reflection.Emit.ILGenerator il); - System.Type Type { get; } - } - - // Generated from `NHibernate.Properties.IPropertyAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IPropertyAccessor - { - bool CanAccessThroughReflectionOptimizer { get; } - NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName); - NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName); - } - - // Generated from `NHibernate.Properties.ISetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISetter - { - System.Reflection.MethodInfo Method { get; } - string PropertyName { get; } - void Set(object target, object value); - } - - // Generated from `NHibernate.Properties.IndexPropertyAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class IndexPropertyAccessor : NHibernate.Properties.IPropertyAccessor { public bool CanAccessThroughReflectionOptimizer { get => throw null; } + public IndexPropertyAccessor(string collectionRole, string entityName) => throw null; public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null; public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null; - // Generated from `NHibernate.Properties.IndexPropertyAccessor+IndexGetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class IndexGetter : NHibernate.Properties.IGetter { + public IndexGetter(NHibernate.Properties.IndexPropertyAccessor encloser) => throw null; public object Get(object target) => throw null; public object GetForInsert(object owner, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null; - public IndexGetter(NHibernate.Properties.IndexPropertyAccessor encloser) => throw null; public System.Reflection.MethodInfo Method { get => throw null; } public string PropertyName { get => throw null; } public System.Type ReturnType { get => throw null; } } - - - public IndexPropertyAccessor(string collectionRole, string entityName) => throw null; - // Generated from `NHibernate.Properties.IndexPropertyAccessor+IndexSetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IndexSetter : NHibernate.Properties.ISetter + public sealed class IndexSetter : NHibernate.Properties.ISetter { public IndexSetter() => throw null; public System.Reflection.MethodInfo Method { get => throw null; } public string PropertyName { get => throw null; } public void Set(object target, object value) => throw null; } - - } - - // Generated from `NHibernate.Properties.LowerCaseStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public interface IOptimizableGetter + { + void Emit(System.Reflection.Emit.ILGenerator il); + } + public interface IOptimizableSetter + { + void Emit(System.Reflection.Emit.ILGenerator il); + System.Type Type { get; } + } + public interface IPropertyAccessor + { + bool CanAccessThroughReflectionOptimizer { get; } + NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName); + NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName); + } + public interface ISetter + { + System.Reflection.MethodInfo Method { get; } + string PropertyName { get; } + void Set(object target, object value); + } public class LowerCaseStrategy : NHibernate.Properties.IFieldNamingStrategy { - public string GetFieldName(string propertyName) => throw null; public LowerCaseStrategy() => throw null; + public string GetFieldName(string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.LowerCaseUnderscoreStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class LowerCaseUnderscoreStrategy : NHibernate.Properties.IFieldNamingStrategy { - public string GetFieldName(string propertyName) => throw null; public LowerCaseUnderscoreStrategy() => throw null; + public string GetFieldName(string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.MapAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MapAccessor : NHibernate.Properties.IPropertyAccessor { public bool CanAccessThroughReflectionOptimizer { get => throw null; } + public MapAccessor() => throw null; public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null; public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null; - public MapAccessor() => throw null; - // Generated from `NHibernate.Properties.MapAccessor+MapGetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapGetter : NHibernate.Properties.IGetter + public sealed class MapGetter : NHibernate.Properties.IGetter { public object Get(object target) => throw null; public object GetForInsert(object owner, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -29507,143 +25398,141 @@ namespace NHibernate public string PropertyName { get => throw null; } public System.Type ReturnType { get => throw null; } } - - - // Generated from `NHibernate.Properties.MapAccessor+MapSetter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapSetter : NHibernate.Properties.ISetter + public sealed class MapSetter : NHibernate.Properties.ISetter { public System.Reflection.MethodInfo Method { get => throw null; } public string PropertyName { get => throw null; } public void Set(object target, object value) => throw null; } - - } - - // Generated from `NHibernate.Properties.NoSetterAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NoSetterAccessor : NHibernate.Properties.IPropertyAccessor - { - public bool CanAccessThroughReflectionOptimizer { get => throw null; } - public NHibernate.Properties.IGetter GetGetter(System.Type type, string propertyName) => throw null; - public NHibernate.Properties.ISetter GetSetter(System.Type type, string propertyName) => throw null; - public NoSetterAccessor(NHibernate.Properties.IFieldNamingStrategy namingStrategy) => throw null; - } - - // Generated from `NHibernate.Properties.NoopAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class NoopAccessor : NHibernate.Properties.IPropertyAccessor { public bool CanAccessThroughReflectionOptimizer { get => throw null; } + public NoopAccessor() => throw null; public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null; public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null; - public NoopAccessor() => throw null; } - - // Generated from `NHibernate.Properties.PascalCaseMStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class NoSetterAccessor : NHibernate.Properties.IPropertyAccessor + { + public bool CanAccessThroughReflectionOptimizer { get => throw null; } + public NoSetterAccessor(NHibernate.Properties.IFieldNamingStrategy namingStrategy) => throw null; + public NHibernate.Properties.IGetter GetGetter(System.Type type, string propertyName) => throw null; + public NHibernate.Properties.ISetter GetSetter(System.Type type, string propertyName) => throw null; + } public class PascalCaseMStrategy : NHibernate.Properties.IFieldNamingStrategy { - public string GetFieldName(string propertyName) => throw null; public PascalCaseMStrategy() => throw null; + public string GetFieldName(string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.PascalCaseMUnderscoreStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PascalCaseMUnderscoreStrategy : NHibernate.Properties.IFieldNamingStrategy { - public string GetFieldName(string propertyName) => throw null; public PascalCaseMUnderscoreStrategy() => throw null; + public string GetFieldName(string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.PascalCaseUnderscoreStrategy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PascalCaseUnderscoreStrategy : NHibernate.Properties.IFieldNamingStrategy { - public string GetFieldName(string propertyName) => throw null; public PascalCaseUnderscoreStrategy() => throw null; + public string GetFieldName(string propertyName) => throw null; } - - // Generated from `NHibernate.Properties.PropertyAccessorFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class PropertyAccessorFactory { public static NHibernate.Properties.IPropertyAccessor DynamicMapPropertyAccessor { get => throw null; } public static NHibernate.Properties.IPropertyAccessor GetPropertyAccessor(string type) => throw null; public static NHibernate.Properties.IPropertyAccessor GetPropertyAccessor(NHibernate.Mapping.Property property, NHibernate.EntityMode? mode) => throw null; } - - // Generated from `NHibernate.Properties.ReadOnlyAccessor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ReadOnlyAccessor : NHibernate.Properties.IPropertyAccessor { public bool CanAccessThroughReflectionOptimizer { get => throw null; } + public ReadOnlyAccessor() => throw null; public NHibernate.Properties.IGetter GetGetter(System.Type type, string propertyName) => throw null; public NHibernate.Properties.ISetter GetSetter(System.Type type, string propertyName) => throw null; - public ReadOnlyAccessor() => throw null; } - - // Generated from `NHibernate.Properties.UnknownBackrefProperty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public struct UnknownBackrefProperty { - // Stub generator skipped constructor } - + } + public class PropertyAccessException : NHibernate.HibernateException, System.Runtime.Serialization.ISerializable + { + public PropertyAccessException(System.Exception innerException, string message, bool wasSetter, System.Type persistentType, string propertyName) => throw null; + public PropertyAccessException(System.Exception innerException, string message, bool wasSetter, System.Type persistentType) => throw null; + protected PropertyAccessException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } + public System.Type PersistentType { get => throw null; } + } + public class PropertyNotFoundException : NHibernate.MappingException + { + public string AccessorType { get => throw null; } + public PropertyNotFoundException(System.Type targetType, string propertyName, string accessorType) : base(default(string)) => throw null; + public PropertyNotFoundException(System.Type targetType, string propertyName) : base(default(string)) => throw null; + public PropertyNotFoundException(string propertyName, string fieldName, System.Type targetType) : base(default(string)) => throw null; + protected PropertyNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string PropertyName { get => throw null; } + public System.Type TargetType { get => throw null; } + } + public class PropertyValueException : NHibernate.HibernateException + { + public PropertyValueException(string message, string entityName, string propertyName) => throw null; + public PropertyValueException(string message, string entityName, string propertyName, System.Exception innerException) => throw null; + protected PropertyValueException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string EntityName { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } + public string PropertyName { get => throw null; } } namespace Proxy { - // Generated from `NHibernate.Proxy.AbstractLazyInitializer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractLazyInitializer : NHibernate.Proxy.ILazyInitializer { - protected internal AbstractLazyInitializer(string entityName, object id, NHibernate.Engine.ISessionImplementor session) => throw null; + protected AbstractLazyInitializer(string entityName, object id, NHibernate.Engine.ISessionImplementor session) => throw null; public string EntityName { get => throw null; } - public object GetImplementation(NHibernate.Engine.ISessionImplementor s) => throw null; public object GetImplementation() => throw null; + public object GetImplementation(NHibernate.Engine.ISessionImplementor s) => throw null; public System.Threading.Tasks.Task GetImplementationAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public object Identifier { get => throw null; set => throw null; } + public object Identifier { get => throw null; set { } } public virtual void Initialize() => throw null; public virtual System.Threading.Tasks.Task InitializeAsync(System.Threading.CancellationToken cancellationToken) => throw null; protected static object InvokeImplementation; - protected internal bool IsConnectedToSession { get => throw null; } + protected bool IsConnectedToSession { get => throw null; } public bool IsReadOnlySettingAvailable { get => throw null; } public bool IsUninitialized { get => throw null; } public abstract System.Type PersistentClass { get; } - public bool ReadOnly { get => throw null; set => throw null; } - public NHibernate.Engine.ISessionImplementor Session { get => throw null; set => throw null; } + public bool ReadOnly { get => throw null; set { } } + public NHibernate.Engine.ISessionImplementor Session { get => throw null; set { } } public void SetImplementation(object target) => throw null; public void SetSession(NHibernate.Engine.ISessionImplementor s) => throw null; - protected internal object Target { get => throw null; } + protected object Target { get => throw null; } public void UnsetSession() => throw null; - public bool Unwrap { get => throw null; set => throw null; } + public bool Unwrap { get => throw null; set { } } } - - // Generated from `NHibernate.Proxy.AbstractProxyFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractProxyFactory : NHibernate.Proxy.IProxyFactory { + protected virtual NHibernate.Type.IAbstractComponentType ComponentIdType { get => throw null; } protected AbstractProxyFactory() => throw null; - protected virtual NHibernate.Type.IAbstractComponentType ComponentIdType { get => throw null; set => throw null; } - protected virtual string EntityName { get => throw null; set => throw null; } + protected virtual string EntityName { get => throw null; } public virtual object GetFieldInterceptionProxy(object instanceToWrap) => throw null; - protected virtual System.Reflection.MethodInfo GetIdentifierMethod { get => throw null; set => throw null; } + protected virtual System.Reflection.MethodInfo GetIdentifierMethod { get => throw null; } public abstract NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session); - protected virtual System.Type[] Interfaces { get => throw null; set => throw null; } - protected virtual bool IsClassProxy { get => throw null; set => throw null; } - protected virtual bool OverridesEquals { get => throw null; set => throw null; } - protected virtual System.Type PersistentClass { get => throw null; set => throw null; } + protected virtual System.Type[] Interfaces { get => throw null; } + protected virtual bool IsClassProxy { get => throw null; } + protected virtual bool OverridesEquals { get => throw null; set { } } + protected virtual System.Type PersistentClass { get => throw null; } public virtual void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, bool isClassProxy) => throw null; public virtual void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType) => throw null; - protected virtual System.Reflection.MethodInfo SetIdentifierMethod { get => throw null; set => throw null; } + protected virtual System.Reflection.MethodInfo SetIdentifierMethod { get => throw null; } } - - // Generated from `NHibernate.Proxy.DefaultDynamicProxyMethodCheckerExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class DefaultDynamicProxyMethodCheckerExtensions + public static partial class DefaultDynamicProxyMethodCheckerExtensions { public static bool IsProxiable(this System.Reflection.MethodInfo method) => throw null; - public static bool ShouldBeProxiable(this System.Reflection.PropertyInfo propertyInfo) => throw null; public static bool ShouldBeProxiable(this System.Reflection.MethodInfo method) => throw null; + public static bool ShouldBeProxiable(this System.Reflection.PropertyInfo propertyInfo) => throw null; } - - // Generated from `NHibernate.Proxy.DefaultLazyInitializer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultLazyInitializer : NHibernate.Proxy.Poco.BasicLazyInitializer, NHibernate.Proxy.DynamicProxy.IInterceptor { public DefaultLazyInitializer(string entityName, System.Type persistentClass, object id, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, NHibernate.Engine.ISessionImplementor session, bool overridesEquals) : base(default(string), default(System.Type), default(object), default(System.Reflection.MethodInfo), default(System.Reflection.MethodInfo), default(NHibernate.Type.IAbstractComponentType), default(NHibernate.Engine.ISessionImplementor), default(bool)) => throw null; public object Intercept(NHibernate.Proxy.DynamicProxy.InvocationInfo info) => throw null; } - - // Generated from `NHibernate.Proxy.DefaultProxyFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultProxyFactory : NHibernate.Proxy.AbstractProxyFactory { public DefaultProxyFactory() => throw null; @@ -29651,8 +25540,106 @@ namespace NHibernate public override NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session) => throw null; protected static NHibernate.INHibernateLogger log; } - - // Generated from `NHibernate.Proxy.DynProxyTypeValidator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace DynamicProxy + { + public class DefaultProxyAssemblyBuilder : NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder + { + public DefaultProxyAssemblyBuilder() => throw null; + public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.AppDomain appDomain, System.Reflection.AssemblyName name) => throw null; + public System.Reflection.Emit.ModuleBuilder DefineDynamicModule(System.Reflection.Emit.AssemblyBuilder assemblyBuilder, string moduleName) => throw null; + public void Save(System.Reflection.Emit.AssemblyBuilder assemblyBuilder) => throw null; + } + public static partial class HashSetExtensions + { + public static System.Collections.Generic.HashSet Merge(this System.Collections.Generic.HashSet source, System.Collections.Generic.IEnumerable toMerge) => throw null; + } + public interface IArgumentHandler + { + void PushArguments(System.Reflection.ParameterInfo[] parameters, System.Reflection.Emit.ILGenerator IL, bool isStatic); + } + public interface IInterceptor + { + object Intercept(NHibernate.Proxy.DynamicProxy.InvocationInfo info); + } + public interface IMethodBodyEmitter + { + void EmitMethodBody(System.Reflection.Emit.MethodBuilder proxyMethod, System.Reflection.Emit.MethodBuilder callbackMethod, System.Reflection.MethodInfo method, System.Reflection.FieldInfo field); + } + public delegate object InterceptorHandler(object proxy, System.Reflection.MethodInfo targetMethod, System.Diagnostics.StackTrace trace, System.Type[] genericTypeArgs, object[] args); + public delegate object InvocationHandler(NHibernate.Proxy.DynamicProxy.InvocationInfo info); + public class InvocationInfo + { + public object[] Arguments { get => throw null; } + public InvocationInfo(object proxy, System.Reflection.MethodInfo targetMethod, System.Reflection.MethodInfo callbackMethod, System.Diagnostics.StackTrace trace, System.Type[] genericTypeArgs, object[] args) => throw null; + public virtual object InvokeMethodOnTarget() => throw null; + public void SetArgument(int position, object arg) => throw null; + public System.Diagnostics.StackTrace StackTrace { get => throw null; } + public object Target { get => throw null; } + public System.Reflection.MethodInfo TargetMethod { get => throw null; } + public override string ToString() => throw null; + public System.Type[] TypeArguments { get => throw null; } + } + public interface IProxy + { + NHibernate.Proxy.DynamicProxy.IInterceptor Interceptor { get; set; } + } + public interface IProxyAssemblyBuilder + { + System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.AppDomain appDomain, System.Reflection.AssemblyName name); + System.Reflection.Emit.ModuleBuilder DefineDynamicModule(System.Reflection.Emit.AssemblyBuilder assemblyBuilder, string moduleName); + void Save(System.Reflection.Emit.AssemblyBuilder assemblyBuilder); + } + public interface IProxyCache + { + bool Contains(System.Type baseType, params System.Type[] baseInterfaces); + System.Reflection.TypeInfo GetProxyType(System.Type baseType, params System.Type[] baseInterfaces); + void StoreProxyType(System.Reflection.TypeInfo result, System.Type baseType, params System.Type[] baseInterfaces); + bool TryGetProxyType(System.Type baseType, System.Type[] baseInterfaces, out System.Reflection.TypeInfo proxyType); + } + public interface IProxyMethodBuilder + { + void CreateProxiedMethod(System.Reflection.FieldInfo field, System.Reflection.MethodInfo method, System.Reflection.Emit.TypeBuilder typeBuilder); + } + public static class OpCodesMap + { + public static bool TryGetLdindOpCode(System.Type valueType, out System.Reflection.Emit.OpCode opCode) => throw null; + public static bool TryGetStindOpCode(System.Type valueType, out System.Reflection.Emit.OpCode opCode) => throw null; + } + public class ProxyCache : NHibernate.Proxy.DynamicProxy.IProxyCache + { + public bool Contains(System.Type baseType, params System.Type[] baseInterfaces) => throw null; + public ProxyCache() => throw null; + public System.Reflection.TypeInfo GetProxyType(System.Type baseType, params System.Type[] baseInterfaces) => throw null; + public void StoreProxyType(System.Reflection.TypeInfo result, System.Type baseType, params System.Type[] baseInterfaces) => throw null; + public bool TryGetProxyType(System.Type baseType, System.Type[] baseInterfaces, out System.Reflection.TypeInfo proxyType) => throw null; + } + public class ProxyCacheEntry : NHibernate.Proxy.ProxyCacheEntry + { + public ProxyCacheEntry(System.Type baseType, System.Type[] interfaces) : base(default(System.Type), default(System.Type[])) => throw null; + } + public class ProxyDummy + { + public ProxyDummy() => throw null; + } + public sealed class ProxyFactory + { + public NHibernate.Proxy.DynamicProxy.IProxyCache Cache { get => throw null; } + public object CreateProxy(System.Type instanceType, NHibernate.Proxy.DynamicProxy.IInterceptor interceptor, params System.Type[] baseInterfaces) => throw null; + public System.Type CreateProxyType(System.Type baseType, params System.Type[] interfaces) => throw null; + public ProxyFactory() => throw null; + public ProxyFactory(NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder proxyAssemblyBuilder) => throw null; + public ProxyFactory(NHibernate.Proxy.DynamicProxy.IProxyMethodBuilder proxyMethodBuilder) => throw null; + public ProxyFactory(NHibernate.Proxy.DynamicProxy.IProxyMethodBuilder proxyMethodBuilder, NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder proxyAssemblyBuilder) => throw null; + public NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder ProxyAssemblyBuilder { get => throw null; } + public NHibernate.Proxy.DynamicProxy.IProxyMethodBuilder ProxyMethodBuilder { get => throw null; } + } + public class ProxyObjectReference : System.Runtime.Serialization.IObjectReference, System.Runtime.Serialization.ISerializable + { + protected ProxyObjectReference(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null; + } + } public class DynProxyTypeValidator : NHibernate.Proxy.IProxyValidator { protected virtual void CheckAccessibleMembersAreVirtual(System.Type type) => throw null; @@ -29665,9 +25652,7 @@ namespace NHibernate public virtual bool IsProxeable(System.Reflection.MethodInfo method) => throw null; public System.Collections.Generic.ICollection ValidateType(System.Type type) => throw null; } - - // Generated from `NHibernate.Proxy.FieldInterceptorObjectReference` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FieldInterceptorObjectReference : System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IObjectReference + public sealed class FieldInterceptorObjectReference : System.Runtime.Serialization.IObjectReference, System.Runtime.Serialization.ISerializable { public FieldInterceptorObjectReference(NHibernate.Proxy.NHibernateProxyFactoryInfo proxyFactoryInfo, NHibernate.Intercept.IFieldInterceptor fieldInterceptorField) => throw null; public void GetBaseData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, object proxy, System.Type proxyBaseType) => throw null; @@ -29675,19 +25660,15 @@ namespace NHibernate public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null; public void SetNoAdditionalData(System.Runtime.Serialization.SerializationInfo info) => throw null; } - - // Generated from `NHibernate.Proxy.IEntityNotFoundDelegate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntityNotFoundDelegate { void HandleEntityNotFound(string entityName, object id); } - - // Generated from `NHibernate.Proxy.ILazyInitializer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ILazyInitializer { string EntityName { get; } - object GetImplementation(NHibernate.Engine.ISessionImplementor s); object GetImplementation(); + object GetImplementation(NHibernate.Engine.ISessionImplementor s); System.Threading.Tasks.Task GetImplementationAsync(System.Threading.CancellationToken cancellationToken); object Identifier { get; set; } void Initialize(); @@ -29702,256 +25683,58 @@ namespace NHibernate void UnsetSession(); bool Unwrap { get; set; } } - - // Generated from `NHibernate.Proxy.INHibernateProxy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface INHibernateProxy { NHibernate.Proxy.ILazyInitializer HibernateLazyInitializer { get; } } - - // Generated from `NHibernate.Proxy.IProxyFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IProxyFactory { object GetFieldInterceptionProxy(object instanceToWrap); NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session); void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType); } - - // Generated from `NHibernate.Proxy.IProxyValidator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IProxyValidator { bool IsProxeable(System.Reflection.MethodInfo method); System.Collections.Generic.ICollection ValidateType(System.Type type); } - - // Generated from `NHibernate.Proxy.NHibernateProxyFactoryInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NHibernateProxyFactoryInfo : System.Runtime.Serialization.ISerializable - { - public NHibernate.Proxy.IProxyFactory CreateProxyFactory() => throw null; - public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `NHibernate.Proxy.NHibernateProxyHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class NHibernateProxyHelper - { - public static System.Type GetClassWithoutInitializingProxy(object obj) => throw null; - public static System.Type GuessClass(object entity) => throw null; - public static bool IsProxy(this object entity) => throw null; - } - - // Generated from `NHibernate.Proxy.NHibernateProxyObjectReference` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NHibernateProxyObjectReference : System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IObjectReference - { - public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null; - public NHibernateProxyObjectReference(NHibernate.Proxy.NHibernateProxyFactoryInfo proxyFactoryInfo, object identifier, object implementation) => throw null; - public NHibernateProxyObjectReference(NHibernate.Proxy.NHibernateProxyFactoryInfo proxyFactoryInfo, object identifier) => throw null; - } - - // Generated from `NHibernate.Proxy.ProxyCacheEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProxyCacheEntry : System.IEquatable - { - public System.Type BaseType { get => throw null; } - public override bool Equals(object obj) => throw null; - public bool Equals(NHibernate.Proxy.ProxyCacheEntry other) => throw null; - public override int GetHashCode() => throw null; - public System.Collections.Generic.IReadOnlyCollection Interfaces { get => throw null; } - public ProxyCacheEntry(System.Type baseType, System.Type[] interfaces) => throw null; - } - - // Generated from `NHibernate.Proxy.ProxyFactoryExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class ProxyFactoryExtensions - { - public static object GetFieldInterceptionProxy(this NHibernate.Proxy.IProxyFactory proxyFactory) => throw null; - public static void PostInstantiate(this NHibernate.Proxy.IProxyFactory pf, string entityName, System.Type persistentClass, System.Collections.Generic.HashSet interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, bool isClassProxy) => throw null; - } - - // Generated from `NHibernate.Proxy.StaticProxyFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StaticProxyFactory : NHibernate.Proxy.AbstractProxyFactory - { - public override object GetFieldInterceptionProxy(object instanceToWrap) => throw null; - public object GetFieldInterceptionProxy() => throw null; - public override NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session) => throw null; - public override void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, bool isClassProxy) => throw null; - public StaticProxyFactory() => throw null; - } - - namespace DynamicProxy - { - // Generated from `NHibernate.Proxy.DynamicProxy.DefaultProxyAssemblyBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DefaultProxyAssemblyBuilder : NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder - { - public DefaultProxyAssemblyBuilder() => throw null; - public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.AppDomain appDomain, System.Reflection.AssemblyName name) => throw null; - public System.Reflection.Emit.ModuleBuilder DefineDynamicModule(System.Reflection.Emit.AssemblyBuilder assemblyBuilder, string moduleName) => throw null; - public void Save(System.Reflection.Emit.AssemblyBuilder assemblyBuilder) => throw null; - } - - // Generated from `NHibernate.Proxy.DynamicProxy.HashSetExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class HashSetExtensions - { - public static System.Collections.Generic.HashSet Merge(this System.Collections.Generic.HashSet source, System.Collections.Generic.IEnumerable toMerge) => throw null; - } - - // Generated from `NHibernate.Proxy.DynamicProxy.IArgumentHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IArgumentHandler - { - void PushArguments(System.Reflection.ParameterInfo[] parameters, System.Reflection.Emit.ILGenerator IL, bool isStatic); - } - - // Generated from `NHibernate.Proxy.DynamicProxy.IInterceptor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IInterceptor - { - object Intercept(NHibernate.Proxy.DynamicProxy.InvocationInfo info); - } - - // Generated from `NHibernate.Proxy.DynamicProxy.IMethodBodyEmitter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IMethodBodyEmitter - { - void EmitMethodBody(System.Reflection.Emit.MethodBuilder proxyMethod, System.Reflection.Emit.MethodBuilder callbackMethod, System.Reflection.MethodInfo method, System.Reflection.FieldInfo field); - } - - // Generated from `NHibernate.Proxy.DynamicProxy.IProxy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IProxy - { - NHibernate.Proxy.DynamicProxy.IInterceptor Interceptor { get; set; } - } - - // Generated from `NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IProxyAssemblyBuilder - { - System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.AppDomain appDomain, System.Reflection.AssemblyName name); - System.Reflection.Emit.ModuleBuilder DefineDynamicModule(System.Reflection.Emit.AssemblyBuilder assemblyBuilder, string moduleName); - void Save(System.Reflection.Emit.AssemblyBuilder assemblyBuilder); - } - - // Generated from `NHibernate.Proxy.DynamicProxy.IProxyCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IProxyCache - { - bool Contains(System.Type baseType, params System.Type[] baseInterfaces); - System.Reflection.TypeInfo GetProxyType(System.Type baseType, params System.Type[] baseInterfaces); - void StoreProxyType(System.Reflection.TypeInfo result, System.Type baseType, params System.Type[] baseInterfaces); - bool TryGetProxyType(System.Type baseType, System.Type[] baseInterfaces, out System.Reflection.TypeInfo proxyType); - } - - // Generated from `NHibernate.Proxy.DynamicProxy.IProxyMethodBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IProxyMethodBuilder - { - void CreateProxiedMethod(System.Reflection.FieldInfo field, System.Reflection.MethodInfo method, System.Reflection.Emit.TypeBuilder typeBuilder); - } - - // Generated from `NHibernate.Proxy.DynamicProxy.InterceptorHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate object InterceptorHandler(object proxy, System.Reflection.MethodInfo targetMethod, System.Diagnostics.StackTrace trace, System.Type[] genericTypeArgs, object[] args); - - // Generated from `NHibernate.Proxy.DynamicProxy.InvocationHandler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate object InvocationHandler(NHibernate.Proxy.DynamicProxy.InvocationInfo info); - - // Generated from `NHibernate.Proxy.DynamicProxy.InvocationInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class InvocationInfo - { - public object[] Arguments { get => throw null; } - public InvocationInfo(object proxy, System.Reflection.MethodInfo targetMethod, System.Reflection.MethodInfo callbackMethod, System.Diagnostics.StackTrace trace, System.Type[] genericTypeArgs, object[] args) => throw null; - public virtual object InvokeMethodOnTarget() => throw null; - public void SetArgument(int position, object arg) => throw null; - public System.Diagnostics.StackTrace StackTrace { get => throw null; } - public object Target { get => throw null; } - public System.Reflection.MethodInfo TargetMethod { get => throw null; } - public override string ToString() => throw null; - public System.Type[] TypeArguments { get => throw null; } - } - - // Generated from `NHibernate.Proxy.DynamicProxy.OpCodesMap` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class OpCodesMap - { - public static bool TryGetLdindOpCode(System.Type valueType, out System.Reflection.Emit.OpCode opCode) => throw null; - public static bool TryGetStindOpCode(System.Type valueType, out System.Reflection.Emit.OpCode opCode) => throw null; - } - - // Generated from `NHibernate.Proxy.DynamicProxy.ProxyCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProxyCache : NHibernate.Proxy.DynamicProxy.IProxyCache - { - public bool Contains(System.Type baseType, params System.Type[] baseInterfaces) => throw null; - public System.Reflection.TypeInfo GetProxyType(System.Type baseType, params System.Type[] baseInterfaces) => throw null; - public ProxyCache() => throw null; - public void StoreProxyType(System.Reflection.TypeInfo result, System.Type baseType, params System.Type[] baseInterfaces) => throw null; - public bool TryGetProxyType(System.Type baseType, System.Type[] baseInterfaces, out System.Reflection.TypeInfo proxyType) => throw null; - } - - // Generated from `NHibernate.Proxy.DynamicProxy.ProxyCacheEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProxyCacheEntry : NHibernate.Proxy.ProxyCacheEntry - { - public ProxyCacheEntry(System.Type baseType, System.Type[] interfaces) : base(default(System.Type), default(System.Type[])) => throw null; - } - - // Generated from `NHibernate.Proxy.DynamicProxy.ProxyDummy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProxyDummy - { - public ProxyDummy() => throw null; - } - - // Generated from `NHibernate.Proxy.DynamicProxy.ProxyFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProxyFactory - { - public NHibernate.Proxy.DynamicProxy.IProxyCache Cache { get => throw null; } - public object CreateProxy(System.Type instanceType, NHibernate.Proxy.DynamicProxy.IInterceptor interceptor, params System.Type[] baseInterfaces) => throw null; - public System.Type CreateProxyType(System.Type baseType, params System.Type[] interfaces) => throw null; - public NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder ProxyAssemblyBuilder { get => throw null; } - public ProxyFactory(NHibernate.Proxy.DynamicProxy.IProxyMethodBuilder proxyMethodBuilder, NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder proxyAssemblyBuilder) => throw null; - public ProxyFactory(NHibernate.Proxy.DynamicProxy.IProxyMethodBuilder proxyMethodBuilder) => throw null; - public ProxyFactory(NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder proxyAssemblyBuilder) => throw null; - public ProxyFactory() => throw null; - public NHibernate.Proxy.DynamicProxy.IProxyMethodBuilder ProxyMethodBuilder { get => throw null; } - } - - // Generated from `NHibernate.Proxy.DynamicProxy.ProxyObjectReference` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ProxyObjectReference : System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IObjectReference - { - public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null; - protected ProxyObjectReference(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - } namespace Map { - // Generated from `NHibernate.Proxy.Map.MapLazyInitializer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MapLazyInitializer : NHibernate.Proxy.AbstractLazyInitializer { + public MapLazyInitializer(string entityName, object id, NHibernate.Engine.ISessionImplementor session) : base(default(string), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null; public System.Collections.Generic.IDictionary GenericMap { get => throw null; } public System.Collections.IDictionary Map { get => throw null; } - public MapLazyInitializer(string entityName, object id, NHibernate.Engine.ISessionImplementor session) : base(default(string), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null; public override System.Type PersistentClass { get => throw null; } } - - // Generated from `NHibernate.Proxy.Map.MapProxy` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class MapProxy : System.Dynamic.DynamicObject, System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.ICollection, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, NHibernate.Proxy.INHibernateProxy + public class MapProxy : System.Dynamic.DynamicObject, NHibernate.Proxy.INHibernateProxy, System.Collections.IDictionary, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable> { + public void Add(object key, object value) => throw null; void System.Collections.Generic.IDictionary.Add(string key, object value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; - public void Add(object key, object value) => throw null; public void Clear() => throw null; public bool Contains(object key) => throw null; bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair item) => throw null; bool System.Collections.Generic.IDictionary.ContainsKey(string key) => throw null; - void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public void CopyTo(System.Array array, int index) => throw null; + void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } public override System.Collections.Generic.IEnumerable GetDynamicMemberNames() => throw null; - public System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; public NHibernate.Proxy.ILazyInitializer HibernateLazyInitializer { get => throw null; } public bool IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public object this[object key] { get => throw null; set => throw null; } - object System.Collections.Generic.IDictionary.this[string key] { get => throw null; set => throw null; } + object System.Collections.Generic.IDictionary.this[string key] { get => throw null; set { } } public System.Collections.ICollection Keys { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } public void Remove(object key) => throw null; bool System.Collections.Generic.IDictionary.Remove(string key) => throw null; bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; public object SyncRoot { get => throw null; } + public object this[object key] { get => throw null; set { } } public override bool TryDeleteIndex(System.Dynamic.DeleteIndexBinder binder, object[] indexes) => throw null; public override bool TryDeleteMember(System.Dynamic.DeleteMemberBinder binder) => throw null; public override bool TryGetIndex(System.Dynamic.GetIndexBinder binder, object[] indexes, out object result) => throw null; @@ -29963,151 +25746,255 @@ namespace NHibernate public System.Collections.ICollection Values { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } } - - // Generated from `NHibernate.Proxy.Map.MapProxyFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MapProxyFactory : NHibernate.Proxy.IProxyFactory { + public MapProxyFactory() => throw null; + public MapProxyFactory(string entityName) => throw null; public object GetFieldInterceptionProxy(object getInstance) => throw null; public NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session) => throw null; - public MapProxyFactory(string entityName) => throw null; - public MapProxyFactory() => throw null; public void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType) => throw null; } - + } + public sealed class NHibernateProxyFactoryInfo : System.Runtime.Serialization.ISerializable + { + public NHibernate.Proxy.IProxyFactory CreateProxyFactory() => throw null; + public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public static class NHibernateProxyHelper + { + public static System.Type GetClassWithoutInitializingProxy(object obj) => throw null; + public static System.Type GuessClass(object entity) => throw null; + public static bool IsProxy(this object entity) => throw null; + } + public sealed class NHibernateProxyObjectReference : System.Runtime.Serialization.IObjectReference, System.Runtime.Serialization.ISerializable + { + public NHibernateProxyObjectReference(NHibernate.Proxy.NHibernateProxyFactoryInfo proxyFactoryInfo, object identifier) => throw null; + public NHibernateProxyObjectReference(NHibernate.Proxy.NHibernateProxyFactoryInfo proxyFactoryInfo, object identifier, object implementation) => throw null; + public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null; } namespace Poco { - // Generated from `NHibernate.Proxy.Poco.BasicLazyInitializer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class BasicLazyInitializer : NHibernate.Proxy.AbstractLazyInitializer { protected virtual void AddSerializationInfo(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - protected internal BasicLazyInitializer(string entityName, System.Type persistentClass, object id, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, NHibernate.Engine.ISessionImplementor session, bool overridesEquals) : base(default(string), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null; + protected NHibernate.Type.IAbstractComponentType componentIdType; + protected BasicLazyInitializer(string entityName, System.Type persistentClass, object id, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, NHibernate.Engine.ISessionImplementor session, bool overridesEquals) : base(default(string), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null; + protected System.Reflection.MethodInfo getIdentifierMethod; public virtual object Invoke(System.Reflection.MethodInfo method, object[] args, object proxy) => throw null; + protected bool overridesEquals; public override System.Type PersistentClass { get => throw null; } - protected internal NHibernate.Type.IAbstractComponentType componentIdType; - protected internal System.Reflection.MethodInfo getIdentifierMethod; - protected internal bool overridesEquals; - protected internal System.Reflection.MethodInfo setIdentifierMethod; + protected System.Reflection.MethodInfo setIdentifierMethod; } - } + public class ProxyCacheEntry : System.IEquatable + { + public System.Type BaseType { get => throw null; } + public ProxyCacheEntry(System.Type baseType, System.Type[] interfaces) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(NHibernate.Proxy.ProxyCacheEntry other) => throw null; + public override int GetHashCode() => throw null; + public System.Collections.Generic.IReadOnlyCollection Interfaces { get => throw null; } + } + public static partial class ProxyFactoryExtensions + { + public static object GetFieldInterceptionProxy(this NHibernate.Proxy.IProxyFactory proxyFactory) => throw null; + public static void PostInstantiate(this NHibernate.Proxy.IProxyFactory pf, string entityName, System.Type persistentClass, System.Collections.Generic.HashSet interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, bool isClassProxy) => throw null; + } + public sealed class StaticProxyFactory : NHibernate.Proxy.AbstractProxyFactory + { + public StaticProxyFactory() => throw null; + public override object GetFieldInterceptionProxy(object instanceToWrap) => throw null; + public object GetFieldInterceptionProxy() => throw null; + public override NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session) => throw null; + public override void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, bool isClassProxy) => throw null; + } + } + public class QueryException : NHibernate.HibernateException, System.Runtime.Serialization.ISerializable + { + protected QueryException() => throw null; + public QueryException(string message) => throw null; + public QueryException(string message, System.Exception innerException) => throw null; + public QueryException(string message, string queryString) => throw null; + public QueryException(string message, string queryString, System.Exception innerException) => throw null; + public QueryException(System.Exception innerException) => throw null; + protected QueryException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override string Message { get => throw null; } + public string QueryString { get => throw null; set { } } + } + public static partial class QueryOverExtensions + { + public static TQueryOver SetComment(this TQueryOver queryOver, string comment) where TQueryOver : NHibernate.IQueryOver => throw null; + public static TQueryOver SetFetchSize(this TQueryOver queryOver, int fetchSize) where TQueryOver : NHibernate.IQueryOver => throw null; + public static TQueryOver SetFlushMode(this TQueryOver queryOver, NHibernate.FlushMode flushMode) where TQueryOver : NHibernate.IQueryOver => throw null; + public static TQueryOver SetTimeout(this TQueryOver queryOver, int timeout) where TQueryOver : NHibernate.IQueryOver => throw null; + } + public class QueryParameterException : NHibernate.QueryException + { + public QueryParameterException(string message) => throw null; + public QueryParameterException(string message, System.Exception inner) => throw null; + protected QueryParameterException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public abstract class ReplicationMode + { + protected ReplicationMode(string name) => throw null; + public static NHibernate.ReplicationMode Exception; + public static NHibernate.ReplicationMode Ignore; + public static NHibernate.ReplicationMode LatestVersion; + public static NHibernate.ReplicationMode Overwrite; + public abstract bool ShouldOverwriteCurrentVersion(object entity, object currentVersion, object newVersion, NHibernate.Type.IVersionType versionType); + public override string ToString() => throw null; + } + public class SchemaValidationException : NHibernate.HibernateException + { + public SchemaValidationException(string msg, System.Collections.Generic.IList validationErrors) => throw null; + protected SchemaValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.Collections.ObjectModel.ReadOnlyCollection ValidationErrors { get => throw null; } + } + public enum SelectMode + { + Undefined = 0, + Fetch = 1, + FetchLazyProperties = 2, + ChildFetch = 3, + JoinOnly = 4, + Skip = 5, + FetchLazyPropertyGroup = 6, + } + public static partial class SelectModeExtensions + { + public static NHibernate.IQueryOver Fetch(this NHibernate.IQueryOver queryOver, NHibernate.SelectMode mode, params System.Linq.Expressions.Expression>[] associationPaths) => throw null; + public static NHibernate.Criterion.QueryOver Fetch(this NHibernate.Criterion.QueryOver queryOver, NHibernate.SelectMode mode, params System.Linq.Expressions.Expression>[] associationPaths) => throw null; + public static NHibernate.Criterion.QueryOver Fetch(this NHibernate.Criterion.QueryOver queryOver, params System.Linq.Expressions.Expression>[] associationPaths) => throw null; + public static NHibernate.IQueryOver Fetch(this NHibernate.IQueryOver queryOver, params System.Linq.Expressions.Expression>[] associationPaths) => throw null; + public static TThis Fetch(this TThis queryOver, NHibernate.SelectMode mode, params System.Linq.Expressions.Expression>[] aliasedAssociationPaths) where TThis : NHibernate.IQueryOver => throw null; + public static NHibernate.ICriteria Fetch(this NHibernate.ICriteria criteria, NHibernate.SelectMode mode, string associationPath, string alias = default(string)) => throw null; + public static NHibernate.ICriteria Fetch(this NHibernate.ICriteria criteria, string associationPath, string alias = default(string)) => throw null; + public static NHibernate.Criterion.DetachedCriteria Fetch(this NHibernate.Criterion.DetachedCriteria criteria, string associationPath, string alias = default(string)) => throw null; + public static NHibernate.Criterion.DetachedCriteria Fetch(this NHibernate.Criterion.DetachedCriteria criteria, NHibernate.SelectMode mode, string associationPath, string alias = default(string)) => throw null; + } + public static partial class SessionBuilderExtensions + { + public static T Tenant(this T builder, string tenantIdentifier) where T : NHibernate.ISessionBuilder => throw null; + public static T Tenant(this T builder, NHibernate.MultiTenancy.TenantConfiguration tenantConfig) where T : NHibernate.ISessionBuilder => throw null; + } + public class SessionException : NHibernate.HibernateException + { + public SessionException(string message) => throw null; + protected SessionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public static partial class SessionExtensions + { + public static NHibernate.Multi.IQueryBatch CreateQueryBatch(this NHibernate.ISession session) => throw null; + public static object Get(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode) => throw null; + public static T Get(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode) => throw null; + public static T Get(this NHibernate.ISession session, string entityName, object id) => throw null; + public static System.Threading.Tasks.Task GetAsync(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetAsync(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetAsync(this NHibernate.ISession session, string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static NHibernate.ITransaction GetCurrentTransaction(this NHibernate.ISession session) => throw null; + public static NHibernate.ISharedStatelessSessionBuilder StatelessSessionWithOptions(this NHibernate.ISession session) => throw null; + } + public static class SessionFactoryExtension + { + public static void Evict(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable persistentClasses) => throw null; + public static System.Threading.Tasks.Task EvictAsync(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable persistentClasses, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static void EvictCollection(this NHibernate.ISessionFactory factory, string roleName, object id, string tenantIdentifier) => throw null; + public static void EvictCollection(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable roleNames) => throw null; + public static System.Threading.Tasks.Task EvictCollectionAsync(this NHibernate.ISessionFactory factory, string roleName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task EvictCollectionAsync(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable roleNames, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static void EvictEntity(this NHibernate.ISessionFactory factory, string entityName, object id, string tenantIdentifier) => throw null; + public static void EvictEntity(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable entityNames) => throw null; + public static System.Threading.Tasks.Task EvictEntityAsync(this NHibernate.ISessionFactory factory, string entityName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task EvictEntityAsync(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable entityNames, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } namespace SqlCommand { - // Generated from `NHibernate.SqlCommand.ANSICaseFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ANSICaseFragment : NHibernate.SqlCommand.CaseFragment - { - public ANSICaseFragment(NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Dialect.Dialect)) => throw null; - public override string ToSqlStringFragment() => throw null; - } - - // Generated from `NHibernate.SqlCommand.ANSIJoinFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ANSIJoinFragment : NHibernate.SqlCommand.JoinFragment - { - public ANSIJoinFragment() => throw null; - public override bool AddCondition(string condition) => throw null; - public override bool AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null; - public override void AddCrossJoin(string tableName, string alias) => throw null; - public override void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString) => throw null; - public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null; - public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType) => throw null; - public override void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment) => throw null; - public NHibernate.SqlCommand.JoinFragment Copy() => throw null; - public override NHibernate.SqlCommand.SqlString ToFromFragmentString { get => throw null; } - public override NHibernate.SqlCommand.SqlString ToWhereFragmentString { get => throw null; } - } - - // Generated from `NHibernate.SqlCommand.Alias` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Alias { - public Alias(string suffix) => throw null; public Alias(int length, string suffix) => throw null; + public Alias(string suffix) => throw null; public string ToAliasString(string sqlIdentifier, NHibernate.Dialect.Dialect dialect) => throw null; public string ToAliasString(string sqlIdentifier) => throw null; public string[] ToAliasStrings(string[] sqlIdentifiers, NHibernate.Dialect.Dialect dialect) => throw null; public string ToUnquotedAliasString(string sqlIdentifier, NHibernate.Dialect.Dialect dialect) => throw null; public string[] ToUnquotedAliasStrings(string[] sqlIdentifiers, NHibernate.Dialect.Dialect dialect) => throw null; } - - // Generated from `NHibernate.SqlCommand.CaseFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class ANSICaseFragment : NHibernate.SqlCommand.CaseFragment + { + public ANSICaseFragment(NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Dialect.Dialect)) => throw null; + public override string ToSqlStringFragment() => throw null; + } + public class ANSIJoinFragment : NHibernate.SqlCommand.JoinFragment + { + public override bool AddCondition(string condition) => throw null; + public override bool AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null; + public override void AddCrossJoin(string tableName, string alias) => throw null; + public override void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString) => throw null; + public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType) => throw null; + public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null; + public override void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment) => throw null; + public NHibernate.SqlCommand.JoinFragment Copy() => throw null; + public ANSIJoinFragment() => throw null; + public override NHibernate.SqlCommand.SqlString ToFromFragmentString { get => throw null; } + public override NHibernate.SqlCommand.SqlString ToWhereFragmentString { get => throw null; } + } public abstract class CaseFragment { public virtual NHibernate.SqlCommand.CaseFragment AddWhenColumnNotNull(string alias, string columnName, string value) => throw null; + protected System.Collections.Generic.IDictionary cases; protected CaseFragment(NHibernate.Dialect.Dialect dialect) => throw null; - public virtual NHibernate.SqlCommand.CaseFragment SetReturnColumnName(string returnColumnName, string suffix) => throw null; + protected NHibernate.Dialect.Dialect dialect; + protected string returnColumnName; public virtual NHibernate.SqlCommand.CaseFragment SetReturnColumnName(string returnColumnName) => throw null; + public virtual NHibernate.SqlCommand.CaseFragment SetReturnColumnName(string returnColumnName, string suffix) => throw null; public abstract string ToSqlStringFragment(); - protected internal System.Collections.Generic.IDictionary cases; - protected internal NHibernate.Dialect.Dialect dialect; - protected internal string returnColumnName; } - - // Generated from `NHibernate.SqlCommand.ConditionalFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ConditionalFragment { public ConditionalFragment() => throw null; public NHibernate.SqlCommand.ConditionalFragment SetCondition(string[] lhs, string[] rhs) => throw null; - public NHibernate.SqlCommand.ConditionalFragment SetCondition(string[] lhs, string rhs) => throw null; public NHibernate.SqlCommand.ConditionalFragment SetCondition(string[] lhs, NHibernate.SqlCommand.Parameter[] rhs) => throw null; + public NHibernate.SqlCommand.ConditionalFragment SetCondition(string[] lhs, string rhs) => throw null; public NHibernate.SqlCommand.ConditionalFragment SetOp(string op) => throw null; public NHibernate.SqlCommand.ConditionalFragment SetTableAlias(string tableAlias) => throw null; public NHibernate.SqlCommand.SqlString ToSqlStringFragment() => throw null; } - - // Generated from `NHibernate.SqlCommand.DecodeCaseFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DecodeCaseFragment : NHibernate.SqlCommand.CaseFragment { public DecodeCaseFragment(NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Dialect.Dialect)) => throw null; public override string ToSqlStringFragment() => throw null; } - - // Generated from `NHibernate.SqlCommand.DisjunctionFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DisjunctionFragment { public NHibernate.SqlCommand.DisjunctionFragment AddCondition(NHibernate.SqlCommand.ConditionalFragment fragment) => throw null; - public DisjunctionFragment(System.Collections.Generic.IEnumerable fragments) => throw null; public DisjunctionFragment() => throw null; + public DisjunctionFragment(System.Collections.Generic.IEnumerable fragments) => throw null; public NHibernate.SqlCommand.SqlString ToFragmentString() => throw null; } - - // Generated from `NHibernate.SqlCommand.ForUpdateFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ForUpdateFragment { public NHibernate.SqlCommand.ForUpdateFragment AddTableAlias(string alias) => throw null; - public ForUpdateFragment(NHibernate.Dialect.Dialect dialect, System.Collections.Generic.IDictionary lockModes, System.Collections.Generic.IDictionary keyColumnNames) => throw null; public ForUpdateFragment(NHibernate.Dialect.Dialect dialect) => throw null; - public bool IsNoWaitEnabled { get => throw null; set => throw null; } + public ForUpdateFragment(NHibernate.Dialect.Dialect dialect, System.Collections.Generic.IDictionary lockModes, System.Collections.Generic.IDictionary keyColumnNames) => throw null; + public bool IsNoWaitEnabled { get => throw null; set { } } public string ToSqlStringFragment() => throw null; } - - // Generated from `NHibernate.SqlCommand.ISqlCommand` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISqlCommand + public class InformixJoinFragment : NHibernate.SqlCommand.JoinFragment { - void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList commandQueryParametersList, int singleSqlParametersOffset, NHibernate.Engine.ISessionImplementor session); - void Bind(System.Data.Common.DbCommand command, NHibernate.Engine.ISessionImplementor session); - System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList commandQueryParametersList, int singleSqlParametersOffset, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - NHibernate.SqlTypes.SqlType[] ParameterTypes { get; } - NHibernate.SqlCommand.SqlString Query { get; } - NHibernate.Engine.QueryParameters QueryParameters { get; } - void ResetParametersIndexesForTheCommand(int singleSqlParametersOffset); + public override bool AddCondition(string condition) => throw null; + public override bool AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null; + public override void AddCrossJoin(string tableName, string alias) => throw null; + public override void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString) => throw null; + public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType) => throw null; + public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null; + public override void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment) => throw null; + public InformixJoinFragment() => throw null; + public override NHibernate.SqlCommand.SqlString ToFromFragmentString { get => throw null; } + public override NHibernate.SqlCommand.SqlString ToWhereFragmentString { get => throw null; } } - - // Generated from `NHibernate.SqlCommand.ISqlStringBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISqlStringBuilder - { - NHibernate.SqlCommand.SqlString ToSqlString(); - } - - // Generated from `NHibernate.SqlCommand.ISqlStringVisitor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ISqlStringVisitor - { - void Parameter(NHibernate.SqlCommand.Parameter parameter); - void String(string text); - void String(NHibernate.SqlCommand.SqlString sqlString); - } - - // Generated from `NHibernate.SqlCommand.InFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InFragment { public NHibernate.SqlCommand.InFragment AddValue(object value) => throw null; @@ -30119,23 +26006,6 @@ namespace NHibernate public NHibernate.SqlCommand.InFragment SetFormula(string alias, string formulaTemplate) => throw null; public NHibernate.SqlCommand.SqlString ToFragmentString() => throw null; } - - // Generated from `NHibernate.SqlCommand.InformixJoinFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class InformixJoinFragment : NHibernate.SqlCommand.JoinFragment - { - public override bool AddCondition(string condition) => throw null; - public override bool AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null; - public override void AddCrossJoin(string tableName, string alias) => throw null; - public override void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString) => throw null; - public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null; - public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType) => throw null; - public override void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment) => throw null; - public InformixJoinFragment() => throw null; - public override NHibernate.SqlCommand.SqlString ToFromFragmentString { get => throw null; } - public override NHibernate.SqlCommand.SqlString ToWhereFragmentString { get => throw null; } - } - - // Generated from `NHibernate.SqlCommand.InsertSelect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class InsertSelect : NHibernate.SqlCommand.ISqlStringBuilder { public virtual NHibernate.SqlCommand.InsertSelect AddColumn(string columnName) => throw null; @@ -30146,8 +26016,27 @@ namespace NHibernate public virtual NHibernate.SqlCommand.InsertSelect SetTableName(string tableName) => throw null; public NHibernate.SqlCommand.SqlString ToSqlString() => throw null; } - - // Generated from `NHibernate.SqlCommand.JoinFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public interface ISqlCommand + { + void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList commandQueryParametersList, int singleSqlParametersOffset, NHibernate.Engine.ISessionImplementor session); + void Bind(System.Data.Common.DbCommand command, NHibernate.Engine.ISessionImplementor session); + System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList commandQueryParametersList, int singleSqlParametersOffset, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + NHibernate.SqlTypes.SqlType[] ParameterTypes { get; } + NHibernate.SqlCommand.SqlString Query { get; } + NHibernate.Engine.QueryParameters QueryParameters { get; } + void ResetParametersIndexesForTheCommand(int singleSqlParametersOffset); + } + public interface ISqlStringBuilder + { + NHibernate.SqlCommand.SqlString ToSqlString(); + } + public interface ISqlStringVisitor + { + void Parameter(NHibernate.SqlCommand.Parameter parameter); + void String(string text); + void String(NHibernate.SqlCommand.SqlString sqlString); + } public abstract class JoinFragment { protected void AddBareCondition(NHibernate.SqlCommand.SqlStringBuilder buffer, NHibernate.SqlCommand.SqlString condition) => throw null; @@ -30158,103 +26047,132 @@ namespace NHibernate public abstract void AddCrossJoin(string tableName, string alias); public virtual void AddFragment(NHibernate.SqlCommand.JoinFragment ojf) => throw null; public abstract void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString); - public abstract void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on); public abstract void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType); + public abstract void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on); public abstract void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment); - public bool HasFilterCondition { get => throw null; set => throw null; } - public bool HasThetaJoins { get => throw null; set => throw null; } protected JoinFragment() => throw null; + public bool HasFilterCondition { get => throw null; set { } } + public bool HasThetaJoins { get => throw null; set { } } public abstract NHibernate.SqlCommand.SqlString ToFromFragmentString { get; } public abstract NHibernate.SqlCommand.SqlString ToWhereFragmentString { get; } } - - // Generated from `NHibernate.SqlCommand.JoinType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public enum JoinType { - CrossJoin, - FullJoin, - InnerJoin, - LeftOuterJoin, - None, - RightOuterJoin, + None = -666, + InnerJoin = 0, + FullJoin = 4, + LeftOuterJoin = 1, + RightOuterJoin = 2, + CrossJoin = 8, } - - // Generated from `NHibernate.SqlCommand.OracleJoinFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class OracleJoinFragment : NHibernate.SqlCommand.JoinFragment { public override bool AddCondition(string condition) => throw null; public override bool AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null; public override void AddCrossJoin(string tableName, string alias) => throw null; public override void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString) => throw null; - public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null; public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType) => throw null; + public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null; public override void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment) => throw null; public OracleJoinFragment() => throw null; public override NHibernate.SqlCommand.SqlString ToFromFragmentString { get => throw null; } public override NHibernate.SqlCommand.SqlString ToWhereFragmentString { get => throw null; } } - - // Generated from `NHibernate.SqlCommand.Parameter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class Parameter { - public static bool operator !=(object a, NHibernate.SqlCommand.Parameter b) => throw null; - public static bool operator !=(NHibernate.SqlCommand.Parameter a, object b) => throw null; - public static bool operator !=(NHibernate.SqlCommand.Parameter a, NHibernate.SqlCommand.Parameter b) => throw null; - public static bool operator ==(object a, NHibernate.SqlCommand.Parameter b) => throw null; - public static bool operator ==(NHibernate.SqlCommand.Parameter a, object b) => throw null; - public static bool operator ==(NHibernate.SqlCommand.Parameter a, NHibernate.SqlCommand.Parameter b) => throw null; - public object BackTrack { get => throw null; set => throw null; } + public object BackTrack { get => throw null; set { } } public NHibernate.SqlCommand.Parameter Clone() => throw null; public override bool Equals(object obj) => throw null; public static NHibernate.SqlCommand.Parameter[] GenerateParameters(int count) => throw null; public override int GetHashCode() => throw null; - public int? ParameterPosition { get => throw null; set => throw null; } + public static bool operator ==(NHibernate.SqlCommand.Parameter a, NHibernate.SqlCommand.Parameter b) => throw null; + public static bool operator ==(object a, NHibernate.SqlCommand.Parameter b) => throw null; + public static bool operator ==(NHibernate.SqlCommand.Parameter a, object b) => throw null; + public static bool operator !=(NHibernate.SqlCommand.Parameter a, object b) => throw null; + public static bool operator !=(object a, NHibernate.SqlCommand.Parameter b) => throw null; + public static bool operator !=(NHibernate.SqlCommand.Parameter a, NHibernate.SqlCommand.Parameter b) => throw null; + public int? ParameterPosition { get => throw null; set { } } public static NHibernate.SqlCommand.Parameter Placeholder { get => throw null; } public override string ToString() => throw null; public static NHibernate.SqlCommand.Parameter WithIndex(int position) => throw null; } - - // Generated from `NHibernate.SqlCommand.QueryJoinFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + namespace Parser + { + public class SqlToken + { + public SqlToken(NHibernate.SqlCommand.Parser.SqlTokenType tokenType, NHibernate.SqlCommand.SqlString sql, int sqlIndex, int length) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(string value) => throw null; + public bool Equals(string value, System.StringComparison stringComparison) => throw null; + public override int GetHashCode() => throw null; + public int Length { get => throw null; } + public int SqlIndex { get => throw null; } + public NHibernate.SqlCommand.Parser.SqlTokenType TokenType { get => throw null; } + public override string ToString() => throw null; + public string UnquotedValue { get => throw null; } + public string Value { get => throw null; } + } + public class SqlTokenizer : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public SqlTokenizer(NHibernate.SqlCommand.SqlString sql) => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + public bool IgnoreComments { get => throw null; set { } } + public bool IgnoreWhitespace { get => throw null; set { } } + } + [System.Flags] + public enum SqlTokenType + { + Whitespace = 1, + Comment = 2, + Text = 4, + DelimitedText = 8, + Parameter = 16, + Comma = 32, + BracketOpen = 64, + BracketClose = 128, + AllBrackets = 192, + AllExceptWhitespaceOrComment = 252, + AllExceptWhitespace = 254, + All = 255, + } + } public class QueryJoinFragment : NHibernate.SqlCommand.JoinFragment { public override bool AddCondition(string condition) => throw null; public override bool AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null; public override void AddCrossJoin(string tableName, string alias) => throw null; public override void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString) => throw null; - public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null; public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType) => throw null; + public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null; public override void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment) => throw null; public void ClearWherePart() => throw null; public QueryJoinFragment(NHibernate.Dialect.Dialect dialect, bool useThetaStyleInnerJoins) => throw null; public override NHibernate.SqlCommand.SqlString ToFromFragmentString { get => throw null; } public override NHibernate.SqlCommand.SqlString ToWhereFragmentString { get => throw null; } } - - // Generated from `NHibernate.SqlCommand.QuerySelect` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QuerySelect { public void AddOrderBy(string orderBySql) => throw null; public void AddSelectColumn(string columnName, string alias) => throw null; public void AddSelectFragmentString(NHibernate.SqlCommand.SqlString fragment) => throw null; - public bool Distinct { get => throw null; set => throw null; } - public NHibernate.SqlCommand.JoinFragment JoinFragment { get => throw null; } public QuerySelect(NHibernate.Dialect.Dialect dialect) => throw null; + public bool Distinct { get => throw null; set { } } + public NHibernate.SqlCommand.JoinFragment JoinFragment { get => throw null; } public void SetGroupByTokens(System.Collections.IEnumerable tokens) => throw null; public void SetHavingTokens(System.Collections.IEnumerable tokens) => throw null; public void SetOrderByTokens(System.Collections.IEnumerable tokens) => throw null; public void SetWhereTokens(System.Collections.IEnumerable tokens) => throw null; public NHibernate.SqlCommand.SqlString ToQuerySqlString() => throw null; } - - // Generated from `NHibernate.SqlCommand.SelectFragment` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SelectFragment { - public NHibernate.SqlCommand.SelectFragment AddColumn(string tableAlias, string columnName, string columnAlias) => throw null; - public NHibernate.SqlCommand.SelectFragment AddColumn(string tableAlias, string columnName) => throw null; public NHibernate.SqlCommand.SelectFragment AddColumn(string columnName) => throw null; + public NHibernate.SqlCommand.SelectFragment AddColumn(string tableAlias, string columnName) => throw null; + public NHibernate.SqlCommand.SelectFragment AddColumn(string tableAlias, string columnName, string columnAlias) => throw null; public NHibernate.SqlCommand.SelectFragment AddColumns(string[] columnNames) => throw null; - public NHibernate.SqlCommand.SelectFragment AddColumns(string tableAlias, string[] columnNames, string[] columnAliases) => throw null; public NHibernate.SqlCommand.SelectFragment AddColumns(string tableAlias, string[] columnNames) => throw null; + public NHibernate.SqlCommand.SelectFragment AddColumns(string tableAlias, string[] columnNames, string[] columnAliases) => throw null; public NHibernate.SqlCommand.SelectFragment AddFormula(string tableAlias, string formula, string formulaAlias) => throw null; public NHibernate.SqlCommand.SelectFragment AddFormulas(string tableAlias, string[] formulas, string[] formulaAliases) => throw null; public SelectFragment(NHibernate.Dialect.Dialect d) => throw null; @@ -30263,116 +26181,103 @@ namespace NHibernate public NHibernate.SqlCommand.SelectFragment SetSuffix(string suffix) => throw null; public NHibernate.SqlCommand.SelectFragment SetUsedAliases(string[] usedAliases) => throw null; public string ToFragmentString() => throw null; - public string ToSqlStringFragment(bool includeLeadingComma) => throw null; public string ToSqlStringFragment() => throw null; + public string ToSqlStringFragment(bool includeLeadingComma) => throw null; } - - // Generated from `NHibernate.SqlCommand.SqlBaseBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class SqlBaseBuilder { + protected SqlBaseBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) => throw null; public NHibernate.Dialect.Dialect Dialect { get => throw null; } protected NHibernate.Engine.IMapping Mapping { get => throw null; } - protected SqlBaseBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) => throw null; - protected NHibernate.SqlCommand.SqlString ToWhereString(string[] columnNames, string op) => throw null; protected NHibernate.SqlCommand.SqlString ToWhereString(string[] columnNames) => throw null; - protected NHibernate.SqlCommand.SqlString ToWhereString(string tableAlias, string[] columnNames, string op) => throw null; protected NHibernate.SqlCommand.SqlString ToWhereString(string tableAlias, string[] columnNames) => throw null; + protected NHibernate.SqlCommand.SqlString ToWhereString(string[] columnNames, string op) => throw null; + protected NHibernate.SqlCommand.SqlString ToWhereString(string tableAlias, string[] columnNames, string op) => throw null; protected NHibernate.SqlCommand.SqlString ToWhereString(string columnName, string op) => throw null; } - - // Generated from `NHibernate.SqlCommand.SqlCommandImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlCommandImpl : NHibernate.SqlCommand.ISqlCommand { public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList commandQueryParametersList, int singleSqlParametersOffset, NHibernate.Engine.ISessionImplementor session) => throw null; public void Bind(System.Data.Common.DbCommand command, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList commandQueryParametersList, int singleSqlParametersOffset, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public SqlCommandImpl(NHibernate.SqlCommand.SqlString query, System.Collections.Generic.ICollection specifications, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public NHibernate.SqlTypes.SqlType[] ParameterTypes { get => throw null; } public NHibernate.SqlCommand.SqlString Query { get => throw null; } public NHibernate.Engine.QueryParameters QueryParameters { get => throw null; } public void ResetParametersIndexesForTheCommand(int singleSqlParametersOffset) => throw null; public System.Collections.Generic.IEnumerable Specifications { get => throw null; } - public SqlCommandImpl(NHibernate.SqlCommand.SqlString query, System.Collections.Generic.ICollection specifications, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public System.Collections.Generic.IList SqlQueryParametersList { get => throw null; } } - - // Generated from `NHibernate.SqlCommand.SqlCommandInfo` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlCommandInfo { public System.Data.CommandType CommandType { get => throw null; } - public NHibernate.SqlTypes.SqlType[] ParameterTypes { get => throw null; } public SqlCommandInfo(NHibernate.SqlCommand.SqlString text, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null; + public NHibernate.SqlTypes.SqlType[] ParameterTypes { get => throw null; } public NHibernate.SqlCommand.SqlString Text { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.SqlCommand.SqlDeleteBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlDeleteBuilder : NHibernate.SqlCommand.SqlBaseBuilder, NHibernate.SqlCommand.ISqlStringBuilder { public NHibernate.SqlCommand.SqlDeleteBuilder AddWhereFragment(string[] columnNames, NHibernate.Type.IType type, string op) => throw null; public NHibernate.SqlCommand.SqlDeleteBuilder AddWhereFragment(string[] columnNames, NHibernate.SqlTypes.SqlType[] types, string op) => throw null; - public NHibernate.SqlCommand.SqlDeleteBuilder AddWhereFragment(string whereSql) => throw null; public NHibernate.SqlCommand.SqlDeleteBuilder AddWhereFragment(string columnName, NHibernate.SqlTypes.SqlType type, string op) => throw null; + public NHibernate.SqlCommand.SqlDeleteBuilder AddWhereFragment(string whereSql) => throw null; + public SqlDeleteBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null; public NHibernate.SqlCommand.SqlDeleteBuilder SetComment(string comment) => throw null; public NHibernate.SqlCommand.SqlDeleteBuilder SetIdentityColumn(string[] columnNames, NHibernate.Type.IType identityType) => throw null; public NHibernate.SqlCommand.SqlDeleteBuilder SetTableName(string tableName) => throw null; public NHibernate.SqlCommand.SqlDeleteBuilder SetVersionColumn(string[] columnNames, NHibernate.Type.IVersionType versionType) => throw null; public virtual NHibernate.SqlCommand.SqlDeleteBuilder SetWhere(string whereSql) => throw null; - public SqlDeleteBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null; public NHibernate.SqlCommand.SqlCommandInfo ToSqlCommandInfo() => throw null; public NHibernate.SqlCommand.SqlString ToSqlString() => throw null; } - - // Generated from `NHibernate.SqlCommand.SqlInsertBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlInsertBuilder : NHibernate.SqlCommand.ISqlStringBuilder { public virtual NHibernate.SqlCommand.SqlInsertBuilder AddColumn(string columnName, NHibernate.Type.IType propertyType) => throw null; - public NHibernate.SqlCommand.SqlInsertBuilder AddColumn(string columnName, string val) => throw null; public NHibernate.SqlCommand.SqlInsertBuilder AddColumn(string columnName, object val, NHibernate.Type.ILiteralType literalType) => throw null; + public NHibernate.SqlCommand.SqlInsertBuilder AddColumn(string columnName, string val) => throw null; public NHibernate.SqlCommand.SqlInsertBuilder AddColumns(string[] columnNames, bool[] insertable, NHibernate.Type.IType propertyType) => throw null; public virtual NHibernate.SqlCommand.SqlInsertBuilder AddIdentityColumn(string columnName) => throw null; - protected internal NHibernate.Dialect.Dialect Dialect { get => throw null; } + public SqlInsertBuilder(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + protected NHibernate.Dialect.Dialect Dialect { get => throw null; } public NHibernate.SqlTypes.SqlType[] GetParametersTypeArray() => throw null; public virtual NHibernate.SqlCommand.SqlInsertBuilder SetComment(string comment) => throw null; public NHibernate.SqlCommand.SqlInsertBuilder SetTableName(string tableName) => throw null; - public SqlInsertBuilder(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public NHibernate.SqlCommand.SqlCommandInfo ToSqlCommandInfo() => throw null; public virtual NHibernate.SqlCommand.SqlString ToSqlString() => throw null; } - - // Generated from `NHibernate.SqlCommand.SqlSelectBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlSelectBuilder : NHibernate.SqlCommand.SqlBaseBuilder, NHibernate.SqlCommand.ISqlStringBuilder { + public SqlSelectBuilder(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetComment(string comment) => throw null; - public NHibernate.SqlCommand.SqlSelectBuilder SetFromClause(string tableName, string alias) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetFromClause(string fromClause) => throw null; + public NHibernate.SqlCommand.SqlSelectBuilder SetFromClause(string tableName, string alias) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetFromClause(NHibernate.SqlCommand.SqlString fromClause) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetGroupByClause(NHibernate.SqlCommand.SqlString groupByClause) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetHavingClause(string tableAlias, string[] columnNames, NHibernate.Type.IType whereType) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetHavingClause(NHibernate.SqlCommand.SqlString havingSqlString) => throw null; - public NHibernate.SqlCommand.SqlSelectBuilder SetLockMode(NHibernate.LockMode lockMode, string mainTableAlias) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetLockMode(NHibernate.LockMode lockMode) => throw null; + public NHibernate.SqlCommand.SqlSelectBuilder SetLockMode(NHibernate.LockMode lockMode, string mainTableAlias) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetOrderByClause(NHibernate.SqlCommand.SqlString orderByClause) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetOuterJoins(NHibernate.SqlCommand.SqlString outerJoinsAfterFrom, NHibernate.SqlCommand.SqlString outerJoinsAfterWhere) => throw null; - public NHibernate.SqlCommand.SqlSelectBuilder SetSelectClause(string selectClause) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetSelectClause(NHibernate.SqlCommand.SqlString selectClause) => throw null; + public NHibernate.SqlCommand.SqlSelectBuilder SetSelectClause(string selectClause) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetWhereClause(string tableAlias, string[] columnNames, NHibernate.Type.IType whereType) => throw null; public NHibernate.SqlCommand.SqlSelectBuilder SetWhereClause(NHibernate.SqlCommand.SqlString whereSqlString) => throw null; - public SqlSelectBuilder(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null; public NHibernate.SqlCommand.SqlString ToSqlString() => throw null; public NHibernate.SqlCommand.SqlString ToStatementString() => throw null; } - - // Generated from `NHibernate.SqlCommand.SqlSimpleSelectBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlSimpleSelectBuilder : NHibernate.SqlCommand.SqlBaseBuilder, NHibernate.SqlCommand.ISqlStringBuilder { - public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumn(string columnName, string alias) => throw null; public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumn(string columnName) => throw null; - public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumns(string[] columns, string[] aliases, bool[] ignore) => throw null; - public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumns(string[] columnNames, string[] aliases) => throw null; + public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumn(string columnName, string alias) => throw null; public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumns(string[] columnNames) => throw null; + public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumns(string[] columnNames, string[] aliases) => throw null; + public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumns(string[] columns, string[] aliases, bool[] ignore) => throw null; public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddWhereFragment(string[] columnNames, NHibernate.Type.IType type, string op) => throw null; public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddWhereFragment(string fragment) => throw null; + public SqlSimpleSelectBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping factory) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null; public string GetAlias(string columnName) => throw null; public virtual NHibernate.SqlCommand.SqlSimpleSelectBuilder SetComment(string comment) => throw null; public NHibernate.SqlCommand.SqlSimpleSelectBuilder SetIdentityColumn(string[] columnNames, NHibernate.Type.IType identityType) => throw null; @@ -30380,27 +26285,26 @@ namespace NHibernate public NHibernate.SqlCommand.SqlSimpleSelectBuilder SetOrderBy(string orderBy) => throw null; public NHibernate.SqlCommand.SqlSimpleSelectBuilder SetTableName(string tableName) => throw null; public NHibernate.SqlCommand.SqlSimpleSelectBuilder SetVersionColumn(string[] columnNames, NHibernate.Type.IVersionType versionType) => throw null; - public SqlSimpleSelectBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping factory) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null; public NHibernate.SqlCommand.SqlString ToSqlString() => throw null; } - - // Generated from `NHibernate.SqlCommand.SqlString` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SqlString : System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IEnumerable + public class SqlString : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable { - public static NHibernate.SqlCommand.SqlString operator +(NHibernate.SqlCommand.SqlString lhs, NHibernate.SqlCommand.SqlString rhs) => throw null; + public NHibernate.SqlCommand.SqlString Append(NHibernate.SqlCommand.SqlString sql) => throw null; public NHibernate.SqlCommand.SqlString Append(string text) => throw null; public NHibernate.SqlCommand.SqlString Append(params object[] parts) => throw null; - public NHibernate.SqlCommand.SqlString Append(NHibernate.SqlCommand.SqlString sql) => throw null; public NHibernate.SqlCommand.SqlString Copy() => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public SqlString(string sql) => throw null; + public SqlString(NHibernate.SqlCommand.Parameter parameter) => throw null; + public SqlString(params object[] parts) => throw null; public static NHibernate.SqlCommand.SqlString Empty; public bool EndsWith(string value) => throw null; public bool EndsWithCaseInsensitive(string value) => throw null; public override bool Equals(object obj) => throw null; public bool EqualsCaseInsensitive(string value) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; public override int GetHashCode() => throw null; public int GetParameterCount() => throw null; public System.Collections.Generic.IEnumerable GetParameters() => throw null; @@ -30413,49 +26317,43 @@ namespace NHibernate bool System.Collections.ICollection.IsSynchronized { get => throw null; } public int LastIndexOfCaseInsensitive(string text) => throw null; public int Length { get => throw null; } + public static NHibernate.SqlCommand.SqlString operator +(NHibernate.SqlCommand.SqlString lhs, NHibernate.SqlCommand.SqlString rhs) => throw null; public static NHibernate.SqlCommand.SqlString Parse(string sql) => throw null; public NHibernate.SqlCommand.SqlString Replace(string oldValue, string newValue) => throw null; public NHibernate.SqlCommand.SqlString[] Split(string splitter) => throw null; - public SqlString(string sql) => throw null; - public SqlString(params object[] parts) => throw null; - public SqlString(NHibernate.SqlCommand.Parameter parameter) => throw null; public bool StartsWithCaseInsensitive(string value) => throw null; - public NHibernate.SqlCommand.SqlString Substring(int startIndex, int length) => throw null; public NHibernate.SqlCommand.SqlString Substring(int startIndex) => throw null; + public NHibernate.SqlCommand.SqlString Substring(int startIndex, int length) => throw null; public NHibernate.SqlCommand.SqlString SubstringStartingWithLast(string text) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } - public string ToString(int startIndex, int length) => throw null; - public string ToString(int startIndex) => throw null; public override string ToString() => throw null; + public string ToString(int startIndex) => throw null; + public string ToString(int startIndex, int length) => throw null; public NHibernate.SqlCommand.SqlString Trim() => throw null; public void Visit(NHibernate.SqlCommand.ISqlStringVisitor visitor) => throw null; } - - // Generated from `NHibernate.SqlCommand.SqlStringBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlStringBuilder : NHibernate.SqlCommand.ISqlStringBuilder { public NHibernate.SqlCommand.SqlStringBuilder Add(string sql) => throw null; - public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString[] sqlStrings, string prefix, string op, string postfix, bool wrapStatement) => throw null; - public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString[] sqlStrings, string prefix, string op, string postfix) => throw null; - public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString sqlString, string prefix, string op, string postfix) => throw null; - public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString sqlString) => throw null; public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.Parameter parameter) => throw null; + public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString sqlString) => throw null; + public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString sqlString, string prefix, string op, string postfix) => throw null; + public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString[] sqlStrings, string prefix, string op, string postfix) => throw null; + public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString[] sqlStrings, string prefix, string op, string postfix, bool wrapStatement) => throw null; public NHibernate.SqlCommand.SqlStringBuilder AddObject(object part) => throw null; public NHibernate.SqlCommand.SqlStringBuilder AddParameter() => throw null; public void Clear() => throw null; public int Count { get => throw null; } - public NHibernate.SqlCommand.SqlStringBuilder Insert(int index, string sql) => throw null; - public NHibernate.SqlCommand.SqlStringBuilder Insert(int index, NHibernate.SqlCommand.Parameter param) => throw null; - public object this[int index] { get => throw null; set => throw null; } - public NHibernate.SqlCommand.SqlStringBuilder RemoveAt(int index) => throw null; + public SqlStringBuilder() => throw null; public SqlStringBuilder(int partsCapacity) => throw null; public SqlStringBuilder(NHibernate.SqlCommand.SqlString sqlString) => throw null; - public SqlStringBuilder() => throw null; + public NHibernate.SqlCommand.SqlStringBuilder Insert(int index, string sql) => throw null; + public NHibernate.SqlCommand.SqlStringBuilder Insert(int index, NHibernate.SqlCommand.Parameter param) => throw null; + public NHibernate.SqlCommand.SqlStringBuilder RemoveAt(int index) => throw null; + public object this[int index] { get => throw null; set { } } public NHibernate.SqlCommand.SqlString ToSqlString() => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.SqlCommand.SqlStringHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class SqlStringHelper { public static NHibernate.SqlCommand.SqlString[] Add(NHibernate.SqlCommand.SqlString[] x, string sep, NHibernate.SqlCommand.SqlString[] y) => throw null; @@ -30464,176 +26362,110 @@ namespace NHibernate public static NHibernate.SqlCommand.SqlString Join(NHibernate.SqlCommand.SqlString separator, System.Collections.IEnumerable objects) => throw null; public static NHibernate.SqlCommand.SqlString RemoveAsAliasesFromSql(NHibernate.SqlCommand.SqlString sql) => throw null; } - - // Generated from `NHibernate.SqlCommand.SqlUpdateBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SqlUpdateBuilder : NHibernate.SqlCommand.SqlBaseBuilder, NHibernate.SqlCommand.ISqlStringBuilder { - public virtual NHibernate.SqlCommand.SqlUpdateBuilder AddColumn(string columnName, NHibernate.Type.IType propertyType) => throw null; - public NHibernate.SqlCommand.SqlUpdateBuilder AddColumn(string columnName, string val) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder AddColumn(string columnName, object val, NHibernate.Type.ILiteralType literalType) => throw null; + public NHibernate.SqlCommand.SqlUpdateBuilder AddColumn(string columnName, string val) => throw null; + public virtual NHibernate.SqlCommand.SqlUpdateBuilder AddColumn(string columnName, NHibernate.Type.IType propertyType) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder AddColumns(string[] columnsName, string val) => throw null; - public NHibernate.SqlCommand.SqlUpdateBuilder AddColumns(string[] columnNames, bool[] updateable, NHibernate.Type.IType propertyType) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder AddColumns(string[] columnNames, NHibernate.Type.IType propertyType) => throw null; + public NHibernate.SqlCommand.SqlUpdateBuilder AddColumns(string[] columnNames, bool[] updateable, NHibernate.Type.IType propertyType) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder AddWhereFragment(string[] columnNames, NHibernate.Type.IType type, string op) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder AddWhereFragment(string[] columnNames, NHibernate.SqlTypes.SqlType[] types, string op) => throw null; - public NHibernate.SqlCommand.SqlUpdateBuilder AddWhereFragment(string whereSql) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder AddWhereFragment(string columnName, NHibernate.SqlTypes.SqlType type, string op) => throw null; + public NHibernate.SqlCommand.SqlUpdateBuilder AddWhereFragment(string whereSql) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder AppendAssignmentFragment(NHibernate.SqlCommand.SqlString fragment) => throw null; + public SqlUpdateBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder SetComment(string comment) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder SetIdentityColumn(string[] columnNames, NHibernate.Type.IType identityType) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder SetJoin(string joinTableName, string[] keyColumnNames, NHibernate.Type.IType identityType, string[] lhsColumnNames, string[] rhsColumnNames) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder SetTableName(string tableName) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder SetVersionColumn(string[] columnNames, NHibernate.Type.IVersionType versionType) => throw null; public NHibernate.SqlCommand.SqlUpdateBuilder SetWhere(string whereSql) => throw null; - public SqlUpdateBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null; public NHibernate.SqlCommand.SqlCommandInfo ToSqlCommandInfo() => throw null; public NHibernate.SqlCommand.SqlString ToSqlString() => throw null; } - - // Generated from `NHibernate.SqlCommand.SubselectClauseExtractor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SubselectClauseExtractor { + public SubselectClauseExtractor(NHibernate.SqlCommand.SqlString sql) => throw null; public NHibernate.SqlCommand.SqlString GetSqlString() => throw null; public static bool HasOrderBy(NHibernate.SqlCommand.SqlString subselect) => throw null; - public SubselectClauseExtractor(NHibernate.SqlCommand.SqlString sql) => throw null; } - - // Generated from `NHibernate.SqlCommand.Template` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class Template { public static string Placeholder; public static string RenderOrderByStringTemplate(string sqlOrderByString, NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null; - public static string RenderWhereStringTemplate(string sqlWhereString, string placeholder, NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null; public static string RenderWhereStringTemplate(string sqlWhereString, NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null; + public static string RenderWhereStringTemplate(string sqlWhereString, string placeholder, NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null; } - - // Generated from `NHibernate.SqlCommand.WhereBuilder` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class WhereBuilder : NHibernate.SqlCommand.SqlBaseBuilder { public WhereBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null; public NHibernate.SqlCommand.SqlString WhereClause(string alias, string[] columnNames, NHibernate.Type.IType whereType) => throw null; } - - namespace Parser - { - // Generated from `NHibernate.SqlCommand.Parser.SqlToken` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SqlToken - { - public override bool Equals(object obj) => throw null; - public bool Equals(string value, System.StringComparison stringComparison) => throw null; - public bool Equals(string value) => throw null; - public override int GetHashCode() => throw null; - public int Length { get => throw null; } - public int SqlIndex { get => throw null; } - public SqlToken(NHibernate.SqlCommand.Parser.SqlTokenType tokenType, NHibernate.SqlCommand.SqlString sql, int sqlIndex, int length) => throw null; - public override string ToString() => throw null; - public NHibernate.SqlCommand.Parser.SqlTokenType TokenType { get => throw null; } - public string UnquotedValue { get => throw null; } - public string Value { get => throw null; } - } - - // Generated from `NHibernate.SqlCommand.Parser.SqlTokenType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - [System.Flags] - public enum SqlTokenType - { - All, - AllBrackets, - AllExceptWhitespace, - AllExceptWhitespaceOrComment, - BracketClose, - BracketOpen, - Comma, - Comment, - DelimitedText, - Parameter, - Text, - Whitespace, - } - - // Generated from `NHibernate.SqlCommand.Parser.SqlTokenizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SqlTokenizer : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable - { - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public bool IgnoreComments { get => throw null; set => throw null; } - public bool IgnoreWhitespace { get => throw null; set => throw null; } - public SqlTokenizer(NHibernate.SqlCommand.SqlString sql) => throw null; - } - - } + } + public static class SQLQueryExtension + { + public static NHibernate.ISQLQuery AddSynchronizedEntityClass(this NHibernate.ISQLQuery sqlQuery, System.Type entityType) => throw null; + public static NHibernate.ISQLQuery AddSynchronizedEntityName(this NHibernate.ISQLQuery sqlQuery, string entityName) => throw null; + public static NHibernate.ISQLQuery AddSynchronizedQuerySpace(this NHibernate.ISQLQuery sqlQuery, string querySpace) => throw null; + public static System.Collections.Generic.IReadOnlyCollection GetSynchronizedQuerySpaces(this NHibernate.ISQLQuery sqlQuery) => throw null; } namespace SqlTypes { - // Generated from `NHibernate.SqlTypes.AnsiStringFixedLengthSqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AnsiStringFixedLengthSqlType : NHibernate.SqlTypes.SqlType { - public AnsiStringFixedLengthSqlType(int length) : base(default(System.Data.DbType)) => throw null; public AnsiStringFixedLengthSqlType() : base(default(System.Data.DbType)) => throw null; + public AnsiStringFixedLengthSqlType(int length) : base(default(System.Data.DbType)) => throw null; } - - // Generated from `NHibernate.SqlTypes.AnsiStringSqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AnsiStringSqlType : NHibernate.SqlTypes.SqlType { - public AnsiStringSqlType(int length) : base(default(System.Data.DbType)) => throw null; public AnsiStringSqlType() : base(default(System.Data.DbType)) => throw null; + public AnsiStringSqlType(int length) : base(default(System.Data.DbType)) => throw null; } - - // Generated from `NHibernate.SqlTypes.BinaryBlobSqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BinaryBlobSqlType : NHibernate.SqlTypes.BinarySqlType { public BinaryBlobSqlType(int length) => throw null; public BinaryBlobSqlType() => throw null; } - - // Generated from `NHibernate.SqlTypes.BinarySqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BinarySqlType : NHibernate.SqlTypes.SqlType { - public BinarySqlType(int length) : base(default(System.Data.DbType)) => throw null; public BinarySqlType() : base(default(System.Data.DbType)) => throw null; + public BinarySqlType(int length) : base(default(System.Data.DbType)) => throw null; } - - // Generated from `NHibernate.SqlTypes.DateTime2SqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DateTime2SqlType : NHibernate.SqlTypes.SqlType { - public DateTime2SqlType(System.Byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null; public DateTime2SqlType() : base(default(System.Data.DbType)) => throw null; + public DateTime2SqlType(byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null; } - - // Generated from `NHibernate.SqlTypes.DateTimeOffsetSqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DateTimeOffsetSqlType : NHibernate.SqlTypes.SqlType { - public DateTimeOffsetSqlType(System.Byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null; public DateTimeOffsetSqlType() : base(default(System.Data.DbType)) => throw null; + public DateTimeOffsetSqlType(byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null; } - - // Generated from `NHibernate.SqlTypes.DateTimeSqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DateTimeSqlType : NHibernate.SqlTypes.SqlType { - public DateTimeSqlType(System.Byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null; public DateTimeSqlType() : base(default(System.Data.DbType)) => throw null; + public DateTimeSqlType(byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null; } - - // Generated from `NHibernate.SqlTypes.SqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SqlType + public class SqlType : System.IEquatable { + public SqlType(System.Data.DbType dbType) => throw null; + public SqlType(System.Data.DbType dbType, int length) => throw null; + public SqlType(System.Data.DbType dbType, byte precision, byte scale) => throw null; + public SqlType(System.Data.DbType dbType, byte scale) => throw null; public System.Data.DbType DbType { get => throw null; } public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.SqlTypes.SqlType rhsSqlType) => throw null; public override int GetHashCode() => throw null; public int Length { get => throw null; } public bool LengthDefined { get => throw null; } - public System.Byte Precision { get => throw null; } + public byte Precision { get => throw null; } public bool PrecisionDefined { get => throw null; } - public System.Byte Scale { get => throw null; } + public byte Scale { get => throw null; } public bool ScaleDefined { get => throw null; } - public SqlType(System.Data.DbType dbType, int length) => throw null; - public SqlType(System.Data.DbType dbType, System.Byte scale) => throw null; - public SqlType(System.Data.DbType dbType, System.Byte precision, System.Byte scale) => throw null; - public SqlType(System.Data.DbType dbType) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.SqlTypes.SqlTypeFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class SqlTypeFactory { public static NHibernate.SqlTypes.SqlType Boolean; @@ -30648,13 +26480,13 @@ namespace NHibernate public static NHibernate.SqlTypes.AnsiStringSqlType GetAnsiString(int length) => throw null; public static NHibernate.SqlTypes.BinarySqlType GetBinary(int length) => throw null; public static NHibernate.SqlTypes.BinaryBlobSqlType GetBinaryBlob(int length) => throw null; - public static NHibernate.SqlTypes.DateTimeSqlType GetDateTime(System.Byte fractionalSecondsPrecision) => throw null; - public static NHibernate.SqlTypes.DateTime2SqlType GetDateTime2(System.Byte fractionalSecondsPrecision) => throw null; - public static NHibernate.SqlTypes.DateTimeOffsetSqlType GetDateTimeOffset(System.Byte fractionalSecondsPrecision) => throw null; - public static NHibernate.SqlTypes.SqlType GetSqlType(System.Data.DbType dbType, System.Byte precision, System.Byte scale) => throw null; + public static NHibernate.SqlTypes.DateTimeSqlType GetDateTime(byte fractionalSecondsPrecision) => throw null; + public static NHibernate.SqlTypes.DateTime2SqlType GetDateTime2(byte fractionalSecondsPrecision) => throw null; + public static NHibernate.SqlTypes.DateTimeOffsetSqlType GetDateTimeOffset(byte fractionalSecondsPrecision) => throw null; + public static NHibernate.SqlTypes.SqlType GetSqlType(System.Data.DbType dbType, byte precision, byte scale) => throw null; public static NHibernate.SqlTypes.StringSqlType GetString(int length) => throw null; public static NHibernate.SqlTypes.StringClobSqlType GetStringClob(int length) => throw null; - public static NHibernate.SqlTypes.TimeSqlType GetTime(System.Byte fractionalSecondsPrecision) => throw null; + public static NHibernate.SqlTypes.TimeSqlType GetTime(byte fractionalSecondsPrecision) => throw null; public static NHibernate.SqlTypes.SqlType Guid; public static NHibernate.SqlTypes.SqlType Int16; public static NHibernate.SqlTypes.SqlType Int32; @@ -30667,78 +26499,73 @@ namespace NHibernate public static NHibernate.SqlTypes.SqlType UInt32; public static NHibernate.SqlTypes.SqlType UInt64; } - - // Generated from `NHibernate.SqlTypes.StringClobSqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class StringClobSqlType : NHibernate.SqlTypes.StringSqlType { - public StringClobSqlType(int length) => throw null; public StringClobSqlType() => throw null; + public StringClobSqlType(int length) => throw null; } - - // Generated from `NHibernate.SqlTypes.StringFixedLengthSqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class StringFixedLengthSqlType : NHibernate.SqlTypes.SqlType { - public StringFixedLengthSqlType(int length) : base(default(System.Data.DbType)) => throw null; public StringFixedLengthSqlType() : base(default(System.Data.DbType)) => throw null; + public StringFixedLengthSqlType(int length) : base(default(System.Data.DbType)) => throw null; } - - // Generated from `NHibernate.SqlTypes.StringSqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class StringSqlType : NHibernate.SqlTypes.SqlType { - public StringSqlType(int length) : base(default(System.Data.DbType)) => throw null; public StringSqlType() : base(default(System.Data.DbType)) => throw null; + public StringSqlType(int length) : base(default(System.Data.DbType)) => throw null; } - - // Generated from `NHibernate.SqlTypes.TimeSqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TimeSqlType : NHibernate.SqlTypes.SqlType { - public TimeSqlType(System.Byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null; public TimeSqlType() : base(default(System.Data.DbType)) => throw null; + public TimeSqlType(byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null; } - - // Generated from `NHibernate.SqlTypes.XmlSqlType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class XmlSqlType : NHibernate.SqlTypes.SqlType { - public XmlSqlType(int length) : base(default(System.Data.DbType)) => throw null; public XmlSqlType() : base(default(System.Data.DbType)) => throw null; + public XmlSqlType(int length) : base(default(System.Data.DbType)) => throw null; } - + } + public class StaleObjectStateException : NHibernate.StaleStateException + { + public StaleObjectStateException(string entityName, object identifier) : base(default(string)) => throw null; + public StaleObjectStateException(string entityName, object identifier, System.Exception innerException) : base(default(string)) => throw null; + protected StaleObjectStateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; + public string EntityName { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public object Identifier { get => throw null; } + public override string Message { get => throw null; } + } + public class StaleStateException : NHibernate.HibernateException + { + public StaleStateException(string message) => throw null; + public StaleStateException(string message, System.Exception innerException) => throw null; + protected StaleStateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } namespace Stat { - // Generated from `NHibernate.Stat.CategorizedStatistics` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CategorizedStatistics { - internal CategorizedStatistics(string categoryName) => throw null; public string CategoryName { get => throw null; } } - - // Generated from `NHibernate.Stat.CollectionStatistics` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CollectionStatistics : NHibernate.Stat.CategorizedStatistics { - internal CollectionStatistics(string categoryName) : base(default(string)) => throw null; - public System.Int64 FetchCount { get => throw null; } - public System.Int64 LoadCount { get => throw null; } - public System.Int64 RecreateCount { get => throw null; } - public System.Int64 RemoveCount { get => throw null; } + public long FetchCount { get => throw null; } + public long LoadCount { get => throw null; } + public long RecreateCount { get => throw null; } + public long RemoveCount { get => throw null; } public override string ToString() => throw null; - public System.Int64 UpdateCount { get => throw null; } + public long UpdateCount { get => throw null; } } - - // Generated from `NHibernate.Stat.EntityStatistics` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EntityStatistics : NHibernate.Stat.CategorizedStatistics { - public System.Int64 DeleteCount { get => throw null; } - internal EntityStatistics(string categoryName) : base(default(string)) => throw null; - public System.Int64 FetchCount { get => throw null; } - public System.Int64 InsertCount { get => throw null; } - public System.Int64 LoadCount { get => throw null; } - public System.Int64 OptimisticFailureCount { get => throw null; } + public long DeleteCount { get => throw null; } + public long FetchCount { get => throw null; } + public long InsertCount { get => throw null; } + public long LoadCount { get => throw null; } + public long OptimisticFailureCount { get => throw null; } public override string ToString() => throw null; - public System.Int64 UpdateCount { get => throw null; } + public long UpdateCount { get => throw null; } } - - // Generated from `NHibernate.Stat.ISessionStatistics` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISessionStatistics { int CollectionCount { get; } @@ -30746,26 +26573,24 @@ namespace NHibernate int EntityCount { get; } System.Collections.Generic.IList EntityKeys { get; } } - - // Generated from `NHibernate.Stat.IStatistics` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IStatistics { void Clear(); - System.Int64 CloseStatementCount { get; } - System.Int64 CollectionFetchCount { get; } - System.Int64 CollectionLoadCount { get; } - System.Int64 CollectionRecreateCount { get; } - System.Int64 CollectionRemoveCount { get; } + long CloseStatementCount { get; } + long CollectionFetchCount { get; } + long CollectionLoadCount { get; } + long CollectionRecreateCount { get; } + long CollectionRemoveCount { get; } string[] CollectionRoleNames { get; } - System.Int64 CollectionUpdateCount { get; } - System.Int64 ConnectCount { get; } - System.Int64 EntityDeleteCount { get; } - System.Int64 EntityFetchCount { get; } - System.Int64 EntityInsertCount { get; } - System.Int64 EntityLoadCount { get; } + long CollectionUpdateCount { get; } + long ConnectCount { get; } + long EntityDeleteCount { get; } + long EntityFetchCount { get; } + long EntityInsertCount { get; } + long EntityLoadCount { get; } string[] EntityNames { get; } - System.Int64 EntityUpdateCount { get; } - System.Int64 FlushCount { get; } + long EntityUpdateCount { get; } + long FlushCount { get; } NHibernate.Stat.CollectionStatistics GetCollectionStatistics(string role); NHibernate.Stat.EntityStatistics GetEntityStatistics(string entityName); NHibernate.Stat.QueryStatistics GetQueryStatistics(string queryString); @@ -30773,27 +26598,25 @@ namespace NHibernate bool IsStatisticsEnabled { get; set; } void LogSummary(); System.TimeSpan OperationThreshold { get; set; } - System.Int64 OptimisticFailureCount { get; } - System.Int64 PrepareStatementCount { get; } + long OptimisticFailureCount { get; } + long PrepareStatementCount { get; } string[] Queries { get; } - System.Int64 QueryCacheHitCount { get; } - System.Int64 QueryCacheMissCount { get; } - System.Int64 QueryCachePutCount { get; } - System.Int64 QueryExecutionCount { get; } + long QueryCacheHitCount { get; } + long QueryCacheMissCount { get; } + long QueryCachePutCount { get; } + long QueryExecutionCount { get; } System.TimeSpan QueryExecutionMaxTime { get; } string QueryExecutionMaxTimeQueryString { get; } - System.Int64 SecondLevelCacheHitCount { get; } - System.Int64 SecondLevelCacheMissCount { get; } - System.Int64 SecondLevelCachePutCount { get; } + long SecondLevelCacheHitCount { get; } + long SecondLevelCacheMissCount { get; } + long SecondLevelCachePutCount { get; } string[] SecondLevelCacheRegionNames { get; } - System.Int64 SessionCloseCount { get; } - System.Int64 SessionOpenCount { get; } + long SessionCloseCount { get; } + long SessionOpenCount { get; } System.DateTime StartTime { get; } - System.Int64 SuccessfulTransactionCount { get; } - System.Int64 TransactionCount { get; } + long SuccessfulTransactionCount { get; } + long TransactionCount { get; } } - - // Generated from `NHibernate.Stat.IStatisticsImplementor` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IStatisticsImplementor { void CloseSession(); @@ -30822,138 +26645,143 @@ namespace NHibernate void UpdateCollection(string role, System.TimeSpan time); void UpdateEntity(string entityName, System.TimeSpan time); } - - // Generated from `NHibernate.Stat.QueryStatistics` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class QueryStatistics : NHibernate.Stat.CategorizedStatistics { - public System.Int64 CacheHitCount { get => throw null; } - public System.Int64 CacheMissCount { get => throw null; } - public System.Int64 CachePutCount { get => throw null; } + public long CacheHitCount { get => throw null; } + public long CacheMissCount { get => throw null; } + public long CachePutCount { get => throw null; } + public QueryStatistics(string categoryName) => throw null; public System.TimeSpan ExecutionAvgTime { get => throw null; } - public System.Int64 ExecutionCount { get => throw null; } + public long ExecutionCount { get => throw null; } public System.TimeSpan ExecutionMaxTime { get => throw null; } public System.TimeSpan ExecutionMinTime { get => throw null; } - public System.Int64 ExecutionRowCount { get => throw null; } - public QueryStatistics(string categoryName) : base(default(string)) => throw null; + public long ExecutionRowCount { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.Stat.SecondLevelCacheStatistics` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SecondLevelCacheStatistics : NHibernate.Stat.CategorizedStatistics { - public System.Int64 ElementCountInMemory { get => throw null; } - public System.Int64 ElementCountOnDisk { get => throw null; } + public SecondLevelCacheStatistics(NHibernate.Cache.ICache cache) => throw null; + public long ElementCountInMemory { get => throw null; } + public long ElementCountOnDisk { get => throw null; } public System.Collections.IDictionary Entries { get => throw null; } - public System.Int64 HitCount { get => throw null; } - public System.Int64 MissCount { get => throw null; } - public System.Int64 PutCount { get => throw null; } - public SecondLevelCacheStatistics(NHibernate.Cache.ICache cache) : base(default(string)) => throw null; - public System.Int64 SizeInMemory { get => throw null; } + public long HitCount { get => throw null; } + public long MissCount { get => throw null; } + public long PutCount { get => throw null; } + public long SizeInMemory { get => throw null; } public override string ToString() => throw null; } - - // Generated from `NHibernate.Stat.SessionStatisticsImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SessionStatisticsImpl : NHibernate.Stat.ISessionStatistics { public int CollectionCount { get => throw null; } public System.Collections.Generic.IList CollectionKeys { get => throw null; } + public SessionStatisticsImpl(NHibernate.Engine.ISessionImplementor session) => throw null; public int EntityCount { get => throw null; } public System.Collections.Generic.IList EntityKeys { get => throw null; } - public SessionStatisticsImpl(NHibernate.Engine.ISessionImplementor session) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Stat.StatisticsImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StatisticsImpl : NHibernate.Stat.IStatisticsImplementor, NHibernate.Stat.IStatistics + public class StatisticsImpl : NHibernate.Stat.IStatistics, NHibernate.Stat.IStatisticsImplementor { public void Clear() => throw null; public void CloseSession() => throw null; public void CloseStatement() => throw null; - public System.Int64 CloseStatementCount { get => throw null; } - public System.Int64 CollectionFetchCount { get => throw null; } - public System.Int64 CollectionLoadCount { get => throw null; } - public System.Int64 CollectionRecreateCount { get => throw null; } - public System.Int64 CollectionRemoveCount { get => throw null; } + public long CloseStatementCount { get => throw null; } + public long CollectionFetchCount { get => throw null; } + public long CollectionLoadCount { get => throw null; } + public long CollectionRecreateCount { get => throw null; } + public long CollectionRemoveCount { get => throw null; } public string[] CollectionRoleNames { get => throw null; } - public System.Int64 CollectionUpdateCount { get => throw null; } + public long CollectionUpdateCount { get => throw null; } public void Connect() => throw null; - public System.Int64 ConnectCount { get => throw null; } + public long ConnectCount { get => throw null; } + public StatisticsImpl() => throw null; + public StatisticsImpl(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; public void DeleteEntity(string entityName, System.TimeSpan time) => throw null; public void EndTransaction(bool success) => throw null; - public System.Int64 EntityDeleteCount { get => throw null; } - public System.Int64 EntityFetchCount { get => throw null; } - public System.Int64 EntityInsertCount { get => throw null; } - public System.Int64 EntityLoadCount { get => throw null; } + public long EntityDeleteCount { get => throw null; } + public long EntityFetchCount { get => throw null; } + public long EntityInsertCount { get => throw null; } + public long EntityLoadCount { get => throw null; } public string[] EntityNames { get => throw null; } - public System.Int64 EntityUpdateCount { get => throw null; } + public long EntityUpdateCount { get => throw null; } public void FetchCollection(string role, System.TimeSpan time) => throw null; public void FetchEntity(string entityName, System.TimeSpan time) => throw null; public void Flush() => throw null; - public System.Int64 FlushCount { get => throw null; } + public long FlushCount { get => throw null; } public NHibernate.Stat.CollectionStatistics GetCollectionStatistics(string role) => throw null; public NHibernate.Stat.EntityStatistics GetEntityStatistics(string entityName) => throw null; public NHibernate.Stat.QueryStatistics GetQueryStatistics(string queryString) => throw null; public NHibernate.Stat.SecondLevelCacheStatistics GetSecondLevelCacheStatistics(string regionName) => throw null; public void InsertEntity(string entityName, System.TimeSpan time) => throw null; - public bool IsStatisticsEnabled { get => throw null; set => throw null; } + public bool IsStatisticsEnabled { get => throw null; set { } } public void LoadCollection(string role, System.TimeSpan time) => throw null; public void LoadEntity(string entityName, System.TimeSpan time) => throw null; public void LogSummary() => throw null; public void OpenSession() => throw null; - public System.TimeSpan OperationThreshold { get => throw null; set => throw null; } + public System.TimeSpan OperationThreshold { get => throw null; set { } } public void OptimisticFailure(string entityName) => throw null; - public System.Int64 OptimisticFailureCount { get => throw null; } + public long OptimisticFailureCount { get => throw null; } public void PrepareStatement() => throw null; - public System.Int64 PrepareStatementCount { get => throw null; } + public long PrepareStatementCount { get => throw null; } public string[] Queries { get => throw null; } public void QueryCacheHit(string hql, string regionName) => throw null; - public System.Int64 QueryCacheHitCount { get => throw null; } + public long QueryCacheHitCount { get => throw null; } public void QueryCacheMiss(string hql, string regionName) => throw null; - public System.Int64 QueryCacheMissCount { get => throw null; } + public long QueryCacheMissCount { get => throw null; } public void QueryCachePut(string hql, string regionName) => throw null; - public System.Int64 QueryCachePutCount { get => throw null; } + public long QueryCachePutCount { get => throw null; } public void QueryExecuted(string hql, int rows, System.TimeSpan time) => throw null; - public System.Int64 QueryExecutionCount { get => throw null; } + public long QueryExecutionCount { get => throw null; } public System.TimeSpan QueryExecutionMaxTime { get => throw null; } public string QueryExecutionMaxTimeQueryString { get => throw null; } public void RecreateCollection(string role, System.TimeSpan time) => throw null; public void RemoveCollection(string role, System.TimeSpan time) => throw null; public void SecondLevelCacheHit(string regionName) => throw null; - public System.Int64 SecondLevelCacheHitCount { get => throw null; } + public long SecondLevelCacheHitCount { get => throw null; } public void SecondLevelCacheMiss(string regionName) => throw null; - public System.Int64 SecondLevelCacheMissCount { get => throw null; } + public long SecondLevelCacheMissCount { get => throw null; } public void SecondLevelCachePut(string regionName) => throw null; - public System.Int64 SecondLevelCachePutCount { get => throw null; } + public long SecondLevelCachePutCount { get => throw null; } public string[] SecondLevelCacheRegionNames { get => throw null; } - public System.Int64 SessionCloseCount { get => throw null; } - public System.Int64 SessionOpenCount { get => throw null; } + public long SessionCloseCount { get => throw null; } + public long SessionOpenCount { get => throw null; } public System.DateTime StartTime { get => throw null; } - public StatisticsImpl(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; - public StatisticsImpl() => throw null; - public System.Int64 SuccessfulTransactionCount { get => throw null; } + public long SuccessfulTransactionCount { get => throw null; } public override string ToString() => throw null; - public System.Int64 TransactionCount { get => throw null; } + public long TransactionCount { get => throw null; } public void UpdateCollection(string role, System.TimeSpan time) => throw null; public void UpdateEntity(string entityName, System.TimeSpan time) => throw null; } - + } + public static partial class StatelessSessionBuilderExtensions + { + public static T Tenant(this T builder, string tenantIdentifier) where T : NHibernate.ISessionBuilder => throw null; + public static NHibernate.IStatelessSessionBuilder Tenant(this NHibernate.IStatelessSessionBuilder builder, NHibernate.MultiTenancy.TenantConfiguration tenantConfig) => throw null; + } + public static partial class StatelessSessionExtensions + { + public static void CancelQuery(this NHibernate.IStatelessSession session) => throw null; + public static NHibernate.Multi.IQueryBatch CreateQueryBatch(this NHibernate.IStatelessSession session) => throw null; + public static void FlushBatcher(this NHibernate.IStatelessSession session) => throw null; + public static System.Threading.Tasks.Task FlushBatcherAsync(this NHibernate.IStatelessSession session, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static T Get(this NHibernate.IStatelessSession session, string entityName, object id, NHibernate.LockMode lockMode) => throw null; + public static T Get(this NHibernate.IStatelessSession session, string entityName, object id) => throw null; + public static System.Threading.Tasks.Task GetAsync(this NHibernate.IStatelessSession session, string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetAsync(this NHibernate.IStatelessSession session, string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static NHibernate.ITransaction GetCurrentTransaction(this NHibernate.IStatelessSession session) => throw null; } namespace Tool { namespace hbm2ddl { - // Generated from `NHibernate.Tool.hbm2ddl.DatabaseMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DatabaseMetadata : NHibernate.Tool.hbm2ddl.IDatabaseMetadata { - public DatabaseMetadata(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect, bool extras) => throw null; public DatabaseMetadata(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) => throw null; + public DatabaseMetadata(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect, bool extras) => throw null; public NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(string name, string schema, string catalog, bool isQuoted) => throw null; public bool IsSequence(object key) => throw null; public bool IsTable(object key) => throw null; public override string ToString() => throw null; } - - // Generated from `NHibernate.Tool.hbm2ddl.IConnectionHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IConnectionHelper { System.Data.Common.DbConnection Connection { get; } @@ -30961,16 +26789,12 @@ namespace NHibernate System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken); void Release(); } - - // Generated from `NHibernate.Tool.hbm2ddl.IDatabaseMetadata` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IDatabaseMetadata { NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(string name, string schema, string catalog, bool isQuoted); bool IsSequence(object key); bool IsTable(object key); } - - // Generated from `NHibernate.Tool.hbm2ddl.ManagedProviderConnectionHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ManagedProviderConnectionHelper : NHibernate.Tool.hbm2ddl.IConnectionHelper { public System.Data.Common.DbConnection Connection { get => throw null; } @@ -30979,60 +26803,57 @@ namespace NHibernate public System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken) => throw null; public void Release() => throw null; } - - // Generated from `NHibernate.Tool.hbm2ddl.SchemaExport` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SchemaExport { - public void Create(bool useStdOut, bool execute, System.Data.Common.DbConnection connection) => throw null; public void Create(bool useStdOut, bool execute) => throw null; - public void Create(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection) => throw null; - public void Create(System.IO.TextWriter exportOutput, bool execute) => throw null; - public void Create(System.Action scriptAction, bool execute, System.Data.Common.DbConnection connection) => throw null; + public void Create(bool useStdOut, bool execute, System.Data.Common.DbConnection connection) => throw null; public void Create(System.Action scriptAction, bool execute) => throw null; + public void Create(System.Action scriptAction, bool execute, System.Data.Common.DbConnection connection) => throw null; + public void Create(System.IO.TextWriter exportOutput, bool execute) => throw null; + public void Create(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection) => throw null; public System.Threading.Tasks.Task CreateAsync(bool useStdOut, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task CreateAsync(bool useStdOut, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CreateAsync(System.IO.TextWriter exportOutput, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CreateAsync(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task CreateAsync(System.Action scriptAction, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task CreateAsync(System.Action scriptAction, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public void Drop(bool useStdOut, bool execute, System.Data.Common.DbConnection connection) => throw null; + public System.Threading.Tasks.Task CreateAsync(System.IO.TextWriter exportOutput, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CreateAsync(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public SchemaExport(NHibernate.Cfg.Configuration cfg) => throw null; + public SchemaExport(NHibernate.Cfg.Configuration cfg, System.Collections.Generic.IDictionary configProperties) => throw null; public void Drop(bool useStdOut, bool execute) => throw null; - public void Drop(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection) => throw null; + public void Drop(bool useStdOut, bool execute, System.Data.Common.DbConnection connection) => throw null; public void Drop(System.IO.TextWriter exportOutput, bool execute) => throw null; + public void Drop(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection) => throw null; public System.Threading.Tasks.Task DropAsync(bool useStdOut, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task DropAsync(bool useStdOut, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task DropAsync(System.IO.TextWriter exportOutput, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task DropAsync(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public void Execute(bool useStdOut, bool execute, bool justDrop, System.Data.Common.DbConnection connection, System.IO.TextWriter exportOutput) => throw null; - public void Execute(bool useStdOut, bool execute, bool justDrop) => throw null; - public void Execute(System.Action scriptAction, bool execute, bool justDrop, System.IO.TextWriter exportOutput) => throw null; public void Execute(System.Action scriptAction, bool execute, bool justDrop, System.Data.Common.DbConnection connection, System.IO.TextWriter exportOutput) => throw null; + public void Execute(bool useStdOut, bool execute, bool justDrop) => throw null; public void Execute(System.Action scriptAction, bool execute, bool justDrop) => throw null; - public System.Threading.Tasks.Task ExecuteAsync(bool useStdOut, bool execute, bool justDrop, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public void Execute(System.Action scriptAction, bool execute, bool justDrop, System.IO.TextWriter exportOutput) => throw null; public System.Threading.Tasks.Task ExecuteAsync(bool useStdOut, bool execute, bool justDrop, System.Data.Common.DbConnection connection, System.IO.TextWriter exportOutput, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ExecuteAsync(System.Action scriptAction, bool execute, bool justDrop, System.Data.Common.DbConnection connection, System.IO.TextWriter exportOutput, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ExecuteAsync(bool useStdOut, bool execute, bool justDrop, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task ExecuteAsync(System.Action scriptAction, bool execute, bool justDrop, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public System.Threading.Tasks.Task ExecuteAsync(System.Action scriptAction, bool execute, bool justDrop, System.IO.TextWriter exportOutput, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ExecuteAsync(System.Action scriptAction, bool execute, bool justDrop, System.Data.Common.DbConnection connection, System.IO.TextWriter exportOutput, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public SchemaExport(NHibernate.Cfg.Configuration cfg, System.Collections.Generic.IDictionary configProperties) => throw null; - public SchemaExport(NHibernate.Cfg.Configuration cfg) => throw null; public NHibernate.Tool.hbm2ddl.SchemaExport SetDelimiter(string delimiter) => throw null; public NHibernate.Tool.hbm2ddl.SchemaExport SetOutputFile(string filename) => throw null; } - - // Generated from `NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class SchemaMetadataUpdater { - public static void QuoteTableAndColumns(NHibernate.Cfg.Configuration configuration, NHibernate.Dialect.Dialect dialect) => throw null; public static void QuoteTableAndColumns(NHibernate.Cfg.Configuration configuration) => throw null; + public static void QuoteTableAndColumns(NHibernate.Cfg.Configuration configuration, NHibernate.Dialect.Dialect dialect) => throw null; public static void Update(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null; public static void Update(NHibernate.Cfg.Configuration configuration, NHibernate.Dialect.Dialect dialect) => throw null; public static System.Threading.Tasks.Task UpdateAsync(NHibernate.Engine.ISessionFactoryImplementor sessionFactory, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task UpdateAsync(NHibernate.Cfg.Configuration configuration, NHibernate.Dialect.Dialect dialect, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Tool.hbm2ddl.SchemaUpdate` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SchemaUpdate { + public SchemaUpdate(NHibernate.Cfg.Configuration cfg) => throw null; + public SchemaUpdate(NHibernate.Cfg.Configuration cfg, System.Collections.Generic.IDictionary configProperties) => throw null; + public SchemaUpdate(NHibernate.Cfg.Configuration cfg, NHibernate.Cfg.Settings settings) => throw null; public System.Collections.Generic.IList Exceptions { get => throw null; } public void Execute(bool useStdOut, bool doUpdate) => throw null; public void Execute(System.Action scriptAction, bool doUpdate) => throw null; @@ -31040,77 +26861,61 @@ namespace NHibernate public System.Threading.Tasks.Task ExecuteAsync(System.Action scriptAction, bool doUpdate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static void Main(string[] args) => throw null; public static System.Threading.Tasks.Task MainAsync(string[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public SchemaUpdate(NHibernate.Cfg.Configuration cfg, System.Collections.Generic.IDictionary configProperties) => throw null; - public SchemaUpdate(NHibernate.Cfg.Configuration cfg, NHibernate.Cfg.Settings settings) => throw null; - public SchemaUpdate(NHibernate.Cfg.Configuration cfg) => throw null; } - - // Generated from `NHibernate.Tool.hbm2ddl.SchemaValidator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SchemaValidator { - public static void Main(string[] args) => throw null; - public static System.Threading.Tasks.Task MainAsync(string[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public SchemaValidator(NHibernate.Cfg.Configuration cfg) => throw null; public SchemaValidator(NHibernate.Cfg.Configuration cfg, System.Collections.Generic.IDictionary connectionProperties) => throw null; public SchemaValidator(NHibernate.Cfg.Configuration cfg, NHibernate.Cfg.Settings settings) => throw null; - public SchemaValidator(NHibernate.Cfg.Configuration cfg) => throw null; + public static void Main(string[] args) => throw null; + public static System.Threading.Tasks.Task MainAsync(string[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public void Validate() => throw null; public System.Threading.Tasks.Task ValidateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - - // Generated from `NHibernate.Tool.hbm2ddl.ScriptSplitter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ScriptSplitter : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + public class ScriptSplitter : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + public ScriptSplitter(string script) => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public ScriptSplitter(string script) => throw null; } - - // Generated from `NHibernate.Tool.hbm2ddl.SuppliedConnectionHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SuppliedConnectionHelper : NHibernate.Tool.hbm2ddl.IConnectionHelper { public System.Data.Common.DbConnection Connection { get => throw null; } + public SuppliedConnectionHelper(System.Data.Common.DbConnection connection) => throw null; public void Prepare() => throw null; public System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken) => throw null; public void Release() => throw null; - public SuppliedConnectionHelper(System.Data.Common.DbConnection connection) => throw null; } - - // Generated from `NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SuppliedConnectionProviderConnectionHelper : NHibernate.Tool.hbm2ddl.IConnectionHelper { public System.Data.Common.DbConnection Connection { get => throw null; } + public SuppliedConnectionProviderConnectionHelper(NHibernate.Connection.IConnectionProvider provider) => throw null; public void Prepare() => throw null; public System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken) => throw null; public void Release() => throw null; - public SuppliedConnectionProviderConnectionHelper(NHibernate.Connection.IConnectionProvider provider) => throw null; } - } } namespace Transaction { - // Generated from `NHibernate.Transaction.AdoNetTransactionFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AdoNetTransactionFactory : NHibernate.Transaction.ITransactionFactory { - public AdoNetTransactionFactory() => throw null; public virtual void Configure(System.Collections.Generic.IDictionary props) => throw null; public virtual NHibernate.ITransaction CreateTransaction(NHibernate.Engine.ISessionImplementor session) => throw null; + public AdoNetTransactionFactory() => throw null; public virtual void EnlistInSystemTransactionIfNeeded(NHibernate.Engine.ISessionImplementor session) => throw null; public virtual void ExecuteWorkInIsolation(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Transaction.IIsolatedWork work, bool transacted) => throw null; public virtual System.Threading.Tasks.Task ExecuteWorkInIsolationAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Transaction.IIsolatedWork work, bool transacted, System.Threading.CancellationToken cancellationToken) => throw null; public virtual void ExplicitJoinSystemTransaction(NHibernate.Engine.ISessionImplementor session) => throw null; public virtual bool IsInActiveSystemTransaction(NHibernate.Engine.ISessionImplementor session) => throw null; } - - // Generated from `NHibernate.Transaction.AdoNetWithSystemTransactionFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AdoNetWithSystemTransactionFactory : NHibernate.Transaction.AdoNetTransactionFactory { - public AdoNetWithSystemTransactionFactory() => throw null; public override void Configure(System.Collections.Generic.IDictionary props) => throw null; protected virtual NHibernate.Transaction.ITransactionContext CreateAndEnlistMainContext(NHibernate.Engine.ISessionImplementor session, System.Transactions.Transaction transaction) => throw null; protected virtual NHibernate.Transaction.ITransactionContext CreateDependentContext(NHibernate.Engine.ISessionImplementor dependentSession, NHibernate.Transaction.ITransactionContext mainContext) => throw null; - // Generated from `NHibernate.Transaction.AdoNetWithSystemTransactionFactory+DependentContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DependentContext : System.IDisposable, NHibernate.Transaction.ITransactionContext + public AdoNetWithSystemTransactionFactory() => throw null; + public class DependentContext : NHibernate.Transaction.ITransactionContext, System.IDisposable { public virtual bool CanFlushOnSystemTransactionCompleted { get => throw null; } public DependentContext(NHibernate.Transaction.ITransactionContext mainTransactionContext) => throw null; @@ -31118,88 +26923,72 @@ namespace NHibernate protected virtual void Dispose(bool disposing) => throw null; public bool IsInActiveTransaction { get => throw null; } protected NHibernate.Transaction.ITransactionContext MainTransactionContext { get => throw null; } - public bool ShouldCloseSessionOnSystemTransactionCompleted { get => throw null; set => throw null; } + public bool ShouldCloseSessionOnSystemTransactionCompleted { get => throw null; set { } } public virtual void Wait() => throw null; } - - public override void EnlistInSystemTransactionIfNeeded(NHibernate.Engine.ISessionImplementor session) => throw null; public override void ExecuteWorkInIsolation(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Transaction.IIsolatedWork work, bool transacted) => throw null; public override System.Threading.Tasks.Task ExecuteWorkInIsolationAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Transaction.IIsolatedWork work, bool transacted, System.Threading.CancellationToken cancellationToken) => throw null; public override void ExplicitJoinSystemTransaction(NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsInActiveSystemTransaction(NHibernate.Engine.ISessionImplementor session) => throw null; protected virtual void JoinSystemTransaction(NHibernate.Engine.ISessionImplementor session, System.Transactions.Transaction transaction) => throw null; - protected int SystemTransactionCompletionLockTimeout { get => throw null; set => throw null; } - // Generated from `NHibernate.Transaction.AdoNetWithSystemTransactionFactory+SystemTransactionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SystemTransactionContext : System.Transactions.IEnlistmentNotification, System.IDisposable, NHibernate.Transaction.ITransactionContext + protected int SystemTransactionCompletionLockTimeout { get => throw null; } + public class SystemTransactionContext : NHibernate.Transaction.ITransactionContext, System.IDisposable, System.Transactions.IEnlistmentNotification { public virtual bool CanFlushOnSystemTransactionCompleted { get => throw null; } void System.Transactions.IEnlistmentNotification.Commit(System.Transactions.Enlistment enlistment) => throw null; protected virtual void CompleteTransaction(bool isCommitted) => throw null; + public SystemTransactionContext(NHibernate.Engine.ISessionImplementor session, System.Transactions.Transaction transaction, int systemTransactionCompletionLockTimeout, bool useConnectionOnSystemTransactionPrepare) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - protected internal System.Transactions.Transaction EnlistedTransaction { get => throw null; } + protected System.Transactions.Transaction EnlistedTransaction { get => throw null; } protected System.Transactions.TransactionStatus? GetTransactionStatus() => throw null; void System.Transactions.IEnlistmentNotification.InDoubt(System.Transactions.Enlistment enlistment) => throw null; - public bool IsInActiveTransaction { get => throw null; set => throw null; } + public bool IsInActiveTransaction { get => throw null; set { } } protected virtual void Lock() => throw null; public virtual void Prepare(System.Transactions.PreparingEnlistment preparingEnlistment) => throw null; protected virtual void ProcessSecondPhase(System.Transactions.Enlistment enlistment, bool? success) => throw null; void System.Transactions.IEnlistmentNotification.Rollback(System.Transactions.Enlistment enlistment) => throw null; - public bool ShouldCloseSessionOnSystemTransactionCompleted { get => throw null; set => throw null; } - public SystemTransactionContext(NHibernate.Engine.ISessionImplementor session, System.Transactions.Transaction transaction, int systemTransactionCompletionLockTimeout, bool useConnectionOnSystemTransactionPrepare) => throw null; + public bool ShouldCloseSessionOnSystemTransactionCompleted { get => throw null; set { } } protected virtual void Unlock() => throw null; public virtual void Wait() => throw null; } - - - protected bool UseConnectionOnSystemTransactionPrepare { get => throw null; set => throw null; } + protected bool UseConnectionOnSystemTransactionPrepare { get => throw null; } } - - // Generated from `NHibernate.Transaction.AdoTransaction` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AdoTransaction : System.IDisposable, NHibernate.ITransaction + public class AdoTransaction : NHibernate.ITransaction, System.IDisposable { - public AdoTransaction(NHibernate.Engine.ISessionImplementor session) => throw null; - public void Begin(System.Data.IsolationLevel isolationLevel) => throw null; public void Begin() => throw null; + public void Begin(System.Data.IsolationLevel isolationLevel) => throw null; public void Commit() => throw null; public System.Threading.Tasks.Task CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public AdoTransaction(NHibernate.Engine.ISessionImplementor session) => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool isDisposing) => throw null; protected virtual System.Threading.Tasks.Task DisposeAsync(bool isDisposing, System.Threading.CancellationToken cancellationToken) => throw null; public void Enlist(System.Data.Common.DbCommand command) => throw null; public bool IsActive { get => throw null; } public System.Data.IsolationLevel IsolationLevel { get => throw null; } - public void RegisterSynchronization(NHibernate.Transaction.ITransactionCompletionSynchronization synchronization) => throw null; public void RegisterSynchronization(NHibernate.Transaction.ISynchronization sync) => throw null; + public void RegisterSynchronization(NHibernate.Transaction.ITransactionCompletionSynchronization synchronization) => throw null; public void Rollback() => throw null; public System.Threading.Tasks.Task RollbackAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public bool WasCommitted { get => throw null; } public bool WasRolledBack { get => throw null; } - // ERR: Stub generator didn't handle member: ~AdoTransaction } - - // Generated from `NHibernate.Transaction.AfterTransactionCompletes` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AfterTransactionCompletes : NHibernate.Transaction.ISynchronization { public void AfterCompletion(bool success) => throw null; - public AfterTransactionCompletes(System.Action whenCompleted) => throw null; public void BeforeCompletion() => throw null; + public AfterTransactionCompletes(System.Action whenCompleted) => throw null; } - - // Generated from `NHibernate.Transaction.ISynchronization` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ISynchronization { void AfterCompletion(bool success); void BeforeCompletion(); } - - // Generated from `NHibernate.Transaction.ITransactionCompletionSynchronization` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ITransactionCompletionSynchronization : NHibernate.Action.IBeforeTransactionCompletionProcess, NHibernate.Action.IAfterTransactionCompletionProcess { } - - // Generated from `NHibernate.Transaction.ITransactionContext` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ITransactionContext : System.IDisposable { bool CanFlushOnSystemTransactionCompleted { get; } @@ -31207,8 +26996,6 @@ namespace NHibernate bool ShouldCloseSessionOnSystemTransactionCompleted { get; set; } void Wait(); } - - // Generated from `NHibernate.Transaction.ITransactionFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ITransactionFactory { void Configure(System.Collections.Generic.IDictionary props); @@ -31219,35 +27006,50 @@ namespace NHibernate void ExplicitJoinSystemTransaction(NHibernate.Engine.ISessionImplementor session); bool IsInActiveSystemTransaction(NHibernate.Engine.ISessionImplementor session); } - + } + public class TransactionException : NHibernate.HibernateException + { + public TransactionException(string message) => throw null; + public TransactionException(string message, System.Exception innerException) => throw null; + protected TransactionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public static partial class TransactionExtensions + { + public static void RegisterSynchronization(this NHibernate.ITransaction transaction, NHibernate.Transaction.ITransactionCompletionSynchronization synchronization) => throw null; } namespace Transform { - // Generated from `NHibernate.Transform.AliasToBeanConstructorResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public abstract class AliasedTupleSubsetResultTransformer : NHibernate.Transform.ITupleSubsetResultTransformer, NHibernate.Transform.IResultTransformer + { + protected AliasedTupleSubsetResultTransformer() => throw null; + public bool[] IncludeInTransform(string[] aliases, int tupleLength) => throw null; + public abstract bool IsTransformedValueATupleElement(string[] aliases, int tupleLength); + public abstract System.Collections.IList TransformList(System.Collections.IList collection); + public abstract object TransformTuple(object[] tuple, string[] aliases); + } public class AliasToBeanConstructorResultTransformer : NHibernate.Transform.IResultTransformer { public AliasToBeanConstructorResultTransformer(System.Reflection.ConstructorInfo constructor) => throw null; - public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Transform.AliasToBeanConstructorResultTransformer other) => throw null; + public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public System.Collections.IList TransformList(System.Collections.IList collection) => throw null; public object TransformTuple(object[] tuple, string[] aliases) => throw null; } - - // Generated from `NHibernate.Transform.AliasToBeanResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AliasToBeanResultTransformer : NHibernate.Transform.AliasedTupleSubsetResultTransformer, System.IEquatable { + protected System.Reflection.ConstructorInfo BeanConstructor { get => throw null; } public AliasToBeanResultTransformer(System.Type resultClass) => throw null; public override bool Equals(object obj) => throw null; public bool Equals(NHibernate.Transform.AliasToBeanResultTransformer other) => throw null; public override int GetHashCode() => throw null; public override bool IsTransformedValueATupleElement(string[] aliases, int tupleLength) => throw null; protected virtual void OnPropertyNotFound(string propertyName) => throw null; + protected System.Type ResultClass { get => throw null; } + protected void SetProperty(string alias, object value, object resultObj) => throw null; public override System.Collections.IList TransformList(System.Collections.IList collection) => throw null; public override object TransformTuple(object[] tuple, string[] aliases) => throw null; } - - // Generated from `NHibernate.Transform.AliasToEntityMapResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AliasToEntityMapResultTransformer : NHibernate.Transform.AliasedTupleSubsetResultTransformer { public AliasToEntityMapResultTransformer() => throw null; @@ -31257,24 +27059,13 @@ namespace NHibernate public override System.Collections.IList TransformList(System.Collections.IList collection) => throw null; public override object TransformTuple(object[] tuple, string[] aliases) => throw null; } - - // Generated from `NHibernate.Transform.AliasedTupleSubsetResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AliasedTupleSubsetResultTransformer : NHibernate.Transform.ITupleSubsetResultTransformer, NHibernate.Transform.IResultTransformer - { - protected AliasedTupleSubsetResultTransformer() => throw null; - public bool[] IncludeInTransform(string[] aliases, int tupleLength) => throw null; - public abstract bool IsTransformedValueATupleElement(string[] aliases, int tupleLength); - public abstract System.Collections.IList TransformList(System.Collections.IList collection); - public abstract object TransformTuple(object[] tuple, string[] aliases); - } - - // Generated from `NHibernate.Transform.CacheableResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CacheableResultTransformer : NHibernate.Transform.IResultTransformer { + public string[] AutoDiscoveredAliases { get => throw null; } public bool AutoDiscoverTypes { get => throw null; } - public static NHibernate.Transform.CacheableResultTransformer Create(NHibernate.Transform.IResultTransformer transformer, string[] aliases, bool[] includeInTuple, bool autoDiscoverTypes, NHibernate.SqlCommand.SqlString autoDiscoveredQuery, bool skipTransformer) => throw null; - public static NHibernate.Transform.CacheableResultTransformer Create(NHibernate.Transform.IResultTransformer transformer, string[] aliases, bool[] includeInTuple, bool autoDiscoverTypes, NHibernate.SqlCommand.SqlString autoDiscoveredQuery) => throw null; public static NHibernate.Transform.CacheableResultTransformer Create(NHibernate.Transform.IResultTransformer transformer, string[] aliases, bool[] includeInTuple) => throw null; + public static NHibernate.Transform.CacheableResultTransformer Create(NHibernate.Transform.IResultTransformer transformer, string[] aliases, bool[] includeInTuple, bool autoDiscoverTypes, NHibernate.SqlCommand.SqlString autoDiscoveredQuery) => throw null; + public static NHibernate.Transform.CacheableResultTransformer Create(NHibernate.Transform.IResultTransformer transformer, string[] aliases, bool[] includeInTuple, bool autoDiscoverTypes, NHibernate.SqlCommand.SqlString autoDiscoveredQuery, bool skipTransformer) => throw null; public override bool Equals(object o) => throw null; public NHibernate.Type.IType[] GetCachedResultTypes(NHibernate.Type.IType[] tupleResultTypes) => throw null; public override int GetHashCode() => throw null; @@ -31283,9 +27074,7 @@ namespace NHibernate public object TransformTuple(object[] tuple, string[] aliases) => throw null; public System.Collections.IList UntransformToTuples(System.Collections.IList results) => throw null; } - - // Generated from `NHibernate.Transform.DistinctRootEntityResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DistinctRootEntityResultTransformer : NHibernate.Transform.ITupleSubsetResultTransformer, NHibernate.Transform.IResultTransformer + public class DistinctRootEntityResultTransformer : NHibernate.Transform.IResultTransformer, NHibernate.Transform.ITupleSubsetResultTransformer { public DistinctRootEntityResultTransformer() => throw null; public override bool Equals(object obj) => throw null; @@ -31295,60 +27084,48 @@ namespace NHibernate public System.Collections.IList TransformList(System.Collections.IList list) => throw null; public object TransformTuple(object[] tuple, string[] aliases) => throw null; } - - // Generated from `NHibernate.Transform.IResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IResultTransformer { System.Collections.IList TransformList(System.Collections.IList collection); object TransformTuple(object[] tuple, string[] aliases); } - - // Generated from `NHibernate.Transform.ITupleSubsetResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ITupleSubsetResultTransformer : NHibernate.Transform.IResultTransformer { bool[] IncludeInTransform(string[] aliases, int tupleLength); bool IsTransformedValueATupleElement(string[] aliases, int tupleLength); } - - // Generated from `NHibernate.Transform.PassThroughResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PassThroughResultTransformer : NHibernate.Transform.ITupleSubsetResultTransformer, NHibernate.Transform.IResultTransformer + public class PassThroughResultTransformer : NHibernate.Transform.IResultTransformer, NHibernate.Transform.ITupleSubsetResultTransformer { - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public bool[] IncludeInTransform(string[] aliases, int tupleLength) => throw null; - public bool IsTransformedValueATupleElement(string[] aliases, int tupleLength) => throw null; public PassThroughResultTransformer() => throw null; - public System.Collections.IList TransformList(System.Collections.IList collection) => throw null; - public object TransformTuple(object[] tuple, string[] aliases) => throw null; - } - - // Generated from `NHibernate.Transform.RootEntityResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class RootEntityResultTransformer : NHibernate.Transform.ITupleSubsetResultTransformer, NHibernate.Transform.IResultTransformer - { public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public bool[] IncludeInTransform(string[] aliases, int tupleLength) => throw null; public bool IsTransformedValueATupleElement(string[] aliases, int tupleLength) => throw null; - public RootEntityResultTransformer() => throw null; public System.Collections.IList TransformList(System.Collections.IList collection) => throw null; public object TransformTuple(object[] tuple, string[] aliases) => throw null; } - - // Generated from `NHibernate.Transform.ToListResultTransformer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public class RootEntityResultTransformer : NHibernate.Transform.IResultTransformer, NHibernate.Transform.ITupleSubsetResultTransformer + { + public RootEntityResultTransformer() => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public bool[] IncludeInTransform(string[] aliases, int tupleLength) => throw null; + public bool IsTransformedValueATupleElement(string[] aliases, int tupleLength) => throw null; + public System.Collections.IList TransformList(System.Collections.IList collection) => throw null; + public object TransformTuple(object[] tuple, string[] aliases) => throw null; + } public class ToListResultTransformer : NHibernate.Transform.IResultTransformer { + public ToListResultTransformer() => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public ToListResultTransformer() => throw null; public System.Collections.IList TransformList(System.Collections.IList list) => throw null; public object TransformTuple(object[] tuple, string[] aliases) => throw null; } - - // Generated from `NHibernate.Transform.Transformers` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class Transformers { - public static NHibernate.Transform.IResultTransformer AliasToBean() => throw null; public static NHibernate.Transform.IResultTransformer AliasToBean(System.Type target) => throw null; + public static NHibernate.Transform.IResultTransformer AliasToBean() => throw null; public static NHibernate.Transform.IResultTransformer AliasToBeanConstructor(System.Reflection.ConstructorInfo constructor) => throw null; public static NHibernate.Transform.IResultTransformer AliasToEntityMap; public static NHibernate.Transform.IResultTransformer DistinctRootEntity; @@ -31356,212 +27133,109 @@ namespace NHibernate public static NHibernate.Transform.IResultTransformer RootEntity; public static NHibernate.Transform.ToListResultTransformer ToList; } - + } + public class TransientObjectException : NHibernate.HibernateException + { + public TransientObjectException(string message) => throw null; + protected TransientObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } namespace Tuple { - // Generated from `NHibernate.Tuple.DynamicEntityInstantiator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DynamicEntityInstantiator : NHibernate.Tuple.IInstantiator - { - public DynamicEntityInstantiator(NHibernate.Mapping.PersistentClass mappingInfo) => throw null; - public object Instantiate(object id) => throw null; - public object Instantiate() => throw null; - public bool IsInstance(object obj) => throw null; - public const string Key = default; - } - - // Generated from `NHibernate.Tuple.DynamicMapInstantiator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DynamicMapInstantiator : NHibernate.Tuple.IInstantiator - { - public DynamicMapInstantiator(NHibernate.Mapping.PersistentClass mappingInfo) => throw null; - public DynamicMapInstantiator() => throw null; - protected virtual System.Collections.IDictionary GenerateMap() => throw null; - public object Instantiate(object id) => throw null; - public object Instantiate() => throw null; - public bool IsInstance(object obj) => throw null; - public const string KEY = default; - } - - // Generated from `NHibernate.Tuple.IInstantiator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IInstantiator - { - object Instantiate(object id); - object Instantiate(); - bool IsInstance(object obj); - } - - // Generated from `NHibernate.Tuple.ITuplizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface ITuplizer - { - object GetPropertyValue(object entity, int i); - object[] GetPropertyValues(object entity); - object Instantiate(); - bool IsInstance(object obj); - System.Type MappedClass { get; } - void SetPropertyValues(object entity, object[] values); - } - - // Generated from `NHibernate.Tuple.IdentifierProperty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentifierProperty : NHibernate.Tuple.Property - { - public bool HasIdentifierMapper { get => throw null; } - public NHibernate.Id.IIdentifierGenerator IdentifierGenerator { get => throw null; } - public IdentifierProperty(string name, NHibernate.Type.IType type, bool embedded, NHibernate.Engine.IdentifierValue unsavedValue, NHibernate.Id.IIdentifierGenerator identifierGenerator) : base(default(string), default(NHibernate.Type.IType)) => throw null; - public IdentifierProperty(NHibernate.Type.IType type, bool embedded, bool hasIdentifierMapper, NHibernate.Engine.IdentifierValue unsavedValue, NHibernate.Id.IIdentifierGenerator identifierGenerator) : base(default(string), default(NHibernate.Type.IType)) => throw null; - public bool IsEmbedded { get => throw null; } - public bool IsIdentifierAssignedByInsert { get => throw null; } - public bool IsVirtual { get => throw null; } - public NHibernate.Engine.IdentifierValue UnsavedValue { get => throw null; } - } - - // Generated from `NHibernate.Tuple.PocoInstantiator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PocoInstantiator : System.Runtime.Serialization.IDeserializationCallback, NHibernate.Tuple.IInstantiator - { - protected virtual object CreateInstance() => throw null; - public object Instantiate(object id) => throw null; - public object Instantiate() => throw null; - public virtual bool IsInstance(object obj) => throw null; - public void OnDeserialization(object sender) => throw null; - public PocoInstantiator(System.Type mappedClass, NHibernate.Bytecode.IInstantiationOptimizer optimizer, bool embeddedIdentifier) => throw null; - public PocoInstantiator(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Bytecode.IInstantiationOptimizer optimizer, NHibernate.Proxy.IProxyFactory proxyFactory, bool generateFieldInterceptionProxy) => throw null; - public PocoInstantiator(NHibernate.Mapping.Component component, NHibernate.Bytecode.IInstantiationOptimizer optimizer) => throw null; - public PocoInstantiator() => throw null; - public void SetOptimizer(NHibernate.Bytecode.IInstantiationOptimizer optimizer) => throw null; - } - - // Generated from `NHibernate.Tuple.Property` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class Property - { - public string Name { get => throw null; } - protected Property(string name, NHibernate.Type.IType type) => throw null; - public override string ToString() => throw null; - public NHibernate.Type.IType Type { get => throw null; } - } - - // Generated from `NHibernate.Tuple.PropertyFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class PropertyFactory - { - public static NHibernate.Tuple.IdentifierProperty BuildIdentifierProperty(NHibernate.Mapping.PersistentClass mappedEntity, NHibernate.Id.IIdentifierGenerator generator) => throw null; - public static NHibernate.Tuple.StandardProperty BuildStandardProperty(NHibernate.Mapping.Property property, bool lazyAvailable) => throw null; - public static NHibernate.Tuple.VersionProperty BuildVersionProperty(NHibernate.Mapping.Property property, bool lazyAvailable) => throw null; - public PropertyFactory() => throw null; - } - - // Generated from `NHibernate.Tuple.StandardProperty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StandardProperty : NHibernate.Tuple.Property - { - public NHibernate.Engine.CascadeStyle CascadeStyle { get => throw null; } - public NHibernate.FetchMode? FetchMode { get => throw null; } - public bool IsDirtyCheckable(bool hasUninitializedProperties) => throw null; - public bool IsDirtyCheckable() => throw null; - public bool IsInsertGenerated { get => throw null; } - public bool IsInsertable { get => throw null; } - public bool IsLazy { get => throw null; } - public bool IsNullable { get => throw null; } - public bool IsUpdateGenerated { get => throw null; } - public bool IsUpdateable { get => throw null; } - public bool IsVersionable { get => throw null; } - public StandardProperty(string name, NHibernate.Type.IType type, bool lazy, bool insertable, bool updateable, bool insertGenerated, bool updateGenerated, bool nullable, bool checkable, bool versionable, NHibernate.Engine.CascadeStyle cascadeStyle, NHibernate.FetchMode? fetchMode) : base(default(string), default(NHibernate.Type.IType)) => throw null; - } - - // Generated from `NHibernate.Tuple.VersionProperty` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class VersionProperty : NHibernate.Tuple.StandardProperty - { - public NHibernate.Engine.VersionValue UnsavedValue { get => throw null; } - public VersionProperty(string name, NHibernate.Type.IType type, bool lazy, bool insertable, bool updateable, bool insertGenerated, bool updateGenerated, bool nullable, bool checkable, bool versionable, NHibernate.Engine.CascadeStyle cascadeStyle, NHibernate.Engine.VersionValue unsavedValue) : base(default(string), default(NHibernate.Type.IType), default(bool), default(bool), default(bool), default(bool), default(bool), default(bool), default(bool), default(bool), default(NHibernate.Engine.CascadeStyle), default(NHibernate.FetchMode?)) => throw null; - } - namespace Component { - // Generated from `NHibernate.Tuple.Component.AbstractComponentTuplizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractComponentTuplizer : NHibernate.Tuple.ITuplizer, NHibernate.Tuple.Component.IComponentTuplizer + public abstract class AbstractComponentTuplizer : NHibernate.Tuple.Component.IComponentTuplizer, NHibernate.Tuple.ITuplizer { - protected internal AbstractComponentTuplizer(NHibernate.Mapping.Component component) => throw null; - protected internal abstract NHibernate.Properties.IGetter BuildGetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop); - protected internal abstract NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.Component component); - protected internal abstract NHibernate.Properties.ISetter BuildSetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop); + protected abstract NHibernate.Properties.IGetter BuildGetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop); + protected abstract NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.Component component); + protected abstract NHibernate.Properties.ISetter BuildSetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop); + protected AbstractComponentTuplizer(NHibernate.Mapping.Component component) => throw null; public virtual object GetParent(object component) => throw null; public virtual object GetPropertyValue(object component, int i) => throw null; public virtual object[] GetPropertyValues(object component) => throw null; + protected NHibernate.Properties.IGetter[] getters; + protected bool hasCustomAccessors; public virtual bool HasParentProperty { get => throw null; } public virtual object Instantiate() => throw null; + protected NHibernate.Tuple.IInstantiator instantiator; public virtual bool IsInstance(object obj) => throw null; public abstract System.Type MappedClass { get; } + protected int propertySpan; public virtual void SetParent(object component, object parent, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public virtual void SetPropertyValues(object component, object[] values) => throw null; - protected internal NHibernate.Properties.IGetter[] getters; - protected internal bool hasCustomAccessors; - protected internal NHibernate.Tuple.IInstantiator instantiator; - protected internal int propertySpan; - protected internal NHibernate.Properties.ISetter[] setters; + protected NHibernate.Properties.ISetter[] setters; } - - // Generated from `NHibernate.Tuple.Component.ComponentMetamodel` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ComponentMetamodel { - public ComponentMetamodel(NHibernate.Mapping.Component component) => throw null; public NHibernate.Tuple.Component.IComponentTuplizer ComponentTuplizer { get => throw null; } + public ComponentMetamodel(NHibernate.Mapping.Component component) => throw null; public NHibernate.EntityMode EntityMode { get => throw null; } - public NHibernate.Tuple.StandardProperty GetProperty(string propertyName) => throw null; public NHibernate.Tuple.StandardProperty GetProperty(int index) => throw null; + public NHibernate.Tuple.StandardProperty GetProperty(string propertyName) => throw null; public int GetPropertyIndex(string propertyName) => throw null; public bool IsKey { get => throw null; } public NHibernate.Tuple.StandardProperty[] Properties { get => throw null; } public int PropertySpan { get => throw null; } public string Role { get => throw null; } } - - // Generated from `NHibernate.Tuple.Component.ComponentTuplizerFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ComponentTuplizerFactory { public NHibernate.Tuple.Component.IComponentTuplizer BuildComponentTuplizer(string tuplizerImpl, NHibernate.Mapping.Component component) => throw null; public NHibernate.Tuple.Component.IComponentTuplizer BuildDefaultComponentTuplizer(NHibernate.EntityMode entityMode, NHibernate.Mapping.Component component) => throw null; public ComponentTuplizerFactory() => throw null; } - - // Generated from `NHibernate.Tuple.Component.DynamicMapComponentTuplizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DynamicMapComponentTuplizer : NHibernate.Tuple.Component.AbstractComponentTuplizer { - protected internal override NHibernate.Properties.IGetter BuildGetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null; - protected internal override NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.Component component) => throw null; - protected internal override NHibernate.Properties.ISetter BuildSetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null; + protected override NHibernate.Properties.IGetter BuildGetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null; + protected override NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.Component component) => throw null; + protected override NHibernate.Properties.ISetter BuildSetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null; public DynamicMapComponentTuplizer(NHibernate.Mapping.Component component) : base(default(NHibernate.Mapping.Component)) => throw null; public override System.Type MappedClass { get => throw null; } } - - // Generated from `NHibernate.Tuple.Component.IComponentTuplizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IComponentTuplizer : NHibernate.Tuple.ITuplizer { object GetParent(object component); bool HasParentProperty { get; } void SetParent(object component, object parent, NHibernate.Engine.ISessionFactoryImplementor factory); } - - // Generated from `NHibernate.Tuple.Component.PocoComponentTuplizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PocoComponentTuplizer : NHibernate.Tuple.Component.AbstractComponentTuplizer { - protected internal override NHibernate.Properties.IGetter BuildGetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null; - protected internal override NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.Component component) => throw null; - protected internal override NHibernate.Properties.ISetter BuildSetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null; + protected override NHibernate.Properties.IGetter BuildGetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null; + protected override NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.Component component) => throw null; + protected override NHibernate.Properties.ISetter BuildSetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null; protected void ClearOptimizerWhenUsingCustomAccessors() => throw null; + public PocoComponentTuplizer(NHibernate.Mapping.Component component) : base(default(NHibernate.Mapping.Component)) => throw null; public override object GetParent(object component) => throw null; public override object GetPropertyValue(object component, int i) => throw null; public override object[] GetPropertyValues(object component) => throw null; public override bool HasParentProperty { get => throw null; } public override System.Type MappedClass { get => throw null; } - public PocoComponentTuplizer(NHibernate.Mapping.Component component) : base(default(NHibernate.Mapping.Component)) => throw null; public override void SetParent(object component, object parent, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override void SetPropertyValues(object component, object[] values) => throw null; protected void SetReflectionOptimizer() => throw null; } - + } + public class DynamicEntityInstantiator : NHibernate.Tuple.IInstantiator + { + public DynamicEntityInstantiator(NHibernate.Mapping.PersistentClass mappingInfo) => throw null; + public object Instantiate(object id) => throw null; + public object Instantiate() => throw null; + public bool IsInstance(object obj) => throw null; + public static string Key; + } + public class DynamicMapInstantiator : NHibernate.Tuple.IInstantiator + { + public DynamicMapInstantiator() => throw null; + public DynamicMapInstantiator(NHibernate.Mapping.PersistentClass mappingInfo) => throw null; + protected virtual System.Collections.IDictionary GenerateMap() => throw null; + public object Instantiate(object id) => throw null; + public object Instantiate() => throw null; + public bool IsInstance(object obj) => throw null; + public static string KEY; } namespace Entity { - // Generated from `NHibernate.Tuple.Entity.AbstractEntityTuplizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractEntityTuplizer : NHibernate.Tuple.ITuplizer, NHibernate.Tuple.Entity.IEntityTuplizer + public abstract class AbstractEntityTuplizer : NHibernate.Tuple.Entity.IEntityTuplizer, NHibernate.Tuple.ITuplizer { - protected AbstractEntityTuplizer(NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass mappingInfo) => throw null; public virtual void AfterInitialize(object entity, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual void AfterInitialize(object entity, NHibernate.Engine.ISessionImplementor session) => throw null; protected abstract NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.PersistentClass mappingInfo); @@ -31570,60 +27244,57 @@ namespace NHibernate protected abstract NHibernate.Proxy.IProxyFactory BuildProxyFactory(NHibernate.Mapping.PersistentClass mappingInfo, NHibernate.Properties.IGetter idGetter, NHibernate.Properties.ISetter idSetter); public abstract System.Type ConcreteProxyClass { get; } public object CreateProxy(object id, NHibernate.Engine.ISessionImplementor session) => throw null; + protected AbstractEntityTuplizer(NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass mappingInfo) => throw null; protected NHibernate.Tuple.Entity.EntityMetamodel EntityMetamodel { get => throw null; } public abstract NHibernate.EntityMode EntityMode { get; } protected virtual string EntityName { get => throw null; } protected virtual object GetComponentValue(NHibernate.Type.ComponentType type, object component, string propertyPath) => throw null; public object GetIdentifier(object entity) => throw null; protected virtual object GetIdentifierPropertyValue(object entity) => throw null; - public virtual object GetPropertyValue(object entity, int i) => throw null; public object GetPropertyValue(object entity, string propertyPath) => throw null; + public virtual object GetPropertyValue(object entity, int i) => throw null; public virtual object[] GetPropertyValues(object entity) => throw null; public virtual object[] GetPropertyValuesToInsert(object entity, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null; + protected NHibernate.Properties.IGetter[] getters; public object GetVersion(object entity) => throw null; + protected bool hasCustomAccessors; public bool HasProxy { get => throw null; } public virtual bool HasUninitializedLazyProperties(object entity) => throw null; + protected NHibernate.Properties.IGetter idGetter; + protected NHibernate.Properties.ISetter idSetter; public object Instantiate(object id) => throw null; public object Instantiate() => throw null; - protected virtual NHibernate.Tuple.IInstantiator Instantiator { get => throw null; set => throw null; } + protected virtual NHibernate.Tuple.IInstantiator Instantiator { get => throw null; set { } } public bool IsInstance(object obj) => throw null; public abstract bool IsInstrumented { get; } public virtual bool IsLifecycleImplementor { get => throw null; } public virtual bool IsValidatableImplementor { get => throw null; } public abstract System.Type MappedClass { get; } + protected int propertySpan; protected virtual NHibernate.Proxy.IProxyFactory ProxyFactory { get => throw null; } public void ResetIdentifier(object entity, object currentId, object currentVersion) => throw null; public void SetIdentifier(object entity, object id) => throw null; protected virtual void SetIdentifierPropertyValue(object entity, object value) => throw null; - public void SetPropertyValue(object entity, string propertyName, object value) => throw null; public virtual void SetPropertyValue(object entity, int i, object value) => throw null; + public void SetPropertyValue(object entity, string propertyName, object value) => throw null; public virtual void SetPropertyValues(object entity, object[] values) => throw null; + protected NHibernate.Properties.ISetter[] setters; protected virtual bool ShouldGetAllProperties(object entity) => throw null; protected virtual System.Collections.Generic.ISet SubclassEntityNames { get => throw null; } - protected NHibernate.Properties.IGetter[] getters; - protected bool hasCustomAccessors; - protected NHibernate.Properties.IGetter idGetter; - protected NHibernate.Properties.ISetter idSetter; - protected int propertySpan; - protected NHibernate.Properties.ISetter[] setters; } - - // Generated from `NHibernate.Tuple.Entity.BytecodeEnhancementMetadataNonPocoImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BytecodeEnhancementMetadataNonPocoImpl : NHibernate.Bytecode.IBytecodeEnhancementMetadata { public BytecodeEnhancementMetadataNonPocoImpl(string entityName) => throw null; public bool EnhancedForLazyLoading { get => throw null; } public string EntityName { get => throw null; } public NHibernate.Intercept.IFieldInterceptor ExtractInterceptor(object entity) => throw null; - public System.Collections.Generic.ISet GetUninitializedLazyProperties(object[] entityState) => throw null; public System.Collections.Generic.ISet GetUninitializedLazyProperties(object entity) => throw null; + public System.Collections.Generic.ISet GetUninitializedLazyProperties(object[] entityState) => throw null; public bool HasAnyUninitializedLazyProperties(object entity) => throw null; public NHibernate.Intercept.IFieldInterceptor InjectInterceptor(object entity, NHibernate.Engine.ISessionImplementor session) => throw null; public NHibernate.Bytecode.LazyPropertiesMetadata LazyPropertiesMetadata { get => throw null; } public NHibernate.Bytecode.UnwrapProxyPropertiesMetadata UnwrapProxyPropertiesMetadata { get => throw null; } } - - // Generated from `NHibernate.Tuple.Entity.BytecodeEnhancementMetadataPocoImpl` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BytecodeEnhancementMetadataPocoImpl : NHibernate.Bytecode.IBytecodeEnhancementMetadata { public BytecodeEnhancementMetadataPocoImpl(string entityName, System.Type entityType, bool enhancedForLazyLoading, NHibernate.Bytecode.LazyPropertiesMetadata lazyPropertiesMetadata, NHibernate.Bytecode.UnwrapProxyPropertiesMetadata unwrapProxyPropertiesMetadata) => throw null; @@ -31631,15 +27302,13 @@ namespace NHibernate public string EntityName { get => throw null; } public NHibernate.Intercept.IFieldInterceptor ExtractInterceptor(object entity) => throw null; public static NHibernate.Bytecode.IBytecodeEnhancementMetadata From(NHibernate.Mapping.PersistentClass persistentClass, System.Collections.Generic.ICollection lazyPropertyDescriptors, System.Collections.Generic.ICollection unwrapProxyPropertyDescriptors) => throw null; - public System.Collections.Generic.ISet GetUninitializedLazyProperties(object[] entityState) => throw null; public System.Collections.Generic.ISet GetUninitializedLazyProperties(object entity) => throw null; + public System.Collections.Generic.ISet GetUninitializedLazyProperties(object[] entityState) => throw null; public bool HasAnyUninitializedLazyProperties(object entity) => throw null; public NHibernate.Intercept.IFieldInterceptor InjectInterceptor(object entity, NHibernate.Engine.ISessionImplementor session) => throw null; public NHibernate.Bytecode.LazyPropertiesMetadata LazyPropertiesMetadata { get => throw null; } public NHibernate.Bytecode.UnwrapProxyPropertiesMetadata UnwrapProxyPropertiesMetadata { get => throw null; } } - - // Generated from `NHibernate.Tuple.Entity.DynamicMapEntityTuplizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DynamicMapEntityTuplizer : NHibernate.Tuple.Entity.AbstractEntityTuplizer { protected override NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.PersistentClass mappingInfo) => throw null; @@ -31647,13 +27316,11 @@ namespace NHibernate protected override NHibernate.Properties.ISetter BuildPropertySetter(NHibernate.Mapping.Property mappedProperty, NHibernate.Mapping.PersistentClass mappedEntity) => throw null; protected override NHibernate.Proxy.IProxyFactory BuildProxyFactory(NHibernate.Mapping.PersistentClass mappingInfo, NHibernate.Properties.IGetter idGetter, NHibernate.Properties.ISetter idSetter) => throw null; public override System.Type ConcreteProxyClass { get => throw null; } - internal DynamicMapEntityTuplizer(NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass mappingInfo) : base(default(NHibernate.Tuple.Entity.EntityMetamodel), default(NHibernate.Mapping.PersistentClass)) => throw null; public override NHibernate.EntityMode EntityMode { get => throw null; } public override bool IsInstrumented { get => throw null; } public override System.Type MappedClass { get => throw null; } + internal DynamicMapEntityTuplizer() : base(default(NHibernate.Tuple.Entity.EntityMetamodel), default(NHibernate.Mapping.PersistentClass)) { } } - - // Generated from `NHibernate.Tuple.Entity.EntityMetamodel` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EntityMetamodel { public NHibernate.Bytecode.IBytecodeEnhancementMetadata BytecodeEnhancementMetadata { get => throw null; } @@ -31670,7 +27337,7 @@ namespace NHibernate public bool HasMutableProperties { get => throw null; } public bool HasNaturalIdentifier { get => throw null; } public bool HasNonIdentifierPropertyNamedId { get => throw null; } - public bool HasPocoRepresentation { get => throw null; set => throw null; } + public bool HasPocoRepresentation { get => throw null; } public bool HasSubclasses { get => throw null; } public bool HasUnwrapProxyForProperties { get => throw null; } public bool HasUpdateGeneratedValues { get => throw null; } @@ -31680,7 +27347,7 @@ namespace NHibernate public bool IsDynamicUpdate { get => throw null; } public bool IsExplicitPolymorphism { get => throw null; } public bool IsInherited { get => throw null; } - public bool IsLazy { get => throw null; set => throw null; } + public bool IsLazy { get => throw null; set { } } public bool IsMutable { get => throw null; } public bool IsPolymorphic { get => throw null; } public bool IsSelectBeforeUpdate { get => throw null; } @@ -31691,15 +27358,15 @@ namespace NHibernate public NHibernate.Engine.Versioning.OptimisticLock OptimisticLockMode { get => throw null; } public NHibernate.Tuple.StandardProperty[] Properties { get => throw null; } public bool[] PropertyCheckability { get => throw null; } - public NHibernate.Engine.ValueInclusion[] PropertyInsertGenerationInclusions { get => throw null; } public bool[] PropertyInsertability { get => throw null; } + public NHibernate.Engine.ValueInclusion[] PropertyInsertGenerationInclusions { get => throw null; } public bool[] PropertyLaziness { get => throw null; } public string[] PropertyNames { get => throw null; } public bool[] PropertyNullability { get => throw null; } public int PropertySpan { get => throw null; } public NHibernate.Type.IType[] PropertyTypes { get => throw null; } - public NHibernate.Engine.ValueInclusion[] PropertyUpdateGenerationInclusions { get => throw null; } public bool[] PropertyUpdateability { get => throw null; } + public NHibernate.Engine.ValueInclusion[] PropertyUpdateGenerationInclusions { get => throw null; } public bool[] PropertyVersionability { get => throw null; } public string RootName { get => throw null; } public System.Type RootType { get => throw null; } @@ -31714,22 +27381,16 @@ namespace NHibernate public NHibernate.Tuple.VersionProperty VersionProperty { get => throw null; } public int VersionPropertyIndex { get => throw null; } } - - // Generated from `NHibernate.Tuple.Entity.EntityTuplizerExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class EntityTuplizerExtensions + public static partial class EntityTuplizerExtensions { public static void AfterInitialize(this NHibernate.Tuple.Entity.IEntityTuplizer entityTuplizer, object entity, NHibernate.Engine.ISessionImplementor session) => throw null; } - - // Generated from `NHibernate.Tuple.Entity.EntityTuplizerFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EntityTuplizerFactory { public NHibernate.Tuple.Entity.IEntityTuplizer BuildDefaultEntityTuplizer(NHibernate.EntityMode entityMode, NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass persistentClass) => throw null; public NHibernate.Tuple.Entity.IEntityTuplizer BuildEntityTuplizer(string className, NHibernate.Tuple.Entity.EntityMetamodel em, NHibernate.Mapping.PersistentClass pc) => throw null; public EntityTuplizerFactory() => throw null; } - - // Generated from `NHibernate.Tuple.Entity.IEntityTuplizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEntityTuplizer : NHibernate.Tuple.ITuplizer { void AfterInitialize(object entity, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session); @@ -31747,19 +27408,15 @@ namespace NHibernate bool IsValidatableImplementor { get; } void ResetIdentifier(object entity, object currentId, object currentVersion); void SetIdentifier(object entity, object id); - void SetPropertyValue(object entity, string propertyName, object value); void SetPropertyValue(object entity, int i, object value); + void SetPropertyValue(object entity, string propertyName, object value); } - - // Generated from `NHibernate.Tuple.Entity.PocoEntityInstantiator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PocoEntityInstantiator : NHibernate.Tuple.PocoInstantiator { protected override object CreateInstance() => throw null; - public override bool IsInstance(object obj) => throw null; public PocoEntityInstantiator(NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Bytecode.IInstantiationOptimizer optimizer, NHibernate.Proxy.IProxyFactory proxyFactory) => throw null; + public override bool IsInstance(object obj) => throw null; } - - // Generated from `NHibernate.Tuple.Entity.PocoEntityTuplizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PocoEntityTuplizer : NHibernate.Tuple.Entity.AbstractEntityTuplizer { public override void AfterInitialize(object entity, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -31770,6 +27427,7 @@ namespace NHibernate protected virtual NHibernate.Proxy.IProxyFactory BuildProxyFactoryInternal(NHibernate.Mapping.PersistentClass @class, NHibernate.Properties.IGetter getter, NHibernate.Properties.ISetter setter) => throw null; protected void ClearOptimizerWhenUsingCustomAccessors() => throw null; public override System.Type ConcreteProxyClass { get => throw null; } + public PocoEntityTuplizer(NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass mappedEntity) : base(default(NHibernate.Tuple.Entity.EntityMetamodel), default(NHibernate.Mapping.PersistentClass)) => throw null; public override NHibernate.EntityMode EntityMode { get => throw null; } protected override object GetIdentifierPropertyValue(object entity) => throw null; public override object GetPropertyValue(object entity, int i) => throw null; @@ -31780,28 +27438,96 @@ namespace NHibernate public override bool IsLifecycleImplementor { get => throw null; } public override bool IsValidatableImplementor { get => throw null; } public override System.Type MappedClass { get => throw null; } - public PocoEntityTuplizer(NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass mappedEntity) : base(default(NHibernate.Tuple.Entity.EntityMetamodel), default(NHibernate.Mapping.PersistentClass)) => throw null; protected override void SetIdentifierPropertyValue(object entity, object value) => throw null; public override void SetPropertyValue(object entity, int i, object value) => throw null; public override void SetPropertyValues(object entity, object[] values) => throw null; protected void SetReflectionOptimizer() => throw null; } - + } + public class IdentifierProperty : NHibernate.Tuple.Property + { + public IdentifierProperty(string name, NHibernate.Type.IType type, bool embedded, NHibernate.Engine.IdentifierValue unsavedValue, NHibernate.Id.IIdentifierGenerator identifierGenerator) : base(default(string), default(NHibernate.Type.IType)) => throw null; + public IdentifierProperty(NHibernate.Type.IType type, bool embedded, bool hasIdentifierMapper, NHibernate.Engine.IdentifierValue unsavedValue, NHibernate.Id.IIdentifierGenerator identifierGenerator) : base(default(string), default(NHibernate.Type.IType)) => throw null; + public bool HasIdentifierMapper { get => throw null; } + public NHibernate.Id.IIdentifierGenerator IdentifierGenerator { get => throw null; } + public bool IsEmbedded { get => throw null; } + public bool IsIdentifierAssignedByInsert { get => throw null; } + public bool IsVirtual { get => throw null; } + public NHibernate.Engine.IdentifierValue UnsavedValue { get => throw null; } + } + public interface IInstantiator + { + object Instantiate(object id); + object Instantiate(); + bool IsInstance(object obj); + } + public interface ITuplizer + { + object GetPropertyValue(object entity, int i); + object[] GetPropertyValues(object entity); + object Instantiate(); + bool IsInstance(object obj); + System.Type MappedClass { get; } + void SetPropertyValues(object entity, object[] values); + } + public class PocoInstantiator : NHibernate.Tuple.IInstantiator, System.Runtime.Serialization.IDeserializationCallback + { + protected virtual object CreateInstance() => throw null; + public PocoInstantiator() => throw null; + public PocoInstantiator(NHibernate.Mapping.Component component, NHibernate.Bytecode.IInstantiationOptimizer optimizer) => throw null; + public PocoInstantiator(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Bytecode.IInstantiationOptimizer optimizer, NHibernate.Proxy.IProxyFactory proxyFactory, bool generateFieldInterceptionProxy) => throw null; + public PocoInstantiator(System.Type mappedClass, NHibernate.Bytecode.IInstantiationOptimizer optimizer, bool embeddedIdentifier) => throw null; + public object Instantiate(object id) => throw null; + public object Instantiate() => throw null; + public virtual bool IsInstance(object obj) => throw null; + public void OnDeserialization(object sender) => throw null; + public void SetOptimizer(NHibernate.Bytecode.IInstantiationOptimizer optimizer) => throw null; + } + public abstract class Property + { + protected Property(string name, NHibernate.Type.IType type) => throw null; + public string Name { get => throw null; } + public override string ToString() => throw null; + public NHibernate.Type.IType Type { get => throw null; } + } + public class PropertyFactory + { + public static NHibernate.Tuple.IdentifierProperty BuildIdentifierProperty(NHibernate.Mapping.PersistentClass mappedEntity, NHibernate.Id.IIdentifierGenerator generator) => throw null; + public static NHibernate.Tuple.StandardProperty BuildStandardProperty(NHibernate.Mapping.Property property, bool lazyAvailable) => throw null; + public static NHibernate.Tuple.VersionProperty BuildVersionProperty(NHibernate.Mapping.Property property, bool lazyAvailable) => throw null; + public PropertyFactory() => throw null; + } + public class StandardProperty : NHibernate.Tuple.Property + { + public NHibernate.Engine.CascadeStyle CascadeStyle { get => throw null; } + public StandardProperty(string name, NHibernate.Type.IType type, bool lazy, bool insertable, bool updateable, bool insertGenerated, bool updateGenerated, bool nullable, bool checkable, bool versionable, NHibernate.Engine.CascadeStyle cascadeStyle, NHibernate.FetchMode? fetchMode) : base(default(string), default(NHibernate.Type.IType)) => throw null; + public NHibernate.FetchMode? FetchMode { get => throw null; } + public bool IsDirtyCheckable(bool hasUninitializedProperties) => throw null; + public bool IsDirtyCheckable() => throw null; + public bool IsInsertable { get => throw null; } + public bool IsInsertGenerated { get => throw null; } + public bool IsLazy { get => throw null; } + public bool IsNullable { get => throw null; } + public bool IsUpdateable { get => throw null; } + public bool IsUpdateGenerated { get => throw null; } + public bool IsVersionable { get => throw null; } + } + public class VersionProperty : NHibernate.Tuple.StandardProperty + { + public VersionProperty(string name, NHibernate.Type.IType type, bool lazy, bool insertable, bool updateable, bool insertGenerated, bool updateGenerated, bool nullable, bool checkable, bool versionable, NHibernate.Engine.CascadeStyle cascadeStyle, NHibernate.Engine.VersionValue unsavedValue) : base(default(string), default(NHibernate.Type.IType), default(bool), default(bool), default(bool), default(bool), default(bool), default(bool), default(bool), default(bool), default(NHibernate.Engine.CascadeStyle), default(NHibernate.FetchMode?)) => throw null; + public NHibernate.Engine.VersionValue UnsavedValue { get => throw null; } } } namespace Type { - // Generated from `NHibernate.Type.AbstractBinaryType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractBinaryType : NHibernate.Type.MutableType, System.Collections.IComparer, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler + public abstract class AbstractBinaryType : NHibernate.Type.MutableType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, System.Collections.IComparer { - internal AbstractBinaryType(NHibernate.SqlTypes.BinarySqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - internal AbstractBinaryType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public System.Collections.IComparer Comparator { get => throw null; } public override int Compare(object x, object y) => throw null; public override object DeepCopyNotNull(object value) => throw null; public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override int GetHashCode(object x) => throw null; public override bool IsEqual(object x, object y) => throw null; public abstract override string Name { get; } @@ -31810,38 +27536,35 @@ namespace NHibernate public object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - protected internal abstract object ToExternalFormat(System.Byte[] bytes); - protected internal abstract System.Byte[] ToInternalFormat(object bytes); + protected abstract object ToExternalFormat(byte[] bytes); + protected abstract byte[] ToInternalFormat(object bytes); public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; + internal AbstractBinaryType() : base(default(NHibernate.SqlTypes.SqlType)) { } } - - // Generated from `NHibernate.Type.AbstractCharType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractCharType : NHibernate.Type.PrimitiveType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler + public abstract class AbstractCharType : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType { public AbstractCharType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type PrimitiveClass { get => throw null; } public override System.Type ReturnedClass { get => throw null; } public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual object StringToObject(string xml) => throw null; } - - // Generated from `NHibernate.Type.AbstractDateTimeType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractDateTimeType : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.ICacheAssembler + public abstract class AbstractDateTimeType : NHibernate.Type.PrimitiveType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IVersionType { - protected AbstractDateTimeType(NHibernate.SqlTypes.SqlType sqlTypeDateTime) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - protected AbstractDateTimeType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; protected virtual System.DateTime AdjustDateTime(System.DateTime dateValue) => throw null; public virtual System.Collections.IComparer Comparator { get => throw null; } + protected AbstractDateTimeType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + protected AbstractDateTimeType(NHibernate.SqlTypes.SqlType sqlTypeDateTime) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; protected virtual System.DateTime GetDateTime(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsEqual(object x, object y) => throw null; protected virtual System.DateTimeKind Kind { get => throw null; } @@ -31851,7 +27574,7 @@ namespace NHibernate public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type PrimitiveClass { get => throw null; } public override System.Type ReturnedClass { get => throw null; } - public static System.DateTime Round(System.DateTime value, System.Int64 resolution) => throw null; + public static System.DateTime Round(System.DateTime value, long resolution) => throw null; public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -31859,9 +27582,7 @@ namespace NHibernate public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; } - - // Generated from `NHibernate.Type.AbstractEnumType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractEnumType : NHibernate.Type.PrimitiveType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler + public abstract class AbstractEnumType : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType { protected AbstractEnumType(NHibernate.SqlTypes.SqlType sqlType, System.Type enumType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } @@ -31870,21 +27591,19 @@ namespace NHibernate public override System.Type ReturnedClass { get => throw null; } public object StringToObject(string xml) => throw null; } - - // Generated from `NHibernate.Type.AbstractStringType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class AbstractStringType : NHibernate.Type.ImmutableType, NHibernate.UserTypes.IParameterizedType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler + public abstract class AbstractStringType : NHibernate.Type.ImmutableType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.UserTypes.IParameterizedType { + protected System.StringComparer Comparer { get => throw null; set { } } + public static string ComparerCultureParameterName; public AbstractStringType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - protected System.StringComparer Comparer { get => throw null; set => throw null; } - public const string ComparerCultureParameterName = default; - public static System.StringComparer DefaultComparer { get => throw null; set => throw null; } + public static System.StringComparer DefaultComparer { get => throw null; set { } } public override bool Equals(object obj) => throw null; public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override int GetHashCode(object x) => throw null; public override int GetHashCode() => throw null; - public const string IgnoreCaseParameterName = default; + public static string IgnoreCaseParameterName; public override bool IsEqual(object x, object y) => throw null; public string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type ReturnedClass { get => throw null; } @@ -31894,24 +27613,22 @@ namespace NHibernate public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; } - - // Generated from `NHibernate.Type.AbstractType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class AbstractType : NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { - protected AbstractType() => throw null; public virtual object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public virtual System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public virtual void BeforeAssemble(object cached, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task BeforeAssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public virtual int Compare(object x, object y) => throw null; + protected AbstractType() => throw null; public abstract object DeepCopy(object val, NHibernate.Engine.ISessionFactoryImplementor factory); public virtual object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public virtual System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override bool Equals(object obj) => throw null; public abstract int GetColumnSpan(NHibernate.Engine.IMapping mapping); - public virtual int GetHashCode(object x, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public virtual int GetHashCode(object x) => throw null; public override int GetHashCode() => throw null; + public virtual int GetHashCode(object x) => throw null; + public virtual int GetHashCode(object x, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public virtual NHibernate.Type.IType GetSemiResolvedType(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public virtual object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public virtual System.Threading.Tasks.Task HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; @@ -31924,8 +27641,8 @@ namespace NHibernate public virtual System.Threading.Tasks.Task IsDirtyAsync(object old, object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public abstract System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); public virtual bool IsEntityType { get => throw null; } - public virtual bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public virtual bool IsEqual(object x, object y) => throw null; + public virtual bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public virtual bool IsModified(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task IsModifiedAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public abstract bool IsMutable { get; } @@ -31952,24 +27669,17 @@ namespace NHibernate public abstract bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping); public abstract string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory); } - - // Generated from `NHibernate.Type.AnsiCharType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AnsiCharType : NHibernate.Type.AbstractCharType { - internal AnsiCharType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override string Name { get => throw null; } + internal AnsiCharType() : base(default(NHibernate.SqlTypes.SqlType)) { } } - - // Generated from `NHibernate.Type.AnsiStringType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AnsiStringType : NHibernate.Type.AbstractStringType { - internal AnsiStringType(NHibernate.SqlTypes.AnsiStringSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - internal AnsiStringType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override string Name { get => throw null; } + internal AnsiStringType() : base(default(NHibernate.SqlTypes.SqlType)) { } } - - // Generated from `NHibernate.Type.AnyType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AnyType : NHibernate.Type.AbstractType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IAssociationType, NHibernate.Type.IAbstractComponentType + public class AnyType : NHibernate.Type.AbstractType, NHibernate.Type.IAbstractComponentType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IAssociationType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; @@ -31987,8 +27697,8 @@ namespace NHibernate public string GetOnCondition(string alias, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; public object GetPropertyValue(object component, int i, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task GetPropertyValueAsync(object component, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public object[] GetPropertyValues(object component, NHibernate.Engine.ISessionImplementor session) => throw null; public object[] GetPropertyValues(object component) => throw null; + public object[] GetPropertyValues(object component, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task GetPropertyValuesAsync(object component, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public string[] GetReferencedColumns(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; @@ -32007,32 +27717,29 @@ namespace NHibernate public override bool IsSame(object x, object y) => throw null; public string LHSPropertyName { get => throw null; } public override string Name { get => throw null; } - public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; - public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null; public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - // Generated from `NHibernate.Type.AnyType+ObjectTypeCacheEntry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ObjectTypeCacheEntry + public sealed class ObjectTypeCacheEntry { - public string EntityName { get => throw null; set => throw null; } - public object Id { get => throw null; set => throw null; } public ObjectTypeCacheEntry() => throw null; + public string EntityName { get => throw null; set { } } + public object Id { get => throw null; set { } } } - - public string[] PropertyNames { get => throw null; } public bool[] PropertyNullability { get => throw null; } - public string RHSUniqueKeyPropertyName { get => throw null; } public bool ReferenceToPrimaryKey { get => throw null; } public override object Replace(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null; public override System.Threading.Tasks.Task ReplaceAsync(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null; public override object ResolveIdentifier(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task ResolveIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Type ReturnedClass { get => throw null; } + public string RHSUniqueKeyPropertyName { get => throw null; } public override object SemiResolve(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task SemiResolveAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public void SetPropertyValues(object component, object[] values) => throw null; @@ -32042,17 +27749,15 @@ namespace NHibernate public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public bool UseLHSPrimaryKey { get => throw null; } } - - // Generated from `NHibernate.Type.ArrayType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ArrayType : NHibernate.Type.CollectionType { public ArrayType(string role, string propertyRef, System.Type elementClass) : base(default(string), default(string)) => throw null; public override System.Collections.IEnumerable GetElementsIterator(object collection) => throw null; public override bool HasHolder() => throw null; public override object IndexOf(object collection, object element) => throw null; - protected internal override bool InitializeImmediately() => throw null; - public override object Instantiate(int anticipatedSize) => throw null; + protected override bool InitializeImmediately() => throw null; public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null; + public override object Instantiate(int anticipatedSize) => throw null; public override object InstantiateResult(object original) => throw null; public override bool IsArrayType { get => throw null; } public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -32063,34 +27768,27 @@ namespace NHibernate public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object array) => throw null; } - - // Generated from `NHibernate.Type.BinaryBlobType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BinaryBlobType : NHibernate.Type.BinaryType { public BinaryBlobType() => throw null; public override string Name { get => throw null; } } - - // Generated from `NHibernate.Type.BinaryType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class BinaryType : NHibernate.Type.AbstractBinaryType { - internal BinaryType() => throw null; public override int Compare(object x, object y) => throw null; public override string Name { get => throw null; } public override System.Type ReturnedClass { get => throw null; } - protected internal override object ToExternalFormat(System.Byte[] bytes) => throw null; - protected internal override System.Byte[] ToInternalFormat(object bytes) => throw null; + protected override object ToExternalFormat(byte[] bytes) => throw null; + protected override byte[] ToInternalFormat(object bytes) => throw null; } - - // Generated from `NHibernate.Type.BooleanType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class BooleanType : NHibernate.Type.PrimitiveType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler + public class BooleanType : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType { - public BooleanType(NHibernate.SqlTypes.AnsiStringFixedLengthSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public BooleanType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public BooleanType(NHibernate.SqlTypes.AnsiStringFixedLengthSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type PrimitiveClass { get => throw null; } @@ -32098,16 +27796,14 @@ namespace NHibernate public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual object StringToObject(string xml) => throw null; } - - // Generated from `NHibernate.Type.ByteType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ByteType : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler + public class ByteType : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IVersionType { - public ByteType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public System.Collections.IComparer Comparator { get => throw null; } + public ByteType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; @@ -32119,28 +27815,22 @@ namespace NHibernate public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual object StringToObject(string xml) => throw null; } - - // Generated from `NHibernate.Type.CharBooleanType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class CharBooleanType : NHibernate.Type.BooleanType { protected CharBooleanType(NHibernate.SqlTypes.AnsiStringFixedLengthSqlType sqlType) => throw null; protected abstract string FalseString { get; } - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override object StringToObject(string xml) => throw null; protected abstract string TrueString { get; } } - - // Generated from `NHibernate.Type.CharType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CharType : NHibernate.Type.AbstractCharType { - internal CharType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override string Name { get => throw null; } + internal CharType() : base(default(NHibernate.SqlTypes.SqlType)) { } } - - // Generated from `NHibernate.Type.ClassMetaType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ClassMetaType : NHibernate.Type.AbstractType { public ClassMetaType() => throw null; @@ -32165,9 +27855,7 @@ namespace NHibernate public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; } - - // Generated from `NHibernate.Type.CollectionType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class CollectionType : NHibernate.Type.AbstractType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IAssociationType + public abstract class CollectionType : NHibernate.Type.AbstractType, NHibernate.Type.IAssociationType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { protected virtual void Add(object collection, object element) => throw null; protected virtual bool AreCollectionElementsEqual(System.Collections.IEnumerable original, System.Collections.IEnumerable target) => throw null; @@ -32176,9 +27864,9 @@ namespace NHibernate public override void BeforeAssemble(object oid, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task BeforeAssembleAsync(object oid, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; protected virtual void Clear(object collection) => throw null; - protected CollectionType(string role, string foreignKeyPropertyName) => throw null; public override int Compare(object x, object y) => throw null; public virtual bool Contains(object collection, object childObject, NHibernate.Engine.ISessionImplementor session) => throw null; + protected CollectionType(string role, string foreignKeyPropertyName) => throw null; public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; @@ -32188,9 +27876,9 @@ namespace NHibernate public object GetCollection(object key, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public System.Threading.Tasks.Task GetCollectionAsync(object key, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override int GetColumnSpan(NHibernate.Engine.IMapping session) => throw null; - public NHibernate.Type.IType GetElementType(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public virtual System.Collections.IEnumerable GetElementsIterator(object collection, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Collections.IEnumerable GetElementsIterator(object collection) => throw null; + public NHibernate.Type.IType GetElementType(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override int GetHashCode(object x) => throw null; public virtual object GetIdOfOwnerOrNull(object key, NHibernate.Engine.ISessionImplementor session) => throw null; public object GetKeyOfOwner(object owner, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -32201,40 +27889,40 @@ namespace NHibernate public override object Hydrate(System.Data.Common.DbDataReader rs, string[] name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task HydrateAsync(System.Data.Common.DbDataReader rs, string[] name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public virtual object IndexOf(object collection, object element) => throw null; - protected internal virtual bool InitializeImmediately() => throw null; - public abstract object Instantiate(int anticipatedSize); + protected virtual bool InitializeImmediately() => throw null; public abstract NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key); + public abstract object Instantiate(int anticipatedSize); public virtual object InstantiateResult(object original) => throw null; public bool IsAlwaysDirtyChecked { get => throw null; } public virtual bool IsArrayType { get => throw null; } public override bool IsAssociationType { get => throw null; } public override bool IsCollectionType { get => throw null; } - public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsDirty(object old, object current, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsEqual(object x, object y) => throw null; public override bool IsModified(object oldHydratedState, object currentState, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsModifiedAsync(object oldHydratedState, object currentState, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsMutable { get => throw null; } public string LHSPropertyName { get => throw null; } public override string Name { get => throw null; } - public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; - public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null; public override void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public string RHSUniqueKeyPropertyName { get => throw null; } - protected internal virtual string RenderLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + protected virtual string RenderLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache) => throw null; public override System.Threading.Tasks.Task ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null; public virtual object ReplaceElements(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task ReplaceElementsAsync(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override object ResolveIdentifier(object key, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task ResolveIdentifierAsync(object key, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public string RHSUniqueKeyPropertyName { get => throw null; } public virtual string Role { get => throw null; } public override object SemiResolve(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task SemiResolveAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; @@ -32246,9 +27934,7 @@ namespace NHibernate public bool UseLHSPrimaryKey { get => throw null; } public abstract NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection); } - - // Generated from `NHibernate.Type.ComponentType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class ComponentType : NHibernate.Type.AbstractType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IAbstractComponentType + public class ComponentType : NHibernate.Type.AbstractType, NHibernate.Type.IAbstractComponentType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { public override object Assemble(object obj, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object obj, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; @@ -32265,26 +27951,26 @@ namespace NHibernate public override int GetHashCode(object x, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override int GetHashCode(object x) => throw null; public int GetPropertyIndex(string name) => throw null; - public object GetPropertyValue(object component, int i, NHibernate.Engine.ISessionImplementor session) => throw null; public object GetPropertyValue(object component, int i) => throw null; + public object GetPropertyValue(object component, int i, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task GetPropertyValueAsync(object component, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public object[] GetPropertyValues(object component, NHibernate.Engine.ISessionImplementor session) => throw null; public object[] GetPropertyValues(object component) => throw null; + public object[] GetPropertyValues(object component, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task GetPropertyValuesAsync(object component, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public virtual object Instantiate(object parent, NHibernate.Engine.ISessionImplementor session) => throw null; public object Instantiate() => throw null; + public virtual object Instantiate(object parent, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsCollectionType { get => throw null; } public override bool IsComponentType { get => throw null; } - public override bool IsDirty(object x, object y, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsDirty(object x, object y, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task IsDirtyAsync(object x, object y, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool IsDirty(object x, object y, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsDirtyAsync(object x, object y, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task IsDirtyAsync(object x, object y, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public virtual bool IsEmbedded { get => throw null; } public override bool IsEntityType { get => throw null; } - public override bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override bool IsEqual(object x, object y) => throw null; + public override bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public virtual bool IsMethodOf(System.Reflection.MethodBase method) => throw null; public override bool IsModified(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsModifiedAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; @@ -32295,16 +27981,16 @@ namespace NHibernate public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int begin, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null; public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int begin, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int begin, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int begin, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int begin, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int begin, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public string[] PropertyNames { get => throw null; } public bool[] PropertyNullability { get => throw null; } - public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null; public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null; - public override System.Threading.Tasks.Task ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null; + public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null; public override System.Threading.Tasks.Task ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null; public override object ResolveIdentifier(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task ResolveIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Type ReturnedClass { get => throw null; } @@ -32316,9 +28002,7 @@ namespace NHibernate public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; } - - // Generated from `NHibernate.Type.CompositeCustomType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CompositeCustomType : NHibernate.Type.AbstractType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IAbstractComponentType + public class CompositeCustomType : NHibernate.Type.AbstractType, NHibernate.Type.IAbstractComponentType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; @@ -32345,10 +28029,10 @@ namespace NHibernate public virtual bool IsMethodOf(System.Reflection.MethodBase method) => throw null; public override bool IsMutable { get => throw null; } public override string Name { get => throw null; } - public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; - public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null; public override void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; @@ -32365,50 +28049,42 @@ namespace NHibernate public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public NHibernate.UserTypes.ICompositeUserType UserType { get => throw null; } } - - // Generated from `NHibernate.Type.CultureInfoType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CultureInfoType : NHibernate.Type.ImmutableType, NHibernate.Type.ILiteralType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - internal CultureInfoType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type ReturnedClass { get => throw null; } public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object value) => throw null; + internal CultureInfoType() : base(default(NHibernate.SqlTypes.SqlType)) { } } - - // Generated from `NHibernate.Type.CurrencyType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CurrencyType : NHibernate.Type.DecimalType { public override string Name { get => throw null; } } - - // Generated from `NHibernate.Type.CustomCollectionType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class CustomCollectionType : NHibernate.Type.CollectionType { public override bool Contains(object collection, object entity, NHibernate.Engine.ISessionImplementor session) => throw null; public CustomCollectionType(System.Type userTypeClass, string role, string foreignKeyPropertyName) : base(default(string), default(string)) => throw null; public override System.Collections.IEnumerable GetElementsIterator(object collection) => throw null; public override object IndexOf(object collection, object entity) => throw null; - public override object Instantiate(int anticipatedSize) => throw null; public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null; + public override object Instantiate(int anticipatedSize) => throw null; public override object ReplaceElements(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task ReplaceElementsAsync(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Type ReturnedClass { get => throw null; } public NHibernate.UserTypes.IUserCollectionType UserType { get => throw null; } public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null; } - - // Generated from `NHibernate.Type.CustomType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class CustomType : NHibernate.Type.AbstractType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler + public class CustomType : NHibernate.Type.AbstractType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IVersionType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; @@ -32420,8 +28096,8 @@ namespace NHibernate public override bool Equals(object obj) => throw null; public object FromStringValue(string xml) => throw null; public override int GetColumnSpan(NHibernate.Engine.IMapping session) => throw null; - public override int GetHashCode(object x) => throw null; public override int GetHashCode() => throw null; + public override int GetHashCode(object x) => throw null; public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsEqual(object x, object y) => throw null; @@ -32449,16 +28125,12 @@ namespace NHibernate public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public NHibernate.UserTypes.IUserType UserType { get => throw null; } } - - // Generated from `NHibernate.Type.DateTime2Type` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DateTime2Type : NHibernate.Type.AbstractDateTimeType { - public DateTime2Type(NHibernate.SqlTypes.DateTime2SqlType sqlType) => throw null; public DateTime2Type() => throw null; + public DateTime2Type(NHibernate.SqlTypes.DateTime2SqlType sqlType) => throw null; public override string Name { get => throw null; } } - - // Generated from `NHibernate.Type.DateTimeNoMsType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DateTimeNoMsType : NHibernate.Type.AbstractDateTimeType { protected override System.DateTime AdjustDateTime(System.DateTime dateValue) => throw null; @@ -32469,17 +28141,15 @@ namespace NHibernate public override object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Type.DateTimeOffsetType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DateTimeOffsetType : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.ICacheAssembler + public class DateTimeOffsetType : NHibernate.Type.PrimitiveType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IVersionType { public System.Collections.IComparer Comparator { get => throw null; } - public DateTimeOffsetType(NHibernate.SqlTypes.DateTimeOffsetSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public DateTimeOffsetType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public DateTimeOffsetType(NHibernate.SqlTypes.DateTimeOffsetSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsEqual(object x, object y) => throw null; public override string Name { get => throw null; } public object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -32487,7 +28157,7 @@ namespace NHibernate public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type PrimitiveClass { get => throw null; } public override System.Type ReturnedClass { get => throw null; } - public static System.DateTimeOffset Round(System.DateTimeOffset value, System.Int64 resolution) => throw null; + public static System.DateTimeOffset Round(System.DateTimeOffset value, long resolution) => throw null; public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -32495,21 +28165,17 @@ namespace NHibernate public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; } - - // Generated from `NHibernate.Type.DateTimeType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DateTimeType : NHibernate.Type.AbstractDateTimeType { - public DateTimeType(NHibernate.SqlTypes.DateTimeSqlType sqlType) => throw null; public DateTimeType() => throw null; + public DateTimeType(NHibernate.SqlTypes.DateTimeSqlType sqlType) => throw null; public override string Name { get => throw null; } } - - // Generated from `NHibernate.Type.DateType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DateType : NHibernate.Type.AbstractDateTimeType, NHibernate.UserTypes.IParameterizedType { protected override System.DateTime AdjustDateTime(System.DateTime dateValue) => throw null; public static System.DateTime BaseDateValue; - public const string BaseValueParameterName = default; + public static string BaseValueParameterName; public DateType() => throw null; public override object DefaultValue { get => throw null; } public override int GetHashCode(object x) => throw null; @@ -32520,8 +28186,6 @@ namespace NHibernate public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; } - - // Generated from `NHibernate.Type.DbTimestampType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DbTimestampType : NHibernate.Type.AbstractDateTimeType { public DbTimestampType() => throw null; @@ -32535,16 +28199,14 @@ namespace NHibernate protected virtual System.DateTime UsePreparedStatement(string timestampSelectString, NHibernate.Engine.ISessionImplementor session) => throw null; protected virtual System.Threading.Tasks.Task UsePreparedStatementAsync(string timestampSelectString, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Type.DecimalType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DecimalType : NHibernate.Type.PrimitiveType, NHibernate.Type.IType, NHibernate.Type.IIdentifierType, NHibernate.Type.ICacheAssembler + public class DecimalType : NHibernate.Type.PrimitiveType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { - public DecimalType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public DecimalType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public DecimalType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type PrimitiveClass { get => throw null; } @@ -32552,8 +28214,6 @@ namespace NHibernate public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public object StringToObject(string xml) => throw null; } - - // Generated from `NHibernate.Type.DefaultCollectionTypeFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DefaultCollectionTypeFactory : NHibernate.Bytecode.ICollectionTypeFactory { public virtual NHibernate.Type.CollectionType Array(string role, string propertyRef, System.Type elementClass) => throw null; @@ -32568,56 +28228,52 @@ namespace NHibernate public virtual NHibernate.Type.CollectionType SortedList(string role, string propertyRef, System.Collections.Generic.IComparer comparer) => throw null; public virtual NHibernate.Type.CollectionType SortedSet(string role, string propertyRef, System.Collections.Generic.IComparer comparer) => throw null; } - - // Generated from `NHibernate.Type.DoubleType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class DoubleType : NHibernate.Type.PrimitiveType { - public override object DefaultValue { get => throw null; } - public DoubleType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public DoubleType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public DoubleType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type PrimitiveClass { get => throw null; } public override System.Type ReturnedClass { get => throw null; } public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; } - - // Generated from `NHibernate.Type.EmbeddedComponentType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EmbeddedComponentType : NHibernate.Type.ComponentType { public EmbeddedComponentType(NHibernate.Tuple.Component.ComponentMetamodel metamodel) : base(default(NHibernate.Tuple.Component.ComponentMetamodel)) => throw null; public override object Instantiate(object parent, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsEmbedded { get => throw null; } } - - // Generated from `NHibernate.Type.EntityType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class EntityType : NHibernate.Type.AbstractType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IAssociationType + public abstract class EntityType : NHibernate.Type.AbstractType, NHibernate.Type.IAssociationType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { public override int Compare(object x, object y) => throw null; + protected EntityType(string entityName, string uniqueKeyPropertyName, bool eager, bool unwrapProxy) => throw null; public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - protected internal EntityType(string entityName, string uniqueKeyPropertyName, bool eager, bool unwrapProxy) => throw null; public abstract NHibernate.Type.ForeignKeyDirection ForeignKeyDirection { get; } public virtual string GetAssociatedEntityName(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public string GetAssociatedEntityName() => throw null; public NHibernate.Persister.Entity.IJoinable GetAssociatedJoinable(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override int GetHashCode(object x, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - protected internal object GetIdentifier(object value, NHibernate.Engine.ISessionImplementor session) => throw null; - protected internal System.Threading.Tasks.Task GetIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected object GetIdentifier(object value, NHibernate.Engine.ISessionImplementor session) => throw null; + protected System.Threading.Tasks.Task GetIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public string GetIdentifierOrUniqueKeyPropertyName(NHibernate.Engine.IMapping factory) => throw null; public NHibernate.Type.IType GetIdentifierOrUniqueKeyType(NHibernate.Engine.IMapping factory) => throw null; public string GetOnCondition(string alias, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary enabledFilters) => throw null; public virtual int GetOwnerColumnSpan(NHibernate.Engine.IMapping session) => throw null; - protected internal object GetReferenceValue(object value, NHibernate.Engine.ISessionImplementor session) => throw null; - protected internal System.Threading.Tasks.Task GetReferenceValueAsync(object value, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected object GetReferenceValue(object value, NHibernate.Engine.ISessionImplementor session) => throw null; + protected object GetReferenceValue(object value, NHibernate.Engine.ISessionImplementor session, bool forbidDelayed) => throw null; + protected System.Threading.Tasks.Task GetReferenceValueAsync(object value, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + protected System.Threading.Tasks.Task GetReferenceValueAsync(object value, NHibernate.Engine.ISessionImplementor session, bool forbidDelayed, System.Threading.CancellationToken cancellationToken) => throw null; public override NHibernate.Type.IType GetSemiResolvedType(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public abstract override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner); public abstract override System.Threading.Tasks.Task HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken); public abstract bool IsAlwaysDirtyChecked { get; } public override bool IsAssociationType { get => throw null; } - public override bool IsEntityType { get => throw null; } + public override sealed bool IsEntityType { get => throw null; } public override bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public virtual bool IsLogicalOneToOne() => throw null; public override bool IsMutable { get => throw null; } @@ -32631,36 +28287,34 @@ namespace NHibernate public object LoadByUniqueKey(string entityName, string uniqueKeyPropertyName, object key, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task LoadByUniqueKeyAsync(string entityName, string uniqueKeyPropertyName, object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override string Name { get => throw null; } - public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; - public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override sealed object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override sealed System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public virtual string PropertyName { get => throw null; } - public string RHSUniqueKeyPropertyName { get => throw null; } public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache) => throw null; public override System.Threading.Tasks.Task ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null; - public override object ResolveIdentifier(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; protected object ResolveIdentifier(object id, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task ResolveIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override object ResolveIdentifier(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; protected System.Threading.Tasks.Task ResolveIdentifierAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task ResolveIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Type ReturnedClass { get => throw null; } + public string RHSUniqueKeyPropertyName { get => throw null; } public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString() => throw null; - public abstract bool UseLHSPrimaryKey { get; } protected string uniqueKeyPropertyName; + public abstract bool UseLHSPrimaryKey { get; } } - - // Generated from `NHibernate.Type.EnumCharType<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EnumCharType : NHibernate.Type.AbstractEnumType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public EnumCharType() : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public EnumCharType() : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null; public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual object GetInstance(object code) => throw null; public virtual object GetValue(object instance) => throw null; public override string Name { get => throw null; } @@ -32669,43 +28323,35 @@ namespace NHibernate public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object value) => throw null; } - - // Generated from `NHibernate.Type.EnumStringType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class EnumStringType : NHibernate.Type.AbstractEnumType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + protected EnumStringType(System.Type enumClass) : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null; + protected EnumStringType(System.Type enumClass, int length) : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - protected EnumStringType(System.Type enumClass, int length) : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null; - protected EnumStringType(System.Type enumClass) : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual object GetInstance(object code) => throw null; public virtual object GetValue(object code) => throw null; - public const int MaxLengthForEnumString = default; + public static int MaxLengthForEnumString; public override string Name { get => throw null; } public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object value) => throw null; } - - // Generated from `NHibernate.Type.EnumStringType<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EnumStringType : NHibernate.Type.EnumStringType { public EnumStringType() : base(default(System.Type)) => throw null; public override string Name { get => throw null; } } - - // Generated from `NHibernate.Type.EnumType<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class EnumType : NHibernate.Type.PersistentEnumType { public EnumType() : base(default(System.Type)) => throw null; public override string Name { get => throw null; } } - - // Generated from `NHibernate.Type.ForeignKeyDirection` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class ForeignKeyDirection { public abstract bool CascadeNow(NHibernate.Engine.CascadePoint cascadePoint); @@ -32713,49 +28359,41 @@ namespace NHibernate public static NHibernate.Type.ForeignKeyDirection ForeignKeyFromParent; public static NHibernate.Type.ForeignKeyDirection ForeignKeyToParent; } - - // Generated from `NHibernate.Type.GenericBagType<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericBagType : NHibernate.Type.CollectionType { protected override void Add(object collection, object element) => throw null; protected override bool AreCollectionElementsEqual(System.Collections.IEnumerable original, System.Collections.IEnumerable target) => throw null; protected override void Clear(object collection) => throw null; public GenericBagType(string role, string propertyRef) : base(default(string), default(string)) => throw null; - public override object Instantiate(int anticipatedSize) => throw null; public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null; + public override object Instantiate(int anticipatedSize) => throw null; public override System.Type ReturnedClass { get => throw null; } public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null; } - - // Generated from `NHibernate.Type.GenericIdentifierBagType<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericIdentifierBagType : NHibernate.Type.CollectionType { protected override void Add(object collection, object element) => throw null; protected override bool AreCollectionElementsEqual(System.Collections.IEnumerable original, System.Collections.IEnumerable target) => throw null; protected override void Clear(object collection) => throw null; public GenericIdentifierBagType(string role, string propertyRef) : base(default(string), default(string)) => throw null; - public override object Instantiate(int anticipatedSize) => throw null; public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null; + public override object Instantiate(int anticipatedSize) => throw null; public override object ReplaceElements(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task ReplaceElementsAsync(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Type ReturnedClass { get => throw null; } public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null; } - - // Generated from `NHibernate.Type.GenericListType<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericListType : NHibernate.Type.CollectionType { protected override void Add(object collection, object element) => throw null; protected override void Clear(object collection) => throw null; public GenericListType(string role, string propertyRef) : base(default(string), default(string)) => throw null; public override object IndexOf(object collection, object element) => throw null; - public override object Instantiate(int anticipatedSize) => throw null; public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null; + public override object Instantiate(int anticipatedSize) => throw null; public override System.Type ReturnedClass { get => throw null; } public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null; } - - // Generated from `NHibernate.Type.GenericMapType<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericMapType : NHibernate.Type.CollectionType { protected override void Add(object collection, object element) => throw null; @@ -32764,66 +28402,54 @@ namespace NHibernate public GenericMapType(string role, string propertyRef) : base(default(string), default(string)) => throw null; public override System.Collections.IEnumerable GetElementsIterator(object collection) => throw null; public override object IndexOf(object collection, object element) => throw null; - public override object Instantiate(int anticipatedSize) => throw null; public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null; + public override object Instantiate(int anticipatedSize) => throw null; public override object ReplaceElements(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task ReplaceElementsAsync(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Type ReturnedClass { get => throw null; } public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null; } - - // Generated from `NHibernate.Type.GenericOrderedSetType<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericOrderedSetType : NHibernate.Type.GenericSetType { public GenericOrderedSetType(string role, string propertyRef) : base(default(string), default(string)) => throw null; public override object Instantiate(int anticipatedSize) => throw null; } - - // Generated from `NHibernate.Type.GenericSetType<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericSetType : NHibernate.Type.CollectionType { protected override void Add(object collection, object element) => throw null; protected override bool AreCollectionElementsEqual(System.Collections.IEnumerable original, System.Collections.IEnumerable target) => throw null; protected override void Clear(object collection) => throw null; public GenericSetType(string role, string propertyRef) : base(default(string), default(string)) => throw null; - public override object Instantiate(int anticipatedSize) => throw null; public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null; + public override object Instantiate(int anticipatedSize) => throw null; public override System.Type ReturnedClass { get => throw null; } public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null; } - - // Generated from `NHibernate.Type.GenericSortedDictionaryType<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericSortedDictionaryType : NHibernate.Type.GenericMapType { public System.Collections.Generic.IComparer Comparer { get => throw null; } public GenericSortedDictionaryType(string role, string propertyRef, System.Collections.Generic.IComparer comparer) : base(default(string), default(string)) => throw null; public override object Instantiate(int anticipatedSize) => throw null; } - - // Generated from `NHibernate.Type.GenericSortedListType<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericSortedListType : NHibernate.Type.GenericMapType { public System.Collections.Generic.IComparer Comparer { get => throw null; } public GenericSortedListType(string role, string propertyRef, System.Collections.Generic.IComparer comparer) : base(default(string), default(string)) => throw null; public override object Instantiate(int anticipatedSize) => throw null; } - - // Generated from `NHibernate.Type.GenericSortedSetType<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class GenericSortedSetType : NHibernate.Type.GenericSetType { public System.Collections.Generic.IComparer Comparer { get => throw null; } public GenericSortedSetType(string role, string propertyRef, System.Collections.Generic.IComparer comparer) : base(default(string), default(string)) => throw null; public override object Instantiate(int anticipatedSize) => throw null; } - - // Generated from `NHibernate.Type.GuidType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class GuidType : NHibernate.Type.PrimitiveType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler + public class GuidType : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType { + public GuidType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - public GuidType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type PrimitiveClass { get => throw null; } @@ -32831,8 +28457,6 @@ namespace NHibernate public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public object StringToObject(string xml) => throw null; } - - // Generated from `NHibernate.Type.IAbstractComponentType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IAbstractComponentType : NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { NHibernate.Engine.CascadeStyle GetCascadeStyle(int i); @@ -32849,8 +28473,6 @@ namespace NHibernate void SetPropertyValues(object component, object[] values); NHibernate.Type.IType[] Subtypes { get; } } - - // Generated from `NHibernate.Type.IAssociationType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IAssociationType : NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { NHibernate.Type.ForeignKeyDirection ForeignKeyDirection { get; } @@ -32862,8 +28484,6 @@ namespace NHibernate string RHSUniqueKeyPropertyName { get; } bool UseLHSPrimaryKey { get; } } - - // Generated from `NHibernate.Type.ICacheAssembler` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICacheAssembler { object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner); @@ -32873,32 +28493,89 @@ namespace NHibernate object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner); System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Type.IDiscriminatorType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IDiscriminatorType : NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.ICacheAssembler + public interface IDiscriminatorType : NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType { } - - // Generated from `NHibernate.Type.IIdentifierType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IIdentifierType : NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { object StringToObject(string xml); } - - // Generated from `NHibernate.Type.ILiteralType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ILiteralType { string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect); } - - // Generated from `NHibernate.Type.IType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public abstract class ImmutableType : NHibernate.Type.NullableType + { + protected ImmutableType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public override sealed bool IsMutable { get => throw null; } + public override object Replace(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null; + public override System.Threading.Tasks.Task ReplaceAsync(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class Int16Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IVersionType + { + public System.Collections.IComparer Comparator { get => throw null; } + public Int16Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public override object DefaultValue { get => throw null; } + public override object FromStringValue(string xml) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; + public override string Name { get => throw null; } + public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; + public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; + public override System.Type PrimitiveClass { get => throw null; } + public override System.Type ReturnedClass { get => throw null; } + public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; + public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public object StringToObject(string xml) => throw null; + } + public class Int32Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IVersionType + { + public System.Collections.IComparer Comparator { get => throw null; } + public Int32Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public override object DefaultValue { get => throw null; } + public override object FromStringValue(string xml) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; + public override string Name { get => throw null; } + public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; + public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; + public override System.Type PrimitiveClass { get => throw null; } + public override System.Type ReturnedClass { get => throw null; } + public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; + public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public object StringToObject(string xml) => throw null; + } + public class Int64Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IVersionType + { + public System.Collections.IComparer Comparator { get => throw null; } + public Int64Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public override object DefaultValue { get => throw null; } + public override object FromStringValue(string xml) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; + public override string Name { get => throw null; } + public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; + public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; + public override System.Type PrimitiveClass { get => throw null; } + public override System.Type ReturnedClass { get => throw null; } + public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; + public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public object StringToObject(string xml) => throw null; + } public interface IType : NHibernate.Type.ICacheAssembler { int Compare(object x, object y); object DeepCopy(object val, NHibernate.Engine.ISessionFactoryImplementor factory); int GetColumnSpan(NHibernate.Engine.IMapping mapping); - int GetHashCode(object x, NHibernate.Engine.ISessionFactoryImplementor factory); int GetHashCode(object x); + int GetHashCode(object x, NHibernate.Engine.ISessionFactoryImplementor factory); NHibernate.Type.IType GetSemiResolvedType(NHibernate.Engine.ISessionFactoryImplementor factory); object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner); System.Threading.Tasks.Task HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken); @@ -32906,13 +28583,13 @@ namespace NHibernate bool IsAssociationType { get; } bool IsCollectionType { get; } bool IsComponentType { get; } - bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session); bool IsDirty(object old, object current, NHibernate.Engine.ISessionImplementor session); - System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session); System.Threading.Tasks.Task IsDirtyAsync(object old, object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); bool IsEntityType { get; } - bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory); bool IsEqual(object x, object y); + bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory); bool IsModified(object oldHydratedState, object currentState, bool[] checkable, NHibernate.Engine.ISessionImplementor session); System.Threading.Tasks.Task IsModifiedAsync(object oldHydratedState, object currentState, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); bool IsMutable { get; } @@ -32926,10 +28603,10 @@ namespace NHibernate void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session); System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); - object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection); object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready); - System.Threading.Tasks.Task ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken); + object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection); System.Threading.Tasks.Task ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken); object ResolveIdentifier(object value, NHibernate.Engine.ISessionImplementor session, object owner); System.Threading.Tasks.Task ResolveIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken); System.Type ReturnedClass { get; } @@ -32939,8 +28616,6 @@ namespace NHibernate bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping); string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory); } - - // Generated from `NHibernate.Type.IVersionType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IVersionType : NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { System.Collections.IComparer Comparator { get; } @@ -32950,111 +28625,34 @@ namespace NHibernate object Seed(NHibernate.Engine.ISessionImplementor session); System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken); } - - // Generated from `NHibernate.Type.ImmutableType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public abstract class ImmutableType : NHibernate.Type.NullableType - { - public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - protected ImmutableType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - public override bool IsMutable { get => throw null; } - public override object Replace(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null; - public override System.Threading.Tasks.Task ReplaceAsync(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null; - } - - // Generated from `NHibernate.Type.Int16Type` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Int16Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler - { - public System.Collections.IComparer Comparator { get => throw null; } - public override object DefaultValue { get => throw null; } - public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - public Int16Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - public override string Name { get => throw null; } - public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; - public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; - public override System.Type PrimitiveClass { get => throw null; } - public override System.Type ReturnedClass { get => throw null; } - public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; - public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - public object StringToObject(string xml) => throw null; - } - - // Generated from `NHibernate.Type.Int32Type` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Int32Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler - { - public System.Collections.IComparer Comparator { get => throw null; } - public override object DefaultValue { get => throw null; } - public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - public Int32Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - public override string Name { get => throw null; } - public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; - public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; - public override System.Type PrimitiveClass { get => throw null; } - public override System.Type ReturnedClass { get => throw null; } - public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; - public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - public object StringToObject(string xml) => throw null; - } - - // Generated from `NHibernate.Type.Int64Type` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class Int64Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler - { - public System.Collections.IComparer Comparator { get => throw null; } - public override object DefaultValue { get => throw null; } - public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - public Int64Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - public override string Name { get => throw null; } - public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; - public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; - public override System.Type PrimitiveClass { get => throw null; } - public override System.Type ReturnedClass { get => throw null; } - public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; - public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - public object StringToObject(string xml) => throw null; - } - - // Generated from `NHibernate.Type.LocalDateTimeNoMsType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class LocalDateTimeNoMsType : NHibernate.Type.DateTimeNoMsType { - protected override System.DateTimeKind Kind { get => throw null; } public LocalDateTimeNoMsType() => throw null; + protected override System.DateTimeKind Kind { get => throw null; } public override string Name { get => throw null; } } - - // Generated from `NHibernate.Type.LocalDateTimeType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class LocalDateTimeType : NHibernate.Type.DateTimeType { - protected override System.DateTimeKind Kind { get => throw null; } - public LocalDateTimeType(NHibernate.SqlTypes.DateTimeSqlType sqlType) => throw null; public LocalDateTimeType() => throw null; + public LocalDateTimeType(NHibernate.SqlTypes.DateTimeSqlType sqlType) => throw null; + protected override System.DateTimeKind Kind { get => throw null; } public override string Name { get => throw null; } } - - // Generated from `NHibernate.Type.LocalDateType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class LocalDateType : NHibernate.Type.DateType { - protected override System.DateTimeKind Kind { get => throw null; } public LocalDateType() => throw null; + protected override System.DateTimeKind Kind { get => throw null; } } - - // Generated from `NHibernate.Type.ManyToOneType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ManyToOneType : NHibernate.Type.EntityType { public override object Assemble(object oid, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object oid, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override void BeforeAssemble(object oid, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task BeforeAssembleAsync(object oid, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public ManyToOneType(string className) : base(default(string), default(string), default(bool), default(bool)) => throw null; + public ManyToOneType(string className, bool lazy) : base(default(string), default(string), default(bool), default(bool)) => throw null; + public ManyToOneType(string entityName, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, bool ignoreNotFound, bool isLogicalOneToOne) : base(default(string), default(string), default(bool), default(bool)) => throw null; + public ManyToOneType(string entityName, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, bool ignoreNotFound, bool isLogicalOneToOne, string propertyName) : base(default(string), default(string), default(bool), default(bool)) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override NHibernate.Type.ForeignKeyDirection ForeignKeyDirection { get => throw null; } @@ -33062,20 +28660,16 @@ namespace NHibernate public override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsAlwaysDirtyChecked { get => throw null; } - public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsDirty(object old, object current, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsLogicalOneToOne() => throw null; public override bool IsModified(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsModifiedAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsNull(object owner, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsNullable { get => throw null; } public override bool IsOneToOne { get => throw null; } - public ManyToOneType(string entityName, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, bool ignoreNotFound, bool isLogicalOneToOne, string propertyName) : base(default(string), default(string), default(bool), default(bool)) => throw null; - public ManyToOneType(string entityName, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, bool ignoreNotFound, bool isLogicalOneToOne) : base(default(string), default(string), default(bool), default(bool)) => throw null; - public ManyToOneType(string className, bool lazy) : base(default(string), default(string), default(bool), default(bool)) => throw null; - public ManyToOneType(string className) : base(default(string), default(string), default(bool), default(bool)) => throw null; public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null; public override void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; @@ -33085,16 +28679,14 @@ namespace NHibernate public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null; public override bool UseLHSPrimaryKey { get => throw null; } } - - // Generated from `NHibernate.Type.MetaType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class MetaType : NHibernate.Type.AbstractType { + public MetaType(System.Collections.Generic.IDictionary values, NHibernate.Type.IType baseType) => throw null; public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override int GetColumnSpan(NHibernate.Engine.IMapping mapping) => throw null; public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsMutable { get => throw null; } - public MetaType(System.Collections.Generic.IDictionary values, NHibernate.Type.IType baseType) => throw null; public override string Name { get => throw null; } public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; @@ -33111,53 +28703,49 @@ namespace NHibernate public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; } - - // Generated from `NHibernate.Type.MutableType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class MutableType : NHibernate.Type.NullableType { + protected MutableType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public abstract object DeepCopyNotNull(object value); - public override bool IsMutable { get => throw null; } - protected MutableType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public override sealed bool IsMutable { get => throw null; } public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null; public override System.Threading.Tasks.Task ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Type.NullableType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class NullableType : NHibernate.Type.AbstractType { + protected NullableType(NHibernate.SqlTypes.SqlType sqlType) => throw null; public override bool Equals(object obj) => throw null; public virtual object FromStringValue(string xml) => throw null; - public abstract object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session); public abstract object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session); - public override int GetColumnSpan(NHibernate.Engine.IMapping session) => throw null; + public abstract object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session); + public override sealed int GetColumnSpan(NHibernate.Engine.IMapping session) => throw null; public override int GetHashCode() => throw null; public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override sealed object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public virtual object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; - public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; - public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; - public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override sealed object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; + public override sealed System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public override sealed System.Threading.Tasks.Task NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null; - public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override sealed void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - protected NullableType(NHibernate.SqlTypes.SqlType sqlType) => throw null; + public override sealed System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public abstract void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session); public virtual NHibernate.SqlTypes.SqlType SqlType { get => throw null; } - public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null; + public override sealed NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null; public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public virtual string ToString(object val) => throw null; + public override string ToString() => throw null; } - - // Generated from `NHibernate.Type.OneToOneType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class OneToOneType : NHibernate.Type.EntityType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IAssociationType + public class OneToOneType : NHibernate.Type.EntityType, NHibernate.Type.IAssociationType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public OneToOneType(string referencedEntityName, NHibernate.Type.ForeignKeyDirection foreignKeyType, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, string entityName, string propertyName) : base(default(string), default(string), default(bool), default(bool)) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override NHibernate.Type.ForeignKeyDirection ForeignKeyDirection { get => throw null; } @@ -33166,10 +28754,10 @@ namespace NHibernate public override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsAlwaysDirtyChecked { get => throw null; } - public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsDirty(object old, object current, NHibernate.Engine.ISessionImplementor session) => throw null; - public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.Task IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsModified(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task IsModifiedAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override bool IsNull(object owner, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -33179,76 +28767,64 @@ namespace NHibernate public override void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public OneToOneType(string referencedEntityName, NHibernate.Type.ForeignKeyDirection foreignKeyType, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, string entityName, string propertyName) : base(default(string), default(string), default(bool), default(bool)) => throw null; public override string PropertyName { get => throw null; } public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null; public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null; public override bool UseLHSPrimaryKey { get => throw null; } } - - // Generated from `NHibernate.Type.PersistentEnumType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class PersistentEnumType : NHibernate.Type.AbstractEnumType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public PersistentEnumType(System.Type enumClass) : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override bool Equals(object obj) => throw null; public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public static NHibernate.Type.PersistentEnumType.IEnumConverter GetEnumCoverter(System.Type enumClass) => throw null; public override int GetHashCode() => throw null; public virtual object GetInstance(object code) => throw null; public virtual object GetValue(object code) => throw null; - // Generated from `NHibernate.Type.PersistentEnumType+IEnumConverter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEnumConverter { NHibernate.SqlTypes.SqlType SqlType { get; } object ToEnumValue(object value); object ToObject(System.Type enumClass, object code); } - - public override string Name { get => throw null; } public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; - public PersistentEnumType(System.Type enumClass) : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null; public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object value) => throw null; } - - // Generated from `NHibernate.Type.PrimitiveType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public abstract class PrimitiveType : NHibernate.Type.ImmutableType, NHibernate.Type.ILiteralType { + protected PrimitiveType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public abstract object DefaultValue { get; } public abstract string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect); public abstract System.Type PrimitiveClass { get; } - protected PrimitiveType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; } - - // Generated from `NHibernate.Type.SByteType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SByteType : NHibernate.Type.PrimitiveType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler + public class SByteType : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType { public System.Collections.IComparer Comparator { get => throw null; } + public SByteType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type PrimitiveClass { get => throw null; } public override System.Type ReturnedClass { get => throw null; } - public SByteType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public object StringToObject(string xml) => throw null; } - - // Generated from `NHibernate.Type.SerializableType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SerializableType : NHibernate.Type.MutableType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; @@ -33256,7 +28832,7 @@ namespace NHibernate public override object DeepCopyNotNull(object value) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public object FromBytes(System.Byte[] bytes) => throw null; + public object FromBytes(byte[] bytes) => throw null; public override object FromStringValue(string xml) => throw null; public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; @@ -33264,69 +28840,55 @@ namespace NHibernate public override bool IsEqual(object x, object y) => throw null; public override string Name { get => throw null; } public override System.Type ReturnedClass { get => throw null; } - internal SerializableType(System.Type serializableClass, NHibernate.SqlTypes.BinarySqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - internal SerializableType(System.Type serializableClass) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - internal SerializableType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object value) => throw null; + internal SerializableType() : base(default(NHibernate.SqlTypes.SqlType)) { } } - - // Generated from `NHibernate.Type.SerializationException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SerializationException : NHibernate.HibernateException { - public SerializationException(string message, System.Exception e) => throw null; - public SerializationException(string message) => throw null; public SerializationException() => throw null; + public SerializationException(string message) => throw null; + public SerializationException(string message, System.Exception e) => throw null; protected SerializationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Type.SingleType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SingleType : NHibernate.Type.PrimitiveType { + public SingleType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public SingleType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type PrimitiveClass { get => throw null; } public override System.Type ReturnedClass { get => throw null; } public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - public SingleType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - public SingleType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public object StringToObject(string xml) => throw null; } - - // Generated from `NHibernate.Type.SpecialOneToOneType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SpecialOneToOneType : NHibernate.Type.OneToOneType { + public SpecialOneToOneType(string referencedEntityName, NHibernate.Type.ForeignKeyDirection foreignKeyType, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, string entityName, string propertyName) : base(default(string), default(NHibernate.Type.ForeignKeyDirection), default(string), default(bool), default(bool), default(string), default(string)) => throw null; public override int GetColumnSpan(NHibernate.Engine.IMapping mapping) => throw null; public override int GetOwnerColumnSpan(NHibernate.Engine.IMapping mapping) => throw null; public override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; - public SpecialOneToOneType(string referencedEntityName, NHibernate.Type.ForeignKeyDirection foreignKeyType, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, string entityName, string propertyName) : base(default(string), default(NHibernate.Type.ForeignKeyDirection), default(string), default(bool), default(bool), default(string), default(string)) => throw null; public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null; public override bool UseLHSPrimaryKey { get => throw null; } } - - // Generated from `NHibernate.Type.StringClobType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class StringClobType : NHibernate.Type.StringType { public override string Name { get => throw null; } } - - // Generated from `NHibernate.Type.StringType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class StringType : NHibernate.Type.AbstractStringType { public override string Name { get => throw null; } - internal StringType(NHibernate.SqlTypes.StringSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - internal StringType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + internal StringType() : base(default(NHibernate.SqlTypes.SqlType)) { } } - - // Generated from `NHibernate.Type.TicksType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TicksType : NHibernate.Type.AbstractDateTimeType { + public TicksType() => throw null; public override object FromStringValue(string xml) => throw null; protected override System.DateTime GetDateTime(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } @@ -33335,19 +28897,18 @@ namespace NHibernate public override System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public object StringToObject(string xml) => throw null; - public TicksType() => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; } - - // Generated from `NHibernate.Type.TimeAsTimeSpanType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TimeAsTimeSpanType : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler { public System.Collections.IComparer Comparator { get => throw null; } + public TimeAsTimeSpanType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public TimeAsTimeSpanType(NHibernate.SqlTypes.TimeSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; @@ -33358,20 +28919,17 @@ namespace NHibernate public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public object StringToObject(string xml) => throw null; - public TimeAsTimeSpanType(NHibernate.SqlTypes.TimeSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - public TimeAsTimeSpanType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; } - - // Generated from `NHibernate.Type.TimeSpanType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TimeSpanType : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.ICacheAssembler + public class TimeSpanType : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType { public System.Collections.IComparer Comparator { get => throw null; } + public TimeSpanType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; public System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; @@ -33382,18 +28940,24 @@ namespace NHibernate public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public object StringToObject(string xml) => throw null; - public TimeSpanType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; } - - // Generated from `NHibernate.Type.TimeType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TimeType : NHibernate.Type.PrimitiveType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.ICacheAssembler + public class TimestampType : NHibernate.Type.AbstractDateTimeType { + public TimestampType() => throw null; + public override string Name { get => throw null; } + public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; + public override string ToString(object val) => throw null; + } + public class TimeType : NHibernate.Type.PrimitiveType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType + { + public TimeType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public TimeType(NHibernate.SqlTypes.TimeSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override int GetHashCode(object x) => throw null; public override bool IsEqual(object x, object y) => throw null; public override string Name { get => throw null; } @@ -33402,36 +28966,21 @@ namespace NHibernate public override System.Type ReturnedClass { get => throw null; } public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public object StringToObject(string xml) => throw null; - public TimeType(NHibernate.SqlTypes.TimeSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - public TimeType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; } - - // Generated from `NHibernate.Type.TimestampType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class TimestampType : NHibernate.Type.AbstractDateTimeType - { - public override string Name { get => throw null; } - public TimestampType() => throw null; - public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; - public override string ToString(object val) => throw null; - } - - // Generated from `NHibernate.Type.TrueFalseType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TrueFalseType : NHibernate.Type.CharBooleanType { - protected override string FalseString { get => throw null; } + protected override sealed string FalseString { get => throw null; } public override string Name { get => throw null; } - internal TrueFalseType() : base(default(NHibernate.SqlTypes.AnsiStringFixedLengthSqlType)) => throw null; - protected override string TrueString { get => throw null; } + protected override sealed string TrueString { get => throw null; } + internal TrueFalseType() : base(default(NHibernate.SqlTypes.AnsiStringFixedLengthSqlType)) { } } - - // Generated from `NHibernate.Type.TypeFactory` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class TypeFactory { public static NHibernate.Type.CollectionType Array(string role, string propertyRef, System.Type elementClass) => throw null; - public static NHibernate.Type.IType Basic(string name, System.Collections.Generic.IDictionary parameters) => throw null; public static NHibernate.Type.IType Basic(string name) => throw null; + public static NHibernate.Type.IType Basic(string name, System.Collections.Generic.IDictionary parameters) => throw null; public static void ClearCustomRegistrations() => throw null; public static NHibernate.Type.CollectionType CustomCollection(string typeName, System.Collections.Generic.IDictionary typeParameters, string role, string propertyRef) => throw null; public static string[] EmptyAliases; @@ -33446,43 +28995,35 @@ namespace NHibernate public static NHibernate.Type.CollectionType GenericSortedSet(string role, string propertyRef, object comparer, System.Type elementClass) => throw null; public static NHibernate.Type.NullableType GetAnsiStringType(int length) => throw null; public static NHibernate.Type.NullableType GetBinaryType(int length) => throw null; - public static NHibernate.Type.NullableType GetDateTime2Type(System.Byte fractionalSecondsPrecision) => throw null; - public static NHibernate.Type.NullableType GetDateTimeOffsetType(System.Byte fractionalSecondsPrecision) => throw null; - public static NHibernate.Type.NullableType GetDateTimeType(System.Byte fractionalSecondsPrecision) => throw null; + public static NHibernate.Type.NullableType GetDateTime2Type(byte fractionalSecondsPrecision) => throw null; + public static NHibernate.Type.NullableType GetDateTimeOffsetType(byte fractionalSecondsPrecision) => throw null; + public static NHibernate.Type.NullableType GetDateTimeType(byte fractionalSecondsPrecision) => throw null; public static NHibernate.Type.IType GetDefaultTypeFor(System.Type type) => throw null; - public static NHibernate.Type.NullableType GetLocalDateTimeType(System.Byte fractionalSecondsPrecision) => throw null; - // Generated from `NHibernate.Type.TypeFactory+GetNullableTypeWithLengthOrScale` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public static NHibernate.Type.NullableType GetLocalDateTimeType(byte fractionalSecondsPrecision) => throw null; public delegate NHibernate.Type.NullableType GetNullableTypeWithLengthOrScale(int lengthOrScale); - - - // Generated from `NHibernate.Type.TypeFactory+GetNullableTypeWithPrecision` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public delegate NHibernate.Type.NullableType GetNullableTypeWithPrecision(System.Byte precision, System.Byte scale); - - - public static NHibernate.Type.NullableType GetSerializableType(int length) => throw null; - public static NHibernate.Type.NullableType GetSerializableType(System.Type serializableType, int length) => throw null; + public delegate NHibernate.Type.NullableType GetNullableTypeWithPrecision(byte precision, byte scale); public static NHibernate.Type.NullableType GetSerializableType(System.Type serializableType) => throw null; + public static NHibernate.Type.NullableType GetSerializableType(System.Type serializableType, int length) => throw null; + public static NHibernate.Type.NullableType GetSerializableType(int length) => throw null; public static NHibernate.Type.NullableType GetStringType(int length) => throw null; - public static NHibernate.Type.NullableType GetTimeAsTimeSpanType(System.Byte fractionalSecondsPrecision) => throw null; - public static NHibernate.Type.NullableType GetTimeType(System.Byte fractionalSecondsPrecision) => throw null; + public static NHibernate.Type.NullableType GetTimeAsTimeSpanType(byte fractionalSecondsPrecision) => throw null; + public static NHibernate.Type.NullableType GetTimeType(byte fractionalSecondsPrecision) => throw null; public static NHibernate.Type.NullableType GetTypeType(int length) => throw null; - public static NHibernate.Type.NullableType GetUtcDateTimeType(System.Byte fractionalSecondsPrecision) => throw null; - public static NHibernate.Type.IType HeuristicType(string typeName, System.Collections.Generic.IDictionary parameters, int? length) => throw null; - public static NHibernate.Type.IType HeuristicType(string typeName, System.Collections.Generic.IDictionary parameters) => throw null; + public static NHibernate.Type.NullableType GetUtcDateTimeType(byte fractionalSecondsPrecision) => throw null; public static NHibernate.Type.IType HeuristicType(string typeName) => throw null; public static NHibernate.Type.IType HeuristicType(System.Type type) => throw null; + public static NHibernate.Type.IType HeuristicType(string typeName, System.Collections.Generic.IDictionary parameters) => throw null; + public static NHibernate.Type.IType HeuristicType(string typeName, System.Collections.Generic.IDictionary parameters, int? length) => throw null; public static void InjectParameters(object type, System.Collections.Generic.IDictionary parameters) => throw null; + public static NHibernate.Type.EntityType ManyToOne(string persistentClass) => throw null; + public static NHibernate.Type.EntityType ManyToOne(string persistentClass, bool lazy) => throw null; public static NHibernate.Type.EntityType ManyToOne(string persistentClass, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, bool ignoreNotFound, bool isLogicalOneToOne, string propertyName) => throw null; public static NHibernate.Type.EntityType ManyToOne(string persistentClass, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, bool ignoreNotFound, bool isLogicalOneToOne) => throw null; - public static NHibernate.Type.EntityType ManyToOne(string persistentClass, bool lazy) => throw null; - public static NHibernate.Type.EntityType ManyToOne(string persistentClass) => throw null; public static NHibernate.Type.EntityType OneToOne(string persistentClass, NHibernate.Type.ForeignKeyDirection foreignKeyType, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, string entityName, string propertyName) => throw null; - public static void RegisterType(System.Type systemType, NHibernate.Type.IType nhibernateType, System.Collections.Generic.IEnumerable aliases, NHibernate.Type.TypeFactory.GetNullableTypeWithPrecision ctorPrecision) => throw null; - public static void RegisterType(System.Type systemType, NHibernate.Type.IType nhibernateType, System.Collections.Generic.IEnumerable aliases, NHibernate.Type.TypeFactory.GetNullableTypeWithLengthOrScale ctorLengthOrScale) => throw null; public static void RegisterType(System.Type systemType, NHibernate.Type.IType nhibernateType, System.Collections.Generic.IEnumerable aliases) => throw null; + public static void RegisterType(System.Type systemType, NHibernate.Type.IType nhibernateType, System.Collections.Generic.IEnumerable aliases, NHibernate.Type.TypeFactory.GetNullableTypeWithLengthOrScale ctorLengthOrScale) => throw null; + public static void RegisterType(System.Type systemType, NHibernate.Type.IType nhibernateType, System.Collections.Generic.IEnumerable aliases, NHibernate.Type.TypeFactory.GetNullableTypeWithPrecision ctorPrecision) => throw null; } - - // Generated from `NHibernate.Type.TypeHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class TypeHelper { public static object[] Assemble(object[] row, NHibernate.Type.ICacheAssembler[] types, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; @@ -33501,15 +29042,13 @@ namespace NHibernate public static int[] FindModified(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, NHibernate.Engine.ISessionImplementor session) => throw null; public static System.Threading.Tasks.Task FindModifiedAsync(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, bool anyUninitializedProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task FindModifiedAsync(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public static object[] Replace(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null; public static object[] Replace(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null; + public static object[] Replace(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null; public static object[] ReplaceAssociations(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null; public static System.Threading.Tasks.Task ReplaceAssociationsAsync(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null; - public static System.Threading.Tasks.Task ReplaceAsync(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task ReplaceAsync(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task ReplaceAsync(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null; } - - // Generated from `NHibernate.Type.TypeType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TypeType : NHibernate.Type.ImmutableType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; @@ -33517,47 +29056,24 @@ namespace NHibernate public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public override System.Type ReturnedClass { get => throw null; } public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override NHibernate.SqlTypes.SqlType SqlType { get => throw null; } public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object value) => throw null; - internal TypeType(NHibernate.SqlTypes.StringSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - internal TypeType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + internal TypeType() : base(default(NHibernate.SqlTypes.SqlType)) { } } - - // Generated from `NHibernate.Type.UInt16Type` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UInt16Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler + public class UInt16Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IVersionType { public System.Collections.IComparer Comparator { get => throw null; } - public override object DefaultValue { get => throw null; } - public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - public override string Name { get => throw null; } - public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; - public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; - public override System.Type PrimitiveClass { get => throw null; } - public override System.Type ReturnedClass { get => throw null; } - public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; - public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; - public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; - public object StringToObject(string xml) => throw null; public UInt16Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - } - - // Generated from `NHibernate.Type.UInt32Type` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UInt32Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler - { - public System.Collections.IComparer Comparator { get => throw null; } public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; @@ -33568,17 +29084,15 @@ namespace NHibernate public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public object StringToObject(string xml) => throw null; + } + public class UInt32Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IVersionType + { + public System.Collections.IComparer Comparator { get => throw null; } public UInt32Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - } - - // Generated from `NHibernate.Type.UInt64Type` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UInt64Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IVersionType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler - { - public System.Collections.IComparer Comparator { get => throw null; } public override object DefaultValue { get => throw null; } public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; @@ -33589,19 +29103,37 @@ namespace NHibernate public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public object StringToObject(string xml) => throw null; - public UInt64Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; } - - // Generated from `NHibernate.Type.UriType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UriType : NHibernate.Type.ImmutableType, NHibernate.Type.IType, NHibernate.Type.ILiteralType, NHibernate.Type.IIdentifierType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.ICacheAssembler + public class UInt64Type : NHibernate.Type.PrimitiveType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IVersionType + { + public System.Collections.IComparer Comparator { get => throw null; } + public UInt64Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public override object DefaultValue { get => throw null; } + public override object FromStringValue(string xml) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; + public override string Name { get => throw null; } + public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null; + public virtual System.Threading.Tasks.Task NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; + public override System.Type PrimitiveClass { get => throw null; } + public override System.Type ReturnedClass { get => throw null; } + public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null; + public virtual System.Threading.Tasks.Task SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null; + public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public object StringToObject(string xml) => throw null; + } + public class UriType : NHibernate.Type.ImmutableType, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.IType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public UriType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public UriType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override string Name { get => throw null; } public string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null; public override System.Type ReturnedClass { get => throw null; } @@ -33609,100 +29141,103 @@ namespace NHibernate public object StringToObject(string xml) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; - public UriType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - public UriType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; } - - // Generated from `NHibernate.Type.UtcDateTimeNoMsType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class UtcDateTimeNoMsType : NHibernate.Type.DateTimeNoMsType { + public UtcDateTimeNoMsType() => throw null; protected override System.DateTimeKind Kind { get => throw null; } public override string Name { get => throw null; } - public UtcDateTimeNoMsType() => throw null; } - - // Generated from `NHibernate.Type.UtcDateTimeType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class UtcDateTimeType : NHibernate.Type.DateTimeType { + public UtcDateTimeType() => throw null; + public UtcDateTimeType(NHibernate.SqlTypes.DateTimeSqlType sqlType) => throw null; protected override System.DateTimeKind Kind { get => throw null; } public override string Name { get => throw null; } - public UtcDateTimeType(NHibernate.SqlTypes.DateTimeSqlType sqlType) => throw null; - public UtcDateTimeType() => throw null; } - - // Generated from `NHibernate.Type.UtcDbTimestampType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class UtcDbTimestampType : NHibernate.Type.DbTimestampType { + public UtcDbTimestampType() => throw null; protected override string GetCurrentTimestampSelectString(NHibernate.Dialect.Dialect dialect) => throw null; protected override System.DateTimeKind Kind { get => throw null; } public override string Name { get => throw null; } protected override bool SupportsCurrentTimestampSelection(NHibernate.Dialect.Dialect dialect) => throw null; - public UtcDbTimestampType() => throw null; } - - // Generated from `NHibernate.Type.UtcTicksType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class UtcTicksType : NHibernate.Type.TicksType { + public UtcTicksType() => throw null; protected override System.DateTimeKind Kind { get => throw null; } public override string Name { get => throw null; } - public UtcTicksType() => throw null; } - - // Generated from `NHibernate.Type.XDocType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class XDocType : NHibernate.Type.MutableType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public XDocType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public XDocType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DeepCopyNotNull(object value) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsEqual(object x, object y) => throw null; public override string Name { get => throw null; } public override System.Type ReturnedClass { get => throw null; } public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; - public XDocType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - public XDocType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; } - - // Generated from `NHibernate.Type.XmlDocType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class XmlDocType : NHibernate.Type.MutableType { public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; + public XmlDocType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; + public XmlDocType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; public override object DeepCopyNotNull(object value) => throw null; public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null; public override System.Threading.Tasks.Task DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null; public override object FromStringValue(string xml) => throw null; - public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null; + public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null; public override bool IsEqual(object x, object y) => throw null; public override string Name { get => throw null; } public override System.Type ReturnedClass { get => throw null; } public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null; public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null; public override string ToString(object val) => throw null; - public XmlDocType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null; - public XmlDocType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null; } - - // Generated from `NHibernate.Type.YesNoType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class YesNoType : NHibernate.Type.CharBooleanType { - protected override string FalseString { get => throw null; } - public override string Name { get => throw null; } - protected override string TrueString { get => throw null; } public YesNoType() : base(default(NHibernate.SqlTypes.AnsiStringFixedLengthSqlType)) => throw null; + protected override sealed string FalseString { get => throw null; } + public override string Name { get => throw null; } + protected override sealed string TrueString { get => throw null; } } - + } + public class TypeMismatchException : NHibernate.HibernateException + { + public TypeMismatchException(string message) => throw null; + public TypeMismatchException(string message, System.Exception inner) => throw null; + protected TypeMismatchException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class UnresolvableObjectException : NHibernate.HibernateException + { + public UnresolvableObjectException(object identifier, System.Type clazz) => throw null; + public UnresolvableObjectException(object identifier, string entityName) => throw null; + public UnresolvableObjectException(string message, object identifier, System.Type clazz) => throw null; + public UnresolvableObjectException(string message, object identifier, string entityName) => throw null; + protected UnresolvableObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string EntityName { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public object Identifier { get => throw null; } + public override string Message { get => throw null; } + public System.Type PersistentClass { get => throw null; } + public static void ThrowIfNull(object o, object id, System.Type clazz) => throw null; + public static void ThrowIfNull(object o, object id, string entityName) => throw null; } namespace UserTypes { - // Generated from `NHibernate.UserTypes.ICompositeUserType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ICompositeUserType { object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner); @@ -33720,40 +29255,30 @@ namespace NHibernate System.Type ReturnedClass { get; } void SetPropertyValue(object component, int property, object value); } - - // Generated from `NHibernate.UserTypes.IEnhancedUserType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IEnhancedUserType : NHibernate.UserTypes.IUserType { object FromXMLString(string xml); string ObjectToSQLString(object value); string ToXMLString(object value); } - - // Generated from `NHibernate.UserTypes.ILoggableUserType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface ILoggableUserType { string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory); } - - // Generated from `NHibernate.UserTypes.IParameterizedType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IParameterizedType { void SetParameterValues(System.Collections.Generic.IDictionary parameters); } - - // Generated from `NHibernate.UserTypes.IUserCollectionType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IUserCollectionType { bool Contains(object collection, object entity); System.Collections.IEnumerable GetElements(object collection); object IndexOf(object collection, object entity); - object Instantiate(int anticipatedSize); NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister); + object Instantiate(int anticipatedSize); object ReplaceElements(object original, object target, NHibernate.Persister.Collection.ICollectionPersister persister, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session); NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection); } - - // Generated from `NHibernate.UserTypes.IUserType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public interface IUserType { object Assemble(object cached, object owner); @@ -33768,42 +29293,36 @@ namespace NHibernate System.Type ReturnedType { get; } NHibernate.SqlTypes.SqlType[] SqlTypes { get; } } - - // Generated from `NHibernate.UserTypes.IUserVersionType` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public interface IUserVersionType : System.Collections.IComparer, NHibernate.UserTypes.IUserType + public interface IUserVersionType : NHibernate.UserTypes.IUserType, System.Collections.IComparer { object Next(object current, NHibernate.Engine.ISessionImplementor session); object Seed(NHibernate.Engine.ISessionImplementor session); } - } namespace Util { - // Generated from `NHibernate.Util.ADOExceptionReporter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ADOExceptionReporter { - public const string DefaultExceptionMsg = default; - public static void LogExceptions(System.Exception ex, string message) => throw null; + public static string DefaultExceptionMsg; public static void LogExceptions(System.Exception ex) => throw null; + public static void LogExceptions(System.Exception ex, string message) => throw null; } - - // Generated from `NHibernate.Util.ArrayHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ArrayHelper { - public static void AddAll(System.Collections.Generic.IDictionary to, System.Collections.Generic.IDictionary from) => throw null; - public static void AddAll(System.Collections.Generic.IList to, System.Collections.Generic.IList from) => throw null; public static void AddAll(System.Collections.IList to, System.Collections.IList from) => throw null; + public static void AddAll(System.Collections.Generic.IList to, System.Collections.Generic.IList from) => throw null; + public static void AddAll(System.Collections.Generic.IDictionary to, System.Collections.Generic.IDictionary from) => throw null; public static System.Collections.Generic.IDictionary AddOrOverride(this System.Collections.Generic.IDictionary destination, System.Collections.Generic.IDictionary sourceOverride) => throw null; public static bool ArrayEquals(T[] a, T[] b) => throw null; - public static bool ArrayEquals(System.Byte[] a, System.Byte[] b) => throw null; + public static bool ArrayEquals(byte[] a, byte[] b) => throw null; public static int ArrayGetHashCode(T[] array) => throw null; public static int CountTrue(bool[] array) => throw null; public static bool[] EmptyBoolArray { get => throw null; } public static int[] EmptyIntArray { get => throw null; } public static object[] EmptyObjectArray { get => throw null; } public static bool[] False; - public static void Fill(T[] array, T value) => throw null; public static T[] Fill(T value, int length) => throw null; + public static void Fill(T[] array, T value) => throw null; public static int[] GetBatchSizes(int maxBatchSize) => throw null; public static bool IsAllFalse(bool[] array) => throw null; public static bool IsAllNegative(int[] array) => throw null; @@ -33813,8 +29332,6 @@ namespace NHibernate public static string ToString(object[] array) => throw null; public static bool[] True; } - - // Generated from `NHibernate.Util.AssemblyQualifiedTypeName` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class AssemblyQualifiedTypeName { public string Assembly { get => throw null; } @@ -33825,43 +29342,35 @@ namespace NHibernate public override string ToString() => throw null; public string Type { get => throw null; } } - - // Generated from `NHibernate.Util.AsyncLock` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class AsyncLock + public sealed class AsyncLock { public AsyncLock() => throw null; public System.IDisposable Lock() => throw null; public System.Threading.Tasks.Task LockAsync() => throw null; } - - // Generated from `NHibernate.Util.CollectionHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class CollectionHelper { - public static bool BagEquals(System.Collections.Generic.IEnumerable c1, System.Collections.Generic.IEnumerable c2, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static bool BagEquals(System.Collections.Generic.IEnumerable c1, System.Collections.Generic.IEnumerable c2) => throw null; - public static bool CollectionEquals(System.Collections.Generic.ICollection c1, System.Collections.Generic.ICollection c2) => throw null; + public static bool BagEquals(System.Collections.Generic.IEnumerable c1, System.Collections.Generic.IEnumerable c2, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static bool CollectionEquals(System.Collections.ICollection c1, System.Collections.ICollection c2) => throw null; - public static System.Collections.Generic.IDictionary CreateCaseInsensitiveHashtable(System.Collections.Generic.IDictionary dictionary) => throw null; + public static bool CollectionEquals(System.Collections.Generic.ICollection c1, System.Collections.Generic.ICollection c2) => throw null; public static System.Collections.Generic.IDictionary CreateCaseInsensitiveHashtable() => throw null; - public static bool DictionaryEquals(System.Collections.Generic.IDictionary m1, System.Collections.Generic.IDictionary m2, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public static bool DictionaryEquals(System.Collections.Generic.IDictionary m1, System.Collections.Generic.IDictionary m2) => throw null; + public static System.Collections.Generic.IDictionary CreateCaseInsensitiveHashtable(System.Collections.Generic.IDictionary dictionary) => throw null; public static bool DictionaryEquals(System.Collections.IDictionary a, System.Collections.IDictionary b) => throw null; + public static bool DictionaryEquals(System.Collections.Generic.IDictionary m1, System.Collections.Generic.IDictionary m2) => throw null; + public static bool DictionaryEquals(System.Collections.Generic.IDictionary m1, System.Collections.Generic.IDictionary m2, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static System.Collections.ICollection EmptyCollection; public static System.Collections.Generic.IDictionary EmptyDictionary() => throw null; public static System.Collections.IEnumerable EmptyEnumerable; - // Generated from `NHibernate.Util.CollectionHelper+EmptyEnumerableClass<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EmptyEnumerableClass : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + public class EmptyEnumerableClass : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public EmptyEnumerableClass() => throw null; - public System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; } - - public static System.Collections.IList EmptyList; public static System.Collections.IDictionary EmptyMap; - // Generated from `NHibernate.Util.CollectionHelper+EmptyMapClass<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EmptyMapClass : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + public class EmptyMapClass : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { public void Add(TKey key, TValue value) => throw null; public void Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -33871,40 +29380,34 @@ namespace NHibernate public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } public EmptyMapClass() => throw null; - public System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; public bool IsReadOnly { get => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } public System.Collections.Generic.ICollection Keys { get => throw null; } public bool Remove(TKey key) => throw null; public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public TValue this[TKey key] { get => throw null; set { } } public bool TryGetValue(TKey key, out TValue value) => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } } - - - public static int GetHashCode(System.Collections.Generic.IEnumerable coll, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public static int GetHashCode(System.Collections.Generic.IEnumerable coll) => throw null; public static int GetHashCode(System.Collections.IEnumerable coll) => throw null; - public static bool SequenceEquals(System.Collections.Generic.IEnumerable c1, System.Collections.Generic.IEnumerable c2, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static int GetHashCode(System.Collections.Generic.IEnumerable coll) => throw null; + public static int GetHashCode(System.Collections.Generic.IEnumerable coll, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static bool SequenceEquals(System.Collections.Generic.IEnumerable c1, System.Collections.Generic.IEnumerable c2) => throw null; + public static bool SequenceEquals(System.Collections.Generic.IEnumerable c1, System.Collections.Generic.IEnumerable c2, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static bool SetEquals(System.Collections.Generic.ISet s1, System.Collections.Generic.ISet s2) => throw null; } - - // Generated from `NHibernate.Util.CollectionPrinter` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class CollectionPrinter { - public static string ToString(System.Collections.IEnumerable elements) => throw null; public static string ToString(System.Collections.IDictionary dictionary) => throw null; public static string ToString(System.Collections.Generic.IDictionary dictionary) => throw null; + public static string ToString(System.Collections.IEnumerable elements) => throw null; } - - // Generated from `NHibernate.Util.DynamicComponent` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class DynamicComponent : System.Dynamic.DynamicObject, System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IDeserializationCallback, System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.ICollection, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + public sealed class DynamicComponent : System.Dynamic.DynamicObject, System.Collections.IDictionary, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IDeserializationCallback { void System.Collections.IDictionary.Add(object key, object value) => throw null; - void System.Collections.Generic.IDictionary.Add(string key, object value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; + void System.Collections.Generic.IDictionary.Add(string key, object value) => throw null; void System.Collections.IDictionary.Clear() => throw null; void System.Collections.Generic.ICollection>.Clear() => throw null; bool System.Collections.IDictionary.Contains(object key) => throw null; @@ -33916,22 +29419,22 @@ namespace NHibernate int System.Collections.Generic.ICollection>.Count { get => throw null; } public DynamicComponent() => throw null; public override System.Collections.Generic.IEnumerable GetDynamicMemberNames() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; bool System.Collections.IDictionary.IsFixedSize { get => throw null; } bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.Generic.ICollection>.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } - object System.Collections.Generic.IDictionary.this[string key] { get => throw null; set => throw null; } + object System.Collections.IDictionary.this[object key] { get => throw null; set { } } + object System.Collections.Generic.IDictionary.this[string key] { get => throw null; set { } } System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get => throw null; } void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; void System.Collections.IDictionary.Remove(object key) => throw null; - bool System.Collections.Generic.IDictionary.Remove(string key) => throw null; bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; + bool System.Collections.Generic.IDictionary.Remove(string key) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } public override bool TryDeleteIndex(System.Dynamic.DeleteIndexBinder binder, object[] indexes) => throw null; public override bool TryDeleteMember(System.Dynamic.DeleteMemberBinder binder) => throw null; @@ -33944,52 +29447,40 @@ namespace NHibernate System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } } - - // Generated from `NHibernate.Util.EnumerableExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class EnumerableExtensions + public static partial class EnumerableExtensions { public static bool Any(this System.Collections.IEnumerable source) => throw null; public static object First(this System.Collections.IEnumerable source) => throw null; public static object FirstOrNull(this System.Collections.IEnumerable source) => throw null; public static void ForEach(this System.Collections.Generic.IEnumerable query, System.Action method) => throw null; } - - // Generated from `NHibernate.Util.EnumeratorAdapter<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class EnumeratorAdapter : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + public class EnumeratorAdapter : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { + public EnumeratorAdapter(System.Collections.IEnumerator wrapped) => throw null; public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - public EnumeratorAdapter(System.Collections.IEnumerator wrapped) => throw null; public bool MoveNext() => throw null; public void Reset() => throw null; } - - // Generated from `NHibernate.Util.EqualsHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class EqualsHelper { public static bool Equals(object x, object y) => throw null; } - - // Generated from `NHibernate.Util.ExpressionsHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ExpressionsHelper { public static System.Reflection.MemberInfo DecodeMemberAccessExpression(System.Linq.Expressions.Expression> expression) => throw null; } - - // Generated from `NHibernate.Util.FilterHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class FilterHelper + public sealed class FilterHelper { public FilterHelper(System.Collections.Generic.IDictionary filters, NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry sqlFunctionRegistry) => throw null; public static System.Collections.Generic.IDictionary GetEnabledForManyToOne(System.Collections.Generic.IDictionary enabledFilters) => throw null; public bool IsAffectedBy(System.Collections.Generic.IDictionary enabledFilters) => throw null; - public void Render(System.Text.StringBuilder buffer, string defaultAlias, System.Collections.Generic.IDictionary propMap, System.Collections.Generic.IDictionary enabledFilters) => throw null; - public void Render(System.Text.StringBuilder buffer, string alias, System.Collections.Generic.IDictionary enabledFilters) => throw null; public string Render(string alias, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public void Render(System.Text.StringBuilder buffer, string alias, System.Collections.Generic.IDictionary enabledFilters) => throw null; + public void Render(System.Text.StringBuilder buffer, string defaultAlias, System.Collections.Generic.IDictionary propMap, System.Collections.Generic.IDictionary enabledFilters) => throw null; } - - // Generated from `NHibernate.Util.IdentityMap` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentityMap : System.Runtime.Serialization.IDeserializationCallback, System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.ICollection + public sealed class IdentityMap : System.Collections.IDictionary, System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback { public void Add(object key, object val) => throw null; public void Clear() => throw null; @@ -33999,24 +29490,22 @@ namespace NHibernate public int Count { get => throw null; } public static System.Collections.ICollection Entries(System.Collections.IDictionary map) => throw null; public System.Collections.IList EntryList { get => throw null; } - public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; public static System.Collections.IDictionary Instantiate(int size) => throw null; public static System.Collections.IDictionary InstantiateSequenced(int size) => throw null; public static System.Collections.IDictionary Invert(System.Collections.IDictionary map) => throw null; public bool IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public object this[object key] { get => throw null; set => throw null; } public System.Collections.ICollection Keys { get => throw null; } public void OnDeserialization(object sender) => throw null; public void Remove(object key) => throw null; public object SyncRoot { get => throw null; } + public object this[object key] { get => throw null; set { } } public System.Collections.ICollection Values { get => throw null; } } - - // Generated from `NHibernate.Util.IdentitySet` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class IdentitySet : System.Collections.IEnumerable, System.Collections.Generic.ISet, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection + public class IdentitySet : System.Collections.Generic.ISet, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { void System.Collections.Generic.ICollection.Add(object item) => throw null; public bool Add(object o) => throw null; @@ -34024,11 +29513,11 @@ namespace NHibernate public bool Contains(object o) => throw null; public void CopyTo(object[] array, int index) => throw null; public int Count { get => throw null; } + public IdentitySet() => throw null; + public IdentitySet(System.Collections.Generic.IEnumerable members) => throw null; public void ExceptWith(System.Collections.Generic.IEnumerable other) => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public IdentitySet(System.Collections.Generic.IEnumerable members) => throw null; - public IdentitySet() => throw null; public void IntersectWith(System.Collections.Generic.IEnumerable other) => throw null; public bool IsProperSubsetOf(System.Collections.Generic.IEnumerable other) => throw null; public bool IsProperSupersetOf(System.Collections.Generic.IEnumerable other) => throw null; @@ -34041,101 +29530,85 @@ namespace NHibernate public void SymmetricExceptWith(System.Collections.Generic.IEnumerable other) => throw null; public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; } - - // Generated from `NHibernate.Util.JoinedEnumerable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class JoinedEnumerable : System.Collections.IEnumerable { - public System.Collections.IEnumerator GetEnumerator() => throw null; public JoinedEnumerable(System.Collections.IEnumerable[] enumerables) => throw null; - public JoinedEnumerable(System.Collections.IEnumerable first, System.Collections.IEnumerable second) => throw null; public JoinedEnumerable(System.Collections.Generic.IEnumerable enumerables) => throw null; - } - - // Generated from `NHibernate.Util.JoinedEnumerable<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class JoinedEnumerable : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable - { + public JoinedEnumerable(System.Collections.IEnumerable first, System.Collections.IEnumerable second) => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - public JoinedEnumerable(System.Collections.Generic.List> enumerables) => throw null; + } + public class JoinedEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { public JoinedEnumerable(System.Collections.Generic.IEnumerable[] enumerables) => throw null; + public JoinedEnumerable(System.Collections.Generic.List> enumerables) => throw null; public JoinedEnumerable(System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second) => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; } - - // Generated from `NHibernate.Util.LRUMap` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LRUMap : NHibernate.Util.SequencedHashMap + public class LinkedHashMap : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback { - public override void Add(object key, object value) => throw null; - public override object this[object key] { get => throw null; set => throw null; } - public LRUMap(int capacity) => throw null; - public LRUMap() => throw null; - public int MaximumSize { get => throw null; set => throw null; } - protected void ProcessRemovedLRU(object key, object value) => throw null; - } - - // Generated from `NHibernate.Util.LinkedHashMap<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class LinkedHashMap : System.Runtime.Serialization.IDeserializationCallback, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> - { - public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public virtual void Add(TKey key, TValue value) => throw null; - // Generated from `NHibernate.Util.LinkedHashMap<,>+BackwardEnumerator<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - protected abstract class BackwardEnumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + public void Add(System.Collections.Generic.KeyValuePair item) => throw null; + protected abstract class BackwardEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public BackwardEnumerator(NHibernate.Util.LinkedHashMap dictionary) => throw null; - public abstract T Current { get; } object System.Collections.IEnumerator.Current { get => throw null; } + public abstract T Current { get; } + protected NHibernate.Util.LinkedHashMap dictionary; public void Dispose() => throw null; public bool MoveNext() => throw null; public void Reset() => throw null; - protected NHibernate.Util.LinkedHashMap dictionary; - protected System.Int64 version; + protected long version; } - - public virtual void Clear() => throw null; - public virtual bool Contains(TKey key) => throw null; public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; + public virtual bool Contains(TKey key) => throw null; public virtual bool ContainsKey(TKey key) => throw null; public virtual bool ContainsValue(TValue value) => throw null; public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public virtual int Count { get => throw null; } - // Generated from `NHibernate.Util.LinkedHashMap<,>+Entry` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` + public LinkedHashMap() => throw null; + public LinkedHashMap(int capacity) => throw null; + public LinkedHashMap(System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; + public LinkedHashMap(int capacity, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; protected class Entry { public Entry(TKey key, TValue value) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public TKey Key { get => throw null; } - public NHibernate.Util.LinkedHashMap.Entry Next { get => throw null; set => throw null; } - public NHibernate.Util.LinkedHashMap.Entry Prev { get => throw null; set => throw null; } + public NHibernate.Util.LinkedHashMap.Entry Next { get => throw null; set { } } + public NHibernate.Util.LinkedHashMap.Entry Prev { get => throw null; set { } } public override string ToString() => throw null; - public TValue Value { get => throw null; set => throw null; } + public TValue Value { get => throw null; set { } } } - - public virtual TKey FirstKey { get => throw null; } public virtual TValue FirstValue { get => throw null; } public virtual System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; public virtual bool IsFixedSize { get => throw null; } public virtual bool IsReadOnly { get => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } public virtual System.Collections.Generic.ICollection Keys { get => throw null; } public virtual TKey LastKey { get => throw null; } public virtual TValue LastValue { get => throw null; } - public LinkedHashMap(int capacity, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; - public LinkedHashMap(int capacity) => throw null; - public LinkedHashMap(System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; - public LinkedHashMap() => throw null; void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; public virtual bool Remove(TKey key) => throw null; public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public TValue this[TKey key] { get => throw null; set { } } public override string ToString() => throw null; public bool TryGetValue(TKey key, out TValue value) => throw null; public virtual System.Collections.Generic.ICollection Values { get => throw null; } } - - // Generated from `NHibernate.Util.NullableDictionary<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class NullableDictionary : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> where TKey : class + public class LRUMap : NHibernate.Util.SequencedHashMap + { + public override void Add(object key, object value) => throw null; + public LRUMap() => throw null; + public LRUMap(int capacity) => throw null; + public int MaximumSize { get => throw null; set { } } + protected void ProcessRemovedLRU(object key, object value) => throw null; + public override object this[object key] { get => throw null; set { } } + } + public class NullableDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable where TKey : class { public void Add(TKey key, TValue value) => throw null; public void Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -34144,49 +29617,41 @@ namespace NHibernate public bool ContainsKey(TKey key) => throw null; public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } + public NullableDictionary() => throw null; + public NullableDictionary(System.Collections.Generic.IEqualityComparer comparer) => throw null; public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsReadOnly { get => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } public System.Collections.Generic.ICollection Keys { get => throw null; } - public NullableDictionary(System.Collections.Generic.IEqualityComparer comparer) => throw null; - public NullableDictionary() => throw null; public bool Remove(TKey key) => throw null; public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public TValue this[TKey key] { get => throw null; set { } } public bool TryGetValue(TKey key, out TValue value) => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } } - - // Generated from `NHibernate.Util.ObjectHelpers` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ObjectHelpers { public static string IdentityToString(object obj) => throw null; } - - // Generated from `NHibernate.Util.ParserException` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class ParserException : System.Exception { public ParserException(string message) => throw null; protected ParserException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - - // Generated from `NHibernate.Util.PropertiesHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class PropertiesHelper { public static bool GetBoolean(string property, System.Collections.Generic.IDictionary properties, bool defaultValue) => throw null; public static bool GetBoolean(string property, System.Collections.Generic.IDictionary properties) => throw null; - public static System.Byte? GetByte(string property, System.Collections.Generic.IDictionary properties, System.Byte? defaultValue) => throw null; + public static byte? GetByte(string property, System.Collections.Generic.IDictionary properties, byte? defaultValue) => throw null; public static TEnum GetEnum(string property, System.Collections.Generic.IDictionary properties, TEnum defaultValue) where TEnum : struct => throw null; public static int GetInt32(string property, System.Collections.Generic.IDictionary properties, int defaultValue) => throw null; - public static System.Int64 GetInt64(string property, System.Collections.Generic.IDictionary properties, System.Int64 defaultValue) => throw null; + public static long GetInt64(string property, System.Collections.Generic.IDictionary properties, long defaultValue) => throw null; public static string GetString(string property, System.Collections.Generic.IDictionary properties, string defaultValue) => throw null; public static System.Collections.Generic.IDictionary ToDictionary(string property, string delim, System.Collections.Generic.IDictionary properties) => throw null; } - - // Generated from `NHibernate.Util.ReflectHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class ReflectHelper { - public const System.Reflection.BindingFlags AnyVisibilityInstance = default; + public static System.Reflection.BindingFlags AnyVisibilityInstance; public static System.Type ClassForFullName(string classFullName) => throw null; public static System.Type ClassForFullNameOrNull(string classFullName) => throw null; public static System.Type ClassForName(string name) => throw null; @@ -34214,8 +29679,8 @@ namespace NHibernate public static bool IsPropertySet(System.Reflection.MethodInfo method) => throw null; public static bool OverridesEquals(System.Type clazz) => throw null; public static bool OverridesGetHashCode(System.Type clazz) => throw null; - public static System.Type ReflectedPropertyClass(string className, string name, string accessorName) => throw null; public static System.Type ReflectedPropertyClass(System.Type theClass, string name, string access) => throw null; + public static System.Type ReflectedPropertyClass(string className, string name, string accessorName) => throw null; public static NHibernate.Type.IType ReflectedPropertyType(System.Type theClass, string name, string access) => throw null; public static System.Collections.Generic.IDictionary ToTypeParameters(this object source) => throw null; public static System.Reflection.MethodInfo TryGetMethod(System.Type type, System.Reflection.MethodInfo method) => throw null; @@ -34224,17 +29689,13 @@ namespace NHibernate public static System.Type TypeFromAssembly(NHibernate.Util.AssemblyQualifiedTypeName name, bool throwOnError) => throw null; public static System.Exception UnwrapTargetInvocationException(System.Reflection.TargetInvocationException ex) => throw null; } - - // Generated from `NHibernate.Util.SafetyEnumerable<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SafetyEnumerable : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + public class SafetyEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + public SafetyEnumerable(System.Collections.IEnumerable collection) => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public SafetyEnumerable(System.Collections.IEnumerable collection) => throw null; } - - // Generated from `NHibernate.Util.SequencedHashMap` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SequencedHashMap : System.Runtime.Serialization.IDeserializationCallback, System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.ICollection + public class SequencedHashMap : System.Collections.IDictionary, System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback { public virtual void Add(object key, object value) => throw null; public virtual void Clear() => throw null; @@ -34243,6 +29704,12 @@ namespace NHibernate public virtual bool ContainsValue(object value) => throw null; public virtual void CopyTo(System.Array array, int index) => throw null; public virtual int Count { get => throw null; } + public SequencedHashMap() => throw null; + public SequencedHashMap(int capacity) => throw null; + public SequencedHashMap(int capacity, float loadFactor) => throw null; + public SequencedHashMap(int capacity, System.Collections.IEqualityComparer equalityComparer) => throw null; + public SequencedHashMap(System.Collections.IEqualityComparer equalityComparer) => throw null; + public SequencedHashMap(int capacity, float loadFactor, System.Collections.IEqualityComparer equalityComparer) => throw null; public virtual object FirstKey { get => throw null; } public virtual object FirstValue { get => throw null; } public virtual System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; @@ -34250,94 +29717,75 @@ namespace NHibernate public virtual bool IsFixedSize { get => throw null; } public virtual bool IsReadOnly { get => throw null; } public virtual bool IsSynchronized { get => throw null; } - public virtual object this[object o] { get => throw null; set => throw null; } public virtual System.Collections.ICollection Keys { get => throw null; } public virtual object LastKey { get => throw null; } public virtual object LastValue { get => throw null; } public void OnDeserialization(object sender) => throw null; public virtual void Remove(object key) => throw null; - public SequencedHashMap(int capacity, float loadFactor, System.Collections.IEqualityComparer equalityComparer) => throw null; - public SequencedHashMap(int capacity, float loadFactor) => throw null; - public SequencedHashMap(int capacity, System.Collections.IEqualityComparer equalityComparer) => throw null; - public SequencedHashMap(int capacity) => throw null; - public SequencedHashMap(System.Collections.IEqualityComparer equalityComparer) => throw null; - public SequencedHashMap() => throw null; public virtual object SyncRoot { get => throw null; } + public virtual object this[object o] { get => throw null; set { } } public override string ToString() => throw null; public virtual System.Collections.ICollection Values { get => throw null; } } - - // Generated from `NHibernate.Util.SerializationHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class SerializationHelper { - public static object Deserialize(System.Byte[] data) => throw null; - public static System.Byte[] Serialize(object obj) => throw null; - // Generated from `NHibernate.Util.SerializationHelper+SurrogateSelector` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SurrogateSelector : System.Runtime.Serialization.SurrogateSelector + public static object Deserialize(byte[] data) => throw null; + public static byte[] Serialize(object obj) => throw null; + public sealed class SurrogateSelector : System.Runtime.Serialization.SurrogateSelector { public override void AddSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISerializationSurrogate surrogate) => throw null; + public SurrogateSelector() => throw null; public override System.Runtime.Serialization.ISerializationSurrogate GetSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context, out System.Runtime.Serialization.ISurrogateSelector selector) => throw null; public override void RemoveSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context) => throw null; - public SurrogateSelector() => throw null; } - - } - - // Generated from `NHibernate.Util.SimpleMRUCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SimpleMRUCache : System.Runtime.Serialization.IDeserializationCallback { public void Clear() => throw null; public int Count { get => throw null; } - public object this[object key] { get => throw null; } + public SimpleMRUCache() => throw null; + public SimpleMRUCache(int strongReferenceCount) => throw null; void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; public void Put(object key, object value) => throw null; - public SimpleMRUCache(int strongReferenceCount) => throw null; - public SimpleMRUCache() => throw null; + public object this[object key] { get => throw null; } } - - // Generated from `NHibernate.Util.SingletonEnumerable<>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class SingletonEnumerable : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + public sealed class SingletonEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + public SingletonEnumerable(T value) => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public SingletonEnumerable(T value) => throw null; } - - // Generated from `NHibernate.Util.SoftLimitMRUCache` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class SoftLimitMRUCache : System.Runtime.Serialization.IDeserializationCallback { public void Clear() => throw null; public int Count { get => throw null; } - public object this[object key] { get => throw null; } + public SoftLimitMRUCache(int strongReferenceCount) => throw null; + public SoftLimitMRUCache() => throw null; void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; public void Put(object key, object value) => throw null; public int SoftCount { get => throw null; } - public SoftLimitMRUCache(int strongReferenceCount) => throw null; - public SoftLimitMRUCache() => throw null; + public object this[object key] { get => throw null; } } - - // Generated from `NHibernate.Util.StringHelper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public static class StringHelper { - public const int AliasTruncateLength = default; + public static int AliasTruncateLength; public static bool BooleanValue(string value) => throw null; - public const string ClosedParen = default; + public static string ClosedParen; public static string CollectionToString(System.Collections.IEnumerable keys) => throw null; - public const string Comma = default; - public const string CommaSpace = default; - public static int CountUnquoted(string str, System.Char character) => throw null; - public const System.Char Dot = default; + public static string Comma; + public static string CommaSpace; + public static int CountUnquoted(string str, char character) => throw null; + public static char Dot; public static bool EqualsCaseInsensitive(string a, string b) => throw null; public static int FirstIndexOfChar(string sqlString, string str, int startIndex) => throw null; - public static string GenerateAlias(string description, int unique) => throw null; public static string GenerateAlias(string description) => throw null; + public static string GenerateAlias(string description, int unique) => throw null; public static string GetClassname(string typeName) => throw null; public static string GetFullClassname(string typeName) => throw null; public static int IndexOfAnyNewLine(this string str, int startIndex, out int newLineLength) => throw null; - public static int IndexOfCaseInsensitive(string source, string value, int startIndex, int count) => throw null; - public static int IndexOfCaseInsensitive(string source, string value, int startIndex) => throw null; public static int IndexOfCaseInsensitive(string source, string value) => throw null; + public static int IndexOfCaseInsensitive(string source, string value, int startIndex) => throw null; + public static int IndexOfCaseInsensitive(string source, string value, int startIndex, int count) => throw null; public static string InternedIfPossible(string str) => throw null; public static bool IsAnyNewLine(this string str, int index, out int newLineLength) => throw null; public static bool IsBackticksEnclosed(string identifier) => throw null; @@ -34348,25 +29796,25 @@ namespace NHibernate public static int LastIndexOfLetter(string str) => throw null; public static string LinesToString(this string[] text) => throw null; public static string MoveAndToBeginning(string filter) => throw null; - public static string[] Multiply(string[] strings, string placeholder, string[] replacements) => throw null; public static string[] Multiply(string str, System.Collections.Generic.IEnumerable placeholders, System.Collections.Generic.IEnumerable replacements) => throw null; - public const string OpenParen = default; + public static string[] Multiply(string[] strings, string placeholder, string[] replacements) => throw null; + public static string OpenParen; public static string[] ParseFilterParameterName(string filterParameterName) => throw null; public static string[] Prefix(string[] columns, string prefix) => throw null; public static string PurgeBackticksEnclosing(string identifier) => throw null; public static string Qualifier(string qualifiedName) => throw null; - public static string[] Qualify(string prefix, string[] names) => throw null; public static string Qualify(string prefix, string name) => throw null; + public static string[] Qualify(string prefix, string[] names) => throw null; public static string Repeat(string str, int times) => throw null; - public static string Replace(string template, string placeholder, string replacement, bool wholeWords) => throw null; public static string Replace(string template, string placeholder, string replacement) => throw null; + public static string Replace(string template, string placeholder, string replacement, bool wholeWords) => throw null; public static string ReplaceOnce(string template, string placeholder, string replacement) => throw null; public static string ReplaceWholeWord(this string template, string placeholder, string replacement) => throw null; public static string Root(string qualifiedName) => throw null; - public const System.Char SingleQuote = default; - public static string[] Split(string separators, string list, bool include) => throw null; + public static char SingleQuote; public static string[] Split(string separators, string list) => throw null; - public const string SqlParameter = default; + public static string[] Split(string separators, string list, bool include) => throw null; + public static string SqlParameter; public static bool StartsWithCaseInsensitive(string source, string prefix) => throw null; public static string[] Suffix(string[] columns, string suffix) => throw null; public static string Suffix(string name, string suffix) => throw null; @@ -34374,26 +29822,22 @@ namespace NHibernate public static string ToString(object[] array) => throw null; public static string ToUpperCase(string str) => throw null; public static string Truncate(string str, int length) => throw null; - public const System.Char Underscore = default; - public static string Unqualify(string qualifiedName, string seperator) => throw null; + public static char Underscore; public static string Unqualify(string qualifiedName) => throw null; + public static string Unqualify(string qualifiedName, string seperator) => throw null; public static string UnqualifyEntityName(string entityName) => throw null; public static string Unroot(string qualifiedName) => throw null; - public const string WhiteSpace = default; + public static string WhiteSpace; } - - // Generated from `NHibernate.Util.StringTokenizer` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class StringTokenizer : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + public class StringTokenizer : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + public StringTokenizer(string str) => throw null; + public StringTokenizer(string str, string delim) => throw null; + public StringTokenizer(string str, string delim, bool returnDelims) => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public StringTokenizer(string str, string delim, bool returnDelims) => throw null; - public StringTokenizer(string str, string delim) => throw null; - public StringTokenizer(string str) => throw null; } - - // Generated from `NHibernate.Util.TypeExtensions` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public static class TypeExtensions + public static partial class TypeExtensions { public static bool IsEnumerableOfT(this System.Type type) => throw null; public static bool IsNonPrimitive(this System.Type type) => throw null; @@ -34402,19 +29846,15 @@ namespace NHibernate public static bool IsPrimitive(this System.Type type) => throw null; public static System.Type NullableOf(this System.Type type) => throw null; } - - // Generated from `NHibernate.Util.TypeNameParser` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class TypeNameParser { - public NHibernate.Util.AssemblyQualifiedTypeName MakeGenericType(NHibernate.Util.AssemblyQualifiedTypeName qualifiedName, bool isArrayType, NHibernate.Util.AssemblyQualifiedTypeName[] typeArguments) => throw null; - public static NHibernate.Util.AssemblyQualifiedTypeName Parse(string type, string defaultNamespace, string defaultAssembly) => throw null; - public static NHibernate.Util.AssemblyQualifiedTypeName Parse(string type) => throw null; - public NHibernate.Util.AssemblyQualifiedTypeName ParseTypeName(string typeName) => throw null; public TypeNameParser(string defaultNamespace, string defaultAssembly) => throw null; + public NHibernate.Util.AssemblyQualifiedTypeName MakeGenericType(NHibernate.Util.AssemblyQualifiedTypeName qualifiedName, bool isArrayType, NHibernate.Util.AssemblyQualifiedTypeName[] typeArguments) => throw null; + public static NHibernate.Util.AssemblyQualifiedTypeName Parse(string type) => throw null; + public static NHibernate.Util.AssemblyQualifiedTypeName Parse(string type, string defaultNamespace, string defaultAssembly) => throw null; + public NHibernate.Util.AssemblyQualifiedTypeName ParseTypeName(string typeName) => throw null; } - - // Generated from `NHibernate.Util.UnmodifiableDictionary<,>` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class UnmodifiableDictionary : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + public class UnmodifiableDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { public void Add(TKey key, TValue value) => throw null; public void Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -34423,65 +29863,67 @@ namespace NHibernate public bool ContainsKey(TKey key) => throw null; public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } - public System.Collections.IEnumerator GetEnumerator() => throw null; + public UnmodifiableDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; public bool IsReadOnly { get => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } public System.Collections.Generic.ICollection Keys { get => throw null; } public bool Remove(TKey key) => throw null; public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public TValue this[TKey key] { get => throw null; set { } } public bool TryGetValue(TKey key, out TValue value) => throw null; - public UnmodifiableDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } } - - // Generated from `NHibernate.Util.WeakEnumerator` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class WeakEnumerator : System.Collections.IEnumerator, System.Collections.IDictionaryEnumerator + public class WeakEnumerator : System.Collections.IDictionaryEnumerator, System.Collections.IEnumerator { + public WeakEnumerator(System.Collections.IDictionaryEnumerator innerEnumerator) => throw null; public object Current { get => throw null; } public System.Collections.DictionaryEntry Entry { get => throw null; } public object Key { get => throw null; } public bool MoveNext() => throw null; public void Reset() => throw null; public object Value { get => throw null; } - public WeakEnumerator(System.Collections.IDictionaryEnumerator innerEnumerator) => throw null; } - - // Generated from `NHibernate.Util.WeakHashtable` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` - public class WeakHashtable : System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.ICollection + public class WeakHashtable : System.Collections.IDictionary, System.Collections.ICollection, System.Collections.IEnumerable { public void Add(object key, object value) => throw null; public void Clear() => throw null; public bool Contains(object key) => throw null; public void CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } + public WeakHashtable() => throw null; public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsFixedSize { get => throw null; } public bool IsReadOnly { get => throw null; } public bool IsSynchronized { get => throw null; } - public object this[object key] { get => throw null; set => throw null; } public System.Collections.ICollection Keys { get => throw null; } public void Remove(object key) => throw null; public void Scavenge() => throw null; public object SyncRoot { get => throw null; } + public object this[object key] { get => throw null; set { } } public System.Collections.ICollection Values { get => throw null; } - public WeakHashtable() => throw null; } - - // Generated from `NHibernate.Util.WeakRefWrapper` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class WeakRefWrapper : System.Runtime.Serialization.IDeserializationCallback { + public WeakRefWrapper(object target) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public bool IsAlive { get => throw null; } public void OnDeserialization(object sender) => throw null; public object Target { get => throw null; } public static object Unwrap(object value) => throw null; - public WeakRefWrapper(object target) => throw null; public static NHibernate.Util.WeakRefWrapper Wrap(object value) => throw null; } - + } + public class WrongClassException : NHibernate.HibernateException, System.Runtime.Serialization.ISerializable + { + public WrongClassException(string message, object identifier, string entityName) => throw null; + protected WrongClassException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string EntityName { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public object Identifier { get => throw null; } + public override string Message { get => throw null; } } } namespace System @@ -34490,13 +29932,11 @@ namespace System { namespace CompilerServices { - // Generated from `System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute` in `NHibernate, Version=5.3.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4` public class IgnoresAccessChecksToAttribute : System.Attribute { public string AssemblyName { get => throw null; } public IgnoresAccessChecksToAttribute(string assemblyName) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/NHibernate/5.3.8/NHibernate.csproj b/csharp/ql/test/resources/stubs/NHibernate/5.4.6/NHibernate.csproj similarity index 93% rename from csharp/ql/test/resources/stubs/NHibernate/5.3.8/NHibernate.csproj rename to csharp/ql/test/resources/stubs/NHibernate/5.4.6/NHibernate.csproj index 67eefcd3d92..14414d50385 100644 --- a/csharp/ql/test/resources/stubs/NHibernate/5.3.8/NHibernate.csproj +++ b/csharp/ql/test/resources/stubs/NHibernate/5.4.6/NHibernate.csproj @@ -7,11 +7,11 @@ - - - + + + diff --git a/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.cs b/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.cs index 7f88424d24f..00f1a2dd896 100644 --- a/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.cs +++ b/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.cs @@ -1,127 +1,101 @@ // This file contains auto-generated code. - +// Generated from `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b`. namespace Remotion { namespace Linq { namespace EagerFetching { - // Generated from `Remotion.Linq.EagerFetching.FetchFilteringQueryModelVisitor` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class FetchFilteringQueryModelVisitor : Remotion.Linq.QueryModelVisitorBase { - protected FetchFilteringQueryModelVisitor() => throw null; - protected System.Collections.ObjectModel.ReadOnlyCollection FetchQueryModelBuilders { get => throw null; } public static Remotion.Linq.EagerFetching.FetchQueryModelBuilder[] RemoveFetchRequestsFromQueryModel(Remotion.Linq.QueryModel queryModel) => throw null; + protected FetchFilteringQueryModelVisitor() => throw null; public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null; + protected System.Collections.ObjectModel.ReadOnlyCollection FetchQueryModelBuilders { get => throw null; } } - - // Generated from `Remotion.Linq.EagerFetching.FetchManyRequest` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class FetchManyRequest : Remotion.Linq.EagerFetching.FetchRequestBase { - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public FetchManyRequest(System.Reflection.MemberInfo relationMember) : base(default(System.Reflection.MemberInfo)) => throw null; protected override void ModifyFetchQueryModel(Remotion.Linq.QueryModel fetchQueryModel) => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override void TransformExpressions(System.Func transformation) => throw null; } - - // Generated from `Remotion.Linq.EagerFetching.FetchOneRequest` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class FetchOneRequest : Remotion.Linq.EagerFetching.FetchRequestBase { - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public FetchOneRequest(System.Reflection.MemberInfo relationMember) : base(default(System.Reflection.MemberInfo)) => throw null; protected override void ModifyFetchQueryModel(Remotion.Linq.QueryModel fetchQueryModel) => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override void TransformExpressions(System.Func transformation) => throw null; } - - // Generated from `Remotion.Linq.EagerFetching.FetchQueryModelBuilder` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class FetchQueryModelBuilder + public sealed class FetchQueryModelBuilder { - public Remotion.Linq.EagerFetching.FetchQueryModelBuilder[] CreateInnerBuilders() => throw null; public FetchQueryModelBuilder(Remotion.Linq.EagerFetching.FetchRequestBase fetchRequest, Remotion.Linq.QueryModel queryModel, int resultOperatorPosition) => throw null; - public Remotion.Linq.EagerFetching.FetchRequestBase FetchRequest { get => throw null; set => throw null; } public Remotion.Linq.QueryModel GetOrCreateFetchQueryModel() => throw null; - public int ResultOperatorPosition { get => throw null; set => throw null; } - public Remotion.Linq.QueryModel SourceItemQueryModel { get => throw null; set => throw null; } + public Remotion.Linq.EagerFetching.FetchQueryModelBuilder[] CreateInnerBuilders() => throw null; + public Remotion.Linq.EagerFetching.FetchRequestBase FetchRequest { get => throw null; } + public Remotion.Linq.QueryModel SourceItemQueryModel { get => throw null; } + public int ResultOperatorPosition { get => throw null; } } - - // Generated from `Remotion.Linq.EagerFetching.FetchRequestBase` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public abstract class FetchRequestBase : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase { - public virtual Remotion.Linq.QueryModel CreateFetchQueryModel(Remotion.Linq.QueryModel sourceItemQueryModel) => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; protected FetchRequestBase(System.Reflection.MemberInfo relationMember) => throw null; + public virtual Remotion.Linq.QueryModel CreateFetchQueryModel(Remotion.Linq.QueryModel sourceItemQueryModel) => throw null; protected System.Linq.Expressions.Expression GetFetchedMemberExpression(System.Linq.Expressions.Expression source) => throw null; - public Remotion.Linq.EagerFetching.FetchRequestBase GetOrAddInnerFetchRequest(Remotion.Linq.EagerFetching.FetchRequestBase fetchRequest) => throw null; - public System.Collections.Generic.IEnumerable InnerFetchRequests { get => throw null; } protected abstract void ModifyFetchQueryModel(Remotion.Linq.QueryModel fetchQueryModel); - public System.Reflection.MemberInfo RelationMember { get => throw null; set => throw null; } + public Remotion.Linq.EagerFetching.FetchRequestBase GetOrAddInnerFetchRequest(Remotion.Linq.EagerFetching.FetchRequestBase fetchRequest) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public override string ToString() => throw null; + public System.Reflection.MemberInfo RelationMember { get => throw null; set { } } + public System.Collections.Generic.IEnumerable InnerFetchRequests { get => throw null; } } - - // Generated from `Remotion.Linq.EagerFetching.FetchRequestCollection` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class FetchRequestCollection + public sealed class FetchRequestCollection { + public Remotion.Linq.EagerFetching.FetchRequestBase GetOrAddFetchRequest(Remotion.Linq.EagerFetching.FetchRequestBase fetchRequest) => throw null; public FetchRequestCollection() => throw null; public System.Collections.Generic.IEnumerable FetchRequests { get => throw null; } - public Remotion.Linq.EagerFetching.FetchRequestBase GetOrAddFetchRequest(Remotion.Linq.EagerFetching.FetchRequestBase fetchRequest) => throw null; } - namespace Parsing { - // Generated from `Remotion.Linq.EagerFetching.Parsing.FetchExpressionNodeBase` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public abstract class FetchExpressionNodeBase : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase { protected FetchExpressionNodeBase(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression relatedObjectSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - public System.Reflection.MemberInfo RelationMember { get => throw null; set => throw null; } public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Reflection.MemberInfo RelationMember { get => throw null; } } - - // Generated from `Remotion.Linq.EagerFetching.Parsing.FetchManyExpressionNode` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class FetchManyExpressionNode : Remotion.Linq.EagerFetching.Parsing.OuterFetchExpressionNodeBase { - protected override Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest() => throw null; public FetchManyExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression relatedObjectSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression)) => throw null; + protected override Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest() => throw null; } - - // Generated from `Remotion.Linq.EagerFetching.Parsing.FetchOneExpressionNode` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class FetchOneExpressionNode : Remotion.Linq.EagerFetching.Parsing.OuterFetchExpressionNodeBase { - protected override Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest() => throw null; public FetchOneExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression relatedObjectSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression)) => throw null; + protected override Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest() => throw null; } - - // Generated from `Remotion.Linq.EagerFetching.Parsing.OuterFetchExpressionNodeBase` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public abstract class OuterFetchExpressionNodeBase : Remotion.Linq.EagerFetching.Parsing.FetchExpressionNodeBase { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - protected abstract Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest(); - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; protected OuterFetchExpressionNodeBase(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression relatedObjectSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression)) => throw null; + protected abstract Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest(); + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; } - - // Generated from `Remotion.Linq.EagerFetching.Parsing.ThenFetchExpressionNodeBase` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public abstract class ThenFetchExpressionNodeBase : Remotion.Linq.EagerFetching.Parsing.FetchExpressionNodeBase { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected ThenFetchExpressionNodeBase(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression relatedObjectSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression)) => throw null; protected abstract Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest(); protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - protected ThenFetchExpressionNodeBase(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression relatedObjectSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression)) => throw null; + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; } - - // Generated from `Remotion.Linq.EagerFetching.Parsing.ThenFetchManyExpressionNode` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class ThenFetchManyExpressionNode : Remotion.Linq.EagerFetching.Parsing.ThenFetchExpressionNodeBase { - protected override Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest() => throw null; public ThenFetchManyExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression relatedObjectSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression)) => throw null; + protected override Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest() => throw null; } - - // Generated from `Remotion.Linq.EagerFetching.Parsing.ThenFetchOneExpressionNode` in `Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class ThenFetchOneExpressionNode : Remotion.Linq.EagerFetching.Parsing.ThenFetchExpressionNodeBase { - protected override Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest() => throw null; public ThenFetchOneExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression relatedObjectSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression)) => throw null; + protected override Remotion.Linq.EagerFetching.FetchRequestBase CreateFetchRequest() => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.cs b/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.cs index 0aac343f24c..adb17537fd2 100644 --- a/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.cs +++ b/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.cs @@ -1,1268 +1,971 @@ // This file contains auto-generated code. - +// Generated from `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b`. namespace Remotion { namespace Linq { - // Generated from `Remotion.Linq.DefaultQueryProvider` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class DefaultQueryProvider : Remotion.Linq.QueryProviderBase + public abstract class QueryProviderBase : System.Linq.IQueryProvider + { + protected QueryProviderBase(Remotion.Linq.Parsing.Structure.IQueryParser queryParser, Remotion.Linq.IQueryExecutor executor) => throw null; + public System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression) => throw null; + public abstract System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression); + public virtual Remotion.Linq.Clauses.StreamedData.IStreamedData Execute(System.Linq.Expressions.Expression expression) => throw null; + TResult System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression expression) => throw null; + object System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression expression) => throw null; + public virtual Remotion.Linq.QueryModel GenerateQueryModel(System.Linq.Expressions.Expression expression) => throw null; + public Remotion.Linq.Parsing.Structure.IQueryParser QueryParser { get => throw null; } + public Remotion.Linq.IQueryExecutor Executor { get => throw null; } + public Remotion.Linq.Parsing.Structure.ExpressionTreeParser ExpressionTreeParser { get => throw null; } + } + public sealed class DefaultQueryProvider : Remotion.Linq.QueryProviderBase { - public override System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression) => throw null; public DefaultQueryProvider(System.Type queryableType, Remotion.Linq.Parsing.Structure.IQueryParser queryParser, Remotion.Linq.IQueryExecutor executor) : base(default(Remotion.Linq.Parsing.Structure.IQueryParser), default(Remotion.Linq.IQueryExecutor)) => throw null; + public override System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression) => throw null; public System.Type QueryableType { get => throw null; } } - - // Generated from `Remotion.Linq.IQueryExecutor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IQueryExecutor { - System.Collections.Generic.IEnumerable ExecuteCollection(Remotion.Linq.QueryModel queryModel); T ExecuteScalar(Remotion.Linq.QueryModel queryModel); T ExecuteSingle(Remotion.Linq.QueryModel queryModel, bool returnDefaultWhenEmpty); + System.Collections.Generic.IEnumerable ExecuteCollection(Remotion.Linq.QueryModel queryModel); } - - // Generated from `Remotion.Linq.IQueryModelVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IQueryModelVisitor { + void VisitQueryModel(Remotion.Linq.QueryModel queryModel); + void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel); void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index); - void VisitGroupJoinClause(Remotion.Linq.Clauses.GroupJoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index); void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index); void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.GroupJoinClause groupJoinClause); - void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel); + void VisitGroupJoinClause(Remotion.Linq.Clauses.GroupJoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index); + void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, Remotion.Linq.QueryModel queryModel, int index); void VisitOrderByClause(Remotion.Linq.Clauses.OrderByClause orderByClause, Remotion.Linq.QueryModel queryModel, int index); void VisitOrdering(Remotion.Linq.Clauses.Ordering ordering, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.OrderByClause orderByClause, int index); - void VisitQueryModel(Remotion.Linq.QueryModel queryModel); - void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index); void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, Remotion.Linq.QueryModel queryModel); - void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, Remotion.Linq.QueryModel queryModel, int index); + void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index); } - - // Generated from `Remotion.Linq.QueryModel` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class QueryModel + public abstract class QueryableBase : System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Collections.Generic.IEnumerable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Collections.IEnumerable { - public void Accept(Remotion.Linq.IQueryModelVisitor visitor) => throw null; - public System.Collections.ObjectModel.ObservableCollection BodyClauses { get => throw null; set => throw null; } - public Remotion.Linq.QueryModel Clone(Remotion.Linq.Clauses.QuerySourceMapping querySourceMapping) => throw null; - public Remotion.Linq.QueryModel Clone() => throw null; - public Remotion.Linq.QueryModel ConvertToSubQuery(string itemName) => throw null; - public Remotion.Linq.Clauses.StreamedData.IStreamedData Execute(Remotion.Linq.IQueryExecutor executor) => throw null; - public string GetNewName(string prefix) => throw null; - public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo() => throw null; - public System.Type GetResultType() => throw null; - public Remotion.Linq.UniqueIdentifierGenerator GetUniqueIdentfierGenerator() => throw null; - public bool IsIdentityQuery() => throw null; - public Remotion.Linq.Clauses.MainFromClause MainFromClause { get => throw null; set => throw null; } - public QueryModel(Remotion.Linq.Clauses.MainFromClause mainFromClause, Remotion.Linq.Clauses.SelectClause selectClause) => throw null; - public System.Collections.ObjectModel.ObservableCollection ResultOperators { get => throw null; set => throw null; } - public System.Type ResultTypeOverride { get => throw null; set => throw null; } - public Remotion.Linq.Clauses.SelectClause SelectClause { get => throw null; set => throw null; } - public override string ToString() => throw null; - public void TransformExpressions(System.Func transformation) => throw null; + protected QueryableBase(Remotion.Linq.Parsing.Structure.IQueryParser queryParser, Remotion.Linq.IQueryExecutor executor) => throw null; + protected QueryableBase(System.Linq.IQueryProvider provider) => throw null; + protected QueryableBase(System.Linq.IQueryProvider provider, System.Linq.Expressions.Expression expression) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Linq.Expressions.Expression Expression { get => throw null; } + public System.Linq.IQueryProvider Provider { get => throw null; } + public System.Type ElementType { get => throw null; } } - - // Generated from `Remotion.Linq.QueryModelBuilder` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class QueryModelBuilder + public sealed class QueryModel + { + public QueryModel(Remotion.Linq.Clauses.MainFromClause mainFromClause, Remotion.Linq.Clauses.SelectClause selectClause) => throw null; + public System.Type GetResultType() => throw null; + public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo() => throw null; + public Remotion.Linq.UniqueIdentifierGenerator GetUniqueIdentfierGenerator() => throw null; + public void Accept(Remotion.Linq.IQueryModelVisitor visitor) => throw null; + public override string ToString() => throw null; + public Remotion.Linq.QueryModel Clone() => throw null; + public Remotion.Linq.QueryModel Clone(Remotion.Linq.Clauses.QuerySourceMapping querySourceMapping) => throw null; + public void TransformExpressions(System.Func transformation) => throw null; + public string GetNewName(string prefix) => throw null; + public Remotion.Linq.Clauses.StreamedData.IStreamedData Execute(Remotion.Linq.IQueryExecutor executor) => throw null; + public bool IsIdentityQuery() => throw null; + public Remotion.Linq.QueryModel ConvertToSubQuery(string itemName) => throw null; + public System.Type ResultTypeOverride { get => throw null; set { } } + public Remotion.Linq.Clauses.MainFromClause MainFromClause { get => throw null; set { } } + public Remotion.Linq.Clauses.SelectClause SelectClause { get => throw null; set { } } + public System.Collections.ObjectModel.ObservableCollection BodyClauses { get => throw null; } + public System.Collections.ObjectModel.ObservableCollection ResultOperators { get => throw null; } + } + public sealed class QueryModelBuilder { public void AddClause(Remotion.Linq.Clauses.IClause clause) => throw null; public void AddResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator) => throw null; - public System.Collections.ObjectModel.ReadOnlyCollection BodyClauses { get => throw null; } public Remotion.Linq.QueryModel Build() => throw null; - public Remotion.Linq.Clauses.MainFromClause MainFromClause { get => throw null; set => throw null; } public QueryModelBuilder() => throw null; + public Remotion.Linq.Clauses.MainFromClause MainFromClause { get => throw null; } + public Remotion.Linq.Clauses.SelectClause SelectClause { get => throw null; } + public System.Collections.ObjectModel.ReadOnlyCollection BodyClauses { get => throw null; } public System.Collections.ObjectModel.ReadOnlyCollection ResultOperators { get => throw null; } - public Remotion.Linq.Clauses.SelectClause SelectClause { get => throw null; set => throw null; } } - - // Generated from `Remotion.Linq.QueryModelVisitorBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public abstract class QueryModelVisitorBase : Remotion.Linq.IQueryModelVisitor { - protected QueryModelVisitorBase() => throw null; + public virtual void VisitQueryModel(Remotion.Linq.QueryModel queryModel) => throw null; + public virtual void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null; public virtual void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; - protected virtual void VisitBodyClauses(System.Collections.ObjectModel.ObservableCollection bodyClauses, Remotion.Linq.QueryModel queryModel) => throw null; - public virtual void VisitGroupJoinClause(Remotion.Linq.Clauses.GroupJoinClause groupJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public virtual void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public virtual void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.GroupJoinClause groupJoinClause) => throw null; - public virtual void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null; + public virtual void VisitGroupJoinClause(Remotion.Linq.Clauses.GroupJoinClause groupJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; + public virtual void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public virtual void VisitOrderByClause(Remotion.Linq.Clauses.OrderByClause orderByClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; public virtual void VisitOrdering(Remotion.Linq.Clauses.Ordering ordering, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.OrderByClause orderByClause, int index) => throw null; - protected virtual void VisitOrderings(System.Collections.ObjectModel.ObservableCollection orderings, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.OrderByClause orderByClause) => throw null; - public virtual void VisitQueryModel(Remotion.Linq.QueryModel queryModel) => throw null; - public virtual void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null; - protected virtual void VisitResultOperators(System.Collections.ObjectModel.ObservableCollection resultOperators, Remotion.Linq.QueryModel queryModel) => throw null; public virtual void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, Remotion.Linq.QueryModel queryModel) => throw null; - public virtual void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; + public virtual void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null; + protected virtual void VisitBodyClauses(System.Collections.ObjectModel.ObservableCollection bodyClauses, Remotion.Linq.QueryModel queryModel) => throw null; + protected virtual void VisitOrderings(System.Collections.ObjectModel.ObservableCollection orderings, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.OrderByClause orderByClause) => throw null; + protected virtual void VisitResultOperators(System.Collections.ObjectModel.ObservableCollection resultOperators, Remotion.Linq.QueryModel queryModel) => throw null; + protected QueryModelVisitorBase() => throw null; } - - // Generated from `Remotion.Linq.QueryProviderBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class QueryProviderBase : System.Linq.IQueryProvider - { - public abstract System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression); - public System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression) => throw null; - public virtual Remotion.Linq.Clauses.StreamedData.IStreamedData Execute(System.Linq.Expressions.Expression expression) => throw null; - object System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression expression) => throw null; - TResult System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression expression) => throw null; - public Remotion.Linq.IQueryExecutor Executor { get => throw null; } - public Remotion.Linq.Parsing.Structure.ExpressionTreeParser ExpressionTreeParser { get => throw null; } - public virtual Remotion.Linq.QueryModel GenerateQueryModel(System.Linq.Expressions.Expression expression) => throw null; - public Remotion.Linq.Parsing.Structure.IQueryParser QueryParser { get => throw null; } - protected QueryProviderBase(Remotion.Linq.Parsing.Structure.IQueryParser queryParser, Remotion.Linq.IQueryExecutor executor) => throw null; - } - - // Generated from `Remotion.Linq.QueryableBase<>` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class QueryableBase : System.Linq.IQueryable, System.Linq.IQueryable, System.Linq.IOrderedQueryable, System.Linq.IOrderedQueryable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable - { - public System.Type ElementType { get => throw null; } - public System.Linq.Expressions.Expression Expression { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public System.Linq.IQueryProvider Provider { get => throw null; } - protected QueryableBase(System.Linq.IQueryProvider provider, System.Linq.Expressions.Expression expression) => throw null; - protected QueryableBase(System.Linq.IQueryProvider provider) => throw null; - protected QueryableBase(Remotion.Linq.Parsing.Structure.IQueryParser queryParser, Remotion.Linq.IQueryExecutor executor) => throw null; - } - - // Generated from `Remotion.Linq.UniqueIdentifierGenerator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class UniqueIdentifierGenerator + public sealed class UniqueIdentifierGenerator { public void AddKnownIdentifier(string identifier) => throw null; - public string GetUniqueIdentifier(string prefix) => throw null; public void Reset() => throw null; + public string GetUniqueIdentifier(string prefix) => throw null; public UniqueIdentifierGenerator() => throw null; } - namespace Clauses { - // Generated from `Remotion.Linq.Clauses.AdditionalFromClause` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AdditionalFromClause : Remotion.Linq.Clauses.FromClauseBase, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IBodyClause - { - public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; - public AdditionalFromClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression) : base(default(string), default(System.Type), default(System.Linq.Expressions.Expression)) => throw null; - public Remotion.Linq.Clauses.AdditionalFromClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - } - - // Generated from `Remotion.Linq.Clauses.CloneContext` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class CloneContext - { - public CloneContext(Remotion.Linq.Clauses.QuerySourceMapping querySourceMapping) => throw null; - public Remotion.Linq.Clauses.QuerySourceMapping QuerySourceMapping { get => throw null; set => throw null; } - } - - // Generated from `Remotion.Linq.Clauses.FromClauseBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class FromClauseBase : Remotion.Linq.Clauses.IQuerySource, Remotion.Linq.Clauses.IFromClause, Remotion.Linq.Clauses.IClause - { - public virtual void CopyFromSource(Remotion.Linq.Clauses.IFromClause source) => throw null; - internal FromClauseBase(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression) => throw null; - public System.Linq.Expressions.Expression FromExpression { get => throw null; set => throw null; } - public string ItemName { get => throw null; set => throw null; } - public System.Type ItemType { get => throw null; set => throw null; } - public override string ToString() => throw null; - public virtual void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `Remotion.Linq.Clauses.GroupJoinClause` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class GroupJoinClause : Remotion.Linq.Clauses.IQuerySource, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IBodyClause - { - public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; - public Remotion.Linq.Clauses.GroupJoinClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public GroupJoinClause(string itemName, System.Type itemType, Remotion.Linq.Clauses.JoinClause joinClause) => throw null; - public string ItemName { get => throw null; set => throw null; } - public System.Type ItemType { get => throw null; set => throw null; } - public Remotion.Linq.Clauses.JoinClause JoinClause { get => throw null; set => throw null; } - public override string ToString() => throw null; - public void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `Remotion.Linq.Clauses.IBodyClause` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public interface IBodyClause : Remotion.Linq.Clauses.IClause - { - void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index); - Remotion.Linq.Clauses.IBodyClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext); - } - - // Generated from `Remotion.Linq.Clauses.IClause` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IClause { void TransformExpressions(System.Func transformation); } - - // Generated from `Remotion.Linq.Clauses.IFromClause` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public interface IFromClause : Remotion.Linq.Clauses.IQuerySource, Remotion.Linq.Clauses.IClause - { - void CopyFromSource(Remotion.Linq.Clauses.IFromClause source); - System.Linq.Expressions.Expression FromExpression { get; } - } - - // Generated from `Remotion.Linq.Clauses.IQuerySource` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IQuerySource { string ItemName { get; } System.Type ItemType { get; } } - - // Generated from `Remotion.Linq.Clauses.JoinClause` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class JoinClause : Remotion.Linq.Clauses.IQuerySource, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IBodyClause + public interface IFromClause : Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IQuerySource { + void CopyFromSource(Remotion.Linq.Clauses.IFromClause source); + System.Linq.Expressions.Expression FromExpression { get; } + } + public abstract class FromClauseBase : Remotion.Linq.Clauses.IFromClause, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IQuerySource + { + public virtual void CopyFromSource(Remotion.Linq.Clauses.IFromClause source) => throw null; + public virtual void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public string ItemName { get => throw null; set { } } + public System.Type ItemType { get => throw null; set { } } + public System.Linq.Expressions.Expression FromExpression { get => throw null; set { } } + } + public interface IBodyClause : Remotion.Linq.Clauses.IClause + { + void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index); + Remotion.Linq.Clauses.IBodyClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext); + } + public sealed class AdditionalFromClause : Remotion.Linq.Clauses.FromClauseBase, Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause + { + public AdditionalFromClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression) => throw null; + public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; + public Remotion.Linq.Clauses.AdditionalFromClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + } + public sealed class CloneContext + { + public CloneContext(Remotion.Linq.Clauses.QuerySourceMapping querySourceMapping) => throw null; + public Remotion.Linq.Clauses.QuerySourceMapping QuerySourceMapping { get => throw null; } + } + public sealed class GroupJoinClause : Remotion.Linq.Clauses.IQuerySource, Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause + { + public GroupJoinClause(string itemName, System.Type itemType, Remotion.Linq.Clauses.JoinClause joinClause) => throw null; + public void TransformExpressions(System.Func transformation) => throw null; + public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; + public Remotion.Linq.Clauses.GroupJoinClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public override string ToString() => throw null; + public string ItemName { get => throw null; set { } } + public System.Type ItemType { get => throw null; set { } } + public Remotion.Linq.Clauses.JoinClause JoinClause { get => throw null; set { } } + } + public sealed class JoinClause : Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IQuerySource + { + public JoinClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression innerSequence, System.Linq.Expressions.Expression outerKeySelector, System.Linq.Expressions.Expression innerKeySelector) => throw null; public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.GroupJoinClause groupJoinClause) => throw null; public Remotion.Linq.Clauses.JoinClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public System.Linq.Expressions.Expression InnerKeySelector { get => throw null; set => throw null; } - public System.Linq.Expressions.Expression InnerSequence { get => throw null; set => throw null; } - public string ItemName { get => throw null; set => throw null; } - public System.Type ItemType { get => throw null; set => throw null; } - public JoinClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression innerSequence, System.Linq.Expressions.Expression outerKeySelector, System.Linq.Expressions.Expression innerKeySelector) => throw null; - public System.Linq.Expressions.Expression OuterKeySelector { get => throw null; set => throw null; } - public override string ToString() => throw null; public void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Type ItemType { get => throw null; set { } } + public string ItemName { get => throw null; set { } } + public System.Linq.Expressions.Expression InnerSequence { get => throw null; set { } } + public System.Linq.Expressions.Expression OuterKeySelector { get => throw null; set { } } + public System.Linq.Expressions.Expression InnerKeySelector { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.MainFromClause` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class MainFromClause : Remotion.Linq.Clauses.FromClauseBase + public sealed class MainFromClause : Remotion.Linq.Clauses.FromClauseBase { + public MainFromClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression) => throw null; public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel) => throw null; public Remotion.Linq.Clauses.MainFromClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public MainFromClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression) : base(default(string), default(System.Type), default(System.Linq.Expressions.Expression)) => throw null; } - - // Generated from `Remotion.Linq.Clauses.OrderByClause` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class OrderByClause : Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IBodyClause + public sealed class OrderByClause : Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause { + public OrderByClause() => throw null; public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; + public void TransformExpressions(System.Func transformation) => throw null; public Remotion.Linq.Clauses.OrderByClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public OrderByClause() => throw null; - public System.Collections.ObjectModel.ObservableCollection Orderings { get => throw null; set => throw null; } public override string ToString() => throw null; - public void TransformExpressions(System.Func transformation) => throw null; + public System.Collections.ObjectModel.ObservableCollection Orderings { get => throw null; } } - - // Generated from `Remotion.Linq.Clauses.Ordering` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class Ordering + public sealed class Ordering { + public Ordering(System.Linq.Expressions.Expression expression, Remotion.Linq.Clauses.OrderingDirection direction) => throw null; public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.OrderByClause orderByClause, int index) => throw null; public Remotion.Linq.Clauses.Ordering Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public System.Linq.Expressions.Expression Expression { get => throw null; set => throw null; } - public Ordering(System.Linq.Expressions.Expression expression, Remotion.Linq.Clauses.OrderingDirection direction) => throw null; - public Remotion.Linq.Clauses.OrderingDirection OrderingDirection { get => throw null; set => throw null; } - public override string ToString() => throw null; public void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Linq.Expressions.Expression Expression { get => throw null; set { } } + public Remotion.Linq.Clauses.OrderingDirection OrderingDirection { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.OrderingDirection` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public enum OrderingDirection { - Asc, - Desc, + Asc = 0, + Desc = 1, } - - // Generated from `Remotion.Linq.Clauses.QuerySourceMapping` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class QuerySourceMapping + public sealed class QuerySourceMapping { - public void AddMapping(Remotion.Linq.Clauses.IQuerySource querySource, System.Linq.Expressions.Expression expression) => throw null; public bool ContainsMapping(Remotion.Linq.Clauses.IQuerySource querySource) => throw null; - public System.Linq.Expressions.Expression GetExpression(Remotion.Linq.Clauses.IQuerySource querySource) => throw null; - public QuerySourceMapping() => throw null; + public void AddMapping(Remotion.Linq.Clauses.IQuerySource querySource, System.Linq.Expressions.Expression expression) => throw null; public void RemoveMapping(Remotion.Linq.Clauses.IQuerySource querySource) => throw null; public void ReplaceMapping(Remotion.Linq.Clauses.IQuerySource querySource, System.Linq.Expressions.Expression expression) => throw null; + public System.Linq.Expressions.Expression GetExpression(Remotion.Linq.Clauses.IQuerySource querySource) => throw null; + public QuerySourceMapping() => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperatorBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public abstract class ResultOperatorBase { - public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; - protected void CheckSequenceItemType(Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo inputInfo, System.Type expectedItemType) => throw null; - public abstract Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext); public abstract Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData input); - protected T GetConstantValueFromExpression(string expressionName, System.Linq.Expressions.Expression expression) => throw null; public abstract Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo); - protected object InvokeExecuteMethod(System.Reflection.MethodInfo method, object input) => throw null; - protected ResultOperatorBase() => throw null; + public abstract Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext); + public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; public abstract void TransformExpressions(System.Func transformation); + protected object InvokeExecuteMethod(System.Reflection.MethodInfo method, object input) => throw null; + protected T GetConstantValueFromExpression(string expressionName, System.Linq.Expressions.Expression expression) => throw null; + protected void CheckSequenceItemType(Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo inputInfo, System.Type expectedItemType) => throw null; + protected ResultOperatorBase() => throw null; } - - // Generated from `Remotion.Linq.Clauses.SelectClause` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SelectClause : Remotion.Linq.Clauses.IClause + public sealed class SelectClause : Remotion.Linq.Clauses.IClause { + public SelectClause(System.Linq.Expressions.Expression selector) => throw null; public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel) => throw null; public Remotion.Linq.Clauses.SelectClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo GetOutputDataInfo() => throw null; - public SelectClause(System.Linq.Expressions.Expression selector) => throw null; - public System.Linq.Expressions.Expression Selector { get => throw null; set => throw null; } - public override string ToString() => throw null; public void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo GetOutputDataInfo() => throw null; + public System.Linq.Expressions.Expression Selector { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.WhereClause` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class WhereClause : Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IBodyClause + public sealed class WhereClause : Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause { + public WhereClause(System.Linq.Expressions.Expression predicate) => throw null; public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null; + public void TransformExpressions(System.Func transformation) => throw null; public Remotion.Linq.Clauses.WhereClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public System.Linq.Expressions.Expression Predicate { get => throw null; set => throw null; } public override string ToString() => throw null; - public void TransformExpressions(System.Func transformation) => throw null; - public WhereClause(System.Linq.Expressions.Expression predicate) => throw null; + public System.Linq.Expressions.Expression Predicate { get => throw null; set { } } } - namespace ExpressionVisitors { - // Generated from `Remotion.Linq.Clauses.ExpressionVisitors.AccessorFindingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AccessorFindingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor + public sealed class AccessorFindingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static System.Linq.Expressions.LambdaExpression FindAccessorLambda(System.Linq.Expressions.Expression searchedExpression, System.Linq.Expressions.Expression fullExpression, System.Linq.Expressions.ParameterExpression inputParameter) => throw null; public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null; - protected override System.Linq.Expressions.MemberAssignment VisitMemberAssignment(System.Linq.Expressions.MemberAssignment memberAssigment) => throw null; + protected override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null; protected override System.Linq.Expressions.MemberBinding VisitMemberBinding(System.Linq.Expressions.MemberBinding memberBinding) => throw null; - protected internal override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null; + protected override System.Linq.Expressions.MemberAssignment VisitMemberAssignment(System.Linq.Expressions.MemberAssignment memberAssigment) => throw null; } - - // Generated from `Remotion.Linq.Clauses.ExpressionVisitors.CloningExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class CloningExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor + public sealed class CloningExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static System.Linq.Expressions.Expression AdjustExpressionAfterCloning(System.Linq.Expressions.Expression expression, Remotion.Linq.Clauses.QuerySourceMapping querySourceMapping) => throw null; - protected internal override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; } - - // Generated from `Remotion.Linq.Clauses.ExpressionVisitors.ReferenceReplacingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ReferenceReplacingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor + public sealed class ReferenceReplacingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static System.Linq.Expressions.Expression ReplaceClauseReferences(System.Linq.Expressions.Expression expression, Remotion.Linq.Clauses.QuerySourceMapping querySourceMapping, bool throwOnUnmappedReferences) => throw null; - protected internal override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; } - - // Generated from `Remotion.Linq.Clauses.ExpressionVisitors.ReverseResolvingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ReverseResolvingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor + public sealed class ReverseResolvingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static System.Linq.Expressions.LambdaExpression ReverseResolve(System.Linq.Expressions.Expression itemExpression, System.Linq.Expressions.Expression resolvedExpression) => throw null; public static System.Linq.Expressions.LambdaExpression ReverseResolveLambda(System.Linq.Expressions.Expression itemExpression, System.Linq.Expressions.LambdaExpression resolvedExpression, int parameterInsertionPosition) => throw null; - protected internal override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; } - } namespace Expressions { - // Generated from `Remotion.Linq.Clauses.Expressions.IPartialEvaluationExceptionExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IPartialEvaluationExceptionExpressionVisitor { System.Linq.Expressions.Expression VisitPartialEvaluationException(Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression partialEvaluationExceptionExpression); } - - // Generated from `Remotion.Linq.Clauses.Expressions.IVBSpecificExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IVBSpecificExpressionVisitor { System.Linq.Expressions.Expression VisitVBStringComparison(Remotion.Linq.Clauses.Expressions.VBStringComparisonExpression vbStringComparisonExpression); } - - // Generated from `Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class PartialEvaluationExceptionExpression : System.Linq.Expressions.Expression + public sealed class PartialEvaluationExceptionExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; - public override bool CanReduce { get => throw null; } - public System.Linq.Expressions.Expression EvaluatedExpression { get => throw null; } - public System.Exception Exception { get => throw null; } - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } public PartialEvaluationExceptionExpression(System.Exception exception, System.Linq.Expressions.Expression evaluatedExpression) => throw null; public override System.Linq.Expressions.Expression Reduce() => throw null; + protected override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public override string ToString() => throw null; public override System.Type Type { get => throw null; } - protected internal override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public System.Exception Exception { get => throw null; } + public System.Linq.Expressions.Expression EvaluatedExpression { get => throw null; } + public override bool CanReduce { get => throw null; } } - - // Generated from `Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class QuerySourceReferenceExpression : System.Linq.Expressions.Expression + public sealed class QuerySourceReferenceExpression : System.Linq.Expressions.Expression { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + public QuerySourceReferenceExpression(Remotion.Linq.Clauses.IQuerySource querySource) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } - public QuerySourceReferenceExpression(Remotion.Linq.Clauses.IQuerySource querySource) => throw null; - public Remotion.Linq.Clauses.IQuerySource ReferencedQuerySource { get => throw null; set => throw null; } public override string ToString() => throw null; - public override System.Type Type { get => throw null; } - } - - // Generated from `Remotion.Linq.Clauses.Expressions.SubQueryExpression` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SubQueryExpression : System.Linq.Expressions.Expression - { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } - public Remotion.Linq.QueryModel QueryModel { get => throw null; set => throw null; } + public override System.Type Type { get => throw null; } + public Remotion.Linq.Clauses.IQuerySource ReferencedQuerySource { get => throw null; } + } + public sealed class SubQueryExpression : System.Linq.Expressions.Expression + { public SubQueryExpression(Remotion.Linq.QueryModel queryModel) => throw null; public override string ToString() => throw null; - public override System.Type Type { get => throw null; } - } - - // Generated from `Remotion.Linq.Clauses.Expressions.VBStringComparisonExpression` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class VBStringComparisonExpression : System.Linq.Expressions.Expression - { - protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; - public override bool CanReduce { get => throw null; } - public System.Linq.Expressions.Expression Comparison { get => throw null; } + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public override System.Type Type { get => throw null; } + public Remotion.Linq.QueryModel QueryModel { get => throw null; } + } + public sealed class VBStringComparisonExpression : System.Linq.Expressions.Expression + { + public VBStringComparisonExpression(System.Linq.Expressions.Expression comparison, bool textCompare) => throw null; public override System.Linq.Expressions.Expression Reduce() => throw null; - public bool TextCompare { get => throw null; } + protected override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + protected override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; public override string ToString() => throw null; public override System.Type Type { get => throw null; } - public VBStringComparisonExpression(System.Linq.Expressions.Expression comparison, bool textCompare) => throw null; - protected internal override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; + public override System.Linq.Expressions.ExpressionType NodeType { get => throw null; } + public System.Linq.Expressions.Expression Comparison { get => throw null; } + public bool TextCompare { get => throw null; } + public override bool CanReduce { get => throw null; } } - } namespace ResultOperators { - // Generated from `Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AggregateFromSeedResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase + public abstract class ValueFromSequenceResultOperatorBase : Remotion.Linq.Clauses.ResultOperatorBase + { + public abstract Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence sequence); + public override sealed Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData input) => throw null; + protected ValueFromSequenceResultOperatorBase() => throw null; + } + public sealed class AggregateFromSeedResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase { public AggregateFromSeedResultOperator(System.Linq.Expressions.Expression seed, System.Linq.Expressions.LambdaExpression func, System.Linq.Expressions.LambdaExpression optionalResultSelector) => throw null; - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteAggregateInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public System.Linq.Expressions.LambdaExpression Func { get => throw null; set => throw null; } public T GetConstantSeed() => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteAggregateInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public System.Linq.Expressions.LambdaExpression OptionalResultSelector { get => throw null; set => throw null; } - public System.Linq.Expressions.Expression Seed { get => throw null; set => throw null; } - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Linq.Expressions.LambdaExpression Func { get => throw null; set { } } + public System.Linq.Expressions.Expression Seed { get => throw null; set { } } + public System.Linq.Expressions.LambdaExpression OptionalResultSelector { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AggregateResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase + public sealed class AggregateResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase { public AggregateResultOperator(System.Linq.Expressions.LambdaExpression func) => throw null; - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public System.Linq.Expressions.LambdaExpression Func { get => throw null; set => throw null; } + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Linq.Expressions.LambdaExpression Func { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.AllResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AllResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase + public sealed class AllResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase { public AllResultOperator(System.Linq.Expressions.Expression predicate) => throw null; - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public System.Linq.Expressions.Expression Predicate { get => throw null; set => throw null; } - public override string ToString() => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public override string ToString() => throw null; + public System.Linq.Expressions.Expression Predicate { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.AnyResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AnyResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase + public sealed class AnyResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase { - public AnyResultOperator() => throw null; - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public AnyResultOperator() => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AsQueryableResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase + public abstract class SequenceFromSequenceResultOperatorBase : Remotion.Linq.Clauses.ResultOperatorBase + { + public abstract Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input); + public override sealed Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData input) => throw null; + protected SequenceFromSequenceResultOperatorBase() => throw null; + } + public abstract class SequenceTypePreservingResultOperatorBase : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase + { + public override sealed Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + protected Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo inputSequenceInfo) => throw null; + protected SequenceTypePreservingResultOperatorBase() => throw null; + } + public sealed class AsQueryableResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase { public AsQueryableResultOperator() => throw null; public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - // Generated from `Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator+ISupportedByIQueryModelVistor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; public interface ISupportedByIQueryModelVistor { } - - - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.AverageResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AverageResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase + public sealed class AverageResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase { - public AverageResultOperator() => throw null; public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public AverageResultOperator() => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.CastResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class CastResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase + public sealed class CastResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase { - public System.Type CastItemType { get => throw null; set => throw null; } public CastResultOperator(System.Type castItemType) => throw null; public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Type CastItemType { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public abstract class ChoiceResultOperatorBase : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase { protected ChoiceResultOperatorBase(bool returnDefaultWhenEmpty) => throw null; - public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public override sealed Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; protected Remotion.Linq.Clauses.StreamedData.StreamedValueInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo inputSequenceInfo) => throw null; - public bool ReturnDefaultWhenEmpty { get => throw null; set => throw null; } + public bool ReturnDefaultWhenEmpty { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.ConcatResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ConcatResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase, Remotion.Linq.Clauses.IQuerySource + public sealed class ConcatResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase, Remotion.Linq.Clauses.IQuerySource { - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public ConcatResultOperator(string itemName, System.Type itemType, System.Linq.Expressions.Expression source2) => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public System.Collections.IEnumerable GetConstantSource2() => throw null; - public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public string ItemName { get => throw null; set => throw null; } - public System.Type ItemType { get => throw null; set => throw null; } - public System.Linq.Expressions.Expression Source2 { get => throw null; set => throw null; } - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ContainsResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase - { public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public string ItemName { get => throw null; set { } } + public System.Type ItemType { get => throw null; set { } } + public System.Linq.Expressions.Expression Source2 { get => throw null; set { } } + } + public sealed class ContainsResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase + { public ContainsResultOperator(System.Linq.Expressions.Expression item) => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public T GetConstantItem() => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public System.Linq.Expressions.Expression Item { get => throw null; set => throw null; } - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Linq.Expressions.Expression Item { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.CountResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class CountResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase + public sealed class CountResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase { public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; public CountResultOperator() => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.DefaultIfEmptyResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class DefaultIfEmptyResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase + public sealed class DefaultIfEmptyResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase { - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public DefaultIfEmptyResultOperator(System.Linq.Expressions.Expression optionalDefaultValue) => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public object GetConstantOptionalDefaultValue() => throw null; - public System.Linq.Expressions.Expression OptionalDefaultValue { get => throw null; set => throw null; } - public override string ToString() => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Linq.Expressions.Expression OptionalDefaultValue { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.DistinctResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class DistinctResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase + public sealed class DistinctResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase { public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; public DistinctResultOperator() => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.ExceptResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ExceptResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase + public sealed class ExceptResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase { - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public ExceptResultOperator(System.Linq.Expressions.Expression source2) => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public System.Collections.Generic.IEnumerable GetConstantSource2() => throw null; - public System.Linq.Expressions.Expression Source2 { get => throw null; set => throw null; } - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.FirstResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class FirstResultOperator : Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase - { public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Linq.Expressions.Expression Source2 { get => throw null; set { } } + } + public sealed class FirstResultOperator : Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase + { public FirstResultOperator(bool returnDefaultWhenEmpty) : base(default(bool)) => throw null; - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.GroupResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class GroupResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase, Remotion.Linq.Clauses.IQuerySource - { public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public System.Linq.Expressions.Expression ElementSelector { get => throw null; set => throw null; } - public Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteGroupingInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + } + public sealed class GroupResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase, Remotion.Linq.Clauses.IQuerySource + { public GroupResultOperator(string itemName, System.Linq.Expressions.Expression keySelector, System.Linq.Expressions.Expression elementSelector) => throw null; - public string ItemName { get => throw null; set => throw null; } - public System.Type ItemType { get => throw null; } - public System.Linq.Expressions.Expression KeySelector { get => throw null; set => throw null; } - public override string ToString() => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteGroupingInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public override string ToString() => throw null; + public string ItemName { get => throw null; set { } } + public System.Type ItemType { get => throw null; } + public System.Linq.Expressions.Expression KeySelector { get => throw null; set { } } + public System.Linq.Expressions.Expression ElementSelector { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.IntersectResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class IntersectResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase + public sealed class IntersectResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase { + public IntersectResultOperator(System.Linq.Expressions.Expression source2) => throw null; + public System.Collections.Generic.IEnumerable GetConstantSource2() => throw null; public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public System.Collections.Generic.IEnumerable GetConstantSource2() => throw null; - public IntersectResultOperator(System.Linq.Expressions.Expression source2) => throw null; - public System.Linq.Expressions.Expression Source2 { get => throw null; set => throw null; } - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Linq.Expressions.Expression Source2 { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.LastResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class LastResultOperator : Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase + public sealed class LastResultOperator : Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase { + public LastResultOperator(bool returnDefaultWhenEmpty) : base(default(bool)) => throw null; public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public LastResultOperator(bool returnDefaultWhenEmpty) : base(default(bool)) => throw null; - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.LongCountResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class LongCountResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase + public sealed class LongCountResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase { public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; public LongCountResultOperator() => throw null; - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.MaxResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class MaxResultOperator : Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase + public sealed class MaxResultOperator : Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase { - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public MaxResultOperator() : base(default(bool)) => throw null; - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.MinResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class MinResultOperator : Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase - { public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public MinResultOperator() : base(default(bool)) => throw null; - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.OfTypeResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class OfTypeResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase + public sealed class MinResultOperator : Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase { + public MinResultOperator() : base(default(bool)) => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + } + public sealed class OfTypeResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase + { + public OfTypeResultOperator(System.Type searchedItemType) => throw null; public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public OfTypeResultOperator(System.Type searchedItemType) => throw null; - public System.Type SearchedItemType { get => throw null; set => throw null; } - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Type SearchedItemType { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.ReverseResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ReverseResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase + public sealed class ReverseResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase { public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; public ReverseResultOperator() => throw null; - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class SequenceFromSequenceResultOperatorBase : Remotion.Linq.Clauses.ResultOperatorBase + public sealed class SingleResultOperator : Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase { - public override Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData input) => throw null; - public abstract Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input); - protected SequenceFromSequenceResultOperatorBase() => throw null; - } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class SequenceTypePreservingResultOperatorBase : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase - { - public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - protected Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo inputSequenceInfo) => throw null; - protected SequenceTypePreservingResultOperatorBase() => throw null; - } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.SingleResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SingleResultOperator : Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase - { - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public SingleResultOperator(bool returnDefaultWhenEmpty) : base(default(bool)) => throw null; - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.SkipResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SkipResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase - { public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public System.Linq.Expressions.Expression Count { get => throw null; set => throw null; } - public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public int GetConstantCount() => throw null; - public SkipResultOperator(System.Linq.Expressions.Expression count) => throw null; - public override string ToString() => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.SumResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SumResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase + public sealed class SkipResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase + { + public SkipResultOperator(System.Linq.Expressions.Expression count) => throw null; + public int GetConstantCount() => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public System.Linq.Expressions.Expression Count { get => throw null; set { } } + } + public sealed class SumResultOperator : Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase { public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; public SumResultOperator() => throw null; - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.TakeResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class TakeResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase + public sealed class TakeResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase { - public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; - public System.Linq.Expressions.Expression Count { get => throw null; set => throw null; } - public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public int GetConstantCount() => throw null; public TakeResultOperator(System.Linq.Expressions.Expression count) => throw null; - public override string ToString() => throw null; - public override void TransformExpressions(System.Func transformation) => throw null; - } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.UnionResultOperator` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class UnionResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase, Remotion.Linq.Clauses.IQuerySource - { + public int GetConstantCount() => throw null; public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; - public System.Collections.IEnumerable GetConstantSource2() => throw null; - public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; - public string ItemName { get => throw null; set => throw null; } - public System.Type ItemType { get => throw null; set => throw null; } - public System.Linq.Expressions.Expression Source2 { get => throw null; set => throw null; } - public override string ToString() => throw null; public override void TransformExpressions(System.Func transformation) => throw null; - public UnionResultOperator(string itemName, System.Type itemType, System.Linq.Expressions.Expression source2) => throw null; + public override string ToString() => throw null; + public System.Linq.Expressions.Expression Count { get => throw null; set { } } } - - // Generated from `Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class ValueFromSequenceResultOperatorBase : Remotion.Linq.Clauses.ResultOperatorBase + public sealed class UnionResultOperator : Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase, Remotion.Linq.Clauses.IQuerySource { - public override Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData input) => throw null; - public abstract Remotion.Linq.Clauses.StreamedData.StreamedValue ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence sequence); - protected ValueFromSequenceResultOperatorBase() => throw null; + public UnionResultOperator(string itemName, System.Type itemType, System.Linq.Expressions.Expression source2) => throw null; + public System.Collections.IEnumerable GetConstantSource2() => throw null; + public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null; + public override Remotion.Linq.Clauses.StreamedData.StreamedSequence ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.StreamedSequence input) => throw null; + public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null; + public override void TransformExpressions(System.Func transformation) => throw null; + public override string ToString() => throw null; + public string ItemName { get => throw null; set { } } + public System.Type ItemType { get => throw null; set { } } + public System.Linq.Expressions.Expression Source2 { get => throw null; set { } } } - } namespace StreamedData { - // Generated from `Remotion.Linq.Clauses.StreamedData.IStreamedData` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IStreamedData { Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo DataInfo { get; } object Value { get; } } - - // Generated from `Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IStreamedDataInfo : System.IEquatable { + Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor); Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo AdjustDataType(System.Type dataType); System.Type DataType { get; } - Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor); } - - // Generated from `Remotion.Linq.Clauses.StreamedData.StreamedScalarValueInfo` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class StreamedScalarValueInfo : Remotion.Linq.Clauses.StreamedData.StreamedValueInfo + public abstract class StreamedValueInfo : Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo, System.IEquatable { - protected override Remotion.Linq.Clauses.StreamedData.StreamedValueInfo CloneWithNewDataType(System.Type dataType) => throw null; - public override Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor) => throw null; - public object ExecuteScalarQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor) => throw null; - public StreamedScalarValueInfo(System.Type dataType) : base(default(System.Type)) => throw null; - } - - // Generated from `Remotion.Linq.Clauses.StreamedData.StreamedSequence` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class StreamedSequence : Remotion.Linq.Clauses.StreamedData.IStreamedData - { - public Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo DataInfo { get => throw null; set => throw null; } - Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo Remotion.Linq.Clauses.StreamedData.IStreamedData.DataInfo { get => throw null; } - public System.Collections.Generic.IEnumerable GetTypedSequence() => throw null; - public System.Collections.IEnumerable Sequence { get => throw null; set => throw null; } - public StreamedSequence(System.Collections.IEnumerable sequence, Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo streamedSequenceInfo) => throw null; - object Remotion.Linq.Clauses.StreamedData.IStreamedData.Value { get => throw null; } - } - - // Generated from `Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class StreamedSequenceInfo : System.IEquatable, Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo - { - public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo AdjustDataType(System.Type dataType) => throw null; - public System.Type DataType { get => throw null; set => throw null; } - public override bool Equals(object obj) => throw null; - public bool Equals(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo obj) => throw null; - public System.Collections.IEnumerable ExecuteCollectionQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor) => throw null; - public Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor) => throw null; + public abstract Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor); + protected abstract Remotion.Linq.Clauses.StreamedData.StreamedValueInfo CloneWithNewDataType(System.Type dataType); + public virtual Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo AdjustDataType(System.Type dataType) => throw null; + public override sealed bool Equals(object obj) => throw null; + public virtual bool Equals(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo obj) => throw null; public override int GetHashCode() => throw null; - public System.Linq.Expressions.Expression ItemExpression { get => throw null; set => throw null; } - public System.Type ResultItemType { get => throw null; set => throw null; } - public StreamedSequenceInfo(System.Type dataType, System.Linq.Expressions.Expression itemExpression) => throw null; + public System.Type DataType { get => throw null; } } - - // Generated from `Remotion.Linq.Clauses.StreamedData.StreamedSingleValueInfo` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class StreamedSingleValueInfo : Remotion.Linq.Clauses.StreamedData.StreamedValueInfo + public sealed class StreamedScalarValueInfo : Remotion.Linq.Clauses.StreamedData.StreamedValueInfo { - protected override Remotion.Linq.Clauses.StreamedData.StreamedValueInfo CloneWithNewDataType(System.Type dataType) => throw null; - public override bool Equals(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo obj) => throw null; + public StreamedScalarValueInfo(System.Type dataType) => throw null; public override Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor) => throw null; + protected override Remotion.Linq.Clauses.StreamedData.StreamedValueInfo CloneWithNewDataType(System.Type dataType) => throw null; + public object ExecuteScalarQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor) => throw null; + } + public sealed class StreamedSequence : Remotion.Linq.Clauses.StreamedData.IStreamedData + { + public StreamedSequence(System.Collections.IEnumerable sequence, Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo streamedSequenceInfo) => throw null; + public System.Collections.Generic.IEnumerable GetTypedSequence() => throw null; + public Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo DataInfo { get => throw null; } + object Remotion.Linq.Clauses.StreamedData.IStreamedData.Value { get => throw null; } + Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo Remotion.Linq.Clauses.StreamedData.IStreamedData.DataInfo { get => throw null; } + public System.Collections.IEnumerable Sequence { get => throw null; } + } + public sealed class StreamedSequenceInfo : Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo, System.IEquatable + { + public StreamedSequenceInfo(System.Type dataType, System.Linq.Expressions.Expression itemExpression) => throw null; + public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo AdjustDataType(System.Type dataType) => throw null; + public Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor) => throw null; + public System.Collections.IEnumerable ExecuteCollectionQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor) => throw null; + public override sealed bool Equals(object obj) => throw null; + public bool Equals(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo obj) => throw null; + public override int GetHashCode() => throw null; + public System.Type ResultItemType { get => throw null; } + public System.Linq.Expressions.Expression ItemExpression { get => throw null; } + public System.Type DataType { get => throw null; } + } + public sealed class StreamedSingleValueInfo : Remotion.Linq.Clauses.StreamedData.StreamedValueInfo + { + public StreamedSingleValueInfo(System.Type dataType, bool returnDefaultWhenEmpty) => throw null; + public override Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor) => throw null; + protected override Remotion.Linq.Clauses.StreamedData.StreamedValueInfo CloneWithNewDataType(System.Type dataType) => throw null; public object ExecuteSingleQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor) => throw null; + public override bool Equals(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo obj) => throw null; public override int GetHashCode() => throw null; public bool ReturnDefaultWhenEmpty { get => throw null; } - public StreamedSingleValueInfo(System.Type dataType, bool returnDefaultWhenEmpty) : base(default(System.Type)) => throw null; } - - // Generated from `Remotion.Linq.Clauses.StreamedData.StreamedValue` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class StreamedValue : Remotion.Linq.Clauses.StreamedData.IStreamedData + public sealed class StreamedValue : Remotion.Linq.Clauses.StreamedData.IStreamedData { - public Remotion.Linq.Clauses.StreamedData.StreamedValueInfo DataInfo { get => throw null; set => throw null; } - Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo Remotion.Linq.Clauses.StreamedData.IStreamedData.DataInfo { get => throw null; } - public T GetTypedValue() => throw null; public StreamedValue(object value, Remotion.Linq.Clauses.StreamedData.StreamedValueInfo streamedValueInfo) => throw null; - public object Value { get => throw null; set => throw null; } + public T GetTypedValue() => throw null; + public Remotion.Linq.Clauses.StreamedData.StreamedValueInfo DataInfo { get => throw null; } + public object Value { get => throw null; } + Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo Remotion.Linq.Clauses.StreamedData.IStreamedData.DataInfo { get => throw null; } } - - // Generated from `Remotion.Linq.Clauses.StreamedData.StreamedValueInfo` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class StreamedValueInfo : System.IEquatable, Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo - { - public virtual Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo AdjustDataType(System.Type dataType) => throw null; - protected abstract Remotion.Linq.Clauses.StreamedData.StreamedValueInfo CloneWithNewDataType(System.Type dataType); - public System.Type DataType { get => throw null; set => throw null; } - public virtual bool Equals(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo obj) => throw null; - public override bool Equals(object obj) => throw null; - public abstract Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteQueryModel(Remotion.Linq.QueryModel queryModel, Remotion.Linq.IQueryExecutor executor); - public override int GetHashCode() => throw null; - internal StreamedValueInfo(System.Type dataType) => throw null; - } - } } namespace Parsing { - // Generated from `Remotion.Linq.Parsing.ParserException` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class ParserException : System.Exception - { - } - - // Generated from `Remotion.Linq.Parsing.RelinqExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public abstract class RelinqExpressionVisitor : System.Linq.Expressions.ExpressionVisitor { public static System.Collections.Generic.IEnumerable AdjustArgumentsForNewExpression(System.Collections.Generic.IList arguments, System.Collections.Generic.IList members) => throw null; + protected override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + protected virtual System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; protected RelinqExpressionVisitor() => throw null; - protected internal override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; - protected internal virtual System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ThrowingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` + public abstract class ParserException : System.Exception + { + } public abstract class ThrowingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { - protected System.Linq.Expressions.Expression BaseVisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitBlock(System.Linq.Expressions.BlockExpression expression) => throw null; - protected System.Linq.Expressions.CatchBlock BaseVisitCatchBlock(System.Linq.Expressions.CatchBlock expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitConditional(System.Linq.Expressions.ConditionalExpression arg) => throw null; - protected System.Linq.Expressions.Expression BaseVisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitDebugInfo(System.Linq.Expressions.DebugInfoExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitDefault(System.Linq.Expressions.DefaultExpression expression) => throw null; - protected System.Linq.Expressions.ElementInit BaseVisitElementInit(System.Linq.Expressions.ElementInit elementInit) => throw null; - protected System.Linq.Expressions.Expression BaseVisitExtension(System.Linq.Expressions.Expression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitGoto(System.Linq.Expressions.GotoExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitIndex(System.Linq.Expressions.IndexExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitLabel(System.Linq.Expressions.LabelExpression expression) => throw null; - protected System.Linq.Expressions.LabelTarget BaseVisitLabelTarget(System.Linq.Expressions.LabelTarget expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitLambda(System.Linq.Expressions.Expression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitListInit(System.Linq.Expressions.ListInitExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitLoop(System.Linq.Expressions.LoopExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitMember(System.Linq.Expressions.MemberExpression expression) => throw null; - protected System.Linq.Expressions.MemberAssignment BaseVisitMemberAssignment(System.Linq.Expressions.MemberAssignment memberAssigment) => throw null; - protected System.Linq.Expressions.MemberBinding BaseVisitMemberBinding(System.Linq.Expressions.MemberBinding expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitMemberInit(System.Linq.Expressions.MemberInitExpression expression) => throw null; - protected System.Linq.Expressions.MemberListBinding BaseVisitMemberListBinding(System.Linq.Expressions.MemberListBinding listBinding) => throw null; - protected System.Linq.Expressions.MemberMemberBinding BaseVisitMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding binding) => throw null; - protected System.Linq.Expressions.Expression BaseVisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitNew(System.Linq.Expressions.NewExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitNewArray(System.Linq.Expressions.NewArrayExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitParameter(System.Linq.Expressions.ParameterExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitRuntimeVariables(System.Linq.Expressions.RuntimeVariablesExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitSwitch(System.Linq.Expressions.SwitchExpression expression) => throw null; - protected System.Linq.Expressions.SwitchCase BaseVisitSwitchCase(System.Linq.Expressions.SwitchCase expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitTry(System.Linq.Expressions.TryExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression expression) => throw null; - protected System.Linq.Expressions.Expression BaseVisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null; protected abstract System.Exception CreateUnhandledItemException(T unhandledItem, string visitMethod); - protected ThrowingExpressionVisitor() => throw null; public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitBlock(System.Linq.Expressions.BlockExpression expression) => throw null; - protected override System.Linq.Expressions.CatchBlock VisitCatchBlock(System.Linq.Expressions.CatchBlock expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitDefault(System.Linq.Expressions.DefaultExpression expression) => throw null; - protected override System.Linq.Expressions.ElementInit VisitElementInit(System.Linq.Expressions.ElementInit elementInit) => throw null; - protected internal override System.Linq.Expressions.Expression VisitExtension(System.Linq.Expressions.Expression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitGoto(System.Linq.Expressions.GotoExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitIndex(System.Linq.Expressions.IndexExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitLabel(System.Linq.Expressions.LabelExpression expression) => throw null; - protected override System.Linq.Expressions.LabelTarget VisitLabelTarget(System.Linq.Expressions.LabelTarget expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitLambda(System.Linq.Expressions.Expression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitListInit(System.Linq.Expressions.ListInitExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitLoop(System.Linq.Expressions.LoopExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression expression) => throw null; - protected override System.Linq.Expressions.MemberAssignment VisitMemberAssignment(System.Linq.Expressions.MemberAssignment memberAssigment) => throw null; - protected override System.Linq.Expressions.MemberBinding VisitMemberBinding(System.Linq.Expressions.MemberBinding expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitMemberInit(System.Linq.Expressions.MemberInitExpression expression) => throw null; - protected override System.Linq.Expressions.MemberListBinding VisitMemberListBinding(System.Linq.Expressions.MemberListBinding listBinding) => throw null; - protected override System.Linq.Expressions.MemberMemberBinding VisitMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding binding) => throw null; - protected internal override System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitNewArray(System.Linq.Expressions.NewArrayExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitRuntimeVariables(System.Linq.Expressions.RuntimeVariablesExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSwitch(System.Linq.Expressions.SwitchExpression expression) => throw null; - protected override System.Linq.Expressions.SwitchCase VisitSwitchCase(System.Linq.Expressions.SwitchCase expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitTry(System.Linq.Expressions.TryExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null; - protected virtual TResult VisitUnhandledItem(TItem unhandledItem, string visitMethod, System.Func baseBehavior) where TItem : TResult => throw null; protected virtual System.Linq.Expressions.Expression VisitUnknownStandardExpression(System.Linq.Expressions.Expression expression, string visitMethod, System.Func baseBehavior) => throw null; + protected virtual TResult VisitUnhandledItem(TItem unhandledItem, string visitMethod, System.Func baseBehavior) where TItem : TResult => throw null; + protected override System.Linq.Expressions.Expression VisitExtension(System.Linq.Expressions.Expression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitExtension(System.Linq.Expressions.Expression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitConditional(System.Linq.Expressions.ConditionalExpression arg) => throw null; + protected override System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitParameter(System.Linq.Expressions.ParameterExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitLambda(System.Linq.Expressions.Expression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitLambda(System.Linq.Expressions.Expression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitMember(System.Linq.Expressions.MemberExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitNew(System.Linq.Expressions.NewExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitNewArray(System.Linq.Expressions.NewArrayExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitNewArray(System.Linq.Expressions.NewArrayExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitMemberInit(System.Linq.Expressions.MemberInitExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitMemberInit(System.Linq.Expressions.MemberInitExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitListInit(System.Linq.Expressions.ListInitExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitListInit(System.Linq.Expressions.ListInitExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitBlock(System.Linq.Expressions.BlockExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitBlock(System.Linq.Expressions.BlockExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitDebugInfo(System.Linq.Expressions.DebugInfoExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitDefault(System.Linq.Expressions.DefaultExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitDefault(System.Linq.Expressions.DefaultExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitGoto(System.Linq.Expressions.GotoExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitGoto(System.Linq.Expressions.GotoExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitIndex(System.Linq.Expressions.IndexExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitIndex(System.Linq.Expressions.IndexExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitLabel(System.Linq.Expressions.LabelExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitLabel(System.Linq.Expressions.LabelExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitLoop(System.Linq.Expressions.LoopExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitLoop(System.Linq.Expressions.LoopExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitRuntimeVariables(System.Linq.Expressions.RuntimeVariablesExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitRuntimeVariables(System.Linq.Expressions.RuntimeVariablesExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSwitch(System.Linq.Expressions.SwitchExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitSwitch(System.Linq.Expressions.SwitchExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitTry(System.Linq.Expressions.TryExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitTry(System.Linq.Expressions.TryExpression expression) => throw null; + protected override System.Linq.Expressions.MemberBinding VisitMemberBinding(System.Linq.Expressions.MemberBinding expression) => throw null; + protected System.Linq.Expressions.MemberBinding BaseVisitMemberBinding(System.Linq.Expressions.MemberBinding expression) => throw null; + protected override System.Linq.Expressions.ElementInit VisitElementInit(System.Linq.Expressions.ElementInit elementInit) => throw null; + protected System.Linq.Expressions.ElementInit BaseVisitElementInit(System.Linq.Expressions.ElementInit elementInit) => throw null; + protected override System.Linq.Expressions.MemberAssignment VisitMemberAssignment(System.Linq.Expressions.MemberAssignment memberAssigment) => throw null; + protected System.Linq.Expressions.MemberAssignment BaseVisitMemberAssignment(System.Linq.Expressions.MemberAssignment memberAssigment) => throw null; + protected override System.Linq.Expressions.MemberMemberBinding VisitMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding binding) => throw null; + protected System.Linq.Expressions.MemberMemberBinding BaseVisitMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding binding) => throw null; + protected override System.Linq.Expressions.MemberListBinding VisitMemberListBinding(System.Linq.Expressions.MemberListBinding listBinding) => throw null; + protected System.Linq.Expressions.MemberListBinding BaseVisitMemberListBinding(System.Linq.Expressions.MemberListBinding listBinding) => throw null; + protected override System.Linq.Expressions.CatchBlock VisitCatchBlock(System.Linq.Expressions.CatchBlock expression) => throw null; + protected System.Linq.Expressions.CatchBlock BaseVisitCatchBlock(System.Linq.Expressions.CatchBlock expression) => throw null; + protected override System.Linq.Expressions.LabelTarget VisitLabelTarget(System.Linq.Expressions.LabelTarget expression) => throw null; + protected System.Linq.Expressions.LabelTarget BaseVisitLabelTarget(System.Linq.Expressions.LabelTarget expression) => throw null; + protected override System.Linq.Expressions.SwitchCase VisitSwitchCase(System.Linq.Expressions.SwitchCase expression) => throw null; + protected System.Linq.Expressions.SwitchCase BaseVisitSwitchCase(System.Linq.Expressions.SwitchCase expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; + protected System.Linq.Expressions.Expression BaseVisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null; + protected ThrowingExpressionVisitor() => throw null; } - - // Generated from `Remotion.Linq.Parsing.TupleExpressionBuilder` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public static class TupleExpressionBuilder { public static System.Linq.Expressions.Expression AggregateExpressionsIntoTuple(System.Collections.Generic.IEnumerable expressions) => throw null; public static System.Collections.Generic.IEnumerable GetExpressionsFromTuple(System.Linq.Expressions.Expression tupleExpression) => throw null; } - namespace ExpressionVisitors { - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.MultiReplacingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class MultiReplacingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor + public sealed class MultiReplacingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static System.Linq.Expressions.Expression Replace(System.Collections.Generic.IDictionary expressionMapping, System.Linq.Expressions.Expression sourceTree) => throw null; public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.PartialEvaluatingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class PartialEvaluatingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor + public sealed class PartialEvaluatingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static System.Linq.Expressions.Expression EvaluateIndependentSubtrees(System.Linq.Expressions.Expression expressionTree, Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter evaluatableExpressionFilter) => throw null; public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.ReplacingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ReplacingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor + public sealed class ReplacingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static System.Linq.Expressions.Expression Replace(System.Linq.Expressions.Expression replacedExpression, System.Linq.Expressions.Expression replacementExpression, System.Linq.Expressions.Expression sourceTree) => throw null; public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.SubQueryFindingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SubQueryFindingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor + public sealed class SubQueryFindingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static System.Linq.Expressions.Expression Process(System.Linq.Expressions.Expression expressionTree, Remotion.Linq.Parsing.Structure.INodeTypeProvider nodeTypeProvider) => throw null; public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.TransformingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class TransformingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor + public sealed class TransformingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static System.Linq.Expressions.Expression Transform(System.Linq.Expressions.Expression expression, Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider tranformationProvider) => throw null; public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.TransparentIdentifierRemovingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class TransparentIdentifierRemovingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor + public sealed class TransparentIdentifierRemovingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor { public static System.Linq.Expressions.Expression ReplaceTransparentIdentifiers(System.Linq.Expressions.Expression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression memberExpression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression memberExpression) => throw null; + protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null; } - namespace MemberBindings { - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.FieldInfoBinding` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` + public abstract class MemberBinding + { + public static Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MemberBinding Bind(System.Reflection.MemberInfo boundMember, System.Linq.Expressions.Expression associatedExpression) => throw null; + public MemberBinding(System.Reflection.MemberInfo boundMember, System.Linq.Expressions.Expression associatedExpression) => throw null; + public abstract bool MatchesReadAccess(System.Reflection.MemberInfo member); + public System.Reflection.MemberInfo BoundMember { get => throw null; } + public System.Linq.Expressions.Expression AssociatedExpression { get => throw null; } + } public class FieldInfoBinding : Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MemberBinding { public FieldInfoBinding(System.Reflection.FieldInfo boundMember, System.Linq.Expressions.Expression associatedExpression) : base(default(System.Reflection.MemberInfo), default(System.Linq.Expressions.Expression)) => throw null; public override bool MatchesReadAccess(System.Reflection.MemberInfo member) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MemberBinding` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class MemberBinding - { - public System.Linq.Expressions.Expression AssociatedExpression { get => throw null; } - public static Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MemberBinding Bind(System.Reflection.MemberInfo boundMember, System.Linq.Expressions.Expression associatedExpression) => throw null; - public System.Reflection.MemberInfo BoundMember { get => throw null; } - public abstract bool MatchesReadAccess(System.Reflection.MemberInfo member); - public MemberBinding(System.Reflection.MemberInfo boundMember, System.Linq.Expressions.Expression associatedExpression) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MethodInfoBinding` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class MethodInfoBinding : Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MemberBinding { - public override bool MatchesReadAccess(System.Reflection.MemberInfo readMember) => throw null; public MethodInfoBinding(System.Reflection.MethodInfo boundMember, System.Linq.Expressions.Expression associatedExpression) : base(default(System.Reflection.MemberInfo), default(System.Linq.Expressions.Expression)) => throw null; + public override bool MatchesReadAccess(System.Reflection.MemberInfo readMember) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.PropertyInfoBinding` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class PropertyInfoBinding : Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MemberBinding { - public override bool MatchesReadAccess(System.Reflection.MemberInfo member) => throw null; public PropertyInfoBinding(System.Reflection.PropertyInfo boundMember, System.Linq.Expressions.Expression associatedExpression) : base(default(System.Reflection.MemberInfo), default(System.Linq.Expressions.Expression)) => throw null; + public override bool MatchesReadAccess(System.Reflection.MemberInfo member) => throw null; } - } namespace Transformation { - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public delegate System.Linq.Expressions.Expression ExpressionTransformation(System.Linq.Expressions.Expression expression); - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ExpressionTransformerRegistry : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider - { - public static Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry CreateDefault() => throw null; - public ExpressionTransformerRegistry() => throw null; - public Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation[] GetAllTransformations(System.Linq.Expressions.ExpressionType expressionType) => throw null; - public System.Collections.Generic.IEnumerable GetTransformations(System.Linq.Expressions.Expression expression) => throw null; - public void Register(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer transformer) where T : System.Linq.Expressions.Expression => throw null; - public int RegisteredTransformerCount { get => throw null; } - } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IExpressionTranformationProvider { System.Collections.Generic.IEnumerable GetTransformations(System.Linq.Expressions.Expression expression); } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer<>` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` + public class ExpressionTransformerRegistry : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider + { + public static Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry CreateDefault() => throw null; + public Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation[] GetAllTransformations(System.Linq.Expressions.ExpressionType expressionType) => throw null; + public System.Collections.Generic.IEnumerable GetTransformations(System.Linq.Expressions.Expression expression) => throw null; + public void Register(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer transformer) where T : System.Linq.Expressions.Expression => throw null; + public ExpressionTransformerRegistry() => throw null; + public int RegisteredTransformerCount { get => throw null; } + } public interface IExpressionTransformer where T : System.Linq.Expressions.Expression { - System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get; } System.Linq.Expressions.Expression Transform(T expression); + System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get; } } - namespace PredefinedTransformations { - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class AttributeEvaluatingExpressionTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer { + public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.Expression expression) => throw null; public AttributeEvaluatingExpressionTransformer() => throw null; - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer+IMethodCallExpressionTransformerAttribute` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` + public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } public interface IMethodCallExpressionTransformerAttribute { Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer GetExpressionTransformer(System.Linq.Expressions.MethodCallExpression expression); } - - - public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } - public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.Expression expression) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.DictionaryEntryNewExpressionTransformer` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class DictionaryEntryNewExpressionTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.MemberAddingNewExpressionTransformerBase - { - protected override bool CanAddMembers(System.Type instantiatedType, System.Collections.ObjectModel.ReadOnlyCollection arguments) => throw null; - public DictionaryEntryNewExpressionTransformer() => throw null; - protected override System.Reflection.MemberInfo[] GetMembers(System.Reflection.ConstructorInfo constructorInfo, System.Collections.ObjectModel.ReadOnlyCollection arguments) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.InvocationOfLambdaExpressionTransformer` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class InvocationOfLambdaExpressionTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer - { - public InvocationOfLambdaExpressionTransformer() => throw null; - public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } - public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.InvocationExpression expression) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.KeyValuePairNewExpressionTransformer` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class KeyValuePairNewExpressionTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.MemberAddingNewExpressionTransformerBase - { - protected override bool CanAddMembers(System.Type instantiatedType, System.Collections.ObjectModel.ReadOnlyCollection arguments) => throw null; - protected override System.Reflection.MemberInfo[] GetMembers(System.Reflection.ConstructorInfo constructorInfo, System.Collections.ObjectModel.ReadOnlyCollection arguments) => throw null; - public KeyValuePairNewExpressionTransformer() => throw null; - } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.MemberAddingNewExpressionTransformerBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public abstract class MemberAddingNewExpressionTransformerBase : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer { protected abstract bool CanAddMembers(System.Type instantiatedType, System.Collections.ObjectModel.ReadOnlyCollection arguments); - protected System.Reflection.MemberInfo GetMemberForNewExpression(System.Type instantiatedType, string propertyName) => throw null; protected abstract System.Reflection.MemberInfo[] GetMembers(System.Reflection.ConstructorInfo constructorInfo, System.Collections.ObjectModel.ReadOnlyCollection arguments); + public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.NewExpression expression) => throw null; + protected System.Reflection.MemberInfo GetMemberForNewExpression(System.Type instantiatedType, string propertyName) => throw null; protected MemberAddingNewExpressionTransformerBase() => throw null; public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } - public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.NewExpression expression) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.MethodCallExpressionTransformerAttribute` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` + public class DictionaryEntryNewExpressionTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.MemberAddingNewExpressionTransformerBase + { + protected override System.Reflection.MemberInfo[] GetMembers(System.Reflection.ConstructorInfo constructorInfo, System.Collections.ObjectModel.ReadOnlyCollection arguments) => throw null; + protected override bool CanAddMembers(System.Type instantiatedType, System.Collections.ObjectModel.ReadOnlyCollection arguments) => throw null; + public DictionaryEntryNewExpressionTransformer() => throw null; + } + public class InvocationOfLambdaExpressionTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer + { + public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.InvocationExpression expression) => throw null; + public InvocationOfLambdaExpressionTransformer() => throw null; + public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } + } + public class KeyValuePairNewExpressionTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.MemberAddingNewExpressionTransformerBase + { + protected override System.Reflection.MemberInfo[] GetMembers(System.Reflection.ConstructorInfo constructorInfo, System.Collections.ObjectModel.ReadOnlyCollection arguments) => throw null; + protected override bool CanAddMembers(System.Type instantiatedType, System.Collections.ObjectModel.ReadOnlyCollection arguments) => throw null; + public KeyValuePairNewExpressionTransformer() => throw null; + } public class MethodCallExpressionTransformerAttribute : System.Attribute, Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer.IMethodCallExpressionTransformerAttribute { - public Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer GetExpressionTransformer(System.Linq.Expressions.MethodCallExpression expression) => throw null; public MethodCallExpressionTransformerAttribute(System.Type transformerType) => throw null; + public Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer GetExpressionTransformer(System.Linq.Expressions.MethodCallExpression expression) => throw null; public System.Type TransformerType { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.NullableValueTransformer` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class NullableValueTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer { + public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.MemberExpression expression) => throw null; public NullableValueTransformer() => throw null; public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } - public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.MemberExpression expression) => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.TupleNewExpressionTransformer` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class TupleNewExpressionTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.MemberAddingNewExpressionTransformerBase { protected override bool CanAddMembers(System.Type instantiatedType, System.Collections.ObjectModel.ReadOnlyCollection arguments) => throw null; protected override System.Reflection.MemberInfo[] GetMembers(System.Reflection.ConstructorInfo constructorInfo, System.Collections.ObjectModel.ReadOnlyCollection arguments) => throw null; public TupleNewExpressionTransformer() => throw null; } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.VBCompareStringExpressionTransformer` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class VBCompareStringExpressionTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer { - public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.BinaryExpression expression) => throw null; public VBCompareStringExpressionTransformer() => throw null; + public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.VBInformationIsNothingExpressionTransformer` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class VBInformationIsNothingExpressionTransformer : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer { - public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.MethodCallExpression expression) => throw null; public VBInformationIsNothingExpressionTransformer() => throw null; + public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; } } - } } namespace TreeEvaluation { - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.EvaluatableExpressionFilterBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class EvaluatableExpressionFilterBase : Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter - { - protected EvaluatableExpressionFilterBase() => throw null; - public virtual bool IsEvaluatableBinary(System.Linq.Expressions.BinaryExpression node) => throw null; - public virtual bool IsEvaluatableBlock(System.Linq.Expressions.BlockExpression node) => throw null; - public virtual bool IsEvaluatableCatchBlock(System.Linq.Expressions.CatchBlock node) => throw null; - public virtual bool IsEvaluatableConditional(System.Linq.Expressions.ConditionalExpression node) => throw null; - public virtual bool IsEvaluatableConstant(System.Linq.Expressions.ConstantExpression node) => throw null; - public virtual bool IsEvaluatableDebugInfo(System.Linq.Expressions.DebugInfoExpression node) => throw null; - public virtual bool IsEvaluatableDefault(System.Linq.Expressions.DefaultExpression node) => throw null; - public virtual bool IsEvaluatableElementInit(System.Linq.Expressions.ElementInit node) => throw null; - public virtual bool IsEvaluatableGoto(System.Linq.Expressions.GotoExpression node) => throw null; - public virtual bool IsEvaluatableIndex(System.Linq.Expressions.IndexExpression node) => throw null; - public virtual bool IsEvaluatableInvocation(System.Linq.Expressions.InvocationExpression node) => throw null; - public virtual bool IsEvaluatableLabel(System.Linq.Expressions.LabelExpression node) => throw null; - public virtual bool IsEvaluatableLabelTarget(System.Linq.Expressions.LabelTarget node) => throw null; - public virtual bool IsEvaluatableLambda(System.Linq.Expressions.LambdaExpression node) => throw null; - public virtual bool IsEvaluatableListInit(System.Linq.Expressions.ListInitExpression node) => throw null; - public virtual bool IsEvaluatableLoop(System.Linq.Expressions.LoopExpression node) => throw null; - public virtual bool IsEvaluatableMember(System.Linq.Expressions.MemberExpression node) => throw null; - public virtual bool IsEvaluatableMemberAssignment(System.Linq.Expressions.MemberAssignment node) => throw null; - public virtual bool IsEvaluatableMemberInit(System.Linq.Expressions.MemberInitExpression node) => throw null; - public virtual bool IsEvaluatableMemberListBinding(System.Linq.Expressions.MemberListBinding node) => throw null; - public virtual bool IsEvaluatableMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding node) => throw null; - public virtual bool IsEvaluatableMethodCall(System.Linq.Expressions.MethodCallExpression node) => throw null; - public virtual bool IsEvaluatableNew(System.Linq.Expressions.NewExpression node) => throw null; - public virtual bool IsEvaluatableNewArray(System.Linq.Expressions.NewArrayExpression node) => throw null; - public virtual bool IsEvaluatableSwitch(System.Linq.Expressions.SwitchExpression node) => throw null; - public virtual bool IsEvaluatableSwitchCase(System.Linq.Expressions.SwitchCase node) => throw null; - public virtual bool IsEvaluatableTry(System.Linq.Expressions.TryExpression node) => throw null; - public virtual bool IsEvaluatableTypeBinary(System.Linq.Expressions.TypeBinaryExpression node) => throw null; - public virtual bool IsEvaluatableUnary(System.Linq.Expressions.UnaryExpression node) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.EvaluatableTreeFindingExpressionVisitor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class EvaluatableTreeFindingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor, Remotion.Linq.Clauses.Expressions.IPartialEvaluationExceptionExpressionVisitor - { - public static Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.PartialEvaluationInfo Analyze(System.Linq.Expressions.Expression expressionTree, Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter evaluatableExpressionFilter) => throw null; - public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitBlock(System.Linq.Expressions.BlockExpression expression) => throw null; - protected override System.Linq.Expressions.CatchBlock VisitCatchBlock(System.Linq.Expressions.CatchBlock node) => throw null; - protected internal override System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitDefault(System.Linq.Expressions.DefaultExpression expression) => throw null; - protected override System.Linq.Expressions.ElementInit VisitElementInit(System.Linq.Expressions.ElementInit node) => throw null; - protected internal override System.Linq.Expressions.Expression VisitGoto(System.Linq.Expressions.GotoExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitIndex(System.Linq.Expressions.IndexExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitLabel(System.Linq.Expressions.LabelExpression expression) => throw null; - protected override System.Linq.Expressions.LabelTarget VisitLabelTarget(System.Linq.Expressions.LabelTarget node) => throw null; - protected internal override System.Linq.Expressions.Expression VisitLambda(System.Linq.Expressions.Expression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitListInit(System.Linq.Expressions.ListInitExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitLoop(System.Linq.Expressions.LoopExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression expression) => throw null; - protected override System.Linq.Expressions.MemberAssignment VisitMemberAssignment(System.Linq.Expressions.MemberAssignment node) => throw null; - protected internal override System.Linq.Expressions.Expression VisitMemberInit(System.Linq.Expressions.MemberInitExpression expression) => throw null; - protected override System.Linq.Expressions.MemberListBinding VisitMemberListBinding(System.Linq.Expressions.MemberListBinding node) => throw null; - protected override System.Linq.Expressions.MemberMemberBinding VisitMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding node) => throw null; - protected internal override System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitNewArray(System.Linq.Expressions.NewArrayExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression expression) => throw null; - public System.Linq.Expressions.Expression VisitPartialEvaluationException(Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression partialEvaluationExceptionExpression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitSwitch(System.Linq.Expressions.SwitchExpression expression) => throw null; - protected override System.Linq.Expressions.SwitchCase VisitSwitchCase(System.Linq.Expressions.SwitchCase node) => throw null; - protected internal override System.Linq.Expressions.Expression VisitTry(System.Linq.Expressions.TryExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression expression) => throw null; - protected internal override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IEvaluatableExpressionFilter { bool IsEvaluatableBinary(System.Linq.Expressions.BinaryExpression node); - bool IsEvaluatableBlock(System.Linq.Expressions.BlockExpression node); - bool IsEvaluatableCatchBlock(System.Linq.Expressions.CatchBlock node); bool IsEvaluatableConditional(System.Linq.Expressions.ConditionalExpression node); bool IsEvaluatableConstant(System.Linq.Expressions.ConstantExpression node); - bool IsEvaluatableDebugInfo(System.Linq.Expressions.DebugInfoExpression node); - bool IsEvaluatableDefault(System.Linq.Expressions.DefaultExpression node); bool IsEvaluatableElementInit(System.Linq.Expressions.ElementInit node); - bool IsEvaluatableGoto(System.Linq.Expressions.GotoExpression node); - bool IsEvaluatableIndex(System.Linq.Expressions.IndexExpression node); bool IsEvaluatableInvocation(System.Linq.Expressions.InvocationExpression node); - bool IsEvaluatableLabel(System.Linq.Expressions.LabelExpression node); - bool IsEvaluatableLabelTarget(System.Linq.Expressions.LabelTarget node); bool IsEvaluatableLambda(System.Linq.Expressions.LambdaExpression node); bool IsEvaluatableListInit(System.Linq.Expressions.ListInitExpression node); - bool IsEvaluatableLoop(System.Linq.Expressions.LoopExpression node); bool IsEvaluatableMember(System.Linq.Expressions.MemberExpression node); bool IsEvaluatableMemberAssignment(System.Linq.Expressions.MemberAssignment node); bool IsEvaluatableMemberInit(System.Linq.Expressions.MemberInitExpression node); @@ -1271,684 +974,625 @@ namespace Remotion bool IsEvaluatableMethodCall(System.Linq.Expressions.MethodCallExpression node); bool IsEvaluatableNew(System.Linq.Expressions.NewExpression node); bool IsEvaluatableNewArray(System.Linq.Expressions.NewArrayExpression node); + bool IsEvaluatableTypeBinary(System.Linq.Expressions.TypeBinaryExpression node); + bool IsEvaluatableUnary(System.Linq.Expressions.UnaryExpression node); + bool IsEvaluatableBlock(System.Linq.Expressions.BlockExpression node); + bool IsEvaluatableCatchBlock(System.Linq.Expressions.CatchBlock node); + bool IsEvaluatableDebugInfo(System.Linq.Expressions.DebugInfoExpression node); + bool IsEvaluatableDefault(System.Linq.Expressions.DefaultExpression node); + bool IsEvaluatableGoto(System.Linq.Expressions.GotoExpression node); + bool IsEvaluatableIndex(System.Linq.Expressions.IndexExpression node); + bool IsEvaluatableLabel(System.Linq.Expressions.LabelExpression node); + bool IsEvaluatableLabelTarget(System.Linq.Expressions.LabelTarget node); + bool IsEvaluatableLoop(System.Linq.Expressions.LoopExpression node); bool IsEvaluatableSwitch(System.Linq.Expressions.SwitchExpression node); bool IsEvaluatableSwitchCase(System.Linq.Expressions.SwitchCase node); bool IsEvaluatableTry(System.Linq.Expressions.TryExpression node); - bool IsEvaluatableTypeBinary(System.Linq.Expressions.TypeBinaryExpression node); - bool IsEvaluatableUnary(System.Linq.Expressions.UnaryExpression node); } - - // Generated from `Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.PartialEvaluationInfo` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` + public abstract class EvaluatableExpressionFilterBase : Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter + { + protected EvaluatableExpressionFilterBase() => throw null; + public virtual bool IsEvaluatableBinary(System.Linq.Expressions.BinaryExpression node) => throw null; + public virtual bool IsEvaluatableConditional(System.Linq.Expressions.ConditionalExpression node) => throw null; + public virtual bool IsEvaluatableConstant(System.Linq.Expressions.ConstantExpression node) => throw null; + public virtual bool IsEvaluatableElementInit(System.Linq.Expressions.ElementInit node) => throw null; + public virtual bool IsEvaluatableInvocation(System.Linq.Expressions.InvocationExpression node) => throw null; + public virtual bool IsEvaluatableLambda(System.Linq.Expressions.LambdaExpression node) => throw null; + public virtual bool IsEvaluatableListInit(System.Linq.Expressions.ListInitExpression node) => throw null; + public virtual bool IsEvaluatableMember(System.Linq.Expressions.MemberExpression node) => throw null; + public virtual bool IsEvaluatableMemberAssignment(System.Linq.Expressions.MemberAssignment node) => throw null; + public virtual bool IsEvaluatableMemberInit(System.Linq.Expressions.MemberInitExpression node) => throw null; + public virtual bool IsEvaluatableMemberListBinding(System.Linq.Expressions.MemberListBinding node) => throw null; + public virtual bool IsEvaluatableMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding node) => throw null; + public virtual bool IsEvaluatableMethodCall(System.Linq.Expressions.MethodCallExpression node) => throw null; + public virtual bool IsEvaluatableNew(System.Linq.Expressions.NewExpression node) => throw null; + public virtual bool IsEvaluatableNewArray(System.Linq.Expressions.NewArrayExpression node) => throw null; + public virtual bool IsEvaluatableTypeBinary(System.Linq.Expressions.TypeBinaryExpression node) => throw null; + public virtual bool IsEvaluatableUnary(System.Linq.Expressions.UnaryExpression node) => throw null; + public virtual bool IsEvaluatableBlock(System.Linq.Expressions.BlockExpression node) => throw null; + public virtual bool IsEvaluatableCatchBlock(System.Linq.Expressions.CatchBlock node) => throw null; + public virtual bool IsEvaluatableDebugInfo(System.Linq.Expressions.DebugInfoExpression node) => throw null; + public virtual bool IsEvaluatableDefault(System.Linq.Expressions.DefaultExpression node) => throw null; + public virtual bool IsEvaluatableGoto(System.Linq.Expressions.GotoExpression node) => throw null; + public virtual bool IsEvaluatableIndex(System.Linq.Expressions.IndexExpression node) => throw null; + public virtual bool IsEvaluatableLabel(System.Linq.Expressions.LabelExpression node) => throw null; + public virtual bool IsEvaluatableLabelTarget(System.Linq.Expressions.LabelTarget node) => throw null; + public virtual bool IsEvaluatableLoop(System.Linq.Expressions.LoopExpression node) => throw null; + public virtual bool IsEvaluatableSwitch(System.Linq.Expressions.SwitchExpression node) => throw null; + public virtual bool IsEvaluatableSwitchCase(System.Linq.Expressions.SwitchCase node) => throw null; + public virtual bool IsEvaluatableTry(System.Linq.Expressions.TryExpression node) => throw null; + } + public sealed class EvaluatableTreeFindingExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor, Remotion.Linq.Clauses.Expressions.IPartialEvaluationExceptionExpressionVisitor + { + public static Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.PartialEvaluationInfo Analyze(System.Linq.Expressions.Expression expressionTree, Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter evaluatableExpressionFilter) => throw null; + public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null; + protected override System.Linq.Expressions.ElementInit VisitElementInit(System.Linq.Expressions.ElementInit node) => throw null; + protected override System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitLambda(System.Linq.Expressions.Expression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression expression) => throw null; + protected override System.Linq.Expressions.MemberAssignment VisitMemberAssignment(System.Linq.Expressions.MemberAssignment node) => throw null; + protected override System.Linq.Expressions.Expression VisitMemberInit(System.Linq.Expressions.MemberInitExpression expression) => throw null; + protected override System.Linq.Expressions.MemberListBinding VisitMemberListBinding(System.Linq.Expressions.MemberListBinding node) => throw null; + protected override System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null; + protected override System.Linq.Expressions.MemberMemberBinding VisitMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding node) => throw null; + protected override System.Linq.Expressions.Expression VisitListInit(System.Linq.Expressions.ListInitExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitNewArray(System.Linq.Expressions.NewArrayExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitBlock(System.Linq.Expressions.BlockExpression expression) => throw null; + protected override System.Linq.Expressions.CatchBlock VisitCatchBlock(System.Linq.Expressions.CatchBlock node) => throw null; + protected override System.Linq.Expressions.Expression VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitDefault(System.Linq.Expressions.DefaultExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitGoto(System.Linq.Expressions.GotoExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitIndex(System.Linq.Expressions.IndexExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitLabel(System.Linq.Expressions.LabelExpression expression) => throw null; + protected override System.Linq.Expressions.LabelTarget VisitLabelTarget(System.Linq.Expressions.LabelTarget node) => throw null; + protected override System.Linq.Expressions.Expression VisitLoop(System.Linq.Expressions.LoopExpression expression) => throw null; + protected override System.Linq.Expressions.Expression VisitSwitch(System.Linq.Expressions.SwitchExpression expression) => throw null; + protected override System.Linq.Expressions.SwitchCase VisitSwitchCase(System.Linq.Expressions.SwitchCase node) => throw null; + protected override System.Linq.Expressions.Expression VisitTry(System.Linq.Expressions.TryExpression expression) => throw null; + public System.Linq.Expressions.Expression VisitPartialEvaluationException(Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression partialEvaluationExceptionExpression) => throw null; + } public class PartialEvaluationInfo { public void AddEvaluatableExpression(System.Linq.Expressions.Expression expression) => throw null; - public int Count { get => throw null; } public bool IsEvaluatableExpression(System.Linq.Expressions.Expression expression) => throw null; public PartialEvaluationInfo() => throw null; + public int Count { get => throw null; } } - } } namespace Structure { - // Generated from `Remotion.Linq.Parsing.Structure.ExpressionTreeParser` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ExpressionTreeParser + public sealed class ExpressionTreeParser { public static Remotion.Linq.Parsing.Structure.ExpressionTreeParser CreateDefault() => throw null; public static Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider CreateDefaultNodeTypeProvider() => throw null; public static Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor CreateDefaultProcessor(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider tranformationProvider, Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter evaluatableExpressionFilter = default(Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter)) => throw null; public ExpressionTreeParser(Remotion.Linq.Parsing.Structure.INodeTypeProvider nodeTypeProvider, Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor processor) => throw null; + public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode ParseTree(System.Linq.Expressions.Expression expressionTree) => throw null; public System.Linq.Expressions.MethodCallExpression GetQueryOperatorExpression(System.Linq.Expressions.Expression expression) => throw null; public Remotion.Linq.Parsing.Structure.INodeTypeProvider NodeTypeProvider { get => throw null; } - public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode ParseTree(System.Linq.Expressions.Expression expressionTree) => throw null; public Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor Processor { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IExpressionTreeProcessor { System.Linq.Expressions.Expression Process(System.Linq.Expressions.Expression expressionTree); } - - // Generated from `Remotion.Linq.Parsing.Structure.INodeTypeProvider` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface INodeTypeProvider { - System.Type GetNodeType(System.Reflection.MethodInfo method); bool IsRegistered(System.Reflection.MethodInfo method); + System.Type GetNodeType(System.Reflection.MethodInfo method); } - - // Generated from `Remotion.Linq.Parsing.Structure.IQueryParser` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IQueryParser { Remotion.Linq.QueryModel GetParsedQuery(System.Linq.Expressions.Expression expressionTreeRoot); } - - // Generated from `Remotion.Linq.Parsing.Structure.MethodCallExpressionParser` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class MethodCallExpressionParser + public sealed class MethodCallExpressionParser { public MethodCallExpressionParser(Remotion.Linq.Parsing.Structure.INodeTypeProvider nodeTypeProvider) => throw null; public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode Parse(string associatedIdentifier, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode source, System.Collections.Generic.IEnumerable arguments, System.Linq.Expressions.MethodCallExpression expressionToParse) => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.QueryParser` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class QueryParser : Remotion.Linq.Parsing.Structure.IQueryParser + public sealed class QueryParser : Remotion.Linq.Parsing.Structure.IQueryParser { public static Remotion.Linq.Parsing.Structure.QueryParser CreateDefault() => throw null; - public Remotion.Linq.Parsing.Structure.ExpressionTreeParser ExpressionTreeParser { get => throw null; } + public QueryParser(Remotion.Linq.Parsing.Structure.ExpressionTreeParser expressionTreeParser) => throw null; public Remotion.Linq.QueryModel GetParsedQuery(System.Linq.Expressions.Expression expressionTreeRoot) => throw null; + public Remotion.Linq.Parsing.Structure.ExpressionTreeParser ExpressionTreeParser { get => throw null; } public Remotion.Linq.Parsing.Structure.INodeTypeProvider NodeTypeProvider { get => throw null; } public Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor Processor { get => throw null; } - public QueryParser(Remotion.Linq.Parsing.Structure.ExpressionTreeParser expressionTreeParser) => throw null; } - namespace ExpressionTreeProcessors { - // Generated from `Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class CompoundExpressionTreeProcessor : Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor + public sealed class CompoundExpressionTreeProcessor : Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor { public CompoundExpressionTreeProcessor(System.Collections.Generic.IEnumerable innerProcessors) => throw null; + public System.Linq.Expressions.Expression Process(System.Linq.Expressions.Expression expressionTree) => throw null; public System.Collections.Generic.IList InnerProcessors { get => throw null; } - public System.Linq.Expressions.Expression Process(System.Linq.Expressions.Expression expressionTree) => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.NullExpressionTreeProcessor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class NullExpressionTreeProcessor : Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor + public sealed class NullExpressionTreeProcessor : Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor { + public System.Linq.Expressions.Expression Process(System.Linq.Expressions.Expression expressionTree) => throw null; public NullExpressionTreeProcessor() => throw null; - public System.Linq.Expressions.Expression Process(System.Linq.Expressions.Expression expressionTree) => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.PartialEvaluatingExpressionTreeProcessor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class PartialEvaluatingExpressionTreeProcessor : Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor + public sealed class PartialEvaluatingExpressionTreeProcessor : Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor { - public Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter Filter { get => throw null; } public PartialEvaluatingExpressionTreeProcessor(Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter filter) => throw null; public System.Linq.Expressions.Expression Process(System.Linq.Expressions.Expression expressionTree) => throw null; + public Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter Filter { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.TransformingExpressionTreeProcessor` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class TransformingExpressionTreeProcessor : Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor + public sealed class TransformingExpressionTreeProcessor : Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor { + public TransformingExpressionTreeProcessor(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider provider) => throw null; public System.Linq.Expressions.Expression Process(System.Linq.Expressions.Expression expressionTree) => throw null; public Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider Provider { get => throw null; } - public TransformingExpressionTreeProcessor(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider provider) => throw null; } - } namespace IntermediateModel { - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.AggregateExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AggregateExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - public AggregateExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression func) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.LambdaExpression Func { get => throw null; } - public System.Linq.Expressions.LambdaExpression GetResolvedFunc(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.AggregateFromSeedExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AggregateFromSeedExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - public AggregateFromSeedExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression seed, System.Linq.Expressions.LambdaExpression func, System.Linq.Expressions.LambdaExpression optionalResultSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.LambdaExpression Func { get => throw null; } - public System.Linq.Expressions.LambdaExpression GetResolvedFunc(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public System.Linq.Expressions.LambdaExpression OptionalResultSelector { get => throw null; } - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression Seed { get => throw null; } - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.AllExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AllExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - public AllExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression predicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedPredicate(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public System.Linq.Expressions.LambdaExpression Predicate { get => throw null; } - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.AnyExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AnyExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - public AnyExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.AsQueryableExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AsQueryableExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - public AsQueryableExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.AverageExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class AverageExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - public AverageExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.CastExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class CastExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - public CastExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - public System.Type CastItemType { get => throw null; } - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public struct ClauseGenerationContext - { - public void AddContextInfo(Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode node, object contextInfo) => throw null; - public ClauseGenerationContext(Remotion.Linq.Parsing.Structure.INodeTypeProvider nodeTypeProvider) => throw null; - // Stub generator skipped constructor - public int Count { get => throw null; } - public object GetContextInfo(Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode node) => throw null; - public Remotion.Linq.Parsing.Structure.INodeTypeProvider NodeTypeProvider { get => throw null; } - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ConcatExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ConcatExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceSetOperationExpressionNodeBase - { - public ConcatExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression source2) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.Expression)) => throw null; - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateSpecificResultOperator() => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ContainsExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ContainsExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - public ContainsExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression item) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethodNames() => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public System.Linq.Expressions.Expression Item { get => throw null; } - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.CountExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class CountExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - public CountExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.DefaultIfEmptyExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class DefaultIfEmptyExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public DefaultIfEmptyExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression optionalDefaultValue) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public System.Linq.Expressions.Expression OptionalDefaultValue { get => throw null; } - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.DistinctExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class DistinctExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public DistinctExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ExceptExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ExceptExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public ExceptExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression source2) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression Source2 { get => throw null; } - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ExpressionNodeInstantiationException` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ExpressionNodeInstantiationException : System.Exception - { - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ExpressionResolver` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ExpressionResolver - { - public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode CurrentNode { get => throw null; } - public ExpressionResolver(Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode currentNode) => throw null; - public System.Linq.Expressions.Expression GetResolvedExpression(System.Linq.Expressions.Expression unresolvedExpression, System.Linq.Expressions.ParameterExpression parameterToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.FirstExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class FirstExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public FirstExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class GroupByExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase, Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode - { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedOptionalElementSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public GroupByExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression keySelector, System.Linq.Expressions.LambdaExpression optionalElementSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - public System.Linq.Expressions.LambdaExpression KeySelector { get => throw null; } - public System.Linq.Expressions.LambdaExpression OptionalElementSelector { get => throw null; } - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByWithResultSelectorExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class GroupByWithResultSelectorExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode - { - public Remotion.Linq.QueryModel Apply(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public string AssociatedIdentifier { get => throw null; } - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public GroupByWithResultSelectorExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression keySelector, System.Linq.Expressions.LambdaExpression elementSelectorOrResultSelector, System.Linq.Expressions.LambdaExpression resultSelectorOrNull) => throw null; - public System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression Selector { get => throw null; } - public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode Source { get => throw null; } - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.GroupJoinExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class GroupJoinExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase, Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode - { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedResultSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public GroupJoinExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression innerSequence, System.Linq.Expressions.LambdaExpression outerKeySelector, System.Linq.Expressions.LambdaExpression innerKeySelector, System.Linq.Expressions.LambdaExpression resultSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; - public System.Linq.Expressions.LambdaExpression InnerKeySelector { get => throw null; } - public System.Linq.Expressions.Expression InnerSequence { get => throw null; } - public Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode JoinExpressionNode { get => throw null; } - public System.Linq.Expressions.LambdaExpression OuterKeySelector { get => throw null; } - public System.Linq.Expressions.MethodCallExpression ParsedExpression { get => throw null; } - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.LambdaExpression ResultSelector { get => throw null; } - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IExpressionNode { - Remotion.Linq.QueryModel Apply(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext); - string AssociatedIdentifier { get; } System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext); + Remotion.Linq.QueryModel Apply(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext); Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode Source { get; } + string AssociatedIdentifier { get; } + } + public abstract class MethodCallExpressionNodeBase : Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode + { + protected MethodCallExpressionNodeBase(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo) => throw null; + public abstract System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext); + protected abstract void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext); + public Remotion.Linq.QueryModel Apply(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected virtual Remotion.Linq.QueryModel WrapQueryModelAfterEndOfQuery(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected virtual void SetResultTypeOverride(Remotion.Linq.QueryModel queryModel) => throw null; + protected System.NotSupportedException CreateResolveNotSupportedException() => throw null; + protected System.NotSupportedException CreateOutputParameterNotSupportedException() => throw null; + public string AssociatedIdentifier { get => throw null; } + public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode Source { get => throw null; } + public System.Type NodeResultType { get => throw null; } + } + public abstract class ResultOperatorExpressionNodeBase : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase + { + protected ResultOperatorExpressionNodeBase(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate, System.Linq.Expressions.LambdaExpression optionalSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; + protected abstract Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext); + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override sealed Remotion.Linq.QueryModel WrapQueryModelAfterEndOfQuery(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.MethodCallExpression ParsedExpression { get => throw null; } + } + public sealed class AggregateExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public AggregateExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression func) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public System.Linq.Expressions.LambdaExpression GetResolvedFunc(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.LambdaExpression Func { get => throw null; } + } + public sealed class AggregateFromSeedExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public AggregateFromSeedExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression seed, System.Linq.Expressions.LambdaExpression func, System.Linq.Expressions.LambdaExpression optionalResultSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public System.Linq.Expressions.LambdaExpression GetResolvedFunc(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.Expression Seed { get => throw null; } + public System.Linq.Expressions.LambdaExpression Func { get => throw null; } + public System.Linq.Expressions.LambdaExpression OptionalResultSelector { get => throw null; } + } + public sealed class AllExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public AllExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression predicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public System.Linq.Expressions.Expression GetResolvedPredicate(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.LambdaExpression Predicate { get => throw null; } + } + public sealed class AnyExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public AnyExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class AsQueryableExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public AsQueryableExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class AverageExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public AverageExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class CastExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public CastExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Type CastItemType { get => throw null; } + } + public struct ClauseGenerationContext + { + public ClauseGenerationContext(Remotion.Linq.Parsing.Structure.INodeTypeProvider nodeTypeProvider) => throw null; + public void AddContextInfo(Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode node, object contextInfo) => throw null; + public object GetContextInfo(Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode node) => throw null; + public Remotion.Linq.Parsing.Structure.INodeTypeProvider NodeTypeProvider { get => throw null; } + public int Count { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public interface IQuerySourceExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode { } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.IntersectExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class IntersectExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + public abstract class QuerySourceSetOperationExpressionNodeBase : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase, Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode { + protected QuerySourceSetOperationExpressionNodeBase(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression source2) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override sealed System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected abstract Remotion.Linq.Clauses.ResultOperatorBase CreateSpecificResultOperator(); + protected override sealed Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.Expression Source2 { get => throw null; } + public System.Type ItemType { get => throw null; } + } + public sealed class ConcatExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceSetOperationExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public ConcatExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression source2) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.Expression)) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateSpecificResultOperator() => throw null; + } + public sealed class ContainsExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public static System.Collections.Generic.IEnumerable GetSupportedMethodNames() => throw null; + public ContainsExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression item) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.Expression Item { get => throw null; } + } + public sealed class CountExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public CountExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class DefaultIfEmptyExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public DefaultIfEmptyExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression optionalDefaultValue) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.Expression OptionalDefaultValue { get => throw null; } + } + public sealed class DistinctExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public DistinctExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class ExceptExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public ExceptExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression source2) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.Expression Source2 { get => throw null; } + } + public sealed class ExpressionNodeInstantiationException : System.Exception + { + } + public sealed class ExpressionResolver + { + public ExpressionResolver(Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode currentNode) => throw null; + public System.Linq.Expressions.Expression GetResolvedExpression(System.Linq.Expressions.Expression unresolvedExpression, System.Linq.Expressions.ParameterExpression parameterToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode CurrentNode { get => throw null; } + } + public sealed class FirstExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public FirstExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class GroupByExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase, Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public GroupByExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression keySelector, System.Linq.Expressions.LambdaExpression optionalElementSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public System.Linq.Expressions.Expression GetResolvedKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.Expression GetResolvedOptionalElementSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.LambdaExpression KeySelector { get => throw null; } + public System.Linq.Expressions.LambdaExpression OptionalElementSelector { get => throw null; } + } + public sealed class GroupByWithResultSelectorExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public GroupByWithResultSelectorExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression keySelector, System.Linq.Expressions.LambdaExpression elementSelectorOrResultSelector, System.Linq.Expressions.LambdaExpression resultSelectorOrNull) => throw null; + public System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public Remotion.Linq.QueryModel Apply(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode Source { get => throw null; } + public string AssociatedIdentifier { get => throw null; } + public System.Linq.Expressions.Expression Selector { get => throw null; } + } + public sealed class GroupJoinExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase, Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public GroupJoinExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression innerSequence, System.Linq.Expressions.LambdaExpression outerKeySelector, System.Linq.Expressions.LambdaExpression innerKeySelector, System.Linq.Expressions.LambdaExpression resultSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; + public System.Linq.Expressions.Expression GetResolvedResultSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode JoinExpressionNode { get => throw null; } + public System.Linq.Expressions.MethodCallExpression ParsedExpression { get => throw null; } + public System.Linq.Expressions.Expression InnerSequence { get => throw null; } + public System.Linq.Expressions.LambdaExpression OuterKeySelector { get => throw null; } + public System.Linq.Expressions.LambdaExpression InnerKeySelector { get => throw null; } + public System.Linq.Expressions.LambdaExpression ResultSelector { get => throw null; } + } + public sealed class IntersectExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public IntersectExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression source2) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public System.Linq.Expressions.Expression Source2 { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class JoinExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase, Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode + public sealed class JoinExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase, Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public JoinExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression innerSequence, System.Linq.Expressions.LambdaExpression outerKeySelector, System.Linq.Expressions.LambdaExpression innerKeySelector, System.Linq.Expressions.LambdaExpression resultSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; + public System.Linq.Expressions.Expression GetResolvedOuterKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.Expression GetResolvedInnerKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.Expression GetResolvedResultSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public Remotion.Linq.Clauses.JoinClause CreateJoinClause(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedInnerKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedOuterKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedResultSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public System.Linq.Expressions.LambdaExpression InnerKeySelector { get => throw null; } public System.Linq.Expressions.Expression InnerSequence { get => throw null; } - public JoinExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression innerSequence, System.Linq.Expressions.LambdaExpression outerKeySelector, System.Linq.Expressions.LambdaExpression innerKeySelector, System.Linq.Expressions.LambdaExpression resultSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; public System.Linq.Expressions.LambdaExpression OuterKeySelector { get => throw null; } - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.LambdaExpression InnerKeySelector { get => throw null; } public System.Linq.Expressions.LambdaExpression ResultSelector { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.LastExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class LastExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + public sealed class LastExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public LastExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.LongCountExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class LongCountExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class LongCountExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public LongCountExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class MainSourceExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode + public sealed class MainSourceExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode { - public Remotion.Linq.QueryModel Apply(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public string AssociatedIdentifier { get => throw null; } public MainSourceExpressionNode(string associatedIdentifier, System.Linq.Expressions.Expression expression) => throw null; - public System.Linq.Expressions.Expression ParsedExpression { get => throw null; } + public System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public Remotion.Linq.QueryModel Apply(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public System.Type QuerySourceElementType { get => throw null; } public System.Type QuerySourceType { get => throw null; } - public System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.Expression ParsedExpression { get => throw null; } + public string AssociatedIdentifier { get => throw null; } public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode Source { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.MaxExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class MaxExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + public sealed class MaxExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public MaxExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class MethodCallExpressionNodeBase : Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode - { - public Remotion.Linq.QueryModel Apply(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - protected abstract void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext); - public string AssociatedIdentifier { get => throw null; } - protected System.NotSupportedException CreateOutputParameterNotSupportedException() => throw null; - protected System.NotSupportedException CreateResolveNotSupportedException() => throw null; - protected MethodCallExpressionNodeBase(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo) => throw null; - public System.Type NodeResultType { get => throw null; } - public abstract System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext); - protected virtual void SetResultTypeOverride(Remotion.Linq.QueryModel queryModel) => throw null; - public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode Source { get => throw null; } - protected virtual Remotion.Linq.QueryModel WrapQueryModelAfterEndOfQuery(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeFactory` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public static class MethodCallExpressionNodeFactory { public static Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode CreateExpressionNode(System.Type nodeType, Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, object[] additionalConstructorParameters) => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public struct MethodCallExpressionParseInfo { - public string AssociatedIdentifier { get => throw null; } public MethodCallExpressionParseInfo(string associatedIdentifier, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode source, System.Linq.Expressions.MethodCallExpression parsedExpression) => throw null; - // Stub generator skipped constructor - public System.Linq.Expressions.MethodCallExpression ParsedExpression { get => throw null; } + public string AssociatedIdentifier { get => throw null; } public Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode Source { get => throw null; } + public System.Linq.Expressions.MethodCallExpression ParsedExpression { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.MinExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class MinExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + public sealed class MinExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public MinExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.OfTypeExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class OfTypeExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class OfTypeExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public OfTypeExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public System.Type SearchedItemType { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByDescendingExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class OrderByDescendingExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase + public sealed class OrderByDescendingExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public System.Linq.Expressions.LambdaExpression KeySelector { get => throw null; } public OrderByDescendingExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression keySelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class OrderByExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase - { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public System.Linq.Expressions.Expression GetResolvedKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public System.Linq.Expressions.LambdaExpression KeySelector { get => throw null; } - public OrderByExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression keySelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.LambdaExpression KeySelector { get => throw null; } + } + public sealed class OrderByExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public OrderByExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression keySelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; + public System.Linq.Expressions.Expression GetResolvedKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.LambdaExpression KeySelector { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceExpressionNodeUtility` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public static class QuerySourceExpressionNodeUtility { - public static Remotion.Linq.Clauses.IQuerySource GetQuerySourceForNode(Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode node, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext context) => throw null; public static System.Linq.Expressions.Expression ReplaceParameterWithReference(Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode referencedNode, System.Linq.Expressions.ParameterExpression parameterToReplace, System.Linq.Expressions.Expression expression, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext context) => throw null; + public static Remotion.Linq.Clauses.IQuerySource GetQuerySourceForNode(Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode node, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext context) => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceSetOperationExpressionNodeBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class QuerySourceSetOperationExpressionNodeBase : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase, Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode + public sealed class ResolvedExpressionCache where T : System.Linq.Expressions.Expression { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - protected abstract Remotion.Linq.Clauses.ResultOperatorBase CreateSpecificResultOperator(); - public System.Type ItemType { get => throw null; } - protected QuerySourceSetOperationExpressionNodeBase(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression source2) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression Source2 { get => throw null; } - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ResolvedExpressionCache<>` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ResolvedExpressionCache where T : System.Linq.Expressions.Expression - { - public T GetOrCreate(System.Func generator) => throw null; public ResolvedExpressionCache(Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode currentNode) => throw null; + public T GetOrCreate(System.Func generator) => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public abstract class ResultOperatorExpressionNodeBase : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase + public sealed class ReverseExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - protected abstract Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext); - public System.Linq.Expressions.MethodCallExpression ParsedExpression { get => throw null; } - protected ResultOperatorExpressionNodeBase(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate, System.Linq.Expressions.LambdaExpression optionalSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; - protected override Remotion.Linq.QueryModel WrapQueryModelAfterEndOfQuery(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ReverseExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ReverseExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public ReverseExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SelectExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase - { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class SelectExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public SelectExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression selector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; + public System.Linq.Expressions.Expression GetResolvedSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public System.Linq.Expressions.LambdaExpression Selector { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.SelectManyExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SelectManyExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase, Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode + public sealed class SelectManyExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase, Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode, Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.LambdaExpression CollectionSelector { get => throw null; } + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public SelectManyExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression collectionSelector, System.Linq.Expressions.LambdaExpression resultSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; public System.Linq.Expressions.Expression GetResolvedCollectionSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public System.Linq.Expressions.Expression GetResolvedResultSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.LambdaExpression CollectionSelector { get => throw null; } public System.Linq.Expressions.LambdaExpression ResultSelector { get => throw null; } - public SelectManyExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression collectionSelector, System.Linq.Expressions.LambdaExpression resultSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.SingleExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SingleExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + public sealed class SingleExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public SingleExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalPredicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.SkipExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SkipExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - public System.Linq.Expressions.Expression Count { get => throw null; } - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class SkipExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public SkipExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression count) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.SumExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class SumExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public SumExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.TakeExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class TakeExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase - { + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public System.Linq.Expressions.Expression Count { get => throw null; } + } + public sealed class SumExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public SumExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression optionalSelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + } + public sealed class TakeExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase + { public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public TakeExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression count) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.LambdaExpression), default(System.Linq.Expressions.LambdaExpression)) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByDescendingExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ThenByDescendingExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase - { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public System.Linq.Expressions.LambdaExpression KeySelector { get => throw null; } public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.Expression Count { get => throw null; } + } + public sealed class ThenByDescendingExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public ThenByDescendingExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression keySelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; - } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class ThenByExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase - { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public System.Linq.Expressions.Expression GetResolvedKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public System.Linq.Expressions.LambdaExpression KeySelector { get => throw null; } public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public ThenByExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression keySelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.LambdaExpression KeySelector { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.UnionExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class UnionExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceSetOperationExpressionNodeBase + public sealed class ThenByExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase + { + public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; + public ThenByExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression keySelector) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; + public System.Linq.Expressions.Expression GetResolvedKeySelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.LambdaExpression KeySelector { get => throw null; } + } + public sealed class UnionExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceSetOperationExpressionNodeBase { - protected override Remotion.Linq.Clauses.ResultOperatorBase CreateSpecificResultOperator() => throw null; public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; public UnionExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.Expression source2) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo), default(System.Linq.Expressions.Expression)) => throw null; + protected override Remotion.Linq.Clauses.ResultOperatorBase CreateSpecificResultOperator() => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.IntermediateModel.WhereExpressionNode` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class WhereExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase + public sealed class WhereExpressionNode : Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase { - protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; - public System.Linq.Expressions.Expression GetResolvedPredicate(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public static System.Collections.Generic.IEnumerable GetSupportedMethods() => throw null; - public System.Linq.Expressions.LambdaExpression Predicate { get => throw null; } - public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; public WhereExpressionNode(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo parseInfo, System.Linq.Expressions.LambdaExpression predicate) : base(default(Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo)) => throw null; + public System.Linq.Expressions.Expression GetResolvedPredicate(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + protected override void ApplyNodeSpecificSemantics(Remotion.Linq.QueryModel queryModel, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext) => throw null; + public System.Linq.Expressions.LambdaExpression Predicate { get => throw null; } } - } namespace NodeTypeProviders { - // Generated from `Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class CompoundNodeTypeProvider : Remotion.Linq.Parsing.Structure.INodeTypeProvider + public sealed class CompoundNodeTypeProvider : Remotion.Linq.Parsing.Structure.INodeTypeProvider { public CompoundNodeTypeProvider(System.Collections.Generic.IEnumerable innerProviders) => throw null; + public bool IsRegistered(System.Reflection.MethodInfo method) => throw null; public System.Type GetNodeType(System.Reflection.MethodInfo method) => throw null; public System.Collections.Generic.IList InnerProviders { get => throw null; } - public bool IsRegistered(System.Reflection.MethodInfo method) => throw null; } - - // Generated from `Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class MethodInfoBasedNodeTypeRegistry : Remotion.Linq.Parsing.Structure.INodeTypeProvider + public sealed class MethodInfoBasedNodeTypeRegistry : Remotion.Linq.Parsing.Structure.INodeTypeProvider { public static Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry CreateFromRelinqAssembly() => throw null; - public System.Type GetNodeType(System.Reflection.MethodInfo method) => throw null; public static System.Reflection.MethodInfo GetRegisterableMethodDefinition(System.Reflection.MethodInfo method, bool throwOnAmbiguousMatch) => throw null; - public bool IsRegistered(System.Reflection.MethodInfo method) => throw null; - public MethodInfoBasedNodeTypeRegistry() => throw null; public void Register(System.Collections.Generic.IEnumerable methods, System.Type nodeType) => throw null; + public bool IsRegistered(System.Reflection.MethodInfo method) => throw null; + public System.Type GetNodeType(System.Reflection.MethodInfo method) => throw null; + public MethodInfoBasedNodeTypeRegistry() => throw null; public int RegisteredMethodInfoCount { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class MethodNameBasedNodeTypeRegistry : Remotion.Linq.Parsing.Structure.INodeTypeProvider + public sealed class MethodNameBasedNodeTypeRegistry : Remotion.Linq.Parsing.Structure.INodeTypeProvider { public static Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry CreateFromRelinqAssembly() => throw null; - public System.Type GetNodeType(System.Reflection.MethodInfo method) => throw null; - public bool IsRegistered(System.Reflection.MethodInfo method) => throw null; - public MethodNameBasedNodeTypeRegistry() => throw null; public void Register(System.Collections.Generic.IEnumerable registrationInfo, System.Type nodeType) => throw null; + public bool IsRegistered(System.Reflection.MethodInfo method) => throw null; + public System.Type GetNodeType(System.Reflection.MethodInfo method) => throw null; + public MethodNameBasedNodeTypeRegistry() => throw null; public int RegisteredNamesCount { get => throw null; } } - - // Generated from `Remotion.Linq.Parsing.Structure.NodeTypeProviders.NameBasedRegistrationInfo` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` - public class NameBasedRegistrationInfo + public sealed class NameBasedRegistrationInfo { - public System.Func Filter { get => throw null; } - public string Name { get => throw null; } public NameBasedRegistrationInfo(string name, System.Func filter) => throw null; + public string Name { get => throw null; } + public System.Func Filter { get => throw null; } } - } } } namespace Transformations { - // Generated from `Remotion.Linq.Transformations.SubQueryFromClauseFlattener` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public class SubQueryFromClauseFlattener : Remotion.Linq.QueryModelVisitorBase { - protected virtual void CheckFlattenable(Remotion.Linq.QueryModel subQueryModel) => throw null; + public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null; + public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; protected virtual void FlattenSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression subQueryExpression, Remotion.Linq.Clauses.IFromClause fromClause, Remotion.Linq.QueryModel queryModel, int destinationIndex) => throw null; + protected virtual void CheckFlattenable(Remotion.Linq.QueryModel subQueryModel) => throw null; protected void InsertBodyClauses(System.Collections.ObjectModel.ObservableCollection bodyClauses, Remotion.Linq.QueryModel destinationQueryModel, int destinationIndex) => throw null; public SubQueryFromClauseFlattener() => throw null; - public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null; - public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null; } - } namespace Utilities { - // Generated from `Remotion.Linq.Utilities.ItemTypeReflectionUtility` in `Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b` public static class ItemTypeReflectionUtility { public static bool TryGetItemTypeOfClosedGenericIEnumerable(System.Type possibleEnumerableType, out System.Type itemType) => throw null; } - } } } diff --git a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/4.4.1/System.Configuration.ConfigurationManager.cs b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/6.0.0/System.Configuration.ConfigurationManager.cs similarity index 67% rename from csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/4.4.1/System.Configuration.ConfigurationManager.cs rename to csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/6.0.0/System.Configuration.ConfigurationManager.cs index 556165b5ed1..41e6e60ef24 100644 --- a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/4.4.1/System.Configuration.ConfigurationManager.cs +++ b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/6.0.0/System.Configuration.ConfigurationManager.cs @@ -1,105 +1,78 @@ // This file contains auto-generated code. - +// Generated from `System.Configuration.ConfigurationManager, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. namespace System { - // Generated from `System.UriIdnScope` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum UriIdnScope - { - All, - AllExceptIntranet, - None, - } - namespace Configuration { - // Generated from `System.Configuration.AppSettingsReader` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class AppSettingsReader - { - public AppSettingsReader() => throw null; - public object GetValue(string key, System.Type type) => throw null; - } - - // Generated from `System.Configuration.AppSettingsSection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class AppSettingsSection : System.Configuration.ConfigurationSection - { - public AppSettingsSection() => throw null; - protected override void DeserializeElement(System.Xml.XmlReader reader, bool serializeCollectionKey) => throw null; - public string File { get => throw null; set => throw null; } - protected override object GetRuntimeObject() => throw null; - protected override bool IsModified() => throw null; - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - protected override void Reset(System.Configuration.ConfigurationElement parentSection) => throw null; - protected override string SerializeSection(System.Configuration.ConfigurationElement parentElement, string name, System.Configuration.ConfigurationSaveMode saveMode) => throw null; - public System.Configuration.KeyValueConfigurationCollection Settings { get => throw null; } - } - - // Generated from `System.Configuration.ApplicationScopedSettingAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ApplicationScopedSettingAttribute : System.Configuration.SettingAttribute + public sealed class ApplicationScopedSettingAttribute : System.Configuration.SettingAttribute { public ApplicationScopedSettingAttribute() => throw null; } - - // Generated from `System.Configuration.ApplicationSettingsBase` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ApplicationSettingsBase : System.Configuration.SettingsBase, System.ComponentModel.INotifyPropertyChanged { + public override System.Configuration.SettingsContext Context { get => throw null; } + protected ApplicationSettingsBase() => throw null; + protected ApplicationSettingsBase(System.ComponentModel.IComponent owner) => throw null; protected ApplicationSettingsBase(string settingsKey) => throw null; protected ApplicationSettingsBase(System.ComponentModel.IComponent owner, string settingsKey) => throw null; - protected ApplicationSettingsBase(System.ComponentModel.IComponent owner) => throw null; - protected ApplicationSettingsBase() => throw null; - public override System.Configuration.SettingsContext Context { get => throw null; } public object GetPreviousVersion(string propertyName) => throw null; - public override object this[string propertyName] { get => throw null; set => throw null; } protected virtual void OnPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) => throw null; protected virtual void OnSettingChanging(object sender, System.Configuration.SettingChangingEventArgs e) => throw null; protected virtual void OnSettingsLoaded(object sender, System.Configuration.SettingsLoadedEventArgs e) => throw null; protected virtual void OnSettingsSaving(object sender, System.ComponentModel.CancelEventArgs e) => throw null; public override System.Configuration.SettingsPropertyCollection Properties { get => throw null; } - public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } public override System.Configuration.SettingsPropertyValueCollection PropertyValues { get => throw null; } public override System.Configuration.SettingsProviderCollection Providers { get => throw null; } public void Reload() => throw null; public void Reset() => throw null; public override void Save() => throw null; - public event System.Configuration.SettingChangingEventHandler SettingChanging; - public string SettingsKey { get => throw null; set => throw null; } - public event System.Configuration.SettingsLoadedEventHandler SettingsLoaded; - public event System.Configuration.SettingsSavingEventHandler SettingsSaving; + public event System.Configuration.SettingChangingEventHandler SettingChanging { add { } remove { } } + public string SettingsKey { get => throw null; set { } } + public event System.Configuration.SettingsLoadedEventHandler SettingsLoaded { add { } remove { } } + public event System.Configuration.SettingsSavingEventHandler SettingsSaving { add { } remove { } } + public override object this[string propertyName] { get => throw null; set { } } public virtual void Upgrade() => throw null; } - - // Generated from `System.Configuration.ApplicationSettingsGroup` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ApplicationSettingsGroup : System.Configuration.ConfigurationSectionGroup + public sealed class ApplicationSettingsGroup : System.Configuration.ConfigurationSectionGroup { public ApplicationSettingsGroup() => throw null; } - - // Generated from `System.Configuration.CallbackValidator` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class CallbackValidator : System.Configuration.ConfigurationValidatorBase + public class AppSettingsReader + { + public AppSettingsReader() => throw null; + public object GetValue(string key, System.Type type) => throw null; + } + public sealed class AppSettingsSection : System.Configuration.ConfigurationSection + { + public AppSettingsSection() => throw null; + protected override void DeserializeElement(System.Xml.XmlReader reader, bool serializeCollectionKey) => throw null; + public string File { get => throw null; set { } } + protected override object GetRuntimeObject() => throw null; + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + protected override void Reset(System.Configuration.ConfigurationElement parentSection) => throw null; + public System.Configuration.KeyValueConfigurationCollection Settings { get => throw null; } + } + public sealed class CallbackValidator : System.Configuration.ConfigurationValidatorBase { - public CallbackValidator(System.Type type, System.Configuration.ValidatorCallback callback) => throw null; public override bool CanValidate(System.Type type) => throw null; + public CallbackValidator(System.Type type, System.Configuration.ValidatorCallback callback) => throw null; public override void Validate(object value) => throw null; } - - // Generated from `System.Configuration.CallbackValidatorAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class CallbackValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute + public sealed class CallbackValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute { - public string CallbackMethodName { get => throw null; set => throw null; } + public string CallbackMethodName { get => throw null; set { } } public CallbackValidatorAttribute() => throw null; - public System.Type Type { get => throw null; set => throw null; } + public System.Type Type { get => throw null; set { } } public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } } - - // Generated from `System.Configuration.ClientSettingsSection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ClientSettingsSection : System.Configuration.ConfigurationSection + public sealed class ClientSettingsSection : System.Configuration.ConfigurationSection { public ClientSettingsSection() => throw null; protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } public System.Configuration.SettingElementCollection Settings { get => throw null; } } - - // Generated from `System.Configuration.CommaDelimitedStringCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class CommaDelimitedStringCollection : System.Collections.Specialized.StringCollection + public sealed class CommaDelimitedStringCollection : System.Collections.Specialized.StringCollection { public void Add(string value) => throw null; public void AddRange(string[] range) => throw null; @@ -109,44 +82,21 @@ namespace System public void Insert(int index, string value) => throw null; public bool IsModified { get => throw null; } public bool IsReadOnly { get => throw null; } - public string this[int index] { get => throw null; set => throw null; } public void Remove(string value) => throw null; public void SetReadOnly() => throw null; + public string this[int index] { get => throw null; set { } } public override string ToString() => throw null; } - - // Generated from `System.Configuration.CommaDelimitedStringCollectionConverter` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class CommaDelimitedStringCollectionConverter : System.Configuration.ConfigurationConverterBase + public sealed class CommaDelimitedStringCollectionConverter : System.Configuration.ConfigurationConverterBase { - public CommaDelimitedStringCollectionConverter() => throw null; public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; + public CommaDelimitedStringCollectionConverter() => throw null; } - - // Generated from `System.Configuration.ConfigXmlDocument` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigXmlDocument : System.Xml.XmlDocument, System.Configuration.Internal.IConfigErrorInfo - { - public ConfigXmlDocument() => throw null; - public override System.Xml.XmlAttribute CreateAttribute(string prefix, string localName, string namespaceUri) => throw null; - public override System.Xml.XmlCDataSection CreateCDataSection(string data) => throw null; - public override System.Xml.XmlComment CreateComment(string data) => throw null; - public override System.Xml.XmlElement CreateElement(string prefix, string localName, string namespaceUri) => throw null; - public override System.Xml.XmlSignificantWhitespace CreateSignificantWhitespace(string data) => throw null; - public override System.Xml.XmlText CreateTextNode(string text) => throw null; - public override System.Xml.XmlWhitespace CreateWhitespace(string data) => throw null; - string System.Configuration.Internal.IConfigErrorInfo.Filename { get => throw null; } - public string Filename { get => throw null; } - public int LineNumber { get => throw null; } - int System.Configuration.Internal.IConfigErrorInfo.LineNumber { get => throw null; } - public override void Load(string filename) => throw null; - public void LoadSingleElement(string filename, System.Xml.XmlTextReader sourceReader) => throw null; - } - - // Generated from `System.Configuration.Configuration` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Configuration + public sealed class Configuration { public System.Configuration.AppSettingsSection AppSettings { get => throw null; } - public System.Func AssemblyStringTransformer { get => throw null; set => throw null; } + public System.Func AssemblyStringTransformer { get => throw null; set { } } public System.Configuration.ConnectionStringsSection ConnectionStrings { get => throw null; } public System.Configuration.ContextInformation EvaluationContext { get => throw null; } public string FilePath { get => throw null; } @@ -154,58 +104,48 @@ namespace System public System.Configuration.ConfigurationSectionGroup GetSectionGroup(string sectionGroupName) => throw null; public bool HasFile { get => throw null; } public System.Configuration.ConfigurationLocationCollection Locations { get => throw null; } - public bool NamespaceDeclared { get => throw null; set => throw null; } + public bool NamespaceDeclared { get => throw null; set { } } public System.Configuration.ConfigurationSectionGroup RootSectionGroup { get => throw null; } - public void Save(System.Configuration.ConfigurationSaveMode saveMode, bool forceSaveAll) => throw null; - public void Save(System.Configuration.ConfigurationSaveMode saveMode) => throw null; public void Save() => throw null; - public void SaveAs(string filename, System.Configuration.ConfigurationSaveMode saveMode, bool forceSaveAll) => throw null; - public void SaveAs(string filename, System.Configuration.ConfigurationSaveMode saveMode) => throw null; + public void Save(System.Configuration.ConfigurationSaveMode saveMode) => throw null; + public void Save(System.Configuration.ConfigurationSaveMode saveMode, bool forceSaveAll) => throw null; public void SaveAs(string filename) => throw null; + public void SaveAs(string filename, System.Configuration.ConfigurationSaveMode saveMode) => throw null; + public void SaveAs(string filename, System.Configuration.ConfigurationSaveMode saveMode, bool forceSaveAll) => throw null; public System.Configuration.ConfigurationSectionGroupCollection SectionGroups { get => throw null; } public System.Configuration.ConfigurationSectionCollection Sections { get => throw null; } - public System.Runtime.Versioning.FrameworkName TargetFramework { get => throw null; set => throw null; } - public System.Func TypeStringTransformer { get => throw null; set => throw null; } + public System.Runtime.Versioning.FrameworkName TargetFramework { get => throw null; set { } } + public System.Func TypeStringTransformer { get => throw null; set { } } } - - // Generated from `System.Configuration.ConfigurationAllowDefinition` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum ConfigurationAllowDefinition { - Everywhere, - MachineOnly, - MachineToApplication, - MachineToWebRoot, + MachineOnly = 0, + MachineToWebRoot = 100, + MachineToApplication = 200, + Everywhere = 300, } - - // Generated from `System.Configuration.ConfigurationAllowExeDefinition` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum ConfigurationAllowExeDefinition { - MachineOnly, - MachineToApplication, - MachineToLocalUser, - MachineToRoamingUser, + MachineOnly = 0, + MachineToApplication = 100, + MachineToRoamingUser = 200, + MachineToLocalUser = 300, } - - // Generated from `System.Configuration.ConfigurationCollectionAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationCollectionAttribute : System.Attribute + public sealed class ConfigurationCollectionAttribute : System.Attribute { - public string AddItemName { get => throw null; set => throw null; } - public string ClearItemsName { get => throw null; set => throw null; } - public System.Configuration.ConfigurationElementCollectionType CollectionType { get => throw null; set => throw null; } + public string AddItemName { get => throw null; set { } } + public string ClearItemsName { get => throw null; set { } } + public System.Configuration.ConfigurationElementCollectionType CollectionType { get => throw null; set { } } public ConfigurationCollectionAttribute(System.Type itemType) => throw null; public System.Type ItemType { get => throw null; } - public string RemoveItemName { get => throw null; set => throw null; } + public string RemoveItemName { get => throw null; set { } } } - - // Generated from `System.Configuration.ConfigurationConverterBase` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ConfigurationConverterBase : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Type type) => throw null; public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Type type) => throw null; protected ConfigurationConverterBase() => throw null; } - - // Generated from `System.Configuration.ConfigurationElement` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ConfigurationElement { protected ConfigurationElement() => throw null; @@ -223,14 +163,12 @@ namespace System protected virtual void InitializeDefault() => throw null; protected virtual bool IsModified() => throw null; public virtual bool IsReadOnly() => throw null; - protected object this[string propertyName] { get => throw null; set => throw null; } - protected object this[System.Configuration.ConfigurationProperty prop] { get => throw null; set => throw null; } protected virtual void ListErrors(System.Collections.IList errorList) => throw null; public System.Configuration.ConfigurationLockCollection LockAllAttributesExcept { get => throw null; } public System.Configuration.ConfigurationLockCollection LockAllElementsExcept { get => throw null; } public System.Configuration.ConfigurationLockCollection LockAttributes { get => throw null; } public System.Configuration.ConfigurationLockCollection LockElements { get => throw null; } - public bool LockItem { get => throw null; set => throw null; } + public bool LockItem { get => throw null; set { } } protected virtual bool OnDeserializeUnrecognizedAttribute(string name, string value) => throw null; protected virtual bool OnDeserializeUnrecognizedElement(string elementName, System.Xml.XmlReader reader) => throw null; protected virtual object OnRequiredPropertyNotFound(string name) => throw null; @@ -243,16 +181,16 @@ namespace System protected virtual bool SerializeToXmlElement(System.Xml.XmlWriter writer, string elementName) => throw null; protected void SetPropertyValue(System.Configuration.ConfigurationProperty prop, object value, bool ignoreLocks) => throw null; protected virtual void SetReadOnly() => throw null; + protected object this[System.Configuration.ConfigurationProperty prop] { get => throw null; set { } } + protected object this[string propertyName] { get => throw null; set { } } protected virtual void Unmerge(System.Configuration.ConfigurationElement sourceElement, System.Configuration.ConfigurationElement parentElement, System.Configuration.ConfigurationSaveMode saveMode) => throw null; } - - // Generated from `System.Configuration.ConfigurationElementCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class ConfigurationElementCollection : System.Configuration.ConfigurationElement, System.Collections.IEnumerable, System.Collections.ICollection + public abstract class ConfigurationElementCollection : System.Configuration.ConfigurationElement, System.Collections.ICollection, System.Collections.IEnumerable { - protected string AddElementName { get => throw null; set => throw null; } + protected string AddElementName { get => throw null; set { } } + protected virtual void BaseAdd(System.Configuration.ConfigurationElement element) => throw null; protected void BaseAdd(System.Configuration.ConfigurationElement element, bool throwIfExists) => throw null; protected virtual void BaseAdd(int index, System.Configuration.ConfigurationElement element) => throw null; - protected virtual void BaseAdd(System.Configuration.ConfigurationElement element) => throw null; protected void BaseClear() => throw null; protected System.Configuration.ConfigurationElement BaseGet(object key) => throw null; protected System.Configuration.ConfigurationElement BaseGet(int index) => throw null; @@ -262,17 +200,17 @@ namespace System protected bool BaseIsRemoved(object key) => throw null; protected void BaseRemove(object key) => throw null; protected void BaseRemoveAt(int index) => throw null; - protected string ClearElementName { get => throw null; set => throw null; } + protected string ClearElementName { get => throw null; set { } } public virtual System.Configuration.ConfigurationElementCollectionType CollectionType { get => throw null; } - protected ConfigurationElementCollection(System.Collections.IComparer comparer) => throw null; - protected ConfigurationElementCollection() => throw null; void System.Collections.ICollection.CopyTo(System.Array arr, int index) => throw null; public void CopyTo(System.Configuration.ConfigurationElement[] array, int index) => throw null; public int Count { get => throw null; } protected virtual System.Configuration.ConfigurationElement CreateNewElement(string elementName) => throw null; protected abstract System.Configuration.ConfigurationElement CreateNewElement(); + protected ConfigurationElementCollection() => throw null; + protected ConfigurationElementCollection(System.Collections.IComparer comparer) => throw null; protected virtual string ElementName { get => throw null; } - public bool EmitClear { get => throw null; set => throw null; } + public bool EmitClear { get => throw null; set { } } public override bool Equals(object compareTo) => throw null; protected abstract object GetElementKey(System.Configuration.ConfigurationElement element); public System.Collections.IEnumerator GetEnumerator() => throw null; @@ -283,7 +221,7 @@ namespace System public override bool IsReadOnly() => throw null; public bool IsSynchronized { get => throw null; } protected override bool OnDeserializeUnrecognizedElement(string elementName, System.Xml.XmlReader reader) => throw null; - protected string RemoveElementName { get => throw null; set => throw null; } + protected string RemoveElementName { get => throw null; set { } } protected override void Reset(System.Configuration.ConfigurationElement parentElement) => throw null; protected override void ResetModified() => throw null; protected override bool SerializeElement(System.Xml.XmlWriter writer, bool serializeCollectionKey) => throw null; @@ -292,60 +230,51 @@ namespace System protected virtual bool ThrowOnDuplicate { get => throw null; } protected override void Unmerge(System.Configuration.ConfigurationElement sourceElement, System.Configuration.ConfigurationElement parentElement, System.Configuration.ConfigurationSaveMode saveMode) => throw null; } - - // Generated from `System.Configuration.ConfigurationElementCollectionType` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum ConfigurationElementCollectionType { - AddRemoveClearMap, - AddRemoveClearMapAlternate, - BasicMap, - BasicMapAlternate, + BasicMap = 0, + AddRemoveClearMap = 1, + BasicMapAlternate = 2, + AddRemoveClearMapAlternate = 3, } - - // Generated from `System.Configuration.ConfigurationElementProperty` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationElementProperty + public sealed class ConfigurationElementProperty { public ConfigurationElementProperty(System.Configuration.ConfigurationValidatorBase validator) => throw null; public System.Configuration.ConfigurationValidatorBase Validator { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationErrorsException` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ConfigurationErrorsException : System.Configuration.ConfigurationException { - public override string BareMessage { get => throw null; } - public ConfigurationErrorsException(string message, string filename, int line) => throw null; - public ConfigurationErrorsException(string message, System.Xml.XmlReader reader) => throw null; - public ConfigurationErrorsException(string message, System.Xml.XmlNode node) => throw null; public ConfigurationErrorsException(string message, System.Exception inner, string filename, int line) => throw null; - public ConfigurationErrorsException(string message, System.Exception inner, System.Xml.XmlReader reader) => throw null; - public ConfigurationErrorsException(string message, System.Exception inner, System.Xml.XmlNode node) => throw null; - public ConfigurationErrorsException(string message, System.Exception inner) => throw null; - public ConfigurationErrorsException(string message) => throw null; public ConfigurationErrorsException() => throw null; + public ConfigurationErrorsException(string message) => throw null; + public ConfigurationErrorsException(string message, System.Exception inner) => throw null; + public ConfigurationErrorsException(string message, string filename, int line) => throw null; + public ConfigurationErrorsException(string message, System.Xml.XmlNode node) => throw null; + public ConfigurationErrorsException(string message, System.Exception inner, System.Xml.XmlNode node) => throw null; + public ConfigurationErrorsException(string message, System.Xml.XmlReader reader) => throw null; + public ConfigurationErrorsException(string message, System.Exception inner, System.Xml.XmlReader reader) => throw null; protected ConfigurationErrorsException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public System.Collections.ICollection Errors { get => throw null; } public override string Filename { get => throw null; } - public static string GetFilename(System.Xml.XmlReader reader) => throw null; public static string GetFilename(System.Xml.XmlNode node) => throw null; - public static int GetLineNumber(System.Xml.XmlReader reader) => throw null; + public static string GetFilename(System.Xml.XmlReader reader) => throw null; public static int GetLineNumber(System.Xml.XmlNode node) => throw null; + public static int GetLineNumber(System.Xml.XmlReader reader) => throw null; public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public override int Line { get => throw null; } public override string Message { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationException` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ConfigurationException : System.SystemException { public virtual string BareMessage { get => throw null; } - public ConfigurationException(string message, string filename, int line) => throw null; - public ConfigurationException(string message, System.Xml.XmlNode node) => throw null; - public ConfigurationException(string message, System.Exception inner, string filename, int line) => throw null; - public ConfigurationException(string message, System.Exception inner, System.Xml.XmlNode node) => throw null; - public ConfigurationException(string message, System.Exception inner) => throw null; - public ConfigurationException(string message) => throw null; - public ConfigurationException() => throw null; protected ConfigurationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public ConfigurationException() => throw null; + public ConfigurationException(string message) => throw null; + public ConfigurationException(string message, System.Exception inner) => throw null; + public ConfigurationException(string message, System.Xml.XmlNode node) => throw null; + public ConfigurationException(string message, System.Exception inner, System.Xml.XmlNode node) => throw null; + public ConfigurationException(string message, string filename, int line) => throw null; + public ConfigurationException(string message, System.Exception inner, string filename, int line) => throw null; public virtual string Filename { get => throw null; } public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public static string GetXmlNodeFilename(System.Xml.XmlNode node) => throw null; @@ -353,31 +282,23 @@ namespace System public virtual int Line { get => throw null; } public override string Message { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationFileMap` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ConfigurationFileMap : System.ICloneable { public virtual object Clone() => throw null; - public ConfigurationFileMap(string machineConfigFilename) => throw null; public ConfigurationFileMap() => throw null; - public string MachineConfigFilename { get => throw null; set => throw null; } + public ConfigurationFileMap(string machineConfigFilename) => throw null; + public string MachineConfigFilename { get => throw null; set { } } } - - // Generated from `System.Configuration.ConfigurationLocation` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ConfigurationLocation { public System.Configuration.Configuration OpenConfiguration() => throw null; public string Path { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationLocationCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ConfigurationLocationCollection : System.Collections.ReadOnlyCollectionBase { public System.Configuration.ConfigurationLocation this[int index] { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationLockCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationLockCollection : System.Collections.IEnumerable, System.Collections.ICollection + public sealed class ConfigurationLockCollection : System.Collections.ICollection, System.Collections.IEnumerable { public void Add(string name) => throw null; public string AttributeList { get => throw null; } @@ -395,31 +316,27 @@ namespace System public void SetFromList(string attributeList) => throw null; public object SyncRoot { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationManager` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class ConfigurationManager { public static System.Collections.Specialized.NameValueCollection AppSettings { get => throw null; } public static System.Configuration.ConnectionStringSettingsCollection ConnectionStrings { get => throw null; } public static object GetSection(string sectionName) => throw null; - public static System.Configuration.Configuration OpenExeConfiguration(string exePath) => throw null; public static System.Configuration.Configuration OpenExeConfiguration(System.Configuration.ConfigurationUserLevel userLevel) => throw null; + public static System.Configuration.Configuration OpenExeConfiguration(string exePath) => throw null; public static System.Configuration.Configuration OpenMachineConfiguration() => throw null; - public static System.Configuration.Configuration OpenMappedExeConfiguration(System.Configuration.ExeConfigurationFileMap fileMap, System.Configuration.ConfigurationUserLevel userLevel, bool preLoad) => throw null; public static System.Configuration.Configuration OpenMappedExeConfiguration(System.Configuration.ExeConfigurationFileMap fileMap, System.Configuration.ConfigurationUserLevel userLevel) => throw null; + public static System.Configuration.Configuration OpenMappedExeConfiguration(System.Configuration.ExeConfigurationFileMap fileMap, System.Configuration.ConfigurationUserLevel userLevel, bool preLoad) => throw null; public static System.Configuration.Configuration OpenMappedMachineConfiguration(System.Configuration.ConfigurationFileMap fileMap) => throw null; public static void RefreshSection(string sectionName) => throw null; } - - // Generated from `System.Configuration.ConfigurationProperty` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationProperty + public sealed class ConfigurationProperty { - public ConfigurationProperty(string name, System.Type type, object defaultValue, System.Configuration.ConfigurationPropertyOptions options) => throw null; - public ConfigurationProperty(string name, System.Type type, object defaultValue, System.ComponentModel.TypeConverter typeConverter, System.Configuration.ConfigurationValidatorBase validator, System.Configuration.ConfigurationPropertyOptions options, string description) => throw null; - public ConfigurationProperty(string name, System.Type type, object defaultValue, System.ComponentModel.TypeConverter typeConverter, System.Configuration.ConfigurationValidatorBase validator, System.Configuration.ConfigurationPropertyOptions options) => throw null; - public ConfigurationProperty(string name, System.Type type, object defaultValue) => throw null; - public ConfigurationProperty(string name, System.Type type) => throw null; public System.ComponentModel.TypeConverter Converter { get => throw null; } + public ConfigurationProperty(string name, System.Type type) => throw null; + public ConfigurationProperty(string name, System.Type type, object defaultValue) => throw null; + public ConfigurationProperty(string name, System.Type type, object defaultValue, System.Configuration.ConfigurationPropertyOptions options) => throw null; + public ConfigurationProperty(string name, System.Type type, object defaultValue, System.ComponentModel.TypeConverter typeConverter, System.Configuration.ConfigurationValidatorBase validator, System.Configuration.ConfigurationPropertyOptions options) => throw null; + public ConfigurationProperty(string name, System.Type type, object defaultValue, System.ComponentModel.TypeConverter typeConverter, System.Configuration.ConfigurationValidatorBase validator, System.Configuration.ConfigurationPropertyOptions options, string description) => throw null; public object DefaultValue { get => throw null; } public string Description { get => throw null; } public bool IsAssemblyStringTransformationRequired { get => throw null; } @@ -432,58 +349,48 @@ namespace System public System.Type Type { get => throw null; } public System.Configuration.ConfigurationValidatorBase Validator { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationPropertyAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationPropertyAttribute : System.Attribute + public sealed class ConfigurationPropertyAttribute : System.Attribute { public ConfigurationPropertyAttribute(string name) => throw null; - public object DefaultValue { get => throw null; set => throw null; } - public bool IsDefaultCollection { get => throw null; set => throw null; } - public bool IsKey { get => throw null; set => throw null; } - public bool IsRequired { get => throw null; set => throw null; } + public object DefaultValue { get => throw null; set { } } + public bool IsDefaultCollection { get => throw null; set { } } + public bool IsKey { get => throw null; set { } } + public bool IsRequired { get => throw null; set { } } public string Name { get => throw null; } - public System.Configuration.ConfigurationPropertyOptions Options { get => throw null; set => throw null; } + public System.Configuration.ConfigurationPropertyOptions Options { get => throw null; set { } } } - - // Generated from `System.Configuration.ConfigurationPropertyCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationPropertyCollection : System.Collections.IEnumerable, System.Collections.ICollection + public class ConfigurationPropertyCollection : System.Collections.ICollection, System.Collections.IEnumerable { public void Add(System.Configuration.ConfigurationProperty property) => throw null; public void Clear() => throw null; - public ConfigurationPropertyCollection() => throw null; public bool Contains(string name) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(System.Configuration.ConfigurationProperty[] array, int index) => throw null; public int Count { get => throw null; } + public ConfigurationPropertyCollection() => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; public bool IsSynchronized { get => throw null; } - public System.Configuration.ConfigurationProperty this[string name] { get => throw null; } public bool Remove(string name) => throw null; public object SyncRoot { get => throw null; } + public System.Configuration.ConfigurationProperty this[string name] { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationPropertyOptions` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` [System.Flags] public enum ConfigurationPropertyOptions { - IsAssemblyStringTransformationRequired, - IsDefaultCollection, - IsKey, - IsRequired, - IsTypeStringTransformationRequired, - IsVersionCheckRequired, - None, + None = 0, + IsDefaultCollection = 1, + IsRequired = 2, + IsKey = 4, + IsTypeStringTransformationRequired = 8, + IsAssemblyStringTransformationRequired = 16, + IsVersionCheckRequired = 32, } - - // Generated from `System.Configuration.ConfigurationSaveMode` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum ConfigurationSaveMode { - Full, - Minimal, - Modified, + Modified = 0, + Minimal = 1, + Full = 2, } - - // Generated from `System.Configuration.ConfigurationSection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ConfigurationSection : System.Configuration.ConfigurationElement { protected ConfigurationSection() => throw null; @@ -497,32 +404,25 @@ namespace System protected virtual bool ShouldSerializePropertyInTargetVersion(System.Configuration.ConfigurationProperty property, string propertyName, System.Runtime.Versioning.FrameworkName targetFramework, System.Configuration.ConfigurationElement parentConfigurationElement) => throw null; protected virtual bool ShouldSerializeSectionInTargetVersion(System.Runtime.Versioning.FrameworkName targetFramework) => throw null; } - - // Generated from `System.Configuration.ConfigurationSectionCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationSectionCollection : System.Collections.Specialized.NameObjectCollectionBase + public sealed class ConfigurationSectionCollection : System.Collections.Specialized.NameObjectCollectionBase { public void Add(string name, System.Configuration.ConfigurationSection section) => throw null; public void Clear() => throw null; public void CopyTo(System.Configuration.ConfigurationSection[] array, int index) => throw null; - public override int Count { get => throw null; } - public System.Configuration.ConfigurationSection Get(string name) => throw null; public System.Configuration.ConfigurationSection Get(int index) => throw null; + public System.Configuration.ConfigurationSection Get(string name) => throw null; public override System.Collections.IEnumerator GetEnumerator() => throw null; public string GetKey(int index) => throw null; - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Configuration.ConfigurationSection this[string name] { get => throw null; } - public System.Configuration.ConfigurationSection this[int index] { get => throw null; } - public override System.Collections.Specialized.NameObjectCollectionBase.KeysCollection Keys { get => throw null; } public void Remove(string name) => throw null; public void RemoveAt(int index) => throw null; + public System.Configuration.ConfigurationSection this[string name] { get => throw null; } + public System.Configuration.ConfigurationSection this[int index] { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationSectionGroup` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ConfigurationSectionGroup { public ConfigurationSectionGroup() => throw null; - public void ForceDeclaration(bool force) => throw null; public void ForceDeclaration() => throw null; + public void ForceDeclaration(bool force) => throw null; public bool IsDeclarationRequired { get => throw null; } public bool IsDeclared { get => throw null; } public string Name { get => throw null; } @@ -530,110 +430,104 @@ namespace System public System.Configuration.ConfigurationSectionGroupCollection SectionGroups { get => throw null; } public System.Configuration.ConfigurationSectionCollection Sections { get => throw null; } protected virtual bool ShouldSerializeSectionGroupInTargetVersion(System.Runtime.Versioning.FrameworkName targetFramework) => throw null; - public string Type { get => throw null; set => throw null; } + public string Type { get => throw null; set { } } } - - // Generated from `System.Configuration.ConfigurationSectionGroupCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationSectionGroupCollection : System.Collections.Specialized.NameObjectCollectionBase + public sealed class ConfigurationSectionGroupCollection : System.Collections.Specialized.NameObjectCollectionBase { public void Add(string name, System.Configuration.ConfigurationSectionGroup sectionGroup) => throw null; public void Clear() => throw null; public void CopyTo(System.Configuration.ConfigurationSectionGroup[] array, int index) => throw null; - public override int Count { get => throw null; } - public System.Configuration.ConfigurationSectionGroup Get(string name) => throw null; public System.Configuration.ConfigurationSectionGroup Get(int index) => throw null; + public System.Configuration.ConfigurationSectionGroup Get(string name) => throw null; public override System.Collections.IEnumerator GetEnumerator() => throw null; public string GetKey(int index) => throw null; - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Configuration.ConfigurationSectionGroup this[string name] { get => throw null; } - public System.Configuration.ConfigurationSectionGroup this[int index] { get => throw null; } - public override System.Collections.Specialized.NameObjectCollectionBase.KeysCollection Keys { get => throw null; } public void Remove(string name) => throw null; public void RemoveAt(int index) => throw null; + public System.Configuration.ConfigurationSectionGroup this[string name] { get => throw null; } + public System.Configuration.ConfigurationSectionGroup this[int index] { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationSettings` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationSettings + public sealed class ConfigurationSettings { public static System.Collections.Specialized.NameValueCollection AppSettings { get => throw null; } public static object GetConfig(string sectionName) => throw null; } - - // Generated from `System.Configuration.ConfigurationUserLevel` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum ConfigurationUserLevel { - None, - PerUserRoaming, - PerUserRoamingAndLocal, + None = 0, + PerUserRoaming = 10, + PerUserRoamingAndLocal = 20, } - - // Generated from `System.Configuration.ConfigurationValidatorAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ConfigurationValidatorAttribute : System.Attribute { - public ConfigurationValidatorAttribute(System.Type validator) => throw null; protected ConfigurationValidatorAttribute() => throw null; + public ConfigurationValidatorAttribute(System.Type validator) => throw null; public virtual System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } public System.Type ValidatorType { get => throw null; } } - - // Generated from `System.Configuration.ConfigurationValidatorBase` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ConfigurationValidatorBase { public virtual bool CanValidate(System.Type type) => throw null; protected ConfigurationValidatorBase() => throw null; public abstract void Validate(object value); } - - // Generated from `System.Configuration.ConnectionStringSettings` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConnectionStringSettings : System.Configuration.ConfigurationElement + public sealed class ConfigXmlDocument : System.Xml.XmlDocument, System.Configuration.Internal.IConfigErrorInfo { - public string ConnectionString { get => throw null; set => throw null; } - public ConnectionStringSettings(string name, string connectionString, string providerName) => throw null; - public ConnectionStringSettings(string name, string connectionString) => throw null; + public override System.Xml.XmlAttribute CreateAttribute(string prefix, string localName, string namespaceUri) => throw null; + public override System.Xml.XmlCDataSection CreateCDataSection(string data) => throw null; + public override System.Xml.XmlComment CreateComment(string data) => throw null; + public override System.Xml.XmlElement CreateElement(string prefix, string localName, string namespaceUri) => throw null; + public override System.Xml.XmlSignificantWhitespace CreateSignificantWhitespace(string data) => throw null; + public override System.Xml.XmlText CreateTextNode(string text) => throw null; + public override System.Xml.XmlWhitespace CreateWhitespace(string data) => throw null; + public ConfigXmlDocument() => throw null; + public string Filename { get => throw null; } + string System.Configuration.Internal.IConfigErrorInfo.Filename { get => throw null; } + int System.Configuration.Internal.IConfigErrorInfo.LineNumber { get => throw null; } + public int LineNumber { get => throw null; } + public override void Load(string filename) => throw null; + public void LoadSingleElement(string filename, System.Xml.XmlTextReader sourceReader) => throw null; + } + public sealed class ConnectionStringSettings : System.Configuration.ConfigurationElement + { + public string ConnectionString { get => throw null; set { } } public ConnectionStringSettings() => throw null; - public string Name { get => throw null; set => throw null; } + public ConnectionStringSettings(string name, string connectionString) => throw null; + public ConnectionStringSettings(string name, string connectionString, string providerName) => throw null; + public string Name { get => throw null; set { } } protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public string ProviderName { get => throw null; set => throw null; } + public string ProviderName { get => throw null; set { } } public override string ToString() => throw null; } - - // Generated from `System.Configuration.ConnectionStringSettingsCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConnectionStringSettingsCollection : System.Configuration.ConfigurationElementCollection + public sealed class ConnectionStringSettingsCollection : System.Configuration.ConfigurationElementCollection { public void Add(System.Configuration.ConnectionStringSettings settings) => throw null; protected override void BaseAdd(int index, System.Configuration.ConfigurationElement element) => throw null; public void Clear() => throw null; - public ConnectionStringSettingsCollection() => throw null; protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; + public ConnectionStringSettingsCollection() => throw null; protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; public int IndexOf(System.Configuration.ConnectionStringSettings settings) => throw null; - public System.Configuration.ConnectionStringSettings this[string name] { get => throw null; } - public System.Configuration.ConnectionStringSettings this[int index] { get => throw null; set => throw null; } protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public void Remove(string name) => throw null; public void Remove(System.Configuration.ConnectionStringSettings settings) => throw null; + public void Remove(string name) => throw null; public void RemoveAt(int index) => throw null; + public System.Configuration.ConnectionStringSettings this[int index] { get => throw null; set { } } + public System.Configuration.ConnectionStringSettings this[string name] { get => throw null; } } - - // Generated from `System.Configuration.ConnectionStringsSection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConnectionStringsSection : System.Configuration.ConfigurationSection + public sealed class ConnectionStringsSection : System.Configuration.ConfigurationSection { public System.Configuration.ConnectionStringSettingsCollection ConnectionStrings { get => throw null; } public ConnectionStringsSection() => throw null; protected override object GetRuntimeObject() => throw null; protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } } - - // Generated from `System.Configuration.ContextInformation` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ContextInformation + public sealed class ContextInformation { public object GetSection(string sectionName) => throw null; public object HostingContext { get => throw null; } public bool IsMachineLevel { get => throw null; } } - - // Generated from `System.Configuration.DefaultSection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class DefaultSection : System.Configuration.ConfigurationSection + public sealed class DefaultSection : System.Configuration.ConfigurationSection { public DefaultSection() => throw null; protected override void DeserializeSection(System.Xml.XmlReader xmlReader) => throw null; @@ -643,23 +537,17 @@ namespace System protected override void ResetModified() => throw null; protected override string SerializeSection(System.Configuration.ConfigurationElement parentSection, string name, System.Configuration.ConfigurationSaveMode saveMode) => throw null; } - - // Generated from `System.Configuration.DefaultSettingValueAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class DefaultSettingValueAttribute : System.Attribute + public sealed class DefaultSettingValueAttribute : System.Attribute { public DefaultSettingValueAttribute(string value) => throw null; public string Value { get => throw null; } } - - // Generated from `System.Configuration.DefaultValidator` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class DefaultValidator : System.Configuration.ConfigurationValidatorBase + public sealed class DefaultValidator : System.Configuration.ConfigurationValidatorBase { public override bool CanValidate(System.Type type) => throw null; public DefaultValidator() => throw null; public override void Validate(object value) => throw null; } - - // Generated from `System.Configuration.DictionarySectionHandler` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class DictionarySectionHandler : System.Configuration.IConfigurationSectionHandler { public virtual object Create(object parent, object context, System.Xml.XmlNode section) => throw null; @@ -667,19 +555,15 @@ namespace System protected virtual string KeyAttributeName { get => throw null; } protected virtual string ValueAttributeName { get => throw null; } } - - // Generated from `System.Configuration.DpapiProtectedConfigurationProvider` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class DpapiProtectedConfigurationProvider : System.Configuration.ProtectedConfigurationProvider + public sealed class DpapiProtectedConfigurationProvider : System.Configuration.ProtectedConfigurationProvider { - public override System.Xml.XmlNode Decrypt(System.Xml.XmlNode encryptedNode) => throw null; public DpapiProtectedConfigurationProvider() => throw null; + public override System.Xml.XmlNode Decrypt(System.Xml.XmlNode encryptedNode) => throw null; public override System.Xml.XmlNode Encrypt(System.Xml.XmlNode node) => throw null; public override void Initialize(string name, System.Collections.Specialized.NameValueCollection configurationValues) => throw null; public bool UseMachineProtection { get => throw null; } } - - // Generated from `System.Configuration.ElementInformation` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ElementInformation + public sealed class ElementInformation { public System.Collections.ICollection Errors { get => throw null; } public bool IsCollection { get => throw null; } @@ -691,917 +575,115 @@ namespace System public System.Type Type { get => throw null; } public System.Configuration.ConfigurationValidatorBase Validator { get => throw null; } } - - // Generated from `System.Configuration.ExeConfigurationFileMap` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ExeConfigurationFileMap : System.Configuration.ConfigurationFileMap + public sealed class ExeConfigurationFileMap : System.Configuration.ConfigurationFileMap { public override object Clone() => throw null; - public string ExeConfigFilename { get => throw null; set => throw null; } - public ExeConfigurationFileMap(string machineConfigFileName) => throw null; public ExeConfigurationFileMap() => throw null; - public string LocalUserConfigFilename { get => throw null; set => throw null; } - public string RoamingUserConfigFilename { get => throw null; set => throw null; } + public ExeConfigurationFileMap(string machineConfigFileName) => throw null; + public string ExeConfigFilename { get => throw null; set { } } + public string LocalUserConfigFilename { get => throw null; set { } } + public string RoamingUserConfigFilename { get => throw null; set { } } } - - // Generated from `System.Configuration.ExeContext` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ExeContext + public sealed class ExeContext { public string ExePath { get => throw null; } public System.Configuration.ConfigurationUserLevel UserLevel { get => throw null; } } - - // Generated from `System.Configuration.GenericEnumConverter` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class GenericEnumConverter : System.Configuration.ConfigurationConverterBase + public sealed class GenericEnumConverter : System.Configuration.ConfigurationConverterBase { public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; public GenericEnumConverter(System.Type typeEnum) => throw null; } - - // Generated from `System.Configuration.IApplicationSettingsProvider` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IApplicationSettingsProvider { System.Configuration.SettingsPropertyValue GetPreviousVersion(System.Configuration.SettingsContext context, System.Configuration.SettingsProperty property); void Reset(System.Configuration.SettingsContext context); void Upgrade(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties); } - - // Generated from `System.Configuration.IConfigurationSectionHandler` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IConfigurationSectionHandler { object Create(object parent, object configContext, System.Xml.XmlNode section); } - - // Generated from `System.Configuration.IConfigurationSystem` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IConfigurationSystem { object GetConfig(string configKey); void Init(); } - - // Generated from `System.Configuration.IPersistComponentSettings` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public interface IPersistComponentSettings + public sealed class IdnElement : System.Configuration.ConfigurationElement { - void LoadComponentSettings(); - void ResetComponentSettings(); - void SaveComponentSettings(); - bool SaveSettings { get; set; } - string SettingsKey { get; set; } - } - - // Generated from `System.Configuration.ISettingsProviderService` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public interface ISettingsProviderService - { - System.Configuration.SettingsProvider GetSettingsProvider(System.Configuration.SettingsProperty property); - } - - // Generated from `System.Configuration.IdnElement` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class IdnElement : System.Configuration.ConfigurationElement - { - public System.UriIdnScope Enabled { get => throw null; set => throw null; } public IdnElement() => throw null; + public System.UriIdnScope Enabled { get => throw null; set { } } protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } } - - // Generated from `System.Configuration.IgnoreSection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class IgnoreSection : System.Configuration.ConfigurationSection + public sealed class IgnoreSection : System.Configuration.ConfigurationSection { - protected override void DeserializeSection(System.Xml.XmlReader xmlReader) => throw null; public IgnoreSection() => throw null; + protected override void DeserializeSection(System.Xml.XmlReader xmlReader) => throw null; protected override bool IsModified() => throw null; protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } protected override void Reset(System.Configuration.ConfigurationElement parentSection) => throw null; protected override void ResetModified() => throw null; protected override string SerializeSection(System.Configuration.ConfigurationElement parentSection, string name, System.Configuration.ConfigurationSaveMode saveMode) => throw null; } - - // Generated from `System.Configuration.IgnoreSectionHandler` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class IgnoreSectionHandler : System.Configuration.IConfigurationSectionHandler { public virtual object Create(object parent, object configContext, System.Xml.XmlNode section) => throw null; public IgnoreSectionHandler() => throw null; } - - // Generated from `System.Configuration.InfiniteIntConverter` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class InfiniteIntConverter : System.Configuration.ConfigurationConverterBase + public sealed class InfiniteIntConverter : System.Configuration.ConfigurationConverterBase { public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; public InfiniteIntConverter() => throw null; } - - // Generated from `System.Configuration.InfiniteTimeSpanConverter` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class InfiniteTimeSpanConverter : System.Configuration.ConfigurationConverterBase + public sealed class InfiniteTimeSpanConverter : System.Configuration.ConfigurationConverterBase { public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; public InfiniteTimeSpanConverter() => throw null; } - - // Generated from `System.Configuration.IntegerValidator` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class IntegerValidator : System.Configuration.ConfigurationValidatorBase { public override bool CanValidate(System.Type type) => throw null; - public IntegerValidator(int minValue, int maxValue, bool rangeIsExclusive, int resolution) => throw null; - public IntegerValidator(int minValue, int maxValue, bool rangeIsExclusive) => throw null; public IntegerValidator(int minValue, int maxValue) => throw null; + public IntegerValidator(int minValue, int maxValue, bool rangeIsExclusive) => throw null; + public IntegerValidator(int minValue, int maxValue, bool rangeIsExclusive, int resolution) => throw null; public override void Validate(object value) => throw null; } - - // Generated from `System.Configuration.IntegerValidatorAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class IntegerValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute + public sealed class IntegerValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute { - public bool ExcludeRange { get => throw null; set => throw null; } public IntegerValidatorAttribute() => throw null; - public int MaxValue { get => throw null; set => throw null; } - public int MinValue { get => throw null; set => throw null; } + public bool ExcludeRange { get => throw null; set { } } + public int MaxValue { get => throw null; set { } } + public int MinValue { get => throw null; set { } } public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } } - - // Generated from `System.Configuration.IriParsingElement` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class IriParsingElement : System.Configuration.ConfigurationElement - { - public bool Enabled { get => throw null; set => throw null; } - public IriParsingElement() => throw null; - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - } - - // Generated from `System.Configuration.KeyValueConfigurationCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class KeyValueConfigurationCollection : System.Configuration.ConfigurationElementCollection - { - public void Add(string key, string value) => throw null; - public void Add(System.Configuration.KeyValueConfigurationElement keyValue) => throw null; - public string[] AllKeys { get => throw null; } - public void Clear() => throw null; - protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; - protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; - public System.Configuration.KeyValueConfigurationElement this[string key] { get => throw null; } - public KeyValueConfigurationCollection() => throw null; - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public void Remove(string key) => throw null; - protected override bool ThrowOnDuplicate { get => throw null; } - } - - // Generated from `System.Configuration.KeyValueConfigurationElement` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class KeyValueConfigurationElement : System.Configuration.ConfigurationElement - { - protected override void Init() => throw null; - public string Key { get => throw null; } - public KeyValueConfigurationElement(string key, string value) => throw null; - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public string Value { get => throw null; set => throw null; } - } - - // Generated from `System.Configuration.LocalFileSettingsProvider` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class LocalFileSettingsProvider : System.Configuration.SettingsProvider, System.Configuration.IApplicationSettingsProvider - { - public override string ApplicationName { get => throw null; set => throw null; } - public System.Configuration.SettingsPropertyValue GetPreviousVersion(System.Configuration.SettingsContext context, System.Configuration.SettingsProperty property) => throw null; - public override System.Configuration.SettingsPropertyValueCollection GetPropertyValues(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties) => throw null; - public override void Initialize(string name, System.Collections.Specialized.NameValueCollection values) => throw null; - public LocalFileSettingsProvider() => throw null; - public void Reset(System.Configuration.SettingsContext context) => throw null; - public override void SetPropertyValues(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyValueCollection values) => throw null; - public void Upgrade(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties) => throw null; - } - - // Generated from `System.Configuration.LongValidator` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class LongValidator : System.Configuration.ConfigurationValidatorBase - { - public override bool CanValidate(System.Type type) => throw null; - public LongValidator(System.Int64 minValue, System.Int64 maxValue, bool rangeIsExclusive, System.Int64 resolution) => throw null; - public LongValidator(System.Int64 minValue, System.Int64 maxValue, bool rangeIsExclusive) => throw null; - public LongValidator(System.Int64 minValue, System.Int64 maxValue) => throw null; - public override void Validate(object value) => throw null; - } - - // Generated from `System.Configuration.LongValidatorAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class LongValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute - { - public bool ExcludeRange { get => throw null; set => throw null; } - public LongValidatorAttribute() => throw null; - public System.Int64 MaxValue { get => throw null; set => throw null; } - public System.Int64 MinValue { get => throw null; set => throw null; } - public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } - } - - // Generated from `System.Configuration.NameValueConfigurationCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class NameValueConfigurationCollection : System.Configuration.ConfigurationElementCollection - { - public void Add(System.Configuration.NameValueConfigurationElement nameValue) => throw null; - public string[] AllKeys { get => throw null; } - public void Clear() => throw null; - protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; - protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; - public System.Configuration.NameValueConfigurationElement this[string name] { get => throw null; set => throw null; } - public NameValueConfigurationCollection() => throw null; - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public void Remove(string name) => throw null; - public void Remove(System.Configuration.NameValueConfigurationElement nameValue) => throw null; - } - - // Generated from `System.Configuration.NameValueConfigurationElement` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class NameValueConfigurationElement : System.Configuration.ConfigurationElement - { - public string Name { get => throw null; } - public NameValueConfigurationElement(string name, string value) => throw null; - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public string Value { get => throw null; set => throw null; } - } - - // Generated from `System.Configuration.NameValueFileSectionHandler` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class NameValueFileSectionHandler : System.Configuration.IConfigurationSectionHandler - { - public object Create(object parent, object configContext, System.Xml.XmlNode section) => throw null; - public NameValueFileSectionHandler() => throw null; - } - - // Generated from `System.Configuration.NameValueSectionHandler` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class NameValueSectionHandler : System.Configuration.IConfigurationSectionHandler - { - public object Create(object parent, object context, System.Xml.XmlNode section) => throw null; - protected virtual string KeyAttributeName { get => throw null; } - public NameValueSectionHandler() => throw null; - protected virtual string ValueAttributeName { get => throw null; } - } - - // Generated from `System.Configuration.NoSettingsVersionUpgradeAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class NoSettingsVersionUpgradeAttribute : System.Attribute - { - public NoSettingsVersionUpgradeAttribute() => throw null; - } - - // Generated from `System.Configuration.OverrideMode` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum OverrideMode - { - Allow, - Deny, - Inherit, - } - - // Generated from `System.Configuration.PositiveTimeSpanValidator` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PositiveTimeSpanValidator : System.Configuration.ConfigurationValidatorBase - { - public override bool CanValidate(System.Type type) => throw null; - public PositiveTimeSpanValidator() => throw null; - public override void Validate(object value) => throw null; - } - - // Generated from `System.Configuration.PositiveTimeSpanValidatorAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PositiveTimeSpanValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute - { - public PositiveTimeSpanValidatorAttribute() => throw null; - public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } - } - - // Generated from `System.Configuration.PropertyInformation` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PropertyInformation - { - public System.ComponentModel.TypeConverter Converter { get => throw null; } - public object DefaultValue { get => throw null; } - public string Description { get => throw null; } - public bool IsKey { get => throw null; } - public bool IsLocked { get => throw null; } - public bool IsModified { get => throw null; } - public bool IsRequired { get => throw null; } - public int LineNumber { get => throw null; } - public string Name { get => throw null; } - public string Source { get => throw null; } - public System.Type Type { get => throw null; } - public System.Configuration.ConfigurationValidatorBase Validator { get => throw null; } - public object Value { get => throw null; set => throw null; } - public System.Configuration.PropertyValueOrigin ValueOrigin { get => throw null; } - } - - // Generated from `System.Configuration.PropertyInformationCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PropertyInformationCollection : System.Collections.Specialized.NameObjectCollectionBase - { - public void CopyTo(System.Configuration.PropertyInformation[] array, int index) => throw null; - public override System.Collections.IEnumerator GetEnumerator() => throw null; - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Configuration.PropertyInformation this[string propertyName] { get => throw null; } - } - - // Generated from `System.Configuration.PropertyValueOrigin` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PropertyValueOrigin - { - Default, - Inherited, - SetHere, - } - - // Generated from `System.Configuration.ProtectedConfiguration` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public static class ProtectedConfiguration - { - public const string DataProtectionProviderName = default; - public static string DefaultProvider { get => throw null; } - public const string ProtectedDataSectionName = default; - public static System.Configuration.ProtectedConfigurationProviderCollection Providers { get => throw null; } - public const string RsaProviderName = default; - } - - // Generated from `System.Configuration.ProtectedConfigurationProvider` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class ProtectedConfigurationProvider : System.Configuration.Provider.ProviderBase - { - public abstract System.Xml.XmlNode Decrypt(System.Xml.XmlNode encryptedNode); - public abstract System.Xml.XmlNode Encrypt(System.Xml.XmlNode node); - protected ProtectedConfigurationProvider() => throw null; - } - - // Generated from `System.Configuration.ProtectedConfigurationProviderCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ProtectedConfigurationProviderCollection : System.Configuration.Provider.ProviderCollection - { - public override void Add(System.Configuration.Provider.ProviderBase provider) => throw null; - public System.Configuration.ProtectedConfigurationProvider this[string name] { get => throw null; } - public ProtectedConfigurationProviderCollection() => throw null; - } - - // Generated from `System.Configuration.ProtectedConfigurationSection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ProtectedConfigurationSection : System.Configuration.ConfigurationSection - { - public string DefaultProvider { get => throw null; set => throw null; } - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public ProtectedConfigurationSection() => throw null; - public System.Configuration.ProviderSettingsCollection Providers { get => throw null; } - } - - // Generated from `System.Configuration.ProtectedProviderSettings` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ProtectedProviderSettings : System.Configuration.ConfigurationElement - { - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public ProtectedProviderSettings() => throw null; - public System.Configuration.ProviderSettingsCollection Providers { get => throw null; } - } - - // Generated from `System.Configuration.ProviderSettings` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ProviderSettings : System.Configuration.ConfigurationElement - { - protected override bool IsModified() => throw null; - public string Name { get => throw null; set => throw null; } - protected override bool OnDeserializeUnrecognizedAttribute(string name, string value) => throw null; - public System.Collections.Specialized.NameValueCollection Parameters { get => throw null; } - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public ProviderSettings(string name, string type) => throw null; - public ProviderSettings() => throw null; - protected override void Reset(System.Configuration.ConfigurationElement parentElement) => throw null; - public string Type { get => throw null; set => throw null; } - protected override void Unmerge(System.Configuration.ConfigurationElement sourceElement, System.Configuration.ConfigurationElement parentElement, System.Configuration.ConfigurationSaveMode saveMode) => throw null; - } - - // Generated from `System.Configuration.ProviderSettingsCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ProviderSettingsCollection : System.Configuration.ConfigurationElementCollection - { - public void Add(System.Configuration.ProviderSettings provider) => throw null; - public void Clear() => throw null; - protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; - protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; - public System.Configuration.ProviderSettings this[string key] { get => throw null; } - public System.Configuration.ProviderSettings this[int index] { get => throw null; set => throw null; } - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public ProviderSettingsCollection() => throw null; - public void Remove(string name) => throw null; - } - - // Generated from `System.Configuration.RegexStringValidator` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class RegexStringValidator : System.Configuration.ConfigurationValidatorBase - { - public override bool CanValidate(System.Type type) => throw null; - public RegexStringValidator(string regex) => throw null; - public override void Validate(object value) => throw null; - } - - // Generated from `System.Configuration.RegexStringValidatorAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class RegexStringValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute - { - public string Regex { get => throw null; } - public RegexStringValidatorAttribute(string regex) => throw null; - public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } - } - - // Generated from `System.Configuration.RsaProtectedConfigurationProvider` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class RsaProtectedConfigurationProvider : System.Configuration.ProtectedConfigurationProvider - { - public void AddKey(int keySize, bool exportable) => throw null; - public string CspProviderName { get => throw null; } - public override System.Xml.XmlNode Decrypt(System.Xml.XmlNode encryptedNode) => throw null; - public void DeleteKey() => throw null; - public override System.Xml.XmlNode Encrypt(System.Xml.XmlNode node) => throw null; - public void ExportKey(string xmlFileName, bool includePrivateParameters) => throw null; - public void ImportKey(string xmlFileName, bool exportable) => throw null; - public override void Initialize(string name, System.Collections.Specialized.NameValueCollection configurationValues) => throw null; - public string KeyContainerName { get => throw null; } - public RsaProtectedConfigurationProvider() => throw null; - public System.Security.Cryptography.RSAParameters RsaPublicKey { get => throw null; } - public bool UseFIPS { get => throw null; } - public bool UseMachineContainer { get => throw null; } - public bool UseOAEP { get => throw null; } - } - - // Generated from `System.Configuration.SchemeSettingElement` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SchemeSettingElement : System.Configuration.ConfigurationElement - { - public System.GenericUriParserOptions GenericUriParserOptions { get => throw null; } - public string Name { get => throw null; } - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public SchemeSettingElement() => throw null; - } - - // Generated from `System.Configuration.SchemeSettingElementCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SchemeSettingElementCollection : System.Configuration.ConfigurationElementCollection - { - public override System.Configuration.ConfigurationElementCollectionType CollectionType { get => throw null; } - protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; - protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; - public int IndexOf(System.Configuration.SchemeSettingElement element) => throw null; - public System.Configuration.SchemeSettingElement this[string name] { get => throw null; } - public System.Configuration.SchemeSettingElement this[int index] { get => throw null; } - public SchemeSettingElementCollection() => throw null; - } - - // Generated from `System.Configuration.SectionInformation` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SectionInformation - { - public System.Configuration.ConfigurationAllowDefinition AllowDefinition { get => throw null; set => throw null; } - public System.Configuration.ConfigurationAllowExeDefinition AllowExeDefinition { get => throw null; set => throw null; } - public bool AllowLocation { get => throw null; set => throw null; } - public bool AllowOverride { get => throw null; set => throw null; } - public string ConfigSource { get => throw null; set => throw null; } - public void ForceDeclaration(bool force) => throw null; - public void ForceDeclaration() => throw null; - public bool ForceSave { get => throw null; set => throw null; } - public System.Configuration.ConfigurationSection GetParentSection() => throw null; - public string GetRawXml() => throw null; - public bool InheritInChildApplications { get => throw null; set => throw null; } - public bool IsDeclarationRequired { get => throw null; } - public bool IsDeclared { get => throw null; } - public bool IsLocked { get => throw null; } - public bool IsProtected { get => throw null; } - public string Name { get => throw null; } - public System.Configuration.OverrideMode OverrideMode { get => throw null; set => throw null; } - public System.Configuration.OverrideMode OverrideModeDefault { get => throw null; set => throw null; } - public System.Configuration.OverrideMode OverrideModeEffective { get => throw null; } - public void ProtectSection(string protectionProvider) => throw null; - public System.Configuration.ProtectedConfigurationProvider ProtectionProvider { get => throw null; } - public bool RequirePermission { get => throw null; set => throw null; } - public bool RestartOnExternalChanges { get => throw null; set => throw null; } - public void RevertToParent() => throw null; - public string SectionName { get => throw null; } - public void SetRawXml(string rawXml) => throw null; - public string Type { get => throw null; set => throw null; } - public void UnprotectSection() => throw null; - } - - // Generated from `System.Configuration.SettingAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingAttribute : System.Attribute - { - public SettingAttribute() => throw null; - } - - // Generated from `System.Configuration.SettingChangingEventArgs` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingChangingEventArgs : System.ComponentModel.CancelEventArgs - { - public object NewValue { get => throw null; } - public SettingChangingEventArgs(string settingName, string settingClass, string settingKey, object newValue, bool cancel) => throw null; - public string SettingClass { get => throw null; } - public string SettingKey { get => throw null; } - public string SettingName { get => throw null; } - } - - // Generated from `System.Configuration.SettingChangingEventHandler` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e); - - // Generated from `System.Configuration.SettingElement` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingElement : System.Configuration.ConfigurationElement - { - public override bool Equals(object settings) => throw null; - public override int GetHashCode() => throw null; - public string Name { get => throw null; set => throw null; } - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public System.Configuration.SettingsSerializeAs SerializeAs { get => throw null; set => throw null; } - public SettingElement(string name, System.Configuration.SettingsSerializeAs serializeAs) => throw null; - public SettingElement() => throw null; - public System.Configuration.SettingValueElement Value { get => throw null; set => throw null; } - } - - // Generated from `System.Configuration.SettingElementCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingElementCollection : System.Configuration.ConfigurationElementCollection - { - public void Add(System.Configuration.SettingElement element) => throw null; - public void Clear() => throw null; - public override System.Configuration.ConfigurationElementCollectionType CollectionType { get => throw null; } - protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; - protected override string ElementName { get => throw null; } - public System.Configuration.SettingElement Get(string elementKey) => throw null; - protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; - public void Remove(System.Configuration.SettingElement element) => throw null; - public SettingElementCollection() => throw null; - } - - // Generated from `System.Configuration.SettingValueElement` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingValueElement : System.Configuration.ConfigurationElement - { - protected override void DeserializeElement(System.Xml.XmlReader reader, bool serializeCollectionKey) => throw null; - public override bool Equals(object settingValue) => throw null; - public override int GetHashCode() => throw null; - protected override bool IsModified() => throw null; - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - protected override void Reset(System.Configuration.ConfigurationElement parentElement) => throw null; - protected override void ResetModified() => throw null; - protected override bool SerializeToXmlElement(System.Xml.XmlWriter writer, string elementName) => throw null; - public SettingValueElement() => throw null; - protected override void Unmerge(System.Configuration.ConfigurationElement sourceElement, System.Configuration.ConfigurationElement parentElement, System.Configuration.ConfigurationSaveMode saveMode) => throw null; - public System.Xml.XmlNode ValueXml { get => throw null; set => throw null; } - } - - // Generated from `System.Configuration.SettingsAttributeDictionary` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsAttributeDictionary : System.Collections.Hashtable - { - public SettingsAttributeDictionary(System.Configuration.SettingsAttributeDictionary attributes) => throw null; - public SettingsAttributeDictionary() => throw null; - } - - // Generated from `System.Configuration.SettingsBase` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class SettingsBase - { - public virtual System.Configuration.SettingsContext Context { get => throw null; } - public void Initialize(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties, System.Configuration.SettingsProviderCollection providers) => throw null; - public bool IsSynchronized { get => throw null; } - public virtual object this[string propertyName] { get => throw null; set => throw null; } - public virtual System.Configuration.SettingsPropertyCollection Properties { get => throw null; } - public virtual System.Configuration.SettingsPropertyValueCollection PropertyValues { get => throw null; } - public virtual System.Configuration.SettingsProviderCollection Providers { get => throw null; } - public virtual void Save() => throw null; - protected SettingsBase() => throw null; - public static System.Configuration.SettingsBase Synchronized(System.Configuration.SettingsBase settingsBase) => throw null; - } - - // Generated from `System.Configuration.SettingsContext` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsContext : System.Collections.Hashtable - { - public SettingsContext() => throw null; - } - - // Generated from `System.Configuration.SettingsDescriptionAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsDescriptionAttribute : System.Attribute - { - public string Description { get => throw null; } - public SettingsDescriptionAttribute(string description) => throw null; - } - - // Generated from `System.Configuration.SettingsGroupDescriptionAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsGroupDescriptionAttribute : System.Attribute - { - public string Description { get => throw null; } - public SettingsGroupDescriptionAttribute(string description) => throw null; - } - - // Generated from `System.Configuration.SettingsGroupNameAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsGroupNameAttribute : System.Attribute - { - public string GroupName { get => throw null; } - public SettingsGroupNameAttribute(string groupName) => throw null; - } - - // Generated from `System.Configuration.SettingsLoadedEventArgs` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsLoadedEventArgs : System.EventArgs - { - public System.Configuration.SettingsProvider Provider { get => throw null; } - public SettingsLoadedEventArgs(System.Configuration.SettingsProvider provider) => throw null; - } - - // Generated from `System.Configuration.SettingsLoadedEventHandler` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate void SettingsLoadedEventHandler(object sender, System.Configuration.SettingsLoadedEventArgs e); - - // Generated from `System.Configuration.SettingsManageability` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum SettingsManageability - { - Roaming, - } - - // Generated from `System.Configuration.SettingsManageabilityAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsManageabilityAttribute : System.Attribute - { - public System.Configuration.SettingsManageability Manageability { get => throw null; } - public SettingsManageabilityAttribute(System.Configuration.SettingsManageability manageability) => throw null; - } - - // Generated from `System.Configuration.SettingsProperty` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsProperty - { - public virtual System.Configuration.SettingsAttributeDictionary Attributes { get => throw null; } - public virtual object DefaultValue { get => throw null; set => throw null; } - public virtual bool IsReadOnly { get => throw null; set => throw null; } - public virtual string Name { get => throw null; set => throw null; } - public virtual System.Type PropertyType { get => throw null; set => throw null; } - public virtual System.Configuration.SettingsProvider Provider { get => throw null; set => throw null; } - public virtual System.Configuration.SettingsSerializeAs SerializeAs { get => throw null; set => throw null; } - public SettingsProperty(string name, System.Type propertyType, System.Configuration.SettingsProvider provider, bool isReadOnly, object defaultValue, System.Configuration.SettingsSerializeAs serializeAs, System.Configuration.SettingsAttributeDictionary attributes, bool throwOnErrorDeserializing, bool throwOnErrorSerializing) => throw null; - public SettingsProperty(string name) => throw null; - public SettingsProperty(System.Configuration.SettingsProperty propertyToCopy) => throw null; - public bool ThrowOnErrorDeserializing { get => throw null; set => throw null; } - public bool ThrowOnErrorSerializing { get => throw null; set => throw null; } - } - - // Generated from `System.Configuration.SettingsPropertyCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsPropertyCollection : System.ICloneable, System.Collections.IEnumerable, System.Collections.ICollection - { - public void Add(System.Configuration.SettingsProperty property) => throw null; - public void Clear() => throw null; - public object Clone() => throw null; - public void CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.IEnumerator GetEnumerator() => throw null; - public bool IsSynchronized { get => throw null; } - public System.Configuration.SettingsProperty this[string name] { get => throw null; } - protected virtual void OnAdd(System.Configuration.SettingsProperty property) => throw null; - protected virtual void OnAddComplete(System.Configuration.SettingsProperty property) => throw null; - protected virtual void OnClear() => throw null; - protected virtual void OnClearComplete() => throw null; - protected virtual void OnRemove(System.Configuration.SettingsProperty property) => throw null; - protected virtual void OnRemoveComplete(System.Configuration.SettingsProperty property) => throw null; - public void Remove(string name) => throw null; - public void SetReadOnly() => throw null; - public SettingsPropertyCollection() => throw null; - public object SyncRoot { get => throw null; } - } - - // Generated from `System.Configuration.SettingsPropertyIsReadOnlyException` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsPropertyIsReadOnlyException : System.Exception - { - public SettingsPropertyIsReadOnlyException(string message, System.Exception innerException) => throw null; - public SettingsPropertyIsReadOnlyException(string message) => throw null; - public SettingsPropertyIsReadOnlyException() => throw null; - protected SettingsPropertyIsReadOnlyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `System.Configuration.SettingsPropertyNotFoundException` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsPropertyNotFoundException : System.Exception - { - public SettingsPropertyNotFoundException(string message, System.Exception innerException) => throw null; - public SettingsPropertyNotFoundException(string message) => throw null; - public SettingsPropertyNotFoundException() => throw null; - protected SettingsPropertyNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `System.Configuration.SettingsPropertyValue` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsPropertyValue - { - public bool Deserialized { get => throw null; set => throw null; } - public bool IsDirty { get => throw null; set => throw null; } - public string Name { get => throw null; } - public System.Configuration.SettingsProperty Property { get => throw null; } - public object PropertyValue { get => throw null; set => throw null; } - public object SerializedValue { get => throw null; set => throw null; } - public SettingsPropertyValue(System.Configuration.SettingsProperty property) => throw null; - public bool UsingDefaultValue { get => throw null; } - } - - // Generated from `System.Configuration.SettingsPropertyValueCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsPropertyValueCollection : System.ICloneable, System.Collections.IEnumerable, System.Collections.ICollection - { - public void Add(System.Configuration.SettingsPropertyValue property) => throw null; - public void Clear() => throw null; - public object Clone() => throw null; - public void CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - public System.Collections.IEnumerator GetEnumerator() => throw null; - public bool IsSynchronized { get => throw null; } - public System.Configuration.SettingsPropertyValue this[string name] { get => throw null; } - public void Remove(string name) => throw null; - public void SetReadOnly() => throw null; - public SettingsPropertyValueCollection() => throw null; - public object SyncRoot { get => throw null; } - } - - // Generated from `System.Configuration.SettingsPropertyWrongTypeException` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsPropertyWrongTypeException : System.Exception - { - public SettingsPropertyWrongTypeException(string message, System.Exception innerException) => throw null; - public SettingsPropertyWrongTypeException(string message) => throw null; - public SettingsPropertyWrongTypeException() => throw null; - protected SettingsPropertyWrongTypeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `System.Configuration.SettingsProvider` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class SettingsProvider : System.Configuration.Provider.ProviderBase - { - public abstract string ApplicationName { get; set; } - public abstract System.Configuration.SettingsPropertyValueCollection GetPropertyValues(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection collection); - public abstract void SetPropertyValues(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyValueCollection collection); - protected SettingsProvider() => throw null; - } - - // Generated from `System.Configuration.SettingsProviderAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsProviderAttribute : System.Attribute - { - public string ProviderTypeName { get => throw null; } - public SettingsProviderAttribute(string providerTypeName) => throw null; - public SettingsProviderAttribute(System.Type providerType) => throw null; - } - - // Generated from `System.Configuration.SettingsProviderCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsProviderCollection : System.Configuration.Provider.ProviderCollection - { - public override void Add(System.Configuration.Provider.ProviderBase provider) => throw null; - public System.Configuration.SettingsProvider this[string name] { get => throw null; } - public SettingsProviderCollection() => throw null; - } - - // Generated from `System.Configuration.SettingsSavingEventHandler` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e); - - // Generated from `System.Configuration.SettingsSerializeAs` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum SettingsSerializeAs - { - Binary, - ProviderSpecific, - String, - Xml, - } - - // Generated from `System.Configuration.SettingsSerializeAsAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SettingsSerializeAsAttribute : System.Attribute - { - public System.Configuration.SettingsSerializeAs SerializeAs { get => throw null; } - public SettingsSerializeAsAttribute(System.Configuration.SettingsSerializeAs serializeAs) => throw null; - } - - // Generated from `System.Configuration.SingleTagSectionHandler` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SingleTagSectionHandler : System.Configuration.IConfigurationSectionHandler - { - public virtual object Create(object parent, object context, System.Xml.XmlNode section) => throw null; - public SingleTagSectionHandler() => throw null; - } - - // Generated from `System.Configuration.SpecialSetting` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum SpecialSetting - { - ConnectionString, - WebServiceUrl, - } - - // Generated from `System.Configuration.SpecialSettingAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SpecialSettingAttribute : System.Attribute - { - public System.Configuration.SpecialSetting SpecialSetting { get => throw null; } - public SpecialSettingAttribute(System.Configuration.SpecialSetting specialSetting) => throw null; - } - - // Generated from `System.Configuration.StringValidator` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StringValidator : System.Configuration.ConfigurationValidatorBase - { - public override bool CanValidate(System.Type type) => throw null; - public StringValidator(int minLength, int maxLength, string invalidCharacters) => throw null; - public StringValidator(int minLength, int maxLength) => throw null; - public StringValidator(int minLength) => throw null; - public override void Validate(object value) => throw null; - } - - // Generated from `System.Configuration.StringValidatorAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StringValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute - { - public string InvalidCharacters { get => throw null; set => throw null; } - public int MaxLength { get => throw null; set => throw null; } - public int MinLength { get => throw null; set => throw null; } - public StringValidatorAttribute() => throw null; - public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } - } - - // Generated from `System.Configuration.SubclassTypeValidator` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SubclassTypeValidator : System.Configuration.ConfigurationValidatorBase - { - public override bool CanValidate(System.Type type) => throw null; - public SubclassTypeValidator(System.Type baseClass) => throw null; - public override void Validate(object value) => throw null; - } - - // Generated from `System.Configuration.SubclassTypeValidatorAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SubclassTypeValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute - { - public System.Type BaseClass { get => throw null; } - public SubclassTypeValidatorAttribute(System.Type baseClass) => throw null; - public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } - } - - // Generated from `System.Configuration.TimeSpanMinutesConverter` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TimeSpanMinutesConverter : System.Configuration.ConfigurationConverterBase - { - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; - public TimeSpanMinutesConverter() => throw null; - } - - // Generated from `System.Configuration.TimeSpanMinutesOrInfiniteConverter` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TimeSpanMinutesOrInfiniteConverter : System.Configuration.TimeSpanMinutesConverter - { - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; - public TimeSpanMinutesOrInfiniteConverter() => throw null; - } - - // Generated from `System.Configuration.TimeSpanSecondsConverter` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TimeSpanSecondsConverter : System.Configuration.ConfigurationConverterBase - { - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; - public TimeSpanSecondsConverter() => throw null; - } - - // Generated from `System.Configuration.TimeSpanSecondsOrInfiniteConverter` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TimeSpanSecondsOrInfiniteConverter : System.Configuration.TimeSpanSecondsConverter - { - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; - public TimeSpanSecondsOrInfiniteConverter() => throw null; - } - - // Generated from `System.Configuration.TimeSpanValidator` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TimeSpanValidator : System.Configuration.ConfigurationValidatorBase - { - public override bool CanValidate(System.Type type) => throw null; - public TimeSpanValidator(System.TimeSpan minValue, System.TimeSpan maxValue, bool rangeIsExclusive, System.Int64 resolutionInSeconds) => throw null; - public TimeSpanValidator(System.TimeSpan minValue, System.TimeSpan maxValue, bool rangeIsExclusive) => throw null; - public TimeSpanValidator(System.TimeSpan minValue, System.TimeSpan maxValue) => throw null; - public override void Validate(object value) => throw null; - } - - // Generated from `System.Configuration.TimeSpanValidatorAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TimeSpanValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute - { - public bool ExcludeRange { get => throw null; set => throw null; } - public System.TimeSpan MaxValue { get => throw null; } - public string MaxValueString { get => throw null; set => throw null; } - public System.TimeSpan MinValue { get => throw null; } - public string MinValueString { get => throw null; set => throw null; } - public const string TimeSpanMaxValue = default; - public const string TimeSpanMinValue = default; - public TimeSpanValidatorAttribute() => throw null; - public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } - } - - // Generated from `System.Configuration.TypeNameConverter` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TypeNameConverter : System.Configuration.ConfigurationConverterBase - { - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; - public TypeNameConverter() => throw null; - } - - // Generated from `System.Configuration.UriSection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class UriSection : System.Configuration.ConfigurationSection - { - public System.Configuration.IdnElement Idn { get => throw null; } - public System.Configuration.IriParsingElement IriParsing { get => throw null; } - protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } - public System.Configuration.SchemeSettingElementCollection SchemeSettings { get => throw null; } - public UriSection() => throw null; - } - - // Generated from `System.Configuration.UserScopedSettingAttribute` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class UserScopedSettingAttribute : System.Configuration.SettingAttribute - { - public UserScopedSettingAttribute() => throw null; - } - - // Generated from `System.Configuration.UserSettingsGroup` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class UserSettingsGroup : System.Configuration.ConfigurationSectionGroup - { - public UserSettingsGroup() => throw null; - } - - // Generated from `System.Configuration.ValidatorCallback` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate void ValidatorCallback(object value); - - // Generated from `System.Configuration.WhiteSpaceTrimStringConverter` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class WhiteSpaceTrimStringConverter : System.Configuration.ConfigurationConverterBase - { - public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; - public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; - public WhiteSpaceTrimStringConverter() => throw null; - } - namespace Internal { - // Generated from `System.Configuration.Internal.DelegatingConfigHost` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class DelegatingConfigHost : System.Configuration.Internal.IInternalConfigHost { public virtual object CreateConfigurationContext(string configPath, string locationSubPath) => throw null; public virtual object CreateDeprecatedConfigContext(string configPath) => throw null; - public virtual string DecryptSection(string encryptedXml, System.Configuration.ProtectedConfigurationProvider protectionProvider, System.Configuration.ProtectedConfigurationSection protectedConfigSection) => throw null; protected DelegatingConfigHost() => throw null; + public virtual string DecryptSection(string encryptedXml, System.Configuration.ProtectedConfigurationProvider protectionProvider, System.Configuration.ProtectedConfigurationSection protectedConfigSection) => throw null; public virtual void DeleteStream(string streamName) => throw null; public virtual string EncryptSection(string clearTextXml, System.Configuration.ProtectedConfigurationProvider protectionProvider, System.Configuration.ProtectedConfigurationSection protectedConfigSection) => throw null; public virtual string GetConfigPathFromLocationSubPath(string configPath, string locationSubPath) => throw null; public virtual System.Type GetConfigType(string typeName, bool throwOnError) => throw null; public virtual string GetConfigTypeName(System.Type t) => throw null; + public virtual void GetRestrictedPermissions(System.Configuration.Internal.IInternalConfigRecord configRecord, out System.Security.PermissionSet permissionSet, out bool isHostReady) => throw null; public virtual string GetStreamName(string configPath) => throw null; public virtual string GetStreamNameForConfigSource(string streamName, string configSource) => throw null; public virtual object GetStreamVersion(string streamName) => throw null; - protected System.Configuration.Internal.IInternalConfigHost Host { get => throw null; set => throw null; } + public virtual bool HasLocalConfig { get => throw null; } + public virtual bool HasRoamingConfig { get => throw null; } + protected System.Configuration.Internal.IInternalConfigHost Host { get => throw null; set { } } public virtual System.IDisposable Impersonate() => throw null; public virtual void Init(System.Configuration.Internal.IInternalConfigRoot configRoot, params object[] hostInitParams) => throw null; public virtual void InitForConfiguration(ref string locationSubPath, out string configPath, out string locationConfigPath, System.Configuration.Internal.IInternalConfigRoot configRoot, params object[] hostInitConfigurationParams) => throw null; public virtual bool IsAboveApplication(string configPath) => throw null; + public virtual bool IsAppConfigHttp { get => throw null; } public virtual bool IsConfigRecordRequired(string configPath) => throw null; public virtual bool IsDefinitionAllowed(string configPath, System.Configuration.ConfigurationAllowDefinition allowDefinition, System.Configuration.ConfigurationAllowExeDefinition allowExeDefinition) => throw null; public virtual bool IsFile(string streamName) => throw null; @@ -1611,12 +693,13 @@ namespace System public virtual bool IsRemote { get => throw null; } public virtual bool IsSecondaryRoot(string configPath) => throw null; public virtual bool IsTrustedConfigPath(string configPath) => throw null; - public virtual System.IO.Stream OpenStreamForRead(string streamName, bool assertPermissions) => throw null; public virtual System.IO.Stream OpenStreamForRead(string streamName) => throw null; - public virtual System.IO.Stream OpenStreamForWrite(string streamName, string templateStreamName, ref object writeContext, bool assertPermissions) => throw null; + public virtual System.IO.Stream OpenStreamForRead(string streamName, bool assertPermissions) => throw null; public virtual System.IO.Stream OpenStreamForWrite(string streamName, string templateStreamName, ref object writeContext) => throw null; + public virtual System.IO.Stream OpenStreamForWrite(string streamName, string templateStreamName, ref object writeContext, bool assertPermissions) => throw null; public virtual bool PrefetchAll(string configPath, string streamName) => throw null; public virtual bool PrefetchSection(string sectionGroupName, string sectionName) => throw null; + public virtual void RefreshConfigPaths() => throw null; public virtual void RequireCompleteInit(System.Configuration.Internal.IInternalConfigRecord configRecord) => throw null; public virtual object StartMonitoringStreamForChanges(string streamName, System.Configuration.Internal.StreamChangeCallback callback) => throw null; public virtual void StopMonitoringStreamForChanges(string streamName, System.Configuration.Internal.StreamChangeCallback callback) => throw null; @@ -1625,32 +708,24 @@ namespace System public virtual bool SupportsPath { get => throw null; } public virtual bool SupportsRefresh { get => throw null; } public virtual void VerifyDefinitionAllowed(string configPath, System.Configuration.ConfigurationAllowDefinition allowDefinition, System.Configuration.ConfigurationAllowExeDefinition allowExeDefinition, System.Configuration.Internal.IConfigErrorInfo errorInfo) => throw null; - public virtual void WriteCompleted(string streamName, bool success, object writeContext, bool assertPermissions) => throw null; public virtual void WriteCompleted(string streamName, bool success, object writeContext) => throw null; + public virtual void WriteCompleted(string streamName, bool success, object writeContext, bool assertPermissions) => throw null; } - - // Generated from `System.Configuration.Internal.IConfigErrorInfo` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IConfigErrorInfo { string Filename { get; } int LineNumber { get; } } - - // Generated from `System.Configuration.Internal.IConfigSystem` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IConfigSystem { System.Configuration.Internal.IInternalConfigHost Host { get; } void Init(System.Type typeConfigHost, params object[] hostInitParams); System.Configuration.Internal.IInternalConfigRoot Root { get; } } - - // Generated from `System.Configuration.Internal.IConfigurationManagerHelper` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IConfigurationManagerHelper { void EnsureNetConfigLoaded(); } - - // Generated from `System.Configuration.Internal.IConfigurationManagerInternal` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IConfigurationManagerInternal { string ApplicationConfigUri { get; } @@ -1665,8 +740,6 @@ namespace System bool SupportsUserConfig { get; } string UserConfigFilename { get; } } - - // Generated from `System.Configuration.Internal.IInternalConfigClientHost` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IInternalConfigClientHost { string GetExeConfigPath(); @@ -1676,15 +749,11 @@ namespace System bool IsLocalUserConfig(string configPath); bool IsRoamingUserConfig(string configPath); } - - // Generated from `System.Configuration.Internal.IInternalConfigConfigurationFactory` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IInternalConfigConfigurationFactory { System.Configuration.Configuration Create(System.Type typeConfigHost, params object[] hostInitConfigurationParams); string NormalizeLocationSubPath(string subPath, System.Configuration.Internal.IConfigErrorInfo errorInfo); } - - // Generated from `System.Configuration.Internal.IInternalConfigHost` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IInternalConfigHost { object CreateConfigurationContext(string configPath, string locationSubPath); @@ -1695,6 +764,7 @@ namespace System string GetConfigPathFromLocationSubPath(string configPath, string locationSubPath); System.Type GetConfigType(string typeName, bool throwOnError); string GetConfigTypeName(System.Type t); + void GetRestrictedPermissions(System.Configuration.Internal.IInternalConfigRecord configRecord, out System.Security.PermissionSet permissionSet, out bool isHostReady); string GetStreamName(string configPath); string GetStreamNameForConfigSource(string streamName, string configSource); object GetStreamVersion(string streamName); @@ -1711,10 +781,10 @@ namespace System bool IsRemote { get; } bool IsSecondaryRoot(string configPath); bool IsTrustedConfigPath(string configPath); - System.IO.Stream OpenStreamForRead(string streamName, bool assertPermissions); System.IO.Stream OpenStreamForRead(string streamName); - System.IO.Stream OpenStreamForWrite(string streamName, string templateStreamName, ref object writeContext, bool assertPermissions); + System.IO.Stream OpenStreamForRead(string streamName, bool assertPermissions); System.IO.Stream OpenStreamForWrite(string streamName, string templateStreamName, ref object writeContext); + System.IO.Stream OpenStreamForWrite(string streamName, string templateStreamName, ref object writeContext, bool assertPermissions); bool PrefetchAll(string configPath, string streamName); bool PrefetchSection(string sectionGroupName, string sectionName); void RequireCompleteInit(System.Configuration.Internal.IInternalConfigRecord configRecord); @@ -1725,11 +795,9 @@ namespace System bool SupportsPath { get; } bool SupportsRefresh { get; } void VerifyDefinitionAllowed(string configPath, System.Configuration.ConfigurationAllowDefinition allowDefinition, System.Configuration.ConfigurationAllowExeDefinition allowExeDefinition, System.Configuration.Internal.IConfigErrorInfo errorInfo); - void WriteCompleted(string streamName, bool success, object writeContext, bool assertPermissions); void WriteCompleted(string streamName, bool success, object writeContext); + void WriteCompleted(string streamName, bool success, object writeContext, bool assertPermissions); } - - // Generated from `System.Configuration.Internal.IInternalConfigRecord` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IInternalConfigRecord { string ConfigPath { get; } @@ -1741,12 +809,10 @@ namespace System string StreamName { get; } void ThrowIfInitErrors(); } - - // Generated from `System.Configuration.Internal.IInternalConfigRoot` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IInternalConfigRoot { - event System.Configuration.Internal.InternalConfigEventHandler ConfigChanged; - event System.Configuration.Internal.InternalConfigEventHandler ConfigRemoved; + event System.Configuration.Internal.InternalConfigEventHandler ConfigChanged { add { } remove { } } + event System.Configuration.Internal.InternalConfigEventHandler ConfigRemoved { add { } remove { } } System.Configuration.Internal.IInternalConfigRecord GetConfigRecord(string configPath); object GetSection(string section, string configPath); string GetUniqueConfigPath(string configPath); @@ -1755,73 +821,692 @@ namespace System bool IsDesignTime { get; } void RemoveConfig(string configPath); } - - // Generated from `System.Configuration.Internal.IInternalConfigSettingsFactory` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IInternalConfigSettingsFactory { void CompleteInit(); void SetConfigurationSystem(System.Configuration.Internal.IInternalConfigSystem internalConfigSystem, bool initComplete); } - - // Generated from `System.Configuration.Internal.IInternalConfigSystem` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IInternalConfigSystem { object GetSection(string configKey); void RefreshConfig(string sectionName); bool SupportsUserConfig { get; } } - - // Generated from `System.Configuration.Internal.InternalConfigEventArgs` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class InternalConfigEventArgs : System.EventArgs + public sealed class InternalConfigEventArgs : System.EventArgs { - public string ConfigPath { get => throw null; set => throw null; } + public string ConfigPath { get => throw null; set { } } public InternalConfigEventArgs(string configPath) => throw null; } - - // Generated from `System.Configuration.Internal.InternalConfigEventHandler` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void InternalConfigEventHandler(object sender, System.Configuration.Internal.InternalConfigEventArgs e); - - // Generated from `System.Configuration.Internal.StreamChangeCallback` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void StreamChangeCallback(string streamName); - + } + public interface IPersistComponentSettings + { + void LoadComponentSettings(); + void ResetComponentSettings(); + void SaveComponentSettings(); + bool SaveSettings { get; set; } + string SettingsKey { get; set; } + } + public sealed class IriParsingElement : System.Configuration.ConfigurationElement + { + public IriParsingElement() => throw null; + public bool Enabled { get => throw null; set { } } + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + } + public interface ISettingsProviderService + { + System.Configuration.SettingsProvider GetSettingsProvider(System.Configuration.SettingsProperty property); + } + public class KeyValueConfigurationCollection : System.Configuration.ConfigurationElementCollection + { + public void Add(System.Configuration.KeyValueConfigurationElement keyValue) => throw null; + public void Add(string key, string value) => throw null; + public string[] AllKeys { get => throw null; } + public void Clear() => throw null; + protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; + public KeyValueConfigurationCollection() => throw null; + protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + public void Remove(string key) => throw null; + public System.Configuration.KeyValueConfigurationElement this[string key] { get => throw null; } + protected override bool ThrowOnDuplicate { get => throw null; } + } + public class KeyValueConfigurationElement : System.Configuration.ConfigurationElement + { + public KeyValueConfigurationElement(string key, string value) => throw null; + protected override void Init() => throw null; + public string Key { get => throw null; } + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + public string Value { get => throw null; set { } } + } + public class LocalFileSettingsProvider : System.Configuration.SettingsProvider, System.Configuration.IApplicationSettingsProvider + { + public override string ApplicationName { get => throw null; set { } } + public LocalFileSettingsProvider() => throw null; + public System.Configuration.SettingsPropertyValue GetPreviousVersion(System.Configuration.SettingsContext context, System.Configuration.SettingsProperty property) => throw null; + public override System.Configuration.SettingsPropertyValueCollection GetPropertyValues(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties) => throw null; + public override void Initialize(string name, System.Collections.Specialized.NameValueCollection values) => throw null; + public void Reset(System.Configuration.SettingsContext context) => throw null; + public override void SetPropertyValues(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyValueCollection values) => throw null; + public void Upgrade(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties) => throw null; + } + public class LongValidator : System.Configuration.ConfigurationValidatorBase + { + public override bool CanValidate(System.Type type) => throw null; + public LongValidator(long minValue, long maxValue) => throw null; + public LongValidator(long minValue, long maxValue, bool rangeIsExclusive) => throw null; + public LongValidator(long minValue, long maxValue, bool rangeIsExclusive, long resolution) => throw null; + public override void Validate(object value) => throw null; + } + public sealed class LongValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute + { + public LongValidatorAttribute() => throw null; + public bool ExcludeRange { get => throw null; set { } } + public long MaxValue { get => throw null; set { } } + public long MinValue { get => throw null; set { } } + public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } + } + public sealed class NameValueConfigurationCollection : System.Configuration.ConfigurationElementCollection + { + public void Add(System.Configuration.NameValueConfigurationElement nameValue) => throw null; + public string[] AllKeys { get => throw null; } + public void Clear() => throw null; + protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; + public NameValueConfigurationCollection() => throw null; + protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + public void Remove(System.Configuration.NameValueConfigurationElement nameValue) => throw null; + public void Remove(string name) => throw null; + public System.Configuration.NameValueConfigurationElement this[string name] { get => throw null; set { } } + } + public sealed class NameValueConfigurationElement : System.Configuration.ConfigurationElement + { + public NameValueConfigurationElement(string name, string value) => throw null; + public string Name { get => throw null; } + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + public string Value { get => throw null; set { } } + } + public class NameValueFileSectionHandler : System.Configuration.IConfigurationSectionHandler + { + public object Create(object parent, object configContext, System.Xml.XmlNode section) => throw null; + public NameValueFileSectionHandler() => throw null; + } + public class NameValueSectionHandler : System.Configuration.IConfigurationSectionHandler + { + public object Create(object parent, object context, System.Xml.XmlNode section) => throw null; + public NameValueSectionHandler() => throw null; + protected virtual string KeyAttributeName { get => throw null; } + protected virtual string ValueAttributeName { get => throw null; } + } + public sealed class NoSettingsVersionUpgradeAttribute : System.Attribute + { + public NoSettingsVersionUpgradeAttribute() => throw null; + } + public enum OverrideMode + { + Inherit = 0, + Allow = 1, + Deny = 2, + } + public class PositiveTimeSpanValidator : System.Configuration.ConfigurationValidatorBase + { + public override bool CanValidate(System.Type type) => throw null; + public PositiveTimeSpanValidator() => throw null; + public override void Validate(object value) => throw null; + } + public sealed class PositiveTimeSpanValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute + { + public PositiveTimeSpanValidatorAttribute() => throw null; + public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } + } + public sealed class PropertyInformation + { + public System.ComponentModel.TypeConverter Converter { get => throw null; } + public object DefaultValue { get => throw null; } + public string Description { get => throw null; } + public bool IsKey { get => throw null; } + public bool IsLocked { get => throw null; } + public bool IsModified { get => throw null; } + public bool IsRequired { get => throw null; } + public int LineNumber { get => throw null; } + public string Name { get => throw null; } + public string Source { get => throw null; } + public System.Type Type { get => throw null; } + public System.Configuration.ConfigurationValidatorBase Validator { get => throw null; } + public object Value { get => throw null; set { } } + public System.Configuration.PropertyValueOrigin ValueOrigin { get => throw null; } + } + public sealed class PropertyInformationCollection : System.Collections.Specialized.NameObjectCollectionBase + { + public void CopyTo(System.Configuration.PropertyInformation[] array, int index) => throw null; + public override System.Collections.IEnumerator GetEnumerator() => throw null; + public System.Configuration.PropertyInformation this[string propertyName] { get => throw null; } + } + public enum PropertyValueOrigin + { + Default = 0, + Inherited = 1, + SetHere = 2, + } + public static class ProtectedConfiguration + { + public static string DataProtectionProviderName; + public static string DefaultProvider { get => throw null; } + public static string ProtectedDataSectionName; + public static System.Configuration.ProtectedConfigurationProviderCollection Providers { get => throw null; } + public static string RsaProviderName; + } + public abstract class ProtectedConfigurationProvider : System.Configuration.Provider.ProviderBase + { + protected ProtectedConfigurationProvider() => throw null; + public abstract System.Xml.XmlNode Decrypt(System.Xml.XmlNode encryptedNode); + public abstract System.Xml.XmlNode Encrypt(System.Xml.XmlNode node); + } + public class ProtectedConfigurationProviderCollection : System.Configuration.Provider.ProviderCollection + { + public override void Add(System.Configuration.Provider.ProviderBase provider) => throw null; + public ProtectedConfigurationProviderCollection() => throw null; + public System.Configuration.ProtectedConfigurationProvider this[string name] { get => throw null; } + } + public sealed class ProtectedConfigurationSection : System.Configuration.ConfigurationSection + { + public ProtectedConfigurationSection() => throw null; + public string DefaultProvider { get => throw null; set { } } + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + public System.Configuration.ProviderSettingsCollection Providers { get => throw null; } + } + public class ProtectedProviderSettings : System.Configuration.ConfigurationElement + { + public ProtectedProviderSettings() => throw null; + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + public System.Configuration.ProviderSettingsCollection Providers { get => throw null; } } namespace Provider { - // Generated from `System.Configuration.Provider.ProviderBase` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ProviderBase { + protected ProviderBase() => throw null; public virtual string Description { get => throw null; } public virtual void Initialize(string name, System.Collections.Specialized.NameValueCollection config) => throw null; public virtual string Name { get => throw null; } - protected ProviderBase() => throw null; } - - // Generated from `System.Configuration.Provider.ProviderCollection` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ProviderCollection : System.Collections.IEnumerable, System.Collections.ICollection + public class ProviderCollection : System.Collections.ICollection, System.Collections.IEnumerable { public virtual void Add(System.Configuration.Provider.ProviderBase provider) => throw null; public void Clear() => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public void CopyTo(System.Configuration.Provider.ProviderBase[] array, int index) => throw null; public int Count { get => throw null; } + public ProviderCollection() => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; public bool IsSynchronized { get => throw null; } - public System.Configuration.Provider.ProviderBase this[string name] { get => throw null; } - public ProviderCollection() => throw null; public void Remove(string name) => throw null; public void SetReadOnly() => throw null; public object SyncRoot { get => throw null; } + public System.Configuration.Provider.ProviderBase this[string name] { get => throw null; } } - - // Generated from `System.Configuration.Provider.ProviderException` in `System.Configuration.ConfigurationManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ProviderException : System.Exception { - public ProviderException(string message, System.Exception innerException) => throw null; - public ProviderException(string message) => throw null; public ProviderException() => throw null; + public ProviderException(string message) => throw null; + public ProviderException(string message, System.Exception innerException) => throw null; protected ProviderException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - + } + public sealed class ProviderSettings : System.Configuration.ConfigurationElement + { + public ProviderSettings() => throw null; + public ProviderSettings(string name, string type) => throw null; + protected override bool IsModified() => throw null; + public string Name { get => throw null; set { } } + protected override bool OnDeserializeUnrecognizedAttribute(string name, string value) => throw null; + public System.Collections.Specialized.NameValueCollection Parameters { get => throw null; } + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + protected override void Reset(System.Configuration.ConfigurationElement parentElement) => throw null; + public string Type { get => throw null; set { } } + protected override void Unmerge(System.Configuration.ConfigurationElement sourceElement, System.Configuration.ConfigurationElement parentElement, System.Configuration.ConfigurationSaveMode saveMode) => throw null; + } + public sealed class ProviderSettingsCollection : System.Configuration.ConfigurationElementCollection + { + public void Add(System.Configuration.ProviderSettings provider) => throw null; + public void Clear() => throw null; + protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; + public ProviderSettingsCollection() => throw null; + protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + public void Remove(string name) => throw null; + public System.Configuration.ProviderSettings this[string key] { get => throw null; } + public System.Configuration.ProviderSettings this[int index] { get => throw null; set { } } + } + public class RegexStringValidator : System.Configuration.ConfigurationValidatorBase + { + public override bool CanValidate(System.Type type) => throw null; + public RegexStringValidator(string regex) => throw null; + public override void Validate(object value) => throw null; + } + public sealed class RegexStringValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute + { + public RegexStringValidatorAttribute(string regex) => throw null; + public string Regex { get => throw null; } + public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } + } + public sealed class RsaProtectedConfigurationProvider : System.Configuration.ProtectedConfigurationProvider + { + public void AddKey(int keySize, bool exportable) => throw null; + public string CspProviderName { get => throw null; } + public RsaProtectedConfigurationProvider() => throw null; + public override System.Xml.XmlNode Decrypt(System.Xml.XmlNode encryptedNode) => throw null; + public void DeleteKey() => throw null; + public override System.Xml.XmlNode Encrypt(System.Xml.XmlNode node) => throw null; + public void ExportKey(string xmlFileName, bool includePrivateParameters) => throw null; + public void ImportKey(string xmlFileName, bool exportable) => throw null; + public string KeyContainerName { get => throw null; } + public System.Security.Cryptography.RSAParameters RsaPublicKey { get => throw null; } + public bool UseFIPS { get => throw null; } + public bool UseMachineContainer { get => throw null; } + public bool UseOAEP { get => throw null; } + } + public sealed class SchemeSettingElement : System.Configuration.ConfigurationElement + { + public SchemeSettingElement() => throw null; + public System.GenericUriParserOptions GenericUriParserOptions { get => throw null; } + public string Name { get => throw null; } + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + } + public sealed class SchemeSettingElementCollection : System.Configuration.ConfigurationElementCollection + { + public override System.Configuration.ConfigurationElementCollectionType CollectionType { get => throw null; } + protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; + public SchemeSettingElementCollection() => throw null; + protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; + public int IndexOf(System.Configuration.SchemeSettingElement element) => throw null; + public System.Configuration.SchemeSettingElement this[int index] { get => throw null; } + public System.Configuration.SchemeSettingElement this[string name] { get => throw null; } + } + public sealed class SectionInformation + { + public System.Configuration.ConfigurationAllowDefinition AllowDefinition { get => throw null; set { } } + public System.Configuration.ConfigurationAllowExeDefinition AllowExeDefinition { get => throw null; set { } } + public bool AllowLocation { get => throw null; set { } } + public bool AllowOverride { get => throw null; set { } } + public string ConfigSource { get => throw null; set { } } + public void ForceDeclaration() => throw null; + public void ForceDeclaration(bool force) => throw null; + public bool ForceSave { get => throw null; set { } } + public System.Configuration.ConfigurationSection GetParentSection() => throw null; + public string GetRawXml() => throw null; + public bool InheritInChildApplications { get => throw null; set { } } + public bool IsDeclarationRequired { get => throw null; } + public bool IsDeclared { get => throw null; } + public bool IsLocked { get => throw null; } + public bool IsProtected { get => throw null; } + public string Name { get => throw null; } + public System.Configuration.OverrideMode OverrideMode { get => throw null; set { } } + public System.Configuration.OverrideMode OverrideModeDefault { get => throw null; set { } } + public System.Configuration.OverrideMode OverrideModeEffective { get => throw null; } + public System.Configuration.ProtectedConfigurationProvider ProtectionProvider { get => throw null; } + public void ProtectSection(string protectionProvider) => throw null; + public bool RequirePermission { get => throw null; set { } } + public bool RestartOnExternalChanges { get => throw null; set { } } + public void RevertToParent() => throw null; + public string SectionName { get => throw null; } + public void SetRawXml(string rawXml) => throw null; + public string Type { get => throw null; set { } } + public void UnprotectSection() => throw null; + } + public class SettingAttribute : System.Attribute + { + public SettingAttribute() => throw null; + } + public class SettingChangingEventArgs : System.ComponentModel.CancelEventArgs + { + public SettingChangingEventArgs(string settingName, string settingClass, string settingKey, object newValue, bool cancel) => throw null; + public object NewValue { get => throw null; } + public string SettingClass { get => throw null; } + public string SettingKey { get => throw null; } + public string SettingName { get => throw null; } + } + public delegate void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e); + public sealed class SettingElement : System.Configuration.ConfigurationElement + { + public SettingElement() => throw null; + public SettingElement(string name, System.Configuration.SettingsSerializeAs serializeAs) => throw null; + public override bool Equals(object settings) => throw null; + public override int GetHashCode() => throw null; + public string Name { get => throw null; set { } } + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + public System.Configuration.SettingsSerializeAs SerializeAs { get => throw null; set { } } + public System.Configuration.SettingValueElement Value { get => throw null; set { } } + } + public sealed class SettingElementCollection : System.Configuration.ConfigurationElementCollection + { + public void Add(System.Configuration.SettingElement element) => throw null; + public void Clear() => throw null; + public override System.Configuration.ConfigurationElementCollectionType CollectionType { get => throw null; } + protected override System.Configuration.ConfigurationElement CreateNewElement() => throw null; + public SettingElementCollection() => throw null; + protected override string ElementName { get => throw null; } + public System.Configuration.SettingElement Get(string elementKey) => throw null; + protected override object GetElementKey(System.Configuration.ConfigurationElement element) => throw null; + public void Remove(System.Configuration.SettingElement element) => throw null; + } + public class SettingsAttributeDictionary : System.Collections.Hashtable + { + public SettingsAttributeDictionary() => throw null; + public SettingsAttributeDictionary(System.Configuration.SettingsAttributeDictionary attributes) => throw null; + protected SettingsAttributeDictionary(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + } + public abstract class SettingsBase + { + public virtual System.Configuration.SettingsContext Context { get => throw null; } + protected SettingsBase() => throw null; + public void Initialize(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties, System.Configuration.SettingsProviderCollection providers) => throw null; + public bool IsSynchronized { get => throw null; } + public virtual System.Configuration.SettingsPropertyCollection Properties { get => throw null; } + public virtual System.Configuration.SettingsPropertyValueCollection PropertyValues { get => throw null; } + public virtual System.Configuration.SettingsProviderCollection Providers { get => throw null; } + public virtual void Save() => throw null; + public static System.Configuration.SettingsBase Synchronized(System.Configuration.SettingsBase settingsBase) => throw null; + public virtual object this[string propertyName] { get => throw null; set { } } + } + public class SettingsContext : System.Collections.Hashtable + { + public SettingsContext() => throw null; + protected SettingsContext(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + } + public sealed class SettingsDescriptionAttribute : System.Attribute + { + public SettingsDescriptionAttribute(string description) => throw null; + public string Description { get => throw null; } + } + public sealed class SettingsGroupDescriptionAttribute : System.Attribute + { + public SettingsGroupDescriptionAttribute(string description) => throw null; + public string Description { get => throw null; } + } + public sealed class SettingsGroupNameAttribute : System.Attribute + { + public SettingsGroupNameAttribute(string groupName) => throw null; + public string GroupName { get => throw null; } + } + public class SettingsLoadedEventArgs : System.EventArgs + { + public SettingsLoadedEventArgs(System.Configuration.SettingsProvider provider) => throw null; + public System.Configuration.SettingsProvider Provider { get => throw null; } + } + public delegate void SettingsLoadedEventHandler(object sender, System.Configuration.SettingsLoadedEventArgs e); + public enum SettingsManageability + { + Roaming = 0, + } + public sealed class SettingsManageabilityAttribute : System.Attribute + { + public SettingsManageabilityAttribute(System.Configuration.SettingsManageability manageability) => throw null; + public System.Configuration.SettingsManageability Manageability { get => throw null; } + } + public class SettingsProperty + { + public virtual System.Configuration.SettingsAttributeDictionary Attributes { get => throw null; } + public SettingsProperty(string name) => throw null; + public SettingsProperty(string name, System.Type propertyType, System.Configuration.SettingsProvider provider, bool isReadOnly, object defaultValue, System.Configuration.SettingsSerializeAs serializeAs, System.Configuration.SettingsAttributeDictionary attributes, bool throwOnErrorDeserializing, bool throwOnErrorSerializing) => throw null; + public SettingsProperty(System.Configuration.SettingsProperty propertyToCopy) => throw null; + public virtual object DefaultValue { get => throw null; set { } } + public virtual bool IsReadOnly { get => throw null; set { } } + public virtual string Name { get => throw null; set { } } + public virtual System.Type PropertyType { get => throw null; set { } } + public virtual System.Configuration.SettingsProvider Provider { get => throw null; set { } } + public virtual System.Configuration.SettingsSerializeAs SerializeAs { get => throw null; set { } } + public bool ThrowOnErrorDeserializing { get => throw null; set { } } + public bool ThrowOnErrorSerializing { get => throw null; set { } } + } + public class SettingsPropertyCollection : System.Collections.IEnumerable, System.ICloneable, System.Collections.ICollection + { + public void Add(System.Configuration.SettingsProperty property) => throw null; + public void Clear() => throw null; + public object Clone() => throw null; + public void CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public SettingsPropertyCollection() => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; + public bool IsSynchronized { get => throw null; } + protected virtual void OnAdd(System.Configuration.SettingsProperty property) => throw null; + protected virtual void OnAddComplete(System.Configuration.SettingsProperty property) => throw null; + protected virtual void OnClear() => throw null; + protected virtual void OnClearComplete() => throw null; + protected virtual void OnRemove(System.Configuration.SettingsProperty property) => throw null; + protected virtual void OnRemoveComplete(System.Configuration.SettingsProperty property) => throw null; + public void Remove(string name) => throw null; + public void SetReadOnly() => throw null; + public object SyncRoot { get => throw null; } + public System.Configuration.SettingsProperty this[string name] { get => throw null; } + } + public class SettingsPropertyIsReadOnlyException : System.Exception + { + public SettingsPropertyIsReadOnlyException(string message) => throw null; + public SettingsPropertyIsReadOnlyException(string message, System.Exception innerException) => throw null; + protected SettingsPropertyIsReadOnlyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public SettingsPropertyIsReadOnlyException() => throw null; + } + public class SettingsPropertyNotFoundException : System.Exception + { + public SettingsPropertyNotFoundException(string message) => throw null; + public SettingsPropertyNotFoundException(string message, System.Exception innerException) => throw null; + protected SettingsPropertyNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public SettingsPropertyNotFoundException() => throw null; + } + public class SettingsPropertyValue + { + public SettingsPropertyValue(System.Configuration.SettingsProperty property) => throw null; + public bool Deserialized { get => throw null; set { } } + public bool IsDirty { get => throw null; set { } } + public string Name { get => throw null; } + public System.Configuration.SettingsProperty Property { get => throw null; } + public object PropertyValue { get => throw null; set { } } + public object SerializedValue { get => throw null; set { } } + public bool UsingDefaultValue { get => throw null; } + } + public class SettingsPropertyValueCollection : System.Collections.IEnumerable, System.ICloneable, System.Collections.ICollection + { + public void Add(System.Configuration.SettingsPropertyValue property) => throw null; + public void Clear() => throw null; + public object Clone() => throw null; + public void CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public SettingsPropertyValueCollection() => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; + public bool IsSynchronized { get => throw null; } + public void Remove(string name) => throw null; + public void SetReadOnly() => throw null; + public object SyncRoot { get => throw null; } + public System.Configuration.SettingsPropertyValue this[string name] { get => throw null; } + } + public class SettingsPropertyWrongTypeException : System.Exception + { + public SettingsPropertyWrongTypeException(string message) => throw null; + public SettingsPropertyWrongTypeException(string message, System.Exception innerException) => throw null; + protected SettingsPropertyWrongTypeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public SettingsPropertyWrongTypeException() => throw null; + } + public abstract class SettingsProvider : System.Configuration.Provider.ProviderBase + { + public abstract string ApplicationName { get; set; } + protected SettingsProvider() => throw null; + public abstract System.Configuration.SettingsPropertyValueCollection GetPropertyValues(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection collection); + public abstract void SetPropertyValues(System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyValueCollection collection); + } + public sealed class SettingsProviderAttribute : System.Attribute + { + public SettingsProviderAttribute(string providerTypeName) => throw null; + public SettingsProviderAttribute(System.Type providerType) => throw null; + public string ProviderTypeName { get => throw null; } + } + public class SettingsProviderCollection : System.Configuration.Provider.ProviderCollection + { + public override void Add(System.Configuration.Provider.ProviderBase provider) => throw null; + public SettingsProviderCollection() => throw null; + public System.Configuration.SettingsProvider this[string name] { get => throw null; } + } + public delegate void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e); + public enum SettingsSerializeAs + { + String = 0, + Xml = 1, + Binary = 2, + ProviderSpecific = 3, + } + public sealed class SettingsSerializeAsAttribute : System.Attribute + { + public SettingsSerializeAsAttribute(System.Configuration.SettingsSerializeAs serializeAs) => throw null; + public System.Configuration.SettingsSerializeAs SerializeAs { get => throw null; } + } + public sealed class SettingValueElement : System.Configuration.ConfigurationElement + { + public SettingValueElement() => throw null; + protected override void DeserializeElement(System.Xml.XmlReader reader, bool serializeCollectionKey) => throw null; + public override bool Equals(object settingValue) => throw null; + public override int GetHashCode() => throw null; + protected override bool IsModified() => throw null; + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + protected override void Reset(System.Configuration.ConfigurationElement parentElement) => throw null; + protected override void ResetModified() => throw null; + protected override bool SerializeToXmlElement(System.Xml.XmlWriter writer, string elementName) => throw null; + protected override void Unmerge(System.Configuration.ConfigurationElement sourceElement, System.Configuration.ConfigurationElement parentElement, System.Configuration.ConfigurationSaveMode saveMode) => throw null; + public System.Xml.XmlNode ValueXml { get => throw null; set { } } + } + public class SingleTagSectionHandler : System.Configuration.IConfigurationSectionHandler + { + public virtual object Create(object parent, object context, System.Xml.XmlNode section) => throw null; + public SingleTagSectionHandler() => throw null; + } + public enum SpecialSetting + { + ConnectionString = 0, + WebServiceUrl = 1, + } + public sealed class SpecialSettingAttribute : System.Attribute + { + public SpecialSettingAttribute(System.Configuration.SpecialSetting specialSetting) => throw null; + public System.Configuration.SpecialSetting SpecialSetting { get => throw null; } + } + public class StringValidator : System.Configuration.ConfigurationValidatorBase + { + public override bool CanValidate(System.Type type) => throw null; + public StringValidator(int minLength) => throw null; + public StringValidator(int minLength, int maxLength) => throw null; + public StringValidator(int minLength, int maxLength, string invalidCharacters) => throw null; + public override void Validate(object value) => throw null; + } + public sealed class StringValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute + { + public StringValidatorAttribute() => throw null; + public string InvalidCharacters { get => throw null; set { } } + public int MaxLength { get => throw null; set { } } + public int MinLength { get => throw null; set { } } + public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } + } + public sealed class SubclassTypeValidator : System.Configuration.ConfigurationValidatorBase + { + public override bool CanValidate(System.Type type) => throw null; + public SubclassTypeValidator(System.Type baseClass) => throw null; + public override void Validate(object value) => throw null; + } + public sealed class SubclassTypeValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute + { + public System.Type BaseClass { get => throw null; } + public SubclassTypeValidatorAttribute(System.Type baseClass) => throw null; + public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } + } + public class TimeSpanMinutesConverter : System.Configuration.ConfigurationConverterBase + { + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; + public TimeSpanMinutesConverter() => throw null; + } + public sealed class TimeSpanMinutesOrInfiniteConverter : System.Configuration.TimeSpanMinutesConverter + { + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; + public TimeSpanMinutesOrInfiniteConverter() => throw null; + } + public class TimeSpanSecondsConverter : System.Configuration.ConfigurationConverterBase + { + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; + public TimeSpanSecondsConverter() => throw null; + } + public sealed class TimeSpanSecondsOrInfiniteConverter : System.Configuration.TimeSpanSecondsConverter + { + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; + public TimeSpanSecondsOrInfiniteConverter() => throw null; + } + public class TimeSpanValidator : System.Configuration.ConfigurationValidatorBase + { + public override bool CanValidate(System.Type type) => throw null; + public TimeSpanValidator(System.TimeSpan minValue, System.TimeSpan maxValue) => throw null; + public TimeSpanValidator(System.TimeSpan minValue, System.TimeSpan maxValue, bool rangeIsExclusive) => throw null; + public TimeSpanValidator(System.TimeSpan minValue, System.TimeSpan maxValue, bool rangeIsExclusive, long resolutionInSeconds) => throw null; + public override void Validate(object value) => throw null; + } + public sealed class TimeSpanValidatorAttribute : System.Configuration.ConfigurationValidatorAttribute + { + public TimeSpanValidatorAttribute() => throw null; + public bool ExcludeRange { get => throw null; set { } } + public System.TimeSpan MaxValue { get => throw null; } + public string MaxValueString { get => throw null; set { } } + public System.TimeSpan MinValue { get => throw null; } + public string MinValueString { get => throw null; set { } } + public static string TimeSpanMaxValue; + public static string TimeSpanMinValue; + public override System.Configuration.ConfigurationValidatorBase ValidatorInstance { get => throw null; } + } + public sealed class TypeNameConverter : System.Configuration.ConfigurationConverterBase + { + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; + public TypeNameConverter() => throw null; + } + public sealed class UriSection : System.Configuration.ConfigurationSection + { + public UriSection() => throw null; + public System.Configuration.IdnElement Idn { get => throw null; } + public System.Configuration.IriParsingElement IriParsing { get => throw null; } + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + public System.Configuration.SchemeSettingElementCollection SchemeSettings { get => throw null; } + } + public sealed class UserScopedSettingAttribute : System.Configuration.SettingAttribute + { + public UserScopedSettingAttribute() => throw null; + } + public sealed class UserSettingsGroup : System.Configuration.ConfigurationSectionGroup + { + public UserSettingsGroup() => throw null; + } + public delegate void ValidatorCallback(object value); + public sealed class WhiteSpaceTrimStringConverter : System.Configuration.ConfigurationConverterBase + { + public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object data) => throw null; + public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext ctx, System.Globalization.CultureInfo ci, object value, System.Type type) => throw null; + public WhiteSpaceTrimStringConverter() => throw null; } } + namespace Drawing + { + namespace Configuration + { + public sealed class SystemDrawingSection : System.Configuration.ConfigurationSection + { + public string BitmapSuffix { get => throw null; set { } } + public SystemDrawingSection() => throw null; + protected override System.Configuration.ConfigurationPropertyCollection Properties { get => throw null; } + } + } + } + public enum UriIdnScope + { + None = 0, + AllExceptIntranet = 1, + All = 2, + } } diff --git a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/4.4.1/System.Configuration.ConfigurationManager.csproj b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/6.0.0/System.Configuration.ConfigurationManager.csproj similarity index 100% rename from csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/4.4.1/System.Configuration.ConfigurationManager.csproj rename to csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/6.0.0/System.Configuration.ConfigurationManager.csproj From 9d421ffa8de50cfb0b7a8971ae629a7ef973f056 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Mon, 18 Sep 2023 15:00:26 +0100 Subject: [PATCH 580/788] Ruby: configsig rb/improper-ldap-auth --- .../ruby/security/ImproperLdapAuthQuery.qll | 16 +++++++++++++++- .../ldap-improper-auth/ImproperLdapAuth.ql | 6 +++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/ImproperLdapAuthQuery.qll b/ruby/ql/lib/codeql/ruby/security/ImproperLdapAuthQuery.qll index d4f83e3c1a4..81a85f596c9 100644 --- a/ruby/ql/lib/codeql/ruby/security/ImproperLdapAuthQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/ImproperLdapAuthQuery.qll @@ -9,8 +9,9 @@ private import ImproperLdapAuthCustomizations::ImproperLdapAuth /** * A taint-tracking configuration for detecting improper LDAP authentication vulnerabilities. + * DEPRECATED: Use `ImproperLdapAuthFlow` instead */ -class Configuration extends TaintTracking::Configuration { +deprecated class Configuration extends TaintTracking::Configuration { Configuration() { this = "ImproperLdapAuth" } override predicate isSource(DataFlow::Node source) { source instanceof Source } @@ -19,3 +20,16 @@ class Configuration extends TaintTracking::Configuration { override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer } } + +private module ImproperLdapAuthConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** + * Taint-tracking for detecting improper LDAP authentication vulnerabilities. + */ +module ImproperLdapAuthFlow = TaintTracking::Global; diff --git a/ruby/ql/src/experimental/ldap-improper-auth/ImproperLdapAuth.ql b/ruby/ql/src/experimental/ldap-improper-auth/ImproperLdapAuth.ql index aede346cb47..f155f4ae2ec 100644 --- a/ruby/ql/src/experimental/ldap-improper-auth/ImproperLdapAuth.ql +++ b/ruby/ql/src/experimental/ldap-improper-auth/ImproperLdapAuth.ql @@ -12,9 +12,9 @@ import codeql.ruby.DataFlow import codeql.ruby.security.ImproperLdapAuthQuery import codeql.ruby.Concepts -import DataFlow::PathGraph +import ImproperLdapAuthFlow::PathGraph -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +from ImproperLdapAuthFlow::PathNode source, ImproperLdapAuthFlow::PathNode sink +where ImproperLdapAuthFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This LDAP authencation depends on a $@.", source.getNode(), "user-provided value" From 4cb91e022f38477e56ea8dfeb315d8068be26f53 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Mon, 18 Sep 2023 15:13:28 +0100 Subject: [PATCH 581/788] Ruby: deprecate some flow states --- .../experimental/UnicodeBypassValidationQuery.qll | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll b/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll index e4d0fe8f3be..e1ce947ac12 100644 --- a/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll +++ b/ruby/ql/lib/codeql/ruby/experimental/UnicodeBypassValidationQuery.qll @@ -9,13 +9,19 @@ private import codeql.ruby.TaintTracking private import codeql.ruby.ApiGraphs import UnicodeBypassValidationCustomizations::UnicodeBypassValidation -/** A state signifying that a logical validation has not been performed. */ -class PreValidation extends DataFlow::FlowState { +/** + * A state signifying that a logical validation has not been performed. + * DEPRECATED: Use `PreValidationState()` + */ +deprecated class PreValidation extends DataFlow::FlowState { PreValidation() { this = "PreValidation" } } -/** A state signifying that a logical validation has been performed. */ -class PostValidation extends DataFlow::FlowState { +/** + * A state signifying that a logical validation has been performed. + * DEPRECATED: Use `PostValidationState()` + */ +deprecated class PostValidation extends DataFlow::FlowState { PostValidation() { this = "PostValidation" } } From 04c4e739ac5181544d4fb3053ca2bcbf58d0b9bd Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 21 Sep 2023 12:50:17 +0200 Subject: [PATCH 582/788] Address review comments --- .../Program.cs | 2 +- .../StubGenerator.cs | 59 ++++++++----------- .../StubVisitor.cs | 22 ++++--- csharp/extractor/Semmle.Util/MemoizedFunc.cs | 21 ++----- 4 files changed, 42 insertions(+), 62 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Program.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Program.cs index 7155e8ddc81..8160bfdd3ae 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Program.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Program.cs @@ -2,7 +2,7 @@ using Semmle.Extraction.CSharp.DependencyFetching; using Semmle.Extraction.CSharp.StubGenerator; using Semmle.Util.Logging; -var logger = new ConsoleLogger(Verbosity.Info); +var logger = new ConsoleLogger(Verbosity.Info, logThreadId: false); using var dependencyManager = new DependencyManager(".", DependencyOptions.Default, logger); StubGenerator.GenerateStubs(logger, dependencyManager.ReferenceFiles, "codeql_csharp_stubs"); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs index 64ffc0e9a7b..0b62ead8619 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs @@ -27,11 +27,12 @@ public static class StubGenerator var threads = EnvironmentVariables.GetDefaultNumberOfThreads(); using var references = new BlockingCollection<(MetadataReference Reference, string Path)>(); - var referenceResolveTasks = GetResolvedReferenceTasks(referencesPaths, references); - Parallel.Invoke( - new ParallelOptions { MaxDegreeOfParallelism = threads }, - referenceResolveTasks.ToArray()); + Parallel.ForEach(referencesPaths, new ParallelOptions { MaxDegreeOfParallelism = threads }, path => + { + var reference = MetadataReference.CreateFromFile(path); + references.Add((reference, path)); + }); logger.Log(Severity.Info, $"Generating stubs for {references.Count} assemblies."); @@ -41,43 +42,33 @@ public static class StubGenerator references.Select(tuple => tuple.Item1), new CSharpCompilationOptions(OutputKind.ConsoleApplication, allowUnsafe: true)); - var referenceStubTasks = references.Select(@ref => (Action)(() => StubReference(compilation, outputPath, @ref.Reference, @ref.Path))); - Parallel.Invoke( - new ParallelOptions { MaxDegreeOfParallelism = threads }, - referenceStubTasks.ToArray()); + Parallel.ForEach(references, new ParallelOptions { MaxDegreeOfParallelism = threads }, @ref => + { + StubReference(logger, compilation, outputPath, @ref.Reference, @ref.Path); + }); stopWatch.Stop(); logger.Log(Severity.Info, $"Stub generation took {stopWatch.Elapsed}."); } - private static IEnumerable GetResolvedReferenceTasks(IEnumerable referencePaths, BlockingCollection<(MetadataReference, string)> references) + private static void StubReference(ILogger logger, CSharpCompilation compilation, string outputPath, MetadataReference reference, string path) { - return referencePaths.Select(path => () => + if (compilation.GetAssemblyOrModuleSymbol(reference) is not IAssemblySymbol assembly) + return; + + using var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write); + using var writer = new StreamWriter(fileStream, new UTF8Encoding(false)); + + writer.WriteLine("// This file contains auto-generated code."); + writer.WriteLine($"// Generated from `{assembly.Identity}`."); + + var visitor = new StubVisitor(assembly, writer); + + visitor.StubAttributes(assembly.GetAttributes(), "assembly: "); + + foreach (var module in assembly.Modules) { - var reference = MetadataReference.CreateFromFile(path); - references.Add((reference, path)); - }); - } - - private static void StubReference(CSharpCompilation compilation, string outputPath, MetadataReference reference, string path) - { - if (compilation.GetAssemblyOrModuleSymbol(reference) is IAssemblySymbol assembly) - { - var logger = new ConsoleLogger(Verbosity.Info); - using var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write); - using var writer = new StreamWriter(fileStream, new UTF8Encoding(false)); - - writer.WriteLine("// This file contains auto-generated code."); - writer.WriteLine($"// Generated from `{assembly.Identity}`."); - - var visitor = new StubVisitor(assembly, writer); - - visitor.StubAttributes(assembly.GetAttributes(), "assembly: "); - - foreach (var module in assembly.Modules) - { - module.GlobalNamespace.Accept(new StubVisitor(assembly, writer)); - } + module.GlobalNamespace.Accept(visitor); } } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs index 6cb93eb65b9..8e709e162c6 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs @@ -36,7 +36,7 @@ internal sealed class StubVisitor : SymbolVisitor IsRelevantBaseType(symbol) && SymbolEqualityComparer.Default.Equals(symbol.ContainingAssembly, assembly); - private bool IsRelevantNamespace(INamespaceSymbol symbol) => isRelevantNamespace[symbol]; + private bool IsRelevantNamespace(INamespaceSymbol symbol) => isRelevantNamespace.Invoke(symbol); private void StubExplicitInterface(ISymbol symbol, ISymbol? explicitInterfaceSymbol, bool writeName = true) { @@ -109,7 +109,7 @@ internal sealed class StubVisitor : SymbolVisitor case Accessibility.Internal: stubWriter.Write("internal "); break; - case Accessibility.ProtectedAndInternal or Accessibility.ProtectedOrInternal: + case Accessibility.ProtectedAndInternal: stubWriter.Write("protected internal "); break; default: @@ -156,7 +156,7 @@ internal sealed class StubVisitor : SymbolVisitor stubWriter.Write("extern "); } - public void StubTypedConstant(TypedConstant c) + private void StubTypedConstant(TypedConstant c) { switch (c.Kind) { @@ -221,7 +221,9 @@ internal sealed class StubVisitor : SymbolVisitor if (!attributeAllowList.Contains(qualifiedName)) return; - stubWriter.Write($"[{prefix}{qualifiedName.AsSpan(0, @class.GetQualifiedName().Length - 9)}"); + if (qualifiedName.EndsWith("Attribute")) + qualifiedName = qualifiedName[..^9]; + stubWriter.Write($"[{prefix}{qualifiedName}"); if (a.ConstructorArguments.Any()) { stubWriter.Write("("); @@ -295,12 +297,8 @@ internal sealed class StubVisitor : SymbolVisitor "volatile", "while" }; - private static string EscapeIdentifier(string identifier) - { - if (keywords.Contains(identifier)) - return "@" + identifier; - return identifier; - } + private static string EscapeIdentifier(string identifier) => + keywords.Contains(identifier) ? "@" + identifier : identifier; public override void VisitField(IFieldSymbol symbol) { @@ -739,7 +737,7 @@ internal sealed class StubVisitor : SymbolVisitor else { var seenCtor = false; - foreach (var childSymbol in symbol.GetMembers()) + foreach (var childSymbol in symbol.GetMembers().OrderBy(m => m.GetName())) { seenCtor |= childSymbol is IMethodSymbol method && method.MethodKind == MethodKind.Constructor; childSymbol.Accept(this); @@ -768,7 +766,7 @@ internal sealed class StubVisitor : SymbolVisitor if (!isGlobal) stubWriter.WriteLine($"namespace {symbol.Name} {{"); - foreach (var childSymbol in symbol.GetMembers()) + foreach (var childSymbol in symbol.GetMembers().OrderBy(m => m.GetName())) { childSymbol.Accept(this); } diff --git a/csharp/extractor/Semmle.Util/MemoizedFunc.cs b/csharp/extractor/Semmle.Util/MemoizedFunc.cs index 1db2c89b1e0..f2018df8bb7 100644 --- a/csharp/extractor/Semmle.Util/MemoizedFunc.cs +++ b/csharp/extractor/Semmle.Util/MemoizedFunc.cs @@ -14,17 +14,14 @@ public class MemoizedFunc where T1 : notnull this.f = f; } - public T2 this[T1 s] + public T2 Invoke(T1 s) { - get + if (!cache.TryGetValue(s, out var t)) { - if (!cache.TryGetValue(s, out var t)) - { - t = f(s); - cache[s] = t; - } - return t; + t = f(s); + cache[s] = t; } + return t; } } @@ -38,11 +35,5 @@ public class ConcurrentMemoizedFunc where T1 : notnull this.f = f; } - public T2 this[T1 s] - { - get - { - return cache.GetOrAdd(s, f); - } - } + public T2 Invoke(T1 s) => cache.GetOrAdd(s, f); } \ No newline at end of file From 489f5985517de0e89ce1ae1666e4a72e3d903afd Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 12:50:12 +0100 Subject: [PATCH 583/788] Ruby: delete DataFlowImplForPathname --- .../internal/DataFlowImplForPathname.qll | 402 ------------------ .../ruby/frameworks/stdlib/Pathname.qll | 15 +- 2 files changed, 7 insertions(+), 410 deletions(-) delete mode 100644 ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForPathname.qll diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForPathname.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForPathname.qll deleted file mode 100644 index 1975ac9781f..00000000000 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForPathname.qll +++ /dev/null @@ -1,402 +0,0 @@ -/** - * DEPRECATED: Use `Global` and `GlobalWithState` instead. - * - * Provides a `Configuration` class backwards-compatible interface to the data - * flow library. - */ - -private import DataFlowImplCommon -private import DataFlowImplSpecific::Private -import DataFlowImplSpecific::Public -private import DataFlowImpl -import DataFlowImplCommonPublic -import FlowStateString -private import codeql.util.Unit - -/** - * A configuration of interprocedural data flow analysis. This defines - * sources, sinks, and any other configurable aspect of the analysis. Each - * use of the global data flow library must define its own unique extension - * of this abstract class. To create a configuration, extend this class with - * a subclass whose characteristic predicate is a unique singleton string. - * For example, write - * - * ```ql - * class MyAnalysisConfiguration extends DataFlow::Configuration { - * MyAnalysisConfiguration() { this = "MyAnalysisConfiguration" } - * // Override `isSource` and `isSink`. - * // Optionally override `isBarrier`. - * // Optionally override `isAdditionalFlowStep`. - * } - * ``` - * Conceptually, this defines a graph where the nodes are `DataFlow::Node`s and - * the edges are those data-flow steps that preserve the value of the node - * along with any additional edges defined by `isAdditionalFlowStep`. - * Specifying nodes in `isBarrier` will remove those nodes from the graph, and - * specifying nodes in `isBarrierIn` and/or `isBarrierOut` will remove in-going - * and/or out-going edges from those nodes, respectively. - * - * Then, to query whether there is flow between some `source` and `sink`, - * write - * - * ```ql - * exists(MyAnalysisConfiguration cfg | cfg.hasFlow(source, sink)) - * ``` - * - * Multiple configurations can coexist, but two classes extending - * `DataFlow::Configuration` should never depend on each other. One of them - * should instead depend on a `DataFlow2::Configuration`, a - * `DataFlow3::Configuration`, or a `DataFlow4::Configuration`. - */ -abstract class Configuration extends string { - bindingset[this] - Configuration() { any() } - - /** - * Holds if `source` is a relevant data flow source. - */ - predicate isSource(Node source) { none() } - - /** - * Holds if `source` is a relevant data flow source with the given initial - * `state`. - */ - predicate isSource(Node source, FlowState state) { none() } - - /** - * Holds if `sink` is a relevant data flow sink. - */ - predicate isSink(Node sink) { none() } - - /** - * Holds if `sink` is a relevant data flow sink accepting `state`. - */ - predicate isSink(Node sink, FlowState state) { none() } - - /** - * Holds if data flow through `node` is prohibited. This completely removes - * `node` from the data flow graph. - */ - predicate isBarrier(Node node) { none() } - - /** - * Holds if data flow through `node` is prohibited when the flow state is - * `state`. - */ - predicate isBarrier(Node node, FlowState state) { none() } - - /** Holds if data flow into `node` is prohibited. */ - predicate isBarrierIn(Node node) { none() } - - /** Holds if data flow out of `node` is prohibited. */ - predicate isBarrierOut(Node node) { none() } - - /** - * DEPRECATED: Use `isBarrier` and `BarrierGuard` module instead. - * - * Holds if data flow through nodes guarded by `guard` is prohibited. - */ - deprecated predicate isBarrierGuard(BarrierGuard guard) { none() } - - /** - * DEPRECATED: Use `isBarrier` and `BarrierGuard` module instead. - * - * Holds if data flow through nodes guarded by `guard` is prohibited when - * the flow state is `state` - */ - deprecated predicate isBarrierGuard(BarrierGuard guard, FlowState state) { none() } - - /** - * Holds if data may flow from `node1` to `node2` in addition to the normal data-flow steps. - */ - predicate isAdditionalFlowStep(Node node1, Node node2) { none() } - - /** - * Holds if data may flow from `node1` to `node2` in addition to the normal data-flow steps. - * This step is only applicable in `state1` and updates the flow state to `state2`. - */ - predicate isAdditionalFlowStep(Node node1, FlowState state1, Node node2, FlowState state2) { - none() - } - - /** - * Holds if an arbitrary number of implicit read steps of content `c` may be - * taken at `node`. - */ - predicate allowImplicitRead(Node node, ContentSet c) { none() } - - /** - * Gets the virtual dispatch branching limit when calculating field flow. - * This can be overridden to a smaller value to improve performance (a - * value of 0 disables field flow), or a larger value to get more results. - */ - int fieldFlowBranchLimit() { result = 2 } - - /** - * Gets a data flow configuration feature to add restrictions to the set of - * valid flow paths. - * - * - `FeatureHasSourceCallContext`: - * Assume that sources have some existing call context to disallow - * conflicting return-flow directly following the source. - * - `FeatureHasSinkCallContext`: - * Assume that sinks have some existing call context to disallow - * conflicting argument-to-parameter flow directly preceding the sink. - * - `FeatureEqualSourceSinkCallContext`: - * Implies both of the above and additionally ensures that the entire flow - * path preserves the call context. - * - * These features are generally not relevant for typical end-to-end data flow - * queries, but should only be used for constructing paths that need to - * somehow be pluggable in another path context. - */ - FlowFeature getAFeature() { none() } - - /** Holds if sources should be grouped in the result of `hasFlowPath`. */ - predicate sourceGrouping(Node source, string sourceGroup) { none() } - - /** Holds if sinks should be grouped in the result of `hasFlowPath`. */ - predicate sinkGrouping(Node sink, string sinkGroup) { none() } - - /** - * Holds if data may flow from `source` to `sink` for this configuration. - */ - predicate hasFlow(Node source, Node sink) { hasFlow(source, sink, this) } - - /** - * Holds if data may flow from `source` to `sink` for this configuration. - * - * The corresponding paths are generated from the end-points and the graph - * included in the module `PathGraph`. - */ - predicate hasFlowPath(PathNode source, PathNode sink) { hasFlowPath(source, sink, this) } - - /** - * Holds if data may flow from some source to `sink` for this configuration. - */ - predicate hasFlowTo(Node sink) { hasFlowTo(sink, this) } - - /** - * Holds if data may flow from some source to `sink` for this configuration. - */ - predicate hasFlowToExpr(DataFlowExpr sink) { this.hasFlowTo(exprNode(sink)) } - - /** - * DEPRECATED: Use `FlowExploration` instead. - * - * Gets the exploration limit for `hasPartialFlow` and `hasPartialFlowRev` - * measured in approximate number of interprocedural steps. - */ - deprecated int explorationLimit() { none() } - - /** - * Holds if hidden nodes should be included in the data flow graph. - * - * This feature should only be used for debugging or when the data flow graph - * is not visualized (for example in a `path-problem` query). - */ - predicate includeHiddenNodes() { none() } -} - -/** - * This class exists to prevent mutual recursion between the user-overridden - * member predicates of `Configuration` and the rest of the data-flow library. - * Good performance cannot be guaranteed in the presence of such recursion, so - * it should be replaced by using more than one copy of the data flow library. - */ -abstract private class ConfigurationRecursionPrevention extends Configuration { - bindingset[this] - ConfigurationRecursionPrevention() { any() } - - override predicate hasFlow(Node source, Node sink) { - strictcount(Node n | this.isSource(n)) < 0 - or - strictcount(Node n | this.isSource(n, _)) < 0 - or - strictcount(Node n | this.isSink(n)) < 0 - or - strictcount(Node n | this.isSink(n, _)) < 0 - or - strictcount(Node n1, Node n2 | this.isAdditionalFlowStep(n1, n2)) < 0 - or - strictcount(Node n1, Node n2 | this.isAdditionalFlowStep(n1, _, n2, _)) < 0 - or - super.hasFlow(source, sink) - } -} - -/** A bridge class to access the deprecated `isBarrierGuard`. */ -private class BarrierGuardGuardedNodeBridge extends Unit { - abstract predicate guardedNode(Node n, Configuration config); - - abstract predicate guardedNode(Node n, FlowState state, Configuration config); -} - -private class BarrierGuardGuardedNode extends BarrierGuardGuardedNodeBridge { - deprecated override predicate guardedNode(Node n, Configuration config) { - exists(BarrierGuard g | - config.isBarrierGuard(g) and - n = g.getAGuardedNode() - ) - } - - deprecated override predicate guardedNode(Node n, FlowState state, Configuration config) { - exists(BarrierGuard g | - config.isBarrierGuard(g, state) and - n = g.getAGuardedNode() - ) - } -} - -private FlowState relevantState(Configuration config) { - config.isSource(_, result) or - config.isSink(_, result) or - config.isBarrier(_, result) or - config.isAdditionalFlowStep(_, result, _, _) or - config.isAdditionalFlowStep(_, _, _, result) -} - -private newtype TConfigState = - TMkConfigState(Configuration config, FlowState state) { - state = relevantState(config) or state instanceof FlowStateEmpty - } - -private Configuration getConfig(TConfigState state) { state = TMkConfigState(result, _) } - -private FlowState getState(TConfigState state) { state = TMkConfigState(_, result) } - -private predicate singleConfiguration() { 1 = strictcount(Configuration c) } - -private module Config implements FullStateConfigSig { - class FlowState = TConfigState; - - predicate isSource(Node source, FlowState state) { - getConfig(state).isSource(source, getState(state)) - or - getConfig(state).isSource(source) and getState(state) instanceof FlowStateEmpty - } - - predicate isSink(Node sink) { none() } - - predicate isSink(Node sink, FlowState state) { - getConfig(state).isSink(sink, getState(state)) - or - getConfig(state).isSink(sink) and getState(state) instanceof FlowStateEmpty - } - - predicate isBarrier(Node node) { none() } - - predicate isBarrier(Node node, FlowState state) { - getConfig(state).isBarrier(node, getState(state)) or - getConfig(state).isBarrier(node) or - any(BarrierGuardGuardedNodeBridge b).guardedNode(node, getState(state), getConfig(state)) or - any(BarrierGuardGuardedNodeBridge b).guardedNode(node, getConfig(state)) - } - - predicate isBarrierIn(Node node) { any(Configuration config).isBarrierIn(node) } - - predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } - - predicate isAdditionalFlowStep(Node node1, Node node2) { - singleConfiguration() and - any(Configuration config).isAdditionalFlowStep(node1, node2) - } - - predicate isAdditionalFlowStep(Node node1, FlowState state1, Node node2, FlowState state2) { - getConfig(state1).isAdditionalFlowStep(node1, getState(state1), node2, getState(state2)) and - getConfig(state2) = getConfig(state1) - or - not singleConfiguration() and - getConfig(state1).isAdditionalFlowStep(node1, node2) and - state2 = state1 - } - - predicate allowImplicitRead(Node node, ContentSet c) { - any(Configuration config).allowImplicitRead(node, c) - } - - predicate neverSkip(Node node) { none() } - - int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } - - FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } - - predicate sourceGrouping(Node source, string sourceGroup) { - any(Configuration config).sourceGrouping(source, sourceGroup) - } - - predicate sinkGrouping(Node sink, string sinkGroup) { - any(Configuration config).sinkGrouping(sink, sinkGroup) - } - - predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() } -} - -private import Impl as I - -/** - * A `Node` augmented with a call context (except for sinks), an access path, and a configuration. - * Only those `PathNode`s that are reachable from a source, and which can reach a sink, are generated. - */ -class PathNode instanceof I::PathNode { - /** Gets a textual representation of this element. */ - final string toString() { result = super.toString() } - - /** - * Gets a textual representation of this element, including a textual - * representation of the call context. - */ - final string toStringWithContext() { result = super.toStringWithContext() } - - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - final predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - - /** Gets the underlying `Node`. */ - final Node getNode() { result = super.getNode() } - - /** Gets the `FlowState` of this node. */ - final FlowState getState() { result = getState(super.getState()) } - - /** Gets the associated configuration. */ - final Configuration getConfiguration() { result = getConfig(super.getState()) } - - /** Gets a successor of this node, if any. */ - final PathNode getASuccessor() { result = super.getASuccessor() } - - /** Holds if this node is a source. */ - final predicate isSource() { super.isSource() } - - /** Holds if this node is a grouping of source nodes. */ - final predicate isSourceGroup(string group) { super.isSourceGroup(group) } - - /** Holds if this node is a grouping of sink nodes. */ - final predicate isSinkGroup(string group) { super.isSinkGroup(group) } -} - -module PathGraph = I::PathGraph; - -private predicate hasFlow(Node source, Node sink, Configuration config) { - exists(PathNode source0, PathNode sink0 | - hasFlowPath(source0, sink0, config) and - source0.getNode() = source and - sink0.getNode() = sink - ) -} - -private predicate hasFlowPath(PathNode source, PathNode sink, Configuration config) { - I::flowPath(source, sink) and source.getConfiguration() = config -} - -private predicate hasFlowTo(Node sink, Configuration config) { hasFlow(_, sink, config) } - -predicate flowsTo = hasFlow/3; diff --git a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll index 806c390e591..dbcf4edc95e 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll @@ -5,7 +5,6 @@ private import codeql.ruby.ApiGraphs private import codeql.ruby.Concepts private import codeql.ruby.dataflow.FlowSummary private import codeql.ruby.frameworks.data.ModelsAsData -private import codeql.ruby.dataflow.internal.DataFlowImplForPathname /** * Modeling of the `Pathname` class from the Ruby standard library. @@ -28,13 +27,11 @@ module Pathname { */ class PathnameInstance extends FileNameSource { cached - PathnameInstance() { any(PathnameConfiguration c).hasFlowTo(this) } + PathnameInstance() { PathnameFlow::flowTo(this) } } - private class PathnameConfiguration extends Configuration { - PathnameConfiguration() { this = "PathnameConfiguration" } - - override predicate isSource(DataFlow::Node source) { + private module PathnameConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { // A call to `Pathname.new`. source = API::getTopLevelMember("Pathname").getAnInstantiation() or @@ -42,9 +39,9 @@ module Pathname { source = API::getTopLevelMember("Pathname").getAMethodCall(["getwd", "pwd",]) } - override predicate isSink(DataFlow::Node sink) { any() } + predicate isSink(DataFlow::Node sink) { any() } - override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { node2 = any(DataFlow::CallNode c | c.getReceiver() = node1 and @@ -57,6 +54,8 @@ module Pathname { } } + private module PathnameFlow = DataFlow::Global; + /** A call where the receiver is a `Pathname`. */ class PathnameCall extends DataFlow::CallNode { PathnameCall() { this.getReceiver() instanceof PathnameInstance } From 36950d9d5ccb1752a3a2a1136b043debd9226748 Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Thu, 21 Sep 2023 07:50:12 -0400 Subject: [PATCH 584/788] additional changes --- docs/codeql/query-help/java.rst | 2 +- docs/codeql/query-help/javascript.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/codeql/query-help/java.rst b/docs/codeql/query-help/java.rst index 4876546d2dc..2348dbb2423 100644 --- a/docs/codeql/query-help/java.rst +++ b/docs/codeql/query-help/java.rst @@ -1,4 +1,4 @@ -CodeQL query help for Java +CodeQL query help for Java and Kotlin ========================== .. include:: ../reusables/query-help-overview.rst diff --git a/docs/codeql/query-help/javascript.rst b/docs/codeql/query-help/javascript.rst index 58fe97eb3b0..5ca017050cd 100644 --- a/docs/codeql/query-help/javascript.rst +++ b/docs/codeql/query-help/javascript.rst @@ -1,4 +1,4 @@ -CodeQL query help for JavaScript +CodeQL query help for JavaScript and TypeScript ================================ .. include:: ../reusables/query-help-overview.rst From 1dbba19238a4e01ff2feec6479e95d039d953896 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 13:00:17 +0100 Subject: [PATCH 585/788] Ruby: use new dataflow api in Excon.qll --- .../ruby/frameworks/http_clients/Excon.qll | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Excon.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Excon.qll index 551b41d329e..47789542f23 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Excon.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Excon.qll @@ -7,7 +7,6 @@ private import codeql.ruby.CFG private import codeql.ruby.Concepts private import codeql.ruby.ApiGraphs private import codeql.ruby.DataFlow -private import codeql.ruby.dataflow.internal.DataFlowImplForHttpClientLibraries as DataFlowImplForHttpClientLibraries /** * A call that makes an HTTP request using `Excon`. @@ -72,8 +71,7 @@ class ExconHttpRequest extends Http::Client::Request::Range, DataFlow::CallNode override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - any(ExconDisablesCertificateValidationConfiguration config) - .hasFlow(argumentOrigin, disablingNode) and + ExconDisablesCertificateValidationFlow::flow(argumentOrigin, disablingNode) and disablingNode = this.getCertificateValidationControllingValue() or // We set `Excon.defaults[:ssl_verify_peer]` or `Excon.ssl_verify_peer` = false` @@ -114,17 +112,13 @@ class ExconHttpRequest extends Http::Client::Request::Range, DataFlow::CallNode } /** A configuration to track values that can disable certificate validation for Excon. */ -private class ExconDisablesCertificateValidationConfiguration extends DataFlowImplForHttpClientLibraries::Configuration -{ - ExconDisablesCertificateValidationConfiguration() { - this = "ExconDisablesCertificateValidationConfiguration" - } +private module ExconDisablesCertificateValidationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr().getExpr().(BooleanLiteral).isFalse() } - override predicate isSource(DataFlow::Node source) { - source.asExpr().getExpr().(BooleanLiteral).isFalse() - } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink = any(ExconHttpRequest req).getCertificateValidationControllingValue() } } + +private module ExconDisablesCertificateValidationFlow = + DataFlow::Global; From 1ffcf4b9c41304360cc80b560fb3987e62857715 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 13:07:06 +0100 Subject: [PATCH 586/788] Ruby: use new dataflow api in Faraday.qll --- .../ruby/frameworks/http_clients/Faraday.qll | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Faraday.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Faraday.qll index b4d328edb86..f832ebb89b7 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Faraday.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Faraday.qll @@ -7,7 +7,6 @@ private import codeql.ruby.CFG private import codeql.ruby.Concepts private import codeql.ruby.ApiGraphs private import codeql.ruby.DataFlow -private import codeql.ruby.dataflow.internal.DataFlowImplForHttpClientLibraries as DataFlowImplForHttpClientLibraries /** * A call that makes an HTTP request using `Faraday`. @@ -78,8 +77,7 @@ class FaradayHttpRequest extends Http::Client::Request::Range, DataFlow::CallNod override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - any(FaradayDisablesCertificateValidationConfiguration config) - .hasFlow(argumentOrigin, disablingNode) and + FaradayDisablesCertificateValidationFlow::flow(argumentOrigin, disablingNode) and disablingNode = this.getCertificateValidationControllingValue(_) } @@ -87,15 +85,10 @@ class FaradayHttpRequest extends Http::Client::Request::Range, DataFlow::CallNod } /** A configuration to track values that can disable certificate validation for Faraday. */ -private class FaradayDisablesCertificateValidationConfiguration extends DataFlowImplForHttpClientLibraries::Configuration -{ - FaradayDisablesCertificateValidationConfiguration() { - this = "FaradayDisablesCertificateValidationConfiguration" - } +private module FaradayDisablesCertificateValidationConfig implements DataFlow::StateConfigSig { + class FlowState = string; - override predicate isSource( - DataFlow::Node source, DataFlowImplForHttpClientLibraries::FlowState state - ) { + predicate isSource(DataFlow::Node source, FlowState state) { source.asExpr().getExpr().(BooleanLiteral).isFalse() and state = "verify" or @@ -103,7 +96,10 @@ private class FaradayDisablesCertificateValidationConfiguration extends DataFlow state = "verify_mode" } - override predicate isSink(DataFlow::Node sink, DataFlowImplForHttpClientLibraries::FlowState state) { + predicate isSink(DataFlow::Node sink, FlowState state) { sink = any(FaradayHttpRequest req).getCertificateValidationControllingValue(state) } } + +private module FaradayDisablesCertificateValidationFlow = + DataFlow::GlobalWithState; From f04a1a534a77cffe143e64edaf529e70b78dcdad Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Thu, 21 Sep 2023 08:08:34 -0400 Subject: [PATCH 587/788] one more fix --- docs/codeql/query-help/java-cwe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/query-help/java-cwe.md b/docs/codeql/query-help/java-cwe.md index bbcc061b754..58734459fe1 100644 --- a/docs/codeql/query-help/java-cwe.md +++ b/docs/codeql/query-help/java-cwe.md @@ -1,4 +1,4 @@ -# CWE coverage for Java +# CWE coverage for Java and Kotlin An overview of CWE coverage for Java in the latest release of CodeQL. From c2306e6713115f1126ba7b39155d290780422fe7 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 21 Sep 2023 14:31:25 +0200 Subject: [PATCH 588/788] Ruby: Collapse DIL stages --- .../codeql/ruby/dataflow/internal/DataFlowPrivate.qll | 9 ++++++--- .../ruby/dataflow/internal/TaintTrackingPrivate.qll | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index f53fb80fcea..b22cf3037d8 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -282,6 +282,7 @@ module VariableCapture { private import ruby as R private import codeql.ruby.controlflow.ControlFlowGraph private import codeql.ruby.controlflow.BasicBlocks as BasicBlocks + private import TaintTrackingPrivate as TaintTrackingPrivate class Location = R::Location; @@ -296,7 +297,10 @@ module VariableCapture { BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() } class CapturedVariable extends LocalVariable { - CapturedVariable() { this.isCaptured() } + CapturedVariable() { + this.isCaptured() and + TaintTrackingPrivate::forceCachingInSameStage() + } Callable getCallable() { exists(Scope scope | scope = this.getDeclaringScope() | @@ -426,12 +430,11 @@ module VariableCapture { /** A collection of cached types and predicates to be evaluated in the same stage. */ cached private module Cached { - private import TaintTrackingPrivate as TaintTrackingPrivate private import codeql.ruby.typetracking.TypeTrackerSpecific as TypeTrackerSpecific cached newtype TNode = - TExprNode(CfgNodes::ExprCfgNode n) { TaintTrackingPrivate::forceCachingInSameStage() } or + TExprNode(CfgNodes::ExprCfgNode n) or TReturningNode(CfgNodes::ReturningCfgNode n) or TSsaDefinitionExtNode(SsaImpl::DefinitionExt def) or TCapturedVariableNode(VariableCapture::CapturedVariable v) or diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll index 4786fd11259..a75567bccdf 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll @@ -67,9 +67,10 @@ private CfgNodes::ExprNodes::VariableWriteAccessCfgNode variablesInPattern( cached private module Cached { private import codeql.ruby.dataflow.FlowSteps as FlowSteps + private import codeql.ruby.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon cached - predicate forceCachingInSameStage() { any() } + predicate forceCachingInSameStage() { DataFlowImplCommon::forceCachingInSameStage() } /** * Holds if the additional step from `nodeFrom` to `nodeTo` should be included From 92941a45f935d6c3616f2b21b293417b212ec10b Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 14:03:09 +0100 Subject: [PATCH 589/788] Ruby: use new dataflow api in HttpClient.qll --- .../frameworks/http_clients/HttpClient.qll | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/HttpClient.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/HttpClient.qll index a3d2adf1468..111967f23cc 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/HttpClient.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/HttpClient.qll @@ -6,7 +6,6 @@ private import codeql.ruby.AST private import codeql.ruby.Concepts private import codeql.ruby.ApiGraphs private import codeql.ruby.DataFlow -private import codeql.ruby.dataflow.internal.DataFlowImplForHttpClientLibraries as DataFlowImplForHttpClientLibraries /** * A call that makes an HTTP request using `HTTPClient`. @@ -65,8 +64,7 @@ class HttpClientRequest extends Http::Client::Request::Range, DataFlow::CallNode override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - any(HttpClientDisablesCertificateValidationConfiguration config) - .hasFlow(argumentOrigin, disablingNode) and + HttpClientDisablesCertificateValidationFlow::flow(argumentOrigin, disablingNode) and disablingNode = this.getCertificateValidationControllingValue() } @@ -74,17 +72,15 @@ class HttpClientRequest extends Http::Client::Request::Range, DataFlow::CallNode } /** A configuration to track values that can disable certificate validation for HttpClient. */ -private class HttpClientDisablesCertificateValidationConfiguration extends DataFlowImplForHttpClientLibraries::Configuration -{ - HttpClientDisablesCertificateValidationConfiguration() { - this = "HttpClientDisablesCertificateValidationConfiguration" - } - - override predicate isSource(DataFlow::Node source) { +private module HttpClientDisablesCertificateValidationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source = API::getTopLevelMember("OpenSSL").getMember("SSL").getMember("VERIFY_NONE").asSource() } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink = any(HttpClientRequest req).getCertificateValidationControllingValue() } } + +private module HttpClientDisablesCertificateValidationFlow = + DataFlow::Global; From fc7e753035275e5c28ae606fb50256891820cbda Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 14:04:46 +0100 Subject: [PATCH 590/788] Ruby: use new dataflow api in Httparty.qll --- .../ruby/frameworks/http_clients/Httparty.qll | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Httparty.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Httparty.qll index db560f2fd7f..f5320cd35c8 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Httparty.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Httparty.qll @@ -7,7 +7,6 @@ private import codeql.ruby.CFG private import codeql.ruby.Concepts private import codeql.ruby.ApiGraphs private import codeql.ruby.DataFlow -private import codeql.ruby.dataflow.internal.DataFlowImplForHttpClientLibraries as DataFlowImplForHttpClientLibraries /** * A call that makes an HTTP request using `HTTParty`. @@ -57,8 +56,7 @@ class HttpartyRequest extends Http::Client::Request::Range, DataFlow::CallNode { override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - any(HttpartyDisablesCertificateValidationConfiguration config) - .hasFlow(argumentOrigin, disablingNode) and + HttpartyDisablesCertificateValidationFlow::flow(argumentOrigin, disablingNode) and disablingNode = this.getCertificateValidationControllingValue() } @@ -66,17 +64,13 @@ class HttpartyRequest extends Http::Client::Request::Range, DataFlow::CallNode { } /** A configuration to track values that can disable certificate validation for Httparty. */ -private class HttpartyDisablesCertificateValidationConfiguration extends DataFlowImplForHttpClientLibraries::Configuration -{ - HttpartyDisablesCertificateValidationConfiguration() { - this = "HttpartyDisablesCertificateValidationConfiguration" - } +private module HttpartyDisablesCertificateValidationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr().getExpr().(BooleanLiteral).isFalse() } - override predicate isSource(DataFlow::Node source) { - source.asExpr().getExpr().(BooleanLiteral).isFalse() - } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink = any(HttpartyRequest req).getCertificateValidationControllingValue() } } + +private module HttpartyDisablesCertificateValidationFlow = + DataFlow::Global; From 9f905497a56b9294f85dbb76388f24f040304cda Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 21 Sep 2023 11:46:17 +0200 Subject: [PATCH 591/788] Java: Add support for additional read and store steps and additional nodes. --- .../semmle/code/java/dataflow/FlowSteps.qll | 46 +++++++++++++++++++ .../java/dataflow/internal/DataFlowNodes.qll | 24 +++++++++- .../dataflow/internal/DataFlowPrivate.qll | 8 ++++ 3 files changed, 76 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll index fef69bec7fd..b969400c0c5 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll @@ -57,6 +57,22 @@ abstract class FluentMethod extends ValuePreservingMethod { override predicate returnsValue(int arg) { arg = -1 } } +/** + * A unit class for adding additional data flow nodes. + * + * Extend this class to add additional data flow nodes for use in globally + * applicable additional steps. + */ +class AdditionalDataFlowNode extends Unit { + /** + * Holds if an additional node is needed in relation to `e`. The pair `(e,id)` + * must uniquely identify the node. + * The added node can be selected for use in a predicate by the corresponding + * `DataFlow::AdditionalNode.nodeAt(Expr e, string id)` predicate. + */ + abstract predicate nodeAt(Expr e, string id); +} + /** * A unit class for adding additional taint steps. * @@ -85,6 +101,36 @@ class AdditionalValueStep extends Unit { abstract predicate step(DataFlow::Node node1, DataFlow::Node node2); } +/** + * A unit class for adding additional store steps. + * + * Extend this class to add additional store steps that should apply to all + * data flow configurations. A store step must be local, so non-local steps are + * ignored. + */ +class AdditionalStoreStep extends Unit { + /** + * Holds if the step from `node1` to `node2` is a store step of `c` and should + * apply to all data flow configurations. + */ + abstract predicate step(DataFlow::Node node1, DataFlow::Content c, DataFlow::Node node2); +} + +/** + * A unit class for adding additional read steps. + * + * Extend this class to add additional read steps that should apply to all + * data flow configurations. A read step must be local, so non-local steps are + * ignored. + */ +class AdditionalReadStep extends Unit { + /** + * Holds if the step from `node1` to `node2` is a read step of `c` and should + * apply to all data flow configurations. + */ + abstract predicate step(DataFlow::Node node1, DataFlow::Content c, DataFlow::Node node2); +} + /** * A method or constructor that preserves taint. * diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll index 7ee703808e2..44061e1cd00 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll @@ -3,6 +3,7 @@ private import semmle.code.java.dataflow.InstanceAccess private import semmle.code.java.dataflow.ExternalFlow private import semmle.code.java.dataflow.FlowSummary private import semmle.code.java.dataflow.TypeFlow +private import semmle.code.java.dataflow.FlowSteps private import DataFlowPrivate private import DataFlowUtil private import FlowSummaryImpl as FlowSummaryImpl @@ -56,7 +57,8 @@ private module Cached { } or TFlowSummaryNode(FlowSummaryImpl::Private::SummaryNode sn) or TFieldValueNode(Field f) or - TCaptureNode(CaptureFlow::SynthesizedCaptureNode cn) + TCaptureNode(CaptureFlow::SynthesizedCaptureNode cn) or + TAdditionalNode(Expr e, string id) { any(AdditionalDataFlowNode adfn).nodeAt(e, id) } cached newtype TContent = @@ -133,6 +135,8 @@ module Public { result = this.(CaptureNode).getTypeImpl() or result = this.(FieldValueNode).getField().getType() + or + result instanceof TypeObject and this instanceof AdditionalNode } /** Gets the callable in which this node occurs. */ @@ -335,6 +339,21 @@ module Public { /** Holds if this is an access to an object's own instance. */ predicate isOwnInstanceAccess() { this.getInstanceAccess().isOwnInstanceAccess() } } + + /** A node introduced by an extension of `AdditionalDataFlowNode`. */ + class AdditionalNode extends Node, TAdditionalNode { + Expr e_; + string id_; + + AdditionalNode() { this = TAdditionalNode(e_, id_) } + + override string toString() { result = e_.toString() + " (" + id_ + ")" } + + override Location getLocation() { result = e_.getLocation() } + + /** Holds if this node was introduced by `AdditionalDataFlowNode.nodeAt(e, id)`. */ + predicate nodeAt(Expr e, string id) { e = e_ and id = id_ } + } } private import Public @@ -378,7 +397,8 @@ module Private { result = nodeGetEnclosingCallable(n.(ImplicitPostUpdateNode).getPreUpdateNode()) or result.asSummarizedCallable() = n.(FlowSummaryNode).getSummarizedCallable() or result.asCallable() = n.(CaptureNode).getSynthesizedCaptureNode().getEnclosingCallable() or - result.asFieldScope() = n.(FieldValueNode).getField() + result.asFieldScope() = n.(FieldValueNode).getField() or + result.asCallable() = any(Expr e | n.(AdditionalNode).nodeAt(e, _)).getEnclosingCallable() } /** Holds if `p` is a `ParameterNode` of `c` with position `pos`. */ diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll index 6223c9eae7a..bac40a951d8 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll @@ -228,6 +228,10 @@ predicate storeStep(Node node1, ContentSet f, Node node2) { node2.(FlowSummaryNode).getSummaryNode()) or captureStoreStep(node1, f, node2) + or + any(AdditionalStoreStep a).step(node1, f, node2) and + pragma[only_bind_out](node1.getEnclosingCallable()) = + pragma[only_bind_out](node2.getEnclosingCallable()) } /** @@ -262,6 +266,10 @@ predicate readStep(Node node1, ContentSet f, Node node2) { node2.(FlowSummaryNode).getSummaryNode()) or captureReadStep(node1, f, node2) + or + any(AdditionalReadStep a).step(node1, f, node2) and + pragma[only_bind_out](node1.getEnclosingCallable()) = + pragma[only_bind_out](node2.getEnclosingCallable()) } /** From 09782296df60117794df90c4710c8eefa142dd66 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 14:06:40 +0100 Subject: [PATCH 592/788] Ruby: use new dataflow api in NetHttp.qll --- .../ruby/frameworks/http_clients/NetHttp.qll | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll index eac0a928a1b..de0d4f03df3 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll @@ -8,7 +8,6 @@ private import codeql.ruby.dataflow.RemoteFlowSources private import codeql.ruby.ApiGraphs private import codeql.ruby.dataflow.internal.DataFlowPublic private import codeql.ruby.DataFlow -private import codeql.ruby.dataflow.internal.DataFlowImplForHttpClientLibraries as DataFlowImplForHttpClientLibraries /** * A `Net::HTTP` call which initiates an HTTP request. @@ -88,8 +87,7 @@ class NetHttpRequest extends Http::Client::Request::Range, DataFlow::CallNode { override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - any(NetHttpDisablesCertificateValidationConfiguration config) - .hasFlow(argumentOrigin, disablingNode) and + NetHttpDisablesCertificateValidationFlow::flow(argumentOrigin, disablingNode) and disablingNode = this.getCertificateValidationControllingValue() } @@ -97,17 +95,15 @@ class NetHttpRequest extends Http::Client::Request::Range, DataFlow::CallNode { } /** A configuration to track values that can disable certificate validation for NetHttp. */ -private class NetHttpDisablesCertificateValidationConfiguration extends DataFlowImplForHttpClientLibraries::Configuration -{ - NetHttpDisablesCertificateValidationConfiguration() { - this = "NetHttpDisablesCertificateValidationConfiguration" - } - - override predicate isSource(DataFlow::Node source) { +private module NetHttpDisablesCertificateValidationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source = API::getTopLevelMember("OpenSSL").getMember("SSL").getMember("VERIFY_NONE").asSource() } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink = any(NetHttpRequest req).getCertificateValidationControllingValue() } } + +private module NetHttpDisablesCertificateValidationFlow = + DataFlow::Global; From 25203d98c3d52be8a0b62167093b1cb0e5f81728 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 14:08:22 +0100 Subject: [PATCH 593/788] Ruby: use new dataflow api in OpenURI.qll --- .../ruby/frameworks/http_clients/OpenURI.qll | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/OpenURI.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/OpenURI.qll index a5dceb73fdf..fb8a55e775d 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/OpenURI.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/OpenURI.qll @@ -8,7 +8,6 @@ private import codeql.ruby.Concepts private import codeql.ruby.ApiGraphs private import codeql.ruby.DataFlow private import codeql.ruby.frameworks.Core -private import codeql.ruby.dataflow.internal.DataFlowImplForHttpClientLibraries as DataFlowImplForHttpClientLibraries /** * A call that makes an HTTP request using `OpenURI` via `URI.open` or @@ -46,8 +45,7 @@ class OpenUriRequest extends Http::Client::Request::Range, DataFlow::CallNode { override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - any(OpenUriDisablesCertificateValidationConfiguration config) - .hasFlow(argumentOrigin, disablingNode) and + OpenUriDisablesCertificateValidationFlow::flow(argumentOrigin, disablingNode) and disablingNode = this.getCertificateValidationControllingValue() } @@ -94,8 +92,7 @@ class OpenUriKernelOpenRequest extends Http::Client::Request::Range, DataFlow::C override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - any(OpenUriDisablesCertificateValidationConfiguration config) - .hasFlow(argumentOrigin, disablingNode) and + OpenUriDisablesCertificateValidationFlow::flow(argumentOrigin, disablingNode) and disablingNode = this.getCertificateValidationControllingValue() } @@ -103,19 +100,17 @@ class OpenUriKernelOpenRequest extends Http::Client::Request::Range, DataFlow::C } /** A configuration to track values that can disable certificate validation for OpenURI. */ -private class OpenUriDisablesCertificateValidationConfiguration extends DataFlowImplForHttpClientLibraries::Configuration -{ - OpenUriDisablesCertificateValidationConfiguration() { - this = "OpenUriDisablesCertificateValidationConfiguration" - } - - override predicate isSource(DataFlow::Node source) { +private module OpenUriDisablesCertificateValidationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source = API::getTopLevelMember("OpenSSL").getMember("SSL").getMember("VERIFY_NONE").asSource() } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink = any(OpenUriRequest req).getCertificateValidationControllingValue() or sink = any(OpenUriKernelOpenRequest req).getCertificateValidationControllingValue() } } + +private module OpenUriDisablesCertificateValidationFlow = + DataFlow::Global; From 722ee165d77bf6085510b0240706eaed1cf8971c Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 13 Sep 2023 13:03:16 +0200 Subject: [PATCH 594/788] Java: standalone: add basic integration tests --- .../java/buildless-maven/pom.xml | 114 ++++++++++++++++++ .../src/main/java/com/example/App.java | 30 +++++ .../src/main/resources/my-app.properties | 1 + .../src/main/resources/page.xml | 8 ++ .../src/main/resources/struts.xml | 4 + .../src/test/java/com/example/AppTest.java | 20 +++ .../java/buildless-maven/test.expected | 8 ++ .../java/buildless-maven/test.py | 5 + .../java/buildless-maven/test.ql | 9 ++ .../src/main/java/com/example/App.java | 30 +++++ .../src/main/resources/my-app.properties | 1 + .../buildless/src/main/resources/page.xml | 8 ++ .../buildless/src/main/resources/struts.xml | 4 + .../src/test/java/com/example/AppTest.java | 20 +++ .../java/buildless/test.expected | 7 ++ .../all-platforms/java/buildless/test.py | 5 + .../all-platforms/java/buildless/test.ql | 9 ++ 17 files changed, 283 insertions(+) create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-maven/pom.xml create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/java/com/example/App.java create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/my-app.properties create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/page.xml create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/struts.xml create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-maven/src/test/java/com/example/AppTest.java create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-maven/test.expected create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-maven/test.py create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-maven/test.ql create mode 100644 java/ql/integration-tests/all-platforms/java/buildless/src/main/java/com/example/App.java create mode 100644 java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/my-app.properties create mode 100644 java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/page.xml create mode 100644 java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/struts.xml create mode 100644 java/ql/integration-tests/all-platforms/java/buildless/src/test/java/com/example/AppTest.java create mode 100644 java/ql/integration-tests/all-platforms/java/buildless/test.expected create mode 100644 java/ql/integration-tests/all-platforms/java/buildless/test.py create mode 100644 java/ql/integration-tests/all-platforms/java/buildless/test.ql diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/pom.xml b/java/ql/integration-tests/all-platforms/java/buildless-maven/pom.xml new file mode 100644 index 00000000000..ec4aaf128c1 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/pom.xml @@ -0,0 +1,114 @@ + + + + 4.0.0 + + com.example + maven-sample + 1.0-SNAPSHOT + + maven-sample + + http://www.example.com + + + UTF-8 + 1.7 + 1.7 + + + + + junit + junit + 4.11 + test + + + + + + + exec-maven-plugin + org.codehaus.mojo + 1.1.1 + + + check-maven-version + package + + java + + + + + com.example.App + + + + com.diffplug.spotless + spotless-maven-plugin + 2.19.1 + + + + check + + compile + + + + + + /* FAIL ME */ + + + + + + + + + + + maven-clean-plugin + 3.1.0 + + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.0 + + + maven-surefire-plugin + 2.22.1 + + + maven-jar-plugin + 3.0.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + + maven-site-plugin + 3.7.1 + + + maven-project-info-reports-plugin + 3.0.0 + + + + + \ No newline at end of file diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/java/com/example/App.java b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/java/com/example/App.java new file mode 100644 index 00000000000..c9eec918587 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/java/com/example/App.java @@ -0,0 +1,30 @@ +package com.example; + +import java.util.regex.Pattern; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + String expectedVersion = System.getenv("EXPECT_MAVEN"); + Path mavenHome = Paths.get(System.getProperty("maven.home")).normalize(); + String observedVersion = mavenHome.getFileName().toString(); + if (expectedVersion != null && !expectedVersion.equals(observedVersion)) { + System.err.println("Wrong maven version, expected '" + expectedVersion + "' but got '" + observedVersion + "'" + mavenHome); + System.exit(1); + } + String commandMatcher = System.getenv("EXPECT_COMMAND_REGEX"); + String command = System.getProperty("sun.java.command"); + if (commandMatcher != null && !Pattern.matches(commandMatcher, command)) { + System.err.println("Wrong command line, '" + command + "' does not match '" + commandMatcher + "'"); + System.exit(1); + } + } +} diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/my-app.properties b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/my-app.properties new file mode 100644 index 00000000000..e566b49a29a --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/my-app.properties @@ -0,0 +1 @@ +version=1.0 diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/page.xml b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/page.xml new file mode 100644 index 00000000000..2bab459cb03 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/page.xml @@ -0,0 +1,8 @@ + + +A sample + + +

    Hello world!

    + + diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/struts.xml b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/struts.xml new file mode 100644 index 00000000000..73fc0c6b9cb --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/struts.xml @@ -0,0 +1,4 @@ + + +This is a sample file + diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/src/test/java/com/example/AppTest.java b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/test/java/com/example/AppTest.java new file mode 100644 index 00000000000..22a94ca6f01 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/test/java/com/example/AppTest.java @@ -0,0 +1,20 @@ +package com.example; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Unit test for simple App. + */ +public class AppTest +{ + /** + * Rigorous Test :-) + */ + @Test + public void shouldAnswerWithTrue() + { + assertTrue( true ); + } +} diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/test.expected b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.expected new file mode 100644 index 00000000000..5d9163f3409 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.expected @@ -0,0 +1,8 @@ +xmlFiles +| pom.xml:0:0:0:0 | pom.xml | +| src/main/resources/page.xml:0:0:0:0 | src/main/resources/page.xml | +| src/main/resources/struts.xml:0:0:0:0 | src/main/resources/struts.xml | +propertiesFiles +#select +| src/main/java/com/example/App.java:0:0:0:0 | App | +| src/test/java/com/example/AppTest.java:0:0:0:0 | AppTest | diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/test.py b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.py new file mode 100644 index 00000000000..fc295ae5e35 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.py @@ -0,0 +1,5 @@ +import sys + +from create_database_utils import * + +run_codeql_database_create([], lang="java", extra_env={"CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS": "true", "CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS_CLASSPATH_FROM_BUILD_FILES": "true"}) diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/test.ql b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.ql new file mode 100644 index 00000000000..25cd26fdd14 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.ql @@ -0,0 +1,9 @@ +import java + +from File f +where f.isSourceFile() +select f + +query predicate xmlFiles(XmlFile x) { any() } + +query predicate propertiesFiles(File f) { f.getExtension() = "properties" } diff --git a/java/ql/integration-tests/all-platforms/java/buildless/src/main/java/com/example/App.java b/java/ql/integration-tests/all-platforms/java/buildless/src/main/java/com/example/App.java new file mode 100644 index 00000000000..c9eec918587 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/src/main/java/com/example/App.java @@ -0,0 +1,30 @@ +package com.example; + +import java.util.regex.Pattern; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + String expectedVersion = System.getenv("EXPECT_MAVEN"); + Path mavenHome = Paths.get(System.getProperty("maven.home")).normalize(); + String observedVersion = mavenHome.getFileName().toString(); + if (expectedVersion != null && !expectedVersion.equals(observedVersion)) { + System.err.println("Wrong maven version, expected '" + expectedVersion + "' but got '" + observedVersion + "'" + mavenHome); + System.exit(1); + } + String commandMatcher = System.getenv("EXPECT_COMMAND_REGEX"); + String command = System.getProperty("sun.java.command"); + if (commandMatcher != null && !Pattern.matches(commandMatcher, command)) { + System.err.println("Wrong command line, '" + command + "' does not match '" + commandMatcher + "'"); + System.exit(1); + } + } +} diff --git a/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/my-app.properties b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/my-app.properties new file mode 100644 index 00000000000..e566b49a29a --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/my-app.properties @@ -0,0 +1 @@ +version=1.0 diff --git a/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/page.xml b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/page.xml new file mode 100644 index 00000000000..2bab459cb03 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/page.xml @@ -0,0 +1,8 @@ + + +A sample + + +

    Hello world!

    + + diff --git a/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/struts.xml b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/struts.xml new file mode 100644 index 00000000000..73fc0c6b9cb --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/struts.xml @@ -0,0 +1,4 @@ + + +This is a sample file + diff --git a/java/ql/integration-tests/all-platforms/java/buildless/src/test/java/com/example/AppTest.java b/java/ql/integration-tests/all-platforms/java/buildless/src/test/java/com/example/AppTest.java new file mode 100644 index 00000000000..22a94ca6f01 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/src/test/java/com/example/AppTest.java @@ -0,0 +1,20 @@ +package com.example; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Unit test for simple App. + */ +public class AppTest +{ + /** + * Rigorous Test :-) + */ + @Test + public void shouldAnswerWithTrue() + { + assertTrue( true ); + } +} diff --git a/java/ql/integration-tests/all-platforms/java/buildless/test.expected b/java/ql/integration-tests/all-platforms/java/buildless/test.expected new file mode 100644 index 00000000000..f5801127103 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/test.expected @@ -0,0 +1,7 @@ +xmlFiles +| src/main/resources/page.xml:0:0:0:0 | src/main/resources/page.xml | +| src/main/resources/struts.xml:0:0:0:0 | src/main/resources/struts.xml | +propertiesFiles +#select +| src/main/java/com/example/App.java:0:0:0:0 | App | +| src/test/java/com/example/AppTest.java:0:0:0:0 | AppTest | diff --git a/java/ql/integration-tests/all-platforms/java/buildless/test.py b/java/ql/integration-tests/all-platforms/java/buildless/test.py new file mode 100644 index 00000000000..eeee63c9913 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/test.py @@ -0,0 +1,5 @@ +import sys + +from create_database_utils import * + +run_codeql_database_create([], lang="java", extra_env={"CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS": "true"}) diff --git a/java/ql/integration-tests/all-platforms/java/buildless/test.ql b/java/ql/integration-tests/all-platforms/java/buildless/test.ql new file mode 100644 index 00000000000..25cd26fdd14 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/test.ql @@ -0,0 +1,9 @@ +import java + +from File f +where f.isSourceFile() +select f + +query predicate xmlFiles(XmlFile x) { any() } + +query predicate propertiesFiles(File f) { f.getExtension() = "properties" } From 699f752dedccd034855086df638f8046b3cff355 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 14:09:41 +0100 Subject: [PATCH 595/788] Ruby: use new dataflow api in RestClient.qll --- .../frameworks/http_clients/RestClient.qll | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/RestClient.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/RestClient.qll index 704981eea4e..5516e56493c 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/RestClient.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/RestClient.qll @@ -7,7 +7,6 @@ private import codeql.ruby.CFG private import codeql.ruby.Concepts private import codeql.ruby.ApiGraphs private import codeql.ruby.DataFlow -private import codeql.ruby.dataflow.internal.DataFlowImplForHttpClientLibraries as DataFlowImplForHttpClientLibraries /** * A call that makes an HTTP request using `RestClient`. @@ -58,8 +57,7 @@ class RestClientHttpRequest extends Http::Client::Request::Range, DataFlow::Call override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - any(RestClientDisablesCertificateValidationConfiguration config) - .hasFlow(argumentOrigin, disablingNode) and + RestClientDisablesCertificateValidationFlow::flow(argumentOrigin, disablingNode) and disablingNode = this.getCertificateValidationControllingValue() } @@ -67,17 +65,15 @@ class RestClientHttpRequest extends Http::Client::Request::Range, DataFlow::Call } /** A configuration to track values that can disable certificate validation for RestClient. */ -private class RestClientDisablesCertificateValidationConfiguration extends DataFlowImplForHttpClientLibraries::Configuration -{ - RestClientDisablesCertificateValidationConfiguration() { - this = "RestClientDisablesCertificateValidationConfiguration" - } - - override predicate isSource(DataFlow::Node source) { +private module RestClientDisablesCertificateValidationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source = API::getTopLevelMember("OpenSSL").getMember("SSL").getMember("VERIFY_NONE").asSource() } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink = any(RestClientHttpRequest req).getCertificateValidationControllingValue() } } + +private module RestClientDisablesCertificateValidationFlow = + DataFlow::Global; From a64d37211d4f43eb060c53f25f0ca09e026e023a Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 14:11:09 +0100 Subject: [PATCH 596/788] Ruby: use new dataflow api in Typhoeus.qll --- .../ruby/frameworks/http_clients/Typhoeus.qll | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Typhoeus.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Typhoeus.qll index 403af9a000c..1e4efb57947 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Typhoeus.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Typhoeus.qll @@ -7,7 +7,6 @@ private import codeql.ruby.CFG private import codeql.ruby.Concepts private import codeql.ruby.ApiGraphs private import codeql.ruby.DataFlow -private import codeql.ruby.dataflow.internal.DataFlowImplForHttpClientLibraries as DataFlowImplForHttpClientLibraries /** * A call that makes an HTTP request using `Typhoeus`. @@ -38,8 +37,7 @@ class TyphoeusHttpRequest extends Http::Client::Request::Range, DataFlow::CallNo override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - any(TyphoeusDisablesCertificateValidationConfiguration config) - .hasFlow(argumentOrigin, disablingNode) and + TyphoeusDisablesCertificateValidationFlow::flow(argumentOrigin, disablingNode) and disablingNode = this.getCertificateValidationControllingValue() } @@ -47,17 +45,13 @@ class TyphoeusHttpRequest extends Http::Client::Request::Range, DataFlow::CallNo } /** A configuration to track values that can disable certificate validation for Typhoeus. */ -private class TyphoeusDisablesCertificateValidationConfiguration extends DataFlowImplForHttpClientLibraries::Configuration -{ - TyphoeusDisablesCertificateValidationConfiguration() { - this = "TyphoeusDisablesCertificateValidationConfiguration" - } +private module TyphoeusDisablesCertificateValidationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr().getExpr().(BooleanLiteral).isFalse() } - override predicate isSource(DataFlow::Node source) { - source.asExpr().getExpr().(BooleanLiteral).isFalse() - } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink = any(TyphoeusHttpRequest req).getCertificateValidationControllingValue() } } + +private module TyphoeusDisablesCertificateValidationFlow = + DataFlow::Global; From 840b1e0a73d82a5c8ecc2a5678e012dff379b0e5 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 14:11:46 +0100 Subject: [PATCH 597/788] Ruby: delete DataFlowImplForHttpClientLibraries --- .../DataFlowImplForHttpClientLibraries.qll | 402 ------------------ 1 file changed, 402 deletions(-) delete mode 100644 ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll deleted file mode 100644 index 1975ac9781f..00000000000 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll +++ /dev/null @@ -1,402 +0,0 @@ -/** - * DEPRECATED: Use `Global` and `GlobalWithState` instead. - * - * Provides a `Configuration` class backwards-compatible interface to the data - * flow library. - */ - -private import DataFlowImplCommon -private import DataFlowImplSpecific::Private -import DataFlowImplSpecific::Public -private import DataFlowImpl -import DataFlowImplCommonPublic -import FlowStateString -private import codeql.util.Unit - -/** - * A configuration of interprocedural data flow analysis. This defines - * sources, sinks, and any other configurable aspect of the analysis. Each - * use of the global data flow library must define its own unique extension - * of this abstract class. To create a configuration, extend this class with - * a subclass whose characteristic predicate is a unique singleton string. - * For example, write - * - * ```ql - * class MyAnalysisConfiguration extends DataFlow::Configuration { - * MyAnalysisConfiguration() { this = "MyAnalysisConfiguration" } - * // Override `isSource` and `isSink`. - * // Optionally override `isBarrier`. - * // Optionally override `isAdditionalFlowStep`. - * } - * ``` - * Conceptually, this defines a graph where the nodes are `DataFlow::Node`s and - * the edges are those data-flow steps that preserve the value of the node - * along with any additional edges defined by `isAdditionalFlowStep`. - * Specifying nodes in `isBarrier` will remove those nodes from the graph, and - * specifying nodes in `isBarrierIn` and/or `isBarrierOut` will remove in-going - * and/or out-going edges from those nodes, respectively. - * - * Then, to query whether there is flow between some `source` and `sink`, - * write - * - * ```ql - * exists(MyAnalysisConfiguration cfg | cfg.hasFlow(source, sink)) - * ``` - * - * Multiple configurations can coexist, but two classes extending - * `DataFlow::Configuration` should never depend on each other. One of them - * should instead depend on a `DataFlow2::Configuration`, a - * `DataFlow3::Configuration`, or a `DataFlow4::Configuration`. - */ -abstract class Configuration extends string { - bindingset[this] - Configuration() { any() } - - /** - * Holds if `source` is a relevant data flow source. - */ - predicate isSource(Node source) { none() } - - /** - * Holds if `source` is a relevant data flow source with the given initial - * `state`. - */ - predicate isSource(Node source, FlowState state) { none() } - - /** - * Holds if `sink` is a relevant data flow sink. - */ - predicate isSink(Node sink) { none() } - - /** - * Holds if `sink` is a relevant data flow sink accepting `state`. - */ - predicate isSink(Node sink, FlowState state) { none() } - - /** - * Holds if data flow through `node` is prohibited. This completely removes - * `node` from the data flow graph. - */ - predicate isBarrier(Node node) { none() } - - /** - * Holds if data flow through `node` is prohibited when the flow state is - * `state`. - */ - predicate isBarrier(Node node, FlowState state) { none() } - - /** Holds if data flow into `node` is prohibited. */ - predicate isBarrierIn(Node node) { none() } - - /** Holds if data flow out of `node` is prohibited. */ - predicate isBarrierOut(Node node) { none() } - - /** - * DEPRECATED: Use `isBarrier` and `BarrierGuard` module instead. - * - * Holds if data flow through nodes guarded by `guard` is prohibited. - */ - deprecated predicate isBarrierGuard(BarrierGuard guard) { none() } - - /** - * DEPRECATED: Use `isBarrier` and `BarrierGuard` module instead. - * - * Holds if data flow through nodes guarded by `guard` is prohibited when - * the flow state is `state` - */ - deprecated predicate isBarrierGuard(BarrierGuard guard, FlowState state) { none() } - - /** - * Holds if data may flow from `node1` to `node2` in addition to the normal data-flow steps. - */ - predicate isAdditionalFlowStep(Node node1, Node node2) { none() } - - /** - * Holds if data may flow from `node1` to `node2` in addition to the normal data-flow steps. - * This step is only applicable in `state1` and updates the flow state to `state2`. - */ - predicate isAdditionalFlowStep(Node node1, FlowState state1, Node node2, FlowState state2) { - none() - } - - /** - * Holds if an arbitrary number of implicit read steps of content `c` may be - * taken at `node`. - */ - predicate allowImplicitRead(Node node, ContentSet c) { none() } - - /** - * Gets the virtual dispatch branching limit when calculating field flow. - * This can be overridden to a smaller value to improve performance (a - * value of 0 disables field flow), or a larger value to get more results. - */ - int fieldFlowBranchLimit() { result = 2 } - - /** - * Gets a data flow configuration feature to add restrictions to the set of - * valid flow paths. - * - * - `FeatureHasSourceCallContext`: - * Assume that sources have some existing call context to disallow - * conflicting return-flow directly following the source. - * - `FeatureHasSinkCallContext`: - * Assume that sinks have some existing call context to disallow - * conflicting argument-to-parameter flow directly preceding the sink. - * - `FeatureEqualSourceSinkCallContext`: - * Implies both of the above and additionally ensures that the entire flow - * path preserves the call context. - * - * These features are generally not relevant for typical end-to-end data flow - * queries, but should only be used for constructing paths that need to - * somehow be pluggable in another path context. - */ - FlowFeature getAFeature() { none() } - - /** Holds if sources should be grouped in the result of `hasFlowPath`. */ - predicate sourceGrouping(Node source, string sourceGroup) { none() } - - /** Holds if sinks should be grouped in the result of `hasFlowPath`. */ - predicate sinkGrouping(Node sink, string sinkGroup) { none() } - - /** - * Holds if data may flow from `source` to `sink` for this configuration. - */ - predicate hasFlow(Node source, Node sink) { hasFlow(source, sink, this) } - - /** - * Holds if data may flow from `source` to `sink` for this configuration. - * - * The corresponding paths are generated from the end-points and the graph - * included in the module `PathGraph`. - */ - predicate hasFlowPath(PathNode source, PathNode sink) { hasFlowPath(source, sink, this) } - - /** - * Holds if data may flow from some source to `sink` for this configuration. - */ - predicate hasFlowTo(Node sink) { hasFlowTo(sink, this) } - - /** - * Holds if data may flow from some source to `sink` for this configuration. - */ - predicate hasFlowToExpr(DataFlowExpr sink) { this.hasFlowTo(exprNode(sink)) } - - /** - * DEPRECATED: Use `FlowExploration` instead. - * - * Gets the exploration limit for `hasPartialFlow` and `hasPartialFlowRev` - * measured in approximate number of interprocedural steps. - */ - deprecated int explorationLimit() { none() } - - /** - * Holds if hidden nodes should be included in the data flow graph. - * - * This feature should only be used for debugging or when the data flow graph - * is not visualized (for example in a `path-problem` query). - */ - predicate includeHiddenNodes() { none() } -} - -/** - * This class exists to prevent mutual recursion between the user-overridden - * member predicates of `Configuration` and the rest of the data-flow library. - * Good performance cannot be guaranteed in the presence of such recursion, so - * it should be replaced by using more than one copy of the data flow library. - */ -abstract private class ConfigurationRecursionPrevention extends Configuration { - bindingset[this] - ConfigurationRecursionPrevention() { any() } - - override predicate hasFlow(Node source, Node sink) { - strictcount(Node n | this.isSource(n)) < 0 - or - strictcount(Node n | this.isSource(n, _)) < 0 - or - strictcount(Node n | this.isSink(n)) < 0 - or - strictcount(Node n | this.isSink(n, _)) < 0 - or - strictcount(Node n1, Node n2 | this.isAdditionalFlowStep(n1, n2)) < 0 - or - strictcount(Node n1, Node n2 | this.isAdditionalFlowStep(n1, _, n2, _)) < 0 - or - super.hasFlow(source, sink) - } -} - -/** A bridge class to access the deprecated `isBarrierGuard`. */ -private class BarrierGuardGuardedNodeBridge extends Unit { - abstract predicate guardedNode(Node n, Configuration config); - - abstract predicate guardedNode(Node n, FlowState state, Configuration config); -} - -private class BarrierGuardGuardedNode extends BarrierGuardGuardedNodeBridge { - deprecated override predicate guardedNode(Node n, Configuration config) { - exists(BarrierGuard g | - config.isBarrierGuard(g) and - n = g.getAGuardedNode() - ) - } - - deprecated override predicate guardedNode(Node n, FlowState state, Configuration config) { - exists(BarrierGuard g | - config.isBarrierGuard(g, state) and - n = g.getAGuardedNode() - ) - } -} - -private FlowState relevantState(Configuration config) { - config.isSource(_, result) or - config.isSink(_, result) or - config.isBarrier(_, result) or - config.isAdditionalFlowStep(_, result, _, _) or - config.isAdditionalFlowStep(_, _, _, result) -} - -private newtype TConfigState = - TMkConfigState(Configuration config, FlowState state) { - state = relevantState(config) or state instanceof FlowStateEmpty - } - -private Configuration getConfig(TConfigState state) { state = TMkConfigState(result, _) } - -private FlowState getState(TConfigState state) { state = TMkConfigState(_, result) } - -private predicate singleConfiguration() { 1 = strictcount(Configuration c) } - -private module Config implements FullStateConfigSig { - class FlowState = TConfigState; - - predicate isSource(Node source, FlowState state) { - getConfig(state).isSource(source, getState(state)) - or - getConfig(state).isSource(source) and getState(state) instanceof FlowStateEmpty - } - - predicate isSink(Node sink) { none() } - - predicate isSink(Node sink, FlowState state) { - getConfig(state).isSink(sink, getState(state)) - or - getConfig(state).isSink(sink) and getState(state) instanceof FlowStateEmpty - } - - predicate isBarrier(Node node) { none() } - - predicate isBarrier(Node node, FlowState state) { - getConfig(state).isBarrier(node, getState(state)) or - getConfig(state).isBarrier(node) or - any(BarrierGuardGuardedNodeBridge b).guardedNode(node, getState(state), getConfig(state)) or - any(BarrierGuardGuardedNodeBridge b).guardedNode(node, getConfig(state)) - } - - predicate isBarrierIn(Node node) { any(Configuration config).isBarrierIn(node) } - - predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } - - predicate isAdditionalFlowStep(Node node1, Node node2) { - singleConfiguration() and - any(Configuration config).isAdditionalFlowStep(node1, node2) - } - - predicate isAdditionalFlowStep(Node node1, FlowState state1, Node node2, FlowState state2) { - getConfig(state1).isAdditionalFlowStep(node1, getState(state1), node2, getState(state2)) and - getConfig(state2) = getConfig(state1) - or - not singleConfiguration() and - getConfig(state1).isAdditionalFlowStep(node1, node2) and - state2 = state1 - } - - predicate allowImplicitRead(Node node, ContentSet c) { - any(Configuration config).allowImplicitRead(node, c) - } - - predicate neverSkip(Node node) { none() } - - int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } - - FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } - - predicate sourceGrouping(Node source, string sourceGroup) { - any(Configuration config).sourceGrouping(source, sourceGroup) - } - - predicate sinkGrouping(Node sink, string sinkGroup) { - any(Configuration config).sinkGrouping(sink, sinkGroup) - } - - predicate includeHiddenNodes() { any(Configuration config).includeHiddenNodes() } -} - -private import Impl as I - -/** - * A `Node` augmented with a call context (except for sinks), an access path, and a configuration. - * Only those `PathNode`s that are reachable from a source, and which can reach a sink, are generated. - */ -class PathNode instanceof I::PathNode { - /** Gets a textual representation of this element. */ - final string toString() { result = super.toString() } - - /** - * Gets a textual representation of this element, including a textual - * representation of the call context. - */ - final string toStringWithContext() { result = super.toStringWithContext() } - - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - final predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - - /** Gets the underlying `Node`. */ - final Node getNode() { result = super.getNode() } - - /** Gets the `FlowState` of this node. */ - final FlowState getState() { result = getState(super.getState()) } - - /** Gets the associated configuration. */ - final Configuration getConfiguration() { result = getConfig(super.getState()) } - - /** Gets a successor of this node, if any. */ - final PathNode getASuccessor() { result = super.getASuccessor() } - - /** Holds if this node is a source. */ - final predicate isSource() { super.isSource() } - - /** Holds if this node is a grouping of source nodes. */ - final predicate isSourceGroup(string group) { super.isSourceGroup(group) } - - /** Holds if this node is a grouping of sink nodes. */ - final predicate isSinkGroup(string group) { super.isSinkGroup(group) } -} - -module PathGraph = I::PathGraph; - -private predicate hasFlow(Node source, Node sink, Configuration config) { - exists(PathNode source0, PathNode sink0 | - hasFlowPath(source0, sink0, config) and - source0.getNode() = source and - sink0.getNode() = sink - ) -} - -private predicate hasFlowPath(PathNode source, PathNode sink, Configuration config) { - I::flowPath(source, sink) and source.getConfiguration() = config -} - -private predicate hasFlowTo(Node sink, Configuration config) { hasFlow(_, sink, config) } - -predicate flowsTo = hasFlow/3; From 4031623fdabf48bbafa11b54d6dd27578f05be70 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 21 Sep 2023 14:22:34 +0100 Subject: [PATCH 598/788] Ruby: delete identical-files refs to deleted files --- config/identical-files.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/config/identical-files.json b/config/identical-files.json index f814b0f1f81..5c801c387a1 100644 --- a/config/identical-files.json +++ b/config/identical-files.json @@ -28,8 +28,6 @@ "python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll", "ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl1.qll", "ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll", - "ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll", - "ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForPathname.qll", "swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll" ], "TaintTracking Legacy Configuration Java/C++/C#/Go/Python/Ruby/Swift": [ @@ -552,4 +550,4 @@ "python/ql/test/experimental/dataflow/model-summaries/InlineTaintTest.ext.yml", "python/ql/test/experimental/dataflow/model-summaries/NormalDataflowTest.ext.yml" ] -} \ No newline at end of file +} From 4805e2a47b6b622705f4e122f5a953cdce080499 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 21 Sep 2023 14:01:15 +0200 Subject: [PATCH 599/788] Address more review comments --- .../StubGenerator.cs | 17 +- .../StubVisitor.cs | 285 +++++++++--------- 2 files changed, 160 insertions(+), 142 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs index 0b62ead8619..8f4e51572a7 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs @@ -56,13 +56,20 @@ public static class StubGenerator if (compilation.GetAssemblyOrModuleSymbol(reference) is not IAssemblySymbol assembly) return; - using var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write); - using var writer = new StreamWriter(fileStream, new UTF8Encoding(false)); + Func makeWriter = () => + { + var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write); + var writer = new StreamWriter(fileStream, new UTF8Encoding(false)); + return writer; + }; - writer.WriteLine("// This file contains auto-generated code."); - writer.WriteLine($"// Generated from `{assembly.Identity}`."); + using var visitor = new StubVisitor(assembly, makeWriter); - var visitor = new StubVisitor(assembly, writer); + if (!assembly.Modules.Any(m => visitor.IsRelevantNamespace(m.GlobalNamespace))) + return; + + visitor.StubWriter.WriteLine("// This file contains auto-generated code."); + visitor.StubWriter.WriteLine($"// Generated from `{assembly.Identity}`."); visitor.StubAttributes(assembly.GetAttributes(), "assembly: "); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs index 8e709e162c6..831d6d04081 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs @@ -8,16 +8,17 @@ using Semmle.Util; namespace Semmle.Extraction.CSharp.StubGenerator; -internal sealed class StubVisitor : SymbolVisitor +internal sealed class StubVisitor : SymbolVisitor, IDisposable { private readonly IAssemblySymbol assembly; - private readonly TextWriter stubWriter; + private readonly Lazy stubWriterLazy; + public TextWriter StubWriter => stubWriterLazy.Value; private readonly MemoizedFunc isRelevantNamespace; - public StubVisitor(IAssemblySymbol assembly, TextWriter stubWriter) + public StubVisitor(IAssemblySymbol assembly, Func makeStubWriter) { this.assembly = assembly; - this.stubWriter = stubWriter; + this.stubWriterLazy = new(makeStubWriter); this.isRelevantNamespace = new(symbol => symbol.GetTypeMembers().Any(IsRelevantNamedType) || symbol.GetNamespaceMembers().Any(IsRelevantNamespace)); @@ -36,7 +37,7 @@ internal sealed class StubVisitor : SymbolVisitor IsRelevantBaseType(symbol) && SymbolEqualityComparer.Default.Equals(symbol.ContainingAssembly, assembly); - private bool IsRelevantNamespace(INamespaceSymbol symbol) => isRelevantNamespace.Invoke(symbol); + public bool IsRelevantNamespace(INamespaceSymbol symbol) => isRelevantNamespace.Invoke(symbol); private void StubExplicitInterface(ISymbol symbol, ISymbol? explicitInterfaceSymbol, bool writeName = true) { @@ -85,14 +86,14 @@ internal sealed class StubVisitor : SymbolVisitor explicitInterfaceType = symbol.ContainingType.Interfaces.First(i => ContainsTupleType(i) && EqualsModuloTupleElementNames(i, explicitInterfaceSymbol.ContainingType)); } - stubWriter.Write(explicitInterfaceType.GetQualifiedName()); - stubWriter.Write('.'); + StubWriter.Write(explicitInterfaceType.GetQualifiedName()); + StubWriter.Write('.'); if (writeName) - stubWriter.Write(explicitInterfaceSymbol.GetName()); + StubWriter.Write(explicitInterfaceSymbol.GetName()); } else if (writeName) { - stubWriter.Write(symbol.GetName()); + StubWriter.Write(symbol.GetName()); } } @@ -101,19 +102,19 @@ internal sealed class StubVisitor : SymbolVisitor switch (accessibility) { case Accessibility.Public: - stubWriter.Write("public "); + StubWriter.Write("public "); break; case Accessibility.Protected or Accessibility.ProtectedOrInternal: - stubWriter.Write("protected "); + StubWriter.Write("protected "); break; case Accessibility.Internal: - stubWriter.Write("internal "); + StubWriter.Write("internal "); break; case Accessibility.ProtectedAndInternal: - stubWriter.Write("protected internal "); + StubWriter.Write("protected internal "); break; default: - stubWriter.Write($"/* TODO: {accessibility} */"); + StubWriter.Write($"/* TODO: {accessibility} */"); break; } } @@ -137,23 +138,23 @@ internal sealed class StubVisitor : SymbolVisitor // exclude non-static interface members (symbol.ContainingType is not INamedTypeSymbol containingType || containingType.TypeKind != TypeKind.Interface || symbol.IsStatic)) { - stubWriter.Write("abstract "); + StubWriter.Write("abstract "); } } - if (symbol.IsStatic) - stubWriter.Write("static "); + if (symbol.IsStatic && !(symbol is IFieldSymbol field && field.IsConst)) + StubWriter.Write("static "); if (symbol.IsVirtual) - stubWriter.Write("virtual "); + StubWriter.Write("virtual "); if (symbol.IsOverride) - stubWriter.Write("override "); + StubWriter.Write("override "); if (symbol.IsSealed) { if (!(symbol is INamedTypeSymbol type && (type.TypeKind == TypeKind.Enum || type.TypeKind == TypeKind.Delegate || type.TypeKind == TypeKind.Struct))) - stubWriter.Write("sealed "); + StubWriter.Write("sealed "); } if (symbol.IsExtern) - stubWriter.Write("extern "); + StubWriter.Write("extern "); } private void StubTypedConstant(TypedConstant c) @@ -163,47 +164,47 @@ internal sealed class StubVisitor : SymbolVisitor case TypedConstantKind.Primitive: if (c.Value is string s) { - stubWriter.Write($"\"{s}\""); + StubWriter.Write($"\"{s}\""); } else if (c.Value is char ch) { - stubWriter.Write($"'{ch}'"); + StubWriter.Write($"'{ch}'"); } else if (c.Value is bool b) { - stubWriter.Write(b ? "true" : "false"); + StubWriter.Write(b ? "true" : "false"); } else if (c.Value is int i) { - stubWriter.Write(i); + StubWriter.Write(i); } else if (c.Value is long l) { - stubWriter.Write(l); + StubWriter.Write(l); } else if (c.Value is float f) { - stubWriter.Write(f); + StubWriter.Write(f); } else if (c.Value is double d) { - stubWriter.Write(d); + StubWriter.Write(d); } else { - stubWriter.Write("throw null"); + StubWriter.Write("throw null"); } break; case TypedConstantKind.Enum: - stubWriter.Write("throw null"); + StubWriter.Write("throw null"); break; case TypedConstantKind.Array: - stubWriter.Write("new []{"); + StubWriter.Write("new []{"); WriteCommaSep(c.Values, StubTypedConstant); - stubWriter.Write("}"); + StubWriter.Write("}"); break; default: - stubWriter.Write($"/* TODO: {c.Kind} */ throw null"); + StubWriter.Write($"/* TODO: {c.Kind} */ throw null"); break; } } @@ -223,14 +224,14 @@ internal sealed class StubVisitor : SymbolVisitor if (qualifiedName.EndsWith("Attribute")) qualifiedName = qualifiedName[..^9]; - stubWriter.Write($"[{prefix}{qualifiedName}"); + StubWriter.Write($"[{prefix}{qualifiedName}"); if (a.ConstructorArguments.Any()) { - stubWriter.Write("("); + StubWriter.Write("("); WriteCommaSep(a.ConstructorArguments, StubTypedConstant); - stubWriter.Write(")"); + StubWriter.Write(")"); } - stubWriter.WriteLine("]"); + StubWriter.WriteLine("]"); } public void StubAttributes(IEnumerable a, string prefix = "") @@ -246,18 +247,23 @@ internal sealed class StubVisitor : SymbolVisitor StubAttributes(symbol.GetAttributes()); StubModifiers(symbol, explicitInterfaceSymbol is not null); - stubWriter.Write("event "); - stubWriter.Write(symbol.Type.GetQualifiedName()); - stubWriter.Write(" "); + StubWriter.Write("event "); + StubWriter.Write(symbol.Type.GetQualifiedName()); + StubWriter.Write(" "); StubExplicitInterface(symbol, explicitInterfaceSymbol); - stubWriter.Write(" { "); - if (symbol.AddMethod is not null) - stubWriter.Write("add {} "); - if (symbol.RemoveMethod is not null) - stubWriter.Write("remove {} "); - stubWriter.WriteLine("}"); + if (explicitInterfaceSymbol is null) + { + StubWriter.WriteLine(";"); + } + else + { + StubWriter.Write(" { "); + StubWriter.Write("add {} "); + StubWriter.Write("remove {} "); + StubWriter.WriteLine("}"); + } } private static T[] FilterExplicitInterfaceImplementations(IEnumerable explicitInterfaceImplementations) where T : ISymbol => @@ -309,15 +315,20 @@ internal sealed class StubVisitor : SymbolVisitor StubModifiers(symbol); + if (symbol.IsConst) + StubWriter.Write("const "); + if (IsUnsafe(symbol.Type)) { - stubWriter.Write("unsafe "); + StubWriter.Write("unsafe "); } - stubWriter.Write(symbol.Type.GetQualifiedName()); - stubWriter.Write(" "); - stubWriter.Write(EscapeIdentifier(symbol.Name)); - stubWriter.WriteLine(";"); + StubWriter.Write(symbol.Type.GetQualifiedName()); + StubWriter.Write(" "); + StubWriter.Write(EscapeIdentifier(symbol.Name)); + if (symbol.IsConst) + StubWriter.Write(" = default"); + StubWriter.WriteLine(";"); } private void WriteCommaSep(IEnumerable items, Action writeItem) @@ -327,7 +338,7 @@ internal sealed class StubVisitor : SymbolVisitor { if (!first) { - stubWriter.Write(", "); + StubWriter.Write(", "); } writeItem(item); first = false; @@ -336,7 +347,7 @@ internal sealed class StubVisitor : SymbolVisitor private void WriteStringCommaSep(IEnumerable items, Func writeItem) { - WriteCommaSep(items, item => stubWriter.Write(writeItem(item))); + WriteCommaSep(items, item => StubWriter.Write(writeItem(item))); } private void StubTypeParameters(IEnumerable typeParameters) @@ -344,9 +355,9 @@ internal sealed class StubVisitor : SymbolVisitor if (!typeParameters.Any()) return; - stubWriter.Write('<'); + StubWriter.Write('<'); WriteStringCommaSep(typeParameters, typeParameter => typeParameter.Name); - stubWriter.Write('>'); + StubWriter.Write('>'); } private void StubTypeParameterConstraints(IEnumerable typeParameters) @@ -366,11 +377,11 @@ internal sealed class StubVisitor : SymbolVisitor { if (firstTypeParameterConstraint) { - stubWriter.Write($" where {typeParameter.Name} : "); + StubWriter.Write($" where {typeParameter.Name} : "); } else { - stubWriter.Write(", "); + StubWriter.Write(", "); } a(); firstTypeParameterConstraint = false; @@ -378,14 +389,14 @@ internal sealed class StubVisitor : SymbolVisitor if (typeParameter.HasReferenceTypeConstraint) { - WriteTypeParameterConstraint(() => stubWriter.Write("class")); + WriteTypeParameterConstraint(() => StubWriter.Write("class")); } if (typeParameter.HasValueTypeConstraint && !typeParameter.HasUnmanagedTypeConstraint && !typeParameter.ConstraintTypes.Any(t => t.GetQualifiedName() is "System.Enum")) { - WriteTypeParameterConstraint(() => stubWriter.Write("struct")); + WriteTypeParameterConstraint(() => StubWriter.Write("struct")); } if (inheritsConstraints) @@ -393,7 +404,7 @@ internal sealed class StubVisitor : SymbolVisitor if (typeParameter.HasUnmanagedTypeConstraint) { - WriteTypeParameterConstraint(() => stubWriter.Write("unmanaged")); + WriteTypeParameterConstraint(() => StubWriter.Write("unmanaged")); } var constraintTypes = typeParameter.ConstraintTypes.Select(t => t.GetQualifiedName()).Where(s => s is not "").ToArray(); @@ -407,7 +418,7 @@ internal sealed class StubVisitor : SymbolVisitor if (typeParameter.HasConstructorConstraint) { - WriteTypeParameterConstraint(() => stubWriter.Write("new()")); + WriteTypeParameterConstraint(() => StubWriter.Write("new()")); } } } @@ -445,7 +456,7 @@ internal sealed class StubVisitor : SymbolVisitor c.DeclaredAccessibility == Accessibility.ProtectedOrInternal || containingTypes.Contains(c.ContainingType) ). - OrderBy(c => c.Parameters.Length).FirstOrDefault(); + MinBy(c => c.Parameters.Length); return baseCtor?.Parameters.Length > 0 ? baseCtor : null; } @@ -467,30 +478,30 @@ internal sealed class StubVisitor : SymbolVisitor case RefKind.None: break; case RefKind.Ref: - stubWriter.Write("ref "); + StubWriter.Write("ref "); break; case RefKind.Out: - stubWriter.Write("out "); + StubWriter.Write("out "); break; case RefKind.In: - stubWriter.Write("in "); + StubWriter.Write("in "); break; default: - stubWriter.Write($"/* TODO: {parameter.RefKind} */"); + StubWriter.Write($"/* TODO: {parameter.RefKind} */"); break; } if (parameter.IsParams) - stubWriter.Write("params "); + StubWriter.Write("params "); - stubWriter.Write(parameter.Type.GetQualifiedName()); - stubWriter.Write(" "); - stubWriter.Write(EscapeIdentifier(parameter.Name)); + StubWriter.Write(parameter.Type.GetQualifiedName()); + StubWriter.Write(" "); + StubWriter.Write(EscapeIdentifier(parameter.Name)); if (parameter.HasExplicitDefaultValue) { - stubWriter.Write(" = "); - stubWriter.Write($"default({parameter.Type.GetQualifiedName()})"); + StubWriter.Write(" = "); + StubWriter.Write($"default({parameter.Type.GetQualifiedName()})"); } }); } @@ -515,93 +526,88 @@ internal sealed class StubVisitor : SymbolVisitor if (IsUnsafe(symbol.ReturnType) || symbol.Parameters.Any(p => IsUnsafe(p.Type))) { - stubWriter.Write("unsafe "); - } - - if (explicitInterfaceSymbol is null && symbol.DeclaredAccessibility == Accessibility.Private) - { - stubWriter.Write("public "); + StubWriter.Write("unsafe "); } if (methodKind == MethodKind.Constructor) { - stubWriter.Write(symbol.ContainingType.Name); + StubWriter.Write(symbol.ContainingType.Name); } else if (methodKind == MethodKind.Conversion) { if (!symbol.TryGetOperatorSymbol(out var operatorName)) { - stubWriter.WriteLine($"/* TODO: {symbol.Name} */"); + StubWriter.WriteLine($"/* TODO: {symbol.Name} */"); return; } switch (operatorName) { case "explicit conversion": - stubWriter.Write("explicit operator "); + StubWriter.Write("explicit operator "); break; case "checked explicit conversion": - stubWriter.Write("explicit operator checked "); + StubWriter.Write("explicit operator checked "); break; case "implicit conversion": - stubWriter.Write("implicit operator "); + StubWriter.Write("implicit operator "); break; case "checked implicit conversion": - stubWriter.Write("implicit operator checked "); + StubWriter.Write("implicit operator checked "); break; default: - stubWriter.Write($"/* TODO: {symbol.Name} */"); + StubWriter.Write($"/* TODO: {symbol.Name} */"); break; } - stubWriter.Write(symbol.ReturnType.GetQualifiedName()); + StubWriter.Write(symbol.ReturnType.GetQualifiedName()); } else if (methodKind == MethodKind.UserDefinedOperator) { if (!symbol.TryGetOperatorSymbol(out var operatorName)) { - stubWriter.WriteLine($"/* TODO: {symbol.Name} */"); + StubWriter.WriteLine($"/* TODO: {symbol.Name} */"); return; } - stubWriter.Write(symbol.ReturnType.GetQualifiedName()); - stubWriter.Write(" "); + StubWriter.Write(symbol.ReturnType.GetQualifiedName()); + StubWriter.Write(" "); StubExplicitInterface(symbol, explicitInterfaceSymbol, writeName: false); - stubWriter.Write("operator "); - stubWriter.Write(operatorName); + StubWriter.Write("operator "); + StubWriter.Write(operatorName); } else { - stubWriter.Write(symbol.ReturnType.GetQualifiedName()); - stubWriter.Write(" "); + StubWriter.Write(symbol.ReturnType.GetQualifiedName()); + StubWriter.Write(" "); StubExplicitInterface(symbol, explicitInterfaceSymbol); StubTypeParameters(symbol.TypeParameters); } - stubWriter.Write("("); + StubWriter.Write("("); if (symbol.IsExtensionMethod) { - stubWriter.Write("this "); + StubWriter.Write("this "); } StubParameters(symbol.Parameters); - stubWriter.Write(")"); + StubWriter.Write(")"); if (baseCtor is not null) { - stubWriter.Write(" : base("); + StubWriter.Write(" : base("); WriteStringCommaSep(baseCtor.Parameters, parameter => $"default({parameter.Type.GetQualifiedName()})"); - stubWriter.Write(")"); + StubWriter.Write(")"); } StubTypeParameterConstraints(symbol.TypeParameters); if (symbol.IsAbstract) - stubWriter.WriteLine(";"); + StubWriter.WriteLine(";"); else - stubWriter.WriteLine(" => throw null;"); + StubWriter.WriteLine(" => throw null;"); } public override void VisitMethod(IMethodSymbol symbol) @@ -648,18 +654,18 @@ internal sealed class StubVisitor : SymbolVisitor if (IsUnsafe(invokeMethod.ReturnType) || invokeMethod.Parameters.Any(p => IsUnsafe(p.Type))) { - stubWriter.Write("unsafe "); + StubWriter.Write("unsafe "); } - stubWriter.Write("delegate "); - stubWriter.Write(invokeMethod.ReturnType.GetQualifiedName()); - stubWriter.Write($" {symbol.Name}"); + StubWriter.Write("delegate "); + StubWriter.Write(invokeMethod.ReturnType.GetQualifiedName()); + StubWriter.Write($" {symbol.Name}"); StubTypeParameters(symbol.TypeParameters); - stubWriter.Write("("); + StubWriter.Write("("); StubParameters(invokeMethod.Parameters); - stubWriter.Write(")"); + StubWriter.Write(")"); StubTypeParameterConstraints(symbol.TypeParameters); - stubWriter.WriteLine(";"); + StubWriter.WriteLine(";"); return; } @@ -671,29 +677,29 @@ internal sealed class StubVisitor : SymbolVisitor // certain classes, such as `Microsoft.Extensions.Logging.LoggingBuilderExtensions` // exist in multiple assemblies, so make them partial if (symbol.IsStatic && symbol.Name.EndsWith("Extensions")) - stubWriter.Write("partial "); - stubWriter.Write("class "); + StubWriter.Write("partial "); + StubWriter.Write("class "); break; case TypeKind.Enum: StubAttributes(symbol.GetAttributes()); StubModifiers(symbol); - stubWriter.Write("enum "); + StubWriter.Write("enum "); break; case TypeKind.Interface: StubAttributes(symbol.GetAttributes()); StubModifiers(symbol); - stubWriter.Write("interface "); + StubWriter.Write("interface "); break; case TypeKind.Struct: StubAttributes(symbol.GetAttributes()); StubModifiers(symbol); - stubWriter.Write("struct "); + StubWriter.Write("struct "); break; default: return; } - stubWriter.Write(symbol.Name); + StubWriter.Write(symbol.Name); StubTypeParameters(symbol.TypeParameters); @@ -701,13 +707,13 @@ internal sealed class StubVisitor : SymbolVisitor { if (symbol.EnumUnderlyingType is INamedTypeSymbol enumBase && enumBase.SpecialType != SpecialType.System_Int32) { - stubWriter.Write(" : "); - stubWriter.Write(enumBase.GetQualifiedName()); + StubWriter.Write(" : "); + StubWriter.Write(enumBase.GetQualifiedName()); } } else { - var bases = symbol.Interfaces.Where(IsRelevantBaseType).ToList(); + var bases = symbol.Interfaces.Where(IsRelevantBaseType).OrderBy(i => i.GetName()).ToList(); if (GetBaseType(symbol) is INamedTypeSymbol @base && IsRelevantBaseType(@base)) { bases.Insert(0, @base); @@ -715,23 +721,23 @@ internal sealed class StubVisitor : SymbolVisitor if (bases.Any()) { - stubWriter.Write(" : "); + StubWriter.Write(" : "); WriteStringCommaSep(bases, b => b.GetQualifiedName()); } } StubTypeParameterConstraints(symbol.TypeParameters); - stubWriter.WriteLine(" {"); + StubWriter.WriteLine(" {"); if (symbol.TypeKind == TypeKind.Enum) { foreach (var field in symbol.GetMembers().OfType().Where(field => field.ConstantValue is not null)) { - stubWriter.Write(field.Name); - stubWriter.Write(" = "); - stubWriter.Write(field.ConstantValue); - stubWriter.WriteLine(","); + StubWriter.Write(field.Name); + StubWriter.Write(" = "); + StubWriter.Write(field.ConstantValue); + StubWriter.WriteLine(","); } } else @@ -745,13 +751,13 @@ internal sealed class StubVisitor : SymbolVisitor if (!seenCtor && GetBaseConstructor(symbol) is IMethodSymbol baseCtor) { - stubWriter.Write($"internal {symbol.Name}() : base("); + StubWriter.Write($"internal {symbol.Name}() : base("); WriteStringCommaSep(baseCtor.Parameters, parameter => $"default({parameter.Type.GetQualifiedName()})"); - stubWriter.WriteLine(") {}"); + StubWriter.WriteLine(") {}"); } } - stubWriter.WriteLine("}"); + StubWriter.WriteLine("}"); } public override void VisitNamespace(INamespaceSymbol symbol) @@ -764,7 +770,7 @@ internal sealed class StubVisitor : SymbolVisitor var isGlobal = symbol.IsGlobalNamespace; if (!isGlobal) - stubWriter.WriteLine($"namespace {symbol.Name} {{"); + StubWriter.WriteLine($"namespace {symbol.Name} {{"); foreach (var childSymbol in symbol.GetMembers().OrderBy(m => m.GetName())) { @@ -772,7 +778,7 @@ internal sealed class StubVisitor : SymbolVisitor } if (!isGlobal) - stubWriter.WriteLine("}"); + StubWriter.WriteLine("}"); } private void StubProperty(IPropertySymbol symbol, IPropertySymbol? explicitInterfaceSymbol) @@ -781,7 +787,7 @@ internal sealed class StubVisitor : SymbolVisitor { var name = symbol.GetName(useMetadataName: true); if (name is not "Item" && explicitInterfaceSymbol is null) - stubWriter.WriteLine($"[System.Runtime.CompilerServices.IndexerName(\"{name}\")]"); + StubWriter.WriteLine($"[System.Runtime.CompilerServices.IndexerName(\"{name}\")]"); } StubAttributes(symbol.GetAttributes()); @@ -789,30 +795,30 @@ internal sealed class StubVisitor : SymbolVisitor if (IsUnsafe(symbol.Type) || symbol.Parameters.Any(p => IsUnsafe(p.Type))) { - stubWriter.Write("unsafe "); + StubWriter.Write("unsafe "); } - stubWriter.Write(symbol.Type.GetQualifiedName()); - stubWriter.Write(" "); + StubWriter.Write(symbol.Type.GetQualifiedName()); + StubWriter.Write(" "); if (symbol.Parameters.Any()) { StubExplicitInterface(symbol, explicitInterfaceSymbol, writeName: false); - stubWriter.Write("this["); + StubWriter.Write("this["); StubParameters(symbol.Parameters); - stubWriter.Write("]"); + StubWriter.Write("]"); } else { StubExplicitInterface(symbol, explicitInterfaceSymbol); } - stubWriter.Write(" { "); + StubWriter.Write(" { "); if (symbol.GetMethod is not null) - stubWriter.Write(symbol.IsAbstract ? "get; " : "get => throw null; "); + StubWriter.Write(symbol.IsAbstract ? "get; " : "get => throw null; "); if (symbol.SetMethod is not null) - stubWriter.Write(symbol.IsAbstract ? "set; " : "set {} "); - stubWriter.WriteLine("}"); + StubWriter.Write(symbol.IsAbstract ? "set; " : "set {} "); + StubWriter.WriteLine("}"); } public override void VisitProperty(IPropertySymbol symbol) @@ -830,4 +836,9 @@ internal sealed class StubVisitor : SymbolVisitor if (explicitInterfaceImplementations.Length == 0) StubProperty(symbol, null); } + + public void Dispose() + { + StubWriter.Dispose(); + } } \ No newline at end of file From f07d02be96775d05d19ca89f1330871e8d2f2285 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 21 Sep 2023 14:30:48 +0200 Subject: [PATCH 600/788] Regenerate stubs --- .../Newtonsoft.Json/13.0.3/Newtonsoft.Json.cs | 26 +- ....AspNetCore.Authentication.Abstractions.cs | 2 +- ...osoft.AspNetCore.Authentication.Cookies.cs | 4 +- .../Microsoft.AspNetCore.Authentication.cs | 6 +- ...oft.AspNetCore.Components.Authorization.cs | 2 +- .../Microsoft.AspNetCore.Components.Forms.cs | 6 +- .../Microsoft.AspNetCore.Components.Server.cs | 2 +- .../Microsoft.AspNetCore.Components.Web.cs | 2 +- .../Microsoft.AspNetCore.Components.cs | 10 +- ...oft.AspNetCore.Connections.Abstractions.cs | 4 +- .../Microsoft.AspNetCore.Cors.cs | 6 +- ...rosoft.AspNetCore.Cryptography.Internal.cs | 2 - ...ft.AspNetCore.DataProtection.Extensions.cs | 2 +- .../Microsoft.AspNetCore.DataProtection.cs | 4 +- .../Microsoft.AspNetCore.Diagnostics.cs | 2 +- .../Microsoft.AspNetCore.Html.Abstractions.cs | 4 +- .../Microsoft.AspNetCore.Http.Abstractions.cs | 138 +++---- .../Microsoft.AspNetCore.Http.Features.cs | 4 +- .../Microsoft.AspNetCore.Http.Results.cs | 68 ++-- .../Microsoft.AspNetCore.Http.cs | 24 +- .../Microsoft.AspNetCore.Identity.cs | 2 +- .../Microsoft.AspNetCore.Mvc.Abstractions.cs | 14 +- .../Microsoft.AspNetCore.Mvc.Core.cs | 130 +++---- ...icrosoft.AspNetCore.Mvc.Formatters.Json.cs | 2 - ...Microsoft.AspNetCore.Mvc.Formatters.Xml.cs | 6 +- .../Microsoft.AspNetCore.Mvc.Localization.cs | 2 +- .../Microsoft.AspNetCore.Mvc.Razor.cs | 4 +- .../Microsoft.AspNetCore.Mvc.RazorPages.cs | 28 +- .../Microsoft.AspNetCore.Mvc.ViewFeatures.cs | 36 +- .../Microsoft.AspNetCore.Razor.cs | 10 +- .../Microsoft.AspNetCore.Routing.cs | 52 +-- .../Microsoft.AspNetCore.Server.HttpSys.cs | 2 +- .../Microsoft.AspNetCore.Server.IIS.cs | 2 +- ...rosoft.AspNetCore.Server.IISIntegration.cs | 6 +- ...icrosoft.AspNetCore.Server.Kestrel.Core.cs | 2 +- .../Microsoft.AspNetCore.SignalR.Common.cs | 14 +- .../Microsoft.AspNetCore.SignalR.Core.cs | 2 +- .../Microsoft.AspNetCore.SignalR.cs | 2 +- .../Microsoft.AspNetCore.WebUtilities.cs | 10 +- .../Microsoft.AspNetCore.cs | 4 +- .../Microsoft.Extensions.Caching.Memory.cs | 2 +- ...nsions.DependencyInjection.Abstractions.cs | 4 +- .../Microsoft.Extensions.Features.cs | 2 +- ...osoft.Extensions.FileProviders.Physical.cs | 2 +- ...crosoft.Extensions.Hosting.Abstractions.cs | 2 +- .../Microsoft.Extensions.Hosting.cs | 2 +- .../Microsoft.Extensions.Identity.Core.cs | 38 +- .../Microsoft.Extensions.Identity.Stores.cs | 6 +- ...crosoft.Extensions.Logging.Abstractions.cs | 4 +- .../Microsoft.Extensions.Logging.Console.cs | 8 +- .../Microsoft.Extensions.Logging.Debug.cs | 2 +- .../Microsoft.Extensions.Logging.EventLog.cs | 2 +- ...icrosoft.Extensions.Logging.EventSource.cs | 10 +- ...icrosoft.Extensions.Logging.TraceSource.cs | 2 +- .../Microsoft.Extensions.Logging.cs | 2 +- .../Microsoft.Extensions.Options.cs | 2 +- .../Microsoft.Extensions.Primitives.cs | 6 +- .../Microsoft.JSInterop.cs | 12 +- .../Microsoft.Net.Http.Headers.cs | 4 +- .../System.Diagnostics.EventLog.cs | 4 +- .../System.Security.Cryptography.Xml.cs | 82 ++-- .../Microsoft.VisualBasic.Core.cs | 224 +++++------ .../Microsoft.VisualBasic.cs | 2 - .../System.AppContext.cs | 2 - .../Microsoft.NETCore.App/System.Buffers.cs | 2 - .../System.Collections.Concurrent.cs | 12 +- .../System.Collections.Immutable.cs | 30 +- .../System.Collections.NonGeneric.cs | 8 +- .../System.Collections.Specialized.cs | 10 +- .../System.Collections.cs | 56 +-- .../System.ComponentModel.DataAnnotations.cs | 2 - .../System.ComponentModel.EventBasedAsync.cs | 6 +- .../System.ComponentModel.Primitives.cs | 4 +- .../System.ComponentModel.TypeConverter.cs | 72 ++-- .../System.Configuration.cs | 2 - .../Microsoft.NETCore.App/System.Console.cs | 2 +- .../Microsoft.NETCore.App/System.Core.cs | 2 - .../System.Data.Common.cs | 108 +++--- .../System.Data.DataSetExtensions.cs | 2 - .../Microsoft.NETCore.App/System.Data.cs | 2 - .../System.Diagnostics.Contracts.cs | 2 +- .../System.Diagnostics.Debug.cs | 2 - .../System.Diagnostics.DiagnosticSource.cs | 10 +- .../System.Diagnostics.Process.cs | 6 +- .../System.Diagnostics.StackTrace.cs | 4 +- .../System.Diagnostics.Tools.cs | 2 - .../System.Diagnostics.TraceSource.cs | 6 +- .../System.Diagnostics.Tracing.cs | 6 +- .../Microsoft.NETCore.App/System.Drawing.cs | 2 - .../System.Dynamic.Runtime.cs | 2 - .../System.Globalization.Calendars.cs | 2 - .../System.Globalization.Extensions.cs | 2 - .../System.Globalization.cs | 2 - .../System.IO.Compression.FileSystem.cs | 2 - .../System.IO.FileSystem.Primitives.cs | 2 - .../System.IO.FileSystem.Watcher.cs | 10 +- .../System.IO.FileSystem.cs | 2 - .../Microsoft.NETCore.App/System.IO.Pipes.cs | 2 +- .../System.IO.UnmanagedMemoryStream.cs | 2 - .../Microsoft.NETCore.App/System.IO.cs | 2 - .../System.Linq.Expressions.cs | 4 +- .../System.Linq.Queryable.cs | 2 +- .../Microsoft.NETCore.App/System.Memory.cs | 4 +- .../Microsoft.NETCore.App/System.Net.Http.cs | 6 +- .../Microsoft.NETCore.App/System.Net.Mail.cs | 34 +- .../System.Net.NetworkInformation.cs | 4 +- .../Microsoft.NETCore.App/System.Net.Ping.cs | 2 +- .../System.Net.Primitives.cs | 14 +- .../System.Net.Requests.cs | 42 +-- .../System.Net.ServicePoint.cs | 4 +- .../System.Net.Sockets.cs | 2 +- .../System.Net.WebClient.cs | 24 +- .../System.Net.WebProxy.cs | 2 +- .../Microsoft.NETCore.App/System.Net.cs | 2 - .../Microsoft.NETCore.App/System.Numerics.cs | 2 - .../System.ObjectModel.cs | 18 +- .../System.Reflection.Emit.cs | 2 +- .../System.Reflection.Extensions.cs | 2 - .../System.Reflection.Metadata.cs | 68 ++-- .../System.Reflection.cs | 2 - .../System.Resources.Reader.cs | 2 - .../System.Resources.ResourceManager.cs | 2 - .../System.Runtime.CompilerServices.Unsafe.cs | 2 - .../System.Runtime.Extensions.cs | 2 - .../System.Runtime.Handles.cs | 2 - ...time.InteropServices.RuntimeInformation.cs | 2 - .../System.Runtime.InteropServices.cs | 6 +- .../System.Runtime.Loader.cs | 6 +- .../System.Runtime.Numerics.cs | 4 +- .../System.Runtime.Serialization.cs | 2 - .../Microsoft.NETCore.App/System.Runtime.cs | 352 +++++++++--------- .../System.Security.Claims.cs | 168 ++++----- ...System.Security.Cryptography.Algorithms.cs | 2 - .../System.Security.Cryptography.Cng.cs | 2 - .../System.Security.Cryptography.Csp.cs | 2 - .../System.Security.Cryptography.Encoding.cs | 2 - .../System.Security.Cryptography.OpenSsl.cs | 2 - ...System.Security.Cryptography.Primitives.cs | 2 - ....Security.Cryptography.X509Certificates.cs | 2 - .../System.Security.Cryptography.cs | 58 +-- .../System.Security.Principal.Windows.cs | 4 +- .../System.Security.Principal.cs | 2 - .../System.Security.SecureString.cs | 2 - .../Microsoft.NETCore.App/System.Security.cs | 2 - .../System.ServiceModel.Web.cs | 2 - .../System.ServiceProcess.cs | 2 - .../System.Text.Encoding.Extensions.cs | 2 +- .../System.Text.Encoding.cs | 2 - .../Microsoft.NETCore.App/System.Text.Json.cs | 6 +- .../System.Text.RegularExpressions.cs | 6 +- .../System.Threading.Tasks.Dataflow.cs | 14 +- .../System.Threading.Tasks.Extensions.cs | 2 - .../System.Threading.Tasks.cs | 2 - .../System.Threading.Timer.cs | 2 - .../Microsoft.NETCore.App/System.Threading.cs | 2 +- .../System.Transactions.Local.cs | 4 +- .../System.Transactions.cs | 2 - .../System.ValueTuple.cs | 2 - .../Microsoft.NETCore.App/System.Web.cs | 2 - .../Microsoft.NETCore.App/System.Windows.cs | 2 - .../Microsoft.NETCore.App/System.Xml.Linq.cs | 2 - .../System.Xml.ReaderWriter.cs | 34 +- .../System.Xml.Serialization.cs | 2 - .../System.Xml.XDocument.cs | 4 +- .../System.Xml.XmlDocument.cs | 2 - .../System.Xml.XmlSerializer.cs | 10 +- .../Microsoft.NETCore.App/System.Xml.cs | 2 - .../Microsoft.NETCore.App/System.cs | 2 - .../Microsoft.NETCore.App/WindowsBase.cs | 2 - .../Microsoft.NETCore.App/mscorlib.cs | 2 - .../Microsoft.NETCore.App/netstandard.cs | 2 - 171 files changed, 1166 insertions(+), 1288 deletions(-) diff --git a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.cs b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.cs index 910a1ac3b0e..7e5b3327316 100644 --- a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.cs +++ b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.cs @@ -563,7 +563,7 @@ namespace Newtonsoft public T Deserialize(Newtonsoft.Json.JsonReader reader) => throw null; public object Deserialize(Newtonsoft.Json.JsonReader reader, System.Type objectType) => throw null; public virtual System.Collections.IEqualityComparer EqualityComparer { get => throw null; set { } } - public virtual event System.EventHandler Error { add { } remove { } } + public virtual event System.EventHandler Error; public virtual Newtonsoft.Json.FloatFormatHandling FloatFormatHandling { get => throw null; set { } } public virtual Newtonsoft.Json.FloatParseHandling FloatParseHandling { get => throw null; set { } } public virtual Newtonsoft.Json.Formatting Formatting { get => throw null; set { } } @@ -803,7 +803,7 @@ namespace Newtonsoft public Newtonsoft.Json.JsonReader Reader { get => throw null; } public Newtonsoft.Json.Schema.JsonSchema Schema { get => throw null; set { } } public override Newtonsoft.Json.JsonToken TokenType { get => throw null; } - public event Newtonsoft.Json.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + public event Newtonsoft.Json.Schema.ValidationEventHandler ValidationEventHandler; public override object Value { get => throw null; } public override System.Type ValueType { get => throw null; } } @@ -998,7 +998,7 @@ namespace Newtonsoft { Newtonsoft.Json.Linq.IJEnumerable this[object key] { get; } } - public class JArray : Newtonsoft.Json.Linq.JContainer, System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + public class JArray : Newtonsoft.Json.Linq.JContainer, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList { public void Add(Newtonsoft.Json.Linq.JToken item) => throw null; protected override System.Collections.Generic.IList ChildrenTokens { get => throw null; } @@ -1047,14 +1047,14 @@ namespace Newtonsoft public override void WriteTo(Newtonsoft.Json.JsonWriter writer, params Newtonsoft.Json.JsonConverter[] converters) => throw null; public override System.Threading.Tasks.Task WriteToAsync(Newtonsoft.Json.JsonWriter writer, System.Threading.CancellationToken cancellationToken, params Newtonsoft.Json.JsonConverter[] converters) => throw null; } - public abstract class JContainer : Newtonsoft.Json.Linq.JToken, System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.ComponentModel.ITypedList, System.ComponentModel.IBindingList, System.Collections.ICollection, System.Collections.IList, System.Collections.Specialized.INotifyCollectionChanged + public abstract class JContainer : Newtonsoft.Json.Linq.JToken, System.ComponentModel.IBindingList, System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.ITypedList { public virtual void Add(object content) => throw null; void System.Collections.Generic.ICollection.Add(Newtonsoft.Json.Linq.JToken item) => throw null; int System.Collections.IList.Add(object value) => throw null; public void AddFirst(object content) => throw null; void System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor property) => throw null; - public event System.ComponentModel.AddingNewEventHandler AddingNew { add { } remove { } } + public event System.ComponentModel.AddingNewEventHandler AddingNew; object System.ComponentModel.IBindingList.AddNew() => throw null; bool System.ComponentModel.IBindingList.AllowEdit { get => throw null; } bool System.ComponentModel.IBindingList.AllowNew { get => throw null; } @@ -1064,7 +1064,7 @@ namespace Newtonsoft protected abstract System.Collections.Generic.IList ChildrenTokens { get; } void System.Collections.Generic.ICollection.Clear() => throw null; void System.Collections.IList.Clear() => throw null; - public event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged { add { } remove { } } + public event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; bool System.Collections.Generic.ICollection.Contains(Newtonsoft.Json.Linq.JToken item) => throw null; bool System.Collections.IList.Contains(object value) => throw null; void System.Collections.Generic.ICollection.CopyTo(Newtonsoft.Json.Linq.JToken[] array, int arrayIndex) => throw null; @@ -1090,7 +1090,7 @@ namespace Newtonsoft Newtonsoft.Json.Linq.JToken System.Collections.Generic.IList.this[int index] { get => throw null; set { } } object System.Collections.IList.this[int index] { get => throw null; set { } } public override Newtonsoft.Json.Linq.JToken Last { get => throw null; } - public event System.ComponentModel.ListChangedEventHandler ListChanged { add { } remove { } } + public event System.ComponentModel.ListChangedEventHandler ListChanged; public void Merge(object content) => throw null; public void Merge(object content, Newtonsoft.Json.Linq.JsonMergeSettings settings) => throw null; protected virtual void OnAddingNew(System.ComponentModel.AddingNewEventArgs e) => throw null; @@ -1112,7 +1112,7 @@ namespace Newtonsoft object System.Collections.ICollection.SyncRoot { get => throw null; } public override System.Collections.Generic.IEnumerable Values() => throw null; } - public struct JEnumerable : Newtonsoft.Json.Linq.IJEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IEquatable> where T : Newtonsoft.Json.Linq.JToken + public struct JEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IEquatable>, Newtonsoft.Json.Linq.IJEnumerable where T : Newtonsoft.Json.Linq.JToken { public JEnumerable(System.Collections.Generic.IEnumerable enumerable) => throw null; public static Newtonsoft.Json.Linq.JEnumerable Empty; @@ -1123,7 +1123,7 @@ namespace Newtonsoft public override int GetHashCode() => throw null; public Newtonsoft.Json.Linq.IJEnumerable this[object key] { get => throw null; } } - public class JObject : Newtonsoft.Json.Linq.JContainer, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.ICustomTypeDescriptor, System.ComponentModel.INotifyPropertyChanging + public class JObject : Newtonsoft.Json.Linq.JContainer, System.Collections.Generic.ICollection>, System.ComponentModel.ICustomTypeDescriptor, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging { public void Add(string propertyName, Newtonsoft.Json.Linq.JToken value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -1167,8 +1167,8 @@ namespace Newtonsoft public System.Collections.Generic.IEnumerable Properties() => throw null; public Newtonsoft.Json.Linq.JProperty Property(string name) => throw null; public Newtonsoft.Json.Linq.JProperty Property(string name, System.StringComparison comparison) => throw null; - public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } - public event System.ComponentModel.PropertyChangingEventHandler PropertyChanging { add { } remove { } } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + public event System.ComponentModel.PropertyChangingEventHandler PropertyChanging; public Newtonsoft.Json.Linq.JEnumerable PropertyValues() => throw null; public bool Remove(string propertyName) => throw null; bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; @@ -1242,7 +1242,7 @@ namespace Newtonsoft public bool ErrorWhenNoMatch { get => throw null; set { } } public System.TimeSpan? RegexMatchTimeout { get => throw null; set { } } } - public abstract class JToken : Newtonsoft.Json.Linq.IJEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, Newtonsoft.Json.IJsonLineInfo, System.ICloneable, System.Dynamic.IDynamicMetaObjectProvider + public abstract class JToken : System.ICloneable, System.Dynamic.IDynamicMetaObjectProvider, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, Newtonsoft.Json.Linq.IJEnumerable, Newtonsoft.Json.IJsonLineInfo { public void AddAfterSelf(object content) => throw null; public void AddAnnotation(object annotation) => throw null; @@ -1464,7 +1464,7 @@ namespace Newtonsoft public override void WriteValue(System.Guid value) => throw null; public override void WriteValue(System.Uri value) => throw null; } - public class JValue : Newtonsoft.Json.Linq.JToken, System.IEquatable, System.IFormattable, System.IComparable, System.IComparable, System.IConvertible + public class JValue : Newtonsoft.Json.Linq.JToken, System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable { int System.IComparable.CompareTo(object obj) => throw null; public int CompareTo(Newtonsoft.Json.Linq.JValue obj) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Abstractions.cs index 9a152885767..c451c482ab3 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Abstractions.cs @@ -172,7 +172,7 @@ namespace Microsoft System.Threading.Tasks.Task SignInAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme, System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); System.Threading.Tasks.Task SignOutAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); } - public interface IAuthenticationSignInHandler : Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler + public interface IAuthenticationSignInHandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler { System.Threading.Tasks.Task SignInAsync(System.Security.Claims.ClaimsPrincipal user, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs index 22de63d9f75..a14a87efaa6 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs @@ -13,7 +13,7 @@ namespace Microsoft public void AppendResponseCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, string value, Microsoft.AspNetCore.Http.CookieOptions options) => throw null; public int? ChunkSize { get => throw null; set { } } public ChunkingCookieManager() => throw null; - public static int DefaultChunkSize; + public const int DefaultChunkSize = default; public void DeleteCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, Microsoft.AspNetCore.Http.CookieOptions options) => throw null; public string GetRequestCookie(Microsoft.AspNetCore.Http.HttpContext context, string key) => throw null; public bool ThrowForPartialCookies { get => throw null; set { } } @@ -21,7 +21,7 @@ namespace Microsoft public static class CookieAuthenticationDefaults { public static Microsoft.AspNetCore.Http.PathString AccessDeniedPath; - public static string AuthenticationScheme; + public const string AuthenticationScheme = default; public static string CookiePrefix; public static Microsoft.AspNetCore.Http.PathString LoginPath; public static Microsoft.AspNetCore.Http.PathString LogoutPath; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.cs index 43d69028a16..a614c44c0dc 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.cs @@ -196,7 +196,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task RemoteFailure(Microsoft.AspNetCore.Authentication.RemoteFailureContext context) => throw null; public virtual System.Threading.Tasks.Task TicketReceived(Microsoft.AspNetCore.Authentication.TicketReceivedContext context) => throw null; } - public abstract class RemoteAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationRequestHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions, new() + public abstract class RemoteAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationRequestHandler where TOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions, new() { protected override System.Threading.Tasks.Task CreateEventsAsync() => throw null; protected RemoteAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; @@ -260,13 +260,13 @@ namespace Microsoft public TData Unprotect(string protectedText) => throw null; public TData Unprotect(string protectedText, string purpose) => throw null; } - public abstract class SignInAuthenticationHandler : Microsoft.AspNetCore.Authentication.SignOutAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignInHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() + public abstract class SignInAuthenticationHandler : Microsoft.AspNetCore.Authentication.SignOutAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignInHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() { public SignInAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; protected abstract System.Threading.Tasks.Task HandleSignInAsync(System.Security.Claims.ClaimsPrincipal user, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); public virtual System.Threading.Tasks.Task SignInAsync(System.Security.Claims.ClaimsPrincipal user, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; } - public abstract class SignOutAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() + public abstract class SignOutAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() { public SignOutAuthenticationHandler(Microsoft.Extensions.Options.IOptionsMonitor options, Microsoft.Extensions.Logging.ILoggerFactory logger, System.Text.Encodings.Web.UrlEncoder encoder, Microsoft.AspNetCore.Authentication.ISystemClock clock) : base(default(Microsoft.Extensions.Options.IOptionsMonitor), default(Microsoft.Extensions.Logging.ILoggerFactory), default(System.Text.Encodings.Web.UrlEncoder), default(Microsoft.AspNetCore.Authentication.ISystemClock)) => throw null; protected abstract System.Threading.Tasks.Task HandleSignOutAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Authorization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Authorization.cs index d270d27e7ab..fd3bdcdfc51 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Authorization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Authorization.cs @@ -16,7 +16,7 @@ namespace Microsoft public delegate void AuthenticationStateChangedHandler(System.Threading.Tasks.Task task); public abstract class AuthenticationStateProvider { - public event Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler AuthenticationStateChanged { add { } remove { } } + public event Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler AuthenticationStateChanged; protected AuthenticationStateProvider() => throw null; public abstract System.Threading.Tasks.Task GetAuthenticationStateAsync(); protected void NotifyAuthenticationStateChanged(System.Threading.Tasks.Task task) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs index f5a415a0da7..17f5ef3093f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs @@ -31,9 +31,9 @@ namespace Microsoft public object Model { get => throw null; } public void NotifyFieldChanged(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; public void NotifyValidationStateChanged() => throw null; - public event System.EventHandler OnFieldChanged { add { } remove { } } - public event System.EventHandler OnValidationRequested { add { } remove { } } - public event System.EventHandler OnValidationStateChanged { add { } remove { } } + public event System.EventHandler OnFieldChanged; + public event System.EventHandler OnValidationRequested; + public event System.EventHandler OnValidationStateChanged; public Microsoft.AspNetCore.Components.Forms.EditContextProperties Properties { get => throw null; } public bool Validate() => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Server.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Server.cs index ba78a292a86..34ba99e04cb 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Server.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Server.cs @@ -6,7 +6,7 @@ namespace Microsoft { namespace Builder { - public sealed class ComponentEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + public sealed class ComponentEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder { public void Add(System.Action convention) => throw null; public void Finally(System.Action finalConvention) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Web.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Web.cs index 53a5a16fbb3..042e1a76754 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Web.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Web.cs @@ -228,7 +228,7 @@ namespace Microsoft public Microsoft.AspNetCore.Components.RouteData RouteData { get => throw null; set { } } public string Selector { get => throw null; set { } } } - public sealed class NavigationLock : Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleAfterRender, System.IAsyncDisposable + public sealed class NavigationLock : System.IAsyncDisposable, Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleAfterRender { void Microsoft.AspNetCore.Components.IComponent.Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; public bool ConfirmExternalNavigation { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs index a929d37089b..6553e26080e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs @@ -121,7 +121,7 @@ namespace Microsoft public static T TypeCheck(T value) => throw null; } } - public abstract class ComponentBase : Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleEvent, Microsoft.AspNetCore.Components.IHandleAfterRender + public abstract class ComponentBase : Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleAfterRender, Microsoft.AspNetCore.Components.IHandleEvent { void Microsoft.AspNetCore.Components.IComponent.Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; protected virtual void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; @@ -388,7 +388,7 @@ namespace Microsoft protected virtual void HandleLocationChangingHandlerException(System.Exception ex, Microsoft.AspNetCore.Components.Routing.LocationChangingContext context) => throw null; public string HistoryEntryState { get => throw null; set { } } protected void Initialize(string baseUri, string uri) => throw null; - public event System.EventHandler LocationChanged { add { } remove { } } + public event System.EventHandler LocationChanged; public void NavigateTo(string uri, bool forceLoad) => throw null; public void NavigateTo(string uri, bool forceLoad = default(bool), bool replace = default(bool)) => throw null; public void NavigateTo(string uri, Microsoft.AspNetCore.Components.NavigationOptions options) => throw null; @@ -561,7 +561,7 @@ namespace Microsoft public Microsoft.AspNetCore.Components.RenderTree.ArrayRange ReferenceFrames { get => throw null; } public Microsoft.AspNetCore.Components.RenderTree.ArrayRange UpdatedComponents { get => throw null; } } - public abstract class Renderer : System.IDisposable, System.IAsyncDisposable + public abstract class Renderer : System.IAsyncDisposable, System.IDisposable { protected int AssignRootComponentId(Microsoft.AspNetCore.Components.IComponent component) => throw null; public Renderer(System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; @@ -580,7 +580,7 @@ namespace Microsoft protected void RemoveRootComponent(int componentId) => throw null; protected System.Threading.Tasks.Task RenderRootComponentAsync(int componentId) => throw null; protected System.Threading.Tasks.Task RenderRootComponentAsync(int componentId, Microsoft.AspNetCore.Components.ParameterView initialParameters) => throw null; - public event System.UnhandledExceptionEventHandler UnhandledSynchronizationException { add { } remove { } } + public event System.UnhandledExceptionEventHandler UnhandledSynchronizationException; protected abstract System.Threading.Tasks.Task UpdateDisplayAsync(in Microsoft.AspNetCore.Components.RenderTree.RenderBatch renderBatch); } public struct RenderTreeDiff @@ -698,7 +698,7 @@ namespace Microsoft public System.Threading.CancellationToken CancellationToken { get => throw null; } public string Path { get => throw null; } } - public class Router : Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleAfterRender, System.IDisposable + public class Router : Microsoft.AspNetCore.Components.IComponent, System.IDisposable, Microsoft.AspNetCore.Components.IHandleAfterRender { public System.Collections.Generic.IEnumerable AdditionalAssemblies { get => throw null; set { } } public System.Reflection.Assembly AppAssembly { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Connections.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Connections.Abstractions.cs index 525c941546b..42dc0d039a0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Connections.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Connections.Abstractions.cs @@ -56,7 +56,7 @@ namespace Microsoft protected ConnectionHandler() => throw null; public abstract System.Threading.Tasks.Task OnConnectedAsync(Microsoft.AspNetCore.Connections.ConnectionContext connection); } - public class ConnectionItems : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class ConnectionItems : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { void System.Collections.Generic.IDictionary.Add(object key, object value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -83,7 +83,7 @@ namespace Microsoft public ConnectionResetException(string message) => throw null; public ConnectionResetException(string message, System.Exception inner) => throw null; } - public class DefaultConnectionContext : Microsoft.AspNetCore.Connections.ConnectionContext, Microsoft.AspNetCore.Connections.Features.IConnectionIdFeature, Microsoft.AspNetCore.Connections.Features.IConnectionItemsFeature, Microsoft.AspNetCore.Connections.Features.IConnectionTransportFeature, Microsoft.AspNetCore.Connections.Features.IConnectionUserFeature, Microsoft.AspNetCore.Connections.Features.IConnectionLifetimeFeature, Microsoft.AspNetCore.Connections.Features.IConnectionEndPointFeature + public class DefaultConnectionContext : Microsoft.AspNetCore.Connections.ConnectionContext, Microsoft.AspNetCore.Connections.Features.IConnectionEndPointFeature, Microsoft.AspNetCore.Connections.Features.IConnectionIdFeature, Microsoft.AspNetCore.Connections.Features.IConnectionItemsFeature, Microsoft.AspNetCore.Connections.Features.IConnectionLifetimeFeature, Microsoft.AspNetCore.Connections.Features.IConnectionTransportFeature, Microsoft.AspNetCore.Connections.Features.IConnectionUserFeature { public override void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason) => throw null; public System.IO.Pipelines.IDuplexPipe Application { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs index 4fc77ffddf0..191ace4dc60 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs @@ -20,16 +20,16 @@ namespace Microsoft } namespace Cors { - public class CorsPolicyMetadata : Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyMetadata, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata + public class CorsPolicyMetadata : Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata, Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyMetadata { public CorsPolicyMetadata(Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) => throw null; public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy Policy { get => throw null; } } - public class DisableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.IDisableCorsAttribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata + public class DisableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata, Microsoft.AspNetCore.Cors.Infrastructure.IDisableCorsAttribute { public DisableCorsAttribute() => throw null; } - public class EnableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata + public class EnableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata, Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute { public EnableCorsAttribute() => throw null; public EnableCorsAttribute(string policyName) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs index 90ae7542fd6..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `Microsoft.AspNetCore.Cryptography.Internal, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Extensions.cs index e7eec5b5d83..94b2910eb4b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Extensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.Extensions.cs @@ -23,7 +23,7 @@ namespace Microsoft public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(System.IO.DirectoryInfo keyDirectory, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(System.IO.DirectoryInfo keyDirectory, System.Action setupAction, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; } - public interface ITimeLimitedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtector, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider + public interface ITimeLimitedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider, Microsoft.AspNetCore.DataProtection.IDataProtector { Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector CreateProtector(string purpose); byte[] Protect(byte[] plaintext, System.DateTimeOffset expiration); diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.cs index 7b48e9f2f88..771124d1f35 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.DataProtection.cs @@ -201,7 +201,7 @@ namespace Microsoft object CreateInstance(System.Type expectedBaseType, string implementationTypeName); } } - public interface IPersistedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtector, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider + public interface IPersistedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider, Microsoft.AspNetCore.DataProtection.IDataProtector { byte[] DangerousUnprotect(byte[] protectedData, bool ignoreRevocationErrors, out bool requiresMigration, out bool wasRevoked); } @@ -281,7 +281,7 @@ namespace Microsoft public Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor XmlEncryptor { get => throw null; set { } } public Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository XmlRepository { get => throw null; set { } } } - public sealed class XmlKeyManager : Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager + public sealed class XmlKeyManager : Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager, Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager { public Microsoft.AspNetCore.DataProtection.KeyManagement.IKey CreateNewKey(System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate) => throw null; Microsoft.AspNetCore.DataProtection.KeyManagement.IKey Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager.CreateNewKey(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.cs index 4e2c6079c2f..e9510d09a68 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Diagnostics.cs @@ -66,7 +66,7 @@ namespace Microsoft public DeveloperExceptionPageMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, System.Diagnostics.DiagnosticSource diagnosticSource, System.Collections.Generic.IEnumerable filters) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - public class ExceptionHandlerFeature : Microsoft.AspNetCore.Diagnostics.IExceptionHandlerPathFeature, Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature + public class ExceptionHandlerFeature : Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature, Microsoft.AspNetCore.Diagnostics.IExceptionHandlerPathFeature { public ExceptionHandlerFeature() => throw null; public Microsoft.AspNetCore.Http.Endpoint Endpoint { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs index 16cf406455d..2831ac4f365 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs @@ -6,7 +6,7 @@ namespace Microsoft { namespace Html { - public class HtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent + public class HtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContentContainer { public Microsoft.AspNetCore.Html.IHtmlContentBuilder Append(string unencoded) => throw null; public Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) => throw null; @@ -51,7 +51,7 @@ namespace Microsoft { void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder); } - public interface IHtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent + public interface IHtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentContainer { Microsoft.AspNetCore.Html.IHtmlContentBuilder Append(string unencoded); Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent content); diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs index 84c1761ce5c..07a76d1afcd 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs @@ -185,13 +185,13 @@ namespace Microsoft public static Microsoft.AspNetCore.Http.Endpoint GetEndpoint(this Microsoft.AspNetCore.Http.HttpContext context) => throw null; public static void SetEndpoint(this Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.Endpoint endpoint) => throw null; } - public sealed class EndpointMetadataCollection : System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection + public sealed class EndpointMetadataCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { public int Count { get => throw null; } public EndpointMetadataCollection(System.Collections.Generic.IEnumerable items) => throw null; public EndpointMetadataCollection(params object[] items) => throw null; public static Microsoft.AspNetCore.Http.EndpointMetadataCollection Empty; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public object Current { get => throw null; } public void Dispose() => throw null; @@ -581,71 +581,71 @@ namespace Microsoft } public static class StatusCodes { - public static int Status100Continue; - public static int Status101SwitchingProtocols; - public static int Status102Processing; - public static int Status200OK; - public static int Status201Created; - public static int Status202Accepted; - public static int Status203NonAuthoritative; - public static int Status204NoContent; - public static int Status205ResetContent; - public static int Status206PartialContent; - public static int Status207MultiStatus; - public static int Status208AlreadyReported; - public static int Status226IMUsed; - public static int Status300MultipleChoices; - public static int Status301MovedPermanently; - public static int Status302Found; - public static int Status303SeeOther; - public static int Status304NotModified; - public static int Status305UseProxy; - public static int Status306SwitchProxy; - public static int Status307TemporaryRedirect; - public static int Status308PermanentRedirect; - public static int Status400BadRequest; - public static int Status401Unauthorized; - public static int Status402PaymentRequired; - public static int Status403Forbidden; - public static int Status404NotFound; - public static int Status405MethodNotAllowed; - public static int Status406NotAcceptable; - public static int Status407ProxyAuthenticationRequired; - public static int Status408RequestTimeout; - public static int Status409Conflict; - public static int Status410Gone; - public static int Status411LengthRequired; - public static int Status412PreconditionFailed; - public static int Status413PayloadTooLarge; - public static int Status413RequestEntityTooLarge; - public static int Status414RequestUriTooLong; - public static int Status414UriTooLong; - public static int Status415UnsupportedMediaType; - public static int Status416RangeNotSatisfiable; - public static int Status416RequestedRangeNotSatisfiable; - public static int Status417ExpectationFailed; - public static int Status418ImATeapot; - public static int Status419AuthenticationTimeout; - public static int Status421MisdirectedRequest; - public static int Status422UnprocessableEntity; - public static int Status423Locked; - public static int Status424FailedDependency; - public static int Status426UpgradeRequired; - public static int Status428PreconditionRequired; - public static int Status429TooManyRequests; - public static int Status431RequestHeaderFieldsTooLarge; - public static int Status451UnavailableForLegalReasons; - public static int Status500InternalServerError; - public static int Status501NotImplemented; - public static int Status502BadGateway; - public static int Status503ServiceUnavailable; - public static int Status504GatewayTimeout; - public static int Status505HttpVersionNotsupported; - public static int Status506VariantAlsoNegotiates; - public static int Status507InsufficientStorage; - public static int Status508LoopDetected; - public static int Status510NotExtended; - public static int Status511NetworkAuthenticationRequired; + public const int Status100Continue = default; + public const int Status101SwitchingProtocols = default; + public const int Status102Processing = default; + public const int Status200OK = default; + public const int Status201Created = default; + public const int Status202Accepted = default; + public const int Status203NonAuthoritative = default; + public const int Status204NoContent = default; + public const int Status205ResetContent = default; + public const int Status206PartialContent = default; + public const int Status207MultiStatus = default; + public const int Status208AlreadyReported = default; + public const int Status226IMUsed = default; + public const int Status300MultipleChoices = default; + public const int Status301MovedPermanently = default; + public const int Status302Found = default; + public const int Status303SeeOther = default; + public const int Status304NotModified = default; + public const int Status305UseProxy = default; + public const int Status306SwitchProxy = default; + public const int Status307TemporaryRedirect = default; + public const int Status308PermanentRedirect = default; + public const int Status400BadRequest = default; + public const int Status401Unauthorized = default; + public const int Status402PaymentRequired = default; + public const int Status403Forbidden = default; + public const int Status404NotFound = default; + public const int Status405MethodNotAllowed = default; + public const int Status406NotAcceptable = default; + public const int Status407ProxyAuthenticationRequired = default; + public const int Status408RequestTimeout = default; + public const int Status409Conflict = default; + public const int Status410Gone = default; + public const int Status411LengthRequired = default; + public const int Status412PreconditionFailed = default; + public const int Status413PayloadTooLarge = default; + public const int Status413RequestEntityTooLarge = default; + public const int Status414RequestUriTooLong = default; + public const int Status414UriTooLong = default; + public const int Status415UnsupportedMediaType = default; + public const int Status416RangeNotSatisfiable = default; + public const int Status416RequestedRangeNotSatisfiable = default; + public const int Status417ExpectationFailed = default; + public const int Status418ImATeapot = default; + public const int Status419AuthenticationTimeout = default; + public const int Status421MisdirectedRequest = default; + public const int Status422UnprocessableEntity = default; + public const int Status423Locked = default; + public const int Status424FailedDependency = default; + public const int Status426UpgradeRequired = default; + public const int Status428PreconditionRequired = default; + public const int Status429TooManyRequests = default; + public const int Status431RequestHeaderFieldsTooLarge = default; + public const int Status451UnavailableForLegalReasons = default; + public const int Status500InternalServerError = default; + public const int Status501NotImplemented = default; + public const int Status502BadGateway = default; + public const int Status503ServiceUnavailable = default; + public const int Status504GatewayTimeout = default; + public const int Status505HttpVersionNotsupported = default; + public const int Status506VariantAlsoNegotiates = default; + public const int Status507InsufficientStorage = default; + public const int Status508LoopDetected = default; + public const int Status510NotExtended = default; + public const int Status511NetworkAuthenticationRequired = default; } public abstract class WebSocketManager { @@ -672,7 +672,7 @@ namespace Microsoft } namespace Routing { - public class RouteValueDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection> + public class RouteValueDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(string key, object value) => throw null; @@ -687,7 +687,7 @@ namespace Microsoft public RouteValueDictionary(System.Collections.Generic.IEnumerable> values) => throw null; public RouteValueDictionary(System.Collections.Generic.IEnumerable> values) => throw null; public RouteValueDictionary(Microsoft.AspNetCore.Routing.RouteValueDictionary dictionary) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public Enumerator(Microsoft.AspNetCore.Routing.RouteValueDictionary dictionary) => throw null; public System.Collections.Generic.KeyValuePair Current { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Features.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Features.cs index 728dd69c058..52a9f067541 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Features.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Features.cs @@ -226,13 +226,13 @@ namespace Microsoft string Name { get; } System.IO.Stream OpenReadStream(); } - public interface IFormFileCollection : System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection + public interface IFormFileCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { Microsoft.AspNetCore.Http.IFormFile GetFile(string name); System.Collections.Generic.IReadOnlyList GetFiles(string name); Microsoft.AspNetCore.Http.IFormFile this[string name] { get; } } - public interface IHeaderDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public interface IHeaderDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { virtual Microsoft.Extensions.Primitives.StringValues Accept { get => throw null; set { } } virtual Microsoft.Extensions.Primitives.StringValues AcceptCharset { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Results.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Results.cs index b830eb33292..d0c6e414384 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Results.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Results.cs @@ -8,7 +8,7 @@ namespace Microsoft { namespace HttpResults { - public sealed class Accepted : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + public sealed class Accepted : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public string Location { get => throw null; } @@ -16,7 +16,7 @@ namespace Microsoft public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class Accepted : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class Accepted : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public string Location { get => throw null; } @@ -26,7 +26,7 @@ namespace Microsoft public TValue Value { get => throw null; } object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } } - public sealed class AcceptedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + public sealed class AcceptedAtRoute : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; @@ -35,7 +35,7 @@ namespace Microsoft public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class AcceptedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class AcceptedAtRoute : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; @@ -46,14 +46,14 @@ namespace Microsoft public TValue Value { get => throw null; } object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } } - public sealed class BadRequest : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + public sealed class BadRequest : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class BadRequest : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class BadRequest : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; @@ -68,14 +68,14 @@ namespace Microsoft public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; } } - public sealed class Conflict : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + public sealed class Conflict : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class Conflict : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class Conflict : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; @@ -84,14 +84,14 @@ namespace Microsoft public TValue Value { get => throw null; } object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } } - public sealed class ContentHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + public sealed class ContentHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public string ContentType { get => throw null; } public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public string ResponseContent { get => throw null; } public int? StatusCode { get => throw null; } } - public sealed class Created : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + public sealed class Created : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public string Location { get => throw null; } @@ -99,7 +99,7 @@ namespace Microsoft public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class Created : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class Created : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public string Location { get => throw null; } @@ -109,7 +109,7 @@ namespace Microsoft public TValue Value { get => throw null; } object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } } - public sealed class CreatedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + public sealed class CreatedAtRoute : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; @@ -118,7 +118,7 @@ namespace Microsoft public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class CreatedAtRoute : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class CreatedAtRoute : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; @@ -134,7 +134,7 @@ namespace Microsoft public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public static Microsoft.AspNetCore.Http.HttpResults.EmptyHttpResult Instance { get => throw null; } } - public sealed class FileContentHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + public sealed class FileContentHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IResult { public string ContentType { get => throw null; } public bool EnableRangeProcessing { get => throw null; } @@ -145,7 +145,7 @@ namespace Microsoft public long? FileLength { get => throw null; } public System.DateTimeOffset? LastModified { get => throw null; } } - public sealed class FileStreamHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + public sealed class FileStreamHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IResult { public string ContentType { get => throw null; } public bool EnableRangeProcessing { get => throw null; } @@ -162,7 +162,7 @@ namespace Microsoft public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; } } - public sealed class JsonHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + public sealed class JsonHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public string ContentType { get => throw null; } public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; @@ -171,21 +171,21 @@ namespace Microsoft public TValue Value { get => throw null; } object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } } - public class NoContent : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + public class NoContent : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class NotFound : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + public sealed class NotFound : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class NotFound : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class NotFound : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; @@ -194,14 +194,14 @@ namespace Microsoft public TValue Value { get => throw null; } object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } } - public sealed class Ok : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + public sealed class Ok : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class Ok : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class Ok : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; @@ -210,7 +210,7 @@ namespace Microsoft public TValue Value { get => throw null; } object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } } - public sealed class PhysicalFileHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + public sealed class PhysicalFileHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IResult { public string ContentType { get => throw null; } public bool EnableRangeProcessing { get => throw null; } @@ -221,7 +221,7 @@ namespace Microsoft public string FileName { get => throw null; } public System.DateTimeOffset? LastModified { get => throw null; } } - public sealed class ProblemHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class ProblemHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public string ContentType { get => throw null; } public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; @@ -231,7 +231,7 @@ namespace Microsoft object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } Microsoft.AspNetCore.Mvc.ProblemDetails Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } } - public sealed class PushStreamHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + public sealed class PushStreamHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IResult { public string ContentType { get => throw null; } public bool EnableRangeProcessing { get => throw null; } @@ -258,7 +258,7 @@ namespace Microsoft public string RouteName { get => throw null; } public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; } } - public sealed class Results : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult + public sealed class Results : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.IResult where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; @@ -266,7 +266,7 @@ namespace Microsoft static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } } - public sealed class Results : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult + public sealed class Results : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.IResult where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; @@ -275,7 +275,7 @@ namespace Microsoft static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } } - public sealed class Results : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult + public sealed class Results : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.IResult where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; @@ -285,7 +285,7 @@ namespace Microsoft static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } } - public sealed class Results : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult where TResult5 : Microsoft.AspNetCore.Http.IResult + public sealed class Results : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.IResult where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult where TResult5 : Microsoft.AspNetCore.Http.IResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; @@ -296,7 +296,7 @@ namespace Microsoft static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; public Microsoft.AspNetCore.Http.IResult Result { get => throw null; } } - public sealed class Results : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult where TResult5 : Microsoft.AspNetCore.Http.IResult where TResult6 : Microsoft.AspNetCore.Http.IResult + public sealed class Results : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.INestedHttpResult, Microsoft.AspNetCore.Http.IResult where TResult1 : Microsoft.AspNetCore.Http.IResult where TResult2 : Microsoft.AspNetCore.Http.IResult where TResult3 : Microsoft.AspNetCore.Http.IResult where TResult4 : Microsoft.AspNetCore.Http.IResult where TResult5 : Microsoft.AspNetCore.Http.IResult where TResult6 : Microsoft.AspNetCore.Http.IResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public static implicit operator Microsoft.AspNetCore.Http.HttpResults.Results(TResult1 result) => throw null; @@ -333,14 +333,14 @@ namespace Microsoft public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class UnprocessableEntity : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult + public sealed class UnprocessableEntity : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; public int StatusCode { get => throw null; } int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get => throw null; } } - public sealed class UnprocessableEntity : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class UnprocessableEntity : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(System.Reflection.MethodInfo method, Microsoft.AspNetCore.Builder.EndpointBuilder builder) => throw null; @@ -349,14 +349,14 @@ namespace Microsoft public TValue Value { get => throw null; } object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } } - public sealed class Utf8ContentHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + public sealed class Utf8ContentHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult { public string ContentType { get => throw null; } public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public System.ReadOnlyMemory ResponseContent { get => throw null; } public int? StatusCode { get => throw null; } } - public sealed class ValidationProblem : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult + public sealed class ValidationProblem : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IStatusCodeHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult, Microsoft.AspNetCore.Http.IValueHttpResult { public string ContentType { get => throw null; } public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; @@ -367,7 +367,7 @@ namespace Microsoft object Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } Microsoft.AspNetCore.Http.HttpValidationProblemDetails Microsoft.AspNetCore.Http.IValueHttpResult.Value { get => throw null; } } - public sealed class VirtualFileHttpResult : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IContentTypeHttpResult + public sealed class VirtualFileHttpResult : Microsoft.AspNetCore.Http.IContentTypeHttpResult, Microsoft.AspNetCore.Http.IFileHttpResult, Microsoft.AspNetCore.Http.IResult { public string ContentType { get => throw null; } public bool EnableRangeProcessing { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs index 1f1e3b721de..9896e9ad054 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs @@ -87,10 +87,10 @@ namespace Microsoft public bool BufferBody { get => throw null; set { } } public long BufferBodyLengthLimit { get => throw null; set { } } public FormOptions() => throw null; - public static int DefaultBufferBodyLengthLimit; - public static int DefaultMemoryBufferThreshold; - public static long DefaultMultipartBodyLengthLimit; - public static int DefaultMultipartBoundaryLengthLimit; + public const int DefaultBufferBodyLengthLimit = default; + public const int DefaultMemoryBufferThreshold = default; + public const long DefaultMultipartBodyLengthLimit = default; + public const int DefaultMultipartBoundaryLengthLimit = default; public int KeyLengthLimit { get => throw null; set { } } public int MemoryBufferThreshold { get => throw null; set { } } public long MultipartBodyLengthLimit { get => throw null; set { } } @@ -170,7 +170,7 @@ namespace Microsoft public RequestCookiesFeature(Microsoft.AspNetCore.Http.IRequestCookieCollection cookies) => throw null; public RequestCookiesFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; } - public class RequestServicesFeature : Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature, System.IDisposable, System.IAsyncDisposable + public class RequestServicesFeature : System.IAsyncDisposable, System.IDisposable, Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature { public RequestServicesFeature(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory scopeFactory) => throw null; public void Dispose() => throw null; @@ -200,13 +200,13 @@ namespace Microsoft public System.Threading.Tasks.Task GetClientCertificateAsync(System.Threading.CancellationToken cancellationToken) => throw null; } } - public class FormCollection : Microsoft.AspNetCore.Http.IFormCollection, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class FormCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, Microsoft.AspNetCore.Http.IFormCollection { public bool ContainsKey(string key) => throw null; public int Count { get => throw null; } public FormCollection(System.Collections.Generic.Dictionary fields, Microsoft.AspNetCore.Http.IFormFileCollection files = default(Microsoft.AspNetCore.Http.IFormFileCollection)) => throw null; public static Microsoft.AspNetCore.Http.FormCollection Empty; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -235,14 +235,14 @@ namespace Microsoft public string Name { get => throw null; } public System.IO.Stream OpenReadStream() => throw null; } - public class FormFileCollection : System.Collections.Generic.List, Microsoft.AspNetCore.Http.IFormFileCollection, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection + public class FormFileCollection : System.Collections.Generic.List, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, Microsoft.AspNetCore.Http.IFormFileCollection, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { public FormFileCollection() => throw null; public Microsoft.AspNetCore.Http.IFormFile GetFile(string name) => throw null; public System.Collections.Generic.IReadOnlyList GetFiles(string name) => throw null; public Microsoft.AspNetCore.Http.IFormFile this[string name] { get => throw null; } } - public class HeaderDictionary : Microsoft.AspNetCore.Http.IHeaderDictionary, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class HeaderDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, Microsoft.AspNetCore.Http.IHeaderDictionary { public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(string key, Microsoft.Extensions.Primitives.StringValues value) => throw null; @@ -255,7 +255,7 @@ namespace Microsoft public HeaderDictionary() => throw null; public HeaderDictionary(System.Collections.Generic.Dictionary store) => throw null; public HeaderDictionary(int capacity) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -293,7 +293,7 @@ namespace Microsoft public MiddlewareFactory(System.IServiceProvider serviceProvider) => throw null; public void Release(Microsoft.AspNetCore.Http.IMiddleware middleware) => throw null; } - public class QueryCollection : Microsoft.AspNetCore.Http.IQueryCollection, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class QueryCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, Microsoft.AspNetCore.Http.IQueryCollection { public bool ContainsKey(string key) => throw null; public int Count { get => throw null; } @@ -302,7 +302,7 @@ namespace Microsoft public QueryCollection(Microsoft.AspNetCore.Http.QueryCollection store) => throw null; public QueryCollection(int capacity) => throw null; public static Microsoft.AspNetCore.Http.QueryCollection Empty; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs index a1929360a33..dd5cc7c5a00 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs @@ -148,7 +148,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ValidateSecurityStampAsync(TUser user, string securityStamp) => throw null; public virtual System.Threading.Tasks.Task ValidateTwoFactorSecurityStampAsync(System.Security.Claims.ClaimsPrincipal principal) => throw null; } - public class TwoFactorSecurityStampValidator : Microsoft.AspNetCore.Identity.SecurityStampValidator, Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator, Microsoft.AspNetCore.Identity.ISecurityStampValidator where TUser : class + public class TwoFactorSecurityStampValidator : Microsoft.AspNetCore.Identity.SecurityStampValidator, Microsoft.AspNetCore.Identity.ISecurityStampValidator, Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator where TUser : class { public TwoFactorSecurityStampValidator(Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.Identity.SignInManager signInManager, Microsoft.AspNetCore.Authentication.ISystemClock clock, Microsoft.Extensions.Logging.ILoggerFactory logger) : base(default(Microsoft.Extensions.Options.IOptions), default(Microsoft.AspNetCore.Identity.SignInManager), default(Microsoft.AspNetCore.Authentication.ISystemClock), default(Microsoft.Extensions.Logging.ILoggerFactory)) => throw null; protected override System.Threading.Tasks.Task SecurityStampVerified(TUser user, Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs index 609caf13df0..05c7f76e799 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs @@ -262,7 +262,7 @@ namespace Microsoft void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context); void OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context); } - public interface IAlwaysRunResultFilter : Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + public interface IAlwaysRunResultFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResultFilter { } public interface IAsyncActionFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata @@ -742,7 +742,7 @@ namespace Microsoft public ModelPropertyCollection(System.Collections.Generic.IEnumerable properties) : base(default(System.Collections.Generic.IList)) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata this[string propertyName] { get => throw null; } } - public class ModelStateDictionary : System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection> + public class ModelStateDictionary : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { public void AddModelError(string key, System.Exception exception, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => throw null; public void AddModelError(string key, string errorMessage) => throw null; @@ -754,7 +754,7 @@ namespace Microsoft public ModelStateDictionary(int maxAllowedErrors) => throw null; public ModelStateDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; public static int DefaultMaxAllowedErrors; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public Enumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; public System.Collections.Generic.KeyValuePair Current { get => throw null; } @@ -779,7 +779,7 @@ namespace Microsoft System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct KeyEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct KeyEnumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public KeyEnumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; public string Current { get => throw null; } @@ -819,7 +819,7 @@ namespace Microsoft System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct ValueEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct ValueEnumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public ValueEnumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry Current { get => throw null; } @@ -933,7 +933,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; } public object Model { get => throw null; } } - public class ValidationStateDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection> + public class ValidationStateDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(object key, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry value) => throw null; @@ -985,7 +985,7 @@ namespace Microsoft public ValueProviderFactoryContext(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; public System.Collections.Generic.IList ValueProviders { get => throw null; } } - public struct ValueProviderResult : System.IEquatable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + public struct ValueProviderResult : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IEquatable { public ValueProviderResult(Microsoft.Extensions.Primitives.StringValues values) => throw null; public ValueProviderResult(Microsoft.Extensions.Primitives.StringValues values, System.Globalization.CultureInfo culture) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs index 4e34696df97..f3eb72a310c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs @@ -121,7 +121,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ActionResult Result { get => throw null; } public TValue Value { get => throw null; } } - public class AntiforgeryValidationFailedResult : Microsoft.AspNetCore.Mvc.BadRequestResult, Microsoft.AspNetCore.Mvc.Core.Infrastructure.IAntiforgeryValidationFailedResult, Microsoft.AspNetCore.Mvc.IActionResult + public class AntiforgeryValidationFailedResult : Microsoft.AspNetCore.Mvc.BadRequestResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Core.Infrastructure.IAntiforgeryValidationFailedResult { public AntiforgeryValidationFailedResult() => throw null; } @@ -224,7 +224,7 @@ namespace Microsoft } namespace ApplicationModels { - public class ActionModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel + public class ActionModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel { public System.Reflection.MethodInfo ActionMethod { get => throw null; } public string ActionName { get => throw null; set { } } @@ -263,7 +263,7 @@ namespace Microsoft public ApiVisibilityConvention() => throw null; protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; } - public class ApplicationModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel + public class ApplicationModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel { public Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get => throw null; set { } } public System.Collections.Generic.IList Controllers { get => throw null; } @@ -307,7 +307,7 @@ namespace Microsoft public ConsumesConstraintForFormFileParameterConvention() => throw null; protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; } - public class ControllerModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel + public class ControllerModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel { public System.Collections.Generic.IList Actions { get => throw null; } public Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get => throw null; set { } } @@ -409,7 +409,7 @@ namespace Microsoft public System.Type ParameterType { get => throw null; } public System.Collections.Generic.IDictionary Properties { get => throw null; } } - public class PropertyModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel + public class PropertyModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel { public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } public Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel Controller { get => throw null; set { } } @@ -517,7 +517,7 @@ namespace Microsoft { public AllowAnonymousFilter() => throw null; } - public class AuthorizeFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + public class AuthorizeFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { public System.Collections.Generic.IEnumerable AuthorizeData { get => throw null; } Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Microsoft.AspNetCore.Mvc.Filters.IFilterFactory.CreateInstance(System.IServiceProvider serviceProvider) => throw null; @@ -554,7 +554,7 @@ namespace Microsoft public BindPropertiesAttribute() => throw null; public bool SupportsGet { get => throw null; set { } } } - public class BindPropertyAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IRequestPredicateProvider + public class BindPropertyAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IRequestPredicateProvider { public System.Type BinderType { get => throw null; set { } } public virtual Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set { } } @@ -607,7 +607,7 @@ namespace Microsoft { public ConflictResult() : base(default(int)) => throw null; } - public class ConsumesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestMetadataProvider, Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata + public class ConsumesAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter { public bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) => throw null; public static int ConsumesActionConstraintOrder; @@ -622,7 +622,7 @@ namespace Microsoft System.Type Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata.RequestType { get => throw null; } public void SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes) => throw null; } - public class ContentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + public class ContentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult { public string Content { get => throw null; set { } } public string ContentType { get => throw null; set { } } @@ -943,7 +943,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterActionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -954,7 +954,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext ActionExecutedContext { get => throw null; } protected override int Count { get => throw null; } public AfterActionFilterOnActionExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -964,7 +964,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext ActionExecutingContext { get => throw null; } protected override int Count { get => throw null; } public AfterActionFilterOnActionExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -974,7 +974,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext ActionExecutedContext { get => throw null; } protected override int Count { get => throw null; } public AfterActionFilterOnActionExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -983,7 +983,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } protected override int Count { get => throw null; } public AfterActionResultEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -993,7 +993,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext AuthorizationContext { get => throw null; } protected override int Count { get => throw null; } public AfterAuthorizationFilterOnAuthorizationEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -1004,7 +1004,7 @@ namespace Microsoft public object Controller { get => throw null; } protected override int Count { get => throw null; } public AfterControllerActionMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, object controller, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -1013,7 +1013,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterExceptionFilterOnExceptionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.ExceptionContext ExceptionContext { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1023,7 +1023,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterResourceFilterOnResourceExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext ResourceExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1033,7 +1033,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterResourceFilterOnResourceExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1043,7 +1043,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterResourceFilterOnResourceExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext ResourceExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1053,7 +1053,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterResultFilterOnResultExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext ResultExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1063,7 +1063,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterResultFilterOnResultExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext ResultExecutingContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1073,7 +1073,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterResultFilterOnResultExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext ResultExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1083,7 +1083,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforeActionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1094,7 +1094,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext ActionExecutedContext { get => throw null; } protected override int Count { get => throw null; } public BeforeActionFilterOnActionExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext actionExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -1104,7 +1104,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext ActionExecutingContext { get => throw null; } protected override int Count { get => throw null; } public BeforeActionFilterOnActionExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -1114,7 +1114,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext ActionExecutingContext { get => throw null; } protected override int Count { get => throw null; } public BeforeActionFilterOnActionExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext actionExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -1123,7 +1123,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } protected override int Count { get => throw null; } public BeforeActionResultEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -1133,7 +1133,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext AuthorizationContext { get => throw null; } protected override int Count { get => throw null; } public BeforeAuthorizationFilterOnAuthorizationEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext authorizationContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } @@ -1144,7 +1144,7 @@ namespace Microsoft public object Controller { get => throw null; } protected override sealed int Count { get => throw null; } public BeforeControllerActionMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary actionArguments, object controller) => throw null; - public static string EventName; + public const string EventName = default; protected override sealed System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } public sealed class BeforeExceptionFilterOnException : Microsoft.AspNetCore.Mvc.Diagnostics.EventData @@ -1152,7 +1152,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforeExceptionFilterOnException(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ExceptionContext exceptionContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.ExceptionContext ExceptionContext { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1162,7 +1162,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforeResourceFilterOnResourceExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext resourceExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext ResourceExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1172,7 +1172,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforeResourceFilterOnResourceExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1182,7 +1182,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforeResourceFilterOnResourceExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext resourceExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1192,7 +1192,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforeResultFilterOnResultExecutedEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext resultExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext ResultExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1202,7 +1202,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforeResultFilterOnResultExecutingEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext ResultExecutingContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -1212,17 +1212,17 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforeResultFilterOnResultExecutionEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext resultExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext ResultExecutingContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - public abstract class EventData : System.Collections.Generic.IReadOnlyList>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection> + public abstract class EventData : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> { protected abstract int Count { get; } int System.Collections.Generic.IReadOnlyCollection>.Count { get => throw null; } protected EventData() => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1230,7 +1230,7 @@ namespace Microsoft public bool MoveNext() => throw null; void System.Collections.IEnumerator.Reset() => throw null; } - protected static string EventNamespace; + protected const string EventNamespace = default; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; System.Collections.Generic.KeyValuePair System.Collections.Generic.IReadOnlyList>.this[int index] { get => throw null; } @@ -1275,7 +1275,7 @@ namespace Microsoft } namespace Filters { - public abstract class ActionFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + public abstract class ActionFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter { protected ActionFilterAttribute() => throw null; public virtual void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) => throw null; @@ -1286,7 +1286,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task OnResultExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate next) => throw null; public int Order { get => throw null; set { } } } - public abstract class ExceptionFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + public abstract class ExceptionFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter, Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter { protected ExceptionFilterAttribute() => throw null; public virtual void OnException(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext context) => throw null; @@ -1313,7 +1313,7 @@ namespace Microsoft public static int Global; public static int Last; } - public abstract class ResultFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter + public abstract class ResultFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter { protected ResultFilterAttribute() => throw null; public virtual void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) => throw null; @@ -1366,7 +1366,7 @@ namespace Microsoft public bool TreatNullValueAsNoContent { get => throw null; set { } } public System.Threading.Tasks.Task WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; } - public abstract class InputFormatter : Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestFormatMetadataProvider + public abstract class InputFormatter : Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestFormatMetadataProvider, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter { public virtual bool CanRead(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) => throw null; protected virtual bool CanReadType(System.Type type) => throw null; @@ -1415,7 +1415,7 @@ namespace Microsoft public double Quality { get => throw null; } public override string ToString() => throw null; } - public abstract class OutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseTypeMetadataProvider + public abstract class OutputFormatter : Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseTypeMetadataProvider, Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter { public virtual bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) => throw null; protected virtual bool CanWriteType(System.Type type) => throw null; @@ -1478,25 +1478,25 @@ namespace Microsoft public FromBodyAttribute() => throw null; public Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior EmptyBodyBehavior { get => throw null; set { } } } - public class FromFormAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Http.Metadata.IFromFormMetadata + public class FromFormAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Http.Metadata.IFromFormMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider { public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } public FromFormAttribute() => throw null; public string Name { get => throw null; set { } } } - public class FromHeaderAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Http.Metadata.IFromHeaderMetadata + public class FromHeaderAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Http.Metadata.IFromHeaderMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider { public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } public FromHeaderAttribute() => throw null; public string Name { get => throw null; set { } } } - public class FromQueryAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Http.Metadata.IFromQueryMetadata + public class FromQueryAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Http.Metadata.IFromQueryMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider { public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } public FromQueryAttribute() => throw null; public string Name { get => throw null; set { } } } - public class FromRouteAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Http.Metadata.IFromRouteMetadata + public class FromRouteAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Http.Metadata.IFromRouteMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider { public Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; } public FromRouteAttribute() => throw null; @@ -1617,7 +1617,7 @@ namespace Microsoft } public class FileResultExecutorBase { - protected static int BufferSize; + protected const int BufferSize = default; protected static Microsoft.Extensions.Logging.ILogger CreateLogger(Microsoft.Extensions.Logging.ILoggerFactory factory) => throw null; public FileResultExecutorBase(Microsoft.Extensions.Logging.ILogger logger) => throw null; protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } @@ -1663,7 +1663,7 @@ namespace Microsoft public interface IApiBehaviorMetadata : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - public interface IClientErrorActionResult : Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + public interface IClientErrorActionResult : Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult { } public interface IClientErrorFactory @@ -1792,7 +1792,7 @@ namespace Microsoft public JsonOptions() => throw null; public System.Text.Json.JsonSerializerOptions JsonSerializerOptions { get => throw null; } } - public class JsonResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + public class JsonResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult { public string ContentType { get => throw null; set { } } public JsonResult(object value) => throw null; @@ -1821,7 +1821,7 @@ namespace Microsoft public bool IsReusable { get => throw null; } public int Order { get => throw null; set { } } } - public class ModelBinderAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata + public class ModelBinderAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider { public System.Type BinderType { get => throw null; set { } } public virtual Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get => throw null; set { } } @@ -2086,7 +2086,7 @@ namespace Microsoft { public BindRequiredAttribute() : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior)) => throw null; } - public class CompositeValueProvider : System.Collections.ObjectModel.Collection, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider + public class CompositeValueProvider : System.Collections.ObjectModel.Collection, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider { public virtual bool ContainsPrefix(string prefix) => throw null; public static System.Threading.Tasks.Task CreateAsync(Microsoft.AspNetCore.Mvc.ControllerContext controllerContext) => throw null; @@ -2197,7 +2197,7 @@ namespace Microsoft public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; public JQueryQueryStringValueProviderFactory() => throw null; } - public abstract class JQueryValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider + public abstract class JQueryValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider { public override bool ContainsPrefix(string prefix) => throw null; protected JQueryValueProvider(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource, System.Collections.Generic.IDictionary values, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => throw null; @@ -2397,7 +2397,7 @@ namespace Microsoft { void CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context); } - public interface ICompositeMetadataDetailsProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider + public interface ICompositeMetadataDetailsProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider { } public interface IDisplayMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider @@ -2532,7 +2532,7 @@ namespace Microsoft public System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context) => throw null; public RouteValueProviderFactory() => throw null; } - public class SuppressChildValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider + public class SuppressChildValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider { public void CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context) => throw null; public SuppressChildValidationMetadataProvider(System.Type type) => throw null; @@ -2696,7 +2696,7 @@ namespace Microsoft { public NotFoundResult() : base(default(int)) => throw null; } - public class ObjectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + public class ObjectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult { public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection ContentTypes { get => throw null; set { } } public ObjectResult(object value) => throw null; @@ -2722,7 +2722,7 @@ namespace Microsoft public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; public string FileName { get => throw null; set { } } } - public class ProducesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider + public class ProducesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter { public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection ContentTypes { get => throw null; set { } } public ProducesAttribute(System.Type type) => throw null; @@ -2756,7 +2756,7 @@ namespace Microsoft public int StatusCode { get => throw null; set { } } public System.Type Type { get => throw null; set { } } } - public class RedirectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + public class RedirectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult { public RedirectResult(string url) => throw null; public RedirectResult(string url, bool permanent) => throw null; @@ -2767,7 +2767,7 @@ namespace Microsoft public string Url { get => throw null; set { } } public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } } - public class RedirectToActionResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + public class RedirectToActionResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult { public string ActionName { get => throw null; set { } } public string ControllerName { get => throw null; set { } } @@ -2784,7 +2784,7 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } } - public class RedirectToPageResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + public class RedirectToPageResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult { public RedirectToPageResult(string pageName) => throw null; public RedirectToPageResult(string pageName, string pageHandler) => throw null; @@ -2806,7 +2806,7 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set { } } public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set { } } } - public class RedirectToRouteResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + public class RedirectToRouteResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult { public RedirectToRouteResult(object routeValues) => throw null; public RedirectToRouteResult(string routeName, object routeValues) => throw null; @@ -2922,7 +2922,7 @@ namespace Microsoft { Microsoft.AspNetCore.Mvc.IUrlHelper GetUrlHelper(Microsoft.AspNetCore.Mvc.ActionContext context); } - public class KnownRouteValueConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + public class KnownRouteValueConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public KnownRouteValueConstraint(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; @@ -3000,7 +3000,7 @@ namespace Microsoft public override System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; public Microsoft.AspNetCore.Authentication.AuthenticationProperties Properties { get => throw null; set { } } } - public class StatusCodeResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + public class StatusCodeResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult { public StatusCodeResult(int statusCode) => throw null; public override void ExecuteResult(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs index 8436e1dea12..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `Microsoft.AspNetCore.Mvc.Formatters.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs index 75b355b4ccf..1c7ac67c864 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs @@ -18,7 +18,7 @@ namespace Microsoft public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public class DelegatingEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public class DelegatingEnumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public DelegatingEnumerator(System.Collections.Generic.IEnumerator inner, Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider wrapperProvider) => throw null; public TWrapped Current { get => throw null; } @@ -57,7 +57,7 @@ namespace Microsoft System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public class ProblemDetailsWrapper : System.Xml.Serialization.IXmlSerializable, Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable + public class ProblemDetailsWrapper : Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable, System.Xml.Serialization.IXmlSerializable { public ProblemDetailsWrapper() => throw null; public ProblemDetailsWrapper(Microsoft.AspNetCore.Mvc.ProblemDetails problemDetails) => throw null; @@ -68,7 +68,7 @@ namespace Microsoft object Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable.Unwrap(System.Type declaredType) => throw null; public virtual void WriteXml(System.Xml.XmlWriter writer) => throw null; } - public sealed class SerializableErrorWrapper : System.Xml.Serialization.IXmlSerializable, Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable + public sealed class SerializableErrorWrapper : Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable, System.Xml.Serialization.IXmlSerializable { public SerializableErrorWrapper() => throw null; public SerializableErrorWrapper(Microsoft.AspNetCore.Mvc.SerializableError error) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Localization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Localization.cs index eeb8ed17261..dc92d5c3f3e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Localization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Localization.cs @@ -69,7 +69,7 @@ namespace Microsoft public string Value { get => throw null; } public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - public class ViewLocalizer : Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer, Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer, Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware + public class ViewLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer, Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware, Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer { public void Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; public ViewLocalizer(Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory localizerFactory, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs index 9e6294d57b7..f5eed35520f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs @@ -38,7 +38,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterViewPageEventData(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public Microsoft.AspNetCore.Mvc.Razor.IRazorPage Page { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -49,7 +49,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforeViewPageEventData(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } public Microsoft.AspNetCore.Mvc.Razor.IRazorPage Page { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.RazorPages.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.RazorPages.cs index eb54f317cb7..cde917a0dde 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.RazorPages.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.RazorPages.cs @@ -118,7 +118,7 @@ namespace Microsoft public System.Collections.Generic.IList Parameters { get => throw null; } public System.Collections.Generic.IDictionary Properties { get => throw null; } } - public class PageParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel + public class PageParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel { public PageParameterModel(System.Reflection.ParameterInfo parameterInfo, System.Collections.Generic.IReadOnlyList attributes) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; public PageParameterModel(Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel other) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; @@ -160,7 +160,7 @@ namespace Microsoft public PageRouteModelProviderContext() => throw null; public System.Collections.Generic.IList RouteModels { get => throw null; } } - public class PageRouteTransformerConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention, Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention + public class PageRouteTransformerConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention, Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention { public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel model) => throw null; public PageRouteTransformerConvention(Microsoft.AspNetCore.Routing.IOutboundParameterTransformer parameterTransformer) => throw null; @@ -175,7 +175,7 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyDictionary Arguments { get => throw null; } protected override int Count { get => throw null; } public AfterHandlerMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethodDescriptor, object instance, Microsoft.AspNetCore.Mvc.IActionResult result) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor HandlerMethodDescriptor { get => throw null; } public object Instance { get => throw null; } public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } @@ -186,7 +186,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterPageFilterOnPageHandlerExecutedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext HandlerExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -196,7 +196,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterPageFilterOnPageHandlerExecutingEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext HandlerExecutingContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -206,7 +206,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterPageFilterOnPageHandlerExecutionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext HandlerExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -216,7 +216,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterPageFilterOnPageHandlerSelectedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext HandlerSelectedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -226,7 +226,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterPageFilterOnPageHandlerSelectionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext HandlerSelectedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -237,7 +237,7 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyDictionary Arguments { get => throw null; } protected override int Count { get => throw null; } public BeforeHandlerMethodEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IReadOnlyDictionary arguments, Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor handlerMethodDescriptor, object instance) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor HandlerMethodDescriptor { get => throw null; } public object Instance { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -247,7 +247,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforePageFilterOnPageHandlerExecutedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext handlerExecutedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext HandlerExecutedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -257,7 +257,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforePageFilterOnPageHandlerExecutingEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutingContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext HandlerExecutingContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -267,7 +267,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforePageFilterOnPageHandlerExecutionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext handlerExecutionContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext HandlerExecutionContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -277,7 +277,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforePageFilterOnPageHandlerSelectedEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IPageFilter filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext HandlerSelectedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -287,7 +287,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforePageFilterOnPageHandlerSelectionEventData(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext handlerSelectedContext, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter filter) => throw null; - public static string EventName; + public const string EventName = default; public Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter Filter { get => throw null; } public Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext HandlerSelectedContext { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs index 98bbf1e83d8..02e9b1ce85e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs @@ -13,7 +13,7 @@ namespace Microsoft public bool IsReusable { get => throw null; } public int Order { get => throw null; set { } } } - public abstract class Controller : Microsoft.AspNetCore.Mvc.ControllerBase, Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, System.IDisposable + public abstract class Controller : Microsoft.AspNetCore.Mvc.ControllerBase, Microsoft.AspNetCore.Mvc.Filters.IActionFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, System.IDisposable, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { protected Controller() => throw null; public void Dispose() => throw null; @@ -51,7 +51,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public AfterViewComponentEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.IViewComponentResult viewComponentResult, object viewComponent) => throw null; - public static string EventName; + public const string EventName = default; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public object ViewComponent { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } @@ -61,7 +61,7 @@ namespace Microsoft { protected override int Count { get => throw null; } public AfterViewEventData(Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; - public static string EventName; + public const string EventName = default; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } @@ -71,7 +71,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public BeforeViewComponentEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, object viewComponent) => throw null; - public static string EventName; + public const string EventName = default; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public object ViewComponent { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } @@ -80,7 +80,7 @@ namespace Microsoft { protected override int Count { get => throw null; } public BeforeViewEventData(Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; - public static string EventName; + public const string EventName = default; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } @@ -90,7 +90,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public ViewComponentAfterViewExecuteEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) => throw null; - public static string EventName; + public const string EventName = default; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } @@ -100,7 +100,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } protected override int Count { get => throw null; } public ViewComponentBeforeViewExecuteEventData(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor, Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext viewComponentContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) => throw null; - public static string EventName; + public const string EventName = default; protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewEngines.IView View { get => throw null; } public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } @@ -110,7 +110,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } protected override int Count { get => throw null; } public ViewFoundEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, bool isMainPage, Microsoft.AspNetCore.Mvc.ActionResult result, string viewName, Microsoft.AspNetCore.Mvc.ViewEngines.IView view) => throw null; - public static string EventName; + public const string EventName = default; public bool IsMainPage { get => throw null; } public Microsoft.AspNetCore.Mvc.ActionResult Result { get => throw null; } protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } @@ -122,7 +122,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } protected override int Count { get => throw null; } public ViewNotFoundEventData(Microsoft.AspNetCore.Mvc.ActionContext actionContext, bool isMainPage, Microsoft.AspNetCore.Mvc.ActionResult result, string viewName, System.Collections.Generic.IEnumerable searchedLocations) => throw null; - public static string EventName; + public const string EventName = default; public bool IsMainPage { get => throw null; } public Microsoft.AspNetCore.Mvc.ActionResult Result { get => throw null; } public System.Collections.Generic.IEnumerable SearchedLocations { get => throw null; } @@ -172,7 +172,7 @@ namespace Microsoft public string PageHandler { get => throw null; set { } } public string PageName { get => throw null; set { } } } - public class PartialViewResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + public class PartialViewResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult { public string ContentType { get => throw null; set { } } public PartialViewResult() => throw null; @@ -608,7 +608,7 @@ namespace Microsoft public System.IO.TextWriter Writer { get => throw null; set { } } } } - public class SkipStatusCodePagesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Http.Metadata.ISkipStatusCodePagesMetadata + public class SkipStatusCodePagesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter, Microsoft.AspNetCore.Http.Metadata.ISkipStatusCodePagesMetadata { public SkipStatusCodePagesAttribute() => throw null; public void OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext context) => throw null; @@ -653,7 +653,7 @@ namespace Microsoft public ViewComponentAttribute() => throw null; public string Name { get => throw null; set { } } } - public class ViewComponentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + public class ViewComponentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult { public object Arguments { get => throw null; set { } } public string ContentType { get => throw null; set { } } @@ -856,7 +856,7 @@ namespace Microsoft { public static Microsoft.AspNetCore.Html.IHtmlContent GetHtml(this Microsoft.AspNetCore.Antiforgery.IAntiforgery antiforgery, Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - public class AttributeDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection> + public class AttributeDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(string key, string value) => throw null; @@ -866,7 +866,7 @@ namespace Microsoft public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } public AttributeDictionary() => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public Enumerator(Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary attributes) => throw null; public System.Collections.Generic.KeyValuePair Current { get => throw null; } @@ -1141,7 +1141,7 @@ namespace Microsoft Radio = 3, Text = 4, } - public interface ITempDataDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public interface ITempDataDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { void Keep(); void Keep(string key); @@ -1230,7 +1230,7 @@ namespace Microsoft public StringHtmlContent(string input) => throw null; public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - public class TempDataDictionary : Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class TempDataDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary { public void Add(string key, object value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; @@ -1292,7 +1292,7 @@ namespace Microsoft { public ViewContextAttribute() => throw null; } - public class ViewDataDictionary : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class ViewDataDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { public void Add(string key, object value) => throw null; public void Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -1380,7 +1380,7 @@ namespace Microsoft protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } } } - public class ViewResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + public class ViewResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult { public string ContentType { get => throw null; set { } } public ViewResult() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.cs index 0f28ce7578b..1765573540a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.cs @@ -48,7 +48,7 @@ namespace Microsoft public string Attributes { get => throw null; set { } } public HtmlTargetElementAttribute() => throw null; public HtmlTargetElementAttribute(string tag) => throw null; - public static string ElementCatchAllTarget; + public const string ElementCatchAllTarget = default; public string ParentTag { get => throw null; set { } } public string Tag { get => throw null; } public Microsoft.AspNetCore.Razor.TagHelpers.TagStructure TagStructure { get => throw null; set { } } @@ -102,7 +102,7 @@ namespace Microsoft public virtual void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; public virtual System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; } - public class TagHelperAttribute : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent + public class TagHelperAttribute : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentContainer { public void CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; public TagHelperAttribute(string name) => throw null; @@ -117,7 +117,7 @@ namespace Microsoft public Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle ValueStyle { get => throw null; } public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - public class TagHelperAttributeList : Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList, System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + public class TagHelperAttributeList : Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList { public void Add(string name, object value) => throw null; public void Add(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; @@ -142,7 +142,7 @@ namespace Microsoft public virtual void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; public virtual System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; } - public abstract class TagHelperContent : Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent + public abstract class TagHelperContent : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContentContainer { public abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent Append(string unencoded); Microsoft.AspNetCore.Html.IHtmlContentBuilder Microsoft.AspNetCore.Html.IHtmlContentBuilder.Append(string unencoded) => throw null; @@ -178,7 +178,7 @@ namespace Microsoft public string TagName { get => throw null; } public string UniqueId { get => throw null; } } - public class TagHelperOutput : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent + public class TagHelperOutput : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentContainer { public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList Attributes { get => throw null; } public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent Content { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs index 800973d9788..77dfff1d233 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs @@ -119,68 +119,68 @@ namespace Microsoft { public AlphaRouteConstraint() : base(default(System.Text.RegularExpressions.Regex)) => throw null; } - public class BoolRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class BoolRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public BoolRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class CompositeRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class CompositeRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public System.Collections.Generic.IEnumerable Constraints { get => throw null; } public CompositeRouteConstraint(System.Collections.Generic.IEnumerable constraints) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class DateTimeRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class DateTimeRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public DateTimeRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class DecimalRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class DecimalRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public DecimalRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class DoubleRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class DoubleRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public DoubleRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class FileNameRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class FileNameRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public FileNameRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class FloatRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class FloatRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public FloatRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class GuidRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class GuidRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public GuidRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class HttpMethodRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + public class HttpMethodRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public System.Collections.Generic.IList AllowedMethods { get => throw null; } public HttpMethodRouteConstraint(params string[] allowedMethods) => throw null; public virtual bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; } - public class IntRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class IntRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public IntRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class LengthRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class LengthRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public LengthRouteConstraint(int length) => throw null; public LengthRouteConstraint(int minLength, int maxLength) => throw null; @@ -189,53 +189,53 @@ namespace Microsoft public int MaxLength { get => throw null; } public int MinLength { get => throw null; } } - public class LongRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class LongRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public LongRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class MaxLengthRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class MaxLengthRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public MaxLengthRouteConstraint(int maxLength) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; public int MaxLength { get => throw null; } } - public class MaxRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class MaxRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public MaxRouteConstraint(long max) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; public long Max { get => throw null; } } - public class MinLengthRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class MinLengthRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public MinLengthRouteConstraint(int minLength) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; public int MinLength { get => throw null; } } - public class MinRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class MinRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public MinRouteConstraint(long min) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; public long Min { get => throw null; } } - public class NonFileNameRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class NonFileNameRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public NonFileNameRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class OptionalRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + public class OptionalRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public OptionalRouteConstraint(Microsoft.AspNetCore.Routing.IRouteConstraint innerConstraint) => throw null; public Microsoft.AspNetCore.Routing.IRouteConstraint InnerConstraint { get => throw null; } public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; } - public class RangeRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class RangeRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public RangeRouteConstraint(long min, long max) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; @@ -247,7 +247,7 @@ namespace Microsoft { public RegexInlineRouteConstraint(string regexPattern) : base(default(System.Text.RegularExpressions.Regex)) => throw null; } - public class RegexRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class RegexRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public System.Text.RegularExpressions.Regex Constraint { get => throw null; } public RegexRouteConstraint(System.Text.RegularExpressions.Regex regex) => throw null; @@ -255,12 +255,12 @@ namespace Microsoft public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy.MatchesLiteral(string parameterName, string literal) => throw null; } - public class RequiredRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + public class RequiredRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public RequiredRouteConstraint() => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; } - public class StringRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy + public class StringRouteConstraint : Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy, Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { public StringRouteConstraint(string value) => throw null; public bool Match(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.IRouter route, string routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) => throw null; @@ -479,7 +479,7 @@ namespace Microsoft protected EndpointSelector() => throw null; public abstract System.Threading.Tasks.Task SelectAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet candidates); } - public sealed class HostMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy + public sealed class HostMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy { bool Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; @@ -490,7 +490,7 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList GetEdges(System.Collections.Generic.IReadOnlyList endpoints) => throw null; public override int Order { get => throw null; } } - public sealed class HttpMethodMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy + public sealed class HttpMethodMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy { bool Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; bool Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; @@ -684,7 +684,7 @@ namespace Microsoft protected override Microsoft.AspNetCore.Routing.VirtualPathData OnVirtualPathGenerated(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; public string RouteTemplate { get => throw null; } } - public abstract class RouteBase : Microsoft.AspNetCore.Routing.IRouter, Microsoft.AspNetCore.Routing.INamedRouter + public abstract class RouteBase : Microsoft.AspNetCore.Routing.INamedRouter, Microsoft.AspNetCore.Routing.IRouter { protected virtual Microsoft.AspNetCore.Routing.IInlineConstraintResolver ConstraintResolver { get => throw null; set { } } public virtual System.Collections.Generic.IDictionary Constraints { get => throw null; set { } } @@ -750,7 +750,7 @@ namespace Microsoft public int Order { get => throw null; set { } } public Microsoft.AspNetCore.Routing.Patterns.RoutePattern RoutePattern { get => throw null; set { } } } - public sealed class RouteGroupBuilder : Microsoft.AspNetCore.Routing.IEndpointRouteBuilder, Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + public sealed class RouteGroupBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder, Microsoft.AspNetCore.Routing.IEndpointRouteBuilder { void Microsoft.AspNetCore.Builder.IEndpointConventionBuilder.Add(System.Action convention) => throw null; Microsoft.AspNetCore.Builder.IApplicationBuilder Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.CreateApplicationBuilder() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.HttpSys.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.HttpSys.cs index 89e93f1a6b7..6cda04a1bf4 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.HttpSys.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.HttpSys.cs @@ -52,7 +52,7 @@ namespace Microsoft } public static class HttpSysDefaults { - public static string AuthenticationScheme; + public const string AuthenticationScheme = default; } public class HttpSysException : System.ComponentModel.Win32Exception { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IIS.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IIS.cs index 06c0700496c..198e692e315 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IIS.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IIS.cs @@ -73,7 +73,7 @@ namespace Microsoft } public class IISServerDefaults { - public static string AuthenticationScheme; + public const string AuthenticationScheme = default; public IISServerDefaults() => throw null; } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IISIntegration.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IISIntegration.cs index e5721275127..a5d107cd3d4 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IISIntegration.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.IISIntegration.cs @@ -27,10 +27,10 @@ namespace Microsoft { public class IISDefaults { - public static string AuthenticationScheme; + public const string AuthenticationScheme = default; public IISDefaults() => throw null; - public static string Negotiate; - public static string Ntlm; + public const string Negotiate = default; + public const string Ntlm = default; } public class IISHostingStartup : Microsoft.AspNetCore.Hosting.IHostingStartup { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Core.cs index 2514cedba10..f4fba9bc3df 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Core.cs @@ -168,7 +168,7 @@ namespace Microsoft } } } - public class KestrelServer : Microsoft.AspNetCore.Hosting.Server.IServer, System.IDisposable + public class KestrelServer : System.IDisposable, Microsoft.AspNetCore.Hosting.Server.IServer { public KestrelServer(Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.Connections.IConnectionListenerFactory transportFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public void Dispose() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs index d008cbd0a90..7487185da6a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs @@ -89,13 +89,13 @@ namespace Microsoft } public static class HubProtocolConstants { - public static int CancelInvocationMessageType; - public static int CloseMessageType; - public static int CompletionMessageType; - public static int InvocationMessageType; - public static int PingMessageType; - public static int StreamInvocationMessageType; - public static int StreamItemMessageType; + public const int CancelInvocationMessageType = default; + public const int CloseMessageType = default; + public const int CompletionMessageType = default; + public const int InvocationMessageType = default; + public const int PingMessageType = default; + public const int StreamInvocationMessageType = default; + public const int StreamItemMessageType = default; } public static partial class HubProtocolExtensions { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Core.cs index de43a674da1..0691c592da0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Core.cs @@ -185,7 +185,7 @@ namespace Microsoft public void Add(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) => throw null; public int Count { get => throw null; } public HubConnectionStore() => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public Enumerator(Microsoft.AspNetCore.SignalR.HubConnectionStore hubConnectionList) => throw null; public Microsoft.AspNetCore.SignalR.HubConnectionContext Current { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.cs index 23935f02f58..74fa88b4640 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.cs @@ -6,7 +6,7 @@ namespace Microsoft { namespace Builder { - public sealed class HubEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + public sealed class HubEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder { public void Add(System.Action convention) => throw null; public void Finally(System.Action finalConvention) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs index 65605e9e4d9..91f93e86470 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs @@ -127,9 +127,9 @@ namespace Microsoft public FormReader(System.IO.Stream stream) => throw null; public FormReader(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; public FormReader(System.IO.Stream stream, System.Text.Encoding encoding, System.Buffers.ArrayPool charPool) => throw null; - public static int DefaultKeyLengthLimit; - public static int DefaultValueCountLimit; - public static int DefaultValueLengthLimit; + public const int DefaultKeyLengthLimit = default; + public const int DefaultValueCountLimit = default; + public const int DefaultValueLengthLimit = default; public void Dispose() => throw null; public int KeyLengthLimit { get => throw null; set { } } public System.Collections.Generic.Dictionary ReadForm() => throw null; @@ -192,8 +192,8 @@ namespace Microsoft public long? BodyLengthLimit { get => throw null; set { } } public MultipartReader(string boundary, System.IO.Stream stream) => throw null; public MultipartReader(string boundary, System.IO.Stream stream, int bufferSize) => throw null; - public static int DefaultHeadersCountLimit; - public static int DefaultHeadersLengthLimit; + public const int DefaultHeadersCountLimit = default; + public const int DefaultHeadersLengthLimit = default; public int HeadersCountLimit { get => throw null; set { } } public int HeadersLengthLimit { get => throw null; set { } } public System.Threading.Tasks.Task ReadNextSectionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.cs index 07b15f99f01..e6f9d3bc609 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.cs @@ -18,7 +18,7 @@ namespace Microsoft public Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory) => throw null; public Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(System.Func> factory) => throw null; } - public sealed class ConfigureWebHostBuilder : Microsoft.AspNetCore.Hosting.IWebHostBuilder, Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup + public sealed class ConfigureWebHostBuilder : Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup, Microsoft.AspNetCore.Hosting.IWebHostBuilder { Microsoft.AspNetCore.Hosting.IWebHost Microsoft.AspNetCore.Hosting.IWebHostBuilder.Build() => throw null; Microsoft.AspNetCore.Hosting.IWebHostBuilder Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup.Configure(System.Action configure) => throw null; @@ -31,7 +31,7 @@ namespace Microsoft Microsoft.AspNetCore.Hosting.IWebHostBuilder Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup.UseStartup(System.Type startupType) => throw null; Microsoft.AspNetCore.Hosting.IWebHostBuilder Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup.UseStartup(System.Func startupFactory) => throw null; } - public sealed class WebApplication : Microsoft.Extensions.Hosting.IHost, System.IDisposable, Microsoft.AspNetCore.Builder.IApplicationBuilder, Microsoft.AspNetCore.Routing.IEndpointRouteBuilder, System.IAsyncDisposable + public sealed class WebApplication : Microsoft.AspNetCore.Builder.IApplicationBuilder, System.IAsyncDisposable, System.IDisposable, Microsoft.AspNetCore.Routing.IEndpointRouteBuilder, Microsoft.Extensions.Hosting.IHost { System.IServiceProvider Microsoft.AspNetCore.Builder.IApplicationBuilder.ApplicationServices { get => throw null; set { } } Microsoft.AspNetCore.Http.RequestDelegate Microsoft.AspNetCore.Builder.IApplicationBuilder.Build() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Memory.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Memory.cs index 3e39b4a2aaa..f1e62cfc404 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Memory.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Caching.Memory.cs @@ -24,7 +24,7 @@ namespace Microsoft } namespace Memory { - public class MemoryCache : Microsoft.Extensions.Caching.Memory.IMemoryCache, System.IDisposable + public class MemoryCache : System.IDisposable, Microsoft.Extensions.Caching.Memory.IMemoryCache { public void Clear() => throw null; public void Compact(double percentage) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.Abstractions.cs index 42ec0bbdb52..64878c37269 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.DependencyInjection.Abstractions.cs @@ -18,7 +18,7 @@ namespace Microsoft { public ActivatorUtilitiesConstructorAttribute() => throw null; } - public struct AsyncServiceScope : Microsoft.Extensions.DependencyInjection.IServiceScope, System.IDisposable, System.IAsyncDisposable + public struct AsyncServiceScope : System.IAsyncDisposable, System.IDisposable, Microsoft.Extensions.DependencyInjection.IServiceScope { public AsyncServiceScope(Microsoft.Extensions.DependencyInjection.IServiceScope serviceScope) => throw null; public void Dispose() => throw null; @@ -84,7 +84,7 @@ namespace Microsoft object GetRequiredService(System.Type serviceType); } public delegate object ObjectFactory(System.IServiceProvider serviceProvider, object[] arguments); - public class ServiceCollection : Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList + public class ServiceCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, Microsoft.Extensions.DependencyInjection.IServiceCollection { void System.Collections.Generic.ICollection.Add(Microsoft.Extensions.DependencyInjection.ServiceDescriptor item) => throw null; public void Clear() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs index e5363a8a6b2..f3971d650d3 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs @@ -8,7 +8,7 @@ namespace Microsoft { namespace Features { - public class FeatureCollection : Microsoft.AspNetCore.Http.Features.IFeatureCollection, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class FeatureCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, Microsoft.AspNetCore.Http.Features.IFeatureCollection { public FeatureCollection() => throw null; public FeatureCollection(int initialCapacity) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Physical.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Physical.cs index b4c25348be6..7cd793e5873 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Physical.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileProviders.Physical.cs @@ -74,7 +74,7 @@ namespace Microsoft System.IDisposable Microsoft.Extensions.Primitives.IChangeToken.RegisterChangeCallback(System.Action callback, object state) => throw null; } } - public class PhysicalFileProvider : Microsoft.Extensions.FileProviders.IFileProvider, System.IDisposable + public class PhysicalFileProvider : System.IDisposable, Microsoft.Extensions.FileProviders.IFileProvider { public PhysicalFileProvider(string root) => throw null; public PhysicalFileProvider(string root, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs index faff556c012..81f57df6dfc 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs @@ -14,7 +14,7 @@ namespace Microsoft } namespace Hosting { - public abstract class BackgroundService : Microsoft.Extensions.Hosting.IHostedService, System.IDisposable + public abstract class BackgroundService : System.IDisposable, Microsoft.Extensions.Hosting.IHostedService { protected BackgroundService() => throw null; public virtual void Dispose() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.cs index d4e20dfa358..160d318324a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.cs @@ -101,7 +101,7 @@ namespace Microsoft public void NotifyStopped() => throw null; public void StopApplication() => throw null; } - public class ConsoleLifetime : Microsoft.Extensions.Hosting.IHostLifetime, System.IDisposable + public class ConsoleLifetime : System.IDisposable, Microsoft.Extensions.Hosting.IHostLifetime { public ConsoleLifetime(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Hosting.IHostEnvironment environment, Microsoft.Extensions.Hosting.IHostApplicationLifetime applicationLifetime, Microsoft.Extensions.Options.IOptions hostOptions) => throw null; public ConsoleLifetime(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Hosting.IHostEnvironment environment, Microsoft.Extensions.Hosting.IHostApplicationLifetime applicationLifetime, Microsoft.Extensions.Options.IOptions hostOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs index 8c05a35db0f..95a493e54e7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs @@ -143,18 +143,18 @@ namespace Microsoft string Protect(string data); string Unprotect(string data); } - public interface IProtectedUserStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IProtectedUserStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { } - public interface IQueryableRoleStore : Microsoft.AspNetCore.Identity.IRoleStore, System.IDisposable where TRole : class + public interface IQueryableRoleStore : System.IDisposable, Microsoft.AspNetCore.Identity.IRoleStore where TRole : class { System.Linq.IQueryable Roles { get; } } - public interface IQueryableUserStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IQueryableUserStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Linq.IQueryable Users { get; } } - public interface IRoleClaimStore : Microsoft.AspNetCore.Identity.IRoleStore, System.IDisposable where TRole : class + public interface IRoleClaimStore : System.IDisposable, Microsoft.AspNetCore.Identity.IRoleStore where TRole : class { System.Threading.Tasks.Task AddClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); System.Threading.Tasks.Task> GetClaimsAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); @@ -177,13 +177,13 @@ namespace Microsoft { System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.RoleManager manager, TRole role); } - public interface IUserAuthenticationTokenStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserAuthenticationTokenStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task GetTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task RemoveTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task SetTokenAsync(TUser user, string loginProvider, string name, string value, System.Threading.CancellationToken cancellationToken); } - public interface IUserAuthenticatorKeyStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserAuthenticatorKeyStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task GetAuthenticatorKeyAsync(TUser user, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task SetAuthenticatorKeyAsync(TUser user, string key, System.Threading.CancellationToken cancellationToken); @@ -192,7 +192,7 @@ namespace Microsoft { System.Threading.Tasks.Task CreateAsync(TUser user); } - public interface IUserClaimStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserClaimStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task> GetClaimsAsync(TUser user, System.Threading.CancellationToken cancellationToken); @@ -204,7 +204,7 @@ namespace Microsoft { System.Threading.Tasks.Task IsConfirmedAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); } - public interface IUserEmailStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserEmailStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task FindByEmailAsync(string normalizedEmail, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task GetEmailAsync(TUser user, System.Threading.CancellationToken cancellationToken); @@ -214,7 +214,7 @@ namespace Microsoft System.Threading.Tasks.Task SetEmailConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task SetNormalizedEmailAsync(TUser user, string normalizedEmail, System.Threading.CancellationToken cancellationToken); } - public interface IUserLockoutStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserLockoutStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task GetAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task GetLockoutEnabledAsync(TUser user, System.Threading.CancellationToken cancellationToken); @@ -224,27 +224,27 @@ namespace Microsoft System.Threading.Tasks.Task SetLockoutEnabledAsync(TUser user, bool enabled, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task SetLockoutEndDateAsync(TUser user, System.DateTimeOffset? lockoutEnd, System.Threading.CancellationToken cancellationToken); } - public interface IUserLoginStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserLoginStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task FindByLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task> GetLoginsAsync(TUser user, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task RemoveLoginAsync(TUser user, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken); } - public interface IUserPasswordStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserPasswordStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task GetPasswordHashAsync(TUser user, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task HasPasswordAsync(TUser user, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task SetPasswordHashAsync(TUser user, string passwordHash, System.Threading.CancellationToken cancellationToken); } - public interface IUserPhoneNumberStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserPhoneNumberStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task GetPhoneNumberAsync(TUser user, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task GetPhoneNumberConfirmedAsync(TUser user, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task SetPhoneNumberAsync(TUser user, string phoneNumber, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task SetPhoneNumberConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken); } - public interface IUserRoleStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserRoleStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task AddToRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task> GetRolesAsync(TUser user, System.Threading.CancellationToken cancellationToken); @@ -252,7 +252,7 @@ namespace Microsoft System.Threading.Tasks.Task IsInRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task RemoveFromRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken); } - public interface IUserSecurityStampStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserSecurityStampStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task GetSecurityStampAsync(TUser user, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task SetSecurityStampAsync(TUser user, string stamp, System.Threading.CancellationToken cancellationToken); @@ -270,13 +270,13 @@ namespace Microsoft System.Threading.Tasks.Task SetUserNameAsync(TUser user, string userName, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken); } - public interface IUserTwoFactorRecoveryCodeStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserTwoFactorRecoveryCodeStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task CountCodesAsync(TUser user, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task RedeemCodeAsync(TUser user, string code, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task ReplaceCodesAsync(TUser user, System.Collections.Generic.IEnumerable recoveryCodes, System.Threading.CancellationToken cancellationToken); } - public interface IUserTwoFactorStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class + public interface IUserTwoFactorStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class { System.Threading.Tasks.Task GetTwoFactorEnabledAsync(TUser user, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task SetTwoFactorEnabledAsync(TUser user, bool enabled, System.Threading.CancellationToken cancellationToken); @@ -488,10 +488,10 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ChangeEmailAsync(TUser user, string newEmail, string token) => throw null; public virtual System.Threading.Tasks.Task ChangePasswordAsync(TUser user, string currentPassword, string newPassword) => throw null; public virtual System.Threading.Tasks.Task ChangePhoneNumberAsync(TUser user, string phoneNumber, string token) => throw null; - public static string ChangePhoneNumberTokenPurpose; + public const string ChangePhoneNumberTokenPurpose = default; public virtual System.Threading.Tasks.Task CheckPasswordAsync(TUser user, string password) => throw null; public virtual System.Threading.Tasks.Task ConfirmEmailAsync(TUser user, string token) => throw null; - public static string ConfirmEmailTokenPurpose; + public const string ConfirmEmailTokenPurpose = default; public virtual System.Threading.Tasks.Task CountRecoveryCodesAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task CreateAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task CreateAsync(TUser user, string password) => throw null; @@ -561,7 +561,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ResetAccessFailedCountAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task ResetAuthenticatorKeyAsync(TUser user) => throw null; public virtual System.Threading.Tasks.Task ResetPasswordAsync(TUser user, string token, string newPassword) => throw null; - public static string ResetPasswordTokenPurpose; + public const string ResetPasswordTokenPurpose = default; public virtual System.Threading.Tasks.Task SetAuthenticationTokenAsync(TUser user, string loginProvider, string tokenName, string tokenValue) => throw null; public virtual System.Threading.Tasks.Task SetEmailAsync(TUser user, string email) => throw null; public virtual System.Threading.Tasks.Task SetLockoutEnabledAsync(TUser user, bool enabled) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Stores.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Stores.cs index ee4f06046b8..6d9a61e5997 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Stores.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Stores.cs @@ -89,7 +89,7 @@ namespace Microsoft public virtual TKey UserId { get => throw null; set { } } public virtual string Value { get => throw null; set { } } } - public abstract class RoleStoreBase : Microsoft.AspNetCore.Identity.IQueryableRoleStore, Microsoft.AspNetCore.Identity.IRoleStore, System.IDisposable, Microsoft.AspNetCore.Identity.IRoleClaimStore where TRole : Microsoft.AspNetCore.Identity.IdentityRole where TKey : System.IEquatable where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole, new() where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim, new() + public abstract class RoleStoreBase : System.IDisposable, Microsoft.AspNetCore.Identity.IQueryableRoleStore, Microsoft.AspNetCore.Identity.IRoleClaimStore, Microsoft.AspNetCore.Identity.IRoleStore where TRole : Microsoft.AspNetCore.Identity.IdentityRole where TKey : System.IEquatable where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole, new() where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim, new() { public abstract System.Threading.Tasks.Task AddClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public virtual TKey ConvertIdFromString(string id) => throw null; @@ -113,7 +113,7 @@ namespace Microsoft protected void ThrowIfDisposed() => throw null; public abstract System.Threading.Tasks.Task UpdateAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - public abstract class UserStoreBase : Microsoft.AspNetCore.Identity.IUserLoginStore, Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable, Microsoft.AspNetCore.Identity.IUserClaimStore, Microsoft.AspNetCore.Identity.IUserPasswordStore, Microsoft.AspNetCore.Identity.IUserSecurityStampStore, Microsoft.AspNetCore.Identity.IUserEmailStore, Microsoft.AspNetCore.Identity.IUserLockoutStore, Microsoft.AspNetCore.Identity.IUserPhoneNumberStore, Microsoft.AspNetCore.Identity.IQueryableUserStore, Microsoft.AspNetCore.Identity.IUserTwoFactorStore, Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore, Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore, Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore where TUser : Microsoft.AspNetCore.Identity.IdentityUser where TKey : System.IEquatable where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken, new() + public abstract class UserStoreBase : System.IDisposable, Microsoft.AspNetCore.Identity.IQueryableUserStore, Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore, Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore, Microsoft.AspNetCore.Identity.IUserClaimStore, Microsoft.AspNetCore.Identity.IUserEmailStore, Microsoft.AspNetCore.Identity.IUserLockoutStore, Microsoft.AspNetCore.Identity.IUserLoginStore, Microsoft.AspNetCore.Identity.IUserPasswordStore, Microsoft.AspNetCore.Identity.IUserPhoneNumberStore, Microsoft.AspNetCore.Identity.IUserSecurityStampStore, Microsoft.AspNetCore.Identity.IUserStore, Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore, Microsoft.AspNetCore.Identity.IUserTwoFactorStore where TUser : Microsoft.AspNetCore.Identity.IdentityUser where TKey : System.IEquatable where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken, new() { public abstract System.Threading.Tasks.Task AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public abstract System.Threading.Tasks.Task AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); @@ -184,7 +184,7 @@ namespace Microsoft public abstract System.Threading.Tasks.Task UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); public abstract System.Linq.IQueryable Users { get; } } - public abstract class UserStoreBase : Microsoft.AspNetCore.Identity.UserStoreBase, Microsoft.AspNetCore.Identity.IUserRoleStore, Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : Microsoft.AspNetCore.Identity.IdentityUser where TRole : Microsoft.AspNetCore.Identity.IdentityRole where TKey : System.IEquatable where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim, new() where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken, new() where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim, new() + public abstract class UserStoreBase : Microsoft.AspNetCore.Identity.UserStoreBase, System.IDisposable, Microsoft.AspNetCore.Identity.IUserRoleStore, Microsoft.AspNetCore.Identity.IUserStore where TUser : Microsoft.AspNetCore.Identity.IdentityUser where TRole : Microsoft.AspNetCore.Identity.IdentityRole where TKey : System.IEquatable where TUserClaim : Microsoft.AspNetCore.Identity.IdentityUserClaim, new() where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole, new() where TUserLogin : Microsoft.AspNetCore.Identity.IdentityUserLogin, new() where TUserToken : Microsoft.AspNetCore.Identity.IdentityUserToken, new() where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim, new() { public abstract System.Threading.Tasks.Task AddToRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); protected virtual TUserRole CreateUserRole(TUser user, TRole role) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs index a36de7c0a88..a017f82716a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs @@ -33,7 +33,7 @@ namespace Microsoft public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) => throw null; public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => throw null; } - public class NullLoggerFactory : Microsoft.Extensions.Logging.ILoggerFactory, System.IDisposable + public class NullLoggerFactory : System.IDisposable, Microsoft.Extensions.Logging.ILoggerFactory { public void AddProvider(Microsoft.Extensions.Logging.ILoggerProvider provider) => throw null; public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; @@ -41,7 +41,7 @@ namespace Microsoft public void Dispose() => throw null; public static Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory Instance; } - public class NullLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable + public class NullLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider { public Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName) => throw null; public void Dispose() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Console.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Console.cs index 9a7521d8ac4..702765dbbca 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Console.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Console.cs @@ -16,9 +16,9 @@ namespace Microsoft } public static class ConsoleFormatterNames { - public static string Json; - public static string Simple; - public static string Systemd; + public const string Json = default; + public const string Simple = default; + public const string Systemd = default; } public class ConsoleFormatterOptions { @@ -45,7 +45,7 @@ namespace Microsoft public string TimestampFormat { get => throw null; set { } } public bool UseUtcTimestamp { get => throw null; set { } } } - public class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable, Microsoft.Extensions.Logging.ISupportExternalScope + public class ConsoleLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope { public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Debug.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Debug.cs index edd8a8c6932..6d34b9a25fc 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Debug.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Debug.cs @@ -8,7 +8,7 @@ namespace Microsoft { namespace Debug { - public class DebugLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable + public class DebugLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider { public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; public DebugLoggerProvider() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventLog.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventLog.cs index 42a8d168d3c..a6bd52d2317 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventLog.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventLog.cs @@ -8,7 +8,7 @@ namespace Microsoft { namespace EventLog { - public class EventLogLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable, Microsoft.Extensions.Logging.ISupportExternalScope + public class EventLogLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope { public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; public EventLogLoggerProvider() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventSource.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventSource.cs index e957725610b..ec81aead002 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventSource.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.EventSource.cs @@ -8,7 +8,7 @@ namespace Microsoft { namespace EventSource { - public class EventSourceLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable + public class EventSourceLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider { public Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName) => throw null; public EventSourceLoggerProvider(Microsoft.Extensions.Logging.EventSource.LoggingEventSource eventSource) => throw null; @@ -18,10 +18,10 @@ namespace Microsoft { public static class Keywords { - public static System.Diagnostics.Tracing.EventKeywords FormattedMessage; - public static System.Diagnostics.Tracing.EventKeywords JsonMessage; - public static System.Diagnostics.Tracing.EventKeywords Message; - public static System.Diagnostics.Tracing.EventKeywords Meta; + public const System.Diagnostics.Tracing.EventKeywords FormattedMessage = default; + public const System.Diagnostics.Tracing.EventKeywords JsonMessage = default; + public const System.Diagnostics.Tracing.EventKeywords Message = default; + public const System.Diagnostics.Tracing.EventKeywords Meta = default; } protected override void OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs command) => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.TraceSource.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.TraceSource.cs index 225274f9d12..b4eb5fd3a1d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.TraceSource.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.TraceSource.cs @@ -8,7 +8,7 @@ namespace Microsoft { namespace TraceSource { - public class TraceSourceLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable + public class TraceSourceLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider { public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; public TraceSourceLoggerProvider(System.Diagnostics.SourceSwitch rootSourceSwitch) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.cs index 01edf4dd457..f3bb0065fe1 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.cs @@ -51,7 +51,7 @@ namespace Microsoft { Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - public class LoggerFactory : Microsoft.Extensions.Logging.ILoggerFactory, System.IDisposable + public class LoggerFactory : System.IDisposable, Microsoft.Extensions.Logging.ILoggerFactory { public void AddProvider(Microsoft.Extensions.Logging.ILoggerProvider provider) => throw null; protected virtual bool CheckDisposed() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs index d6b43314f70..2e7820b5001 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs @@ -195,7 +195,7 @@ namespace Microsoft public virtual TOptions Get(string name) => throw null; public TOptions Value { get => throw null; } } - public class OptionsMonitor : Microsoft.Extensions.Options.IOptionsMonitor, System.IDisposable where TOptions : class + public class OptionsMonitor : System.IDisposable, Microsoft.Extensions.Options.IOptionsMonitor where TOptions : class { public OptionsMonitor(Microsoft.Extensions.Options.IOptionsFactory factory, System.Collections.Generic.IEnumerable> sources, Microsoft.Extensions.Options.IOptionsMonitorCache cache) => throw null; public TOptions CurrentValue { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs index acc7bc88678..e7bab4d5780 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs @@ -96,7 +96,7 @@ namespace Microsoft { public StringTokenizer(Microsoft.Extensions.Primitives.StringSegment value, char[] separators) => throw null; public StringTokenizer(string value, char[] separators) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public Enumerator(ref Microsoft.Extensions.Primitives.StringTokenizer tokenizer) => throw null; public Microsoft.Extensions.Primitives.StringSegment Current { get => throw null; } @@ -109,7 +109,7 @@ namespace Microsoft System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public struct StringValues : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.IEquatable, System.IEquatable, System.IEquatable + public struct StringValues : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IEquatable, System.IEquatable, System.IEquatable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { void System.Collections.Generic.ICollection.Add(string item) => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; @@ -122,7 +122,7 @@ namespace Microsoft public StringValues(string value) => throw null; public StringValues(string[] values) => throw null; public static Microsoft.Extensions.Primitives.StringValues Empty; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public Enumerator(ref Microsoft.Extensions.Primitives.StringValues values) => throw null; public string Current { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.JSInterop.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.JSInterop.cs index 4a29f8c28d4..da313552251 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.JSInterop.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.JSInterop.cs @@ -20,7 +20,7 @@ namespace Microsoft public bool LeaveOpen { get => throw null; } public System.IO.Stream Stream { get => throw null; } } - public interface IJSInProcessObjectReference : Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable, System.IDisposable + public interface IJSInProcessObjectReference : System.IAsyncDisposable, System.IDisposable, Microsoft.JSInterop.IJSObjectReference { TValue Invoke(string identifier, params object[] args); } @@ -43,7 +43,7 @@ namespace Microsoft long Length { get; } System.Threading.Tasks.ValueTask OpenReadStreamAsync(long maxAllowedSize = default(long), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - public interface IJSUnmarshalledObjectReference : Microsoft.JSInterop.IJSInProcessObjectReference, Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable, System.IDisposable + public interface IJSUnmarshalledObjectReference : System.IAsyncDisposable, System.IDisposable, Microsoft.JSInterop.IJSInProcessObjectReference, Microsoft.JSInterop.IJSObjectReference { TResult InvokeUnmarshalled(string identifier); TResult InvokeUnmarshalled(string identifier, T0 arg0); @@ -59,13 +59,13 @@ namespace Microsoft } namespace Implementation { - public class JSInProcessObjectReference : Microsoft.JSInterop.Implementation.JSObjectReference, Microsoft.JSInterop.IJSInProcessObjectReference, Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable, System.IDisposable + public class JSInProcessObjectReference : Microsoft.JSInterop.Implementation.JSObjectReference, System.IAsyncDisposable, System.IDisposable, Microsoft.JSInterop.IJSInProcessObjectReference, Microsoft.JSInterop.IJSObjectReference { protected JSInProcessObjectReference(Microsoft.JSInterop.JSInProcessRuntime jsRuntime, long id) : base(default(Microsoft.JSInterop.JSRuntime), default(long)) => throw null; public void Dispose() => throw null; public TValue Invoke(string identifier, params object[] args) => throw null; } - public class JSObjectReference : Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable + public class JSObjectReference : System.IAsyncDisposable, Microsoft.JSInterop.IJSObjectReference { protected JSObjectReference(Microsoft.JSInterop.JSRuntime jsRuntime, long id) => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; @@ -79,7 +79,7 @@ namespace Microsoft public static long ReadJSObjectReferenceIdentifier(ref System.Text.Json.Utf8JsonReader reader) => throw null; public static void WriteJSObjectReference(System.Text.Json.Utf8JsonWriter writer, Microsoft.JSInterop.Implementation.JSObjectReference objectReference) => throw null; } - public sealed class JSStreamReference : Microsoft.JSInterop.Implementation.JSObjectReference, Microsoft.JSInterop.IJSStreamReference, System.IAsyncDisposable + public sealed class JSStreamReference : Microsoft.JSInterop.Implementation.JSObjectReference, System.IAsyncDisposable, Microsoft.JSInterop.IJSStreamReference { public long Length { get => throw null; } System.Threading.Tasks.ValueTask Microsoft.JSInterop.IJSStreamReference.OpenReadStreamAsync(long maxAllowedSize, System.Threading.CancellationToken cancellationToken) => throw null; @@ -160,7 +160,7 @@ namespace Microsoft public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, System.Threading.CancellationToken cancellationToken, params object[] args) => throw null; public static System.Threading.Tasks.ValueTask InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference jsObjectReference, string identifier, System.TimeSpan timeout, params object[] args) => throw null; } - public abstract class JSRuntime : Microsoft.JSInterop.IJSRuntime, System.IDisposable + public abstract class JSRuntime : System.IDisposable, Microsoft.JSInterop.IJSRuntime { protected virtual void BeginInvokeJS(long taskId, string identifier, string argsJson) => throw null; protected abstract void BeginInvokeJS(long taskId, string identifier, string argsJson, Microsoft.JSInterop.JSCallResultType resultType, long targetInstanceId); diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs index f4acc51ab11..f0fc81910d2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs @@ -222,8 +222,8 @@ namespace Microsoft } public static class HeaderQuality { - public static double Match; - public static double NoMatch; + public const double Match = default; + public const double NoMatch = default; } public static class HeaderUtilities { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Diagnostics.EventLog.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Diagnostics.EventLog.cs index da3269ed7d8..c1c3e0538c2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Diagnostics.EventLog.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Diagnostics.EventLog.cs @@ -230,7 +230,7 @@ namespace System public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public bool Enabled { get => throw null; set { } } - public event System.EventHandler EventRecordWritten { add { } remove { } } + public event System.EventHandler EventRecordWritten; } public sealed class EventMetadata { @@ -402,7 +402,7 @@ namespace System public bool EnableRaisingEvents { get => throw null; set { } } public void EndInit() => throw null; public System.Diagnostics.EventLogEntryCollection Entries { get => throw null; } - public event System.Diagnostics.EntryWrittenEventHandler EntryWritten { add { } remove { } } + public event System.Diagnostics.EntryWrittenEventHandler EntryWritten; public static bool Exists(string logName) => throw null; public static bool Exists(string logName, string machineName) => throw null; public static System.Diagnostics.EventLog[] GetEventLogs() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Xml.cs index 1b113c55b5e..2ede2f9ca5b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Xml.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Xml.cs @@ -126,23 +126,23 @@ namespace System public static void ReplaceElement(System.Xml.XmlElement inputElement, System.Security.Cryptography.Xml.EncryptedData encryptedData, bool content) => throw null; public System.Xml.XmlResolver Resolver { get => throw null; set { } } public int XmlDSigSearchDepth { get => throw null; set { } } - public static string XmlEncAES128KeyWrapUrl; - public static string XmlEncAES128Url; - public static string XmlEncAES192KeyWrapUrl; - public static string XmlEncAES192Url; - public static string XmlEncAES256KeyWrapUrl; - public static string XmlEncAES256Url; - public static string XmlEncDESUrl; - public static string XmlEncElementContentUrl; - public static string XmlEncElementUrl; - public static string XmlEncEncryptedKeyUrl; - public static string XmlEncNamespaceUrl; - public static string XmlEncRSA15Url; - public static string XmlEncRSAOAEPUrl; - public static string XmlEncSHA256Url; - public static string XmlEncSHA512Url; - public static string XmlEncTripleDESKeyWrapUrl; - public static string XmlEncTripleDESUrl; + public const string XmlEncAES128KeyWrapUrl = default; + public const string XmlEncAES128Url = default; + public const string XmlEncAES192KeyWrapUrl = default; + public const string XmlEncAES192Url = default; + public const string XmlEncAES256KeyWrapUrl = default; + public const string XmlEncAES256Url = default; + public const string XmlEncDESUrl = default; + public const string XmlEncElementContentUrl = default; + public const string XmlEncElementUrl = default; + public const string XmlEncEncryptedKeyUrl = default; + public const string XmlEncNamespaceUrl = default; + public const string XmlEncRSA15Url = default; + public const string XmlEncRSAOAEPUrl = default; + public const string XmlEncSHA256Url = default; + public const string XmlEncSHA512Url = default; + public const string XmlEncTripleDESKeyWrapUrl = default; + public const string XmlEncTripleDESUrl = default; } public class EncryptionMethod { @@ -379,30 +379,30 @@ namespace System public System.Security.Cryptography.Xml.SignedInfo SignedInfo { get => throw null; } public System.Security.Cryptography.AsymmetricAlgorithm SigningKey { get => throw null; set { } } public string SigningKeyName { get => throw null; set { } } - public static string XmlDecryptionTransformUrl; - public static string XmlDsigBase64TransformUrl; - public static string XmlDsigC14NTransformUrl; - public static string XmlDsigC14NWithCommentsTransformUrl; - public static string XmlDsigCanonicalizationUrl; - public static string XmlDsigCanonicalizationWithCommentsUrl; - public static string XmlDsigDSAUrl; - public static string XmlDsigEnvelopedSignatureTransformUrl; - public static string XmlDsigExcC14NTransformUrl; - public static string XmlDsigExcC14NWithCommentsTransformUrl; - public static string XmlDsigHMACSHA1Url; - public static string XmlDsigMinimalCanonicalizationUrl; - public static string XmlDsigNamespaceUrl; - public static string XmlDsigRSASHA1Url; - public static string XmlDsigRSASHA256Url; - public static string XmlDsigRSASHA384Url; - public static string XmlDsigRSASHA512Url; - public static string XmlDsigSHA1Url; - public static string XmlDsigSHA256Url; - public static string XmlDsigSHA384Url; - public static string XmlDsigSHA512Url; - public static string XmlDsigXPathTransformUrl; - public static string XmlDsigXsltTransformUrl; - public static string XmlLicenseTransformUrl; + public const string XmlDecryptionTransformUrl = default; + public const string XmlDsigBase64TransformUrl = default; + public const string XmlDsigC14NTransformUrl = default; + public const string XmlDsigC14NWithCommentsTransformUrl = default; + public const string XmlDsigCanonicalizationUrl = default; + public const string XmlDsigCanonicalizationWithCommentsUrl = default; + public const string XmlDsigDSAUrl = default; + public const string XmlDsigEnvelopedSignatureTransformUrl = default; + public const string XmlDsigExcC14NTransformUrl = default; + public const string XmlDsigExcC14NWithCommentsTransformUrl = default; + public const string XmlDsigHMACSHA1Url = default; + public const string XmlDsigMinimalCanonicalizationUrl = default; + public const string XmlDsigNamespaceUrl = default; + public const string XmlDsigRSASHA1Url = default; + public const string XmlDsigRSASHA256Url = default; + public const string XmlDsigRSASHA384Url = default; + public const string XmlDsigRSASHA512Url = default; + public const string XmlDsigSHA1Url = default; + public const string XmlDsigSHA256Url = default; + public const string XmlDsigSHA384Url = default; + public const string XmlDsigSHA512Url = default; + public const string XmlDsigXPathTransformUrl = default; + public const string XmlDsigXsltTransformUrl = default; + public const string XmlLicenseTransformUrl = default; } public abstract class Transform { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs index 981929b39bd..6312e16d27e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs @@ -365,122 +365,122 @@ namespace Microsoft } public sealed class Constants { - public static Microsoft.VisualBasic.MsgBoxResult vbAbort; - public static Microsoft.VisualBasic.MsgBoxStyle vbAbortRetryIgnore; - public static Microsoft.VisualBasic.MsgBoxStyle vbApplicationModal; - public static Microsoft.VisualBasic.FileAttribute vbArchive; - public static Microsoft.VisualBasic.VariantType vbArray; - public static string vbBack; - public static Microsoft.VisualBasic.CompareMethod vbBinaryCompare; - public static Microsoft.VisualBasic.VariantType vbBoolean; - public static Microsoft.VisualBasic.VariantType vbByte; - public static Microsoft.VisualBasic.MsgBoxResult vbCancel; - public static string vbCr; - public static Microsoft.VisualBasic.MsgBoxStyle vbCritical; - public static string vbCrLf; - public static Microsoft.VisualBasic.VariantType vbCurrency; - public static Microsoft.VisualBasic.VariantType vbDate; - public static Microsoft.VisualBasic.VariantType vbDecimal; - public static Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton1; - public static Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton2; - public static Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton3; - public static Microsoft.VisualBasic.FileAttribute vbDirectory; - public static Microsoft.VisualBasic.VariantType vbDouble; - public static Microsoft.VisualBasic.VariantType vbEmpty; - public static Microsoft.VisualBasic.MsgBoxStyle vbExclamation; - public static Microsoft.VisualBasic.TriState vbFalse; - public static Microsoft.VisualBasic.FirstWeekOfYear vbFirstFourDays; - public static Microsoft.VisualBasic.FirstWeekOfYear vbFirstFullWeek; - public static Microsoft.VisualBasic.FirstWeekOfYear vbFirstJan1; - public static string vbFormFeed; - public static Microsoft.VisualBasic.FirstDayOfWeek vbFriday; - public static Microsoft.VisualBasic.DateFormat vbGeneralDate; - public static Microsoft.VisualBasic.CallType vbGet; - public static Microsoft.VisualBasic.FileAttribute vbHidden; - public static Microsoft.VisualBasic.AppWinStyle vbHide; - public static Microsoft.VisualBasic.VbStrConv vbHiragana; - public static Microsoft.VisualBasic.MsgBoxResult vbIgnore; - public static Microsoft.VisualBasic.MsgBoxStyle vbInformation; - public static Microsoft.VisualBasic.VariantType vbInteger; - public static Microsoft.VisualBasic.VbStrConv vbKatakana; - public static Microsoft.VisualBasic.CallType vbLet; - public static string vbLf; - public static Microsoft.VisualBasic.VbStrConv vbLinguisticCasing; - public static Microsoft.VisualBasic.VariantType vbLong; - public static Microsoft.VisualBasic.DateFormat vbLongDate; - public static Microsoft.VisualBasic.DateFormat vbLongTime; - public static Microsoft.VisualBasic.VbStrConv vbLowerCase; - public static Microsoft.VisualBasic.AppWinStyle vbMaximizedFocus; - public static Microsoft.VisualBasic.CallType vbMethod; - public static Microsoft.VisualBasic.AppWinStyle vbMinimizedFocus; - public static Microsoft.VisualBasic.AppWinStyle vbMinimizedNoFocus; - public static Microsoft.VisualBasic.FirstDayOfWeek vbMonday; - public static Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxHelp; - public static Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxRight; - public static Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxRtlReading; - public static Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxSetForeground; - public static Microsoft.VisualBasic.VbStrConv vbNarrow; - public static string vbNewLine; - public static Microsoft.VisualBasic.MsgBoxResult vbNo; - public static Microsoft.VisualBasic.FileAttribute vbNormal; - public static Microsoft.VisualBasic.AppWinStyle vbNormalFocus; - public static Microsoft.VisualBasic.AppWinStyle vbNormalNoFocus; - public static Microsoft.VisualBasic.VariantType vbNull; - public static string vbNullChar; - public static string vbNullString; - public static Microsoft.VisualBasic.VariantType vbObject; - public static int vbObjectError; - public static Microsoft.VisualBasic.MsgBoxResult vbOK; - public static Microsoft.VisualBasic.MsgBoxStyle vbOKCancel; - public static Microsoft.VisualBasic.MsgBoxStyle vbOKOnly; - public static Microsoft.VisualBasic.VbStrConv vbProperCase; - public static Microsoft.VisualBasic.MsgBoxStyle vbQuestion; - public static Microsoft.VisualBasic.FileAttribute vbReadOnly; - public static Microsoft.VisualBasic.MsgBoxResult vbRetry; - public static Microsoft.VisualBasic.MsgBoxStyle vbRetryCancel; - public static Microsoft.VisualBasic.FirstDayOfWeek vbSaturday; - public static Microsoft.VisualBasic.CallType vbSet; - public static Microsoft.VisualBasic.DateFormat vbShortDate; - public static Microsoft.VisualBasic.DateFormat vbShortTime; - public static Microsoft.VisualBasic.VbStrConv vbSimplifiedChinese; - public static Microsoft.VisualBasic.VariantType vbSingle; - public static Microsoft.VisualBasic.VariantType vbString; - public static Microsoft.VisualBasic.FirstDayOfWeek vbSunday; - public static Microsoft.VisualBasic.FileAttribute vbSystem; - public static Microsoft.VisualBasic.MsgBoxStyle vbSystemModal; - public static string vbTab; - public static Microsoft.VisualBasic.CompareMethod vbTextCompare; - public static Microsoft.VisualBasic.FirstDayOfWeek vbThursday; - public static Microsoft.VisualBasic.VbStrConv vbTraditionalChinese; - public static Microsoft.VisualBasic.TriState vbTrue; - public static Microsoft.VisualBasic.FirstDayOfWeek vbTuesday; - public static Microsoft.VisualBasic.VbStrConv vbUpperCase; - public static Microsoft.VisualBasic.TriState vbUseDefault; - public static Microsoft.VisualBasic.VariantType vbUserDefinedType; - public static Microsoft.VisualBasic.FirstWeekOfYear vbUseSystem; - public static Microsoft.VisualBasic.FirstDayOfWeek vbUseSystemDayOfWeek; - public static Microsoft.VisualBasic.VariantType vbVariant; - public static string vbVerticalTab; - public static Microsoft.VisualBasic.FileAttribute vbVolume; - public static Microsoft.VisualBasic.FirstDayOfWeek vbWednesday; - public static Microsoft.VisualBasic.VbStrConv vbWide; - public static Microsoft.VisualBasic.MsgBoxResult vbYes; - public static Microsoft.VisualBasic.MsgBoxStyle vbYesNo; - public static Microsoft.VisualBasic.MsgBoxStyle vbYesNoCancel; + public const Microsoft.VisualBasic.MsgBoxResult vbAbort = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbAbortRetryIgnore = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbApplicationModal = default; + public const Microsoft.VisualBasic.FileAttribute vbArchive = default; + public const Microsoft.VisualBasic.VariantType vbArray = default; + public const string vbBack = default; + public const Microsoft.VisualBasic.CompareMethod vbBinaryCompare = default; + public const Microsoft.VisualBasic.VariantType vbBoolean = default; + public const Microsoft.VisualBasic.VariantType vbByte = default; + public const Microsoft.VisualBasic.MsgBoxResult vbCancel = default; + public const string vbCr = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbCritical = default; + public const string vbCrLf = default; + public const Microsoft.VisualBasic.VariantType vbCurrency = default; + public const Microsoft.VisualBasic.VariantType vbDate = default; + public const Microsoft.VisualBasic.VariantType vbDecimal = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton1 = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton2 = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbDefaultButton3 = default; + public const Microsoft.VisualBasic.FileAttribute vbDirectory = default; + public const Microsoft.VisualBasic.VariantType vbDouble = default; + public const Microsoft.VisualBasic.VariantType vbEmpty = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbExclamation = default; + public const Microsoft.VisualBasic.TriState vbFalse = default; + public const Microsoft.VisualBasic.FirstWeekOfYear vbFirstFourDays = default; + public const Microsoft.VisualBasic.FirstWeekOfYear vbFirstFullWeek = default; + public const Microsoft.VisualBasic.FirstWeekOfYear vbFirstJan1 = default; + public const string vbFormFeed = default; + public const Microsoft.VisualBasic.FirstDayOfWeek vbFriday = default; + public const Microsoft.VisualBasic.DateFormat vbGeneralDate = default; + public const Microsoft.VisualBasic.CallType vbGet = default; + public const Microsoft.VisualBasic.FileAttribute vbHidden = default; + public const Microsoft.VisualBasic.AppWinStyle vbHide = default; + public const Microsoft.VisualBasic.VbStrConv vbHiragana = default; + public const Microsoft.VisualBasic.MsgBoxResult vbIgnore = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbInformation = default; + public const Microsoft.VisualBasic.VariantType vbInteger = default; + public const Microsoft.VisualBasic.VbStrConv vbKatakana = default; + public const Microsoft.VisualBasic.CallType vbLet = default; + public const string vbLf = default; + public const Microsoft.VisualBasic.VbStrConv vbLinguisticCasing = default; + public const Microsoft.VisualBasic.VariantType vbLong = default; + public const Microsoft.VisualBasic.DateFormat vbLongDate = default; + public const Microsoft.VisualBasic.DateFormat vbLongTime = default; + public const Microsoft.VisualBasic.VbStrConv vbLowerCase = default; + public const Microsoft.VisualBasic.AppWinStyle vbMaximizedFocus = default; + public const Microsoft.VisualBasic.CallType vbMethod = default; + public const Microsoft.VisualBasic.AppWinStyle vbMinimizedFocus = default; + public const Microsoft.VisualBasic.AppWinStyle vbMinimizedNoFocus = default; + public const Microsoft.VisualBasic.FirstDayOfWeek vbMonday = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxHelp = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxRight = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxRtlReading = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbMsgBoxSetForeground = default; + public const Microsoft.VisualBasic.VbStrConv vbNarrow = default; + public const string vbNewLine = default; + public const Microsoft.VisualBasic.MsgBoxResult vbNo = default; + public const Microsoft.VisualBasic.FileAttribute vbNormal = default; + public const Microsoft.VisualBasic.AppWinStyle vbNormalFocus = default; + public const Microsoft.VisualBasic.AppWinStyle vbNormalNoFocus = default; + public const Microsoft.VisualBasic.VariantType vbNull = default; + public const string vbNullChar = default; + public const string vbNullString = default; + public const Microsoft.VisualBasic.VariantType vbObject = default; + public const int vbObjectError = default; + public const Microsoft.VisualBasic.MsgBoxResult vbOK = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbOKCancel = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbOKOnly = default; + public const Microsoft.VisualBasic.VbStrConv vbProperCase = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbQuestion = default; + public const Microsoft.VisualBasic.FileAttribute vbReadOnly = default; + public const Microsoft.VisualBasic.MsgBoxResult vbRetry = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbRetryCancel = default; + public const Microsoft.VisualBasic.FirstDayOfWeek vbSaturday = default; + public const Microsoft.VisualBasic.CallType vbSet = default; + public const Microsoft.VisualBasic.DateFormat vbShortDate = default; + public const Microsoft.VisualBasic.DateFormat vbShortTime = default; + public const Microsoft.VisualBasic.VbStrConv vbSimplifiedChinese = default; + public const Microsoft.VisualBasic.VariantType vbSingle = default; + public const Microsoft.VisualBasic.VariantType vbString = default; + public const Microsoft.VisualBasic.FirstDayOfWeek vbSunday = default; + public const Microsoft.VisualBasic.FileAttribute vbSystem = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbSystemModal = default; + public const string vbTab = default; + public const Microsoft.VisualBasic.CompareMethod vbTextCompare = default; + public const Microsoft.VisualBasic.FirstDayOfWeek vbThursday = default; + public const Microsoft.VisualBasic.VbStrConv vbTraditionalChinese = default; + public const Microsoft.VisualBasic.TriState vbTrue = default; + public const Microsoft.VisualBasic.FirstDayOfWeek vbTuesday = default; + public const Microsoft.VisualBasic.VbStrConv vbUpperCase = default; + public const Microsoft.VisualBasic.TriState vbUseDefault = default; + public const Microsoft.VisualBasic.VariantType vbUserDefinedType = default; + public const Microsoft.VisualBasic.FirstWeekOfYear vbUseSystem = default; + public const Microsoft.VisualBasic.FirstDayOfWeek vbUseSystemDayOfWeek = default; + public const Microsoft.VisualBasic.VariantType vbVariant = default; + public const string vbVerticalTab = default; + public const Microsoft.VisualBasic.FileAttribute vbVolume = default; + public const Microsoft.VisualBasic.FirstDayOfWeek vbWednesday = default; + public const Microsoft.VisualBasic.VbStrConv vbWide = default; + public const Microsoft.VisualBasic.MsgBoxResult vbYes = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbYesNo = default; + public const Microsoft.VisualBasic.MsgBoxStyle vbYesNoCancel = default; } public sealed class ControlChars { - public static char Back; - public static char Cr; - public static string CrLf; + public const char Back = default; + public const char Cr = default; + public const string CrLf = default; public ControlChars() => throw null; - public static char FormFeed; - public static char Lf; - public static string NewLine; - public static char NullChar; - public static char Quote; - public static char Tab; - public static char VerticalTab; + public const char FormFeed = default; + public const char Lf = default; + public const string NewLine = default; + public const char NullChar = default; + public const char Quote = default; + public const char Tab = default; + public const char VerticalTab = default; } public sealed class Conversion { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs index f172d3e4a00..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs index a996113e93e..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.AppContext, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs index c3d79aed8ff..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Buffers, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Concurrent.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Concurrent.cs index 27562a6aaec..a1c8e49daa3 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Concurrent.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Concurrent.cs @@ -6,7 +6,7 @@ namespace System { namespace Concurrent { - public class BlockingCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.IDisposable + public class BlockingCollection : System.Collections.ICollection, System.IDisposable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public void Add(T item) => throw null; public void Add(T item, System.Threading.CancellationToken cancellationToken) => throw null; @@ -53,7 +53,7 @@ namespace System public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection[] collections, out T item, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection[] collections, out T item, System.TimeSpan timeout) => throw null; } - public class ConcurrentBag : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IReadOnlyCollection + public class ConcurrentBag : System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IReadOnlyCollection { public void Add(T item) => throw null; public void Clear() => throw null; @@ -72,7 +72,7 @@ namespace System public bool TryPeek(out T result) => throw null; public bool TryTake(out T result) => throw null; } - public class ConcurrentDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary + public class ConcurrentDictionary : System.Collections.Generic.ICollection>, System.Collections.ICollection, System.Collections.Generic.IDictionary, System.Collections.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; void System.Collections.Generic.IDictionary.Add(TKey key, TValue value) => throw null; @@ -125,7 +125,7 @@ namespace System System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } public System.Collections.Generic.ICollection Values { get => throw null; } } - public class ConcurrentQueue : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IReadOnlyCollection + public class ConcurrentQueue : System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IReadOnlyCollection { public void Clear() => throw null; public void CopyTo(T[] array, int index) => throw null; @@ -145,7 +145,7 @@ namespace System public bool TryPeek(out T result) => throw null; bool System.Collections.Concurrent.IProducerConsumerCollection.TryTake(out T item) => throw null; } - public class ConcurrentStack : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IReadOnlyCollection + public class ConcurrentStack : System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IReadOnlyCollection { public void Clear() => throw null; public void CopyTo(T[] array, int index) => throw null; @@ -175,7 +175,7 @@ namespace System None = 0, NoBuffering = 1, } - public interface IProducerConsumerCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection + public interface IProducerConsumerCollection : System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { void CopyTo(T[] array, int index); T[] ToArray(); diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs index 62e1bf6ee1c..a402d6f9462 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs @@ -97,7 +97,7 @@ namespace System public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.ReadOnlySpan items) => throw null; public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.Span items) => throw null; } - public struct ImmutableArray : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList, System.Collections.Immutable.IImmutableList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IEquatable> + public struct ImmutableArray : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IEquatable>, System.Collections.Immutable.IImmutableList, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable { public System.Collections.Immutable.ImmutableArray Add(T item) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; @@ -300,7 +300,7 @@ namespace System public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer keyComparer) => throw null; public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IEqualityComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; } - public sealed class ImmutableDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.Immutable.IImmutableDictionary + public sealed class ImmutableDictionary : System.Collections.Generic.ICollection>, System.Collections.ICollection, System.Collections.Generic.IDictionary, System.Collections.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { public System.Collections.Immutable.ImmutableDictionary Add(TKey key, TValue value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -309,7 +309,7 @@ namespace System System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.Add(TKey key, TValue value) => throw null; public System.Collections.Immutable.ImmutableDictionary AddRange(System.Collections.Generic.IEnumerable> pairs) => throw null; System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.AddRange(System.Collections.Generic.IEnumerable> pairs) => throw null; - public sealed class Builder : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary + public sealed class Builder : System.Collections.Generic.ICollection>, System.Collections.ICollection, System.Collections.Generic.IDictionary, System.Collections.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(TKey key, TValue value) => throw null; @@ -364,7 +364,7 @@ namespace System void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } public static System.Collections.Immutable.ImmutableDictionary Empty; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -426,7 +426,7 @@ namespace System public static System.Collections.Immutable.ImmutableHashSet ToImmutableHashSet(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; public static System.Collections.Immutable.ImmutableHashSet ToImmutableHashSet(this System.Collections.Immutable.ImmutableHashSet.Builder builder) => throw null; } - public sealed class ImmutableHashSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.Generic.IReadOnlySet, System.Collections.ICollection, System.Collections.Immutable.IImmutableSet + public sealed class ImmutableHashSet : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableSet, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlySet, System.Collections.Generic.ISet { public System.Collections.Immutable.ImmutableHashSet Add(T item) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; @@ -467,7 +467,7 @@ namespace System void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } public static System.Collections.Immutable.ImmutableHashSet Empty; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -551,7 +551,7 @@ namespace System public static System.Collections.Immutable.ImmutableList ToImmutableList(this System.Collections.Generic.IEnumerable source) => throw null; public static System.Collections.Immutable.ImmutableList ToImmutableList(this System.Collections.Immutable.ImmutableList.Builder builder) => throw null; } - public sealed class ImmutableList : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList, System.Collections.Immutable.IImmutableList + public sealed class ImmutableList : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableList, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { public System.Collections.Immutable.ImmutableList Add(T value) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; @@ -562,7 +562,7 @@ namespace System public int BinarySearch(int index, int count, T item, System.Collections.Generic.IComparer comparer) => throw null; public int BinarySearch(T item) => throw null; public int BinarySearch(T item, System.Collections.Generic.IComparer comparer) => throw null; - public sealed class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList + public sealed class Builder : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { public void Add(T item) => throw null; int System.Collections.IList.Add(object value) => throw null; @@ -647,7 +647,7 @@ namespace System void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } public static System.Collections.Immutable.ImmutableList Empty; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -769,7 +769,7 @@ namespace System public static System.Collections.Immutable.ImmutableSortedDictionary ToImmutableSortedDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IComparer keyComparer) => throw null; public static System.Collections.Immutable.ImmutableSortedDictionary ToImmutableSortedDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Func elementSelector, System.Collections.Generic.IComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; } - public sealed class ImmutableSortedDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.Immutable.IImmutableDictionary + public sealed class ImmutableSortedDictionary : System.Collections.Generic.ICollection>, System.Collections.ICollection, System.Collections.Generic.IDictionary, System.Collections.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { public System.Collections.Immutable.ImmutableSortedDictionary Add(TKey key, TValue value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -778,7 +778,7 @@ namespace System System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.Add(TKey key, TValue value) => throw null; public System.Collections.Immutable.ImmutableSortedDictionary AddRange(System.Collections.Generic.IEnumerable> items) => throw null; System.Collections.Immutable.IImmutableDictionary System.Collections.Immutable.IImmutableDictionary.AddRange(System.Collections.Generic.IEnumerable> pairs) => throw null; - public sealed class Builder : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary + public sealed class Builder : System.Collections.Generic.ICollection>, System.Collections.ICollection, System.Collections.Generic.IDictionary, System.Collections.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { public void Add(System.Collections.Generic.KeyValuePair item) => throw null; public void Add(TKey key, TValue value) => throw null; @@ -834,7 +834,7 @@ namespace System void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public static System.Collections.Immutable.ImmutableSortedDictionary Empty; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -897,14 +897,14 @@ namespace System public static System.Collections.Immutable.ImmutableSortedSet ToImmutableSortedSet(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IComparer comparer) => throw null; public static System.Collections.Immutable.ImmutableSortedSet ToImmutableSortedSet(this System.Collections.Immutable.ImmutableSortedSet.Builder builder) => throw null; } - public sealed class ImmutableSortedSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.ISet, System.Collections.Generic.IReadOnlySet, System.Collections.ICollection, System.Collections.IList, System.Collections.Immutable.IImmutableSet + public sealed class ImmutableSortedSet : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableSet, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlySet, System.Collections.Generic.ISet { public System.Collections.Immutable.ImmutableSortedSet Add(T value) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; bool System.Collections.Generic.ISet.Add(T item) => throw null; int System.Collections.IList.Add(object value) => throw null; System.Collections.Immutable.IImmutableSet System.Collections.Immutable.IImmutableSet.Add(T value) => throw null; - public sealed class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.ICollection + public sealed class Builder : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet { public bool Add(T item) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; @@ -950,7 +950,7 @@ namespace System void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public static System.Collections.Immutable.ImmutableSortedSet Empty; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.NonGeneric.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.NonGeneric.cs index b1acd32ceaf..b7260d5fd77 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.NonGeneric.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.NonGeneric.cs @@ -52,7 +52,7 @@ namespace System public void RemoveAt(int index) => throw null; object System.Collections.ICollection.SyncRoot { get => throw null; } } - public abstract class DictionaryBase : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary + public abstract class DictionaryBase : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable { void System.Collections.IDictionary.Add(object key, object value) => throw null; public void Clear() => throw null; @@ -83,7 +83,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } } - public class Queue : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable + public class Queue : System.ICloneable, System.Collections.ICollection, System.Collections.IEnumerable { public virtual void Clear() => throw null; public virtual object Clone() => throw null; @@ -114,7 +114,7 @@ namespace System bool System.Collections.ICollection.IsSynchronized { get => throw null; } object System.Collections.ICollection.SyncRoot { get => throw null; } } - public class SortedList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary, System.ICloneable + public class SortedList : System.ICloneable, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable { public virtual void Add(object key, object value) => throw null; public virtual int Capacity { get => throw null; set { } } @@ -163,7 +163,7 @@ namespace System public CollectionsUtil() => throw null; } } - public class Stack : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable + public class Stack : System.ICloneable, System.Collections.ICollection, System.Collections.IEnumerable { public virtual void Clear() => throw null; public virtual object Clone() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Specialized.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Specialized.cs index eff72319823..7d9fb9ea96a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Specialized.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Specialized.cs @@ -35,7 +35,7 @@ namespace System public override string ToString() => throw null; public static string ToString(System.Collections.Specialized.BitVector32 value) => throw null; } - public class HybridDictionary : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary + public class HybridDictionary : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable { public void Add(object key, object value) => throw null; public void Clear() => throw null; @@ -57,14 +57,14 @@ namespace System public object this[object key] { get => throw null; set { } } public System.Collections.ICollection Values { get => throw null; } } - public interface IOrderedDictionary : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary + public interface IOrderedDictionary : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable { System.Collections.IDictionaryEnumerator GetEnumerator(); void Insert(int index, object key, object value); void RemoveAt(int index); object this[int index] { get; set; } } - public class ListDictionary : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary + public class ListDictionary : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable { public void Add(object key, object value) => throw null; public void Clear() => throw null; @@ -84,7 +84,7 @@ namespace System public object this[object key] { get => throw null; set { } } public System.Collections.ICollection Values { get => throw null; } } - public abstract class NameObjectCollectionBase : System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public abstract class NameObjectCollectionBase : System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Collections.IEnumerable, System.Runtime.Serialization.ISerializable { protected void BaseAdd(string name, object value) => throw null; protected void BaseClear() => throw null; @@ -154,7 +154,7 @@ namespace System public string this[int index] { get => throw null; } public string this[string name] { get => throw null; set { } } } - public class OrderedDictionary : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class OrderedDictionary : System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Collections.IDictionary, System.Collections.IEnumerable, System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.ISerializable { public void Add(object key, object value) => throw null; public System.Collections.Specialized.OrderedDictionary AsReadOnly() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.cs index 187f7a05739..6ce2ba4c1cc 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.cs @@ -4,7 +4,7 @@ namespace System { namespace Collections { - public sealed class BitArray : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable + public sealed class BitArray : System.ICloneable, System.Collections.ICollection, System.Collections.IEnumerable { public System.Collections.BitArray And(System.Collections.BitArray value) => throw null; public object Clone() => throw null; @@ -50,7 +50,7 @@ namespace System protected Comparer() => throw null; public static System.Collections.Generic.Comparer Default { get => throw null; } } - public class Dictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class Dictionary : System.Collections.Generic.ICollection>, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Collections.Generic.IDictionary, System.Collections.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Runtime.Serialization.ISerializable { public void Add(TKey key, TValue value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; @@ -74,7 +74,7 @@ namespace System public Dictionary(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; protected Dictionary(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public int EnsureCapacity(int capacity) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable, System.Collections.IDictionaryEnumerator + public struct Enumerator : System.Collections.IDictionaryEnumerator, System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -95,7 +95,7 @@ namespace System bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } object System.Collections.IDictionary.this[object key] { get => throw null; set { } } - public sealed class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + public sealed class KeyCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { void System.Collections.Generic.ICollection.Add(TKey item) => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; @@ -104,7 +104,7 @@ namespace System void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public KeyCollection(System.Collections.Generic.Dictionary dictionary) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public TKey Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -135,7 +135,7 @@ namespace System public void TrimExcess(int capacity) => throw null; public bool TryAdd(TKey key, TValue value) => throw null; public bool TryGetValue(TKey key, out TValue value) => throw null; - public sealed class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + public sealed class ValueCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { void System.Collections.Generic.ICollection.Add(TValue item) => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; @@ -144,7 +144,7 @@ namespace System void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public ValueCollection(System.Collections.Generic.Dictionary dictionary) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public TValue Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -174,7 +174,7 @@ namespace System public abstract int GetHashCode(T obj); int System.Collections.IEqualityComparer.GetHashCode(object obj) => throw null; } - public class HashSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.Generic.IReadOnlySet, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class HashSet : System.Collections.Generic.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlySet, System.Runtime.Serialization.ISerializable, System.Collections.Generic.ISet { public bool Add(T item) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; @@ -194,7 +194,7 @@ namespace System public HashSet(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; protected HashSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public int EnsureCapacity(int capacity) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -223,7 +223,7 @@ namespace System public bool TryGetValue(T equalValue, out T actualValue) => throw null; public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; } - public class LinkedList : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class LinkedList : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Runtime.Serialization.ISerializable { void System.Collections.Generic.ICollection.Add(T value) => throw null; public void AddAfter(System.Collections.Generic.LinkedListNode node, System.Collections.Generic.LinkedListNode newNode) => throw null; @@ -242,7 +242,7 @@ namespace System public LinkedList() => throw null; public LinkedList(System.Collections.Generic.IEnumerable collection) => throw null; protected LinkedList(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public struct Enumerator : System.Runtime.Serialization.IDeserializationCallback, System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.Runtime.Serialization.ISerializable { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -278,7 +278,7 @@ namespace System public T Value { get => throw null; set { } } public T ValueRef { get => throw null; } } - public class List : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList + public class List : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { public void Add(T item) => throw null; int System.Collections.IList.Add(object item) => throw null; @@ -301,7 +301,7 @@ namespace System public List(System.Collections.Generic.IEnumerable collection) => throw null; public List(int capacity) => throw null; public int EnsureCapacity(int capacity) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -378,11 +378,11 @@ namespace System public bool TryDequeue(out TElement element, out TPriority priority) => throw null; public bool TryPeek(out TElement element, out TPriority priority) => throw null; public System.Collections.Generic.PriorityQueue.UnorderedItemsCollection UnorderedItems { get => throw null; } - public sealed class UnorderedItemsCollection : System.Collections.Generic.IEnumerable<(TElement Element, TPriority Priority)>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection<(TElement Element, TPriority Priority)>, System.Collections.ICollection + public sealed class UnorderedItemsCollection : System.Collections.ICollection, System.Collections.Generic.IEnumerable<(TElement Element, TPriority Priority)>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection<(TElement Element, TPriority Priority)> { void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator<(TElement Element, TPriority Priority)>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator<(TElement Element, TPriority Priority)>, System.Collections.IEnumerator { (TElement Element, TPriority Priority) System.Collections.Generic.IEnumerator<(TElement Element, TPriority Priority)>.Current { get => throw null; } public (TElement Element, TPriority Priority) Current { get => throw null; } @@ -398,7 +398,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } } - public class Queue : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + public class Queue : System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public void Clear() => throw null; public bool Contains(T item) => throw null; @@ -411,7 +411,7 @@ namespace System public T Dequeue() => throw null; public void Enqueue(T item) => throw null; public int EnsureCapacity(int capacity) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -436,7 +436,7 @@ namespace System public int GetHashCode(object obj) => throw null; public static System.Collections.Generic.ReferenceEqualityComparer Instance { get => throw null; } } - public class SortedDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary + public class SortedDictionary : System.Collections.Generic.ICollection>, System.Collections.ICollection, System.Collections.Generic.IDictionary, System.Collections.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { public void Add(TKey key, TValue value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; @@ -454,7 +454,7 @@ namespace System public SortedDictionary(System.Collections.Generic.IComparer comparer) => throw null; public SortedDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; public SortedDictionary(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IComparer comparer) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable, System.Collections.IDictionaryEnumerator + public struct Enumerator : System.Collections.IDictionaryEnumerator, System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -474,7 +474,7 @@ namespace System bool System.Collections.IDictionary.IsReadOnly { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } object System.Collections.IDictionary.this[object key] { get => throw null; set { } } - public sealed class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + public sealed class KeyCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { void System.Collections.Generic.ICollection.Add(TKey item) => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; @@ -483,7 +483,7 @@ namespace System void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public KeyCollection(System.Collections.Generic.SortedDictionary dictionary) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public TKey Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -509,7 +509,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } public TValue this[TKey key] { get => throw null; set { } } public bool TryGetValue(TKey key, out TValue value) => throw null; - public sealed class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + public sealed class ValueCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { void System.Collections.Generic.ICollection.Add(TValue item) => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; @@ -518,7 +518,7 @@ namespace System void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } public ValueCollection(System.Collections.Generic.SortedDictionary dictionary) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public TValue Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -539,7 +539,7 @@ namespace System System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } public System.Collections.Generic.SortedDictionary.ValueCollection Values { get => throw null; } } - public class SortedList : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary + public class SortedList : System.Collections.Generic.ICollection>, System.Collections.ICollection, System.Collections.Generic.IDictionary, System.Collections.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { public void Add(TKey key, TValue value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; @@ -591,7 +591,7 @@ namespace System System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } public System.Collections.Generic.IList Values { get => throw null; } } - public class SortedSet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.Generic.IReadOnlySet, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class SortedSet : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlySet, System.Runtime.Serialization.ISerializable, System.Collections.Generic.ISet { public bool Add(T item) => throw null; void System.Collections.Generic.ICollection.Add(T item) => throw null; @@ -610,7 +610,7 @@ namespace System public SortedSet(System.Collections.Generic.IEnumerable collection) => throw null; public SortedSet(System.Collections.Generic.IEnumerable collection, System.Collections.Generic.IComparer comparer) => throw null; protected SortedSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public struct Enumerator : System.Runtime.Serialization.IDeserializationCallback, System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.Runtime.Serialization.ISerializable { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -648,7 +648,7 @@ namespace System public bool TryGetValue(T equalValue, out T actualValue) => throw null; public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; } - public class Stack : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + public class Stack : System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public void Clear() => throw null; public bool Contains(T item) => throw null; @@ -659,7 +659,7 @@ namespace System public Stack(System.Collections.Generic.IEnumerable collection) => throw null; public Stack(int capacity) => throw null; public int EnsureCapacity(int capacity) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs index 11c944b602b..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.EventBasedAsync.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.EventBasedAsync.cs index 6baaea7207e..e79c52f78bf 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.EventBasedAsync.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.EventBasedAsync.cs @@ -32,17 +32,17 @@ namespace System public bool CancellationPending { get => throw null; } public BackgroundWorker() => throw null; protected override void Dispose(bool disposing) => throw null; - public event System.ComponentModel.DoWorkEventHandler DoWork { add { } remove { } } + public event System.ComponentModel.DoWorkEventHandler DoWork; public bool IsBusy { get => throw null; } protected virtual void OnDoWork(System.ComponentModel.DoWorkEventArgs e) => throw null; protected virtual void OnProgressChanged(System.ComponentModel.ProgressChangedEventArgs e) => throw null; protected virtual void OnRunWorkerCompleted(System.ComponentModel.RunWorkerCompletedEventArgs e) => throw null; - public event System.ComponentModel.ProgressChangedEventHandler ProgressChanged { add { } remove { } } + public event System.ComponentModel.ProgressChangedEventHandler ProgressChanged; public void ReportProgress(int percentProgress) => throw null; public void ReportProgress(int percentProgress, object userState) => throw null; public void RunWorkerAsync() => throw null; public void RunWorkerAsync(object argument) => throw null; - public event System.ComponentModel.RunWorkerCompletedEventHandler RunWorkerCompleted { add { } remove { } } + public event System.ComponentModel.RunWorkerCompletedEventHandler RunWorkerCompleted; public bool WorkerReportsProgress { get => throw null; set { } } public bool WorkerSupportsCancellation { get => throw null; set { } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs index b4c6afc5d77..84375d26247 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs @@ -47,7 +47,7 @@ namespace System protected bool DesignMode { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public event System.EventHandler Disposed { add { } remove { } } + public event System.EventHandler Disposed; protected System.ComponentModel.EventHandlerList Events { get => throw null; } protected virtual object GetService(System.Type service) => throw null; public virtual System.ComponentModel.ISite Site { get => throw null; set { } } @@ -176,7 +176,7 @@ namespace System } public interface IComponent : System.IDisposable { - event System.EventHandler Disposed { add { } remove { } } + event System.EventHandler Disposed; System.ComponentModel.ISite Site { get; set; } } public interface IContainer : System.IDisposable diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs index 1b31b88cd97..12422c0182f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs @@ -98,10 +98,10 @@ namespace System OneWay = 0, TwoWay = 1, } - public class BindingList : System.Collections.ObjectModel.Collection, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList, System.ComponentModel.ICancelAddNew, System.ComponentModel.IRaiseItemChangedEvents + public class BindingList : System.Collections.ObjectModel.Collection, System.ComponentModel.IBindingList, System.ComponentModel.ICancelAddNew, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IRaiseItemChangedEvents { void System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor prop) => throw null; - public event System.ComponentModel.AddingNewEventHandler AddingNew { add { } remove { } } + public event System.ComponentModel.AddingNewEventHandler AddingNew; public T AddNew() => throw null; object System.ComponentModel.IBindingList.AddNew() => throw null; protected virtual object AddNewCore() => throw null; @@ -123,7 +123,7 @@ namespace System protected override void InsertItem(int index, T item) => throw null; bool System.ComponentModel.IBindingList.IsSorted { get => throw null; } protected virtual bool IsSortedCore { get => throw null; } - public event System.ComponentModel.ListChangedEventHandler ListChanged { add { } remove { } } + public event System.ComponentModel.ListChangedEventHandler ListChanged; protected virtual void OnAddingNew(System.ComponentModel.AddingNewEventArgs e) => throw null; protected virtual void OnListChanged(System.ComponentModel.ListChangedEventArgs e) => throw null; public bool RaiseListChangedEvents { get => throw null; set { } } @@ -555,13 +555,13 @@ namespace System } public interface IComponentChangeService { - event System.ComponentModel.Design.ComponentEventHandler ComponentAdded { add { } remove { } } - event System.ComponentModel.Design.ComponentEventHandler ComponentAdding { add { } remove { } } - event System.ComponentModel.Design.ComponentChangedEventHandler ComponentChanged { add { } remove { } } - event System.ComponentModel.Design.ComponentChangingEventHandler ComponentChanging { add { } remove { } } - event System.ComponentModel.Design.ComponentEventHandler ComponentRemoved { add { } remove { } } - event System.ComponentModel.Design.ComponentEventHandler ComponentRemoving { add { } remove { } } - event System.ComponentModel.Design.ComponentRenameEventHandler ComponentRename { add { } remove { } } + event System.ComponentModel.Design.ComponentEventHandler ComponentAdded; + event System.ComponentModel.Design.ComponentEventHandler ComponentAdding; + event System.ComponentModel.Design.ComponentChangedEventHandler ComponentChanged; + event System.ComponentModel.Design.ComponentChangingEventHandler ComponentChanging; + event System.ComponentModel.Design.ComponentEventHandler ComponentRemoved; + event System.ComponentModel.Design.ComponentEventHandler ComponentRemoving; + event System.ComponentModel.Design.ComponentRenameEventHandler ComponentRename; void OnComponentChanged(object component, System.ComponentModel.MemberDescriptor member, object oldValue, object newValue); void OnComponentChanging(object component, System.ComponentModel.MemberDescriptor member); } @@ -584,11 +584,11 @@ namespace System public interface IDesignerEventService { System.ComponentModel.Design.IDesignerHost ActiveDesigner { get; } - event System.ComponentModel.Design.ActiveDesignerEventHandler ActiveDesignerChanged { add { } remove { } } - event System.ComponentModel.Design.DesignerEventHandler DesignerCreated { add { } remove { } } - event System.ComponentModel.Design.DesignerEventHandler DesignerDisposed { add { } remove { } } + event System.ComponentModel.Design.ActiveDesignerEventHandler ActiveDesignerChanged; + event System.ComponentModel.Design.DesignerEventHandler DesignerCreated; + event System.ComponentModel.Design.DesignerEventHandler DesignerDisposed; System.ComponentModel.Design.DesignerCollection Designers { get; } - event System.EventHandler SelectionChanged { add { } remove { } } + event System.EventHandler SelectionChanged; } public interface IDesignerFilter { @@ -602,26 +602,26 @@ namespace System public interface IDesignerHost : System.ComponentModel.Design.IServiceContainer, System.IServiceProvider { void Activate(); - event System.EventHandler Activated { add { } remove { } } + event System.EventHandler Activated; System.ComponentModel.IContainer Container { get; } System.ComponentModel.IComponent CreateComponent(System.Type componentClass); System.ComponentModel.IComponent CreateComponent(System.Type componentClass, string name); System.ComponentModel.Design.DesignerTransaction CreateTransaction(); System.ComponentModel.Design.DesignerTransaction CreateTransaction(string description); - event System.EventHandler Deactivated { add { } remove { } } + event System.EventHandler Deactivated; void DestroyComponent(System.ComponentModel.IComponent component); System.ComponentModel.Design.IDesigner GetDesigner(System.ComponentModel.IComponent component); System.Type GetType(string typeName); bool InTransaction { get; } - event System.EventHandler LoadComplete { add { } remove { } } + event System.EventHandler LoadComplete; bool Loading { get; } System.ComponentModel.IComponent RootComponent { get; } string RootComponentClassName { get; } - event System.ComponentModel.Design.DesignerTransactionCloseEventHandler TransactionClosed { add { } remove { } } - event System.ComponentModel.Design.DesignerTransactionCloseEventHandler TransactionClosing { add { } remove { } } + event System.ComponentModel.Design.DesignerTransactionCloseEventHandler TransactionClosed; + event System.ComponentModel.Design.DesignerTransactionCloseEventHandler TransactionClosing; string TransactionDescription { get; } - event System.EventHandler TransactionOpened { add { } remove { } } - event System.EventHandler TransactionOpening { add { } remove { } } + event System.EventHandler TransactionOpened; + event System.EventHandler TransactionOpening; } public interface IDesignerHostTransactionState { @@ -707,8 +707,8 @@ namespace System bool GetComponentSelected(object component); System.Collections.ICollection GetSelectedComponents(); object PrimarySelection { get; } - event System.EventHandler SelectionChanged { add { } remove { } } - event System.EventHandler SelectionChanging { add { } remove { } } + event System.EventHandler SelectionChanged; + event System.EventHandler SelectionChanging; int SelectionCount { get; } void SetSelectedComponents(System.Collections.ICollection components); void SetSelectedComponents(System.Collections.ICollection components, System.ComponentModel.Design.SelectionTypes selectionType); @@ -750,7 +750,7 @@ namespace System public class MenuCommand { public virtual bool Checked { get => throw null; set { } } - public event System.EventHandler CommandChanged { add { } remove { } } + public event System.EventHandler CommandChanged; public virtual System.ComponentModel.Design.CommandID CommandID { get => throw null; } public MenuCommand(System.EventHandler handler, System.ComponentModel.Design.CommandID command) => throw null; public virtual bool Enabled { get => throw null; set { } } @@ -824,7 +824,7 @@ namespace System void EndLoad(string baseClassName, bool successful, System.Collections.ICollection errorCollection); void Reload(); } - public interface IDesignerLoaderHost2 : System.ComponentModel.Design.IDesignerHost, System.ComponentModel.Design.IServiceContainer, System.IServiceProvider, System.ComponentModel.Design.Serialization.IDesignerLoaderHost + public interface IDesignerLoaderHost2 : System.ComponentModel.Design.IDesignerHost, System.ComponentModel.Design.Serialization.IDesignerLoaderHost, System.ComponentModel.Design.IServiceContainer, System.IServiceProvider { bool CanReloadWithErrors { get; set; } bool IgnoreErrorsDuringReload { get; set; } @@ -847,8 +847,8 @@ namespace System System.ComponentModel.PropertyDescriptorCollection Properties { get; } void RemoveSerializationProvider(System.ComponentModel.Design.Serialization.IDesignerSerializationProvider provider); void ReportError(object errorInformation); - event System.ComponentModel.Design.Serialization.ResolveNameEventHandler ResolveName { add { } remove { } } - event System.EventHandler SerializationComplete { add { } remove { } } + event System.ComponentModel.Design.Serialization.ResolveNameEventHandler ResolveName; + event System.EventHandler SerializationComplete; void SetName(object instance, string name); } public interface IDesignerSerializationProvider @@ -924,7 +924,7 @@ namespace System public abstract void Save(System.IO.Stream stream); } } - public class ServiceContainer : System.ComponentModel.Design.IServiceContainer, System.IServiceProvider, System.IDisposable + public class ServiceContainer : System.IDisposable, System.ComponentModel.Design.IServiceContainer, System.IServiceProvider { public void AddService(System.Type serviceType, System.ComponentModel.Design.ServiceCreatorCallback callback) => throw null; public virtual void AddService(System.Type serviceType, System.ComponentModel.Design.ServiceCreatorCallback callback, bool promote) => throw null; @@ -1150,7 +1150,7 @@ namespace System void ApplySort(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction); int Find(System.ComponentModel.PropertyDescriptor property, object key); bool IsSorted { get; } - event System.ComponentModel.ListChangedEventHandler ListChanged { add { } remove { } } + event System.ComponentModel.ListChangedEventHandler ListChanged; void RemoveIndex(System.ComponentModel.PropertyDescriptor property); void RemoveSort(); System.ComponentModel.ListSortDirection SortDirection { get; } @@ -1159,7 +1159,7 @@ namespace System bool SupportsSearching { get; } bool SupportsSorting { get; } } - public interface IBindingListView : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList + public interface IBindingListView : System.ComponentModel.IBindingList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { void ApplySort(System.ComponentModel.ListSortDescriptionCollection sorts); string Filter { get; set; } @@ -1226,7 +1226,7 @@ namespace System { System.ComponentModel.IComponent Owner { get; } } - public interface INestedSite : System.ComponentModel.ISite, System.IServiceProvider + public interface INestedSite : System.IServiceProvider, System.ComponentModel.ISite { string FullName { get; } } @@ -1286,7 +1286,7 @@ namespace System } public interface ISupportInitializeNotification : System.ComponentModel.ISupportInitialize { - event System.EventHandler Initialized { add { } remove { } } + event System.EventHandler Initialized; bool IsInitialized { get; } } public interface ITypeDescriptorContext : System.IServiceProvider @@ -1454,7 +1454,7 @@ namespace System public virtual bool DesignMode { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public event System.EventHandler Disposed { add { } remove { } } + public event System.EventHandler Disposed; protected System.ComponentModel.EventHandlerList Events { get => throw null; } public virtual object GetService(System.Type service) => throw null; public virtual System.ComponentModel.ISite Site { get => throw null; set { } } @@ -1666,7 +1666,7 @@ namespace System public abstract bool ShouldSerializeValue(object component); public virtual bool SupportsChangeEvents { get => throw null; } } - public class PropertyDescriptorCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.IList + public class PropertyDescriptorCollection : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.Collections.IList { public int Add(System.ComponentModel.PropertyDescriptor value) => throw null; void System.Collections.IDictionary.Add(object key, object value) => throw null; @@ -2008,7 +2008,7 @@ namespace System public static void Refresh(System.Reflection.Assembly assembly) => throw null; public static void Refresh(System.Reflection.Module module) => throw null; public static void Refresh(System.Type type) => throw null; - public static event System.ComponentModel.RefreshEventHandler Refreshed { add { } remove { } } + public static event System.ComponentModel.RefreshEventHandler Refreshed; public static void RemoveAssociation(object primary, object secondary) => throw null; public static void RemoveAssociations(object primary) => throw null; public static void RemoveProvider(System.ComponentModel.TypeDescriptionProvider provider, object instance) => throw null; @@ -2158,7 +2158,7 @@ namespace System public Timer(double interval) => throw null; public Timer(System.TimeSpan interval) => throw null; protected override void Dispose(bool disposing) => throw null; - public event System.Timers.ElapsedEventHandler Elapsed { add { } remove { } } + public event System.Timers.ElapsedEventHandler Elapsed; public bool Enabled { get => throw null; set { } } public void EndInit() => throw null; public double Interval { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs index 615f6ac0ba3..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Console.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Console.cs index 82d7a822fc0..efa545bc14d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Console.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Console.cs @@ -9,7 +9,7 @@ namespace System public static void Beep(int frequency, int duration) => throw null; public static int BufferHeight { get => throw null; set { } } public static int BufferWidth { get => throw null; set { } } - public static event System.ConsoleCancelEventHandler CancelKeyPress { add { } remove { } } + public static event System.ConsoleCancelEventHandler CancelKeyPress; public static bool CapsLock { get => throw null; } public static void Clear() => throw null; public static int CursorLeft { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs index 57a099444e5..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs index 8b9f2e0109c..482a0ff0d5b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs @@ -47,7 +47,7 @@ namespace System protected virtual int Fill(System.Data.DataSet dataSet, string srcTable, System.Data.IDataReader dataReader, int startRecord, int maxRecords) => throw null; protected virtual int Fill(System.Data.DataTable dataTable, System.Data.IDataReader dataReader) => throw null; protected virtual int Fill(System.Data.DataTable[] dataTables, System.Data.IDataReader dataReader, int startRecord, int maxRecords) => throw null; - public event System.Data.FillErrorEventHandler FillError { add { } remove { } } + public event System.Data.FillErrorEventHandler FillError; public System.Data.LoadOption FillLoadOption { get => throw null; set { } } public virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType) => throw null; protected virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable, System.Data.IDataReader dataReader) => throw null; @@ -66,7 +66,7 @@ namespace System public System.Data.Common.DataTableMappingCollection TableMappings { get => throw null; } public virtual int Update(System.Data.DataSet dataSet) => throw null; } - public sealed class DataColumnMapping : System.MarshalByRefObject, System.Data.IColumnMapping, System.ICloneable + public sealed class DataColumnMapping : System.MarshalByRefObject, System.ICloneable, System.Data.IColumnMapping { object System.ICloneable.Clone() => throw null; public DataColumnMapping() => throw null; @@ -77,7 +77,7 @@ namespace System public string SourceColumn { get => throw null; set { } } public override string ToString() => throw null; } - public sealed class DataColumnMappingCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Data.IColumnMappingCollection + public sealed class DataColumnMappingCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Data.IColumnMappingCollection, System.Collections.IEnumerable, System.Collections.IList { public int Add(object value) => throw null; public System.Data.Common.DataColumnMapping Add(string sourceColumn, string dataSetColumn) => throw null; @@ -114,7 +114,7 @@ namespace System public System.Data.Common.DataColumnMapping this[int index] { get => throw null; set { } } public System.Data.Common.DataColumnMapping this[string sourceColumn] { get => throw null; set { } } } - public sealed class DataTableMapping : System.MarshalByRefObject, System.Data.ITableMapping, System.ICloneable + public sealed class DataTableMapping : System.MarshalByRefObject, System.ICloneable, System.Data.ITableMapping { object System.ICloneable.Clone() => throw null; public System.Data.Common.DataColumnMappingCollection ColumnMappings { get => throw null; } @@ -165,7 +165,7 @@ namespace System public System.Data.Common.DataTableMapping this[int index] { get => throw null; set { } } public System.Data.Common.DataTableMapping this[string sourceTable] { get => throw null; set { } } } - public abstract class DbBatch : System.IDisposable, System.IAsyncDisposable + public abstract class DbBatch : System.IAsyncDisposable, System.IDisposable { public System.Data.Common.DbBatchCommandCollection BatchCommands { get => throw null; } public abstract void Cancel(); @@ -201,7 +201,7 @@ namespace System public System.Data.Common.DbParameterCollection Parameters { get => throw null; } public abstract int RecordsAffected { get; } } - public abstract class DbBatchCommandCollection : System.Collections.Generic.IList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + public abstract class DbBatchCommandCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList { public abstract void Add(System.Data.Common.DbBatchCommand item); public abstract void Clear(); @@ -248,7 +248,7 @@ namespace System public virtual object this[string property] { get => throw null; } public string UdtAssemblyQualifiedName { get => throw null; set { } } } - public abstract class DbCommand : System.ComponentModel.Component, System.Data.IDbCommand, System.IDisposable, System.IAsyncDisposable + public abstract class DbCommand : System.ComponentModel.Component, System.IAsyncDisposable, System.Data.IDbCommand, System.IDisposable { public abstract void Cancel(); public abstract string CommandText { get; set; } @@ -319,7 +319,7 @@ namespace System protected abstract void SetRowUpdatingHandler(System.Data.Common.DbDataAdapter adapter); public virtual string UnquoteIdentifier(string quotedIdentifier) => throw null; } - public abstract class DbConnection : System.ComponentModel.Component, System.Data.IDbConnection, System.IDisposable, System.IAsyncDisposable + public abstract class DbConnection : System.ComponentModel.Component, System.IAsyncDisposable, System.Data.IDbConnection, System.IDisposable { protected abstract System.Data.Common.DbTransaction BeginDbTransaction(System.Data.IsolationLevel isolationLevel); protected virtual System.Threading.Tasks.ValueTask BeginDbTransactionAsync(System.Data.IsolationLevel isolationLevel, System.Threading.CancellationToken cancellationToken) => throw null; @@ -359,9 +359,9 @@ namespace System public virtual System.Threading.Tasks.Task OpenAsync(System.Threading.CancellationToken cancellationToken) => throw null; public abstract string ServerVersion { get; } public abstract System.Data.ConnectionState State { get; } - public virtual event System.Data.StateChangeEventHandler StateChange { add { } remove { } } + public virtual event System.Data.StateChangeEventHandler StateChange; } - public class DbConnectionStringBuilder : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary, System.ComponentModel.ICustomTypeDescriptor + public class DbConnectionStringBuilder : System.Collections.ICollection, System.ComponentModel.ICustomTypeDescriptor, System.Collections.IDictionary, System.Collections.IEnumerable { public void Add(string keyword, object value) => throw null; void System.Collections.IDictionary.Add(object keyword, object value) => throw null; @@ -407,7 +407,7 @@ namespace System public virtual bool TryGetValue(string keyword, out object value) => throw null; public virtual System.Collections.ICollection Values { get => throw null; } } - public abstract class DbDataAdapter : System.Data.Common.DataAdapter, System.Data.IDataAdapter, System.Data.IDbDataAdapter, System.ICloneable + public abstract class DbDataAdapter : System.Data.Common.DataAdapter, System.ICloneable, System.Data.IDataAdapter, System.Data.IDbDataAdapter { protected virtual int AddToBatch(System.Data.IDbCommand command) => throw null; protected virtual void ClearBatch() => throw null; @@ -416,7 +416,7 @@ namespace System protected virtual System.Data.Common.RowUpdatingEventArgs CreateRowUpdatingEvent(System.Data.DataRow dataRow, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) => throw null; protected DbDataAdapter() => throw null; protected DbDataAdapter(System.Data.Common.DbDataAdapter adapter) => throw null; - public static string DefaultSourceTableName; + public const string DefaultSourceTableName = default; public System.Data.Common.DbCommand DeleteCommand { get => throw null; set { } } System.Data.IDbCommand System.Data.IDbDataAdapter.DeleteCommand { get => throw null; set { } } protected override void Dispose(bool disposing) => throw null; @@ -455,7 +455,7 @@ namespace System System.Data.IDbCommand System.Data.IDbDataAdapter.UpdateCommand { get => throw null; set { } } public System.Data.Common.DbCommand UpdateCommand { get => throw null; set { } } } - public abstract class DbDataReader : System.MarshalByRefObject, System.Collections.IEnumerable, System.Data.IDataReader, System.Data.IDataRecord, System.IDisposable, System.IAsyncDisposable + public abstract class DbDataReader : System.MarshalByRefObject, System.IAsyncDisposable, System.Data.IDataReader, System.Data.IDataRecord, System.IDisposable, System.Collections.IEnumerable { public virtual void Close() => throw null; public virtual System.Threading.Tasks.Task CloseAsync() => throw null; @@ -563,7 +563,7 @@ namespace System public abstract object this[int i] { get; } public abstract object this[string name] { get; } } - public abstract class DbDataSource : System.IDisposable, System.IAsyncDisposable + public abstract class DbDataSource : System.IAsyncDisposable, System.IDisposable { public abstract string ConnectionString { get; } public System.Data.Common.DbBatch CreateBatch() => throw null; @@ -681,7 +681,7 @@ namespace System public virtual System.Data.DataRowVersion SourceVersion { get => throw null; set { } } public abstract object Value { get; set; } } - public abstract class DbParameterCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Data.IDataParameterCollection + public abstract class DbParameterCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Data.IDataParameterCollection, System.Collections.IEnumerable, System.Collections.IList { int System.Collections.IList.Add(object value) => throw null; public abstract int Add(object value); @@ -752,7 +752,7 @@ namespace System public DbProviderSpecificTypePropertyAttribute(bool isProviderSpecificTypeProperty) => throw null; public bool IsProviderSpecificTypeProperty { get => throw null; } } - public abstract class DbTransaction : System.MarshalByRefObject, System.Data.IDbTransaction, System.IDisposable, System.IAsyncDisposable + public abstract class DbTransaction : System.MarshalByRefObject, System.IAsyncDisposable, System.Data.IDbTransaction, System.IDisposable { public abstract void Commit(); public virtual System.Threading.Tasks.Task CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; @@ -900,7 +900,7 @@ namespace System public void AddRange(System.Data.Constraint[] constraints) => throw null; public bool CanRemove(System.Data.Constraint constraint) => throw null; public void Clear() => throw null; - public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged { add { } remove { } } + public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged; public bool Contains(string name) => throw null; public void CopyTo(System.Data.Constraint[] array, int index) => throw null; public int IndexOf(System.Data.Constraint constraint) => throw null; @@ -970,7 +970,7 @@ namespace System public void AddRange(System.Data.DataColumn[] columns) => throw null; public bool CanRemove(System.Data.DataColumn column) => throw null; public void Clear() => throw null; - public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged { add { } remove { } } + public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged; public bool Contains(string name) => throw null; public void CopyTo(System.Data.DataColumn[] array, int index) => throw null; public int IndexOf(System.Data.DataColumn column) => throw null; @@ -1054,7 +1054,7 @@ namespace System public virtual void AddRange(System.Data.DataRelation[] relations) => throw null; public virtual bool CanRemove(System.Data.DataRelation relation) => throw null; public virtual void Clear() => throw null; - public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged { add { } remove { } } + public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged; public virtual bool Contains(string name) => throw null; public void CopyTo(System.Data.DataRelation[] array, int index) => throw null; protected DataRelationCollection() => throw null; @@ -1229,13 +1229,13 @@ namespace System public bool IsEdit { get => throw null; } public bool IsNew { get => throw null; } string System.ComponentModel.IDataErrorInfo.this[string colName] { get => throw null; } - public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; public System.Data.DataRow Row { get => throw null; } public System.Data.DataRowVersion RowVersion { get => throw null; } public object this[int ndx] { get => throw null; set { } } public object this[string property] { get => throw null; set { } } } - public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable + public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.Runtime.Serialization.ISerializable, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.Xml.Serialization.IXmlSerializable { public void AcceptChanges() => throw null; public void BeginInit() => throw null; @@ -1274,7 +1274,7 @@ namespace System public void InferXmlSchema(System.IO.TextReader reader, string[] nsArray) => throw null; public void InferXmlSchema(string fileName, string[] nsArray) => throw null; public void InferXmlSchema(System.Xml.XmlReader reader, string[] nsArray) => throw null; - public event System.EventHandler Initialized { add { } remove { } } + public event System.EventHandler Initialized; protected virtual void InitializeDerivedDataSet() => throw null; protected bool IsBinarySerialized(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public bool IsInitialized { get => throw null; } @@ -1289,7 +1289,7 @@ namespace System public void Merge(System.Data.DataSet dataSet, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction) => throw null; public void Merge(System.Data.DataTable table) => throw null; public void Merge(System.Data.DataTable table, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction) => throw null; - public event System.Data.MergeFailedEventHandler MergeFailed { add { } remove { } } + public event System.Data.MergeFailedEventHandler MergeFailed; public string Namespace { get => throw null; set { } } protected virtual void OnPropertyChanging(System.ComponentModel.PropertyChangedEventArgs pcevent) => throw null; protected virtual void OnRemoveRelation(System.Data.DataRelation relation) => throw null; @@ -1349,7 +1349,7 @@ namespace System public DataSysDescriptionAttribute(string description) => throw null; public override string Description { get => throw null; } } - public class DataTable : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable + public class DataTable : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.Runtime.Serialization.ISerializable, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.Xml.Serialization.IXmlSerializable { public void AcceptChanges() => throw null; public virtual void BeginInit() => throw null; @@ -1358,8 +1358,8 @@ namespace System public System.Data.DataRelationCollection ChildRelations { get => throw null; } public void Clear() => throw null; public virtual System.Data.DataTable Clone() => throw null; - public event System.Data.DataColumnChangeEventHandler ColumnChanged { add { } remove { } } - public event System.Data.DataColumnChangeEventHandler ColumnChanging { add { } remove { } } + public event System.Data.DataColumnChangeEventHandler ColumnChanged; + public event System.Data.DataColumnChangeEventHandler ColumnChanging; public System.Data.DataColumnCollection Columns { get => throw null; } public object Compute(string expression, string filter) => throw null; public System.Data.ConstraintCollection Constraints { get => throw null; } @@ -1389,7 +1389,7 @@ namespace System System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; public bool HasErrors { get => throw null; } public void ImportRow(System.Data.DataRow row) => throw null; - public event System.EventHandler Initialized { add { } remove { } } + public event System.EventHandler Initialized; public bool IsInitialized { get => throw null; } public void Load(System.Data.IDataReader reader) => throw null; public void Load(System.Data.IDataReader reader, System.Data.LoadOption loadOption) => throw null; @@ -1432,20 +1432,20 @@ namespace System public void RejectChanges() => throw null; public System.Data.SerializationFormat RemotingFormat { get => throw null; set { } } public virtual void Reset() => throw null; - public event System.Data.DataRowChangeEventHandler RowChanged { add { } remove { } } - public event System.Data.DataRowChangeEventHandler RowChanging { add { } remove { } } - public event System.Data.DataRowChangeEventHandler RowDeleted { add { } remove { } } - public event System.Data.DataRowChangeEventHandler RowDeleting { add { } remove { } } + public event System.Data.DataRowChangeEventHandler RowChanged; + public event System.Data.DataRowChangeEventHandler RowChanging; + public event System.Data.DataRowChangeEventHandler RowDeleted; + public event System.Data.DataRowChangeEventHandler RowDeleting; public System.Data.DataRowCollection Rows { get => throw null; } public System.Data.DataRow[] Select() => throw null; public System.Data.DataRow[] Select(string filterExpression) => throw null; public System.Data.DataRow[] Select(string filterExpression, string sort) => throw null; public System.Data.DataRow[] Select(string filterExpression, string sort, System.Data.DataViewRowState recordStates) => throw null; public override System.ComponentModel.ISite Site { get => throw null; set { } } - public event System.Data.DataTableClearEventHandler TableCleared { add { } remove { } } - public event System.Data.DataTableClearEventHandler TableClearing { add { } remove { } } + public event System.Data.DataTableClearEventHandler TableCleared; + public event System.Data.DataTableClearEventHandler TableClearing; public string TableName { get => throw null; set { } } - public event System.Data.DataTableNewRowEventHandler TableNewRow { add { } remove { } } + public event System.Data.DataTableNewRowEventHandler TableNewRow; public override string ToString() => throw null; void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public void WriteXml(System.IO.Stream stream) => throw null; @@ -1490,8 +1490,8 @@ namespace System public void AddRange(System.Data.DataTable[] tables) => throw null; public bool CanRemove(System.Data.DataTable table) => throw null; public void Clear() => throw null; - public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged { add { } remove { } } - public event System.ComponentModel.CollectionChangeEventHandler CollectionChanging { add { } remove { } } + public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged; + public event System.ComponentModel.CollectionChangeEventHandler CollectionChanging; public bool Contains(string name) => throw null; public bool Contains(string name, string tableNamespace) => throw null; public void CopyTo(System.Data.DataTable[] array, int index) => throw null; @@ -1563,7 +1563,7 @@ namespace System public override object this[int ordinal] { get => throw null; } public override object this[string name] { get => throw null; } } - public class DataView : System.ComponentModel.MarshalByValueComponent, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList, System.ComponentModel.IBindingListView, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList + public class DataView : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IBindingList, System.ComponentModel.IBindingListView, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList { int System.Collections.IList.Add(object value) => throw null; void System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor property) => throw null; @@ -1604,7 +1604,7 @@ namespace System string System.ComponentModel.ITypedList.GetListName(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; protected virtual void IndexListChanged(object sender, System.ComponentModel.ListChangedEventArgs e) => throw null; int System.Collections.IList.IndexOf(object value) => throw null; - public event System.EventHandler Initialized { add { } remove { } } + public event System.EventHandler Initialized; void System.Collections.IList.Insert(int index, object value) => throw null; bool System.Collections.IList.IsFixedSize { get => throw null; } public bool IsInitialized { get => throw null; } @@ -1613,7 +1613,7 @@ namespace System bool System.ComponentModel.IBindingList.IsSorted { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } object System.Collections.IList.this[int recordIndex] { get => throw null; set { } } - public event System.ComponentModel.ListChangedEventHandler ListChanged { add { } remove { } } + public event System.ComponentModel.ListChangedEventHandler ListChanged; protected virtual void OnListChanged(System.ComponentModel.ListChangedEventArgs e) => throw null; protected void Open() => throw null; void System.Collections.IList.Remove(object value) => throw null; @@ -1643,7 +1643,7 @@ namespace System protected void UpdateIndex() => throw null; protected virtual void UpdateIndex(bool force) => throw null; } - public class DataViewManager : System.ComponentModel.MarshalByValueComponent, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList, System.ComponentModel.ITypedList + public class DataViewManager : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IBindingList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.ITypedList { int System.Collections.IList.Add(object value) => throw null; void System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor property) => throw null; @@ -1673,7 +1673,7 @@ namespace System bool System.ComponentModel.IBindingList.IsSorted { get => throw null; } bool System.Collections.ICollection.IsSynchronized { get => throw null; } object System.Collections.IList.this[int index] { get => throw null; set { } } - public event System.ComponentModel.ListChangedEventHandler ListChanged { add { } remove { } } + public event System.ComponentModel.ListChangedEventHandler ListChanged; protected virtual void OnListChanged(System.ComponentModel.ListChangedEventArgs e) => throw null; protected virtual void RelationCollectionChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) => throw null; void System.Collections.IList.Remove(object value) => throw null; @@ -2171,7 +2171,7 @@ namespace System public SqlAlreadyFilledException(string message) => throw null; public SqlAlreadyFilledException(string message, System.Exception e) => throw null; } - public struct SqlBinary : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlBinary : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBinary Add(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlBinary value) => throw null; @@ -2210,7 +2210,7 @@ namespace System public static System.Data.SqlTypes.SqlBinary WrapBytes(byte[] bytes) => throw null; void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; } - public struct SqlBoolean : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlBoolean : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean And(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; public byte ByteValue { get => throw null; } @@ -2279,7 +2279,7 @@ namespace System public static System.Data.SqlTypes.SqlBoolean Xor(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; public static System.Data.SqlTypes.SqlBoolean Zero; } - public struct SqlByte : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlByte : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlByte Add(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlByte BitwiseAnd(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; @@ -2416,7 +2416,7 @@ namespace System BinarySort2 = 16384, BinarySort = 32768, } - public struct SqlDateTime : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlDateTime : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlDateTime Add(System.Data.SqlTypes.SqlDateTime x, System.TimeSpan t) => throw null; public int CompareTo(System.Data.SqlTypes.SqlDateTime value) => throw null; @@ -2466,7 +2466,7 @@ namespace System public System.DateTime Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; } - public struct SqlDecimal : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlDecimal : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlDecimal Abs(System.Data.SqlTypes.SqlDecimal n) => throw null; public static System.Data.SqlTypes.SqlDecimal Add(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; @@ -2552,7 +2552,7 @@ namespace System public int WriteTdsValue(System.Span destination) => throw null; void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; } - public struct SqlDouble : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlDouble : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlDouble Add(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlDouble value) => throw null; @@ -2614,7 +2614,7 @@ namespace System void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlDouble Zero; } - public struct SqlGuid : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlGuid : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public int CompareTo(System.Data.SqlTypes.SqlGuid value) => throw null; public int CompareTo(object value) => throw null; @@ -2654,7 +2654,7 @@ namespace System public System.Guid Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; } - public struct SqlInt16 : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlInt16 : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlInt16 Add(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlInt16 BitwiseAnd(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; @@ -2727,7 +2727,7 @@ namespace System public static System.Data.SqlTypes.SqlInt16 Xor(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlInt16 Zero; } - public struct SqlInt32 : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlInt32 : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlInt32 Add(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlInt32 BitwiseAnd(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; @@ -2800,7 +2800,7 @@ namespace System public static System.Data.SqlTypes.SqlInt32 Xor(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlInt32 Zero; } - public struct SqlInt64 : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlInt64 : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlInt64 Add(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlInt64 BitwiseAnd(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; @@ -2873,7 +2873,7 @@ namespace System public static System.Data.SqlTypes.SqlInt64 Xor(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlInt64 Zero; } - public struct SqlMoney : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlMoney : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlMoney Add(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlMoney value) => throw null; @@ -2958,7 +2958,7 @@ namespace System public SqlNullValueException(string message) => throw null; public SqlNullValueException(string message, System.Exception e) => throw null; } - public struct SqlSingle : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlSingle : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlSingle Add(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; public int CompareTo(System.Data.SqlTypes.SqlSingle value) => throw null; @@ -3021,7 +3021,7 @@ namespace System void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlSingle Zero; } - public struct SqlString : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable, System.IEquatable + public struct SqlString : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlString Add(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static int BinarySort; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs index 348ca6b7327..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs index 05f7345560e..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Contracts.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Contracts.cs index 094a3b550bb..5f4667d35df 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Contracts.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Contracts.cs @@ -12,7 +12,7 @@ namespace System public static void Assert(bool condition, string userMessage) => throw null; public static void Assume(bool condition) => throw null; public static void Assume(bool condition, string userMessage) => throw null; - public static event System.EventHandler ContractFailed { add { } remove { } } + public static event System.EventHandler ContractFailed; public static void EndContractBlock() => throw null; public static void Ensures(bool condition) => throw null; public static void Ensures(bool condition, string userMessage) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs index 73a71d02dc1..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Diagnostics.Debug, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.DiagnosticSource.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.DiagnosticSource.cs index 401e9ecc2f7..daebba2e1d9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.DiagnosticSource.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.DiagnosticSource.cs @@ -15,7 +15,7 @@ namespace System public System.Diagnostics.ActivityContext Context { get => throw null; } public Activity(string operationName) => throw null; public static System.Diagnostics.Activity Current { get => throw null; set { } } - public static event System.EventHandler CurrentChanged { add { } remove { } } + public static event System.EventHandler CurrentChanged; public static System.Diagnostics.ActivityIdFormat DefaultIdFormat { get => throw null; set { } } public string DisplayName { get => throw null; set { } } public void Dispose() => throw null; @@ -193,7 +193,7 @@ namespace System Ok = 1, Error = 2, } - public class ActivityTagsCollection : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public class ActivityTagsCollection : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { public void Add(string key, object value) => throw null; public void Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -204,7 +204,7 @@ namespace System public int Count { get => throw null; } public ActivityTagsCollection() => throw null; public ActivityTagsCollection(System.Collections.Generic.IEnumerable> list) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -408,7 +408,7 @@ namespace System } } public delegate System.Diagnostics.ActivitySamplingResult SampleActivity(ref System.Diagnostics.ActivityCreationOptions options); - public struct TagList : System.Collections.Generic.IList>, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyList>, System.Collections.Generic.IReadOnlyCollection> + public struct TagList : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IList>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> { public void Add(string key, object value) => throw null; public void Add(System.Collections.Generic.KeyValuePair tag) => throw null; @@ -418,7 +418,7 @@ namespace System public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; public int Count { get => throw null; } public TagList(System.ReadOnlySpan> tagList) => throw null; - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Process.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Process.cs index eb20e488b3a..8e00f43bcf1 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Process.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Process.cs @@ -42,9 +42,9 @@ namespace System protected override void Dispose(bool disposing) => throw null; public bool EnableRaisingEvents { get => throw null; set { } } public static void EnterDebugMode() => throw null; - public event System.Diagnostics.DataReceivedEventHandler ErrorDataReceived { add { } remove { } } + public event System.Diagnostics.DataReceivedEventHandler ErrorDataReceived; public int ExitCode { get => throw null; } - public event System.EventHandler Exited { add { } remove { } } + public event System.EventHandler Exited; public System.DateTime ExitTime { get => throw null; } public static System.Diagnostics.Process GetCurrentProcess() => throw null; public static System.Diagnostics.Process GetProcessById(int processId) => throw null; @@ -70,7 +70,7 @@ namespace System public int NonpagedSystemMemorySize { get => throw null; } public long NonpagedSystemMemorySize64 { get => throw null; } protected void OnExited() => throw null; - public event System.Diagnostics.DataReceivedEventHandler OutputDataReceived { add { } remove { } } + public event System.Diagnostics.DataReceivedEventHandler OutputDataReceived; public int PagedMemorySize { get => throw null; } public long PagedMemorySize64 { get => throw null; } public int PagedSystemMemorySize { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs index 07649dc7b6d..a9fe8c2fc62 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs @@ -18,7 +18,7 @@ namespace System public virtual int GetILOffset() => throw null; public virtual System.Reflection.MethodBase GetMethod() => throw null; public virtual int GetNativeOffset() => throw null; - public static int OFFSET_UNKNOWN; + public const int OFFSET_UNKNOWN = default; public override string ToString() => throw null; } public static partial class StackFrameExtensions @@ -44,7 +44,7 @@ namespace System public virtual int FrameCount { get => throw null; } public virtual System.Diagnostics.StackFrame GetFrame(int index) => throw null; public virtual System.Diagnostics.StackFrame[] GetFrames() => throw null; - public static int METHODS_TO_SKIP; + public const int METHODS_TO_SKIP = default; public override string ToString() => throw null; } namespace SymbolStore diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs index fd79833c97e..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Diagnostics.Tools, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TraceSource.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TraceSource.cs index 9f88d1ac5ce..cd0bc602496 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TraceSource.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.TraceSource.cs @@ -81,7 +81,7 @@ namespace System public string Description { get => throw null; } public string DisplayName { get => throw null; } protected virtual string[] GetSupportedAttributes() => throw null; - public static event System.EventHandler Initializing { add { } remove { } } + public static event System.EventHandler Initializing; protected virtual void OnSwitchSettingChanged() => throw null; protected virtual void OnValueChanged() => throw null; public void Refresh() => throw null; @@ -117,7 +117,7 @@ namespace System public static int IndentSize { get => throw null; set { } } public static System.Diagnostics.TraceListenerCollection Listeners { get => throw null; } public static void Refresh() => throw null; - public static event System.EventHandler Refreshing { add { } remove { } } + public static event System.EventHandler Refreshing; public static void TraceError(string message) => throw null; public static void TraceError(string format, params object[] args) => throw null; public static void TraceInformation(string message) => throw null; @@ -263,7 +263,7 @@ namespace System public System.Diagnostics.SourceLevels DefaultLevel { get => throw null; } public void Flush() => throw null; protected virtual string[] GetSupportedAttributes() => throw null; - public static event System.EventHandler Initializing { add { } remove { } } + public static event System.EventHandler Initializing; public System.Diagnostics.TraceListenerCollection Listeners { get => throw null; } public string Name { get => throw null; } public System.Diagnostics.SourceSwitch Switch { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tracing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tracing.cs index 353eb1996d4..25bdb670c50 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tracing.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tracing.cs @@ -127,9 +127,9 @@ namespace System public void EnableEvents(System.Diagnostics.Tracing.EventSource eventSource, System.Diagnostics.Tracing.EventLevel level) => throw null; public void EnableEvents(System.Diagnostics.Tracing.EventSource eventSource, System.Diagnostics.Tracing.EventLevel level, System.Diagnostics.Tracing.EventKeywords matchAnyKeyword) => throw null; public void EnableEvents(System.Diagnostics.Tracing.EventSource eventSource, System.Diagnostics.Tracing.EventLevel level, System.Diagnostics.Tracing.EventKeywords matchAnyKeyword, System.Collections.Generic.IDictionary arguments) => throw null; - public event System.EventHandler EventSourceCreated { add { } remove { } } + public event System.EventHandler EventSourceCreated; protected static int EventSourceIndex(System.Diagnostics.Tracing.EventSource eventSource) => throw null; - public event System.EventHandler EventWritten { add { } remove { } } + public event System.EventHandler EventWritten; protected virtual void OnEventSourceCreated(System.Diagnostics.Tracing.EventSource eventSource) => throw null; protected virtual void OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs eventData) => throw null; } @@ -169,7 +169,7 @@ namespace System public static System.Guid CurrentThreadActivityId { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public event System.EventHandler EventCommandExecuted { add { } remove { } } + public event System.EventHandler EventCommandExecuted; protected struct EventData { public nint DataPointer { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs index 276afb953f7..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs index 3fde3ab894e..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Dynamic.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs index 2b71a1a6508..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Globalization.Calendars, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs index 63a6ec83418..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Globalization.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs index 875c58efa3b..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Globalization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs index 7275a34a891..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs index 10eaf2f92c5..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.IO.FileSystem.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Watcher.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Watcher.cs index 97d776bef42..1f2f1cb359d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Watcher.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Watcher.cs @@ -21,16 +21,16 @@ namespace System public class FileSystemWatcher : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize { public void BeginInit() => throw null; - public event System.IO.FileSystemEventHandler Changed { add { } remove { } } - public event System.IO.FileSystemEventHandler Created { add { } remove { } } + public event System.IO.FileSystemEventHandler Changed; + public event System.IO.FileSystemEventHandler Created; public FileSystemWatcher() => throw null; public FileSystemWatcher(string path) => throw null; public FileSystemWatcher(string path, string filter) => throw null; - public event System.IO.FileSystemEventHandler Deleted { add { } remove { } } + public event System.IO.FileSystemEventHandler Deleted; protected override void Dispose(bool disposing) => throw null; public bool EnableRaisingEvents { get => throw null; set { } } public void EndInit() => throw null; - public event System.IO.ErrorEventHandler Error { add { } remove { } } + public event System.IO.ErrorEventHandler Error; public string Filter { get => throw null; set { } } public System.Collections.ObjectModel.Collection Filters { get => throw null; } public bool IncludeSubdirectories { get => throw null; set { } } @@ -42,7 +42,7 @@ namespace System protected void OnError(System.IO.ErrorEventArgs e) => throw null; protected void OnRenamed(System.IO.RenamedEventArgs e) => throw null; public string Path { get => throw null; set { } } - public event System.IO.RenamedEventHandler Renamed { add { } remove { } } + public event System.IO.RenamedEventHandler Renamed; public override System.ComponentModel.ISite Site { get => throw null; set { } } public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get => throw null; set { } } public System.IO.WaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs index 03c89ca4854..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.IO.FileSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs index 539a2b3727a..eceaee3005a 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs @@ -77,7 +77,7 @@ namespace System public void Disconnect() => throw null; public void EndWaitForConnection(System.IAsyncResult asyncResult) => throw null; public string GetImpersonationUserName() => throw null; - public static int MaxAllowedServerInstances; + public const int MaxAllowedServerInstances = default; public void RunAsClient(System.IO.Pipes.PipeStreamImpersonationWorker impersonationWorker) => throw null; public void WaitForConnection() => throw null; public System.Threading.Tasks.Task WaitForConnectionAsync() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs index 4bdd5f6fead..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.IO.UnmanagedMemoryStream, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs index f6f753a6ae2..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.IO, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs index 093995b1b28..2fb0a6079be 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs @@ -124,7 +124,7 @@ namespace System public virtual bool TrySetMember(System.Dynamic.SetMemberBinder binder, object value) => throw null; public virtual bool TryUnaryOperation(System.Dynamic.UnaryOperationBinder binder, out object result) => throw null; } - public sealed class ExpandoObject : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.ComponentModel.INotifyPropertyChanged, System.Dynamic.IDynamicMetaObjectProvider + public sealed class ExpandoObject : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Dynamic.IDynamicMetaObjectProvider, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.ComponentModel.INotifyPropertyChanged { void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; void System.Collections.Generic.IDictionary.Add(string key, object value) => throw null; @@ -1119,7 +1119,7 @@ namespace System int Count { get; } object this[int index] { get; set; } } - public sealed class ReadOnlyCollectionBuilder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.ICollection, System.Collections.IList + public sealed class ReadOnlyCollectionBuilder : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.IList { public void Add(T item) => throw null; int System.Collections.IList.Add(object value) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Queryable.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Queryable.cs index 2e959d9b18a..687e7852f4b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Queryable.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Queryable.cs @@ -14,7 +14,7 @@ namespace System public abstract class EnumerableQuery { } - public class EnumerableQuery : System.Linq.EnumerableQuery, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IQueryProvider + public class EnumerableQuery : System.Linq.EnumerableQuery, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IOrderedQueryable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IQueryable, System.Linq.IQueryProvider { System.Linq.IQueryable System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression expression) => throw null; System.Linq.IQueryable System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression expression) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs index f0c21acd484..878a311f329 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs @@ -225,8 +225,8 @@ namespace System public override int GetHashCode() => throw null; public bool HasPrecision { get => throw null; } public bool IsDefault { get => throw null; } - public static byte MaxPrecision; - public static byte NoPrecision; + public const byte MaxPrecision = default; + public const byte NoPrecision = default; public static bool operator ==(System.Buffers.StandardFormat left, System.Buffers.StandardFormat right) => throw null; public static implicit operator System.Buffers.StandardFormat(char symbol) => throw null; public static bool operator !=(System.Buffers.StandardFormat left, System.Buffers.StandardFormat right) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.cs index 40263d28024..a7447529802 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Http.cs @@ -133,7 +133,7 @@ namespace System public struct HeaderStringValues : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public string Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -182,7 +182,7 @@ namespace System public bool Contains(string headerName) => throw null; bool System.Collections.Generic.IReadOnlyDictionary.ContainsKey(string key) => throw null; public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -663,7 +663,7 @@ namespace System public System.Version Version { get => throw null; set { } } public System.Net.Http.HttpVersionPolicy VersionPolicy { get => throw null; set { } } } - public sealed class HttpRequestOptions : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + public sealed class HttpRequestOptions : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { void System.Collections.Generic.IDictionary.Add(string key, object value) => throw null; void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Mail.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Mail.cs index b8a3e0b0d64..fb47c2f5558 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Mail.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Mail.cs @@ -177,7 +177,7 @@ namespace System public void SendAsync(System.Net.Mail.MailMessage message, object userToken) => throw null; public void SendAsync(string from, string recipients, string subject, string body, object userToken) => throw null; public void SendAsyncCancel() => throw null; - public event System.Net.Mail.SendCompletedEventHandler SendCompleted { add { } remove { } } + public event System.Net.Mail.SendCompletedEventHandler SendCompleted; public System.Threading.Tasks.Task SendMailAsync(System.Net.Mail.MailMessage message) => throw null; public System.Threading.Tasks.Task SendMailAsync(string from, string recipients, string subject, string body) => throw null; public System.Threading.Tasks.Task SendMailAsync(System.Net.Mail.MailMessage message, System.Threading.CancellationToken cancellationToken) => throw null; @@ -296,33 +296,33 @@ namespace System } public static class DispositionTypeNames { - public static string Attachment; - public static string Inline; + public const string Attachment = default; + public const string Inline = default; } public static class MediaTypeNames { public static class Application { - public static string Json; - public static string Octet; - public static string Pdf; - public static string Rtf; - public static string Soap; - public static string Xml; - public static string Zip; + public const string Json = default; + public const string Octet = default; + public const string Pdf = default; + public const string Rtf = default; + public const string Soap = default; + public const string Xml = default; + public const string Zip = default; } public static class Image { - public static string Gif; - public static string Jpeg; - public static string Tiff; + public const string Gif = default; + public const string Jpeg = default; + public const string Tiff = default; } public static class Text { - public static string Html; - public static string Plain; - public static string RichText; - public static string Xml; + public const string Html = default; + public const string Plain = default; + public const string RichText = default; + public const string Xml = default; } } public enum TransferEncoding diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs index d2d408fe7ac..bbf3122d65c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs @@ -277,8 +277,8 @@ namespace System public class NetworkChange { public NetworkChange() => throw null; - public static event System.Net.NetworkInformation.NetworkAddressChangedEventHandler NetworkAddressChanged { add { } remove { } } - public static event System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler NetworkAvailabilityChanged { add { } remove { } } + public static event System.Net.NetworkInformation.NetworkAddressChangedEventHandler NetworkAddressChanged; + public static event System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler NetworkAvailabilityChanged; public static void RegisterNetworkChange(System.Net.NetworkInformation.NetworkChange nc) => throw null; } public class NetworkInformationException : System.ComponentModel.Win32Exception diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Ping.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Ping.cs index 0ef06b00716..6436d83363b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Ping.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Ping.cs @@ -38,7 +38,7 @@ namespace System public Ping() => throw null; protected override void Dispose(bool disposing) => throw null; protected void OnPingCompleted(System.Net.NetworkInformation.PingCompletedEventArgs e) => throw null; - public event System.Net.NetworkInformation.PingCompletedEventHandler PingCompleted { add { } remove { } } + public event System.Net.NetworkInformation.PingCompletedEventHandler PingCompleted; public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address) => throw null; public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout) => throw null; public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout, byte[] buffer) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs index f12a014eb97..89845583bbd 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs @@ -59,7 +59,7 @@ namespace System public string Value { get => throw null; set { } } public int Version { get => throw null; set { } } } - public class CookieCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + public class CookieCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public void Add(System.Net.Cookie cookie) => throw null; public void Add(System.Net.CookieCollection cookies) => throw null; @@ -89,9 +89,9 @@ namespace System public CookieContainer() => throw null; public CookieContainer(int capacity) => throw null; public CookieContainer(int capacity, int perDomainCapacity, int maxCookieSize) => throw null; - public static int DefaultCookieLengthLimit; - public static int DefaultCookieLimit; - public static int DefaultPerDomainCookieLimit; + public const int DefaultCookieLengthLimit = default; + public const int DefaultCookieLimit = default; + public const int DefaultPerDomainCookieLimit = default; public System.Net.CookieCollection GetAllCookies() => throw null; public string GetCookieHeader(System.Uri uri) => throw null; public System.Net.CookieCollection GetCookies(System.Uri uri) => throw null; @@ -106,7 +106,7 @@ namespace System public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; } - public class CredentialCache : System.Collections.IEnumerable, System.Net.ICredentials, System.Net.ICredentialsByHost + public class CredentialCache : System.Net.ICredentials, System.Net.ICredentialsByHost, System.Collections.IEnumerable { public void Add(string host, int port, string authenticationType, System.Net.NetworkCredential credential) => throw null; public void Add(System.Uri uriPrefix, string authType, System.Net.NetworkCredential cred) => throw null; @@ -283,8 +283,8 @@ namespace System public IPEndPoint(System.Net.IPAddress address, int port) => throw null; public override bool Equals(object comparand) => throw null; public override int GetHashCode() => throw null; - public static int MaxPort; - public static int MinPort; + public const int MaxPort = default; + public const int MinPort = default; public static System.Net.IPEndPoint Parse(System.ReadOnlySpan s) => throw null; public static System.Net.IPEndPoint Parse(string s) => throw null; public int Port { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Requests.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Requests.cs index 9f385a4b827..db193edc236 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Requests.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Requests.cs @@ -394,33 +394,33 @@ namespace System { public static class File { - public static string DownloadFile; - public static string UploadFile; + public const string DownloadFile = default; + public const string UploadFile = default; } public static class Ftp { - public static string AppendFile; - public static string DeleteFile; - public static string DownloadFile; - public static string GetDateTimestamp; - public static string GetFileSize; - public static string ListDirectory; - public static string ListDirectoryDetails; - public static string MakeDirectory; - public static string PrintWorkingDirectory; - public static string RemoveDirectory; - public static string Rename; - public static string UploadFile; - public static string UploadFileWithUniqueName; + public const string AppendFile = default; + public const string DeleteFile = default; + public const string DownloadFile = default; + public const string GetDateTimestamp = default; + public const string GetFileSize = default; + public const string ListDirectory = default; + public const string ListDirectoryDetails = default; + public const string MakeDirectory = default; + public const string PrintWorkingDirectory = default; + public const string RemoveDirectory = default; + public const string Rename = default; + public const string UploadFile = default; + public const string UploadFileWithUniqueName = default; } public static class Http { - public static string Connect; - public static string Get; - public static string Head; - public static string MkCol; - public static string Post; - public static string Put; + public const string Connect = default; + public const string Get = default; + public const string Head = default; + public const string MkCol = default; + public const string Post = default; + public const string Put = default; } } public abstract class WebResponse : System.MarshalByRefObject, System.IDisposable, System.Runtime.Serialization.ISerializable diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs index c29ef74005e..c8aa64eff72 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs @@ -39,8 +39,8 @@ namespace System { public static bool CheckCertificateRevocationList { get => throw null; set { } } public static int DefaultConnectionLimit { get => throw null; set { } } - public static int DefaultNonPersistentConnectionLimit; - public static int DefaultPersistentConnectionLimit; + public const int DefaultNonPersistentConnectionLimit = default; + public const int DefaultPersistentConnectionLimit = default; public static int DnsRefreshTimeout { get => throw null; set { } } public static bool EnableDnsRoundRobin { get => throw null; set { } } public static System.Net.Security.EncryptionPolicy EncryptionPolicy { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Sockets.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Sockets.cs index 19160f53223..9aa26d3fde9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Sockets.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Sockets.cs @@ -419,7 +419,7 @@ namespace System public byte[] Buffer { get => throw null; } public System.Collections.Generic.IList> BufferList { get => throw null; set { } } public int BytesTransferred { get => throw null; } - public event System.EventHandler Completed { add { } remove { } } + public event System.EventHandler Completed; public System.Exception ConnectByNameError { get => throw null; } public System.Net.Sockets.Socket ConnectSocket { get => throw null; } public int Count { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebClient.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebClient.cs index f77da218449..7e2dae120c5 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebClient.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebClient.cs @@ -81,22 +81,22 @@ namespace System public byte[] DownloadData(System.Uri address) => throw null; public void DownloadDataAsync(System.Uri address) => throw null; public void DownloadDataAsync(System.Uri address, object userToken) => throw null; - public event System.Net.DownloadDataCompletedEventHandler DownloadDataCompleted { add { } remove { } } + public event System.Net.DownloadDataCompletedEventHandler DownloadDataCompleted; public System.Threading.Tasks.Task DownloadDataTaskAsync(string address) => throw null; public System.Threading.Tasks.Task DownloadDataTaskAsync(System.Uri address) => throw null; public void DownloadFile(string address, string fileName) => throw null; public void DownloadFile(System.Uri address, string fileName) => throw null; public void DownloadFileAsync(System.Uri address, string fileName) => throw null; public void DownloadFileAsync(System.Uri address, string fileName, object userToken) => throw null; - public event System.ComponentModel.AsyncCompletedEventHandler DownloadFileCompleted { add { } remove { } } + public event System.ComponentModel.AsyncCompletedEventHandler DownloadFileCompleted; public System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileName) => throw null; public System.Threading.Tasks.Task DownloadFileTaskAsync(System.Uri address, string fileName) => throw null; - public event System.Net.DownloadProgressChangedEventHandler DownloadProgressChanged { add { } remove { } } + public event System.Net.DownloadProgressChangedEventHandler DownloadProgressChanged; public string DownloadString(string address) => throw null; public string DownloadString(System.Uri address) => throw null; public void DownloadStringAsync(System.Uri address) => throw null; public void DownloadStringAsync(System.Uri address, object userToken) => throw null; - public event System.Net.DownloadStringCompletedEventHandler DownloadStringCompleted { add { } remove { } } + public event System.Net.DownloadStringCompletedEventHandler DownloadStringCompleted; public System.Threading.Tasks.Task DownloadStringTaskAsync(string address) => throw null; public System.Threading.Tasks.Task DownloadStringTaskAsync(System.Uri address) => throw null; public System.Text.Encoding Encoding { get => throw null; set { } } @@ -121,7 +121,7 @@ namespace System public System.IO.Stream OpenRead(System.Uri address) => throw null; public void OpenReadAsync(System.Uri address) => throw null; public void OpenReadAsync(System.Uri address, object userToken) => throw null; - public event System.Net.OpenReadCompletedEventHandler OpenReadCompleted { add { } remove { } } + public event System.Net.OpenReadCompletedEventHandler OpenReadCompleted; public System.Threading.Tasks.Task OpenReadTaskAsync(string address) => throw null; public System.Threading.Tasks.Task OpenReadTaskAsync(System.Uri address) => throw null; public System.IO.Stream OpenWrite(string address) => throw null; @@ -131,7 +131,7 @@ namespace System public void OpenWriteAsync(System.Uri address) => throw null; public void OpenWriteAsync(System.Uri address, string method) => throw null; public void OpenWriteAsync(System.Uri address, string method, object userToken) => throw null; - public event System.Net.OpenWriteCompletedEventHandler OpenWriteCompleted { add { } remove { } } + public event System.Net.OpenWriteCompletedEventHandler OpenWriteCompleted; public System.Threading.Tasks.Task OpenWriteTaskAsync(string address) => throw null; public System.Threading.Tasks.Task OpenWriteTaskAsync(string address, string method) => throw null; public System.Threading.Tasks.Task OpenWriteTaskAsync(System.Uri address) => throw null; @@ -146,7 +146,7 @@ namespace System public void UploadDataAsync(System.Uri address, byte[] data) => throw null; public void UploadDataAsync(System.Uri address, string method, byte[] data) => throw null; public void UploadDataAsync(System.Uri address, string method, byte[] data, object userToken) => throw null; - public event System.Net.UploadDataCompletedEventHandler UploadDataCompleted { add { } remove { } } + public event System.Net.UploadDataCompletedEventHandler UploadDataCompleted; public System.Threading.Tasks.Task UploadDataTaskAsync(string address, byte[] data) => throw null; public System.Threading.Tasks.Task UploadDataTaskAsync(string address, string method, byte[] data) => throw null; public System.Threading.Tasks.Task UploadDataTaskAsync(System.Uri address, byte[] data) => throw null; @@ -158,12 +158,12 @@ namespace System public void UploadFileAsync(System.Uri address, string fileName) => throw null; public void UploadFileAsync(System.Uri address, string method, string fileName) => throw null; public void UploadFileAsync(System.Uri address, string method, string fileName, object userToken) => throw null; - public event System.Net.UploadFileCompletedEventHandler UploadFileCompleted { add { } remove { } } + public event System.Net.UploadFileCompletedEventHandler UploadFileCompleted; public System.Threading.Tasks.Task UploadFileTaskAsync(string address, string fileName) => throw null; public System.Threading.Tasks.Task UploadFileTaskAsync(string address, string method, string fileName) => throw null; public System.Threading.Tasks.Task UploadFileTaskAsync(System.Uri address, string fileName) => throw null; public System.Threading.Tasks.Task UploadFileTaskAsync(System.Uri address, string method, string fileName) => throw null; - public event System.Net.UploadProgressChangedEventHandler UploadProgressChanged { add { } remove { } } + public event System.Net.UploadProgressChangedEventHandler UploadProgressChanged; public string UploadString(string address, string data) => throw null; public string UploadString(string address, string method, string data) => throw null; public string UploadString(System.Uri address, string data) => throw null; @@ -171,7 +171,7 @@ namespace System public void UploadStringAsync(System.Uri address, string data) => throw null; public void UploadStringAsync(System.Uri address, string method, string data) => throw null; public void UploadStringAsync(System.Uri address, string method, string data, object userToken) => throw null; - public event System.Net.UploadStringCompletedEventHandler UploadStringCompleted { add { } remove { } } + public event System.Net.UploadStringCompletedEventHandler UploadStringCompleted; public System.Threading.Tasks.Task UploadStringTaskAsync(string address, string data) => throw null; public System.Threading.Tasks.Task UploadStringTaskAsync(string address, string method, string data) => throw null; public System.Threading.Tasks.Task UploadStringTaskAsync(System.Uri address, string data) => throw null; @@ -183,13 +183,13 @@ namespace System public void UploadValuesAsync(System.Uri address, System.Collections.Specialized.NameValueCollection data) => throw null; public void UploadValuesAsync(System.Uri address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; public void UploadValuesAsync(System.Uri address, string method, System.Collections.Specialized.NameValueCollection data, object userToken) => throw null; - public event System.Net.UploadValuesCompletedEventHandler UploadValuesCompleted { add { } remove { } } + public event System.Net.UploadValuesCompletedEventHandler UploadValuesCompleted; public System.Threading.Tasks.Task UploadValuesTaskAsync(string address, System.Collections.Specialized.NameValueCollection data) => throw null; public System.Threading.Tasks.Task UploadValuesTaskAsync(string address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; public System.Threading.Tasks.Task UploadValuesTaskAsync(System.Uri address, System.Collections.Specialized.NameValueCollection data) => throw null; public System.Threading.Tasks.Task UploadValuesTaskAsync(System.Uri address, string method, System.Collections.Specialized.NameValueCollection data) => throw null; public bool UseDefaultCredentials { get => throw null; set { } } - public event System.Net.WriteStreamClosedEventHandler WriteStreamClosed { add { } remove { } } + public event System.Net.WriteStreamClosedEventHandler WriteStreamClosed; } public class WriteStreamClosedEventArgs : System.EventArgs { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebProxy.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebProxy.cs index 70d613527ae..b8ee661c92f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebProxy.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.WebProxy.cs @@ -10,7 +10,7 @@ namespace System bool Load(System.Uri scriptLocation, string script, System.Type helperType); string Run(string url, string host); } - public class WebProxy : System.Net.IWebProxy, System.Runtime.Serialization.ISerializable + public class WebProxy : System.Runtime.Serialization.ISerializable, System.Net.IWebProxy { public System.Uri Address { get => throw null; set { } } public System.Collections.ArrayList BypassArrayList { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs index 8a429727567..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs index f03a20b6507..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs index 46092af512a..1abc5dde006 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs @@ -29,7 +29,7 @@ namespace System protected System.IDisposable BlockReentrancy() => throw null; protected void CheckReentrancy() => throw null; protected override void ClearItems() => throw null; - public virtual event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged { add { } remove { } } + public virtual event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; public ObservableCollection() => throw null; public ObservableCollection(System.Collections.Generic.IEnumerable collection) => throw null; public ObservableCollection(System.Collections.Generic.List list) => throw null; @@ -38,19 +38,19 @@ namespace System protected virtual void MoveItem(int oldIndex, int newIndex) => throw null; protected virtual void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) => throw null; protected virtual void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e) => throw null; - protected virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } + protected virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; event System.ComponentModel.PropertyChangedEventHandler System.ComponentModel.INotifyPropertyChanged.PropertyChanged { add { } remove { } } protected override void RemoveItem(int index) => throw null; protected override void SetItem(int index, T item) => throw null; } public class ReadOnlyObservableCollection : System.Collections.ObjectModel.ReadOnlyCollection, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.INotifyPropertyChanged { - protected virtual event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged { add { } remove { } } + protected virtual event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; event System.Collections.Specialized.NotifyCollectionChangedEventHandler System.Collections.Specialized.INotifyCollectionChanged.CollectionChanged { add { } remove { } } public ReadOnlyObservableCollection(System.Collections.ObjectModel.ObservableCollection list) : base(default(System.Collections.Generic.IList)) => throw null; protected virtual void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args) => throw null; protected virtual void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs args) => throw null; - protected virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } + protected virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; event System.ComponentModel.PropertyChangedEventHandler System.ComponentModel.INotifyPropertyChanged.PropertyChanged { add { } remove { } } } } @@ -58,7 +58,7 @@ namespace System { public interface INotifyCollectionChanged { - event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged { add { } remove { } } + event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; } public enum NotifyCollectionChangedAction { @@ -99,17 +99,17 @@ namespace System } public interface INotifyDataErrorInfo { - event System.EventHandler ErrorsChanged { add { } remove { } } + event System.EventHandler ErrorsChanged; System.Collections.IEnumerable GetErrors(string propertyName); bool HasErrors { get; } } public interface INotifyPropertyChanged { - event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add { } remove { } } + event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; } public interface INotifyPropertyChanging { - event System.ComponentModel.PropertyChangingEventHandler PropertyChanging { add { } remove { } } + event System.ComponentModel.PropertyChangingEventHandler PropertyChanging; } public class PropertyChangedEventArgs : System.EventArgs { @@ -154,7 +154,7 @@ namespace System public interface ICommand { bool CanExecute(object parameter); - event System.EventHandler CanExecuteChanged { add { } remove { } } + event System.EventHandler CanExecuteChanged; void Execute(object parameter); } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs index a27a4833afa..3118bdff532 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs @@ -478,7 +478,7 @@ namespace System public override string ToString() => throw null; public override System.RuntimeTypeHandle TypeHandle { get => throw null; } public override System.Type UnderlyingSystemType { get => throw null; } - public static int UnspecifiedTypeSize; + public const int UnspecifiedTypeSize = default; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs index ae4c23ab884..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Reflection.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs index 4f7b0de1d4a..28df0705534 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs @@ -100,7 +100,7 @@ namespace System public struct AssemblyFileHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.AssemblyFileHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -139,7 +139,7 @@ namespace System public struct AssemblyReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.AssemblyReferenceHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -161,7 +161,7 @@ namespace System { public void Align(int alignment) => throw null; protected virtual System.Reflection.Metadata.BlobBuilder AllocateChunk(int minimalSize) => throw null; - public struct Blobs : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Blobs : System.IDisposable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.Blob Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -411,7 +411,7 @@ namespace System public struct CustomAttributeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.CustomAttributeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -470,7 +470,7 @@ namespace System public struct CustomDebugInformationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.CustomDebugInformationHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -510,7 +510,7 @@ namespace System public struct DeclarativeSecurityAttributeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.DeclarativeSecurityAttributeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -545,7 +545,7 @@ namespace System public struct DocumentHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.DocumentHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1203,7 +1203,7 @@ namespace System public struct EventDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.EventDefinitionHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1258,7 +1258,7 @@ namespace System public struct ExportedTypeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.ExportedTypeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1299,7 +1299,7 @@ namespace System public struct FieldDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.FieldDefinitionHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1342,7 +1342,7 @@ namespace System public struct GenericParameterConstraintHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.GenericParameterConstraintHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1371,7 +1371,7 @@ namespace System public struct GenericParameterHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.GenericParameterHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1716,7 +1716,7 @@ namespace System } public struct ImportDefinitionCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.ImportDefinition Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1749,7 +1749,7 @@ namespace System public struct ImportScopeCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.ImportScopeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1795,7 +1795,7 @@ namespace System public struct InterfaceImplementationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.InterfaceImplementationHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1807,7 +1807,7 @@ namespace System System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - public interface ISignatureTypeProvider : System.Reflection.Metadata.IConstructedTypeProvider, System.Reflection.Metadata.ISZArrayTypeProvider, System.Reflection.Metadata.ISimpleTypeProvider + public interface ISignatureTypeProvider : System.Reflection.Metadata.IConstructedTypeProvider, System.Reflection.Metadata.ISimpleTypeProvider, System.Reflection.Metadata.ISZArrayTypeProvider { TType GetFunctionPointerType(System.Reflection.Metadata.MethodSignature signature); TType GetGenericMethodParameter(TGenericContext genericContext, int index); @@ -1847,7 +1847,7 @@ namespace System public struct LocalConstantHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.LocalConstantHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1885,7 +1885,7 @@ namespace System } public struct LocalScopeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { - public struct ChildrenEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct ChildrenEnumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.LocalScopeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1894,7 +1894,7 @@ namespace System void System.Collections.IEnumerator.Reset() => throw null; } public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.LocalScopeHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1934,7 +1934,7 @@ namespace System public struct LocalVariableHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.LocalVariableHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -1970,7 +1970,7 @@ namespace System public struct ManifestResourceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.ManifestResourceHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2008,7 +2008,7 @@ namespace System public struct MemberReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.MemberReferenceHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2195,7 +2195,7 @@ namespace System public struct MethodDebugInformationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.MethodDebugInformationHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2239,7 +2239,7 @@ namespace System public struct MethodDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.MethodDefinitionHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2274,7 +2274,7 @@ namespace System public struct MethodImplementationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.MethodImplementationHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2405,7 +2405,7 @@ namespace System public struct ParameterHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.ParameterHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2493,7 +2493,7 @@ namespace System public struct PropertyDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.PropertyDefinitionHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2519,7 +2519,7 @@ namespace System public override bool Equals(object obj) => throw null; public bool Equals(System.Reflection.Metadata.SequencePoint other) => throw null; public override int GetHashCode() => throw null; - public static int HiddenLine; + public const int HiddenLine = default; public bool IsHidden { get => throw null; } public int Offset { get => throw null; } public int StartColumn { get => throw null; } @@ -2527,7 +2527,7 @@ namespace System } public struct SequencePointCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.SequencePoint Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2582,7 +2582,7 @@ namespace System { public System.Reflection.Metadata.SignatureAttributes Attributes { get => throw null; } public System.Reflection.Metadata.SignatureCallingConvention CallingConvention { get => throw null; } - public static byte CallingConventionOrKindMask; + public const byte CallingConventionOrKindMask = default; public SignatureHeader(byte rawValue) => throw null; public SignatureHeader(System.Reflection.Metadata.SignatureKind kind, System.Reflection.Metadata.SignatureCallingConvention convention, System.Reflection.Metadata.SignatureAttributes attributes) => throw null; public override bool Equals(object obj) => throw null; @@ -2720,7 +2720,7 @@ namespace System public struct TypeDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.TypeDefinitionHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2761,7 +2761,7 @@ namespace System public struct TypeReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { public int Count { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Reflection.Metadata.TypeReferenceHandle Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2989,8 +2989,8 @@ namespace System protected override System.Collections.Immutable.ImmutableArray CreateSections() => throw null; public ManagedPEBuilder(System.Reflection.PortableExecutable.PEHeaderBuilder header, System.Reflection.Metadata.Ecma335.MetadataRootBuilder metadataRootBuilder, System.Reflection.Metadata.BlobBuilder ilStream, System.Reflection.Metadata.BlobBuilder mappedFieldData = default(System.Reflection.Metadata.BlobBuilder), System.Reflection.Metadata.BlobBuilder managedResources = default(System.Reflection.Metadata.BlobBuilder), System.Reflection.PortableExecutable.ResourceSectionBuilder nativeResources = default(System.Reflection.PortableExecutable.ResourceSectionBuilder), System.Reflection.PortableExecutable.DebugDirectoryBuilder debugDirectoryBuilder = default(System.Reflection.PortableExecutable.DebugDirectoryBuilder), int strongNameSignatureSize = default(int), System.Reflection.Metadata.MethodDefinitionHandle entryPoint = default(System.Reflection.Metadata.MethodDefinitionHandle), System.Reflection.PortableExecutable.CorFlags flags = default(System.Reflection.PortableExecutable.CorFlags), System.Func, System.Reflection.Metadata.BlobContentId> deterministicIdProvider = default(System.Func, System.Reflection.Metadata.BlobContentId>)) : base(default(System.Reflection.PortableExecutable.PEHeaderBuilder), default(System.Func, System.Reflection.Metadata.BlobContentId>)) => throw null; protected override System.Reflection.PortableExecutable.PEDirectoriesBuilder GetDirectories() => throw null; - public static int ManagedResourcesDataAlignment; - public static int MappedFieldDataAlignment; + public const int ManagedResourcesDataAlignment = default; + public const int MappedFieldDataAlignment = default; protected override System.Reflection.Metadata.BlobBuilder SerializeSection(string name, System.Reflection.PortableExecutable.SectionLocation location) => throw null; public void Sign(System.Reflection.Metadata.BlobBuilder peImage, System.Func, byte[]> signatureProvider) => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs index 8f0b2391b0a..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Reflection, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs index e3cb62ee621..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Resources.Reader, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs index 91e19a89d1c..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Resources.ResourceManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs index 271f2a6c542..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Runtime.CompilerServices.Unsafe, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs index 69e4598a298..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Runtime.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs index 3f502144ec7..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Runtime.Handles, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs index 7148ca0f716..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Runtime.InteropServices.RuntimeInformation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs index 94f294b354e..2ac0669511f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs @@ -750,7 +750,7 @@ namespace System public System.Runtime.InteropServices.ComTypes.IDLDESC idldescType; public int lcid; public nint lpstrSchema; - public static int MEMBER_ID_NIL; + public const int MEMBER_ID_NIL = default; public int memidConstructor; public int memidDestructor; public System.Runtime.InteropServices.ComTypes.TYPEDESC tdescAlias; @@ -1314,7 +1314,7 @@ namespace System public MarshalUsingAttribute(System.Type nativeType) => throw null; public int ElementIndirectionDepth { get => throw null; set { } } public System.Type NativeType { get => throw null; } - public static string ReturnsCountValue; + public const string ReturnsCountValue = default; } public static class PointerArrayMarshaller where T : unmanaged where TUnmanagedElement : unmanaged { @@ -1385,7 +1385,7 @@ namespace System public static unsafe void Free(void* ptr) => throw null; public static unsafe void* Realloc(void* ptr, nuint byteCount) => throw null; } - public struct NFloat : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPoint, System.Numerics.ISignedNumber, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions, System.Numerics.IMinMaxValue + public struct NFloat : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPointIeee754, System.IFormattable, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static System.Runtime.InteropServices.NFloat System.Numerics.INumberBase.Abs(System.Runtime.InteropServices.NFloat value) => throw null; static System.Runtime.InteropServices.NFloat System.Numerics.ITrigonometricFunctions.Acos(System.Runtime.InteropServices.NFloat x) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Loader.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Loader.cs index 54ecb7b6aa5..eb7dc133afd 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Loader.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Loader.cs @@ -71,13 +71,13 @@ namespace System protected virtual nint LoadUnmanagedDll(string unmanagedDllName) => throw null; protected nint LoadUnmanagedDllFromPath(string unmanagedDllPath) => throw null; public string Name { get => throw null; } - public event System.Func Resolving { add { } remove { } } - public event System.Func ResolvingUnmanagedDll { add { } remove { } } + public event System.Func Resolving; + public event System.Func ResolvingUnmanagedDll; public void SetProfileOptimizationRoot(string directoryPath) => throw null; public void StartProfileOptimization(string profile) => throw null; public override string ToString() => throw null; public void Unload() => throw null; - public event System.Action Unloading { add { } remove { } } + public event System.Action Unloading; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs index df8fa849568..e01dfe6c293 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs @@ -4,7 +4,7 @@ namespace System { namespace Numerics { - public struct BigInteger : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber + public struct BigInteger : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static System.Numerics.BigInteger System.Numerics.INumberBase.Abs(System.Numerics.BigInteger value) => throw null; public static System.Numerics.BigInteger Add(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; @@ -207,7 +207,7 @@ namespace System bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static System.Numerics.BigInteger System.Numerics.INumberBase.Zero { get => throw null; } } - public struct Complex : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.ISignedNumber + public struct Complex : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { public static double Abs(System.Numerics.Complex value) => throw null; static System.Numerics.Complex System.Numerics.INumberBase.Abs(System.Numerics.Complex value) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs index 44765cb9b33..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs index 305922a7e0b..20e87f2df8b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs @@ -116,8 +116,8 @@ namespace System { public void AppendPrivatePath(string path) => throw null; public string ApplyPolicy(string assemblyName) => throw null; - public event System.AssemblyLoadEventHandler AssemblyLoad { add { } remove { } } - public event System.ResolveEventHandler AssemblyResolve { add { } remove { } } + public event System.AssemblyLoadEventHandler AssemblyLoad; + public event System.ResolveEventHandler AssemblyResolve; public string BaseDirectory { get => throw null; } public void ClearPrivatePath() => throw null; public void ClearShadowCopyPath() => throw null; @@ -135,7 +135,7 @@ namespace System public object CreateInstanceFromAndUnwrap(string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) => throw null; public object CreateInstanceFromAndUnwrap(string assemblyFile, string typeName, object[] activationAttributes) => throw null; public static System.AppDomain CurrentDomain { get => throw null; } - public event System.EventHandler DomainUnload { add { } remove { } } + public event System.EventHandler DomainUnload; public string DynamicDirectory { get => throw null; } public int ExecuteAssembly(string assemblyFile) => throw null; public int ExecuteAssembly(string assemblyFile, string[] args) => throw null; @@ -143,7 +143,7 @@ namespace System public int ExecuteAssemblyByName(System.Reflection.AssemblyName assemblyName, params string[] args) => throw null; public int ExecuteAssemblyByName(string assemblyName) => throw null; public int ExecuteAssemblyByName(string assemblyName, params string[] args) => throw null; - public event System.EventHandler FirstChanceException { add { } remove { } } + public event System.EventHandler FirstChanceException; public string FriendlyName { get => throw null; } public System.Reflection.Assembly[] GetAssemblies() => throw null; public static int GetCurrentThreadId() => throw null; @@ -164,11 +164,11 @@ namespace System public long MonitoringTotalAllocatedMemorySize { get => throw null; } public System.TimeSpan MonitoringTotalProcessorTime { get => throw null; } public System.Security.PermissionSet PermissionSet { get => throw null; } - public event System.EventHandler ProcessExit { add { } remove { } } - public event System.ResolveEventHandler ReflectionOnlyAssemblyResolve { add { } remove { } } + public event System.EventHandler ProcessExit; + public event System.ResolveEventHandler ReflectionOnlyAssemblyResolve; public System.Reflection.Assembly[] ReflectionOnlyGetAssemblies() => throw null; public string RelativeSearchPath { get => throw null; } - public event System.ResolveEventHandler ResourceResolve { add { } remove { } } + public event System.ResolveEventHandler ResourceResolve; public void SetCachePath(string path) => throw null; public void SetData(string name, object data) => throw null; public void SetDynamicBase(string path) => throw null; @@ -179,8 +179,8 @@ namespace System public System.AppDomainSetup SetupInformation { get => throw null; } public bool ShadowCopyFiles { get => throw null; } public override string ToString() => throw null; - public event System.ResolveEventHandler TypeResolve { add { } remove { } } - public event System.UnhandledExceptionEventHandler UnhandledException { add { } remove { } } + public event System.ResolveEventHandler TypeResolve; + public event System.UnhandledExceptionEventHandler UnhandledException; public static void Unload(System.AppDomain domain) => throw null; } public sealed class AppDomainSetup @@ -269,7 +269,7 @@ namespace System public ArithmeticException(string message) => throw null; public ArithmeticException(string message, System.Exception innerException) => throw null; } - public abstract class Array : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.ICloneable + public abstract class Array : System.ICloneable, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable { int System.Collections.IList.Add(object value) => throw null; public static System.Collections.ObjectModel.ReadOnlyCollection AsReadOnly(T[] array) => throw null; @@ -402,7 +402,7 @@ namespace System public ArraySegment(T[] array) => throw null; public ArraySegment(T[] array, int offset, int count) => throw null; public static System.ArraySegment Empty { get => throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -665,7 +665,7 @@ namespace System public void Dispose() => throw null; public unsafe void* Pointer { get => throw null; } } - public abstract class MemoryManager : System.Buffers.IMemoryOwner, System.IDisposable, System.Buffers.IPinnable + public abstract class MemoryManager : System.IDisposable, System.Buffers.IMemoryOwner, System.Buffers.IPinnable { protected System.Memory CreateMemory(int length) => throw null; protected System.Memory CreateMemory(int start, int length) => throw null; @@ -700,7 +700,7 @@ namespace System } } } - public struct Byte : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber + public struct Byte : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber { static byte System.Numerics.INumberBase.Abs(byte value) => throw null; static byte System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } @@ -743,13 +743,13 @@ namespace System static byte System.Numerics.INumberBase.MaxMagnitude(byte x, byte y) => throw null; static byte System.Numerics.INumberBase.MaxMagnitudeNumber(byte x, byte y) => throw null; static byte System.Numerics.INumber.MaxNumber(byte x, byte y) => throw null; - public static byte MaxValue; + public const byte MaxValue = default; static byte System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static byte System.Numerics.INumber.Min(byte x, byte y) => throw null; static byte System.Numerics.INumberBase.MinMagnitude(byte x, byte y) => throw null; static byte System.Numerics.INumberBase.MinMagnitudeNumber(byte x, byte y) => throw null; static byte System.Numerics.INumber.MinNumber(byte x, byte y) => throw null; - public static byte MinValue; + public const byte MinValue = default; static byte System.Numerics.IMinMaxValue.MinValue { get => throw null; } static byte System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static byte System.Numerics.INumberBase.One { get => throw null; } @@ -838,7 +838,7 @@ namespace System public CannotUnloadAppDomainException(string message) => throw null; public CannotUnloadAppDomainException(string message, System.Exception innerException) => throw null; } - public struct Char : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber + public struct Char : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber { static char System.Numerics.INumberBase.Abs(char value) => throw null; static char System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } @@ -920,11 +920,11 @@ namespace System static char System.Numerics.IBinaryNumber.Log2(char value) => throw null; static char System.Numerics.INumberBase.MaxMagnitude(char x, char y) => throw null; static char System.Numerics.INumberBase.MaxMagnitudeNumber(char x, char y) => throw null; - public static char MaxValue; + public const char MaxValue = default; static char System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static char System.Numerics.INumberBase.MinMagnitude(char x, char y) => throw null; static char System.Numerics.INumberBase.MinMagnitudeNumber(char x, char y) => throw null; - public static char MinValue; + public const char MinValue = default; static char System.Numerics.IMinMaxValue.MinValue { get => throw null; } static char System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static char System.Numerics.INumberBase.One { get => throw null; } @@ -1009,7 +1009,7 @@ namespace System bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static char System.Numerics.INumberBase.Zero { get => throw null; } } - public sealed class CharEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable, System.ICloneable + public sealed class CharEnumerator : System.ICloneable, System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public object Clone() => throw null; public char Current { get => throw null; } @@ -1038,7 +1038,7 @@ namespace System public override void Close() => throw null; public IndentedTextWriter(System.IO.TextWriter writer) => throw null; public IndentedTextWriter(System.IO.TextWriter writer, string tabString) => throw null; - public static string DefaultTabString; + public const string DefaultTabString = default; public override System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public override System.Text.Encoding Encoding { get => throw null; } public override void Flush() => throw null; @@ -1094,7 +1094,7 @@ namespace System } namespace Collections { - public class ArrayList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ICloneable + public class ArrayList : System.ICloneable, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { public static System.Collections.ArrayList Adapter(System.Collections.IList list) => throw null; public virtual int Add(object value) => throw null; @@ -1203,7 +1203,7 @@ namespace System { System.Collections.Generic.IEnumerator GetEnumerator(); } - public interface IEnumerator : System.Collections.IEnumerator, System.IDisposable + public interface IEnumerator : System.IDisposable, System.Collections.IEnumerator { T Current { get; } } @@ -1279,7 +1279,7 @@ namespace System public TValue Value { get => throw null; } } } - public class Hashtable : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IDictionary, System.ICloneable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class Hashtable : System.ICloneable, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Collections.IDictionary, System.Collections.IEnumerable, System.Runtime.Serialization.ISerializable { public virtual void Add(object key, object value) => throw null; public virtual void Clear() => throw null; @@ -1397,7 +1397,7 @@ namespace System } namespace ObjectModel { - public class Collection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList + public class Collection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { public void Add(T item) => throw null; int System.Collections.IList.Add(object value) => throw null; @@ -1431,7 +1431,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } public T this[int index] { get => throw null; set { } } } - public class ReadOnlyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList + public class ReadOnlyCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { void System.Collections.Generic.ICollection.Add(T value) => throw null; int System.Collections.IList.Add(object value) => throw null; @@ -1463,7 +1463,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } public T this[int index] { get => throw null; } } - public class ReadOnlyDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.ICollection, System.Collections.IDictionary + public class ReadOnlyDictionary : System.Collections.Generic.ICollection>, System.Collections.ICollection, System.Collections.Generic.IDictionary, System.Collections.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary { void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; void System.Collections.Generic.IDictionary.Add(TKey key, TValue value) => throw null; @@ -1487,7 +1487,7 @@ namespace System bool System.Collections.ICollection.IsSynchronized { get => throw null; } TValue System.Collections.Generic.IDictionary.this[TKey key] { get => throw null; set { } } object System.Collections.IDictionary.this[object key] { get => throw null; set { } } - public sealed class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + public sealed class KeyCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { void System.Collections.Generic.ICollection.Add(TKey item) => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; @@ -1512,7 +1512,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } public TValue this[TKey key] { get => throw null; } public bool TryGetValue(TKey key, out TValue value) => throw null; - public sealed class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection + public sealed class ValueCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection { void System.Collections.Generic.ICollection.Add(TValue item) => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; @@ -1998,7 +1998,7 @@ namespace System public static bool TryParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateOnly result) => throw null; public int Year { get => throw null; } } - public struct DateTime : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Runtime.Serialization.ISerializable + public struct DateTime : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.Runtime.Serialization.ISerializable, System.ISpanFormattable, System.ISpanParsable { public System.DateTime Add(System.TimeSpan value) => throw null; public System.DateTime AddDays(double value) => throw null; @@ -2135,7 +2135,7 @@ namespace System Utc = 1, Local = 2, } - public struct DateTimeOffset : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public struct DateTimeOffset : System.IComparable, System.IComparable, System.Runtime.Serialization.IDeserializationCallback, System.IEquatable, System.IFormattable, System.IParsable, System.Runtime.Serialization.ISerializable, System.ISpanFormattable, System.ISpanParsable { public System.DateTimeOffset Add(System.TimeSpan timeSpan) => throw null; public System.DateTimeOffset AddDays(double days) => throw null; @@ -2269,7 +2269,7 @@ namespace System ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; public static System.DBNull Value; } - public struct Decimal : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IModulusOperators, System.Numerics.INumber, System.Numerics.ISignedNumber, System.Numerics.IMinMaxValue, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public struct Decimal : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Runtime.Serialization.IDeserializationCallback, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Runtime.Serialization.ISerializable, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static decimal System.Numerics.INumberBase.Abs(decimal value) => throw null; public static decimal Add(decimal d1, decimal d2) => throw null; @@ -2329,21 +2329,21 @@ namespace System static decimal System.Numerics.INumberBase.MaxMagnitude(decimal x, decimal y) => throw null; static decimal System.Numerics.INumberBase.MaxMagnitudeNumber(decimal x, decimal y) => throw null; static decimal System.Numerics.INumber.MaxNumber(decimal x, decimal y) => throw null; - public static decimal MaxValue; + public const decimal MaxValue = default; static decimal System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static decimal System.Numerics.INumber.Min(decimal x, decimal y) => throw null; static decimal System.Numerics.INumberBase.MinMagnitude(decimal x, decimal y) => throw null; static decimal System.Numerics.INumberBase.MinMagnitudeNumber(decimal x, decimal y) => throw null; static decimal System.Numerics.INumber.MinNumber(decimal x, decimal y) => throw null; - public static decimal MinusOne; - public static decimal MinValue; + public const decimal MinusOne = default; + public const decimal MinValue = default; static decimal System.Numerics.IMinMaxValue.MinValue { get => throw null; } static decimal System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } public static decimal Multiply(decimal d1, decimal d2) => throw null; public static decimal Negate(decimal d) => throw null; static decimal System.Numerics.ISignedNumber.NegativeOne { get => throw null; } void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public static decimal One; + public const decimal One = default; static decimal System.Numerics.INumberBase.One { get => throw null; } static decimal System.Numerics.IAdditionOperators.operator +(decimal d1, decimal d2) => throw null; static decimal System.Numerics.IDecrementOperators.operator --(decimal d) => throw null; @@ -2448,7 +2448,7 @@ namespace System bool System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian(System.Span destination, out int bytesWritten) => throw null; bool System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian(System.Span destination, out int bytesWritten) => throw null; bool System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian(System.Span destination, out int bytesWritten) => throw null; - public static decimal Zero; + public const decimal Zero = default; static decimal System.Numerics.INumberBase.Zero { get => throw null; } } public abstract class Delegate : System.ICloneable, System.Runtime.Serialization.ISerializable @@ -2617,21 +2617,21 @@ namespace System public sealed class StringSyntaxAttribute : System.Attribute { public object[] Arguments { get => throw null; } - public static string CompositeFormat; + public const string CompositeFormat = default; public StringSyntaxAttribute(string syntax) => throw null; public StringSyntaxAttribute(string syntax, params object[] arguments) => throw null; - public static string DateOnlyFormat; - public static string DateTimeFormat; - public static string EnumFormat; - public static string GuidFormat; - public static string Json; - public static string NumericFormat; - public static string Regex; + public const string DateOnlyFormat = default; + public const string DateTimeFormat = default; + public const string EnumFormat = default; + public const string GuidFormat = default; + public const string Json = default; + public const string NumericFormat = default; + public const string Regex = default; public string Syntax { get => throw null; } - public static string TimeOnlyFormat; - public static string TimeSpanFormat; - public static string Uri; - public static string Xml; + public const string TimeOnlyFormat = default; + public const string TimeSpanFormat = default; + public const string Uri = default; + public const string Xml = default; } public sealed class SuppressMessageAttribute : System.Attribute { @@ -2853,7 +2853,7 @@ namespace System public DivideByZeroException(string message) => throw null; public DivideByZeroException(string message, System.Exception innerException) => throw null; } - public struct Double : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPoint, System.Numerics.ISignedNumber, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions, System.Numerics.IMinMaxValue + public struct Double : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPointIeee754, System.IFormattable, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static double System.Numerics.INumberBase.Abs(double value) => throw null; static double System.Numerics.ITrigonometricFunctions.Acos(double x) => throw null; @@ -2883,9 +2883,9 @@ namespace System static double System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; static double System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; static double System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static double E; + public const double E = default; static double System.Numerics.IFloatingPointConstants.E { get => throw null; } - public static double Epsilon; + public const double Epsilon = default; static double System.Numerics.IFloatingPointIeee754.Epsilon { get => throw null; } public bool Equals(double obj) => throw null; public override bool Equals(object obj) => throw null; @@ -2936,21 +2936,21 @@ namespace System static double System.Numerics.INumberBase.MaxMagnitude(double x, double y) => throw null; static double System.Numerics.INumberBase.MaxMagnitudeNumber(double x, double y) => throw null; static double System.Numerics.INumber.MaxNumber(double x, double y) => throw null; - public static double MaxValue; + public const double MaxValue = default; static double System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static double System.Numerics.INumber.Min(double x, double y) => throw null; static double System.Numerics.INumberBase.MinMagnitude(double x, double y) => throw null; static double System.Numerics.INumberBase.MinMagnitudeNumber(double x, double y) => throw null; static double System.Numerics.INumber.MinNumber(double x, double y) => throw null; - public static double MinValue; + public const double MinValue = default; static double System.Numerics.IMinMaxValue.MinValue { get => throw null; } static double System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - public static double NaN; + public const double NaN = default; static double System.Numerics.IFloatingPointIeee754.NaN { get => throw null; } - public static double NegativeInfinity; + public const double NegativeInfinity = default; static double System.Numerics.IFloatingPointIeee754.NegativeInfinity { get => throw null; } static double System.Numerics.ISignedNumber.NegativeOne { get => throw null; } - public static double NegativeZero; + public const double NegativeZero = default; static double System.Numerics.IFloatingPointIeee754.NegativeZero { get => throw null; } static double System.Numerics.INumberBase.One { get => throw null; } static double System.Numerics.IAdditionOperators.operator +(double left, double right) => throw null; @@ -2978,9 +2978,9 @@ namespace System public static double Parse(string s, System.Globalization.NumberStyles style) => throw null; static double System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; static double System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; - public static double Pi; + public const double Pi = default; static double System.Numerics.IFloatingPointConstants.Pi { get => throw null; } - public static double PositiveInfinity; + public const double PositiveInfinity = default; static double System.Numerics.IFloatingPointIeee754.PositiveInfinity { get => throw null; } static double System.Numerics.IPowerFunctions.Pow(double x, double y) => throw null; static int System.Numerics.INumberBase.Radix { get => throw null; } @@ -3002,7 +3002,7 @@ namespace System static double System.Numerics.ITrigonometricFunctions.Tan(double x) => throw null; static double System.Numerics.IHyperbolicFunctions.Tanh(double x) => throw null; static double System.Numerics.ITrigonometricFunctions.TanPi(double x) => throw null; - public static double Tau; + public const double Tau = default; static double System.Numerics.IFloatingPointConstants.Tau { get => throw null; } bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; @@ -3246,7 +3246,7 @@ namespace System public int HResult { get => throw null; set { } } public System.Exception InnerException { get => throw null; } public virtual string Message { get => throw null; } - protected event System.EventHandler SerializeObjectState { add { } remove { } } + protected event System.EventHandler SerializeObjectState; public virtual string Source { get => throw null; set { } } public virtual string StackTrace { get => throw null; } public System.Reflection.MethodBase TargetSite { get => throw null; } @@ -3437,7 +3437,7 @@ namespace System public virtual System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } public virtual object Clone() => throw null; protected Calendar() => throw null; - public static int CurrentEra; + public const int CurrentEra = default; protected virtual int DaysInYearBeforeMinSupportedYear { get => throw null; } public abstract int[] Eras { get; } public abstract int GetDayOfMonth(System.DateTime time); @@ -3501,7 +3501,7 @@ namespace System } public class ChineseLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar { - public static int ChineseEra; + public const int ChineseEra = default; public ChineseLunisolarCalendar() => throw null; protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } public override int[] Eras { get => throw null; } @@ -3774,7 +3774,7 @@ namespace System { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public static int ADEra; + public const int ADEra = default; public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } public virtual System.Globalization.GregorianCalendarTypes CalendarType { get => throw null; set { } } public GregorianCalendar() => throw null; @@ -3920,7 +3920,7 @@ namespace System protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } public override int[] Eras { get => throw null; } public override int GetEra(System.DateTime time) => throw null; - public static int JapaneseEra; + public const int JapaneseEra = default; public override System.DateTime MaxSupportedDateTime { get => throw null; } public override System.DateTime MinSupportedDateTime { get => throw null; } } @@ -3972,7 +3972,7 @@ namespace System public override bool IsLeapDay(int year, int month, int day, int era) => throw null; public override bool IsLeapMonth(int year, int month, int era) => throw null; public override bool IsLeapYear(int year, int era) => throw null; - public static int KoreanEra; + public const int KoreanEra = default; public override System.DateTime MaxSupportedDateTime { get => throw null; } public override System.DateTime MinSupportedDateTime { get => throw null; } public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; @@ -3985,7 +3985,7 @@ namespace System protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } public override int[] Eras { get => throw null; } public override int GetEra(System.DateTime time) => throw null; - public static int GregorianEra; + public const int GregorianEra = default; public override System.DateTime MaxSupportedDateTime { get => throw null; } public override System.DateTime MinSupportedDateTime { get => throw null; } } @@ -4226,7 +4226,7 @@ namespace System public override bool IsLeapYear(int year, int era) => throw null; public override System.DateTime MaxSupportedDateTime { get => throw null; } public override System.DateTime MinSupportedDateTime { get => throw null; } - public static int ThaiBuddhistEra; + public const int ThaiBuddhistEra = default; public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; public override int ToFourDigitYear(int year) => throw null; public override int TwoDigitYearMax { get => throw null; set { } } @@ -4263,7 +4263,7 @@ namespace System public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; public override int ToFourDigitYear(int year) => throw null; public override int TwoDigitYearMax { get => throw null; set { } } - public static int UmAlQuraEra; + public const int UmAlQuraEra = default; } public enum UnicodeCategory { @@ -4344,7 +4344,7 @@ namespace System public static bool TryParseExact(string input, string format, out System.Guid result) => throw null; public bool TryWriteBytes(System.Span destination) => throw null; } - public struct Half : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPoint, System.Numerics.ISignedNumber, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions, System.Numerics.IMinMaxValue + public struct Half : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPointIeee754, System.IFormattable, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static System.Half System.Numerics.INumberBase.Abs(System.Half value) => throw null; static System.Half System.Numerics.ITrigonometricFunctions.Acos(System.Half x) => throw null; @@ -4669,7 +4669,7 @@ namespace System public InsufficientMemoryException(string message) => throw null; public InsufficientMemoryException(string message, System.Exception innerException) => throw null; } - public struct Int128 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber + public struct Int128 : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static System.Int128 System.Numerics.INumberBase.Abs(System.Int128 value) => throw null; static System.Int128 System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } @@ -4829,7 +4829,7 @@ namespace System bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static System.Int128 System.Numerics.INumberBase.Zero { get => throw null; } } - public struct Int16 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber + public struct Int16 : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static short System.Numerics.INumberBase.Abs(short value) => throw null; static short System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } @@ -4872,13 +4872,13 @@ namespace System static short System.Numerics.INumberBase.MaxMagnitude(short x, short y) => throw null; static short System.Numerics.INumberBase.MaxMagnitudeNumber(short x, short y) => throw null; static short System.Numerics.INumber.MaxNumber(short x, short y) => throw null; - public static short MaxValue; + public const short MaxValue = default; static short System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static short System.Numerics.INumber.Min(short x, short y) => throw null; static short System.Numerics.INumberBase.MinMagnitude(short x, short y) => throw null; static short System.Numerics.INumberBase.MinMagnitudeNumber(short x, short y) => throw null; static short System.Numerics.INumber.MinNumber(short x, short y) => throw null; - public static short MinValue; + public const short MinValue = default; static short System.Numerics.IMinMaxValue.MinValue { get => throw null; } static short System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static short System.Numerics.ISignedNumber.NegativeOne { get => throw null; } @@ -4961,7 +4961,7 @@ namespace System bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static short System.Numerics.INumberBase.Zero { get => throw null; } } - public struct Int32 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber + public struct Int32 : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static int System.Numerics.INumberBase.Abs(int value) => throw null; public static int Abs(int value) => throw null; @@ -5013,14 +5013,14 @@ namespace System public static int MaxMagnitude(int x, int y) => throw null; static int System.Numerics.INumberBase.MaxMagnitudeNumber(int x, int y) => throw null; static int System.Numerics.INumber.MaxNumber(int x, int y) => throw null; - public static int MaxValue; + public const int MaxValue = default; static int System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static int System.Numerics.INumber.Min(int x, int y) => throw null; static int System.Numerics.INumberBase.MinMagnitude(int x, int y) => throw null; public static int MinMagnitude(int x, int y) => throw null; static int System.Numerics.INumberBase.MinMagnitudeNumber(int x, int y) => throw null; static int System.Numerics.INumber.MinNumber(int x, int y) => throw null; - public static int MinValue; + public const int MinValue = default; static int System.Numerics.IMinMaxValue.MinValue { get => throw null; } static int System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static int System.Numerics.ISignedNumber.NegativeOne { get => throw null; } @@ -5107,7 +5107,7 @@ namespace System bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static int System.Numerics.INumberBase.Zero { get => throw null; } } - public struct Int64 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber + public struct Int64 : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static long System.Numerics.INumberBase.Abs(long value) => throw null; static long System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } @@ -5150,13 +5150,13 @@ namespace System static long System.Numerics.INumberBase.MaxMagnitude(long x, long y) => throw null; static long System.Numerics.INumberBase.MaxMagnitudeNumber(long x, long y) => throw null; static long System.Numerics.INumber.MaxNumber(long x, long y) => throw null; - public static long MaxValue; + public const long MaxValue = default; static long System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static long System.Numerics.INumber.Min(long x, long y) => throw null; static long System.Numerics.INumberBase.MinMagnitude(long x, long y) => throw null; static long System.Numerics.INumberBase.MinMagnitudeNumber(long x, long y) => throw null; static long System.Numerics.INumber.MinNumber(long x, long y) => throw null; - public static long MinValue; + public const long MinValue = default; static long System.Numerics.IMinMaxValue.MinValue { get => throw null; } static long System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static long System.Numerics.ISignedNumber.NegativeOne { get => throw null; } @@ -5239,7 +5239,7 @@ namespace System bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static long System.Numerics.INumberBase.Zero { get => throw null; } } - public struct IntPtr : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber, System.Runtime.Serialization.ISerializable + public struct IntPtr : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Runtime.Serialization.ISerializable, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static nint System.Numerics.INumberBase.Abs(nint value) => throw null; public static nint Add(nint pointer, int offset) => throw null; @@ -5647,7 +5647,7 @@ namespace System public System.IO.Enumeration.FileSystemEnumerable.FindPredicate ShouldIncludePredicate { get => throw null; set { } } public System.IO.Enumeration.FileSystemEnumerable.FindPredicate ShouldRecursePredicate { get => throw null; set { } } } - public abstract class FileSystemEnumerator : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public abstract class FileSystemEnumerator : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { protected virtual bool ContinueOnError(int error) => throw null; public FileSystemEnumerator(string directory, System.IO.EnumerationOptions options = default(System.IO.EnumerationOptions)) => throw null; @@ -6594,7 +6594,7 @@ namespace System public static (uint Quotient, uint Remainder) DivRem(uint left, uint right) => throw null; public static (ulong Quotient, ulong Remainder) DivRem(ulong left, ulong right) => throw null; public static (nuint Quotient, nuint Remainder) DivRem(nuint left, nuint right) => throw null; - public static double E; + public const double E = default; public static double Exp(double d) => throw null; public static decimal Floor(decimal d) => throw null; public static double Floor(double d) => throw null; @@ -6633,7 +6633,7 @@ namespace System public static ulong Min(ulong val1, ulong val2) => throw null; public static nuint Min(nuint val1, nuint val2) => throw null; public static double MinMagnitude(double x, double y) => throw null; - public static double PI; + public const double PI = default; public static double Pow(double x, double y) => throw null; public static double ReciprocalEstimate(double d) => throw null; public static double ReciprocalSqrtEstimate(double d) => throw null; @@ -6660,7 +6660,7 @@ namespace System public static double Sqrt(double d) => throw null; public static double Tan(double a) => throw null; public static double Tanh(double value) => throw null; - public static double Tau; + public const double Tau = default; public static decimal Truncate(decimal d) => throw null; public static double Truncate(double d) => throw null; } @@ -6681,7 +6681,7 @@ namespace System public static float CopySign(float x, float y) => throw null; public static float Cos(float x) => throw null; public static float Cosh(float x) => throw null; - public static float E; + public const float E = default; public static float Exp(float x) => throw null; public static float Floor(float x) => throw null; public static float FusedMultiplyAdd(float x, float y, float z) => throw null; @@ -6695,7 +6695,7 @@ namespace System public static float MaxMagnitude(float x, float y) => throw null; public static float Min(float x, float y) => throw null; public static float MinMagnitude(float x, float y) => throw null; - public static float PI; + public const float PI = default; public static float Pow(float x, float y) => throw null; public static float ReciprocalEstimate(float x) => throw null; public static float ReciprocalSqrtEstimate(float x) => throw null; @@ -6711,7 +6711,7 @@ namespace System public static float Sqrt(float x) => throw null; public static float Tan(float x) => throw null; public static float Tanh(float x) => throw null; - public static float Tau; + public const float Tau = default; public static float Truncate(float x) => throw null; } public class MemberAccessException : System.SystemException @@ -6959,10 +6959,10 @@ namespace System { abstract static TResult AdditiveIdentity { get; } } - public interface IBinaryFloatingPointIeee754 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPoint, System.Numerics.ISignedNumber, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions where TSelf : System.Numerics.IBinaryFloatingPointIeee754 + public interface IBinaryFloatingPointIeee754 : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPointIeee754, System.IFormattable, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IBinaryFloatingPointIeee754 { } - public interface IBinaryInteger : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators where TSelf : System.Numerics.IBinaryInteger + public interface IBinaryInteger : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IBinaryInteger { static virtual (TSelf Quotient, TSelf Remainder) DivRem(TSelf left, TSelf right) => throw null; int GetByteCount(); @@ -6989,7 +6989,7 @@ namespace System virtual int WriteLittleEndian(byte[] destination, int startIndex) => throw null; virtual int WriteLittleEndian(System.Span destination) => throw null; } - public interface IBinaryNumber : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IBinaryNumber + public interface IBinaryNumber : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IBinaryNumber { static virtual TSelf AllBitsSet { get => throw null; } abstract static bool IsPow2(TSelf value); @@ -7024,7 +7024,7 @@ namespace System abstract static TResult operator ==(TSelf left, TOther right); abstract static TResult operator !=(TSelf left, TOther right); } - public interface IExponentialFunctions : System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IExponentialFunctions + public interface IExponentialFunctions : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IFloatingPointConstants, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IExponentialFunctions { abstract static TSelf Exp(TSelf x); abstract static TSelf Exp10(TSelf x); @@ -7033,7 +7033,7 @@ namespace System static virtual TSelf Exp2M1(TSelf x) => throw null; static virtual TSelf ExpM1(TSelf x) => throw null; } - public interface IFloatingPoint : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IModulusOperators, System.Numerics.INumber, System.Numerics.ISignedNumber where TSelf : System.Numerics.IFloatingPoint + public interface IFloatingPoint : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IFloatingPointConstants, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IFloatingPoint { static virtual TSelf Ceiling(TSelf x) => throw null; static virtual TSelf Floor(TSelf x) => throw null; @@ -7063,13 +7063,13 @@ namespace System virtual int WriteSignificandLittleEndian(byte[] destination, int startIndex) => throw null; virtual int WriteSignificandLittleEndian(System.Span destination) => throw null; } - public interface IFloatingPointConstants : System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IFloatingPointConstants + public interface IFloatingPointConstants : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IFloatingPointConstants { abstract static TSelf E { get; } abstract static TSelf Pi { get; } abstract static TSelf Tau { get; } } - public interface IFloatingPointIeee754 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IFloatingPoint, System.Numerics.IModulusOperators, System.Numerics.INumber, System.Numerics.ISignedNumber, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions where TSelf : System.Numerics.IFloatingPointIeee754 + public interface IFloatingPointIeee754 : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.IFormattable, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IFloatingPointIeee754 { abstract static TSelf Atan2(TSelf y, TSelf x); abstract static TSelf Atan2Pi(TSelf y, TSelf x); @@ -7087,7 +7087,7 @@ namespace System static virtual TSelf ReciprocalSqrtEstimate(TSelf x) => throw null; abstract static TSelf ScaleB(TSelf x, int n); } - public interface IHyperbolicFunctions : System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IHyperbolicFunctions + public interface IHyperbolicFunctions : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IFloatingPointConstants, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IHyperbolicFunctions { abstract static TSelf Acosh(TSelf x); abstract static TSelf Asinh(TSelf x); @@ -7101,7 +7101,7 @@ namespace System static virtual TSelf operator checked ++(TSelf value) => throw null; abstract static TSelf operator ++(TSelf value); } - public interface ILogarithmicFunctions : System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ILogarithmicFunctions + public interface ILogarithmicFunctions : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IFloatingPointConstants, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ILogarithmicFunctions { abstract static TSelf Log(TSelf x); abstract static TSelf Log(TSelf x, TSelf newBase); @@ -7129,7 +7129,7 @@ namespace System static virtual TResult operator checked *(TSelf left, TOther right) => throw null; abstract static TResult operator *(TSelf left, TOther right); } - public interface INumber : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.INumber + public interface INumber : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.INumber { static virtual TSelf Clamp(TSelf value, TSelf min, TSelf max) => throw null; static virtual TSelf CopySign(TSelf value, TSelf sign) => throw null; @@ -7139,7 +7139,7 @@ namespace System static virtual TSelf MinNumber(TSelf x, TSelf y) => throw null; static virtual int Sign(TSelf value) => throw null; } - public interface INumberBase : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.INumberBase + public interface INumberBase : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.INumberBase { abstract static TSelf Abs(TSelf value); static virtual TSelf CreateChecked(TOther value) where TOther : System.Numerics.INumberBase => throw null; @@ -7180,11 +7180,11 @@ namespace System abstract static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out TSelf result); abstract static TSelf Zero { get; } } - public interface IPowerFunctions : System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IPowerFunctions + public interface IPowerFunctions : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IPowerFunctions { abstract static TSelf Pow(TSelf x, TSelf y); } - public interface IRootFunctions : System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IRootFunctions + public interface IRootFunctions : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IFloatingPointConstants, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IRootFunctions { abstract static TSelf Cbrt(TSelf x); abstract static TSelf Hypot(TSelf x, TSelf y); @@ -7197,7 +7197,7 @@ namespace System abstract static TResult operator >>(TSelf value, TOther shiftAmount); abstract static TResult operator >>>(TSelf value, TOther shiftAmount); } - public interface ISignedNumber : System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ISignedNumber + public interface ISignedNumber : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ISignedNumber { abstract static TSelf NegativeOne { get; } } @@ -7206,7 +7206,7 @@ namespace System static virtual TResult operator checked -(TSelf left, TOther right) => throw null; abstract static TResult operator -(TSelf left, TOther right); } - public interface ITrigonometricFunctions : System.Numerics.IFloatingPointConstants, System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ITrigonometricFunctions + public interface ITrigonometricFunctions : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IFloatingPointConstants, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.ITrigonometricFunctions { abstract static TSelf Acos(TSelf x); abstract static TSelf AcosPi(TSelf x); @@ -7232,7 +7232,7 @@ namespace System { abstract static TResult operator +(TSelf value); } - public interface IUnsignedNumber : System.Numerics.INumberBase, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IUnsignedNumber + public interface IUnsignedNumber : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumberBase, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators where TSelf : System.Numerics.IUnsignedNumber { } } @@ -7353,7 +7353,7 @@ namespace System public Progress() => throw null; public Progress(System.Action handler) => throw null; protected virtual void OnReport(T value) => throw null; - public event System.EventHandler ProgressChanged { add { } remove { } } + public event System.EventHandler ProgressChanged; void System.IProgress.Report(T value) => throw null; } public class Random @@ -7519,7 +7519,7 @@ namespace System public static System.Reflection.Assembly LoadWithPartialName(string partialName) => throw null; public virtual string Location { get => throw null; } public virtual System.Reflection.Module ManifestModule { get => throw null; } - public virtual event System.Reflection.ModuleResolveEventHandler ModuleResolve { add { } remove { } } + public virtual event System.Reflection.ModuleResolveEventHandler ModuleResolve; public virtual System.Collections.Generic.IEnumerable Modules { get => throw null; } public static bool operator ==(System.Reflection.Assembly left, System.Reflection.Assembly right) => throw null; public static bool operator !=(System.Reflection.Assembly left, System.Reflection.Assembly right) => throw null; @@ -8594,7 +8594,7 @@ namespace System public delegate System.Reflection.Assembly ResolveEventHandler(object sender, System.ResolveEventArgs args); namespace Resources { - public interface IResourceReader : System.Collections.IEnumerable, System.IDisposable + public interface IResourceReader : System.IDisposable, System.Collections.IEnumerable { void Close(); System.Collections.IDictionaryEnumerator GetEnumerator(); @@ -8649,7 +8649,7 @@ namespace System public virtual void ReleaseAllResources() => throw null; public virtual System.Type ResourceSetType { get => throw null; } } - public sealed class ResourceReader : System.Collections.IEnumerable, System.IDisposable, System.Resources.IResourceReader + public sealed class ResourceReader : System.IDisposable, System.Collections.IEnumerable, System.Resources.IResourceReader { public void Close() => throw null; public ResourceReader(System.IO.Stream stream) => throw null; @@ -8659,7 +8659,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public void GetResourceData(string resourceName, out string resourceType, out byte[] resourceData) => throw null; } - public class ResourceSet : System.Collections.IEnumerable, System.IDisposable + public class ResourceSet : System.IDisposable, System.Collections.IEnumerable { public virtual void Close() => throw null; protected ResourceSet() => throw null; @@ -8841,8 +8841,8 @@ namespace System public CompilerFeatureRequiredAttribute(string featureName) => throw null; public string FeatureName { get => throw null; } public bool IsOptional { get => throw null; set { } } - public static string RefStructs; - public static string RequiredMembers; + public const string RefStructs = default; + public const string RequiredMembers = default; } public sealed class CompilerGeneratedAttribute : System.Attribute { @@ -9150,16 +9150,16 @@ namespace System } public static class RuntimeFeature { - public static string ByRefFields; - public static string CovariantReturnsOfClasses; - public static string DefaultImplementationsOfInterfaces; + public const string ByRefFields = default; + public const string CovariantReturnsOfClasses = default; + public const string DefaultImplementationsOfInterfaces = default; public static bool IsDynamicCodeCompiled { get => throw null; } public static bool IsDynamicCodeSupported { get => throw null; } public static bool IsSupported(string feature) => throw null; - public static string NumericIntPtr; - public static string PortablePdb; - public static string UnmanagedSignatureCallingConvention; - public static string VirtualStaticsInInterfaces; + public const string NumericIntPtr = default; + public const string PortablePdb = default; + public const string UnmanagedSignatureCallingConvention = default; + public const string VirtualStaticsInInterfaces = default; } public static class RuntimeHelpers { @@ -10033,7 +10033,7 @@ namespace System public static nint ToIntPtr(System.RuntimeTypeHandle value) => throw null; public nint Value { get => throw null; } } - public struct SByte : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.ISignedNumber + public struct SByte : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static sbyte System.Numerics.INumberBase.Abs(sbyte value) => throw null; static sbyte System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } @@ -10076,13 +10076,13 @@ namespace System static sbyte System.Numerics.INumberBase.MaxMagnitude(sbyte x, sbyte y) => throw null; static sbyte System.Numerics.INumberBase.MaxMagnitudeNumber(sbyte x, sbyte y) => throw null; static sbyte System.Numerics.INumber.MaxNumber(sbyte x, sbyte y) => throw null; - public static sbyte MaxValue; + public const sbyte MaxValue = default; static sbyte System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static sbyte System.Numerics.INumber.Min(sbyte x, sbyte y) => throw null; static sbyte System.Numerics.INumberBase.MinMagnitude(sbyte x, sbyte y) => throw null; static sbyte System.Numerics.INumberBase.MinMagnitudeNumber(sbyte x, sbyte y) => throw null; static sbyte System.Numerics.INumber.MinNumber(sbyte x, sbyte y) => throw null; - public static sbyte MinValue; + public const sbyte MinValue = default; static sbyte System.Numerics.IMinMaxValue.MinValue { get => throw null; } static sbyte System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static sbyte System.Numerics.ISignedNumber.NegativeOne { get => throw null; } @@ -10280,7 +10280,7 @@ namespace System AllFlags = 16383, } } - public class PermissionSet : System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Security.ISecurityEncodable, System.Security.IStackWalk + public class PermissionSet : System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Collections.IEnumerable, System.Security.ISecurityEncodable, System.Security.IStackWalk { public System.Security.IPermission AddPermission(System.Security.IPermission perm) => throw null; protected virtual System.Security.IPermission AddPermissionImpl(System.Security.IPermission perm) => throw null; @@ -10446,7 +10446,7 @@ namespace System { public SerializableAttribute() => throw null; } - public struct Single : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPoint, System.Numerics.ISignedNumber, System.Numerics.IFloatingPointIeee754, System.Numerics.IHyperbolicFunctions, System.Numerics.ILogarithmicFunctions, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ITrigonometricFunctions, System.Numerics.IMinMaxValue + public struct Single : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryFloatingPointIeee754, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IExponentialFunctions, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.Numerics.IFloatingPointIeee754, System.IFormattable, System.Numerics.IHyperbolicFunctions, System.Numerics.IIncrementOperators, System.Numerics.ILogarithmicFunctions, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IPowerFunctions, System.Numerics.IRootFunctions, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.ITrigonometricFunctions, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { static float System.Numerics.INumberBase.Abs(float value) => throw null; static float System.Numerics.ITrigonometricFunctions.Acos(float x) => throw null; @@ -10476,9 +10476,9 @@ namespace System static float System.Numerics.INumberBase.CreateChecked(TOther value) => throw null; static float System.Numerics.INumberBase.CreateSaturating(TOther value) => throw null; static float System.Numerics.INumberBase.CreateTruncating(TOther value) => throw null; - public static float E; + public const float E = default; static float System.Numerics.IFloatingPointConstants.E { get => throw null; } - public static float Epsilon; + public const float Epsilon = default; static float System.Numerics.IFloatingPointIeee754.Epsilon { get => throw null; } public override bool Equals(object obj) => throw null; public bool Equals(float obj) => throw null; @@ -10529,21 +10529,21 @@ namespace System static float System.Numerics.INumberBase.MaxMagnitude(float x, float y) => throw null; static float System.Numerics.INumberBase.MaxMagnitudeNumber(float x, float y) => throw null; static float System.Numerics.INumber.MaxNumber(float x, float y) => throw null; - public static float MaxValue; + public const float MaxValue = default; static float System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static float System.Numerics.INumber.Min(float x, float y) => throw null; static float System.Numerics.INumberBase.MinMagnitude(float x, float y) => throw null; static float System.Numerics.INumberBase.MinMagnitudeNumber(float x, float y) => throw null; static float System.Numerics.INumber.MinNumber(float x, float y) => throw null; - public static float MinValue; + public const float MinValue = default; static float System.Numerics.IMinMaxValue.MinValue { get => throw null; } static float System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } - public static float NaN; + public const float NaN = default; static float System.Numerics.IFloatingPointIeee754.NaN { get => throw null; } - public static float NegativeInfinity; + public const float NegativeInfinity = default; static float System.Numerics.IFloatingPointIeee754.NegativeInfinity { get => throw null; } static float System.Numerics.ISignedNumber.NegativeOne { get => throw null; } - public static float NegativeZero; + public const float NegativeZero = default; static float System.Numerics.IFloatingPointIeee754.NegativeZero { get => throw null; } static float System.Numerics.INumberBase.One { get => throw null; } static float System.Numerics.IAdditionOperators.operator +(float left, float right) => throw null; @@ -10571,9 +10571,9 @@ namespace System public static float Parse(string s, System.Globalization.NumberStyles style) => throw null; static float System.Numerics.INumberBase.Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) => throw null; static float System.IParsable.Parse(string s, System.IFormatProvider provider) => throw null; - public static float Pi; + public const float Pi = default; static float System.Numerics.IFloatingPointConstants.Pi { get => throw null; } - public static float PositiveInfinity; + public const float PositiveInfinity = default; static float System.Numerics.IFloatingPointIeee754.PositiveInfinity { get => throw null; } static float System.Numerics.IPowerFunctions.Pow(float x, float y) => throw null; static int System.Numerics.INumberBase.Radix { get => throw null; } @@ -10595,7 +10595,7 @@ namespace System static float System.Numerics.ITrigonometricFunctions.Tan(float x) => throw null; static float System.Numerics.IHyperbolicFunctions.Tanh(float x) => throw null; static float System.Numerics.ITrigonometricFunctions.TanPi(float x) => throw null; - public static float Tau; + public const float Tau = default; static float System.Numerics.IFloatingPointConstants.Tau { get => throw null; } bool System.IConvertible.ToBoolean(System.IFormatProvider provider) => throw null; byte System.IConvertible.ToByte(System.IFormatProvider provider) => throw null; @@ -10679,7 +10679,7 @@ namespace System { public STAThreadAttribute() => throw null; } - public sealed class String : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.ICloneable, System.IComparable, System.IComparable, System.IConvertible, System.IEquatable + public sealed class String : System.ICloneable, System.IComparable, System.IComparable, System.IConvertible, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IEquatable { public object Clone() => throw null; public static int Compare(string strA, int indexA, string strB, int indexB, int length) => throw null; @@ -10869,7 +10869,7 @@ namespace System public string TrimStart(params char[] trimChars) => throw null; public bool TryCopyTo(System.Span destination) => throw null; } - public abstract class StringComparer : System.Collections.Generic.IComparer, System.Collections.Generic.IEqualityComparer, System.Collections.IComparer, System.Collections.IEqualityComparer + public abstract class StringComparer : System.Collections.Generic.IComparer, System.Collections.IComparer, System.Collections.Generic.IEqualityComparer, System.Collections.IEqualityComparer { public int Compare(object x, object y) => throw null; public abstract int Compare(string x, string y); @@ -11361,7 +11361,7 @@ namespace System public override string ToString() => throw null; public string ToString(int startIndex, int length) => throw null; } - public struct StringRuneEnumerator : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct StringRuneEnumerator : System.IDisposable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Text.Rune Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -11867,7 +11867,7 @@ namespace System protected virtual bool TryDequeue(System.Threading.Tasks.Task task) => throw null; protected bool TryExecuteTask(System.Threading.Tasks.Task task) => throw null; protected abstract bool TryExecuteTaskInline(System.Threading.Tasks.Task task, bool taskWasPreviouslyQueued); - public static event System.EventHandler UnobservedTaskException { add { } remove { } } + public static event System.EventHandler UnobservedTaskException; } public class TaskSchedulerException : System.Exception { @@ -11943,7 +11943,7 @@ namespace System } public static class Timeout { - public static int Infinite; + public const int Infinite = default; public static System.TimeSpan InfiniteTimeSpan; } public sealed class Timer : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable @@ -11990,7 +11990,7 @@ namespace System public virtual bool WaitOne(int millisecondsTimeout, bool exitContext) => throw null; public virtual bool WaitOne(System.TimeSpan timeout) => throw null; public virtual bool WaitOne(System.TimeSpan timeout, bool exitContext) => throw null; - public static int WaitTimeout; + public const int WaitTimeout = default; } public static partial class WaitHandleExtensions { @@ -12115,7 +12115,7 @@ namespace System public static System.TimeSpan MinValue; public System.TimeSpan Multiply(double factor) => throw null; public int Nanoseconds { get => throw null; } - public static long NanosecondsPerTick; + public const long NanosecondsPerTick = default; public System.TimeSpan Negate() => throw null; public static System.TimeSpan operator +(System.TimeSpan t1, System.TimeSpan t2) => throw null; public static System.TimeSpan operator /(System.TimeSpan timeSpan, double divisor) => throw null; @@ -12143,12 +12143,12 @@ namespace System public int Seconds { get => throw null; } public System.TimeSpan Subtract(System.TimeSpan ts) => throw null; public long Ticks { get => throw null; } - public static long TicksPerDay; - public static long TicksPerHour; - public static long TicksPerMicrosecond; - public static long TicksPerMillisecond; - public static long TicksPerMinute; - public static long TicksPerSecond; + public const long TicksPerDay = default; + public const long TicksPerHour = default; + public const long TicksPerMicrosecond = default; + public const long TicksPerMillisecond = default; + public const long TicksPerMinute = default; + public const long TicksPerSecond = default; public override string ToString() => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider formatProvider) => throw null; @@ -12187,9 +12187,9 @@ namespace System public virtual System.DateTime ToLocalTime(System.DateTime time) => throw null; public virtual System.DateTime ToUniversalTime(System.DateTime time) => throw null; } - public sealed class TimeZoneInfo : System.IEquatable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public sealed class TimeZoneInfo : System.Runtime.Serialization.IDeserializationCallback, System.IEquatable, System.Runtime.Serialization.ISerializable { - public sealed class AdjustmentRule : System.IEquatable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public sealed class AdjustmentRule : System.Runtime.Serialization.IDeserializationCallback, System.IEquatable, System.Runtime.Serialization.ISerializable { public System.TimeSpan BaseUtcOffsetDelta { get => throw null; } public static System.TimeZoneInfo.AdjustmentRule CreateAdjustmentRule(System.DateTime dateStart, System.DateTime dateEnd, System.TimeSpan daylightDelta, System.TimeZoneInfo.TransitionTime daylightTransitionStart, System.TimeZoneInfo.TransitionTime daylightTransitionEnd) => throw null; @@ -12247,7 +12247,7 @@ namespace System public bool SupportsDaylightSavingTime { get => throw null; } public string ToSerializedString() => throw null; public override string ToString() => throw null; - public struct TransitionTime : System.IEquatable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public struct TransitionTime : System.Runtime.Serialization.IDeserializationCallback, System.IEquatable, System.Runtime.Serialization.ISerializable { public static System.TimeZoneInfo.TransitionTime CreateFixedDateRule(System.DateTime timeOfDay, int month, int day) => throw null; public static System.TimeZoneInfo.TransitionTime CreateFloatingDateRule(System.DateTime timeOfDay, int month, int week, System.DayOfWeek dayOfWeek) => throw null; @@ -12288,7 +12288,7 @@ namespace System public static System.Tuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; public static System.Tuple> Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) => throw null; } - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + public class Tuple : System.IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; int System.IComparable.CompareTo(object obj) => throw null; @@ -12302,7 +12302,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + public class Tuple : System.IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; int System.IComparable.CompareTo(object obj) => throw null; @@ -12317,7 +12317,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + public class Tuple : System.IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; int System.IComparable.CompareTo(object obj) => throw null; @@ -12333,7 +12333,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + public class Tuple : System.IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; int System.IComparable.CompareTo(object obj) => throw null; @@ -12350,7 +12350,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + public class Tuple : System.IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; int System.IComparable.CompareTo(object obj) => throw null; @@ -12368,7 +12368,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + public class Tuple : System.IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; int System.IComparable.CompareTo(object obj) => throw null; @@ -12387,7 +12387,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + public class Tuple : System.IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; int System.IComparable.CompareTo(object obj) => throw null; @@ -12407,7 +12407,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple + public class Tuple : System.IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; int System.IComparable.CompareTo(object obj) => throw null; @@ -12753,7 +12753,7 @@ namespace System public TypeUnloadedException(string message) => throw null; public TypeUnloadedException(string message, System.Exception innerException) => throw null; } - public struct UInt128 : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber + public struct UInt128 : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber { static System.UInt128 System.Numerics.INumberBase.Abs(System.UInt128 value) => throw null; static System.UInt128 System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } @@ -12917,7 +12917,7 @@ namespace System bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static System.UInt128 System.Numerics.INumberBase.Zero { get => throw null; } } - public struct UInt16 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber + public struct UInt16 : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber { static ushort System.Numerics.INumberBase.Abs(ushort value) => throw null; static ushort System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } @@ -12960,13 +12960,13 @@ namespace System static ushort System.Numerics.INumberBase.MaxMagnitude(ushort x, ushort y) => throw null; static ushort System.Numerics.INumberBase.MaxMagnitudeNumber(ushort x, ushort y) => throw null; static ushort System.Numerics.INumber.MaxNumber(ushort x, ushort y) => throw null; - public static ushort MaxValue; + public const ushort MaxValue = default; static ushort System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static ushort System.Numerics.INumber.Min(ushort x, ushort y) => throw null; static ushort System.Numerics.INumberBase.MinMagnitude(ushort x, ushort y) => throw null; static ushort System.Numerics.INumberBase.MinMagnitudeNumber(ushort x, ushort y) => throw null; static ushort System.Numerics.INumber.MinNumber(ushort x, ushort y) => throw null; - public static ushort MinValue; + public const ushort MinValue = default; static ushort System.Numerics.IMinMaxValue.MinValue { get => throw null; } static ushort System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static ushort System.Numerics.INumberBase.One { get => throw null; } @@ -13048,7 +13048,7 @@ namespace System bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static ushort System.Numerics.INumberBase.Zero { get => throw null; } } - public struct UInt32 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber + public struct UInt32 : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber { static uint System.Numerics.INumberBase.Abs(uint value) => throw null; static uint System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } @@ -13091,13 +13091,13 @@ namespace System static uint System.Numerics.INumberBase.MaxMagnitude(uint x, uint y) => throw null; static uint System.Numerics.INumberBase.MaxMagnitudeNumber(uint x, uint y) => throw null; static uint System.Numerics.INumber.MaxNumber(uint x, uint y) => throw null; - public static uint MaxValue; + public const uint MaxValue = default; static uint System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static uint System.Numerics.INumber.Min(uint x, uint y) => throw null; static uint System.Numerics.INumberBase.MinMagnitude(uint x, uint y) => throw null; static uint System.Numerics.INumberBase.MinMagnitudeNumber(uint x, uint y) => throw null; static uint System.Numerics.INumber.MinNumber(uint x, uint y) => throw null; - public static uint MinValue; + public const uint MinValue = default; static uint System.Numerics.IMinMaxValue.MinValue { get => throw null; } static uint System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static uint System.Numerics.INumberBase.One { get => throw null; } @@ -13179,7 +13179,7 @@ namespace System bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static uint System.Numerics.INumberBase.Zero { get => throw null; } } - public struct UInt64 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber + public struct UInt64 : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Numerics.IShiftOperators, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber { static ulong System.Numerics.INumberBase.Abs(ulong value) => throw null; static ulong System.Numerics.IAdditiveIdentity.AdditiveIdentity { get => throw null; } @@ -13222,13 +13222,13 @@ namespace System static ulong System.Numerics.INumberBase.MaxMagnitude(ulong x, ulong y) => throw null; static ulong System.Numerics.INumberBase.MaxMagnitudeNumber(ulong x, ulong y) => throw null; static ulong System.Numerics.INumber.MaxNumber(ulong x, ulong y) => throw null; - public static ulong MaxValue; + public const ulong MaxValue = default; static ulong System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static ulong System.Numerics.INumber.Min(ulong x, ulong y) => throw null; static ulong System.Numerics.INumberBase.MinMagnitude(ulong x, ulong y) => throw null; static ulong System.Numerics.INumberBase.MinMagnitudeNumber(ulong x, ulong y) => throw null; static ulong System.Numerics.INumber.MinNumber(ulong x, ulong y) => throw null; - public static ulong MinValue; + public const ulong MinValue = default; static ulong System.Numerics.IMinMaxValue.MinValue { get => throw null; } static ulong System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static ulong System.Numerics.INumberBase.One { get => throw null; } @@ -13310,7 +13310,7 @@ namespace System bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; static ulong System.Numerics.INumberBase.Zero { get => throw null; } } - public struct UIntPtr : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.Numerics.IComparisonOperators, System.Numerics.IEqualityOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IIncrementOperators, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IShiftOperators, System.Numerics.IMinMaxValue, System.Numerics.IUnsignedNumber, System.Runtime.Serialization.ISerializable + public struct UIntPtr : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IBinaryInteger, System.Numerics.IBinaryNumber, System.Numerics.IBitwiseOperators, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Runtime.Serialization.ISerializable, System.Numerics.IShiftOperators, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.Numerics.IUnsignedNumber { static nuint System.Numerics.INumberBase.Abs(nuint value) => throw null; public static nuint Add(nuint pointer, int offset) => throw null; @@ -13641,7 +13641,7 @@ namespace System Path = 2, Query = 3, } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable, System.IEquatable, System.Runtime.CompilerServices.ITuple + public struct ValueTuple : System.IComparable, System.IComparable, System.IEquatable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { public int CompareTo(System.ValueTuple other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; @@ -13664,7 +13664,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable>, System.IEquatable>, System.Runtime.CompilerServices.ITuple + public struct ValueTuple : System.IComparable, System.IComparable>, System.IEquatable>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { public int CompareTo(System.ValueTuple other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; @@ -13680,7 +13680,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2)>, System.IEquatable<(T1, T2)>, System.Runtime.CompilerServices.ITuple + public struct ValueTuple : System.IComparable, System.IComparable<(T1, T2)>, System.IEquatable<(T1, T2)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { public int CompareTo((T1, T2) other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; @@ -13697,7 +13697,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3)>, System.IEquatable<(T1, T2, T3)>, System.Runtime.CompilerServices.ITuple + public struct ValueTuple : System.IComparable, System.IComparable<(T1, T2, T3)>, System.IEquatable<(T1, T2, T3)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { public int CompareTo((T1, T2, T3) other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; @@ -13715,7 +13715,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4)>, System.IEquatable<(T1, T2, T3, T4)>, System.Runtime.CompilerServices.ITuple + public struct ValueTuple : System.IComparable, System.IComparable<(T1, T2, T3, T4)>, System.IEquatable<(T1, T2, T3, T4)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { public int CompareTo((T1, T2, T3, T4) other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; @@ -13734,7 +13734,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4, T5)>, System.IEquatable<(T1, T2, T3, T4, T5)>, System.Runtime.CompilerServices.ITuple + public struct ValueTuple : System.IComparable, System.IComparable<(T1, T2, T3, T4, T5)>, System.IEquatable<(T1, T2, T3, T4, T5)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { public int CompareTo((T1, T2, T3, T4, T5) other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; @@ -13754,7 +13754,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4, T5, T6)>, System.IEquatable<(T1, T2, T3, T4, T5, T6)>, System.Runtime.CompilerServices.ITuple + public struct ValueTuple : System.IComparable, System.IComparable<(T1, T2, T3, T4, T5, T6)>, System.IEquatable<(T1, T2, T3, T4, T5, T6)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { public int CompareTo((T1, T2, T3, T4, T5, T6) other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; @@ -13775,7 +13775,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable<(T1, T2, T3, T4, T5, T6, T7)>, System.IEquatable<(T1, T2, T3, T4, T5, T6, T7)>, System.Runtime.CompilerServices.ITuple + public struct ValueTuple : System.IComparable, System.IComparable<(T1, T2, T3, T4, T5, T6, T7)>, System.IEquatable<(T1, T2, T3, T4, T5, T6, T7)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple { public int CompareTo((T1, T2, T3, T4, T5, T6, T7) other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; @@ -13797,7 +13797,7 @@ namespace System int System.Runtime.CompilerServices.ITuple.Length { get => throw null; } public override string ToString() => throw null; } - public struct ValueTuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.IComparable>, System.IEquatable>, System.Runtime.CompilerServices.ITuple where TRest : struct + public struct ValueTuple : System.IComparable, System.IComparable>, System.IEquatable>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple where TRest : struct { public int CompareTo(System.ValueTuple other) => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Claims.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Claims.cs index 15860b63cf2..f02eec87c0d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Claims.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Claims.cs @@ -55,9 +55,9 @@ namespace System public ClaimsIdentity(string authenticationType) => throw null; public ClaimsIdentity(string authenticationType, string nameType, string roleType) => throw null; protected virtual byte[] CustomSerializationData { get => throw null; } - public static string DefaultIssuer; - public static string DefaultNameClaimType; - public static string DefaultRoleClaimType; + public const string DefaultIssuer = default; + public const string DefaultNameClaimType = default; + public const string DefaultRoleClaimType = default; public virtual System.Collections.Generic.IEnumerable FindAll(System.Predicate match) => throw null; public virtual System.Collections.Generic.IEnumerable FindAll(string type) => throw null; public virtual System.Security.Claims.Claim FindFirst(System.Predicate match) => throw null; @@ -107,90 +107,90 @@ namespace System } public static class ClaimTypes { - public static string Actor; - public static string Anonymous; - public static string Authentication; - public static string AuthenticationInstant; - public static string AuthenticationMethod; - public static string AuthorizationDecision; - public static string CookiePath; - public static string Country; - public static string DateOfBirth; - public static string DenyOnlyPrimaryGroupSid; - public static string DenyOnlyPrimarySid; - public static string DenyOnlySid; - public static string DenyOnlyWindowsDeviceGroup; - public static string Dns; - public static string Dsa; - public static string Email; - public static string Expiration; - public static string Expired; - public static string Gender; - public static string GivenName; - public static string GroupSid; - public static string Hash; - public static string HomePhone; - public static string IsPersistent; - public static string Locality; - public static string MobilePhone; - public static string Name; - public static string NameIdentifier; - public static string OtherPhone; - public static string PostalCode; - public static string PrimaryGroupSid; - public static string PrimarySid; - public static string Role; - public static string Rsa; - public static string SerialNumber; - public static string Sid; - public static string Spn; - public static string StateOrProvince; - public static string StreetAddress; - public static string Surname; - public static string System; - public static string Thumbprint; - public static string Upn; - public static string Uri; - public static string UserData; - public static string Version; - public static string Webpage; - public static string WindowsAccountName; - public static string WindowsDeviceClaim; - public static string WindowsDeviceGroup; - public static string WindowsFqbnVersion; - public static string WindowsSubAuthority; - public static string WindowsUserClaim; - public static string X500DistinguishedName; + public const string Actor = default; + public const string Anonymous = default; + public const string Authentication = default; + public const string AuthenticationInstant = default; + public const string AuthenticationMethod = default; + public const string AuthorizationDecision = default; + public const string CookiePath = default; + public const string Country = default; + public const string DateOfBirth = default; + public const string DenyOnlyPrimaryGroupSid = default; + public const string DenyOnlyPrimarySid = default; + public const string DenyOnlySid = default; + public const string DenyOnlyWindowsDeviceGroup = default; + public const string Dns = default; + public const string Dsa = default; + public const string Email = default; + public const string Expiration = default; + public const string Expired = default; + public const string Gender = default; + public const string GivenName = default; + public const string GroupSid = default; + public const string Hash = default; + public const string HomePhone = default; + public const string IsPersistent = default; + public const string Locality = default; + public const string MobilePhone = default; + public const string Name = default; + public const string NameIdentifier = default; + public const string OtherPhone = default; + public const string PostalCode = default; + public const string PrimaryGroupSid = default; + public const string PrimarySid = default; + public const string Role = default; + public const string Rsa = default; + public const string SerialNumber = default; + public const string Sid = default; + public const string Spn = default; + public const string StateOrProvince = default; + public const string StreetAddress = default; + public const string Surname = default; + public const string System = default; + public const string Thumbprint = default; + public const string Upn = default; + public const string Uri = default; + public const string UserData = default; + public const string Version = default; + public const string Webpage = default; + public const string WindowsAccountName = default; + public const string WindowsDeviceClaim = default; + public const string WindowsDeviceGroup = default; + public const string WindowsFqbnVersion = default; + public const string WindowsSubAuthority = default; + public const string WindowsUserClaim = default; + public const string X500DistinguishedName = default; } public static class ClaimValueTypes { - public static string Base64Binary; - public static string Base64Octet; - public static string Boolean; - public static string Date; - public static string DateTime; - public static string DaytimeDuration; - public static string DnsName; - public static string Double; - public static string DsaKeyValue; - public static string Email; - public static string Fqbn; - public static string HexBinary; - public static string Integer; - public static string Integer32; - public static string Integer64; - public static string KeyInfo; - public static string Rfc822Name; - public static string Rsa; - public static string RsaKeyValue; - public static string Sid; - public static string String; - public static string Time; - public static string UInteger32; - public static string UInteger64; - public static string UpnName; - public static string X500Name; - public static string YearMonthDuration; + public const string Base64Binary = default; + public const string Base64Octet = default; + public const string Boolean = default; + public const string Date = default; + public const string DateTime = default; + public const string DaytimeDuration = default; + public const string DnsName = default; + public const string Double = default; + public const string DsaKeyValue = default; + public const string Email = default; + public const string Fqbn = default; + public const string HexBinary = default; + public const string Integer = default; + public const string Integer32 = default; + public const string Integer64 = default; + public const string KeyInfo = default; + public const string Rfc822Name = default; + public const string Rsa = default; + public const string RsaKeyValue = default; + public const string Sid = default; + public const string String = default; + public const string Time = default; + public const string UInteger32 = default; + public const string UInteger64 = default; + public const string UpnName = default; + public const string X500Name = default; + public const string YearMonthDuration = default; } } namespace Principal diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs index 0f0dfa58ee1..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Security.Cryptography.Algorithms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs index c8e93faa276..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Security.Cryptography.Cng, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs index 21f9151a1dc..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Security.Cryptography.Csp, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs index 61733b4ccce..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Security.Cryptography.Encoding, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs index 26212d2445d..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Security.Cryptography.OpenSsl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs index 2f71d92649d..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Security.Cryptography.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs index 9709f58b2bf..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Security.Cryptography.X509Certificates, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs index 9dce291b928..2f62d1f79fd 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs @@ -1056,7 +1056,7 @@ namespace System public byte[] X; public byte[] Y; } - public class FromBase64Transform : System.IDisposable, System.Security.Cryptography.ICryptoTransform + public class FromBase64Transform : System.Security.Cryptography.ICryptoTransform, System.IDisposable { public virtual bool CanReuseTransform { get => throw null; } public bool CanTransformMultipleBlocks { get => throw null; } @@ -1075,7 +1075,7 @@ namespace System IgnoreWhiteSpaces = 0, DoNotIgnoreWhiteSpaces = 1, } - public abstract class HashAlgorithm : System.IDisposable, System.Security.Cryptography.ICryptoTransform + public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform, System.IDisposable { public virtual bool CanReuseTransform { get => throw null; } public virtual bool CanTransformMultipleBlocks { get => throw null; } @@ -1164,8 +1164,8 @@ namespace System public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override byte[] HashFinal() => throw null; - public static int HashSizeInBits; - public static int HashSizeInBytes; + public const int HashSizeInBits = default; + public const int HashSizeInBytes = default; public override void Initialize() => throw null; public override byte[] Key { get => throw null; set { } } public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; @@ -1189,8 +1189,8 @@ namespace System public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override byte[] HashFinal() => throw null; - public static int HashSizeInBits; - public static int HashSizeInBytes; + public const int HashSizeInBits = default; + public const int HashSizeInBytes = default; public override void Initialize() => throw null; public override byte[] Key { get => throw null; set { } } public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; @@ -1213,8 +1213,8 @@ namespace System public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override byte[] HashFinal() => throw null; - public static int HashSizeInBits; - public static int HashSizeInBytes; + public const int HashSizeInBits = default; + public const int HashSizeInBytes = default; public override void Initialize() => throw null; public override byte[] Key { get => throw null; set { } } public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; @@ -1237,8 +1237,8 @@ namespace System public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override byte[] HashFinal() => throw null; - public static int HashSizeInBits; - public static int HashSizeInBytes; + public const int HashSizeInBits = default; + public const int HashSizeInBytes = default; public override void Initialize() => throw null; public override byte[] Key { get => throw null; set { } } public bool ProduceLegacyHmacValues { get => throw null; set { } } @@ -1262,8 +1262,8 @@ namespace System public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override byte[] HashFinal() => throw null; - public static int HashSizeInBits; - public static int HashSizeInBytes; + public const int HashSizeInBits = default; + public const int HashSizeInBytes = default; public override void Initialize() => throw null; public override byte[] Key { get => throw null; set { } } public bool ProduceLegacyHmacValues { get => throw null; set { } } @@ -1341,8 +1341,8 @@ namespace System public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static int HashSizeInBits; - public static int HashSizeInBytes; + public const int HashSizeInBits = default; + public const int HashSizeInBytes = default; public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } public sealed class MD5CryptoServiceProvider : System.Security.Cryptography.MD5 @@ -1825,8 +1825,8 @@ namespace System public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static int HashSizeInBits; - public static int HashSizeInBytes; + public const int HashSizeInBits = default; + public const int HashSizeInBytes = default; public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } public sealed class SHA1CryptoServiceProvider : System.Security.Cryptography.SHA1 @@ -1861,8 +1861,8 @@ namespace System public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static int HashSizeInBits; - public static int HashSizeInBytes; + public const int HashSizeInBits = default; + public const int HashSizeInBytes = default; public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } public sealed class SHA256CryptoServiceProvider : System.Security.Cryptography.SHA256 @@ -1897,8 +1897,8 @@ namespace System public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static int HashSizeInBits; - public static int HashSizeInBytes; + public const int HashSizeInBits = default; + public const int HashSizeInBytes = default; public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } public sealed class SHA384CryptoServiceProvider : System.Security.Cryptography.SHA384 @@ -1933,8 +1933,8 @@ namespace System public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static int HashSizeInBits; - public static int HashSizeInBytes; + public const int HashSizeInBits = default; + public const int HashSizeInBytes = default; public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } public sealed class SHA512CryptoServiceProvider : System.Security.Cryptography.SHA512 @@ -2036,7 +2036,7 @@ namespace System protected virtual bool TryEncryptEcbCore(System.ReadOnlySpan plaintext, System.Span destination, System.Security.Cryptography.PaddingMode paddingMode, out int bytesWritten) => throw null; public bool ValidKeySize(int bitLength) => throw null; } - public class ToBase64Transform : System.IDisposable, System.Security.Cryptography.ICryptoTransform + public class ToBase64Transform : System.Security.Cryptography.ICryptoTransform, System.IDisposable { public virtual bool CanReuseTransform { get => throw null; } public bool CanTransformMultipleBlocks { get => throw null; } @@ -2312,7 +2312,7 @@ namespace System public bool HasPathLengthConstraint { get => throw null; } public int PathLengthConstraint { get => throw null; } } - public class X509Certificate : System.IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class X509Certificate : System.Runtime.Serialization.IDeserializationCallback, System.IDisposable, System.Runtime.Serialization.ISerializable { public static System.Security.Cryptography.X509Certificates.X509Certificate CreateFromCertFile(string filename) => throw null; public static System.Security.Cryptography.X509Certificates.X509Certificate CreateFromSignedFile(string filename) => throw null; @@ -2470,7 +2470,7 @@ namespace System public bool TryExportCertificatePems(System.Span destination, out int charsWritten) => throw null; public bool TryExportPkcs7Pem(System.Span destination, out int charsWritten) => throw null; } - public sealed class X509Certificate2Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public sealed class X509Certificate2Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Security.Cryptography.X509Certificates.X509Certificate2 Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2530,7 +2530,7 @@ namespace System public System.Security.Cryptography.X509Certificates.X509ChainStatus[] ChainElementStatus { get => throw null; } public string Information { get => throw null; } } - public sealed class X509ChainElementCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection + public sealed class X509ChainElementCollection : System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public void CopyTo(System.Security.Cryptography.X509Certificates.X509ChainElement[] array, int index) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; @@ -2542,7 +2542,7 @@ namespace System public object SyncRoot { get => throw null; } public System.Security.Cryptography.X509Certificates.X509ChainElement this[int index] { get => throw null; } } - public sealed class X509ChainElementEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public sealed class X509ChainElementEnumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Security.Cryptography.X509Certificates.X509ChainElement Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -2638,7 +2638,7 @@ namespace System public X509Extension(string oid, byte[] rawData, bool critical) => throw null; public X509Extension(string oid, System.ReadOnlySpan rawData, bool critical) => throw null; } - public sealed class X509ExtensionCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.ICollection + public sealed class X509ExtensionCollection : System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public int Add(System.Security.Cryptography.X509Certificates.X509Extension extension) => throw null; public void CopyTo(System.Security.Cryptography.X509Certificates.X509Extension[] array, int index) => throw null; @@ -2653,7 +2653,7 @@ namespace System public System.Security.Cryptography.X509Certificates.X509Extension this[int index] { get => throw null; } public System.Security.Cryptography.X509Certificates.X509Extension this[string oid] { get => throw null; } } - public sealed class X509ExtensionEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public sealed class X509ExtensionEnumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Security.Cryptography.X509Certificates.X509Extension Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs index a125eb40d7a..211220df5b9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs @@ -232,7 +232,7 @@ namespace System BackupOperator = 551, Replicator = 552, } - public class WindowsIdentity : System.Security.Claims.ClaimsIdentity, System.IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + public class WindowsIdentity : System.Security.Claims.ClaimsIdentity, System.Runtime.Serialization.IDeserializationCallback, System.IDisposable, System.Runtime.Serialization.ISerializable { public Microsoft.Win32.SafeHandles.SafeAccessTokenHandle AccessToken { get => throw null; } public override sealed string AuthenticationType { get => throw null; } @@ -245,7 +245,7 @@ namespace System public WindowsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; protected WindowsIdentity(System.Security.Principal.WindowsIdentity identity) => throw null; public WindowsIdentity(string sUserPrincipalName) => throw null; - public static string DefaultIssuer; + public const string DefaultIssuer = default; public virtual System.Collections.Generic.IEnumerable DeviceClaims { get => throw null; } public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs index a98d623155c..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Security.Principal, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs index e05ef4f2205..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Security.SecureString, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs index 2cf972311cc..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs index d6d5ab5c577..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs index 6a1ff5e0a00..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs index 3b2478d58cb..e6ede599a54 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs @@ -30,7 +30,7 @@ namespace System } public class UnicodeEncoding : System.Text.Encoding { - public static int CharSize; + public const int CharSize = default; public UnicodeEncoding() => throw null; public UnicodeEncoding(bool bigEndian, bool byteOrderMark) => throw null; public UnicodeEncoding(bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs index 2d88a5f2354..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Text.Encoding, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Json.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Json.cs index 20c147bb629..c82449571d9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Json.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Json.cs @@ -34,7 +34,7 @@ namespace System } public struct JsonElement { - public struct ArrayEnumerator : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct ArrayEnumerator : System.IDisposable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Text.Json.JsonElement Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -70,7 +70,7 @@ namespace System public ushort GetUInt16() => throw null; public uint GetUInt32() => throw null; public ulong GetUInt64() => throw null; - public struct ObjectEnumerator : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public struct ObjectEnumerator : System.IDisposable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public System.Text.Json.JsonProperty Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -414,7 +414,7 @@ namespace System { public bool PropertyNameCaseInsensitive { get => throw null; set { } } } - public sealed class JsonObject : System.Text.Json.Nodes.JsonNode, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IDictionary + public sealed class JsonObject : System.Text.Json.Nodes.JsonNode, System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { public void Add(System.Collections.Generic.KeyValuePair property) => throw null; public void Add(string propertyName, System.Text.Json.Nodes.JsonNode value) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs index 6baaa659f38..2905fd80b4b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs @@ -14,7 +14,7 @@ namespace System public string Value { get => throw null; } public System.ReadOnlySpan ValueSpan { get => throw null; } } - public class CaptureCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList + public class CaptureCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { void System.Collections.Generic.ICollection.Add(System.Text.RegularExpressions.Capture item) => throw null; int System.Collections.IList.Add(object value) => throw null; @@ -62,7 +62,7 @@ namespace System public bool Success { get => throw null; } public static System.Text.RegularExpressions.Group Synchronized(System.Text.RegularExpressions.Group inner) => throw null; } - public class GroupCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList + public class GroupCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyList { void System.Collections.Generic.ICollection.Add(System.Text.RegularExpressions.Group item) => throw null; int System.Collections.IList.Add(object value) => throw null; @@ -105,7 +105,7 @@ namespace System public virtual string Result(string replacement) => throw null; public static System.Text.RegularExpressions.Match Synchronized(System.Text.RegularExpressions.Match inner) => throw null; } - public class MatchCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IList + public class MatchCollection : System.Collections.Generic.ICollection, System.Collections.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList { void System.Collections.Generic.ICollection.Add(System.Text.RegularExpressions.Match item) => throw null; int System.Collections.IList.Add(object value) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs index 36636e13569..31c96458371 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs @@ -22,7 +22,7 @@ namespace System public bool Post(TInput item) => throw null; public override string ToString() => throw null; } - public sealed class BatchBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock + public sealed class BatchBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock { public int BatchSize { get => throw null; } public void Complete() => throw null; @@ -80,7 +80,7 @@ namespace System public bool TryReceive(System.Predicate, System.Collections.Generic.IList, System.Collections.Generic.IList>> filter, out System.Tuple, System.Collections.Generic.IList, System.Collections.Generic.IList> item) => throw null; public bool TryReceiveAll(out System.Collections.Generic.IList, System.Collections.Generic.IList, System.Collections.Generic.IList>> items) => throw null; } - public sealed class BroadcastBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock + public sealed class BroadcastBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock { public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } @@ -96,7 +96,7 @@ namespace System public bool TryReceive(System.Predicate filter, out T item) => throw null; bool System.Threading.Tasks.Dataflow.IReceivableSourceBlock.TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - public sealed class BufferBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock + public sealed class BufferBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock { public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } @@ -151,7 +151,7 @@ namespace System public int MaxMessagesPerTask { get => throw null; set { } } public string NameFormat { get => throw null; set { } } public System.Threading.Tasks.TaskScheduler TaskScheduler { get => throw null; set { } } - public static int Unbounded; + public const int Unbounded = default; } public class DataflowLinkOptions { @@ -253,7 +253,7 @@ namespace System public bool TryReceive(System.Predicate> filter, out System.Tuple item) => throw null; public bool TryReceiveAll(out System.Collections.Generic.IList> items) => throw null; } - public sealed class TransformBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock + public sealed class TransformBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock { public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } @@ -273,7 +273,7 @@ namespace System public bool TryReceive(System.Predicate filter, out TOutput item) => throw null; public bool TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - public sealed class TransformManyBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock + public sealed class TransformManyBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock { public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } @@ -295,7 +295,7 @@ namespace System public bool TryReceive(System.Predicate filter, out TOutput item) => throw null; public bool TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - public sealed class WriteOnceBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock + public sealed class WriteOnceBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IPropagatorBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock { public void Complete() => throw null; public System.Threading.Tasks.Task Completion { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs index bf9b214e18f..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Threading.Tasks.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs index 099e2670480..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Threading.Tasks, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs index 4c227d1b547..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Threading.Timer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.cs index 71281da61b4..696fbcf6047 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.cs @@ -16,7 +16,7 @@ namespace System public System.Threading.Mutex Mutex { get => throw null; } public int MutexIndex { get => throw null; } } - public struct AsyncFlowControl : System.IEquatable, System.IDisposable + public struct AsyncFlowControl : System.IDisposable, System.IEquatable { public void Dispose() => throw null; public override bool Equals(object obj) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs index 93c34566210..41caa8253ec 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs @@ -127,7 +127,7 @@ namespace System public void Rollback() => throw null; public void Rollback(System.Exception e) => throw null; public void SetDistributedTransactionIdentifier(System.Transactions.IPromotableSinglePhaseNotification promotableNotification, System.Guid distributedTransactionIdentifier) => throw null; - public event System.Transactions.TransactionCompletedEventHandler TransactionCompleted { add { } remove { } } + public event System.Transactions.TransactionCompletedEventHandler TransactionCompleted; public System.Transactions.TransactionInformation TransactionInformation { get => throw null; } } public class TransactionAbortedException : System.Transactions.TransactionException @@ -178,7 +178,7 @@ namespace System public static class TransactionManager { public static System.TimeSpan DefaultTimeout { get => throw null; set { } } - public static event System.Transactions.TransactionStartedEventHandler DistributedTransactionStarted { add { } remove { } } + public static event System.Transactions.TransactionStartedEventHandler DistributedTransactionStarted; public static System.Transactions.HostCurrentTransactionCallback HostCurrentCallback { get => throw null; set { } } public static bool ImplicitDistributedTransactions { get => throw null; set { } } public static System.TimeSpan MaximumTimeout { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs index 2d691f7b48c..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs index 4e2a700aa41..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs index fca0c2bf558..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs index bef2d1bbe95..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs index ab12a2bceca..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs index 181ee980c4f..bc1070eafff 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs @@ -155,10 +155,10 @@ namespace System public System.Xml.Schema.XmlSchemaObjectTable Groups { get => throw null; } public string Id { get => throw null; set { } } public System.Xml.Schema.XmlSchemaObjectCollection Includes { get => throw null; } - public static string InstanceNamespace; + public const string InstanceNamespace = default; public bool IsCompiled { get => throw null; } public System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } - public static string Namespace; + public const string Namespace = default; public System.Xml.Schema.XmlSchemaObjectTable Notations { get => throw null; } public static System.Xml.Schema.XmlSchema Read(System.IO.Stream stream, System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; public static System.Xml.Schema.XmlSchema Read(System.IO.TextReader reader, System.Xml.Schema.ValidationEventHandler validationEventHandler) => throw null; @@ -267,7 +267,7 @@ namespace System public System.Xml.XmlNameTable NameTable { get => throw null; } object System.Collections.ICollection.SyncRoot { get => throw null; } public System.Xml.Schema.XmlSchema this[string ns] { get => throw null; } - public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler; } public sealed class XmlSchemaCollectionEnumerator : System.Collections.IEnumerator { @@ -654,7 +654,7 @@ namespace System public System.Xml.Schema.XmlSchema Reprocess(System.Xml.Schema.XmlSchema schema) => throw null; public System.Collections.ICollection Schemas() => throw null; public System.Collections.ICollection Schemas(string targetNamespace) => throw null; - public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler; public System.Xml.XmlResolver XmlResolver { set { } } } public class XmlSchemaSimpleContent : System.Xml.Schema.XmlSchemaContentModel @@ -787,7 +787,7 @@ namespace System public void ValidateText(System.Xml.Schema.XmlValueGetter elementValue) => throw null; public void ValidateWhitespace(string elementValue) => throw null; public void ValidateWhitespace(System.Xml.Schema.XmlValueGetter elementValue) => throw null; - public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler; public object ValidationEventSender { get => throw null; set { } } public System.Xml.XmlResolver XmlResolver { set { } } } @@ -1204,12 +1204,12 @@ namespace System public override string LocalName { get => throw null; } public override string Name { get => throw null; } public System.Xml.XmlNameTable NameTable { get => throw null; } - public event System.Xml.XmlNodeChangedEventHandler NodeChanged { add { } remove { } } - public event System.Xml.XmlNodeChangedEventHandler NodeChanging { add { } remove { } } - public event System.Xml.XmlNodeChangedEventHandler NodeInserted { add { } remove { } } - public event System.Xml.XmlNodeChangedEventHandler NodeInserting { add { } remove { } } - public event System.Xml.XmlNodeChangedEventHandler NodeRemoved { add { } remove { } } - public event System.Xml.XmlNodeChangedEventHandler NodeRemoving { add { } remove { } } + public event System.Xml.XmlNodeChangedEventHandler NodeChanged; + public event System.Xml.XmlNodeChangedEventHandler NodeChanging; + public event System.Xml.XmlNodeChangedEventHandler NodeInserted; + public event System.Xml.XmlNodeChangedEventHandler NodeInserting; + public event System.Xml.XmlNodeChangedEventHandler NodeRemoved; + public event System.Xml.XmlNodeChangedEventHandler NodeRemoving; public override System.Xml.XmlNodeType NodeType { get => throw null; } public override System.Xml.XmlDocument OwnerDocument { get => throw null; } public override System.Xml.XmlNode ParentNode { get => throw null; } @@ -1391,7 +1391,7 @@ namespace System public abstract string Get(char[] array, int offset, int length); public abstract string Get(string array); } - public abstract class XmlNode : System.Collections.IEnumerable, System.ICloneable, System.Xml.XPath.IXPathNavigable + public abstract class XmlNode : System.ICloneable, System.Collections.IEnumerable, System.Xml.XPath.IXPathNavigable { public virtual System.Xml.XmlNode AppendChild(System.Xml.XmlNode newChild) => throw null; public virtual System.Xml.XmlAttributeCollection Attributes { get => throw null; } @@ -1458,7 +1458,7 @@ namespace System public string OldValue { get => throw null; } } public delegate void XmlNodeChangedEventHandler(object sender, System.Xml.XmlNodeChangedEventArgs e); - public abstract class XmlNodeList : System.Collections.IEnumerable, System.IDisposable + public abstract class XmlNodeList : System.IDisposable, System.Collections.IEnumerable { public abstract int Count { get; } protected XmlNodeList() => throw null; @@ -1770,7 +1770,7 @@ namespace System public bool ProhibitDtd { get => throw null; set { } } public void Reset() => throw null; public System.Xml.Schema.XmlSchemaSet Schemas { get => throw null; set { } } - public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler; public System.Xml.Schema.XmlSchemaValidationFlags ValidationFlags { get => throw null; set { } } public System.Xml.ValidationType ValidationType { get => throw null; set { } } public System.Xml.XmlResolver XmlResolver { set { } } @@ -2027,7 +2027,7 @@ namespace System public override void ResolveEntity() => throw null; public System.Xml.Schema.XmlSchemaCollection Schemas { get => throw null; } public object SchemaType { get => throw null; } - public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler { add { } remove { } } + public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler; public System.Xml.ValidationType ValidationType { get => throw null; set { } } public override string Value { get => throw null; } public override string XmlLang { get => throw null; } @@ -2347,7 +2347,7 @@ namespace System public virtual string XmlLang { get => throw null; } public override System.Xml.Schema.XmlSchemaType XmlType { get => throw null; } } - public abstract class XPathNodeIterator : System.Collections.IEnumerable, System.ICloneable + public abstract class XPathNodeIterator : System.ICloneable, System.Collections.IEnumerable { public abstract System.Xml.XPath.XPathNodeIterator Clone(); object System.ICloneable.Clone() => throw null; @@ -2438,7 +2438,7 @@ namespace System public object GetParam(string name, string namespaceUri) => throw null; public object RemoveExtensionObject(string namespaceUri) => throw null; public object RemoveParam(string name, string namespaceUri) => throw null; - public event System.Xml.Xsl.XsltMessageEncounteredEventHandler XsltMessageEncountered { add { } remove { } } + public event System.Xml.Xsl.XsltMessageEncounteredEventHandler XsltMessageEncountered; } public class XsltCompileException : System.Xml.Xsl.XsltException { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs index 7cc254b3a88..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs index 00b7909e21d..aedbb699636 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs @@ -360,8 +360,8 @@ namespace System public System.Collections.Generic.IEnumerable Annotations(System.Type type) => throw null; public System.Collections.Generic.IEnumerable Annotations() where T : class => throw null; public string BaseUri { get => throw null; } - public event System.EventHandler Changed { add { } remove { } } - public event System.EventHandler Changing { add { } remove { } } + public event System.EventHandler Changed; + public event System.EventHandler Changing; public System.Xml.Linq.XDocument Document { get => throw null; } bool System.Xml.IXmlLineInfo.HasLineInfo() => throw null; int System.Xml.IXmlLineInfo.LineNumber { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs index e2ac5e7ec3b..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Xml.XmlDocument, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlSerializer.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlSerializer.cs index 2eac7fb1416..63df5eb2ca0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlSerializer.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlSerializer.cs @@ -333,7 +333,7 @@ namespace System public System.Xml.Serialization.SoapAttributes SoapAttributes { get => throw null; set { } } public System.Xml.Serialization.XmlAttributes XmlAttributes { get => throw null; set { } } } - public class XmlSchemaEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable + public class XmlSchemaEnumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public XmlSchemaEnumerator(System.Xml.Serialization.XmlSchemas list) => throw null; public System.Xml.Schema.XmlSchema Current { get => throw null; } @@ -630,10 +630,10 @@ namespace System public void Serialize(System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces) => throw null; public void Serialize(System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle) => throw null; public void Serialize(System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle, string id) => throw null; - public event System.Xml.Serialization.XmlAttributeEventHandler UnknownAttribute { add { } remove { } } - public event System.Xml.Serialization.XmlElementEventHandler UnknownElement { add { } remove { } } - public event System.Xml.Serialization.XmlNodeEventHandler UnknownNode { add { } remove { } } - public event System.Xml.Serialization.UnreferencedObjectEventHandler UnreferencedObject { add { } remove { } } + public event System.Xml.Serialization.XmlAttributeEventHandler UnknownAttribute; + public event System.Xml.Serialization.XmlElementEventHandler UnknownElement; + public event System.Xml.Serialization.XmlNodeEventHandler UnknownNode; + public event System.Xml.Serialization.UnreferencedObjectEventHandler UnreferencedObject; } public sealed class XmlSerializerAssemblyAttribute : System.Attribute { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs index aa4376c9e5f..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs index 7419fd9e6e3..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs index dc2dda85c85..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs index f1c1603ef01..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089`. diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs index 32c04c7d98e..e69de29bb2d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs @@ -1,2 +0,0 @@ -// This file contains auto-generated code. -// Generated from `netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. From 14998606b7ff993a8ba1473a257c554ee53123e4 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 21 Sep 2023 14:40:42 +0100 Subject: [PATCH 601/788] Add test for the case of a module definition in a file not named module-info.java in a buildless extraction --- .../PrintAst.expected | 3 +++ .../PrintAst.qlref | 1 + .../Test.java | 1 + .../Test2.java | 1 + .../test.actual | 2 ++ .../test.py | 5 +++++ 6 files changed, 13 insertions(+) create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/PrintAst.expected create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/PrintAst.qlref create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/Test.java create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/Test2.java create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.actual create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.py diff --git a/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/PrintAst.expected b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/PrintAst.expected new file mode 100644 index 00000000000..128dbcefb57 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/PrintAst.expected @@ -0,0 +1,3 @@ +Test2.java: +# 0| [CompilationUnit] Test2 +# 1| 1: [Class] Test2 diff --git a/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/PrintAst.qlref b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/PrintAst.qlref new file mode 100644 index 00000000000..c7fd5faf239 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/PrintAst.qlref @@ -0,0 +1 @@ +semmle/code/java/PrintAst.ql \ No newline at end of file diff --git a/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/Test.java b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/Test.java new file mode 100644 index 00000000000..8ff73379a32 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/Test.java @@ -0,0 +1 @@ +module mymodule { } diff --git a/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/Test2.java b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/Test2.java new file mode 100644 index 00000000000..f4a4b74cf9a --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/Test2.java @@ -0,0 +1 @@ +public class Test2 { } diff --git a/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.actual b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.actual new file mode 100644 index 00000000000..221e35f7029 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.actual @@ -0,0 +1,2 @@ +| Test2.java:0:0:0:0 | Test2 | +| Test.java:0:0:0:0 | Test.java | diff --git a/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.py b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.py new file mode 100644 index 00000000000..a229dfff548 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.py @@ -0,0 +1,5 @@ +import sys + +from create_database_utils import * + +run_codeql_database_create([], lang="java", extra_args=["--extractor-option=buildless=true"]) From 4d9d748d514f0aa4fdefcb0b42f7f3da66fc9df0 Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Thu, 21 Sep 2023 10:08:41 -0400 Subject: [PATCH 602/788] fix underlines --- .../codeql-language-guides/analyzing-data-flow-in-java.rst | 2 +- .../codeql-language-guides/basic-query-for-javascript-code.rst | 2 +- docs/codeql/codeql-language-guides/codeql-library-for-java.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst index 2db91cae2dc..028e1317814 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst @@ -1,7 +1,7 @@ .. _analyzing-data-flow-in-java: Analyzing data flow in Java and Kotlin -=========================== +====================================== You can use CodeQL to track the flow of data through a Java/Kotlin program to its use. diff --git a/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst b/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst index c810de4eaf1..4aab0d4c7cf 100644 --- a/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst +++ b/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst @@ -1,7 +1,7 @@ .. _basic-query-for-javascript-code: Basic query for JavaScript and TypeScript code -=============================== +=============================================== Learn to write and run a simple CodeQL query using Visual Studio Code with the CodeQL extension. diff --git a/docs/codeql/codeql-language-guides/codeql-library-for-java.rst b/docs/codeql/codeql-language-guides/codeql-library-for-java.rst index 4359d382591..25485fc7fd1 100644 --- a/docs/codeql/codeql-language-guides/codeql-library-for-java.rst +++ b/docs/codeql/codeql-language-guides/codeql-library-for-java.rst @@ -1,7 +1,7 @@ .. _codeql-library-for-java: CodeQL library for Java and Kotlin -======================= +================================== When you're analyzing a Java/Kotlin program, you can make use of the large collection of classes in the CodeQL library for Java/Kotlin. From 9b2b40004c50579936e82be13c78f6f9883449b7 Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Thu, 21 Sep 2023 10:57:33 -0400 Subject: [PATCH 603/788] remove import changes --- .../codeql-language-guides/basic-query-for-cpp-code.rst | 2 +- .../codeql-language-guides/basic-query-for-java-code.rst | 2 +- .../basic-query-for-javascript-code.rst | 2 +- docs/codeql/reusables/extractors.rst | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/codeql/codeql-language-guides/basic-query-for-cpp-code.rst b/docs/codeql/codeql-language-guides/basic-query-for-cpp-code.rst index 6b5675c8514..47a762b4d3e 100644 --- a/docs/codeql/codeql-language-guides/basic-query-for-cpp-code.rst +++ b/docs/codeql/codeql-language-guides/basic-query-for-cpp-code.rst @@ -52,7 +52,7 @@ After the initial ``import`` statement, this simple query comprises three parts +---------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | Query part | Purpose | Details | +===============================================================+===================================================================================================================+========================================================================================================================+ -| ``import c-cpp`` | Imports the standard CodeQL libraries for C/C++. | Every query begins with one or more ``import`` statements. | +| ``import cpp`` | Imports the standard CodeQL libraries for C/C++. | Every query begins with one or more ``import`` statements. | +---------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | ``from IfStmt ifstmt, BlockStmt block`` | Defines the variables for the query. | We use: | | | Declarations are of the form: | | diff --git a/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst b/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst index 3f3fd36affb..63944d25d43 100644 --- a/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst +++ b/docs/codeql/codeql-language-guides/basic-query-for-java-code.rst @@ -70,7 +70,7 @@ After the initial ``import`` statement, this simple query comprises three parts +--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ | Query part | Purpose | Details | +==================================================================================================+===================================================================================================================+===================================================================================================+ -| ``import java-kotlin`` | Imports the standard CodeQL libraries for Java and Kotlin. | Every query begins with one or more ``import`` statements. | +| ``import java`` | Imports the standard CodeQL libraries for Java and Kotlin. | Every query begins with one or more ``import`` statements. | +--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ | ``from MethodAccess ma`` | Defines the variables for the query. | We use: | | | Declarations are of the form: | | diff --git a/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst b/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst index 4aab0d4c7cf..911d9401f6f 100644 --- a/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst +++ b/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst @@ -50,7 +50,7 @@ After the initial ``import`` statement, this simple query comprises three parts +---------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | Query part | Purpose | Details | +===============================================================+===================================================================================================================+========================================================================================================================+ -| ``import javascript-typescript`` | Imports the standard CodeQL libraries for JavaScript and TypeScript. | Every query begins with one or more ``import`` statements. | +| ``import javascript`` | Imports the standard CodeQL libraries for JavaScript and TypeScript. | Every query begins with one or more ``import`` statements. | +---------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | ``from Expr e`` | Defines the variables for the query. | ``e`` is declared as a variable that ranges over expressions. | | | Declarations are of the form: | | diff --git a/docs/codeql/reusables/extractors.rst b/docs/codeql/reusables/extractors.rst index e1976ab0e6a..bfcd7571cb7 100644 --- a/docs/codeql/reusables/extractors.rst +++ b/docs/codeql/reusables/extractors.rst @@ -5,15 +5,15 @@ * - Language - Identifier * - C/C++ - - ``c-cpp`` + - ``cpp`` * - C# - ``csharp`` * - Go - ``go`` * - Java/Kotlin - - ``java-kotlin`` + - ``java`` * - JavaScript/TypeScript - - ``javascript-typescript`` + - ``javascript`` * - Python - ``python`` * - Ruby From 1899a6048dcb4bbb8e1a2e1b028464346f7ad237 Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Thu, 21 Sep 2023 11:25:52 -0400 Subject: [PATCH 604/788] fix table --- .../codeql-language-guides/basic-query-for-javascript-code.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst b/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst index 911d9401f6f..e318235a5bb 100644 --- a/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst +++ b/docs/codeql/codeql-language-guides/basic-query-for-javascript-code.rst @@ -50,7 +50,7 @@ After the initial ``import`` statement, this simple query comprises three parts +---------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | Query part | Purpose | Details | +===============================================================+===================================================================================================================+========================================================================================================================+ -| ``import javascript`` | Imports the standard CodeQL libraries for JavaScript and TypeScript. | Every query begins with one or more ``import`` statements. | +| ``import javascript`` | Imports the standard CodeQL libraries for JavaScript and TypeScript. | Every query begins with one or more ``import`` statements. | +---------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | ``from Expr e`` | Defines the variables for the query. | ``e`` is declared as a variable that ranges over expressions. | | | Declarations are of the form: | | From 04258f8cfc2c7036f60b87b68df65de3056d28dd Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 21 Sep 2023 16:41:17 +0100 Subject: [PATCH 605/788] Remove actual file --- .../test.actual | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.actual diff --git a/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.actual b/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.actual deleted file mode 100644 index 221e35f7029..00000000000 --- a/java/ql/integration-tests/all-platforms/java/buildless-module-definition-not-in-module-info-file/test.actual +++ /dev/null @@ -1,2 +0,0 @@ -| Test2.java:0:0:0:0 | Test2 | -| Test.java:0:0:0:0 | Test.java | From 27817ea9f0d0ab15ab552882845d863fef7b028f Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Thu, 21 Sep 2023 12:07:07 -0400 Subject: [PATCH 606/788] fix --- docs/codeql/codeql-language-guides/codeql-for-javascript.rst | 4 ++-- .../codeql/codeql-language-guides/codeql-library-for-java.rst | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/codeql/codeql-language-guides/codeql-for-javascript.rst b/docs/codeql/codeql-language-guides/codeql-for-javascript.rst index c7d8b640b21..40ecb76ee0a 100644 --- a/docs/codeql/codeql-language-guides/codeql-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/codeql-for-javascript.rst @@ -1,7 +1,7 @@ .. _codeql-for-javascript: -CodeQL for JavaScript -===================== +CodeQL for JavaScript and TypeScript +==================================== Experiment and learn how to write effective and efficient queries for CodeQL databases generated from JavaScript and TypeScript codebases. diff --git a/docs/codeql/codeql-language-guides/codeql-library-for-java.rst b/docs/codeql/codeql-language-guides/codeql-library-for-java.rst index 25485fc7fd1..1dd1c99b012 100644 --- a/docs/codeql/codeql-language-guides/codeql-library-for-java.rst +++ b/docs/codeql/codeql-language-guides/codeql-library-for-java.rst @@ -6,7 +6,7 @@ CodeQL library for Java and Kotlin When you're analyzing a Java/Kotlin program, you can make use of the large collection of classes in the CodeQL library for Java/Kotlin. About the CodeQL library for Java and Kotlin ---------------------------------- +-------------------------------------------- There is an extensive library for analyzing CodeQL databases extracted from Java/Kotlin projects. The classes in this library present the data from a database in an object-oriented form and provide abstractions and predicates to help you with common analysis tasks. From c7be9b42b34140d00096aad8e4a1526fea3ef360 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 21 Sep 2023 15:55:23 +0100 Subject: [PATCH 607/788] Swift: Test demonstrating an issue with taint through string interpolation. --- .../dataflow/taint/core/LocalTaint.expected | 208 ++++++++++++++++++ .../dataflow/taint/core/Taint.expected | 13 ++ .../taint/core/stringinterpolation.swift | 12 + 3 files changed, 233 insertions(+) diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index b7408d1f57e..53f18277f12 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -323,6 +323,214 @@ | stringinterpolation.swift:32:24:32:24 | $interpolation | stringinterpolation.swift:32:24:32:24 | [post] $interpolation | | stringinterpolation.swift:32:24:32:24 | &... | stringinterpolation.swift:32:12:32:12 | TapExpr | | stringinterpolation.swift:32:24:32:24 | [post] $interpolation | stringinterpolation.swift:32:24:32:24 | &... | +| stringinterpolation.swift:36:6:36:6 | SSA def(a) | stringinterpolation.swift:40:15:40:15 | a | +| stringinterpolation.swift:36:6:36:6 | a | stringinterpolation.swift:36:6:36:6 | SSA def(a) | +| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:36:6:36:6 | a | +| stringinterpolation.swift:37:6:37:6 | SSA def(b) | stringinterpolation.swift:41:24:41:24 | b | +| stringinterpolation.swift:37:6:37:6 | b | stringinterpolation.swift:37:6:37:6 | SSA def(b) | +| stringinterpolation.swift:37:10:37:16 | call to clean() | stringinterpolation.swift:37:6:37:6 | b | +| stringinterpolation.swift:38:6:38:6 | SSA def(c) | stringinterpolation.swift:44:15:44:15 | c | +| stringinterpolation.swift:38:6:38:6 | c | stringinterpolation.swift:38:6:38:6 | SSA def(c) | +| stringinterpolation.swift:38:10:38:16 | call to clean() | stringinterpolation.swift:38:6:38:6 | c | +| stringinterpolation.swift:40:12:40:12 | | stringinterpolation.swift:40:12:40:12 | [post] | +| stringinterpolation.swift:40:12:40:12 | | stringinterpolation.swift:40:13:40:13 | [post] $interpolation | +| stringinterpolation.swift:40:12:40:12 | SSA def($interpolation) | stringinterpolation.swift:40:13:40:13 | $interpolation | +| stringinterpolation.swift:40:12:40:12 | TapExpr | stringinterpolation.swift:40:12:40:12 | "..." | +| stringinterpolation.swift:40:13:40:13 | $interpolation | stringinterpolation.swift:40:12:40:12 | [post] | +| stringinterpolation.swift:40:13:40:13 | $interpolation | stringinterpolation.swift:40:13:40:13 | &... | +| stringinterpolation.swift:40:13:40:13 | $interpolation | stringinterpolation.swift:40:13:40:13 | [post] $interpolation | +| stringinterpolation.swift:40:13:40:13 | &... | stringinterpolation.swift:40:14:40:14 | $interpolation | +| stringinterpolation.swift:40:13:40:13 | [post] $interpolation | stringinterpolation.swift:40:13:40:13 | &... | +| stringinterpolation.swift:40:14:40:14 | $interpolation | stringinterpolation.swift:40:14:40:14 | &... | +| stringinterpolation.swift:40:14:40:14 | $interpolation | stringinterpolation.swift:40:14:40:14 | [post] $interpolation | +| stringinterpolation.swift:40:14:40:14 | $interpolation | stringinterpolation.swift:40:15:40:15 | [post] a | +| stringinterpolation.swift:40:14:40:14 | &... | stringinterpolation.swift:40:17:40:17 | $interpolation | +| stringinterpolation.swift:40:14:40:14 | [post] $interpolation | stringinterpolation.swift:40:14:40:14 | &... | +| stringinterpolation.swift:40:15:40:15 | [post] a | stringinterpolation.swift:40:24:40:24 | a | +| stringinterpolation.swift:40:15:40:15 | a | stringinterpolation.swift:40:14:40:14 | [post] $interpolation | +| stringinterpolation.swift:40:15:40:15 | a | stringinterpolation.swift:40:15:40:15 | [post] a | +| stringinterpolation.swift:40:15:40:15 | a | stringinterpolation.swift:40:24:40:24 | a | +| stringinterpolation.swift:40:17:40:17 | and | stringinterpolation.swift:40:17:40:17 | [post] and | +| stringinterpolation.swift:40:17:40:17 | and | stringinterpolation.swift:40:17:40:17 | [post] $interpolation | +| stringinterpolation.swift:40:17:40:17 | $interpolation | stringinterpolation.swift:40:17:40:17 | &... | +| stringinterpolation.swift:40:17:40:17 | $interpolation | stringinterpolation.swift:40:17:40:17 | [post] and | +| stringinterpolation.swift:40:17:40:17 | $interpolation | stringinterpolation.swift:40:17:40:17 | [post] $interpolation | +| stringinterpolation.swift:40:17:40:17 | &... | stringinterpolation.swift:40:23:40:23 | $interpolation | +| stringinterpolation.swift:40:17:40:17 | [post] $interpolation | stringinterpolation.swift:40:17:40:17 | &... | +| stringinterpolation.swift:40:23:40:23 | $interpolation | stringinterpolation.swift:40:23:40:23 | &... | +| stringinterpolation.swift:40:23:40:23 | $interpolation | stringinterpolation.swift:40:23:40:23 | [post] $interpolation | +| stringinterpolation.swift:40:23:40:23 | $interpolation | stringinterpolation.swift:40:24:40:24 | [post] a | +| stringinterpolation.swift:40:23:40:23 | &... | stringinterpolation.swift:40:26:40:26 | $interpolation | +| stringinterpolation.swift:40:23:40:23 | [post] $interpolation | stringinterpolation.swift:40:23:40:23 | &... | +| stringinterpolation.swift:40:24:40:24 | [post] a | stringinterpolation.swift:41:15:41:15 | a | +| stringinterpolation.swift:40:24:40:24 | a | stringinterpolation.swift:40:23:40:23 | [post] $interpolation | +| stringinterpolation.swift:40:24:40:24 | a | stringinterpolation.swift:40:24:40:24 | [post] a | +| stringinterpolation.swift:40:24:40:24 | a | stringinterpolation.swift:41:15:41:15 | a | +| stringinterpolation.swift:40:26:40:26 | | stringinterpolation.swift:40:26:40:26 | [post] | +| stringinterpolation.swift:40:26:40:26 | | stringinterpolation.swift:40:26:40:26 | [post] $interpolation | +| stringinterpolation.swift:40:26:40:26 | $interpolation | stringinterpolation.swift:40:26:40:26 | &... | +| stringinterpolation.swift:40:26:40:26 | $interpolation | stringinterpolation.swift:40:26:40:26 | [post] | +| stringinterpolation.swift:40:26:40:26 | $interpolation | stringinterpolation.swift:40:26:40:26 | [post] $interpolation | +| stringinterpolation.swift:40:26:40:26 | &... | stringinterpolation.swift:40:12:40:12 | TapExpr | +| stringinterpolation.swift:40:26:40:26 | [post] $interpolation | stringinterpolation.swift:40:26:40:26 | &... | +| stringinterpolation.swift:41:12:41:12 | | stringinterpolation.swift:41:12:41:12 | [post] | +| stringinterpolation.swift:41:12:41:12 | | stringinterpolation.swift:41:13:41:13 | [post] $interpolation | +| stringinterpolation.swift:41:12:41:12 | SSA def($interpolation) | stringinterpolation.swift:41:13:41:13 | $interpolation | +| stringinterpolation.swift:41:12:41:12 | TapExpr | stringinterpolation.swift:41:12:41:12 | "..." | +| stringinterpolation.swift:41:13:41:13 | $interpolation | stringinterpolation.swift:41:12:41:12 | [post] | +| stringinterpolation.swift:41:13:41:13 | $interpolation | stringinterpolation.swift:41:13:41:13 | &... | +| stringinterpolation.swift:41:13:41:13 | $interpolation | stringinterpolation.swift:41:13:41:13 | [post] $interpolation | +| stringinterpolation.swift:41:13:41:13 | &... | stringinterpolation.swift:41:14:41:14 | $interpolation | +| stringinterpolation.swift:41:13:41:13 | [post] $interpolation | stringinterpolation.swift:41:13:41:13 | &... | +| stringinterpolation.swift:41:14:41:14 | $interpolation | stringinterpolation.swift:41:14:41:14 | &... | +| stringinterpolation.swift:41:14:41:14 | $interpolation | stringinterpolation.swift:41:14:41:14 | [post] $interpolation | +| stringinterpolation.swift:41:14:41:14 | $interpolation | stringinterpolation.swift:41:15:41:15 | [post] a | +| stringinterpolation.swift:41:14:41:14 | &... | stringinterpolation.swift:41:17:41:17 | $interpolation | +| stringinterpolation.swift:41:14:41:14 | [post] $interpolation | stringinterpolation.swift:41:14:41:14 | &... | +| stringinterpolation.swift:41:15:41:15 | [post] a | stringinterpolation.swift:42:24:42:24 | a | +| stringinterpolation.swift:41:15:41:15 | a | stringinterpolation.swift:41:14:41:14 | [post] $interpolation | +| stringinterpolation.swift:41:15:41:15 | a | stringinterpolation.swift:41:15:41:15 | [post] a | +| stringinterpolation.swift:41:15:41:15 | a | stringinterpolation.swift:42:24:42:24 | a | +| stringinterpolation.swift:41:17:41:17 | and | stringinterpolation.swift:41:17:41:17 | [post] and | +| stringinterpolation.swift:41:17:41:17 | and | stringinterpolation.swift:41:17:41:17 | [post] $interpolation | +| stringinterpolation.swift:41:17:41:17 | $interpolation | stringinterpolation.swift:41:17:41:17 | &... | +| stringinterpolation.swift:41:17:41:17 | $interpolation | stringinterpolation.swift:41:17:41:17 | [post] and | +| stringinterpolation.swift:41:17:41:17 | $interpolation | stringinterpolation.swift:41:17:41:17 | [post] $interpolation | +| stringinterpolation.swift:41:17:41:17 | &... | stringinterpolation.swift:41:23:41:23 | $interpolation | +| stringinterpolation.swift:41:17:41:17 | [post] $interpolation | stringinterpolation.swift:41:17:41:17 | &... | +| stringinterpolation.swift:41:23:41:23 | $interpolation | stringinterpolation.swift:41:23:41:23 | &... | +| stringinterpolation.swift:41:23:41:23 | $interpolation | stringinterpolation.swift:41:23:41:23 | [post] $interpolation | +| stringinterpolation.swift:41:23:41:23 | $interpolation | stringinterpolation.swift:41:24:41:24 | [post] b | +| stringinterpolation.swift:41:23:41:23 | &... | stringinterpolation.swift:41:26:41:26 | $interpolation | +| stringinterpolation.swift:41:23:41:23 | [post] $interpolation | stringinterpolation.swift:41:23:41:23 | &... | +| stringinterpolation.swift:41:24:41:24 | [post] b | stringinterpolation.swift:42:15:42:15 | b | +| stringinterpolation.swift:41:24:41:24 | b | stringinterpolation.swift:41:23:41:23 | [post] $interpolation | +| stringinterpolation.swift:41:24:41:24 | b | stringinterpolation.swift:41:24:41:24 | [post] b | +| stringinterpolation.swift:41:24:41:24 | b | stringinterpolation.swift:42:15:42:15 | b | +| stringinterpolation.swift:41:26:41:26 | | stringinterpolation.swift:41:26:41:26 | [post] | +| stringinterpolation.swift:41:26:41:26 | | stringinterpolation.swift:41:26:41:26 | [post] $interpolation | +| stringinterpolation.swift:41:26:41:26 | $interpolation | stringinterpolation.swift:41:26:41:26 | &... | +| stringinterpolation.swift:41:26:41:26 | $interpolation | stringinterpolation.swift:41:26:41:26 | [post] | +| stringinterpolation.swift:41:26:41:26 | $interpolation | stringinterpolation.swift:41:26:41:26 | [post] $interpolation | +| stringinterpolation.swift:41:26:41:26 | &... | stringinterpolation.swift:41:12:41:12 | TapExpr | +| stringinterpolation.swift:41:26:41:26 | [post] $interpolation | stringinterpolation.swift:41:26:41:26 | &... | +| stringinterpolation.swift:42:12:42:12 | | stringinterpolation.swift:42:12:42:12 | [post] | +| stringinterpolation.swift:42:12:42:12 | | stringinterpolation.swift:42:13:42:13 | [post] $interpolation | +| stringinterpolation.swift:42:12:42:12 | SSA def($interpolation) | stringinterpolation.swift:42:13:42:13 | $interpolation | +| stringinterpolation.swift:42:12:42:12 | TapExpr | stringinterpolation.swift:42:12:42:12 | "..." | +| stringinterpolation.swift:42:13:42:13 | $interpolation | stringinterpolation.swift:42:12:42:12 | [post] | +| stringinterpolation.swift:42:13:42:13 | $interpolation | stringinterpolation.swift:42:13:42:13 | &... | +| stringinterpolation.swift:42:13:42:13 | $interpolation | stringinterpolation.swift:42:13:42:13 | [post] $interpolation | +| stringinterpolation.swift:42:13:42:13 | &... | stringinterpolation.swift:42:14:42:14 | $interpolation | +| stringinterpolation.swift:42:13:42:13 | [post] $interpolation | stringinterpolation.swift:42:13:42:13 | &... | +| stringinterpolation.swift:42:14:42:14 | $interpolation | stringinterpolation.swift:42:14:42:14 | &... | +| stringinterpolation.swift:42:14:42:14 | $interpolation | stringinterpolation.swift:42:14:42:14 | [post] $interpolation | +| stringinterpolation.swift:42:14:42:14 | $interpolation | stringinterpolation.swift:42:15:42:15 | [post] b | +| stringinterpolation.swift:42:14:42:14 | &... | stringinterpolation.swift:42:17:42:17 | $interpolation | +| stringinterpolation.swift:42:14:42:14 | [post] $interpolation | stringinterpolation.swift:42:14:42:14 | &... | +| stringinterpolation.swift:42:15:42:15 | [post] b | stringinterpolation.swift:43:15:43:15 | b | +| stringinterpolation.swift:42:15:42:15 | b | stringinterpolation.swift:42:14:42:14 | [post] $interpolation | +| stringinterpolation.swift:42:15:42:15 | b | stringinterpolation.swift:42:15:42:15 | [post] b | +| stringinterpolation.swift:42:15:42:15 | b | stringinterpolation.swift:43:15:43:15 | b | +| stringinterpolation.swift:42:17:42:17 | and | stringinterpolation.swift:42:17:42:17 | [post] and | +| stringinterpolation.swift:42:17:42:17 | and | stringinterpolation.swift:42:17:42:17 | [post] $interpolation | +| stringinterpolation.swift:42:17:42:17 | $interpolation | stringinterpolation.swift:42:17:42:17 | &... | +| stringinterpolation.swift:42:17:42:17 | $interpolation | stringinterpolation.swift:42:17:42:17 | [post] and | +| stringinterpolation.swift:42:17:42:17 | $interpolation | stringinterpolation.swift:42:17:42:17 | [post] $interpolation | +| stringinterpolation.swift:42:17:42:17 | &... | stringinterpolation.swift:42:23:42:23 | $interpolation | +| stringinterpolation.swift:42:17:42:17 | [post] $interpolation | stringinterpolation.swift:42:17:42:17 | &... | +| stringinterpolation.swift:42:23:42:23 | $interpolation | stringinterpolation.swift:42:23:42:23 | &... | +| stringinterpolation.swift:42:23:42:23 | $interpolation | stringinterpolation.swift:42:23:42:23 | [post] $interpolation | +| stringinterpolation.swift:42:23:42:23 | $interpolation | stringinterpolation.swift:42:24:42:24 | [post] a | +| stringinterpolation.swift:42:23:42:23 | &... | stringinterpolation.swift:42:26:42:26 | $interpolation | +| stringinterpolation.swift:42:23:42:23 | [post] $interpolation | stringinterpolation.swift:42:23:42:23 | &... | +| stringinterpolation.swift:42:24:42:24 | a | stringinterpolation.swift:42:23:42:23 | [post] $interpolation | +| stringinterpolation.swift:42:24:42:24 | a | stringinterpolation.swift:42:24:42:24 | [post] a | +| stringinterpolation.swift:42:26:42:26 | | stringinterpolation.swift:42:26:42:26 | [post] | +| stringinterpolation.swift:42:26:42:26 | | stringinterpolation.swift:42:26:42:26 | [post] $interpolation | +| stringinterpolation.swift:42:26:42:26 | $interpolation | stringinterpolation.swift:42:26:42:26 | &... | +| stringinterpolation.swift:42:26:42:26 | $interpolation | stringinterpolation.swift:42:26:42:26 | [post] | +| stringinterpolation.swift:42:26:42:26 | $interpolation | stringinterpolation.swift:42:26:42:26 | [post] $interpolation | +| stringinterpolation.swift:42:26:42:26 | &... | stringinterpolation.swift:42:12:42:12 | TapExpr | +| stringinterpolation.swift:42:26:42:26 | [post] $interpolation | stringinterpolation.swift:42:26:42:26 | &... | +| stringinterpolation.swift:43:12:43:12 | | stringinterpolation.swift:43:12:43:12 | [post] | +| stringinterpolation.swift:43:12:43:12 | | stringinterpolation.swift:43:13:43:13 | [post] $interpolation | +| stringinterpolation.swift:43:12:43:12 | SSA def($interpolation) | stringinterpolation.swift:43:13:43:13 | $interpolation | +| stringinterpolation.swift:43:12:43:12 | TapExpr | stringinterpolation.swift:43:12:43:12 | "..." | +| stringinterpolation.swift:43:13:43:13 | $interpolation | stringinterpolation.swift:43:12:43:12 | [post] | +| stringinterpolation.swift:43:13:43:13 | $interpolation | stringinterpolation.swift:43:13:43:13 | &... | +| stringinterpolation.swift:43:13:43:13 | $interpolation | stringinterpolation.swift:43:13:43:13 | [post] $interpolation | +| stringinterpolation.swift:43:13:43:13 | &... | stringinterpolation.swift:43:14:43:14 | $interpolation | +| stringinterpolation.swift:43:13:43:13 | [post] $interpolation | stringinterpolation.swift:43:13:43:13 | &... | +| stringinterpolation.swift:43:14:43:14 | $interpolation | stringinterpolation.swift:43:14:43:14 | &... | +| stringinterpolation.swift:43:14:43:14 | $interpolation | stringinterpolation.swift:43:14:43:14 | [post] $interpolation | +| stringinterpolation.swift:43:14:43:14 | $interpolation | stringinterpolation.swift:43:15:43:15 | [post] b | +| stringinterpolation.swift:43:14:43:14 | &... | stringinterpolation.swift:43:17:43:17 | $interpolation | +| stringinterpolation.swift:43:14:43:14 | [post] $interpolation | stringinterpolation.swift:43:14:43:14 | &... | +| stringinterpolation.swift:43:15:43:15 | [post] b | stringinterpolation.swift:43:24:43:24 | b | +| stringinterpolation.swift:43:15:43:15 | b | stringinterpolation.swift:43:14:43:14 | [post] $interpolation | +| stringinterpolation.swift:43:15:43:15 | b | stringinterpolation.swift:43:15:43:15 | [post] b | +| stringinterpolation.swift:43:15:43:15 | b | stringinterpolation.swift:43:24:43:24 | b | +| stringinterpolation.swift:43:17:43:17 | and | stringinterpolation.swift:43:17:43:17 | [post] and | +| stringinterpolation.swift:43:17:43:17 | and | stringinterpolation.swift:43:17:43:17 | [post] $interpolation | +| stringinterpolation.swift:43:17:43:17 | $interpolation | stringinterpolation.swift:43:17:43:17 | &... | +| stringinterpolation.swift:43:17:43:17 | $interpolation | stringinterpolation.swift:43:17:43:17 | [post] and | +| stringinterpolation.swift:43:17:43:17 | $interpolation | stringinterpolation.swift:43:17:43:17 | [post] $interpolation | +| stringinterpolation.swift:43:17:43:17 | &... | stringinterpolation.swift:43:23:43:23 | $interpolation | +| stringinterpolation.swift:43:17:43:17 | [post] $interpolation | stringinterpolation.swift:43:17:43:17 | &... | +| stringinterpolation.swift:43:23:43:23 | $interpolation | stringinterpolation.swift:43:23:43:23 | &... | +| stringinterpolation.swift:43:23:43:23 | $interpolation | stringinterpolation.swift:43:23:43:23 | [post] $interpolation | +| stringinterpolation.swift:43:23:43:23 | $interpolation | stringinterpolation.swift:43:24:43:24 | [post] b | +| stringinterpolation.swift:43:23:43:23 | &... | stringinterpolation.swift:43:26:43:26 | $interpolation | +| stringinterpolation.swift:43:23:43:23 | [post] $interpolation | stringinterpolation.swift:43:23:43:23 | &... | +| stringinterpolation.swift:43:24:43:24 | b | stringinterpolation.swift:43:23:43:23 | [post] $interpolation | +| stringinterpolation.swift:43:24:43:24 | b | stringinterpolation.swift:43:24:43:24 | [post] b | +| stringinterpolation.swift:43:26:43:26 | | stringinterpolation.swift:43:26:43:26 | [post] | +| stringinterpolation.swift:43:26:43:26 | | stringinterpolation.swift:43:26:43:26 | [post] $interpolation | +| stringinterpolation.swift:43:26:43:26 | $interpolation | stringinterpolation.swift:43:26:43:26 | &... | +| stringinterpolation.swift:43:26:43:26 | $interpolation | stringinterpolation.swift:43:26:43:26 | [post] | +| stringinterpolation.swift:43:26:43:26 | $interpolation | stringinterpolation.swift:43:26:43:26 | [post] $interpolation | +| stringinterpolation.swift:43:26:43:26 | &... | stringinterpolation.swift:43:12:43:12 | TapExpr | +| stringinterpolation.swift:43:26:43:26 | [post] $interpolation | stringinterpolation.swift:43:26:43:26 | &... | +| stringinterpolation.swift:44:12:44:12 | | stringinterpolation.swift:44:12:44:12 | [post] | +| stringinterpolation.swift:44:12:44:12 | | stringinterpolation.swift:44:13:44:13 | [post] $interpolation | +| stringinterpolation.swift:44:12:44:12 | SSA def($interpolation) | stringinterpolation.swift:44:13:44:13 | $interpolation | +| stringinterpolation.swift:44:12:44:12 | TapExpr | stringinterpolation.swift:44:12:44:12 | "..." | +| stringinterpolation.swift:44:13:44:13 | $interpolation | stringinterpolation.swift:44:12:44:12 | [post] | +| stringinterpolation.swift:44:13:44:13 | $interpolation | stringinterpolation.swift:44:13:44:13 | &... | +| stringinterpolation.swift:44:13:44:13 | $interpolation | stringinterpolation.swift:44:13:44:13 | [post] $interpolation | +| stringinterpolation.swift:44:13:44:13 | &... | stringinterpolation.swift:44:14:44:14 | $interpolation | +| stringinterpolation.swift:44:13:44:13 | [post] $interpolation | stringinterpolation.swift:44:13:44:13 | &... | +| stringinterpolation.swift:44:14:44:14 | $interpolation | stringinterpolation.swift:44:14:44:14 | &... | +| stringinterpolation.swift:44:14:44:14 | $interpolation | stringinterpolation.swift:44:14:44:14 | [post] $interpolation | +| stringinterpolation.swift:44:14:44:14 | $interpolation | stringinterpolation.swift:44:15:44:15 | [post] c | +| stringinterpolation.swift:44:14:44:14 | &... | stringinterpolation.swift:44:17:44:17 | $interpolation | +| stringinterpolation.swift:44:14:44:14 | [post] $interpolation | stringinterpolation.swift:44:14:44:14 | &... | +| stringinterpolation.swift:44:15:44:15 | [post] c | stringinterpolation.swift:44:24:44:24 | c | +| stringinterpolation.swift:44:15:44:15 | c | stringinterpolation.swift:44:14:44:14 | [post] $interpolation | +| stringinterpolation.swift:44:15:44:15 | c | stringinterpolation.swift:44:15:44:15 | [post] c | +| stringinterpolation.swift:44:15:44:15 | c | stringinterpolation.swift:44:24:44:24 | c | +| stringinterpolation.swift:44:17:44:17 | and | stringinterpolation.swift:44:17:44:17 | [post] and | +| stringinterpolation.swift:44:17:44:17 | and | stringinterpolation.swift:44:17:44:17 | [post] $interpolation | +| stringinterpolation.swift:44:17:44:17 | $interpolation | stringinterpolation.swift:44:17:44:17 | &... | +| stringinterpolation.swift:44:17:44:17 | $interpolation | stringinterpolation.swift:44:17:44:17 | [post] and | +| stringinterpolation.swift:44:17:44:17 | $interpolation | stringinterpolation.swift:44:17:44:17 | [post] $interpolation | +| stringinterpolation.swift:44:17:44:17 | &... | stringinterpolation.swift:44:23:44:23 | $interpolation | +| stringinterpolation.swift:44:17:44:17 | [post] $interpolation | stringinterpolation.swift:44:17:44:17 | &... | +| stringinterpolation.swift:44:23:44:23 | $interpolation | stringinterpolation.swift:44:23:44:23 | &... | +| stringinterpolation.swift:44:23:44:23 | $interpolation | stringinterpolation.swift:44:23:44:23 | [post] $interpolation | +| stringinterpolation.swift:44:23:44:23 | $interpolation | stringinterpolation.swift:44:24:44:24 | [post] c | +| stringinterpolation.swift:44:23:44:23 | &... | stringinterpolation.swift:44:26:44:26 | $interpolation | +| stringinterpolation.swift:44:23:44:23 | [post] $interpolation | stringinterpolation.swift:44:23:44:23 | &... | +| stringinterpolation.swift:44:24:44:24 | c | stringinterpolation.swift:44:23:44:23 | [post] $interpolation | +| stringinterpolation.swift:44:24:44:24 | c | stringinterpolation.swift:44:24:44:24 | [post] c | +| stringinterpolation.swift:44:26:44:26 | | stringinterpolation.swift:44:26:44:26 | [post] | +| stringinterpolation.swift:44:26:44:26 | | stringinterpolation.swift:44:26:44:26 | [post] $interpolation | +| stringinterpolation.swift:44:26:44:26 | $interpolation | stringinterpolation.swift:44:26:44:26 | &... | +| stringinterpolation.swift:44:26:44:26 | $interpolation | stringinterpolation.swift:44:26:44:26 | [post] | +| stringinterpolation.swift:44:26:44:26 | $interpolation | stringinterpolation.swift:44:26:44:26 | [post] $interpolation | +| stringinterpolation.swift:44:26:44:26 | &... | stringinterpolation.swift:44:12:44:12 | TapExpr | +| stringinterpolation.swift:44:26:44:26 | [post] $interpolation | stringinterpolation.swift:44:26:44:26 | &... | | subscript.swift:1:7:1:7 | SSA def(self) | subscript.swift:1:7:1:7 | self[return] | | subscript.swift:1:7:1:7 | SSA def(self) | subscript.swift:1:7:1:7 | self[return] | | subscript.swift:1:7:1:7 | self | subscript.swift:1:7:1:7 | SSA def(self) | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 3438ed3afeb..d1e406465b2 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -68,6 +68,10 @@ edges | stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:7:6:7:6 | self [second] | | stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:31:21:31:24 | .second | | stringinterpolation.swift:31:21:31:24 | .second | stringinterpolation.swift:31:12:31:12 | "..." | +| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:40:12:40:12 | "..." | +| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:41:12:41:12 | "..." | +| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:42:12:42:12 | "..." | +| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:43:12:43:12 | "..." | | subscript.swift:13:15:13:22 | call to source() | subscript.swift:13:15:13:25 | ...[...] | | subscript.swift:14:15:14:23 | call to source2() | subscript.swift:14:15:14:26 | ...[...] | | try.swift:9:17:9:24 | call to source() | try.swift:9:13:9:24 | try ... | @@ -179,6 +183,11 @@ nodes | stringinterpolation.swift:31:12:31:12 | "..." | semmle.label | "..." | | stringinterpolation.swift:31:21:31:21 | p2 [second] | semmle.label | p2 [second] | | stringinterpolation.swift:31:21:31:24 | .second | semmle.label | .second | +| stringinterpolation.swift:36:10:36:17 | call to source() | semmle.label | call to source() | +| stringinterpolation.swift:40:12:40:12 | "..." | semmle.label | "..." | +| stringinterpolation.swift:41:12:41:12 | "..." | semmle.label | "..." | +| stringinterpolation.swift:42:12:42:12 | "..." | semmle.label | "..." | +| stringinterpolation.swift:43:12:43:12 | "..." | semmle.label | "..." | | subscript.swift:13:15:13:22 | call to source() | semmle.label | call to source() | | subscript.swift:13:15:13:25 | ...[...] | semmle.label | ...[...] | | subscript.swift:14:15:14:23 | call to source2() | semmle.label | call to source2() | @@ -241,6 +250,10 @@ subpaths | stringinterpolation.swift:22:12:22:12 | "..." | stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:22:12:22:12 | "..." | result | | stringinterpolation.swift:24:12:24:12 | "..." | stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:24:12:24:12 | "..." | result | | stringinterpolation.swift:31:12:31:12 | "..." | stringinterpolation.swift:28:14:28:21 | call to source() | stringinterpolation.swift:31:12:31:12 | "..." | result | +| stringinterpolation.swift:40:12:40:12 | "..." | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:40:12:40:12 | "..." | result | +| stringinterpolation.swift:41:12:41:12 | "..." | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:41:12:41:12 | "..." | result | +| stringinterpolation.swift:42:12:42:12 | "..." | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:42:12:42:12 | "..." | result | +| stringinterpolation.swift:43:12:43:12 | "..." | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:43:12:43:12 | "..." | result | | subscript.swift:13:15:13:25 | ...[...] | subscript.swift:13:15:13:22 | call to source() | subscript.swift:13:15:13:25 | ...[...] | result | | subscript.swift:14:15:14:26 | ...[...] | subscript.swift:14:15:14:23 | call to source2() | subscript.swift:14:15:14:26 | ...[...] | result | | try.swift:9:13:9:24 | try ... | try.swift:9:17:9:24 | call to source() | try.swift:9:13:9:24 | try ... | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/stringinterpolation.swift b/swift/ql/test/library-tests/dataflow/taint/core/stringinterpolation.swift index 29d32e5c39f..830e6104506 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/stringinterpolation.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/stringinterpolation.swift @@ -31,3 +31,15 @@ func taintThroughCustomStringInterpolation() { sink(arg: "pair: \(p2.second)") // $ tainted=28 sink(arg: "pair: \(p2)") } + +func moreTestsStringInterpolation() { + let a = source() + let b = clean() + let c = clean() + + sink(arg: "\(a) and \(a)") // $ tainted=36 + sink(arg: "\(a) and \(b)") // $ tainted=36 + sink(arg: "\(b) and \(a)") // $ tainted=36 + sink(arg: "\(b) and \(b)") // $ SPURIOUS: tainted=36 + sink(arg: "\(c) and \(c)") +} From f2689dd515a71e4eee8e49fce4b2e7fc7cfababb Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 21 Sep 2023 16:26:56 +0100 Subject: [PATCH 608/788] Swift: Fix for string interpolation taint flow. --- .../internal/TaintTrackingPrivate.qll | 2 +- .../dataflow/taint/core/LocalTaint.expected | 84 ------------------- .../dataflow/taint/core/Taint.expected | 3 - .../dataflow/taint/core/TaintInline.expected | 2 +- .../taint/core/stringinterpolation.swift | 2 +- 5 files changed, 3 insertions(+), 90 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll index 68cdbe0cb46..9873e3c4b0c 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll @@ -33,7 +33,7 @@ private module Cached { exists(ApplyExpr apply, ExprCfgNode e | nodeFrom.asExpr() = [apply.getAnArgument().getExpr(), apply.getQualifier()] and apply.getStaticTarget().getName() = ["appendLiteral(_:)", "appendInterpolation(_:)"] and - e.getExpr() = [apply.getAnArgument().getExpr(), apply.getQualifier()] and + e.getExpr() = apply.getQualifier() and nodeTo.(PostUpdateNodeImpl).getPreUpdateNode().getCfgNode() = e ) or diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index 53f18277f12..bb100708f0d 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -147,14 +147,10 @@ | stringinterpolation.swift:13:3:13:3 | [post] self | stringinterpolation.swift:13:3:13:3 | &... | | stringinterpolation.swift:13:3:13:3 | self | stringinterpolation.swift:13:3:13:3 | &... | | stringinterpolation.swift:13:3:13:3 | self | stringinterpolation.swift:13:3:13:3 | [post] self | -| stringinterpolation.swift:13:3:13:3 | self | stringinterpolation.swift:13:23:13:23 | [post] "..." | | stringinterpolation.swift:13:23:13:23 | "..." | stringinterpolation.swift:13:3:13:3 | [post] self | -| stringinterpolation.swift:13:23:13:23 | "..." | stringinterpolation.swift:13:23:13:23 | [post] "..." | | stringinterpolation.swift:13:23:13:23 | SSA def($interpolation) | stringinterpolation.swift:13:24:13:24 | $interpolation | | stringinterpolation.swift:13:23:13:23 | TapExpr | stringinterpolation.swift:13:23:13:23 | "..." | -| stringinterpolation.swift:13:23:13:23 | first is: | stringinterpolation.swift:13:23:13:23 | [post] first is: | | stringinterpolation.swift:13:23:13:23 | first is: | stringinterpolation.swift:13:24:13:24 | [post] $interpolation | -| stringinterpolation.swift:13:24:13:24 | $interpolation | stringinterpolation.swift:13:23:13:23 | [post] first is: | | stringinterpolation.swift:13:24:13:24 | $interpolation | stringinterpolation.swift:13:24:13:24 | &... | | stringinterpolation.swift:13:24:13:24 | $interpolation | stringinterpolation.swift:13:24:13:24 | [post] $interpolation | | stringinterpolation.swift:13:24:13:24 | &... | stringinterpolation.swift:13:35:13:35 | $interpolation | @@ -164,10 +160,8 @@ | stringinterpolation.swift:13:35:13:35 | &... | stringinterpolation.swift:13:47:13:47 | $interpolation | | stringinterpolation.swift:13:35:13:35 | [post] $interpolation | stringinterpolation.swift:13:35:13:35 | &... | | stringinterpolation.swift:13:36:13:41 | .first | stringinterpolation.swift:13:35:13:35 | [post] $interpolation | -| stringinterpolation.swift:13:47:13:47 | | stringinterpolation.swift:13:47:13:47 | [post] | | stringinterpolation.swift:13:47:13:47 | | stringinterpolation.swift:13:47:13:47 | [post] $interpolation | | stringinterpolation.swift:13:47:13:47 | $interpolation | stringinterpolation.swift:13:47:13:47 | &... | -| stringinterpolation.swift:13:47:13:47 | $interpolation | stringinterpolation.swift:13:47:13:47 | [post] | | stringinterpolation.swift:13:47:13:47 | $interpolation | stringinterpolation.swift:13:47:13:47 | [post] $interpolation | | stringinterpolation.swift:13:47:13:47 | &... | stringinterpolation.swift:13:23:13:23 | TapExpr | | stringinterpolation.swift:13:47:13:47 | [post] $interpolation | stringinterpolation.swift:13:47:13:47 | &... | @@ -180,9 +174,7 @@ | stringinterpolation.swift:20:2:20:2 | p1 | stringinterpolation.swift:22:21:22:21 | p1 | | stringinterpolation.swift:22:12:22:12 | SSA def($interpolation) | stringinterpolation.swift:22:13:22:13 | $interpolation | | stringinterpolation.swift:22:12:22:12 | TapExpr | stringinterpolation.swift:22:12:22:12 | "..." | -| stringinterpolation.swift:22:12:22:12 | pair: | stringinterpolation.swift:22:12:22:12 | [post] pair: | | stringinterpolation.swift:22:12:22:12 | pair: | stringinterpolation.swift:22:13:22:13 | [post] $interpolation | -| stringinterpolation.swift:22:13:22:13 | $interpolation | stringinterpolation.swift:22:12:22:12 | [post] pair: | | stringinterpolation.swift:22:13:22:13 | $interpolation | stringinterpolation.swift:22:13:22:13 | &... | | stringinterpolation.swift:22:13:22:13 | $interpolation | stringinterpolation.swift:22:13:22:13 | [post] $interpolation | | stringinterpolation.swift:22:13:22:13 | &... | stringinterpolation.swift:22:20:22:20 | $interpolation | @@ -194,18 +186,14 @@ | stringinterpolation.swift:22:21:22:21 | [post] p1 | stringinterpolation.swift:23:21:23:21 | p1 | | stringinterpolation.swift:22:21:22:21 | p1 | stringinterpolation.swift:23:21:23:21 | p1 | | stringinterpolation.swift:22:21:22:24 | .first | stringinterpolation.swift:22:20:22:20 | [post] $interpolation | -| stringinterpolation.swift:22:30:22:30 | | stringinterpolation.swift:22:30:22:30 | [post] | | stringinterpolation.swift:22:30:22:30 | | stringinterpolation.swift:22:30:22:30 | [post] $interpolation | | stringinterpolation.swift:22:30:22:30 | $interpolation | stringinterpolation.swift:22:30:22:30 | &... | -| stringinterpolation.swift:22:30:22:30 | $interpolation | stringinterpolation.swift:22:30:22:30 | [post] | | stringinterpolation.swift:22:30:22:30 | $interpolation | stringinterpolation.swift:22:30:22:30 | [post] $interpolation | | stringinterpolation.swift:22:30:22:30 | &... | stringinterpolation.swift:22:12:22:12 | TapExpr | | stringinterpolation.swift:22:30:22:30 | [post] $interpolation | stringinterpolation.swift:22:30:22:30 | &... | | stringinterpolation.swift:23:12:23:12 | SSA def($interpolation) | stringinterpolation.swift:23:13:23:13 | $interpolation | | stringinterpolation.swift:23:12:23:12 | TapExpr | stringinterpolation.swift:23:12:23:12 | "..." | -| stringinterpolation.swift:23:12:23:12 | pair: | stringinterpolation.swift:23:12:23:12 | [post] pair: | | stringinterpolation.swift:23:12:23:12 | pair: | stringinterpolation.swift:23:13:23:13 | [post] $interpolation | -| stringinterpolation.swift:23:13:23:13 | $interpolation | stringinterpolation.swift:23:12:23:12 | [post] pair: | | stringinterpolation.swift:23:13:23:13 | $interpolation | stringinterpolation.swift:23:13:23:13 | &... | | stringinterpolation.swift:23:13:23:13 | $interpolation | stringinterpolation.swift:23:13:23:13 | [post] $interpolation | | stringinterpolation.swift:23:13:23:13 | &... | stringinterpolation.swift:23:20:23:20 | $interpolation | @@ -217,33 +205,25 @@ | stringinterpolation.swift:23:21:23:21 | [post] p1 | stringinterpolation.swift:24:21:24:21 | p1 | | stringinterpolation.swift:23:21:23:21 | p1 | stringinterpolation.swift:24:21:24:21 | p1 | | stringinterpolation.swift:23:21:23:24 | .second | stringinterpolation.swift:23:20:23:20 | [post] $interpolation | -| stringinterpolation.swift:23:31:23:31 | | stringinterpolation.swift:23:31:23:31 | [post] | | stringinterpolation.swift:23:31:23:31 | | stringinterpolation.swift:23:31:23:31 | [post] $interpolation | | stringinterpolation.swift:23:31:23:31 | $interpolation | stringinterpolation.swift:23:31:23:31 | &... | -| stringinterpolation.swift:23:31:23:31 | $interpolation | stringinterpolation.swift:23:31:23:31 | [post] | | stringinterpolation.swift:23:31:23:31 | $interpolation | stringinterpolation.swift:23:31:23:31 | [post] $interpolation | | stringinterpolation.swift:23:31:23:31 | &... | stringinterpolation.swift:23:12:23:12 | TapExpr | | stringinterpolation.swift:23:31:23:31 | [post] $interpolation | stringinterpolation.swift:23:31:23:31 | &... | | stringinterpolation.swift:24:12:24:12 | SSA def($interpolation) | stringinterpolation.swift:24:13:24:13 | $interpolation | | stringinterpolation.swift:24:12:24:12 | TapExpr | stringinterpolation.swift:24:12:24:12 | "..." | -| stringinterpolation.swift:24:12:24:12 | pair: | stringinterpolation.swift:24:12:24:12 | [post] pair: | | stringinterpolation.swift:24:12:24:12 | pair: | stringinterpolation.swift:24:13:24:13 | [post] $interpolation | -| stringinterpolation.swift:24:13:24:13 | $interpolation | stringinterpolation.swift:24:12:24:12 | [post] pair: | | stringinterpolation.swift:24:13:24:13 | $interpolation | stringinterpolation.swift:24:13:24:13 | &... | | stringinterpolation.swift:24:13:24:13 | $interpolation | stringinterpolation.swift:24:13:24:13 | [post] $interpolation | | stringinterpolation.swift:24:13:24:13 | &... | stringinterpolation.swift:24:20:24:20 | $interpolation | | stringinterpolation.swift:24:13:24:13 | [post] $interpolation | stringinterpolation.swift:24:13:24:13 | &... | | stringinterpolation.swift:24:20:24:20 | $interpolation | stringinterpolation.swift:24:20:24:20 | &... | | stringinterpolation.swift:24:20:24:20 | $interpolation | stringinterpolation.swift:24:20:24:20 | [post] $interpolation | -| stringinterpolation.swift:24:20:24:20 | $interpolation | stringinterpolation.swift:24:21:24:21 | [post] p1 | | stringinterpolation.swift:24:20:24:20 | &... | stringinterpolation.swift:24:24:24:24 | $interpolation | | stringinterpolation.swift:24:20:24:20 | [post] $interpolation | stringinterpolation.swift:24:20:24:20 | &... | | stringinterpolation.swift:24:21:24:21 | p1 | stringinterpolation.swift:24:20:24:20 | [post] $interpolation | -| stringinterpolation.swift:24:21:24:21 | p1 | stringinterpolation.swift:24:21:24:21 | [post] p1 | -| stringinterpolation.swift:24:24:24:24 | | stringinterpolation.swift:24:24:24:24 | [post] | | stringinterpolation.swift:24:24:24:24 | | stringinterpolation.swift:24:24:24:24 | [post] $interpolation | | stringinterpolation.swift:24:24:24:24 | $interpolation | stringinterpolation.swift:24:24:24:24 | &... | -| stringinterpolation.swift:24:24:24:24 | $interpolation | stringinterpolation.swift:24:24:24:24 | [post] | | stringinterpolation.swift:24:24:24:24 | $interpolation | stringinterpolation.swift:24:24:24:24 | [post] $interpolation | | stringinterpolation.swift:24:24:24:24 | &... | stringinterpolation.swift:24:12:24:12 | TapExpr | | stringinterpolation.swift:24:24:24:24 | [post] $interpolation | stringinterpolation.swift:24:24:24:24 | &... | @@ -256,9 +236,7 @@ | stringinterpolation.swift:28:2:28:2 | p2 | stringinterpolation.swift:30:21:30:21 | p2 | | stringinterpolation.swift:30:12:30:12 | SSA def($interpolation) | stringinterpolation.swift:30:13:30:13 | $interpolation | | stringinterpolation.swift:30:12:30:12 | TapExpr | stringinterpolation.swift:30:12:30:12 | "..." | -| stringinterpolation.swift:30:12:30:12 | pair: | stringinterpolation.swift:30:12:30:12 | [post] pair: | | stringinterpolation.swift:30:12:30:12 | pair: | stringinterpolation.swift:30:13:30:13 | [post] $interpolation | -| stringinterpolation.swift:30:13:30:13 | $interpolation | stringinterpolation.swift:30:12:30:12 | [post] pair: | | stringinterpolation.swift:30:13:30:13 | $interpolation | stringinterpolation.swift:30:13:30:13 | &... | | stringinterpolation.swift:30:13:30:13 | $interpolation | stringinterpolation.swift:30:13:30:13 | [post] $interpolation | | stringinterpolation.swift:30:13:30:13 | &... | stringinterpolation.swift:30:20:30:20 | $interpolation | @@ -270,18 +248,14 @@ | stringinterpolation.swift:30:21:30:21 | [post] p2 | stringinterpolation.swift:31:21:31:21 | p2 | | stringinterpolation.swift:30:21:30:21 | p2 | stringinterpolation.swift:31:21:31:21 | p2 | | stringinterpolation.swift:30:21:30:24 | .first | stringinterpolation.swift:30:20:30:20 | [post] $interpolation | -| stringinterpolation.swift:30:30:30:30 | | stringinterpolation.swift:30:30:30:30 | [post] | | stringinterpolation.swift:30:30:30:30 | | stringinterpolation.swift:30:30:30:30 | [post] $interpolation | | stringinterpolation.swift:30:30:30:30 | $interpolation | stringinterpolation.swift:30:30:30:30 | &... | -| stringinterpolation.swift:30:30:30:30 | $interpolation | stringinterpolation.swift:30:30:30:30 | [post] | | stringinterpolation.swift:30:30:30:30 | $interpolation | stringinterpolation.swift:30:30:30:30 | [post] $interpolation | | stringinterpolation.swift:30:30:30:30 | &... | stringinterpolation.swift:30:12:30:12 | TapExpr | | stringinterpolation.swift:30:30:30:30 | [post] $interpolation | stringinterpolation.swift:30:30:30:30 | &... | | stringinterpolation.swift:31:12:31:12 | SSA def($interpolation) | stringinterpolation.swift:31:13:31:13 | $interpolation | | stringinterpolation.swift:31:12:31:12 | TapExpr | stringinterpolation.swift:31:12:31:12 | "..." | -| stringinterpolation.swift:31:12:31:12 | pair: | stringinterpolation.swift:31:12:31:12 | [post] pair: | | stringinterpolation.swift:31:12:31:12 | pair: | stringinterpolation.swift:31:13:31:13 | [post] $interpolation | -| stringinterpolation.swift:31:13:31:13 | $interpolation | stringinterpolation.swift:31:12:31:12 | [post] pair: | | stringinterpolation.swift:31:13:31:13 | $interpolation | stringinterpolation.swift:31:13:31:13 | &... | | stringinterpolation.swift:31:13:31:13 | $interpolation | stringinterpolation.swift:31:13:31:13 | [post] $interpolation | | stringinterpolation.swift:31:13:31:13 | &... | stringinterpolation.swift:31:20:31:20 | $interpolation | @@ -293,33 +267,25 @@ | stringinterpolation.swift:31:21:31:21 | [post] p2 | stringinterpolation.swift:32:21:32:21 | p2 | | stringinterpolation.swift:31:21:31:21 | p2 | stringinterpolation.swift:32:21:32:21 | p2 | | stringinterpolation.swift:31:21:31:24 | .second | stringinterpolation.swift:31:20:31:20 | [post] $interpolation | -| stringinterpolation.swift:31:31:31:31 | | stringinterpolation.swift:31:31:31:31 | [post] | | stringinterpolation.swift:31:31:31:31 | | stringinterpolation.swift:31:31:31:31 | [post] $interpolation | | stringinterpolation.swift:31:31:31:31 | $interpolation | stringinterpolation.swift:31:31:31:31 | &... | -| stringinterpolation.swift:31:31:31:31 | $interpolation | stringinterpolation.swift:31:31:31:31 | [post] | | stringinterpolation.swift:31:31:31:31 | $interpolation | stringinterpolation.swift:31:31:31:31 | [post] $interpolation | | stringinterpolation.swift:31:31:31:31 | &... | stringinterpolation.swift:31:12:31:12 | TapExpr | | stringinterpolation.swift:31:31:31:31 | [post] $interpolation | stringinterpolation.swift:31:31:31:31 | &... | | stringinterpolation.swift:32:12:32:12 | SSA def($interpolation) | stringinterpolation.swift:32:13:32:13 | $interpolation | | stringinterpolation.swift:32:12:32:12 | TapExpr | stringinterpolation.swift:32:12:32:12 | "..." | -| stringinterpolation.swift:32:12:32:12 | pair: | stringinterpolation.swift:32:12:32:12 | [post] pair: | | stringinterpolation.swift:32:12:32:12 | pair: | stringinterpolation.swift:32:13:32:13 | [post] $interpolation | -| stringinterpolation.swift:32:13:32:13 | $interpolation | stringinterpolation.swift:32:12:32:12 | [post] pair: | | stringinterpolation.swift:32:13:32:13 | $interpolation | stringinterpolation.swift:32:13:32:13 | &... | | stringinterpolation.swift:32:13:32:13 | $interpolation | stringinterpolation.swift:32:13:32:13 | [post] $interpolation | | stringinterpolation.swift:32:13:32:13 | &... | stringinterpolation.swift:32:20:32:20 | $interpolation | | stringinterpolation.swift:32:13:32:13 | [post] $interpolation | stringinterpolation.swift:32:13:32:13 | &... | | stringinterpolation.swift:32:20:32:20 | $interpolation | stringinterpolation.swift:32:20:32:20 | &... | | stringinterpolation.swift:32:20:32:20 | $interpolation | stringinterpolation.swift:32:20:32:20 | [post] $interpolation | -| stringinterpolation.swift:32:20:32:20 | $interpolation | stringinterpolation.swift:32:21:32:21 | [post] p2 | | stringinterpolation.swift:32:20:32:20 | &... | stringinterpolation.swift:32:24:32:24 | $interpolation | | stringinterpolation.swift:32:20:32:20 | [post] $interpolation | stringinterpolation.swift:32:20:32:20 | &... | | stringinterpolation.swift:32:21:32:21 | p2 | stringinterpolation.swift:32:20:32:20 | [post] $interpolation | -| stringinterpolation.swift:32:21:32:21 | p2 | stringinterpolation.swift:32:21:32:21 | [post] p2 | -| stringinterpolation.swift:32:24:32:24 | | stringinterpolation.swift:32:24:32:24 | [post] | | stringinterpolation.swift:32:24:32:24 | | stringinterpolation.swift:32:24:32:24 | [post] $interpolation | | stringinterpolation.swift:32:24:32:24 | $interpolation | stringinterpolation.swift:32:24:32:24 | &... | -| stringinterpolation.swift:32:24:32:24 | $interpolation | stringinterpolation.swift:32:24:32:24 | [post] | | stringinterpolation.swift:32:24:32:24 | $interpolation | stringinterpolation.swift:32:24:32:24 | [post] $interpolation | | stringinterpolation.swift:32:24:32:24 | &... | stringinterpolation.swift:32:12:32:12 | TapExpr | | stringinterpolation.swift:32:24:32:24 | [post] $interpolation | stringinterpolation.swift:32:24:32:24 | &... | @@ -332,202 +298,152 @@ | stringinterpolation.swift:38:6:38:6 | SSA def(c) | stringinterpolation.swift:44:15:44:15 | c | | stringinterpolation.swift:38:6:38:6 | c | stringinterpolation.swift:38:6:38:6 | SSA def(c) | | stringinterpolation.swift:38:10:38:16 | call to clean() | stringinterpolation.swift:38:6:38:6 | c | -| stringinterpolation.swift:40:12:40:12 | | stringinterpolation.swift:40:12:40:12 | [post] | | stringinterpolation.swift:40:12:40:12 | | stringinterpolation.swift:40:13:40:13 | [post] $interpolation | | stringinterpolation.swift:40:12:40:12 | SSA def($interpolation) | stringinterpolation.swift:40:13:40:13 | $interpolation | | stringinterpolation.swift:40:12:40:12 | TapExpr | stringinterpolation.swift:40:12:40:12 | "..." | -| stringinterpolation.swift:40:13:40:13 | $interpolation | stringinterpolation.swift:40:12:40:12 | [post] | | stringinterpolation.swift:40:13:40:13 | $interpolation | stringinterpolation.swift:40:13:40:13 | &... | | stringinterpolation.swift:40:13:40:13 | $interpolation | stringinterpolation.swift:40:13:40:13 | [post] $interpolation | | stringinterpolation.swift:40:13:40:13 | &... | stringinterpolation.swift:40:14:40:14 | $interpolation | | stringinterpolation.swift:40:13:40:13 | [post] $interpolation | stringinterpolation.swift:40:13:40:13 | &... | | stringinterpolation.swift:40:14:40:14 | $interpolation | stringinterpolation.swift:40:14:40:14 | &... | | stringinterpolation.swift:40:14:40:14 | $interpolation | stringinterpolation.swift:40:14:40:14 | [post] $interpolation | -| stringinterpolation.swift:40:14:40:14 | $interpolation | stringinterpolation.swift:40:15:40:15 | [post] a | | stringinterpolation.swift:40:14:40:14 | &... | stringinterpolation.swift:40:17:40:17 | $interpolation | | stringinterpolation.swift:40:14:40:14 | [post] $interpolation | stringinterpolation.swift:40:14:40:14 | &... | | stringinterpolation.swift:40:15:40:15 | [post] a | stringinterpolation.swift:40:24:40:24 | a | | stringinterpolation.swift:40:15:40:15 | a | stringinterpolation.swift:40:14:40:14 | [post] $interpolation | -| stringinterpolation.swift:40:15:40:15 | a | stringinterpolation.swift:40:15:40:15 | [post] a | | stringinterpolation.swift:40:15:40:15 | a | stringinterpolation.swift:40:24:40:24 | a | -| stringinterpolation.swift:40:17:40:17 | and | stringinterpolation.swift:40:17:40:17 | [post] and | | stringinterpolation.swift:40:17:40:17 | and | stringinterpolation.swift:40:17:40:17 | [post] $interpolation | | stringinterpolation.swift:40:17:40:17 | $interpolation | stringinterpolation.swift:40:17:40:17 | &... | -| stringinterpolation.swift:40:17:40:17 | $interpolation | stringinterpolation.swift:40:17:40:17 | [post] and | | stringinterpolation.swift:40:17:40:17 | $interpolation | stringinterpolation.swift:40:17:40:17 | [post] $interpolation | | stringinterpolation.swift:40:17:40:17 | &... | stringinterpolation.swift:40:23:40:23 | $interpolation | | stringinterpolation.swift:40:17:40:17 | [post] $interpolation | stringinterpolation.swift:40:17:40:17 | &... | | stringinterpolation.swift:40:23:40:23 | $interpolation | stringinterpolation.swift:40:23:40:23 | &... | | stringinterpolation.swift:40:23:40:23 | $interpolation | stringinterpolation.swift:40:23:40:23 | [post] $interpolation | -| stringinterpolation.swift:40:23:40:23 | $interpolation | stringinterpolation.swift:40:24:40:24 | [post] a | | stringinterpolation.swift:40:23:40:23 | &... | stringinterpolation.swift:40:26:40:26 | $interpolation | | stringinterpolation.swift:40:23:40:23 | [post] $interpolation | stringinterpolation.swift:40:23:40:23 | &... | | stringinterpolation.swift:40:24:40:24 | [post] a | stringinterpolation.swift:41:15:41:15 | a | | stringinterpolation.swift:40:24:40:24 | a | stringinterpolation.swift:40:23:40:23 | [post] $interpolation | -| stringinterpolation.swift:40:24:40:24 | a | stringinterpolation.swift:40:24:40:24 | [post] a | | stringinterpolation.swift:40:24:40:24 | a | stringinterpolation.swift:41:15:41:15 | a | -| stringinterpolation.swift:40:26:40:26 | | stringinterpolation.swift:40:26:40:26 | [post] | | stringinterpolation.swift:40:26:40:26 | | stringinterpolation.swift:40:26:40:26 | [post] $interpolation | | stringinterpolation.swift:40:26:40:26 | $interpolation | stringinterpolation.swift:40:26:40:26 | &... | -| stringinterpolation.swift:40:26:40:26 | $interpolation | stringinterpolation.swift:40:26:40:26 | [post] | | stringinterpolation.swift:40:26:40:26 | $interpolation | stringinterpolation.swift:40:26:40:26 | [post] $interpolation | | stringinterpolation.swift:40:26:40:26 | &... | stringinterpolation.swift:40:12:40:12 | TapExpr | | stringinterpolation.swift:40:26:40:26 | [post] $interpolation | stringinterpolation.swift:40:26:40:26 | &... | -| stringinterpolation.swift:41:12:41:12 | | stringinterpolation.swift:41:12:41:12 | [post] | | stringinterpolation.swift:41:12:41:12 | | stringinterpolation.swift:41:13:41:13 | [post] $interpolation | | stringinterpolation.swift:41:12:41:12 | SSA def($interpolation) | stringinterpolation.swift:41:13:41:13 | $interpolation | | stringinterpolation.swift:41:12:41:12 | TapExpr | stringinterpolation.swift:41:12:41:12 | "..." | -| stringinterpolation.swift:41:13:41:13 | $interpolation | stringinterpolation.swift:41:12:41:12 | [post] | | stringinterpolation.swift:41:13:41:13 | $interpolation | stringinterpolation.swift:41:13:41:13 | &... | | stringinterpolation.swift:41:13:41:13 | $interpolation | stringinterpolation.swift:41:13:41:13 | [post] $interpolation | | stringinterpolation.swift:41:13:41:13 | &... | stringinterpolation.swift:41:14:41:14 | $interpolation | | stringinterpolation.swift:41:13:41:13 | [post] $interpolation | stringinterpolation.swift:41:13:41:13 | &... | | stringinterpolation.swift:41:14:41:14 | $interpolation | stringinterpolation.swift:41:14:41:14 | &... | | stringinterpolation.swift:41:14:41:14 | $interpolation | stringinterpolation.swift:41:14:41:14 | [post] $interpolation | -| stringinterpolation.swift:41:14:41:14 | $interpolation | stringinterpolation.swift:41:15:41:15 | [post] a | | stringinterpolation.swift:41:14:41:14 | &... | stringinterpolation.swift:41:17:41:17 | $interpolation | | stringinterpolation.swift:41:14:41:14 | [post] $interpolation | stringinterpolation.swift:41:14:41:14 | &... | | stringinterpolation.swift:41:15:41:15 | [post] a | stringinterpolation.swift:42:24:42:24 | a | | stringinterpolation.swift:41:15:41:15 | a | stringinterpolation.swift:41:14:41:14 | [post] $interpolation | -| stringinterpolation.swift:41:15:41:15 | a | stringinterpolation.swift:41:15:41:15 | [post] a | | stringinterpolation.swift:41:15:41:15 | a | stringinterpolation.swift:42:24:42:24 | a | -| stringinterpolation.swift:41:17:41:17 | and | stringinterpolation.swift:41:17:41:17 | [post] and | | stringinterpolation.swift:41:17:41:17 | and | stringinterpolation.swift:41:17:41:17 | [post] $interpolation | | stringinterpolation.swift:41:17:41:17 | $interpolation | stringinterpolation.swift:41:17:41:17 | &... | -| stringinterpolation.swift:41:17:41:17 | $interpolation | stringinterpolation.swift:41:17:41:17 | [post] and | | stringinterpolation.swift:41:17:41:17 | $interpolation | stringinterpolation.swift:41:17:41:17 | [post] $interpolation | | stringinterpolation.swift:41:17:41:17 | &... | stringinterpolation.swift:41:23:41:23 | $interpolation | | stringinterpolation.swift:41:17:41:17 | [post] $interpolation | stringinterpolation.swift:41:17:41:17 | &... | | stringinterpolation.swift:41:23:41:23 | $interpolation | stringinterpolation.swift:41:23:41:23 | &... | | stringinterpolation.swift:41:23:41:23 | $interpolation | stringinterpolation.swift:41:23:41:23 | [post] $interpolation | -| stringinterpolation.swift:41:23:41:23 | $interpolation | stringinterpolation.swift:41:24:41:24 | [post] b | | stringinterpolation.swift:41:23:41:23 | &... | stringinterpolation.swift:41:26:41:26 | $interpolation | | stringinterpolation.swift:41:23:41:23 | [post] $interpolation | stringinterpolation.swift:41:23:41:23 | &... | | stringinterpolation.swift:41:24:41:24 | [post] b | stringinterpolation.swift:42:15:42:15 | b | | stringinterpolation.swift:41:24:41:24 | b | stringinterpolation.swift:41:23:41:23 | [post] $interpolation | -| stringinterpolation.swift:41:24:41:24 | b | stringinterpolation.swift:41:24:41:24 | [post] b | | stringinterpolation.swift:41:24:41:24 | b | stringinterpolation.swift:42:15:42:15 | b | -| stringinterpolation.swift:41:26:41:26 | | stringinterpolation.swift:41:26:41:26 | [post] | | stringinterpolation.swift:41:26:41:26 | | stringinterpolation.swift:41:26:41:26 | [post] $interpolation | | stringinterpolation.swift:41:26:41:26 | $interpolation | stringinterpolation.swift:41:26:41:26 | &... | -| stringinterpolation.swift:41:26:41:26 | $interpolation | stringinterpolation.swift:41:26:41:26 | [post] | | stringinterpolation.swift:41:26:41:26 | $interpolation | stringinterpolation.swift:41:26:41:26 | [post] $interpolation | | stringinterpolation.swift:41:26:41:26 | &... | stringinterpolation.swift:41:12:41:12 | TapExpr | | stringinterpolation.swift:41:26:41:26 | [post] $interpolation | stringinterpolation.swift:41:26:41:26 | &... | -| stringinterpolation.swift:42:12:42:12 | | stringinterpolation.swift:42:12:42:12 | [post] | | stringinterpolation.swift:42:12:42:12 | | stringinterpolation.swift:42:13:42:13 | [post] $interpolation | | stringinterpolation.swift:42:12:42:12 | SSA def($interpolation) | stringinterpolation.swift:42:13:42:13 | $interpolation | | stringinterpolation.swift:42:12:42:12 | TapExpr | stringinterpolation.swift:42:12:42:12 | "..." | -| stringinterpolation.swift:42:13:42:13 | $interpolation | stringinterpolation.swift:42:12:42:12 | [post] | | stringinterpolation.swift:42:13:42:13 | $interpolation | stringinterpolation.swift:42:13:42:13 | &... | | stringinterpolation.swift:42:13:42:13 | $interpolation | stringinterpolation.swift:42:13:42:13 | [post] $interpolation | | stringinterpolation.swift:42:13:42:13 | &... | stringinterpolation.swift:42:14:42:14 | $interpolation | | stringinterpolation.swift:42:13:42:13 | [post] $interpolation | stringinterpolation.swift:42:13:42:13 | &... | | stringinterpolation.swift:42:14:42:14 | $interpolation | stringinterpolation.swift:42:14:42:14 | &... | | stringinterpolation.swift:42:14:42:14 | $interpolation | stringinterpolation.swift:42:14:42:14 | [post] $interpolation | -| stringinterpolation.swift:42:14:42:14 | $interpolation | stringinterpolation.swift:42:15:42:15 | [post] b | | stringinterpolation.swift:42:14:42:14 | &... | stringinterpolation.swift:42:17:42:17 | $interpolation | | stringinterpolation.swift:42:14:42:14 | [post] $interpolation | stringinterpolation.swift:42:14:42:14 | &... | | stringinterpolation.swift:42:15:42:15 | [post] b | stringinterpolation.swift:43:15:43:15 | b | | stringinterpolation.swift:42:15:42:15 | b | stringinterpolation.swift:42:14:42:14 | [post] $interpolation | -| stringinterpolation.swift:42:15:42:15 | b | stringinterpolation.swift:42:15:42:15 | [post] b | | stringinterpolation.swift:42:15:42:15 | b | stringinterpolation.swift:43:15:43:15 | b | -| stringinterpolation.swift:42:17:42:17 | and | stringinterpolation.swift:42:17:42:17 | [post] and | | stringinterpolation.swift:42:17:42:17 | and | stringinterpolation.swift:42:17:42:17 | [post] $interpolation | | stringinterpolation.swift:42:17:42:17 | $interpolation | stringinterpolation.swift:42:17:42:17 | &... | -| stringinterpolation.swift:42:17:42:17 | $interpolation | stringinterpolation.swift:42:17:42:17 | [post] and | | stringinterpolation.swift:42:17:42:17 | $interpolation | stringinterpolation.swift:42:17:42:17 | [post] $interpolation | | stringinterpolation.swift:42:17:42:17 | &... | stringinterpolation.swift:42:23:42:23 | $interpolation | | stringinterpolation.swift:42:17:42:17 | [post] $interpolation | stringinterpolation.swift:42:17:42:17 | &... | | stringinterpolation.swift:42:23:42:23 | $interpolation | stringinterpolation.swift:42:23:42:23 | &... | | stringinterpolation.swift:42:23:42:23 | $interpolation | stringinterpolation.swift:42:23:42:23 | [post] $interpolation | -| stringinterpolation.swift:42:23:42:23 | $interpolation | stringinterpolation.swift:42:24:42:24 | [post] a | | stringinterpolation.swift:42:23:42:23 | &... | stringinterpolation.swift:42:26:42:26 | $interpolation | | stringinterpolation.swift:42:23:42:23 | [post] $interpolation | stringinterpolation.swift:42:23:42:23 | &... | | stringinterpolation.swift:42:24:42:24 | a | stringinterpolation.swift:42:23:42:23 | [post] $interpolation | -| stringinterpolation.swift:42:24:42:24 | a | stringinterpolation.swift:42:24:42:24 | [post] a | -| stringinterpolation.swift:42:26:42:26 | | stringinterpolation.swift:42:26:42:26 | [post] | | stringinterpolation.swift:42:26:42:26 | | stringinterpolation.swift:42:26:42:26 | [post] $interpolation | | stringinterpolation.swift:42:26:42:26 | $interpolation | stringinterpolation.swift:42:26:42:26 | &... | -| stringinterpolation.swift:42:26:42:26 | $interpolation | stringinterpolation.swift:42:26:42:26 | [post] | | stringinterpolation.swift:42:26:42:26 | $interpolation | stringinterpolation.swift:42:26:42:26 | [post] $interpolation | | stringinterpolation.swift:42:26:42:26 | &... | stringinterpolation.swift:42:12:42:12 | TapExpr | | stringinterpolation.swift:42:26:42:26 | [post] $interpolation | stringinterpolation.swift:42:26:42:26 | &... | -| stringinterpolation.swift:43:12:43:12 | | stringinterpolation.swift:43:12:43:12 | [post] | | stringinterpolation.swift:43:12:43:12 | | stringinterpolation.swift:43:13:43:13 | [post] $interpolation | | stringinterpolation.swift:43:12:43:12 | SSA def($interpolation) | stringinterpolation.swift:43:13:43:13 | $interpolation | | stringinterpolation.swift:43:12:43:12 | TapExpr | stringinterpolation.swift:43:12:43:12 | "..." | -| stringinterpolation.swift:43:13:43:13 | $interpolation | stringinterpolation.swift:43:12:43:12 | [post] | | stringinterpolation.swift:43:13:43:13 | $interpolation | stringinterpolation.swift:43:13:43:13 | &... | | stringinterpolation.swift:43:13:43:13 | $interpolation | stringinterpolation.swift:43:13:43:13 | [post] $interpolation | | stringinterpolation.swift:43:13:43:13 | &... | stringinterpolation.swift:43:14:43:14 | $interpolation | | stringinterpolation.swift:43:13:43:13 | [post] $interpolation | stringinterpolation.swift:43:13:43:13 | &... | | stringinterpolation.swift:43:14:43:14 | $interpolation | stringinterpolation.swift:43:14:43:14 | &... | | stringinterpolation.swift:43:14:43:14 | $interpolation | stringinterpolation.swift:43:14:43:14 | [post] $interpolation | -| stringinterpolation.swift:43:14:43:14 | $interpolation | stringinterpolation.swift:43:15:43:15 | [post] b | | stringinterpolation.swift:43:14:43:14 | &... | stringinterpolation.swift:43:17:43:17 | $interpolation | | stringinterpolation.swift:43:14:43:14 | [post] $interpolation | stringinterpolation.swift:43:14:43:14 | &... | | stringinterpolation.swift:43:15:43:15 | [post] b | stringinterpolation.swift:43:24:43:24 | b | | stringinterpolation.swift:43:15:43:15 | b | stringinterpolation.swift:43:14:43:14 | [post] $interpolation | -| stringinterpolation.swift:43:15:43:15 | b | stringinterpolation.swift:43:15:43:15 | [post] b | | stringinterpolation.swift:43:15:43:15 | b | stringinterpolation.swift:43:24:43:24 | b | -| stringinterpolation.swift:43:17:43:17 | and | stringinterpolation.swift:43:17:43:17 | [post] and | | stringinterpolation.swift:43:17:43:17 | and | stringinterpolation.swift:43:17:43:17 | [post] $interpolation | | stringinterpolation.swift:43:17:43:17 | $interpolation | stringinterpolation.swift:43:17:43:17 | &... | -| stringinterpolation.swift:43:17:43:17 | $interpolation | stringinterpolation.swift:43:17:43:17 | [post] and | | stringinterpolation.swift:43:17:43:17 | $interpolation | stringinterpolation.swift:43:17:43:17 | [post] $interpolation | | stringinterpolation.swift:43:17:43:17 | &... | stringinterpolation.swift:43:23:43:23 | $interpolation | | stringinterpolation.swift:43:17:43:17 | [post] $interpolation | stringinterpolation.swift:43:17:43:17 | &... | | stringinterpolation.swift:43:23:43:23 | $interpolation | stringinterpolation.swift:43:23:43:23 | &... | | stringinterpolation.swift:43:23:43:23 | $interpolation | stringinterpolation.swift:43:23:43:23 | [post] $interpolation | -| stringinterpolation.swift:43:23:43:23 | $interpolation | stringinterpolation.swift:43:24:43:24 | [post] b | | stringinterpolation.swift:43:23:43:23 | &... | stringinterpolation.swift:43:26:43:26 | $interpolation | | stringinterpolation.swift:43:23:43:23 | [post] $interpolation | stringinterpolation.swift:43:23:43:23 | &... | | stringinterpolation.swift:43:24:43:24 | b | stringinterpolation.swift:43:23:43:23 | [post] $interpolation | -| stringinterpolation.swift:43:24:43:24 | b | stringinterpolation.swift:43:24:43:24 | [post] b | -| stringinterpolation.swift:43:26:43:26 | | stringinterpolation.swift:43:26:43:26 | [post] | | stringinterpolation.swift:43:26:43:26 | | stringinterpolation.swift:43:26:43:26 | [post] $interpolation | | stringinterpolation.swift:43:26:43:26 | $interpolation | stringinterpolation.swift:43:26:43:26 | &... | -| stringinterpolation.swift:43:26:43:26 | $interpolation | stringinterpolation.swift:43:26:43:26 | [post] | | stringinterpolation.swift:43:26:43:26 | $interpolation | stringinterpolation.swift:43:26:43:26 | [post] $interpolation | | stringinterpolation.swift:43:26:43:26 | &... | stringinterpolation.swift:43:12:43:12 | TapExpr | | stringinterpolation.swift:43:26:43:26 | [post] $interpolation | stringinterpolation.swift:43:26:43:26 | &... | -| stringinterpolation.swift:44:12:44:12 | | stringinterpolation.swift:44:12:44:12 | [post] | | stringinterpolation.swift:44:12:44:12 | | stringinterpolation.swift:44:13:44:13 | [post] $interpolation | | stringinterpolation.swift:44:12:44:12 | SSA def($interpolation) | stringinterpolation.swift:44:13:44:13 | $interpolation | | stringinterpolation.swift:44:12:44:12 | TapExpr | stringinterpolation.swift:44:12:44:12 | "..." | -| stringinterpolation.swift:44:13:44:13 | $interpolation | stringinterpolation.swift:44:12:44:12 | [post] | | stringinterpolation.swift:44:13:44:13 | $interpolation | stringinterpolation.swift:44:13:44:13 | &... | | stringinterpolation.swift:44:13:44:13 | $interpolation | stringinterpolation.swift:44:13:44:13 | [post] $interpolation | | stringinterpolation.swift:44:13:44:13 | &... | stringinterpolation.swift:44:14:44:14 | $interpolation | | stringinterpolation.swift:44:13:44:13 | [post] $interpolation | stringinterpolation.swift:44:13:44:13 | &... | | stringinterpolation.swift:44:14:44:14 | $interpolation | stringinterpolation.swift:44:14:44:14 | &... | | stringinterpolation.swift:44:14:44:14 | $interpolation | stringinterpolation.swift:44:14:44:14 | [post] $interpolation | -| stringinterpolation.swift:44:14:44:14 | $interpolation | stringinterpolation.swift:44:15:44:15 | [post] c | | stringinterpolation.swift:44:14:44:14 | &... | stringinterpolation.swift:44:17:44:17 | $interpolation | | stringinterpolation.swift:44:14:44:14 | [post] $interpolation | stringinterpolation.swift:44:14:44:14 | &... | | stringinterpolation.swift:44:15:44:15 | [post] c | stringinterpolation.swift:44:24:44:24 | c | | stringinterpolation.swift:44:15:44:15 | c | stringinterpolation.swift:44:14:44:14 | [post] $interpolation | -| stringinterpolation.swift:44:15:44:15 | c | stringinterpolation.swift:44:15:44:15 | [post] c | | stringinterpolation.swift:44:15:44:15 | c | stringinterpolation.swift:44:24:44:24 | c | -| stringinterpolation.swift:44:17:44:17 | and | stringinterpolation.swift:44:17:44:17 | [post] and | | stringinterpolation.swift:44:17:44:17 | and | stringinterpolation.swift:44:17:44:17 | [post] $interpolation | | stringinterpolation.swift:44:17:44:17 | $interpolation | stringinterpolation.swift:44:17:44:17 | &... | -| stringinterpolation.swift:44:17:44:17 | $interpolation | stringinterpolation.swift:44:17:44:17 | [post] and | | stringinterpolation.swift:44:17:44:17 | $interpolation | stringinterpolation.swift:44:17:44:17 | [post] $interpolation | | stringinterpolation.swift:44:17:44:17 | &... | stringinterpolation.swift:44:23:44:23 | $interpolation | | stringinterpolation.swift:44:17:44:17 | [post] $interpolation | stringinterpolation.swift:44:17:44:17 | &... | | stringinterpolation.swift:44:23:44:23 | $interpolation | stringinterpolation.swift:44:23:44:23 | &... | | stringinterpolation.swift:44:23:44:23 | $interpolation | stringinterpolation.swift:44:23:44:23 | [post] $interpolation | -| stringinterpolation.swift:44:23:44:23 | $interpolation | stringinterpolation.swift:44:24:44:24 | [post] c | | stringinterpolation.swift:44:23:44:23 | &... | stringinterpolation.swift:44:26:44:26 | $interpolation | | stringinterpolation.swift:44:23:44:23 | [post] $interpolation | stringinterpolation.swift:44:23:44:23 | &... | | stringinterpolation.swift:44:24:44:24 | c | stringinterpolation.swift:44:23:44:23 | [post] $interpolation | -| stringinterpolation.swift:44:24:44:24 | c | stringinterpolation.swift:44:24:44:24 | [post] c | -| stringinterpolation.swift:44:26:44:26 | | stringinterpolation.swift:44:26:44:26 | [post] | | stringinterpolation.swift:44:26:44:26 | | stringinterpolation.swift:44:26:44:26 | [post] $interpolation | | stringinterpolation.swift:44:26:44:26 | $interpolation | stringinterpolation.swift:44:26:44:26 | &... | -| stringinterpolation.swift:44:26:44:26 | $interpolation | stringinterpolation.swift:44:26:44:26 | [post] | | stringinterpolation.swift:44:26:44:26 | $interpolation | stringinterpolation.swift:44:26:44:26 | [post] $interpolation | | stringinterpolation.swift:44:26:44:26 | &... | stringinterpolation.swift:44:12:44:12 | TapExpr | | stringinterpolation.swift:44:26:44:26 | [post] $interpolation | stringinterpolation.swift:44:26:44:26 | &... | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index d1e406465b2..14373823a0c 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -71,7 +71,6 @@ edges | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:40:12:40:12 | "..." | | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:41:12:41:12 | "..." | | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:42:12:42:12 | "..." | -| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:43:12:43:12 | "..." | | subscript.swift:13:15:13:22 | call to source() | subscript.swift:13:15:13:25 | ...[...] | | subscript.swift:14:15:14:23 | call to source2() | subscript.swift:14:15:14:26 | ...[...] | | try.swift:9:17:9:24 | call to source() | try.swift:9:13:9:24 | try ... | @@ -187,7 +186,6 @@ nodes | stringinterpolation.swift:40:12:40:12 | "..." | semmle.label | "..." | | stringinterpolation.swift:41:12:41:12 | "..." | semmle.label | "..." | | stringinterpolation.swift:42:12:42:12 | "..." | semmle.label | "..." | -| stringinterpolation.swift:43:12:43:12 | "..." | semmle.label | "..." | | subscript.swift:13:15:13:22 | call to source() | semmle.label | call to source() | | subscript.swift:13:15:13:25 | ...[...] | semmle.label | ...[...] | | subscript.swift:14:15:14:23 | call to source2() | semmle.label | call to source2() | @@ -253,7 +251,6 @@ subpaths | stringinterpolation.swift:40:12:40:12 | "..." | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:40:12:40:12 | "..." | result | | stringinterpolation.swift:41:12:41:12 | "..." | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:41:12:41:12 | "..." | result | | stringinterpolation.swift:42:12:42:12 | "..." | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:42:12:42:12 | "..." | result | -| stringinterpolation.swift:43:12:43:12 | "..." | stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:43:12:43:12 | "..." | result | | subscript.swift:13:15:13:25 | ...[...] | subscript.swift:13:15:13:22 | call to source() | subscript.swift:13:15:13:25 | ...[...] | result | | subscript.swift:14:15:14:26 | ...[...] | subscript.swift:14:15:14:23 | call to source2() | subscript.swift:14:15:14:26 | ...[...] | result | | try.swift:9:13:9:24 | try ... | try.swift:9:17:9:24 | call to source() | try.swift:9:13:9:24 | try ... | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected b/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected index 48de9172b36..8ec8033d086 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected @@ -1,2 +1,2 @@ -failures testFailures +failures diff --git a/swift/ql/test/library-tests/dataflow/taint/core/stringinterpolation.swift b/swift/ql/test/library-tests/dataflow/taint/core/stringinterpolation.swift index 830e6104506..071319e6b75 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/stringinterpolation.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/stringinterpolation.swift @@ -40,6 +40,6 @@ func moreTestsStringInterpolation() { sink(arg: "\(a) and \(a)") // $ tainted=36 sink(arg: "\(a) and \(b)") // $ tainted=36 sink(arg: "\(b) and \(a)") // $ tainted=36 - sink(arg: "\(b) and \(b)") // $ SPURIOUS: tainted=36 + sink(arg: "\(b) and \(b)") sink(arg: "\(c) and \(c)") } From 0b5727f1d150dd94b686097e341a70f9b06c2527 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 21 Sep 2023 19:44:16 +0100 Subject: [PATCH 609/788] Add test re: buildless mode interaction with snapshot repositories --- .../buildless-snapshot-repository/pom.xml | 35 ++++++++++++++++++ .../1.0-SNAPSHOT/maven-metadata.xml | 24 ++++++++++++ .../1.0-SNAPSHOT/maven-metadata.xml.md5 | 1 + .../1.0-SNAPSHOT/maven-metadata.xml.sha1 | 1 + .../snapshottest-1.0-20230901.050514-100.jar | Bin 0 -> 1915 bytes ...apshottest-1.0-20230901.050514-100.jar.md5 | 1 + ...pshottest-1.0-20230901.050514-100.jar.sha1 | 1 + .../snapshottest-1.0-20230901.050514-100.pom | 13 +++++++ ...apshottest-1.0-20230901.050514-100.pom.md5 | 1 + ...pshottest-1.0-20230901.050514-100.pom.sha1 | 1 + .../src/main/java/Test.java | 7 ++++ .../test.expected | 3 ++ .../buildless-snapshot-repository/test.py | 12 ++++++ .../buildless-snapshot-repository/test.ql | 8 ++++ 14 files changed, 108 insertions(+) create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/pom.xml create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml.md5 create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml.sha1 create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.jar create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.jar.md5 create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.jar.sha1 create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.pom create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.pom.md5 create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.pom.sha1 create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/src/main/java/Test.java create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.expected create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.py create mode 100644 java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.ql diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/pom.xml b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/pom.xml new file mode 100644 index 00000000000..bdd4c42de40 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/pom.xml @@ -0,0 +1,35 @@ + + 4.0.0 + + com.mycompany.app + my-app + 1.0-SNAPSHOT + + + 8 + 8 + + + + + snapshot-test-repo + http://localhost:9427/snapshots + + false + + + true + always + + + + + + + com.github.my.snapshot.test + snapshottest + 1.0-SNAPSHOT + + + diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml new file mode 100644 index 00000000000..cad1b0efc60 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml @@ -0,0 +1,24 @@ + + com.github.my.snapshot.test + snapshottest + 1.0-SNAPSHOT + + 20230101020304 + + 20230901.050514 + 100 + + + + jar + 1.0-20230901.050514-100 + 20230101020304 + + + pom + 1.0-20230901.050514-100 + 20230101020304 + + + + diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml.md5 b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml.md5 new file mode 100644 index 00000000000..4dbc3c93d9b --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml.md5 @@ -0,0 +1 @@ +cf2064037098dc6d4294ef6f1a12dc75 diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml.sha1 b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml.sha1 new file mode 100644 index 00000000000..9b090ce73ad --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/maven-metadata.xml.sha1 @@ -0,0 +1 @@ +aeabf1dbf735290f5317d78459b3219d267dbb0e diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.jar b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.jar new file mode 100644 index 0000000000000000000000000000000000000000..4c905cefca86fa697f3a42cdf2b750eed6044efe GIT binary patch literal 1915 zcmWIWW@h1HVBlb2IN4_!&VU3sfoxyb5Jz24KR5jVpfVAlG7hk^819U30YK?MAO?ye zl=(XPdAhj8CwA}fBfB#uiFk|7SLc$#6hH4OaM;Pb>_}ULsZPh=EowfY+HXI^hY4}ZKUjQZZc?(EW%;?se&;@y)-y;f zdb)t+a9gCiq?ohzBk^}fZEjYcRuEd4wBeZ1#H>RJCDqc>qFkC2S6@zie)dSF)MuM? zgXJ&740i1EIr6B6$7S0yM<1`-{?2mw6>6scyO!NL9aH^ZzE@&SXw^9Lk z<(9n>5-#sHol7{Zvyzql)L-cvQ{_}GTEY~iRtR3RXPniWv^R3e9dkrl69oEu*`yVz ze}MjFXJTNmryw*7fbmz6o6|e-wAT>>k+$!(U6*S8gGv>bmg%2apwMyKN9wjmv7+VP zAK%no_MCBGo&NmK{qxhkljr^vlKC9kd&^#wdC^+Vz#K8D8L2e_2{Hb0@qJGiH7+D6 zzrK1pzA92I;+=50d#0;hU;FlekTp|oDPN8eiJaH&_V)6x1PkZPFZLxr~ zmQ&{UBunUDVT)y*IQ#r8u8hi685_=tflLNU_ZNGIQR1nMIwBAX3B^!{C8u* z-;C{TXTCC(XFu0Cb#kk%@5j%#->@SBRs$HYM`v71as>q_5W7(rumwf=1*t_PnW@Fz zI$9@vynXaO`fSua=dGi0?u5Rkr>@>ZFa1;cx(r-u&!4|qnm#RMirUMkVXqEOdC_=v z%2F}W^k>g+O1+YNp(ZIMQNRey>x@hy%-HiWs91sk0fx7ZAQn;~1=5DQn1bqKSkkDD ztPQEqLbe!NF#|CHWbsNM6P5*$b)lD{pkfCCK)TKYnQ-UA3L)Hn1r + 4.0.0 + + com.github.my.snapshot.test + snapshottest + 1.0-SNAPSHOT + + + 1.8 + 1.8 + + diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.pom.md5 b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.pom.md5 new file mode 100644 index 00000000000..f596dfe5019 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.pom.md5 @@ -0,0 +1 @@ +66c5f73407153610dc3f5743eef678f3 diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.pom.sha1 b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.pom.sha1 new file mode 100644 index 00000000000..d5b75cd08e6 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/repo/snapshots/com/github/my/snapshot/test/snapshottest/1.0-SNAPSHOT/snapshottest-1.0-20230901.050514-100.pom.sha1 @@ -0,0 +1 @@ +f895a88d2490dbcec8228c2a528bde029d80409e diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/src/main/java/Test.java b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/src/main/java/Test.java new file mode 100644 index 00000000000..98b6d35b15b --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/src/main/java/Test.java @@ -0,0 +1,7 @@ +import testpkg.DepClass; + +public class Test { + + DepClass dc; + +} diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.expected b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.expected new file mode 100644 index 00000000000..5179970f7c4 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.expected @@ -0,0 +1,3 @@ +diagnostics +#select +| DepClass | diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.py b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.py new file mode 100644 index 00000000000..55f8f639eae --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.py @@ -0,0 +1,12 @@ +import sys + +from create_database_utils import * +import subprocess + +repo_server_process = subprocess.Popen(["python3", "-m", "http.server", "9427"], cwd = "repo") + +try: + run_codeql_database_create([], lang="java", extra_args=["--extractor-option=buildless=true"], extra_env={"CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS_CLASSPATH_FROM_BUILD_FILES": "true"}) +finally: + repo_server_process.kill() + diff --git a/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.ql b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.ql new file mode 100644 index 00000000000..66153bcc083 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-snapshot-repository/test.ql @@ -0,0 +1,8 @@ +import java +import semmle.code.java.Diagnostics + +query predicate diagnostics(Diagnostic d) { any() } + +from Class c +where c.getName() = "DepClass" +select c.toString() From 47809a82525aa5ee36022b0cbdc1f4baaa71b5f5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Sep 2023 00:14:56 +0000 Subject: [PATCH 610/788] Add changed framework coverage reports --- java/documentation/library-coverage/coverage.csv | 2 +- java/documentation/library-coverage/coverage.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index 5896aa87136..2342046cc2e 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -59,7 +59,7 @@ jakarta.xml.bind.attachment,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, java.awt,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3 java.beans,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, java.io,50,,46,,,22,,,,,,,,,,,,,,28,,,,,,,,,,,,,,,,,,,,44,2 -java.lang,31,,93,,13,,,,,,,,,,,,8,,,5,,,4,,,1,,,,,,,,,,,,,,57,36 +java.lang,31,,94,,13,,,,,,,,,,,,8,,,5,,,4,,,1,,,,,,,,,,,,,,57,37 java.net,13,3,23,,,,,,,,,,,,,,,,,,,,,,,,,,13,,,,,,,,,,3,23, java.nio,49,,36,,,5,,,,,,,,,,,,,,43,,,,,,,,,1,,,,,,,,,,,36, java.sql,13,,2,,,,,,,,,,,,,,,,,,,,,,,,,,4,,9,,,,,,,,,2, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index 6e0018b095b..382fa519eef 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -18,10 +18,10 @@ Java framework & library support `Google Guava `_,``com.google.common.*``,,730,41,7,,,,, JBoss Logging,``org.jboss.logging``,,,324,,,,,, `JSON-java `_,``org.json``,,236,,,,,,, - Java Standard Library,``java.*``,3,691,201,76,,9,,,18 + Java Standard Library,``java.*``,3,692,201,76,,9,,,18 Java extensions,"``javax.*``, ``jakarta.*``",67,681,40,4,4,,1,1,4 Kotlin Standard Library,``kotlin*``,,1849,16,14,,,,,2 `Spring `_,``org.springframework.*``,29,483,115,4,,28,14,,35 Others,"``actions.osgi``, ``antlr``, ``cn.hutool.core.codec``, ``com.alibaba.druid.sql``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``com.thoughtworks.xstream``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.influxdb``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",126,10502,706,116,6,18,18,,208 - Totals,,287,18883,2198,315,16,122,33,1,401 + Totals,,287,18884,2198,315,16,122,33,1,401 From 831baa867c1c73ca320b0f055fb21c64c75d1046 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 22 Sep 2023 09:06:44 +0200 Subject: [PATCH 611/788] C#: Refactor and regenerate stubs --- .../RelevantSymbol.cs | 33 ++ .../StubGenerator.cs | 23 +- .../StubVisitor.cs | 287 +++++++++--------- ...rosoft.AspNetCore.Cryptography.Internal.cs | 0 ...icrosoft.AspNetCore.Mvc.Formatters.Json.cs | 0 .../Microsoft.VisualBasic.cs | 0 .../System.AppContext.cs | 0 .../Microsoft.NETCore.App/System.Buffers.cs | 0 .../System.ComponentModel.DataAnnotations.cs | 0 .../System.Configuration.cs | 0 .../Microsoft.NETCore.App/System.Core.cs | 0 .../System.Data.DataSetExtensions.cs | 0 .../Microsoft.NETCore.App/System.Data.cs | 0 .../System.Diagnostics.Debug.cs | 0 .../System.Diagnostics.Tools.cs | 0 .../Microsoft.NETCore.App/System.Drawing.cs | 0 .../System.Dynamic.Runtime.cs | 0 .../System.Globalization.Calendars.cs | 0 .../System.Globalization.Extensions.cs | 0 .../System.Globalization.cs | 0 .../System.IO.Compression.FileSystem.cs | 0 .../System.IO.FileSystem.Primitives.cs | 0 .../System.IO.FileSystem.cs | 0 .../System.IO.UnmanagedMemoryStream.cs | 0 .../Microsoft.NETCore.App/System.IO.cs | 0 .../Microsoft.NETCore.App/System.Net.cs | 0 .../Microsoft.NETCore.App/System.Numerics.cs | 0 .../System.Reflection.Extensions.cs | 0 .../System.Reflection.cs | 0 .../System.Resources.Reader.cs | 0 .../System.Resources.ResourceManager.cs | 0 .../System.Runtime.CompilerServices.Unsafe.cs | 0 .../System.Runtime.Extensions.cs | 0 .../System.Runtime.Handles.cs | 0 ...time.InteropServices.RuntimeInformation.cs | 0 .../System.Runtime.Serialization.cs | 0 ...System.Security.Cryptography.Algorithms.cs | 0 .../System.Security.Cryptography.Cng.cs | 0 .../System.Security.Cryptography.Csp.cs | 0 .../System.Security.Cryptography.Encoding.cs | 0 .../System.Security.Cryptography.OpenSsl.cs | 0 ...System.Security.Cryptography.Primitives.cs | 0 ....Security.Cryptography.X509Certificates.cs | 0 .../System.Security.Principal.cs | 0 .../System.Security.SecureString.cs | 0 .../Microsoft.NETCore.App/System.Security.cs | 0 .../System.ServiceModel.Web.cs | 0 .../System.ServiceProcess.cs | 0 .../System.Text.Encoding.cs | 0 .../System.Threading.Tasks.Extensions.cs | 0 .../System.Threading.Tasks.cs | 0 .../System.Threading.Timer.cs | 0 .../System.Transactions.cs | 0 .../System.ValueTuple.cs | 0 .../Microsoft.NETCore.App/System.Web.cs | 0 .../Microsoft.NETCore.App/System.Windows.cs | 0 .../Microsoft.NETCore.App/System.Xml.Linq.cs | 0 .../System.Xml.Serialization.cs | 0 .../System.Xml.XmlDocument.cs | 0 .../Microsoft.NETCore.App/System.Xml.cs | 0 .../Microsoft.NETCore.App/System.cs | 0 .../Microsoft.NETCore.App/WindowsBase.cs | 0 .../Microsoft.NETCore.App/mscorlib.cs | 0 .../Microsoft.NETCore.App/netstandard.cs | 0 64 files changed, 180 insertions(+), 163 deletions(-) create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/RelevantSymbol.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/RelevantSymbol.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/RelevantSymbol.cs new file mode 100644 index 00000000000..44ed332c7c8 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/RelevantSymbol.cs @@ -0,0 +1,33 @@ +using System.Linq; + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; + +using Semmle.Util; + +namespace Semmle.Extraction.CSharp.StubGenerator; + +internal class RelevantSymbol +{ + private readonly IAssemblySymbol assembly; + private readonly MemoizedFunc isRelevantNamedType; + private readonly MemoizedFunc isRelevantNamespace; + + public RelevantSymbol(IAssemblySymbol assembly) + { + this.assembly = assembly; + + isRelevantNamedType = new(symbol => + StubVisitor.IsRelevantBaseType(symbol) && + SymbolEqualityComparer.Default.Equals(symbol.ContainingAssembly, assembly)); + + isRelevantNamespace = new(symbol => + symbol.GetTypeMembers().Any(IsRelevantNamedType) || + symbol.GetNamespaceMembers().Any(IsRelevantNamespace)); + } + + public bool IsRelevantNamedType(INamedTypeSymbol symbol) => isRelevantNamedType.Invoke(symbol); + + public bool IsRelevantNamespace(INamespaceSymbol symbol) => isRelevantNamespace.Invoke(symbol); +} + diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs index 8f4e51572a7..8e2fe36a31d 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs @@ -1,12 +1,13 @@ -using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; + using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; + using Semmle.Util; using Semmle.Util.Logging; @@ -56,20 +57,18 @@ public static class StubGenerator if (compilation.GetAssemblyOrModuleSymbol(reference) is not IAssemblySymbol assembly) return; - Func makeWriter = () => - { - var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write); - var writer = new StreamWriter(fileStream, new UTF8Encoding(false)); - return writer; - }; + var relevantSymbol = new RelevantSymbol(assembly); - using var visitor = new StubVisitor(assembly, makeWriter); - - if (!assembly.Modules.Any(m => visitor.IsRelevantNamespace(m.GlobalNamespace))) + if (!assembly.Modules.Any(m => relevantSymbol.IsRelevantNamespace(m.GlobalNamespace))) return; - visitor.StubWriter.WriteLine("// This file contains auto-generated code."); - visitor.StubWriter.WriteLine($"// Generated from `{assembly.Identity}`."); + using var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write); + using var writer = new StreamWriter(fileStream, new UTF8Encoding(false)); + + var visitor = new StubVisitor(writer, relevantSymbol); + + writer.WriteLine("// This file contains auto-generated code."); + writer.WriteLine($"// Generated from `{assembly.Identity}`."); visitor.StubAttributes(assembly.GetAttributes(), "assembly: "); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs index 831d6d04081..ef6d1a890ec 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs @@ -2,26 +2,22 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; + using Microsoft.CodeAnalysis; + using Semmle.Extraction.CSharp.Util; -using Semmle.Util; namespace Semmle.Extraction.CSharp.StubGenerator; -internal sealed class StubVisitor : SymbolVisitor, IDisposable +internal sealed class StubVisitor : SymbolVisitor { - private readonly IAssemblySymbol assembly; - private readonly Lazy stubWriterLazy; - public TextWriter StubWriter => stubWriterLazy.Value; - private readonly MemoizedFunc isRelevantNamespace; + private readonly TextWriter stubWriter; + private readonly RelevantSymbol relevantSymbol; - public StubVisitor(IAssemblySymbol assembly, Func makeStubWriter) + public StubVisitor(TextWriter stubWriter, RelevantSymbol relevantSymbol) { - this.assembly = assembly; - this.stubWriterLazy = new(makeStubWriter); - this.isRelevantNamespace = new(symbol => - symbol.GetTypeMembers().Any(IsRelevantNamedType) || - symbol.GetNamespaceMembers().Any(IsRelevantNamespace)); + this.stubWriter = stubWriter; + this.relevantSymbol = relevantSymbol; } private static bool IsNotPublic(Accessibility accessibility) => @@ -29,16 +25,10 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable accessibility == Accessibility.Internal || accessibility == Accessibility.ProtectedAndInternal; - private static bool IsRelevantBaseType(INamedTypeSymbol symbol) => + public static bool IsRelevantBaseType(INamedTypeSymbol symbol) => !IsNotPublic(symbol.DeclaredAccessibility) && symbol.CanBeReferencedByName; - private bool IsRelevantNamedType(INamedTypeSymbol symbol) => - IsRelevantBaseType(symbol) && - SymbolEqualityComparer.Default.Equals(symbol.ContainingAssembly, assembly); - - public bool IsRelevantNamespace(INamespaceSymbol symbol) => isRelevantNamespace.Invoke(symbol); - private void StubExplicitInterface(ISymbol symbol, ISymbol? explicitInterfaceSymbol, bool writeName = true) { static bool ContainsTupleType(ITypeSymbol type) => @@ -86,14 +76,14 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable explicitInterfaceType = symbol.ContainingType.Interfaces.First(i => ContainsTupleType(i) && EqualsModuloTupleElementNames(i, explicitInterfaceSymbol.ContainingType)); } - StubWriter.Write(explicitInterfaceType.GetQualifiedName()); - StubWriter.Write('.'); + stubWriter.Write(explicitInterfaceType.GetQualifiedName()); + stubWriter.Write('.'); if (writeName) - StubWriter.Write(explicitInterfaceSymbol.GetName()); + stubWriter.Write(explicitInterfaceSymbol.GetName()); } else if (writeName) { - StubWriter.Write(symbol.GetName()); + stubWriter.Write(symbol.GetName()); } } @@ -102,19 +92,19 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable switch (accessibility) { case Accessibility.Public: - StubWriter.Write("public "); + stubWriter.Write("public "); break; case Accessibility.Protected or Accessibility.ProtectedOrInternal: - StubWriter.Write("protected "); + stubWriter.Write("protected "); break; case Accessibility.Internal: - StubWriter.Write("internal "); + stubWriter.Write("internal "); break; case Accessibility.ProtectedAndInternal: - StubWriter.Write("protected internal "); + stubWriter.Write("protected internal "); break; default: - StubWriter.Write($"/* TODO: {accessibility} */"); + stubWriter.Write($"/* TODO: {accessibility} */"); break; } } @@ -138,23 +128,23 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable // exclude non-static interface members (symbol.ContainingType is not INamedTypeSymbol containingType || containingType.TypeKind != TypeKind.Interface || symbol.IsStatic)) { - StubWriter.Write("abstract "); + stubWriter.Write("abstract "); } } if (symbol.IsStatic && !(symbol is IFieldSymbol field && field.IsConst)) - StubWriter.Write("static "); + stubWriter.Write("static "); if (symbol.IsVirtual) - StubWriter.Write("virtual "); + stubWriter.Write("virtual "); if (symbol.IsOverride) - StubWriter.Write("override "); + stubWriter.Write("override "); if (symbol.IsSealed) { if (!(symbol is INamedTypeSymbol type && (type.TypeKind == TypeKind.Enum || type.TypeKind == TypeKind.Delegate || type.TypeKind == TypeKind.Struct))) - StubWriter.Write("sealed "); + stubWriter.Write("sealed "); } if (symbol.IsExtern) - StubWriter.Write("extern "); + stubWriter.Write("extern "); } private void StubTypedConstant(TypedConstant c) @@ -164,47 +154,47 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable case TypedConstantKind.Primitive: if (c.Value is string s) { - StubWriter.Write($"\"{s}\""); + stubWriter.Write($"\"{s}\""); } else if (c.Value is char ch) { - StubWriter.Write($"'{ch}'"); + stubWriter.Write($"'{ch}'"); } else if (c.Value is bool b) { - StubWriter.Write(b ? "true" : "false"); + stubWriter.Write(b ? "true" : "false"); } else if (c.Value is int i) { - StubWriter.Write(i); + stubWriter.Write(i); } else if (c.Value is long l) { - StubWriter.Write(l); + stubWriter.Write(l); } else if (c.Value is float f) { - StubWriter.Write(f); + stubWriter.Write(f); } else if (c.Value is double d) { - StubWriter.Write(d); + stubWriter.Write(d); } else { - StubWriter.Write("throw null"); + stubWriter.Write("throw null"); } break; case TypedConstantKind.Enum: - StubWriter.Write("throw null"); + stubWriter.Write("throw null"); break; case TypedConstantKind.Array: - StubWriter.Write("new []{"); + stubWriter.Write("new []{"); WriteCommaSep(c.Values, StubTypedConstant); - StubWriter.Write("}"); + stubWriter.Write("}"); break; default: - StubWriter.Write($"/* TODO: {c.Kind} */ throw null"); + stubWriter.Write($"/* TODO: {c.Kind} */ throw null"); break; } } @@ -224,14 +214,14 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (qualifiedName.EndsWith("Attribute")) qualifiedName = qualifiedName[..^9]; - StubWriter.Write($"[{prefix}{qualifiedName}"); + stubWriter.Write($"[{prefix}{qualifiedName}"); if (a.ConstructorArguments.Any()) { - StubWriter.Write("("); + stubWriter.Write("("); WriteCommaSep(a.ConstructorArguments, StubTypedConstant); - StubWriter.Write(")"); + stubWriter.Write(")"); } - StubWriter.WriteLine("]"); + stubWriter.WriteLine("]"); } public void StubAttributes(IEnumerable a, string prefix = "") @@ -247,22 +237,22 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable StubAttributes(symbol.GetAttributes()); StubModifiers(symbol, explicitInterfaceSymbol is not null); - StubWriter.Write("event "); - StubWriter.Write(symbol.Type.GetQualifiedName()); - StubWriter.Write(" "); + stubWriter.Write("event "); + stubWriter.Write(symbol.Type.GetQualifiedName()); + stubWriter.Write(" "); StubExplicitInterface(symbol, explicitInterfaceSymbol); if (explicitInterfaceSymbol is null) { - StubWriter.WriteLine(";"); + stubWriter.WriteLine(";"); } else { - StubWriter.Write(" { "); - StubWriter.Write("add {} "); - StubWriter.Write("remove {} "); - StubWriter.WriteLine("}"); + stubWriter.Write(" { "); + stubWriter.Write("add {} "); + stubWriter.Write("remove {} "); + stubWriter.WriteLine("}"); } } @@ -316,19 +306,19 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable StubModifiers(symbol); if (symbol.IsConst) - StubWriter.Write("const "); + stubWriter.Write("const "); if (IsUnsafe(symbol.Type)) { - StubWriter.Write("unsafe "); + stubWriter.Write("unsafe "); } - StubWriter.Write(symbol.Type.GetQualifiedName()); - StubWriter.Write(" "); - StubWriter.Write(EscapeIdentifier(symbol.Name)); + stubWriter.Write(symbol.Type.GetQualifiedName()); + stubWriter.Write(" "); + stubWriter.Write(EscapeIdentifier(symbol.Name)); if (symbol.IsConst) - StubWriter.Write(" = default"); - StubWriter.WriteLine(";"); + stubWriter.Write(" = default"); + stubWriter.WriteLine(";"); } private void WriteCommaSep(IEnumerable items, Action writeItem) @@ -338,7 +328,7 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable { if (!first) { - StubWriter.Write(", "); + stubWriter.Write(", "); } writeItem(item); first = false; @@ -347,7 +337,7 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable private void WriteStringCommaSep(IEnumerable items, Func writeItem) { - WriteCommaSep(items, item => StubWriter.Write(writeItem(item))); + WriteCommaSep(items, item => stubWriter.Write(writeItem(item))); } private void StubTypeParameters(IEnumerable typeParameters) @@ -355,9 +345,9 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (!typeParameters.Any()) return; - StubWriter.Write('<'); + stubWriter.Write('<'); WriteStringCommaSep(typeParameters, typeParameter => typeParameter.Name); - StubWriter.Write('>'); + stubWriter.Write('>'); } private void StubTypeParameterConstraints(IEnumerable typeParameters) @@ -377,11 +367,11 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable { if (firstTypeParameterConstraint) { - StubWriter.Write($" where {typeParameter.Name} : "); + stubWriter.Write($" where {typeParameter.Name} : "); } else { - StubWriter.Write(", "); + stubWriter.Write(", "); } a(); firstTypeParameterConstraint = false; @@ -389,14 +379,14 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (typeParameter.HasReferenceTypeConstraint) { - WriteTypeParameterConstraint(() => StubWriter.Write("class")); + WriteTypeParameterConstraint(() => stubWriter.Write("class")); } if (typeParameter.HasValueTypeConstraint && !typeParameter.HasUnmanagedTypeConstraint && !typeParameter.ConstraintTypes.Any(t => t.GetQualifiedName() is "System.Enum")) { - WriteTypeParameterConstraint(() => StubWriter.Write("struct")); + WriteTypeParameterConstraint(() => stubWriter.Write("struct")); } if (inheritsConstraints) @@ -404,7 +394,7 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (typeParameter.HasUnmanagedTypeConstraint) { - WriteTypeParameterConstraint(() => StubWriter.Write("unmanaged")); + WriteTypeParameterConstraint(() => stubWriter.Write("unmanaged")); } var constraintTypes = typeParameter.ConstraintTypes.Select(t => t.GetQualifiedName()).Where(s => s is not "").ToArray(); @@ -418,7 +408,7 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (typeParameter.HasConstructorConstraint) { - WriteTypeParameterConstraint(() => StubWriter.Write("new()")); + WriteTypeParameterConstraint(() => stubWriter.Write("new()")); } } } @@ -478,30 +468,30 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable case RefKind.None: break; case RefKind.Ref: - StubWriter.Write("ref "); + stubWriter.Write("ref "); break; case RefKind.Out: - StubWriter.Write("out "); + stubWriter.Write("out "); break; case RefKind.In: - StubWriter.Write("in "); + stubWriter.Write("in "); break; default: - StubWriter.Write($"/* TODO: {parameter.RefKind} */"); + stubWriter.Write($"/* TODO: {parameter.RefKind} */"); break; } if (parameter.IsParams) - StubWriter.Write("params "); + stubWriter.Write("params "); - StubWriter.Write(parameter.Type.GetQualifiedName()); - StubWriter.Write(" "); - StubWriter.Write(EscapeIdentifier(parameter.Name)); + stubWriter.Write(parameter.Type.GetQualifiedName()); + stubWriter.Write(" "); + stubWriter.Write(EscapeIdentifier(parameter.Name)); if (parameter.HasExplicitDefaultValue) { - StubWriter.Write(" = "); - StubWriter.Write($"default({parameter.Type.GetQualifiedName()})"); + stubWriter.Write(" = "); + stubWriter.Write($"default({parameter.Type.GetQualifiedName()})"); } }); } @@ -526,88 +516,88 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (IsUnsafe(symbol.ReturnType) || symbol.Parameters.Any(p => IsUnsafe(p.Type))) { - StubWriter.Write("unsafe "); + stubWriter.Write("unsafe "); } if (methodKind == MethodKind.Constructor) { - StubWriter.Write(symbol.ContainingType.Name); + stubWriter.Write(symbol.ContainingType.Name); } else if (methodKind == MethodKind.Conversion) { if (!symbol.TryGetOperatorSymbol(out var operatorName)) { - StubWriter.WriteLine($"/* TODO: {symbol.Name} */"); + stubWriter.WriteLine($"/* TODO: {symbol.Name} */"); return; } switch (operatorName) { case "explicit conversion": - StubWriter.Write("explicit operator "); + stubWriter.Write("explicit operator "); break; case "checked explicit conversion": - StubWriter.Write("explicit operator checked "); + stubWriter.Write("explicit operator checked "); break; case "implicit conversion": - StubWriter.Write("implicit operator "); + stubWriter.Write("implicit operator "); break; case "checked implicit conversion": - StubWriter.Write("implicit operator checked "); + stubWriter.Write("implicit operator checked "); break; default: - StubWriter.Write($"/* TODO: {symbol.Name} */"); + stubWriter.Write($"/* TODO: {symbol.Name} */"); break; } - StubWriter.Write(symbol.ReturnType.GetQualifiedName()); + stubWriter.Write(symbol.ReturnType.GetQualifiedName()); } else if (methodKind == MethodKind.UserDefinedOperator) { if (!symbol.TryGetOperatorSymbol(out var operatorName)) { - StubWriter.WriteLine($"/* TODO: {symbol.Name} */"); + stubWriter.WriteLine($"/* TODO: {symbol.Name} */"); return; } - StubWriter.Write(symbol.ReturnType.GetQualifiedName()); - StubWriter.Write(" "); + stubWriter.Write(symbol.ReturnType.GetQualifiedName()); + stubWriter.Write(" "); StubExplicitInterface(symbol, explicitInterfaceSymbol, writeName: false); - StubWriter.Write("operator "); - StubWriter.Write(operatorName); + stubWriter.Write("operator "); + stubWriter.Write(operatorName); } else { - StubWriter.Write(symbol.ReturnType.GetQualifiedName()); - StubWriter.Write(" "); + stubWriter.Write(symbol.ReturnType.GetQualifiedName()); + stubWriter.Write(" "); StubExplicitInterface(symbol, explicitInterfaceSymbol); StubTypeParameters(symbol.TypeParameters); } - StubWriter.Write("("); + stubWriter.Write("("); if (symbol.IsExtensionMethod) { - StubWriter.Write("this "); + stubWriter.Write("this "); } StubParameters(symbol.Parameters); - StubWriter.Write(")"); + stubWriter.Write(")"); if (baseCtor is not null) { - StubWriter.Write(" : base("); + stubWriter.Write(" : base("); WriteStringCommaSep(baseCtor.Parameters, parameter => $"default({parameter.Type.GetQualifiedName()})"); - StubWriter.Write(")"); + stubWriter.Write(")"); } StubTypeParameterConstraints(symbol.TypeParameters); if (symbol.IsAbstract) - StubWriter.WriteLine(";"); + stubWriter.WriteLine(";"); else - StubWriter.WriteLine(" => throw null;"); + stubWriter.WriteLine(" => throw null;"); } public override void VisitMethod(IMethodSymbol symbol) @@ -641,7 +631,7 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable public override void VisitNamedType(INamedTypeSymbol symbol) { - if (!IsRelevantNamedType(symbol)) + if (!relevantSymbol.IsRelevantNamedType(symbol)) { return; } @@ -654,18 +644,18 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (IsUnsafe(invokeMethod.ReturnType) || invokeMethod.Parameters.Any(p => IsUnsafe(p.Type))) { - StubWriter.Write("unsafe "); + stubWriter.Write("unsafe "); } - StubWriter.Write("delegate "); - StubWriter.Write(invokeMethod.ReturnType.GetQualifiedName()); - StubWriter.Write($" {symbol.Name}"); + stubWriter.Write("delegate "); + stubWriter.Write(invokeMethod.ReturnType.GetQualifiedName()); + stubWriter.Write($" {symbol.Name}"); StubTypeParameters(symbol.TypeParameters); - StubWriter.Write("("); + stubWriter.Write("("); StubParameters(invokeMethod.Parameters); - StubWriter.Write(")"); + stubWriter.Write(")"); StubTypeParameterConstraints(symbol.TypeParameters); - StubWriter.WriteLine(";"); + stubWriter.WriteLine(";"); return; } @@ -677,29 +667,29 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable // certain classes, such as `Microsoft.Extensions.Logging.LoggingBuilderExtensions` // exist in multiple assemblies, so make them partial if (symbol.IsStatic && symbol.Name.EndsWith("Extensions")) - StubWriter.Write("partial "); - StubWriter.Write("class "); + stubWriter.Write("partial "); + stubWriter.Write("class "); break; case TypeKind.Enum: StubAttributes(symbol.GetAttributes()); StubModifiers(symbol); - StubWriter.Write("enum "); + stubWriter.Write("enum "); break; case TypeKind.Interface: StubAttributes(symbol.GetAttributes()); StubModifiers(symbol); - StubWriter.Write("interface "); + stubWriter.Write("interface "); break; case TypeKind.Struct: StubAttributes(symbol.GetAttributes()); StubModifiers(symbol); - StubWriter.Write("struct "); + stubWriter.Write("struct "); break; default: return; } - StubWriter.Write(symbol.Name); + stubWriter.Write(symbol.Name); StubTypeParameters(symbol.TypeParameters); @@ -707,8 +697,8 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable { if (symbol.EnumUnderlyingType is INamedTypeSymbol enumBase && enumBase.SpecialType != SpecialType.System_Int32) { - StubWriter.Write(" : "); - StubWriter.Write(enumBase.GetQualifiedName()); + stubWriter.Write(" : "); + stubWriter.Write(enumBase.GetQualifiedName()); } } else @@ -721,23 +711,23 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (bases.Any()) { - StubWriter.Write(" : "); + stubWriter.Write(" : "); WriteStringCommaSep(bases, b => b.GetQualifiedName()); } } StubTypeParameterConstraints(symbol.TypeParameters); - StubWriter.WriteLine(" {"); + stubWriter.WriteLine(" {"); if (symbol.TypeKind == TypeKind.Enum) { foreach (var field in symbol.GetMembers().OfType().Where(field => field.ConstantValue is not null)) { - StubWriter.Write(field.Name); - StubWriter.Write(" = "); - StubWriter.Write(field.ConstantValue); - StubWriter.WriteLine(","); + stubWriter.Write(field.Name); + stubWriter.Write(" = "); + stubWriter.Write(field.ConstantValue); + stubWriter.WriteLine(","); } } else @@ -751,18 +741,18 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (!seenCtor && GetBaseConstructor(symbol) is IMethodSymbol baseCtor) { - StubWriter.Write($"internal {symbol.Name}() : base("); + stubWriter.Write($"internal {symbol.Name}() : base("); WriteStringCommaSep(baseCtor.Parameters, parameter => $"default({parameter.Type.GetQualifiedName()})"); - StubWriter.WriteLine(") {}"); + stubWriter.WriteLine(") {}"); } } - StubWriter.WriteLine("}"); + stubWriter.WriteLine("}"); } public override void VisitNamespace(INamespaceSymbol symbol) { - if (!IsRelevantNamespace(symbol)) + if (!relevantSymbol.IsRelevantNamespace(symbol)) { return; } @@ -770,7 +760,7 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable var isGlobal = symbol.IsGlobalNamespace; if (!isGlobal) - StubWriter.WriteLine($"namespace {symbol.Name} {{"); + stubWriter.WriteLine($"namespace {symbol.Name} {{"); foreach (var childSymbol in symbol.GetMembers().OrderBy(m => m.GetName())) { @@ -778,7 +768,7 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable } if (!isGlobal) - StubWriter.WriteLine("}"); + stubWriter.WriteLine("}"); } private void StubProperty(IPropertySymbol symbol, IPropertySymbol? explicitInterfaceSymbol) @@ -787,7 +777,7 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable { var name = symbol.GetName(useMetadataName: true); if (name is not "Item" && explicitInterfaceSymbol is null) - StubWriter.WriteLine($"[System.Runtime.CompilerServices.IndexerName(\"{name}\")]"); + stubWriter.WriteLine($"[System.Runtime.CompilerServices.IndexerName(\"{name}\")]"); } StubAttributes(symbol.GetAttributes()); @@ -795,30 +785,30 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (IsUnsafe(symbol.Type) || symbol.Parameters.Any(p => IsUnsafe(p.Type))) { - StubWriter.Write("unsafe "); + stubWriter.Write("unsafe "); } - StubWriter.Write(symbol.Type.GetQualifiedName()); - StubWriter.Write(" "); + stubWriter.Write(symbol.Type.GetQualifiedName()); + stubWriter.Write(" "); if (symbol.Parameters.Any()) { StubExplicitInterface(symbol, explicitInterfaceSymbol, writeName: false); - StubWriter.Write("this["); + stubWriter.Write("this["); StubParameters(symbol.Parameters); - StubWriter.Write("]"); + stubWriter.Write("]"); } else { StubExplicitInterface(symbol, explicitInterfaceSymbol); } - StubWriter.Write(" { "); + stubWriter.Write(" { "); if (symbol.GetMethod is not null) - StubWriter.Write(symbol.IsAbstract ? "get; " : "get => throw null; "); + stubWriter.Write(symbol.IsAbstract ? "get; " : "get => throw null; "); if (symbol.SetMethod is not null) - StubWriter.Write(symbol.IsAbstract ? "set; " : "set {} "); - StubWriter.WriteLine("}"); + stubWriter.Write(symbol.IsAbstract ? "set; " : "set {} "); + stubWriter.WriteLine("}"); } public override void VisitProperty(IPropertySymbol symbol) @@ -836,9 +826,4 @@ internal sealed class StubVisitor : SymbolVisitor, IDisposable if (explicitInterfaceImplementations.Length == 0) StubProperty(symbol, null); } - - public void Dispose() - { - StubWriter.Dispose(); - } } \ No newline at end of file diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.Internal.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Json.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.AppContext.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Buffers.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.DataAnnotations.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Configuration.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Core.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.DataSetExtensions.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Debug.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.Tools.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Dynamic.Runtime.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Calendars.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.Extensions.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Globalization.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Compression.FileSystem.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.Primitives.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.UnmanagedMemoryStream.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Numerics.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Extensions.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.Reader.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Resources.ResourceManager.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.CompilerServices.Unsafe.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Extensions.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Handles.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.RuntimeInformation.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Serialization.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Algorithms.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Csp.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Encoding.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Primitives.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.X509Certificates.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.SecureString.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceModel.Web.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ServiceProcess.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Extensions.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Timer.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ValueTuple.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Web.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Windows.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Linq.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.Serialization.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XmlDocument.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/WindowsBase.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/mscorlib.cs deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/netstandard.cs deleted file mode 100644 index e69de29bb2d..00000000000 From d4ff9c8ed104ee92674fd3a375b6d22e65cb6619 Mon Sep 17 00:00:00 2001 From: Max Schaefer Date: Fri, 22 Sep 2023 10:09:03 +0100 Subject: [PATCH 612/788] Add test for locations of regexp terms. --- .../regexparser/Locations.expected | 20 ++++ .../library-tests/regexparser/Locations.ql | 7 ++ .../library-tests/regexparser/locations.py | 92 +++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 python/ql/test/library-tests/regexparser/Locations.expected create mode 100644 python/ql/test/library-tests/regexparser/Locations.ql create mode 100644 python/ql/test/library-tests/regexparser/locations.py diff --git a/python/ql/test/library-tests/regexparser/Locations.expected b/python/ql/test/library-tests/regexparser/Locations.expected new file mode 100644 index 00000000000..c91ef92c75d --- /dev/null +++ b/python/ql/test/library-tests/regexparser/Locations.expected @@ -0,0 +1,20 @@ +| locations.py | 14 | 5 | +| locations.py | 19 | 5 | +| locations.py | 24 | 5 | +| locations.py | 29 | 5 | +| locations.py | 34 | 5 | +| locations.py | 39 | 5 | +| locations.py | 44 | 5 | +| locations.py | 49 | 5 | +| locations.py | 54 | 5 | +| locations.py | 54 | 26 | +| locations.py | 59 | 5 | +| locations.py | 59 | 26 | +| locations.py | 65 | 5 | +| locations.py | 65 | 26 | +| locations.py | 72 | 6 | +| locations.py | 72 | 27 | +| locations.py | 80 | 6 | +| locations.py | 85 | 7 | +| locations.py | 90 | 5 | +| locations.py | 90 | 26 | diff --git a/python/ql/test/library-tests/regexparser/Locations.ql b/python/ql/test/library-tests/regexparser/Locations.ql new file mode 100644 index 00000000000..79956e487e9 --- /dev/null +++ b/python/ql/test/library-tests/regexparser/Locations.ql @@ -0,0 +1,7 @@ +import semmle.python.regexp.RegexTreeView::RegexTreeView + +from RegExpTerm t, string file, int line, int column +where + t.toString() = "[this]" and + t.hasLocationInfo(file, line, column, _, _) +select file, line, column diff --git a/python/ql/test/library-tests/regexparser/locations.py b/python/ql/test/library-tests/regexparser/locations.py new file mode 100644 index 00000000000..e8429a8603e --- /dev/null +++ b/python/ql/test/library-tests/regexparser/locations.py @@ -0,0 +1,92 @@ +import re + +# This file contains tests for the regexp parser's location tracking. + +# To keep the expected results manageable, we only test the locations of the +# regexp term `[this]`, appearing in various kinds of regexps. +# +# To make the location information easier to understand, we generally put each +# regexp on its own line, even though this is not the way one would normally +# write regexps in Python. + +# plain string +re.compile( +'[this] is a test' +) + +# raw string +re.compile( +r'[this] is a test' +) + +# byte string +re.compile( +b'[this] is a test' +) + +# byte raw string +re.compile( +br'[this] is a test' +) + +# multiline string +re.compile( +'''[this] is a test''' +) + +# multiline raw string +re.compile( +r'''[this] is a test''' +) + +# multiline byte string +re.compile( +b'''[this] is a test''' +) + +# multiline byte raw string +re.compile( +br'''[this] is a test''' +) + +# plain string with multiple parts +re.compile( +'[this] is a test' ' and [this] is another test' +) + +# plain string with multiple parts across lines +re.compile( +'[this] is a test' +' and [this] is another test' +) + +# plain string with multiple parts across lines and comments +re.compile( +'[this] is a test' +# comment +' and [this] is another test' +) + +# actual multiline string +re.compile( +r''' +[this] is a test +and [this] is another test +''' +) + +# plain string with escape sequences +re.compile( +'\t[this] is a test' +) + +# raw string with escape sequences +re.compile( +r'\A[this] is a test' +) + +# plain string with escaped newline +re.compile( +'[this] is a test\ + and [this] is another test' +) \ No newline at end of file From 6f6705585273b70c7b75711146e4f51a3eb6b919 Mon Sep 17 00:00:00 2001 From: Max Schaefer Date: Fri, 22 Sep 2023 10:22:12 +0100 Subject: [PATCH 613/788] Correctly account for length of string literal prefix when computing locations for RegExpTerms. --- .../change-notes/2023-09-22-regex-prefix.md | 4 +++ .../semmle/python/regexp/RegexTreeView.qll | 7 ++-- .../python/regexp/internal/ParseRegExp.qll | 13 +++++++- .../regexparser/Locations.expected | 32 +++++++++---------- .../library-tests/regexparser/locations.py | 16 +++++----- 5 files changed, 44 insertions(+), 28 deletions(-) create mode 100644 python/ql/lib/change-notes/2023-09-22-regex-prefix.md diff --git a/python/ql/lib/change-notes/2023-09-22-regex-prefix.md b/python/ql/lib/change-notes/2023-09-22-regex-prefix.md new file mode 100644 index 00000000000..20affaaab4e --- /dev/null +++ b/python/ql/lib/change-notes/2023-09-22-regex-prefix.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Subterms of regular expressions encoded as single-line string literals now have better source-location information. \ No newline at end of file diff --git a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll index 49db4470343..86aad44fc93 100644 --- a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll +++ b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll @@ -227,10 +227,11 @@ module Impl implements RegexTreeViewSig { predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { - exists(int re_start | + exists(int re_start, int prefix_len | prefix_len = re.getPrefix().length() | re.getLocation().hasLocationInfo(filepath, startline, re_start, endline, _) and - startcolumn = re_start + start + 4 and - endcolumn = re_start + end + 3 + startcolumn = re_start + start + prefix_len and + endcolumn = re_start + end + prefix_len - 1 + /* inclusive vs exclusive */ ) } diff --git a/python/ql/lib/semmle/python/regexp/internal/ParseRegExp.qll b/python/ql/lib/semmle/python/regexp/internal/ParseRegExp.qll index 81eff018aff..90a976824ac 100644 --- a/python/ql/lib/semmle/python/regexp/internal/ParseRegExp.qll +++ b/python/ql/lib/semmle/python/regexp/internal/ParseRegExp.qll @@ -101,7 +101,7 @@ private module FindRegexMode { } /** - * DEPRECATED: Use `Regex` instead. + * DEPRECATED: Use `RegExp` instead. */ deprecated class Regex = RegExp; @@ -327,6 +327,17 @@ class RegExp extends Expr instanceof StrConst { /** Gets the text of this regex */ string getText() { result = super.getText() } + /** + * Gets the prefix of this regex + * + * Examples: + * + * - The prefix of `'x*y'` is `'`. + * - The prefix of `r''` is `r'`. + * - The prefix of `r"""x*y"""` is `r"""`. + */ + string getPrefix() { result = super.getPrefix() } + /** Gets the `i`th character of this regex */ string getChar(int i) { result = this.getText().charAt(i) } diff --git a/python/ql/test/library-tests/regexparser/Locations.expected b/python/ql/test/library-tests/regexparser/Locations.expected index c91ef92c75d..3b07d5d758c 100644 --- a/python/ql/test/library-tests/regexparser/Locations.expected +++ b/python/ql/test/library-tests/regexparser/Locations.expected @@ -1,20 +1,20 @@ -| locations.py | 14 | 5 | -| locations.py | 19 | 5 | -| locations.py | 24 | 5 | -| locations.py | 29 | 5 | -| locations.py | 34 | 5 | +| locations.py | 14 | 2 | +| locations.py | 19 | 3 | +| locations.py | 24 | 3 | +| locations.py | 29 | 4 | +| locations.py | 34 | 4 | | locations.py | 39 | 5 | | locations.py | 44 | 5 | -| locations.py | 49 | 5 | -| locations.py | 54 | 5 | -| locations.py | 54 | 26 | -| locations.py | 59 | 5 | -| locations.py | 59 | 26 | -| locations.py | 65 | 5 | -| locations.py | 65 | 26 | +| locations.py | 49 | 6 | +| locations.py | 54 | 2 | +| locations.py | 54 | 23 | +| locations.py | 59 | 2 | +| locations.py | 59 | 23 | +| locations.py | 65 | 2 | +| locations.py | 65 | 23 | | locations.py | 72 | 6 | | locations.py | 72 | 27 | -| locations.py | 80 | 6 | -| locations.py | 85 | 7 | -| locations.py | 90 | 5 | -| locations.py | 90 | 26 | +| locations.py | 80 | 3 | +| locations.py | 85 | 5 | +| locations.py | 90 | 2 | +| locations.py | 90 | 23 | diff --git a/python/ql/test/library-tests/regexparser/locations.py b/python/ql/test/library-tests/regexparser/locations.py index e8429a8603e..bbfb6b2840f 100644 --- a/python/ql/test/library-tests/regexparser/locations.py +++ b/python/ql/test/library-tests/regexparser/locations.py @@ -6,8 +6,8 @@ import re # regexp term `[this]`, appearing in various kinds of regexps. # # To make the location information easier to understand, we generally put each -# regexp on its own line, even though this is not the way one would normally -# write regexps in Python. +# regexp on its own line, even though this is not idiomatic Python. +# Comments indicate cases we currently do not handle correctly. # plain string re.compile( @@ -49,25 +49,25 @@ re.compile( br'''[this] is a test''' ) -# plain string with multiple parts +# plain string with multiple parts (second [this] gets wrong column: 23 instead of 26) re.compile( '[this] is a test' ' and [this] is another test' ) -# plain string with multiple parts across lines +# plain string with multiple parts across lines (second [this] gets wrong location: 59:23 instead of 60:7) re.compile( '[this] is a test' ' and [this] is another test' ) -# plain string with multiple parts across lines and comments +# plain string with multiple parts across lines and comments (second [this] gets wrong location: 65:23 instead of 67:7) re.compile( '[this] is a test' # comment ' and [this] is another test' ) -# actual multiline string +# actual multiline string (both [this]s get wrong location: 72:6 and 72:27 instead of 73:1 and 74:5) re.compile( r''' [this] is a test @@ -75,7 +75,7 @@ and [this] is another test ''' ) -# plain string with escape sequences +# plain string with escape sequences ([this] gets wrong location: 80:3 instead of 80:4) re.compile( '\t[this] is a test' ) @@ -85,7 +85,7 @@ re.compile( r'\A[this] is a test' ) -# plain string with escaped newline +# plain string with escaped newline (second [this] gets wrong location: 90:23 instead of 91:6) re.compile( '[this] is a test\ and [this] is another test' From dfec1620eac07e9895b08c638ed87a685e5e6534 Mon Sep 17 00:00:00 2001 From: Max Schaefer Date: Fri, 22 Sep 2023 11:03:39 +0100 Subject: [PATCH 614/788] Update expected test output. --- .../IncompleteHostnameRegExp.expected | 2 +- .../OverlyLargeRangeQuery.expected | 20 ++++++------ .../PolynomialBackTracking.expected | 10 +++--- .../PolynomialReDoS.expected | 10 +++--- .../Security/CWE-730-ReDoS/ReDoS.expected | 32 +++++++++---------- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/python/ql/test/query-tests/Security/CWE-020-IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected b/python/ql/test/query-tests/Security/CWE-020-IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected index 6a3c6769c35..62633237f46 100644 --- a/python/ql/test/query-tests/Security/CWE-020-IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected +++ b/python/ql/test/query-tests/Security/CWE-020-IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected @@ -1 +1 @@ -| hosttest.py:6:31:6:53 | (www\|beta).example.com/ | This regular expression has an unescaped '.' before 'example.com/', so it might match more hosts than expected. | hosttest.py:6:27:6:51 | ControlFlowNode for Str | here | +| hosttest.py:6:28:6:50 | (www\|beta).example.com/ | This regular expression has an unescaped '.' before 'example.com/', so it might match more hosts than expected. | hosttest.py:6:27:6:51 | ControlFlowNode for Str | here | diff --git a/python/ql/test/query-tests/Security/CWE-020-SuspiciousRegexpRange/OverlyLargeRangeQuery.expected b/python/ql/test/query-tests/Security/CWE-020-SuspiciousRegexpRange/OverlyLargeRangeQuery.expected index f614f9214fc..bc017c35e80 100644 --- a/python/ql/test/query-tests/Security/CWE-020-SuspiciousRegexpRange/OverlyLargeRangeQuery.expected +++ b/python/ql/test/query-tests/Security/CWE-020-SuspiciousRegexpRange/OverlyLargeRangeQuery.expected @@ -1,10 +1,10 @@ -| test.py:3:29:3:31 | 0-9 | Suspicious character range that overlaps with 3-5 in the same character class. | -| test.py:5:31:5:33 | A-z | Suspicious character range that overlaps with A-Z in the same character class, and is equivalent to [A-Z\\[\\\\\\]^_`a-z]. | -| test.py:7:28:7:30 | z-a | Suspicious character range that is empty. | -| test.py:17:38:17:40 | A-f | Suspicious character range that overlaps with a-f in the same character class, and is equivalent to [A-Z\\[\\\\\\]^_`a-f]. | -| test.py:19:30:19:32 | $-` | Suspicious character range that is equivalent to [$%&'()*+,\\-.\\/0-9:;<=>?@A-Z\\[\\\\\\]^_`]. | -| test.py:21:43:21:45 | +-< | Suspicious character range that is equivalent to [+,\\-.\\/0-9:;<]. | -| test.py:23:47:23:49 | .-_ | Suspicious character range that overlaps with 1-9 in the same character class, and is equivalent to [.\\/0-9:;<=>?@A-Z\\[\\\\\\]^_]. | -| test.py:25:34:25:36 | 7-F | Suspicious character range that is equivalent to [7-9:;<=>?@A-F]. | -| test.py:27:38:27:40 | 0-9 | Suspicious character range that overlaps with \\d in the same character class. | -| test.py:29:41:29:43 | .-? | Suspicious character range that overlaps with \\w in the same character class, and is equivalent to [.\\/0-9:;<=>?]. | +| test.py:3:27:3:29 | 0-9 | Suspicious character range that overlaps with 3-5 in the same character class. | +| test.py:5:29:5:31 | A-z | Suspicious character range that overlaps with A-Z in the same character class, and is equivalent to [A-Z\\[\\\\\\]^_`a-z]. | +| test.py:7:26:7:28 | z-a | Suspicious character range that is empty. | +| test.py:17:36:17:38 | A-f | Suspicious character range that overlaps with a-f in the same character class, and is equivalent to [A-Z\\[\\\\\\]^_`a-f]. | +| test.py:19:28:19:30 | $-` | Suspicious character range that is equivalent to [$%&'()*+,\\-.\\/0-9:;<=>?@A-Z\\[\\\\\\]^_`]. | +| test.py:21:41:21:43 | +-< | Suspicious character range that is equivalent to [+,\\-.\\/0-9:;<]. | +| test.py:23:45:23:47 | .-_ | Suspicious character range that overlaps with 1-9 in the same character class, and is equivalent to [.\\/0-9:;<=>?@A-Z\\[\\\\\\]^_]. | +| test.py:25:32:25:34 | 7-F | Suspicious character range that is equivalent to [7-9:;<=>?@A-F]. | +| test.py:27:36:27:38 | 0-9 | Suspicious character range that overlaps with \\d in the same character class. | +| test.py:29:39:29:41 | .-? | Suspicious character range that overlaps with \\w in the same character class, and is equivalent to [.\\/0-9:;<=>?]. | diff --git a/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialBackTracking.expected b/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialBackTracking.expected index 1aa6d91f343..5dc8412ba84 100644 --- a/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialBackTracking.expected +++ b/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialBackTracking.expected @@ -1,5 +1,5 @@ -| test.py:8:12:8:23 | Str | test.py:8:21:8:23 | \\s+ | Strings with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\s+$ | -| test.py:9:14:9:29 | Str | test.py:9:27:9:29 | \\d+ | Strings starting with '0.9' and with many repetitions of '99' can start matching anywhere after the start of the preceeding \\d+ | -| test.py:11:22:11:33 | Str | test.py:11:31:11:33 | \\s+ | Strings with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\s+$ | -| test.py:18:14:18:25 | Str | test.py:18:23:18:25 | \\s+ | Strings with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\s+$ | -| test.py:20:23:20:274 | Str | test.py:20:273:20:274 | .* | Strings starting with 'AAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC' and with many repetitions of 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC' can start matching anywhere after the start of the preceeding (AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)C.*Y | +| test.py:8:12:8:23 | Str | test.py:8:19:8:21 | \\s+ | Strings with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\s+$ | +| test.py:9:14:9:29 | Str | test.py:9:25:9:27 | \\d+ | Strings starting with '0.9' and with many repetitions of '99' can start matching anywhere after the start of the preceeding \\d+ | +| test.py:11:22:11:33 | Str | test.py:11:29:11:31 | \\s+ | Strings with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\s+$ | +| test.py:18:14:18:25 | Str | test.py:18:21:18:23 | \\s+ | Strings with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\s+$ | +| test.py:20:23:20:274 | Str | test.py:20:271:20:272 | .* | Strings starting with 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC' and with many repetitions of 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC' can start matching anywhere after the start of the preceeding (AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)(AA\|BB)C.*Y | diff --git a/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected b/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected index c5840c78cb2..4fccccf4f00 100644 --- a/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected +++ b/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected @@ -27,8 +27,8 @@ nodes | test.py:21:18:21:21 | ControlFlowNode for text | semmle.label | ControlFlowNode for text | subpaths #select -| test.py:8:30:8:33 | ControlFlowNode for text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:8:30:8:33 | ControlFlowNode for text | This $@ that depends on a $@ may run slow on strings with many repetitions of ' '. | test.py:8:21:8:23 | \\s+ | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | -| test.py:9:32:9:35 | ControlFlowNode for text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:9:32:9:35 | ControlFlowNode for text | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | test.py:9:27:9:29 | \\d+ | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | -| test.py:12:17:12:20 | ControlFlowNode for text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:12:17:12:20 | ControlFlowNode for text | This $@ that depends on a $@ may run slow on strings with many repetitions of ' '. | test.py:11:31:11:33 | \\s+ | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | -| test.py:16:24:16:30 | ControlFlowNode for my_text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:16:24:16:30 | ControlFlowNode for my_text | This $@ that depends on a $@ may run slow on strings with many repetitions of ' '. | test.py:18:23:18:25 | \\s+ | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | -| test.py:21:18:21:21 | ControlFlowNode for text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:21:18:21:21 | ControlFlowNode for text | This $@ that depends on a $@ may run slow on strings starting with 'AAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC' and with many repetitions of 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'. | test.py:20:273:20:274 | .* | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:8:30:8:33 | ControlFlowNode for text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:8:30:8:33 | ControlFlowNode for text | This $@ that depends on a $@ may run slow on strings with many repetitions of ' '. | test.py:8:19:8:21 | \\s+ | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:9:32:9:35 | ControlFlowNode for text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:9:32:9:35 | ControlFlowNode for text | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | test.py:9:25:9:27 | \\d+ | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:12:17:12:20 | ControlFlowNode for text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:12:17:12:20 | ControlFlowNode for text | This $@ that depends on a $@ may run slow on strings with many repetitions of ' '. | test.py:11:29:11:31 | \\s+ | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:16:24:16:30 | ControlFlowNode for my_text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:16:24:16:30 | ControlFlowNode for my_text | This $@ that depends on a $@ may run slow on strings with many repetitions of ' '. | test.py:18:21:18:23 | \\s+ | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:21:18:21:21 | ControlFlowNode for text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:21:18:21:21 | ControlFlowNode for text | This $@ that depends on a $@ may run slow on strings starting with 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC' and with many repetitions of 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'. | test.py:20:271:20:272 | .* | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-730-ReDoS/ReDoS.expected b/python/ql/test/query-tests/Security/CWE-730-ReDoS/ReDoS.expected index 24a2142ff4a..30d2a753f67 100644 --- a/python/ql/test/query-tests/Security/CWE-730-ReDoS/ReDoS.expected +++ b/python/ql/test/query-tests/Security/CWE-730-ReDoS/ReDoS.expected @@ -1,5 +1,5 @@ -| KnownCVEs.py:15:22:15:24 | \\d+ | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '0'. | -| KnownCVEs.py:30:24:31:25 | .* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of ','. | +| KnownCVEs.py:15:20:15:22 | \\d+ | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '0'. | +| KnownCVEs.py:30:21:31:22 | .* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of ','. | | KnownCVEs.py:35:18:35:81 | ([-/:,#%.'"\\s!\\w]\|\\w-\\w\|'[\\s\\w]+'\\s*\|"[\\s\\w]+"\|\\([\\d,%\\.\\s]+\\))* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '"\\t"'. | | redos.py:6:28:6:42 | (?:__\|[\\s\\S])+? | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '__'. | | redos.py:6:52:6:68 | (?:\\*\\*\|[\\s\\S])+? | This part of the regular expression may cause exponential backtracking on strings starting with '*' and containing many repetitions of '**'. | @@ -67,8 +67,8 @@ | redos.py:259:24:259:126 | (.thisisagoddamnlongstringforstresstestingthequery\|\\sthisisagoddamnlongstringforstresstestingthequery)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '\\tthisisagoddamnlongstringforstresstestingthequery'. | | redos.py:262:24:262:87 | (thisisagoddamnlongstringforstresstestingthequery\|this\\w+query)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'thisisagoddamnlongstringforstresstestingthequery'. | | redos.py:262:78:262:80 | \\w+ | This part of the regular expression may cause exponential backtracking on strings starting with 'this' and containing many repetitions of '0querythis'. | -| redos.py:268:28:268:39 | ([\ufffd\ufffd]\|[\ufffd\ufffd])* | This part of the regular expression may cause exponential backtracking on strings starting with 'foo' and containing many repetitions of '\\ufffd'. | -| redos.py:271:28:271:41 | ((\ufffd\|\ufffd)\|(\ufffd\|\ufffd))* | This part of the regular expression may cause exponential backtracking on strings starting with 'foo' and containing many repetitions of '\\ufffd'. | +| redos.py:268:27:268:38 | ([\ufffd\ufffd]\|[\ufffd\ufffd])* | This part of the regular expression may cause exponential backtracking on strings starting with 'foo' and containing many repetitions of '\\ufffd'. | +| redos.py:271:27:271:40 | ((\ufffd\|\ufffd)\|(\ufffd\|\ufffd))* | This part of the regular expression may cause exponential backtracking on strings starting with 'foo' and containing many repetitions of '\\ufffd'. | | redos.py:274:31:274:32 | b+ | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'b'. | | redos.py:277:48:277:50 | \\s* | This part of the regular expression may cause exponential backtracking on strings starting with '<0\\t0=' and containing many repetitions of '""\\t0='. | | redos.py:283:26:283:27 | a+ | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a'. | @@ -96,15 +96,15 @@ | redos.py:363:25:363:43 | ((?:a{0\|-)\|\\w\\{\\d)+ | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a{0'. | | redos.py:364:25:364:45 | ((?:a{0,\|-)\|\\w\\{\\d,)+ | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a{0,'. | | redos.py:365:25:365:48 | ((?:a{0,2\|-)\|\\w\\{\\d,\\d)+ | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of 'a{0,2'. | -| redos.py:371:25:371:35 | (\\u0061\|a)* | This part of the regular expression may cause exponential backtracking on strings starting with 'X' and containing many repetitions of 'a'. | -| redos.py:380:35:380:41 | [^"\\s]+ | This part of the regular expression may cause exponential backtracking on strings starting with '/' and containing many repetitions of '!'. | -| redos.py:381:35:381:41 | [^"\\s]+ | This part of the regular expression may cause exponential backtracking on strings starting with '/' and containing many repetitions of '!'. | -| redos.py:384:26:384:32 | (\\d\|0)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '0'. | -| redos.py:385:24:385:30 | (\\d\|0)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '0'. | -| redos.py:386:26:386:32 | (\\d\|0)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '0'. | -| redos.py:391:15:391:25 | (\\u0061\|a)* | This part of the regular expression may cause exponential backtracking on strings starting with 'X' and containing many repetitions of 'a'. | -| unittests.py:5:17:5:23 | (\u00c6\|\\\u00c6)+ | This part of the regular expression may cause exponential backtracking on strings starting with 'X' and containing many repetitions of '\\u00c6'. | -| unittests.py:9:16:9:24 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '\\n'. | -| unittests.py:11:20:11:28 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '\\n'. | -| unittests.py:12:21:12:29 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '\\n'. | -| unittests.py:13:22:13:30 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings starting with 'x' and containing many repetitions of '\\n'. | +| redos.py:371:23:371:33 | (\\u0061\|a)* | This part of the regular expression may cause exponential backtracking on strings starting with 'X' and containing many repetitions of 'a'. | +| redos.py:380:33:380:39 | [^"\\s]+ | This part of the regular expression may cause exponential backtracking on strings starting with '/' and containing many repetitions of '!'. | +| redos.py:381:33:381:39 | [^"\\s]+ | This part of the regular expression may cause exponential backtracking on strings starting with '/' and containing many repetitions of '!'. | +| redos.py:384:24:384:30 | (\\d\|0)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '0'. | +| redos.py:385:22:385:28 | (\\d\|0)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '0'. | +| redos.py:386:24:386:30 | (\\d\|0)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '0'. | +| redos.py:391:13:391:23 | (\\u0061\|a)* | This part of the regular expression may cause exponential backtracking on strings starting with 'X' and containing many repetitions of 'a'. | +| unittests.py:5:15:5:21 | (\u00c6\|\\\u00c6)+ | This part of the regular expression may cause exponential backtracking on strings starting with 'X' and containing many repetitions of '\\u00c6'. | +| unittests.py:9:14:9:22 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '\\n'. | +| unittests.py:11:18:11:26 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '\\n'. | +| unittests.py:12:19:12:27 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '\\n'. | +| unittests.py:13:20:13:28 | (?:.\|\\n)* | This part of the regular expression may cause exponential backtracking on strings starting with 'x' and containing many repetitions of '\\n'. | From 8ee1f8ae6992cd004cbb9bc0a2fabc39ae14b08e Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 22 Sep 2023 13:33:45 +0200 Subject: [PATCH 615/788] Java: Add missing flow step for ThreadLocal.initialValue. --- .../semmle/code/java/dataflow/FlowSteps.qll | 1 + .../code/java/frameworks/ThreadLocal.qll | 40 +++++++++++++++++++ .../CWE-611/DocumentBuilderTests.java | 2 +- 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll index b969400c0c5..2021dcc2bef 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll @@ -23,6 +23,7 @@ private module Frameworks { private import semmle.code.java.frameworks.InputStream private import semmle.code.java.frameworks.Properties private import semmle.code.java.frameworks.Protobuf + private import semmle.code.java.frameworks.ThreadLocal private import semmle.code.java.frameworks.ratpack.RatpackExec private import semmle.code.java.frameworks.stapler.Stapler } diff --git a/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll b/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll new file mode 100644 index 00000000000..4daf9eb84a6 --- /dev/null +++ b/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll @@ -0,0 +1,40 @@ +import java +private import semmle.code.java.dataflow.DataFlow +private import semmle.code.java.dataflow.FlowSteps + +/** + * Holds if `cie` construct a `ThreadLocal` object with an overridden + * `initialValue` method with a return value of `init`, such that `init` is the + * initial value of the `ThreadLocal` object. + */ +private predicate threadLocalInitialValue(ClassInstanceExpr cie, Method initialValue, Expr init) { + exists(RefType t, ReturnStmt ret | + cie.getConstructedType().getSourceDeclaration() = t and + t.getASourceSupertype+().hasQualifiedName("java.lang", "ThreadLocal") and + ret.getResult() = init and + ret.getEnclosingCallable() = initialValue and + initialValue.hasName("initialValue") and + initialValue.getDeclaringType() = t + ) +} + +private class ThreadLocalInitialValueStore extends AdditionalStoreStep { + override predicate step(DataFlow::Node node1, DataFlow::Content c, DataFlow::Node node2) { + exists(Method initialValue, Expr init | + threadLocalInitialValue(_, initialValue, init) and + node1.asExpr() = init and + node2.(DataFlow::InstanceParameterNode).getCallable() = initialValue and + c.(DataFlow::SyntheticFieldContent).getField() = "java.lang.ThreadLocal.value" + ) + } +} + +private class ThreadLocalInitialValueStep extends AdditionalValueStep { + override predicate step(DataFlow::Node node1, DataFlow::Node node2) { + exists(ClassInstanceExpr cie, Method initialValue | + threadLocalInitialValue(cie, initialValue, _) and + node1.(DataFlow::InstanceParameterNode).getCallable() = initialValue and + node2.asExpr() = cie + ) + } +} diff --git a/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java b/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java index 5761bb53136..98d95686301 100644 --- a/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java +++ b/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java @@ -129,7 +129,7 @@ class DocumentBuilderTests { public void disableExternalEntities2(Socket sock) throws Exception { DocumentBuilder builder = XML_DOCUMENT_BUILDER.get(); - builder.parse(sock.getInputStream()); // $ SPURIOUS: hasTaintFlow + builder.parse(sock.getInputStream()); // safe } } From b11194e5619a232b4e7c66ce8fdb1f55792b470d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 22 Sep 2023 13:46:08 +0200 Subject: [PATCH 616/788] Java: Add missing qldoc. --- java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll b/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll index 4daf9eb84a6..826eed8dffc 100644 --- a/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll +++ b/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll @@ -1,3 +1,5 @@ +/** Definitions related to `java.lang.ThreadLocal`. */ + import java private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.dataflow.FlowSteps From 13ad6f86901b1d1018a57fecc1f92f32d1264d94 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 22 Sep 2023 09:33:44 +0200 Subject: [PATCH 617/788] C#: Add missing flow summary for `List.ForEach` --- csharp/ql/lib/ext/System.Collections.Generic.model.yml | 1 + .../test/library-tests/dataflow/library/FlowSummaries.expected | 1 + .../dataflow/library/FlowSummariesFiltered.expected | 1 + 3 files changed, 3 insertions(+) diff --git a/csharp/ql/lib/ext/System.Collections.Generic.model.yml b/csharp/ql/lib/ext/System.Collections.Generic.model.yml index 26ef7027b5e..852f022f191 100644 --- a/csharp/ql/lib/ext/System.Collections.Generic.model.yml +++ b/csharp/ql/lib/ext/System.Collections.Generic.model.yml @@ -47,6 +47,7 @@ extensions: - ["System.Collections.Generic", "List<>", False, "FindAll", "(System.Predicate)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["System.Collections.Generic", "List<>", False, "FindLast", "(System.Predicate)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["System.Collections.Generic", "List<>", False, "FindLast", "(System.Predicate)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["System.Collections.Generic", "List<>", False, "ForEach", "(System.Action)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["System.Collections.Generic", "List<>", False, "GetEnumerator", "()", "", "Argument[this].Element", "ReturnValue.Property[System.Collections.Generic.List<>+Enumerator.Current]", "value", "manual"] - ["System.Collections.Generic", "List<>", False, "GetRange", "(System.Int32,System.Int32)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["System.Collections.Generic", "List<>", False, "InsertRange", "(System.Int32,System.Collections.Generic.IEnumerable)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index 1561a876a95..6235b1603af 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -1098,6 +1098,7 @@ summary | System.Collections.Generic;List<>;false;FindAll;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | | System.Collections.Generic;List<>;false;FindLast;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;FindLast;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Generic;List<>;false;ForEach;(System.Action);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Generic;List<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.List<>+Enumerator.Current];value;manual | | System.Collections.Generic;List<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected index e1af1614843..7576338930a 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -715,6 +715,7 @@ summary | System.Collections.Generic;List<>;false;FindAll;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | | System.Collections.Generic;List<>;false;FindLast;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;FindLast;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Generic;List<>;false;ForEach;(System.Action);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.List<>+Enumerator.Current];value;manual | | System.Collections.Generic;List<>;false;GetRange;(System.Int32,System.Int32);;Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Generic;List<>;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[this].Element;value;manual | From 66da997b7ba0ceccce307adf5b6447ab7d3bf866 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 22 Sep 2023 14:54:22 +0200 Subject: [PATCH 618/788] Dataflow: Make use of defaults for language-specific hooks. --- .../code/cpp/dataflow/internal/DataFlowDispatch.qll | 10 ---------- .../code/cpp/dataflow/internal/DataFlowPrivate.qll | 9 --------- .../code/cpp/ir/dataflow/internal/DataFlowDispatch.qll | 10 ---------- .../code/csharp/dataflow/internal/DataFlowDispatch.qll | 10 ---------- .../code/csharp/dataflow/internal/DataFlowPrivate.qll | 9 --------- .../semmle/go/dataflow/internal/DataFlowPrivate.qll | 9 --------- .../code/java/dataflow/internal/DataFlowDispatch.qll | 10 ---------- .../code/java/dataflow/internal/DataFlowPrivate.qll | 9 --------- .../python/dataflow/new/internal/DataFlowDispatch.qll | 10 ---------- .../python/dataflow/new/internal/DataFlowPrivate.qll | 9 --------- .../codeql/ruby/dataflow/internal/DataFlowDispatch.qll | 10 ---------- .../codeql/ruby/dataflow/internal/DataFlowPrivate.qll | 9 --------- shared/dataflow/codeql/dataflow/DataFlow.qll | 8 ++++++-- .../swift/dataflow/internal/DataFlowDispatch.qll | 10 ---------- .../codeql/swift/dataflow/internal/DataFlowPrivate.qll | 9 --------- 15 files changed, 6 insertions(+), 135 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowDispatch.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowDispatch.qll index d8bfca9ac2c..151e2d4ce21 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowDispatch.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowDispatch.qll @@ -79,13 +79,3 @@ class ArgumentPosition extends int { /** Holds if arguments at position `apos` match parameters at position `ppos`. */ pragma[inline] predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos } - -/** - * Holds if flow from `call`'s argument `arg` to parameter `p` is permissible. - * - * This is a temporary hook to support technical debt in the Go language; do not use. - */ -pragma[inline] -predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNode p, ArgumentNode arg) { - any() -} diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll index a62e080dfb0..80a1ea28dea 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll @@ -297,12 +297,3 @@ class ContentApprox = Unit; /** Gets an approximated value for content `c`. */ pragma[inline] ContentApprox getContentApprox(Content c) { any() } - -/** - * Gets an additional term that is added to the `join` and `branch` computations to reflect - * an additional forward or backwards branching factor that is not taken into account - * when calculating the (virtual) dispatch cost. - * - * Argument `arg` is part of a path from a source to a sink, and `p` is the target parameter. - */ -int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNode p) { none() } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowDispatch.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowDispatch.qll index ce8fc7ebe51..9774ad7168b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowDispatch.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowDispatch.qll @@ -271,13 +271,3 @@ DataFlowCallable viableImplInCallContext(DataFlowCall call, DataFlowCall ctx) { /** Holds if arguments at position `apos` match parameters at position `ppos`. */ pragma[inline] predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos } - -/** - * Holds if flow from `call`'s argument `arg` to parameter `p` is permissible. - * - * This is a temporary hook to support technical debt in the Go language; do not use. - */ -pragma[inline] -predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNode p, ArgumentNode arg) { - any() -} diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll index b4d66a31d6b..aef91917b15 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -528,13 +528,3 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { apos.isImplicitCapturedArgumentPosition(v) ) } - -/** - * Holds if flow from `call`'s argument `arg` to parameter `p` is permissible. - * - * This is a temporary hook to support technical debt in the Go language; do not use. - */ -pragma[inline] -predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNode p, ArgumentNode arg) { - any() -} diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index b77bb173135..60ac4204131 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -2420,12 +2420,3 @@ module Csv { ) } } - -/** - * Gets an additional term that is added to the `join` and `branch` computations to reflect - * an additional forward or backwards branching factor that is not taken into account - * when calculating the (virtual) dispatch cost. - * - * Argument `arg` is part of a path from a source to a sink, and `p` is the target parameter. - */ -int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNode p) { none() } diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll index 525106603ab..93a1946655b 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll @@ -423,12 +423,3 @@ class ContentApprox = Unit; /** Gets an approximated value for content `c`. */ pragma[inline] ContentApprox getContentApprox(Content c) { any() } - -/** - * Gets an additional term that is added to the `join` and `branch` computations to reflect - * an additional forward or backwards branching factor that is not taken into account - * when calculating the (virtual) dispatch cost. - * - * Argument `arg` is part of a path from a source to a sink, and `p` is the target parameter. - */ -int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNode p) { none() } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll index c136476f104..e72cc75fc59 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll @@ -171,16 +171,6 @@ private module DispatchImpl { /** Holds if arguments at position `apos` match parameters at position `ppos`. */ pragma[inline] predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos } - - /** - * Holds if flow from `call`'s argument `arg` to parameter `p` is permissible. - * - * This is a temporary hook to support technical debt in the Go language; do not use. - */ - pragma[inline] - predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNode p, ArgumentNode arg) { - any() - } } import DispatchImpl diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll index 6223c9eae7a..bca55c94adb 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll @@ -593,12 +593,3 @@ predicate containerContent(Content c) { c instanceof MapKeyContent or c instanceof MapValueContent } - -/** - * Gets an additional term that is added to the `join` and `branch` computations to reflect - * an additional forward or backwards branching factor that is not taken into account - * when calculating the (virtual) dispatch cost. - * - * Argument `arg` is part of a path from a source to a sink, and `p` is the target parameter. - */ -int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNode p) { none() } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowDispatch.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowDispatch.qll index 1ea2e3d4c9d..78447016913 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowDispatch.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowDispatch.qll @@ -1639,13 +1639,3 @@ private module OutNodes { * `kind`. */ OutNode getAnOutNode(DataFlowCall call, ReturnKind kind) { call = result.getCall(kind) } - -/** - * Holds if flow from `call`'s argument `arg` to parameter `p` is permissible. - * - * This is a temporary hook to support technical debt in the Go language; do not use. - */ -pragma[inline] -predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNode p, ArgumentNode arg) { - any() -} diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll index 45e2a541eda..668340f6661 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll @@ -1002,12 +1002,3 @@ class ContentApprox = Unit; /** Gets an approximated value for content `c`. */ pragma[inline] ContentApprox getContentApprox(Content c) { any() } - -/** - * Gets an additional term that is added to the `join` and `branch` computations to reflect - * an additional forward or backwards branching factor that is not taken into account - * when calculating the (virtual) dispatch cost. - * - * Argument `arg` is part of a path from a source to a sink, and `p` is the target parameter. - */ -int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNode p) { none() } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll index b3610cde997..115eb4eb61e 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll @@ -1456,13 +1456,3 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { or apos.isAnyNamed() and ppos.isKeyword(_) } - -/** - * Holds if flow from `call`'s argument `arg` to parameter `p` is permissible. - * - * This is a temporary hook to support technical debt in the Go language; do not use. - */ -pragma[inline] -predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNodeImpl p, ArgumentNode arg) { - any() -} diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 8eb3cfdd2ec..3ffb3495e6c 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -1972,12 +1972,3 @@ class AdditionalJumpStep extends Unit { */ abstract predicate step(Node pred, Node succ); } - -/** - * Gets an additional term that is added to the `join` and `branch` computations to reflect - * an additional forward or backwards branching factor that is not taken into account - * when calculating the (virtual) dispatch cost. - * - * Argument `arg` is part of a path from a source to a sink, and `p` is the target parameter. - */ -int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNodeImpl p) { none() } diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 67948db0ee8..4f3704ccf3d 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -226,9 +226,13 @@ signature module InputSig { * * Argument `arg` is part of a path from a source to a sink, and `p` is the target parameter. */ - int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNode p); + default int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNode p) { none() } - predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNode p, ArgumentNode arg); + default predicate golangSpecificParamArgFilter( + DataFlowCall call, ParameterNode p, ArgumentNode arg + ) { + any() + } } module Configs { diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowDispatch.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowDispatch.qll index 94f297e0e2b..c8ecc47e0fb 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowDispatch.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowDispatch.qll @@ -355,13 +355,3 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { or ppos.(PositionalParameterPosition).getIndex() = apos.(PositionalArgumentPosition).getIndex() } - -/** - * Holds if flow from `call`'s argument `arg` to parameter `p` is permissible. - * - * This is a temporary hook to support technical debt in the Go language; do not use. - */ -pragma[inline] -predicate golangSpecificParamArgFilter(DataFlowCall call, ParameterNode p, ArgumentNode arg) { - any() -} diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 93edc40d095..bfc4d95ef81 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -1148,12 +1148,3 @@ class ContentApprox = Unit; /** Gets an approximated value for content `c`. */ pragma[inline] ContentApprox getContentApprox(Content c) { any() } - -/** - * Gets an additional term that is added to the `join` and `branch` computations to reflect - * an additional forward or backwards branching factor that is not taken into account - * when calculating the (virtual) dispatch cost. - * - * Argument `arg` is part of a path from a source to a sink, and `p` is the target parameter. - */ -int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNode p) { none() } From ae278fcad72187788f672d7c9e26a2d7e926958a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 22 Sep 2023 15:00:23 +0200 Subject: [PATCH 619/788] C++: Fix import conflict. --- .../code/cpp/ir/dataflow/internal/DataFlowImplSpecific.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplSpecific.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplSpecific.qll index ed4db065532..f49eaf35997 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplSpecific.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplSpecific.qll @@ -18,4 +18,6 @@ module CppDataFlow implements InputSig { import Public Node exprNode(DataFlowExpr e) { result = Public::exprNode(e) } + + predicate getAdditionalFlowIntoCallNodeTerm = Private::getAdditionalFlowIntoCallNodeTerm/2; } From 6316f61af90557dcdc5cc5da00e6c1ace55aa798 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 22 Sep 2023 15:09:25 +0200 Subject: [PATCH 620/788] Go: Fix import conflict. --- go/ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll index bc24ff09bfd..555b09660e8 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll @@ -20,4 +20,6 @@ module GoDataFlow implements InputSig { predicate neverSkipInPathGraph = Private::neverSkipInPathGraph/1; Node exprNode(DataFlowExpr e) { result = Public::exprNode(e) } + + predicate golangSpecificParamArgFilter = Private::golangSpecificParamArgFilter/3; } From 7dc22e47d6b7394c891db279c2205843e8bd33b9 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Fri, 22 Sep 2023 16:08:20 +0200 Subject: [PATCH 621/788] Java: Switch from problem to table query --- java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql | 3 +-- java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index 0b3d4d42f85..66a7074db67 100644 --- a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -1,8 +1,7 @@ /** * @name Fetch endpoints for use in the model editor (application mode) * @description A list of 3rd party endpoints (methods) used in the codebase. Excludes test and generated code. - * @kind problem - * @problem.severity recommendation + * @kind table * @id java/utils/modeleditor/application-mode-endpoints * @tags modeleditor endpoints application-mode */ diff --git a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index d46d13c0b81..c5c30126a23 100644 --- a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -1,8 +1,7 @@ /** * @name Fetch endpoints for use in the model editor (framework mode) * @description A list of endpoints accessible (methods) for consumers of the library. Excludes test and generated code. - * @kind problem - * @problem.severity recommendation + * @kind table * @id java/utils/modeleditor/framework-mode-endpoints * @tags modeleditor endpoints framework-mode */ From f4522edc95966fabfb5c538bebbf2888984afd81 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Fri, 22 Sep 2023 16:11:30 +0200 Subject: [PATCH 622/788] Java: Remove unnecessary columns --- .../modeleditor/ApplicationModeEndpoints.ql | 4 +-- .../modeleditor/FrameworkModeEndpoints.ql | 5 ++-- .../ApplicationModeEndpoints.expected | 30 +++++++++---------- .../FrameworkModeEndpoints.expected | 28 ++++++++--------- 4 files changed, 33 insertions(+), 34 deletions(-) diff --git a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index 66a7074db67..8b3d034bb3e 100644 --- a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -23,5 +23,5 @@ where usage = aUsage(endpoint) and type = supportedType(endpoint) and classification = usageClassification(usage) -select usage, apiName, supported.toString(), "supported", endpoint.jarContainer(), - endpoint.jarVersion(), type, "type", classification, "classification" +select usage, apiName, supported, endpoint.jarContainer(), endpoint.jarVersion(), type, + classification diff --git a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index c5c30126a23..3350d55e9e6 100644 --- a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -15,6 +15,5 @@ where apiName = endpoint.getApiName() and supported = isSupported(endpoint) and type = supportedType(endpoint) -select endpoint, apiName, supported.toString(), "supported", - endpoint.getCompilationUnit().getParentContainer().getBaseName(), "library", type, "type", - "unknown", "classification" +select endpoint, apiName, supported, + endpoint.getCompilationUnit().getParentContainer().getBaseName(), type diff --git a/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected index a8e696c2514..f6d6cb58608 100644 --- a/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected +++ b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected @@ -1,15 +1,15 @@ -| com/github/codeql/test/NonPublicClass.java:5:5:5:28 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:8:5:8:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:12:5:12:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:16:5:16:45 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:16:24:16:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:16:24:16:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | supported | rt.jar | | summary | type | source | classification | -| com/github/codeql/test/PublicClass.java:20:5:20:68 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:20:24:20:47 | getDefault(...) | java.nio.file.FileSystems#getDefault() | false | supported | rt.jar | | | type | source | classification | -| com/github/codeql/test/PublicClass.java:20:24:20:67 | getPath(...) | java.nio.file.FileSystem#getPath(String,String[]) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicClass.java:20:24:20:67 | getPath(...) | java.nio.file.FileSystem#getPath(String,String[]) | true | supported | rt.jar | | summary | type | source | classification | -| com/github/codeql/test/PublicClass.java:24:5:24:27 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicGenericClass.java:7:5:7:27 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicGenericClass.java:11:5:11:27 | println(...) | java.io.PrintStream#println(Object) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicGenericInterface.java:8:7:8:29 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | -| com/github/codeql/test/PublicInterface.java:7:7:7:29 | println(...) | java.io.PrintStream#println(String) | true | supported | rt.jar | | sink | type | source | classification | +| com/github/codeql/test/NonPublicClass.java:5:5:5:28 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:8:5:8:27 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:12:5:12:27 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:16:5:16:45 | println(...) | java.io.PrintStream#println(Object) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:16:24:16:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:16:24:16:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | rt.jar | | summary | source | +| com/github/codeql/test/PublicClass.java:20:5:20:68 | println(...) | java.io.PrintStream#println(Object) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:20:24:20:47 | getDefault(...) | java.nio.file.FileSystems#getDefault() | false | rt.jar | | | source | +| com/github/codeql/test/PublicClass.java:20:24:20:67 | getPath(...) | java.nio.file.FileSystem#getPath(String,String[]) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:20:24:20:67 | getPath(...) | java.nio.file.FileSystem#getPath(String,String[]) | true | rt.jar | | summary | source | +| com/github/codeql/test/PublicClass.java:24:5:24:27 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicGenericClass.java:7:5:7:27 | println(...) | java.io.PrintStream#println(Object) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicGenericClass.java:11:5:11:27 | println(...) | java.io.PrintStream#println(Object) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicGenericInterface.java:8:7:8:29 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicInterface.java:7:7:7:29 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | diff --git a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected index f5d435ae7b3..ed2522fb977 100644 --- a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected +++ b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected @@ -1,14 +1,14 @@ -| com/github/codeql/test/PublicClass.java:7:15:7:19 | stuff | com.github.codeql.test.PublicClass#stuff(String) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicClass.java:11:22:11:32 | staticStuff | com.github.codeql.test.PublicClass#staticStuff(String) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicClass.java:15:18:15:31 | protectedStuff | com.github.codeql.test.PublicClass#protectedStuff(String) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicClass.java:27:17:27:28 | summaryStuff | com.github.codeql.test.PublicClass#summaryStuff(String) | true | supported | test | library | summary | type | unknown | classification | -| com/github/codeql/test/PublicClass.java:31:17:31:27 | sourceStuff | com.github.codeql.test.PublicClass#sourceStuff() | true | supported | test | library | source | type | unknown | classification | -| com/github/codeql/test/PublicClass.java:35:15:35:23 | sinkStuff | com.github.codeql.test.PublicClass#sinkStuff(String) | true | supported | test | library | sink | type | unknown | classification | -| com/github/codeql/test/PublicClass.java:39:15:39:26 | neutralStuff | com.github.codeql.test.PublicClass#neutralStuff(String) | true | supported | test | library | neutral | type | unknown | classification | -| com/github/codeql/test/PublicGenericClass.java:6:15:6:19 | stuff | com.github.codeql.test.PublicGenericClass#stuff(Object) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicGenericClass.java:10:20:10:25 | stuff2 | com.github.codeql.test.PublicGenericClass#stuff2(Object) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicGenericInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicGenericInterface#stuff(Object) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicGenericInterface.java:5:22:5:27 | stuff2 | com.github.codeql.test.PublicGenericInterface#stuff2(Object) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicGenericInterface.java:7:24:7:34 | staticStuff | com.github.codeql.test.PublicGenericInterface#staticStuff(String) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicInterface#stuff(String) | false | supported | test | library | | type | unknown | classification | -| com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | com.github.codeql.test.PublicInterface#staticStuff(String) | false | supported | test | library | | type | unknown | classification | +| com/github/codeql/test/PublicClass.java:7:15:7:19 | stuff | com.github.codeql.test.PublicClass#stuff(String) | false | test | | +| com/github/codeql/test/PublicClass.java:11:22:11:32 | staticStuff | com.github.codeql.test.PublicClass#staticStuff(String) | false | test | | +| com/github/codeql/test/PublicClass.java:15:18:15:31 | protectedStuff | com.github.codeql.test.PublicClass#protectedStuff(String) | false | test | | +| com/github/codeql/test/PublicClass.java:27:17:27:28 | summaryStuff | com.github.codeql.test.PublicClass#summaryStuff(String) | true | test | summary | +| com/github/codeql/test/PublicClass.java:31:17:31:27 | sourceStuff | com.github.codeql.test.PublicClass#sourceStuff() | true | test | source | +| com/github/codeql/test/PublicClass.java:35:15:35:23 | sinkStuff | com.github.codeql.test.PublicClass#sinkStuff(String) | true | test | sink | +| com/github/codeql/test/PublicClass.java:39:15:39:26 | neutralStuff | com.github.codeql.test.PublicClass#neutralStuff(String) | true | test | neutral | +| com/github/codeql/test/PublicGenericClass.java:6:15:6:19 | stuff | com.github.codeql.test.PublicGenericClass#stuff(Object) | false | test | | +| com/github/codeql/test/PublicGenericClass.java:10:20:10:25 | stuff2 | com.github.codeql.test.PublicGenericClass#stuff2(Object) | false | test | | +| com/github/codeql/test/PublicGenericInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicGenericInterface#stuff(Object) | false | test | | +| com/github/codeql/test/PublicGenericInterface.java:5:22:5:27 | stuff2 | com.github.codeql.test.PublicGenericInterface#stuff2(Object) | false | test | | +| com/github/codeql/test/PublicGenericInterface.java:7:24:7:34 | staticStuff | com.github.codeql.test.PublicGenericInterface#staticStuff(String) | false | test | | +| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicInterface#stuff(String) | false | test | | +| com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | com.github.codeql.test.PublicInterface#staticStuff(String) | false | test | | From 0fea21f3e7de59676bb512e9529b20280a1a521c Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Fri, 22 Sep 2023 16:35:15 +0200 Subject: [PATCH 623/788] C#: Remove unnecessary columns --- .../modeleditor/ApplicationModeEndpoints.ql | 6 ++-- .../modeleditor/FrameworkModeEndpoints.ql | 6 ++-- .../ApplicationModeEndpoints.expected | 28 +++++++-------- .../FrameworkModeEndpoints.expected | 36 +++++++++---------- 4 files changed, 36 insertions(+), 40 deletions(-) diff --git a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index 334c8a9a64d..ad40ebe91c4 100644 --- a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -1,8 +1,7 @@ /** * @name Fetch endpoints for use in the model editor (application mode) * @description A list of 3rd party endpoints (methods and attributes) used in the codebase. Excludes test and generated code. - * @kind problem - * @problem.severity recommendation + * @kind table * @id csharp/utils/modeleditor/application-mode-endpoints * @tags modeleditor endpoints application-mode */ @@ -22,5 +21,4 @@ where usage = aUsage(endpoint) and type = supportedType(endpoint) and classification = methodClassification(usage) -select usage, apiName, supported.toString(), "supported", endpoint.dllName(), endpoint.dllVersion(), - type, "type", classification, "classification" +select usage, apiName, supported, endpoint.dllName(), endpoint.dllVersion(), type, classification diff --git a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index 71de3b55be3..5924fb2526f 100644 --- a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -1,8 +1,7 @@ /** * @name Fetch endpoints for use in the model editor (framework mode) * @description A list of endpoints accessible (methods and attributes) for consumers of the library. Excludes test and generated code. - * @kind problem - * @problem.severity recommendation + * @kind table * @id csharp/utils/modeleditor/framework-mode-endpoints * @tags modeleditor endpoints framework-mode */ @@ -16,5 +15,4 @@ where apiName = endpoint.getApiName() and supported = isSupported(endpoint) and type = supportedType(endpoint) -select endpoint, apiName, supported.toString(), "supported", endpoint.getFile().getBaseName(), - "library", type, "type", "unknown", "classification" +select endpoint, apiName, supported, endpoint.getFile().getBaseName(), type diff --git a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected index 9dcdbdf846a..7093e608799 100644 --- a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected +++ b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected @@ -1,14 +1,14 @@ -| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicClass.cs:9:9:9:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicClass.cs:14:9:14:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicClass.cs:19:9:19:51 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | supported | System.Console | 7.0.0.0 | source | type | source | classification | -| PublicClass.cs:24:9:24:46 | call to method Write | System.Console#Write(System.Object) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicClass.cs:24:23:24:45 | access to property BackgroundColor | System.Console#get_BackgroundColor() | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicClass.cs:25:9:25:31 | access to property ForegroundColor | System.Console#set_ForegroundColor(System.ConsoleColor) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicClass.cs:30:9:30:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System.Console#WriteLine(System.Object) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System.Console#WriteLine(System.Object) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | -| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | supported | System.Console | 7.0.0.0 | neutral | type | source | classification | +| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:9:9:9:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:14:9:14:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:19:9:19:51 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | System.Console | 7.0.0.0 | source | source | +| PublicClass.cs:24:9:24:46 | call to method Write | System.Console#Write(System.Object) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:24:23:24:45 | access to property BackgroundColor | System.Console#get_BackgroundColor() | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:25:9:25:31 | access to property ForegroundColor | System.Console#set_ForegroundColor(System.ConsoleColor) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:30:9:30:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System.Console#WriteLine(System.Object) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System.Console#WriteLine(System.Object) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | diff --git a/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected b/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected index c1fdfc764c9..da8a871266c 100644 --- a/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected +++ b/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected @@ -1,18 +1,18 @@ -| PublicClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicClass#stuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | -| PublicClass.cs:12:24:12:34 | staticStuff | GitHub.CodeQL.PublicClass#staticStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | -| PublicClass.cs:17:20:17:33 | protectedStuff | GitHub.CodeQL.PublicClass#protectedStuff(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | -| PublicClass.cs:33:45:33:47 | get_PublicProperty | GitHub.CodeQL.PublicClass#get_PublicProperty() | false | supported | PublicClass.cs | library | | type | unknown | classification | -| PublicClass.cs:33:50:33:52 | set_PublicProperty | GitHub.CodeQL.PublicClass#set_PublicProperty(System.String) | false | supported | PublicClass.cs | library | | type | unknown | classification | -| PublicClass.cs:35:19:35:30 | summaryStuff | GitHub.CodeQL.PublicClass#summaryStuff(System.String) | true | supported | PublicClass.cs | library | summary | type | unknown | classification | -| PublicClass.cs:40:19:40:29 | sourceStuff | GitHub.CodeQL.PublicClass#sourceStuff() | true | supported | PublicClass.cs | library | source | type | unknown | classification | -| PublicClass.cs:45:17:45:25 | sinkStuff | GitHub.CodeQL.PublicClass#sinkStuff(System.String) | true | supported | PublicClass.cs | library | sink | type | unknown | classification | -| PublicClass.cs:50:17:50:28 | neutralStuff | GitHub.CodeQL.PublicClass#neutralStuff(System.String) | true | supported | PublicClass.cs | library | neutral | type | unknown | classification | -| PublicGenericClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicGenericClass<,>#stuff(T) | false | supported | PublicGenericClass.cs | library | | type | unknown | classification | -| PublicGenericClass.cs:12:17:12:26 | stuff2<> | GitHub.CodeQL.PublicGenericClass<,>#stuff2<>(T2) | false | supported | PublicGenericClass.cs | library | | type | unknown | classification | -| PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicGenericInterface<>#stuff(T) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | -| PublicGenericInterface.cs:9:10:9:19 | stuff2<> | GitHub.CodeQL.PublicGenericInterface<>#stuff2<>(T2) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | -| PublicGenericInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicGenericInterface<>#staticStuff(System.String) | false | supported | PublicGenericInterface.cs | library | | type | unknown | classification | -| PublicInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicInterface#stuff(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | -| PublicInterface.cs:9:29:9:31 | get_PublicProperty | GitHub.CodeQL.PublicInterface#get_PublicProperty() | false | supported | PublicInterface.cs | library | | type | unknown | classification | -| PublicInterface.cs:9:34:9:36 | set_PublicProperty | GitHub.CodeQL.PublicInterface#set_PublicProperty(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | -| PublicInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicInterface#staticStuff(System.String) | false | supported | PublicInterface.cs | library | | type | unknown | classification | +| PublicClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicClass#stuff(System.String) | false | PublicClass.cs | | +| PublicClass.cs:12:24:12:34 | staticStuff | GitHub.CodeQL.PublicClass#staticStuff(System.String) | false | PublicClass.cs | | +| PublicClass.cs:17:20:17:33 | protectedStuff | GitHub.CodeQL.PublicClass#protectedStuff(System.String) | false | PublicClass.cs | | +| PublicClass.cs:33:45:33:47 | get_PublicProperty | GitHub.CodeQL.PublicClass#get_PublicProperty() | false | PublicClass.cs | | +| PublicClass.cs:33:50:33:52 | set_PublicProperty | GitHub.CodeQL.PublicClass#set_PublicProperty(System.String) | false | PublicClass.cs | | +| PublicClass.cs:35:19:35:30 | summaryStuff | GitHub.CodeQL.PublicClass#summaryStuff(System.String) | true | PublicClass.cs | summary | +| PublicClass.cs:40:19:40:29 | sourceStuff | GitHub.CodeQL.PublicClass#sourceStuff() | true | PublicClass.cs | source | +| PublicClass.cs:45:17:45:25 | sinkStuff | GitHub.CodeQL.PublicClass#sinkStuff(System.String) | true | PublicClass.cs | sink | +| PublicClass.cs:50:17:50:28 | neutralStuff | GitHub.CodeQL.PublicClass#neutralStuff(System.String) | true | PublicClass.cs | neutral | +| PublicGenericClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicGenericClass<,>#stuff(T) | false | PublicGenericClass.cs | | +| PublicGenericClass.cs:12:17:12:26 | stuff2<> | GitHub.CodeQL.PublicGenericClass<,>#stuff2<>(T2) | false | PublicGenericClass.cs | | +| PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicGenericInterface<>#stuff(T) | false | PublicGenericInterface.cs | | +| PublicGenericInterface.cs:9:10:9:19 | stuff2<> | GitHub.CodeQL.PublicGenericInterface<>#stuff2<>(T2) | false | PublicGenericInterface.cs | | +| PublicGenericInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicGenericInterface<>#staticStuff(System.String) | false | PublicGenericInterface.cs | | +| PublicInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicInterface#stuff(System.String) | false | PublicInterface.cs | | +| PublicInterface.cs:9:29:9:31 | get_PublicProperty | GitHub.CodeQL.PublicInterface#get_PublicProperty() | false | PublicInterface.cs | | +| PublicInterface.cs:9:34:9:36 | set_PublicProperty | GitHub.CodeQL.PublicInterface#set_PublicProperty(System.String) | false | PublicInterface.cs | | +| PublicInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicInterface#staticStuff(System.String) | false | PublicInterface.cs | | From 56b9fa8e9cc0d0839da5655a92d7833564d7ab0c Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Fri, 22 Sep 2023 18:15:28 +0100 Subject: [PATCH 624/788] Kotlin: Avoid using a possibly-throwing method --- .../utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt index 286cf3a48d0..ec3b1602ed1 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.util.getChildren class CommentExtractorLighterAST(fileExtractor: KotlinFileExtractor, file: IrFile, fileLabel: Label): CommentExtractor(fileExtractor, file, fileLabel) { // Returns true if it extracted the comments; false otherwise. fun extract(): Boolean { - val sourceElement = (file.metadata as? FirMetadataSource.File)?.files?.get(0)?.source + val sourceElement = (file.metadata as? FirMetadataSource.File)?.files?.elementAtOrNull(0)?.source val treeStructure = sourceElement?.treeStructure if (treeStructure == null) { return false From 09063c5189aa43767bca48df57d7e045dede1381 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 22 Sep 2023 09:34:11 +0200 Subject: [PATCH 625/788] C#: Port and extend type dispatch tests from Java --- .../typeflow-dispatch/TypeFlowDispatch.cs | 104 +++++++++++ .../TypeFlowDispatch.expected | 175 ++++++++++++++++++ .../typeflow-dispatch/TypeFlowDispatch.ql | 12 ++ .../dataflow/typeflow-dispatch/options | 2 + 4 files changed, 293 insertions(+) create mode 100644 csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.cs create mode 100644 csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected create mode 100644 csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.ql create mode 100644 csharp/ql/test/library-tests/dataflow/typeflow-dispatch/options diff --git a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.cs b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.cs new file mode 100644 index 00000000000..c69bebf1326 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +public class A +{ + static T Source(T source) => throw null; + + public static void Sink(T t) { } + + interface MyConsumer + { + void run(Object o); + } + + static void Apply1(Action f, T x) + { + f(x); + } + + static void ApplyWrap1(Action f, T x) + { + Apply1(f, x); + } + + void TestLambdaDispatch1() + { + ApplyWrap1(x => { Sink(x); }, Source("A")); // $ hasValueFlow=A + ApplyWrap1(x => { Sink(x); }, "B"); // no flow + ApplyWrap1(x => { }, Source("C")); + ApplyWrap1(x => { }, "D"); + } + + void ListForEachWrap(List l, Action f) + { + l.ForEach(f); + } + + void TestLambdaDispatch2() + { + var tainted = new List { Source("E") }; + var safe = new List(); + ListForEachWrap(safe, x => { Sink(x); }); // no flow + ListForEachWrap(tainted, x => { Sink(x); }); // $ hasValueFlow=E + } + + static void Apply2(Action f, T x) + { + f(x); + } + + static void ApplyWrap2(Action f, T x) + { + Apply2(f, x); + } + + void SinkMethodGroup1(T t) => Sink(t); // $ hasValueFlow=F $ hasValueFlow=G + void SinkMethodGroup2(T t) => Sink(t); + + void TestLambdaDispatch3() + { + ApplyWrap2(SinkMethodGroup1, Source("F")); + ApplyWrap2(SinkMethodGroup2, "B"); + } + + void ForEach(List l, Action f) + { + foreach (var x in l) + f(x); + } + + void ForEachWrap(List l, Action f) + { + ForEach(l, f); + } + + void TestLambdaDispatch4() + { + var tainted = new List { Source("G") }; + var safe = new List(); + ForEachWrap(safe, SinkMethodGroup2); + ForEachWrap(tainted, SinkMethodGroup1); + } + + class TaintedClass + { + public override string ToString() => Source("TaintedClass"); + } + + class SafeClass + { + public override string ToString() => "safe"; + } + + string ConvertToString(object o) => o.ToString(); + + string ConvertToStringWrap(object o) => ConvertToString(o); + + void TestToString1() + { + var unused = ConvertToStringWrap(new TaintedClass()); + Sink(ConvertToStringWrap(new SafeClass())); // no flow + } +} diff --git a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected new file mode 100644 index 00000000000..086d964a08e --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected @@ -0,0 +1,175 @@ +testFailures +| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | Unexpected result: hasValueFlow=C | +| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | Unexpected result: hasValueFlow=A | +| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | Unexpected result: hasValueFlow=C | +| TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | Unexpected result: hasValueFlow=E | +| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | Unexpected result: hasValueFlow=F | +| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | Unexpected result: hasValueFlow=G | +edges +| TypeFlowDispatch.cs:16:42:16:42 | x : String | TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | +| TypeFlowDispatch.cs:16:42:16:42 | x : String | TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | +| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | TypeFlowDispatch.cs:28:20:28:20 | x : String | +| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | TypeFlowDispatch.cs:28:20:28:20 | x : String | +| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | TypeFlowDispatch.cs:29:20:29:20 | x : String | +| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | TypeFlowDispatch.cs:29:20:29:20 | x : String | +| TypeFlowDispatch.cs:21:46:21:46 | x : String | TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | +| TypeFlowDispatch.cs:21:46:21:46 | x : String | TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | +| TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | TypeFlowDispatch.cs:16:42:16:42 | x : String | +| TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | TypeFlowDispatch.cs:16:42:16:42 | x : String | +| TypeFlowDispatch.cs:28:20:28:20 | x : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | +| TypeFlowDispatch.cs:28:20:28:20 | x : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | +| TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:21:46:21:46 | x : String | +| TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:21:46:21:46 | x : String | +| TypeFlowDispatch.cs:29:20:29:20 | x : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | +| TypeFlowDispatch.cs:29:20:29:20 | x : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | +| TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:21:46:21:46 | x : String | +| TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:21:46:21:46 | x : String | +| TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:43:31:43:31 | x : String | +| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:43:31:43:31 | x : String | +| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:44:34:44:34 | x : String | +| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:44:34:44:34 | x : String | +| TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:43:31:43:31 | x : String | TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | +| TypeFlowDispatch.cs:43:31:43:31 | x : String | TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | +| TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | +| TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | +| TypeFlowDispatch.cs:44:34:44:34 | x : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | +| TypeFlowDispatch.cs:44:34:44:34 | x : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | +| TypeFlowDispatch.cs:47:42:47:42 | x : String | TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | +| TypeFlowDispatch.cs:47:42:47:42 | x : String | TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | +| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | +| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | +| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | TypeFlowDispatch.cs:58:32:58:32 | t : String | +| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | TypeFlowDispatch.cs:58:32:58:32 | t : String | +| TypeFlowDispatch.cs:52:46:52:46 | x : String | TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | +| TypeFlowDispatch.cs:52:46:52:46 | x : String | TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | +| TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | TypeFlowDispatch.cs:47:42:47:42 | x : String | +| TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | TypeFlowDispatch.cs:47:42:47:42 | x : String | +| TypeFlowDispatch.cs:57:32:57:32 | t : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | +| TypeFlowDispatch.cs:57:32:57:32 | t : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | +| TypeFlowDispatch.cs:58:32:58:32 | t : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | +| TypeFlowDispatch.cs:58:32:58:32 | t : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | +| TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:52:46:52:46 | x : String | +| TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:52:46:52:46 | x : String | +| TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | +| TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | +| TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | +| TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | +| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | +| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | +| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | TypeFlowDispatch.cs:58:32:58:32 | t : String | +| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | TypeFlowDispatch.cs:58:32:58:32 | t : String | +| TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | +| TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | +| TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | +| TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | +nodes +| TypeFlowDispatch.cs:16:42:16:42 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:16:42:16:42 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:21:46:21:46 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:21:46:21:46 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:28:20:28:20 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:28:20:28:20 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:29:20:29:20 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:29:20:29:20 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:43:31:43:31 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:43:31:43:31 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:44:34:44:34 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:44:34:44:34 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:47:42:47:42 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:47:42:47:42 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:52:46:52:46 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:52:46:52:46 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:57:32:57:32 | t : String | semmle.label | t : String | +| TypeFlowDispatch.cs:57:32:57:32 | t : String | semmle.label | t : String | +| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | semmle.label | access to parameter t | +| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | semmle.label | access to parameter t | +| TypeFlowDispatch.cs:58:32:58:32 | t : String | semmle.label | t : String | +| TypeFlowDispatch.cs:58:32:58:32 | t : String | semmle.label | t : String | +| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | semmle.label | access to parameter t | +| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | semmle.label | access to parameter t | +| TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | semmle.label | SSA def(x) : String | +| TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | semmle.label | SSA def(x) : String | +| TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | semmle.label | access to local variable x : String | +| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | semmle.label | access to local variable x : String | +| TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | +subpaths +#select +| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | $@ | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | $@ | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | $@ | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | $@ | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | $@ | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | $@ | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | $@ | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | $@ | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | $@ | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | $@ | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | $@ | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | $@ | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | $@ | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | $@ | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | $@ | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | $@ | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | call to method Source : String | diff --git a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.ql b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.ql new file mode 100644 index 00000000000..9336e1b28be --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.ql @@ -0,0 +1,12 @@ +/** + * @kind path-problem + */ + +import csharp +import TestUtilities.InlineFlowTest +import DefaultFlowTest +import PathGraph + +from PathNode source, PathNode sink +where flowPath(source, sink) +select sink, source, sink, "$@", source, source.toString() diff --git a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/options b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/options new file mode 100644 index 00000000000..f9a3f3419c0 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/options @@ -0,0 +1,2 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj \ No newline at end of file From 8f35c99f163cfd65222f3cc273894f2f32aa468b Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 22 Sep 2023 13:46:11 +0200 Subject: [PATCH 626/788] C#: Improve lambda dispatch using type flow --- .../code/csharp/dataflow/FlowSummary.qll | 45 +- .../dataflow/internal/DataFlowDispatch.qll | 30 +- .../dataflow/internal/DataFlowPrivate.qll | 255 +- .../internal/FlowSummaryImplSpecific.qll | 33 +- .../dataflow/library/FlowSummaries.expected | 2708 +++++++++++++++++ .../library/FlowSummariesFiltered.expected | 2527 +++++++++++++++ .../TypeFlowDispatch.expected | 48 - shared/dataflow/codeql/dataflow/DataFlow.qll | 1 + 8 files changed, 5528 insertions(+), 119 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/FlowSummary.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/FlowSummary.qll index a96ac4cedc9..92a09558946 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/FlowSummary.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/FlowSummary.qll @@ -4,6 +4,7 @@ import csharp private import dotnet private import internal.FlowSummaryImpl as Impl private import internal.DataFlowDispatch as DataFlowDispatch +private import Impl::Public::SummaryComponent as SummaryComponentInternal class ParameterPosition = DataFlowDispatch::ParameterPosition; @@ -18,8 +19,6 @@ class SummaryComponent = Impl::Public::SummaryComponent; /** Provides predicates for constructing summary components. */ module SummaryComponent { - private import Impl::Public::SummaryComponent as SummaryComponentInternal - predicate content = SummaryComponentInternal::content/1; /** Gets a summary component for parameter `i`. */ @@ -155,3 +154,45 @@ private class RecordConstructorFlowRequiredSummaryComponentStack extends Require ) } } + +class Provenance = Impl::Public::Provenance; + +private import semmle.code.csharp.frameworks.system.linq.Expressions + +private SummaryComponent delegateSelf() { + exists(ArgumentPosition pos | + result = SummaryComponentInternal::parameter(pos) and + pos.isDelegateSelf() + ) +} + +private predicate mayInvokeCallback(Callable c, int n) { + c.getParameter(n).getType() instanceof SystemLinqExpressions::DelegateExtType and + not c.fromSource() +} + +private class SummarizedCallableWithCallback extends SummarizedCallable { + private int pos; + + SummarizedCallableWithCallback() { mayInvokeCallback(this, pos) } + + override predicate propagatesFlow( + SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue + ) { + input = SummaryComponentStack::argument(pos) and + output = SummaryComponentStack::push(delegateSelf(), input) and + preservesValue = true + } + + override predicate hasProvenance(Provenance provenance) { provenance = "hq-generated" } +} + +private class RequiredComponentStackForCallback extends RequiredSummaryComponentStack { + override predicate required(SummaryComponent head, SummaryComponentStack tail) { + exists(int pos | + mayInvokeCallback(_, pos) and + head = delegateSelf() and + tail = SummaryComponentStack::argument(pos) + ) + } +} diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll index b4d66a31d6b..f441b8559e4 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -136,13 +136,15 @@ private module Cached { newtype TParameterPosition = TPositionalParameterPosition(int i) { i = any(Parameter p).getPosition() } or TThisParameterPosition() or - TImplicitCapturedParameterPosition(LocalScopeVariable v) { capturedWithFlowIn(v) } + TImplicitCapturedParameterPosition(LocalScopeVariable v) { capturedWithFlowIn(v) } or + TDelegateSelfParameterPosition() cached newtype TArgumentPosition = TPositionalArgumentPosition(int i) { i = any(Parameter p).getPosition() } or TQualifierArgumentPosition() or - TImplicitCapturedArgumentPosition(LocalScopeVariable v) { capturedWithFlowIn(v) } + TImplicitCapturedArgumentPosition(LocalScopeVariable v) { capturedWithFlowIn(v) } or + TDelegateSelfArgumentPosition() } import Cached @@ -480,6 +482,14 @@ class ParameterPosition extends TParameterPosition { this = TImplicitCapturedParameterPosition(v) } + /** + * Holds if this position represents a reference to a delegate itself. + * + * Used for tracking flow through captured variables and for improving + * delegate dispatch. + */ + predicate isDelegateSelf() { this = TDelegateSelfParameterPosition() } + /** Gets a textual representation of this position. */ string toString() { result = "position " + this.getPosition() @@ -489,6 +499,9 @@ class ParameterPosition extends TParameterPosition { exists(LocalScopeVariable v | this.isImplicitCapturedParameterPosition(v) and result = "captured " + v ) + or + this.isDelegateSelf() and + result = "delegate self" } } @@ -505,6 +518,14 @@ class ArgumentPosition extends TArgumentPosition { this = TImplicitCapturedArgumentPosition(v) } + /** + * Holds if this position represents a reference to a delegate itself. + * + * Used for tracking flow through captured variables and for improving + * delegate dispatch. + */ + predicate isDelegateSelf() { this = TDelegateSelfArgumentPosition() } + /** Gets a textual representation of this position. */ string toString() { result = "position " + this.getPosition() @@ -514,6 +535,9 @@ class ArgumentPosition extends TArgumentPosition { exists(LocalScopeVariable v | this.isImplicitCapturedArgumentPosition(v) and result = "captured " + v ) + or + this.isDelegateSelf() and + result = "delegate self" } } @@ -527,6 +551,8 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos.isImplicitCapturedParameterPosition(v) and apos.isImplicitCapturedArgumentPosition(v) ) + or + ppos.isDelegateSelf() and apos.isDelegateSelf() } /** diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index b77bb173135..6901561c44f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -45,9 +45,9 @@ abstract class NodeImpl extends Node { abstract DotNet::Type getTypeImpl(); /** Gets the type of this node used for type pruning. */ - Gvn::GvnType getDataFlowType() { + DataFlowType getDataFlowType() { forceCachingInSameStage() and - exists(Type t0 | result = Gvn::getGlobalValueNumber(t0) | + exists(Type t0 | result.asGvnType() = Gvn::getGlobalValueNumber(t0) | t0 = getCSharpType(this.getType()) or not exists(getCSharpType(this.getType())) and @@ -557,6 +557,8 @@ module LocalFlow { exists(SsaImpl::getAReadAtNode(def, node2.(ExprNode).getControlFlowNode())) ) or + delegateCreationStep(node1, node2) + or node1 = unique(FlowSummaryNode n1 | FlowSummaryImpl::Private::Steps::summaryLocalStep(n1.getSummaryNode(), @@ -793,16 +795,16 @@ private Type getCSharpType(DotNet::Type t) { result.matchesHandle(t) } -private class RelevantDataFlowType extends DataFlowType { - RelevantDataFlowType() { this = any(NodeImpl n).getDataFlowType() } +private class RelevantGvnType extends Gvn::GvnType { + RelevantGvnType() { this = any(NodeImpl n).getDataFlowType().asGvnType() } } /** A GVN type that is either a `DataFlowType` or unifiable with a `DataFlowType`. */ private class DataFlowTypeOrUnifiable extends Gvn::GvnType { pragma[nomagic] DataFlowTypeOrUnifiable() { - this instanceof RelevantDataFlowType or - Gvn::unifiable(any(RelevantDataFlowType t), this) + this instanceof RelevantGvnType or + Gvn::unifiable(any(RelevantGvnType t), this) } } @@ -813,7 +815,7 @@ private TypeParameter getATypeParameterSubType(DataFlowTypeOrUnifiable t) { } pragma[noinline] -private TypeParameter getATypeParameterSubTypeRestricted(RelevantDataFlowType t) { +private TypeParameter getATypeParameterSubTypeRestricted(RelevantGvnType t) { result = getATypeParameterSubType(t) } @@ -829,7 +831,7 @@ private Gvn::GvnType getANonTypeParameterSubType(DataFlowTypeOrUnifiable t) { } pragma[noinline] -private Gvn::GvnType getANonTypeParameterSubTypeRestricted(RelevantDataFlowType t) { +private Gvn::GvnType getANonTypeParameterSubTypeRestricted(RelevantGvnType t) { result = getANonTypeParameterSubType(t) } @@ -866,6 +868,7 @@ private module Cached { c = any(DataFlowCallable dfc).asCallable() and not c.(Modifiable).isStatic() } or + TDelegateSelfReferenceNode(Callable c) { lambdaCreationExpr(_, c) } or TYieldReturnNode(ControlFlow::Nodes::ElementNode cfn) { any(Callable c).canYieldReturn(cfn.getAstNode()) } or @@ -949,7 +952,7 @@ private module Cached { TSyntheticFieldApproxContent() pragma[nomagic] - private predicate commonSubTypeGeneral(DataFlowTypeOrUnifiable t1, RelevantDataFlowType t2) { + private predicate commonSubTypeGeneral(DataFlowTypeOrUnifiable t1, RelevantGvnType t2) { not t1 instanceof Gvn::TypeParameterGvnType and t1 = t2 or @@ -963,17 +966,20 @@ private module Cached { * `t2` are allowed to be type parameters. */ cached - predicate commonSubType(RelevantDataFlowType t1, RelevantDataFlowType t2) { - commonSubTypeGeneral(t1, t2) - } + predicate commonSubType(RelevantGvnType t1, RelevantGvnType t2) { commonSubTypeGeneral(t1, t2) } cached - predicate commonSubTypeUnifiableLeft(RelevantDataFlowType t1, RelevantDataFlowType t2) { + predicate commonSubTypeUnifiableLeft(RelevantGvnType t1, RelevantGvnType t2) { exists(Gvn::GvnType t | Gvn::unifiable(t1, t) and commonSubTypeGeneral(t, t2) ) } + + cached + newtype TDataFlowType = + TGvnDataFlowType(Gvn::GvnType t) or + TDelegateDataFlowType(Callable lambda) { lambdaCreationExpr(_, lambda) } } import Cached @@ -1119,6 +1125,37 @@ private module ParameterNodes { override string toStringImpl() { result = "this" } } + /** + * The value of a delegate itself at function entry, viewed as a node in a data + * flow graph. + * + * This is used for improving lambda dispatch, and will eventually also be + * used for tracking flow through captured variables. + */ + private class DelegateSelfReferenceNode extends ParameterNodeImpl, TDelegateSelfReferenceNode { + private Callable callable; + + DelegateSelfReferenceNode() { this = TDelegateSelfReferenceNode(callable) } + + final Callable getCallable() { result = callable } + + override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { + callable = c.asCallable() and pos.isDelegateSelf() + } + + override ControlFlow::Node getControlFlowNodeImpl() { none() } + + override DataFlowCallable getEnclosingCallableImpl() { result.asCallable() = callable } + + override Location getLocationImpl() { result = callable.getLocation() } + + override DotNet::Type getTypeImpl() { none() } + + override DataFlowType getDataFlowType() { callable = result.asDelegate() } + + override string toStringImpl() { result = "delegate self in " + callable } + } + /** An implicit entry definition for a captured variable. */ class SsaCapturedEntryDefinition extends Ssa::ImplicitEntryDefinition { private LocalScopeVariable v; @@ -1232,6 +1269,18 @@ private module ArgumentNodes { } } + /** A data-flow node that represents a delegate passed into itself. */ + class DelegateSelfArgumentNode extends ArgumentNodeImpl { + private DataFlowCall call_; + + DelegateSelfArgumentNode() { lambdaCallExpr(call_, this) } + + override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { + call = call_ and + pos.isDelegateSelf() + } + } + /** * The value of a captured variable as an implicit argument of a call, viewed * as a node in a data flow graph. @@ -1985,66 +2034,146 @@ predicate isUnreachableInCall(Node n, DataFlowCall call) { * For example, `Func` and `Func` are mapped to the same * `DataFlowType`, while `Func` and `Func` are not, because * `string` is not a type parameter. + * + * For delegates, we use the delegate itself instead of its type, in order to + * improve dispatch. */ -class DataFlowType = Gvn::GvnType; +class DataFlowType extends TDataFlowType { + Gvn::GvnType asGvnType() { this = TGvnDataFlowType(result) } + + Callable asDelegate() { this = TDelegateDataFlowType(result) } + + /** + * Gets an expression that creates a delegate of this type. + * + * For methods used as method groups in calls there can be multiple + * creations associated with the same type. + */ + Expr getADelegateCreation() { + exists(Callable callable | + lambdaCreationExpr(result, callable) and + this = TDelegateDataFlowType(callable) + ) + } + + final string toString() { + result = this.asGvnType().toString() + or + result = this.asDelegate().toString() + } +} /** Gets the type of `n` used for type pruning. */ -Gvn::GvnType getNodeType(Node n) { result = n.(NodeImpl).getDataFlowType() } +DataFlowType getNodeType(Node n) { + result = n.(NodeImpl).getDataFlowType() and + not lambdaCreation(n, _, _) and + not delegateCreationStep(_, n) + or + exists(Node arg | + delegateCreationStep(arg, n) and + result = getNodeType(arg) + ) + or + n.asExpr() = result.getADelegateCreation() +} /** Gets a string representation of a `DataFlowType`. */ string ppReprType(DataFlowType t) { result = t.toString() } -private class DataFlowNullType extends DataFlowType { +private class DataFlowNullType extends Gvn::GvnType { DataFlowNullType() { this = Gvn::getGlobalValueNumber(any(NullType nt)) } pragma[noinline] - predicate isConvertibleTo(DataFlowType t) { + predicate isConvertibleTo(Gvn::GvnType t) { defaultNullConversion(_, any(Type t0 | t = Gvn::getGlobalValueNumber(t0))) } } -private class DataFlowUnknownType extends DataFlowType { - DataFlowUnknownType() { this = Gvn::getGlobalValueNumber(any(UnknownType ut)) } -} - -private predicate uselessTypebound(DataFlowType t) { - t instanceof DataFlowUnknownType or - t instanceof Gvn::TypeParameterGvnType +private class GvnUnknownType extends Gvn::GvnType { + GvnUnknownType() { this = Gvn::getGlobalValueNumber(any(UnknownType ut)) } } pragma[nomagic] -predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { +private predicate uselessTypebound(DataFlowType dt) { + dt.asGvnType() = + any(Gvn::GvnType t | + t instanceof GvnUnknownType or + t instanceof Gvn::TypeParameterGvnType + ) +} + +pragma[nomagic] +private predicate typeStrongerThanNonDelegate(DataFlowType t1, DataFlowType t2) { t1 != t2 and - t1 = getANonTypeParameterSubTypeRestricted(t2) + t1.asGvnType() = getANonTypeParameterSubTypeRestricted(t2.asGvnType()) or - t1 instanceof RelevantDataFlowType and + t1.asGvnType() instanceof RelevantGvnType and not uselessTypebound(t1) and uselessTypebound(t2) } +bindingset[t1, t2] +predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { + typeStrongerThanNonDelegate(t1, t2) + or + exists(t1.asDelegate()) and + t1 != t2 +} + +pragma[inline] +private predicate compatibleTypesDelegateLeft(DataFlowType dt1, DataFlowType dt2) { + exists(Gvn::GvnType t1, Gvn::GvnType t2 | + t1 = exprNode(dt1.getADelegateCreation()).(NodeImpl).getDataFlowType().asGvnType() and + t2 = dt2.asGvnType() + | + commonSubType(t1, t2) + or + commonSubTypeUnifiableLeft(t1, t2) + or + commonSubTypeUnifiableLeft(t2, t1) + or + t2.(DataFlowNullType).isConvertibleTo(t1) + or + t2 instanceof Gvn::TypeParameterGvnType + or + t2 instanceof GvnUnknownType + ) +} + /** * Holds if `t1` and `t2` are compatible, that is, whether data can flow from * a node of type `t1` to a node of type `t2`. */ pragma[inline] -predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { - commonSubType(t1, t2) +predicate compatibleTypes(DataFlowType dt1, DataFlowType dt2) { + exists(Gvn::GvnType t1, Gvn::GvnType t2 | + t1 = dt1.asGvnType() and + t2 = dt2.asGvnType() + | + commonSubType(t1, t2) + or + commonSubTypeUnifiableLeft(t1, t2) + or + commonSubTypeUnifiableLeft(t2, t1) + or + t1.(DataFlowNullType).isConvertibleTo(t2) + or + t2.(DataFlowNullType).isConvertibleTo(t1) + or + t1 instanceof Gvn::TypeParameterGvnType + or + t2 instanceof Gvn::TypeParameterGvnType + or + t1 instanceof GvnUnknownType + or + t2 instanceof GvnUnknownType + ) or - commonSubTypeUnifiableLeft(t1, t2) + compatibleTypesDelegateLeft(dt1, dt2) or - commonSubTypeUnifiableLeft(t2, t1) + compatibleTypesDelegateLeft(dt2, dt1) or - t1.(DataFlowNullType).isConvertibleTo(t2) - or - t2.(DataFlowNullType).isConvertibleTo(t1) - or - t1 instanceof Gvn::TypeParameterGvnType - or - t2 instanceof Gvn::TypeParameterGvnType - or - t1 instanceof DataFlowUnknownType - or - t2 instanceof DataFlowUnknownType + dt1.asDelegate() = dt2.asDelegate() } /** @@ -2216,17 +2345,20 @@ int accessPathLimit() { result = 5 } */ predicate forceHighPrecision(Content c) { c instanceof ElementContent } +private predicate lambdaCreationExpr(Expr creation, Callable c) { + c = + [ + creation.(AnonymousFunctionExpr), + creation.(CallableAccess).getTarget().getUnboundDeclaration(), + creation.(AddressOfExpr).getOperand().(CallableAccess).getTarget().getUnboundDeclaration() + ] +} + class LambdaCallKind = Unit; /** Holds if `creation` is an expression that creates a delegate for `c`. */ predicate lambdaCreation(Node creation, LambdaCallKind kind, DataFlowCallable c) { - exists(Expr e | e = creation.asExpr() | - c.asCallable() = - [ - e.(AnonymousFunctionExpr), e.(CallableAccess).getTarget().getUnboundDeclaration(), - e.(AddressOfExpr).getOperand().(CallableAccess).getTarget().getUnboundDeclaration() - ] - ) and + lambdaCreationExpr(creation.asExpr(), c.asCallable()) and exists(kind) } @@ -2248,19 +2380,29 @@ private class LambdaConfiguration extends ControlFlowReachabilityConfiguration { } } +private predicate lambdaCallExpr(DataFlowCall call, ExprNode receiver) { + exists(LambdaConfiguration x, DelegateLikeCall dc | + x.hasExprPath(dc.getExpr(), receiver.getControlFlowNode(), dc, call.getControlFlowNode()) + ) +} + /** Holds if `call` is a lambda call where `receiver` is the lambda expression. */ predicate lambdaCall(DataFlowCall call, LambdaCallKind kind, Node receiver) { ( - exists(LambdaConfiguration x, DelegateLikeCall dc | - x.hasExprPath(dc.getExpr(), receiver.(ExprNode).getControlFlowNode(), dc, - call.getControlFlowNode()) - ) + lambdaCallExpr(call, receiver) or receiver.(FlowSummaryNode).getSummaryNode() = call.(SummaryCall).getReceiver() ) and exists(kind) } +private predicate delegateCreationStep(Node nodeFrom, Node nodeTo) { + exists(LambdaConfiguration x, DelegateCreation dc | + x.hasExprPath(dc.getArgument(), nodeFrom.(ExprNode).getControlFlowNode(), dc, + nodeTo.(ExprNode).getControlFlowNode()) + ) +} + /** Extra data-flow steps needed for lambda flow analysis. */ predicate additionalLambdaFlowStep(Node nodeFrom, Node nodeTo, boolean preservesValue) { exists(SsaImpl::DefinitionExt def | @@ -2269,11 +2411,8 @@ predicate additionalLambdaFlowStep(Node nodeFrom, Node nodeTo, boolean preserves preservesValue = true ) or - exists(LambdaConfiguration x, DelegateCreation dc | - x.hasExprPath(dc.getArgument(), nodeFrom.(ExprNode).getControlFlowNode(), dc, - nodeTo.(ExprNode).getControlFlowNode()) and - preservesValue = false - ) + delegateCreationStep(nodeFrom, nodeTo) and + preservesValue = true or exists(AddEventExpr aee | nodeFrom.asExpr() = aee.getRValue() and diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImplSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImplSpecific.qll index f7b4525091a..c57808804b0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImplSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImplSpecific.qll @@ -35,14 +35,14 @@ private module SyntheticGlobals { DataFlowCallable inject(SummarizedCallable c) { result.asSummarizedCallable() = c } /** Gets the parameter position of the instance parameter. */ -ArgumentPosition callbackSelfParameterPosition() { none() } // disables implicit summary flow to `this` for callbacks +ArgumentPosition callbackSelfParameterPosition() { result.isDelegateSelf() } /** Gets the synthesized data-flow call for `receiver`. */ SummaryCall summaryDataFlowCall(SummaryNode receiver) { receiver = result.getReceiver() } /** Gets the type of content `c`. */ DataFlowType getContentType(Content c) { - exists(Type t | result = Gvn::getGlobalValueNumber(t) | + exists(Type t | result.asGvnType() = Gvn::getGlobalValueNumber(t) | t = c.(FieldContent).getField().getType() or t = c.(PropertyContent).getProperty().getType() @@ -56,7 +56,7 @@ DataFlowType getContentType(Content c) { /** Gets the type of the parameter at the given position. */ DataFlowType getParameterType(SummarizedCallable c, ParameterPosition pos) { - exists(Type t | result = Gvn::getGlobalValueNumber(t) | + exists(Type t | result.asGvnType() = Gvn::getGlobalValueNumber(t) | exists(int i | pos.getPosition() = i and t = c.getParameter(i).getType() @@ -69,7 +69,7 @@ DataFlowType getParameterType(SummarizedCallable c, ParameterPosition pos) { /** Gets the return type of kind `rk` for callable `c`. */ DataFlowType getReturnType(DotNet::Callable c, ReturnKind rk) { - exists(Type t | result = Gvn::getGlobalValueNumber(t) | + exists(Type t | result.asGvnType() = Gvn::getGlobalValueNumber(t) | rk instanceof NormalReturnKind and ( t = c.(Constructor).getDeclaringType() @@ -88,10 +88,13 @@ DataFlowType getReturnType(DotNet::Callable c, ReturnKind rk) { */ DataFlowType getCallbackParameterType(DataFlowType t, ArgumentPosition pos) { exists(SystemLinqExpressions::DelegateExtType dt | - t = Gvn::getGlobalValueNumber(dt) and - result = + t.asGvnType() = Gvn::getGlobalValueNumber(dt) and + result.asGvnType() = Gvn::getGlobalValueNumber(dt.getDelegateType().getParameter(pos.getPosition()).getType()) ) + or + pos.isDelegateSelf() and + result = t } /** @@ -101,15 +104,15 @@ DataFlowType getCallbackParameterType(DataFlowType t, ArgumentPosition pos) { DataFlowType getCallbackReturnType(DataFlowType t, ReturnKind rk) { rk instanceof NormalReturnKind and exists(SystemLinqExpressions::DelegateExtType dt | - t = Gvn::getGlobalValueNumber(dt) and - result = Gvn::getGlobalValueNumber(dt.getDelegateType().getReturnType()) + t.asGvnType() = Gvn::getGlobalValueNumber(dt) and + result.asGvnType() = Gvn::getGlobalValueNumber(dt.getDelegateType().getReturnType()) ) } /** Gets the type of synthetic global `sg`. */ DataFlowType getSyntheticGlobalType(SummaryComponent::SyntheticGlobal sg) { exists(sg) and - result = Gvn::getGlobalValueNumber(any(ObjectType t)) + result.asGvnType() = Gvn::getGlobalValueNumber(any(ObjectType t)) } /** @@ -223,6 +226,9 @@ string getParameterPosition(ParameterPosition pos) { or pos.isThisParameter() and result = "this" + or + pos.isDelegateSelf() and + result = "delegate-self" } /** Gets the textual representation of an argument position in the format used for flow summaries. */ @@ -231,6 +237,9 @@ string getArgumentPosition(ArgumentPosition pos) { or pos.isQualifier() and result = "this" + or + pos.isDelegateSelf() and + result = "delegate-self" } /** Holds if input specification component `c` needs a reference. */ @@ -312,6 +321,9 @@ ArgumentPosition parseParamBody(string s) { or s = "this" and result.isQualifier() + or + s = "delegate-self" and + result.isDelegateSelf() } /** Gets the parameter position obtained by parsing `X` in `Argument[X]`. */ @@ -321,4 +333,7 @@ ParameterPosition parseArgBody(string s) { or s = "this" and result.isThisParameter() + or + s = "delegate-self" and + result.isDelegateSelf() } diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index 6235b1603af..fd002b2f31b 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -1,8 +1,306 @@ summary +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnCheckSlidingExpiration;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnRedirectToAccessDenied;(System.Func,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnRedirectToLogin;(System.Func,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnRedirectToLogout;(System.Func,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnRedirectToReturnUrl;(System.Func,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnSignedIn;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnSigningIn;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnSigningOut;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnValidatePrincipal;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Authentication.OAuth.Claims;ClaimActionCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Authentication.OAuth.Claims;ClaimActionCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Authentication.OAuth.Claims;CustomJsonClaimAction;false;CustomJsonClaimAction;(System.String,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.OAuth;OAuthEvents;false;set_OnCreatingTicket;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.OAuth;OAuthEvents;false;set_OnRedirectToAuthorizationEndpoint;(System.Func,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationBuilder;false;AddPolicyScheme;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationBuilder;false;AddRemoteScheme<,>;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationBuilder;false;AddScheme<,>;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationBuilder;false;AddScheme<,>;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationMiddleware;false;AuthenticationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationOptions;false;AddScheme;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationSchemeOptions;false;set_ForwardDefaultSelector;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;ClaimActionCollectionMapExtensions;false;MapCustomJson;(Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;ClaimActionCollectionMapExtensions;false;MapCustomJson;(Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection,System.String,System.String,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;RemoteAuthenticationEvents;false;set_OnAccessDenied;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;RemoteAuthenticationEvents;false;set_OnRemoteFailure;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;RemoteAuthenticationEvents;false;set_OnTicketReceived;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization.Infrastructure;AssertionRequirement;false;AssertionRequirement;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization.Infrastructure;AssertionRequirement;false;AssertionRequirement;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization.Policy;AuthorizationMiddlewareResultHandler;false;HandleAsync;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Http.HttpContext,Microsoft.AspNetCore.Authorization.AuthorizationPolicy,Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationBuilder;false;AddDefaultPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationBuilder;false;AddFallbackPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationBuilder;false;AddPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationMiddleware;false;AuthorizationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationMiddleware;false;AuthorizationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider,System.IServiceProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationOptions;false;AddPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationPolicyBuilder;false;RequireAssertion;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationPolicyBuilder;false;RequireAssertion;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;IAuthorizationMiddlewareResultHandler;true;HandleAsync;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Http.HttpContext,Microsoft.AspNetCore.Authorization.AuthorizationPolicy,Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;MapMiddleware;false;MapMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Builder.Extensions.MapOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;MapOptions;false;set_Branch;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;MapWhenMiddleware;false;MapWhenMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;MapWhenOptions;false;set_Branch;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;MapWhenOptions;false;set_Predicate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;UsePathBaseMiddleware;false;UsePathBaseMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Http.PathString);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ApplicationBuilder;false;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ApplicationBuilderExtensions;false;UseRequestLocalization;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;AuthorizationEndpointConventionBuilderExtensions;false;RequireAuthorization<>;(TBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ComponentEndpointConventionBuilder;false;Add;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ComponentEndpointConventionBuilder;false;Finally;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ComponentEndpointRouteBuilderExtensions;false;MapBlazorHub;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ComponentEndpointRouteBuilderExtensions;false;MapBlazorHub;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;false;ConfigureAppConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;false;ConfigureContainer<>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;false;ConfigureHostConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;false;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;false;ConfigureWebHost;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;false;ConfigureWebHost;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;false;UseServiceProviderFactory<>;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureWebHostBuilder;false;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureWebHostBuilder;false;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureWebHostBuilder;false;ConfigureAppConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureWebHostBuilder;false;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureWebHostBuilder;false;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConfigureWebHostBuilder;false;UseStartup<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConnectionEndpointRouteBuilder;false;Add;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConnectionEndpointRouteBuilder;false;Finally;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConnectionEndpointRouteBuilderExtensions;false;MapConnectionHandler<>;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConnectionEndpointRouteBuilderExtensions;false;MapConnections;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConnectionEndpointRouteBuilderExtensions;false;MapConnections;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ControllerActionEndpointConventionBuilder;false;Add;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ControllerActionEndpointConventionBuilder;false;Finally;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;CookiePolicyOptions;false;set_CheckConsentNeeded;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;CookiePolicyOptions;false;set_OnAppendCookie;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;CookiePolicyOptions;false;set_OnDeleteCookie;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;CorsEndpointConventionBuilderExtensions;false;RequireCors<>;(TBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;CorsMiddlewareExtensions;false;UseCors;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointBuilder;false;set_RequestDelegate;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;Map;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,Microsoft.AspNetCore.Routing.Patterns.RoutePattern,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;Map;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapDelete;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapGet;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapMethods;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Collections.Generic.IEnumerable,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapPatch;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapPost;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapPut;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRoutingApplicationBuilderExtensions;false;UseEndpoints;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ExceptionHandlerExtensions;false;UseExceptionHandler;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ExceptionHandlerOptions;false;set_ExceptionHandler;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;FallbackEndpointRouteBuilderExtensions;false;MapFallback;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;FallbackEndpointRouteBuilderExtensions;false;MapFallback;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;HostFilteringServicesExtensions;false;AddHostFiltering;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;HstsServicesExtensions;false;AddHsts;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;HttpsRedirectionServicesExtensions;false;AddHttpsRedirection;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;HubEndpointConventionBuilder;false;Add;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;HubEndpointConventionBuilder;false;Finally;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;HubEndpointRouteBuilderExtensions;false;MapHub<>;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;IApplicationBuilder;true;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;IEndpointConventionBuilder;true;Add;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;IEndpointConventionBuilder;true;Finally;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MapExtensions;false;Map;(Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Http.PathString,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MapExtensions;false;Map;(Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Http.PathString,System.Boolean,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MapExtensions;false;Map;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MapWhenExtensions;false;MapWhen;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MapWhenExtensions;false;MapWhen;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MvcApplicationBuilderExtensions;false;UseMvc;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;PageActionEndpointConventionBuilder;false;Add;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;PageActionEndpointConventionBuilder;false;Finally;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RateLimiterServiceCollectionExtensions;false;AddRateLimiter;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ResponseCompressionServicesExtensions;false;AddResponseCompression;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RouteHandlerBuilder;false;Add;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RouteHandlerBuilder;false;Finally;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RouterMiddleware;false;RouterMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.AspNetCore.Routing.IRouter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RoutingBuilderExtensions;false;UseRouter;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RoutingEndpointConventionBuilderExtensions;false;WithDisplayName<>;(TBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RunExtensions;false;Run;(Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;StaticFileOptions;false;set_OnPrepareResponse;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;StatusCodePagesExtensions;false;UseStatusCodePages;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;StatusCodePagesExtensions;false;UseStatusCodePages;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;StatusCodePagesOptions;false;set_HandleAsync;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;UseExtensions;false;Use;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;UseExtensions;false;Use;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func,System.Threading.Tasks.Task>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;UseWhenExtensions;false;UseWhen;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;UseWhenExtensions;false;UseWhen;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;WebApplication;false;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthenticationStateChangedHandler;false;BeginInvoke;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthenticationStateProvider;false;add_AuthenticationStateChanged;(Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthenticationStateProvider;false;remove_AuthenticationStateChanged;(Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeRouteView;false;set_Authorizing;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeRouteView;false;set_NotAuthorized;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeViewCore;false;set_Authorized;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeViewCore;false;set_Authorizing;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeViewCore;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeViewCore;false;set_NotAuthorized;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;CascadingAuthenticationState;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;CreateInferredBindSetter<>;(System.Action,T);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;CreateInferredBindSetter<>;(System.Func,T);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;CreateInferredEventCallback<>;(System.Object,System.Action,T);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;CreateInferredEventCallback<>;(System.Object,System.Func,T);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;InvokeAsynchronousDelegate;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;InvokeAsynchronousDelegate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;InvokeSynchronousDelegate;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;GetValidationMessages;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;IsModified;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;add_OnFieldChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;add_OnValidationRequested;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;add_OnValidationStateChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;remove_OnFieldChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;remove_OnValidationRequested;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;remove_OnValidationStateChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContextFieldClassExtensions;false;FieldCssClass<>;(Microsoft.AspNetCore.Components.Forms.EditContext,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditForm;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;FieldIdentifier;false;Create<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;InputBase<>;false;set_ValueExpression;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;InputRadioGroup<>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;InputSelect<>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;ValidationMessage<>;false;set_For;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;ValidationMessageStore;false;Add;(System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;ValidationMessageStore;false;Add;(System.Linq.Expressions.Expression>,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;ValidationMessageStore;false;Clear;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;ValidationMessageStore;false;get_Item;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Components.RenderTree;ArrayBuilderSegment<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Components.RenderTree;ArrayBuilderSegment<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Components.RenderTree;Renderer;false;add_UnhandledSynchronizationException;(System.UnhandledExceptionEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.RenderTree;Renderer;false;remove_UnhandledSynchronizationException;(System.UnhandledExceptionEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Rendering;RenderTreeBuilder;false;AddComponentReferenceCapture;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Rendering;RenderTreeBuilder;false;AddContent;(System.Int32,Microsoft.AspNetCore.Components.RenderFragment);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Rendering;RenderTreeBuilder;false;AddContent<>;(System.Int32,Microsoft.AspNetCore.Components.RenderFragment,TValue);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Rendering;RenderTreeBuilder;false;AddElementReferenceCapture;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Routing;NavLink;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Routing;Router;false;set_Found;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Routing;Router;false;set_Navigating;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Routing;Router;false;set_NotFound;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web.Virtualization;ItemsProviderDelegate<>;false;BeginInvoke;(Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<>;false;set_ItemContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<>;false;set_ItemsProvider;(Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<>;false;set_Placeholder;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;HeadContent;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;PageTitle;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;CascadingValue<>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;ComponentBase;false;InvokeAsync;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;ComponentBase;false;InvokeAsync;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;Dispatcher;true;InvokeAsync;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;Dispatcher;true;InvokeAsync;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;Dispatcher;true;InvokeAsync<>;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;Dispatcher;true;InvokeAsync<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;ErrorBoundaryBase;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;ErrorBoundaryBase;false;set_ErrorContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create;(System.Object,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create;(System.Object,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create;(System.Object,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create;(System.Object,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create<>;(System.Object,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create<>;(System.Object,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create<>;(System.Object,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create<>;(System.Object,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;CreateInferred<>;(System.Object,System.Action,TValue);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;CreateInferred<>;(System.Object,System.Func,TValue);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Boolean,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateOnly,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateOnly,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateTime,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateTime,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateTimeOffset,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateTimeOffset,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Decimal,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Double,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Int16,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Int32,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Int64,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Single,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.TimeOnly,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.TimeOnly,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Boolean,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateOnly,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateOnly,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateTime,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateTime,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateTimeOffset,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateTimeOffset,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Decimal,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Double,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Int16,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Int32,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Int64,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Single,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.TimeOnly,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.TimeOnly,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder<>;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,T,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder<>;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,T,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;LayoutComponentBase;false;set_Body;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;LayoutView;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;NavigationManager;false;RegisterLocationChangingHandler;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;NavigationManager;false;add_LocationChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;NavigationManager;false;remove_LocationChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;PersistentComponentState;false;RegisterOnPersisting;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;RenderFragment;false;BeginInvoke;(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;RenderFragment<>;false;BeginInvoke;(TValue,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;RenderHandle;false;Render;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections.Features;IConnectionCompleteFeature;true;OnCompleted;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections.Features;IConnectionHeartbeatFeature;true;OnHeartbeat;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections.Features;IStreamClosedFeature;true;OnClosed;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;ConnectionBuilder;false;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;ConnectionBuilderExtensions;false;Run;(Microsoft.AspNetCore.Connections.IConnectionBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;ConnectionBuilderExtensions;false;Use;(Microsoft.AspNetCore.Connections.IConnectionBuilder,System.Func,System.Threading.Tasks.Task>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;ConnectionDelegate;false;BeginInvoke;(Microsoft.AspNetCore.Connections.ConnectionContext,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Connections;ConnectionItems;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[this].Element;value;manual | | Microsoft.AspNetCore.Connections;ConnectionItems;false;Add;(System.Object,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Connections;ConnectionItems;false;Add;(System.Object,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -15,10 +313,86 @@ summary | Microsoft.AspNetCore.Connections;ConnectionItems;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | Microsoft.AspNetCore.Connections;ConnectionItems;false;set_Item;(System.Object,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Connections;ConnectionItems;false;set_Item;(System.Object,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Connections;IConnectionBuilder;true;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;IMultiplexedConnectionBuilder;true;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;MultiplexedConnectionBuilder;false;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;MultiplexedConnectionDelegate;false;BeginInvoke;(Microsoft.AspNetCore.Connections.MultiplexedConnectionContext,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;TlsConnectionCallbackOptions;false;set_OnConnection;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.CookiePolicy;CookiePolicyMiddleware;false;CookiePolicyMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.CookiePolicy;CookiePolicyMiddleware;false;CookiePolicyMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsMiddleware;false;CorsMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Cors.Infrastructure.ICorsService,Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsMiddleware;false;CorsMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Cors.Infrastructure.ICorsService,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsMiddleware;false;CorsMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Cors.Infrastructure.ICorsService,Microsoft.Extensions.Logging.ILoggerFactory,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsOptions;false;AddDefaultPolicy;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsOptions;false;AddPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsPolicy;false;set_IsOriginAllowed;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsPolicyBuilder;false;SetIsOriginAllowed;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.DataProtection;DataProtectionBuilderExtensions;false;AddKeyEscrowSink;(Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.DataProtection;DataProtectionBuilderExtensions;false;AddKeyManagementOptions;(Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.DataProtection;DataProtectionProvider;false;Create;(System.IO.DirectoryInfo,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.DataProtection;DataProtectionProvider;false;Create;(System.IO.DirectoryInfo,System.Action,System.Security.Cryptography.X509Certificates.X509Certificate2);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics.HealthChecks;HealthCheckMiddleware;false;HealthCheckMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics.HealthChecks;HealthCheckOptions;false;set_Predicate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics.HealthChecks;HealthCheckOptions;false;set_ResponseWriter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;DeveloperExceptionPageMiddleware;false;DeveloperExceptionPageMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,System.Diagnostics.DiagnosticSource,System.Collections.Generic.IEnumerable);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;ExceptionHandlerMiddleware;false;ExceptionHandlerMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions,System.Diagnostics.DiagnosticListener);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;IDeveloperPageExceptionFilter;true;HandleExceptionAsync;(Microsoft.AspNetCore.Diagnostics.ErrorContext,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;StatusCodeContext;false;StatusCodeContext;(Microsoft.AspNetCore.Http.HttpContext,Microsoft.AspNetCore.Builder.StatusCodePagesOptions,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;StatusCodePagesMiddleware;false;StatusCodePagesMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;WelcomePageMiddleware;false;WelcomePageMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HostFiltering;HostFilteringMiddleware;false;HostFilteringMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Options.IOptionsMonitor);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting.Infrastructure;ISupportsConfigureWebHost;true;ConfigureWebHost;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting.Infrastructure;ISupportsConfigureWebHost;true;ConfigureWebHost;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting.Infrastructure;ISupportsStartup;true;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting.Infrastructure;ISupportsStartup;true;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting.Infrastructure;ISupportsStartup;true;UseStartup<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;DelegateStartup;false;DelegateStartup;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IStartupConfigureContainerFilter<>;true;ConfigureContainer;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IStartupConfigureServicesFilter;true;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IStartupFilter;true;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IWebHostBuilder;true;ConfigureAppConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IWebHostBuilder;true;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IWebHostBuilder;true;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;KestrelServerOptionsSystemdExtensions;false;UseSystemd;(Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.Net.Security.ServerOptionsSelectionCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.Net.Security.ServerOptionsSelectionCallback,System.Object,System.TimeSpan);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.Security.Cryptography.X509Certificates.StoreName,System.String,System.Boolean,System.Security.Cryptography.X509Certificates.StoreLocation,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.String,System.String,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilder;false;ConfigureAppConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilder;false;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilder;false;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;Configure;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;Configure;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;ConfigureAppConfiguration;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;ConfigureLogging;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;ConfigureLogging;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;UseDefaultServiceProvider;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;UseDefaultServiceProvider;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;UseStartup<>;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderHttpSysExtensions;false;UseHttpSys;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;ConfigureKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;ConfigureKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;UseKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;UseKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderQuicExtensions;false;UseQuic;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderSocketExtensions;false;UseSockets;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Connections;WebSocketOptions;false;set_SubProtocolSelector;(System.Func,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Http.Extensions;QueryBuilder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Http.Extensions;QueryBuilder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.AspNetCore.Http.Features;FeatureCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Http.Features;FeatureCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Http.Features;FeatureReferences<>;false;Fetch<,>;(TFeature,TState,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Features;FeatureReferences<>;false;Fetch<>;(TFeature,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Features;HttpResponseFeature;false;OnCompleted;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Features;HttpResponseFeature;false;OnStarting;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Features;IHttpResponseFeature;true;OnCompleted;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Features;IHttpResponseFeature;true;OnStarting;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;Endpoint;false;Endpoint;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Http.EndpointMetadataCollection,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;EndpointFilterDelegate;false;BeginInvoke;(Microsoft.AspNetCore.Http.EndpointFilterInvocationContext,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;EndpointFilterExtensions;false;AddEndpointFilter<>;(TBuilder,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;EndpointFilterExtensions;false;AddEndpointFilterFactory<>;(TBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Http;EndpointMetadataCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Http;EndpointMetadataCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.AspNetCore.Http;FormCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | @@ -35,16 +409,84 @@ summary | Microsoft.AspNetCore.Http;HeaderDictionary;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | Microsoft.AspNetCore.Http;HeaderDictionary;false;set_Item;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Http;HeaderDictionary;false;set_Item;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Http;HttpResponse;true;OnCompleted;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;HttpResponse;true;OnCompleted;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;HttpResponse;true;OnStarting;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;HttpResponse;true;OnStarting;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;IEndpointFilter;true;InvokeAsync;(Microsoft.AspNetCore.Http.EndpointFilterInvocationContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;IMiddleware;true;InvokeAsync;(Microsoft.AspNetCore.Http.HttpContext,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;ProblemDetailsOptions;false;set_CustomizeProblemDetails;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Http;QueryCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Http;QueryCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Http;RequestDelegate;false;BeginInvoke;(Microsoft.AspNetCore.Http.HttpContext,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;RequestDelegateFactory;false;Create;(System.Reflection.MethodInfo,System.Func,Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;RequestDelegateFactory;false;Create;(System.Reflection.MethodInfo,System.Func,Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions,Microsoft.AspNetCore.Http.RequestDelegateMetadataResult);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;RequestDelegateResult;false;RequestDelegateResult;(Microsoft.AspNetCore.Http.RequestDelegate,System.Collections.Generic.IReadOnlyList);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;Results;false;Stream;(System.Func,System.String,System.String,System.Nullable,Microsoft.Net.Http.Headers.EntityTagHeaderValue);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;TypedResults;false;Stream;(System.Func,System.String,System.String,System.Nullable,Microsoft.Net.Http.Headers.EntityTagHeaderValue);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpOverrides;CertificateForwardingMiddleware;false;CertificateForwardingMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpOverrides;ForwardedHeadersMiddleware;false;ForwardedHeadersMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpOverrides;HttpMethodOverrideMiddleware;false;HttpMethodOverrideMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpsPolicy;HstsMiddleware;false;HstsMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpsPolicy;HstsMiddleware;false;HstsMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpsPolicy;HttpsRedirectionMiddleware;false;HttpsRedirectionMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Configuration.IConfiguration,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpsPolicy;HttpsRedirectionMiddleware;false;HttpsRedirectionMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Configuration.IConfiguration,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Identity;IdentityCookieAuthenticationBuilderExtensions;false;AddIdentityCookies;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Identity;SecurityStampValidatorOptions;false;set_OnRefreshingPrincipal;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Localization;CustomRequestCultureProvider;false;CustomRequestCultureProvider;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Localization;RequestLocalizationMiddleware;false;RequestLocalizationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddAreaFolderApplicationModelConvention;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddAreaFolderRouteModelConvention;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddAreaPageApplicationModelConvention;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddAreaPageRouteModelConvention;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddFolderApplicationModelConvention;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddFolderRouteModelConvention;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddPageApplicationModelConvention;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddPageRouteModelConvention;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc.DataAnnotations;MvcDataAnnotationsLocalizationOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc.DataAnnotations;MvcDataAnnotationsLocalizationOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.AspNetCore.Mvc.Diagnostics;EventData;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc.Diagnostics;EventData;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Filters;ActionExecutionDelegate;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;ActionFilterAttribute;true;OnActionExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext,Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;ActionFilterAttribute;true;OnResultExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext,Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;IAsyncActionFilter;true;OnActionExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext,Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;IAsyncPageFilter;true;OnPageHandlerExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext,Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;IAsyncResourceFilter;true;OnResourceExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext,Microsoft.AspNetCore.Mvc.Filters.ResourceExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;IAsyncResultFilter;true;OnResultExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext,Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;PageHandlerExecutionDelegate;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;ResourceExecutionDelegate;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;ResultExecutionDelegate;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;ResultFilterAttribute;true;OnResultExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext,Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc.Formatters.Xml;DelegatingEnumerable<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc.Formatters.Xml;DelegatingEnumerable<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.AspNetCore.Mvc.Formatters.Xml;MvcXmlOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc.Formatters.Xml;MvcXmlOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Formatters;InputFormatterContext;false;InputFormatterContext;(Microsoft.AspNetCore.Http.HttpContext,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Formatters;InputFormatterContext;false;InputFormatterContext;(Microsoft.AspNetCore.Http.HttpContext,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata,System.Func,System.Boolean);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Formatters;OutputFormatterWriteContext;false;OutputFormatterWriteContext;(Microsoft.AspNetCore.Http.HttpContext,System.Func,System.Type,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Formatters;OutputFormatterWriteContext;false;set_WriterFactory;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultMetadataDetails;false;set_BoundConstructorInvoker;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultMetadataDetails;false;set_PropertyGetter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultMetadataDetails;false;set_PropertySetter;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetAttemptedValueIsInvalidAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetMissingBindRequiredValueAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetMissingKeyOrValueAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetMissingRequestBodyRequiredValueAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetNonPropertyAttemptedValueIsInvalidAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetNonPropertyUnknownValueIsInvalidAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetNonPropertyValueMustBeANumberAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetUnknownValueIsInvalidAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetValueIsInvalidAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetValueMustBeANumberAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetValueMustNotBeNullAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_Description;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_DisplayFormatStringProvider;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_DisplayName;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_EditFormatStringProvider;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_NullDisplayTextProvider;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_Placeholder;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationEntry;false;ValidationEntry;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[this].Element;value;manual | | Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;Add;(System.Object,Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;Add;(System.Object,Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -57,6 +499,10 @@ summary | Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;set_Item;(System.Object,Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;set_Item;(System.Object,Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;BindingInfo;false;set_RequestPredicate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;DefaultModelBindingContext;false;set_PropertyFilter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;EnumGroupAndName;false;EnumGroupAndName;(System.String,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelBindingContext;true;set_PropertyFilter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary+KeyEnumerable;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary+KeyEnumerable;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary+PrefixEnumerable;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | @@ -65,10 +511,79 @@ summary | Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary+ValueEnumerable;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionaryExtensions;false;AddModelError<>;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,System.Linq.Expressions.Expression>,System.Exception,Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionaryExtensions;false;AddModelError<>;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionaryExtensions;false;Remove<>;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionaryExtensions;false;RemoveAll<>;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionaryExtensions;false;TryAddModelException<>;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,System.Linq.Expressions.Expression>,System.Exception);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc.ModelBinding;ValueProviderResult;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc.ModelBinding;ValueProviderResult;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Razor;HelperResult;false;HelperResult;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;RazorPage;false;DefineSection;(System.String,Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;RazorPageBase;false;DefineSection;(System.String,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;RazorPageBase;true;DefineSection;(System.String,Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;RazorPageFactoryResult;false;RazorPageFactoryResult;(Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;RenderAsyncDelegate;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;TagHelperInitializer<>;false;TagHelperInitializer;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageBase;false;TryUpdateModelAsync;(System.Object,System.Type,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageBase;false;TryUpdateModelAsync<>;(TModel,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageBase;false;TryUpdateModelAsync<>;(TModel,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageModel;false;TryUpdateModelAsync;(System.Object,System.Type,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageModel;false;TryUpdateModelAsync<>;(TModel,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageModel;false;TryUpdateModelAsync<>;(TModel,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageModel;true;OnPageHandlerExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext,Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc.RazorPages;RazorPagesOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc.RazorPages;RazorPagesOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayExtensions;false;DisplayFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayExtensions;false;DisplayFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayExtensions;false;DisplayFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayExtensions;false;DisplayFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayExtensions;false;DisplayFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayNameExtensions;false;DisplayNameFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper>,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperEditorExtensions;false;EditorFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperEditorExtensions;false;EditorFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperEditorExtensions;false;EditorFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperEditorExtensions;false;EditorFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperEditorExtensions;false;EditorFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;CheckBoxFor<>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;HiddenFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;PasswordFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;RadioButtonFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;TextAreaFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;TextAreaFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;TextBoxFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;TextBoxFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;TextBoxFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperLabelExtensions;false;LabelFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperLabelExtensions;false;LabelFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperLabelExtensions;false;LabelFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperSelectExtensions;false;DropDownListFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperSelectExtensions;false;DropDownListFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperSelectExtensions;false;DropDownListFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperSelectExtensions;false;ListBoxFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperValidationExtensions;false;ValidationMessageFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperValidationExtensions;false;ValidationMessageFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperValidationExtensions;false;ValidationMessageFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperValidationExtensions;false;ValidationMessageFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperValueExtensions;false;ValueFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;CheckBoxFor;(System.Linq.Expressions.Expression>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;DisplayFor<>;(System.Linq.Expressions.Expression>,System.String,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;DisplayNameFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;DisplayNameForInnerType<,>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;DisplayTextFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;DropDownListFor<>;(System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;EditorFor<>;(System.Linq.Expressions.Expression>,System.String,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;HiddenFor<>;(System.Linq.Expressions.Expression>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;IdFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;LabelFor<>;(System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;ListBoxFor<>;(System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;NameFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;PasswordFor<>;(System.Linq.Expressions.Expression>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;RadioButtonFor<>;(System.Linq.Expressions.Expression>,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;TextAreaFor<>;(System.Linq.Expressions.Expression>,System.Int32,System.Int32,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;TextBoxFor<>;(System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;ValidationMessageFor<>;(System.Linq.Expressions.Expression>,System.String,System.Object,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;ValueFor<>;(System.Linq.Expressions.Expression>,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc.Rendering;MultiSelectList;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc.Rendering;MultiSelectList;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[this].Element;value;manual | @@ -83,6 +598,33 @@ summary | Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;set_Item;(System.String,System.String);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;set_Item;(System.String,System.String);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;CheckBoxFor;(System.Linq.Expressions.Expression>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;DisplayFor<>;(System.Linq.Expressions.Expression>,System.String,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;DisplayNameFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;DisplayNameForInnerType<,>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;DisplayTextFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;DropDownListFor<>;(System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;EditorFor<>;(System.Linq.Expressions.Expression>,System.String,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;GetExpressionName<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;GetModelExplorer<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;HiddenFor<>;(System.Linq.Expressions.Expression>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;IdFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;LabelFor<>;(System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;ListBoxFor<>;(System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;NameFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;PasswordFor<>;(System.Linq.Expressions.Expression>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;RadioButtonFor<>;(System.Linq.Expressions.Expression>,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;TextAreaFor<>;(System.Linq.Expressions.Expression>,System.Int32,System.Int32,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;TextBoxFor<>;(System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;ValidationMessageFor<>;(System.Linq.Expressions.Expression>,System.String,System.Object,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;ValueFor<>;(System.Linq.Expressions.Expression>,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;IModelExpressionProvider;true;CreateModelExpression<,>;(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExplorer;false;GetExplorerForExpression;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExplorer;false;GetExplorerForExpression;(System.Type,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExplorer;false;GetExplorerForProperty;(System.String,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExplorer;false;ModelExplorer;(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider,Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer,Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExpressionProvider;false;CreateModelExpression<,>;(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExpressionProvider;false;GetExpressionText<,>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[this].Element;value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;Add;(System.String,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;Add;(System.String,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -95,6 +637,7 @@ summary | Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;set_Item;(System.String,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;set_Item;(System.String,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TryGetValueDelegate;false;BeginInvoke;(System.Object,System.String,System.Object,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[this].Element;value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;Add;(System.String,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;Add;(System.String,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -107,13 +650,42 @@ summary | Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;set_Item;(System.String,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;set_Item;(System.String,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataInfo;false;ViewDataInfo;(System.Object,System.Reflection.PropertyInfo,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc;ApiBehaviorOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc;ApiBehaviorOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc;ApiBehaviorOptions;false;set_InvalidModelStateResponseFactory;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc;Controller;true;OnActionExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext,Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc;ControllerBase;false;TryUpdateModelAsync;(System.Object,System.Type,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc;ControllerBase;false;TryUpdateModelAsync<>;(TModel,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc;ControllerBase;false;TryUpdateModelAsync<>;(TModel,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Mvc;MvcOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc;MvcOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.AspNetCore.Mvc;MvcViewOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.AspNetCore.Mvc;MvcViewOptions;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.AspNetCore.Mvc;RemoteAttributeBase;false;FormatErrorMessage;(System.String);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;false;AddBasePolicy;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;false;AddBasePolicy;(System.Action,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;false;AddPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;false;AddPolicy;(System.String,System.Action,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;SetCacheKeyPrefix;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;SetCacheKeyPrefix;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;VaryByValue;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;VaryByValue;(System.Func>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;With;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;With;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptions;false;AddPolicy<>;(System.String,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptions;false;set_OnRejected;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptionsExtensions;false;AddConcurrencyLimiter;(Microsoft.AspNetCore.RateLimiting.RateLimiterOptions,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptionsExtensions;false;AddFixedWindowLimiter;(Microsoft.AspNetCore.RateLimiting.RateLimiterOptions,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptionsExtensions;false;AddSlidingWindowLimiter;(Microsoft.AspNetCore.RateLimiting.RateLimiterOptions,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptionsExtensions;false;AddTokenBucketLimiter;(Microsoft.AspNetCore.RateLimiting.RateLimiterOptions,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperExecutionContext;false;Reinitialize;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagMode,System.Collections.Generic.IDictionary,System.String,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperExecutionContext;false;TagHelperExecutionContext;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagMode,System.Collections.Generic.IDictionary,System.String,System.Func,System.Action,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperExecutionContext;false;TagHelperExecutionContext;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagMode,System.Collections.Generic.IDictionary,System.String,System.Func,System.Action,System.Func);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperExecutionContext;false;TagHelperExecutionContext;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagMode,System.Collections.Generic.IDictionary,System.String,System.Func,System.Action,System.Func);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperScopeManager;false;Begin;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagMode,System.String,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperScopeManager;false;TagHelperScopeManager;(System.Action,System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperScopeManager;false;TagHelperScopeManager;(System.Action,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Razor.TagHelpers;NullHtmlEncoder;false;Encode;(System.IO.TextWriter,System.Char[],System.Int32,System.Int32);;Argument[1].Element;Argument[0];taint;df-generated | | Microsoft.AspNetCore.Razor.TagHelpers;NullHtmlEncoder;false;Encode;(System.IO.TextWriter,System.String,System.Int32,System.Int32);;Argument[1];Argument[0];taint;df-generated | | Microsoft.AspNetCore.Razor.TagHelpers;NullHtmlEncoder;false;Encode;(System.String);;Argument[0];ReturnValue;taint;df-generated | @@ -122,6 +694,34 @@ summary | Microsoft.AspNetCore.Razor.TagHelpers;TagHelperAttributeList;false;Insert;(System.Int32,Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute);;Argument[1];Argument[this].Element;value;manual | | Microsoft.AspNetCore.Razor.TagHelpers;TagHelperAttributeList;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | Microsoft.AspNetCore.Razor.TagHelpers;TagHelperAttributeList;false;set_Item;(System.Int32,Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute);;Argument[1];Argument[this].Element;value;manual | +| Microsoft.AspNetCore.Razor.TagHelpers;TagHelperOutput;false;TagHelperOutput;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList,System.Func>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.ResponseCaching;ResponseCachingMiddleware;false;ResponseCachingMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.ObjectPool.ObjectPoolProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.ResponseCompression;ResponseCompressionMiddleware;false;ResponseCompressionMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Rewrite;RewriteMiddleware;false;RewriteMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Rewrite;RewriteOptionsExtensions;false;Add;(Microsoft.AspNetCore.Rewrite.RewriteOptions,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapDelete;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapDelete;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapGet;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapGet;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewareDelete;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewareGet;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewarePost;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewarePut;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewareRoute;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewareVerb;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.String,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapPost;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapPost;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapPut;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapPut;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapRoute;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapVerb;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapVerb;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.String,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RouteContext;false;set_Handler;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RouteEndpoint;false;RouteEndpoint;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Routing.Patterns.RoutePattern,System.Int32,Microsoft.AspNetCore.Http.EndpointMetadataCollection,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RouteEndpointBuilder;false;RouteEndpointBuilder;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Routing.Patterns.RoutePattern,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RouteGroupBuilder;false;Add;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RouteGroupBuilder;false;Finally;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RouteHandler;false;RouteHandler;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Routing;RouteValueDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[this].Element;value;manual | | Microsoft.AspNetCore.Routing;RouteValueDictionary;false;Add;(System.String,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Microsoft.AspNetCore.Routing;RouteValueDictionary;false;Add;(System.String,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -144,6 +744,46 @@ summary | Microsoft.AspNetCore.Server.IIS.Core;WriteOnlyStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | | Microsoft.AspNetCore.Server.IIS.Core;WriteOnlyStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0].Element;taint;manual | | Microsoft.AspNetCore.Server.IIS.Core;WriteOnlyStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.AspNetCore.Server.IISIntegration;IISMiddleware;false;IISMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions,System.String,Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider,Microsoft.Extensions.Hosting.IHostApplicationLifetime);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.IISIntegration;IISMiddleware;false;IISMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions,System.String,System.Boolean,Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider,Microsoft.Extensions.Hosting.IHostApplicationLifetime);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ConfigureEndpointDefaults;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ConfigureHttpsDefaults;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;Listen;(System.Net.EndPoint,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;Listen;(System.Net.IPAddress,System.Int32,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;Listen;(System.Net.IPEndPoint,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenAnyIP;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenHandle;(System.UInt64,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenLocalhost;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenUnixSocket;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;set_RequestHeaderEncodingSelector;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;set_ResponseHeaderEncodingSelector;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;ListenOptions;false;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;ListenOptions;false;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Https;HttpsConnectionAdapterOptions;false;set_ClientCertificateValidation;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Https;HttpsConnectionAdapterOptions;false;set_OnAuthenticate;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Https;HttpsConnectionAdapterOptions;false;set_ServerCertificateSelector;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Https;TlsHandshakeCallbackOptions;false;set_OnConnection;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets;SocketTransportOptions;false;set_CreateBoundListenSocket;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;AnyIPEndpoint;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;Endpoint;(System.Net.IPAddress,System.Int32,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;Endpoint;(System.Net.IPEndPoint,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;Endpoint;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;HandleEndpoint;(System.UInt64,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;LocalhostEndpoint;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;UnixSocketEndpoint;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Session;DistributedSession;false;DistributedSession;(Microsoft.Extensions.Caching.Distributed.IDistributedCache,System.String,System.TimeSpan,System.TimeSpan,System.Func,Microsoft.Extensions.Logging.ILoggerFactory,System.Boolean);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Session;DistributedSessionStore;false;Create;(System.String,System.TimeSpan,System.TimeSpan,System.Func,System.Boolean);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Session;ISessionStore;true;Create;(System.String,System.TimeSpan,System.TimeSpan,System.Func,System.Boolean);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Session;SessionMiddleware;false;SessionMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.AspNetCore.DataProtection.IDataProtectionProvider,Microsoft.AspNetCore.Session.ISessionStore,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.SignalR;IHubFilter;true;InvokeMethodAsync;(Microsoft.AspNetCore.SignalR.HubInvocationContext,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.SignalR;IHubFilter;true;OnConnectedAsync;(Microsoft.AspNetCore.SignalR.HubLifetimeContext,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.SignalR;IHubFilter;true;OnDisconnectedAsync;(Microsoft.AspNetCore.SignalR.HubLifetimeContext,System.Exception,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.StaticFiles;DefaultFilesMiddleware;false;DefaultFilesMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.StaticFiles;DirectoryBrowserMiddleware;false;DirectoryBrowserMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.StaticFiles;DirectoryBrowserMiddleware;false;DirectoryBrowserMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,System.Text.Encodings.Web.HtmlEncoder,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.StaticFiles;StaticFileMiddleware;false;StaticFileMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.WebSockets;WebSocketMiddleware;false;WebSocketMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.WebSockets;WebSocketsDependencyInjectionExtensions;false;AddWebSockets;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.WebUtilities;BufferedReadStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.AspNetCore.WebUtilities;BufferedReadStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | | Microsoft.AspNetCore.WebUtilities;BufferedReadStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0].Element;taint;manual | @@ -152,12 +792,15 @@ summary | Microsoft.AspNetCore.WebUtilities;BufferedReadStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[this];taint;manual | | Microsoft.AspNetCore.WebUtilities;BufferedReadStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual | +| Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;FileBufferingReadStream;(System.IO.Stream,System.Int32,System.Nullable,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;FileBufferingReadStream;(System.IO.Stream,System.Int32,System.Nullable,System.Func,System.Buffers.ArrayPool);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | | Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0].Element;taint;manual | | Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;manual | | Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[this];taint;manual | | Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.AspNetCore.WebUtilities;FileBufferingWriteStream;false;FileBufferingWriteStream;(System.Int32,System.Nullable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.WebUtilities;FileBufferingWriteStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.AspNetCore.WebUtilities;FileBufferingWriteStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | | Microsoft.AspNetCore.WebUtilities;FileBufferingWriteStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0].Element;taint;manual | @@ -190,6 +833,12 @@ summary | Microsoft.AspNetCore.WebUtilities;HttpResponseStreamWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.AspNetCore.WebUtilities;HttpResponseStreamWriter;false;WriteLineAsync;(System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.AspNetCore.WebUtilities;HttpResponseStreamWriter;false;WriteLineAsync;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.AspNetCore;WebHost;false;Start;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;Start;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;Start;(System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;Start;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;StartWith;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;StartWith;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;BinaryOperation;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Linq.Expressions.ExpressionType,System.Type,System.Collections.Generic.IEnumerable);;Argument[2];ReturnValue;taint;df-generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;BinaryOperation;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Linq.Expressions.ExpressionType,System.Type,System.Collections.Generic.IEnumerable);;Argument[3].Element;ReturnValue;taint;df-generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;Convert;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Type,System.Type);;Argument[2];ReturnValue;taint;df-generated | @@ -239,6 +888,8 @@ summary | Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;set_AbsoluteExpirationRelativeToNow;(System.Nullable);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;set_SlidingExpiration;(System.Nullable);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Primitives.IChangeToken);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.DateTimeOffset);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[1];Argument[0];taint;df-generated | @@ -254,6 +905,8 @@ summary | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[1];Argument[0];taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[1];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;GetOrCreate<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;GetOrCreateAsync<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem);;Argument[2];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);;Argument[2];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem,Microsoft.Extensions.Primitives.IChangeToken);;Argument[2];ReturnValue;taint;df-generated | @@ -262,6 +915,8 @@ summary | Microsoft.Extensions.Caching.Memory;MemoryCache;false;CreateEntry;(System.Object);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCache;false;MemoryCache;(Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Primitives.IChangeToken);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[1];Argument[0];taint;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[1];ReturnValue;taint;df-generated | @@ -284,8 +939,11 @@ summary | Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;get_SizeLimit;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;get_Value;();;Argument[this];ReturnValue;value;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;set_SizeLimit;(System.Nullable);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.Caching.Memory;PostEvictionCallbackRegistration;false;set_EvictionCallback;(Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Caching.Memory;PostEvictionDelegate;false;BeginInvoke;(System.Object,System.Object,Microsoft.Extensions.Caching.Memory.EvictionReason,System.Object,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration.EnvironmentVariables;EnvironmentVariablesConfigurationProvider;false;EnvironmentVariablesConfigurationProvider;(System.String);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration.EnvironmentVariables;EnvironmentVariablesConfigurationProvider;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration.KeyPerFile;KeyPerFileConfigurationSource;false;set_IgnoreCondition;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration.Memory;MemoryConfigurationProvider;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.Extensions.Configuration.Memory;MemoryConfigurationProvider;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.Extensions.Configuration.Memory;MemoryConfigurationProvider;false;MemoryConfigurationProvider;(Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource);;Argument[0];Argument[this];taint;df-generated | @@ -297,10 +955,14 @@ summary | Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;GetChildKeys;(System.Collections.Generic.IEnumerable,System.String);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;GetReloadToken;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;TryGet;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;false;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;false;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[]);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;false;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[],System.Collections.Generic.IDictionary);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;Bind;(Microsoft.Extensions.Configuration.IConfiguration,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get<>;(Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get<>;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);;Argument[3];ReturnValue;taint;df-generated | @@ -308,6 +970,7 @@ summary | Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue<>;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue<>;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);;Argument[2];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBuilder;false;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);;Argument[this];ReturnValue;value;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationExtensions;false;Add<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetConnectionString;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetRequiredSection;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetRequiredSection;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[1];ReturnValue;taint;df-generated | @@ -327,6 +990,7 @@ summary | Microsoft.Extensions.Configuration;ConfigurationPath;false;GetSectionKey;(System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationProvider;false;GetReloadToken;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationProvider;true;GetChildKeys;(System.Collections.Generic.IEnumerable,System.String);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationReloadToken;false;RegisterChangeCallback;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;false;ConfigurationRoot;(System.Collections.Generic.IList);;Argument[0].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;false;GetReloadToken;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;false;GetSection;(System.String);;Argument[0];ReturnValue;taint;df-generated | @@ -334,6 +998,7 @@ summary | Microsoft.Extensions.Configuration;ConfigurationRoot;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;false;get_Providers;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationRootExtensions;false;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationRootExtensions;false;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;false;ConfigurationSection;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.String);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;false;ConfigurationSection;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.String);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -341,19 +1006,25 @@ summary | Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Path;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;false;SetBasePath;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;FileConfigurationExtensions;false;SetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;false;SetFileProvider;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;FileConfigurationSource;false;set_OnLoadException;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;KeyPerFileConfigurationBuilderExtensions;false;AddKeyPerFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;MemoryConfigurationBuilderExtensions;false;AddInMemoryCollection;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;MemoryConfigurationBuilderExtensions;false;AddInMemoryCollection;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Reflection.Assembly);;Argument[0];ReturnValue;taint;df-generated | @@ -365,6 +1036,7 @@ summary | Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | @@ -384,31 +1056,183 @@ summary | Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAdd;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[0].Element;taint;df-generated | | Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddEnumerable;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;df-generated | | Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddEnumerable;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[0].Element;taint;df-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddScoped<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddTransient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ActivatorUtilities;false;GetServiceOrCreateInstance;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ActivatorUtilities;false;GetServiceOrCreateInstance<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;AntiforgeryServiceCollectionExtensions;false;AddAntiforgery;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;AsyncServiceScope;false;AsyncServiceScope;(Microsoft.Extensions.DependencyInjection.IServiceScope);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.DependencyInjection;AsyncServiceScope;false;get_ServiceProvider;();;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;AuthenticationCoreServiceCollectionExtensions;false;AddAuthenticationCore;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;AuthenticationServiceCollectionExtensions;false;AddAuthentication;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;AuthorizationServiceCollectionExtensions;false;AddAuthorizationCore;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CertificateForwardingServiceExtensions;false;AddCertificateForwarding;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ComponentServiceCollectionExtensions;false;AddServerSideBlazor;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ConnectionsDependencyInjectionExtensions;false;AddConnections;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CookieExtensions;false;AddCookie;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CookieExtensions;false;AddCookie;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CookieExtensions;false;AddCookie;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.String,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CookiePolicyServiceCollectionExtensions;false;AddCookiePolicy;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CookiePolicyServiceCollectionExtensions;false;AddCookiePolicy<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CorsServiceCollectionExtensions;false;AddCors;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;DataProtectionServiceCollectionExtensions;false;AddDataProtection;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;DefaultServiceProviderFactory;false;CreateBuilder;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;DefaultServiceProviderFactory;false;DefaultServiceProviderFactory;(Microsoft.Extensions.DependencyInjection.ServiceProviderOptions);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.DependencyInjection;EncoderServiceCollectionExtensions;false;AddWebEncoders;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ExceptionHandlerServiceCollectionExtensions;false;AddExceptionHandler;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ExceptionHandlerServiceCollectionExtensions;false;AddExceptionHandler<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddAsyncCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func>,System.Collections.Generic.IEnumerable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddAsyncCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func>,System.Collections.Generic.IEnumerable,System.Nullable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddAsyncCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func>,System.Collections.Generic.IEnumerable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddAsyncCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func>,System.Collections.Generic.IEnumerable,System.Nullable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func,System.Collections.Generic.IEnumerable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func,System.Collections.Generic.IEnumerable,System.Nullable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func,System.Collections.Generic.IEnumerable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func,System.Collections.Generic.IEnumerable,System.Nullable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<,>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;SetHandlerLifetime;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.TimeSpan);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpJsonServiceExtensions;false;ConfigureHttpJsonOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpLoggingServicesExtensions;false;AddHttpLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpLoggingServicesExtensions;false;AddW3CLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;AddIdentity<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;AddIdentityCore<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;ConfigureApplicationCookie;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;ConfigureExternalCookie;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;JsonProtocolDependencyInjectionExtensions;false;AddJsonProtocol<>;(TBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;LocalizationServiceCollectionExtensions;false;AddLocalization;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;false;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;false;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;AddFormatterMappings;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;AddJsonOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;AddMvcOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;ConfigureApiBehaviorOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;ConfigureApplicationPartManager;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;AddAuthorization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;AddFormatterMappings;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;AddJsonOptions;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;AddMvcOptions;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;ConfigureApiBehaviorOptions;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;ConfigureApplicationPartManager;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreServiceCollectionExtensions;false;AddMvcCore;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCorsMvcCoreBuilderExtensions;false;AddCors;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCorsMvcCoreBuilderExtensions;false;ConfigureCors;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcDataAnnotationsMvcBuilderExtensions;false;AddDataAnnotationsLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcDataAnnotationsMvcCoreBuilderExtensions;false;AddDataAnnotationsLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddViewLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddViewLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddViewLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddViewLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorMvcBuilderExtensions;false;AddRazorOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorMvcBuilderExtensions;false;InitializeTagHelper<>;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorMvcCoreBuilderExtensions;false;AddRazorViewEngine;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorMvcCoreBuilderExtensions;false;InitializeTagHelper<>;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorPagesMvcBuilderExtensions;false;AddRazorPagesOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorPagesMvcCoreBuilderExtensions;false;AddRazorPages;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcServiceCollectionExtensions;false;AddControllers;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcServiceCollectionExtensions;false;AddControllersWithViews;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcServiceCollectionExtensions;false;AddMvc;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcServiceCollectionExtensions;false;AddRazorPages;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcViewFeaturesMvcBuilderExtensions;false;AddCookieTempDataProvider;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcViewFeaturesMvcBuilderExtensions;false;AddViewOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcViewFeaturesMvcCoreBuilderExtensions;false;AddCookieTempDataProvider;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcViewFeaturesMvcCoreBuilderExtensions;false;AddViews;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcViewFeaturesMvcCoreBuilderExtensions;false;ConfigureViews;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcBuilderExtensions;false;AddXmlDataContractSerializerFormatters;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcBuilderExtensions;false;AddXmlOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcBuilderExtensions;false;AddXmlSerializerFormatters;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcCoreBuilderExtensions;false;AddXmlDataContractSerializerFormatters;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcCoreBuilderExtensions;false;AddXmlOptions;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcCoreBuilderExtensions;false;AddXmlSerializerFormatters;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OAuthExtensions;false;AddOAuth;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OAuthExtensions;false;AddOAuth;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.String,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OAuthExtensions;false;AddOAuth<,>;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OAuthExtensions;false;AddOAuth<,>;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.String,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ObjectFactory;false;BeginInvoke;(System.IServiceProvider,System.Object[],System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;Bind<>;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;Bind<>;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;BindConfiguration<>;(Microsoft.Extensions.Options.OptionsBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderDataAnnotationsExtensions;false;ValidateDataAnnotations<>;(Microsoft.Extensions.Options.OptionsBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderExtensions;false;ValidateOnStart<>;(Microsoft.Extensions.Options.OptionsBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;AddOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureAll<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;PostConfigure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;PostConfigure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;PostConfigureAll<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OutputCacheConventionBuilderExtensions;false;CacheOutput<>;(TBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OutputCacheConventionBuilderExtensions;false;CacheOutput<>;(TBuilder,System.Action,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OutputCacheServiceCollectionExtensions;false;AddOutputCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;PageConventionCollectionExtensions;false;ConfigureFilter;(Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;PolicyServiceCollectionExtensions;false;AddAuthorization;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ProblemDetailsServiceCollectionExtensions;false;AddProblemDetails;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;RequestDecompressionServiceExtensions;false;AddRequestDecompression;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;RequestLocalizationServiceCollectionExtensions;false;AddRequestLocalization;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;RequestLocalizationServiceCollectionExtensions;false;AddRequestLocalization<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ResponseCachingServicesExtensions;false;AddResponseCaching;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;RoutingServiceCollectionExtensions;false;AddRouting;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServerSideBlazorBuilderExtensions;false;AddCircuitOptions;(Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServerSideBlazorBuilderExtensions;false;AddHubOptions;(Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollection;false;Add;(Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[0];Argument[this].Element;value;manual | | Microsoft.Extensions.DependencyInjection;ServiceCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | Microsoft.Extensions.DependencyInjection;ServiceCollection;false;CopyTo;(Microsoft.Extensions.DependencyInjection.ServiceDescriptor[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | @@ -418,25 +1242,56 @@ summary | Microsoft.Extensions.DependencyInjection;ServiceCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | Microsoft.Extensions.DependencyInjection;ServiceCollection;false;set_Item;(System.Int32,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[this].Element;value;manual | | Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;false;AddHostedService<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;false;AddHostedService<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,TService);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Describe;(System.Type,System.Func,Microsoft.Extensions.DependencyInjection.ServiceLifetime);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Scoped;(System.Type,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Scoped<,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Scoped<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;ServiceDescriptor;(System.Type,System.Func,Microsoft.Extensions.DependencyInjection.ServiceLifetime);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Singleton;(System.Type,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Singleton<,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Singleton<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Transient;(System.Type,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Transient<,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Transient<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetRequiredService;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetRequiredService<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetService<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetServices;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetServices<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;SessionServiceCollectionExtensions;false;AddSession;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;SignalRDependencyInjectionExtensions;false;AddHubOptions<>;(Microsoft.AspNetCore.SignalR.ISignalRServerBuilder,System.Action>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;SignalRDependencyInjectionExtensions;false;AddSignalR;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;TagHelperServicesExtensions;false;AddCacheTagHelperLimits;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;TagHelperServicesExtensions;false;AddCacheTagHelperLimits;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckPublisherOptions;false;set_Predicate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckRegistration;false;HealthCheckRegistration;(System.String,System.Func,System.Nullable,System.Collections.Generic.IEnumerable);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckRegistration;false;HealthCheckRegistration;(System.String,System.Func,System.Nullable,System.Collections.Generic.IEnumerable,System.Nullable);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckRegistration;false;set_Factory;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckService;true;CheckHealthAsync;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;CompositeDirectoryContents;(System.Collections.Generic.IList,System.String);;Argument[0].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;CompositeDirectoryContents;(System.Collections.Generic.IList,System.String);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | @@ -451,6 +1306,8 @@ summary | Microsoft.Extensions.FileProviders.Physical;PhysicalFilesWatcher;false;PhysicalFilesWatcher;(System.String,System.IO.FileSystemWatcher,System.Boolean,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.FileProviders.Physical;PhysicalFilesWatcher;false;PhysicalFilesWatcher;(System.String,System.IO.FileSystemWatcher,System.Boolean,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.FileProviders.Physical;PollingFileChangeToken;false;PollingFileChangeToken;(System.IO.FileInfo);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.FileProviders.Physical;PollingFileChangeToken;false;RegisterChangeCallback;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.FileProviders.Physical;PollingWildCardChangeToken;false;RegisterChangeCallback;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.FileProviders;CompositeFileProvider;false;CompositeFileProvider;(Microsoft.Extensions.FileProviders.IFileProvider[]);;Argument[0].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.FileProviders;CompositeFileProvider;false;CompositeFileProvider;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.FileProviders;CompositeFileProvider;false;GetDirectoryContents;(System.String);;Argument[0];ReturnValue;taint;df-generated | @@ -458,15 +1315,20 @@ summary | Microsoft.Extensions.FileProviders;CompositeFileProvider;false;get_FileProviders;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileProviders;NotFoundDirectoryContents;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | Microsoft.Extensions.FileProviders;NotFoundDirectoryContents;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.Extensions.FileProviders;NullChangeToken;false;RegisterChangeCallback;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.FileProviders;PhysicalFileProvider;false;GetDirectoryContents;(System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;DirectoryInfoWrapper;false;GetDirectory;(System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;false;FileInfoWrapper;(System.IO.FileInfo);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;false;get_FullName;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContext<>;false;PushDataFrame;(TFrame);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContext<>;true;Declare;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextLinear+FrameData;false;get_Stem;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextLinear;false;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextLinearInclude;false;Declare;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged+FrameData;false;get_Stem;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;false;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRaggedInclude;false;Declare;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal;IPatternContext;true;Declare;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal;MatcherContext;false;MatcherContext;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,System.StringComparison);;Argument[2];Argument[this];taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;EnumerateFileSystemInfos;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;GetDirectory;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -480,12 +1342,40 @@ summary | Microsoft.Extensions.Hosting.Internal;ApplicationLifetime;false;get_ApplicationStopping;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Hosting;BackgroundService;true;StartAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Hosting;BackgroundService;true;get_ExecuteTask;();;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Hosting;GenericHostBuilderExtensions;false;ConfigureWebHostDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;GenericHostBuilderExtensions;false;ConfigureWebHostDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;GenericHostBuilderExtensions;false;ConfigureWebHostDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostApplicationBuilder;false;ConfigureContainer<>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostBuilder;false;ConfigureAppConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostBuilder;false;ConfigureContainer<>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostBuilder;false;ConfigureHostConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostBuilder;false;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);;Argument[this];ReturnValue;value;df-generated | +| Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<>;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureAppConfiguration;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureContainer<>;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.String[]);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;RunConsoleAsync;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseContentRoot;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseEnvironment;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureAppConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureContainer<>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureHostConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;IHostBuilder;true;UseServiceProviderFactory<>;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[1];Argument[this];taint;df-generated | @@ -494,8 +1384,15 @@ summary | Microsoft.Extensions.Http.Logging;LoggingScopeHttpMessageHandler;false;LoggingScopeHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Http;HttpClientFactoryOptions;false;get_HandlerLifetime;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Http;HttpClientFactoryOptions;false;set_HandlerLifetime;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.Http;HttpClientFactoryOptions;false;set_ShouldRedactHeaderValue;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Http;HttpMessageHandlerBuilder;false;CreateHandlerPipeline;(System.Net.Http.HttpMessageHandler,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Http;HttpMessageHandlerBuilder;false;CreateHandlerPipeline;(System.Net.Http.HttpMessageHandler,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.Http;IHttpMessageHandlerBuilderFilter;true;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Localization;IResourceNamesCache;true;GetOrAdd;(System.String,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Localization;ResourceNamesCache;false;GetOrAdd;(System.String,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging.Abstractions;LogEntry<>;false;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging.Abstractions;NullLogger;false;Log<>;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging.Abstractions;NullLogger<>;false;Log<>;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;ConsoleLoggerProvider;(Microsoft.Extensions.Options.IOptionsMonitor,System.Collections.Generic.IEnumerable);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;CreateLogger;(System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;CreateLogger;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -505,29 +1402,57 @@ summary | Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;CreateLogger;(System.String);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;EventLogLoggerProvider;(Microsoft.Extensions.Logging.EventLog.EventLogSettings);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;SetScopeProvider;(Microsoft.Extensions.Logging.IExternalScopeProvider);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.Logging.EventLog;EventLogSettings;false;set_Filter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging.EventSource;EventSourceLoggerProvider;false;CreateLogger;(System.String);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging.EventSource;EventSourceLoggerProvider;false;EventSourceLoggerProvider;(Microsoft.Extensions.Logging.EventSource.LoggingEventSource);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;TraceSourceLoggerProvider;(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;TraceSourceLoggerProvider;(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsoleFormatter<,>;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsoleFormatter<,>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;false;AddDebug;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.EventLog.EventLogSettings);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;EventSourceLoggerFactoryExtensions;false;AddEventSourceLogger;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;IExternalScopeProvider;true;ForEachScope<>;(System.Action,TState);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;ILogger;true;Log<>;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;Logger<>;false;BeginScope<>;(TState);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;Logger<>;false;Log<>;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggerExtensions;false;BeginScope;(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[]);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;LoggerExternalScopeProvider;false;ForEachScope<>;(System.Action,TState);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggerExternalScopeProvider;false;Push;(System.Object);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;LoggerFactory;false;Create;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;LoggerFilterRule;false;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;AddConfiguration;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;AddProvider;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.ILoggerProvider);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;ClearProviders;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;Configure;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;SetMinimumLevel;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Diagnostics.SourceSwitch);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[0];ReturnValue;taint;df-generated | @@ -535,13 +1460,69 @@ summary | Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Diagnostics.TraceListener);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Options;ConfigurationChangeTokenSource<>;false;ConfigurationChangeTokenSource;(System.String,Microsoft.Extensions.Configuration.IConfiguration);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigurationChangeTokenSource<>;false;GetChangeToken;();;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<,,,,,>;false;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<,,,,>;false;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<,,,>;false;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<,,>;false;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<,>;false;ConfigureNamedOptions;(System.String,TDep,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<>;false;ConfigureNamedOptions;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureOptions<>;false;ConfigureOptions;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;IOptionsMonitor<>;true;OnChange;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;IOptionsMonitorCache<>;true;GetOrAdd;(System.String,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;NamedConfigureFromConfigurationOptions<>;false;NamedConfigureFromConfigurationOptions;(System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure<,,,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure<,,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure<,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure<,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure<>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure<,,,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure<,,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure<,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure<,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure<>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,,,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,,,>;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,,>;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,>;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,>;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<>;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsCache<>;false;GetOrAdd;(System.String,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[0].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[1].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[2].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Options;OptionsManager<>;false;OptionsManager;(Microsoft.Extensions.Options.IOptionsFactory);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.Options;OptionsMonitor<>;false;OnChange;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsMonitor<>;false;OptionsMonitor;(Microsoft.Extensions.Options.IOptionsFactory,System.Collections.Generic.IEnumerable>,Microsoft.Extensions.Options.IOptionsMonitorCache);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;OptionsMonitor<>;false;OptionsMonitor;(Microsoft.Extensions.Options.IOptionsFactory,System.Collections.Generic.IEnumerable>,Microsoft.Extensions.Options.IOptionsMonitorCache);;Argument[2];Argument[this];taint;df-generated | +| Microsoft.Extensions.Options;OptionsMonitorExtensions;false;OnChange<>;(Microsoft.Extensions.Options.IOptionsMonitor,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<,,,,,>;false;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<,,,,>;false;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<,,,>;false;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<,,>;false;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<,>;false;PostConfigureOptions;(System.String,TDep,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<>;false;PostConfigureOptions;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<,,,,,>;false;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<,,,,>;false;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<,,,>;false;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<,,>;false;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<,>;false;ValidateOptions;(System.String,TDep,System.Func,System.String);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<>;false;ValidateOptions;(System.String,System.Func,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Primitives;CancellationChangeToken;false;RegisterChangeCallback;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Primitives;ChangeToken;false;OnChange;(System.Func,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Primitives;ChangeToken;false;OnChange;(System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Primitives;ChangeToken;false;OnChange<>;(System.Func,System.Action,TState);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Primitives;ChangeToken;false;OnChange<>;(System.Func,System.Action,TState);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Primitives;CompositeChangeToken;false;RegisterChangeCallback;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Primitives;Extensions;false;Append;(System.Text.StringBuilder,Microsoft.Extensions.Primitives.StringSegment);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Primitives;IChangeToken;true;RegisterChangeCallback;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Primitives;StringSegment;false;Split;(System.Char[]);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.Primitives;StringSegment;false;Split;(System.Char[]);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Primitives;StringTokenizer+Enumerator;false;Enumerator;(Microsoft.Extensions.Primitives.StringTokenizer);;Argument[0].Element;Argument[this];taint;df-generated | @@ -659,7 +1640,13 @@ summary | Newtonsoft.Json.Linq;JContainer;false;Find;(System.ComponentModel.PropertyDescriptor,System.Object);;Argument[this].Element;ReturnValue;value;manual | | Newtonsoft.Json.Linq;JContainer;false;Insert;(System.Int32,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element;value;manual | | Newtonsoft.Json.Linq;JContainer;false;Insert;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | +| Newtonsoft.Json.Linq;JContainer;false;add_AddingNew;(System.ComponentModel.AddingNewEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Linq;JContainer;false;add_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Linq;JContainer;false;add_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Newtonsoft.Json.Linq;JContainer;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | +| Newtonsoft.Json.Linq;JContainer;false;remove_AddingNew;(System.ComponentModel.AddingNewEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Linq;JContainer;false;remove_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Linq;JContainer;false;remove_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Newtonsoft.Json.Linq;JContainer;false;set_Item;(System.Int32,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element;value;manual | | Newtonsoft.Json.Linq;JContainer;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | | Newtonsoft.Json.Linq;JContainer;true;Add;(System.Object);;Argument[0];Argument[this].Element;value;manual | @@ -679,12 +1666,16 @@ summary | Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | Newtonsoft.Json.Linq;JObject;false;Parse;(System.String);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json.Linq;JObject;false;Parse;(System.String,Newtonsoft.Json.Linq.JsonLoadSettings);;Argument[0];ReturnValue;taint;manual | +| Newtonsoft.Json.Linq;JObject;false;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Linq;JObject;false;add_PropertyChanging;(System.ComponentModel.PropertyChangingEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Newtonsoft.Json.Linq;JObject;false;get_Item;(System.Object);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | Newtonsoft.Json.Linq;JObject;false;get_Item;(System.Object);;Argument[this].Element;ReturnValue;value;manual | | Newtonsoft.Json.Linq;JObject;false;get_Item;(System.String);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | Newtonsoft.Json.Linq;JObject;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual | | Newtonsoft.Json.Linq;JObject;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | | Newtonsoft.Json.Linq;JObject;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | +| Newtonsoft.Json.Linq;JObject;false;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Linq;JObject;false;remove_PropertyChanging;(System.ComponentModel.PropertyChangingEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Newtonsoft.Json.Linq;JObject;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Newtonsoft.Json.Linq;JObject;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | Newtonsoft.Json.Linq;JObject;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element;value;manual | @@ -698,6 +1689,27 @@ summary | Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String,System.Boolean);;Argument[this];ReturnValue;taint;manual | | Newtonsoft.Json.Linq;JToken;false;ToString;();;Argument[this];ReturnValue;taint;manual | | Newtonsoft.Json.Linq;JToken;false;ToString;(Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonConverter[]);;Argument[this];ReturnValue;taint;manual | +| Newtonsoft.Json.Schema;Extensions;false;Validate;(Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Schema.ValidationEventHandler);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Schema;ValidationEventHandler;false;BeginInvoke;(System.Object,Newtonsoft.Json.Schema.ValidationEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;ExtensionDataGetter;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;ExtensionDataSetter;false;BeginInvoke;(System.Object,System.String,System.Object,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonArrayContract;false;set_OverrideCreator;(Newtonsoft.Json.Serialization.ObjectConstructor);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonContract;false;set_DefaultCreator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonDictionaryContract;false;set_DictionaryKeyResolver;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonDictionaryContract;false;set_OverrideCreator;(Newtonsoft.Json.Serialization.ObjectConstructor);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonDynamicContract;false;set_PropertyNameResolver;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonISerializableContract;false;set_ISerializableCreator;(Newtonsoft.Json.Serialization.ObjectConstructor);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonObjectContract;false;set_ExtensionDataGetter;(Newtonsoft.Json.Serialization.ExtensionDataGetter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonObjectContract;false;set_ExtensionDataNameResolver;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonObjectContract;false;set_ExtensionDataSetter;(Newtonsoft.Json.Serialization.ExtensionDataSetter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonObjectContract;false;set_OverrideCreator;(Newtonsoft.Json.Serialization.ObjectConstructor);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonProperty;false;set_GetIsSpecified;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonProperty;false;set_SetIsSpecified;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonProperty;false;set_ShouldDeserialize;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonProperty;false;set_ShouldSerialize;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;ObjectConstructor<>;false;BeginInvoke;(System.Object[],System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;SerializationCallback;false;BeginInvoke;(System.Object,System.Runtime.Serialization.StreamingContext,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;SerializationErrorCallback;false;BeginInvoke;(System.Object,System.Runtime.Serialization.StreamingContext,Newtonsoft.Json.Serialization.ErrorContext,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Newtonsoft.Json;JsonConvert;false;DeserializeAnonymousType<>;(System.String,T);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonConvert;false;DeserializeAnonymousType<>;(System.String,T,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonConvert;false;DeserializeObject;(System.String);;Argument[0];ReturnValue;taint;manual | @@ -757,6 +1769,7 @@ summary | Newtonsoft.Json;JsonConvert;false;ToString;(System.UInt32);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonConvert;false;ToString;(System.UInt64);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonConvert;false;ToString;(System.Uri);;Argument[0];ReturnValue;taint;manual | +| Newtonsoft.Json;JsonConvert;false;set_DefaultSettings;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Newtonsoft.Json;JsonSerializer;false;Deserialize;(Newtonsoft.Json.JsonReader);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonSerializer;false;Deserialize;(Newtonsoft.Json.JsonReader,System.Type);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonSerializer;false;Deserialize;(System.IO.TextReader,System.Type);;Argument[0];ReturnValue;taint;manual | @@ -764,6 +1777,12 @@ summary | Newtonsoft.Json;JsonSerializer;false;Serialize;(Newtonsoft.Json.JsonWriter,System.Object,System.Type);;Argument[1];Argument[0];taint;manual | | Newtonsoft.Json;JsonSerializer;false;Serialize;(System.IO.TextWriter,System.Object);;Argument[1];Argument[0];taint;manual | | Newtonsoft.Json;JsonSerializer;false;Serialize;(System.IO.TextWriter,System.Object,System.Type);;Argument[1];Argument[0];taint;manual | +| Newtonsoft.Json;JsonSerializer;false;add_Error;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json;JsonSerializer;false;remove_Error;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json;JsonSerializerSettings;false;set_Error;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json;JsonSerializerSettings;false;set_ReferenceResolverProvider;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json;JsonValidatingReader;false;add_ValidationEventHandler;(Newtonsoft.Json.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json;JsonValidatingReader;false;remove_ValidationEventHandler;(Newtonsoft.Json.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Buffers;ArrayBufferWriter<>;false;GetMemory;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;ArrayBufferWriter<>;false;get_WrittenMemory;();;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;BuffersExtensions;false;PositionOf<>;(System.Buffers.ReadOnlySequence,T);;Argument[0];ReturnValue;taint;df-generated | @@ -803,6 +1822,7 @@ summary | System.Buffers;ReadOnlySequence<>;false;get_End;();;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;ReadOnlySequence<>;false;get_First;();;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;ReadOnlySequence<>;false;get_Start;();;Argument[this];ReturnValue;taint;df-generated | +| System.Buffers;ReadOnlySpanAction<,>;false;BeginInvoke;(System.ReadOnlySpan,TArg,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Buffers;SequenceReader<>;false;SequenceReader;(System.Buffers.ReadOnlySequence);;Argument[0];Argument[this];taint;df-generated | | System.Buffers;SequenceReader<>;false;TryReadExact;(System.Int32,System.Buffers.ReadOnlySequence);;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;SequenceReader<>;false;TryReadTo;(System.Buffers.ReadOnlySequence,System.ReadOnlySpan,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | @@ -811,6 +1831,7 @@ summary | System.Buffers;SequenceReader<>;false;TryReadToAny;(System.Buffers.ReadOnlySequence,System.ReadOnlySpan,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;SequenceReader<>;false;get_Position;();;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;SequenceReader<>;false;get_UnreadSequence;();;Argument[this];ReturnValue;taint;df-generated | +| System.Buffers;SpanAction<,>;false;BeginInvoke;(System.Span,TArg,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.CodeDom.Compiler;GeneratedCodeAttribute;false;GeneratedCodeAttribute;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;GeneratedCodeAttribute;false;GeneratedCodeAttribute;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System.CodeDom.Compiler;GeneratedCodeAttribute;false;get_Tool;();;Argument[this];ReturnValue;taint;df-generated | @@ -893,6 +1914,11 @@ summary | System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(System.Object,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(TKey,TValue);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(TKey,TValue);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;AddOrUpdate;(TKey,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;AddOrUpdate;(TKey,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;AddOrUpdate;(TKey,TValue,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;AddOrUpdate<>;(TKey,System.Func,System.Func,TArg);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;AddOrUpdate<>;(TKey,System.Func,System.Func,TArg);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -905,7 +1931,9 @@ summary | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd;(TKey,TValue);;Argument[1];ReturnValue;taint;df-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd<>;(TKey,System.Func,TArg);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Comparer;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Item;(System.Object);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Item;(TKey);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | @@ -946,6 +1974,7 @@ summary | System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[0].Element;Argument[2];taint;df-generated | | System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[1];Argument[0].Element;taint;df-generated | | System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[2];Argument[0].Element;taint;df-generated | +| System.Collections.Generic;Comparer<>;false;Create;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Entry;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Key;();;Argument[this];ReturnValue;taint;df-generated | @@ -1012,6 +2041,7 @@ summary | System.Collections.Generic;HashSet<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;HashSet<>;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Collections.Generic;HashSet<>;false;HashSet;(System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[this];taint;df-generated | +| System.Collections.Generic;HashSet<>;false;RemoveWhere;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;HashSet<>;false;TryGetValue;(T,T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;HashSet<>;false;get_Comparer;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;ICollection<>;true;Add;(T);;Argument[0];Argument[this].Element;value;manual | @@ -1089,15 +2119,27 @@ summary | System.Collections.Generic;List<>;false;AddRange;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this].Element;value;manual | | System.Collections.Generic;List<>;false;AsReadOnly;();;Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Generic;List<>;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | +| System.Collections.Generic;List<>;false;ConvertAll<>;(System.Converter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List<>;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;List<>;false;CopyTo;(T[]);;Argument[this];Argument[0].Element;taint;df-generated | | System.Collections.Generic;List<>;false;CopyTo;(T[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | +| System.Collections.Generic;List<>;false;Exists;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;Find;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List<>;false;Find;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;Find;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Generic;List<>;false;FindAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List<>;false;FindAll;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;FindAll;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Generic;List<>;false;FindIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;FindIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;FindIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;FindLast;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List<>;false;FindLast;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;FindLast;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Generic;List<>;false;FindLastIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;FindLastIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;FindLastIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;ForEach;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List<>;false;ForEach;(System.Action);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Generic;List<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.List<>+Enumerator.Current];value;manual | @@ -1107,6 +2149,9 @@ summary | System.Collections.Generic;List<>;false;Insert;(System.Int32,T);;Argument[1];Argument[this].Element;value;manual | | System.Collections.Generic;List<>;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[this].Element;value;manual | | System.Collections.Generic;List<>;false;List;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this];taint;df-generated | +| System.Collections.Generic;List<>;false;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;Sort;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;TrueForAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List<>;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.Collections.Generic;List<>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Collections.Generic;List<>;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | @@ -1230,6 +2275,7 @@ summary | System.Collections.Generic;SortedSet<>;false;GetViewBetween;(T,T);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Generic;SortedSet<>;false;GetViewBetween;(T,T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;SortedSet<>;false;IntersectWith;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this];taint;df-generated | +| System.Collections.Generic;SortedSet<>;false;RemoveWhere;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;SortedSet<>;false;Reverse;();;Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Generic;SortedSet<>;false;SortedSet;(System.Collections.Generic.IComparer);;Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;SortedSet<>;false;SortedSet;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | @@ -1257,6 +2303,7 @@ summary | System.Collections.Immutable;IImmutableList<>;true;Add;(T);;Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;IImmutableList<>;true;AddRange;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this].Element;value;manual | | System.Collections.Immutable;IImmutableList<>;true;Clear;();;Argument[this].WithoutElement;ReturnValue;value;manual | +| System.Collections.Immutable;IImmutableList<>;true;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;IImmutableQueue<>;true;Clear;();;Argument[this].WithoutElement;ReturnValue;value;manual | | System.Collections.Immutable;IImmutableSet<>;true;Add;(T);;Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;IImmutableSet<>;true;Clear;();;Argument[this].WithoutElement;ReturnValue;value;manual | @@ -1273,6 +2320,10 @@ summary | System.Collections.Immutable;ImmutableArray;false;Create<>;(T,T,T,T);;Argument[2];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray;false;Create<>;(T,T,T,T);;Argument[3];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray;false;Create<>;(T[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray;false;CreateRange<,,>;(System.Collections.Immutable.ImmutableArray,System.Func,TArg);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableArray;false;CreateRange<,,>;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func,TArg);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableArray;false;CreateRange<,>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableArray;false;CreateRange<,>;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;false;CreateRange<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray;false;ToImmutableArray<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>+Builder;false;Add;(T);;Argument[0];Argument[this].Element;value;manual | @@ -1289,6 +2340,8 @@ summary | System.Collections.Immutable;ImmutableArray<>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableArray<>+Builder;false;Insert;(System.Int32,T);;Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableArray<>+Builder;false;MoveToImmutable;();;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray<>+Builder;false;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableArray<>+Builder;false;Sort;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray<>+Builder;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableArray<>+Builder;false;set_Item;(System.Int32,T);;Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableArray<>+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | @@ -1321,6 +2374,7 @@ summary | System.Collections.Immutable;ImmutableArray<>;false;OfType<>;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;Remove;(T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;Remove;(T,System.Collections.Generic.IEqualityComparer);;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray<>;false;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray<>;false;RemoveAt;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;RemoveRange;(System.Collections.Generic.IEnumerable);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[this];ReturnValue;taint;df-generated | @@ -1332,6 +2386,7 @@ summary | System.Collections.Immutable;ImmutableArray<>;false;SetItem;(System.Int32,T);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;Sort;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;Sort;(System.Collections.Generic.IComparer);;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray<>;false;Sort;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray<>;false;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;ToBuilder;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | @@ -1348,12 +2403,20 @@ summary | System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[2].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;GetValueOrDefault<,>;(System.Collections.Immutable.IImmutableDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[2];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Immutable.ImmutableDictionary+Builder);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -1455,7 +2518,16 @@ summary | System.Collections.Immutable;ImmutableHashSet<>;false;WithComparer;(System.Collections.Generic.IEqualityComparer);;Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet<>;false;get_KeyComparer;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableHashSet<>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;AddOrUpdate<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;AddOrUpdate<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;AddOrUpdate<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;GetOrAdd<,,>;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;GetOrAdd<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;false;GetOrAdd<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;Update<,>;(System.Collections.Immutable.ImmutableArray,System.Func,TArg,System.Collections.Immutable.ImmutableArray>,TArg);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;Update<,>;(T,System.Func,TArg);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;Update<>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Immutable.ImmutableArray>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;Update<>;(T,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;false;Create<>;(T);;Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList;false;CreateRange<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList;false;Remove<>;(System.Collections.Immutable.IImmutableList,T);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -1473,15 +2545,27 @@ summary | System.Collections.Immutable;ImmutableList<>+Builder;false;BinarySearch;(T,System.Collections.Generic.IComparer);;Argument[0];Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;BinarySearch;(T,System.Collections.Generic.IComparer);;Argument[this];Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | +| System.Collections.Immutable;ImmutableList<>+Builder;false;ConvertAll<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;CopyTo;(T[]);;Argument[this];Argument[0].Element;taint;df-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;CopyTo;(T[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | +| System.Collections.Immutable;ImmutableList<>+Builder;false;Exists;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;Find;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;Find;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;Find;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;FindAll;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;FindAll;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindLast;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;FindLast;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;FindLast;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindLastIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindLastIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindLastIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;ForEach;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList<>+Enumerator.Current];value;manual | @@ -1489,7 +2573,10 @@ summary | System.Collections.Immutable;ImmutableList<>+Builder;false;Insert;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;Insert;(System.Int32,T);;Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[this].Element;value;manual | +| System.Collections.Immutable;ImmutableList<>+Builder;false;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;Sort;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;ToImmutable;();;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;TrueForAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;get_SyncRoot;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | @@ -1504,15 +2591,27 @@ summary | System.Collections.Immutable;ImmutableList<>;false;BinarySearch;(T,System.Collections.Generic.IComparer);;Argument[this];Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Immutable;ImmutableList<>;false;Clear;();;Argument[this].WithoutElement;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>;false;ConvertAll<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableList<>;false;CopyTo;(T[]);;Argument[this];Argument[0].Element;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;CopyTo;(T[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | +| System.Collections.Immutable;ImmutableList<>;false;Exists;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;Find;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>;false;Find;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>;false;Find;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>;false;FindAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>;false;FindAll;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>;false;FindAll;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>;false;FindIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;FindIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;FindIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;FindLast;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>;false;FindLast;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>;false;FindLast;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>;false;FindLastIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;FindLastIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;FindLastIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;ForEach;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Immutable;ImmutableList<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableList<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList<>+Enumerator.Current];value;manual | @@ -1522,6 +2621,7 @@ summary | System.Collections.Immutable;ImmutableList<>;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList<>;false;Remove;(T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;Remove;(T,System.Collections.Generic.IEqualityComparer);;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList<>;false;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>;false;RemoveAt;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;RemoveRange;(System.Collections.Generic.IEnumerable);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[this];ReturnValue;taint;df-generated | @@ -1540,8 +2640,10 @@ summary | System.Collections.Immutable;ImmutableList<>;false;SetItem;(System.Int32,T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;Sort;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;Sort;(System.Collections.Generic.IComparer);;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList<>;false;Sort;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>;false;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;ToBuilder;();;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList<>;false;TrueForAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList<>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList<>;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | @@ -1572,6 +2674,12 @@ summary | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[2].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[1];ReturnValue;taint;df-generated | @@ -1763,6 +2871,10 @@ summary | System.Collections.ObjectModel;ObservableCollection<>;false;InsertItem;(System.Int32,T);;Argument[this];Argument[1];taint;df-generated | | System.Collections.ObjectModel;ObservableCollection<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[this];taint;df-generated | | System.Collections.ObjectModel;ObservableCollection<>;false;SetItem;(System.Int32,T);;Argument[this];Argument[1];taint;df-generated | +| System.Collections.ObjectModel;ObservableCollection<>;false;add_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.ObjectModel;ObservableCollection<>;false;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.ObjectModel;ObservableCollection<>;false;remove_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.ObjectModel;ObservableCollection<>;false;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;Add;(System.Object);;Argument[0];Argument[this].Element;value;manual | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;Add;(T);;Argument[0];Argument[this].Element;value;manual | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | @@ -1817,6 +2929,10 @@ summary | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;set_Item;(System.Object,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;set_Item;(TKey,TValue);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;set_Item;(TKey,TValue);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.ObjectModel;ReadOnlyObservableCollection<>;false;add_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.ObjectModel;ReadOnlyObservableCollection<>;false;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.ObjectModel;ReadOnlyObservableCollection<>;false;remove_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.ObjectModel;ReadOnlyObservableCollection<>;false;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Specialized;HybridDictionary;false;Add;(System.Object,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Specialized;HybridDictionary;false;Add;(System.Object,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Specialized;HybridDictionary;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | @@ -1829,6 +2945,8 @@ summary | System.Collections.Specialized;HybridDictionary;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | System.Collections.Specialized;HybridDictionary;false;set_Item;(System.Object,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Specialized;HybridDictionary;false;set_Item;(System.Object,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Specialized;INotifyCollectionChanged;true;add_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Specialized;INotifyCollectionChanged;true;remove_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Specialized;IOrderedDictionary;true;get_Item;(System.Int32);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections.Specialized;IOrderedDictionary;true;set_Item;(System.Int32,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Specialized;IOrderedDictionary;true;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -1891,6 +3009,7 @@ summary | System.Collections.Specialized;NotifyCollectionChangedEventArgs;false;NotifyCollectionChangedEventArgs;(System.Collections.Specialized.NotifyCollectionChangedAction,System.Object,System.Object,System.Int32);;Argument[2];Argument[this];taint;df-generated | | System.Collections.Specialized;NotifyCollectionChangedEventArgs;false;get_NewItems;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Specialized;NotifyCollectionChangedEventArgs;false;get_OldItems;();;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Specialized;NotifyCollectionChangedEventHandler;false;BeginInvoke;(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Specialized;OrderedDictionary;false;Add;(System.Object,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Specialized;OrderedDictionary;false;Add;(System.Object,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Specialized;OrderedDictionary;false;AsReadOnly;();;Argument[this].Element;ReturnValue.Element;value;manual | @@ -2140,6 +3259,7 @@ summary | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;false;FormatErrorMessage;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;StringLengthAttribute;false;FormatErrorMessage;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;false;get_ControlParameters;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;false;ValidationAttribute;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;false;get_ErrorMessage;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;false;get_ErrorMessageResourceName;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;false;get_ErrorMessageResourceType;();;Argument[this];ReturnValue;taint;df-generated | @@ -2147,6 +3267,7 @@ summary | System.ComponentModel.DataAnnotations;ValidationAttribute;false;set_ErrorMessageResourceName;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;false;set_ErrorMessageResourceType;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;true;FormatErrorMessage;(System.String);;Argument[0];ReturnValue;taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationContext;false;InitializeServiceProvider;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.DataAnnotations;ValidationContext;false;get_DisplayName;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationContext;false;get_Items;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationContext;false;set_DisplayName;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -2159,11 +3280,22 @@ summary | System.ComponentModel.Design.Serialization;ContextStack;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design.Serialization;ContextStack;false;get_Item;(System.Type);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;false;get_TypeId;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.Design.Serialization;IDesignerSerializationManager;true;add_ResolveName;(System.ComponentModel.Design.Serialization.ResolveNameEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design.Serialization;IDesignerSerializationManager;true;add_SerializationComplete;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design.Serialization;IDesignerSerializationManager;true;remove_ResolveName;(System.ComponentModel.Design.Serialization.ResolveNameEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design.Serialization;IDesignerSerializationManager;true;remove_SerializationComplete;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design.Serialization;ResolveNameEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.Serialization.ResolveNameEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design.Serialization;RootDesignerSerializerAttribute;false;get_TypeId;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.Design;ActiveDesignerEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.ActiveDesignerEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ComponentChangedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.ComponentChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ComponentChangingEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.ComponentChangingEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ComponentEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.ComponentEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ComponentRenameEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.ComponentRenameEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design;DesignerCollection;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.ComponentModel.Design;DesignerCollection;false;DesignerCollection;(System.Collections.IList);;Argument[0].Element;Argument[this];taint;df-generated | | System.ComponentModel.Design;DesignerCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.ComponentModel.Design;DesignerCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.Design;DesignerEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.DesignerEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design;DesignerOptionService+DesignerOptionCollection;false;Add;(System.Object);;Argument[0];Argument[this].Element;value;manual | | System.ComponentModel.Design;DesignerOptionService+DesignerOptionCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.ComponentModel.Design;DesignerOptionService+DesignerOptionCollection;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | @@ -2177,6 +3309,9 @@ summary | System.ComponentModel.Design;DesignerOptionService;false;CreateOptionCollection;(System.ComponentModel.Design.DesignerOptionService+DesignerOptionCollection,System.String,System.Object);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel.Design;DesignerOptionService;false;CreateOptionCollection;(System.ComponentModel.Design.DesignerOptionService+DesignerOptionCollection,System.String,System.Object);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design;DesignerOptionService;false;get_Options;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.Design;DesignerTransactionCloseEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.DesignerTransactionCloseEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;DesignerVerb;false;DesignerVerb;(System.String,System.EventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;DesignerVerb;false;DesignerVerb;(System.String,System.EventHandler,System.ComponentModel.Design.CommandID);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design;DesignerVerb;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design;DesignerVerb;false;get_Description;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design;DesignerVerb;false;get_Text;();;Argument[this];ReturnValue;taint;df-generated | @@ -2190,10 +3325,62 @@ summary | System.ComponentModel.Design;DesignerVerbCollection;false;Remove;(System.ComponentModel.Design.DesignerVerb);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.Design;DesignerVerbCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.ComponentModel.Design;DesignerVerbCollection;false;set_Item;(System.Int32,System.ComponentModel.Design.DesignerVerb);;Argument[1];Argument[this].Element;value;manual | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentAdded;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentAdding;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentChanged;(System.ComponentModel.Design.ComponentChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentChanging;(System.ComponentModel.Design.ComponentChangingEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentRemoved;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentRemoving;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentRename;(System.ComponentModel.Design.ComponentRenameEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentAdded;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentAdding;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentChanged;(System.ComponentModel.Design.ComponentChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentChanging;(System.ComponentModel.Design.ComponentChangingEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentRemoved;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentRemoving;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentRename;(System.ComponentModel.Design.ComponentRenameEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;add_ActiveDesignerChanged;(System.ComponentModel.Design.ActiveDesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;add_DesignerCreated;(System.ComponentModel.Design.DesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;add_DesignerDisposed;(System.ComponentModel.Design.DesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;add_SelectionChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;remove_ActiveDesignerChanged;(System.ComponentModel.Design.ActiveDesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;remove_DesignerCreated;(System.ComponentModel.Design.DesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;remove_DesignerDisposed;(System.ComponentModel.Design.DesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;remove_SelectionChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_Activated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_Deactivated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_LoadComplete;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_TransactionClosed;(System.ComponentModel.Design.DesignerTransactionCloseEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_TransactionClosing;(System.ComponentModel.Design.DesignerTransactionCloseEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_TransactionOpened;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_TransactionOpening;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_Activated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_Deactivated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_LoadComplete;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_TransactionClosed;(System.ComponentModel.Design.DesignerTransactionCloseEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_TransactionClosing;(System.ComponentModel.Design.DesignerTransactionCloseEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_TransactionOpened;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_TransactionOpening;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ISelectionService;true;add_SelectionChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ISelectionService;true;add_SelectionChanging;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ISelectionService;true;remove_SelectionChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ISelectionService;true;remove_SelectionChanging;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IServiceContainer;true;AddService;(System.Type,System.ComponentModel.Design.ServiceCreatorCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IServiceContainer;true;AddService;(System.Type,System.ComponentModel.Design.ServiceCreatorCallback,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;MenuCommand;false;MenuCommand;(System.EventHandler,System.ComponentModel.Design.CommandID);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;MenuCommand;false;add_CommandChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design;MenuCommand;false;get_Properties;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.Design;MenuCommand;false;remove_CommandChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ServiceContainer;false;AddService;(System.Type,System.ComponentModel.Design.ServiceCreatorCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ServiceContainer;false;AddService;(System.Type,System.ComponentModel.Design.ServiceCreatorCallback,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design;ServiceContainer;false;GetService;(System.Type);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design;ServiceContainer;false;ServiceContainer;(System.IServiceProvider);;Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.Design;ServiceCreatorCallback;false;BeginInvoke;(System.ComponentModel.Design.IServiceContainer,System.Type,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;AddingNewEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.AddingNewEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;ArrayConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | +| System.ComponentModel;AsyncCompletedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.AsyncCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;AsyncOperation;false;Post;(System.Threading.SendOrPostCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;AsyncOperation;false;PostOperationCompleted;(System.Threading.SendOrPostCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;AsyncOperation;false;get_SynchronizationContext;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;AttributeCollection;false;AttributeCollection;(System.Attribute[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.ComponentModel;AttributeCollection;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | @@ -2204,6 +3391,12 @@ summary | System.ComponentModel;AttributeCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;AttributeCollection;false;get_Item;(System.Type);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;AttributeCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.ComponentModel;BackgroundWorker;false;add_DoWork;(System.ComponentModel.DoWorkEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BackgroundWorker;false;add_ProgressChanged;(System.ComponentModel.ProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BackgroundWorker;false;add_RunWorkerCompleted;(System.ComponentModel.RunWorkerCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BackgroundWorker;false;remove_DoWork;(System.ComponentModel.DoWorkEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BackgroundWorker;false;remove_ProgressChanged;(System.ComponentModel.ProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BackgroundWorker;false;remove_RunWorkerCompleted;(System.ComponentModel.RunWorkerCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;BaseNumberConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;BaseNumberConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;BindingList<>;false;AddNew;();;Argument[this];ReturnValue;taint;df-generated | @@ -2213,13 +3406,21 @@ summary | System.ComponentModel;BindingList<>;false;InsertItem;(System.Int32,T);;Argument[this];Argument[1];taint;df-generated | | System.ComponentModel;BindingList<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[this];taint;df-generated | | System.ComponentModel;BindingList<>;false;SetItem;(System.Int32,T);;Argument[this];Argument[1];taint;df-generated | +| System.ComponentModel;BindingList<>;false;add_AddingNew;(System.ComponentModel.AddingNewEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BindingList<>;false;add_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BindingList<>;false;remove_AddingNew;(System.ComponentModel.AddingNewEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BindingList<>;false;remove_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;CancelEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.CancelEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;CategoryAttribute;false;CategoryAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;CategoryAttribute;false;get_Category;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;CharConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | +| System.ComponentModel;CollectionChangeEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.CollectionChangeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;CollectionConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;Component;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;Component;false;add_Disposed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;Component;false;get_Events;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;Component;false;get_Site;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;Component;false;remove_Disposed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;Component;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;ComponentCollection;false;ComponentCollection;(System.ComponentModel.IComponent[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.ComponentModel;ComponentCollection;false;CopyTo;(System.ComponentModel.IComponent[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | @@ -2251,6 +3452,7 @@ summary | System.ComponentModel;DefaultValueAttribute;false;SetValue;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;DefaultValueAttribute;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;DesignerAttribute;false;get_TypeId;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;DoWorkEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.DoWorkEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;EditorAttribute;false;get_TypeId;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;EnumConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;EventDescriptorCollection;false;Add;(System.ComponentModel.EventDescriptor);;Argument[0];Argument[this].Element;value;manual | @@ -2278,7 +3480,20 @@ summary | System.ComponentModel;EventHandlerList;false;set_Item;(System.Object,System.Delegate);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;EventHandlerList;false;set_Item;(System.Object,System.Delegate);;Argument[1];Argument[this];taint;df-generated | | System.ComponentModel;GuidConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | +| System.ComponentModel;HandledEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.HandledEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;IBindingList;true;Find;(System.ComponentModel.PropertyDescriptor,System.Object);;Argument[this].Element;ReturnValue;value;manual | +| System.ComponentModel;IBindingList;true;add_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;IBindingList;true;remove_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;IComponent;true;add_Disposed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;IComponent;true;remove_Disposed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyDataErrorInfo;true;add_ErrorsChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyDataErrorInfo;true;remove_ErrorsChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyPropertyChanged;true;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyPropertyChanged;true;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyPropertyChanging;true;add_PropertyChanging;(System.ComponentModel.PropertyChangingEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyPropertyChanging;true;remove_PropertyChanging;(System.ComponentModel.PropertyChangingEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;ISupportInitializeNotification;true;add_Initialized;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;ISupportInitializeNotification;true;remove_Initialized;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;InstallerTypeAttribute;false;InstallerTypeAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;InstallerTypeAttribute;false;InstallerTypeAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;LicFileLicenseProvider;false;GetKey;(System.Type);;Argument[0];ReturnValue;taint;df-generated | @@ -2290,6 +3505,7 @@ summary | System.ComponentModel;LicenseProviderAttribute;false;LicenseProviderAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;LicenseProviderAttribute;false;get_LicenseProvider;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;LicenseProviderAttribute;false;get_TypeId;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;ListChangedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.ListChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;ListSortDescriptionCollection;false;Add;(System.Object);;Argument[0];Argument[this].Element;value;manual | | System.ComponentModel;ListSortDescriptionCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.ComponentModel;ListSortDescriptionCollection;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | @@ -2301,8 +3517,10 @@ summary | System.ComponentModel;ListSortDescriptionCollection;false;set_Item;(System.Int32,System.ComponentModel.ListSortDescription);;Argument[1];Argument[this].Element;value;manual | | System.ComponentModel;ListSortDescriptionCollection;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | | System.ComponentModel;MarshalByValueComponent;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;MarshalByValueComponent;false;add_Disposed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;MarshalByValueComponent;false;get_Events;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;MarshalByValueComponent;false;get_Site;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;MarshalByValueComponent;false;remove_Disposed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;MarshalByValueComponent;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;MaskedTextProvider;false;ToDisplayString;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;MaskedTextProvider;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | @@ -2340,11 +3558,16 @@ summary | System.ComponentModel;NullableConverter;false;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);;Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;ProgressChangedEventArgs;false;ProgressChangedEventArgs;(System.Int32,System.Object);;Argument[1];Argument[this];taint;df-generated | | System.ComponentModel;ProgressChangedEventArgs;false;get_UserState;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;ProgressChangedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.ProgressChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;PropertyChangedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.PropertyChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;PropertyChangingEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.PropertyChangingEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;PropertyDescriptor;false;FillAttributes;(System.Collections.IList);;Argument[this];Argument[0].Element;taint;df-generated | | System.ComponentModel;PropertyDescriptor;false;GetInvocationTarget;(System.Type,System.Object);;Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;PropertyDescriptor;false;GetValueChangedHandler;(System.Object);;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;PropertyDescriptor;true;AddValueChanged;(System.Object,System.EventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;PropertyDescriptor;true;GetEditor;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;PropertyDescriptor;true;GetEditor;(System.Type);;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;PropertyDescriptor;true;RemoveValueChanged;(System.Object,System.EventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;PropertyDescriptor;true;get_Converter;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.ComponentModel.PropertyDescriptor);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.ComponentModel.PropertyDescriptor);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -2389,8 +3612,10 @@ summary | System.ComponentModel;PropertyTabAttribute;false;get_TabClasses;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;false;ReferenceConverter;(System.Type);;Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel;RefreshEventHandler;false;BeginInvoke;(System.ComponentModel.RefreshEventArgs,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;RunWorkerCompletedEventArgs;false;RunWorkerCompletedEventArgs;(System.Object,System.Exception,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;RunWorkerCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;RunWorkerCompletedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.RunWorkerCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;StringConverter;false;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TimeSpanConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ToolboxItemAttribute;false;ToolboxItemAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -2454,6 +3679,8 @@ summary | System.ComponentModel;TypeDescriptor;false;GetFullComponentName;(System.Object);;Argument[0];ReturnValue;taint;df-generated | | System.ComponentModel;TypeDescriptor;false;GetProvider;(System.Type);;Argument[0];ReturnValue;taint;df-generated | | System.ComponentModel;TypeDescriptor;false;GetReflectionType;(System.Type);;Argument[0];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeDescriptor;false;add_Refreshed;(System.ComponentModel.RefreshEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;TypeDescriptor;false;remove_Refreshed;(System.ComponentModel.RefreshEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;TypeListConverter;false;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;false;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);;Argument[this];ReturnValue;taint;df-generated | @@ -2462,7 +3689,9 @@ summary | System.ComponentModel;WarningException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.ComponentModel;Win32Exception;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.ComponentModel;Win32Exception;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data.Common;DataAdapter;false;add_FillError;(System.Data.FillErrorEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data.Common;DataAdapter;false;get_TableMappings;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data.Common;DataAdapter;false;remove_FillError;(System.Data.FillErrorEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data.Common;DataColumnMapping;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Data.Common;DataColumnMapping;false;DataColumnMapping;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data.Common;DataColumnMapping;false;DataColumnMapping;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | @@ -2580,6 +3809,8 @@ summary | System.Data.Common;DbConnection;false;CreateCommand;();;Argument[this];ReturnValue;taint;df-generated | | System.Data.Common;DbConnection;true;ChangeDatabaseAsync;(System.String,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Data.Common;DbConnection;true;OpenAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | +| System.Data.Common;DbConnection;true;add_StateChange;(System.Data.StateChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data.Common;DbConnection;true;remove_StateChange;(System.Data.StateChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data.Common;DbConnectionStringBuilder;false;Add;(System.Object,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Data.Common;DbConnectionStringBuilder;false;Add;(System.Object,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Data.Common;DbConnectionStringBuilder;false;Add;(System.String,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | @@ -2751,9 +3982,11 @@ summary | System.Data;ConstraintCollection;false;AddRange;(System.Data.Constraint[]);;Argument[0].Element;Argument[this].Element;value;manual | | System.Data;ConstraintCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Data;ConstraintCollection;false;CopyTo;(System.Data.Constraint[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | +| System.Data;ConstraintCollection;false;add_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;ConstraintCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Data;ConstraintCollection;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;ConstraintCollection;false;get_List;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;ConstraintCollection;false;remove_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DBConcurrencyException;false;CopyToRows;(System.Data.DataRow[]);;Argument[this];Argument[0].Element;taint;df-generated | | System.Data;DBConcurrencyException;false;CopyToRows;(System.Data.DataRow[],System.Int32);;Argument[this];Argument[0].Element;taint;df-generated | | System.Data;DBConcurrencyException;false;DBConcurrencyException;(System.String,System.Exception,System.Data.DataRow[]);;Argument[2].Element;Argument[this];taint;df-generated | @@ -2782,6 +4015,7 @@ summary | System.Data;DataColumn;false;set_Prefix;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataColumnChangeEventArgs;false;DataColumnChangeEventArgs;(System.Data.DataRow,System.Data.DataColumn,System.Object);;Argument[1];Argument[this];taint;df-generated | | System.Data;DataColumnChangeEventArgs;false;get_Column;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataColumnChangeEventHandler;false;BeginInvoke;(System.Object,System.Data.DataColumnChangeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataColumnCollection;false;Add;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataColumnCollection;false;Add;(System.Data.DataColumn);;Argument[0];Argument[this].Element;value;manual | | System.Data;DataColumnCollection;false;Add;(System.String);;Argument[0];Argument[this].Element;value;manual | @@ -2790,9 +4024,11 @@ summary | System.Data;DataColumnCollection;false;AddRange;(System.Data.DataColumn[]);;Argument[0].Element;Argument[this].Element;value;manual | | System.Data;DataColumnCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Data;DataColumnCollection;false;CopyTo;(System.Data.DataColumn[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | +| System.Data;DataColumnCollection;false;add_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataColumnCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataColumnCollection;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataColumnCollection;false;get_List;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataColumnCollection;false;remove_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataReaderExtensions;false;GetDateTime;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Data;DataReaderExtensions;false;GetFieldValue<>;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Data;DataReaderExtensions;false;GetFieldValueAsync<>;(System.Data.Common.DbDataReader,System.String,System.Threading.CancellationToken);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -2827,6 +4063,8 @@ summary | System.Data;DataRelationCollection;false;Add;(System.Data.DataRelation);;Argument[0];Argument[this].Element;value;manual | | System.Data;DataRelationCollection;false;CopyTo;(System.Data.DataRelation[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Data;DataRelationCollection;false;Remove;(System.Data.DataRelation);;Argument[0];Argument[this];taint;df-generated | +| System.Data;DataRelationCollection;false;add_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataRelationCollection;false;remove_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataRelationCollection;true;Add;(System.Data.DataColumn,System.Data.DataColumn);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRelationCollection;true;Add;(System.Data.DataColumn[],System.Data.DataColumn[]);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn);;Argument[this];ReturnValue;taint;df-generated | @@ -2861,6 +4099,7 @@ summary | System.Data;DataRow;false;get_Table;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRow;false;set_Item;(System.Data.DataColumn,System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataRow;false;set_RowError;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Data;DataRowChangeEventHandler;false;BeginInvoke;(System.Object,System.Data.DataRowChangeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataRowCollection;false;Add;(System.Data.DataRow);;Argument[0];Argument[this].Element;value;manual | | System.Data;DataRowCollection;false;Add;(System.Object[]);;Argument[0];Argument[this].Element;value;manual | | System.Data;DataRowCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | @@ -2878,10 +4117,12 @@ summary | System.Data;DataRowView;false;CreateChildView;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRowView;false;CreateChildView;(System.String,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRowView;false;GetPropertyOwner;(System.ComponentModel.PropertyDescriptor);;Argument[this];ReturnValue;value;df-generated | +| System.Data;DataRowView;false;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataRowView;false;get_DataView;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRowView;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRowView;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRowView;false;get_Row;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataRowView;false;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataSet;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;Copy;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;CreateDataReader;();;Argument[this];ReturnValue;taint;df-generated | @@ -2892,6 +4133,13 @@ summary | System.Data;DataSet;false;GetChanges;(System.Data.DataRowState);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;GetList;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System.Data;DataSet;false;Load;(System.Data.IDataReader,System.Data.LoadOption,System.Data.FillErrorEventHandler,System.Data.DataTable[]);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;WriteXmlSchema;(System.IO.Stream,System.Converter);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;WriteXmlSchema;(System.IO.TextWriter,System.Converter);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;WriteXmlSchema;(System.String,System.Converter);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;WriteXmlSchema;(System.Xml.XmlWriter,System.Converter);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;add_Initialized;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;add_MergeFailed;(System.Data.MergeFailedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataSet;false;get_DataSetName;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;get_DefaultViewManager;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;get_ExtendedProperties;();;Argument[this];ReturnValue;taint;df-generated | @@ -2901,6 +4149,8 @@ summary | System.Data;DataSet;false;get_Relations;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;get_Site;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;get_Tables;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataSet;false;remove_Initialized;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;remove_MergeFailed;(System.Data.MergeFailedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataSet;false;set_DataSetName;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataSet;false;set_Locale;(System.Globalization.CultureInfo);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataSet;false;set_Namespace;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -2917,6 +4167,7 @@ summary | System.Data;DataTable;false;GetErrors;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;GetList;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System.Data;DataTable;false;Load;(System.Data.IDataReader,System.Data.LoadOption,System.Data.FillErrorEventHandler);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;false;LoadDataRow;(System.Object[],System.Boolean);;Argument[0].Element;Argument[this];taint;df-generated | | System.Data;DataTable;false;LoadDataRow;(System.Object[],System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;LoadDataRow;(System.Object[],System.Data.LoadOption);;Argument[this];ReturnValue;taint;df-generated | @@ -2924,6 +4175,16 @@ summary | System.Data;DataTable;false;NewRowArray;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;NewRowFromBuilder;(System.Data.DataRowBuilder);;Argument[0];ReturnValue;taint;df-generated | | System.Data;DataTable;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataTable;false;add_ColumnChanged;(System.Data.DataColumnChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_ColumnChanging;(System.Data.DataColumnChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_Initialized;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_RowChanged;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_RowChanging;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_RowDeleted;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_RowDeleting;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_TableCleared;(System.Data.DataTableClearEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_TableClearing;(System.Data.DataTableClearEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_TableNewRow;(System.Data.DataTableNewRowEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;false;get_ChildRelations;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;get_Columns;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;get_Constraints;();;Argument[this];ReturnValue;taint;df-generated | @@ -2938,12 +4199,23 @@ summary | System.Data;DataTable;false;get_Rows;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;get_Site;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;get_TableName;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataTable;false;remove_ColumnChanged;(System.Data.DataColumnChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_ColumnChanging;(System.Data.DataColumnChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_Initialized;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_RowChanged;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_RowChanging;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_RowDeleted;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_RowDeleting;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_TableCleared;(System.Data.DataTableClearEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_TableClearing;(System.Data.DataTableClearEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_TableNewRow;(System.Data.DataTableNewRowEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;false;set_Locale;(System.Globalization.CultureInfo);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;false;set_Namespace;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;false;set_Prefix;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;false;set_PrimaryKey;(System.Data.DataColumn[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.Data;DataTable;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;false;set_TableName;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Data;DataTableClearEventHandler;false;BeginInvoke;(System.Object,System.Data.DataTableClearEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataTableCollection;false;Add;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTableCollection;false;Add;(System.Data.DataTable);;Argument[0];Argument[this].Element;value;manual | | System.Data;DataTableCollection;false;Add;(System.String);;Argument[0];Argument[this].Element;value;manual | @@ -2953,11 +4225,17 @@ summary | System.Data;DataTableCollection;false;AddRange;(System.Data.DataTable[]);;Argument[0].Element;Argument[this].Element;value;manual | | System.Data;DataTableCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Data;DataTableCollection;false;CopyTo;(System.Data.DataTable[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | +| System.Data;DataTableCollection;false;add_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTableCollection;false;add_CollectionChanging;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTableCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTableCollection;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTableCollection;false;get_Item;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTableCollection;false;get_List;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataTableCollection;false;remove_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTableCollection;false;remove_CollectionChanging;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTableExtensions;false;AsEnumerable;(System.Data.DataTable);;Argument[0];ReturnValue;taint;df-generated | +| System.Data;DataTableExtensions;false;CopyToDataTable<>;(System.Collections.Generic.IEnumerable,System.Data.DataTable,System.Data.LoadOption,System.Data.FillErrorEventHandler);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTableNewRowEventHandler;false;BeginInvoke;(System.Object,System.Data.DataTableNewRowEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataTableReader;false;DataTableReader;(System.Data.DataTable);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataTableReader;false;DataTableReader;(System.Data.DataTable[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.Data;DataTableReader;false;GetDateTime;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | @@ -2990,6 +4268,8 @@ summary | System.Data;DataView;false;ToTable;(System.Boolean,System.String[]);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataView;false;ToTable;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataView;false;ToTable;(System.String,System.Boolean,System.String[]);;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataView;false;add_Initialized;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataView;false;add_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataView;false;get_DataViewManager;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataView;false;get_Filter;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataView;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | @@ -2997,6 +4277,8 @@ summary | System.Data;DataView;false;get_Sort;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataView;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Data;DataView;false;get_Table;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataView;false;remove_Initialized;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataView;false;remove_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataView;false;set_Filter;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataView;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | | System.Data;DataView;false;set_RowFilter;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -3010,10 +4292,12 @@ summary | System.Data;DataViewManager;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Data;DataViewManager;false;GetListName;(System.ComponentModel.PropertyDescriptor[]);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataViewManager;false;Insert;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | +| System.Data;DataViewManager;false;add_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataViewManager;false;get_DataSet;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataViewManager;false;get_DataViewSettings;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataViewManager;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.Data;DataViewManager;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.Data;DataViewManager;false;remove_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataViewManager;false;set_DataSet;(System.Data.DataSet);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataViewManager;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | | System.Data;DataViewSetting;false;get_DataViewManager;();;Argument[this];ReturnValue;taint;df-generated | @@ -3038,30 +4322,41 @@ summary | System.Data;EnumerableRowCollectionExtensions;false;Cast<>;(System.Data.EnumerableRowCollection);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;Select<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;Select<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;Select<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;Where<>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;Where<>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;Where<>;(System.Data.EnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;FillErrorEventArgs;false;FillErrorEventArgs;(System.Data.DataTable,System.Object[]);;Argument[0];Argument[this];taint;df-generated | | System.Data;FillErrorEventArgs;false;FillErrorEventArgs;(System.Data.DataTable,System.Object[]);;Argument[1].Element;Argument[this];taint;df-generated | | System.Data;FillErrorEventArgs;false;get_DataTable;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;FillErrorEventArgs;false;get_Errors;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;FillErrorEventArgs;false;get_Values;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;FillErrorEventArgs;false;set_Errors;(System.Exception);;Argument[0];Argument[this];taint;df-generated | +| System.Data;FillErrorEventHandler;false;BeginInvoke;(System.Object,System.Data.FillErrorEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;ForeignKeyConstraint;false;ForeignKeyConstraint;(System.String,System.Data.DataColumn,System.Data.DataColumn);;Argument[0];Argument[this];taint;df-generated | | System.Data;ForeignKeyConstraint;false;ForeignKeyConstraint;(System.String,System.Data.DataColumn[],System.Data.DataColumn[]);;Argument[0];Argument[this];taint;df-generated | | System.Data;ForeignKeyConstraint;false;ForeignKeyConstraint;(System.String,System.String,System.String,System.String[],System.String[],System.Data.AcceptRejectRule,System.Data.Rule,System.Data.Rule);;Argument[0];Argument[this];taint;df-generated | @@ -3084,7 +4379,10 @@ summary | System.Data;InternalDataCollectionBase;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Data;InternalDataCollectionBase;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Data;InternalDataCollectionBase;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.Data;MergeFailedEventHandler;false;BeginInvoke;(System.Object,System.Data.MergeFailedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;PropertyCollection;false;Clone;();;Argument[this].Element;ReturnValue.Element;value;manual | +| System.Data;StateChangeEventHandler;false;BeginInvoke;(System.Object,System.Data.StateChangeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Data;StatementCompletedEventHandler;false;BeginInvoke;(System.Object,System.Data.StatementCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;TypedTableBase<>;false;Cast<>;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;TypedTableBase<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Data;TypedTableBase<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | @@ -3092,16 +4390,22 @@ summary | System.Data;TypedTableBaseExtensions;false;ElementAtOrDefault<>;(System.Data.TypedTableBase,System.Int32);;Argument[0].Element;ReturnValue;value;manual | | System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;false;Select<,>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;Select<,>;(System.Data.TypedTableBase,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;Select<,>;(System.Data.TypedTableBase,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;false;Where<>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;Where<>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;Where<>;(System.Data.TypedTableBase,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;UniqueConstraint;false;UniqueConstraint;(System.String,System.Data.DataColumn);;Argument[0];Argument[this];taint;df-generated | | System.Data;UniqueConstraint;false;UniqueConstraint;(System.String,System.Data.DataColumn,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Data;UniqueConstraint;false;UniqueConstraint;(System.String,System.Data.DataColumn[]);;Argument[0];Argument[this];taint;df-generated | @@ -3109,6 +4413,12 @@ summary | System.Data;UniqueConstraint;false;UniqueConstraint;(System.String,System.String[],System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Data;UniqueConstraint;false;UniqueConstraint;(System.String,System.String[],System.Boolean);;Argument[1].Element;Argument[this];taint;df-generated | | System.Data;UniqueConstraint;false;get_Columns;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics.Contracts;Contract;false;Exists;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Contracts;Contract;false;Exists<>;(System.Collections.Generic.IEnumerable,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Contracts;Contract;false;ForAll;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Contracts;Contract;false;ForAll<>;(System.Collections.Generic.IEnumerable,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Contracts;Contract;false;add_ContractFailed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Contracts;Contract;false;remove_ContractFailed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;ContractClassAttribute;false;ContractClassAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics.Contracts;ContractClassAttribute;false;get_TypeContainingContracts;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Contracts;ContractClassForAttribute;false;ContractClassForAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | @@ -3129,7 +4439,22 @@ summary | System.Diagnostics.Contracts;ContractOptionAttribute;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Contracts;ContractPublicPropertyNameAttribute;false;ContractPublicPropertyNameAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics.Contracts;ContractPublicPropertyNameAttribute;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics.Eventing.Reader;EventLogWatcher;false;add_EventRecordWritten;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Eventing.Reader;EventLogWatcher;false;remove_EventRecordWritten;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Metrics;Measurement<>;false;Measurement;(T,System.Collections.Generic.KeyValuePair[]);;Argument[1].Element;Argument[this];taint;df-generated | +| System.Diagnostics.Metrics;MeasurementCallback<>;false;BeginInvoke;(System.Diagnostics.Metrics.Instrument,T,System.ReadOnlySpan>,System.Object,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<>;(System.String,System.Func>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<>;(System.String,System.Func>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<>;(System.String,System.Func,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<>;(System.String,System.Func>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<>;(System.String,System.Func>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<>;(System.String,System.Func,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<>;(System.String,System.Func>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<>;(System.String,System.Func>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<>;(System.String,System.Func,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;MeterListener;false;SetMeasurementEventCallback<>;(System.Diagnostics.Metrics.MeasurementCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;MeterListener;false;set_InstrumentPublished;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;MeterListener;false;set_MeasurementsCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;get_DisplayName;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;get_DisplayUnits;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;set_DisplayName;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -3138,20 +4463,28 @@ summary | System.Diagnostics.Tracing;EventListener;false;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel);;Argument[this];Argument[0];taint;df-generated | | System.Diagnostics.Tracing;EventListener;false;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords);;Argument[this];Argument[0];taint;df-generated | | System.Diagnostics.Tracing;EventListener;false;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords,System.Collections.Generic.IDictionary);;Argument[this];Argument[0];taint;df-generated | +| System.Diagnostics.Tracing;EventListener;false;add_EventSourceCreated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Tracing;EventListener;false;add_EventWritten;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Tracing;EventListener;false;remove_EventSourceCreated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Tracing;EventListener;false;remove_EventWritten;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventSource;false;EventSource;(System.Diagnostics.Tracing.EventSourceSettings,System.String[]);;Argument[1].Element;Argument[this];taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;GenerateManifest;(System.Type,System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;GenerateManifest;(System.Type,System.String,System.Diagnostics.Tracing.EventManifestOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;GetName;(System.Type);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;GetTrait;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics.Tracing;EventSource;false;add_EventCommandExecuted;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventSource;false;get_ConstructionException;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;get_Guid;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics.Tracing;EventSource;false;remove_EventCommandExecuted;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventWrittenEventArgs;false;get_ActivityId;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventWrittenEventArgs;false;get_EventName;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventWrittenEventArgs;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventWrittenEventArgs;false;get_PayloadNames;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventWrittenEventArgs;false;get_RelatedActivityId;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics.Tracing;IncrementingPollingCounter;false;IncrementingPollingCounter;(System.String,System.Diagnostics.Tracing.EventSource,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Tracing;PollingCounter;false;PollingCounter;(System.String,System.Diagnostics.Tracing.EventSource,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Activity;false;AddBaggage;(System.String,System.String);;Argument[this];ReturnValue;value;df-generated | | System.Diagnostics;Activity;false;AddEvent;(System.Diagnostics.ActivityEvent);;Argument[this];ReturnValue;value;df-generated | | System.Diagnostics;Activity;false;AddTag;(System.String,System.Object);;Argument[this];ReturnValue;value;df-generated | @@ -3169,6 +4502,7 @@ summary | System.Diagnostics;Activity;false;SetStatus;(System.Diagnostics.ActivityStatusCode,System.String);;Argument[this];ReturnValue;value;df-generated | | System.Diagnostics;Activity;false;SetTag;(System.String,System.Object);;Argument[this];ReturnValue;value;df-generated | | System.Diagnostics;Activity;false;Start;();;Argument[this];ReturnValue;value;df-generated | +| System.Diagnostics;Activity;false;add_CurrentChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Activity;false;get_DisplayName;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Activity;false;get_Events;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Activity;false;get_Id;();;Argument[this];ReturnValue;taint;df-generated | @@ -3181,9 +4515,16 @@ summary | System.Diagnostics;Activity;false;get_TagObjects;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Activity;false;get_TraceId;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Activity;false;get_TraceStateString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;Activity;false;remove_CurrentChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Activity;false;set_DisplayName;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Diagnostics;Activity;false;set_TraceIdGenerator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Activity;false;set_TraceStateString;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;ActivityCreationOptions<>;false;get_SamplingTags;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;ActivityListener;false;set_ActivityStarted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;ActivityListener;false;set_ActivityStopped;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;ActivityListener;false;set_Sample;(System.Diagnostics.SampleActivity);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;ActivityListener;false;set_SampleUsingParentId;(System.Diagnostics.SampleActivity);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;ActivityListener;false;set_ShouldListenTo;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;ActivitySource;false;CreateActivity;(System.String,System.Diagnostics.ActivityKind,System.String,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable,System.Diagnostics.ActivityIdFormat);;Argument[2];ReturnValue;taint;df-generated | | System.Diagnostics;ActivitySource;false;StartActivity;(System.String,System.Diagnostics.ActivityKind,System.String,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable,System.DateTimeOffset);;Argument[2];ReturnValue;taint;df-generated | | System.Diagnostics;ActivitySpanId;false;ToHexString;();;Argument[this];ReturnValue;taint;df-generated | @@ -3211,6 +4552,7 @@ summary | System.Diagnostics;ActivityTraceId;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;CorrelationManager;false;get_LogicalOperationStack;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;DataReceivedEventArgs;false;get_Data;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;DataReceivedEventHandler;false;BeginInvoke;(System.Object,System.Diagnostics.DataReceivedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DebuggerDisplayAttribute;false;get_Target;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;DebuggerDisplayAttribute;false;set_Target;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;DebuggerTypeProxyAttribute;false;get_Target;();;Argument[this];ReturnValue;taint;df-generated | @@ -3223,7 +4565,20 @@ summary | System.Diagnostics;DelimitedListTraceListener;false;set_Delimiter;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>);;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>,System.Func,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>,System.Func,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>,System.Func,System.Action,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DiagnosticSource;false;StartActivity;(System.Diagnostics.Activity,System.Object);;Argument[0];ReturnValue;taint;df-generated | +| System.Diagnostics;DistributedContextPropagator+PropagatorGetterCallback;false;BeginInvoke;(System.Object,System.String,System.String,System.Collections.Generic.IEnumerable,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DistributedContextPropagator+PropagatorSetterCallback;false;BeginInvoke;(System.Object,System.String,System.String,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DistributedContextPropagator;true;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DistributedContextPropagator;true;ExtractTraceIdAndState;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DistributedContextPropagator;true;Inject;(System.Diagnostics.Activity,System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;EntryWrittenEventHandler;false;BeginInvoke;(System.Object,System.Diagnostics.EntryWrittenEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;EventLog;false;add_EntryWritten;(System.Diagnostics.EntryWrittenEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;EventLog;false;remove_EntryWritten;(System.Diagnostics.EntryWrittenEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;EventLogEntryCollection;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Diagnostics;EventLogEntryCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Diagnostics;EventLogTraceListener;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | @@ -3248,6 +4603,9 @@ summary | System.Diagnostics;Process;false;GetProcesses;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;Start;(System.Diagnostics.ProcessStartInfo);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;Process;false;add_ErrorDataReceived;(System.Diagnostics.DataReceivedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;Process;false;add_Exited;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;Process;false;add_OutputDataReceived;(System.Diagnostics.DataReceivedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Process;false;get_ExitTime;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;get_Handle;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;get_MachineName;();;Argument[this];ReturnValue;taint;df-generated | @@ -3263,6 +4621,9 @@ summary | System.Diagnostics;Process;false;get_StartInfo;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;get_StartTime;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;get_Threads;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;Process;false;remove_ErrorDataReceived;(System.Diagnostics.DataReceivedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;Process;false;remove_Exited;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;Process;false;remove_OutputDataReceived;(System.Diagnostics.DataReceivedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Process;false;set_ProcessorAffinity;(System.IntPtr);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;Process;false;set_StartInfo;(System.Diagnostics.ProcessStartInfo);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;ProcessModule;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | @@ -3292,6 +4653,7 @@ summary | System.Diagnostics;ProcessThreadCollection;false;Insert;(System.Int32,System.Diagnostics.ProcessThread);;Argument[1];Argument[this];taint;df-generated | | System.Diagnostics;ProcessThreadCollection;false;ProcessThreadCollection;(System.Diagnostics.ProcessThread[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.Diagnostics;ProcessThreadCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;SampleActivity<>;false;BeginInvoke;(System.Diagnostics.ActivityCreationOptions,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;SourceFilter;false;SourceFilter;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;SourceFilter;false;get_Source;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;SourceFilter;false;set_Source;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -3306,10 +4668,12 @@ summary | System.Diagnostics;Switch;false;Switch;(System.String,System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;Switch;false;Switch;(System.String,System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Diagnostics;Switch;false;Switch;(System.String,System.String,System.String);;Argument[2];Argument[this];taint;df-generated | +| System.Diagnostics;Switch;false;add_Initializing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Switch;false;get_Attributes;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Switch;false;get_Description;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Switch;false;get_DisplayName;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Switch;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;Switch;false;remove_Initializing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Switch;false;set_Value;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;SwitchAttribute;false;SwitchAttribute;(System.String,System.Type);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;SwitchAttribute;false;SwitchAttribute;(System.String,System.Type);;Argument[1];Argument[this];taint;df-generated | @@ -3335,6 +4699,8 @@ summary | System.Diagnostics;TextWriterTraceListener;false;TextWriterTraceListener;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;TextWriterTraceListener;false;get_Writer;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TextWriterTraceListener;false;set_Writer;(System.IO.TextWriter);;Argument[0];Argument[this];taint;df-generated | +| System.Diagnostics;Trace;false;add_Refreshing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;Trace;false;remove_Refreshing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;TraceEventCache;false;get_Callstack;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TraceEventCache;false;get_DateTime;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TraceListener;false;TraceListener;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -3359,10 +4725,12 @@ summary | System.Diagnostics;TraceListenerCollection;false;set_Item;(System.Int32,System.Diagnostics.TraceListener);;Argument[1];Argument[this].Element;value;manual | | System.Diagnostics;TraceListenerCollection;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | | System.Diagnostics;TraceSource;false;TraceSource;(System.String,System.Diagnostics.SourceLevels);;Argument[0];Argument[this];taint;df-generated | +| System.Diagnostics;TraceSource;false;add_Initializing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;TraceSource;false;get_Attributes;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TraceSource;false;get_Listeners;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TraceSource;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TraceSource;false;get_Switch;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;TraceSource;false;remove_Initializing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;TraceSource;false;set_Switch;(System.Diagnostics.SourceSwitch);;Argument[0];Argument[this];taint;df-generated | | System.Drawing;Color;false;FromName;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Drawing;Color;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | @@ -3402,9 +4770,11 @@ summary | System.Dynamic;ExpandoObject;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Dynamic;ExpandoObject;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Dynamic;ExpandoObject;false;TryGetValue;(System.String,System.Object);;Argument[this];ReturnValue;taint;df-generated | +| System.Dynamic;ExpandoObject;false;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Dynamic;ExpandoObject;false;get_Item;(System.String);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Dynamic;ExpandoObject;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | | System.Dynamic;ExpandoObject;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | +| System.Dynamic;ExpandoObject;false;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Dynamic;ExpandoObject;false;set_Item;(System.String,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Dynamic;ExpandoObject;false;set_Item;(System.String,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Formats.Asn1;AsnReader;false;AsnReader;(System.ReadOnlyMemory,System.Formats.Asn1.AsnEncodingRules,System.Formats.Asn1.AsnReaderOptions);;Argument[0];Argument[this];taint;df-generated | @@ -3566,8 +4936,10 @@ summary | System.Globalization;TextInfo;false;ToUpper;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Globalization;TextInfo;false;get_CultureName;();;Argument[this];ReturnValue;taint;df-generated | | System.Globalization;TextInfo;false;set_ListSeparator;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.IO.Compression;BrotliStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;BrotliStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO.Compression;BrotliStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO.Compression;BrotliStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;BrotliStream;false;BrotliStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.IO.Compression;BrotliStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.IO.Compression;BrotliStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | @@ -3578,8 +4950,10 @@ summary | System.IO.Compression;BrotliStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[this];taint;manual | | System.IO.Compression;BrotliStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.IO.Compression;BrotliStream;false;get_BaseStream;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO.Compression;DeflateStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;DeflateStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO.Compression;DeflateStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO.Compression;DeflateStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;DeflateStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual | | System.IO.Compression;DeflateStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual | | System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];Argument[this];taint;manual | @@ -3595,8 +4969,10 @@ summary | System.IO.Compression;DeflateStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[this];taint;manual | | System.IO.Compression;DeflateStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.IO.Compression;DeflateStream;false;get_BaseStream;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO.Compression;GZipStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;GZipStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO.Compression;GZipStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO.Compression;GZipStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;GZipStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual | | System.IO.Compression;GZipStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual | | System.IO.Compression;GZipStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | @@ -3610,8 +4986,10 @@ summary | System.IO.Compression;GZipStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[this];taint;manual | | System.IO.Compression;GZipStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.IO.Compression;GZipStream;false;get_BaseStream;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO.Compression;ZLibStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;ZLibStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO.Compression;ZLibStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO.Compression;ZLibStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;ZLibStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual | | System.IO.Compression;ZLibStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual | | System.IO.Compression;ZLibStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | @@ -3650,15 +5028,22 @@ summary | System.IO.Enumeration;FileSystemEntry;false;ToFileSystemInfo;();;Argument[this];ReturnValue;taint;df-generated | | System.IO.Enumeration;FileSystemEntry;false;ToSpecifiedFullPath;();;Argument[this];ReturnValue;taint;df-generated | | System.IO.Enumeration;FileSystemEntry;false;get_FileName;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO.Enumeration;FileSystemEnumerable<>+FindPredicate;false;BeginInvoke;(System.IO.Enumeration.FileSystemEntry,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.IO.Enumeration;FileSystemEnumerable<>+FindTransform;false;BeginInvoke;(System.IO.Enumeration.FileSystemEntry,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.IO.Enumeration;FileSystemEnumerable<>;false;FileSystemEnumerable;(System.String,System.IO.Enumeration.FileSystemEnumerable<>+FindTransform,System.IO.EnumerationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.IO.Enumeration;FileSystemEnumerable<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.IO.Enumeration;FileSystemEnumerable<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.IO.Enumeration;FileSystemEnumerable<>;false;set_ShouldIncludePredicate;(System.IO.Enumeration.FileSystemEnumerable<>+FindPredicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO.Enumeration;FileSystemEnumerable<>;false;set_ShouldRecursePredicate;(System.IO.Enumeration.FileSystemEnumerable<>+FindPredicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Enumeration;FileSystemEnumerator<>;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | | System.IO.Enumeration;FileSystemName;false;TranslateWin32Expression;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.IO.IsolatedStorage;IsolatedStorage;false;get_ApplicationIdentity;();;Argument[this];ReturnValue;taint;df-generated | | System.IO.IsolatedStorage;IsolatedStorage;false;get_AssemblyIdentity;();;Argument[this];ReturnValue;taint;df-generated | | System.IO.IsolatedStorage;IsolatedStorage;false;get_DomainIdentity;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | @@ -3688,7 +5073,10 @@ summary | System.IO.Pipelines;PipeReader;true;AsStream;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeReader;true;CopyToAsync;(System.IO.Pipelines.PipeWriter,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeReader;true;CopyToAsync;(System.IO.Stream,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | +| System.IO.Pipelines;PipeReader;true;OnWriterCompleted;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO.Pipelines;PipeScheduler;true;Schedule;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipelines;PipeWriter;true;AsStream;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | +| System.IO.Pipelines;PipeWriter;true;OnReaderCompleted;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipelines;PipeWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.IO.Pipelines;ReadResult;false;ReadResult;(System.Buffers.ReadOnlySequence,System.Boolean,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.IO.Pipelines;ReadResult;false;get_Buffer;();;Argument[this];ReturnValue;taint;df-generated | @@ -3701,10 +5089,14 @@ summary | System.IO.Pipes;NamedPipeClientStream;false;ConnectAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.IO.Pipes;NamedPipeClientStream;false;NamedPipeClientStream;(System.IO.Pipes.PipeDirection,System.Boolean,System.Boolean,Microsoft.Win32.SafeHandles.SafePipeHandle);;Argument[3];Argument[this];taint;df-generated | | System.IO.Pipes;NamedPipeClientStream;false;NamedPipeClientStream;(System.String,System.String,System.IO.Pipes.PipeDirection,System.IO.Pipes.PipeOptions,System.Security.Principal.TokenImpersonationLevel,System.IO.HandleInheritability);;Argument[1];Argument[this];taint;df-generated | +| System.IO.Pipes;NamedPipeServerStream;false;BeginWaitForConnection;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipes;NamedPipeServerStream;false;NamedPipeServerStream;(System.IO.Pipes.PipeDirection,System.Boolean,System.Boolean,Microsoft.Win32.SafeHandles.SafePipeHandle);;Argument[3];Argument[this];taint;df-generated | +| System.IO.Pipes;NamedPipeServerStream;false;RunAsClient;(System.IO.Pipes.PipeStreamImpersonationWorker);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipes;NamedPipeServerStream;false;WaitForConnectionAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | +| System.IO.Pipes;PipeStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Pipes;PipeStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO.Pipes;PipeStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO.Pipes;PipeStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Pipes;PipeStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.IO.Pipes;PipeStream;false;InitializeHandle;(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Boolean,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.IO.Pipes;PipeStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | @@ -3714,6 +5106,7 @@ summary | System.IO.Pipes;PipeStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[this];taint;manual | | System.IO.Pipes;PipeStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.IO.Pipes;PipeStream;false;get_SafePipeHandle;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO.Pipes;PipeStreamImpersonationWorker;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO;BinaryReader;false;BinaryReader;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.IO;BinaryReader;false;BinaryReader;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[1];Argument[this];taint;df-generated | | System.IO;BinaryReader;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;df-generated | @@ -3726,8 +5119,10 @@ summary | System.IO;BinaryWriter;false;Write;(System.Byte[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.IO;BinaryWriter;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;df-generated | | System.IO;BinaryWriter;false;get_BaseStream;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO;BufferedStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;BufferedStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO;BufferedStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO;BufferedStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;BufferedStream;false;BufferedStream;(System.IO.Stream,System.Int32);;Argument[0];Argument[this];taint;df-generated | | System.IO;BufferedStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual | | System.IO;BufferedStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual | @@ -3770,6 +5165,7 @@ summary | System.IO;DriveInfo;false;get_VolumeLabel;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;ErrorEventArgs;false;ErrorEventArgs;(System.Exception);;Argument[0];Argument[this];taint;df-generated | | System.IO;ErrorEventArgs;false;GetException;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO;ErrorEventHandler;false;BeginInvoke;(System.Object,System.IO.ErrorEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.IO;File;false;AppendAllLinesAsync;(System.String,System.Collections.Generic.IEnumerable,System.Text.Encoding,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;df-generated | | System.IO;File;false;AppendAllLinesAsync;(System.String,System.Collections.Generic.IEnumerable,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;df-generated | | System.IO;File;false;AppendAllTextAsync;(System.String,System.String,System.Text.Encoding,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;df-generated | @@ -3814,8 +5210,10 @@ summary | System.IO;FileNotFoundException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.IO;FileNotFoundException;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileNotFoundException;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO;FileStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;FileStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO;FileStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO;FileStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;FileStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual | | System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode);;Argument[0];Argument[this];taint;manual | | System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess);;Argument[0];Argument[this];taint;manual | @@ -3839,6 +5237,7 @@ summary | System.IO;FileSystemEventArgs;false;FileSystemEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String);;Argument[2];Argument[this];taint;df-generated | | System.IO;FileSystemEventArgs;false;get_FullPath;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemEventArgs;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO;FileSystemEventHandler;false;BeginInvoke;(System.Object,System.IO.FileSystemEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.IO;FileSystemInfo;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemInfo;false;get_Extension;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemInfo;false;get_LinkTarget;();;Argument[this];ReturnValue;taint;df-generated | @@ -3847,15 +5246,27 @@ summary | System.IO;FileSystemWatcher;false;FileSystemWatcher;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.IO;FileSystemWatcher;false;FileSystemWatcher;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.IO;FileSystemWatcher;false;FileSystemWatcher;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | +| System.IO;FileSystemWatcher;false;add_Changed;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;add_Created;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;add_Deleted;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;add_Error;(System.IO.ErrorEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;add_Renamed;(System.IO.RenamedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO;FileSystemWatcher;false;get_Filter;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemWatcher;false;get_Filters;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemWatcher;false;get_Path;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemWatcher;false;get_Site;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO;FileSystemWatcher;false;remove_Changed;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;remove_Created;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;remove_Deleted;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;remove_Error;(System.IO.ErrorEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;remove_Renamed;(System.IO.RenamedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO;FileSystemWatcher;false;set_Filter;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.IO;FileSystemWatcher;false;set_Path;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.IO;FileSystemWatcher;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[this];taint;df-generated | +| System.IO;MemoryStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;MemoryStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO;MemoryStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO;MemoryStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;MemoryStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual | | System.IO;MemoryStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual | | System.IO;MemoryStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | @@ -3925,6 +5336,7 @@ summary | System.IO;RenamedEventArgs;false;RenamedEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String,System.String);;Argument[3];Argument[this];taint;df-generated | | System.IO;RenamedEventArgs;false;get_OldFullPath;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;RenamedEventArgs;false;get_OldName;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO;RenamedEventHandler;false;BeginInvoke;(System.Object,System.IO.RenamedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.IO;Stream;false;CopyTo;(System.IO.Stream);;Argument[this];Argument[0];taint;manual | | System.IO;Stream;false;CopyToAsync;(System.IO.Stream);;Argument[this];Argument[0];taint;manual | | System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual | @@ -3933,8 +5345,10 @@ summary | System.IO;Stream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | | System.IO;Stream;false;Synchronized;(System.IO.Stream);;Argument[0];ReturnValue;taint;df-generated | | System.IO;Stream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;manual | +| System.IO;Stream;true;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;Stream;true;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO;Stream;true;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO;Stream;true;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;Stream;true;CopyTo;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual | | System.IO;Stream;true;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual | | System.IO;Stream;true;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | @@ -4550,6 +5964,7 @@ summary | System.Linq.Expressions;Expression<>;false;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;false;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);;Argument[0].Element;Argument[this];taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;false;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;false;Visit<>;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq.Expressions;ExpressionVisitor;false;VisitAndConvert<>;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);;Argument[0].Element;Argument[this];taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;false;VisitAndConvert<>;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;false;VisitAndConvert<>;(T,System.String);;Argument[0];Argument[this];taint;df-generated | @@ -4668,233 +6083,367 @@ summary | System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[3].ReturnValue;ReturnValue;value;manual | +| System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Aggregate<,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;false;Aggregate<,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;Aggregate<,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);;Argument[2].ReturnValue;ReturnValue;value;manual | +| System.Linq;Enumerable;false;Aggregate<,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Aggregate<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;Enumerable;false;Aggregate<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1].ReturnValue;ReturnValue;value;manual | +| System.Linq;Enumerable;false;Aggregate<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;All<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;All<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Any<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Any<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Append<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;AsEnumerable<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Cast<>;(System.Collections.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Concat<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Concat<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Count<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Count<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;DefaultIfEmpty<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;DefaultIfEmpty<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;DefaultIfEmpty<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;value;manual | | System.Linq;Enumerable;false;Distinct<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Distinct<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;DistinctBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;DistinctBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;ElementAt<>;(System.Collections.Generic.IEnumerable,System.Index);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;ElementAt<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;ElementAtOrDefault<>;(System.Collections.Generic.IEnumerable,System.Index);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;ElementAtOrDefault<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;Except<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;Except<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;ExceptBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;ExceptBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;First<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;First<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;First<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;First<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[0];Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Intersect<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Intersect<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Intersect<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Intersect<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;IntersectBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;IntersectBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Last<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;Last<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Last<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;Last<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;LongCount<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;LongCount<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1];taint;df-generated | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;MaxBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;MaxBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;Min<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1];taint;df-generated | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;MinBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;MinBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;OfType<>;(System.Collections.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Prepend<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;Repeat<>;(TResult,System.Int32);;Argument[0];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;Reverse<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Single<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;Single<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Single<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;Single<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;Skip<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;SkipLast<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Take<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Take<>;(System.Collections.Generic.IEnumerable,System.Range);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;TakeLast<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToArray<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToList<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Union<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Union<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Union<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Union<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;UnionBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;UnionBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Zip<,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;Zip<,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;false;Zip<,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Zip<,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;EnumerableExecutor<>;false;EnumerableExecutor;(System.Linq.Expressions.Expression);;Argument[0];Argument[this];taint;df-generated | | System.Linq;EnumerableQuery<>;false;CreateQuery<>;(System.Linq.Expressions.Expression);;Argument[0];ReturnValue;taint;df-generated | | System.Linq;EnumerableQuery<>;false;EnumerableQuery;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this];taint;df-generated | @@ -4904,31 +6453,69 @@ summary | System.Linq;EnumerableQuery<>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Linq;EnumerableQuery<>;false;get_Expression;();;Argument[this];ReturnValue;taint;df-generated | | System.Linq;EnumerableQuery<>;false;get_Provider;();;Argument[this];ReturnValue;value;df-generated | +| System.Linq;IOrderedEnumerable<>;true;CreateOrderedEnumerable<>;(System.Func,System.Collections.Generic.IComparer,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Aggregate<,,>;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Aggregate<,,>;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Aggregate<,>;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Aggregate<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;All<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Any<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;false;ElementAt<>;(System.Collections.Immutable.ImmutableArray,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;false;ElementAtOrDefault<>;(System.Collections.Immutable.ImmutableArray,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;false;First<>;(System.Collections.Immutable.ImmutableArray);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;false;First<>;(System.Collections.Immutable.ImmutableArray+Builder);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ImmutableArrayExtensions;false;First<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;false;FirstOrDefault<>;(System.Collections.Immutable.ImmutableArray);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;false;FirstOrDefault<>;(System.Collections.Immutable.ImmutableArray+Builder);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ImmutableArrayExtensions;false;FirstOrDefault<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;false;Last<>;(System.Collections.Immutable.ImmutableArray);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;false;Last<>;(System.Collections.Immutable.ImmutableArray+Builder);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ImmutableArrayExtensions;false;Last<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;false;LastOrDefault<>;(System.Collections.Immutable.ImmutableArray+Builder);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ImmutableArrayExtensions;false;LastOrDefault<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Select<,>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;SelectMany<,,>;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;SelectMany<,,>;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;SequenceEqual<,>;(System.Collections.Immutable.ImmutableArray,System.Collections.Immutable.ImmutableArray,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;false;Single<>;(System.Collections.Immutable.ImmutableArray);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Linq;ImmutableArrayExtensions;false;Single<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;SingleOrDefault<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,,>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,,>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,,>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,,>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Where<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Lookup<,>;false;ApplyResultSelector<>;(System.Func,TResult>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Linq;Lookup<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Linq;Lookup<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Linq;Lookup<,>;false;get_Item;(TKey);;Argument[this];ReturnValue;taint;df-generated | | System.Linq;OrderedParallelQuery<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[3].ReturnValue;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,>;(System.Linq.ParallelQuery,TAccumulate,System.Func);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,>;(System.Linq.ParallelQuery,TAccumulate,System.Func);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,>;(System.Linq.ParallelQuery,TAccumulate,System.Func);;Argument[2].ReturnValue;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;Aggregate<,>;(System.Linq.ParallelQuery,TAccumulate,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<>;(System.Linq.ParallelQuery,System.Func);;Argument[1].ReturnValue;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;Aggregate<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;All<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;All<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Any<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Any<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;AsEnumerable<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;AsOrdered;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;AsOrdered<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -4938,21 +6525,32 @@ summary | System.Linq;ParallelEnumerable;false;AsSequential<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;AsUnordered<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Cast<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Concat<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Concat<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Concat<>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Concat<>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Count<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Count<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;DefaultIfEmpty<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;DefaultIfEmpty<>;(System.Linq.ParallelQuery,TSource);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;DefaultIfEmpty<>;(System.Linq.ParallelQuery,TSource);;Argument[1];ReturnValue;value;manual | @@ -4967,54 +6565,85 @@ summary | System.Linq;ParallelEnumerable;false;First<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;First<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;First<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;First<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;FirstOrDefault<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;FirstOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;FirstOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;FirstOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;ForAll<>;(System.Linq.ParallelQuery,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[0];Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Intersect<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Intersect<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Intersect<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | @@ -5027,134 +6656,215 @@ summary | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Last<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;Last<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Last<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;Last<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;LastOrDefault<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;LastOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;LastOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;LastOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;LongCount<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;LongCount<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;OfType<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Repeat<>;(TResult,System.Int32);;Argument[0];ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;Reverse<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Single<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;Single<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Single<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;Single<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SingleOrDefault<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;SingleOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SingleOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;SingleOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Skip<>;(System.Linq.ParallelQuery,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Take<>;(System.Linq.ParallelQuery,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToArray<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToList<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Union<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Union<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Union<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | @@ -5165,8 +6875,10 @@ summary | System.Linq;ParallelEnumerable;false;Union<>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;WithCancellation<>;(System.Linq.ParallelQuery,System.Threading.CancellationToken);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;WithDegreeOfParallelism<>;(System.Linq.ParallelQuery,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;WithExecutionMode<>;(System.Linq.ParallelQuery,System.Linq.ParallelExecutionMode);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -5174,179 +6886,283 @@ summary | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);;Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);;Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelQuery;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Linq;ParallelQuery<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | +| System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[3].ReturnValue;ReturnValue;value;manual | +| System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Aggregate<,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;false;Aggregate<,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;Aggregate<,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;ReturnValue;value;manual | +| System.Linq;Queryable;false;Aggregate<,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Aggregate<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;Queryable;false;Aggregate<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1].ReturnValue;ReturnValue;value;manual | +| System.Linq;Queryable;false;Aggregate<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;All<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;All<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Any<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Any<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;AsQueryable;(System.Collections.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;AsQueryable<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Cast<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Concat<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Concat<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Count<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Count<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;DefaultIfEmpty<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;DefaultIfEmpty<>;(System.Linq.IQueryable,TSource);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;DefaultIfEmpty<>;(System.Linq.IQueryable,TSource);;Argument[1];ReturnValue;value;manual | | System.Linq;Queryable;false;Distinct<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Distinct<>;(System.Linq.IQueryable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;DistinctBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;DistinctBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;ElementAt<>;(System.Linq.IQueryable,System.Int32);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;ElementAtOrDefault<>;(System.Linq.IQueryable,System.Int32);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;Except<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;Except<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;ExceptBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;ExceptBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;First<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;First<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;First<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;First<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;FirstOrDefault<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;FirstOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;FirstOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;FirstOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;FirstOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Intersect<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Intersect<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Intersect<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Intersect<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;IntersectBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;IntersectBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Last<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;Last<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Last<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;Last<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;LastOrDefault<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;LastOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;LastOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;LastOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;LastOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;LongCount<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;LongCount<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Max<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Max<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;MaxBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;MaxBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;Min<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Min<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;MinBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;MinBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;OfType<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Reverse<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Single<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;Single<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Single<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;Single<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SingleOrDefault<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;SingleOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SingleOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;SingleOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;SingleOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;Skip<>;(System.Linq.IQueryable,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Take<>;(System.Linq.IQueryable,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Union<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Union<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Union<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Union<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;UnionBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;UnionBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Zip<,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;Zip<,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;false;Zip<,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Zip<,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Net.Cache;HttpRequestCachePolicy;false;HttpRequestCachePolicy;(System.DateTime);;Argument[0];Argument[this];taint;df-generated | | System.Net.Cache;HttpRequestCachePolicy;false;HttpRequestCachePolicy;(System.Net.Cache.HttpCacheAgeControl,System.TimeSpan);;Argument[1];Argument[this];taint;df-generated | | System.Net.Cache;HttpRequestCachePolicy;false;HttpRequestCachePolicy;(System.Net.Cache.HttpCacheAgeControl,System.TimeSpan,System.TimeSpan);;Argument[1];Argument[this];taint;df-generated | @@ -5530,6 +7346,7 @@ summary | System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;df-generated | | System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Http;HeaderEncodingSelector<>;false;BeginInvoke;(System.String,TContext,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;df-generated | @@ -5545,6 +7362,7 @@ summary | System.Net.Http;HttpClient;false;set_DefaultRequestVersion;(System.Version);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;HttpClient;false;set_Timeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;HttpClientHandler;false;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | +| System.Net.Http;HttpClientHandler;false;set_ServerCertificateCustomValidationCallback;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;HttpContent;false;CopyTo;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpContent;false;CopyToAsync;(System.IO.Stream);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpContent;false;CopyToAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[this];Argument[0];taint;df-generated | @@ -5611,6 +7429,7 @@ summary | System.Net.Http;MultipartContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Http;MultipartContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;MultipartContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Http;MultipartContent;false;set_HeaderEncodingSelector;(System.Net.Http.HeaderEncodingSelector);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent);;Argument[0];Argument[this].Element;value;manual | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent,System.String,System.String);;Argument[0];Argument[this];taint;df-generated | @@ -5644,6 +7463,7 @@ summary | System.Net.Http;SocketsHttpHandler;false;get_ResponseHeaderEncodingSelector;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;get_SslOptions;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_ActivityHeadersPropagator;(System.Diagnostics.DistributedContextPropagator);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Http;SocketsHttpHandler;false;set_ConnectCallback;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;SocketsHttpHandler;false;set_ConnectTimeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_CookieContainer;(System.Net.CookieContainer);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[this];taint;df-generated | @@ -5651,10 +7471,13 @@ summary | System.Net.Http;SocketsHttpHandler;false;set_Expect100ContinueTimeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_KeepAlivePingDelay;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_KeepAlivePingTimeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Http;SocketsHttpHandler;false;set_PlaintextStreamFilter;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;SocketsHttpHandler;false;set_PooledConnectionIdleTimeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_PooledConnectionLifetime;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_Proxy;(System.Net.IWebProxy);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Http;SocketsHttpHandler;false;set_RequestHeaderEncodingSelector;(System.Net.Http.HeaderEncodingSelector);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;SocketsHttpHandler;false;set_ResponseDrainTimeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Http;SocketsHttpHandler;false;set_ResponseHeaderEncodingSelector;(System.Net.Http.HeaderEncodingSelector);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;SocketsHttpHandler;false;set_SslOptions;(System.Net.Security.SslClientAuthenticationOptions);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;false;get_InitialRequestMessage;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;false;get_NegotiatedHttpVersion;();;Argument[this];ReturnValue;taint;df-generated | @@ -5753,6 +7576,7 @@ summary | System.Net.Mail;MailMessage;false;set_Sender;(System.Net.Mail.MailAddress);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;MailMessage;false;set_Subject;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;MailMessage;false;set_SubjectEncoding;(System.Text.Encoding);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Mail;SendCompletedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.AsyncCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net.Mail;SmtpClient;false;Send;(System.Net.Mail.MailMessage);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;SmtpClient;false;Send;(System.String,System.String,System.String,System.String);;Argument[3];Argument[this];taint;df-generated | | System.Net.Mail;SmtpClient;false;SendAsync;(System.Net.Mail.MailMessage,System.Object);;Argument[0];Argument[this];taint;df-generated | @@ -5765,10 +7589,12 @@ summary | System.Net.Mail;SmtpClient;false;SendMailAsync;(System.String,System.String,System.String,System.String,System.Threading.CancellationToken);;Argument[4];ReturnValue;taint;df-generated | | System.Net.Mail;SmtpClient;false;SmtpClient;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;SmtpClient;false;SmtpClient;(System.String,System.Int32);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Mail;SmtpClient;false;add_SendCompleted;(System.Net.Mail.SendCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Mail;SmtpClient;false;get_Credentials;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Mail;SmtpClient;false;get_Host;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Mail;SmtpClient;false;get_PickupDirectoryLocation;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Mail;SmtpClient;false;get_TargetName;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Mail;SmtpClient;false;remove_SendCompleted;(System.Net.Mail.SendCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Mail;SmtpClient;false;set_Credentials;(System.Net.ICredentialsByHost);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;SmtpClient;false;set_Host;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;SmtpClient;false;set_PickupDirectoryLocation;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -5813,13 +7639,23 @@ summary | System.Net.NetworkInformation;IPAddressInformationCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Net.NetworkInformation;IPAddressInformationCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Net.NetworkInformation;IPAddressInformationCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System.Net.NetworkInformation;IPGlobalProperties;true;BeginGetUnicastAddresses;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.NetworkInformation;MulticastIPAddressInformationCollection;false;Add;(System.Net.NetworkInformation.MulticastIPAddressInformation);;Argument[0];Argument[this].Element;value;manual | | System.Net.NetworkInformation;MulticastIPAddressInformationCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Net.NetworkInformation;MulticastIPAddressInformationCollection;false;CopyTo;(System.Net.NetworkInformation.MulticastIPAddressInformation[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Net.NetworkInformation;MulticastIPAddressInformationCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Net.NetworkInformation;MulticastIPAddressInformationCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Net.NetworkInformation;MulticastIPAddressInformationCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System.Net.NetworkInformation;NetworkAddressChangedEventHandler;false;BeginInvoke;(System.Object,System.EventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;NetworkAvailabilityChangedEventHandler;false;BeginInvoke;(System.Object,System.Net.NetworkInformation.NetworkAvailabilityEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;NetworkChange;false;add_NetworkAddressChanged;(System.Net.NetworkInformation.NetworkAddressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;NetworkChange;false;add_NetworkAvailabilityChanged;(System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;NetworkChange;false;remove_NetworkAddressChanged;(System.Net.NetworkInformation.NetworkAddressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;NetworkChange;false;remove_NetworkAvailabilityChanged;(System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.NetworkInformation;PhysicalAddress;false;PhysicalAddress;(System.Byte[]);;Argument[0].Element;Argument[this];taint;df-generated | +| System.Net.NetworkInformation;Ping;false;add_PingCompleted;(System.Net.NetworkInformation.PingCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;Ping;false;remove_PingCompleted;(System.Net.NetworkInformation.PingCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;PingCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.NetworkInformation.PingCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net.NetworkInformation;UnicastIPAddressInformationCollection;false;Add;(System.Net.NetworkInformation.UnicastIPAddressInformation);;Argument[0];Argument[this].Element;value;manual | | System.Net.NetworkInformation;UnicastIPAddressInformationCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Net.NetworkInformation;UnicastIPAddressInformationCollection;false;CopyTo;(System.Net.NetworkInformation.UnicastIPAddressInformation[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | @@ -5829,8 +7665,11 @@ summary | System.Net.Quic;QuicConnection;false;get_LocalEndPoint;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Quic;QuicConnection;false;get_NegotiatedApplicationProtocol;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Quic;QuicConnection;false;get_RemoteEndPoint;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Quic;QuicListenerOptions;false;set_ConnectionOptionsCallback;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Quic;QuicStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Quic;QuicStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.Net.Quic;QuicStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.Net.Quic;QuicStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Quic;QuicStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Net.Quic;QuicStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | | System.Net.Quic;QuicStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0].Element;taint;manual | @@ -5841,6 +7680,7 @@ summary | System.Net.Security;AuthenticatedStream;false;AuthenticatedStream;(System.IO.Stream,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Net.Security;AuthenticatedStream;false;DisposeAsync;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;AuthenticatedStream;false;get_InnerStream;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Security;LocalCertificateSelectionCallback;false;BeginInvoke;(System.Object,System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Cryptography.X509Certificates.X509Certificate,System.String[],System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String);;Argument[2];Argument[this];taint;df-generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel);;Argument[1];Argument[this];taint;df-generated | @@ -5857,8 +7697,19 @@ summary | System.Net.Security;NegotiateStream;false;AuthenticateAsServer;(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy);;Argument[0];Argument[this];taint;df-generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsServerAsync;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel);;Argument[1];Argument[this];taint;df-generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsServerAsync;(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsClient;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsClient;(System.Net.NetworkCredential,System.String,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsClient;(System.Net.NetworkCredential,System.String,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsServer;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsServer;(System.Net.NetworkCredential,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsServer;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsServer;(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Security;NegotiateStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.Net.Security;NegotiateStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.Net.Security;NegotiateStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Security;NegotiateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Security;NegotiateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;NegotiateStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | @@ -5872,17 +7723,38 @@ summary | System.Net.Security;NegotiateStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Net.Security;NegotiateStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;NegotiateStream;false;get_RemoteIdentity;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Security;RemoteCertificateValidationCallback;false;BeginInvoke;(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;ServerCertificateSelectionCallback;false;BeginInvoke;(System.Object,System.String,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;ServerOptionsSelectionCallback;false;BeginInvoke;(System.Net.Security.SslStream,System.Net.Security.SslClientHelloInfo,System.Object,System.Threading.CancellationToken,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslApplicationProtocol;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;SslApplicationProtocol;false;get_Protocol;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;SslCertificateTrust;false;CreateForX509Collection;(System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Net.Security;SslCertificateTrust;false;CreateForX509Store;(System.Security.Cryptography.X509Certificates.X509Store,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | +| System.Net.Security;SslClientAuthenticationOptions;false;set_LocalCertificateSelectionCallback;(System.Net.Security.LocalCertificateSelectionCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslClientAuthenticationOptions;false;set_RemoteCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslServerAuthenticationOptions;false;set_RemoteCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslServerAuthenticationOptions;false;set_ServerCertificateSelectionCallback;(System.Net.Security.ServerCertificateSelectionCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;AuthenticateAsServerAsync;(System.Net.Security.ServerOptionsSelectionCallback,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsClient;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.Boolean,System.Boolean,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.Boolean,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Security;SslStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.Net.Security;SslStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.Net.Security;SslStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Security;SslStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Security;SslStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;SslStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | | System.Net.Security;SslStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0].Element;taint;manual | | System.Net.Security;SslStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Security;SslStream;false;SslStream;(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;SslStream;(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.LocalCertificateSelectionCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;SslStream;(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.LocalCertificateSelectionCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;SslStream;(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.LocalCertificateSelectionCallback,System.Net.Security.EncryptionPolicy);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;SslStream;(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.LocalCertificateSelectionCallback,System.Net.Security.EncryptionPolicy);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;false;Write;(System.Byte[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.Net.Security;SslStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;manual | | System.Net.Security;SslStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[this];taint;manual | @@ -5907,8 +7779,10 @@ summary | System.Net.Sockets;MulticastOption;false;get_LocalAddress;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;MulticastOption;false;set_Group;(System.Net.IPAddress);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;MulticastOption;false;set_LocalAddress;(System.Net.IPAddress);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Sockets;NetworkStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Sockets;NetworkStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.Net.Sockets;NetworkStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.Net.Sockets;NetworkStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Sockets;NetworkStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;NetworkStream;false;NetworkStream;(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;NetworkStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | @@ -5930,6 +7804,27 @@ summary | System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[this];Argument[0];taint;df-generated | | System.Net.Sockets;Socket;false;AcceptAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Sockets;Socket;false;AcceptAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Sockets;Socket;false;BeginAccept;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginAccept;(System.Int32,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginAccept;(System.Net.Sockets.Socket,System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginConnect;(System.Net.EndPoint,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginConnect;(System.Net.IPAddress,System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginConnect;(System.Net.IPAddress[],System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginConnect;(System.String,System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginDisconnect;(System.Boolean,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceive;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceive;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceive;(System.Collections.Generic.IList>,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceive;(System.Collections.Generic.IList>,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceiveFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceiveMessageFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSend;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSend;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSend;(System.Collections.Generic.IList>,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSend;(System.Collections.Generic.IList>,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSendFile;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSendFile;(System.String,System.Byte[],System.Byte[],System.Net.Sockets.TransmitFileOptions,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSendTo;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;Socket;false;Bind;(System.Net.EndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;Socket;false;Connect;(System.Net.EndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;Socket;false;Connect;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[this];taint;df-generated | @@ -6027,6 +7922,7 @@ summary | System.Net.Sockets;Socket;false;get_SafeHandle;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;SetBuffer;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;SetBuffer;(System.Memory);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Sockets;SocketAsyncEventArgs;false;add_Completed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;get_AcceptSocket;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;get_BufferList;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;get_ConnectByNameError;();;Argument[this];ReturnValue;taint;df-generated | @@ -6036,6 +7932,7 @@ summary | System.Net.Sockets;SocketAsyncEventArgs;false;get_RemoteEndPoint;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;get_SendPacketsElements;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;get_UserToken;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Sockets;SocketAsyncEventArgs;false;remove_Completed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;set_AcceptSocket;(System.Net.Sockets.Socket);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;set_BufferList;(System.Collections.Generic.IList>);;Argument[0].Element;Argument[this];taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;set_RemoteEndPoint;(System.Net.EndPoint);;Argument[0];Argument[this];taint;df-generated | @@ -6059,6 +7956,9 @@ summary | System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketTaskExtensions;false;SendToAsync;(System.Net.Sockets.Socket,System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[3];Argument[0];taint;df-generated | +| System.Net.Sockets;TcpClient;false;BeginConnect;(System.Net.IPAddress,System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;TcpClient;false;BeginConnect;(System.Net.IPAddress[],System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;TcpClient;false;BeginConnect;(System.String,System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;TcpClient;false;Connect;(System.Net.IPEndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;TcpClient;false;ConnectAsync;(System.Net.IPEndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;TcpClient;false;ConnectAsync;(System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | @@ -6070,12 +7970,18 @@ summary | System.Net.Sockets;TcpListener;false;AcceptSocketAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Sockets;TcpListener;false;AcceptSocketAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;TcpListener;false;AcceptTcpClient;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Sockets;TcpListener;false;BeginAcceptSocket;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;TcpListener;false;BeginAcceptTcpClient;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;TcpListener;false;EndAcceptSocket;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Sockets;TcpListener;false;EndAcceptTcpClient;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPEndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;TcpListener;false;get_LocalEndpoint;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;TcpListener;false;get_Server;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Sockets;UdpClient;false;BeginReceive;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;UdpClient;false;BeginSend;(System.Byte[],System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;UdpClient;false;BeginSend;(System.Byte[],System.Int32,System.Net.IPEndPoint,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;UdpClient;false;BeginSend;(System.Byte[],System.Int32,System.String,System.Int32,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;UdpClient;false;Connect;(System.Net.IPEndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;UdpClient;false;EndReceive;(System.IAsyncResult,System.Net.IPEndPoint);;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;UdpClient;false;Receive;(System.Net.IPEndPoint);;Argument[this];ReturnValue;taint;df-generated | @@ -6109,6 +8015,7 @@ summary | System.Net.WebSockets;ClientWebSocketOptions;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[this];taint;df-generated | | System.Net.WebSockets;ClientWebSocketOptions;false;set_KeepAliveInterval;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.WebSockets;ClientWebSocketOptions;false;set_Proxy;(System.Net.IWebProxy);;Argument[0];Argument[this];taint;df-generated | +| System.Net.WebSockets;ClientWebSocketOptions;false;set_RemoteCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.WebSockets;HttpListenerWebSocketContext;false;get_CookieCollection;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.WebSockets;HttpListenerWebSocketContext;false;get_Headers;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.WebSockets;HttpListenerWebSocketContext;false;get_Origin;();;Argument[this];ReturnValue;taint;df-generated | @@ -6128,8 +8035,10 @@ summary | System.Net.WebSockets;WebSocketCreationOptions;false;set_KeepAliveInterval;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.WebSockets;WebSocketCreationOptions;false;set_SubProtocol;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.WebSockets;WebSocketException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System.Net;AuthenticationSchemeSelector;false;BeginInvoke;(System.Net.HttpListenerRequest,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Net;Authorization;false;get_ProtectionRealm;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;Authorization;false;set_ProtectionRealm;(System.String[]);;Argument[0].Element;Argument[this];taint;df-generated | +| System.Net;BindIPEndPoint;false;BeginInvoke;(System.Net.ServicePoint,System.Net.IPEndPoint,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Net;Cookie;false;Cookie;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;Cookie;false;Cookie;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Net;Cookie;false;Cookie;(System.String,System.String,System.String);;Argument[2];Argument[this];taint;df-generated | @@ -6165,6 +8074,11 @@ summary | System.Net;CookieException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Net;CredentialCache;false;GetCredential;(System.Uri,System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Net;CredentialCache;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Net;Dns;false;BeginGetHostAddresses;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net;Dns;false;BeginGetHostByName;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net;Dns;false;BeginGetHostEntry;(System.Net.IPAddress,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net;Dns;false;BeginGetHostEntry;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net;Dns;false;BeginResolve;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Net;Dns;false;EndGetHostAddresses;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;Dns;false;EndGetHostByName;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;Dns;false;EndGetHostEntry;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | @@ -6173,7 +8087,12 @@ summary | System.Net;DnsEndPoint;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;DnsEndPoint;false;get_Host;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;DownloadDataCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;DownloadDataCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.DownloadDataCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net;DownloadProgressChangedEventHandler;false;BeginInvoke;(System.Object,System.Net.DownloadProgressChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;DownloadStringCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;DownloadStringCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.DownloadStringCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net;FileWebRequest;false;BeginGetRequestStream;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;FileWebRequest;false;BeginGetResponse;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;FileWebRequest;false;EndGetRequestStream;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;FileWebRequest;false;EndGetResponse;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;FileWebRequest;false;GetRequestStream;();;Argument[this];ReturnValue;taint;df-generated | @@ -6186,6 +8105,8 @@ summary | System.Net;FileWebResponse;false;GetResponseStream;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;FileWebResponse;false;get_Headers;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;FileWebResponse;false;get_ResponseUri;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;FtpWebRequest;false;BeginGetRequestStream;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;FtpWebRequest;false;BeginGetResponse;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;FtpWebRequest;false;EndGetRequestStream;(System.IAsyncResult);;Argument[this];ReturnValue;taint;df-generated | | System.Net;FtpWebRequest;false;EndGetResponse;(System.IAsyncResult);;Argument[this];ReturnValue;taint;df-generated | | System.Net;FtpWebRequest;false;GetRequestStream;();;Argument[this];ReturnValue;taint;df-generated | @@ -6210,6 +8131,9 @@ summary | System.Net;FtpWebResponse;false;get_ResponseUri;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;FtpWebResponse;false;get_StatusDescription;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;FtpWebResponse;false;get_WelcomeMessage;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;HttpContinueDelegate;false;BeginInvoke;(System.Int32,System.Net.WebHeaderCollection,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net;HttpListener+ExtendedProtectionSelector;false;BeginInvoke;(System.Net.HttpListenerRequest,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net;HttpListener;false;BeginGetContext;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListener;false;get_AuthenticationSchemeSelectorDelegate;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListener;false;get_DefaultServiceNames;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListener;false;get_ExtendedProtectionPolicy;();;Argument[this];ReturnValue;taint;df-generated | @@ -6217,7 +8141,9 @@ summary | System.Net;HttpListener;false;get_Prefixes;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListener;false;get_Realm;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListener;false;get_TimeoutManager;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;HttpListener;false;set_AuthenticationSchemeSelectorDelegate;(System.Net.AuthenticationSchemeSelector);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListener;false;set_ExtendedProtectionPolicy;(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy);;Argument[0];Argument[this];taint;df-generated | +| System.Net;HttpListener;false;set_ExtendedProtectionSelectorDelegate;(System.Net.HttpListener+ExtendedProtectionSelector);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListener;false;set_Realm;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpListenerContext;false;get_Response;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerContext;false;get_User;();;Argument[this];ReturnValue;taint;df-generated | @@ -6227,6 +8153,7 @@ summary | System.Net;HttpListenerPrefixCollection;false;CopyTo;(System.String[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Net;HttpListenerPrefixCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Net;HttpListenerPrefixCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Net;HttpListenerRequest;false;BeginGetClientCertificate;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListenerRequest;false;EndGetClientCertificate;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;false;get_ContentType;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;false;get_Cookies;();;Argument[this];ReturnValue;taint;df-generated | @@ -6255,6 +8182,8 @@ summary | System.Net;HttpListenerTimeoutManager;false;get_IdleConnection;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerTimeoutManager;false;set_DrainEntityBody;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpListenerTimeoutManager;false;set_IdleConnection;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | +| System.Net;HttpWebRequest;false;BeginGetRequestStream;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;HttpWebRequest;false;BeginGetResponse;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpWebRequest;false;EndGetRequestStream;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;HttpWebRequest;false;EndGetRequestStream;(System.IAsyncResult,System.Net.TransportContext);;Argument[0];ReturnValue;taint;df-generated | | System.Net;HttpWebRequest;false;EndGetResponse;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | @@ -6278,11 +8207,13 @@ summary | System.Net;HttpWebRequest;false;get_TransferEncoding;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebRequest;false;get_UserAgent;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebRequest;false;set_ClientCertificates;(System.Security.Cryptography.X509Certificates.X509CertificateCollection);;Argument[0].Element;Argument[this];taint;df-generated | +| System.Net;HttpWebRequest;false;set_ContinueDelegate;(System.Net.HttpContinueDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpWebRequest;false;set_CookieContainer;(System.Net.CookieContainer);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpWebRequest;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpWebRequest;false;set_Host;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpWebRequest;false;set_Method;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpWebRequest;false;set_Proxy;(System.Net.IWebProxy);;Argument[0];Argument[this];taint;df-generated | +| System.Net;HttpWebRequest;false;set_ServerCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpWebResponse;false;GetResponseHeader;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebResponse;false;get_CharacterSet;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebResponse;false;get_Cookies;();;Argument[this];ReturnValue;taint;df-generated | @@ -6313,12 +8244,21 @@ summary | System.Net;NetworkCredential;false;set_Password;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;NetworkCredential;false;set_UserName;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;OpenReadCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;OpenReadCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.OpenReadCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;OpenWriteCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;OpenWriteCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.OpenWriteCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;ProtocolViolationException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System.Net;ServicePoint;false;set_BindIPEndPointDelegate;(System.Net.BindIPEndPoint);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;ServicePointManager;false;set_ServerCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;UploadDataCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;UploadDataCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.UploadDataCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;UploadFileCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;UploadFileCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.UploadFileCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net;UploadProgressChangedEventHandler;false;BeginInvoke;(System.Object,System.Net.UploadProgressChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;UploadStringCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;UploadStringCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.UploadStringCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;UploadValuesCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;UploadValuesCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.UploadValuesCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;WebClient;false;DownloadData;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;DownloadData;(System.Uri);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;DownloadDataAsync;(System.Uri);;Argument[0];Argument[this];taint;df-generated | @@ -6450,11 +8390,35 @@ summary | System.Net;WebClient;false;UploadValuesTaskAsync;(System.Uri,System.Collections.Specialized.NameValueCollection);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;UploadValuesTaskAsync;(System.Uri,System.String,System.Collections.Specialized.NameValueCollection);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;UploadValuesTaskAsync;(System.Uri,System.String,System.Collections.Specialized.NameValueCollection);;Argument[1];Argument[this];taint;df-generated | +| System.Net;WebClient;false;add_DownloadDataCompleted;(System.Net.DownloadDataCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_DownloadFileCompleted;(System.ComponentModel.AsyncCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_DownloadProgressChanged;(System.Net.DownloadProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_DownloadStringCompleted;(System.Net.DownloadStringCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_OpenReadCompleted;(System.Net.OpenReadCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_OpenWriteCompleted;(System.Net.OpenWriteCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_UploadDataCompleted;(System.Net.UploadDataCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_UploadFileCompleted;(System.Net.UploadFileCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_UploadProgressChanged;(System.Net.UploadProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_UploadStringCompleted;(System.Net.UploadStringCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_UploadValuesCompleted;(System.Net.UploadValuesCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_WriteStreamClosed;(System.Net.WriteStreamClosedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;WebClient;false;get_BaseAddress;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;WebClient;false;get_Credentials;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;WebClient;false;get_Encoding;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;WebClient;false;get_Proxy;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;WebClient;false;get_ResponseHeaders;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;WebClient;false;remove_DownloadDataCompleted;(System.Net.DownloadDataCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_DownloadFileCompleted;(System.ComponentModel.AsyncCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_DownloadProgressChanged;(System.Net.DownloadProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_DownloadStringCompleted;(System.Net.DownloadStringCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_OpenReadCompleted;(System.Net.OpenReadCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_OpenWriteCompleted;(System.Net.OpenWriteCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_UploadDataCompleted;(System.Net.UploadDataCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_UploadFileCompleted;(System.Net.UploadFileCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_UploadProgressChanged;(System.Net.UploadProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_UploadStringCompleted;(System.Net.UploadStringCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_UploadValuesCompleted;(System.Net.UploadValuesCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_WriteStreamClosed;(System.Net.WriteStreamClosedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;WebClient;false;set_BaseAddress;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;set_Encoding;(System.Text.Encoding);;Argument[0];Argument[this];taint;df-generated | @@ -6481,12 +8445,15 @@ summary | System.Net;WebRequest;false;CreateDefault;(System.Uri);;Argument[0];ReturnValue;taint;df-generated | | System.Net;WebRequest;false;CreateHttp;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Net;WebRequest;false;CreateHttp;(System.Uri);;Argument[0];ReturnValue;taint;df-generated | +| System.Net;WebRequest;true;BeginGetRequestStream;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebRequest;true;BeginGetResponse;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;WebUtility;false;HtmlDecode;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Net;WebUtility;false;HtmlDecode;(System.String,System.IO.TextWriter);;Argument[0];Argument[1];taint;df-generated | | System.Net;WebUtility;false;HtmlEncode;(System.String);;Argument[0];ReturnValue;taint;manual | | System.Net;WebUtility;false;HtmlEncode;(System.String,System.IO.TextWriter);;Argument[0];ReturnValue;taint;manual | | System.Net;WebUtility;false;UrlDecode;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Net;WebUtility;false;UrlEncode;(System.String);;Argument[0];ReturnValue;taint;manual | +| System.Net;WriteStreamClosedEventHandler;false;BeginInvoke;(System.Object,System.Net.WriteStreamClosedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Numerics;BigInteger;false;Abs;(System.Numerics.BigInteger);;Argument[0];ReturnValue;taint;df-generated | | System.Numerics;BigInteger;false;DivRem;(System.Numerics.BigInteger,System.Numerics.BigInteger,System.Numerics.BigInteger);;Argument[0];ReturnValue;taint;df-generated | | System.Numerics;BigInteger;false;Max;(System.Numerics.BigInteger,System.Numerics.BigInteger);;Argument[0];ReturnValue;taint;df-generated | @@ -6844,12 +8811,18 @@ summary | System.Reflection.Emit;TypeBuilder;false;get_Namespace;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;TypeBuilder;false;get_ReflectedType;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;TypeBuilder;false;get_UnderlyingSystemType;();;Argument[this];ReturnValue;value;df-generated | +| System.Reflection.Metadata.Ecma335;BlobEncoder;false;CustomAttributeSignature;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;BlobEncoder;false;CustomAttributeSignature;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;CustomModifiersEncoder;false;AddModifier;(System.Reflection.Metadata.EntityHandle,System.Boolean);;Argument[this];ReturnValue;value;df-generated | | System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;Add;(System.Reflection.Metadata.ExceptionRegionKind,System.Int32,System.Int32,System.Int32,System.Int32,System.Reflection.Metadata.EntityHandle,System.Int32);;Argument[this];ReturnValue;value;df-generated | | System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddCatch;(System.Int32,System.Int32,System.Int32,System.Int32,System.Reflection.Metadata.EntityHandle);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddFault;(System.Int32,System.Int32,System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddFilter;(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddFinally;(System.Int32,System.Int32,System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedScalar;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedScalar;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedVector;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedVector;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;MetadataBuilder;false;AddAssembly;(System.Reflection.Metadata.StringHandle,System.Version,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.BlobHandle,System.Reflection.AssemblyFlags,System.Reflection.AssemblyHashAlgorithm);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;MetadataBuilder;false;AddAssembly;(System.Reflection.Metadata.StringHandle,System.Version,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.BlobHandle,System.Reflection.AssemblyFlags,System.Reflection.AssemblyHashAlgorithm);;Argument[1];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;MetadataBuilder;false;AddAssembly;(System.Reflection.Metadata.StringHandle,System.Version,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.BlobHandle,System.Reflection.AssemblyFlags,System.Reflection.AssemblyHashAlgorithm);;Argument[2];Argument[this];taint;df-generated | @@ -6860,12 +8833,20 @@ summary | System.Reflection.Metadata.Ecma335;MetadataBuilder;false;AddModule;(System.Int32,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.GuidHandle,System.Reflection.Metadata.GuidHandle,System.Reflection.Metadata.GuidHandle);;Argument[4];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;MetadataRootBuilder;false;MetadataRootBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.String,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;MetadataRootBuilder;false;get_Sizes;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.Metadata.Ecma335;MethodSignatureEncoder;false;Parameters;(System.Int32,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;MethodSignatureEncoder;false;Parameters;(System.Int32,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;NamedArgumentsEncoder;false;AddArgument;(System.Boolean,System.Action,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;NamedArgumentsEncoder;false;AddArgument;(System.Boolean,System.Action,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;NamedArgumentsEncoder;false;AddArgument;(System.Boolean,System.Action,System.Action,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;PermissionSetEncoder;false;AddPermission;(System.String,System.Collections.Immutable.ImmutableArray);;Argument[this];ReturnValue;value;df-generated | | System.Reflection.Metadata.Ecma335;PermissionSetEncoder;false;AddPermission;(System.String,System.Reflection.Metadata.BlobBuilder);;Argument[this];ReturnValue;value;df-generated | +| System.Reflection.Metadata.Ecma335;PortablePdbBuilder;false;PortablePdbBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.Collections.Immutable.ImmutableArray,System.Reflection.Metadata.MethodDefinitionHandle,System.Func,System.Reflection.Metadata.BlobContentId>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;PortablePdbBuilder;false;Serialize;(System.Reflection.Metadata.BlobBuilder);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureDecoder<,>;false;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureDecoder<,>;false;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);;Argument[1];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureDecoder<,>;false;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);;Argument[2];Argument[this];taint;df-generated | +| System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;false;Array;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;false;Array;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;false;Array;(System.Reflection.Metadata.Ecma335.SignatureTypeEncoder,System.Reflection.Metadata.Ecma335.ArrayShapeEncoder);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;false;Pointer;();;Argument[this];ReturnValue;value;df-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;false;SZArray;();;Argument[this];ReturnValue;value;df-generated | @@ -7076,10 +9057,14 @@ summary | System.Reflection.Metadata;TypeReferenceHandleCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Reflection.Metadata;TypeReferenceHandleCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;TypeSpecification;false;GetCustomAttributes;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.PortableExecutable;DebugDirectoryBuilder;false;AddEntry<>;(System.Reflection.PortableExecutable.DebugDirectoryEntryType,System.UInt32,System.UInt32,TData,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;ManagedPEBuilder;false;GetDirectories;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.PortableExecutable;ManagedPEBuilder;false;ManagedPEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Reflection.Metadata.Ecma335.MetadataRootBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.PortableExecutable.ResourceSectionBuilder,System.Reflection.PortableExecutable.DebugDirectoryBuilder,System.Int32,System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.PortableExecutable.CorFlags,System.Func,System.Reflection.Metadata.BlobContentId>);;Argument[10];Argument[10].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;ManagedPEBuilder;false;SerializeSection;(System.String,System.Reflection.PortableExecutable.SectionLocation);;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.PortableExecutable;ManagedPEBuilder;false;Sign;(System.Reflection.Metadata.BlobBuilder,System.Func,System.Byte[]>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;PEBuilder+Section;false;Section;(System.String,System.Reflection.PortableExecutable.SectionCharacteristics);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEBuilder;false;GetSections;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.PortableExecutable;PEBuilder;false;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;PEBuilder;false;Serialize;(System.Reflection.Metadata.BlobBuilder);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEHeaders;false;get_CoffHeader;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;PEHeaders;false;get_CorHeader;();;Argument[this];ReturnValue;taint;df-generated | @@ -7093,6 +9078,7 @@ summary | System.Reflection.PortableExecutable;PEReader;false;PEReader;(System.Byte*,System.Int32,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEReader;false;PEReader;(System.Collections.Immutable.ImmutableArray);;Argument[0].Element;Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEReader;false;PEReader;(System.IO.Stream,System.Reflection.PortableExecutable.PEStreamOptions,System.Int32);;Argument[0];Argument[this];taint;df-generated | +| System.Reflection.PortableExecutable;PEReader;false;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;PEReader;false;get_PEHeaders;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Assembly;false;CreateQualifiedName;(System.String,System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Reflection;Assembly;false;CreateQualifiedName;(System.String,System.String);;Argument[1];ReturnValue;taint;df-generated | @@ -7101,6 +9087,8 @@ summary | System.Reflection;Assembly;true;GetName;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Assembly;true;GetType;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Assembly;true;GetType;(System.String,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection;Assembly;true;add_ModuleResolve;(System.Reflection.ModuleResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Reflection;Assembly;true;remove_ModuleResolve;(System.Reflection.ModuleResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Reflection;AssemblyName;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;AssemblyName;false;GetPublicKey;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;AssemblyName;false;SetPublicKey;(System.Byte[]);;Argument[0].Element;Argument[this];taint;df-generated | @@ -7144,6 +9132,7 @@ summary | System.Reflection;ExceptionHandlingClause;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;IntrospectionExtensions;false;GetTypeInfo;(System.Type);;Argument[0];ReturnValue;taint;df-generated | | System.Reflection;LocalVariableInfo;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection;MemberFilter;false;BeginInvoke;(System.Reflection.MemberInfo,System.Object,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Reflection;MethodInfo;false;CreateDelegate<>;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;MethodInfoExtensions;false;GetBaseDefinition;(System.Reflection.MethodInfo);;Argument[0];ReturnValue;taint;df-generated | | System.Reflection;Module;false;GetField;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -7153,7 +9142,9 @@ summary | System.Reflection;Module;false;GetMethod;(System.String,System.Type[]);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Module;false;GetMethods;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Module;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection;Module;true;FindTypes;(System.Reflection.TypeFilter,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Reflection;Module;true;GetType;(System.String,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection;ModuleResolveEventHandler;false;BeginInvoke;(System.Object,System.ResolveEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Reflection;ParameterInfo;false;GetRealObject;(System.Runtime.Serialization.StreamingContext);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;ParameterInfo;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;ParameterInfo;false;get_Member;();;Argument[this];ReturnValue;taint;df-generated | @@ -7247,6 +9238,7 @@ summary | System.Reflection;TypeExtensions;false;GetProperty;(System.Type,System.String,System.Reflection.BindingFlags);;Argument[0];ReturnValue;taint;df-generated | | System.Reflection;TypeExtensions;false;GetProperty;(System.Type,System.String,System.Type);;Argument[0];ReturnValue;taint;df-generated | | System.Reflection;TypeExtensions;false;GetProperty;(System.Type,System.String,System.Type,System.Type[]);;Argument[0];ReturnValue;taint;df-generated | +| System.Reflection;TypeFilter;false;BeginInvoke;(System.Type,System.Object,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Reflection;TypeInfo;false;GetTypeInfo;();;Argument[this];ReturnValue;value;df-generated | | System.Reflection;TypeInfo;true;AsType;();;Argument[this];ReturnValue;value;df-generated | | System.Reflection;TypeInfo;true;GetDeclaredEvent;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -7286,6 +9278,7 @@ summary | System.Resources;ResourceSet;false;ResourceSet;(System.Resources.IResourceReader);;Argument[0].Element;Argument[this];taint;df-generated | | System.Resources;ResourceWriter;false;ResourceWriter;(System.IO.Stream);;Argument[0];Argument[this];taint;df-generated | | System.Resources;ResourceWriter;false;ResourceWriter;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Resources;ResourceWriter;false;set_TypeNameConverter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;AsyncIteratorMethodBuilder;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;AsyncIteratorMethodBuilder;false;AwaitUnsafeOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;AsyncTaskMethodBuilder;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | @@ -7302,19 +9295,29 @@ summary | System.Runtime.CompilerServices;AsyncValueTaskMethodBuilder<>;false;SetResult;(TResult);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;AsyncValueTaskMethodBuilder<>;false;get_Task;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;CallSite;false;get_Binder;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;ConditionalWeakTable<,>+CreateValueCallback;false;BeginInvoke;(TKey,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable<,>;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Runtime.CompilerServices;ConditionalWeakTable<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Runtime.CompilerServices;ConditionalWeakTable<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Runtime.CompilerServices;ConditionalWeakTable<,>;false;GetOrCreateValue;(TKey);;Argument[0];ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;ConditionalWeakTable<,>;false;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable<,>+CreateValueCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable<>;false;ConfigureAwait;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable<>;false;GetAsyncEnumerator;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable<>;false;WithCancellation;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable<>;false;WithCancellation;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;ConfiguredTaskAwaitable+ConfiguredTaskAwaiter;false;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;ConfiguredTaskAwaitable+ConfiguredTaskAwaiter;false;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConfiguredTaskAwaitable;false;GetAwaiter;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ConfiguredTaskAwaitable<>+ConfiguredTaskAwaiter;false;GetResult;();;Argument[this].SyntheticField[m_task_configured_task_awaitable].Property[System.Threading.Tasks.Task<>.Result];ReturnValue;value;manual | +| System.Runtime.CompilerServices;ConfiguredTaskAwaitable<>+ConfiguredTaskAwaiter;false;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;ConfiguredTaskAwaitable<>+ConfiguredTaskAwaiter;false;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConfiguredTaskAwaitable<>;false;GetAwaiter;();;Argument[this].SyntheticField[m_configuredTaskAwaiter];ReturnValue;value;manual | +| System.Runtime.CompilerServices;ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter;false;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter;false;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConfiguredValueTaskAwaitable;false;GetAwaiter;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ConfiguredValueTaskAwaitable<>+ConfiguredValueTaskAwaiter;false;GetResult;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;ConfiguredValueTaskAwaitable<>+ConfiguredValueTaskAwaiter;false;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;ConfiguredValueTaskAwaitable<>+ConfiguredValueTaskAwaiter;false;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConfiguredValueTaskAwaitable<>;false;GetAwaiter;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ContractHelper;false;RaiseContractFailedEvent;(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception);;Argument[1];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ContractHelper;false;RaiseContractFailedEvent;(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception);;Argument[2];ReturnValue;taint;df-generated | @@ -7324,6 +9327,8 @@ summary | System.Runtime.CompilerServices;DefaultInterpolatedStringHandler;false;DefaultInterpolatedStringHandler;(System.Int32,System.Int32,System.IFormatProvider,System.Span);;Argument[3];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;FormattableStringFactory;false;Create;(System.String,System.Object[]);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;FormattableStringFactory;false;Create;(System.String,System.Object[]);;Argument[1].Element;ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;ICriticalNotifyCompletion;true;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;INotifyCompletion;true;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder;false;AwaitUnsafeOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | @@ -7344,6 +9349,10 @@ summary | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;set_Item;(System.Int32,T);;Argument[1];Argument[this].Element;value;manual | +| System.Runtime.CompilerServices;RuntimeHelpers+CleanupCode;false;BeginInvoke;(System.Object,System.Boolean,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;RuntimeHelpers+TryCode;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;RuntimeHelpers;false;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;RuntimeHelpers;false;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;false;RuntimeWrappedException;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;false;get_WrappedException;();;Argument[this];ReturnValue;taint;df-generated | @@ -7352,16 +9361,80 @@ summary | System.Runtime.CompilerServices;StrongBox<>;false;set_Value;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;SwitchExpressionException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Runtime.CompilerServices;SwitchExpressionException;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;TaskAwaiter;false;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;TaskAwaiter;false;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;TaskAwaiter<>;false;GetResult;();;Argument[this].SyntheticField[m_task_task_awaiter].Property[System.Threading.Tasks.Task<>.Result];ReturnValue;value;manual | +| System.Runtime.CompilerServices;TaskAwaiter<>;false;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;TaskAwaiter<>;false;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;TupleElementNamesAttribute;false;TupleElementNamesAttribute;(System.String[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.Runtime.CompilerServices;TupleElementNamesAttribute;false;get_TransformNames;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;ValueTaskAwaiter;false;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;ValueTaskAwaiter;false;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ValueTaskAwaiter<>;false;GetResult;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;ValueTaskAwaiter<>;false;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;ValueTaskAwaiter<>;false;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;YieldAwaitable+YieldAwaiter;false;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;YieldAwaitable+YieldAwaiter;false;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;Capture;(System.Exception);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetCurrentStackTrace;(System.Exception);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[1];Argument[0];taint;df-generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[1];ReturnValue;taint;df-generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;get_SourceException;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument+ArgumentToJSCallback<>;false;BeginInvoke;(System.Runtime.InteropServices.JavaScript.JSMarshalerArgument,T,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument+ArgumentToManagedCallback<>;false;BeginInvoke;(System.Runtime.InteropServices.JavaScript.JSMarshalerArgument,T,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<>;(System.Threading.Tasks.Task,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<>;(System.Threading.Tasks.Task,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.ObjectiveC;ObjectiveCMarshal+UnhandledExceptionPropagationHandler;false;BeginInvoke;(System.Exception,System.RuntimeMethodHandle,System.IntPtr,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.ObjectiveC;ObjectiveCMarshal;false;Initialize;(System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal+UnhandledExceptionPropagationHandler);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Runtime.InteropServices;ArrayWithOffset;false;ArrayWithOffset;(System.Object,System.Int32);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.InteropServices;ArrayWithOffset;false;GetArray;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;CLong;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | @@ -7376,6 +9449,7 @@ summary | System.Runtime.InteropServices;ComAwareEventInfo;false;get_ReflectedType;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;CriticalHandle;false;CriticalHandle;(System.IntPtr);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.InteropServices;CriticalHandle;false;SetHandle;(System.IntPtr);;Argument[0];Argument[this];taint;df-generated | +| System.Runtime.InteropServices;DllImportResolver;false;BeginInvoke;(System.String,System.Reflection.Assembly,System.Nullable,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Runtime.InteropServices;ExternalException;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;GCHandle;false;FromIntPtr;(System.IntPtr);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;GCHandle;false;ToIntPtr;(System.Runtime.InteropServices.GCHandle);;Argument[0];ReturnValue;taint;df-generated | @@ -7390,6 +9464,8 @@ summary | System.Runtime.InteropServices;MemoryMarshal;false;TryGetMemoryManager<,>;(System.ReadOnlyMemory,TManager);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;MemoryMarshal;false;TryGetMemoryManager<,>;(System.ReadOnlyMemory,TManager,System.Int32,System.Int32);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;MemoryMarshal;false;TryGetString;(System.ReadOnlyMemory,System.String,System.Int32,System.Int32);;Argument[0];ReturnValue;taint;df-generated | +| System.Runtime.InteropServices;NativeLibrary;false;SetDllImportResolver;(System.Reflection.Assembly,System.Runtime.InteropServices.DllImportResolver);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices;PosixSignalRegistration;false;Create;(System.Runtime.InteropServices.PosixSignal,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.InteropServices;SafeHandle;false;DangerousGetHandle;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;SafeHandle;false;SafeHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.InteropServices;SafeHandle;false;SetHandle;(System.IntPtr);;Argument[0];Argument[this];taint;df-generated | @@ -7412,7 +9488,13 @@ summary | System.Runtime.Loader;AssemblyDependencyResolver;false;ResolveUnmanagedDllToPath;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.Loader;AssemblyLoadContext;false;EnterContextualReflection;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.Loader;AssemblyLoadContext;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;add_Resolving;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;add_ResolvingUnmanagedDll;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;add_Unloading;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.Loader;AssemblyLoadContext;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;remove_Resolving;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;remove_ResolvingUnmanagedDll;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;remove_Unloading;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.Remoting;ObjectHandle;false;ObjectHandle;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.Remoting;ObjectHandle;false;Unwrap;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.Serialization.Formatters.Binary;BinaryFormatter;false;BinaryFormatter;(System.Runtime.Serialization.ISurrogateSelector,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | @@ -7429,8 +9511,12 @@ summary | System.Runtime.Serialization.Json;DataContractJsonSerializer;false;ReadObject;(System.Xml.XmlReader,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.Serialization.Json;DataContractJsonSerializer;false;get_DateTimeFormat;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.Serialization.Json;DataContractJsonSerializer;false;get_KnownTypes;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.Serialization.Json;IXmlJsonReaderInitializer;true;SetInput;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Serialization.Json;IXmlJsonReaderInitializer;true;SetInput;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonReader;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonWriter;(System.IO.Stream);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonWriter;(System.IO.Stream,System.Text.Encoding);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonWriter;(System.IO.Stream,System.Text.Encoding);;Argument[1];ReturnValue;taint;df-generated | @@ -7566,11 +9652,18 @@ summary | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type);;Argument[3];ReturnValue;taint;df-generated | +| System.Runtime;ControlledExecution;false;Run;(System.Action,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime;DependentHandle;false;get_Dependent;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime;DependentHandle;false;get_Target;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime;DependentHandle;false;get_TargetAndDependent;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.AccessControl;GenericAcl;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Security.AccessControl;GenericAcl;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Security.AccessControl;NativeObjectSecurity+ExceptionFromErrorCode;false;BeginInvoke;(System.Int32,System.String,System.Runtime.InteropServices.SafeHandle,System.Object,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Security.AccessControl;NativeObjectSecurity;false;NativeObjectSecurity;(System.Boolean,System.Security.AccessControl.ResourceType,System.Runtime.InteropServices.SafeHandle,System.Security.AccessControl.AccessControlSections,System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Security.AccessControl;NativeObjectSecurity;false;NativeObjectSecurity;(System.Boolean,System.Security.AccessControl.ResourceType,System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Security.AccessControl;NativeObjectSecurity;false;NativeObjectSecurity;(System.Boolean,System.Security.AccessControl.ResourceType,System.String,System.Security.AccessControl.AccessControlSections,System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Security.AccessControl;ObjectSecurity<>;false;ObjectSecurity;(System.Boolean,System.Security.AccessControl.ResourceType,System.Runtime.InteropServices.SafeHandle,System.Security.AccessControl.AccessControlSections,System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Security.AccessControl;ObjectSecurity<>;false;ObjectSecurity;(System.Boolean,System.Security.AccessControl.ResourceType,System.String,System.Security.AccessControl.AccessControlSections,System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;false;ExtendedProtectionPolicy;(System.Security.Authentication.ExtendedProtection.PolicyEnforcement,System.Security.Authentication.ExtendedProtection.ChannelBinding);;Argument[1];Argument[this];taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;false;ExtendedProtectionPolicy;(System.Security.Authentication.ExtendedProtection.PolicyEnforcement,System.Security.Authentication.ExtendedProtection.ProtectionScenario,System.Security.Authentication.ExtendedProtection.ServiceNameCollection);;Argument[2].Element;Argument[this];taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | @@ -7609,8 +9702,11 @@ summary | System.Security.Claims;ClaimsIdentity;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsIdentity;false;CreateClaim;(System.IO.BinaryReader);;Argument[0];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsIdentity;false;CreateClaim;(System.IO.BinaryReader);;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsIdentity;false;FindAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsIdentity;false;FindAll;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsIdentity;false;FindFirst;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsIdentity;false;FindFirst;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsIdentity;false;HasClaim;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsIdentity;false;WriteTo;(System.IO.BinaryWriter,System.Byte[]);;Argument[1].Element;Argument[0];taint;df-generated | | System.Security.Claims;ClaimsIdentity;false;get_Actor;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsIdentity;false;get_AuthenticationType;();;Argument[this];ReturnValue;taint;df-generated | @@ -7632,13 +9728,18 @@ summary | System.Security.Claims;ClaimsPrincipal;false;ClaimsPrincipal;(System.Security.Principal.IPrincipal);;Argument[0];Argument[this];taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;CreateClaimsIdentity;(System.IO.BinaryReader);;Argument[0];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsPrincipal;false;FindAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsPrincipal;false;FindAll;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsPrincipal;false;FindFirst;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsPrincipal;false;FindFirst;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsPrincipal;false;HasClaim;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsPrincipal;false;WriteTo;(System.IO.BinaryWriter,System.Byte[]);;Argument[1].Element;Argument[0];taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;get_Claims;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;get_CustomSerializationData;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;get_Identities;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;get_Identity;();;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsPrincipal;false;set_ClaimsPrincipalSelector;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Security.Claims;ClaimsPrincipal;false;set_PrimaryIdentitySelector;(System.Func,System.Security.Claims.ClaimsIdentity>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Cryptography.X509Certificates;CertificateRequest;false;CertificateRequest;(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.ECDsa,System.Security.Cryptography.HashAlgorithmName);;Argument[1];Argument[this];taint;df-generated | | System.Security.Cryptography.X509Certificates;CertificateRequest;false;CertificateRequest;(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.RSA,System.Security.Cryptography.HashAlgorithmName,System.Security.Cryptography.RSASignaturePadding);;Argument[1];Argument[this];taint;df-generated | | System.Security.Cryptography.X509Certificates;CertificateRequest;false;CertificateRequest;(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.RSA,System.Security.Cryptography.HashAlgorithmName,System.Security.Cryptography.RSASignaturePadding);;Argument[3];Argument[this];taint;df-generated | @@ -7946,6 +10047,7 @@ summary | System.Security.Cryptography.Xml;SignedXml;false;set_EncryptedXml;(System.Security.Cryptography.Xml.EncryptedXml);;Argument[0];Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;SignedXml;false;set_KeyInfo;(System.Security.Cryptography.Xml.KeyInfo);;Argument[0].Element;Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;SignedXml;false;set_Resolver;(System.Xml.XmlResolver);;Argument[0];Argument[this];taint;df-generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_SignatureFormatValidator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Cryptography.Xml;SignedXml;false;set_SigningKey;(System.Security.Cryptography.AsymmetricAlgorithm);;Argument[0];Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;SignedXml;false;set_SigningKeyName;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;Transform;false;GetXml;();;Argument[this];ReturnValue;taint;df-generated | @@ -8024,8 +10126,10 @@ summary | System.Security.Cryptography;AsnEncodedDataCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography;AsnEncodedDataCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Security.Cryptography;AsnEncodedDataEnumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Cryptography;CryptoStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Security.Cryptography;CryptoStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.Security.Cryptography;CryptoStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.Security.Cryptography;CryptoStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Security.Cryptography;CryptoStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual | | System.Security.Cryptography;CryptoStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual | | System.Security.Cryptography;CryptoStream;false;CryptoStream;(System.IO.Stream,System.Security.Cryptography.ICryptoTransform,System.Security.Cryptography.CryptoStreamMode,System.Boolean);;Argument[0];Argument[this];taint;df-generated | @@ -8124,6 +10228,10 @@ summary | System.Security.Principal;IdentityReferenceCollection;false;CopyTo;(System.Security.Principal.IdentityReference[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Security.Principal;IdentityReferenceCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Security.Principal;IdentityReferenceCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Security.Principal;WindowsIdentity;false;RunImpersonated;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Security.Principal;WindowsIdentity;false;RunImpersonated<>;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Security.Principal;WindowsIdentity;false;RunImpersonatedAsync;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Security.Principal;WindowsIdentity;false;RunImpersonatedAsync<>;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Security;PermissionSet;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Security;PermissionSet;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security;PermissionSet;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | @@ -8185,7 +10293,29 @@ summary | System.Text.Json.Nodes;JsonObject;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | | System.Text.Json.Nodes;JsonObject;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | System.Text.Json.Nodes;JsonValue;false;Create<>;(T,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Nullable);;Argument[1];ReturnValue;taint;df-generated | +| System.Text.Json.Serialization.Metadata;JsonCollectionInfoValues<>;false;set_ObjectCreator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonCollectionInfoValues<>;false;set_SerializeHandler;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonMetadataServices;false;CreateImmutableDictionaryInfo<,,>;(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues,System.Func>,TCollection>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonMetadataServices;false;CreateImmutableEnumerableInfo<,>;(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues,System.Func,TCollection>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonMetadataServices;false;CreateQueueInfo<>;(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonMetadataServices;false;CreateStackInfo<>;(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonObjectInfoValues<>;false;set_ConstructorParameterMetadataInitializer;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonObjectInfoValues<>;false;set_ObjectCreator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonObjectInfoValues<>;false;set_ObjectWithParameterizedConstructorCreator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonObjectInfoValues<>;false;set_PropertyMetadataInitializer;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonObjectInfoValues<>;false;set_SerializeHandler;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonPropertyInfo;false;set_Get;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonPropertyInfo;false;set_Set;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonPropertyInfo;false;set_ShouldSerialize;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonPropertyInfoValues<>;false;set_Getter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonPropertyInfoValues<>;false;set_Setter;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo;false;set_CreateObject;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo;false;set_OnDeserialized;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo;false;set_OnDeserializing;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo;false;set_OnSerialized;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo;false;set_OnSerializing;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Text.Json.Serialization.Metadata;JsonTypeInfo<>;false;get_SerializeHandler;();;Argument[this];ReturnValue;taint;df-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo<>;false;set_CreateObject;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[0];Argument[this];taint;df-generated | | System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[this];Argument[0];taint;df-generated | | System.Text.Json.Serialization;JsonSerializerContext;false;get_Options;();;Argument[this];ReturnValue;taint;df-generated | @@ -8296,6 +10426,7 @@ summary | System.Text.RegularExpressions;MatchCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Text.RegularExpressions;MatchCollection;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | | System.Text.RegularExpressions;MatchCollection;false;set_Item;(System.Int32,System.Text.RegularExpressions.Match);;Argument[1];Argument[this].Element;value;manual | +| System.Text.RegularExpressions;MatchEvaluator;false;BeginInvoke;(System.Text.RegularExpressions.Match,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;false;Escape;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;false;GroupNameFromNumber;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;false;IsMatch;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -8323,6 +10454,12 @@ summary | System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.String,System.Text.RegularExpressions.RegexOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);;Argument[0];ReturnValue;taint;df-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32,System.Int32);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;false;Split;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Text.RegularExpressions;Regex;false;Split;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;false;Split;(System.String,System.Int32);;Argument[0];Argument[this];taint;df-generated | @@ -8585,22 +10722,37 @@ summary | System.Text;UnicodeEncoding;false;GetDecoder;();;Argument[this];ReturnValue;taint;df-generated | | System.Text;UnicodeEncoding;false;GetEncoder;();;Argument[this];ReturnValue;taint;df-generated | | System.Text;UnicodeEncoding;false;GetString;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;manual | +| System.Threading.Channels;Channel;false;CreateBounded<>;(System.Threading.Channels.BoundedChannelOptions,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;ConcurrencyLimiter;false;ConcurrencyLimiter;(System.Threading.RateLimiting.ConcurrencyLimiterOptions);;Argument[0];Argument[this];taint;df-generated | | System.Threading.RateLimiting;MetadataName;false;Create<>;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;MetadataName<>;false;MetadataName;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Threading.RateLimiting;MetadataName<>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;MetadataName<>;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.RateLimiting;PartitionedRateLimiter;false;Create<,>;(System.Func>,System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;PartitionedRateLimiter<>;false;WithTranslatedKey<>;(System.Func,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;RateLimitLease;false;TryGetMetadata<>;(System.Threading.RateLimiting.MetadataName,T);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;RateLimitLease;true;GetAllMetadata;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.RateLimiting;RateLimitPartition;false;Get<>;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;RateLimitPartition;false;GetConcurrencyLimiter<>;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;RateLimitPartition;false;GetFixedWindowLimiter<>;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;RateLimitPartition;false;GetSlidingWindowLimiter<>;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;RateLimitPartition;false;GetTokenBucketLimiter<>;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;RateLimitPartition<>;false;RateLimitPartition;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;TokenBucketRateLimiter;false;TokenBucketRateLimiter;(System.Threading.RateLimiting.TokenBucketRateLimiterOptions);;Argument[0];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;ActionBlock<>;false;ActionBlock;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;ActionBlock<>;false;ActionBlock;(System.Action,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;ActionBlock<>;false;ActionBlock;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;ActionBlock<>;false;ActionBlock;(System.Func,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;BatchBlock<>;false;BatchBlock;(System.Int32,System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions);;Argument[1];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;BatchBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchBlock<>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;BatchBlock<>;false;TryReceive;(System.Predicate,T[]);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,,>;false;BatchedJoinBlock;(System.Int32,System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions);;Argument[1];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Collections.Generic.IList,System.Collections.Generic.IList>>,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Collections.Generic.IList,System.Collections.Generic.IList>>,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,,>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock,System.Collections.Generic.IList,System.Collections.Generic.IList>>);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;BatchedJoinBlock<,,>;false;TryReceive;(System.Predicate,System.Collections.Generic.IList,System.Collections.Generic.IList>>,System.Tuple,System.Collections.Generic.IList,System.Collections.Generic.IList>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,,>;false;get_Target1;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,,>;false;get_Target2;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,,>;false;get_Target3;();;Argument[this];ReturnValue;taint;df-generated | @@ -8608,24 +10760,41 @@ summary | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Collections.Generic.IList>>,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Collections.Generic.IList>>,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock,System.Collections.Generic.IList>>);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;BatchedJoinBlock<,>;false;TryReceive;(System.Predicate,System.Collections.Generic.IList>>,System.Tuple,System.Collections.Generic.IList>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,>;false;get_Target1;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,>;false;get_Target2;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;BroadcastBlock;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;BroadcastBlock;(System.Func,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;ConsumeMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;TryReceive;(System.Predicate,T);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;TryReceiveAll;(System.Collections.Generic.IList);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BufferBlock<>;false;BufferBlock;(System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;BufferBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BufferBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BufferBlock<>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;BufferBlock<>;false;TryReceive;(System.Predicate,T);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;AsObservable<>;(System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;AsObserver<>;(System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[0];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Encapsulate<,>;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Encapsulate<,>;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[1];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;LinkTo<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[0];Argument[1];taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;LinkTo<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;LinkTo<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[1];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;LinkTo<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.Tasks.Dataflow.ITargetBlock,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;LinkTo<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions,System.Predicate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Post<>;(System.Threading.Tasks.Dataflow.ITargetBlock,TInput);;Argument[1];Argument[0];taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | @@ -8643,10 +10812,12 @@ summary | System.Threading.Tasks.Dataflow;DataflowBlockOptions;false;set_CancellationToken;(System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlockOptions;false;set_NameFormat;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlockOptions;false;set_TaskScheduler;(System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;IReceivableSourceBlock<>;true;TryReceive;(System.Predicate,TOutput);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;JoinBlock;(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock>,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock>,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock>);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;TryReceive;(System.Predicate>,System.Tuple);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;get_Target1;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;get_Target2;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;get_Target3;();;Argument[this];ReturnValue;taint;df-generated | @@ -8654,14 +10825,27 @@ summary | System.Threading.Tasks.Dataflow;JoinBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock>,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock>,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock>);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;JoinBlock<,>;false;TryReceive;(System.Predicate>,System.Tuple);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,>;false;get_Target1;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,>;false;get_Target2;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;TransformBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;TransformBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;TransformBlock<,>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;TransformBlock<,>;false;TransformBlock;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformBlock<,>;false;TransformBlock;(System.Func>,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformBlock<,>;false;TransformBlock;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformBlock<,>;false;TransformBlock;(System.Func,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformBlock<,>;false;TryReceive;(System.Predicate,TOutput);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>>,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TryReceive;(System.Predicate,TOutput);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;ConsumeMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];Argument[0];taint;df-generated | @@ -8669,52 +10853,156 @@ summary | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;OfferMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,T,System.Threading.Tasks.Dataflow.ISourceBlock,System.Boolean);;Argument[1];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;ReleaseReservation;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[this];Argument[1];taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;TryReceive;(System.Predicate,T);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;TryReceiveAll;(System.Collections.Generic.IList);;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;WriteOnceBlock;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;WriteOnceBlock;(System.Func,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;get_Completion;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Sources;IValueTaskSource;true;OnCompleted;(System.Action,System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Sources;IValueTaskSource<>;true;OnCompleted;(System.Action,System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Sources;ManualResetValueTaskSourceCore<>;false;GetResult;(System.Int16);;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Sources;ManualResetValueTaskSourceCore<>;false;OnCompleted;(System.Action,System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Sources;ManualResetValueTaskSourceCore<>;false;SetException;(System.Exception);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks.Sources;ManualResetValueTaskSourceCore<>;false;SetResult;(TResult);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;ConcurrentExclusiveSchedulerPair;false;ConcurrentExclusiveSchedulerPair;(System.Threading.Tasks.TaskScheduler,System.Int32,System.Int32);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;ConcurrentExclusiveSchedulerPair;false;get_ConcurrentScheduler;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ConcurrentExclusiveSchedulerPair;false;get_ExclusiveScheduler;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int32,System.Int32,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int32,System.Int32,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int64,System.Int64,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int64,System.Int64,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Func,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Func,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.OrderablePartitioner,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.OrderablePartitioner,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.Partitioner,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.Partitioner,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.Partitioner,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.Partitioner,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IAsyncEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IAsyncEnumerable,System.Threading.CancellationToken,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IAsyncEnumerable,System.Threading.Tasks.ParallelOptions,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IEnumerable,System.Threading.CancellationToken,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;ParallelLoopResult;false;get_LowestBreakIteration;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ParallelOptions;false;get_CancellationToken;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ParallelOptions;false;get_TaskScheduler;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ParallelOptions;false;set_CancellationToken;(System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;ParallelOptions;false;set_TaskScheduler;(System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;Task;false;ConfigureAwait;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Delay;(System.Int32,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;false;Delay;(System.TimeSpan,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;false;FromCanceled;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;false;FromResult<>;(TResult);;Argument[0];ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | | System.Threading.Tasks;Task;false;GetAwaiter;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;false;Run;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Run;(System.Action,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Run;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Run;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;false;Run<>;(System.Func>);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;Run<>;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Run<>;(System.Func>,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;Run<>;(System.Func>,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Run<>;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;Run<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Run<>;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;Run<>;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | +| System.Threading.Tasks;Task;false;Task;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Task;(System.Action,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;false;WaitAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;false;WaitAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | @@ -8735,59 +11023,87 @@ summary | System.Threading.Tasks;Task;false;WhenAny<>;(System.Threading.Tasks.Task[]);;Argument[0].Element.Property[System.Threading.Tasks.Task<>.Result];ReturnValue.Property[System.Threading.Tasks.Task<>.Result].Element;value;manual | | System.Threading.Tasks;Task;false;get_AsyncState;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task<>;false;ConfigureAwait;(System.Boolean);;Argument[this];ReturnValue.SyntheticField[m_configuredTaskAwaiter].SyntheticField[m_task_configured_task_awaitable];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;GetAwaiter;();;Argument[this];ReturnValue.SyntheticField[m_task_task_awaiter];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | @@ -8805,54 +11121,140 @@ summary | System.Threading.Tasks;TaskCompletionSource<>;false;get_Task;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskExtensions;false;Unwrap;(System.Threading.Tasks.Task);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskExtensions;false;Unwrap<>;(System.Threading.Tasks.Task>);;Argument[0];ReturnValue;taint;df-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.Func,System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.Func,System.Action,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.IAsyncResult,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.IAsyncResult,System.Action,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.IAsyncResult,System.Action,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Func,TArg1,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Func,TArg1,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Action,TArg1,TArg2,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Action,TArg1,TArg2,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Func,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Action,TArg1,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Action,TArg1,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.IAsyncResult,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;TaskFactory;(System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory;false;TaskFactory;(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory;false;TaskFactory;(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[3];Argument[this];taint;df-generated | @@ -8860,47 +11262,92 @@ summary | System.Threading.Tasks;TaskFactory;false;get_CancellationToken;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskFactory;false;get_Scheduler;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.Func,System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.Func,System.Func,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.IAsyncResult,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,>;(System.Func,System.Func,TArg1,TArg2,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,>;(System.Func,System.Func,TArg1,TArg2,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,>;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,>;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<>;(System.Func,System.Func,TArg1,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<>;(System.Func,System.Func,TArg1,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<>;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<>;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;TaskFactory;(System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;TaskFactory;(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;TaskFactory;(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[3];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;TaskFactory;(System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;get_CancellationToken;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;get_Scheduler;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;TaskScheduler;false;add_UnobservedTaskException;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskScheduler;false;remove_UnobservedTaskException;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;UnobservedTaskExceptionEventArgs;false;UnobservedTaskExceptionEventArgs;(System.AggregateException);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;UnobservedTaskExceptionEventArgs;false;get_Exception;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ValueTask;false;AsTask;();;Argument[this];ReturnValue;taint;df-generated | @@ -8923,17 +11370,40 @@ summary | System.Threading;AbandonedMutexException;false;AbandonedMutexException;(System.String,System.Exception,System.Int32,System.Threading.WaitHandle);;Argument[3];Argument[this];taint;df-generated | | System.Threading;AbandonedMutexException;false;AbandonedMutexException;(System.String,System.Int32,System.Threading.WaitHandle);;Argument[2];Argument[this];taint;df-generated | | System.Threading;AbandonedMutexException;false;get_Mutex;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading;AsyncLocal<>;false;AsyncLocal;(System.Action>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Barrier;false;Barrier;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;Register;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;Register;(System.Action,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;Register;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;Register;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;Register;(System.Action,System.Object,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;UnsafeRegister;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;UnsafeRegister;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;false;get_WaitHandle;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;CancellationTokenSource;false;get_Token;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;CompressedStack;false;CreateCopy;();;Argument[this];ReturnValue;value;df-generated | +| System.Threading;CompressedStack;false;Run;(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ContextCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;CountdownEvent;false;get_WaitHandle;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;ExecutionContext;false;CreateCopy;();;Argument[this];ReturnValue;value;df-generated | +| System.Threading;ExecutionContext;false;Run;(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;HostExecutionContextManager;false;SetHostExecutionContext;(System.Threading.HostExecutionContext);;Argument[0];ReturnValue;taint;df-generated | +| System.Threading;IOCompletionCallback;false;BeginInvoke;(System.UInt32,System.UInt32,System.Threading.NativeOverlapped*,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Threading;LazyInitializer;false;EnsureInitialized<>;(T);;Argument[0];ReturnValue;taint;df-generated | | System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Boolean,System.Object);;Argument[0];ReturnValue;taint;df-generated | | System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Boolean,System.Object);;Argument[2];ReturnValue;taint;df-generated | +| System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Boolean,System.Object,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Threading;ManualResetEventSlim;false;get_WaitHandle;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading;Overlapped;false;Pack;(System.Threading.IOCompletionCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Overlapped;false;Pack;(System.Threading.IOCompletionCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Overlapped;false;UnsafePack;(System.Threading.IOCompletionCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Overlapped;false;UnsafePack;(System.Threading.IOCompletionCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ParameterizedThreadStart;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;PeriodicTimer;false;WaitForNextTickAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | +| System.Threading;PreAllocatedOverlapped;false;PreAllocatedOverlapped;(System.Threading.IOCompletionCallback,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;PreAllocatedOverlapped;false;UnsafeCreate;(System.Threading.IOCompletionCallback,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;SemaphoreSlim;false;WaitAsync;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;SemaphoreSlim;false;WaitAsync;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Threading;SemaphoreSlim;false;WaitAsync;(System.Int32,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | @@ -8941,20 +11411,62 @@ summary | System.Threading;SemaphoreSlim;false;WaitAsync;(System.TimeSpan);;Argument[this];ReturnValue;taint;df-generated | | System.Threading;SemaphoreSlim;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Threading;SemaphoreSlim;false;get_AvailableWaitHandle;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading;SendOrPostCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;SpinWait;false;SpinUntil;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;SpinWait;false;SpinUntil;(System.Func,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;SpinWait;false;SpinUntil;(System.Func,System.TimeSpan);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;SynchronizationContext;false;Post;(System.Threading.SendOrPostCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;SynchronizationContext;false;Send;(System.Threading.SendOrPostCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Thread;false;Thread;(System.Threading.ParameterizedThreadStart);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Thread;false;Thread;(System.Threading.ParameterizedThreadStart,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Thread;false;Thread;(System.Threading.ThreadStart);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Thread;false;Thread;(System.Threading.ThreadStart,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;Thread;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;Thread;false;set_Name;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Threading;ThreadExceptionEventArgs;false;ThreadExceptionEventArgs;(System.Exception);;Argument[0];Argument[this];taint;df-generated | | System.Threading;ThreadExceptionEventArgs;false;get_Exception;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading;ThreadExceptionEventHandler;false;BeginInvoke;(System.Object,System.Threading.ThreadExceptionEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadLocal<>;false;ThreadLocal;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadLocal<>;false;ThreadLocal;(System.Func,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;QueueUserWorkItem;(System.Threading.WaitCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;QueueUserWorkItem;(System.Threading.WaitCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;QueueUserWorkItem<>;(System.Action,TState,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;RegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int32,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;RegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int64,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;RegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.TimeSpan,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;RegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeQueueUserWorkItem;(System.Threading.WaitCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeQueueUserWorkItem<>;(System.Action,TState,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeRegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int32,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeRegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int64,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeRegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.TimeSpan,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeRegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPoolBoundHandle;false;AllocateNativeOverlapped;(System.Threading.IOCompletionCallback,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPoolBoundHandle;false;UnsafeAllocateNativeOverlapped;(System.Threading.IOCompletionCallback,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadStart;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Timer;false;Timer;(System.Threading.TimerCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Timer;false;Timer;(System.Threading.TimerCallback,System.Object,System.Int32,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Timer;false;Timer;(System.Threading.TimerCallback,System.Object,System.Int64,System.Int64);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Timer;false;Timer;(System.Threading.TimerCallback,System.Object,System.TimeSpan,System.TimeSpan);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Timer;false;Timer;(System.Threading.TimerCallback,System.Object,System.UInt32,System.UInt32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;TimerCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;WaitCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;WaitHandle;false;set_SafeWaitHandle;(Microsoft.Win32.SafeHandles.SafeWaitHandle);;Argument[0];Argument[this];taint;df-generated | | System.Threading;WaitHandle;true;get_Handle;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;WaitHandle;true;set_Handle;(System.IntPtr);;Argument[0];Argument[this];taint;df-generated | | System.Threading;WaitHandleExtensions;false;SetSafeWaitHandle;(System.Threading.WaitHandle,Microsoft.Win32.SafeHandles.SafeWaitHandle);;Argument[1];Argument[0];taint;df-generated | +| System.Threading;WaitOrTimerCallback;false;BeginInvoke;(System.Object,System.Boolean,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Timers;ElapsedEventHandler;false;BeginInvoke;(System.Object,System.Timers.ElapsedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Timers;Timer;false;add_Elapsed;(System.Timers.ElapsedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Timers;Timer;false;get_Site;();;Argument[this];ReturnValue;taint;df-generated | | System.Timers;Timer;false;get_SynchronizingObject;();;Argument[this];ReturnValue;taint;df-generated | +| System.Timers;Timer;false;remove_Elapsed;(System.Timers.ElapsedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Timers;Timer;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[this];taint;df-generated | | System.Timers;Timer;false;set_SynchronizingObject;(System.ComponentModel.ISynchronizeInvoke);;Argument[0];Argument[this];taint;df-generated | +| System.Transactions;CommittableTransaction;false;BeginCommit;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;CommittableTransaction;false;get_AsyncState;();;Argument[this];ReturnValue;taint;df-generated | | System.Transactions;CommittableTransaction;false;get_AsyncWaitHandle;();;Argument[this];ReturnValue;taint;df-generated | +| System.Transactions;HostCurrentTransactionCallback;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;Transaction;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Transactions;Transaction;false;EnlistDurable;(System.Guid,System.Transactions.ISinglePhaseNotification,System.Transactions.EnlistmentOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Transactions;Transaction;false;EnlistPromotableSinglePhase;(System.Transactions.IPromotableSinglePhaseNotification);;Argument[0];Argument[this];taint;df-generated | @@ -8967,15 +11479,22 @@ summary | System.Transactions;Transaction;false;PromoteAndEnlistDurable;(System.Guid,System.Transactions.IPromotableSinglePhaseNotification,System.Transactions.ISinglePhaseNotification,System.Transactions.EnlistmentOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Transactions;Transaction;false;Rollback;(System.Exception);;Argument[0];Argument[this];taint;df-generated | | System.Transactions;Transaction;false;SetDistributedTransactionIdentifier;(System.Transactions.IPromotableSinglePhaseNotification,System.Guid);;Argument[1];Argument[this];taint;df-generated | +| System.Transactions;Transaction;false;add_TransactionCompleted;(System.Transactions.TransactionCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;Transaction;false;get_PromoterType;();;Argument[this];ReturnValue;taint;df-generated | | System.Transactions;Transaction;false;get_TransactionInformation;();;Argument[this];ReturnValue;taint;df-generated | +| System.Transactions;Transaction;false;remove_TransactionCompleted;(System.Transactions.TransactionCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Transactions;TransactionCompletedEventHandler;false;BeginInvoke;(System.Object,System.Transactions.TransactionEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Transactions;TransactionEventArgs;false;get_Transaction;();;Argument[this];ReturnValue;taint;df-generated | | System.Transactions;TransactionInformation;false;get_DistributedIdentifier;();;Argument[this];ReturnValue;taint;df-generated | +| System.Transactions;TransactionManager;false;add_DistributedTransactionStarted;(System.Transactions.TransactionStartedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Transactions;TransactionManager;false;remove_DistributedTransactionStarted;(System.Transactions.TransactionStartedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Transactions;TransactionManager;false;set_HostCurrentCallback;(System.Transactions.HostCurrentTransactionCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;TransactionOptions;false;get_Timeout;();;Argument[this];ReturnValue;taint;df-generated | | System.Transactions;TransactionOptions;false;set_Timeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Transactions;TransactionScope;false;TransactionScope;(System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption);;Argument[0];Argument[this];taint;df-generated | | System.Transactions;TransactionScope;false;TransactionScope;(System.Transactions.Transaction,System.TimeSpan,System.Transactions.TransactionScopeAsyncFlowOption);;Argument[0];Argument[this];taint;df-generated | | System.Transactions;TransactionScope;false;TransactionScope;(System.Transactions.Transaction,System.Transactions.TransactionScopeAsyncFlowOption);;Argument[0];Argument[this];taint;df-generated | +| System.Transactions;TransactionStartedEventHandler;false;BeginInvoke;(System.Object,System.Transactions.TransactionEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Web.UI.WebControls;TextBox;false;get_Text;();;Argument[this];ReturnValue;taint;manual | | System.Web;HttpCookie;false;get_Value;();;Argument[this];ReturnValue;taint;manual | | System.Web;HttpCookie;false;get_Values;();;Argument[this];ReturnValue;taint;manual | @@ -8999,6 +11518,8 @@ summary | System.Web;HttpUtility;false;UrlEncodeToBytes;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Web;HttpUtility;false;UrlEncodeToBytes;(System.String,System.Text.Encoding);;Argument[0];ReturnValue;taint;df-generated | | System.Web;HttpUtility;false;UrlPathEncode;(System.String);;Argument[0];ReturnValue;taint;df-generated | +| System.Windows.Input;ICommand;true;add_CanExecuteChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Windows.Input;ICommand;true;remove_CanExecuteChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Windows.Markup;ValueSerializerAttribute;false;ValueSerializerAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Windows.Markup;ValueSerializerAttribute;false;ValueSerializerAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.Windows.Markup;ValueSerializerAttribute;false;get_ValueSerializerType;();;Argument[this];ReturnValue;taint;df-generated | @@ -9169,9 +11690,13 @@ summary | System.Xml.Linq;XObject;false;Annotation<>;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XObject;false;Annotations;(System.Type);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XObject;false;Annotations<>;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Linq;XObject;false;add_Changed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Linq;XObject;false;add_Changing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Linq;XObject;false;get_BaseUri;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XObject;false;get_Document;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XObject;false;get_Parent;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Linq;XObject;false;remove_Changed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Linq;XObject;false;remove_Changing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Linq;XProcessingInstruction;false;WriteTo;(System.Xml.XmlWriter);;Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XProcessingInstruction;false;WriteToAsync;(System.Xml.XmlWriter,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Xml.Linq;XProcessingInstruction;false;XProcessingInstruction;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | @@ -9201,8 +11726,15 @@ summary | System.Xml.Resolvers;XmlPreloadedResolver;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;Extensions;false;GetSchemaInfo;(System.Xml.Linq.XAttribute);;Argument[0];ReturnValue;taint;df-generated | | System.Xml.Schema;Extensions;false;GetSchemaInfo;(System.Xml.Linq.XElement);;Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XAttribute,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XAttribute,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler,System.Boolean);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XDocument,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XDocument,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler,System.Boolean);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XElement,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XElement,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler,System.Boolean);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;ValidationEventArgs;false;get_Exception;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;ValidationEventArgs;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Schema;ValidationEventHandler;false;BeginInvoke;(System.Object,System.Xml.Schema.ValidationEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlAtomicValue;false;Clone;();;Argument[this];ReturnValue;value;df-generated | | System.Xml.Schema;XmlAtomicValue;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlAtomicValue;false;ValueAs;(System.Type,System.Xml.IXmlNamespaceResolver);;Argument[this];ReturnValue;value;df-generated | @@ -9210,6 +11742,11 @@ summary | System.Xml.Schema;XmlAtomicValue;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlAtomicValue;false;get_ValueAsDateTime;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlAtomicValue;false;get_XmlType;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchema;false;Compile;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;XmlSchema;false;Compile;(System.Xml.Schema.ValidationEventHandler,System.Xml.XmlResolver);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;XmlSchema;false;Read;(System.IO.Stream,System.Xml.Schema.ValidationEventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;XmlSchema;false;Read;(System.IO.TextReader,System.Xml.Schema.ValidationEventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;XmlSchema;false;Read;(System.Xml.XmlReader,System.Xml.Schema.ValidationEventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchema;false;get_AttributeGroups;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchema;false;get_Attributes;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchema;false;get_Elements;();;Argument[this];ReturnValue;taint;df-generated | @@ -9279,9 +11816,11 @@ summary | System.Xml.Schema;XmlSchemaCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Xml.Schema;XmlSchemaCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Xml.Schema.XmlSchemaCollectionEnumerator.Current];value;manual | | System.Xml.Schema;XmlSchemaCollection;false;XmlSchemaCollection;(System.Xml.XmlNameTable);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlSchemaCollection;false;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaCollection;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaCollection;false;get_NameTable;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.Xml.Schema;XmlSchemaCollection;false;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaComplexContent;false;get_Content;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaComplexContent;false;set_Content;(System.Xml.Schema.XmlSchemaContent);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaComplexContentExtension;false;get_AnyAttribute;();;Argument[this];ReturnValue;taint;df-generated | @@ -9433,11 +11972,13 @@ summary | System.Xml.Schema;XmlSchemaSet;false;Reprocess;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;Schemas;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;XmlSchemaSet;(System.Xml.XmlNameTable);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlSchemaSet;false;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaSet;false;get_CompilationSettings;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;get_GlobalAttributes;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;get_GlobalElements;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;get_GlobalTypes;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;get_NameTable;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaSet;false;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaSet;false;set_CompilationSettings;(System.Xml.Schema.XmlSchemaCompilationSettings);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;set_XmlResolver;(System.Xml.XmlResolver);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaSimpleContent;false;get_Content;();;Argument[this];ReturnValue;taint;df-generated | @@ -9490,6 +12031,7 @@ summary | System.Xml.Schema;XmlSchemaValidator;false;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[2];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[2];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;false;ValidateAttribute;(System.String,System.String,System.Xml.Schema.XmlValueGetter,System.Xml.Schema.XmlSchemaInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateElement;(System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateElement;(System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateElement;(System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[this];Argument[2];taint;df-generated | @@ -9504,19 +12046,24 @@ summary | System.Xml.Schema;XmlSchemaValidator;false;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);;Argument[this];Argument[0];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateText;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;false;ValidateText;(System.Xml.Schema.XmlValueGetter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateWhitespace;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;false;ValidateWhitespace;(System.Xml.Schema.XmlValueGetter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;false;XmlSchemaValidator;(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,System.Xml.Schema.XmlSchemaValidationFlags);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;XmlSchemaValidator;(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,System.Xml.Schema.XmlSchemaValidationFlags);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;XmlSchemaValidator;(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,System.Xml.Schema.XmlSchemaValidationFlags);;Argument[2];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;false;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;false;get_LineInfoProvider;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;get_SourceUri;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;get_ValidationEventSender;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;false;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;false;set_LineInfoProvider;(System.Xml.IXmlLineInfo);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;set_SourceUri;(System.Uri);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;set_ValidationEventSender;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;set_XmlResolver;(System.Xml.XmlResolver);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaXPath;false;get_XPath;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaXPath;false;set_XPath;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlValueGetter;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;CodeIdentifiers;false;Add;(System.String,System.Object);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;CodeIdentifiers;false;Add;(System.String,System.Object);;Argument[this];Argument[1];taint;df-generated | | System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated | @@ -9582,6 +12129,7 @@ summary | System.Xml.Serialization;UnreferencedObjectEventArgs;false;UnreferencedObjectEventArgs;(System.Object,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;UnreferencedObjectEventArgs;false;get_UnreferencedId;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;UnreferencedObjectEventArgs;false;get_UnreferencedObject;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;UnreferencedObjectEventHandler;false;BeginInvoke;(System.Object,System.Xml.Serialization.UnreferencedObjectEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlAnyElementAttribute;false;XmlAnyElementAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlAnyElementAttribute;false;XmlAnyElementAttribute;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlAnyElementAttribute;false;XmlAnyElementAttribute;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | @@ -9633,6 +12181,7 @@ summary | System.Xml.Serialization;XmlAttributeEventArgs;false;get_Attr;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlAttributeEventArgs;false;get_ExpectedAttributes;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlAttributeEventArgs;false;get_ObjectBeingDeserialized;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlAttributeEventHandler;false;BeginInvoke;(System.Object,System.Xml.Serialization.XmlAttributeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlAttributeOverrides;false;get_Item;(System.Type);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlAttributes;false;XmlAttributes;(System.Reflection.ICustomAttributeProvider);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlAttributes;false;get_XmlAnyAttribute;();;Argument[this];ReturnValue;taint;df-generated | @@ -9662,6 +12211,10 @@ summary | System.Xml.Serialization;XmlDeserializationEvents;false;get_OnUnknownElement;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlDeserializationEvents;false;get_OnUnknownNode;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlDeserializationEvents;false;get_OnUnreferencedObject;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlDeserializationEvents;false;set_OnUnknownAttribute;(System.Xml.Serialization.XmlAttributeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlDeserializationEvents;false;set_OnUnknownElement;(System.Xml.Serialization.XmlElementEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlDeserializationEvents;false;set_OnUnknownNode;(System.Xml.Serialization.XmlNodeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlDeserializationEvents;false;set_OnUnreferencedObject;(System.Xml.Serialization.UnreferencedObjectEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlElementAttribute;false;XmlElementAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlElementAttribute;false;XmlElementAttribute;(System.String,System.Type);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlElementAttribute;false;XmlElementAttribute;(System.String,System.Type);;Argument[1];Argument[this];taint;df-generated | @@ -9683,6 +12236,7 @@ summary | System.Xml.Serialization;XmlElementEventArgs;false;get_Element;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlElementEventArgs;false;get_ExpectedElements;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlElementEventArgs;false;get_ObjectBeingDeserialized;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlElementEventHandler;false;BeginInvoke;(System.Object,System.Xml.Serialization.XmlElementEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlEnumAttribute;false;XmlEnumAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlEnumAttribute;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlEnumAttribute;false;set_Name;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -9700,6 +12254,7 @@ summary | System.Xml.Serialization;XmlNodeEventArgs;false;get_NamespaceURI;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlNodeEventArgs;false;get_ObjectBeingDeserialized;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlNodeEventArgs;false;get_Text;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlNodeEventHandler;false;BeginInvoke;(System.Object,System.Xml.Serialization.XmlNodeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlReflectionImporter;false;ImportMembersMapping;(System.String,System.String,System.Xml.Serialization.XmlReflectionMember[],System.Boolean);;Argument[2].Element;Argument[this];taint;df-generated | | System.Xml.Serialization;XmlReflectionImporter;false;ImportMembersMapping;(System.String,System.String,System.Xml.Serialization.XmlReflectionMember[],System.Boolean);;Argument[2].Element;ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlReflectionImporter;false;ImportMembersMapping;(System.String,System.String,System.Xml.Serialization.XmlReflectionMember[],System.Boolean,System.Boolean);;Argument[2].Element;Argument[this];taint;df-generated | @@ -9747,6 +12302,7 @@ summary | System.Xml.Serialization;XmlSchemas;false;Add;(System.Xml.Schema.XmlSchema,System.Uri);;Argument[1];Argument[0];taint;df-generated | | System.Xml.Serialization;XmlSchemas;false;Add;(System.Xml.Schema.XmlSchema,System.Uri);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSchemas;false;Add;(System.Xml.Serialization.XmlSchemas);;Argument[0];Argument[this].Element;value;manual | +| System.Xml.Serialization;XmlSchemas;false;Compile;(System.Xml.Schema.ValidationEventHandler,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSchemas;false;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Xml.Serialization;XmlSchemas;false;Find;(System.Xml.XmlQualifiedName,System.Type);;Argument[this].Element;ReturnValue;value;manual | | System.Xml.Serialization;XmlSchemas;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | @@ -9757,15 +12313,22 @@ summary | System.Xml.Serialization;XmlSchemas;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.Xml.Serialization;XmlSchemas;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual | | System.Xml.Serialization;XmlSchemas;false;set_Item;(System.Int32,System.Xml.Schema.XmlSchema);;Argument[1];Argument[this].Element;value;manual | +| System.Xml.Serialization;XmlSerializationCollectionFixupCallback;false;BeginInvoke;(System.Object,System.Object,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializationFixupCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializationReadCallback;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializationReader+CollectionFixup;false;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;false;get_Callback;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;false;get_Collection;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;false;get_CollectionItems;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlSerializationReader+Fixup;false;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.Int32);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializationReader+Fixup;false;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;false;get_Callback;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;false;get_Ids;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;false;get_Source;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;false;set_Source;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;AddFixup;(System.Xml.Serialization.XmlSerializationReader+CollectionFixup);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;AddFixup;(System.Xml.Serialization.XmlSerializationReader+Fixup);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Serialization;XmlSerializationReader;false;AddReadCallback;(System.String,System.String,System.Type,System.Xml.Serialization.XmlSerializationReadCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader;false;AddTarget;(System.String,System.Object);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;CollapseWhitespace;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;EnsureArrayIndex;(System.Array,System.Int32,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -9796,6 +12359,8 @@ summary | System.Xml.Serialization;XmlSerializationReader;false;ToXmlNmTokens;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;get_Document;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;get_Reader;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlSerializationWriteCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializationWriter;false;AddWriteCallback;(System.Type,System.String,System.String,System.Xml.Serialization.XmlSerializationWriteCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationWriter;false;FromByteArrayBase64;(System.Byte[]);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationWriter;false;FromByteArrayHex;(System.Byte[]);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationWriter;false;FromEnum;(System.Int64,System.String[],System.Int64[]);;Argument[1].Element;ReturnValue;taint;df-generated | @@ -9878,6 +12443,14 @@ summary | System.Xml.Serialization;XmlSerializer;false;XmlSerializer;(System.Type,System.Xml.Serialization.XmlAttributeOverrides,System.Type[],System.Xml.Serialization.XmlRootAttribute,System.String,System.String);;Argument[3];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializer;false;XmlSerializer;(System.Type,System.Xml.Serialization.XmlAttributeOverrides,System.Type[],System.Xml.Serialization.XmlRootAttribute,System.String,System.String);;Argument[4];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializer;false;XmlSerializer;(System.Xml.Serialization.XmlTypeMapping);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Serialization;XmlSerializer;false;add_UnknownAttribute;(System.Xml.Serialization.XmlAttributeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;add_UnknownElement;(System.Xml.Serialization.XmlElementEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;add_UnknownNode;(System.Xml.Serialization.XmlNodeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;add_UnreferencedObject;(System.Xml.Serialization.UnreferencedObjectEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;remove_UnknownAttribute;(System.Xml.Serialization.XmlAttributeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;remove_UnknownElement;(System.Xml.Serialization.XmlElementEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;remove_UnknownNode;(System.Xml.Serialization.XmlNodeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;remove_UnreferencedObject;(System.Xml.Serialization.UnreferencedObjectEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializerAssemblyAttribute;false;XmlSerializerAssemblyAttribute;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializerAssemblyAttribute;false;XmlSerializerAssemblyAttribute;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializerAssemblyAttribute;false;get_AssemblyName;();;Argument[this];ReturnValue;taint;df-generated | @@ -9937,6 +12510,7 @@ summary | System.Xml.XPath;XPathNavigator;false;get_TypedValue;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;false;get_ValueAsDateTime;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;false;get_XmlType;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.XPath;XPathNavigator;true;CheckValidity;(System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.XPath;XPathNavigator;true;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;true;Compile;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;true;CreateNavigator;();;Argument[this];ReturnValue;taint;df-generated | @@ -9975,17 +12549,25 @@ summary | System.Xml.Xsl;XsltArgumentList;false;GetParam;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltArgumentList;false;RemoveExtensionObject;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltArgumentList;false;RemoveParam;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Xsl;XsltArgumentList;false;add_XsltMessageEncountered;(System.Xml.Xsl.XsltMessageEncounteredEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Xsl;XsltArgumentList;false;remove_XsltMessageEncountered;(System.Xml.Xsl.XsltMessageEncounteredEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Xsl;XsltCompileException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Xml.Xsl;XsltException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Xml.Xsl;XsltException;false;XsltException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Xsl;XsltException;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltException;false;get_SourceUri;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Xsl;XsltMessageEncounteredEventHandler;false;BeginInvoke;(System.Object,System.Xml.Xsl.XsltMessageEncounteredEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Xml;IXmlBinaryReaderInitializer;true;SetInput;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| System.Xml;IXmlBinaryReaderInitializer;true;SetInput;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Xml;IXmlTextReaderInitializer;true;SetInput;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Xml;IXmlTextReaderInitializer;true;SetInput;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Xml;NameTable;false;Add;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml;NameTable;false;Add;(System.Char[],System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;NameTable;false;Add;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Xml;NameTable;false;Add;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;NameTable;false;Get;(System.Char[],System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;NameTable;false;Get;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;OnXmlDictionaryReaderClose;false;BeginInvoke;(System.Xml.XmlDictionaryReader,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml;UniqueId;false;UniqueId;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;UniqueId;false;UniqueId;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlAttribute;false;AppendChild;(System.Xml.XmlNode);;Argument[0].Element;Argument[this];taint;df-generated | @@ -10129,6 +12711,7 @@ summary | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[3];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[5];ReturnValue;taint;df-generated | +| System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);;Argument[0];ReturnValue;taint;df-generated | @@ -10136,10 +12719,15 @@ summary | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[1];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[3];ReturnValue;taint;df-generated | +| System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas);;Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateDictionaryReader;(System.Xml.XmlReader);;Argument[0];ReturnValue;taint;df-generated | +| System.Xml;XmlDictionaryReader;false;CreateMtomReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);;Argument[7];Argument[7].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDictionaryReader;false;CreateMtomReader;(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDictionaryReader;false;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDictionaryReader;false;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateTextReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlDictionaryReader;false;CreateTextReader;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDictionaryReader;false;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);;Argument[1];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;ReadContentAsString;();;Argument[this];ReturnValue;taint;df-generated | @@ -10252,9 +12840,17 @@ summary | System.Xml;XmlDocument;false;Load;(System.String);;Argument[0];Argument[this];taint;manual | | System.Xml;XmlDocument;false;Load;(System.Xml.XmlReader);;Argument[0];Argument[this];taint;manual | | System.Xml;XmlDocument;false;Save;(System.Xml.XmlWriter);;Argument[this];Argument[0];taint;df-generated | +| System.Xml;XmlDocument;false;Validate;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;Validate;(System.Xml.Schema.ValidationEventHandler,System.Xml.XmlNode);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDocument;false;WriteContentTo;(System.Xml.XmlWriter);;Argument[this];Argument[0];taint;df-generated | | System.Xml;XmlDocument;false;WriteTo;(System.Xml.XmlWriter);;Argument[this];Argument[0];taint;df-generated | | System.Xml;XmlDocument;false;XmlDocument;(System.Xml.XmlImplementation);;Argument[0];Argument[this];taint;df-generated | +| System.Xml;XmlDocument;false;add_NodeChanged;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;add_NodeChanging;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;add_NodeInserted;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;add_NodeInserting;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;add_NodeRemoved;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;add_NodeRemoving;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDocument;false;get_BaseURI;();;Argument[this];ReturnValue;taint;manual | | System.Xml;XmlDocument;false;get_DocumentElement;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDocument;false;get_DocumentType;();;Argument[this];ReturnValue;taint;df-generated | @@ -10269,6 +12865,12 @@ summary | System.Xml;XmlDocument;false;get_ParentNode;();;Argument[this];ReturnValue;taint;manual | | System.Xml;XmlDocument;false;get_SchemaInfo;();;Argument[this];ReturnValue;taint;manual | | System.Xml;XmlDocument;false;get_Schemas;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlDocument;false;remove_NodeChanged;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;remove_NodeChanging;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;remove_NodeInserted;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;remove_NodeInserting;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;remove_NodeRemoved;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;remove_NodeRemoving;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDocument;false;set_Schemas;(System.Xml.Schema.XmlSchemaSet);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlDocument;false;set_XmlResolver;(System.Xml.XmlResolver);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlDocumentFragment;false;CloneNode;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | @@ -10445,6 +13047,7 @@ summary | System.Xml;XmlNodeChangedEventArgs;false;get_Node;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNodeChangedEventArgs;false;get_OldParent;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNodeChangedEventArgs;false;get_OldValue;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlNodeChangedEventHandler;false;BeginInvoke;(System.Object,System.Xml.XmlNodeChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlNodeList;true;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Xml;XmlNodeList;true;get_ItemOf;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNodeReader;false;GetAttribute;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -10549,7 +13152,9 @@ summary | System.Xml;XmlReader;true;get_Item;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlReader;true;get_Name;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlReader;true;get_SchemaInfo;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlReaderSettings;false;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlReaderSettings;false;get_NameTable;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlReaderSettings;false;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlReaderSettings;false;set_NameTable;(System.Xml.XmlNameTable);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlReaderSettings;false;set_Schemas;(System.Xml.Schema.XmlSchemaSet);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlReaderSettings;false;set_XmlResolver;(System.Xml.XmlResolver);;Argument[0];Argument[this];taint;df-generated | @@ -10612,9 +13217,11 @@ summary | System.Xml;XmlValidatingReader;false;XmlValidatingReader;(System.IO.Stream,System.Xml.XmlNodeType,System.Xml.XmlParserContext);;Argument[2];Argument[this];taint;df-generated | | System.Xml;XmlValidatingReader;false;XmlValidatingReader;(System.String,System.Xml.XmlNodeType,System.Xml.XmlParserContext);;Argument[2];Argument[this];taint;df-generated | | System.Xml;XmlValidatingReader;false;XmlValidatingReader;(System.Xml.XmlReader);;Argument[0];Argument[this];taint;df-generated | +| System.Xml;XmlValidatingReader;false;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlValidatingReader;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlValidatingReader;false;get_Reader;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlValidatingReader;false;get_Schemas;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlValidatingReader;false;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlWhitespace;false;CloneNode;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlWhitespace;false;WriteTo;(System.Xml.XmlWriter);;Argument[this];Argument[0];taint;df-generated | | System.Xml;XmlWhitespace;false;get_LocalName;();;Argument[this];ReturnValue;taint;manual | @@ -10671,13 +13278,49 @@ summary | System.Xml;XmlWriterSettings;false;set_Encoding;(System.Text.Encoding);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlWriterSettings;false;set_IndentChars;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlWriterSettings;false;set_NewLineChars;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System;Action;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,System.AsyncCallback,System.Object);;Argument[16];Argument[16].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,System.AsyncCallback,System.Object);;Argument[15];Argument[15].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,System.AsyncCallback,System.Object);;Argument[14];Argument[14].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,System.AsyncCallback,System.Object);;Argument[13];Argument[13].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,System.AsyncCallback,System.Object);;Argument[12];Argument[12].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,System.AsyncCallback,System.Object);;Argument[11];Argument[11].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,System.AsyncCallback,System.Object);;Argument[10];Argument[10].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,System.AsyncCallback,System.Object);;Argument[9];Argument[9].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,System.AsyncCallback,System.Object);;Argument[8];Argument[8].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,System.AsyncCallback,System.Object);;Argument[7];Argument[7].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,System.AsyncCallback,System.Object);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,>;false;BeginInvoke;(T1,T2,T3,T4,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System;Action<,,>;false;BeginInvoke;(T1,T2,T3,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System;Action<,>;false;BeginInvoke;(T1,T2,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Action<>;false;BeginInvoke;(T,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;AggregateException;false;AggregateException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | | System;AggregateException;false;AggregateException;(System.String,System.Exception);;Argument[1];Argument[this];taint;df-generated | | System;AggregateException;false;GetBaseException;();;Argument[this];ReturnValue;taint;df-generated | | System;AggregateException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System;AggregateException;false;Handle;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;AggregateException;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;AggregateException;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | | System;AppDomain;false;ApplyPolicy;(System.String);;Argument[0];ReturnValue;taint;df-generated | +| System;AppDomain;false;add_AssemblyLoad;(System.AssemblyLoadEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_AssemblyResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_DomainUnload;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_FirstChanceException;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_ProcessExit;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_ReflectionOnlyAssemblyResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_ResourceResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_TypeResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_UnhandledException;(System.UnhandledExceptionEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_AssemblyLoad;(System.AssemblyLoadEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_AssemblyResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_DomainUnload;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_FirstChanceException;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_ProcessExit;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_ReflectionOnlyAssemblyResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_ResourceResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_TypeResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_UnhandledException;(System.UnhandledExceptionEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;ArgumentException;false;ArgumentException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | | System;ArgumentException;false;ArgumentException;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System;ArgumentException;false;ArgumentException;(System.String,System.String,System.Exception);;Argument[1];Argument[this];taint;df-generated | @@ -10695,22 +13338,36 @@ summary | System;Array;false;Clear;(System.Array);;Argument[0].WithoutElement;Argument[0];value;manual | | System;Array;false;Clear;(System.Array,System.Int32,System.Int32);;Argument[0].WithoutElement;Argument[0];value;manual | | System;Array;false;Clone;();;Argument[this].Element;ReturnValue.Element;value;manual | +| System;Array;false;ConvertAll<,>;(TInput[],System.Converter);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System;Array;false;CopyTo;(System.Array,System.Int64);;Argument[this].Element;Argument[0].Element;value;manual | +| System;Array;false;Exists<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;false;Fill<>;(T[],T);;Argument[1];Argument[0].Element;taint;df-generated | | System;Array;false;Fill<>;(T[],T,System.Int32,System.Int32);;Argument[1];Argument[0].Element;taint;df-generated | | System;Array;false;Find<>;(T[],System.Predicate);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;false;Find<>;(T[],System.Predicate);;Argument[0].Element;ReturnValue;value;manual | +| System;Array;false;Find<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System;Array;false;FindAll<>;(T[],System.Predicate);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;false;FindAll<>;(T[],System.Predicate);;Argument[0].Element;ReturnValue;value;manual | +| System;Array;false;FindAll<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System;Array;false;FindIndex<>;(T[],System.Int32,System.Int32,System.Predicate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System;Array;false;FindIndex<>;(T[],System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Array;false;FindIndex<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;false;FindLast<>;(T[],System.Predicate);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;false;FindLast<>;(T[],System.Predicate);;Argument[0].Element;ReturnValue;value;manual | +| System;Array;false;FindLast<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System;Array;false;FindLastIndex<>;(T[],System.Int32,System.Int32,System.Predicate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System;Array;false;FindLastIndex<>;(T[],System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Array;false;FindLastIndex<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Array;false;ForEach<>;(T[],System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System;Array;false;Insert;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | | System;Array;false;Reverse;(System.Array);;Argument[0].Element;ReturnValue.Element;value;manual | | System;Array;false;Reverse;(System.Array,System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System;Array;false;Reverse<>;(T[]);;Argument[0].Element;ReturnValue.Element;value;manual | | System;Array;false;Reverse<>;(T[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | +| System;Array;false;Sort<>;(T[],System.Comparison);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Array;false;TrueForAll<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System;Array;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System;Array;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual | @@ -10730,6 +13387,8 @@ summary | System;ArraySegment<>;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System;ArraySegment<>;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System;ArraySegment<>;false;set_Item;(System.Int32,T);;Argument[1];Argument[this].Element;value;manual | +| System;AssemblyLoadEventHandler;false;BeginInvoke;(System.Object,System.AssemblyLoadEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;AsyncCallback;false;BeginInvoke;(System.IAsyncResult,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;BadImageFormatException;false;BadImageFormatException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | | System;BadImageFormatException;false;BadImageFormatException;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System;BadImageFormatException;false;BadImageFormatException;(System.String,System.String,System.Exception);;Argument[1];Argument[this];taint;df-generated | @@ -10743,6 +13402,10 @@ summary | System;Boolean;false;TryParse;(System.ReadOnlySpan,System.Boolean);;Argument[0].Element;ReturnValue;taint;manual | | System;Boolean;false;TryParse;(System.String,System.Boolean);;Argument[0];Argument[1];taint;manual | | System;Boolean;false;TryParse;(System.String,System.Boolean);;Argument[0];ReturnValue;taint;manual | +| System;Comparison<>;false;BeginInvoke;(T,T,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Console;false;add_CancelKeyPress;(System.ConsoleCancelEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Console;false;remove_CancelKeyPress;(System.ConsoleCancelEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;ConsoleCancelEventHandler;false;BeginInvoke;(System.Object,System.ConsoleCancelEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Convert;false;ChangeType;(System.Object,System.Type);;Argument[0];ReturnValue;taint;manual | | System;Convert;false;ChangeType;(System.Object,System.Type,System.IFormatProvider);;Argument[0];ReturnValue;taint;manual | | System;Convert;false;ChangeType;(System.Object,System.TypeCode);;Argument[0];ReturnValue;taint;manual | @@ -11070,6 +13733,7 @@ summary | System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan,System.Span,System.Int32,System.Base64FormattingOptions);;Argument[0].Element;Argument[1].Element;taint;manual | | System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan,System.Span,System.Int32,System.Base64FormattingOptions);;Argument[0].Element;Argument[2];taint;manual | | System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan,System.Span,System.Int32,System.Base64FormattingOptions);;Argument[0].Element;ReturnValue;taint;manual | +| System;Converter<,>;false;BeginInvoke;(TInput,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;DBNull;false;ToType;(System.Type,System.IFormatProvider);;Argument[this];ReturnValue;taint;df-generated | | System;DateOnly;false;ToString;(System.IFormatProvider);;Argument[0];ReturnValue;taint;df-generated | | System;DateOnly;false;ToString;(System.String,System.IFormatProvider);;Argument[1];ReturnValue;taint;df-generated | @@ -11108,23 +13772,44 @@ summary | System;Enum;false;GetUnderlyingType;(System.Type);;Argument[0];ReturnValue;taint;df-generated | | System;Enum;false;ToType;(System.Type,System.IFormatProvider);;Argument[this];ReturnValue;taint;df-generated | | System;Environment;false;ExpandEnvironmentVariables;(System.String);;Argument[0];ReturnValue;taint;df-generated | +| System;EventHandler;false;BeginInvoke;(System.Object,System.EventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;EventHandler<>;false;BeginInvoke;(System.Object,TEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Exception;false;Exception;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | | System;Exception;false;Exception;(System.String);;Argument[0];Argument[this];taint;df-generated | | System;Exception;false;Exception;(System.String,System.Exception);;Argument[0];Argument[this];taint;df-generated | | System;Exception;false;Exception;(System.String,System.Exception);;Argument[1];Argument[this];taint;df-generated | | System;Exception;false;GetBaseException;();;Argument[this];ReturnValue;taint;df-generated | | System;Exception;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System;Exception;false;add_SerializeObjectState;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Exception;false;get_HelpLink;();;Argument[this];ReturnValue;taint;df-generated | | System;Exception;false;get_InnerException;();;Argument[this];ReturnValue;taint;df-generated | | System;Exception;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | | System;Exception;false;get_StackTrace;();;Argument[this];ReturnValue;taint;df-generated | | System;Exception;false;get_TargetSite;();;Argument[this];ReturnValue;taint;df-generated | +| System;Exception;false;remove_SerializeObjectState;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Exception;false;set_HelpLink;(System.String);;Argument[0];Argument[this];taint;df-generated | | System;Exception;false;set_Source;(System.String);;Argument[0];Argument[this];taint;df-generated | | System;FormattableString;false;CurrentCulture;(System.FormattableString);;Argument[0];ReturnValue;taint;df-generated | | System;FormattableString;false;Invariant;(System.FormattableString);;Argument[0];ReturnValue;taint;df-generated | | System;FormattableString;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;FormattableString;false;ToString;(System.String,System.IFormatProvider);;Argument[this];ReturnValue;taint;df-generated | +| System;Func<,,,,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,System.AsyncCallback,System.Object);;Argument[16];Argument[16].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,System.AsyncCallback,System.Object);;Argument[15];Argument[15].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,System.AsyncCallback,System.Object);;Argument[14];Argument[14].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,System.AsyncCallback,System.Object);;Argument[13];Argument[13].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,System.AsyncCallback,System.Object);;Argument[12];Argument[12].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,System.AsyncCallback,System.Object);;Argument[11];Argument[11].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,System.AsyncCallback,System.Object);;Argument[10];Argument[10].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,System.AsyncCallback,System.Object);;Argument[9];Argument[9].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,System.AsyncCallback,System.Object);;Argument[8];Argument[8].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,System.AsyncCallback,System.Object);;Argument[7];Argument[7].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,System.AsyncCallback,System.Object);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,>;false;BeginInvoke;(T1,T2,T3,T4,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,>;false;BeginInvoke;(T1,T2,T3,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System;Func<,,>;false;BeginInvoke;(T1,T2,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Func<,>;false;BeginInvoke;(T,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Func<>;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Half;false;BitDecrement;(System.Half);;Argument[0];ReturnValue;taint;df-generated | | System;Half;false;BitIncrement;(System.Half);;Argument[0];ReturnValue;taint;df-generated | | System;Half;false;ToString;(System.IFormatProvider);;Argument[0];ReturnValue;taint;df-generated | @@ -11154,13 +13839,19 @@ summary | System;IntPtr;false;Min;(System.IntPtr,System.IntPtr);;Argument[0];ReturnValue;taint;df-generated | | System;IntPtr;false;Min;(System.IntPtr,System.IntPtr);;Argument[1];ReturnValue;taint;df-generated | | System;IntPtr;false;ToPointer;();;Argument[this];ReturnValue;taint;df-generated | +| System;Lazy<,>;false;Lazy;(System.Func,TMetadata);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Lazy<,>;false;Lazy;(System.Func,TMetadata,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Lazy<,>;false;Lazy;(System.Func,TMetadata,System.Threading.LazyThreadSafetyMode);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Lazy<,>;false;Lazy;(TMetadata);;Argument[0];Argument[this];taint;df-generated | | System;Lazy<,>;false;Lazy;(TMetadata,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System;Lazy<,>;false;Lazy;(TMetadata,System.Threading.LazyThreadSafetyMode);;Argument[0];Argument[this];taint;df-generated | | System;Lazy<,>;false;get_Metadata;();;Argument[this];ReturnValue;taint;df-generated | | System;Lazy<>;false;Lazy;(System.Func);;Argument[0].ReturnValue;Argument[this].Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy<>;false;Lazy;(System.Func,System.Boolean);;Argument[0].ReturnValue;Argument[this].Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy<>;false;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);;Argument[0].ReturnValue;Argument[this].Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy<>;false;Lazy;(T);;Argument[0];Argument[this];taint;df-generated | | System;Lazy<>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;Lazy<>;false;get_Value;();;Argument[this];ReturnValue;taint;manual | @@ -11202,6 +13893,8 @@ summary | System;MemoryExtensions;false;AsMemory<>;(T[],System.Range);;Argument[0].Element;ReturnValue;taint;df-generated | | System;MemoryExtensions;false;EnumerateLines;(System.ReadOnlySpan);;Argument[0];ReturnValue;taint;df-generated | | System;MemoryExtensions;false;EnumerateRunes;(System.ReadOnlySpan);;Argument[0];ReturnValue;taint;df-generated | +| System;MemoryExtensions;false;Sort<,>;(System.Span,System.Span,System.Comparison);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;MemoryExtensions;false;Sort<>;(System.Span,System.Comparison);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;MemoryExtensions;false;Trim;(System.Memory);;Argument[0];ReturnValue;taint;df-generated | | System;MemoryExtensions;false;Trim;(System.ReadOnlyMemory);;Argument[0];ReturnValue;taint;df-generated | | System;MemoryExtensions;false;Trim<>;(System.Memory,System.ReadOnlySpan);;Argument[0];ReturnValue;taint;df-generated | @@ -11265,12 +13958,17 @@ summary | System;OperationCanceledException;false;OperationCanceledException;(System.String,System.Threading.CancellationToken);;Argument[1];Argument[this];taint;df-generated | | System;OperationCanceledException;false;OperationCanceledException;(System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | | System;OperationCanceledException;false;get_CancellationToken;();;Argument[this];ReturnValue;taint;df-generated | +| System;Predicate<>;false;BeginInvoke;(T,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Progress<>;false;Progress;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Progress<>;false;add_ProgressChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Progress<>;false;remove_ProgressChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;ReadOnlyMemory<>;false;ReadOnlyMemory;(T[]);;Argument[0].Element;Argument[this];taint;df-generated | | System;ReadOnlyMemory<>;false;ReadOnlyMemory;(T[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;df-generated | | System;ReadOnlyMemory<>;false;Slice;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System;ReadOnlyMemory<>;false;Slice;(System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System;ReadOnlyMemory<>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;ReadOnlySpan<>;false;GetEnumerator;();;Argument[this];ReturnValue;taint;df-generated | +| System;ResolveEventHandler;false;BeginInvoke;(System.Object,System.ResolveEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;RuntimeFieldHandle;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | System;RuntimeMethodHandle;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | System;RuntimeTypeHandle;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | @@ -11310,6 +14008,7 @@ summary | System;String;false;Concat;(System.String[]);;Argument[0].Element;ReturnValue;taint;manual | | System;String;false;Concat<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;manual | | System;String;false;Copy;(System.String);;Argument[0];ReturnValue;value;manual | +| System;String;false;Create<>;(System.Int32,TState,System.Buffers.SpanAction);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;String;false;EnumerateRunes;();;Argument[this];ReturnValue;taint;df-generated | | System;String;false;Format;(System.IFormatProvider,System.String,System.Object);;Argument[1];ReturnValue;taint;manual | | System;String;false;Format;(System.IFormatProvider,System.String,System.Object);;Argument[2];ReturnValue;taint;manual | @@ -11817,9 +14516,17 @@ summary | System;Type;false;GetProperty;(System.String,System.Type,System.Type[]);;Argument[this];ReturnValue;taint;df-generated | | System;Type;false;GetProperty;(System.String,System.Type,System.Type[],System.Reflection.ParameterModifier[]);;Argument[this];ReturnValue;taint;df-generated | | System;Type;false;GetProperty;(System.String,System.Type[]);;Argument[this];ReturnValue;taint;df-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func,System.Boolean);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func,System.Boolean,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func,System.Boolean,System.Boolean);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Type;false;MakeGenericSignatureType;(System.Type,System.Type[]);;Argument[0];ReturnValue;taint;df-generated | | System;Type;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;Type;false;get_TypeInitializer;();;Argument[this];ReturnValue;taint;df-generated | +| System;Type;true;FindInterfaces;(System.Reflection.TypeFilter,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Type;true;FindMembers;(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Type;true;GetEvents;();;Argument[this];ReturnValue;taint;df-generated | | System;Type;true;GetMember;(System.String,System.Reflection.BindingFlags);;Argument[this];ReturnValue;taint;df-generated | | System;Type;true;GetMemberWithSameMetadataDefinitionAs;(System.Reflection.MemberInfo);;Argument[this];ReturnValue;taint;df-generated | @@ -11844,6 +14551,7 @@ summary | System;UIntPtr;false;UIntPtr;(System.Void*);;Argument[0];Argument[this];taint;df-generated | | System;UnhandledExceptionEventArgs;false;UnhandledExceptionEventArgs;(System.Object,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System;UnhandledExceptionEventArgs;false;get_ExceptionObject;();;Argument[this];ReturnValue;taint;df-generated | +| System;UnhandledExceptionEventHandler;false;BeginInvoke;(System.Object,System.UnhandledExceptionEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Uri;false;EscapeDataString;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System;Uri;false;EscapeString;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System;Uri;false;EscapeUriString;(System.String);;Argument[0];ReturnValue;taint;df-generated | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected index 7576338930a..4a121dcab40 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -1,4 +1,587 @@ summary +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnCheckSlidingExpiration;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnRedirectToAccessDenied;(System.Func,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnRedirectToLogin;(System.Func,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnRedirectToLogout;(System.Func,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnRedirectToReturnUrl;(System.Func,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnSignedIn;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnSigningIn;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnSigningOut;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnValidatePrincipal;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.OAuth.Claims;CustomJsonClaimAction;false;CustomJsonClaimAction;(System.String,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.OAuth;OAuthEvents;false;set_OnCreatingTicket;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication.OAuth;OAuthEvents;false;set_OnRedirectToAuthorizationEndpoint;(System.Func,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationBuilder;false;AddPolicyScheme;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationBuilder;false;AddRemoteScheme<,>;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationBuilder;false;AddScheme<,>;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationBuilder;false;AddScheme<,>;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationMiddleware;false;AuthenticationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationOptions;false;AddScheme;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;AuthenticationSchemeOptions;false;set_ForwardDefaultSelector;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;ClaimActionCollectionMapExtensions;false;MapCustomJson;(Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;ClaimActionCollectionMapExtensions;false;MapCustomJson;(Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection,System.String,System.String,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;RemoteAuthenticationEvents;false;set_OnAccessDenied;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;RemoteAuthenticationEvents;false;set_OnRemoteFailure;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authentication;RemoteAuthenticationEvents;false;set_OnTicketReceived;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization.Infrastructure;AssertionRequirement;false;AssertionRequirement;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization.Infrastructure;AssertionRequirement;false;AssertionRequirement;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationBuilder;false;AddDefaultPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationBuilder;false;AddFallbackPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationBuilder;false;AddPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationMiddleware;false;AuthorizationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationMiddleware;false;AuthorizationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider,System.IServiceProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationOptions;false;AddPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationPolicyBuilder;false;RequireAssertion;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;AuthorizationPolicyBuilder;false;RequireAssertion;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Authorization;IAuthorizationMiddlewareResultHandler;true;HandleAsync;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Http.HttpContext,Microsoft.AspNetCore.Authorization.AuthorizationPolicy,Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;MapMiddleware;false;MapMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Builder.Extensions.MapOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;MapOptions;false;set_Branch;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;MapWhenMiddleware;false;MapWhenMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;MapWhenOptions;false;set_Branch;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;MapWhenOptions;false;set_Predicate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder.Extensions;UsePathBaseMiddleware;false;UsePathBaseMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Http.PathString);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ApplicationBuilderExtensions;false;UseRequestLocalization;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;AuthorizationEndpointConventionBuilderExtensions;false;RequireAuthorization<>;(TBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ComponentEndpointRouteBuilderExtensions;false;MapBlazorHub;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ComponentEndpointRouteBuilderExtensions;false;MapBlazorHub;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConnectionEndpointRouteBuilderExtensions;false;MapConnectionHandler<>;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConnectionEndpointRouteBuilderExtensions;false;MapConnections;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ConnectionEndpointRouteBuilderExtensions;false;MapConnections;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;CookiePolicyOptions;false;set_CheckConsentNeeded;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;CookiePolicyOptions;false;set_OnAppendCookie;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;CookiePolicyOptions;false;set_OnDeleteCookie;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;CorsEndpointConventionBuilderExtensions;false;RequireCors<>;(TBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;CorsMiddlewareExtensions;false;UseCors;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointBuilder;false;set_RequestDelegate;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;Map;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,Microsoft.AspNetCore.Routing.Patterns.RoutePattern,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;Map;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapDelete;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapGet;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapMethods;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Collections.Generic.IEnumerable,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapPatch;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapPost;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRouteBuilderExtensions;false;MapPut;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;EndpointRoutingApplicationBuilderExtensions;false;UseEndpoints;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ExceptionHandlerExtensions;false;UseExceptionHandler;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ExceptionHandlerOptions;false;set_ExceptionHandler;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;FallbackEndpointRouteBuilderExtensions;false;MapFallback;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;FallbackEndpointRouteBuilderExtensions;false;MapFallback;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;HostFilteringServicesExtensions;false;AddHostFiltering;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;HstsServicesExtensions;false;AddHsts;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;HttpsRedirectionServicesExtensions;false;AddHttpsRedirection;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;HubEndpointRouteBuilderExtensions;false;MapHub<>;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;IApplicationBuilder;true;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;IEndpointConventionBuilder;true;Add;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;IEndpointConventionBuilder;true;Finally;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MapExtensions;false;Map;(Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Http.PathString,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MapExtensions;false;Map;(Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Http.PathString,System.Boolean,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MapExtensions;false;Map;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MapWhenExtensions;false;MapWhen;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MapWhenExtensions;false;MapWhen;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;MvcApplicationBuilderExtensions;false;UseMvc;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RateLimiterServiceCollectionExtensions;false;AddRateLimiter;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;ResponseCompressionServicesExtensions;false;AddResponseCompression;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RouterMiddleware;false;RouterMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.AspNetCore.Routing.IRouter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RoutingBuilderExtensions;false;UseRouter;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RoutingEndpointConventionBuilderExtensions;false;WithDisplayName<>;(TBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;RunExtensions;false;Run;(Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;StaticFileOptions;false;set_OnPrepareResponse;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;StatusCodePagesExtensions;false;UseStatusCodePages;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;StatusCodePagesExtensions;false;UseStatusCodePages;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;StatusCodePagesOptions;false;set_HandleAsync;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;UseExtensions;false;Use;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;UseExtensions;false;Use;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func,System.Threading.Tasks.Task>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;UseWhenExtensions;false;UseWhen;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Builder;UseWhenExtensions;false;UseWhen;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthenticationStateChangedHandler;false;BeginInvoke;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthenticationStateProvider;false;add_AuthenticationStateChanged;(Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthenticationStateProvider;false;remove_AuthenticationStateChanged;(Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeRouteView;false;set_Authorizing;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeRouteView;false;set_NotAuthorized;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeViewCore;false;set_Authorized;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeViewCore;false;set_Authorizing;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeViewCore;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;AuthorizeViewCore;false;set_NotAuthorized;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Authorization;CascadingAuthenticationState;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;CreateInferredBindSetter<>;(System.Action,T);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;CreateInferredBindSetter<>;(System.Func,T);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;CreateInferredEventCallback<>;(System.Object,System.Action,T);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;CreateInferredEventCallback<>;(System.Object,System.Func,T);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;InvokeAsynchronousDelegate;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;InvokeAsynchronousDelegate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;InvokeSynchronousDelegate;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;GetValidationMessages;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;IsModified;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;add_OnFieldChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;add_OnValidationRequested;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;add_OnValidationStateChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;remove_OnFieldChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;remove_OnValidationRequested;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContext;false;remove_OnValidationStateChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditContextFieldClassExtensions;false;FieldCssClass<>;(Microsoft.AspNetCore.Components.Forms.EditContext,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;EditForm;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;FieldIdentifier;false;Create<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;InputBase<>;false;set_ValueExpression;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;InputRadioGroup<>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;InputSelect<>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;ValidationMessage<>;false;set_For;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;ValidationMessageStore;false;Add;(System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;ValidationMessageStore;false;Add;(System.Linq.Expressions.Expression>,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;ValidationMessageStore;false;Clear;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Forms;ValidationMessageStore;false;get_Item;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.RenderTree;Renderer;false;add_UnhandledSynchronizationException;(System.UnhandledExceptionEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.RenderTree;Renderer;false;remove_UnhandledSynchronizationException;(System.UnhandledExceptionEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Rendering;RenderTreeBuilder;false;AddComponentReferenceCapture;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Rendering;RenderTreeBuilder;false;AddContent;(System.Int32,Microsoft.AspNetCore.Components.RenderFragment);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Rendering;RenderTreeBuilder;false;AddContent<>;(System.Int32,Microsoft.AspNetCore.Components.RenderFragment,TValue);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Rendering;RenderTreeBuilder;false;AddElementReferenceCapture;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Routing;NavLink;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Routing;Router;false;set_Found;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Routing;Router;false;set_Navigating;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Routing;Router;false;set_NotFound;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web.Virtualization;ItemsProviderDelegate<>;false;BeginInvoke;(Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<>;false;set_ItemContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<>;false;set_ItemsProvider;(Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<>;false;set_Placeholder;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;HeadContent;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;PageTitle;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;CascadingValue<>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;ComponentBase;false;InvokeAsync;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;ComponentBase;false;InvokeAsync;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;Dispatcher;true;InvokeAsync;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;Dispatcher;true;InvokeAsync;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;Dispatcher;true;InvokeAsync<>;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;Dispatcher;true;InvokeAsync<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;ErrorBoundaryBase;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;ErrorBoundaryBase;false;set_ErrorContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create;(System.Object,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create;(System.Object,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create;(System.Object,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create;(System.Object,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create<>;(System.Object,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create<>;(System.Object,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create<>;(System.Object,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;Create<>;(System.Object,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;CreateInferred<>;(System.Object,System.Action,TValue);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactory;false;CreateInferred<>;(System.Object,System.Func,TValue);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Boolean,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateOnly,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateOnly,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateTime,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateTime,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateTimeOffset,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.DateTimeOffset,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Decimal,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Double,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Int16,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Int32,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Int64,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.Single,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.TimeOnly,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,System.TimeOnly,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Boolean,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateOnly,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateOnly,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateTime,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateTime,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateTimeOffset,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.DateTimeOffset,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Decimal,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Double,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Int16,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Int32,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Int64,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Threading.Tasks.Task>,System.Nullable,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.Single,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.TimeOnly,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,System.TimeOnly,System.String,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder<>;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action,T,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryBinderExtensions;false;CreateBinder<>;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func,T,System.Globalization.CultureInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;EventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;LayoutComponentBase;false;set_Body;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;LayoutView;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;NavigationManager;false;RegisterLocationChangingHandler;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;NavigationManager;false;add_LocationChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;NavigationManager;false;remove_LocationChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;PersistentComponentState;false;RegisterOnPersisting;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;RenderFragment;false;BeginInvoke;(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;RenderFragment<>;false;BeginInvoke;(TValue,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Components;RenderHandle;false;Render;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections.Features;IConnectionCompleteFeature;true;OnCompleted;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections.Features;IConnectionHeartbeatFeature;true;OnHeartbeat;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections.Features;IStreamClosedFeature;true;OnClosed;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;ConnectionBuilderExtensions;false;Run;(Microsoft.AspNetCore.Connections.IConnectionBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;ConnectionBuilderExtensions;false;Use;(Microsoft.AspNetCore.Connections.IConnectionBuilder,System.Func,System.Threading.Tasks.Task>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;ConnectionDelegate;false;BeginInvoke;(Microsoft.AspNetCore.Connections.ConnectionContext,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;IConnectionBuilder;true;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;IMultiplexedConnectionBuilder;true;Use;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;MultiplexedConnectionDelegate;false;BeginInvoke;(Microsoft.AspNetCore.Connections.MultiplexedConnectionContext,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Connections;TlsConnectionCallbackOptions;false;set_OnConnection;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.CookiePolicy;CookiePolicyMiddleware;false;CookiePolicyMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.CookiePolicy;CookiePolicyMiddleware;false;CookiePolicyMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsMiddleware;false;CorsMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Cors.Infrastructure.ICorsService,Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsMiddleware;false;CorsMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Cors.Infrastructure.ICorsService,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsMiddleware;false;CorsMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Cors.Infrastructure.ICorsService,Microsoft.Extensions.Logging.ILoggerFactory,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsOptions;false;AddDefaultPolicy;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsOptions;false;AddPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsPolicy;false;set_IsOriginAllowed;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Cors.Infrastructure;CorsPolicyBuilder;false;SetIsOriginAllowed;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.DataProtection;DataProtectionBuilderExtensions;false;AddKeyEscrowSink;(Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.DataProtection;DataProtectionBuilderExtensions;false;AddKeyManagementOptions;(Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.DataProtection;DataProtectionProvider;false;Create;(System.IO.DirectoryInfo,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.DataProtection;DataProtectionProvider;false;Create;(System.IO.DirectoryInfo,System.Action,System.Security.Cryptography.X509Certificates.X509Certificate2);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics.HealthChecks;HealthCheckMiddleware;false;HealthCheckMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics.HealthChecks;HealthCheckOptions;false;set_Predicate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics.HealthChecks;HealthCheckOptions;false;set_ResponseWriter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;DeveloperExceptionPageMiddleware;false;DeveloperExceptionPageMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,System.Diagnostics.DiagnosticSource,System.Collections.Generic.IEnumerable);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;ExceptionHandlerMiddleware;false;ExceptionHandlerMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions,System.Diagnostics.DiagnosticListener);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;IDeveloperPageExceptionFilter;true;HandleExceptionAsync;(Microsoft.AspNetCore.Diagnostics.ErrorContext,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;StatusCodeContext;false;StatusCodeContext;(Microsoft.AspNetCore.Http.HttpContext,Microsoft.AspNetCore.Builder.StatusCodePagesOptions,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;StatusCodePagesMiddleware;false;StatusCodePagesMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Diagnostics;WelcomePageMiddleware;false;WelcomePageMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HostFiltering;HostFilteringMiddleware;false;HostFilteringMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Options.IOptionsMonitor);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting.Infrastructure;ISupportsConfigureWebHost;true;ConfigureWebHost;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting.Infrastructure;ISupportsConfigureWebHost;true;ConfigureWebHost;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting.Infrastructure;ISupportsStartup;true;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting.Infrastructure;ISupportsStartup;true;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting.Infrastructure;ISupportsStartup;true;UseStartup<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;DelegateStartup;false;DelegateStartup;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IStartupConfigureContainerFilter<>;true;ConfigureContainer;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IStartupConfigureServicesFilter;true;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IStartupFilter;true;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IWebHostBuilder;true;ConfigureAppConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IWebHostBuilder;true;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;IWebHostBuilder;true;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;KestrelServerOptionsSystemdExtensions;false;UseSystemd;(Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.Net.Security.ServerOptionsSelectionCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.Net.Security.ServerOptionsSelectionCallback,System.Object,System.TimeSpan);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.Security.Cryptography.X509Certificates.StoreName,System.String,System.Boolean,System.Security.Cryptography.X509Certificates.StoreLocation,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;ListenOptionsHttpsExtensions;false;UseHttps;(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions,System.String,System.String,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;Configure;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;Configure;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;ConfigureAppConfiguration;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;ConfigureLogging;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;ConfigureLogging;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;UseDefaultServiceProvider;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;UseDefaultServiceProvider;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderExtensions;false;UseStartup<>;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderHttpSysExtensions;false;UseHttpSys;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;ConfigureKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;ConfigureKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;UseKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;UseKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderQuicExtensions;false;UseQuic;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Hosting;WebHostBuilderSocketExtensions;false;UseSockets;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Connections;WebSocketOptions;false;set_SubProtocolSelector;(System.Func,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Features;FeatureReferences<>;false;Fetch<,>;(TFeature,TState,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Features;FeatureReferences<>;false;Fetch<>;(TFeature,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Features;IHttpResponseFeature;true;OnCompleted;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http.Features;IHttpResponseFeature;true;OnStarting;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;Endpoint;false;Endpoint;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Http.EndpointMetadataCollection,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;EndpointFilterDelegate;false;BeginInvoke;(Microsoft.AspNetCore.Http.EndpointFilterInvocationContext,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;EndpointFilterExtensions;false;AddEndpointFilter<>;(TBuilder,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;EndpointFilterExtensions;false;AddEndpointFilterFactory<>;(TBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;HttpResponse;true;OnCompleted;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;HttpResponse;true;OnCompleted;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;HttpResponse;true;OnStarting;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;HttpResponse;true;OnStarting;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;IEndpointFilter;true;InvokeAsync;(Microsoft.AspNetCore.Http.EndpointFilterInvocationContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;IMiddleware;true;InvokeAsync;(Microsoft.AspNetCore.Http.HttpContext,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;ProblemDetailsOptions;false;set_CustomizeProblemDetails;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;RequestDelegate;false;BeginInvoke;(Microsoft.AspNetCore.Http.HttpContext,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;RequestDelegateFactory;false;Create;(System.Reflection.MethodInfo,System.Func,Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;RequestDelegateFactory;false;Create;(System.Reflection.MethodInfo,System.Func,Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions,Microsoft.AspNetCore.Http.RequestDelegateMetadataResult);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;RequestDelegateResult;false;RequestDelegateResult;(Microsoft.AspNetCore.Http.RequestDelegate,System.Collections.Generic.IReadOnlyList);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;Results;false;Stream;(System.Func,System.String,System.String,System.Nullable,Microsoft.Net.Http.Headers.EntityTagHeaderValue);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Http;TypedResults;false;Stream;(System.Func,System.String,System.String,System.Nullable,Microsoft.Net.Http.Headers.EntityTagHeaderValue);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpOverrides;CertificateForwardingMiddleware;false;CertificateForwardingMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpOverrides;ForwardedHeadersMiddleware;false;ForwardedHeadersMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpOverrides;HttpMethodOverrideMiddleware;false;HttpMethodOverrideMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpsPolicy;HstsMiddleware;false;HstsMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpsPolicy;HstsMiddleware;false;HstsMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpsPolicy;HttpsRedirectionMiddleware;false;HttpsRedirectionMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Configuration.IConfiguration,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.HttpsPolicy;HttpsRedirectionMiddleware;false;HttpsRedirectionMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Configuration.IConfiguration,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Identity;IdentityCookieAuthenticationBuilderExtensions;false;AddIdentityCookies;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Identity;SecurityStampValidatorOptions;false;set_OnRefreshingPrincipal;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Localization;CustomRequestCultureProvider;false;CustomRequestCultureProvider;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Localization;RequestLocalizationMiddleware;false;RequestLocalizationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddAreaFolderApplicationModelConvention;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddAreaFolderRouteModelConvention;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddAreaPageApplicationModelConvention;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddAreaPageRouteModelConvention;(System.String,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddFolderApplicationModelConvention;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddFolderRouteModelConvention;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddPageApplicationModelConvention;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ApplicationModels;PageConventionCollection;false;AddPageRouteModelConvention;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;ActionExecutionDelegate;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;IAsyncActionFilter;true;OnActionExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext,Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;IAsyncPageFilter;true;OnPageHandlerExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext,Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;IAsyncResourceFilter;true;OnResourceExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext,Microsoft.AspNetCore.Mvc.Filters.ResourceExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;IAsyncResultFilter;true;OnResultExecutionAsync;(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext,Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;PageHandlerExecutionDelegate;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;ResourceExecutionDelegate;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Filters;ResultExecutionDelegate;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Formatters;InputFormatterContext;false;InputFormatterContext;(Microsoft.AspNetCore.Http.HttpContext,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Formatters;InputFormatterContext;false;InputFormatterContext;(Microsoft.AspNetCore.Http.HttpContext,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata,System.Func,System.Boolean);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Formatters;OutputFormatterWriteContext;false;OutputFormatterWriteContext;(Microsoft.AspNetCore.Http.HttpContext,System.Func,System.Type,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Formatters;OutputFormatterWriteContext;false;set_WriterFactory;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultMetadataDetails;false;set_BoundConstructorInvoker;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultMetadataDetails;false;set_PropertyGetter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultMetadataDetails;false;set_PropertySetter;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetAttemptedValueIsInvalidAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetMissingBindRequiredValueAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetMissingKeyOrValueAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetMissingRequestBodyRequiredValueAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetNonPropertyAttemptedValueIsInvalidAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetNonPropertyUnknownValueIsInvalidAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetNonPropertyValueMustBeANumberAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetUnknownValueIsInvalidAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetValueIsInvalidAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetValueMustBeANumberAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DefaultModelBindingMessageProvider;false;SetValueMustNotBeNullAccessor;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_Description;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_DisplayFormatStringProvider;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_DisplayName;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_EditFormatStringProvider;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_NullDisplayTextProvider;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;DisplayMetadata;false;set_Placeholder;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationEntry;false;ValidationEntry;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;BindingInfo;false;set_RequestPredicate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;EnumGroupAndName;false;EnumGroupAndName;(System.String,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelBindingContext;true;set_PropertyFilter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionaryExtensions;false;AddModelError<>;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,System.Linq.Expressions.Expression>,System.Exception,Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionaryExtensions;false;AddModelError<>;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionaryExtensions;false;Remove<>;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionaryExtensions;false;RemoveAll<>;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionaryExtensions;false;TryAddModelException<>;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary,System.Linq.Expressions.Expression>,System.Exception);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;HelperResult;false;HelperResult;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;RazorPageBase;false;DefineSection;(System.String,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;RazorPageBase;true;DefineSection;(System.String,Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;RazorPageFactoryResult;false;RazorPageFactoryResult;(Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;RenderAsyncDelegate;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Razor;TagHelperInitializer<>;false;TagHelperInitializer;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageBase;false;TryUpdateModelAsync;(System.Object,System.Type,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageBase;false;TryUpdateModelAsync<>;(TModel,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageBase;false;TryUpdateModelAsync<>;(TModel,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageModel;false;TryUpdateModelAsync;(System.Object,System.Type,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageModel;false;TryUpdateModelAsync<>;(TModel,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.RazorPages;PageModel;false;TryUpdateModelAsync<>;(TModel,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayExtensions;false;DisplayFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayExtensions;false;DisplayFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayExtensions;false;DisplayFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayExtensions;false;DisplayFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayExtensions;false;DisplayFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperDisplayNameExtensions;false;DisplayNameFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper>,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperEditorExtensions;false;EditorFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperEditorExtensions;false;EditorFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperEditorExtensions;false;EditorFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperEditorExtensions;false;EditorFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperEditorExtensions;false;EditorFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;CheckBoxFor<>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;HiddenFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;PasswordFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;RadioButtonFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;TextAreaFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;TextAreaFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;TextBoxFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;TextBoxFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperInputExtensions;false;TextBoxFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperLabelExtensions;false;LabelFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperLabelExtensions;false;LabelFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperLabelExtensions;false;LabelFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperSelectExtensions;false;DropDownListFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperSelectExtensions;false;DropDownListFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperSelectExtensions;false;DropDownListFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperSelectExtensions;false;ListBoxFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperValidationExtensions;false;ValidationMessageFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperValidationExtensions;false;ValidationMessageFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperValidationExtensions;false;ValidationMessageFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperValidationExtensions;false;ValidationMessageFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;HtmlHelperValueExtensions;false;ValueFor<,>;(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;CheckBoxFor;(System.Linq.Expressions.Expression>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;DisplayFor<>;(System.Linq.Expressions.Expression>,System.String,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;DisplayNameFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;DisplayNameForInnerType<,>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;DisplayTextFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;DropDownListFor<>;(System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;EditorFor<>;(System.Linq.Expressions.Expression>,System.String,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;HiddenFor<>;(System.Linq.Expressions.Expression>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;IdFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;LabelFor<>;(System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;ListBoxFor<>;(System.Linq.Expressions.Expression>,System.Collections.Generic.IEnumerable,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;NameFor<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;PasswordFor<>;(System.Linq.Expressions.Expression>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;RadioButtonFor<>;(System.Linq.Expressions.Expression>,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;TextAreaFor<>;(System.Linq.Expressions.Expression>,System.Int32,System.Int32,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;TextBoxFor<>;(System.Linq.Expressions.Expression>,System.String,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;ValidationMessageFor<>;(System.Linq.Expressions.Expression>,System.String,System.Object,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.Rendering;IHtmlHelper<>;true;ValueFor<>;(System.Linq.Expressions.Expression>,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;GetExpressionName<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;HtmlHelper<>;false;GetModelExplorer<>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;IModelExpressionProvider;true;CreateModelExpression<,>;(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExplorer;false;GetExplorerForExpression;(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExplorer;false;GetExplorerForExpression;(System.Type,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExplorer;false;GetExplorerForProperty;(System.String,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExplorer;false;ModelExplorer;(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider,Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer,Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ModelExpressionProvider;false;GetExpressionText<,>;(System.Linq.Expressions.Expression>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TryGetValueDelegate;false;BeginInvoke;(System.Object,System.String,System.Object,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataInfo;false;ViewDataInfo;(System.Object,System.Reflection.PropertyInfo,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc;ApiBehaviorOptions;false;set_InvalidModelStateResponseFactory;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc;ControllerBase;false;TryUpdateModelAsync;(System.Object,System.Type,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc;ControllerBase;false;TryUpdateModelAsync<>;(TModel,System.String,Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Mvc;ControllerBase;false;TryUpdateModelAsync<>;(TModel,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;false;AddBasePolicy;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;false;AddBasePolicy;(System.Action,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;false;AddPolicy;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;false;AddPolicy;(System.String,System.Action,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;SetCacheKeyPrefix;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;SetCacheKeyPrefix;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;VaryByValue;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;VaryByValue;(System.Func>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;With;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.OutputCaching;OutputCachePolicyBuilder;false;With;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptions;false;AddPolicy<>;(System.String,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptions;false;set_OnRejected;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptionsExtensions;false;AddConcurrencyLimiter;(Microsoft.AspNetCore.RateLimiting.RateLimiterOptions,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptionsExtensions;false;AddFixedWindowLimiter;(Microsoft.AspNetCore.RateLimiting.RateLimiterOptions,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptionsExtensions;false;AddSlidingWindowLimiter;(Microsoft.AspNetCore.RateLimiting.RateLimiterOptions,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.RateLimiting;RateLimiterOptionsExtensions;false;AddTokenBucketLimiter;(Microsoft.AspNetCore.RateLimiting.RateLimiterOptions,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperExecutionContext;false;Reinitialize;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagMode,System.Collections.Generic.IDictionary,System.String,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperExecutionContext;false;TagHelperExecutionContext;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagMode,System.Collections.Generic.IDictionary,System.String,System.Func,System.Action,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperExecutionContext;false;TagHelperExecutionContext;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagMode,System.Collections.Generic.IDictionary,System.String,System.Func,System.Action,System.Func);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperExecutionContext;false;TagHelperExecutionContext;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagMode,System.Collections.Generic.IDictionary,System.String,System.Func,System.Action,System.Func);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperScopeManager;false;Begin;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagMode,System.String,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperScopeManager;false;TagHelperScopeManager;(System.Action,System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.Runtime.TagHelpers;TagHelperScopeManager;false;TagHelperScopeManager;(System.Action,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Razor.TagHelpers;TagHelperOutput;false;TagHelperOutput;(System.String,Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList,System.Func>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.ResponseCaching;ResponseCachingMiddleware;false;ResponseCachingMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.ObjectPool.ObjectPoolProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.ResponseCompression;ResponseCompressionMiddleware;false;ResponseCompressionMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Rewrite;RewriteMiddleware;false;RewriteMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Rewrite;RewriteOptionsExtensions;false;Add;(Microsoft.AspNetCore.Rewrite.RewriteOptions,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapDelete;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapDelete;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapGet;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapGet;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewareDelete;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewareGet;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewarePost;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewarePut;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewareRoute;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapMiddlewareVerb;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.String,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapPost;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapPost;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapPut;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapPut;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapRoute;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapVerb;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RequestDelegateRouteBuilderExtensions;false;MapVerb;(Microsoft.AspNetCore.Routing.IRouteBuilder,System.String,System.String,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RouteContext;false;set_Handler;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RouteEndpoint;false;RouteEndpoint;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Routing.Patterns.RoutePattern,System.Int32,Microsoft.AspNetCore.Http.EndpointMetadataCollection,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RouteEndpointBuilder;false;RouteEndpointBuilder;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Routing.Patterns.RoutePattern,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Routing;RouteHandler;false;RouteHandler;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.IISIntegration;IISMiddleware;false;IISMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions,System.String,Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider,Microsoft.Extensions.Hosting.IHostApplicationLifetime);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.IISIntegration;IISMiddleware;false;IISMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions,System.String,System.Boolean,Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider,Microsoft.Extensions.Hosting.IHostApplicationLifetime);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ConfigureEndpointDefaults;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ConfigureHttpsDefaults;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;Listen;(System.Net.EndPoint,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;Listen;(System.Net.IPAddress,System.Int32,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;Listen;(System.Net.IPEndPoint,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenAnyIP;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenHandle;(System.UInt64,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenLocalhost;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenUnixSocket;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;set_RequestHeaderEncodingSelector;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;set_ResponseHeaderEncodingSelector;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Https;HttpsConnectionAdapterOptions;false;set_ClientCertificateValidation;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Https;HttpsConnectionAdapterOptions;false;set_OnAuthenticate;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Https;HttpsConnectionAdapterOptions;false;set_ServerCertificateSelector;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Https;TlsHandshakeCallbackOptions;false;set_OnConnection;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets;SocketTransportOptions;false;set_CreateBoundListenSocket;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;AnyIPEndpoint;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;Endpoint;(System.Net.IPAddress,System.Int32,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;Endpoint;(System.Net.IPEndPoint,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;Endpoint;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;HandleEndpoint;(System.UInt64,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;LocalhostEndpoint;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Server.Kestrel;KestrelConfigurationLoader;false;UnixSocketEndpoint;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Session;DistributedSession;false;DistributedSession;(Microsoft.Extensions.Caching.Distributed.IDistributedCache,System.String,System.TimeSpan,System.TimeSpan,System.Func,Microsoft.Extensions.Logging.ILoggerFactory,System.Boolean);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Session;ISessionStore;true;Create;(System.String,System.TimeSpan,System.TimeSpan,System.Func,System.Boolean);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.Session;SessionMiddleware;false;SessionMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.AspNetCore.DataProtection.IDataProtectionProvider,Microsoft.AspNetCore.Session.ISessionStore,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.SignalR;IHubFilter;true;InvokeMethodAsync;(Microsoft.AspNetCore.SignalR.HubInvocationContext,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.SignalR;IHubFilter;true;OnConnectedAsync;(Microsoft.AspNetCore.SignalR.HubLifetimeContext,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.SignalR;IHubFilter;true;OnDisconnectedAsync;(Microsoft.AspNetCore.SignalR.HubLifetimeContext,System.Exception,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.StaticFiles;DefaultFilesMiddleware;false;DefaultFilesMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.StaticFiles;DirectoryBrowserMiddleware;false;DirectoryBrowserMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.StaticFiles;DirectoryBrowserMiddleware;false;DirectoryBrowserMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,System.Text.Encodings.Web.HtmlEncoder,Microsoft.Extensions.Options.IOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.StaticFiles;StaticFileMiddleware;false;StaticFileMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.WebSockets;WebSocketMiddleware;false;WebSocketMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.WebSockets;WebSocketsDependencyInjectionExtensions;false;AddWebSockets;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;FileBufferingReadStream;(System.IO.Stream,System.Int32,System.Nullable,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;FileBufferingReadStream;(System.IO.Stream,System.Int32,System.Nullable,System.Func,System.Buffers.ArrayPool);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore.WebUtilities;FileBufferingWriteStream;false;FileBufferingWriteStream;(System.Int32,System.Nullable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;Start;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;Start;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;Start;(System.String,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;Start;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;StartWith;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.AspNetCore;WebHost;false;StartWith;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;BinaryOperation;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Linq.Expressions.ExpressionType,System.Type,System.Collections.Generic.IEnumerable);;Argument[2];ReturnValue;taint;df-generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;BinaryOperation;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Linq.Expressions.ExpressionType,System.Type,System.Collections.Generic.IEnumerable);;Argument[3].Element;ReturnValue;taint;df-generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;Convert;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Type,System.Type);;Argument[2];ReturnValue;taint;df-generated | @@ -46,6 +629,8 @@ summary | Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;set_AbsoluteExpirationRelativeToNow;(System.Nullable);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;set_SlidingExpiration;(System.Nullable);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Primitives.IChangeToken);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.DateTimeOffset);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[1];Argument[0];taint;df-generated | @@ -61,6 +646,8 @@ summary | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[1];Argument[0];taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[1];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;GetOrCreate<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;GetOrCreateAsync<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem);;Argument[2];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);;Argument[2];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem,Microsoft.Extensions.Primitives.IChangeToken);;Argument[2];ReturnValue;taint;df-generated | @@ -69,6 +656,8 @@ summary | Microsoft.Extensions.Caching.Memory;MemoryCache;false;CreateEntry;(System.Object);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCache;false;MemoryCache;(Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Primitives.IChangeToken);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[1];Argument[0];taint;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[1];ReturnValue;taint;df-generated | @@ -91,8 +680,11 @@ summary | Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;get_SizeLimit;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;get_Value;();;Argument[this];ReturnValue;value;df-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;set_SizeLimit;(System.Nullable);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.Caching.Memory;PostEvictionCallbackRegistration;false;set_EvictionCallback;(Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Caching.Memory;PostEvictionDelegate;false;BeginInvoke;(System.Object,System.Object,Microsoft.Extensions.Caching.Memory.EvictionReason,System.Object,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration.EnvironmentVariables;EnvironmentVariablesConfigurationProvider;false;EnvironmentVariablesConfigurationProvider;(System.String);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration.EnvironmentVariables;EnvironmentVariablesConfigurationProvider;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration.KeyPerFile;KeyPerFileConfigurationSource;false;set_IgnoreCondition;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration.Memory;MemoryConfigurationProvider;false;MemoryConfigurationProvider;(Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration.Memory;MemoryConfigurationSource;false;Build;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration.UserSecrets;PathHelper;false;GetSecretsPathFromSecretsId;(System.String);;Argument[0];ReturnValue;taint;df-generated | @@ -102,10 +694,14 @@ summary | Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;GetChildKeys;(System.Collections.Generic.IEnumerable,System.String);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;GetReloadToken;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;TryGet;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;false;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;false;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[]);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;false;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[],System.Collections.Generic.IDictionary);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;Bind;(Microsoft.Extensions.Configuration.IConfiguration,System.Object,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get<>;(Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get<>;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);;Argument[3];ReturnValue;taint;df-generated | @@ -113,6 +709,7 @@ summary | Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue<>;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue<>;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);;Argument[2];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBuilder;false;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);;Argument[this];ReturnValue;value;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationExtensions;false;Add<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetConnectionString;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetRequiredSection;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetRequiredSection;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[1];ReturnValue;taint;df-generated | @@ -139,6 +736,7 @@ summary | Microsoft.Extensions.Configuration;ConfigurationRoot;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;false;get_Providers;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationRootExtensions;false;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationRootExtensions;false;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;false;ConfigurationSection;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.String);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;false;ConfigurationSection;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.String);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -146,19 +744,25 @@ summary | Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Path;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;false;SetBasePath;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;FileConfigurationExtensions;false;SetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;false;SetFileProvider;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;FileConfigurationSource;false;set_OnLoadException;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;KeyPerFileConfigurationBuilderExtensions;false;AddKeyPerFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;MemoryConfigurationBuilderExtensions;false;AddInMemoryCollection;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;MemoryConfigurationBuilderExtensions;false;AddInMemoryCollection;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Reflection.Assembly);;Argument[0];ReturnValue;taint;df-generated | @@ -170,6 +774,7 @@ summary | Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | @@ -189,51 +794,234 @@ summary | Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAdd;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[0].Element;taint;df-generated | | Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddEnumerable;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;df-generated | | Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddEnumerable;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[0].Element;taint;df-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddScoped<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddTransient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ActivatorUtilities;false;GetServiceOrCreateInstance;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ActivatorUtilities;false;GetServiceOrCreateInstance<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;AntiforgeryServiceCollectionExtensions;false;AddAntiforgery;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;AsyncServiceScope;false;AsyncServiceScope;(Microsoft.Extensions.DependencyInjection.IServiceScope);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.DependencyInjection;AsyncServiceScope;false;get_ServiceProvider;();;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;AuthenticationCoreServiceCollectionExtensions;false;AddAuthenticationCore;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;AuthenticationServiceCollectionExtensions;false;AddAuthentication;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;AuthorizationServiceCollectionExtensions;false;AddAuthorizationCore;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CertificateForwardingServiceExtensions;false;AddCertificateForwarding;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ComponentServiceCollectionExtensions;false;AddServerSideBlazor;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ConnectionsDependencyInjectionExtensions;false;AddConnections;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CookieExtensions;false;AddCookie;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CookieExtensions;false;AddCookie;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CookieExtensions;false;AddCookie;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.String,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CookiePolicyServiceCollectionExtensions;false;AddCookiePolicy;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CookiePolicyServiceCollectionExtensions;false;AddCookiePolicy<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;CorsServiceCollectionExtensions;false;AddCors;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;DataProtectionServiceCollectionExtensions;false;AddDataProtection;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;DefaultServiceProviderFactory;false;CreateBuilder;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;DefaultServiceProviderFactory;false;DefaultServiceProviderFactory;(Microsoft.Extensions.DependencyInjection.ServiceProviderOptions);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.DependencyInjection;EncoderServiceCollectionExtensions;false;AddWebEncoders;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ExceptionHandlerServiceCollectionExtensions;false;AddExceptionHandler;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ExceptionHandlerServiceCollectionExtensions;false;AddExceptionHandler<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddAsyncCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func>,System.Collections.Generic.IEnumerable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddAsyncCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func>,System.Collections.Generic.IEnumerable,System.Nullable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddAsyncCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func>,System.Collections.Generic.IEnumerable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddAsyncCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func>,System.Collections.Generic.IEnumerable,System.Nullable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func,System.Collections.Generic.IEnumerable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func,System.Collections.Generic.IEnumerable,System.Nullable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func,System.Collections.Generic.IEnumerable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HealthChecksBuilderDelegateExtensions;false;AddCheck;(Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder,System.String,System.Func,System.Collections.Generic.IEnumerable,System.Nullable);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<,>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;SetHandlerLifetime;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.TimeSpan);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpJsonServiceExtensions;false;ConfigureHttpJsonOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpLoggingServicesExtensions;false;AddHttpLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;HttpLoggingServicesExtensions;false;AddW3CLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;AddIdentity<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;AddIdentityCore<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;ConfigureApplicationCookie;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;ConfigureExternalCookie;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;JsonProtocolDependencyInjectionExtensions;false;AddJsonProtocol<>;(TBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;LocalizationServiceCollectionExtensions;false;AddLocalization;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;false;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;false;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;AddFormatterMappings;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;AddJsonOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;AddMvcOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;ConfigureApiBehaviorOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;ConfigureApplicationPartManager;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;AddAuthorization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;AddFormatterMappings;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;AddJsonOptions;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;AddMvcOptions;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;ConfigureApiBehaviorOptions;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreMvcCoreBuilderExtensions;false;ConfigureApplicationPartManager;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCoreServiceCollectionExtensions;false;AddMvcCore;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCorsMvcCoreBuilderExtensions;false;AddCors;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcCorsMvcCoreBuilderExtensions;false;ConfigureCors;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcDataAnnotationsMvcBuilderExtensions;false;AddDataAnnotationsLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcDataAnnotationsMvcCoreBuilderExtensions;false;AddDataAnnotationsLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddViewLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcBuilderExtensions;false;AddViewLocalization;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddMvcLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddViewLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcLocalizationMvcCoreBuilderExtensions;false;AddViewLocalization;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorMvcBuilderExtensions;false;AddRazorOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorMvcBuilderExtensions;false;InitializeTagHelper<>;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorMvcCoreBuilderExtensions;false;AddRazorViewEngine;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorMvcCoreBuilderExtensions;false;InitializeTagHelper<>;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorPagesMvcBuilderExtensions;false;AddRazorPagesOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcRazorPagesMvcCoreBuilderExtensions;false;AddRazorPages;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcServiceCollectionExtensions;false;AddControllers;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcServiceCollectionExtensions;false;AddControllersWithViews;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcServiceCollectionExtensions;false;AddMvc;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcServiceCollectionExtensions;false;AddRazorPages;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcViewFeaturesMvcBuilderExtensions;false;AddCookieTempDataProvider;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcViewFeaturesMvcBuilderExtensions;false;AddViewOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcViewFeaturesMvcCoreBuilderExtensions;false;AddCookieTempDataProvider;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcViewFeaturesMvcCoreBuilderExtensions;false;AddViews;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcViewFeaturesMvcCoreBuilderExtensions;false;ConfigureViews;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcBuilderExtensions;false;AddXmlDataContractSerializerFormatters;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcBuilderExtensions;false;AddXmlOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcBuilderExtensions;false;AddXmlSerializerFormatters;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcCoreBuilderExtensions;false;AddXmlDataContractSerializerFormatters;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcCoreBuilderExtensions;false;AddXmlOptions;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;MvcXmlMvcCoreBuilderExtensions;false;AddXmlSerializerFormatters;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OAuthExtensions;false;AddOAuth;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OAuthExtensions;false;AddOAuth;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.String,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OAuthExtensions;false;AddOAuth<,>;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OAuthExtensions;false;AddOAuth<,>;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.String,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ObjectFactory;false;BeginInvoke;(System.IServiceProvider,System.Object[],System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;Bind<>;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;Bind<>;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;BindConfiguration<>;(Microsoft.Extensions.Options.OptionsBuilder,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderDataAnnotationsExtensions;false;ValidateDataAnnotations<>;(Microsoft.Extensions.Options.OptionsBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderExtensions;false;ValidateOnStart<>;(Microsoft.Extensions.Options.OptionsBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;AddOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureAll<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;PostConfigure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;PostConfigure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;PostConfigureAll<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OutputCacheConventionBuilderExtensions;false;CacheOutput<>;(TBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OutputCacheConventionBuilderExtensions;false;CacheOutput<>;(TBuilder,System.Action,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;OutputCacheServiceCollectionExtensions;false;AddOutputCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;PageConventionCollectionExtensions;false;ConfigureFilter;(Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;PolicyServiceCollectionExtensions;false;AddAuthorization;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ProblemDetailsServiceCollectionExtensions;false;AddProblemDetails;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;RequestDecompressionServiceExtensions;false;AddRequestDecompression;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;RequestLocalizationServiceCollectionExtensions;false;AddRequestLocalization;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;RequestLocalizationServiceCollectionExtensions;false;AddRequestLocalization<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ResponseCachingServicesExtensions;false;AddResponseCaching;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;RoutingServiceCollectionExtensions;false;AddRouting;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServerSideBlazorBuilderExtensions;false;AddCircuitOptions;(Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServerSideBlazorBuilderExtensions;false;AddHubOptions;(Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;false;AddHostedService<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;false;AddHostedService<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,TService);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Describe;(System.Type,System.Func,Microsoft.Extensions.DependencyInjection.ServiceLifetime);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Scoped;(System.Type,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Scoped<,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Scoped<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;ServiceDescriptor;(System.Type,System.Func,Microsoft.Extensions.DependencyInjection.ServiceLifetime);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Singleton;(System.Type,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Singleton<,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Singleton<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Transient;(System.Type,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Transient<,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Transient<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetRequiredService;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetRequiredService<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetService<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetServices;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetServices<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.DependencyInjection;SessionServiceCollectionExtensions;false;AddSession;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;SignalRDependencyInjectionExtensions;false;AddHubOptions<>;(Microsoft.AspNetCore.SignalR.ISignalRServerBuilder,System.Action>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;SignalRDependencyInjectionExtensions;false;AddSignalR;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;TagHelperServicesExtensions;false;AddCacheTagHelperLimits;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.DependencyInjection;TagHelperServicesExtensions;false;AddCacheTagHelperLimits;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckPublisherOptions;false;set_Predicate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckRegistration;false;HealthCheckRegistration;(System.String,System.Func,System.Nullable,System.Collections.Generic.IEnumerable);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckRegistration;false;HealthCheckRegistration;(System.String,System.Func,System.Nullable,System.Collections.Generic.IEnumerable,System.Nullable);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckRegistration;false;set_Factory;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckService;true;CheckHealthAsync;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;CompositeDirectoryContents;(System.Collections.Generic.IList,System.String);;Argument[0].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;CompositeDirectoryContents;(System.Collections.Generic.IList,System.String);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.FileProviders.Internal;PhysicalDirectoryContents;false;PhysicalDirectoryContents;(System.String,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);;Argument[0];Argument[this];taint;df-generated | @@ -258,6 +1046,7 @@ summary | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextLinear;false;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged+FrameData;false;get_Stem;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;false;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal;IPatternContext;true;Declare;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal;MatcherContext;false;MatcherContext;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,System.StringComparison);;Argument[2];Argument[this];taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;EnumerateFileSystemInfos;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;GetDirectory;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -271,12 +1060,35 @@ summary | Microsoft.Extensions.Hosting.Internal;ApplicationLifetime;false;get_ApplicationStopping;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Hosting;BackgroundService;true;StartAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Hosting;BackgroundService;true;get_ExecuteTask;();;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Hosting;GenericHostBuilderExtensions;false;ConfigureWebHostDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;GenericHostBuilderExtensions;false;ConfigureWebHostDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;GenericHostBuilderExtensions;false;ConfigureWebHostDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostApplicationBuilder;false;ConfigureContainer<>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);;Argument[this];ReturnValue;value;df-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureAppConfiguration;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureContainer<>;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.String[]);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;RunConsoleAsync;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseContentRoot;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseEnvironment;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureAppConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureContainer<>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureHostConfiguration;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureServices;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Hosting;IHostBuilder;true;UseServiceProviderFactory<>;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[1];Argument[this];taint;df-generated | @@ -285,8 +1097,12 @@ summary | Microsoft.Extensions.Http.Logging;LoggingScopeHttpMessageHandler;false;LoggingScopeHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Http;HttpClientFactoryOptions;false;get_HandlerLifetime;();;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Http;HttpClientFactoryOptions;false;set_HandlerLifetime;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.Http;HttpClientFactoryOptions;false;set_ShouldRedactHeaderValue;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Http;HttpMessageHandlerBuilder;false;CreateHandlerPipeline;(System.Net.Http.HttpMessageHandler,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Http;HttpMessageHandlerBuilder;false;CreateHandlerPipeline;(System.Net.Http.HttpMessageHandler,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;df-generated | +| Microsoft.Extensions.Http;IHttpMessageHandlerBuilderFilter;true;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Localization;IResourceNamesCache;true;GetOrAdd;(System.String,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging.Abstractions;LogEntry<>;false;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;ConsoleLoggerProvider;(Microsoft.Extensions.Options.IOptionsMonitor,System.Collections.Generic.IEnumerable);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;CreateLogger;(System.String);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;CreateLogger;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -296,29 +1112,55 @@ summary | Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;CreateLogger;(System.String);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;EventLogLoggerProvider;(Microsoft.Extensions.Logging.EventLog.EventLogSettings);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;SetScopeProvider;(Microsoft.Extensions.Logging.IExternalScopeProvider);;Argument[0];Argument[this];taint;df-generated | +| Microsoft.Extensions.Logging.EventLog;EventLogSettings;false;set_Filter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging.EventSource;EventSourceLoggerProvider;false;CreateLogger;(System.String);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging.EventSource;EventSourceLoggerProvider;false;EventSourceLoggerProvider;(Microsoft.Extensions.Logging.EventSource.LoggingEventSource);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;TraceSourceLoggerProvider;(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;TraceSourceLoggerProvider;(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsoleFormatter<,>;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsoleFormatter<,>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;false;AddDebug;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.EventLog.EventLogSettings);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;EventSourceLoggerFactoryExtensions;false;AddEventSourceLogger;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;IExternalScopeProvider;true;ForEachScope<>;(System.Action,TState);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;ILogger;true;Log<>;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;Logger<>;false;BeginScope<>;(TState);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggerExtensions;false;BeginScope;(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[]);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggerExternalScopeProvider;false;Push;(System.Object);;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;LoggerFactory;false;Create;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Logging;LoggerFilterRule;false;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;AddConfiguration;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;AddProvider;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.ILoggerProvider);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;ClearProviders;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;Configure;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;SetMinimumLevel;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Diagnostics.SourceSwitch);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[0];ReturnValue;taint;df-generated | @@ -326,13 +1168,65 @@ summary | Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Diagnostics.TraceListener);;Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Options;ConfigurationChangeTokenSource<>;false;ConfigurationChangeTokenSource;(System.String,Microsoft.Extensions.Configuration.IConfiguration);;Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigurationChangeTokenSource<>;false;GetChangeToken;();;Argument[this];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<,,,,,>;false;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<,,,,>;false;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<,,,>;false;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<,,>;false;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<,>;false;ConfigureNamedOptions;(System.String,TDep,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureNamedOptions<>;false;ConfigureNamedOptions;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ConfigureOptions<>;false;ConfigureOptions;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;IOptionsMonitor<>;true;OnChange;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;IOptionsMonitorCache<>;true;GetOrAdd;(System.String,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;NamedConfigureFromConfigurationOptions<>;false;NamedConfigureFromConfigurationOptions;(System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure<,,,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure<,,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure<,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure<,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Configure<>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure<,,,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure<,,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure<,,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure<,>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;PostConfigure<>;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,,,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,,,>;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,,>;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,,>;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<,>;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;OptionsBuilder<>;false;Validate<>;(System.Func,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[0].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[1].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[2].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Options;OptionsManager<>;false;OptionsManager;(Microsoft.Extensions.Options.IOptionsFactory);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;OptionsMonitor<>;false;OptionsMonitor;(Microsoft.Extensions.Options.IOptionsFactory,System.Collections.Generic.IEnumerable>,Microsoft.Extensions.Options.IOptionsMonitorCache);;Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;OptionsMonitor<>;false;OptionsMonitor;(Microsoft.Extensions.Options.IOptionsFactory,System.Collections.Generic.IEnumerable>,Microsoft.Extensions.Options.IOptionsMonitorCache);;Argument[2];Argument[this];taint;df-generated | +| Microsoft.Extensions.Options;OptionsMonitorExtensions;false;OnChange<>;(Microsoft.Extensions.Options.IOptionsMonitor,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<,,,,,>;false;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<,,,,>;false;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<,,,>;false;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<,,>;false;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<,>;false;PostConfigureOptions;(System.String,TDep,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;PostConfigureOptions<>;false;PostConfigureOptions;(System.String,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<,,,,,>;false;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<,,,,>;false;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<,,,>;false;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<,,>;false;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<,>;false;ValidateOptions;(System.String,TDep,System.Func,System.String);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Options;ValidateOptions<>;false;ValidateOptions;(System.String,System.Func,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Primitives;ChangeToken;false;OnChange;(System.Func,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Primitives;ChangeToken;false;OnChange;(System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Primitives;ChangeToken;false;OnChange<>;(System.Func,System.Action,TState);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Microsoft.Extensions.Primitives;ChangeToken;false;OnChange<>;(System.Func,System.Action,TState);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Primitives;Extensions;false;Append;(System.Text.StringBuilder,Microsoft.Extensions.Primitives.StringSegment);;Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Primitives;IChangeToken;true;RegisterChangeCallback;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Primitives;StringSegment;false;Split;(System.Char[]);;Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.Primitives;StringSegment;false;Split;(System.Char[]);;Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Primitives;StringTokenizer+Enumerator;false;Enumerator;(Microsoft.Extensions.Primitives.StringTokenizer);;Argument[0].Element;Argument[this];taint;df-generated | @@ -412,6 +1306,8 @@ summary | Newtonsoft.Json.Linq;JArray;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element;value;manual | | Newtonsoft.Json.Linq;JConstructor;false;get_Item;(System.Object);;Argument[this].Element;ReturnValue;value;manual | | Newtonsoft.Json.Linq;JConstructor;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element;value;manual | +| Newtonsoft.Json.Linq;JContainer;false;add_AddingNew;(System.ComponentModel.AddingNewEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Linq;JContainer;false;remove_AddingNew;(System.ComponentModel.AddingNewEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Newtonsoft.Json.Linq;JContainer;true;Add;(System.Object);;Argument[0];Argument[this].Element;value;manual | | Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -433,6 +1329,27 @@ summary | Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String,System.Boolean);;Argument[this];ReturnValue;taint;manual | | Newtonsoft.Json.Linq;JToken;false;ToString;();;Argument[this];ReturnValue;taint;manual | | Newtonsoft.Json.Linq;JToken;false;ToString;(Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonConverter[]);;Argument[this];ReturnValue;taint;manual | +| Newtonsoft.Json.Schema;Extensions;false;Validate;(Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Schema.ValidationEventHandler);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Schema;ValidationEventHandler;false;BeginInvoke;(System.Object,Newtonsoft.Json.Schema.ValidationEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;ExtensionDataGetter;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;ExtensionDataSetter;false;BeginInvoke;(System.Object,System.String,System.Object,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonArrayContract;false;set_OverrideCreator;(Newtonsoft.Json.Serialization.ObjectConstructor);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonContract;false;set_DefaultCreator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonDictionaryContract;false;set_DictionaryKeyResolver;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonDictionaryContract;false;set_OverrideCreator;(Newtonsoft.Json.Serialization.ObjectConstructor);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonDynamicContract;false;set_PropertyNameResolver;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonISerializableContract;false;set_ISerializableCreator;(Newtonsoft.Json.Serialization.ObjectConstructor);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonObjectContract;false;set_ExtensionDataGetter;(Newtonsoft.Json.Serialization.ExtensionDataGetter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonObjectContract;false;set_ExtensionDataNameResolver;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonObjectContract;false;set_ExtensionDataSetter;(Newtonsoft.Json.Serialization.ExtensionDataSetter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonObjectContract;false;set_OverrideCreator;(Newtonsoft.Json.Serialization.ObjectConstructor);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonProperty;false;set_GetIsSpecified;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonProperty;false;set_SetIsSpecified;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonProperty;false;set_ShouldDeserialize;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;JsonProperty;false;set_ShouldSerialize;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;ObjectConstructor<>;false;BeginInvoke;(System.Object[],System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;SerializationCallback;false;BeginInvoke;(System.Object,System.Runtime.Serialization.StreamingContext,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json.Serialization;SerializationErrorCallback;false;BeginInvoke;(System.Object,System.Runtime.Serialization.StreamingContext,Newtonsoft.Json.Serialization.ErrorContext,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Newtonsoft.Json;JsonConvert;false;DeserializeAnonymousType<>;(System.String,T);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonConvert;false;DeserializeAnonymousType<>;(System.String,T,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonConvert;false;DeserializeObject;(System.String);;Argument[0];ReturnValue;taint;manual | @@ -492,6 +1409,7 @@ summary | Newtonsoft.Json;JsonConvert;false;ToString;(System.UInt32);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonConvert;false;ToString;(System.UInt64);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonConvert;false;ToString;(System.Uri);;Argument[0];ReturnValue;taint;manual | +| Newtonsoft.Json;JsonConvert;false;set_DefaultSettings;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Newtonsoft.Json;JsonSerializer;false;Deserialize;(Newtonsoft.Json.JsonReader);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonSerializer;false;Deserialize;(Newtonsoft.Json.JsonReader,System.Type);;Argument[0];ReturnValue;taint;manual | | Newtonsoft.Json;JsonSerializer;false;Deserialize;(System.IO.TextReader,System.Type);;Argument[0];ReturnValue;taint;manual | @@ -499,6 +1417,12 @@ summary | Newtonsoft.Json;JsonSerializer;false;Serialize;(Newtonsoft.Json.JsonWriter,System.Object,System.Type);;Argument[1];Argument[0];taint;manual | | Newtonsoft.Json;JsonSerializer;false;Serialize;(System.IO.TextWriter,System.Object);;Argument[1];Argument[0];taint;manual | | Newtonsoft.Json;JsonSerializer;false;Serialize;(System.IO.TextWriter,System.Object,System.Type);;Argument[1];Argument[0];taint;manual | +| Newtonsoft.Json;JsonSerializer;false;add_Error;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json;JsonSerializer;false;remove_Error;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json;JsonSerializerSettings;false;set_Error;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json;JsonSerializerSettings;false;set_ReferenceResolverProvider;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json;JsonValidatingReader;false;add_ValidationEventHandler;(Newtonsoft.Json.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| Newtonsoft.Json;JsonValidatingReader;false;remove_ValidationEventHandler;(Newtonsoft.Json.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Buffers;ArrayBufferWriter<>;false;GetMemory;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;ArrayBufferWriter<>;false;get_WrittenMemory;();;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;BuffersExtensions;false;PositionOf<>;(System.Buffers.ReadOnlySequence,T);;Argument[0];ReturnValue;taint;df-generated | @@ -538,6 +1462,7 @@ summary | System.Buffers;ReadOnlySequence<>;false;get_End;();;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;ReadOnlySequence<>;false;get_First;();;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;ReadOnlySequence<>;false;get_Start;();;Argument[this];ReturnValue;taint;df-generated | +| System.Buffers;ReadOnlySpanAction<,>;false;BeginInvoke;(System.ReadOnlySpan,TArg,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Buffers;SequenceReader<>;false;SequenceReader;(System.Buffers.ReadOnlySequence);;Argument[0];Argument[this];taint;df-generated | | System.Buffers;SequenceReader<>;false;TryReadExact;(System.Int32,System.Buffers.ReadOnlySequence);;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;SequenceReader<>;false;TryReadTo;(System.Buffers.ReadOnlySequence,System.ReadOnlySpan,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | @@ -546,6 +1471,7 @@ summary | System.Buffers;SequenceReader<>;false;TryReadToAny;(System.Buffers.ReadOnlySequence,System.ReadOnlySpan,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;SequenceReader<>;false;get_Position;();;Argument[this];ReturnValue;taint;df-generated | | System.Buffers;SequenceReader<>;false;get_UnreadSequence;();;Argument[this];ReturnValue;taint;df-generated | +| System.Buffers;SpanAction<,>;false;BeginInvoke;(System.Span,TArg,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.CodeDom.Compiler;GeneratedCodeAttribute;false;GeneratedCodeAttribute;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;GeneratedCodeAttribute;false;GeneratedCodeAttribute;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System.CodeDom.Compiler;GeneratedCodeAttribute;false;get_Tool;();;Argument[this];ReturnValue;taint;df-generated | @@ -573,6 +1499,11 @@ summary | System.Collections.Concurrent;ConcurrentBag<>;false;TryTake;(T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;AddOrUpdate;(TKey,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;AddOrUpdate;(TKey,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;AddOrUpdate;(TKey,TValue,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;AddOrUpdate<>;(TKey,System.Func,System.Func,TArg);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;AddOrUpdate<>;(TKey,System.Func,System.Func,TArg);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | @@ -580,7 +1511,9 @@ summary | System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Int32,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Int32,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd;(TKey,TValue);;Argument[1];ReturnValue;taint;df-generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd<>;(TKey,System.Func,TArg);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Comparer;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | @@ -607,6 +1540,7 @@ summary | System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[0].Element;Argument[2];taint;df-generated | | System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[1];Argument[0].Element;taint;df-generated | | System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[2];Argument[0].Element;taint;df-generated | +| System.Collections.Generic;Comparer<>;false;Create;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Entry;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Key;();;Argument[this];ReturnValue;taint;df-generated | @@ -640,6 +1574,7 @@ summary | System.Collections.Generic;HashSet<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.HashSet<>+Enumerator.Current];value;manual | | System.Collections.Generic;HashSet<>;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Collections.Generic;HashSet<>;false;HashSet;(System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[this];taint;df-generated | +| System.Collections.Generic;HashSet<>;false;RemoveWhere;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;HashSet<>;false;TryGetValue;(T,T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;HashSet<>;false;get_Comparer;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;ICollection<>;true;Add;(T);;Argument[0];Argument[this].Element;value;manual | @@ -708,18 +1643,33 @@ summary | System.Collections.Generic;List<>+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;List<>;false;AddRange;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this].Element;value;manual | | System.Collections.Generic;List<>;false;AsReadOnly;();;Argument[this].Element;ReturnValue.Element;value;manual | +| System.Collections.Generic;List<>;false;ConvertAll<>;(System.Converter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List<>;false;CopyTo;(T[]);;Argument[this];Argument[0].Element;taint;df-generated | +| System.Collections.Generic;List<>;false;Exists;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;Find;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List<>;false;Find;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;Find;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Generic;List<>;false;FindAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List<>;false;FindAll;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;FindAll;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Generic;List<>;false;FindIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;FindIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;FindIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;FindLast;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List<>;false;FindLast;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;FindLast;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Generic;List<>;false;FindLastIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;FindLastIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;FindLastIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;ForEach;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List<>;false;ForEach;(System.Action);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.List<>+Enumerator.Current];value;manual | | System.Collections.Generic;List<>;false;GetRange;(System.Int32,System.Int32);;Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Generic;List<>;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[this].Element;value;manual | | System.Collections.Generic;List<>;false;List;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this];taint;df-generated | +| System.Collections.Generic;List<>;false;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;Sort;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Generic;List<>;false;TrueForAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List<>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection;false;GetEnumerator;();;Argument[this];ReturnValue;taint;df-generated | @@ -785,6 +1735,7 @@ summary | System.Collections.Generic;SortedSet<>;false;GetViewBetween;(T,T);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Generic;SortedSet<>;false;GetViewBetween;(T,T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;SortedSet<>;false;IntersectWith;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this];taint;df-generated | +| System.Collections.Generic;SortedSet<>;false;RemoveWhere;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;SortedSet<>;false;Reverse;();;Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Generic;SortedSet<>;false;SortedSet;(System.Collections.Generic.IComparer);;Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;SortedSet<>;false;SortedSet;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | @@ -809,6 +1760,7 @@ summary | System.Collections.Immutable;IImmutableList<>;true;Add;(T);;Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;IImmutableList<>;true;AddRange;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this].Element;value;manual | | System.Collections.Immutable;IImmutableList<>;true;Clear;();;Argument[this].WithoutElement;ReturnValue;value;manual | +| System.Collections.Immutable;IImmutableList<>;true;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;IImmutableQueue<>;true;Clear;();;Argument[this].WithoutElement;ReturnValue;value;manual | | System.Collections.Immutable;IImmutableSet<>;true;Add;(T);;Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;IImmutableSet<>;true;Clear;();;Argument[this].WithoutElement;ReturnValue;value;manual | @@ -825,6 +1777,10 @@ summary | System.Collections.Immutable;ImmutableArray;false;Create<>;(T,T,T,T);;Argument[2];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray;false;Create<>;(T,T,T,T);;Argument[3];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray;false;Create<>;(T[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray;false;CreateRange<,,>;(System.Collections.Immutable.ImmutableArray,System.Func,TArg);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableArray;false;CreateRange<,,>;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func,TArg);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableArray;false;CreateRange<,>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableArray;false;CreateRange<,>;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;false;CreateRange<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray;false;ToImmutableArray<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this].Element;value;manual | @@ -836,6 +1792,8 @@ summary | System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange<>;(TDerived[]);;Argument[0].Element;Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableArray<>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Immutable;ImmutableArray<>+Builder;false;MoveToImmutable;();;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray<>+Builder;false;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableArray<>+Builder;false;Sort;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray<>+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;Add;(T);;Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;AddRange;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -855,6 +1813,7 @@ summary | System.Collections.Immutable;ImmutableArray<>;false;OfType<>;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;Remove;(T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;Remove;(T,System.Collections.Generic.IEqualityComparer);;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray<>;false;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray<>;false;RemoveAt;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;RemoveRange;(System.Collections.Generic.IEnumerable);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[this];ReturnValue;taint;df-generated | @@ -866,6 +1825,7 @@ summary | System.Collections.Immutable;ImmutableArray<>;false;SetItem;(System.Int32,T);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;Sort;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;Sort;(System.Collections.Generic.IComparer);;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray<>;false;Sort;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray<>;false;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;ToBuilder;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray<>;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | @@ -879,12 +1839,20 @@ summary | System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[2].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;GetValueOrDefault<,>;(System.Collections.Immutable.IImmutableDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[2];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Immutable.ImmutableDictionary+Builder);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -946,7 +1914,16 @@ summary | System.Collections.Immutable;ImmutableHashSet<>;false;WithComparer;(System.Collections.Generic.IEqualityComparer);;Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet<>;false;get_KeyComparer;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableHashSet<>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;AddOrUpdate<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;AddOrUpdate<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;AddOrUpdate<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;GetOrAdd<,,>;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;GetOrAdd<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;false;GetOrAdd<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;Update<,>;(System.Collections.Immutable.ImmutableArray,System.Func,TArg,System.Collections.Immutable.ImmutableArray>,TArg);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;Update<,>;(T,System.Func,TArg);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;Update<>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Immutable.ImmutableArray>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableInterlocked;false;Update<>;(T,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;false;Create<>;(T);;Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList;false;CreateRange<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList;false;Remove<>;(System.Collections.Immutable.IImmutableList,T);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -961,17 +1938,32 @@ summary | System.Collections.Immutable;ImmutableList<>+Builder;false;BinarySearch;(System.Int32,System.Int32,T,System.Collections.Generic.IComparer);;Argument[this];Argument[3];taint;df-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;BinarySearch;(T,System.Collections.Generic.IComparer);;Argument[0];Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;BinarySearch;(T,System.Collections.Generic.IComparer);;Argument[this];Argument[1];taint;df-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;ConvertAll<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;CopyTo;(T[]);;Argument[this];Argument[0].Element;taint;df-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;Exists;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;Find;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;Find;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;Find;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;FindAll;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;FindAll;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindLast;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;FindLast;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;FindLast;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindLastIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindLastIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;FindLastIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;ForEach;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList<>+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;GetRange;(System.Int32,System.Int32);;Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableList<>+Builder;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[this].Element;value;manual | +| System.Collections.Immutable;ImmutableList<>+Builder;false;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;Sort;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;ToImmutable;();;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList<>+Builder;false;TrueForAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>+Builder;false;get_SyncRoot;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;Add;(T);;Argument[0];Argument[this].Element;value;manual | @@ -980,19 +1972,32 @@ summary | System.Collections.Immutable;ImmutableList<>;false;BinarySearch;(System.Int32,System.Int32,T,System.Collections.Generic.IComparer);;Argument[this];Argument[3];taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;BinarySearch;(T,System.Collections.Generic.IComparer);;Argument[0];Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;BinarySearch;(T,System.Collections.Generic.IComparer);;Argument[this];Argument[1];taint;df-generated | +| System.Collections.Immutable;ImmutableList<>;false;ConvertAll<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>;false;CopyTo;(T[]);;Argument[this];Argument[0].Element;taint;df-generated | +| System.Collections.Immutable;ImmutableList<>;false;Exists;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;Find;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>;false;Find;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>;false;Find;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>;false;FindAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>;false;FindAll;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>;false;FindAll;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>;false;FindIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;FindIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;FindIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;FindLast;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList<>;false;FindLast;(System.Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList<>;false;FindLast;(System.Predicate);;Argument[this].Element;ReturnValue;value;manual | +| System.Collections.Immutable;ImmutableList<>;false;FindLastIndex;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;FindLastIndex;(System.Int32,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;FindLastIndex;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableList<>;false;ForEach;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList<>+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableList<>;false;GetRange;(System.Int32,System.Int32);;Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableList<>;false;Insert;(System.Int32,T);;Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList<>;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList<>;false;Remove;(T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;Remove;(T,System.Collections.Generic.IEqualityComparer);;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList<>;false;RemoveAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>;false;RemoveAt;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;RemoveRange;(System.Collections.Generic.IEnumerable);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[this];ReturnValue;taint;df-generated | @@ -1011,8 +2016,10 @@ summary | System.Collections.Immutable;ImmutableList<>;false;SetItem;(System.Int32,T);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;Sort;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;Sort;(System.Collections.Generic.IComparer);;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList<>;false;Sort;(System.Comparison);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>;false;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList<>;false;ToBuilder;();;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList<>;false;TrueForAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList<>;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList<>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableQueue;false;Create<>;(T);;Argument[0];ReturnValue;taint;df-generated | @@ -1038,6 +2045,12 @@ summary | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[2].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[1];ReturnValue;taint;df-generated | @@ -1167,6 +2180,8 @@ summary | System.Collections.ObjectModel;ObservableCollection<>;false;InsertItem;(System.Int32,T);;Argument[this];Argument[1];taint;df-generated | | System.Collections.ObjectModel;ObservableCollection<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[this];taint;df-generated | | System.Collections.ObjectModel;ObservableCollection<>;false;SetItem;(System.Int32,T);;Argument[this];Argument[1];taint;df-generated | +| System.Collections.ObjectModel;ObservableCollection<>;false;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.ObjectModel;ObservableCollection<>;false;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;ReadOnlyCollection;(System.Collections.Generic.IList);;Argument[0].Element;Argument[this];taint;df-generated | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;get_Items;();;Argument[this];ReturnValue;taint;df-generated | @@ -1183,8 +2198,14 @@ summary | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_SyncRoot;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | +| System.Collections.ObjectModel;ReadOnlyObservableCollection<>;false;add_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.ObjectModel;ReadOnlyObservableCollection<>;false;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.ObjectModel;ReadOnlyObservableCollection<>;false;remove_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.ObjectModel;ReadOnlyObservableCollection<>;false;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Specialized;HybridDictionary;false;GetEnumerator;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Specialized;HybridDictionary;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.Collections.Specialized;INotifyCollectionChanged;true;add_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Collections.Specialized;INotifyCollectionChanged;true;remove_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Specialized;IOrderedDictionary;true;get_Item;(System.Int32);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections.Specialized;IOrderedDictionary;true;set_Item;(System.Int32,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Specialized;IOrderedDictionary;true;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -1233,6 +2254,7 @@ summary | System.Collections.Specialized;NotifyCollectionChangedEventArgs;false;NotifyCollectionChangedEventArgs;(System.Collections.Specialized.NotifyCollectionChangedAction,System.Object,System.Object,System.Int32);;Argument[2];Argument[this];taint;df-generated | | System.Collections.Specialized;NotifyCollectionChangedEventArgs;false;get_NewItems;();;Argument[this];ReturnValue;taint;df-generated | | System.Collections.Specialized;NotifyCollectionChangedEventArgs;false;get_OldItems;();;Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Specialized;NotifyCollectionChangedEventHandler;false;BeginInvoke;(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Specialized;OrderedDictionary;false;AsReadOnly;();;Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Specialized;OrderedDictionary;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Collections.Specialized;OrderedDictionary;false;OrderedDictionary;(System.Int32,System.Collections.IEqualityComparer);;Argument[1];Argument[this];taint;df-generated | @@ -1399,6 +2421,7 @@ summary | System.ComponentModel.DataAnnotations;MetadataTypeAttribute;false;MetadataTypeAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;MetadataTypeAttribute;false;get_MetadataClassType;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;false;get_ControlParameters;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;false;ValidationAttribute;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;false;get_ErrorMessage;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;false;get_ErrorMessageResourceName;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;false;get_ErrorMessageResourceType;();;Argument[this];ReturnValue;taint;df-generated | @@ -1406,6 +2429,7 @@ summary | System.ComponentModel.DataAnnotations;ValidationAttribute;false;set_ErrorMessageResourceName;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;false;set_ErrorMessageResourceType;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;true;FormatErrorMessage;(System.String);;Argument[0];ReturnValue;taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationContext;false;InitializeServiceProvider;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.DataAnnotations;ValidationContext;false;get_DisplayName;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationContext;false;get_Items;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationContext;false;set_DisplayName;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -1418,10 +2442,21 @@ summary | System.ComponentModel.Design.Serialization;ContextStack;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design.Serialization;ContextStack;false;get_Item;(System.Type);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;false;get_TypeId;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.Design.Serialization;IDesignerSerializationManager;true;add_ResolveName;(System.ComponentModel.Design.Serialization.ResolveNameEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design.Serialization;IDesignerSerializationManager;true;add_SerializationComplete;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design.Serialization;IDesignerSerializationManager;true;remove_ResolveName;(System.ComponentModel.Design.Serialization.ResolveNameEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design.Serialization;IDesignerSerializationManager;true;remove_SerializationComplete;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design.Serialization;ResolveNameEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.Serialization.ResolveNameEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design.Serialization;RootDesignerSerializerAttribute;false;get_TypeId;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.Design;ActiveDesignerEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.ActiveDesignerEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ComponentChangedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.ComponentChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ComponentChangingEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.ComponentChangingEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ComponentEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.ComponentEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ComponentRenameEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.ComponentRenameEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design;DesignerCollection;false;DesignerCollection;(System.Collections.IList);;Argument[0].Element;Argument[this];taint;df-generated | | System.ComponentModel.Design;DesignerCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.ComponentModel.Design;DesignerCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.Design;DesignerEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.DesignerEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design;DesignerOptionService+DesignerOptionCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.ComponentModel.Design;DesignerOptionService+DesignerOptionCollection;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual | | System.ComponentModel.Design;DesignerOptionService+DesignerOptionCollection;false;get_Properties;();;Argument[this];ReturnValue;taint;df-generated | @@ -1429,6 +2464,9 @@ summary | System.ComponentModel.Design;DesignerOptionService;false;CreateOptionCollection;(System.ComponentModel.Design.DesignerOptionService+DesignerOptionCollection,System.String,System.Object);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel.Design;DesignerOptionService;false;CreateOptionCollection;(System.ComponentModel.Design.DesignerOptionService+DesignerOptionCollection,System.String,System.Object);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design;DesignerOptionService;false;get_Options;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.Design;DesignerTransactionCloseEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.Design.DesignerTransactionCloseEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;DesignerVerb;false;DesignerVerb;(System.String,System.EventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;DesignerVerb;false;DesignerVerb;(System.String,System.EventHandler,System.ComponentModel.Design.CommandID);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design;DesignerVerb;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design;DesignerVerb;false;get_Description;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design;DesignerVerb;false;get_Text;();;Argument[this];ReturnValue;taint;df-generated | @@ -1442,10 +2480,60 @@ summary | System.ComponentModel.Design;DesignerVerbCollection;false;Remove;(System.ComponentModel.Design.DesignerVerb);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.Design;DesignerVerbCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.ComponentModel.Design;DesignerVerbCollection;false;set_Item;(System.Int32,System.ComponentModel.Design.DesignerVerb);;Argument[1];Argument[this].Element;value;manual | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentAdded;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentAdding;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentChanged;(System.ComponentModel.Design.ComponentChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentChanging;(System.ComponentModel.Design.ComponentChangingEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentRemoved;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentRemoving;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;add_ComponentRename;(System.ComponentModel.Design.ComponentRenameEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentAdded;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentAdding;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentChanged;(System.ComponentModel.Design.ComponentChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentChanging;(System.ComponentModel.Design.ComponentChangingEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentRemoved;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentRemoving;(System.ComponentModel.Design.ComponentEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IComponentChangeService;true;remove_ComponentRename;(System.ComponentModel.Design.ComponentRenameEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;add_ActiveDesignerChanged;(System.ComponentModel.Design.ActiveDesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;add_DesignerCreated;(System.ComponentModel.Design.DesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;add_DesignerDisposed;(System.ComponentModel.Design.DesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;add_SelectionChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;remove_ActiveDesignerChanged;(System.ComponentModel.Design.ActiveDesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;remove_DesignerCreated;(System.ComponentModel.Design.DesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;remove_DesignerDisposed;(System.ComponentModel.Design.DesignerEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerEventService;true;remove_SelectionChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_Activated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_Deactivated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_LoadComplete;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_TransactionClosed;(System.ComponentModel.Design.DesignerTransactionCloseEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_TransactionClosing;(System.ComponentModel.Design.DesignerTransactionCloseEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_TransactionOpened;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;add_TransactionOpening;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_Activated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_Deactivated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_LoadComplete;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_TransactionClosed;(System.ComponentModel.Design.DesignerTransactionCloseEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_TransactionClosing;(System.ComponentModel.Design.DesignerTransactionCloseEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_TransactionOpened;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IDesignerHost;true;remove_TransactionOpening;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ISelectionService;true;add_SelectionChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ISelectionService;true;add_SelectionChanging;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ISelectionService;true;remove_SelectionChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;ISelectionService;true;remove_SelectionChanging;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IServiceContainer;true;AddService;(System.Type,System.ComponentModel.Design.ServiceCreatorCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;IServiceContainer;true;AddService;(System.Type,System.ComponentModel.Design.ServiceCreatorCallback,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;MenuCommand;false;MenuCommand;(System.EventHandler,System.ComponentModel.Design.CommandID);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel.Design;MenuCommand;false;add_CommandChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design;MenuCommand;false;get_Properties;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.Design;MenuCommand;false;remove_CommandChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design;ServiceContainer;false;GetService;(System.Type);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.Design;ServiceContainer;false;ServiceContainer;(System.IServiceProvider);;Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.Design;ServiceCreatorCallback;false;BeginInvoke;(System.ComponentModel.Design.IServiceContainer,System.Type,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;AddingNewEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.AddingNewEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;ArrayConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | +| System.ComponentModel;AsyncCompletedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.AsyncCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;AsyncOperation;false;Post;(System.Threading.SendOrPostCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;AsyncOperation;false;PostOperationCompleted;(System.Threading.SendOrPostCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;AsyncOperation;false;get_SynchronizationContext;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;AttributeCollection;false;AttributeCollection;(System.Attribute[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.ComponentModel;AttributeCollection;false;FromExisting;(System.ComponentModel.AttributeCollection,System.Attribute[]);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -1455,6 +2543,12 @@ summary | System.ComponentModel;AttributeCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;AttributeCollection;false;get_Item;(System.Type);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;AttributeCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.ComponentModel;BackgroundWorker;false;add_DoWork;(System.ComponentModel.DoWorkEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BackgroundWorker;false;add_ProgressChanged;(System.ComponentModel.ProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BackgroundWorker;false;add_RunWorkerCompleted;(System.ComponentModel.RunWorkerCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BackgroundWorker;false;remove_DoWork;(System.ComponentModel.DoWorkEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BackgroundWorker;false;remove_ProgressChanged;(System.ComponentModel.ProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BackgroundWorker;false;remove_RunWorkerCompleted;(System.ComponentModel.RunWorkerCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;BaseNumberConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;BaseNumberConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;BindingList<>;false;AddNew;();;Argument[this];ReturnValue;taint;df-generated | @@ -1463,9 +2557,13 @@ summary | System.ComponentModel;BindingList<>;false;InsertItem;(System.Int32,T);;Argument[this];Argument[1];taint;df-generated | | System.ComponentModel;BindingList<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[this];taint;df-generated | | System.ComponentModel;BindingList<>;false;SetItem;(System.Int32,T);;Argument[this];Argument[1];taint;df-generated | +| System.ComponentModel;BindingList<>;false;add_AddingNew;(System.ComponentModel.AddingNewEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;BindingList<>;false;remove_AddingNew;(System.ComponentModel.AddingNewEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;CancelEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.CancelEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;CategoryAttribute;false;CategoryAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;CategoryAttribute;false;get_Category;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;CharConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | +| System.ComponentModel;CollectionChangeEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.CollectionChangeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;CollectionConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;Component;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;Component;false;get_Events;();;Argument[this];ReturnValue;taint;df-generated | @@ -1501,6 +2599,7 @@ summary | System.ComponentModel;DefaultValueAttribute;false;SetValue;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;DefaultValueAttribute;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;DesignerAttribute;false;get_TypeId;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;DoWorkEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.DoWorkEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;EditorAttribute;false;get_TypeId;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;EnumConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;EventDescriptorCollection;false;Add;(System.ComponentModel.EventDescriptor);;Argument[0];Argument[this].Element;value;manual | @@ -1524,7 +2623,20 @@ summary | System.ComponentModel;EventHandlerList;false;set_Item;(System.Object,System.Delegate);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;EventHandlerList;false;set_Item;(System.Object,System.Delegate);;Argument[1];Argument[this];taint;df-generated | | System.ComponentModel;GuidConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | +| System.ComponentModel;HandledEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.HandledEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;IBindingList;true;Find;(System.ComponentModel.PropertyDescriptor,System.Object);;Argument[this].Element;ReturnValue;value;manual | +| System.ComponentModel;IBindingList;true;add_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;IBindingList;true;remove_ListChanged;(System.ComponentModel.ListChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;IComponent;true;add_Disposed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;IComponent;true;remove_Disposed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyDataErrorInfo;true;add_ErrorsChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyDataErrorInfo;true;remove_ErrorsChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyPropertyChanged;true;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyPropertyChanged;true;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyPropertyChanging;true;add_PropertyChanging;(System.ComponentModel.PropertyChangingEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;INotifyPropertyChanging;true;remove_PropertyChanging;(System.ComponentModel.PropertyChangingEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;ISupportInitializeNotification;true;add_Initialized;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;ISupportInitializeNotification;true;remove_Initialized;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;InstallerTypeAttribute;false;InstallerTypeAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;InstallerTypeAttribute;false;InstallerTypeAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;LicFileLicenseProvider;false;GetKey;(System.Type);;Argument[0];ReturnValue;taint;df-generated | @@ -1536,6 +2648,7 @@ summary | System.ComponentModel;LicenseProviderAttribute;false;LicenseProviderAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;LicenseProviderAttribute;false;get_LicenseProvider;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;LicenseProviderAttribute;false;get_TypeId;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;ListChangedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.ListChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;ListSortDescriptionCollection;false;ListSortDescriptionCollection;(System.ComponentModel.ListSortDescription[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.ComponentModel;ListSortDescriptionCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.ComponentModel;ListSortDescriptionCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | @@ -1580,9 +2693,14 @@ summary | System.ComponentModel;NullableConverter;false;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);;Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;ProgressChangedEventArgs;false;ProgressChangedEventArgs;(System.Int32,System.Object);;Argument[1];Argument[this];taint;df-generated | | System.ComponentModel;ProgressChangedEventArgs;false;get_UserState;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;ProgressChangedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.ProgressChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;PropertyChangedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.PropertyChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;PropertyChangingEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.PropertyChangingEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;PropertyDescriptor;false;GetValueChangedHandler;(System.Object);;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;PropertyDescriptor;true;AddValueChanged;(System.Object,System.EventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;PropertyDescriptor;true;GetEditor;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;PropertyDescriptor;true;GetEditor;(System.Type);;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;PropertyDescriptor;true;RemoveValueChanged;(System.Object,System.EventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;PropertyDescriptor;true;get_Converter;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.ComponentModel.PropertyDescriptor);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.ComponentModel.PropertyDescriptor);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -1616,8 +2734,10 @@ summary | System.ComponentModel;PropertyTabAttribute;false;get_TabClasses;();;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;false;ReferenceConverter;(System.Type);;Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel;RefreshEventHandler;false;BeginInvoke;(System.ComponentModel.RefreshEventArgs,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;RunWorkerCompletedEventArgs;false;RunWorkerCompletedEventArgs;(System.Object,System.Exception,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;RunWorkerCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;RunWorkerCompletedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.RunWorkerCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;StringConverter;false;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TimeSpanConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ToolboxItemAttribute;false;ToolboxItemAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -1679,6 +2799,8 @@ summary | System.ComponentModel;TypeDescriptor;false;GetFullComponentName;(System.Object);;Argument[0];ReturnValue;taint;df-generated | | System.ComponentModel;TypeDescriptor;false;GetProvider;(System.Type);;Argument[0];ReturnValue;taint;df-generated | | System.ComponentModel;TypeDescriptor;false;GetReflectionType;(System.Type);;Argument[0];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeDescriptor;false;add_Refreshed;(System.ComponentModel.RefreshEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;TypeDescriptor;false;remove_Refreshed;(System.ComponentModel.RefreshEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;TypeListConverter;false;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);;Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;false;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);;Argument[this];ReturnValue;taint;df-generated | @@ -1687,7 +2809,9 @@ summary | System.ComponentModel;WarningException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.ComponentModel;Win32Exception;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.ComponentModel;Win32Exception;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data.Common;DataAdapter;false;add_FillError;(System.Data.FillErrorEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data.Common;DataAdapter;false;get_TableMappings;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data.Common;DataAdapter;false;remove_FillError;(System.Data.FillErrorEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data.Common;DataColumnMapping;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Data.Common;DataColumnMapping;false;DataColumnMapping;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data.Common;DataColumnMapping;false;DataColumnMapping;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | @@ -1783,6 +2907,8 @@ summary | System.Data.Common;DbConnection;false;CreateCommand;();;Argument[this];ReturnValue;taint;df-generated | | System.Data.Common;DbConnection;true;ChangeDatabaseAsync;(System.String,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Data.Common;DbConnection;true;OpenAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | +| System.Data.Common;DbConnection;true;add_StateChange;(System.Data.StateChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data.Common;DbConnection;true;remove_StateChange;(System.Data.StateChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data.Common;DbConnectionStringBuilder;false;Add;(System.String,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Data.Common;DbConnectionStringBuilder;false;Add;(System.String,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Data.Common;DbConnectionStringBuilder;false;AppendKeyValuePair;(System.Text.StringBuilder,System.String,System.String);;Argument[1];Argument[0];taint;df-generated | @@ -1932,9 +3058,11 @@ summary | System.Data;ConstraintCollection;false;AddRange;(System.Data.Constraint[]);;Argument[0].Element;Argument[this].Element;value;manual | | System.Data;ConstraintCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Data;ConstraintCollection;false;CopyTo;(System.Data.Constraint[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | +| System.Data;ConstraintCollection;false;add_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;ConstraintCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Data;ConstraintCollection;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;ConstraintCollection;false;get_List;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;ConstraintCollection;false;remove_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DBConcurrencyException;false;CopyToRows;(System.Data.DataRow[]);;Argument[this];Argument[0].Element;taint;df-generated | | System.Data;DBConcurrencyException;false;CopyToRows;(System.Data.DataRow[],System.Int32);;Argument[this];Argument[0].Element;taint;df-generated | | System.Data;DBConcurrencyException;false;DBConcurrencyException;(System.String,System.Exception,System.Data.DataRow[]);;Argument[2].Element;Argument[this];taint;df-generated | @@ -1963,6 +3091,7 @@ summary | System.Data;DataColumn;false;set_Prefix;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataColumnChangeEventArgs;false;DataColumnChangeEventArgs;(System.Data.DataRow,System.Data.DataColumn,System.Object);;Argument[1];Argument[this];taint;df-generated | | System.Data;DataColumnChangeEventArgs;false;get_Column;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataColumnChangeEventHandler;false;BeginInvoke;(System.Object,System.Data.DataColumnChangeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataColumnCollection;false;Add;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataColumnCollection;false;Add;(System.Data.DataColumn);;Argument[0];Argument[this].Element;value;manual | | System.Data;DataColumnCollection;false;Add;(System.String);;Argument[0];Argument[this].Element;value;manual | @@ -1971,9 +3100,11 @@ summary | System.Data;DataColumnCollection;false;AddRange;(System.Data.DataColumn[]);;Argument[0].Element;Argument[this].Element;value;manual | | System.Data;DataColumnCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Data;DataColumnCollection;false;CopyTo;(System.Data.DataColumn[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | +| System.Data;DataColumnCollection;false;add_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataColumnCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataColumnCollection;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataColumnCollection;false;get_List;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataColumnCollection;false;remove_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataReaderExtensions;false;GetDateTime;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Data;DataReaderExtensions;false;GetFieldValue<>;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Data;DataReaderExtensions;false;GetFieldValueAsync<>;(System.Data.Common.DbDataReader,System.String,System.Threading.CancellationToken);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -2008,6 +3139,8 @@ summary | System.Data;DataRelationCollection;false;Add;(System.Data.DataRelation);;Argument[0];Argument[this].Element;value;manual | | System.Data;DataRelationCollection;false;CopyTo;(System.Data.DataRelation[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Data;DataRelationCollection;false;Remove;(System.Data.DataRelation);;Argument[0];Argument[this];taint;df-generated | +| System.Data;DataRelationCollection;false;add_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataRelationCollection;false;remove_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataRelationCollection;true;Add;(System.Data.DataColumn,System.Data.DataColumn);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRelationCollection;true;Add;(System.Data.DataColumn[],System.Data.DataColumn[]);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn);;Argument[this];ReturnValue;taint;df-generated | @@ -2042,6 +3175,7 @@ summary | System.Data;DataRow;false;get_Table;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataRow;false;set_Item;(System.Data.DataColumn,System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataRow;false;set_RowError;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Data;DataRowChangeEventHandler;false;BeginInvoke;(System.Object,System.Data.DataRowChangeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataRowCollection;false;Add;(System.Data.DataRow);;Argument[0];Argument[this].Element;value;manual | | System.Data;DataRowCollection;false;Add;(System.Object[]);;Argument[0];Argument[this].Element;value;manual | | System.Data;DataRowCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | @@ -2071,6 +3205,12 @@ summary | System.Data;DataSet;false;GetChanges;(System.Data.DataRowState);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;GetList;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System.Data;DataSet;false;Load;(System.Data.IDataReader,System.Data.LoadOption,System.Data.FillErrorEventHandler,System.Data.DataTable[]);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;WriteXmlSchema;(System.IO.Stream,System.Converter);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;WriteXmlSchema;(System.IO.TextWriter,System.Converter);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;WriteXmlSchema;(System.String,System.Converter);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;WriteXmlSchema;(System.Xml.XmlWriter,System.Converter);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Data;DataSet;false;add_MergeFailed;(System.Data.MergeFailedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataSet;false;get_DataSetName;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;get_DefaultViewManager;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;get_ExtendedProperties;();;Argument[this];ReturnValue;taint;df-generated | @@ -2080,6 +3220,7 @@ summary | System.Data;DataSet;false;get_Relations;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;get_Site;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;false;get_Tables;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataSet;false;remove_MergeFailed;(System.Data.MergeFailedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataSet;false;set_DataSetName;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataSet;false;set_Locale;(System.Globalization.CultureInfo);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataSet;false;set_Namespace;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -2096,6 +3237,7 @@ summary | System.Data;DataTable;false;GetErrors;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;GetList;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System.Data;DataTable;false;Load;(System.Data.IDataReader,System.Data.LoadOption,System.Data.FillErrorEventHandler);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;false;LoadDataRow;(System.Object[],System.Boolean);;Argument[0].Element;Argument[this];taint;df-generated | | System.Data;DataTable;false;LoadDataRow;(System.Object[],System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;LoadDataRow;(System.Object[],System.Data.LoadOption);;Argument[this];ReturnValue;taint;df-generated | @@ -2103,6 +3245,15 @@ summary | System.Data;DataTable;false;NewRowArray;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;NewRowFromBuilder;(System.Data.DataRowBuilder);;Argument[0];ReturnValue;taint;df-generated | | System.Data;DataTable;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataTable;false;add_ColumnChanged;(System.Data.DataColumnChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_ColumnChanging;(System.Data.DataColumnChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_RowChanged;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_RowChanging;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_RowDeleted;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_RowDeleting;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_TableCleared;(System.Data.DataTableClearEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_TableClearing;(System.Data.DataTableClearEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;add_TableNewRow;(System.Data.DataTableNewRowEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;false;get_ChildRelations;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;get_Columns;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;get_Constraints;();;Argument[this];ReturnValue;taint;df-generated | @@ -2117,12 +3268,22 @@ summary | System.Data;DataTable;false;get_Rows;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;get_Site;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;false;get_TableName;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataTable;false;remove_ColumnChanged;(System.Data.DataColumnChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_ColumnChanging;(System.Data.DataColumnChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_RowChanged;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_RowChanging;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_RowDeleted;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_RowDeleting;(System.Data.DataRowChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_TableCleared;(System.Data.DataTableClearEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_TableClearing;(System.Data.DataTableClearEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTable;false;remove_TableNewRow;(System.Data.DataTableNewRowEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;false;set_Locale;(System.Globalization.CultureInfo);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;false;set_Namespace;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;false;set_Prefix;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;false;set_PrimaryKey;(System.Data.DataColumn[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.Data;DataTable;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;false;set_TableName;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Data;DataTableClearEventHandler;false;BeginInvoke;(System.Object,System.Data.DataTableClearEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataTableCollection;false;Add;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTableCollection;false;Add;(System.Data.DataTable);;Argument[0];Argument[this].Element;value;manual | | System.Data;DataTableCollection;false;Add;(System.String);;Argument[0];Argument[this].Element;value;manual | @@ -2132,11 +3293,17 @@ summary | System.Data;DataTableCollection;false;AddRange;(System.Data.DataTable[]);;Argument[0].Element;Argument[this].Element;value;manual | | System.Data;DataTableCollection;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Data;DataTableCollection;false;CopyTo;(System.Data.DataTable[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | +| System.Data;DataTableCollection;false;add_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTableCollection;false;add_CollectionChanging;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTableCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTableCollection;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTableCollection;false;get_Item;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTableCollection;false;get_List;();;Argument[this];ReturnValue;taint;df-generated | +| System.Data;DataTableCollection;false;remove_CollectionChanged;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTableCollection;false;remove_CollectionChanging;(System.ComponentModel.CollectionChangeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTableExtensions;false;AsEnumerable;(System.Data.DataTable);;Argument[0];ReturnValue;taint;df-generated | +| System.Data;DataTableExtensions;false;CopyToDataTable<>;(System.Collections.Generic.IEnumerable,System.Data.DataTable,System.Data.LoadOption,System.Data.FillErrorEventHandler);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Data;DataTableNewRowEventHandler;false;BeginInvoke;(System.Object,System.Data.DataTableNewRowEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataTableReader;false;DataTableReader;(System.Data.DataTable);;Argument[0];Argument[this];taint;df-generated | | System.Data;DataTableReader;false;DataTableReader;(System.Data.DataTable[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.Data;DataTableReader;false;GetDateTime;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | @@ -2194,30 +3361,41 @@ summary | System.Data;EnumerableRowCollectionExtensions;false;Cast<>;(System.Data.EnumerableRowCollection);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;OrderBy<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;OrderByDescending<,>;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;Select<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;Select<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;Select<,>;(System.Data.EnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;ThenBy<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;ThenByDescending<,>;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;Where<>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;false;Where<>;(System.Data.EnumerableRowCollection,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;EnumerableRowCollectionExtensions;false;Where<>;(System.Data.EnumerableRowCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;FillErrorEventArgs;false;FillErrorEventArgs;(System.Data.DataTable,System.Object[]);;Argument[0];Argument[this];taint;df-generated | | System.Data;FillErrorEventArgs;false;FillErrorEventArgs;(System.Data.DataTable,System.Object[]);;Argument[1].Element;Argument[this];taint;df-generated | | System.Data;FillErrorEventArgs;false;get_DataTable;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;FillErrorEventArgs;false;get_Errors;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;FillErrorEventArgs;false;get_Values;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;FillErrorEventArgs;false;set_Errors;(System.Exception);;Argument[0];Argument[this];taint;df-generated | +| System.Data;FillErrorEventHandler;false;BeginInvoke;(System.Object,System.Data.FillErrorEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;ForeignKeyConstraint;false;ForeignKeyConstraint;(System.String,System.Data.DataColumn,System.Data.DataColumn);;Argument[0];Argument[this];taint;df-generated | | System.Data;ForeignKeyConstraint;false;ForeignKeyConstraint;(System.String,System.Data.DataColumn[],System.Data.DataColumn[]);;Argument[0];Argument[this];taint;df-generated | | System.Data;ForeignKeyConstraint;false;ForeignKeyConstraint;(System.String,System.String,System.String,System.String[],System.String[],System.Data.AcceptRejectRule,System.Data.Rule,System.Data.Rule);;Argument[0];Argument[this];taint;df-generated | @@ -2238,22 +3416,31 @@ summary | System.Data;ITableMappingCollection;true;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual | | System.Data;ITableMappingCollection;true;set_Item;(System.String,System.Object);;Argument[1];Argument[this].Element;value;manual | | System.Data;InternalDataCollectionBase;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.Data;MergeFailedEventHandler;false;BeginInvoke;(System.Object,System.Data.MergeFailedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;PropertyCollection;false;Clone;();;Argument[this].Element;ReturnValue.Element;value;manual | +| System.Data;StateChangeEventHandler;false;BeginInvoke;(System.Object,System.Data.StateChangeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Data;StatementCompletedEventHandler;false;BeginInvoke;(System.Object,System.Data.StatementCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;TypedTableBase<>;false;Cast<>;();;Argument[this];ReturnValue;taint;df-generated | | System.Data;TypedTableBaseExtensions;false;AsEnumerable<>;(System.Data.TypedTableBase);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Data;TypedTableBaseExtensions;false;ElementAtOrDefault<>;(System.Data.TypedTableBase,System.Int32);;Argument[0].Element;ReturnValue;value;manual | | System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;OrderBy<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;OrderByDescending<,>;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;false;Select<,>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;Select<,>;(System.Data.TypedTableBase,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;Select<,>;(System.Data.TypedTableBase,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;false;Where<>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;false;Where<>;(System.Data.TypedTableBase,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Data;TypedTableBaseExtensions;false;Where<>;(System.Data.TypedTableBase,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;UniqueConstraint;false;UniqueConstraint;(System.String,System.Data.DataColumn);;Argument[0];Argument[this];taint;df-generated | | System.Data;UniqueConstraint;false;UniqueConstraint;(System.String,System.Data.DataColumn,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Data;UniqueConstraint;false;UniqueConstraint;(System.String,System.Data.DataColumn[]);;Argument[0];Argument[this];taint;df-generated | @@ -2261,6 +3448,12 @@ summary | System.Data;UniqueConstraint;false;UniqueConstraint;(System.String,System.String[],System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Data;UniqueConstraint;false;UniqueConstraint;(System.String,System.String[],System.Boolean);;Argument[1].Element;Argument[this];taint;df-generated | | System.Data;UniqueConstraint;false;get_Columns;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics.Contracts;Contract;false;Exists;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Contracts;Contract;false;Exists<>;(System.Collections.Generic.IEnumerable,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Contracts;Contract;false;ForAll;(System.Int32,System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Contracts;Contract;false;ForAll<>;(System.Collections.Generic.IEnumerable,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Contracts;Contract;false;add_ContractFailed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Contracts;Contract;false;remove_ContractFailed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;ContractClassAttribute;false;ContractClassAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics.Contracts;ContractClassAttribute;false;get_TypeContainingContracts;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Contracts;ContractClassForAttribute;false;ContractClassForAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | @@ -2281,7 +3474,22 @@ summary | System.Diagnostics.Contracts;ContractOptionAttribute;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Contracts;ContractPublicPropertyNameAttribute;false;ContractPublicPropertyNameAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics.Contracts;ContractPublicPropertyNameAttribute;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics.Eventing.Reader;EventLogWatcher;false;add_EventRecordWritten;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Eventing.Reader;EventLogWatcher;false;remove_EventRecordWritten;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Metrics;Measurement<>;false;Measurement;(T,System.Collections.Generic.KeyValuePair[]);;Argument[1].Element;Argument[this];taint;df-generated | +| System.Diagnostics.Metrics;MeasurementCallback<>;false;BeginInvoke;(System.Diagnostics.Metrics.Instrument,T,System.ReadOnlySpan>,System.Object,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<>;(System.String,System.Func>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<>;(System.String,System.Func>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<>;(System.String,System.Func,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<>;(System.String,System.Func>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<>;(System.String,System.Func>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<>;(System.String,System.Func,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<>;(System.String,System.Func>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<>;(System.String,System.Func>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<>;(System.String,System.Func,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;MeterListener;false;SetMeasurementEventCallback<>;(System.Diagnostics.Metrics.MeasurementCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;MeterListener;false;set_InstrumentPublished;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Metrics;MeterListener;false;set_MeasurementsCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;get_DisplayName;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;get_DisplayUnits;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;set_DisplayName;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -2290,20 +3498,28 @@ summary | System.Diagnostics.Tracing;EventListener;false;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel);;Argument[this];Argument[0];taint;df-generated | | System.Diagnostics.Tracing;EventListener;false;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords);;Argument[this];Argument[0];taint;df-generated | | System.Diagnostics.Tracing;EventListener;false;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords,System.Collections.Generic.IDictionary);;Argument[this];Argument[0];taint;df-generated | +| System.Diagnostics.Tracing;EventListener;false;add_EventSourceCreated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Tracing;EventListener;false;add_EventWritten;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Tracing;EventListener;false;remove_EventSourceCreated;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Tracing;EventListener;false;remove_EventWritten;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventSource;false;EventSource;(System.Diagnostics.Tracing.EventSourceSettings,System.String[]);;Argument[1].Element;Argument[this];taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;GenerateManifest;(System.Type,System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;GenerateManifest;(System.Type,System.String,System.Diagnostics.Tracing.EventManifestOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;GetName;(System.Type);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;GetTrait;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics.Tracing;EventSource;false;add_EventCommandExecuted;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventSource;false;get_ConstructionException;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;get_Guid;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics.Tracing;EventSource;false;remove_EventCommandExecuted;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventWrittenEventArgs;false;get_ActivityId;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventWrittenEventArgs;false;get_EventName;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventWrittenEventArgs;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventWrittenEventArgs;false;get_PayloadNames;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventWrittenEventArgs;false;get_RelatedActivityId;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics.Tracing;IncrementingPollingCounter;false;IncrementingPollingCounter;(System.String,System.Diagnostics.Tracing.EventSource,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics.Tracing;PollingCounter;false;PollingCounter;(System.String,System.Diagnostics.Tracing.EventSource,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Activity;false;AddBaggage;(System.String,System.String);;Argument[this];ReturnValue;value;df-generated | | System.Diagnostics;Activity;false;AddEvent;(System.Diagnostics.ActivityEvent);;Argument[this];ReturnValue;value;df-generated | | System.Diagnostics;Activity;false;AddTag;(System.String,System.Object);;Argument[this];ReturnValue;value;df-generated | @@ -2321,6 +3537,7 @@ summary | System.Diagnostics;Activity;false;SetStatus;(System.Diagnostics.ActivityStatusCode,System.String);;Argument[this];ReturnValue;value;df-generated | | System.Diagnostics;Activity;false;SetTag;(System.String,System.Object);;Argument[this];ReturnValue;value;df-generated | | System.Diagnostics;Activity;false;Start;();;Argument[this];ReturnValue;value;df-generated | +| System.Diagnostics;Activity;false;add_CurrentChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Activity;false;get_DisplayName;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Activity;false;get_Events;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Activity;false;get_Id;();;Argument[this];ReturnValue;taint;df-generated | @@ -2333,9 +3550,16 @@ summary | System.Diagnostics;Activity;false;get_TagObjects;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Activity;false;get_TraceId;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Activity;false;get_TraceStateString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;Activity;false;remove_CurrentChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Activity;false;set_DisplayName;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Diagnostics;Activity;false;set_TraceIdGenerator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Activity;false;set_TraceStateString;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;ActivityCreationOptions<>;false;get_SamplingTags;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;ActivityListener;false;set_ActivityStarted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;ActivityListener;false;set_ActivityStopped;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;ActivityListener;false;set_Sample;(System.Diagnostics.SampleActivity);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;ActivityListener;false;set_SampleUsingParentId;(System.Diagnostics.SampleActivity);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;ActivityListener;false;set_ShouldListenTo;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;ActivitySource;false;CreateActivity;(System.String,System.Diagnostics.ActivityKind,System.String,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable,System.Diagnostics.ActivityIdFormat);;Argument[2];ReturnValue;taint;df-generated | | System.Diagnostics;ActivitySource;false;StartActivity;(System.String,System.Diagnostics.ActivityKind,System.String,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable,System.DateTimeOffset);;Argument[2];ReturnValue;taint;df-generated | | System.Diagnostics;ActivitySpanId;false;ToHexString;();;Argument[this];ReturnValue;taint;df-generated | @@ -2351,6 +3575,7 @@ summary | System.Diagnostics;ActivityTraceId;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;CorrelationManager;false;get_LogicalOperationStack;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;DataReceivedEventArgs;false;get_Data;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;DataReceivedEventHandler;false;BeginInvoke;(System.Object,System.Diagnostics.DataReceivedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DebuggerDisplayAttribute;false;get_Target;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;DebuggerDisplayAttribute;false;set_Target;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;DebuggerTypeProxyAttribute;false;get_Target;();;Argument[this];ReturnValue;taint;df-generated | @@ -2363,7 +3588,20 @@ summary | System.Diagnostics;DelimitedListTraceListener;false;set_Delimiter;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>);;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>,System.Func,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>,System.Func,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>,System.Func,System.Action,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>,System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DiagnosticSource;false;StartActivity;(System.Diagnostics.Activity,System.Object);;Argument[0];ReturnValue;taint;df-generated | +| System.Diagnostics;DistributedContextPropagator+PropagatorGetterCallback;false;BeginInvoke;(System.Object,System.String,System.String,System.Collections.Generic.IEnumerable,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DistributedContextPropagator+PropagatorSetterCallback;false;BeginInvoke;(System.Object,System.String,System.String,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DistributedContextPropagator;true;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DistributedContextPropagator;true;ExtractTraceIdAndState;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;DistributedContextPropagator;true;Inject;(System.Diagnostics.Activity,System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;EntryWrittenEventHandler;false;BeginInvoke;(System.Object,System.Diagnostics.EntryWrittenEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;EventLog;false;add_EntryWritten;(System.Diagnostics.EntryWrittenEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;EventLog;false;remove_EntryWritten;(System.Diagnostics.EntryWrittenEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;FileVersionInfo;false;GetVersionInfo;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics;FileVersionInfo;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;FileVersionInfo;false;get_Comments;();;Argument[this];ReturnValue;taint;df-generated | @@ -2384,6 +3622,9 @@ summary | System.Diagnostics;Process;false;GetProcesses;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;Start;(System.Diagnostics.ProcessStartInfo);;Argument[0];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;Process;false;add_ErrorDataReceived;(System.Diagnostics.DataReceivedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;Process;false;add_Exited;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;Process;false;add_OutputDataReceived;(System.Diagnostics.DataReceivedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Process;false;get_ExitTime;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;get_Handle;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;get_MachineName;();;Argument[this];ReturnValue;taint;df-generated | @@ -2399,6 +3640,9 @@ summary | System.Diagnostics;Process;false;get_StartInfo;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;get_StartTime;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Process;false;get_Threads;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;Process;false;remove_ErrorDataReceived;(System.Diagnostics.DataReceivedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;Process;false;remove_Exited;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;Process;false;remove_OutputDataReceived;(System.Diagnostics.DataReceivedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Process;false;set_ProcessorAffinity;(System.IntPtr);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;Process;false;set_StartInfo;(System.Diagnostics.ProcessStartInfo);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;ProcessModule;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | @@ -2428,6 +3672,7 @@ summary | System.Diagnostics;ProcessThreadCollection;false;Insert;(System.Int32,System.Diagnostics.ProcessThread);;Argument[1];Argument[this];taint;df-generated | | System.Diagnostics;ProcessThreadCollection;false;ProcessThreadCollection;(System.Diagnostics.ProcessThread[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.Diagnostics;ProcessThreadCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;SampleActivity<>;false;BeginInvoke;(System.Diagnostics.ActivityCreationOptions,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;SourceFilter;false;SourceFilter;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;SourceFilter;false;get_Source;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;SourceFilter;false;set_Source;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -2442,10 +3687,12 @@ summary | System.Diagnostics;Switch;false;Switch;(System.String,System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;Switch;false;Switch;(System.String,System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Diagnostics;Switch;false;Switch;(System.String,System.String,System.String);;Argument[2];Argument[this];taint;df-generated | +| System.Diagnostics;Switch;false;add_Initializing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Switch;false;get_Attributes;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Switch;false;get_Description;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Switch;false;get_DisplayName;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;Switch;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;Switch;false;remove_Initializing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;Switch;false;set_Value;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;SwitchAttribute;false;SwitchAttribute;(System.String,System.Type);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;SwitchAttribute;false;SwitchAttribute;(System.String,System.Type);;Argument[1];Argument[this];taint;df-generated | @@ -2463,6 +3710,8 @@ summary | System.Diagnostics;TextWriterTraceListener;false;TextWriterTraceListener;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Diagnostics;TextWriterTraceListener;false;get_Writer;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TextWriterTraceListener;false;set_Writer;(System.IO.TextWriter);;Argument[0];Argument[this];taint;df-generated | +| System.Diagnostics;Trace;false;add_Refreshing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Diagnostics;Trace;false;remove_Refreshing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;TraceEventCache;false;get_Callstack;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TraceEventCache;false;get_DateTime;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TraceListener;false;TraceListener;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -2481,10 +3730,12 @@ summary | System.Diagnostics;TraceListenerCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Diagnostics;TraceListenerCollection;false;set_Item;(System.Int32,System.Diagnostics.TraceListener);;Argument[1];Argument[this].Element;value;manual | | System.Diagnostics;TraceSource;false;TraceSource;(System.String,System.Diagnostics.SourceLevels);;Argument[0];Argument[this];taint;df-generated | +| System.Diagnostics;TraceSource;false;add_Initializing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;TraceSource;false;get_Attributes;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TraceSource;false;get_Listeners;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TraceSource;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;TraceSource;false;get_Switch;();;Argument[this];ReturnValue;taint;df-generated | +| System.Diagnostics;TraceSource;false;remove_Initializing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;TraceSource;false;set_Switch;(System.Diagnostics.SourceSwitch);;Argument[0];Argument[this];taint;df-generated | | System.Drawing;Color;false;FromName;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Drawing;Color;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | @@ -2718,6 +3969,11 @@ summary | System.IO.Enumeration;FileSystemEntry;false;ToFileSystemInfo;();;Argument[this];ReturnValue;taint;df-generated | | System.IO.Enumeration;FileSystemEntry;false;ToSpecifiedFullPath;();;Argument[this];ReturnValue;taint;df-generated | | System.IO.Enumeration;FileSystemEntry;false;get_FileName;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO.Enumeration;FileSystemEnumerable<>+FindPredicate;false;BeginInvoke;(System.IO.Enumeration.FileSystemEntry,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.IO.Enumeration;FileSystemEnumerable<>+FindTransform;false;BeginInvoke;(System.IO.Enumeration.FileSystemEntry,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.IO.Enumeration;FileSystemEnumerable<>;false;FileSystemEnumerable;(System.String,System.IO.Enumeration.FileSystemEnumerable<>+FindTransform,System.IO.EnumerationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.IO.Enumeration;FileSystemEnumerable<>;false;set_ShouldIncludePredicate;(System.IO.Enumeration.FileSystemEnumerable<>+FindPredicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO.Enumeration;FileSystemEnumerable<>;false;set_ShouldRecursePredicate;(System.IO.Enumeration.FileSystemEnumerable<>+FindPredicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Enumeration;FileSystemEnumerator<>;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | | System.IO.Enumeration;FileSystemName;false;TranslateWin32Expression;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.IO.IsolatedStorage;IsolatedStorage;false;get_ApplicationIdentity;();;Argument[this];ReturnValue;taint;df-generated | @@ -2745,7 +4001,10 @@ summary | System.IO.Pipelines;PipeReader;true;AsStream;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeReader;true;CopyToAsync;(System.IO.Pipelines.PipeWriter,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeReader;true;CopyToAsync;(System.IO.Stream,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | +| System.IO.Pipelines;PipeReader;true;OnWriterCompleted;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO.Pipelines;PipeScheduler;true;Schedule;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipelines;PipeWriter;true;AsStream;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | +| System.IO.Pipelines;PipeWriter;true;OnReaderCompleted;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipelines;PipeWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.IO.Pipelines;ReadResult;false;ReadResult;(System.Buffers.ReadOnlySequence,System.Boolean,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.IO.Pipelines;ReadResult;false;get_Buffer;();;Argument[this];ReturnValue;taint;df-generated | @@ -2758,10 +4017,13 @@ summary | System.IO.Pipes;NamedPipeClientStream;false;ConnectAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.IO.Pipes;NamedPipeClientStream;false;NamedPipeClientStream;(System.IO.Pipes.PipeDirection,System.Boolean,System.Boolean,Microsoft.Win32.SafeHandles.SafePipeHandle);;Argument[3];Argument[this];taint;df-generated | | System.IO.Pipes;NamedPipeClientStream;false;NamedPipeClientStream;(System.String,System.String,System.IO.Pipes.PipeDirection,System.IO.Pipes.PipeOptions,System.Security.Principal.TokenImpersonationLevel,System.IO.HandleInheritability);;Argument[1];Argument[this];taint;df-generated | +| System.IO.Pipes;NamedPipeServerStream;false;BeginWaitForConnection;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipes;NamedPipeServerStream;false;NamedPipeServerStream;(System.IO.Pipes.PipeDirection,System.Boolean,System.Boolean,Microsoft.Win32.SafeHandles.SafePipeHandle);;Argument[3];Argument[this];taint;df-generated | +| System.IO.Pipes;NamedPipeServerStream;false;RunAsClient;(System.IO.Pipes.PipeStreamImpersonationWorker);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipes;NamedPipeServerStream;false;WaitForConnectionAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.IO.Pipes;PipeStream;false;InitializeHandle;(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Boolean,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.IO.Pipes;PipeStream;false;get_SafePipeHandle;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO.Pipes;PipeStreamImpersonationWorker;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO;BinaryReader;false;BinaryReader;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.IO;BinaryReader;false;BinaryReader;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[1];Argument[this];taint;df-generated | | System.IO;BinaryReader;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;df-generated | @@ -2806,6 +4068,7 @@ summary | System.IO;DriveInfo;false;get_VolumeLabel;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;ErrorEventArgs;false;ErrorEventArgs;(System.Exception);;Argument[0];Argument[this];taint;df-generated | | System.IO;ErrorEventArgs;false;GetException;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO;ErrorEventHandler;false;BeginInvoke;(System.Object,System.IO.ErrorEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.IO;File;false;AppendAllLinesAsync;(System.String,System.Collections.Generic.IEnumerable,System.Text.Encoding,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;df-generated | | System.IO;File;false;AppendAllLinesAsync;(System.String,System.Collections.Generic.IEnumerable,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;df-generated | | System.IO;File;false;AppendAllTextAsync;(System.String,System.String,System.Text.Encoding,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;df-generated | @@ -2864,6 +4127,7 @@ summary | System.IO;FileSystemEventArgs;false;FileSystemEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String);;Argument[2];Argument[this];taint;df-generated | | System.IO;FileSystemEventArgs;false;get_FullPath;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemEventArgs;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO;FileSystemEventHandler;false;BeginInvoke;(System.Object,System.IO.FileSystemEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.IO;FileSystemInfo;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemInfo;false;get_Extension;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemInfo;false;get_LinkTarget;();;Argument[this];ReturnValue;taint;df-generated | @@ -2872,10 +4136,20 @@ summary | System.IO;FileSystemWatcher;false;FileSystemWatcher;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.IO;FileSystemWatcher;false;FileSystemWatcher;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.IO;FileSystemWatcher;false;FileSystemWatcher;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | +| System.IO;FileSystemWatcher;false;add_Changed;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;add_Created;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;add_Deleted;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;add_Error;(System.IO.ErrorEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;add_Renamed;(System.IO.RenamedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO;FileSystemWatcher;false;get_Filter;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemWatcher;false;get_Filters;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemWatcher;false;get_Path;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;FileSystemWatcher;false;get_Site;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO;FileSystemWatcher;false;remove_Changed;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;remove_Created;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;remove_Deleted;(System.IO.FileSystemEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;remove_Error;(System.IO.ErrorEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.IO;FileSystemWatcher;false;remove_Renamed;(System.IO.RenamedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO;FileSystemWatcher;false;set_Filter;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.IO;FileSystemWatcher;false;set_Path;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.IO;FileSystemWatcher;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[this];taint;df-generated | @@ -2939,6 +4213,7 @@ summary | System.IO;RenamedEventArgs;false;RenamedEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String,System.String);;Argument[3];Argument[this];taint;df-generated | | System.IO;RenamedEventArgs;false;get_OldFullPath;();;Argument[this];ReturnValue;taint;df-generated | | System.IO;RenamedEventArgs;false;get_OldName;();;Argument[this];ReturnValue;taint;df-generated | +| System.IO;RenamedEventHandler;false;BeginInvoke;(System.Object,System.IO.RenamedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.IO;Stream;false;CopyTo;(System.IO.Stream);;Argument[this];Argument[0];taint;manual | | System.IO;Stream;false;CopyToAsync;(System.IO.Stream);;Argument[this];Argument[0];taint;manual | | System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual | @@ -2947,8 +4222,10 @@ summary | System.IO;Stream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual | | System.IO;Stream;false;Synchronized;(System.IO.Stream);;Argument[0];ReturnValue;taint;df-generated | | System.IO;Stream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;manual | +| System.IO;Stream;true;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;Stream;true;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual | | System.IO;Stream;true;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual | +| System.IO;Stream;true;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;Stream;true;CopyTo;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual | | System.IO;Stream;true;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual | | System.IO;Stream;true;FlushAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | @@ -3451,6 +4728,7 @@ summary | System.Linq.Expressions;Expression<>;false;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;false;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);;Argument[0].Element;Argument[this];taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;false;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;false;Visit<>;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq.Expressions;ExpressionVisitor;false;VisitAndConvert<>;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);;Argument[0].Element;Argument[this];taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;false;VisitAndConvert<>;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;false;VisitAndConvert<>;(T,System.String);;Argument[0];Argument[this];taint;df-generated | @@ -3532,233 +4810,367 @@ summary | System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[3].ReturnValue;ReturnValue;value;manual | +| System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Aggregate<,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;false;Aggregate<,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;Aggregate<,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);;Argument[2].ReturnValue;ReturnValue;value;manual | +| System.Linq;Enumerable;false;Aggregate<,>;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Aggregate<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;Enumerable;false;Aggregate<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1].ReturnValue;ReturnValue;value;manual | +| System.Linq;Enumerable;false;Aggregate<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;All<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;All<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Any<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Any<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Append<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;AsEnumerable<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Average<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Cast<>;(System.Collections.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Concat<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Concat<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Count<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Count<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;DefaultIfEmpty<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;DefaultIfEmpty<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;DefaultIfEmpty<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;value;manual | | System.Linq;Enumerable;false;Distinct<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Distinct<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;DistinctBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;DistinctBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;ElementAt<>;(System.Collections.Generic.IEnumerable,System.Index);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;ElementAt<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;ElementAtOrDefault<>;(System.Collections.Generic.IEnumerable,System.Index);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;ElementAtOrDefault<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;Except<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;Except<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;ExceptBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;ExceptBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;First<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;First<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;First<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;First<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[0];Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;GroupBy<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;GroupBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;GroupJoin<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Intersect<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Intersect<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Intersect<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Intersect<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;IntersectBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;IntersectBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Join<,,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Last<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;Last<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Last<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;Last<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;LongCount<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;LongCount<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1];taint;df-generated | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;MaxBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;MaxBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;Min<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1];taint;df-generated | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;MinBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;MinBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;OfType<>;(System.Collections.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;OrderBy<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;OrderByDescending<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Prepend<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;Repeat<>;(TResult,System.Int32);;Argument[0];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;Reverse<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Select<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SelectMany<,,>;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SelectMany<,>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Single<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;Single<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Single<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;Single<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,System.Func,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;Skip<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;SkipLast<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Enumerable;false;Sum<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Take<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Take<>;(System.Collections.Generic.IEnumerable,System.Range);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;TakeLast<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;TakeWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ThenBy<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ThenByDescending<,>;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToArray<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToDictionary<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToDictionary<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToList<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToLookup<,,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;ToLookup<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Union<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Union<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Union<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;false;Union<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;UnionBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Enumerable;false;UnionBy<,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Where<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;false;Zip<,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;false;Zip<,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;false;Zip<,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Enumerable;false;Zip<,,>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;EnumerableExecutor<>;false;EnumerableExecutor;(System.Linq.Expressions.Expression);;Argument[0];Argument[this];taint;df-generated | | System.Linq;EnumerableQuery<>;false;CreateQuery<>;(System.Linq.Expressions.Expression);;Argument[0];ReturnValue;taint;df-generated | | System.Linq;EnumerableQuery<>;false;EnumerableQuery;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this];taint;df-generated | @@ -3767,29 +5179,67 @@ summary | System.Linq;EnumerableQuery<>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Linq;EnumerableQuery<>;false;get_Expression;();;Argument[this];ReturnValue;taint;df-generated | | System.Linq;EnumerableQuery<>;false;get_Provider;();;Argument[this];ReturnValue;value;df-generated | +| System.Linq;IOrderedEnumerable<>;true;CreateOrderedEnumerable<>;(System.Func,System.Collections.Generic.IComparer,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Aggregate<,,>;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Aggregate<,,>;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Aggregate<,>;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Aggregate<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;All<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Any<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;false;ElementAt<>;(System.Collections.Immutable.ImmutableArray,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;false;ElementAtOrDefault<>;(System.Collections.Immutable.ImmutableArray,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;false;First<>;(System.Collections.Immutable.ImmutableArray);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;false;First<>;(System.Collections.Immutable.ImmutableArray+Builder);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ImmutableArrayExtensions;false;First<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;false;FirstOrDefault<>;(System.Collections.Immutable.ImmutableArray);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;false;FirstOrDefault<>;(System.Collections.Immutable.ImmutableArray+Builder);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ImmutableArrayExtensions;false;FirstOrDefault<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;false;Last<>;(System.Collections.Immutable.ImmutableArray);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;false;Last<>;(System.Collections.Immutable.ImmutableArray+Builder);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ImmutableArrayExtensions;false;Last<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;false;LastOrDefault<>;(System.Collections.Immutable.ImmutableArray+Builder);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ImmutableArrayExtensions;false;LastOrDefault<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Select<,>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;SelectMany<,,>;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;SelectMany<,,>;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;SequenceEqual<,>;(System.Collections.Immutable.ImmutableArray,System.Collections.Immutable.ImmutableArray,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;false;Single<>;(System.Collections.Immutable.ImmutableArray);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Linq;ImmutableArrayExtensions;false;Single<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;SingleOrDefault<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,,>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,,>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,,>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,,>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;ToDictionary<,>;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ImmutableArrayExtensions;false;Where<>;(System.Collections.Immutable.ImmutableArray,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Lookup<,>;false;ApplyResultSelector<>;(System.Func,TResult>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Linq;Lookup<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Linq;Lookup<,>;false;get_Item;(TKey);;Argument[this];ReturnValue;taint;df-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[3].ReturnValue;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;Aggregate<,,>;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,>;(System.Linq.ParallelQuery,TAccumulate,System.Func);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,>;(System.Linq.ParallelQuery,TAccumulate,System.Func);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<,>;(System.Linq.ParallelQuery,TAccumulate,System.Func);;Argument[2].ReturnValue;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;Aggregate<,>;(System.Linq.ParallelQuery,TAccumulate,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;Aggregate<>;(System.Linq.ParallelQuery,System.Func);;Argument[1].ReturnValue;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;Aggregate<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;All<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;All<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Any<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Any<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;AsEnumerable<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;AsOrdered;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;AsOrdered<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -3799,21 +5249,32 @@ summary | System.Linq;ParallelEnumerable;false;AsSequential<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;AsUnordered<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Average<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Cast<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Concat<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Concat<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Concat<>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Concat<>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Count<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Count<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;DefaultIfEmpty<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;DefaultIfEmpty<>;(System.Linq.ParallelQuery,TSource);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;DefaultIfEmpty<>;(System.Linq.ParallelQuery,TSource);;Argument[1];ReturnValue;value;manual | @@ -3828,54 +5289,85 @@ summary | System.Linq;ParallelEnumerable;false;First<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;First<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;First<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;First<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;FirstOrDefault<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;FirstOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;FirstOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;FirstOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;ForAll<>;(System.Linq.ParallelQuery,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[0];Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupBy<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;GroupBy<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;GroupJoin<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Intersect<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Intersect<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Intersect<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | @@ -3888,134 +5380,215 @@ summary | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Join<,,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Last<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;Last<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Last<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;Last<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;LastOrDefault<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;LastOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;LastOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;LastOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;LongCount<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;LongCount<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Max<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Min<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;OfType<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;OrderBy<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;OrderByDescending<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Repeat<>;(TResult,System.Int32);;Argument[0];ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;Reverse<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Select<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,,>;(System.Linq.ParallelQuery,System.Func>,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SelectMany<,>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Single<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;Single<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Single<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;Single<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SingleOrDefault<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;false;SingleOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SingleOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;ParallelEnumerable;false;SingleOrDefault<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Skip<>;(System.Linq.ParallelQuery,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;SkipWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;Sum<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Take<>;(System.Linq.ParallelQuery,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;TakeWhile<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ThenBy<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ThenByDescending<,>;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToArray<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToDictionary<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToList<>;(System.Linq.ParallelQuery);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,,>;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;ToLookup<,>;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Union<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Union<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Union<>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | @@ -4026,8 +5599,10 @@ summary | System.Linq;ParallelEnumerable;false;Union<>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Where<>;(System.Linq.ParallelQuery,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;WithCancellation<>;(System.Linq.ParallelQuery,System.Threading.CancellationToken);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;WithDegreeOfParallelism<>;(System.Linq.ParallelQuery,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;false;WithExecutionMode<>;(System.Linq.ParallelQuery,System.Linq.ParallelExecutionMode);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -4035,177 +5610,281 @@ summary | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);;Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);;Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;ParallelEnumerable;false;Zip<,,>;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | +| System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[3].ReturnValue;ReturnValue;value;manual | +| System.Linq;Queryable;false;Aggregate<,,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Aggregate<,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;false;Aggregate<,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);;Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;Aggregate<,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;ReturnValue;value;manual | +| System.Linq;Queryable;false;Aggregate<,>;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Aggregate<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;Queryable;false;Aggregate<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1].ReturnValue;ReturnValue;value;manual | +| System.Linq;Queryable;false;Aggregate<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;All<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;All<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Any<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Any<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;AsQueryable;(System.Collections.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;AsQueryable<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Average<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Cast<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Concat<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Concat<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Count<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Count<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;DefaultIfEmpty<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;DefaultIfEmpty<>;(System.Linq.IQueryable,TSource);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;DefaultIfEmpty<>;(System.Linq.IQueryable,TSource);;Argument[1];ReturnValue;value;manual | | System.Linq;Queryable;false;Distinct<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Distinct<>;(System.Linq.IQueryable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;DistinctBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;DistinctBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;ElementAt<>;(System.Linq.IQueryable,System.Int32);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;ElementAtOrDefault<>;(System.Linq.IQueryable,System.Int32);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;Except<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;Except<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;ExceptBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;ExceptBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;First<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;First<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;First<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;First<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;FirstOrDefault<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;FirstOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;FirstOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;FirstOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;FirstOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[3].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;GroupBy<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;GroupBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;GroupJoin<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Intersect<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Intersect<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Intersect<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Intersect<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;IntersectBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;IntersectBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;Argument[4].Parameter[1];value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[4].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Join<,,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Last<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;Last<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Last<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;Last<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;LastOrDefault<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;LastOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;LastOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;LastOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;LastOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;LongCount<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;LongCount<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Max<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Max<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;MaxBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;MaxBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;Min<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Min<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;MinBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;MinBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;OfType<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;OrderBy<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;OrderByDescending<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Reverse<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Select<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | +| System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SelectMany<,,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SelectMany<,>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Single<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;Single<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Single<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;Single<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SingleOrDefault<>;(System.Linq.IQueryable);;Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;false;SingleOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SingleOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue;value;manual | +| System.Linq;Queryable;false;SingleOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Linq;Queryable;false;SingleOrDefault<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;Skip<>;(System.Linq.IQueryable,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;SkipWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | +| System.Linq;Queryable;false;Sum<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Take<>;(System.Linq.IQueryable,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;TakeWhile<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;ThenBy<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;ThenByDescending<,>;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Union<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Union<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Union<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;false;Union<>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);;Argument[1].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;UnionBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Linq;Queryable;false;UnionBy<,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[0].Element;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Where<>;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;false;Zip<,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;false;Zip<,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;false;Zip<,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[2].ReturnValue;ReturnValue.Element;value;manual | +| System.Linq;Queryable;false;Zip<,,>;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);;Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Net.Cache;HttpRequestCachePolicy;false;HttpRequestCachePolicy;(System.DateTime);;Argument[0];Argument[this];taint;df-generated | | System.Net.Cache;HttpRequestCachePolicy;false;HttpRequestCachePolicy;(System.Net.Cache.HttpCacheAgeControl,System.TimeSpan);;Argument[1];Argument[this];taint;df-generated | | System.Net.Cache;HttpRequestCachePolicy;false;HttpRequestCachePolicy;(System.Net.Cache.HttpCacheAgeControl,System.TimeSpan,System.TimeSpan);;Argument[1];Argument[this];taint;df-generated | @@ -4368,6 +6047,7 @@ summary | System.Net.Http;DelegatingHandler;false;get_InnerHandler;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;DelegatingHandler;false;set_InnerHandler;(System.Net.Http.HttpMessageHandler);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;df-generated | +| System.Net.Http;HeaderEncodingSelector<>;false;BeginInvoke;(System.String,TContext,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;df-generated | @@ -4383,6 +6063,7 @@ summary | System.Net.Http;HttpClient;false;set_DefaultRequestVersion;(System.Version);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;HttpClient;false;set_Timeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;HttpClientHandler;false;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | +| System.Net.Http;HttpClientHandler;false;set_ServerCertificateCustomValidationCallback;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;HttpContent;false;CopyTo;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpContent;false;CopyToAsync;(System.IO.Stream);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpContent;false;CopyToAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[this];Argument[0];taint;df-generated | @@ -4430,6 +6111,7 @@ summary | System.Net.Http;MultipartContent;false;MultipartContent;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Net.Http;MultipartContent;false;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;df-generated | | System.Net.Http;MultipartContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[this];Argument[0];taint;df-generated | +| System.Net.Http;MultipartContent;false;set_HeaderEncodingSelector;(System.Net.Http.HeaderEncodingSelector);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent);;Argument[0];Argument[this].Element;value;manual | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent,System.String,System.String);;Argument[0];Argument[this];taint;df-generated | @@ -4456,6 +6138,7 @@ summary | System.Net.Http;SocketsHttpHandler;false;get_ResponseHeaderEncodingSelector;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;get_SslOptions;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_ActivityHeadersPropagator;(System.Diagnostics.DistributedContextPropagator);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Http;SocketsHttpHandler;false;set_ConnectCallback;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;SocketsHttpHandler;false;set_ConnectTimeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_CookieContainer;(System.Net.CookieContainer);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[this];taint;df-generated | @@ -4463,10 +6146,13 @@ summary | System.Net.Http;SocketsHttpHandler;false;set_Expect100ContinueTimeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_KeepAlivePingDelay;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_KeepAlivePingTimeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Http;SocketsHttpHandler;false;set_PlaintextStreamFilter;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;SocketsHttpHandler;false;set_PooledConnectionIdleTimeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_PooledConnectionLifetime;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpHandler;false;set_Proxy;(System.Net.IWebProxy);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Http;SocketsHttpHandler;false;set_RequestHeaderEncodingSelector;(System.Net.Http.HeaderEncodingSelector);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;SocketsHttpHandler;false;set_ResponseDrainTimeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Http;SocketsHttpHandler;false;set_ResponseHeaderEncodingSelector;(System.Net.Http.HeaderEncodingSelector);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Http;SocketsHttpHandler;false;set_SslOptions;(System.Net.Security.SslClientAuthenticationOptions);;Argument[0];Argument[this];taint;df-generated | | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;false;get_InitialRequestMessage;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;false;get_NegotiatedHttpVersion;();;Argument[this];ReturnValue;taint;df-generated | @@ -4558,6 +6244,7 @@ summary | System.Net.Mail;MailMessage;false;set_Sender;(System.Net.Mail.MailAddress);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;MailMessage;false;set_Subject;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;MailMessage;false;set_SubjectEncoding;(System.Text.Encoding);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Mail;SendCompletedEventHandler;false;BeginInvoke;(System.Object,System.ComponentModel.AsyncCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net.Mail;SmtpClient;false;Send;(System.Net.Mail.MailMessage);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;SmtpClient;false;Send;(System.String,System.String,System.String,System.String);;Argument[3];Argument[this];taint;df-generated | | System.Net.Mail;SmtpClient;false;SendAsync;(System.Net.Mail.MailMessage,System.Object);;Argument[0];Argument[this];taint;df-generated | @@ -4570,10 +6257,12 @@ summary | System.Net.Mail;SmtpClient;false;SendMailAsync;(System.String,System.String,System.String,System.String,System.Threading.CancellationToken);;Argument[4];ReturnValue;taint;df-generated | | System.Net.Mail;SmtpClient;false;SmtpClient;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;SmtpClient;false;SmtpClient;(System.String,System.Int32);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Mail;SmtpClient;false;add_SendCompleted;(System.Net.Mail.SendCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Mail;SmtpClient;false;get_Credentials;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Mail;SmtpClient;false;get_Host;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Mail;SmtpClient;false;get_PickupDirectoryLocation;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Mail;SmtpClient;false;get_TargetName;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Mail;SmtpClient;false;remove_SendCompleted;(System.Net.Mail.SendCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Mail;SmtpClient;false;set_Credentials;(System.Net.ICredentialsByHost);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;SmtpClient;false;set_Host;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;SmtpClient;false;set_PickupDirectoryLocation;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -4603,15 +6292,27 @@ summary | System.Net.Mime;ContentType;false;set_MediaType;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.NetworkInformation;GatewayIPAddressInformationCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Net.NetworkInformation;IPAddressInformationCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System.Net.NetworkInformation;IPGlobalProperties;true;BeginGetUnicastAddresses;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.NetworkInformation;MulticastIPAddressInformationCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System.Net.NetworkInformation;NetworkAddressChangedEventHandler;false;BeginInvoke;(System.Object,System.EventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;NetworkAvailabilityChangedEventHandler;false;BeginInvoke;(System.Object,System.Net.NetworkInformation.NetworkAvailabilityEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;NetworkChange;false;add_NetworkAddressChanged;(System.Net.NetworkInformation.NetworkAddressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;NetworkChange;false;add_NetworkAvailabilityChanged;(System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;NetworkChange;false;remove_NetworkAddressChanged;(System.Net.NetworkInformation.NetworkAddressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;NetworkChange;false;remove_NetworkAvailabilityChanged;(System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.NetworkInformation;PhysicalAddress;false;PhysicalAddress;(System.Byte[]);;Argument[0].Element;Argument[this];taint;df-generated | +| System.Net.NetworkInformation;Ping;false;add_PingCompleted;(System.Net.NetworkInformation.PingCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;Ping;false;remove_PingCompleted;(System.Net.NetworkInformation.PingCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.NetworkInformation;PingCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.NetworkInformation.PingCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net.NetworkInformation;UnicastIPAddressInformationCollection;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Net.Quic;QuicConnection;false;get_LocalEndPoint;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Quic;QuicConnection;false;get_NegotiatedApplicationProtocol;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Quic;QuicConnection;false;get_RemoteEndPoint;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Quic;QuicListenerOptions;false;set_ConnectionOptionsCallback;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Security;AuthenticatedStream;false;AuthenticatedStream;(System.IO.Stream,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Net.Security;AuthenticatedStream;false;DisposeAsync;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;AuthenticatedStream;false;get_InnerStream;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Security;LocalCertificateSelectionCallback;false;BeginInvoke;(System.Object,System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Cryptography.X509Certificates.X509Certificate,System.String[],System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String);;Argument[2];Argument[this];taint;df-generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel);;Argument[1];Argument[this];taint;df-generated | @@ -4628,17 +6329,45 @@ summary | System.Net.Security;NegotiateStream;false;AuthenticateAsServer;(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy);;Argument[0];Argument[this];taint;df-generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsServerAsync;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel);;Argument[1];Argument[this];taint;df-generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsServerAsync;(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsClient;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsClient;(System.Net.NetworkCredential,System.String,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsClient;(System.Net.NetworkCredential,System.String,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsServer;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsServer;(System.Net.NetworkCredential,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsServer;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;NegotiateStream;false;BeginAuthenticateAsServer;(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Net.Security;NegotiateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Security;NegotiateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Security;NegotiateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Net.Security;NegotiateStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Security;NegotiateStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Net.Security;NegotiateStream;false;get_RemoteIdentity;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Security;RemoteCertificateValidationCallback;false;BeginInvoke;(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;ServerCertificateSelectionCallback;false;BeginInvoke;(System.Object,System.String,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;ServerOptionsSelectionCallback;false;BeginInvoke;(System.Net.Security.SslStream,System.Net.Security.SslClientHelloInfo,System.Object,System.Threading.CancellationToken,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslApplicationProtocol;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;SslApplicationProtocol;false;get_Protocol;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;SslCertificateTrust;false;CreateForX509Collection;(System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Net.Security;SslCertificateTrust;false;CreateForX509Store;(System.Security.Cryptography.X509Certificates.X509Store,System.Boolean);;Argument[0];ReturnValue;taint;df-generated | +| System.Net.Security;SslClientAuthenticationOptions;false;set_LocalCertificateSelectionCallback;(System.Net.Security.LocalCertificateSelectionCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslClientAuthenticationOptions;false;set_RemoteCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslServerAuthenticationOptions;false;set_RemoteCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslServerAuthenticationOptions;false;set_ServerCertificateSelectionCallback;(System.Net.Security.ServerCertificateSelectionCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;AuthenticateAsServerAsync;(System.Net.Security.ServerOptionsSelectionCallback,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsClient;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.Boolean,System.Boolean,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.Boolean,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | +| System.Net.Security;SslStream;false;SslStream;(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;SslStream;(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.LocalCertificateSelectionCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;SslStream;(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.LocalCertificateSelectionCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;SslStream;(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.LocalCertificateSelectionCallback,System.Net.Security.EncryptionPolicy);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Security;SslStream;false;SslStream;(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.LocalCertificateSelectionCallback,System.Net.Security.EncryptionPolicy);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;false;Write;(System.Byte[]);;Argument[0].Element;Argument[this];taint;df-generated | | System.Net.Security;SslStream;false;get_LocalCertificate;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;SslStream;false;get_NegotiatedApplicationProtocol;();;Argument[this];ReturnValue;taint;df-generated | @@ -4674,6 +6403,27 @@ summary | System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[this];Argument[0];taint;df-generated | | System.Net.Sockets;Socket;false;AcceptAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Sockets;Socket;false;AcceptAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Sockets;Socket;false;BeginAccept;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginAccept;(System.Int32,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginAccept;(System.Net.Sockets.Socket,System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginConnect;(System.Net.EndPoint,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginConnect;(System.Net.IPAddress,System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginConnect;(System.Net.IPAddress[],System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginConnect;(System.String,System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginDisconnect;(System.Boolean,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceive;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceive;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceive;(System.Collections.Generic.IList>,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceive;(System.Collections.Generic.IList>,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceiveFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginReceiveMessageFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSend;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSend;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSend;(System.Collections.Generic.IList>,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSend;(System.Collections.Generic.IList>,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSendFile;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSendFile;(System.String,System.Byte[],System.Byte[],System.Net.Sockets.TransmitFileOptions,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;Socket;false;BeginSendTo;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;Socket;false;Bind;(System.Net.EndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;Socket;false;Connect;(System.Net.EndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;Socket;false;Connect;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[this];taint;df-generated | @@ -4771,6 +6521,7 @@ summary | System.Net.Sockets;Socket;false;get_SafeHandle;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;SetBuffer;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;SetBuffer;(System.Memory);;Argument[0];Argument[this];taint;df-generated | +| System.Net.Sockets;SocketAsyncEventArgs;false;add_Completed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;get_AcceptSocket;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;get_BufferList;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;get_ConnectByNameError;();;Argument[this];ReturnValue;taint;df-generated | @@ -4780,6 +6531,7 @@ summary | System.Net.Sockets;SocketAsyncEventArgs;false;get_RemoteEndPoint;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;get_SendPacketsElements;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;get_UserToken;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Sockets;SocketAsyncEventArgs;false;remove_Completed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;set_AcceptSocket;(System.Net.Sockets.Socket);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;set_BufferList;(System.Collections.Generic.IList>);;Argument[0].Element;Argument[this];taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;false;set_RemoteEndPoint;(System.Net.EndPoint);;Argument[0];Argument[this];taint;df-generated | @@ -4803,6 +6555,9 @@ summary | System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketTaskExtensions;false;SendToAsync;(System.Net.Sockets.Socket,System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[3];Argument[0];taint;df-generated | +| System.Net.Sockets;TcpClient;false;BeginConnect;(System.Net.IPAddress,System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;TcpClient;false;BeginConnect;(System.Net.IPAddress[],System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;TcpClient;false;BeginConnect;(System.String,System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;TcpClient;false;Connect;(System.Net.IPEndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;TcpClient;false;ConnectAsync;(System.Net.IPEndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;TcpClient;false;ConnectAsync;(System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | @@ -4814,12 +6569,18 @@ summary | System.Net.Sockets;TcpListener;false;AcceptSocketAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Sockets;TcpListener;false;AcceptSocketAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;TcpListener;false;AcceptTcpClient;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Sockets;TcpListener;false;BeginAcceptSocket;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;TcpListener;false;BeginAcceptTcpClient;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;TcpListener;false;EndAcceptSocket;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Sockets;TcpListener;false;EndAcceptTcpClient;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPEndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;TcpListener;false;get_LocalEndpoint;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;TcpListener;false;get_Server;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net.Sockets;UdpClient;false;BeginReceive;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;UdpClient;false;BeginSend;(System.Byte[],System.Int32,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;UdpClient;false;BeginSend;(System.Byte[],System.Int32,System.Net.IPEndPoint,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Net.Sockets;UdpClient;false;BeginSend;(System.Byte[],System.Int32,System.String,System.Int32,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;UdpClient;false;Connect;(System.Net.IPEndPoint);;Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;UdpClient;false;EndReceive;(System.IAsyncResult,System.Net.IPEndPoint);;Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;UdpClient;false;Receive;(System.Net.IPEndPoint);;Argument[this];ReturnValue;taint;df-generated | @@ -4853,6 +6614,7 @@ summary | System.Net.WebSockets;ClientWebSocketOptions;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[this];taint;df-generated | | System.Net.WebSockets;ClientWebSocketOptions;false;set_KeepAliveInterval;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.WebSockets;ClientWebSocketOptions;false;set_Proxy;(System.Net.IWebProxy);;Argument[0];Argument[this];taint;df-generated | +| System.Net.WebSockets;ClientWebSocketOptions;false;set_RemoteCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.WebSockets;HttpListenerWebSocketContext;false;get_CookieCollection;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.WebSockets;HttpListenerWebSocketContext;false;get_Headers;();;Argument[this];ReturnValue;taint;df-generated | | System.Net.WebSockets;HttpListenerWebSocketContext;false;get_Origin;();;Argument[this];ReturnValue;taint;df-generated | @@ -4872,8 +6634,10 @@ summary | System.Net.WebSockets;WebSocketCreationOptions;false;set_KeepAliveInterval;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Net.WebSockets;WebSocketCreationOptions;false;set_SubProtocol;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net.WebSockets;WebSocketException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System.Net;AuthenticationSchemeSelector;false;BeginInvoke;(System.Net.HttpListenerRequest,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Net;Authorization;false;get_ProtectionRealm;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;Authorization;false;set_ProtectionRealm;(System.String[]);;Argument[0].Element;Argument[this];taint;df-generated | +| System.Net;BindIPEndPoint;false;BeginInvoke;(System.Net.ServicePoint,System.Net.IPEndPoint,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Net;Cookie;false;Cookie;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;Cookie;false;Cookie;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Net;Cookie;false;Cookie;(System.String,System.String,System.String);;Argument[2];Argument[this];taint;df-generated | @@ -4902,6 +6666,11 @@ summary | System.Net;CookieCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Net;CookieException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Net;CredentialCache;false;GetCredential;(System.Uri,System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Net;Dns;false;BeginGetHostAddresses;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net;Dns;false;BeginGetHostByName;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net;Dns;false;BeginGetHostEntry;(System.Net.IPAddress,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net;Dns;false;BeginGetHostEntry;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net;Dns;false;BeginResolve;(System.String,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Net;Dns;false;EndGetHostAddresses;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;Dns;false;EndGetHostByName;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;Dns;false;EndGetHostEntry;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | @@ -4910,7 +6679,10 @@ summary | System.Net;DnsEndPoint;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;DnsEndPoint;false;get_Host;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;DownloadDataCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;DownloadDataCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.DownloadDataCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net;DownloadProgressChangedEventHandler;false;BeginInvoke;(System.Object,System.Net.DownloadProgressChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;DownloadStringCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;DownloadStringCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.DownloadStringCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;FileWebRequest;false;EndGetRequestStream;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;FileWebRequest;false;EndGetResponse;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;FileWebRequest;false;GetRequestStream;();;Argument[this];ReturnValue;taint;df-generated | @@ -4947,6 +6719,9 @@ summary | System.Net;FtpWebResponse;false;get_ResponseUri;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;FtpWebResponse;false;get_StatusDescription;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;FtpWebResponse;false;get_WelcomeMessage;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;HttpContinueDelegate;false;BeginInvoke;(System.Int32,System.Net.WebHeaderCollection,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net;HttpListener+ExtendedProtectionSelector;false;BeginInvoke;(System.Net.HttpListenerRequest,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Net;HttpListener;false;BeginGetContext;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListener;false;get_AuthenticationSchemeSelectorDelegate;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListener;false;get_DefaultServiceNames;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListener;false;get_ExtendedProtectionPolicy;();;Argument[this];ReturnValue;taint;df-generated | @@ -4954,11 +6729,14 @@ summary | System.Net;HttpListener;false;get_Prefixes;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListener;false;get_Realm;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListener;false;get_TimeoutManager;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;HttpListener;false;set_AuthenticationSchemeSelectorDelegate;(System.Net.AuthenticationSchemeSelector);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListener;false;set_ExtendedProtectionPolicy;(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy);;Argument[0];Argument[this];taint;df-generated | +| System.Net;HttpListener;false;set_ExtendedProtectionSelectorDelegate;(System.Net.HttpListener+ExtendedProtectionSelector);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListener;false;set_Realm;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpListenerContext;false;get_Response;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerContext;false;get_User;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerPrefixCollection;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | +| System.Net;HttpListenerRequest;false;BeginGetClientCertificate;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListenerRequest;false;EndGetClientCertificate;(System.IAsyncResult);;Argument[0];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;false;get_ContentType;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;false;get_Cookies;();;Argument[this];ReturnValue;taint;df-generated | @@ -5010,11 +6788,13 @@ summary | System.Net;HttpWebRequest;false;get_TransferEncoding;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebRequest;false;get_UserAgent;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebRequest;false;set_ClientCertificates;(System.Security.Cryptography.X509Certificates.X509CertificateCollection);;Argument[0].Element;Argument[this];taint;df-generated | +| System.Net;HttpWebRequest;false;set_ContinueDelegate;(System.Net.HttpContinueDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpWebRequest;false;set_CookieContainer;(System.Net.CookieContainer);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpWebRequest;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpWebRequest;false;set_Host;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpWebRequest;false;set_Method;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;HttpWebRequest;false;set_Proxy;(System.Net.IWebProxy);;Argument[0];Argument[this];taint;df-generated | +| System.Net;HttpWebRequest;false;set_ServerCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpWebResponse;false;GetResponseHeader;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebResponse;false;get_CharacterSet;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebResponse;false;get_Cookies;();;Argument[this];ReturnValue;taint;df-generated | @@ -5045,12 +6825,21 @@ summary | System.Net;NetworkCredential;false;set_Password;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;NetworkCredential;false;set_UserName;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;OpenReadCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;OpenReadCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.OpenReadCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;OpenWriteCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;OpenWriteCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.OpenWriteCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;ProtocolViolationException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System.Net;ServicePoint;false;set_BindIPEndPointDelegate;(System.Net.BindIPEndPoint);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;ServicePointManager;false;set_ServerCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;UploadDataCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;UploadDataCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.UploadDataCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;UploadFileCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;UploadFileCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.UploadFileCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Net;UploadProgressChangedEventHandler;false;BeginInvoke;(System.Object,System.Net.UploadProgressChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;UploadStringCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;UploadStringCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.UploadStringCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;UploadValuesCompletedEventArgs;false;get_Result;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;UploadValuesCompletedEventHandler;false;BeginInvoke;(System.Object,System.Net.UploadValuesCompletedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;WebClient;false;DownloadData;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;DownloadData;(System.Uri);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;DownloadDataAsync;(System.Uri);;Argument[0];Argument[this];taint;df-generated | @@ -5182,11 +6971,35 @@ summary | System.Net;WebClient;false;UploadValuesTaskAsync;(System.Uri,System.Collections.Specialized.NameValueCollection);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;UploadValuesTaskAsync;(System.Uri,System.String,System.Collections.Specialized.NameValueCollection);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;UploadValuesTaskAsync;(System.Uri,System.String,System.Collections.Specialized.NameValueCollection);;Argument[1];Argument[this];taint;df-generated | +| System.Net;WebClient;false;add_DownloadDataCompleted;(System.Net.DownloadDataCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_DownloadFileCompleted;(System.ComponentModel.AsyncCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_DownloadProgressChanged;(System.Net.DownloadProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_DownloadStringCompleted;(System.Net.DownloadStringCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_OpenReadCompleted;(System.Net.OpenReadCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_OpenWriteCompleted;(System.Net.OpenWriteCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_UploadDataCompleted;(System.Net.UploadDataCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_UploadFileCompleted;(System.Net.UploadFileCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_UploadProgressChanged;(System.Net.UploadProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_UploadStringCompleted;(System.Net.UploadStringCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_UploadValuesCompleted;(System.Net.UploadValuesCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;add_WriteStreamClosed;(System.Net.WriteStreamClosedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;WebClient;false;get_BaseAddress;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;WebClient;false;get_Credentials;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;WebClient;false;get_Encoding;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;WebClient;false;get_Proxy;();;Argument[this];ReturnValue;taint;df-generated | | System.Net;WebClient;false;get_ResponseHeaders;();;Argument[this];ReturnValue;taint;df-generated | +| System.Net;WebClient;false;remove_DownloadDataCompleted;(System.Net.DownloadDataCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_DownloadFileCompleted;(System.ComponentModel.AsyncCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_DownloadProgressChanged;(System.Net.DownloadProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_DownloadStringCompleted;(System.Net.DownloadStringCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_OpenReadCompleted;(System.Net.OpenReadCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_OpenWriteCompleted;(System.Net.OpenWriteCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_UploadDataCompleted;(System.Net.UploadDataCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_UploadFileCompleted;(System.Net.UploadFileCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_UploadProgressChanged;(System.Net.UploadProgressChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_UploadStringCompleted;(System.Net.UploadStringCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_UploadValuesCompleted;(System.Net.UploadValuesCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebClient;false;remove_WriteStreamClosed;(System.Net.WriteStreamClosedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;WebClient;false;set_BaseAddress;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[this];taint;df-generated | | System.Net;WebClient;false;set_Encoding;(System.Text.Encoding);;Argument[0];Argument[this];taint;df-generated | @@ -5211,12 +7024,15 @@ summary | System.Net;WebRequest;false;CreateDefault;(System.Uri);;Argument[0];ReturnValue;taint;df-generated | | System.Net;WebRequest;false;CreateHttp;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Net;WebRequest;false;CreateHttp;(System.Uri);;Argument[0];ReturnValue;taint;df-generated | +| System.Net;WebRequest;true;BeginGetRequestStream;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Net;WebRequest;true;BeginGetResponse;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;WebUtility;false;HtmlDecode;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Net;WebUtility;false;HtmlDecode;(System.String,System.IO.TextWriter);;Argument[0];Argument[1];taint;df-generated | | System.Net;WebUtility;false;HtmlEncode;(System.String);;Argument[0];ReturnValue;taint;manual | | System.Net;WebUtility;false;HtmlEncode;(System.String,System.IO.TextWriter);;Argument[0];ReturnValue;taint;manual | | System.Net;WebUtility;false;UrlDecode;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Net;WebUtility;false;UrlEncode;(System.String);;Argument[0];ReturnValue;taint;manual | +| System.Net;WriteStreamClosedEventHandler;false;BeginInvoke;(System.Object,System.Net.WriteStreamClosedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Numerics;BigInteger;false;Abs;(System.Numerics.BigInteger);;Argument[0];ReturnValue;taint;df-generated | | System.Numerics;BigInteger;false;DivRem;(System.Numerics.BigInteger,System.Numerics.BigInteger,System.Numerics.BigInteger);;Argument[0];ReturnValue;taint;df-generated | | System.Numerics;BigInteger;false;Max;(System.Numerics.BigInteger,System.Numerics.BigInteger);;Argument[0];ReturnValue;taint;df-generated | @@ -5570,12 +7386,18 @@ summary | System.Reflection.Emit;TypeBuilder;false;get_Namespace;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;TypeBuilder;false;get_ReflectedType;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;TypeBuilder;false;get_UnderlyingSystemType;();;Argument[this];ReturnValue;value;df-generated | +| System.Reflection.Metadata.Ecma335;BlobEncoder;false;CustomAttributeSignature;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;BlobEncoder;false;CustomAttributeSignature;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;CustomModifiersEncoder;false;AddModifier;(System.Reflection.Metadata.EntityHandle,System.Boolean);;Argument[this];ReturnValue;value;df-generated | | System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;Add;(System.Reflection.Metadata.ExceptionRegionKind,System.Int32,System.Int32,System.Int32,System.Int32,System.Reflection.Metadata.EntityHandle,System.Int32);;Argument[this];ReturnValue;value;df-generated | | System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddCatch;(System.Int32,System.Int32,System.Int32,System.Int32,System.Reflection.Metadata.EntityHandle);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddFault;(System.Int32,System.Int32,System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddFilter;(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddFinally;(System.Int32,System.Int32,System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedScalar;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedScalar;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedVector;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedVector;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;MetadataBuilder;false;AddAssembly;(System.Reflection.Metadata.StringHandle,System.Version,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.BlobHandle,System.Reflection.AssemblyFlags,System.Reflection.AssemblyHashAlgorithm);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;MetadataBuilder;false;AddAssembly;(System.Reflection.Metadata.StringHandle,System.Version,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.BlobHandle,System.Reflection.AssemblyFlags,System.Reflection.AssemblyHashAlgorithm);;Argument[1];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;MetadataBuilder;false;AddAssembly;(System.Reflection.Metadata.StringHandle,System.Version,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.BlobHandle,System.Reflection.AssemblyFlags,System.Reflection.AssemblyHashAlgorithm);;Argument[2];Argument[this];taint;df-generated | @@ -5586,12 +7408,20 @@ summary | System.Reflection.Metadata.Ecma335;MetadataBuilder;false;AddModule;(System.Int32,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.GuidHandle,System.Reflection.Metadata.GuidHandle,System.Reflection.Metadata.GuidHandle);;Argument[4];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;MetadataRootBuilder;false;MetadataRootBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.String,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;MetadataRootBuilder;false;get_Sizes;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.Metadata.Ecma335;MethodSignatureEncoder;false;Parameters;(System.Int32,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;MethodSignatureEncoder;false;Parameters;(System.Int32,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;NamedArgumentsEncoder;false;AddArgument;(System.Boolean,System.Action,System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;NamedArgumentsEncoder;false;AddArgument;(System.Boolean,System.Action,System.Action,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;NamedArgumentsEncoder;false;AddArgument;(System.Boolean,System.Action,System.Action,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;PermissionSetEncoder;false;AddPermission;(System.String,System.Collections.Immutable.ImmutableArray);;Argument[this];ReturnValue;value;df-generated | | System.Reflection.Metadata.Ecma335;PermissionSetEncoder;false;AddPermission;(System.String,System.Reflection.Metadata.BlobBuilder);;Argument[this];ReturnValue;value;df-generated | +| System.Reflection.Metadata.Ecma335;PortablePdbBuilder;false;PortablePdbBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.Collections.Immutable.ImmutableArray,System.Reflection.Metadata.MethodDefinitionHandle,System.Func,System.Reflection.Metadata.BlobContentId>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;PortablePdbBuilder;false;Serialize;(System.Reflection.Metadata.BlobBuilder);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureDecoder<,>;false;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureDecoder<,>;false;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);;Argument[1];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureDecoder<,>;false;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);;Argument[2];Argument[this];taint;df-generated | +| System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;false;Array;(System.Action,System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;false;Array;(System.Action,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;false;Array;(System.Reflection.Metadata.Ecma335.SignatureTypeEncoder,System.Reflection.Metadata.Ecma335.ArrayShapeEncoder);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;false;Pointer;();;Argument[this];ReturnValue;value;df-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;false;SZArray;();;Argument[this];ReturnValue;value;df-generated | @@ -5746,10 +7576,14 @@ summary | System.Reflection.Metadata;TypeDefinition;false;GetMethods;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;TypeDefinition;false;GetProperties;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;TypeSpecification;false;GetCustomAttributes;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.PortableExecutable;DebugDirectoryBuilder;false;AddEntry<>;(System.Reflection.PortableExecutable.DebugDirectoryEntryType,System.UInt32,System.UInt32,TData,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;ManagedPEBuilder;false;GetDirectories;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.PortableExecutable;ManagedPEBuilder;false;ManagedPEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Reflection.Metadata.Ecma335.MetadataRootBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.PortableExecutable.ResourceSectionBuilder,System.Reflection.PortableExecutable.DebugDirectoryBuilder,System.Int32,System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.PortableExecutable.CorFlags,System.Func,System.Reflection.Metadata.BlobContentId>);;Argument[10];Argument[10].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;ManagedPEBuilder;false;SerializeSection;(System.String,System.Reflection.PortableExecutable.SectionLocation);;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.PortableExecutable;ManagedPEBuilder;false;Sign;(System.Reflection.Metadata.BlobBuilder,System.Func,System.Byte[]>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;PEBuilder+Section;false;Section;(System.String,System.Reflection.PortableExecutable.SectionCharacteristics);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEBuilder;false;GetSections;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection.PortableExecutable;PEBuilder;false;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;PEBuilder;false;Serialize;(System.Reflection.Metadata.BlobBuilder);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEHeaders;false;get_CoffHeader;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;PEHeaders;false;get_CorHeader;();;Argument[this];ReturnValue;taint;df-generated | @@ -5763,6 +7597,7 @@ summary | System.Reflection.PortableExecutable;PEReader;false;PEReader;(System.Byte*,System.Int32,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEReader;false;PEReader;(System.Collections.Immutable.ImmutableArray);;Argument[0].Element;Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEReader;false;PEReader;(System.IO.Stream,System.Reflection.PortableExecutable.PEStreamOptions,System.Int32);;Argument[0];Argument[this];taint;df-generated | +| System.Reflection.PortableExecutable;PEReader;false;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;PEReader;false;get_PEHeaders;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Assembly;false;CreateQualifiedName;(System.String,System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Reflection;Assembly;false;CreateQualifiedName;(System.String,System.String);;Argument[1];ReturnValue;taint;df-generated | @@ -5771,6 +7606,8 @@ summary | System.Reflection;Assembly;true;GetName;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Assembly;true;GetType;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Assembly;true;GetType;(System.String,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection;Assembly;true;add_ModuleResolve;(System.Reflection.ModuleResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Reflection;Assembly;true;remove_ModuleResolve;(System.Reflection.ModuleResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Reflection;AssemblyName;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;AssemblyName;false;GetPublicKey;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;AssemblyName;false;SetPublicKey;(System.Byte[]);;Argument[0].Element;Argument[this];taint;df-generated | @@ -5814,6 +7651,7 @@ summary | System.Reflection;ExceptionHandlingClause;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;IntrospectionExtensions;false;GetTypeInfo;(System.Type);;Argument[0];ReturnValue;taint;df-generated | | System.Reflection;LocalVariableInfo;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection;MemberFilter;false;BeginInvoke;(System.Reflection.MemberInfo,System.Object,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Reflection;MethodInfo;false;CreateDelegate<>;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;MethodInfoExtensions;false;GetBaseDefinition;(System.Reflection.MethodInfo);;Argument[0];ReturnValue;taint;df-generated | | System.Reflection;Module;false;GetField;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -5823,7 +7661,9 @@ summary | System.Reflection;Module;false;GetMethod;(System.String,System.Type[]);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Module;false;GetMethods;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Module;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection;Module;true;FindTypes;(System.Reflection.TypeFilter,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Reflection;Module;true;GetType;(System.String,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | +| System.Reflection;ModuleResolveEventHandler;false;BeginInvoke;(System.Object,System.ResolveEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Reflection;ParameterInfo;false;GetRealObject;(System.Runtime.Serialization.StreamingContext);;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;ParameterInfo;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Reflection;ParameterInfo;false;get_Member;();;Argument[this];ReturnValue;taint;df-generated | @@ -5915,6 +7755,7 @@ summary | System.Reflection;TypeExtensions;false;GetProperty;(System.Type,System.String,System.Reflection.BindingFlags);;Argument[0];ReturnValue;taint;df-generated | | System.Reflection;TypeExtensions;false;GetProperty;(System.Type,System.String,System.Type);;Argument[0];ReturnValue;taint;df-generated | | System.Reflection;TypeExtensions;false;GetProperty;(System.Type,System.String,System.Type,System.Type[]);;Argument[0];ReturnValue;taint;df-generated | +| System.Reflection;TypeFilter;false;BeginInvoke;(System.Type,System.Object,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Reflection;TypeInfo;false;GetTypeInfo;();;Argument[this];ReturnValue;value;df-generated | | System.Reflection;TypeInfo;true;AsType;();;Argument[this];ReturnValue;value;df-generated | | System.Reflection;TypeInfo;true;GetDeclaredEvent;(System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -5952,6 +7793,7 @@ summary | System.Resources;ResourceSet;false;ResourceSet;(System.Resources.IResourceReader);;Argument[0].Element;Argument[this];taint;df-generated | | System.Resources;ResourceWriter;false;ResourceWriter;(System.IO.Stream);;Argument[0];Argument[this];taint;df-generated | | System.Resources;ResourceWriter;false;ResourceWriter;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Resources;ResourceWriter;false;set_TypeNameConverter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;AsyncIteratorMethodBuilder;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;AsyncIteratorMethodBuilder;false;AwaitUnsafeOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;AsyncTaskMethodBuilder;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | @@ -5968,8 +7810,10 @@ summary | System.Runtime.CompilerServices;AsyncValueTaskMethodBuilder<>;false;SetResult;(TResult);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;AsyncValueTaskMethodBuilder<>;false;get_Task;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;CallSite;false;get_Binder;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;ConditionalWeakTable<,>+CreateValueCallback;false;BeginInvoke;(TKey,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable<,>;false;Clear;();;Argument[this].WithoutElement;Argument[this];value;manual | | System.Runtime.CompilerServices;ConditionalWeakTable<,>;false;GetOrCreateValue;(TKey);;Argument[0];ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;ConditionalWeakTable<,>;false;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable<,>+CreateValueCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable<>;false;ConfigureAwait;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable<>;false;GetAsyncEnumerator;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable<>;false;WithCancellation;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | @@ -5988,6 +7832,8 @@ summary | System.Runtime.CompilerServices;DefaultInterpolatedStringHandler;false;DefaultInterpolatedStringHandler;(System.Int32,System.Int32,System.IFormatProvider,System.Span);;Argument[3];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;FormattableStringFactory;false;Create;(System.String,System.Object[]);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;FormattableStringFactory;false;Create;(System.String,System.Object[]);;Argument[1].Element;ReturnValue;taint;df-generated | +| System.Runtime.CompilerServices;ICriticalNotifyCompletion;true;UnsafeOnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;INotifyCompletion;true;OnCompleted;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder;false;AwaitUnsafeOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[this];taint;df-generated | @@ -5996,6 +7842,10 @@ summary | System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;get_Task;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;ReadOnlyCollectionBuilder;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[this];taint;df-generated | | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.Runtime.CompilerServices;RuntimeHelpers+CleanupCode;false;BeginInvoke;(System.Object,System.Boolean,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;RuntimeHelpers+TryCode;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;RuntimeHelpers;false;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.CompilerServices;RuntimeHelpers;false;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;false;RuntimeWrappedException;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;false;get_WrappedException;();;Argument[this];ReturnValue;taint;df-generated | @@ -6014,6 +7864,60 @@ summary | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[1];Argument[0];taint;df-generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[1];ReturnValue;taint;df-generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;get_SourceException;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument+ArgumentToJSCallback<>;false;BeginInvoke;(System.Runtime.InteropServices.JavaScript.JSMarshalerArgument,T,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument+ArgumentToManagedCallback<>;false;BeginInvoke;(System.Runtime.InteropServices.JavaScript.JSMarshalerArgument,T,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToJS<>;(System.Threading.Tasks.Task,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<,>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<>;(System.Action,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToJSCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<>;(System.Func,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.JavaScript;JSMarshalerArgument;false;ToManaged<>;(System.Threading.Tasks.Task,System.Runtime.InteropServices.JavaScript.JSMarshalerArgument+ArgumentToManagedCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.ObjectiveC;ObjectiveCMarshal+UnhandledExceptionPropagationHandler;false;BeginInvoke;(System.Exception,System.RuntimeMethodHandle,System.IntPtr,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices.ObjectiveC;ObjectiveCMarshal;false;Initialize;(System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal+UnhandledExceptionPropagationHandler);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Runtime.InteropServices;ArrayWithOffset;false;ArrayWithOffset;(System.Object,System.Int32);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.InteropServices;ArrayWithOffset;false;GetArray;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;CLong;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | @@ -6028,6 +7932,7 @@ summary | System.Runtime.InteropServices;ComAwareEventInfo;false;get_ReflectedType;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;CriticalHandle;false;CriticalHandle;(System.IntPtr);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.InteropServices;CriticalHandle;false;SetHandle;(System.IntPtr);;Argument[0];Argument[this];taint;df-generated | +| System.Runtime.InteropServices;DllImportResolver;false;BeginInvoke;(System.String,System.Reflection.Assembly,System.Nullable,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Runtime.InteropServices;ExternalException;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;GCHandle;false;FromIntPtr;(System.IntPtr);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;GCHandle;false;ToIntPtr;(System.Runtime.InteropServices.GCHandle);;Argument[0];ReturnValue;taint;df-generated | @@ -6042,6 +7947,8 @@ summary | System.Runtime.InteropServices;MemoryMarshal;false;TryGetMemoryManager<,>;(System.ReadOnlyMemory,TManager);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;MemoryMarshal;false;TryGetMemoryManager<,>;(System.ReadOnlyMemory,TManager,System.Int32,System.Int32);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;MemoryMarshal;false;TryGetString;(System.ReadOnlyMemory,System.String,System.Int32,System.Int32);;Argument[0];ReturnValue;taint;df-generated | +| System.Runtime.InteropServices;NativeLibrary;false;SetDllImportResolver;(System.Reflection.Assembly,System.Runtime.InteropServices.DllImportResolver);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Runtime.InteropServices;PosixSignalRegistration;false;Create;(System.Runtime.InteropServices.PosixSignal,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.InteropServices;SafeHandle;false;DangerousGetHandle;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;SafeHandle;false;SafeHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.InteropServices;SafeHandle;false;SetHandle;(System.IntPtr);;Argument[0];Argument[this];taint;df-generated | @@ -6064,7 +7971,13 @@ summary | System.Runtime.Loader;AssemblyDependencyResolver;false;ResolveUnmanagedDllToPath;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.Loader;AssemblyLoadContext;false;EnterContextualReflection;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.Loader;AssemblyLoadContext;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;add_Resolving;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;add_ResolvingUnmanagedDll;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;add_Unloading;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.Loader;AssemblyLoadContext;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;remove_Resolving;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;remove_ResolvingUnmanagedDll;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Loader;AssemblyLoadContext;false;remove_Unloading;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.Remoting;ObjectHandle;false;ObjectHandle;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.Remoting;ObjectHandle;false;Unwrap;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.Serialization.Formatters.Binary;BinaryFormatter;false;BinaryFormatter;(System.Runtime.Serialization.ISurrogateSelector,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | @@ -6078,8 +7991,12 @@ summary | System.Runtime.Serialization.Json;DataContractJsonSerializer;false;DataContractJsonSerializer;(System.Type,System.Runtime.Serialization.Json.DataContractJsonSerializerSettings);;Argument[0];Argument[this];taint;df-generated | | System.Runtime.Serialization.Json;DataContractJsonSerializer;false;get_DateTimeFormat;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime.Serialization.Json;DataContractJsonSerializer;false;get_KnownTypes;();;Argument[this];ReturnValue;taint;df-generated | +| System.Runtime.Serialization.Json;IXmlJsonReaderInitializer;true;SetInput;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Serialization.Json;IXmlJsonReaderInitializer;true;SetInput;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonReader;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonWriter;(System.IO.Stream);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonWriter;(System.IO.Stream,System.Text.Encoding);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.Serialization.Json;JsonReaderWriterFactory;false;CreateJsonWriter;(System.IO.Stream,System.Text.Encoding);;Argument[1];ReturnValue;taint;df-generated | @@ -6213,9 +8130,16 @@ summary | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type);;Argument[0];ReturnValue;taint;df-generated | | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type);;Argument[3];ReturnValue;taint;df-generated | +| System.Runtime;ControlledExecution;false;Run;(System.Action,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime;DependentHandle;false;get_Dependent;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime;DependentHandle;false;get_Target;();;Argument[this];ReturnValue;taint;df-generated | | System.Runtime;DependentHandle;false;get_TargetAndDependent;();;Argument[this];ReturnValue;taint;df-generated | +| System.Security.AccessControl;NativeObjectSecurity+ExceptionFromErrorCode;false;BeginInvoke;(System.Int32,System.String,System.Runtime.InteropServices.SafeHandle,System.Object,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Security.AccessControl;NativeObjectSecurity;false;NativeObjectSecurity;(System.Boolean,System.Security.AccessControl.ResourceType,System.Runtime.InteropServices.SafeHandle,System.Security.AccessControl.AccessControlSections,System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Security.AccessControl;NativeObjectSecurity;false;NativeObjectSecurity;(System.Boolean,System.Security.AccessControl.ResourceType,System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Security.AccessControl;NativeObjectSecurity;false;NativeObjectSecurity;(System.Boolean,System.Security.AccessControl.ResourceType,System.String,System.Security.AccessControl.AccessControlSections,System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Security.AccessControl;ObjectSecurity<>;false;ObjectSecurity;(System.Boolean,System.Security.AccessControl.ResourceType,System.Runtime.InteropServices.SafeHandle,System.Security.AccessControl.AccessControlSections,System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Security.AccessControl;ObjectSecurity<>;false;ObjectSecurity;(System.Boolean,System.Security.AccessControl.ResourceType,System.String,System.Security.AccessControl.AccessControlSections,System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;false;ExtendedProtectionPolicy;(System.Security.Authentication.ExtendedProtection.PolicyEnforcement,System.Security.Authentication.ExtendedProtection.ChannelBinding);;Argument[1];Argument[this];taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;false;ExtendedProtectionPolicy;(System.Security.Authentication.ExtendedProtection.PolicyEnforcement,System.Security.Authentication.ExtendedProtection.ProtectionScenario,System.Security.Authentication.ExtendedProtection.ServiceNameCollection);;Argument[2].Element;Argument[this];taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | @@ -6254,8 +8178,11 @@ summary | System.Security.Claims;ClaimsIdentity;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsIdentity;false;CreateClaim;(System.IO.BinaryReader);;Argument[0];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsIdentity;false;CreateClaim;(System.IO.BinaryReader);;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsIdentity;false;FindAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsIdentity;false;FindAll;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsIdentity;false;FindFirst;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsIdentity;false;FindFirst;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsIdentity;false;HasClaim;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsIdentity;false;WriteTo;(System.IO.BinaryWriter,System.Byte[]);;Argument[1].Element;Argument[0];taint;df-generated | | System.Security.Claims;ClaimsIdentity;false;get_Actor;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsIdentity;false;get_AuthenticationType;();;Argument[this];ReturnValue;taint;df-generated | @@ -6277,13 +8204,18 @@ summary | System.Security.Claims;ClaimsPrincipal;false;ClaimsPrincipal;(System.Security.Principal.IPrincipal);;Argument[0];Argument[this];taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;CreateClaimsIdentity;(System.IO.BinaryReader);;Argument[0];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsPrincipal;false;FindAll;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsPrincipal;false;FindAll;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsPrincipal;false;FindFirst;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsPrincipal;false;FindFirst;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsPrincipal;false;HasClaim;(System.Predicate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsPrincipal;false;WriteTo;(System.IO.BinaryWriter,System.Byte[]);;Argument[1].Element;Argument[0];taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;get_Claims;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;get_CustomSerializationData;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;get_Identities;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Claims;ClaimsPrincipal;false;get_Identity;();;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Claims;ClaimsPrincipal;false;set_ClaimsPrincipalSelector;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Security.Claims;ClaimsPrincipal;false;set_PrimaryIdentitySelector;(System.Func,System.Security.Claims.ClaimsIdentity>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Cryptography.X509Certificates;CertificateRequest;false;CertificateRequest;(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.ECDsa,System.Security.Cryptography.HashAlgorithmName);;Argument[1];Argument[this];taint;df-generated | | System.Security.Cryptography.X509Certificates;CertificateRequest;false;CertificateRequest;(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.RSA,System.Security.Cryptography.HashAlgorithmName,System.Security.Cryptography.RSASignaturePadding);;Argument[1];Argument[this];taint;df-generated | | System.Security.Cryptography.X509Certificates;CertificateRequest;false;CertificateRequest;(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.RSA,System.Security.Cryptography.HashAlgorithmName,System.Security.Cryptography.RSASignaturePadding);;Argument[3];Argument[this];taint;df-generated | @@ -6565,6 +8497,7 @@ summary | System.Security.Cryptography.Xml;SignedXml;false;set_EncryptedXml;(System.Security.Cryptography.Xml.EncryptedXml);;Argument[0];Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;SignedXml;false;set_KeyInfo;(System.Security.Cryptography.Xml.KeyInfo);;Argument[0].Element;Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;SignedXml;false;set_Resolver;(System.Xml.XmlResolver);;Argument[0];Argument[this];taint;df-generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_SignatureFormatValidator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Cryptography.Xml;SignedXml;false;set_SigningKey;(System.Security.Cryptography.AsymmetricAlgorithm);;Argument[0];Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;SignedXml;false;set_SigningKeyName;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;Transform;false;GetXml;();;Argument[this];ReturnValue;taint;df-generated | @@ -6721,6 +8654,10 @@ summary | System.Security.Principal;GenericIdentity;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | | System.Security.Principal;GenericPrincipal;false;GenericPrincipal;(System.Security.Principal.IIdentity,System.String[]);;Argument[0];Argument[this];taint;df-generated | | System.Security.Principal;GenericPrincipal;false;get_Identity;();;Argument[this];ReturnValue;taint;df-generated | +| System.Security.Principal;WindowsIdentity;false;RunImpersonated;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Security.Principal;WindowsIdentity;false;RunImpersonated<>;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Security.Principal;WindowsIdentity;false;RunImpersonatedAsync;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Security.Principal;WindowsIdentity;false;RunImpersonatedAsync<>;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Security;PermissionSet;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System.Security;SecurityElement;false;AddAttribute;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Security;SecurityElement;false;AddAttribute;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | @@ -6760,7 +8697,29 @@ summary | System.Text.Json.Nodes;JsonNode;false;get_Root;();;Argument[this];ReturnValue;value;df-generated | | System.Text.Json.Nodes;JsonObject;false;Create;(System.Text.Json.JsonElement,System.Nullable);;Argument[0];ReturnValue;taint;df-generated | | System.Text.Json.Nodes;JsonValue;false;Create<>;(T,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Nullable);;Argument[1];ReturnValue;taint;df-generated | +| System.Text.Json.Serialization.Metadata;JsonCollectionInfoValues<>;false;set_ObjectCreator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonCollectionInfoValues<>;false;set_SerializeHandler;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonMetadataServices;false;CreateImmutableDictionaryInfo<,,>;(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues,System.Func>,TCollection>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonMetadataServices;false;CreateImmutableEnumerableInfo<,>;(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues,System.Func,TCollection>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonMetadataServices;false;CreateQueueInfo<>;(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonMetadataServices;false;CreateStackInfo<>;(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonObjectInfoValues<>;false;set_ConstructorParameterMetadataInitializer;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonObjectInfoValues<>;false;set_ObjectCreator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonObjectInfoValues<>;false;set_ObjectWithParameterizedConstructorCreator;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonObjectInfoValues<>;false;set_PropertyMetadataInitializer;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonObjectInfoValues<>;false;set_SerializeHandler;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonPropertyInfo;false;set_Get;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonPropertyInfo;false;set_Set;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonPropertyInfo;false;set_ShouldSerialize;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonPropertyInfoValues<>;false;set_Getter;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonPropertyInfoValues<>;false;set_Setter;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo;false;set_CreateObject;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo;false;set_OnDeserialized;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo;false;set_OnDeserializing;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo;false;set_OnSerialized;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo;false;set_OnSerializing;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Text.Json.Serialization.Metadata;JsonTypeInfo<>;false;get_SerializeHandler;();;Argument[this];ReturnValue;taint;df-generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo<>;false;set_CreateObject;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[0];Argument[this];taint;df-generated | | System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[this];Argument[0];taint;df-generated | | System.Text.Json.Serialization;JsonSerializerContext;false;get_Options;();;Argument[this];ReturnValue;taint;df-generated | @@ -6834,6 +8793,7 @@ summary | System.Text.RegularExpressions;Match;false;Synchronized;(System.Text.RegularExpressions.Match);;Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;MatchCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.Text.RegularExpressions;MatchCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.Text.RegularExpressions;MatchEvaluator;false;BeginInvoke;(System.Text.RegularExpressions.Match,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;false;Escape;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;false;GroupNameFromNumber;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;false;IsMatch;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -6861,6 +8821,12 @@ summary | System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.String,System.Text.RegularExpressions.RegexOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);;Argument[0];ReturnValue;taint;df-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Text.RegularExpressions;Regex;false;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32,System.Int32);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;false;Split;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Text.RegularExpressions;Regex;false;Split;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;false;Split;(System.String,System.Int32);;Argument[0];Argument[this];taint;df-generated | @@ -7077,14 +9043,27 @@ summary | System.Text;StringBuilder;false;ToString;(System.Int32,System.Int32);;Argument[this].Element;ReturnValue;taint;manual | | System.Text;StringRuneEnumerator;false;GetEnumerator;();;Argument[this];ReturnValue;value;df-generated | | System.Text;StringRuneEnumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Channels;Channel;false;CreateBounded<>;(System.Threading.Channels.BoundedChannelOptions,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;ConcurrencyLimiter;false;ConcurrencyLimiter;(System.Threading.RateLimiting.ConcurrencyLimiterOptions);;Argument[0];Argument[this];taint;df-generated | | System.Threading.RateLimiting;MetadataName;false;Create<>;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;MetadataName<>;false;MetadataName;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Threading.RateLimiting;MetadataName<>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;MetadataName<>;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.RateLimiting;PartitionedRateLimiter;false;Create<,>;(System.Func>,System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;PartitionedRateLimiter<>;false;WithTranslatedKey<>;(System.Func,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;RateLimitLease;false;TryGetMetadata<>;(System.Threading.RateLimiting.MetadataName,T);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;RateLimitLease;true;GetAllMetadata;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.RateLimiting;RateLimitPartition;false;Get<>;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;RateLimitPartition;false;GetConcurrencyLimiter<>;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;RateLimitPartition;false;GetFixedWindowLimiter<>;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;RateLimitPartition;false;GetSlidingWindowLimiter<>;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;RateLimitPartition;false;GetTokenBucketLimiter<>;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.RateLimiting;RateLimitPartition<>;false;RateLimitPartition;(TKey,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;TokenBucketRateLimiter;false;TokenBucketRateLimiter;(System.Threading.RateLimiting.TokenBucketRateLimiterOptions);;Argument[0];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;ActionBlock<>;false;ActionBlock;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;ActionBlock<>;false;ActionBlock;(System.Action,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;ActionBlock<>;false;ActionBlock;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;ActionBlock<>;false;ActionBlock;(System.Func,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;BatchBlock<>;false;BatchBlock;(System.Int32,System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions);;Argument[1];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;BatchBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | @@ -7102,6 +9081,8 @@ summary | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock,System.Collections.Generic.IList>>);;Argument[1];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,>;false;get_Target1;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BatchedJoinBlock<,>;false;get_Target2;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;BroadcastBlock;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;BroadcastBlock;(System.Func,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;ConsumeMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;BroadcastBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | @@ -7113,11 +9094,23 @@ summary | System.Threading.Tasks.Dataflow;BufferBlock<>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[1];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;AsObservable<>;(System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;AsObserver<>;(System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[0];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;Choose<,>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.ISourceBlock,System.Action,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Encapsulate<,>;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Encapsulate<,>;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[1];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;LinkTo<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[0];Argument[1];taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;LinkTo<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;LinkTo<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[1];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;LinkTo<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.Tasks.Dataflow.ITargetBlock,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;DataflowBlock;false;LinkTo<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions,System.Predicate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Post<>;(System.Threading.Tasks.Dataflow.ITargetBlock,TInput);;Argument[1];Argument[0];taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | @@ -7135,6 +9128,7 @@ summary | System.Threading.Tasks.Dataflow;DataflowBlockOptions;false;set_CancellationToken;(System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlockOptions;false;set_NameFormat;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;DataflowBlockOptions;false;set_TaskScheduler;(System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;IReceivableSourceBlock<>;true;TryReceive;(System.Predicate,TOutput);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;JoinBlock;(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock>,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;JoinBlock<,,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock>,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | @@ -7151,9 +9145,19 @@ summary | System.Threading.Tasks.Dataflow;TransformBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;TransformBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;TransformBlock<,>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;TransformBlock<,>;false;TransformBlock;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformBlock<,>;false;TransformBlock;(System.Func>,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformBlock<,>;false;TransformBlock;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformBlock<,>;false;TransformBlock;(System.Func,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;ReserveMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[1];Argument[this];taint;df-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;TransformManyBlock<,>;false;TransformManyBlock;(System.Func>>,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;ConsumeMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock,System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;LinkTo;(System.Threading.Tasks.Dataflow.ITargetBlock,System.Threading.Tasks.Dataflow.DataflowLinkOptions);;Argument[this];Argument[0];taint;df-generated | @@ -7162,51 +9166,154 @@ summary | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;ReleaseReservation;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);;Argument[this];Argument[1];taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;TryReceiveAll;(System.Collections.Generic.IList);;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;WriteOnceBlock;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;WriteOnceBlock;(System.Func,System.Threading.Tasks.Dataflow.DataflowBlockOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock<>;false;get_Completion;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Sources;IValueTaskSource;true;OnCompleted;(System.Action,System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks.Sources;IValueTaskSource<>;true;OnCompleted;(System.Action,System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Sources;ManualResetValueTaskSourceCore<>;false;GetResult;(System.Int16);;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks.Sources;ManualResetValueTaskSourceCore<>;false;OnCompleted;(System.Action,System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Sources;ManualResetValueTaskSourceCore<>;false;SetException;(System.Exception);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks.Sources;ManualResetValueTaskSourceCore<>;false;SetResult;(TResult);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;ConcurrentExclusiveSchedulerPair;false;ConcurrentExclusiveSchedulerPair;(System.Threading.Tasks.TaskScheduler,System.Int32,System.Int32);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;ConcurrentExclusiveSchedulerPair;false;get_ConcurrentScheduler;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ConcurrentExclusiveSchedulerPair;false;get_ExclusiveScheduler;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int32,System.Int32,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int32,System.Int32,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int64,System.Int64,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int64,System.Int64,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;For<>;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Func,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.OrderablePartitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Func,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Concurrent.Partitioner,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<,>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func,System.Func,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.OrderablePartitioner,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.OrderablePartitioner,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.Partitioner,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.Partitioner,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.Partitioner,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Concurrent.Partitioner,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEach<>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Action);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IAsyncEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IAsyncEnumerable,System.Threading.CancellationToken,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IAsyncEnumerable,System.Threading.Tasks.ParallelOptions,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IEnumerable,System.Threading.CancellationToken,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Parallel;false;ForEachAsync<>;(System.Collections.Generic.IEnumerable,System.Threading.Tasks.ParallelOptions,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;ParallelLoopResult;false;get_LowestBreakIteration;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ParallelOptions;false;get_CancellationToken;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ParallelOptions;false;get_TaskScheduler;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ParallelOptions;false;set_CancellationToken;(System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;ParallelOptions;false;set_TaskScheduler;(System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;Task;false;ConfigureAwait;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;ContinueWith;(System.Action,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Delay;(System.Int32,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;false;Delay;(System.TimeSpan,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;false;FromCanceled;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;false;FromResult<>;(TResult);;Argument[0];ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | | System.Threading.Tasks;Task;false;GetAwaiter;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;false;Run;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Run;(System.Action,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Run;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Run;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;false;Run<>;(System.Func>);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;Run<>;(System.Func>);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Run<>;(System.Func>,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;Run<>;(System.Func>,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Run<>;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;Run<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Run<>;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task;false;Run<>;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | +| System.Threading.Tasks;Task;false;Task;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Task;(System.Action,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;false;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;false;WaitAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;false;WaitAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | @@ -7227,59 +9334,87 @@ summary | System.Threading.Tasks;Task;false;WhenAny<>;(System.Threading.Tasks.Task[]);;Argument[0].Element.Property[System.Threading.Tasks.Task<>.Result];ReturnValue.Property[System.Threading.Tasks.Task<>.Result].Element;value;manual | | System.Threading.Tasks;Task;false;get_AsyncState;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task<>;false;ConfigureAwait;(System.Boolean);;Argument[this];ReturnValue.SyntheticField[m_configuredTaskAwaiter].SyntheticField[m_task_configured_task_awaitable];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action>,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;GetAwaiter;();;Argument[this];ReturnValue.SyntheticField[m_task_task_awaiter];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan);;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | @@ -7297,54 +9432,140 @@ summary | System.Threading.Tasks;TaskCompletionSource<>;false;get_Task;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskExtensions;false;Unwrap;(System.Threading.Tasks.Task);;Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskExtensions;false;Unwrap<>;(System.Threading.Tasks.Task>);;Argument[0];ReturnValue;taint;df-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Action>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.Func,System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.Func,System.Action,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.IAsyncResult,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.IAsyncResult,System.Action,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync;(System.IAsyncResult,System.Action,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,,>;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Func,TArg1,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Func,TArg1,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Action,TArg1,TArg2,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Action,TArg1,TArg2,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<,>;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Func,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Action,TArg1,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Action,TArg1,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.IAsyncResult,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;FromAsync<>;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[0];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;false;TaskFactory;(System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory;false;TaskFactory;(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory;false;TaskFactory;(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[3];Argument[this];taint;df-generated | @@ -7352,47 +9573,92 @@ summary | System.Threading.Tasks;TaskFactory;false;get_CancellationToken;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskFactory;false;get_Scheduler;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.Func,System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.Func,System.Func,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.IAsyncResult,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,,>;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,>;(System.Func,System.Func,TArg1,TArg2,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,>;(System.Func,System.Func,TArg1,TArg2,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,>;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<,>;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<>;(System.Func,System.Func,TArg1,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<>;(System.Func,System.Func,TArg1,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<>;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskFactory<>;false;FromAsync<>;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory<>;false;TaskFactory;(System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;TaskFactory;(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;TaskFactory;(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[3];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;TaskFactory;(System.Threading.Tasks.TaskScheduler);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;get_CancellationToken;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskFactory<>;false;get_Scheduler;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;TaskScheduler;false;add_UnobservedTaskException;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading.Tasks;TaskScheduler;false;remove_UnobservedTaskException;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;UnobservedTaskExceptionEventArgs;false;UnobservedTaskExceptionEventArgs;(System.AggregateException);;Argument[0];Argument[this];taint;df-generated | | System.Threading.Tasks;UnobservedTaskExceptionEventArgs;false;get_Exception;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ValueTask;false;AsTask;();;Argument[this];ReturnValue;taint;df-generated | @@ -7415,17 +9681,40 @@ summary | System.Threading;AbandonedMutexException;false;AbandonedMutexException;(System.String,System.Exception,System.Int32,System.Threading.WaitHandle);;Argument[3];Argument[this];taint;df-generated | | System.Threading;AbandonedMutexException;false;AbandonedMutexException;(System.String,System.Int32,System.Threading.WaitHandle);;Argument[2];Argument[this];taint;df-generated | | System.Threading;AbandonedMutexException;false;get_Mutex;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading;AsyncLocal<>;false;AsyncLocal;(System.Action>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Barrier;false;Barrier;(System.Int32,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;Register;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;Register;(System.Action,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;Register;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;Register;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;Register;(System.Action,System.Object,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;UnsafeRegister;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;CancellationToken;false;UnsafeRegister;(System.Action,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;false;get_WaitHandle;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;CancellationTokenSource;false;get_Token;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;CompressedStack;false;CreateCopy;();;Argument[this];ReturnValue;value;df-generated | +| System.Threading;CompressedStack;false;Run;(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ContextCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;CountdownEvent;false;get_WaitHandle;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;ExecutionContext;false;CreateCopy;();;Argument[this];ReturnValue;value;df-generated | +| System.Threading;ExecutionContext;false;Run;(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;HostExecutionContextManager;false;SetHostExecutionContext;(System.Threading.HostExecutionContext);;Argument[0];ReturnValue;taint;df-generated | +| System.Threading;IOCompletionCallback;false;BeginInvoke;(System.UInt32,System.UInt32,System.Threading.NativeOverlapped*,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Threading;LazyInitializer;false;EnsureInitialized<>;(T);;Argument[0];ReturnValue;taint;df-generated | | System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Boolean,System.Object);;Argument[0];ReturnValue;taint;df-generated | | System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Boolean,System.Object);;Argument[2];ReturnValue;taint;df-generated | +| System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Boolean,System.Object,System.Func);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Object,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Threading;ManualResetEventSlim;false;get_WaitHandle;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading;Overlapped;false;Pack;(System.Threading.IOCompletionCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Overlapped;false;Pack;(System.Threading.IOCompletionCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Overlapped;false;UnsafePack;(System.Threading.IOCompletionCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Overlapped;false;UnsafePack;(System.Threading.IOCompletionCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ParameterizedThreadStart;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;PeriodicTimer;false;WaitForNextTickAsync;(System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | +| System.Threading;PreAllocatedOverlapped;false;PreAllocatedOverlapped;(System.Threading.IOCompletionCallback,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;PreAllocatedOverlapped;false;UnsafeCreate;(System.Threading.IOCompletionCallback,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;SemaphoreSlim;false;WaitAsync;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;SemaphoreSlim;false;WaitAsync;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Threading;SemaphoreSlim;false;WaitAsync;(System.Int32,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | @@ -7433,20 +9722,62 @@ summary | System.Threading;SemaphoreSlim;false;WaitAsync;(System.TimeSpan);;Argument[this];ReturnValue;taint;df-generated | | System.Threading;SemaphoreSlim;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;df-generated | | System.Threading;SemaphoreSlim;false;get_AvailableWaitHandle;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading;SendOrPostCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;SpinWait;false;SpinUntil;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;SpinWait;false;SpinUntil;(System.Func,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;SpinWait;false;SpinUntil;(System.Func,System.TimeSpan);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;SynchronizationContext;false;Post;(System.Threading.SendOrPostCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;SynchronizationContext;false;Send;(System.Threading.SendOrPostCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Thread;false;Thread;(System.Threading.ParameterizedThreadStart);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Thread;false;Thread;(System.Threading.ParameterizedThreadStart,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Thread;false;Thread;(System.Threading.ThreadStart);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Thread;false;Thread;(System.Threading.ThreadStart,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;Thread;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;Thread;false;set_Name;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Threading;ThreadExceptionEventArgs;false;ThreadExceptionEventArgs;(System.Exception);;Argument[0];Argument[this];taint;df-generated | | System.Threading;ThreadExceptionEventArgs;false;get_Exception;();;Argument[this];ReturnValue;taint;df-generated | +| System.Threading;ThreadExceptionEventHandler;false;BeginInvoke;(System.Object,System.Threading.ThreadExceptionEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadLocal<>;false;ThreadLocal;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadLocal<>;false;ThreadLocal;(System.Func,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;QueueUserWorkItem;(System.Threading.WaitCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;QueueUserWorkItem;(System.Threading.WaitCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;QueueUserWorkItem<>;(System.Action,TState,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;RegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int32,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;RegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int64,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;RegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.TimeSpan,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;RegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeQueueUserWorkItem;(System.Threading.WaitCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeQueueUserWorkItem<>;(System.Action,TState,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeRegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int32,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeRegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int64,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeRegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.TimeSpan,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPool;false;UnsafeRegisterWaitForSingleObject;(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPoolBoundHandle;false;AllocateNativeOverlapped;(System.Threading.IOCompletionCallback,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadPoolBoundHandle;false;UnsafeAllocateNativeOverlapped;(System.Threading.IOCompletionCallback,System.Object,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;ThreadStart;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Timer;false;Timer;(System.Threading.TimerCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Timer;false;Timer;(System.Threading.TimerCallback,System.Object,System.Int32,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Timer;false;Timer;(System.Threading.TimerCallback,System.Object,System.Int64,System.Int64);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Timer;false;Timer;(System.Threading.TimerCallback,System.Object,System.TimeSpan,System.TimeSpan);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;Timer;false;Timer;(System.Threading.TimerCallback,System.Object,System.UInt32,System.UInt32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Threading;TimerCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Threading;WaitCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;WaitHandle;false;set_SafeWaitHandle;(Microsoft.Win32.SafeHandles.SafeWaitHandle);;Argument[0];Argument[this];taint;df-generated | | System.Threading;WaitHandle;true;get_Handle;();;Argument[this];ReturnValue;taint;df-generated | | System.Threading;WaitHandle;true;set_Handle;(System.IntPtr);;Argument[0];Argument[this];taint;df-generated | | System.Threading;WaitHandleExtensions;false;SetSafeWaitHandle;(System.Threading.WaitHandle,Microsoft.Win32.SafeHandles.SafeWaitHandle);;Argument[1];Argument[0];taint;df-generated | +| System.Threading;WaitOrTimerCallback;false;BeginInvoke;(System.Object,System.Boolean,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Timers;ElapsedEventHandler;false;BeginInvoke;(System.Object,System.Timers.ElapsedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Timers;Timer;false;add_Elapsed;(System.Timers.ElapsedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Timers;Timer;false;get_Site;();;Argument[this];ReturnValue;taint;df-generated | | System.Timers;Timer;false;get_SynchronizingObject;();;Argument[this];ReturnValue;taint;df-generated | +| System.Timers;Timer;false;remove_Elapsed;(System.Timers.ElapsedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Timers;Timer;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[this];taint;df-generated | | System.Timers;Timer;false;set_SynchronizingObject;(System.ComponentModel.ISynchronizeInvoke);;Argument[0];Argument[this];taint;df-generated | +| System.Transactions;CommittableTransaction;false;BeginCommit;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;CommittableTransaction;false;get_AsyncState;();;Argument[this];ReturnValue;taint;df-generated | | System.Transactions;CommittableTransaction;false;get_AsyncWaitHandle;();;Argument[this];ReturnValue;taint;df-generated | +| System.Transactions;HostCurrentTransactionCallback;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;Transaction;false;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Transactions;Transaction;false;EnlistDurable;(System.Guid,System.Transactions.ISinglePhaseNotification,System.Transactions.EnlistmentOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Transactions;Transaction;false;EnlistPromotableSinglePhase;(System.Transactions.IPromotableSinglePhaseNotification);;Argument[0];Argument[this];taint;df-generated | @@ -7459,15 +9790,22 @@ summary | System.Transactions;Transaction;false;PromoteAndEnlistDurable;(System.Guid,System.Transactions.IPromotableSinglePhaseNotification,System.Transactions.ISinglePhaseNotification,System.Transactions.EnlistmentOptions);;Argument[0];ReturnValue;taint;df-generated | | System.Transactions;Transaction;false;Rollback;(System.Exception);;Argument[0];Argument[this];taint;df-generated | | System.Transactions;Transaction;false;SetDistributedTransactionIdentifier;(System.Transactions.IPromotableSinglePhaseNotification,System.Guid);;Argument[1];Argument[this];taint;df-generated | +| System.Transactions;Transaction;false;add_TransactionCompleted;(System.Transactions.TransactionCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;Transaction;false;get_PromoterType;();;Argument[this];ReturnValue;taint;df-generated | | System.Transactions;Transaction;false;get_TransactionInformation;();;Argument[this];ReturnValue;taint;df-generated | +| System.Transactions;Transaction;false;remove_TransactionCompleted;(System.Transactions.TransactionCompletedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Transactions;TransactionCompletedEventHandler;false;BeginInvoke;(System.Object,System.Transactions.TransactionEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Transactions;TransactionEventArgs;false;get_Transaction;();;Argument[this];ReturnValue;taint;df-generated | | System.Transactions;TransactionInformation;false;get_DistributedIdentifier;();;Argument[this];ReturnValue;taint;df-generated | +| System.Transactions;TransactionManager;false;add_DistributedTransactionStarted;(System.Transactions.TransactionStartedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Transactions;TransactionManager;false;remove_DistributedTransactionStarted;(System.Transactions.TransactionStartedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Transactions;TransactionManager;false;set_HostCurrentCallback;(System.Transactions.HostCurrentTransactionCallback);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;TransactionOptions;false;get_Timeout;();;Argument[this];ReturnValue;taint;df-generated | | System.Transactions;TransactionOptions;false;set_Timeout;(System.TimeSpan);;Argument[0];Argument[this];taint;df-generated | | System.Transactions;TransactionScope;false;TransactionScope;(System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption);;Argument[0];Argument[this];taint;df-generated | | System.Transactions;TransactionScope;false;TransactionScope;(System.Transactions.Transaction,System.TimeSpan,System.Transactions.TransactionScopeAsyncFlowOption);;Argument[0];Argument[this];taint;df-generated | | System.Transactions;TransactionScope;false;TransactionScope;(System.Transactions.Transaction,System.Transactions.TransactionScopeAsyncFlowOption);;Argument[0];Argument[this];taint;df-generated | +| System.Transactions;TransactionStartedEventHandler;false;BeginInvoke;(System.Object,System.Transactions.TransactionEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Web.UI.WebControls;TextBox;false;get_Text;();;Argument[this];ReturnValue;taint;manual | | System.Web;HttpCookie;false;get_Value;();;Argument[this];ReturnValue;taint;manual | | System.Web;HttpCookie;false;get_Values;();;Argument[this];ReturnValue;taint;manual | @@ -7491,6 +9829,8 @@ summary | System.Web;HttpUtility;false;UrlEncodeToBytes;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Web;HttpUtility;false;UrlEncodeToBytes;(System.String,System.Text.Encoding);;Argument[0];ReturnValue;taint;df-generated | | System.Web;HttpUtility;false;UrlPathEncode;(System.String);;Argument[0];ReturnValue;taint;df-generated | +| System.Windows.Input;ICommand;true;add_CanExecuteChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Windows.Input;ICommand;true;remove_CanExecuteChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Windows.Markup;ValueSerializerAttribute;false;ValueSerializerAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Windows.Markup;ValueSerializerAttribute;false;ValueSerializerAttribute;(System.Type);;Argument[0];Argument[this];taint;df-generated | | System.Windows.Markup;ValueSerializerAttribute;false;get_ValueSerializerType;();;Argument[this];ReturnValue;taint;df-generated | @@ -7661,9 +10001,13 @@ summary | System.Xml.Linq;XObject;false;Annotation<>;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XObject;false;Annotations;(System.Type);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XObject;false;Annotations<>;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Linq;XObject;false;add_Changed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Linq;XObject;false;add_Changing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Linq;XObject;false;get_BaseUri;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XObject;false;get_Document;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XObject;false;get_Parent;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Linq;XObject;false;remove_Changed;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Linq;XObject;false;remove_Changing;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Linq;XProcessingInstruction;false;WriteTo;(System.Xml.XmlWriter);;Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XProcessingInstruction;false;WriteToAsync;(System.Xml.XmlWriter,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;df-generated | | System.Xml.Linq;XProcessingInstruction;false;XProcessingInstruction;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | @@ -7691,8 +10035,15 @@ summary | System.Xml.Resolvers;XmlPreloadedResolver;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;Extensions;false;GetSchemaInfo;(System.Xml.Linq.XAttribute);;Argument[0];ReturnValue;taint;df-generated | | System.Xml.Schema;Extensions;false;GetSchemaInfo;(System.Xml.Linq.XElement);;Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XAttribute,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XAttribute,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler,System.Boolean);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XDocument,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XDocument,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler,System.Boolean);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XElement,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;Extensions;false;Validate;(System.Xml.Linq.XElement,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler,System.Boolean);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;ValidationEventArgs;false;get_Exception;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;ValidationEventArgs;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Schema;ValidationEventHandler;false;BeginInvoke;(System.Object,System.Xml.Schema.ValidationEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlAtomicValue;false;Clone;();;Argument[this];ReturnValue;value;df-generated | | System.Xml.Schema;XmlAtomicValue;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlAtomicValue;false;ValueAs;(System.Type,System.Xml.IXmlNamespaceResolver);;Argument[this];ReturnValue;value;df-generated | @@ -7700,6 +10051,11 @@ summary | System.Xml.Schema;XmlAtomicValue;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlAtomicValue;false;get_ValueAsDateTime;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlAtomicValue;false;get_XmlType;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchema;false;Compile;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;XmlSchema;false;Compile;(System.Xml.Schema.ValidationEventHandler,System.Xml.XmlResolver);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;XmlSchema;false;Read;(System.IO.Stream,System.Xml.Schema.ValidationEventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;XmlSchema;false;Read;(System.IO.TextReader,System.Xml.Schema.ValidationEventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Xml.Schema;XmlSchema;false;Read;(System.Xml.XmlReader,System.Xml.Schema.ValidationEventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchema;false;get_AttributeGroups;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchema;false;get_Attributes;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchema;false;get_Elements;();;Argument[this];ReturnValue;taint;df-generated | @@ -7767,9 +10123,11 @@ summary | System.Xml.Schema;XmlSchemaCollection;false;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Xml.Schema;XmlSchemaCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Xml.Schema.XmlSchemaCollectionEnumerator.Current];value;manual | | System.Xml.Schema;XmlSchemaCollection;false;XmlSchemaCollection;(System.Xml.XmlNameTable);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlSchemaCollection;false;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaCollection;false;get_Item;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaCollection;false;get_NameTable;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | +| System.Xml.Schema;XmlSchemaCollection;false;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaComplexContent;false;get_Content;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaComplexContent;false;set_Content;(System.Xml.Schema.XmlSchemaContent);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaComplexContentExtension;false;get_AnyAttribute;();;Argument[this];ReturnValue;taint;df-generated | @@ -7921,11 +10279,13 @@ summary | System.Xml.Schema;XmlSchemaSet;false;Reprocess;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;Schemas;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;XmlSchemaSet;(System.Xml.XmlNameTable);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlSchemaSet;false;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaSet;false;get_CompilationSettings;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;get_GlobalAttributes;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;get_GlobalElements;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;get_GlobalTypes;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;get_NameTable;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaSet;false;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaSet;false;set_CompilationSettings;(System.Xml.Schema.XmlSchemaCompilationSettings);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaSet;false;set_XmlResolver;(System.Xml.XmlResolver);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaSimpleContent;false;get_Content;();;Argument[this];ReturnValue;taint;df-generated | @@ -7978,6 +10338,7 @@ summary | System.Xml.Schema;XmlSchemaValidator;false;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[2];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[2];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;false;ValidateAttribute;(System.String,System.String,System.Xml.Schema.XmlValueGetter,System.Xml.Schema.XmlSchemaInfo);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateElement;(System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateElement;(System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateElement;(System.String,System.String,System.Xml.Schema.XmlSchemaInfo);;Argument[this];Argument[2];taint;df-generated | @@ -7992,19 +10353,24 @@ summary | System.Xml.Schema;XmlSchemaValidator;false;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);;Argument[this];Argument[0];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateText;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;false;ValidateText;(System.Xml.Schema.XmlValueGetter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;false;ValidateWhitespace;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;false;ValidateWhitespace;(System.Xml.Schema.XmlValueGetter);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;false;XmlSchemaValidator;(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,System.Xml.Schema.XmlSchemaValidationFlags);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;XmlSchemaValidator;(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,System.Xml.Schema.XmlSchemaValidationFlags);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;XmlSchemaValidator;(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,System.Xml.Schema.XmlSchemaValidationFlags);;Argument[2];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;false;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;false;get_LineInfoProvider;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;get_SourceUri;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;get_ValidationEventSender;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;false;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;false;set_LineInfoProvider;(System.Xml.IXmlLineInfo);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;set_SourceUri;(System.Uri);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;set_ValidationEventSender;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;false;set_XmlResolver;(System.Xml.XmlResolver);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaXPath;false;get_XPath;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaXPath;false;set_XPath;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Schema;XmlValueGetter;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;CodeIdentifiers;false;Add;(System.String,System.Object);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;CodeIdentifiers;false;Add;(System.String,System.Object);;Argument[this];Argument[1];taint;df-generated | | System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated | @@ -8070,6 +10436,7 @@ summary | System.Xml.Serialization;UnreferencedObjectEventArgs;false;UnreferencedObjectEventArgs;(System.Object,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;UnreferencedObjectEventArgs;false;get_UnreferencedId;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;UnreferencedObjectEventArgs;false;get_UnreferencedObject;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;UnreferencedObjectEventHandler;false;BeginInvoke;(System.Object,System.Xml.Serialization.UnreferencedObjectEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlAnyElementAttribute;false;XmlAnyElementAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlAnyElementAttribute;false;XmlAnyElementAttribute;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlAnyElementAttribute;false;XmlAnyElementAttribute;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | @@ -8121,6 +10488,7 @@ summary | System.Xml.Serialization;XmlAttributeEventArgs;false;get_Attr;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlAttributeEventArgs;false;get_ExpectedAttributes;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlAttributeEventArgs;false;get_ObjectBeingDeserialized;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlAttributeEventHandler;false;BeginInvoke;(System.Object,System.Xml.Serialization.XmlAttributeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlAttributeOverrides;false;get_Item;(System.Type);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlAttributes;false;XmlAttributes;(System.Reflection.ICustomAttributeProvider);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlAttributes;false;get_XmlAnyAttribute;();;Argument[this];ReturnValue;taint;df-generated | @@ -8150,6 +10518,10 @@ summary | System.Xml.Serialization;XmlDeserializationEvents;false;get_OnUnknownElement;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlDeserializationEvents;false;get_OnUnknownNode;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlDeserializationEvents;false;get_OnUnreferencedObject;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlDeserializationEvents;false;set_OnUnknownAttribute;(System.Xml.Serialization.XmlAttributeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlDeserializationEvents;false;set_OnUnknownElement;(System.Xml.Serialization.XmlElementEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlDeserializationEvents;false;set_OnUnknownNode;(System.Xml.Serialization.XmlNodeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlDeserializationEvents;false;set_OnUnreferencedObject;(System.Xml.Serialization.UnreferencedObjectEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlElementAttribute;false;XmlElementAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlElementAttribute;false;XmlElementAttribute;(System.String,System.Type);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlElementAttribute;false;XmlElementAttribute;(System.String,System.Type);;Argument[1];Argument[this];taint;df-generated | @@ -8171,6 +10543,7 @@ summary | System.Xml.Serialization;XmlElementEventArgs;false;get_Element;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlElementEventArgs;false;get_ExpectedElements;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlElementEventArgs;false;get_ObjectBeingDeserialized;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlElementEventHandler;false;BeginInvoke;(System.Object,System.Xml.Serialization.XmlElementEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlEnumAttribute;false;XmlEnumAttribute;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlEnumAttribute;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlEnumAttribute;false;set_Name;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -8188,6 +10561,7 @@ summary | System.Xml.Serialization;XmlNodeEventArgs;false;get_NamespaceURI;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlNodeEventArgs;false;get_ObjectBeingDeserialized;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlNodeEventArgs;false;get_Text;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlNodeEventHandler;false;BeginInvoke;(System.Object,System.Xml.Serialization.XmlNodeEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlReflectionImporter;false;ImportMembersMapping;(System.String,System.String,System.Xml.Serialization.XmlReflectionMember[],System.Boolean);;Argument[2].Element;Argument[this];taint;df-generated | | System.Xml.Serialization;XmlReflectionImporter;false;ImportMembersMapping;(System.String,System.String,System.Xml.Serialization.XmlReflectionMember[],System.Boolean);;Argument[2].Element;ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlReflectionImporter;false;ImportMembersMapping;(System.String,System.String,System.Xml.Serialization.XmlReflectionMember[],System.Boolean,System.Boolean);;Argument[2].Element;Argument[this];taint;df-generated | @@ -8235,6 +10609,7 @@ summary | System.Xml.Serialization;XmlSchemas;false;Add;(System.Xml.Schema.XmlSchema,System.Uri);;Argument[1];Argument[0];taint;df-generated | | System.Xml.Serialization;XmlSchemas;false;Add;(System.Xml.Schema.XmlSchema,System.Uri);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSchemas;false;Add;(System.Xml.Serialization.XmlSchemas);;Argument[0];Argument[this].Element;value;manual | +| System.Xml.Serialization;XmlSchemas;false;Compile;(System.Xml.Schema.ValidationEventHandler,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSchemas;false;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual | | System.Xml.Serialization;XmlSchemas;false;Find;(System.Xml.XmlQualifiedName,System.Type);;Argument[this].Element;ReturnValue;value;manual | | System.Xml.Serialization;XmlSchemas;false;Insert;(System.Int32,System.Xml.Schema.XmlSchema);;Argument[1];Argument[this].Element;value;manual | @@ -8244,15 +10619,22 @@ summary | System.Xml.Serialization;XmlSchemas;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual | | System.Xml.Serialization;XmlSchemas;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual | | System.Xml.Serialization;XmlSchemas;false;set_Item;(System.Int32,System.Xml.Schema.XmlSchema);;Argument[1];Argument[this].Element;value;manual | +| System.Xml.Serialization;XmlSerializationCollectionFixupCallback;false;BeginInvoke;(System.Object,System.Object,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializationFixupCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializationReadCallback;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializationReader+CollectionFixup;false;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;false;get_Callback;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;false;get_Collection;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;false;get_CollectionItems;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlSerializationReader+Fixup;false;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.Int32);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializationReader+Fixup;false;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;false;get_Callback;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;false;get_Ids;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;false;get_Source;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;false;set_Source;(System.Object);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;AddFixup;(System.Xml.Serialization.XmlSerializationReader+CollectionFixup);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;AddFixup;(System.Xml.Serialization.XmlSerializationReader+Fixup);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Serialization;XmlSerializationReader;false;AddReadCallback;(System.String,System.String,System.Type,System.Xml.Serialization.XmlSerializationReadCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader;false;AddTarget;(System.String,System.Object);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;CollapseWhitespace;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;EnsureArrayIndex;(System.Array,System.Int32,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated | @@ -8283,6 +10665,8 @@ summary | System.Xml.Serialization;XmlSerializationReader;false;ToXmlNmTokens;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;get_Document;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationReader;false;get_Reader;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Serialization;XmlSerializationWriteCallback;false;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializationWriter;false;AddWriteCallback;(System.Type,System.String,System.String,System.Xml.Serialization.XmlSerializationWriteCallback);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationWriter;false;FromByteArrayBase64;(System.Byte[]);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationWriter;false;FromByteArrayHex;(System.Byte[]);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml.Serialization;XmlSerializationWriter;false;FromEnum;(System.Int64,System.String[],System.Int64[]);;Argument[1].Element;ReturnValue;taint;df-generated | @@ -8365,6 +10749,14 @@ summary | System.Xml.Serialization;XmlSerializer;false;XmlSerializer;(System.Type,System.Xml.Serialization.XmlAttributeOverrides,System.Type[],System.Xml.Serialization.XmlRootAttribute,System.String,System.String);;Argument[3];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializer;false;XmlSerializer;(System.Type,System.Xml.Serialization.XmlAttributeOverrides,System.Type[],System.Xml.Serialization.XmlRootAttribute,System.String,System.String);;Argument[4];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializer;false;XmlSerializer;(System.Xml.Serialization.XmlTypeMapping);;Argument[0];Argument[this];taint;df-generated | +| System.Xml.Serialization;XmlSerializer;false;add_UnknownAttribute;(System.Xml.Serialization.XmlAttributeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;add_UnknownElement;(System.Xml.Serialization.XmlElementEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;add_UnknownNode;(System.Xml.Serialization.XmlNodeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;add_UnreferencedObject;(System.Xml.Serialization.UnreferencedObjectEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;remove_UnknownAttribute;(System.Xml.Serialization.XmlAttributeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;remove_UnknownElement;(System.Xml.Serialization.XmlElementEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;remove_UnknownNode;(System.Xml.Serialization.XmlNodeEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Serialization;XmlSerializer;false;remove_UnreferencedObject;(System.Xml.Serialization.UnreferencedObjectEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializerAssemblyAttribute;false;XmlSerializerAssemblyAttribute;(System.String,System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializerAssemblyAttribute;false;XmlSerializerAssemblyAttribute;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSerializerAssemblyAttribute;false;get_AssemblyName;();;Argument[this];ReturnValue;taint;df-generated | @@ -8424,6 +10816,7 @@ summary | System.Xml.XPath;XPathNavigator;false;get_TypedValue;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;false;get_ValueAsDateTime;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;false;get_XmlType;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.XPath;XPathNavigator;true;CheckValidity;(System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.XPath;XPathNavigator;true;Clone;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;true;Compile;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;true;CreateNavigator;();;Argument[this];ReturnValue;taint;df-generated | @@ -8461,17 +10854,25 @@ summary | System.Xml.Xsl;XsltArgumentList;false;GetParam;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltArgumentList;false;RemoveExtensionObject;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltArgumentList;false;RemoveParam;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Xsl;XsltArgumentList;false;add_XsltMessageEncountered;(System.Xml.Xsl.XsltMessageEncounteredEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml.Xsl;XsltArgumentList;false;remove_XsltMessageEncountered;(System.Xml.Xsl.XsltMessageEncounteredEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Xsl;XsltCompileException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Xml.Xsl;XsltException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | | System.Xml.Xsl;XsltException;false;XsltException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | | System.Xml.Xsl;XsltException;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltException;false;get_SourceUri;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml.Xsl;XsltMessageEncounteredEventHandler;false;BeginInvoke;(System.Object,System.Xml.Xsl.XsltMessageEncounteredEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.Xml;IXmlBinaryReaderInitializer;true;SetInput;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| System.Xml;IXmlBinaryReaderInitializer;true;SetInput;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System.Xml;IXmlTextReaderInitializer;true;SetInput;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Xml;IXmlTextReaderInitializer;true;SetInput;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Xml;NameTable;false;Add;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml;NameTable;false;Add;(System.Char[],System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;NameTable;false;Add;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System.Xml;NameTable;false;Add;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;NameTable;false;Get;(System.Char[],System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;NameTable;false;Get;(System.String);;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;OnXmlDictionaryReaderClose;false;BeginInvoke;(System.Xml.XmlDictionaryReader,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml;UniqueId;false;UniqueId;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;UniqueId;false;UniqueId;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlAttribute;false;CloneNode;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | @@ -8558,6 +10959,7 @@ summary | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[3];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[5];ReturnValue;taint;df-generated | +| System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);;Argument[0];ReturnValue;taint;df-generated | @@ -8565,10 +10967,15 @@ summary | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[1];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);;Argument[3];ReturnValue;taint;df-generated | +| System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDictionaryReader;false;CreateBinaryReader;(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas);;Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateDictionaryReader;(System.Xml.XmlReader);;Argument[0];ReturnValue;taint;df-generated | +| System.Xml;XmlDictionaryReader;false;CreateMtomReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);;Argument[7];Argument[7].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDictionaryReader;false;CreateMtomReader;(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDictionaryReader;false;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDictionaryReader;false;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;CreateTextReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);;Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlDictionaryReader;false;CreateTextReader;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDictionaryReader;false;ReadContentAsString;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;false;ReadString;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDictionaryReader;true;GetAttribute;(System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString);;Argument[this];ReturnValue;taint;df-generated | @@ -8673,14 +11080,28 @@ summary | System.Xml;XmlDocument;false;Load;(System.String);;Argument[0];Argument[this];taint;manual | | System.Xml;XmlDocument;false;Load;(System.Xml.XmlReader);;Argument[0];Argument[this];taint;manual | | System.Xml;XmlDocument;false;Save;(System.Xml.XmlWriter);;Argument[this];Argument[0];taint;df-generated | +| System.Xml;XmlDocument;false;Validate;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;Validate;(System.Xml.Schema.ValidationEventHandler,System.Xml.XmlNode);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDocument;false;WriteContentTo;(System.Xml.XmlWriter);;Argument[this];Argument[0];taint;df-generated | | System.Xml;XmlDocument;false;WriteTo;(System.Xml.XmlWriter);;Argument[this];Argument[0];taint;df-generated | | System.Xml;XmlDocument;false;XmlDocument;(System.Xml.XmlImplementation);;Argument[0];Argument[this];taint;df-generated | +| System.Xml;XmlDocument;false;add_NodeChanged;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;add_NodeChanging;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;add_NodeInserted;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;add_NodeInserting;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;add_NodeRemoved;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;add_NodeRemoving;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDocument;false;get_DocumentElement;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDocument;false;get_DocumentType;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDocument;false;get_Implementation;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDocument;false;get_NameTable;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDocument;false;get_Schemas;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlDocument;false;remove_NodeChanged;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;remove_NodeChanging;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;remove_NodeInserted;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;remove_NodeInserting;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;remove_NodeRemoved;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System.Xml;XmlDocument;false;remove_NodeRemoving;(System.Xml.XmlNodeChangedEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDocument;false;set_Schemas;(System.Xml.Schema.XmlSchemaSet);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlDocument;false;set_XmlResolver;(System.Xml.XmlResolver);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlDocumentFragment;false;CloneNode;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | @@ -8817,6 +11238,7 @@ summary | System.Xml;XmlNodeChangedEventArgs;false;get_Node;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNodeChangedEventArgs;false;get_OldParent;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNodeChangedEventArgs;false;get_OldValue;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlNodeChangedEventHandler;false;BeginInvoke;(System.Object,System.Xml.XmlNodeChangedEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlNodeList;true;get_ItemOf;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNodeReader;false;GetAttribute;(System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNodeReader;false;GetAttribute;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | @@ -8906,7 +11328,9 @@ summary | System.Xml;XmlReader;true;get_Item;(System.String,System.String);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlReader;true;get_Name;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlReader;true;get_SchemaInfo;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlReaderSettings;false;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlReaderSettings;false;get_NameTable;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlReaderSettings;false;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlReaderSettings;false;set_NameTable;(System.Xml.XmlNameTable);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlReaderSettings;false;set_Schemas;(System.Xml.Schema.XmlSchemaSet);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlReaderSettings;false;set_XmlResolver;(System.Xml.XmlResolver);;Argument[0];Argument[this];taint;df-generated | @@ -8947,8 +11371,10 @@ summary | System.Xml;XmlValidatingReader;false;XmlValidatingReader;(System.IO.Stream,System.Xml.XmlNodeType,System.Xml.XmlParserContext);;Argument[2];Argument[this];taint;df-generated | | System.Xml;XmlValidatingReader;false;XmlValidatingReader;(System.String,System.Xml.XmlNodeType,System.Xml.XmlParserContext);;Argument[2];Argument[this];taint;df-generated | | System.Xml;XmlValidatingReader;false;XmlValidatingReader;(System.Xml.XmlReader);;Argument[0];Argument[this];taint;df-generated | +| System.Xml;XmlValidatingReader;false;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlValidatingReader;false;get_Reader;();;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlValidatingReader;false;get_Schemas;();;Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlValidatingReader;false;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlWhitespace;false;CloneNode;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlWhitespace;false;WriteTo;(System.Xml.XmlWriter);;Argument[this];Argument[0];taint;df-generated | | System.Xml;XmlWhitespace;false;set_Value;(System.String);;Argument[0];Argument[this];taint;df-generated | @@ -8999,13 +11425,49 @@ summary | System.Xml;XmlWriterSettings;false;set_Encoding;(System.Text.Encoding);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlWriterSettings;false;set_IndentChars;(System.String);;Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlWriterSettings;false;set_NewLineChars;(System.String);;Argument[0];Argument[this];taint;df-generated | +| System;Action;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,System.AsyncCallback,System.Object);;Argument[16];Argument[16].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,System.AsyncCallback,System.Object);;Argument[15];Argument[15].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,System.AsyncCallback,System.Object);;Argument[14];Argument[14].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,System.AsyncCallback,System.Object);;Argument[13];Argument[13].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,System.AsyncCallback,System.Object);;Argument[12];Argument[12].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,System.AsyncCallback,System.Object);;Argument[11];Argument[11].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,System.AsyncCallback,System.Object);;Argument[10];Argument[10].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,System.AsyncCallback,System.Object);;Argument[9];Argument[9].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,System.AsyncCallback,System.Object);;Argument[8];Argument[8].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,System.AsyncCallback,System.Object);;Argument[7];Argument[7].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,System.AsyncCallback,System.Object);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System;Action<,,,>;false;BeginInvoke;(T1,T2,T3,T4,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System;Action<,,>;false;BeginInvoke;(T1,T2,T3,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System;Action<,>;false;BeginInvoke;(T1,T2,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Action<>;false;BeginInvoke;(T,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;AggregateException;false;AggregateException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | | System;AggregateException;false;AggregateException;(System.String,System.Exception);;Argument[1];Argument[this];taint;df-generated | | System;AggregateException;false;GetBaseException;();;Argument[this];ReturnValue;taint;df-generated | | System;AggregateException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System;AggregateException;false;Handle;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;AggregateException;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;AggregateException;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | | System;AppDomain;false;ApplyPolicy;(System.String);;Argument[0];ReturnValue;taint;df-generated | +| System;AppDomain;false;add_AssemblyLoad;(System.AssemblyLoadEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_AssemblyResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_DomainUnload;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_FirstChanceException;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_ProcessExit;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_ReflectionOnlyAssemblyResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_ResourceResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_TypeResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;add_UnhandledException;(System.UnhandledExceptionEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_AssemblyLoad;(System.AssemblyLoadEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_AssemblyResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_DomainUnload;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_FirstChanceException;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_ProcessExit;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_ReflectionOnlyAssemblyResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_ResourceResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_TypeResolve;(System.ResolveEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;AppDomain;false;remove_UnhandledException;(System.UnhandledExceptionEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;ArgumentException;false;ArgumentException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | | System;ArgumentException;false;ArgumentException;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System;ArgumentException;false;ArgumentException;(System.String,System.String,System.Exception);;Argument[1];Argument[this];taint;df-generated | @@ -9021,19 +11483,33 @@ summary | System;Array;false;Clear;(System.Array);;Argument[0].WithoutElement;Argument[0];value;manual | | System;Array;false;Clear;(System.Array,System.Int32,System.Int32);;Argument[0].WithoutElement;Argument[0];value;manual | | System;Array;false;Clone;();;Argument[this].Element;ReturnValue.Element;value;manual | +| System;Array;false;ConvertAll<,>;(TInput[],System.Converter);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;false;CopyTo;(System.Array,System.Int64);;Argument[this].Element;Argument[0].Element;value;manual | +| System;Array;false;Exists<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;false;Fill<>;(T[],T);;Argument[1];Argument[0].Element;taint;df-generated | | System;Array;false;Fill<>;(T[],T,System.Int32,System.Int32);;Argument[1];Argument[0].Element;taint;df-generated | | System;Array;false;Find<>;(T[],System.Predicate);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;false;Find<>;(T[],System.Predicate);;Argument[0].Element;ReturnValue;value;manual | +| System;Array;false;Find<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System;Array;false;FindAll<>;(T[],System.Predicate);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;false;FindAll<>;(T[],System.Predicate);;Argument[0].Element;ReturnValue;value;manual | +| System;Array;false;FindAll<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System;Array;false;FindIndex<>;(T[],System.Int32,System.Int32,System.Predicate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System;Array;false;FindIndex<>;(T[],System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Array;false;FindIndex<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;false;FindLast<>;(T[],System.Predicate);;Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;false;FindLast<>;(T[],System.Predicate);;Argument[0].Element;ReturnValue;value;manual | +| System;Array;false;FindLast<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;manual | +| System;Array;false;FindLastIndex<>;(T[],System.Int32,System.Int32,System.Predicate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System;Array;false;FindLastIndex<>;(T[],System.Int32,System.Predicate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Array;false;FindLastIndex<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Array;false;ForEach<>;(T[],System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;false;Reverse;(System.Array);;Argument[0].Element;ReturnValue.Element;value;manual | | System;Array;false;Reverse;(System.Array,System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System;Array;false;Reverse<>;(T[]);;Argument[0].Element;ReturnValue.Element;value;manual | | System;Array;false;Reverse<>;(T[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | +| System;Array;false;Sort<>;(T[],System.Comparison);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Array;false;TrueForAll<>;(T[],System.Predicate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated | | System;ArraySegment<>+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated | | System;ArraySegment<>;false;ArraySegment;(T[]);;Argument[0].Element;Argument[this];taint;df-generated | @@ -9043,6 +11519,8 @@ summary | System;ArraySegment<>;false;Slice;(System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System;ArraySegment<>;false;get_Array;();;Argument[this];ReturnValue;taint;df-generated | | System;ArraySegment<>;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | +| System;AssemblyLoadEventHandler;false;BeginInvoke;(System.Object,System.AssemblyLoadEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;AsyncCallback;false;BeginInvoke;(System.IAsyncResult,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;BadImageFormatException;false;BadImageFormatException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | | System;BadImageFormatException;false;BadImageFormatException;(System.String,System.String);;Argument[1];Argument[this];taint;df-generated | | System;BadImageFormatException;false;BadImageFormatException;(System.String,System.String,System.Exception);;Argument[1];Argument[this];taint;df-generated | @@ -9056,6 +11534,10 @@ summary | System;Boolean;false;TryParse;(System.ReadOnlySpan,System.Boolean);;Argument[0].Element;ReturnValue;taint;manual | | System;Boolean;false;TryParse;(System.String,System.Boolean);;Argument[0];Argument[1];taint;manual | | System;Boolean;false;TryParse;(System.String,System.Boolean);;Argument[0];ReturnValue;taint;manual | +| System;Comparison<>;false;BeginInvoke;(T,T,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Console;false;add_CancelKeyPress;(System.ConsoleCancelEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Console;false;remove_CancelKeyPress;(System.ConsoleCancelEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;ConsoleCancelEventHandler;false;BeginInvoke;(System.Object,System.ConsoleCancelEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Convert;false;ChangeType;(System.Object,System.Type);;Argument[0];ReturnValue;taint;manual | | System;Convert;false;ChangeType;(System.Object,System.Type,System.IFormatProvider);;Argument[0];ReturnValue;taint;manual | | System;Convert;false;ChangeType;(System.Object,System.TypeCode);;Argument[0];ReturnValue;taint;manual | @@ -9383,6 +11865,7 @@ summary | System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan,System.Span,System.Int32,System.Base64FormattingOptions);;Argument[0].Element;Argument[1].Element;taint;manual | | System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan,System.Span,System.Int32,System.Base64FormattingOptions);;Argument[0].Element;Argument[2];taint;manual | | System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan,System.Span,System.Int32,System.Base64FormattingOptions);;Argument[0].Element;ReturnValue;taint;manual | +| System;Converter<,>;false;BeginInvoke;(TInput,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;DBNull;false;ToType;(System.Type,System.IFormatProvider);;Argument[this];ReturnValue;taint;df-generated | | System;DateOnly;false;ToString;(System.IFormatProvider);;Argument[0];ReturnValue;taint;df-generated | | System;DateOnly;false;ToString;(System.String,System.IFormatProvider);;Argument[1];ReturnValue;taint;df-generated | @@ -9421,23 +11904,44 @@ summary | System;Enum;false;GetUnderlyingType;(System.Type);;Argument[0];ReturnValue;taint;df-generated | | System;Enum;false;ToType;(System.Type,System.IFormatProvider);;Argument[this];ReturnValue;taint;df-generated | | System;Environment;false;ExpandEnvironmentVariables;(System.String);;Argument[0];ReturnValue;taint;df-generated | +| System;EventHandler;false;BeginInvoke;(System.Object,System.EventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;EventHandler<>;false;BeginInvoke;(System.Object,TEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Exception;false;Exception;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated | | System;Exception;false;Exception;(System.String);;Argument[0];Argument[this];taint;df-generated | | System;Exception;false;Exception;(System.String,System.Exception);;Argument[0];Argument[this];taint;df-generated | | System;Exception;false;Exception;(System.String,System.Exception);;Argument[1];Argument[this];taint;df-generated | | System;Exception;false;GetBaseException;();;Argument[this];ReturnValue;taint;df-generated | | System;Exception;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated | +| System;Exception;false;add_SerializeObjectState;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Exception;false;get_HelpLink;();;Argument[this];ReturnValue;taint;df-generated | | System;Exception;false;get_InnerException;();;Argument[this];ReturnValue;taint;df-generated | | System;Exception;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated | | System;Exception;false;get_StackTrace;();;Argument[this];ReturnValue;taint;df-generated | | System;Exception;false;get_TargetSite;();;Argument[this];ReturnValue;taint;df-generated | +| System;Exception;false;remove_SerializeObjectState;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Exception;false;set_HelpLink;(System.String);;Argument[0];Argument[this];taint;df-generated | | System;Exception;false;set_Source;(System.String);;Argument[0];Argument[this];taint;df-generated | | System;FormattableString;false;CurrentCulture;(System.FormattableString);;Argument[0];ReturnValue;taint;df-generated | | System;FormattableString;false;Invariant;(System.FormattableString);;Argument[0];ReturnValue;taint;df-generated | | System;FormattableString;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;FormattableString;false;ToString;(System.String,System.IFormatProvider);;Argument[this];ReturnValue;taint;df-generated | +| System;Func<,,,,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,System.AsyncCallback,System.Object);;Argument[16];Argument[16].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,System.AsyncCallback,System.Object);;Argument[15];Argument[15].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,System.AsyncCallback,System.Object);;Argument[14];Argument[14].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,System.AsyncCallback,System.Object);;Argument[13];Argument[13].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,System.AsyncCallback,System.Object);;Argument[12];Argument[12].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,System.AsyncCallback,System.Object);;Argument[11];Argument[11].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,System.AsyncCallback,System.Object);;Argument[10];Argument[10].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,T9,System.AsyncCallback,System.Object);;Argument[9];Argument[9].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,T8,System.AsyncCallback,System.Object);;Argument[8];Argument[8].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,T7,System.AsyncCallback,System.Object);;Argument[7];Argument[7].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,System.AsyncCallback,System.Object);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,,>;false;BeginInvoke;(T1,T2,T3,T4,T5,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,,>;false;BeginInvoke;(T1,T2,T3,T4,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | +| System;Func<,,,>;false;BeginInvoke;(T1,T2,T3,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | +| System;Func<,,>;false;BeginInvoke;(T1,T2,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Func<,>;false;BeginInvoke;(T,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Func<>;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Half;false;BitDecrement;(System.Half);;Argument[0];ReturnValue;taint;df-generated | | System;Half;false;BitIncrement;(System.Half);;Argument[0];ReturnValue;taint;df-generated | | System;Half;false;ToString;(System.IFormatProvider);;Argument[0];ReturnValue;taint;df-generated | @@ -9467,13 +11971,19 @@ summary | System;IntPtr;false;Min;(System.IntPtr,System.IntPtr);;Argument[0];ReturnValue;taint;df-generated | | System;IntPtr;false;Min;(System.IntPtr,System.IntPtr);;Argument[1];ReturnValue;taint;df-generated | | System;IntPtr;false;ToPointer;();;Argument[this];ReturnValue;taint;df-generated | +| System;Lazy<,>;false;Lazy;(System.Func,TMetadata);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Lazy<,>;false;Lazy;(System.Func,TMetadata,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Lazy<,>;false;Lazy;(System.Func,TMetadata,System.Threading.LazyThreadSafetyMode);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Lazy<,>;false;Lazy;(TMetadata);;Argument[0];Argument[this];taint;df-generated | | System;Lazy<,>;false;Lazy;(TMetadata,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System;Lazy<,>;false;Lazy;(TMetadata,System.Threading.LazyThreadSafetyMode);;Argument[0];Argument[this];taint;df-generated | | System;Lazy<,>;false;get_Metadata;();;Argument[this];ReturnValue;taint;df-generated | | System;Lazy<>;false;Lazy;(System.Func);;Argument[0].ReturnValue;Argument[this].Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy<>;false;Lazy;(System.Func,System.Boolean);;Argument[0].ReturnValue;Argument[this].Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy<>;false;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);;Argument[0].ReturnValue;Argument[this].Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);;Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy<>;false;Lazy;(T);;Argument[0];Argument[this];taint;df-generated | | System;Lazy<>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;Lazy<>;false;get_Value;();;Argument[this];ReturnValue;taint;manual | @@ -9515,6 +12025,8 @@ summary | System;MemoryExtensions;false;AsMemory<>;(T[],System.Range);;Argument[0].Element;ReturnValue;taint;df-generated | | System;MemoryExtensions;false;EnumerateLines;(System.ReadOnlySpan);;Argument[0];ReturnValue;taint;df-generated | | System;MemoryExtensions;false;EnumerateRunes;(System.ReadOnlySpan);;Argument[0];ReturnValue;taint;df-generated | +| System;MemoryExtensions;false;Sort<,>;(System.Span,System.Span,System.Comparison);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;MemoryExtensions;false;Sort<>;(System.Span,System.Comparison);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;MemoryExtensions;false;Trim;(System.Memory);;Argument[0];ReturnValue;taint;df-generated | | System;MemoryExtensions;false;Trim;(System.ReadOnlyMemory);;Argument[0];ReturnValue;taint;df-generated | | System;MemoryExtensions;false;Trim<>;(System.Memory,System.ReadOnlySpan);;Argument[0];ReturnValue;taint;df-generated | @@ -9575,12 +12087,17 @@ summary | System;OperationCanceledException;false;OperationCanceledException;(System.String,System.Threading.CancellationToken);;Argument[1];Argument[this];taint;df-generated | | System;OperationCanceledException;false;OperationCanceledException;(System.Threading.CancellationToken);;Argument[0];Argument[this];taint;df-generated | | System;OperationCanceledException;false;get_CancellationToken;();;Argument[this];ReturnValue;taint;df-generated | +| System;Predicate<>;false;BeginInvoke;(T,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Progress<>;false;Progress;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Progress<>;false;add_ProgressChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Progress<>;false;remove_ProgressChanged;(System.EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;ReadOnlyMemory<>;false;ReadOnlyMemory;(T[]);;Argument[0].Element;Argument[this];taint;df-generated | | System;ReadOnlyMemory<>;false;ReadOnlyMemory;(T[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;df-generated | | System;ReadOnlyMemory<>;false;Slice;(System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System;ReadOnlyMemory<>;false;Slice;(System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated | | System;ReadOnlyMemory<>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;ReadOnlySpan<>;false;GetEnumerator;();;Argument[this];ReturnValue;taint;df-generated | +| System;ResolveEventHandler;false;BeginInvoke;(System.Object,System.ResolveEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;RuntimeFieldHandle;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | System;RuntimeMethodHandle;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | | System;RuntimeTypeHandle;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated | @@ -9620,6 +12137,7 @@ summary | System;String;false;Concat;(System.String[]);;Argument[0].Element;ReturnValue;taint;manual | | System;String;false;Concat<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;manual | | System;String;false;Copy;(System.String);;Argument[0];ReturnValue;value;manual | +| System;String;false;Create<>;(System.Int32,TState,System.Buffers.SpanAction);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;String;false;EnumerateRunes;();;Argument[this];ReturnValue;taint;df-generated | | System;String;false;Format;(System.IFormatProvider,System.String,System.Object);;Argument[1];ReturnValue;taint;manual | | System;String;false;Format;(System.IFormatProvider,System.String,System.Object);;Argument[2];ReturnValue;taint;manual | @@ -10126,9 +12644,17 @@ summary | System;Type;false;GetProperty;(System.String,System.Type,System.Type[]);;Argument[this];ReturnValue;taint;df-generated | | System;Type;false;GetProperty;(System.String,System.Type,System.Type[],System.Reflection.ParameterModifier[]);;Argument[this];ReturnValue;taint;df-generated | | System;Type;false;GetProperty;(System.String,System.Type[]);;Argument[this];ReturnValue;taint;df-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func,System.Boolean);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func,System.Boolean,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | +| System;Type;false;GetType;(System.String,System.Func,System.Func,System.Boolean,System.Boolean);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Type;false;MakeGenericSignatureType;(System.Type,System.Type[]);;Argument[0];ReturnValue;taint;df-generated | | System;Type;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;Type;false;get_TypeInitializer;();;Argument[this];ReturnValue;taint;df-generated | +| System;Type;true;FindInterfaces;(System.Reflection.TypeFilter,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | +| System;Type;true;FindMembers;(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Type;true;GetEvents;();;Argument[this];ReturnValue;taint;df-generated | | System;Type;true;GetMember;(System.String,System.Reflection.BindingFlags);;Argument[this];ReturnValue;taint;df-generated | | System;Type;true;GetMemberWithSameMetadataDefinitionAs;(System.Reflection.MemberInfo);;Argument[this];ReturnValue;taint;df-generated | @@ -10153,6 +12679,7 @@ summary | System;UIntPtr;false;UIntPtr;(System.Void*);;Argument[0];Argument[this];taint;df-generated | | System;UnhandledExceptionEventArgs;false;UnhandledExceptionEventArgs;(System.Object,System.Boolean);;Argument[0];Argument[this];taint;df-generated | | System;UnhandledExceptionEventArgs;false;get_ExceptionObject;();;Argument[this];ReturnValue;taint;df-generated | +| System;UnhandledExceptionEventHandler;false;BeginInvoke;(System.Object,System.UnhandledExceptionEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Uri;false;EscapeDataString;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System;Uri;false;EscapeString;(System.String);;Argument[0];ReturnValue;taint;df-generated | | System;Uri;false;EscapeUriString;(System.String);;Argument[0];ReturnValue;taint;df-generated | diff --git a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected index 086d964a08e..8570dcbc972 100644 --- a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected +++ b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected @@ -1,17 +1,9 @@ testFailures -| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | Unexpected result: hasValueFlow=C | -| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | Unexpected result: hasValueFlow=A | -| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | Unexpected result: hasValueFlow=C | -| TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | Unexpected result: hasValueFlow=E | -| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | Unexpected result: hasValueFlow=F | -| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | Unexpected result: hasValueFlow=G | edges | TypeFlowDispatch.cs:16:42:16:42 | x : String | TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | | TypeFlowDispatch.cs:16:42:16:42 | x : String | TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | | TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | TypeFlowDispatch.cs:28:20:28:20 | x : String | | TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | TypeFlowDispatch.cs:28:20:28:20 | x : String | -| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | TypeFlowDispatch.cs:29:20:29:20 | x : String | -| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | TypeFlowDispatch.cs:29:20:29:20 | x : String | | TypeFlowDispatch.cs:21:46:21:46 | x : String | TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | | TypeFlowDispatch.cs:21:46:21:46 | x : String | TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | | TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | TypeFlowDispatch.cs:16:42:16:42 | x : String | @@ -20,22 +12,14 @@ edges | TypeFlowDispatch.cs:28:20:28:20 | x : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:21:46:21:46 | x : String | | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:21:46:21:46 | x : String | -| TypeFlowDispatch.cs:29:20:29:20 | x : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | -| TypeFlowDispatch.cs:29:20:29:20 | x : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | -| TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:21:46:21:46 | x : String | -| TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:21:46:21:46 | x : String | | TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | | TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:43:31:43:31 | x : String | -| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:43:31:43:31 | x : String | | TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:44:34:44:34 | x : String | | TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:44:34:44:34 | x : String | | TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | | TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:43:31:43:31 | x : String | TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | -| TypeFlowDispatch.cs:43:31:43:31 | x : String | TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | | TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | | TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | | TypeFlowDispatch.cs:44:34:44:34 | x : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | @@ -44,16 +28,12 @@ edges | TypeFlowDispatch.cs:47:42:47:42 | x : String | TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | | TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | | TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | -| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | TypeFlowDispatch.cs:58:32:58:32 | t : String | -| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | TypeFlowDispatch.cs:58:32:58:32 | t : String | | TypeFlowDispatch.cs:52:46:52:46 | x : String | TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | | TypeFlowDispatch.cs:52:46:52:46 | x : String | TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | | TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | TypeFlowDispatch.cs:47:42:47:42 | x : String | | TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | TypeFlowDispatch.cs:47:42:47:42 | x : String | | TypeFlowDispatch.cs:57:32:57:32 | t : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | | TypeFlowDispatch.cs:57:32:57:32 | t : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | -| TypeFlowDispatch.cs:58:32:58:32 | t : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | -| TypeFlowDispatch.cs:58:32:58:32 | t : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:52:46:52:46 | x : String | | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:52:46:52:46 | x : String | | TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | @@ -64,8 +44,6 @@ edges | TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | | TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | | TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | -| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | TypeFlowDispatch.cs:58:32:58:32 | t : String | -| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | TypeFlowDispatch.cs:58:32:58:32 | t : String | | TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | | TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | | TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | @@ -91,12 +69,6 @@ nodes | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | semmle.label | access to parameter x | | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | semmle.label | call to method Source : String | | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:29:20:29:20 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:29:20:29:20 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | semmle.label | access to parameter x | -| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | semmle.label | access to parameter x | -| TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | semmle.label | call to method Source : String | | TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | semmle.label | l : List [element] : String | | TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | semmle.label | l : List [element] : String | | TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | @@ -105,10 +77,6 @@ nodes | TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | semmle.label | call to method Source : String | | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:43:31:43:31 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:43:31:43:31 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | semmle.label | access to parameter x | -| TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | semmle.label | access to parameter x | | TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | | TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | | TypeFlowDispatch.cs:44:34:44:34 | x : String | semmle.label | x : String | @@ -127,10 +95,6 @@ nodes | TypeFlowDispatch.cs:57:32:57:32 | t : String | semmle.label | t : String | | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | semmle.label | access to parameter t | | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | semmle.label | access to parameter t | -| TypeFlowDispatch.cs:58:32:58:32 | t : String | semmle.label | t : String | -| TypeFlowDispatch.cs:58:32:58:32 | t : String | semmle.label | t : String | -| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | semmle.label | access to parameter t | -| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | semmle.label | access to parameter t | | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | semmle.label | call to method Source : String | | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | semmle.label | call to method Source : String | | TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | semmle.label | l : List [element] : String | @@ -155,21 +119,9 @@ subpaths #select | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | $@ | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | call to method Source : String | | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | $@ | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | $@ | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | $@ | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | $@ | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | $@ | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | $@ | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | TypeFlowDispatch.cs:29:32:29:32 | access to parameter x | $@ | TypeFlowDispatch.cs:30:30:30:40 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | $@ | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:43:43:43:43 | access to parameter x | $@ | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | call to method Source : String | | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | $@ | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | call to method Source : String | | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | $@ | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | call to method Source : String | | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | call to method Source : String | | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | call to method Source : String | | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | call to method Source : String | | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | $@ | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | $@ | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | $@ | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:58:43:58:43 | access to parameter t | $@ | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | call to method Source : String | diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 67948db0ee8..f1f8a72e3f6 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -101,6 +101,7 @@ signature module InputSig { bindingset[t1, t2] predicate compatibleTypes(DataFlowType t1, DataFlowType t2); + bindingset[t1, t2] predicate typeStrongerThan(DataFlowType t1, DataFlowType t2); class Content { From aa2c7a79d6f83b3c4fbd52991bf5abf11458d3b4 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 25 Sep 2023 08:55:09 +0200 Subject: [PATCH 627/788] Dataflow: Add bindingset --- shared/dataflow/codeql/dataflow/DataFlow.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 4f3704ccf3d..166f2972f1a 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -228,6 +228,7 @@ signature module InputSig { */ default int getAdditionalFlowIntoCallNodeTerm(ArgumentNode arg, ParameterNode p) { none() } + bindingset[call, p, arg] default predicate golangSpecificParamArgFilter( DataFlowCall call, ParameterNode p, ArgumentNode arg ) { From cfed7e9b6cfb79fce57d2e77e661d298703826cd Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 22 Sep 2023 13:00:48 +0200 Subject: [PATCH 628/788] Shared: add in/out barriers with flow state --- shared/dataflow/codeql/dataflow/DataFlow.qll | 6 ++ .../codeql/dataflow/internal/DataFlowImpl.qll | 60 ++++++++++++++++--- 2 files changed, 59 insertions(+), 7 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 67948db0ee8..197afc8eec4 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -357,9 +357,15 @@ module Configs { /** Holds if data flow into `node` is prohibited. */ default predicate isBarrierIn(Node node) { none() } + /** Holds if data flow into `node` is prohibited when the target flow state is `state`. */ + default predicate isBarrierIn(Node node, FlowState state) { none() } + /** Holds if data flow out of `node` is prohibited. */ default predicate isBarrierOut(Node node) { none() } + /** Holds if data flow out of `node` is prohibited when the originating flow state is `state`. */ + default predicate isBarrierOut(Node node, FlowState state) { none() } + /** * Holds if data may flow from `node1` to `node2` in addition to the normal data-flow steps. */ diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index e4182a32a4b..fa5cb9744ea 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -53,9 +53,15 @@ module MakeImpl { /** Holds if data flow into `node` is prohibited. */ predicate isBarrierIn(Node node); + /** Holds if data flow into `node` is prohibited when the target flow state is `state`. */ + predicate isBarrierIn(Node node, FlowState state); + /** Holds if data flow out of `node` is prohibited. */ predicate isBarrierOut(Node node); + /** Holds if data flow out of `node` is prohibited when the originating flow state is `state`. */ + predicate isBarrierOut(Node node, FlowState state); + /** * Holds if data may flow from `node1` to `node2` in addition to the normal data-flow steps. */ @@ -133,6 +139,10 @@ module MakeImpl { predicate isBarrier(Node node, FlowState state) { none() } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, FlowState state1, Node node2, FlowState state2) { none() } @@ -220,6 +230,14 @@ module MakeImpl { ) } + private predicate inBarrier(NodeEx node, FlowState state) { + exists(Node n | + node.asNode() = n and + Config::isBarrierIn(n, state) and + Config::isSource(n, state) + ) + } + private predicate outBarrier(NodeEx node) { exists(Node n | node.asNode() = n and @@ -231,6 +249,17 @@ module MakeImpl { ) } + private predicate outBarrier(NodeEx node, FlowState state) { + exists(Node n | + node.asNode() = n and + Config::isBarrierOut(n, state) + | + Config::isSink(n, state) + or + Config::isSink(n) + ) + } + pragma[nomagic] private predicate fullBarrier(NodeEx node) { exists(Node n | node.asNode() = n | @@ -247,7 +276,16 @@ module MakeImpl { pragma[nomagic] private predicate stateBarrier(NodeEx node, FlowState state) { - exists(Node n | node.asNode() = n | Config::isBarrier(n, state)) + exists(Node n | node.asNode() = n | + Config::isBarrier(n, state) + or + Config::isBarrierIn(n, state) and + not Config::isSource(n, state) + or + Config::isBarrierOut(n, state) and + not Config::isSink(n, state) and + not Config::isSink(n) + ) } pragma[nomagic] @@ -265,6 +303,7 @@ module MakeImpl { } /** Provides the relevant barriers for a step from `node1` to `node2`. */ + bindingset[node1, node2] pragma[inline] private predicate stepFilter(NodeEx node1, NodeEx node2) { not outBarrier(node1) and @@ -273,6 +312,17 @@ module MakeImpl { not fullBarrier(node2) } + /** Provides the relevant barriers for a step from `node1,state1` to `node2,state2`, including stateless barriers for `node1` to `node2`. */ + bindingset[node1, state1, node2, state2] + pragma[inline] + private predicate stateStepFilter(NodeEx node1, FlowState state1, NodeEx node2, FlowState state2) { + stepFilter(node1, node2) and + not outBarrier(node1, state1) and + not inBarrier(node2, state2) and + not stateBarrier(node1, state1) and + not stateBarrier(node2, state2) + } + pragma[nomagic] private predicate isUnreachableInCall1(NodeEx n, LocalCallContextSpecificCall cc) { isUnreachableInCallCached(n.asNode(), cc.getCall()) @@ -325,9 +375,7 @@ module MakeImpl { node2.asNode() = n2 and Config::isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and - stepFilter(node1, node2) and - not stateBarrier(node1, s1) and - not stateBarrier(node2, s2) + stateStepFilter(node1, s1, node2, s2) ) } @@ -364,9 +412,7 @@ module MakeImpl { node2.asNode() = n2 and Config::isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and - stepFilter(node1, node2) and - not stateBarrier(node1, s1) and - not stateBarrier(node2, s2) and + stateStepFilter(node1, s1, node2, s2) and not Config::getAFeature() instanceof FeatureEqualSourceSinkCallContext ) } From dc6def79d08645c486c1f1f4ca2a04c076af156e Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 25 Sep 2023 10:02:34 +0200 Subject: [PATCH 629/788] C#: Split API name column into separate columns --- .../modeleditor/ApplicationModeEndpoints.ql | 9 +++-- .../modeleditor/FrameworkModeEndpoints.ql | 6 ++-- .../ql/src/utils/modeleditor/ModelEditor.qll | 22 +++++------- .../ApplicationModeEndpoints.expected | 28 +++++++-------- .../FrameworkModeEndpoints.expected | 36 +++++++++---------- 5 files changed, 48 insertions(+), 53 deletions(-) diff --git a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index ad40ebe91c4..8ddd82a8d1d 100644 --- a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -12,13 +12,12 @@ import ModelEditor private Call aUsage(ExternalEndpoint api) { result.getTarget().getUnboundDeclaration() = api } -from - ExternalEndpoint endpoint, string apiName, boolean supported, Call usage, string type, - string classification +from ExternalEndpoint endpoint, boolean supported, Call usage, string type, string classification where - apiName = endpoint.getApiName() and supported = isSupported(endpoint) and usage = aUsage(endpoint) and type = supportedType(endpoint) and classification = methodClassification(usage) -select usage, apiName, supported, endpoint.dllName(), endpoint.dllVersion(), type, classification +select usage, endpoint.getNamespace(), endpoint.getTypeName(), endpoint.getName(), + endpoint.getParameterTypes(), supported, endpoint.dllName(), endpoint.dllVersion(), type, + classification diff --git a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index 5924fb2526f..913588872d5 100644 --- a/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/csharp/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -10,9 +10,9 @@ import csharp import FrameworkModeEndpointsQuery import ModelEditor -from PublicEndpointFromSource endpoint, string apiName, boolean supported, string type +from PublicEndpointFromSource endpoint, boolean supported, string type where - apiName = endpoint.getApiName() and supported = isSupported(endpoint) and type = supportedType(endpoint) -select endpoint, apiName, supported, endpoint.getFile().getBaseName(), type +select endpoint, endpoint.getNamespace(), endpoint.getTypeName(), endpoint.getName(), + endpoint.getParameterTypes(), supported, endpoint.getFile().getBaseName(), type diff --git a/csharp/ql/src/utils/modeleditor/ModelEditor.qll b/csharp/ql/src/utils/modeleditor/ModelEditor.qll index 1b34b8e2e91..e7557c9ca87 100644 --- a/csharp/ql/src/utils/modeleditor/ModelEditor.qll +++ b/csharp/ql/src/utils/modeleditor/ModelEditor.qll @@ -25,26 +25,22 @@ class Endpoint extends Callable { } /** - * Gets the unbound type, name and parameter types of this API. - */ - bindingset[this] - private string getSignature() { - result = - nestedName(this.getDeclaringType().getUnboundDeclaration()) + "#" + this.getName() + "(" + - parameterQualifiedTypeNamesToString(this) + ")" - } - - /** - * Gets the namespace of this API. + * Gets the namespace of this endpoint. */ bindingset[this] string getNamespace() { this.getDeclaringType().hasQualifiedName(result, _) } /** - * Gets the namespace and signature of this API. + * Gets the unbound type name of this endpoint. */ bindingset[this] - string getApiName() { result = this.getNamespace() + "." + this.getSignature() } + string getTypeName() { result = nestedName(this.getDeclaringType().getUnboundDeclaration()) } + + /** + * Gets the parameter types of this endpoint. + */ + bindingset[this] + string getParameterTypes() { result = parameterQualifiedTypeNamesToString(this) } private string getDllName() { result = this.getLocation().(Assembly).getName() } diff --git a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected index 7093e608799..2e6b2590341 100644 --- a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected +++ b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected @@ -1,14 +1,14 @@ -| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:9:9:9:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:14:9:14:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:19:9:19:51 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:19:33:19:50 | call to method ReadLine | System.Console#ReadLine() | true | System.Console | 7.0.0.0 | source | source | -| PublicClass.cs:24:9:24:46 | call to method Write | System.Console#Write(System.Object) | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:24:23:24:45 | access to property BackgroundColor | System.Console#get_BackgroundColor() | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:25:9:25:31 | access to property ForegroundColor | System.Console#set_ForegroundColor(System.ConsoleColor) | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:30:9:30:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | -| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System.Console#WriteLine(System.Object) | true | System.Console | 7.0.0.0 | neutral | source | -| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System.Console#WriteLine(System.Object) | true | System.Console | 7.0.0.0 | neutral | source | -| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | -| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System.Console#WriteLine(System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:19:9:19:51 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | | true | System.Console | 7.0.0.0 | source | source | +| PublicClass.cs:24:9:24:46 | call to method Write | System | Console | Write | System.Object | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:24:23:24:45 | access to property BackgroundColor | System | Console | get_BackgroundColor | | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:25:9:25:31 | access to property ForegroundColor | System | Console | set_ForegroundColor | System.ConsoleColor | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:30:9:30:30 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | +| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | System.Object | true | System.Console | 7.0.0.0 | neutral | source | +| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | System.Object | true | System.Console | 7.0.0.0 | neutral | source | +| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | +| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | diff --git a/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected b/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected index da8a871266c..6a46410d0a9 100644 --- a/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected +++ b/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected @@ -1,18 +1,18 @@ -| PublicClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicClass#stuff(System.String) | false | PublicClass.cs | | -| PublicClass.cs:12:24:12:34 | staticStuff | GitHub.CodeQL.PublicClass#staticStuff(System.String) | false | PublicClass.cs | | -| PublicClass.cs:17:20:17:33 | protectedStuff | GitHub.CodeQL.PublicClass#protectedStuff(System.String) | false | PublicClass.cs | | -| PublicClass.cs:33:45:33:47 | get_PublicProperty | GitHub.CodeQL.PublicClass#get_PublicProperty() | false | PublicClass.cs | | -| PublicClass.cs:33:50:33:52 | set_PublicProperty | GitHub.CodeQL.PublicClass#set_PublicProperty(System.String) | false | PublicClass.cs | | -| PublicClass.cs:35:19:35:30 | summaryStuff | GitHub.CodeQL.PublicClass#summaryStuff(System.String) | true | PublicClass.cs | summary | -| PublicClass.cs:40:19:40:29 | sourceStuff | GitHub.CodeQL.PublicClass#sourceStuff() | true | PublicClass.cs | source | -| PublicClass.cs:45:17:45:25 | sinkStuff | GitHub.CodeQL.PublicClass#sinkStuff(System.String) | true | PublicClass.cs | sink | -| PublicClass.cs:50:17:50:28 | neutralStuff | GitHub.CodeQL.PublicClass#neutralStuff(System.String) | true | PublicClass.cs | neutral | -| PublicGenericClass.cs:7:17:7:21 | stuff | GitHub.CodeQL.PublicGenericClass<,>#stuff(T) | false | PublicGenericClass.cs | | -| PublicGenericClass.cs:12:17:12:26 | stuff2<> | GitHub.CodeQL.PublicGenericClass<,>#stuff2<>(T2) | false | PublicGenericClass.cs | | -| PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicGenericInterface<>#stuff(T) | false | PublicGenericInterface.cs | | -| PublicGenericInterface.cs:9:10:9:19 | stuff2<> | GitHub.CodeQL.PublicGenericInterface<>#stuff2<>(T2) | false | PublicGenericInterface.cs | | -| PublicGenericInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicGenericInterface<>#staticStuff(System.String) | false | PublicGenericInterface.cs | | -| PublicInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL.PublicInterface#stuff(System.String) | false | PublicInterface.cs | | -| PublicInterface.cs:9:29:9:31 | get_PublicProperty | GitHub.CodeQL.PublicInterface#get_PublicProperty() | false | PublicInterface.cs | | -| PublicInterface.cs:9:34:9:36 | set_PublicProperty | GitHub.CodeQL.PublicInterface#set_PublicProperty(System.String) | false | PublicInterface.cs | | -| PublicInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL.PublicInterface#staticStuff(System.String) | false | PublicInterface.cs | | +| PublicClass.cs:7:17:7:21 | stuff | GitHub.CodeQL | PublicClass | stuff | System.String | false | PublicClass.cs | | +| PublicClass.cs:12:24:12:34 | staticStuff | GitHub.CodeQL | PublicClass | staticStuff | System.String | false | PublicClass.cs | | +| PublicClass.cs:17:20:17:33 | protectedStuff | GitHub.CodeQL | PublicClass | protectedStuff | System.String | false | PublicClass.cs | | +| PublicClass.cs:33:45:33:47 | get_PublicProperty | GitHub.CodeQL | PublicClass | get_PublicProperty | | false | PublicClass.cs | | +| PublicClass.cs:33:50:33:52 | set_PublicProperty | GitHub.CodeQL | PublicClass | set_PublicProperty | System.String | false | PublicClass.cs | | +| PublicClass.cs:35:19:35:30 | summaryStuff | GitHub.CodeQL | PublicClass | summaryStuff | System.String | true | PublicClass.cs | summary | +| PublicClass.cs:40:19:40:29 | sourceStuff | GitHub.CodeQL | PublicClass | sourceStuff | | true | PublicClass.cs | source | +| PublicClass.cs:45:17:45:25 | sinkStuff | GitHub.CodeQL | PublicClass | sinkStuff | System.String | true | PublicClass.cs | sink | +| PublicClass.cs:50:17:50:28 | neutralStuff | GitHub.CodeQL | PublicClass | neutralStuff | System.String | true | PublicClass.cs | neutral | +| PublicGenericClass.cs:7:17:7:21 | stuff | GitHub.CodeQL | PublicGenericClass<,> | stuff | T | false | PublicGenericClass.cs | | +| PublicGenericClass.cs:12:17:12:26 | stuff2<> | GitHub.CodeQL | PublicGenericClass<,> | stuff2<> | T2 | false | PublicGenericClass.cs | | +| PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL | PublicGenericInterface<> | stuff | T | false | PublicGenericInterface.cs | | +| PublicGenericInterface.cs:9:10:9:19 | stuff2<> | GitHub.CodeQL | PublicGenericInterface<> | stuff2<> | T2 | false | PublicGenericInterface.cs | | +| PublicGenericInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL | PublicGenericInterface<> | staticStuff | System.String | false | PublicGenericInterface.cs | | +| PublicInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL | PublicInterface | stuff | System.String | false | PublicInterface.cs | | +| PublicInterface.cs:9:29:9:31 | get_PublicProperty | GitHub.CodeQL | PublicInterface | get_PublicProperty | | false | PublicInterface.cs | | +| PublicInterface.cs:9:34:9:36 | set_PublicProperty | GitHub.CodeQL | PublicInterface | set_PublicProperty | System.String | false | PublicInterface.cs | | +| PublicInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL | PublicInterface | staticStuff | System.String | false | PublicInterface.cs | | From 922ff7bb100188641bd01c79a91fb8b2902f3de0 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 25 Sep 2023 10:03:18 +0200 Subject: [PATCH 630/788] C#: Remove unnecessary import --- .../ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll index 1e2c58e9893..74677778a7c 100644 --- a/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll +++ b/csharp/ql/src/utils/modeleditor/ApplicationModeEndpointsQuery.qll @@ -2,7 +2,6 @@ private import csharp private import semmle.code.csharp.dataflow.ExternalFlow private import semmle.code.csharp.dataflow.internal.DataFlowDispatch as DataFlowDispatch private import semmle.code.csharp.dataflow.internal.DataFlowPrivate -private import semmle.code.csharp.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate private import semmle.code.csharp.security.dataflow.flowsources.Remote private import ModelEditor From d50185651946959abd4919c33c4d292f88f79773 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 25 Sep 2023 10:05:29 +0200 Subject: [PATCH 631/788] Update DataFlowImpl.qll copies --- .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl1.qll | 4 ++++ .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll | 4 ++++ .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll | 4 ++++ .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll | 4 ++++ .../semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll | 4 ++++ .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll | 4 ++++ .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 4 ++++ .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 4 ++++ .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 4 ++++ .../semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll | 4 ++++ .../semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll | 4 ++++ .../semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll | 4 ++++ .../semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll | 4 ++++ .../semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll | 4 ++++ go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll | 4 ++++ go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll | 4 ++++ .../lib/semmle/code/java/dataflow/internal/DataFlowImpl1.qll | 4 ++++ .../lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll | 4 ++++ .../lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll | 4 ++++ .../lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll | 4 ++++ .../lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll | 4 ++++ .../lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll | 4 ++++ .../lib/semmle/python/dataflow/new/internal/DataFlowImpl1.qll | 4 ++++ .../lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll | 4 ++++ .../lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll | 4 ++++ .../lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll | 4 ++++ ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl1.qll | 4 ++++ ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll | 4 ++++ swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll | 4 ++++ 29 files changed, 116 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl1.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl1.qll index 1975ac9781f..77bc8693684 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl1.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl1.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll index 1975ac9781f..77bc8693684 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll index 1975ac9781f..77bc8693684 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll index 1975ac9781f..77bc8693684 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll index 1975ac9781f..77bc8693684 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll index 1975ac9781f..77bc8693684 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll index 1975ac9781f..77bc8693684 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll index 1975ac9781f..77bc8693684 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll index 1975ac9781f..77bc8693684 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll index 1975ac9781f..77bc8693684 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll index 1975ac9781f..77bc8693684 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll index 1975ac9781f..77bc8693684 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll index 1975ac9781f..77bc8693684 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll index 1975ac9781f..77bc8693684 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll index 1975ac9781f..77bc8693684 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll index 1975ac9781f..77bc8693684 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl1.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl1.qll index 1975ac9781f..77bc8693684 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl1.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl1.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll index 1975ac9781f..77bc8693684 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll index 1975ac9781f..77bc8693684 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll index 1975ac9781f..77bc8693684 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll index 1975ac9781f..77bc8693684 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll index 1975ac9781f..77bc8693684 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl1.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl1.qll index 1975ac9781f..77bc8693684 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl1.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl1.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll index 1975ac9781f..77bc8693684 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll index 1975ac9781f..77bc8693684 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll index 1975ac9781f..77bc8693684 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl1.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl1.qll index 1975ac9781f..77bc8693684 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl1.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl1.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll index 1975ac9781f..77bc8693684 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll index 1975ac9781f..77bc8693684 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll @@ -297,6 +297,10 @@ private module Config implements FullStateConfigSig { predicate isBarrierOut(Node node) { any(Configuration config).isBarrierOut(node) } + predicate isBarrierIn(Node node, FlowState state) { none() } + + predicate isBarrierOut(Node node, FlowState state) { none() } + predicate isAdditionalFlowStep(Node node1, Node node2) { singleConfiguration() and any(Configuration config).isAdditionalFlowStep(node1, node2) From ced95e0f45c9f94d91bfffdb7a56190fa5909bed Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 25 Sep 2023 10:16:59 +0200 Subject: [PATCH 632/788] Java: Split API name column into separate columns --- .../modeleditor/ApplicationModeEndpoints.ql | 8 ++--- .../modeleditor/FrameworkModeEndpoints.ql | 6 ++-- java/ql/src/utils/modeleditor/ModelEditor.qll | 18 +++++++---- .../ApplicationModeEndpoints.expected | 30 +++++++++---------- .../FrameworkModeEndpoints.expected | 28 ++++++++--------- 5 files changed, 47 insertions(+), 43 deletions(-) diff --git a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql index 8b3d034bb3e..653fdc0c824 100644 --- a/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql @@ -14,14 +14,12 @@ private Call aUsage(ExternalEndpoint endpoint) { result.getCallee().getSourceDeclaration() = endpoint } -from - ExternalEndpoint endpoint, string apiName, boolean supported, Call usage, string type, - string classification +from ExternalEndpoint endpoint, boolean supported, Call usage, string type, string classification where - apiName = endpoint.getApiName() and supported = isSupported(endpoint) and usage = aUsage(endpoint) and type = supportedType(endpoint) and classification = usageClassification(usage) -select usage, apiName, supported, endpoint.jarContainer(), endpoint.jarVersion(), type, +select usage, endpoint.getPackageName(), endpoint.getTypeName(), endpoint.getName(), + endpoint.getParameterTypes(), supported, endpoint.jarContainer(), endpoint.jarVersion(), type, classification diff --git a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql index 3350d55e9e6..9dfe57c53a9 100644 --- a/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql +++ b/java/ql/src/utils/modeleditor/FrameworkModeEndpoints.ql @@ -10,10 +10,10 @@ private import java private import FrameworkModeEndpointsQuery private import ModelEditor -from PublicEndpointFromSource endpoint, string apiName, boolean supported, string type +from PublicEndpointFromSource endpoint, boolean supported, string type where - apiName = endpoint.getApiName() and supported = isSupported(endpoint) and type = supportedType(endpoint) -select endpoint, apiName, supported, +select endpoint, endpoint.getPackageName(), endpoint.getTypeName(), endpoint.getName(), + endpoint.getParameterTypes(), supported, endpoint.getCompilationUnit().getParentContainer().getBaseName(), type diff --git a/java/ql/src/utils/modeleditor/ModelEditor.qll b/java/ql/src/utils/modeleditor/ModelEditor.qll index 85ac8b3fc74..2c1a56823f1 100644 --- a/java/ql/src/utils/modeleditor/ModelEditor.qll +++ b/java/ql/src/utils/modeleditor/ModelEditor.qll @@ -20,13 +20,19 @@ class Endpoint extends Callable { Endpoint() { not isUninteresting(this) } /** - * Gets information about the external API in the form expected by the MaD modeling framework. + * Gets the package name of this endpoint. */ - string getApiName() { - result = - this.getDeclaringType().getPackage() + "." + this.getDeclaringType().nestedName() + "#" + - this.getName() + paramsString(this) - } + string getPackageName() { result = this.getDeclaringType().getPackage().getName() } + + /** + * Gets the type name of this endpoint. + */ + string getTypeName() { result = this.getDeclaringType().nestedName() } + + /** + * Gets the parameter types of this endpoint. + */ + string getParameterTypes() { result = paramsString(this) } private string getJarName() { result = this.getCompilationUnit().getParentContainer*().(JarFile).getBaseName() diff --git a/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected index f6d6cb58608..919fc09b261 100644 --- a/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected +++ b/java/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected @@ -1,15 +1,15 @@ -| com/github/codeql/test/NonPublicClass.java:5:5:5:28 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicClass.java:8:5:8:27 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicClass.java:12:5:12:27 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicClass.java:16:5:16:45 | println(...) | java.io.PrintStream#println(Object) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicClass.java:16:24:16:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicClass.java:16:24:16:44 | get(...) | java.nio.file.Paths#get(String,String[]) | true | rt.jar | | summary | source | -| com/github/codeql/test/PublicClass.java:20:5:20:68 | println(...) | java.io.PrintStream#println(Object) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicClass.java:20:24:20:47 | getDefault(...) | java.nio.file.FileSystems#getDefault() | false | rt.jar | | | source | -| com/github/codeql/test/PublicClass.java:20:24:20:67 | getPath(...) | java.nio.file.FileSystem#getPath(String,String[]) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicClass.java:20:24:20:67 | getPath(...) | java.nio.file.FileSystem#getPath(String,String[]) | true | rt.jar | | summary | source | -| com/github/codeql/test/PublicClass.java:24:5:24:27 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicGenericClass.java:7:5:7:27 | println(...) | java.io.PrintStream#println(Object) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicGenericClass.java:11:5:11:27 | println(...) | java.io.PrintStream#println(Object) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicGenericInterface.java:8:7:8:29 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | -| com/github/codeql/test/PublicInterface.java:7:7:7:29 | println(...) | java.io.PrintStream#println(String) | true | rt.jar | | sink | source | +| com/github/codeql/test/NonPublicClass.java:5:5:5:28 | println(...) | java.io | PrintStream | println | (String) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:8:5:8:27 | println(...) | java.io | PrintStream | println | (String) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:12:5:12:27 | println(...) | java.io | PrintStream | println | (String) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:16:5:16:45 | println(...) | java.io | PrintStream | println | (Object) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:16:24:16:44 | get(...) | java.nio.file | Paths | get | (String,String[]) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:16:24:16:44 | get(...) | java.nio.file | Paths | get | (String,String[]) | true | rt.jar | | summary | source | +| com/github/codeql/test/PublicClass.java:20:5:20:68 | println(...) | java.io | PrintStream | println | (Object) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:20:24:20:47 | getDefault(...) | java.nio.file | FileSystems | getDefault | () | false | rt.jar | | | source | +| com/github/codeql/test/PublicClass.java:20:24:20:67 | getPath(...) | java.nio.file | FileSystem | getPath | (String,String[]) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicClass.java:20:24:20:67 | getPath(...) | java.nio.file | FileSystem | getPath | (String,String[]) | true | rt.jar | | summary | source | +| com/github/codeql/test/PublicClass.java:24:5:24:27 | println(...) | java.io | PrintStream | println | (String) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicGenericClass.java:7:5:7:27 | println(...) | java.io | PrintStream | println | (Object) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicGenericClass.java:11:5:11:27 | println(...) | java.io | PrintStream | println | (Object) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicGenericInterface.java:8:7:8:29 | println(...) | java.io | PrintStream | println | (String) | true | rt.jar | | sink | source | +| com/github/codeql/test/PublicInterface.java:7:7:7:29 | println(...) | java.io | PrintStream | println | (String) | true | rt.jar | | sink | source | diff --git a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected index ed2522fb977..444165791ca 100644 --- a/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected +++ b/java/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected @@ -1,14 +1,14 @@ -| com/github/codeql/test/PublicClass.java:7:15:7:19 | stuff | com.github.codeql.test.PublicClass#stuff(String) | false | test | | -| com/github/codeql/test/PublicClass.java:11:22:11:32 | staticStuff | com.github.codeql.test.PublicClass#staticStuff(String) | false | test | | -| com/github/codeql/test/PublicClass.java:15:18:15:31 | protectedStuff | com.github.codeql.test.PublicClass#protectedStuff(String) | false | test | | -| com/github/codeql/test/PublicClass.java:27:17:27:28 | summaryStuff | com.github.codeql.test.PublicClass#summaryStuff(String) | true | test | summary | -| com/github/codeql/test/PublicClass.java:31:17:31:27 | sourceStuff | com.github.codeql.test.PublicClass#sourceStuff() | true | test | source | -| com/github/codeql/test/PublicClass.java:35:15:35:23 | sinkStuff | com.github.codeql.test.PublicClass#sinkStuff(String) | true | test | sink | -| com/github/codeql/test/PublicClass.java:39:15:39:26 | neutralStuff | com.github.codeql.test.PublicClass#neutralStuff(String) | true | test | neutral | -| com/github/codeql/test/PublicGenericClass.java:6:15:6:19 | stuff | com.github.codeql.test.PublicGenericClass#stuff(Object) | false | test | | -| com/github/codeql/test/PublicGenericClass.java:10:20:10:25 | stuff2 | com.github.codeql.test.PublicGenericClass#stuff2(Object) | false | test | | -| com/github/codeql/test/PublicGenericInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicGenericInterface#stuff(Object) | false | test | | -| com/github/codeql/test/PublicGenericInterface.java:5:22:5:27 | stuff2 | com.github.codeql.test.PublicGenericInterface#stuff2(Object) | false | test | | -| com/github/codeql/test/PublicGenericInterface.java:7:24:7:34 | staticStuff | com.github.codeql.test.PublicGenericInterface#staticStuff(String) | false | test | | -| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | com.github.codeql.test.PublicInterface#stuff(String) | false | test | | -| com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | com.github.codeql.test.PublicInterface#staticStuff(String) | false | test | | +| com/github/codeql/test/PublicClass.java:7:15:7:19 | stuff | com.github.codeql.test | PublicClass | stuff | (String) | false | test | | +| com/github/codeql/test/PublicClass.java:11:22:11:32 | staticStuff | com.github.codeql.test | PublicClass | staticStuff | (String) | false | test | | +| com/github/codeql/test/PublicClass.java:15:18:15:31 | protectedStuff | com.github.codeql.test | PublicClass | protectedStuff | (String) | false | test | | +| com/github/codeql/test/PublicClass.java:27:17:27:28 | summaryStuff | com.github.codeql.test | PublicClass | summaryStuff | (String) | true | test | summary | +| com/github/codeql/test/PublicClass.java:31:17:31:27 | sourceStuff | com.github.codeql.test | PublicClass | sourceStuff | () | true | test | source | +| com/github/codeql/test/PublicClass.java:35:15:35:23 | sinkStuff | com.github.codeql.test | PublicClass | sinkStuff | (String) | true | test | sink | +| com/github/codeql/test/PublicClass.java:39:15:39:26 | neutralStuff | com.github.codeql.test | PublicClass | neutralStuff | (String) | true | test | neutral | +| com/github/codeql/test/PublicGenericClass.java:6:15:6:19 | stuff | com.github.codeql.test | PublicGenericClass | stuff | (Object) | false | test | | +| com/github/codeql/test/PublicGenericClass.java:10:20:10:25 | stuff2 | com.github.codeql.test | PublicGenericClass | stuff2 | (Object) | false | test | | +| com/github/codeql/test/PublicGenericInterface.java:4:17:4:21 | stuff | com.github.codeql.test | PublicGenericInterface | stuff | (Object) | false | test | | +| com/github/codeql/test/PublicGenericInterface.java:5:22:5:27 | stuff2 | com.github.codeql.test | PublicGenericInterface | stuff2 | (Object) | false | test | | +| com/github/codeql/test/PublicGenericInterface.java:7:24:7:34 | staticStuff | com.github.codeql.test | PublicGenericInterface | staticStuff | (String) | false | test | | +| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | com.github.codeql.test | PublicInterface | stuff | (String) | false | test | | +| com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | com.github.codeql.test | PublicInterface | staticStuff | (String) | false | test | | From df5fcc92e7953b90fbd2c51e6de4ee74df92b81e Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 25 Sep 2023 10:13:56 +0100 Subject: [PATCH 633/788] Apply suggestions from docs review Co-authored-by: Sam Browning <106113886+sabrowning1@users.noreply.github.com> --- .../InsecureDirectObjectReference.qhelp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp index 5e8b522ac4c..ff69ea97d9e 100644 --- a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp @@ -3,9 +3,7 @@ "qhelp.dtd"> -

    When an action method accepts an ID parameter used to control which resource (e.g. a comment, a user profile, etc) -is being accessed/modified, checks should me made to ensure that the current user is authorized to access that resource. -Otherwise, an attacker could access an arbitrary resource by guessing the ID parameter.

    +

    Resources like comments or user profiles can be accessed and modified through an action method. To find a specific resource, the action method accepts an ID parameter that determines which resource to access. If the methods do not check that the current user is authorized to access the specified resource, an attacker can access a resource by guessing the ID parameter.

    @@ -15,20 +13,18 @@ Ensure that the current user is authorized to access the resource of the provide -

    In the following example, in the case marked BAD, there is no authorization check, so any user is able to edit any comment. -In the case marked GOOD, there is a check that the current usr matches the author of the comment.

    +

    In the following example, in the "BAD" case, there is no authorization check, so any user can edit any comment for which they guess the ID parameter. +The "GOOD" case includes a check that the current user matches the author of the comment, preventing unauthorized access.

    -

    The following example shows a similar case for the ASP.NET Core framework. In the third case, the `Authorize` attribute is used -to restrict the method to only administrators, which are expected to be able to access arbitrary resources. -

    +

    The following example shows a similar scenario for the ASP.NET Core framework. As above, the "BAD" case provides an example with no authorization check, and the first "GOOD" case provides an example with a check that the current user authored the specified comment. Additionally, in the second "GOOD" case, the `Authorize` attribute is used to restrict the method to administrators, who are expected to be able to access arbitrary resources.

    -
  • OWASP - Insecure Direct Object Refrences.
  • -
  • OWASP - Testing for Insecure Direct Object References.
  • -
  • Microsoft Learn - Resource-based authorization in ASP.NET Core.
  • +
  • OWASP: Insecure Direct Object Refrences.
  • +
  • OWASP: Testing for Insecure Direct Object References.
  • +
  • Microsoft Learn: Resource-based authorization in ASP.NET Core.
  • \ No newline at end of file From ed83f59c23dc6ea9942093d118da2b66a55da1a1 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Mon, 25 Sep 2023 11:34:16 +0200 Subject: [PATCH 634/788] C#: Remove legacy runtime packages from extraction references --- .../DependencyManager.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 7262816696d..abef26cbd67 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -164,6 +164,11 @@ namespace Semmle.Extraction.CSharp.DependencyFetching Path.Combine(packageFolder, "microsoft.netcore.app.runtime"), Path.Combine(packageFolder, "microsoft.aspnetcore.app.runtime"), Path.Combine(packageFolder, "microsoft.windowsdesktop.app.runtime"), + + // legacy runtime packages: + Path.Combine(packageFolder, "runtime.linux-x64.microsoft.netcore.app"), + Path.Combine(packageFolder, "runtime.osx-x64.microsoft.netcore.app"), + Path.Combine(packageFolder, "runtime.win-x64.microsoft.netcore.app"), }; foreach (var filename in usedReferences.Keys) From 417907b36d0edc84984f29f17ab079eee236b196 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Mon, 25 Sep 2023 11:44:56 +0200 Subject: [PATCH 635/788] Python: switch to inline expectations --- .../regexparser/Locations.expected | 22 +--------- .../library-tests/regexparser/Locations.ql | 30 ++++++++++--- .../library-tests/regexparser/locations.py | 44 +++++++++---------- 3 files changed, 49 insertions(+), 47 deletions(-) diff --git a/python/ql/test/library-tests/regexparser/Locations.expected b/python/ql/test/library-tests/regexparser/Locations.expected index 3b07d5d758c..8ec8033d086 100644 --- a/python/ql/test/library-tests/regexparser/Locations.expected +++ b/python/ql/test/library-tests/regexparser/Locations.expected @@ -1,20 +1,2 @@ -| locations.py | 14 | 2 | -| locations.py | 19 | 3 | -| locations.py | 24 | 3 | -| locations.py | 29 | 4 | -| locations.py | 34 | 4 | -| locations.py | 39 | 5 | -| locations.py | 44 | 5 | -| locations.py | 49 | 6 | -| locations.py | 54 | 2 | -| locations.py | 54 | 23 | -| locations.py | 59 | 2 | -| locations.py | 59 | 23 | -| locations.py | 65 | 2 | -| locations.py | 65 | 23 | -| locations.py | 72 | 6 | -| locations.py | 72 | 27 | -| locations.py | 80 | 3 | -| locations.py | 85 | 5 | -| locations.py | 90 | 2 | -| locations.py | 90 | 23 | +testFailures +failures diff --git a/python/ql/test/library-tests/regexparser/Locations.ql b/python/ql/test/library-tests/regexparser/Locations.ql index 79956e487e9..bef14918dc6 100644 --- a/python/ql/test/library-tests/regexparser/Locations.ql +++ b/python/ql/test/library-tests/regexparser/Locations.ql @@ -1,7 +1,27 @@ +import python import semmle.python.regexp.RegexTreeView::RegexTreeView +import TestUtilities.InlineExpectationsTest +private import semmle.python.dataflow.new.internal.PrintNode -from RegExpTerm t, string file, int line, int column -where - t.toString() = "[this]" and - t.hasLocationInfo(file, line, column, _, _) -select file, line, column +module RegexLocationTest implements TestSig { + string getARelevantTag() { result = "location" } + + predicate hasActualResult(Location location, string element, string tag, string value) { + exists(location.getFile().getRelativePath()) and + exists(Call compile, RegExpTerm t, int line, int column | + // All the tested regexes are inside a call to `compile` + compile.getAnArg() = t.getRegex() and + t.toString() = "[this]" and + t.hasLocationInfo(_, line, column, _, _) + | + // put the annotation on the start line of the call to `compile` + location = compile.getFunc().getLocation() and + element = t.toString() and + // show the (relative) line and column for the fragment + value = (line - location.getStartLine()).toString() + ":" + column.toString() and + tag = "location" + ) + } +} + +import MakeTest diff --git a/python/ql/test/library-tests/regexparser/locations.py b/python/ql/test/library-tests/regexparser/locations.py index bbfb6b2840f..a7a9b38d130 100644 --- a/python/ql/test/library-tests/regexparser/locations.py +++ b/python/ql/test/library-tests/regexparser/locations.py @@ -7,86 +7,86 @@ import re # # To make the location information easier to understand, we generally put each # regexp on its own line, even though this is not idiomatic Python. -# Comments indicate cases we currently do not handle correctly. +# Comments indicate the found locations relative to the call to `compile`. # plain string -re.compile( +re.compile( # $location=1:2 '[this] is a test' ) # raw string -re.compile( +re.compile( # $ location=1:3 r'[this] is a test' ) # byte string -re.compile( +re.compile( # $ location=1:3 b'[this] is a test' ) # byte raw string -re.compile( +re.compile( # $ location=1:4 br'[this] is a test' ) # multiline string -re.compile( +re.compile( # $ location=1:4 '''[this] is a test''' ) # multiline raw string -re.compile( +re.compile( # $ location=1:5 r'''[this] is a test''' ) # multiline byte string -re.compile( +re.compile( # $ location=1:5 b'''[this] is a test''' ) # multiline byte raw string -re.compile( +re.compile( # $ location=1:6 br'''[this] is a test''' ) -# plain string with multiple parts (second [this] gets wrong column: 23 instead of 26) -re.compile( +# plain string with multiple parts +re.compile( # $ location=1:2 SPURIOUS:location=1:23 MISSING:location=1:26 '[this] is a test' ' and [this] is another test' ) -# plain string with multiple parts across lines (second [this] gets wrong location: 59:23 instead of 60:7) -re.compile( +# plain string with multiple parts across lines +re.compile( # $ location=1:2 SPURIOUS:location=1:23 MISSING:location=2:7 '[this] is a test' ' and [this] is another test' ) -# plain string with multiple parts across lines and comments (second [this] gets wrong location: 65:23 instead of 67:7) -re.compile( +# plain string with multiple parts across lines and comments +re.compile( # $ location=1:2 SPURIOUS:location=1:23 MISSING:location=3:7 '[this] is a test' # comment ' and [this] is another test' ) -# actual multiline string (both [this]s get wrong location: 72:6 and 72:27 instead of 73:1 and 74:5) -re.compile( +# actual multiline string +re.compile( # $ SPURIOUS:location=1:6 location=1:27 MISSING:location=2:1 location=3:5 r''' [this] is a test and [this] is another test ''' ) -# plain string with escape sequences ([this] gets wrong location: 80:3 instead of 80:4) -re.compile( +# plain string with escape sequences +re.compile( # $ SPURIOUS:location=1:3 MISSING:location=1:4 '\t[this] is a test' ) # raw string with escape sequences -re.compile( +re.compile( # $ location=1:5 r'\A[this] is a test' ) -# plain string with escaped newline (second [this] gets wrong location: 90:23 instead of 91:6) -re.compile( +# plain string with escaped newline +re.compile( # $ location=1:2 SPURIOUS:location=1:23 MISSING:location=2:6 '[this] is a test\ and [this] is another test' ) \ No newline at end of file From 4bfd6771b4a8d4ef2c6a7e52cad869b24171d0cb Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 25 Sep 2023 13:27:50 +0200 Subject: [PATCH 636/788] C#: Make `GenerateStubs` return list of generated output --- .../StubGenerator.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs index 8e2fe36a31d..f12b8c200ed 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs @@ -20,13 +20,14 @@ public static class StubGenerator /// /// The paths of the assemblies to generate stubs for. /// The path in which to store the stubs. - public static void GenerateStubs(ILogger logger, IEnumerable referencesPaths, string outputPath) + public static string[] GenerateStubs(ILogger logger, IEnumerable referencesPaths, string outputPath) { var stopWatch = new System.Diagnostics.Stopwatch(); stopWatch.Start(); var threads = EnvironmentVariables.GetDefaultNumberOfThreads(); + using var stubPaths = new BlockingCollection(); using var references = new BlockingCollection<(MetadataReference Reference, string Path)>(); Parallel.ForEach(referencesPaths, new ParallelOptions { MaxDegreeOfParallelism = threads }, path => @@ -45,14 +46,16 @@ public static class StubGenerator Parallel.ForEach(references, new ParallelOptions { MaxDegreeOfParallelism = threads }, @ref => { - StubReference(logger, compilation, outputPath, @ref.Reference, @ref.Path); + StubReference(logger, compilation, outputPath, @ref.Reference, @ref.Path, stubPaths); }); stopWatch.Stop(); logger.Log(Severity.Info, $"Stub generation took {stopWatch.Elapsed}."); + + return stubPaths.ToArray(); } - private static void StubReference(ILogger logger, CSharpCompilation compilation, string outputPath, MetadataReference reference, string path) + private static void StubReference(ILogger logger, CSharpCompilation compilation, string outputPath, MetadataReference reference, string path, BlockingCollection stubPaths) { if (compilation.GetAssemblyOrModuleSymbol(reference) is not IAssemblySymbol assembly) return; @@ -62,7 +65,9 @@ public static class StubGenerator if (!assembly.Modules.Any(m => relevantSymbol.IsRelevantNamespace(m.GlobalNamespace))) return; - using var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write); + var stubPath = FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")); + stubPaths.Add(stubPath); + using var fileStream = new FileStream(stubPath, FileMode.Create, FileAccess.Write); using var writer = new StreamWriter(fileStream, new UTF8Encoding(false)); var visitor = new StubVisitor(writer, relevantSymbol); From ae06040a4869cc02abaf294d94c97cb3bb6108c4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 25 Sep 2023 14:21:35 +0200 Subject: [PATCH 637/788] Address review comments --- .../dataflow/internal/DataFlowPrivate.qll | 30 +-- .../typeflow-dispatch/TypeFlowDispatch.cs | 5 - .../TypeFlowDispatch.expected | 244 +++++++++--------- shared/dataflow/codeql/dataflow/DataFlow.qll | 1 - 4 files changed, 134 insertions(+), 146 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index 6901561c44f..7cd64e16f11 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -2102,24 +2102,6 @@ private predicate uselessTypebound(DataFlowType dt) { ) } -pragma[nomagic] -private predicate typeStrongerThanNonDelegate(DataFlowType t1, DataFlowType t2) { - t1 != t2 and - t1.asGvnType() = getANonTypeParameterSubTypeRestricted(t2.asGvnType()) - or - t1.asGvnType() instanceof RelevantGvnType and - not uselessTypebound(t1) and - uselessTypebound(t2) -} - -bindingset[t1, t2] -predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { - typeStrongerThanNonDelegate(t1, t2) - or - exists(t1.asDelegate()) and - t1 != t2 -} - pragma[inline] private predicate compatibleTypesDelegateLeft(DataFlowType dt1, DataFlowType dt2) { exists(Gvn::GvnType t1, Gvn::GvnType t2 | @@ -2176,6 +2158,18 @@ predicate compatibleTypes(DataFlowType dt1, DataFlowType dt2) { dt1.asDelegate() = dt2.asDelegate() } +pragma[nomagic] +predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { + t1 != t2 and + t1.asGvnType() = getANonTypeParameterSubTypeRestricted(t2.asGvnType()) + or + t1.asGvnType() instanceof RelevantGvnType and + not uselessTypebound(t1) and + uselessTypebound(t2) + or + compatibleTypesDelegateLeft(t1, t2) +} + /** * A node associated with an object after an operation that might have * changed its state. diff --git a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.cs b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.cs index c69bebf1326..869c328652a 100644 --- a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.cs +++ b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.cs @@ -8,11 +8,6 @@ public class A public static void Sink(T t) { } - interface MyConsumer - { - void run(Object o); - } - static void Apply1(Action f, T x) { f(x); diff --git a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected index 8570dcbc972..51286b90578 100644 --- a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected +++ b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected @@ -1,127 +1,127 @@ testFailures edges -| TypeFlowDispatch.cs:16:42:16:42 | x : String | TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | -| TypeFlowDispatch.cs:16:42:16:42 | x : String | TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | -| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | TypeFlowDispatch.cs:28:20:28:20 | x : String | -| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | TypeFlowDispatch.cs:28:20:28:20 | x : String | -| TypeFlowDispatch.cs:21:46:21:46 | x : String | TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | -| TypeFlowDispatch.cs:21:46:21:46 | x : String | TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | -| TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | TypeFlowDispatch.cs:16:42:16:42 | x : String | -| TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | TypeFlowDispatch.cs:16:42:16:42 | x : String | -| TypeFlowDispatch.cs:28:20:28:20 | x : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | -| TypeFlowDispatch.cs:28:20:28:20 | x : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | -| TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:21:46:21:46 | x : String | -| TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:21:46:21:46 | x : String | -| TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:44:34:44:34 | x : String | -| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:44:34:44:34 | x : String | -| TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | -| TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | -| TypeFlowDispatch.cs:44:34:44:34 | x : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | -| TypeFlowDispatch.cs:44:34:44:34 | x : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | -| TypeFlowDispatch.cs:47:42:47:42 | x : String | TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | -| TypeFlowDispatch.cs:47:42:47:42 | x : String | TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | -| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | -| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | -| TypeFlowDispatch.cs:52:46:52:46 | x : String | TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | -| TypeFlowDispatch.cs:52:46:52:46 | x : String | TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | -| TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | TypeFlowDispatch.cs:47:42:47:42 | x : String | -| TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | TypeFlowDispatch.cs:47:42:47:42 | x : String | -| TypeFlowDispatch.cs:57:32:57:32 | t : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | -| TypeFlowDispatch.cs:57:32:57:32 | t : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | -| TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:52:46:52:46 | x : String | -| TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:52:46:52:46 | x : String | -| TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | -| TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | -| TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | -| TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | -| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | -| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | TypeFlowDispatch.cs:57:32:57:32 | t : String | -| TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | -| TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | -| TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | -| TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | +| TypeFlowDispatch.cs:11:42:11:42 | x : String | TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | +| TypeFlowDispatch.cs:11:42:11:42 | x : String | TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | +| TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | TypeFlowDispatch.cs:23:20:23:20 | x : String | +| TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | TypeFlowDispatch.cs:23:20:23:20 | x : String | +| TypeFlowDispatch.cs:16:46:16:46 | x : String | TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | +| TypeFlowDispatch.cs:16:46:16:46 | x : String | TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | +| TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | TypeFlowDispatch.cs:11:42:11:42 | x : String | +| TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | TypeFlowDispatch.cs:11:42:11:42 | x : String | +| TypeFlowDispatch.cs:23:20:23:20 | x : String | TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | +| TypeFlowDispatch.cs:23:20:23:20 | x : String | TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | +| TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | TypeFlowDispatch.cs:16:46:16:46 | x : String | +| TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | TypeFlowDispatch.cs:16:46:16:46 | x : String | +| TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:39:34:39:34 | x : String | +| TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:39:34:39:34 | x : String | +| TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | +| TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | +| TypeFlowDispatch.cs:39:34:39:34 | x : String | TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | +| TypeFlowDispatch.cs:39:34:39:34 | x : String | TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | +| TypeFlowDispatch.cs:42:42:42:42 | x : String | TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | +| TypeFlowDispatch.cs:42:42:42:42 | x : String | TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | +| TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | +| TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | +| TypeFlowDispatch.cs:47:46:47:46 | x : String | TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | +| TypeFlowDispatch.cs:47:46:47:46 | x : String | TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | +| TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | TypeFlowDispatch.cs:42:42:42:42 | x : String | +| TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | TypeFlowDispatch.cs:42:42:42:42 | x : String | +| TypeFlowDispatch.cs:52:32:52:32 | t : String | TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | +| TypeFlowDispatch.cs:52:32:52:32 | t : String | TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | +| TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | TypeFlowDispatch.cs:47:46:47:46 | x : String | +| TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | TypeFlowDispatch.cs:47:46:47:46 | x : String | +| TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | +| TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | +| TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | +| TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | +| TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | +| TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | +| TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | +| TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | +| TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | +| TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | nodes -| TypeFlowDispatch.cs:16:42:16:42 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:16:42:16:42 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | semmle.label | access to parameter x : String | -| TypeFlowDispatch.cs:18:11:18:11 | access to parameter x : String | semmle.label | access to parameter x : String | -| TypeFlowDispatch.cs:21:46:21:46 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:21:46:21:46 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | semmle.label | access to parameter x : String | -| TypeFlowDispatch.cs:23:19:23:19 | access to parameter x : String | semmle.label | access to parameter x : String | -| TypeFlowDispatch.cs:28:20:28:20 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:28:20:28:20 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | semmle.label | access to parameter x | -| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | semmle.label | access to parameter x | -| TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | semmle.label | l : List [element] : String | -| TypeFlowDispatch.cs:34:37:34:37 | l : List [element] : String | semmle.label | l : List [element] : String | -| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:36:9:36:9 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:41:23:41:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:44:25:44:31 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:44:34:44:34 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:44:34:44:34 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | semmle.label | access to parameter x | -| TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | semmle.label | access to parameter x | -| TypeFlowDispatch.cs:47:42:47:42 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:47:42:47:42 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | semmle.label | access to parameter x : String | -| TypeFlowDispatch.cs:49:11:49:11 | access to parameter x : String | semmle.label | access to parameter x : String | -| TypeFlowDispatch.cs:52:46:52:46 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:52:46:52:46 | x : String | semmle.label | x : String | -| TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | semmle.label | access to parameter x : String | -| TypeFlowDispatch.cs:54:19:54:19 | access to parameter x : String | semmle.label | access to parameter x : String | -| TypeFlowDispatch.cs:57:32:57:32 | t : String | semmle.label | t : String | -| TypeFlowDispatch.cs:57:32:57:32 | t : String | semmle.label | t : String | -| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | semmle.label | access to parameter t | -| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | semmle.label | access to parameter t | -| TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | semmle.label | l : List [element] : String | -| TypeFlowDispatch.cs:66:29:66:29 | l : List [element] : String | semmle.label | l : List [element] : String | -| TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | semmle.label | SSA def(x) : String | -| TypeFlowDispatch.cs:68:22:68:22 | SSA def(x) : String | semmle.label | SSA def(x) : String | -| TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:68:27:68:27 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | semmle.label | access to local variable x : String | -| TypeFlowDispatch.cs:69:15:69:15 | access to local variable x : String | semmle.label | access to local variable x : String | -| TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | semmle.label | l : List [element] : String | -| TypeFlowDispatch.cs:72:33:72:33 | l : List [element] : String | semmle.label | l : List [element] : String | -| TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:74:17:74:17 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:79:23:79:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | semmle.label | call to method Source : String | -| TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:82:21:82:27 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:11:42:11:42 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:11:42:11:42 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:16:46:16:46 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:16:46:16:46 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:23:20:23:20 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:23:20:23:20 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:39:34:39:34 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:39:34:39:34 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | semmle.label | access to parameter x | +| TypeFlowDispatch.cs:42:42:42:42 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:42:42:42:42 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:47:46:47:46 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:47:46:47:46 | x : String | semmle.label | x : String | +| TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | semmle.label | access to parameter x : String | +| TypeFlowDispatch.cs:52:32:52:32 | t : String | semmle.label | t : String | +| TypeFlowDispatch.cs:52:32:52:32 | t : String | semmle.label | t : String | +| TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | semmle.label | access to parameter t | +| TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | semmle.label | access to parameter t | +| TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | semmle.label | SSA def(x) : String | +| TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | semmle.label | SSA def(x) : String | +| TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | semmle.label | access to local variable x : String | +| TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | semmle.label | access to local variable x : String | +| TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | semmle.label | l : List [element] : String | +| TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | semmle.label | access to parameter l : List [element] : String | +| TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | semmle.label | object creation of type List : List [element] : String | +| TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | semmle.label | call to method Source : String | +| TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | +| TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | semmle.label | access to local variable tainted : List [element] : String | subpaths #select -| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | $@ | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | TypeFlowDispatch.cs:28:32:28:32 | access to parameter x | $@ | TypeFlowDispatch.cs:28:39:28:49 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | $@ | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | TypeFlowDispatch.cs:44:46:44:46 | access to parameter x | $@ | TypeFlowDispatch.cs:41:42:41:52 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:62:38:62:48 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | call to method Source : String | -| TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | TypeFlowDispatch.cs:57:43:57:43 | access to parameter t | $@ | TypeFlowDispatch.cs:79:42:79:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | $@ | TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | $@ | TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | $@ | TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | $@ | TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | $@ | TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | $@ | TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | $@ | TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | call to method Source : String | +| TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | $@ | TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | call to method Source : String | diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index f1f8a72e3f6..67948db0ee8 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -101,7 +101,6 @@ signature module InputSig { bindingset[t1, t2] predicate compatibleTypes(DataFlowType t1, DataFlowType t2); - bindingset[t1, t2] predicate typeStrongerThan(DataFlowType t1, DataFlowType t2); class Content { From e997a7c92381c906b3c34174f74641d90b9f2367 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 25 Sep 2023 14:59:18 +0200 Subject: [PATCH 638/788] C#: Address review comment. --- csharp/ql/src/Telemetry/ExternalApi.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/csharp/ql/src/Telemetry/ExternalApi.qll b/csharp/ql/src/Telemetry/ExternalApi.qll index 088bf1106fa..82ad3febc1a 100644 --- a/csharp/ql/src/Telemetry/ExternalApi.qll +++ b/csharp/ql/src/Telemetry/ExternalApi.qll @@ -5,7 +5,6 @@ private import dotnet private import semmle.code.csharp.dispatch.Dispatch private import semmle.code.csharp.dataflow.ExternalFlow private import semmle.code.csharp.dataflow.FlowSummary -private import semmle.code.csharp.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon private import semmle.code.csharp.dataflow.internal.DataFlowPrivate private import semmle.code.csharp.dataflow.internal.DataFlowDispatch as DataFlowDispatch private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl From 3efbbb3645509977bace91bb0f8f90b92b65266f Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 25 Sep 2023 15:44:40 +0100 Subject: [PATCH 639/788] Elaborate 'guess' to 'guess or determine' --- .../CWE-639/InsecureDirectObjectReference.qhelp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp index ff69ea97d9e..aa0af4a69f5 100644 --- a/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp +++ b/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.qhelp @@ -3,7 +3,7 @@ "qhelp.dtd"> -

    Resources like comments or user profiles can be accessed and modified through an action method. To find a specific resource, the action method accepts an ID parameter that determines which resource to access. If the methods do not check that the current user is authorized to access the specified resource, an attacker can access a resource by guessing the ID parameter.

    +

    Resources like comments or user profiles can be accessed and modified through an action method. To target a certain resource, the action method accepts an ID parameter pointing to that specific resource. If the methods do not check that the current user is authorized to access the specified resource, an attacker can access a resource by guessing or otherwise determining the linked ID parameter.

    @@ -13,7 +13,7 @@ Ensure that the current user is authorized to access the resource of the provide -

    In the following example, in the "BAD" case, there is no authorization check, so any user can edit any comment for which they guess the ID parameter. +

    In the following example, in the "BAD" case, there is no authorization check, so any user can edit any comment for which they guess or determine the ID parameter. The "GOOD" case includes a check that the current user matches the author of the comment, preventing unauthorized access.

    The following example shows a similar scenario for the ASP.NET Core framework. As above, the "BAD" case provides an example with no authorization check, and the first "GOOD" case provides an example with a check that the current user authored the specified comment. Additionally, in the second "GOOD" case, the `Authorize` attribute is used to restrict the method to administrators, who are expected to be able to access arbitrary resources.

    From d7c1be40d9508ddac3e214c34a09986d1becf921 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 25 Sep 2023 15:47:05 +0100 Subject: [PATCH 640/788] Fix codescanning alert by tweaking imported modules --- .../security/auth/InsecureDirectObjectReferenceQuery.qll | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll index d96c29ecb19..6325c4ff3b3 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/InsecureDirectObjectReferenceQuery.qll @@ -2,8 +2,6 @@ import csharp import semmle.code.csharp.dataflow.flowsources.Remote -import DataFlow as DF -import TaintTracking as TT import ActionMethods /** @@ -25,8 +23,8 @@ private predicate hasIdParameter(ActionMethod m) { // handle cases like `Request.QueryString["Id"]` exists(StringLiteral idStr, IndexerCall idx | idStr.getValue().toLowerCase().matches(["%id", "%idx"]) and - TT::localTaint(src, DataFlow::exprNode(idx.getQualifier())) and - DF::localExprFlow(idStr, idx.getArgument(0)) + TaintTracking::localTaint(src, DataFlow::exprNode(idx.getQualifier())) and + DataFlow::localExprFlow(idStr, idx.getArgument(0)) ) ) } From 4262fd5a489f117be5285a1dfbae223f32408e67 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 25 Sep 2023 13:39:21 +0200 Subject: [PATCH 641/788] C#: Add stub generator integration test --- .github/workflows/csharp-qltest.yml | 31 +++++++++++++------ .../actions/create-extractor-pack/action.yml | 11 +++++++ csharp/ql/src/Stubs/make_stubs_nuget.py | 4 +-- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/.github/workflows/csharp-qltest.yml b/.github/workflows/csharp-qltest.yml index b7a498699a2..903a2690a8b 100644 --- a/.github/workflows/csharp-qltest.yml +++ b/.github/workflows/csharp-qltest.yml @@ -53,7 +53,6 @@ jobs: slice: ["1/2", "2/2"] steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/fetch-codeql - uses: ./csharp/actions/create-extractor-pack - name: Cache compilation cache id: query-cache @@ -62,12 +61,7 @@ jobs: key: csharp-qltest-${{ matrix.slice }} - name: Run QL tests run: | - CODEQL_PATH=$(gh codeql version --format=json | jq -r .unpackedLocation) - # The legacy ASP extractor is not in this repo, so take the one from the nightly build - mv "$CODEQL_PATH/csharp/tools/extractor-asp.jar" "${{ github.workspace }}/csharp/extractor-pack/tools" - # Safe guard against using the bundled extractor - rm -rf "$CODEQL_PATH/csharp" - codeql test run --threads=0 --ram 50000 --slice ${{ matrix.slice }} --search-path "${{ github.workspace }}/csharp/extractor-pack" --check-databases --check-undefined-labels --check-repeated-labels --check-redefined-labels --consistency-queries ql/consistency-queries ql/test --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" + codeql test run --threads=0 --ram 50000 --slice ${{ matrix.slice }} --search-path extractor-pack --check-databases --check-undefined-labels --check-repeated-labels --check-redefined-labels --consistency-queries ql/consistency-queries ql/test --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" env: GITHUB_TOKEN: ${{ github.token }} unit-tests: @@ -80,7 +74,24 @@ jobs: dotnet-version: 7.0.102 - name: Extractor unit tests run: | - dotnet test -p:RuntimeFrameworkVersion=7.0.2 "${{ github.workspace }}/csharp/extractor/Semmle.Util.Tests" - dotnet test -p:RuntimeFrameworkVersion=7.0.2 "${{ github.workspace }}/csharp/extractor/Semmle.Extraction.Tests" - dotnet test -p:RuntimeFrameworkVersion=7.0.2 "${{ github.workspace }}/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests" + dotnet test -p:RuntimeFrameworkVersion=7.0.2 extractor/Semmle.Util.Tests + dotnet test -p:RuntimeFrameworkVersion=7.0.2 extractor/Semmle.Extraction.Tests + dotnet test -p:RuntimeFrameworkVersion=7.0.2 autobuilder/Semmle.Autobuild.CSharp.Tests dotnet test -p:RuntimeFrameworkVersion=7.0.2 "${{ github.workspace }}/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests" + stubgentest: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./csharp/actions/create-extractor-pack + - name: Run stub generator tests + run: | + # Generate (Asp)NetCore stubs + STUBS_PATH=stubs_output + python3 ql/src/Stubs/make_stubs_nuget.py webapp Swashbuckle.AspNetCore.Swagger latest "$STUBS_PATH" + rm -rf ql/test/resources/stubs/_frameworks + # Update existing stubs in the repo with the freshly generated ones + mv "$STUBS_PATH/output/stubs/_frameworks" ql/test/resources/stubs/ + git status + codeql test run --threads=0 --search-path extractor-pack --check-databases --check-undefined-labels --check-repeated-labels --check-redefined-labels --consistency-queries ql/consistency-queries -- ql/test/library-tests/dataflow/flowsources/aspremote + env: + GITHUB_TOKEN: ${{ github.token }} diff --git a/csharp/actions/create-extractor-pack/action.yml b/csharp/actions/create-extractor-pack/action.yml index 3b3e969c0a9..483e051bc4e 100644 --- a/csharp/actions/create-extractor-pack/action.yml +++ b/csharp/actions/create-extractor-pack/action.yml @@ -3,6 +3,7 @@ description: Builds the C# CodeQL pack runs: using: composite steps: + - uses: ./.github/actions/fetch-codeql - name: Setup dotnet uses: actions/setup-dotnet@v3 with: @@ -11,3 +12,13 @@ runs: shell: bash run: scripts/create-extractor-pack.sh working-directory: csharp + - name: Patch bundle to include ASP extractor + shell: bash + run: | + CODEQL_PATH=$(gh codeql version --format=json | jq -r .unpackedLocation) + # The legacy ASP extractor is not in this repo, so take the one from the nightly build + mv "$CODEQL_PATH/csharp/tools/extractor-asp.jar" "${{ github.workspace }}/csharp/extractor-pack/tools" + # Safe guard against using the bundled extractor + rm -rf "$CODEQL_PATH/csharp" + env: + GITHUB_TOKEN: ${{ github.token }} diff --git a/csharp/ql/src/Stubs/make_stubs_nuget.py b/csharp/ql/src/Stubs/make_stubs_nuget.py index 19d27933baf..c02d2fad387 100644 --- a/csharp/ql/src/Stubs/make_stubs_nuget.py +++ b/csharp/ql/src/Stubs/make_stubs_nuget.py @@ -211,7 +211,6 @@ with open(os.path.join(frameworksDir, 'Microsoft.NETCore.App', 'Microsoft.NETCor copiedFiles.add(pathInfo) shutil.copy2(pathInfos[pathInfo], frameworkDir) -exitCode = 0 for pathInfo in pathInfos: if pathInfo not in copiedFiles: print('Not copied to nuget or framework folder: ' + pathInfo) @@ -219,8 +218,7 @@ for pathInfo in pathInfos: if not os.path.exists(othersDir): os.makedirs(othersDir) shutil.copy2(pathInfos[pathInfo], othersDir) - exitCode = 1 print("\n --> Generated structured stub files: " + stubsDir) -exit(exitCode) +exit(0) From a045e6b029b1888cb47899afb82d21dacb90ba2d Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 25 Sep 2023 20:16:58 +0200 Subject: [PATCH 642/788] C#: Expose generated files in `DependencyManager` --- .../DependencyManager.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 7262816696d..40ea900d1a4 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -23,7 +23,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private readonly IDictionary unresolvedReferences = new ConcurrentDictionary(); private int failedProjects; private int succeededProjects; - private readonly List allSources; + private readonly List nonGeneratedSources; + private readonly List generatedSources; private int conflictedReferences = 0; private readonly IDependencyOptions options; private readonly DirectoryInfo sourceDir; @@ -65,7 +66,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching var allNonBinaryFiles = allFiles.Where(f => !binaryFileExtensions.Contains(f.Extension.ToLowerInvariant())).ToList(); var smallNonBinaryFiles = allNonBinaryFiles.SelectSmallFiles(progressMonitor).SelectFileNames(); this.fileContent = new FileContent(progressMonitor, smallNonBinaryFiles); - this.allSources = allNonBinaryFiles.SelectFileNamesByExtension(".cs").ToList(); + this.nonGeneratedSources = allNonBinaryFiles.SelectFileNamesByExtension(".cs").ToList(); + this.generatedSources = new(); var allProjects = allNonBinaryFiles.SelectFileNamesByExtension(".csproj"); var solutions = options.SolutionFile is not null ? new[] { options.SolutionFile } @@ -214,7 +216,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } } - this.allSources.Add(path); + this.generatedSources.Add(path); } } @@ -236,7 +238,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching var razor = new Razor(sdk, dotnet, progressMonitor); var targetDir = GetTemporaryWorkingDirectory("razor"); var generatedFiles = razor.GenerateFiles(views, usedReferences.Keys, targetDir); - this.allSources.AddRange(generatedFiles); + this.generatedSources.AddRange(generatedFiles); } catch (Exception ex) { @@ -379,10 +381,15 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// public IEnumerable ProjectSourceFiles => sources.Where(s => s.Value).Select(s => s.Key); + /// + /// All of the generated source files in the source directory. + /// + public IEnumerable GeneratedSourceFiles => generatedSources; + /// /// All of the source files in the source directory. /// - public IEnumerable AllSourceFiles => allSources; + public IEnumerable AllSourceFiles => generatedSources.Concat(nonGeneratedSources); /// /// List of assembly IDs which couldn't be resolved. From 1e57595d2cab141c11217700c7ab4bc0744ff366 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 00:15:37 +0000 Subject: [PATCH 643/788] Add changed framework coverage reports --- csharp/documentation/library-coverage/coverage.csv | 2 +- csharp/documentation/library-coverage/coverage.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/csharp/documentation/library-coverage/coverage.csv b/csharp/documentation/library-coverage/coverage.csv index be4c929650c..cd64533c7fa 100644 --- a/csharp/documentation/library-coverage/coverage.csv +++ b/csharp/documentation/library-coverage/coverage.csv @@ -24,5 +24,5 @@ Microsoft.Win32,,,8,,,,,,,,,,,,,,8, MySql.Data.MySqlClient,48,,,,,,,,,,,48,,,,,, Newtonsoft.Json,,,91,,,,,,,,,,,,,,73,18 ServiceStack,194,,7,27,,,,,75,,,92,,,,,7, -System,65,25,12148,,8,8,9,,,4,3,33,1,17,3,4,10163,1985 +System,65,25,12149,,8,8,9,,,4,3,33,1,17,3,4,10163,1986 Windows.Security.Cryptography.Core,1,,,,,,,1,,,,,,,,,, diff --git a/csharp/documentation/library-coverage/coverage.rst b/csharp/documentation/library-coverage/coverage.rst index 8f5b7ee0a8c..e64773485ae 100644 --- a/csharp/documentation/library-coverage/coverage.rst +++ b/csharp/documentation/library-coverage/coverage.rst @@ -8,7 +8,7 @@ C# framework & library support Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE-079` :sub:`Cross-site scripting` `ServiceStack `_,"``ServiceStack.*``, ``ServiceStack``",,7,194, - System,"``System.*``, ``System``",25,12148,65,7 + System,"``System.*``, ``System``",25,12149,65,7 Others,"``Dapper``, ``JsonToItemsTaskFactory``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.CSharp``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.NETCore.Platforms.BuildTasks``, ``Microsoft.VisualBasic``, ``Microsoft.Win32``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``, ``Windows.Security.Cryptography.Core``",,568,138, - Totals,,25,12723,397,7 + Totals,,25,12724,397,7 From 79dcb9e814c29aa701d8df40ba034836609fbc9c Mon Sep 17 00:00:00 2001 From: Tai Groot Date: Mon, 25 Sep 2023 18:37:02 -0700 Subject: [PATCH 644/788] update go tools version from v0.11.1 to v0.13.0 --- go/go.mod | 7 ++---- go/go.sum | 52 +++++-------------------------------------- go/vendor/modules.txt | 2 +- 3 files changed, 9 insertions(+), 52 deletions(-) diff --git a/go/go.mod b/go/go.mod index c7aa3395e84..54e366af936 100644 --- a/go/go.mod +++ b/go/go.mod @@ -4,10 +4,7 @@ go 1.21 require ( golang.org/x/mod v0.12.0 - golang.org/x/tools v0.11.1 + golang.org/x/tools v0.13.0 ) -require ( - golang.org/x/sys v0.10.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect -) +require golang.org/x/sys v0.12.0 // indirect diff --git a/go/go.sum b/go/go.sum index 062f29a6437..6b2ef799f66 100644 --- a/go/go.sum +++ b/go/go.sum @@ -1,48 +1,8 @@ -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.0 h1:UG21uOlmZabA4fW5i7ZX6bjw1xELEGg/ZLgZq9auk/Q= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.11.1 h1:ojD5zOW8+7dOGzdnNgersm8aPfcDjhMp12UfG93NIMc= -golang.org/x/tools v0.11.1/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= diff --git a/go/vendor/modules.txt b/go/vendor/modules.txt index 1f1e5a29f25..036afb8f104 100644 --- a/go/vendor/modules.txt +++ b/go/vendor/modules.txt @@ -7,7 +7,7 @@ golang.org/x/mod/semver # golang.org/x/sys v0.10.0 ## explicit; go 1.17 golang.org/x/sys/execabs -# golang.org/x/tools v0.11.1 +# golang.org/x/tools v0.13.0 ## explicit; go 1.18 golang.org/x/tools/go/gcexportdata golang.org/x/tools/go/internal/packagesdriver From 013452c52d7ff76afdf11d8309cea25c47d9c362 Mon Sep 17 00:00:00 2001 From: Tai Groot Date: Mon, 25 Sep 2023 18:45:37 -0700 Subject: [PATCH 645/788] fix vendor --- .../tools/go/internal/packagesdriver/sizes.go | 11 +++-- .../golang.org/x/tools/go/packages/golist.go | 9 ++--- .../x/tools/go/packages/packages.go | 8 ++-- .../x/tools/go/types/objectpath/objectpath.go | 21 +++++----- .../x/tools/internal/gcimporter/iexport.go | 40 ++++++++++--------- .../x/tools/internal/typeparams/coretype.go | 8 ++-- .../x/tools/internal/typeparams/termlist.go | 2 +- .../x/tools/internal/typeparams/typeterm.go | 9 ++--- .../internal/typesinternal/objectpath.go | 24 +++++++++++ .../x/tools/internal/typesinternal/types.go | 16 -------- go/vendor/modules.txt | 4 +- 11 files changed, 81 insertions(+), 71 deletions(-) create mode 100644 go/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go diff --git a/go/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go b/go/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go index 18a002f82a1..0454cdd78e5 100644 --- a/go/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go +++ b/go/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go @@ -8,7 +8,6 @@ package packagesdriver import ( "context" "fmt" - "go/types" "strings" "golang.org/x/tools/internal/gocommand" @@ -16,7 +15,7 @@ import ( var debug = false -func GetSizesGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (types.Sizes, error) { +func GetSizesForArgsGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (string, string, error) { inv.Verb = "list" inv.Args = []string{"-f", "{{context.GOARCH}} {{context.Compiler}}", "--", "unsafe"} stdout, stderr, friendlyErr, rawErr := gocmdRunner.RunRaw(ctx, inv) @@ -29,21 +28,21 @@ func GetSizesGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner * inv.Args = []string{"GOARCH"} envout, enverr := gocmdRunner.Run(ctx, inv) if enverr != nil { - return nil, enverr + return "", "", enverr } goarch = strings.TrimSpace(envout.String()) compiler = "gc" } else { - return nil, friendlyErr + return "", "", friendlyErr } } else { fields := strings.Fields(stdout.String()) if len(fields) < 2 { - return nil, fmt.Errorf("could not parse GOARCH and Go compiler in format \" \":\nstdout: <<%s>>\nstderr: <<%s>>", + return "", "", fmt.Errorf("could not parse GOARCH and Go compiler in format \" \":\nstdout: <<%s>>\nstderr: <<%s>>", stdout.String(), stderr.String()) } goarch = fields[0] compiler = fields[1] } - return types.SizesFor(compiler, goarch), nil + return compiler, goarch, nil } diff --git a/go/vendor/golang.org/x/tools/go/packages/golist.go b/go/vendor/golang.org/x/tools/go/packages/golist.go index 58230038a7c..b5de9cf9f21 100644 --- a/go/vendor/golang.org/x/tools/go/packages/golist.go +++ b/go/vendor/golang.org/x/tools/go/packages/golist.go @@ -9,7 +9,6 @@ import ( "context" "encoding/json" "fmt" - "go/types" "io/ioutil" "log" "os" @@ -153,10 +152,10 @@ func goListDriver(cfg *Config, patterns ...string) (*driverResponse, error) { if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&NeedTypes != 0 { sizeswg.Add(1) go func() { - var sizes types.Sizes - sizes, sizeserr = packagesdriver.GetSizesGolist(ctx, state.cfgInvocation(), cfg.gocmdRunner) - // types.SizesFor always returns nil or a *types.StdSizes. - response.dr.Sizes, _ = sizes.(*types.StdSizes) + compiler, arch, err := packagesdriver.GetSizesForArgsGolist(ctx, state.cfgInvocation(), cfg.gocmdRunner) + sizeserr = err + response.dr.Compiler = compiler + response.dr.Arch = arch sizeswg.Done() }() } diff --git a/go/vendor/golang.org/x/tools/go/packages/packages.go b/go/vendor/golang.org/x/tools/go/packages/packages.go index da1a27eea62..124a6fe143b 100644 --- a/go/vendor/golang.org/x/tools/go/packages/packages.go +++ b/go/vendor/golang.org/x/tools/go/packages/packages.go @@ -220,8 +220,10 @@ type driverResponse struct { // lists of multiple drivers, go/packages will fall back to the next driver. NotHandled bool - // Sizes, if not nil, is the types.Sizes to use when type checking. - Sizes *types.StdSizes + // Compiler and Arch are the arguments pass of types.SizesFor + // to get a types.Sizes to use when type checking. + Compiler string + Arch string // Roots is the set of package IDs that make up the root packages. // We have to encode this separately because when we encode a single package @@ -262,7 +264,7 @@ func Load(cfg *Config, patterns ...string) ([]*Package, error) { if err != nil { return nil, err } - l.sizes = response.Sizes + l.sizes = types.SizesFor(response.Compiler, response.Arch) return l.refine(response) } diff --git a/go/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/go/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go index c725d839ba1..fa5834baf72 100644 --- a/go/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go +++ b/go/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go @@ -32,6 +32,7 @@ import ( _ "unsafe" "golang.org/x/tools/internal/typeparams" + "golang.org/x/tools/internal/typesinternal" ) // A Path is an opaque name that identifies a types.Object @@ -127,12 +128,15 @@ type Encoder struct { skipMethodSorting bool } -// Exposed to gopls via golang.org/x/tools/internal/typesinternal -// TODO(golang/go#61443): eliminate this parameter one way or the other. +// Expose back doors so that gopls can avoid method sorting, which can dominate +// analysis on certain repositories. // -//go:linkname skipMethodSorting -func skipMethodSorting(enc *Encoder) { - enc.skipMethodSorting = true +// TODO(golang/go#61443): remove this. +func init() { + typesinternal.SkipEncoderMethodSorting = func(enc interface{}) { + enc.(*Encoder).skipMethodSorting = true + } + typesinternal.ObjectpathObject = object } // For returns the path to an object relative to its package, @@ -572,17 +576,16 @@ func findTypeParam(obj types.Object, list *typeparams.TypeParamList, path []byte // Object returns the object denoted by path p within the package pkg. func Object(pkg *types.Package, p Path) (types.Object, error) { - return object(pkg, p, false) + return object(pkg, string(p), false) } // Note: the skipMethodSorting parameter must match the value of // Encoder.skipMethodSorting used during encoding. -func object(pkg *types.Package, p Path, skipMethodSorting bool) (types.Object, error) { - if p == "" { +func object(pkg *types.Package, pathstr string, skipMethodSorting bool) (types.Object, error) { + if pathstr == "" { return nil, fmt.Errorf("empty path") } - pathstr := string(p) var pkgobj, suffix string if dot := strings.IndexByte(pathstr, opType); dot < 0 { pkgobj = pathstr diff --git a/go/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/go/vendor/golang.org/x/tools/internal/gcimporter/iexport.go index 3e3fce1731f..6103dd7102b 100644 --- a/go/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ b/go/vendor/golang.org/x/tools/internal/gcimporter/iexport.go @@ -46,7 +46,7 @@ func IExportShallow(fset *token.FileSet, pkg *types.Package, reportf ReportFunc) // TODO(adonovan): use byte slices throughout, avoiding copying. const bundle, shallow = false, true var out bytes.Buffer - err := iexportCommon(&out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}, reportf) + err := iexportCommon(&out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}) return out.Bytes(), err } @@ -86,16 +86,16 @@ const bundleVersion = 0 // so that calls to IImportData can override with a provided package path. func IExportData(out io.Writer, fset *token.FileSet, pkg *types.Package) error { const bundle, shallow = false, false - return iexportCommon(out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}, nil) + return iexportCommon(out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}) } // IExportBundle writes an indexed export bundle for pkgs to out. func IExportBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { const bundle, shallow = true, false - return iexportCommon(out, fset, bundle, shallow, iexportVersion, pkgs, nil) + return iexportCommon(out, fset, bundle, shallow, iexportVersion, pkgs) } -func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, version int, pkgs []*types.Package, reportf ReportFunc) (err error) { +func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, version int, pkgs []*types.Package) (err error) { if !debug { defer func() { if e := recover(); e != nil { @@ -113,7 +113,6 @@ func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, ver fset: fset, version: version, shallow: shallow, - reportf: reportf, allPkgs: map[*types.Package]bool{}, stringIndex: map[string]uint64{}, declIndex: map[types.Object]uint64{}, @@ -330,7 +329,6 @@ type iexporter struct { shallow bool // don't put types from other packages in the index objEncoder *objectpath.Encoder // encodes objects from other packages in shallow mode; lazily allocated - reportf ReportFunc // if non-nil, used to report bugs localpkg *types.Package // (nil in bundle mode) // allPkgs tracks all packages that have been referenced by @@ -917,22 +915,26 @@ func (w *exportWriter) objectPath(obj types.Object) { objectPath, err := w.p.objectpathEncoder().For(obj) if err != nil { // Fall back to the empty string, which will cause the importer to create a - // new object. + // new object, which matches earlier behavior. Creating a new object is + // sufficient for many purposes (such as type checking), but causes certain + // references algorithms to fail (golang/go#60819). However, we didn't + // notice this problem during months of gopls@v0.12.0 testing. // - // This is incorrect in shallow mode (golang/go#60819), but matches - // the previous behavior. This code is defensive, as it is hard to - // prove that the objectpath algorithm will succeed in all cases, and - // creating a new object sort of works. - // (we didn't notice the bug during months of gopls@v0.12.0 testing) + // TODO(golang/go#61674): this workaround is insufficient, as in the case + // where the field forwarded from an instantiated type that may not appear + // in the export data of the original package: // - // However, report a bug so that we can eventually have confidence - // that export/import is producing a correct package. + // // package a + // type A[P any] struct{ F P } // - // TODO: remove reportf once we have such confidence. - objectPath = "" - if w.p.reportf != nil { - w.p.reportf("unable to encode object %q in package %q: %v", obj.Name(), obj.Pkg().Path(), err) - } + // // package b + // type B a.A[int] + // + // We need to update references algorithms not to depend on this + // de-duplication, at which point we may want to simply remove the + // workaround here. + w.string("") + return } w.string(string(objectPath)) w.pkg(obj.Pkg()) diff --git a/go/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/go/vendor/golang.org/x/tools/internal/typeparams/coretype.go index 993135ec90e..71248209ee5 100644 --- a/go/vendor/golang.org/x/tools/internal/typeparams/coretype.go +++ b/go/vendor/golang.org/x/tools/internal/typeparams/coretype.go @@ -81,13 +81,13 @@ func CoreType(T types.Type) types.Type { // restrictions may be arbitrarily complex. For example, consider the // following: // -// type A interface{ ~string|~[]byte } +// type A interface{ ~string|~[]byte } // -// type B interface{ int|string } +// type B interface{ int|string } // -// type C interface { ~string|~int } +// type C interface { ~string|~int } // -// type T[P interface{ A|B; C }] int +// type T[P interface{ A|B; C }] int // // In this example, the structural type restriction of P is ~string|int: A|B // expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, diff --git a/go/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/go/vendor/golang.org/x/tools/internal/typeparams/termlist.go index 933106a23dd..cbd12f80131 100644 --- a/go/vendor/golang.org/x/tools/internal/typeparams/termlist.go +++ b/go/vendor/golang.org/x/tools/internal/typeparams/termlist.go @@ -30,7 +30,7 @@ func (xl termlist) String() string { var buf bytes.Buffer for i, x := range xl { if i > 0 { - buf.WriteString(" ∪ ") + buf.WriteString(" | ") } buf.WriteString(x.String()) } diff --git a/go/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/go/vendor/golang.org/x/tools/internal/typeparams/typeterm.go index 7ddee28d987..7350bb702a1 100644 --- a/go/vendor/golang.org/x/tools/internal/typeparams/typeterm.go +++ b/go/vendor/golang.org/x/tools/internal/typeparams/typeterm.go @@ -10,11 +10,10 @@ import "go/types" // A term describes elementary type sets: // -// ∅: (*term)(nil) == ∅ // set of no types (empty set) -// 𝓤: &term{} == 𝓤 // set of all types (𝓤niverse) -// T: &term{false, T} == {T} // set of type T -// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t -// +// ∅: (*term)(nil) == ∅ // set of no types (empty set) +// 𝓤: &term{} == 𝓤 // set of all types (𝓤niverse) +// T: &term{false, T} == {T} // set of type T +// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t type term struct { tilde bool // valid if typ != nil typ types.Type diff --git a/go/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go b/go/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go new file mode 100644 index 00000000000..5e96e895573 --- /dev/null +++ b/go/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go @@ -0,0 +1,24 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import "go/types" + +// This file contains back doors that allow gopls to avoid method sorting when +// using the objectpath package. +// +// This is performance-critical in certain repositories, but changing the +// behavior of the objectpath package is still being discussed in +// golang/go#61443. If we decide to remove the sorting in objectpath we can +// simply delete these back doors. Otherwise, we should add a new API to +// objectpath that allows controlling the sorting. + +// SkipEncoderMethodSorting marks enc (which must be an *objectpath.Encoder) as +// not requiring sorted methods. +var SkipEncoderMethodSorting func(enc interface{}) + +// ObjectpathObject is like objectpath.Object, but allows suppressing method +// sorting. +var ObjectpathObject func(pkg *types.Package, p string, skipMethodSorting bool) (types.Object, error) diff --git a/go/vendor/golang.org/x/tools/internal/typesinternal/types.go b/go/vendor/golang.org/x/tools/internal/typesinternal/types.go index 66e8b099bd6..ce7d4351b22 100644 --- a/go/vendor/golang.org/x/tools/internal/typesinternal/types.go +++ b/go/vendor/golang.org/x/tools/internal/typesinternal/types.go @@ -11,8 +11,6 @@ import ( "go/types" "reflect" "unsafe" - - "golang.org/x/tools/go/types/objectpath" ) func SetUsesCgo(conf *types.Config) bool { @@ -52,17 +50,3 @@ func ReadGo116ErrorData(err types.Error) (code ErrorCode, start, end token.Pos, } var SetGoVersion = func(conf *types.Config, version string) bool { return false } - -// SkipEncoderMethodSorting marks the encoder as not requiring sorted methods, -// as an optimization for gopls (which guarantees the order of parsed source files). -// -// TODO(golang/go#61443): eliminate this parameter one way or the other. -// -//go:linkname SkipEncoderMethodSorting golang.org/x/tools/go/types/objectpath.skipMethodSorting -func SkipEncoderMethodSorting(enc *objectpath.Encoder) - -// ObjectpathObject is like objectpath.Object, but allows suppressing method -// sorting (which is not necessary for gopls). -// -//go:linkname ObjectpathObject golang.org/x/tools/go/types/objectpath.object -func ObjectpathObject(pkg *types.Package, p objectpath.Path, skipMethodSorting bool) (types.Object, error) diff --git a/go/vendor/modules.txt b/go/vendor/modules.txt index 036afb8f104..77866bafb1e 100644 --- a/go/vendor/modules.txt +++ b/go/vendor/modules.txt @@ -4,7 +4,7 @@ golang.org/x/mod/internal/lazyregexp golang.org/x/mod/modfile golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/sys v0.10.0 +# golang.org/x/sys v0.12.0 ## explicit; go 1.17 golang.org/x/sys/execabs # golang.org/x/tools v0.13.0 @@ -25,5 +25,3 @@ golang.org/x/tools/internal/pkgbits golang.org/x/tools/internal/tokeninternal golang.org/x/tools/internal/typeparams golang.org/x/tools/internal/typesinternal -# golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 -## explicit; go 1.17 From ef699e51957cbbc535b841a2d584bf405f48e0e7 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 26 Sep 2023 09:15:19 +0200 Subject: [PATCH 646/788] C#: Rely on CLI to cleanup scratch dir --- .../DependencyManager.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 4adb8e88e64..95b6cf57b9a 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -32,6 +32,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching private readonly FileContent fileContent; private readonly TemporaryDirectory packageDirectory; private readonly TemporaryDirectory tempWorkingDirectory; + private readonly bool cleanupTempWorkingDirectory; /// /// Performs C# dependency fetching. @@ -59,7 +60,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching this.progressMonitor.FindingFiles(srcDir); packageDirectory = new TemporaryDirectory(ComputeTempDirectory(sourceDir.FullName)); - tempWorkingDirectory = new TemporaryDirectory(GetTemporaryWorkingDirectory()); + tempWorkingDirectory = new TemporaryDirectory(GetTemporaryWorkingDirectory(out cleanupTempWorkingDirectory)); var allFiles = GetAllFiles(); var binaryFileExtensions = new HashSet(new[] { ".dll", ".exe" }); // TODO: add more binary file extensions. @@ -285,8 +286,9 @@ namespace Semmle.Extraction.CSharp.DependencyFetching return Path.Combine(Path.GetTempPath(), "GitHub", "packages", sb.ToString()); } - private static string GetTemporaryWorkingDirectory() + private static string GetTemporaryWorkingDirectory(out bool cleanupTempWorkingDirectory) { + cleanupTempWorkingDirectory = false; var tempFolder = EnvironmentVariables.GetScratchDirectory(); if (string.IsNullOrEmpty(tempFolder)) @@ -294,6 +296,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching var tempPath = Path.GetTempPath(); var name = Guid.NewGuid().ToString("N").ToUpper(); tempFolder = Path.Combine(tempPath, "GitHub", name); + cleanupTempWorkingDirectory = true; } return tempFolder; @@ -574,7 +577,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching public void Dispose() { packageDirectory?.Dispose(); - tempWorkingDirectory?.Dispose(); + if (cleanupTempWorkingDirectory) + tempWorkingDirectory?.Dispose(); } } } From 8cc6466c687e6f68bcdc6e1dc8b9e495abd9fe8e Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Mon, 11 Sep 2023 15:33:51 +0200 Subject: [PATCH 647/788] Java: Automodel: add extensibleType metadata to framework mode --- .../AutomodelFrameworkModeCharacteristics.qll | 4 ++++ .../AutomodelFrameworkModeExtractCandidates.ql | 7 +++++-- ...odelFrameworkModeExtractNegativeExamples.ql | 6 ++++-- ...odelFrameworkModeExtractPositiveExamples.ql | 6 ++++-- ...odelFrameworkModeExtractCandidates.expected | 18 +++++++++--------- ...ameworkModeExtractNegativeExamples.expected | 4 ++-- ...ameworkModeExtractPositiveExamples.expected | 4 ++-- 7 files changed, 30 insertions(+), 19 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index 020e15a3eaa..c53aa28a929 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -48,6 +48,10 @@ abstract class FrameworkModeEndpoint extends TFrameworkModeEndpoint { abstract Top asTop(); + string getExtensibleType() { + result = "sinkModel" + } + string toString() { result = this.asTop().toString() } Location getLocation() { result = this.asTop().getLocation() } diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql index e06594d0d39..21234c3ce52 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql @@ -18,8 +18,10 @@ private import AutomodelJavaUtil from Endpoint endpoint, string message, FrameworkModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, - DollarAtString input, DollarAtString parameterName, DollarAtString alreadyAiModeled + DollarAtString input, DollarAtString parameterName, DollarAtString alreadyAiModeled, + DollarAtString extensibleType where + endpoint.getExtensibleType() = extensibleType and not exists(CharacteristicsImpl::UninterestingToModelCharacteristic u | u.appliesToEndpoint(endpoint) ) and @@ -56,4 +58,5 @@ select endpoint, signature, "signature", // input, "input", // parameterName, "parameterName", // - alreadyAiModeled, "alreadyAiModeled" + alreadyAiModeled, "alreadyAiModeled", // + extensibleType, "extensibleType" diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql index 10e1870984d..5135ec2547a 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql @@ -16,8 +16,9 @@ from Endpoint endpoint, EndpointCharacteristic characteristic, float confidence, DollarAtString message, FrameworkModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, - DollarAtString input, DollarAtString parameterName + DollarAtString input, DollarAtString parameterName, DollarAtString extensibleType where + endpoint.getExtensibleType() = extensibleType and characteristic.appliesToEndpoint(endpoint) and confidence >= SharedCharacteristics::highConfidence() and characteristic.hasImplications(any(NegativeSinkType negative), true, confidence) and @@ -46,4 +47,5 @@ select endpoint, name, "name", // signature, "signature", // input, "input", // - parameterName, "parameterName" // + parameterName, "parameterName", // + extensibleType, "extensibleType" diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql index dfbaaef35e5..8a89550644d 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql @@ -15,8 +15,9 @@ private import AutomodelJavaUtil from Endpoint endpoint, SinkType sinkType, FrameworkModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, - DollarAtString input, DollarAtString parameterName + DollarAtString input, DollarAtString parameterName, DollarAtString extensibleType where + endpoint.getExtensibleType() = extensibleType and // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly // certain about in the prompt. not erroneousEndpoints(endpoint, _, _, _, _, false) and @@ -33,4 +34,5 @@ select endpoint, name, "name", // signature, "signature", // input, "input", // - parameterName, "parameterName" // + parameterName, "parameterName", // + extensibleType, "extensibleType" diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected index ceeb1115c18..2e5756840f4 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected @@ -1,9 +1,9 @@ -| com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | -| com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | -| com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | -| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | -| com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | -| com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | -| java/nio/file/Files.java:14:9:14:24 | out | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:14:9:14:24 | out | MethodDoc | java/nio/file/Files.java:14:9:14:24 | out | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://out:1:1:1:1 | out | parameterName | file://:1:1:1:1 | | alreadyAiModeled | -| java/nio/file/Files.java:25:9:25:21 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://openPath:1:1:1:1 | openPath | parameterName | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | -| java/nio/file/Files.java:26:9:26:29 | options | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:26:9:26:29 | options | MethodDoc | java/nio/file/Files.java:26:9:26:29 | options | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://options:1:1:1:1 | options | parameterName | file://:1:1:1:1 | | alreadyAiModeled | +| com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:14:9:14:24 | out | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:14:9:14:24 | out | MethodDoc | java/nio/file/Files.java:14:9:14:24 | out | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://out:1:1:1:1 | out | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:25:9:25:21 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://openPath:1:1:1:1 | openPath | parameterName | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:26:9:26:29 | options | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:26:9:26:29 | options | MethodDoc | java/nio/file/Files.java:26:9:26:29 | options | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://options:1:1:1:1 | options | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected index 6547f254401..860fb02fef2 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected @@ -1,2 +1,2 @@ -| java/io/File.java:4:9:4:17 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:9:4:17 | compareTo | MethodDoc | java/io/File.java:4:9:4:17 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://this:1:1:1:1 | this | parameterName | -| java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://pathname:1:1:1:1 | pathname | parameterName | +| java/io/File.java:4:9:4:17 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:9:4:17 | compareTo | MethodDoc | java/io/File.java:4:9:4:17 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://this:1:1:1:1 | this | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://pathname:1:1:1:1 | pathname | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected index 7e8e2bbcad5..d30fa33990f 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected @@ -1,2 +1,2 @@ -| java/nio/file/Files.java:13:9:13:19 | source | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:13:9:13:19 | source | MethodDoc | java/nio/file/Files.java:13:9:13:19 | source | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://source:1:1:1:1 | source | parameterName | -| java/nio/file/Files.java:25:9:25:21 | openPath | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://openPath:1:1:1:1 | openPath | parameterName | +| java/nio/file/Files.java:13:9:13:19 | source | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:13:9:13:19 | source | MethodDoc | java/nio/file/Files.java:13:9:13:19 | source | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://source:1:1:1:1 | source | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:25:9:25:21 | openPath | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://openPath:1:1:1:1 | openPath | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | From b2578f0e302b678f7666b30ffa24bc6d16dcdc50 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 12 Sep 2023 09:28:34 +0200 Subject: [PATCH 648/788] Java: Automodel Fr Mode: add return value endpoint type --- .../AutomodelFrameworkModeCharacteristics.qll | 33 ++++++++++++++++--- .../com/github/codeql/test/PublicClass.java | 4 +-- .../github/codeql/test/PublicInterface.java | 4 +-- .../java/nio/file/Files.java | 4 +-- 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index c53aa28a929..29c7cc0a2a0 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -25,7 +25,8 @@ newtype JavaRelatedLocationType = newtype TFrameworkModeEndpoint = TExplicitParameter(Parameter p) or - TQualifier(Callable c) + TQualifier(Callable c) or + TReturnValue(Callable c) /** * A framework mode endpoint. @@ -48,9 +49,7 @@ abstract class FrameworkModeEndpoint extends TFrameworkModeEndpoint { abstract Top asTop(); - string getExtensibleType() { - result = "sinkModel" - } + abstract string getExtensibleType(); string toString() { result = this.asTop().toString() } @@ -69,6 +68,8 @@ class ExplicitParameterEndpoint extends FrameworkModeEndpoint, TExplicitParamete override Callable getEnclosingCallable() { result = param.getCallable() } override Top asTop() { result = param } + + override string getExtensibleType() { result = "sinkModel" } } class QualifierEndpoint extends FrameworkModeEndpoint, TQualifier { @@ -85,6 +86,30 @@ class QualifierEndpoint extends FrameworkModeEndpoint, TQualifier { override Callable getEnclosingCallable() { result = callable } override Top asTop() { result = callable } + + override string getExtensibleType() { result = "sinkModel" } +} + +class ReturnValue extends FrameworkModeEndpoint, TReturnValue { + Callable callable; + + ReturnValue() { this = TReturnValue(callable) and callable.fromSource() } + + override int getIndex() { + // FIXME bogus value + result = -1 + } + + override string getParamName() { + // FIXME bogus value + result = "return value" + } + + override Callable getEnclosingCallable() { result = callable } + + override Top asTop() { result = callable } + + override string getExtensibleType() { result = "sourceModel" } } /** diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java index bf858b49163..7a0a68509cb 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java @@ -3,11 +3,11 @@ package com.github.codeql.test; public class PublicClass { public void stuff(String arg) { // `arg` is a candidate, `this` is a candidate System.out.println(arg); - } + } // method stuff is a candidate source public static void staticStuff(String arg) { // `arg` is a candidate, `this` is not a candidate (static method) System.out.println(arg); - } + } // method staticStuff is a candidate source // `arg` and `this` are not a candidate because the method is not public: protected void nonPublicStuff(String arg) { diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicInterface.java b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicInterface.java index e28e0559e0c..7dad7fc878a 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicInterface.java +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicInterface.java @@ -1,9 +1,9 @@ package com.github.codeql.test; public interface PublicInterface { - public void stuff(String arg); // `arg` is a candidate, `this` is a candidate + public void stuff(String arg); // `arg` is a candidate, `this` is a candidate, method stuff is a candidate source public static void staticStuff(String arg) { // `arg` is a candidate, `this` is not a candidate (static method) System.out.println(arg); - } + } // method staticStuff is a candidate source } diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/java/nio/file/Files.java b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/java/nio/file/Files.java index 4b0c75a175e..6374d8ee8a4 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/java/nio/file/Files.java +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/java/nio/file/Files.java @@ -19,12 +19,12 @@ public class Files { */ ) throws IOException { // ... - } + } // method copy is a candidate source public static InputStream newInputStream( Path openPath ,// positive example (known sink), candidate (ai-modeled, and useful as a candidate in regression testing) OpenOption... options ) throws IOException { return new FileInputStream(openPath.toFile()); - } + } // method newInputStream is a candidate source } From 32a538b64c856ffcb0972113bef8f303e2d8f8ec Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 12 Sep 2023 16:44:03 +0200 Subject: [PATCH 649/788] Java: automodel fr mode: add mad output to extraction metadata --- .../AutomodelFrameworkModeCharacteristics.qll | 44 ++++++++++++++----- ...AutomodelFrameworkModeExtractCandidates.ql | 9 ++-- ...delFrameworkModeExtractNegativeExamples.ql | 6 ++- ...delFrameworkModeExtractPositiveExamples.ql | 5 ++- java/ql/automodel/src/AutomodelJavaUtil.qll | 8 ---- 5 files changed, 46 insertions(+), 26 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index 29c7cc0a2a0..436dc0321d1 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -37,6 +37,20 @@ abstract class FrameworkModeEndpoint extends TFrameworkModeEndpoint { */ abstract int getIndex(); + /** + * Gets the input (if any) for this endpoint, eg.: `Argument[0]`. + * + * For endpoints that are source candidates, this will be `none()`. + */ + abstract string getMaDInput(); + + /** + * Gets the output (if any) for this endpoint, eg.: `ReturnValue`. + * + * For endpoints that are sink candidates, this will be `none()`. + */ + abstract string getMaDOutput(); + /** * Returns the name of the parameter of the endpoint. */ @@ -63,6 +77,10 @@ class ExplicitParameterEndpoint extends FrameworkModeEndpoint, TExplicitParamete override int getIndex() { result = param.getPosition() } + override string getMaDInput() { result = "Argument[" + param.getPosition() + "]" } + + override string getMaDOutput() { none() } + override string getParamName() { result = param.getName() } override Callable getEnclosingCallable() { result = param.getCallable() } @@ -81,6 +99,10 @@ class QualifierEndpoint extends FrameworkModeEndpoint, TQualifier { override int getIndex() { result = -1 } + override string getMaDInput() { result = "Argument[this]" } + + override string getMaDOutput() { none() } + override string getParamName() { result = "this" } override Callable getEnclosingCallable() { result = callable } @@ -100,10 +122,11 @@ class ReturnValue extends FrameworkModeEndpoint, TReturnValue { result = -1 } - override string getParamName() { - // FIXME bogus value - result = "return value" - } + override string getMaDInput() { none() } + + override string getMaDOutput() { result = "ReturnValue" } + + override string getParamName() { none() } override Callable getEnclosingCallable() { result = callable } @@ -163,7 +186,7 @@ module FrameworkCandidatesImpl implements SharedCharacteristics::CandidateSig { FrameworkModeGetCallable::getCallable(e).hasQualifiedName(package, type, name) and signature = ExternalFlow::paramsString(FrameworkModeGetCallable::getCallable(e)) and ext = "" and - input = AutomodelJavaUtil::getArgumentForIndex(e.getIndex()) + input = e.getMaDInput() } /** @@ -213,11 +236,12 @@ class FrameworkModeMetadataExtractor extends string { predicate hasMetadata( Endpoint e, string package, string type, string subtypes, string name, string signature, - string input, string parameterName + string input, string output, string parameterName ) { - parameterName = e.getParamName() and + (if exists(e.getParamName()) then parameterName = e.getParamName() else parameterName = "") and name = e.getEnclosingCallable().getName() and - input = AutomodelJavaUtil::getArgumentForIndex(e.getIndex()) and + (if exists(e.getMaDInput()) then input = e.getMaDInput() else input = "") and + (if exists(e.getMaDOutput()) then output = e.getMaDOutput() else output = "") and package = e.getEnclosingCallable().getDeclaringType().getPackage().getName() and type = e.getEnclosingCallable().getDeclaringType().getErasure().(RefType).nestedName() and subtypes = AutomodelJavaUtil::considerSubtypes(e.getEnclosingCallable()).toString() and @@ -285,8 +309,8 @@ private class ExceptionCharacteristic extends CharacteristicsImpl::NotASinkChara * A characteristic that limits candidates to parameters of methods that are recognized as `ModelApi`, iow., APIs that * are considered worth modeling. */ -private class NotAModelApiParameter extends CharacteristicsImpl::UninterestingToModelCharacteristic { - NotAModelApiParameter() { this = "not a model API parameter" } +private class NotAModelApi extends CharacteristicsImpl::UninterestingToModelCharacteristic { + NotAModelApi() { this = "not a model API" } override predicate appliesToEndpoint(Endpoint e) { not e.getEnclosingCallable() instanceof ModelExclusions::ModelApi diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql index 21234c3ce52..c77f6d4a427 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql @@ -18,8 +18,8 @@ private import AutomodelJavaUtil from Endpoint endpoint, string message, FrameworkModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, - DollarAtString input, DollarAtString parameterName, DollarAtString alreadyAiModeled, - DollarAtString extensibleType + DollarAtString input, DollarAtString output, DollarAtString parameterName, + DollarAtString alreadyAiModeled, DollarAtString extensibleType where endpoint.getExtensibleType() = extensibleType and not exists(CharacteristicsImpl::UninterestingToModelCharacteristic u | @@ -36,7 +36,7 @@ where alreadyAiModeled.matches("%ai-%") and CharacteristicsImpl::isSink(endpoint, _, alreadyAiModeled) ) and - meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, parameterName) and + meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, parameterName) and includeAutomodelCandidate(package, type, name, signature) and // The message is the concatenation of all sink types for which this endpoint is known neither to be a sink nor to be // a non-sink, and we surface only endpoints that have at least one such sink type. @@ -48,7 +48,7 @@ where sinkType, ", " ) select endpoint, - message + "\nrelated locations: $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@.", // + message + "\nrelated locations: $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, MethodDoc()), "MethodDoc", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, ClassDoc()), "ClassDoc", // package, "package", // @@ -57,6 +57,7 @@ select endpoint, name, "name", // signature, "signature", // input, "input", // + output, "output", // parameterName, "parameterName", // alreadyAiModeled, "alreadyAiModeled", // extensibleType, "extensibleType" diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql index 5135ec2547a..38f0d27f591 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql @@ -16,7 +16,8 @@ from Endpoint endpoint, EndpointCharacteristic characteristic, float confidence, DollarAtString message, FrameworkModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, - DollarAtString input, DollarAtString parameterName, DollarAtString extensibleType + DollarAtString input, DollarAtString output, DollarAtString parameterName, + DollarAtString extensibleType where endpoint.getExtensibleType() = extensibleType and characteristic.appliesToEndpoint(endpoint) and @@ -25,7 +26,7 @@ where // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly // certain about in the prompt. not erroneousEndpoints(endpoint, _, _, _, _, false) and - meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, parameterName) and + meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, parameterName) and // It's valid for a node to satisfy the logic for both `isSink` and `isSanitizer`, but in that case it will be // treated by the actual query as a sanitizer, since the final logic is something like // `isSink(n) and not isSanitizer(n)`. We don't want to include such nodes as negative examples in the prompt, because @@ -47,5 +48,6 @@ select endpoint, name, "name", // signature, "signature", // input, "input", // + output, "output", // parameterName, "parameterName", // extensibleType, "extensibleType" diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql index 8a89550644d..730ac7ae786 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql @@ -15,13 +15,13 @@ private import AutomodelJavaUtil from Endpoint endpoint, SinkType sinkType, FrameworkModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, - DollarAtString input, DollarAtString parameterName, DollarAtString extensibleType + DollarAtString input, DollarAtString output, DollarAtString parameterName, DollarAtString extensibleType where endpoint.getExtensibleType() = extensibleType and // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly // certain about in the prompt. not erroneousEndpoints(endpoint, _, _, _, _, false) and - meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, parameterName) and + meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, parameterName) and // Extract positive examples of sinks belonging to the existing ATM query configurations. CharacteristicsImpl::isKnownAs(endpoint, sinkType, _) select endpoint, @@ -34,5 +34,6 @@ select endpoint, name, "name", // signature, "signature", // input, "input", // + output, "output", // parameterName, "parameterName", // extensibleType, "extensibleType" diff --git a/java/ql/automodel/src/AutomodelJavaUtil.qll b/java/ql/automodel/src/AutomodelJavaUtil.qll index 8fd8702bfc4..99976965443 100644 --- a/java/ql/automodel/src/AutomodelJavaUtil.qll +++ b/java/ql/automodel/src/AutomodelJavaUtil.qll @@ -44,14 +44,6 @@ predicate isKnownKind(string kind, AutomodelEndpointTypes::EndpointType type) { type instanceof AutomodelEndpointTypes::RemoteSourceType } -/** Gets the models-as-data description for the method argument with the index `index`. */ -bindingset[index] -string getArgumentForIndex(int index) { - index = -1 and result = "Argument[this]" - or - index >= 0 and result = "Argument[" + index + "]" -} - /** * By convention, the subtypes property of the MaD declaration should only be * true when there _can_ exist any subtypes with a different implementation. From 0d53600b12c9c1a3eb929884ea6a315cdaf3b342 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 13 Sep 2023 09:58:47 +0200 Subject: [PATCH 650/788] Java: automodel fr mode: update test expectations --- ...delFrameworkModeExtractCandidates.expected | 24 ++++++++++++------- ...meworkModeExtractNegativeExamples.expected | 4 ++-- ...meworkModeExtractPositiveExamples.expected | 4 ++-- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected index 2e5756840f4..fbb777e4063 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected @@ -1,9 +1,15 @@ -| com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| java/nio/file/Files.java:14:9:14:24 | out | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:14:9:14:24 | out | MethodDoc | java/nio/file/Files.java:14:9:14:24 | out | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://out:1:1:1:1 | out | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| java/nio/file/Files.java:25:9:25:21 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://openPath:1:1:1:1 | openPath | parameterName | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| java/nio/file/Files.java:26:9:26:29 | options | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:26:9:26:29 | options | MethodDoc | java/nio/file/Files.java:26:9:26:29 | options | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://options:1:1:1:1 | options | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | MethodDoc | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | MethodDoc | com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:12:24:12:27 | copy | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:12:24:12:27 | copy | MethodDoc | java/nio/file/Files.java:12:24:12:27 | copy | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| java/nio/file/Files.java:14:9:14:24 | out | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:14:9:14:24 | out | MethodDoc | java/nio/file/Files.java:14:9:14:24 | out | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://out:1:1:1:1 | out | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:24:31:24:44 | newInputStream | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:24:31:24:44 | newInputStream | MethodDoc | java/nio/file/Files.java:24:31:24:44 | newInputStream | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| java/nio/file/Files.java:25:9:25:21 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://openPath:1:1:1:1 | openPath | parameterName | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:26:9:26:29 | options | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:26:9:26:29 | options | MethodDoc | java/nio/file/Files.java:26:9:26:29 | options | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://options:1:1:1:1 | options | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected index 860fb02fef2..f22421735e9 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected @@ -1,2 +1,2 @@ -| java/io/File.java:4:9:4:17 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:9:4:17 | compareTo | MethodDoc | java/io/File.java:4:9:4:17 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://this:1:1:1:1 | this | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://pathname:1:1:1:1 | pathname | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/io/File.java:4:9:4:17 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:9:4:17 | compareTo | MethodDoc | java/io/File.java:4:9:4:17 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://pathname:1:1:1:1 | pathname | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected index d30fa33990f..a73185b86a1 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected @@ -1,2 +1,2 @@ -| java/nio/file/Files.java:13:9:13:19 | source | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:13:9:13:19 | source | MethodDoc | java/nio/file/Files.java:13:9:13:19 | source | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://source:1:1:1:1 | source | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| java/nio/file/Files.java:25:9:25:21 | openPath | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://openPath:1:1:1:1 | openPath | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:13:9:13:19 | source | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:13:9:13:19 | source | MethodDoc | java/nio/file/Files.java:13:9:13:19 | source | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://source:1:1:1:1 | source | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:25:9:25:21 | openPath | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://openPath:1:1:1:1 | openPath | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | From 9e6eebb92661caa13bdb6271b76e020bdcc6e435 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 13 Sep 2023 10:26:42 +0200 Subject: [PATCH 651/788] Java: Automodel: drive-by: remove unused message logic for candidate extraction --- ...tomodelApplicationModeExtractCandidates.ql | 17 +++-------- ...AutomodelFrameworkModeExtractCandidates.ql | 16 +++------- ...lApplicationModeExtractCandidates.expected | 26 ++++++++-------- ...delFrameworkModeExtractCandidates.expected | 30 +++++++++---------- 4 files changed, 36 insertions(+), 53 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql index 1bd6f4e6f63..fcb1089e393 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql @@ -55,7 +55,7 @@ private Endpoint getSampleForSignature( } from - Endpoint endpoint, string message, ApplicationModeMetadataExtractor meta, DollarAtString package, + Endpoint endpoint, ApplicationModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, DollarAtString input, DollarAtString output, DollarAtString isVarargsArray, DollarAtString alreadyAiModeled, DollarAtString extensibleType @@ -63,6 +63,7 @@ where not exists(CharacteristicsImpl::UninterestingToModelCharacteristic u | u.appliesToEndpoint(endpoint) ) and + CharacteristicsImpl::isSinkCandidate(endpoint, _) and endpoint = getSampleForSignature(9, package, type, subtypes, name, signature, input, output, isVarargsArray, extensibleType) and @@ -78,19 +79,9 @@ where CharacteristicsImpl::isModeled(endpoint, _, _, alreadyAiModeled) ) and meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and - includeAutomodelCandidate(package, type, name, signature) and - // The message is the concatenation of all sink types for which this endpoint is known neither to be a sink nor to be - // a non-sink, and we surface only endpoints that have at least one such sink type. - message = - strictconcat(AutomodelEndpointTypes::SinkType sinkType | - not CharacteristicsImpl::isKnownAs(endpoint, sinkType, _) and - CharacteristicsImpl::isSinkCandidate(endpoint, sinkType) - | - sinkType, ", " - ) + includeAutomodelCandidate(package, type, name, signature) select endpoint.asNode(), - message + "\nrelated locations: $@, $@, $@." + - "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@.", // + "related locations: $@, $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, CallContext()), "CallContext", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, MethodDoc()), "MethodDoc", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, ClassDoc()), "ClassDoc", // diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql index c77f6d4a427..c2ab6f33ee7 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractCandidates.ql @@ -16,7 +16,7 @@ private import AutomodelFrameworkModeCharacteristics private import AutomodelJavaUtil from - Endpoint endpoint, string message, FrameworkModeMetadataExtractor meta, DollarAtString package, + Endpoint endpoint, FrameworkModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, DollarAtString input, DollarAtString output, DollarAtString parameterName, DollarAtString alreadyAiModeled, DollarAtString extensibleType @@ -25,6 +25,7 @@ where not exists(CharacteristicsImpl::UninterestingToModelCharacteristic u | u.appliesToEndpoint(endpoint) ) and + CharacteristicsImpl::isSinkCandidate(endpoint, _) and // If a node is already a known sink for any of our existing ATM queries and is already modeled as a MaD sink, we // don't include it as a candidate. Otherwise, we might include it as a candidate for query A, but the model will // label it as a sink for one of the sink types of query B, for which it's already a known sink. This would result in @@ -37,18 +38,9 @@ where CharacteristicsImpl::isSink(endpoint, _, alreadyAiModeled) ) and meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, parameterName) and - includeAutomodelCandidate(package, type, name, signature) and - // The message is the concatenation of all sink types for which this endpoint is known neither to be a sink nor to be - // a non-sink, and we surface only endpoints that have at least one such sink type. - message = - strictconcat(AutomodelEndpointTypes::SinkType sinkType | - not CharacteristicsImpl::isKnownAs(endpoint, sinkType, _) and - CharacteristicsImpl::isSinkCandidate(endpoint, sinkType) - | - sinkType, ", " - ) + includeAutomodelCandidate(package, type, name, signature) select endpoint, - message + "\nrelated locations: $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@.", // + "Related locations: $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, MethodDoc()), "MethodDoc", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, ClassDoc()), "ClassDoc", // package, "package", // diff --git a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected index 132d2722dcf..b3de04f0551 100644 --- a/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.expected @@ -1,13 +1,13 @@ -| PluginImpl.java:5:27:5:37 | name | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:27:5:37 | name | CallContext | hudson/Plugin.java:5:5:5:31 | /** Configure method doc */ | MethodDoc | hudson/Plugin.java:3:1:3:17 | /** Plugin doc */ | ClassDoc | file://hudson:1:1:1:1 | hudson | package | file://Plugin:1:1:1:1 | Plugin | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| PluginImpl.java:5:40:5:51 | value | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:40:5:51 | value | CallContext | hudson/Plugin.java:5:5:5:31 | /** Configure method doc */ | MethodDoc | hudson/Plugin.java:3:1:3:17 | /** Plugin doc */ | ClassDoc | file://hudson:1:1:1:1 | hudson | package | file://Plugin:1:1:1:1 | Plugin | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[1]:1:1:1:1 | Parameter[1] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:18:3:18:11 | reference | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:18:3:18:24 | set(...) | CallContext | Test.java:18:3:18:11 | reference | MethodDoc | Test.java:18:3:18:11 | reference | ClassDoc | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:23:3:23:10 | supplier | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:23:3:23:16 | get(...) | CallContext | Test.java:23:3:23:10 | supplier | MethodDoc | Test.java:23:3:23:10 | supplier | ClassDoc | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:23:3:23:16 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:23:3:23:16 | get(...) | CallContext | Test.java:23:3:23:16 | get(...) | MethodDoc | Test.java:23:3:23:16 | get(...) | ClassDoc | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:27:3:31:3 | copy(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | Test.java:27:3:31:3 | copy(...) | MethodDoc | Test.java:27:3:31:3 | copy(...) | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:35:10:37:3 | newInputStream(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | Test.java:35:10:37:3 | newInputStream(...) | MethodDoc | Test.java:35:10:37:3 | newInputStream(...) | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:36:4:36:11 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | Test.java:36:4:36:11 | openPath | MethodDoc | Test.java:36:4:36:11 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:42:4:42:22 | get(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:42:4:42:22 | get(...) | CallContext | Test.java:42:4:42:22 | get(...) | MethodDoc | Test.java:42:4:42:22 | get(...) | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:53:3:58:3 | walk(...) | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | Test.java:53:3:58:3 | walk(...) | MethodDoc | Test.java:53:3:58:3 | walk(...) | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| Test.java:55:4:55:4 | o | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | Test.java:53:3:58:3 | walk(...) | MethodDoc | Test.java:53:3:58:3 | walk(...) | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:62:3:62:3 | c | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:62:3:62:20 | getInputStream(...) | CallContext | Test.java:62:3:62:3 | c | MethodDoc | Test.java:62:3:62:3 | c | ClassDoc | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| Test.java:67:30:67:47 | writer | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:67:30:67:47 | writer | CallContext | Test.java:67:30:67:47 | writer | MethodDoc | Test.java:67:30:67:47 | writer | ClassDoc | file://java.lang:1:1:1:1 | java.lang | package | file://Throwable:1:1:1:1 | Throwable | type | file://true:1:1:1:1 | true | subtypes | file://printStackTrace:1:1:1:1 | printStackTrace | name | file://(PrintWriter):1:1:1:1 | (PrintWriter) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| PluginImpl.java:5:27:5:37 | name | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:27:5:37 | name | CallContext | hudson/Plugin.java:5:5:5:31 | /** Configure method doc */ | MethodDoc | hudson/Plugin.java:3:1:3:17 | /** Plugin doc */ | ClassDoc | file://hudson:1:1:1:1 | hudson | package | file://Plugin:1:1:1:1 | Plugin | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| PluginImpl.java:5:40:5:51 | value | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | PluginImpl.java:5:40:5:51 | value | CallContext | hudson/Plugin.java:5:5:5:31 | /** Configure method doc */ | MethodDoc | hudson/Plugin.java:3:1:3:17 | /** Plugin doc */ | ClassDoc | file://hudson:1:1:1:1 | hudson | package | file://Plugin:1:1:1:1 | Plugin | type | file://true:1:1:1:1 | true | subtypes | file://configure:1:1:1:1 | configure | name | file://(String,String):1:1:1:1 | (String,String) | signature | file://:1:1:1:1 | | input | file://Parameter[1]:1:1:1:1 | Parameter[1] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:18:3:18:11 | reference | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:18:3:18:24 | set(...) | CallContext | Test.java:18:3:18:11 | reference | MethodDoc | Test.java:18:3:18:11 | reference | ClassDoc | file://java.util.concurrent.atomic:1:1:1:1 | java.util.concurrent.atomic | package | file://AtomicReference:1:1:1:1 | AtomicReference | type | file://false:1:1:1:1 | false | subtypes | file://set:1:1:1:1 | set | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:23:3:23:10 | supplier | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:23:3:23:16 | get(...) | CallContext | Test.java:23:3:23:10 | supplier | MethodDoc | Test.java:23:3:23:10 | supplier | ClassDoc | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:23:3:23:16 | get(...) | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:23:3:23:16 | get(...) | CallContext | Test.java:23:3:23:16 | get(...) | MethodDoc | Test.java:23:3:23:16 | get(...) | ClassDoc | file://java.util.function:1:1:1:1 | java.util.function | package | file://Supplier:1:1:1:1 | Supplier | type | file://true:1:1:1:1 | true | subtypes | file://get:1:1:1:1 | get | name | file://():1:1:1:1 | () | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:27:3:31:3 | copy(...) | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:27:3:31:3 | copy(...) | CallContext | Test.java:27:3:31:3 | copy(...) | MethodDoc | Test.java:27:3:31:3 | copy(...) | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,Path,CopyOption[]):1:1:1:1 | (Path,Path,CopyOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:35:10:37:3 | newInputStream(...) | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | Test.java:35:10:37:3 | newInputStream(...) | MethodDoc | Test.java:35:10:37:3 | newInputStream(...) | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:36:4:36:11 | openPath | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:35:10:37:3 | newInputStream(...) | CallContext | Test.java:36:4:36:11 | openPath | MethodDoc | Test.java:36:4:36:11 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:42:4:42:22 | get(...) | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:42:4:42:22 | get(...) | CallContext | Test.java:42:4:42:22 | get(...) | MethodDoc | Test.java:42:4:42:22 | get(...) | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Paths:1:1:1:1 | Paths | type | file://false:1:1:1:1 | false | subtypes | file://get:1:1:1:1 | get | name | file://(String,String[]):1:1:1:1 | (String,String[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:53:3:58:3 | walk(...) | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | Test.java:53:3:58:3 | walk(...) | MethodDoc | Test.java:53:3:58:3 | walk(...) | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| Test.java:55:4:55:4 | o | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:53:3:58:3 | walk(...) | CallContext | Test.java:53:3:58:3 | walk(...) | MethodDoc | Test.java:53:3:58:3 | walk(...) | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://walk:1:1:1:1 | walk | name | file://(Path,FileVisitOption[]):1:1:1:1 | (Path,FileVisitOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://true:1:1:1:1 | true | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:62:3:62:3 | c | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:62:3:62:20 | getInputStream(...) | CallContext | Test.java:62:3:62:3 | c | MethodDoc | Test.java:62:3:62:3 | c | ClassDoc | file://java.net:1:1:1:1 | java.net | package | file://URLConnection:1:1:1:1 | URLConnection | type | file://true:1:1:1:1 | true | subtypes | file://getInputStream:1:1:1:1 | getInputStream | name | file://():1:1:1:1 | () | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| Test.java:67:30:67:47 | writer | Related locations: $@, $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | Test.java:67:30:67:47 | writer | CallContext | Test.java:67:30:67:47 | writer | MethodDoc | Test.java:67:30:67:47 | writer | ClassDoc | file://java.lang:1:1:1:1 | java.lang | package | file://Throwable:1:1:1:1 | Throwable | type | file://true:1:1:1:1 | true | subtypes | file://printStackTrace:1:1:1:1 | printStackTrace | name | file://(PrintWriter):1:1:1:1 | (PrintWriter) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://false:1:1:1:1 | false | isVarargsArray | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected index fbb777e4063..5a49fea4b98 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected @@ -1,15 +1,15 @@ -| com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | MethodDoc | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | MethodDoc | com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| java/nio/file/Files.java:12:24:12:27 | copy | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:12:24:12:27 | copy | MethodDoc | java/nio/file/Files.java:12:24:12:27 | copy | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| java/nio/file/Files.java:14:9:14:24 | out | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:14:9:14:24 | out | MethodDoc | java/nio/file/Files.java:14:9:14:24 | out | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://out:1:1:1:1 | out | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| java/nio/file/Files.java:24:31:24:44 | newInputStream | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:24:31:24:44 | newInputStream | MethodDoc | java/nio/file/Files.java:24:31:24:44 | newInputStream | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| java/nio/file/Files.java:25:9:25:21 | openPath | command-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://openPath:1:1:1:1 | openPath | parameterName | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| java/nio/file/Files.java:26:9:26:29 | options | command-injection, path-injection, request-forgery, sql-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:26:9:26:29 | options | MethodDoc | java/nio/file/Files.java:26:9:26:29 | options | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://options:1:1:1:1 | options | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | MethodDoc | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | MethodDoc | com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:12:24:12:27 | copy | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:12:24:12:27 | copy | MethodDoc | java/nio/file/Files.java:12:24:12:27 | copy | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| java/nio/file/Files.java:14:9:14:24 | out | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:14:9:14:24 | out | MethodDoc | java/nio/file/Files.java:14:9:14:24 | out | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://out:1:1:1:1 | out | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:24:31:24:44 | newInputStream | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:24:31:24:44 | newInputStream | MethodDoc | java/nio/file/Files.java:24:31:24:44 | newInputStream | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| java/nio/file/Files.java:25:9:25:21 | openPath | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://openPath:1:1:1:1 | openPath | parameterName | file://ai-manual:1:1:1:1 | ai-manual | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:26:9:26:29 | options | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:26:9:26:29 | options | MethodDoc | java/nio/file/Files.java:26:9:26:29 | options | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[1]:1:1:1:1 | Argument[1] | input | file://:1:1:1:1 | | output | file://options:1:1:1:1 | options | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | From 86e50699dca5e7076e0befe63c0d5ca9b63b54e6 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 13 Sep 2023 10:31:49 +0200 Subject: [PATCH 652/788] Java: Automodel format --- .../src/AutomodelFrameworkModeExtractPositiveExamples.ql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql index 730ac7ae786..55ee8d6d56e 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql @@ -15,7 +15,8 @@ private import AutomodelJavaUtil from Endpoint endpoint, SinkType sinkType, FrameworkModeMetadataExtractor meta, DollarAtString package, DollarAtString type, DollarAtString subtypes, DollarAtString name, DollarAtString signature, - DollarAtString input, DollarAtString output, DollarAtString parameterName, DollarAtString extensibleType + DollarAtString input, DollarAtString output, DollarAtString parameterName, + DollarAtString extensibleType where endpoint.getExtensibleType() = extensibleType and // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly From 8ea8123bd5b1eb55baf47a0d9b8abbe8a3b91f67 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 13 Sep 2023 10:37:43 +0200 Subject: [PATCH 653/788] Java: Automodel ql-for-ql --- .../automodel/src/AutomodelApplicationModeExtractCandidates.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql index fcb1089e393..0d6814dbd01 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql @@ -81,7 +81,7 @@ where meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and includeAutomodelCandidate(package, type, name, signature) select endpoint.asNode(), - "related locations: $@, $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@.", // + "Related locations: $@, $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, CallContext()), "CallContext", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, MethodDoc()), "MethodDoc", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, ClassDoc()), "ClassDoc", // From 7f084c90c5436f1af78ad8a16a7bfcbac2b4f985 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 13 Sep 2023 10:46:46 +0200 Subject: [PATCH 654/788] Java: automodel fr mode: add overloadable parameter candidates --- .../AutomodelFrameworkModeCharacteristics.qll | 31 ++++++++++++++++++- ...delFrameworkModeExtractCandidates.expected | 2 ++ .../com/github/codeql/test/PublicClass.java | 4 +-- .../github/codeql/test/PublicInterface.java | 2 +- 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index 436dc0321d1..1aaf7bec3a6 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -26,7 +26,15 @@ newtype JavaRelatedLocationType = newtype TFrameworkModeEndpoint = TExplicitParameter(Parameter p) or TQualifier(Callable c) or - TReturnValue(Callable c) + TReturnValue(Callable c) or + TOverloadableParameter(Method m, Parameter p) { + p.getCallable() = m and + m instanceof ModelExclusions::ModelApi and + m.fromSource() and + not m.getDeclaringType().isFinal() and + not m.isFinal() and + not m.isStatic() + } /** * A framework mode endpoint. @@ -135,6 +143,27 @@ class ReturnValue extends FrameworkModeEndpoint, TReturnValue { override string getExtensibleType() { result = "sourceModel" } } +class OverloadableParameter extends FrameworkModeEndpoint, TOverloadableParameter { + Method method; + Parameter param; + + OverloadableParameter() { this = TOverloadableParameter(method, param) } + + override int getIndex() { result = param.getPosition() } + + override string getMaDInput() { none() } + + override string getMaDOutput() { result = "Parameter[" + param.getPosition() + "]" } + + override string getParamName() { result = param.getName() } + + override Callable getEnclosingCallable() { result = method } + + override Top asTop() { result = param } + + override string getExtensibleType() { result = "sourceModel" } +} + /** * A candidates implementation for framework mode. * diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected index 5a49fea4b98..f06f040c121 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected @@ -1,10 +1,12 @@ | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | MethodDoc | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | MethodDoc | com/github/codeql/test/PublicInterface.java:6:24:6:34 | staticStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:6:36:6:45 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java index 7a0a68509cb..b595b2469bd 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java @@ -1,11 +1,11 @@ package com.github.codeql.test; public class PublicClass { - public void stuff(String arg) { // `arg` is a candidate, `this` is a candidate + public void stuff(String arg) { // `arg` is a sink candidate, `this` is a candidate, `arg` is a source candidate (overrideable method) System.out.println(arg); } // method stuff is a candidate source - public static void staticStuff(String arg) { // `arg` is a candidate, `this` is not a candidate (static method) + public static void staticStuff(String arg) { // `arg` is a candidate, `this` is not a candidate (static method), `arg` is not a source candidate (static methods can not be overloaded) System.out.println(arg); } // method staticStuff is a candidate source diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicInterface.java b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicInterface.java index 7dad7fc878a..275d839cf97 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicInterface.java +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicInterface.java @@ -1,7 +1,7 @@ package com.github.codeql.test; public interface PublicInterface { - public void stuff(String arg); // `arg` is a candidate, `this` is a candidate, method stuff is a candidate source + public void stuff(String arg); // `arg` is a candidate, `this` is a candidate, method stuff is a candidate source, `arg` is a source candidate (overrideable method) public static void staticStuff(String arg) { // `arg` is a candidate, `this` is not a candidate (static method) System.out.println(arg); From 6121faf671f58d3c9e9bb57fada66ea85fea0aa5 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 13 Sep 2023 14:11:50 +0200 Subject: [PATCH 655/788] Java: Automodel: fr mode: connect new endpoints with MaD models --- .../AutomodelFrameworkModeCharacteristics.qll | 22 +++++++++++++++++-- ...meworkModeExtractNegativeExamples.expected | 4 +++- .../java/io/File.java | 4 ++-- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index 1aaf7bec3a6..10c4b583dd7 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -199,12 +199,20 @@ module FrameworkCandidatesImpl implements SharedCharacteristics::CandidateSig { } predicate isSource(Endpoint e, string kind, string provenance) { - none() // TODO: implement + exists(string package, string type, string name, string signature, string ext, string output | + sourceSpec(e, package, type, name, signature, ext, output) and + ExternalFlow::sourceModel(package, type, _, name, [signature, ""], ext, output, kind, + provenance) + ) } predicate isNeutral(Endpoint e) { exists(string package, string type, string name, string signature | - sinkSpec(e, package, type, name, signature, _, _) and + ( + sinkSpec(e, package, type, name, signature, _, _) + or + sourceSpec(e, package, type, name, signature, _, _) + ) and ExternalFlow::neutralModel(package, type, name, [signature, ""], "sink", _) ) } @@ -218,6 +226,16 @@ module FrameworkCandidatesImpl implements SharedCharacteristics::CandidateSig { input = e.getMaDInput() } + additional predicate sourceSpec( + Endpoint e, string package, string type, string name, string signature, string ext, + string output + ) { + e.getEnclosingCallable().hasQualifiedName(package, type, name) and + signature = ExternalFlow::paramsString(e.getEnclosingCallable()) and + ext = "" and + output = e.getMaDOutput() + } + /** * Gets the related location for the given endpoint. * diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected index f22421735e9..f25088b17ac 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected @@ -1,2 +1,4 @@ -| java/io/File.java:4:9:4:17 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:9:4:17 | compareTo | MethodDoc | java/io/File.java:4:9:4:17 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://pathname:1:1:1:1 | pathname | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://pathname:1:1:1:1 | pathname | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/java/io/File.java b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/java/io/File.java index fa812d47efd..019faa74537 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/java/io/File.java +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/java/io/File.java @@ -1,9 +1,9 @@ package java.io; public class File { - int compareTo( // `this` is a negative example - this is modeled as a neutral model + public int compareTo( // `this` is a negative example - this is modeled as a neutral model File pathname // negative example - this is modeled as a neutral model ) { return 0; - } + } // also a negative example for ReturnValue source } From dee387622e86e555016f2d3bc980a8b61e58d679 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 13 Sep 2023 14:24:06 +0200 Subject: [PATCH 656/788] Java: Automodel: rename overloadable -> overridable --- .../automodel/src/AutomodelFrameworkModeCharacteristics.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index 10c4b583dd7..0c9abe69592 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -27,7 +27,7 @@ newtype TFrameworkModeEndpoint = TExplicitParameter(Parameter p) or TQualifier(Callable c) or TReturnValue(Callable c) or - TOverloadableParameter(Method m, Parameter p) { + TOverridableParameter(Method m, Parameter p) { p.getCallable() = m and m instanceof ModelExclusions::ModelApi and m.fromSource() and @@ -143,11 +143,11 @@ class ReturnValue extends FrameworkModeEndpoint, TReturnValue { override string getExtensibleType() { result = "sourceModel" } } -class OverloadableParameter extends FrameworkModeEndpoint, TOverloadableParameter { +class OverridableParameter extends FrameworkModeEndpoint, TOverridableParameter { Method method; Parameter param; - OverloadableParameter() { this = TOverloadableParameter(method, param) } + OverridableParameter() { this = TOverridableParameter(method, param) } override int getIndex() { result = param.getPosition() } From 2be5b1955f99dcd9ac0068b3eaf0b06f6cfdff21 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 13 Sep 2023 14:36:43 +0200 Subject: [PATCH 657/788] Java: Automodel fr mode: add support for qualifier source candidates --- .../AutomodelFrameworkModeCharacteristics.qll | 27 +++++++++++++++++++ ...delFrameworkModeExtractCandidates.expected | 2 ++ ...meworkModeExtractNegativeExamples.expected | 1 + 3 files changed, 30 insertions(+) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index 0c9abe69592..171cba9998d 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -34,6 +34,13 @@ newtype TFrameworkModeEndpoint = not m.getDeclaringType().isFinal() and not m.isFinal() and not m.isStatic() + } or + TOverridableQualifier(Method m) { + m instanceof ModelExclusions::ModelApi and + m.fromSource() and + not m.getDeclaringType().isFinal() and + not m.isFinal() and + not m.isStatic() } /** @@ -164,6 +171,26 @@ class OverridableParameter extends FrameworkModeEndpoint, TOverridableParameter override string getExtensibleType() { result = "sourceModel" } } +class OverridableQualifier extends FrameworkModeEndpoint, TOverridableQualifier { + Method m; + + OverridableQualifier() { this = TOverridableQualifier(m) } + + override int getIndex() { result = -1 } + + override string getMaDInput() { none() } + + override string getMaDOutput() { result = "Parameter[this]" } + + override string getParamName() { result = "this" } + + override Callable getEnclosingCallable() { result = m } + + override Top asTop() { result = m } + + override string getExtensibleType() { result = "sourceModel" } +} + /** * A candidates implementation for framework mode. * diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected index f06f040c121..6b511b1ced4 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected @@ -1,9 +1,11 @@ +| com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://Parameter[this]:1:1:1:1 | Parameter[this] | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | MethodDoc | com/github/codeql/test/PublicClass.java:4:15:4:19 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | MethodDoc | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://Parameter[this]:1:1:1:1 | Parameter[this] | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | MethodDoc | com/github/codeql/test/PublicInterface.java:4:23:4:32 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected index f25088b17ac..6ce9d81c5fd 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected @@ -1,3 +1,4 @@ +| java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://Parameter[this]:1:1:1:1 | Parameter[this] | output | file://this:1:1:1:1 | this | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://pathname:1:1:1:1 | pathname | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | From e71563e5405613e6f6212c5255e4e89e2e5cf4dc Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 13 Sep 2023 14:39:06 +0200 Subject: [PATCH 658/788] Java: Automodel fr mode: remove superfluous module --- .../AutomodelFrameworkModeCharacteristics.qll | 36 +++++-------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index 171cba9998d..1026959870d 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -247,8 +247,8 @@ module FrameworkCandidatesImpl implements SharedCharacteristics::CandidateSig { additional predicate sinkSpec( Endpoint e, string package, string type, string name, string signature, string ext, string input ) { - FrameworkModeGetCallable::getCallable(e).hasQualifiedName(package, type, name) and - signature = ExternalFlow::paramsString(FrameworkModeGetCallable::getCallable(e)) and + e.getEnclosingCallable().hasQualifiedName(package, type, name) and + signature = ExternalFlow::paramsString(e.getEnclosingCallable()) and ext = "" and input = e.getMaDInput() } @@ -270,28 +270,13 @@ module FrameworkCandidatesImpl implements SharedCharacteristics::CandidateSig { */ RelatedLocation getRelatedLocation(Endpoint e, RelatedLocationType type) { type = MethodDoc() and - result = FrameworkModeGetCallable::getCallable(e).(Documentable).getJavadoc() + result = e.getEnclosingCallable().(Documentable).getJavadoc() or type = ClassDoc() and - result = FrameworkModeGetCallable::getCallable(e).getDeclaringType().(Documentable).getJavadoc() + result = e.getEnclosingCallable().getDeclaringType().(Documentable).getJavadoc() } } -private class JavaCallable = Callable; - -private module FrameworkModeGetCallable implements AutomodelSharedGetCallable::GetCallableSig { - class Callable = JavaCallable; - - class Endpoint = FrameworkCandidatesImpl::Endpoint; - - /** - * Returns the callable that contains the given endpoint. - * - * Each Java mode should implement this predicate. - */ - Callable getCallable(Endpoint e) { result = e.getEnclosingCallable() } -} - module CharacteristicsImpl = SharedCharacteristics::SharedCharacteristics; class EndpointCharacteristic = CharacteristicsImpl::EndpointCharacteristic; @@ -341,8 +326,8 @@ private class UnexploitableIsCharacteristic extends CharacteristicsImpl::NotASin override predicate appliesToEndpoint(Endpoint e) { not FrameworkCandidatesImpl::isSink(e, _, _) and - FrameworkModeGetCallable::getCallable(e).getName().matches("is%") and - FrameworkModeGetCallable::getCallable(e).getReturnType() instanceof BooleanType + e.getEnclosingCallable().getName().matches("is%") and + e.getEnclosingCallable().getReturnType() instanceof BooleanType } } @@ -360,7 +345,7 @@ private class UnexploitableExistsCharacteristic extends CharacteristicsImpl::Not override predicate appliesToEndpoint(Endpoint e) { not FrameworkCandidatesImpl::isSink(e, _, _) and exists(Callable callable | - callable = FrameworkModeGetCallable::getCallable(e) and + callable = e.getEnclosingCallable() and callable.getName().toLowerCase() = ["exists", "notexists"] and callable.getReturnType() instanceof BooleanType ) @@ -374,8 +359,7 @@ private class ExceptionCharacteristic extends CharacteristicsImpl::NotASinkChara ExceptionCharacteristic() { this = "exception" } override predicate appliesToEndpoint(Endpoint e) { - FrameworkModeGetCallable::getCallable(e).getDeclaringType().getASupertype*() instanceof - TypeThrowable + e.getEnclosingCallable().getDeclaringType().getASupertype*() instanceof TypeThrowable } } @@ -399,9 +383,7 @@ private class NonPublicMethodCharacteristic extends CharacteristicsImpl::Uninter { NonPublicMethodCharacteristic() { this = "non-public method" } - override predicate appliesToEndpoint(Endpoint e) { - not FrameworkModeGetCallable::getCallable(e).isPublic() - } + override predicate appliesToEndpoint(Endpoint e) { not e.getEnclosingCallable().isPublic() } } /** From 5d608acd0bd2f91691ee56295af574659bb73197 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Wed, 13 Sep 2023 17:17:59 +0200 Subject: [PATCH 659/788] Java: Automodel framework mode, fix query string --- .../AutomodelFrameworkModeExtractNegativeExamples.ql | 2 +- .../AutomodelFrameworkModeExtractPositiveExamples.ql | 2 +- ...omodelFrameworkModeExtractNegativeExamples.expected | 10 +++++----- ...omodelFrameworkModeExtractPositiveExamples.expected | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql index 38f0d27f591..cf58fccac80 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql @@ -39,7 +39,7 @@ where ) and message = characteristic select endpoint, - message + "\nrelated locations: $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@.", // + message + "\nrelated locations: $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, MethodDoc()), "MethodDoc", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, ClassDoc()), "ClassDoc", // package, "package", // diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql index 55ee8d6d56e..5a538128f2b 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql @@ -26,7 +26,7 @@ where // Extract positive examples of sinks belonging to the existing ATM query configurations. CharacteristicsImpl::isKnownAs(endpoint, sinkType, _) select endpoint, - sinkType + "\nrelated locations: $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@.", // + sinkType + "\nrelated locations: $@, $@." + "\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@.", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, MethodDoc()), "MethodDoc", // CharacteristicsImpl::getRelatedLocationOrCandidate(endpoint, ClassDoc()), "ClassDoc", // package, "package", // diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected index 6ce9d81c5fd..bd8f468c226 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractNegativeExamples.expected @@ -1,5 +1,5 @@ -| java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://Parameter[this]:1:1:1:1 | Parameter[this] | output | file://this:1:1:1:1 | this | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://pathname:1:1:1:1 | pathname | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | -| java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://pathname:1:1:1:1 | pathname | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://Parameter[this]:1:1:1:1 | Parameter[this] | output | file://this:1:1:1:1 | this | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| java/io/File.java:4:16:4:24 | compareTo | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:4:16:4:24 | compareTo | MethodDoc | java/io/File.java:4:16:4:24 | compareTo | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://pathname:1:1:1:1 | pathname | parameterName | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| java/io/File.java:5:9:5:21 | pathname | known non-sink\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/io/File.java:5:9:5:21 | pathname | MethodDoc | java/io/File.java:5:9:5:21 | pathname | ClassDoc | file://java.io:1:1:1:1 | java.io | package | file://File:1:1:1:1 | File | type | file://true:1:1:1:1 | true | subtypes | file://compareTo:1:1:1:1 | compareTo | name | file://(File):1:1:1:1 | (File) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://pathname:1:1:1:1 | pathname | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected index a73185b86a1..dcef63fd4bf 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractPositiveExamples.expected @@ -1,2 +1,2 @@ -| java/nio/file/Files.java:13:9:13:19 | source | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:13:9:13:19 | source | MethodDoc | java/nio/file/Files.java:13:9:13:19 | source | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://source:1:1:1:1 | source | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | -| java/nio/file/Files.java:25:9:25:21 | openPath | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://openPath:1:1:1:1 | openPath | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:13:9:13:19 | source | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:13:9:13:19 | source | MethodDoc | java/nio/file/Files.java:13:9:13:19 | source | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://copy:1:1:1:1 | copy | name | file://(Path,OutputStream):1:1:1:1 | (Path,OutputStream) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://source:1:1:1:1 | source | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| java/nio/file/Files.java:25:9:25:21 | openPath | path-injection\nrelated locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@. | java/nio/file/Files.java:25:9:25:21 | openPath | MethodDoc | java/nio/file/Files.java:25:9:25:21 | openPath | ClassDoc | file://java.nio.file:1:1:1:1 | java.nio.file | package | file://Files:1:1:1:1 | Files | type | file://false:1:1:1:1 | false | subtypes | file://newInputStream:1:1:1:1 | newInputStream | name | file://(Path,OpenOption[]):1:1:1:1 | (Path,OpenOption[]) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://openPath:1:1:1:1 | openPath | parameterName | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | From 32502d5e2cfa37a22159761c26bac84a815ad072 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Mon, 18 Sep 2023 12:19:47 +0000 Subject: [PATCH 660/788] Java: Automodel, remove erroneousEndpoints predicate from production queries --- ...utomodelApplicationModeCharacteristics.qll | 69 ------------------- ...lApplicationModeExtractNegativeExamples.ql | 3 - ...lApplicationModeExtractPositiveExamples.ql | 3 - .../AutomodelFrameworkModeCharacteristics.qll | 69 ------------------- ...delFrameworkModeExtractNegativeExamples.ql | 3 - ...delFrameworkModeExtractPositiveExamples.ql | 3 - 6 files changed, 150 deletions(-) diff --git a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll index e1877a0868e..f8f2c8aaf58 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll @@ -569,72 +569,3 @@ private class CannotBeTaintedCharacteristic extends CharacteristicsImpl::LikelyN FlowSummaryImpl::Private::Steps::summarySetterStep(_, _, e.asNode(), _) } } - -/** - * Holds if the given endpoint has a self-contradictory combination of characteristics. Detects errors in our endpoint - * characteristics. Lists the problematic characteristics and their implications for all such endpoints, together with - * an error message indicating why this combination is problematic. - * - * Copied from - * javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/ContradictoryEndpointCharacteristics.ql - */ -predicate erroneousEndpoints( - Endpoint endpoint, EndpointCharacteristic characteristic, - AutomodelEndpointTypes::EndpointType endpointType, float confidence, string errorMessage, - boolean ignoreKnownModelingErrors -) { - // An endpoint's characteristics should not include positive indicators with medium/high confidence for more than one - // sink/source type (including the negative type). - exists( - EndpointCharacteristic characteristic2, AutomodelEndpointTypes::EndpointType endpointClass2, - float confidence2 - | - endpointType != endpointClass2 and - ( - endpointType instanceof AutomodelEndpointTypes::SinkType and - endpointClass2 instanceof AutomodelEndpointTypes::SinkType - or - endpointType instanceof AutomodelEndpointTypes::SourceType and - endpointClass2 instanceof AutomodelEndpointTypes::SourceType - ) and - characteristic.appliesToEndpoint(endpoint) and - characteristic2.appliesToEndpoint(endpoint) and - characteristic.hasImplications(endpointType, true, confidence) and - characteristic2.hasImplications(endpointClass2, true, confidence2) and - confidence > SharedCharacteristics::mediumConfidence() and - confidence2 > SharedCharacteristics::mediumConfidence() and - ( - ignoreKnownModelingErrors = true and - not knownOverlappingCharacteristics(characteristic, characteristic2) - or - ignoreKnownModelingErrors = false - ) - ) and - errorMessage = "Endpoint has high-confidence positive indicators for multiple classes" - or - // An endpoint's characteristics should not include positive indicators with medium/high confidence for some class and - // also include negative indicators with medium/high confidence for this same class. - exists(EndpointCharacteristic characteristic2, float confidence2 | - characteristic.appliesToEndpoint(endpoint) and - characteristic2.appliesToEndpoint(endpoint) and - characteristic.hasImplications(endpointType, true, confidence) and - characteristic2.hasImplications(endpointType, false, confidence2) and - confidence > SharedCharacteristics::mediumConfidence() and - confidence2 > SharedCharacteristics::mediumConfidence() - ) and - ignoreKnownModelingErrors = false and - errorMessage = "Endpoint has high-confidence positive and negative indicators for the same class" -} - -/** - * Holds if `characteristic1` and `characteristic2` are among the pairs of currently known positive characteristics that - * have some overlap in their results. This indicates a problem with the underlying Java modeling. Specifically, - * `PathCreation` is prone to FPs. - */ -private predicate knownOverlappingCharacteristics( - EndpointCharacteristic characteristic1, EndpointCharacteristic characteristic2 -) { - characteristic1 != characteristic2 and - characteristic1 = ["mad taint step", "create path", "read file", "known non-sink"] and - characteristic2 = ["mad taint step", "create path", "read file", "known non-sink"] -} diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql index 39be10e2354..1ce6e779d03 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractNegativeExamples.ql @@ -50,9 +50,6 @@ where extensibleType = endpoint.getExtensibleType() and confidence >= SharedCharacteristics::highConfidence() and characteristic.hasImplications(any(NegativeSinkType negative), true, confidence) and - // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly - // certain about in the prompt. - not erroneousEndpoints(endpoint, _, _, _, _, false) and meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and // It's valid for a node to satisfy the logic for both `isSink` and `isSanitizer`, but in that case it will be // treated by the actual query as a sanitizer, since the final logic is something like diff --git a/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql index 603cba1f2ee..7a152b44205 100644 --- a/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelApplicationModeExtractPositiveExamples.ql @@ -18,9 +18,6 @@ from DollarAtString signature, DollarAtString input, DollarAtString output, DollarAtString isVarargsArray, DollarAtString extensibleType where - // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly - // certain about in the prompt. - not erroneousEndpoints(endpoint, _, _, _, _, false) and extensibleType = endpoint.getExtensibleType() and meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and // Extract positive examples of sinks belonging to the existing ATM query configurations. diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index 1026959870d..fce6e8d57f6 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -385,72 +385,3 @@ private class NonPublicMethodCharacteristic extends CharacteristicsImpl::Uninter override predicate appliesToEndpoint(Endpoint e) { not e.getEnclosingCallable().isPublic() } } - -/** - * Holds if the given endpoint has a self-contradictory combination of characteristics. Detects errors in our endpoint - * characteristics. Lists the problematic characteristics and their implications for all such endpoints, together with - * an error message indicating why this combination is problematic. - * - * Copied from - * javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/ContradictoryEndpointCharacteristics.ql - */ -predicate erroneousEndpoints( - Endpoint endpoint, EndpointCharacteristic characteristic, - AutomodelEndpointTypes::EndpointType endpointType, float confidence, string errorMessage, - boolean ignoreKnownModelingErrors -) { - // An endpoint's characteristics should not include positive indicators with medium/high confidence for more than one - // sink/source type (including the negative type). - exists( - EndpointCharacteristic characteristic2, AutomodelEndpointTypes::EndpointType endpointClass2, - float confidence2 - | - endpointType != endpointClass2 and - ( - endpointType instanceof AutomodelEndpointTypes::SinkType and - endpointClass2 instanceof AutomodelEndpointTypes::SinkType - or - endpointType instanceof AutomodelEndpointTypes::SourceType and - endpointClass2 instanceof AutomodelEndpointTypes::SourceType - ) and - characteristic.appliesToEndpoint(endpoint) and - characteristic2.appliesToEndpoint(endpoint) and - characteristic.hasImplications(endpointType, true, confidence) and - characteristic2.hasImplications(endpointClass2, true, confidence2) and - confidence > SharedCharacteristics::mediumConfidence() and - confidence2 > SharedCharacteristics::mediumConfidence() and - ( - ignoreKnownModelingErrors = true and - not knownOverlappingCharacteristics(characteristic, characteristic2) - or - ignoreKnownModelingErrors = false - ) - ) and - errorMessage = "Endpoint has high-confidence positive indicators for multiple classes" - or - // An endpoint's characteristics should not include positive indicators with medium/high confidence for some class and - // also include negative indicators with medium/high confidence for this same class. - exists(EndpointCharacteristic characteristic2, float confidence2 | - characteristic.appliesToEndpoint(endpoint) and - characteristic2.appliesToEndpoint(endpoint) and - characteristic.hasImplications(endpointType, true, confidence) and - characteristic2.hasImplications(endpointType, false, confidence2) and - confidence > SharedCharacteristics::mediumConfidence() and - confidence2 > SharedCharacteristics::mediumConfidence() - ) and - ignoreKnownModelingErrors = false and - errorMessage = "Endpoint has high-confidence positive and negative indicators for the same class" -} - -/** - * Holds if `characteristic1` and `characteristic2` are among the pairs of currently known positive characteristics that - * have some overlap in their results. This indicates a problem with the underlying Java modeling. Specifically, - * `PathCreation` is prone to FPs. - */ -private predicate knownOverlappingCharacteristics( - EndpointCharacteristic characteristic1, EndpointCharacteristic characteristic2 -) { - characteristic1 != characteristic2 and - characteristic1 = ["mad taint step", "create path", "read file", "known non-sink"] and - characteristic2 = ["mad taint step", "create path", "read file", "known non-sink"] -} diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql index cf58fccac80..3cb23096015 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractNegativeExamples.ql @@ -23,9 +23,6 @@ where characteristic.appliesToEndpoint(endpoint) and confidence >= SharedCharacteristics::highConfidence() and characteristic.hasImplications(any(NegativeSinkType negative), true, confidence) and - // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly - // certain about in the prompt. - not erroneousEndpoints(endpoint, _, _, _, _, false) and meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, parameterName) and // It's valid for a node to satisfy the logic for both `isSink` and `isSanitizer`, but in that case it will be // treated by the actual query as a sanitizer, since the final logic is something like diff --git a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql index 5a538128f2b..a20c239e275 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql +++ b/java/ql/automodel/src/AutomodelFrameworkModeExtractPositiveExamples.ql @@ -19,9 +19,6 @@ from DollarAtString extensibleType where endpoint.getExtensibleType() = extensibleType and - // Exclude endpoints that have contradictory endpoint characteristics, because we only want examples we're highly - // certain about in the prompt. - not erroneousEndpoints(endpoint, _, _, _, _, false) and meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, parameterName) and // Extract positive examples of sinks belonging to the existing ATM query configurations. CharacteristicsImpl::isKnownAs(endpoint, sinkType, _) From 9f7f2ab70ec77da1198f05dc02b68bf7958d3d87 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 26 Sep 2023 10:31:23 +0200 Subject: [PATCH 661/788] remove redundant fromSource calls Co-authored-by: @tausbn --- java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index fce6e8d57f6..c209ad7b73a 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -30,14 +30,12 @@ newtype TFrameworkModeEndpoint = TOverridableParameter(Method m, Parameter p) { p.getCallable() = m and m instanceof ModelExclusions::ModelApi and - m.fromSource() and not m.getDeclaringType().isFinal() and not m.isFinal() and not m.isStatic() } or TOverridableQualifier(Method m) { m instanceof ModelExclusions::ModelApi and - m.fromSource() and not m.getDeclaringType().isFinal() and not m.isFinal() and not m.isStatic() From 53b3755e50f8ce3c8057336056de03989f3b6bed Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 26 Sep 2023 10:31:43 +0200 Subject: [PATCH 662/788] remove now-unused getIndex predicate Co-authored-by: @tausbn --- .../AutomodelFrameworkModeCharacteristics.qll | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index c209ad7b73a..ac0dfa1e5db 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -45,11 +45,6 @@ newtype TFrameworkModeEndpoint = * A framework mode endpoint. */ abstract class FrameworkModeEndpoint extends TFrameworkModeEndpoint { - /** - * Returns the parameter index of the endpoint. - */ - abstract int getIndex(); - /** * Gets the input (if any) for this endpoint, eg.: `Argument[0]`. * @@ -88,8 +83,6 @@ class ExplicitParameterEndpoint extends FrameworkModeEndpoint, TExplicitParamete ExplicitParameterEndpoint() { this = TExplicitParameter(param) and param.fromSource() } - override int getIndex() { result = param.getPosition() } - override string getMaDInput() { result = "Argument[" + param.getPosition() + "]" } override string getMaDOutput() { none() } @@ -110,8 +103,6 @@ class QualifierEndpoint extends FrameworkModeEndpoint, TQualifier { this = TQualifier(callable) and not callable.isStatic() and callable.fromSource() } - override int getIndex() { result = -1 } - override string getMaDInput() { result = "Argument[this]" } override string getMaDOutput() { none() } @@ -130,11 +121,6 @@ class ReturnValue extends FrameworkModeEndpoint, TReturnValue { ReturnValue() { this = TReturnValue(callable) and callable.fromSource() } - override int getIndex() { - // FIXME bogus value - result = -1 - } - override string getMaDInput() { none() } override string getMaDOutput() { result = "ReturnValue" } @@ -154,8 +140,6 @@ class OverridableParameter extends FrameworkModeEndpoint, TOverridableParameter OverridableParameter() { this = TOverridableParameter(method, param) } - override int getIndex() { result = param.getPosition() } - override string getMaDInput() { none() } override string getMaDOutput() { result = "Parameter[" + param.getPosition() + "]" } @@ -174,8 +158,6 @@ class OverridableQualifier extends FrameworkModeEndpoint, TOverridableQualifier OverridableQualifier() { this = TOverridableQualifier(m) } - override int getIndex() { result = -1 } - override string getMaDInput() { none() } override string getMaDOutput() { result = "Parameter[this]" } From 26267b72d411cd97379882c7397a83674091f9c0 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Tue, 26 Sep 2023 10:41:24 +0200 Subject: [PATCH 663/788] driveby: bug fix in automodel alert sink util --- java/ql/automodel/src/AutomodelAlertSinkUtil.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/automodel/src/AutomodelAlertSinkUtil.qll b/java/ql/automodel/src/AutomodelAlertSinkUtil.qll index 8082a1efc5e..47a53956656 100644 --- a/java/ql/automodel/src/AutomodelAlertSinkUtil.qll +++ b/java/ql/automodel/src/AutomodelAlertSinkUtil.qll @@ -96,7 +96,7 @@ class PotentialSinkModelExpr extends Expr { or this = call.getQualifier() and argIdx = -1 ) and - input = getArgumentForIndex(argIdx) and + (if argIdx = -1 then input = "Argument[this]" else input = "Argument[" + argIdx + "]") and package = callable.getDeclaringType().getPackage().getName() and type = callable.getDeclaringType().getErasure().(RefType).nestedName() and subtypes = considerSubtypes(callable) and From aa64390af78ae999823b2cd112089ec1b39a03f9 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 26 Sep 2023 10:54:45 +0200 Subject: [PATCH 664/788] Python: add more tests --- python/ql/test/library-tests/regexparser/locations.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/python/ql/test/library-tests/regexparser/locations.py b/python/ql/test/library-tests/regexparser/locations.py index a7a9b38d130..090bab85f19 100644 --- a/python/ql/test/library-tests/regexparser/locations.py +++ b/python/ql/test/library-tests/regexparser/locations.py @@ -67,6 +67,13 @@ re.compile( # $ location=1:2 SPURIOUS:location=1:23 MISSING:location=3:7 ' and [this] is another test' ) +# multiple parts of different kinds +re.compile( # $ location=1:2 SPURIOUS:location=1:23 location=1:50 location=1:81 MISSING:location=1:28 location=2:11 location=3:8 +'[this] is a test' ''' and [this] is another test''' +br""" and [this] is yet another test""" +r' and [this] is one more' +) + # actual multiline string re.compile( # $ SPURIOUS:location=1:6 location=1:27 MISSING:location=2:1 location=3:5 r''' From c1ebde4288fbdaa5fd01d68d058517cd9bf13621 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 26 Sep 2023 12:08:50 +0200 Subject: [PATCH 665/788] Python: improve location computation --- python/ql/lib/semmle/python/AstExtended.qll | 18 +++++++++ .../semmle/python/regexp/RegexTreeView.qll | 37 +++++++++++++++++++ .../library-tests/regexparser/locations.py | 8 ++-- 3 files changed, 59 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/AstExtended.qll b/python/ql/lib/semmle/python/AstExtended.qll index f201a9c9fc9..97f6a5629a0 100644 --- a/python/ql/lib/semmle/python/AstExtended.qll +++ b/python/ql/lib/semmle/python/AstExtended.qll @@ -154,6 +154,24 @@ class StringPart extends StringPart_, AstNode { override string toString() { result = StringPart_.super.toString() } override Location getLocation() { result = StringPart_.super.getLocation() } + + /** Holds if the content of string `StringPart` is surrounded by `prefix` and `quote`. */ + predicate context(string prefix, string quote) { + exists(int occurrenceOffset | + quote = this.getText().regexpFind("\"{3}|\"{1}|'{3}|'{1}", 0, occurrenceOffset) and + prefix = this.getText().prefix(occurrenceOffset + quote.length()) + ) + } + + /** + * Gets the length of the content, that is the text between the prefix and the quote. + * See `context` for obtaining the prefix and the quote. + */ + int getContentLenght() { + exists(string prefix, string quote | this.context(prefix, quote) | + result = this.getText().length() - prefix.length() - quote.length() + ) + } } class StringPartList extends StringPartList_ { } diff --git a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll index 86aad44fc93..3c1e86397b7 100644 --- a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll +++ b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll @@ -223,16 +223,53 @@ module Impl implements RegexTreeViewSig { */ Location getLocation() { result = re.getLocation() } + /** Gets the accumulated length of string parts with lower index than `index`, if any. */ + private int getPartOffset(int index) { + index = 0 and result = 0 + or + index > 0 and + exists(int previousOffset | previousOffset = this.getPartOffset(index - 1) | + result = + previousOffset + re.(StrConst).getImplicitlyConcatenatedPart(index - 1).getContentLenght() + ) + } + + /** + * Gets the `StringPart` in which this `RegExpTerm` resides, if any. + * `localOffset` will be the offset of this `RegExpTerm` inside `result`. + */ + StringPart getPart(int localOffset) { + exists(int index, int prefixLength | index = max(int i | this.getPartOffset(i) < start) | + result = re.(StrConst).getImplicitlyConcatenatedPart(index) and + exists(string prefix | result.context(prefix, _) | prefixLength = prefix.length()) and + // Example: + // re.compile('...' r"""...this..""") + // - `start` is the offset from `(` to `this` as counted after concatenating all parts. + // - we subtract the lenght of the previous `StringPart`s, `'...'`, to know how far into this `StringPart` we go. + // - as the prefix 'r"""' is part of the `StringPart`, `this` is found that much further in. + localOffset = start - this.getPartOffset(index) + prefixLength + ) + } + /** Holds if this term is found at the specified location offsets. */ predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { + not exists(this.getPart(_)) and exists(int re_start, int prefix_len | prefix_len = re.getPrefix().length() | re.getLocation().hasLocationInfo(filepath, startline, re_start, endline, _) and startcolumn = re_start + start + prefix_len and endcolumn = re_start + end + prefix_len - 1 /* inclusive vs exclusive */ ) + or + exists(StringPart part, int localOffset | part = this.getPart(localOffset) | + filepath = part.getLocation().getFile().getAbsolutePath() and + startline = part.getLocation().getStartLine() and + startcolumn = part.getLocation().getStartColumn() + localOffset and + endline = startline and + endcolumn = (end - start) + startcolumn + ) } /** Gets the file in which this term is found. */ diff --git a/python/ql/test/library-tests/regexparser/locations.py b/python/ql/test/library-tests/regexparser/locations.py index 090bab85f19..cf5ca09d861 100644 --- a/python/ql/test/library-tests/regexparser/locations.py +++ b/python/ql/test/library-tests/regexparser/locations.py @@ -50,25 +50,25 @@ br'''[this] is a test''' ) # plain string with multiple parts -re.compile( # $ location=1:2 SPURIOUS:location=1:23 MISSING:location=1:26 +re.compile( # $ location=1:2 location=1:26 '[this] is a test' ' and [this] is another test' ) # plain string with multiple parts across lines -re.compile( # $ location=1:2 SPURIOUS:location=1:23 MISSING:location=2:7 +re.compile( # $ location=1:2 location=2:7 '[this] is a test' ' and [this] is another test' ) # plain string with multiple parts across lines and comments -re.compile( # $ location=1:2 SPURIOUS:location=1:23 MISSING:location=3:7 +re.compile( # $ location=1:2 location=3:7 '[this] is a test' # comment ' and [this] is another test' ) # multiple parts of different kinds -re.compile( # $ location=1:2 SPURIOUS:location=1:23 location=1:50 location=1:81 MISSING:location=1:28 location=2:11 location=3:8 +re.compile( # $ location=1:2 location=1:28 location=2:11 location=3:8 '[this] is a test' ''' and [this] is another test''' br""" and [this] is yet another test""" r' and [this] is one more' From d10b181d8930ec14fd278c807bbf2c399dd297af Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 26 Sep 2023 12:13:07 +0200 Subject: [PATCH 666/788] Python: add change note --- .../2023-09-26-regex-locations-in-string-parts.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 python/ql/lib/change-notes/2023-09-26-regex-locations-in-string-parts.md diff --git a/python/ql/lib/change-notes/2023-09-26-regex-locations-in-string-parts.md b/python/ql/lib/change-notes/2023-09-26-regex-locations-in-string-parts.md new file mode 100644 index 00000000000..32bdc1db15c --- /dev/null +++ b/python/ql/lib/change-notes/2023-09-26-regex-locations-in-string-parts.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Regular expression fragments residing inside implicitly concatenated strings now have better location information. From 82f5a0272921ec422499d8aee0405d4be4e11625 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 26 Sep 2023 12:28:00 +0200 Subject: [PATCH 667/788] C#: Add readonly modifier to fields during stub generation. --- .../StubVisitor.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs index ef6d1a890ec..880c14888ef 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs @@ -306,7 +306,14 @@ internal sealed class StubVisitor : SymbolVisitor StubModifiers(symbol); if (symbol.IsConst) + { stubWriter.Write("const "); + } + + if (!symbol.IsConst && symbol.IsReadOnly) + { + stubWriter.Write("readonly "); + } if (IsUnsafe(symbol.Type)) { @@ -317,7 +324,9 @@ internal sealed class StubVisitor : SymbolVisitor stubWriter.Write(" "); stubWriter.Write(EscapeIdentifier(symbol.Name)); if (symbol.IsConst) + { stubWriter.Write(" = default"); + } stubWriter.WriteLine(";"); } From d00ff9665cbdec68c608c33a1a1b4e3b2b0f31f8 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 26 Sep 2023 12:28:23 +0200 Subject: [PATCH 668/788] C#: Update .NET and ASP.NET stubs. --- .../Microsoft.AspNetCore.Antiforgery.cs | 2 +- ...osoft.AspNetCore.Authentication.Cookies.cs | 10 +- ...crosoft.AspNetCore.Authentication.OAuth.cs | 12 +- .../Microsoft.AspNetCore.Components.Forms.cs | 4 +- .../Microsoft.AspNetCore.Components.cs | 26 +- .../Microsoft.AspNetCore.Cors.cs | 22 +- ...crosoft.AspNetCore.Hosting.Abstractions.cs | 36 +- .../Microsoft.AspNetCore.Html.Abstractions.cs | 4 +- .../Microsoft.AspNetCore.Http.Abstractions.cs | 36 +- ...soft.AspNetCore.Http.Connections.Common.cs | 2 +- .../Microsoft.AspNetCore.Http.cs | 4 +- .../Microsoft.AspNetCore.Identity.cs | 8 +- .../Microsoft.AspNetCore.Localization.cs | 4 +- .../Microsoft.AspNetCore.Mvc.Abstractions.cs | 24 +- .../Microsoft.AspNetCore.Mvc.Core.cs | 18 +- ...Microsoft.AspNetCore.Mvc.Formatters.Xml.cs | 2 +- .../Microsoft.AspNetCore.Mvc.Razor.cs | 2 +- .../Microsoft.AspNetCore.Mvc.TagHelpers.cs | 6 +- .../Microsoft.AspNetCore.Mvc.ViewFeatures.cs | 18 +- ...icrosoft.AspNetCore.ResponseCompression.cs | 2 +- .../Microsoft.AspNetCore.Routing.cs | 10 +- .../Microsoft.AspNetCore.Session.cs | 4 +- .../Microsoft.AspNetCore.SignalR.Common.cs | 6 +- ...t.Extensions.Configuration.Abstractions.cs | 2 +- .../Microsoft.Extensions.Configuration.Xml.cs | 2 +- .../Microsoft.Extensions.Features.cs | 2 +- ...Microsoft.Extensions.FileSystemGlobbing.cs | 4 +- ...crosoft.Extensions.Hosting.Abstractions.cs | 18 +- .../Microsoft.Extensions.Identity.Core.cs | 8 +- ...crosoft.Extensions.Logging.Abstractions.cs | 4 +- .../Microsoft.Extensions.Options.cs | 6 +- .../Microsoft.Extensions.Primitives.cs | 4 +- .../Microsoft.Net.Http.Headers.cs | 216 ++++----- .../Microsoft.Win32.Registry.cs | 12 +- .../System.Collections.Immutable.cs | 12 +- .../System.ComponentModel.Annotations.cs | 2 +- .../System.ComponentModel.Primitives.cs | 70 +-- .../System.ComponentModel.TypeConverter.cs | 208 ++++---- .../System.Data.Common.cs | 264 +++++----- .../System.Diagnostics.StackTrace.cs | 26 +- .../System.Drawing.Primitives.cs | 14 +- .../System.Formats.Asn1.cs | 26 +- .../System.Linq.Expressions.cs | 4 +- .../Microsoft.NETCore.App/System.Memory.cs | 2 +- .../System.Net.NetworkInformation.cs | 2 +- .../System.Net.Primitives.cs | 24 +- .../System.Net.Security.cs | 6 +- .../System.ObjectModel.cs | 2 +- .../System.Reflection.Metadata.cs | 20 +- .../System.Reflection.Primitives.cs | 452 +++++++++--------- .../System.Runtime.InteropServices.cs | 4 +- .../System.Runtime.Numerics.cs | 10 +- .../Microsoft.NETCore.App/System.Runtime.cs | 144 +++--- .../System.Security.AccessControl.cs | 8 +- .../System.Security.Principal.Windows.cs | 4 +- .../System.Text.RegularExpressions.cs | 2 +- .../System.Transactions.Local.cs | 2 +- .../System.Xml.ReaderWriter.cs | 2 +- .../System.Xml.XDocument.cs | 8 +- 59 files changed, 929 insertions(+), 929 deletions(-) diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Antiforgery.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Antiforgery.cs index 3dc5f8e285f..e6b5558f6ec 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Antiforgery.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Antiforgery.cs @@ -10,7 +10,7 @@ namespace Microsoft { public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set { } } public AntiforgeryOptions() => throw null; - public static string DefaultCookiePrefix; + public static readonly string DefaultCookiePrefix; public string FormFieldName { get => throw null; set { } } public string HeaderName { get => throw null; set { } } public bool SuppressXFrameOptionsHeader { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs index a14a87efaa6..f52d184425b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs @@ -20,12 +20,12 @@ namespace Microsoft } public static class CookieAuthenticationDefaults { - public static Microsoft.AspNetCore.Http.PathString AccessDeniedPath; + public static readonly Microsoft.AspNetCore.Http.PathString AccessDeniedPath; public const string AuthenticationScheme = default; - public static string CookiePrefix; - public static Microsoft.AspNetCore.Http.PathString LoginPath; - public static Microsoft.AspNetCore.Http.PathString LogoutPath; - public static string ReturnUrlParameter; + public static readonly string CookiePrefix; + public static readonly Microsoft.AspNetCore.Http.PathString LoginPath; + public static readonly Microsoft.AspNetCore.Http.PathString LogoutPath; + public static readonly string ReturnUrlParameter; } public class CookieAuthenticationEvents { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.OAuth.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.OAuth.cs index 550dc9339f3..1829994bbe5 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.OAuth.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.OAuth.cs @@ -74,7 +74,7 @@ namespace Microsoft public OAuthChallengeProperties(System.Collections.Generic.IDictionary items) => throw null; public OAuthChallengeProperties(System.Collections.Generic.IDictionary items, System.Collections.Generic.IDictionary parameters) => throw null; public System.Collections.Generic.ICollection Scope { get => throw null; set { } } - public static string ScopeKey; + public static readonly string ScopeKey; public virtual void SetScope(params string[] scopes) => throw null; } public class OAuthCodeExchangeContext @@ -86,10 +86,10 @@ namespace Microsoft } public static class OAuthConstants { - public static string CodeChallengeKey; - public static string CodeChallengeMethodKey; - public static string CodeChallengeMethodS256; - public static string CodeVerifierKey; + public static readonly string CodeChallengeKey; + public static readonly string CodeChallengeMethodKey; + public static readonly string CodeChallengeMethodS256; + public static readonly string CodeVerifierKey; } public class OAuthCreatingTicketContext : Microsoft.AspNetCore.Authentication.ResultContext { @@ -107,7 +107,7 @@ namespace Microsoft } public static class OAuthDefaults { - public static string DisplayName; + public static readonly string DisplayName; } public class OAuthEvents : Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs index 17f5ef3093f..1d21f8f700b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.Forms.cs @@ -81,12 +81,12 @@ namespace Microsoft public sealed class ValidationRequestedEventArgs : System.EventArgs { public ValidationRequestedEventArgs() => throw null; - public static Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs Empty; + public static readonly Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs Empty; } public sealed class ValidationStateChangedEventArgs : System.EventArgs { public ValidationStateChangedEventArgs() => throw null; - public static Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs Empty; + public static readonly Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs Empty; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs index 6553e26080e..5015bd3a9f9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Components.cs @@ -189,8 +189,8 @@ namespace Microsoft public struct EventCallback { public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Empty; - public static Microsoft.AspNetCore.Components.EventCallbackFactory Factory; + public static readonly Microsoft.AspNetCore.Components.EventCallback Empty; + public static readonly Microsoft.AspNetCore.Components.EventCallbackFactory Factory; public bool HasDelegate { get => throw null; } public System.Threading.Tasks.Task InvokeAsync(object arg) => throw null; public System.Threading.Tasks.Task InvokeAsync() => throw null; @@ -198,7 +198,7 @@ namespace Microsoft public struct EventCallback { public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) => throw null; - public static Microsoft.AspNetCore.Components.EventCallback Empty; + public static readonly Microsoft.AspNetCore.Components.EventCallback Empty; public bool HasDelegate { get => throw null; } public System.Threading.Tasks.Task InvokeAsync(TValue arg) => throw null; public System.Threading.Tasks.Task InvokeAsync() => throw null; @@ -297,7 +297,7 @@ namespace Microsoft public struct EventCallbackWorkItem { public EventCallbackWorkItem(System.MulticastDelegate @delegate) => throw null; - public static Microsoft.AspNetCore.Components.EventCallbackWorkItem Empty; + public static readonly Microsoft.AspNetCore.Components.EventCallbackWorkItem Empty; public System.Threading.Tasks.Task InvokeAsync(object arg) => throw null; } public sealed class EventHandlerAttribute : System.Attribute @@ -543,9 +543,9 @@ namespace Microsoft } public struct ArrayRange { - public T[] Array; + public readonly T[] Array; public Microsoft.AspNetCore.Components.RenderTree.ArrayRange Clone() => throw null; - public int Count; + public readonly int Count; public ArrayRange(T[] array, int count) => throw null; } public class EventFieldInfo @@ -585,16 +585,16 @@ namespace Microsoft } public struct RenderTreeDiff { - public int ComponentId; - public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment Edits; + public readonly int ComponentId; + public readonly Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment Edits; } public struct RenderTreeEdit { - public int MoveToSiblingIndex; - public int ReferenceFrameIndex; - public string RemovedAttributeName; - public int SiblingIndex; - public Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType Type; + public readonly int MoveToSiblingIndex; + public readonly int ReferenceFrameIndex; + public readonly string RemovedAttributeName; + public readonly int SiblingIndex; + public readonly Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType Type; } public enum RenderTreeEditType { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs index 191ace4dc60..ccee0b3f991 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cors.cs @@ -39,17 +39,17 @@ namespace Microsoft { public static class CorsConstants { - public static string AccessControlAllowCredentials; - public static string AccessControlAllowHeaders; - public static string AccessControlAllowMethods; - public static string AccessControlAllowOrigin; - public static string AccessControlExposeHeaders; - public static string AccessControlMaxAge; - public static string AccessControlRequestHeaders; - public static string AccessControlRequestMethod; - public static string AnyOrigin; - public static string Origin; - public static string PreflightHttpMethod; + public static readonly string AccessControlAllowCredentials; + public static readonly string AccessControlAllowHeaders; + public static readonly string AccessControlAllowMethods; + public static readonly string AccessControlAllowOrigin; + public static readonly string AccessControlExposeHeaders; + public static readonly string AccessControlMaxAge; + public static readonly string AccessControlRequestHeaders; + public static readonly string AccessControlRequestMethod; + public static readonly string AnyOrigin; + public static readonly string Origin; + public static readonly string PreflightHttpMethod; } public class CorsMiddleware { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Abstractions.cs index 62a895eb0fe..e03088e509d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Hosting.Abstractions.cs @@ -8,9 +8,9 @@ namespace Microsoft { public static class EnvironmentName { - public static string Development; - public static string Production; - public static string Staging; + public static readonly string Development; + public static readonly string Production; + public static readonly string Staging; } public static partial class HostingAbstractionsWebHostBuilderExtensions { @@ -106,21 +106,21 @@ namespace Microsoft } public static class WebHostDefaults { - public static string ApplicationKey; - public static string CaptureStartupErrorsKey; - public static string ContentRootKey; - public static string DetailedErrorsKey; - public static string EnvironmentKey; - public static string HostingStartupAssembliesKey; - public static string HostingStartupExcludeAssembliesKey; - public static string PreferHostingUrlsKey; - public static string PreventHostingStartupKey; - public static string ServerUrlsKey; - public static string ShutdownTimeoutKey; - public static string StartupAssemblyKey; - public static string StaticWebAssetsKey; - public static string SuppressStatusMessagesKey; - public static string WebRootKey; + public static readonly string ApplicationKey; + public static readonly string CaptureStartupErrorsKey; + public static readonly string ContentRootKey; + public static readonly string DetailedErrorsKey; + public static readonly string EnvironmentKey; + public static readonly string HostingStartupAssembliesKey; + public static readonly string HostingStartupExcludeAssembliesKey; + public static readonly string PreferHostingUrlsKey; + public static readonly string PreventHostingStartupKey; + public static readonly string ServerUrlsKey; + public static readonly string ShutdownTimeoutKey; + public static readonly string StartupAssemblyKey; + public static readonly string StaticWebAssetsKey; + public static readonly string SuppressStatusMessagesKey; + public static readonly string WebRootKey; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs index 2831ac4f365..29d3345ccc6 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Html.Abstractions.cs @@ -41,8 +41,8 @@ namespace Microsoft public class HtmlString : Microsoft.AspNetCore.Html.IHtmlContent { public HtmlString(string value) => throw null; - public static Microsoft.AspNetCore.Html.HtmlString Empty; - public static Microsoft.AspNetCore.Html.HtmlString NewLine; + public static readonly Microsoft.AspNetCore.Html.HtmlString Empty; + public static readonly Microsoft.AspNetCore.Html.HtmlString NewLine; public override string ToString() => throw null; public string Value { get => throw null; } public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs index 07a76d1afcd..4942f7cb9fb 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs @@ -190,7 +190,7 @@ namespace Microsoft public int Count { get => throw null; } public EndpointMetadataCollection(System.Collections.Generic.IEnumerable items) => throw null; public EndpointMetadataCollection(params object[] items) => throw null; - public static Microsoft.AspNetCore.Http.EndpointMetadataCollection Empty; + public static readonly Microsoft.AspNetCore.Http.EndpointMetadataCollection Empty; public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public object Current { get => throw null; } @@ -220,7 +220,7 @@ namespace Microsoft public struct FragmentString : System.IEquatable { public FragmentString(string value) => throw null; - public static Microsoft.AspNetCore.Http.FragmentString Empty; + public static readonly Microsoft.AspNetCore.Http.FragmentString Empty; public bool Equals(Microsoft.AspNetCore.Http.FragmentString other) => throw null; public override bool Equals(object obj) => throw null; public static Microsoft.AspNetCore.Http.FragmentString FromUriComponent(string uriComponent) => throw null; @@ -277,12 +277,12 @@ namespace Microsoft } public static class HttpMethods { - public static string Connect; - public static string Delete; + public static readonly string Connect; + public static readonly string Delete; public static bool Equals(string methodA, string methodB) => throw null; - public static string Get; + public static readonly string Get; public static string GetCanonicalizedValue(string method) => throw null; - public static string Head; + public static readonly string Head; public static bool IsConnect(string method) => throw null; public static bool IsDelete(string method) => throw null; public static bool IsGet(string method) => throw null; @@ -292,20 +292,20 @@ namespace Microsoft public static bool IsPost(string method) => throw null; public static bool IsPut(string method) => throw null; public static bool IsTrace(string method) => throw null; - public static string Options; - public static string Patch; - public static string Post; - public static string Put; - public static string Trace; + public static readonly string Options; + public static readonly string Patch; + public static readonly string Post; + public static readonly string Put; + public static readonly string Trace; } public static class HttpProtocol { public static string GetHttpProtocol(System.Version version) => throw null; - public static string Http09; - public static string Http10; - public static string Http11; - public static string Http2; - public static string Http3; + public static readonly string Http09; + public static readonly string Http10; + public static readonly string Http11; + public static readonly string Http2; + public static readonly string Http3; public static bool IsHttp09(string protocol) => throw null; public static bool IsHttp10(string protocol) => throw null; public static bool IsHttp11(string protocol) => throw null; @@ -504,7 +504,7 @@ namespace Microsoft public Microsoft.AspNetCore.Http.PathString Add(Microsoft.AspNetCore.Http.PathString other) => throw null; public string Add(Microsoft.AspNetCore.Http.QueryString other) => throw null; public PathString(string value) => throw null; - public static Microsoft.AspNetCore.Http.PathString Empty; + public static readonly Microsoft.AspNetCore.Http.PathString Empty; public bool Equals(Microsoft.AspNetCore.Http.PathString other) => throw null; public bool Equals(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType) => throw null; public override bool Equals(object obj) => throw null; @@ -545,7 +545,7 @@ namespace Microsoft public static Microsoft.AspNetCore.Http.QueryString Create(System.Collections.Generic.IEnumerable> parameters) => throw null; public static Microsoft.AspNetCore.Http.QueryString Create(System.Collections.Generic.IEnumerable> parameters) => throw null; public QueryString(string value) => throw null; - public static Microsoft.AspNetCore.Http.QueryString Empty; + public static readonly Microsoft.AspNetCore.Http.QueryString Empty; public bool Equals(Microsoft.AspNetCore.Http.QueryString other) => throw null; public override bool Equals(object obj) => throw null; public static Microsoft.AspNetCore.Http.QueryString FromUriComponent(string uriComponent) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.Common.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.Common.cs index 74626520238..348243d2ab1 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.Common.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Connections.Common.cs @@ -16,7 +16,7 @@ namespace Microsoft } public static class HttpTransports { - public static Microsoft.AspNetCore.Http.Connections.HttpTransportType All; + public static readonly Microsoft.AspNetCore.Http.Connections.HttpTransportType All; } [System.Flags] public enum HttpTransportType diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs index 9896e9ad054..55679d1be75 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs @@ -205,7 +205,7 @@ namespace Microsoft public bool ContainsKey(string key) => throw null; public int Count { get => throw null; } public FormCollection(System.Collections.Generic.Dictionary fields, Microsoft.AspNetCore.Http.IFormFileCollection files = default(Microsoft.AspNetCore.Http.IFormFileCollection)) => throw null; - public static Microsoft.AspNetCore.Http.FormCollection Empty; + public static readonly Microsoft.AspNetCore.Http.FormCollection Empty; public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } @@ -301,7 +301,7 @@ namespace Microsoft public QueryCollection(System.Collections.Generic.Dictionary store) => throw null; public QueryCollection(Microsoft.AspNetCore.Http.QueryCollection store) => throw null; public QueryCollection(int capacity) => throw null; - public static Microsoft.AspNetCore.Http.QueryCollection Empty; + public static readonly Microsoft.AspNetCore.Http.QueryCollection Empty; public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs index dd5cc7c5a00..6573a884fec 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Identity.cs @@ -48,11 +48,11 @@ namespace Microsoft } public class IdentityConstants { - public static string ApplicationScheme; + public static readonly string ApplicationScheme; public IdentityConstants() => throw null; - public static string ExternalScheme; - public static string TwoFactorRememberMeScheme; - public static string TwoFactorUserIdScheme; + public static readonly string ExternalScheme; + public static readonly string TwoFactorRememberMeScheme; + public static readonly string TwoFactorUserIdScheme; } public static partial class IdentityCookieAuthenticationBuilderExtensions { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.cs index af979895770..72671ac4b4c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Localization.cs @@ -44,7 +44,7 @@ namespace Microsoft { public string CookieName { get => throw null; set { } } public CookieRequestCultureProvider() => throw null; - public static string DefaultCookieName; + public static readonly string DefaultCookieName; public override System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; public static string MakeCookieValue(Microsoft.AspNetCore.Localization.RequestCulture requestCulture) => throw null; public static Microsoft.AspNetCore.Localization.ProviderCultureResult ParseCookieValue(string value) => throw null; @@ -98,7 +98,7 @@ namespace Microsoft { protected RequestCultureProvider() => throw null; public abstract System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext); - protected static System.Threading.Tasks.Task NullProviderCultureResult; + protected static readonly System.Threading.Tasks.Task NullProviderCultureResult; public Microsoft.AspNetCore.Builder.RequestLocalizationOptions Options { get => throw null; set { } } } public class RequestLocalizationMiddleware diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs index 05c7f76e799..49bdbe152e6 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Abstractions.cs @@ -467,27 +467,27 @@ namespace Microsoft } public class BindingSource : System.IEquatable { - public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Body; + public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Body; public virtual bool CanAcceptDataFrom(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; public BindingSource(string id, string displayName, bool isGreedy, bool isFromRequest) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Custom; + public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Custom; public string DisplayName { get => throw null; } public bool Equals(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource other) => throw null; public override bool Equals(object obj) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Form; - public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource FormFile; + public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Form; + public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource FormFile; public override int GetHashCode() => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Header; + public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Header; public string Id { get => throw null; } public bool IsFromRequest { get => throw null; } public bool IsGreedy { get => throw null; } - public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource ModelBinding; + public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource ModelBinding; public static bool operator ==(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s2) => throw null; public static bool operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s2) => throw null; - public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Path; - public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Query; - public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Services; - public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Special; + public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Path; + public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Query; + public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Services; + public static readonly Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Special; } public class CompositeBindingSource : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource { @@ -674,7 +674,7 @@ namespace Microsoft public abstract bool ConvertEmptyStringToNull { get; } protected ModelMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity identity) => throw null; public abstract string DataTypeName { get; } - public static int DefaultOrder; + public static readonly int DefaultOrder; public abstract string Description { get; } public abstract string DisplayFormatString { get; } public abstract string DisplayName { get; } @@ -753,7 +753,7 @@ namespace Microsoft public ModelStateDictionary() => throw null; public ModelStateDictionary(int maxAllowedErrors) => throw null; public ModelStateDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; - public static int DefaultMaxAllowedErrors; + public static readonly int DefaultMaxAllowedErrors; public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public Enumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs index f3eb72a310c..a75c083d306 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs @@ -91,7 +91,7 @@ namespace Microsoft { public virtual bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) => throw null; public HttpMethodActionConstraint(System.Collections.Generic.IEnumerable httpMethods) => throw null; - public static int HttpMethodConstraintOrder; + public static readonly int HttpMethodConstraintOrder; public System.Collections.Generic.IEnumerable HttpMethods { get => throw null; } public int Order { get => throw null; } } @@ -610,7 +610,7 @@ namespace Microsoft public class ConsumesAttribute : System.Attribute, Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter { public bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context) => throw null; - public static int ConsumesActionConstraintOrder; + public static readonly int ConsumesActionConstraintOrder; public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection ContentTypes { get => throw null; set { } } System.Collections.Generic.IReadOnlyList Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata.ContentTypes { get => throw null; } public ConsumesAttribute(string contentType, params string[] otherContentTypes) => throw null; @@ -1307,11 +1307,11 @@ namespace Microsoft } public static class FilterScope { - public static int Action; - public static int Controller; - public static int First; - public static int Global; - public static int Last; + public static readonly int Action; + public static readonly int Controller; + public static readonly int First; + public static readonly int Global; + public static readonly int Last; } public abstract class ResultFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter { @@ -1458,8 +1458,8 @@ namespace Microsoft public abstract System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context, System.Text.Encoding encoding); protected System.Text.Encoding SelectCharacterEncoding(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) => throw null; public System.Collections.Generic.IList SupportedEncodings { get => throw null; } - protected static System.Text.Encoding UTF16EncodingLittleEndian; - protected static System.Text.Encoding UTF8EncodingWithoutBOM; + protected static readonly System.Text.Encoding UTF16EncodingLittleEndian; + protected static readonly System.Text.Encoding UTF8EncodingWithoutBOM; } public abstract class TextOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs index 1c7ac67c864..2ec083dd601 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs @@ -61,7 +61,7 @@ namespace Microsoft { public ProblemDetailsWrapper() => throw null; public ProblemDetailsWrapper(Microsoft.AspNetCore.Mvc.ProblemDetails problemDetails) => throw null; - protected static string EmptyKey; + protected static readonly string EmptyKey; public System.Xml.Schema.XmlSchema GetSchema() => throw null; protected virtual void ReadValue(System.Xml.XmlReader reader, string name) => throw null; public virtual void ReadXml(System.Xml.XmlReader reader) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs index f5eed35520f..6a400b960cc 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Razor.cs @@ -271,7 +271,7 @@ namespace Microsoft public static string GetNormalizedRouteValue(Microsoft.AspNetCore.Mvc.ActionContext context, string key) => throw null; public Microsoft.AspNetCore.Mvc.Razor.RazorPageResult GetPage(string executingFilePath, string pagePath) => throw null; public Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult GetView(string executingFilePath, string viewPath, bool isMainPage) => throw null; - public static string ViewExtension; + public static readonly string ViewExtension; protected Microsoft.Extensions.Caching.Memory.IMemoryCache ViewLookupCache { get => throw null; } } public class RazorViewEngineOptions diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.TagHelpers.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.TagHelpers.cs index 0c9f17486e9..93589ada683 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.TagHelpers.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.TagHelpers.cs @@ -86,7 +86,7 @@ namespace Microsoft } public class CacheTagHelper : Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase { - public static string CacheKeyPrefix; + public static readonly string CacheKeyPrefix; public CacheTagHelper(Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperMemoryCacheFactory factory, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) : base(default(System.Text.Encodings.Web.HtmlEncoder)) => throw null; protected Microsoft.Extensions.Caching.Memory.IMemoryCache MemoryCache { get => throw null; } public Microsoft.Extensions.Caching.Memory.CacheItemPriority? Priority { get => throw null; set { } } @@ -95,7 +95,7 @@ namespace Microsoft public abstract class CacheTagHelperBase : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public CacheTagHelperBase(System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; - public static System.TimeSpan DefaultExpiration; + public static readonly System.TimeSpan DefaultExpiration; public bool Enabled { get => throw null; set { } } public System.TimeSpan? ExpiresAfter { get => throw null; set { } } public System.DateTimeOffset? ExpiresOn { get => throw null; set { } } @@ -132,7 +132,7 @@ namespace Microsoft } public class DistributedCacheTagHelper : Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase { - public static string CacheKeyPrefix; + public static readonly string CacheKeyPrefix; public DistributedCacheTagHelper(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperService distributedCacheService, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) : base(default(System.Text.Encodings.Web.HtmlEncoder)) => throw null; protected Microsoft.Extensions.Caching.Memory.IMemoryCache MemoryCache { get => throw null; } public string Name { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs index 02e9b1ce85e..64af1faa7eb 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.ViewFeatures.cs @@ -771,7 +771,7 @@ namespace Microsoft public static string GetComponentFullName(System.Reflection.TypeInfo componentType) => throw null; public static string GetComponentName(System.Reflection.TypeInfo componentType) => throw null; public static bool IsComponent(System.Reflection.TypeInfo typeInfo) => throw null; - public static string ViewComponentSuffix; + public static readonly string ViewComponentSuffix; } public class ViewComponentDescriptor { @@ -905,7 +905,7 @@ namespace Microsoft } public class CookieTempDataProvider : Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider { - public static string CookieName; + public static readonly string CookieName; public CookieTempDataProvider(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer tempDataSerializer) => throw null; public System.Collections.Generic.IDictionary LoadTempData(Microsoft.AspNetCore.Http.HttpContext context) => throw null; public void SaveTempData(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IDictionary values) => throw null; @@ -1034,14 +1034,14 @@ namespace Microsoft public Microsoft.AspNetCore.Html.IHtmlContent TextArea(string expression, string value, int rows, int columns, object htmlAttributes) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent TextBox(string expression, object value, string format, object htmlAttributes) => throw null; public System.Text.Encodings.Web.UrlEncoder UrlEncoder { get => throw null; } - public static string ValidationInputCssClassName; - public static string ValidationInputValidCssClassName; + public static readonly string ValidationInputCssClassName; + public static readonly string ValidationInputValidCssClassName; public Microsoft.AspNetCore.Html.IHtmlContent ValidationMessage(string expression, string message, object htmlAttributes, string tag) => throw null; - public static string ValidationMessageCssClassName; - public static string ValidationMessageValidCssClassName; + public static readonly string ValidationMessageCssClassName; + public static readonly string ValidationMessageValidCssClassName; public Microsoft.AspNetCore.Html.IHtmlContent ValidationSummary(bool excludePropertyErrors, string message, object htmlAttributes, string tag) => throw null; - public static string ValidationSummaryCssClassName; - public static string ValidationSummaryValidCssClassName; + public static readonly string ValidationSummaryCssClassName; + public static readonly string ValidationSummaryValidCssClassName; public string Value(string expression, string format) => throw null; public dynamic ViewBag { get => throw null; } public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } @@ -1362,7 +1362,7 @@ namespace Microsoft { public ViewExecutor(Microsoft.Extensions.Options.IOptions viewOptions, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory tempDataFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) => throw null; protected ViewExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine viewEngine, System.Diagnostics.DiagnosticListener diagnosticListener) => throw null; - public static string DefaultContentType; + public static readonly string DefaultContentType; protected System.Diagnostics.DiagnosticListener DiagnosticListener { get => throw null; } public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary tempData, string contentType, int? statusCode) => throw null; protected System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string contentType, int? statusCode) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCompression.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCompression.cs index de463c5e6b5..10b8fe09274 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCompression.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.ResponseCompression.cs @@ -65,7 +65,7 @@ namespace Microsoft public class ResponseCompressionDefaults { public ResponseCompressionDefaults() => throw null; - public static System.Collections.Generic.IEnumerable MimeTypes; + public static readonly System.Collections.Generic.IEnumerable MimeTypes; } public class ResponseCompressionMiddleware { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs index 77dfff1d233..9e3cda66696 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Routing.cs @@ -36,7 +36,7 @@ namespace Microsoft } public static partial class FallbackEndpointRouteBuilderExtensions { - public static string DefaultPattern; + public static readonly string DefaultPattern; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallback(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallback(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; } @@ -471,7 +471,7 @@ namespace Microsoft public int Compare(Microsoft.AspNetCore.Http.Endpoint x, Microsoft.AspNetCore.Http.Endpoint y) => throw null; protected virtual int CompareMetadata(TMetadata x, TMetadata y) => throw null; protected EndpointMetadataComparer() => throw null; - public static Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer Default; + public static readonly Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer Default; protected virtual TMetadata GetMetadata(Microsoft.AspNetCore.Http.Endpoint endpoint) => throw null; } public abstract class EndpointSelector @@ -557,7 +557,7 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList Parameters { get => throw null; } public System.Collections.Generic.IReadOnlyList PathSegments { get => throw null; } public string RawText { get => throw null; } - public static object RequiredValueAny; + public static readonly object RequiredValueAny; public System.Collections.Generic.IReadOnlyDictionary RequiredValues { get => throw null; } } public sealed class RoutePatternException : System.Exception @@ -797,7 +797,7 @@ namespace Microsoft public class RouteValueEqualityComparer : System.Collections.Generic.IEqualityComparer { public RouteValueEqualityComparer() => throw null; - public static Microsoft.AspNetCore.Routing.RouteValueEqualityComparer Default; + public static readonly Microsoft.AspNetCore.Routing.RouteValueEqualityComparer Default; public bool Equals(object x, object y) => throw null; public int GetHashCode(object obj) => throw null; } @@ -956,7 +956,7 @@ namespace Microsoft { public Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; public System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) => throw null; - public static string RouteGroupKey; + public static readonly string RouteGroupKey; public int Version { get => throw null; } } public class UrlMatchingNode diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Session.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Session.cs index 31fd3bc742b..b5211632f84 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Session.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Session.cs @@ -45,8 +45,8 @@ namespace Microsoft } public static class SessionDefaults { - public static string CookieName; - public static string CookiePath; + public static readonly string CookieName; + public static readonly string CookiePath; } public class SessionFeature : Microsoft.AspNetCore.Http.Features.ISessionFeature { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs index 7487185da6a..c1fb3f17877 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs @@ -35,7 +35,7 @@ namespace Microsoft public bool AllowReconnect { get => throw null; } public CloseMessage(string error) => throw null; public CloseMessage(string error, bool allowReconnect) => throw null; - public static Microsoft.AspNetCore.SignalR.Protocol.CloseMessage Empty; + public static readonly Microsoft.AspNetCore.SignalR.Protocol.CloseMessage Empty; public string Error { get => throw null; } } public class CompletionMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage @@ -66,7 +66,7 @@ namespace Microsoft public class HandshakeResponseMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public HandshakeResponseMessage(string error) => throw null; - public static Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage Empty; + public static readonly Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage Empty; public string Error { get => throw null; } } public abstract class HubInvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage @@ -126,7 +126,7 @@ namespace Microsoft } public class PingMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { - public static Microsoft.AspNetCore.SignalR.Protocol.PingMessage Instance; + public static readonly Microsoft.AspNetCore.SignalR.Protocol.PingMessage Instance; } public sealed class RawResult { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Abstractions.cs index fb8f560a5eb..02189892cd2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Abstractions.cs @@ -34,7 +34,7 @@ namespace Microsoft public static string Combine(params string[] pathSegments) => throw null; public static string GetParentPath(string path) => throw null; public static string GetSectionKey(string path) => throw null; - public static string KeyDelimiter; + public static readonly string KeyDelimiter; } public static partial class ConfigurationRootExtensions { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Xml.cs index ff2cd3e4a18..31bd8a48007 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Xml.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Configuration.Xml.cs @@ -23,7 +23,7 @@ namespace Microsoft public System.Xml.XmlReader CreateDecryptingXmlReader(System.IO.Stream input, System.Xml.XmlReaderSettings settings) => throw null; protected XmlDocumentDecryptor() => throw null; protected virtual System.Xml.XmlReader DecryptDocumentAndCreateXmlReader(System.Xml.XmlDocument document) => throw null; - public static Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor Instance; + public static readonly Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor Instance; } public class XmlStreamConfigurationProvider : Microsoft.Extensions.Configuration.StreamConfigurationProvider { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs index f3971d650d3..ac73543be23 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs @@ -28,7 +28,7 @@ namespace Microsoft } public struct FeatureReference { - public static Microsoft.AspNetCore.Http.Features.FeatureReference Default; + public static readonly Microsoft.AspNetCore.Http.Features.FeatureReference Default; public T Fetch(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; public T Update(Microsoft.AspNetCore.Http.Features.IFeatureCollection features, T feature) => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileSystemGlobbing.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileSystemGlobbing.cs index 8b4f5ea9891..9a7f9cf25f2 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileSystemGlobbing.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.FileSystemGlobbing.cs @@ -136,7 +136,7 @@ namespace Microsoft public WildcardPathSegment(string beginsWith, System.Collections.Generic.List contains, string endsWith, System.StringComparison comparisonType) => throw null; public string EndsWith { get => throw null; } public bool Match(string value) => throw null; - public static Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment MatchAll; + public static readonly Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment MatchAll; } } namespace PatternContexts @@ -230,7 +230,7 @@ namespace Microsoft } public struct PatternTestResult { - public static Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Failed; + public static readonly Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Failed; public bool IsSuccessful { get => throw null; } public string Stem { get => throw null; } public static Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Success(string stem) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs index 81f57df6dfc..327bbbcd531 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Hosting.Abstractions.cs @@ -25,15 +25,15 @@ namespace Microsoft } public static class EnvironmentName { - public static string Development; - public static string Production; - public static string Staging; + public static readonly string Development; + public static readonly string Production; + public static readonly string Staging; } public static class Environments { - public static string Development; - public static string Production; - public static string Staging; + public static readonly string Development; + public static readonly string Production; + public static readonly string Staging; } public sealed class HostAbortedException : System.Exception { @@ -50,9 +50,9 @@ namespace Microsoft } public static class HostDefaults { - public static string ApplicationKey; - public static string ContentRootKey; - public static string EnvironmentKey; + public static readonly string ApplicationKey; + public static readonly string ContentRootKey; + public static readonly string EnvironmentKey; } public static partial class HostEnvironmentEnvExtensions { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs index 95a493e54e7..4edd2e5e8c5 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Identity.Core.cs @@ -426,10 +426,10 @@ namespace Microsoft public string ChangeEmailTokenProvider { get => throw null; set { } } public string ChangePhoneNumberTokenProvider { get => throw null; set { } } public TokenOptions() => throw null; - public static string DefaultAuthenticatorProvider; - public static string DefaultEmailProvider; - public static string DefaultPhoneProvider; - public static string DefaultProvider; + public static readonly string DefaultAuthenticatorProvider; + public static readonly string DefaultEmailProvider; + public static readonly string DefaultPhoneProvider; + public static readonly string DefaultProvider; public string EmailConfirmationTokenProvider { get => throw null; set { } } public string PasswordResetTokenProvider { get => throw null; set { } } public System.Collections.Generic.Dictionary ProviderMap { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs index a017f82716a..0436b1d8d7e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Logging.Abstractions.cs @@ -29,7 +29,7 @@ namespace Microsoft { public System.IDisposable BeginScope(TState state) => throw null; public NullLogger() => throw null; - public static Microsoft.Extensions.Logging.Abstractions.NullLogger Instance; + public static readonly Microsoft.Extensions.Logging.Abstractions.NullLogger Instance; public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) => throw null; public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => throw null; } @@ -39,7 +39,7 @@ namespace Microsoft public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; public NullLoggerFactory() => throw null; public void Dispose() => throw null; - public static Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory Instance; + public static readonly Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory Instance; } public class NullLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs index 2e7820b5001..99cc0f5830e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Options.cs @@ -142,7 +142,7 @@ namespace Microsoft public static class Options { public static Microsoft.Extensions.Options.IOptions Create(TOptions options) where TOptions : class => throw null; - public static string DefaultName; + public static readonly string DefaultName; } public class OptionsBuilder where TOptions : class { @@ -353,10 +353,10 @@ namespace Microsoft public bool Failed { get => throw null; set { } } public string FailureMessage { get => throw null; set { } } public System.Collections.Generic.IEnumerable Failures { get => throw null; set { } } - public static Microsoft.Extensions.Options.ValidateOptionsResult Skip; + public static readonly Microsoft.Extensions.Options.ValidateOptionsResult Skip; public bool Skipped { get => throw null; set { } } public bool Succeeded { get => throw null; set { } } - public static Microsoft.Extensions.Options.ValidateOptionsResult Success; + public static readonly Microsoft.Extensions.Options.ValidateOptionsResult Success; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs index e7bab4d5780..911f056c0f9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Primitives.cs @@ -46,7 +46,7 @@ namespace Microsoft public static int Compare(Microsoft.Extensions.Primitives.StringSegment a, Microsoft.Extensions.Primitives.StringSegment b, System.StringComparison comparisonType) => throw null; public StringSegment(string buffer) => throw null; public StringSegment(string buffer, int offset, int length) => throw null; - public static Microsoft.Extensions.Primitives.StringSegment Empty; + public static readonly Microsoft.Extensions.Primitives.StringSegment Empty; public bool EndsWith(string text, System.StringComparison comparisonType) => throw null; public bool Equals(Microsoft.Extensions.Primitives.StringSegment other) => throw null; public static bool Equals(Microsoft.Extensions.Primitives.StringSegment a, Microsoft.Extensions.Primitives.StringSegment b, System.StringComparison comparisonType) => throw null; @@ -121,7 +121,7 @@ namespace Microsoft public int Count { get => throw null; } public StringValues(string value) => throw null; public StringValues(string[] values) => throw null; - public static Microsoft.Extensions.Primitives.StringValues Empty; + public static readonly Microsoft.Extensions.Primitives.StringValues Empty; public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public Enumerator(ref Microsoft.Extensions.Primitives.StringValues values) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs index f0fc81910d2..249ce9c3a06 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Net.Http.Headers.cs @@ -15,33 +15,33 @@ namespace Microsoft public System.Collections.Generic.IList Extensions { get => throw null; } public override int GetHashCode() => throw null; public System.TimeSpan? MaxAge { get => throw null; set { } } - public static string MaxAgeString; + public static readonly string MaxAgeString; public bool MaxStale { get => throw null; set { } } public System.TimeSpan? MaxStaleLimit { get => throw null; set { } } - public static string MaxStaleString; + public static readonly string MaxStaleString; public System.TimeSpan? MinFresh { get => throw null; set { } } - public static string MinFreshString; + public static readonly string MinFreshString; public bool MustRevalidate { get => throw null; set { } } - public static string MustRevalidateString; + public static readonly string MustRevalidateString; public bool NoCache { get => throw null; set { } } public System.Collections.Generic.ICollection NoCacheHeaders { get => throw null; } - public static string NoCacheString; + public static readonly string NoCacheString; public bool NoStore { get => throw null; set { } } - public static string NoStoreString; + public static readonly string NoStoreString; public bool NoTransform { get => throw null; set { } } - public static string NoTransformString; + public static readonly string NoTransformString; public bool OnlyIfCached { get => throw null; set { } } - public static string OnlyIfCachedString; + public static readonly string OnlyIfCachedString; public static Microsoft.Net.Http.Headers.CacheControlHeaderValue Parse(Microsoft.Extensions.Primitives.StringSegment input) => throw null; public bool Private { get => throw null; set { } } public System.Collections.Generic.ICollection PrivateHeaders { get => throw null; } - public static string PrivateString; + public static readonly string PrivateString; public bool ProxyRevalidate { get => throw null; set { } } - public static string ProxyRevalidateString; + public static readonly string ProxyRevalidateString; public bool Public { get => throw null; set { } } - public static string PublicString; + public static readonly string PublicString; public System.TimeSpan? SharedMaxAge { get => throw null; set { } } - public static string SharedMaxAgeString; + public static readonly string SharedMaxAgeString; public override string ToString() => throw null; public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.CacheControlHeaderValue parsedValue) => throw null; } @@ -123,102 +123,102 @@ namespace Microsoft } public static class HeaderNames { - public static string Accept; - public static string AcceptCharset; - public static string AcceptEncoding; - public static string AcceptLanguage; - public static string AcceptRanges; - public static string AccessControlAllowCredentials; - public static string AccessControlAllowHeaders; - public static string AccessControlAllowMethods; - public static string AccessControlAllowOrigin; - public static string AccessControlExposeHeaders; - public static string AccessControlMaxAge; - public static string AccessControlRequestHeaders; - public static string AccessControlRequestMethod; - public static string Age; - public static string Allow; - public static string AltSvc; - public static string Authority; - public static string Authorization; - public static string Baggage; - public static string CacheControl; - public static string Connection; - public static string ContentDisposition; - public static string ContentEncoding; - public static string ContentLanguage; - public static string ContentLength; - public static string ContentLocation; - public static string ContentMD5; - public static string ContentRange; - public static string ContentSecurityPolicy; - public static string ContentSecurityPolicyReportOnly; - public static string ContentType; - public static string Cookie; - public static string CorrelationContext; - public static string Date; - public static string DNT; - public static string ETag; - public static string Expect; - public static string Expires; - public static string From; - public static string GrpcAcceptEncoding; - public static string GrpcEncoding; - public static string GrpcMessage; - public static string GrpcStatus; - public static string GrpcTimeout; - public static string Host; - public static string IfMatch; - public static string IfModifiedSince; - public static string IfNoneMatch; - public static string IfRange; - public static string IfUnmodifiedSince; - public static string KeepAlive; - public static string LastModified; - public static string Link; - public static string Location; - public static string MaxForwards; - public static string Method; - public static string Origin; - public static string Path; - public static string Pragma; - public static string ProxyAuthenticate; - public static string ProxyAuthorization; - public static string ProxyConnection; - public static string Range; - public static string Referer; - public static string RequestId; - public static string RetryAfter; - public static string Scheme; - public static string SecWebSocketAccept; - public static string SecWebSocketExtensions; - public static string SecWebSocketKey; - public static string SecWebSocketProtocol; - public static string SecWebSocketVersion; - public static string Server; - public static string SetCookie; - public static string Status; - public static string StrictTransportSecurity; - public static string TE; - public static string TraceParent; - public static string TraceState; - public static string Trailer; - public static string TransferEncoding; - public static string Translate; - public static string Upgrade; - public static string UpgradeInsecureRequests; - public static string UserAgent; - public static string Vary; - public static string Via; - public static string Warning; - public static string WebSocketSubProtocols; - public static string WWWAuthenticate; - public static string XContentTypeOptions; - public static string XFrameOptions; - public static string XPoweredBy; - public static string XRequestedWith; - public static string XUACompatible; - public static string XXSSProtection; + public static readonly string Accept; + public static readonly string AcceptCharset; + public static readonly string AcceptEncoding; + public static readonly string AcceptLanguage; + public static readonly string AcceptRanges; + public static readonly string AccessControlAllowCredentials; + public static readonly string AccessControlAllowHeaders; + public static readonly string AccessControlAllowMethods; + public static readonly string AccessControlAllowOrigin; + public static readonly string AccessControlExposeHeaders; + public static readonly string AccessControlMaxAge; + public static readonly string AccessControlRequestHeaders; + public static readonly string AccessControlRequestMethod; + public static readonly string Age; + public static readonly string Allow; + public static readonly string AltSvc; + public static readonly string Authority; + public static readonly string Authorization; + public static readonly string Baggage; + public static readonly string CacheControl; + public static readonly string Connection; + public static readonly string ContentDisposition; + public static readonly string ContentEncoding; + public static readonly string ContentLanguage; + public static readonly string ContentLength; + public static readonly string ContentLocation; + public static readonly string ContentMD5; + public static readonly string ContentRange; + public static readonly string ContentSecurityPolicy; + public static readonly string ContentSecurityPolicyReportOnly; + public static readonly string ContentType; + public static readonly string Cookie; + public static readonly string CorrelationContext; + public static readonly string Date; + public static readonly string DNT; + public static readonly string ETag; + public static readonly string Expect; + public static readonly string Expires; + public static readonly string From; + public static readonly string GrpcAcceptEncoding; + public static readonly string GrpcEncoding; + public static readonly string GrpcMessage; + public static readonly string GrpcStatus; + public static readonly string GrpcTimeout; + public static readonly string Host; + public static readonly string IfMatch; + public static readonly string IfModifiedSince; + public static readonly string IfNoneMatch; + public static readonly string IfRange; + public static readonly string IfUnmodifiedSince; + public static readonly string KeepAlive; + public static readonly string LastModified; + public static readonly string Link; + public static readonly string Location; + public static readonly string MaxForwards; + public static readonly string Method; + public static readonly string Origin; + public static readonly string Path; + public static readonly string Pragma; + public static readonly string ProxyAuthenticate; + public static readonly string ProxyAuthorization; + public static readonly string ProxyConnection; + public static readonly string Range; + public static readonly string Referer; + public static readonly string RequestId; + public static readonly string RetryAfter; + public static readonly string Scheme; + public static readonly string SecWebSocketAccept; + public static readonly string SecWebSocketExtensions; + public static readonly string SecWebSocketKey; + public static readonly string SecWebSocketProtocol; + public static readonly string SecWebSocketVersion; + public static readonly string Server; + public static readonly string SetCookie; + public static readonly string Status; + public static readonly string StrictTransportSecurity; + public static readonly string TE; + public static readonly string TraceParent; + public static readonly string TraceState; + public static readonly string Trailer; + public static readonly string TransferEncoding; + public static readonly string Translate; + public static readonly string Upgrade; + public static readonly string UpgradeInsecureRequests; + public static readonly string UserAgent; + public static readonly string Vary; + public static readonly string Via; + public static readonly string Warning; + public static readonly string WebSocketSubProtocols; + public static readonly string WWWAuthenticate; + public static readonly string XContentTypeOptions; + public static readonly string XFrameOptions; + public static readonly string XPoweredBy; + public static readonly string XRequestedWith; + public static readonly string XUACompatible; + public static readonly string XXSSProtection; } public static class HeaderQuality { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs index 9665df7b6c2..8bf563a3a0d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs @@ -6,15 +6,15 @@ namespace Microsoft { public static class Registry { - public static Microsoft.Win32.RegistryKey ClassesRoot; - public static Microsoft.Win32.RegistryKey CurrentConfig; - public static Microsoft.Win32.RegistryKey CurrentUser; + public static readonly Microsoft.Win32.RegistryKey ClassesRoot; + public static readonly Microsoft.Win32.RegistryKey CurrentConfig; + public static readonly Microsoft.Win32.RegistryKey CurrentUser; public static object GetValue(string keyName, string valueName, object defaultValue) => throw null; - public static Microsoft.Win32.RegistryKey LocalMachine; - public static Microsoft.Win32.RegistryKey PerformanceData; + public static readonly Microsoft.Win32.RegistryKey LocalMachine; + public static readonly Microsoft.Win32.RegistryKey PerformanceData; public static void SetValue(string keyName, string valueName, object value) => throw null; public static void SetValue(string keyName, string valueName, object value, Microsoft.Win32.RegistryValueKind valueKind) => throw null; - public static Microsoft.Win32.RegistryKey Users; + public static readonly Microsoft.Win32.RegistryKey Users; } public enum RegistryHive { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs index a402d6f9462..6ac1a1f0152 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Collections.Immutable.cs @@ -192,7 +192,7 @@ namespace System int System.Collections.Generic.ICollection.Count { get => throw null; } int System.Collections.Generic.IReadOnlyCollection.Count { get => throw null; } int System.Collections.ICollection.Count { get => throw null; } - public static System.Collections.Immutable.ImmutableArray Empty; + public static readonly System.Collections.Immutable.ImmutableArray Empty; public struct Enumerator { public T Current { get => throw null; } @@ -363,7 +363,7 @@ namespace System void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } - public static System.Collections.Immutable.ImmutableDictionary Empty; + public static readonly System.Collections.Immutable.ImmutableDictionary Empty; public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } @@ -466,7 +466,7 @@ namespace System void System.Collections.Generic.ICollection.CopyTo(T[] array, int arrayIndex) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } - public static System.Collections.Immutable.ImmutableHashSet Empty; + public static readonly System.Collections.Immutable.ImmutableHashSet Empty; public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } @@ -646,7 +646,7 @@ namespace System public void CopyTo(T[] array, int arrayIndex) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null; public int Count { get => throw null; } - public static System.Collections.Immutable.ImmutableList Empty; + public static readonly System.Collections.Immutable.ImmutableList Empty; public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } @@ -833,7 +833,7 @@ namespace System void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } - public static System.Collections.Immutable.ImmutableSortedDictionary Empty; + public static readonly System.Collections.Immutable.ImmutableSortedDictionary Empty; public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator { public System.Collections.Generic.KeyValuePair Current { get => throw null; } @@ -949,7 +949,7 @@ namespace System void System.Collections.Generic.ICollection.CopyTo(T[] array, int arrayIndex) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; public int Count { get => throw null; } - public static System.Collections.Immutable.ImmutableSortedSet Empty; + public static readonly System.Collections.Immutable.ImmutableSortedSet Empty; public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator { public T Current { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Annotations.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Annotations.cs index d294faed5b1..300ca5dcd91 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Annotations.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Annotations.cs @@ -343,7 +343,7 @@ namespace System public ValidationResult(string errorMessage, System.Collections.Generic.IEnumerable memberNames) => throw null; public string ErrorMessage { get => throw null; set { } } public System.Collections.Generic.IEnumerable MemberNames { get => throw null; } - public static System.ComponentModel.DataAnnotations.ValidationResult Success; + public static readonly System.ComponentModel.DataAnnotations.ValidationResult Success; public override string ToString() => throw null; } public static class Validator diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs index 84375d26247..d2dbcebce75 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.Primitives.cs @@ -8,12 +8,12 @@ namespace System { public bool Browsable { get => throw null; } public BrowsableAttribute(bool browsable) => throw null; - public static System.ComponentModel.BrowsableAttribute Default; + public static readonly System.ComponentModel.BrowsableAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.BrowsableAttribute No; - public static System.ComponentModel.BrowsableAttribute Yes; + public static readonly System.ComponentModel.BrowsableAttribute No; + public static readonly System.ComponentModel.BrowsableAttribute Yes; } public class CategoryAttribute : System.Attribute { @@ -64,7 +64,7 @@ namespace System { public DescriptionAttribute() => throw null; public DescriptionAttribute(string description) => throw null; - public static System.ComponentModel.DescriptionAttribute Default; + public static readonly System.ComponentModel.DescriptionAttribute Default; public virtual string Description { get => throw null; } protected string DescriptionValue { get => throw null; set { } } public override bool Equals(object obj) => throw null; @@ -102,13 +102,13 @@ namespace System public sealed class DesignerCategoryAttribute : System.Attribute { public string Category { get => throw null; } - public static System.ComponentModel.DesignerCategoryAttribute Component; + public static readonly System.ComponentModel.DesignerCategoryAttribute Component; public DesignerCategoryAttribute() => throw null; public DesignerCategoryAttribute(string category) => throw null; - public static System.ComponentModel.DesignerCategoryAttribute Default; + public static readonly System.ComponentModel.DesignerCategoryAttribute Default; public override bool Equals(object obj) => throw null; - public static System.ComponentModel.DesignerCategoryAttribute Form; - public static System.ComponentModel.DesignerCategoryAttribute Generic; + public static readonly System.ComponentModel.DesignerCategoryAttribute Form; + public static readonly System.ComponentModel.DesignerCategoryAttribute Generic; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public override object TypeId { get => throw null; } @@ -121,32 +121,32 @@ namespace System } public sealed class DesignerSerializationVisibilityAttribute : System.Attribute { - public static System.ComponentModel.DesignerSerializationVisibilityAttribute Content; + public static readonly System.ComponentModel.DesignerSerializationVisibilityAttribute Content; public DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility visibility) => throw null; - public static System.ComponentModel.DesignerSerializationVisibilityAttribute Default; + public static readonly System.ComponentModel.DesignerSerializationVisibilityAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public static System.ComponentModel.DesignerSerializationVisibilityAttribute Hidden; + public static readonly System.ComponentModel.DesignerSerializationVisibilityAttribute Hidden; public override bool IsDefaultAttribute() => throw null; public System.ComponentModel.DesignerSerializationVisibility Visibility { get => throw null; } - public static System.ComponentModel.DesignerSerializationVisibilityAttribute Visible; + public static readonly System.ComponentModel.DesignerSerializationVisibilityAttribute Visible; } public sealed class DesignOnlyAttribute : System.Attribute { public DesignOnlyAttribute(bool isDesignOnly) => throw null; - public static System.ComponentModel.DesignOnlyAttribute Default; + public static readonly System.ComponentModel.DesignOnlyAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public bool IsDesignOnly { get => throw null; } - public static System.ComponentModel.DesignOnlyAttribute No; - public static System.ComponentModel.DesignOnlyAttribute Yes; + public static readonly System.ComponentModel.DesignOnlyAttribute No; + public static readonly System.ComponentModel.DesignOnlyAttribute Yes; } public class DisplayNameAttribute : System.Attribute { public DisplayNameAttribute() => throw null; public DisplayNameAttribute(string displayName) => throw null; - public static System.ComponentModel.DisplayNameAttribute Default; + public static readonly System.ComponentModel.DisplayNameAttribute Default; public virtual string DisplayName { get => throw null; } protected string DisplayNameValue { get => throw null; set { } } public override bool Equals(object obj) => throw null; @@ -189,13 +189,13 @@ namespace System public sealed class ImmutableObjectAttribute : System.Attribute { public ImmutableObjectAttribute(bool immutable) => throw null; - public static System.ComponentModel.ImmutableObjectAttribute Default; + public static readonly System.ComponentModel.ImmutableObjectAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public bool Immutable { get => throw null; } public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.ImmutableObjectAttribute No; - public static System.ComponentModel.ImmutableObjectAttribute Yes; + public static readonly System.ComponentModel.ImmutableObjectAttribute No; + public static readonly System.ComponentModel.ImmutableObjectAttribute Yes; } public sealed class InitializationEventAttribute : System.Attribute { @@ -239,41 +239,41 @@ namespace System public sealed class LocalizableAttribute : System.Attribute { public LocalizableAttribute(bool isLocalizable) => throw null; - public static System.ComponentModel.LocalizableAttribute Default; + public static readonly System.ComponentModel.LocalizableAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public bool IsLocalizable { get => throw null; } - public static System.ComponentModel.LocalizableAttribute No; - public static System.ComponentModel.LocalizableAttribute Yes; + public static readonly System.ComponentModel.LocalizableAttribute No; + public static readonly System.ComponentModel.LocalizableAttribute Yes; } public sealed class MergablePropertyAttribute : System.Attribute { public bool AllowMerge { get => throw null; } public MergablePropertyAttribute(bool allowMerge) => throw null; - public static System.ComponentModel.MergablePropertyAttribute Default; + public static readonly System.ComponentModel.MergablePropertyAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.MergablePropertyAttribute No; - public static System.ComponentModel.MergablePropertyAttribute Yes; + public static readonly System.ComponentModel.MergablePropertyAttribute No; + public static readonly System.ComponentModel.MergablePropertyAttribute Yes; } public sealed class NotifyParentPropertyAttribute : System.Attribute { public NotifyParentPropertyAttribute(bool notifyParent) => throw null; - public static System.ComponentModel.NotifyParentPropertyAttribute Default; + public static readonly System.ComponentModel.NotifyParentPropertyAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.NotifyParentPropertyAttribute No; + public static readonly System.ComponentModel.NotifyParentPropertyAttribute No; public bool NotifyParent { get => throw null; } - public static System.ComponentModel.NotifyParentPropertyAttribute Yes; + public static readonly System.ComponentModel.NotifyParentPropertyAttribute Yes; } public sealed class ParenthesizePropertyNameAttribute : System.Attribute { public ParenthesizePropertyNameAttribute() => throw null; public ParenthesizePropertyNameAttribute(bool needParenthesis) => throw null; - public static System.ComponentModel.ParenthesizePropertyNameAttribute Default; + public static readonly System.ComponentModel.ParenthesizePropertyNameAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; @@ -282,13 +282,13 @@ namespace System public sealed class ReadOnlyAttribute : System.Attribute { public ReadOnlyAttribute(bool isReadOnly) => throw null; - public static System.ComponentModel.ReadOnlyAttribute Default; + public static readonly System.ComponentModel.ReadOnlyAttribute Default; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public bool IsReadOnly { get => throw null; } - public static System.ComponentModel.ReadOnlyAttribute No; - public static System.ComponentModel.ReadOnlyAttribute Yes; + public static readonly System.ComponentModel.ReadOnlyAttribute No; + public static readonly System.ComponentModel.ReadOnlyAttribute Yes; } public enum RefreshProperties { @@ -298,14 +298,14 @@ namespace System } public sealed class RefreshPropertiesAttribute : System.Attribute { - public static System.ComponentModel.RefreshPropertiesAttribute All; + public static readonly System.ComponentModel.RefreshPropertiesAttribute All; public RefreshPropertiesAttribute(System.ComponentModel.RefreshProperties refresh) => throw null; - public static System.ComponentModel.RefreshPropertiesAttribute Default; + public static readonly System.ComponentModel.RefreshPropertiesAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public System.ComponentModel.RefreshProperties RefreshProperties { get => throw null; } - public static System.ComponentModel.RefreshPropertiesAttribute Repaint; + public static readonly System.ComponentModel.RefreshPropertiesAttribute Repaint; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs index 12422c0182f..17f4792760b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ComponentModel.TypeConverter.cs @@ -45,7 +45,7 @@ namespace System int System.Collections.ICollection.Count { get => throw null; } protected AttributeCollection() => throw null; public AttributeCollection(params System.Attribute[] attributes) => throw null; - public static System.ComponentModel.AttributeCollection Empty; + public static readonly System.ComponentModel.AttributeCollection Empty; public static System.ComponentModel.AttributeCollection FromExisting(System.ComponentModel.AttributeCollection existing, params System.Attribute[] newAttributes) => throw null; protected System.Attribute GetDefaultAttribute(System.Type attributeType) => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; @@ -79,13 +79,13 @@ namespace System public BindableAttribute(bool bindable, System.ComponentModel.BindingDirection direction) => throw null; public BindableAttribute(System.ComponentModel.BindableSupport flags) => throw null; public BindableAttribute(System.ComponentModel.BindableSupport flags, System.ComponentModel.BindingDirection direction) => throw null; - public static System.ComponentModel.BindableAttribute Default; + public static readonly System.ComponentModel.BindableAttribute Default; public System.ComponentModel.BindingDirection Direction { get => throw null; } public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.BindableAttribute No; - public static System.ComponentModel.BindableAttribute Yes; + public static readonly System.ComponentModel.BindableAttribute No; + public static readonly System.ComponentModel.BindableAttribute Yes; } public enum BindableSupport { @@ -193,7 +193,7 @@ namespace System public ComplexBindingPropertiesAttribute(string dataSource, string dataMember) => throw null; public string DataMember { get => throw null; } public string DataSource { get => throw null; } - public static System.ComponentModel.ComplexBindingPropertiesAttribute Default; + public static readonly System.ComponentModel.ComplexBindingPropertiesAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; } @@ -268,13 +268,13 @@ namespace System { public DataObjectAttribute() => throw null; public DataObjectAttribute(bool isDataObject) => throw null; - public static System.ComponentModel.DataObjectAttribute DataObject; - public static System.ComponentModel.DataObjectAttribute Default; + public static readonly System.ComponentModel.DataObjectAttribute DataObject; + public static readonly System.ComponentModel.DataObjectAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public bool IsDataObject { get => throw null; } public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.DataObjectAttribute NonDataObject; + public static readonly System.ComponentModel.DataObjectAttribute NonDataObject; } public sealed class DataObjectFieldAttribute : System.Attribute { @@ -341,7 +341,7 @@ namespace System { public DefaultBindingPropertyAttribute() => throw null; public DefaultBindingPropertyAttribute(string name) => throw null; - public static System.ComponentModel.DefaultBindingPropertyAttribute Default; + public static readonly System.ComponentModel.DefaultBindingPropertyAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string Name { get => throw null; } @@ -349,7 +349,7 @@ namespace System public sealed class DefaultEventAttribute : System.Attribute { public DefaultEventAttribute(string name) => throw null; - public static System.ComponentModel.DefaultEventAttribute Default; + public static readonly System.ComponentModel.DefaultEventAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string Name { get => throw null; } @@ -357,7 +357,7 @@ namespace System public sealed class DefaultPropertyAttribute : System.Attribute { public DefaultPropertyAttribute(string name) => throw null; - public static System.ComponentModel.DefaultPropertyAttribute Default; + public static readonly System.ComponentModel.DefaultPropertyAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string Name { get => throw null; } @@ -373,7 +373,7 @@ namespace System public delegate void ActiveDesignerEventHandler(object sender, System.ComponentModel.Design.ActiveDesignerEventArgs e); public class CheckoutException : System.Runtime.InteropServices.ExternalException { - public static System.ComponentModel.Design.CheckoutException Canceled; + public static readonly System.ComponentModel.Design.CheckoutException Canceled; public CheckoutException() => throw null; protected CheckoutException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public CheckoutException(string message) => throw null; @@ -541,7 +541,7 @@ namespace System public HelpKeywordAttribute() => throw null; public HelpKeywordAttribute(string keyword) => throw null; public HelpKeywordAttribute(System.Type t) => throw null; - public static System.ComponentModel.Design.HelpKeywordAttribute Default; + public static readonly System.ComponentModel.Design.HelpKeywordAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public string HelpKeyword { get => throw null; } @@ -878,7 +878,7 @@ namespace System public struct MemberRelationship : System.IEquatable { public MemberRelationship(object owner, System.ComponentModel.MemberDescriptor member) => throw null; - public static System.ComponentModel.Design.Serialization.MemberRelationship Empty; + public static readonly System.ComponentModel.Design.Serialization.MemberRelationship Empty; public bool Equals(System.ComponentModel.Design.Serialization.MemberRelationship other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; @@ -942,74 +942,74 @@ namespace System public delegate object ServiceCreatorCallback(System.ComponentModel.Design.IServiceContainer container, System.Type serviceType); public class StandardCommands { - public static System.ComponentModel.Design.CommandID AlignBottom; - public static System.ComponentModel.Design.CommandID AlignHorizontalCenters; - public static System.ComponentModel.Design.CommandID AlignLeft; - public static System.ComponentModel.Design.CommandID AlignRight; - public static System.ComponentModel.Design.CommandID AlignToGrid; - public static System.ComponentModel.Design.CommandID AlignTop; - public static System.ComponentModel.Design.CommandID AlignVerticalCenters; - public static System.ComponentModel.Design.CommandID ArrangeBottom; - public static System.ComponentModel.Design.CommandID ArrangeIcons; - public static System.ComponentModel.Design.CommandID ArrangeRight; - public static System.ComponentModel.Design.CommandID BringForward; - public static System.ComponentModel.Design.CommandID BringToFront; - public static System.ComponentModel.Design.CommandID CenterHorizontally; - public static System.ComponentModel.Design.CommandID CenterVertically; - public static System.ComponentModel.Design.CommandID Copy; + public static readonly System.ComponentModel.Design.CommandID AlignBottom; + public static readonly System.ComponentModel.Design.CommandID AlignHorizontalCenters; + public static readonly System.ComponentModel.Design.CommandID AlignLeft; + public static readonly System.ComponentModel.Design.CommandID AlignRight; + public static readonly System.ComponentModel.Design.CommandID AlignToGrid; + public static readonly System.ComponentModel.Design.CommandID AlignTop; + public static readonly System.ComponentModel.Design.CommandID AlignVerticalCenters; + public static readonly System.ComponentModel.Design.CommandID ArrangeBottom; + public static readonly System.ComponentModel.Design.CommandID ArrangeIcons; + public static readonly System.ComponentModel.Design.CommandID ArrangeRight; + public static readonly System.ComponentModel.Design.CommandID BringForward; + public static readonly System.ComponentModel.Design.CommandID BringToFront; + public static readonly System.ComponentModel.Design.CommandID CenterHorizontally; + public static readonly System.ComponentModel.Design.CommandID CenterVertically; + public static readonly System.ComponentModel.Design.CommandID Copy; public StandardCommands() => throw null; - public static System.ComponentModel.Design.CommandID Cut; - public static System.ComponentModel.Design.CommandID Delete; - public static System.ComponentModel.Design.CommandID DocumentOutline; - public static System.ComponentModel.Design.CommandID F1Help; - public static System.ComponentModel.Design.CommandID Group; - public static System.ComponentModel.Design.CommandID HorizSpaceConcatenate; - public static System.ComponentModel.Design.CommandID HorizSpaceDecrease; - public static System.ComponentModel.Design.CommandID HorizSpaceIncrease; - public static System.ComponentModel.Design.CommandID HorizSpaceMakeEqual; - public static System.ComponentModel.Design.CommandID LineupIcons; - public static System.ComponentModel.Design.CommandID LockControls; - public static System.ComponentModel.Design.CommandID MultiLevelRedo; - public static System.ComponentModel.Design.CommandID MultiLevelUndo; - public static System.ComponentModel.Design.CommandID Paste; - public static System.ComponentModel.Design.CommandID Properties; - public static System.ComponentModel.Design.CommandID PropertiesWindow; - public static System.ComponentModel.Design.CommandID Redo; - public static System.ComponentModel.Design.CommandID Replace; - public static System.ComponentModel.Design.CommandID SelectAll; - public static System.ComponentModel.Design.CommandID SendBackward; - public static System.ComponentModel.Design.CommandID SendToBack; - public static System.ComponentModel.Design.CommandID ShowGrid; - public static System.ComponentModel.Design.CommandID ShowLargeIcons; - public static System.ComponentModel.Design.CommandID SizeToControl; - public static System.ComponentModel.Design.CommandID SizeToControlHeight; - public static System.ComponentModel.Design.CommandID SizeToControlWidth; - public static System.ComponentModel.Design.CommandID SizeToFit; - public static System.ComponentModel.Design.CommandID SizeToGrid; - public static System.ComponentModel.Design.CommandID SnapToGrid; - public static System.ComponentModel.Design.CommandID TabOrder; - public static System.ComponentModel.Design.CommandID Undo; - public static System.ComponentModel.Design.CommandID Ungroup; - public static System.ComponentModel.Design.CommandID VerbFirst; - public static System.ComponentModel.Design.CommandID VerbLast; - public static System.ComponentModel.Design.CommandID VertSpaceConcatenate; - public static System.ComponentModel.Design.CommandID VertSpaceDecrease; - public static System.ComponentModel.Design.CommandID VertSpaceIncrease; - public static System.ComponentModel.Design.CommandID VertSpaceMakeEqual; - public static System.ComponentModel.Design.CommandID ViewCode; - public static System.ComponentModel.Design.CommandID ViewGrid; + public static readonly System.ComponentModel.Design.CommandID Cut; + public static readonly System.ComponentModel.Design.CommandID Delete; + public static readonly System.ComponentModel.Design.CommandID DocumentOutline; + public static readonly System.ComponentModel.Design.CommandID F1Help; + public static readonly System.ComponentModel.Design.CommandID Group; + public static readonly System.ComponentModel.Design.CommandID HorizSpaceConcatenate; + public static readonly System.ComponentModel.Design.CommandID HorizSpaceDecrease; + public static readonly System.ComponentModel.Design.CommandID HorizSpaceIncrease; + public static readonly System.ComponentModel.Design.CommandID HorizSpaceMakeEqual; + public static readonly System.ComponentModel.Design.CommandID LineupIcons; + public static readonly System.ComponentModel.Design.CommandID LockControls; + public static readonly System.ComponentModel.Design.CommandID MultiLevelRedo; + public static readonly System.ComponentModel.Design.CommandID MultiLevelUndo; + public static readonly System.ComponentModel.Design.CommandID Paste; + public static readonly System.ComponentModel.Design.CommandID Properties; + public static readonly System.ComponentModel.Design.CommandID PropertiesWindow; + public static readonly System.ComponentModel.Design.CommandID Redo; + public static readonly System.ComponentModel.Design.CommandID Replace; + public static readonly System.ComponentModel.Design.CommandID SelectAll; + public static readonly System.ComponentModel.Design.CommandID SendBackward; + public static readonly System.ComponentModel.Design.CommandID SendToBack; + public static readonly System.ComponentModel.Design.CommandID ShowGrid; + public static readonly System.ComponentModel.Design.CommandID ShowLargeIcons; + public static readonly System.ComponentModel.Design.CommandID SizeToControl; + public static readonly System.ComponentModel.Design.CommandID SizeToControlHeight; + public static readonly System.ComponentModel.Design.CommandID SizeToControlWidth; + public static readonly System.ComponentModel.Design.CommandID SizeToFit; + public static readonly System.ComponentModel.Design.CommandID SizeToGrid; + public static readonly System.ComponentModel.Design.CommandID SnapToGrid; + public static readonly System.ComponentModel.Design.CommandID TabOrder; + public static readonly System.ComponentModel.Design.CommandID Undo; + public static readonly System.ComponentModel.Design.CommandID Ungroup; + public static readonly System.ComponentModel.Design.CommandID VerbFirst; + public static readonly System.ComponentModel.Design.CommandID VerbLast; + public static readonly System.ComponentModel.Design.CommandID VertSpaceConcatenate; + public static readonly System.ComponentModel.Design.CommandID VertSpaceDecrease; + public static readonly System.ComponentModel.Design.CommandID VertSpaceIncrease; + public static readonly System.ComponentModel.Design.CommandID VertSpaceMakeEqual; + public static readonly System.ComponentModel.Design.CommandID ViewCode; + public static readonly System.ComponentModel.Design.CommandID ViewGrid; } public class StandardToolWindows { public StandardToolWindows() => throw null; - public static System.Guid ObjectBrowser; - public static System.Guid OutputWindow; - public static System.Guid ProjectExplorer; - public static System.Guid PropertyBrowser; - public static System.Guid RelatedLinks; - public static System.Guid ServerExplorer; - public static System.Guid TaskList; - public static System.Guid Toolbox; + public static readonly System.Guid ObjectBrowser; + public static readonly System.Guid OutputWindow; + public static readonly System.Guid ProjectExplorer; + public static readonly System.Guid PropertyBrowser; + public static readonly System.Guid RelatedLinks; + public static readonly System.Guid ServerExplorer; + public static readonly System.Guid TaskList; + public static readonly System.Guid Toolbox; } public abstract class TypeDescriptionProviderService { @@ -1028,13 +1028,13 @@ namespace System { public DesignTimeVisibleAttribute() => throw null; public DesignTimeVisibleAttribute(bool visible) => throw null; - public static System.ComponentModel.DesignTimeVisibleAttribute Default; + public static readonly System.ComponentModel.DesignTimeVisibleAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.DesignTimeVisibleAttribute No; + public static readonly System.ComponentModel.DesignTimeVisibleAttribute No; public bool Visible { get => throw null; } - public static System.ComponentModel.DesignTimeVisibleAttribute Yes; + public static readonly System.ComponentModel.DesignTimeVisibleAttribute Yes; } public class DoubleConverter : System.ComponentModel.BaseNumberConverter { @@ -1079,7 +1079,7 @@ namespace System int System.Collections.ICollection.Count { get => throw null; } public EventDescriptorCollection(System.ComponentModel.EventDescriptor[] events) => throw null; public EventDescriptorCollection(System.ComponentModel.EventDescriptor[] events, bool readOnly) => throw null; - public static System.ComponentModel.EventDescriptorCollection Empty; + public static readonly System.ComponentModel.EventDescriptorCollection Empty; public virtual System.ComponentModel.EventDescriptor Find(string name, bool ignoreCase) => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; @@ -1234,14 +1234,14 @@ namespace System { public InheritanceAttribute() => throw null; public InheritanceAttribute(System.ComponentModel.InheritanceLevel inheritanceLevel) => throw null; - public static System.ComponentModel.InheritanceAttribute Default; + public static readonly System.ComponentModel.InheritanceAttribute Default; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; public System.ComponentModel.InheritanceLevel InheritanceLevel { get => throw null; } - public static System.ComponentModel.InheritanceAttribute Inherited; - public static System.ComponentModel.InheritanceAttribute InheritedReadOnly; + public static readonly System.ComponentModel.InheritanceAttribute Inherited; + public static readonly System.ComponentModel.InheritanceAttribute InheritedReadOnly; public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.InheritanceAttribute NotInherited; + public static readonly System.ComponentModel.InheritanceAttribute NotInherited; public override string ToString() => throw null; } public enum InheritanceLevel @@ -1350,7 +1350,7 @@ namespace System public LicenseProviderAttribute() => throw null; public LicenseProviderAttribute(string typeName) => throw null; public LicenseProviderAttribute(System.Type type) => throw null; - public static System.ComponentModel.LicenseProviderAttribute Default; + public static readonly System.ComponentModel.LicenseProviderAttribute Default; public override bool Equals(object value) => throw null; public override int GetHashCode() => throw null; public System.Type LicenseProvider { get => throw null; } @@ -1372,13 +1372,13 @@ namespace System { public ListBindableAttribute(bool listBindable) => throw null; public ListBindableAttribute(System.ComponentModel.BindableSupport flags) => throw null; - public static System.ComponentModel.ListBindableAttribute Default; + public static readonly System.ComponentModel.ListBindableAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; public bool ListBindable { get => throw null; } - public static System.ComponentModel.ListBindableAttribute No; - public static System.ComponentModel.ListBindableAttribute Yes; + public static readonly System.ComponentModel.ListBindableAttribute No; + public static readonly System.ComponentModel.ListBindableAttribute Yes; } public class ListChangedEventArgs : System.EventArgs { @@ -1440,7 +1440,7 @@ namespace System public LookupBindingPropertiesAttribute() => throw null; public LookupBindingPropertiesAttribute(string dataSource, string displayMember, string valueMember, string lookupMember) => throw null; public string DataSource { get => throw null; } - public static System.ComponentModel.LookupBindingPropertiesAttribute Default; + public static readonly System.ComponentModel.LookupBindingPropertiesAttribute Default; public string DisplayMember { get => throw null; } public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; @@ -1625,13 +1625,13 @@ namespace System { public PasswordPropertyTextAttribute() => throw null; public PasswordPropertyTextAttribute(bool password) => throw null; - public static System.ComponentModel.PasswordPropertyTextAttribute Default; + public static readonly System.ComponentModel.PasswordPropertyTextAttribute Default; public override bool Equals(object o) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.PasswordPropertyTextAttribute No; + public static readonly System.ComponentModel.PasswordPropertyTextAttribute No; public bool Password { get => throw null; } - public static System.ComponentModel.PasswordPropertyTextAttribute Yes; + public static readonly System.ComponentModel.PasswordPropertyTextAttribute Yes; } public abstract class PropertyDescriptor : System.ComponentModel.MemberDescriptor { @@ -1682,7 +1682,7 @@ namespace System int System.Collections.ICollection.Count { get => throw null; } public PropertyDescriptorCollection(System.ComponentModel.PropertyDescriptor[] properties) => throw null; public PropertyDescriptorCollection(System.ComponentModel.PropertyDescriptor[] properties, bool readOnly) => throw null; - public static System.ComponentModel.PropertyDescriptorCollection Empty; + public static readonly System.ComponentModel.PropertyDescriptorCollection Empty; public virtual System.ComponentModel.PropertyDescriptor Find(string name, bool ignoreCase) => throw null; public virtual System.Collections.IEnumerator GetEnumerator() => throw null; System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; @@ -1751,13 +1751,13 @@ namespace System public class RecommendedAsConfigurableAttribute : System.Attribute { public RecommendedAsConfigurableAttribute(bool recommendedAsConfigurable) => throw null; - public static System.ComponentModel.RecommendedAsConfigurableAttribute Default; + public static readonly System.ComponentModel.RecommendedAsConfigurableAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.RecommendedAsConfigurableAttribute No; + public static readonly System.ComponentModel.RecommendedAsConfigurableAttribute No; public bool RecommendedAsConfigurable { get => throw null; } - public static System.ComponentModel.RecommendedAsConfigurableAttribute Yes; + public static readonly System.ComponentModel.RecommendedAsConfigurableAttribute Yes; } public class ReferenceConverter : System.ComponentModel.TypeConverter { @@ -1781,13 +1781,13 @@ namespace System public class RunInstallerAttribute : System.Attribute { public RunInstallerAttribute(bool runInstaller) => throw null; - public static System.ComponentModel.RunInstallerAttribute Default; + public static readonly System.ComponentModel.RunInstallerAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.RunInstallerAttribute No; + public static readonly System.ComponentModel.RunInstallerAttribute No; public bool RunInstaller { get => throw null; } - public static System.ComponentModel.RunInstallerAttribute Yes; + public static readonly System.ComponentModel.RunInstallerAttribute Yes; } public class SByteConverter : System.ComponentModel.BaseNumberConverter { @@ -1799,8 +1799,8 @@ namespace System public SettingsBindableAttribute(bool bindable) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public static System.ComponentModel.SettingsBindableAttribute No; - public static System.ComponentModel.SettingsBindableAttribute Yes; + public static readonly System.ComponentModel.SettingsBindableAttribute No; + public static readonly System.ComponentModel.SettingsBindableAttribute Yes; } public class SingleConverter : System.ComponentModel.BaseNumberConverter { @@ -1839,11 +1839,11 @@ namespace System public ToolboxItemAttribute(bool defaultType) => throw null; public ToolboxItemAttribute(string toolboxItemTypeName) => throw null; public ToolboxItemAttribute(System.Type toolboxItemType) => throw null; - public static System.ComponentModel.ToolboxItemAttribute Default; + public static readonly System.ComponentModel.ToolboxItemAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public override bool IsDefaultAttribute() => throw null; - public static System.ComponentModel.ToolboxItemAttribute None; + public static readonly System.ComponentModel.ToolboxItemAttribute None; public System.Type ToolboxItemType { get => throw null; } public string ToolboxItemTypeName { get => throw null; } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs index 482a0ff0d5b..976ccb3a69f 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Data.Common.cs @@ -611,57 +611,57 @@ namespace System } public static class DbMetaDataCollectionNames { - public static string DataSourceInformation; - public static string DataTypes; - public static string MetaDataCollections; - public static string ReservedWords; - public static string Restrictions; + public static readonly string DataSourceInformation; + public static readonly string DataTypes; + public static readonly string MetaDataCollections; + public static readonly string ReservedWords; + public static readonly string Restrictions; } public static class DbMetaDataColumnNames { - public static string CollectionName; - public static string ColumnSize; - public static string CompositeIdentifierSeparatorPattern; - public static string CreateFormat; - public static string CreateParameters; - public static string DataSourceProductName; - public static string DataSourceProductVersion; - public static string DataSourceProductVersionNormalized; - public static string DataType; - public static string GroupByBehavior; - public static string IdentifierCase; - public static string IdentifierPattern; - public static string IsAutoIncrementable; - public static string IsBestMatch; - public static string IsCaseSensitive; - public static string IsConcurrencyType; - public static string IsFixedLength; - public static string IsFixedPrecisionScale; - public static string IsLiteralSupported; - public static string IsLong; - public static string IsNullable; - public static string IsSearchable; - public static string IsSearchableWithLike; - public static string IsUnsigned; - public static string LiteralPrefix; - public static string LiteralSuffix; - public static string MaximumScale; - public static string MinimumScale; - public static string NumberOfIdentifierParts; - public static string NumberOfRestrictions; - public static string OrderByColumnsInSelect; - public static string ParameterMarkerFormat; - public static string ParameterMarkerPattern; - public static string ParameterNameMaxLength; - public static string ParameterNamePattern; - public static string ProviderDbType; - public static string QuotedIdentifierCase; - public static string QuotedIdentifierPattern; - public static string ReservedWord; - public static string StatementSeparatorPattern; - public static string StringLiteralPattern; - public static string SupportedJoinOperators; - public static string TypeName; + public static readonly string CollectionName; + public static readonly string ColumnSize; + public static readonly string CompositeIdentifierSeparatorPattern; + public static readonly string CreateFormat; + public static readonly string CreateParameters; + public static readonly string DataSourceProductName; + public static readonly string DataSourceProductVersion; + public static readonly string DataSourceProductVersionNormalized; + public static readonly string DataType; + public static readonly string GroupByBehavior; + public static readonly string IdentifierCase; + public static readonly string IdentifierPattern; + public static readonly string IsAutoIncrementable; + public static readonly string IsBestMatch; + public static readonly string IsCaseSensitive; + public static readonly string IsConcurrencyType; + public static readonly string IsFixedLength; + public static readonly string IsFixedPrecisionScale; + public static readonly string IsLiteralSupported; + public static readonly string IsLong; + public static readonly string IsNullable; + public static readonly string IsSearchable; + public static readonly string IsSearchableWithLike; + public static readonly string IsUnsigned; + public static readonly string LiteralPrefix; + public static readonly string LiteralSuffix; + public static readonly string MaximumScale; + public static readonly string MinimumScale; + public static readonly string NumberOfIdentifierParts; + public static readonly string NumberOfRestrictions; + public static readonly string OrderByColumnsInSelect; + public static readonly string ParameterMarkerFormat; + public static readonly string ParameterMarkerPattern; + public static readonly string ParameterNameMaxLength; + public static readonly string ParameterNamePattern; + public static readonly string ProviderDbType; + public static readonly string QuotedIdentifierCase; + public static readonly string QuotedIdentifierPattern; + public static readonly string ReservedWord; + public static readonly string StatementSeparatorPattern; + public static readonly string StringLiteralPattern; + public static readonly string SupportedJoinOperators; + public static readonly string TypeName; } public abstract class DbParameter : System.MarshalByRefObject, System.Data.IDataParameter, System.Data.IDbDataParameter { @@ -819,40 +819,40 @@ namespace System } public static class SchemaTableColumn { - public static string AllowDBNull; - public static string BaseColumnName; - public static string BaseSchemaName; - public static string BaseTableName; - public static string ColumnName; - public static string ColumnOrdinal; - public static string ColumnSize; - public static string DataType; - public static string IsAliased; - public static string IsExpression; - public static string IsKey; - public static string IsLong; - public static string IsUnique; - public static string NonVersionedProviderType; - public static string NumericPrecision; - public static string NumericScale; - public static string ProviderType; + public static readonly string AllowDBNull; + public static readonly string BaseColumnName; + public static readonly string BaseSchemaName; + public static readonly string BaseTableName; + public static readonly string ColumnName; + public static readonly string ColumnOrdinal; + public static readonly string ColumnSize; + public static readonly string DataType; + public static readonly string IsAliased; + public static readonly string IsExpression; + public static readonly string IsKey; + public static readonly string IsLong; + public static readonly string IsUnique; + public static readonly string NonVersionedProviderType; + public static readonly string NumericPrecision; + public static readonly string NumericScale; + public static readonly string ProviderType; } public static class SchemaTableOptionalColumn { - public static string AutoIncrementSeed; - public static string AutoIncrementStep; - public static string BaseCatalogName; - public static string BaseColumnNamespace; - public static string BaseServerName; - public static string BaseTableNamespace; - public static string ColumnMapping; - public static string DefaultValue; - public static string Expression; - public static string IsAutoIncrement; - public static string IsHidden; - public static string IsReadOnly; - public static string IsRowVersion; - public static string ProviderSpecificDataType; + public static readonly string AutoIncrementSeed; + public static readonly string AutoIncrementStep; + public static readonly string BaseCatalogName; + public static readonly string BaseColumnNamespace; + public static readonly string BaseServerName; + public static readonly string BaseTableNamespace; + public static readonly string ColumnMapping; + public static readonly string DefaultValue; + public static readonly string Expression; + public static readonly string IsAutoIncrement; + public static readonly string IsHidden; + public static readonly string IsReadOnly; + public static readonly string IsRowVersion; + public static readonly string ProviderSpecificDataType; } [System.Flags] public enum SupportedJoinOperators @@ -2191,7 +2191,7 @@ namespace System public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; - public static System.Data.SqlTypes.SqlBinary Null; + public static readonly System.Data.SqlTypes.SqlBinary Null; public static System.Data.SqlTypes.SqlBinary operator +(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; public static explicit operator byte[](System.Data.SqlTypes.SqlBinary x) => throw null; @@ -2221,7 +2221,7 @@ namespace System public static System.Data.SqlTypes.SqlBoolean Equals(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; public bool Equals(System.Data.SqlTypes.SqlBoolean other) => throw null; public override bool Equals(object value) => throw null; - public static System.Data.SqlTypes.SqlBoolean False; + public static readonly System.Data.SqlTypes.SqlBoolean False; public override int GetHashCode() => throw null; System.Xml.Schema.XmlSchema System.Xml.Serialization.IXmlSerializable.GetSchema() => throw null; public static System.Xml.XmlQualifiedName GetXsdType(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; @@ -2233,8 +2233,8 @@ namespace System public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEquals(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public static System.Data.SqlTypes.SqlBoolean Null; - public static System.Data.SqlTypes.SqlBoolean One; + public static readonly System.Data.SqlTypes.SqlBoolean Null; + public static readonly System.Data.SqlTypes.SqlBoolean One; public static System.Data.SqlTypes.SqlBoolean OnesComplement(System.Data.SqlTypes.SqlBoolean x) => throw null; public static System.Data.SqlTypes.SqlBoolean operator &(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; public static System.Data.SqlTypes.SqlBoolean operator |(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; @@ -2273,11 +2273,11 @@ namespace System public System.Data.SqlTypes.SqlSingle ToSqlSingle() => throw null; public System.Data.SqlTypes.SqlString ToSqlString() => throw null; public override string ToString() => throw null; - public static System.Data.SqlTypes.SqlBoolean True; + public static readonly System.Data.SqlTypes.SqlBoolean True; public bool Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlBoolean Xor(System.Data.SqlTypes.SqlBoolean x, System.Data.SqlTypes.SqlBoolean y) => throw null; - public static System.Data.SqlTypes.SqlBoolean Zero; + public static readonly System.Data.SqlTypes.SqlBoolean Zero; } public struct SqlByte : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { @@ -2299,13 +2299,13 @@ namespace System public bool IsNull { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlByte MaxValue; - public static System.Data.SqlTypes.SqlByte MinValue; + public static readonly System.Data.SqlTypes.SqlByte MaxValue; + public static readonly System.Data.SqlTypes.SqlByte MinValue; public static System.Data.SqlTypes.SqlByte Mod(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlByte Modulus(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlByte Multiply(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlByte Null; + public static readonly System.Data.SqlTypes.SqlByte Null; public static System.Data.SqlTypes.SqlByte OnesComplement(System.Data.SqlTypes.SqlByte x) => throw null; public static System.Data.SqlTypes.SqlByte operator +(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; public static System.Data.SqlTypes.SqlByte operator &(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; @@ -2349,7 +2349,7 @@ namespace System public byte Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlByte Xor(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; - public static System.Data.SqlTypes.SqlByte Zero; + public static readonly System.Data.SqlTypes.SqlByte Zero; } public sealed class SqlBytes : System.Data.SqlTypes.INullable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable { @@ -2439,10 +2439,10 @@ namespace System public bool IsNull { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; - public static System.Data.SqlTypes.SqlDateTime MaxValue; - public static System.Data.SqlTypes.SqlDateTime MinValue; + public static readonly System.Data.SqlTypes.SqlDateTime MaxValue; + public static readonly System.Data.SqlTypes.SqlDateTime MinValue; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; - public static System.Data.SqlTypes.SqlDateTime Null; + public static readonly System.Data.SqlTypes.SqlDateTime Null; public static System.Data.SqlTypes.SqlDateTime operator +(System.Data.SqlTypes.SqlDateTime x, System.TimeSpan t) => throw null; public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; public static explicit operator System.DateTime(System.Data.SqlTypes.SqlDateTime x) => throw null; @@ -2456,9 +2456,9 @@ namespace System public static System.Data.SqlTypes.SqlDateTime operator -(System.Data.SqlTypes.SqlDateTime x, System.TimeSpan t) => throw null; public static System.Data.SqlTypes.SqlDateTime Parse(string s) => throw null; void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader) => throw null; - public static int SQLTicksPerHour; - public static int SQLTicksPerMinute; - public static int SQLTicksPerSecond; + public static readonly int SQLTicksPerHour; + public static readonly int SQLTicksPerMinute; + public static readonly int SQLTicksPerSecond; public static System.Data.SqlTypes.SqlDateTime Subtract(System.Data.SqlTypes.SqlDateTime x, System.TimeSpan t) => throw null; public int TimeTicks { get => throw null; } public System.Data.SqlTypes.SqlString ToSqlString() => throw null; @@ -2497,13 +2497,13 @@ namespace System public bool IsPositive { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static byte MaxPrecision; - public static byte MaxScale; - public static System.Data.SqlTypes.SqlDecimal MaxValue; - public static System.Data.SqlTypes.SqlDecimal MinValue; + public static readonly byte MaxPrecision; + public static readonly byte MaxScale; + public static readonly System.Data.SqlTypes.SqlDecimal MaxValue; + public static readonly System.Data.SqlTypes.SqlDecimal MinValue; public static System.Data.SqlTypes.SqlDecimal Multiply(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; - public static System.Data.SqlTypes.SqlDecimal Null; + public static readonly System.Data.SqlTypes.SqlDecimal Null; public static System.Data.SqlTypes.SqlDecimal operator +(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; public static System.Data.SqlTypes.SqlDecimal operator /(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; @@ -2570,11 +2570,11 @@ namespace System public bool IsNull { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlDouble MaxValue; - public static System.Data.SqlTypes.SqlDouble MinValue; + public static readonly System.Data.SqlTypes.SqlDouble MaxValue; + public static readonly System.Data.SqlTypes.SqlDouble MinValue; public static System.Data.SqlTypes.SqlDouble Multiply(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; - public static System.Data.SqlTypes.SqlDouble Null; + public static readonly System.Data.SqlTypes.SqlDouble Null; public static System.Data.SqlTypes.SqlDouble operator +(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; public static System.Data.SqlTypes.SqlDouble operator /(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; @@ -2612,7 +2612,7 @@ namespace System public override string ToString() => throw null; public double Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public static System.Data.SqlTypes.SqlDouble Zero; + public static readonly System.Data.SqlTypes.SqlDouble Zero; } public struct SqlGuid : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { @@ -2634,7 +2634,7 @@ namespace System public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; - public static System.Data.SqlTypes.SqlGuid Null; + public static readonly System.Data.SqlTypes.SqlGuid Null; public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; public static explicit operator System.Data.SqlTypes.SqlGuid(System.Data.SqlTypes.SqlBinary x) => throw null; public static explicit operator System.Guid(System.Data.SqlTypes.SqlGuid x) => throw null; @@ -2674,13 +2674,13 @@ namespace System public bool IsNull { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlInt16 MaxValue; - public static System.Data.SqlTypes.SqlInt16 MinValue; + public static readonly System.Data.SqlTypes.SqlInt16 MaxValue; + public static readonly System.Data.SqlTypes.SqlInt16 MinValue; public static System.Data.SqlTypes.SqlInt16 Mod(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlInt16 Modulus(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlInt16 Multiply(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlInt16 Null; + public static readonly System.Data.SqlTypes.SqlInt16 Null; public static System.Data.SqlTypes.SqlInt16 OnesComplement(System.Data.SqlTypes.SqlInt16 x) => throw null; public static System.Data.SqlTypes.SqlInt16 operator +(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; public static System.Data.SqlTypes.SqlInt16 operator &(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; @@ -2725,7 +2725,7 @@ namespace System public short Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlInt16 Xor(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; - public static System.Data.SqlTypes.SqlInt16 Zero; + public static readonly System.Data.SqlTypes.SqlInt16 Zero; } public struct SqlInt32 : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { @@ -2747,13 +2747,13 @@ namespace System public bool IsNull { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlInt32 MaxValue; - public static System.Data.SqlTypes.SqlInt32 MinValue; + public static readonly System.Data.SqlTypes.SqlInt32 MaxValue; + public static readonly System.Data.SqlTypes.SqlInt32 MinValue; public static System.Data.SqlTypes.SqlInt32 Mod(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlInt32 Modulus(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlInt32 Multiply(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlInt32 Null; + public static readonly System.Data.SqlTypes.SqlInt32 Null; public static System.Data.SqlTypes.SqlInt32 OnesComplement(System.Data.SqlTypes.SqlInt32 x) => throw null; public static System.Data.SqlTypes.SqlInt32 operator +(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; public static System.Data.SqlTypes.SqlInt32 operator &(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; @@ -2798,7 +2798,7 @@ namespace System public int Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlInt32 Xor(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; - public static System.Data.SqlTypes.SqlInt32 Zero; + public static readonly System.Data.SqlTypes.SqlInt32 Zero; } public struct SqlInt64 : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { @@ -2820,13 +2820,13 @@ namespace System public bool IsNull { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlInt64 MaxValue; - public static System.Data.SqlTypes.SqlInt64 MinValue; + public static readonly System.Data.SqlTypes.SqlInt64 MaxValue; + public static readonly System.Data.SqlTypes.SqlInt64 MinValue; public static System.Data.SqlTypes.SqlInt64 Mod(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlInt64 Modulus(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlInt64 Multiply(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlInt64 Null; + public static readonly System.Data.SqlTypes.SqlInt64 Null; public static System.Data.SqlTypes.SqlInt64 OnesComplement(System.Data.SqlTypes.SqlInt64 x) => throw null; public static System.Data.SqlTypes.SqlInt64 operator +(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; public static System.Data.SqlTypes.SqlInt64 operator &(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; @@ -2871,7 +2871,7 @@ namespace System public long Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; public static System.Data.SqlTypes.SqlInt64 Xor(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; - public static System.Data.SqlTypes.SqlInt64 Zero; + public static readonly System.Data.SqlTypes.SqlInt64 Zero; } public struct SqlMoney : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { @@ -2896,11 +2896,11 @@ namespace System public bool IsNull { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlMoney MaxValue; - public static System.Data.SqlTypes.SqlMoney MinValue; + public static readonly System.Data.SqlTypes.SqlMoney MaxValue; + public static readonly System.Data.SqlTypes.SqlMoney MinValue; public static System.Data.SqlTypes.SqlMoney Multiply(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; - public static System.Data.SqlTypes.SqlMoney Null; + public static readonly System.Data.SqlTypes.SqlMoney Null; public static System.Data.SqlTypes.SqlMoney operator +(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; public static System.Data.SqlTypes.SqlMoney operator /(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; @@ -2944,7 +2944,7 @@ namespace System public override string ToString() => throw null; public decimal Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public static System.Data.SqlTypes.SqlMoney Zero; + public static readonly System.Data.SqlTypes.SqlMoney Zero; } public sealed class SqlNotFilledException : System.Data.SqlTypes.SqlTypeException { @@ -2977,11 +2977,11 @@ namespace System public bool IsNull { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlSingle MaxValue; - public static System.Data.SqlTypes.SqlSingle MinValue; + public static readonly System.Data.SqlTypes.SqlSingle MaxValue; + public static readonly System.Data.SqlTypes.SqlSingle MinValue; public static System.Data.SqlTypes.SqlSingle Multiply(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; - public static System.Data.SqlTypes.SqlSingle Null; + public static readonly System.Data.SqlTypes.SqlSingle Null; public static System.Data.SqlTypes.SqlSingle operator +(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; public static System.Data.SqlTypes.SqlSingle operator /(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; @@ -3019,13 +3019,13 @@ namespace System public override string ToString() => throw null; public float Value { get => throw null; } void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; - public static System.Data.SqlTypes.SqlSingle Zero; + public static readonly System.Data.SqlTypes.SqlSingle Zero; } public struct SqlString : System.IComparable, System.IEquatable, System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlString Add(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; - public static int BinarySort; - public static int BinarySort2; + public static readonly int BinarySort; + public static readonly int BinarySort2; public System.Data.SqlTypes.SqlString Clone() => throw null; public System.Globalization.CompareInfo CompareInfo { get => throw null; } public static System.Globalization.CompareOptions CompareOptionsFromSqlCompareOptions(System.Data.SqlTypes.SqlCompareOptions compareOptions) => throw null; @@ -3050,16 +3050,16 @@ namespace System public static System.Xml.XmlQualifiedName GetXsdType(System.Xml.Schema.XmlSchemaSet schemaSet) => throw null; public static System.Data.SqlTypes.SqlBoolean GreaterThan(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static System.Data.SqlTypes.SqlBoolean GreaterThanOrEqual(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; - public static int IgnoreCase; - public static int IgnoreKanaType; - public static int IgnoreNonSpace; - public static int IgnoreWidth; + public static readonly int IgnoreCase; + public static readonly int IgnoreKanaType; + public static readonly int IgnoreNonSpace; + public static readonly int IgnoreWidth; public bool IsNull { get => throw null; } public int LCID { get => throw null; } public static System.Data.SqlTypes.SqlBoolean LessThan(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static System.Data.SqlTypes.SqlBoolean LessThanOrEqual(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static System.Data.SqlTypes.SqlBoolean NotEquals(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; - public static System.Data.SqlTypes.SqlString Null; + public static readonly System.Data.SqlTypes.SqlString Null; public static System.Data.SqlTypes.SqlString operator +(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static System.Data.SqlTypes.SqlBoolean operator ==(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; public static explicit operator System.Data.SqlTypes.SqlString(System.Data.SqlTypes.SqlBoolean x) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs index a9fe8c2fc62..4f03f5699da 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs @@ -178,27 +178,27 @@ namespace System public class SymDocumentType { public SymDocumentType() => throw null; - public static System.Guid Text; + public static readonly System.Guid Text; } public class SymLanguageType { - public static System.Guid Basic; - public static System.Guid C; - public static System.Guid Cobol; - public static System.Guid CPlusPlus; - public static System.Guid CSharp; + public static readonly System.Guid Basic; + public static readonly System.Guid C; + public static readonly System.Guid Cobol; + public static readonly System.Guid CPlusPlus; + public static readonly System.Guid CSharp; public SymLanguageType() => throw null; - public static System.Guid ILAssembly; - public static System.Guid Java; - public static System.Guid JScript; - public static System.Guid MCPlusPlus; - public static System.Guid Pascal; - public static System.Guid SMC; + public static readonly System.Guid ILAssembly; + public static readonly System.Guid Java; + public static readonly System.Guid JScript; + public static readonly System.Guid MCPlusPlus; + public static readonly System.Guid Pascal; + public static readonly System.Guid SMC; } public class SymLanguageVendor { public SymLanguageVendor() => throw null; - public static System.Guid Microsoft; + public static readonly System.Guid Microsoft; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.Primitives.cs index 5f566248984..ee3d6ae75b5 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Drawing.Primitives.cs @@ -50,7 +50,7 @@ namespace System public static System.Drawing.Color DeepSkyBlue { get => throw null; } public static System.Drawing.Color DimGray { get => throw null; } public static System.Drawing.Color DodgerBlue { get => throw null; } - public static System.Drawing.Color Empty; + public static readonly System.Drawing.Color Empty; public bool Equals(System.Drawing.Color other) => throw null; public override bool Equals(object obj) => throw null; public static System.Drawing.Color Firebrick { get => throw null; } @@ -370,7 +370,7 @@ namespace System public Point(System.Drawing.Size sz) => throw null; public Point(int dw) => throw null; public Point(int x, int y) => throw null; - public static System.Drawing.Point Empty; + public static readonly System.Drawing.Point Empty; public bool Equals(System.Drawing.Point other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; @@ -396,7 +396,7 @@ namespace System public static System.Drawing.PointF Add(System.Drawing.PointF pt, System.Drawing.SizeF sz) => throw null; public PointF(float x, float y) => throw null; public PointF(System.Numerics.Vector2 vector) => throw null; - public static System.Drawing.PointF Empty; + public static readonly System.Drawing.PointF Empty; public bool Equals(System.Drawing.PointF other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; @@ -425,7 +425,7 @@ namespace System public bool Contains(int x, int y) => throw null; public Rectangle(System.Drawing.Point location, System.Drawing.Size size) => throw null; public Rectangle(int x, int y, int width, int height) => throw null; - public static System.Drawing.Rectangle Empty; + public static readonly System.Drawing.Rectangle Empty; public bool Equals(System.Drawing.Rectangle other) => throw null; public override bool Equals(object obj) => throw null; public static System.Drawing.Rectangle FromLTRB(int left, int top, int right, int bottom) => throw null; @@ -464,7 +464,7 @@ namespace System public RectangleF(System.Drawing.PointF location, System.Drawing.SizeF size) => throw null; public RectangleF(float x, float y, float width, float height) => throw null; public RectangleF(System.Numerics.Vector4 vector) => throw null; - public static System.Drawing.RectangleF Empty; + public static readonly System.Drawing.RectangleF Empty; public bool Equals(System.Drawing.RectangleF other) => throw null; public override bool Equals(object obj) => throw null; public static System.Drawing.RectangleF FromLTRB(float left, float top, float right, float bottom) => throw null; @@ -502,7 +502,7 @@ namespace System public static System.Drawing.Size Ceiling(System.Drawing.SizeF value) => throw null; public Size(System.Drawing.Point pt) => throw null; public Size(int width, int height) => throw null; - public static System.Drawing.Size Empty; + public static readonly System.Drawing.Size Empty; public bool Equals(System.Drawing.Size other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; @@ -533,7 +533,7 @@ namespace System public SizeF(System.Drawing.SizeF size) => throw null; public SizeF(float width, float height) => throw null; public SizeF(System.Numerics.Vector2 vector) => throw null; - public static System.Drawing.SizeF Empty; + public static readonly System.Drawing.SizeF Empty; public bool Equals(System.Drawing.SizeF other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Asn1.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Asn1.cs index 030b8f957a3..04ec8c2634d 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Asn1.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Formats.Asn1.cs @@ -10,36 +10,36 @@ namespace System { public System.Formats.Asn1.Asn1Tag AsConstructed() => throw null; public System.Formats.Asn1.Asn1Tag AsPrimitive() => throw null; - public static System.Formats.Asn1.Asn1Tag Boolean; + public static readonly System.Formats.Asn1.Asn1Tag Boolean; public int CalculateEncodedSize() => throw null; - public static System.Formats.Asn1.Asn1Tag ConstructedBitString; - public static System.Formats.Asn1.Asn1Tag ConstructedOctetString; + public static readonly System.Formats.Asn1.Asn1Tag ConstructedBitString; + public static readonly System.Formats.Asn1.Asn1Tag ConstructedOctetString; public Asn1Tag(System.Formats.Asn1.TagClass tagClass, int tagValue, bool isConstructed = default(bool)) => throw null; public Asn1Tag(System.Formats.Asn1.UniversalTagNumber universalTagNumber, bool isConstructed = default(bool)) => throw null; public static System.Formats.Asn1.Asn1Tag Decode(System.ReadOnlySpan source, out int bytesConsumed) => throw null; public int Encode(System.Span destination) => throw null; - public static System.Formats.Asn1.Asn1Tag Enumerated; + public static readonly System.Formats.Asn1.Asn1Tag Enumerated; public bool Equals(System.Formats.Asn1.Asn1Tag other) => throw null; public override bool Equals(object obj) => throw null; - public static System.Formats.Asn1.Asn1Tag GeneralizedTime; + public static readonly System.Formats.Asn1.Asn1Tag GeneralizedTime; public override int GetHashCode() => throw null; public bool HasSameClassAndValue(System.Formats.Asn1.Asn1Tag other) => throw null; - public static System.Formats.Asn1.Asn1Tag Integer; + public static readonly System.Formats.Asn1.Asn1Tag Integer; public bool IsConstructed { get => throw null; } - public static System.Formats.Asn1.Asn1Tag Null; - public static System.Formats.Asn1.Asn1Tag ObjectIdentifier; + public static readonly System.Formats.Asn1.Asn1Tag Null; + public static readonly System.Formats.Asn1.Asn1Tag ObjectIdentifier; public static bool operator ==(System.Formats.Asn1.Asn1Tag left, System.Formats.Asn1.Asn1Tag right) => throw null; public static bool operator !=(System.Formats.Asn1.Asn1Tag left, System.Formats.Asn1.Asn1Tag right) => throw null; - public static System.Formats.Asn1.Asn1Tag PrimitiveBitString; - public static System.Formats.Asn1.Asn1Tag PrimitiveOctetString; - public static System.Formats.Asn1.Asn1Tag Sequence; - public static System.Formats.Asn1.Asn1Tag SetOf; + public static readonly System.Formats.Asn1.Asn1Tag PrimitiveBitString; + public static readonly System.Formats.Asn1.Asn1Tag PrimitiveOctetString; + public static readonly System.Formats.Asn1.Asn1Tag Sequence; + public static readonly System.Formats.Asn1.Asn1Tag SetOf; public System.Formats.Asn1.TagClass TagClass { get => throw null; } public int TagValue { get => throw null; } public override string ToString() => throw null; public static bool TryDecode(System.ReadOnlySpan source, out System.Formats.Asn1.Asn1Tag tag, out int bytesConsumed) => throw null; public bool TryEncode(System.Span destination, out int bytesWritten) => throw null; - public static System.Formats.Asn1.Asn1Tag UtcTime; + public static readonly System.Formats.Asn1.Asn1Tag UtcTime; } public class AsnContentException : System.Exception { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs index 2fb0a6079be..6360c3eee21 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Linq.Expressions.cs @@ -16,7 +16,7 @@ namespace System public abstract class BindingRestrictions { public static System.Dynamic.BindingRestrictions Combine(System.Collections.Generic.IList contributingObjects) => throw null; - public static System.Dynamic.BindingRestrictions Empty; + public static readonly System.Dynamic.BindingRestrictions Empty; public static System.Dynamic.BindingRestrictions GetExpressionRestriction(System.Linq.Expressions.Expression expression) => throw null; public static System.Dynamic.BindingRestrictions GetInstanceRestriction(System.Linq.Expressions.Expression expression, object instance) => throw null; public static System.Dynamic.BindingRestrictions GetTypeRestriction(System.Linq.Expressions.Expression expression, System.Type type) => throw null; @@ -87,7 +87,7 @@ namespace System public static System.Dynamic.DynamicMetaObject Create(object value, System.Linq.Expressions.Expression expression) => throw null; public DynamicMetaObject(System.Linq.Expressions.Expression expression, System.Dynamic.BindingRestrictions restrictions) => throw null; public DynamicMetaObject(System.Linq.Expressions.Expression expression, System.Dynamic.BindingRestrictions restrictions, object value) => throw null; - public static System.Dynamic.DynamicMetaObject[] EmptyMetaObjects; + public static readonly System.Dynamic.DynamicMetaObject[] EmptyMetaObjects; public System.Linq.Expressions.Expression Expression { get => throw null; } public virtual System.Collections.Generic.IEnumerable GetDynamicMemberNames() => throw null; public bool HasValue { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs index 878a311f329..2bd187f3ac9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs @@ -132,7 +132,7 @@ namespace System public ReadOnlySequence(System.ReadOnlyMemory memory) => throw null; public ReadOnlySequence(T[] array) => throw null; public ReadOnlySequence(T[] array, int start, int length) => throw null; - public static System.Buffers.ReadOnlySequence Empty; + public static readonly System.Buffers.ReadOnlySequence Empty; public System.SequencePosition End { get => throw null; } public struct Enumerator { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs index bbf3122d65c..5f4ad524c3b 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.NetworkInformation.cs @@ -361,7 +361,7 @@ namespace System public override bool Equals(object comparand) => throw null; public byte[] GetAddressBytes() => throw null; public override int GetHashCode() => throw null; - public static System.Net.NetworkInformation.PhysicalAddress None; + public static readonly System.Net.NetworkInformation.PhysicalAddress None; public static System.Net.NetworkInformation.PhysicalAddress Parse(System.ReadOnlySpan address) => throw null; public static System.Net.NetworkInformation.PhysicalAddress Parse(string address) => throw null; public override string ToString() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs index 89845583bbd..28d63fd3acf 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs @@ -217,11 +217,11 @@ namespace System } public static class HttpVersion { - public static System.Version Unknown; - public static System.Version Version10; - public static System.Version Version11; - public static System.Version Version20; - public static System.Version Version30; + public static readonly System.Version Unknown; + public static readonly System.Version Version10; + public static readonly System.Version Version11; + public static readonly System.Version Version20; + public static readonly System.Version Version30; } public interface ICredentials { @@ -235,8 +235,8 @@ namespace System { public long Address { get => throw null; set { } } public System.Net.Sockets.AddressFamily AddressFamily { get => throw null; } - public static System.Net.IPAddress Any; - public static System.Net.IPAddress Broadcast; + public static readonly System.Net.IPAddress Any; + public static readonly System.Net.IPAddress Broadcast; public IPAddress(byte[] address) => throw null; public IPAddress(byte[] address, long scopeid) => throw null; public IPAddress(long newAddress) => throw null; @@ -248,9 +248,9 @@ namespace System public static short HostToNetworkOrder(short host) => throw null; public static int HostToNetworkOrder(int host) => throw null; public static long HostToNetworkOrder(long host) => throw null; - public static System.Net.IPAddress IPv6Any; - public static System.Net.IPAddress IPv6Loopback; - public static System.Net.IPAddress IPv6None; + public static readonly System.Net.IPAddress IPv6Any; + public static readonly System.Net.IPAddress IPv6Loopback; + public static readonly System.Net.IPAddress IPv6None; public bool IsIPv4MappedToIPv6 { get => throw null; } public bool IsIPv6LinkLocal { get => throw null; } public bool IsIPv6Multicast { get => throw null; } @@ -258,13 +258,13 @@ namespace System public bool IsIPv6Teredo { get => throw null; } public bool IsIPv6UniqueLocal { get => throw null; } public static bool IsLoopback(System.Net.IPAddress address) => throw null; - public static System.Net.IPAddress Loopback; + public static readonly System.Net.IPAddress Loopback; public System.Net.IPAddress MapToIPv4() => throw null; public System.Net.IPAddress MapToIPv6() => throw null; public static short NetworkToHostOrder(short network) => throw null; public static int NetworkToHostOrder(int network) => throw null; public static long NetworkToHostOrder(long network) => throw null; - public static System.Net.IPAddress None; + public static readonly System.Net.IPAddress None; public static System.Net.IPAddress Parse(System.ReadOnlySpan ipSpan) => throw null; public static System.Net.IPAddress Parse(string ipString) => throw null; public long ScopeId { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Security.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Security.cs index aac87009ee0..da886c9e846 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Security.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Security.cs @@ -173,9 +173,9 @@ namespace System public bool Equals(System.Net.Security.SslApplicationProtocol other) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; - public static System.Net.Security.SslApplicationProtocol Http11; - public static System.Net.Security.SslApplicationProtocol Http2; - public static System.Net.Security.SslApplicationProtocol Http3; + public static readonly System.Net.Security.SslApplicationProtocol Http11; + public static readonly System.Net.Security.SslApplicationProtocol Http2; + public static readonly System.Net.Security.SslApplicationProtocol Http3; public static bool operator ==(System.Net.Security.SslApplicationProtocol left, System.Net.Security.SslApplicationProtocol right) => throw null; public static bool operator !=(System.Net.Security.SslApplicationProtocol left, System.Net.Security.SslApplicationProtocol right) => throw null; public System.ReadOnlyMemory Protocol { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs index 1abc5dde006..5435223d635 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.ObjectModel.cs @@ -129,7 +129,7 @@ namespace System public TypeConverterAttribute() => throw null; public TypeConverterAttribute(string typeName) => throw null; public TypeConverterAttribute(System.Type type) => throw null; - public static System.ComponentModel.TypeConverterAttribute Default; + public static readonly System.ComponentModel.TypeConverterAttribute Default; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs index 28df0705534..0e286dbeb30 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs @@ -930,7 +930,7 @@ namespace System public static System.Reflection.Metadata.GuidHandle GuidHandle(int offset) => throw null; public static System.Reflection.Metadata.Handle Handle(int token) => throw null; public static System.Reflection.Metadata.EntityHandle Handle(System.Reflection.Metadata.Ecma335.TableIndex tableIndex, int rowNumber) => throw null; - public static int HeapCount; + public static readonly int HeapCount; public static System.Reflection.Metadata.ImportScopeHandle ImportScopeHandle(int rowNumber) => throw null; public static System.Reflection.Metadata.InterfaceImplementationHandle InterfaceImplementationHandle(int rowNumber) => throw null; public static System.Reflection.Metadata.LocalConstantHandle LocalConstantHandle(int rowNumber) => throw null; @@ -947,7 +947,7 @@ namespace System public static System.Reflection.Metadata.PropertyDefinitionHandle PropertyDefinitionHandle(int rowNumber) => throw null; public static System.Reflection.Metadata.StandaloneSignatureHandle StandaloneSignatureHandle(int rowNumber) => throw null; public static System.Reflection.Metadata.StringHandle StringHandle(int offset) => throw null; - public static int TableCount; + public static readonly int TableCount; public static bool TryGetHeapIndex(System.Reflection.Metadata.HandleKind type, out System.Reflection.Metadata.Ecma335.HeapIndex index) => throw null; public static bool TryGetTableIndex(System.Reflection.Metadata.HandleKind type, out System.Reflection.Metadata.Ecma335.TableIndex index) => throw null; public static System.Reflection.Metadata.TypeDefinitionHandle TypeDefinitionHandle(int rowNumber) => throw null; @@ -1160,13 +1160,13 @@ namespace System } public struct EntityHandle : System.IEquatable { - public static System.Reflection.Metadata.AssemblyDefinitionHandle AssemblyDefinition; + public static readonly System.Reflection.Metadata.AssemblyDefinitionHandle AssemblyDefinition; public override bool Equals(object obj) => throw null; public bool Equals(System.Reflection.Metadata.EntityHandle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } public System.Reflection.Metadata.HandleKind Kind { get => throw null; } - public static System.Reflection.Metadata.ModuleDefinitionHandle ModuleDefinition; + public static readonly System.Reflection.Metadata.ModuleDefinitionHandle ModuleDefinition; public static bool operator ==(System.Reflection.Metadata.EntityHandle left, System.Reflection.Metadata.EntityHandle right) => throw null; public static explicit operator System.Reflection.Metadata.EntityHandle(System.Reflection.Metadata.Handle handle) => throw null; public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.EntityHandle handle) => throw null; @@ -1397,13 +1397,13 @@ namespace System } public struct Handle : System.IEquatable { - public static System.Reflection.Metadata.AssemblyDefinitionHandle AssemblyDefinition; + public static readonly System.Reflection.Metadata.AssemblyDefinitionHandle AssemblyDefinition; public override bool Equals(object obj) => throw null; public bool Equals(System.Reflection.Metadata.Handle other) => throw null; public override int GetHashCode() => throw null; public bool IsNil { get => throw null; } public System.Reflection.Metadata.HandleKind Kind { get => throw null; } - public static System.Reflection.Metadata.ModuleDefinitionHandle ModuleDefinition; + public static readonly System.Reflection.Metadata.ModuleDefinitionHandle ModuleDefinition; public static bool operator ==(System.Reflection.Metadata.Handle left, System.Reflection.Metadata.Handle right) => throw null; public static bool operator !=(System.Reflection.Metadata.Handle left, System.Reflection.Metadata.Handle right) => throw null; } @@ -2934,8 +2934,8 @@ namespace System public struct DirectoryEntry { public DirectoryEntry(int relativeVirtualAddress, int size) => throw null; - public int RelativeVirtualAddress; - public int Size; + public readonly int RelativeVirtualAddress; + public readonly int Size; } [System.Flags] public enum DllCharacteristics : ushort @@ -3010,9 +3010,9 @@ namespace System public bool IsDeterministic { get => throw null; } protected struct Section { - public System.Reflection.PortableExecutable.SectionCharacteristics Characteristics; + public readonly System.Reflection.PortableExecutable.SectionCharacteristics Characteristics; public Section(string name, System.Reflection.PortableExecutable.SectionCharacteristics characteristics) => throw null; - public string Name; + public readonly string Name; } public System.Reflection.Metadata.BlobContentId Serialize(System.Reflection.Metadata.BlobBuilder builder) => throw null; protected abstract System.Reflection.Metadata.BlobBuilder SerializeSection(string name, System.Reflection.PortableExecutable.SectionLocation location); diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Primitives.cs index fbec9354a35..80a3a90d0cc 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Primitives.cs @@ -37,233 +37,233 @@ namespace System } public class OpCodes { - public static System.Reflection.Emit.OpCode Add; - public static System.Reflection.Emit.OpCode Add_Ovf; - public static System.Reflection.Emit.OpCode Add_Ovf_Un; - public static System.Reflection.Emit.OpCode And; - public static System.Reflection.Emit.OpCode Arglist; - public static System.Reflection.Emit.OpCode Beq; - public static System.Reflection.Emit.OpCode Beq_S; - public static System.Reflection.Emit.OpCode Bge; - public static System.Reflection.Emit.OpCode Bge_S; - public static System.Reflection.Emit.OpCode Bge_Un; - public static System.Reflection.Emit.OpCode Bge_Un_S; - public static System.Reflection.Emit.OpCode Bgt; - public static System.Reflection.Emit.OpCode Bgt_S; - public static System.Reflection.Emit.OpCode Bgt_Un; - public static System.Reflection.Emit.OpCode Bgt_Un_S; - public static System.Reflection.Emit.OpCode Ble; - public static System.Reflection.Emit.OpCode Ble_S; - public static System.Reflection.Emit.OpCode Ble_Un; - public static System.Reflection.Emit.OpCode Ble_Un_S; - public static System.Reflection.Emit.OpCode Blt; - public static System.Reflection.Emit.OpCode Blt_S; - public static System.Reflection.Emit.OpCode Blt_Un; - public static System.Reflection.Emit.OpCode Blt_Un_S; - public static System.Reflection.Emit.OpCode Bne_Un; - public static System.Reflection.Emit.OpCode Bne_Un_S; - public static System.Reflection.Emit.OpCode Box; - public static System.Reflection.Emit.OpCode Br; - public static System.Reflection.Emit.OpCode Br_S; - public static System.Reflection.Emit.OpCode Break; - public static System.Reflection.Emit.OpCode Brfalse; - public static System.Reflection.Emit.OpCode Brfalse_S; - public static System.Reflection.Emit.OpCode Brtrue; - public static System.Reflection.Emit.OpCode Brtrue_S; - public static System.Reflection.Emit.OpCode Call; - public static System.Reflection.Emit.OpCode Calli; - public static System.Reflection.Emit.OpCode Callvirt; - public static System.Reflection.Emit.OpCode Castclass; - public static System.Reflection.Emit.OpCode Ceq; - public static System.Reflection.Emit.OpCode Cgt; - public static System.Reflection.Emit.OpCode Cgt_Un; - public static System.Reflection.Emit.OpCode Ckfinite; - public static System.Reflection.Emit.OpCode Clt; - public static System.Reflection.Emit.OpCode Clt_Un; - public static System.Reflection.Emit.OpCode Constrained; - public static System.Reflection.Emit.OpCode Conv_I; - public static System.Reflection.Emit.OpCode Conv_I1; - public static System.Reflection.Emit.OpCode Conv_I2; - public static System.Reflection.Emit.OpCode Conv_I4; - public static System.Reflection.Emit.OpCode Conv_I8; - public static System.Reflection.Emit.OpCode Conv_Ovf_I; - public static System.Reflection.Emit.OpCode Conv_Ovf_I_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_I1; - public static System.Reflection.Emit.OpCode Conv_Ovf_I1_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_I2; - public static System.Reflection.Emit.OpCode Conv_Ovf_I2_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_I4; - public static System.Reflection.Emit.OpCode Conv_Ovf_I4_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_I8; - public static System.Reflection.Emit.OpCode Conv_Ovf_I8_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_U; - public static System.Reflection.Emit.OpCode Conv_Ovf_U_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_U1; - public static System.Reflection.Emit.OpCode Conv_Ovf_U1_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_U2; - public static System.Reflection.Emit.OpCode Conv_Ovf_U2_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_U4; - public static System.Reflection.Emit.OpCode Conv_Ovf_U4_Un; - public static System.Reflection.Emit.OpCode Conv_Ovf_U8; - public static System.Reflection.Emit.OpCode Conv_Ovf_U8_Un; - public static System.Reflection.Emit.OpCode Conv_R_Un; - public static System.Reflection.Emit.OpCode Conv_R4; - public static System.Reflection.Emit.OpCode Conv_R8; - public static System.Reflection.Emit.OpCode Conv_U; - public static System.Reflection.Emit.OpCode Conv_U1; - public static System.Reflection.Emit.OpCode Conv_U2; - public static System.Reflection.Emit.OpCode Conv_U4; - public static System.Reflection.Emit.OpCode Conv_U8; - public static System.Reflection.Emit.OpCode Cpblk; - public static System.Reflection.Emit.OpCode Cpobj; - public static System.Reflection.Emit.OpCode Div; - public static System.Reflection.Emit.OpCode Div_Un; - public static System.Reflection.Emit.OpCode Dup; - public static System.Reflection.Emit.OpCode Endfilter; - public static System.Reflection.Emit.OpCode Endfinally; - public static System.Reflection.Emit.OpCode Initblk; - public static System.Reflection.Emit.OpCode Initobj; - public static System.Reflection.Emit.OpCode Isinst; - public static System.Reflection.Emit.OpCode Jmp; - public static System.Reflection.Emit.OpCode Ldarg; - public static System.Reflection.Emit.OpCode Ldarg_0; - public static System.Reflection.Emit.OpCode Ldarg_1; - public static System.Reflection.Emit.OpCode Ldarg_2; - public static System.Reflection.Emit.OpCode Ldarg_3; - public static System.Reflection.Emit.OpCode Ldarg_S; - public static System.Reflection.Emit.OpCode Ldarga; - public static System.Reflection.Emit.OpCode Ldarga_S; - public static System.Reflection.Emit.OpCode Ldc_I4; - public static System.Reflection.Emit.OpCode Ldc_I4_0; - public static System.Reflection.Emit.OpCode Ldc_I4_1; - public static System.Reflection.Emit.OpCode Ldc_I4_2; - public static System.Reflection.Emit.OpCode Ldc_I4_3; - public static System.Reflection.Emit.OpCode Ldc_I4_4; - public static System.Reflection.Emit.OpCode Ldc_I4_5; - public static System.Reflection.Emit.OpCode Ldc_I4_6; - public static System.Reflection.Emit.OpCode Ldc_I4_7; - public static System.Reflection.Emit.OpCode Ldc_I4_8; - public static System.Reflection.Emit.OpCode Ldc_I4_M1; - public static System.Reflection.Emit.OpCode Ldc_I4_S; - public static System.Reflection.Emit.OpCode Ldc_I8; - public static System.Reflection.Emit.OpCode Ldc_R4; - public static System.Reflection.Emit.OpCode Ldc_R8; - public static System.Reflection.Emit.OpCode Ldelem; - public static System.Reflection.Emit.OpCode Ldelem_I; - public static System.Reflection.Emit.OpCode Ldelem_I1; - public static System.Reflection.Emit.OpCode Ldelem_I2; - public static System.Reflection.Emit.OpCode Ldelem_I4; - public static System.Reflection.Emit.OpCode Ldelem_I8; - public static System.Reflection.Emit.OpCode Ldelem_R4; - public static System.Reflection.Emit.OpCode Ldelem_R8; - public static System.Reflection.Emit.OpCode Ldelem_Ref; - public static System.Reflection.Emit.OpCode Ldelem_U1; - public static System.Reflection.Emit.OpCode Ldelem_U2; - public static System.Reflection.Emit.OpCode Ldelem_U4; - public static System.Reflection.Emit.OpCode Ldelema; - public static System.Reflection.Emit.OpCode Ldfld; - public static System.Reflection.Emit.OpCode Ldflda; - public static System.Reflection.Emit.OpCode Ldftn; - public static System.Reflection.Emit.OpCode Ldind_I; - public static System.Reflection.Emit.OpCode Ldind_I1; - public static System.Reflection.Emit.OpCode Ldind_I2; - public static System.Reflection.Emit.OpCode Ldind_I4; - public static System.Reflection.Emit.OpCode Ldind_I8; - public static System.Reflection.Emit.OpCode Ldind_R4; - public static System.Reflection.Emit.OpCode Ldind_R8; - public static System.Reflection.Emit.OpCode Ldind_Ref; - public static System.Reflection.Emit.OpCode Ldind_U1; - public static System.Reflection.Emit.OpCode Ldind_U2; - public static System.Reflection.Emit.OpCode Ldind_U4; - public static System.Reflection.Emit.OpCode Ldlen; - public static System.Reflection.Emit.OpCode Ldloc; - public static System.Reflection.Emit.OpCode Ldloc_0; - public static System.Reflection.Emit.OpCode Ldloc_1; - public static System.Reflection.Emit.OpCode Ldloc_2; - public static System.Reflection.Emit.OpCode Ldloc_3; - public static System.Reflection.Emit.OpCode Ldloc_S; - public static System.Reflection.Emit.OpCode Ldloca; - public static System.Reflection.Emit.OpCode Ldloca_S; - public static System.Reflection.Emit.OpCode Ldnull; - public static System.Reflection.Emit.OpCode Ldobj; - public static System.Reflection.Emit.OpCode Ldsfld; - public static System.Reflection.Emit.OpCode Ldsflda; - public static System.Reflection.Emit.OpCode Ldstr; - public static System.Reflection.Emit.OpCode Ldtoken; - public static System.Reflection.Emit.OpCode Ldvirtftn; - public static System.Reflection.Emit.OpCode Leave; - public static System.Reflection.Emit.OpCode Leave_S; - public static System.Reflection.Emit.OpCode Localloc; - public static System.Reflection.Emit.OpCode Mkrefany; - public static System.Reflection.Emit.OpCode Mul; - public static System.Reflection.Emit.OpCode Mul_Ovf; - public static System.Reflection.Emit.OpCode Mul_Ovf_Un; - public static System.Reflection.Emit.OpCode Neg; - public static System.Reflection.Emit.OpCode Newarr; - public static System.Reflection.Emit.OpCode Newobj; - public static System.Reflection.Emit.OpCode Nop; - public static System.Reflection.Emit.OpCode Not; - public static System.Reflection.Emit.OpCode Or; - public static System.Reflection.Emit.OpCode Pop; - public static System.Reflection.Emit.OpCode Prefix1; - public static System.Reflection.Emit.OpCode Prefix2; - public static System.Reflection.Emit.OpCode Prefix3; - public static System.Reflection.Emit.OpCode Prefix4; - public static System.Reflection.Emit.OpCode Prefix5; - public static System.Reflection.Emit.OpCode Prefix6; - public static System.Reflection.Emit.OpCode Prefix7; - public static System.Reflection.Emit.OpCode Prefixref; - public static System.Reflection.Emit.OpCode Readonly; - public static System.Reflection.Emit.OpCode Refanytype; - public static System.Reflection.Emit.OpCode Refanyval; - public static System.Reflection.Emit.OpCode Rem; - public static System.Reflection.Emit.OpCode Rem_Un; - public static System.Reflection.Emit.OpCode Ret; - public static System.Reflection.Emit.OpCode Rethrow; - public static System.Reflection.Emit.OpCode Shl; - public static System.Reflection.Emit.OpCode Shr; - public static System.Reflection.Emit.OpCode Shr_Un; - public static System.Reflection.Emit.OpCode Sizeof; - public static System.Reflection.Emit.OpCode Starg; - public static System.Reflection.Emit.OpCode Starg_S; - public static System.Reflection.Emit.OpCode Stelem; - public static System.Reflection.Emit.OpCode Stelem_I; - public static System.Reflection.Emit.OpCode Stelem_I1; - public static System.Reflection.Emit.OpCode Stelem_I2; - public static System.Reflection.Emit.OpCode Stelem_I4; - public static System.Reflection.Emit.OpCode Stelem_I8; - public static System.Reflection.Emit.OpCode Stelem_R4; - public static System.Reflection.Emit.OpCode Stelem_R8; - public static System.Reflection.Emit.OpCode Stelem_Ref; - public static System.Reflection.Emit.OpCode Stfld; - public static System.Reflection.Emit.OpCode Stind_I; - public static System.Reflection.Emit.OpCode Stind_I1; - public static System.Reflection.Emit.OpCode Stind_I2; - public static System.Reflection.Emit.OpCode Stind_I4; - public static System.Reflection.Emit.OpCode Stind_I8; - public static System.Reflection.Emit.OpCode Stind_R4; - public static System.Reflection.Emit.OpCode Stind_R8; - public static System.Reflection.Emit.OpCode Stind_Ref; - public static System.Reflection.Emit.OpCode Stloc; - public static System.Reflection.Emit.OpCode Stloc_0; - public static System.Reflection.Emit.OpCode Stloc_1; - public static System.Reflection.Emit.OpCode Stloc_2; - public static System.Reflection.Emit.OpCode Stloc_3; - public static System.Reflection.Emit.OpCode Stloc_S; - public static System.Reflection.Emit.OpCode Stobj; - public static System.Reflection.Emit.OpCode Stsfld; - public static System.Reflection.Emit.OpCode Sub; - public static System.Reflection.Emit.OpCode Sub_Ovf; - public static System.Reflection.Emit.OpCode Sub_Ovf_Un; - public static System.Reflection.Emit.OpCode Switch; - public static System.Reflection.Emit.OpCode Tailcall; + public static readonly System.Reflection.Emit.OpCode Add; + public static readonly System.Reflection.Emit.OpCode Add_Ovf; + public static readonly System.Reflection.Emit.OpCode Add_Ovf_Un; + public static readonly System.Reflection.Emit.OpCode And; + public static readonly System.Reflection.Emit.OpCode Arglist; + public static readonly System.Reflection.Emit.OpCode Beq; + public static readonly System.Reflection.Emit.OpCode Beq_S; + public static readonly System.Reflection.Emit.OpCode Bge; + public static readonly System.Reflection.Emit.OpCode Bge_S; + public static readonly System.Reflection.Emit.OpCode Bge_Un; + public static readonly System.Reflection.Emit.OpCode Bge_Un_S; + public static readonly System.Reflection.Emit.OpCode Bgt; + public static readonly System.Reflection.Emit.OpCode Bgt_S; + public static readonly System.Reflection.Emit.OpCode Bgt_Un; + public static readonly System.Reflection.Emit.OpCode Bgt_Un_S; + public static readonly System.Reflection.Emit.OpCode Ble; + public static readonly System.Reflection.Emit.OpCode Ble_S; + public static readonly System.Reflection.Emit.OpCode Ble_Un; + public static readonly System.Reflection.Emit.OpCode Ble_Un_S; + public static readonly System.Reflection.Emit.OpCode Blt; + public static readonly System.Reflection.Emit.OpCode Blt_S; + public static readonly System.Reflection.Emit.OpCode Blt_Un; + public static readonly System.Reflection.Emit.OpCode Blt_Un_S; + public static readonly System.Reflection.Emit.OpCode Bne_Un; + public static readonly System.Reflection.Emit.OpCode Bne_Un_S; + public static readonly System.Reflection.Emit.OpCode Box; + public static readonly System.Reflection.Emit.OpCode Br; + public static readonly System.Reflection.Emit.OpCode Br_S; + public static readonly System.Reflection.Emit.OpCode Break; + public static readonly System.Reflection.Emit.OpCode Brfalse; + public static readonly System.Reflection.Emit.OpCode Brfalse_S; + public static readonly System.Reflection.Emit.OpCode Brtrue; + public static readonly System.Reflection.Emit.OpCode Brtrue_S; + public static readonly System.Reflection.Emit.OpCode Call; + public static readonly System.Reflection.Emit.OpCode Calli; + public static readonly System.Reflection.Emit.OpCode Callvirt; + public static readonly System.Reflection.Emit.OpCode Castclass; + public static readonly System.Reflection.Emit.OpCode Ceq; + public static readonly System.Reflection.Emit.OpCode Cgt; + public static readonly System.Reflection.Emit.OpCode Cgt_Un; + public static readonly System.Reflection.Emit.OpCode Ckfinite; + public static readonly System.Reflection.Emit.OpCode Clt; + public static readonly System.Reflection.Emit.OpCode Clt_Un; + public static readonly System.Reflection.Emit.OpCode Constrained; + public static readonly System.Reflection.Emit.OpCode Conv_I; + public static readonly System.Reflection.Emit.OpCode Conv_I1; + public static readonly System.Reflection.Emit.OpCode Conv_I2; + public static readonly System.Reflection.Emit.OpCode Conv_I4; + public static readonly System.Reflection.Emit.OpCode Conv_I8; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I_Un; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I1; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I1_Un; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I2; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I2_Un; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I4; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I4_Un; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I8; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I8_Un; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U_Un; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U1; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U1_Un; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U2; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U2_Un; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U4; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U4_Un; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U8; + public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U8_Un; + public static readonly System.Reflection.Emit.OpCode Conv_R_Un; + public static readonly System.Reflection.Emit.OpCode Conv_R4; + public static readonly System.Reflection.Emit.OpCode Conv_R8; + public static readonly System.Reflection.Emit.OpCode Conv_U; + public static readonly System.Reflection.Emit.OpCode Conv_U1; + public static readonly System.Reflection.Emit.OpCode Conv_U2; + public static readonly System.Reflection.Emit.OpCode Conv_U4; + public static readonly System.Reflection.Emit.OpCode Conv_U8; + public static readonly System.Reflection.Emit.OpCode Cpblk; + public static readonly System.Reflection.Emit.OpCode Cpobj; + public static readonly System.Reflection.Emit.OpCode Div; + public static readonly System.Reflection.Emit.OpCode Div_Un; + public static readonly System.Reflection.Emit.OpCode Dup; + public static readonly System.Reflection.Emit.OpCode Endfilter; + public static readonly System.Reflection.Emit.OpCode Endfinally; + public static readonly System.Reflection.Emit.OpCode Initblk; + public static readonly System.Reflection.Emit.OpCode Initobj; + public static readonly System.Reflection.Emit.OpCode Isinst; + public static readonly System.Reflection.Emit.OpCode Jmp; + public static readonly System.Reflection.Emit.OpCode Ldarg; + public static readonly System.Reflection.Emit.OpCode Ldarg_0; + public static readonly System.Reflection.Emit.OpCode Ldarg_1; + public static readonly System.Reflection.Emit.OpCode Ldarg_2; + public static readonly System.Reflection.Emit.OpCode Ldarg_3; + public static readonly System.Reflection.Emit.OpCode Ldarg_S; + public static readonly System.Reflection.Emit.OpCode Ldarga; + public static readonly System.Reflection.Emit.OpCode Ldarga_S; + public static readonly System.Reflection.Emit.OpCode Ldc_I4; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_0; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_1; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_2; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_3; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_4; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_5; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_6; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_7; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_8; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_M1; + public static readonly System.Reflection.Emit.OpCode Ldc_I4_S; + public static readonly System.Reflection.Emit.OpCode Ldc_I8; + public static readonly System.Reflection.Emit.OpCode Ldc_R4; + public static readonly System.Reflection.Emit.OpCode Ldc_R8; + public static readonly System.Reflection.Emit.OpCode Ldelem; + public static readonly System.Reflection.Emit.OpCode Ldelem_I; + public static readonly System.Reflection.Emit.OpCode Ldelem_I1; + public static readonly System.Reflection.Emit.OpCode Ldelem_I2; + public static readonly System.Reflection.Emit.OpCode Ldelem_I4; + public static readonly System.Reflection.Emit.OpCode Ldelem_I8; + public static readonly System.Reflection.Emit.OpCode Ldelem_R4; + public static readonly System.Reflection.Emit.OpCode Ldelem_R8; + public static readonly System.Reflection.Emit.OpCode Ldelem_Ref; + public static readonly System.Reflection.Emit.OpCode Ldelem_U1; + public static readonly System.Reflection.Emit.OpCode Ldelem_U2; + public static readonly System.Reflection.Emit.OpCode Ldelem_U4; + public static readonly System.Reflection.Emit.OpCode Ldelema; + public static readonly System.Reflection.Emit.OpCode Ldfld; + public static readonly System.Reflection.Emit.OpCode Ldflda; + public static readonly System.Reflection.Emit.OpCode Ldftn; + public static readonly System.Reflection.Emit.OpCode Ldind_I; + public static readonly System.Reflection.Emit.OpCode Ldind_I1; + public static readonly System.Reflection.Emit.OpCode Ldind_I2; + public static readonly System.Reflection.Emit.OpCode Ldind_I4; + public static readonly System.Reflection.Emit.OpCode Ldind_I8; + public static readonly System.Reflection.Emit.OpCode Ldind_R4; + public static readonly System.Reflection.Emit.OpCode Ldind_R8; + public static readonly System.Reflection.Emit.OpCode Ldind_Ref; + public static readonly System.Reflection.Emit.OpCode Ldind_U1; + public static readonly System.Reflection.Emit.OpCode Ldind_U2; + public static readonly System.Reflection.Emit.OpCode Ldind_U4; + public static readonly System.Reflection.Emit.OpCode Ldlen; + public static readonly System.Reflection.Emit.OpCode Ldloc; + public static readonly System.Reflection.Emit.OpCode Ldloc_0; + public static readonly System.Reflection.Emit.OpCode Ldloc_1; + public static readonly System.Reflection.Emit.OpCode Ldloc_2; + public static readonly System.Reflection.Emit.OpCode Ldloc_3; + public static readonly System.Reflection.Emit.OpCode Ldloc_S; + public static readonly System.Reflection.Emit.OpCode Ldloca; + public static readonly System.Reflection.Emit.OpCode Ldloca_S; + public static readonly System.Reflection.Emit.OpCode Ldnull; + public static readonly System.Reflection.Emit.OpCode Ldobj; + public static readonly System.Reflection.Emit.OpCode Ldsfld; + public static readonly System.Reflection.Emit.OpCode Ldsflda; + public static readonly System.Reflection.Emit.OpCode Ldstr; + public static readonly System.Reflection.Emit.OpCode Ldtoken; + public static readonly System.Reflection.Emit.OpCode Ldvirtftn; + public static readonly System.Reflection.Emit.OpCode Leave; + public static readonly System.Reflection.Emit.OpCode Leave_S; + public static readonly System.Reflection.Emit.OpCode Localloc; + public static readonly System.Reflection.Emit.OpCode Mkrefany; + public static readonly System.Reflection.Emit.OpCode Mul; + public static readonly System.Reflection.Emit.OpCode Mul_Ovf; + public static readonly System.Reflection.Emit.OpCode Mul_Ovf_Un; + public static readonly System.Reflection.Emit.OpCode Neg; + public static readonly System.Reflection.Emit.OpCode Newarr; + public static readonly System.Reflection.Emit.OpCode Newobj; + public static readonly System.Reflection.Emit.OpCode Nop; + public static readonly System.Reflection.Emit.OpCode Not; + public static readonly System.Reflection.Emit.OpCode Or; + public static readonly System.Reflection.Emit.OpCode Pop; + public static readonly System.Reflection.Emit.OpCode Prefix1; + public static readonly System.Reflection.Emit.OpCode Prefix2; + public static readonly System.Reflection.Emit.OpCode Prefix3; + public static readonly System.Reflection.Emit.OpCode Prefix4; + public static readonly System.Reflection.Emit.OpCode Prefix5; + public static readonly System.Reflection.Emit.OpCode Prefix6; + public static readonly System.Reflection.Emit.OpCode Prefix7; + public static readonly System.Reflection.Emit.OpCode Prefixref; + public static readonly System.Reflection.Emit.OpCode Readonly; + public static readonly System.Reflection.Emit.OpCode Refanytype; + public static readonly System.Reflection.Emit.OpCode Refanyval; + public static readonly System.Reflection.Emit.OpCode Rem; + public static readonly System.Reflection.Emit.OpCode Rem_Un; + public static readonly System.Reflection.Emit.OpCode Ret; + public static readonly System.Reflection.Emit.OpCode Rethrow; + public static readonly System.Reflection.Emit.OpCode Shl; + public static readonly System.Reflection.Emit.OpCode Shr; + public static readonly System.Reflection.Emit.OpCode Shr_Un; + public static readonly System.Reflection.Emit.OpCode Sizeof; + public static readonly System.Reflection.Emit.OpCode Starg; + public static readonly System.Reflection.Emit.OpCode Starg_S; + public static readonly System.Reflection.Emit.OpCode Stelem; + public static readonly System.Reflection.Emit.OpCode Stelem_I; + public static readonly System.Reflection.Emit.OpCode Stelem_I1; + public static readonly System.Reflection.Emit.OpCode Stelem_I2; + public static readonly System.Reflection.Emit.OpCode Stelem_I4; + public static readonly System.Reflection.Emit.OpCode Stelem_I8; + public static readonly System.Reflection.Emit.OpCode Stelem_R4; + public static readonly System.Reflection.Emit.OpCode Stelem_R8; + public static readonly System.Reflection.Emit.OpCode Stelem_Ref; + public static readonly System.Reflection.Emit.OpCode Stfld; + public static readonly System.Reflection.Emit.OpCode Stind_I; + public static readonly System.Reflection.Emit.OpCode Stind_I1; + public static readonly System.Reflection.Emit.OpCode Stind_I2; + public static readonly System.Reflection.Emit.OpCode Stind_I4; + public static readonly System.Reflection.Emit.OpCode Stind_I8; + public static readonly System.Reflection.Emit.OpCode Stind_R4; + public static readonly System.Reflection.Emit.OpCode Stind_R8; + public static readonly System.Reflection.Emit.OpCode Stind_Ref; + public static readonly System.Reflection.Emit.OpCode Stloc; + public static readonly System.Reflection.Emit.OpCode Stloc_0; + public static readonly System.Reflection.Emit.OpCode Stloc_1; + public static readonly System.Reflection.Emit.OpCode Stloc_2; + public static readonly System.Reflection.Emit.OpCode Stloc_3; + public static readonly System.Reflection.Emit.OpCode Stloc_S; + public static readonly System.Reflection.Emit.OpCode Stobj; + public static readonly System.Reflection.Emit.OpCode Stsfld; + public static readonly System.Reflection.Emit.OpCode Sub; + public static readonly System.Reflection.Emit.OpCode Sub_Ovf; + public static readonly System.Reflection.Emit.OpCode Sub_Ovf_Un; + public static readonly System.Reflection.Emit.OpCode Switch; + public static readonly System.Reflection.Emit.OpCode Tailcall; public static bool TakesSingleByteArgument(System.Reflection.Emit.OpCode inst) => throw null; - public static System.Reflection.Emit.OpCode Throw; - public static System.Reflection.Emit.OpCode Unaligned; - public static System.Reflection.Emit.OpCode Unbox; - public static System.Reflection.Emit.OpCode Unbox_Any; - public static System.Reflection.Emit.OpCode Volatile; - public static System.Reflection.Emit.OpCode Xor; + public static readonly System.Reflection.Emit.OpCode Throw; + public static readonly System.Reflection.Emit.OpCode Unaligned; + public static readonly System.Reflection.Emit.OpCode Unbox; + public static readonly System.Reflection.Emit.OpCode Unbox_Any; + public static readonly System.Reflection.Emit.OpCode Volatile; + public static readonly System.Reflection.Emit.OpCode Xor; } public enum OpCodeType { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs index 2ac0669511f..2104a521051 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs @@ -1204,8 +1204,8 @@ namespace System public static nint StringToHGlobalUni(string s) => throw null; public static void StructureToPtr(object structure, nint ptr, bool fDeleteOld) => throw null; public static void StructureToPtr(T structure, nint ptr, bool fDeleteOld) => throw null; - public static int SystemDefaultCharSize; - public static int SystemMaxDBCSCharSize; + public static readonly int SystemDefaultCharSize; + public static readonly int SystemMaxDBCSCharSize; public static void ThrowExceptionForHR(int errorCode) => throw null; public static void ThrowExceptionForHR(int errorCode, nint errorInfo) => throw null; public static nint UnsafeAddrOfPinnedArrayElement(System.Array arr, int index) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs index e01dfe6c293..ac438a742ed 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.Numerics.cs @@ -234,8 +234,8 @@ namespace System public static System.Numerics.Complex FromPolarCoordinates(double magnitude, double phase) => throw null; public override int GetHashCode() => throw null; public double Imaginary { get => throw null; } - public static System.Numerics.Complex ImaginaryOne; - public static System.Numerics.Complex Infinity; + public static readonly System.Numerics.Complex ImaginaryOne; + public static readonly System.Numerics.Complex Infinity; static bool System.Numerics.INumberBase.IsCanonical(System.Numerics.Complex value) => throw null; static bool System.Numerics.INumberBase.IsComplexNumber(System.Numerics.Complex value) => throw null; static bool System.Numerics.INumberBase.IsEvenInteger(System.Numerics.Complex value) => throw null; @@ -265,10 +265,10 @@ namespace System public static System.Numerics.Complex Multiply(double left, System.Numerics.Complex right) => throw null; public static System.Numerics.Complex Multiply(System.Numerics.Complex left, double right) => throw null; public static System.Numerics.Complex Multiply(System.Numerics.Complex left, System.Numerics.Complex right) => throw null; - public static System.Numerics.Complex NaN; + public static readonly System.Numerics.Complex NaN; public static System.Numerics.Complex Negate(System.Numerics.Complex value) => throw null; static System.Numerics.Complex System.Numerics.ISignedNumber.NegativeOne { get => throw null; } - public static System.Numerics.Complex One; + public static readonly System.Numerics.Complex One; static System.Numerics.Complex System.Numerics.INumberBase.One { get => throw null; } public static System.Numerics.Complex operator +(double left, System.Numerics.Complex right) => throw null; public static System.Numerics.Complex operator +(System.Numerics.Complex left, double right) => throw null; @@ -339,7 +339,7 @@ namespace System static bool System.ISpanParsable.TryParse(System.ReadOnlySpan s, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; static bool System.Numerics.INumberBase.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; static bool System.IParsable.TryParse(string s, System.IFormatProvider provider, out System.Numerics.Complex result) => throw null; - public static System.Numerics.Complex Zero; + public static readonly System.Numerics.Complex Zero; static System.Numerics.Complex System.Numerics.INumberBase.Zero { get => throw null; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs index 20e87f2df8b..d4ec76f23ac 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs @@ -554,7 +554,7 @@ namespace System public static System.Half Int16BitsToHalf(short value) => throw null; public static float Int32BitsToSingle(int value) => throw null; public static double Int64BitsToDouble(long value) => throw null; - public static bool IsLittleEndian; + public static readonly bool IsLittleEndian; public static int SingleToInt32Bits(float value) => throw null; public static uint SingleToUInt32Bits(float value) => throw null; public static bool ToBoolean(byte[] value, int startIndex) => throw null; @@ -603,7 +603,7 @@ namespace System public int CompareTo(object obj) => throw null; public bool Equals(bool obj) => throw null; public override bool Equals(object obj) => throw null; - public static string FalseString; + public static readonly string FalseString; public override int GetHashCode() => throw null; public System.TypeCode GetTypeCode() => throw null; public static bool Parse(System.ReadOnlySpan value) => throw null; @@ -625,7 +625,7 @@ namespace System ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static string TrueString; + public static readonly string TrueString; public bool TryFormat(System.Span destination, out int charsWritten) => throw null; public static bool TryParse(System.ReadOnlySpan value, out bool result) => throw null; public static bool TryParse(string value, out bool result) => throw null; @@ -1153,8 +1153,8 @@ namespace System { public int Compare(object a, object b) => throw null; public Comparer(System.Globalization.CultureInfo culture) => throw null; - public static System.Collections.Comparer Default; - public static System.Collections.Comparer DefaultInvariant; + public static readonly System.Collections.Comparer Default; + public static readonly System.Collections.Comparer DefaultInvariant; public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } public struct DictionaryEntry @@ -1616,7 +1616,7 @@ namespace System public static object ChangeType(object value, System.Type conversionType, System.IFormatProvider provider) => throw null; public static object ChangeType(object value, System.TypeCode typeCode) => throw null; public static object ChangeType(object value, System.TypeCode typeCode, System.IFormatProvider provider) => throw null; - public static object DBNull; + public static readonly object DBNull; public static byte[] FromBase64CharArray(char[] inArray, int offset, int length) => throw null; public static byte[] FromBase64String(string s) => throw null; public static byte[] FromHexString(System.ReadOnlySpan chars) => throw null; @@ -2051,11 +2051,11 @@ namespace System public bool IsDaylightSavingTime() => throw null; public static bool IsLeapYear(int year) => throw null; public System.DateTimeKind Kind { get => throw null; } - public static System.DateTime MaxValue; + public static readonly System.DateTime MaxValue; public int Microsecond { get => throw null; } public int Millisecond { get => throw null; } public int Minute { get => throw null; } - public static System.DateTime MinValue; + public static readonly System.DateTime MinValue; public int Month { get => throw null; } public int Nanosecond { get => throw null; } public static System.DateTime Now { get => throw null; } @@ -2125,7 +2125,7 @@ namespace System public static bool TryParseExact(System.ReadOnlySpan s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) => throw null; public static bool TryParseExact(string s, string format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) => throw null; public static bool TryParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) => throw null; - public static System.DateTime UnixEpoch; + public static readonly System.DateTime UnixEpoch; public static System.DateTime UtcNow { get => throw null; } public int Year { get => throw null; } } @@ -2174,11 +2174,11 @@ namespace System void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public int Hour { get => throw null; } public System.DateTime LocalDateTime { get => throw null; } - public static System.DateTimeOffset MaxValue; + public static readonly System.DateTimeOffset MaxValue; public int Microsecond { get => throw null; } public int Millisecond { get => throw null; } public int Minute { get => throw null; } - public static System.DateTimeOffset MinValue; + public static readonly System.DateTimeOffset MinValue; public int Month { get => throw null; } public int Nanosecond { get => throw null; } public static System.DateTimeOffset Now { get => throw null; } @@ -2230,7 +2230,7 @@ namespace System public static bool TryParseExact(System.ReadOnlySpan input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; public static bool TryParseExact(string input, string format, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) => throw null; - public static System.DateTimeOffset UnixEpoch; + public static readonly System.DateTimeOffset UnixEpoch; public System.DateTime UtcDateTime { get => throw null; } public static System.DateTimeOffset UtcNow { get => throw null; } public long UtcTicks { get => throw null; } @@ -2267,7 +2267,7 @@ namespace System ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) => throw null; uint System.IConvertible.ToUInt32(System.IFormatProvider provider) => throw null; ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) => throw null; - public static System.DBNull Value; + public static readonly System.DBNull Value; } public struct Decimal : System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.IComparable, System.IComparable, System.Numerics.IComparisonOperators, System.IConvertible, System.Numerics.IDecrementOperators, System.Runtime.Serialization.IDeserializationCallback, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.IEquatable, System.Numerics.IFloatingPoint, System.Numerics.IFloatingPointConstants, System.IFormattable, System.Numerics.IIncrementOperators, System.Numerics.IMinMaxValue, System.Numerics.IModulusOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.INumber, System.Numerics.INumberBase, System.IParsable, System.Runtime.Serialization.ISerializable, System.Numerics.ISignedNumber, System.ISpanFormattable, System.ISpanParsable, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators { @@ -2752,7 +2752,7 @@ namespace System public static class Debugger { public static void Break() => throw null; - public static string DefaultCategory; + public static readonly string DefaultCategory; public static bool IsAttached { get => throw null; } public static bool IsLogging() => throw null; public static bool Launch() => throw null; @@ -2827,11 +2827,11 @@ namespace System public System.TimeSpan Elapsed { get => throw null; } public long ElapsedMilliseconds { get => throw null; } public long ElapsedTicks { get => throw null; } - public static long Frequency; + public static readonly long Frequency; public static System.TimeSpan GetElapsedTime(long startingTimestamp) => throw null; public static System.TimeSpan GetElapsedTime(long startingTimestamp, long endingTimestamp) => throw null; public static long GetTimestamp() => throw null; - public static bool IsHighResolution; + public static readonly bool IsHighResolution; public bool IsRunning { get => throw null; } public void Reset() => throw null; public void Restart() => throw null; @@ -3228,7 +3228,7 @@ namespace System public class EventArgs { public EventArgs() => throw null; - public static System.EventArgs Empty; + public static readonly System.EventArgs Empty; } public delegate void EventHandler(object sender, System.EventArgs e); public delegate void EventHandler(object sender, TEventArgs e); @@ -3825,7 +3825,7 @@ namespace System public override int GetMonth(System.DateTime time) => throw null; public override int GetMonthsInYear(int year, int era) => throw null; public override int GetYear(System.DateTime time) => throw null; - public static int HebrewEra; + public static readonly int HebrewEra; public override bool IsLeapDay(int year, int month, int day, int era) => throw null; public override bool IsLeapMonth(int year, int month, int era) => throw null; public override bool IsLeapYear(int year, int era) => throw null; @@ -3854,7 +3854,7 @@ namespace System public override int GetMonthsInYear(int year, int era) => throw null; public override int GetYear(System.DateTime time) => throw null; public int HijriAdjustment { get => throw null; set { } } - public static int HijriEra; + public static readonly int HijriEra; public override bool IsLeapDay(int year, int month, int day, int era) => throw null; public override bool IsLeapMonth(int year, int month, int era) => throw null; public override bool IsLeapYear(int year, int era) => throw null; @@ -3944,7 +3944,7 @@ namespace System public override bool IsLeapDay(int year, int month, int day, int era) => throw null; public override bool IsLeapMonth(int year, int month, int era) => throw null; public override bool IsLeapYear(int year, int era) => throw null; - public static int JulianEra; + public static readonly int JulianEra; public override System.DateTime MaxSupportedDateTime { get => throw null; } public override System.DateTime MinSupportedDateTime { get => throw null; } public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; @@ -4070,7 +4070,7 @@ namespace System public override bool IsLeapYear(int year, int era) => throw null; public override System.DateTime MaxSupportedDateTime { get => throw null; } public override System.DateTime MinSupportedDateTime { get => throw null; } - public static int PersianEra; + public static readonly int PersianEra; public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; public override int ToFourDigitYear(int year) => throw null; public override int TwoDigitYearMax { get => throw null; set { } } @@ -4313,7 +4313,7 @@ namespace System public Guid(System.ReadOnlySpan b) => throw null; public Guid(string g) => throw null; public Guid(uint a, ushort b, ushort c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k) => throw null; - public static System.Guid Empty; + public static readonly System.Guid Empty; public bool Equals(System.Guid g) => throw null; public override bool Equals(object o) => throw null; public override int GetHashCode() => throw null; @@ -5371,7 +5371,7 @@ namespace System static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out nint value) => throw null; bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - public static nint Zero; + public static readonly nint Zero; static nint System.Numerics.INumberBase.Zero { get => throw null; } } public class InvalidCastException : System.SystemException @@ -5452,7 +5452,7 @@ namespace System protected virtual void Dispose(bool disposing) => throw null; public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; public virtual void Flush() => throw null; - public static System.IO.BinaryWriter Null; + public static readonly System.IO.BinaryWriter Null; protected System.IO.Stream OutStream; public virtual long Seek(int offset, System.IO.SeekOrigin origin) => throw null; public virtual void Write(bool value) => throw null; @@ -6049,13 +6049,13 @@ namespace System } public static class Path { - public static char AltDirectorySeparatorChar; + public static readonly char AltDirectorySeparatorChar; public static string ChangeExtension(string path, string extension) => throw null; public static string Combine(string path1, string path2) => throw null; public static string Combine(string path1, string path2, string path3) => throw null; public static string Combine(string path1, string path2, string path3, string path4) => throw null; public static string Combine(params string[] paths) => throw null; - public static char DirectorySeparatorChar; + public static readonly char DirectorySeparatorChar; public static bool EndsInDirectorySeparator(System.ReadOnlySpan path) => throw null; public static bool EndsInDirectorySeparator(string path) => throw null; public static bool Exists(string path) => throw null; @@ -6079,7 +6079,7 @@ namespace System public static string GetTempPath() => throw null; public static bool HasExtension(System.ReadOnlySpan path) => throw null; public static bool HasExtension(string path) => throw null; - public static char[] InvalidPathChars; + public static readonly char[] InvalidPathChars; public static bool IsPathFullyQualified(System.ReadOnlySpan path) => throw null; public static bool IsPathFullyQualified(string path) => throw null; public static bool IsPathRooted(System.ReadOnlySpan path) => throw null; @@ -6091,12 +6091,12 @@ namespace System public static string Join(string path1, string path2, string path3) => throw null; public static string Join(string path1, string path2, string path3, string path4) => throw null; public static string Join(params string[] paths) => throw null; - public static char PathSeparator; + public static readonly char PathSeparator; public static System.ReadOnlySpan TrimEndingDirectorySeparator(System.ReadOnlySpan path) => throw null; public static string TrimEndingDirectorySeparator(string path) => throw null; public static bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten) => throw null; public static bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten) => throw null; - public static char VolumeSeparatorChar; + public static readonly char VolumeSeparatorChar; } public class PathTooLongException : System.IO.IOException { @@ -6155,7 +6155,7 @@ namespace System public System.Threading.Tasks.Task FlushAsync() => throw null; public virtual System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null; public abstract long Length { get; } - public static System.IO.Stream Null; + public static readonly System.IO.Stream Null; protected virtual void ObjectInvariant() => throw null; public abstract long Position { get; set; } public abstract int Read(byte[] buffer, int offset, int count); @@ -6205,7 +6205,7 @@ namespace System public void DiscardBufferedData() => throw null; protected override void Dispose(bool disposing) => throw null; public bool EndOfStream { get => throw null; } - public static System.IO.StreamReader Null; + public static readonly System.IO.StreamReader Null; public override int Peek() => throw null; public override int Read() => throw null; public override int Read(char[] buffer, int index, int count) => throw null; @@ -6243,7 +6243,7 @@ namespace System public override System.Text.Encoding Encoding { get => throw null; } public override void Flush() => throw null; public override System.Threading.Tasks.Task FlushAsync() => throw null; - public static System.IO.StreamWriter Null; + public static readonly System.IO.StreamWriter Null; public override void Write(char value) => throw null; public override void Write(char[] buffer) => throw null; public override void Write(char[] buffer, int index, int count) => throw null; @@ -6326,7 +6326,7 @@ namespace System protected TextReader() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public static System.IO.TextReader Null; + public static readonly System.IO.TextReader Null; public virtual int Peek() => throw null; public virtual int Read() => throw null; public virtual int Read(char[] buffer, int index, int count) => throw null; @@ -6359,7 +6359,7 @@ namespace System public virtual System.Threading.Tasks.Task FlushAsync() => throw null; public virtual System.IFormatProvider FormatProvider { get => throw null; } public virtual string NewLine { get => throw null; set { } } - public static System.IO.TextWriter Null; + public static readonly System.IO.TextWriter Null; public static System.IO.TextWriter Synchronized(System.IO.TextWriter writer) => throw null; public virtual void Write(bool value) => throw null; public virtual void Write(char value) => throw null; @@ -6791,7 +6791,7 @@ namespace System } public struct ModuleHandle : System.IEquatable { - public static System.ModuleHandle EmptyHandle; + public static readonly System.ModuleHandle EmptyHandle; public bool Equals(System.ModuleHandle handle) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; @@ -7725,7 +7725,7 @@ namespace System } public abstract class ConstructorInfo : System.Reflection.MethodBase { - public static string ConstructorName; + public static readonly string ConstructorName; protected ConstructorInfo() => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; @@ -7734,7 +7734,7 @@ namespace System public override System.Reflection.MemberTypes MemberType { get => throw null; } public static bool operator ==(System.Reflection.ConstructorInfo left, System.Reflection.ConstructorInfo right) => throw null; public static bool operator !=(System.Reflection.ConstructorInfo left, System.Reflection.ConstructorInfo right) => throw null; - public static string TypeConstructorName; + public static readonly string TypeConstructorName; } public class CustomAttributeData { @@ -8178,7 +8178,7 @@ namespace System public sealed class Missing : System.Runtime.Serialization.ISerializable { void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public static System.Reflection.Missing Value; + public static readonly System.Reflection.Missing Value; } public abstract class Module : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.ISerializable { @@ -8186,8 +8186,8 @@ namespace System protected Module() => throw null; public virtual System.Collections.Generic.IEnumerable CustomAttributes { get => throw null; } public override bool Equals(object o) => throw null; - public static System.Reflection.TypeFilter FilterTypeName; - public static System.Reflection.TypeFilter FilterTypeNameIgnoreCase; + public static readonly System.Reflection.TypeFilter FilterTypeName; + public static readonly System.Reflection.TypeFilter FilterTypeNameIgnoreCase; public virtual System.Type[] FindTypes(System.Reflection.TypeFilter filter, object filterCriteria) => throw null; public virtual string FullyQualifiedName { get => throw null; } public virtual object[] GetCustomAttributes(bool inherit) => throw null; @@ -8641,10 +8641,10 @@ namespace System public System.IO.UnmanagedMemoryStream GetStream(string name, System.Globalization.CultureInfo culture) => throw null; public virtual string GetString(string name) => throw null; public virtual string GetString(string name, System.Globalization.CultureInfo culture) => throw null; - public static int HeaderVersionNumber; + public static readonly int HeaderVersionNumber; public virtual bool IgnoreCase { get => throw null; set { } } protected virtual System.Resources.ResourceSet InternalGetResourceSet(System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents) => throw null; - public static int MagicNumber; + public static readonly int MagicNumber; protected System.Reflection.Assembly MainAssembly; public virtual void ReleaseAllResources() => throw null; public virtual System.Type ResourceSetType { get => throw null; } @@ -10728,7 +10728,7 @@ namespace System public unsafe String(sbyte* value) => throw null; public unsafe String(sbyte* value, int startIndex, int length) => throw null; public unsafe String(sbyte* value, int startIndex, int length, System.Text.Encoding enc) => throw null; - public static string Empty; + public static readonly string Empty; public bool EndsWith(char value) => throw null; public bool EndsWith(string value) => throw null; public bool EndsWith(string value, bool ignoreCase, System.Globalization.CultureInfo culture) => throw null; @@ -11944,7 +11944,7 @@ namespace System public static class Timeout { public const int Infinite = default; - public static System.TimeSpan InfiniteTimeSpan; + public static readonly System.TimeSpan InfiniteTimeSpan; } public sealed class Timer : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable { @@ -11970,7 +11970,7 @@ namespace System public void Dispose() => throw null; protected virtual void Dispose(bool explicitDisposing) => throw null; public virtual nint Handle { get => throw null; set { } } - protected static nint InvalidHandle; + protected static readonly nint InvalidHandle; public Microsoft.Win32.SafeHandles.SafeWaitHandle SafeWaitHandle { get => throw null; set { } } public static bool SignalAndWait(System.Threading.WaitHandle toSignal, System.Threading.WaitHandle toWaitOn) => throw null; public static bool SignalAndWait(System.Threading.WaitHandle toSignal, System.Threading.WaitHandle toWaitOn, int millisecondsTimeout, bool exitContext) => throw null; @@ -12108,11 +12108,11 @@ namespace System public static System.TimeSpan FromTicks(long value) => throw null; public override int GetHashCode() => throw null; public int Hours { get => throw null; } - public static System.TimeSpan MaxValue; + public static readonly System.TimeSpan MaxValue; public int Microseconds { get => throw null; } public int Milliseconds { get => throw null; } public int Minutes { get => throw null; } - public static System.TimeSpan MinValue; + public static readonly System.TimeSpan MinValue; public System.TimeSpan Multiply(double factor) => throw null; public int Nanoseconds { get => throw null; } public const long NanosecondsPerTick = default; @@ -12172,7 +12172,7 @@ namespace System public static bool TryParseExact(string input, string format, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles, out System.TimeSpan result) => throw null; public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, out System.TimeSpan result) => throw null; - public static System.TimeSpan Zero; + public static readonly System.TimeSpan Zero; } public abstract class TimeZone { @@ -12505,13 +12505,13 @@ namespace System public virtual System.Reflection.MethodBase DeclaringMethod { get => throw null; } public override System.Type DeclaringType { get => throw null; } public static System.Reflection.Binder DefaultBinder { get => throw null; } - public static char Delimiter; - public static System.Type[] EmptyTypes; + public static readonly char Delimiter; + public static readonly System.Type[] EmptyTypes; public override bool Equals(object o) => throw null; public virtual bool Equals(System.Type o) => throw null; - public static System.Reflection.MemberFilter FilterAttribute; - public static System.Reflection.MemberFilter FilterName; - public static System.Reflection.MemberFilter FilterNameIgnoreCase; + public static readonly System.Reflection.MemberFilter FilterAttribute; + public static readonly System.Reflection.MemberFilter FilterName; + public static readonly System.Reflection.MemberFilter FilterNameIgnoreCase; public virtual System.Type[] FindInterfaces(System.Reflection.TypeFilter filter, object filterCriteria) => throw null; public virtual System.Reflection.MemberInfo[] FindMembers(System.Reflection.MemberTypes memberType, System.Reflection.BindingFlags bindingAttr, System.Reflection.MemberFilter filter, object filterCriteria) => throw null; public abstract string FullName { get; } @@ -12679,7 +12679,7 @@ namespace System public virtual System.Type MakeGenericType(params System.Type[] typeArguments) => throw null; public virtual System.Type MakePointerType() => throw null; public override System.Reflection.MemberTypes MemberType { get => throw null; } - public static object Missing; + public static readonly object Missing; public abstract System.Reflection.Module Module { get; } public abstract string Namespace { get; } public static bool operator ==(System.Type left, System.Type right) => throw null; @@ -13441,7 +13441,7 @@ namespace System static bool System.Numerics.IBinaryInteger.TryReadLittleEndian(System.ReadOnlySpan source, bool isUnsigned, out nuint value) => throw null; bool System.Numerics.IBinaryInteger.TryWriteBigEndian(System.Span destination, out int bytesWritten) => throw null; bool System.Numerics.IBinaryInteger.TryWriteLittleEndian(System.Span destination, out int bytesWritten) => throw null; - public static nuint Zero; + public static readonly nuint Zero; static nuint System.Numerics.INumberBase.Zero { get => throw null; } } public class UnauthorizedAccessException : System.SystemException @@ -13518,7 +13518,7 @@ namespace System public int Port { get => throw null; } public string Query { get => throw null; } public string Scheme { get => throw null; } - public static string SchemeDelimiter; + public static readonly string SchemeDelimiter; public string[] Segments { get => throw null; } public override string ToString() => throw null; public static bool TryCreate(string uriString, in System.UriCreationOptions creationOptions, out System.Uri result) => throw null; @@ -13527,22 +13527,22 @@ namespace System public static bool TryCreate(System.Uri baseUri, System.Uri relativeUri, out System.Uri result) => throw null; protected virtual string Unescape(string path) => throw null; public static string UnescapeDataString(string stringToUnescape) => throw null; - public static string UriSchemeFile; - public static string UriSchemeFtp; - public static string UriSchemeFtps; - public static string UriSchemeGopher; - public static string UriSchemeHttp; - public static string UriSchemeHttps; - public static string UriSchemeMailto; - public static string UriSchemeNetPipe; - public static string UriSchemeNetTcp; - public static string UriSchemeNews; - public static string UriSchemeNntp; - public static string UriSchemeSftp; - public static string UriSchemeSsh; - public static string UriSchemeTelnet; - public static string UriSchemeWs; - public static string UriSchemeWss; + public static readonly string UriSchemeFile; + public static readonly string UriSchemeFtp; + public static readonly string UriSchemeFtps; + public static readonly string UriSchemeGopher; + public static readonly string UriSchemeHttp; + public static readonly string UriSchemeHttps; + public static readonly string UriSchemeMailto; + public static readonly string UriSchemeNetPipe; + public static readonly string UriSchemeNetTcp; + public static readonly string UriSchemeNews; + public static readonly string UriSchemeNntp; + public static readonly string UriSchemeSftp; + public static readonly string UriSchemeSsh; + public static readonly string UriSchemeTelnet; + public static readonly string UriSchemeWs; + public static readonly string UriSchemeWss; public bool UserEscaped { get => throw null; } public string UserInfo { get => throw null; } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs index 25058be5cc5..0c6410b14bb 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs @@ -234,7 +234,7 @@ namespace System public CustomAce(System.Security.AccessControl.AceType type, System.Security.AccessControl.AceFlags flags, byte[] opaque) => throw null; public override void GetBinaryForm(byte[] binaryForm, int offset) => throw null; public byte[] GetOpaque() => throw null; - public static int MaxOpaqueLength; + public static readonly int MaxOpaqueLength; public int OpaqueLength { get => throw null; } public void SetOpaque(byte[] opaque) => throw null; } @@ -275,8 +275,8 @@ namespace System } public abstract class GenericAcl : System.Collections.ICollection, System.Collections.IEnumerable { - public static byte AclRevision; - public static byte AclRevisionDS; + public static readonly byte AclRevision; + public static readonly byte AclRevisionDS; public abstract int BinaryLength { get; } public void CopyTo(System.Security.AccessControl.GenericAce[] array, int index) => throw null; void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; @@ -286,7 +286,7 @@ namespace System public System.Security.AccessControl.AceEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; public bool IsSynchronized { get => throw null; } - public static int MaxBinaryLength; + public static readonly int MaxBinaryLength; public abstract byte Revision { get; } public virtual object SyncRoot { get => throw null; } public abstract System.Security.AccessControl.GenericAce this[int index] { get; set; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs index 211220df5b9..ea394f6ad23 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs @@ -89,8 +89,8 @@ namespace System public bool IsEqualDomainSid(System.Security.Principal.SecurityIdentifier sid) => throw null; public override bool IsValidTargetType(System.Type targetType) => throw null; public bool IsWellKnown(System.Security.Principal.WellKnownSidType type) => throw null; - public static int MaxBinaryLength; - public static int MinBinaryLength; + public static readonly int MaxBinaryLength; + public static readonly int MinBinaryLength; public static bool operator ==(System.Security.Principal.SecurityIdentifier left, System.Security.Principal.SecurityIdentifier right) => throw null; public static bool operator !=(System.Security.Principal.SecurityIdentifier left, System.Security.Principal.SecurityIdentifier right) => throw null; public override string ToString() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs index 2905fd80b4b..235693df8aa 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.RegularExpressions.cs @@ -173,7 +173,7 @@ namespace System void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null; public string GroupNameFromNumber(int i) => throw null; public int GroupNumberFromName(string name) => throw null; - public static System.TimeSpan InfiniteMatchTimeout; + public static readonly System.TimeSpan InfiniteMatchTimeout; protected void InitializeReferences() => throw null; protected System.TimeSpan internalMatchTimeout; public bool IsMatch(System.ReadOnlySpan input) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs index 41caa8253ec..11661fbe1df 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Transactions.Local.cs @@ -173,7 +173,7 @@ namespace System public static System.Transactions.Transaction GetTransactionFromTransmitterPropagationToken(byte[] propagationToken) => throw null; public static byte[] GetTransmitterPropagationToken(System.Transactions.Transaction transaction) => throw null; public static byte[] GetWhereabouts() => throw null; - public static System.Guid PromoterTypeDtc; + public static readonly System.Guid PromoterTypeDtc; } public static class TransactionManager { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs index bc1070eafff..0b4e9167371 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.ReaderWriter.cs @@ -1602,7 +1602,7 @@ namespace System public XmlQualifiedName() => throw null; public XmlQualifiedName(string name) => throw null; public XmlQualifiedName(string name, string ns) => throw null; - public static System.Xml.XmlQualifiedName Empty; + public static readonly System.Xml.XmlQualifiedName Empty; public override bool Equals(object other) => throw null; public override int GetHashCode() => throw null; public bool IsEmpty { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs index aedbb699636..162012be1e9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Xml.XDocument.cs @@ -380,12 +380,12 @@ namespace System } public class XObjectChangeEventArgs : System.EventArgs { - public static System.Xml.Linq.XObjectChangeEventArgs Add; + public static readonly System.Xml.Linq.XObjectChangeEventArgs Add; public XObjectChangeEventArgs(System.Xml.Linq.XObjectChange objectChange) => throw null; - public static System.Xml.Linq.XObjectChangeEventArgs Name; + public static readonly System.Xml.Linq.XObjectChangeEventArgs Name; public System.Xml.Linq.XObjectChange ObjectChange { get => throw null; } - public static System.Xml.Linq.XObjectChangeEventArgs Remove; - public static System.Xml.Linq.XObjectChangeEventArgs Value; + public static readonly System.Xml.Linq.XObjectChangeEventArgs Remove; + public static readonly System.Xml.Linq.XObjectChangeEventArgs Value; } public class XProcessingInstruction : System.Xml.Linq.XNode { From 33a5ba04cb2ee421286c8e47e21a30647f7c0682 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 26 Sep 2023 09:21:27 +0100 Subject: [PATCH 669/788] Swift: Add explanatory comments and (minimal) support for additional regex mode flags. --- swift/ql/lib/codeql/swift/regex/Regex.qll | 7 ++++-- .../swift/regex/internal/ParseRegex.qll | 24 ++++++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/swift/ql/lib/codeql/swift/regex/Regex.qll b/swift/ql/lib/codeql/swift/regex/Regex.qll index 138edc061d1..034be674771 100644 --- a/swift/ql/lib/codeql/swift/regex/Regex.qll +++ b/swift/ql/lib/codeql/swift/regex/Regex.qll @@ -120,7 +120,8 @@ private newtype TRegexParseMode = MkVerbose() or // ignores whitespace and `#` comments within patterns MkDotAll() or // dot matches all characters, including line terminators MkMultiLine() or // `^` and `$` also match beginning and end of lines - MkUnicode() // Unicode UAX 29 word boundary mode + MkUnicodeBoundary() or // Unicode UAX 29 word boundary mode + MkUnicode() // Unicode matching /** * A regular expression parse mode flag. @@ -138,6 +139,8 @@ class RegexParseMode extends TRegexParseMode { or this = MkMultiLine() and result = "MULTILINE" or + this = MkUnicodeBoundary() and result = "UNICODEBOUNDARY" + or this = MkUnicode() and result = "UNICODE" } @@ -249,7 +252,7 @@ class NSRegularExpressionRegexAdditionalFlowStep extends RegexAdditionalFlowStep .getMember() .(FieldDecl) .hasQualifiedName("NSRegularExpression.Options", "useUnicodeWordBoundaries") and - mode = MkUnicode() and + mode = MkUnicodeBoundary() and isSet = true } } diff --git a/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll b/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll index 50c9bd817d8..dec73b94d15 100644 --- a/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll +++ b/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll @@ -1,6 +1,9 @@ /** * Library for parsing Swift regular expressions. * + * See https://developer.apple.com/documentation/foundation/nsregularexpression + * for the regular expression syntax we aim to support. + * * N.B. does not yet handle stripping whitespace and comments in regexes with * the `x` (free-spacing) flag. */ @@ -9,6 +12,17 @@ import swift private import RegexTracking private import codeql.swift.regex.Regex +/** + * A mode character that can be used in a regular expression. + * ``` + * NSRegularExpression accepts: dim suwxDPSUW + * Regex accepts: imns x + * ``` + */ +private predicate availableRegexModeCharacter(string char) { + char = ["d", "i", "m", "n", "s", "u", "w", "x", "D", "P", "S", "U", "W"] +} + /** * A `Expr` containing a regular expression term, that is, either * a regular expression literal, or a string literal used in a context where @@ -283,7 +297,7 @@ abstract class RegExp extends Expr { private predicate flagGroupStartNoModes(int start, int end) { this.isGroupStart(start) and this.getChar(start + 1) = "?" and - this.getChar(start + 2) in ["i", "x", "s", "m", "w"] and + availableRegexModeCharacter(this.getChar(start + 2)) and end = start + 2 } @@ -295,7 +309,7 @@ abstract class RegExp extends Expr { this.flagGroupStartNoModes(start, pos) or this.modeCharacter(start, pos - 1) and - this.getChar(pos) in ["i", "x", "s", "m", "w"] + availableRegexModeCharacter(this.getChar(pos)) } /** @@ -333,7 +347,10 @@ abstract class RegExp extends Expr { or c = "m" and result = "MULTILINE" // `^` and `$` also match beginning and end of lines or - c = "w" and result = "UNICODE" // Unicode UAX 29 word boundary mode + c = "w" and result = "UNICODEBOUNDARY" // Unicode UAX 29 word boundary mode + or + c = "u" and result = "UNICODE" // Unicode matching + // (other flags exist that are not translated here) ) } @@ -344,6 +361,7 @@ abstract class RegExp extends Expr { * VERBOSE * DOTALL * MULTILINE + * UNICODEBOUNDARY * UNICODE */ string getAMode() { From 7a450c9941f158eecec74174fd26a8c70caddd16 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:02:57 +0100 Subject: [PATCH 670/788] Swift: Change note for mode flags. --- swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md diff --git a/swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md b/swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md new file mode 100644 index 00000000000..2ebd9bb992a --- /dev/null +++ b/swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The regular expressions library now accepts a wider range of mode flags in a regular expression mode flag group (such as `(?u)`). From 6b0271d4e59ba0ed57af0ae7fba2a930ac98ade2 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:19:52 +0100 Subject: [PATCH 671/788] Swift: Address review comment. --- swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll b/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll index dec73b94d15..93838e0f524 100644 --- a/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll +++ b/swift/ql/lib/codeql/swift/regex/internal/ParseRegex.qll @@ -322,7 +322,7 @@ abstract class RegExp extends Expr { /** * Holds if a parse mode group of this regex includes the mode flag `c`. - * For example the following parse mode group, with mode flag `i`: + * For example the following parse mode group, with mode flag `"i"`: * ``` * (?i) * ``` From 839ef7fef5aa7caf37401fcda03d84a521962631 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 26 Sep 2023 15:06:30 +0200 Subject: [PATCH 672/788] C#: Add compile time constants for some types of fields in the stub generator. --- .../StubVisitor.cs | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs index 880c14888ef..44f41205961 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs @@ -296,6 +296,35 @@ internal sealed class StubVisitor : SymbolVisitor private static string EscapeIdentifier(string identifier) => keywords.Contains(identifier) ? "@" + identifier : identifier; + private static bool TryGetConstantValue(IFieldSymbol symbol, out string value) + { + value = ""; + if (!symbol.HasConstantValue) + { + return false; + } + + var v = symbol.ConstantValue; + switch (symbol.Type.SpecialType) + { + case SpecialType.System_Boolean: + value = (bool)v ? "true" : "false"; + return true; + case SpecialType.System_Byte: + case SpecialType.System_SByte: + case SpecialType.System_UInt16: + case SpecialType.System_UInt32: + case SpecialType.System_UInt64: + case SpecialType.System_Int16: + case SpecialType.System_Int32: + case SpecialType.System_Int64: + value = v.ToString()!; + return true; + default: + return false; + } + } + public override void VisitField(IFieldSymbol symbol) { if (IsNotPublic(symbol.DeclaredAccessibility)) @@ -325,7 +354,8 @@ internal sealed class StubVisitor : SymbolVisitor stubWriter.Write(EscapeIdentifier(symbol.Name)); if (symbol.IsConst) { - stubWriter.Write(" = default"); + var v = TryGetConstantValue(symbol, out var value) ? value : "default"; + stubWriter.Write($" = {v}"); } stubWriter.WriteLine(";"); } From 5e3ae0afac773f9f87bad4b10689593f3764a0e6 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 26 Sep 2023 15:09:10 +0200 Subject: [PATCH 673/788] C#: Update .NET and ASP.NET stubs. --- ...osoft.AspNetCore.Authentication.Cookies.cs | 2 +- .../Microsoft.AspNetCore.Http.Abstractions.cs | 130 +++++++++--------- .../Microsoft.AspNetCore.Http.cs | 8 +- .../Microsoft.AspNetCore.Mvc.Core.cs | 2 +- .../Microsoft.AspNetCore.SignalR.Common.cs | 14 +- .../Microsoft.AspNetCore.WebUtilities.cs | 10 +- .../Microsoft.VisualBasic.Core.cs | 2 +- .../System.Diagnostics.StackTrace.cs | 4 +- .../Microsoft.NETCore.App/System.IO.Pipes.cs | 2 +- .../Microsoft.NETCore.App/System.Memory.cs | 4 +- .../System.Net.Primitives.cs | 10 +- .../System.Net.ServicePoint.cs | 4 +- .../System.Reflection.Emit.cs | 2 +- .../System.Reflection.Metadata.cs | 8 +- .../System.Runtime.InteropServices.cs | 2 +- .../Microsoft.NETCore.App/System.Runtime.cs | 66 ++++----- .../System.Security.Cryptography.cs | 40 +++--- .../System.Text.Encoding.Extensions.cs | 2 +- .../System.Threading.Tasks.Dataflow.cs | 2 +- 19 files changed, 157 insertions(+), 157 deletions(-) diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs index f52d184425b..be1014efd29 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Authentication.Cookies.cs @@ -13,7 +13,7 @@ namespace Microsoft public void AppendResponseCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, string value, Microsoft.AspNetCore.Http.CookieOptions options) => throw null; public int? ChunkSize { get => throw null; set { } } public ChunkingCookieManager() => throw null; - public const int DefaultChunkSize = default; + public const int DefaultChunkSize = 4050; public void DeleteCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, Microsoft.AspNetCore.Http.CookieOptions options) => throw null; public string GetRequestCookie(Microsoft.AspNetCore.Http.HttpContext context, string key) => throw null; public bool ThrowForPartialCookies { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs index 4942f7cb9fb..392bccee3da 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Abstractions.cs @@ -581,71 +581,71 @@ namespace Microsoft } public static class StatusCodes { - public const int Status100Continue = default; - public const int Status101SwitchingProtocols = default; - public const int Status102Processing = default; - public const int Status200OK = default; - public const int Status201Created = default; - public const int Status202Accepted = default; - public const int Status203NonAuthoritative = default; - public const int Status204NoContent = default; - public const int Status205ResetContent = default; - public const int Status206PartialContent = default; - public const int Status207MultiStatus = default; - public const int Status208AlreadyReported = default; - public const int Status226IMUsed = default; - public const int Status300MultipleChoices = default; - public const int Status301MovedPermanently = default; - public const int Status302Found = default; - public const int Status303SeeOther = default; - public const int Status304NotModified = default; - public const int Status305UseProxy = default; - public const int Status306SwitchProxy = default; - public const int Status307TemporaryRedirect = default; - public const int Status308PermanentRedirect = default; - public const int Status400BadRequest = default; - public const int Status401Unauthorized = default; - public const int Status402PaymentRequired = default; - public const int Status403Forbidden = default; - public const int Status404NotFound = default; - public const int Status405MethodNotAllowed = default; - public const int Status406NotAcceptable = default; - public const int Status407ProxyAuthenticationRequired = default; - public const int Status408RequestTimeout = default; - public const int Status409Conflict = default; - public const int Status410Gone = default; - public const int Status411LengthRequired = default; - public const int Status412PreconditionFailed = default; - public const int Status413PayloadTooLarge = default; - public const int Status413RequestEntityTooLarge = default; - public const int Status414RequestUriTooLong = default; - public const int Status414UriTooLong = default; - public const int Status415UnsupportedMediaType = default; - public const int Status416RangeNotSatisfiable = default; - public const int Status416RequestedRangeNotSatisfiable = default; - public const int Status417ExpectationFailed = default; - public const int Status418ImATeapot = default; - public const int Status419AuthenticationTimeout = default; - public const int Status421MisdirectedRequest = default; - public const int Status422UnprocessableEntity = default; - public const int Status423Locked = default; - public const int Status424FailedDependency = default; - public const int Status426UpgradeRequired = default; - public const int Status428PreconditionRequired = default; - public const int Status429TooManyRequests = default; - public const int Status431RequestHeaderFieldsTooLarge = default; - public const int Status451UnavailableForLegalReasons = default; - public const int Status500InternalServerError = default; - public const int Status501NotImplemented = default; - public const int Status502BadGateway = default; - public const int Status503ServiceUnavailable = default; - public const int Status504GatewayTimeout = default; - public const int Status505HttpVersionNotsupported = default; - public const int Status506VariantAlsoNegotiates = default; - public const int Status507InsufficientStorage = default; - public const int Status508LoopDetected = default; - public const int Status510NotExtended = default; - public const int Status511NetworkAuthenticationRequired = default; + public const int Status100Continue = 100; + public const int Status101SwitchingProtocols = 101; + public const int Status102Processing = 102; + public const int Status200OK = 200; + public const int Status201Created = 201; + public const int Status202Accepted = 202; + public const int Status203NonAuthoritative = 203; + public const int Status204NoContent = 204; + public const int Status205ResetContent = 205; + public const int Status206PartialContent = 206; + public const int Status207MultiStatus = 207; + public const int Status208AlreadyReported = 208; + public const int Status226IMUsed = 226; + public const int Status300MultipleChoices = 300; + public const int Status301MovedPermanently = 301; + public const int Status302Found = 302; + public const int Status303SeeOther = 303; + public const int Status304NotModified = 304; + public const int Status305UseProxy = 305; + public const int Status306SwitchProxy = 306; + public const int Status307TemporaryRedirect = 307; + public const int Status308PermanentRedirect = 308; + public const int Status400BadRequest = 400; + public const int Status401Unauthorized = 401; + public const int Status402PaymentRequired = 402; + public const int Status403Forbidden = 403; + public const int Status404NotFound = 404; + public const int Status405MethodNotAllowed = 405; + public const int Status406NotAcceptable = 406; + public const int Status407ProxyAuthenticationRequired = 407; + public const int Status408RequestTimeout = 408; + public const int Status409Conflict = 409; + public const int Status410Gone = 410; + public const int Status411LengthRequired = 411; + public const int Status412PreconditionFailed = 412; + public const int Status413PayloadTooLarge = 413; + public const int Status413RequestEntityTooLarge = 413; + public const int Status414RequestUriTooLong = 414; + public const int Status414UriTooLong = 414; + public const int Status415UnsupportedMediaType = 415; + public const int Status416RangeNotSatisfiable = 416; + public const int Status416RequestedRangeNotSatisfiable = 416; + public const int Status417ExpectationFailed = 417; + public const int Status418ImATeapot = 418; + public const int Status419AuthenticationTimeout = 419; + public const int Status421MisdirectedRequest = 421; + public const int Status422UnprocessableEntity = 422; + public const int Status423Locked = 423; + public const int Status424FailedDependency = 424; + public const int Status426UpgradeRequired = 426; + public const int Status428PreconditionRequired = 428; + public const int Status429TooManyRequests = 429; + public const int Status431RequestHeaderFieldsTooLarge = 431; + public const int Status451UnavailableForLegalReasons = 451; + public const int Status500InternalServerError = 500; + public const int Status501NotImplemented = 501; + public const int Status502BadGateway = 502; + public const int Status503ServiceUnavailable = 503; + public const int Status504GatewayTimeout = 504; + public const int Status505HttpVersionNotsupported = 505; + public const int Status506VariantAlsoNegotiates = 506; + public const int Status507InsufficientStorage = 507; + public const int Status508LoopDetected = 508; + public const int Status510NotExtended = 510; + public const int Status511NetworkAuthenticationRequired = 511; } public abstract class WebSocketManager { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs index 55679d1be75..5ee92ae1015 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.cs @@ -87,10 +87,10 @@ namespace Microsoft public bool BufferBody { get => throw null; set { } } public long BufferBodyLengthLimit { get => throw null; set { } } public FormOptions() => throw null; - public const int DefaultBufferBodyLengthLimit = default; - public const int DefaultMemoryBufferThreshold = default; - public const long DefaultMultipartBodyLengthLimit = default; - public const int DefaultMultipartBoundaryLengthLimit = default; + public const int DefaultBufferBodyLengthLimit = 134217728; + public const int DefaultMemoryBufferThreshold = 65536; + public const long DefaultMultipartBodyLengthLimit = 134217728; + public const int DefaultMultipartBoundaryLengthLimit = 128; public int KeyLengthLimit { get => throw null; set { } } public int MemoryBufferThreshold { get => throw null; set { } } public long MultipartBodyLengthLimit { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs index a75c083d306..2b69a8d7dd7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Core.cs @@ -1617,7 +1617,7 @@ namespace Microsoft } public class FileResultExecutorBase { - protected const int BufferSize = default; + protected const int BufferSize = 65536; protected static Microsoft.Extensions.Logging.ILogger CreateLogger(Microsoft.Extensions.Logging.ILoggerFactory factory) => throw null; public FileResultExecutorBase(Microsoft.Extensions.Logging.ILogger logger) => throw null; protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs index c1fb3f17877..882ef30902c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.SignalR.Common.cs @@ -89,13 +89,13 @@ namespace Microsoft } public static class HubProtocolConstants { - public const int CancelInvocationMessageType = default; - public const int CloseMessageType = default; - public const int CompletionMessageType = default; - public const int InvocationMessageType = default; - public const int PingMessageType = default; - public const int StreamInvocationMessageType = default; - public const int StreamItemMessageType = default; + public const int CancelInvocationMessageType = 5; + public const int CloseMessageType = 7; + public const int CompletionMessageType = 3; + public const int InvocationMessageType = 1; + public const int PingMessageType = 6; + public const int StreamInvocationMessageType = 4; + public const int StreamItemMessageType = 2; } public static partial class HubProtocolExtensions { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs index 91f93e86470..2b706de08f1 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.WebUtilities.cs @@ -127,9 +127,9 @@ namespace Microsoft public FormReader(System.IO.Stream stream) => throw null; public FormReader(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; public FormReader(System.IO.Stream stream, System.Text.Encoding encoding, System.Buffers.ArrayPool charPool) => throw null; - public const int DefaultKeyLengthLimit = default; - public const int DefaultValueCountLimit = default; - public const int DefaultValueLengthLimit = default; + public const int DefaultKeyLengthLimit = 2048; + public const int DefaultValueCountLimit = 1024; + public const int DefaultValueLengthLimit = 4194304; public void Dispose() => throw null; public int KeyLengthLimit { get => throw null; set { } } public System.Collections.Generic.Dictionary ReadForm() => throw null; @@ -192,8 +192,8 @@ namespace Microsoft public long? BodyLengthLimit { get => throw null; set { } } public MultipartReader(string boundary, System.IO.Stream stream) => throw null; public MultipartReader(string boundary, System.IO.Stream stream, int bufferSize) => throw null; - public const int DefaultHeadersCountLimit = default; - public const int DefaultHeadersLengthLimit = default; + public const int DefaultHeadersCountLimit = 16; + public const int DefaultHeadersLengthLimit = 16384; public int HeadersCountLimit { get => throw null; set { } } public int HeadersLengthLimit { get => throw null; set { } } public System.Threading.Tasks.Task ReadNextSectionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs index 6312e16d27e..862067e580e 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.VisualBasic.Core.cs @@ -429,7 +429,7 @@ namespace Microsoft public const string vbNullChar = default; public const string vbNullString = default; public const Microsoft.VisualBasic.VariantType vbObject = default; - public const int vbObjectError = default; + public const int vbObjectError = -2147221504; public const Microsoft.VisualBasic.MsgBoxResult vbOK = default; public const Microsoft.VisualBasic.MsgBoxStyle vbOKCancel = default; public const Microsoft.VisualBasic.MsgBoxStyle vbOKOnly = default; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs index 4f03f5699da..165d4aba2cf 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Diagnostics.StackTrace.cs @@ -18,7 +18,7 @@ namespace System public virtual int GetILOffset() => throw null; public virtual System.Reflection.MethodBase GetMethod() => throw null; public virtual int GetNativeOffset() => throw null; - public const int OFFSET_UNKNOWN = default; + public const int OFFSET_UNKNOWN = -1; public override string ToString() => throw null; } public static partial class StackFrameExtensions @@ -44,7 +44,7 @@ namespace System public virtual int FrameCount { get => throw null; } public virtual System.Diagnostics.StackFrame GetFrame(int index) => throw null; public virtual System.Diagnostics.StackFrame[] GetFrames() => throw null; - public const int METHODS_TO_SKIP = default; + public const int METHODS_TO_SKIP = 0; public override string ToString() => throw null; } namespace SymbolStore diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs index eceaee3005a..2f9179ebab1 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.cs @@ -77,7 +77,7 @@ namespace System public void Disconnect() => throw null; public void EndWaitForConnection(System.IAsyncResult asyncResult) => throw null; public string GetImpersonationUserName() => throw null; - public const int MaxAllowedServerInstances = default; + public const int MaxAllowedServerInstances = -1; public void RunAsClient(System.IO.Pipes.PipeStreamImpersonationWorker impersonationWorker) => throw null; public void WaitForConnection() => throw null; public System.Threading.Tasks.Task WaitForConnectionAsync() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs index 2bd187f3ac9..1c74d23a818 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Memory.cs @@ -225,8 +225,8 @@ namespace System public override int GetHashCode() => throw null; public bool HasPrecision { get => throw null; } public bool IsDefault { get => throw null; } - public const byte MaxPrecision = default; - public const byte NoPrecision = default; + public const byte MaxPrecision = 99; + public const byte NoPrecision = 255; public static bool operator ==(System.Buffers.StandardFormat left, System.Buffers.StandardFormat right) => throw null; public static implicit operator System.Buffers.StandardFormat(char symbol) => throw null; public static bool operator !=(System.Buffers.StandardFormat left, System.Buffers.StandardFormat right) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs index 28d63fd3acf..1e03addb9e3 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.Primitives.cs @@ -89,9 +89,9 @@ namespace System public CookieContainer() => throw null; public CookieContainer(int capacity) => throw null; public CookieContainer(int capacity, int perDomainCapacity, int maxCookieSize) => throw null; - public const int DefaultCookieLengthLimit = default; - public const int DefaultCookieLimit = default; - public const int DefaultPerDomainCookieLimit = default; + public const int DefaultCookieLengthLimit = 4096; + public const int DefaultCookieLimit = 300; + public const int DefaultPerDomainCookieLimit = 20; public System.Net.CookieCollection GetAllCookies() => throw null; public string GetCookieHeader(System.Uri uri) => throw null; public System.Net.CookieCollection GetCookies(System.Uri uri) => throw null; @@ -283,8 +283,8 @@ namespace System public IPEndPoint(System.Net.IPAddress address, int port) => throw null; public override bool Equals(object comparand) => throw null; public override int GetHashCode() => throw null; - public const int MaxPort = default; - public const int MinPort = default; + public const int MaxPort = 65535; + public const int MinPort = 0; public static System.Net.IPEndPoint Parse(System.ReadOnlySpan s) => throw null; public static System.Net.IPEndPoint Parse(string s) => throw null; public int Port { get => throw null; set { } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs index c8aa64eff72..d2d3af6158c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Net.ServicePoint.cs @@ -39,8 +39,8 @@ namespace System { public static bool CheckCertificateRevocationList { get => throw null; set { } } public static int DefaultConnectionLimit { get => throw null; set { } } - public const int DefaultNonPersistentConnectionLimit = default; - public const int DefaultPersistentConnectionLimit = default; + public const int DefaultNonPersistentConnectionLimit = 4; + public const int DefaultPersistentConnectionLimit = 2; public static int DnsRefreshTimeout { get => throw null; set { } } public static bool EnableDnsRoundRobin { get => throw null; set { } } public static System.Net.Security.EncryptionPolicy EncryptionPolicy { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs index 3118bdff532..b480e898fa0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Emit.cs @@ -478,7 +478,7 @@ namespace System public override string ToString() => throw null; public override System.RuntimeTypeHandle TypeHandle { get => throw null; } public override System.Type UnderlyingSystemType { get => throw null; } - public const int UnspecifiedTypeSize = default; + public const int UnspecifiedTypeSize = 0; } } } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs index 0e286dbeb30..9f1ea14485c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Reflection.Metadata.cs @@ -2519,7 +2519,7 @@ namespace System public override bool Equals(object obj) => throw null; public bool Equals(System.Reflection.Metadata.SequencePoint other) => throw null; public override int GetHashCode() => throw null; - public const int HiddenLine = default; + public const int HiddenLine = 16707566; public bool IsHidden { get => throw null; } public int Offset { get => throw null; } public int StartColumn { get => throw null; } @@ -2582,7 +2582,7 @@ namespace System { public System.Reflection.Metadata.SignatureAttributes Attributes { get => throw null; } public System.Reflection.Metadata.SignatureCallingConvention CallingConvention { get => throw null; } - public const byte CallingConventionOrKindMask = default; + public const byte CallingConventionOrKindMask = 15; public SignatureHeader(byte rawValue) => throw null; public SignatureHeader(System.Reflection.Metadata.SignatureKind kind, System.Reflection.Metadata.SignatureCallingConvention convention, System.Reflection.Metadata.SignatureAttributes attributes) => throw null; public override bool Equals(object obj) => throw null; @@ -2989,8 +2989,8 @@ namespace System protected override System.Collections.Immutable.ImmutableArray CreateSections() => throw null; public ManagedPEBuilder(System.Reflection.PortableExecutable.PEHeaderBuilder header, System.Reflection.Metadata.Ecma335.MetadataRootBuilder metadataRootBuilder, System.Reflection.Metadata.BlobBuilder ilStream, System.Reflection.Metadata.BlobBuilder mappedFieldData = default(System.Reflection.Metadata.BlobBuilder), System.Reflection.Metadata.BlobBuilder managedResources = default(System.Reflection.Metadata.BlobBuilder), System.Reflection.PortableExecutable.ResourceSectionBuilder nativeResources = default(System.Reflection.PortableExecutable.ResourceSectionBuilder), System.Reflection.PortableExecutable.DebugDirectoryBuilder debugDirectoryBuilder = default(System.Reflection.PortableExecutable.DebugDirectoryBuilder), int strongNameSignatureSize = default(int), System.Reflection.Metadata.MethodDefinitionHandle entryPoint = default(System.Reflection.Metadata.MethodDefinitionHandle), System.Reflection.PortableExecutable.CorFlags flags = default(System.Reflection.PortableExecutable.CorFlags), System.Func, System.Reflection.Metadata.BlobContentId> deterministicIdProvider = default(System.Func, System.Reflection.Metadata.BlobContentId>)) : base(default(System.Reflection.PortableExecutable.PEHeaderBuilder), default(System.Func, System.Reflection.Metadata.BlobContentId>)) => throw null; protected override System.Reflection.PortableExecutable.PEDirectoriesBuilder GetDirectories() => throw null; - public const int ManagedResourcesDataAlignment = default; - public const int MappedFieldDataAlignment = default; + public const int ManagedResourcesDataAlignment = 8; + public const int MappedFieldDataAlignment = 8; protected override System.Reflection.Metadata.BlobBuilder SerializeSection(string name, System.Reflection.PortableExecutable.SectionLocation location) => throw null; public void Sign(System.Reflection.Metadata.BlobBuilder peImage, System.Func, byte[]> signatureProvider) => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs index 2104a521051..3b68230ef19 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.InteropServices.cs @@ -750,7 +750,7 @@ namespace System public System.Runtime.InteropServices.ComTypes.IDLDESC idldescType; public int lcid; public nint lpstrSchema; - public const int MEMBER_ID_NIL = default; + public const int MEMBER_ID_NIL = -1; public int memidConstructor; public int memidDestructor; public System.Runtime.InteropServices.ComTypes.TYPEDESC tdescAlias; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs index d4ec76f23ac..c1bd5c8846c 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Runtime.cs @@ -743,13 +743,13 @@ namespace System static byte System.Numerics.INumberBase.MaxMagnitude(byte x, byte y) => throw null; static byte System.Numerics.INumberBase.MaxMagnitudeNumber(byte x, byte y) => throw null; static byte System.Numerics.INumber.MaxNumber(byte x, byte y) => throw null; - public const byte MaxValue = default; + public const byte MaxValue = 255; static byte System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static byte System.Numerics.INumber.Min(byte x, byte y) => throw null; static byte System.Numerics.INumberBase.MinMagnitude(byte x, byte y) => throw null; static byte System.Numerics.INumberBase.MinMagnitudeNumber(byte x, byte y) => throw null; static byte System.Numerics.INumber.MinNumber(byte x, byte y) => throw null; - public const byte MinValue = default; + public const byte MinValue = 0; static byte System.Numerics.IMinMaxValue.MinValue { get => throw null; } static byte System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static byte System.Numerics.INumberBase.One { get => throw null; } @@ -3437,7 +3437,7 @@ namespace System public virtual System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } public virtual object Clone() => throw null; protected Calendar() => throw null; - public const int CurrentEra = default; + public const int CurrentEra = 0; protected virtual int DaysInYearBeforeMinSupportedYear { get => throw null; } public abstract int[] Eras { get; } public abstract int GetDayOfMonth(System.DateTime time); @@ -3501,7 +3501,7 @@ namespace System } public class ChineseLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar { - public const int ChineseEra = default; + public const int ChineseEra = 1; public ChineseLunisolarCalendar() => throw null; protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } public override int[] Eras { get => throw null; } @@ -3774,7 +3774,7 @@ namespace System { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; public override System.DateTime AddYears(System.DateTime time, int years) => throw null; - public const int ADEra = default; + public const int ADEra = 1; public override System.Globalization.CalendarAlgorithmType AlgorithmType { get => throw null; } public virtual System.Globalization.GregorianCalendarTypes CalendarType { get => throw null; set { } } public GregorianCalendar() => throw null; @@ -3920,7 +3920,7 @@ namespace System protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } public override int[] Eras { get => throw null; } public override int GetEra(System.DateTime time) => throw null; - public const int JapaneseEra = default; + public const int JapaneseEra = 1; public override System.DateTime MaxSupportedDateTime { get => throw null; } public override System.DateTime MinSupportedDateTime { get => throw null; } } @@ -3972,7 +3972,7 @@ namespace System public override bool IsLeapDay(int year, int month, int day, int era) => throw null; public override bool IsLeapMonth(int year, int month, int era) => throw null; public override bool IsLeapYear(int year, int era) => throw null; - public const int KoreanEra = default; + public const int KoreanEra = 1; public override System.DateTime MaxSupportedDateTime { get => throw null; } public override System.DateTime MinSupportedDateTime { get => throw null; } public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; @@ -3985,7 +3985,7 @@ namespace System protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } public override int[] Eras { get => throw null; } public override int GetEra(System.DateTime time) => throw null; - public const int GregorianEra = default; + public const int GregorianEra = 1; public override System.DateTime MaxSupportedDateTime { get => throw null; } public override System.DateTime MinSupportedDateTime { get => throw null; } } @@ -4226,7 +4226,7 @@ namespace System public override bool IsLeapYear(int year, int era) => throw null; public override System.DateTime MaxSupportedDateTime { get => throw null; } public override System.DateTime MinSupportedDateTime { get => throw null; } - public const int ThaiBuddhistEra = default; + public const int ThaiBuddhistEra = 1; public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; public override int ToFourDigitYear(int year) => throw null; public override int TwoDigitYearMax { get => throw null; set { } } @@ -4263,7 +4263,7 @@ namespace System public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) => throw null; public override int ToFourDigitYear(int year) => throw null; public override int TwoDigitYearMax { get => throw null; set { } } - public const int UmAlQuraEra = default; + public const int UmAlQuraEra = 1; } public enum UnicodeCategory { @@ -4872,13 +4872,13 @@ namespace System static short System.Numerics.INumberBase.MaxMagnitude(short x, short y) => throw null; static short System.Numerics.INumberBase.MaxMagnitudeNumber(short x, short y) => throw null; static short System.Numerics.INumber.MaxNumber(short x, short y) => throw null; - public const short MaxValue = default; + public const short MaxValue = 32767; static short System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static short System.Numerics.INumber.Min(short x, short y) => throw null; static short System.Numerics.INumberBase.MinMagnitude(short x, short y) => throw null; static short System.Numerics.INumberBase.MinMagnitudeNumber(short x, short y) => throw null; static short System.Numerics.INumber.MinNumber(short x, short y) => throw null; - public const short MinValue = default; + public const short MinValue = -32768; static short System.Numerics.IMinMaxValue.MinValue { get => throw null; } static short System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static short System.Numerics.ISignedNumber.NegativeOne { get => throw null; } @@ -5013,14 +5013,14 @@ namespace System public static int MaxMagnitude(int x, int y) => throw null; static int System.Numerics.INumberBase.MaxMagnitudeNumber(int x, int y) => throw null; static int System.Numerics.INumber.MaxNumber(int x, int y) => throw null; - public const int MaxValue = default; + public const int MaxValue = 2147483647; static int System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static int System.Numerics.INumber.Min(int x, int y) => throw null; static int System.Numerics.INumberBase.MinMagnitude(int x, int y) => throw null; public static int MinMagnitude(int x, int y) => throw null; static int System.Numerics.INumberBase.MinMagnitudeNumber(int x, int y) => throw null; static int System.Numerics.INumber.MinNumber(int x, int y) => throw null; - public const int MinValue = default; + public const int MinValue = -2147483648; static int System.Numerics.IMinMaxValue.MinValue { get => throw null; } static int System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static int System.Numerics.ISignedNumber.NegativeOne { get => throw null; } @@ -5150,13 +5150,13 @@ namespace System static long System.Numerics.INumberBase.MaxMagnitude(long x, long y) => throw null; static long System.Numerics.INumberBase.MaxMagnitudeNumber(long x, long y) => throw null; static long System.Numerics.INumber.MaxNumber(long x, long y) => throw null; - public const long MaxValue = default; + public const long MaxValue = 9223372036854775807; static long System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static long System.Numerics.INumber.Min(long x, long y) => throw null; static long System.Numerics.INumberBase.MinMagnitude(long x, long y) => throw null; static long System.Numerics.INumberBase.MinMagnitudeNumber(long x, long y) => throw null; static long System.Numerics.INumber.MinNumber(long x, long y) => throw null; - public const long MinValue = default; + public const long MinValue = -9223372036854775808; static long System.Numerics.IMinMaxValue.MinValue { get => throw null; } static long System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static long System.Numerics.ISignedNumber.NegativeOne { get => throw null; } @@ -10076,13 +10076,13 @@ namespace System static sbyte System.Numerics.INumberBase.MaxMagnitude(sbyte x, sbyte y) => throw null; static sbyte System.Numerics.INumberBase.MaxMagnitudeNumber(sbyte x, sbyte y) => throw null; static sbyte System.Numerics.INumber.MaxNumber(sbyte x, sbyte y) => throw null; - public const sbyte MaxValue = default; + public const sbyte MaxValue = 127; static sbyte System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static sbyte System.Numerics.INumber.Min(sbyte x, sbyte y) => throw null; static sbyte System.Numerics.INumberBase.MinMagnitude(sbyte x, sbyte y) => throw null; static sbyte System.Numerics.INumberBase.MinMagnitudeNumber(sbyte x, sbyte y) => throw null; static sbyte System.Numerics.INumber.MinNumber(sbyte x, sbyte y) => throw null; - public const sbyte MinValue = default; + public const sbyte MinValue = -128; static sbyte System.Numerics.IMinMaxValue.MinValue { get => throw null; } static sbyte System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static sbyte System.Numerics.ISignedNumber.NegativeOne { get => throw null; } @@ -11943,7 +11943,7 @@ namespace System } public static class Timeout { - public const int Infinite = default; + public const int Infinite = -1; public static readonly System.TimeSpan InfiniteTimeSpan; } public sealed class Timer : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable @@ -11990,7 +11990,7 @@ namespace System public virtual bool WaitOne(int millisecondsTimeout, bool exitContext) => throw null; public virtual bool WaitOne(System.TimeSpan timeout) => throw null; public virtual bool WaitOne(System.TimeSpan timeout, bool exitContext) => throw null; - public const int WaitTimeout = default; + public const int WaitTimeout = 258; } public static partial class WaitHandleExtensions { @@ -12115,7 +12115,7 @@ namespace System public static readonly System.TimeSpan MinValue; public System.TimeSpan Multiply(double factor) => throw null; public int Nanoseconds { get => throw null; } - public const long NanosecondsPerTick = default; + public const long NanosecondsPerTick = 100; public System.TimeSpan Negate() => throw null; public static System.TimeSpan operator +(System.TimeSpan t1, System.TimeSpan t2) => throw null; public static System.TimeSpan operator /(System.TimeSpan timeSpan, double divisor) => throw null; @@ -12143,12 +12143,12 @@ namespace System public int Seconds { get => throw null; } public System.TimeSpan Subtract(System.TimeSpan ts) => throw null; public long Ticks { get => throw null; } - public const long TicksPerDay = default; - public const long TicksPerHour = default; - public const long TicksPerMicrosecond = default; - public const long TicksPerMillisecond = default; - public const long TicksPerMinute = default; - public const long TicksPerSecond = default; + public const long TicksPerDay = 864000000000; + public const long TicksPerHour = 36000000000; + public const long TicksPerMicrosecond = 10; + public const long TicksPerMillisecond = 10000; + public const long TicksPerMinute = 600000000; + public const long TicksPerSecond = 10000000; public override string ToString() => throw null; public string ToString(string format) => throw null; public string ToString(string format, System.IFormatProvider formatProvider) => throw null; @@ -12960,13 +12960,13 @@ namespace System static ushort System.Numerics.INumberBase.MaxMagnitude(ushort x, ushort y) => throw null; static ushort System.Numerics.INumberBase.MaxMagnitudeNumber(ushort x, ushort y) => throw null; static ushort System.Numerics.INumber.MaxNumber(ushort x, ushort y) => throw null; - public const ushort MaxValue = default; + public const ushort MaxValue = 65535; static ushort System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static ushort System.Numerics.INumber.Min(ushort x, ushort y) => throw null; static ushort System.Numerics.INumberBase.MinMagnitude(ushort x, ushort y) => throw null; static ushort System.Numerics.INumberBase.MinMagnitudeNumber(ushort x, ushort y) => throw null; static ushort System.Numerics.INumber.MinNumber(ushort x, ushort y) => throw null; - public const ushort MinValue = default; + public const ushort MinValue = 0; static ushort System.Numerics.IMinMaxValue.MinValue { get => throw null; } static ushort System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static ushort System.Numerics.INumberBase.One { get => throw null; } @@ -13091,13 +13091,13 @@ namespace System static uint System.Numerics.INumberBase.MaxMagnitude(uint x, uint y) => throw null; static uint System.Numerics.INumberBase.MaxMagnitudeNumber(uint x, uint y) => throw null; static uint System.Numerics.INumber.MaxNumber(uint x, uint y) => throw null; - public const uint MaxValue = default; + public const uint MaxValue = 4294967295; static uint System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static uint System.Numerics.INumber.Min(uint x, uint y) => throw null; static uint System.Numerics.INumberBase.MinMagnitude(uint x, uint y) => throw null; static uint System.Numerics.INumberBase.MinMagnitudeNumber(uint x, uint y) => throw null; static uint System.Numerics.INumber.MinNumber(uint x, uint y) => throw null; - public const uint MinValue = default; + public const uint MinValue = 0; static uint System.Numerics.IMinMaxValue.MinValue { get => throw null; } static uint System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static uint System.Numerics.INumberBase.One { get => throw null; } @@ -13222,13 +13222,13 @@ namespace System static ulong System.Numerics.INumberBase.MaxMagnitude(ulong x, ulong y) => throw null; static ulong System.Numerics.INumberBase.MaxMagnitudeNumber(ulong x, ulong y) => throw null; static ulong System.Numerics.INumber.MaxNumber(ulong x, ulong y) => throw null; - public const ulong MaxValue = default; + public const ulong MaxValue = 18446744073709551615; static ulong System.Numerics.IMinMaxValue.MaxValue { get => throw null; } static ulong System.Numerics.INumber.Min(ulong x, ulong y) => throw null; static ulong System.Numerics.INumberBase.MinMagnitude(ulong x, ulong y) => throw null; static ulong System.Numerics.INumberBase.MinMagnitudeNumber(ulong x, ulong y) => throw null; static ulong System.Numerics.INumber.MinNumber(ulong x, ulong y) => throw null; - public const ulong MinValue = default; + public const ulong MinValue = 0; static ulong System.Numerics.IMinMaxValue.MinValue { get => throw null; } static ulong System.Numerics.IMultiplicativeIdentity.MultiplicativeIdentity { get => throw null; } static ulong System.Numerics.INumberBase.One { get => throw null; } diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs index 2f62d1f79fd..a12ae2c36f0 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.cs @@ -1164,8 +1164,8 @@ namespace System public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override byte[] HashFinal() => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; + public const int HashSizeInBits = 128; + public const int HashSizeInBytes = 16; public override void Initialize() => throw null; public override byte[] Key { get => throw null; set { } } public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; @@ -1189,8 +1189,8 @@ namespace System public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override byte[] HashFinal() => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; + public const int HashSizeInBits = 160; + public const int HashSizeInBytes = 20; public override void Initialize() => throw null; public override byte[] Key { get => throw null; set { } } public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; @@ -1213,8 +1213,8 @@ namespace System public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override byte[] HashFinal() => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; + public const int HashSizeInBits = 256; + public const int HashSizeInBytes = 32; public override void Initialize() => throw null; public override byte[] Key { get => throw null; set { } } public static bool TryHashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; @@ -1237,8 +1237,8 @@ namespace System public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override byte[] HashFinal() => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; + public const int HashSizeInBits = 384; + public const int HashSizeInBytes = 48; public override void Initialize() => throw null; public override byte[] Key { get => throw null; set { } } public bool ProduceLegacyHmacValues { get => throw null; set { } } @@ -1262,8 +1262,8 @@ namespace System public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.ReadOnlyMemory key, System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected override byte[] HashFinal() => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; + public const int HashSizeInBits = 512; + public const int HashSizeInBytes = 64; public override void Initialize() => throw null; public override byte[] Key { get => throw null; set { } } public bool ProduceLegacyHmacValues { get => throw null; set { } } @@ -1341,8 +1341,8 @@ namespace System public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; + public const int HashSizeInBits = 128; + public const int HashSizeInBytes = 16; public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } public sealed class MD5CryptoServiceProvider : System.Security.Cryptography.MD5 @@ -1825,8 +1825,8 @@ namespace System public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; + public const int HashSizeInBits = 160; + public const int HashSizeInBytes = 20; public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } public sealed class SHA1CryptoServiceProvider : System.Security.Cryptography.SHA1 @@ -1861,8 +1861,8 @@ namespace System public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; + public const int HashSizeInBits = 256; + public const int HashSizeInBytes = 32; public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } public sealed class SHA256CryptoServiceProvider : System.Security.Cryptography.SHA256 @@ -1897,8 +1897,8 @@ namespace System public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; + public const int HashSizeInBits = 384; + public const int HashSizeInBytes = 48; public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } public sealed class SHA384CryptoServiceProvider : System.Security.Cryptography.SHA384 @@ -1933,8 +1933,8 @@ namespace System public static int HashData(System.ReadOnlySpan source, System.Span destination) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.ValueTask HashDataAsync(System.IO.Stream source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public const int HashSizeInBits = default; - public const int HashSizeInBytes = default; + public const int HashSizeInBits = 512; + public const int HashSizeInBytes = 64; public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } public sealed class SHA512CryptoServiceProvider : System.Security.Cryptography.SHA512 diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs index e6ede599a54..d6a6abafa41 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.Extensions.cs @@ -30,7 +30,7 @@ namespace System } public class UnicodeEncoding : System.Text.Encoding { - public const int CharSize = default; + public const int CharSize = 2; public UnicodeEncoding() => throw null; public UnicodeEncoding(bool bigEndian, bool byteOrderMark) => throw null; public UnicodeEncoding(bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs index 31c96458371..f7188d729b1 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Threading.Tasks.Dataflow.cs @@ -151,7 +151,7 @@ namespace System public int MaxMessagesPerTask { get => throw null; set { } } public string NameFormat { get => throw null; set { } } public System.Threading.Tasks.TaskScheduler TaskScheduler { get => throw null; set { } } - public const int Unbounded = default; + public const int Unbounded = -1; } public class DataflowLinkOptions { From c7e892fa8e1bd6f8d7939549233e09add274084f Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 26 Sep 2023 15:24:29 +0200 Subject: [PATCH 674/788] Shared: change note --- .../change-notes/2023-09-26-inout-barrier-flow-state.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 shared/dataflow/change-notes/2023-09-26-inout-barrier-flow-state.md diff --git a/shared/dataflow/change-notes/2023-09-26-inout-barrier-flow-state.md b/shared/dataflow/change-notes/2023-09-26-inout-barrier-flow-state.md new file mode 100644 index 00000000000..c7ea9638ee8 --- /dev/null +++ b/shared/dataflow/change-notes/2023-09-26-inout-barrier-flow-state.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `isBarrierIn` and `isBarrierOut` predicates in `DataFlow::StateConfigSig` now have overloaded variants that block a specific `FlowState`. From 6e869452b50bec97d9d09aa68a6b0679ce856a96 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 26 Sep 2023 15:42:24 +0200 Subject: [PATCH 675/788] Shared: remove pragma[inline] implied by bindingset --- shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index fa5cb9744ea..529b7c793ee 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -304,7 +304,6 @@ module MakeImpl { /** Provides the relevant barriers for a step from `node1` to `node2`. */ bindingset[node1, node2] - pragma[inline] private predicate stepFilter(NodeEx node1, NodeEx node2) { not outBarrier(node1) and not inBarrier(node2) and @@ -314,7 +313,6 @@ module MakeImpl { /** Provides the relevant barriers for a step from `node1,state1` to `node2,state2`, including stateless barriers for `node1` to `node2`. */ bindingset[node1, state1, node2, state2] - pragma[inline] private predicate stateStepFilter(NodeEx node1, FlowState state1, NodeEx node2, FlowState state2) { stepFilter(node1, node2) and not outBarrier(node1, state1) and From eb78d401da0b505b700758388ef681c48780c85a Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 26 Sep 2023 14:56:32 +0100 Subject: [PATCH 676/788] Swift: Add to change note. --- swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md b/swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md index 2ebd9bb992a..f55bfe567a6 100644 --- a/swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md +++ b/swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* The regular expressions library now accepts a wider range of mode flags in a regular expression mode flag group (such as `(?u)`). +* The regular expressions library now accepts a wider range of mode flags in a regular expression mode flag group (such as `(?u)`). The `(?w`) flag has been renamed from "UNICODE" to "UNICODEBOUNDARY", and the `(?u)` flag is called "UNICODE" in the libraries. From 497d48bd638ea26663cdfbafdfceb25c7def5dbd Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Fri, 22 Sep 2023 17:43:57 +0100 Subject: [PATCH 677/788] Kotlin: Claim to support Kotlin 2 We don't fully support it yet, but if we don't claim to support it then Kotlin fails early. --- .../kotlin/KotlinExtractorComponentRegistrar.kt | 4 ++-- .../versions/v_1_4_32/Kotlin2ComponentRegistrar.kt | 12 ++++++++++++ .../v_1_9_0-Beta/Kotlin2ComponentRegistrar.kt | 13 +++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Kotlin2ComponentRegistrar.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/Kotlin2ComponentRegistrar.kt diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinExtractorComponentRegistrar.kt b/java/kotlin-extractor/src/main/kotlin/KotlinExtractorComponentRegistrar.kt index f2f22390eb3..8fa8eef621e 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinExtractorComponentRegistrar.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinExtractorComponentRegistrar.kt @@ -8,9 +8,9 @@ import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi import com.intellij.mock.MockProject import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar import org.jetbrains.kotlin.config.CompilerConfiguration +import com.github.codeql.Kotlin2ComponentRegistrar -@OptIn(ExperimentalCompilerApi::class) -class KotlinExtractorComponentRegistrar : ComponentRegistrar { +class KotlinExtractorComponentRegistrar : Kotlin2ComponentRegistrar() { override fun registerProjectComponents( project: MockProject, configuration: CompilerConfiguration diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Kotlin2ComponentRegistrar.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Kotlin2ComponentRegistrar.kt new file mode 100644 index 00000000000..0e16ec01d5c --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Kotlin2ComponentRegistrar.kt @@ -0,0 +1,12 @@ +// For ComponentRegistrar +@file:Suppress("DEPRECATION") + +package com.github.codeql + +import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi +import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar + +@OptIn(ExperimentalCompilerApi::class) +abstract class Kotlin2ComponentRegistrar : ComponentRegistrar { + /* Nothing to do; supportsK2 doesn't exist yet. */ +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/Kotlin2ComponentRegistrar.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/Kotlin2ComponentRegistrar.kt new file mode 100644 index 00000000000..eddb6b53fb6 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/Kotlin2ComponentRegistrar.kt @@ -0,0 +1,13 @@ +// For ComponentRegistrar +@file:Suppress("DEPRECATION") + +package com.github.codeql + +import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi +import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar + +@OptIn(ExperimentalCompilerApi::class) +abstract class Kotlin2ComponentRegistrar : ComponentRegistrar { + override val supportsK2: Boolean + get() = true +} From d25b93d9448e77ac41ab0e4efc588bd6b3a7350c Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 26 Sep 2023 20:33:24 +0200 Subject: [PATCH 678/788] Python: fix ql alerts --- python/ql/lib/semmle/python/AstExtended.qll | 2 +- python/ql/lib/semmle/python/regexp/RegexTreeView.qll | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/python/ql/lib/semmle/python/AstExtended.qll b/python/ql/lib/semmle/python/AstExtended.qll index 97f6a5629a0..06653f55ddd 100644 --- a/python/ql/lib/semmle/python/AstExtended.qll +++ b/python/ql/lib/semmle/python/AstExtended.qll @@ -167,7 +167,7 @@ class StringPart extends StringPart_, AstNode { * Gets the length of the content, that is the text between the prefix and the quote. * See `context` for obtaining the prefix and the quote. */ - int getContentLenght() { + int getContentLength() { exists(string prefix, string quote | this.context(prefix, quote) | result = this.getText().length() - prefix.length() - quote.length() ) diff --git a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll index 3c1e86397b7..d0733540dbf 100644 --- a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll +++ b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll @@ -230,7 +230,7 @@ module Impl implements RegexTreeViewSig { index > 0 and exists(int previousOffset | previousOffset = this.getPartOffset(index - 1) | result = - previousOffset + re.(StrConst).getImplicitlyConcatenatedPart(index - 1).getContentLenght() + previousOffset + re.(StrConst).getImplicitlyConcatenatedPart(index - 1).getContentlength() ) } @@ -245,7 +245,7 @@ module Impl implements RegexTreeViewSig { // Example: // re.compile('...' r"""...this..""") // - `start` is the offset from `(` to `this` as counted after concatenating all parts. - // - we subtract the lenght of the previous `StringPart`s, `'...'`, to know how far into this `StringPart` we go. + // - we subtract the length of the previous `StringPart`s, `'...'`, to know how far into this `StringPart` we go. // - as the prefix 'r"""' is part of the `StringPart`, `this` is found that much further in. localOffset = start - this.getPartOffset(index) + prefixLength ) From e7a3dc83bcbdbec27bf697ceb2a8e7c7c65a9e08 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 19 Sep 2023 12:20:17 +0200 Subject: [PATCH 679/788] Data flow: Performance improvements --- .../codeql/dataflow/internal/DataFlowImpl.qll | 312 +++++++++++++----- .../dataflow/internal/DataFlowImplCommon.qll | 37 ++- 2 files changed, 250 insertions(+), 99 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index e4182a32a4b..171f943a25a 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1316,7 +1316,7 @@ module MakeImpl { ) or // flow into a callable - fwdFlowIn(_, _, node, state, _, cc, _, _, _, t, ap, apa, _) and + fwdFlowIn(node, apa, state, cc, t, ap) and if PrevStage::parameterMayFlowThrough(node, apa) then ( summaryCtx = TParamNodeSome(node.asNode()) and @@ -1327,7 +1327,7 @@ module MakeImpl { ) or // flow out of a callable - fwdFlowOut(_, _, node, state, cc, summaryCtx, argT, argAp, t, ap, apa) + fwdFlowOut(node, state, cc, summaryCtx, argT, argAp, t, ap, apa) or // flow through a callable exists( @@ -1415,75 +1415,148 @@ module MakeImpl { ) } - bindingset[call, ctx] - pragma[inline_late] - private DataFlowCallable viableImplCallContextReducedInlineLate( - DataFlowCall call, CcCall ctx - ) { - result = viableImplCallContextReduced(call, ctx) - } - - bindingset[arg, ctx] - pragma[inline_late] - private DataFlowCallable viableImplCallContextReducedInlineLate( - DataFlowCall call, ArgNodeEx arg, CcCall ctx - ) { - call = arg.getCall() and - result = viableImplCallContextReducedInlineLate(call, ctx) - } - - bindingset[call] - pragma[inline_late] - private predicate flowIntoCallApaInlineLate( - DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, - boolean allowsFieldFlow, ApApprox apa - ) { - PrevStage::callEdgeArgParam(call, c, arg, p, allowsFieldFlow, apa) - } - - bindingset[call, ctx] - pragma[inline_late] - private predicate viableImplNotCallContextReducedInlineLate(DataFlowCall call, Cc ctx) { - viableImplNotCallContextReduced(call, ctx) - } - - bindingset[arg, outercc] - pragma[inline_late] - private predicate viableImplArgNotCallContextReduced( - DataFlowCall call, ArgNodeEx arg, Cc outercc - ) { - call = arg.getCall() and - viableImplNotCallContextReducedInlineLate(call, outercc) - } - pragma[nomagic] - private predicate fwdFlowInCand( - DataFlowCall call, DataFlowCallable inner, ParamNodeEx p, FlowState state, Cc outercc, - ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa + private predicate fwdFlowIntoArg( + ArgNodeEx arg, FlowState state, Cc outercc, ParamNodeOption summaryCtx, TypOption argT, + ApOption argAp, Typ t, Ap ap, ApApprox apa, boolean cc ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, summaryCtx, argT, argAp, t, ap, apa) and + fwdFlow(arg, state, outercc, summaryCtx, argT, argAp, t, ap, apa) and + if outercc instanceof CcCall then cc = true else cc = false + } + + private signature module FwdFlowInInputSig { + default predicate callRestriction(DataFlowCall call) { any() } + + bindingset[p, apa] + default predicate parameterRestriction(ParamNodeEx p, ApApprox apa) { any() } + } + + /** + * Exposes the inlined predicate `fwdFlowIn`, which is used to calculate both + * flow in and flow through. + * + * For flow in, only a subset of the columns are needed, specifically we don't + * need to record the argument that flows into the parameter. + * + * For flow through, we do need to record the argument, however, we can restrict + * this to arguments that may actually flow through, using `callRestriction` and + * `parameterRestriction`, which reduces the argument-to-parameter fan-in + * significantly. + */ + private module FwdFlowIn { + pragma[nomagic] + private predicate callEdgeArgParamRestricted( + DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, + boolean allowsFieldFlow, ApApprox apa + ) { + PrevStage::callEdgeArgParam(call, c, arg, p, allowsFieldFlow, apa) and + I::callRestriction(call) and + I::parameterRestriction(p, apa) + } + + pragma[nomagic] + private DataFlowCallable viableImplCallContextReducedRestricted( + DataFlowCall call, CcCall ctx + ) { + result = viableImplCallContextReduced(call, ctx) and + callEdgeArgParamRestricted(call, result, _, _, _, _) + } + + bindingset[call, ctx] + pragma[inline_late] + private DataFlowCallable viableImplCallContextReducedInlineLate( + DataFlowCall call, CcCall ctx + ) { + result = viableImplCallContextReducedRestricted(call, ctx) + } + + bindingset[arg, ctx] + pragma[inline_late] + private DataFlowCallable viableImplCallContextReducedInlineLate( + DataFlowCall call, ArgNodeEx arg, CcCall ctx + ) { + callEdgeArgParamRestricted(call, _, arg, _, _, _) and + result = viableImplCallContextReducedInlineLate(call, ctx) + } + + bindingset[call] + pragma[inline_late] + private predicate callEdgeArgParamRestrictedInlineLate( + DataFlowCall call, DataFlowCallable c, ArgNodeEx arg, ParamNodeEx p, + boolean allowsFieldFlow, ApApprox apa + ) { + callEdgeArgParamRestricted(call, c, arg, p, allowsFieldFlow, apa) + } + + bindingset[call, ctx] + pragma[inline_late] + private predicate viableImplNotCallContextReducedInlineLate(DataFlowCall call, Cc ctx) { + viableImplNotCallContextReduced(call, ctx) + } + + bindingset[arg, outercc] + pragma[inline_late] + private predicate viableImplArgNotCallContextReduced( + DataFlowCall call, ArgNodeEx arg, Cc outercc + ) { + callEdgeArgParamRestricted(call, _, arg, _, _, _) and + viableImplNotCallContextReducedInlineLate(call, outercc) + } + + pragma[nomagic] + private predicate fwdFlowInCand( + DataFlowCall call, ArgNodeEx arg, Cc outercc, DataFlowCallable inner, ParamNodeEx p, + ApApprox apa, boolean allowsFieldFlow, boolean cc + ) { + fwdFlowIntoArg(arg, _, outercc, _, _, _, _, _, apa, cc) and ( inner = viableImplCallContextReducedInlineLate(call, arg, outercc) or viableImplArgNotCallContextReduced(call, arg, outercc) ) and - flowIntoCallApaInlineLate(call, inner, arg, p, allowsFieldFlow, apa) - | - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) + callEdgeArgParamRestrictedInlineLate(call, inner, arg, p, allowsFieldFlow, apa) + } + + pragma[nomagic] + private predicate fwdFlowInValidEdge( + DataFlowCall call, ArgNodeEx arg, Cc outercc, DataFlowCallable inner, ParamNodeEx p, + CcCall innercc, ApApprox apa, boolean allowsFieldFlow, boolean cc + ) { + fwdFlowInCand(call, arg, outercc, inner, p, apa, allowsFieldFlow, cc) and + FwdTypeFlow::typeFlowValidEdgeIn(call, inner, cc) and + innercc = getCallContextCall(call, inner) + } + + pragma[inline] + predicate fwdFlowIn( + DataFlowCall call, DataFlowCallable inner, ParamNodeEx p, FlowState state, Cc outercc, + CcCall innercc, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, + Ap ap, ApApprox apa, boolean cc + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlowIntoArg(arg, state, outercc, summaryCtx, argT, argAp, t, ap, apa, cc) and + fwdFlowInValidEdge(call, arg, outercc, inner, p, innercc, apa, allowsFieldFlow, cc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } } + private module FwdFlowInNoRestriction implements FwdFlowInInputSig { } + pragma[nomagic] private predicate fwdFlowIn( - DataFlowCall call, DataFlowCallable inner, ParamNodeEx p, FlowState state, Cc outercc, - CcCall innercc, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, - ApApprox apa, boolean cc + ParamNodeEx p, ApApprox apa, FlowState state, CcCall innercc, Typ t, Ap ap ) { - fwdFlowInCand(call, inner, p, state, outercc, summaryCtx, argT, argAp, t, ap, apa) and - FwdTypeFlow::typeFlowValidEdgeIn(call, inner, cc) and - innercc = getCallContextCall(call, inner) and - if outercc instanceof CcCall then cc = true else cc = false + FwdFlowIn::fwdFlowIn(_, _, p, state, _, innercc, _, _, _, t, ap, + apa, _) + } + + pragma[nomagic] + private DataFlowCallable viableImplCallContextReducedReverseRestricted( + DataFlowCall call, CcNoCall ctx + ) { + result = viableImplCallContextReducedReverse(call, ctx) and + PrevStage::callEdgeReturn(call, result, _, _, _, _, _) } bindingset[ctx, result] @@ -1491,7 +1564,7 @@ module MakeImpl { private DataFlowCallable viableImplCallContextReducedReverseInlineLate( DataFlowCall call, CcNoCall ctx ) { - result = viableImplCallContextReducedReverse(call, ctx) + result = viableImplCallContextReducedReverseRestricted(call, ctx) } bindingset[call] @@ -1514,34 +1587,58 @@ module MakeImpl { PrevStage::callEdgeReturn(call, c, ret, _, out, allowsFieldFlow, apa) } + pragma[nomagic] + private predicate fwdFlowIntoRet( + RetNodeEx ret, FlowState state, CcNoCall cc, ParamNodeOption summaryCtx, TypOption argT, + ApOption argAp, Typ t, Ap ap, ApApprox apa + ) { + fwdFlow(ret, state, cc, summaryCtx, argT, argAp, t, ap, apa) + } + pragma[nomagic] private predicate fwdFlowOutCand( - DataFlowCall call, DataFlowCallable inner, NodeEx out, FlowState state, + DataFlowCall call, RetNodeEx ret, CcNoCall innercc, DataFlowCallable inner, NodeEx out, + ApApprox apa, boolean allowsFieldFlow + ) { + fwdFlowIntoRet(ret, _, innercc, _, _, _, _, _, apa) and + inner = ret.getEnclosingCallable() and + ( + inner = viableImplCallContextReducedReverseInlineLate(call, innercc) and + flowOutOfCallApaInlineLate(call, inner, ret, out, allowsFieldFlow, apa) + or + flowOutOfCallApaNotCallContextReduced(call, inner, ret, out, allowsFieldFlow, apa, + innercc) + ) + } + + pragma[nomagic] + private predicate fwdFlowOutValidEdge( + DataFlowCall call, RetNodeEx ret, CcNoCall innercc, DataFlowCallable inner, NodeEx out, + CcNoCall outercc, ApApprox apa, boolean allowsFieldFlow + ) { + fwdFlowOutCand(call, ret, innercc, inner, out, apa, allowsFieldFlow) and + FwdTypeFlow::typeFlowValidEdgeOut(call, inner) and + outercc = getCallContextReturn(inner, call) + } + + pragma[inline] + private predicate fwdFlowOut( + DataFlowCall call, DataFlowCallable inner, NodeEx out, FlowState state, CcNoCall outercc, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc | - fwdFlow(ret, state, innercc, summaryCtx, argT, argAp, t, ap, apa) and - inner = ret.getEnclosingCallable() and - ( - inner = viableImplCallContextReducedReverseInlineLate(call, innercc) and - flowOutOfCallApaInlineLate(call, inner, ret, out, allowsFieldFlow, apa) - or - flowOutOfCallApaNotCallContextReduced(call, inner, ret, out, allowsFieldFlow, apa, - innercc) - ) - | + exists(RetNodeEx ret, CcNoCall innercc, boolean allowsFieldFlow | + fwdFlowIntoRet(ret, state, innercc, summaryCtx, argT, argAp, t, ap, apa) and + fwdFlowOutValidEdge(call, ret, innercc, inner, out, outercc, apa, allowsFieldFlow) and if allowsFieldFlow = false then ap instanceof ApNil else any() ) } pragma[nomagic] private predicate fwdFlowOut( - DataFlowCall call, DataFlowCallable inner, NodeEx out, FlowState state, CcNoCall outercc, - ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, Typ t, Ap ap, ApApprox apa + NodeEx out, FlowState state, CcNoCall outercc, ParamNodeOption summaryCtx, TypOption argT, + ApOption argAp, Typ t, Ap ap, ApApprox apa ) { - fwdFlowOutCand(call, inner, out, state, summaryCtx, argT, argAp, t, ap, apa) and - FwdTypeFlow::typeFlowValidEdgeOut(call, inner) and - outercc = getCallContextReturn(inner, call) + fwdFlowOut(_, _, out, state, outercc, summaryCtx, argT, argAp, t, ap, apa) } private module FwdTypeFlowInput implements TypeFlowInput { @@ -1555,19 +1652,48 @@ module MakeImpl { PrevStage::callEdgeReturn(call, c, _, _, _, _, _) } + pragma[nomagic] + private predicate dataFlowTakenCallEdgeIn0( + DataFlowCall call, DataFlowCallable c, ParamNodeEx p, FlowState state, Cc innercc, + Typ t, Ap ap, boolean cc + ) { + FwdFlowIn::fwdFlowIn(call, c, p, state, _, innercc, _, _, _, t, + ap, _, cc) + } + + pragma[nomagic] + private predicate fwdFlow1Param(ParamNodeEx p, FlowState state, CcCall cc, Typ t0, Ap ap) { + fwdFlow1(p, state, cc, _, _, _, t0, _, ap, _) + } + pragma[nomagic] predicate dataFlowTakenCallEdgeIn(DataFlowCall call, DataFlowCallable c, boolean cc) { - exists(ParamNodeEx p, FlowState state, Cc innercc, Typ t, Ap ap | - fwdFlowIn(call, c, p, state, _, innercc, _, _, _, t, ap, _, cc) and - fwdFlow1(p, state, innercc, _, _, _, t, _, ap, _) + exists(ParamNodeEx p, FlowState state, CcCall innercc, Typ t, Ap ap | + dataFlowTakenCallEdgeIn0(call, c, p, state, innercc, t, ap, cc) and + fwdFlow1Param(p, state, innercc, t, ap) + ) + } + + pragma[nomagic] + private predicate dataFlowTakenCallEdgeOut0( + DataFlowCall call, DataFlowCallable c, NodeEx node, FlowState state, Cc cc, Typ t, Ap ap + ) { + fwdFlowOut(call, c, node, state, cc, _, _, _, t, ap, _) + } + + pragma[nomagic] + private predicate fwdFlow1Out(NodeEx node, FlowState state, Cc cc, Typ t0, Ap ap) { + exists(ApApprox apa | + fwdFlow1(node, state, cc, _, _, _, t0, _, ap, apa) and + PrevStage::callEdgeReturn(_, _, _, _, node, _, apa) ) } pragma[nomagic] predicate dataFlowTakenCallEdgeOut(DataFlowCall call, DataFlowCallable c) { exists(NodeEx node, FlowState state, Cc cc, Typ t, Ap ap | - fwdFlowOut(call, c, node, state, cc, _, _, _, t, ap, _) and - fwdFlow1(node, state, cc, _, _, _, t, _, ap, _) + dataFlowTakenCallEdgeOut0(call, c, node, state, cc, t, ap) and + fwdFlow1Out(node, state, cc, t, ap) ) } @@ -1635,6 +1761,12 @@ module MakeImpl { innerArgApa) } + private module FwdFlowThroughRestriction implements FwdFlowInInputSig { + predicate callRestriction = PrevStage::callMayFlowThroughRev/1; + + predicate parameterRestriction = PrevStage::parameterMayFlowThrough/2; + } + /** * Holds if an argument to `call` is reached in the flow covered by `fwdFlow` * and data might flow through the target callable and back out at `call`. @@ -1644,12 +1776,8 @@ module MakeImpl { DataFlowCall call, Cc cc, CcCall innerCc, ParamNodeOption summaryCtx, TypOption argT, ApOption argAp, ParamNodeEx p, Typ t, Ap ap ) { - exists(ApApprox apa | - fwdFlowIn(call, _, pragma[only_bind_into](p), _, cc, innerCc, summaryCtx, argT, argAp, - t, ap, pragma[only_bind_into](apa), _) and - PrevStage::parameterMayFlowThrough(p, apa) and - PrevStage::callMayFlowThroughRev(call) - ) + FwdFlowIn::fwdFlowIn(call, _, p, _, cc, innerCc, summaryCtx, + argT, argAp, t, ap, _, _) } pragma[nomagic] @@ -3860,6 +3988,8 @@ module MakeImpl { ) } + private predicate parameterCandProj(DataFlowCallable c) { parameterCand(c, _, _) } + pragma[nomagic] private predicate pathIntoCallable0( PathNodeMid mid, DataFlowCallable callable, ParameterPosition pos, FlowState state, @@ -3868,7 +3998,7 @@ module MakeImpl { exists(AccessPathApprox apa | pathIntoArg(mid, pragma[only_bind_into](pos), state, outercc, call, t, ap, pragma[only_bind_into](apa)) and - callable = resolveCall(call, outercc) and + callable = ResolveCall::resolveCall(call, outercc) and parameterCand(callable, pragma[only_bind_into](pos), pragma[only_bind_into](apa)) ) } @@ -4791,13 +4921,15 @@ module MakeImpl { ) } + private predicate anyCallable(DataFlowCallable c) { any() } + pragma[nomagic] private predicate partialPathIntoCallable0( PartialPathNodeFwd mid, DataFlowCallable callable, ParameterPosition pos, FlowState state, CallContext outercc, DataFlowCall call, DataFlowType t, PartialAccessPath ap ) { partialPathIntoArg(mid, pos, state, outercc, call, t, ap) and - callable = resolveCall(call, outercc) + callable = ResolveCall::resolveCall(call, outercc) } private predicate partialPathIntoCallable( diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll index e234de2e913..ab0562e17cb 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll @@ -1374,6 +1374,7 @@ module MakeImplCommon { * Holds if the edge `call`-to-`c` is valid in the in-going direction in the * call context `cc`. */ + pragma[nomagic] predicate typeFlowValidEdgeIn(DataFlowCall call, DataFlowCallable c, boolean cc) { Input::relevantCallEdgeIn(call, c) and cc = [true, false] and @@ -1416,6 +1417,7 @@ module MakeImplCommon { /** * Holds if the edge `call`-to-`c` is valid in the out-going direction. */ + pragma[nomagic] predicate typeFlowValidEdgeOut(DataFlowCall call, DataFlowCallable c) { Input::relevantCallEdgeOut(call, c) and ( @@ -1779,15 +1781,32 @@ module MakeImplCommon { call = prunedViableImplInCallContextReverse(callable, cc) } - /** - * Resolves a call from `call` in `cc` to `result`. - */ - bindingset[call, cc] - DataFlowCallable resolveCall(DataFlowCall call, CallContext cc) { - result = prunedViableImplInCallContext(call, cc) - or - noPrunedViableImplInCallContext(call, cc) and - result = viableCallableExt(call) + signature predicate relevantResolveTargetSig(DataFlowCallable c); + + module ResolveCall { + pragma[nomagic] + private DataFlowCallable prunedRelevantViableImplInCallContext(DataFlowCall call, CallContext cc) { + result = prunedViableImplInCallContext(call, cc) and + relevantResolveTarget(result) + } + + pragma[nomagic] + private DataFlowCallable viableRelevantCallableExt(DataFlowCall call) { + result = viableCallableExt(call) and + relevantResolveTarget(result) + } + + /** + * Resolves a call from `call` in `cc` to `result`, where `result` is + * restricted by `relevantResolveTarget`. + */ + bindingset[call, cc] + DataFlowCallable resolveCall(DataFlowCall call, CallContext cc) { + result = prunedRelevantViableImplInCallContext(call, cc) + or + noPrunedViableImplInCallContext(call, cc) and + result = viableRelevantCallableExt(call) + } } /** An optional Boolean value. */ From 73aa302bd28afdab72112fd68aa23dfd5bc2d913 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 26 Sep 2023 20:45:24 +0200 Subject: [PATCH 680/788] Python: only expose lengths of quote and prefix --- python/ql/lib/semmle/python/AstExtended.qll | 16 ++++++++++------ .../lib/semmle/python/regexp/RegexTreeView.qll | 4 ++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/python/ql/lib/semmle/python/AstExtended.qll b/python/ql/lib/semmle/python/AstExtended.qll index 06653f55ddd..de44bab966a 100644 --- a/python/ql/lib/semmle/python/AstExtended.qll +++ b/python/ql/lib/semmle/python/AstExtended.qll @@ -155,11 +155,15 @@ class StringPart extends StringPart_, AstNode { override Location getLocation() { result = StringPart_.super.getLocation() } - /** Holds if the content of string `StringPart` is surrounded by `prefix` and `quote`. */ - predicate context(string prefix, string quote) { + /** + * Holds if the content of string `StringPart` is surrounded by + * a prefix (including a quote) of length `prefixLength` and + * a quote of length `quoteLength`. + */ + predicate contextSize(int prefixLength, int quoteLength) { exists(int occurrenceOffset | - quote = this.getText().regexpFind("\"{3}|\"{1}|'{3}|'{1}", 0, occurrenceOffset) and - prefix = this.getText().prefix(occurrenceOffset + quote.length()) + quoteLength = this.getText().regexpFind("\"{3}|\"{1}|'{3}|'{1}", 0, occurrenceOffset).length() and + prefixLength = occurrenceOffset + quoteLength ) } @@ -168,8 +172,8 @@ class StringPart extends StringPart_, AstNode { * See `context` for obtaining the prefix and the quote. */ int getContentLength() { - exists(string prefix, string quote | this.context(prefix, quote) | - result = this.getText().length() - prefix.length() - quote.length() + exists(int prefixLength, int quoteLength | this.contextSize(prefixLength, quoteLength) | + result = this.getText().length() - prefixLength - quoteLength ) } } diff --git a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll index d0733540dbf..822f861d91a 100644 --- a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll +++ b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll @@ -230,7 +230,7 @@ module Impl implements RegexTreeViewSig { index > 0 and exists(int previousOffset | previousOffset = this.getPartOffset(index - 1) | result = - previousOffset + re.(StrConst).getImplicitlyConcatenatedPart(index - 1).getContentlength() + previousOffset + re.(StrConst).getImplicitlyConcatenatedPart(index - 1).getContentLength() ) } @@ -241,7 +241,7 @@ module Impl implements RegexTreeViewSig { StringPart getPart(int localOffset) { exists(int index, int prefixLength | index = max(int i | this.getPartOffset(i) < start) | result = re.(StrConst).getImplicitlyConcatenatedPart(index) and - exists(string prefix | result.context(prefix, _) | prefixLength = prefix.length()) and + result.contextSize(prefixLength, _) and // Example: // re.compile('...' r"""...this..""") // - `start` is the offset from `(` to `this` as counted after concatenating all parts. From cdf1db09bd12fdc95ccdcd0da7f20339a6eb8c6a Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 26 Sep 2023 20:50:08 +0200 Subject: [PATCH 681/788] Python: add test for part boundaries --- python/ql/test/library-tests/regexparser/locations.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/python/ql/test/library-tests/regexparser/locations.py b/python/ql/test/library-tests/regexparser/locations.py index cf5ca09d861..19867bda0be 100644 --- a/python/ql/test/library-tests/regexparser/locations.py +++ b/python/ql/test/library-tests/regexparser/locations.py @@ -55,9 +55,10 @@ re.compile( # $ location=1:2 location=1:26 ) # plain string with multiple parts across lines -re.compile( # $ location=1:2 location=2:7 +re.compile( # $ location=1:2 location=2:7 SPURIOUS:location=2:29 MISSING:location=3:2 '[this] is a test' ' and [this] is another test' +'[this] comes right at the start of a part' ) # plain string with multiple parts across lines and comments From f5059a6918d009c8b48e7bb74470edd44eb05a27 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 26 Sep 2023 20:51:15 +0200 Subject: [PATCH 682/788] Python: fix computation at part boundaries --- python/ql/lib/semmle/python/regexp/RegexTreeView.qll | 2 +- python/ql/test/library-tests/regexparser/locations.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll index 822f861d91a..1102e9d006b 100644 --- a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll +++ b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll @@ -239,7 +239,7 @@ module Impl implements RegexTreeViewSig { * `localOffset` will be the offset of this `RegExpTerm` inside `result`. */ StringPart getPart(int localOffset) { - exists(int index, int prefixLength | index = max(int i | this.getPartOffset(i) < start) | + exists(int index, int prefixLength | index = max(int i | this.getPartOffset(i) <= start) | result = re.(StrConst).getImplicitlyConcatenatedPart(index) and result.contextSize(prefixLength, _) and // Example: diff --git a/python/ql/test/library-tests/regexparser/locations.py b/python/ql/test/library-tests/regexparser/locations.py index 19867bda0be..133ba528ce1 100644 --- a/python/ql/test/library-tests/regexparser/locations.py +++ b/python/ql/test/library-tests/regexparser/locations.py @@ -55,7 +55,7 @@ re.compile( # $ location=1:2 location=1:26 ) # plain string with multiple parts across lines -re.compile( # $ location=1:2 location=2:7 SPURIOUS:location=2:29 MISSING:location=3:2 +re.compile( # $ location=1:2 location=2:7 location=3:2 '[this] is a test' ' and [this] is another test' '[this] comes right at the start of a part' From 35f28c832aa3d6eb52b8e442e02a1a24c7b6433c Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 26 Sep 2023 20:55:35 +0200 Subject: [PATCH 683/788] Python: small refactor (reviewer suggestion) --- python/ql/lib/semmle/python/regexp/RegexTreeView.qll | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll index 1102e9d006b..19068fdef86 100644 --- a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll +++ b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll @@ -263,10 +263,11 @@ module Impl implements RegexTreeViewSig { /* inclusive vs exclusive */ ) or - exists(StringPart part, int localOffset | part = this.getPart(localOffset) | - filepath = part.getLocation().getFile().getAbsolutePath() and - startline = part.getLocation().getStartLine() and - startcolumn = part.getLocation().getStartColumn() + localOffset and + exists(StringPart part, int localOffset, int partStartColumn | + part = this.getPart(localOffset) + | + part.getLocation().hasLocationInfo(filepath, startline, partStartColumn, _, _) and + startcolumn = partStartColumn + localOffset and endline = startline and endcolumn = (end - start) + startcolumn ) From db95eade64e92b87fffb46d870fdb31c42f801f9 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 26 Sep 2023 20:58:51 +0200 Subject: [PATCH 684/788] Python: accept improved test output --- .../ql/test/query-tests/Security/CWE-730-ReDoS/ReDoS.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/test/query-tests/Security/CWE-730-ReDoS/ReDoS.expected b/python/ql/test/query-tests/Security/CWE-730-ReDoS/ReDoS.expected index 30d2a753f67..6ac92fdde13 100644 --- a/python/ql/test/query-tests/Security/CWE-730-ReDoS/ReDoS.expected +++ b/python/ql/test/query-tests/Security/CWE-730-ReDoS/ReDoS.expected @@ -1,5 +1,5 @@ | KnownCVEs.py:15:20:15:22 | \\d+ | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '0'. | -| KnownCVEs.py:30:21:31:22 | .* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of ','. | +| KnownCVEs.py:30:21:30:23 | .* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of ','. | | KnownCVEs.py:35:18:35:81 | ([-/:,#%.'"\\s!\\w]\|\\w-\\w\|'[\\s\\w]+'\\s*\|"[\\s\\w]+"\|\\([\\d,%\\.\\s]+\\))* | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '"\\t"'. | | redos.py:6:28:6:42 | (?:__\|[\\s\\S])+? | This part of the regular expression may cause exponential backtracking on strings containing many repetitions of '__'. | | redos.py:6:52:6:68 | (?:\\*\\*\|[\\s\\S])+? | This part of the regular expression may cause exponential backtracking on strings starting with '*' and containing many repetitions of '**'. | From 8ade9ed164342e9ee8a4a5f9aa2835d035bae78b Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 26 Sep 2023 21:02:14 +0200 Subject: [PATCH 685/788] Python: fix inconsistency Since we calculate the end column by offset, we must believ that the end line is the same as the start line. --- python/ql/lib/semmle/python/regexp/RegexTreeView.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll index 19068fdef86..1f8712d6763 100644 --- a/python/ql/lib/semmle/python/regexp/RegexTreeView.qll +++ b/python/ql/lib/semmle/python/regexp/RegexTreeView.qll @@ -257,8 +257,9 @@ module Impl implements RegexTreeViewSig { ) { not exists(this.getPart(_)) and exists(int re_start, int prefix_len | prefix_len = re.getPrefix().length() | - re.getLocation().hasLocationInfo(filepath, startline, re_start, endline, _) and + re.getLocation().hasLocationInfo(filepath, startline, re_start, _, _) and startcolumn = re_start + start + prefix_len and + endline = startline and endcolumn = re_start + end + prefix_len - 1 /* inclusive vs exclusive */ ) From 68fd25cd9cadb6111996ddd6ffdf28bd69dd7516 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 26 Sep 2023 12:37:17 +0200 Subject: [PATCH 686/788] C#: Base DeadStoreOfLocal test on stubs. --- csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/options | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/options diff --git a/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/options b/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/options new file mode 100644 index 00000000000..75c39b4541b --- /dev/null +++ b/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/options @@ -0,0 +1,2 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj From 577ea50ec94b0f3b174b8fecfd271e5ae0129255 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 26 Sep 2023 15:11:25 +0200 Subject: [PATCH 687/788] C#: Base ConstantComparison and PossibleLossOfPrecision tests on stubs. --- .../ql/test/query-tests/Likely Bugs/ConstantComparison/options | 3 ++- .../query-tests/Likely Bugs/PossibleLossOfPrecision/options | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 csharp/ql/test/query-tests/Likely Bugs/PossibleLossOfPrecision/options diff --git a/csharp/ql/test/query-tests/Likely Bugs/ConstantComparison/options b/csharp/ql/test/query-tests/Likely Bugs/ConstantComparison/options index 993b83a0589..75c39b4541b 100644 --- a/csharp/ql/test/query-tests/Likely Bugs/ConstantComparison/options +++ b/csharp/ql/test/query-tests/Likely Bugs/ConstantComparison/options @@ -1 +1,2 @@ -semmle-extractor-options: /r:System.Diagnostics.Debug.dll +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj diff --git a/csharp/ql/test/query-tests/Likely Bugs/PossibleLossOfPrecision/options b/csharp/ql/test/query-tests/Likely Bugs/PossibleLossOfPrecision/options new file mode 100644 index 00000000000..75c39b4541b --- /dev/null +++ b/csharp/ql/test/query-tests/Likely Bugs/PossibleLossOfPrecision/options @@ -0,0 +1,2 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj From 4c3cbad8fee33dd21bd0baba0b070e076f2cf3e1 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 27 Sep 2023 11:36:44 +0200 Subject: [PATCH 688/788] C#: Prepare stub generator for unit testing and expose internals to the Test project. --- .../IRelevantSymbol.cs | 9 +++++ .../Properties/AssemblyInfo.cs | 39 +++++++++++++++++++ .../RelevantSymbol.cs | 5 +-- .../StubVisitor.cs | 4 +- 4 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/IRelevantSymbol.cs create mode 100644 csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/Properties/AssemblyInfo.cs diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/IRelevantSymbol.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/IRelevantSymbol.cs new file mode 100644 index 00000000000..8f082ac31bc --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/IRelevantSymbol.cs @@ -0,0 +1,9 @@ +using Microsoft.CodeAnalysis; + +namespace Semmle.Extraction.CSharp.StubGenerator; + +internal interface IRelevantSymbol +{ + bool IsRelevantNamedType(INamedTypeSymbol symbol); + bool IsRelevantNamespace(INamespaceSymbol symbol); +} diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/Properties/AssemblyInfo.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/Properties/AssemblyInfo.cs new file mode 100644 index 00000000000..b4eb39d9e88 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Semmle.Extraction.CSharp.StubGenerator")] +[assembly: AssemblyDescription("Stub generator for C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Semmle.Extraction.CSharp.StubGenerator")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6d55ca39-615a-4c1b-a648-a4010995e1ea")] + +// Expose internals for testing purposes. +[assembly: InternalsVisibleTo("Semmle.Extraction.Tests")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/RelevantSymbol.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/RelevantSymbol.cs index 44ed332c7c8..50d915ab9b4 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/RelevantSymbol.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/RelevantSymbol.cs @@ -1,13 +1,10 @@ using System.Linq; - using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; - using Semmle.Util; namespace Semmle.Extraction.CSharp.StubGenerator; -internal class RelevantSymbol +internal class RelevantSymbol : IRelevantSymbol { private readonly IAssemblySymbol assembly; private readonly MemoizedFunc isRelevantNamedType; diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs index 44f41205961..664188c41c2 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs @@ -12,9 +12,9 @@ namespace Semmle.Extraction.CSharp.StubGenerator; internal sealed class StubVisitor : SymbolVisitor { private readonly TextWriter stubWriter; - private readonly RelevantSymbol relevantSymbol; + private readonly IRelevantSymbol relevantSymbol; - public StubVisitor(TextWriter stubWriter, RelevantSymbol relevantSymbol) + public StubVisitor(TextWriter stubWriter, IRelevantSymbol relevantSymbol) { this.stubWriter = stubWriter; this.relevantSymbol = relevantSymbol; From 53c947dd9d1487d8e3007a0ba291330010f17a9e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 27 Sep 2023 11:38:33 +0200 Subject: [PATCH 689/788] C#: Add a couple of unit tests. --- .../Semmle.Extraction.Tests.csproj | 1 + .../Semmle.Extraction.Tests/StubGenerator.cs | 74 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs diff --git a/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj b/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj index 92bf46deb44..6d6afa96e84 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj +++ b/csharp/extractor/Semmle.Extraction.Tests/Semmle.Extraction.Tests.csproj @@ -16,6 +16,7 @@ + diff --git a/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs new file mode 100644 index 00000000000..a702d56c21d --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs @@ -0,0 +1,74 @@ +using Xunit; +using System.IO; +using System.Text; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Semmle.Extraction.CSharp.StubGenerator; + +namespace Semmle.Extraction.Tests; +/// +/// Tests for the stub generator. +/// +/// These tests can be used to more easily step debug the stub generator SymbolVisitor. +/// +public class StubGeneratorTests +{ + [Fact] + public void StubGeneratorFieldTest() + { + // Setup + const string source = @" +public class MyTest { + public static readonly int MyField1; + public const string MyField2 = ""hello""; + } +"; + + // Execute + var stub = GenerateStub(source); + + // Verify + const string expected = @"public class MyTest { +public static readonly int MyField1; +public const string MyField2 = default; +} +"; + Assert.Equal(expected, stub); + } + + [Fact] + public void StubGeneratorMethodTest() + { + // Setup + const string source = @" +public class MyTest { + public int M1(string arg1) { return 0;} +}"; + + // Execute + var stub = GenerateStub(source); + + // Verify + const string expected = @"public class MyTest { +public int M1(string arg1) => throw null; +} +"; + Assert.Equal(expected, stub); + } + + private static string GenerateStub(string source) + { + var st = CSharpSyntaxTree.ParseText(source); + var compilation = CSharpCompilation.Create(null, new[] { st }); + var sb = new StringBuilder(); + var visitor = new StubVisitor(new StringWriter(sb), new RelevantSymbolStub()); + compilation.GlobalNamespace.Accept(visitor); + return sb.ToString(); + } + + private class RelevantSymbolStub : IRelevantSymbol + { + public bool IsRelevantNamedType(INamedTypeSymbol symbol) => true; + public bool IsRelevantNamespace(INamespaceSymbol symbol) => true; + } +} From c57008316386a7715725d2f8df7ced9454d96e97 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 15 Sep 2023 09:28:39 +0200 Subject: [PATCH 690/788] Ruby: Improve performance of flow through (hash) splats --- ruby/ql/lib/codeql/ruby/ApiGraphs.qll | 25 - .../dataflow/internal/DataFlowDispatch.qll | 58 +- .../dataflow/internal/DataFlowPrivate.qll | 556 ++- .../ruby/dataflow/internal/DataFlowPublic.qll | 78 +- .../internal/FlowSummaryImplSpecific.qll | 6 + .../lib/codeql/ruby/frameworks/core/Array.qll | 10 +- .../lib/codeql/ruby/frameworks/core/Hash.qll | 2 +- .../ruby/typetracking/TypeTrackerSpecific.qll | 14 +- .../barrier-guards/barrier-guards.expected | 2 +- .../flow-summaries/semantics.expected | 3116 ++++++------ .../dataflow/flow-summaries/semantics.ql | 8 +- .../dataflow/flow-summaries/semantics.rb | 25 +- .../dataflow/hash-flow/hash-flow.expected | 28 +- .../type-tracking-hash-flow.expected | 2 +- .../dataflow/local/DataflowStep.expected | 3 + .../dataflow/local/Nodes.expected | 1032 ++-- .../dataflow/local/TaintStep.expected | 27 +- .../dataflow/params/TypeTracker.expected | 4300 ++++++++--------- .../dataflow/params/params-flow.expected | 87 +- .../dataflow/params/params_flow.rb | 6 +- .../dataflow/summaries/Summaries.expected | 6 +- .../type-tracker/TypeTracker.expected | 365 +- .../action_controller/params-flow.expected | 18 +- 23 files changed, 5003 insertions(+), 4771 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/ApiGraphs.qll b/ruby/ql/lib/codeql/ruby/ApiGraphs.qll index 0a650ea4ca2..6d00a1eaebb 100644 --- a/ruby/ql/lib/codeql/ruby/ApiGraphs.qll +++ b/ruby/ql/lib/codeql/ruby/ApiGraphs.qll @@ -886,8 +886,6 @@ module API { ) or implicitCallEdge(pred, succ) - or - exists(DataFlow::HashLiteralNode splat | hashSplatEdge(splat, pred, succ)) } /** @@ -986,29 +984,6 @@ module API { ) } - pragma[nomagic] - private DataFlow::Node getHashSplatArgument(DataFlow::HashLiteralNode literal) { - result = DataFlowPrivate::TSynthHashSplatArgumentNode(literal.asExpr()) - } - - /** - * Holds if the epsilon edge `pred -> succ` should be generated to account for the members of a hash literal. - * - * This currently exists because hash literals are desugared to `Hash.[]` calls, whose summary relies on `WithContent`. - * However, `contentEdge` does not currently generate edges for `WithContent` steps. - */ - bindingset[literal] - pragma[inline_late] - private predicate hashSplatEdge(DataFlow::HashLiteralNode literal, ApiNode pred, ApiNode succ) { - exists(TypeTracker t | - pred = Impl::MkForwardNode(getALocalSourceStrict(getHashSplatArgument(literal)), t) and - succ = Impl::MkForwardNode(pragma[only_bind_out](literal), pragma[only_bind_out](t)) - or - succ = Impl::MkBackwardNode(getALocalSourceStrict(getHashSplatArgument(literal)), t) and - pred = Impl::MkBackwardNode(pragma[only_bind_out](literal), pragma[only_bind_out](t)) - ) - } - pragma[nomagic] private DataFlow::LocalSourceNode getAModuleReference(DataFlow::ModuleNode mod) { result = mod.getAnImmediateReference() diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll index 40cd49f371b..0668b6a357f 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll @@ -437,6 +437,7 @@ private module Cached { FlowSummaryImplSpecific::ParsePositions::isParsedKeywordParameterPosition(_, name) } or THashSplatArgumentPosition() or + TSynthHashSplatArgumentPosition() or TSplatArgumentPosition(int pos) { exists(Call c | c.getArgument(pos) instanceof SplatExpr) } or TSynthSplatArgumentPosition() or TAnyArgumentPosition() or @@ -461,14 +462,10 @@ private module Cached { FlowSummaryImplSpecific::ParsePositions::isParsedKeywordArgumentPosition(_, name) } or THashSplatParameterPosition() or - // To get flow from a hash-splat argument to a keyword parameter, we add a read-step - // from a synthetic hash-splat parameter. We need this separate synthetic ParameterNode, - // since we clear content of the normal hash-splat parameter for the names that - // correspond to normal keyword parameters. Since we cannot re-use the same parameter - // position for multiple parameter nodes in the same callable, we introduce this - // synthetic parameter position. TSynthHashSplatParameterPosition() or TSplatParameterPosition(int pos) { + pos = 0 + or exists(Parameter p | p.getPosition() = pos and p instanceof SplatParameter) } or TSynthSplatParameterPosition() or @@ -1297,12 +1294,15 @@ class ParameterPosition extends TParameterPosition { /** Holds if this position represents a hash-splat parameter. */ predicate isHashSplat() { this = THashSplatParameterPosition() } + /** Holds if this position represents a synthetic hash-splat parameter. */ predicate isSynthHashSplat() { this = TSynthHashSplatParameterPosition() } - predicate isSynthSplat() { this = TSynthSplatParameterPosition() } - + /** Holds if this position represents a splat parameter at position `n`. */ predicate isSplat(int n) { this = TSplatParameterPosition(n) } + /** Holds if this position represents a synthetic splat parameter. */ + predicate isSynthSplat() { this = TSynthSplatParameterPosition() } + /** * Holds if this position represents any parameter, except `self` parameters. This * includes both positional, named, and block parameters. @@ -1334,9 +1334,9 @@ class ParameterPosition extends TParameterPosition { or this.isAnyNamed() and result = "any-named" or - this.isSynthSplat() and result = "synthetic *" - or exists(int pos | this.isSplat(pos) and result = "* (position " + pos + ")") + or + this.isSynthSplat() and result = "synthetic *" } } @@ -1366,14 +1366,16 @@ class ArgumentPosition extends TArgumentPosition { /** Holds if this position represents any positional parameter. */ predicate isAnyNamed() { this = TAnyKeywordArgumentPosition() } - /** - * Holds if this position represents a synthesized argument containing all keyword - * arguments wrapped in a hash. - */ + /** Holds if this position represents a hash-splat argument. */ predicate isHashSplat() { this = THashSplatArgumentPosition() } + /** Holds if this position represents a synthetic hash-splat argument. */ + predicate isSynthHashSplat() { this = TSynthHashSplatArgumentPosition() } + + /** Holds if this position represents a splat argument at position `n`. */ predicate isSplat(int n) { this = TSplatArgumentPosition(n) } + /** Holds if this position represents a synthetic splat argument. */ predicate isSynthSplat() { this = TSynthSplatArgumentPosition() } /** Gets a textual representation of this position. */ @@ -1394,9 +1396,11 @@ class ArgumentPosition extends TArgumentPosition { or this.isHashSplat() and result = "**" or - this.isSynthSplat() and result = "synthetic *" + this.isSynthHashSplat() and result = "synthetic **" or exists(int pos | this.isSplat(pos) and result = "* (position " + pos + ")") + or + this.isSynthSplat() and result = "synthetic *" } } @@ -1429,17 +1433,21 @@ predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { or exists(string name | ppos.isKeyword(name) and apos.isKeyword(name)) or - ppos.isHashSplat() and apos.isHashSplat() + (ppos.isHashSplat() or ppos.isSynthHashSplat()) and + (apos.isHashSplat() or apos.isSynthHashSplat()) or - ppos.isSynthHashSplat() and apos.isHashSplat() - or - ppos.isSplat(0) and apos.isSynthSplat() - or - ppos.isSynthSplat() and - (apos.isSynthSplat() or apos.isSplat(0)) - or - // Exact splat match - exists(int n | apos.isSplat(n) and ppos.isSplat(n)) + exists(int pos | + ( + ppos.isSplat(pos) + or + ppos.isSynthSplat() and pos = 0 + ) and + ( + apos.isSplat(pos) + or + apos.isSynthSplat() and pos = 0 + ) + ) or ppos.isAny() and argumentPositionIsNotSelf(apos) or diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 9ecc61fa5d2..d9a0ad2c6c9 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -427,6 +427,14 @@ module VariableCapture { } } +private predicate splatParameterAt(Callable c, int pos) { + c.getParameter(pos) instanceof SplatParameter +} + +private predicate splatArgumentAt(CfgNodes::ExprNodes::CallCfgNode c, int pos) { + exists(Argument arg, ArgumentPosition apos | arg.isArgumentOf(c, apos) and apos.isSplat(pos)) +} + /** A collection of cached types and predicates to be evaluated in the same stage. */ cached private module Cached { @@ -452,12 +460,11 @@ private module Cached { isParameterNode(_, c, any(ParameterPosition p | p.isKeyword(_))) } or TSynthSplatParameterNode(DataFlowCallable c) { - exists(c.asCallable()) and // exclude library callables + exists(c.asCallable()) and // exclude library callables (for now) isParameterNode(_, c, any(ParameterPosition p | p.isPositional(_))) } or - TSynthSplatParameterElementNode(DataFlowCallable c, int n) { - exists(c.asCallable()) and // exclude library callables - isParameterNode(_, c, any(ParameterPosition p | p.isSplat(any(int i | i > 0)))) and + TSynthSplatParameterShiftNode(DataFlowCallable c, int splatPos, int n) { + splatPos = unique(int i | splatParameterAt(c.asCallable(), i) and i > 0) and n in [0 .. 10] } or TExprPostUpdateNode(CfgNodes::ExprCfgNode n) { @@ -476,12 +483,10 @@ private module Cached { c.getAnArgument() instanceof CfgNodes::ExprNodes::PairCfgNode } or TSynthSplatArgumentNode(CfgNodes::ExprNodes::CallCfgNode c) or - TSynthSplatArgumentElementNode(CfgNodes::ExprNodes::CallCfgNode c, int n) { + TSynthSplatArgumentShiftNode(CfgNodes::ExprNodes::CallCfgNode c, int splatPos, int n) { // we use -1 to represent data at an unknown index n in [-1 .. 10] and - exists(Argument arg, ArgumentPosition pos | - pos.isSplat(any(int p | p > 0)) and arg.isArgumentOf(c, pos) - ) + splatPos = unique(int i | splatArgumentAt(c, i) and i > 0) } or TCaptureNode(VariableCapture::Flow::SynthesizedCaptureNode cn) @@ -646,6 +651,8 @@ private module Cached { name = [input, output].regexpFind("(?<=(^|\\.)Field\\[)[^\\]]+(?=\\])", _, _).trim() ) } or + TSplatContent(int i, Boolean shifted) { i in [0 .. 10] } or + THashSplatContent(ConstantValue cv) { not cv.isInt(_) } or TCapturedVariableContent(VariableCapture::CapturedVariable v) or // Only used by type-tracking TAttributeName(string name) { name = any(SetterMethodCall c).getTargetName() } @@ -669,11 +676,14 @@ private module Cached { TUnknownElementContentApprox() or TKnownIntegerElementContentApprox() or TKnownElementContentApprox(string approx) { approx = approxKnownElementIndex(_) } or + TSplatContentApprox(Boolean shifted) or + THashSplatContentApprox(string approx) { approx = approxKnownElementIndex(_) } or TNonElementContentApprox(Content c) { not c instanceof Content::ElementContent } or TCapturedVariableContentApprox(VariableCapture::CapturedVariable v) } -class TElementContent = TKnownElementContent or TUnknownElementContent; +class TElementContent = + TKnownElementContent or TUnknownElementContent or TSplatContent or THashSplatContent; import Cached @@ -695,7 +705,9 @@ predicate nodeIsHidden(Node n) { or n instanceof SynthSplatArgumentNode or - n instanceof SynthSplatParameterElementNode + n instanceof SynthSplatParameterShiftNode + or + n instanceof SynthSplatArgumentShiftNode or n instanceof LambdaSelfReferenceNode or @@ -952,15 +964,15 @@ private module ParameterNodes { } /** + * A synthetic data-flow node to allow for flow into keyword parameters from + * hash-splat arguments. + * * For all methods containing keyword parameters, we construct a synthesized * (hidden) parameter node to contain all keyword arguments. This allows us * to handle cases like * * ```rb - * def foo(p1:, p2:) - * sink(p1) - * sink(p2) - * end + * def foo(p1:, p2:); end * * args = {:p1 => taint(1), :p2 => taint(2) } * foo(**args) @@ -969,36 +981,34 @@ private module ParameterNodes { * by adding read steps out of the synthesized parameter node to the relevant * keyword parameters. * - * Note that this will introduce a bit of redundancy in cases like + * In order to avoid redundancy (and improve performance) in cases like * * ```rb * foo(p1: taint(1), p2: taint(2)) * ``` * - * where direct keyword matching is possible, since we construct a synthesized hash - * splat argument (`SynthHashSplatArgumentNode`) at the call site, which means that - * `taint(1)` will flow into `p1` both via normal keyword matching and via the synthesized - * nodes (and similarly for `p2`). However, this redundancy is OK since - * (a) it means that type-tracking through keyword arguments also works in most cases, - * (b) read/store steps can be avoided when direct keyword matching is possible, and - * hence access path limits are not a concern, and - * (c) since the synthesized nodes are hidden, the reported data-flow paths will be - * collapsed anyway. + * where direct keyword matching is possible, we use a special `HashSplatContent` + * (instead of reusing `KnownElementContent`) when we construct a synthesized hash + * splat argument (`SynthHashSplatArgumentNode`) at the call site, and then only + * add read steps out of this node for actual hash-splat arguments (which will use + * a normal `KnownElementContent`). */ class SynthHashSplatParameterNode extends ParameterNodeImpl, TSynthHashSplatParameterNode { private DataFlowCallable callable; SynthHashSplatParameterNode() { this = TSynthHashSplatParameterNode(callable) } - /** - * Gets a keyword parameter that will be the result of reading `c` out of this - * synthesized node. - */ - ParameterNode getAKeywordParameter(ContentSet c) { + /** Holds if a read-step should be added into parameter `p`. */ + predicate readInto(ParameterNode p, ContentSet c) { exists(string name | - isParameterNode(result, callable, any(ParameterPosition p | p.isKeyword(name))) + isParameterNode(p, callable, any(ParameterPosition pos | pos.isKeyword(name))) | - c = getKeywordContent(name) or + // Important: do not include `HashSplatContent` here, as normal parameter matching is possible + exists(ConstantValue::ConstantSymbolValue key | + c.isSingleton(TKnownElementContent(key)) and + key.isSymbol(name) + ) + or c.isSingleton(TUnknownElementContent()) ) } @@ -1015,13 +1025,16 @@ private module ParameterNodes { final override Location getLocationImpl() { result = callable.getLocation() } - final override string toStringImpl() { result = "**kwargs" } + final override string toStringImpl() { result = "synthetic hash-splat parameter" } } /** - * A synthetic data-flow node to allow flow to positional parameters from a splat argument. + * A synthetic data-flow node to allow for flow into positional parameters from + * splat arguments. * - * For example, in the following code: + * For all methods containing positional parameters, we construct a synthesized + * (hidden) parameter node to contain all positional arguments. This allows us + * to handle cases like * * ```rb * def foo(x, y, z); end @@ -1029,45 +1042,47 @@ private module ParameterNodes { * foo(a, *[b, c]) * ``` * - * We want `b` to flow to `y` and `c` to flow to `z`. We do this by constructing - * a `SynthSplatParameterNode` for the method `foo`, and matching the splat argument to this - * parameter node via `parameterMatch/2`. We then add read steps from this node to parameters - * `y` and `z`, for content at indices 0 and 1 respectively (see `readStep`). + * by adding read steps out of the synthesized parameter node to the relevant + * positional parameters. * - * This node stores the index of the splat argument it is matched to, which allows us to shift - * indices correctly when adding read steps. Without this, in the example above we would erroneously - * get a read step to `x` at index 0 and `y` at index 1 etc. + * In order to avoid redundancy (and improve performance) in cases like + * + * ```rb + * foo(a, b, c) + * ``` + * + * where direct positional matching is possible, we use a special `SplatContent` + * (instead of reusing `KnownElementContent`) when we construct a synthesized + * splat argument (`SynthSplatArgumentNode`) at the call site, and then only + * add read steps out of this node for actual splat arguments (which will use + * `KnownElementContent` or `TSplatContent(_, true)`). + * + * We don't yet correctly handle cases where a positional argument follows the + * splat argument, e.g. in * - * We don't yet correctly handle cases where a positional argument follows the splat argument, e.g. in * ```rb * foo(a, *[b], c) * ``` + * + * but this appears to be rare in practice. */ class SynthSplatParameterNode extends ParameterNodeImpl, TSynthSplatParameterNode { private DataFlowCallable callable; SynthSplatParameterNode() { this = TSynthSplatParameterNode(callable) } - /** - * Gets a parameter which will contain the value given by `c`. - * For example, if the synth splat parameter is for the following method and method call: - * - * ```rb - * def foo(x, y, a:, *rest); end - * - * foo(arg1, *args) - * ``` - * - * then `getAParameter(element 0) = y`. - */ - ParameterNode getAParameter(ContentSet c) { + /** Holds if a read-step should be added into parameter `p`. */ + predicate readInto(ParameterNode p, ContentSet c) { exists(int n | - isParameterNode(result, callable, (any(ParameterPosition p | p.isPositional(n)))) and - ( - c = getPositionalContent(n) - or - c.isSingleton(TUnknownElementContent()) - ) + isParameterNode(p, callable, any(ParameterPosition pos | pos.isPositional(n))) and + not exists(int i | splatParameterAt(callable.asCallable(), i) and i < n) + | + // Important: do not include `TSplatContent(_, false)` here, as normal parameter matching is possible + c = getSplatContent(n, true) + or + c = getArrayContent(n) + or + c.isSingleton(TUnknownElementContent()) ) } @@ -1083,28 +1098,50 @@ private module ParameterNodes { final override Location getLocationImpl() { result = callable.getLocation() } - final override string toStringImpl() { result = "synthetic *args" } + final override string toStringImpl() { result = "synthetic splat parameter" } } /** - * A node that holds the content of a specific positional argument. - * See `SynthSplatArgumentNode` for more information. + * A data-flow node that holds data from values inside the synthetic splat parameter, + * which need to have their indices shifted before being passed onto real splat + * parameters. + * + * For example, in + * + * ```rb + * def foo(a, b, *rest); end + * ``` + * + * the elements of the synthetic splat parameter (`SynthSplatParameterNode`) need to + * have their indices shifted by `2` before being passed into `rest`. */ - class SynthSplatParameterElementNode extends NodeImpl, TSynthSplatParameterElementNode { + class SynthSplatParameterShiftNode extends NodeImpl, TSynthSplatParameterShiftNode { private DataFlowCallable callable; + private int splatPos; private int pos; - SynthSplatParameterElementNode() { this = TSynthSplatParameterElementNode(callable, pos) } + SynthSplatParameterShiftNode() { this = TSynthSplatParameterShiftNode(callable, splatPos, pos) } - pragma[nomagic] - NormalParameterNode getSplatParameterNode(int splatPos) { - result - .isParameterOf(this.getEnclosingCallable(), any(ParameterPosition p | p.isSplat(splatPos))) + /** + * Holds if a read-step should be added from synthetic splat parameter `synthSplat` + * into this node. + */ + predicate readFrom(SynthSplatParameterNode synthSplat, ContentSet cs) { + synthSplat.isParameterOf(callable, _) and + ( + cs = getSplatContent(pos + splatPos, _) + or + cs = getArrayContent(pos + splatPos) + ) } - int getStorePosition() { result = pos } - - int getReadPosition() { result = pos } + /** + * Holds if a store-step should be added from this node into splat parameter `splat`. + */ + predicate storeInto(NormalParameterNode splat, ContentSet cs) { + splat.isParameterOf(callable, any(ParameterPosition p | p.isSplat(splatPos))) and + cs = getArrayContent(pos) + } final override CfgScope getCfgScope() { result = callable.asCallable() } @@ -1112,7 +1149,9 @@ private module ParameterNodes { final override Location getLocationImpl() { result = callable.getLocation() } - final override string toStringImpl() { result = "synthetic *args[" + pos + "]" } + final override string toStringImpl() { + result = "synthetic splat parameter shift [" + pos + "]" + } } /** A parameter for a library callable with a flow summary. */ @@ -1211,104 +1250,189 @@ module ArgumentNodes { } } + abstract class SynthHashSplatOrSplatArgumentNode extends ArgumentNode, NodeImpl { + CfgNodes::ExprNodes::CallCfgNode call_; + + final string getMethodName() { + result = call_.(CfgNodes::ExprNodes::MethodCallCfgNode).getMethodName() + or + not call_ instanceof CfgNodes::ExprNodes::MethodCallCfgNode and + result = call_.getExpr().getEnclosingMethod().getName() + "_yield" + } + + final override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { + this.sourceArgumentOf(call.asCall(), pos) + } + + final override CfgScope getCfgScope() { result = call_.getExpr().getCfgScope() } + + final override Location getLocationImpl() { result = call_.getLocation() } + } + /** * A data-flow node that represents all keyword arguments wrapped in a hash. * * The callee is responsible for filtering out the keyword arguments that are * part of the method signature, such that those cannot end up in the hash-splat - * parameter. + * parameter. See also `SynthHashSplatParameterNode`. */ - class SynthHashSplatArgumentNode extends ArgumentNode, NodeImpl, TSynthHashSplatArgumentNode { - CfgNodes::ExprNodes::CallCfgNode c; + class SynthHashSplatArgumentNode extends SynthHashSplatOrSplatArgumentNode, + TSynthHashSplatArgumentNode + { + SynthHashSplatArgumentNode() { this = TSynthHashSplatArgumentNode(call_) } - SynthHashSplatArgumentNode() { this = TSynthHashSplatArgumentNode(c) } + /** + * Holds if a store-step should be added from argument `arg` into this synthetic + * hash-splat argument. + */ + predicate storeFrom(Node arg, ContentSet c) { + exists(ConstantValue cv | + if call_ instanceof CfgNodes::ExprNodes::HashLiteralCfgNode + then + /* + * Needed for cases like + * + * ```rb + * hash = { a: taint, b: safe } + * + * def foo(a:, b:) + * sink(a) + * end + * + * foo(**hash) + * ``` + */ - override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { - this.sourceArgumentOf(call.asCall(), pos) + c.isSingleton(TKnownElementContent(cv)) + else c.isSingleton(THashSplatContent(cv)) + | + // symbol key + exists(ArgumentPosition keywordPos, string name | + arg.asExpr().(Argument).isArgumentOf(call_, keywordPos) and + keywordPos.isKeyword(name) and + cv.isSymbol(name) + ) + or + // non-symbol key + exists(CfgNodes::ExprNodes::PairCfgNode pair, CfgNodes::ExprCfgNode key | + arg.asExpr() = pair.getValue() and + pair = call_.getAnArgument() and + key = pair.getKey() and + cv = key.getConstantValue() and + not cv.isSymbol(_) + ) + ) } override predicate sourceArgumentOf(CfgNodes::ExprNodes::CallCfgNode call, ArgumentPosition pos) { - call = c and - pos.isHashSplat() + call = call_ and + pos.isSynthHashSplat() } - override CfgScope getCfgScope() { result = c.getExpr().getCfgScope() } - - override Location getLocationImpl() { result = c.getLocation() } - - override string toStringImpl() { result = "**" } + override string toStringImpl() { result = "synthetic hash-splat argument" } } /** - * A data-flow node that represents all arguments passed to the call. - * We use this to model data flow via splat parameters. - * Consider this example: + * A data-flow node that represents all positional arguments wrapped in an array. * - * ```rb - * def foo(x, y, *z) - * end - * - * foo(1, 2, 3, 4) - * ``` - * - * 1. We want `3` to flow to `z[0]` and `4` to flow to `z[1]`. We model this by first storing all arguments - * in a synthetic argument node `SynthSplatArgumentNode` (see `storeStepCommon`). - * 2. We match this to an analogous parameter node `SynthSplatParameterNode` on the callee side - * (see `parameterMatch`). - * 3. For each content element stored in the `SynthSplatParameterNode`, we add a read step to a separate - * `SynthSplatParameterElementNode`, which is parameterized by the element index (see `readStep`). - * 4. Finally, we add store steps from these `SynthSplatParameterElementNode`s to the real splat parameter node - * (see `storeStep`). - * We only add store steps for elements that will not flow to the earlier positional parameters. - * In practice that means we ignore elements at index `<= N`, where `N` is the index of the splat parameter. - * For the remaining elements we subtract `N` from their index and store them in the splat parameter. + * The callee is responsible for filtering out the positional arguments that are + * part of the method signature, such that those cannot end up in the splat + * parameter. See also `SynthSplatParameterNode`. */ - class SynthSplatArgumentNode extends ArgumentNode, NodeImpl, TSynthSplatArgumentNode { - CfgNodes::ExprNodes::CallCfgNode c; + class SynthSplatArgumentNode extends SynthHashSplatOrSplatArgumentNode, TSynthSplatArgumentNode { + SynthSplatArgumentNode() { this = TSynthSplatArgumentNode(call_) } - SynthSplatArgumentNode() { this = TSynthSplatArgumentNode(c) } + /** + * Holds if a store-step should be added from argument `arg` into this synthetic + * splat argument. + */ + predicate storeFrom(Node arg, ContentSet c) { + exists(ArgumentPosition pos, int n | + arg.asExpr().(Argument).isArgumentOf(call_, pos) and + pos.isPositional(n) and + not exists(int i | splatArgumentAt(call_, i) and i < n) and + if call_ instanceof CfgNodes::ExprNodes::ArrayLiteralCfgNode + then + /* + * Needed for cases like + * + * ```rb + * arr = [taint, safe] + * + * def foo(a, b) + * sink(a) + * end + * + * foo(*arr) + * ``` + */ - override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { - this.sourceArgumentOf(call.asCall(), pos) + c = getArrayContent(n) + else c = getSplatContent(n, false) + ) } override predicate sourceArgumentOf(CfgNodes::ExprNodes::CallCfgNode call, ArgumentPosition pos) { - call = c and + call = call_ and pos.isSynthSplat() } - override CfgScope getCfgScope() { result = c.getExpr().getCfgScope() } - - override Location getLocationImpl() { result = c.getLocation() } - - override string toStringImpl() { result = "*" } + override string toStringImpl() { result = "synthetic splat argument" } } /** - * A data-flow node that holds data from values inside splat arguments. + * A data-flow node that holds data from values inside splat arguments, which + * need to have their indices shifted. + * * For example, in the following call * * ```rb - * foo(1, 2, *[3, 4]) + * foo(a, b, *[c, d]) * ``` * - * We add read steps such that `3` flows into `SynthSplatArgumentElementNode(2)` and `4` flows into `SynthSplatArgumentElementNode(3)`. + * `c` and `d` need to have their indices shifted by `2`. */ - class SynthSplatArgumentElementNode extends NodeImpl, TSynthSplatArgumentElementNode { + class SynthSplatArgumentShiftNode extends NodeImpl, TSynthSplatArgumentShiftNode { CfgNodes::ExprNodes::CallCfgNode c; + int splatPos; int n; - SynthSplatArgumentElementNode() { this = TSynthSplatArgumentElementNode(c, n) } + SynthSplatArgumentShiftNode() { this = TSynthSplatArgumentShiftNode(c, splatPos, n) } - CfgNodes::ExprNodes::CallCfgNode getCall() { result = c } + /** + * Holds if a read-step should be added from splat argument `splatArg` into this node. + */ + predicate readFrom(Node splatArg, ContentSet cs) { + splatArg.asExpr().(Argument).isArgumentOf(c, any(ArgumentPosition p | p.isSplat(splatPos))) and + ( + cs = getSplatContent(n - splatPos, _) + or + cs = getArrayContent(n - splatPos) + or + n = -1 and + cs.isSingleton(TUnknownElementContent()) + ) + } - int getPosition() { result = n } + /** + * Holds if a store-step should be added from this node into synthetic splat + * argument `synthSplat`. + */ + predicate storeInto(SynthSplatArgumentNode synthSplat, ContentSet cs) { + synthSplat = TSynthSplatArgumentNode(c) and + ( + cs = getSplatContent(n, true) + or + n = -1 and + cs.isSingleton(TUnknownElementContent()) + ) + } override CfgScope getCfgScope() { result = c.getExpr().getCfgScope() } override Location getLocationImpl() { result = c.getLocation() } - override string toStringImpl() { result = "*[" + n + "]" } + override string toStringImpl() { result = "synthetic splat argument shift [" + n + "]" } } } @@ -1502,78 +1626,24 @@ predicate jumpStep(Node pred, Node succ) { any(AdditionalJumpStep s).step(pred, succ) } -private ContentSet getKeywordContent(string name) { - exists(ConstantValue::ConstantSymbolValue key | - result.isSingleton(TKnownElementContent(key)) and - key.isSymbol(name) - ) -} - -ContentSet getPositionalContent(int n) { +private ContentSet getArrayContent(int n) { exists(ConstantValue::ConstantIntegerValue i | result.isSingleton(TKnownElementContent(i)) and i.isInt(n) ) } +private ContentSet getSplatContent(int n, boolean adjusted) { + result.isSingleton(TSplatContent(n, adjusted)) +} + /** * Subset of `storeStep` that should be shared with type-tracking. */ predicate storeStepCommon(Node node1, ContentSet c, Node node2) { - // Wrap all key-value arguments in a synthesized hash-splat argument node - exists(CfgNodes::ExprNodes::CallCfgNode call | node2 = TSynthHashSplatArgumentNode(call) | - // symbol key - exists(ArgumentPosition keywordPos, string name | - node1.asExpr().(Argument).isArgumentOf(call, keywordPos) and - keywordPos.isKeyword(name) and - c = getKeywordContent(name) - ) - or - // non-symbol key - exists(CfgNodes::ExprNodes::PairCfgNode pair, CfgNodes::ExprCfgNode key, ConstantValue cv | - node1.asExpr() = pair.getValue() and - pair = call.getAnArgument() and - key = pair.getKey() and - cv = key.getConstantValue() and - not cv.isSymbol(_) and - c.isSingleton(TKnownElementContent(cv)) - ) - ) + node2.(SynthHashSplatArgumentNode).storeFrom(node1, c) or - // Wrap all positional arguments in a synthesized splat argument node - exists(CfgNodes::ExprNodes::CallCfgNode call, ArgumentPosition pos | - node2 = TSynthSplatArgumentNode(call) and - node1.asExpr().(Argument).isArgumentOf(call, pos) - | - exists(int n | pos.isPositional(n) and c = getPositionalContent(n)) - ) -} - -/** - * Holds if data can flow from a `SynthSplatArgumentElementNode` into a `SynthSplatArgumentNode` via a store step. - * For example in - * - * ```rb - * foo(1, 2, *[3, 4]) - * ``` - * - * We have flow from `3` into `SynthSplatArgumentElementNode(2)`. This step stores the value from this node into element `2` of the `SynthSplatArgumentNode`. - * - * This allows us to match values inside splat arguments to the correct parameter in the callable. - */ -predicate synthSplatArgumentElementStoreStep( - SynthSplatArgumentElementNode node1, ContentSet c, SynthSplatArgumentNode node2 -) { - exists(CfgNodes::ExprNodes::CallCfgNode call, int n | - node2 = TSynthSplatArgumentNode(call) and - node1 = TSynthSplatArgumentElementNode(call, n) and - ( - c = getPositionalContent(n) - or - n = -1 and - c.isSingleton(TUnknownElementContent()) - ) - ) + node2.(SynthSplatArgumentNode).storeFrom(node1, c) } /** @@ -1607,13 +1677,9 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { FlowSummaryImpl::Private::Steps::summaryStoreStep(node1.(FlowSummaryNode).getSummaryNode(), c, node2.(FlowSummaryNode).getSummaryNode()) or - exists(SynthSplatParameterElementNode elemNode, int splatPos | - node1 = elemNode and - node2 = elemNode.getSplatParameterNode(splatPos) and - c = getPositionalContent(elemNode.getStorePosition() - splatPos) - ) + node1.(SynthSplatParameterShiftNode).storeInto(node2, c) or - synthSplatArgumentElementStoreStep(node1, c, node2) + node1.(SynthSplatArgumentShiftNode).storeInto(node2, c) or storeStepCommon(node1, c, node2) or @@ -1625,37 +1691,9 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { * Subset of `readStep` that should be shared with type-tracking. */ predicate readStepCommon(Node node1, ContentSet c, Node node2) { - node2 = node1.(SynthHashSplatParameterNode).getAKeywordParameter(c) + node1.(SynthHashSplatParameterNode).readInto(node2, c) or - node2 = node1.(SynthSplatParameterNode).getAParameter(c) -} - -/** - * Holds if data can flow from a splat argument to a `SynthSplatArgumentElementNode` via a read step. - * For example in - * ```rb - * foo(x, y, *[1, 2]) - * ``` - * - * we read `1` into `SynthSplatArgumentElementNode(2)` and `2` into `SynthSplatArgumentElementNode(3)`. - */ -predicate synthSplatArgumentElementReadStep( - Node node1, ContentSet c, SynthSplatArgumentElementNode node2 -) { - exists(int splatPos, CfgNodes::ExprNodes::CallCfgNode call | - node1.asExpr().(Argument).isArgumentOf(call, any(ArgumentPosition p | p.isSplat(splatPos))) and - splatPos > 0 and - node2.getCall() = call and - ( - exists(int n | - node2.getPosition() = n + splatPos and - c = getPositionalContent(n) - ) - or - node2.getPosition() = -1 and - c.isSingleton(TUnknownElementContent()) - ) - ) + node1.(SynthSplatParameterNode).readInto(node2, c) } /** @@ -1690,14 +1728,9 @@ predicate readStep(Node node1, ContentSet c, Node node2) { or VariableCapture::readStep(node1, any(Content::CapturedVariableContent v | c.isSingleton(v)), node2) or - // Read from SynthSplatParameterNode into SynthSplatParameterElementNode - node2 = - any(SynthSplatParameterElementNode e | - node1.(SynthSplatParameterNode).isParameterOf(e.getEnclosingCallable(), _) and - c = getPositionalContent(e.getReadPosition()) - ) + node2.(SynthSplatParameterShiftNode).readFrom(node1, c) or - synthSplatArgumentElementReadStep(node1, c, node2) + node2.(SynthSplatArgumentShiftNode).readFrom(node1, c) or readStepCommon(node1, c, node2) } @@ -1714,13 +1747,14 @@ predicate clearsContent(Node n, ContentSet c) { // the hash-splat parameter exists( DataFlowCallable callable, HashSplatParameter hashSplatParam, ParameterNodeImpl keywordParam, - ParameterPosition keywordPos, string name + ParameterPosition keywordPos, ConstantValue::ConstantSymbolValue cv, string name | n = TNormalParameterNode(hashSplatParam) and callable.asCallable() = hashSplatParam.getCallable() and keywordParam.isParameterOf(callable, keywordPos) and keywordPos.isKeyword(name) and - c = getKeywordContent(name) + c.isKnownOrUnknownElement(TKnownElementContent(cv)) and + cv.isSymbol(name) ) } @@ -1734,6 +1768,16 @@ predicate expectsContent(Node n, ContentSet c) { private newtype TDataFlowType = TLambdaDataFlowType(Callable c) { c = any(LambdaSelfReferenceNode n).getCallable() } or + // In order to reduce the set of cons-candidates, we annotate all implicit (hash) splat + // creations with the name of the method that they are passed into. This includes + // array/hash literals as well (where the name is simply `[]`), because of how they + // are modeled (see `Array.qll` and `Hash.qll`). + TSynthHashSplatArgumentType(string methodName) { + methodName = any(SynthHashSplatArgumentNode n).getMethodName() + } or + TSynthSplatArgumentType(string methodName) { + methodName = any(SynthSplatArgumentNode n).getMethodName() + } or TUnknownDataFlowType() class DataFlowType extends TDataFlowType { @@ -1741,12 +1785,14 @@ class DataFlowType extends TDataFlowType { } predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { - t1 = TLambdaDataFlowType(_) and + t1 != TUnknownDataFlowType() and t2 = TUnknownDataFlowType() } -private predicate mustHaveLambdaType(CfgNodes::ExprCfgNode e, Callable c) { - exists(VariableCapture::ClosureExpr ce | ce.hasBody(c) | +private predicate mustHaveLambdaType(ExprNode n, Callable c) { + exists(VariableCapture::ClosureExpr ce, CfgNodes::ExprCfgNode e | + e = n.asExpr() and ce.hasBody(c) + | e = ce or ce.hasAliasedAccess(e) ) @@ -1759,12 +1805,17 @@ DataFlowType getNodeType(Node n) { result = TLambdaDataFlowType(n.(LambdaSelfReferenceNode).getCallable()) or exists(Callable c | - mustHaveLambdaType(n.asExpr(), c) and + mustHaveLambdaType(n, c) and result = TLambdaDataFlowType(c) ) or + result = TSynthHashSplatArgumentType(n.(SynthHashSplatArgumentNode).getMethodName()) + or + result = TSynthSplatArgumentType(n.(SynthSplatArgumentNode).getMethodName()) + or not n instanceof LambdaSelfReferenceNode and - not mustHaveLambdaType(n.asExpr(), _) and + not mustHaveLambdaType(n, _) and + not n instanceof SynthHashSplatOrSplatArgumentNode and result = TUnknownDataFlowType() } @@ -1773,7 +1824,7 @@ string ppReprType(DataFlowType t) { none() } pragma[inline] private predicate compatibleTypesNonSymRefl(DataFlowType t1, DataFlowType t2) { - t1 = TLambdaDataFlowType(_) and + t1 != TUnknownDataFlowType() and t2 = TUnknownDataFlowType() } @@ -1975,6 +2026,17 @@ class ContentApprox extends TContentApprox { result = "approximated element " + approx ) or + exists(boolean shifted, string s | + this = TSplatContentApprox(shifted) and + (if shifted = true then s = " (shifted)" else s = "") and + result = "approximated splat position" + s + ) + or + exists(string s | + this = THashSplatContentApprox(s) and + result = "approximated hash-splat position " + s + ) + or exists(Content c | this = TNonElementContentApprox(c) and result = c.toString() @@ -1988,9 +2050,9 @@ class ContentApprox extends TContentApprox { * We take two characters from the serialized index as the projection, * since for symbols this will include the first character. */ -private string approxKnownElementIndex(Content::KnownElementContent c) { - not c.getIndex().isInt(_) and - exists(string s | s = c.getIndex().serialize() | +private string approxKnownElementIndex(ConstantValue cv) { + not cv.isInt(_) and + exists(string s | s = cv.serialize() | s.length() < 2 and result = s or @@ -2011,7 +2073,15 @@ ContentApprox getContentApprox(Content c) { c.(Content::KnownElementContent).getIndex().isInt(_) and result = TKnownIntegerElementContentApprox() or - result = TKnownElementContentApprox(approxKnownElementIndex(c)) + result = + TKnownElementContentApprox(approxKnownElementIndex(c.(Content::KnownElementContent).getIndex())) + or + exists(boolean shifted | + c = TSplatContent(_, shifted) and + result = TSplatContentApprox(shifted) + ) + or + result = THashSplatContentApprox(approxKnownElementIndex(c.(Content::HashSplatContent).getKey())) or result = TNonElementContentApprox(c) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll index 96f419581cd..5ee4b74e65e 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll @@ -549,6 +549,73 @@ module Content { result = getElementContent(e.getConstantValue()).(KnownElementContent).getIndex() } + /** + * INTERNAL: Do not use. + * + * An element inside a synthetic splat argument. All positional arguments + * (including splat arguments) are implicitly stored inside a synthetic + * splat argument. For example, in + * + * ```rb + * foo(1, 2, 3) + * ``` + * + * we have an implicit splat argument containing `[1, 2, 3]`. + */ + class SplatContent extends ElementContent, TSplatContent { + private int i; + private boolean shifted; + + SplatContent() { this = TSplatContent(i, shifted) } + + /** Gets the position of this splat element. */ + int getPosition() { result = i } + + /** + * Holds if this element represents a value from an actual splat argument + * that had its index shifted. For example, in + * + * ```rb + * foo(x, *args) + * ``` + * + * the elements of `args` will have their index shifted by 1 before being + * put into the synthetic splat argument. + */ + predicate isShifted() { shifted = true } + + override string toString() { + exists(string s | + (if this.isShifted() then s = " (shifted)" else s = "") and + result = "splat position " + i + s + ) + } + } + + /** + * INTERNAL: Do not use. + * + * An element inside a synthetic hash-splat argument. All keyword arguments + * are implicitly stored inside a synthetic hash-splat argument. For example, + * in + * + * ```rb + * foo(a: 1, b: 2, c: 3) + * ``` + * + * we have an implicit hash-splat argument containing `{:a => 1, :b => 2, :c => 3}`. + */ + class HashSplatContent extends ElementContent, THashSplatContent { + private ConstantValue cv; + + HashSplatContent() { this = THashSplatContent(cv) } + + /** Gets the hash key. */ + ConstantValue getKey() { result = cv } + + override string toString() { result = "hash-splat position " + cv } + } + /** * A value stored behind a getter/setter pair. * @@ -705,6 +772,8 @@ class ContentSet extends TContentSet { or exists(Content::KnownElementContent c | this.isKnownOrUnknownElement(c) | result = c or + result = TSplatContent(c.getIndex().getInt(), _) or + result = THashSplatContent(c.getIndex()) or result = TUnknownElementContent() ) or @@ -712,7 +781,9 @@ class ContentSet extends TContentSet { this = TElementLowerBoundContent(lower, includeUnknown) | exists(int i | - result.(Content::KnownElementContent).getIndex().isInt(i) and + result.(Content::KnownElementContent).getIndex().isInt(i) or + result = TSplatContent(i, _) + | i >= lower ) or @@ -725,6 +796,11 @@ class ContentSet extends TContentSet { | type = result.(Content::KnownElementContent).getIndex().getValueType() or + type = "int" and + result instanceof Content::SplatContent + or + type = result.(Content::HashSplatContent).getKey().getValueType() + or includeUnknown = true and result = TUnknownElementContent() ) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll index c0098ec2f21..9db4f01dfb6 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll @@ -128,6 +128,9 @@ SummaryComponent interpretComponentSpecific(AccessPathToken c) { or arg = "hash-splat" and ppos.isHashSplat() + or + arg = "splat" and + ppos.isSplat(0) ) or result = interpretElementArg(c.getAnArgument("Element")) @@ -229,6 +232,9 @@ string getParameterPosition(ParameterPosition pos) { or pos.isHashSplat() and result = "hash-splat" + or + pos.isSplat(0) and + result = "splat" } /** Gets the textual representation of an argument position in the format used for flow summaries. */ diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll index 6d0c22da2f0..301b9ba6bf0 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll @@ -47,11 +47,11 @@ module Array { override MethodCall getACallSimple() { result = getAStaticArrayCall("[]") } override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - exists(ArrayIndex i | - input = "Argument[" + i + "]" and - output = "ReturnValue.Element[" + i + "]" and - preservesValue = true - ) + // we make use of the special `splat` argument kind, which contains all positional + // arguments wrapped in an implicit array, as well as explicit splat arguments + input = "Argument[splat]" and + output = "ReturnValue" and + preservesValue = true } } diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll index 617702873e0..8811d21c918 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll @@ -34,7 +34,7 @@ module Hash { override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { // we make use of the special `hash-splat` argument kind, which contains all keyword // arguments wrapped in an implicit hash, as well as explicit hash splat arguments - input = "Argument[hash-splat].WithElement[any]" and + input = "Argument[hash-splat]" and output = "ReturnValue" and preservesValue = true } diff --git a/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll index 6e438c5efa1..73a4de4c360 100644 --- a/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll @@ -333,16 +333,14 @@ predicate basicLoadStoreStep( predicate readStoreStepIntoSourceNode( Node nodeFrom, Node nodeTo, DataFlow::ContentSet loadContent, DataFlow::ContentSet storeContent ) { - exists(DataFlowPrivate::SynthSplatParameterElementNode mid | - nodeFrom.(DataFlowPrivate::SynthSplatParameterNode).isParameterOf(mid.getEnclosingCallable(), _) and - loadContent = DataFlowPrivate::getPositionalContent(mid.getReadPosition()) and - nodeTo = mid.getSplatParameterNode(_) and - storeContent = DataFlowPrivate::getPositionalContent(mid.getStorePosition()) + exists(DataFlowPrivate::SynthSplatParameterShiftNode shift | + shift.readFrom(nodeFrom, loadContent) and + shift.storeInto(nodeTo, storeContent) ) or - exists(DataFlowPrivate::SynthSplatArgumentElementNode mid | - DataFlowPrivate::synthSplatArgumentElementReadStep(nodeFrom, loadContent, mid) and - DataFlowPrivate::synthSplatArgumentElementStoreStep(mid, storeContent, nodeTo) + exists(DataFlowPrivate::SynthSplatArgumentShiftNode shift | + shift.readFrom(nodeFrom, loadContent) and + shift.storeInto(nodeTo, storeContent) ) } diff --git a/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.expected b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.expected index 3cbbb4a5f4a..90e628c6c33 100644 --- a/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.expected +++ b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.expected @@ -1,6 +1,6 @@ WARNING: Type BarrierGuard has been deprecated and may be removed in future (barrier-guards.ql:10,3-15) -failures testFailures +failures oldStyleBarrierGuards | barrier-guards.rb:3:4:3:15 | ... == ... | barrier-guards.rb:4:5:4:7 | foo | barrier-guards.rb:3:4:3:6 | foo | true | | barrier-guards.rb:3:4:3:15 | ... == ... | barrier-guards.rb:4:5:4:7 | foo | barrier-guards.rb:3:11:3:15 | "foo" | true | diff --git a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected index ee92948044d..13366c8733c 100644 --- a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected +++ b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected @@ -74,14 +74,14 @@ edges | semantics.rb:60:5:60:5 | a | semantics.rb:66:14:66:15 | &... | | semantics.rb:60:9:60:18 | call to source | semantics.rb:60:5:60:5 | a | | semantics.rb:60:9:60:18 | call to source | semantics.rb:60:5:60:5 | a | -| semantics.rb:61:10:61:15 | call to s10 [element 0] | semantics.rb:61:10:61:15 | call to s10 | +| semantics.rb:61:10:61:15 | call to s10 [splat position 0] | semantics.rb:61:10:61:15 | call to s10 | | semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 | | semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 | -| semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 [element 0] | -| semantics.rb:62:10:62:18 | call to s10 [element 1] | semantics.rb:62:10:62:18 | call to s10 | +| semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 [splat position 0] | +| semantics.rb:62:10:62:18 | call to s10 [splat position 1] | semantics.rb:62:10:62:18 | call to s10 | | semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 | | semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 | -| semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 [element 1] | +| semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 [splat position 1] | | semantics.rb:63:19:63:19 | a | semantics.rb:63:10:63:20 | call to s10 | | semantics.rb:63:19:63:19 | a | semantics.rb:63:10:63:20 | call to s10 | | semantics.rb:64:27:64:27 | a | semantics.rb:64:10:64:28 | call to s10 | @@ -132,11 +132,22 @@ edges | semantics.rb:99:16:99:16 | [post] y | semantics.rb:102:10:102:10 | y | | semantics.rb:99:24:99:24 | [post] z | semantics.rb:103:10:103:10 | z | | semantics.rb:99:24:99:24 | [post] z | semantics.rb:103:10:103:10 | z | -| semantics.rb:107:5:107:5 | a | semantics.rb:109:14:109:16 | ** ... | -| semantics.rb:107:5:107:5 | a | semantics.rb:110:28:110:30 | ** ... | +| semantics.rb:107:5:107:5 | a | semantics.rb:109:19:109:19 | a | +| semantics.rb:107:5:107:5 | a | semantics.rb:109:19:109:19 | a | | semantics.rb:107:9:107:18 | call to source | semantics.rb:107:5:107:5 | a | -| semantics.rb:109:14:109:16 | ** ... | semantics.rb:109:10:109:17 | call to s15 | -| semantics.rb:110:28:110:30 | ** ... | semantics.rb:110:10:110:31 | call to s15 | +| semantics.rb:107:9:107:18 | call to source | semantics.rb:107:5:107:5 | a | +| semantics.rb:108:5:108:5 | b | semantics.rb:110:27:110:27 | b | +| semantics.rb:108:5:108:5 | b | semantics.rb:110:27:110:27 | b | +| semantics.rb:108:9:108:18 | call to source | semantics.rb:108:5:108:5 | b | +| semantics.rb:108:9:108:18 | call to source | semantics.rb:108:5:108:5 | b | +| semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | semantics.rb:109:10:109:34 | ...[...] | +| semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | semantics.rb:109:10:109:34 | ...[...] | +| semantics.rb:109:19:109:19 | a | semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | +| semantics.rb:109:19:109:19 | a | semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | +| semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | semantics.rb:110:10:110:34 | ...[...] | +| semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | semantics.rb:110:10:110:34 | ...[...] | +| semantics.rb:110:27:110:27 | b | semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | +| semantics.rb:110:27:110:27 | b | semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | | semantics.rb:114:5:114:5 | a | semantics.rb:116:14:116:14 | a | | semantics.rb:114:5:114:5 | a | semantics.rb:116:14:116:14 | a | | semantics.rb:114:5:114:5 | a | semantics.rb:119:17:119:17 | a | @@ -165,872 +176,914 @@ edges | semantics.rb:121:20:121:22 | ** ... [element :a] | semantics.rb:121:10:121:23 | call to s16 | | semantics.rb:121:22:121:22 | h [element :a] | semantics.rb:121:20:121:22 | ** ... [element :a] | | semantics.rb:121:22:121:22 | h [element :a] | semantics.rb:121:20:121:22 | ** ... [element :a] | -| semantics.rb:125:5:125:5 | a | semantics.rb:126:9:126:9 | a | -| semantics.rb:125:5:125:5 | a | semantics.rb:126:9:126:9 | a | +| semantics.rb:125:5:125:5 | a | semantics.rb:127:14:127:14 | a | +| semantics.rb:125:5:125:5 | a | semantics.rb:128:14:128:14 | a | +| semantics.rb:125:5:125:5 | a | semantics.rb:128:14:128:14 | a | | semantics.rb:125:9:125:18 | call to source | semantics.rb:125:5:125:5 | a | | semantics.rb:125:9:125:18 | call to source | semantics.rb:125:5:125:5 | a | -| semantics.rb:126:9:126:9 | a | semantics.rb:126:12:126:14 | [post] ** ... | -| semantics.rb:126:9:126:9 | a | semantics.rb:126:12:126:14 | [post] ** ... | -| semantics.rb:126:12:126:14 | [post] ** ... | semantics.rb:127:10:127:10 | h | -| semantics.rb:126:12:126:14 | [post] ** ... | semantics.rb:127:10:127:10 | h | -| semantics.rb:141:5:141:5 | b | semantics.rb:145:5:145:5 | [post] h [element] | -| semantics.rb:141:5:141:5 | b | semantics.rb:145:5:145:5 | [post] h [element] | -| semantics.rb:141:9:141:18 | call to source | semantics.rb:141:5:141:5 | b | -| semantics.rb:141:9:141:18 | call to source | semantics.rb:141:5:141:5 | b | -| semantics.rb:145:5:145:5 | [post] h [element] | semantics.rb:147:14:147:14 | h [element] | -| semantics.rb:145:5:145:5 | [post] h [element] | semantics.rb:147:14:147:14 | h [element] | -| semantics.rb:147:14:147:14 | h [element] | semantics.rb:147:10:147:15 | call to s19 | -| semantics.rb:147:14:147:14 | h [element] | semantics.rb:147:10:147:15 | call to s19 | -| semantics.rb:151:5:151:5 | a | semantics.rb:152:13:152:13 | a | -| semantics.rb:151:5:151:5 | a | semantics.rb:152:13:152:13 | a | -| semantics.rb:151:9:151:18 | call to source | semantics.rb:151:5:151:5 | a | -| semantics.rb:151:9:151:18 | call to source | semantics.rb:151:5:151:5 | a | -| semantics.rb:152:5:152:5 | x [element] | semantics.rb:153:10:153:10 | x [element] | -| semantics.rb:152:5:152:5 | x [element] | semantics.rb:153:10:153:10 | x [element] | -| semantics.rb:152:5:152:5 | x [element] | semantics.rb:154:10:154:10 | x [element] | -| semantics.rb:152:5:152:5 | x [element] | semantics.rb:154:10:154:10 | x [element] | -| semantics.rb:152:9:152:14 | call to s20 [element] | semantics.rb:152:5:152:5 | x [element] | -| semantics.rb:152:9:152:14 | call to s20 [element] | semantics.rb:152:5:152:5 | x [element] | -| semantics.rb:152:13:152:13 | a | semantics.rb:152:9:152:14 | call to s20 [element] | -| semantics.rb:152:13:152:13 | a | semantics.rb:152:9:152:14 | call to s20 [element] | -| semantics.rb:153:10:153:10 | x [element] | semantics.rb:153:10:153:13 | ...[...] | -| semantics.rb:153:10:153:10 | x [element] | semantics.rb:153:10:153:13 | ...[...] | +| semantics.rb:126:5:126:5 | b | semantics.rb:127:17:127:17 | b | +| semantics.rb:126:5:126:5 | b | semantics.rb:129:17:129:17 | b | +| semantics.rb:126:5:126:5 | b | semantics.rb:129:17:129:17 | b | +| semantics.rb:126:9:126:18 | call to source | semantics.rb:126:5:126:5 | b | +| semantics.rb:126:9:126:18 | call to source | semantics.rb:126:5:126:5 | b | +| semantics.rb:127:10:127:18 | call to s17 [splat position 0] | semantics.rb:127:10:127:18 | call to s17 | +| semantics.rb:127:10:127:18 | call to s17 [splat position 1] | semantics.rb:127:10:127:18 | call to s17 | +| semantics.rb:127:14:127:14 | a | semantics.rb:127:10:127:18 | call to s17 [splat position 0] | +| semantics.rb:127:17:127:17 | b | semantics.rb:127:10:127:18 | call to s17 [splat position 1] | +| semantics.rb:128:10:128:18 | call to s17 [splat position 0] | semantics.rb:128:10:128:21 | ...[...] | +| semantics.rb:128:10:128:18 | call to s17 [splat position 0] | semantics.rb:128:10:128:21 | ...[...] | +| semantics.rb:128:14:128:14 | a | semantics.rb:128:10:128:18 | call to s17 [splat position 0] | +| semantics.rb:128:14:128:14 | a | semantics.rb:128:10:128:18 | call to s17 [splat position 0] | +| semantics.rb:129:10:129:18 | call to s17 [splat position 1] | semantics.rb:129:10:129:21 | ...[...] | +| semantics.rb:129:10:129:18 | call to s17 [splat position 1] | semantics.rb:129:10:129:21 | ...[...] | +| semantics.rb:129:17:129:17 | b | semantics.rb:129:10:129:18 | call to s17 [splat position 1] | +| semantics.rb:129:17:129:17 | b | semantics.rb:129:10:129:18 | call to s17 [splat position 1] | +| semantics.rb:133:5:133:5 | a | semantics.rb:135:12:135:12 | a | +| semantics.rb:133:5:133:5 | a | semantics.rb:135:12:135:12 | a | +| semantics.rb:133:5:133:5 | a | semantics.rb:137:14:137:14 | a | +| semantics.rb:133:5:133:5 | a | semantics.rb:137:14:137:14 | a | +| semantics.rb:133:9:133:18 | call to source | semantics.rb:133:5:133:5 | a | +| semantics.rb:133:9:133:18 | call to source | semantics.rb:133:5:133:5 | a | +| semantics.rb:134:5:134:5 | b | semantics.rb:135:15:135:15 | b | +| semantics.rb:134:5:134:5 | b | semantics.rb:135:15:135:15 | b | +| semantics.rb:134:9:134:18 | call to source | semantics.rb:134:5:134:5 | b | +| semantics.rb:134:9:134:18 | call to source | semantics.rb:134:5:134:5 | b | +| semantics.rb:135:5:135:7 | arr [element 0] | semantics.rb:136:15:136:17 | arr [element 0] | +| semantics.rb:135:5:135:7 | arr [element 0] | semantics.rb:136:15:136:17 | arr [element 0] | +| semantics.rb:135:5:135:7 | arr [element 1] | semantics.rb:136:15:136:17 | arr [element 1] | +| semantics.rb:135:5:135:7 | arr [element 1] | semantics.rb:136:15:136:17 | arr [element 1] | +| semantics.rb:135:12:135:12 | a | semantics.rb:135:5:135:7 | arr [element 0] | +| semantics.rb:135:12:135:12 | a | semantics.rb:135:5:135:7 | arr [element 0] | +| semantics.rb:135:15:135:15 | b | semantics.rb:135:5:135:7 | arr [element 1] | +| semantics.rb:135:15:135:15 | b | semantics.rb:135:5:135:7 | arr [element 1] | +| semantics.rb:136:14:136:17 | * ... [element 0] | semantics.rb:136:10:136:18 | call to s18 | +| semantics.rb:136:14:136:17 | * ... [element 0] | semantics.rb:136:10:136:18 | call to s18 | +| semantics.rb:136:14:136:17 | * ... [element 1] | semantics.rb:136:10:136:18 | call to s18 | +| semantics.rb:136:14:136:17 | * ... [element 1] | semantics.rb:136:10:136:18 | call to s18 | +| semantics.rb:136:15:136:17 | arr [element 0] | semantics.rb:136:14:136:17 | * ... [element 0] | +| semantics.rb:136:15:136:17 | arr [element 0] | semantics.rb:136:14:136:17 | * ... [element 0] | +| semantics.rb:136:15:136:17 | arr [element 1] | semantics.rb:136:14:136:17 | * ... [element 1] | +| semantics.rb:136:15:136:17 | arr [element 1] | semantics.rb:136:14:136:17 | * ... [element 1] | +| semantics.rb:137:14:137:14 | a | semantics.rb:137:10:137:15 | call to s18 | +| semantics.rb:137:14:137:14 | a | semantics.rb:137:10:137:15 | call to s18 | +| semantics.rb:142:5:142:5 | b | semantics.rb:146:5:146:5 | [post] h [element] | +| semantics.rb:142:5:142:5 | b | semantics.rb:146:5:146:5 | [post] h [element] | +| semantics.rb:142:9:142:18 | call to source | semantics.rb:142:5:142:5 | b | +| semantics.rb:142:9:142:18 | call to source | semantics.rb:142:5:142:5 | b | +| semantics.rb:146:5:146:5 | [post] h [element] | semantics.rb:148:14:148:14 | h [element] | +| semantics.rb:146:5:146:5 | [post] h [element] | semantics.rb:148:14:148:14 | h [element] | +| semantics.rb:148:14:148:14 | h [element] | semantics.rb:148:10:148:15 | call to s19 | +| semantics.rb:148:14:148:14 | h [element] | semantics.rb:148:10:148:15 | call to s19 | +| semantics.rb:152:5:152:5 | a | semantics.rb:153:13:153:13 | a | +| semantics.rb:152:5:152:5 | a | semantics.rb:153:13:153:13 | a | +| semantics.rb:152:9:152:18 | call to source | semantics.rb:152:5:152:5 | a | +| semantics.rb:152:9:152:18 | call to source | semantics.rb:152:5:152:5 | a | +| semantics.rb:153:5:153:5 | x [element] | semantics.rb:154:10:154:10 | x [element] | +| semantics.rb:153:5:153:5 | x [element] | semantics.rb:154:10:154:10 | x [element] | +| semantics.rb:153:5:153:5 | x [element] | semantics.rb:155:10:155:10 | x [element] | +| semantics.rb:153:5:153:5 | x [element] | semantics.rb:155:10:155:10 | x [element] | +| semantics.rb:153:9:153:14 | call to s20 [element] | semantics.rb:153:5:153:5 | x [element] | +| semantics.rb:153:9:153:14 | call to s20 [element] | semantics.rb:153:5:153:5 | x [element] | +| semantics.rb:153:13:153:13 | a | semantics.rb:153:9:153:14 | call to s20 [element] | +| semantics.rb:153:13:153:13 | a | semantics.rb:153:9:153:14 | call to s20 [element] | | semantics.rb:154:10:154:10 | x [element] | semantics.rb:154:10:154:13 | ...[...] | | semantics.rb:154:10:154:10 | x [element] | semantics.rb:154:10:154:13 | ...[...] | -| semantics.rb:158:5:158:5 | a | semantics.rb:162:5:162:5 | [post] h [element 0] | -| semantics.rb:158:5:158:5 | a | semantics.rb:162:5:162:5 | [post] h [element 0] | -| semantics.rb:158:9:158:18 | call to source | semantics.rb:158:5:158:5 | a | -| semantics.rb:158:9:158:18 | call to source | semantics.rb:158:5:158:5 | a | -| semantics.rb:159:5:159:5 | b | semantics.rb:163:5:163:5 | [post] h [element] | -| semantics.rb:159:5:159:5 | b | semantics.rb:163:5:163:5 | [post] h [element] | -| semantics.rb:159:9:159:18 | call to source | semantics.rb:159:5:159:5 | b | -| semantics.rb:159:9:159:18 | call to source | semantics.rb:159:5:159:5 | b | -| semantics.rb:162:5:162:5 | [post] h [element 0] | semantics.rb:165:14:165:14 | h [element 0] | -| semantics.rb:162:5:162:5 | [post] h [element 0] | semantics.rb:165:14:165:14 | h [element 0] | -| semantics.rb:163:5:163:5 | [post] h [element] | semantics.rb:165:14:165:14 | h [element] | -| semantics.rb:163:5:163:5 | [post] h [element] | semantics.rb:165:14:165:14 | h [element] | -| semantics.rb:165:14:165:14 | h [element 0] | semantics.rb:165:10:165:15 | call to s21 | -| semantics.rb:165:14:165:14 | h [element 0] | semantics.rb:165:10:165:15 | call to s21 | -| semantics.rb:165:14:165:14 | h [element] | semantics.rb:165:10:165:15 | call to s21 | -| semantics.rb:165:14:165:14 | h [element] | semantics.rb:165:10:165:15 | call to s21 | -| semantics.rb:169:5:169:5 | a | semantics.rb:170:13:170:13 | a | -| semantics.rb:169:5:169:5 | a | semantics.rb:170:13:170:13 | a | -| semantics.rb:169:9:169:18 | call to source | semantics.rb:169:5:169:5 | a | -| semantics.rb:169:9:169:18 | call to source | semantics.rb:169:5:169:5 | a | -| semantics.rb:170:5:170:5 | x [element] | semantics.rb:171:10:171:10 | x [element] | -| semantics.rb:170:5:170:5 | x [element] | semantics.rb:171:10:171:10 | x [element] | -| semantics.rb:170:5:170:5 | x [element] | semantics.rb:172:10:172:10 | x [element] | -| semantics.rb:170:5:170:5 | x [element] | semantics.rb:172:10:172:10 | x [element] | -| semantics.rb:170:9:170:14 | call to s22 [element] | semantics.rb:170:5:170:5 | x [element] | -| semantics.rb:170:9:170:14 | call to s22 [element] | semantics.rb:170:5:170:5 | x [element] | -| semantics.rb:170:13:170:13 | a | semantics.rb:170:9:170:14 | call to s22 [element] | -| semantics.rb:170:13:170:13 | a | semantics.rb:170:9:170:14 | call to s22 [element] | -| semantics.rb:171:10:171:10 | x [element] | semantics.rb:171:10:171:13 | ...[...] | -| semantics.rb:171:10:171:10 | x [element] | semantics.rb:171:10:171:13 | ...[...] | +| semantics.rb:155:10:155:10 | x [element] | semantics.rb:155:10:155:13 | ...[...] | +| semantics.rb:155:10:155:10 | x [element] | semantics.rb:155:10:155:13 | ...[...] | +| semantics.rb:159:5:159:5 | a | semantics.rb:163:5:163:5 | [post] h [element 0] | +| semantics.rb:159:5:159:5 | a | semantics.rb:163:5:163:5 | [post] h [element 0] | +| semantics.rb:159:9:159:18 | call to source | semantics.rb:159:5:159:5 | a | +| semantics.rb:159:9:159:18 | call to source | semantics.rb:159:5:159:5 | a | +| semantics.rb:160:5:160:5 | b | semantics.rb:164:5:164:5 | [post] h [element] | +| semantics.rb:160:5:160:5 | b | semantics.rb:164:5:164:5 | [post] h [element] | +| semantics.rb:160:9:160:18 | call to source | semantics.rb:160:5:160:5 | b | +| semantics.rb:160:9:160:18 | call to source | semantics.rb:160:5:160:5 | b | +| semantics.rb:163:5:163:5 | [post] h [element 0] | semantics.rb:166:14:166:14 | h [element 0] | +| semantics.rb:163:5:163:5 | [post] h [element 0] | semantics.rb:166:14:166:14 | h [element 0] | +| semantics.rb:164:5:164:5 | [post] h [element] | semantics.rb:166:14:166:14 | h [element] | +| semantics.rb:164:5:164:5 | [post] h [element] | semantics.rb:166:14:166:14 | h [element] | +| semantics.rb:166:14:166:14 | h [element 0] | semantics.rb:166:10:166:15 | call to s21 | +| semantics.rb:166:14:166:14 | h [element 0] | semantics.rb:166:10:166:15 | call to s21 | +| semantics.rb:166:14:166:14 | h [element] | semantics.rb:166:10:166:15 | call to s21 | +| semantics.rb:166:14:166:14 | h [element] | semantics.rb:166:10:166:15 | call to s21 | +| semantics.rb:170:5:170:5 | a | semantics.rb:171:13:171:13 | a | +| semantics.rb:170:5:170:5 | a | semantics.rb:171:13:171:13 | a | +| semantics.rb:170:9:170:18 | call to source | semantics.rb:170:5:170:5 | a | +| semantics.rb:170:9:170:18 | call to source | semantics.rb:170:5:170:5 | a | +| semantics.rb:171:5:171:5 | x [element] | semantics.rb:172:10:172:10 | x [element] | +| semantics.rb:171:5:171:5 | x [element] | semantics.rb:172:10:172:10 | x [element] | +| semantics.rb:171:5:171:5 | x [element] | semantics.rb:173:10:173:10 | x [element] | +| semantics.rb:171:5:171:5 | x [element] | semantics.rb:173:10:173:10 | x [element] | +| semantics.rb:171:9:171:14 | call to s22 [element] | semantics.rb:171:5:171:5 | x [element] | +| semantics.rb:171:9:171:14 | call to s22 [element] | semantics.rb:171:5:171:5 | x [element] | +| semantics.rb:171:13:171:13 | a | semantics.rb:171:9:171:14 | call to s22 [element] | +| semantics.rb:171:13:171:13 | a | semantics.rb:171:9:171:14 | call to s22 [element] | | semantics.rb:172:10:172:10 | x [element] | semantics.rb:172:10:172:13 | ...[...] | | semantics.rb:172:10:172:10 | x [element] | semantics.rb:172:10:172:13 | ...[...] | -| semantics.rb:176:5:176:5 | a | semantics.rb:179:5:179:5 | [post] h [element 0] | -| semantics.rb:176:5:176:5 | a | semantics.rb:179:5:179:5 | [post] h [element 0] | -| semantics.rb:176:9:176:18 | call to source | semantics.rb:176:5:176:5 | a | -| semantics.rb:176:9:176:18 | call to source | semantics.rb:176:5:176:5 | a | -| semantics.rb:179:5:179:5 | [post] h [element 0] | semantics.rb:180:5:180:5 | h [element 0] | -| semantics.rb:179:5:179:5 | [post] h [element 0] | semantics.rb:180:5:180:5 | h [element 0] | -| semantics.rb:180:5:180:5 | [post] h [element 0] | semantics.rb:181:14:181:14 | h [element 0] | -| semantics.rb:180:5:180:5 | [post] h [element 0] | semantics.rb:181:14:181:14 | h [element 0] | -| semantics.rb:180:5:180:5 | h [element 0] | semantics.rb:180:5:180:5 | [post] h [element 0] | -| semantics.rb:180:5:180:5 | h [element 0] | semantics.rb:180:5:180:5 | [post] h [element 0] | -| semantics.rb:181:14:181:14 | h [element 0] | semantics.rb:181:10:181:15 | call to s23 | -| semantics.rb:181:14:181:14 | h [element 0] | semantics.rb:181:10:181:15 | call to s23 | -| semantics.rb:185:5:185:5 | a | semantics.rb:186:13:186:13 | a | -| semantics.rb:185:5:185:5 | a | semantics.rb:186:13:186:13 | a | -| semantics.rb:185:9:185:18 | call to source | semantics.rb:185:5:185:5 | a | -| semantics.rb:185:9:185:18 | call to source | semantics.rb:185:5:185:5 | a | -| semantics.rb:186:5:186:5 | x [element 0] | semantics.rb:187:10:187:10 | x [element 0] | -| semantics.rb:186:5:186:5 | x [element 0] | semantics.rb:187:10:187:10 | x [element 0] | -| semantics.rb:186:5:186:5 | x [element 0] | semantics.rb:189:10:189:10 | x [element 0] | -| semantics.rb:186:5:186:5 | x [element 0] | semantics.rb:189:10:189:10 | x [element 0] | -| semantics.rb:186:9:186:14 | call to s24 [element 0] | semantics.rb:186:5:186:5 | x [element 0] | -| semantics.rb:186:9:186:14 | call to s24 [element 0] | semantics.rb:186:5:186:5 | x [element 0] | -| semantics.rb:186:13:186:13 | a | semantics.rb:186:9:186:14 | call to s24 [element 0] | -| semantics.rb:186:13:186:13 | a | semantics.rb:186:9:186:14 | call to s24 [element 0] | -| semantics.rb:187:10:187:10 | x [element 0] | semantics.rb:187:10:187:13 | ...[...] | -| semantics.rb:187:10:187:10 | x [element 0] | semantics.rb:187:10:187:13 | ...[...] | -| semantics.rb:189:10:189:10 | x [element 0] | semantics.rb:189:10:189:13 | ...[...] | -| semantics.rb:189:10:189:10 | x [element 0] | semantics.rb:189:10:189:13 | ...[...] | -| semantics.rb:193:5:193:5 | a | semantics.rb:196:5:196:5 | [post] h [element 0] | -| semantics.rb:193:5:193:5 | a | semantics.rb:196:5:196:5 | [post] h [element 0] | -| semantics.rb:193:9:193:18 | call to source | semantics.rb:193:5:193:5 | a | -| semantics.rb:193:9:193:18 | call to source | semantics.rb:193:5:193:5 | a | -| semantics.rb:196:5:196:5 | [post] h [element 0] | semantics.rb:197:5:197:5 | h [element 0] | -| semantics.rb:196:5:196:5 | [post] h [element 0] | semantics.rb:197:5:197:5 | h [element 0] | -| semantics.rb:197:5:197:5 | [post] h [element 0] | semantics.rb:198:14:198:14 | h [element 0] | -| semantics.rb:197:5:197:5 | [post] h [element 0] | semantics.rb:198:14:198:14 | h [element 0] | -| semantics.rb:197:5:197:5 | h [element 0] | semantics.rb:197:5:197:5 | [post] h [element 0] | -| semantics.rb:197:5:197:5 | h [element 0] | semantics.rb:197:5:197:5 | [post] h [element 0] | -| semantics.rb:198:14:198:14 | h [element 0] | semantics.rb:198:10:198:15 | call to s25 | -| semantics.rb:198:14:198:14 | h [element 0] | semantics.rb:198:10:198:15 | call to s25 | -| semantics.rb:202:5:202:5 | a | semantics.rb:203:13:203:13 | a | -| semantics.rb:202:5:202:5 | a | semantics.rb:203:13:203:13 | a | -| semantics.rb:202:9:202:18 | call to source | semantics.rb:202:5:202:5 | a | -| semantics.rb:202:9:202:18 | call to source | semantics.rb:202:5:202:5 | a | -| semantics.rb:203:5:203:5 | x [element 0] | semantics.rb:204:10:204:10 | x [element 0] | -| semantics.rb:203:5:203:5 | x [element 0] | semantics.rb:204:10:204:10 | x [element 0] | -| semantics.rb:203:5:203:5 | x [element 0] | semantics.rb:206:10:206:10 | x [element 0] | -| semantics.rb:203:5:203:5 | x [element 0] | semantics.rb:206:10:206:10 | x [element 0] | -| semantics.rb:203:9:203:14 | call to s26 [element 0] | semantics.rb:203:5:203:5 | x [element 0] | -| semantics.rb:203:9:203:14 | call to s26 [element 0] | semantics.rb:203:5:203:5 | x [element 0] | -| semantics.rb:203:13:203:13 | a | semantics.rb:203:9:203:14 | call to s26 [element 0] | -| semantics.rb:203:13:203:13 | a | semantics.rb:203:9:203:14 | call to s26 [element 0] | -| semantics.rb:204:10:204:10 | x [element 0] | semantics.rb:204:10:204:13 | ...[...] | -| semantics.rb:204:10:204:10 | x [element 0] | semantics.rb:204:10:204:13 | ...[...] | -| semantics.rb:206:10:206:10 | x [element 0] | semantics.rb:206:10:206:13 | ...[...] | -| semantics.rb:206:10:206:10 | x [element 0] | semantics.rb:206:10:206:13 | ...[...] | -| semantics.rb:211:5:211:5 | b | semantics.rb:217:5:217:5 | [post] h [element 1] | -| semantics.rb:211:5:211:5 | b | semantics.rb:217:5:217:5 | [post] h [element 1] | -| semantics.rb:211:9:211:18 | call to source | semantics.rb:211:5:211:5 | b | -| semantics.rb:211:9:211:18 | call to source | semantics.rb:211:5:211:5 | b | -| semantics.rb:212:5:212:5 | c | semantics.rb:218:5:218:5 | [post] h [element 2] | -| semantics.rb:212:5:212:5 | c | semantics.rb:218:5:218:5 | [post] h [element 2] | -| semantics.rb:212:9:212:18 | call to source | semantics.rb:212:5:212:5 | c | -| semantics.rb:212:9:212:18 | call to source | semantics.rb:212:5:212:5 | c | -| semantics.rb:213:5:213:5 | d | semantics.rb:219:5:219:5 | [post] h [element] | -| semantics.rb:213:5:213:5 | d | semantics.rb:219:5:219:5 | [post] h [element] | -| semantics.rb:213:9:213:18 | call to source | semantics.rb:213:5:213:5 | d | -| semantics.rb:213:9:213:18 | call to source | semantics.rb:213:5:213:5 | d | -| semantics.rb:217:5:217:5 | [post] h [element 1] | semantics.rb:218:5:218:5 | h [element 1] | -| semantics.rb:217:5:217:5 | [post] h [element 1] | semantics.rb:218:5:218:5 | h [element 1] | -| semantics.rb:218:5:218:5 | [post] h [element 1] | semantics.rb:221:14:221:14 | h [element 1] | -| semantics.rb:218:5:218:5 | [post] h [element 1] | semantics.rb:221:14:221:14 | h [element 1] | -| semantics.rb:218:5:218:5 | [post] h [element 2] | semantics.rb:221:14:221:14 | h [element 2] | -| semantics.rb:218:5:218:5 | [post] h [element 2] | semantics.rb:221:14:221:14 | h [element 2] | -| semantics.rb:218:5:218:5 | h [element 1] | semantics.rb:218:5:218:5 | [post] h [element 1] | -| semantics.rb:218:5:218:5 | h [element 1] | semantics.rb:218:5:218:5 | [post] h [element 1] | -| semantics.rb:219:5:219:5 | [post] h [element] | semantics.rb:221:14:221:14 | h [element] | -| semantics.rb:219:5:219:5 | [post] h [element] | semantics.rb:221:14:221:14 | h [element] | -| semantics.rb:221:14:221:14 | h [element 1] | semantics.rb:221:10:221:15 | call to s27 | -| semantics.rb:221:14:221:14 | h [element 1] | semantics.rb:221:10:221:15 | call to s27 | -| semantics.rb:221:14:221:14 | h [element 2] | semantics.rb:221:10:221:15 | call to s27 | -| semantics.rb:221:14:221:14 | h [element 2] | semantics.rb:221:10:221:15 | call to s27 | -| semantics.rb:221:14:221:14 | h [element] | semantics.rb:221:10:221:15 | call to s27 | -| semantics.rb:221:14:221:14 | h [element] | semantics.rb:221:10:221:15 | call to s27 | -| semantics.rb:225:5:225:5 | a | semantics.rb:226:13:226:13 | a | -| semantics.rb:225:5:225:5 | a | semantics.rb:226:13:226:13 | a | -| semantics.rb:225:9:225:18 | call to source | semantics.rb:225:5:225:5 | a | -| semantics.rb:225:9:225:18 | call to source | semantics.rb:225:5:225:5 | a | -| semantics.rb:226:5:226:5 | x [element] | semantics.rb:227:10:227:10 | x [element] | -| semantics.rb:226:5:226:5 | x [element] | semantics.rb:227:10:227:10 | x [element] | -| semantics.rb:226:5:226:5 | x [element] | semantics.rb:228:10:228:10 | x [element] | -| semantics.rb:226:5:226:5 | x [element] | semantics.rb:228:10:228:10 | x [element] | -| semantics.rb:226:5:226:5 | x [element] | semantics.rb:229:10:229:10 | x [element] | -| semantics.rb:226:5:226:5 | x [element] | semantics.rb:229:10:229:10 | x [element] | -| semantics.rb:226:5:226:5 | x [element] | semantics.rb:230:10:230:10 | x [element] | -| semantics.rb:226:5:226:5 | x [element] | semantics.rb:230:10:230:10 | x [element] | -| semantics.rb:226:9:226:14 | call to s28 [element] | semantics.rb:226:5:226:5 | x [element] | -| semantics.rb:226:9:226:14 | call to s28 [element] | semantics.rb:226:5:226:5 | x [element] | -| semantics.rb:226:13:226:13 | a | semantics.rb:226:9:226:14 | call to s28 [element] | -| semantics.rb:226:13:226:13 | a | semantics.rb:226:9:226:14 | call to s28 [element] | -| semantics.rb:227:10:227:10 | x [element] | semantics.rb:227:10:227:13 | ...[...] | -| semantics.rb:227:10:227:10 | x [element] | semantics.rb:227:10:227:13 | ...[...] | +| semantics.rb:173:10:173:10 | x [element] | semantics.rb:173:10:173:13 | ...[...] | +| semantics.rb:173:10:173:10 | x [element] | semantics.rb:173:10:173:13 | ...[...] | +| semantics.rb:177:5:177:5 | a | semantics.rb:180:5:180:5 | [post] h [element 0] | +| semantics.rb:177:5:177:5 | a | semantics.rb:180:5:180:5 | [post] h [element 0] | +| semantics.rb:177:9:177:18 | call to source | semantics.rb:177:5:177:5 | a | +| semantics.rb:177:9:177:18 | call to source | semantics.rb:177:5:177:5 | a | +| semantics.rb:180:5:180:5 | [post] h [element 0] | semantics.rb:181:5:181:5 | h [element 0] | +| semantics.rb:180:5:180:5 | [post] h [element 0] | semantics.rb:181:5:181:5 | h [element 0] | +| semantics.rb:181:5:181:5 | [post] h [element 0] | semantics.rb:182:14:182:14 | h [element 0] | +| semantics.rb:181:5:181:5 | [post] h [element 0] | semantics.rb:182:14:182:14 | h [element 0] | +| semantics.rb:181:5:181:5 | h [element 0] | semantics.rb:181:5:181:5 | [post] h [element 0] | +| semantics.rb:181:5:181:5 | h [element 0] | semantics.rb:181:5:181:5 | [post] h [element 0] | +| semantics.rb:182:14:182:14 | h [element 0] | semantics.rb:182:10:182:15 | call to s23 | +| semantics.rb:182:14:182:14 | h [element 0] | semantics.rb:182:10:182:15 | call to s23 | +| semantics.rb:186:5:186:5 | a | semantics.rb:187:13:187:13 | a | +| semantics.rb:186:5:186:5 | a | semantics.rb:187:13:187:13 | a | +| semantics.rb:186:9:186:18 | call to source | semantics.rb:186:5:186:5 | a | +| semantics.rb:186:9:186:18 | call to source | semantics.rb:186:5:186:5 | a | +| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:188:10:188:10 | x [element 0] | +| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:188:10:188:10 | x [element 0] | +| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:190:10:190:10 | x [element 0] | +| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:190:10:190:10 | x [element 0] | +| semantics.rb:187:9:187:14 | call to s24 [element 0] | semantics.rb:187:5:187:5 | x [element 0] | +| semantics.rb:187:9:187:14 | call to s24 [element 0] | semantics.rb:187:5:187:5 | x [element 0] | +| semantics.rb:187:13:187:13 | a | semantics.rb:187:9:187:14 | call to s24 [element 0] | +| semantics.rb:187:13:187:13 | a | semantics.rb:187:9:187:14 | call to s24 [element 0] | +| semantics.rb:188:10:188:10 | x [element 0] | semantics.rb:188:10:188:13 | ...[...] | +| semantics.rb:188:10:188:10 | x [element 0] | semantics.rb:188:10:188:13 | ...[...] | +| semantics.rb:190:10:190:10 | x [element 0] | semantics.rb:190:10:190:13 | ...[...] | +| semantics.rb:190:10:190:10 | x [element 0] | semantics.rb:190:10:190:13 | ...[...] | +| semantics.rb:194:5:194:5 | a | semantics.rb:197:5:197:5 | [post] h [element 0] | +| semantics.rb:194:5:194:5 | a | semantics.rb:197:5:197:5 | [post] h [element 0] | +| semantics.rb:194:9:194:18 | call to source | semantics.rb:194:5:194:5 | a | +| semantics.rb:194:9:194:18 | call to source | semantics.rb:194:5:194:5 | a | +| semantics.rb:197:5:197:5 | [post] h [element 0] | semantics.rb:198:5:198:5 | h [element 0] | +| semantics.rb:197:5:197:5 | [post] h [element 0] | semantics.rb:198:5:198:5 | h [element 0] | +| semantics.rb:198:5:198:5 | [post] h [element 0] | semantics.rb:199:14:199:14 | h [element 0] | +| semantics.rb:198:5:198:5 | [post] h [element 0] | semantics.rb:199:14:199:14 | h [element 0] | +| semantics.rb:198:5:198:5 | h [element 0] | semantics.rb:198:5:198:5 | [post] h [element 0] | +| semantics.rb:198:5:198:5 | h [element 0] | semantics.rb:198:5:198:5 | [post] h [element 0] | +| semantics.rb:199:14:199:14 | h [element 0] | semantics.rb:199:10:199:15 | call to s25 | +| semantics.rb:199:14:199:14 | h [element 0] | semantics.rb:199:10:199:15 | call to s25 | +| semantics.rb:203:5:203:5 | a | semantics.rb:204:13:204:13 | a | +| semantics.rb:203:5:203:5 | a | semantics.rb:204:13:204:13 | a | +| semantics.rb:203:9:203:18 | call to source | semantics.rb:203:5:203:5 | a | +| semantics.rb:203:9:203:18 | call to source | semantics.rb:203:5:203:5 | a | +| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:205:10:205:10 | x [element 0] | +| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:205:10:205:10 | x [element 0] | +| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:207:10:207:10 | x [element 0] | +| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:207:10:207:10 | x [element 0] | +| semantics.rb:204:9:204:14 | call to s26 [element 0] | semantics.rb:204:5:204:5 | x [element 0] | +| semantics.rb:204:9:204:14 | call to s26 [element 0] | semantics.rb:204:5:204:5 | x [element 0] | +| semantics.rb:204:13:204:13 | a | semantics.rb:204:9:204:14 | call to s26 [element 0] | +| semantics.rb:204:13:204:13 | a | semantics.rb:204:9:204:14 | call to s26 [element 0] | +| semantics.rb:205:10:205:10 | x [element 0] | semantics.rb:205:10:205:13 | ...[...] | +| semantics.rb:205:10:205:10 | x [element 0] | semantics.rb:205:10:205:13 | ...[...] | +| semantics.rb:207:10:207:10 | x [element 0] | semantics.rb:207:10:207:13 | ...[...] | +| semantics.rb:207:10:207:10 | x [element 0] | semantics.rb:207:10:207:13 | ...[...] | +| semantics.rb:212:5:212:5 | b | semantics.rb:218:5:218:5 | [post] h [element 1] | +| semantics.rb:212:5:212:5 | b | semantics.rb:218:5:218:5 | [post] h [element 1] | +| semantics.rb:212:9:212:18 | call to source | semantics.rb:212:5:212:5 | b | +| semantics.rb:212:9:212:18 | call to source | semantics.rb:212:5:212:5 | b | +| semantics.rb:213:5:213:5 | c | semantics.rb:219:5:219:5 | [post] h [element 2] | +| semantics.rb:213:5:213:5 | c | semantics.rb:219:5:219:5 | [post] h [element 2] | +| semantics.rb:213:9:213:18 | call to source | semantics.rb:213:5:213:5 | c | +| semantics.rb:213:9:213:18 | call to source | semantics.rb:213:5:213:5 | c | +| semantics.rb:214:5:214:5 | d | semantics.rb:220:5:220:5 | [post] h [element] | +| semantics.rb:214:5:214:5 | d | semantics.rb:220:5:220:5 | [post] h [element] | +| semantics.rb:214:9:214:18 | call to source | semantics.rb:214:5:214:5 | d | +| semantics.rb:214:9:214:18 | call to source | semantics.rb:214:5:214:5 | d | +| semantics.rb:218:5:218:5 | [post] h [element 1] | semantics.rb:219:5:219:5 | h [element 1] | +| semantics.rb:218:5:218:5 | [post] h [element 1] | semantics.rb:219:5:219:5 | h [element 1] | +| semantics.rb:219:5:219:5 | [post] h [element 1] | semantics.rb:222:14:222:14 | h [element 1] | +| semantics.rb:219:5:219:5 | [post] h [element 1] | semantics.rb:222:14:222:14 | h [element 1] | +| semantics.rb:219:5:219:5 | [post] h [element 2] | semantics.rb:222:14:222:14 | h [element 2] | +| semantics.rb:219:5:219:5 | [post] h [element 2] | semantics.rb:222:14:222:14 | h [element 2] | +| semantics.rb:219:5:219:5 | h [element 1] | semantics.rb:219:5:219:5 | [post] h [element 1] | +| semantics.rb:219:5:219:5 | h [element 1] | semantics.rb:219:5:219:5 | [post] h [element 1] | +| semantics.rb:220:5:220:5 | [post] h [element] | semantics.rb:222:14:222:14 | h [element] | +| semantics.rb:220:5:220:5 | [post] h [element] | semantics.rb:222:14:222:14 | h [element] | +| semantics.rb:222:14:222:14 | h [element 1] | semantics.rb:222:10:222:15 | call to s27 | +| semantics.rb:222:14:222:14 | h [element 1] | semantics.rb:222:10:222:15 | call to s27 | +| semantics.rb:222:14:222:14 | h [element 2] | semantics.rb:222:10:222:15 | call to s27 | +| semantics.rb:222:14:222:14 | h [element 2] | semantics.rb:222:10:222:15 | call to s27 | +| semantics.rb:222:14:222:14 | h [element] | semantics.rb:222:10:222:15 | call to s27 | +| semantics.rb:222:14:222:14 | h [element] | semantics.rb:222:10:222:15 | call to s27 | +| semantics.rb:226:5:226:5 | a | semantics.rb:227:13:227:13 | a | +| semantics.rb:226:5:226:5 | a | semantics.rb:227:13:227:13 | a | +| semantics.rb:226:9:226:18 | call to source | semantics.rb:226:5:226:5 | a | +| semantics.rb:226:9:226:18 | call to source | semantics.rb:226:5:226:5 | a | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:228:10:228:10 | x [element] | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:228:10:228:10 | x [element] | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:229:10:229:10 | x [element] | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:229:10:229:10 | x [element] | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:230:10:230:10 | x [element] | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:230:10:230:10 | x [element] | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:231:10:231:10 | x [element] | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:231:10:231:10 | x [element] | +| semantics.rb:227:9:227:14 | call to s28 [element] | semantics.rb:227:5:227:5 | x [element] | +| semantics.rb:227:9:227:14 | call to s28 [element] | semantics.rb:227:5:227:5 | x [element] | +| semantics.rb:227:13:227:13 | a | semantics.rb:227:9:227:14 | call to s28 [element] | +| semantics.rb:227:13:227:13 | a | semantics.rb:227:9:227:14 | call to s28 [element] | | semantics.rb:228:10:228:10 | x [element] | semantics.rb:228:10:228:13 | ...[...] | | semantics.rb:228:10:228:10 | x [element] | semantics.rb:228:10:228:13 | ...[...] | | semantics.rb:229:10:229:10 | x [element] | semantics.rb:229:10:229:13 | ...[...] | | semantics.rb:229:10:229:10 | x [element] | semantics.rb:229:10:229:13 | ...[...] | | semantics.rb:230:10:230:10 | x [element] | semantics.rb:230:10:230:13 | ...[...] | | semantics.rb:230:10:230:10 | x [element] | semantics.rb:230:10:230:13 | ...[...] | -| semantics.rb:235:5:235:5 | b | semantics.rb:240:5:240:5 | [post] h [element 1] | -| semantics.rb:235:5:235:5 | b | semantics.rb:240:5:240:5 | [post] h [element 1] | -| semantics.rb:235:9:235:18 | call to source | semantics.rb:235:5:235:5 | b | -| semantics.rb:235:9:235:18 | call to source | semantics.rb:235:5:235:5 | b | -| semantics.rb:236:5:236:5 | c | semantics.rb:241:5:241:5 | [post] h [element 2] | -| semantics.rb:236:5:236:5 | c | semantics.rb:241:5:241:5 | [post] h [element 2] | -| semantics.rb:236:9:236:18 | call to source | semantics.rb:236:5:236:5 | c | -| semantics.rb:236:9:236:18 | call to source | semantics.rb:236:5:236:5 | c | -| semantics.rb:240:5:240:5 | [post] h [element 1] | semantics.rb:241:5:241:5 | h [element 1] | -| semantics.rb:240:5:240:5 | [post] h [element 1] | semantics.rb:241:5:241:5 | h [element 1] | -| semantics.rb:241:5:241:5 | [post] h [element 1] | semantics.rb:244:14:244:14 | h [element 1] | -| semantics.rb:241:5:241:5 | [post] h [element 1] | semantics.rb:244:14:244:14 | h [element 1] | -| semantics.rb:241:5:241:5 | [post] h [element 2] | semantics.rb:244:14:244:14 | h [element 2] | -| semantics.rb:241:5:241:5 | [post] h [element 2] | semantics.rb:244:14:244:14 | h [element 2] | -| semantics.rb:241:5:241:5 | h [element 1] | semantics.rb:241:5:241:5 | [post] h [element 1] | -| semantics.rb:241:5:241:5 | h [element 1] | semantics.rb:241:5:241:5 | [post] h [element 1] | -| semantics.rb:244:14:244:14 | h [element 1] | semantics.rb:244:10:244:15 | call to s29 | -| semantics.rb:244:14:244:14 | h [element 1] | semantics.rb:244:10:244:15 | call to s29 | -| semantics.rb:244:14:244:14 | h [element 2] | semantics.rb:244:10:244:15 | call to s29 | -| semantics.rb:244:14:244:14 | h [element 2] | semantics.rb:244:10:244:15 | call to s29 | -| semantics.rb:248:5:248:5 | a | semantics.rb:249:13:249:13 | a | -| semantics.rb:248:5:248:5 | a | semantics.rb:249:13:249:13 | a | -| semantics.rb:248:9:248:18 | call to source | semantics.rb:248:5:248:5 | a | -| semantics.rb:248:9:248:18 | call to source | semantics.rb:248:5:248:5 | a | -| semantics.rb:249:5:249:5 | x [element] | semantics.rb:250:10:250:10 | x [element] | -| semantics.rb:249:5:249:5 | x [element] | semantics.rb:250:10:250:10 | x [element] | -| semantics.rb:249:5:249:5 | x [element] | semantics.rb:251:10:251:10 | x [element] | -| semantics.rb:249:5:249:5 | x [element] | semantics.rb:251:10:251:10 | x [element] | -| semantics.rb:249:5:249:5 | x [element] | semantics.rb:252:10:252:10 | x [element] | -| semantics.rb:249:5:249:5 | x [element] | semantics.rb:252:10:252:10 | x [element] | -| semantics.rb:249:5:249:5 | x [element] | semantics.rb:253:10:253:10 | x [element] | -| semantics.rb:249:5:249:5 | x [element] | semantics.rb:253:10:253:10 | x [element] | -| semantics.rb:249:9:249:14 | call to s30 [element] | semantics.rb:249:5:249:5 | x [element] | -| semantics.rb:249:9:249:14 | call to s30 [element] | semantics.rb:249:5:249:5 | x [element] | -| semantics.rb:249:13:249:13 | a | semantics.rb:249:9:249:14 | call to s30 [element] | -| semantics.rb:249:13:249:13 | a | semantics.rb:249:9:249:14 | call to s30 [element] | -| semantics.rb:250:10:250:10 | x [element] | semantics.rb:250:10:250:13 | ...[...] | -| semantics.rb:250:10:250:10 | x [element] | semantics.rb:250:10:250:13 | ...[...] | +| semantics.rb:231:10:231:10 | x [element] | semantics.rb:231:10:231:13 | ...[...] | +| semantics.rb:231:10:231:10 | x [element] | semantics.rb:231:10:231:13 | ...[...] | +| semantics.rb:236:5:236:5 | b | semantics.rb:241:5:241:5 | [post] h [element 1] | +| semantics.rb:236:5:236:5 | b | semantics.rb:241:5:241:5 | [post] h [element 1] | +| semantics.rb:236:9:236:18 | call to source | semantics.rb:236:5:236:5 | b | +| semantics.rb:236:9:236:18 | call to source | semantics.rb:236:5:236:5 | b | +| semantics.rb:237:5:237:5 | c | semantics.rb:242:5:242:5 | [post] h [element 2] | +| semantics.rb:237:5:237:5 | c | semantics.rb:242:5:242:5 | [post] h [element 2] | +| semantics.rb:237:9:237:18 | call to source | semantics.rb:237:5:237:5 | c | +| semantics.rb:237:9:237:18 | call to source | semantics.rb:237:5:237:5 | c | +| semantics.rb:241:5:241:5 | [post] h [element 1] | semantics.rb:242:5:242:5 | h [element 1] | +| semantics.rb:241:5:241:5 | [post] h [element 1] | semantics.rb:242:5:242:5 | h [element 1] | +| semantics.rb:242:5:242:5 | [post] h [element 1] | semantics.rb:245:14:245:14 | h [element 1] | +| semantics.rb:242:5:242:5 | [post] h [element 1] | semantics.rb:245:14:245:14 | h [element 1] | +| semantics.rb:242:5:242:5 | [post] h [element 2] | semantics.rb:245:14:245:14 | h [element 2] | +| semantics.rb:242:5:242:5 | [post] h [element 2] | semantics.rb:245:14:245:14 | h [element 2] | +| semantics.rb:242:5:242:5 | h [element 1] | semantics.rb:242:5:242:5 | [post] h [element 1] | +| semantics.rb:242:5:242:5 | h [element 1] | semantics.rb:242:5:242:5 | [post] h [element 1] | +| semantics.rb:245:14:245:14 | h [element 1] | semantics.rb:245:10:245:15 | call to s29 | +| semantics.rb:245:14:245:14 | h [element 1] | semantics.rb:245:10:245:15 | call to s29 | +| semantics.rb:245:14:245:14 | h [element 2] | semantics.rb:245:10:245:15 | call to s29 | +| semantics.rb:245:14:245:14 | h [element 2] | semantics.rb:245:10:245:15 | call to s29 | +| semantics.rb:249:5:249:5 | a | semantics.rb:250:13:250:13 | a | +| semantics.rb:249:5:249:5 | a | semantics.rb:250:13:250:13 | a | +| semantics.rb:249:9:249:18 | call to source | semantics.rb:249:5:249:5 | a | +| semantics.rb:249:9:249:18 | call to source | semantics.rb:249:5:249:5 | a | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:251:10:251:10 | x [element] | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:251:10:251:10 | x [element] | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:252:10:252:10 | x [element] | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:252:10:252:10 | x [element] | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:253:10:253:10 | x [element] | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:253:10:253:10 | x [element] | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:254:10:254:10 | x [element] | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:254:10:254:10 | x [element] | +| semantics.rb:250:9:250:14 | call to s30 [element] | semantics.rb:250:5:250:5 | x [element] | +| semantics.rb:250:9:250:14 | call to s30 [element] | semantics.rb:250:5:250:5 | x [element] | +| semantics.rb:250:13:250:13 | a | semantics.rb:250:9:250:14 | call to s30 [element] | +| semantics.rb:250:13:250:13 | a | semantics.rb:250:9:250:14 | call to s30 [element] | | semantics.rb:251:10:251:10 | x [element] | semantics.rb:251:10:251:13 | ...[...] | | semantics.rb:251:10:251:10 | x [element] | semantics.rb:251:10:251:13 | ...[...] | | semantics.rb:252:10:252:10 | x [element] | semantics.rb:252:10:252:13 | ...[...] | | semantics.rb:252:10:252:10 | x [element] | semantics.rb:252:10:252:13 | ...[...] | | semantics.rb:253:10:253:10 | x [element] | semantics.rb:253:10:253:13 | ...[...] | | semantics.rb:253:10:253:10 | x [element] | semantics.rb:253:10:253:13 | ...[...] | -| semantics.rb:257:5:257:5 | [post] h [element :foo] | semantics.rb:258:5:258:5 | h [element :foo] | -| semantics.rb:257:5:257:5 | [post] h [element :foo] | semantics.rb:258:5:258:5 | h [element :foo] | -| semantics.rb:257:15:257:25 | call to source | semantics.rb:257:5:257:5 | [post] h [element :foo] | -| semantics.rb:257:15:257:25 | call to source | semantics.rb:257:5:257:5 | [post] h [element :foo] | +| semantics.rb:254:10:254:10 | x [element] | semantics.rb:254:10:254:13 | ...[...] | +| semantics.rb:254:10:254:10 | x [element] | semantics.rb:254:10:254:13 | ...[...] | | semantics.rb:258:5:258:5 | [post] h [element :foo] | semantics.rb:259:5:259:5 | h [element :foo] | | semantics.rb:258:5:258:5 | [post] h [element :foo] | semantics.rb:259:5:259:5 | h [element :foo] | -| semantics.rb:258:5:258:5 | h [element :foo] | semantics.rb:258:5:258:5 | [post] h [element :foo] | -| semantics.rb:258:5:258:5 | h [element :foo] | semantics.rb:258:5:258:5 | [post] h [element :foo] | -| semantics.rb:259:5:259:5 | [post] h [element :foo] | semantics.rb:262:14:262:14 | h [element :foo] | -| semantics.rb:259:5:259:5 | [post] h [element :foo] | semantics.rb:262:14:262:14 | h [element :foo] | +| semantics.rb:258:15:258:25 | call to source | semantics.rb:258:5:258:5 | [post] h [element :foo] | +| semantics.rb:258:15:258:25 | call to source | semantics.rb:258:5:258:5 | [post] h [element :foo] | +| semantics.rb:259:5:259:5 | [post] h [element :foo] | semantics.rb:260:5:260:5 | h [element :foo] | +| semantics.rb:259:5:259:5 | [post] h [element :foo] | semantics.rb:260:5:260:5 | h [element :foo] | | semantics.rb:259:5:259:5 | h [element :foo] | semantics.rb:259:5:259:5 | [post] h [element :foo] | | semantics.rb:259:5:259:5 | h [element :foo] | semantics.rb:259:5:259:5 | [post] h [element :foo] | -| semantics.rb:260:5:260:5 | [post] h [element] | semantics.rb:262:14:262:14 | h [element] | -| semantics.rb:260:5:260:5 | [post] h [element] | semantics.rb:262:14:262:14 | h [element] | -| semantics.rb:260:12:260:22 | call to source | semantics.rb:260:5:260:5 | [post] h [element] | -| semantics.rb:260:12:260:22 | call to source | semantics.rb:260:5:260:5 | [post] h [element] | -| semantics.rb:262:14:262:14 | h [element :foo] | semantics.rb:262:10:262:15 | call to s31 | -| semantics.rb:262:14:262:14 | h [element :foo] | semantics.rb:262:10:262:15 | call to s31 | -| semantics.rb:262:14:262:14 | h [element] | semantics.rb:262:10:262:15 | call to s31 | -| semantics.rb:262:14:262:14 | h [element] | semantics.rb:262:10:262:15 | call to s31 | -| semantics.rb:267:5:267:5 | [post] h [element foo] | semantics.rb:268:5:268:5 | h [element foo] | -| semantics.rb:267:5:267:5 | [post] h [element foo] | semantics.rb:268:5:268:5 | h [element foo] | -| semantics.rb:267:16:267:26 | call to source | semantics.rb:267:5:267:5 | [post] h [element foo] | -| semantics.rb:267:16:267:26 | call to source | semantics.rb:267:5:267:5 | [post] h [element foo] | +| semantics.rb:260:5:260:5 | [post] h [element :foo] | semantics.rb:263:14:263:14 | h [element :foo] | +| semantics.rb:260:5:260:5 | [post] h [element :foo] | semantics.rb:263:14:263:14 | h [element :foo] | +| semantics.rb:260:5:260:5 | h [element :foo] | semantics.rb:260:5:260:5 | [post] h [element :foo] | +| semantics.rb:260:5:260:5 | h [element :foo] | semantics.rb:260:5:260:5 | [post] h [element :foo] | +| semantics.rb:261:5:261:5 | [post] h [element] | semantics.rb:263:14:263:14 | h [element] | +| semantics.rb:261:5:261:5 | [post] h [element] | semantics.rb:263:14:263:14 | h [element] | +| semantics.rb:261:12:261:22 | call to source | semantics.rb:261:5:261:5 | [post] h [element] | +| semantics.rb:261:12:261:22 | call to source | semantics.rb:261:5:261:5 | [post] h [element] | +| semantics.rb:263:14:263:14 | h [element :foo] | semantics.rb:263:10:263:15 | call to s31 | +| semantics.rb:263:14:263:14 | h [element :foo] | semantics.rb:263:10:263:15 | call to s31 | +| semantics.rb:263:14:263:14 | h [element] | semantics.rb:263:10:263:15 | call to s31 | +| semantics.rb:263:14:263:14 | h [element] | semantics.rb:263:10:263:15 | call to s31 | | semantics.rb:268:5:268:5 | [post] h [element foo] | semantics.rb:269:5:269:5 | h [element foo] | | semantics.rb:268:5:268:5 | [post] h [element foo] | semantics.rb:269:5:269:5 | h [element foo] | -| semantics.rb:268:5:268:5 | h [element foo] | semantics.rb:268:5:268:5 | [post] h [element foo] | -| semantics.rb:268:5:268:5 | h [element foo] | semantics.rb:268:5:268:5 | [post] h [element foo] | -| semantics.rb:269:5:269:5 | [post] h [element foo] | semantics.rb:272:14:272:14 | h [element foo] | -| semantics.rb:269:5:269:5 | [post] h [element foo] | semantics.rb:272:14:272:14 | h [element foo] | +| semantics.rb:268:16:268:26 | call to source | semantics.rb:268:5:268:5 | [post] h [element foo] | +| semantics.rb:268:16:268:26 | call to source | semantics.rb:268:5:268:5 | [post] h [element foo] | +| semantics.rb:269:5:269:5 | [post] h [element foo] | semantics.rb:270:5:270:5 | h [element foo] | +| semantics.rb:269:5:269:5 | [post] h [element foo] | semantics.rb:270:5:270:5 | h [element foo] | | semantics.rb:269:5:269:5 | h [element foo] | semantics.rb:269:5:269:5 | [post] h [element foo] | | semantics.rb:269:5:269:5 | h [element foo] | semantics.rb:269:5:269:5 | [post] h [element foo] | -| semantics.rb:270:5:270:5 | [post] h [element] | semantics.rb:272:14:272:14 | h [element] | -| semantics.rb:270:5:270:5 | [post] h [element] | semantics.rb:272:14:272:14 | h [element] | -| semantics.rb:270:12:270:22 | call to source | semantics.rb:270:5:270:5 | [post] h [element] | -| semantics.rb:270:12:270:22 | call to source | semantics.rb:270:5:270:5 | [post] h [element] | -| semantics.rb:272:14:272:14 | h [element foo] | semantics.rb:272:10:272:15 | call to s32 | -| semantics.rb:272:14:272:14 | h [element foo] | semantics.rb:272:10:272:15 | call to s32 | -| semantics.rb:272:14:272:14 | h [element] | semantics.rb:272:10:272:15 | call to s32 | -| semantics.rb:272:14:272:14 | h [element] | semantics.rb:272:10:272:15 | call to s32 | -| semantics.rb:280:5:280:5 | [post] h [element] | semantics.rb:281:5:281:5 | h [element] | -| semantics.rb:280:5:280:5 | [post] h [element] | semantics.rb:281:5:281:5 | h [element] | -| semantics.rb:280:12:280:22 | call to source | semantics.rb:280:5:280:5 | [post] h [element] | -| semantics.rb:280:12:280:22 | call to source | semantics.rb:280:5:280:5 | [post] h [element] | -| semantics.rb:281:5:281:5 | [post] h [element nil] | semantics.rb:282:5:282:5 | h [element nil] | -| semantics.rb:281:5:281:5 | [post] h [element nil] | semantics.rb:282:5:282:5 | h [element nil] | +| semantics.rb:270:5:270:5 | [post] h [element foo] | semantics.rb:273:14:273:14 | h [element foo] | +| semantics.rb:270:5:270:5 | [post] h [element foo] | semantics.rb:273:14:273:14 | h [element foo] | +| semantics.rb:270:5:270:5 | h [element foo] | semantics.rb:270:5:270:5 | [post] h [element foo] | +| semantics.rb:270:5:270:5 | h [element foo] | semantics.rb:270:5:270:5 | [post] h [element foo] | +| semantics.rb:271:5:271:5 | [post] h [element] | semantics.rb:273:14:273:14 | h [element] | +| semantics.rb:271:5:271:5 | [post] h [element] | semantics.rb:273:14:273:14 | h [element] | +| semantics.rb:271:12:271:22 | call to source | semantics.rb:271:5:271:5 | [post] h [element] | +| semantics.rb:271:12:271:22 | call to source | semantics.rb:271:5:271:5 | [post] h [element] | +| semantics.rb:273:14:273:14 | h [element foo] | semantics.rb:273:10:273:15 | call to s32 | +| semantics.rb:273:14:273:14 | h [element foo] | semantics.rb:273:10:273:15 | call to s32 | +| semantics.rb:273:14:273:14 | h [element] | semantics.rb:273:10:273:15 | call to s32 | +| semantics.rb:273:14:273:14 | h [element] | semantics.rb:273:10:273:15 | call to s32 | | semantics.rb:281:5:281:5 | [post] h [element] | semantics.rb:282:5:282:5 | h [element] | | semantics.rb:281:5:281:5 | [post] h [element] | semantics.rb:282:5:282:5 | h [element] | -| semantics.rb:281:5:281:5 | h [element] | semantics.rb:281:5:281:5 | [post] h [element] | -| semantics.rb:281:5:281:5 | h [element] | semantics.rb:281:5:281:5 | [post] h [element] | -| semantics.rb:281:14:281:24 | call to source | semantics.rb:281:5:281:5 | [post] h [element nil] | -| semantics.rb:281:14:281:24 | call to source | semantics.rb:281:5:281:5 | [post] h [element nil] | +| semantics.rb:281:12:281:22 | call to source | semantics.rb:281:5:281:5 | [post] h [element] | +| semantics.rb:281:12:281:22 | call to source | semantics.rb:281:5:281:5 | [post] h [element] | | semantics.rb:282:5:282:5 | [post] h [element nil] | semantics.rb:283:5:283:5 | h [element nil] | | semantics.rb:282:5:282:5 | [post] h [element nil] | semantics.rb:283:5:283:5 | h [element nil] | -| semantics.rb:282:5:282:5 | [post] h [element true] | semantics.rb:283:5:283:5 | h [element true] | -| semantics.rb:282:5:282:5 | [post] h [element true] | semantics.rb:283:5:283:5 | h [element true] | | semantics.rb:282:5:282:5 | [post] h [element] | semantics.rb:283:5:283:5 | h [element] | | semantics.rb:282:5:282:5 | [post] h [element] | semantics.rb:283:5:283:5 | h [element] | -| semantics.rb:282:5:282:5 | h [element nil] | semantics.rb:282:5:282:5 | [post] h [element nil] | -| semantics.rb:282:5:282:5 | h [element nil] | semantics.rb:282:5:282:5 | [post] h [element nil] | | semantics.rb:282:5:282:5 | h [element] | semantics.rb:282:5:282:5 | [post] h [element] | | semantics.rb:282:5:282:5 | h [element] | semantics.rb:282:5:282:5 | [post] h [element] | -| semantics.rb:282:15:282:25 | call to source | semantics.rb:282:5:282:5 | [post] h [element true] | -| semantics.rb:282:15:282:25 | call to source | semantics.rb:282:5:282:5 | [post] h [element true] | -| semantics.rb:283:5:283:5 | [post] h [element false] | semantics.rb:285:14:285:14 | h [element false] | -| semantics.rb:283:5:283:5 | [post] h [element false] | semantics.rb:285:14:285:14 | h [element false] | -| semantics.rb:283:5:283:5 | [post] h [element nil] | semantics.rb:285:14:285:14 | h [element nil] | -| semantics.rb:283:5:283:5 | [post] h [element nil] | semantics.rb:285:14:285:14 | h [element nil] | -| semantics.rb:283:5:283:5 | [post] h [element true] | semantics.rb:285:14:285:14 | h [element true] | -| semantics.rb:283:5:283:5 | [post] h [element true] | semantics.rb:285:14:285:14 | h [element true] | -| semantics.rb:283:5:283:5 | [post] h [element] | semantics.rb:285:14:285:14 | h [element] | -| semantics.rb:283:5:283:5 | [post] h [element] | semantics.rb:285:14:285:14 | h [element] | +| semantics.rb:282:14:282:24 | call to source | semantics.rb:282:5:282:5 | [post] h [element nil] | +| semantics.rb:282:14:282:24 | call to source | semantics.rb:282:5:282:5 | [post] h [element nil] | +| semantics.rb:283:5:283:5 | [post] h [element nil] | semantics.rb:284:5:284:5 | h [element nil] | +| semantics.rb:283:5:283:5 | [post] h [element nil] | semantics.rb:284:5:284:5 | h [element nil] | +| semantics.rb:283:5:283:5 | [post] h [element true] | semantics.rb:284:5:284:5 | h [element true] | +| semantics.rb:283:5:283:5 | [post] h [element true] | semantics.rb:284:5:284:5 | h [element true] | +| semantics.rb:283:5:283:5 | [post] h [element] | semantics.rb:284:5:284:5 | h [element] | +| semantics.rb:283:5:283:5 | [post] h [element] | semantics.rb:284:5:284:5 | h [element] | | semantics.rb:283:5:283:5 | h [element nil] | semantics.rb:283:5:283:5 | [post] h [element nil] | | semantics.rb:283:5:283:5 | h [element nil] | semantics.rb:283:5:283:5 | [post] h [element nil] | -| semantics.rb:283:5:283:5 | h [element true] | semantics.rb:283:5:283:5 | [post] h [element true] | -| semantics.rb:283:5:283:5 | h [element true] | semantics.rb:283:5:283:5 | [post] h [element true] | | semantics.rb:283:5:283:5 | h [element] | semantics.rb:283:5:283:5 | [post] h [element] | | semantics.rb:283:5:283:5 | h [element] | semantics.rb:283:5:283:5 | [post] h [element] | -| semantics.rb:283:16:283:26 | call to source | semantics.rb:283:5:283:5 | [post] h [element false] | -| semantics.rb:283:16:283:26 | call to source | semantics.rb:283:5:283:5 | [post] h [element false] | -| semantics.rb:285:14:285:14 | h [element false] | semantics.rb:285:10:285:15 | call to s33 | -| semantics.rb:285:14:285:14 | h [element false] | semantics.rb:285:10:285:15 | call to s33 | -| semantics.rb:285:14:285:14 | h [element nil] | semantics.rb:285:10:285:15 | call to s33 | -| semantics.rb:285:14:285:14 | h [element nil] | semantics.rb:285:10:285:15 | call to s33 | -| semantics.rb:285:14:285:14 | h [element true] | semantics.rb:285:10:285:15 | call to s33 | -| semantics.rb:285:14:285:14 | h [element true] | semantics.rb:285:10:285:15 | call to s33 | -| semantics.rb:285:14:285:14 | h [element] | semantics.rb:285:10:285:15 | call to s33 | -| semantics.rb:285:14:285:14 | h [element] | semantics.rb:285:10:285:15 | call to s33 | -| semantics.rb:289:5:289:5 | x [element :foo] | semantics.rb:290:10:290:10 | x [element :foo] | -| semantics.rb:289:5:289:5 | x [element :foo] | semantics.rb:290:10:290:10 | x [element :foo] | -| semantics.rb:289:5:289:5 | x [element :foo] | semantics.rb:292:10:292:10 | x [element :foo] | -| semantics.rb:289:5:289:5 | x [element :foo] | semantics.rb:292:10:292:10 | x [element :foo] | -| semantics.rb:289:9:289:24 | call to s35 [element :foo] | semantics.rb:289:5:289:5 | x [element :foo] | -| semantics.rb:289:9:289:24 | call to s35 [element :foo] | semantics.rb:289:5:289:5 | x [element :foo] | -| semantics.rb:289:13:289:23 | call to source | semantics.rb:289:9:289:24 | call to s35 [element :foo] | -| semantics.rb:289:13:289:23 | call to source | semantics.rb:289:9:289:24 | call to s35 [element :foo] | -| semantics.rb:290:10:290:10 | x [element :foo] | semantics.rb:290:10:290:16 | ...[...] | -| semantics.rb:290:10:290:10 | x [element :foo] | semantics.rb:290:10:290:16 | ...[...] | -| semantics.rb:292:10:292:10 | x [element :foo] | semantics.rb:292:10:292:13 | ...[...] | -| semantics.rb:292:10:292:10 | x [element :foo] | semantics.rb:292:10:292:13 | ...[...] | -| semantics.rb:296:5:296:5 | x [element foo] | semantics.rb:298:10:298:10 | x [element foo] | -| semantics.rb:296:5:296:5 | x [element foo] | semantics.rb:298:10:298:10 | x [element foo] | -| semantics.rb:296:5:296:5 | x [element foo] | semantics.rb:300:10:300:10 | x [element foo] | -| semantics.rb:296:5:296:5 | x [element foo] | semantics.rb:300:10:300:10 | x [element foo] | -| semantics.rb:296:9:296:24 | call to s36 [element foo] | semantics.rb:296:5:296:5 | x [element foo] | -| semantics.rb:296:9:296:24 | call to s36 [element foo] | semantics.rb:296:5:296:5 | x [element foo] | -| semantics.rb:296:13:296:23 | call to source | semantics.rb:296:9:296:24 | call to s36 [element foo] | -| semantics.rb:296:13:296:23 | call to source | semantics.rb:296:9:296:24 | call to s36 [element foo] | -| semantics.rb:298:10:298:10 | x [element foo] | semantics.rb:298:10:298:17 | ...[...] | -| semantics.rb:298:10:298:10 | x [element foo] | semantics.rb:298:10:298:17 | ...[...] | -| semantics.rb:300:10:300:10 | x [element foo] | semantics.rb:300:10:300:13 | ...[...] | -| semantics.rb:300:10:300:10 | x [element foo] | semantics.rb:300:10:300:13 | ...[...] | -| semantics.rb:304:5:304:5 | x [element true] | semantics.rb:306:10:306:10 | x [element true] | -| semantics.rb:304:5:304:5 | x [element true] | semantics.rb:306:10:306:10 | x [element true] | -| semantics.rb:304:5:304:5 | x [element true] | semantics.rb:308:10:308:10 | x [element true] | -| semantics.rb:304:5:304:5 | x [element true] | semantics.rb:308:10:308:10 | x [element true] | -| semantics.rb:304:9:304:24 | call to s37 [element true] | semantics.rb:304:5:304:5 | x [element true] | -| semantics.rb:304:9:304:24 | call to s37 [element true] | semantics.rb:304:5:304:5 | x [element true] | -| semantics.rb:304:13:304:23 | call to source | semantics.rb:304:9:304:24 | call to s37 [element true] | -| semantics.rb:304:13:304:23 | call to source | semantics.rb:304:9:304:24 | call to s37 [element true] | -| semantics.rb:306:10:306:10 | x [element true] | semantics.rb:306:10:306:16 | ...[...] | -| semantics.rb:306:10:306:10 | x [element true] | semantics.rb:306:10:306:16 | ...[...] | -| semantics.rb:308:10:308:10 | x [element true] | semantics.rb:308:10:308:13 | ...[...] | -| semantics.rb:308:10:308:10 | x [element true] | semantics.rb:308:10:308:13 | ...[...] | -| semantics.rb:312:5:312:5 | [post] h [element foo] | semantics.rb:315:14:315:14 | h [element foo] | -| semantics.rb:312:5:312:5 | [post] h [element foo] | semantics.rb:315:14:315:14 | h [element foo] | -| semantics.rb:312:16:312:26 | call to source | semantics.rb:312:5:312:5 | [post] h [element foo] | -| semantics.rb:312:16:312:26 | call to source | semantics.rb:312:5:312:5 | [post] h [element foo] | -| semantics.rb:315:14:315:14 | h [element foo] | semantics.rb:315:10:315:15 | call to s38 | -| semantics.rb:315:14:315:14 | h [element foo] | semantics.rb:315:10:315:15 | call to s38 | -| semantics.rb:319:5:319:5 | x [element :foo] | semantics.rb:321:10:321:10 | x [element :foo] | -| semantics.rb:319:5:319:5 | x [element :foo] | semantics.rb:321:10:321:10 | x [element :foo] | -| semantics.rb:319:5:319:5 | x [element :foo] | semantics.rb:322:10:322:10 | x [element :foo] | -| semantics.rb:319:5:319:5 | x [element :foo] | semantics.rb:322:10:322:10 | x [element :foo] | -| semantics.rb:319:9:319:24 | call to s39 [element :foo] | semantics.rb:319:5:319:5 | x [element :foo] | -| semantics.rb:319:9:319:24 | call to s39 [element :foo] | semantics.rb:319:5:319:5 | x [element :foo] | -| semantics.rb:319:13:319:23 | call to source | semantics.rb:319:9:319:24 | call to s39 [element :foo] | -| semantics.rb:319:13:319:23 | call to source | semantics.rb:319:9:319:24 | call to s39 [element :foo] | -| semantics.rb:321:10:321:10 | x [element :foo] | semantics.rb:321:10:321:16 | ...[...] | -| semantics.rb:321:10:321:10 | x [element :foo] | semantics.rb:321:10:321:16 | ...[...] | -| semantics.rb:322:10:322:10 | x [element :foo] | semantics.rb:322:10:322:13 | ...[...] | -| semantics.rb:322:10:322:10 | x [element :foo] | semantics.rb:322:10:322:13 | ...[...] | -| semantics.rb:327:5:327:5 | [post] x [@foo] | semantics.rb:329:14:329:14 | x [@foo] | -| semantics.rb:327:5:327:5 | [post] x [@foo] | semantics.rb:329:14:329:14 | x [@foo] | -| semantics.rb:327:13:327:23 | call to source | semantics.rb:327:5:327:5 | [post] x [@foo] | -| semantics.rb:327:13:327:23 | call to source | semantics.rb:327:5:327:5 | [post] x [@foo] | -| semantics.rb:329:14:329:14 | x [@foo] | semantics.rb:329:10:329:15 | call to s40 | -| semantics.rb:329:14:329:14 | x [@foo] | semantics.rb:329:10:329:15 | call to s40 | -| semantics.rb:333:5:333:5 | x [@foo] | semantics.rb:334:10:334:10 | x [@foo] | -| semantics.rb:333:5:333:5 | x [@foo] | semantics.rb:334:10:334:10 | x [@foo] | -| semantics.rb:333:9:333:24 | call to s41 [@foo] | semantics.rb:333:5:333:5 | x [@foo] | -| semantics.rb:333:9:333:24 | call to s41 [@foo] | semantics.rb:333:5:333:5 | x [@foo] | -| semantics.rb:333:13:333:23 | call to source | semantics.rb:333:9:333:24 | call to s41 [@foo] | -| semantics.rb:333:13:333:23 | call to source | semantics.rb:333:9:333:24 | call to s41 [@foo] | -| semantics.rb:334:10:334:10 | x [@foo] | semantics.rb:334:10:334:14 | call to foo | -| semantics.rb:334:10:334:10 | x [@foo] | semantics.rb:334:10:334:14 | call to foo | -| semantics.rb:339:5:339:5 | [post] h [element 0] | semantics.rb:342:13:342:13 | h [element 0] | -| semantics.rb:339:5:339:5 | [post] h [element 0] | semantics.rb:342:13:342:13 | h [element 0] | -| semantics.rb:339:12:339:22 | call to source | semantics.rb:339:5:339:5 | [post] h [element 0] | -| semantics.rb:339:12:339:22 | call to source | semantics.rb:339:5:339:5 | [post] h [element 0] | -| semantics.rb:340:5:340:5 | [post] h [element] | semantics.rb:342:13:342:13 | h [element] | -| semantics.rb:340:5:340:5 | [post] h [element] | semantics.rb:342:13:342:13 | h [element] | -| semantics.rb:340:12:340:22 | call to source | semantics.rb:340:5:340:5 | [post] h [element] | -| semantics.rb:340:12:340:22 | call to source | semantics.rb:340:5:340:5 | [post] h [element] | -| semantics.rb:342:5:342:5 | x [element 0] | semantics.rb:344:10:344:10 | x [element 0] | -| semantics.rb:342:5:342:5 | x [element 0] | semantics.rb:344:10:344:10 | x [element 0] | -| semantics.rb:342:5:342:5 | x [element 0] | semantics.rb:346:10:346:10 | x [element 0] | -| semantics.rb:342:5:342:5 | x [element 0] | semantics.rb:346:10:346:10 | x [element 0] | -| semantics.rb:342:5:342:5 | x [element] | semantics.rb:344:10:344:10 | x [element] | -| semantics.rb:342:5:342:5 | x [element] | semantics.rb:344:10:344:10 | x [element] | -| semantics.rb:342:5:342:5 | x [element] | semantics.rb:345:10:345:10 | x [element] | -| semantics.rb:342:5:342:5 | x [element] | semantics.rb:345:10:345:10 | x [element] | -| semantics.rb:342:5:342:5 | x [element] | semantics.rb:346:10:346:10 | x [element] | -| semantics.rb:342:5:342:5 | x [element] | semantics.rb:346:10:346:10 | x [element] | -| semantics.rb:342:9:342:14 | call to s42 [element 0] | semantics.rb:342:5:342:5 | x [element 0] | -| semantics.rb:342:9:342:14 | call to s42 [element 0] | semantics.rb:342:5:342:5 | x [element 0] | -| semantics.rb:342:9:342:14 | call to s42 [element] | semantics.rb:342:5:342:5 | x [element] | -| semantics.rb:342:9:342:14 | call to s42 [element] | semantics.rb:342:5:342:5 | x [element] | -| semantics.rb:342:13:342:13 | h [element 0] | semantics.rb:342:9:342:14 | call to s42 [element 0] | -| semantics.rb:342:13:342:13 | h [element 0] | semantics.rb:342:9:342:14 | call to s42 [element 0] | -| semantics.rb:342:13:342:13 | h [element] | semantics.rb:342:9:342:14 | call to s42 [element] | -| semantics.rb:342:13:342:13 | h [element] | semantics.rb:342:9:342:14 | call to s42 [element] | -| semantics.rb:344:10:344:10 | x [element 0] | semantics.rb:344:10:344:13 | ...[...] | -| semantics.rb:344:10:344:10 | x [element 0] | semantics.rb:344:10:344:13 | ...[...] | -| semantics.rb:344:10:344:10 | x [element] | semantics.rb:344:10:344:13 | ...[...] | -| semantics.rb:344:10:344:10 | x [element] | semantics.rb:344:10:344:13 | ...[...] | +| semantics.rb:283:15:283:25 | call to source | semantics.rb:283:5:283:5 | [post] h [element true] | +| semantics.rb:283:15:283:25 | call to source | semantics.rb:283:5:283:5 | [post] h [element true] | +| semantics.rb:284:5:284:5 | [post] h [element false] | semantics.rb:286:14:286:14 | h [element false] | +| semantics.rb:284:5:284:5 | [post] h [element false] | semantics.rb:286:14:286:14 | h [element false] | +| semantics.rb:284:5:284:5 | [post] h [element nil] | semantics.rb:286:14:286:14 | h [element nil] | +| semantics.rb:284:5:284:5 | [post] h [element nil] | semantics.rb:286:14:286:14 | h [element nil] | +| semantics.rb:284:5:284:5 | [post] h [element true] | semantics.rb:286:14:286:14 | h [element true] | +| semantics.rb:284:5:284:5 | [post] h [element true] | semantics.rb:286:14:286:14 | h [element true] | +| semantics.rb:284:5:284:5 | [post] h [element] | semantics.rb:286:14:286:14 | h [element] | +| semantics.rb:284:5:284:5 | [post] h [element] | semantics.rb:286:14:286:14 | h [element] | +| semantics.rb:284:5:284:5 | h [element nil] | semantics.rb:284:5:284:5 | [post] h [element nil] | +| semantics.rb:284:5:284:5 | h [element nil] | semantics.rb:284:5:284:5 | [post] h [element nil] | +| semantics.rb:284:5:284:5 | h [element true] | semantics.rb:284:5:284:5 | [post] h [element true] | +| semantics.rb:284:5:284:5 | h [element true] | semantics.rb:284:5:284:5 | [post] h [element true] | +| semantics.rb:284:5:284:5 | h [element] | semantics.rb:284:5:284:5 | [post] h [element] | +| semantics.rb:284:5:284:5 | h [element] | semantics.rb:284:5:284:5 | [post] h [element] | +| semantics.rb:284:16:284:26 | call to source | semantics.rb:284:5:284:5 | [post] h [element false] | +| semantics.rb:284:16:284:26 | call to source | semantics.rb:284:5:284:5 | [post] h [element false] | +| semantics.rb:286:14:286:14 | h [element false] | semantics.rb:286:10:286:15 | call to s33 | +| semantics.rb:286:14:286:14 | h [element false] | semantics.rb:286:10:286:15 | call to s33 | +| semantics.rb:286:14:286:14 | h [element nil] | semantics.rb:286:10:286:15 | call to s33 | +| semantics.rb:286:14:286:14 | h [element nil] | semantics.rb:286:10:286:15 | call to s33 | +| semantics.rb:286:14:286:14 | h [element true] | semantics.rb:286:10:286:15 | call to s33 | +| semantics.rb:286:14:286:14 | h [element true] | semantics.rb:286:10:286:15 | call to s33 | +| semantics.rb:286:14:286:14 | h [element] | semantics.rb:286:10:286:15 | call to s33 | +| semantics.rb:286:14:286:14 | h [element] | semantics.rb:286:10:286:15 | call to s33 | +| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:291:10:291:10 | x [element :foo] | +| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:291:10:291:10 | x [element :foo] | +| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:293:10:293:10 | x [element :foo] | +| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:293:10:293:10 | x [element :foo] | +| semantics.rb:290:9:290:24 | call to s35 [element :foo] | semantics.rb:290:5:290:5 | x [element :foo] | +| semantics.rb:290:9:290:24 | call to s35 [element :foo] | semantics.rb:290:5:290:5 | x [element :foo] | +| semantics.rb:290:13:290:23 | call to source | semantics.rb:290:9:290:24 | call to s35 [element :foo] | +| semantics.rb:290:13:290:23 | call to source | semantics.rb:290:9:290:24 | call to s35 [element :foo] | +| semantics.rb:291:10:291:10 | x [element :foo] | semantics.rb:291:10:291:16 | ...[...] | +| semantics.rb:291:10:291:10 | x [element :foo] | semantics.rb:291:10:291:16 | ...[...] | +| semantics.rb:293:10:293:10 | x [element :foo] | semantics.rb:293:10:293:13 | ...[...] | +| semantics.rb:293:10:293:10 | x [element :foo] | semantics.rb:293:10:293:13 | ...[...] | +| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:299:10:299:10 | x [element foo] | +| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:299:10:299:10 | x [element foo] | +| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:301:10:301:10 | x [element foo] | +| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:301:10:301:10 | x [element foo] | +| semantics.rb:297:9:297:24 | call to s36 [element foo] | semantics.rb:297:5:297:5 | x [element foo] | +| semantics.rb:297:9:297:24 | call to s36 [element foo] | semantics.rb:297:5:297:5 | x [element foo] | +| semantics.rb:297:13:297:23 | call to source | semantics.rb:297:9:297:24 | call to s36 [element foo] | +| semantics.rb:297:13:297:23 | call to source | semantics.rb:297:9:297:24 | call to s36 [element foo] | +| semantics.rb:299:10:299:10 | x [element foo] | semantics.rb:299:10:299:17 | ...[...] | +| semantics.rb:299:10:299:10 | x [element foo] | semantics.rb:299:10:299:17 | ...[...] | +| semantics.rb:301:10:301:10 | x [element foo] | semantics.rb:301:10:301:13 | ...[...] | +| semantics.rb:301:10:301:10 | x [element foo] | semantics.rb:301:10:301:13 | ...[...] | +| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:307:10:307:10 | x [element true] | +| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:307:10:307:10 | x [element true] | +| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:309:10:309:10 | x [element true] | +| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:309:10:309:10 | x [element true] | +| semantics.rb:305:9:305:24 | call to s37 [element true] | semantics.rb:305:5:305:5 | x [element true] | +| semantics.rb:305:9:305:24 | call to s37 [element true] | semantics.rb:305:5:305:5 | x [element true] | +| semantics.rb:305:13:305:23 | call to source | semantics.rb:305:9:305:24 | call to s37 [element true] | +| semantics.rb:305:13:305:23 | call to source | semantics.rb:305:9:305:24 | call to s37 [element true] | +| semantics.rb:307:10:307:10 | x [element true] | semantics.rb:307:10:307:16 | ...[...] | +| semantics.rb:307:10:307:10 | x [element true] | semantics.rb:307:10:307:16 | ...[...] | +| semantics.rb:309:10:309:10 | x [element true] | semantics.rb:309:10:309:13 | ...[...] | +| semantics.rb:309:10:309:10 | x [element true] | semantics.rb:309:10:309:13 | ...[...] | +| semantics.rb:313:5:313:5 | [post] h [element foo] | semantics.rb:316:14:316:14 | h [element foo] | +| semantics.rb:313:5:313:5 | [post] h [element foo] | semantics.rb:316:14:316:14 | h [element foo] | +| semantics.rb:313:16:313:26 | call to source | semantics.rb:313:5:313:5 | [post] h [element foo] | +| semantics.rb:313:16:313:26 | call to source | semantics.rb:313:5:313:5 | [post] h [element foo] | +| semantics.rb:316:14:316:14 | h [element foo] | semantics.rb:316:10:316:15 | call to s38 | +| semantics.rb:316:14:316:14 | h [element foo] | semantics.rb:316:10:316:15 | call to s38 | +| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:322:10:322:10 | x [element :foo] | +| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:322:10:322:10 | x [element :foo] | +| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:323:10:323:10 | x [element :foo] | +| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:323:10:323:10 | x [element :foo] | +| semantics.rb:320:9:320:24 | call to s39 [element :foo] | semantics.rb:320:5:320:5 | x [element :foo] | +| semantics.rb:320:9:320:24 | call to s39 [element :foo] | semantics.rb:320:5:320:5 | x [element :foo] | +| semantics.rb:320:13:320:23 | call to source | semantics.rb:320:9:320:24 | call to s39 [element :foo] | +| semantics.rb:320:13:320:23 | call to source | semantics.rb:320:9:320:24 | call to s39 [element :foo] | +| semantics.rb:322:10:322:10 | x [element :foo] | semantics.rb:322:10:322:16 | ...[...] | +| semantics.rb:322:10:322:10 | x [element :foo] | semantics.rb:322:10:322:16 | ...[...] | +| semantics.rb:323:10:323:10 | x [element :foo] | semantics.rb:323:10:323:13 | ...[...] | +| semantics.rb:323:10:323:10 | x [element :foo] | semantics.rb:323:10:323:13 | ...[...] | +| semantics.rb:328:5:328:5 | [post] x [@foo] | semantics.rb:330:14:330:14 | x [@foo] | +| semantics.rb:328:5:328:5 | [post] x [@foo] | semantics.rb:330:14:330:14 | x [@foo] | +| semantics.rb:328:13:328:23 | call to source | semantics.rb:328:5:328:5 | [post] x [@foo] | +| semantics.rb:328:13:328:23 | call to source | semantics.rb:328:5:328:5 | [post] x [@foo] | +| semantics.rb:330:14:330:14 | x [@foo] | semantics.rb:330:10:330:15 | call to s40 | +| semantics.rb:330:14:330:14 | x [@foo] | semantics.rb:330:10:330:15 | call to s40 | +| semantics.rb:334:5:334:5 | x [@foo] | semantics.rb:335:10:335:10 | x [@foo] | +| semantics.rb:334:5:334:5 | x [@foo] | semantics.rb:335:10:335:10 | x [@foo] | +| semantics.rb:334:9:334:24 | call to s41 [@foo] | semantics.rb:334:5:334:5 | x [@foo] | +| semantics.rb:334:9:334:24 | call to s41 [@foo] | semantics.rb:334:5:334:5 | x [@foo] | +| semantics.rb:334:13:334:23 | call to source | semantics.rb:334:9:334:24 | call to s41 [@foo] | +| semantics.rb:334:13:334:23 | call to source | semantics.rb:334:9:334:24 | call to s41 [@foo] | +| semantics.rb:335:10:335:10 | x [@foo] | semantics.rb:335:10:335:14 | call to foo | +| semantics.rb:335:10:335:10 | x [@foo] | semantics.rb:335:10:335:14 | call to foo | +| semantics.rb:340:5:340:5 | [post] h [element 0] | semantics.rb:343:13:343:13 | h [element 0] | +| semantics.rb:340:5:340:5 | [post] h [element 0] | semantics.rb:343:13:343:13 | h [element 0] | +| semantics.rb:340:12:340:22 | call to source | semantics.rb:340:5:340:5 | [post] h [element 0] | +| semantics.rb:340:12:340:22 | call to source | semantics.rb:340:5:340:5 | [post] h [element 0] | +| semantics.rb:341:5:341:5 | [post] h [element] | semantics.rb:343:13:343:13 | h [element] | +| semantics.rb:341:5:341:5 | [post] h [element] | semantics.rb:343:13:343:13 | h [element] | +| semantics.rb:341:12:341:22 | call to source | semantics.rb:341:5:341:5 | [post] h [element] | +| semantics.rb:341:12:341:22 | call to source | semantics.rb:341:5:341:5 | [post] h [element] | +| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:345:10:345:10 | x [element 0] | +| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:345:10:345:10 | x [element 0] | +| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:347:10:347:10 | x [element 0] | +| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:347:10:347:10 | x [element 0] | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:345:10:345:10 | x [element] | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:345:10:345:10 | x [element] | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:346:10:346:10 | x [element] | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:346:10:346:10 | x [element] | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:347:10:347:10 | x [element] | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:347:10:347:10 | x [element] | +| semantics.rb:343:9:343:14 | call to s42 [element 0] | semantics.rb:343:5:343:5 | x [element 0] | +| semantics.rb:343:9:343:14 | call to s42 [element 0] | semantics.rb:343:5:343:5 | x [element 0] | +| semantics.rb:343:9:343:14 | call to s42 [element] | semantics.rb:343:5:343:5 | x [element] | +| semantics.rb:343:9:343:14 | call to s42 [element] | semantics.rb:343:5:343:5 | x [element] | +| semantics.rb:343:13:343:13 | h [element 0] | semantics.rb:343:9:343:14 | call to s42 [element 0] | +| semantics.rb:343:13:343:13 | h [element 0] | semantics.rb:343:9:343:14 | call to s42 [element 0] | +| semantics.rb:343:13:343:13 | h [element] | semantics.rb:343:9:343:14 | call to s42 [element] | +| semantics.rb:343:13:343:13 | h [element] | semantics.rb:343:9:343:14 | call to s42 [element] | +| semantics.rb:345:10:345:10 | x [element 0] | semantics.rb:345:10:345:13 | ...[...] | +| semantics.rb:345:10:345:10 | x [element 0] | semantics.rb:345:10:345:13 | ...[...] | | semantics.rb:345:10:345:10 | x [element] | semantics.rb:345:10:345:13 | ...[...] | | semantics.rb:345:10:345:10 | x [element] | semantics.rb:345:10:345:13 | ...[...] | -| semantics.rb:346:10:346:10 | x [element 0] | semantics.rb:346:10:346:13 | ...[...] | -| semantics.rb:346:10:346:10 | x [element 0] | semantics.rb:346:10:346:13 | ...[...] | | semantics.rb:346:10:346:10 | x [element] | semantics.rb:346:10:346:13 | ...[...] | | semantics.rb:346:10:346:10 | x [element] | semantics.rb:346:10:346:13 | ...[...] | -| semantics.rb:350:5:350:5 | [post] h [element 0] | semantics.rb:353:13:353:13 | h [element 0] | -| semantics.rb:350:5:350:5 | [post] h [element 0] | semantics.rb:353:13:353:13 | h [element 0] | -| semantics.rb:350:12:350:22 | call to source | semantics.rb:350:5:350:5 | [post] h [element 0] | -| semantics.rb:350:12:350:22 | call to source | semantics.rb:350:5:350:5 | [post] h [element 0] | -| semantics.rb:353:5:353:5 | x [element 0] | semantics.rb:355:10:355:10 | x [element 0] | -| semantics.rb:353:5:353:5 | x [element 0] | semantics.rb:355:10:355:10 | x [element 0] | -| semantics.rb:353:5:353:5 | x [element 0] | semantics.rb:357:10:357:10 | x [element 0] | -| semantics.rb:353:5:353:5 | x [element 0] | semantics.rb:357:10:357:10 | x [element 0] | -| semantics.rb:353:9:353:14 | call to s43 [element 0] | semantics.rb:353:5:353:5 | x [element 0] | -| semantics.rb:353:9:353:14 | call to s43 [element 0] | semantics.rb:353:5:353:5 | x [element 0] | -| semantics.rb:353:13:353:13 | h [element 0] | semantics.rb:353:9:353:14 | call to s43 [element 0] | -| semantics.rb:353:13:353:13 | h [element 0] | semantics.rb:353:9:353:14 | call to s43 [element 0] | -| semantics.rb:355:10:355:10 | x [element 0] | semantics.rb:355:10:355:13 | ...[...] | -| semantics.rb:355:10:355:10 | x [element 0] | semantics.rb:355:10:355:13 | ...[...] | -| semantics.rb:357:10:357:10 | x [element 0] | semantics.rb:357:10:357:13 | ...[...] | -| semantics.rb:357:10:357:10 | x [element 0] | semantics.rb:357:10:357:13 | ...[...] | -| semantics.rb:362:5:362:5 | [post] h [element 1] | semantics.rb:365:9:365:9 | h [element 1] | -| semantics.rb:362:5:362:5 | [post] h [element 1] | semantics.rb:365:9:365:9 | h [element 1] | -| semantics.rb:362:12:362:22 | call to source | semantics.rb:362:5:362:5 | [post] h [element 1] | -| semantics.rb:362:12:362:22 | call to source | semantics.rb:362:5:362:5 | [post] h [element 1] | -| semantics.rb:365:9:365:9 | [post] h [element 1] | semantics.rb:368:10:368:10 | h [element 1] | -| semantics.rb:365:9:365:9 | [post] h [element 1] | semantics.rb:368:10:368:10 | h [element 1] | -| semantics.rb:365:9:365:9 | [post] h [element 1] | semantics.rb:369:10:369:10 | h [element 1] | -| semantics.rb:365:9:365:9 | [post] h [element 1] | semantics.rb:369:10:369:10 | h [element 1] | -| semantics.rb:365:9:365:9 | h [element 1] | semantics.rb:365:9:365:9 | [post] h [element 1] | -| semantics.rb:365:9:365:9 | h [element 1] | semantics.rb:365:9:365:9 | [post] h [element 1] | -| semantics.rb:368:10:368:10 | h [element 1] | semantics.rb:368:10:368:13 | ...[...] | -| semantics.rb:368:10:368:10 | h [element 1] | semantics.rb:368:10:368:13 | ...[...] | +| semantics.rb:347:10:347:10 | x [element 0] | semantics.rb:347:10:347:13 | ...[...] | +| semantics.rb:347:10:347:10 | x [element 0] | semantics.rb:347:10:347:13 | ...[...] | +| semantics.rb:347:10:347:10 | x [element] | semantics.rb:347:10:347:13 | ...[...] | +| semantics.rb:347:10:347:10 | x [element] | semantics.rb:347:10:347:13 | ...[...] | +| semantics.rb:351:5:351:5 | [post] h [element 0] | semantics.rb:354:13:354:13 | h [element 0] | +| semantics.rb:351:5:351:5 | [post] h [element 0] | semantics.rb:354:13:354:13 | h [element 0] | +| semantics.rb:351:12:351:22 | call to source | semantics.rb:351:5:351:5 | [post] h [element 0] | +| semantics.rb:351:12:351:22 | call to source | semantics.rb:351:5:351:5 | [post] h [element 0] | +| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:356:10:356:10 | x [element 0] | +| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:356:10:356:10 | x [element 0] | +| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:358:10:358:10 | x [element 0] | +| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:358:10:358:10 | x [element 0] | +| semantics.rb:354:9:354:14 | call to s43 [element 0] | semantics.rb:354:5:354:5 | x [element 0] | +| semantics.rb:354:9:354:14 | call to s43 [element 0] | semantics.rb:354:5:354:5 | x [element 0] | +| semantics.rb:354:13:354:13 | h [element 0] | semantics.rb:354:9:354:14 | call to s43 [element 0] | +| semantics.rb:354:13:354:13 | h [element 0] | semantics.rb:354:9:354:14 | call to s43 [element 0] | +| semantics.rb:356:10:356:10 | x [element 0] | semantics.rb:356:10:356:13 | ...[...] | +| semantics.rb:356:10:356:10 | x [element 0] | semantics.rb:356:10:356:13 | ...[...] | +| semantics.rb:358:10:358:10 | x [element 0] | semantics.rb:358:10:358:13 | ...[...] | +| semantics.rb:358:10:358:10 | x [element 0] | semantics.rb:358:10:358:13 | ...[...] | +| semantics.rb:363:5:363:5 | [post] h [element 1] | semantics.rb:366:9:366:9 | h [element 1] | +| semantics.rb:363:5:363:5 | [post] h [element 1] | semantics.rb:366:9:366:9 | h [element 1] | +| semantics.rb:363:12:363:22 | call to source | semantics.rb:363:5:363:5 | [post] h [element 1] | +| semantics.rb:363:12:363:22 | call to source | semantics.rb:363:5:363:5 | [post] h [element 1] | +| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:369:10:369:10 | h [element 1] | +| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:369:10:369:10 | h [element 1] | +| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:370:10:370:10 | h [element 1] | +| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:370:10:370:10 | h [element 1] | +| semantics.rb:366:9:366:9 | h [element 1] | semantics.rb:366:9:366:9 | [post] h [element 1] | +| semantics.rb:366:9:366:9 | h [element 1] | semantics.rb:366:9:366:9 | [post] h [element 1] | | semantics.rb:369:10:369:10 | h [element 1] | semantics.rb:369:10:369:13 | ...[...] | | semantics.rb:369:10:369:10 | h [element 1] | semantics.rb:369:10:369:13 | ...[...] | -| semantics.rb:373:5:373:5 | [post] h [element 0] | semantics.rb:374:5:374:5 | h [element 0] | -| semantics.rb:373:5:373:5 | [post] h [element 0] | semantics.rb:374:5:374:5 | h [element 0] | -| semantics.rb:373:12:373:22 | call to source | semantics.rb:373:5:373:5 | [post] h [element 0] | -| semantics.rb:373:12:373:22 | call to source | semantics.rb:373:5:373:5 | [post] h [element 0] | -| semantics.rb:374:5:374:5 | [post] h [element 0] | semantics.rb:377:10:377:10 | h [element 0] | -| semantics.rb:374:5:374:5 | [post] h [element 0] | semantics.rb:377:10:377:10 | h [element 0] | -| semantics.rb:374:5:374:5 | [post] h [element 0] | semantics.rb:379:10:379:10 | h [element 0] | -| semantics.rb:374:5:374:5 | [post] h [element 0] | semantics.rb:379:10:379:10 | h [element 0] | -| semantics.rb:374:5:374:5 | [post] h [element 1] | semantics.rb:378:10:378:10 | h [element 1] | -| semantics.rb:374:5:374:5 | [post] h [element 1] | semantics.rb:378:10:378:10 | h [element 1] | -| semantics.rb:374:5:374:5 | [post] h [element 1] | semantics.rb:379:10:379:10 | h [element 1] | -| semantics.rb:374:5:374:5 | [post] h [element 1] | semantics.rb:379:10:379:10 | h [element 1] | -| semantics.rb:374:5:374:5 | [post] h [element 1] | semantics.rb:381:9:381:9 | h [element 1] | -| semantics.rb:374:5:374:5 | [post] h [element 1] | semantics.rb:381:9:381:9 | h [element 1] | -| semantics.rb:374:5:374:5 | h [element 0] | semantics.rb:374:5:374:5 | [post] h [element 0] | -| semantics.rb:374:5:374:5 | h [element 0] | semantics.rb:374:5:374:5 | [post] h [element 0] | -| semantics.rb:374:12:374:22 | call to source | semantics.rb:374:5:374:5 | [post] h [element 1] | -| semantics.rb:374:12:374:22 | call to source | semantics.rb:374:5:374:5 | [post] h [element 1] | -| semantics.rb:375:5:375:5 | [post] h [element] | semantics.rb:377:10:377:10 | h [element] | -| semantics.rb:375:5:375:5 | [post] h [element] | semantics.rb:377:10:377:10 | h [element] | -| semantics.rb:375:5:375:5 | [post] h [element] | semantics.rb:378:10:378:10 | h [element] | -| semantics.rb:375:5:375:5 | [post] h [element] | semantics.rb:378:10:378:10 | h [element] | -| semantics.rb:375:5:375:5 | [post] h [element] | semantics.rb:379:10:379:10 | h [element] | -| semantics.rb:375:5:375:5 | [post] h [element] | semantics.rb:379:10:379:10 | h [element] | -| semantics.rb:375:5:375:5 | [post] h [element] | semantics.rb:381:9:381:9 | h [element] | -| semantics.rb:375:5:375:5 | [post] h [element] | semantics.rb:381:9:381:9 | h [element] | -| semantics.rb:375:12:375:22 | call to source | semantics.rb:375:5:375:5 | [post] h [element] | -| semantics.rb:375:12:375:22 | call to source | semantics.rb:375:5:375:5 | [post] h [element] | -| semantics.rb:377:10:377:10 | h [element 0] | semantics.rb:377:10:377:13 | ...[...] | -| semantics.rb:377:10:377:10 | h [element 0] | semantics.rb:377:10:377:13 | ...[...] | -| semantics.rb:377:10:377:10 | h [element] | semantics.rb:377:10:377:13 | ...[...] | -| semantics.rb:377:10:377:10 | h [element] | semantics.rb:377:10:377:13 | ...[...] | -| semantics.rb:378:10:378:10 | h [element 1] | semantics.rb:378:10:378:13 | ...[...] | -| semantics.rb:378:10:378:10 | h [element 1] | semantics.rb:378:10:378:13 | ...[...] | +| semantics.rb:370:10:370:10 | h [element 1] | semantics.rb:370:10:370:13 | ...[...] | +| semantics.rb:370:10:370:10 | h [element 1] | semantics.rb:370:10:370:13 | ...[...] | +| semantics.rb:374:5:374:5 | [post] h [element 0] | semantics.rb:375:5:375:5 | h [element 0] | +| semantics.rb:374:5:374:5 | [post] h [element 0] | semantics.rb:375:5:375:5 | h [element 0] | +| semantics.rb:374:12:374:22 | call to source | semantics.rb:374:5:374:5 | [post] h [element 0] | +| semantics.rb:374:12:374:22 | call to source | semantics.rb:374:5:374:5 | [post] h [element 0] | +| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:378:10:378:10 | h [element 0] | +| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:378:10:378:10 | h [element 0] | +| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:380:10:380:10 | h [element 0] | +| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:380:10:380:10 | h [element 0] | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:379:10:379:10 | h [element 1] | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:379:10:379:10 | h [element 1] | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:380:10:380:10 | h [element 1] | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:380:10:380:10 | h [element 1] | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:382:9:382:9 | h [element 1] | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:382:9:382:9 | h [element 1] | +| semantics.rb:375:5:375:5 | h [element 0] | semantics.rb:375:5:375:5 | [post] h [element 0] | +| semantics.rb:375:5:375:5 | h [element 0] | semantics.rb:375:5:375:5 | [post] h [element 0] | +| semantics.rb:375:12:375:22 | call to source | semantics.rb:375:5:375:5 | [post] h [element 1] | +| semantics.rb:375:12:375:22 | call to source | semantics.rb:375:5:375:5 | [post] h [element 1] | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:378:10:378:10 | h [element] | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:378:10:378:10 | h [element] | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:379:10:379:10 | h [element] | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:379:10:379:10 | h [element] | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:380:10:380:10 | h [element] | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:380:10:380:10 | h [element] | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:382:9:382:9 | h [element] | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:382:9:382:9 | h [element] | +| semantics.rb:376:12:376:22 | call to source | semantics.rb:376:5:376:5 | [post] h [element] | +| semantics.rb:376:12:376:22 | call to source | semantics.rb:376:5:376:5 | [post] h [element] | +| semantics.rb:378:10:378:10 | h [element 0] | semantics.rb:378:10:378:13 | ...[...] | +| semantics.rb:378:10:378:10 | h [element 0] | semantics.rb:378:10:378:13 | ...[...] | | semantics.rb:378:10:378:10 | h [element] | semantics.rb:378:10:378:13 | ...[...] | | semantics.rb:378:10:378:10 | h [element] | semantics.rb:378:10:378:13 | ...[...] | -| semantics.rb:379:10:379:10 | h [element 0] | semantics.rb:379:10:379:13 | ...[...] | -| semantics.rb:379:10:379:10 | h [element 0] | semantics.rb:379:10:379:13 | ...[...] | | semantics.rb:379:10:379:10 | h [element 1] | semantics.rb:379:10:379:13 | ...[...] | | semantics.rb:379:10:379:10 | h [element 1] | semantics.rb:379:10:379:13 | ...[...] | | semantics.rb:379:10:379:10 | h [element] | semantics.rb:379:10:379:13 | ...[...] | | semantics.rb:379:10:379:10 | h [element] | semantics.rb:379:10:379:13 | ...[...] | -| semantics.rb:381:9:381:9 | [post] h [element 1] | semantics.rb:384:10:384:10 | h [element 1] | -| semantics.rb:381:9:381:9 | [post] h [element 1] | semantics.rb:384:10:384:10 | h [element 1] | -| semantics.rb:381:9:381:9 | [post] h [element 1] | semantics.rb:385:10:385:10 | h [element 1] | -| semantics.rb:381:9:381:9 | [post] h [element 1] | semantics.rb:385:10:385:10 | h [element 1] | -| semantics.rb:381:9:381:9 | [post] h [element] | semantics.rb:383:10:383:10 | h [element] | -| semantics.rb:381:9:381:9 | [post] h [element] | semantics.rb:383:10:383:10 | h [element] | -| semantics.rb:381:9:381:9 | [post] h [element] | semantics.rb:384:10:384:10 | h [element] | -| semantics.rb:381:9:381:9 | [post] h [element] | semantics.rb:384:10:384:10 | h [element] | -| semantics.rb:381:9:381:9 | [post] h [element] | semantics.rb:385:10:385:10 | h [element] | -| semantics.rb:381:9:381:9 | [post] h [element] | semantics.rb:385:10:385:10 | h [element] | -| semantics.rb:381:9:381:9 | h [element 1] | semantics.rb:381:9:381:9 | [post] h [element 1] | -| semantics.rb:381:9:381:9 | h [element 1] | semantics.rb:381:9:381:9 | [post] h [element 1] | -| semantics.rb:381:9:381:9 | h [element] | semantics.rb:381:9:381:9 | [post] h [element] | -| semantics.rb:381:9:381:9 | h [element] | semantics.rb:381:9:381:9 | [post] h [element] | -| semantics.rb:383:10:383:10 | h [element] | semantics.rb:383:10:383:13 | ...[...] | -| semantics.rb:383:10:383:10 | h [element] | semantics.rb:383:10:383:13 | ...[...] | -| semantics.rb:384:10:384:10 | h [element 1] | semantics.rb:384:10:384:13 | ...[...] | -| semantics.rb:384:10:384:10 | h [element 1] | semantics.rb:384:10:384:13 | ...[...] | +| semantics.rb:380:10:380:10 | h [element 0] | semantics.rb:380:10:380:13 | ...[...] | +| semantics.rb:380:10:380:10 | h [element 0] | semantics.rb:380:10:380:13 | ...[...] | +| semantics.rb:380:10:380:10 | h [element 1] | semantics.rb:380:10:380:13 | ...[...] | +| semantics.rb:380:10:380:10 | h [element 1] | semantics.rb:380:10:380:13 | ...[...] | +| semantics.rb:380:10:380:10 | h [element] | semantics.rb:380:10:380:13 | ...[...] | +| semantics.rb:380:10:380:10 | h [element] | semantics.rb:380:10:380:13 | ...[...] | +| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:385:10:385:10 | h [element 1] | +| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:385:10:385:10 | h [element 1] | +| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:386:10:386:10 | h [element 1] | +| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:386:10:386:10 | h [element 1] | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:384:10:384:10 | h [element] | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:384:10:384:10 | h [element] | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:385:10:385:10 | h [element] | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:385:10:385:10 | h [element] | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:386:10:386:10 | h [element] | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:386:10:386:10 | h [element] | +| semantics.rb:382:9:382:9 | h [element 1] | semantics.rb:382:9:382:9 | [post] h [element 1] | +| semantics.rb:382:9:382:9 | h [element 1] | semantics.rb:382:9:382:9 | [post] h [element 1] | +| semantics.rb:382:9:382:9 | h [element] | semantics.rb:382:9:382:9 | [post] h [element] | +| semantics.rb:382:9:382:9 | h [element] | semantics.rb:382:9:382:9 | [post] h [element] | | semantics.rb:384:10:384:10 | h [element] | semantics.rb:384:10:384:13 | ...[...] | | semantics.rb:384:10:384:10 | h [element] | semantics.rb:384:10:384:13 | ...[...] | | semantics.rb:385:10:385:10 | h [element 1] | semantics.rb:385:10:385:13 | ...[...] | | semantics.rb:385:10:385:10 | h [element 1] | semantics.rb:385:10:385:13 | ...[...] | | semantics.rb:385:10:385:10 | h [element] | semantics.rb:385:10:385:13 | ...[...] | | semantics.rb:385:10:385:10 | h [element] | semantics.rb:385:10:385:13 | ...[...] | -| semantics.rb:389:5:389:5 | [post] h [element 0] | semantics.rb:390:5:390:5 | h [element 0] | -| semantics.rb:389:5:389:5 | [post] h [element 0] | semantics.rb:390:5:390:5 | h [element 0] | -| semantics.rb:389:12:389:22 | call to source | semantics.rb:389:5:389:5 | [post] h [element 0] | -| semantics.rb:389:12:389:22 | call to source | semantics.rb:389:5:389:5 | [post] h [element 0] | -| semantics.rb:390:5:390:5 | [post] h [element 0] | semantics.rb:393:10:393:10 | h [element 0] | -| semantics.rb:390:5:390:5 | [post] h [element 0] | semantics.rb:393:10:393:10 | h [element 0] | -| semantics.rb:390:5:390:5 | [post] h [element 0] | semantics.rb:395:10:395:10 | h [element 0] | -| semantics.rb:390:5:390:5 | [post] h [element 0] | semantics.rb:395:10:395:10 | h [element 0] | -| semantics.rb:390:5:390:5 | [post] h [element 1] | semantics.rb:394:10:394:10 | h [element 1] | -| semantics.rb:390:5:390:5 | [post] h [element 1] | semantics.rb:394:10:394:10 | h [element 1] | -| semantics.rb:390:5:390:5 | [post] h [element 1] | semantics.rb:395:10:395:10 | h [element 1] | -| semantics.rb:390:5:390:5 | [post] h [element 1] | semantics.rb:395:10:395:10 | h [element 1] | -| semantics.rb:390:5:390:5 | [post] h [element 1] | semantics.rb:397:13:397:13 | h [element 1] | -| semantics.rb:390:5:390:5 | [post] h [element 1] | semantics.rb:397:13:397:13 | h [element 1] | -| semantics.rb:390:5:390:5 | h [element 0] | semantics.rb:390:5:390:5 | [post] h [element 0] | -| semantics.rb:390:5:390:5 | h [element 0] | semantics.rb:390:5:390:5 | [post] h [element 0] | -| semantics.rb:390:12:390:22 | call to source | semantics.rb:390:5:390:5 | [post] h [element 1] | -| semantics.rb:390:12:390:22 | call to source | semantics.rb:390:5:390:5 | [post] h [element 1] | -| semantics.rb:391:5:391:5 | [post] h [element] | semantics.rb:393:10:393:10 | h [element] | -| semantics.rb:391:5:391:5 | [post] h [element] | semantics.rb:393:10:393:10 | h [element] | -| semantics.rb:391:5:391:5 | [post] h [element] | semantics.rb:394:10:394:10 | h [element] | -| semantics.rb:391:5:391:5 | [post] h [element] | semantics.rb:394:10:394:10 | h [element] | -| semantics.rb:391:5:391:5 | [post] h [element] | semantics.rb:395:10:395:10 | h [element] | -| semantics.rb:391:5:391:5 | [post] h [element] | semantics.rb:395:10:395:10 | h [element] | -| semantics.rb:391:12:391:22 | call to source | semantics.rb:391:5:391:5 | [post] h [element] | -| semantics.rb:391:12:391:22 | call to source | semantics.rb:391:5:391:5 | [post] h [element] | -| semantics.rb:393:10:393:10 | h [element 0] | semantics.rb:393:10:393:13 | ...[...] | -| semantics.rb:393:10:393:10 | h [element 0] | semantics.rb:393:10:393:13 | ...[...] | -| semantics.rb:393:10:393:10 | h [element] | semantics.rb:393:10:393:13 | ...[...] | -| semantics.rb:393:10:393:10 | h [element] | semantics.rb:393:10:393:13 | ...[...] | -| semantics.rb:394:10:394:10 | h [element 1] | semantics.rb:394:10:394:13 | ...[...] | -| semantics.rb:394:10:394:10 | h [element 1] | semantics.rb:394:10:394:13 | ...[...] | +| semantics.rb:386:10:386:10 | h [element 1] | semantics.rb:386:10:386:13 | ...[...] | +| semantics.rb:386:10:386:10 | h [element 1] | semantics.rb:386:10:386:13 | ...[...] | +| semantics.rb:386:10:386:10 | h [element] | semantics.rb:386:10:386:13 | ...[...] | +| semantics.rb:386:10:386:10 | h [element] | semantics.rb:386:10:386:13 | ...[...] | +| semantics.rb:390:5:390:5 | [post] h [element 0] | semantics.rb:391:5:391:5 | h [element 0] | +| semantics.rb:390:5:390:5 | [post] h [element 0] | semantics.rb:391:5:391:5 | h [element 0] | +| semantics.rb:390:12:390:22 | call to source | semantics.rb:390:5:390:5 | [post] h [element 0] | +| semantics.rb:390:12:390:22 | call to source | semantics.rb:390:5:390:5 | [post] h [element 0] | +| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:394:10:394:10 | h [element 0] | +| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:394:10:394:10 | h [element 0] | +| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:396:10:396:10 | h [element 0] | +| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:396:10:396:10 | h [element 0] | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:395:10:395:10 | h [element 1] | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:395:10:395:10 | h [element 1] | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:396:10:396:10 | h [element 1] | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:396:10:396:10 | h [element 1] | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:398:13:398:13 | h [element 1] | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:398:13:398:13 | h [element 1] | +| semantics.rb:391:5:391:5 | h [element 0] | semantics.rb:391:5:391:5 | [post] h [element 0] | +| semantics.rb:391:5:391:5 | h [element 0] | semantics.rb:391:5:391:5 | [post] h [element 0] | +| semantics.rb:391:12:391:22 | call to source | semantics.rb:391:5:391:5 | [post] h [element 1] | +| semantics.rb:391:12:391:22 | call to source | semantics.rb:391:5:391:5 | [post] h [element 1] | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:394:10:394:10 | h [element] | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:394:10:394:10 | h [element] | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:395:10:395:10 | h [element] | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:395:10:395:10 | h [element] | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:396:10:396:10 | h [element] | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:396:10:396:10 | h [element] | +| semantics.rb:392:12:392:22 | call to source | semantics.rb:392:5:392:5 | [post] h [element] | +| semantics.rb:392:12:392:22 | call to source | semantics.rb:392:5:392:5 | [post] h [element] | +| semantics.rb:394:10:394:10 | h [element 0] | semantics.rb:394:10:394:13 | ...[...] | +| semantics.rb:394:10:394:10 | h [element 0] | semantics.rb:394:10:394:13 | ...[...] | | semantics.rb:394:10:394:10 | h [element] | semantics.rb:394:10:394:13 | ...[...] | | semantics.rb:394:10:394:10 | h [element] | semantics.rb:394:10:394:13 | ...[...] | -| semantics.rb:395:10:395:10 | h [element 0] | semantics.rb:395:10:395:13 | ...[...] | -| semantics.rb:395:10:395:10 | h [element 0] | semantics.rb:395:10:395:13 | ...[...] | | semantics.rb:395:10:395:10 | h [element 1] | semantics.rb:395:10:395:13 | ...[...] | | semantics.rb:395:10:395:10 | h [element 1] | semantics.rb:395:10:395:13 | ...[...] | | semantics.rb:395:10:395:10 | h [element] | semantics.rb:395:10:395:13 | ...[...] | | semantics.rb:395:10:395:10 | h [element] | semantics.rb:395:10:395:13 | ...[...] | -| semantics.rb:397:5:397:5 | x [element 1] | semantics.rb:400:10:400:10 | x [element 1] | -| semantics.rb:397:5:397:5 | x [element 1] | semantics.rb:400:10:400:10 | x [element 1] | -| semantics.rb:397:5:397:5 | x [element 1] | semantics.rb:401:10:401:10 | x [element 1] | -| semantics.rb:397:5:397:5 | x [element 1] | semantics.rb:401:10:401:10 | x [element 1] | -| semantics.rb:397:9:397:14 | call to s46 [element 1] | semantics.rb:397:5:397:5 | x [element 1] | -| semantics.rb:397:9:397:14 | call to s46 [element 1] | semantics.rb:397:5:397:5 | x [element 1] | -| semantics.rb:397:13:397:13 | h [element 1] | semantics.rb:397:9:397:14 | call to s46 [element 1] | -| semantics.rb:397:13:397:13 | h [element 1] | semantics.rb:397:9:397:14 | call to s46 [element 1] | -| semantics.rb:400:10:400:10 | x [element 1] | semantics.rb:400:10:400:13 | ...[...] | -| semantics.rb:400:10:400:10 | x [element 1] | semantics.rb:400:10:400:13 | ...[...] | +| semantics.rb:396:10:396:10 | h [element 0] | semantics.rb:396:10:396:13 | ...[...] | +| semantics.rb:396:10:396:10 | h [element 0] | semantics.rb:396:10:396:13 | ...[...] | +| semantics.rb:396:10:396:10 | h [element 1] | semantics.rb:396:10:396:13 | ...[...] | +| semantics.rb:396:10:396:10 | h [element 1] | semantics.rb:396:10:396:13 | ...[...] | +| semantics.rb:396:10:396:10 | h [element] | semantics.rb:396:10:396:13 | ...[...] | +| semantics.rb:396:10:396:10 | h [element] | semantics.rb:396:10:396:13 | ...[...] | +| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:401:10:401:10 | x [element 1] | +| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:401:10:401:10 | x [element 1] | +| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:402:10:402:10 | x [element 1] | +| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:402:10:402:10 | x [element 1] | +| semantics.rb:398:9:398:14 | call to s46 [element 1] | semantics.rb:398:5:398:5 | x [element 1] | +| semantics.rb:398:9:398:14 | call to s46 [element 1] | semantics.rb:398:5:398:5 | x [element 1] | +| semantics.rb:398:13:398:13 | h [element 1] | semantics.rb:398:9:398:14 | call to s46 [element 1] | +| semantics.rb:398:13:398:13 | h [element 1] | semantics.rb:398:9:398:14 | call to s46 [element 1] | | semantics.rb:401:10:401:10 | x [element 1] | semantics.rb:401:10:401:13 | ...[...] | | semantics.rb:401:10:401:10 | x [element 1] | semantics.rb:401:10:401:13 | ...[...] | -| semantics.rb:405:5:405:5 | [post] h [element :foo] | semantics.rb:406:5:406:5 | h [element :foo] | -| semantics.rb:405:5:405:5 | [post] h [element :foo] | semantics.rb:406:5:406:5 | h [element :foo] | -| semantics.rb:405:15:405:25 | call to source | semantics.rb:405:5:405:5 | [post] h [element :foo] | -| semantics.rb:405:15:405:25 | call to source | semantics.rb:405:5:405:5 | [post] h [element :foo] | -| semantics.rb:406:5:406:5 | [post] h [element :bar] | semantics.rb:410:10:410:10 | h [element :bar] | -| semantics.rb:406:5:406:5 | [post] h [element :bar] | semantics.rb:410:10:410:10 | h [element :bar] | -| semantics.rb:406:5:406:5 | [post] h [element :bar] | semantics.rb:412:13:412:13 | h [element :bar] | -| semantics.rb:406:5:406:5 | [post] h [element :bar] | semantics.rb:412:13:412:13 | h [element :bar] | -| semantics.rb:406:5:406:5 | [post] h [element :foo] | semantics.rb:409:10:409:10 | h [element :foo] | -| semantics.rb:406:5:406:5 | [post] h [element :foo] | semantics.rb:409:10:409:10 | h [element :foo] | -| semantics.rb:406:5:406:5 | h [element :foo] | semantics.rb:406:5:406:5 | [post] h [element :foo] | -| semantics.rb:406:5:406:5 | h [element :foo] | semantics.rb:406:5:406:5 | [post] h [element :foo] | -| semantics.rb:406:15:406:25 | call to source | semantics.rb:406:5:406:5 | [post] h [element :bar] | -| semantics.rb:406:15:406:25 | call to source | semantics.rb:406:5:406:5 | [post] h [element :bar] | -| semantics.rb:407:5:407:5 | [post] h [element] | semantics.rb:409:10:409:10 | h [element] | -| semantics.rb:407:5:407:5 | [post] h [element] | semantics.rb:409:10:409:10 | h [element] | -| semantics.rb:407:5:407:5 | [post] h [element] | semantics.rb:410:10:410:10 | h [element] | -| semantics.rb:407:5:407:5 | [post] h [element] | semantics.rb:410:10:410:10 | h [element] | -| semantics.rb:407:12:407:22 | call to source | semantics.rb:407:5:407:5 | [post] h [element] | -| semantics.rb:407:12:407:22 | call to source | semantics.rb:407:5:407:5 | [post] h [element] | -| semantics.rb:409:10:409:10 | h [element :foo] | semantics.rb:409:10:409:16 | ...[...] | -| semantics.rb:409:10:409:10 | h [element :foo] | semantics.rb:409:10:409:16 | ...[...] | -| semantics.rb:409:10:409:10 | h [element] | semantics.rb:409:10:409:16 | ...[...] | -| semantics.rb:409:10:409:10 | h [element] | semantics.rb:409:10:409:16 | ...[...] | -| semantics.rb:410:10:410:10 | h [element :bar] | semantics.rb:410:10:410:16 | ...[...] | -| semantics.rb:410:10:410:10 | h [element :bar] | semantics.rb:410:10:410:16 | ...[...] | +| semantics.rb:402:10:402:10 | x [element 1] | semantics.rb:402:10:402:13 | ...[...] | +| semantics.rb:402:10:402:10 | x [element 1] | semantics.rb:402:10:402:13 | ...[...] | +| semantics.rb:406:5:406:5 | [post] h [element :foo] | semantics.rb:407:5:407:5 | h [element :foo] | +| semantics.rb:406:5:406:5 | [post] h [element :foo] | semantics.rb:407:5:407:5 | h [element :foo] | +| semantics.rb:406:15:406:25 | call to source | semantics.rb:406:5:406:5 | [post] h [element :foo] | +| semantics.rb:406:15:406:25 | call to source | semantics.rb:406:5:406:5 | [post] h [element :foo] | +| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:411:10:411:10 | h [element :bar] | +| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:411:10:411:10 | h [element :bar] | +| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:413:13:413:13 | h [element :bar] | +| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:413:13:413:13 | h [element :bar] | +| semantics.rb:407:5:407:5 | [post] h [element :foo] | semantics.rb:410:10:410:10 | h [element :foo] | +| semantics.rb:407:5:407:5 | [post] h [element :foo] | semantics.rb:410:10:410:10 | h [element :foo] | +| semantics.rb:407:5:407:5 | h [element :foo] | semantics.rb:407:5:407:5 | [post] h [element :foo] | +| semantics.rb:407:5:407:5 | h [element :foo] | semantics.rb:407:5:407:5 | [post] h [element :foo] | +| semantics.rb:407:15:407:25 | call to source | semantics.rb:407:5:407:5 | [post] h [element :bar] | +| semantics.rb:407:15:407:25 | call to source | semantics.rb:407:5:407:5 | [post] h [element :bar] | +| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:410:10:410:10 | h [element] | +| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:410:10:410:10 | h [element] | +| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:411:10:411:10 | h [element] | +| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:411:10:411:10 | h [element] | +| semantics.rb:408:12:408:22 | call to source | semantics.rb:408:5:408:5 | [post] h [element] | +| semantics.rb:408:12:408:22 | call to source | semantics.rb:408:5:408:5 | [post] h [element] | +| semantics.rb:410:10:410:10 | h [element :foo] | semantics.rb:410:10:410:16 | ...[...] | +| semantics.rb:410:10:410:10 | h [element :foo] | semantics.rb:410:10:410:16 | ...[...] | | semantics.rb:410:10:410:10 | h [element] | semantics.rb:410:10:410:16 | ...[...] | | semantics.rb:410:10:410:10 | h [element] | semantics.rb:410:10:410:16 | ...[...] | -| semantics.rb:412:5:412:5 | x [element :bar] | semantics.rb:415:10:415:10 | x [element :bar] | -| semantics.rb:412:5:412:5 | x [element :bar] | semantics.rb:415:10:415:10 | x [element :bar] | -| semantics.rb:412:9:412:14 | call to s47 [element :bar] | semantics.rb:412:5:412:5 | x [element :bar] | -| semantics.rb:412:9:412:14 | call to s47 [element :bar] | semantics.rb:412:5:412:5 | x [element :bar] | -| semantics.rb:412:13:412:13 | h [element :bar] | semantics.rb:412:9:412:14 | call to s47 [element :bar] | -| semantics.rb:412:13:412:13 | h [element :bar] | semantics.rb:412:9:412:14 | call to s47 [element :bar] | -| semantics.rb:415:10:415:10 | x [element :bar] | semantics.rb:415:10:415:16 | ...[...] | -| semantics.rb:415:10:415:10 | x [element :bar] | semantics.rb:415:10:415:16 | ...[...] | -| semantics.rb:419:5:419:5 | [post] h [element :foo] | semantics.rb:420:5:420:5 | h [element :foo] | -| semantics.rb:419:5:419:5 | [post] h [element :foo] | semantics.rb:420:5:420:5 | h [element :foo] | -| semantics.rb:419:15:419:25 | call to source | semantics.rb:419:5:419:5 | [post] h [element :foo] | -| semantics.rb:419:15:419:25 | call to source | semantics.rb:419:5:419:5 | [post] h [element :foo] | -| semantics.rb:420:5:420:5 | [post] h [element :bar] | semantics.rb:424:10:424:10 | h [element :bar] | -| semantics.rb:420:5:420:5 | [post] h [element :bar] | semantics.rb:424:10:424:10 | h [element :bar] | -| semantics.rb:420:5:420:5 | [post] h [element :bar] | semantics.rb:426:13:426:13 | h [element :bar] | -| semantics.rb:420:5:420:5 | [post] h [element :bar] | semantics.rb:426:13:426:13 | h [element :bar] | -| semantics.rb:420:5:420:5 | [post] h [element :foo] | semantics.rb:423:10:423:10 | h [element :foo] | -| semantics.rb:420:5:420:5 | [post] h [element :foo] | semantics.rb:423:10:423:10 | h [element :foo] | -| semantics.rb:420:5:420:5 | h [element :foo] | semantics.rb:420:5:420:5 | [post] h [element :foo] | -| semantics.rb:420:5:420:5 | h [element :foo] | semantics.rb:420:5:420:5 | [post] h [element :foo] | -| semantics.rb:420:15:420:25 | call to source | semantics.rb:420:5:420:5 | [post] h [element :bar] | -| semantics.rb:420:15:420:25 | call to source | semantics.rb:420:5:420:5 | [post] h [element :bar] | -| semantics.rb:421:5:421:5 | [post] h [element] | semantics.rb:423:10:423:10 | h [element] | -| semantics.rb:421:5:421:5 | [post] h [element] | semantics.rb:423:10:423:10 | h [element] | -| semantics.rb:421:5:421:5 | [post] h [element] | semantics.rb:424:10:424:10 | h [element] | -| semantics.rb:421:5:421:5 | [post] h [element] | semantics.rb:424:10:424:10 | h [element] | -| semantics.rb:421:12:421:22 | call to source | semantics.rb:421:5:421:5 | [post] h [element] | -| semantics.rb:421:12:421:22 | call to source | semantics.rb:421:5:421:5 | [post] h [element] | -| semantics.rb:423:10:423:10 | h [element :foo] | semantics.rb:423:10:423:16 | ...[...] | -| semantics.rb:423:10:423:10 | h [element :foo] | semantics.rb:423:10:423:16 | ...[...] | -| semantics.rb:423:10:423:10 | h [element] | semantics.rb:423:10:423:16 | ...[...] | -| semantics.rb:423:10:423:10 | h [element] | semantics.rb:423:10:423:16 | ...[...] | -| semantics.rb:424:10:424:10 | h [element :bar] | semantics.rb:424:10:424:16 | ...[...] | -| semantics.rb:424:10:424:10 | h [element :bar] | semantics.rb:424:10:424:16 | ...[...] | +| semantics.rb:411:10:411:10 | h [element :bar] | semantics.rb:411:10:411:16 | ...[...] | +| semantics.rb:411:10:411:10 | h [element :bar] | semantics.rb:411:10:411:16 | ...[...] | +| semantics.rb:411:10:411:10 | h [element] | semantics.rb:411:10:411:16 | ...[...] | +| semantics.rb:411:10:411:10 | h [element] | semantics.rb:411:10:411:16 | ...[...] | +| semantics.rb:413:5:413:5 | x [element :bar] | semantics.rb:416:10:416:10 | x [element :bar] | +| semantics.rb:413:5:413:5 | x [element :bar] | semantics.rb:416:10:416:10 | x [element :bar] | +| semantics.rb:413:9:413:14 | call to s47 [element :bar] | semantics.rb:413:5:413:5 | x [element :bar] | +| semantics.rb:413:9:413:14 | call to s47 [element :bar] | semantics.rb:413:5:413:5 | x [element :bar] | +| semantics.rb:413:13:413:13 | h [element :bar] | semantics.rb:413:9:413:14 | call to s47 [element :bar] | +| semantics.rb:413:13:413:13 | h [element :bar] | semantics.rb:413:9:413:14 | call to s47 [element :bar] | +| semantics.rb:416:10:416:10 | x [element :bar] | semantics.rb:416:10:416:16 | ...[...] | +| semantics.rb:416:10:416:10 | x [element :bar] | semantics.rb:416:10:416:16 | ...[...] | +| semantics.rb:420:5:420:5 | [post] h [element :foo] | semantics.rb:421:5:421:5 | h [element :foo] | +| semantics.rb:420:5:420:5 | [post] h [element :foo] | semantics.rb:421:5:421:5 | h [element :foo] | +| semantics.rb:420:15:420:25 | call to source | semantics.rb:420:5:420:5 | [post] h [element :foo] | +| semantics.rb:420:15:420:25 | call to source | semantics.rb:420:5:420:5 | [post] h [element :foo] | +| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:425:10:425:10 | h [element :bar] | +| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:425:10:425:10 | h [element :bar] | +| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:427:13:427:13 | h [element :bar] | +| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:427:13:427:13 | h [element :bar] | +| semantics.rb:421:5:421:5 | [post] h [element :foo] | semantics.rb:424:10:424:10 | h [element :foo] | +| semantics.rb:421:5:421:5 | [post] h [element :foo] | semantics.rb:424:10:424:10 | h [element :foo] | +| semantics.rb:421:5:421:5 | h [element :foo] | semantics.rb:421:5:421:5 | [post] h [element :foo] | +| semantics.rb:421:5:421:5 | h [element :foo] | semantics.rb:421:5:421:5 | [post] h [element :foo] | +| semantics.rb:421:15:421:25 | call to source | semantics.rb:421:5:421:5 | [post] h [element :bar] | +| semantics.rb:421:15:421:25 | call to source | semantics.rb:421:5:421:5 | [post] h [element :bar] | +| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:424:10:424:10 | h [element] | +| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:424:10:424:10 | h [element] | +| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:425:10:425:10 | h [element] | +| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:425:10:425:10 | h [element] | +| semantics.rb:422:12:422:22 | call to source | semantics.rb:422:5:422:5 | [post] h [element] | +| semantics.rb:422:12:422:22 | call to source | semantics.rb:422:5:422:5 | [post] h [element] | +| semantics.rb:424:10:424:10 | h [element :foo] | semantics.rb:424:10:424:16 | ...[...] | +| semantics.rb:424:10:424:10 | h [element :foo] | semantics.rb:424:10:424:16 | ...[...] | | semantics.rb:424:10:424:10 | h [element] | semantics.rb:424:10:424:16 | ...[...] | | semantics.rb:424:10:424:10 | h [element] | semantics.rb:424:10:424:16 | ...[...] | -| semantics.rb:426:5:426:5 | x [element :bar] | semantics.rb:429:10:429:10 | x [element :bar] | -| semantics.rb:426:5:426:5 | x [element :bar] | semantics.rb:429:10:429:10 | x [element :bar] | -| semantics.rb:426:9:426:14 | call to s48 [element :bar] | semantics.rb:426:5:426:5 | x [element :bar] | -| semantics.rb:426:9:426:14 | call to s48 [element :bar] | semantics.rb:426:5:426:5 | x [element :bar] | -| semantics.rb:426:13:426:13 | h [element :bar] | semantics.rb:426:9:426:14 | call to s48 [element :bar] | -| semantics.rb:426:13:426:13 | h [element :bar] | semantics.rb:426:9:426:14 | call to s48 [element :bar] | -| semantics.rb:429:10:429:10 | x [element :bar] | semantics.rb:429:10:429:16 | ...[...] | -| semantics.rb:429:10:429:10 | x [element :bar] | semantics.rb:429:10:429:16 | ...[...] | -| semantics.rb:433:5:433:5 | [post] h [element :foo] | semantics.rb:434:5:434:5 | h [element :foo] | -| semantics.rb:433:5:433:5 | [post] h [element :foo] | semantics.rb:434:5:434:5 | h [element :foo] | -| semantics.rb:433:15:433:25 | call to source | semantics.rb:433:5:433:5 | [post] h [element :foo] | -| semantics.rb:433:15:433:25 | call to source | semantics.rb:433:5:433:5 | [post] h [element :foo] | -| semantics.rb:434:5:434:5 | [post] h [element :bar] | semantics.rb:438:10:438:10 | h [element :bar] | -| semantics.rb:434:5:434:5 | [post] h [element :bar] | semantics.rb:438:10:438:10 | h [element :bar] | -| semantics.rb:434:5:434:5 | [post] h [element :bar] | semantics.rb:440:13:440:13 | h [element :bar] | -| semantics.rb:434:5:434:5 | [post] h [element :bar] | semantics.rb:440:13:440:13 | h [element :bar] | -| semantics.rb:434:5:434:5 | [post] h [element :foo] | semantics.rb:437:10:437:10 | h [element :foo] | -| semantics.rb:434:5:434:5 | [post] h [element :foo] | semantics.rb:437:10:437:10 | h [element :foo] | -| semantics.rb:434:5:434:5 | h [element :foo] | semantics.rb:434:5:434:5 | [post] h [element :foo] | -| semantics.rb:434:5:434:5 | h [element :foo] | semantics.rb:434:5:434:5 | [post] h [element :foo] | -| semantics.rb:434:15:434:25 | call to source | semantics.rb:434:5:434:5 | [post] h [element :bar] | -| semantics.rb:434:15:434:25 | call to source | semantics.rb:434:5:434:5 | [post] h [element :bar] | -| semantics.rb:435:5:435:5 | [post] h [element] | semantics.rb:437:10:437:10 | h [element] | -| semantics.rb:435:5:435:5 | [post] h [element] | semantics.rb:437:10:437:10 | h [element] | -| semantics.rb:435:5:435:5 | [post] h [element] | semantics.rb:438:10:438:10 | h [element] | -| semantics.rb:435:5:435:5 | [post] h [element] | semantics.rb:438:10:438:10 | h [element] | -| semantics.rb:435:5:435:5 | [post] h [element] | semantics.rb:440:13:440:13 | h [element] | -| semantics.rb:435:5:435:5 | [post] h [element] | semantics.rb:440:13:440:13 | h [element] | -| semantics.rb:435:12:435:22 | call to source | semantics.rb:435:5:435:5 | [post] h [element] | -| semantics.rb:435:12:435:22 | call to source | semantics.rb:435:5:435:5 | [post] h [element] | -| semantics.rb:437:10:437:10 | h [element :foo] | semantics.rb:437:10:437:16 | ...[...] | -| semantics.rb:437:10:437:10 | h [element :foo] | semantics.rb:437:10:437:16 | ...[...] | -| semantics.rb:437:10:437:10 | h [element] | semantics.rb:437:10:437:16 | ...[...] | -| semantics.rb:437:10:437:10 | h [element] | semantics.rb:437:10:437:16 | ...[...] | -| semantics.rb:438:10:438:10 | h [element :bar] | semantics.rb:438:10:438:16 | ...[...] | -| semantics.rb:438:10:438:10 | h [element :bar] | semantics.rb:438:10:438:16 | ...[...] | +| semantics.rb:425:10:425:10 | h [element :bar] | semantics.rb:425:10:425:16 | ...[...] | +| semantics.rb:425:10:425:10 | h [element :bar] | semantics.rb:425:10:425:16 | ...[...] | +| semantics.rb:425:10:425:10 | h [element] | semantics.rb:425:10:425:16 | ...[...] | +| semantics.rb:425:10:425:10 | h [element] | semantics.rb:425:10:425:16 | ...[...] | +| semantics.rb:427:5:427:5 | x [element :bar] | semantics.rb:430:10:430:10 | x [element :bar] | +| semantics.rb:427:5:427:5 | x [element :bar] | semantics.rb:430:10:430:10 | x [element :bar] | +| semantics.rb:427:9:427:14 | call to s48 [element :bar] | semantics.rb:427:5:427:5 | x [element :bar] | +| semantics.rb:427:9:427:14 | call to s48 [element :bar] | semantics.rb:427:5:427:5 | x [element :bar] | +| semantics.rb:427:13:427:13 | h [element :bar] | semantics.rb:427:9:427:14 | call to s48 [element :bar] | +| semantics.rb:427:13:427:13 | h [element :bar] | semantics.rb:427:9:427:14 | call to s48 [element :bar] | +| semantics.rb:430:10:430:10 | x [element :bar] | semantics.rb:430:10:430:16 | ...[...] | +| semantics.rb:430:10:430:10 | x [element :bar] | semantics.rb:430:10:430:16 | ...[...] | +| semantics.rb:434:5:434:5 | [post] h [element :foo] | semantics.rb:435:5:435:5 | h [element :foo] | +| semantics.rb:434:5:434:5 | [post] h [element :foo] | semantics.rb:435:5:435:5 | h [element :foo] | +| semantics.rb:434:15:434:25 | call to source | semantics.rb:434:5:434:5 | [post] h [element :foo] | +| semantics.rb:434:15:434:25 | call to source | semantics.rb:434:5:434:5 | [post] h [element :foo] | +| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:439:10:439:10 | h [element :bar] | +| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:439:10:439:10 | h [element :bar] | +| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:441:13:441:13 | h [element :bar] | +| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:441:13:441:13 | h [element :bar] | +| semantics.rb:435:5:435:5 | [post] h [element :foo] | semantics.rb:438:10:438:10 | h [element :foo] | +| semantics.rb:435:5:435:5 | [post] h [element :foo] | semantics.rb:438:10:438:10 | h [element :foo] | +| semantics.rb:435:5:435:5 | h [element :foo] | semantics.rb:435:5:435:5 | [post] h [element :foo] | +| semantics.rb:435:5:435:5 | h [element :foo] | semantics.rb:435:5:435:5 | [post] h [element :foo] | +| semantics.rb:435:15:435:25 | call to source | semantics.rb:435:5:435:5 | [post] h [element :bar] | +| semantics.rb:435:15:435:25 | call to source | semantics.rb:435:5:435:5 | [post] h [element :bar] | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:438:10:438:10 | h [element] | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:438:10:438:10 | h [element] | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:439:10:439:10 | h [element] | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:439:10:439:10 | h [element] | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:441:13:441:13 | h [element] | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:441:13:441:13 | h [element] | +| semantics.rb:436:12:436:22 | call to source | semantics.rb:436:5:436:5 | [post] h [element] | +| semantics.rb:436:12:436:22 | call to source | semantics.rb:436:5:436:5 | [post] h [element] | +| semantics.rb:438:10:438:10 | h [element :foo] | semantics.rb:438:10:438:16 | ...[...] | +| semantics.rb:438:10:438:10 | h [element :foo] | semantics.rb:438:10:438:16 | ...[...] | | semantics.rb:438:10:438:10 | h [element] | semantics.rb:438:10:438:16 | ...[...] | | semantics.rb:438:10:438:10 | h [element] | semantics.rb:438:10:438:16 | ...[...] | -| semantics.rb:440:5:440:5 | x [element :bar] | semantics.rb:443:10:443:10 | x [element :bar] | -| semantics.rb:440:5:440:5 | x [element :bar] | semantics.rb:443:10:443:10 | x [element :bar] | -| semantics.rb:440:5:440:5 | x [element] | semantics.rb:442:10:442:10 | x [element] | -| semantics.rb:440:5:440:5 | x [element] | semantics.rb:442:10:442:10 | x [element] | -| semantics.rb:440:5:440:5 | x [element] | semantics.rb:443:10:443:10 | x [element] | -| semantics.rb:440:5:440:5 | x [element] | semantics.rb:443:10:443:10 | x [element] | -| semantics.rb:440:9:440:14 | call to s49 [element :bar] | semantics.rb:440:5:440:5 | x [element :bar] | -| semantics.rb:440:9:440:14 | call to s49 [element :bar] | semantics.rb:440:5:440:5 | x [element :bar] | -| semantics.rb:440:9:440:14 | call to s49 [element] | semantics.rb:440:5:440:5 | x [element] | -| semantics.rb:440:9:440:14 | call to s49 [element] | semantics.rb:440:5:440:5 | x [element] | -| semantics.rb:440:13:440:13 | h [element :bar] | semantics.rb:440:9:440:14 | call to s49 [element :bar] | -| semantics.rb:440:13:440:13 | h [element :bar] | semantics.rb:440:9:440:14 | call to s49 [element :bar] | -| semantics.rb:440:13:440:13 | h [element] | semantics.rb:440:9:440:14 | call to s49 [element] | -| semantics.rb:440:13:440:13 | h [element] | semantics.rb:440:9:440:14 | call to s49 [element] | -| semantics.rb:442:10:442:10 | x [element] | semantics.rb:442:10:442:16 | ...[...] | -| semantics.rb:442:10:442:10 | x [element] | semantics.rb:442:10:442:16 | ...[...] | -| semantics.rb:443:10:443:10 | x [element :bar] | semantics.rb:443:10:443:16 | ...[...] | -| semantics.rb:443:10:443:10 | x [element :bar] | semantics.rb:443:10:443:16 | ...[...] | +| semantics.rb:439:10:439:10 | h [element :bar] | semantics.rb:439:10:439:16 | ...[...] | +| semantics.rb:439:10:439:10 | h [element :bar] | semantics.rb:439:10:439:16 | ...[...] | +| semantics.rb:439:10:439:10 | h [element] | semantics.rb:439:10:439:16 | ...[...] | +| semantics.rb:439:10:439:10 | h [element] | semantics.rb:439:10:439:16 | ...[...] | +| semantics.rb:441:5:441:5 | x [element :bar] | semantics.rb:444:10:444:10 | x [element :bar] | +| semantics.rb:441:5:441:5 | x [element :bar] | semantics.rb:444:10:444:10 | x [element :bar] | +| semantics.rb:441:5:441:5 | x [element] | semantics.rb:443:10:443:10 | x [element] | +| semantics.rb:441:5:441:5 | x [element] | semantics.rb:443:10:443:10 | x [element] | +| semantics.rb:441:5:441:5 | x [element] | semantics.rb:444:10:444:10 | x [element] | +| semantics.rb:441:5:441:5 | x [element] | semantics.rb:444:10:444:10 | x [element] | +| semantics.rb:441:9:441:14 | call to s49 [element :bar] | semantics.rb:441:5:441:5 | x [element :bar] | +| semantics.rb:441:9:441:14 | call to s49 [element :bar] | semantics.rb:441:5:441:5 | x [element :bar] | +| semantics.rb:441:9:441:14 | call to s49 [element] | semantics.rb:441:5:441:5 | x [element] | +| semantics.rb:441:9:441:14 | call to s49 [element] | semantics.rb:441:5:441:5 | x [element] | +| semantics.rb:441:13:441:13 | h [element :bar] | semantics.rb:441:9:441:14 | call to s49 [element :bar] | +| semantics.rb:441:13:441:13 | h [element :bar] | semantics.rb:441:9:441:14 | call to s49 [element :bar] | +| semantics.rb:441:13:441:13 | h [element] | semantics.rb:441:9:441:14 | call to s49 [element] | +| semantics.rb:441:13:441:13 | h [element] | semantics.rb:441:9:441:14 | call to s49 [element] | | semantics.rb:443:10:443:10 | x [element] | semantics.rb:443:10:443:16 | ...[...] | | semantics.rb:443:10:443:10 | x [element] | semantics.rb:443:10:443:16 | ...[...] | -| semantics.rb:447:5:447:5 | [post] h [element :foo] | semantics.rb:448:5:448:5 | h [element :foo] | -| semantics.rb:447:5:447:5 | [post] h [element :foo] | semantics.rb:448:5:448:5 | h [element :foo] | -| semantics.rb:447:15:447:25 | call to source | semantics.rb:447:5:447:5 | [post] h [element :foo] | -| semantics.rb:447:15:447:25 | call to source | semantics.rb:447:5:447:5 | [post] h [element :foo] | -| semantics.rb:448:5:448:5 | [post] h [element :bar] | semantics.rb:452:10:452:10 | h [element :bar] | -| semantics.rb:448:5:448:5 | [post] h [element :bar] | semantics.rb:452:10:452:10 | h [element :bar] | -| semantics.rb:448:5:448:5 | [post] h [element :bar] | semantics.rb:454:9:454:9 | h [element :bar] | -| semantics.rb:448:5:448:5 | [post] h [element :bar] | semantics.rb:454:9:454:9 | h [element :bar] | -| semantics.rb:448:5:448:5 | [post] h [element :foo] | semantics.rb:451:10:451:10 | h [element :foo] | -| semantics.rb:448:5:448:5 | [post] h [element :foo] | semantics.rb:451:10:451:10 | h [element :foo] | -| semantics.rb:448:5:448:5 | h [element :foo] | semantics.rb:448:5:448:5 | [post] h [element :foo] | -| semantics.rb:448:5:448:5 | h [element :foo] | semantics.rb:448:5:448:5 | [post] h [element :foo] | -| semantics.rb:448:15:448:25 | call to source | semantics.rb:448:5:448:5 | [post] h [element :bar] | -| semantics.rb:448:15:448:25 | call to source | semantics.rb:448:5:448:5 | [post] h [element :bar] | -| semantics.rb:449:5:449:5 | [post] h [element] | semantics.rb:451:10:451:10 | h [element] | -| semantics.rb:449:5:449:5 | [post] h [element] | semantics.rb:451:10:451:10 | h [element] | -| semantics.rb:449:5:449:5 | [post] h [element] | semantics.rb:452:10:452:10 | h [element] | -| semantics.rb:449:5:449:5 | [post] h [element] | semantics.rb:452:10:452:10 | h [element] | -| semantics.rb:449:12:449:22 | call to source | semantics.rb:449:5:449:5 | [post] h [element] | -| semantics.rb:449:12:449:22 | call to source | semantics.rb:449:5:449:5 | [post] h [element] | -| semantics.rb:451:10:451:10 | h [element :foo] | semantics.rb:451:10:451:16 | ...[...] | -| semantics.rb:451:10:451:10 | h [element :foo] | semantics.rb:451:10:451:16 | ...[...] | -| semantics.rb:451:10:451:10 | h [element] | semantics.rb:451:10:451:16 | ...[...] | -| semantics.rb:451:10:451:10 | h [element] | semantics.rb:451:10:451:16 | ...[...] | -| semantics.rb:452:10:452:10 | h [element :bar] | semantics.rb:452:10:452:16 | ...[...] | -| semantics.rb:452:10:452:10 | h [element :bar] | semantics.rb:452:10:452:16 | ...[...] | +| semantics.rb:444:10:444:10 | x [element :bar] | semantics.rb:444:10:444:16 | ...[...] | +| semantics.rb:444:10:444:10 | x [element :bar] | semantics.rb:444:10:444:16 | ...[...] | +| semantics.rb:444:10:444:10 | x [element] | semantics.rb:444:10:444:16 | ...[...] | +| semantics.rb:444:10:444:10 | x [element] | semantics.rb:444:10:444:16 | ...[...] | +| semantics.rb:448:5:448:5 | [post] h [element :foo] | semantics.rb:449:5:449:5 | h [element :foo] | +| semantics.rb:448:5:448:5 | [post] h [element :foo] | semantics.rb:449:5:449:5 | h [element :foo] | +| semantics.rb:448:15:448:25 | call to source | semantics.rb:448:5:448:5 | [post] h [element :foo] | +| semantics.rb:448:15:448:25 | call to source | semantics.rb:448:5:448:5 | [post] h [element :foo] | +| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:453:10:453:10 | h [element :bar] | +| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:453:10:453:10 | h [element :bar] | +| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:455:9:455:9 | h [element :bar] | +| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:455:9:455:9 | h [element :bar] | +| semantics.rb:449:5:449:5 | [post] h [element :foo] | semantics.rb:452:10:452:10 | h [element :foo] | +| semantics.rb:449:5:449:5 | [post] h [element :foo] | semantics.rb:452:10:452:10 | h [element :foo] | +| semantics.rb:449:5:449:5 | h [element :foo] | semantics.rb:449:5:449:5 | [post] h [element :foo] | +| semantics.rb:449:5:449:5 | h [element :foo] | semantics.rb:449:5:449:5 | [post] h [element :foo] | +| semantics.rb:449:15:449:25 | call to source | semantics.rb:449:5:449:5 | [post] h [element :bar] | +| semantics.rb:449:15:449:25 | call to source | semantics.rb:449:5:449:5 | [post] h [element :bar] | +| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:452:10:452:10 | h [element] | +| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:452:10:452:10 | h [element] | +| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:453:10:453:10 | h [element] | +| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:453:10:453:10 | h [element] | +| semantics.rb:450:12:450:22 | call to source | semantics.rb:450:5:450:5 | [post] h [element] | +| semantics.rb:450:12:450:22 | call to source | semantics.rb:450:5:450:5 | [post] h [element] | +| semantics.rb:452:10:452:10 | h [element :foo] | semantics.rb:452:10:452:16 | ...[...] | +| semantics.rb:452:10:452:10 | h [element :foo] | semantics.rb:452:10:452:16 | ...[...] | | semantics.rb:452:10:452:10 | h [element] | semantics.rb:452:10:452:16 | ...[...] | | semantics.rb:452:10:452:10 | h [element] | semantics.rb:452:10:452:16 | ...[...] | -| semantics.rb:454:9:454:9 | [post] h [element :bar] | semantics.rb:457:10:457:10 | h [element :bar] | -| semantics.rb:454:9:454:9 | [post] h [element :bar] | semantics.rb:457:10:457:10 | h [element :bar] | -| semantics.rb:454:9:454:9 | h [element :bar] | semantics.rb:454:9:454:9 | [post] h [element :bar] | -| semantics.rb:454:9:454:9 | h [element :bar] | semantics.rb:454:9:454:9 | [post] h [element :bar] | -| semantics.rb:457:10:457:10 | h [element :bar] | semantics.rb:457:10:457:16 | ...[...] | -| semantics.rb:457:10:457:10 | h [element :bar] | semantics.rb:457:10:457:16 | ...[...] | -| semantics.rb:461:5:461:5 | [post] h [element :foo] | semantics.rb:462:5:462:5 | h [element :foo] | -| semantics.rb:461:5:461:5 | [post] h [element :foo] | semantics.rb:462:5:462:5 | h [element :foo] | -| semantics.rb:461:15:461:25 | call to source | semantics.rb:461:5:461:5 | [post] h [element :foo] | -| semantics.rb:461:15:461:25 | call to source | semantics.rb:461:5:461:5 | [post] h [element :foo] | -| semantics.rb:462:5:462:5 | [post] h [element :bar] | semantics.rb:466:10:466:10 | h [element :bar] | -| semantics.rb:462:5:462:5 | [post] h [element :bar] | semantics.rb:466:10:466:10 | h [element :bar] | -| semantics.rb:462:5:462:5 | [post] h [element :bar] | semantics.rb:468:9:468:9 | h [element :bar] | -| semantics.rb:462:5:462:5 | [post] h [element :bar] | semantics.rb:468:9:468:9 | h [element :bar] | -| semantics.rb:462:5:462:5 | [post] h [element :foo] | semantics.rb:465:10:465:10 | h [element :foo] | -| semantics.rb:462:5:462:5 | [post] h [element :foo] | semantics.rb:465:10:465:10 | h [element :foo] | -| semantics.rb:462:5:462:5 | h [element :foo] | semantics.rb:462:5:462:5 | [post] h [element :foo] | -| semantics.rb:462:5:462:5 | h [element :foo] | semantics.rb:462:5:462:5 | [post] h [element :foo] | -| semantics.rb:462:15:462:25 | call to source | semantics.rb:462:5:462:5 | [post] h [element :bar] | -| semantics.rb:462:15:462:25 | call to source | semantics.rb:462:5:462:5 | [post] h [element :bar] | -| semantics.rb:463:5:463:5 | [post] h [element] | semantics.rb:465:10:465:10 | h [element] | -| semantics.rb:463:5:463:5 | [post] h [element] | semantics.rb:465:10:465:10 | h [element] | -| semantics.rb:463:5:463:5 | [post] h [element] | semantics.rb:466:10:466:10 | h [element] | -| semantics.rb:463:5:463:5 | [post] h [element] | semantics.rb:466:10:466:10 | h [element] | -| semantics.rb:463:5:463:5 | [post] h [element] | semantics.rb:468:9:468:9 | h [element] | -| semantics.rb:463:5:463:5 | [post] h [element] | semantics.rb:468:9:468:9 | h [element] | -| semantics.rb:463:12:463:22 | call to source | semantics.rb:463:5:463:5 | [post] h [element] | -| semantics.rb:463:12:463:22 | call to source | semantics.rb:463:5:463:5 | [post] h [element] | -| semantics.rb:465:10:465:10 | h [element :foo] | semantics.rb:465:10:465:16 | ...[...] | -| semantics.rb:465:10:465:10 | h [element :foo] | semantics.rb:465:10:465:16 | ...[...] | -| semantics.rb:465:10:465:10 | h [element] | semantics.rb:465:10:465:16 | ...[...] | -| semantics.rb:465:10:465:10 | h [element] | semantics.rb:465:10:465:16 | ...[...] | -| semantics.rb:466:10:466:10 | h [element :bar] | semantics.rb:466:10:466:16 | ...[...] | -| semantics.rb:466:10:466:10 | h [element :bar] | semantics.rb:466:10:466:16 | ...[...] | +| semantics.rb:453:10:453:10 | h [element :bar] | semantics.rb:453:10:453:16 | ...[...] | +| semantics.rb:453:10:453:10 | h [element :bar] | semantics.rb:453:10:453:16 | ...[...] | +| semantics.rb:453:10:453:10 | h [element] | semantics.rb:453:10:453:16 | ...[...] | +| semantics.rb:453:10:453:10 | h [element] | semantics.rb:453:10:453:16 | ...[...] | +| semantics.rb:455:9:455:9 | [post] h [element :bar] | semantics.rb:458:10:458:10 | h [element :bar] | +| semantics.rb:455:9:455:9 | [post] h [element :bar] | semantics.rb:458:10:458:10 | h [element :bar] | +| semantics.rb:455:9:455:9 | h [element :bar] | semantics.rb:455:9:455:9 | [post] h [element :bar] | +| semantics.rb:455:9:455:9 | h [element :bar] | semantics.rb:455:9:455:9 | [post] h [element :bar] | +| semantics.rb:458:10:458:10 | h [element :bar] | semantics.rb:458:10:458:16 | ...[...] | +| semantics.rb:458:10:458:10 | h [element :bar] | semantics.rb:458:10:458:16 | ...[...] | +| semantics.rb:462:5:462:5 | [post] h [element :foo] | semantics.rb:463:5:463:5 | h [element :foo] | +| semantics.rb:462:5:462:5 | [post] h [element :foo] | semantics.rb:463:5:463:5 | h [element :foo] | +| semantics.rb:462:15:462:25 | call to source | semantics.rb:462:5:462:5 | [post] h [element :foo] | +| semantics.rb:462:15:462:25 | call to source | semantics.rb:462:5:462:5 | [post] h [element :foo] | +| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:467:10:467:10 | h [element :bar] | +| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:467:10:467:10 | h [element :bar] | +| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:469:9:469:9 | h [element :bar] | +| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:469:9:469:9 | h [element :bar] | +| semantics.rb:463:5:463:5 | [post] h [element :foo] | semantics.rb:466:10:466:10 | h [element :foo] | +| semantics.rb:463:5:463:5 | [post] h [element :foo] | semantics.rb:466:10:466:10 | h [element :foo] | +| semantics.rb:463:5:463:5 | h [element :foo] | semantics.rb:463:5:463:5 | [post] h [element :foo] | +| semantics.rb:463:5:463:5 | h [element :foo] | semantics.rb:463:5:463:5 | [post] h [element :foo] | +| semantics.rb:463:15:463:25 | call to source | semantics.rb:463:5:463:5 | [post] h [element :bar] | +| semantics.rb:463:15:463:25 | call to source | semantics.rb:463:5:463:5 | [post] h [element :bar] | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:466:10:466:10 | h [element] | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:466:10:466:10 | h [element] | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:467:10:467:10 | h [element] | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:467:10:467:10 | h [element] | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:469:9:469:9 | h [element] | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:469:9:469:9 | h [element] | +| semantics.rb:464:12:464:22 | call to source | semantics.rb:464:5:464:5 | [post] h [element] | +| semantics.rb:464:12:464:22 | call to source | semantics.rb:464:5:464:5 | [post] h [element] | +| semantics.rb:466:10:466:10 | h [element :foo] | semantics.rb:466:10:466:16 | ...[...] | +| semantics.rb:466:10:466:10 | h [element :foo] | semantics.rb:466:10:466:16 | ...[...] | | semantics.rb:466:10:466:10 | h [element] | semantics.rb:466:10:466:16 | ...[...] | | semantics.rb:466:10:466:10 | h [element] | semantics.rb:466:10:466:16 | ...[...] | -| semantics.rb:468:9:468:9 | [post] h [element :bar] | semantics.rb:471:10:471:10 | h [element :bar] | -| semantics.rb:468:9:468:9 | [post] h [element :bar] | semantics.rb:471:10:471:10 | h [element :bar] | -| semantics.rb:468:9:468:9 | [post] h [element] | semantics.rb:470:10:470:10 | h [element] | -| semantics.rb:468:9:468:9 | [post] h [element] | semantics.rb:470:10:470:10 | h [element] | -| semantics.rb:468:9:468:9 | [post] h [element] | semantics.rb:471:10:471:10 | h [element] | -| semantics.rb:468:9:468:9 | [post] h [element] | semantics.rb:471:10:471:10 | h [element] | -| semantics.rb:468:9:468:9 | h [element :bar] | semantics.rb:468:9:468:9 | [post] h [element :bar] | -| semantics.rb:468:9:468:9 | h [element :bar] | semantics.rb:468:9:468:9 | [post] h [element :bar] | -| semantics.rb:468:9:468:9 | h [element] | semantics.rb:468:9:468:9 | [post] h [element] | -| semantics.rb:468:9:468:9 | h [element] | semantics.rb:468:9:468:9 | [post] h [element] | -| semantics.rb:470:10:470:10 | h [element] | semantics.rb:470:10:470:16 | ...[...] | -| semantics.rb:470:10:470:10 | h [element] | semantics.rb:470:10:470:16 | ...[...] | -| semantics.rb:471:10:471:10 | h [element :bar] | semantics.rb:471:10:471:16 | ...[...] | -| semantics.rb:471:10:471:10 | h [element :bar] | semantics.rb:471:10:471:16 | ...[...] | +| semantics.rb:467:10:467:10 | h [element :bar] | semantics.rb:467:10:467:16 | ...[...] | +| semantics.rb:467:10:467:10 | h [element :bar] | semantics.rb:467:10:467:16 | ...[...] | +| semantics.rb:467:10:467:10 | h [element] | semantics.rb:467:10:467:16 | ...[...] | +| semantics.rb:467:10:467:10 | h [element] | semantics.rb:467:10:467:16 | ...[...] | +| semantics.rb:469:9:469:9 | [post] h [element :bar] | semantics.rb:472:10:472:10 | h [element :bar] | +| semantics.rb:469:9:469:9 | [post] h [element :bar] | semantics.rb:472:10:472:10 | h [element :bar] | +| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:471:10:471:10 | h [element] | +| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:471:10:471:10 | h [element] | +| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:472:10:472:10 | h [element] | +| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:472:10:472:10 | h [element] | +| semantics.rb:469:9:469:9 | h [element :bar] | semantics.rb:469:9:469:9 | [post] h [element :bar] | +| semantics.rb:469:9:469:9 | h [element :bar] | semantics.rb:469:9:469:9 | [post] h [element :bar] | +| semantics.rb:469:9:469:9 | h [element] | semantics.rb:469:9:469:9 | [post] h [element] | +| semantics.rb:469:9:469:9 | h [element] | semantics.rb:469:9:469:9 | [post] h [element] | | semantics.rb:471:10:471:10 | h [element] | semantics.rb:471:10:471:16 | ...[...] | | semantics.rb:471:10:471:10 | h [element] | semantics.rb:471:10:471:16 | ...[...] | -| semantics.rb:475:5:475:5 | [post] h [element :foo] | semantics.rb:476:5:476:5 | h [element :foo] | -| semantics.rb:475:5:475:5 | [post] h [element :foo] | semantics.rb:476:5:476:5 | h [element :foo] | -| semantics.rb:475:15:475:25 | call to source | semantics.rb:475:5:475:5 | [post] h [element :foo] | -| semantics.rb:475:15:475:25 | call to source | semantics.rb:475:5:475:5 | [post] h [element :foo] | -| semantics.rb:476:5:476:5 | [post] h [element :bar] | semantics.rb:480:10:480:10 | h [element :bar] | -| semantics.rb:476:5:476:5 | [post] h [element :bar] | semantics.rb:480:10:480:10 | h [element :bar] | -| semantics.rb:476:5:476:5 | [post] h [element :bar] | semantics.rb:482:5:482:5 | h [element :bar] | -| semantics.rb:476:5:476:5 | [post] h [element :bar] | semantics.rb:482:5:482:5 | h [element :bar] | -| semantics.rb:476:5:476:5 | [post] h [element :foo] | semantics.rb:479:10:479:10 | h [element :foo] | -| semantics.rb:476:5:476:5 | [post] h [element :foo] | semantics.rb:479:10:479:10 | h [element :foo] | -| semantics.rb:476:5:476:5 | h [element :foo] | semantics.rb:476:5:476:5 | [post] h [element :foo] | -| semantics.rb:476:5:476:5 | h [element :foo] | semantics.rb:476:5:476:5 | [post] h [element :foo] | -| semantics.rb:476:15:476:25 | call to source | semantics.rb:476:5:476:5 | [post] h [element :bar] | -| semantics.rb:476:15:476:25 | call to source | semantics.rb:476:5:476:5 | [post] h [element :bar] | -| semantics.rb:477:5:477:5 | [post] h [element] | semantics.rb:479:10:479:10 | h [element] | -| semantics.rb:477:5:477:5 | [post] h [element] | semantics.rb:479:10:479:10 | h [element] | -| semantics.rb:477:5:477:5 | [post] h [element] | semantics.rb:480:10:480:10 | h [element] | -| semantics.rb:477:5:477:5 | [post] h [element] | semantics.rb:480:10:480:10 | h [element] | -| semantics.rb:477:12:477:22 | call to source | semantics.rb:477:5:477:5 | [post] h [element] | -| semantics.rb:477:12:477:22 | call to source | semantics.rb:477:5:477:5 | [post] h [element] | -| semantics.rb:479:10:479:10 | h [element :foo] | semantics.rb:479:10:479:16 | ...[...] | -| semantics.rb:479:10:479:10 | h [element :foo] | semantics.rb:479:10:479:16 | ...[...] | -| semantics.rb:479:10:479:10 | h [element] | semantics.rb:479:10:479:16 | ...[...] | -| semantics.rb:479:10:479:10 | h [element] | semantics.rb:479:10:479:16 | ...[...] | -| semantics.rb:480:10:480:10 | h [element :bar] | semantics.rb:480:10:480:16 | ...[...] | -| semantics.rb:480:10:480:10 | h [element :bar] | semantics.rb:480:10:480:16 | ...[...] | +| semantics.rb:472:10:472:10 | h [element :bar] | semantics.rb:472:10:472:16 | ...[...] | +| semantics.rb:472:10:472:10 | h [element :bar] | semantics.rb:472:10:472:16 | ...[...] | +| semantics.rb:472:10:472:10 | h [element] | semantics.rb:472:10:472:16 | ...[...] | +| semantics.rb:472:10:472:10 | h [element] | semantics.rb:472:10:472:16 | ...[...] | +| semantics.rb:476:5:476:5 | [post] h [element :foo] | semantics.rb:477:5:477:5 | h [element :foo] | +| semantics.rb:476:5:476:5 | [post] h [element :foo] | semantics.rb:477:5:477:5 | h [element :foo] | +| semantics.rb:476:15:476:25 | call to source | semantics.rb:476:5:476:5 | [post] h [element :foo] | +| semantics.rb:476:15:476:25 | call to source | semantics.rb:476:5:476:5 | [post] h [element :foo] | +| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:481:10:481:10 | h [element :bar] | +| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:481:10:481:10 | h [element :bar] | +| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:483:5:483:5 | h [element :bar] | +| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:483:5:483:5 | h [element :bar] | +| semantics.rb:477:5:477:5 | [post] h [element :foo] | semantics.rb:480:10:480:10 | h [element :foo] | +| semantics.rb:477:5:477:5 | [post] h [element :foo] | semantics.rb:480:10:480:10 | h [element :foo] | +| semantics.rb:477:5:477:5 | h [element :foo] | semantics.rb:477:5:477:5 | [post] h [element :foo] | +| semantics.rb:477:5:477:5 | h [element :foo] | semantics.rb:477:5:477:5 | [post] h [element :foo] | +| semantics.rb:477:15:477:25 | call to source | semantics.rb:477:5:477:5 | [post] h [element :bar] | +| semantics.rb:477:15:477:25 | call to source | semantics.rb:477:5:477:5 | [post] h [element :bar] | +| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:480:10:480:10 | h [element] | +| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:480:10:480:10 | h [element] | +| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:481:10:481:10 | h [element] | +| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:481:10:481:10 | h [element] | +| semantics.rb:478:12:478:22 | call to source | semantics.rb:478:5:478:5 | [post] h [element] | +| semantics.rb:478:12:478:22 | call to source | semantics.rb:478:5:478:5 | [post] h [element] | +| semantics.rb:480:10:480:10 | h [element :foo] | semantics.rb:480:10:480:16 | ...[...] | +| semantics.rb:480:10:480:10 | h [element :foo] | semantics.rb:480:10:480:16 | ...[...] | | semantics.rb:480:10:480:10 | h [element] | semantics.rb:480:10:480:16 | ...[...] | | semantics.rb:480:10:480:10 | h [element] | semantics.rb:480:10:480:16 | ...[...] | -| semantics.rb:482:5:482:5 | [post] h [element :bar] | semantics.rb:485:10:485:10 | h [element :bar] | -| semantics.rb:482:5:482:5 | [post] h [element :bar] | semantics.rb:485:10:485:10 | h [element :bar] | -| semantics.rb:482:5:482:5 | h [element :bar] | semantics.rb:482:5:482:5 | [post] h [element :bar] | -| semantics.rb:482:5:482:5 | h [element :bar] | semantics.rb:482:5:482:5 | [post] h [element :bar] | -| semantics.rb:485:10:485:10 | h [element :bar] | semantics.rb:485:10:485:16 | ...[...] | -| semantics.rb:485:10:485:10 | h [element :bar] | semantics.rb:485:10:485:16 | ...[...] | -| semantics.rb:489:5:489:5 | [post] h [element :foo] | semantics.rb:490:5:490:5 | h [element :foo] | -| semantics.rb:489:5:489:5 | [post] h [element :foo] | semantics.rb:490:5:490:5 | h [element :foo] | -| semantics.rb:489:15:489:25 | call to source | semantics.rb:489:5:489:5 | [post] h [element :foo] | -| semantics.rb:489:15:489:25 | call to source | semantics.rb:489:5:489:5 | [post] h [element :foo] | -| semantics.rb:490:5:490:5 | [post] h [element :bar] | semantics.rb:494:10:494:10 | h [element :bar] | -| semantics.rb:490:5:490:5 | [post] h [element :bar] | semantics.rb:494:10:494:10 | h [element :bar] | -| semantics.rb:490:5:490:5 | [post] h [element :bar] | semantics.rb:496:9:496:9 | h [element :bar] | -| semantics.rb:490:5:490:5 | [post] h [element :bar] | semantics.rb:496:9:496:9 | h [element :bar] | -| semantics.rb:490:5:490:5 | [post] h [element :foo] | semantics.rb:493:10:493:10 | h [element :foo] | -| semantics.rb:490:5:490:5 | [post] h [element :foo] | semantics.rb:493:10:493:10 | h [element :foo] | -| semantics.rb:490:5:490:5 | h [element :foo] | semantics.rb:490:5:490:5 | [post] h [element :foo] | -| semantics.rb:490:5:490:5 | h [element :foo] | semantics.rb:490:5:490:5 | [post] h [element :foo] | -| semantics.rb:490:15:490:25 | call to source | semantics.rb:490:5:490:5 | [post] h [element :bar] | -| semantics.rb:490:15:490:25 | call to source | semantics.rb:490:5:490:5 | [post] h [element :bar] | -| semantics.rb:491:5:491:5 | [post] h [element] | semantics.rb:493:10:493:10 | h [element] | -| semantics.rb:491:5:491:5 | [post] h [element] | semantics.rb:493:10:493:10 | h [element] | -| semantics.rb:491:5:491:5 | [post] h [element] | semantics.rb:494:10:494:10 | h [element] | -| semantics.rb:491:5:491:5 | [post] h [element] | semantics.rb:494:10:494:10 | h [element] | -| semantics.rb:491:12:491:22 | call to source | semantics.rb:491:5:491:5 | [post] h [element] | -| semantics.rb:491:12:491:22 | call to source | semantics.rb:491:5:491:5 | [post] h [element] | -| semantics.rb:493:10:493:10 | h [element :foo] | semantics.rb:493:10:493:16 | ...[...] | -| semantics.rb:493:10:493:10 | h [element :foo] | semantics.rb:493:10:493:16 | ...[...] | -| semantics.rb:493:10:493:10 | h [element] | semantics.rb:493:10:493:16 | ...[...] | -| semantics.rb:493:10:493:10 | h [element] | semantics.rb:493:10:493:16 | ...[...] | -| semantics.rb:494:10:494:10 | h [element :bar] | semantics.rb:494:10:494:16 | ...[...] | -| semantics.rb:494:10:494:10 | h [element :bar] | semantics.rb:494:10:494:16 | ...[...] | +| semantics.rb:481:10:481:10 | h [element :bar] | semantics.rb:481:10:481:16 | ...[...] | +| semantics.rb:481:10:481:10 | h [element :bar] | semantics.rb:481:10:481:16 | ...[...] | +| semantics.rb:481:10:481:10 | h [element] | semantics.rb:481:10:481:16 | ...[...] | +| semantics.rb:481:10:481:10 | h [element] | semantics.rb:481:10:481:16 | ...[...] | +| semantics.rb:483:5:483:5 | [post] h [element :bar] | semantics.rb:486:10:486:10 | h [element :bar] | +| semantics.rb:483:5:483:5 | [post] h [element :bar] | semantics.rb:486:10:486:10 | h [element :bar] | +| semantics.rb:483:5:483:5 | h [element :bar] | semantics.rb:483:5:483:5 | [post] h [element :bar] | +| semantics.rb:483:5:483:5 | h [element :bar] | semantics.rb:483:5:483:5 | [post] h [element :bar] | +| semantics.rb:486:10:486:10 | h [element :bar] | semantics.rb:486:10:486:16 | ...[...] | +| semantics.rb:486:10:486:10 | h [element :bar] | semantics.rb:486:10:486:16 | ...[...] | +| semantics.rb:490:5:490:5 | [post] h [element :foo] | semantics.rb:491:5:491:5 | h [element :foo] | +| semantics.rb:490:5:490:5 | [post] h [element :foo] | semantics.rb:491:5:491:5 | h [element :foo] | +| semantics.rb:490:15:490:25 | call to source | semantics.rb:490:5:490:5 | [post] h [element :foo] | +| semantics.rb:490:15:490:25 | call to source | semantics.rb:490:5:490:5 | [post] h [element :foo] | +| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:495:10:495:10 | h [element :bar] | +| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:495:10:495:10 | h [element :bar] | +| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:497:9:497:9 | h [element :bar] | +| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:497:9:497:9 | h [element :bar] | +| semantics.rb:491:5:491:5 | [post] h [element :foo] | semantics.rb:494:10:494:10 | h [element :foo] | +| semantics.rb:491:5:491:5 | [post] h [element :foo] | semantics.rb:494:10:494:10 | h [element :foo] | +| semantics.rb:491:5:491:5 | h [element :foo] | semantics.rb:491:5:491:5 | [post] h [element :foo] | +| semantics.rb:491:5:491:5 | h [element :foo] | semantics.rb:491:5:491:5 | [post] h [element :foo] | +| semantics.rb:491:15:491:25 | call to source | semantics.rb:491:5:491:5 | [post] h [element :bar] | +| semantics.rb:491:15:491:25 | call to source | semantics.rb:491:5:491:5 | [post] h [element :bar] | +| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:494:10:494:10 | h [element] | +| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:494:10:494:10 | h [element] | +| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:495:10:495:10 | h [element] | +| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:495:10:495:10 | h [element] | +| semantics.rb:492:12:492:22 | call to source | semantics.rb:492:5:492:5 | [post] h [element] | +| semantics.rb:492:12:492:22 | call to source | semantics.rb:492:5:492:5 | [post] h [element] | +| semantics.rb:494:10:494:10 | h [element :foo] | semantics.rb:494:10:494:16 | ...[...] | +| semantics.rb:494:10:494:10 | h [element :foo] | semantics.rb:494:10:494:16 | ...[...] | | semantics.rb:494:10:494:10 | h [element] | semantics.rb:494:10:494:16 | ...[...] | | semantics.rb:494:10:494:10 | h [element] | semantics.rb:494:10:494:16 | ...[...] | -| semantics.rb:496:5:496:5 | x [element :bar] | semantics.rb:499:10:499:10 | x [element :bar] | -| semantics.rb:496:5:496:5 | x [element :bar] | semantics.rb:499:10:499:10 | x [element :bar] | -| semantics.rb:496:9:496:9 | h [element :bar] | semantics.rb:496:9:496:15 | call to s53 [element :bar] | -| semantics.rb:496:9:496:9 | h [element :bar] | semantics.rb:496:9:496:15 | call to s53 [element :bar] | -| semantics.rb:496:9:496:15 | call to s53 [element :bar] | semantics.rb:496:5:496:5 | x [element :bar] | -| semantics.rb:496:9:496:15 | call to s53 [element :bar] | semantics.rb:496:5:496:5 | x [element :bar] | -| semantics.rb:499:10:499:10 | x [element :bar] | semantics.rb:499:10:499:16 | ...[...] | -| semantics.rb:499:10:499:10 | x [element :bar] | semantics.rb:499:10:499:16 | ...[...] | -| semantics.rb:501:10:501:20 | call to source | semantics.rb:501:10:501:26 | call to s53 | -| semantics.rb:501:10:501:20 | call to source | semantics.rb:501:10:501:26 | call to s53 | -| semantics.rb:505:5:505:5 | [post] h [element :foo] | semantics.rb:506:5:506:5 | h [element :foo] | -| semantics.rb:505:5:505:5 | [post] h [element :foo] | semantics.rb:506:5:506:5 | h [element :foo] | -| semantics.rb:505:15:505:25 | call to source | semantics.rb:505:5:505:5 | [post] h [element :foo] | -| semantics.rb:505:15:505:25 | call to source | semantics.rb:505:5:505:5 | [post] h [element :foo] | -| semantics.rb:506:5:506:5 | [post] h [element :bar] | semantics.rb:510:10:510:10 | h [element :bar] | -| semantics.rb:506:5:506:5 | [post] h [element :bar] | semantics.rb:510:10:510:10 | h [element :bar] | -| semantics.rb:506:5:506:5 | [post] h [element :bar] | semantics.rb:512:9:512:9 | h [element :bar] | -| semantics.rb:506:5:506:5 | [post] h [element :bar] | semantics.rb:512:9:512:9 | h [element :bar] | -| semantics.rb:506:5:506:5 | [post] h [element :foo] | semantics.rb:509:10:509:10 | h [element :foo] | -| semantics.rb:506:5:506:5 | [post] h [element :foo] | semantics.rb:509:10:509:10 | h [element :foo] | -| semantics.rb:506:5:506:5 | h [element :foo] | semantics.rb:506:5:506:5 | [post] h [element :foo] | -| semantics.rb:506:5:506:5 | h [element :foo] | semantics.rb:506:5:506:5 | [post] h [element :foo] | -| semantics.rb:506:15:506:25 | call to source | semantics.rb:506:5:506:5 | [post] h [element :bar] | -| semantics.rb:506:15:506:25 | call to source | semantics.rb:506:5:506:5 | [post] h [element :bar] | -| semantics.rb:507:5:507:5 | [post] h [element] | semantics.rb:509:10:509:10 | h [element] | -| semantics.rb:507:5:507:5 | [post] h [element] | semantics.rb:509:10:509:10 | h [element] | -| semantics.rb:507:5:507:5 | [post] h [element] | semantics.rb:510:10:510:10 | h [element] | -| semantics.rb:507:5:507:5 | [post] h [element] | semantics.rb:510:10:510:10 | h [element] | -| semantics.rb:507:12:507:22 | call to source | semantics.rb:507:5:507:5 | [post] h [element] | -| semantics.rb:507:12:507:22 | call to source | semantics.rb:507:5:507:5 | [post] h [element] | -| semantics.rb:509:10:509:10 | h [element :foo] | semantics.rb:509:10:509:16 | ...[...] | -| semantics.rb:509:10:509:10 | h [element :foo] | semantics.rb:509:10:509:16 | ...[...] | -| semantics.rb:509:10:509:10 | h [element] | semantics.rb:509:10:509:16 | ...[...] | -| semantics.rb:509:10:509:10 | h [element] | semantics.rb:509:10:509:16 | ...[...] | -| semantics.rb:510:10:510:10 | h [element :bar] | semantics.rb:510:10:510:16 | ...[...] | -| semantics.rb:510:10:510:10 | h [element :bar] | semantics.rb:510:10:510:16 | ...[...] | +| semantics.rb:495:10:495:10 | h [element :bar] | semantics.rb:495:10:495:16 | ...[...] | +| semantics.rb:495:10:495:10 | h [element :bar] | semantics.rb:495:10:495:16 | ...[...] | +| semantics.rb:495:10:495:10 | h [element] | semantics.rb:495:10:495:16 | ...[...] | +| semantics.rb:495:10:495:10 | h [element] | semantics.rb:495:10:495:16 | ...[...] | +| semantics.rb:497:5:497:5 | x [element :bar] | semantics.rb:500:10:500:10 | x [element :bar] | +| semantics.rb:497:5:497:5 | x [element :bar] | semantics.rb:500:10:500:10 | x [element :bar] | +| semantics.rb:497:9:497:9 | h [element :bar] | semantics.rb:497:9:497:15 | call to s53 [element :bar] | +| semantics.rb:497:9:497:9 | h [element :bar] | semantics.rb:497:9:497:15 | call to s53 [element :bar] | +| semantics.rb:497:9:497:15 | call to s53 [element :bar] | semantics.rb:497:5:497:5 | x [element :bar] | +| semantics.rb:497:9:497:15 | call to s53 [element :bar] | semantics.rb:497:5:497:5 | x [element :bar] | +| semantics.rb:500:10:500:10 | x [element :bar] | semantics.rb:500:10:500:16 | ...[...] | +| semantics.rb:500:10:500:10 | x [element :bar] | semantics.rb:500:10:500:16 | ...[...] | +| semantics.rb:502:10:502:20 | call to source | semantics.rb:502:10:502:26 | call to s53 | +| semantics.rb:502:10:502:20 | call to source | semantics.rb:502:10:502:26 | call to s53 | +| semantics.rb:506:5:506:5 | [post] h [element :foo] | semantics.rb:507:5:507:5 | h [element :foo] | +| semantics.rb:506:5:506:5 | [post] h [element :foo] | semantics.rb:507:5:507:5 | h [element :foo] | +| semantics.rb:506:15:506:25 | call to source | semantics.rb:506:5:506:5 | [post] h [element :foo] | +| semantics.rb:506:15:506:25 | call to source | semantics.rb:506:5:506:5 | [post] h [element :foo] | +| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:511:10:511:10 | h [element :bar] | +| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:511:10:511:10 | h [element :bar] | +| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:513:9:513:9 | h [element :bar] | +| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:513:9:513:9 | h [element :bar] | +| semantics.rb:507:5:507:5 | [post] h [element :foo] | semantics.rb:510:10:510:10 | h [element :foo] | +| semantics.rb:507:5:507:5 | [post] h [element :foo] | semantics.rb:510:10:510:10 | h [element :foo] | +| semantics.rb:507:5:507:5 | h [element :foo] | semantics.rb:507:5:507:5 | [post] h [element :foo] | +| semantics.rb:507:5:507:5 | h [element :foo] | semantics.rb:507:5:507:5 | [post] h [element :foo] | +| semantics.rb:507:15:507:25 | call to source | semantics.rb:507:5:507:5 | [post] h [element :bar] | +| semantics.rb:507:15:507:25 | call to source | semantics.rb:507:5:507:5 | [post] h [element :bar] | +| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:510:10:510:10 | h [element] | +| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:510:10:510:10 | h [element] | +| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:511:10:511:10 | h [element] | +| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:511:10:511:10 | h [element] | +| semantics.rb:508:12:508:22 | call to source | semantics.rb:508:5:508:5 | [post] h [element] | +| semantics.rb:508:12:508:22 | call to source | semantics.rb:508:5:508:5 | [post] h [element] | +| semantics.rb:510:10:510:10 | h [element :foo] | semantics.rb:510:10:510:16 | ...[...] | +| semantics.rb:510:10:510:10 | h [element :foo] | semantics.rb:510:10:510:16 | ...[...] | | semantics.rb:510:10:510:10 | h [element] | semantics.rb:510:10:510:16 | ...[...] | | semantics.rb:510:10:510:10 | h [element] | semantics.rb:510:10:510:16 | ...[...] | -| semantics.rb:512:5:512:5 | x [element :bar] | semantics.rb:515:10:515:10 | x [element :bar] | -| semantics.rb:512:5:512:5 | x [element :bar] | semantics.rb:515:10:515:10 | x [element :bar] | -| semantics.rb:512:9:512:9 | h [element :bar] | semantics.rb:512:9:512:15 | call to s54 [element :bar] | -| semantics.rb:512:9:512:9 | h [element :bar] | semantics.rb:512:9:512:15 | call to s54 [element :bar] | -| semantics.rb:512:9:512:15 | call to s54 [element :bar] | semantics.rb:512:5:512:5 | x [element :bar] | -| semantics.rb:512:9:512:15 | call to s54 [element :bar] | semantics.rb:512:5:512:5 | x [element :bar] | -| semantics.rb:515:10:515:10 | x [element :bar] | semantics.rb:515:10:515:16 | ...[...] | -| semantics.rb:515:10:515:10 | x [element :bar] | semantics.rb:515:10:515:16 | ...[...] | +| semantics.rb:511:10:511:10 | h [element :bar] | semantics.rb:511:10:511:16 | ...[...] | +| semantics.rb:511:10:511:10 | h [element :bar] | semantics.rb:511:10:511:16 | ...[...] | +| semantics.rb:511:10:511:10 | h [element] | semantics.rb:511:10:511:16 | ...[...] | +| semantics.rb:511:10:511:10 | h [element] | semantics.rb:511:10:511:16 | ...[...] | +| semantics.rb:513:5:513:5 | x [element :bar] | semantics.rb:516:10:516:10 | x [element :bar] | +| semantics.rb:513:5:513:5 | x [element :bar] | semantics.rb:516:10:516:10 | x [element :bar] | +| semantics.rb:513:9:513:9 | h [element :bar] | semantics.rb:513:9:513:15 | call to s54 [element :bar] | +| semantics.rb:513:9:513:9 | h [element :bar] | semantics.rb:513:9:513:15 | call to s54 [element :bar] | +| semantics.rb:513:9:513:15 | call to s54 [element :bar] | semantics.rb:513:5:513:5 | x [element :bar] | +| semantics.rb:513:9:513:15 | call to s54 [element :bar] | semantics.rb:513:5:513:5 | x [element :bar] | +| semantics.rb:516:10:516:10 | x [element :bar] | semantics.rb:516:10:516:16 | ...[...] | +| semantics.rb:516:10:516:10 | x [element :bar] | semantics.rb:516:10:516:16 | ...[...] | nodes | semantics.rb:2:5:2:5 | a | semmle.label | a | | semantics.rb:2:5:2:5 | a | semmle.label | a | @@ -1122,12 +1175,12 @@ nodes | semantics.rb:60:9:60:18 | call to source | semmle.label | call to source | | semantics.rb:61:10:61:15 | call to s10 | semmle.label | call to s10 | | semantics.rb:61:10:61:15 | call to s10 | semmle.label | call to s10 | -| semantics.rb:61:10:61:15 | call to s10 [element 0] | semmle.label | call to s10 [element 0] | +| semantics.rb:61:10:61:15 | call to s10 [splat position 0] | semmle.label | call to s10 [splat position 0] | | semantics.rb:61:14:61:14 | a | semmle.label | a | | semantics.rb:61:14:61:14 | a | semmle.label | a | | semantics.rb:62:10:62:18 | call to s10 | semmle.label | call to s10 | | semantics.rb:62:10:62:18 | call to s10 | semmle.label | call to s10 | -| semantics.rb:62:10:62:18 | call to s10 [element 1] | semmle.label | call to s10 [element 1] | +| semantics.rb:62:10:62:18 | call to s10 [splat position 1] | semmle.label | call to s10 [splat position 1] | | semantics.rb:62:17:62:17 | a | semmle.label | a | | semantics.rb:62:17:62:17 | a | semmle.label | a | | semantics.rb:63:10:63:20 | call to s10 | semmle.label | call to s10 | @@ -1193,11 +1246,25 @@ nodes | semantics.rb:103:10:103:10 | z | semmle.label | z | | semantics.rb:103:10:103:10 | z | semmle.label | z | | semantics.rb:107:5:107:5 | a | semmle.label | a | +| semantics.rb:107:5:107:5 | a | semmle.label | a | | semantics.rb:107:9:107:18 | call to source | semmle.label | call to source | -| semantics.rb:109:10:109:17 | call to s15 | semmle.label | call to s15 | -| semantics.rb:109:14:109:16 | ** ... | semmle.label | ** ... | -| semantics.rb:110:10:110:31 | call to s15 | semmle.label | call to s15 | -| semantics.rb:110:28:110:30 | ** ... | semmle.label | ** ... | +| semantics.rb:107:9:107:18 | call to source | semmle.label | call to source | +| semantics.rb:108:5:108:5 | b | semmle.label | b | +| semantics.rb:108:5:108:5 | b | semmle.label | b | +| semantics.rb:108:9:108:18 | call to source | semmle.label | call to source | +| semantics.rb:108:9:108:18 | call to source | semmle.label | call to source | +| semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | semmle.label | call to s15 [hash-splat position :foo] | +| semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | semmle.label | call to s15 [hash-splat position :foo] | +| semantics.rb:109:10:109:34 | ...[...] | semmle.label | ...[...] | +| semantics.rb:109:10:109:34 | ...[...] | semmle.label | ...[...] | +| semantics.rb:109:19:109:19 | a | semmle.label | a | +| semantics.rb:109:19:109:19 | a | semmle.label | a | +| semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | semmle.label | call to s15 [hash-splat position :bar] | +| semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | semmle.label | call to s15 [hash-splat position :bar] | +| semantics.rb:110:10:110:34 | ...[...] | semmle.label | ...[...] | +| semantics.rb:110:10:110:34 | ...[...] | semmle.label | ...[...] | +| semantics.rb:110:27:110:27 | b | semmle.label | b | +| semantics.rb:110:27:110:27 | b | semmle.label | b | | semantics.rb:114:5:114:5 | a | semmle.label | a | | semantics.rb:114:5:114:5 | a | semmle.label | a | | semantics.rb:114:9:114:18 | call to source | semmle.label | call to source | @@ -1232,184 +1299,225 @@ nodes | semantics.rb:125:5:125:5 | a | semmle.label | a | | semantics.rb:125:9:125:18 | call to source | semmle.label | call to source | | semantics.rb:125:9:125:18 | call to source | semmle.label | call to source | -| semantics.rb:126:9:126:9 | a | semmle.label | a | -| semantics.rb:126:9:126:9 | a | semmle.label | a | -| semantics.rb:126:12:126:14 | [post] ** ... | semmle.label | [post] ** ... | -| semantics.rb:126:12:126:14 | [post] ** ... | semmle.label | [post] ** ... | -| semantics.rb:127:10:127:10 | h | semmle.label | h | -| semantics.rb:127:10:127:10 | h | semmle.label | h | -| semantics.rb:141:5:141:5 | b | semmle.label | b | -| semantics.rb:141:5:141:5 | b | semmle.label | b | -| semantics.rb:141:9:141:18 | call to source | semmle.label | call to source | -| semantics.rb:141:9:141:18 | call to source | semmle.label | call to source | -| semantics.rb:145:5:145:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:145:5:145:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:147:10:147:15 | call to s19 | semmle.label | call to s19 | -| semantics.rb:147:10:147:15 | call to s19 | semmle.label | call to s19 | -| semantics.rb:147:14:147:14 | h [element] | semmle.label | h [element] | -| semantics.rb:147:14:147:14 | h [element] | semmle.label | h [element] | -| semantics.rb:151:5:151:5 | a | semmle.label | a | -| semantics.rb:151:5:151:5 | a | semmle.label | a | -| semantics.rb:151:9:151:18 | call to source | semmle.label | call to source | -| semantics.rb:151:9:151:18 | call to source | semmle.label | call to source | -| semantics.rb:152:5:152:5 | x [element] | semmle.label | x [element] | -| semantics.rb:152:5:152:5 | x [element] | semmle.label | x [element] | -| semantics.rb:152:9:152:14 | call to s20 [element] | semmle.label | call to s20 [element] | -| semantics.rb:152:9:152:14 | call to s20 [element] | semmle.label | call to s20 [element] | -| semantics.rb:152:13:152:13 | a | semmle.label | a | -| semantics.rb:152:13:152:13 | a | semmle.label | a | -| semantics.rb:153:10:153:10 | x [element] | semmle.label | x [element] | -| semantics.rb:153:10:153:10 | x [element] | semmle.label | x [element] | -| semantics.rb:153:10:153:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:153:10:153:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:126:5:126:5 | b | semmle.label | b | +| semantics.rb:126:5:126:5 | b | semmle.label | b | +| semantics.rb:126:9:126:18 | call to source | semmle.label | call to source | +| semantics.rb:126:9:126:18 | call to source | semmle.label | call to source | +| semantics.rb:127:10:127:18 | call to s17 | semmle.label | call to s17 | +| semantics.rb:127:10:127:18 | call to s17 [splat position 0] | semmle.label | call to s17 [splat position 0] | +| semantics.rb:127:10:127:18 | call to s17 [splat position 1] | semmle.label | call to s17 [splat position 1] | +| semantics.rb:127:14:127:14 | a | semmle.label | a | +| semantics.rb:127:17:127:17 | b | semmle.label | b | +| semantics.rb:128:10:128:18 | call to s17 [splat position 0] | semmle.label | call to s17 [splat position 0] | +| semantics.rb:128:10:128:18 | call to s17 [splat position 0] | semmle.label | call to s17 [splat position 0] | +| semantics.rb:128:10:128:21 | ...[...] | semmle.label | ...[...] | +| semantics.rb:128:10:128:21 | ...[...] | semmle.label | ...[...] | +| semantics.rb:128:14:128:14 | a | semmle.label | a | +| semantics.rb:128:14:128:14 | a | semmle.label | a | +| semantics.rb:129:10:129:18 | call to s17 [splat position 1] | semmle.label | call to s17 [splat position 1] | +| semantics.rb:129:10:129:18 | call to s17 [splat position 1] | semmle.label | call to s17 [splat position 1] | +| semantics.rb:129:10:129:21 | ...[...] | semmle.label | ...[...] | +| semantics.rb:129:10:129:21 | ...[...] | semmle.label | ...[...] | +| semantics.rb:129:17:129:17 | b | semmle.label | b | +| semantics.rb:129:17:129:17 | b | semmle.label | b | +| semantics.rb:133:5:133:5 | a | semmle.label | a | +| semantics.rb:133:5:133:5 | a | semmle.label | a | +| semantics.rb:133:9:133:18 | call to source | semmle.label | call to source | +| semantics.rb:133:9:133:18 | call to source | semmle.label | call to source | +| semantics.rb:134:5:134:5 | b | semmle.label | b | +| semantics.rb:134:5:134:5 | b | semmle.label | b | +| semantics.rb:134:9:134:18 | call to source | semmle.label | call to source | +| semantics.rb:134:9:134:18 | call to source | semmle.label | call to source | +| semantics.rb:135:5:135:7 | arr [element 0] | semmle.label | arr [element 0] | +| semantics.rb:135:5:135:7 | arr [element 0] | semmle.label | arr [element 0] | +| semantics.rb:135:5:135:7 | arr [element 1] | semmle.label | arr [element 1] | +| semantics.rb:135:5:135:7 | arr [element 1] | semmle.label | arr [element 1] | +| semantics.rb:135:12:135:12 | a | semmle.label | a | +| semantics.rb:135:12:135:12 | a | semmle.label | a | +| semantics.rb:135:15:135:15 | b | semmle.label | b | +| semantics.rb:135:15:135:15 | b | semmle.label | b | +| semantics.rb:136:10:136:18 | call to s18 | semmle.label | call to s18 | +| semantics.rb:136:10:136:18 | call to s18 | semmle.label | call to s18 | +| semantics.rb:136:14:136:17 | * ... [element 0] | semmle.label | * ... [element 0] | +| semantics.rb:136:14:136:17 | * ... [element 0] | semmle.label | * ... [element 0] | +| semantics.rb:136:14:136:17 | * ... [element 1] | semmle.label | * ... [element 1] | +| semantics.rb:136:14:136:17 | * ... [element 1] | semmle.label | * ... [element 1] | +| semantics.rb:136:15:136:17 | arr [element 0] | semmle.label | arr [element 0] | +| semantics.rb:136:15:136:17 | arr [element 0] | semmle.label | arr [element 0] | +| semantics.rb:136:15:136:17 | arr [element 1] | semmle.label | arr [element 1] | +| semantics.rb:136:15:136:17 | arr [element 1] | semmle.label | arr [element 1] | +| semantics.rb:137:10:137:15 | call to s18 | semmle.label | call to s18 | +| semantics.rb:137:10:137:15 | call to s18 | semmle.label | call to s18 | +| semantics.rb:137:14:137:14 | a | semmle.label | a | +| semantics.rb:137:14:137:14 | a | semmle.label | a | +| semantics.rb:142:5:142:5 | b | semmle.label | b | +| semantics.rb:142:5:142:5 | b | semmle.label | b | +| semantics.rb:142:9:142:18 | call to source | semmle.label | call to source | +| semantics.rb:142:9:142:18 | call to source | semmle.label | call to source | +| semantics.rb:146:5:146:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:146:5:146:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:148:10:148:15 | call to s19 | semmle.label | call to s19 | +| semantics.rb:148:10:148:15 | call to s19 | semmle.label | call to s19 | +| semantics.rb:148:14:148:14 | h [element] | semmle.label | h [element] | +| semantics.rb:148:14:148:14 | h [element] | semmle.label | h [element] | +| semantics.rb:152:5:152:5 | a | semmle.label | a | +| semantics.rb:152:5:152:5 | a | semmle.label | a | +| semantics.rb:152:9:152:18 | call to source | semmle.label | call to source | +| semantics.rb:152:9:152:18 | call to source | semmle.label | call to source | +| semantics.rb:153:5:153:5 | x [element] | semmle.label | x [element] | +| semantics.rb:153:5:153:5 | x [element] | semmle.label | x [element] | +| semantics.rb:153:9:153:14 | call to s20 [element] | semmle.label | call to s20 [element] | +| semantics.rb:153:9:153:14 | call to s20 [element] | semmle.label | call to s20 [element] | +| semantics.rb:153:13:153:13 | a | semmle.label | a | +| semantics.rb:153:13:153:13 | a | semmle.label | a | | semantics.rb:154:10:154:10 | x [element] | semmle.label | x [element] | | semantics.rb:154:10:154:10 | x [element] | semmle.label | x [element] | | semantics.rb:154:10:154:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:154:10:154:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:158:5:158:5 | a | semmle.label | a | -| semantics.rb:158:5:158:5 | a | semmle.label | a | -| semantics.rb:158:9:158:18 | call to source | semmle.label | call to source | -| semantics.rb:158:9:158:18 | call to source | semmle.label | call to source | -| semantics.rb:159:5:159:5 | b | semmle.label | b | -| semantics.rb:159:5:159:5 | b | semmle.label | b | +| semantics.rb:155:10:155:10 | x [element] | semmle.label | x [element] | +| semantics.rb:155:10:155:10 | x [element] | semmle.label | x [element] | +| semantics.rb:155:10:155:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:155:10:155:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:159:5:159:5 | a | semmle.label | a | +| semantics.rb:159:5:159:5 | a | semmle.label | a | | semantics.rb:159:9:159:18 | call to source | semmle.label | call to source | | semantics.rb:159:9:159:18 | call to source | semmle.label | call to source | -| semantics.rb:162:5:162:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:162:5:162:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:163:5:163:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:163:5:163:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:165:10:165:15 | call to s21 | semmle.label | call to s21 | -| semantics.rb:165:10:165:15 | call to s21 | semmle.label | call to s21 | -| semantics.rb:165:14:165:14 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:165:14:165:14 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:165:14:165:14 | h [element] | semmle.label | h [element] | -| semantics.rb:165:14:165:14 | h [element] | semmle.label | h [element] | -| semantics.rb:169:5:169:5 | a | semmle.label | a | -| semantics.rb:169:5:169:5 | a | semmle.label | a | -| semantics.rb:169:9:169:18 | call to source | semmle.label | call to source | -| semantics.rb:169:9:169:18 | call to source | semmle.label | call to source | -| semantics.rb:170:5:170:5 | x [element] | semmle.label | x [element] | -| semantics.rb:170:5:170:5 | x [element] | semmle.label | x [element] | -| semantics.rb:170:9:170:14 | call to s22 [element] | semmle.label | call to s22 [element] | -| semantics.rb:170:9:170:14 | call to s22 [element] | semmle.label | call to s22 [element] | -| semantics.rb:170:13:170:13 | a | semmle.label | a | -| semantics.rb:170:13:170:13 | a | semmle.label | a | -| semantics.rb:171:10:171:10 | x [element] | semmle.label | x [element] | -| semantics.rb:171:10:171:10 | x [element] | semmle.label | x [element] | -| semantics.rb:171:10:171:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:171:10:171:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:160:5:160:5 | b | semmle.label | b | +| semantics.rb:160:5:160:5 | b | semmle.label | b | +| semantics.rb:160:9:160:18 | call to source | semmle.label | call to source | +| semantics.rb:160:9:160:18 | call to source | semmle.label | call to source | +| semantics.rb:163:5:163:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:163:5:163:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:164:5:164:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:164:5:164:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:166:10:166:15 | call to s21 | semmle.label | call to s21 | +| semantics.rb:166:10:166:15 | call to s21 | semmle.label | call to s21 | +| semantics.rb:166:14:166:14 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:166:14:166:14 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:166:14:166:14 | h [element] | semmle.label | h [element] | +| semantics.rb:166:14:166:14 | h [element] | semmle.label | h [element] | +| semantics.rb:170:5:170:5 | a | semmle.label | a | +| semantics.rb:170:5:170:5 | a | semmle.label | a | +| semantics.rb:170:9:170:18 | call to source | semmle.label | call to source | +| semantics.rb:170:9:170:18 | call to source | semmle.label | call to source | +| semantics.rb:171:5:171:5 | x [element] | semmle.label | x [element] | +| semantics.rb:171:5:171:5 | x [element] | semmle.label | x [element] | +| semantics.rb:171:9:171:14 | call to s22 [element] | semmle.label | call to s22 [element] | +| semantics.rb:171:9:171:14 | call to s22 [element] | semmle.label | call to s22 [element] | +| semantics.rb:171:13:171:13 | a | semmle.label | a | +| semantics.rb:171:13:171:13 | a | semmle.label | a | | semantics.rb:172:10:172:10 | x [element] | semmle.label | x [element] | | semantics.rb:172:10:172:10 | x [element] | semmle.label | x [element] | | semantics.rb:172:10:172:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:172:10:172:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:176:5:176:5 | a | semmle.label | a | -| semantics.rb:176:5:176:5 | a | semmle.label | a | -| semantics.rb:176:9:176:18 | call to source | semmle.label | call to source | -| semantics.rb:176:9:176:18 | call to source | semmle.label | call to source | -| semantics.rb:179:5:179:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:179:5:179:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:173:10:173:10 | x [element] | semmle.label | x [element] | +| semantics.rb:173:10:173:10 | x [element] | semmle.label | x [element] | +| semantics.rb:173:10:173:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:173:10:173:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:177:5:177:5 | a | semmle.label | a | +| semantics.rb:177:5:177:5 | a | semmle.label | a | +| semantics.rb:177:9:177:18 | call to source | semmle.label | call to source | +| semantics.rb:177:9:177:18 | call to source | semmle.label | call to source | | semantics.rb:180:5:180:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | | semantics.rb:180:5:180:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:180:5:180:5 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:180:5:180:5 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:181:10:181:15 | call to s23 | semmle.label | call to s23 | -| semantics.rb:181:10:181:15 | call to s23 | semmle.label | call to s23 | -| semantics.rb:181:14:181:14 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:181:14:181:14 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:185:5:185:5 | a | semmle.label | a | -| semantics.rb:185:5:185:5 | a | semmle.label | a | -| semantics.rb:185:9:185:18 | call to source | semmle.label | call to source | -| semantics.rb:185:9:185:18 | call to source | semmle.label | call to source | -| semantics.rb:186:5:186:5 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:186:5:186:5 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:186:9:186:14 | call to s24 [element 0] | semmle.label | call to s24 [element 0] | -| semantics.rb:186:9:186:14 | call to s24 [element 0] | semmle.label | call to s24 [element 0] | -| semantics.rb:186:13:186:13 | a | semmle.label | a | -| semantics.rb:186:13:186:13 | a | semmle.label | a | -| semantics.rb:187:10:187:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:187:10:187:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:187:10:187:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:187:10:187:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:189:10:189:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:189:10:189:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:189:10:189:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:189:10:189:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:193:5:193:5 | a | semmle.label | a | -| semantics.rb:193:5:193:5 | a | semmle.label | a | -| semantics.rb:193:9:193:18 | call to source | semmle.label | call to source | -| semantics.rb:193:9:193:18 | call to source | semmle.label | call to source | -| semantics.rb:196:5:196:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:196:5:196:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:181:5:181:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:181:5:181:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:181:5:181:5 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:181:5:181:5 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:182:10:182:15 | call to s23 | semmle.label | call to s23 | +| semantics.rb:182:10:182:15 | call to s23 | semmle.label | call to s23 | +| semantics.rb:182:14:182:14 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:182:14:182:14 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:186:5:186:5 | a | semmle.label | a | +| semantics.rb:186:5:186:5 | a | semmle.label | a | +| semantics.rb:186:9:186:18 | call to source | semmle.label | call to source | +| semantics.rb:186:9:186:18 | call to source | semmle.label | call to source | +| semantics.rb:187:5:187:5 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:187:5:187:5 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:187:9:187:14 | call to s24 [element 0] | semmle.label | call to s24 [element 0] | +| semantics.rb:187:9:187:14 | call to s24 [element 0] | semmle.label | call to s24 [element 0] | +| semantics.rb:187:13:187:13 | a | semmle.label | a | +| semantics.rb:187:13:187:13 | a | semmle.label | a | +| semantics.rb:188:10:188:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:188:10:188:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:188:10:188:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:188:10:188:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:190:10:190:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:190:10:190:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:190:10:190:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:190:10:190:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:194:5:194:5 | a | semmle.label | a | +| semantics.rb:194:5:194:5 | a | semmle.label | a | +| semantics.rb:194:9:194:18 | call to source | semmle.label | call to source | +| semantics.rb:194:9:194:18 | call to source | semmle.label | call to source | | semantics.rb:197:5:197:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | | semantics.rb:197:5:197:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:197:5:197:5 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:197:5:197:5 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:198:10:198:15 | call to s25 | semmle.label | call to s25 | -| semantics.rb:198:10:198:15 | call to s25 | semmle.label | call to s25 | -| semantics.rb:198:14:198:14 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:198:14:198:14 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:202:5:202:5 | a | semmle.label | a | -| semantics.rb:202:5:202:5 | a | semmle.label | a | -| semantics.rb:202:9:202:18 | call to source | semmle.label | call to source | -| semantics.rb:202:9:202:18 | call to source | semmle.label | call to source | -| semantics.rb:203:5:203:5 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:203:5:203:5 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:203:9:203:14 | call to s26 [element 0] | semmle.label | call to s26 [element 0] | -| semantics.rb:203:9:203:14 | call to s26 [element 0] | semmle.label | call to s26 [element 0] | -| semantics.rb:203:13:203:13 | a | semmle.label | a | -| semantics.rb:203:13:203:13 | a | semmle.label | a | -| semantics.rb:204:10:204:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:204:10:204:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:204:10:204:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:204:10:204:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:206:10:206:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:206:10:206:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:206:10:206:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:206:10:206:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:211:5:211:5 | b | semmle.label | b | -| semantics.rb:211:5:211:5 | b | semmle.label | b | -| semantics.rb:211:9:211:18 | call to source | semmle.label | call to source | -| semantics.rb:211:9:211:18 | call to source | semmle.label | call to source | -| semantics.rb:212:5:212:5 | c | semmle.label | c | -| semantics.rb:212:5:212:5 | c | semmle.label | c | +| semantics.rb:198:5:198:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:198:5:198:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:198:5:198:5 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:198:5:198:5 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:199:10:199:15 | call to s25 | semmle.label | call to s25 | +| semantics.rb:199:10:199:15 | call to s25 | semmle.label | call to s25 | +| semantics.rb:199:14:199:14 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:199:14:199:14 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:203:5:203:5 | a | semmle.label | a | +| semantics.rb:203:5:203:5 | a | semmle.label | a | +| semantics.rb:203:9:203:18 | call to source | semmle.label | call to source | +| semantics.rb:203:9:203:18 | call to source | semmle.label | call to source | +| semantics.rb:204:5:204:5 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:204:5:204:5 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:204:9:204:14 | call to s26 [element 0] | semmle.label | call to s26 [element 0] | +| semantics.rb:204:9:204:14 | call to s26 [element 0] | semmle.label | call to s26 [element 0] | +| semantics.rb:204:13:204:13 | a | semmle.label | a | +| semantics.rb:204:13:204:13 | a | semmle.label | a | +| semantics.rb:205:10:205:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:205:10:205:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:205:10:205:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:205:10:205:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:207:10:207:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:207:10:207:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:207:10:207:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:207:10:207:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:212:5:212:5 | b | semmle.label | b | +| semantics.rb:212:5:212:5 | b | semmle.label | b | | semantics.rb:212:9:212:18 | call to source | semmle.label | call to source | | semantics.rb:212:9:212:18 | call to source | semmle.label | call to source | -| semantics.rb:213:5:213:5 | d | semmle.label | d | -| semantics.rb:213:5:213:5 | d | semmle.label | d | +| semantics.rb:213:5:213:5 | c | semmle.label | c | +| semantics.rb:213:5:213:5 | c | semmle.label | c | | semantics.rb:213:9:213:18 | call to source | semmle.label | call to source | | semantics.rb:213:9:213:18 | call to source | semmle.label | call to source | -| semantics.rb:217:5:217:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:217:5:217:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:214:5:214:5 | d | semmle.label | d | +| semantics.rb:214:5:214:5 | d | semmle.label | d | +| semantics.rb:214:9:214:18 | call to source | semmle.label | call to source | +| semantics.rb:214:9:214:18 | call to source | semmle.label | call to source | | semantics.rb:218:5:218:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | | semantics.rb:218:5:218:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:218:5:218:5 | [post] h [element 2] | semmle.label | [post] h [element 2] | -| semantics.rb:218:5:218:5 | [post] h [element 2] | semmle.label | [post] h [element 2] | -| semantics.rb:218:5:218:5 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:218:5:218:5 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:219:5:219:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:219:5:219:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:221:10:221:15 | call to s27 | semmle.label | call to s27 | -| semantics.rb:221:10:221:15 | call to s27 | semmle.label | call to s27 | -| semantics.rb:221:14:221:14 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:221:14:221:14 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:221:14:221:14 | h [element 2] | semmle.label | h [element 2] | -| semantics.rb:221:14:221:14 | h [element 2] | semmle.label | h [element 2] | -| semantics.rb:221:14:221:14 | h [element] | semmle.label | h [element] | -| semantics.rb:221:14:221:14 | h [element] | semmle.label | h [element] | -| semantics.rb:225:5:225:5 | a | semmle.label | a | -| semantics.rb:225:5:225:5 | a | semmle.label | a | -| semantics.rb:225:9:225:18 | call to source | semmle.label | call to source | -| semantics.rb:225:9:225:18 | call to source | semmle.label | call to source | -| semantics.rb:226:5:226:5 | x [element] | semmle.label | x [element] | -| semantics.rb:226:5:226:5 | x [element] | semmle.label | x [element] | -| semantics.rb:226:9:226:14 | call to s28 [element] | semmle.label | call to s28 [element] | -| semantics.rb:226:9:226:14 | call to s28 [element] | semmle.label | call to s28 [element] | -| semantics.rb:226:13:226:13 | a | semmle.label | a | -| semantics.rb:226:13:226:13 | a | semmle.label | a | -| semantics.rb:227:10:227:10 | x [element] | semmle.label | x [element] | -| semantics.rb:227:10:227:10 | x [element] | semmle.label | x [element] | -| semantics.rb:227:10:227:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:227:10:227:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:219:5:219:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:219:5:219:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:219:5:219:5 | [post] h [element 2] | semmle.label | [post] h [element 2] | +| semantics.rb:219:5:219:5 | [post] h [element 2] | semmle.label | [post] h [element 2] | +| semantics.rb:219:5:219:5 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:219:5:219:5 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:220:5:220:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:220:5:220:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:222:10:222:15 | call to s27 | semmle.label | call to s27 | +| semantics.rb:222:10:222:15 | call to s27 | semmle.label | call to s27 | +| semantics.rb:222:14:222:14 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:222:14:222:14 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:222:14:222:14 | h [element 2] | semmle.label | h [element 2] | +| semantics.rb:222:14:222:14 | h [element 2] | semmle.label | h [element 2] | +| semantics.rb:222:14:222:14 | h [element] | semmle.label | h [element] | +| semantics.rb:222:14:222:14 | h [element] | semmle.label | h [element] | +| semantics.rb:226:5:226:5 | a | semmle.label | a | +| semantics.rb:226:5:226:5 | a | semmle.label | a | +| semantics.rb:226:9:226:18 | call to source | semmle.label | call to source | +| semantics.rb:226:9:226:18 | call to source | semmle.label | call to source | +| semantics.rb:227:5:227:5 | x [element] | semmle.label | x [element] | +| semantics.rb:227:5:227:5 | x [element] | semmle.label | x [element] | +| semantics.rb:227:9:227:14 | call to s28 [element] | semmle.label | call to s28 [element] | +| semantics.rb:227:9:227:14 | call to s28 [element] | semmle.label | call to s28 [element] | +| semantics.rb:227:13:227:13 | a | semmle.label | a | +| semantics.rb:227:13:227:13 | a | semmle.label | a | | semantics.rb:228:10:228:10 | x [element] | semmle.label | x [element] | | semantics.rb:228:10:228:10 | x [element] | semmle.label | x [element] | | semantics.rb:228:10:228:13 | ...[...] | semmle.label | ...[...] | @@ -1422,42 +1530,42 @@ nodes | semantics.rb:230:10:230:10 | x [element] | semmle.label | x [element] | | semantics.rb:230:10:230:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:230:10:230:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:235:5:235:5 | b | semmle.label | b | -| semantics.rb:235:5:235:5 | b | semmle.label | b | -| semantics.rb:235:9:235:18 | call to source | semmle.label | call to source | -| semantics.rb:235:9:235:18 | call to source | semmle.label | call to source | -| semantics.rb:236:5:236:5 | c | semmle.label | c | -| semantics.rb:236:5:236:5 | c | semmle.label | c | +| semantics.rb:231:10:231:10 | x [element] | semmle.label | x [element] | +| semantics.rb:231:10:231:10 | x [element] | semmle.label | x [element] | +| semantics.rb:231:10:231:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:231:10:231:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:236:5:236:5 | b | semmle.label | b | +| semantics.rb:236:5:236:5 | b | semmle.label | b | | semantics.rb:236:9:236:18 | call to source | semmle.label | call to source | | semantics.rb:236:9:236:18 | call to source | semmle.label | call to source | -| semantics.rb:240:5:240:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:240:5:240:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:237:5:237:5 | c | semmle.label | c | +| semantics.rb:237:5:237:5 | c | semmle.label | c | +| semantics.rb:237:9:237:18 | call to source | semmle.label | call to source | +| semantics.rb:237:9:237:18 | call to source | semmle.label | call to source | | semantics.rb:241:5:241:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | | semantics.rb:241:5:241:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:241:5:241:5 | [post] h [element 2] | semmle.label | [post] h [element 2] | -| semantics.rb:241:5:241:5 | [post] h [element 2] | semmle.label | [post] h [element 2] | -| semantics.rb:241:5:241:5 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:241:5:241:5 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:244:10:244:15 | call to s29 | semmle.label | call to s29 | -| semantics.rb:244:10:244:15 | call to s29 | semmle.label | call to s29 | -| semantics.rb:244:14:244:14 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:244:14:244:14 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:244:14:244:14 | h [element 2] | semmle.label | h [element 2] | -| semantics.rb:244:14:244:14 | h [element 2] | semmle.label | h [element 2] | -| semantics.rb:248:5:248:5 | a | semmle.label | a | -| semantics.rb:248:5:248:5 | a | semmle.label | a | -| semantics.rb:248:9:248:18 | call to source | semmle.label | call to source | -| semantics.rb:248:9:248:18 | call to source | semmle.label | call to source | -| semantics.rb:249:5:249:5 | x [element] | semmle.label | x [element] | -| semantics.rb:249:5:249:5 | x [element] | semmle.label | x [element] | -| semantics.rb:249:9:249:14 | call to s30 [element] | semmle.label | call to s30 [element] | -| semantics.rb:249:9:249:14 | call to s30 [element] | semmle.label | call to s30 [element] | -| semantics.rb:249:13:249:13 | a | semmle.label | a | -| semantics.rb:249:13:249:13 | a | semmle.label | a | -| semantics.rb:250:10:250:10 | x [element] | semmle.label | x [element] | -| semantics.rb:250:10:250:10 | x [element] | semmle.label | x [element] | -| semantics.rb:250:10:250:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:250:10:250:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:242:5:242:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:242:5:242:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:242:5:242:5 | [post] h [element 2] | semmle.label | [post] h [element 2] | +| semantics.rb:242:5:242:5 | [post] h [element 2] | semmle.label | [post] h [element 2] | +| semantics.rb:242:5:242:5 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:242:5:242:5 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:245:10:245:15 | call to s29 | semmle.label | call to s29 | +| semantics.rb:245:10:245:15 | call to s29 | semmle.label | call to s29 | +| semantics.rb:245:14:245:14 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:245:14:245:14 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:245:14:245:14 | h [element 2] | semmle.label | h [element 2] | +| semantics.rb:245:14:245:14 | h [element 2] | semmle.label | h [element 2] | +| semantics.rb:249:5:249:5 | a | semmle.label | a | +| semantics.rb:249:5:249:5 | a | semmle.label | a | +| semantics.rb:249:9:249:18 | call to source | semmle.label | call to source | +| semantics.rb:249:9:249:18 | call to source | semmle.label | call to source | +| semantics.rb:250:5:250:5 | x [element] | semmle.label | x [element] | +| semantics.rb:250:5:250:5 | x [element] | semmle.label | x [element] | +| semantics.rb:250:9:250:14 | call to s30 [element] | semmle.label | call to s30 [element] | +| semantics.rb:250:9:250:14 | call to s30 [element] | semmle.label | call to s30 [element] | +| semantics.rb:250:13:250:13 | a | semmle.label | a | +| semantics.rb:250:13:250:13 | a | semmle.label | a | | semantics.rb:251:10:251:10 | x [element] | semmle.label | x [element] | | semantics.rb:251:10:251:10 | x [element] | semmle.label | x [element] | | semantics.rb:251:10:251:13 | ...[...] | semmle.label | ...[...] | @@ -1470,76 +1578,66 @@ nodes | semantics.rb:253:10:253:10 | x [element] | semmle.label | x [element] | | semantics.rb:253:10:253:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:253:10:253:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:257:5:257:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:257:5:257:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:257:15:257:25 | call to source | semmle.label | call to source | -| semantics.rb:257:15:257:25 | call to source | semmle.label | call to source | +| semantics.rb:254:10:254:10 | x [element] | semmle.label | x [element] | +| semantics.rb:254:10:254:10 | x [element] | semmle.label | x [element] | +| semantics.rb:254:10:254:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:254:10:254:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:258:5:258:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:258:5:258:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:258:5:258:5 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:258:5:258:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:258:15:258:25 | call to source | semmle.label | call to source | +| semantics.rb:258:15:258:25 | call to source | semmle.label | call to source | | semantics.rb:259:5:259:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:259:5:259:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:259:5:259:5 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:259:5:259:5 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:260:5:260:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:260:5:260:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:260:12:260:22 | call to source | semmle.label | call to source | -| semantics.rb:260:12:260:22 | call to source | semmle.label | call to source | -| semantics.rb:262:10:262:15 | call to s31 | semmle.label | call to s31 | -| semantics.rb:262:10:262:15 | call to s31 | semmle.label | call to s31 | -| semantics.rb:262:14:262:14 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:262:14:262:14 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:262:14:262:14 | h [element] | semmle.label | h [element] | -| semantics.rb:262:14:262:14 | h [element] | semmle.label | h [element] | -| semantics.rb:267:5:267:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | -| semantics.rb:267:5:267:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | -| semantics.rb:267:16:267:26 | call to source | semmle.label | call to source | -| semantics.rb:267:16:267:26 | call to source | semmle.label | call to source | +| semantics.rb:260:5:260:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:260:5:260:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:260:5:260:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:260:5:260:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:261:5:261:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:261:5:261:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:261:12:261:22 | call to source | semmle.label | call to source | +| semantics.rb:261:12:261:22 | call to source | semmle.label | call to source | +| semantics.rb:263:10:263:15 | call to s31 | semmle.label | call to s31 | +| semantics.rb:263:10:263:15 | call to s31 | semmle.label | call to s31 | +| semantics.rb:263:14:263:14 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:263:14:263:14 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:263:14:263:14 | h [element] | semmle.label | h [element] | +| semantics.rb:263:14:263:14 | h [element] | semmle.label | h [element] | | semantics.rb:268:5:268:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | | semantics.rb:268:5:268:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | -| semantics.rb:268:5:268:5 | h [element foo] | semmle.label | h [element foo] | -| semantics.rb:268:5:268:5 | h [element foo] | semmle.label | h [element foo] | +| semantics.rb:268:16:268:26 | call to source | semmle.label | call to source | +| semantics.rb:268:16:268:26 | call to source | semmle.label | call to source | | semantics.rb:269:5:269:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | | semantics.rb:269:5:269:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | | semantics.rb:269:5:269:5 | h [element foo] | semmle.label | h [element foo] | | semantics.rb:269:5:269:5 | h [element foo] | semmle.label | h [element foo] | -| semantics.rb:270:5:270:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:270:5:270:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:270:12:270:22 | call to source | semmle.label | call to source | -| semantics.rb:270:12:270:22 | call to source | semmle.label | call to source | -| semantics.rb:272:10:272:15 | call to s32 | semmle.label | call to s32 | -| semantics.rb:272:10:272:15 | call to s32 | semmle.label | call to s32 | -| semantics.rb:272:14:272:14 | h [element foo] | semmle.label | h [element foo] | -| semantics.rb:272:14:272:14 | h [element foo] | semmle.label | h [element foo] | -| semantics.rb:272:14:272:14 | h [element] | semmle.label | h [element] | -| semantics.rb:272:14:272:14 | h [element] | semmle.label | h [element] | -| semantics.rb:280:5:280:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:280:5:280:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:280:12:280:22 | call to source | semmle.label | call to source | -| semantics.rb:280:12:280:22 | call to source | semmle.label | call to source | -| semantics.rb:281:5:281:5 | [post] h [element nil] | semmle.label | [post] h [element nil] | -| semantics.rb:281:5:281:5 | [post] h [element nil] | semmle.label | [post] h [element nil] | +| semantics.rb:270:5:270:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | +| semantics.rb:270:5:270:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | +| semantics.rb:270:5:270:5 | h [element foo] | semmle.label | h [element foo] | +| semantics.rb:270:5:270:5 | h [element foo] | semmle.label | h [element foo] | +| semantics.rb:271:5:271:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:271:5:271:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:271:12:271:22 | call to source | semmle.label | call to source | +| semantics.rb:271:12:271:22 | call to source | semmle.label | call to source | +| semantics.rb:273:10:273:15 | call to s32 | semmle.label | call to s32 | +| semantics.rb:273:10:273:15 | call to s32 | semmle.label | call to s32 | +| semantics.rb:273:14:273:14 | h [element foo] | semmle.label | h [element foo] | +| semantics.rb:273:14:273:14 | h [element foo] | semmle.label | h [element foo] | +| semantics.rb:273:14:273:14 | h [element] | semmle.label | h [element] | +| semantics.rb:273:14:273:14 | h [element] | semmle.label | h [element] | | semantics.rb:281:5:281:5 | [post] h [element] | semmle.label | [post] h [element] | | semantics.rb:281:5:281:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:281:5:281:5 | h [element] | semmle.label | h [element] | -| semantics.rb:281:5:281:5 | h [element] | semmle.label | h [element] | -| semantics.rb:281:14:281:24 | call to source | semmle.label | call to source | -| semantics.rb:281:14:281:24 | call to source | semmle.label | call to source | +| semantics.rb:281:12:281:22 | call to source | semmle.label | call to source | +| semantics.rb:281:12:281:22 | call to source | semmle.label | call to source | | semantics.rb:282:5:282:5 | [post] h [element nil] | semmle.label | [post] h [element nil] | | semantics.rb:282:5:282:5 | [post] h [element nil] | semmle.label | [post] h [element nil] | -| semantics.rb:282:5:282:5 | [post] h [element true] | semmle.label | [post] h [element true] | -| semantics.rb:282:5:282:5 | [post] h [element true] | semmle.label | [post] h [element true] | | semantics.rb:282:5:282:5 | [post] h [element] | semmle.label | [post] h [element] | | semantics.rb:282:5:282:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:282:5:282:5 | h [element nil] | semmle.label | h [element nil] | -| semantics.rb:282:5:282:5 | h [element nil] | semmle.label | h [element nil] | | semantics.rb:282:5:282:5 | h [element] | semmle.label | h [element] | | semantics.rb:282:5:282:5 | h [element] | semmle.label | h [element] | -| semantics.rb:282:15:282:25 | call to source | semmle.label | call to source | -| semantics.rb:282:15:282:25 | call to source | semmle.label | call to source | -| semantics.rb:283:5:283:5 | [post] h [element false] | semmle.label | [post] h [element false] | -| semantics.rb:283:5:283:5 | [post] h [element false] | semmle.label | [post] h [element false] | +| semantics.rb:282:14:282:24 | call to source | semmle.label | call to source | +| semantics.rb:282:14:282:24 | call to source | semmle.label | call to source | | semantics.rb:283:5:283:5 | [post] h [element nil] | semmle.label | [post] h [element nil] | | semantics.rb:283:5:283:5 | [post] h [element nil] | semmle.label | [post] h [element nil] | | semantics.rb:283:5:283:5 | [post] h [element true] | semmle.label | [post] h [element true] | @@ -1548,224 +1646,232 @@ nodes | semantics.rb:283:5:283:5 | [post] h [element] | semmle.label | [post] h [element] | | semantics.rb:283:5:283:5 | h [element nil] | semmle.label | h [element nil] | | semantics.rb:283:5:283:5 | h [element nil] | semmle.label | h [element nil] | -| semantics.rb:283:5:283:5 | h [element true] | semmle.label | h [element true] | -| semantics.rb:283:5:283:5 | h [element true] | semmle.label | h [element true] | | semantics.rb:283:5:283:5 | h [element] | semmle.label | h [element] | | semantics.rb:283:5:283:5 | h [element] | semmle.label | h [element] | -| semantics.rb:283:16:283:26 | call to source | semmle.label | call to source | -| semantics.rb:283:16:283:26 | call to source | semmle.label | call to source | -| semantics.rb:285:10:285:15 | call to s33 | semmle.label | call to s33 | -| semantics.rb:285:10:285:15 | call to s33 | semmle.label | call to s33 | -| semantics.rb:285:14:285:14 | h [element false] | semmle.label | h [element false] | -| semantics.rb:285:14:285:14 | h [element false] | semmle.label | h [element false] | -| semantics.rb:285:14:285:14 | h [element nil] | semmle.label | h [element nil] | -| semantics.rb:285:14:285:14 | h [element nil] | semmle.label | h [element nil] | -| semantics.rb:285:14:285:14 | h [element true] | semmle.label | h [element true] | -| semantics.rb:285:14:285:14 | h [element true] | semmle.label | h [element true] | -| semantics.rb:285:14:285:14 | h [element] | semmle.label | h [element] | -| semantics.rb:285:14:285:14 | h [element] | semmle.label | h [element] | -| semantics.rb:289:5:289:5 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:289:5:289:5 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:289:9:289:24 | call to s35 [element :foo] | semmle.label | call to s35 [element :foo] | -| semantics.rb:289:9:289:24 | call to s35 [element :foo] | semmle.label | call to s35 [element :foo] | -| semantics.rb:289:13:289:23 | call to source | semmle.label | call to source | -| semantics.rb:289:13:289:23 | call to source | semmle.label | call to source | -| semantics.rb:290:10:290:10 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:290:10:290:10 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:290:10:290:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:290:10:290:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:292:10:292:10 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:292:10:292:10 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:292:10:292:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:292:10:292:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:296:5:296:5 | x [element foo] | semmle.label | x [element foo] | -| semantics.rb:296:5:296:5 | x [element foo] | semmle.label | x [element foo] | -| semantics.rb:296:9:296:24 | call to s36 [element foo] | semmle.label | call to s36 [element foo] | -| semantics.rb:296:9:296:24 | call to s36 [element foo] | semmle.label | call to s36 [element foo] | -| semantics.rb:296:13:296:23 | call to source | semmle.label | call to source | -| semantics.rb:296:13:296:23 | call to source | semmle.label | call to source | -| semantics.rb:298:10:298:10 | x [element foo] | semmle.label | x [element foo] | -| semantics.rb:298:10:298:10 | x [element foo] | semmle.label | x [element foo] | -| semantics.rb:298:10:298:17 | ...[...] | semmle.label | ...[...] | -| semantics.rb:298:10:298:17 | ...[...] | semmle.label | ...[...] | -| semantics.rb:300:10:300:10 | x [element foo] | semmle.label | x [element foo] | -| semantics.rb:300:10:300:10 | x [element foo] | semmle.label | x [element foo] | -| semantics.rb:300:10:300:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:300:10:300:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:304:5:304:5 | x [element true] | semmle.label | x [element true] | -| semantics.rb:304:5:304:5 | x [element true] | semmle.label | x [element true] | -| semantics.rb:304:9:304:24 | call to s37 [element true] | semmle.label | call to s37 [element true] | -| semantics.rb:304:9:304:24 | call to s37 [element true] | semmle.label | call to s37 [element true] | -| semantics.rb:304:13:304:23 | call to source | semmle.label | call to source | -| semantics.rb:304:13:304:23 | call to source | semmle.label | call to source | -| semantics.rb:306:10:306:10 | x [element true] | semmle.label | x [element true] | -| semantics.rb:306:10:306:10 | x [element true] | semmle.label | x [element true] | -| semantics.rb:306:10:306:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:306:10:306:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:308:10:308:10 | x [element true] | semmle.label | x [element true] | -| semantics.rb:308:10:308:10 | x [element true] | semmle.label | x [element true] | -| semantics.rb:308:10:308:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:308:10:308:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:312:5:312:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | -| semantics.rb:312:5:312:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | -| semantics.rb:312:16:312:26 | call to source | semmle.label | call to source | -| semantics.rb:312:16:312:26 | call to source | semmle.label | call to source | -| semantics.rb:315:10:315:15 | call to s38 | semmle.label | call to s38 | -| semantics.rb:315:10:315:15 | call to s38 | semmle.label | call to s38 | -| semantics.rb:315:14:315:14 | h [element foo] | semmle.label | h [element foo] | -| semantics.rb:315:14:315:14 | h [element foo] | semmle.label | h [element foo] | -| semantics.rb:319:5:319:5 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:319:5:319:5 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:319:9:319:24 | call to s39 [element :foo] | semmle.label | call to s39 [element :foo] | -| semantics.rb:319:9:319:24 | call to s39 [element :foo] | semmle.label | call to s39 [element :foo] | -| semantics.rb:319:13:319:23 | call to source | semmle.label | call to source | -| semantics.rb:319:13:319:23 | call to source | semmle.label | call to source | -| semantics.rb:321:10:321:10 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:321:10:321:10 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:321:10:321:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:321:10:321:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:283:15:283:25 | call to source | semmle.label | call to source | +| semantics.rb:283:15:283:25 | call to source | semmle.label | call to source | +| semantics.rb:284:5:284:5 | [post] h [element false] | semmle.label | [post] h [element false] | +| semantics.rb:284:5:284:5 | [post] h [element false] | semmle.label | [post] h [element false] | +| semantics.rb:284:5:284:5 | [post] h [element nil] | semmle.label | [post] h [element nil] | +| semantics.rb:284:5:284:5 | [post] h [element nil] | semmle.label | [post] h [element nil] | +| semantics.rb:284:5:284:5 | [post] h [element true] | semmle.label | [post] h [element true] | +| semantics.rb:284:5:284:5 | [post] h [element true] | semmle.label | [post] h [element true] | +| semantics.rb:284:5:284:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:284:5:284:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:284:5:284:5 | h [element nil] | semmle.label | h [element nil] | +| semantics.rb:284:5:284:5 | h [element nil] | semmle.label | h [element nil] | +| semantics.rb:284:5:284:5 | h [element true] | semmle.label | h [element true] | +| semantics.rb:284:5:284:5 | h [element true] | semmle.label | h [element true] | +| semantics.rb:284:5:284:5 | h [element] | semmle.label | h [element] | +| semantics.rb:284:5:284:5 | h [element] | semmle.label | h [element] | +| semantics.rb:284:16:284:26 | call to source | semmle.label | call to source | +| semantics.rb:284:16:284:26 | call to source | semmle.label | call to source | +| semantics.rb:286:10:286:15 | call to s33 | semmle.label | call to s33 | +| semantics.rb:286:10:286:15 | call to s33 | semmle.label | call to s33 | +| semantics.rb:286:14:286:14 | h [element false] | semmle.label | h [element false] | +| semantics.rb:286:14:286:14 | h [element false] | semmle.label | h [element false] | +| semantics.rb:286:14:286:14 | h [element nil] | semmle.label | h [element nil] | +| semantics.rb:286:14:286:14 | h [element nil] | semmle.label | h [element nil] | +| semantics.rb:286:14:286:14 | h [element true] | semmle.label | h [element true] | +| semantics.rb:286:14:286:14 | h [element true] | semmle.label | h [element true] | +| semantics.rb:286:14:286:14 | h [element] | semmle.label | h [element] | +| semantics.rb:286:14:286:14 | h [element] | semmle.label | h [element] | +| semantics.rb:290:5:290:5 | x [element :foo] | semmle.label | x [element :foo] | +| semantics.rb:290:5:290:5 | x [element :foo] | semmle.label | x [element :foo] | +| semantics.rb:290:9:290:24 | call to s35 [element :foo] | semmle.label | call to s35 [element :foo] | +| semantics.rb:290:9:290:24 | call to s35 [element :foo] | semmle.label | call to s35 [element :foo] | +| semantics.rb:290:13:290:23 | call to source | semmle.label | call to source | +| semantics.rb:290:13:290:23 | call to source | semmle.label | call to source | +| semantics.rb:291:10:291:10 | x [element :foo] | semmle.label | x [element :foo] | +| semantics.rb:291:10:291:10 | x [element :foo] | semmle.label | x [element :foo] | +| semantics.rb:291:10:291:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:291:10:291:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:293:10:293:10 | x [element :foo] | semmle.label | x [element :foo] | +| semantics.rb:293:10:293:10 | x [element :foo] | semmle.label | x [element :foo] | +| semantics.rb:293:10:293:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:293:10:293:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:297:5:297:5 | x [element foo] | semmle.label | x [element foo] | +| semantics.rb:297:5:297:5 | x [element foo] | semmle.label | x [element foo] | +| semantics.rb:297:9:297:24 | call to s36 [element foo] | semmle.label | call to s36 [element foo] | +| semantics.rb:297:9:297:24 | call to s36 [element foo] | semmle.label | call to s36 [element foo] | +| semantics.rb:297:13:297:23 | call to source | semmle.label | call to source | +| semantics.rb:297:13:297:23 | call to source | semmle.label | call to source | +| semantics.rb:299:10:299:10 | x [element foo] | semmle.label | x [element foo] | +| semantics.rb:299:10:299:10 | x [element foo] | semmle.label | x [element foo] | +| semantics.rb:299:10:299:17 | ...[...] | semmle.label | ...[...] | +| semantics.rb:299:10:299:17 | ...[...] | semmle.label | ...[...] | +| semantics.rb:301:10:301:10 | x [element foo] | semmle.label | x [element foo] | +| semantics.rb:301:10:301:10 | x [element foo] | semmle.label | x [element foo] | +| semantics.rb:301:10:301:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:301:10:301:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:305:5:305:5 | x [element true] | semmle.label | x [element true] | +| semantics.rb:305:5:305:5 | x [element true] | semmle.label | x [element true] | +| semantics.rb:305:9:305:24 | call to s37 [element true] | semmle.label | call to s37 [element true] | +| semantics.rb:305:9:305:24 | call to s37 [element true] | semmle.label | call to s37 [element true] | +| semantics.rb:305:13:305:23 | call to source | semmle.label | call to source | +| semantics.rb:305:13:305:23 | call to source | semmle.label | call to source | +| semantics.rb:307:10:307:10 | x [element true] | semmle.label | x [element true] | +| semantics.rb:307:10:307:10 | x [element true] | semmle.label | x [element true] | +| semantics.rb:307:10:307:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:307:10:307:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:309:10:309:10 | x [element true] | semmle.label | x [element true] | +| semantics.rb:309:10:309:10 | x [element true] | semmle.label | x [element true] | +| semantics.rb:309:10:309:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:309:10:309:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:313:5:313:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | +| semantics.rb:313:5:313:5 | [post] h [element foo] | semmle.label | [post] h [element foo] | +| semantics.rb:313:16:313:26 | call to source | semmle.label | call to source | +| semantics.rb:313:16:313:26 | call to source | semmle.label | call to source | +| semantics.rb:316:10:316:15 | call to s38 | semmle.label | call to s38 | +| semantics.rb:316:10:316:15 | call to s38 | semmle.label | call to s38 | +| semantics.rb:316:14:316:14 | h [element foo] | semmle.label | h [element foo] | +| semantics.rb:316:14:316:14 | h [element foo] | semmle.label | h [element foo] | +| semantics.rb:320:5:320:5 | x [element :foo] | semmle.label | x [element :foo] | +| semantics.rb:320:5:320:5 | x [element :foo] | semmle.label | x [element :foo] | +| semantics.rb:320:9:320:24 | call to s39 [element :foo] | semmle.label | call to s39 [element :foo] | +| semantics.rb:320:9:320:24 | call to s39 [element :foo] | semmle.label | call to s39 [element :foo] | +| semantics.rb:320:13:320:23 | call to source | semmle.label | call to source | +| semantics.rb:320:13:320:23 | call to source | semmle.label | call to source | | semantics.rb:322:10:322:10 | x [element :foo] | semmle.label | x [element :foo] | | semantics.rb:322:10:322:10 | x [element :foo] | semmle.label | x [element :foo] | -| semantics.rb:322:10:322:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:322:10:322:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:327:5:327:5 | [post] x [@foo] | semmle.label | [post] x [@foo] | -| semantics.rb:327:5:327:5 | [post] x [@foo] | semmle.label | [post] x [@foo] | -| semantics.rb:327:13:327:23 | call to source | semmle.label | call to source | -| semantics.rb:327:13:327:23 | call to source | semmle.label | call to source | -| semantics.rb:329:10:329:15 | call to s40 | semmle.label | call to s40 | -| semantics.rb:329:10:329:15 | call to s40 | semmle.label | call to s40 | -| semantics.rb:329:14:329:14 | x [@foo] | semmle.label | x [@foo] | -| semantics.rb:329:14:329:14 | x [@foo] | semmle.label | x [@foo] | -| semantics.rb:333:5:333:5 | x [@foo] | semmle.label | x [@foo] | -| semantics.rb:333:5:333:5 | x [@foo] | semmle.label | x [@foo] | -| semantics.rb:333:9:333:24 | call to s41 [@foo] | semmle.label | call to s41 [@foo] | -| semantics.rb:333:9:333:24 | call to s41 [@foo] | semmle.label | call to s41 [@foo] | -| semantics.rb:333:13:333:23 | call to source | semmle.label | call to source | -| semantics.rb:333:13:333:23 | call to source | semmle.label | call to source | -| semantics.rb:334:10:334:10 | x [@foo] | semmle.label | x [@foo] | -| semantics.rb:334:10:334:10 | x [@foo] | semmle.label | x [@foo] | -| semantics.rb:334:10:334:14 | call to foo | semmle.label | call to foo | -| semantics.rb:334:10:334:14 | call to foo | semmle.label | call to foo | -| semantics.rb:339:5:339:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:339:5:339:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:339:12:339:22 | call to source | semmle.label | call to source | -| semantics.rb:339:12:339:22 | call to source | semmle.label | call to source | -| semantics.rb:340:5:340:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:340:5:340:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:322:10:322:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:322:10:322:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:323:10:323:10 | x [element :foo] | semmle.label | x [element :foo] | +| semantics.rb:323:10:323:10 | x [element :foo] | semmle.label | x [element :foo] | +| semantics.rb:323:10:323:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:323:10:323:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:328:5:328:5 | [post] x [@foo] | semmle.label | [post] x [@foo] | +| semantics.rb:328:5:328:5 | [post] x [@foo] | semmle.label | [post] x [@foo] | +| semantics.rb:328:13:328:23 | call to source | semmle.label | call to source | +| semantics.rb:328:13:328:23 | call to source | semmle.label | call to source | +| semantics.rb:330:10:330:15 | call to s40 | semmle.label | call to s40 | +| semantics.rb:330:10:330:15 | call to s40 | semmle.label | call to s40 | +| semantics.rb:330:14:330:14 | x [@foo] | semmle.label | x [@foo] | +| semantics.rb:330:14:330:14 | x [@foo] | semmle.label | x [@foo] | +| semantics.rb:334:5:334:5 | x [@foo] | semmle.label | x [@foo] | +| semantics.rb:334:5:334:5 | x [@foo] | semmle.label | x [@foo] | +| semantics.rb:334:9:334:24 | call to s41 [@foo] | semmle.label | call to s41 [@foo] | +| semantics.rb:334:9:334:24 | call to s41 [@foo] | semmle.label | call to s41 [@foo] | +| semantics.rb:334:13:334:23 | call to source | semmle.label | call to source | +| semantics.rb:334:13:334:23 | call to source | semmle.label | call to source | +| semantics.rb:335:10:335:10 | x [@foo] | semmle.label | x [@foo] | +| semantics.rb:335:10:335:10 | x [@foo] | semmle.label | x [@foo] | +| semantics.rb:335:10:335:14 | call to foo | semmle.label | call to foo | +| semantics.rb:335:10:335:14 | call to foo | semmle.label | call to foo | +| semantics.rb:340:5:340:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:340:5:340:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | | semantics.rb:340:12:340:22 | call to source | semmle.label | call to source | | semantics.rb:340:12:340:22 | call to source | semmle.label | call to source | -| semantics.rb:342:5:342:5 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:342:5:342:5 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:342:5:342:5 | x [element] | semmle.label | x [element] | -| semantics.rb:342:5:342:5 | x [element] | semmle.label | x [element] | -| semantics.rb:342:9:342:14 | call to s42 [element 0] | semmle.label | call to s42 [element 0] | -| semantics.rb:342:9:342:14 | call to s42 [element 0] | semmle.label | call to s42 [element 0] | -| semantics.rb:342:9:342:14 | call to s42 [element] | semmle.label | call to s42 [element] | -| semantics.rb:342:9:342:14 | call to s42 [element] | semmle.label | call to s42 [element] | -| semantics.rb:342:13:342:13 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:342:13:342:13 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:342:13:342:13 | h [element] | semmle.label | h [element] | -| semantics.rb:342:13:342:13 | h [element] | semmle.label | h [element] | -| semantics.rb:344:10:344:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:344:10:344:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:344:10:344:10 | x [element] | semmle.label | x [element] | -| semantics.rb:344:10:344:10 | x [element] | semmle.label | x [element] | -| semantics.rb:344:10:344:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:344:10:344:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:341:5:341:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:341:5:341:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:341:12:341:22 | call to source | semmle.label | call to source | +| semantics.rb:341:12:341:22 | call to source | semmle.label | call to source | +| semantics.rb:343:5:343:5 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:343:5:343:5 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:343:5:343:5 | x [element] | semmle.label | x [element] | +| semantics.rb:343:5:343:5 | x [element] | semmle.label | x [element] | +| semantics.rb:343:9:343:14 | call to s42 [element 0] | semmle.label | call to s42 [element 0] | +| semantics.rb:343:9:343:14 | call to s42 [element 0] | semmle.label | call to s42 [element 0] | +| semantics.rb:343:9:343:14 | call to s42 [element] | semmle.label | call to s42 [element] | +| semantics.rb:343:9:343:14 | call to s42 [element] | semmle.label | call to s42 [element] | +| semantics.rb:343:13:343:13 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:343:13:343:13 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:343:13:343:13 | h [element] | semmle.label | h [element] | +| semantics.rb:343:13:343:13 | h [element] | semmle.label | h [element] | +| semantics.rb:345:10:345:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:345:10:345:10 | x [element 0] | semmle.label | x [element 0] | | semantics.rb:345:10:345:10 | x [element] | semmle.label | x [element] | | semantics.rb:345:10:345:10 | x [element] | semmle.label | x [element] | | semantics.rb:345:10:345:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:345:10:345:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:346:10:346:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:346:10:346:10 | x [element 0] | semmle.label | x [element 0] | | semantics.rb:346:10:346:10 | x [element] | semmle.label | x [element] | | semantics.rb:346:10:346:10 | x [element] | semmle.label | x [element] | | semantics.rb:346:10:346:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:346:10:346:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:350:5:350:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:350:5:350:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:350:12:350:22 | call to source | semmle.label | call to source | -| semantics.rb:350:12:350:22 | call to source | semmle.label | call to source | -| semantics.rb:353:5:353:5 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:353:5:353:5 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:353:9:353:14 | call to s43 [element 0] | semmle.label | call to s43 [element 0] | -| semantics.rb:353:9:353:14 | call to s43 [element 0] | semmle.label | call to s43 [element 0] | -| semantics.rb:353:13:353:13 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:353:13:353:13 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:355:10:355:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:355:10:355:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:355:10:355:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:355:10:355:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:357:10:357:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:357:10:357:10 | x [element 0] | semmle.label | x [element 0] | -| semantics.rb:357:10:357:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:357:10:357:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:362:5:362:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:362:5:362:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:362:12:362:22 | call to source | semmle.label | call to source | -| semantics.rb:362:12:362:22 | call to source | semmle.label | call to source | -| semantics.rb:365:9:365:9 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:365:9:365:9 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:365:9:365:9 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:365:9:365:9 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:368:10:368:10 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:368:10:368:10 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:368:10:368:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:368:10:368:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:347:10:347:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:347:10:347:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:347:10:347:10 | x [element] | semmle.label | x [element] | +| semantics.rb:347:10:347:10 | x [element] | semmle.label | x [element] | +| semantics.rb:347:10:347:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:347:10:347:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:351:5:351:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:351:5:351:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:351:12:351:22 | call to source | semmle.label | call to source | +| semantics.rb:351:12:351:22 | call to source | semmle.label | call to source | +| semantics.rb:354:5:354:5 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:354:5:354:5 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:354:9:354:14 | call to s43 [element 0] | semmle.label | call to s43 [element 0] | +| semantics.rb:354:9:354:14 | call to s43 [element 0] | semmle.label | call to s43 [element 0] | +| semantics.rb:354:13:354:13 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:354:13:354:13 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:356:10:356:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:356:10:356:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:356:10:356:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:356:10:356:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:358:10:358:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:358:10:358:10 | x [element 0] | semmle.label | x [element 0] | +| semantics.rb:358:10:358:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:358:10:358:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:363:5:363:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:363:5:363:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:363:12:363:22 | call to source | semmle.label | call to source | +| semantics.rb:363:12:363:22 | call to source | semmle.label | call to source | +| semantics.rb:366:9:366:9 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:366:9:366:9 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:366:9:366:9 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:366:9:366:9 | h [element 1] | semmle.label | h [element 1] | | semantics.rb:369:10:369:10 | h [element 1] | semmle.label | h [element 1] | | semantics.rb:369:10:369:10 | h [element 1] | semmle.label | h [element 1] | | semantics.rb:369:10:369:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:369:10:369:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:373:5:373:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:373:5:373:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:373:12:373:22 | call to source | semmle.label | call to source | -| semantics.rb:373:12:373:22 | call to source | semmle.label | call to source | +| semantics.rb:370:10:370:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:370:10:370:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:370:10:370:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:370:10:370:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:374:5:374:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | | semantics.rb:374:5:374:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:374:5:374:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:374:5:374:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:374:5:374:5 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:374:5:374:5 | h [element 0] | semmle.label | h [element 0] | | semantics.rb:374:12:374:22 | call to source | semmle.label | call to source | | semantics.rb:374:12:374:22 | call to source | semmle.label | call to source | -| semantics.rb:375:5:375:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:375:5:375:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:375:5:375:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:375:5:375:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:375:5:375:5 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:375:5:375:5 | h [element 0] | semmle.label | h [element 0] | | semantics.rb:375:12:375:22 | call to source | semmle.label | call to source | | semantics.rb:375:12:375:22 | call to source | semmle.label | call to source | -| semantics.rb:377:10:377:10 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:377:10:377:10 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:377:10:377:10 | h [element] | semmle.label | h [element] | -| semantics.rb:377:10:377:10 | h [element] | semmle.label | h [element] | -| semantics.rb:377:10:377:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:377:10:377:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:378:10:378:10 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:378:10:378:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:376:5:376:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:376:5:376:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:376:12:376:22 | call to source | semmle.label | call to source | +| semantics.rb:376:12:376:22 | call to source | semmle.label | call to source | +| semantics.rb:378:10:378:10 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:378:10:378:10 | h [element 0] | semmle.label | h [element 0] | | semantics.rb:378:10:378:10 | h [element] | semmle.label | h [element] | | semantics.rb:378:10:378:10 | h [element] | semmle.label | h [element] | | semantics.rb:378:10:378:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:378:10:378:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:379:10:379:10 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:379:10:379:10 | h [element 0] | semmle.label | h [element 0] | | semantics.rb:379:10:379:10 | h [element 1] | semmle.label | h [element 1] | | semantics.rb:379:10:379:10 | h [element 1] | semmle.label | h [element 1] | | semantics.rb:379:10:379:10 | h [element] | semmle.label | h [element] | | semantics.rb:379:10:379:10 | h [element] | semmle.label | h [element] | | semantics.rb:379:10:379:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:379:10:379:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:381:9:381:9 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:381:9:381:9 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:381:9:381:9 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:381:9:381:9 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:381:9:381:9 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:381:9:381:9 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:381:9:381:9 | h [element] | semmle.label | h [element] | -| semantics.rb:381:9:381:9 | h [element] | semmle.label | h [element] | -| semantics.rb:383:10:383:10 | h [element] | semmle.label | h [element] | -| semantics.rb:383:10:383:10 | h [element] | semmle.label | h [element] | -| semantics.rb:383:10:383:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:383:10:383:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:384:10:384:10 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:384:10:384:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:380:10:380:10 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:380:10:380:10 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:380:10:380:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:380:10:380:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:380:10:380:10 | h [element] | semmle.label | h [element] | +| semantics.rb:380:10:380:10 | h [element] | semmle.label | h [element] | +| semantics.rb:380:10:380:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:380:10:380:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:382:9:382:9 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:382:9:382:9 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:382:9:382:9 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:382:9:382:9 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:382:9:382:9 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:382:9:382:9 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:382:9:382:9 | h [element] | semmle.label | h [element] | +| semantics.rb:382:9:382:9 | h [element] | semmle.label | h [element] | | semantics.rb:384:10:384:10 | h [element] | semmle.label | h [element] | | semantics.rb:384:10:384:10 | h [element] | semmle.label | h [element] | | semantics.rb:384:10:384:13 | ...[...] | semmle.label | ...[...] | @@ -1776,378 +1882,384 @@ nodes | semantics.rb:385:10:385:10 | h [element] | semmle.label | h [element] | | semantics.rb:385:10:385:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:385:10:385:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:389:5:389:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:389:5:389:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:389:12:389:22 | call to source | semmle.label | call to source | -| semantics.rb:389:12:389:22 | call to source | semmle.label | call to source | +| semantics.rb:386:10:386:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:386:10:386:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:386:10:386:10 | h [element] | semmle.label | h [element] | +| semantics.rb:386:10:386:10 | h [element] | semmle.label | h [element] | +| semantics.rb:386:10:386:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:386:10:386:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:390:5:390:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | | semantics.rb:390:5:390:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | -| semantics.rb:390:5:390:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:390:5:390:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | -| semantics.rb:390:5:390:5 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:390:5:390:5 | h [element 0] | semmle.label | h [element 0] | | semantics.rb:390:12:390:22 | call to source | semmle.label | call to source | | semantics.rb:390:12:390:22 | call to source | semmle.label | call to source | -| semantics.rb:391:5:391:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:391:5:391:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:391:5:391:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:391:5:391:5 | [post] h [element 0] | semmle.label | [post] h [element 0] | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semmle.label | [post] h [element 1] | +| semantics.rb:391:5:391:5 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:391:5:391:5 | h [element 0] | semmle.label | h [element 0] | | semantics.rb:391:12:391:22 | call to source | semmle.label | call to source | | semantics.rb:391:12:391:22 | call to source | semmle.label | call to source | -| semantics.rb:393:10:393:10 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:393:10:393:10 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:393:10:393:10 | h [element] | semmle.label | h [element] | -| semantics.rb:393:10:393:10 | h [element] | semmle.label | h [element] | -| semantics.rb:393:10:393:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:393:10:393:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:394:10:394:10 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:394:10:394:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:392:5:392:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:392:5:392:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:392:12:392:22 | call to source | semmle.label | call to source | +| semantics.rb:392:12:392:22 | call to source | semmle.label | call to source | +| semantics.rb:394:10:394:10 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:394:10:394:10 | h [element 0] | semmle.label | h [element 0] | | semantics.rb:394:10:394:10 | h [element] | semmle.label | h [element] | | semantics.rb:394:10:394:10 | h [element] | semmle.label | h [element] | | semantics.rb:394:10:394:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:394:10:394:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:395:10:395:10 | h [element 0] | semmle.label | h [element 0] | -| semantics.rb:395:10:395:10 | h [element 0] | semmle.label | h [element 0] | | semantics.rb:395:10:395:10 | h [element 1] | semmle.label | h [element 1] | | semantics.rb:395:10:395:10 | h [element 1] | semmle.label | h [element 1] | | semantics.rb:395:10:395:10 | h [element] | semmle.label | h [element] | | semantics.rb:395:10:395:10 | h [element] | semmle.label | h [element] | | semantics.rb:395:10:395:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:395:10:395:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:397:5:397:5 | x [element 1] | semmle.label | x [element 1] | -| semantics.rb:397:5:397:5 | x [element 1] | semmle.label | x [element 1] | -| semantics.rb:397:9:397:14 | call to s46 [element 1] | semmle.label | call to s46 [element 1] | -| semantics.rb:397:9:397:14 | call to s46 [element 1] | semmle.label | call to s46 [element 1] | -| semantics.rb:397:13:397:13 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:397:13:397:13 | h [element 1] | semmle.label | h [element 1] | -| semantics.rb:400:10:400:10 | x [element 1] | semmle.label | x [element 1] | -| semantics.rb:400:10:400:10 | x [element 1] | semmle.label | x [element 1] | -| semantics.rb:400:10:400:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:400:10:400:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:396:10:396:10 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:396:10:396:10 | h [element 0] | semmle.label | h [element 0] | +| semantics.rb:396:10:396:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:396:10:396:10 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:396:10:396:10 | h [element] | semmle.label | h [element] | +| semantics.rb:396:10:396:10 | h [element] | semmle.label | h [element] | +| semantics.rb:396:10:396:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:396:10:396:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:398:5:398:5 | x [element 1] | semmle.label | x [element 1] | +| semantics.rb:398:5:398:5 | x [element 1] | semmle.label | x [element 1] | +| semantics.rb:398:9:398:14 | call to s46 [element 1] | semmle.label | call to s46 [element 1] | +| semantics.rb:398:9:398:14 | call to s46 [element 1] | semmle.label | call to s46 [element 1] | +| semantics.rb:398:13:398:13 | h [element 1] | semmle.label | h [element 1] | +| semantics.rb:398:13:398:13 | h [element 1] | semmle.label | h [element 1] | | semantics.rb:401:10:401:10 | x [element 1] | semmle.label | x [element 1] | | semantics.rb:401:10:401:10 | x [element 1] | semmle.label | x [element 1] | | semantics.rb:401:10:401:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:401:10:401:13 | ...[...] | semmle.label | ...[...] | -| semantics.rb:405:5:405:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:405:5:405:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:405:15:405:25 | call to source | semmle.label | call to source | -| semantics.rb:405:15:405:25 | call to source | semmle.label | call to source | -| semantics.rb:406:5:406:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:406:5:406:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:402:10:402:10 | x [element 1] | semmle.label | x [element 1] | +| semantics.rb:402:10:402:10 | x [element 1] | semmle.label | x [element 1] | +| semantics.rb:402:10:402:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:402:10:402:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:406:5:406:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:406:5:406:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:406:5:406:5 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:406:5:406:5 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:406:15:406:25 | call to source | semmle.label | call to source | | semantics.rb:406:15:406:25 | call to source | semmle.label | call to source | -| semantics.rb:407:5:407:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:407:5:407:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:407:12:407:22 | call to source | semmle.label | call to source | -| semantics.rb:407:12:407:22 | call to source | semmle.label | call to source | -| semantics.rb:409:10:409:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:409:10:409:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:409:10:409:10 | h [element] | semmle.label | h [element] | -| semantics.rb:409:10:409:10 | h [element] | semmle.label | h [element] | -| semantics.rb:409:10:409:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:409:10:409:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:410:10:410:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:410:10:410:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:407:5:407:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:407:5:407:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:407:5:407:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:407:5:407:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:407:5:407:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:407:5:407:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:407:15:407:25 | call to source | semmle.label | call to source | +| semantics.rb:407:15:407:25 | call to source | semmle.label | call to source | +| semantics.rb:408:5:408:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:408:5:408:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:408:12:408:22 | call to source | semmle.label | call to source | +| semantics.rb:408:12:408:22 | call to source | semmle.label | call to source | +| semantics.rb:410:10:410:10 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:410:10:410:10 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:410:10:410:10 | h [element] | semmle.label | h [element] | | semantics.rb:410:10:410:10 | h [element] | semmle.label | h [element] | | semantics.rb:410:10:410:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:410:10:410:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:412:5:412:5 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:412:5:412:5 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:412:9:412:14 | call to s47 [element :bar] | semmle.label | call to s47 [element :bar] | -| semantics.rb:412:9:412:14 | call to s47 [element :bar] | semmle.label | call to s47 [element :bar] | -| semantics.rb:412:13:412:13 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:412:13:412:13 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:415:10:415:10 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:415:10:415:10 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:415:10:415:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:415:10:415:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:419:5:419:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:419:5:419:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:419:15:419:25 | call to source | semmle.label | call to source | -| semantics.rb:419:15:419:25 | call to source | semmle.label | call to source | -| semantics.rb:420:5:420:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:420:5:420:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:411:10:411:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:411:10:411:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:411:10:411:10 | h [element] | semmle.label | h [element] | +| semantics.rb:411:10:411:10 | h [element] | semmle.label | h [element] | +| semantics.rb:411:10:411:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:411:10:411:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:413:5:413:5 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:413:5:413:5 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:413:9:413:14 | call to s47 [element :bar] | semmle.label | call to s47 [element :bar] | +| semantics.rb:413:9:413:14 | call to s47 [element :bar] | semmle.label | call to s47 [element :bar] | +| semantics.rb:413:13:413:13 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:413:13:413:13 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:416:10:416:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:416:10:416:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:416:10:416:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:416:10:416:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:420:5:420:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:420:5:420:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:420:5:420:5 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:420:5:420:5 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:420:15:420:25 | call to source | semmle.label | call to source | | semantics.rb:420:15:420:25 | call to source | semmle.label | call to source | -| semantics.rb:421:5:421:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:421:5:421:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:421:12:421:22 | call to source | semmle.label | call to source | -| semantics.rb:421:12:421:22 | call to source | semmle.label | call to source | -| semantics.rb:423:10:423:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:423:10:423:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:423:10:423:10 | h [element] | semmle.label | h [element] | -| semantics.rb:423:10:423:10 | h [element] | semmle.label | h [element] | -| semantics.rb:423:10:423:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:423:10:423:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:424:10:424:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:424:10:424:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:421:5:421:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:421:5:421:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:421:5:421:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:421:5:421:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:421:5:421:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:421:5:421:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:421:15:421:25 | call to source | semmle.label | call to source | +| semantics.rb:421:15:421:25 | call to source | semmle.label | call to source | +| semantics.rb:422:5:422:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:422:5:422:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:422:12:422:22 | call to source | semmle.label | call to source | +| semantics.rb:422:12:422:22 | call to source | semmle.label | call to source | +| semantics.rb:424:10:424:10 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:424:10:424:10 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:424:10:424:10 | h [element] | semmle.label | h [element] | | semantics.rb:424:10:424:10 | h [element] | semmle.label | h [element] | | semantics.rb:424:10:424:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:424:10:424:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:426:5:426:5 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:426:5:426:5 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:426:9:426:14 | call to s48 [element :bar] | semmle.label | call to s48 [element :bar] | -| semantics.rb:426:9:426:14 | call to s48 [element :bar] | semmle.label | call to s48 [element :bar] | -| semantics.rb:426:13:426:13 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:426:13:426:13 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:429:10:429:10 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:429:10:429:10 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:429:10:429:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:429:10:429:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:433:5:433:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:433:5:433:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:433:15:433:25 | call to source | semmle.label | call to source | -| semantics.rb:433:15:433:25 | call to source | semmle.label | call to source | -| semantics.rb:434:5:434:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:434:5:434:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:425:10:425:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:425:10:425:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:425:10:425:10 | h [element] | semmle.label | h [element] | +| semantics.rb:425:10:425:10 | h [element] | semmle.label | h [element] | +| semantics.rb:425:10:425:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:425:10:425:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:427:5:427:5 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:427:5:427:5 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:427:9:427:14 | call to s48 [element :bar] | semmle.label | call to s48 [element :bar] | +| semantics.rb:427:9:427:14 | call to s48 [element :bar] | semmle.label | call to s48 [element :bar] | +| semantics.rb:427:13:427:13 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:427:13:427:13 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:430:10:430:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:430:10:430:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:430:10:430:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:430:10:430:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:434:5:434:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:434:5:434:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:434:5:434:5 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:434:5:434:5 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:434:15:434:25 | call to source | semmle.label | call to source | | semantics.rb:434:15:434:25 | call to source | semmle.label | call to source | -| semantics.rb:435:5:435:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:435:5:435:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:435:12:435:22 | call to source | semmle.label | call to source | -| semantics.rb:435:12:435:22 | call to source | semmle.label | call to source | -| semantics.rb:437:10:437:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:437:10:437:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:437:10:437:10 | h [element] | semmle.label | h [element] | -| semantics.rb:437:10:437:10 | h [element] | semmle.label | h [element] | -| semantics.rb:437:10:437:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:437:10:437:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:438:10:438:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:438:10:438:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:435:5:435:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:435:5:435:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:435:5:435:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:435:5:435:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:435:5:435:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:435:5:435:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:435:15:435:25 | call to source | semmle.label | call to source | +| semantics.rb:435:15:435:25 | call to source | semmle.label | call to source | +| semantics.rb:436:5:436:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:436:5:436:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:436:12:436:22 | call to source | semmle.label | call to source | +| semantics.rb:436:12:436:22 | call to source | semmle.label | call to source | +| semantics.rb:438:10:438:10 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:438:10:438:10 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:438:10:438:10 | h [element] | semmle.label | h [element] | | semantics.rb:438:10:438:10 | h [element] | semmle.label | h [element] | | semantics.rb:438:10:438:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:438:10:438:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:440:5:440:5 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:440:5:440:5 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:440:5:440:5 | x [element] | semmle.label | x [element] | -| semantics.rb:440:5:440:5 | x [element] | semmle.label | x [element] | -| semantics.rb:440:9:440:14 | call to s49 [element :bar] | semmle.label | call to s49 [element :bar] | -| semantics.rb:440:9:440:14 | call to s49 [element :bar] | semmle.label | call to s49 [element :bar] | -| semantics.rb:440:9:440:14 | call to s49 [element] | semmle.label | call to s49 [element] | -| semantics.rb:440:9:440:14 | call to s49 [element] | semmle.label | call to s49 [element] | -| semantics.rb:440:13:440:13 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:440:13:440:13 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:440:13:440:13 | h [element] | semmle.label | h [element] | -| semantics.rb:440:13:440:13 | h [element] | semmle.label | h [element] | -| semantics.rb:442:10:442:10 | x [element] | semmle.label | x [element] | -| semantics.rb:442:10:442:10 | x [element] | semmle.label | x [element] | -| semantics.rb:442:10:442:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:442:10:442:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:443:10:443:10 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:443:10:443:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:439:10:439:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:439:10:439:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:439:10:439:10 | h [element] | semmle.label | h [element] | +| semantics.rb:439:10:439:10 | h [element] | semmle.label | h [element] | +| semantics.rb:439:10:439:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:439:10:439:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:441:5:441:5 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:441:5:441:5 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:441:5:441:5 | x [element] | semmle.label | x [element] | +| semantics.rb:441:5:441:5 | x [element] | semmle.label | x [element] | +| semantics.rb:441:9:441:14 | call to s49 [element :bar] | semmle.label | call to s49 [element :bar] | +| semantics.rb:441:9:441:14 | call to s49 [element :bar] | semmle.label | call to s49 [element :bar] | +| semantics.rb:441:9:441:14 | call to s49 [element] | semmle.label | call to s49 [element] | +| semantics.rb:441:9:441:14 | call to s49 [element] | semmle.label | call to s49 [element] | +| semantics.rb:441:13:441:13 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:441:13:441:13 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:441:13:441:13 | h [element] | semmle.label | h [element] | +| semantics.rb:441:13:441:13 | h [element] | semmle.label | h [element] | | semantics.rb:443:10:443:10 | x [element] | semmle.label | x [element] | | semantics.rb:443:10:443:10 | x [element] | semmle.label | x [element] | | semantics.rb:443:10:443:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:443:10:443:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:447:5:447:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:447:5:447:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:447:15:447:25 | call to source | semmle.label | call to source | -| semantics.rb:447:15:447:25 | call to source | semmle.label | call to source | -| semantics.rb:448:5:448:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:448:5:448:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:444:10:444:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:444:10:444:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:444:10:444:10 | x [element] | semmle.label | x [element] | +| semantics.rb:444:10:444:10 | x [element] | semmle.label | x [element] | +| semantics.rb:444:10:444:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:444:10:444:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:448:5:448:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:448:5:448:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:448:5:448:5 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:448:5:448:5 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:448:15:448:25 | call to source | semmle.label | call to source | | semantics.rb:448:15:448:25 | call to source | semmle.label | call to source | -| semantics.rb:449:5:449:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:449:5:449:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:449:12:449:22 | call to source | semmle.label | call to source | -| semantics.rb:449:12:449:22 | call to source | semmle.label | call to source | -| semantics.rb:451:10:451:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:451:10:451:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:451:10:451:10 | h [element] | semmle.label | h [element] | -| semantics.rb:451:10:451:10 | h [element] | semmle.label | h [element] | -| semantics.rb:451:10:451:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:451:10:451:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:452:10:452:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:452:10:452:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:449:5:449:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:449:5:449:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:449:5:449:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:449:5:449:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:449:5:449:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:449:5:449:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:449:15:449:25 | call to source | semmle.label | call to source | +| semantics.rb:449:15:449:25 | call to source | semmle.label | call to source | +| semantics.rb:450:5:450:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:450:5:450:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:450:12:450:22 | call to source | semmle.label | call to source | +| semantics.rb:450:12:450:22 | call to source | semmle.label | call to source | +| semantics.rb:452:10:452:10 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:452:10:452:10 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:452:10:452:10 | h [element] | semmle.label | h [element] | | semantics.rb:452:10:452:10 | h [element] | semmle.label | h [element] | | semantics.rb:452:10:452:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:452:10:452:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:454:9:454:9 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:454:9:454:9 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:454:9:454:9 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:454:9:454:9 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:457:10:457:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:457:10:457:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:457:10:457:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:457:10:457:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:461:5:461:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:461:5:461:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:461:15:461:25 | call to source | semmle.label | call to source | -| semantics.rb:461:15:461:25 | call to source | semmle.label | call to source | -| semantics.rb:462:5:462:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:462:5:462:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:453:10:453:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:453:10:453:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:453:10:453:10 | h [element] | semmle.label | h [element] | +| semantics.rb:453:10:453:10 | h [element] | semmle.label | h [element] | +| semantics.rb:453:10:453:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:453:10:453:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:455:9:455:9 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:455:9:455:9 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:455:9:455:9 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:455:9:455:9 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:458:10:458:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:458:10:458:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:458:10:458:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:458:10:458:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:462:5:462:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:462:5:462:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:462:5:462:5 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:462:5:462:5 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:462:15:462:25 | call to source | semmle.label | call to source | | semantics.rb:462:15:462:25 | call to source | semmle.label | call to source | -| semantics.rb:463:5:463:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:463:5:463:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:463:12:463:22 | call to source | semmle.label | call to source | -| semantics.rb:463:12:463:22 | call to source | semmle.label | call to source | -| semantics.rb:465:10:465:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:465:10:465:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:465:10:465:10 | h [element] | semmle.label | h [element] | -| semantics.rb:465:10:465:10 | h [element] | semmle.label | h [element] | -| semantics.rb:465:10:465:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:465:10:465:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:466:10:466:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:466:10:466:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:463:5:463:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:463:5:463:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:463:5:463:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:463:5:463:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:463:5:463:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:463:5:463:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:463:15:463:25 | call to source | semmle.label | call to source | +| semantics.rb:463:15:463:25 | call to source | semmle.label | call to source | +| semantics.rb:464:5:464:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:464:5:464:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:464:12:464:22 | call to source | semmle.label | call to source | +| semantics.rb:464:12:464:22 | call to source | semmle.label | call to source | +| semantics.rb:466:10:466:10 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:466:10:466:10 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:466:10:466:10 | h [element] | semmle.label | h [element] | | semantics.rb:466:10:466:10 | h [element] | semmle.label | h [element] | | semantics.rb:466:10:466:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:466:10:466:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:468:9:468:9 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:468:9:468:9 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:468:9:468:9 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:468:9:468:9 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:468:9:468:9 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:468:9:468:9 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:468:9:468:9 | h [element] | semmle.label | h [element] | -| semantics.rb:468:9:468:9 | h [element] | semmle.label | h [element] | -| semantics.rb:470:10:470:10 | h [element] | semmle.label | h [element] | -| semantics.rb:470:10:470:10 | h [element] | semmle.label | h [element] | -| semantics.rb:470:10:470:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:470:10:470:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:471:10:471:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:471:10:471:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:467:10:467:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:467:10:467:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:467:10:467:10 | h [element] | semmle.label | h [element] | +| semantics.rb:467:10:467:10 | h [element] | semmle.label | h [element] | +| semantics.rb:467:10:467:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:467:10:467:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:469:9:469:9 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:469:9:469:9 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:469:9:469:9 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:469:9:469:9 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:469:9:469:9 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:469:9:469:9 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:469:9:469:9 | h [element] | semmle.label | h [element] | +| semantics.rb:469:9:469:9 | h [element] | semmle.label | h [element] | | semantics.rb:471:10:471:10 | h [element] | semmle.label | h [element] | | semantics.rb:471:10:471:10 | h [element] | semmle.label | h [element] | | semantics.rb:471:10:471:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:471:10:471:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:475:5:475:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:475:5:475:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:475:15:475:25 | call to source | semmle.label | call to source | -| semantics.rb:475:15:475:25 | call to source | semmle.label | call to source | -| semantics.rb:476:5:476:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:476:5:476:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:472:10:472:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:472:10:472:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:472:10:472:10 | h [element] | semmle.label | h [element] | +| semantics.rb:472:10:472:10 | h [element] | semmle.label | h [element] | +| semantics.rb:472:10:472:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:472:10:472:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:476:5:476:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:476:5:476:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:476:5:476:5 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:476:5:476:5 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:476:15:476:25 | call to source | semmle.label | call to source | | semantics.rb:476:15:476:25 | call to source | semmle.label | call to source | -| semantics.rb:477:5:477:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:477:5:477:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:477:12:477:22 | call to source | semmle.label | call to source | -| semantics.rb:477:12:477:22 | call to source | semmle.label | call to source | -| semantics.rb:479:10:479:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:479:10:479:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:479:10:479:10 | h [element] | semmle.label | h [element] | -| semantics.rb:479:10:479:10 | h [element] | semmle.label | h [element] | -| semantics.rb:479:10:479:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:479:10:479:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:480:10:480:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:480:10:480:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:477:5:477:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:477:5:477:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:477:5:477:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:477:5:477:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:477:5:477:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:477:5:477:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:477:15:477:25 | call to source | semmle.label | call to source | +| semantics.rb:477:15:477:25 | call to source | semmle.label | call to source | +| semantics.rb:478:5:478:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:478:5:478:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:478:12:478:22 | call to source | semmle.label | call to source | +| semantics.rb:478:12:478:22 | call to source | semmle.label | call to source | +| semantics.rb:480:10:480:10 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:480:10:480:10 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:480:10:480:10 | h [element] | semmle.label | h [element] | | semantics.rb:480:10:480:10 | h [element] | semmle.label | h [element] | | semantics.rb:480:10:480:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:480:10:480:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:482:5:482:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:482:5:482:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:482:5:482:5 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:482:5:482:5 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:485:10:485:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:485:10:485:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:485:10:485:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:485:10:485:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:489:5:489:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:489:5:489:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:489:15:489:25 | call to source | semmle.label | call to source | -| semantics.rb:489:15:489:25 | call to source | semmle.label | call to source | -| semantics.rb:490:5:490:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:490:5:490:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:481:10:481:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:481:10:481:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:481:10:481:10 | h [element] | semmle.label | h [element] | +| semantics.rb:481:10:481:10 | h [element] | semmle.label | h [element] | +| semantics.rb:481:10:481:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:481:10:481:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:483:5:483:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:483:5:483:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:483:5:483:5 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:483:5:483:5 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:486:10:486:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:486:10:486:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:486:10:486:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:486:10:486:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:490:5:490:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:490:5:490:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:490:5:490:5 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:490:5:490:5 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:490:15:490:25 | call to source | semmle.label | call to source | | semantics.rb:490:15:490:25 | call to source | semmle.label | call to source | -| semantics.rb:491:5:491:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:491:5:491:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:491:12:491:22 | call to source | semmle.label | call to source | -| semantics.rb:491:12:491:22 | call to source | semmle.label | call to source | -| semantics.rb:493:10:493:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:493:10:493:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:493:10:493:10 | h [element] | semmle.label | h [element] | -| semantics.rb:493:10:493:10 | h [element] | semmle.label | h [element] | -| semantics.rb:493:10:493:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:493:10:493:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:494:10:494:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:494:10:494:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:491:5:491:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:491:5:491:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:491:5:491:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:491:5:491:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:491:5:491:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:491:5:491:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:491:15:491:25 | call to source | semmle.label | call to source | +| semantics.rb:491:15:491:25 | call to source | semmle.label | call to source | +| semantics.rb:492:5:492:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:492:5:492:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:492:12:492:22 | call to source | semmle.label | call to source | +| semantics.rb:492:12:492:22 | call to source | semmle.label | call to source | +| semantics.rb:494:10:494:10 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:494:10:494:10 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:494:10:494:10 | h [element] | semmle.label | h [element] | | semantics.rb:494:10:494:10 | h [element] | semmle.label | h [element] | | semantics.rb:494:10:494:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:494:10:494:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:496:5:496:5 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:496:5:496:5 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:496:9:496:9 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:496:9:496:9 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:496:9:496:15 | call to s53 [element :bar] | semmle.label | call to s53 [element :bar] | -| semantics.rb:496:9:496:15 | call to s53 [element :bar] | semmle.label | call to s53 [element :bar] | -| semantics.rb:499:10:499:10 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:499:10:499:10 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:499:10:499:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:499:10:499:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:501:10:501:20 | call to source | semmle.label | call to source | -| semantics.rb:501:10:501:20 | call to source | semmle.label | call to source | -| semantics.rb:501:10:501:26 | call to s53 | semmle.label | call to s53 | -| semantics.rb:501:10:501:26 | call to s53 | semmle.label | call to s53 | -| semantics.rb:505:5:505:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:505:5:505:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:505:15:505:25 | call to source | semmle.label | call to source | -| semantics.rb:505:15:505:25 | call to source | semmle.label | call to source | -| semantics.rb:506:5:506:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | -| semantics.rb:506:5:506:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:495:10:495:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:495:10:495:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:495:10:495:10 | h [element] | semmle.label | h [element] | +| semantics.rb:495:10:495:10 | h [element] | semmle.label | h [element] | +| semantics.rb:495:10:495:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:495:10:495:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:497:5:497:5 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:497:5:497:5 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:497:9:497:9 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:497:9:497:9 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:497:9:497:15 | call to s53 [element :bar] | semmle.label | call to s53 [element :bar] | +| semantics.rb:497:9:497:15 | call to s53 [element :bar] | semmle.label | call to s53 [element :bar] | +| semantics.rb:500:10:500:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:500:10:500:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:500:10:500:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:500:10:500:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:502:10:502:20 | call to source | semmle.label | call to source | +| semantics.rb:502:10:502:20 | call to source | semmle.label | call to source | +| semantics.rb:502:10:502:26 | call to s53 | semmle.label | call to s53 | +| semantics.rb:502:10:502:26 | call to s53 | semmle.label | call to s53 | | semantics.rb:506:5:506:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | | semantics.rb:506:5:506:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | -| semantics.rb:506:5:506:5 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:506:5:506:5 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:506:15:506:25 | call to source | semmle.label | call to source | | semantics.rb:506:15:506:25 | call to source | semmle.label | call to source | -| semantics.rb:507:5:507:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:507:5:507:5 | [post] h [element] | semmle.label | [post] h [element] | -| semantics.rb:507:12:507:22 | call to source | semmle.label | call to source | -| semantics.rb:507:12:507:22 | call to source | semmle.label | call to source | -| semantics.rb:509:10:509:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:509:10:509:10 | h [element :foo] | semmle.label | h [element :foo] | -| semantics.rb:509:10:509:10 | h [element] | semmle.label | h [element] | -| semantics.rb:509:10:509:10 | h [element] | semmle.label | h [element] | -| semantics.rb:509:10:509:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:509:10:509:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:510:10:510:10 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:510:10:510:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:507:5:507:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:507:5:507:5 | [post] h [element :bar] | semmle.label | [post] h [element :bar] | +| semantics.rb:507:5:507:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:507:5:507:5 | [post] h [element :foo] | semmle.label | [post] h [element :foo] | +| semantics.rb:507:5:507:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:507:5:507:5 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:507:15:507:25 | call to source | semmle.label | call to source | +| semantics.rb:507:15:507:25 | call to source | semmle.label | call to source | +| semantics.rb:508:5:508:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:508:5:508:5 | [post] h [element] | semmle.label | [post] h [element] | +| semantics.rb:508:12:508:22 | call to source | semmle.label | call to source | +| semantics.rb:508:12:508:22 | call to source | semmle.label | call to source | +| semantics.rb:510:10:510:10 | h [element :foo] | semmle.label | h [element :foo] | +| semantics.rb:510:10:510:10 | h [element :foo] | semmle.label | h [element :foo] | | semantics.rb:510:10:510:10 | h [element] | semmle.label | h [element] | | semantics.rb:510:10:510:10 | h [element] | semmle.label | h [element] | | semantics.rb:510:10:510:16 | ...[...] | semmle.label | ...[...] | | semantics.rb:510:10:510:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:512:5:512:5 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:512:5:512:5 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:512:9:512:9 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:512:9:512:9 | h [element :bar] | semmle.label | h [element :bar] | -| semantics.rb:512:9:512:15 | call to s54 [element :bar] | semmle.label | call to s54 [element :bar] | -| semantics.rb:512:9:512:15 | call to s54 [element :bar] | semmle.label | call to s54 [element :bar] | -| semantics.rb:515:10:515:10 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:515:10:515:10 | x [element :bar] | semmle.label | x [element :bar] | -| semantics.rb:515:10:515:16 | ...[...] | semmle.label | ...[...] | -| semantics.rb:515:10:515:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:511:10:511:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:511:10:511:10 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:511:10:511:10 | h [element] | semmle.label | h [element] | +| semantics.rb:511:10:511:10 | h [element] | semmle.label | h [element] | +| semantics.rb:511:10:511:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:511:10:511:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:513:5:513:5 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:513:5:513:5 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:513:9:513:9 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:513:9:513:9 | h [element :bar] | semmle.label | h [element :bar] | +| semantics.rb:513:9:513:15 | call to s54 [element :bar] | semmle.label | call to s54 [element :bar] | +| semantics.rb:513:9:513:15 | call to s54 [element :bar] | semmle.label | call to s54 [element :bar] | +| semantics.rb:516:10:516:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:516:10:516:10 | x [element :bar] | semmle.label | x [element :bar] | +| semantics.rb:516:10:516:16 | ...[...] | semmle.label | ...[...] | +| semantics.rb:516:10:516:16 | ...[...] | semmle.label | ...[...] | subpaths diff --git a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.ql b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.ql index c3c2e45322a..158b544c6f7 100644 --- a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.ql +++ b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.ql @@ -203,24 +203,24 @@ private class S16 extends Summary { } /** - * `Argument[hash-splat]` (output) 1 + * `Argument[splat]` (input) 1 */ private class S17 extends Summary { S17() { this = "s17" } override predicate propagates(string input, string output) { - input = "Argument[0]" and output = "Argument[hash-splat]" + input = "Argument[splat]" and output = "ReturnValue" } } /** - * `Argument[hash-splat]` (output) 2 + * `Argument[splat]` (input) 2 */ private class S18 extends Summary { S18() { this = "s18" } override predicate propagates(string input, string output) { - input = "Argument[0]" and output = "Argument[hash-splat].Element[:foo]" + input = "Argument[splat].Element[any]" and output = "ReturnValue" } } diff --git a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.rb b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.rb index 5ec554aed48..c4a239c4eba 100644 --- a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.rb +++ b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.rb @@ -103,11 +103,11 @@ def m14(w, x, y, z) sink z # $ hasValueFlow=a end -def m15 +def m15 a = source "a" b = source "b" - sink s15(**a) # $ SPURIOUS: hasTaintFlow=a MISSING: hasValueFlow=a - sink s15(0, 1, foo: b, **a) # $ SPURIOUS: hasTaintFlow=a MISSING: hasValueFlow=a + sink s15(foo: a, bar: b)[:foo] # $ hasValueFlow=a + sink s15(foo: a, bar: b)[:bar] # $ hasValueFlow=b end def m16 @@ -121,19 +121,20 @@ def m16 sink s16(b: b, **h) # $ hasValueFlow=a hasValueFlow=b end -def m17(h, x) +def m17 a = source "a" - s17(a, **h, foo: x) - sink h # $ hasValueFlow=a - sink x + b = source "b" + sink s17(a, b) # $ hasTaintFlow=a $ hasTaintFlow=b + sink s17(a, b)[0] # $ hasValueFlow=a + sink s17(a, b)[1] # $ hasValueFlow=b end -def m18(x) +def m18 a = source "a" - s18(a, **h, foo: x) - sink h - sink h[:foo] # $ MISSING: hasValueFlow=a - sink x # $ MISSING: hasValueFlow=a + b = source "b" + arr = [a, b] + sink s18(*arr) # $ hasValueFlow=a $ hasValueFlow=b + sink s18(a) # $ hasValueFlow=a end def m19(i) diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected index 79f2565a590..83b756bfccf 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected @@ -42,10 +42,10 @@ edges | hash_flow.rb:44:10:44:13 | hash [element 0] | hash_flow.rb:44:10:44:16 | ...[...] | | hash_flow.rb:46:10:46:13 | hash [element :a] | hash_flow.rb:46:10:46:17 | ...[...] | | hash_flow.rb:48:10:48:13 | hash [element a] | hash_flow.rb:48:10:48:18 | ...[...] | -| hash_flow.rb:55:5:55:9 | hash1 [element :a] | hash_flow.rb:56:10:56:14 | hash1 [element :a] | -| hash_flow.rb:55:13:55:37 | ...[...] [element :a] | hash_flow.rb:55:5:55:9 | hash1 [element :a] | -| hash_flow.rb:55:21:55:30 | call to taint | hash_flow.rb:55:13:55:37 | ...[...] [element :a] | -| hash_flow.rb:56:10:56:14 | hash1 [element :a] | hash_flow.rb:56:10:56:18 | ...[...] | +| hash_flow.rb:55:5:55:9 | hash1 [hash-splat position :a] | hash_flow.rb:56:10:56:14 | hash1 [hash-splat position :a] | +| hash_flow.rb:55:13:55:37 | ...[...] [hash-splat position :a] | hash_flow.rb:55:5:55:9 | hash1 [hash-splat position :a] | +| hash_flow.rb:55:21:55:30 | call to taint | hash_flow.rb:55:13:55:37 | ...[...] [hash-splat position :a] | +| hash_flow.rb:56:10:56:14 | hash1 [hash-splat position :a] | hash_flow.rb:56:10:56:18 | ...[...] | | hash_flow.rb:59:5:59:5 | x [element :a] | hash_flow.rb:60:18:60:18 | x [element :a] | | hash_flow.rb:59:13:59:22 | call to taint | hash_flow.rb:59:5:59:5 | x [element :a] | | hash_flow.rb:60:5:60:9 | hash2 [element :a] | hash_flow.rb:61:10:61:14 | hash2 [element :a] | @@ -62,10 +62,10 @@ edges | hash_flow.rb:68:13:68:39 | ...[...] [element :a] | hash_flow.rb:68:5:68:9 | hash4 [element :a] | | hash_flow.rb:68:22:68:31 | call to taint | hash_flow.rb:68:13:68:39 | ...[...] [element :a] | | hash_flow.rb:69:10:69:14 | hash4 [element :a] | hash_flow.rb:69:10:69:18 | ...[...] | -| hash_flow.rb:72:5:72:9 | hash5 [element a] | hash_flow.rb:73:10:73:14 | hash5 [element a] | -| hash_flow.rb:72:13:72:45 | ...[...] [element a] | hash_flow.rb:72:5:72:9 | hash5 [element a] | -| hash_flow.rb:72:25:72:34 | call to taint | hash_flow.rb:72:13:72:45 | ...[...] [element a] | -| hash_flow.rb:73:10:73:14 | hash5 [element a] | hash_flow.rb:73:10:73:19 | ...[...] | +| hash_flow.rb:72:5:72:9 | hash5 [hash-splat position a] | hash_flow.rb:73:10:73:14 | hash5 [hash-splat position a] | +| hash_flow.rb:72:13:72:45 | ...[...] [hash-splat position a] | hash_flow.rb:72:5:72:9 | hash5 [hash-splat position a] | +| hash_flow.rb:72:25:72:34 | call to taint | hash_flow.rb:72:13:72:45 | ...[...] [hash-splat position a] | +| hash_flow.rb:73:10:73:14 | hash5 [hash-splat position a] | hash_flow.rb:73:10:73:19 | ...[...] | | hash_flow.rb:76:5:76:9 | hash6 [element a] | hash_flow.rb:77:10:77:14 | hash6 [element a] | | hash_flow.rb:76:13:76:47 | ...[...] [element a] | hash_flow.rb:76:5:76:9 | hash6 [element a] | | hash_flow.rb:76:26:76:35 | call to taint | hash_flow.rb:76:13:76:47 | ...[...] [element a] | @@ -1015,10 +1015,10 @@ nodes | hash_flow.rb:46:10:46:17 | ...[...] | semmle.label | ...[...] | | hash_flow.rb:48:10:48:13 | hash [element a] | semmle.label | hash [element a] | | hash_flow.rb:48:10:48:18 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:55:5:55:9 | hash1 [element :a] | semmle.label | hash1 [element :a] | -| hash_flow.rb:55:13:55:37 | ...[...] [element :a] | semmle.label | ...[...] [element :a] | +| hash_flow.rb:55:5:55:9 | hash1 [hash-splat position :a] | semmle.label | hash1 [hash-splat position :a] | +| hash_flow.rb:55:13:55:37 | ...[...] [hash-splat position :a] | semmle.label | ...[...] [hash-splat position :a] | | hash_flow.rb:55:21:55:30 | call to taint | semmle.label | call to taint | -| hash_flow.rb:56:10:56:14 | hash1 [element :a] | semmle.label | hash1 [element :a] | +| hash_flow.rb:56:10:56:14 | hash1 [hash-splat position :a] | semmle.label | hash1 [hash-splat position :a] | | hash_flow.rb:56:10:56:18 | ...[...] | semmle.label | ...[...] | | hash_flow.rb:59:5:59:5 | x [element :a] | semmle.label | x [element :a] | | hash_flow.rb:59:13:59:22 | call to taint | semmle.label | call to taint | @@ -1039,10 +1039,10 @@ nodes | hash_flow.rb:68:22:68:31 | call to taint | semmle.label | call to taint | | hash_flow.rb:69:10:69:14 | hash4 [element :a] | semmle.label | hash4 [element :a] | | hash_flow.rb:69:10:69:18 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:72:5:72:9 | hash5 [element a] | semmle.label | hash5 [element a] | -| hash_flow.rb:72:13:72:45 | ...[...] [element a] | semmle.label | ...[...] [element a] | +| hash_flow.rb:72:5:72:9 | hash5 [hash-splat position a] | semmle.label | hash5 [hash-splat position a] | +| hash_flow.rb:72:13:72:45 | ...[...] [hash-splat position a] | semmle.label | ...[...] [hash-splat position a] | | hash_flow.rb:72:25:72:34 | call to taint | semmle.label | call to taint | -| hash_flow.rb:73:10:73:14 | hash5 [element a] | semmle.label | hash5 [element a] | +| hash_flow.rb:73:10:73:14 | hash5 [hash-splat position a] | semmle.label | hash5 [hash-splat position a] | | hash_flow.rb:73:10:73:19 | ...[...] | semmle.label | ...[...] | | hash_flow.rb:76:5:76:9 | hash6 [element a] | semmle.label | hash6 [element a] | | hash_flow.rb:76:13:76:47 | ...[...] [element a] | semmle.label | ...[...] [element a] | diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/type-tracking-hash-flow.expected b/ruby/ql/test/library-tests/dataflow/hash-flow/type-tracking-hash-flow.expected index af062eec4fd..7ffbd73ccbe 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/type-tracking-hash-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/type-tracking-hash-flow.expected @@ -1,4 +1,3 @@ -failures testFailures | hash_flow.rb:65:21:65:40 | # $ hasValueFlow=3.3 | Missing result:hasValueFlow=3.3 | | hash_flow.rb:66:21:66:49 | # $ SPURIOUS hasValueFlow=3.3 | Missing result:hasValueFlow=3.3 | @@ -39,3 +38,4 @@ testFailures | hash_flow.rb:935:22:935:42 | # $ hasValueFlow=51.4 | Missing result:hasValueFlow=51.4 | | hash_flow.rb:963:22:963:42 | # $ hasValueFlow=52.3 | Missing result:hasValueFlow=52.3 | | hash_flow.rb:965:22:965:42 | # $ hasValueFlow=52.4 | Missing result:hasValueFlow=52.4 | +failures diff --git a/ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected b/ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected index cbba246c74b..51b5e3061f7 100644 --- a/ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected +++ b/ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected @@ -2425,6 +2425,7 @@ | local_dataflow.rb:9:1:9:5 | array | local_dataflow.rb:10:14:10:18 | array | | local_dataflow.rb:9:9:9:15 | call to [] | local_dataflow.rb:9:1:9:5 | array | | local_dataflow.rb:9:9:9:15 | call to [] | local_dataflow.rb:9:1:9:15 | ... = ... | +| local_dataflow.rb:9:9:9:15 | synthetic splat argument | local_dataflow.rb:9:9:9:15 | call to [] | | local_dataflow.rb:10:5:13:3 | ... | local_dataflow.rb:10:1:13:3 | ... = ... | | local_dataflow.rb:10:5:13:3 | self | local_dataflow.rb:11:1:11:2 | self | | local_dataflow.rb:10:5:13:3 | x | local_dataflow.rb:15:5:15:5 | x | @@ -2487,6 +2488,7 @@ | local_dataflow.rb:50:18:50:18 | [post] x | local_dataflow.rb:51:20:51:20 | x | | local_dataflow.rb:50:18:50:18 | x | local_dataflow.rb:51:20:51:20 | x | | local_dataflow.rb:51:9:51:15 | "break" | local_dataflow.rb:51:3:51:15 | break | +| local_dataflow.rb:55:5:55:13 | synthetic splat argument | local_dataflow.rb:55:5:55:13 | call to [] | | local_dataflow.rb:60:1:90:3 | self (test_case) | local_dataflow.rb:78:12:78:20 | self | | local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:60:1:90:3 | self (test_case) | | local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:60:15:60:15 | x | @@ -2545,6 +2547,7 @@ | local_dataflow.rb:81:16:81:16 | e | local_dataflow.rb:84:12:84:12 | e | | local_dataflow.rb:81:20:84:33 | then ... | local_dataflow.rb:78:7:88:5 | case ... | | local_dataflow.rb:81:25:84:14 | call to [] | local_dataflow.rb:81:20:84:33 | then ... | +| local_dataflow.rb:81:25:84:14 | synthetic splat argument | local_dataflow.rb:81:25:84:14 | call to [] | | local_dataflow.rb:82:7:82:13 | [post] self | local_dataflow.rb:83:7:83:13 | self | | local_dataflow.rb:82:7:82:13 | self | local_dataflow.rb:83:7:83:13 | self | | local_dataflow.rb:83:7:83:13 | [post] self | local_dataflow.rb:84:7:84:13 | self | diff --git a/ruby/ql/test/library-tests/dataflow/local/Nodes.expected b/ruby/ql/test/library-tests/dataflow/local/Nodes.expected index ac8dee1a187..575e8f1dbfc 100644 --- a/ruby/ql/test/library-tests/dataflow/local/Nodes.expected +++ b/ruby/ql/test/library-tests/dataflow/local/Nodes.expected @@ -24,1535 +24,1535 @@ ret | local_dataflow.rb:132:3:149:5 | if ... | arg | UseUseExplosion.rb:20:13:20:17 | @prop | UseUseExplosion.rb:20:13:20:23 | ... > ... | self | -| UseUseExplosion.rb:20:13:20:23 | * | UseUseExplosion.rb:20:13:20:23 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:13:20:23 | synthetic splat argument | UseUseExplosion.rb:20:13:20:23 | ... > ... | synthetic * | | UseUseExplosion.rb:20:21:20:23 | 100 | UseUseExplosion.rb:20:13:20:23 | ... > ... | position 0 | | UseUseExplosion.rb:20:35:20:39 | @prop | UseUseExplosion.rb:20:35:20:44 | ... > ... | self | -| UseUseExplosion.rb:20:35:20:44 | * | UseUseExplosion.rb:20:35:20:44 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:35:20:44 | synthetic splat argument | UseUseExplosion.rb:20:35:20:44 | ... > ... | synthetic * | | UseUseExplosion.rb:20:43:20:44 | 99 | UseUseExplosion.rb:20:35:20:44 | ... > ... | position 0 | | UseUseExplosion.rb:20:56:20:60 | @prop | UseUseExplosion.rb:20:56:20:65 | ... > ... | self | -| UseUseExplosion.rb:20:56:20:65 | * | UseUseExplosion.rb:20:56:20:65 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:56:20:65 | synthetic splat argument | UseUseExplosion.rb:20:56:20:65 | ... > ... | synthetic * | | UseUseExplosion.rb:20:64:20:65 | 98 | UseUseExplosion.rb:20:56:20:65 | ... > ... | position 0 | | UseUseExplosion.rb:20:77:20:81 | @prop | UseUseExplosion.rb:20:77:20:86 | ... > ... | self | -| UseUseExplosion.rb:20:77:20:86 | * | UseUseExplosion.rb:20:77:20:86 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:77:20:86 | synthetic splat argument | UseUseExplosion.rb:20:77:20:86 | ... > ... | synthetic * | | UseUseExplosion.rb:20:85:20:86 | 97 | UseUseExplosion.rb:20:77:20:86 | ... > ... | position 0 | | UseUseExplosion.rb:20:98:20:102 | @prop | UseUseExplosion.rb:20:98:20:107 | ... > ... | self | -| UseUseExplosion.rb:20:98:20:107 | * | UseUseExplosion.rb:20:98:20:107 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:98:20:107 | synthetic splat argument | UseUseExplosion.rb:20:98:20:107 | ... > ... | synthetic * | | UseUseExplosion.rb:20:106:20:107 | 96 | UseUseExplosion.rb:20:98:20:107 | ... > ... | position 0 | | UseUseExplosion.rb:20:119:20:123 | @prop | UseUseExplosion.rb:20:119:20:128 | ... > ... | self | -| UseUseExplosion.rb:20:119:20:128 | * | UseUseExplosion.rb:20:119:20:128 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:119:20:128 | synthetic splat argument | UseUseExplosion.rb:20:119:20:128 | ... > ... | synthetic * | | UseUseExplosion.rb:20:127:20:128 | 95 | UseUseExplosion.rb:20:119:20:128 | ... > ... | position 0 | | UseUseExplosion.rb:20:140:20:144 | @prop | UseUseExplosion.rb:20:140:20:149 | ... > ... | self | -| UseUseExplosion.rb:20:140:20:149 | * | UseUseExplosion.rb:20:140:20:149 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:140:20:149 | synthetic splat argument | UseUseExplosion.rb:20:140:20:149 | ... > ... | synthetic * | | UseUseExplosion.rb:20:148:20:149 | 94 | UseUseExplosion.rb:20:140:20:149 | ... > ... | position 0 | | UseUseExplosion.rb:20:161:20:165 | @prop | UseUseExplosion.rb:20:161:20:170 | ... > ... | self | -| UseUseExplosion.rb:20:161:20:170 | * | UseUseExplosion.rb:20:161:20:170 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:161:20:170 | synthetic splat argument | UseUseExplosion.rb:20:161:20:170 | ... > ... | synthetic * | | UseUseExplosion.rb:20:169:20:170 | 93 | UseUseExplosion.rb:20:161:20:170 | ... > ... | position 0 | | UseUseExplosion.rb:20:182:20:186 | @prop | UseUseExplosion.rb:20:182:20:191 | ... > ... | self | -| UseUseExplosion.rb:20:182:20:191 | * | UseUseExplosion.rb:20:182:20:191 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:182:20:191 | synthetic splat argument | UseUseExplosion.rb:20:182:20:191 | ... > ... | synthetic * | | UseUseExplosion.rb:20:190:20:191 | 92 | UseUseExplosion.rb:20:182:20:191 | ... > ... | position 0 | | UseUseExplosion.rb:20:203:20:207 | @prop | UseUseExplosion.rb:20:203:20:212 | ... > ... | self | -| UseUseExplosion.rb:20:203:20:212 | * | UseUseExplosion.rb:20:203:20:212 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:203:20:212 | synthetic splat argument | UseUseExplosion.rb:20:203:20:212 | ... > ... | synthetic * | | UseUseExplosion.rb:20:211:20:212 | 91 | UseUseExplosion.rb:20:203:20:212 | ... > ... | position 0 | | UseUseExplosion.rb:20:224:20:228 | @prop | UseUseExplosion.rb:20:224:20:233 | ... > ... | self | -| UseUseExplosion.rb:20:224:20:233 | * | UseUseExplosion.rb:20:224:20:233 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:224:20:233 | synthetic splat argument | UseUseExplosion.rb:20:224:20:233 | ... > ... | synthetic * | | UseUseExplosion.rb:20:232:20:233 | 90 | UseUseExplosion.rb:20:224:20:233 | ... > ... | position 0 | | UseUseExplosion.rb:20:245:20:249 | @prop | UseUseExplosion.rb:20:245:20:254 | ... > ... | self | -| UseUseExplosion.rb:20:245:20:254 | * | UseUseExplosion.rb:20:245:20:254 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:245:20:254 | synthetic splat argument | UseUseExplosion.rb:20:245:20:254 | ... > ... | synthetic * | | UseUseExplosion.rb:20:253:20:254 | 89 | UseUseExplosion.rb:20:245:20:254 | ... > ... | position 0 | | UseUseExplosion.rb:20:266:20:270 | @prop | UseUseExplosion.rb:20:266:20:275 | ... > ... | self | -| UseUseExplosion.rb:20:266:20:275 | * | UseUseExplosion.rb:20:266:20:275 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:266:20:275 | synthetic splat argument | UseUseExplosion.rb:20:266:20:275 | ... > ... | synthetic * | | UseUseExplosion.rb:20:274:20:275 | 88 | UseUseExplosion.rb:20:266:20:275 | ... > ... | position 0 | | UseUseExplosion.rb:20:287:20:291 | @prop | UseUseExplosion.rb:20:287:20:296 | ... > ... | self | -| UseUseExplosion.rb:20:287:20:296 | * | UseUseExplosion.rb:20:287:20:296 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:287:20:296 | synthetic splat argument | UseUseExplosion.rb:20:287:20:296 | ... > ... | synthetic * | | UseUseExplosion.rb:20:295:20:296 | 87 | UseUseExplosion.rb:20:287:20:296 | ... > ... | position 0 | | UseUseExplosion.rb:20:308:20:312 | @prop | UseUseExplosion.rb:20:308:20:317 | ... > ... | self | -| UseUseExplosion.rb:20:308:20:317 | * | UseUseExplosion.rb:20:308:20:317 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:308:20:317 | synthetic splat argument | UseUseExplosion.rb:20:308:20:317 | ... > ... | synthetic * | | UseUseExplosion.rb:20:316:20:317 | 86 | UseUseExplosion.rb:20:308:20:317 | ... > ... | position 0 | | UseUseExplosion.rb:20:329:20:333 | @prop | UseUseExplosion.rb:20:329:20:338 | ... > ... | self | -| UseUseExplosion.rb:20:329:20:338 | * | UseUseExplosion.rb:20:329:20:338 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:329:20:338 | synthetic splat argument | UseUseExplosion.rb:20:329:20:338 | ... > ... | synthetic * | | UseUseExplosion.rb:20:337:20:338 | 85 | UseUseExplosion.rb:20:329:20:338 | ... > ... | position 0 | | UseUseExplosion.rb:20:350:20:354 | @prop | UseUseExplosion.rb:20:350:20:359 | ... > ... | self | -| UseUseExplosion.rb:20:350:20:359 | * | UseUseExplosion.rb:20:350:20:359 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:350:20:359 | synthetic splat argument | UseUseExplosion.rb:20:350:20:359 | ... > ... | synthetic * | | UseUseExplosion.rb:20:358:20:359 | 84 | UseUseExplosion.rb:20:350:20:359 | ... > ... | position 0 | | UseUseExplosion.rb:20:371:20:375 | @prop | UseUseExplosion.rb:20:371:20:380 | ... > ... | self | -| UseUseExplosion.rb:20:371:20:380 | * | UseUseExplosion.rb:20:371:20:380 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:371:20:380 | synthetic splat argument | UseUseExplosion.rb:20:371:20:380 | ... > ... | synthetic * | | UseUseExplosion.rb:20:379:20:380 | 83 | UseUseExplosion.rb:20:371:20:380 | ... > ... | position 0 | | UseUseExplosion.rb:20:392:20:396 | @prop | UseUseExplosion.rb:20:392:20:401 | ... > ... | self | -| UseUseExplosion.rb:20:392:20:401 | * | UseUseExplosion.rb:20:392:20:401 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:392:20:401 | synthetic splat argument | UseUseExplosion.rb:20:392:20:401 | ... > ... | synthetic * | | UseUseExplosion.rb:20:400:20:401 | 82 | UseUseExplosion.rb:20:392:20:401 | ... > ... | position 0 | | UseUseExplosion.rb:20:413:20:417 | @prop | UseUseExplosion.rb:20:413:20:422 | ... > ... | self | -| UseUseExplosion.rb:20:413:20:422 | * | UseUseExplosion.rb:20:413:20:422 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:413:20:422 | synthetic splat argument | UseUseExplosion.rb:20:413:20:422 | ... > ... | synthetic * | | UseUseExplosion.rb:20:421:20:422 | 81 | UseUseExplosion.rb:20:413:20:422 | ... > ... | position 0 | | UseUseExplosion.rb:20:434:20:438 | @prop | UseUseExplosion.rb:20:434:20:443 | ... > ... | self | -| UseUseExplosion.rb:20:434:20:443 | * | UseUseExplosion.rb:20:434:20:443 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:434:20:443 | synthetic splat argument | UseUseExplosion.rb:20:434:20:443 | ... > ... | synthetic * | | UseUseExplosion.rb:20:442:20:443 | 80 | UseUseExplosion.rb:20:434:20:443 | ... > ... | position 0 | | UseUseExplosion.rb:20:455:20:459 | @prop | UseUseExplosion.rb:20:455:20:464 | ... > ... | self | -| UseUseExplosion.rb:20:455:20:464 | * | UseUseExplosion.rb:20:455:20:464 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:455:20:464 | synthetic splat argument | UseUseExplosion.rb:20:455:20:464 | ... > ... | synthetic * | | UseUseExplosion.rb:20:463:20:464 | 79 | UseUseExplosion.rb:20:455:20:464 | ... > ... | position 0 | | UseUseExplosion.rb:20:476:20:480 | @prop | UseUseExplosion.rb:20:476:20:485 | ... > ... | self | -| UseUseExplosion.rb:20:476:20:485 | * | UseUseExplosion.rb:20:476:20:485 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:476:20:485 | synthetic splat argument | UseUseExplosion.rb:20:476:20:485 | ... > ... | synthetic * | | UseUseExplosion.rb:20:484:20:485 | 78 | UseUseExplosion.rb:20:476:20:485 | ... > ... | position 0 | | UseUseExplosion.rb:20:497:20:501 | @prop | UseUseExplosion.rb:20:497:20:506 | ... > ... | self | -| UseUseExplosion.rb:20:497:20:506 | * | UseUseExplosion.rb:20:497:20:506 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:497:20:506 | synthetic splat argument | UseUseExplosion.rb:20:497:20:506 | ... > ... | synthetic * | | UseUseExplosion.rb:20:505:20:506 | 77 | UseUseExplosion.rb:20:497:20:506 | ... > ... | position 0 | | UseUseExplosion.rb:20:518:20:522 | @prop | UseUseExplosion.rb:20:518:20:527 | ... > ... | self | -| UseUseExplosion.rb:20:518:20:527 | * | UseUseExplosion.rb:20:518:20:527 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:518:20:527 | synthetic splat argument | UseUseExplosion.rb:20:518:20:527 | ... > ... | synthetic * | | UseUseExplosion.rb:20:526:20:527 | 76 | UseUseExplosion.rb:20:518:20:527 | ... > ... | position 0 | | UseUseExplosion.rb:20:539:20:543 | @prop | UseUseExplosion.rb:20:539:20:548 | ... > ... | self | -| UseUseExplosion.rb:20:539:20:548 | * | UseUseExplosion.rb:20:539:20:548 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:539:20:548 | synthetic splat argument | UseUseExplosion.rb:20:539:20:548 | ... > ... | synthetic * | | UseUseExplosion.rb:20:547:20:548 | 75 | UseUseExplosion.rb:20:539:20:548 | ... > ... | position 0 | | UseUseExplosion.rb:20:560:20:564 | @prop | UseUseExplosion.rb:20:560:20:569 | ... > ... | self | -| UseUseExplosion.rb:20:560:20:569 | * | UseUseExplosion.rb:20:560:20:569 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:560:20:569 | synthetic splat argument | UseUseExplosion.rb:20:560:20:569 | ... > ... | synthetic * | | UseUseExplosion.rb:20:568:20:569 | 74 | UseUseExplosion.rb:20:560:20:569 | ... > ... | position 0 | | UseUseExplosion.rb:20:581:20:585 | @prop | UseUseExplosion.rb:20:581:20:590 | ... > ... | self | -| UseUseExplosion.rb:20:581:20:590 | * | UseUseExplosion.rb:20:581:20:590 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:581:20:590 | synthetic splat argument | UseUseExplosion.rb:20:581:20:590 | ... > ... | synthetic * | | UseUseExplosion.rb:20:589:20:590 | 73 | UseUseExplosion.rb:20:581:20:590 | ... > ... | position 0 | | UseUseExplosion.rb:20:602:20:606 | @prop | UseUseExplosion.rb:20:602:20:611 | ... > ... | self | -| UseUseExplosion.rb:20:602:20:611 | * | UseUseExplosion.rb:20:602:20:611 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:602:20:611 | synthetic splat argument | UseUseExplosion.rb:20:602:20:611 | ... > ... | synthetic * | | UseUseExplosion.rb:20:610:20:611 | 72 | UseUseExplosion.rb:20:602:20:611 | ... > ... | position 0 | | UseUseExplosion.rb:20:623:20:627 | @prop | UseUseExplosion.rb:20:623:20:632 | ... > ... | self | -| UseUseExplosion.rb:20:623:20:632 | * | UseUseExplosion.rb:20:623:20:632 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:623:20:632 | synthetic splat argument | UseUseExplosion.rb:20:623:20:632 | ... > ... | synthetic * | | UseUseExplosion.rb:20:631:20:632 | 71 | UseUseExplosion.rb:20:623:20:632 | ... > ... | position 0 | | UseUseExplosion.rb:20:644:20:648 | @prop | UseUseExplosion.rb:20:644:20:653 | ... > ... | self | -| UseUseExplosion.rb:20:644:20:653 | * | UseUseExplosion.rb:20:644:20:653 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:644:20:653 | synthetic splat argument | UseUseExplosion.rb:20:644:20:653 | ... > ... | synthetic * | | UseUseExplosion.rb:20:652:20:653 | 70 | UseUseExplosion.rb:20:644:20:653 | ... > ... | position 0 | | UseUseExplosion.rb:20:665:20:669 | @prop | UseUseExplosion.rb:20:665:20:674 | ... > ... | self | -| UseUseExplosion.rb:20:665:20:674 | * | UseUseExplosion.rb:20:665:20:674 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:665:20:674 | synthetic splat argument | UseUseExplosion.rb:20:665:20:674 | ... > ... | synthetic * | | UseUseExplosion.rb:20:673:20:674 | 69 | UseUseExplosion.rb:20:665:20:674 | ... > ... | position 0 | | UseUseExplosion.rb:20:686:20:690 | @prop | UseUseExplosion.rb:20:686:20:695 | ... > ... | self | -| UseUseExplosion.rb:20:686:20:695 | * | UseUseExplosion.rb:20:686:20:695 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:686:20:695 | synthetic splat argument | UseUseExplosion.rb:20:686:20:695 | ... > ... | synthetic * | | UseUseExplosion.rb:20:694:20:695 | 68 | UseUseExplosion.rb:20:686:20:695 | ... > ... | position 0 | | UseUseExplosion.rb:20:707:20:711 | @prop | UseUseExplosion.rb:20:707:20:716 | ... > ... | self | -| UseUseExplosion.rb:20:707:20:716 | * | UseUseExplosion.rb:20:707:20:716 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:707:20:716 | synthetic splat argument | UseUseExplosion.rb:20:707:20:716 | ... > ... | synthetic * | | UseUseExplosion.rb:20:715:20:716 | 67 | UseUseExplosion.rb:20:707:20:716 | ... > ... | position 0 | | UseUseExplosion.rb:20:728:20:732 | @prop | UseUseExplosion.rb:20:728:20:737 | ... > ... | self | -| UseUseExplosion.rb:20:728:20:737 | * | UseUseExplosion.rb:20:728:20:737 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:728:20:737 | synthetic splat argument | UseUseExplosion.rb:20:728:20:737 | ... > ... | synthetic * | | UseUseExplosion.rb:20:736:20:737 | 66 | UseUseExplosion.rb:20:728:20:737 | ... > ... | position 0 | | UseUseExplosion.rb:20:749:20:753 | @prop | UseUseExplosion.rb:20:749:20:758 | ... > ... | self | -| UseUseExplosion.rb:20:749:20:758 | * | UseUseExplosion.rb:20:749:20:758 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:749:20:758 | synthetic splat argument | UseUseExplosion.rb:20:749:20:758 | ... > ... | synthetic * | | UseUseExplosion.rb:20:757:20:758 | 65 | UseUseExplosion.rb:20:749:20:758 | ... > ... | position 0 | | UseUseExplosion.rb:20:770:20:774 | @prop | UseUseExplosion.rb:20:770:20:779 | ... > ... | self | -| UseUseExplosion.rb:20:770:20:779 | * | UseUseExplosion.rb:20:770:20:779 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:770:20:779 | synthetic splat argument | UseUseExplosion.rb:20:770:20:779 | ... > ... | synthetic * | | UseUseExplosion.rb:20:778:20:779 | 64 | UseUseExplosion.rb:20:770:20:779 | ... > ... | position 0 | | UseUseExplosion.rb:20:791:20:795 | @prop | UseUseExplosion.rb:20:791:20:800 | ... > ... | self | -| UseUseExplosion.rb:20:791:20:800 | * | UseUseExplosion.rb:20:791:20:800 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:791:20:800 | synthetic splat argument | UseUseExplosion.rb:20:791:20:800 | ... > ... | synthetic * | | UseUseExplosion.rb:20:799:20:800 | 63 | UseUseExplosion.rb:20:791:20:800 | ... > ... | position 0 | | UseUseExplosion.rb:20:812:20:816 | @prop | UseUseExplosion.rb:20:812:20:821 | ... > ... | self | -| UseUseExplosion.rb:20:812:20:821 | * | UseUseExplosion.rb:20:812:20:821 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:812:20:821 | synthetic splat argument | UseUseExplosion.rb:20:812:20:821 | ... > ... | synthetic * | | UseUseExplosion.rb:20:820:20:821 | 62 | UseUseExplosion.rb:20:812:20:821 | ... > ... | position 0 | | UseUseExplosion.rb:20:833:20:837 | @prop | UseUseExplosion.rb:20:833:20:842 | ... > ... | self | -| UseUseExplosion.rb:20:833:20:842 | * | UseUseExplosion.rb:20:833:20:842 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:833:20:842 | synthetic splat argument | UseUseExplosion.rb:20:833:20:842 | ... > ... | synthetic * | | UseUseExplosion.rb:20:841:20:842 | 61 | UseUseExplosion.rb:20:833:20:842 | ... > ... | position 0 | | UseUseExplosion.rb:20:854:20:858 | @prop | UseUseExplosion.rb:20:854:20:863 | ... > ... | self | -| UseUseExplosion.rb:20:854:20:863 | * | UseUseExplosion.rb:20:854:20:863 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:854:20:863 | synthetic splat argument | UseUseExplosion.rb:20:854:20:863 | ... > ... | synthetic * | | UseUseExplosion.rb:20:862:20:863 | 60 | UseUseExplosion.rb:20:854:20:863 | ... > ... | position 0 | | UseUseExplosion.rb:20:875:20:879 | @prop | UseUseExplosion.rb:20:875:20:884 | ... > ... | self | -| UseUseExplosion.rb:20:875:20:884 | * | UseUseExplosion.rb:20:875:20:884 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:875:20:884 | synthetic splat argument | UseUseExplosion.rb:20:875:20:884 | ... > ... | synthetic * | | UseUseExplosion.rb:20:883:20:884 | 59 | UseUseExplosion.rb:20:875:20:884 | ... > ... | position 0 | | UseUseExplosion.rb:20:896:20:900 | @prop | UseUseExplosion.rb:20:896:20:905 | ... > ... | self | -| UseUseExplosion.rb:20:896:20:905 | * | UseUseExplosion.rb:20:896:20:905 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:896:20:905 | synthetic splat argument | UseUseExplosion.rb:20:896:20:905 | ... > ... | synthetic * | | UseUseExplosion.rb:20:904:20:905 | 58 | UseUseExplosion.rb:20:896:20:905 | ... > ... | position 0 | | UseUseExplosion.rb:20:917:20:921 | @prop | UseUseExplosion.rb:20:917:20:926 | ... > ... | self | -| UseUseExplosion.rb:20:917:20:926 | * | UseUseExplosion.rb:20:917:20:926 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:917:20:926 | synthetic splat argument | UseUseExplosion.rb:20:917:20:926 | ... > ... | synthetic * | | UseUseExplosion.rb:20:925:20:926 | 57 | UseUseExplosion.rb:20:917:20:926 | ... > ... | position 0 | | UseUseExplosion.rb:20:938:20:942 | @prop | UseUseExplosion.rb:20:938:20:947 | ... > ... | self | -| UseUseExplosion.rb:20:938:20:947 | * | UseUseExplosion.rb:20:938:20:947 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:938:20:947 | synthetic splat argument | UseUseExplosion.rb:20:938:20:947 | ... > ... | synthetic * | | UseUseExplosion.rb:20:946:20:947 | 56 | UseUseExplosion.rb:20:938:20:947 | ... > ... | position 0 | | UseUseExplosion.rb:20:959:20:963 | @prop | UseUseExplosion.rb:20:959:20:968 | ... > ... | self | -| UseUseExplosion.rb:20:959:20:968 | * | UseUseExplosion.rb:20:959:20:968 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:959:20:968 | synthetic splat argument | UseUseExplosion.rb:20:959:20:968 | ... > ... | synthetic * | | UseUseExplosion.rb:20:967:20:968 | 55 | UseUseExplosion.rb:20:959:20:968 | ... > ... | position 0 | | UseUseExplosion.rb:20:980:20:984 | @prop | UseUseExplosion.rb:20:980:20:989 | ... > ... | self | -| UseUseExplosion.rb:20:980:20:989 | * | UseUseExplosion.rb:20:980:20:989 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:980:20:989 | synthetic splat argument | UseUseExplosion.rb:20:980:20:989 | ... > ... | synthetic * | | UseUseExplosion.rb:20:988:20:989 | 54 | UseUseExplosion.rb:20:980:20:989 | ... > ... | position 0 | | UseUseExplosion.rb:20:1001:20:1005 | @prop | UseUseExplosion.rb:20:1001:20:1010 | ... > ... | self | -| UseUseExplosion.rb:20:1001:20:1010 | * | UseUseExplosion.rb:20:1001:20:1010 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1001:20:1010 | synthetic splat argument | UseUseExplosion.rb:20:1001:20:1010 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1009:20:1010 | 53 | UseUseExplosion.rb:20:1001:20:1010 | ... > ... | position 0 | | UseUseExplosion.rb:20:1022:20:1026 | @prop | UseUseExplosion.rb:20:1022:20:1031 | ... > ... | self | -| UseUseExplosion.rb:20:1022:20:1031 | * | UseUseExplosion.rb:20:1022:20:1031 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1022:20:1031 | synthetic splat argument | UseUseExplosion.rb:20:1022:20:1031 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1030:20:1031 | 52 | UseUseExplosion.rb:20:1022:20:1031 | ... > ... | position 0 | | UseUseExplosion.rb:20:1043:20:1047 | @prop | UseUseExplosion.rb:20:1043:20:1052 | ... > ... | self | -| UseUseExplosion.rb:20:1043:20:1052 | * | UseUseExplosion.rb:20:1043:20:1052 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1043:20:1052 | synthetic splat argument | UseUseExplosion.rb:20:1043:20:1052 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1051:20:1052 | 51 | UseUseExplosion.rb:20:1043:20:1052 | ... > ... | position 0 | | UseUseExplosion.rb:20:1064:20:1068 | @prop | UseUseExplosion.rb:20:1064:20:1073 | ... > ... | self | -| UseUseExplosion.rb:20:1064:20:1073 | * | UseUseExplosion.rb:20:1064:20:1073 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1064:20:1073 | synthetic splat argument | UseUseExplosion.rb:20:1064:20:1073 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1072:20:1073 | 50 | UseUseExplosion.rb:20:1064:20:1073 | ... > ... | position 0 | | UseUseExplosion.rb:20:1085:20:1089 | @prop | UseUseExplosion.rb:20:1085:20:1094 | ... > ... | self | -| UseUseExplosion.rb:20:1085:20:1094 | * | UseUseExplosion.rb:20:1085:20:1094 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1085:20:1094 | synthetic splat argument | UseUseExplosion.rb:20:1085:20:1094 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1093:20:1094 | 49 | UseUseExplosion.rb:20:1085:20:1094 | ... > ... | position 0 | | UseUseExplosion.rb:20:1106:20:1110 | @prop | UseUseExplosion.rb:20:1106:20:1115 | ... > ... | self | -| UseUseExplosion.rb:20:1106:20:1115 | * | UseUseExplosion.rb:20:1106:20:1115 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1106:20:1115 | synthetic splat argument | UseUseExplosion.rb:20:1106:20:1115 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1114:20:1115 | 48 | UseUseExplosion.rb:20:1106:20:1115 | ... > ... | position 0 | | UseUseExplosion.rb:20:1127:20:1131 | @prop | UseUseExplosion.rb:20:1127:20:1136 | ... > ... | self | -| UseUseExplosion.rb:20:1127:20:1136 | * | UseUseExplosion.rb:20:1127:20:1136 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1127:20:1136 | synthetic splat argument | UseUseExplosion.rb:20:1127:20:1136 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1135:20:1136 | 47 | UseUseExplosion.rb:20:1127:20:1136 | ... > ... | position 0 | | UseUseExplosion.rb:20:1148:20:1152 | @prop | UseUseExplosion.rb:20:1148:20:1157 | ... > ... | self | -| UseUseExplosion.rb:20:1148:20:1157 | * | UseUseExplosion.rb:20:1148:20:1157 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1148:20:1157 | synthetic splat argument | UseUseExplosion.rb:20:1148:20:1157 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1156:20:1157 | 46 | UseUseExplosion.rb:20:1148:20:1157 | ... > ... | position 0 | | UseUseExplosion.rb:20:1169:20:1173 | @prop | UseUseExplosion.rb:20:1169:20:1178 | ... > ... | self | -| UseUseExplosion.rb:20:1169:20:1178 | * | UseUseExplosion.rb:20:1169:20:1178 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1169:20:1178 | synthetic splat argument | UseUseExplosion.rb:20:1169:20:1178 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1177:20:1178 | 45 | UseUseExplosion.rb:20:1169:20:1178 | ... > ... | position 0 | | UseUseExplosion.rb:20:1190:20:1194 | @prop | UseUseExplosion.rb:20:1190:20:1199 | ... > ... | self | -| UseUseExplosion.rb:20:1190:20:1199 | * | UseUseExplosion.rb:20:1190:20:1199 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1190:20:1199 | synthetic splat argument | UseUseExplosion.rb:20:1190:20:1199 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1198:20:1199 | 44 | UseUseExplosion.rb:20:1190:20:1199 | ... > ... | position 0 | | UseUseExplosion.rb:20:1211:20:1215 | @prop | UseUseExplosion.rb:20:1211:20:1220 | ... > ... | self | -| UseUseExplosion.rb:20:1211:20:1220 | * | UseUseExplosion.rb:20:1211:20:1220 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1211:20:1220 | synthetic splat argument | UseUseExplosion.rb:20:1211:20:1220 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1219:20:1220 | 43 | UseUseExplosion.rb:20:1211:20:1220 | ... > ... | position 0 | | UseUseExplosion.rb:20:1232:20:1236 | @prop | UseUseExplosion.rb:20:1232:20:1241 | ... > ... | self | -| UseUseExplosion.rb:20:1232:20:1241 | * | UseUseExplosion.rb:20:1232:20:1241 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1232:20:1241 | synthetic splat argument | UseUseExplosion.rb:20:1232:20:1241 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1240:20:1241 | 42 | UseUseExplosion.rb:20:1232:20:1241 | ... > ... | position 0 | | UseUseExplosion.rb:20:1253:20:1257 | @prop | UseUseExplosion.rb:20:1253:20:1262 | ... > ... | self | -| UseUseExplosion.rb:20:1253:20:1262 | * | UseUseExplosion.rb:20:1253:20:1262 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1253:20:1262 | synthetic splat argument | UseUseExplosion.rb:20:1253:20:1262 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1261:20:1262 | 41 | UseUseExplosion.rb:20:1253:20:1262 | ... > ... | position 0 | | UseUseExplosion.rb:20:1274:20:1278 | @prop | UseUseExplosion.rb:20:1274:20:1283 | ... > ... | self | -| UseUseExplosion.rb:20:1274:20:1283 | * | UseUseExplosion.rb:20:1274:20:1283 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1274:20:1283 | synthetic splat argument | UseUseExplosion.rb:20:1274:20:1283 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1282:20:1283 | 40 | UseUseExplosion.rb:20:1274:20:1283 | ... > ... | position 0 | | UseUseExplosion.rb:20:1295:20:1299 | @prop | UseUseExplosion.rb:20:1295:20:1304 | ... > ... | self | -| UseUseExplosion.rb:20:1295:20:1304 | * | UseUseExplosion.rb:20:1295:20:1304 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1295:20:1304 | synthetic splat argument | UseUseExplosion.rb:20:1295:20:1304 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1303:20:1304 | 39 | UseUseExplosion.rb:20:1295:20:1304 | ... > ... | position 0 | | UseUseExplosion.rb:20:1316:20:1320 | @prop | UseUseExplosion.rb:20:1316:20:1325 | ... > ... | self | -| UseUseExplosion.rb:20:1316:20:1325 | * | UseUseExplosion.rb:20:1316:20:1325 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1316:20:1325 | synthetic splat argument | UseUseExplosion.rb:20:1316:20:1325 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1324:20:1325 | 38 | UseUseExplosion.rb:20:1316:20:1325 | ... > ... | position 0 | | UseUseExplosion.rb:20:1337:20:1341 | @prop | UseUseExplosion.rb:20:1337:20:1346 | ... > ... | self | -| UseUseExplosion.rb:20:1337:20:1346 | * | UseUseExplosion.rb:20:1337:20:1346 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1337:20:1346 | synthetic splat argument | UseUseExplosion.rb:20:1337:20:1346 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1345:20:1346 | 37 | UseUseExplosion.rb:20:1337:20:1346 | ... > ... | position 0 | | UseUseExplosion.rb:20:1358:20:1362 | @prop | UseUseExplosion.rb:20:1358:20:1367 | ... > ... | self | -| UseUseExplosion.rb:20:1358:20:1367 | * | UseUseExplosion.rb:20:1358:20:1367 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1358:20:1367 | synthetic splat argument | UseUseExplosion.rb:20:1358:20:1367 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1366:20:1367 | 36 | UseUseExplosion.rb:20:1358:20:1367 | ... > ... | position 0 | | UseUseExplosion.rb:20:1379:20:1383 | @prop | UseUseExplosion.rb:20:1379:20:1388 | ... > ... | self | -| UseUseExplosion.rb:20:1379:20:1388 | * | UseUseExplosion.rb:20:1379:20:1388 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1379:20:1388 | synthetic splat argument | UseUseExplosion.rb:20:1379:20:1388 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1387:20:1388 | 35 | UseUseExplosion.rb:20:1379:20:1388 | ... > ... | position 0 | | UseUseExplosion.rb:20:1400:20:1404 | @prop | UseUseExplosion.rb:20:1400:20:1409 | ... > ... | self | -| UseUseExplosion.rb:20:1400:20:1409 | * | UseUseExplosion.rb:20:1400:20:1409 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1400:20:1409 | synthetic splat argument | UseUseExplosion.rb:20:1400:20:1409 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1408:20:1409 | 34 | UseUseExplosion.rb:20:1400:20:1409 | ... > ... | position 0 | | UseUseExplosion.rb:20:1421:20:1425 | @prop | UseUseExplosion.rb:20:1421:20:1430 | ... > ... | self | -| UseUseExplosion.rb:20:1421:20:1430 | * | UseUseExplosion.rb:20:1421:20:1430 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1421:20:1430 | synthetic splat argument | UseUseExplosion.rb:20:1421:20:1430 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1429:20:1430 | 33 | UseUseExplosion.rb:20:1421:20:1430 | ... > ... | position 0 | | UseUseExplosion.rb:20:1442:20:1446 | @prop | UseUseExplosion.rb:20:1442:20:1451 | ... > ... | self | -| UseUseExplosion.rb:20:1442:20:1451 | * | UseUseExplosion.rb:20:1442:20:1451 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1442:20:1451 | synthetic splat argument | UseUseExplosion.rb:20:1442:20:1451 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1450:20:1451 | 32 | UseUseExplosion.rb:20:1442:20:1451 | ... > ... | position 0 | | UseUseExplosion.rb:20:1463:20:1467 | @prop | UseUseExplosion.rb:20:1463:20:1472 | ... > ... | self | -| UseUseExplosion.rb:20:1463:20:1472 | * | UseUseExplosion.rb:20:1463:20:1472 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1463:20:1472 | synthetic splat argument | UseUseExplosion.rb:20:1463:20:1472 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1471:20:1472 | 31 | UseUseExplosion.rb:20:1463:20:1472 | ... > ... | position 0 | | UseUseExplosion.rb:20:1484:20:1488 | @prop | UseUseExplosion.rb:20:1484:20:1493 | ... > ... | self | -| UseUseExplosion.rb:20:1484:20:1493 | * | UseUseExplosion.rb:20:1484:20:1493 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1484:20:1493 | synthetic splat argument | UseUseExplosion.rb:20:1484:20:1493 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1492:20:1493 | 30 | UseUseExplosion.rb:20:1484:20:1493 | ... > ... | position 0 | | UseUseExplosion.rb:20:1505:20:1509 | @prop | UseUseExplosion.rb:20:1505:20:1514 | ... > ... | self | -| UseUseExplosion.rb:20:1505:20:1514 | * | UseUseExplosion.rb:20:1505:20:1514 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1505:20:1514 | synthetic splat argument | UseUseExplosion.rb:20:1505:20:1514 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1513:20:1514 | 29 | UseUseExplosion.rb:20:1505:20:1514 | ... > ... | position 0 | | UseUseExplosion.rb:20:1526:20:1530 | @prop | UseUseExplosion.rb:20:1526:20:1535 | ... > ... | self | -| UseUseExplosion.rb:20:1526:20:1535 | * | UseUseExplosion.rb:20:1526:20:1535 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1526:20:1535 | synthetic splat argument | UseUseExplosion.rb:20:1526:20:1535 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1534:20:1535 | 28 | UseUseExplosion.rb:20:1526:20:1535 | ... > ... | position 0 | | UseUseExplosion.rb:20:1547:20:1551 | @prop | UseUseExplosion.rb:20:1547:20:1556 | ... > ... | self | -| UseUseExplosion.rb:20:1547:20:1556 | * | UseUseExplosion.rb:20:1547:20:1556 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1547:20:1556 | synthetic splat argument | UseUseExplosion.rb:20:1547:20:1556 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1555:20:1556 | 27 | UseUseExplosion.rb:20:1547:20:1556 | ... > ... | position 0 | | UseUseExplosion.rb:20:1568:20:1572 | @prop | UseUseExplosion.rb:20:1568:20:1577 | ... > ... | self | -| UseUseExplosion.rb:20:1568:20:1577 | * | UseUseExplosion.rb:20:1568:20:1577 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1568:20:1577 | synthetic splat argument | UseUseExplosion.rb:20:1568:20:1577 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1576:20:1577 | 26 | UseUseExplosion.rb:20:1568:20:1577 | ... > ... | position 0 | | UseUseExplosion.rb:20:1589:20:1593 | @prop | UseUseExplosion.rb:20:1589:20:1598 | ... > ... | self | -| UseUseExplosion.rb:20:1589:20:1598 | * | UseUseExplosion.rb:20:1589:20:1598 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1589:20:1598 | synthetic splat argument | UseUseExplosion.rb:20:1589:20:1598 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1597:20:1598 | 25 | UseUseExplosion.rb:20:1589:20:1598 | ... > ... | position 0 | | UseUseExplosion.rb:20:1610:20:1614 | @prop | UseUseExplosion.rb:20:1610:20:1619 | ... > ... | self | -| UseUseExplosion.rb:20:1610:20:1619 | * | UseUseExplosion.rb:20:1610:20:1619 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1610:20:1619 | synthetic splat argument | UseUseExplosion.rb:20:1610:20:1619 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1618:20:1619 | 24 | UseUseExplosion.rb:20:1610:20:1619 | ... > ... | position 0 | | UseUseExplosion.rb:20:1631:20:1635 | @prop | UseUseExplosion.rb:20:1631:20:1640 | ... > ... | self | -| UseUseExplosion.rb:20:1631:20:1640 | * | UseUseExplosion.rb:20:1631:20:1640 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1631:20:1640 | synthetic splat argument | UseUseExplosion.rb:20:1631:20:1640 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1639:20:1640 | 23 | UseUseExplosion.rb:20:1631:20:1640 | ... > ... | position 0 | | UseUseExplosion.rb:20:1652:20:1656 | @prop | UseUseExplosion.rb:20:1652:20:1661 | ... > ... | self | -| UseUseExplosion.rb:20:1652:20:1661 | * | UseUseExplosion.rb:20:1652:20:1661 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1652:20:1661 | synthetic splat argument | UseUseExplosion.rb:20:1652:20:1661 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1660:20:1661 | 22 | UseUseExplosion.rb:20:1652:20:1661 | ... > ... | position 0 | | UseUseExplosion.rb:20:1673:20:1677 | @prop | UseUseExplosion.rb:20:1673:20:1682 | ... > ... | self | -| UseUseExplosion.rb:20:1673:20:1682 | * | UseUseExplosion.rb:20:1673:20:1682 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1673:20:1682 | synthetic splat argument | UseUseExplosion.rb:20:1673:20:1682 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1681:20:1682 | 21 | UseUseExplosion.rb:20:1673:20:1682 | ... > ... | position 0 | | UseUseExplosion.rb:20:1694:20:1698 | @prop | UseUseExplosion.rb:20:1694:20:1703 | ... > ... | self | -| UseUseExplosion.rb:20:1694:20:1703 | * | UseUseExplosion.rb:20:1694:20:1703 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1694:20:1703 | synthetic splat argument | UseUseExplosion.rb:20:1694:20:1703 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1702:20:1703 | 20 | UseUseExplosion.rb:20:1694:20:1703 | ... > ... | position 0 | | UseUseExplosion.rb:20:1715:20:1719 | @prop | UseUseExplosion.rb:20:1715:20:1724 | ... > ... | self | -| UseUseExplosion.rb:20:1715:20:1724 | * | UseUseExplosion.rb:20:1715:20:1724 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1715:20:1724 | synthetic splat argument | UseUseExplosion.rb:20:1715:20:1724 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1723:20:1724 | 19 | UseUseExplosion.rb:20:1715:20:1724 | ... > ... | position 0 | | UseUseExplosion.rb:20:1736:20:1740 | @prop | UseUseExplosion.rb:20:1736:20:1745 | ... > ... | self | -| UseUseExplosion.rb:20:1736:20:1745 | * | UseUseExplosion.rb:20:1736:20:1745 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1736:20:1745 | synthetic splat argument | UseUseExplosion.rb:20:1736:20:1745 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1744:20:1745 | 18 | UseUseExplosion.rb:20:1736:20:1745 | ... > ... | position 0 | | UseUseExplosion.rb:20:1757:20:1761 | @prop | UseUseExplosion.rb:20:1757:20:1766 | ... > ... | self | -| UseUseExplosion.rb:20:1757:20:1766 | * | UseUseExplosion.rb:20:1757:20:1766 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1757:20:1766 | synthetic splat argument | UseUseExplosion.rb:20:1757:20:1766 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1765:20:1766 | 17 | UseUseExplosion.rb:20:1757:20:1766 | ... > ... | position 0 | | UseUseExplosion.rb:20:1778:20:1782 | @prop | UseUseExplosion.rb:20:1778:20:1787 | ... > ... | self | -| UseUseExplosion.rb:20:1778:20:1787 | * | UseUseExplosion.rb:20:1778:20:1787 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1778:20:1787 | synthetic splat argument | UseUseExplosion.rb:20:1778:20:1787 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1786:20:1787 | 16 | UseUseExplosion.rb:20:1778:20:1787 | ... > ... | position 0 | | UseUseExplosion.rb:20:1799:20:1803 | @prop | UseUseExplosion.rb:20:1799:20:1808 | ... > ... | self | -| UseUseExplosion.rb:20:1799:20:1808 | * | UseUseExplosion.rb:20:1799:20:1808 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1799:20:1808 | synthetic splat argument | UseUseExplosion.rb:20:1799:20:1808 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1807:20:1808 | 15 | UseUseExplosion.rb:20:1799:20:1808 | ... > ... | position 0 | | UseUseExplosion.rb:20:1820:20:1824 | @prop | UseUseExplosion.rb:20:1820:20:1829 | ... > ... | self | -| UseUseExplosion.rb:20:1820:20:1829 | * | UseUseExplosion.rb:20:1820:20:1829 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1820:20:1829 | synthetic splat argument | UseUseExplosion.rb:20:1820:20:1829 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1828:20:1829 | 14 | UseUseExplosion.rb:20:1820:20:1829 | ... > ... | position 0 | | UseUseExplosion.rb:20:1841:20:1845 | @prop | UseUseExplosion.rb:20:1841:20:1850 | ... > ... | self | -| UseUseExplosion.rb:20:1841:20:1850 | * | UseUseExplosion.rb:20:1841:20:1850 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1841:20:1850 | synthetic splat argument | UseUseExplosion.rb:20:1841:20:1850 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1849:20:1850 | 13 | UseUseExplosion.rb:20:1841:20:1850 | ... > ... | position 0 | | UseUseExplosion.rb:20:1862:20:1866 | @prop | UseUseExplosion.rb:20:1862:20:1871 | ... > ... | self | -| UseUseExplosion.rb:20:1862:20:1871 | * | UseUseExplosion.rb:20:1862:20:1871 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1862:20:1871 | synthetic splat argument | UseUseExplosion.rb:20:1862:20:1871 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1870:20:1871 | 12 | UseUseExplosion.rb:20:1862:20:1871 | ... > ... | position 0 | | UseUseExplosion.rb:20:1883:20:1887 | @prop | UseUseExplosion.rb:20:1883:20:1892 | ... > ... | self | -| UseUseExplosion.rb:20:1883:20:1892 | * | UseUseExplosion.rb:20:1883:20:1892 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1883:20:1892 | synthetic splat argument | UseUseExplosion.rb:20:1883:20:1892 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1891:20:1892 | 11 | UseUseExplosion.rb:20:1883:20:1892 | ... > ... | position 0 | | UseUseExplosion.rb:20:1904:20:1908 | @prop | UseUseExplosion.rb:20:1904:20:1913 | ... > ... | self | -| UseUseExplosion.rb:20:1904:20:1913 | * | UseUseExplosion.rb:20:1904:20:1913 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1904:20:1913 | synthetic splat argument | UseUseExplosion.rb:20:1904:20:1913 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1912:20:1913 | 10 | UseUseExplosion.rb:20:1904:20:1913 | ... > ... | position 0 | | UseUseExplosion.rb:20:1925:20:1929 | @prop | UseUseExplosion.rb:20:1925:20:1933 | ... > ... | self | -| UseUseExplosion.rb:20:1925:20:1933 | * | UseUseExplosion.rb:20:1925:20:1933 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1925:20:1933 | synthetic splat argument | UseUseExplosion.rb:20:1925:20:1933 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1933:20:1933 | 9 | UseUseExplosion.rb:20:1925:20:1933 | ... > ... | position 0 | | UseUseExplosion.rb:20:1945:20:1949 | @prop | UseUseExplosion.rb:20:1945:20:1953 | ... > ... | self | -| UseUseExplosion.rb:20:1945:20:1953 | * | UseUseExplosion.rb:20:1945:20:1953 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1945:20:1953 | synthetic splat argument | UseUseExplosion.rb:20:1945:20:1953 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1953:20:1953 | 8 | UseUseExplosion.rb:20:1945:20:1953 | ... > ... | position 0 | | UseUseExplosion.rb:20:1965:20:1969 | @prop | UseUseExplosion.rb:20:1965:20:1973 | ... > ... | self | -| UseUseExplosion.rb:20:1965:20:1973 | * | UseUseExplosion.rb:20:1965:20:1973 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1965:20:1973 | synthetic splat argument | UseUseExplosion.rb:20:1965:20:1973 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1973:20:1973 | 7 | UseUseExplosion.rb:20:1965:20:1973 | ... > ... | position 0 | | UseUseExplosion.rb:20:1985:20:1989 | @prop | UseUseExplosion.rb:20:1985:20:1993 | ... > ... | self | -| UseUseExplosion.rb:20:1985:20:1993 | * | UseUseExplosion.rb:20:1985:20:1993 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:1985:20:1993 | synthetic splat argument | UseUseExplosion.rb:20:1985:20:1993 | ... > ... | synthetic * | | UseUseExplosion.rb:20:1993:20:1993 | 6 | UseUseExplosion.rb:20:1985:20:1993 | ... > ... | position 0 | | UseUseExplosion.rb:20:2005:20:2009 | @prop | UseUseExplosion.rb:20:2005:20:2013 | ... > ... | self | -| UseUseExplosion.rb:20:2005:20:2013 | * | UseUseExplosion.rb:20:2005:20:2013 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:2005:20:2013 | synthetic splat argument | UseUseExplosion.rb:20:2005:20:2013 | ... > ... | synthetic * | | UseUseExplosion.rb:20:2013:20:2013 | 5 | UseUseExplosion.rb:20:2005:20:2013 | ... > ... | position 0 | | UseUseExplosion.rb:20:2025:20:2029 | @prop | UseUseExplosion.rb:20:2025:20:2033 | ... > ... | self | -| UseUseExplosion.rb:20:2025:20:2033 | * | UseUseExplosion.rb:20:2025:20:2033 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:2025:20:2033 | synthetic splat argument | UseUseExplosion.rb:20:2025:20:2033 | ... > ... | synthetic * | | UseUseExplosion.rb:20:2033:20:2033 | 4 | UseUseExplosion.rb:20:2025:20:2033 | ... > ... | position 0 | | UseUseExplosion.rb:20:2045:20:2049 | @prop | UseUseExplosion.rb:20:2045:20:2053 | ... > ... | self | -| UseUseExplosion.rb:20:2045:20:2053 | * | UseUseExplosion.rb:20:2045:20:2053 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:2045:20:2053 | synthetic splat argument | UseUseExplosion.rb:20:2045:20:2053 | ... > ... | synthetic * | | UseUseExplosion.rb:20:2053:20:2053 | 3 | UseUseExplosion.rb:20:2045:20:2053 | ... > ... | position 0 | | UseUseExplosion.rb:20:2065:20:2069 | @prop | UseUseExplosion.rb:20:2065:20:2073 | ... > ... | self | -| UseUseExplosion.rb:20:2065:20:2073 | * | UseUseExplosion.rb:20:2065:20:2073 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:2065:20:2073 | synthetic splat argument | UseUseExplosion.rb:20:2065:20:2073 | ... > ... | synthetic * | | UseUseExplosion.rb:20:2073:20:2073 | 2 | UseUseExplosion.rb:20:2065:20:2073 | ... > ... | position 0 | | UseUseExplosion.rb:20:2085:20:2089 | @prop | UseUseExplosion.rb:20:2085:20:2093 | ... > ... | self | -| UseUseExplosion.rb:20:2085:20:2093 | * | UseUseExplosion.rb:20:2085:20:2093 | ... > ... | synthetic * | +| UseUseExplosion.rb:20:2085:20:2093 | synthetic splat argument | UseUseExplosion.rb:20:2085:20:2093 | ... > ... | synthetic * | | UseUseExplosion.rb:20:2093:20:2093 | 1 | UseUseExplosion.rb:20:2085:20:2093 | ... > ... | position 0 | -| UseUseExplosion.rb:20:2107:20:2112 | * | UseUseExplosion.rb:20:2107:20:2112 | call to use | synthetic * | | UseUseExplosion.rb:20:2107:20:2112 | self | UseUseExplosion.rb:20:2107:20:2112 | call to use | self | +| UseUseExplosion.rb:20:2107:20:2112 | synthetic splat argument | UseUseExplosion.rb:20:2107:20:2112 | call to use | synthetic * | | UseUseExplosion.rb:20:2111:20:2111 | x | UseUseExplosion.rb:20:2107:20:2112 | call to use | position 0 | -| UseUseExplosion.rb:20:2123:20:2128 | * | UseUseExplosion.rb:20:2123:20:2128 | call to use | synthetic * | | UseUseExplosion.rb:20:2123:20:2128 | self | UseUseExplosion.rb:20:2123:20:2128 | call to use | self | +| UseUseExplosion.rb:20:2123:20:2128 | synthetic splat argument | UseUseExplosion.rb:20:2123:20:2128 | call to use | synthetic * | | UseUseExplosion.rb:20:2127:20:2127 | x | UseUseExplosion.rb:20:2123:20:2128 | call to use | position 0 | -| UseUseExplosion.rb:20:2139:20:2144 | * | UseUseExplosion.rb:20:2139:20:2144 | call to use | synthetic * | | UseUseExplosion.rb:20:2139:20:2144 | self | UseUseExplosion.rb:20:2139:20:2144 | call to use | self | +| UseUseExplosion.rb:20:2139:20:2144 | synthetic splat argument | UseUseExplosion.rb:20:2139:20:2144 | call to use | synthetic * | | UseUseExplosion.rb:20:2143:20:2143 | x | UseUseExplosion.rb:20:2139:20:2144 | call to use | position 0 | -| UseUseExplosion.rb:20:2155:20:2160 | * | UseUseExplosion.rb:20:2155:20:2160 | call to use | synthetic * | | UseUseExplosion.rb:20:2155:20:2160 | self | UseUseExplosion.rb:20:2155:20:2160 | call to use | self | +| UseUseExplosion.rb:20:2155:20:2160 | synthetic splat argument | UseUseExplosion.rb:20:2155:20:2160 | call to use | synthetic * | | UseUseExplosion.rb:20:2159:20:2159 | x | UseUseExplosion.rb:20:2155:20:2160 | call to use | position 0 | -| UseUseExplosion.rb:20:2171:20:2176 | * | UseUseExplosion.rb:20:2171:20:2176 | call to use | synthetic * | | UseUseExplosion.rb:20:2171:20:2176 | self | UseUseExplosion.rb:20:2171:20:2176 | call to use | self | +| UseUseExplosion.rb:20:2171:20:2176 | synthetic splat argument | UseUseExplosion.rb:20:2171:20:2176 | call to use | synthetic * | | UseUseExplosion.rb:20:2175:20:2175 | x | UseUseExplosion.rb:20:2171:20:2176 | call to use | position 0 | -| UseUseExplosion.rb:20:2187:20:2192 | * | UseUseExplosion.rb:20:2187:20:2192 | call to use | synthetic * | | UseUseExplosion.rb:20:2187:20:2192 | self | UseUseExplosion.rb:20:2187:20:2192 | call to use | self | +| UseUseExplosion.rb:20:2187:20:2192 | synthetic splat argument | UseUseExplosion.rb:20:2187:20:2192 | call to use | synthetic * | | UseUseExplosion.rb:20:2191:20:2191 | x | UseUseExplosion.rb:20:2187:20:2192 | call to use | position 0 | -| UseUseExplosion.rb:20:2203:20:2208 | * | UseUseExplosion.rb:20:2203:20:2208 | call to use | synthetic * | | UseUseExplosion.rb:20:2203:20:2208 | self | UseUseExplosion.rb:20:2203:20:2208 | call to use | self | +| UseUseExplosion.rb:20:2203:20:2208 | synthetic splat argument | UseUseExplosion.rb:20:2203:20:2208 | call to use | synthetic * | | UseUseExplosion.rb:20:2207:20:2207 | x | UseUseExplosion.rb:20:2203:20:2208 | call to use | position 0 | -| UseUseExplosion.rb:20:2219:20:2224 | * | UseUseExplosion.rb:20:2219:20:2224 | call to use | synthetic * | | UseUseExplosion.rb:20:2219:20:2224 | self | UseUseExplosion.rb:20:2219:20:2224 | call to use | self | +| UseUseExplosion.rb:20:2219:20:2224 | synthetic splat argument | UseUseExplosion.rb:20:2219:20:2224 | call to use | synthetic * | | UseUseExplosion.rb:20:2223:20:2223 | x | UseUseExplosion.rb:20:2219:20:2224 | call to use | position 0 | -| UseUseExplosion.rb:20:2235:20:2240 | * | UseUseExplosion.rb:20:2235:20:2240 | call to use | synthetic * | | UseUseExplosion.rb:20:2235:20:2240 | self | UseUseExplosion.rb:20:2235:20:2240 | call to use | self | +| UseUseExplosion.rb:20:2235:20:2240 | synthetic splat argument | UseUseExplosion.rb:20:2235:20:2240 | call to use | synthetic * | | UseUseExplosion.rb:20:2239:20:2239 | x | UseUseExplosion.rb:20:2235:20:2240 | call to use | position 0 | -| UseUseExplosion.rb:20:2251:20:2256 | * | UseUseExplosion.rb:20:2251:20:2256 | call to use | synthetic * | | UseUseExplosion.rb:20:2251:20:2256 | self | UseUseExplosion.rb:20:2251:20:2256 | call to use | self | +| UseUseExplosion.rb:20:2251:20:2256 | synthetic splat argument | UseUseExplosion.rb:20:2251:20:2256 | call to use | synthetic * | | UseUseExplosion.rb:20:2255:20:2255 | x | UseUseExplosion.rb:20:2251:20:2256 | call to use | position 0 | -| UseUseExplosion.rb:20:2267:20:2272 | * | UseUseExplosion.rb:20:2267:20:2272 | call to use | synthetic * | | UseUseExplosion.rb:20:2267:20:2272 | self | UseUseExplosion.rb:20:2267:20:2272 | call to use | self | +| UseUseExplosion.rb:20:2267:20:2272 | synthetic splat argument | UseUseExplosion.rb:20:2267:20:2272 | call to use | synthetic * | | UseUseExplosion.rb:20:2271:20:2271 | x | UseUseExplosion.rb:20:2267:20:2272 | call to use | position 0 | -| UseUseExplosion.rb:20:2283:20:2288 | * | UseUseExplosion.rb:20:2283:20:2288 | call to use | synthetic * | | UseUseExplosion.rb:20:2283:20:2288 | self | UseUseExplosion.rb:20:2283:20:2288 | call to use | self | +| UseUseExplosion.rb:20:2283:20:2288 | synthetic splat argument | UseUseExplosion.rb:20:2283:20:2288 | call to use | synthetic * | | UseUseExplosion.rb:20:2287:20:2287 | x | UseUseExplosion.rb:20:2283:20:2288 | call to use | position 0 | -| UseUseExplosion.rb:20:2299:20:2304 | * | UseUseExplosion.rb:20:2299:20:2304 | call to use | synthetic * | | UseUseExplosion.rb:20:2299:20:2304 | self | UseUseExplosion.rb:20:2299:20:2304 | call to use | self | +| UseUseExplosion.rb:20:2299:20:2304 | synthetic splat argument | UseUseExplosion.rb:20:2299:20:2304 | call to use | synthetic * | | UseUseExplosion.rb:20:2303:20:2303 | x | UseUseExplosion.rb:20:2299:20:2304 | call to use | position 0 | -| UseUseExplosion.rb:20:2315:20:2320 | * | UseUseExplosion.rb:20:2315:20:2320 | call to use | synthetic * | | UseUseExplosion.rb:20:2315:20:2320 | self | UseUseExplosion.rb:20:2315:20:2320 | call to use | self | +| UseUseExplosion.rb:20:2315:20:2320 | synthetic splat argument | UseUseExplosion.rb:20:2315:20:2320 | call to use | synthetic * | | UseUseExplosion.rb:20:2319:20:2319 | x | UseUseExplosion.rb:20:2315:20:2320 | call to use | position 0 | -| UseUseExplosion.rb:20:2331:20:2336 | * | UseUseExplosion.rb:20:2331:20:2336 | call to use | synthetic * | | UseUseExplosion.rb:20:2331:20:2336 | self | UseUseExplosion.rb:20:2331:20:2336 | call to use | self | +| UseUseExplosion.rb:20:2331:20:2336 | synthetic splat argument | UseUseExplosion.rb:20:2331:20:2336 | call to use | synthetic * | | UseUseExplosion.rb:20:2335:20:2335 | x | UseUseExplosion.rb:20:2331:20:2336 | call to use | position 0 | -| UseUseExplosion.rb:20:2347:20:2352 | * | UseUseExplosion.rb:20:2347:20:2352 | call to use | synthetic * | | UseUseExplosion.rb:20:2347:20:2352 | self | UseUseExplosion.rb:20:2347:20:2352 | call to use | self | +| UseUseExplosion.rb:20:2347:20:2352 | synthetic splat argument | UseUseExplosion.rb:20:2347:20:2352 | call to use | synthetic * | | UseUseExplosion.rb:20:2351:20:2351 | x | UseUseExplosion.rb:20:2347:20:2352 | call to use | position 0 | -| UseUseExplosion.rb:20:2363:20:2368 | * | UseUseExplosion.rb:20:2363:20:2368 | call to use | synthetic * | | UseUseExplosion.rb:20:2363:20:2368 | self | UseUseExplosion.rb:20:2363:20:2368 | call to use | self | +| UseUseExplosion.rb:20:2363:20:2368 | synthetic splat argument | UseUseExplosion.rb:20:2363:20:2368 | call to use | synthetic * | | UseUseExplosion.rb:20:2367:20:2367 | x | UseUseExplosion.rb:20:2363:20:2368 | call to use | position 0 | -| UseUseExplosion.rb:20:2379:20:2384 | * | UseUseExplosion.rb:20:2379:20:2384 | call to use | synthetic * | | UseUseExplosion.rb:20:2379:20:2384 | self | UseUseExplosion.rb:20:2379:20:2384 | call to use | self | +| UseUseExplosion.rb:20:2379:20:2384 | synthetic splat argument | UseUseExplosion.rb:20:2379:20:2384 | call to use | synthetic * | | UseUseExplosion.rb:20:2383:20:2383 | x | UseUseExplosion.rb:20:2379:20:2384 | call to use | position 0 | -| UseUseExplosion.rb:20:2395:20:2400 | * | UseUseExplosion.rb:20:2395:20:2400 | call to use | synthetic * | | UseUseExplosion.rb:20:2395:20:2400 | self | UseUseExplosion.rb:20:2395:20:2400 | call to use | self | +| UseUseExplosion.rb:20:2395:20:2400 | synthetic splat argument | UseUseExplosion.rb:20:2395:20:2400 | call to use | synthetic * | | UseUseExplosion.rb:20:2399:20:2399 | x | UseUseExplosion.rb:20:2395:20:2400 | call to use | position 0 | -| UseUseExplosion.rb:20:2411:20:2416 | * | UseUseExplosion.rb:20:2411:20:2416 | call to use | synthetic * | | UseUseExplosion.rb:20:2411:20:2416 | self | UseUseExplosion.rb:20:2411:20:2416 | call to use | self | +| UseUseExplosion.rb:20:2411:20:2416 | synthetic splat argument | UseUseExplosion.rb:20:2411:20:2416 | call to use | synthetic * | | UseUseExplosion.rb:20:2415:20:2415 | x | UseUseExplosion.rb:20:2411:20:2416 | call to use | position 0 | -| UseUseExplosion.rb:20:2427:20:2432 | * | UseUseExplosion.rb:20:2427:20:2432 | call to use | synthetic * | | UseUseExplosion.rb:20:2427:20:2432 | self | UseUseExplosion.rb:20:2427:20:2432 | call to use | self | +| UseUseExplosion.rb:20:2427:20:2432 | synthetic splat argument | UseUseExplosion.rb:20:2427:20:2432 | call to use | synthetic * | | UseUseExplosion.rb:20:2431:20:2431 | x | UseUseExplosion.rb:20:2427:20:2432 | call to use | position 0 | -| UseUseExplosion.rb:20:2443:20:2448 | * | UseUseExplosion.rb:20:2443:20:2448 | call to use | synthetic * | | UseUseExplosion.rb:20:2443:20:2448 | self | UseUseExplosion.rb:20:2443:20:2448 | call to use | self | +| UseUseExplosion.rb:20:2443:20:2448 | synthetic splat argument | UseUseExplosion.rb:20:2443:20:2448 | call to use | synthetic * | | UseUseExplosion.rb:20:2447:20:2447 | x | UseUseExplosion.rb:20:2443:20:2448 | call to use | position 0 | -| UseUseExplosion.rb:20:2459:20:2464 | * | UseUseExplosion.rb:20:2459:20:2464 | call to use | synthetic * | | UseUseExplosion.rb:20:2459:20:2464 | self | UseUseExplosion.rb:20:2459:20:2464 | call to use | self | +| UseUseExplosion.rb:20:2459:20:2464 | synthetic splat argument | UseUseExplosion.rb:20:2459:20:2464 | call to use | synthetic * | | UseUseExplosion.rb:20:2463:20:2463 | x | UseUseExplosion.rb:20:2459:20:2464 | call to use | position 0 | -| UseUseExplosion.rb:20:2475:20:2480 | * | UseUseExplosion.rb:20:2475:20:2480 | call to use | synthetic * | | UseUseExplosion.rb:20:2475:20:2480 | self | UseUseExplosion.rb:20:2475:20:2480 | call to use | self | +| UseUseExplosion.rb:20:2475:20:2480 | synthetic splat argument | UseUseExplosion.rb:20:2475:20:2480 | call to use | synthetic * | | UseUseExplosion.rb:20:2479:20:2479 | x | UseUseExplosion.rb:20:2475:20:2480 | call to use | position 0 | -| UseUseExplosion.rb:20:2491:20:2496 | * | UseUseExplosion.rb:20:2491:20:2496 | call to use | synthetic * | | UseUseExplosion.rb:20:2491:20:2496 | self | UseUseExplosion.rb:20:2491:20:2496 | call to use | self | +| UseUseExplosion.rb:20:2491:20:2496 | synthetic splat argument | UseUseExplosion.rb:20:2491:20:2496 | call to use | synthetic * | | UseUseExplosion.rb:20:2495:20:2495 | x | UseUseExplosion.rb:20:2491:20:2496 | call to use | position 0 | -| UseUseExplosion.rb:20:2507:20:2512 | * | UseUseExplosion.rb:20:2507:20:2512 | call to use | synthetic * | | UseUseExplosion.rb:20:2507:20:2512 | self | UseUseExplosion.rb:20:2507:20:2512 | call to use | self | +| UseUseExplosion.rb:20:2507:20:2512 | synthetic splat argument | UseUseExplosion.rb:20:2507:20:2512 | call to use | synthetic * | | UseUseExplosion.rb:20:2511:20:2511 | x | UseUseExplosion.rb:20:2507:20:2512 | call to use | position 0 | -| UseUseExplosion.rb:20:2523:20:2528 | * | UseUseExplosion.rb:20:2523:20:2528 | call to use | synthetic * | | UseUseExplosion.rb:20:2523:20:2528 | self | UseUseExplosion.rb:20:2523:20:2528 | call to use | self | +| UseUseExplosion.rb:20:2523:20:2528 | synthetic splat argument | UseUseExplosion.rb:20:2523:20:2528 | call to use | synthetic * | | UseUseExplosion.rb:20:2527:20:2527 | x | UseUseExplosion.rb:20:2523:20:2528 | call to use | position 0 | -| UseUseExplosion.rb:20:2539:20:2544 | * | UseUseExplosion.rb:20:2539:20:2544 | call to use | synthetic * | | UseUseExplosion.rb:20:2539:20:2544 | self | UseUseExplosion.rb:20:2539:20:2544 | call to use | self | +| UseUseExplosion.rb:20:2539:20:2544 | synthetic splat argument | UseUseExplosion.rb:20:2539:20:2544 | call to use | synthetic * | | UseUseExplosion.rb:20:2543:20:2543 | x | UseUseExplosion.rb:20:2539:20:2544 | call to use | position 0 | -| UseUseExplosion.rb:20:2555:20:2560 | * | UseUseExplosion.rb:20:2555:20:2560 | call to use | synthetic * | | UseUseExplosion.rb:20:2555:20:2560 | self | UseUseExplosion.rb:20:2555:20:2560 | call to use | self | +| UseUseExplosion.rb:20:2555:20:2560 | synthetic splat argument | UseUseExplosion.rb:20:2555:20:2560 | call to use | synthetic * | | UseUseExplosion.rb:20:2559:20:2559 | x | UseUseExplosion.rb:20:2555:20:2560 | call to use | position 0 | -| UseUseExplosion.rb:20:2571:20:2576 | * | UseUseExplosion.rb:20:2571:20:2576 | call to use | synthetic * | | UseUseExplosion.rb:20:2571:20:2576 | self | UseUseExplosion.rb:20:2571:20:2576 | call to use | self | +| UseUseExplosion.rb:20:2571:20:2576 | synthetic splat argument | UseUseExplosion.rb:20:2571:20:2576 | call to use | synthetic * | | UseUseExplosion.rb:20:2575:20:2575 | x | UseUseExplosion.rb:20:2571:20:2576 | call to use | position 0 | -| UseUseExplosion.rb:20:2587:20:2592 | * | UseUseExplosion.rb:20:2587:20:2592 | call to use | synthetic * | | UseUseExplosion.rb:20:2587:20:2592 | self | UseUseExplosion.rb:20:2587:20:2592 | call to use | self | +| UseUseExplosion.rb:20:2587:20:2592 | synthetic splat argument | UseUseExplosion.rb:20:2587:20:2592 | call to use | synthetic * | | UseUseExplosion.rb:20:2591:20:2591 | x | UseUseExplosion.rb:20:2587:20:2592 | call to use | position 0 | -| UseUseExplosion.rb:20:2603:20:2608 | * | UseUseExplosion.rb:20:2603:20:2608 | call to use | synthetic * | | UseUseExplosion.rb:20:2603:20:2608 | self | UseUseExplosion.rb:20:2603:20:2608 | call to use | self | +| UseUseExplosion.rb:20:2603:20:2608 | synthetic splat argument | UseUseExplosion.rb:20:2603:20:2608 | call to use | synthetic * | | UseUseExplosion.rb:20:2607:20:2607 | x | UseUseExplosion.rb:20:2603:20:2608 | call to use | position 0 | -| UseUseExplosion.rb:20:2619:20:2624 | * | UseUseExplosion.rb:20:2619:20:2624 | call to use | synthetic * | | UseUseExplosion.rb:20:2619:20:2624 | self | UseUseExplosion.rb:20:2619:20:2624 | call to use | self | +| UseUseExplosion.rb:20:2619:20:2624 | synthetic splat argument | UseUseExplosion.rb:20:2619:20:2624 | call to use | synthetic * | | UseUseExplosion.rb:20:2623:20:2623 | x | UseUseExplosion.rb:20:2619:20:2624 | call to use | position 0 | -| UseUseExplosion.rb:20:2635:20:2640 | * | UseUseExplosion.rb:20:2635:20:2640 | call to use | synthetic * | | UseUseExplosion.rb:20:2635:20:2640 | self | UseUseExplosion.rb:20:2635:20:2640 | call to use | self | +| UseUseExplosion.rb:20:2635:20:2640 | synthetic splat argument | UseUseExplosion.rb:20:2635:20:2640 | call to use | synthetic * | | UseUseExplosion.rb:20:2639:20:2639 | x | UseUseExplosion.rb:20:2635:20:2640 | call to use | position 0 | -| UseUseExplosion.rb:20:2651:20:2656 | * | UseUseExplosion.rb:20:2651:20:2656 | call to use | synthetic * | | UseUseExplosion.rb:20:2651:20:2656 | self | UseUseExplosion.rb:20:2651:20:2656 | call to use | self | +| UseUseExplosion.rb:20:2651:20:2656 | synthetic splat argument | UseUseExplosion.rb:20:2651:20:2656 | call to use | synthetic * | | UseUseExplosion.rb:20:2655:20:2655 | x | UseUseExplosion.rb:20:2651:20:2656 | call to use | position 0 | -| UseUseExplosion.rb:20:2667:20:2672 | * | UseUseExplosion.rb:20:2667:20:2672 | call to use | synthetic * | | UseUseExplosion.rb:20:2667:20:2672 | self | UseUseExplosion.rb:20:2667:20:2672 | call to use | self | +| UseUseExplosion.rb:20:2667:20:2672 | synthetic splat argument | UseUseExplosion.rb:20:2667:20:2672 | call to use | synthetic * | | UseUseExplosion.rb:20:2671:20:2671 | x | UseUseExplosion.rb:20:2667:20:2672 | call to use | position 0 | -| UseUseExplosion.rb:20:2683:20:2688 | * | UseUseExplosion.rb:20:2683:20:2688 | call to use | synthetic * | | UseUseExplosion.rb:20:2683:20:2688 | self | UseUseExplosion.rb:20:2683:20:2688 | call to use | self | +| UseUseExplosion.rb:20:2683:20:2688 | synthetic splat argument | UseUseExplosion.rb:20:2683:20:2688 | call to use | synthetic * | | UseUseExplosion.rb:20:2687:20:2687 | x | UseUseExplosion.rb:20:2683:20:2688 | call to use | position 0 | -| UseUseExplosion.rb:20:2699:20:2704 | * | UseUseExplosion.rb:20:2699:20:2704 | call to use | synthetic * | | UseUseExplosion.rb:20:2699:20:2704 | self | UseUseExplosion.rb:20:2699:20:2704 | call to use | self | +| UseUseExplosion.rb:20:2699:20:2704 | synthetic splat argument | UseUseExplosion.rb:20:2699:20:2704 | call to use | synthetic * | | UseUseExplosion.rb:20:2703:20:2703 | x | UseUseExplosion.rb:20:2699:20:2704 | call to use | position 0 | -| UseUseExplosion.rb:20:2715:20:2720 | * | UseUseExplosion.rb:20:2715:20:2720 | call to use | synthetic * | | UseUseExplosion.rb:20:2715:20:2720 | self | UseUseExplosion.rb:20:2715:20:2720 | call to use | self | +| UseUseExplosion.rb:20:2715:20:2720 | synthetic splat argument | UseUseExplosion.rb:20:2715:20:2720 | call to use | synthetic * | | UseUseExplosion.rb:20:2719:20:2719 | x | UseUseExplosion.rb:20:2715:20:2720 | call to use | position 0 | -| UseUseExplosion.rb:20:2731:20:2736 | * | UseUseExplosion.rb:20:2731:20:2736 | call to use | synthetic * | | UseUseExplosion.rb:20:2731:20:2736 | self | UseUseExplosion.rb:20:2731:20:2736 | call to use | self | +| UseUseExplosion.rb:20:2731:20:2736 | synthetic splat argument | UseUseExplosion.rb:20:2731:20:2736 | call to use | synthetic * | | UseUseExplosion.rb:20:2735:20:2735 | x | UseUseExplosion.rb:20:2731:20:2736 | call to use | position 0 | -| UseUseExplosion.rb:20:2747:20:2752 | * | UseUseExplosion.rb:20:2747:20:2752 | call to use | synthetic * | | UseUseExplosion.rb:20:2747:20:2752 | self | UseUseExplosion.rb:20:2747:20:2752 | call to use | self | +| UseUseExplosion.rb:20:2747:20:2752 | synthetic splat argument | UseUseExplosion.rb:20:2747:20:2752 | call to use | synthetic * | | UseUseExplosion.rb:20:2751:20:2751 | x | UseUseExplosion.rb:20:2747:20:2752 | call to use | position 0 | -| UseUseExplosion.rb:20:2763:20:2768 | * | UseUseExplosion.rb:20:2763:20:2768 | call to use | synthetic * | | UseUseExplosion.rb:20:2763:20:2768 | self | UseUseExplosion.rb:20:2763:20:2768 | call to use | self | +| UseUseExplosion.rb:20:2763:20:2768 | synthetic splat argument | UseUseExplosion.rb:20:2763:20:2768 | call to use | synthetic * | | UseUseExplosion.rb:20:2767:20:2767 | x | UseUseExplosion.rb:20:2763:20:2768 | call to use | position 0 | -| UseUseExplosion.rb:20:2779:20:2784 | * | UseUseExplosion.rb:20:2779:20:2784 | call to use | synthetic * | | UseUseExplosion.rb:20:2779:20:2784 | self | UseUseExplosion.rb:20:2779:20:2784 | call to use | self | +| UseUseExplosion.rb:20:2779:20:2784 | synthetic splat argument | UseUseExplosion.rb:20:2779:20:2784 | call to use | synthetic * | | UseUseExplosion.rb:20:2783:20:2783 | x | UseUseExplosion.rb:20:2779:20:2784 | call to use | position 0 | -| UseUseExplosion.rb:20:2795:20:2800 | * | UseUseExplosion.rb:20:2795:20:2800 | call to use | synthetic * | | UseUseExplosion.rb:20:2795:20:2800 | self | UseUseExplosion.rb:20:2795:20:2800 | call to use | self | +| UseUseExplosion.rb:20:2795:20:2800 | synthetic splat argument | UseUseExplosion.rb:20:2795:20:2800 | call to use | synthetic * | | UseUseExplosion.rb:20:2799:20:2799 | x | UseUseExplosion.rb:20:2795:20:2800 | call to use | position 0 | -| UseUseExplosion.rb:20:2811:20:2816 | * | UseUseExplosion.rb:20:2811:20:2816 | call to use | synthetic * | | UseUseExplosion.rb:20:2811:20:2816 | self | UseUseExplosion.rb:20:2811:20:2816 | call to use | self | +| UseUseExplosion.rb:20:2811:20:2816 | synthetic splat argument | UseUseExplosion.rb:20:2811:20:2816 | call to use | synthetic * | | UseUseExplosion.rb:20:2815:20:2815 | x | UseUseExplosion.rb:20:2811:20:2816 | call to use | position 0 | -| UseUseExplosion.rb:20:2827:20:2832 | * | UseUseExplosion.rb:20:2827:20:2832 | call to use | synthetic * | | UseUseExplosion.rb:20:2827:20:2832 | self | UseUseExplosion.rb:20:2827:20:2832 | call to use | self | +| UseUseExplosion.rb:20:2827:20:2832 | synthetic splat argument | UseUseExplosion.rb:20:2827:20:2832 | call to use | synthetic * | | UseUseExplosion.rb:20:2831:20:2831 | x | UseUseExplosion.rb:20:2827:20:2832 | call to use | position 0 | -| UseUseExplosion.rb:20:2843:20:2848 | * | UseUseExplosion.rb:20:2843:20:2848 | call to use | synthetic * | | UseUseExplosion.rb:20:2843:20:2848 | self | UseUseExplosion.rb:20:2843:20:2848 | call to use | self | +| UseUseExplosion.rb:20:2843:20:2848 | synthetic splat argument | UseUseExplosion.rb:20:2843:20:2848 | call to use | synthetic * | | UseUseExplosion.rb:20:2847:20:2847 | x | UseUseExplosion.rb:20:2843:20:2848 | call to use | position 0 | -| UseUseExplosion.rb:20:2859:20:2864 | * | UseUseExplosion.rb:20:2859:20:2864 | call to use | synthetic * | | UseUseExplosion.rb:20:2859:20:2864 | self | UseUseExplosion.rb:20:2859:20:2864 | call to use | self | +| UseUseExplosion.rb:20:2859:20:2864 | synthetic splat argument | UseUseExplosion.rb:20:2859:20:2864 | call to use | synthetic * | | UseUseExplosion.rb:20:2863:20:2863 | x | UseUseExplosion.rb:20:2859:20:2864 | call to use | position 0 | -| UseUseExplosion.rb:20:2875:20:2880 | * | UseUseExplosion.rb:20:2875:20:2880 | call to use | synthetic * | | UseUseExplosion.rb:20:2875:20:2880 | self | UseUseExplosion.rb:20:2875:20:2880 | call to use | self | +| UseUseExplosion.rb:20:2875:20:2880 | synthetic splat argument | UseUseExplosion.rb:20:2875:20:2880 | call to use | synthetic * | | UseUseExplosion.rb:20:2879:20:2879 | x | UseUseExplosion.rb:20:2875:20:2880 | call to use | position 0 | -| UseUseExplosion.rb:20:2891:20:2896 | * | UseUseExplosion.rb:20:2891:20:2896 | call to use | synthetic * | | UseUseExplosion.rb:20:2891:20:2896 | self | UseUseExplosion.rb:20:2891:20:2896 | call to use | self | +| UseUseExplosion.rb:20:2891:20:2896 | synthetic splat argument | UseUseExplosion.rb:20:2891:20:2896 | call to use | synthetic * | | UseUseExplosion.rb:20:2895:20:2895 | x | UseUseExplosion.rb:20:2891:20:2896 | call to use | position 0 | -| UseUseExplosion.rb:20:2907:20:2912 | * | UseUseExplosion.rb:20:2907:20:2912 | call to use | synthetic * | | UseUseExplosion.rb:20:2907:20:2912 | self | UseUseExplosion.rb:20:2907:20:2912 | call to use | self | +| UseUseExplosion.rb:20:2907:20:2912 | synthetic splat argument | UseUseExplosion.rb:20:2907:20:2912 | call to use | synthetic * | | UseUseExplosion.rb:20:2911:20:2911 | x | UseUseExplosion.rb:20:2907:20:2912 | call to use | position 0 | -| UseUseExplosion.rb:20:2923:20:2928 | * | UseUseExplosion.rb:20:2923:20:2928 | call to use | synthetic * | | UseUseExplosion.rb:20:2923:20:2928 | self | UseUseExplosion.rb:20:2923:20:2928 | call to use | self | +| UseUseExplosion.rb:20:2923:20:2928 | synthetic splat argument | UseUseExplosion.rb:20:2923:20:2928 | call to use | synthetic * | | UseUseExplosion.rb:20:2927:20:2927 | x | UseUseExplosion.rb:20:2923:20:2928 | call to use | position 0 | -| UseUseExplosion.rb:20:2939:20:2944 | * | UseUseExplosion.rb:20:2939:20:2944 | call to use | synthetic * | | UseUseExplosion.rb:20:2939:20:2944 | self | UseUseExplosion.rb:20:2939:20:2944 | call to use | self | +| UseUseExplosion.rb:20:2939:20:2944 | synthetic splat argument | UseUseExplosion.rb:20:2939:20:2944 | call to use | synthetic * | | UseUseExplosion.rb:20:2943:20:2943 | x | UseUseExplosion.rb:20:2939:20:2944 | call to use | position 0 | -| UseUseExplosion.rb:20:2955:20:2960 | * | UseUseExplosion.rb:20:2955:20:2960 | call to use | synthetic * | | UseUseExplosion.rb:20:2955:20:2960 | self | UseUseExplosion.rb:20:2955:20:2960 | call to use | self | +| UseUseExplosion.rb:20:2955:20:2960 | synthetic splat argument | UseUseExplosion.rb:20:2955:20:2960 | call to use | synthetic * | | UseUseExplosion.rb:20:2959:20:2959 | x | UseUseExplosion.rb:20:2955:20:2960 | call to use | position 0 | -| UseUseExplosion.rb:20:2971:20:2976 | * | UseUseExplosion.rb:20:2971:20:2976 | call to use | synthetic * | | UseUseExplosion.rb:20:2971:20:2976 | self | UseUseExplosion.rb:20:2971:20:2976 | call to use | self | +| UseUseExplosion.rb:20:2971:20:2976 | synthetic splat argument | UseUseExplosion.rb:20:2971:20:2976 | call to use | synthetic * | | UseUseExplosion.rb:20:2975:20:2975 | x | UseUseExplosion.rb:20:2971:20:2976 | call to use | position 0 | -| UseUseExplosion.rb:20:2987:20:2992 | * | UseUseExplosion.rb:20:2987:20:2992 | call to use | synthetic * | | UseUseExplosion.rb:20:2987:20:2992 | self | UseUseExplosion.rb:20:2987:20:2992 | call to use | self | +| UseUseExplosion.rb:20:2987:20:2992 | synthetic splat argument | UseUseExplosion.rb:20:2987:20:2992 | call to use | synthetic * | | UseUseExplosion.rb:20:2991:20:2991 | x | UseUseExplosion.rb:20:2987:20:2992 | call to use | position 0 | -| UseUseExplosion.rb:20:3003:20:3008 | * | UseUseExplosion.rb:20:3003:20:3008 | call to use | synthetic * | | UseUseExplosion.rb:20:3003:20:3008 | self | UseUseExplosion.rb:20:3003:20:3008 | call to use | self | +| UseUseExplosion.rb:20:3003:20:3008 | synthetic splat argument | UseUseExplosion.rb:20:3003:20:3008 | call to use | synthetic * | | UseUseExplosion.rb:20:3007:20:3007 | x | UseUseExplosion.rb:20:3003:20:3008 | call to use | position 0 | -| UseUseExplosion.rb:20:3019:20:3024 | * | UseUseExplosion.rb:20:3019:20:3024 | call to use | synthetic * | | UseUseExplosion.rb:20:3019:20:3024 | self | UseUseExplosion.rb:20:3019:20:3024 | call to use | self | +| UseUseExplosion.rb:20:3019:20:3024 | synthetic splat argument | UseUseExplosion.rb:20:3019:20:3024 | call to use | synthetic * | | UseUseExplosion.rb:20:3023:20:3023 | x | UseUseExplosion.rb:20:3019:20:3024 | call to use | position 0 | -| UseUseExplosion.rb:20:3035:20:3040 | * | UseUseExplosion.rb:20:3035:20:3040 | call to use | synthetic * | | UseUseExplosion.rb:20:3035:20:3040 | self | UseUseExplosion.rb:20:3035:20:3040 | call to use | self | +| UseUseExplosion.rb:20:3035:20:3040 | synthetic splat argument | UseUseExplosion.rb:20:3035:20:3040 | call to use | synthetic * | | UseUseExplosion.rb:20:3039:20:3039 | x | UseUseExplosion.rb:20:3035:20:3040 | call to use | position 0 | -| UseUseExplosion.rb:20:3051:20:3056 | * | UseUseExplosion.rb:20:3051:20:3056 | call to use | synthetic * | | UseUseExplosion.rb:20:3051:20:3056 | self | UseUseExplosion.rb:20:3051:20:3056 | call to use | self | +| UseUseExplosion.rb:20:3051:20:3056 | synthetic splat argument | UseUseExplosion.rb:20:3051:20:3056 | call to use | synthetic * | | UseUseExplosion.rb:20:3055:20:3055 | x | UseUseExplosion.rb:20:3051:20:3056 | call to use | position 0 | -| UseUseExplosion.rb:20:3067:20:3072 | * | UseUseExplosion.rb:20:3067:20:3072 | call to use | synthetic * | | UseUseExplosion.rb:20:3067:20:3072 | self | UseUseExplosion.rb:20:3067:20:3072 | call to use | self | +| UseUseExplosion.rb:20:3067:20:3072 | synthetic splat argument | UseUseExplosion.rb:20:3067:20:3072 | call to use | synthetic * | | UseUseExplosion.rb:20:3071:20:3071 | x | UseUseExplosion.rb:20:3067:20:3072 | call to use | position 0 | -| UseUseExplosion.rb:20:3083:20:3088 | * | UseUseExplosion.rb:20:3083:20:3088 | call to use | synthetic * | | UseUseExplosion.rb:20:3083:20:3088 | self | UseUseExplosion.rb:20:3083:20:3088 | call to use | self | +| UseUseExplosion.rb:20:3083:20:3088 | synthetic splat argument | UseUseExplosion.rb:20:3083:20:3088 | call to use | synthetic * | | UseUseExplosion.rb:20:3087:20:3087 | x | UseUseExplosion.rb:20:3083:20:3088 | call to use | position 0 | -| UseUseExplosion.rb:20:3099:20:3104 | * | UseUseExplosion.rb:20:3099:20:3104 | call to use | synthetic * | | UseUseExplosion.rb:20:3099:20:3104 | self | UseUseExplosion.rb:20:3099:20:3104 | call to use | self | +| UseUseExplosion.rb:20:3099:20:3104 | synthetic splat argument | UseUseExplosion.rb:20:3099:20:3104 | call to use | synthetic * | | UseUseExplosion.rb:20:3103:20:3103 | x | UseUseExplosion.rb:20:3099:20:3104 | call to use | position 0 | -| UseUseExplosion.rb:20:3115:20:3120 | * | UseUseExplosion.rb:20:3115:20:3120 | call to use | synthetic * | | UseUseExplosion.rb:20:3115:20:3120 | self | UseUseExplosion.rb:20:3115:20:3120 | call to use | self | +| UseUseExplosion.rb:20:3115:20:3120 | synthetic splat argument | UseUseExplosion.rb:20:3115:20:3120 | call to use | synthetic * | | UseUseExplosion.rb:20:3119:20:3119 | x | UseUseExplosion.rb:20:3115:20:3120 | call to use | position 0 | -| UseUseExplosion.rb:20:3131:20:3136 | * | UseUseExplosion.rb:20:3131:20:3136 | call to use | synthetic * | | UseUseExplosion.rb:20:3131:20:3136 | self | UseUseExplosion.rb:20:3131:20:3136 | call to use | self | +| UseUseExplosion.rb:20:3131:20:3136 | synthetic splat argument | UseUseExplosion.rb:20:3131:20:3136 | call to use | synthetic * | | UseUseExplosion.rb:20:3135:20:3135 | x | UseUseExplosion.rb:20:3131:20:3136 | call to use | position 0 | -| UseUseExplosion.rb:20:3147:20:3152 | * | UseUseExplosion.rb:20:3147:20:3152 | call to use | synthetic * | | UseUseExplosion.rb:20:3147:20:3152 | self | UseUseExplosion.rb:20:3147:20:3152 | call to use | self | +| UseUseExplosion.rb:20:3147:20:3152 | synthetic splat argument | UseUseExplosion.rb:20:3147:20:3152 | call to use | synthetic * | | UseUseExplosion.rb:20:3151:20:3151 | x | UseUseExplosion.rb:20:3147:20:3152 | call to use | position 0 | -| UseUseExplosion.rb:20:3163:20:3168 | * | UseUseExplosion.rb:20:3163:20:3168 | call to use | synthetic * | | UseUseExplosion.rb:20:3163:20:3168 | self | UseUseExplosion.rb:20:3163:20:3168 | call to use | self | +| UseUseExplosion.rb:20:3163:20:3168 | synthetic splat argument | UseUseExplosion.rb:20:3163:20:3168 | call to use | synthetic * | | UseUseExplosion.rb:20:3167:20:3167 | x | UseUseExplosion.rb:20:3163:20:3168 | call to use | position 0 | -| UseUseExplosion.rb:20:3179:20:3184 | * | UseUseExplosion.rb:20:3179:20:3184 | call to use | synthetic * | | UseUseExplosion.rb:20:3179:20:3184 | self | UseUseExplosion.rb:20:3179:20:3184 | call to use | self | +| UseUseExplosion.rb:20:3179:20:3184 | synthetic splat argument | UseUseExplosion.rb:20:3179:20:3184 | call to use | synthetic * | | UseUseExplosion.rb:20:3183:20:3183 | x | UseUseExplosion.rb:20:3179:20:3184 | call to use | position 0 | -| UseUseExplosion.rb:20:3195:20:3200 | * | UseUseExplosion.rb:20:3195:20:3200 | call to use | synthetic * | | UseUseExplosion.rb:20:3195:20:3200 | self | UseUseExplosion.rb:20:3195:20:3200 | call to use | self | +| UseUseExplosion.rb:20:3195:20:3200 | synthetic splat argument | UseUseExplosion.rb:20:3195:20:3200 | call to use | synthetic * | | UseUseExplosion.rb:20:3199:20:3199 | x | UseUseExplosion.rb:20:3195:20:3200 | call to use | position 0 | -| UseUseExplosion.rb:20:3211:20:3216 | * | UseUseExplosion.rb:20:3211:20:3216 | call to use | synthetic * | | UseUseExplosion.rb:20:3211:20:3216 | self | UseUseExplosion.rb:20:3211:20:3216 | call to use | self | +| UseUseExplosion.rb:20:3211:20:3216 | synthetic splat argument | UseUseExplosion.rb:20:3211:20:3216 | call to use | synthetic * | | UseUseExplosion.rb:20:3215:20:3215 | x | UseUseExplosion.rb:20:3211:20:3216 | call to use | position 0 | -| UseUseExplosion.rb:20:3227:20:3232 | * | UseUseExplosion.rb:20:3227:20:3232 | call to use | synthetic * | | UseUseExplosion.rb:20:3227:20:3232 | self | UseUseExplosion.rb:20:3227:20:3232 | call to use | self | +| UseUseExplosion.rb:20:3227:20:3232 | synthetic splat argument | UseUseExplosion.rb:20:3227:20:3232 | call to use | synthetic * | | UseUseExplosion.rb:20:3231:20:3231 | x | UseUseExplosion.rb:20:3227:20:3232 | call to use | position 0 | -| UseUseExplosion.rb:20:3243:20:3248 | * | UseUseExplosion.rb:20:3243:20:3248 | call to use | synthetic * | | UseUseExplosion.rb:20:3243:20:3248 | self | UseUseExplosion.rb:20:3243:20:3248 | call to use | self | +| UseUseExplosion.rb:20:3243:20:3248 | synthetic splat argument | UseUseExplosion.rb:20:3243:20:3248 | call to use | synthetic * | | UseUseExplosion.rb:20:3247:20:3247 | x | UseUseExplosion.rb:20:3243:20:3248 | call to use | position 0 | -| UseUseExplosion.rb:20:3259:20:3264 | * | UseUseExplosion.rb:20:3259:20:3264 | call to use | synthetic * | | UseUseExplosion.rb:20:3259:20:3264 | self | UseUseExplosion.rb:20:3259:20:3264 | call to use | self | +| UseUseExplosion.rb:20:3259:20:3264 | synthetic splat argument | UseUseExplosion.rb:20:3259:20:3264 | call to use | synthetic * | | UseUseExplosion.rb:20:3263:20:3263 | x | UseUseExplosion.rb:20:3259:20:3264 | call to use | position 0 | -| UseUseExplosion.rb:20:3275:20:3280 | * | UseUseExplosion.rb:20:3275:20:3280 | call to use | synthetic * | | UseUseExplosion.rb:20:3275:20:3280 | self | UseUseExplosion.rb:20:3275:20:3280 | call to use | self | +| UseUseExplosion.rb:20:3275:20:3280 | synthetic splat argument | UseUseExplosion.rb:20:3275:20:3280 | call to use | synthetic * | | UseUseExplosion.rb:20:3279:20:3279 | x | UseUseExplosion.rb:20:3275:20:3280 | call to use | position 0 | -| UseUseExplosion.rb:20:3291:20:3296 | * | UseUseExplosion.rb:20:3291:20:3296 | call to use | synthetic * | | UseUseExplosion.rb:20:3291:20:3296 | self | UseUseExplosion.rb:20:3291:20:3296 | call to use | self | +| UseUseExplosion.rb:20:3291:20:3296 | synthetic splat argument | UseUseExplosion.rb:20:3291:20:3296 | call to use | synthetic * | | UseUseExplosion.rb:20:3295:20:3295 | x | UseUseExplosion.rb:20:3291:20:3296 | call to use | position 0 | -| UseUseExplosion.rb:20:3307:20:3312 | * | UseUseExplosion.rb:20:3307:20:3312 | call to use | synthetic * | | UseUseExplosion.rb:20:3307:20:3312 | self | UseUseExplosion.rb:20:3307:20:3312 | call to use | self | +| UseUseExplosion.rb:20:3307:20:3312 | synthetic splat argument | UseUseExplosion.rb:20:3307:20:3312 | call to use | synthetic * | | UseUseExplosion.rb:20:3311:20:3311 | x | UseUseExplosion.rb:20:3307:20:3312 | call to use | position 0 | -| UseUseExplosion.rb:20:3323:20:3328 | * | UseUseExplosion.rb:20:3323:20:3328 | call to use | synthetic * | | UseUseExplosion.rb:20:3323:20:3328 | self | UseUseExplosion.rb:20:3323:20:3328 | call to use | self | +| UseUseExplosion.rb:20:3323:20:3328 | synthetic splat argument | UseUseExplosion.rb:20:3323:20:3328 | call to use | synthetic * | | UseUseExplosion.rb:20:3327:20:3327 | x | UseUseExplosion.rb:20:3323:20:3328 | call to use | position 0 | -| UseUseExplosion.rb:20:3339:20:3344 | * | UseUseExplosion.rb:20:3339:20:3344 | call to use | synthetic * | | UseUseExplosion.rb:20:3339:20:3344 | self | UseUseExplosion.rb:20:3339:20:3344 | call to use | self | +| UseUseExplosion.rb:20:3339:20:3344 | synthetic splat argument | UseUseExplosion.rb:20:3339:20:3344 | call to use | synthetic * | | UseUseExplosion.rb:20:3343:20:3343 | x | UseUseExplosion.rb:20:3339:20:3344 | call to use | position 0 | -| UseUseExplosion.rb:20:3355:20:3360 | * | UseUseExplosion.rb:20:3355:20:3360 | call to use | synthetic * | | UseUseExplosion.rb:20:3355:20:3360 | self | UseUseExplosion.rb:20:3355:20:3360 | call to use | self | +| UseUseExplosion.rb:20:3355:20:3360 | synthetic splat argument | UseUseExplosion.rb:20:3355:20:3360 | call to use | synthetic * | | UseUseExplosion.rb:20:3359:20:3359 | x | UseUseExplosion.rb:20:3355:20:3360 | call to use | position 0 | -| UseUseExplosion.rb:20:3371:20:3376 | * | UseUseExplosion.rb:20:3371:20:3376 | call to use | synthetic * | | UseUseExplosion.rb:20:3371:20:3376 | self | UseUseExplosion.rb:20:3371:20:3376 | call to use | self | +| UseUseExplosion.rb:20:3371:20:3376 | synthetic splat argument | UseUseExplosion.rb:20:3371:20:3376 | call to use | synthetic * | | UseUseExplosion.rb:20:3375:20:3375 | x | UseUseExplosion.rb:20:3371:20:3376 | call to use | position 0 | -| UseUseExplosion.rb:20:3387:20:3392 | * | UseUseExplosion.rb:20:3387:20:3392 | call to use | synthetic * | | UseUseExplosion.rb:20:3387:20:3392 | self | UseUseExplosion.rb:20:3387:20:3392 | call to use | self | +| UseUseExplosion.rb:20:3387:20:3392 | synthetic splat argument | UseUseExplosion.rb:20:3387:20:3392 | call to use | synthetic * | | UseUseExplosion.rb:20:3391:20:3391 | x | UseUseExplosion.rb:20:3387:20:3392 | call to use | position 0 | -| UseUseExplosion.rb:20:3403:20:3408 | * | UseUseExplosion.rb:20:3403:20:3408 | call to use | synthetic * | | UseUseExplosion.rb:20:3403:20:3408 | self | UseUseExplosion.rb:20:3403:20:3408 | call to use | self | +| UseUseExplosion.rb:20:3403:20:3408 | synthetic splat argument | UseUseExplosion.rb:20:3403:20:3408 | call to use | synthetic * | | UseUseExplosion.rb:20:3407:20:3407 | x | UseUseExplosion.rb:20:3403:20:3408 | call to use | position 0 | -| UseUseExplosion.rb:20:3419:20:3424 | * | UseUseExplosion.rb:20:3419:20:3424 | call to use | synthetic * | | UseUseExplosion.rb:20:3419:20:3424 | self | UseUseExplosion.rb:20:3419:20:3424 | call to use | self | +| UseUseExplosion.rb:20:3419:20:3424 | synthetic splat argument | UseUseExplosion.rb:20:3419:20:3424 | call to use | synthetic * | | UseUseExplosion.rb:20:3423:20:3423 | x | UseUseExplosion.rb:20:3419:20:3424 | call to use | position 0 | -| UseUseExplosion.rb:20:3435:20:3440 | * | UseUseExplosion.rb:20:3435:20:3440 | call to use | synthetic * | | UseUseExplosion.rb:20:3435:20:3440 | self | UseUseExplosion.rb:20:3435:20:3440 | call to use | self | +| UseUseExplosion.rb:20:3435:20:3440 | synthetic splat argument | UseUseExplosion.rb:20:3435:20:3440 | call to use | synthetic * | | UseUseExplosion.rb:20:3439:20:3439 | x | UseUseExplosion.rb:20:3435:20:3440 | call to use | position 0 | -| UseUseExplosion.rb:20:3451:20:3456 | * | UseUseExplosion.rb:20:3451:20:3456 | call to use | synthetic * | | UseUseExplosion.rb:20:3451:20:3456 | self | UseUseExplosion.rb:20:3451:20:3456 | call to use | self | +| UseUseExplosion.rb:20:3451:20:3456 | synthetic splat argument | UseUseExplosion.rb:20:3451:20:3456 | call to use | synthetic * | | UseUseExplosion.rb:20:3455:20:3455 | x | UseUseExplosion.rb:20:3451:20:3456 | call to use | position 0 | -| UseUseExplosion.rb:20:3467:20:3472 | * | UseUseExplosion.rb:20:3467:20:3472 | call to use | synthetic * | | UseUseExplosion.rb:20:3467:20:3472 | self | UseUseExplosion.rb:20:3467:20:3472 | call to use | self | +| UseUseExplosion.rb:20:3467:20:3472 | synthetic splat argument | UseUseExplosion.rb:20:3467:20:3472 | call to use | synthetic * | | UseUseExplosion.rb:20:3471:20:3471 | x | UseUseExplosion.rb:20:3467:20:3472 | call to use | position 0 | -| UseUseExplosion.rb:20:3483:20:3488 | * | UseUseExplosion.rb:20:3483:20:3488 | call to use | synthetic * | | UseUseExplosion.rb:20:3483:20:3488 | self | UseUseExplosion.rb:20:3483:20:3488 | call to use | self | +| UseUseExplosion.rb:20:3483:20:3488 | synthetic splat argument | UseUseExplosion.rb:20:3483:20:3488 | call to use | synthetic * | | UseUseExplosion.rb:20:3487:20:3487 | x | UseUseExplosion.rb:20:3483:20:3488 | call to use | position 0 | -| UseUseExplosion.rb:20:3499:20:3504 | * | UseUseExplosion.rb:20:3499:20:3504 | call to use | synthetic * | | UseUseExplosion.rb:20:3499:20:3504 | self | UseUseExplosion.rb:20:3499:20:3504 | call to use | self | +| UseUseExplosion.rb:20:3499:20:3504 | synthetic splat argument | UseUseExplosion.rb:20:3499:20:3504 | call to use | synthetic * | | UseUseExplosion.rb:20:3503:20:3503 | x | UseUseExplosion.rb:20:3499:20:3504 | call to use | position 0 | -| UseUseExplosion.rb:20:3515:20:3520 | * | UseUseExplosion.rb:20:3515:20:3520 | call to use | synthetic * | | UseUseExplosion.rb:20:3515:20:3520 | self | UseUseExplosion.rb:20:3515:20:3520 | call to use | self | +| UseUseExplosion.rb:20:3515:20:3520 | synthetic splat argument | UseUseExplosion.rb:20:3515:20:3520 | call to use | synthetic * | | UseUseExplosion.rb:20:3519:20:3519 | x | UseUseExplosion.rb:20:3515:20:3520 | call to use | position 0 | -| UseUseExplosion.rb:20:3531:20:3536 | * | UseUseExplosion.rb:20:3531:20:3536 | call to use | synthetic * | | UseUseExplosion.rb:20:3531:20:3536 | self | UseUseExplosion.rb:20:3531:20:3536 | call to use | self | +| UseUseExplosion.rb:20:3531:20:3536 | synthetic splat argument | UseUseExplosion.rb:20:3531:20:3536 | call to use | synthetic * | | UseUseExplosion.rb:20:3535:20:3535 | x | UseUseExplosion.rb:20:3531:20:3536 | call to use | position 0 | -| UseUseExplosion.rb:20:3547:20:3552 | * | UseUseExplosion.rb:20:3547:20:3552 | call to use | synthetic * | | UseUseExplosion.rb:20:3547:20:3552 | self | UseUseExplosion.rb:20:3547:20:3552 | call to use | self | +| UseUseExplosion.rb:20:3547:20:3552 | synthetic splat argument | UseUseExplosion.rb:20:3547:20:3552 | call to use | synthetic * | | UseUseExplosion.rb:20:3551:20:3551 | x | UseUseExplosion.rb:20:3547:20:3552 | call to use | position 0 | -| UseUseExplosion.rb:20:3563:20:3568 | * | UseUseExplosion.rb:20:3563:20:3568 | call to use | synthetic * | | UseUseExplosion.rb:20:3563:20:3568 | self | UseUseExplosion.rb:20:3563:20:3568 | call to use | self | +| UseUseExplosion.rb:20:3563:20:3568 | synthetic splat argument | UseUseExplosion.rb:20:3563:20:3568 | call to use | synthetic * | | UseUseExplosion.rb:20:3567:20:3567 | x | UseUseExplosion.rb:20:3563:20:3568 | call to use | position 0 | -| UseUseExplosion.rb:20:3579:20:3584 | * | UseUseExplosion.rb:20:3579:20:3584 | call to use | synthetic * | | UseUseExplosion.rb:20:3579:20:3584 | self | UseUseExplosion.rb:20:3579:20:3584 | call to use | self | +| UseUseExplosion.rb:20:3579:20:3584 | synthetic splat argument | UseUseExplosion.rb:20:3579:20:3584 | call to use | synthetic * | | UseUseExplosion.rb:20:3583:20:3583 | x | UseUseExplosion.rb:20:3579:20:3584 | call to use | position 0 | -| UseUseExplosion.rb:20:3595:20:3600 | * | UseUseExplosion.rb:20:3595:20:3600 | call to use | synthetic * | | UseUseExplosion.rb:20:3595:20:3600 | self | UseUseExplosion.rb:20:3595:20:3600 | call to use | self | +| UseUseExplosion.rb:20:3595:20:3600 | synthetic splat argument | UseUseExplosion.rb:20:3595:20:3600 | call to use | synthetic * | | UseUseExplosion.rb:20:3599:20:3599 | x | UseUseExplosion.rb:20:3595:20:3600 | call to use | position 0 | -| UseUseExplosion.rb:20:3611:20:3616 | * | UseUseExplosion.rb:20:3611:20:3616 | call to use | synthetic * | | UseUseExplosion.rb:20:3611:20:3616 | self | UseUseExplosion.rb:20:3611:20:3616 | call to use | self | +| UseUseExplosion.rb:20:3611:20:3616 | synthetic splat argument | UseUseExplosion.rb:20:3611:20:3616 | call to use | synthetic * | | UseUseExplosion.rb:20:3615:20:3615 | x | UseUseExplosion.rb:20:3611:20:3616 | call to use | position 0 | -| UseUseExplosion.rb:20:3627:20:3632 | * | UseUseExplosion.rb:20:3627:20:3632 | call to use | synthetic * | | UseUseExplosion.rb:20:3627:20:3632 | self | UseUseExplosion.rb:20:3627:20:3632 | call to use | self | +| UseUseExplosion.rb:20:3627:20:3632 | synthetic splat argument | UseUseExplosion.rb:20:3627:20:3632 | call to use | synthetic * | | UseUseExplosion.rb:20:3631:20:3631 | x | UseUseExplosion.rb:20:3627:20:3632 | call to use | position 0 | -| UseUseExplosion.rb:20:3643:20:3648 | * | UseUseExplosion.rb:20:3643:20:3648 | call to use | synthetic * | | UseUseExplosion.rb:20:3643:20:3648 | self | UseUseExplosion.rb:20:3643:20:3648 | call to use | self | +| UseUseExplosion.rb:20:3643:20:3648 | synthetic splat argument | UseUseExplosion.rb:20:3643:20:3648 | call to use | synthetic * | | UseUseExplosion.rb:20:3647:20:3647 | x | UseUseExplosion.rb:20:3643:20:3648 | call to use | position 0 | -| UseUseExplosion.rb:20:3659:20:3664 | * | UseUseExplosion.rb:20:3659:20:3664 | call to use | synthetic * | | UseUseExplosion.rb:20:3659:20:3664 | self | UseUseExplosion.rb:20:3659:20:3664 | call to use | self | +| UseUseExplosion.rb:20:3659:20:3664 | synthetic splat argument | UseUseExplosion.rb:20:3659:20:3664 | call to use | synthetic * | | UseUseExplosion.rb:20:3663:20:3663 | x | UseUseExplosion.rb:20:3659:20:3664 | call to use | position 0 | -| UseUseExplosion.rb:20:3675:20:3680 | * | UseUseExplosion.rb:20:3675:20:3680 | call to use | synthetic * | | UseUseExplosion.rb:20:3675:20:3680 | self | UseUseExplosion.rb:20:3675:20:3680 | call to use | self | +| UseUseExplosion.rb:20:3675:20:3680 | synthetic splat argument | UseUseExplosion.rb:20:3675:20:3680 | call to use | synthetic * | | UseUseExplosion.rb:20:3679:20:3679 | x | UseUseExplosion.rb:20:3675:20:3680 | call to use | position 0 | -| UseUseExplosion.rb:20:3691:20:3696 | * | UseUseExplosion.rb:20:3691:20:3696 | call to use | synthetic * | | UseUseExplosion.rb:20:3691:20:3696 | self | UseUseExplosion.rb:20:3691:20:3696 | call to use | self | +| UseUseExplosion.rb:20:3691:20:3696 | synthetic splat argument | UseUseExplosion.rb:20:3691:20:3696 | call to use | synthetic * | | UseUseExplosion.rb:20:3695:20:3695 | x | UseUseExplosion.rb:20:3691:20:3696 | call to use | position 0 | | UseUseExplosion.rb:21:13:21:17 | @prop | UseUseExplosion.rb:21:13:21:23 | ... > ... | self | -| UseUseExplosion.rb:21:13:21:23 | * | UseUseExplosion.rb:21:13:21:23 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:13:21:23 | synthetic splat argument | UseUseExplosion.rb:21:13:21:23 | ... > ... | synthetic * | | UseUseExplosion.rb:21:21:21:23 | 100 | UseUseExplosion.rb:21:13:21:23 | ... > ... | position 0 | | UseUseExplosion.rb:21:35:21:39 | @prop | UseUseExplosion.rb:21:35:21:44 | ... > ... | self | -| UseUseExplosion.rb:21:35:21:44 | * | UseUseExplosion.rb:21:35:21:44 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:35:21:44 | synthetic splat argument | UseUseExplosion.rb:21:35:21:44 | ... > ... | synthetic * | | UseUseExplosion.rb:21:43:21:44 | 99 | UseUseExplosion.rb:21:35:21:44 | ... > ... | position 0 | | UseUseExplosion.rb:21:56:21:60 | @prop | UseUseExplosion.rb:21:56:21:65 | ... > ... | self | -| UseUseExplosion.rb:21:56:21:65 | * | UseUseExplosion.rb:21:56:21:65 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:56:21:65 | synthetic splat argument | UseUseExplosion.rb:21:56:21:65 | ... > ... | synthetic * | | UseUseExplosion.rb:21:64:21:65 | 98 | UseUseExplosion.rb:21:56:21:65 | ... > ... | position 0 | | UseUseExplosion.rb:21:77:21:81 | @prop | UseUseExplosion.rb:21:77:21:86 | ... > ... | self | -| UseUseExplosion.rb:21:77:21:86 | * | UseUseExplosion.rb:21:77:21:86 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:77:21:86 | synthetic splat argument | UseUseExplosion.rb:21:77:21:86 | ... > ... | synthetic * | | UseUseExplosion.rb:21:85:21:86 | 97 | UseUseExplosion.rb:21:77:21:86 | ... > ... | position 0 | | UseUseExplosion.rb:21:98:21:102 | @prop | UseUseExplosion.rb:21:98:21:107 | ... > ... | self | -| UseUseExplosion.rb:21:98:21:107 | * | UseUseExplosion.rb:21:98:21:107 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:98:21:107 | synthetic splat argument | UseUseExplosion.rb:21:98:21:107 | ... > ... | synthetic * | | UseUseExplosion.rb:21:106:21:107 | 96 | UseUseExplosion.rb:21:98:21:107 | ... > ... | position 0 | | UseUseExplosion.rb:21:119:21:123 | @prop | UseUseExplosion.rb:21:119:21:128 | ... > ... | self | -| UseUseExplosion.rb:21:119:21:128 | * | UseUseExplosion.rb:21:119:21:128 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:119:21:128 | synthetic splat argument | UseUseExplosion.rb:21:119:21:128 | ... > ... | synthetic * | | UseUseExplosion.rb:21:127:21:128 | 95 | UseUseExplosion.rb:21:119:21:128 | ... > ... | position 0 | | UseUseExplosion.rb:21:140:21:144 | @prop | UseUseExplosion.rb:21:140:21:149 | ... > ... | self | -| UseUseExplosion.rb:21:140:21:149 | * | UseUseExplosion.rb:21:140:21:149 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:140:21:149 | synthetic splat argument | UseUseExplosion.rb:21:140:21:149 | ... > ... | synthetic * | | UseUseExplosion.rb:21:148:21:149 | 94 | UseUseExplosion.rb:21:140:21:149 | ... > ... | position 0 | | UseUseExplosion.rb:21:161:21:165 | @prop | UseUseExplosion.rb:21:161:21:170 | ... > ... | self | -| UseUseExplosion.rb:21:161:21:170 | * | UseUseExplosion.rb:21:161:21:170 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:161:21:170 | synthetic splat argument | UseUseExplosion.rb:21:161:21:170 | ... > ... | synthetic * | | UseUseExplosion.rb:21:169:21:170 | 93 | UseUseExplosion.rb:21:161:21:170 | ... > ... | position 0 | | UseUseExplosion.rb:21:182:21:186 | @prop | UseUseExplosion.rb:21:182:21:191 | ... > ... | self | -| UseUseExplosion.rb:21:182:21:191 | * | UseUseExplosion.rb:21:182:21:191 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:182:21:191 | synthetic splat argument | UseUseExplosion.rb:21:182:21:191 | ... > ... | synthetic * | | UseUseExplosion.rb:21:190:21:191 | 92 | UseUseExplosion.rb:21:182:21:191 | ... > ... | position 0 | | UseUseExplosion.rb:21:203:21:207 | @prop | UseUseExplosion.rb:21:203:21:212 | ... > ... | self | -| UseUseExplosion.rb:21:203:21:212 | * | UseUseExplosion.rb:21:203:21:212 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:203:21:212 | synthetic splat argument | UseUseExplosion.rb:21:203:21:212 | ... > ... | synthetic * | | UseUseExplosion.rb:21:211:21:212 | 91 | UseUseExplosion.rb:21:203:21:212 | ... > ... | position 0 | | UseUseExplosion.rb:21:224:21:228 | @prop | UseUseExplosion.rb:21:224:21:233 | ... > ... | self | -| UseUseExplosion.rb:21:224:21:233 | * | UseUseExplosion.rb:21:224:21:233 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:224:21:233 | synthetic splat argument | UseUseExplosion.rb:21:224:21:233 | ... > ... | synthetic * | | UseUseExplosion.rb:21:232:21:233 | 90 | UseUseExplosion.rb:21:224:21:233 | ... > ... | position 0 | | UseUseExplosion.rb:21:245:21:249 | @prop | UseUseExplosion.rb:21:245:21:254 | ... > ... | self | -| UseUseExplosion.rb:21:245:21:254 | * | UseUseExplosion.rb:21:245:21:254 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:245:21:254 | synthetic splat argument | UseUseExplosion.rb:21:245:21:254 | ... > ... | synthetic * | | UseUseExplosion.rb:21:253:21:254 | 89 | UseUseExplosion.rb:21:245:21:254 | ... > ... | position 0 | | UseUseExplosion.rb:21:266:21:270 | @prop | UseUseExplosion.rb:21:266:21:275 | ... > ... | self | -| UseUseExplosion.rb:21:266:21:275 | * | UseUseExplosion.rb:21:266:21:275 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:266:21:275 | synthetic splat argument | UseUseExplosion.rb:21:266:21:275 | ... > ... | synthetic * | | UseUseExplosion.rb:21:274:21:275 | 88 | UseUseExplosion.rb:21:266:21:275 | ... > ... | position 0 | | UseUseExplosion.rb:21:287:21:291 | @prop | UseUseExplosion.rb:21:287:21:296 | ... > ... | self | -| UseUseExplosion.rb:21:287:21:296 | * | UseUseExplosion.rb:21:287:21:296 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:287:21:296 | synthetic splat argument | UseUseExplosion.rb:21:287:21:296 | ... > ... | synthetic * | | UseUseExplosion.rb:21:295:21:296 | 87 | UseUseExplosion.rb:21:287:21:296 | ... > ... | position 0 | | UseUseExplosion.rb:21:308:21:312 | @prop | UseUseExplosion.rb:21:308:21:317 | ... > ... | self | -| UseUseExplosion.rb:21:308:21:317 | * | UseUseExplosion.rb:21:308:21:317 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:308:21:317 | synthetic splat argument | UseUseExplosion.rb:21:308:21:317 | ... > ... | synthetic * | | UseUseExplosion.rb:21:316:21:317 | 86 | UseUseExplosion.rb:21:308:21:317 | ... > ... | position 0 | | UseUseExplosion.rb:21:329:21:333 | @prop | UseUseExplosion.rb:21:329:21:338 | ... > ... | self | -| UseUseExplosion.rb:21:329:21:338 | * | UseUseExplosion.rb:21:329:21:338 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:329:21:338 | synthetic splat argument | UseUseExplosion.rb:21:329:21:338 | ... > ... | synthetic * | | UseUseExplosion.rb:21:337:21:338 | 85 | UseUseExplosion.rb:21:329:21:338 | ... > ... | position 0 | | UseUseExplosion.rb:21:350:21:354 | @prop | UseUseExplosion.rb:21:350:21:359 | ... > ... | self | -| UseUseExplosion.rb:21:350:21:359 | * | UseUseExplosion.rb:21:350:21:359 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:350:21:359 | synthetic splat argument | UseUseExplosion.rb:21:350:21:359 | ... > ... | synthetic * | | UseUseExplosion.rb:21:358:21:359 | 84 | UseUseExplosion.rb:21:350:21:359 | ... > ... | position 0 | | UseUseExplosion.rb:21:371:21:375 | @prop | UseUseExplosion.rb:21:371:21:380 | ... > ... | self | -| UseUseExplosion.rb:21:371:21:380 | * | UseUseExplosion.rb:21:371:21:380 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:371:21:380 | synthetic splat argument | UseUseExplosion.rb:21:371:21:380 | ... > ... | synthetic * | | UseUseExplosion.rb:21:379:21:380 | 83 | UseUseExplosion.rb:21:371:21:380 | ... > ... | position 0 | | UseUseExplosion.rb:21:392:21:396 | @prop | UseUseExplosion.rb:21:392:21:401 | ... > ... | self | -| UseUseExplosion.rb:21:392:21:401 | * | UseUseExplosion.rb:21:392:21:401 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:392:21:401 | synthetic splat argument | UseUseExplosion.rb:21:392:21:401 | ... > ... | synthetic * | | UseUseExplosion.rb:21:400:21:401 | 82 | UseUseExplosion.rb:21:392:21:401 | ... > ... | position 0 | | UseUseExplosion.rb:21:413:21:417 | @prop | UseUseExplosion.rb:21:413:21:422 | ... > ... | self | -| UseUseExplosion.rb:21:413:21:422 | * | UseUseExplosion.rb:21:413:21:422 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:413:21:422 | synthetic splat argument | UseUseExplosion.rb:21:413:21:422 | ... > ... | synthetic * | | UseUseExplosion.rb:21:421:21:422 | 81 | UseUseExplosion.rb:21:413:21:422 | ... > ... | position 0 | | UseUseExplosion.rb:21:434:21:438 | @prop | UseUseExplosion.rb:21:434:21:443 | ... > ... | self | -| UseUseExplosion.rb:21:434:21:443 | * | UseUseExplosion.rb:21:434:21:443 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:434:21:443 | synthetic splat argument | UseUseExplosion.rb:21:434:21:443 | ... > ... | synthetic * | | UseUseExplosion.rb:21:442:21:443 | 80 | UseUseExplosion.rb:21:434:21:443 | ... > ... | position 0 | | UseUseExplosion.rb:21:455:21:459 | @prop | UseUseExplosion.rb:21:455:21:464 | ... > ... | self | -| UseUseExplosion.rb:21:455:21:464 | * | UseUseExplosion.rb:21:455:21:464 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:455:21:464 | synthetic splat argument | UseUseExplosion.rb:21:455:21:464 | ... > ... | synthetic * | | UseUseExplosion.rb:21:463:21:464 | 79 | UseUseExplosion.rb:21:455:21:464 | ... > ... | position 0 | | UseUseExplosion.rb:21:476:21:480 | @prop | UseUseExplosion.rb:21:476:21:485 | ... > ... | self | -| UseUseExplosion.rb:21:476:21:485 | * | UseUseExplosion.rb:21:476:21:485 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:476:21:485 | synthetic splat argument | UseUseExplosion.rb:21:476:21:485 | ... > ... | synthetic * | | UseUseExplosion.rb:21:484:21:485 | 78 | UseUseExplosion.rb:21:476:21:485 | ... > ... | position 0 | | UseUseExplosion.rb:21:497:21:501 | @prop | UseUseExplosion.rb:21:497:21:506 | ... > ... | self | -| UseUseExplosion.rb:21:497:21:506 | * | UseUseExplosion.rb:21:497:21:506 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:497:21:506 | synthetic splat argument | UseUseExplosion.rb:21:497:21:506 | ... > ... | synthetic * | | UseUseExplosion.rb:21:505:21:506 | 77 | UseUseExplosion.rb:21:497:21:506 | ... > ... | position 0 | | UseUseExplosion.rb:21:518:21:522 | @prop | UseUseExplosion.rb:21:518:21:527 | ... > ... | self | -| UseUseExplosion.rb:21:518:21:527 | * | UseUseExplosion.rb:21:518:21:527 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:518:21:527 | synthetic splat argument | UseUseExplosion.rb:21:518:21:527 | ... > ... | synthetic * | | UseUseExplosion.rb:21:526:21:527 | 76 | UseUseExplosion.rb:21:518:21:527 | ... > ... | position 0 | | UseUseExplosion.rb:21:539:21:543 | @prop | UseUseExplosion.rb:21:539:21:548 | ... > ... | self | -| UseUseExplosion.rb:21:539:21:548 | * | UseUseExplosion.rb:21:539:21:548 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:539:21:548 | synthetic splat argument | UseUseExplosion.rb:21:539:21:548 | ... > ... | synthetic * | | UseUseExplosion.rb:21:547:21:548 | 75 | UseUseExplosion.rb:21:539:21:548 | ... > ... | position 0 | | UseUseExplosion.rb:21:560:21:564 | @prop | UseUseExplosion.rb:21:560:21:569 | ... > ... | self | -| UseUseExplosion.rb:21:560:21:569 | * | UseUseExplosion.rb:21:560:21:569 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:560:21:569 | synthetic splat argument | UseUseExplosion.rb:21:560:21:569 | ... > ... | synthetic * | | UseUseExplosion.rb:21:568:21:569 | 74 | UseUseExplosion.rb:21:560:21:569 | ... > ... | position 0 | | UseUseExplosion.rb:21:581:21:585 | @prop | UseUseExplosion.rb:21:581:21:590 | ... > ... | self | -| UseUseExplosion.rb:21:581:21:590 | * | UseUseExplosion.rb:21:581:21:590 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:581:21:590 | synthetic splat argument | UseUseExplosion.rb:21:581:21:590 | ... > ... | synthetic * | | UseUseExplosion.rb:21:589:21:590 | 73 | UseUseExplosion.rb:21:581:21:590 | ... > ... | position 0 | | UseUseExplosion.rb:21:602:21:606 | @prop | UseUseExplosion.rb:21:602:21:611 | ... > ... | self | -| UseUseExplosion.rb:21:602:21:611 | * | UseUseExplosion.rb:21:602:21:611 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:602:21:611 | synthetic splat argument | UseUseExplosion.rb:21:602:21:611 | ... > ... | synthetic * | | UseUseExplosion.rb:21:610:21:611 | 72 | UseUseExplosion.rb:21:602:21:611 | ... > ... | position 0 | | UseUseExplosion.rb:21:623:21:627 | @prop | UseUseExplosion.rb:21:623:21:632 | ... > ... | self | -| UseUseExplosion.rb:21:623:21:632 | * | UseUseExplosion.rb:21:623:21:632 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:623:21:632 | synthetic splat argument | UseUseExplosion.rb:21:623:21:632 | ... > ... | synthetic * | | UseUseExplosion.rb:21:631:21:632 | 71 | UseUseExplosion.rb:21:623:21:632 | ... > ... | position 0 | | UseUseExplosion.rb:21:644:21:648 | @prop | UseUseExplosion.rb:21:644:21:653 | ... > ... | self | -| UseUseExplosion.rb:21:644:21:653 | * | UseUseExplosion.rb:21:644:21:653 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:644:21:653 | synthetic splat argument | UseUseExplosion.rb:21:644:21:653 | ... > ... | synthetic * | | UseUseExplosion.rb:21:652:21:653 | 70 | UseUseExplosion.rb:21:644:21:653 | ... > ... | position 0 | | UseUseExplosion.rb:21:665:21:669 | @prop | UseUseExplosion.rb:21:665:21:674 | ... > ... | self | -| UseUseExplosion.rb:21:665:21:674 | * | UseUseExplosion.rb:21:665:21:674 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:665:21:674 | synthetic splat argument | UseUseExplosion.rb:21:665:21:674 | ... > ... | synthetic * | | UseUseExplosion.rb:21:673:21:674 | 69 | UseUseExplosion.rb:21:665:21:674 | ... > ... | position 0 | | UseUseExplosion.rb:21:686:21:690 | @prop | UseUseExplosion.rb:21:686:21:695 | ... > ... | self | -| UseUseExplosion.rb:21:686:21:695 | * | UseUseExplosion.rb:21:686:21:695 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:686:21:695 | synthetic splat argument | UseUseExplosion.rb:21:686:21:695 | ... > ... | synthetic * | | UseUseExplosion.rb:21:694:21:695 | 68 | UseUseExplosion.rb:21:686:21:695 | ... > ... | position 0 | | UseUseExplosion.rb:21:707:21:711 | @prop | UseUseExplosion.rb:21:707:21:716 | ... > ... | self | -| UseUseExplosion.rb:21:707:21:716 | * | UseUseExplosion.rb:21:707:21:716 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:707:21:716 | synthetic splat argument | UseUseExplosion.rb:21:707:21:716 | ... > ... | synthetic * | | UseUseExplosion.rb:21:715:21:716 | 67 | UseUseExplosion.rb:21:707:21:716 | ... > ... | position 0 | | UseUseExplosion.rb:21:728:21:732 | @prop | UseUseExplosion.rb:21:728:21:737 | ... > ... | self | -| UseUseExplosion.rb:21:728:21:737 | * | UseUseExplosion.rb:21:728:21:737 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:728:21:737 | synthetic splat argument | UseUseExplosion.rb:21:728:21:737 | ... > ... | synthetic * | | UseUseExplosion.rb:21:736:21:737 | 66 | UseUseExplosion.rb:21:728:21:737 | ... > ... | position 0 | | UseUseExplosion.rb:21:749:21:753 | @prop | UseUseExplosion.rb:21:749:21:758 | ... > ... | self | -| UseUseExplosion.rb:21:749:21:758 | * | UseUseExplosion.rb:21:749:21:758 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:749:21:758 | synthetic splat argument | UseUseExplosion.rb:21:749:21:758 | ... > ... | synthetic * | | UseUseExplosion.rb:21:757:21:758 | 65 | UseUseExplosion.rb:21:749:21:758 | ... > ... | position 0 | | UseUseExplosion.rb:21:770:21:774 | @prop | UseUseExplosion.rb:21:770:21:779 | ... > ... | self | -| UseUseExplosion.rb:21:770:21:779 | * | UseUseExplosion.rb:21:770:21:779 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:770:21:779 | synthetic splat argument | UseUseExplosion.rb:21:770:21:779 | ... > ... | synthetic * | | UseUseExplosion.rb:21:778:21:779 | 64 | UseUseExplosion.rb:21:770:21:779 | ... > ... | position 0 | | UseUseExplosion.rb:21:791:21:795 | @prop | UseUseExplosion.rb:21:791:21:800 | ... > ... | self | -| UseUseExplosion.rb:21:791:21:800 | * | UseUseExplosion.rb:21:791:21:800 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:791:21:800 | synthetic splat argument | UseUseExplosion.rb:21:791:21:800 | ... > ... | synthetic * | | UseUseExplosion.rb:21:799:21:800 | 63 | UseUseExplosion.rb:21:791:21:800 | ... > ... | position 0 | | UseUseExplosion.rb:21:812:21:816 | @prop | UseUseExplosion.rb:21:812:21:821 | ... > ... | self | -| UseUseExplosion.rb:21:812:21:821 | * | UseUseExplosion.rb:21:812:21:821 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:812:21:821 | synthetic splat argument | UseUseExplosion.rb:21:812:21:821 | ... > ... | synthetic * | | UseUseExplosion.rb:21:820:21:821 | 62 | UseUseExplosion.rb:21:812:21:821 | ... > ... | position 0 | | UseUseExplosion.rb:21:833:21:837 | @prop | UseUseExplosion.rb:21:833:21:842 | ... > ... | self | -| UseUseExplosion.rb:21:833:21:842 | * | UseUseExplosion.rb:21:833:21:842 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:833:21:842 | synthetic splat argument | UseUseExplosion.rb:21:833:21:842 | ... > ... | synthetic * | | UseUseExplosion.rb:21:841:21:842 | 61 | UseUseExplosion.rb:21:833:21:842 | ... > ... | position 0 | | UseUseExplosion.rb:21:854:21:858 | @prop | UseUseExplosion.rb:21:854:21:863 | ... > ... | self | -| UseUseExplosion.rb:21:854:21:863 | * | UseUseExplosion.rb:21:854:21:863 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:854:21:863 | synthetic splat argument | UseUseExplosion.rb:21:854:21:863 | ... > ... | synthetic * | | UseUseExplosion.rb:21:862:21:863 | 60 | UseUseExplosion.rb:21:854:21:863 | ... > ... | position 0 | | UseUseExplosion.rb:21:875:21:879 | @prop | UseUseExplosion.rb:21:875:21:884 | ... > ... | self | -| UseUseExplosion.rb:21:875:21:884 | * | UseUseExplosion.rb:21:875:21:884 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:875:21:884 | synthetic splat argument | UseUseExplosion.rb:21:875:21:884 | ... > ... | synthetic * | | UseUseExplosion.rb:21:883:21:884 | 59 | UseUseExplosion.rb:21:875:21:884 | ... > ... | position 0 | | UseUseExplosion.rb:21:896:21:900 | @prop | UseUseExplosion.rb:21:896:21:905 | ... > ... | self | -| UseUseExplosion.rb:21:896:21:905 | * | UseUseExplosion.rb:21:896:21:905 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:896:21:905 | synthetic splat argument | UseUseExplosion.rb:21:896:21:905 | ... > ... | synthetic * | | UseUseExplosion.rb:21:904:21:905 | 58 | UseUseExplosion.rb:21:896:21:905 | ... > ... | position 0 | | UseUseExplosion.rb:21:917:21:921 | @prop | UseUseExplosion.rb:21:917:21:926 | ... > ... | self | -| UseUseExplosion.rb:21:917:21:926 | * | UseUseExplosion.rb:21:917:21:926 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:917:21:926 | synthetic splat argument | UseUseExplosion.rb:21:917:21:926 | ... > ... | synthetic * | | UseUseExplosion.rb:21:925:21:926 | 57 | UseUseExplosion.rb:21:917:21:926 | ... > ... | position 0 | | UseUseExplosion.rb:21:938:21:942 | @prop | UseUseExplosion.rb:21:938:21:947 | ... > ... | self | -| UseUseExplosion.rb:21:938:21:947 | * | UseUseExplosion.rb:21:938:21:947 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:938:21:947 | synthetic splat argument | UseUseExplosion.rb:21:938:21:947 | ... > ... | synthetic * | | UseUseExplosion.rb:21:946:21:947 | 56 | UseUseExplosion.rb:21:938:21:947 | ... > ... | position 0 | | UseUseExplosion.rb:21:959:21:963 | @prop | UseUseExplosion.rb:21:959:21:968 | ... > ... | self | -| UseUseExplosion.rb:21:959:21:968 | * | UseUseExplosion.rb:21:959:21:968 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:959:21:968 | synthetic splat argument | UseUseExplosion.rb:21:959:21:968 | ... > ... | synthetic * | | UseUseExplosion.rb:21:967:21:968 | 55 | UseUseExplosion.rb:21:959:21:968 | ... > ... | position 0 | | UseUseExplosion.rb:21:980:21:984 | @prop | UseUseExplosion.rb:21:980:21:989 | ... > ... | self | -| UseUseExplosion.rb:21:980:21:989 | * | UseUseExplosion.rb:21:980:21:989 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:980:21:989 | synthetic splat argument | UseUseExplosion.rb:21:980:21:989 | ... > ... | synthetic * | | UseUseExplosion.rb:21:988:21:989 | 54 | UseUseExplosion.rb:21:980:21:989 | ... > ... | position 0 | | UseUseExplosion.rb:21:1001:21:1005 | @prop | UseUseExplosion.rb:21:1001:21:1010 | ... > ... | self | -| UseUseExplosion.rb:21:1001:21:1010 | * | UseUseExplosion.rb:21:1001:21:1010 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1001:21:1010 | synthetic splat argument | UseUseExplosion.rb:21:1001:21:1010 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1009:21:1010 | 53 | UseUseExplosion.rb:21:1001:21:1010 | ... > ... | position 0 | | UseUseExplosion.rb:21:1022:21:1026 | @prop | UseUseExplosion.rb:21:1022:21:1031 | ... > ... | self | -| UseUseExplosion.rb:21:1022:21:1031 | * | UseUseExplosion.rb:21:1022:21:1031 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1022:21:1031 | synthetic splat argument | UseUseExplosion.rb:21:1022:21:1031 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1030:21:1031 | 52 | UseUseExplosion.rb:21:1022:21:1031 | ... > ... | position 0 | | UseUseExplosion.rb:21:1043:21:1047 | @prop | UseUseExplosion.rb:21:1043:21:1052 | ... > ... | self | -| UseUseExplosion.rb:21:1043:21:1052 | * | UseUseExplosion.rb:21:1043:21:1052 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1043:21:1052 | synthetic splat argument | UseUseExplosion.rb:21:1043:21:1052 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1051:21:1052 | 51 | UseUseExplosion.rb:21:1043:21:1052 | ... > ... | position 0 | | UseUseExplosion.rb:21:1064:21:1068 | @prop | UseUseExplosion.rb:21:1064:21:1073 | ... > ... | self | -| UseUseExplosion.rb:21:1064:21:1073 | * | UseUseExplosion.rb:21:1064:21:1073 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1064:21:1073 | synthetic splat argument | UseUseExplosion.rb:21:1064:21:1073 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1072:21:1073 | 50 | UseUseExplosion.rb:21:1064:21:1073 | ... > ... | position 0 | | UseUseExplosion.rb:21:1085:21:1089 | @prop | UseUseExplosion.rb:21:1085:21:1094 | ... > ... | self | -| UseUseExplosion.rb:21:1085:21:1094 | * | UseUseExplosion.rb:21:1085:21:1094 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1085:21:1094 | synthetic splat argument | UseUseExplosion.rb:21:1085:21:1094 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1093:21:1094 | 49 | UseUseExplosion.rb:21:1085:21:1094 | ... > ... | position 0 | | UseUseExplosion.rb:21:1106:21:1110 | @prop | UseUseExplosion.rb:21:1106:21:1115 | ... > ... | self | -| UseUseExplosion.rb:21:1106:21:1115 | * | UseUseExplosion.rb:21:1106:21:1115 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1106:21:1115 | synthetic splat argument | UseUseExplosion.rb:21:1106:21:1115 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1114:21:1115 | 48 | UseUseExplosion.rb:21:1106:21:1115 | ... > ... | position 0 | | UseUseExplosion.rb:21:1127:21:1131 | @prop | UseUseExplosion.rb:21:1127:21:1136 | ... > ... | self | -| UseUseExplosion.rb:21:1127:21:1136 | * | UseUseExplosion.rb:21:1127:21:1136 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1127:21:1136 | synthetic splat argument | UseUseExplosion.rb:21:1127:21:1136 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1135:21:1136 | 47 | UseUseExplosion.rb:21:1127:21:1136 | ... > ... | position 0 | | UseUseExplosion.rb:21:1148:21:1152 | @prop | UseUseExplosion.rb:21:1148:21:1157 | ... > ... | self | -| UseUseExplosion.rb:21:1148:21:1157 | * | UseUseExplosion.rb:21:1148:21:1157 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1148:21:1157 | synthetic splat argument | UseUseExplosion.rb:21:1148:21:1157 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1156:21:1157 | 46 | UseUseExplosion.rb:21:1148:21:1157 | ... > ... | position 0 | | UseUseExplosion.rb:21:1169:21:1173 | @prop | UseUseExplosion.rb:21:1169:21:1178 | ... > ... | self | -| UseUseExplosion.rb:21:1169:21:1178 | * | UseUseExplosion.rb:21:1169:21:1178 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1169:21:1178 | synthetic splat argument | UseUseExplosion.rb:21:1169:21:1178 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1177:21:1178 | 45 | UseUseExplosion.rb:21:1169:21:1178 | ... > ... | position 0 | | UseUseExplosion.rb:21:1190:21:1194 | @prop | UseUseExplosion.rb:21:1190:21:1199 | ... > ... | self | -| UseUseExplosion.rb:21:1190:21:1199 | * | UseUseExplosion.rb:21:1190:21:1199 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1190:21:1199 | synthetic splat argument | UseUseExplosion.rb:21:1190:21:1199 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1198:21:1199 | 44 | UseUseExplosion.rb:21:1190:21:1199 | ... > ... | position 0 | | UseUseExplosion.rb:21:1211:21:1215 | @prop | UseUseExplosion.rb:21:1211:21:1220 | ... > ... | self | -| UseUseExplosion.rb:21:1211:21:1220 | * | UseUseExplosion.rb:21:1211:21:1220 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1211:21:1220 | synthetic splat argument | UseUseExplosion.rb:21:1211:21:1220 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1219:21:1220 | 43 | UseUseExplosion.rb:21:1211:21:1220 | ... > ... | position 0 | | UseUseExplosion.rb:21:1232:21:1236 | @prop | UseUseExplosion.rb:21:1232:21:1241 | ... > ... | self | -| UseUseExplosion.rb:21:1232:21:1241 | * | UseUseExplosion.rb:21:1232:21:1241 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1232:21:1241 | synthetic splat argument | UseUseExplosion.rb:21:1232:21:1241 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1240:21:1241 | 42 | UseUseExplosion.rb:21:1232:21:1241 | ... > ... | position 0 | | UseUseExplosion.rb:21:1253:21:1257 | @prop | UseUseExplosion.rb:21:1253:21:1262 | ... > ... | self | -| UseUseExplosion.rb:21:1253:21:1262 | * | UseUseExplosion.rb:21:1253:21:1262 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1253:21:1262 | synthetic splat argument | UseUseExplosion.rb:21:1253:21:1262 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1261:21:1262 | 41 | UseUseExplosion.rb:21:1253:21:1262 | ... > ... | position 0 | | UseUseExplosion.rb:21:1274:21:1278 | @prop | UseUseExplosion.rb:21:1274:21:1283 | ... > ... | self | -| UseUseExplosion.rb:21:1274:21:1283 | * | UseUseExplosion.rb:21:1274:21:1283 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1274:21:1283 | synthetic splat argument | UseUseExplosion.rb:21:1274:21:1283 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1282:21:1283 | 40 | UseUseExplosion.rb:21:1274:21:1283 | ... > ... | position 0 | | UseUseExplosion.rb:21:1295:21:1299 | @prop | UseUseExplosion.rb:21:1295:21:1304 | ... > ... | self | -| UseUseExplosion.rb:21:1295:21:1304 | * | UseUseExplosion.rb:21:1295:21:1304 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1295:21:1304 | synthetic splat argument | UseUseExplosion.rb:21:1295:21:1304 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1303:21:1304 | 39 | UseUseExplosion.rb:21:1295:21:1304 | ... > ... | position 0 | | UseUseExplosion.rb:21:1316:21:1320 | @prop | UseUseExplosion.rb:21:1316:21:1325 | ... > ... | self | -| UseUseExplosion.rb:21:1316:21:1325 | * | UseUseExplosion.rb:21:1316:21:1325 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1316:21:1325 | synthetic splat argument | UseUseExplosion.rb:21:1316:21:1325 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1324:21:1325 | 38 | UseUseExplosion.rb:21:1316:21:1325 | ... > ... | position 0 | | UseUseExplosion.rb:21:1337:21:1341 | @prop | UseUseExplosion.rb:21:1337:21:1346 | ... > ... | self | -| UseUseExplosion.rb:21:1337:21:1346 | * | UseUseExplosion.rb:21:1337:21:1346 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1337:21:1346 | synthetic splat argument | UseUseExplosion.rb:21:1337:21:1346 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1345:21:1346 | 37 | UseUseExplosion.rb:21:1337:21:1346 | ... > ... | position 0 | | UseUseExplosion.rb:21:1358:21:1362 | @prop | UseUseExplosion.rb:21:1358:21:1367 | ... > ... | self | -| UseUseExplosion.rb:21:1358:21:1367 | * | UseUseExplosion.rb:21:1358:21:1367 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1358:21:1367 | synthetic splat argument | UseUseExplosion.rb:21:1358:21:1367 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1366:21:1367 | 36 | UseUseExplosion.rb:21:1358:21:1367 | ... > ... | position 0 | | UseUseExplosion.rb:21:1379:21:1383 | @prop | UseUseExplosion.rb:21:1379:21:1388 | ... > ... | self | -| UseUseExplosion.rb:21:1379:21:1388 | * | UseUseExplosion.rb:21:1379:21:1388 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1379:21:1388 | synthetic splat argument | UseUseExplosion.rb:21:1379:21:1388 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1387:21:1388 | 35 | UseUseExplosion.rb:21:1379:21:1388 | ... > ... | position 0 | | UseUseExplosion.rb:21:1400:21:1404 | @prop | UseUseExplosion.rb:21:1400:21:1409 | ... > ... | self | -| UseUseExplosion.rb:21:1400:21:1409 | * | UseUseExplosion.rb:21:1400:21:1409 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1400:21:1409 | synthetic splat argument | UseUseExplosion.rb:21:1400:21:1409 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1408:21:1409 | 34 | UseUseExplosion.rb:21:1400:21:1409 | ... > ... | position 0 | | UseUseExplosion.rb:21:1421:21:1425 | @prop | UseUseExplosion.rb:21:1421:21:1430 | ... > ... | self | -| UseUseExplosion.rb:21:1421:21:1430 | * | UseUseExplosion.rb:21:1421:21:1430 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1421:21:1430 | synthetic splat argument | UseUseExplosion.rb:21:1421:21:1430 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1429:21:1430 | 33 | UseUseExplosion.rb:21:1421:21:1430 | ... > ... | position 0 | | UseUseExplosion.rb:21:1442:21:1446 | @prop | UseUseExplosion.rb:21:1442:21:1451 | ... > ... | self | -| UseUseExplosion.rb:21:1442:21:1451 | * | UseUseExplosion.rb:21:1442:21:1451 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1442:21:1451 | synthetic splat argument | UseUseExplosion.rb:21:1442:21:1451 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1450:21:1451 | 32 | UseUseExplosion.rb:21:1442:21:1451 | ... > ... | position 0 | | UseUseExplosion.rb:21:1463:21:1467 | @prop | UseUseExplosion.rb:21:1463:21:1472 | ... > ... | self | -| UseUseExplosion.rb:21:1463:21:1472 | * | UseUseExplosion.rb:21:1463:21:1472 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1463:21:1472 | synthetic splat argument | UseUseExplosion.rb:21:1463:21:1472 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1471:21:1472 | 31 | UseUseExplosion.rb:21:1463:21:1472 | ... > ... | position 0 | | UseUseExplosion.rb:21:1484:21:1488 | @prop | UseUseExplosion.rb:21:1484:21:1493 | ... > ... | self | -| UseUseExplosion.rb:21:1484:21:1493 | * | UseUseExplosion.rb:21:1484:21:1493 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1484:21:1493 | synthetic splat argument | UseUseExplosion.rb:21:1484:21:1493 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1492:21:1493 | 30 | UseUseExplosion.rb:21:1484:21:1493 | ... > ... | position 0 | | UseUseExplosion.rb:21:1505:21:1509 | @prop | UseUseExplosion.rb:21:1505:21:1514 | ... > ... | self | -| UseUseExplosion.rb:21:1505:21:1514 | * | UseUseExplosion.rb:21:1505:21:1514 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1505:21:1514 | synthetic splat argument | UseUseExplosion.rb:21:1505:21:1514 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1513:21:1514 | 29 | UseUseExplosion.rb:21:1505:21:1514 | ... > ... | position 0 | | UseUseExplosion.rb:21:1526:21:1530 | @prop | UseUseExplosion.rb:21:1526:21:1535 | ... > ... | self | -| UseUseExplosion.rb:21:1526:21:1535 | * | UseUseExplosion.rb:21:1526:21:1535 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1526:21:1535 | synthetic splat argument | UseUseExplosion.rb:21:1526:21:1535 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1534:21:1535 | 28 | UseUseExplosion.rb:21:1526:21:1535 | ... > ... | position 0 | | UseUseExplosion.rb:21:1547:21:1551 | @prop | UseUseExplosion.rb:21:1547:21:1556 | ... > ... | self | -| UseUseExplosion.rb:21:1547:21:1556 | * | UseUseExplosion.rb:21:1547:21:1556 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1547:21:1556 | synthetic splat argument | UseUseExplosion.rb:21:1547:21:1556 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1555:21:1556 | 27 | UseUseExplosion.rb:21:1547:21:1556 | ... > ... | position 0 | | UseUseExplosion.rb:21:1568:21:1572 | @prop | UseUseExplosion.rb:21:1568:21:1577 | ... > ... | self | -| UseUseExplosion.rb:21:1568:21:1577 | * | UseUseExplosion.rb:21:1568:21:1577 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1568:21:1577 | synthetic splat argument | UseUseExplosion.rb:21:1568:21:1577 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1576:21:1577 | 26 | UseUseExplosion.rb:21:1568:21:1577 | ... > ... | position 0 | | UseUseExplosion.rb:21:1589:21:1593 | @prop | UseUseExplosion.rb:21:1589:21:1598 | ... > ... | self | -| UseUseExplosion.rb:21:1589:21:1598 | * | UseUseExplosion.rb:21:1589:21:1598 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1589:21:1598 | synthetic splat argument | UseUseExplosion.rb:21:1589:21:1598 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1597:21:1598 | 25 | UseUseExplosion.rb:21:1589:21:1598 | ... > ... | position 0 | | UseUseExplosion.rb:21:1610:21:1614 | @prop | UseUseExplosion.rb:21:1610:21:1619 | ... > ... | self | -| UseUseExplosion.rb:21:1610:21:1619 | * | UseUseExplosion.rb:21:1610:21:1619 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1610:21:1619 | synthetic splat argument | UseUseExplosion.rb:21:1610:21:1619 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1618:21:1619 | 24 | UseUseExplosion.rb:21:1610:21:1619 | ... > ... | position 0 | | UseUseExplosion.rb:21:1631:21:1635 | @prop | UseUseExplosion.rb:21:1631:21:1640 | ... > ... | self | -| UseUseExplosion.rb:21:1631:21:1640 | * | UseUseExplosion.rb:21:1631:21:1640 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1631:21:1640 | synthetic splat argument | UseUseExplosion.rb:21:1631:21:1640 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1639:21:1640 | 23 | UseUseExplosion.rb:21:1631:21:1640 | ... > ... | position 0 | | UseUseExplosion.rb:21:1652:21:1656 | @prop | UseUseExplosion.rb:21:1652:21:1661 | ... > ... | self | -| UseUseExplosion.rb:21:1652:21:1661 | * | UseUseExplosion.rb:21:1652:21:1661 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1652:21:1661 | synthetic splat argument | UseUseExplosion.rb:21:1652:21:1661 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1660:21:1661 | 22 | UseUseExplosion.rb:21:1652:21:1661 | ... > ... | position 0 | | UseUseExplosion.rb:21:1673:21:1677 | @prop | UseUseExplosion.rb:21:1673:21:1682 | ... > ... | self | -| UseUseExplosion.rb:21:1673:21:1682 | * | UseUseExplosion.rb:21:1673:21:1682 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1673:21:1682 | synthetic splat argument | UseUseExplosion.rb:21:1673:21:1682 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1681:21:1682 | 21 | UseUseExplosion.rb:21:1673:21:1682 | ... > ... | position 0 | | UseUseExplosion.rb:21:1694:21:1698 | @prop | UseUseExplosion.rb:21:1694:21:1703 | ... > ... | self | -| UseUseExplosion.rb:21:1694:21:1703 | * | UseUseExplosion.rb:21:1694:21:1703 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1694:21:1703 | synthetic splat argument | UseUseExplosion.rb:21:1694:21:1703 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1702:21:1703 | 20 | UseUseExplosion.rb:21:1694:21:1703 | ... > ... | position 0 | | UseUseExplosion.rb:21:1715:21:1719 | @prop | UseUseExplosion.rb:21:1715:21:1724 | ... > ... | self | -| UseUseExplosion.rb:21:1715:21:1724 | * | UseUseExplosion.rb:21:1715:21:1724 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1715:21:1724 | synthetic splat argument | UseUseExplosion.rb:21:1715:21:1724 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1723:21:1724 | 19 | UseUseExplosion.rb:21:1715:21:1724 | ... > ... | position 0 | | UseUseExplosion.rb:21:1736:21:1740 | @prop | UseUseExplosion.rb:21:1736:21:1745 | ... > ... | self | -| UseUseExplosion.rb:21:1736:21:1745 | * | UseUseExplosion.rb:21:1736:21:1745 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1736:21:1745 | synthetic splat argument | UseUseExplosion.rb:21:1736:21:1745 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1744:21:1745 | 18 | UseUseExplosion.rb:21:1736:21:1745 | ... > ... | position 0 | | UseUseExplosion.rb:21:1757:21:1761 | @prop | UseUseExplosion.rb:21:1757:21:1766 | ... > ... | self | -| UseUseExplosion.rb:21:1757:21:1766 | * | UseUseExplosion.rb:21:1757:21:1766 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1757:21:1766 | synthetic splat argument | UseUseExplosion.rb:21:1757:21:1766 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1765:21:1766 | 17 | UseUseExplosion.rb:21:1757:21:1766 | ... > ... | position 0 | | UseUseExplosion.rb:21:1778:21:1782 | @prop | UseUseExplosion.rb:21:1778:21:1787 | ... > ... | self | -| UseUseExplosion.rb:21:1778:21:1787 | * | UseUseExplosion.rb:21:1778:21:1787 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1778:21:1787 | synthetic splat argument | UseUseExplosion.rb:21:1778:21:1787 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1786:21:1787 | 16 | UseUseExplosion.rb:21:1778:21:1787 | ... > ... | position 0 | | UseUseExplosion.rb:21:1799:21:1803 | @prop | UseUseExplosion.rb:21:1799:21:1808 | ... > ... | self | -| UseUseExplosion.rb:21:1799:21:1808 | * | UseUseExplosion.rb:21:1799:21:1808 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1799:21:1808 | synthetic splat argument | UseUseExplosion.rb:21:1799:21:1808 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1807:21:1808 | 15 | UseUseExplosion.rb:21:1799:21:1808 | ... > ... | position 0 | | UseUseExplosion.rb:21:1820:21:1824 | @prop | UseUseExplosion.rb:21:1820:21:1829 | ... > ... | self | -| UseUseExplosion.rb:21:1820:21:1829 | * | UseUseExplosion.rb:21:1820:21:1829 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1820:21:1829 | synthetic splat argument | UseUseExplosion.rb:21:1820:21:1829 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1828:21:1829 | 14 | UseUseExplosion.rb:21:1820:21:1829 | ... > ... | position 0 | | UseUseExplosion.rb:21:1841:21:1845 | @prop | UseUseExplosion.rb:21:1841:21:1850 | ... > ... | self | -| UseUseExplosion.rb:21:1841:21:1850 | * | UseUseExplosion.rb:21:1841:21:1850 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1841:21:1850 | synthetic splat argument | UseUseExplosion.rb:21:1841:21:1850 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1849:21:1850 | 13 | UseUseExplosion.rb:21:1841:21:1850 | ... > ... | position 0 | | UseUseExplosion.rb:21:1862:21:1866 | @prop | UseUseExplosion.rb:21:1862:21:1871 | ... > ... | self | -| UseUseExplosion.rb:21:1862:21:1871 | * | UseUseExplosion.rb:21:1862:21:1871 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1862:21:1871 | synthetic splat argument | UseUseExplosion.rb:21:1862:21:1871 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1870:21:1871 | 12 | UseUseExplosion.rb:21:1862:21:1871 | ... > ... | position 0 | | UseUseExplosion.rb:21:1883:21:1887 | @prop | UseUseExplosion.rb:21:1883:21:1892 | ... > ... | self | -| UseUseExplosion.rb:21:1883:21:1892 | * | UseUseExplosion.rb:21:1883:21:1892 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1883:21:1892 | synthetic splat argument | UseUseExplosion.rb:21:1883:21:1892 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1891:21:1892 | 11 | UseUseExplosion.rb:21:1883:21:1892 | ... > ... | position 0 | | UseUseExplosion.rb:21:1904:21:1908 | @prop | UseUseExplosion.rb:21:1904:21:1913 | ... > ... | self | -| UseUseExplosion.rb:21:1904:21:1913 | * | UseUseExplosion.rb:21:1904:21:1913 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1904:21:1913 | synthetic splat argument | UseUseExplosion.rb:21:1904:21:1913 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1912:21:1913 | 10 | UseUseExplosion.rb:21:1904:21:1913 | ... > ... | position 0 | | UseUseExplosion.rb:21:1925:21:1929 | @prop | UseUseExplosion.rb:21:1925:21:1933 | ... > ... | self | -| UseUseExplosion.rb:21:1925:21:1933 | * | UseUseExplosion.rb:21:1925:21:1933 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1925:21:1933 | synthetic splat argument | UseUseExplosion.rb:21:1925:21:1933 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1933:21:1933 | 9 | UseUseExplosion.rb:21:1925:21:1933 | ... > ... | position 0 | | UseUseExplosion.rb:21:1945:21:1949 | @prop | UseUseExplosion.rb:21:1945:21:1953 | ... > ... | self | -| UseUseExplosion.rb:21:1945:21:1953 | * | UseUseExplosion.rb:21:1945:21:1953 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1945:21:1953 | synthetic splat argument | UseUseExplosion.rb:21:1945:21:1953 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1953:21:1953 | 8 | UseUseExplosion.rb:21:1945:21:1953 | ... > ... | position 0 | | UseUseExplosion.rb:21:1965:21:1969 | @prop | UseUseExplosion.rb:21:1965:21:1973 | ... > ... | self | -| UseUseExplosion.rb:21:1965:21:1973 | * | UseUseExplosion.rb:21:1965:21:1973 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1965:21:1973 | synthetic splat argument | UseUseExplosion.rb:21:1965:21:1973 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1973:21:1973 | 7 | UseUseExplosion.rb:21:1965:21:1973 | ... > ... | position 0 | | UseUseExplosion.rb:21:1985:21:1989 | @prop | UseUseExplosion.rb:21:1985:21:1993 | ... > ... | self | -| UseUseExplosion.rb:21:1985:21:1993 | * | UseUseExplosion.rb:21:1985:21:1993 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:1985:21:1993 | synthetic splat argument | UseUseExplosion.rb:21:1985:21:1993 | ... > ... | synthetic * | | UseUseExplosion.rb:21:1993:21:1993 | 6 | UseUseExplosion.rb:21:1985:21:1993 | ... > ... | position 0 | | UseUseExplosion.rb:21:2005:21:2009 | @prop | UseUseExplosion.rb:21:2005:21:2013 | ... > ... | self | -| UseUseExplosion.rb:21:2005:21:2013 | * | UseUseExplosion.rb:21:2005:21:2013 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:2005:21:2013 | synthetic splat argument | UseUseExplosion.rb:21:2005:21:2013 | ... > ... | synthetic * | | UseUseExplosion.rb:21:2013:21:2013 | 5 | UseUseExplosion.rb:21:2005:21:2013 | ... > ... | position 0 | | UseUseExplosion.rb:21:2025:21:2029 | @prop | UseUseExplosion.rb:21:2025:21:2033 | ... > ... | self | -| UseUseExplosion.rb:21:2025:21:2033 | * | UseUseExplosion.rb:21:2025:21:2033 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:2025:21:2033 | synthetic splat argument | UseUseExplosion.rb:21:2025:21:2033 | ... > ... | synthetic * | | UseUseExplosion.rb:21:2033:21:2033 | 4 | UseUseExplosion.rb:21:2025:21:2033 | ... > ... | position 0 | | UseUseExplosion.rb:21:2045:21:2049 | @prop | UseUseExplosion.rb:21:2045:21:2053 | ... > ... | self | -| UseUseExplosion.rb:21:2045:21:2053 | * | UseUseExplosion.rb:21:2045:21:2053 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:2045:21:2053 | synthetic splat argument | UseUseExplosion.rb:21:2045:21:2053 | ... > ... | synthetic * | | UseUseExplosion.rb:21:2053:21:2053 | 3 | UseUseExplosion.rb:21:2045:21:2053 | ... > ... | position 0 | | UseUseExplosion.rb:21:2065:21:2069 | @prop | UseUseExplosion.rb:21:2065:21:2073 | ... > ... | self | -| UseUseExplosion.rb:21:2065:21:2073 | * | UseUseExplosion.rb:21:2065:21:2073 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:2065:21:2073 | synthetic splat argument | UseUseExplosion.rb:21:2065:21:2073 | ... > ... | synthetic * | | UseUseExplosion.rb:21:2073:21:2073 | 2 | UseUseExplosion.rb:21:2065:21:2073 | ... > ... | position 0 | | UseUseExplosion.rb:21:2085:21:2089 | @prop | UseUseExplosion.rb:21:2085:21:2093 | ... > ... | self | -| UseUseExplosion.rb:21:2085:21:2093 | * | UseUseExplosion.rb:21:2085:21:2093 | ... > ... | synthetic * | +| UseUseExplosion.rb:21:2085:21:2093 | synthetic splat argument | UseUseExplosion.rb:21:2085:21:2093 | ... > ... | synthetic * | | UseUseExplosion.rb:21:2093:21:2093 | 1 | UseUseExplosion.rb:21:2085:21:2093 | ... > ... | position 0 | -| UseUseExplosion.rb:21:2107:21:2112 | * | UseUseExplosion.rb:21:2107:21:2112 | call to use | synthetic * | | UseUseExplosion.rb:21:2107:21:2112 | self | UseUseExplosion.rb:21:2107:21:2112 | call to use | self | +| UseUseExplosion.rb:21:2107:21:2112 | synthetic splat argument | UseUseExplosion.rb:21:2107:21:2112 | call to use | synthetic * | | UseUseExplosion.rb:21:2111:21:2111 | x | UseUseExplosion.rb:21:2107:21:2112 | call to use | position 0 | -| UseUseExplosion.rb:21:2123:21:2128 | * | UseUseExplosion.rb:21:2123:21:2128 | call to use | synthetic * | | UseUseExplosion.rb:21:2123:21:2128 | self | UseUseExplosion.rb:21:2123:21:2128 | call to use | self | +| UseUseExplosion.rb:21:2123:21:2128 | synthetic splat argument | UseUseExplosion.rb:21:2123:21:2128 | call to use | synthetic * | | UseUseExplosion.rb:21:2127:21:2127 | x | UseUseExplosion.rb:21:2123:21:2128 | call to use | position 0 | -| UseUseExplosion.rb:21:2139:21:2144 | * | UseUseExplosion.rb:21:2139:21:2144 | call to use | synthetic * | | UseUseExplosion.rb:21:2139:21:2144 | self | UseUseExplosion.rb:21:2139:21:2144 | call to use | self | +| UseUseExplosion.rb:21:2139:21:2144 | synthetic splat argument | UseUseExplosion.rb:21:2139:21:2144 | call to use | synthetic * | | UseUseExplosion.rb:21:2143:21:2143 | x | UseUseExplosion.rb:21:2139:21:2144 | call to use | position 0 | -| UseUseExplosion.rb:21:2155:21:2160 | * | UseUseExplosion.rb:21:2155:21:2160 | call to use | synthetic * | | UseUseExplosion.rb:21:2155:21:2160 | self | UseUseExplosion.rb:21:2155:21:2160 | call to use | self | +| UseUseExplosion.rb:21:2155:21:2160 | synthetic splat argument | UseUseExplosion.rb:21:2155:21:2160 | call to use | synthetic * | | UseUseExplosion.rb:21:2159:21:2159 | x | UseUseExplosion.rb:21:2155:21:2160 | call to use | position 0 | -| UseUseExplosion.rb:21:2171:21:2176 | * | UseUseExplosion.rb:21:2171:21:2176 | call to use | synthetic * | | UseUseExplosion.rb:21:2171:21:2176 | self | UseUseExplosion.rb:21:2171:21:2176 | call to use | self | +| UseUseExplosion.rb:21:2171:21:2176 | synthetic splat argument | UseUseExplosion.rb:21:2171:21:2176 | call to use | synthetic * | | UseUseExplosion.rb:21:2175:21:2175 | x | UseUseExplosion.rb:21:2171:21:2176 | call to use | position 0 | -| UseUseExplosion.rb:21:2187:21:2192 | * | UseUseExplosion.rb:21:2187:21:2192 | call to use | synthetic * | | UseUseExplosion.rb:21:2187:21:2192 | self | UseUseExplosion.rb:21:2187:21:2192 | call to use | self | +| UseUseExplosion.rb:21:2187:21:2192 | synthetic splat argument | UseUseExplosion.rb:21:2187:21:2192 | call to use | synthetic * | | UseUseExplosion.rb:21:2191:21:2191 | x | UseUseExplosion.rb:21:2187:21:2192 | call to use | position 0 | -| UseUseExplosion.rb:21:2203:21:2208 | * | UseUseExplosion.rb:21:2203:21:2208 | call to use | synthetic * | | UseUseExplosion.rb:21:2203:21:2208 | self | UseUseExplosion.rb:21:2203:21:2208 | call to use | self | +| UseUseExplosion.rb:21:2203:21:2208 | synthetic splat argument | UseUseExplosion.rb:21:2203:21:2208 | call to use | synthetic * | | UseUseExplosion.rb:21:2207:21:2207 | x | UseUseExplosion.rb:21:2203:21:2208 | call to use | position 0 | -| UseUseExplosion.rb:21:2219:21:2224 | * | UseUseExplosion.rb:21:2219:21:2224 | call to use | synthetic * | | UseUseExplosion.rb:21:2219:21:2224 | self | UseUseExplosion.rb:21:2219:21:2224 | call to use | self | +| UseUseExplosion.rb:21:2219:21:2224 | synthetic splat argument | UseUseExplosion.rb:21:2219:21:2224 | call to use | synthetic * | | UseUseExplosion.rb:21:2223:21:2223 | x | UseUseExplosion.rb:21:2219:21:2224 | call to use | position 0 | -| UseUseExplosion.rb:21:2235:21:2240 | * | UseUseExplosion.rb:21:2235:21:2240 | call to use | synthetic * | | UseUseExplosion.rb:21:2235:21:2240 | self | UseUseExplosion.rb:21:2235:21:2240 | call to use | self | +| UseUseExplosion.rb:21:2235:21:2240 | synthetic splat argument | UseUseExplosion.rb:21:2235:21:2240 | call to use | synthetic * | | UseUseExplosion.rb:21:2239:21:2239 | x | UseUseExplosion.rb:21:2235:21:2240 | call to use | position 0 | -| UseUseExplosion.rb:21:2251:21:2256 | * | UseUseExplosion.rb:21:2251:21:2256 | call to use | synthetic * | | UseUseExplosion.rb:21:2251:21:2256 | self | UseUseExplosion.rb:21:2251:21:2256 | call to use | self | +| UseUseExplosion.rb:21:2251:21:2256 | synthetic splat argument | UseUseExplosion.rb:21:2251:21:2256 | call to use | synthetic * | | UseUseExplosion.rb:21:2255:21:2255 | x | UseUseExplosion.rb:21:2251:21:2256 | call to use | position 0 | -| UseUseExplosion.rb:21:2267:21:2272 | * | UseUseExplosion.rb:21:2267:21:2272 | call to use | synthetic * | | UseUseExplosion.rb:21:2267:21:2272 | self | UseUseExplosion.rb:21:2267:21:2272 | call to use | self | +| UseUseExplosion.rb:21:2267:21:2272 | synthetic splat argument | UseUseExplosion.rb:21:2267:21:2272 | call to use | synthetic * | | UseUseExplosion.rb:21:2271:21:2271 | x | UseUseExplosion.rb:21:2267:21:2272 | call to use | position 0 | -| UseUseExplosion.rb:21:2283:21:2288 | * | UseUseExplosion.rb:21:2283:21:2288 | call to use | synthetic * | | UseUseExplosion.rb:21:2283:21:2288 | self | UseUseExplosion.rb:21:2283:21:2288 | call to use | self | +| UseUseExplosion.rb:21:2283:21:2288 | synthetic splat argument | UseUseExplosion.rb:21:2283:21:2288 | call to use | synthetic * | | UseUseExplosion.rb:21:2287:21:2287 | x | UseUseExplosion.rb:21:2283:21:2288 | call to use | position 0 | -| UseUseExplosion.rb:21:2299:21:2304 | * | UseUseExplosion.rb:21:2299:21:2304 | call to use | synthetic * | | UseUseExplosion.rb:21:2299:21:2304 | self | UseUseExplosion.rb:21:2299:21:2304 | call to use | self | +| UseUseExplosion.rb:21:2299:21:2304 | synthetic splat argument | UseUseExplosion.rb:21:2299:21:2304 | call to use | synthetic * | | UseUseExplosion.rb:21:2303:21:2303 | x | UseUseExplosion.rb:21:2299:21:2304 | call to use | position 0 | -| UseUseExplosion.rb:21:2315:21:2320 | * | UseUseExplosion.rb:21:2315:21:2320 | call to use | synthetic * | | UseUseExplosion.rb:21:2315:21:2320 | self | UseUseExplosion.rb:21:2315:21:2320 | call to use | self | +| UseUseExplosion.rb:21:2315:21:2320 | synthetic splat argument | UseUseExplosion.rb:21:2315:21:2320 | call to use | synthetic * | | UseUseExplosion.rb:21:2319:21:2319 | x | UseUseExplosion.rb:21:2315:21:2320 | call to use | position 0 | -| UseUseExplosion.rb:21:2331:21:2336 | * | UseUseExplosion.rb:21:2331:21:2336 | call to use | synthetic * | | UseUseExplosion.rb:21:2331:21:2336 | self | UseUseExplosion.rb:21:2331:21:2336 | call to use | self | +| UseUseExplosion.rb:21:2331:21:2336 | synthetic splat argument | UseUseExplosion.rb:21:2331:21:2336 | call to use | synthetic * | | UseUseExplosion.rb:21:2335:21:2335 | x | UseUseExplosion.rb:21:2331:21:2336 | call to use | position 0 | -| UseUseExplosion.rb:21:2347:21:2352 | * | UseUseExplosion.rb:21:2347:21:2352 | call to use | synthetic * | | UseUseExplosion.rb:21:2347:21:2352 | self | UseUseExplosion.rb:21:2347:21:2352 | call to use | self | +| UseUseExplosion.rb:21:2347:21:2352 | synthetic splat argument | UseUseExplosion.rb:21:2347:21:2352 | call to use | synthetic * | | UseUseExplosion.rb:21:2351:21:2351 | x | UseUseExplosion.rb:21:2347:21:2352 | call to use | position 0 | -| UseUseExplosion.rb:21:2363:21:2368 | * | UseUseExplosion.rb:21:2363:21:2368 | call to use | synthetic * | | UseUseExplosion.rb:21:2363:21:2368 | self | UseUseExplosion.rb:21:2363:21:2368 | call to use | self | +| UseUseExplosion.rb:21:2363:21:2368 | synthetic splat argument | UseUseExplosion.rb:21:2363:21:2368 | call to use | synthetic * | | UseUseExplosion.rb:21:2367:21:2367 | x | UseUseExplosion.rb:21:2363:21:2368 | call to use | position 0 | -| UseUseExplosion.rb:21:2379:21:2384 | * | UseUseExplosion.rb:21:2379:21:2384 | call to use | synthetic * | | UseUseExplosion.rb:21:2379:21:2384 | self | UseUseExplosion.rb:21:2379:21:2384 | call to use | self | +| UseUseExplosion.rb:21:2379:21:2384 | synthetic splat argument | UseUseExplosion.rb:21:2379:21:2384 | call to use | synthetic * | | UseUseExplosion.rb:21:2383:21:2383 | x | UseUseExplosion.rb:21:2379:21:2384 | call to use | position 0 | -| UseUseExplosion.rb:21:2395:21:2400 | * | UseUseExplosion.rb:21:2395:21:2400 | call to use | synthetic * | | UseUseExplosion.rb:21:2395:21:2400 | self | UseUseExplosion.rb:21:2395:21:2400 | call to use | self | +| UseUseExplosion.rb:21:2395:21:2400 | synthetic splat argument | UseUseExplosion.rb:21:2395:21:2400 | call to use | synthetic * | | UseUseExplosion.rb:21:2399:21:2399 | x | UseUseExplosion.rb:21:2395:21:2400 | call to use | position 0 | -| UseUseExplosion.rb:21:2411:21:2416 | * | UseUseExplosion.rb:21:2411:21:2416 | call to use | synthetic * | | UseUseExplosion.rb:21:2411:21:2416 | self | UseUseExplosion.rb:21:2411:21:2416 | call to use | self | +| UseUseExplosion.rb:21:2411:21:2416 | synthetic splat argument | UseUseExplosion.rb:21:2411:21:2416 | call to use | synthetic * | | UseUseExplosion.rb:21:2415:21:2415 | x | UseUseExplosion.rb:21:2411:21:2416 | call to use | position 0 | -| UseUseExplosion.rb:21:2427:21:2432 | * | UseUseExplosion.rb:21:2427:21:2432 | call to use | synthetic * | | UseUseExplosion.rb:21:2427:21:2432 | self | UseUseExplosion.rb:21:2427:21:2432 | call to use | self | +| UseUseExplosion.rb:21:2427:21:2432 | synthetic splat argument | UseUseExplosion.rb:21:2427:21:2432 | call to use | synthetic * | | UseUseExplosion.rb:21:2431:21:2431 | x | UseUseExplosion.rb:21:2427:21:2432 | call to use | position 0 | -| UseUseExplosion.rb:21:2443:21:2448 | * | UseUseExplosion.rb:21:2443:21:2448 | call to use | synthetic * | | UseUseExplosion.rb:21:2443:21:2448 | self | UseUseExplosion.rb:21:2443:21:2448 | call to use | self | +| UseUseExplosion.rb:21:2443:21:2448 | synthetic splat argument | UseUseExplosion.rb:21:2443:21:2448 | call to use | synthetic * | | UseUseExplosion.rb:21:2447:21:2447 | x | UseUseExplosion.rb:21:2443:21:2448 | call to use | position 0 | -| UseUseExplosion.rb:21:2459:21:2464 | * | UseUseExplosion.rb:21:2459:21:2464 | call to use | synthetic * | | UseUseExplosion.rb:21:2459:21:2464 | self | UseUseExplosion.rb:21:2459:21:2464 | call to use | self | +| UseUseExplosion.rb:21:2459:21:2464 | synthetic splat argument | UseUseExplosion.rb:21:2459:21:2464 | call to use | synthetic * | | UseUseExplosion.rb:21:2463:21:2463 | x | UseUseExplosion.rb:21:2459:21:2464 | call to use | position 0 | -| UseUseExplosion.rb:21:2475:21:2480 | * | UseUseExplosion.rb:21:2475:21:2480 | call to use | synthetic * | | UseUseExplosion.rb:21:2475:21:2480 | self | UseUseExplosion.rb:21:2475:21:2480 | call to use | self | +| UseUseExplosion.rb:21:2475:21:2480 | synthetic splat argument | UseUseExplosion.rb:21:2475:21:2480 | call to use | synthetic * | | UseUseExplosion.rb:21:2479:21:2479 | x | UseUseExplosion.rb:21:2475:21:2480 | call to use | position 0 | -| UseUseExplosion.rb:21:2491:21:2496 | * | UseUseExplosion.rb:21:2491:21:2496 | call to use | synthetic * | | UseUseExplosion.rb:21:2491:21:2496 | self | UseUseExplosion.rb:21:2491:21:2496 | call to use | self | +| UseUseExplosion.rb:21:2491:21:2496 | synthetic splat argument | UseUseExplosion.rb:21:2491:21:2496 | call to use | synthetic * | | UseUseExplosion.rb:21:2495:21:2495 | x | UseUseExplosion.rb:21:2491:21:2496 | call to use | position 0 | -| UseUseExplosion.rb:21:2507:21:2512 | * | UseUseExplosion.rb:21:2507:21:2512 | call to use | synthetic * | | UseUseExplosion.rb:21:2507:21:2512 | self | UseUseExplosion.rb:21:2507:21:2512 | call to use | self | +| UseUseExplosion.rb:21:2507:21:2512 | synthetic splat argument | UseUseExplosion.rb:21:2507:21:2512 | call to use | synthetic * | | UseUseExplosion.rb:21:2511:21:2511 | x | UseUseExplosion.rb:21:2507:21:2512 | call to use | position 0 | -| UseUseExplosion.rb:21:2523:21:2528 | * | UseUseExplosion.rb:21:2523:21:2528 | call to use | synthetic * | | UseUseExplosion.rb:21:2523:21:2528 | self | UseUseExplosion.rb:21:2523:21:2528 | call to use | self | +| UseUseExplosion.rb:21:2523:21:2528 | synthetic splat argument | UseUseExplosion.rb:21:2523:21:2528 | call to use | synthetic * | | UseUseExplosion.rb:21:2527:21:2527 | x | UseUseExplosion.rb:21:2523:21:2528 | call to use | position 0 | -| UseUseExplosion.rb:21:2539:21:2544 | * | UseUseExplosion.rb:21:2539:21:2544 | call to use | synthetic * | | UseUseExplosion.rb:21:2539:21:2544 | self | UseUseExplosion.rb:21:2539:21:2544 | call to use | self | +| UseUseExplosion.rb:21:2539:21:2544 | synthetic splat argument | UseUseExplosion.rb:21:2539:21:2544 | call to use | synthetic * | | UseUseExplosion.rb:21:2543:21:2543 | x | UseUseExplosion.rb:21:2539:21:2544 | call to use | position 0 | -| UseUseExplosion.rb:21:2555:21:2560 | * | UseUseExplosion.rb:21:2555:21:2560 | call to use | synthetic * | | UseUseExplosion.rb:21:2555:21:2560 | self | UseUseExplosion.rb:21:2555:21:2560 | call to use | self | +| UseUseExplosion.rb:21:2555:21:2560 | synthetic splat argument | UseUseExplosion.rb:21:2555:21:2560 | call to use | synthetic * | | UseUseExplosion.rb:21:2559:21:2559 | x | UseUseExplosion.rb:21:2555:21:2560 | call to use | position 0 | -| UseUseExplosion.rb:21:2571:21:2576 | * | UseUseExplosion.rb:21:2571:21:2576 | call to use | synthetic * | | UseUseExplosion.rb:21:2571:21:2576 | self | UseUseExplosion.rb:21:2571:21:2576 | call to use | self | +| UseUseExplosion.rb:21:2571:21:2576 | synthetic splat argument | UseUseExplosion.rb:21:2571:21:2576 | call to use | synthetic * | | UseUseExplosion.rb:21:2575:21:2575 | x | UseUseExplosion.rb:21:2571:21:2576 | call to use | position 0 | -| UseUseExplosion.rb:21:2587:21:2592 | * | UseUseExplosion.rb:21:2587:21:2592 | call to use | synthetic * | | UseUseExplosion.rb:21:2587:21:2592 | self | UseUseExplosion.rb:21:2587:21:2592 | call to use | self | +| UseUseExplosion.rb:21:2587:21:2592 | synthetic splat argument | UseUseExplosion.rb:21:2587:21:2592 | call to use | synthetic * | | UseUseExplosion.rb:21:2591:21:2591 | x | UseUseExplosion.rb:21:2587:21:2592 | call to use | position 0 | -| UseUseExplosion.rb:21:2603:21:2608 | * | UseUseExplosion.rb:21:2603:21:2608 | call to use | synthetic * | | UseUseExplosion.rb:21:2603:21:2608 | self | UseUseExplosion.rb:21:2603:21:2608 | call to use | self | +| UseUseExplosion.rb:21:2603:21:2608 | synthetic splat argument | UseUseExplosion.rb:21:2603:21:2608 | call to use | synthetic * | | UseUseExplosion.rb:21:2607:21:2607 | x | UseUseExplosion.rb:21:2603:21:2608 | call to use | position 0 | -| UseUseExplosion.rb:21:2619:21:2624 | * | UseUseExplosion.rb:21:2619:21:2624 | call to use | synthetic * | | UseUseExplosion.rb:21:2619:21:2624 | self | UseUseExplosion.rb:21:2619:21:2624 | call to use | self | +| UseUseExplosion.rb:21:2619:21:2624 | synthetic splat argument | UseUseExplosion.rb:21:2619:21:2624 | call to use | synthetic * | | UseUseExplosion.rb:21:2623:21:2623 | x | UseUseExplosion.rb:21:2619:21:2624 | call to use | position 0 | -| UseUseExplosion.rb:21:2635:21:2640 | * | UseUseExplosion.rb:21:2635:21:2640 | call to use | synthetic * | | UseUseExplosion.rb:21:2635:21:2640 | self | UseUseExplosion.rb:21:2635:21:2640 | call to use | self | +| UseUseExplosion.rb:21:2635:21:2640 | synthetic splat argument | UseUseExplosion.rb:21:2635:21:2640 | call to use | synthetic * | | UseUseExplosion.rb:21:2639:21:2639 | x | UseUseExplosion.rb:21:2635:21:2640 | call to use | position 0 | -| UseUseExplosion.rb:21:2651:21:2656 | * | UseUseExplosion.rb:21:2651:21:2656 | call to use | synthetic * | | UseUseExplosion.rb:21:2651:21:2656 | self | UseUseExplosion.rb:21:2651:21:2656 | call to use | self | +| UseUseExplosion.rb:21:2651:21:2656 | synthetic splat argument | UseUseExplosion.rb:21:2651:21:2656 | call to use | synthetic * | | UseUseExplosion.rb:21:2655:21:2655 | x | UseUseExplosion.rb:21:2651:21:2656 | call to use | position 0 | -| UseUseExplosion.rb:21:2667:21:2672 | * | UseUseExplosion.rb:21:2667:21:2672 | call to use | synthetic * | | UseUseExplosion.rb:21:2667:21:2672 | self | UseUseExplosion.rb:21:2667:21:2672 | call to use | self | +| UseUseExplosion.rb:21:2667:21:2672 | synthetic splat argument | UseUseExplosion.rb:21:2667:21:2672 | call to use | synthetic * | | UseUseExplosion.rb:21:2671:21:2671 | x | UseUseExplosion.rb:21:2667:21:2672 | call to use | position 0 | -| UseUseExplosion.rb:21:2683:21:2688 | * | UseUseExplosion.rb:21:2683:21:2688 | call to use | synthetic * | | UseUseExplosion.rb:21:2683:21:2688 | self | UseUseExplosion.rb:21:2683:21:2688 | call to use | self | +| UseUseExplosion.rb:21:2683:21:2688 | synthetic splat argument | UseUseExplosion.rb:21:2683:21:2688 | call to use | synthetic * | | UseUseExplosion.rb:21:2687:21:2687 | x | UseUseExplosion.rb:21:2683:21:2688 | call to use | position 0 | -| UseUseExplosion.rb:21:2699:21:2704 | * | UseUseExplosion.rb:21:2699:21:2704 | call to use | synthetic * | | UseUseExplosion.rb:21:2699:21:2704 | self | UseUseExplosion.rb:21:2699:21:2704 | call to use | self | +| UseUseExplosion.rb:21:2699:21:2704 | synthetic splat argument | UseUseExplosion.rb:21:2699:21:2704 | call to use | synthetic * | | UseUseExplosion.rb:21:2703:21:2703 | x | UseUseExplosion.rb:21:2699:21:2704 | call to use | position 0 | -| UseUseExplosion.rb:21:2715:21:2720 | * | UseUseExplosion.rb:21:2715:21:2720 | call to use | synthetic * | | UseUseExplosion.rb:21:2715:21:2720 | self | UseUseExplosion.rb:21:2715:21:2720 | call to use | self | +| UseUseExplosion.rb:21:2715:21:2720 | synthetic splat argument | UseUseExplosion.rb:21:2715:21:2720 | call to use | synthetic * | | UseUseExplosion.rb:21:2719:21:2719 | x | UseUseExplosion.rb:21:2715:21:2720 | call to use | position 0 | -| UseUseExplosion.rb:21:2731:21:2736 | * | UseUseExplosion.rb:21:2731:21:2736 | call to use | synthetic * | | UseUseExplosion.rb:21:2731:21:2736 | self | UseUseExplosion.rb:21:2731:21:2736 | call to use | self | +| UseUseExplosion.rb:21:2731:21:2736 | synthetic splat argument | UseUseExplosion.rb:21:2731:21:2736 | call to use | synthetic * | | UseUseExplosion.rb:21:2735:21:2735 | x | UseUseExplosion.rb:21:2731:21:2736 | call to use | position 0 | -| UseUseExplosion.rb:21:2747:21:2752 | * | UseUseExplosion.rb:21:2747:21:2752 | call to use | synthetic * | | UseUseExplosion.rb:21:2747:21:2752 | self | UseUseExplosion.rb:21:2747:21:2752 | call to use | self | +| UseUseExplosion.rb:21:2747:21:2752 | synthetic splat argument | UseUseExplosion.rb:21:2747:21:2752 | call to use | synthetic * | | UseUseExplosion.rb:21:2751:21:2751 | x | UseUseExplosion.rb:21:2747:21:2752 | call to use | position 0 | -| UseUseExplosion.rb:21:2763:21:2768 | * | UseUseExplosion.rb:21:2763:21:2768 | call to use | synthetic * | | UseUseExplosion.rb:21:2763:21:2768 | self | UseUseExplosion.rb:21:2763:21:2768 | call to use | self | +| UseUseExplosion.rb:21:2763:21:2768 | synthetic splat argument | UseUseExplosion.rb:21:2763:21:2768 | call to use | synthetic * | | UseUseExplosion.rb:21:2767:21:2767 | x | UseUseExplosion.rb:21:2763:21:2768 | call to use | position 0 | -| UseUseExplosion.rb:21:2779:21:2784 | * | UseUseExplosion.rb:21:2779:21:2784 | call to use | synthetic * | | UseUseExplosion.rb:21:2779:21:2784 | self | UseUseExplosion.rb:21:2779:21:2784 | call to use | self | +| UseUseExplosion.rb:21:2779:21:2784 | synthetic splat argument | UseUseExplosion.rb:21:2779:21:2784 | call to use | synthetic * | | UseUseExplosion.rb:21:2783:21:2783 | x | UseUseExplosion.rb:21:2779:21:2784 | call to use | position 0 | -| UseUseExplosion.rb:21:2795:21:2800 | * | UseUseExplosion.rb:21:2795:21:2800 | call to use | synthetic * | | UseUseExplosion.rb:21:2795:21:2800 | self | UseUseExplosion.rb:21:2795:21:2800 | call to use | self | +| UseUseExplosion.rb:21:2795:21:2800 | synthetic splat argument | UseUseExplosion.rb:21:2795:21:2800 | call to use | synthetic * | | UseUseExplosion.rb:21:2799:21:2799 | x | UseUseExplosion.rb:21:2795:21:2800 | call to use | position 0 | -| UseUseExplosion.rb:21:2811:21:2816 | * | UseUseExplosion.rb:21:2811:21:2816 | call to use | synthetic * | | UseUseExplosion.rb:21:2811:21:2816 | self | UseUseExplosion.rb:21:2811:21:2816 | call to use | self | +| UseUseExplosion.rb:21:2811:21:2816 | synthetic splat argument | UseUseExplosion.rb:21:2811:21:2816 | call to use | synthetic * | | UseUseExplosion.rb:21:2815:21:2815 | x | UseUseExplosion.rb:21:2811:21:2816 | call to use | position 0 | -| UseUseExplosion.rb:21:2827:21:2832 | * | UseUseExplosion.rb:21:2827:21:2832 | call to use | synthetic * | | UseUseExplosion.rb:21:2827:21:2832 | self | UseUseExplosion.rb:21:2827:21:2832 | call to use | self | +| UseUseExplosion.rb:21:2827:21:2832 | synthetic splat argument | UseUseExplosion.rb:21:2827:21:2832 | call to use | synthetic * | | UseUseExplosion.rb:21:2831:21:2831 | x | UseUseExplosion.rb:21:2827:21:2832 | call to use | position 0 | -| UseUseExplosion.rb:21:2843:21:2848 | * | UseUseExplosion.rb:21:2843:21:2848 | call to use | synthetic * | | UseUseExplosion.rb:21:2843:21:2848 | self | UseUseExplosion.rb:21:2843:21:2848 | call to use | self | +| UseUseExplosion.rb:21:2843:21:2848 | synthetic splat argument | UseUseExplosion.rb:21:2843:21:2848 | call to use | synthetic * | | UseUseExplosion.rb:21:2847:21:2847 | x | UseUseExplosion.rb:21:2843:21:2848 | call to use | position 0 | -| UseUseExplosion.rb:21:2859:21:2864 | * | UseUseExplosion.rb:21:2859:21:2864 | call to use | synthetic * | | UseUseExplosion.rb:21:2859:21:2864 | self | UseUseExplosion.rb:21:2859:21:2864 | call to use | self | +| UseUseExplosion.rb:21:2859:21:2864 | synthetic splat argument | UseUseExplosion.rb:21:2859:21:2864 | call to use | synthetic * | | UseUseExplosion.rb:21:2863:21:2863 | x | UseUseExplosion.rb:21:2859:21:2864 | call to use | position 0 | -| UseUseExplosion.rb:21:2875:21:2880 | * | UseUseExplosion.rb:21:2875:21:2880 | call to use | synthetic * | | UseUseExplosion.rb:21:2875:21:2880 | self | UseUseExplosion.rb:21:2875:21:2880 | call to use | self | +| UseUseExplosion.rb:21:2875:21:2880 | synthetic splat argument | UseUseExplosion.rb:21:2875:21:2880 | call to use | synthetic * | | UseUseExplosion.rb:21:2879:21:2879 | x | UseUseExplosion.rb:21:2875:21:2880 | call to use | position 0 | -| UseUseExplosion.rb:21:2891:21:2896 | * | UseUseExplosion.rb:21:2891:21:2896 | call to use | synthetic * | | UseUseExplosion.rb:21:2891:21:2896 | self | UseUseExplosion.rb:21:2891:21:2896 | call to use | self | +| UseUseExplosion.rb:21:2891:21:2896 | synthetic splat argument | UseUseExplosion.rb:21:2891:21:2896 | call to use | synthetic * | | UseUseExplosion.rb:21:2895:21:2895 | x | UseUseExplosion.rb:21:2891:21:2896 | call to use | position 0 | -| UseUseExplosion.rb:21:2907:21:2912 | * | UseUseExplosion.rb:21:2907:21:2912 | call to use | synthetic * | | UseUseExplosion.rb:21:2907:21:2912 | self | UseUseExplosion.rb:21:2907:21:2912 | call to use | self | +| UseUseExplosion.rb:21:2907:21:2912 | synthetic splat argument | UseUseExplosion.rb:21:2907:21:2912 | call to use | synthetic * | | UseUseExplosion.rb:21:2911:21:2911 | x | UseUseExplosion.rb:21:2907:21:2912 | call to use | position 0 | -| UseUseExplosion.rb:21:2923:21:2928 | * | UseUseExplosion.rb:21:2923:21:2928 | call to use | synthetic * | | UseUseExplosion.rb:21:2923:21:2928 | self | UseUseExplosion.rb:21:2923:21:2928 | call to use | self | +| UseUseExplosion.rb:21:2923:21:2928 | synthetic splat argument | UseUseExplosion.rb:21:2923:21:2928 | call to use | synthetic * | | UseUseExplosion.rb:21:2927:21:2927 | x | UseUseExplosion.rb:21:2923:21:2928 | call to use | position 0 | -| UseUseExplosion.rb:21:2939:21:2944 | * | UseUseExplosion.rb:21:2939:21:2944 | call to use | synthetic * | | UseUseExplosion.rb:21:2939:21:2944 | self | UseUseExplosion.rb:21:2939:21:2944 | call to use | self | +| UseUseExplosion.rb:21:2939:21:2944 | synthetic splat argument | UseUseExplosion.rb:21:2939:21:2944 | call to use | synthetic * | | UseUseExplosion.rb:21:2943:21:2943 | x | UseUseExplosion.rb:21:2939:21:2944 | call to use | position 0 | -| UseUseExplosion.rb:21:2955:21:2960 | * | UseUseExplosion.rb:21:2955:21:2960 | call to use | synthetic * | | UseUseExplosion.rb:21:2955:21:2960 | self | UseUseExplosion.rb:21:2955:21:2960 | call to use | self | +| UseUseExplosion.rb:21:2955:21:2960 | synthetic splat argument | UseUseExplosion.rb:21:2955:21:2960 | call to use | synthetic * | | UseUseExplosion.rb:21:2959:21:2959 | x | UseUseExplosion.rb:21:2955:21:2960 | call to use | position 0 | -| UseUseExplosion.rb:21:2971:21:2976 | * | UseUseExplosion.rb:21:2971:21:2976 | call to use | synthetic * | | UseUseExplosion.rb:21:2971:21:2976 | self | UseUseExplosion.rb:21:2971:21:2976 | call to use | self | +| UseUseExplosion.rb:21:2971:21:2976 | synthetic splat argument | UseUseExplosion.rb:21:2971:21:2976 | call to use | synthetic * | | UseUseExplosion.rb:21:2975:21:2975 | x | UseUseExplosion.rb:21:2971:21:2976 | call to use | position 0 | -| UseUseExplosion.rb:21:2987:21:2992 | * | UseUseExplosion.rb:21:2987:21:2992 | call to use | synthetic * | | UseUseExplosion.rb:21:2987:21:2992 | self | UseUseExplosion.rb:21:2987:21:2992 | call to use | self | +| UseUseExplosion.rb:21:2987:21:2992 | synthetic splat argument | UseUseExplosion.rb:21:2987:21:2992 | call to use | synthetic * | | UseUseExplosion.rb:21:2991:21:2991 | x | UseUseExplosion.rb:21:2987:21:2992 | call to use | position 0 | -| UseUseExplosion.rb:21:3003:21:3008 | * | UseUseExplosion.rb:21:3003:21:3008 | call to use | synthetic * | | UseUseExplosion.rb:21:3003:21:3008 | self | UseUseExplosion.rb:21:3003:21:3008 | call to use | self | +| UseUseExplosion.rb:21:3003:21:3008 | synthetic splat argument | UseUseExplosion.rb:21:3003:21:3008 | call to use | synthetic * | | UseUseExplosion.rb:21:3007:21:3007 | x | UseUseExplosion.rb:21:3003:21:3008 | call to use | position 0 | -| UseUseExplosion.rb:21:3019:21:3024 | * | UseUseExplosion.rb:21:3019:21:3024 | call to use | synthetic * | | UseUseExplosion.rb:21:3019:21:3024 | self | UseUseExplosion.rb:21:3019:21:3024 | call to use | self | +| UseUseExplosion.rb:21:3019:21:3024 | synthetic splat argument | UseUseExplosion.rb:21:3019:21:3024 | call to use | synthetic * | | UseUseExplosion.rb:21:3023:21:3023 | x | UseUseExplosion.rb:21:3019:21:3024 | call to use | position 0 | -| UseUseExplosion.rb:21:3035:21:3040 | * | UseUseExplosion.rb:21:3035:21:3040 | call to use | synthetic * | | UseUseExplosion.rb:21:3035:21:3040 | self | UseUseExplosion.rb:21:3035:21:3040 | call to use | self | +| UseUseExplosion.rb:21:3035:21:3040 | synthetic splat argument | UseUseExplosion.rb:21:3035:21:3040 | call to use | synthetic * | | UseUseExplosion.rb:21:3039:21:3039 | x | UseUseExplosion.rb:21:3035:21:3040 | call to use | position 0 | -| UseUseExplosion.rb:21:3051:21:3056 | * | UseUseExplosion.rb:21:3051:21:3056 | call to use | synthetic * | | UseUseExplosion.rb:21:3051:21:3056 | self | UseUseExplosion.rb:21:3051:21:3056 | call to use | self | +| UseUseExplosion.rb:21:3051:21:3056 | synthetic splat argument | UseUseExplosion.rb:21:3051:21:3056 | call to use | synthetic * | | UseUseExplosion.rb:21:3055:21:3055 | x | UseUseExplosion.rb:21:3051:21:3056 | call to use | position 0 | -| UseUseExplosion.rb:21:3067:21:3072 | * | UseUseExplosion.rb:21:3067:21:3072 | call to use | synthetic * | | UseUseExplosion.rb:21:3067:21:3072 | self | UseUseExplosion.rb:21:3067:21:3072 | call to use | self | +| UseUseExplosion.rb:21:3067:21:3072 | synthetic splat argument | UseUseExplosion.rb:21:3067:21:3072 | call to use | synthetic * | | UseUseExplosion.rb:21:3071:21:3071 | x | UseUseExplosion.rb:21:3067:21:3072 | call to use | position 0 | -| UseUseExplosion.rb:21:3083:21:3088 | * | UseUseExplosion.rb:21:3083:21:3088 | call to use | synthetic * | | UseUseExplosion.rb:21:3083:21:3088 | self | UseUseExplosion.rb:21:3083:21:3088 | call to use | self | +| UseUseExplosion.rb:21:3083:21:3088 | synthetic splat argument | UseUseExplosion.rb:21:3083:21:3088 | call to use | synthetic * | | UseUseExplosion.rb:21:3087:21:3087 | x | UseUseExplosion.rb:21:3083:21:3088 | call to use | position 0 | -| UseUseExplosion.rb:21:3099:21:3104 | * | UseUseExplosion.rb:21:3099:21:3104 | call to use | synthetic * | | UseUseExplosion.rb:21:3099:21:3104 | self | UseUseExplosion.rb:21:3099:21:3104 | call to use | self | +| UseUseExplosion.rb:21:3099:21:3104 | synthetic splat argument | UseUseExplosion.rb:21:3099:21:3104 | call to use | synthetic * | | UseUseExplosion.rb:21:3103:21:3103 | x | UseUseExplosion.rb:21:3099:21:3104 | call to use | position 0 | -| UseUseExplosion.rb:21:3115:21:3120 | * | UseUseExplosion.rb:21:3115:21:3120 | call to use | synthetic * | | UseUseExplosion.rb:21:3115:21:3120 | self | UseUseExplosion.rb:21:3115:21:3120 | call to use | self | +| UseUseExplosion.rb:21:3115:21:3120 | synthetic splat argument | UseUseExplosion.rb:21:3115:21:3120 | call to use | synthetic * | | UseUseExplosion.rb:21:3119:21:3119 | x | UseUseExplosion.rb:21:3115:21:3120 | call to use | position 0 | -| UseUseExplosion.rb:21:3131:21:3136 | * | UseUseExplosion.rb:21:3131:21:3136 | call to use | synthetic * | | UseUseExplosion.rb:21:3131:21:3136 | self | UseUseExplosion.rb:21:3131:21:3136 | call to use | self | +| UseUseExplosion.rb:21:3131:21:3136 | synthetic splat argument | UseUseExplosion.rb:21:3131:21:3136 | call to use | synthetic * | | UseUseExplosion.rb:21:3135:21:3135 | x | UseUseExplosion.rb:21:3131:21:3136 | call to use | position 0 | -| UseUseExplosion.rb:21:3147:21:3152 | * | UseUseExplosion.rb:21:3147:21:3152 | call to use | synthetic * | | UseUseExplosion.rb:21:3147:21:3152 | self | UseUseExplosion.rb:21:3147:21:3152 | call to use | self | +| UseUseExplosion.rb:21:3147:21:3152 | synthetic splat argument | UseUseExplosion.rb:21:3147:21:3152 | call to use | synthetic * | | UseUseExplosion.rb:21:3151:21:3151 | x | UseUseExplosion.rb:21:3147:21:3152 | call to use | position 0 | -| UseUseExplosion.rb:21:3163:21:3168 | * | UseUseExplosion.rb:21:3163:21:3168 | call to use | synthetic * | | UseUseExplosion.rb:21:3163:21:3168 | self | UseUseExplosion.rb:21:3163:21:3168 | call to use | self | +| UseUseExplosion.rb:21:3163:21:3168 | synthetic splat argument | UseUseExplosion.rb:21:3163:21:3168 | call to use | synthetic * | | UseUseExplosion.rb:21:3167:21:3167 | x | UseUseExplosion.rb:21:3163:21:3168 | call to use | position 0 | -| UseUseExplosion.rb:21:3179:21:3184 | * | UseUseExplosion.rb:21:3179:21:3184 | call to use | synthetic * | | UseUseExplosion.rb:21:3179:21:3184 | self | UseUseExplosion.rb:21:3179:21:3184 | call to use | self | +| UseUseExplosion.rb:21:3179:21:3184 | synthetic splat argument | UseUseExplosion.rb:21:3179:21:3184 | call to use | synthetic * | | UseUseExplosion.rb:21:3183:21:3183 | x | UseUseExplosion.rb:21:3179:21:3184 | call to use | position 0 | -| UseUseExplosion.rb:21:3195:21:3200 | * | UseUseExplosion.rb:21:3195:21:3200 | call to use | synthetic * | | UseUseExplosion.rb:21:3195:21:3200 | self | UseUseExplosion.rb:21:3195:21:3200 | call to use | self | +| UseUseExplosion.rb:21:3195:21:3200 | synthetic splat argument | UseUseExplosion.rb:21:3195:21:3200 | call to use | synthetic * | | UseUseExplosion.rb:21:3199:21:3199 | x | UseUseExplosion.rb:21:3195:21:3200 | call to use | position 0 | -| UseUseExplosion.rb:21:3211:21:3216 | * | UseUseExplosion.rb:21:3211:21:3216 | call to use | synthetic * | | UseUseExplosion.rb:21:3211:21:3216 | self | UseUseExplosion.rb:21:3211:21:3216 | call to use | self | +| UseUseExplosion.rb:21:3211:21:3216 | synthetic splat argument | UseUseExplosion.rb:21:3211:21:3216 | call to use | synthetic * | | UseUseExplosion.rb:21:3215:21:3215 | x | UseUseExplosion.rb:21:3211:21:3216 | call to use | position 0 | -| UseUseExplosion.rb:21:3227:21:3232 | * | UseUseExplosion.rb:21:3227:21:3232 | call to use | synthetic * | | UseUseExplosion.rb:21:3227:21:3232 | self | UseUseExplosion.rb:21:3227:21:3232 | call to use | self | +| UseUseExplosion.rb:21:3227:21:3232 | synthetic splat argument | UseUseExplosion.rb:21:3227:21:3232 | call to use | synthetic * | | UseUseExplosion.rb:21:3231:21:3231 | x | UseUseExplosion.rb:21:3227:21:3232 | call to use | position 0 | -| UseUseExplosion.rb:21:3243:21:3248 | * | UseUseExplosion.rb:21:3243:21:3248 | call to use | synthetic * | | UseUseExplosion.rb:21:3243:21:3248 | self | UseUseExplosion.rb:21:3243:21:3248 | call to use | self | +| UseUseExplosion.rb:21:3243:21:3248 | synthetic splat argument | UseUseExplosion.rb:21:3243:21:3248 | call to use | synthetic * | | UseUseExplosion.rb:21:3247:21:3247 | x | UseUseExplosion.rb:21:3243:21:3248 | call to use | position 0 | -| UseUseExplosion.rb:21:3259:21:3264 | * | UseUseExplosion.rb:21:3259:21:3264 | call to use | synthetic * | | UseUseExplosion.rb:21:3259:21:3264 | self | UseUseExplosion.rb:21:3259:21:3264 | call to use | self | +| UseUseExplosion.rb:21:3259:21:3264 | synthetic splat argument | UseUseExplosion.rb:21:3259:21:3264 | call to use | synthetic * | | UseUseExplosion.rb:21:3263:21:3263 | x | UseUseExplosion.rb:21:3259:21:3264 | call to use | position 0 | -| UseUseExplosion.rb:21:3275:21:3280 | * | UseUseExplosion.rb:21:3275:21:3280 | call to use | synthetic * | | UseUseExplosion.rb:21:3275:21:3280 | self | UseUseExplosion.rb:21:3275:21:3280 | call to use | self | +| UseUseExplosion.rb:21:3275:21:3280 | synthetic splat argument | UseUseExplosion.rb:21:3275:21:3280 | call to use | synthetic * | | UseUseExplosion.rb:21:3279:21:3279 | x | UseUseExplosion.rb:21:3275:21:3280 | call to use | position 0 | -| UseUseExplosion.rb:21:3291:21:3296 | * | UseUseExplosion.rb:21:3291:21:3296 | call to use | synthetic * | | UseUseExplosion.rb:21:3291:21:3296 | self | UseUseExplosion.rb:21:3291:21:3296 | call to use | self | +| UseUseExplosion.rb:21:3291:21:3296 | synthetic splat argument | UseUseExplosion.rb:21:3291:21:3296 | call to use | synthetic * | | UseUseExplosion.rb:21:3295:21:3295 | x | UseUseExplosion.rb:21:3291:21:3296 | call to use | position 0 | -| UseUseExplosion.rb:21:3307:21:3312 | * | UseUseExplosion.rb:21:3307:21:3312 | call to use | synthetic * | | UseUseExplosion.rb:21:3307:21:3312 | self | UseUseExplosion.rb:21:3307:21:3312 | call to use | self | +| UseUseExplosion.rb:21:3307:21:3312 | synthetic splat argument | UseUseExplosion.rb:21:3307:21:3312 | call to use | synthetic * | | UseUseExplosion.rb:21:3311:21:3311 | x | UseUseExplosion.rb:21:3307:21:3312 | call to use | position 0 | -| UseUseExplosion.rb:21:3323:21:3328 | * | UseUseExplosion.rb:21:3323:21:3328 | call to use | synthetic * | | UseUseExplosion.rb:21:3323:21:3328 | self | UseUseExplosion.rb:21:3323:21:3328 | call to use | self | +| UseUseExplosion.rb:21:3323:21:3328 | synthetic splat argument | UseUseExplosion.rb:21:3323:21:3328 | call to use | synthetic * | | UseUseExplosion.rb:21:3327:21:3327 | x | UseUseExplosion.rb:21:3323:21:3328 | call to use | position 0 | -| UseUseExplosion.rb:21:3339:21:3344 | * | UseUseExplosion.rb:21:3339:21:3344 | call to use | synthetic * | | UseUseExplosion.rb:21:3339:21:3344 | self | UseUseExplosion.rb:21:3339:21:3344 | call to use | self | +| UseUseExplosion.rb:21:3339:21:3344 | synthetic splat argument | UseUseExplosion.rb:21:3339:21:3344 | call to use | synthetic * | | UseUseExplosion.rb:21:3343:21:3343 | x | UseUseExplosion.rb:21:3339:21:3344 | call to use | position 0 | -| UseUseExplosion.rb:21:3355:21:3360 | * | UseUseExplosion.rb:21:3355:21:3360 | call to use | synthetic * | | UseUseExplosion.rb:21:3355:21:3360 | self | UseUseExplosion.rb:21:3355:21:3360 | call to use | self | +| UseUseExplosion.rb:21:3355:21:3360 | synthetic splat argument | UseUseExplosion.rb:21:3355:21:3360 | call to use | synthetic * | | UseUseExplosion.rb:21:3359:21:3359 | x | UseUseExplosion.rb:21:3355:21:3360 | call to use | position 0 | -| UseUseExplosion.rb:21:3371:21:3376 | * | UseUseExplosion.rb:21:3371:21:3376 | call to use | synthetic * | | UseUseExplosion.rb:21:3371:21:3376 | self | UseUseExplosion.rb:21:3371:21:3376 | call to use | self | +| UseUseExplosion.rb:21:3371:21:3376 | synthetic splat argument | UseUseExplosion.rb:21:3371:21:3376 | call to use | synthetic * | | UseUseExplosion.rb:21:3375:21:3375 | x | UseUseExplosion.rb:21:3371:21:3376 | call to use | position 0 | -| UseUseExplosion.rb:21:3387:21:3392 | * | UseUseExplosion.rb:21:3387:21:3392 | call to use | synthetic * | | UseUseExplosion.rb:21:3387:21:3392 | self | UseUseExplosion.rb:21:3387:21:3392 | call to use | self | +| UseUseExplosion.rb:21:3387:21:3392 | synthetic splat argument | UseUseExplosion.rb:21:3387:21:3392 | call to use | synthetic * | | UseUseExplosion.rb:21:3391:21:3391 | x | UseUseExplosion.rb:21:3387:21:3392 | call to use | position 0 | -| UseUseExplosion.rb:21:3403:21:3408 | * | UseUseExplosion.rb:21:3403:21:3408 | call to use | synthetic * | | UseUseExplosion.rb:21:3403:21:3408 | self | UseUseExplosion.rb:21:3403:21:3408 | call to use | self | +| UseUseExplosion.rb:21:3403:21:3408 | synthetic splat argument | UseUseExplosion.rb:21:3403:21:3408 | call to use | synthetic * | | UseUseExplosion.rb:21:3407:21:3407 | x | UseUseExplosion.rb:21:3403:21:3408 | call to use | position 0 | -| UseUseExplosion.rb:21:3419:21:3424 | * | UseUseExplosion.rb:21:3419:21:3424 | call to use | synthetic * | | UseUseExplosion.rb:21:3419:21:3424 | self | UseUseExplosion.rb:21:3419:21:3424 | call to use | self | +| UseUseExplosion.rb:21:3419:21:3424 | synthetic splat argument | UseUseExplosion.rb:21:3419:21:3424 | call to use | synthetic * | | UseUseExplosion.rb:21:3423:21:3423 | x | UseUseExplosion.rb:21:3419:21:3424 | call to use | position 0 | -| UseUseExplosion.rb:21:3435:21:3440 | * | UseUseExplosion.rb:21:3435:21:3440 | call to use | synthetic * | | UseUseExplosion.rb:21:3435:21:3440 | self | UseUseExplosion.rb:21:3435:21:3440 | call to use | self | +| UseUseExplosion.rb:21:3435:21:3440 | synthetic splat argument | UseUseExplosion.rb:21:3435:21:3440 | call to use | synthetic * | | UseUseExplosion.rb:21:3439:21:3439 | x | UseUseExplosion.rb:21:3435:21:3440 | call to use | position 0 | -| UseUseExplosion.rb:21:3451:21:3456 | * | UseUseExplosion.rb:21:3451:21:3456 | call to use | synthetic * | | UseUseExplosion.rb:21:3451:21:3456 | self | UseUseExplosion.rb:21:3451:21:3456 | call to use | self | +| UseUseExplosion.rb:21:3451:21:3456 | synthetic splat argument | UseUseExplosion.rb:21:3451:21:3456 | call to use | synthetic * | | UseUseExplosion.rb:21:3455:21:3455 | x | UseUseExplosion.rb:21:3451:21:3456 | call to use | position 0 | -| UseUseExplosion.rb:21:3467:21:3472 | * | UseUseExplosion.rb:21:3467:21:3472 | call to use | synthetic * | | UseUseExplosion.rb:21:3467:21:3472 | self | UseUseExplosion.rb:21:3467:21:3472 | call to use | self | +| UseUseExplosion.rb:21:3467:21:3472 | synthetic splat argument | UseUseExplosion.rb:21:3467:21:3472 | call to use | synthetic * | | UseUseExplosion.rb:21:3471:21:3471 | x | UseUseExplosion.rb:21:3467:21:3472 | call to use | position 0 | -| UseUseExplosion.rb:21:3483:21:3488 | * | UseUseExplosion.rb:21:3483:21:3488 | call to use | synthetic * | | UseUseExplosion.rb:21:3483:21:3488 | self | UseUseExplosion.rb:21:3483:21:3488 | call to use | self | +| UseUseExplosion.rb:21:3483:21:3488 | synthetic splat argument | UseUseExplosion.rb:21:3483:21:3488 | call to use | synthetic * | | UseUseExplosion.rb:21:3487:21:3487 | x | UseUseExplosion.rb:21:3483:21:3488 | call to use | position 0 | -| UseUseExplosion.rb:21:3499:21:3504 | * | UseUseExplosion.rb:21:3499:21:3504 | call to use | synthetic * | | UseUseExplosion.rb:21:3499:21:3504 | self | UseUseExplosion.rb:21:3499:21:3504 | call to use | self | +| UseUseExplosion.rb:21:3499:21:3504 | synthetic splat argument | UseUseExplosion.rb:21:3499:21:3504 | call to use | synthetic * | | UseUseExplosion.rb:21:3503:21:3503 | x | UseUseExplosion.rb:21:3499:21:3504 | call to use | position 0 | -| UseUseExplosion.rb:21:3515:21:3520 | * | UseUseExplosion.rb:21:3515:21:3520 | call to use | synthetic * | | UseUseExplosion.rb:21:3515:21:3520 | self | UseUseExplosion.rb:21:3515:21:3520 | call to use | self | +| UseUseExplosion.rb:21:3515:21:3520 | synthetic splat argument | UseUseExplosion.rb:21:3515:21:3520 | call to use | synthetic * | | UseUseExplosion.rb:21:3519:21:3519 | x | UseUseExplosion.rb:21:3515:21:3520 | call to use | position 0 | -| UseUseExplosion.rb:21:3531:21:3536 | * | UseUseExplosion.rb:21:3531:21:3536 | call to use | synthetic * | | UseUseExplosion.rb:21:3531:21:3536 | self | UseUseExplosion.rb:21:3531:21:3536 | call to use | self | +| UseUseExplosion.rb:21:3531:21:3536 | synthetic splat argument | UseUseExplosion.rb:21:3531:21:3536 | call to use | synthetic * | | UseUseExplosion.rb:21:3535:21:3535 | x | UseUseExplosion.rb:21:3531:21:3536 | call to use | position 0 | -| UseUseExplosion.rb:21:3547:21:3552 | * | UseUseExplosion.rb:21:3547:21:3552 | call to use | synthetic * | | UseUseExplosion.rb:21:3547:21:3552 | self | UseUseExplosion.rb:21:3547:21:3552 | call to use | self | +| UseUseExplosion.rb:21:3547:21:3552 | synthetic splat argument | UseUseExplosion.rb:21:3547:21:3552 | call to use | synthetic * | | UseUseExplosion.rb:21:3551:21:3551 | x | UseUseExplosion.rb:21:3547:21:3552 | call to use | position 0 | -| UseUseExplosion.rb:21:3563:21:3568 | * | UseUseExplosion.rb:21:3563:21:3568 | call to use | synthetic * | | UseUseExplosion.rb:21:3563:21:3568 | self | UseUseExplosion.rb:21:3563:21:3568 | call to use | self | +| UseUseExplosion.rb:21:3563:21:3568 | synthetic splat argument | UseUseExplosion.rb:21:3563:21:3568 | call to use | synthetic * | | UseUseExplosion.rb:21:3567:21:3567 | x | UseUseExplosion.rb:21:3563:21:3568 | call to use | position 0 | -| UseUseExplosion.rb:21:3579:21:3584 | * | UseUseExplosion.rb:21:3579:21:3584 | call to use | synthetic * | | UseUseExplosion.rb:21:3579:21:3584 | self | UseUseExplosion.rb:21:3579:21:3584 | call to use | self | +| UseUseExplosion.rb:21:3579:21:3584 | synthetic splat argument | UseUseExplosion.rb:21:3579:21:3584 | call to use | synthetic * | | UseUseExplosion.rb:21:3583:21:3583 | x | UseUseExplosion.rb:21:3579:21:3584 | call to use | position 0 | -| UseUseExplosion.rb:21:3595:21:3600 | * | UseUseExplosion.rb:21:3595:21:3600 | call to use | synthetic * | | UseUseExplosion.rb:21:3595:21:3600 | self | UseUseExplosion.rb:21:3595:21:3600 | call to use | self | +| UseUseExplosion.rb:21:3595:21:3600 | synthetic splat argument | UseUseExplosion.rb:21:3595:21:3600 | call to use | synthetic * | | UseUseExplosion.rb:21:3599:21:3599 | x | UseUseExplosion.rb:21:3595:21:3600 | call to use | position 0 | -| UseUseExplosion.rb:21:3611:21:3616 | * | UseUseExplosion.rb:21:3611:21:3616 | call to use | synthetic * | | UseUseExplosion.rb:21:3611:21:3616 | self | UseUseExplosion.rb:21:3611:21:3616 | call to use | self | +| UseUseExplosion.rb:21:3611:21:3616 | synthetic splat argument | UseUseExplosion.rb:21:3611:21:3616 | call to use | synthetic * | | UseUseExplosion.rb:21:3615:21:3615 | x | UseUseExplosion.rb:21:3611:21:3616 | call to use | position 0 | -| UseUseExplosion.rb:21:3627:21:3632 | * | UseUseExplosion.rb:21:3627:21:3632 | call to use | synthetic * | | UseUseExplosion.rb:21:3627:21:3632 | self | UseUseExplosion.rb:21:3627:21:3632 | call to use | self | +| UseUseExplosion.rb:21:3627:21:3632 | synthetic splat argument | UseUseExplosion.rb:21:3627:21:3632 | call to use | synthetic * | | UseUseExplosion.rb:21:3631:21:3631 | x | UseUseExplosion.rb:21:3627:21:3632 | call to use | position 0 | -| UseUseExplosion.rb:21:3643:21:3648 | * | UseUseExplosion.rb:21:3643:21:3648 | call to use | synthetic * | | UseUseExplosion.rb:21:3643:21:3648 | self | UseUseExplosion.rb:21:3643:21:3648 | call to use | self | +| UseUseExplosion.rb:21:3643:21:3648 | synthetic splat argument | UseUseExplosion.rb:21:3643:21:3648 | call to use | synthetic * | | UseUseExplosion.rb:21:3647:21:3647 | x | UseUseExplosion.rb:21:3643:21:3648 | call to use | position 0 | -| UseUseExplosion.rb:21:3659:21:3664 | * | UseUseExplosion.rb:21:3659:21:3664 | call to use | synthetic * | | UseUseExplosion.rb:21:3659:21:3664 | self | UseUseExplosion.rb:21:3659:21:3664 | call to use | self | +| UseUseExplosion.rb:21:3659:21:3664 | synthetic splat argument | UseUseExplosion.rb:21:3659:21:3664 | call to use | synthetic * | | UseUseExplosion.rb:21:3663:21:3663 | x | UseUseExplosion.rb:21:3659:21:3664 | call to use | position 0 | -| UseUseExplosion.rb:21:3675:21:3680 | * | UseUseExplosion.rb:21:3675:21:3680 | call to use | synthetic * | | UseUseExplosion.rb:21:3675:21:3680 | self | UseUseExplosion.rb:21:3675:21:3680 | call to use | self | +| UseUseExplosion.rb:21:3675:21:3680 | synthetic splat argument | UseUseExplosion.rb:21:3675:21:3680 | call to use | synthetic * | | UseUseExplosion.rb:21:3679:21:3679 | x | UseUseExplosion.rb:21:3675:21:3680 | call to use | position 0 | -| UseUseExplosion.rb:21:3691:21:3696 | * | UseUseExplosion.rb:21:3691:21:3696 | call to use | synthetic * | | UseUseExplosion.rb:21:3691:21:3696 | self | UseUseExplosion.rb:21:3691:21:3696 | call to use | self | +| UseUseExplosion.rb:21:3691:21:3696 | synthetic splat argument | UseUseExplosion.rb:21:3691:21:3696 | call to use | synthetic * | | UseUseExplosion.rb:21:3695:21:3695 | x | UseUseExplosion.rb:21:3691:21:3696 | call to use | position 0 | -| local_dataflow.rb:3:8:3:10 | * | local_dataflow.rb:3:8:3:10 | call to p | synthetic * | | local_dataflow.rb:3:8:3:10 | self | local_dataflow.rb:3:8:3:10 | call to p | self | +| local_dataflow.rb:3:8:3:10 | synthetic splat argument | local_dataflow.rb:3:8:3:10 | call to p | synthetic * | | local_dataflow.rb:3:10:3:10 | a | local_dataflow.rb:3:8:3:10 | call to p | position 0 | | local_dataflow.rb:6:8:6:8 | a | local_dataflow.rb:6:10:6:11 | ... + ... | self | -| local_dataflow.rb:6:10:6:11 | * | local_dataflow.rb:6:10:6:11 | ... + ... | synthetic * | +| local_dataflow.rb:6:10:6:11 | synthetic splat argument | local_dataflow.rb:6:10:6:11 | ... + ... | synthetic * | | local_dataflow.rb:6:13:6:13 | b | local_dataflow.rb:6:10:6:11 | ... + ... | position 0 | -| local_dataflow.rb:9:9:9:15 | * | local_dataflow.rb:9:9:9:15 | call to [] | synthetic * | | local_dataflow.rb:9:9:9:15 | Array | local_dataflow.rb:9:9:9:15 | call to [] | self | +| local_dataflow.rb:9:9:9:15 | synthetic splat argument | local_dataflow.rb:9:9:9:15 | call to [] | synthetic * | | local_dataflow.rb:9:10:9:10 | 1 | local_dataflow.rb:9:9:9:15 | call to [] | position 0 | | local_dataflow.rb:9:12:9:12 | 2 | local_dataflow.rb:9:9:9:15 | call to [] | position 1 | | local_dataflow.rb:9:14:9:14 | 3 | local_dataflow.rb:9:9:9:15 | call to [] | position 2 | -| local_dataflow.rb:10:5:13:3 | * | local_dataflow.rb:10:5:13:3 | call to each | synthetic * | +| local_dataflow.rb:10:5:13:3 | synthetic splat argument | local_dataflow.rb:10:5:13:3 | call to each | synthetic * | | local_dataflow.rb:10:5:13:3 | { ... } | local_dataflow.rb:10:5:13:3 | call to each | block | -| local_dataflow.rb:10:9:10:9 | * | local_dataflow.rb:10:9:10:9 | [false] ! ... | synthetic * | -| local_dataflow.rb:10:9:10:9 | * | local_dataflow.rb:10:9:10:9 | [true] ! ... | synthetic * | -| local_dataflow.rb:10:9:10:9 | * | local_dataflow.rb:10:9:10:9 | defined? ... | synthetic * | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [false] ! ... | self | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [true] ! ... | self | +| local_dataflow.rb:10:9:10:9 | synthetic splat argument | local_dataflow.rb:10:9:10:9 | [false] ! ... | synthetic * | +| local_dataflow.rb:10:9:10:9 | synthetic splat argument | local_dataflow.rb:10:9:10:9 | [true] ! ... | synthetic * | +| local_dataflow.rb:10:9:10:9 | synthetic splat argument | local_dataflow.rb:10:9:10:9 | defined? ... | synthetic * | | local_dataflow.rb:10:9:10:9 | x | local_dataflow.rb:10:9:10:9 | defined? ... | self | | local_dataflow.rb:10:14:10:18 | array | local_dataflow.rb:10:5:13:3 | call to each | self | -| local_dataflow.rb:11:1:11:2 | * | local_dataflow.rb:11:1:11:2 | call to do | synthetic * | | local_dataflow.rb:11:1:11:2 | self | local_dataflow.rb:11:1:11:2 | call to do | self | -| local_dataflow.rb:12:3:12:5 | * | local_dataflow.rb:12:3:12:5 | call to p | synthetic * | +| local_dataflow.rb:11:1:11:2 | synthetic splat argument | local_dataflow.rb:11:1:11:2 | call to do | synthetic * | | local_dataflow.rb:12:3:12:5 | self | local_dataflow.rb:12:3:12:5 | call to p | self | +| local_dataflow.rb:12:3:12:5 | synthetic splat argument | local_dataflow.rb:12:3:12:5 | call to p | synthetic * | | local_dataflow.rb:12:5:12:5 | x | local_dataflow.rb:12:3:12:5 | call to p | position 0 | -| local_dataflow.rb:15:1:17:3 | * | local_dataflow.rb:15:1:17:3 | call to each | synthetic * | +| local_dataflow.rb:15:1:17:3 | synthetic splat argument | local_dataflow.rb:15:1:17:3 | call to each | synthetic * | | local_dataflow.rb:15:1:17:3 | { ... } | local_dataflow.rb:15:1:17:3 | call to each | block | -| local_dataflow.rb:15:5:15:5 | * | local_dataflow.rb:15:5:15:5 | [false] ! ... | synthetic * | -| local_dataflow.rb:15:5:15:5 | * | local_dataflow.rb:15:5:15:5 | [true] ! ... | synthetic * | -| local_dataflow.rb:15:5:15:5 | * | local_dataflow.rb:15:5:15:5 | defined? ... | synthetic * | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [false] ! ... | self | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [true] ! ... | self | +| local_dataflow.rb:15:5:15:5 | synthetic splat argument | local_dataflow.rb:15:5:15:5 | [false] ! ... | synthetic * | +| local_dataflow.rb:15:5:15:5 | synthetic splat argument | local_dataflow.rb:15:5:15:5 | [true] ! ... | synthetic * | +| local_dataflow.rb:15:5:15:5 | synthetic splat argument | local_dataflow.rb:15:5:15:5 | defined? ... | synthetic * | | local_dataflow.rb:15:5:15:5 | x | local_dataflow.rb:15:5:15:5 | defined? ... | self | | local_dataflow.rb:15:10:15:14 | array | local_dataflow.rb:15:1:17:3 | call to each | self | -| local_dataflow.rb:19:1:21:3 | * | local_dataflow.rb:19:1:21:3 | call to each | synthetic * | +| local_dataflow.rb:19:1:21:3 | synthetic splat argument | local_dataflow.rb:19:1:21:3 | call to each | synthetic * | | local_dataflow.rb:19:1:21:3 | { ... } | local_dataflow.rb:19:1:21:3 | call to each | block | -| local_dataflow.rb:19:5:19:5 | * | local_dataflow.rb:19:5:19:5 | [false] ! ... | synthetic * | -| local_dataflow.rb:19:5:19:5 | * | local_dataflow.rb:19:5:19:5 | [true] ! ... | synthetic * | -| local_dataflow.rb:19:5:19:5 | * | local_dataflow.rb:19:5:19:5 | defined? ... | synthetic * | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [false] ! ... | self | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [true] ! ... | self | +| local_dataflow.rb:19:5:19:5 | synthetic splat argument | local_dataflow.rb:19:5:19:5 | [false] ! ... | synthetic * | +| local_dataflow.rb:19:5:19:5 | synthetic splat argument | local_dataflow.rb:19:5:19:5 | [true] ! ... | synthetic * | +| local_dataflow.rb:19:5:19:5 | synthetic splat argument | local_dataflow.rb:19:5:19:5 | defined? ... | synthetic * | | local_dataflow.rb:19:5:19:5 | x | local_dataflow.rb:19:5:19:5 | defined? ... | self | | local_dataflow.rb:19:10:19:14 | array | local_dataflow.rb:19:1:21:3 | call to each | self | | local_dataflow.rb:20:6:20:6 | x | local_dataflow.rb:20:6:20:10 | ... > ... | self | -| local_dataflow.rb:20:6:20:10 | * | local_dataflow.rb:20:6:20:10 | ... > ... | synthetic * | +| local_dataflow.rb:20:6:20:10 | synthetic splat argument | local_dataflow.rb:20:6:20:10 | ... > ... | synthetic * | | local_dataflow.rb:20:10:20:10 | 1 | local_dataflow.rb:20:6:20:10 | ... > ... | position 0 | | local_dataflow.rb:35:6:35:6 | x | local_dataflow.rb:35:6:35:11 | ... == ... | self | -| local_dataflow.rb:35:6:35:11 | * | local_dataflow.rb:35:6:35:11 | ... == ... | synthetic * | +| local_dataflow.rb:35:6:35:11 | synthetic splat argument | local_dataflow.rb:35:6:35:11 | ... == ... | synthetic * | | local_dataflow.rb:35:11:35:11 | 4 | local_dataflow.rb:35:6:35:11 | ... == ... | position 0 | | local_dataflow.rb:42:6:42:6 | x | local_dataflow.rb:42:6:42:11 | ... == ... | self | -| local_dataflow.rb:42:6:42:11 | * | local_dataflow.rb:42:6:42:11 | ... == ... | synthetic * | +| local_dataflow.rb:42:6:42:11 | synthetic splat argument | local_dataflow.rb:42:6:42:11 | ... == ... | synthetic * | | local_dataflow.rb:42:11:42:11 | 4 | local_dataflow.rb:42:6:42:11 | ... == ... | position 0 | -| local_dataflow.rb:49:1:53:3 | * | local_dataflow.rb:49:1:53:3 | call to m | synthetic * | | local_dataflow.rb:49:1:53:3 | self | local_dataflow.rb:49:1:53:3 | call to m | self | +| local_dataflow.rb:49:1:53:3 | synthetic splat argument | local_dataflow.rb:49:1:53:3 | call to m | synthetic * | | local_dataflow.rb:49:3:53:3 | do ... end | local_dataflow.rb:49:1:53:3 | call to m | block | | local_dataflow.rb:50:18:50:18 | x | local_dataflow.rb:50:18:50:22 | ... < ... | self | -| local_dataflow.rb:50:18:50:22 | * | local_dataflow.rb:50:18:50:22 | ... < ... | synthetic * | +| local_dataflow.rb:50:18:50:22 | synthetic splat argument | local_dataflow.rb:50:18:50:22 | ... < ... | synthetic * | | local_dataflow.rb:50:22:50:22 | 4 | local_dataflow.rb:50:18:50:22 | ... < ... | position 0 | | local_dataflow.rb:51:20:51:20 | x | local_dataflow.rb:51:20:51:24 | ... < ... | self | -| local_dataflow.rb:51:20:51:24 | * | local_dataflow.rb:51:20:51:24 | ... < ... | synthetic * | +| local_dataflow.rb:51:20:51:24 | synthetic splat argument | local_dataflow.rb:51:20:51:24 | ... < ... | synthetic * | | local_dataflow.rb:51:24:51:24 | 9 | local_dataflow.rb:51:20:51:24 | ... < ... | position 0 | -| local_dataflow.rb:55:1:55:14 | * | local_dataflow.rb:55:1:55:14 | call to foo | synthetic * | | local_dataflow.rb:55:1:55:14 | self | local_dataflow.rb:55:1:55:14 | call to foo | self | -| local_dataflow.rb:55:5:55:13 | * | local_dataflow.rb:55:5:55:13 | call to [] | synthetic * | +| local_dataflow.rb:55:1:55:14 | synthetic splat argument | local_dataflow.rb:55:1:55:14 | call to foo | synthetic * | | local_dataflow.rb:55:5:55:13 | Array | local_dataflow.rb:55:5:55:13 | call to [] | self | | local_dataflow.rb:55:5:55:13 | call to [] | local_dataflow.rb:55:1:55:14 | call to foo | position 0 | +| local_dataflow.rb:55:5:55:13 | synthetic splat argument | local_dataflow.rb:55:5:55:13 | call to [] | synthetic * | | local_dataflow.rb:55:6:55:6 | 1 | local_dataflow.rb:55:5:55:13 | call to [] | position 0 | | local_dataflow.rb:55:9:55:9 | 2 | local_dataflow.rb:55:5:55:13 | call to [] | position 1 | | local_dataflow.rb:55:12:55:12 | 3 | local_dataflow.rb:55:5:55:13 | call to [] | position 2 | -| local_dataflow.rb:78:12:78:20 | * | local_dataflow.rb:78:12:78:20 | call to source | synthetic * | | local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:78:12:78:20 | call to source | self | +| local_dataflow.rb:78:12:78:20 | synthetic splat argument | local_dataflow.rb:78:12:78:20 | call to source | synthetic * | | local_dataflow.rb:78:19:78:19 | 1 | local_dataflow.rb:78:12:78:20 | call to source | position 0 | -| local_dataflow.rb:79:20:79:26 | * | local_dataflow.rb:79:20:79:26 | call to sink | synthetic * | | local_dataflow.rb:79:20:79:26 | self | local_dataflow.rb:79:20:79:26 | call to sink | self | +| local_dataflow.rb:79:20:79:26 | synthetic splat argument | local_dataflow.rb:79:20:79:26 | call to sink | synthetic * | | local_dataflow.rb:79:25:79:25 | b | local_dataflow.rb:79:20:79:26 | call to sink | position 0 | | local_dataflow.rb:80:13:80:13 | a | local_dataflow.rb:80:13:80:17 | ... > ... | self | -| local_dataflow.rb:80:13:80:17 | * | local_dataflow.rb:80:13:80:17 | ... > ... | synthetic * | +| local_dataflow.rb:80:13:80:17 | synthetic splat argument | local_dataflow.rb:80:13:80:17 | ... > ... | synthetic * | | local_dataflow.rb:80:17:80:17 | 0 | local_dataflow.rb:80:13:80:17 | ... > ... | position 0 | -| local_dataflow.rb:80:24:80:30 | * | local_dataflow.rb:80:24:80:30 | call to sink | synthetic * | | local_dataflow.rb:80:24:80:30 | self | local_dataflow.rb:80:24:80:30 | call to sink | self | +| local_dataflow.rb:80:24:80:30 | synthetic splat argument | local_dataflow.rb:80:24:80:30 | call to sink | synthetic * | | local_dataflow.rb:80:29:80:29 | a | local_dataflow.rb:80:24:80:30 | call to sink | position 0 | -| local_dataflow.rb:81:25:84:14 | * | local_dataflow.rb:81:25:84:14 | call to [] | synthetic * | | local_dataflow.rb:81:25:84:14 | Array | local_dataflow.rb:81:25:84:14 | call to [] | self | -| local_dataflow.rb:82:7:82:13 | * | local_dataflow.rb:82:7:82:13 | call to sink | synthetic * | +| local_dataflow.rb:81:25:84:14 | synthetic splat argument | local_dataflow.rb:81:25:84:14 | call to [] | synthetic * | | local_dataflow.rb:82:7:82:13 | call to sink | local_dataflow.rb:81:25:84:14 | call to [] | position 0 | | local_dataflow.rb:82:7:82:13 | self | local_dataflow.rb:82:7:82:13 | call to sink | self | +| local_dataflow.rb:82:7:82:13 | synthetic splat argument | local_dataflow.rb:82:7:82:13 | call to sink | synthetic * | | local_dataflow.rb:82:12:82:12 | c | local_dataflow.rb:82:7:82:13 | call to sink | position 0 | -| local_dataflow.rb:83:7:83:13 | * | local_dataflow.rb:83:7:83:13 | call to sink | synthetic * | | local_dataflow.rb:83:7:83:13 | call to sink | local_dataflow.rb:81:25:84:14 | call to [] | position 1 | | local_dataflow.rb:83:7:83:13 | self | local_dataflow.rb:83:7:83:13 | call to sink | self | +| local_dataflow.rb:83:7:83:13 | synthetic splat argument | local_dataflow.rb:83:7:83:13 | call to sink | synthetic * | | local_dataflow.rb:83:12:83:12 | d | local_dataflow.rb:83:7:83:13 | call to sink | position 0 | -| local_dataflow.rb:84:7:84:13 | * | local_dataflow.rb:84:7:84:13 | call to sink | synthetic * | | local_dataflow.rb:84:7:84:13 | call to sink | local_dataflow.rb:81:25:84:14 | call to [] | position 2 | | local_dataflow.rb:84:7:84:13 | self | local_dataflow.rb:84:7:84:13 | call to sink | self | +| local_dataflow.rb:84:7:84:13 | synthetic splat argument | local_dataflow.rb:84:7:84:13 | call to sink | synthetic * | | local_dataflow.rb:84:12:84:12 | e | local_dataflow.rb:84:7:84:13 | call to sink | position 0 | -| local_dataflow.rb:85:22:85:28 | * | local_dataflow.rb:85:22:85:28 | call to sink | synthetic * | | local_dataflow.rb:85:22:85:28 | self | local_dataflow.rb:85:22:85:28 | call to sink | self | +| local_dataflow.rb:85:22:85:28 | synthetic splat argument | local_dataflow.rb:85:22:85:28 | call to sink | synthetic * | | local_dataflow.rb:85:27:85:27 | f | local_dataflow.rb:85:22:85:28 | call to sink | position 0 | -| local_dataflow.rb:86:28:86:34 | * | local_dataflow.rb:86:28:86:34 | call to sink | synthetic * | | local_dataflow.rb:86:28:86:34 | self | local_dataflow.rb:86:28:86:34 | call to sink | self | +| local_dataflow.rb:86:28:86:34 | synthetic splat argument | local_dataflow.rb:86:28:86:34 | call to sink | synthetic * | | local_dataflow.rb:86:33:86:33 | g | local_dataflow.rb:86:28:86:34 | call to sink | position 0 | -| local_dataflow.rb:87:20:87:26 | * | local_dataflow.rb:87:20:87:26 | call to sink | synthetic * | | local_dataflow.rb:87:20:87:26 | self | local_dataflow.rb:87:20:87:26 | call to sink | self | +| local_dataflow.rb:87:20:87:26 | synthetic splat argument | local_dataflow.rb:87:20:87:26 | call to sink | synthetic * | | local_dataflow.rb:87:25:87:25 | x | local_dataflow.rb:87:20:87:26 | call to sink | position 0 | -| local_dataflow.rb:89:3:89:9 | * | local_dataflow.rb:89:3:89:9 | call to sink | synthetic * | | local_dataflow.rb:89:3:89:9 | self | local_dataflow.rb:89:3:89:9 | call to sink | self | +| local_dataflow.rb:89:3:89:9 | synthetic splat argument | local_dataflow.rb:89:3:89:9 | call to sink | synthetic * | | local_dataflow.rb:89:8:89:8 | z | local_dataflow.rb:89:3:89:9 | call to sink | position 0 | -| local_dataflow.rb:93:7:93:15 | * | local_dataflow.rb:93:7:93:15 | call to source | synthetic * | | local_dataflow.rb:93:7:93:15 | call to source | local_dataflow.rb:93:7:93:28 | ... \|\| ... | self | | local_dataflow.rb:93:7:93:15 | self | local_dataflow.rb:93:7:93:15 | call to source | self | -| local_dataflow.rb:93:7:93:28 | * | local_dataflow.rb:93:7:93:28 | ... \|\| ... | synthetic * | +| local_dataflow.rb:93:7:93:15 | synthetic splat argument | local_dataflow.rb:93:7:93:15 | call to source | synthetic * | +| local_dataflow.rb:93:7:93:28 | synthetic splat argument | local_dataflow.rb:93:7:93:28 | ... \|\| ... | synthetic * | | local_dataflow.rb:93:14:93:14 | 1 | local_dataflow.rb:93:7:93:15 | call to source | position 0 | -| local_dataflow.rb:93:20:93:28 | * | local_dataflow.rb:93:20:93:28 | call to source | synthetic * | | local_dataflow.rb:93:20:93:28 | call to source | local_dataflow.rb:93:7:93:28 | ... \|\| ... | position 0 | | local_dataflow.rb:93:20:93:28 | self | local_dataflow.rb:93:20:93:28 | call to source | self | +| local_dataflow.rb:93:20:93:28 | synthetic splat argument | local_dataflow.rb:93:20:93:28 | call to source | synthetic * | | local_dataflow.rb:93:27:93:27 | 2 | local_dataflow.rb:93:20:93:28 | call to source | position 0 | -| local_dataflow.rb:94:3:94:9 | * | local_dataflow.rb:94:3:94:9 | call to sink | synthetic * | | local_dataflow.rb:94:3:94:9 | self | local_dataflow.rb:94:3:94:9 | call to sink | self | +| local_dataflow.rb:94:3:94:9 | synthetic splat argument | local_dataflow.rb:94:3:94:9 | call to sink | synthetic * | | local_dataflow.rb:94:8:94:8 | a | local_dataflow.rb:94:3:94:9 | call to sink | position 0 | -| local_dataflow.rb:95:8:95:16 | * | local_dataflow.rb:95:8:95:16 | call to source | synthetic * | | local_dataflow.rb:95:8:95:16 | call to source | local_dataflow.rb:95:8:95:29 | ... or ... | self | | local_dataflow.rb:95:8:95:16 | self | local_dataflow.rb:95:8:95:16 | call to source | self | -| local_dataflow.rb:95:8:95:29 | * | local_dataflow.rb:95:8:95:29 | ... or ... | synthetic * | +| local_dataflow.rb:95:8:95:16 | synthetic splat argument | local_dataflow.rb:95:8:95:16 | call to source | synthetic * | +| local_dataflow.rb:95:8:95:29 | synthetic splat argument | local_dataflow.rb:95:8:95:29 | ... or ... | synthetic * | | local_dataflow.rb:95:15:95:15 | 1 | local_dataflow.rb:95:8:95:16 | call to source | position 0 | -| local_dataflow.rb:95:21:95:29 | * | local_dataflow.rb:95:21:95:29 | call to source | synthetic * | | local_dataflow.rb:95:21:95:29 | call to source | local_dataflow.rb:95:8:95:29 | ... or ... | position 0 | | local_dataflow.rb:95:21:95:29 | self | local_dataflow.rb:95:21:95:29 | call to source | self | +| local_dataflow.rb:95:21:95:29 | synthetic splat argument | local_dataflow.rb:95:21:95:29 | call to source | synthetic * | | local_dataflow.rb:95:28:95:28 | 2 | local_dataflow.rb:95:21:95:29 | call to source | position 0 | -| local_dataflow.rb:96:3:96:9 | * | local_dataflow.rb:96:3:96:9 | call to sink | synthetic * | | local_dataflow.rb:96:3:96:9 | self | local_dataflow.rb:96:3:96:9 | call to sink | self | +| local_dataflow.rb:96:3:96:9 | synthetic splat argument | local_dataflow.rb:96:3:96:9 | call to sink | synthetic * | | local_dataflow.rb:96:8:96:8 | b | local_dataflow.rb:96:3:96:9 | call to sink | position 0 | -| local_dataflow.rb:98:7:98:15 | * | local_dataflow.rb:98:7:98:15 | call to source | synthetic * | | local_dataflow.rb:98:7:98:15 | call to source | local_dataflow.rb:98:7:98:28 | ... && ... | self | | local_dataflow.rb:98:7:98:15 | self | local_dataflow.rb:98:7:98:15 | call to source | self | -| local_dataflow.rb:98:7:98:28 | * | local_dataflow.rb:98:7:98:28 | ... && ... | synthetic * | +| local_dataflow.rb:98:7:98:15 | synthetic splat argument | local_dataflow.rb:98:7:98:15 | call to source | synthetic * | +| local_dataflow.rb:98:7:98:28 | synthetic splat argument | local_dataflow.rb:98:7:98:28 | ... && ... | synthetic * | | local_dataflow.rb:98:14:98:14 | 1 | local_dataflow.rb:98:7:98:15 | call to source | position 0 | -| local_dataflow.rb:98:20:98:28 | * | local_dataflow.rb:98:20:98:28 | call to source | synthetic * | | local_dataflow.rb:98:20:98:28 | call to source | local_dataflow.rb:98:7:98:28 | ... && ... | position 0 | | local_dataflow.rb:98:20:98:28 | self | local_dataflow.rb:98:20:98:28 | call to source | self | +| local_dataflow.rb:98:20:98:28 | synthetic splat argument | local_dataflow.rb:98:20:98:28 | call to source | synthetic * | | local_dataflow.rb:98:27:98:27 | 2 | local_dataflow.rb:98:20:98:28 | call to source | position 0 | -| local_dataflow.rb:99:3:99:9 | * | local_dataflow.rb:99:3:99:9 | call to sink | synthetic * | | local_dataflow.rb:99:3:99:9 | self | local_dataflow.rb:99:3:99:9 | call to sink | self | +| local_dataflow.rb:99:3:99:9 | synthetic splat argument | local_dataflow.rb:99:3:99:9 | call to sink | synthetic * | | local_dataflow.rb:99:8:99:8 | a | local_dataflow.rb:99:3:99:9 | call to sink | position 0 | -| local_dataflow.rb:100:8:100:16 | * | local_dataflow.rb:100:8:100:16 | call to source | synthetic * | | local_dataflow.rb:100:8:100:16 | call to source | local_dataflow.rb:100:8:100:30 | ... and ... | self | | local_dataflow.rb:100:8:100:16 | self | local_dataflow.rb:100:8:100:16 | call to source | self | -| local_dataflow.rb:100:8:100:30 | * | local_dataflow.rb:100:8:100:30 | ... and ... | synthetic * | +| local_dataflow.rb:100:8:100:16 | synthetic splat argument | local_dataflow.rb:100:8:100:16 | call to source | synthetic * | +| local_dataflow.rb:100:8:100:30 | synthetic splat argument | local_dataflow.rb:100:8:100:30 | ... and ... | synthetic * | | local_dataflow.rb:100:15:100:15 | 1 | local_dataflow.rb:100:8:100:16 | call to source | position 0 | -| local_dataflow.rb:100:22:100:30 | * | local_dataflow.rb:100:22:100:30 | call to source | synthetic * | | local_dataflow.rb:100:22:100:30 | call to source | local_dataflow.rb:100:8:100:30 | ... and ... | position 0 | | local_dataflow.rb:100:22:100:30 | self | local_dataflow.rb:100:22:100:30 | call to source | self | +| local_dataflow.rb:100:22:100:30 | synthetic splat argument | local_dataflow.rb:100:22:100:30 | call to source | synthetic * | | local_dataflow.rb:100:29:100:29 | 2 | local_dataflow.rb:100:22:100:30 | call to source | position 0 | -| local_dataflow.rb:101:3:101:9 | * | local_dataflow.rb:101:3:101:9 | call to sink | synthetic * | | local_dataflow.rb:101:3:101:9 | self | local_dataflow.rb:101:3:101:9 | call to sink | self | +| local_dataflow.rb:101:3:101:9 | synthetic splat argument | local_dataflow.rb:101:3:101:9 | call to sink | synthetic * | | local_dataflow.rb:101:8:101:8 | b | local_dataflow.rb:101:3:101:9 | call to sink | position 0 | -| local_dataflow.rb:103:7:103:15 | * | local_dataflow.rb:103:7:103:15 | call to source | synthetic * | | local_dataflow.rb:103:7:103:15 | self | local_dataflow.rb:103:7:103:15 | call to source | self | +| local_dataflow.rb:103:7:103:15 | synthetic splat argument | local_dataflow.rb:103:7:103:15 | call to source | synthetic * | | local_dataflow.rb:103:14:103:14 | 5 | local_dataflow.rb:103:7:103:15 | call to source | position 0 | | local_dataflow.rb:104:3:104:3 | a | local_dataflow.rb:104:5:104:7 | ... \|\| ... | self | -| local_dataflow.rb:104:5:104:7 | * | local_dataflow.rb:104:5:104:7 | ... \|\| ... | synthetic * | -| local_dataflow.rb:104:9:104:17 | * | local_dataflow.rb:104:9:104:17 | call to source | synthetic * | +| local_dataflow.rb:104:5:104:7 | synthetic splat argument | local_dataflow.rb:104:5:104:7 | ... \|\| ... | synthetic * | | local_dataflow.rb:104:9:104:17 | call to source | local_dataflow.rb:104:5:104:7 | ... \|\| ... | position 0 | | local_dataflow.rb:104:9:104:17 | self | local_dataflow.rb:104:9:104:17 | call to source | self | +| local_dataflow.rb:104:9:104:17 | synthetic splat argument | local_dataflow.rb:104:9:104:17 | call to source | synthetic * | | local_dataflow.rb:104:16:104:16 | 6 | local_dataflow.rb:104:9:104:17 | call to source | position 0 | -| local_dataflow.rb:105:3:105:9 | * | local_dataflow.rb:105:3:105:9 | call to sink | synthetic * | | local_dataflow.rb:105:3:105:9 | self | local_dataflow.rb:105:3:105:9 | call to sink | self | +| local_dataflow.rb:105:3:105:9 | synthetic splat argument | local_dataflow.rb:105:3:105:9 | call to sink | synthetic * | | local_dataflow.rb:105:8:105:8 | a | local_dataflow.rb:105:3:105:9 | call to sink | position 0 | -| local_dataflow.rb:106:7:106:15 | * | local_dataflow.rb:106:7:106:15 | call to source | synthetic * | | local_dataflow.rb:106:7:106:15 | self | local_dataflow.rb:106:7:106:15 | call to source | self | +| local_dataflow.rb:106:7:106:15 | synthetic splat argument | local_dataflow.rb:106:7:106:15 | call to source | synthetic * | | local_dataflow.rb:106:14:106:14 | 7 | local_dataflow.rb:106:7:106:15 | call to source | position 0 | | local_dataflow.rb:107:3:107:3 | b | local_dataflow.rb:107:5:107:7 | ... && ... | self | -| local_dataflow.rb:107:5:107:7 | * | local_dataflow.rb:107:5:107:7 | ... && ... | synthetic * | -| local_dataflow.rb:107:9:107:17 | * | local_dataflow.rb:107:9:107:17 | call to source | synthetic * | +| local_dataflow.rb:107:5:107:7 | synthetic splat argument | local_dataflow.rb:107:5:107:7 | ... && ... | synthetic * | | local_dataflow.rb:107:9:107:17 | call to source | local_dataflow.rb:107:5:107:7 | ... && ... | position 0 | | local_dataflow.rb:107:9:107:17 | self | local_dataflow.rb:107:9:107:17 | call to source | self | +| local_dataflow.rb:107:9:107:17 | synthetic splat argument | local_dataflow.rb:107:9:107:17 | call to source | synthetic * | | local_dataflow.rb:107:16:107:16 | 8 | local_dataflow.rb:107:9:107:17 | call to source | position 0 | -| local_dataflow.rb:108:3:108:9 | * | local_dataflow.rb:108:3:108:9 | call to sink | synthetic * | | local_dataflow.rb:108:3:108:9 | self | local_dataflow.rb:108:3:108:9 | call to sink | self | +| local_dataflow.rb:108:3:108:9 | synthetic splat argument | local_dataflow.rb:108:3:108:9 | call to sink | synthetic * | | local_dataflow.rb:108:8:108:8 | b | local_dataflow.rb:108:3:108:9 | call to sink | position 0 | -| local_dataflow.rb:112:3:112:21 | * | local_dataflow.rb:112:3:112:21 | call to sink | synthetic * | | local_dataflow.rb:112:3:112:21 | self | local_dataflow.rb:112:3:112:21 | call to sink | self | -| local_dataflow.rb:112:8:112:16 | * | local_dataflow.rb:112:8:112:16 | call to source | synthetic * | +| local_dataflow.rb:112:3:112:21 | synthetic splat argument | local_dataflow.rb:112:3:112:21 | call to sink | synthetic * | | local_dataflow.rb:112:8:112:16 | call to source | local_dataflow.rb:112:8:112:20 | call to dup | self | | local_dataflow.rb:112:8:112:16 | self | local_dataflow.rb:112:8:112:16 | call to source | self | -| local_dataflow.rb:112:8:112:20 | * | local_dataflow.rb:112:8:112:20 | call to dup | synthetic * | +| local_dataflow.rb:112:8:112:16 | synthetic splat argument | local_dataflow.rb:112:8:112:16 | call to source | synthetic * | | local_dataflow.rb:112:8:112:20 | call to dup | local_dataflow.rb:112:3:112:21 | call to sink | position 0 | +| local_dataflow.rb:112:8:112:20 | synthetic splat argument | local_dataflow.rb:112:8:112:20 | call to dup | synthetic * | | local_dataflow.rb:112:15:112:15 | 1 | local_dataflow.rb:112:8:112:16 | call to source | position 0 | -| local_dataflow.rb:113:3:113:25 | * | local_dataflow.rb:113:3:113:25 | call to sink | synthetic * | | local_dataflow.rb:113:3:113:25 | self | local_dataflow.rb:113:3:113:25 | call to sink | self | -| local_dataflow.rb:113:8:113:16 | * | local_dataflow.rb:113:8:113:16 | call to source | synthetic * | +| local_dataflow.rb:113:3:113:25 | synthetic splat argument | local_dataflow.rb:113:3:113:25 | call to sink | synthetic * | | local_dataflow.rb:113:8:113:16 | call to source | local_dataflow.rb:113:8:113:20 | call to dup | self | | local_dataflow.rb:113:8:113:16 | self | local_dataflow.rb:113:8:113:16 | call to source | self | -| local_dataflow.rb:113:8:113:20 | * | local_dataflow.rb:113:8:113:20 | call to dup | synthetic * | +| local_dataflow.rb:113:8:113:16 | synthetic splat argument | local_dataflow.rb:113:8:113:16 | call to source | synthetic * | | local_dataflow.rb:113:8:113:20 | call to dup | local_dataflow.rb:113:8:113:24 | call to dup | self | -| local_dataflow.rb:113:8:113:24 | * | local_dataflow.rb:113:8:113:24 | call to dup | synthetic * | +| local_dataflow.rb:113:8:113:20 | synthetic splat argument | local_dataflow.rb:113:8:113:20 | call to dup | synthetic * | | local_dataflow.rb:113:8:113:24 | call to dup | local_dataflow.rb:113:3:113:25 | call to sink | position 0 | +| local_dataflow.rb:113:8:113:24 | synthetic splat argument | local_dataflow.rb:113:8:113:24 | call to dup | synthetic * | | local_dataflow.rb:113:15:113:15 | 1 | local_dataflow.rb:113:8:113:16 | call to source | position 0 | -| local_dataflow.rb:117:3:117:24 | * | local_dataflow.rb:117:3:117:24 | call to sink | synthetic * | | local_dataflow.rb:117:3:117:24 | self | local_dataflow.rb:117:3:117:24 | call to sink | self | -| local_dataflow.rb:117:8:117:16 | * | local_dataflow.rb:117:8:117:16 | call to source | synthetic * | +| local_dataflow.rb:117:3:117:24 | synthetic splat argument | local_dataflow.rb:117:3:117:24 | call to sink | synthetic * | | local_dataflow.rb:117:8:117:16 | call to source | local_dataflow.rb:117:8:117:23 | call to tap | self | | local_dataflow.rb:117:8:117:16 | self | local_dataflow.rb:117:8:117:16 | call to source | self | -| local_dataflow.rb:117:8:117:23 | * | local_dataflow.rb:117:8:117:23 | call to tap | synthetic * | +| local_dataflow.rb:117:8:117:16 | synthetic splat argument | local_dataflow.rb:117:8:117:16 | call to source | synthetic * | | local_dataflow.rb:117:8:117:23 | call to tap | local_dataflow.rb:117:3:117:24 | call to sink | position 0 | +| local_dataflow.rb:117:8:117:23 | synthetic splat argument | local_dataflow.rb:117:8:117:23 | call to tap | synthetic * | | local_dataflow.rb:117:15:117:15 | 1 | local_dataflow.rb:117:8:117:16 | call to source | position 0 | | local_dataflow.rb:117:22:117:23 | { ... } | local_dataflow.rb:117:8:117:23 | call to tap | block | -| local_dataflow.rb:118:3:118:11 | * | local_dataflow.rb:118:3:118:11 | call to source | synthetic * | | local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:3:118:31 | call to tap | self | | local_dataflow.rb:118:3:118:11 | self | local_dataflow.rb:118:3:118:11 | call to source | self | -| local_dataflow.rb:118:3:118:31 | * | local_dataflow.rb:118:3:118:31 | call to tap | synthetic * | +| local_dataflow.rb:118:3:118:11 | synthetic splat argument | local_dataflow.rb:118:3:118:11 | call to source | synthetic * | +| local_dataflow.rb:118:3:118:31 | synthetic splat argument | local_dataflow.rb:118:3:118:31 | call to tap | synthetic * | | local_dataflow.rb:118:10:118:10 | 1 | local_dataflow.rb:118:3:118:11 | call to source | position 0 | | local_dataflow.rb:118:17:118:31 | { ... } | local_dataflow.rb:118:3:118:31 | call to tap | block | -| local_dataflow.rb:118:23:118:29 | * | local_dataflow.rb:118:23:118:29 | call to sink | synthetic * | | local_dataflow.rb:118:23:118:29 | self | local_dataflow.rb:118:23:118:29 | call to sink | self | +| local_dataflow.rb:118:23:118:29 | synthetic splat argument | local_dataflow.rb:118:23:118:29 | call to sink | synthetic * | | local_dataflow.rb:118:28:118:28 | x | local_dataflow.rb:118:23:118:29 | call to sink | position 0 | -| local_dataflow.rb:119:3:119:31 | * | local_dataflow.rb:119:3:119:31 | call to sink | synthetic * | | local_dataflow.rb:119:3:119:31 | self | local_dataflow.rb:119:3:119:31 | call to sink | self | -| local_dataflow.rb:119:8:119:16 | * | local_dataflow.rb:119:8:119:16 | call to source | synthetic * | +| local_dataflow.rb:119:3:119:31 | synthetic splat argument | local_dataflow.rb:119:3:119:31 | call to sink | synthetic * | | local_dataflow.rb:119:8:119:16 | call to source | local_dataflow.rb:119:8:119:23 | call to tap | self | | local_dataflow.rb:119:8:119:16 | self | local_dataflow.rb:119:8:119:16 | call to source | self | -| local_dataflow.rb:119:8:119:23 | * | local_dataflow.rb:119:8:119:23 | call to tap | synthetic * | +| local_dataflow.rb:119:8:119:16 | synthetic splat argument | local_dataflow.rb:119:8:119:16 | call to source | synthetic * | | local_dataflow.rb:119:8:119:23 | call to tap | local_dataflow.rb:119:8:119:30 | call to tap | self | -| local_dataflow.rb:119:8:119:30 | * | local_dataflow.rb:119:8:119:30 | call to tap | synthetic * | +| local_dataflow.rb:119:8:119:23 | synthetic splat argument | local_dataflow.rb:119:8:119:23 | call to tap | synthetic * | | local_dataflow.rb:119:8:119:30 | call to tap | local_dataflow.rb:119:3:119:31 | call to sink | position 0 | +| local_dataflow.rb:119:8:119:30 | synthetic splat argument | local_dataflow.rb:119:8:119:30 | call to tap | synthetic * | | local_dataflow.rb:119:15:119:15 | 1 | local_dataflow.rb:119:8:119:16 | call to source | position 0 | | local_dataflow.rb:119:22:119:23 | { ... } | local_dataflow.rb:119:8:119:23 | call to tap | block | | local_dataflow.rb:119:29:119:30 | { ... } | local_dataflow.rb:119:8:119:30 | call to tap | block | -| local_dataflow.rb:123:3:123:50 | * | local_dataflow.rb:123:3:123:50 | call to sink | synthetic * | | local_dataflow.rb:123:3:123:50 | self | local_dataflow.rb:123:3:123:50 | call to sink | self | -| local_dataflow.rb:123:8:123:16 | * | local_dataflow.rb:123:8:123:16 | call to source | synthetic * | +| local_dataflow.rb:123:3:123:50 | synthetic splat argument | local_dataflow.rb:123:3:123:50 | call to sink | synthetic * | | local_dataflow.rb:123:8:123:16 | call to source | local_dataflow.rb:123:8:123:20 | call to dup | self | | local_dataflow.rb:123:8:123:16 | self | local_dataflow.rb:123:8:123:16 | call to source | self | -| local_dataflow.rb:123:8:123:20 | * | local_dataflow.rb:123:8:123:20 | call to dup | synthetic * | +| local_dataflow.rb:123:8:123:16 | synthetic splat argument | local_dataflow.rb:123:8:123:16 | call to source | synthetic * | | local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap | self | -| local_dataflow.rb:123:8:123:45 | * | local_dataflow.rb:123:8:123:45 | call to tap | synthetic * | +| local_dataflow.rb:123:8:123:20 | synthetic splat argument | local_dataflow.rb:123:8:123:20 | call to dup | synthetic * | | local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup | self | -| local_dataflow.rb:123:8:123:49 | * | local_dataflow.rb:123:8:123:49 | call to dup | synthetic * | +| local_dataflow.rb:123:8:123:45 | synthetic splat argument | local_dataflow.rb:123:8:123:45 | call to tap | synthetic * | | local_dataflow.rb:123:8:123:49 | call to dup | local_dataflow.rb:123:3:123:50 | call to sink | position 0 | +| local_dataflow.rb:123:8:123:49 | synthetic splat argument | local_dataflow.rb:123:8:123:49 | call to dup | synthetic * | | local_dataflow.rb:123:15:123:15 | 1 | local_dataflow.rb:123:8:123:16 | call to source | position 0 | | local_dataflow.rb:123:26:123:45 | { ... } | local_dataflow.rb:123:8:123:45 | call to tap | block | -| local_dataflow.rb:123:32:123:43 | * | local_dataflow.rb:123:32:123:43 | call to puts | synthetic * | | local_dataflow.rb:123:32:123:43 | self | local_dataflow.rb:123:32:123:43 | call to puts | self | +| local_dataflow.rb:123:32:123:43 | synthetic splat argument | local_dataflow.rb:123:32:123:43 | call to puts | synthetic * | | local_dataflow.rb:123:37:123:43 | "hello" | local_dataflow.rb:123:32:123:43 | call to puts | position 0 | -| local_dataflow.rb:127:3:127:8 | * | local_dataflow.rb:127:3:127:8 | call to rand | synthetic * | | local_dataflow.rb:127:3:127:8 | self | local_dataflow.rb:127:3:127:8 | call to rand | self | -| local_dataflow.rb:132:6:132:11 | * | local_dataflow.rb:132:6:132:11 | call to use | synthetic * | +| local_dataflow.rb:127:3:127:8 | synthetic splat argument | local_dataflow.rb:127:3:127:8 | call to rand | synthetic * | | local_dataflow.rb:132:6:132:11 | self | local_dataflow.rb:132:6:132:11 | call to use | self | +| local_dataflow.rb:132:6:132:11 | synthetic splat argument | local_dataflow.rb:132:6:132:11 | call to use | synthetic * | | local_dataflow.rb:132:10:132:10 | x | local_dataflow.rb:132:6:132:11 | call to use | position 0 | -| local_dataflow.rb:133:8:133:13 | * | local_dataflow.rb:133:8:133:13 | call to use | synthetic * | | local_dataflow.rb:133:8:133:13 | call to use | local_dataflow.rb:133:8:133:23 | [false] ... \|\| ... | self | | local_dataflow.rb:133:8:133:13 | call to use | local_dataflow.rb:133:8:133:23 | [true] ... \|\| ... | self | | local_dataflow.rb:133:8:133:13 | self | local_dataflow.rb:133:8:133:13 | call to use | self | -| local_dataflow.rb:133:8:133:23 | * | local_dataflow.rb:133:8:133:23 | [false] ... \|\| ... | synthetic * | -| local_dataflow.rb:133:8:133:23 | * | local_dataflow.rb:133:8:133:23 | [true] ... \|\| ... | synthetic * | +| local_dataflow.rb:133:8:133:13 | synthetic splat argument | local_dataflow.rb:133:8:133:13 | call to use | synthetic * | +| local_dataflow.rb:133:8:133:23 | synthetic splat argument | local_dataflow.rb:133:8:133:23 | [false] ... \|\| ... | synthetic * | +| local_dataflow.rb:133:8:133:23 | synthetic splat argument | local_dataflow.rb:133:8:133:23 | [true] ... \|\| ... | synthetic * | | local_dataflow.rb:133:12:133:12 | x | local_dataflow.rb:133:8:133:13 | call to use | position 0 | -| local_dataflow.rb:133:18:133:23 | * | local_dataflow.rb:133:18:133:23 | call to use | synthetic * | | local_dataflow.rb:133:18:133:23 | call to use | local_dataflow.rb:133:8:133:23 | [false] ... \|\| ... | position 0 | | local_dataflow.rb:133:18:133:23 | call to use | local_dataflow.rb:133:8:133:23 | [true] ... \|\| ... | position 0 | | local_dataflow.rb:133:18:133:23 | self | local_dataflow.rb:133:18:133:23 | call to use | self | +| local_dataflow.rb:133:18:133:23 | synthetic splat argument | local_dataflow.rb:133:18:133:23 | call to use | synthetic * | | local_dataflow.rb:133:22:133:22 | x | local_dataflow.rb:133:18:133:23 | call to use | position 0 | -| local_dataflow.rb:134:7:134:12 | * | local_dataflow.rb:134:7:134:12 | call to use | synthetic * | | local_dataflow.rb:134:7:134:12 | self | local_dataflow.rb:134:7:134:12 | call to use | self | +| local_dataflow.rb:134:7:134:12 | synthetic splat argument | local_dataflow.rb:134:7:134:12 | call to use | synthetic * | | local_dataflow.rb:134:11:134:11 | x | local_dataflow.rb:134:7:134:12 | call to use | position 0 | -| local_dataflow.rb:136:7:136:12 | * | local_dataflow.rb:136:7:136:12 | call to use | synthetic * | | local_dataflow.rb:136:7:136:12 | self | local_dataflow.rb:136:7:136:12 | call to use | self | +| local_dataflow.rb:136:7:136:12 | synthetic splat argument | local_dataflow.rb:136:7:136:12 | call to use | synthetic * | | local_dataflow.rb:136:11:136:11 | x | local_dataflow.rb:136:7:136:12 | call to use | position 0 | -| local_dataflow.rb:137:10:137:15 | * | local_dataflow.rb:137:10:137:15 | call to use | synthetic * | | local_dataflow.rb:137:10:137:15 | call to use | local_dataflow.rb:137:10:137:26 | [false] ... && ... | self | | local_dataflow.rb:137:10:137:15 | call to use | local_dataflow.rb:137:10:137:26 | [true] ... && ... | self | | local_dataflow.rb:137:10:137:15 | self | local_dataflow.rb:137:10:137:15 | call to use | self | -| local_dataflow.rb:137:10:137:26 | * | local_dataflow.rb:137:10:137:26 | [false] ... && ... | synthetic * | -| local_dataflow.rb:137:10:137:26 | * | local_dataflow.rb:137:10:137:26 | [true] ... && ... | synthetic * | +| local_dataflow.rb:137:10:137:15 | synthetic splat argument | local_dataflow.rb:137:10:137:15 | call to use | synthetic * | +| local_dataflow.rb:137:10:137:26 | synthetic splat argument | local_dataflow.rb:137:10:137:26 | [false] ... && ... | synthetic * | +| local_dataflow.rb:137:10:137:26 | synthetic splat argument | local_dataflow.rb:137:10:137:26 | [true] ... && ... | synthetic * | | local_dataflow.rb:137:14:137:14 | x | local_dataflow.rb:137:10:137:15 | call to use | position 0 | -| local_dataflow.rb:137:20:137:26 | * | local_dataflow.rb:137:20:137:26 | [false] ! ... | synthetic * | -| local_dataflow.rb:137:20:137:26 | * | local_dataflow.rb:137:20:137:26 | [true] ! ... | synthetic * | | local_dataflow.rb:137:20:137:26 | [false] ! ... | local_dataflow.rb:137:10:137:26 | [false] ... && ... | position 0 | | local_dataflow.rb:137:20:137:26 | [true] ! ... | local_dataflow.rb:137:10:137:26 | [true] ... && ... | position 0 | -| local_dataflow.rb:137:21:137:26 | * | local_dataflow.rb:137:21:137:26 | call to use | synthetic * | +| local_dataflow.rb:137:20:137:26 | synthetic splat argument | local_dataflow.rb:137:20:137:26 | [false] ! ... | synthetic * | +| local_dataflow.rb:137:20:137:26 | synthetic splat argument | local_dataflow.rb:137:20:137:26 | [true] ! ... | synthetic * | | local_dataflow.rb:137:21:137:26 | call to use | local_dataflow.rb:137:20:137:26 | [false] ! ... | self | | local_dataflow.rb:137:21:137:26 | call to use | local_dataflow.rb:137:20:137:26 | [true] ! ... | self | | local_dataflow.rb:137:21:137:26 | self | local_dataflow.rb:137:21:137:26 | call to use | self | +| local_dataflow.rb:137:21:137:26 | synthetic splat argument | local_dataflow.rb:137:21:137:26 | call to use | synthetic * | | local_dataflow.rb:137:25:137:25 | x | local_dataflow.rb:137:21:137:26 | call to use | position 0 | -| local_dataflow.rb:141:8:141:14 | * | local_dataflow.rb:141:8:141:14 | [false] ! ... | synthetic * | -| local_dataflow.rb:141:8:141:14 | * | local_dataflow.rb:141:8:141:14 | [true] ! ... | synthetic * | | local_dataflow.rb:141:8:141:14 | [false] ! ... | local_dataflow.rb:141:8:141:37 | [false] ... \|\| ... | self | | local_dataflow.rb:141:8:141:14 | [false] ! ... | local_dataflow.rb:141:8:141:37 | [true] ... \|\| ... | self | | local_dataflow.rb:141:8:141:14 | [true] ! ... | local_dataflow.rb:141:8:141:37 | [true] ... \|\| ... | self | -| local_dataflow.rb:141:8:141:37 | * | local_dataflow.rb:141:8:141:37 | [false] ... \|\| ... | synthetic * | -| local_dataflow.rb:141:8:141:37 | * | local_dataflow.rb:141:8:141:37 | [true] ... \|\| ... | synthetic * | -| local_dataflow.rb:141:9:141:14 | * | local_dataflow.rb:141:9:141:14 | call to use | synthetic * | +| local_dataflow.rb:141:8:141:14 | synthetic splat argument | local_dataflow.rb:141:8:141:14 | [false] ! ... | synthetic * | +| local_dataflow.rb:141:8:141:14 | synthetic splat argument | local_dataflow.rb:141:8:141:14 | [true] ! ... | synthetic * | +| local_dataflow.rb:141:8:141:37 | synthetic splat argument | local_dataflow.rb:141:8:141:37 | [false] ... \|\| ... | synthetic * | +| local_dataflow.rb:141:8:141:37 | synthetic splat argument | local_dataflow.rb:141:8:141:37 | [true] ... \|\| ... | synthetic * | | local_dataflow.rb:141:9:141:14 | call to use | local_dataflow.rb:141:8:141:14 | [false] ! ... | self | | local_dataflow.rb:141:9:141:14 | call to use | local_dataflow.rb:141:8:141:14 | [true] ! ... | self | | local_dataflow.rb:141:9:141:14 | self | local_dataflow.rb:141:9:141:14 | call to use | self | +| local_dataflow.rb:141:9:141:14 | synthetic splat argument | local_dataflow.rb:141:9:141:14 | call to use | synthetic * | | local_dataflow.rb:141:13:141:13 | x | local_dataflow.rb:141:9:141:14 | call to use | position 0 | | local_dataflow.rb:141:19:141:37 | [false] ( ... ) | local_dataflow.rb:141:8:141:37 | [false] ... \|\| ... | position 0 | | local_dataflow.rb:141:19:141:37 | [true] ( ... ) | local_dataflow.rb:141:8:141:37 | [true] ... \|\| ... | position 0 | -| local_dataflow.rb:141:20:141:25 | * | local_dataflow.rb:141:20:141:25 | call to use | synthetic * | | local_dataflow.rb:141:20:141:25 | call to use | local_dataflow.rb:141:20:141:36 | [false] ... && ... | self | | local_dataflow.rb:141:20:141:25 | call to use | local_dataflow.rb:141:20:141:36 | [true] ... && ... | self | | local_dataflow.rb:141:20:141:25 | self | local_dataflow.rb:141:20:141:25 | call to use | self | -| local_dataflow.rb:141:20:141:36 | * | local_dataflow.rb:141:20:141:36 | [false] ... && ... | synthetic * | -| local_dataflow.rb:141:20:141:36 | * | local_dataflow.rb:141:20:141:36 | [true] ... && ... | synthetic * | +| local_dataflow.rb:141:20:141:25 | synthetic splat argument | local_dataflow.rb:141:20:141:25 | call to use | synthetic * | +| local_dataflow.rb:141:20:141:36 | synthetic splat argument | local_dataflow.rb:141:20:141:36 | [false] ... && ... | synthetic * | +| local_dataflow.rb:141:20:141:36 | synthetic splat argument | local_dataflow.rb:141:20:141:36 | [true] ... && ... | synthetic * | | local_dataflow.rb:141:24:141:24 | x | local_dataflow.rb:141:20:141:25 | call to use | position 0 | -| local_dataflow.rb:141:30:141:36 | * | local_dataflow.rb:141:30:141:36 | [false] ! ... | synthetic * | -| local_dataflow.rb:141:30:141:36 | * | local_dataflow.rb:141:30:141:36 | [true] ! ... | synthetic * | | local_dataflow.rb:141:30:141:36 | [false] ! ... | local_dataflow.rb:141:20:141:36 | [false] ... && ... | position 0 | | local_dataflow.rb:141:30:141:36 | [true] ! ... | local_dataflow.rb:141:20:141:36 | [true] ... && ... | position 0 | -| local_dataflow.rb:141:31:141:36 | * | local_dataflow.rb:141:31:141:36 | call to use | synthetic * | +| local_dataflow.rb:141:30:141:36 | synthetic splat argument | local_dataflow.rb:141:30:141:36 | [false] ! ... | synthetic * | +| local_dataflow.rb:141:30:141:36 | synthetic splat argument | local_dataflow.rb:141:30:141:36 | [true] ! ... | synthetic * | | local_dataflow.rb:141:31:141:36 | call to use | local_dataflow.rb:141:30:141:36 | [false] ! ... | self | | local_dataflow.rb:141:31:141:36 | call to use | local_dataflow.rb:141:30:141:36 | [true] ! ... | self | | local_dataflow.rb:141:31:141:36 | self | local_dataflow.rb:141:31:141:36 | call to use | self | +| local_dataflow.rb:141:31:141:36 | synthetic splat argument | local_dataflow.rb:141:31:141:36 | call to use | synthetic * | | local_dataflow.rb:141:35:141:35 | x | local_dataflow.rb:141:31:141:36 | call to use | position 0 | -| local_dataflow.rb:143:11:143:16 | * | local_dataflow.rb:143:11:143:16 | call to use | synthetic * | | local_dataflow.rb:143:11:143:16 | call to use | local_dataflow.rb:143:11:143:26 | [false] ... \|\| ... | self | | local_dataflow.rb:143:11:143:16 | call to use | local_dataflow.rb:143:11:143:26 | [true] ... \|\| ... | self | | local_dataflow.rb:143:11:143:16 | self | local_dataflow.rb:143:11:143:16 | call to use | self | -| local_dataflow.rb:143:11:143:26 | * | local_dataflow.rb:143:11:143:26 | [false] ... \|\| ... | synthetic * | -| local_dataflow.rb:143:11:143:26 | * | local_dataflow.rb:143:11:143:26 | [true] ... \|\| ... | synthetic * | +| local_dataflow.rb:143:11:143:16 | synthetic splat argument | local_dataflow.rb:143:11:143:16 | call to use | synthetic * | +| local_dataflow.rb:143:11:143:26 | synthetic splat argument | local_dataflow.rb:143:11:143:26 | [false] ... \|\| ... | synthetic * | +| local_dataflow.rb:143:11:143:26 | synthetic splat argument | local_dataflow.rb:143:11:143:26 | [true] ... \|\| ... | synthetic * | | local_dataflow.rb:143:15:143:15 | x | local_dataflow.rb:143:11:143:16 | call to use | position 0 | -| local_dataflow.rb:143:21:143:26 | * | local_dataflow.rb:143:21:143:26 | call to use | synthetic * | | local_dataflow.rb:143:21:143:26 | call to use | local_dataflow.rb:143:11:143:26 | [false] ... \|\| ... | position 0 | | local_dataflow.rb:143:21:143:26 | call to use | local_dataflow.rb:143:11:143:26 | [true] ... \|\| ... | position 0 | | local_dataflow.rb:143:21:143:26 | self | local_dataflow.rb:143:21:143:26 | call to use | self | +| local_dataflow.rb:143:21:143:26 | synthetic splat argument | local_dataflow.rb:143:21:143:26 | call to use | synthetic * | | local_dataflow.rb:143:25:143:25 | x | local_dataflow.rb:143:21:143:26 | call to use | position 0 | -| local_dataflow.rb:144:11:144:16 | * | local_dataflow.rb:144:11:144:16 | call to use | synthetic * | | local_dataflow.rb:144:11:144:16 | self | local_dataflow.rb:144:11:144:16 | call to use | self | +| local_dataflow.rb:144:11:144:16 | synthetic splat argument | local_dataflow.rb:144:11:144:16 | call to use | synthetic * | | local_dataflow.rb:144:15:144:15 | x | local_dataflow.rb:144:11:144:16 | call to use | position 0 | -| local_dataflow.rb:147:5:147:10 | * | local_dataflow.rb:147:5:147:10 | call to use | synthetic * | | local_dataflow.rb:147:5:147:10 | self | local_dataflow.rb:147:5:147:10 | call to use | self | +| local_dataflow.rb:147:5:147:10 | synthetic splat argument | local_dataflow.rb:147:5:147:10 | call to use | synthetic * | | local_dataflow.rb:147:9:147:9 | x | local_dataflow.rb:147:5:147:10 | call to use | position 0 | -| local_dataflow.rb:148:5:148:10 | * | local_dataflow.rb:148:5:148:10 | call to use | synthetic * | | local_dataflow.rb:148:5:148:10 | self | local_dataflow.rb:148:5:148:10 | call to use | self | +| local_dataflow.rb:148:5:148:10 | synthetic splat argument | local_dataflow.rb:148:5:148:10 | call to use | synthetic * | | local_dataflow.rb:148:9:148:9 | x | local_dataflow.rb:148:5:148:10 | call to use | position 0 | diff --git a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected index 237c067be1b..226bbda25b1 100644 --- a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected +++ b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected @@ -2796,7 +2796,7 @@ | UseUseExplosion.rb:21:3675:21:3680 | call to use | UseUseExplosion.rb:21:3670:21:3680 | else ... | | UseUseExplosion.rb:21:3686:21:3696 | else ... | UseUseExplosion.rb:21:9:21:3700 | if ... | | UseUseExplosion.rb:21:3691:21:3696 | call to use | UseUseExplosion.rb:21:3686:21:3696 | else ... | -| UseUseExplosion.rb:24:5:25:7 | synthetic *args | UseUseExplosion.rb:24:13:24:13 | i | +| UseUseExplosion.rb:24:5:25:7 | synthetic splat parameter | UseUseExplosion.rb:24:13:24:13 | i | | UseUseExplosion.rb:24:5:25:7 | use | UseUseExplosion.rb:1:1:26:3 | C | | file://:0:0:0:0 | [summary param] position 0 in & | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in & | | file://:0:0:0:0 | [summary param] position 0 in + | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in + | @@ -2841,7 +2841,7 @@ | file://:0:0:0:0 | [summary] read: Argument[0].Element[any] in Hash[] | file://:0:0:0:0 | [summary] read: Argument[0].Element[any].Element[1] in Hash[] | | local_dataflow.rb:1:1:7:3 | self (foo) | local_dataflow.rb:3:8:3:10 | self | | local_dataflow.rb:1:1:7:3 | self in foo | local_dataflow.rb:1:1:7:3 | self (foo) | -| local_dataflow.rb:1:1:7:3 | synthetic *args | local_dataflow.rb:1:9:1:9 | a | +| local_dataflow.rb:1:1:7:3 | synthetic splat parameter | local_dataflow.rb:1:9:1:9 | a | | local_dataflow.rb:1:1:150:3 | | local_dataflow.rb:10:9:10:9 | x | | local_dataflow.rb:1:1:150:3 | self (local_dataflow.rb) | local_dataflow.rb:49:1:53:3 | self | | local_dataflow.rb:1:9:1:9 | a | local_dataflow.rb:1:9:1:9 | a | @@ -2871,6 +2871,7 @@ | local_dataflow.rb:9:9:9:15 | Array | local_dataflow.rb:9:9:9:15 | call to [] | | local_dataflow.rb:9:9:9:15 | call to [] | local_dataflow.rb:9:1:9:5 | array | | local_dataflow.rb:9:9:9:15 | call to [] | local_dataflow.rb:9:1:9:15 | ... = ... | +| local_dataflow.rb:9:9:9:15 | synthetic splat argument | local_dataflow.rb:9:9:9:15 | call to [] | | local_dataflow.rb:10:5:13:3 | ... | local_dataflow.rb:10:1:13:3 | ... = ... | | local_dataflow.rb:10:5:13:3 | self | local_dataflow.rb:11:1:11:2 | self | | local_dataflow.rb:10:5:13:3 | x | local_dataflow.rb:15:5:15:5 | x | @@ -2879,7 +2880,7 @@ | local_dataflow.rb:10:5:13:3 | __synth__0__1 | local_dataflow.rb:10:5:13:3 | __synth__0__1 | | local_dataflow.rb:10:5:13:3 | __synth__0__1 | local_dataflow.rb:10:9:10:9 | x | | local_dataflow.rb:10:5:13:3 | call to each | local_dataflow.rb:10:5:13:3 | ... | -| local_dataflow.rb:10:5:13:3 | synthetic *args | local_dataflow.rb:10:5:13:3 | __synth__0__1 | +| local_dataflow.rb:10:5:13:3 | synthetic splat parameter | local_dataflow.rb:10:5:13:3 | __synth__0__1 | | local_dataflow.rb:10:9:10:9 | ... = ... | local_dataflow.rb:10:9:10:9 | if ... | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [false] ! ... | | local_dataflow.rb:10:9:10:9 | defined? ... | local_dataflow.rb:10:9:10:9 | [true] ! ... | @@ -2898,7 +2899,7 @@ | local_dataflow.rb:15:1:17:3 | __synth__0__1 | local_dataflow.rb:15:1:17:3 | __synth__0__1 | | local_dataflow.rb:15:1:17:3 | __synth__0__1 | local_dataflow.rb:15:5:15:5 | x | | local_dataflow.rb:15:1:17:3 | call to each | local_dataflow.rb:15:1:17:3 | ... | -| local_dataflow.rb:15:1:17:3 | synthetic *args | local_dataflow.rb:15:1:17:3 | __synth__0__1 | +| local_dataflow.rb:15:1:17:3 | synthetic splat parameter | local_dataflow.rb:15:1:17:3 | __synth__0__1 | | local_dataflow.rb:15:5:15:5 | ... = ... | local_dataflow.rb:15:5:15:5 | if ... | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [false] ! ... | | local_dataflow.rb:15:5:15:5 | defined? ... | local_dataflow.rb:15:5:15:5 | [true] ! ... | @@ -2914,7 +2915,7 @@ | local_dataflow.rb:19:1:21:3 | __synth__0__1 | local_dataflow.rb:19:1:21:3 | __synth__0__1 | | local_dataflow.rb:19:1:21:3 | __synth__0__1 | local_dataflow.rb:19:5:19:5 | x | | local_dataflow.rb:19:1:21:3 | call to each | local_dataflow.rb:19:1:21:3 | ... | -| local_dataflow.rb:19:1:21:3 | synthetic *args | local_dataflow.rb:19:1:21:3 | __synth__0__1 | +| local_dataflow.rb:19:1:21:3 | synthetic splat parameter | local_dataflow.rb:19:1:21:3 | __synth__0__1 | | local_dataflow.rb:19:5:19:5 | ... = ... | local_dataflow.rb:19:5:19:5 | if ... | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [false] ! ... | | local_dataflow.rb:19:5:19:5 | defined? ... | local_dataflow.rb:19:5:19:5 | [true] ! ... | @@ -2933,13 +2934,13 @@ | local_dataflow.rb:30:14:30:20 | "class" | local_dataflow.rb:30:5:30:24 | C | | local_dataflow.rb:32:5:32:25 | bar | local_dataflow.rb:32:1:32:1 | x | | local_dataflow.rb:32:5:32:25 | bar | local_dataflow.rb:32:1:32:25 | ... = ... | -| local_dataflow.rb:34:1:39:3 | synthetic *args | local_dataflow.rb:34:7:34:7 | x | +| local_dataflow.rb:34:1:39:3 | synthetic splat parameter | local_dataflow.rb:34:7:34:7 | x | | local_dataflow.rb:34:7:34:7 | x | local_dataflow.rb:34:7:34:7 | x | | local_dataflow.rb:34:7:34:7 | x | local_dataflow.rb:35:6:35:6 | x | | local_dataflow.rb:35:6:35:6 | x | local_dataflow.rb:35:6:35:11 | ... == ... | | local_dataflow.rb:35:11:35:11 | 4 | local_dataflow.rb:35:6:35:11 | ... == ... | | local_dataflow.rb:36:13:36:13 | 7 | local_dataflow.rb:36:6:36:13 | return | -| local_dataflow.rb:41:1:47:3 | synthetic *args | local_dataflow.rb:41:7:41:7 | x | +| local_dataflow.rb:41:1:47:3 | synthetic splat parameter | local_dataflow.rb:41:7:41:7 | x | | local_dataflow.rb:41:7:41:7 | x | local_dataflow.rb:41:7:41:7 | x | | local_dataflow.rb:41:7:41:7 | x | local_dataflow.rb:42:6:42:6 | x | | local_dataflow.rb:42:6:42:6 | x | local_dataflow.rb:42:6:42:11 | ... == ... | @@ -2958,10 +2959,11 @@ | local_dataflow.rb:51:20:51:20 | x | local_dataflow.rb:51:20:51:24 | ... < ... | | local_dataflow.rb:51:24:51:24 | 9 | local_dataflow.rb:51:20:51:24 | ... < ... | | local_dataflow.rb:55:5:55:13 | Array | local_dataflow.rb:55:5:55:13 | call to [] | -| local_dataflow.rb:57:1:58:3 | synthetic *args | local_dataflow.rb:57:9:57:9 | x | +| local_dataflow.rb:55:5:55:13 | synthetic splat argument | local_dataflow.rb:55:5:55:13 | call to [] | +| local_dataflow.rb:57:1:58:3 | synthetic splat parameter | local_dataflow.rb:57:9:57:9 | x | | local_dataflow.rb:60:1:90:3 | self (test_case) | local_dataflow.rb:78:12:78:20 | self | | local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:60:1:90:3 | self (test_case) | -| local_dataflow.rb:60:1:90:3 | synthetic *args | local_dataflow.rb:60:15:60:15 | x | +| local_dataflow.rb:60:1:90:3 | synthetic splat parameter | local_dataflow.rb:60:15:60:15 | x | | local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:60:15:60:15 | x | | local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:61:12:61:12 | x | | local_dataflow.rb:61:7:68:5 | SSA phi read(x) | local_dataflow.rb:69:12:69:12 | x | @@ -3029,6 +3031,7 @@ | local_dataflow.rb:81:20:84:33 | then ... | local_dataflow.rb:78:7:88:5 | case ... | | local_dataflow.rb:81:25:84:14 | Array | local_dataflow.rb:81:25:84:14 | call to [] | | local_dataflow.rb:81:25:84:14 | call to [] | local_dataflow.rb:81:20:84:33 | then ... | +| local_dataflow.rb:81:25:84:14 | synthetic splat argument | local_dataflow.rb:81:25:84:14 | call to [] | | local_dataflow.rb:82:7:82:13 | [post] self | local_dataflow.rb:83:7:83:13 | self | | local_dataflow.rb:82:7:82:13 | self | local_dataflow.rb:83:7:83:13 | self | | local_dataflow.rb:83:7:83:13 | [post] self | local_dataflow.rb:84:7:84:13 | self | @@ -3134,7 +3137,7 @@ | local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:3:118:31 | call to tap | | local_dataflow.rb:118:3:118:11 | self | local_dataflow.rb:119:3:119:31 | self | | local_dataflow.rb:118:17:118:31 | self | local_dataflow.rb:118:23:118:29 | self | -| local_dataflow.rb:118:17:118:31 | synthetic *args | local_dataflow.rb:118:20:118:20 | x | +| local_dataflow.rb:118:17:118:31 | synthetic splat parameter | local_dataflow.rb:118:20:118:20 | x | | local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:20:118:20 | x | | local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:28:118:28 | x | | local_dataflow.rb:119:3:119:31 | [post] self | local_dataflow.rb:119:8:119:16 | self | @@ -3149,10 +3152,10 @@ | local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap | | local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup | | local_dataflow.rb:123:26:123:45 | self | local_dataflow.rb:123:32:123:43 | self | -| local_dataflow.rb:123:26:123:45 | synthetic *args | local_dataflow.rb:123:29:123:29 | x | +| local_dataflow.rb:123:26:123:45 | synthetic splat parameter | local_dataflow.rb:123:29:123:29 | x | | local_dataflow.rb:126:1:128:3 | self (use) | local_dataflow.rb:127:3:127:8 | self | | local_dataflow.rb:126:1:128:3 | self in use | local_dataflow.rb:126:1:128:3 | self (use) | -| local_dataflow.rb:126:1:128:3 | synthetic *args | local_dataflow.rb:126:9:126:9 | x | +| local_dataflow.rb:126:1:128:3 | synthetic splat parameter | local_dataflow.rb:126:9:126:9 | x | | local_dataflow.rb:130:1:150:3 | self (use_use_madness) | local_dataflow.rb:132:6:132:11 | self | | local_dataflow.rb:130:1:150:3 | self in use_use_madness | local_dataflow.rb:130:1:150:3 | self (use_use_madness) | | local_dataflow.rb:131:3:131:3 | x | local_dataflow.rb:132:10:132:10 | x | diff --git a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected index e5b06c97332..d96b678c787 100644 --- a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected @@ -1,7 +1,7 @@ track | params_flow.rb:1:1:3:3 | &block | type tracker without call steps | params_flow.rb:1:1:3:3 | &block | | params_flow.rb:1:1:3:3 | self in taint | type tracker without call steps | params_flow.rb:1:1:3:3 | self in taint | -| params_flow.rb:1:1:3:3 | synthetic *args | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:1:1:3:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:1:1:3:3 | taint | type tracker without call steps | params_flow.rb:1:1:3:3 | taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | @@ -28,7 +28,6 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:65:10:65:13 | ...[...] | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:69:17:69:17 | y | @@ -46,81 +45,92 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:65:5:65:13 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:109:5:109:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:111:5:111:10 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:134:5:134:16 | * | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:108:40:108:41 | *b | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :c | params_flow.rb:108:1:112:3 | **kwargs | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:25:17:25:24 | **kwargs | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p2 | params_flow.rb:25:17:25:24 | **kwargs | -| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p3 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :c | params_flow.rb:108:1:112:3 | synthetic hash-splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p3 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p3 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:17:5:17:11 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:18:5:18:11 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:26:5:26:11 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:27:5:27:22 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:28:5:28:22 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:29:5:29:22 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:50:5:50:11 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:51:5:51:21 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:65:5:65:13 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:70:5:70:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:71:5:71:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:74:5:74:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:75:5:75:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:84:5:84:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:85:5:85:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:86:5:86:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:87:5:87:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:88:5:88:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:89:5:89:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:99:5:99:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:102:5:102:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:108:1:112:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:109:5:109:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:110:5:110:13 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:111:5:111:10 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:134:5:134:16 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:108:1:112:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 2 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 2 | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 3 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 3 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 3 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 4 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 4 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 4 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 5 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:14:12:14:19 | call to taint | @@ -199,158 +209,156 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content attribute [] | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element | params_flow.rb:116:5:116:6 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element | params_flow.rb:118:12:118:13 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:14:1:14:30 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:44:1:44:28 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:55:1:55:29 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:58:1:58:25 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:78:1:78:63 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:105:1:105:49 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:106:1:106:46 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:114:1:114:67 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:43:8:43:18 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:46:8:46:29 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:57:8:57:18 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:60:8:60:29 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:44:23:44:27 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:58:20:58:24 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:105:26:105:48 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | synthetic splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:67:12:67:16 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:10:128:31 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:34:128:60 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:130:8:130:29 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:11:137:43 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:14:1:14:30 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:44:1:44:28 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:55:1:55:29 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:58:1:58:25 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:78:1:78:63 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:105:1:105:49 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:106:1:106:46 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:114:1:114:67 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:117:1:117:15 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:131:1:131:46 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:46:8:46:29 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:47:12:47:16 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:60:8:60:29 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:61:9:61:13 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:26:105:48 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:27:105:48 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:10:128:31 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:46:128:59 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:130:8:130:29 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:131:10:131:14 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:11:137:43 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:78:1:78:63 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:105:1:105:49 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:106:1:106:46 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:33:96:65 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:11:137:43 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:78:1:78:63 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 4 | params_flow.rb:78:1:78:63 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 4 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 4 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 5 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :c | params_flow.rb:114:1:114:67 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:21:1:21:35 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:22:1:22:35 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:23:1:23:41 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:33:1:33:58 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:35:1:35:29 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:37:8:37:44 | ** | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:105:26:105:48 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 3 | params_flow.rb:94:32:94:36 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:37:8:37:44 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:37:8:37:44 | synthetic hash-splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:38:8:38:13 | ** ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:40:8:40:26 | ** | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:40:8:40:26 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:40:8:40:26 | synthetic hash-splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p1 | params_flow.rb:41:24:41:29 | ** ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:21:1:21:35 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:22:1:22:35 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:23:1:23:41 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:33:1:33:58 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | ** | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | synthetic hash-splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:38:8:38:13 | ** ... | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:41:1:41:30 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p3 | params_flow.rb:33:1:33:58 | ** | -| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | ** | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | synthetic hash-splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p3 | params_flow.rb:35:23:35:28 | ** ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :c | params_flow.rb:114:1:114:67 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:21:1:21:35 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:22:1:22:35 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:23:1:23:41 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:35:1:35:29 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:21:1:21:35 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:22:1:22:35 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:23:1:23:41 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:41:1:41:30 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p3 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:14:1:14:30 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:44:1:44:28 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:55:1:55:29 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:58:1:58:25 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:105:1:105:49 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:106:1:106:46 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:114:1:114:67 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:14:1:14:30 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:55:1:55:29 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:106:1:106:46 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:114:1:114:67 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:117:1:117:15 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:44:1:44:28 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:58:1:58:25 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:105:1:105:49 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 2 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 2 | params_flow.rb:106:1:106:46 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:105:1:105:49 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 3 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 3 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 3 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 3 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 4 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 4 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 4 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 4 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 5 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | | params_flow.rb:5:1:7:3 | &block | type tracker without call steps | params_flow.rb:5:1:7:3 | &block | | params_flow.rb:5:1:7:3 | self in sink | type tracker without call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:5:1:7:3 | sink | type tracker without call steps | params_flow.rb:5:1:7:3 | sink | -| params_flow.rb:5:1:7:3 | synthetic *args | type tracker without call steps | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:5:1:7:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | | params_flow.rb:5:10:5:10 | x | type tracker without call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | type tracker without call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:5:10:5:10 | x | type tracker without call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:6:5:6:10 | * | type tracker without call steps | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:5:10:5:10 | x | type tracker without call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:6:5:6:10 | call to puts | | params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:10:5:10:11 | call to sink | | params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:11:5:11:11 | call to sink | @@ -416,1068 +424,1079 @@ track | params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:131:1:131:46 | call to pos_many | | params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:134:5:134:16 | call to sink | | params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:137:1:137:44 | call to splatall | +| params_flow.rb:6:5:6:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:9:1:12:3 | &block | type tracker without call steps | params_flow.rb:9:1:12:3 | &block | | params_flow.rb:9:1:12:3 | positional | type tracker without call steps | params_flow.rb:9:1:12:3 | positional | | params_flow.rb:9:1:12:3 | self in positional | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:9:1:12:3 | self in positional | type tracker without call steps | params_flow.rb:9:1:12:3 | self in positional | -| params_flow.rb:9:1:12:3 | synthetic *args | type tracker without call steps | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:9:1:12:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:9:16:9:17 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:9:16:9:17 | p1 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:9:16:9:17 | p1 | type tracker without call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:9:16:9:17 | p1 | type tracker without call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:9:16:9:17 | p1 | type tracker without call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:9:16:9:17 | p1 | type tracker without call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:9:20:9:21 | p2 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:9:20:9:21 | p2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:9:20:9:21 | p2 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:9:20:9:21 | p2 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:9:20:9:21 | p2 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:9:20:9:21 | p2 | type tracker without call steps | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:9:20:9:21 | p2 | type tracker without call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:9:20:9:21 | p2 | type tracker without call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:10:5:10:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:10:5:10:11 | * | type tracker without call steps | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:9:20:9:21 | p2 | type tracker without call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | | params_flow.rb:10:5:10:11 | call to sink | type tracker without call steps | params_flow.rb:10:5:10:11 | call to sink | -| params_flow.rb:11:5:11:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:11:5:11:11 | * | type tracker without call steps | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:10:5:10:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:10:5:10:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:11:5:11:11 | call to sink | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:14:1:14:30 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:44:1:44:28 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:47:1:47:17 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | type tracker without call steps | params_flow.rb:118:1:118:14 | call to positional | -| params_flow.rb:14:1:14:30 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:14:1:14:30 | * | type tracker without call steps | params_flow.rb:14:1:14:30 | * | +| params_flow.rb:11:5:11:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:11:5:11:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:11:5:11:11 | synthetic splat argument | | params_flow.rb:14:1:14:30 | call to positional | type tracker without call steps | params_flow.rb:14:1:14:30 | call to positional | -| params_flow.rb:14:12:14:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:12:14:19 | * | type tracker without call steps | params_flow.rb:14:12:14:19 | * | +| params_flow.rb:14:1:14:30 | synthetic splat argument | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:14:1:14:30 | synthetic splat argument | type tracker without call steps | params_flow.rb:14:1:14:30 | synthetic splat argument | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:14:12:14:19 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:14:12:14:19 | call to taint | type tracker without call steps | params_flow.rb:14:12:14:19 | call to taint | -| params_flow.rb:14:12:14:19 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:14:1:14:30 | * | +| params_flow.rb:14:12:14:19 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:14:1:14:30 | synthetic splat argument | +| params_flow.rb:14:12:14:19 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:14:12:14:19 | synthetic splat argument | type tracker without call steps | params_flow.rb:14:12:14:19 | synthetic splat argument | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:18:14:18 | 1 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content splat position 0 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:14:18:14:18 | 1 | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:14:18:14:18 | 1 | type tracker without call steps | params_flow.rb:14:12:14:19 | call to taint | | params_flow.rb:14:18:14:18 | 1 | type tracker without call steps | params_flow.rb:14:18:14:18 | 1 | -| params_flow.rb:14:18:14:18 | 1 | type tracker without call steps with content element 0 | params_flow.rb:14:1:14:30 | * | -| params_flow.rb:14:18:14:18 | 1 | type tracker without call steps with content element 0 | params_flow.rb:14:12:14:19 | * | -| params_flow.rb:14:22:14:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:22:14:29 | * | type tracker without call steps | params_flow.rb:14:22:14:29 | * | +| params_flow.rb:14:18:14:18 | 1 | type tracker without call steps with content splat position 0 | params_flow.rb:14:1:14:30 | synthetic splat argument | +| params_flow.rb:14:18:14:18 | 1 | type tracker without call steps with content splat position 0 | params_flow.rb:14:12:14:19 | synthetic splat argument | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | +| params_flow.rb:14:22:14:29 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:14:22:14:29 | call to taint | type tracker without call steps | params_flow.rb:14:22:14:29 | call to taint | -| params_flow.rb:14:22:14:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:14:1:14:30 | * | +| params_flow.rb:14:22:14:29 | call to taint | type tracker without call steps with content splat position 1 | params_flow.rb:14:1:14:30 | synthetic splat argument | +| params_flow.rb:14:22:14:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:14:22:14:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:14:22:14:29 | synthetic splat argument | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:28:14:28 | 2 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | +| params_flow.rb:14:28:14:28 | 2 | type tracker with call steps with content splat position 1 | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:14:28:14:28 | 2 | type tracker without call steps | params_flow.rb:14:22:14:29 | call to taint | | params_flow.rb:14:28:14:28 | 2 | type tracker without call steps | params_flow.rb:14:28:14:28 | 2 | -| params_flow.rb:14:28:14:28 | 2 | type tracker without call steps with content element 0 | params_flow.rb:14:22:14:29 | * | -| params_flow.rb:14:28:14:28 | 2 | type tracker without call steps with content element 1 | params_flow.rb:14:1:14:30 | * | +| params_flow.rb:14:28:14:28 | 2 | type tracker without call steps with content splat position 0 | params_flow.rb:14:22:14:29 | synthetic splat argument | +| params_flow.rb:14:28:14:28 | 2 | type tracker without call steps with content splat position 1 | params_flow.rb:14:1:14:30 | synthetic splat argument | | params_flow.rb:16:1:19:3 | &block | type tracker without call steps | params_flow.rb:16:1:19:3 | &block | -| params_flow.rb:16:1:19:3 | **kwargs | type tracker without call steps | params_flow.rb:16:1:19:3 | **kwargs | | params_flow.rb:16:1:19:3 | keyword | type tracker without call steps | params_flow.rb:16:1:19:3 | keyword | | params_flow.rb:16:1:19:3 | self in keyword | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:16:1:19:3 | self in keyword | type tracker without call steps | params_flow.rb:16:1:19:3 | self in keyword | +| params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | type tracker without call steps | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | | params_flow.rb:16:13:16:14 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:16:13:16:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:16:13:16:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:16:13:16:14 | p1 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:16:13:16:14 | p1 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:16:13:16:14 | p1 | type tracker without call steps | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:16:13:16:14 | p1 | type tracker without call steps | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:16:13:16:14 | p1 | type tracker without call steps with content element 0 | params_flow.rb:17:5:17:11 | * | +| params_flow.rb:16:13:16:14 | p1 | type tracker without call steps with content splat position 0 | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:16:18:16:19 | p2 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:16:18:16:19 | p2 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:16:18:16:19 | p2 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:16:18:16:19 | p2 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:16:18:16:19 | p2 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:16:18:16:19 | p2 | type tracker without call steps | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:16:18:16:19 | p2 | type tracker without call steps | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:16:18:16:19 | p2 | type tracker without call steps with content element 0 | params_flow.rb:18:5:18:11 | * | -| params_flow.rb:17:5:17:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:17:5:17:11 | * | type tracker without call steps | params_flow.rb:17:5:17:11 | * | +| params_flow.rb:16:18:16:19 | p2 | type tracker without call steps with content splat position 0 | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:17:5:17:11 | call to sink | type tracker without call steps | params_flow.rb:17:5:17:11 | call to sink | -| params_flow.rb:18:5:18:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:18:5:18:11 | * | type tracker without call steps | params_flow.rb:18:5:18:11 | * | +| params_flow.rb:17:5:17:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:17:5:17:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:18:5:18:11 | call to sink | type tracker without call steps | params_flow.rb:18:5:18:11 | call to sink | | params_flow.rb:18:5:18:11 | call to sink | type tracker without call steps | params_flow.rb:21:1:21:35 | call to keyword | | params_flow.rb:18:5:18:11 | call to sink | type tracker without call steps | params_flow.rb:22:1:22:35 | call to keyword | | params_flow.rb:18:5:18:11 | call to sink | type tracker without call steps | params_flow.rb:23:1:23:41 | call to keyword | | params_flow.rb:18:5:18:11 | call to sink | type tracker without call steps | params_flow.rb:41:1:41:30 | call to keyword | -| params_flow.rb:21:1:21:35 | ** | type tracker with call steps | params_flow.rb:16:1:19:3 | **kwargs | -| params_flow.rb:21:1:21:35 | ** | type tracker without call steps | params_flow.rb:21:1:21:35 | ** | +| params_flow.rb:18:5:18:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:18:5:18:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:21:1:21:35 | call to keyword | type tracker without call steps | params_flow.rb:21:1:21:35 | call to keyword | +| params_flow.rb:21:1:21:35 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:21:1:21:35 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:21:1:21:35 | synthetic hash-splat argument | | params_flow.rb:21:9:21:10 | :p1 | type tracker without call steps | params_flow.rb:21:9:21:10 | :p1 | | params_flow.rb:21:9:21:20 | Pair | type tracker without call steps | params_flow.rb:21:9:21:20 | Pair | -| params_flow.rb:21:13:21:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:13:21:20 | * | type tracker without call steps | params_flow.rb:21:13:21:20 | * | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | -| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:21:13:21:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:21:13:21:20 | call to taint | type tracker without call steps | params_flow.rb:21:13:21:20 | call to taint | -| params_flow.rb:21:13:21:20 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:21:1:21:35 | ** | +| params_flow.rb:21:13:21:20 | call to taint | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:21:1:21:35 | synthetic hash-splat argument | +| params_flow.rb:21:13:21:20 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:21:13:21:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:21:13:21:20 | synthetic splat argument | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:19:21:19 | 3 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | -| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:21:19:21:19 | 3 | type tracker with call steps with content splat position 0 | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:21:19:21:19 | 3 | type tracker without call steps | params_flow.rb:21:13:21:20 | call to taint | | params_flow.rb:21:19:21:19 | 3 | type tracker without call steps | params_flow.rb:21:19:21:19 | 3 | -| params_flow.rb:21:19:21:19 | 3 | type tracker without call steps with content element 0 | params_flow.rb:21:13:21:20 | * | -| params_flow.rb:21:19:21:19 | 3 | type tracker without call steps with content element :p1 | params_flow.rb:21:1:21:35 | ** | +| params_flow.rb:21:19:21:19 | 3 | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:21:1:21:35 | synthetic hash-splat argument | +| params_flow.rb:21:19:21:19 | 3 | type tracker without call steps with content splat position 0 | params_flow.rb:21:13:21:20 | synthetic splat argument | | params_flow.rb:21:23:21:24 | :p2 | type tracker without call steps | params_flow.rb:21:23:21:24 | :p2 | | params_flow.rb:21:23:21:34 | Pair | type tracker without call steps | params_flow.rb:21:23:21:34 | Pair | -| params_flow.rb:21:27:21:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:27:21:34 | * | type tracker without call steps | params_flow.rb:21:27:21:34 | * | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | -| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:21:27:21:34 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:21:27:21:34 | call to taint | type tracker without call steps | params_flow.rb:21:27:21:34 | call to taint | -| params_flow.rb:21:27:21:34 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:21:1:21:35 | ** | +| params_flow.rb:21:27:21:34 | call to taint | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:21:1:21:35 | synthetic hash-splat argument | +| params_flow.rb:21:27:21:34 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:21:27:21:34 | synthetic splat argument | type tracker without call steps | params_flow.rb:21:27:21:34 | synthetic splat argument | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:33:21:33 | 4 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | -| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:21:33:21:33 | 4 | type tracker with call steps with content splat position 0 | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:21:33:21:33 | 4 | type tracker without call steps | params_flow.rb:21:27:21:34 | call to taint | | params_flow.rb:21:33:21:33 | 4 | type tracker without call steps | params_flow.rb:21:33:21:33 | 4 | -| params_flow.rb:21:33:21:33 | 4 | type tracker without call steps with content element 0 | params_flow.rb:21:27:21:34 | * | -| params_flow.rb:21:33:21:33 | 4 | type tracker without call steps with content element :p2 | params_flow.rb:21:1:21:35 | ** | -| params_flow.rb:22:1:22:35 | ** | type tracker with call steps | params_flow.rb:16:1:19:3 | **kwargs | -| params_flow.rb:22:1:22:35 | ** | type tracker without call steps | params_flow.rb:22:1:22:35 | ** | +| params_flow.rb:21:33:21:33 | 4 | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:21:1:21:35 | synthetic hash-splat argument | +| params_flow.rb:21:33:21:33 | 4 | type tracker without call steps with content splat position 0 | params_flow.rb:21:27:21:34 | synthetic splat argument | | params_flow.rb:22:1:22:35 | call to keyword | type tracker without call steps | params_flow.rb:22:1:22:35 | call to keyword | +| params_flow.rb:22:1:22:35 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:22:1:22:35 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:22:1:22:35 | synthetic hash-splat argument | | params_flow.rb:22:9:22:10 | :p2 | type tracker without call steps | params_flow.rb:22:9:22:10 | :p2 | | params_flow.rb:22:9:22:20 | Pair | type tracker without call steps | params_flow.rb:22:9:22:20 | Pair | -| params_flow.rb:22:13:22:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:13:22:20 | * | type tracker without call steps | params_flow.rb:22:13:22:20 | * | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | -| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:22:13:22:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:22:13:22:20 | call to taint | type tracker without call steps | params_flow.rb:22:13:22:20 | call to taint | -| params_flow.rb:22:13:22:20 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:22:1:22:35 | ** | +| params_flow.rb:22:13:22:20 | call to taint | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:22:1:22:35 | synthetic hash-splat argument | +| params_flow.rb:22:13:22:20 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:22:13:22:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:22:13:22:20 | synthetic splat argument | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:19:22:19 | 5 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | -| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:22:19:22:19 | 5 | type tracker with call steps with content splat position 0 | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:22:19:22:19 | 5 | type tracker without call steps | params_flow.rb:22:13:22:20 | call to taint | | params_flow.rb:22:19:22:19 | 5 | type tracker without call steps | params_flow.rb:22:19:22:19 | 5 | -| params_flow.rb:22:19:22:19 | 5 | type tracker without call steps with content element 0 | params_flow.rb:22:13:22:20 | * | -| params_flow.rb:22:19:22:19 | 5 | type tracker without call steps with content element :p2 | params_flow.rb:22:1:22:35 | ** | +| params_flow.rb:22:19:22:19 | 5 | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:22:1:22:35 | synthetic hash-splat argument | +| params_flow.rb:22:19:22:19 | 5 | type tracker without call steps with content splat position 0 | params_flow.rb:22:13:22:20 | synthetic splat argument | | params_flow.rb:22:23:22:24 | :p1 | type tracker without call steps | params_flow.rb:22:23:22:24 | :p1 | | params_flow.rb:22:23:22:34 | Pair | type tracker without call steps | params_flow.rb:22:23:22:34 | Pair | -| params_flow.rb:22:27:22:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:27:22:34 | * | type tracker without call steps | params_flow.rb:22:27:22:34 | * | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | -| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:22:27:22:34 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:22:27:22:34 | call to taint | type tracker without call steps | params_flow.rb:22:27:22:34 | call to taint | -| params_flow.rb:22:27:22:34 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:22:1:22:35 | ** | +| params_flow.rb:22:27:22:34 | call to taint | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:22:1:22:35 | synthetic hash-splat argument | +| params_flow.rb:22:27:22:34 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:22:27:22:34 | synthetic splat argument | type tracker without call steps | params_flow.rb:22:27:22:34 | synthetic splat argument | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:33:22:33 | 6 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | -| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:22:33:22:33 | 6 | type tracker with call steps with content splat position 0 | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:22:33:22:33 | 6 | type tracker without call steps | params_flow.rb:22:27:22:34 | call to taint | | params_flow.rb:22:33:22:33 | 6 | type tracker without call steps | params_flow.rb:22:33:22:33 | 6 | -| params_flow.rb:22:33:22:33 | 6 | type tracker without call steps with content element 0 | params_flow.rb:22:27:22:34 | * | -| params_flow.rb:22:33:22:33 | 6 | type tracker without call steps with content element :p1 | params_flow.rb:22:1:22:35 | ** | -| params_flow.rb:23:1:23:41 | ** | type tracker with call steps | params_flow.rb:16:1:19:3 | **kwargs | -| params_flow.rb:23:1:23:41 | ** | type tracker without call steps | params_flow.rb:23:1:23:41 | ** | +| params_flow.rb:22:33:22:33 | 6 | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:22:1:22:35 | synthetic hash-splat argument | +| params_flow.rb:22:33:22:33 | 6 | type tracker without call steps with content splat position 0 | params_flow.rb:22:27:22:34 | synthetic splat argument | | params_flow.rb:23:1:23:41 | call to keyword | type tracker without call steps | params_flow.rb:23:1:23:41 | call to keyword | +| params_flow.rb:23:1:23:41 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:23:1:23:41 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:23:1:23:41 | synthetic hash-splat argument | | params_flow.rb:23:9:23:11 | :p2 | type tracker without call steps | params_flow.rb:23:9:23:11 | :p2 | | params_flow.rb:23:9:23:23 | Pair | type tracker without call steps | params_flow.rb:23:9:23:23 | Pair | -| params_flow.rb:23:16:23:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:16:23:23 | * | type tracker without call steps | params_flow.rb:23:16:23:23 | * | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | -| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:23:16:23:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:23:16:23:23 | call to taint | type tracker without call steps | params_flow.rb:23:16:23:23 | call to taint | -| params_flow.rb:23:16:23:23 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:23:1:23:41 | ** | +| params_flow.rb:23:16:23:23 | call to taint | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:23:1:23:41 | synthetic hash-splat argument | +| params_flow.rb:23:16:23:23 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:23:16:23:23 | synthetic splat argument | type tracker without call steps | params_flow.rb:23:16:23:23 | synthetic splat argument | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:22:23:22 | 7 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | -| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:23:22:23:22 | 7 | type tracker with call steps with content splat position 0 | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:23:22:23:22 | 7 | type tracker without call steps | params_flow.rb:23:16:23:23 | call to taint | | params_flow.rb:23:22:23:22 | 7 | type tracker without call steps | params_flow.rb:23:22:23:22 | 7 | -| params_flow.rb:23:22:23:22 | 7 | type tracker without call steps with content element 0 | params_flow.rb:23:16:23:23 | * | -| params_flow.rb:23:22:23:22 | 7 | type tracker without call steps with content element :p2 | params_flow.rb:23:1:23:41 | ** | +| params_flow.rb:23:22:23:22 | 7 | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:23:1:23:41 | synthetic hash-splat argument | +| params_flow.rb:23:22:23:22 | 7 | type tracker without call steps with content splat position 0 | params_flow.rb:23:16:23:23 | synthetic splat argument | | params_flow.rb:23:26:23:28 | :p1 | type tracker without call steps | params_flow.rb:23:26:23:28 | :p1 | | params_flow.rb:23:26:23:40 | Pair | type tracker without call steps | params_flow.rb:23:26:23:40 | Pair | -| params_flow.rb:23:33:23:40 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:33:23:40 | * | type tracker without call steps | params_flow.rb:23:33:23:40 | * | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | -| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:23:33:23:40 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:23:33:23:40 | call to taint | type tracker without call steps | params_flow.rb:23:33:23:40 | call to taint | -| params_flow.rb:23:33:23:40 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:23:1:23:41 | ** | +| params_flow.rb:23:33:23:40 | call to taint | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:23:1:23:41 | synthetic hash-splat argument | +| params_flow.rb:23:33:23:40 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:23:33:23:40 | synthetic splat argument | type tracker without call steps | params_flow.rb:23:33:23:40 | synthetic splat argument | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:39:23:39 | 8 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | -| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:23:39:23:39 | 8 | type tracker with call steps with content splat position 0 | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:23:39:23:39 | 8 | type tracker without call steps | params_flow.rb:23:33:23:40 | call to taint | | params_flow.rb:23:39:23:39 | 8 | type tracker without call steps | params_flow.rb:23:39:23:39 | 8 | -| params_flow.rb:23:39:23:39 | 8 | type tracker without call steps with content element 0 | params_flow.rb:23:33:23:40 | * | -| params_flow.rb:23:39:23:39 | 8 | type tracker without call steps with content element :p1 | params_flow.rb:23:1:23:41 | ** | +| params_flow.rb:23:39:23:39 | 8 | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:23:1:23:41 | synthetic hash-splat argument | +| params_flow.rb:23:39:23:39 | 8 | type tracker without call steps with content splat position 0 | params_flow.rb:23:33:23:40 | synthetic splat argument | | params_flow.rb:25:1:31:3 | &block | type tracker without call steps | params_flow.rb:25:1:31:3 | &block | -| params_flow.rb:25:1:31:3 | **kwargs | type tracker without call steps | params_flow.rb:25:1:31:3 | **kwargs | | params_flow.rb:25:1:31:3 | kwargs | type tracker without call steps | params_flow.rb:25:1:31:3 | kwargs | | params_flow.rb:25:1:31:3 | self in kwargs | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:25:1:31:3 | self in kwargs | type tracker without call steps | params_flow.rb:25:1:31:3 | self in kwargs | +| params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | type tracker without call steps | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:25:12:25:13 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:25:12:25:13 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:25:12:25:13 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:25:12:25:13 | p1 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:25:12:25:13 | p1 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:25:12:25:13 | p1 | type tracker without call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:25:12:25:13 | p1 | type tracker without call steps | params_flow.rb:25:12:25:13 | p1 | -| params_flow.rb:25:12:25:13 | p1 | type tracker without call steps with content element 0 | params_flow.rb:26:5:26:11 | * | +| params_flow.rb:25:12:25:13 | p1 | type tracker without call steps with content splat position 0 | params_flow.rb:26:5:26:11 | synthetic splat argument | | params_flow.rb:25:17:25:24 | **kwargs | type tracker without call steps | params_flow.rb:25:17:25:24 | **kwargs | | params_flow.rb:25:19:25:24 | kwargs | type tracker without call steps | params_flow.rb:25:19:25:24 | kwargs | -| params_flow.rb:26:5:26:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:26:5:26:11 | * | type tracker without call steps | params_flow.rb:26:5:26:11 | * | | params_flow.rb:26:5:26:11 | call to sink | type tracker without call steps | params_flow.rb:26:5:26:11 | call to sink | -| params_flow.rb:27:5:27:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:27:5:27:22 | * | type tracker without call steps | params_flow.rb:27:5:27:22 | * | +| params_flow.rb:26:5:26:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:26:5:26:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:26:5:26:11 | synthetic splat argument | | params_flow.rb:27:5:27:22 | call to sink | type tracker without call steps | params_flow.rb:27:5:27:22 | call to sink | -| params_flow.rb:27:11:27:21 | * | type tracker without call steps | params_flow.rb:27:11:27:21 | * | +| params_flow.rb:27:5:27:22 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:27:5:27:22 | synthetic splat argument | type tracker without call steps | params_flow.rb:27:5:27:22 | synthetic splat argument | | params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:27:11:27:21 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:27:11:27:21 | ...[...] | type tracker without call steps | params_flow.rb:27:11:27:21 | ...[...] | -| params_flow.rb:27:11:27:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:27:5:27:22 | * | +| params_flow.rb:27:11:27:21 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:27:5:27:22 | synthetic splat argument | +| params_flow.rb:27:11:27:21 | synthetic splat argument | type tracker without call steps | params_flow.rb:27:11:27:21 | synthetic splat argument | | params_flow.rb:27:18:27:20 | :p1 | type tracker without call steps | params_flow.rb:27:18:27:20 | :p1 | -| params_flow.rb:27:18:27:20 | :p1 | type tracker without call steps with content element 0 | params_flow.rb:27:11:27:21 | * | -| params_flow.rb:28:5:28:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:28:5:28:22 | * | type tracker without call steps | params_flow.rb:28:5:28:22 | * | +| params_flow.rb:27:18:27:20 | :p1 | type tracker without call steps with content splat position 0 | params_flow.rb:27:11:27:21 | synthetic splat argument | | params_flow.rb:28:5:28:22 | call to sink | type tracker without call steps | params_flow.rb:28:5:28:22 | call to sink | -| params_flow.rb:28:11:28:21 | * | type tracker without call steps | params_flow.rb:28:11:28:21 | * | +| params_flow.rb:28:5:28:22 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:28:5:28:22 | synthetic splat argument | type tracker without call steps | params_flow.rb:28:5:28:22 | synthetic splat argument | | params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:28:11:28:21 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:28:11:28:21 | ...[...] | type tracker without call steps | params_flow.rb:28:11:28:21 | ...[...] | -| params_flow.rb:28:11:28:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:28:5:28:22 | * | +| params_flow.rb:28:11:28:21 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:28:5:28:22 | synthetic splat argument | +| params_flow.rb:28:11:28:21 | synthetic splat argument | type tracker without call steps | params_flow.rb:28:11:28:21 | synthetic splat argument | | params_flow.rb:28:18:28:20 | :p2 | type tracker without call steps | params_flow.rb:28:18:28:20 | :p2 | -| params_flow.rb:28:18:28:20 | :p2 | type tracker without call steps with content element 0 | params_flow.rb:28:11:28:21 | * | -| params_flow.rb:29:5:29:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:29:5:29:22 | * | type tracker without call steps | params_flow.rb:29:5:29:22 | * | +| params_flow.rb:28:18:28:20 | :p2 | type tracker without call steps with content splat position 0 | params_flow.rb:28:11:28:21 | synthetic splat argument | | params_flow.rb:29:5:29:22 | call to sink | type tracker without call steps | params_flow.rb:29:5:29:22 | call to sink | -| params_flow.rb:29:11:29:21 | * | type tracker without call steps | params_flow.rb:29:11:29:21 | * | +| params_flow.rb:29:5:29:22 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:29:5:29:22 | synthetic splat argument | type tracker without call steps | params_flow.rb:29:5:29:22 | synthetic splat argument | | params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:29:11:29:21 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:29:11:29:21 | ...[...] | type tracker without call steps | params_flow.rb:29:11:29:21 | ...[...] | -| params_flow.rb:29:11:29:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:29:5:29:22 | * | +| params_flow.rb:29:11:29:21 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:29:5:29:22 | synthetic splat argument | +| params_flow.rb:29:11:29:21 | synthetic splat argument | type tracker without call steps | params_flow.rb:29:11:29:21 | synthetic splat argument | | params_flow.rb:29:18:29:20 | :p3 | type tracker without call steps | params_flow.rb:29:18:29:20 | :p3 | -| params_flow.rb:29:18:29:20 | :p3 | type tracker without call steps with content element 0 | params_flow.rb:29:11:29:21 | * | -| params_flow.rb:30:5:30:22 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:30:5:30:22 | * | type tracker without call steps | params_flow.rb:30:5:30:22 | * | +| params_flow.rb:29:18:29:20 | :p3 | type tracker without call steps with content splat position 0 | params_flow.rb:29:11:29:21 | synthetic splat argument | | params_flow.rb:30:5:30:22 | call to sink | type tracker without call steps | params_flow.rb:30:5:30:22 | call to sink | | params_flow.rb:30:5:30:22 | call to sink | type tracker without call steps | params_flow.rb:33:1:33:58 | call to kwargs | | params_flow.rb:30:5:30:22 | call to sink | type tracker without call steps | params_flow.rb:35:1:35:29 | call to kwargs | | params_flow.rb:30:5:30:22 | call to sink | type tracker without call steps | params_flow.rb:38:1:38:14 | call to kwargs | -| params_flow.rb:30:11:30:21 | * | type tracker without call steps | params_flow.rb:30:11:30:21 | * | +| params_flow.rb:30:5:30:22 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:30:5:30:22 | synthetic splat argument | type tracker without call steps | params_flow.rb:30:5:30:22 | synthetic splat argument | | params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:30:11:30:21 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:30:11:30:21 | ...[...] | type tracker without call steps | params_flow.rb:30:11:30:21 | ...[...] | -| params_flow.rb:30:11:30:21 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:30:5:30:22 | * | +| params_flow.rb:30:11:30:21 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:30:5:30:22 | synthetic splat argument | +| params_flow.rb:30:11:30:21 | synthetic splat argument | type tracker without call steps | params_flow.rb:30:11:30:21 | synthetic splat argument | | params_flow.rb:30:18:30:20 | :p4 | type tracker without call steps | params_flow.rb:30:18:30:20 | :p4 | -| params_flow.rb:30:18:30:20 | :p4 | type tracker without call steps with content element 0 | params_flow.rb:30:11:30:21 | * | -| params_flow.rb:33:1:33:58 | ** | type tracker with call steps | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:33:1:33:58 | ** | type tracker with call steps | params_flow.rb:25:17:25:24 | **kwargs | -| params_flow.rb:33:1:33:58 | ** | type tracker without call steps | params_flow.rb:33:1:33:58 | ** | +| params_flow.rb:30:18:30:20 | :p4 | type tracker without call steps with content splat position 0 | params_flow.rb:30:11:30:21 | synthetic splat argument | | params_flow.rb:33:1:33:58 | call to kwargs | type tracker without call steps | params_flow.rb:33:1:33:58 | call to kwargs | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | | params_flow.rb:33:8:33:9 | :p1 | type tracker without call steps | params_flow.rb:33:8:33:9 | :p1 | | params_flow.rb:33:8:33:19 | Pair | type tracker without call steps | params_flow.rb:33:8:33:19 | Pair | -| params_flow.rb:33:12:33:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:12:33:19 | * | type tracker without call steps | params_flow.rb:33:12:33:19 | * | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | -| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | -| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | -| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:26:5:26:11 | synthetic splat argument | +| params_flow.rb:33:12:33:19 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:27:5:27:22 | synthetic splat argument | | params_flow.rb:33:12:33:19 | call to taint | type tracker without call steps | params_flow.rb:33:12:33:19 | call to taint | -| params_flow.rb:33:12:33:19 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:33:1:33:58 | ** | +| params_flow.rb:33:12:33:19 | call to taint | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | +| params_flow.rb:33:12:33:19 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:33:12:33:19 | synthetic splat argument | type tracker without call steps | params_flow.rb:33:12:33:19 | synthetic splat argument | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:33:18:33:18 | 9 | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | -| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | -| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | -| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content element :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content splat position 0 | params_flow.rb:26:5:26:11 | synthetic splat argument | +| params_flow.rb:33:18:33:18 | 9 | type tracker with call steps with content splat position 0 | params_flow.rb:27:5:27:22 | synthetic splat argument | | params_flow.rb:33:18:33:18 | 9 | type tracker without call steps | params_flow.rb:33:12:33:19 | call to taint | | params_flow.rb:33:18:33:18 | 9 | type tracker without call steps | params_flow.rb:33:18:33:18 | 9 | -| params_flow.rb:33:18:33:18 | 9 | type tracker without call steps with content element 0 | params_flow.rb:33:12:33:19 | * | -| params_flow.rb:33:18:33:18 | 9 | type tracker without call steps with content element :p1 | params_flow.rb:33:1:33:58 | ** | +| params_flow.rb:33:18:33:18 | 9 | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | +| params_flow.rb:33:18:33:18 | 9 | type tracker without call steps with content splat position 0 | params_flow.rb:33:12:33:19 | synthetic splat argument | | params_flow.rb:33:22:33:23 | :p2 | type tracker without call steps | params_flow.rb:33:22:33:23 | :p2 | | params_flow.rb:33:22:33:34 | Pair | type tracker without call steps | params_flow.rb:33:22:33:34 | Pair | -| params_flow.rb:33:26:33:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:26:33:34 | * | type tracker without call steps | params_flow.rb:33:26:33:34 | * | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | -| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | -| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:33:26:33:34 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:28:5:28:22 | synthetic splat argument | | params_flow.rb:33:26:33:34 | call to taint | type tracker without call steps | params_flow.rb:33:26:33:34 | call to taint | -| params_flow.rb:33:26:33:34 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:33:1:33:58 | ** | +| params_flow.rb:33:26:33:34 | call to taint | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | +| params_flow.rb:33:26:33:34 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:33:26:33:34 | synthetic splat argument | type tracker without call steps | params_flow.rb:33:26:33:34 | synthetic splat argument | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:32:33:33 | 10 | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | -| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | -| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content element :p2 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:33:32:33:33 | 10 | type tracker with call steps with content splat position 0 | params_flow.rb:28:5:28:22 | synthetic splat argument | | params_flow.rb:33:32:33:33 | 10 | type tracker without call steps | params_flow.rb:33:26:33:34 | call to taint | | params_flow.rb:33:32:33:33 | 10 | type tracker without call steps | params_flow.rb:33:32:33:33 | 10 | -| params_flow.rb:33:32:33:33 | 10 | type tracker without call steps with content element 0 | params_flow.rb:33:26:33:34 | * | -| params_flow.rb:33:32:33:33 | 10 | type tracker without call steps with content element :p2 | params_flow.rb:33:1:33:58 | ** | +| params_flow.rb:33:32:33:33 | 10 | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | +| params_flow.rb:33:32:33:33 | 10 | type tracker without call steps with content splat position 0 | params_flow.rb:33:26:33:34 | synthetic splat argument | | params_flow.rb:33:37:33:38 | :p3 | type tracker without call steps | params_flow.rb:33:37:33:38 | :p3 | | params_flow.rb:33:37:33:49 | Pair | type tracker without call steps | params_flow.rb:33:37:33:49 | Pair | -| params_flow.rb:33:41:33:49 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:41:33:49 | * | type tracker without call steps | params_flow.rb:33:41:33:49 | * | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | -| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | -| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content element :p3 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content hash-splat position :p3 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content hash-splat position :p3 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:33:41:33:49 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:29:5:29:22 | synthetic splat argument | | params_flow.rb:33:41:33:49 | call to taint | type tracker without call steps | params_flow.rb:33:41:33:49 | call to taint | -| params_flow.rb:33:41:33:49 | call to taint | type tracker without call steps with content element :p3 | params_flow.rb:33:1:33:58 | ** | +| params_flow.rb:33:41:33:49 | call to taint | type tracker without call steps with content hash-splat position :p3 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | +| params_flow.rb:33:41:33:49 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:33:41:33:49 | synthetic splat argument | type tracker without call steps | params_flow.rb:33:41:33:49 | synthetic splat argument | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:47:33:48 | 11 | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | -| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | -| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content element :p3 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content hash-splat position :p3 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content hash-splat position :p3 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:33:47:33:48 | 11 | type tracker with call steps with content splat position 0 | params_flow.rb:29:5:29:22 | synthetic splat argument | | params_flow.rb:33:47:33:48 | 11 | type tracker without call steps | params_flow.rb:33:41:33:49 | call to taint | | params_flow.rb:33:47:33:48 | 11 | type tracker without call steps | params_flow.rb:33:47:33:48 | 11 | -| params_flow.rb:33:47:33:48 | 11 | type tracker without call steps with content element 0 | params_flow.rb:33:41:33:49 | * | -| params_flow.rb:33:47:33:48 | 11 | type tracker without call steps with content element :p3 | params_flow.rb:33:1:33:58 | ** | +| params_flow.rb:33:47:33:48 | 11 | type tracker without call steps with content hash-splat position :p3 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | +| params_flow.rb:33:47:33:48 | 11 | type tracker without call steps with content splat position 0 | params_flow.rb:33:41:33:49 | synthetic splat argument | | params_flow.rb:33:52:33:53 | :p4 | type tracker without call steps | params_flow.rb:33:52:33:53 | :p4 | | params_flow.rb:33:52:33:57 | Pair | type tracker without call steps | params_flow.rb:33:52:33:57 | Pair | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:56:33:57 | "" | type tracker with call steps | params_flow.rb:30:11:30:21 | ...[...] | -| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element 0 | params_flow.rb:30:5:30:22 | * | -| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element :p4 | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content element :p4 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content hash-splat position :p4 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content hash-splat position :p4 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:33:56:33:57 | "" | type tracker with call steps with content splat position 0 | params_flow.rb:30:5:30:22 | synthetic splat argument | | params_flow.rb:33:56:33:57 | "" | type tracker without call steps | params_flow.rb:33:56:33:57 | "" | -| params_flow.rb:33:56:33:57 | "" | type tracker without call steps with content element :p4 | params_flow.rb:33:1:33:58 | ** | +| params_flow.rb:33:56:33:57 | "" | type tracker without call steps with content hash-splat position :p4 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | | params_flow.rb:34:1:34:4 | args | type tracker without call steps | params_flow.rb:34:1:34:4 | args | -| params_flow.rb:34:8:34:32 | ** | type tracker without call steps | params_flow.rb:34:8:34:32 | ** | | params_flow.rb:34:8:34:32 | Hash | type tracker without call steps | params_flow.rb:34:8:34:32 | Hash | | params_flow.rb:34:8:34:32 | call to [] | type tracker without call steps | params_flow.rb:34:8:34:32 | call to [] | +| params_flow.rb:34:8:34:32 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:34:8:34:32 | call to [] | +| params_flow.rb:34:8:34:32 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:34:8:34:32 | synthetic hash-splat argument | | params_flow.rb:34:10:34:11 | :p3 | type tracker without call steps | params_flow.rb:34:10:34:11 | :p3 | | params_flow.rb:34:10:34:22 | Pair | type tracker without call steps | params_flow.rb:34:10:34:22 | Pair | -| params_flow.rb:34:14:34:22 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:34:14:34:22 | * | type tracker without call steps | params_flow.rb:34:14:34:22 | * | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | -| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | -| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content element :p3 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:34:14:34:22 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:29:5:29:22 | synthetic splat argument | | params_flow.rb:34:14:34:22 | call to taint | type tracker without call steps | params_flow.rb:34:14:34:22 | call to taint | -| params_flow.rb:34:14:34:22 | call to taint | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | ** | | params_flow.rb:34:14:34:22 | call to taint | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | call to [] | +| params_flow.rb:34:14:34:22 | call to taint | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | synthetic hash-splat argument | | params_flow.rb:34:14:34:22 | call to taint | type tracker without call steps with content element :p3 | params_flow.rb:35:23:35:28 | ** ... | +| params_flow.rb:34:14:34:22 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:34:14:34:22 | synthetic splat argument | type tracker without call steps | params_flow.rb:34:14:34:22 | synthetic splat argument | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps | params_flow.rb:29:11:29:21 | ...[...] | -| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element 0 | params_flow.rb:29:5:29:22 | * | -| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content element :p3 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:34:20:34:21 | 12 | type tracker with call steps with content splat position 0 | params_flow.rb:29:5:29:22 | synthetic splat argument | | params_flow.rb:34:20:34:21 | 12 | type tracker without call steps | params_flow.rb:34:14:34:22 | call to taint | | params_flow.rb:34:20:34:21 | 12 | type tracker without call steps | params_flow.rb:34:20:34:21 | 12 | -| params_flow.rb:34:20:34:21 | 12 | type tracker without call steps with content element 0 | params_flow.rb:34:14:34:22 | * | -| params_flow.rb:34:20:34:21 | 12 | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | ** | | params_flow.rb:34:20:34:21 | 12 | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | call to [] | +| params_flow.rb:34:20:34:21 | 12 | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | synthetic hash-splat argument | | params_flow.rb:34:20:34:21 | 12 | type tracker without call steps with content element :p3 | params_flow.rb:35:23:35:28 | ** ... | +| params_flow.rb:34:20:34:21 | 12 | type tracker without call steps with content splat position 0 | params_flow.rb:34:14:34:22 | synthetic splat argument | | params_flow.rb:34:25:34:26 | :p4 | type tracker without call steps | params_flow.rb:34:25:34:26 | :p4 | | params_flow.rb:34:25:34:30 | Pair | type tracker without call steps | params_flow.rb:34:25:34:30 | Pair | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps | params_flow.rb:30:11:30:21 | ...[...] | -| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element 0 | params_flow.rb:30:5:30:22 | * | -| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element :p4 | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element :p4 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content element :p4 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:34:29:34:30 | "" | type tracker with call steps with content splat position 0 | params_flow.rb:30:5:30:22 | synthetic splat argument | | params_flow.rb:34:29:34:30 | "" | type tracker without call steps | params_flow.rb:34:29:34:30 | "" | -| params_flow.rb:34:29:34:30 | "" | type tracker without call steps with content element :p4 | params_flow.rb:34:8:34:32 | ** | | params_flow.rb:34:29:34:30 | "" | type tracker without call steps with content element :p4 | params_flow.rb:34:8:34:32 | call to [] | +| params_flow.rb:34:29:34:30 | "" | type tracker without call steps with content element :p4 | params_flow.rb:34:8:34:32 | synthetic hash-splat argument | | params_flow.rb:34:29:34:30 | "" | type tracker without call steps with content element :p4 | params_flow.rb:35:23:35:28 | ** ... | -| params_flow.rb:35:1:35:29 | ** | type tracker with call steps | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:35:1:35:29 | ** | type tracker with call steps | params_flow.rb:25:17:25:24 | **kwargs | -| params_flow.rb:35:1:35:29 | ** | type tracker without call steps | params_flow.rb:35:1:35:29 | ** | | params_flow.rb:35:1:35:29 | call to kwargs | type tracker without call steps | params_flow.rb:35:1:35:29 | call to kwargs | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:35:1:35:29 | synthetic hash-splat argument | | params_flow.rb:35:8:35:9 | :p1 | type tracker without call steps | params_flow.rb:35:8:35:9 | :p1 | | params_flow.rb:35:8:35:20 | Pair | type tracker without call steps | params_flow.rb:35:8:35:20 | Pair | -| params_flow.rb:35:12:35:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:35:12:35:20 | * | type tracker without call steps | params_flow.rb:35:12:35:20 | * | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | -| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | -| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | -| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:26:5:26:11 | synthetic splat argument | +| params_flow.rb:35:12:35:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:27:5:27:22 | synthetic splat argument | | params_flow.rb:35:12:35:20 | call to taint | type tracker without call steps | params_flow.rb:35:12:35:20 | call to taint | -| params_flow.rb:35:12:35:20 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:35:1:35:29 | ** | +| params_flow.rb:35:12:35:20 | call to taint | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:35:1:35:29 | synthetic hash-splat argument | +| params_flow.rb:35:12:35:20 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:35:12:35:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:35:12:35:20 | synthetic splat argument | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:35:18:35:19 | 13 | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | -| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | -| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | -| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content element :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content splat position 0 | params_flow.rb:26:5:26:11 | synthetic splat argument | +| params_flow.rb:35:18:35:19 | 13 | type tracker with call steps with content splat position 0 | params_flow.rb:27:5:27:22 | synthetic splat argument | | params_flow.rb:35:18:35:19 | 13 | type tracker without call steps | params_flow.rb:35:12:35:20 | call to taint | | params_flow.rb:35:18:35:19 | 13 | type tracker without call steps | params_flow.rb:35:18:35:19 | 13 | -| params_flow.rb:35:18:35:19 | 13 | type tracker without call steps with content element 0 | params_flow.rb:35:12:35:20 | * | -| params_flow.rb:35:18:35:19 | 13 | type tracker without call steps with content element :p1 | params_flow.rb:35:1:35:29 | ** | -| params_flow.rb:35:23:35:28 | ** ... | type tracker with call steps | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:35:18:35:19 | 13 | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:35:1:35:29 | synthetic hash-splat argument | +| params_flow.rb:35:18:35:19 | 13 | type tracker without call steps with content splat position 0 | params_flow.rb:35:12:35:20 | synthetic splat argument | +| params_flow.rb:35:23:35:28 | ** ... | type tracker with call steps | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:35:23:35:28 | ** ... | type tracker with call steps | params_flow.rb:25:17:25:24 | **kwargs | | params_flow.rb:35:23:35:28 | ** ... | type tracker without call steps | params_flow.rb:35:23:35:28 | ** ... | | params_flow.rb:37:1:37:4 | args | type tracker without call steps | params_flow.rb:37:1:37:4 | args | -| params_flow.rb:37:8:37:44 | ** | type tracker without call steps | params_flow.rb:37:8:37:44 | ** | | params_flow.rb:37:8:37:44 | Hash | type tracker without call steps | params_flow.rb:37:8:37:44 | Hash | | params_flow.rb:37:8:37:44 | call to [] | type tracker without call steps | params_flow.rb:37:8:37:44 | call to [] | +| params_flow.rb:37:8:37:44 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:37:8:37:44 | call to [] | +| params_flow.rb:37:8:37:44 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:37:8:37:44 | synthetic hash-splat argument | | params_flow.rb:37:9:37:11 | :p1 | type tracker without call steps | params_flow.rb:37:9:37:11 | :p1 | | params_flow.rb:37:9:37:24 | Pair | type tracker without call steps | params_flow.rb:37:9:37:24 | Pair | -| params_flow.rb:37:16:37:24 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:16:37:24 | * | type tracker without call steps | params_flow.rb:37:16:37:24 | * | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | -| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | -| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | -| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:26:5:26:11 | synthetic splat argument | +| params_flow.rb:37:16:37:24 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:27:5:27:22 | synthetic splat argument | | params_flow.rb:37:16:37:24 | call to taint | type tracker without call steps | params_flow.rb:37:16:37:24 | call to taint | -| params_flow.rb:37:16:37:24 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:37:8:37:44 | ** | | params_flow.rb:37:16:37:24 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:37:8:37:44 | call to [] | +| params_flow.rb:37:16:37:24 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:37:8:37:44 | synthetic hash-splat argument | | params_flow.rb:37:16:37:24 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:38:8:38:13 | ** ... | +| params_flow.rb:37:16:37:24 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:37:16:37:24 | synthetic splat argument | type tracker without call steps | params_flow.rb:37:16:37:24 | synthetic splat argument | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps | params_flow.rb:25:12:25:13 | p1 | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps | params_flow.rb:27:11:27:21 | ...[...] | -| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:26:5:26:11 | * | -| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element 0 | params_flow.rb:27:5:27:22 | * | -| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content element :p1 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content splat position 0 | params_flow.rb:26:5:26:11 | synthetic splat argument | +| params_flow.rb:37:22:37:23 | 14 | type tracker with call steps with content splat position 0 | params_flow.rb:27:5:27:22 | synthetic splat argument | | params_flow.rb:37:22:37:23 | 14 | type tracker without call steps | params_flow.rb:37:16:37:24 | call to taint | | params_flow.rb:37:22:37:23 | 14 | type tracker without call steps | params_flow.rb:37:22:37:23 | 14 | -| params_flow.rb:37:22:37:23 | 14 | type tracker without call steps with content element 0 | params_flow.rb:37:16:37:24 | * | -| params_flow.rb:37:22:37:23 | 14 | type tracker without call steps with content element :p1 | params_flow.rb:37:8:37:44 | ** | | params_flow.rb:37:22:37:23 | 14 | type tracker without call steps with content element :p1 | params_flow.rb:37:8:37:44 | call to [] | +| params_flow.rb:37:22:37:23 | 14 | type tracker without call steps with content element :p1 | params_flow.rb:37:8:37:44 | synthetic hash-splat argument | | params_flow.rb:37:22:37:23 | 14 | type tracker without call steps with content element :p1 | params_flow.rb:38:8:38:13 | ** ... | +| params_flow.rb:37:22:37:23 | 14 | type tracker without call steps with content splat position 0 | params_flow.rb:37:16:37:24 | synthetic splat argument | | params_flow.rb:37:27:37:29 | :p2 | type tracker without call steps | params_flow.rb:37:27:37:29 | :p2 | | params_flow.rb:37:27:37:42 | Pair | type tracker without call steps | params_flow.rb:37:27:37:42 | Pair | -| params_flow.rb:37:34:37:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:34:37:42 | * | type tracker without call steps | params_flow.rb:37:34:37:42 | * | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | -| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | -| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:37:34:37:42 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:28:5:28:22 | synthetic splat argument | | params_flow.rb:37:34:37:42 | call to taint | type tracker without call steps | params_flow.rb:37:34:37:42 | call to taint | -| params_flow.rb:37:34:37:42 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | ** | | params_flow.rb:37:34:37:42 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | call to [] | +| params_flow.rb:37:34:37:42 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | synthetic hash-splat argument | | params_flow.rb:37:34:37:42 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:38:8:38:13 | ** ... | +| params_flow.rb:37:34:37:42 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:37:34:37:42 | synthetic splat argument | type tracker without call steps | params_flow.rb:37:34:37:42 | synthetic splat argument | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps | params_flow.rb:28:11:28:21 | ...[...] | -| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element 0 | params_flow.rb:28:5:28:22 | * | -| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content element :p2 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:37:40:37:41 | 15 | type tracker with call steps with content splat position 0 | params_flow.rb:28:5:28:22 | synthetic splat argument | | params_flow.rb:37:40:37:41 | 15 | type tracker without call steps | params_flow.rb:37:34:37:42 | call to taint | | params_flow.rb:37:40:37:41 | 15 | type tracker without call steps | params_flow.rb:37:40:37:41 | 15 | -| params_flow.rb:37:40:37:41 | 15 | type tracker without call steps with content element 0 | params_flow.rb:37:34:37:42 | * | -| params_flow.rb:37:40:37:41 | 15 | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | ** | | params_flow.rb:37:40:37:41 | 15 | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | call to [] | +| params_flow.rb:37:40:37:41 | 15 | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | synthetic hash-splat argument | | params_flow.rb:37:40:37:41 | 15 | type tracker without call steps with content element :p2 | params_flow.rb:38:8:38:13 | ** ... | +| params_flow.rb:37:40:37:41 | 15 | type tracker without call steps with content splat position 0 | params_flow.rb:37:34:37:42 | synthetic splat argument | | params_flow.rb:38:1:38:14 | call to kwargs | type tracker without call steps | params_flow.rb:38:1:38:14 | call to kwargs | -| params_flow.rb:38:8:38:13 | ** ... | type tracker with call steps | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:38:8:38:13 | ** ... | type tracker with call steps | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:38:8:38:13 | ** ... | type tracker with call steps | params_flow.rb:25:17:25:24 | **kwargs | | params_flow.rb:38:8:38:13 | ** ... | type tracker without call steps | params_flow.rb:38:8:38:13 | ** ... | | params_flow.rb:40:1:40:4 | args | type tracker without call steps | params_flow.rb:40:1:40:4 | args | -| params_flow.rb:40:8:40:26 | ** | type tracker without call steps | params_flow.rb:40:8:40:26 | ** | | params_flow.rb:40:8:40:26 | Hash | type tracker without call steps | params_flow.rb:40:8:40:26 | Hash | | params_flow.rb:40:8:40:26 | call to [] | type tracker without call steps | params_flow.rb:40:8:40:26 | call to [] | +| params_flow.rb:40:8:40:26 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:40:8:40:26 | call to [] | +| params_flow.rb:40:8:40:26 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:40:8:40:26 | synthetic hash-splat argument | | params_flow.rb:40:9:40:11 | :p1 | type tracker without call steps | params_flow.rb:40:9:40:11 | :p1 | | params_flow.rb:40:9:40:24 | Pair | type tracker without call steps | params_flow.rb:40:9:40:24 | Pair | -| params_flow.rb:40:16:40:24 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:40:16:40:24 | * | type tracker without call steps | params_flow.rb:40:16:40:24 | * | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | -| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:40:16:40:24 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:40:16:40:24 | call to taint | type tracker without call steps | params_flow.rb:40:16:40:24 | call to taint | -| params_flow.rb:40:16:40:24 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:40:8:40:26 | ** | | params_flow.rb:40:16:40:24 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:40:8:40:26 | call to [] | +| params_flow.rb:40:16:40:24 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:40:8:40:26 | synthetic hash-splat argument | | params_flow.rb:40:16:40:24 | call to taint | type tracker without call steps with content element :p1 | params_flow.rb:41:24:41:29 | ** ... | +| params_flow.rb:40:16:40:24 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:40:16:40:24 | synthetic splat argument | type tracker without call steps | params_flow.rb:40:16:40:24 | synthetic splat argument | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:40:22:40:23 | 16 | type tracker with call steps | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element 0 | params_flow.rb:17:5:17:11 | * | -| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:40:22:40:23 | 16 | type tracker with call steps with content splat position 0 | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:40:22:40:23 | 16 | type tracker without call steps | params_flow.rb:40:16:40:24 | call to taint | | params_flow.rb:40:22:40:23 | 16 | type tracker without call steps | params_flow.rb:40:22:40:23 | 16 | -| params_flow.rb:40:22:40:23 | 16 | type tracker without call steps with content element 0 | params_flow.rb:40:16:40:24 | * | -| params_flow.rb:40:22:40:23 | 16 | type tracker without call steps with content element :p1 | params_flow.rb:40:8:40:26 | ** | | params_flow.rb:40:22:40:23 | 16 | type tracker without call steps with content element :p1 | params_flow.rb:40:8:40:26 | call to [] | +| params_flow.rb:40:22:40:23 | 16 | type tracker without call steps with content element :p1 | params_flow.rb:40:8:40:26 | synthetic hash-splat argument | | params_flow.rb:40:22:40:23 | 16 | type tracker without call steps with content element :p1 | params_flow.rb:41:24:41:29 | ** ... | -| params_flow.rb:41:1:41:30 | ** | type tracker with call steps | params_flow.rb:16:1:19:3 | **kwargs | -| params_flow.rb:41:1:41:30 | ** | type tracker without call steps | params_flow.rb:41:1:41:30 | ** | +| params_flow.rb:40:22:40:23 | 16 | type tracker without call steps with content splat position 0 | params_flow.rb:40:16:40:24 | synthetic splat argument | | params_flow.rb:41:1:41:30 | call to keyword | type tracker without call steps | params_flow.rb:41:1:41:30 | call to keyword | +| params_flow.rb:41:1:41:30 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:41:1:41:30 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:41:1:41:30 | synthetic hash-splat argument | | params_flow.rb:41:9:41:10 | :p2 | type tracker without call steps | params_flow.rb:41:9:41:10 | :p2 | | params_flow.rb:41:9:41:21 | Pair | type tracker without call steps | params_flow.rb:41:9:41:21 | Pair | -| params_flow.rb:41:13:41:21 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:41:13:41:21 | * | type tracker without call steps | params_flow.rb:41:13:41:21 | * | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | -| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:41:13:41:21 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:41:13:41:21 | call to taint | type tracker without call steps | params_flow.rb:41:13:41:21 | call to taint | -| params_flow.rb:41:13:41:21 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:41:1:41:30 | ** | +| params_flow.rb:41:13:41:21 | call to taint | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:41:1:41:30 | synthetic hash-splat argument | +| params_flow.rb:41:13:41:21 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:41:13:41:21 | synthetic splat argument | type tracker without call steps | params_flow.rb:41:13:41:21 | synthetic splat argument | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:41:19:41:20 | 17 | type tracker with call steps | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element 0 | params_flow.rb:18:5:18:11 | * | -| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content element :p2 | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:41:19:41:20 | 17 | type tracker with call steps with content splat position 0 | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:41:19:41:20 | 17 | type tracker without call steps | params_flow.rb:41:13:41:21 | call to taint | | params_flow.rb:41:19:41:20 | 17 | type tracker without call steps | params_flow.rb:41:19:41:20 | 17 | -| params_flow.rb:41:19:41:20 | 17 | type tracker without call steps with content element 0 | params_flow.rb:41:13:41:21 | * | -| params_flow.rb:41:19:41:20 | 17 | type tracker without call steps with content element :p2 | params_flow.rb:41:1:41:30 | ** | -| params_flow.rb:41:24:41:29 | ** ... | type tracker with call steps | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:41:19:41:20 | 17 | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:41:1:41:30 | synthetic hash-splat argument | +| params_flow.rb:41:19:41:20 | 17 | type tracker without call steps with content splat position 0 | params_flow.rb:41:13:41:21 | synthetic splat argument | +| params_flow.rb:41:24:41:29 | ** ... | type tracker with call steps | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | | params_flow.rb:41:24:41:29 | ** ... | type tracker without call steps | params_flow.rb:41:24:41:29 | ** ... | | params_flow.rb:43:1:43:4 | args | type tracker without call steps | params_flow.rb:43:1:43:4 | args | -| params_flow.rb:43:8:43:18 | * | type tracker without call steps | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:8:43:18 | Array | type tracker without call steps | params_flow.rb:43:8:43:18 | Array | | params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | +| params_flow.rb:43:8:43:18 | call to [] | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps | params_flow.rb:43:8:43:18 | call to [] | | params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | -| params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:44:1:44:28 | * | -| params_flow.rb:43:9:43:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:43:9:43:17 | * | type tracker without call steps | params_flow.rb:43:9:43:17 | * | +| params_flow.rb:43:8:43:18 | call to [] | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:44:1:44:28 | synthetic splat argument | +| params_flow.rb:43:8:43:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:8:43:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:8:43:18 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:43:8:43:18 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:43:8:43:18 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | +| params_flow.rb:43:8:43:18 | synthetic splat argument | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:43:8:43:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:43:8:43:18 | call to [] | +| params_flow.rb:43:8:43:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:43:8:43:18 | synthetic splat argument | +| params_flow.rb:43:8:43:18 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | +| params_flow.rb:43:8:43:18 | synthetic splat argument | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:44:1:44:28 | synthetic splat argument | | params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | +| params_flow.rb:43:9:43:17 | call to taint | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | -| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | * | -| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:43:8:43:18 | call to [] | -| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | -| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:44:1:44:28 | * | +| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | call to [] | +| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | synthetic splat argument | +| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:44:23:44:27 | * ... | +| params_flow.rb:43:9:43:17 | call to taint | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:44:1:44:28 | synthetic splat argument | +| params_flow.rb:43:9:43:17 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:43:9:43:17 | synthetic splat argument | type tracker without call steps | params_flow.rb:43:9:43:17 | synthetic splat argument | | params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:43:15:43:16 | 17 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | +| params_flow.rb:43:15:43:16 | 17 | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:15:43:16 | 17 | type tracker without call steps | params_flow.rb:43:15:43:16 | 17 | -| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | * | -| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 | params_flow.rb:43:9:43:17 | * | -| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 or unknown | params_flow.rb:43:8:43:18 | call to [] | -| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 or unknown | params_flow.rb:44:23:44:27 | * ... | -| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 1 | params_flow.rb:44:1:44:28 | * | -| params_flow.rb:44:1:44:28 | * | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:44:1:44:28 | * | type tracker without call steps | params_flow.rb:44:1:44:28 | * | +| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | call to [] | +| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 | params_flow.rb:43:8:43:18 | synthetic splat argument | +| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content element 0 | params_flow.rb:44:23:44:27 | * ... | +| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content splat position 0 | params_flow.rb:43:9:43:17 | synthetic splat argument | +| params_flow.rb:43:15:43:16 | 17 | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:44:1:44:28 | synthetic splat argument | | params_flow.rb:44:1:44:28 | call to positional | type tracker without call steps | params_flow.rb:44:1:44:28 | call to positional | -| params_flow.rb:44:12:44:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:44:12:44:20 | * | type tracker without call steps | params_flow.rb:44:12:44:20 | * | +| params_flow.rb:44:1:44:28 | synthetic splat argument | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:44:1:44:28 | synthetic splat argument | type tracker without call steps | params_flow.rb:44:1:44:28 | synthetic splat argument | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:44:12:44:20 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:44:12:44:20 | call to taint | type tracker without call steps | params_flow.rb:44:12:44:20 | call to taint | -| params_flow.rb:44:12:44:20 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:44:1:44:28 | * | +| params_flow.rb:44:12:44:20 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:44:1:44:28 | synthetic splat argument | +| params_flow.rb:44:12:44:20 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:44:12:44:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:44:12:44:20 | synthetic splat argument | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:44:18:44:19 | 16 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content splat position 0 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:44:18:44:19 | 16 | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:44:18:44:19 | 16 | type tracker without call steps | params_flow.rb:44:12:44:20 | call to taint | | params_flow.rb:44:18:44:19 | 16 | type tracker without call steps | params_flow.rb:44:18:44:19 | 16 | -| params_flow.rb:44:18:44:19 | 16 | type tracker without call steps with content element 0 | params_flow.rb:44:1:44:28 | * | -| params_flow.rb:44:18:44:19 | 16 | type tracker without call steps with content element 0 | params_flow.rb:44:12:44:20 | * | +| params_flow.rb:44:18:44:19 | 16 | type tracker without call steps with content splat position 0 | params_flow.rb:44:1:44:28 | synthetic splat argument | +| params_flow.rb:44:18:44:19 | 16 | type tracker without call steps with content splat position 0 | params_flow.rb:44:12:44:20 | synthetic splat argument | | params_flow.rb:44:23:44:27 | * ... | type tracker without call steps | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:46:1:46:4 | args | type tracker without call steps | params_flow.rb:46:1:46:4 | args | -| params_flow.rb:46:8:46:29 | * | type tracker without call steps | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:8:46:29 | Array | type tracker without call steps | params_flow.rb:46:8:46:29 | Array | | params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:46:8:46:29 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:46:8:46:29 | call to [] | type tracker without call steps | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:46:8:46:29 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | -| params_flow.rb:46:9:46:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:9:46:17 | * | type tracker without call steps | params_flow.rb:46:9:46:17 | * | +| params_flow.rb:46:8:46:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:8:46:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:8:46:29 | synthetic splat argument | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:46:8:46:29 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:46:8:46:29 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:46:8:46:29 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | +| params_flow.rb:46:8:46:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:46:8:46:29 | call to [] | +| params_flow.rb:46:8:46:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:46:8:46:29 | synthetic splat argument | +| params_flow.rb:46:8:46:29 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:46:9:46:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps | params_flow.rb:46:9:46:17 | call to taint | -| params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | * | -| params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:46:8:46:29 | call to [] | -| params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | call to [] | +| params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | synthetic splat argument | +| params_flow.rb:46:9:46:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:46:9:46:17 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:46:9:46:17 | synthetic splat argument | type tracker without call steps | params_flow.rb:46:9:46:17 | synthetic splat argument | | params_flow.rb:46:15:46:16 | 18 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:15:46:16 | 18 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:46:15:46:16 | 18 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:46:15:46:16 | 18 | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:46:15:46:16 | 18 | type tracker without call steps | params_flow.rb:46:15:46:16 | 18 | -| params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | * | -| params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 | params_flow.rb:46:9:46:17 | * | -| params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 or unknown | params_flow.rb:46:8:46:29 | call to [] | -| params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 or unknown | params_flow.rb:47:12:47:16 | * ... | -| params_flow.rb:46:20:46:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:20:46:28 | * | type tracker without call steps | params_flow.rb:46:20:46:28 | * | +| params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | call to [] | +| params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 | params_flow.rb:46:8:46:29 | synthetic splat argument | +| params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content element 0 | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:46:15:46:16 | 18 | type tracker without call steps with content splat position 0 | params_flow.rb:46:9:46:17 | synthetic splat argument | | params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:46:20:46:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | | params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps | params_flow.rb:46:20:46:28 | call to taint | -| params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | * | -| params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:46:8:46:29 | call to [] | -| params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | call to [] | +| params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | synthetic splat argument | +| params_flow.rb:46:20:46:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:46:20:46:28 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:46:20:46:28 | synthetic splat argument | type tracker without call steps | params_flow.rb:46:20:46:28 | synthetic splat argument | | params_flow.rb:46:26:46:27 | 19 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:26:46:27 | 19 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:46:26:46:27 | 19 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | -| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 1 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:46:26:46:27 | 19 | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps | params_flow.rb:46:20:46:28 | call to taint | | params_flow.rb:46:26:46:27 | 19 | type tracker without call steps | params_flow.rb:46:26:46:27 | 19 | -| params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 0 | params_flow.rb:46:20:46:28 | * | -| params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | * | -| params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 or unknown | params_flow.rb:46:8:46:29 | call to [] | -| params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 or unknown | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | call to [] | +| params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | synthetic splat argument | +| params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content element 1 | params_flow.rb:47:12:47:16 | * ... | +| params_flow.rb:46:26:46:27 | 19 | type tracker without call steps with content splat position 0 | params_flow.rb:46:20:46:28 | synthetic splat argument | | params_flow.rb:47:1:47:17 | call to positional | type tracker without call steps | params_flow.rb:47:1:47:17 | call to positional | -| params_flow.rb:47:12:47:16 | * ... | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:47:12:47:16 | * ... | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:47:12:47:16 | * ... | type tracker without call steps | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:49:1:53:3 | &block | type tracker without call steps | params_flow.rb:49:1:53:3 | &block | | params_flow.rb:49:1:53:3 | posargs | type tracker without call steps | params_flow.rb:49:1:53:3 | posargs | | params_flow.rb:49:1:53:3 | self in posargs | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:49:1:53:3 | self in posargs | type tracker without call steps | params_flow.rb:49:1:53:3 | self in posargs | -| params_flow.rb:49:1:53:3 | synthetic *args | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:49:1:53:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:49:13:49:14 | p1 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:49:13:49:14 | p1 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:49:13:49:14 | p1 | type tracker without call steps | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:49:13:49:14 | p1 | type tracker without call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:49:13:49:14 | p1 | type tracker without call steps with content element 0 | params_flow.rb:50:5:50:11 | * | +| params_flow.rb:49:13:49:14 | p1 | type tracker without call steps with content splat position 0 | params_flow.rb:50:5:50:11 | synthetic splat argument | | params_flow.rb:49:17:49:24 | *posargs | type tracker without call steps | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:49:18:49:24 | posargs | type tracker without call steps | params_flow.rb:49:18:49:24 | posargs | -| params_flow.rb:50:5:50:11 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:50:5:50:11 | * | type tracker without call steps | params_flow.rb:50:5:50:11 | * | | params_flow.rb:50:5:50:11 | call to sink | type tracker without call steps | params_flow.rb:50:5:50:11 | call to sink | -| params_flow.rb:51:5:51:21 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:51:5:51:21 | * | type tracker without call steps | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:50:5:50:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:50:5:50:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:50:5:50:11 | synthetic splat argument | | params_flow.rb:51:5:51:21 | call to sink | type tracker without call steps | params_flow.rb:51:5:51:21 | call to sink | -| params_flow.rb:51:11:51:20 | * | type tracker without call steps | params_flow.rb:51:11:51:20 | * | +| params_flow.rb:51:5:51:21 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:51:5:51:21 | synthetic splat argument | type tracker without call steps | params_flow.rb:51:5:51:21 | synthetic splat argument | | params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:51:11:51:20 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:51:11:51:20 | ...[...] | type tracker without call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:51:11:51:20 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:51:11:51:20 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:51:5:51:21 | synthetic splat argument | +| params_flow.rb:51:11:51:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:51:11:51:20 | synthetic splat argument | | params_flow.rb:51:19:51:19 | 0 | type tracker without call steps | params_flow.rb:51:19:51:19 | 0 | -| params_flow.rb:51:19:51:19 | 0 | type tracker without call steps with content element 0 | params_flow.rb:51:11:51:20 | * | -| params_flow.rb:52:5:52:21 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:52:5:52:21 | * | type tracker without call steps | params_flow.rb:52:5:52:21 | * | +| params_flow.rb:51:19:51:19 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:51:11:51:20 | synthetic splat argument | | params_flow.rb:52:5:52:21 | call to sink | type tracker without call steps | params_flow.rb:52:5:52:21 | call to sink | | params_flow.rb:52:5:52:21 | call to sink | type tracker without call steps | params_flow.rb:55:1:55:29 | call to posargs | | params_flow.rb:52:5:52:21 | call to sink | type tracker without call steps | params_flow.rb:58:1:58:25 | call to posargs | | params_flow.rb:52:5:52:21 | call to sink | type tracker without call steps | params_flow.rb:61:1:61:14 | call to posargs | -| params_flow.rb:52:11:52:20 | * | type tracker without call steps | params_flow.rb:52:11:52:20 | * | +| params_flow.rb:52:5:52:21 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:52:5:52:21 | synthetic splat argument | type tracker without call steps | params_flow.rb:52:5:52:21 | synthetic splat argument | | params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:52:11:52:20 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:52:11:52:20 | ...[...] | type tracker without call steps | params_flow.rb:52:11:52:20 | ...[...] | -| params_flow.rb:52:11:52:20 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:52:5:52:21 | * | +| params_flow.rb:52:11:52:20 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:52:5:52:21 | synthetic splat argument | +| params_flow.rb:52:11:52:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:52:11:52:20 | synthetic splat argument | | params_flow.rb:52:19:52:19 | 1 | type tracker without call steps | params_flow.rb:52:19:52:19 | 1 | -| params_flow.rb:52:19:52:19 | 1 | type tracker without call steps with content element 0 | params_flow.rb:52:11:52:20 | * | -| params_flow.rb:55:1:55:29 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:1:55:29 | * | type tracker without call steps | params_flow.rb:55:1:55:29 | * | +| params_flow.rb:52:19:52:19 | 1 | type tracker without call steps with content splat position 0 | params_flow.rb:52:11:52:20 | synthetic splat argument | | params_flow.rb:55:1:55:29 | call to posargs | type tracker without call steps | params_flow.rb:55:1:55:29 | call to posargs | -| params_flow.rb:55:9:55:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:9:55:17 | * | type tracker without call steps | params_flow.rb:55:9:55:17 | * | +| params_flow.rb:55:1:55:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:55:1:55:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:55:1:55:29 | synthetic splat argument | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:55:9:55:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:50:5:50:11 | synthetic splat argument | | params_flow.rb:55:9:55:17 | call to taint | type tracker without call steps | params_flow.rb:55:9:55:17 | call to taint | -| params_flow.rb:55:9:55:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:55:1:55:29 | * | +| params_flow.rb:55:9:55:17 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:55:1:55:29 | synthetic splat argument | +| params_flow.rb:55:9:55:17 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:55:9:55:17 | synthetic splat argument | type tracker without call steps | params_flow.rb:55:9:55:17 | synthetic splat argument | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:15:55:16 | 20 | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content splat position 0 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:55:15:55:16 | 20 | type tracker with call steps with content splat position 0 | params_flow.rb:50:5:50:11 | synthetic splat argument | | params_flow.rb:55:15:55:16 | 20 | type tracker without call steps | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:55:15:55:16 | 20 | type tracker without call steps | params_flow.rb:55:15:55:16 | 20 | -| params_flow.rb:55:15:55:16 | 20 | type tracker without call steps with content element 0 | params_flow.rb:55:1:55:29 | * | -| params_flow.rb:55:15:55:16 | 20 | type tracker without call steps with content element 0 | params_flow.rb:55:9:55:17 | * | -| params_flow.rb:55:20:55:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:20:55:28 | * | type tracker without call steps | params_flow.rb:55:20:55:28 | * | +| params_flow.rb:55:15:55:16 | 20 | type tracker without call steps with content splat position 0 | params_flow.rb:55:1:55:29 | synthetic splat argument | +| params_flow.rb:55:15:55:16 | 20 | type tracker without call steps with content splat position 0 | params_flow.rb:55:9:55:17 | synthetic splat argument | | params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:51:5:51:21 | synthetic splat argument | +| params_flow.rb:55:20:55:28 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:55:20:55:28 | call to taint | type tracker without call steps | params_flow.rb:55:20:55:28 | call to taint | -| params_flow.rb:55:20:55:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:55:1:55:29 | * | +| params_flow.rb:55:20:55:28 | call to taint | type tracker without call steps with content splat position 1 | params_flow.rb:55:1:55:29 | synthetic splat argument | +| params_flow.rb:55:20:55:28 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:55:20:55:28 | synthetic splat argument | type tracker without call steps | params_flow.rb:55:20:55:28 | synthetic splat argument | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:55:26:55:27 | 21 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content splat position 0 | params_flow.rb:51:5:51:21 | synthetic splat argument | +| params_flow.rb:55:26:55:27 | 21 | type tracker with call steps with content splat position 1 | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:55:26:55:27 | 21 | type tracker without call steps | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:55:26:55:27 | 21 | type tracker without call steps | params_flow.rb:55:26:55:27 | 21 | -| params_flow.rb:55:26:55:27 | 21 | type tracker without call steps with content element 0 | params_flow.rb:55:20:55:28 | * | -| params_flow.rb:55:26:55:27 | 21 | type tracker without call steps with content element 1 | params_flow.rb:55:1:55:29 | * | +| params_flow.rb:55:26:55:27 | 21 | type tracker without call steps with content splat position 0 | params_flow.rb:55:20:55:28 | synthetic splat argument | +| params_flow.rb:55:26:55:27 | 21 | type tracker without call steps with content splat position 1 | params_flow.rb:55:1:55:29 | synthetic splat argument | | params_flow.rb:57:1:57:4 | args | type tracker without call steps | params_flow.rb:57:1:57:4 | args | -| params_flow.rb:57:8:57:18 | * | type tracker without call steps | params_flow.rb:57:8:57:18 | * | | params_flow.rb:57:8:57:18 | Array | type tracker without call steps | params_flow.rb:57:8:57:18 | Array | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | -| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | -| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:51:5:51:21 | synthetic splat argument | +| params_flow.rb:57:8:57:18 | call to [] | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps | params_flow.rb:57:8:57:18 | call to [] | | params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | -| params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:58:1:58:25 | * | -| params_flow.rb:57:9:57:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:57:9:57:17 | * | type tracker without call steps | params_flow.rb:57:9:57:17 | * | +| params_flow.rb:57:8:57:18 | call to [] | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:58:1:58:25 | synthetic splat argument | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:51:5:51:21 | synthetic splat argument | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:57:8:57:18 | call to [] | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:57:8:57:18 | synthetic splat argument | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | +| params_flow.rb:57:8:57:18 | synthetic splat argument | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:58:1:58:25 | synthetic splat argument | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | -| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | -| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | -| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:51:5:51:21 | synthetic splat argument | +| params_flow.rb:57:9:57:17 | call to taint | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | -| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | * | -| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:57:8:57:18 | call to [] | -| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | -| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:58:1:58:25 | * | +| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | call to [] | +| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | synthetic splat argument | +| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:58:20:58:24 | * ... | +| params_flow.rb:57:9:57:17 | call to taint | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:58:1:58:25 | synthetic splat argument | +| params_flow.rb:57:9:57:17 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:57:9:57:17 | synthetic splat argument | type tracker without call steps | params_flow.rb:57:9:57:17 | synthetic splat argument | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content splat position 0 | params_flow.rb:51:5:51:21 | synthetic splat argument | +| params_flow.rb:57:15:57:16 | 22 | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps | params_flow.rb:57:9:57:17 | call to taint | | params_flow.rb:57:15:57:16 | 22 | type tracker without call steps | params_flow.rb:57:15:57:16 | 22 | -| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | * | -| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 | params_flow.rb:57:9:57:17 | * | -| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 or unknown | params_flow.rb:57:8:57:18 | call to [] | -| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 or unknown | params_flow.rb:58:20:58:24 | * ... | -| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 1 | params_flow.rb:58:1:58:25 | * | -| params_flow.rb:58:1:58:25 | * | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:58:1:58:25 | * | type tracker without call steps | params_flow.rb:58:1:58:25 | * | +| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | call to [] | +| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 | params_flow.rb:57:8:57:18 | synthetic splat argument | +| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content element 0 | params_flow.rb:58:20:58:24 | * ... | +| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content splat position 0 | params_flow.rb:57:9:57:17 | synthetic splat argument | +| params_flow.rb:57:15:57:16 | 22 | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:58:1:58:25 | synthetic splat argument | | params_flow.rb:58:1:58:25 | call to posargs | type tracker without call steps | params_flow.rb:58:1:58:25 | call to posargs | -| params_flow.rb:58:9:58:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:58:9:58:17 | * | type tracker without call steps | params_flow.rb:58:9:58:17 | * | +| params_flow.rb:58:1:58:25 | synthetic splat argument | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:58:1:58:25 | synthetic splat argument | type tracker without call steps | params_flow.rb:58:1:58:25 | synthetic splat argument | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:58:9:58:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:50:5:50:11 | synthetic splat argument | | params_flow.rb:58:9:58:17 | call to taint | type tracker without call steps | params_flow.rb:58:9:58:17 | call to taint | -| params_flow.rb:58:9:58:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:58:1:58:25 | * | +| params_flow.rb:58:9:58:17 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:58:1:58:25 | synthetic splat argument | +| params_flow.rb:58:9:58:17 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:58:9:58:17 | synthetic splat argument | type tracker without call steps | params_flow.rb:58:9:58:17 | synthetic splat argument | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:58:15:58:16 | 23 | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content splat position 0 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:58:15:58:16 | 23 | type tracker with call steps with content splat position 0 | params_flow.rb:50:5:50:11 | synthetic splat argument | | params_flow.rb:58:15:58:16 | 23 | type tracker without call steps | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:58:15:58:16 | 23 | type tracker without call steps | params_flow.rb:58:15:58:16 | 23 | -| params_flow.rb:58:15:58:16 | 23 | type tracker without call steps with content element 0 | params_flow.rb:58:1:58:25 | * | -| params_flow.rb:58:15:58:16 | 23 | type tracker without call steps with content element 0 | params_flow.rb:58:9:58:17 | * | +| params_flow.rb:58:15:58:16 | 23 | type tracker without call steps with content splat position 0 | params_flow.rb:58:1:58:25 | synthetic splat argument | +| params_flow.rb:58:15:58:16 | 23 | type tracker without call steps with content splat position 0 | params_flow.rb:58:9:58:17 | synthetic splat argument | | params_flow.rb:58:20:58:24 | * ... | type tracker with call steps | params_flow.rb:49:17:49:24 | *posargs | | params_flow.rb:58:20:58:24 | * ... | type tracker without call steps | params_flow.rb:58:20:58:24 | * ... | | params_flow.rb:60:1:60:4 | args | type tracker without call steps | params_flow.rb:60:1:60:4 | args | -| params_flow.rb:60:8:60:29 | * | type tracker without call steps | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:8:60:29 | Array | type tracker without call steps | params_flow.rb:60:8:60:29 | Array | | params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | -| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:60:8:60:29 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:50:5:50:11 | synthetic splat argument | | params_flow.rb:60:8:60:29 | call to [] | type tracker without call steps | params_flow.rb:60:8:60:29 | call to [] | | params_flow.rb:60:8:60:29 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | -| params_flow.rb:60:9:60:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:9:60:17 | * | type tracker without call steps | params_flow.rb:60:9:60:17 | * | +| params_flow.rb:60:8:60:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:8:60:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:8:60:29 | synthetic splat argument | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:60:8:60:29 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:60:8:60:29 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:60:8:60:29 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:50:5:50:11 | synthetic splat argument | +| params_flow.rb:60:8:60:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:60:8:60:29 | call to [] | +| params_flow.rb:60:8:60:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:60:8:60:29 | synthetic splat argument | +| params_flow.rb:60:8:60:29 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | -| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:60:9:60:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:50:5:50:11 | synthetic splat argument | | params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps | params_flow.rb:60:9:60:17 | call to taint | -| params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | * | -| params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:60:8:60:29 | call to [] | -| params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | call to [] | +| params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | synthetic splat argument | +| params_flow.rb:60:9:60:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:60:9:60:17 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:60:9:60:17 | synthetic splat argument | type tracker without call steps | params_flow.rb:60:9:60:17 | synthetic splat argument | | params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:50:5:50:11 | * | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:51:5:51:21 | * | -| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:60:15:60:16 | 24 | type tracker with call steps with content splat position 0 | params_flow.rb:50:5:50:11 | synthetic splat argument | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:60:15:60:16 | 24 | type tracker without call steps | params_flow.rb:60:15:60:16 | 24 | -| params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | * | -| params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 | params_flow.rb:60:9:60:17 | * | -| params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 or unknown | params_flow.rb:60:8:60:29 | call to [] | -| params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 or unknown | params_flow.rb:61:9:61:13 | * ... | -| params_flow.rb:60:20:60:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:20:60:28 | * | type tracker without call steps | params_flow.rb:60:20:60:28 | * | +| params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | call to [] | +| params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 | params_flow.rb:60:8:60:29 | synthetic splat argument | +| params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content element 0 | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:60:15:60:16 | 24 | type tracker without call steps with content splat position 0 | params_flow.rb:60:9:60:17 | synthetic splat argument | | params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | -| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | -| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:60:20:60:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:51:5:51:21 | synthetic splat argument | | params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps | params_flow.rb:60:20:60:28 | call to taint | -| params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | * | -| params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:60:8:60:29 | call to [] | -| params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | call to [] | +| params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | synthetic splat argument | +| params_flow.rb:60:20:60:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:60:20:60:28 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:60:20:60:28 | synthetic splat argument | type tracker without call steps | params_flow.rb:60:20:60:28 | synthetic splat argument | | params_flow.rb:60:26:60:27 | 25 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:26:60:27 | 25 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps | params_flow.rb:52:11:52:20 | ...[...] | -| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:52:5:52:21 | * | -| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 1 | params_flow.rb:49:17:49:24 | *posargs | -| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 1 or unknown | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 0 | params_flow.rb:49:17:49:24 | *posargs | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:60:26:60:27 | 25 | type tracker with call steps with content splat position 0 | params_flow.rb:51:5:51:21 | synthetic splat argument | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps | params_flow.rb:60:20:60:28 | call to taint | | params_flow.rb:60:26:60:27 | 25 | type tracker without call steps | params_flow.rb:60:26:60:27 | 25 | -| params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 0 | params_flow.rb:60:20:60:28 | * | -| params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | * | -| params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 or unknown | params_flow.rb:60:8:60:29 | call to [] | -| params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 or unknown | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | call to [] | +| params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 | params_flow.rb:60:8:60:29 | synthetic splat argument | +| params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content element 1 | params_flow.rb:61:9:61:13 | * ... | +| params_flow.rb:60:26:60:27 | 25 | type tracker without call steps with content splat position 0 | params_flow.rb:60:20:60:28 | synthetic splat argument | | params_flow.rb:61:1:61:14 | call to posargs | type tracker without call steps | params_flow.rb:61:1:61:14 | call to posargs | -| params_flow.rb:61:9:61:13 | * ... | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:61:9:61:13 | * ... | type tracker with call steps | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:61:9:61:13 | * ... | type tracker without call steps | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:63:1:63:4 | args | type tracker without call steps | params_flow.rb:63:1:63:4 | args | -| params_flow.rb:63:8:63:16 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:63:8:63:16 | * | type tracker without call steps | params_flow.rb:63:8:63:16 | * | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps | params_flow.rb:65:10:65:13 | ...[...] | -| params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:65:5:65:13 | * | | params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | +| params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:63:8:63:16 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:65:5:65:13 | synthetic splat argument | | params_flow.rb:63:8:63:16 | call to taint | type tracker without call steps | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:63:8:63:16 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:67:12:67:16 | * ... | +| params_flow.rb:63:8:63:16 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:63:8:63:16 | synthetic splat argument | type tracker without call steps | params_flow.rb:63:8:63:16 | synthetic splat argument | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps | params_flow.rb:65:10:65:13 | ...[...] | -| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 | params_flow.rb:65:5:65:13 | * | | params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | +| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:63:14:63:15 | 26 | type tracker with call steps with content splat position 0 | params_flow.rb:65:5:65:13 | synthetic splat argument | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps | params_flow.rb:63:14:63:15 | 26 | -| params_flow.rb:63:14:63:15 | 26 | type tracker without call steps with content element 0 | params_flow.rb:63:8:63:16 | * | | params_flow.rb:63:14:63:15 | 26 | type tracker without call steps with content element 0 or unknown | params_flow.rb:67:12:67:16 | * ... | +| params_flow.rb:63:14:63:15 | 26 | type tracker without call steps with content splat position 0 | params_flow.rb:63:8:63:16 | synthetic splat argument | | params_flow.rb:64:1:66:3 | &block | type tracker without call steps | params_flow.rb:64:1:66:3 | &block | | params_flow.rb:64:1:66:3 | self in splatstuff | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:64:1:66:3 | self in splatstuff | type tracker without call steps | params_flow.rb:64:1:66:3 | self in splatstuff | | params_flow.rb:64:1:66:3 | splatstuff | type tracker without call steps | params_flow.rb:64:1:66:3 | splatstuff | | params_flow.rb:64:16:64:17 | *x | type tracker without call steps | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:64:17:64:17 | x | type tracker without call steps | params_flow.rb:64:17:64:17 | x | -| params_flow.rb:65:5:65:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:65:5:65:13 | * | type tracker without call steps | params_flow.rb:65:5:65:13 | * | | params_flow.rb:65:5:65:13 | call to sink | type tracker without call steps | params_flow.rb:65:5:65:13 | call to sink | | params_flow.rb:65:5:65:13 | call to sink | type tracker without call steps | params_flow.rb:67:1:67:17 | call to splatstuff | -| params_flow.rb:65:10:65:13 | * | type tracker without call steps | params_flow.rb:65:10:65:13 | * | +| params_flow.rb:65:5:65:13 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:65:5:65:13 | synthetic splat argument | type tracker without call steps | params_flow.rb:65:5:65:13 | synthetic splat argument | | params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:65:10:65:13 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:65:10:65:13 | ...[...] | type tracker without call steps | params_flow.rb:65:10:65:13 | ...[...] | -| params_flow.rb:65:10:65:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:65:5:65:13 | * | +| params_flow.rb:65:10:65:13 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:65:5:65:13 | synthetic splat argument | +| params_flow.rb:65:10:65:13 | synthetic splat argument | type tracker without call steps | params_flow.rb:65:10:65:13 | synthetic splat argument | | params_flow.rb:65:12:65:12 | 0 | type tracker without call steps | params_flow.rb:65:12:65:12 | 0 | -| params_flow.rb:65:12:65:12 | 0 | type tracker without call steps with content element 0 | params_flow.rb:65:10:65:13 | * | +| params_flow.rb:65:12:65:12 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:65:10:65:13 | synthetic splat argument | | params_flow.rb:67:1:67:17 | call to splatstuff | type tracker without call steps | params_flow.rb:67:1:67:17 | call to splatstuff | | params_flow.rb:67:12:67:16 | * ... | type tracker with call steps | params_flow.rb:64:16:64:17 | *x | | params_flow.rb:67:12:67:16 | * ... | type tracker without call steps | params_flow.rb:67:12:67:16 | * ... | @@ -1485,1113 +1504,1077 @@ track | params_flow.rb:69:1:76:3 | self in splatmid | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:69:1:76:3 | self in splatmid | type tracker without call steps | params_flow.rb:69:1:76:3 | self in splatmid | | params_flow.rb:69:1:76:3 | splatmid | type tracker without call steps | params_flow.rb:69:1:76:3 | splatmid | -| params_flow.rb:69:1:76:3 | synthetic *args | type tracker without call steps | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:69:1:76:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:69:14:69:14 | x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:69:14:69:14 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:69:14:69:14 | x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:69:14:69:14 | x | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:69:14:69:14 | x | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:69:14:69:14 | x | type tracker without call steps | params_flow.rb:69:14:69:14 | x | | params_flow.rb:69:14:69:14 | x | type tracker without call steps | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:69:14:69:14 | x | type tracker without call steps with content element 0 | params_flow.rb:70:5:70:10 | * | +| params_flow.rb:69:14:69:14 | x | type tracker without call steps with content splat position 0 | params_flow.rb:70:5:70:10 | synthetic splat argument | | params_flow.rb:69:17:69:17 | y | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:69:17:69:17 | y | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:69:17:69:17 | y | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:69:17:69:17 | y | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:69:17:69:17 | y | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:69:17:69:17 | y | type tracker without call steps | params_flow.rb:69:17:69:17 | y | | params_flow.rb:69:17:69:17 | y | type tracker without call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:69:17:69:17 | y | type tracker without call steps with content element 0 | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:69:17:69:17 | y | type tracker without call steps with content splat position 0 | params_flow.rb:71:5:71:10 | synthetic splat argument | | params_flow.rb:69:20:69:21 | *z | type tracker without call steps | params_flow.rb:69:20:69:21 | *z | | params_flow.rb:69:21:69:21 | z | type tracker without call steps | params_flow.rb:69:21:69:21 | z | | params_flow.rb:69:24:69:24 | w | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:69:24:69:24 | w | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:69:24:69:24 | w | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:69:24:69:24 | w | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:69:24:69:24 | w | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:69:24:69:24 | w | type tracker without call steps | params_flow.rb:69:24:69:24 | w | | params_flow.rb:69:24:69:24 | w | type tracker without call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:69:24:69:24 | w | type tracker without call steps with content element 0 | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:69:24:69:24 | w | type tracker without call steps with content splat position 0 | params_flow.rb:74:5:74:10 | synthetic splat argument | | params_flow.rb:69:27:69:27 | r | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:69:27:69:27 | r | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:69:27:69:27 | r | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:69:27:69:27 | r | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:69:27:69:27 | r | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:69:27:69:27 | r | type tracker without call steps | params_flow.rb:69:27:69:27 | r | | params_flow.rb:69:27:69:27 | r | type tracker without call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:69:27:69:27 | r | type tracker without call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:70:5:70:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:70:5:70:10 | * | type tracker without call steps | params_flow.rb:70:5:70:10 | * | +| params_flow.rb:69:27:69:27 | r | type tracker without call steps with content splat position 0 | params_flow.rb:75:5:75:10 | synthetic splat argument | | params_flow.rb:70:5:70:10 | call to sink | type tracker without call steps | params_flow.rb:70:5:70:10 | call to sink | -| params_flow.rb:71:5:71:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:71:5:71:10 | * | type tracker without call steps | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:70:5:70:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:70:5:70:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:70:5:70:10 | synthetic splat argument | | params_flow.rb:71:5:71:10 | call to sink | type tracker without call steps | params_flow.rb:71:5:71:10 | call to sink | -| params_flow.rb:72:5:72:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:72:5:72:13 | * | type tracker without call steps | params_flow.rb:72:5:72:13 | * | +| params_flow.rb:71:5:71:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:71:5:71:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:71:5:71:10 | synthetic splat argument | | params_flow.rb:72:5:72:13 | call to sink | type tracker without call steps | params_flow.rb:72:5:72:13 | call to sink | -| params_flow.rb:72:10:72:13 | * | type tracker without call steps | params_flow.rb:72:10:72:13 | * | +| params_flow.rb:72:5:72:13 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:72:5:72:13 | synthetic splat argument | type tracker without call steps | params_flow.rb:72:5:72:13 | synthetic splat argument | | params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:72:10:72:13 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:72:10:72:13 | ...[...] | type tracker without call steps | params_flow.rb:72:10:72:13 | ...[...] | -| params_flow.rb:72:10:72:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:72:5:72:13 | * | +| params_flow.rb:72:10:72:13 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:72:5:72:13 | synthetic splat argument | +| params_flow.rb:72:10:72:13 | synthetic splat argument | type tracker without call steps | params_flow.rb:72:10:72:13 | synthetic splat argument | | params_flow.rb:72:12:72:12 | 0 | type tracker without call steps | params_flow.rb:72:12:72:12 | 0 | -| params_flow.rb:72:12:72:12 | 0 | type tracker without call steps with content element 0 | params_flow.rb:72:10:72:13 | * | -| params_flow.rb:73:5:73:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:73:5:73:13 | * | type tracker without call steps | params_flow.rb:73:5:73:13 | * | +| params_flow.rb:72:12:72:12 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:72:10:72:13 | synthetic splat argument | | params_flow.rb:73:5:73:13 | call to sink | type tracker without call steps | params_flow.rb:73:5:73:13 | call to sink | -| params_flow.rb:73:10:73:13 | * | type tracker without call steps | params_flow.rb:73:10:73:13 | * | +| params_flow.rb:73:5:73:13 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:73:5:73:13 | synthetic splat argument | type tracker without call steps | params_flow.rb:73:5:73:13 | synthetic splat argument | | params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:73:10:73:13 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:73:10:73:13 | ...[...] | type tracker without call steps | params_flow.rb:73:10:73:13 | ...[...] | -| params_flow.rb:73:10:73:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:73:5:73:13 | * | +| params_flow.rb:73:10:73:13 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:73:5:73:13 | synthetic splat argument | +| params_flow.rb:73:10:73:13 | synthetic splat argument | type tracker without call steps | params_flow.rb:73:10:73:13 | synthetic splat argument | | params_flow.rb:73:12:73:12 | 1 | type tracker without call steps | params_flow.rb:73:12:73:12 | 1 | -| params_flow.rb:73:12:73:12 | 1 | type tracker without call steps with content element 0 | params_flow.rb:73:10:73:13 | * | -| params_flow.rb:74:5:74:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:74:5:74:10 | * | type tracker without call steps | params_flow.rb:74:5:74:10 | * | +| params_flow.rb:73:12:73:12 | 1 | type tracker without call steps with content splat position 0 | params_flow.rb:73:10:73:13 | synthetic splat argument | | params_flow.rb:74:5:74:10 | call to sink | type tracker without call steps | params_flow.rb:74:5:74:10 | call to sink | -| params_flow.rb:75:5:75:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:75:5:75:10 | * | type tracker without call steps | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:74:5:74:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:74:5:74:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:74:5:74:10 | synthetic splat argument | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:75:5:75:10 | call to sink | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:78:1:78:63 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:81:1:81:37 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | type tracker without call steps | params_flow.rb:96:1:96:88 | call to splatmid | -| params_flow.rb:78:1:78:63 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:1:78:63 | * | type tracker without call steps | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:75:5:75:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:75:5:75:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:75:5:75:10 | synthetic splat argument | | params_flow.rb:78:1:78:63 | call to splatmid | type tracker without call steps | params_flow.rb:78:1:78:63 | call to splatmid | -| params_flow.rb:78:10:78:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:10:78:18 | * | type tracker without call steps | params_flow.rb:78:10:78:18 | * | +| params_flow.rb:78:1:78:63 | synthetic splat argument | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:78:1:78:63 | synthetic splat argument | type tracker without call steps | params_flow.rb:78:1:78:63 | synthetic splat argument | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | +| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:78:10:78:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:70:5:70:10 | synthetic splat argument | | params_flow.rb:78:10:78:18 | call to taint | type tracker without call steps | params_flow.rb:78:10:78:18 | call to taint | -| params_flow.rb:78:10:78:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:78:10:78:18 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:78:10:78:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:10:78:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:78:10:78:18 | synthetic splat argument | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:16:78:17 | 27 | type tracker with call steps | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content splat position 0 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:78:16:78:17 | 27 | type tracker with call steps with content splat position 0 | params_flow.rb:70:5:70:10 | synthetic splat argument | | params_flow.rb:78:16:78:17 | 27 | type tracker without call steps | params_flow.rb:78:10:78:18 | call to taint | | params_flow.rb:78:16:78:17 | 27 | type tracker without call steps | params_flow.rb:78:16:78:17 | 27 | -| params_flow.rb:78:16:78:17 | 27 | type tracker without call steps with content element 0 | params_flow.rb:78:1:78:63 | * | -| params_flow.rb:78:16:78:17 | 27 | type tracker without call steps with content element 0 | params_flow.rb:78:10:78:18 | * | -| params_flow.rb:78:21:78:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:21:78:29 | * | type tracker without call steps | params_flow.rb:78:21:78:29 | * | +| params_flow.rb:78:16:78:17 | 27 | type tracker without call steps with content splat position 0 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:78:16:78:17 | 27 | type tracker without call steps with content splat position 0 | params_flow.rb:78:10:78:18 | synthetic splat argument | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:71:5:71:10 | synthetic splat argument | +| params_flow.rb:78:21:78:29 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:78:21:78:29 | call to taint | type tracker without call steps | params_flow.rb:78:21:78:29 | call to taint | -| params_flow.rb:78:21:78:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:78:21:78:29 | call to taint | type tracker without call steps with content splat position 1 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:78:21:78:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:21:78:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:78:21:78:29 | synthetic splat argument | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:27:78:28 | 28 | type tracker with call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content splat position 0 | params_flow.rb:71:5:71:10 | synthetic splat argument | +| params_flow.rb:78:27:78:28 | 28 | type tracker with call steps with content splat position 1 | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:78:27:78:28 | 28 | type tracker without call steps | params_flow.rb:78:21:78:29 | call to taint | | params_flow.rb:78:27:78:28 | 28 | type tracker without call steps | params_flow.rb:78:27:78:28 | 28 | -| params_flow.rb:78:27:78:28 | 28 | type tracker without call steps with content element 0 | params_flow.rb:78:21:78:29 | * | -| params_flow.rb:78:27:78:28 | 28 | type tracker without call steps with content element 1 | params_flow.rb:78:1:78:63 | * | -| params_flow.rb:78:32:78:40 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:32:78:40 | * | type tracker without call steps | params_flow.rb:78:32:78:40 | * | -| params_flow.rb:78:32:78:40 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:27:78:28 | 28 | type tracker without call steps with content splat position 0 | params_flow.rb:78:21:78:29 | synthetic splat argument | +| params_flow.rb:78:27:78:28 | 28 | type tracker without call steps with content splat position 1 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:78:32:78:40 | call to taint | type tracker with call steps with content splat position 2 | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:78:32:78:40 | call to taint | type tracker without call steps | params_flow.rb:78:32:78:40 | call to taint | -| params_flow.rb:78:32:78:40 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:78:32:78:40 | call to taint | type tracker without call steps with content splat position 2 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:78:32:78:40 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:32:78:40 | synthetic splat argument | type tracker without call steps | params_flow.rb:78:32:78:40 | synthetic splat argument | | params_flow.rb:78:38:78:39 | 29 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:38:78:39 | 29 | type tracker with call steps with content splat position 2 | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:78:38:78:39 | 29 | type tracker without call steps | params_flow.rb:78:32:78:40 | call to taint | | params_flow.rb:78:38:78:39 | 29 | type tracker without call steps | params_flow.rb:78:38:78:39 | 29 | -| params_flow.rb:78:38:78:39 | 29 | type tracker without call steps with content element 0 | params_flow.rb:78:32:78:40 | * | -| params_flow.rb:78:38:78:39 | 29 | type tracker without call steps with content element 2 | params_flow.rb:78:1:78:63 | * | -| params_flow.rb:78:43:78:51 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:43:78:51 | * | type tracker without call steps | params_flow.rb:78:43:78:51 | * | +| params_flow.rb:78:38:78:39 | 29 | type tracker without call steps with content splat position 0 | params_flow.rb:78:32:78:40 | synthetic splat argument | +| params_flow.rb:78:38:78:39 | 29 | type tracker without call steps with content splat position 2 | params_flow.rb:78:1:78:63 | synthetic splat argument | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:74:5:74:10 | synthetic splat argument | +| params_flow.rb:78:43:78:51 | call to taint | type tracker with call steps with content splat position 3 | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:78:43:78:51 | call to taint | type tracker without call steps | params_flow.rb:78:43:78:51 | call to taint | -| params_flow.rb:78:43:78:51 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:78:43:78:51 | call to taint | type tracker without call steps with content splat position 3 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:78:43:78:51 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:43:78:51 | synthetic splat argument | type tracker without call steps | params_flow.rb:78:43:78:51 | synthetic splat argument | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:49:78:50 | 30 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content splat position 0 | params_flow.rb:74:5:74:10 | synthetic splat argument | +| params_flow.rb:78:49:78:50 | 30 | type tracker with call steps with content splat position 3 | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:78:49:78:50 | 30 | type tracker without call steps | params_flow.rb:78:43:78:51 | call to taint | | params_flow.rb:78:49:78:50 | 30 | type tracker without call steps | params_flow.rb:78:49:78:50 | 30 | -| params_flow.rb:78:49:78:50 | 30 | type tracker without call steps with content element 0 | params_flow.rb:78:43:78:51 | * | -| params_flow.rb:78:49:78:50 | 30 | type tracker without call steps with content element 3 | params_flow.rb:78:1:78:63 | * | -| params_flow.rb:78:54:78:62 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:54:78:62 | * | type tracker without call steps | params_flow.rb:78:54:78:62 | * | +| params_flow.rb:78:49:78:50 | 30 | type tracker without call steps with content splat position 0 | params_flow.rb:78:43:78:51 | synthetic splat argument | +| params_flow.rb:78:49:78:50 | 30 | type tracker without call steps with content splat position 3 | params_flow.rb:78:1:78:63 | synthetic splat argument | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:75:5:75:10 | synthetic splat argument | +| params_flow.rb:78:54:78:62 | call to taint | type tracker with call steps with content splat position 4 | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:78:54:78:62 | call to taint | type tracker without call steps | params_flow.rb:78:54:78:62 | call to taint | -| params_flow.rb:78:54:78:62 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:78:54:78:62 | call to taint | type tracker without call steps with content splat position 4 | params_flow.rb:78:1:78:63 | synthetic splat argument | +| params_flow.rb:78:54:78:62 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:54:78:62 | synthetic splat argument | type tracker without call steps | params_flow.rb:78:54:78:62 | synthetic splat argument | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:60:78:61 | 31 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content splat position 0 | params_flow.rb:75:5:75:10 | synthetic splat argument | +| params_flow.rb:78:60:78:61 | 31 | type tracker with call steps with content splat position 4 | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:78:60:78:61 | 31 | type tracker without call steps | params_flow.rb:78:54:78:62 | call to taint | | params_flow.rb:78:60:78:61 | 31 | type tracker without call steps | params_flow.rb:78:60:78:61 | 31 | -| params_flow.rb:78:60:78:61 | 31 | type tracker without call steps with content element 0 | params_flow.rb:78:54:78:62 | * | -| params_flow.rb:78:60:78:61 | 31 | type tracker without call steps with content element 4 | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:78:60:78:61 | 31 | type tracker without call steps with content splat position 0 | params_flow.rb:78:54:78:62 | synthetic splat argument | +| params_flow.rb:78:60:78:61 | 31 | type tracker without call steps with content splat position 4 | params_flow.rb:78:1:78:63 | synthetic splat argument | | params_flow.rb:80:1:80:4 | args | type tracker without call steps | params_flow.rb:80:1:80:4 | args | -| params_flow.rb:80:8:80:51 | * | type tracker without call steps | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:8:80:51 | Array | type tracker without call steps | params_flow.rb:80:8:80:51 | Array | | params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:71:5:71:10 | synthetic splat argument | +| params_flow.rb:80:8:80:51 | call to [] | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:80:9:80:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:9:80:17 | * | type tracker without call steps | params_flow.rb:80:9:80:17 | * | +| params_flow.rb:80:8:80:51 | call to [] | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:80:8:80:51 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:8:80:51 | synthetic splat argument | type tracker with call steps | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:8:80:51 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:80:8:80:51 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:80:8:80:51 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:71:5:71:10 | synthetic splat argument | +| params_flow.rb:80:8:80:51 | synthetic splat argument | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:80:8:80:51 | synthetic splat argument | type tracker without call steps | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:8:80:51 | synthetic splat argument | type tracker without call steps | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:80:8:80:51 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:8:80:51 | synthetic splat argument | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | | params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:71:5:71:10 | synthetic splat argument | +| params_flow.rb:80:9:80:17 | call to taint | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps | params_flow.rb:80:9:80:17 | call to taint | -| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:9:80:17 | call to taint | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:80:9:80:17 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:9:80:17 | synthetic splat argument | type tracker without call steps | params_flow.rb:80:9:80:17 | synthetic splat argument | | params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:80:15:80:16 | 33 | type tracker with call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content splat position 0 | params_flow.rb:71:5:71:10 | synthetic splat argument | +| params_flow.rb:80:15:80:16 | 33 | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:15:80:16 | 33 | type tracker without call steps | params_flow.rb:80:15:80:16 | 33 | -| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 | params_flow.rb:80:9:80:17 | * | -| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 1 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:80:20:80:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:20:80:28 | * | type tracker without call steps | params_flow.rb:80:20:80:28 | * | -| params_flow.rb:80:20:80:28 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content element 0 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content splat position 0 | params_flow.rb:80:9:80:17 | synthetic splat argument | +| params_flow.rb:80:15:80:16 | 33 | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:80:20:80:28 | call to taint | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | -| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:20:80:28 | call to taint | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:80:20:80:28 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:20:80:28 | synthetic splat argument | type tracker without call steps | params_flow.rb:80:20:80:28 | synthetic splat argument | | params_flow.rb:80:26:80:27 | 34 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:26:80:27 | 34 | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:26:80:27 | 34 | type tracker without call steps | params_flow.rb:80:26:80:27 | 34 | -| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 0 | params_flow.rb:80:20:80:28 | * | -| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:80:31:80:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:31:80:39 | * | type tracker without call steps | params_flow.rb:80:31:80:39 | * | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content element 1 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content splat position 0 | params_flow.rb:80:20:80:28 | synthetic splat argument | +| params_flow.rb:80:26:80:27 | 34 | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:80:31:80:39 | call to taint | type tracker with call steps with content splat position 3 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | -| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:31:80:39 | call to taint | type tracker without call steps with content splat position 3 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:80:31:80:39 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:31:80:39 | synthetic splat argument | type tracker without call steps | params_flow.rb:80:31:80:39 | synthetic splat argument | | params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:37:80:38 | 35 | type tracker with call steps with content splat position 3 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:37:80:38 | 35 | type tracker without call steps | params_flow.rb:80:37:80:38 | 35 | -| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 0 | params_flow.rb:80:31:80:39 | * | -| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 3 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:80:42:80:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:42:80:50 | * | type tracker without call steps | params_flow.rb:80:42:80:50 | * | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content element 2 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content splat position 0 | params_flow.rb:80:31:80:39 | synthetic splat argument | +| params_flow.rb:80:37:80:38 | 35 | type tracker without call steps with content splat position 3 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:80:42:80:50 | call to taint | type tracker with call steps with content splat position 4 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | -| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:42:80:50 | call to taint | type tracker without call steps with content splat position 4 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:80:42:80:50 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:42:80:50 | synthetic splat argument | type tracker without call steps | params_flow.rb:80:42:80:50 | synthetic splat argument | | params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:48:80:49 | 36 | type tracker with call steps with content splat position 4 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:48:80:49 | 36 | type tracker without call steps | params_flow.rb:80:48:80:49 | 36 | -| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 0 | params_flow.rb:80:42:80:50 | * | -| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | * | -| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 or unknown | params_flow.rb:80:8:80:51 | call to [] | -| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 or unknown | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 4 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:81:1:81:37 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:81:1:81:37 | * | type tracker without call steps | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content element 3 | params_flow.rb:81:21:81:25 | * ... | +| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content splat position 0 | params_flow.rb:80:42:80:50 | synthetic splat argument | +| params_flow.rb:80:48:80:49 | 36 | type tracker without call steps with content splat position 4 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | | params_flow.rb:81:1:81:37 | call to splatmid | type tracker without call steps | params_flow.rb:81:1:81:37 | call to splatmid | -| params_flow.rb:81:10:81:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:10:81:18 | * | type tracker without call steps | params_flow.rb:81:10:81:18 | * | +| params_flow.rb:81:1:81:37 | synthetic splat argument | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:81:1:81:37 | synthetic splat argument | type tracker without call steps | params_flow.rb:81:1:81:37 | synthetic splat argument | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | +| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:81:10:81:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:70:5:70:10 | synthetic splat argument | | params_flow.rb:81:10:81:18 | call to taint | type tracker without call steps | params_flow.rb:81:10:81:18 | call to taint | -| params_flow.rb:81:10:81:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:81:10:81:18 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:81:10:81:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:81:10:81:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:81:10:81:18 | synthetic splat argument | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:81:16:81:17 | 32 | type tracker with call steps | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content splat position 0 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:81:16:81:17 | 32 | type tracker with call steps with content splat position 0 | params_flow.rb:70:5:70:10 | synthetic splat argument | | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:81:16:81:17 | 32 | type tracker without call steps | params_flow.rb:81:16:81:17 | 32 | -| params_flow.rb:81:16:81:17 | 32 | type tracker without call steps with content element 0 | params_flow.rb:81:1:81:37 | * | -| params_flow.rb:81:16:81:17 | 32 | type tracker without call steps with content element 0 | params_flow.rb:81:10:81:18 | * | +| params_flow.rb:81:16:81:17 | 32 | type tracker without call steps with content splat position 0 | params_flow.rb:81:1:81:37 | synthetic splat argument | +| params_flow.rb:81:16:81:17 | 32 | type tracker without call steps with content splat position 0 | params_flow.rb:81:10:81:18 | synthetic splat argument | | params_flow.rb:81:21:81:25 | * ... | type tracker without call steps | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:81:28:81:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:28:81:36 | * | type tracker without call steps | params_flow.rb:81:28:81:36 | * | -| params_flow.rb:81:28:81:36 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | | params_flow.rb:81:28:81:36 | call to taint | type tracker without call steps | params_flow.rb:81:28:81:36 | call to taint | -| params_flow.rb:81:28:81:36 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:81:28:81:36 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:81:28:81:36 | synthetic splat argument | type tracker without call steps | params_flow.rb:81:28:81:36 | synthetic splat argument | | params_flow.rb:81:34:81:35 | 37 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:81:34:81:35 | 37 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:81:34:81:35 | 37 | type tracker without call steps | params_flow.rb:81:28:81:36 | call to taint | | params_flow.rb:81:34:81:35 | 37 | type tracker without call steps | params_flow.rb:81:34:81:35 | 37 | -| params_flow.rb:81:34:81:35 | 37 | type tracker without call steps with content element 0 | params_flow.rb:81:28:81:36 | * | -| params_flow.rb:81:34:81:35 | 37 | type tracker without call steps with content element 2 | params_flow.rb:81:1:81:37 | * | +| params_flow.rb:81:34:81:35 | 37 | type tracker without call steps with content splat position 0 | params_flow.rb:81:28:81:36 | synthetic splat argument | | params_flow.rb:83:1:91:3 | &block | type tracker without call steps | params_flow.rb:83:1:91:3 | &block | | params_flow.rb:83:1:91:3 | pos_many | type tracker without call steps | params_flow.rb:83:1:91:3 | pos_many | | params_flow.rb:83:1:91:3 | self in pos_many | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:83:1:91:3 | self in pos_many | type tracker without call steps | params_flow.rb:83:1:91:3 | self in pos_many | -| params_flow.rb:83:1:91:3 | synthetic *args | type tracker without call steps | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:83:1:91:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:83:14:83:14 | t | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:83:14:83:14 | t | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:14:83:14 | t | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:83:14:83:14 | t | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:83:14:83:14 | t | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:83:14:83:14 | t | type tracker without call steps | params_flow.rb:83:14:83:14 | t | | params_flow.rb:83:14:83:14 | t | type tracker without call steps | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:83:14:83:14 | t | type tracker without call steps with content element 0 | params_flow.rb:84:5:84:10 | * | +| params_flow.rb:83:14:83:14 | t | type tracker without call steps with content splat position 0 | params_flow.rb:84:5:84:10 | synthetic splat argument | | params_flow.rb:83:17:83:17 | u | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:83:17:83:17 | u | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:17:83:17 | u | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:83:17:83:17 | u | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:83:17:83:17 | u | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:83:17:83:17 | u | type tracker without call steps | params_flow.rb:83:17:83:17 | u | | params_flow.rb:83:17:83:17 | u | type tracker without call steps | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:83:17:83:17 | u | type tracker without call steps with content element 0 | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:83:17:83:17 | u | type tracker without call steps with content splat position 0 | params_flow.rb:85:5:85:10 | synthetic splat argument | | params_flow.rb:83:20:83:20 | v | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:83:20:83:20 | v | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:20:83:20 | v | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:83:20:83:20 | v | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:83:20:83:20 | v | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:83:20:83:20 | v | type tracker without call steps | params_flow.rb:83:20:83:20 | v | | params_flow.rb:83:20:83:20 | v | type tracker without call steps | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:83:20:83:20 | v | type tracker without call steps with content element 0 | params_flow.rb:86:5:86:10 | * | +| params_flow.rb:83:20:83:20 | v | type tracker without call steps with content splat position 0 | params_flow.rb:86:5:86:10 | synthetic splat argument | | params_flow.rb:83:23:83:23 | w | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:83:23:83:23 | w | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:23:83:23 | w | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:83:23:83:23 | w | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:83:23:83:23 | w | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:83:23:83:23 | w | type tracker without call steps | params_flow.rb:83:23:83:23 | w | | params_flow.rb:83:23:83:23 | w | type tracker without call steps | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:83:23:83:23 | w | type tracker without call steps with content element 0 | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:83:23:83:23 | w | type tracker without call steps with content splat position 0 | params_flow.rb:87:5:87:10 | synthetic splat argument | | params_flow.rb:83:26:83:26 | x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:83:26:83:26 | x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:26:83:26 | x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:83:26:83:26 | x | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:83:26:83:26 | x | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:83:26:83:26 | x | type tracker without call steps | params_flow.rb:83:26:83:26 | x | | params_flow.rb:83:26:83:26 | x | type tracker without call steps | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:83:26:83:26 | x | type tracker without call steps with content element 0 | params_flow.rb:88:5:88:10 | * | +| params_flow.rb:83:26:83:26 | x | type tracker without call steps with content splat position 0 | params_flow.rb:88:5:88:10 | synthetic splat argument | | params_flow.rb:83:29:83:29 | y | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:83:29:83:29 | y | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:29:83:29 | y | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:83:29:83:29 | y | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:83:29:83:29 | y | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:83:29:83:29 | y | type tracker without call steps | params_flow.rb:83:29:83:29 | y | | params_flow.rb:83:29:83:29 | y | type tracker without call steps | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:83:29:83:29 | y | type tracker without call steps with content element 0 | params_flow.rb:89:5:89:10 | * | +| params_flow.rb:83:29:83:29 | y | type tracker without call steps with content splat position 0 | params_flow.rb:89:5:89:10 | synthetic splat argument | | params_flow.rb:83:32:83:32 | z | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:83:32:83:32 | z | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:83:32:83:32 | z | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:83:32:83:32 | z | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:83:32:83:32 | z | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:83:32:83:32 | z | type tracker without call steps | params_flow.rb:83:32:83:32 | z | | params_flow.rb:83:32:83:32 | z | type tracker without call steps | params_flow.rb:83:32:83:32 | z | -| params_flow.rb:83:32:83:32 | z | type tracker without call steps with content element 0 | params_flow.rb:90:5:90:10 | * | -| params_flow.rb:84:5:84:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:84:5:84:10 | * | type tracker without call steps | params_flow.rb:84:5:84:10 | * | +| params_flow.rb:83:32:83:32 | z | type tracker without call steps with content splat position 0 | params_flow.rb:90:5:90:10 | synthetic splat argument | | params_flow.rb:84:5:84:10 | call to sink | type tracker without call steps | params_flow.rb:84:5:84:10 | call to sink | -| params_flow.rb:85:5:85:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:85:5:85:10 | * | type tracker without call steps | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:84:5:84:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:84:5:84:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:84:5:84:10 | synthetic splat argument | | params_flow.rb:85:5:85:10 | call to sink | type tracker without call steps | params_flow.rb:85:5:85:10 | call to sink | -| params_flow.rb:86:5:86:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:86:5:86:10 | * | type tracker without call steps | params_flow.rb:86:5:86:10 | * | +| params_flow.rb:85:5:85:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:85:5:85:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:85:5:85:10 | synthetic splat argument | | params_flow.rb:86:5:86:10 | call to sink | type tracker without call steps | params_flow.rb:86:5:86:10 | call to sink | -| params_flow.rb:87:5:87:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:87:5:87:10 | * | type tracker without call steps | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:86:5:86:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:86:5:86:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:86:5:86:10 | synthetic splat argument | | params_flow.rb:87:5:87:10 | call to sink | type tracker without call steps | params_flow.rb:87:5:87:10 | call to sink | -| params_flow.rb:88:5:88:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:88:5:88:10 | * | type tracker without call steps | params_flow.rb:88:5:88:10 | * | +| params_flow.rb:87:5:87:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:87:5:87:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:87:5:87:10 | synthetic splat argument | | params_flow.rb:88:5:88:10 | call to sink | type tracker without call steps | params_flow.rb:88:5:88:10 | call to sink | -| params_flow.rb:89:5:89:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:89:5:89:10 | * | type tracker without call steps | params_flow.rb:89:5:89:10 | * | +| params_flow.rb:88:5:88:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:88:5:88:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:88:5:88:10 | synthetic splat argument | | params_flow.rb:89:5:89:10 | call to sink | type tracker without call steps | params_flow.rb:89:5:89:10 | call to sink | -| params_flow.rb:90:5:90:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:90:5:90:10 | * | type tracker without call steps | params_flow.rb:90:5:90:10 | * | +| params_flow.rb:89:5:89:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:89:5:89:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:89:5:89:10 | synthetic splat argument | | params_flow.rb:90:5:90:10 | call to sink | type tracker without call steps | params_flow.rb:90:5:90:10 | call to sink | | params_flow.rb:90:5:90:10 | call to sink | type tracker without call steps | params_flow.rb:94:1:94:48 | call to pos_many | | params_flow.rb:90:5:90:10 | call to sink | type tracker without call steps | params_flow.rb:131:1:131:46 | call to pos_many | +| params_flow.rb:90:5:90:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:90:5:90:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:90:5:90:10 | synthetic splat argument | | params_flow.rb:93:1:93:4 | args | type tracker without call steps | params_flow.rb:93:1:93:4 | args | -| params_flow.rb:93:8:93:51 | * | type tracker without call steps | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:8:93:51 | Array | type tracker without call steps | params_flow.rb:93:8:93:51 | Array | | params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | -| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:86:5:86:10 | synthetic splat argument | +| params_flow.rb:93:8:93:51 | call to [] | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps with content element 2 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:93:9:93:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:9:93:17 | * | type tracker without call steps | params_flow.rb:93:9:93:17 | * | +| params_flow.rb:93:8:93:51 | call to [] | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:93:8:93:51 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:8:93:51 | synthetic splat argument | type tracker with call steps | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:8:93:51 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:93:8:93:51 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:93:8:93:51 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:86:5:86:10 | synthetic splat argument | +| params_flow.rb:93:8:93:51 | synthetic splat argument | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:93:8:93:51 | synthetic splat argument | type tracker without call steps | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:8:93:51 | synthetic splat argument | type tracker without call steps | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:93:8:93:51 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:8:93:51 | synthetic splat argument | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | | params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | -| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:86:5:86:10 | synthetic splat argument | +| params_flow.rb:93:9:93:17 | call to taint | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | -| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:9:93:17 | call to taint | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:93:9:93:17 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:9:93:17 | synthetic splat argument | type tracker without call steps | params_flow.rb:93:9:93:17 | synthetic splat argument | | params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:15:93:16 | 40 | type tracker with call steps | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | -| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content splat position 0 | params_flow.rb:86:5:86:10 | synthetic splat argument | +| params_flow.rb:93:15:93:16 | 40 | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:15:93:16 | 40 | type tracker without call steps | params_flow.rb:93:15:93:16 | 40 | -| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 | params_flow.rb:93:9:93:17 | * | -| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 2 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:93:20:93:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:20:93:28 | * | type tracker without call steps | params_flow.rb:93:20:93:28 | * | +| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content element 0 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content splat position 0 | params_flow.rb:93:9:93:17 | synthetic splat argument | +| params_flow.rb:93:15:93:16 | 40 | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | | params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | -| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:87:5:87:10 | synthetic splat argument | +| params_flow.rb:93:20:93:28 | call to taint | type tracker with call steps with content splat position 3 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | -| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:20:93:28 | call to taint | type tracker without call steps with content splat position 3 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:93:20:93:28 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:20:93:28 | synthetic splat argument | type tracker without call steps | params_flow.rb:93:20:93:28 | synthetic splat argument | | params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:26:93:27 | 41 | type tracker with call steps | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | -| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content splat position 0 | params_flow.rb:87:5:87:10 | synthetic splat argument | +| params_flow.rb:93:26:93:27 | 41 | type tracker with call steps with content splat position 3 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:26:93:27 | 41 | type tracker without call steps | params_flow.rb:93:26:93:27 | 41 | -| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 0 | params_flow.rb:93:20:93:28 | * | -| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:93:31:93:39 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:31:93:39 | * | type tracker without call steps | params_flow.rb:93:31:93:39 | * | +| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content element 1 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content splat position 0 | params_flow.rb:93:20:93:28 | synthetic splat argument | +| params_flow.rb:93:26:93:27 | 41 | type tracker without call steps with content splat position 3 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | | params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | -| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:88:5:88:10 | synthetic splat argument | +| params_flow.rb:93:31:93:39 | call to taint | type tracker with call steps with content splat position 4 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | -| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:31:93:39 | call to taint | type tracker without call steps with content splat position 4 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:93:31:93:39 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:31:93:39 | synthetic splat argument | type tracker without call steps | params_flow.rb:93:31:93:39 | synthetic splat argument | | params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:37:93:38 | 42 | type tracker with call steps | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | -| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content splat position 0 | params_flow.rb:88:5:88:10 | synthetic splat argument | +| params_flow.rb:93:37:93:38 | 42 | type tracker with call steps with content splat position 4 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:37:93:38 | 42 | type tracker without call steps | params_flow.rb:93:37:93:38 | 42 | -| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 0 | params_flow.rb:93:31:93:39 | * | -| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 4 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:93:42:93:50 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:42:93:50 | * | type tracker without call steps | params_flow.rb:93:42:93:50 | * | +| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content element 2 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content splat position 0 | params_flow.rb:93:31:93:39 | synthetic splat argument | +| params_flow.rb:93:37:93:38 | 42 | type tracker without call steps with content splat position 4 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | | params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | -| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:89:5:89:10 | synthetic splat argument | +| params_flow.rb:93:42:93:50 | call to taint | type tracker with call steps with content splat position 5 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | -| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 5 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:42:93:50 | call to taint | type tracker without call steps with content splat position 5 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:93:42:93:50 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:42:93:50 | synthetic splat argument | type tracker without call steps | params_flow.rb:93:42:93:50 | synthetic splat argument | | params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:48:93:49 | 43 | type tracker with call steps | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | -| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content splat position 0 | params_flow.rb:89:5:89:10 | synthetic splat argument | +| params_flow.rb:93:48:93:49 | 43 | type tracker with call steps with content splat position 5 (shifted) | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:48:93:49 | 43 | type tracker without call steps | params_flow.rb:93:48:93:49 | 43 | -| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 0 | params_flow.rb:93:42:93:50 | * | -| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | * | -| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 or unknown | params_flow.rb:93:8:93:51 | call to [] | -| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 or unknown | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 5 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:94:1:94:48 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:1:94:48 | * | type tracker without call steps | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content element 3 | params_flow.rb:94:32:94:36 | * ... | +| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content splat position 0 | params_flow.rb:93:42:93:50 | synthetic splat argument | +| params_flow.rb:93:48:93:49 | 43 | type tracker without call steps with content splat position 5 (shifted) | params_flow.rb:94:1:94:48 | synthetic splat argument | | params_flow.rb:94:1:94:48 | call to pos_many | type tracker without call steps | params_flow.rb:94:1:94:48 | call to pos_many | -| params_flow.rb:94:10:94:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:10:94:18 | * | type tracker without call steps | params_flow.rb:94:10:94:18 | * | +| params_flow.rb:94:1:94:48 | synthetic splat argument | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:94:1:94:48 | synthetic splat argument | type tracker without call steps | params_flow.rb:94:1:94:48 | synthetic splat argument | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | +| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:94:10:94:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:84:5:84:10 | synthetic splat argument | | params_flow.rb:94:10:94:18 | call to taint | type tracker without call steps | params_flow.rb:94:10:94:18 | call to taint | -| params_flow.rb:94:10:94:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:94:10:94:18 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:94:10:94:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:94:10:94:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:94:10:94:18 | synthetic splat argument | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:16:94:17 | 38 | type tracker with call steps | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content splat position 0 | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:94:16:94:17 | 38 | type tracker with call steps with content splat position 0 | params_flow.rb:84:5:84:10 | synthetic splat argument | | params_flow.rb:94:16:94:17 | 38 | type tracker without call steps | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:94:16:94:17 | 38 | type tracker without call steps | params_flow.rb:94:16:94:17 | 38 | -| params_flow.rb:94:16:94:17 | 38 | type tracker without call steps with content element 0 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:94:16:94:17 | 38 | type tracker without call steps with content element 0 | params_flow.rb:94:10:94:18 | * | -| params_flow.rb:94:21:94:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:21:94:29 | * | type tracker without call steps | params_flow.rb:94:21:94:29 | * | +| params_flow.rb:94:16:94:17 | 38 | type tracker without call steps with content splat position 0 | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:94:16:94:17 | 38 | type tracker without call steps with content splat position 0 | params_flow.rb:94:10:94:18 | synthetic splat argument | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | -| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:85:5:85:10 | synthetic splat argument | +| params_flow.rb:94:21:94:29 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:94:21:94:29 | call to taint | type tracker without call steps | params_flow.rb:94:21:94:29 | call to taint | -| params_flow.rb:94:21:94:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:94:21:94:29 | call to taint | type tracker without call steps with content splat position 1 | params_flow.rb:94:1:94:48 | synthetic splat argument | +| params_flow.rb:94:21:94:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:94:21:94:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:94:21:94:29 | synthetic splat argument | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:27:94:28 | 39 | type tracker with call steps | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | -| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content splat position 0 | params_flow.rb:85:5:85:10 | synthetic splat argument | +| params_flow.rb:94:27:94:28 | 39 | type tracker with call steps with content splat position 1 | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:94:27:94:28 | 39 | type tracker without call steps | params_flow.rb:94:27:94:28 | 39 | -| params_flow.rb:94:27:94:28 | 39 | type tracker without call steps with content element 0 | params_flow.rb:94:21:94:29 | * | -| params_flow.rb:94:27:94:28 | 39 | type tracker without call steps with content element 1 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:94:27:94:28 | 39 | type tracker without call steps with content splat position 0 | params_flow.rb:94:21:94:29 | synthetic splat argument | +| params_flow.rb:94:27:94:28 | 39 | type tracker without call steps with content splat position 1 | params_flow.rb:94:1:94:48 | synthetic splat argument | | params_flow.rb:94:32:94:36 | * ... | type tracker without call steps | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:94:39:94:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:39:94:47 | * | type tracker without call steps | params_flow.rb:94:39:94:47 | * | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | -| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:94:39:94:47 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:87:5:87:10 | synthetic splat argument | | params_flow.rb:94:39:94:47 | call to taint | type tracker without call steps | params_flow.rb:94:39:94:47 | call to taint | -| params_flow.rb:94:39:94:47 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | +| params_flow.rb:94:39:94:47 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:94:39:94:47 | synthetic splat argument | type tracker without call steps | params_flow.rb:94:39:94:47 | synthetic splat argument | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:45:94:46 | 44 | type tracker with call steps | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | -| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:94:45:94:46 | 44 | type tracker with call steps with content splat position 0 | params_flow.rb:87:5:87:10 | synthetic splat argument | | params_flow.rb:94:45:94:46 | 44 | type tracker without call steps | params_flow.rb:94:39:94:47 | call to taint | | params_flow.rb:94:45:94:46 | 44 | type tracker without call steps | params_flow.rb:94:45:94:46 | 44 | -| params_flow.rb:94:45:94:46 | 44 | type tracker without call steps with content element 0 | params_flow.rb:94:39:94:47 | * | -| params_flow.rb:94:45:94:46 | 44 | type tracker without call steps with content element 3 | params_flow.rb:94:1:94:48 | * | -| params_flow.rb:96:1:96:88 | * | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:1:96:88 | * | type tracker without call steps | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:94:45:94:46 | 44 | type tracker without call steps with content splat position 0 | params_flow.rb:94:39:94:47 | synthetic splat argument | | params_flow.rb:96:1:96:88 | call to splatmid | type tracker without call steps | params_flow.rb:96:1:96:88 | call to splatmid | -| params_flow.rb:96:10:96:18 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:10:96:18 | * | type tracker without call steps | params_flow.rb:96:10:96:18 | * | +| params_flow.rb:96:1:96:88 | synthetic splat argument | type tracker with call steps | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:96:1:96:88 | synthetic splat argument | type tracker without call steps | params_flow.rb:96:1:96:88 | synthetic splat argument | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | +| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:96:10:96:18 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:70:5:70:10 | synthetic splat argument | | params_flow.rb:96:10:96:18 | call to taint | type tracker without call steps | params_flow.rb:96:10:96:18 | call to taint | -| params_flow.rb:96:10:96:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:10:96:18 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:96:10:96:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:10:96:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:96:10:96:18 | synthetic splat argument | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:16:96:17 | 45 | type tracker with call steps | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content element 0 | params_flow.rb:70:5:70:10 | * | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content splat position 0 | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:96:16:96:17 | 45 | type tracker with call steps with content splat position 0 | params_flow.rb:70:5:70:10 | synthetic splat argument | | params_flow.rb:96:16:96:17 | 45 | type tracker without call steps | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:96:16:96:17 | 45 | type tracker without call steps | params_flow.rb:96:16:96:17 | 45 | -| params_flow.rb:96:16:96:17 | 45 | type tracker without call steps with content element 0 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:96:16:96:17 | 45 | type tracker without call steps with content element 0 | params_flow.rb:96:10:96:18 | * | -| params_flow.rb:96:21:96:29 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:21:96:29 | * | type tracker without call steps | params_flow.rb:96:21:96:29 | * | +| params_flow.rb:96:16:96:17 | 45 | type tracker without call steps with content splat position 0 | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:96:16:96:17 | 45 | type tracker without call steps with content splat position 0 | params_flow.rb:96:10:96:18 | synthetic splat argument | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:71:5:71:10 | synthetic splat argument | +| params_flow.rb:96:21:96:29 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:96:21:96:29 | call to taint | type tracker without call steps | params_flow.rb:96:21:96:29 | call to taint | -| params_flow.rb:96:21:96:29 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:21:96:29 | call to taint | type tracker without call steps with content splat position 1 | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:96:21:96:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:21:96:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:96:21:96:29 | synthetic splat argument | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:27:96:28 | 46 | type tracker with call steps | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 0 | params_flow.rb:71:5:71:10 | * | -| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content element 1 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content splat position 0 | params_flow.rb:71:5:71:10 | synthetic splat argument | +| params_flow.rb:96:27:96:28 | 46 | type tracker with call steps with content splat position 1 | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:96:27:96:28 | 46 | type tracker without call steps | params_flow.rb:96:27:96:28 | 46 | -| params_flow.rb:96:27:96:28 | 46 | type tracker without call steps with content element 0 | params_flow.rb:96:21:96:29 | * | -| params_flow.rb:96:27:96:28 | 46 | type tracker without call steps with content element 1 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:27:96:28 | 46 | type tracker without call steps with content splat position 0 | params_flow.rb:96:21:96:29 | synthetic splat argument | +| params_flow.rb:96:27:96:28 | 46 | type tracker without call steps with content splat position 1 | params_flow.rb:96:1:96:88 | synthetic splat argument | | params_flow.rb:96:32:96:65 | * ... | type tracker without call steps | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:96:33:96:65 | * | type tracker without call steps | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:33:96:65 | Array | type tracker without call steps | params_flow.rb:96:33:96:65 | Array | -| params_flow.rb:96:33:96:65 | call to [] | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:33:96:65 | call to [] | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps | params_flow.rb:96:33:96:65 | call to [] | | params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps with content element 2 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:96:34:96:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:34:96:42 | * | type tracker without call steps | params_flow.rb:96:34:96:42 | * | -| params_flow.rb:96:34:96:42 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:33:96:65 | call to [] | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:96:33:96:65 | synthetic splat argument | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:96:33:96:65 | synthetic splat argument | type tracker without call steps | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:33:96:65 | synthetic splat argument | type tracker without call steps | params_flow.rb:96:33:96:65 | synthetic splat argument | +| params_flow.rb:96:33:96:65 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:96:33:96:65 | synthetic splat argument | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:96:34:96:42 | call to taint | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | -| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | * | -| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | -| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | synthetic splat argument | +| params_flow.rb:96:34:96:42 | call to taint | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:96:34:96:42 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:34:96:42 | synthetic splat argument | type tracker without call steps | params_flow.rb:96:34:96:42 | synthetic splat argument | | params_flow.rb:96:40:96:41 | 47 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content element 2 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:40:96:41 | 47 | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | type tracker without call steps | params_flow.rb:96:40:96:41 | 47 | -| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | * | -| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 | params_flow.rb:96:34:96:42 | * | -| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 or unknown | params_flow.rb:96:33:96:65 | call to [] | -| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 2 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:96:45:96:53 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:45:96:53 | * | type tracker without call steps | params_flow.rb:96:45:96:53 | * | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content element 0 | params_flow.rb:96:33:96:65 | synthetic splat argument | +| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content splat position 0 | params_flow.rb:96:34:96:42 | synthetic splat argument | +| params_flow.rb:96:40:96:41 | 47 | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:96:45:96:53 | call to taint | type tracker with call steps with content splat position 3 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps | params_flow.rb:96:45:96:53 | call to taint | -| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | * | -| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | -| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | synthetic splat argument | +| params_flow.rb:96:45:96:53 | call to taint | type tracker without call steps with content splat position 3 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:96:45:96:53 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:45:96:53 | synthetic splat argument | type tracker without call steps | params_flow.rb:96:45:96:53 | synthetic splat argument | | params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:51:96:52 | 48 | type tracker with call steps with content splat position 3 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | type tracker without call steps | params_flow.rb:96:51:96:52 | 48 | -| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 0 | params_flow.rb:96:45:96:53 | * | -| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | * | -| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 or unknown | params_flow.rb:96:33:96:65 | call to [] | -| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:96:56:96:64 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:56:96:64 | * | type tracker without call steps | params_flow.rb:96:56:96:64 | * | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content element 1 | params_flow.rb:96:33:96:65 | synthetic splat argument | +| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content splat position 0 | params_flow.rb:96:45:96:53 | synthetic splat argument | +| params_flow.rb:96:51:96:52 | 48 | type tracker without call steps with content splat position 3 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:96:56:96:64 | call to taint | type tracker with call steps with content splat position 4 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | -| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | * | -| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:33:96:65 | call to [] | -| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | synthetic splat argument | +| params_flow.rb:96:56:96:64 | call to taint | type tracker without call steps with content splat position 4 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | +| params_flow.rb:96:56:96:64 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:56:96:64 | synthetic splat argument | type tracker without call steps | params_flow.rb:96:56:96:64 | synthetic splat argument | | params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:62:96:63 | 49 | type tracker with call steps with content splat position 4 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | type tracker without call steps | params_flow.rb:96:62:96:63 | 49 | -| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 0 | params_flow.rb:96:56:96:64 | * | -| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | * | -| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 or unknown | params_flow.rb:96:33:96:65 | call to [] | -| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:96:68:96:76 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:68:96:76 | * | type tracker without call steps | params_flow.rb:96:68:96:76 | * | +| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 | params_flow.rb:96:32:96:65 | * ... | +| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content element 2 | params_flow.rb:96:33:96:65 | synthetic splat argument | +| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content splat position 0 | params_flow.rb:96:56:96:64 | synthetic splat argument | +| params_flow.rb:96:62:96:63 | 49 | type tracker without call steps with content splat position 4 (shifted) | params_flow.rb:96:1:96:88 | synthetic splat argument | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:96:68:96:76 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:74:5:74:10 | synthetic splat argument | | params_flow.rb:96:68:96:76 | call to taint | type tracker without call steps | params_flow.rb:96:68:96:76 | call to taint | -| params_flow.rb:96:68:96:76 | call to taint | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:68:96:76 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:68:96:76 | synthetic splat argument | type tracker without call steps | params_flow.rb:96:68:96:76 | synthetic splat argument | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:74:96:75 | 50 | type tracker with call steps | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 0 | params_flow.rb:74:5:74:10 | * | -| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content element 3 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:96:74:96:75 | 50 | type tracker with call steps with content splat position 0 | params_flow.rb:74:5:74:10 | synthetic splat argument | | params_flow.rb:96:74:96:75 | 50 | type tracker without call steps | params_flow.rb:96:68:96:76 | call to taint | | params_flow.rb:96:74:96:75 | 50 | type tracker without call steps | params_flow.rb:96:74:96:75 | 50 | -| params_flow.rb:96:74:96:75 | 50 | type tracker without call steps with content element 0 | params_flow.rb:96:68:96:76 | * | -| params_flow.rb:96:74:96:75 | 50 | type tracker without call steps with content element 3 | params_flow.rb:96:1:96:88 | * | -| params_flow.rb:96:79:96:87 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:79:96:87 | * | type tracker without call steps | params_flow.rb:96:79:96:87 | * | +| params_flow.rb:96:74:96:75 | 50 | type tracker without call steps with content splat position 0 | params_flow.rb:96:68:96:76 | synthetic splat argument | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:96:79:96:87 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:75:5:75:10 | synthetic splat argument | | params_flow.rb:96:79:96:87 | call to taint | type tracker without call steps | params_flow.rb:96:79:96:87 | call to taint | -| params_flow.rb:96:79:96:87 | call to taint | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:79:96:87 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:79:96:87 | synthetic splat argument | type tracker without call steps | params_flow.rb:96:79:96:87 | synthetic splat argument | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:85:96:86 | 51 | type tracker with call steps | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 0 | params_flow.rb:75:5:75:10 | * | -| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content element 4 | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:96:85:96:86 | 51 | type tracker with call steps with content splat position 0 | params_flow.rb:75:5:75:10 | synthetic splat argument | | params_flow.rb:96:85:96:86 | 51 | type tracker without call steps | params_flow.rb:96:79:96:87 | call to taint | | params_flow.rb:96:85:96:86 | 51 | type tracker without call steps | params_flow.rb:96:85:96:86 | 51 | -| params_flow.rb:96:85:96:86 | 51 | type tracker without call steps with content element 0 | params_flow.rb:96:79:96:87 | * | -| params_flow.rb:96:85:96:86 | 51 | type tracker without call steps with content element 4 | params_flow.rb:96:1:96:88 | * | +| params_flow.rb:96:85:96:86 | 51 | type tracker without call steps with content splat position 0 | params_flow.rb:96:79:96:87 | synthetic splat argument | | params_flow.rb:98:1:103:3 | &block | type tracker without call steps | params_flow.rb:98:1:103:3 | &block | | params_flow.rb:98:1:103:3 | self in splatmidsmall | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:98:1:103:3 | self in splatmidsmall | type tracker without call steps | params_flow.rb:98:1:103:3 | self in splatmidsmall | | params_flow.rb:98:1:103:3 | splatmidsmall | type tracker without call steps | params_flow.rb:98:1:103:3 | splatmidsmall | -| params_flow.rb:98:1:103:3 | synthetic *args | type tracker without call steps | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:98:1:103:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:98:19:98:19 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:98:19:98:19 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:98:19:98:19 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:98:19:98:19 | a | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:98:19:98:19 | a | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:98:19:98:19 | a | type tracker without call steps | params_flow.rb:98:19:98:19 | a | | params_flow.rb:98:19:98:19 | a | type tracker without call steps | params_flow.rb:98:19:98:19 | a | -| params_flow.rb:98:19:98:19 | a | type tracker without call steps with content element 0 | params_flow.rb:99:5:99:10 | * | +| params_flow.rb:98:19:98:19 | a | type tracker without call steps with content splat position 0 | params_flow.rb:99:5:99:10 | synthetic splat argument | | params_flow.rb:98:22:98:28 | *splats | type tracker without call steps | params_flow.rb:98:22:98:28 | *splats | | params_flow.rb:98:23:98:28 | splats | type tracker without call steps | params_flow.rb:98:23:98:28 | splats | | params_flow.rb:98:31:98:31 | b | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:98:31:98:31 | b | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:98:31:98:31 | b | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:98:31:98:31 | b | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:98:31:98:31 | b | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:98:31:98:31 | b | type tracker without call steps | params_flow.rb:98:31:98:31 | b | | params_flow.rb:98:31:98:31 | b | type tracker without call steps | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:98:31:98:31 | b | type tracker without call steps with content element 0 | params_flow.rb:102:5:102:10 | * | -| params_flow.rb:99:5:99:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:99:5:99:10 | * | type tracker without call steps | params_flow.rb:99:5:99:10 | * | +| params_flow.rb:98:31:98:31 | b | type tracker without call steps with content splat position 0 | params_flow.rb:102:5:102:10 | synthetic splat argument | | params_flow.rb:99:5:99:10 | call to sink | type tracker without call steps | params_flow.rb:99:5:99:10 | call to sink | -| params_flow.rb:100:5:100:18 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:100:5:100:18 | * | type tracker without call steps | params_flow.rb:100:5:100:18 | * | +| params_flow.rb:99:5:99:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:99:5:99:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:99:5:99:10 | synthetic splat argument | | params_flow.rb:100:5:100:18 | call to sink | type tracker without call steps | params_flow.rb:100:5:100:18 | call to sink | -| params_flow.rb:100:10:100:18 | * | type tracker without call steps | params_flow.rb:100:10:100:18 | * | +| params_flow.rb:100:5:100:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:100:5:100:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:100:5:100:18 | synthetic splat argument | | params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:100:10:100:18 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:100:10:100:18 | ...[...] | type tracker without call steps | params_flow.rb:100:10:100:18 | ...[...] | -| params_flow.rb:100:10:100:18 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:100:5:100:18 | * | +| params_flow.rb:100:10:100:18 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:100:5:100:18 | synthetic splat argument | +| params_flow.rb:100:10:100:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:100:10:100:18 | synthetic splat argument | | params_flow.rb:100:17:100:17 | 0 | type tracker without call steps | params_flow.rb:100:17:100:17 | 0 | -| params_flow.rb:100:17:100:17 | 0 | type tracker without call steps with content element 0 | params_flow.rb:100:10:100:18 | * | -| params_flow.rb:101:5:101:18 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:101:5:101:18 | * | type tracker without call steps | params_flow.rb:101:5:101:18 | * | +| params_flow.rb:100:17:100:17 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:100:10:100:18 | synthetic splat argument | | params_flow.rb:101:5:101:18 | call to sink | type tracker without call steps | params_flow.rb:101:5:101:18 | call to sink | -| params_flow.rb:101:10:101:18 | * | type tracker without call steps | params_flow.rb:101:10:101:18 | * | +| params_flow.rb:101:5:101:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:101:5:101:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:101:5:101:18 | synthetic splat argument | | params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:101:10:101:18 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:101:10:101:18 | ...[...] | type tracker without call steps | params_flow.rb:101:10:101:18 | ...[...] | -| params_flow.rb:101:10:101:18 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:101:5:101:18 | * | +| params_flow.rb:101:10:101:18 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:101:5:101:18 | synthetic splat argument | +| params_flow.rb:101:10:101:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:101:10:101:18 | synthetic splat argument | | params_flow.rb:101:17:101:17 | 1 | type tracker without call steps | params_flow.rb:101:17:101:17 | 1 | -| params_flow.rb:101:17:101:17 | 1 | type tracker without call steps with content element 0 | params_flow.rb:101:10:101:18 | * | -| params_flow.rb:102:5:102:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:102:5:102:10 | * | type tracker without call steps | params_flow.rb:102:5:102:10 | * | +| params_flow.rb:101:17:101:17 | 1 | type tracker without call steps with content splat position 0 | params_flow.rb:101:10:101:18 | synthetic splat argument | | params_flow.rb:102:5:102:10 | call to sink | type tracker without call steps | params_flow.rb:102:5:102:10 | call to sink | | params_flow.rb:102:5:102:10 | call to sink | type tracker without call steps | params_flow.rb:105:1:105:49 | call to splatmidsmall | | params_flow.rb:102:5:102:10 | call to sink | type tracker without call steps | params_flow.rb:106:1:106:46 | call to splatmidsmall | -| params_flow.rb:105:1:105:49 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:105:1:105:49 | * | type tracker without call steps | params_flow.rb:105:1:105:49 | * | +| params_flow.rb:102:5:102:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:102:5:102:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:102:5:102:10 | synthetic splat argument | | params_flow.rb:105:1:105:49 | call to splatmidsmall | type tracker without call steps | params_flow.rb:105:1:105:49 | call to splatmidsmall | -| params_flow.rb:105:15:105:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:15:105:23 | * | type tracker without call steps | params_flow.rb:105:15:105:23 | * | +| params_flow.rb:105:1:105:49 | synthetic splat argument | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:105:1:105:49 | synthetic splat argument | type tracker without call steps | params_flow.rb:105:1:105:49 | synthetic splat argument | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps | params_flow.rb:98:19:98:19 | a | -| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | +| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:105:15:105:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:99:5:99:10 | synthetic splat argument | | params_flow.rb:105:15:105:23 | call to taint | type tracker without call steps | params_flow.rb:105:15:105:23 | call to taint | -| params_flow.rb:105:15:105:23 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:105:1:105:49 | * | +| params_flow.rb:105:15:105:23 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:105:1:105:49 | synthetic splat argument | +| params_flow.rb:105:15:105:23 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:105:15:105:23 | synthetic splat argument | type tracker without call steps | params_flow.rb:105:15:105:23 | synthetic splat argument | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:105:21:105:22 | 52 | type tracker with call steps | params_flow.rb:98:19:98:19 | a | -| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content splat position 0 | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:105:21:105:22 | 52 | type tracker with call steps with content splat position 0 | params_flow.rb:99:5:99:10 | synthetic splat argument | | params_flow.rb:105:21:105:22 | 52 | type tracker without call steps | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:105:21:105:22 | 52 | type tracker without call steps | params_flow.rb:105:21:105:22 | 52 | -| params_flow.rb:105:21:105:22 | 52 | type tracker without call steps with content element 0 | params_flow.rb:105:1:105:49 | * | -| params_flow.rb:105:21:105:22 | 52 | type tracker without call steps with content element 0 | params_flow.rb:105:15:105:23 | * | +| params_flow.rb:105:21:105:22 | 52 | type tracker without call steps with content splat position 0 | params_flow.rb:105:1:105:49 | synthetic splat argument | +| params_flow.rb:105:21:105:22 | 52 | type tracker without call steps with content splat position 0 | params_flow.rb:105:15:105:23 | synthetic splat argument | | params_flow.rb:105:26:105:48 | * ... | type tracker without call steps | params_flow.rb:105:26:105:48 | * ... | -| params_flow.rb:105:27:105:48 | * | type tracker without call steps | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:27:105:48 | Array | type tracker without call steps | params_flow.rb:105:27:105:48 | Array | -| params_flow.rb:105:27:105:48 | call to [] | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:27:105:48 | call to [] | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps | params_flow.rb:105:27:105:48 | call to [] | | params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | -| params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:105:1:105:49 | * | -| params_flow.rb:105:28:105:36 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:28:105:36 | * | type tracker without call steps | params_flow.rb:105:28:105:36 | * | -| params_flow.rb:105:28:105:36 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:27:105:48 | call to [] | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:105:1:105:49 | synthetic splat argument | +| params_flow.rb:105:27:105:48 | synthetic splat argument | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:105:27:105:48 | synthetic splat argument | type tracker without call steps | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:27:105:48 | synthetic splat argument | type tracker without call steps | params_flow.rb:105:27:105:48 | synthetic splat argument | +| params_flow.rb:105:27:105:48 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | +| params_flow.rb:105:27:105:48 | synthetic splat argument | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:105:1:105:49 | synthetic splat argument | +| params_flow.rb:105:28:105:36 | call to taint | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | -| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | * | -| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | -| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | -| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:105:1:105:49 | * | +| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:105:26:105:48 | * ... | +| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | synthetic splat argument | +| params_flow.rb:105:28:105:36 | call to taint | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:105:1:105:49 | synthetic splat argument | +| params_flow.rb:105:28:105:36 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:105:28:105:36 | synthetic splat argument | type tracker without call steps | params_flow.rb:105:28:105:36 | synthetic splat argument | | params_flow.rb:105:34:105:35 | 53 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:105:34:105:35 | 53 | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | type tracker without call steps | params_flow.rb:105:34:105:35 | 53 | -| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | * | -| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 | params_flow.rb:105:28:105:36 | * | -| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:26:105:48 | * ... | -| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 or unknown | params_flow.rb:105:27:105:48 | call to [] | -| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 1 | params_flow.rb:105:1:105:49 | * | -| params_flow.rb:105:39:105:47 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:39:105:47 | * | type tracker without call steps | params_flow.rb:105:39:105:47 | * | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | -| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 | params_flow.rb:105:26:105:48 | * ... | +| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content element 0 | params_flow.rb:105:27:105:48 | synthetic splat argument | +| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content splat position 0 | params_flow.rb:105:28:105:36 | synthetic splat argument | +| params_flow.rb:105:34:105:35 | 53 | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:105:1:105:49 | synthetic splat argument | +| params_flow.rb:105:39:105:47 | call to taint | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | -| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | * | -| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:26:105:48 | * ... | -| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:27:105:48 | call to [] | -| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:105:1:105:49 | * | +| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:105:26:105:48 | * ... | +| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | synthetic splat argument | +| params_flow.rb:105:39:105:47 | call to taint | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:105:1:105:49 | synthetic splat argument | +| params_flow.rb:105:39:105:47 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:105:39:105:47 | synthetic splat argument | type tracker without call steps | params_flow.rb:105:39:105:47 | synthetic splat argument | | params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | -| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:105:45:105:46 | 54 | type tracker with call steps with content splat position 2 (shifted) | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | type tracker without call steps | params_flow.rb:105:45:105:46 | 54 | -| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 0 | params_flow.rb:105:39:105:47 | * | -| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | * | -| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:26:105:48 | * ... | -| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 or unknown | params_flow.rb:105:27:105:48 | call to [] | -| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 2 | params_flow.rb:105:1:105:49 | * | -| params_flow.rb:106:1:106:46 | * | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:1:106:46 | * | type tracker without call steps | params_flow.rb:106:1:106:46 | * | +| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 | params_flow.rb:105:26:105:48 | * ... | +| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content element 1 | params_flow.rb:105:27:105:48 | synthetic splat argument | +| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content splat position 0 | params_flow.rb:105:39:105:47 | synthetic splat argument | +| params_flow.rb:105:45:105:46 | 54 | type tracker without call steps with content splat position 2 (shifted) | params_flow.rb:105:1:105:49 | synthetic splat argument | | params_flow.rb:106:1:106:46 | call to splatmidsmall | type tracker without call steps | params_flow.rb:106:1:106:46 | call to splatmidsmall | -| params_flow.rb:106:15:106:23 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:15:106:23 | * | type tracker without call steps | params_flow.rb:106:15:106:23 | * | +| params_flow.rb:106:1:106:46 | synthetic splat argument | type tracker with call steps | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:106:1:106:46 | synthetic splat argument | type tracker without call steps | params_flow.rb:106:1:106:46 | synthetic splat argument | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps | params_flow.rb:98:19:98:19 | a | -| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | +| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:106:15:106:23 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:99:5:99:10 | synthetic splat argument | | params_flow.rb:106:15:106:23 | call to taint | type tracker without call steps | params_flow.rb:106:15:106:23 | call to taint | -| params_flow.rb:106:15:106:23 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:106:1:106:46 | * | +| params_flow.rb:106:15:106:23 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:106:1:106:46 | synthetic splat argument | +| params_flow.rb:106:15:106:23 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:106:15:106:23 | synthetic splat argument | type tracker without call steps | params_flow.rb:106:15:106:23 | synthetic splat argument | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:21:106:22 | 55 | type tracker with call steps | params_flow.rb:98:19:98:19 | a | -| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content element 0 | params_flow.rb:99:5:99:10 | * | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content splat position 0 | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:106:21:106:22 | 55 | type tracker with call steps with content splat position 0 | params_flow.rb:99:5:99:10 | synthetic splat argument | | params_flow.rb:106:21:106:22 | 55 | type tracker without call steps | params_flow.rb:106:15:106:23 | call to taint | | params_flow.rb:106:21:106:22 | 55 | type tracker without call steps | params_flow.rb:106:21:106:22 | 55 | -| params_flow.rb:106:21:106:22 | 55 | type tracker without call steps with content element 0 | params_flow.rb:106:1:106:46 | * | -| params_flow.rb:106:21:106:22 | 55 | type tracker without call steps with content element 0 | params_flow.rb:106:15:106:23 | * | -| params_flow.rb:106:26:106:34 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:26:106:34 | * | type tracker without call steps | params_flow.rb:106:26:106:34 | * | -| params_flow.rb:106:26:106:34 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:21:106:22 | 55 | type tracker without call steps with content splat position 0 | params_flow.rb:106:1:106:46 | synthetic splat argument | +| params_flow.rb:106:21:106:22 | 55 | type tracker without call steps with content splat position 0 | params_flow.rb:106:15:106:23 | synthetic splat argument | +| params_flow.rb:106:26:106:34 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:106:26:106:34 | call to taint | type tracker without call steps | params_flow.rb:106:26:106:34 | call to taint | -| params_flow.rb:106:26:106:34 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:106:1:106:46 | * | +| params_flow.rb:106:26:106:34 | call to taint | type tracker without call steps with content splat position 1 | params_flow.rb:106:1:106:46 | synthetic splat argument | +| params_flow.rb:106:26:106:34 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:106:26:106:34 | synthetic splat argument | type tracker without call steps | params_flow.rb:106:26:106:34 | synthetic splat argument | | params_flow.rb:106:32:106:33 | 56 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content element 1 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:106:32:106:33 | 56 | type tracker with call steps with content splat position 1 | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:106:32:106:33 | 56 | type tracker without call steps | params_flow.rb:106:26:106:34 | call to taint | | params_flow.rb:106:32:106:33 | 56 | type tracker without call steps | params_flow.rb:106:32:106:33 | 56 | -| params_flow.rb:106:32:106:33 | 56 | type tracker without call steps with content element 0 | params_flow.rb:106:26:106:34 | * | -| params_flow.rb:106:32:106:33 | 56 | type tracker without call steps with content element 1 | params_flow.rb:106:1:106:46 | * | -| params_flow.rb:106:37:106:45 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:37:106:45 | * | type tracker without call steps | params_flow.rb:106:37:106:45 | * | +| params_flow.rb:106:32:106:33 | 56 | type tracker without call steps with content splat position 0 | params_flow.rb:106:26:106:34 | synthetic splat argument | +| params_flow.rb:106:32:106:33 | 56 | type tracker without call steps with content splat position 1 | params_flow.rb:106:1:106:46 | synthetic splat argument | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | -| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:102:5:102:10 | synthetic splat argument | +| params_flow.rb:106:37:106:45 | call to taint | type tracker with call steps with content splat position 2 | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:106:37:106:45 | call to taint | type tracker without call steps | params_flow.rb:106:37:106:45 | call to taint | -| params_flow.rb:106:37:106:45 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:106:1:106:46 | * | +| params_flow.rb:106:37:106:45 | call to taint | type tracker without call steps with content splat position 2 | params_flow.rb:106:1:106:46 | synthetic splat argument | +| params_flow.rb:106:37:106:45 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:106:37:106:45 | synthetic splat argument | type tracker without call steps | params_flow.rb:106:37:106:45 | synthetic splat argument | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:43:106:44 | 57 | type tracker with call steps | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 0 | params_flow.rb:102:5:102:10 | * | -| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content element 2 | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content splat position 0 | params_flow.rb:102:5:102:10 | synthetic splat argument | +| params_flow.rb:106:43:106:44 | 57 | type tracker with call steps with content splat position 2 | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:106:43:106:44 | 57 | type tracker without call steps | params_flow.rb:106:37:106:45 | call to taint | | params_flow.rb:106:43:106:44 | 57 | type tracker without call steps | params_flow.rb:106:43:106:44 | 57 | -| params_flow.rb:106:43:106:44 | 57 | type tracker without call steps with content element 0 | params_flow.rb:106:37:106:45 | * | -| params_flow.rb:106:43:106:44 | 57 | type tracker without call steps with content element 2 | params_flow.rb:106:1:106:46 | * | +| params_flow.rb:106:43:106:44 | 57 | type tracker without call steps with content splat position 0 | params_flow.rb:106:37:106:45 | synthetic splat argument | +| params_flow.rb:106:43:106:44 | 57 | type tracker without call steps with content splat position 2 | params_flow.rb:106:1:106:46 | synthetic splat argument | | params_flow.rb:108:1:112:3 | &block | type tracker without call steps | params_flow.rb:108:1:112:3 | &block | -| params_flow.rb:108:1:112:3 | **kwargs | type tracker without call steps | params_flow.rb:108:1:112:3 | **kwargs | | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | type tracker without call steps | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | type tracker without call steps | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | -| params_flow.rb:108:1:112:3 | synthetic *args | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:108:1:112:3 | synthetic hash-splat parameter | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic hash-splat parameter | +| params_flow.rb:108:1:112:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:108:1:112:3 | synthetic splat parameter | | params_flow.rb:108:37:108:37 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:108:37:108:37 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:108:37:108:37 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:108:37:108:37 | a | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:108:37:108:37 | a | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:108:37:108:37 | a | type tracker without call steps | params_flow.rb:108:37:108:37 | a | | params_flow.rb:108:37:108:37 | a | type tracker without call steps | params_flow.rb:108:37:108:37 | a | -| params_flow.rb:108:37:108:37 | a | type tracker without call steps with content element 0 | params_flow.rb:109:5:109:10 | * | +| params_flow.rb:108:37:108:37 | a | type tracker without call steps with content splat position 0 | params_flow.rb:109:5:109:10 | synthetic splat argument | | params_flow.rb:108:40:108:41 | *b | type tracker without call steps | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:108:41:108:41 | b | type tracker without call steps | params_flow.rb:108:41:108:41 | b | | params_flow.rb:108:44:108:44 | c | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:108:44:108:44 | c | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:108:44:108:44 | c | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:108:44:108:44 | c | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:108:44:108:44 | c | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:108:44:108:44 | c | type tracker without call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:108:44:108:44 | c | type tracker without call steps | params_flow.rb:108:44:108:44 | c | -| params_flow.rb:108:44:108:44 | c | type tracker without call steps with content element 0 | params_flow.rb:111:5:111:10 | * | -| params_flow.rb:109:5:109:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:109:5:109:10 | * | type tracker without call steps | params_flow.rb:109:5:109:10 | * | +| params_flow.rb:108:44:108:44 | c | type tracker without call steps with content splat position 0 | params_flow.rb:111:5:111:10 | synthetic splat argument | | params_flow.rb:109:5:109:10 | call to sink | type tracker without call steps | params_flow.rb:109:5:109:10 | call to sink | -| params_flow.rb:110:5:110:13 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:110:5:110:13 | * | type tracker without call steps | params_flow.rb:110:5:110:13 | * | +| params_flow.rb:109:5:109:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:109:5:109:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:109:5:109:10 | synthetic splat argument | | params_flow.rb:110:5:110:13 | call to sink | type tracker without call steps | params_flow.rb:110:5:110:13 | call to sink | -| params_flow.rb:110:10:110:13 | * | type tracker without call steps | params_flow.rb:110:10:110:13 | * | +| params_flow.rb:110:5:110:13 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:110:5:110:13 | synthetic splat argument | type tracker without call steps | params_flow.rb:110:5:110:13 | synthetic splat argument | | params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:110:10:110:13 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:110:10:110:13 | ...[...] | type tracker without call steps | params_flow.rb:110:10:110:13 | ...[...] | -| params_flow.rb:110:10:110:13 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:110:5:110:13 | * | +| params_flow.rb:110:10:110:13 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:110:5:110:13 | synthetic splat argument | +| params_flow.rb:110:10:110:13 | synthetic splat argument | type tracker without call steps | params_flow.rb:110:10:110:13 | synthetic splat argument | | params_flow.rb:110:12:110:12 | 0 | type tracker without call steps | params_flow.rb:110:12:110:12 | 0 | -| params_flow.rb:110:12:110:12 | 0 | type tracker without call steps with content element 0 | params_flow.rb:110:10:110:13 | * | -| params_flow.rb:111:5:111:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:111:5:111:10 | * | type tracker without call steps | params_flow.rb:111:5:111:10 | * | +| params_flow.rb:110:12:110:12 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:110:10:110:13 | synthetic splat argument | | params_flow.rb:111:5:111:10 | call to sink | type tracker without call steps | params_flow.rb:111:5:111:10 | call to sink | | params_flow.rb:111:5:111:10 | call to sink | type tracker without call steps | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | -| params_flow.rb:114:1:114:67 | * | type tracker with call steps | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:1:114:67 | * | type tracker without call steps | params_flow.rb:114:1:114:67 | * | -| params_flow.rb:114:1:114:67 | ** | type tracker with call steps | params_flow.rb:108:1:112:3 | **kwargs | -| params_flow.rb:114:1:114:67 | ** | type tracker without call steps | params_flow.rb:114:1:114:67 | ** | +| params_flow.rb:111:5:111:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:111:5:111:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:111:5:111:10 | synthetic splat argument | | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | type tracker without call steps | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | -| params_flow.rb:114:33:114:41 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:33:114:41 | * | type tracker without call steps | params_flow.rb:114:33:114:41 | * | +| params_flow.rb:114:1:114:67 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:108:1:112:3 | synthetic hash-splat parameter | +| params_flow.rb:114:1:114:67 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:114:1:114:67 | synthetic hash-splat argument | +| params_flow.rb:114:1:114:67 | synthetic splat argument | type tracker with call steps | params_flow.rb:108:1:112:3 | synthetic splat parameter | +| params_flow.rb:114:1:114:67 | synthetic splat argument | type tracker without call steps | params_flow.rb:114:1:114:67 | synthetic splat argument | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps | params_flow.rb:108:37:108:37 | a | -| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | -| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | -| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:109:5:109:10 | * | -| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | +| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:108:1:112:3 | synthetic splat parameter | +| params_flow.rb:114:33:114:41 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:109:5:109:10 | synthetic splat argument | | params_flow.rb:114:33:114:41 | call to taint | type tracker without call steps | params_flow.rb:114:33:114:41 | call to taint | -| params_flow.rb:114:33:114:41 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:114:1:114:67 | * | +| params_flow.rb:114:33:114:41 | call to taint | type tracker without call steps with content splat position 0 | params_flow.rb:114:1:114:67 | synthetic splat argument | +| params_flow.rb:114:33:114:41 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:114:33:114:41 | synthetic splat argument | type tracker without call steps | params_flow.rb:114:33:114:41 | synthetic splat argument | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:39:114:40 | 58 | type tracker with call steps | params_flow.rb:108:37:108:37 | a | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:109:5:109:10 | * | -| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content element 0 | params_flow.rb:110:5:110:13 | * | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content splat position 0 | params_flow.rb:108:1:112:3 | synthetic splat parameter | +| params_flow.rb:114:39:114:40 | 58 | type tracker with call steps with content splat position 0 | params_flow.rb:109:5:109:10 | synthetic splat argument | | params_flow.rb:114:39:114:40 | 58 | type tracker without call steps | params_flow.rb:114:33:114:41 | call to taint | | params_flow.rb:114:39:114:40 | 58 | type tracker without call steps | params_flow.rb:114:39:114:40 | 58 | -| params_flow.rb:114:39:114:40 | 58 | type tracker without call steps with content element 0 | params_flow.rb:114:1:114:67 | * | -| params_flow.rb:114:39:114:40 | 58 | type tracker without call steps with content element 0 | params_flow.rb:114:33:114:41 | * | -| params_flow.rb:114:44:114:52 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:44:114:52 | * | type tracker without call steps | params_flow.rb:114:44:114:52 | * | -| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:108:40:108:41 | *b | +| params_flow.rb:114:39:114:40 | 58 | type tracker without call steps with content splat position 0 | params_flow.rb:114:1:114:67 | synthetic splat argument | +| params_flow.rb:114:39:114:40 | 58 | type tracker without call steps with content splat position 0 | params_flow.rb:114:33:114:41 | synthetic splat argument | +| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | +| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | +| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:110:5:110:13 | synthetic splat argument | +| params_flow.rb:114:44:114:52 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:108:1:112:3 | synthetic splat parameter | | params_flow.rb:114:44:114:52 | call to taint | type tracker without call steps | params_flow.rb:114:44:114:52 | call to taint | -| params_flow.rb:114:44:114:52 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:114:1:114:67 | * | +| params_flow.rb:114:44:114:52 | call to taint | type tracker without call steps with content splat position 1 | params_flow.rb:114:1:114:67 | synthetic splat argument | +| params_flow.rb:114:44:114:52 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:114:44:114:52 | synthetic splat argument | type tracker without call steps | params_flow.rb:114:44:114:52 | synthetic splat argument | | params_flow.rb:114:50:114:51 | 59 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 1 | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 1 | params_flow.rb:108:40:108:41 | *b | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content splat position 0 | params_flow.rb:110:5:110:13 | synthetic splat argument | +| params_flow.rb:114:50:114:51 | 59 | type tracker with call steps with content splat position 1 | params_flow.rb:108:1:112:3 | synthetic splat parameter | | params_flow.rb:114:50:114:51 | 59 | type tracker without call steps | params_flow.rb:114:44:114:52 | call to taint | | params_flow.rb:114:50:114:51 | 59 | type tracker without call steps | params_flow.rb:114:50:114:51 | 59 | -| params_flow.rb:114:50:114:51 | 59 | type tracker without call steps with content element 0 | params_flow.rb:114:44:114:52 | * | -| params_flow.rb:114:50:114:51 | 59 | type tracker without call steps with content element 1 | params_flow.rb:114:1:114:67 | * | +| params_flow.rb:114:50:114:51 | 59 | type tracker without call steps with content splat position 0 | params_flow.rb:114:44:114:52 | synthetic splat argument | +| params_flow.rb:114:50:114:51 | 59 | type tracker without call steps with content splat position 1 | params_flow.rb:114:1:114:67 | synthetic splat argument | | params_flow.rb:114:55:114:55 | :c | type tracker without call steps | params_flow.rb:114:55:114:55 | :c | | params_flow.rb:114:55:114:66 | Pair | type tracker without call steps | params_flow.rb:114:55:114:66 | Pair | -| params_flow.rb:114:58:114:66 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:58:114:66 | * | type tracker without call steps | params_flow.rb:114:58:114:66 | * | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps | params_flow.rb:108:44:108:44 | c | -| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:111:5:111:10 | * | -| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content element :c | params_flow.rb:108:1:112:3 | **kwargs | +| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content hash-splat position :c | params_flow.rb:108:1:112:3 | synthetic hash-splat parameter | +| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:114:58:114:66 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:111:5:111:10 | synthetic splat argument | | params_flow.rb:114:58:114:66 | call to taint | type tracker without call steps | params_flow.rb:114:58:114:66 | call to taint | -| params_flow.rb:114:58:114:66 | call to taint | type tracker without call steps with content element :c | params_flow.rb:114:1:114:67 | ** | +| params_flow.rb:114:58:114:66 | call to taint | type tracker without call steps with content hash-splat position :c | params_flow.rb:114:1:114:67 | synthetic hash-splat argument | +| params_flow.rb:114:58:114:66 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:114:58:114:66 | synthetic splat argument | type tracker without call steps | params_flow.rb:114:58:114:66 | synthetic splat argument | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:64:114:65 | 60 | type tracker with call steps | params_flow.rb:108:44:108:44 | c | -| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element 0 | params_flow.rb:111:5:111:10 | * | -| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content element :c | params_flow.rb:108:1:112:3 | **kwargs | +| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content hash-splat position :c | params_flow.rb:108:1:112:3 | synthetic hash-splat parameter | +| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:114:64:114:65 | 60 | type tracker with call steps with content splat position 0 | params_flow.rb:111:5:111:10 | synthetic splat argument | | params_flow.rb:114:64:114:65 | 60 | type tracker without call steps | params_flow.rb:114:58:114:66 | call to taint | | params_flow.rb:114:64:114:65 | 60 | type tracker without call steps | params_flow.rb:114:64:114:65 | 60 | -| params_flow.rb:114:64:114:65 | 60 | type tracker without call steps with content element 0 | params_flow.rb:114:58:114:66 | * | -| params_flow.rb:114:64:114:65 | 60 | type tracker without call steps with content element :c | params_flow.rb:114:1:114:67 | ** | +| params_flow.rb:114:64:114:65 | 60 | type tracker without call steps with content hash-splat position :c | params_flow.rb:114:1:114:67 | synthetic hash-splat argument | +| params_flow.rb:114:64:114:65 | 60 | type tracker without call steps with content splat position 0 | params_flow.rb:114:58:114:66 | synthetic splat argument | | params_flow.rb:116:1:116:1 | x | type tracker without call steps | params_flow.rb:116:1:116:1 | x | | params_flow.rb:116:5:116:6 | Array | type tracker without call steps | params_flow.rb:116:5:116:6 | Array | | params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:116:5:116:6 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:116:5:116:6 | call to [] | type tracker without call steps | params_flow.rb:116:5:116:6 | call to [] | | params_flow.rb:116:5:116:6 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content element 0 or unknown | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:117:1:117:1 | [post] x | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:117:1:117:1 | [post] x | type tracker without call steps | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:117:1:117:1 | [post] x | type tracker without call steps with content element 0 or unknown | params_flow.rb:118:12:118:13 | * ... | -| params_flow.rb:117:1:117:15 | * | type tracker without call steps | params_flow.rb:117:1:117:15 | * | | params_flow.rb:117:1:117:15 | call to []= | type tracker without call steps | params_flow.rb:117:1:117:15 | call to []= | +| params_flow.rb:117:1:117:15 | synthetic splat argument | type tracker without call steps | params_flow.rb:117:1:117:15 | synthetic splat argument | | params_flow.rb:117:3:117:14 | call to some_index | type tracker without call steps | params_flow.rb:117:3:117:14 | call to some_index | -| params_flow.rb:117:3:117:14 | call to some_index | type tracker without call steps with content element 0 | params_flow.rb:117:1:117:15 | * | -| params_flow.rb:117:19:117:27 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:117:19:117:27 | * | type tracker without call steps | params_flow.rb:117:19:117:27 | * | +| params_flow.rb:117:3:117:14 | call to some_index | type tracker without call steps with content splat position 0 | params_flow.rb:117:1:117:15 | synthetic splat argument | | params_flow.rb:117:19:117:27 | __synth__0 | type tracker without call steps | params_flow.rb:117:19:117:27 | __synth__0 | | params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | +| params_flow.rb:117:19:117:27 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps | params_flow.rb:117:19:117:27 | call to taint | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content attribute [] | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content element | params_flow.rb:116:5:116:6 | call to [] | | params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content element | params_flow.rb:118:12:118:13 | * ... | -| params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:117:1:117:15 | * | +| params_flow.rb:117:19:117:27 | call to taint | type tracker without call steps with content splat position 1 | params_flow.rb:117:1:117:15 | synthetic splat argument | +| params_flow.rb:117:19:117:27 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:117:19:117:27 | synthetic splat argument | type tracker without call steps | params_flow.rb:117:19:117:27 | synthetic splat argument | | params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:117:25:117:26 | 61 | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:10:5:10:11 | * | -| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element 0 | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content splat position 0 | params_flow.rb:10:5:10:11 | synthetic splat argument | +| params_flow.rb:117:25:117:26 | 61 | type tracker with call steps with content splat position 0 | params_flow.rb:11:5:11:11 | synthetic splat argument | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps | params_flow.rb:117:19:117:27 | call to taint | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps | params_flow.rb:117:25:117:26 | 61 | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content attribute [] | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element | params_flow.rb:116:5:116:6 | call to [] | | params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element | params_flow.rb:118:12:118:13 | * ... | -| params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element 0 | params_flow.rb:117:19:117:27 | * | -| params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content element 1 | params_flow.rb:117:1:117:15 | * | +| params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content splat position 0 | params_flow.rb:117:19:117:27 | synthetic splat argument | +| params_flow.rb:117:25:117:26 | 61 | type tracker without call steps with content splat position 1 | params_flow.rb:117:1:117:15 | synthetic splat argument | | params_flow.rb:118:1:118:14 | call to positional | type tracker without call steps | params_flow.rb:118:1:118:14 | call to positional | -| params_flow.rb:118:12:118:13 | * ... | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:118:12:118:13 | * ... | type tracker with call steps | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:118:12:118:13 | * ... | type tracker without call steps | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:120:1:126:3 | &block | type tracker without call steps | params_flow.rb:120:1:126:3 | &block | | params_flow.rb:120:1:126:3 | destruct | type tracker without call steps | params_flow.rb:120:1:126:3 | destruct | @@ -2602,323 +2585,327 @@ track | params_flow.rb:120:22:120:22 | c | type tracker without call steps | params_flow.rb:120:22:120:22 | c | | params_flow.rb:120:25:120:25 | d | type tracker without call steps | params_flow.rb:120:25:120:25 | d | | params_flow.rb:120:27:120:27 | e | type tracker without call steps | params_flow.rb:120:27:120:27 | e | -| params_flow.rb:121:5:121:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:121:5:121:10 | * | type tracker without call steps | params_flow.rb:121:5:121:10 | * | | params_flow.rb:121:5:121:10 | call to sink | type tracker without call steps | params_flow.rb:121:5:121:10 | call to sink | +| params_flow.rb:121:5:121:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:121:5:121:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:121:5:121:10 | synthetic splat argument | | params_flow.rb:121:10:121:10 | a | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:121:10:121:10 | a | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:121:10:121:10 | a | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:121:10:121:10 | a | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:121:10:121:10 | a | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:121:10:121:10 | a | type tracker without call steps | params_flow.rb:121:10:121:10 | a | -| params_flow.rb:121:10:121:10 | a | type tracker without call steps with content element 0 | params_flow.rb:121:5:121:10 | * | -| params_flow.rb:122:5:122:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:122:5:122:10 | * | type tracker without call steps | params_flow.rb:122:5:122:10 | * | +| params_flow.rb:121:10:121:10 | a | type tracker without call steps with content splat position 0 | params_flow.rb:121:5:121:10 | synthetic splat argument | | params_flow.rb:122:5:122:10 | call to sink | type tracker without call steps | params_flow.rb:122:5:122:10 | call to sink | +| params_flow.rb:122:5:122:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:122:5:122:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:122:5:122:10 | synthetic splat argument | | params_flow.rb:122:10:122:10 | b | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:122:10:122:10 | b | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:122:10:122:10 | b | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:122:10:122:10 | b | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:122:10:122:10 | b | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:122:10:122:10 | b | type tracker without call steps | params_flow.rb:122:10:122:10 | b | -| params_flow.rb:122:10:122:10 | b | type tracker without call steps with content element 0 | params_flow.rb:122:5:122:10 | * | -| params_flow.rb:123:5:123:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:123:5:123:10 | * | type tracker without call steps | params_flow.rb:123:5:123:10 | * | +| params_flow.rb:122:10:122:10 | b | type tracker without call steps with content splat position 0 | params_flow.rb:122:5:122:10 | synthetic splat argument | | params_flow.rb:123:5:123:10 | call to sink | type tracker without call steps | params_flow.rb:123:5:123:10 | call to sink | +| params_flow.rb:123:5:123:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:123:5:123:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:123:5:123:10 | synthetic splat argument | | params_flow.rb:123:10:123:10 | c | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:123:10:123:10 | c | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:123:10:123:10 | c | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:123:10:123:10 | c | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:123:10:123:10 | c | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:123:10:123:10 | c | type tracker without call steps | params_flow.rb:123:10:123:10 | c | -| params_flow.rb:123:10:123:10 | c | type tracker without call steps with content element 0 | params_flow.rb:123:5:123:10 | * | -| params_flow.rb:124:5:124:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:124:5:124:10 | * | type tracker without call steps | params_flow.rb:124:5:124:10 | * | +| params_flow.rb:123:10:123:10 | c | type tracker without call steps with content splat position 0 | params_flow.rb:123:5:123:10 | synthetic splat argument | | params_flow.rb:124:5:124:10 | call to sink | type tracker without call steps | params_flow.rb:124:5:124:10 | call to sink | +| params_flow.rb:124:5:124:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:124:5:124:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:124:5:124:10 | synthetic splat argument | | params_flow.rb:124:10:124:10 | d | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:124:10:124:10 | d | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:124:10:124:10 | d | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:124:10:124:10 | d | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:124:10:124:10 | d | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:124:10:124:10 | d | type tracker without call steps | params_flow.rb:124:10:124:10 | d | -| params_flow.rb:124:10:124:10 | d | type tracker without call steps with content element 0 | params_flow.rb:124:5:124:10 | * | -| params_flow.rb:125:5:125:10 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:125:5:125:10 | * | type tracker without call steps | params_flow.rb:125:5:125:10 | * | +| params_flow.rb:124:10:124:10 | d | type tracker without call steps with content splat position 0 | params_flow.rb:124:5:124:10 | synthetic splat argument | | params_flow.rb:125:5:125:10 | call to sink | type tracker without call steps | params_flow.rb:125:5:125:10 | call to sink | | params_flow.rb:125:5:125:10 | call to sink | type tracker without call steps | params_flow.rb:128:1:128:61 | call to destruct | +| params_flow.rb:125:5:125:10 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:125:5:125:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:125:5:125:10 | synthetic splat argument | | params_flow.rb:125:10:125:10 | e | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:125:10:125:10 | e | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:125:10:125:10 | e | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:125:10:125:10 | e | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:125:10:125:10 | e | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:125:10:125:10 | e | type tracker without call steps | params_flow.rb:125:10:125:10 | e | -| params_flow.rb:125:10:125:10 | e | type tracker without call steps with content element 0 | params_flow.rb:125:5:125:10 | * | -| params_flow.rb:128:1:128:61 | * | type tracker without call steps | params_flow.rb:128:1:128:61 | * | +| params_flow.rb:125:10:125:10 | e | type tracker without call steps with content splat position 0 | params_flow.rb:125:5:125:10 | synthetic splat argument | | params_flow.rb:128:1:128:61 | call to destruct | type tracker without call steps | params_flow.rb:128:1:128:61 | call to destruct | -| params_flow.rb:128:10:128:31 | * | type tracker without call steps | params_flow.rb:128:10:128:31 | * | +| params_flow.rb:128:1:128:61 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:1:128:61 | synthetic splat argument | | params_flow.rb:128:10:128:31 | Array | type tracker without call steps | params_flow.rb:128:10:128:31 | Array | | params_flow.rb:128:10:128:31 | call to [] | type tracker without call steps | params_flow.rb:128:10:128:31 | call to [] | -| params_flow.rb:128:10:128:31 | call to [] | type tracker without call steps with content element 0 | params_flow.rb:128:1:128:61 | * | -| params_flow.rb:128:11:128:19 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:11:128:19 | * | type tracker without call steps | params_flow.rb:128:11:128:19 | * | +| params_flow.rb:128:10:128:31 | call to [] | type tracker without call steps with content splat position 0 | params_flow.rb:128:1:128:61 | synthetic splat argument | +| params_flow.rb:128:10:128:31 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:128:10:128:31 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:10:128:31 | synthetic splat argument | +| params_flow.rb:128:10:128:31 | synthetic splat argument | type tracker without call steps with content splat position 0 | params_flow.rb:128:1:128:61 | synthetic splat argument | | params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps | params_flow.rb:128:11:128:19 | call to taint | -| params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | * | -| params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:128:11:128:19 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | synthetic splat argument | +| params_flow.rb:128:11:128:19 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:128:11:128:19 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:11:128:19 | synthetic splat argument | | params_flow.rb:128:17:128:18 | 62 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:128:17:128:18 | 62 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:17:128:18 | 62 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:128:17:128:18 | 62 | type tracker without call steps | params_flow.rb:128:17:128:18 | 62 | -| params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | * | -| params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 | params_flow.rb:128:11:128:19 | * | -| params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:10:128:31 | call to [] | -| params_flow.rb:128:22:128:30 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:22:128:30 | * | type tracker without call steps | params_flow.rb:128:22:128:30 | * | +| params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content element 0 | params_flow.rb:128:10:128:31 | synthetic splat argument | +| params_flow.rb:128:17:128:18 | 62 | type tracker without call steps with content splat position 0 | params_flow.rb:128:11:128:19 | synthetic splat argument | | params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps | params_flow.rb:128:22:128:30 | call to taint | -| params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | * | -| params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:128:22:128:30 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | synthetic splat argument | +| params_flow.rb:128:22:128:30 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:128:22:128:30 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:22:128:30 | synthetic splat argument | | params_flow.rb:128:28:128:29 | 63 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:128:28:128:29 | 63 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:28:128:29 | 63 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:128:28:128:29 | 63 | type tracker without call steps | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:128:28:128:29 | 63 | type tracker without call steps | params_flow.rb:128:28:128:29 | 63 | -| params_flow.rb:128:28:128:29 | 63 | type tracker without call steps with content element 0 | params_flow.rb:128:22:128:30 | * | -| params_flow.rb:128:28:128:29 | 63 | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | * | -| params_flow.rb:128:28:128:29 | 63 | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:10:128:31 | call to [] | -| params_flow.rb:128:34:128:60 | * | type tracker without call steps | params_flow.rb:128:34:128:60 | * | +| params_flow.rb:128:28:128:29 | 63 | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:128:28:128:29 | 63 | type tracker without call steps with content element 1 | params_flow.rb:128:10:128:31 | synthetic splat argument | +| params_flow.rb:128:28:128:29 | 63 | type tracker without call steps with content splat position 0 | params_flow.rb:128:22:128:30 | synthetic splat argument | | params_flow.rb:128:34:128:60 | Array | type tracker without call steps | params_flow.rb:128:34:128:60 | Array | | params_flow.rb:128:34:128:60 | call to [] | type tracker without call steps | params_flow.rb:128:34:128:60 | call to [] | -| params_flow.rb:128:34:128:60 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:128:1:128:61 | * | -| params_flow.rb:128:35:128:43 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:35:128:43 | * | type tracker without call steps | params_flow.rb:128:35:128:43 | * | +| params_flow.rb:128:34:128:60 | call to [] | type tracker without call steps with content splat position 1 | params_flow.rb:128:1:128:61 | synthetic splat argument | +| params_flow.rb:128:34:128:60 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:34:128:60 | call to [] | +| params_flow.rb:128:34:128:60 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:34:128:60 | synthetic splat argument | +| params_flow.rb:128:34:128:60 | synthetic splat argument | type tracker without call steps with content splat position 1 | params_flow.rb:128:1:128:61 | synthetic splat argument | | params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps | params_flow.rb:128:35:128:43 | call to taint | -| params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | * | -| params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:34:128:60 | call to [] | +| params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | call to [] | +| params_flow.rb:128:35:128:43 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | synthetic splat argument | +| params_flow.rb:128:35:128:43 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:128:35:128:43 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:35:128:43 | synthetic splat argument | | params_flow.rb:128:41:128:42 | 64 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:128:41:128:42 | 64 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:41:128:42 | 64 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:128:41:128:42 | 64 | type tracker without call steps | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:128:41:128:42 | 64 | type tracker without call steps | params_flow.rb:128:41:128:42 | 64 | -| params_flow.rb:128:41:128:42 | 64 | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | * | -| params_flow.rb:128:41:128:42 | 64 | type tracker without call steps with content element 0 | params_flow.rb:128:35:128:43 | * | -| params_flow.rb:128:41:128:42 | 64 | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:34:128:60 | call to [] | -| params_flow.rb:128:46:128:59 | * | type tracker without call steps | params_flow.rb:128:46:128:59 | * | +| params_flow.rb:128:41:128:42 | 64 | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | call to [] | +| params_flow.rb:128:41:128:42 | 64 | type tracker without call steps with content element 0 | params_flow.rb:128:34:128:60 | synthetic splat argument | +| params_flow.rb:128:41:128:42 | 64 | type tracker without call steps with content splat position 0 | params_flow.rb:128:35:128:43 | synthetic splat argument | | params_flow.rb:128:46:128:59 | Array | type tracker without call steps | params_flow.rb:128:46:128:59 | Array | | params_flow.rb:128:46:128:59 | call to [] | type tracker without call steps | params_flow.rb:128:46:128:59 | call to [] | -| params_flow.rb:128:46:128:59 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:128:34:128:60 | * | -| params_flow.rb:128:46:128:59 | call to [] | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:34:128:60 | call to [] | +| params_flow.rb:128:46:128:59 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:128:34:128:60 | call to [] | +| params_flow.rb:128:46:128:59 | call to [] | type tracker without call steps with content element 1 | params_flow.rb:128:34:128:60 | synthetic splat argument | +| params_flow.rb:128:46:128:59 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:46:128:59 | call to [] | +| params_flow.rb:128:46:128:59 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:46:128:59 | synthetic splat argument | +| params_flow.rb:128:46:128:59 | synthetic splat argument | type tracker without call steps with content element 1 | params_flow.rb:128:34:128:60 | call to [] | +| params_flow.rb:128:46:128:59 | synthetic splat argument | type tracker without call steps with content element 1 | params_flow.rb:128:34:128:60 | synthetic splat argument | | params_flow.rb:128:47:128:47 | 0 | type tracker without call steps | params_flow.rb:128:47:128:47 | 0 | -| params_flow.rb:128:47:128:47 | 0 | type tracker without call steps with content element 0 | params_flow.rb:128:46:128:59 | * | -| params_flow.rb:128:47:128:47 | 0 | type tracker without call steps with content element 0 or unknown | params_flow.rb:128:46:128:59 | call to [] | -| params_flow.rb:128:50:128:58 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:50:128:58 | * | type tracker without call steps | params_flow.rb:128:50:128:58 | * | +| params_flow.rb:128:47:128:47 | 0 | type tracker without call steps with content element 0 | params_flow.rb:128:46:128:59 | call to [] | +| params_flow.rb:128:47:128:47 | 0 | type tracker without call steps with content element 0 | params_flow.rb:128:46:128:59 | synthetic splat argument | | params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps | params_flow.rb:128:50:128:58 | call to taint | -| params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | * | -| params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:46:128:59 | call to [] | +| params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | call to [] | +| params_flow.rb:128:50:128:58 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | synthetic splat argument | +| params_flow.rb:128:50:128:58 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:128:50:128:58 | synthetic splat argument | type tracker without call steps | params_flow.rb:128:50:128:58 | synthetic splat argument | | params_flow.rb:128:56:128:57 | 65 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:128:56:128:57 | 65 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:128:56:128:57 | 65 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:128:56:128:57 | 65 | type tracker without call steps | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:128:56:128:57 | 65 | type tracker without call steps | params_flow.rb:128:56:128:57 | 65 | -| params_flow.rb:128:56:128:57 | 65 | type tracker without call steps with content element 0 | params_flow.rb:128:50:128:58 | * | -| params_flow.rb:128:56:128:57 | 65 | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | * | -| params_flow.rb:128:56:128:57 | 65 | type tracker without call steps with content element 1 or unknown | params_flow.rb:128:46:128:59 | call to [] | +| params_flow.rb:128:56:128:57 | 65 | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | call to [] | +| params_flow.rb:128:56:128:57 | 65 | type tracker without call steps with content element 1 | params_flow.rb:128:46:128:59 | synthetic splat argument | +| params_flow.rb:128:56:128:57 | 65 | type tracker without call steps with content splat position 0 | params_flow.rb:128:50:128:58 | synthetic splat argument | | params_flow.rb:130:1:130:4 | args | type tracker without call steps | params_flow.rb:130:1:130:4 | args | -| params_flow.rb:130:8:130:29 | * | type tracker without call steps | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:8:130:29 | Array | type tracker without call steps | params_flow.rb:130:8:130:29 | Array | | params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | -| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:130:8:130:29 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:84:5:84:10 | synthetic splat argument | | params_flow.rb:130:8:130:29 | call to [] | type tracker without call steps | params_flow.rb:130:8:130:29 | call to [] | | params_flow.rb:130:8:130:29 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | -| params_flow.rb:130:9:130:17 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:9:130:17 | * | type tracker without call steps | params_flow.rb:130:9:130:17 | * | +| params_flow.rb:130:8:130:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:8:130:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:8:130:29 | synthetic splat argument | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:130:8:130:29 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:130:8:130:29 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:130:8:130:29 | synthetic splat argument | type tracker with call steps with content splat position 0 | params_flow.rb:84:5:84:10 | synthetic splat argument | +| params_flow.rb:130:8:130:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:130:8:130:29 | call to [] | +| params_flow.rb:130:8:130:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:130:8:130:29 | synthetic splat argument | +| params_flow.rb:130:8:130:29 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | | params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | -| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:130:9:130:17 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:84:5:84:10 | synthetic splat argument | | params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps | params_flow.rb:130:9:130:17 | call to taint | -| params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | * | -| params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:130:8:130:29 | call to [] | -| params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | call to [] | +| params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | synthetic splat argument | +| params_flow.rb:130:9:130:17 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:130:9:130:17 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:130:9:130:17 | synthetic splat argument | type tracker without call steps | params_flow.rb:130:9:130:17 | synthetic splat argument | | params_flow.rb:130:15:130:16 | 66 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:15:130:16 | 66 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:130:15:130:16 | 66 | type tracker with call steps | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:84:5:84:10 | * | -| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:130:15:130:16 | 66 | type tracker with call steps with content splat position 0 | params_flow.rb:84:5:84:10 | synthetic splat argument | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps | params_flow.rb:130:9:130:17 | call to taint | | params_flow.rb:130:15:130:16 | 66 | type tracker without call steps | params_flow.rb:130:15:130:16 | 66 | -| params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | * | -| params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 | params_flow.rb:130:9:130:17 | * | -| params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 or unknown | params_flow.rb:130:8:130:29 | call to [] | -| params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 or unknown | params_flow.rb:131:10:131:14 | * ... | -| params_flow.rb:130:20:130:28 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:20:130:28 | * | type tracker without call steps | params_flow.rb:130:20:130:28 | * | +| params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | call to [] | +| params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 | params_flow.rb:130:8:130:29 | synthetic splat argument | +| params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content element 0 | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:130:15:130:16 | 66 | type tracker without call steps with content splat position 0 | params_flow.rb:130:9:130:17 | synthetic splat argument | | params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | -| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:130:20:130:28 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:85:5:85:10 | synthetic splat argument | | params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps | params_flow.rb:130:20:130:28 | call to taint | -| params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | * | -| params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:130:8:130:29 | call to [] | -| params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | call to [] | +| params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | synthetic splat argument | +| params_flow.rb:130:20:130:28 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:130:20:130:28 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:130:20:130:28 | synthetic splat argument | type tracker without call steps | params_flow.rb:130:20:130:28 | synthetic splat argument | | params_flow.rb:130:26:130:27 | 67 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:26:130:27 | 67 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:130:26:130:27 | 67 | type tracker with call steps | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | -| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 1 or unknown | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:130:26:130:27 | 67 | type tracker with call steps with content splat position 0 | params_flow.rb:85:5:85:10 | synthetic splat argument | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps | params_flow.rb:130:20:130:28 | call to taint | | params_flow.rb:130:26:130:27 | 67 | type tracker without call steps | params_flow.rb:130:26:130:27 | 67 | -| params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 0 | params_flow.rb:130:20:130:28 | * | -| params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | * | -| params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 or unknown | params_flow.rb:130:8:130:29 | call to [] | -| params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 or unknown | params_flow.rb:131:10:131:14 | * ... | -| params_flow.rb:131:1:131:46 | * | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:131:1:131:46 | * | type tracker without call steps | params_flow.rb:131:1:131:46 | * | +| params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | call to [] | +| params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 | params_flow.rb:130:8:130:29 | synthetic splat argument | +| params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content element 1 | params_flow.rb:131:10:131:14 | * ... | +| params_flow.rb:130:26:130:27 | 67 | type tracker without call steps with content splat position 0 | params_flow.rb:130:20:130:28 | synthetic splat argument | | params_flow.rb:131:1:131:46 | call to pos_many | type tracker without call steps | params_flow.rb:131:1:131:46 | call to pos_many | -| params_flow.rb:131:10:131:14 | * ... | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:10:131:14 | * ... | type tracker with call steps | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:131:10:131:14 | * ... | type tracker without call steps | params_flow.rb:131:10:131:14 | * ... | -| params_flow.rb:131:17:131:25 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:131:17:131:25 | * | type tracker without call steps | params_flow.rb:131:17:131:25 | * | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | -| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:131:17:131:25 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:85:5:85:10 | synthetic splat argument | | params_flow.rb:131:17:131:25 | call to taint | type tracker without call steps | params_flow.rb:131:17:131:25 | call to taint | -| params_flow.rb:131:17:131:25 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:131:1:131:46 | * | +| params_flow.rb:131:17:131:25 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:131:17:131:25 | synthetic splat argument | type tracker without call steps | params_flow.rb:131:17:131:25 | synthetic splat argument | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:23:131:24 | 68 | type tracker with call steps | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 0 | params_flow.rb:85:5:85:10 | * | -| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:131:23:131:24 | 68 | type tracker with call steps with content splat position 0 | params_flow.rb:85:5:85:10 | synthetic splat argument | | params_flow.rb:131:23:131:24 | 68 | type tracker without call steps | params_flow.rb:131:17:131:25 | call to taint | | params_flow.rb:131:23:131:24 | 68 | type tracker without call steps | params_flow.rb:131:23:131:24 | 68 | -| params_flow.rb:131:23:131:24 | 68 | type tracker without call steps with content element 0 | params_flow.rb:131:17:131:25 | * | -| params_flow.rb:131:23:131:24 | 68 | type tracker without call steps with content element 1 | params_flow.rb:131:1:131:46 | * | +| params_flow.rb:131:23:131:24 | 68 | type tracker without call steps with content splat position 0 | params_flow.rb:131:17:131:25 | synthetic splat argument | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:28:131:30 | nil | type tracker with call steps | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 0 | params_flow.rb:86:5:86:10 | * | -| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content element 2 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:131:28:131:30 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:86:5:86:10 | synthetic splat argument | | params_flow.rb:131:28:131:30 | nil | type tracker without call steps | params_flow.rb:131:28:131:30 | nil | -| params_flow.rb:131:28:131:30 | nil | type tracker without call steps with content element 2 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:33:131:35 | nil | type tracker with call steps | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 0 | params_flow.rb:87:5:87:10 | * | -| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content element 3 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:131:33:131:35 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:87:5:87:10 | synthetic splat argument | | params_flow.rb:131:33:131:35 | nil | type tracker without call steps | params_flow.rb:131:33:131:35 | nil | -| params_flow.rb:131:33:131:35 | nil | type tracker without call steps with content element 3 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:38:131:40 | nil | type tracker with call steps | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 0 | params_flow.rb:88:5:88:10 | * | -| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content element 4 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:131:38:131:40 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:88:5:88:10 | synthetic splat argument | | params_flow.rb:131:38:131:40 | nil | type tracker without call steps | params_flow.rb:131:38:131:40 | nil | -| params_flow.rb:131:38:131:40 | nil | type tracker without call steps with content element 4 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:43:131:45 | nil | type tracker with call steps | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 0 | params_flow.rb:89:5:89:10 | * | -| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content element 5 | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:131:43:131:45 | nil | type tracker with call steps with content splat position 0 | params_flow.rb:89:5:89:10 | synthetic splat argument | | params_flow.rb:131:43:131:45 | nil | type tracker without call steps | params_flow.rb:131:43:131:45 | nil | -| params_flow.rb:131:43:131:45 | nil | type tracker without call steps with content element 5 | params_flow.rb:131:1:131:46 | * | | params_flow.rb:133:1:135:3 | &block | type tracker without call steps | params_flow.rb:133:1:135:3 | &block | | params_flow.rb:133:1:135:3 | self in splatall | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:133:1:135:3 | self in splatall | type tracker without call steps | params_flow.rb:133:1:135:3 | self in splatall | | params_flow.rb:133:1:135:3 | splatall | type tracker without call steps | params_flow.rb:133:1:135:3 | splatall | | params_flow.rb:133:14:133:18 | *args | type tracker without call steps | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:133:15:133:18 | args | type tracker without call steps | params_flow.rb:133:15:133:18 | args | -| params_flow.rb:134:5:134:16 | * | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:134:5:134:16 | * | type tracker without call steps | params_flow.rb:134:5:134:16 | * | | params_flow.rb:134:5:134:16 | call to sink | type tracker without call steps | params_flow.rb:134:5:134:16 | call to sink | | params_flow.rb:134:5:134:16 | call to sink | type tracker without call steps | params_flow.rb:137:1:137:44 | call to splatall | -| params_flow.rb:134:10:134:16 | * | type tracker without call steps | params_flow.rb:134:10:134:16 | * | +| params_flow.rb:134:5:134:16 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:134:5:134:16 | synthetic splat argument | type tracker without call steps | params_flow.rb:134:5:134:16 | synthetic splat argument | | params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | +| params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:134:10:134:16 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:134:10:134:16 | ...[...] | type tracker without call steps | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:134:10:134:16 | ...[...] | type tracker without call steps with content element 0 | params_flow.rb:134:5:134:16 | * | +| params_flow.rb:134:10:134:16 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:134:5:134:16 | synthetic splat argument | +| params_flow.rb:134:10:134:16 | synthetic splat argument | type tracker without call steps | params_flow.rb:134:10:134:16 | synthetic splat argument | | params_flow.rb:134:15:134:15 | 1 | type tracker without call steps | params_flow.rb:134:15:134:15 | 1 | -| params_flow.rb:134:15:134:15 | 1 | type tracker without call steps with content element 0 | params_flow.rb:134:10:134:16 | * | +| params_flow.rb:134:15:134:15 | 1 | type tracker without call steps with content splat position 0 | params_flow.rb:134:10:134:16 | synthetic splat argument | | params_flow.rb:137:1:137:44 | call to splatall | type tracker without call steps | params_flow.rb:137:1:137:44 | call to splatall | | params_flow.rb:137:10:137:43 | * ... | type tracker with call steps | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:137:10:137:43 | * ... | type tracker without call steps | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:137:11:137:43 | * | type tracker without call steps | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:11:137:43 | Array | type tracker without call steps | params_flow.rb:137:11:137:43 | Array | | params_flow.rb:137:11:137:43 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:137:11:137:43 | call to [] | type tracker without call steps | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:11:137:43 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:137:12:137:20 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:12:137:20 | * | type tracker without call steps | params_flow.rb:137:12:137:20 | * | -| params_flow.rb:137:12:137:20 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:11:137:43 | synthetic splat argument | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:11:137:43 | synthetic splat argument | type tracker without call steps | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:11:137:43 | synthetic splat argument | type tracker without call steps | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:137:11:137:43 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:137:12:137:20 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps | params_flow.rb:137:12:137:20 | call to taint | -| params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | * | -| params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:12:137:20 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:137:12:137:20 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:137:12:137:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:137:12:137:20 | synthetic splat argument | | params_flow.rb:137:18:137:19 | 69 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:137:18:137:19 | 69 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:18:137:19 | 69 | type tracker with call steps with content element 0 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:18:137:19 | 69 | type tracker with call steps with content element 0 | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:18:137:19 | 69 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:137:18:137:19 | 69 | type tracker without call steps | params_flow.rb:137:18:137:19 | 69 | -| params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | * | -| params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 | params_flow.rb:137:12:137:20 | * | -| params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 or unknown | params_flow.rb:137:11:137:43 | call to [] | -| params_flow.rb:137:23:137:31 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:23:137:31 | * | type tracker without call steps | params_flow.rb:137:23:137:31 | * | +| params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:137:18:137:19 | 69 | type tracker without call steps with content splat position 0 | params_flow.rb:137:12:137:20 | synthetic splat argument | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:134:5:134:16 | * | -| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:137:23:137:31 | call to taint | type tracker with call steps with content splat position 0 | params_flow.rb:134:5:134:16 | synthetic splat argument | | params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps | params_flow.rb:137:23:137:31 | call to taint | -| params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | * | -| params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:23:137:31 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:137:23:137:31 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:137:23:137:31 | synthetic splat argument | type tracker without call steps | params_flow.rb:137:23:137:31 | synthetic splat argument | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:29:137:30 | 70 | type tracker with call steps | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:6:5:6:10 | * | -| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 0 | params_flow.rb:134:5:134:16 | * | -| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 1 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content element 1 | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:137:29:137:30 | 70 | type tracker with call steps with content splat position 0 | params_flow.rb:134:5:134:16 | synthetic splat argument | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:137:29:137:30 | 70 | type tracker without call steps | params_flow.rb:137:29:137:30 | 70 | -| params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 0 | params_flow.rb:137:23:137:31 | * | -| params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | * | -| params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 or unknown | params_flow.rb:137:11:137:43 | call to [] | -| params_flow.rb:137:34:137:42 | * | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:34:137:42 | * | type tracker without call steps | params_flow.rb:137:34:137:42 | * | -| params_flow.rb:137:34:137:42 | call to taint | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:137:29:137:30 | 70 | type tracker without call steps with content splat position 0 | params_flow.rb:137:23:137:31 | synthetic splat argument | +| params_flow.rb:137:34:137:42 | call to taint | type tracker with call steps with content element 2 | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps | params_flow.rb:137:34:137:42 | call to taint | -| params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | * | -| params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:34:137:42 | call to taint | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:137:34:137:42 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:137:34:137:42 | synthetic splat argument | type tracker without call steps | params_flow.rb:137:34:137:42 | synthetic splat argument | | params_flow.rb:137:40:137:41 | 71 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | -| params_flow.rb:137:40:137:41 | 71 | type tracker with call steps with content element 0 | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:40:137:41 | 71 | type tracker with call steps with content element 2 or unknown | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:40:137:41 | 71 | type tracker with call steps with content element 2 | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:137:40:137:41 | 71 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps | params_flow.rb:137:34:137:42 | call to taint | | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps | params_flow.rb:137:40:137:41 | 71 | -| params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 0 | params_flow.rb:137:34:137:42 | * | -| params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | * | -| params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 2 or unknown | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 2 | params_flow.rb:137:10:137:43 | * ... | +| params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content splat position 0 | params_flow.rb:137:34:137:42 | synthetic splat argument | trackEnd | params_flow.rb:1:1:3:3 | &block | params_flow.rb:1:1:3:3 | &block | | params_flow.rb:1:1:3:3 | self in taint | params_flow.rb:1:1:3:3 | self in taint | -| params_flow.rb:1:1:3:3 | synthetic *args | params_flow.rb:1:1:3:3 | synthetic *args | +| params_flow.rb:1:1:3:3 | synthetic splat parameter | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:1:1:3:3 | taint | params_flow.rb:1:1:3:3 | taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:1:1:137:45 | self (params_flow.rb) | @@ -3139,8 +3126,6 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:50:10:50:11 | p1 | | params_flow.rb:1:11:1:11 | x | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:1:11:1:11 | x | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:52:10:52:21 | ( ... ) | -| params_flow.rb:1:11:1:11 | x | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:1:11:1:11 | x | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:57:9:57:17 | call to taint | @@ -3250,12 +3235,11 @@ trackEnd | params_flow.rb:5:1:7:3 | self in sink | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:5:1:7:3 | self in sink | params_flow.rb:6:5:6:10 | self | | params_flow.rb:5:1:7:3 | sink | params_flow.rb:5:1:7:3 | sink | -| params_flow.rb:5:1:7:3 | synthetic *args | params_flow.rb:5:1:7:3 | synthetic *args | +| params_flow.rb:5:1:7:3 | synthetic splat parameter | params_flow.rb:5:1:7:3 | synthetic splat parameter | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:5:10:5:10 | x | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:6:5:6:10 | * | params_flow.rb:6:5:6:10 | * | | params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:6:5:6:10 | call to puts | | params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:10:5:10:11 | call to sink | | params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:11:5:11:11 | call to sink | @@ -3321,6 +3305,7 @@ trackEnd | params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:131:1:131:46 | call to pos_many | | params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:134:5:134:16 | call to sink | | params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:137:1:137:44 | call to splatall | +| params_flow.rb:6:5:6:10 | synthetic splat argument | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:9:1:12:3 | &block | params_flow.rb:9:1:12:3 | &block | | params_flow.rb:9:1:12:3 | positional | params_flow.rb:9:1:12:3 | positional | | params_flow.rb:9:1:12:3 | self in positional | params_flow.rb:5:1:7:3 | self (sink) | @@ -3330,7 +3315,7 @@ trackEnd | params_flow.rb:9:1:12:3 | self in positional | params_flow.rb:9:1:12:3 | self in positional | | params_flow.rb:9:1:12:3 | self in positional | params_flow.rb:10:5:10:11 | self | | params_flow.rb:9:1:12:3 | self in positional | params_flow.rb:11:5:11:11 | self | -| params_flow.rb:9:1:12:3 | synthetic *args | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:9:1:12:3 | synthetic splat parameter | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:9:16:9:17 | p1 | params_flow.rb:6:10:6:10 | x | @@ -3345,21 +3330,19 @@ trackEnd | params_flow.rb:9:20:9:21 | p2 | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:9:20:9:21 | p2 | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:9:20:9:21 | p2 | params_flow.rb:11:10:11:11 | p2 | -| params_flow.rb:10:5:10:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:10:5:10:11 | * | params_flow.rb:10:5:10:11 | * | | params_flow.rb:10:5:10:11 | call to sink | params_flow.rb:10:5:10:11 | call to sink | -| params_flow.rb:11:5:11:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:11:5:11:11 | * | params_flow.rb:11:5:11:11 | * | +| params_flow.rb:10:5:10:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:10:5:10:11 | synthetic splat argument | params_flow.rb:10:5:10:11 | synthetic splat argument | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:11:5:11:11 | call to sink | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:14:1:14:30 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:44:1:44:28 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:47:1:47:17 | call to positional | | params_flow.rb:11:5:11:11 | call to sink | params_flow.rb:118:1:118:14 | call to positional | -| params_flow.rb:14:1:14:30 | * | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:14:1:14:30 | * | params_flow.rb:14:1:14:30 | * | +| params_flow.rb:11:5:11:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:11:5:11:11 | synthetic splat argument | params_flow.rb:11:5:11:11 | synthetic splat argument | | params_flow.rb:14:1:14:30 | call to positional | params_flow.rb:14:1:14:30 | call to positional | -| params_flow.rb:14:12:14:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:12:14:19 | * | params_flow.rb:14:12:14:19 | * | +| params_flow.rb:14:1:14:30 | synthetic splat argument | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:14:1:14:30 | synthetic splat argument | params_flow.rb:14:1:14:30 | synthetic splat argument | | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3367,6 +3350,8 @@ trackEnd | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:14:12:14:19 | call to taint | +| params_flow.rb:14:12:14:19 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:14:12:14:19 | synthetic splat argument | params_flow.rb:14:12:14:19 | synthetic splat argument | | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:2:5:2:5 | x | @@ -3378,8 +3363,6 @@ trackEnd | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:14:12:14:19 | call to taint | | params_flow.rb:14:18:14:18 | 1 | params_flow.rb:14:18:14:18 | 1 | -| params_flow.rb:14:22:14:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:14:22:14:29 | * | params_flow.rb:14:22:14:29 | * | | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3387,6 +3370,8 @@ trackEnd | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:14:22:14:29 | call to taint | +| params_flow.rb:14:22:14:29 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:14:22:14:29 | synthetic splat argument | params_flow.rb:14:22:14:29 | synthetic splat argument | | params_flow.rb:14:28:14:28 | 2 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:14:28:14:28 | 2 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:14:28:14:28 | 2 | params_flow.rb:2:5:2:5 | x | @@ -3399,7 +3384,6 @@ trackEnd | params_flow.rb:14:28:14:28 | 2 | params_flow.rb:14:22:14:29 | call to taint | | params_flow.rb:14:28:14:28 | 2 | params_flow.rb:14:28:14:28 | 2 | | params_flow.rb:16:1:19:3 | &block | params_flow.rb:16:1:19:3 | &block | -| params_flow.rb:16:1:19:3 | **kwargs | params_flow.rb:16:1:19:3 | **kwargs | | params_flow.rb:16:1:19:3 | keyword | params_flow.rb:16:1:19:3 | keyword | | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:5:1:7:3 | self (sink) | | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:5:1:7:3 | self in sink | @@ -3408,6 +3392,7 @@ trackEnd | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:16:1:19:3 | self in keyword | | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:17:5:17:11 | self | | params_flow.rb:16:1:19:3 | self in keyword | params_flow.rb:18:5:18:11 | self | +| params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | | params_flow.rb:16:13:16:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:16:13:16:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:16:13:16:14 | p1 | params_flow.rb:6:10:6:10 | x | @@ -3422,23 +3407,21 @@ trackEnd | params_flow.rb:16:18:16:19 | p2 | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:16:18:16:19 | p2 | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:16:18:16:19 | p2 | params_flow.rb:18:10:18:11 | p2 | -| params_flow.rb:17:5:17:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:17:5:17:11 | * | params_flow.rb:17:5:17:11 | * | | params_flow.rb:17:5:17:11 | call to sink | params_flow.rb:17:5:17:11 | call to sink | -| params_flow.rb:18:5:18:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:18:5:18:11 | * | params_flow.rb:18:5:18:11 | * | +| params_flow.rb:17:5:17:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:17:5:17:11 | synthetic splat argument | params_flow.rb:17:5:17:11 | synthetic splat argument | | params_flow.rb:18:5:18:11 | call to sink | params_flow.rb:18:5:18:11 | call to sink | | params_flow.rb:18:5:18:11 | call to sink | params_flow.rb:21:1:21:35 | call to keyword | | params_flow.rb:18:5:18:11 | call to sink | params_flow.rb:22:1:22:35 | call to keyword | | params_flow.rb:18:5:18:11 | call to sink | params_flow.rb:23:1:23:41 | call to keyword | | params_flow.rb:18:5:18:11 | call to sink | params_flow.rb:41:1:41:30 | call to keyword | -| params_flow.rb:21:1:21:35 | ** | params_flow.rb:16:1:19:3 | **kwargs | -| params_flow.rb:21:1:21:35 | ** | params_flow.rb:21:1:21:35 | ** | +| params_flow.rb:18:5:18:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:18:5:18:11 | synthetic splat argument | params_flow.rb:18:5:18:11 | synthetic splat argument | | params_flow.rb:21:1:21:35 | call to keyword | params_flow.rb:21:1:21:35 | call to keyword | +| params_flow.rb:21:1:21:35 | synthetic hash-splat argument | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:21:1:21:35 | synthetic hash-splat argument | params_flow.rb:21:1:21:35 | synthetic hash-splat argument | | params_flow.rb:21:9:21:10 | :p1 | params_flow.rb:21:9:21:10 | :p1 | | params_flow.rb:21:9:21:20 | Pair | params_flow.rb:21:9:21:20 | Pair | -| params_flow.rb:21:13:21:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:13:21:20 | * | params_flow.rb:21:13:21:20 | * | | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3446,6 +3429,8 @@ trackEnd | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:17:10:17:11 | p1 | | params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:21:13:21:20 | call to taint | +| params_flow.rb:21:13:21:20 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:21:13:21:20 | synthetic splat argument | params_flow.rb:21:13:21:20 | synthetic splat argument | | params_flow.rb:21:19:21:19 | 3 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:21:19:21:19 | 3 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:21:19:21:19 | 3 | params_flow.rb:2:5:2:5 | x | @@ -3459,8 +3444,6 @@ trackEnd | params_flow.rb:21:19:21:19 | 3 | params_flow.rb:21:19:21:19 | 3 | | params_flow.rb:21:23:21:24 | :p2 | params_flow.rb:21:23:21:24 | :p2 | | params_flow.rb:21:23:21:34 | Pair | params_flow.rb:21:23:21:34 | Pair | -| params_flow.rb:21:27:21:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:21:27:21:34 | * | params_flow.rb:21:27:21:34 | * | | params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3468,6 +3451,8 @@ trackEnd | params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:18:10:18:11 | p2 | | params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:21:27:21:34 | call to taint | +| params_flow.rb:21:27:21:34 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:21:27:21:34 | synthetic splat argument | params_flow.rb:21:27:21:34 | synthetic splat argument | | params_flow.rb:21:33:21:33 | 4 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:21:33:21:33 | 4 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:21:33:21:33 | 4 | params_flow.rb:2:5:2:5 | x | @@ -3479,13 +3464,11 @@ trackEnd | params_flow.rb:21:33:21:33 | 4 | params_flow.rb:18:10:18:11 | p2 | | params_flow.rb:21:33:21:33 | 4 | params_flow.rb:21:27:21:34 | call to taint | | params_flow.rb:21:33:21:33 | 4 | params_flow.rb:21:33:21:33 | 4 | -| params_flow.rb:22:1:22:35 | ** | params_flow.rb:16:1:19:3 | **kwargs | -| params_flow.rb:22:1:22:35 | ** | params_flow.rb:22:1:22:35 | ** | | params_flow.rb:22:1:22:35 | call to keyword | params_flow.rb:22:1:22:35 | call to keyword | +| params_flow.rb:22:1:22:35 | synthetic hash-splat argument | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:22:1:22:35 | synthetic hash-splat argument | params_flow.rb:22:1:22:35 | synthetic hash-splat argument | | params_flow.rb:22:9:22:10 | :p2 | params_flow.rb:22:9:22:10 | :p2 | | params_flow.rb:22:9:22:20 | Pair | params_flow.rb:22:9:22:20 | Pair | -| params_flow.rb:22:13:22:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:13:22:20 | * | params_flow.rb:22:13:22:20 | * | | params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3493,6 +3476,8 @@ trackEnd | params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:18:10:18:11 | p2 | | params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:22:13:22:20 | call to taint | +| params_flow.rb:22:13:22:20 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:22:13:22:20 | synthetic splat argument | params_flow.rb:22:13:22:20 | synthetic splat argument | | params_flow.rb:22:19:22:19 | 5 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:22:19:22:19 | 5 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:22:19:22:19 | 5 | params_flow.rb:2:5:2:5 | x | @@ -3506,8 +3491,6 @@ trackEnd | params_flow.rb:22:19:22:19 | 5 | params_flow.rb:22:19:22:19 | 5 | | params_flow.rb:22:23:22:24 | :p1 | params_flow.rb:22:23:22:24 | :p1 | | params_flow.rb:22:23:22:34 | Pair | params_flow.rb:22:23:22:34 | Pair | -| params_flow.rb:22:27:22:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:22:27:22:34 | * | params_flow.rb:22:27:22:34 | * | | params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3515,6 +3498,8 @@ trackEnd | params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:17:10:17:11 | p1 | | params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:22:27:22:34 | call to taint | +| params_flow.rb:22:27:22:34 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:22:27:22:34 | synthetic splat argument | params_flow.rb:22:27:22:34 | synthetic splat argument | | params_flow.rb:22:33:22:33 | 6 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:22:33:22:33 | 6 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:22:33:22:33 | 6 | params_flow.rb:2:5:2:5 | x | @@ -3526,13 +3511,11 @@ trackEnd | params_flow.rb:22:33:22:33 | 6 | params_flow.rb:17:10:17:11 | p1 | | params_flow.rb:22:33:22:33 | 6 | params_flow.rb:22:27:22:34 | call to taint | | params_flow.rb:22:33:22:33 | 6 | params_flow.rb:22:33:22:33 | 6 | -| params_flow.rb:23:1:23:41 | ** | params_flow.rb:16:1:19:3 | **kwargs | -| params_flow.rb:23:1:23:41 | ** | params_flow.rb:23:1:23:41 | ** | | params_flow.rb:23:1:23:41 | call to keyword | params_flow.rb:23:1:23:41 | call to keyword | +| params_flow.rb:23:1:23:41 | synthetic hash-splat argument | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:23:1:23:41 | synthetic hash-splat argument | params_flow.rb:23:1:23:41 | synthetic hash-splat argument | | params_flow.rb:23:9:23:11 | :p2 | params_flow.rb:23:9:23:11 | :p2 | | params_flow.rb:23:9:23:23 | Pair | params_flow.rb:23:9:23:23 | Pair | -| params_flow.rb:23:16:23:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:16:23:23 | * | params_flow.rb:23:16:23:23 | * | | params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3540,6 +3523,8 @@ trackEnd | params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:18:10:18:11 | p2 | | params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:23:16:23:23 | call to taint | +| params_flow.rb:23:16:23:23 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:23:16:23:23 | synthetic splat argument | params_flow.rb:23:16:23:23 | synthetic splat argument | | params_flow.rb:23:22:23:22 | 7 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:23:22:23:22 | 7 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:23:22:23:22 | 7 | params_flow.rb:2:5:2:5 | x | @@ -3553,8 +3538,6 @@ trackEnd | params_flow.rb:23:22:23:22 | 7 | params_flow.rb:23:22:23:22 | 7 | | params_flow.rb:23:26:23:28 | :p1 | params_flow.rb:23:26:23:28 | :p1 | | params_flow.rb:23:26:23:40 | Pair | params_flow.rb:23:26:23:40 | Pair | -| params_flow.rb:23:33:23:40 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:23:33:23:40 | * | params_flow.rb:23:33:23:40 | * | | params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3562,6 +3545,8 @@ trackEnd | params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:17:10:17:11 | p1 | | params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:23:33:23:40 | call to taint | +| params_flow.rb:23:33:23:40 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:23:33:23:40 | synthetic splat argument | params_flow.rb:23:33:23:40 | synthetic splat argument | | params_flow.rb:23:39:23:39 | 8 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:23:39:23:39 | 8 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:23:39:23:39 | 8 | params_flow.rb:2:5:2:5 | x | @@ -3574,7 +3559,6 @@ trackEnd | params_flow.rb:23:39:23:39 | 8 | params_flow.rb:23:33:23:40 | call to taint | | params_flow.rb:23:39:23:39 | 8 | params_flow.rb:23:39:23:39 | 8 | | params_flow.rb:25:1:31:3 | &block | params_flow.rb:25:1:31:3 | &block | -| params_flow.rb:25:1:31:3 | **kwargs | params_flow.rb:25:1:31:3 | **kwargs | | params_flow.rb:25:1:31:3 | kwargs | params_flow.rb:25:1:31:3 | kwargs | | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:5:1:7:3 | self (sink) | | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:5:1:7:3 | self in sink | @@ -3586,6 +3570,7 @@ trackEnd | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:28:5:28:22 | self | | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:29:5:29:22 | self | | params_flow.rb:25:1:31:3 | self in kwargs | params_flow.rb:30:5:30:22 | self | +| params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:25:12:25:13 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:25:12:25:13 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:25:12:25:13 | p1 | params_flow.rb:6:10:6:10 | x | @@ -3600,65 +3585,63 @@ trackEnd | params_flow.rb:25:17:25:24 | **kwargs | params_flow.rb:29:11:29:16 | kwargs | | params_flow.rb:25:17:25:24 | **kwargs | params_flow.rb:30:11:30:16 | kwargs | | params_flow.rb:25:19:25:24 | kwargs | params_flow.rb:25:19:25:24 | kwargs | -| params_flow.rb:26:5:26:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:26:5:26:11 | * | params_flow.rb:26:5:26:11 | * | | params_flow.rb:26:5:26:11 | call to sink | params_flow.rb:26:5:26:11 | call to sink | -| params_flow.rb:27:5:27:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:27:5:27:22 | * | params_flow.rb:27:5:27:22 | * | +| params_flow.rb:26:5:26:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:26:5:26:11 | synthetic splat argument | params_flow.rb:26:5:26:11 | synthetic splat argument | | params_flow.rb:27:5:27:22 | call to sink | params_flow.rb:27:5:27:22 | call to sink | -| params_flow.rb:27:11:27:21 | * | params_flow.rb:27:11:27:21 | * | +| params_flow.rb:27:5:27:22 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:27:5:27:22 | synthetic splat argument | params_flow.rb:27:5:27:22 | synthetic splat argument | | params_flow.rb:27:11:27:21 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:27:11:27:21 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:27:11:27:21 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:27:11:27:21 | ...[...] | params_flow.rb:27:10:27:22 | ( ... ) | | params_flow.rb:27:11:27:21 | ...[...] | params_flow.rb:27:11:27:21 | ...[...] | +| params_flow.rb:27:11:27:21 | synthetic splat argument | params_flow.rb:27:11:27:21 | synthetic splat argument | | params_flow.rb:27:18:27:20 | :p1 | params_flow.rb:27:18:27:20 | :p1 | -| params_flow.rb:28:5:28:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:28:5:28:22 | * | params_flow.rb:28:5:28:22 | * | | params_flow.rb:28:5:28:22 | call to sink | params_flow.rb:28:5:28:22 | call to sink | -| params_flow.rb:28:11:28:21 | * | params_flow.rb:28:11:28:21 | * | +| params_flow.rb:28:5:28:22 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:28:5:28:22 | synthetic splat argument | params_flow.rb:28:5:28:22 | synthetic splat argument | | params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:28:10:28:22 | ( ... ) | | params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:28:11:28:21 | ...[...] | +| params_flow.rb:28:11:28:21 | synthetic splat argument | params_flow.rb:28:11:28:21 | synthetic splat argument | | params_flow.rb:28:18:28:20 | :p2 | params_flow.rb:28:18:28:20 | :p2 | -| params_flow.rb:29:5:29:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:29:5:29:22 | * | params_flow.rb:29:5:29:22 | * | | params_flow.rb:29:5:29:22 | call to sink | params_flow.rb:29:5:29:22 | call to sink | -| params_flow.rb:29:11:29:21 | * | params_flow.rb:29:11:29:21 | * | +| params_flow.rb:29:5:29:22 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:29:5:29:22 | synthetic splat argument | params_flow.rb:29:5:29:22 | synthetic splat argument | | params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:29:10:29:22 | ( ... ) | | params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:29:11:29:21 | ...[...] | +| params_flow.rb:29:11:29:21 | synthetic splat argument | params_flow.rb:29:11:29:21 | synthetic splat argument | | params_flow.rb:29:18:29:20 | :p3 | params_flow.rb:29:18:29:20 | :p3 | -| params_flow.rb:30:5:30:22 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:30:5:30:22 | * | params_flow.rb:30:5:30:22 | * | | params_flow.rb:30:5:30:22 | call to sink | params_flow.rb:30:5:30:22 | call to sink | | params_flow.rb:30:5:30:22 | call to sink | params_flow.rb:33:1:33:58 | call to kwargs | | params_flow.rb:30:5:30:22 | call to sink | params_flow.rb:35:1:35:29 | call to kwargs | | params_flow.rb:30:5:30:22 | call to sink | params_flow.rb:38:1:38:14 | call to kwargs | -| params_flow.rb:30:11:30:21 | * | params_flow.rb:30:11:30:21 | * | +| params_flow.rb:30:5:30:22 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:30:5:30:22 | synthetic splat argument | params_flow.rb:30:5:30:22 | synthetic splat argument | | params_flow.rb:30:11:30:21 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:30:11:30:21 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:30:11:30:21 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:30:11:30:21 | ...[...] | params_flow.rb:30:10:30:22 | ( ... ) | | params_flow.rb:30:11:30:21 | ...[...] | params_flow.rb:30:11:30:21 | ...[...] | +| params_flow.rb:30:11:30:21 | synthetic splat argument | params_flow.rb:30:11:30:21 | synthetic splat argument | | params_flow.rb:30:18:30:20 | :p4 | params_flow.rb:30:18:30:20 | :p4 | -| params_flow.rb:33:1:33:58 | ** | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:33:1:33:58 | ** | params_flow.rb:25:17:25:24 | **kwargs | -| params_flow.rb:33:1:33:58 | ** | params_flow.rb:25:19:25:24 | kwargs | -| params_flow.rb:33:1:33:58 | ** | params_flow.rb:27:11:27:16 | kwargs | -| params_flow.rb:33:1:33:58 | ** | params_flow.rb:28:11:28:16 | kwargs | -| params_flow.rb:33:1:33:58 | ** | params_flow.rb:29:11:29:16 | kwargs | -| params_flow.rb:33:1:33:58 | ** | params_flow.rb:30:11:30:16 | kwargs | -| params_flow.rb:33:1:33:58 | ** | params_flow.rb:33:1:33:58 | ** | | params_flow.rb:33:1:33:58 | call to kwargs | params_flow.rb:33:1:33:58 | call to kwargs | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | params_flow.rb:25:19:25:24 | kwargs | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | params_flow.rb:27:11:27:16 | kwargs | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | params_flow.rb:28:11:28:16 | kwargs | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | params_flow.rb:29:11:29:16 | kwargs | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | params_flow.rb:30:11:30:16 | kwargs | +| params_flow.rb:33:1:33:58 | synthetic hash-splat argument | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | | params_flow.rb:33:8:33:9 | :p1 | params_flow.rb:33:8:33:9 | :p1 | | params_flow.rb:33:8:33:19 | Pair | params_flow.rb:33:8:33:19 | Pair | -| params_flow.rb:33:12:33:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:12:33:19 | * | params_flow.rb:33:12:33:19 | * | | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3668,6 +3651,8 @@ trackEnd | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:27:10:27:22 | ( ... ) | | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:33:12:33:19 | call to taint | +| params_flow.rb:33:12:33:19 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:33:12:33:19 | synthetic splat argument | params_flow.rb:33:12:33:19 | synthetic splat argument | | params_flow.rb:33:18:33:18 | 9 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:18:33:18 | 9 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:18:33:18 | 9 | params_flow.rb:2:5:2:5 | x | @@ -3683,14 +3668,14 @@ trackEnd | params_flow.rb:33:18:33:18 | 9 | params_flow.rb:33:18:33:18 | 9 | | params_flow.rb:33:22:33:23 | :p2 | params_flow.rb:33:22:33:23 | :p2 | | params_flow.rb:33:22:33:34 | Pair | params_flow.rb:33:22:33:34 | Pair | -| params_flow.rb:33:26:33:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:26:33:34 | * | params_flow.rb:33:26:33:34 | * | | params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:28:10:28:22 | ( ... ) | | params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:33:26:33:34 | call to taint | +| params_flow.rb:33:26:33:34 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:33:26:33:34 | synthetic splat argument | params_flow.rb:33:26:33:34 | synthetic splat argument | | params_flow.rb:33:32:33:33 | 10 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:32:33:33 | 10 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:32:33:33 | 10 | params_flow.rb:2:5:2:5 | x | @@ -3703,14 +3688,14 @@ trackEnd | params_flow.rb:33:32:33:33 | 10 | params_flow.rb:33:32:33:33 | 10 | | params_flow.rb:33:37:33:38 | :p3 | params_flow.rb:33:37:33:38 | :p3 | | params_flow.rb:33:37:33:49 | Pair | params_flow.rb:33:37:33:49 | Pair | -| params_flow.rb:33:41:33:49 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:33:41:33:49 | * | params_flow.rb:33:41:33:49 | * | | params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:29:10:29:22 | ( ... ) | | params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:33:41:33:49 | call to taint | +| params_flow.rb:33:41:33:49 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:33:41:33:49 | synthetic splat argument | params_flow.rb:33:41:33:49 | synthetic splat argument | | params_flow.rb:33:47:33:48 | 11 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:47:33:48 | 11 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:33:47:33:48 | 11 | params_flow.rb:2:5:2:5 | x | @@ -3730,22 +3715,26 @@ trackEnd | params_flow.rb:33:56:33:57 | "" | params_flow.rb:30:11:30:21 | ...[...] | | params_flow.rb:33:56:33:57 | "" | params_flow.rb:33:56:33:57 | "" | | params_flow.rb:34:1:34:4 | args | params_flow.rb:34:1:34:4 | args | -| params_flow.rb:34:8:34:32 | ** | params_flow.rb:34:8:34:32 | ** | | params_flow.rb:34:8:34:32 | Hash | params_flow.rb:34:8:34:32 | Hash | | params_flow.rb:34:8:34:32 | call to [] | params_flow.rb:34:1:34:4 | args | | params_flow.rb:34:8:34:32 | call to [] | params_flow.rb:34:1:34:32 | ... = ... | | params_flow.rb:34:8:34:32 | call to [] | params_flow.rb:34:8:34:32 | call to [] | | params_flow.rb:34:8:34:32 | call to [] | params_flow.rb:35:25:35:28 | args | +| params_flow.rb:34:8:34:32 | synthetic hash-splat argument | params_flow.rb:34:1:34:4 | args | +| params_flow.rb:34:8:34:32 | synthetic hash-splat argument | params_flow.rb:34:1:34:32 | ... = ... | +| params_flow.rb:34:8:34:32 | synthetic hash-splat argument | params_flow.rb:34:8:34:32 | call to [] | +| params_flow.rb:34:8:34:32 | synthetic hash-splat argument | params_flow.rb:34:8:34:32 | synthetic hash-splat argument | +| params_flow.rb:34:8:34:32 | synthetic hash-splat argument | params_flow.rb:35:25:35:28 | args | | params_flow.rb:34:10:34:11 | :p3 | params_flow.rb:34:10:34:11 | :p3 | | params_flow.rb:34:10:34:22 | Pair | params_flow.rb:34:10:34:22 | Pair | -| params_flow.rb:34:14:34:22 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:34:14:34:22 | * | params_flow.rb:34:14:34:22 | * | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:29:10:29:22 | ( ... ) | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:34:14:34:22 | call to taint | +| params_flow.rb:34:14:34:22 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:34:14:34:22 | synthetic splat argument | params_flow.rb:34:14:34:22 | synthetic splat argument | | params_flow.rb:34:20:34:21 | 12 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:34:20:34:21 | 12 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:34:20:34:21 | 12 | params_flow.rb:2:5:2:5 | x | @@ -3764,19 +3753,17 @@ trackEnd | params_flow.rb:34:29:34:30 | "" | params_flow.rb:30:10:30:22 | ( ... ) | | params_flow.rb:34:29:34:30 | "" | params_flow.rb:30:11:30:21 | ...[...] | | params_flow.rb:34:29:34:30 | "" | params_flow.rb:34:29:34:30 | "" | -| params_flow.rb:35:1:35:29 | ** | params_flow.rb:25:1:31:3 | **kwargs | -| params_flow.rb:35:1:35:29 | ** | params_flow.rb:25:17:25:24 | **kwargs | -| params_flow.rb:35:1:35:29 | ** | params_flow.rb:25:19:25:24 | kwargs | -| params_flow.rb:35:1:35:29 | ** | params_flow.rb:27:11:27:16 | kwargs | -| params_flow.rb:35:1:35:29 | ** | params_flow.rb:28:11:28:16 | kwargs | -| params_flow.rb:35:1:35:29 | ** | params_flow.rb:29:11:29:16 | kwargs | -| params_flow.rb:35:1:35:29 | ** | params_flow.rb:30:11:30:16 | kwargs | -| params_flow.rb:35:1:35:29 | ** | params_flow.rb:35:1:35:29 | ** | | params_flow.rb:35:1:35:29 | call to kwargs | params_flow.rb:35:1:35:29 | call to kwargs | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | params_flow.rb:25:19:25:24 | kwargs | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | params_flow.rb:27:11:27:16 | kwargs | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | params_flow.rb:28:11:28:16 | kwargs | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | params_flow.rb:29:11:29:16 | kwargs | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | params_flow.rb:30:11:30:16 | kwargs | +| params_flow.rb:35:1:35:29 | synthetic hash-splat argument | params_flow.rb:35:1:35:29 | synthetic hash-splat argument | | params_flow.rb:35:8:35:9 | :p1 | params_flow.rb:35:8:35:9 | :p1 | | params_flow.rb:35:8:35:20 | Pair | params_flow.rb:35:8:35:20 | Pair | -| params_flow.rb:35:12:35:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:35:12:35:20 | * | params_flow.rb:35:12:35:20 | * | | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3786,6 +3773,8 @@ trackEnd | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:27:10:27:22 | ( ... ) | | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:35:12:35:20 | call to taint | +| params_flow.rb:35:12:35:20 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:35:12:35:20 | synthetic splat argument | params_flow.rb:35:12:35:20 | synthetic splat argument | | params_flow.rb:35:18:35:19 | 13 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:35:18:35:19 | 13 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:35:18:35:19 | 13 | params_flow.rb:2:5:2:5 | x | @@ -3799,7 +3788,7 @@ trackEnd | params_flow.rb:35:18:35:19 | 13 | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:35:18:35:19 | 13 | params_flow.rb:35:12:35:20 | call to taint | | params_flow.rb:35:18:35:19 | 13 | params_flow.rb:35:18:35:19 | 13 | -| params_flow.rb:35:23:35:28 | ** ... | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:35:23:35:28 | ** ... | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:35:23:35:28 | ** ... | params_flow.rb:25:17:25:24 | **kwargs | | params_flow.rb:35:23:35:28 | ** ... | params_flow.rb:25:19:25:24 | kwargs | | params_flow.rb:35:23:35:28 | ** ... | params_flow.rb:27:11:27:16 | kwargs | @@ -3808,16 +3797,18 @@ trackEnd | params_flow.rb:35:23:35:28 | ** ... | params_flow.rb:30:11:30:16 | kwargs | | params_flow.rb:35:23:35:28 | ** ... | params_flow.rb:35:23:35:28 | ** ... | | params_flow.rb:37:1:37:4 | args | params_flow.rb:37:1:37:4 | args | -| params_flow.rb:37:8:37:44 | ** | params_flow.rb:37:8:37:44 | ** | | params_flow.rb:37:8:37:44 | Hash | params_flow.rb:37:8:37:44 | Hash | | params_flow.rb:37:8:37:44 | call to [] | params_flow.rb:37:1:37:4 | args | | params_flow.rb:37:8:37:44 | call to [] | params_flow.rb:37:1:37:44 | ... = ... | | params_flow.rb:37:8:37:44 | call to [] | params_flow.rb:37:8:37:44 | call to [] | | params_flow.rb:37:8:37:44 | call to [] | params_flow.rb:38:10:38:13 | args | +| params_flow.rb:37:8:37:44 | synthetic hash-splat argument | params_flow.rb:37:1:37:4 | args | +| params_flow.rb:37:8:37:44 | synthetic hash-splat argument | params_flow.rb:37:1:37:44 | ... = ... | +| params_flow.rb:37:8:37:44 | synthetic hash-splat argument | params_flow.rb:37:8:37:44 | call to [] | +| params_flow.rb:37:8:37:44 | synthetic hash-splat argument | params_flow.rb:37:8:37:44 | synthetic hash-splat argument | +| params_flow.rb:37:8:37:44 | synthetic hash-splat argument | params_flow.rb:38:10:38:13 | args | | params_flow.rb:37:9:37:11 | :p1 | params_flow.rb:37:9:37:11 | :p1 | | params_flow.rb:37:9:37:24 | Pair | params_flow.rb:37:9:37:24 | Pair | -| params_flow.rb:37:16:37:24 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:16:37:24 | * | params_flow.rb:37:16:37:24 | * | | params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3827,6 +3818,8 @@ trackEnd | params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:27:10:27:22 | ( ... ) | | params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:27:11:27:21 | ...[...] | | params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:37:16:37:24 | call to taint | +| params_flow.rb:37:16:37:24 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:37:16:37:24 | synthetic splat argument | params_flow.rb:37:16:37:24 | synthetic splat argument | | params_flow.rb:37:22:37:23 | 14 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:37:22:37:23 | 14 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:37:22:37:23 | 14 | params_flow.rb:2:5:2:5 | x | @@ -3842,14 +3835,14 @@ trackEnd | params_flow.rb:37:22:37:23 | 14 | params_flow.rb:37:22:37:23 | 14 | | params_flow.rb:37:27:37:29 | :p2 | params_flow.rb:37:27:37:29 | :p2 | | params_flow.rb:37:27:37:42 | Pair | params_flow.rb:37:27:37:42 | Pair | -| params_flow.rb:37:34:37:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:37:34:37:42 | * | params_flow.rb:37:34:37:42 | * | | params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:28:10:28:22 | ( ... ) | | params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:37:34:37:42 | call to taint | +| params_flow.rb:37:34:37:42 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:37:34:37:42 | synthetic splat argument | params_flow.rb:37:34:37:42 | synthetic splat argument | | params_flow.rb:37:40:37:41 | 15 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:37:40:37:41 | 15 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:37:40:37:41 | 15 | params_flow.rb:2:5:2:5 | x | @@ -3861,7 +3854,7 @@ trackEnd | params_flow.rb:37:40:37:41 | 15 | params_flow.rb:37:34:37:42 | call to taint | | params_flow.rb:37:40:37:41 | 15 | params_flow.rb:37:40:37:41 | 15 | | params_flow.rb:38:1:38:14 | call to kwargs | params_flow.rb:38:1:38:14 | call to kwargs | -| params_flow.rb:38:8:38:13 | ** ... | params_flow.rb:25:1:31:3 | **kwargs | +| params_flow.rb:38:8:38:13 | ** ... | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:38:8:38:13 | ** ... | params_flow.rb:25:17:25:24 | **kwargs | | params_flow.rb:38:8:38:13 | ** ... | params_flow.rb:25:19:25:24 | kwargs | | params_flow.rb:38:8:38:13 | ** ... | params_flow.rb:27:11:27:16 | kwargs | @@ -3870,16 +3863,18 @@ trackEnd | params_flow.rb:38:8:38:13 | ** ... | params_flow.rb:30:11:30:16 | kwargs | | params_flow.rb:38:8:38:13 | ** ... | params_flow.rb:38:8:38:13 | ** ... | | params_flow.rb:40:1:40:4 | args | params_flow.rb:40:1:40:4 | args | -| params_flow.rb:40:8:40:26 | ** | params_flow.rb:40:8:40:26 | ** | | params_flow.rb:40:8:40:26 | Hash | params_flow.rb:40:8:40:26 | Hash | | params_flow.rb:40:8:40:26 | call to [] | params_flow.rb:40:1:40:4 | args | | params_flow.rb:40:8:40:26 | call to [] | params_flow.rb:40:1:40:26 | ... = ... | | params_flow.rb:40:8:40:26 | call to [] | params_flow.rb:40:8:40:26 | call to [] | | params_flow.rb:40:8:40:26 | call to [] | params_flow.rb:41:26:41:29 | args | +| params_flow.rb:40:8:40:26 | synthetic hash-splat argument | params_flow.rb:40:1:40:4 | args | +| params_flow.rb:40:8:40:26 | synthetic hash-splat argument | params_flow.rb:40:1:40:26 | ... = ... | +| params_flow.rb:40:8:40:26 | synthetic hash-splat argument | params_flow.rb:40:8:40:26 | call to [] | +| params_flow.rb:40:8:40:26 | synthetic hash-splat argument | params_flow.rb:40:8:40:26 | synthetic hash-splat argument | +| params_flow.rb:40:8:40:26 | synthetic hash-splat argument | params_flow.rb:41:26:41:29 | args | | params_flow.rb:40:9:40:11 | :p1 | params_flow.rb:40:9:40:11 | :p1 | | params_flow.rb:40:9:40:24 | Pair | params_flow.rb:40:9:40:24 | Pair | -| params_flow.rb:40:16:40:24 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:40:16:40:24 | * | params_flow.rb:40:16:40:24 | * | | params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3887,6 +3882,8 @@ trackEnd | params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:16:13:16:14 | p1 | | params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:17:10:17:11 | p1 | | params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:40:16:40:24 | call to taint | +| params_flow.rb:40:16:40:24 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:40:16:40:24 | synthetic splat argument | params_flow.rb:40:16:40:24 | synthetic splat argument | | params_flow.rb:40:22:40:23 | 16 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:40:22:40:23 | 16 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:40:22:40:23 | 16 | params_flow.rb:2:5:2:5 | x | @@ -3898,13 +3895,11 @@ trackEnd | params_flow.rb:40:22:40:23 | 16 | params_flow.rb:17:10:17:11 | p1 | | params_flow.rb:40:22:40:23 | 16 | params_flow.rb:40:16:40:24 | call to taint | | params_flow.rb:40:22:40:23 | 16 | params_flow.rb:40:22:40:23 | 16 | -| params_flow.rb:41:1:41:30 | ** | params_flow.rb:16:1:19:3 | **kwargs | -| params_flow.rb:41:1:41:30 | ** | params_flow.rb:41:1:41:30 | ** | | params_flow.rb:41:1:41:30 | call to keyword | params_flow.rb:41:1:41:30 | call to keyword | +| params_flow.rb:41:1:41:30 | synthetic hash-splat argument | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | +| params_flow.rb:41:1:41:30 | synthetic hash-splat argument | params_flow.rb:41:1:41:30 | synthetic hash-splat argument | | params_flow.rb:41:9:41:10 | :p2 | params_flow.rb:41:9:41:10 | :p2 | | params_flow.rb:41:9:41:21 | Pair | params_flow.rb:41:9:41:21 | Pair | -| params_flow.rb:41:13:41:21 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:41:13:41:21 | * | params_flow.rb:41:13:41:21 | * | | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3912,6 +3907,8 @@ trackEnd | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:16:18:16:19 | p2 | | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:18:10:18:11 | p2 | | params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:41:13:41:21 | call to taint | +| params_flow.rb:41:13:41:21 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:41:13:41:21 | synthetic splat argument | params_flow.rb:41:13:41:21 | synthetic splat argument | | params_flow.rb:41:19:41:20 | 17 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:41:19:41:20 | 17 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:41:19:41:20 | 17 | params_flow.rb:2:5:2:5 | x | @@ -3923,10 +3920,9 @@ trackEnd | params_flow.rb:41:19:41:20 | 17 | params_flow.rb:18:10:18:11 | p2 | | params_flow.rb:41:19:41:20 | 17 | params_flow.rb:41:13:41:21 | call to taint | | params_flow.rb:41:19:41:20 | 17 | params_flow.rb:41:19:41:20 | 17 | -| params_flow.rb:41:24:41:29 | ** ... | params_flow.rb:16:1:19:3 | **kwargs | +| params_flow.rb:41:24:41:29 | ** ... | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | | params_flow.rb:41:24:41:29 | ** ... | params_flow.rb:41:24:41:29 | ** ... | | params_flow.rb:43:1:43:4 | args | params_flow.rb:43:1:43:4 | args | -| params_flow.rb:43:8:43:18 | * | params_flow.rb:43:8:43:18 | * | | params_flow.rb:43:8:43:18 | Array | params_flow.rb:43:8:43:18 | Array | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:5:10:5:10 | x | @@ -3938,8 +3934,17 @@ trackEnd | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:1:43:18 | ... = ... | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:43:8:43:18 | call to [] | | params_flow.rb:43:8:43:18 | call to [] | params_flow.rb:44:24:44:27 | args | -| params_flow.rb:43:9:43:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:43:9:43:17 | * | params_flow.rb:43:9:43:17 | * | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:9:20:9:21 | p2 | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:11:10:11:11 | p2 | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:43:1:43:4 | args | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:43:1:43:18 | ... = ... | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:43:8:43:18 | call to [] | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:43:8:43:18 | synthetic splat argument | +| params_flow.rb:43:8:43:18 | synthetic splat argument | params_flow.rb:44:24:44:27 | args | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3947,6 +3952,8 @@ trackEnd | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:43:9:43:17 | call to taint | +| params_flow.rb:43:9:43:17 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:43:9:43:17 | synthetic splat argument | params_flow.rb:43:9:43:17 | synthetic splat argument | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:2:5:2:5 | x | @@ -3958,11 +3965,9 @@ trackEnd | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:43:9:43:17 | call to taint | | params_flow.rb:43:15:43:16 | 17 | params_flow.rb:43:15:43:16 | 17 | -| params_flow.rb:44:1:44:28 | * | params_flow.rb:9:1:12:3 | synthetic *args | -| params_flow.rb:44:1:44:28 | * | params_flow.rb:44:1:44:28 | * | | params_flow.rb:44:1:44:28 | call to positional | params_flow.rb:44:1:44:28 | call to positional | -| params_flow.rb:44:12:44:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:44:12:44:20 | * | params_flow.rb:44:12:44:20 | * | +| params_flow.rb:44:1:44:28 | synthetic splat argument | params_flow.rb:9:1:12:3 | synthetic splat parameter | +| params_flow.rb:44:1:44:28 | synthetic splat argument | params_flow.rb:44:1:44:28 | synthetic splat argument | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -3970,6 +3975,8 @@ trackEnd | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:44:12:44:20 | call to taint | +| params_flow.rb:44:12:44:20 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:44:12:44:20 | synthetic splat argument | params_flow.rb:44:12:44:20 | synthetic splat argument | | params_flow.rb:44:18:44:19 | 16 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:44:18:44:19 | 16 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:44:18:44:19 | 16 | params_flow.rb:2:5:2:5 | x | @@ -3983,7 +3990,6 @@ trackEnd | params_flow.rb:44:18:44:19 | 16 | params_flow.rb:44:18:44:19 | 16 | | params_flow.rb:44:23:44:27 | * ... | params_flow.rb:44:23:44:27 | * ... | | params_flow.rb:46:1:46:4 | args | params_flow.rb:46:1:46:4 | args | -| params_flow.rb:46:8:46:29 | * | params_flow.rb:46:8:46:29 | * | | params_flow.rb:46:8:46:29 | Array | params_flow.rb:46:8:46:29 | Array | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:5:10:5:10 | x | @@ -3995,8 +4001,17 @@ trackEnd | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:46:1:46:29 | ... = ... | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:46:8:46:29 | call to [] | params_flow.rb:47:13:47:16 | args | -| params_flow.rb:46:9:46:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:9:46:17 | * | params_flow.rb:46:9:46:17 | * | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:9:16:9:17 | p1 | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:10:10:10:11 | p1 | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:46:1:46:4 | args | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:46:1:46:29 | ... = ... | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:46:8:46:29 | call to [] | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:46:8:46:29 | synthetic splat argument | +| params_flow.rb:46:8:46:29 | synthetic splat argument | params_flow.rb:47:13:47:16 | args | | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4004,6 +4019,8 @@ trackEnd | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:46:9:46:17 | call to taint | +| params_flow.rb:46:9:46:17 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:46:9:46:17 | synthetic splat argument | params_flow.rb:46:9:46:17 | synthetic splat argument | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:2:5:2:5 | x | @@ -4015,8 +4032,6 @@ trackEnd | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:46:9:46:17 | call to taint | | params_flow.rb:46:15:46:16 | 18 | params_flow.rb:46:15:46:16 | 18 | -| params_flow.rb:46:20:46:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:46:20:46:28 | * | params_flow.rb:46:20:46:28 | * | | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4024,6 +4039,8 @@ trackEnd | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:11:10:11:11 | p2 | | params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:46:20:46:28 | call to taint | +| params_flow.rb:46:20:46:28 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:46:20:46:28 | synthetic splat argument | params_flow.rb:46:20:46:28 | synthetic splat argument | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:2:5:2:5 | x | @@ -4036,7 +4053,7 @@ trackEnd | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:46:20:46:28 | call to taint | | params_flow.rb:46:26:46:27 | 19 | params_flow.rb:46:26:46:27 | 19 | | params_flow.rb:47:1:47:17 | call to positional | params_flow.rb:47:1:47:17 | call to positional | -| params_flow.rb:47:12:47:16 | * ... | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:47:12:47:16 | * ... | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:47:12:47:16 | * ... | params_flow.rb:47:12:47:16 | * ... | | params_flow.rb:49:1:53:3 | &block | params_flow.rb:49:1:53:3 | &block | | params_flow.rb:49:1:53:3 | posargs | params_flow.rb:49:1:53:3 | posargs | @@ -4048,7 +4065,7 @@ trackEnd | params_flow.rb:49:1:53:3 | self in posargs | params_flow.rb:50:5:50:11 | self | | params_flow.rb:49:1:53:3 | self in posargs | params_flow.rb:51:5:51:21 | self | | params_flow.rb:49:1:53:3 | self in posargs | params_flow.rb:52:5:52:21 | self | -| params_flow.rb:49:1:53:3 | synthetic *args | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:49:1:53:3 | synthetic splat parameter | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:6:10:6:10 | x | @@ -4061,46 +4078,44 @@ trackEnd | params_flow.rb:49:17:49:24 | *posargs | params_flow.rb:51:11:51:17 | posargs | | params_flow.rb:49:17:49:24 | *posargs | params_flow.rb:52:11:52:17 | posargs | | params_flow.rb:49:18:49:24 | posargs | params_flow.rb:49:18:49:24 | posargs | -| params_flow.rb:50:5:50:11 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:50:5:50:11 | * | params_flow.rb:50:5:50:11 | * | | params_flow.rb:50:5:50:11 | call to sink | params_flow.rb:50:5:50:11 | call to sink | -| params_flow.rb:51:5:51:21 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:51:5:51:21 | * | params_flow.rb:51:5:51:21 | * | +| params_flow.rb:50:5:50:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:50:5:50:11 | synthetic splat argument | params_flow.rb:50:5:50:11 | synthetic splat argument | | params_flow.rb:51:5:51:21 | call to sink | params_flow.rb:51:5:51:21 | call to sink | -| params_flow.rb:51:11:51:20 | * | params_flow.rb:51:11:51:20 | * | +| params_flow.rb:51:5:51:21 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:51:5:51:21 | synthetic splat argument | params_flow.rb:51:5:51:21 | synthetic splat argument | | params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:51:11:51:20 | synthetic splat argument | params_flow.rb:51:11:51:20 | synthetic splat argument | | params_flow.rb:51:19:51:19 | 0 | params_flow.rb:51:19:51:19 | 0 | -| params_flow.rb:52:5:52:21 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:52:5:52:21 | * | params_flow.rb:52:5:52:21 | * | | params_flow.rb:52:5:52:21 | call to sink | params_flow.rb:52:5:52:21 | call to sink | | params_flow.rb:52:5:52:21 | call to sink | params_flow.rb:55:1:55:29 | call to posargs | | params_flow.rb:52:5:52:21 | call to sink | params_flow.rb:58:1:58:25 | call to posargs | | params_flow.rb:52:5:52:21 | call to sink | params_flow.rb:61:1:61:14 | call to posargs | -| params_flow.rb:52:11:52:20 | * | params_flow.rb:52:11:52:20 | * | +| params_flow.rb:52:5:52:21 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:52:5:52:21 | synthetic splat argument | params_flow.rb:52:5:52:21 | synthetic splat argument | | params_flow.rb:52:11:52:20 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:52:11:52:20 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:52:11:52:20 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:52:11:52:20 | ...[...] | params_flow.rb:52:10:52:21 | ( ... ) | | params_flow.rb:52:11:52:20 | ...[...] | params_flow.rb:52:11:52:20 | ...[...] | +| params_flow.rb:52:11:52:20 | synthetic splat argument | params_flow.rb:52:11:52:20 | synthetic splat argument | | params_flow.rb:52:19:52:19 | 1 | params_flow.rb:52:19:52:19 | 1 | -| params_flow.rb:55:1:55:29 | * | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:55:1:55:29 | * | params_flow.rb:55:1:55:29 | * | | params_flow.rb:55:1:55:29 | call to posargs | params_flow.rb:55:1:55:29 | call to posargs | -| params_flow.rb:55:9:55:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:9:55:17 | * | params_flow.rb:55:9:55:17 | * | +| params_flow.rb:55:1:55:29 | synthetic splat argument | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:55:1:55:29 | synthetic splat argument | params_flow.rb:55:1:55:29 | synthetic splat argument | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:50:10:50:11 | p1 | -| params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | -| params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:55:9:55:17 | call to taint | +| params_flow.rb:55:9:55:17 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:55:9:55:17 | synthetic splat argument | params_flow.rb:55:9:55:17 | synthetic splat argument | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:2:5:2:5 | x | @@ -4110,52 +4125,55 @@ trackEnd | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:50:10:50:11 | p1 | -| params_flow.rb:55:15:55:16 | 20 | params_flow.rb:51:10:51:21 | ( ... ) | -| params_flow.rb:55:15:55:16 | 20 | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:55:9:55:17 | call to taint | | params_flow.rb:55:15:55:16 | 20 | params_flow.rb:55:15:55:16 | 20 | -| params_flow.rb:55:20:55:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:55:20:55:28 | * | params_flow.rb:55:20:55:28 | * | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:52:10:52:21 | ( ... ) | -| params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:52:11:52:20 | ...[...] | +| params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:55:20:55:28 | call to taint | +| params_flow.rb:55:20:55:28 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:55:20:55:28 | synthetic splat argument | params_flow.rb:55:20:55:28 | synthetic splat argument | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:55:26:55:27 | 21 | params_flow.rb:52:10:52:21 | ( ... ) | -| params_flow.rb:55:26:55:27 | 21 | params_flow.rb:52:11:52:20 | ...[...] | +| params_flow.rb:55:26:55:27 | 21 | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:55:26:55:27 | 21 | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:55:20:55:28 | call to taint | | params_flow.rb:55:26:55:27 | 21 | params_flow.rb:55:26:55:27 | 21 | | params_flow.rb:57:1:57:4 | args | params_flow.rb:57:1:57:4 | args | -| params_flow.rb:57:8:57:18 | * | params_flow.rb:57:8:57:18 | * | | params_flow.rb:57:8:57:18 | Array | params_flow.rb:57:8:57:18 | Array | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:52:10:52:21 | ( ... ) | -| params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:57:1:57:4 | args | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:57:1:57:18 | ... = ... | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:57:8:57:18 | call to [] | | params_flow.rb:57:8:57:18 | call to [] | params_flow.rb:58:21:58:24 | args | -| params_flow.rb:57:9:57:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:57:9:57:17 | * | params_flow.rb:57:9:57:17 | * | +| params_flow.rb:57:8:57:18 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:57:8:57:18 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:57:8:57:18 | synthetic splat argument | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:57:8:57:18 | synthetic splat argument | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:57:8:57:18 | synthetic splat argument | params_flow.rb:51:11:51:20 | ...[...] | +| params_flow.rb:57:8:57:18 | synthetic splat argument | params_flow.rb:57:1:57:4 | args | +| params_flow.rb:57:8:57:18 | synthetic splat argument | params_flow.rb:57:1:57:18 | ... = ... | +| params_flow.rb:57:8:57:18 | synthetic splat argument | params_flow.rb:57:8:57:18 | call to [] | +| params_flow.rb:57:8:57:18 | synthetic splat argument | params_flow.rb:57:8:57:18 | synthetic splat argument | +| params_flow.rb:57:8:57:18 | synthetic splat argument | params_flow.rb:58:21:58:24 | args | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:52:10:52:21 | ( ... ) | -| params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:57:9:57:17 | call to taint | +| params_flow.rb:57:9:57:17 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:57:9:57:17 | synthetic splat argument | params_flow.rb:57:9:57:17 | synthetic splat argument | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:2:5:2:5 | x | @@ -4164,24 +4182,20 @@ trackEnd | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:6:10:6:10 | x | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:57:15:57:16 | 22 | params_flow.rb:52:10:52:21 | ( ... ) | -| params_flow.rb:57:15:57:16 | 22 | params_flow.rb:52:11:52:20 | ...[...] | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:57:9:57:17 | call to taint | | params_flow.rb:57:15:57:16 | 22 | params_flow.rb:57:15:57:16 | 22 | -| params_flow.rb:58:1:58:25 | * | params_flow.rb:49:1:53:3 | synthetic *args | -| params_flow.rb:58:1:58:25 | * | params_flow.rb:58:1:58:25 | * | | params_flow.rb:58:1:58:25 | call to posargs | params_flow.rb:58:1:58:25 | call to posargs | -| params_flow.rb:58:9:58:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:58:9:58:17 | * | params_flow.rb:58:9:58:17 | * | +| params_flow.rb:58:1:58:25 | synthetic splat argument | params_flow.rb:49:1:53:3 | synthetic splat parameter | +| params_flow.rb:58:1:58:25 | synthetic splat argument | params_flow.rb:58:1:58:25 | synthetic splat argument | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:50:10:50:11 | p1 | -| params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | -| params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:58:9:58:17 | call to taint | +| params_flow.rb:58:9:58:17 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:58:9:58:17 | synthetic splat argument | params_flow.rb:58:9:58:17 | synthetic splat argument | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:2:5:2:5 | x | @@ -4191,8 +4205,6 @@ trackEnd | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:50:10:50:11 | p1 | -| params_flow.rb:58:15:58:16 | 23 | params_flow.rb:51:10:51:21 | ( ... ) | -| params_flow.rb:58:15:58:16 | 23 | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:58:9:58:17 | call to taint | | params_flow.rb:58:15:58:16 | 23 | params_flow.rb:58:15:58:16 | 23 | | params_flow.rb:58:20:58:24 | * ... | params_flow.rb:49:17:49:24 | *posargs | @@ -4201,7 +4213,6 @@ trackEnd | params_flow.rb:58:20:58:24 | * ... | params_flow.rb:52:11:52:17 | posargs | | params_flow.rb:58:20:58:24 | * ... | params_flow.rb:58:20:58:24 | * ... | | params_flow.rb:60:1:60:4 | args | params_flow.rb:60:1:60:4 | args | -| params_flow.rb:60:8:60:29 | * | params_flow.rb:60:8:60:29 | * | | params_flow.rb:60:8:60:29 | Array | params_flow.rb:60:8:60:29 | Array | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:5:10:5:10 | x | @@ -4209,23 +4220,30 @@ trackEnd | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:50:10:50:11 | p1 | -| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:51:10:51:21 | ( ... ) | -| params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:60:1:60:4 | args | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:60:1:60:29 | ... = ... | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:60:8:60:29 | call to [] | | params_flow.rb:60:8:60:29 | call to [] | params_flow.rb:61:10:61:13 | args | -| params_flow.rb:60:9:60:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:9:60:17 | * | params_flow.rb:60:9:60:17 | * | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:49:13:49:14 | p1 | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:50:10:50:11 | p1 | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:60:1:60:4 | args | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:60:1:60:29 | ... = ... | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:60:8:60:29 | call to [] | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:60:8:60:29 | synthetic splat argument | +| params_flow.rb:60:8:60:29 | synthetic splat argument | params_flow.rb:61:10:61:13 | args | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:50:10:50:11 | p1 | -| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | -| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:60:9:60:17 | call to taint | +| params_flow.rb:60:9:60:17 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:60:9:60:17 | synthetic splat argument | params_flow.rb:60:9:60:17 | synthetic splat argument | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:2:5:2:5 | x | @@ -4235,34 +4253,30 @@ trackEnd | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:50:10:50:11 | p1 | -| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:51:10:51:21 | ( ... ) | -| params_flow.rb:60:15:60:16 | 24 | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:60:9:60:17 | call to taint | | params_flow.rb:60:15:60:16 | 24 | params_flow.rb:60:15:60:16 | 24 | -| params_flow.rb:60:20:60:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:60:20:60:28 | * | params_flow.rb:60:20:60:28 | * | | params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:52:10:52:21 | ( ... ) | -| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:52:11:52:20 | ...[...] | +| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:60:20:60:28 | call to taint | +| params_flow.rb:60:20:60:28 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:60:20:60:28 | synthetic splat argument | params_flow.rb:60:20:60:28 | synthetic splat argument | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:5:10:5:10 | x | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:52:10:52:21 | ( ... ) | -| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:52:11:52:20 | ...[...] | +| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:51:10:51:21 | ( ... ) | +| params_flow.rb:60:26:60:27 | 25 | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:60:20:60:28 | call to taint | | params_flow.rb:60:26:60:27 | 25 | params_flow.rb:60:26:60:27 | 25 | | params_flow.rb:61:1:61:14 | call to posargs | params_flow.rb:61:1:61:14 | call to posargs | -| params_flow.rb:61:9:61:13 | * ... | params_flow.rb:49:1:53:3 | synthetic *args | +| params_flow.rb:61:9:61:13 | * ... | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:61:9:61:13 | * ... | params_flow.rb:61:9:61:13 | * ... | | params_flow.rb:63:1:63:4 | args | params_flow.rb:63:1:63:4 | args | -| params_flow.rb:63:8:63:16 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:63:8:63:16 | * | params_flow.rb:63:8:63:16 | * | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4271,6 +4285,8 @@ trackEnd | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:63:8:63:16 | call to taint | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:65:10:65:13 | ...[...] | | params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:67:13:67:16 | args | +| params_flow.rb:63:8:63:16 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:63:8:63:16 | synthetic splat argument | params_flow.rb:63:8:63:16 | synthetic splat argument | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:63:14:63:15 | 26 | params_flow.rb:2:5:2:5 | x | @@ -4295,15 +4311,15 @@ trackEnd | params_flow.rb:64:16:64:17 | *x | params_flow.rb:64:17:64:17 | x | | params_flow.rb:64:16:64:17 | *x | params_flow.rb:65:10:65:10 | x | | params_flow.rb:64:17:64:17 | x | params_flow.rb:64:17:64:17 | x | -| params_flow.rb:65:5:65:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:65:5:65:13 | * | params_flow.rb:65:5:65:13 | * | | params_flow.rb:65:5:65:13 | call to sink | params_flow.rb:65:5:65:13 | call to sink | | params_flow.rb:65:5:65:13 | call to sink | params_flow.rb:67:1:67:17 | call to splatstuff | -| params_flow.rb:65:10:65:13 | * | params_flow.rb:65:10:65:13 | * | +| params_flow.rb:65:5:65:13 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:65:5:65:13 | synthetic splat argument | params_flow.rb:65:5:65:13 | synthetic splat argument | | params_flow.rb:65:10:65:13 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:65:10:65:13 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:65:10:65:13 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:65:10:65:13 | ...[...] | params_flow.rb:65:10:65:13 | ...[...] | +| params_flow.rb:65:10:65:13 | synthetic splat argument | params_flow.rb:65:10:65:13 | synthetic splat argument | | params_flow.rb:65:12:65:12 | 0 | params_flow.rb:65:12:65:12 | 0 | | params_flow.rb:67:1:67:17 | call to splatstuff | params_flow.rb:67:1:67:17 | call to splatstuff | | params_flow.rb:67:12:67:16 | * ... | params_flow.rb:64:16:64:17 | *x | @@ -4323,7 +4339,7 @@ trackEnd | params_flow.rb:69:1:76:3 | self in splatmid | params_flow.rb:74:5:74:10 | self | | params_flow.rb:69:1:76:3 | self in splatmid | params_flow.rb:75:5:75:10 | self | | params_flow.rb:69:1:76:3 | splatmid | params_flow.rb:69:1:76:3 | splatmid | -| params_flow.rb:69:1:76:3 | synthetic *args | params_flow.rb:69:1:76:3 | synthetic *args | +| params_flow.rb:69:1:76:3 | synthetic splat parameter | params_flow.rb:69:1:76:3 | synthetic splat parameter | | params_flow.rb:69:14:69:14 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:14:69:14 | x | params_flow.rb:5:10:5:10 | x | | params_flow.rb:69:14:69:14 | x | params_flow.rb:6:10:6:10 | x | @@ -4357,44 +4373,42 @@ trackEnd | params_flow.rb:69:27:69:27 | r | params_flow.rb:69:27:69:27 | r | | params_flow.rb:69:27:69:27 | r | params_flow.rb:69:27:69:27 | r | | params_flow.rb:69:27:69:27 | r | params_flow.rb:75:10:75:10 | r | -| params_flow.rb:70:5:70:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:70:5:70:10 | * | params_flow.rb:70:5:70:10 | * | | params_flow.rb:70:5:70:10 | call to sink | params_flow.rb:70:5:70:10 | call to sink | -| params_flow.rb:71:5:71:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:71:5:71:10 | * | params_flow.rb:71:5:71:10 | * | +| params_flow.rb:70:5:70:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:70:5:70:10 | synthetic splat argument | params_flow.rb:70:5:70:10 | synthetic splat argument | | params_flow.rb:71:5:71:10 | call to sink | params_flow.rb:71:5:71:10 | call to sink | -| params_flow.rb:72:5:72:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:72:5:72:13 | * | params_flow.rb:72:5:72:13 | * | +| params_flow.rb:71:5:71:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:71:5:71:10 | synthetic splat argument | params_flow.rb:71:5:71:10 | synthetic splat argument | | params_flow.rb:72:5:72:13 | call to sink | params_flow.rb:72:5:72:13 | call to sink | -| params_flow.rb:72:10:72:13 | * | params_flow.rb:72:10:72:13 | * | +| params_flow.rb:72:5:72:13 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:72:5:72:13 | synthetic splat argument | params_flow.rb:72:5:72:13 | synthetic splat argument | | params_flow.rb:72:10:72:13 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:72:10:72:13 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:72:10:72:13 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:72:10:72:13 | ...[...] | params_flow.rb:72:10:72:13 | ...[...] | +| params_flow.rb:72:10:72:13 | synthetic splat argument | params_flow.rb:72:10:72:13 | synthetic splat argument | | params_flow.rb:72:12:72:12 | 0 | params_flow.rb:72:12:72:12 | 0 | -| params_flow.rb:73:5:73:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:73:5:73:13 | * | params_flow.rb:73:5:73:13 | * | | params_flow.rb:73:5:73:13 | call to sink | params_flow.rb:73:5:73:13 | call to sink | -| params_flow.rb:73:10:73:13 | * | params_flow.rb:73:10:73:13 | * | +| params_flow.rb:73:5:73:13 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:73:5:73:13 | synthetic splat argument | params_flow.rb:73:5:73:13 | synthetic splat argument | | params_flow.rb:73:10:73:13 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:73:10:73:13 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:73:10:73:13 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:73:10:73:13 | ...[...] | params_flow.rb:73:10:73:13 | ...[...] | +| params_flow.rb:73:10:73:13 | synthetic splat argument | params_flow.rb:73:10:73:13 | synthetic splat argument | | params_flow.rb:73:12:73:12 | 1 | params_flow.rb:73:12:73:12 | 1 | -| params_flow.rb:74:5:74:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:74:5:74:10 | * | params_flow.rb:74:5:74:10 | * | | params_flow.rb:74:5:74:10 | call to sink | params_flow.rb:74:5:74:10 | call to sink | -| params_flow.rb:75:5:75:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:75:5:75:10 | * | params_flow.rb:75:5:75:10 | * | +| params_flow.rb:74:5:74:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:74:5:74:10 | synthetic splat argument | params_flow.rb:74:5:74:10 | synthetic splat argument | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:75:5:75:10 | call to sink | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:78:1:78:63 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:81:1:81:37 | call to splatmid | | params_flow.rb:75:5:75:10 | call to sink | params_flow.rb:96:1:96:88 | call to splatmid | -| params_flow.rb:78:1:78:63 | * | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:78:1:78:63 | * | params_flow.rb:78:1:78:63 | * | +| params_flow.rb:75:5:75:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:75:5:75:10 | synthetic splat argument | params_flow.rb:75:5:75:10 | synthetic splat argument | | params_flow.rb:78:1:78:63 | call to splatmid | params_flow.rb:78:1:78:63 | call to splatmid | -| params_flow.rb:78:10:78:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:10:78:18 | * | params_flow.rb:78:10:78:18 | * | +| params_flow.rb:78:1:78:63 | synthetic splat argument | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:78:1:78:63 | synthetic splat argument | params_flow.rb:78:1:78:63 | synthetic splat argument | | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4402,6 +4416,8 @@ trackEnd | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:69:14:69:14 | x | | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:70:10:70:10 | x | | params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:78:10:78:18 | call to taint | +| params_flow.rb:78:10:78:18 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:10:78:18 | synthetic splat argument | params_flow.rb:78:10:78:18 | synthetic splat argument | | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:2:5:2:5 | x | @@ -4413,8 +4429,6 @@ trackEnd | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:70:10:70:10 | x | | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:78:10:78:18 | call to taint | | params_flow.rb:78:16:78:17 | 27 | params_flow.rb:78:16:78:17 | 27 | -| params_flow.rb:78:21:78:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:21:78:29 | * | params_flow.rb:78:21:78:29 | * | | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4422,6 +4436,8 @@ trackEnd | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:69:17:69:17 | y | | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:71:10:71:10 | y | | params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:78:21:78:29 | call to taint | +| params_flow.rb:78:21:78:29 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:21:78:29 | synthetic splat argument | params_flow.rb:78:21:78:29 | synthetic splat argument | | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:2:5:2:5 | x | @@ -4433,16 +4449,14 @@ trackEnd | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:71:10:71:10 | y | | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:78:21:78:29 | call to taint | | params_flow.rb:78:27:78:28 | 28 | params_flow.rb:78:27:78:28 | 28 | -| params_flow.rb:78:32:78:40 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:32:78:40 | * | params_flow.rb:78:32:78:40 | * | | params_flow.rb:78:32:78:40 | call to taint | params_flow.rb:78:32:78:40 | call to taint | +| params_flow.rb:78:32:78:40 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:32:78:40 | synthetic splat argument | params_flow.rb:78:32:78:40 | synthetic splat argument | | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:78:32:78:40 | call to taint | | params_flow.rb:78:38:78:39 | 29 | params_flow.rb:78:38:78:39 | 29 | -| params_flow.rb:78:43:78:51 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:43:78:51 | * | params_flow.rb:78:43:78:51 | * | | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4450,6 +4464,8 @@ trackEnd | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:69:24:69:24 | w | | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:74:10:74:10 | w | | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:78:43:78:51 | call to taint | +| params_flow.rb:78:43:78:51 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:43:78:51 | synthetic splat argument | params_flow.rb:78:43:78:51 | synthetic splat argument | | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:2:5:2:5 | x | @@ -4461,8 +4477,6 @@ trackEnd | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:78:43:78:51 | call to taint | | params_flow.rb:78:49:78:50 | 30 | params_flow.rb:78:49:78:50 | 30 | -| params_flow.rb:78:54:78:62 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:78:54:78:62 | * | params_flow.rb:78:54:78:62 | * | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4470,6 +4484,8 @@ trackEnd | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:69:27:69:27 | r | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:75:10:75:10 | r | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:78:54:78:62 | call to taint | +| params_flow.rb:78:54:78:62 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:78:54:78:62 | synthetic splat argument | params_flow.rb:78:54:78:62 | synthetic splat argument | | params_flow.rb:78:60:78:61 | 31 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:60:78:61 | 31 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:78:60:78:61 | 31 | params_flow.rb:2:5:2:5 | x | @@ -4482,7 +4498,6 @@ trackEnd | params_flow.rb:78:60:78:61 | 31 | params_flow.rb:78:54:78:62 | call to taint | | params_flow.rb:78:60:78:61 | 31 | params_flow.rb:78:60:78:61 | 31 | | params_flow.rb:80:1:80:4 | args | params_flow.rb:80:1:80:4 | args | -| params_flow.rb:80:8:80:51 | * | params_flow.rb:80:8:80:51 | * | | params_flow.rb:80:8:80:51 | Array | params_flow.rb:80:8:80:51 | Array | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:5:10:5:10 | x | @@ -4494,8 +4509,17 @@ trackEnd | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:1:80:51 | ... = ... | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:80:8:80:51 | call to [] | params_flow.rb:81:22:81:25 | args | -| params_flow.rb:80:9:80:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:9:80:17 | * | params_flow.rb:80:9:80:17 | * | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:69:17:69:17 | y | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:71:10:71:10 | y | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:80:1:80:4 | args | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:80:1:80:51 | ... = ... | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:80:8:80:51 | call to [] | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:80:8:80:51 | synthetic splat argument | +| params_flow.rb:80:8:80:51 | synthetic splat argument | params_flow.rb:81:22:81:25 | args | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4503,6 +4527,8 @@ trackEnd | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:69:17:69:17 | y | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:80:9:80:17 | call to taint | +| params_flow.rb:80:9:80:17 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:9:80:17 | synthetic splat argument | params_flow.rb:80:9:80:17 | synthetic splat argument | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:2:5:2:5 | x | @@ -4514,59 +4540,33 @@ trackEnd | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:71:10:71:10 | y | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:80:9:80:17 | call to taint | | params_flow.rb:80:15:80:16 | 33 | params_flow.rb:80:15:80:16 | 33 | -| params_flow.rb:80:20:80:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:20:80:28 | * | params_flow.rb:80:20:80:28 | * | | params_flow.rb:80:20:80:28 | call to taint | params_flow.rb:80:20:80:28 | call to taint | +| params_flow.rb:80:20:80:28 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:20:80:28 | synthetic splat argument | params_flow.rb:80:20:80:28 | synthetic splat argument | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:80:20:80:28 | call to taint | | params_flow.rb:80:26:80:27 | 34 | params_flow.rb:80:26:80:27 | 34 | -| params_flow.rb:80:31:80:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:31:80:39 | * | params_flow.rb:80:31:80:39 | * | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:74:10:74:10 | w | | params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:80:31:80:39 | call to taint | +| params_flow.rb:80:31:80:39 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:31:80:39 | synthetic splat argument | params_flow.rb:80:31:80:39 | synthetic splat argument | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:80:37:80:38 | 35 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:80:31:80:39 | call to taint | | params_flow.rb:80:37:80:38 | 35 | params_flow.rb:80:37:80:38 | 35 | -| params_flow.rb:80:42:80:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:80:42:80:50 | * | params_flow.rb:80:42:80:50 | * | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:75:10:75:10 | r | | params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:80:42:80:50 | call to taint | +| params_flow.rb:80:42:80:50 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:80:42:80:50 | synthetic splat argument | params_flow.rb:80:42:80:50 | synthetic splat argument | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:48:80:49 | 36 | params_flow.rb:75:10:75:10 | r | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:80:42:80:50 | call to taint | | params_flow.rb:80:48:80:49 | 36 | params_flow.rb:80:48:80:49 | 36 | -| params_flow.rb:81:1:81:37 | * | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:81:1:81:37 | * | params_flow.rb:81:1:81:37 | * | | params_flow.rb:81:1:81:37 | call to splatmid | params_flow.rb:81:1:81:37 | call to splatmid | -| params_flow.rb:81:10:81:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:10:81:18 | * | params_flow.rb:81:10:81:18 | * | +| params_flow.rb:81:1:81:37 | synthetic splat argument | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:81:1:81:37 | synthetic splat argument | params_flow.rb:81:1:81:37 | synthetic splat argument | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4574,6 +4574,8 @@ trackEnd | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:69:14:69:14 | x | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:70:10:70:10 | x | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:81:10:81:18 | call to taint | +| params_flow.rb:81:10:81:18 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:81:10:81:18 | synthetic splat argument | params_flow.rb:81:10:81:18 | synthetic splat argument | | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:2:5:2:5 | x | @@ -4586,9 +4588,9 @@ trackEnd | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:81:10:81:18 | call to taint | | params_flow.rb:81:16:81:17 | 32 | params_flow.rb:81:16:81:17 | 32 | | params_flow.rb:81:21:81:25 | * ... | params_flow.rb:81:21:81:25 | * ... | -| params_flow.rb:81:28:81:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:81:28:81:36 | * | params_flow.rb:81:28:81:36 | * | | params_flow.rb:81:28:81:36 | call to taint | params_flow.rb:81:28:81:36 | call to taint | +| params_flow.rb:81:28:81:36 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:81:28:81:36 | synthetic splat argument | params_flow.rb:81:28:81:36 | synthetic splat argument | | params_flow.rb:81:34:81:35 | 37 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:81:34:81:35 | 37 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:81:34:81:35 | 37 | params_flow.rb:2:5:2:5 | x | @@ -4608,7 +4610,7 @@ trackEnd | params_flow.rb:83:1:91:3 | self in pos_many | params_flow.rb:88:5:88:10 | self | | params_flow.rb:83:1:91:3 | self in pos_many | params_flow.rb:89:5:89:10 | self | | params_flow.rb:83:1:91:3 | self in pos_many | params_flow.rb:90:5:90:10 | self | -| params_flow.rb:83:1:91:3 | synthetic *args | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:83:1:91:3 | synthetic splat parameter | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:83:14:83:14 | t | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:14:83:14 | t | params_flow.rb:5:10:5:10 | x | | params_flow.rb:83:14:83:14 | t | params_flow.rb:6:10:6:10 | x | @@ -4658,31 +4660,30 @@ trackEnd | params_flow.rb:83:32:83:32 | z | params_flow.rb:83:32:83:32 | z | | params_flow.rb:83:32:83:32 | z | params_flow.rb:83:32:83:32 | z | | params_flow.rb:83:32:83:32 | z | params_flow.rb:90:10:90:10 | z | -| params_flow.rb:84:5:84:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:84:5:84:10 | * | params_flow.rb:84:5:84:10 | * | | params_flow.rb:84:5:84:10 | call to sink | params_flow.rb:84:5:84:10 | call to sink | -| params_flow.rb:85:5:85:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:85:5:85:10 | * | params_flow.rb:85:5:85:10 | * | +| params_flow.rb:84:5:84:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:84:5:84:10 | synthetic splat argument | params_flow.rb:84:5:84:10 | synthetic splat argument | | params_flow.rb:85:5:85:10 | call to sink | params_flow.rb:85:5:85:10 | call to sink | -| params_flow.rb:86:5:86:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:86:5:86:10 | * | params_flow.rb:86:5:86:10 | * | +| params_flow.rb:85:5:85:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:85:5:85:10 | synthetic splat argument | params_flow.rb:85:5:85:10 | synthetic splat argument | | params_flow.rb:86:5:86:10 | call to sink | params_flow.rb:86:5:86:10 | call to sink | -| params_flow.rb:87:5:87:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:87:5:87:10 | * | params_flow.rb:87:5:87:10 | * | +| params_flow.rb:86:5:86:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:86:5:86:10 | synthetic splat argument | params_flow.rb:86:5:86:10 | synthetic splat argument | | params_flow.rb:87:5:87:10 | call to sink | params_flow.rb:87:5:87:10 | call to sink | -| params_flow.rb:88:5:88:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:88:5:88:10 | * | params_flow.rb:88:5:88:10 | * | +| params_flow.rb:87:5:87:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:87:5:87:10 | synthetic splat argument | params_flow.rb:87:5:87:10 | synthetic splat argument | | params_flow.rb:88:5:88:10 | call to sink | params_flow.rb:88:5:88:10 | call to sink | -| params_flow.rb:89:5:89:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:89:5:89:10 | * | params_flow.rb:89:5:89:10 | * | +| params_flow.rb:88:5:88:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:88:5:88:10 | synthetic splat argument | params_flow.rb:88:5:88:10 | synthetic splat argument | | params_flow.rb:89:5:89:10 | call to sink | params_flow.rb:89:5:89:10 | call to sink | -| params_flow.rb:90:5:90:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:90:5:90:10 | * | params_flow.rb:90:5:90:10 | * | +| params_flow.rb:89:5:89:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:89:5:89:10 | synthetic splat argument | params_flow.rb:89:5:89:10 | synthetic splat argument | | params_flow.rb:90:5:90:10 | call to sink | params_flow.rb:90:5:90:10 | call to sink | | params_flow.rb:90:5:90:10 | call to sink | params_flow.rb:94:1:94:48 | call to pos_many | | params_flow.rb:90:5:90:10 | call to sink | params_flow.rb:131:1:131:46 | call to pos_many | +| params_flow.rb:90:5:90:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:90:5:90:10 | synthetic splat argument | params_flow.rb:90:5:90:10 | synthetic splat argument | | params_flow.rb:93:1:93:4 | args | params_flow.rb:93:1:93:4 | args | -| params_flow.rb:93:8:93:51 | * | params_flow.rb:93:8:93:51 | * | | params_flow.rb:93:8:93:51 | Array | params_flow.rb:93:8:93:51 | Array | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:5:10:5:10 | x | @@ -4694,8 +4695,17 @@ trackEnd | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:1:93:51 | ... = ... | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:93:8:93:51 | call to [] | | params_flow.rb:93:8:93:51 | call to [] | params_flow.rb:94:33:94:36 | args | -| params_flow.rb:93:9:93:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:9:93:17 | * | params_flow.rb:93:9:93:17 | * | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:86:10:86:10 | v | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:93:1:93:4 | args | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:93:1:93:51 | ... = ... | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:93:8:93:51 | call to [] | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:93:8:93:51 | synthetic splat argument | +| params_flow.rb:93:8:93:51 | synthetic splat argument | params_flow.rb:94:33:94:36 | args | | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4703,6 +4713,8 @@ trackEnd | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:83:20:83:20 | v | | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:93:9:93:17 | call to taint | +| params_flow.rb:93:9:93:17 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:9:93:17 | synthetic splat argument | params_flow.rb:93:9:93:17 | synthetic splat argument | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:2:5:2:5 | x | @@ -4714,8 +4726,6 @@ trackEnd | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:86:10:86:10 | v | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:93:9:93:17 | call to taint | | params_flow.rb:93:15:93:16 | 40 | params_flow.rb:93:15:93:16 | 40 | -| params_flow.rb:93:20:93:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:20:93:28 | * | params_flow.rb:93:20:93:28 | * | | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4723,6 +4733,8 @@ trackEnd | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:83:23:83:23 | w | | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:87:10:87:10 | w | | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:93:20:93:28 | call to taint | +| params_flow.rb:93:20:93:28 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:20:93:28 | synthetic splat argument | params_flow.rb:93:20:93:28 | synthetic splat argument | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:2:5:2:5 | x | @@ -4734,8 +4746,6 @@ trackEnd | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:87:10:87:10 | w | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:93:20:93:28 | call to taint | | params_flow.rb:93:26:93:27 | 41 | params_flow.rb:93:26:93:27 | 41 | -| params_flow.rb:93:31:93:39 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:31:93:39 | * | params_flow.rb:93:31:93:39 | * | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4743,6 +4753,8 @@ trackEnd | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:83:26:83:26 | x | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:88:10:88:10 | x | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:93:31:93:39 | call to taint | +| params_flow.rb:93:31:93:39 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:31:93:39 | synthetic splat argument | params_flow.rb:93:31:93:39 | synthetic splat argument | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:2:5:2:5 | x | @@ -4754,8 +4766,6 @@ trackEnd | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:88:10:88:10 | x | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:93:31:93:39 | call to taint | | params_flow.rb:93:37:93:38 | 42 | params_flow.rb:93:37:93:38 | 42 | -| params_flow.rb:93:42:93:50 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:93:42:93:50 | * | params_flow.rb:93:42:93:50 | * | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4763,6 +4773,8 @@ trackEnd | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:83:29:83:29 | y | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:89:10:89:10 | y | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:93:42:93:50 | call to taint | +| params_flow.rb:93:42:93:50 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:93:42:93:50 | synthetic splat argument | params_flow.rb:93:42:93:50 | synthetic splat argument | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:2:5:2:5 | x | @@ -4774,11 +4786,9 @@ trackEnd | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:89:10:89:10 | y | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:93:42:93:50 | call to taint | | params_flow.rb:93:48:93:49 | 43 | params_flow.rb:93:48:93:49 | 43 | -| params_flow.rb:94:1:94:48 | * | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:94:1:94:48 | * | params_flow.rb:94:1:94:48 | * | | params_flow.rb:94:1:94:48 | call to pos_many | params_flow.rb:94:1:94:48 | call to pos_many | -| params_flow.rb:94:10:94:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:10:94:18 | * | params_flow.rb:94:10:94:18 | * | +| params_flow.rb:94:1:94:48 | synthetic splat argument | params_flow.rb:83:1:91:3 | synthetic splat parameter | +| params_flow.rb:94:1:94:48 | synthetic splat argument | params_flow.rb:94:1:94:48 | synthetic splat argument | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4786,6 +4796,8 @@ trackEnd | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:83:14:83:14 | t | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:84:10:84:10 | t | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:94:10:94:18 | call to taint | +| params_flow.rb:94:10:94:18 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:94:10:94:18 | synthetic splat argument | params_flow.rb:94:10:94:18 | synthetic splat argument | | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:2:5:2:5 | x | @@ -4797,8 +4809,6 @@ trackEnd | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:84:10:84:10 | t | | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:94:10:94:18 | call to taint | | params_flow.rb:94:16:94:17 | 38 | params_flow.rb:94:16:94:17 | 38 | -| params_flow.rb:94:21:94:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:21:94:29 | * | params_flow.rb:94:21:94:29 | * | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4806,6 +4816,8 @@ trackEnd | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:83:17:83:17 | u | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:85:10:85:10 | u | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:94:21:94:29 | call to taint | +| params_flow.rb:94:21:94:29 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:94:21:94:29 | synthetic splat argument | params_flow.rb:94:21:94:29 | synthetic splat argument | | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:2:5:2:5 | x | @@ -4818,8 +4830,6 @@ trackEnd | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:94:21:94:29 | call to taint | | params_flow.rb:94:27:94:28 | 39 | params_flow.rb:94:27:94:28 | 39 | | params_flow.rb:94:32:94:36 | * ... | params_flow.rb:94:32:94:36 | * ... | -| params_flow.rb:94:39:94:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:94:39:94:47 | * | params_flow.rb:94:39:94:47 | * | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4827,6 +4837,8 @@ trackEnd | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:83:23:83:23 | w | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:87:10:87:10 | w | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:94:39:94:47 | call to taint | +| params_flow.rb:94:39:94:47 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:94:39:94:47 | synthetic splat argument | params_flow.rb:94:39:94:47 | synthetic splat argument | | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:2:5:2:5 | x | @@ -4838,11 +4850,9 @@ trackEnd | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:87:10:87:10 | w | | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:94:39:94:47 | call to taint | | params_flow.rb:94:45:94:46 | 44 | params_flow.rb:94:45:94:46 | 44 | -| params_flow.rb:96:1:96:88 | * | params_flow.rb:69:1:76:3 | synthetic *args | -| params_flow.rb:96:1:96:88 | * | params_flow.rb:96:1:96:88 | * | | params_flow.rb:96:1:96:88 | call to splatmid | params_flow.rb:96:1:96:88 | call to splatmid | -| params_flow.rb:96:10:96:18 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:10:96:18 | * | params_flow.rb:96:10:96:18 | * | +| params_flow.rb:96:1:96:88 | synthetic splat argument | params_flow.rb:69:1:76:3 | synthetic splat parameter | +| params_flow.rb:96:1:96:88 | synthetic splat argument | params_flow.rb:96:1:96:88 | synthetic splat argument | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4850,6 +4860,8 @@ trackEnd | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:69:14:69:14 | x | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:70:10:70:10 | x | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:96:10:96:18 | call to taint | +| params_flow.rb:96:10:96:18 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:10:96:18 | synthetic splat argument | params_flow.rb:96:10:96:18 | synthetic splat argument | | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:2:5:2:5 | x | @@ -4861,8 +4873,6 @@ trackEnd | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:70:10:70:10 | x | | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:96:10:96:18 | call to taint | | params_flow.rb:96:16:96:17 | 45 | params_flow.rb:96:16:96:17 | 45 | -| params_flow.rb:96:21:96:29 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:21:96:29 | * | params_flow.rb:96:21:96:29 | * | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4870,6 +4880,8 @@ trackEnd | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:69:17:69:17 | y | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:71:10:71:10 | y | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:96:21:96:29 | call to taint | +| params_flow.rb:96:21:96:29 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:21:96:29 | synthetic splat argument | params_flow.rb:96:21:96:29 | synthetic splat argument | | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:2:5:2:5 | x | @@ -4882,59 +4894,34 @@ trackEnd | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:96:21:96:29 | call to taint | | params_flow.rb:96:27:96:28 | 46 | params_flow.rb:96:27:96:28 | 46 | | params_flow.rb:96:32:96:65 | * ... | params_flow.rb:96:32:96:65 | * ... | -| params_flow.rb:96:33:96:65 | * | params_flow.rb:96:33:96:65 | * | | params_flow.rb:96:33:96:65 | Array | params_flow.rb:96:33:96:65 | Array | | params_flow.rb:96:33:96:65 | call to [] | params_flow.rb:96:33:96:65 | call to [] | -| params_flow.rb:96:34:96:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:34:96:42 | * | params_flow.rb:96:34:96:42 | * | +| params_flow.rb:96:33:96:65 | synthetic splat argument | params_flow.rb:96:33:96:65 | call to [] | +| params_flow.rb:96:33:96:65 | synthetic splat argument | params_flow.rb:96:33:96:65 | synthetic splat argument | | params_flow.rb:96:34:96:42 | call to taint | params_flow.rb:96:34:96:42 | call to taint | +| params_flow.rb:96:34:96:42 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:34:96:42 | synthetic splat argument | params_flow.rb:96:34:96:42 | synthetic splat argument | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:34:96:42 | call to taint | | params_flow.rb:96:40:96:41 | 47 | params_flow.rb:96:40:96:41 | 47 | -| params_flow.rb:96:45:96:53 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:45:96:53 | * | params_flow.rb:96:45:96:53 | * | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:74:10:74:10 | w | | params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:45:96:53 | call to taint | +| params_flow.rb:96:45:96:53 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:45:96:53 | synthetic splat argument | params_flow.rb:96:45:96:53 | synthetic splat argument | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:51:96:52 | 48 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:45:96:53 | call to taint | | params_flow.rb:96:51:96:52 | 48 | params_flow.rb:96:51:96:52 | 48 | -| params_flow.rb:96:56:96:64 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:56:96:64 | * | params_flow.rb:96:56:96:64 | * | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:75:10:75:10 | r | | params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:56:96:64 | call to taint | +| params_flow.rb:96:56:96:64 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:56:96:64 | synthetic splat argument | params_flow.rb:96:56:96:64 | synthetic splat argument | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:96:62:96:63 | 49 | params_flow.rb:75:10:75:10 | r | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:56:96:64 | call to taint | | params_flow.rb:96:62:96:63 | 49 | params_flow.rb:96:62:96:63 | 49 | -| params_flow.rb:96:68:96:76 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:68:96:76 | * | params_flow.rb:96:68:96:76 | * | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4942,6 +4929,8 @@ trackEnd | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:69:24:69:24 | w | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:74:10:74:10 | w | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:96:68:96:76 | call to taint | +| params_flow.rb:96:68:96:76 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:68:96:76 | synthetic splat argument | params_flow.rb:96:68:96:76 | synthetic splat argument | | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:2:5:2:5 | x | @@ -4953,8 +4942,6 @@ trackEnd | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:74:10:74:10 | w | | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:96:68:96:76 | call to taint | | params_flow.rb:96:74:96:75 | 50 | params_flow.rb:96:74:96:75 | 50 | -| params_flow.rb:96:79:96:87 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:96:79:96:87 | * | params_flow.rb:96:79:96:87 | * | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -4962,6 +4949,8 @@ trackEnd | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:69:27:69:27 | r | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:75:10:75:10 | r | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:96:79:96:87 | call to taint | +| params_flow.rb:96:79:96:87 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:96:79:96:87 | synthetic splat argument | params_flow.rb:96:79:96:87 | synthetic splat argument | | params_flow.rb:96:85:96:86 | 51 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:85:96:86 | 51 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:96:85:96:86 | 51 | params_flow.rb:2:5:2:5 | x | @@ -4984,7 +4973,7 @@ trackEnd | params_flow.rb:98:1:103:3 | self in splatmidsmall | params_flow.rb:101:5:101:18 | self | | params_flow.rb:98:1:103:3 | self in splatmidsmall | params_flow.rb:102:5:102:10 | self | | params_flow.rb:98:1:103:3 | splatmidsmall | params_flow.rb:98:1:103:3 | splatmidsmall | -| params_flow.rb:98:1:103:3 | synthetic *args | params_flow.rb:98:1:103:3 | synthetic *args | +| params_flow.rb:98:1:103:3 | synthetic splat parameter | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:98:19:98:19 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:19:98:19 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:98:19:98:19 | a | params_flow.rb:6:10:6:10 | x | @@ -5004,37 +4993,35 @@ trackEnd | params_flow.rb:98:31:98:31 | b | params_flow.rb:98:31:98:31 | b | | params_flow.rb:98:31:98:31 | b | params_flow.rb:98:31:98:31 | b | | params_flow.rb:98:31:98:31 | b | params_flow.rb:102:10:102:10 | b | -| params_flow.rb:99:5:99:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:99:5:99:10 | * | params_flow.rb:99:5:99:10 | * | | params_flow.rb:99:5:99:10 | call to sink | params_flow.rb:99:5:99:10 | call to sink | -| params_flow.rb:100:5:100:18 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:100:5:100:18 | * | params_flow.rb:100:5:100:18 | * | +| params_flow.rb:99:5:99:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:99:5:99:10 | synthetic splat argument | params_flow.rb:99:5:99:10 | synthetic splat argument | | params_flow.rb:100:5:100:18 | call to sink | params_flow.rb:100:5:100:18 | call to sink | -| params_flow.rb:100:10:100:18 | * | params_flow.rb:100:10:100:18 | * | +| params_flow.rb:100:5:100:18 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:100:5:100:18 | synthetic splat argument | params_flow.rb:100:5:100:18 | synthetic splat argument | | params_flow.rb:100:10:100:18 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:100:10:100:18 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:100:10:100:18 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:100:10:100:18 | ...[...] | params_flow.rb:100:10:100:18 | ...[...] | +| params_flow.rb:100:10:100:18 | synthetic splat argument | params_flow.rb:100:10:100:18 | synthetic splat argument | | params_flow.rb:100:17:100:17 | 0 | params_flow.rb:100:17:100:17 | 0 | -| params_flow.rb:101:5:101:18 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:101:5:101:18 | * | params_flow.rb:101:5:101:18 | * | | params_flow.rb:101:5:101:18 | call to sink | params_flow.rb:101:5:101:18 | call to sink | -| params_flow.rb:101:10:101:18 | * | params_flow.rb:101:10:101:18 | * | +| params_flow.rb:101:5:101:18 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:101:5:101:18 | synthetic splat argument | params_flow.rb:101:5:101:18 | synthetic splat argument | | params_flow.rb:101:10:101:18 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:101:10:101:18 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:101:10:101:18 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:101:10:101:18 | ...[...] | params_flow.rb:101:10:101:18 | ...[...] | +| params_flow.rb:101:10:101:18 | synthetic splat argument | params_flow.rb:101:10:101:18 | synthetic splat argument | | params_flow.rb:101:17:101:17 | 1 | params_flow.rb:101:17:101:17 | 1 | -| params_flow.rb:102:5:102:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:102:5:102:10 | * | params_flow.rb:102:5:102:10 | * | | params_flow.rb:102:5:102:10 | call to sink | params_flow.rb:102:5:102:10 | call to sink | | params_flow.rb:102:5:102:10 | call to sink | params_flow.rb:105:1:105:49 | call to splatmidsmall | | params_flow.rb:102:5:102:10 | call to sink | params_flow.rb:106:1:106:46 | call to splatmidsmall | -| params_flow.rb:105:1:105:49 | * | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:105:1:105:49 | * | params_flow.rb:105:1:105:49 | * | +| params_flow.rb:102:5:102:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:102:5:102:10 | synthetic splat argument | params_flow.rb:102:5:102:10 | synthetic splat argument | | params_flow.rb:105:1:105:49 | call to splatmidsmall | params_flow.rb:105:1:105:49 | call to splatmidsmall | -| params_flow.rb:105:15:105:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:15:105:23 | * | params_flow.rb:105:15:105:23 | * | +| params_flow.rb:105:1:105:49 | synthetic splat argument | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:105:1:105:49 | synthetic splat argument | params_flow.rb:105:1:105:49 | synthetic splat argument | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -5042,6 +5029,8 @@ trackEnd | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:98:19:98:19 | a | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:99:10:99:10 | a | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:105:15:105:23 | call to taint | +| params_flow.rb:105:15:105:23 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:105:15:105:23 | synthetic splat argument | params_flow.rb:105:15:105:23 | synthetic splat argument | | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:2:5:2:5 | x | @@ -5054,42 +5043,29 @@ trackEnd | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:105:15:105:23 | call to taint | | params_flow.rb:105:21:105:22 | 52 | params_flow.rb:105:21:105:22 | 52 | | params_flow.rb:105:26:105:48 | * ... | params_flow.rb:105:26:105:48 | * ... | -| params_flow.rb:105:27:105:48 | * | params_flow.rb:105:27:105:48 | * | | params_flow.rb:105:27:105:48 | Array | params_flow.rb:105:27:105:48 | Array | | params_flow.rb:105:27:105:48 | call to [] | params_flow.rb:105:27:105:48 | call to [] | -| params_flow.rb:105:28:105:36 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:28:105:36 | * | params_flow.rb:105:28:105:36 | * | +| params_flow.rb:105:27:105:48 | synthetic splat argument | params_flow.rb:105:27:105:48 | call to [] | +| params_flow.rb:105:27:105:48 | synthetic splat argument | params_flow.rb:105:27:105:48 | synthetic splat argument | | params_flow.rb:105:28:105:36 | call to taint | params_flow.rb:105:28:105:36 | call to taint | +| params_flow.rb:105:28:105:36 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:105:28:105:36 | synthetic splat argument | params_flow.rb:105:28:105:36 | synthetic splat argument | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:28:105:36 | call to taint | | params_flow.rb:105:34:105:35 | 53 | params_flow.rb:105:34:105:35 | 53 | -| params_flow.rb:105:39:105:47 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:105:39:105:47 | * | params_flow.rb:105:39:105:47 | * | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:102:10:102:10 | b | | params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:39:105:47 | call to taint | +| params_flow.rb:105:39:105:47 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:105:39:105:47 | synthetic splat argument | params_flow.rb:105:39:105:47 | synthetic splat argument | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:2:5:2:5 | x | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:5:10:5:10 | x | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:6:10:6:10 | x | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:105:45:105:46 | 54 | params_flow.rb:102:10:102:10 | b | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:39:105:47 | call to taint | | params_flow.rb:105:45:105:46 | 54 | params_flow.rb:105:45:105:46 | 54 | -| params_flow.rb:106:1:106:46 | * | params_flow.rb:98:1:103:3 | synthetic *args | -| params_flow.rb:106:1:106:46 | * | params_flow.rb:106:1:106:46 | * | | params_flow.rb:106:1:106:46 | call to splatmidsmall | params_flow.rb:106:1:106:46 | call to splatmidsmall | -| params_flow.rb:106:15:106:23 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:15:106:23 | * | params_flow.rb:106:15:106:23 | * | +| params_flow.rb:106:1:106:46 | synthetic splat argument | params_flow.rb:98:1:103:3 | synthetic splat parameter | +| params_flow.rb:106:1:106:46 | synthetic splat argument | params_flow.rb:106:1:106:46 | synthetic splat argument | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -5097,6 +5073,8 @@ trackEnd | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:98:19:98:19 | a | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:99:10:99:10 | a | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:106:15:106:23 | call to taint | +| params_flow.rb:106:15:106:23 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:106:15:106:23 | synthetic splat argument | params_flow.rb:106:15:106:23 | synthetic splat argument | | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:2:5:2:5 | x | @@ -5108,16 +5086,14 @@ trackEnd | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:99:10:99:10 | a | | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:106:15:106:23 | call to taint | | params_flow.rb:106:21:106:22 | 55 | params_flow.rb:106:21:106:22 | 55 | -| params_flow.rb:106:26:106:34 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:26:106:34 | * | params_flow.rb:106:26:106:34 | * | | params_flow.rb:106:26:106:34 | call to taint | params_flow.rb:106:26:106:34 | call to taint | +| params_flow.rb:106:26:106:34 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:106:26:106:34 | synthetic splat argument | params_flow.rb:106:26:106:34 | synthetic splat argument | | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:106:26:106:34 | call to taint | | params_flow.rb:106:32:106:33 | 56 | params_flow.rb:106:32:106:33 | 56 | -| params_flow.rb:106:37:106:45 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:106:37:106:45 | * | params_flow.rb:106:37:106:45 | * | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -5125,6 +5101,8 @@ trackEnd | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:98:31:98:31 | b | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:102:10:102:10 | b | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:106:37:106:45 | call to taint | +| params_flow.rb:106:37:106:45 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:106:37:106:45 | synthetic splat argument | params_flow.rb:106:37:106:45 | synthetic splat argument | | params_flow.rb:106:43:106:44 | 57 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:43:106:44 | 57 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:106:43:106:44 | 57 | params_flow.rb:2:5:2:5 | x | @@ -5137,7 +5115,6 @@ trackEnd | params_flow.rb:106:43:106:44 | 57 | params_flow.rb:106:37:106:45 | call to taint | | params_flow.rb:106:43:106:44 | 57 | params_flow.rb:106:43:106:44 | 57 | | params_flow.rb:108:1:112:3 | &block | params_flow.rb:108:1:112:3 | &block | -| params_flow.rb:108:1:112:3 | **kwargs | params_flow.rb:108:1:112:3 | **kwargs | | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | params_flow.rb:5:1:7:3 | self (sink) | | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | params_flow.rb:5:1:7:3 | self in sink | | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | params_flow.rb:6:5:6:10 | self | @@ -5147,7 +5124,8 @@ trackEnd | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | params_flow.rb:110:5:110:13 | self | | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | params_flow.rb:111:5:111:10 | self | | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | params_flow.rb:108:1:112:3 | splat_followed_by_keyword_param | -| params_flow.rb:108:1:112:3 | synthetic *args | params_flow.rb:108:1:112:3 | synthetic *args | +| params_flow.rb:108:1:112:3 | synthetic hash-splat parameter | params_flow.rb:108:1:112:3 | synthetic hash-splat parameter | +| params_flow.rb:108:1:112:3 | synthetic splat parameter | params_flow.rb:108:1:112:3 | synthetic splat parameter | | params_flow.rb:108:37:108:37 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:37:108:37 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:108:37:108:37 | a | params_flow.rb:6:10:6:10 | x | @@ -5166,37 +5144,36 @@ trackEnd | params_flow.rb:108:44:108:44 | c | params_flow.rb:108:44:108:44 | c | | params_flow.rb:108:44:108:44 | c | params_flow.rb:108:44:108:44 | c | | params_flow.rb:108:44:108:44 | c | params_flow.rb:111:10:111:10 | c | -| params_flow.rb:109:5:109:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:109:5:109:10 | * | params_flow.rb:109:5:109:10 | * | | params_flow.rb:109:5:109:10 | call to sink | params_flow.rb:109:5:109:10 | call to sink | -| params_flow.rb:110:5:110:13 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:110:5:110:13 | * | params_flow.rb:110:5:110:13 | * | +| params_flow.rb:109:5:109:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:109:5:109:10 | synthetic splat argument | params_flow.rb:109:5:109:10 | synthetic splat argument | | params_flow.rb:110:5:110:13 | call to sink | params_flow.rb:110:5:110:13 | call to sink | -| params_flow.rb:110:10:110:13 | * | params_flow.rb:110:10:110:13 | * | +| params_flow.rb:110:5:110:13 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:110:5:110:13 | synthetic splat argument | params_flow.rb:110:5:110:13 | synthetic splat argument | | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:110:10:110:13 | ...[...] | +| params_flow.rb:110:10:110:13 | synthetic splat argument | params_flow.rb:110:10:110:13 | synthetic splat argument | | params_flow.rb:110:12:110:12 | 0 | params_flow.rb:110:12:110:12 | 0 | -| params_flow.rb:111:5:111:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:111:5:111:10 | * | params_flow.rb:111:5:111:10 | * | | params_flow.rb:111:5:111:10 | call to sink | params_flow.rb:111:5:111:10 | call to sink | | params_flow.rb:111:5:111:10 | call to sink | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | -| params_flow.rb:114:1:114:67 | * | params_flow.rb:108:1:112:3 | synthetic *args | -| params_flow.rb:114:1:114:67 | * | params_flow.rb:114:1:114:67 | * | -| params_flow.rb:114:1:114:67 | ** | params_flow.rb:108:1:112:3 | **kwargs | -| params_flow.rb:114:1:114:67 | ** | params_flow.rb:114:1:114:67 | ** | +| params_flow.rb:111:5:111:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:111:5:111:10 | synthetic splat argument | params_flow.rb:111:5:111:10 | synthetic splat argument | | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | params_flow.rb:114:1:114:67 | call to splat_followed_by_keyword_param | -| params_flow.rb:114:33:114:41 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:33:114:41 | * | params_flow.rb:114:33:114:41 | * | +| params_flow.rb:114:1:114:67 | synthetic hash-splat argument | params_flow.rb:108:1:112:3 | synthetic hash-splat parameter | +| params_flow.rb:114:1:114:67 | synthetic hash-splat argument | params_flow.rb:114:1:114:67 | synthetic hash-splat argument | +| params_flow.rb:114:1:114:67 | synthetic splat argument | params_flow.rb:108:1:112:3 | synthetic splat parameter | +| params_flow.rb:114:1:114:67 | synthetic splat argument | params_flow.rb:114:1:114:67 | synthetic splat argument | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:108:37:108:37 | a | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:108:37:108:37 | a | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:109:10:109:10 | a | -| params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:114:33:114:41 | call to taint | +| params_flow.rb:114:33:114:41 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:114:33:114:41 | synthetic splat argument | params_flow.rb:114:33:114:41 | synthetic splat argument | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:2:5:2:5 | x | @@ -5206,21 +5183,26 @@ trackEnd | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:108:37:108:37 | a | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:108:37:108:37 | a | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:109:10:109:10 | a | -| params_flow.rb:114:39:114:40 | 58 | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:114:33:114:41 | call to taint | | params_flow.rb:114:39:114:40 | 58 | params_flow.rb:114:39:114:40 | 58 | -| params_flow.rb:114:44:114:52 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:44:114:52 | * | params_flow.rb:114:44:114:52 | * | +| params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:114:44:114:52 | call to taint | +| params_flow.rb:114:44:114:52 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:114:44:114:52 | synthetic splat argument | params_flow.rb:114:44:114:52 | synthetic splat argument | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:114:50:114:51 | 59 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:114:50:114:51 | 59 | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:114:50:114:51 | 59 | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:114:50:114:51 | 59 | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:114:44:114:52 | call to taint | | params_flow.rb:114:50:114:51 | 59 | params_flow.rb:114:50:114:51 | 59 | | params_flow.rb:114:55:114:55 | :c | params_flow.rb:114:55:114:55 | :c | | params_flow.rb:114:55:114:66 | Pair | params_flow.rb:114:55:114:66 | Pair | -| params_flow.rb:114:58:114:66 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:114:58:114:66 | * | params_flow.rb:114:58:114:66 | * | | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -5228,6 +5210,8 @@ trackEnd | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:108:44:108:44 | c | | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:111:10:111:10 | c | | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:114:58:114:66 | call to taint | +| params_flow.rb:114:58:114:66 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:114:58:114:66 | synthetic splat argument | params_flow.rb:114:58:114:66 | synthetic splat argument | | params_flow.rb:114:64:114:65 | 60 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:64:114:65 | 60 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:114:64:114:65 | 60 | params_flow.rb:2:5:2:5 | x | @@ -5260,11 +5244,9 @@ trackEnd | params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:10:10:10:11 | p1 | | params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:117:1:117:1 | [post] x | params_flow.rb:118:13:118:13 | x | -| params_flow.rb:117:1:117:15 | * | params_flow.rb:117:1:117:15 | * | | params_flow.rb:117:1:117:15 | call to []= | params_flow.rb:117:1:117:15 | call to []= | +| params_flow.rb:117:1:117:15 | synthetic splat argument | params_flow.rb:117:1:117:15 | synthetic splat argument | | params_flow.rb:117:3:117:14 | call to some_index | params_flow.rb:117:3:117:14 | call to some_index | -| params_flow.rb:117:19:117:27 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:117:19:117:27 | * | params_flow.rb:117:19:117:27 | * | | params_flow.rb:117:19:117:27 | __synth__0 | params_flow.rb:117:19:117:27 | __synth__0 | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:5:10:5:10 | x | @@ -5280,6 +5262,8 @@ trackEnd | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:19:117:27 | ... = ... | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:19:117:27 | __synth__0 | | params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:19:117:27 | call to taint | +| params_flow.rb:117:19:117:27 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:117:19:117:27 | synthetic splat argument | params_flow.rb:117:19:117:27 | synthetic splat argument | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:2:5:2:5 | x | @@ -5299,7 +5283,7 @@ trackEnd | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:19:117:27 | call to taint | | params_flow.rb:117:25:117:26 | 61 | params_flow.rb:117:25:117:26 | 61 | | params_flow.rb:118:1:118:14 | call to positional | params_flow.rb:118:1:118:14 | call to positional | -| params_flow.rb:118:12:118:13 | * ... | params_flow.rb:9:1:12:3 | synthetic *args | +| params_flow.rb:118:12:118:13 | * ... | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:118:12:118:13 | * ... | params_flow.rb:118:12:118:13 | * ... | | params_flow.rb:120:1:126:3 | &block | params_flow.rb:120:1:126:3 | &block | | params_flow.rb:120:1:126:3 | destruct | params_flow.rb:120:1:126:3 | destruct | @@ -5318,88 +5302,90 @@ trackEnd | params_flow.rb:120:22:120:22 | c | params_flow.rb:120:22:120:22 | c | | params_flow.rb:120:25:120:25 | d | params_flow.rb:120:25:120:25 | d | | params_flow.rb:120:27:120:27 | e | params_flow.rb:120:27:120:27 | e | -| params_flow.rb:121:5:121:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:121:5:121:10 | * | params_flow.rb:121:5:121:10 | * | | params_flow.rb:121:5:121:10 | call to sink | params_flow.rb:121:5:121:10 | call to sink | +| params_flow.rb:121:5:121:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:121:5:121:10 | synthetic splat argument | params_flow.rb:121:5:121:10 | synthetic splat argument | | params_flow.rb:121:10:121:10 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:121:10:121:10 | a | params_flow.rb:5:10:5:10 | x | | params_flow.rb:121:10:121:10 | a | params_flow.rb:6:10:6:10 | x | | params_flow.rb:121:10:121:10 | a | params_flow.rb:121:10:121:10 | a | -| params_flow.rb:122:5:122:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:122:5:122:10 | * | params_flow.rb:122:5:122:10 | * | | params_flow.rb:122:5:122:10 | call to sink | params_flow.rb:122:5:122:10 | call to sink | +| params_flow.rb:122:5:122:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:122:5:122:10 | synthetic splat argument | params_flow.rb:122:5:122:10 | synthetic splat argument | | params_flow.rb:122:10:122:10 | b | params_flow.rb:5:10:5:10 | x | | params_flow.rb:122:10:122:10 | b | params_flow.rb:5:10:5:10 | x | | params_flow.rb:122:10:122:10 | b | params_flow.rb:6:10:6:10 | x | | params_flow.rb:122:10:122:10 | b | params_flow.rb:122:10:122:10 | b | -| params_flow.rb:123:5:123:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:123:5:123:10 | * | params_flow.rb:123:5:123:10 | * | | params_flow.rb:123:5:123:10 | call to sink | params_flow.rb:123:5:123:10 | call to sink | +| params_flow.rb:123:5:123:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:123:5:123:10 | synthetic splat argument | params_flow.rb:123:5:123:10 | synthetic splat argument | | params_flow.rb:123:10:123:10 | c | params_flow.rb:5:10:5:10 | x | | params_flow.rb:123:10:123:10 | c | params_flow.rb:5:10:5:10 | x | | params_flow.rb:123:10:123:10 | c | params_flow.rb:6:10:6:10 | x | | params_flow.rb:123:10:123:10 | c | params_flow.rb:123:10:123:10 | c | -| params_flow.rb:124:5:124:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:124:5:124:10 | * | params_flow.rb:124:5:124:10 | * | | params_flow.rb:124:5:124:10 | call to sink | params_flow.rb:124:5:124:10 | call to sink | +| params_flow.rb:124:5:124:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:124:5:124:10 | synthetic splat argument | params_flow.rb:124:5:124:10 | synthetic splat argument | | params_flow.rb:124:10:124:10 | d | params_flow.rb:5:10:5:10 | x | | params_flow.rb:124:10:124:10 | d | params_flow.rb:5:10:5:10 | x | | params_flow.rb:124:10:124:10 | d | params_flow.rb:6:10:6:10 | x | | params_flow.rb:124:10:124:10 | d | params_flow.rb:124:10:124:10 | d | -| params_flow.rb:125:5:125:10 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:125:5:125:10 | * | params_flow.rb:125:5:125:10 | * | | params_flow.rb:125:5:125:10 | call to sink | params_flow.rb:125:5:125:10 | call to sink | | params_flow.rb:125:5:125:10 | call to sink | params_flow.rb:128:1:128:61 | call to destruct | +| params_flow.rb:125:5:125:10 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:125:5:125:10 | synthetic splat argument | params_flow.rb:125:5:125:10 | synthetic splat argument | | params_flow.rb:125:10:125:10 | e | params_flow.rb:5:10:5:10 | x | | params_flow.rb:125:10:125:10 | e | params_flow.rb:5:10:5:10 | x | | params_flow.rb:125:10:125:10 | e | params_flow.rb:6:10:6:10 | x | | params_flow.rb:125:10:125:10 | e | params_flow.rb:125:10:125:10 | e | -| params_flow.rb:128:1:128:61 | * | params_flow.rb:128:1:128:61 | * | | params_flow.rb:128:1:128:61 | call to destruct | params_flow.rb:128:1:128:61 | call to destruct | -| params_flow.rb:128:10:128:31 | * | params_flow.rb:128:10:128:31 | * | +| params_flow.rb:128:1:128:61 | synthetic splat argument | params_flow.rb:128:1:128:61 | synthetic splat argument | | params_flow.rb:128:10:128:31 | Array | params_flow.rb:128:10:128:31 | Array | | params_flow.rb:128:10:128:31 | call to [] | params_flow.rb:128:10:128:31 | call to [] | -| params_flow.rb:128:11:128:19 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:11:128:19 | * | params_flow.rb:128:11:128:19 | * | +| params_flow.rb:128:10:128:31 | synthetic splat argument | params_flow.rb:128:10:128:31 | call to [] | +| params_flow.rb:128:10:128:31 | synthetic splat argument | params_flow.rb:128:10:128:31 | synthetic splat argument | | params_flow.rb:128:11:128:19 | call to taint | params_flow.rb:128:11:128:19 | call to taint | +| params_flow.rb:128:11:128:19 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:128:11:128:19 | synthetic splat argument | params_flow.rb:128:11:128:19 | synthetic splat argument | | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:128:11:128:19 | call to taint | | params_flow.rb:128:17:128:18 | 62 | params_flow.rb:128:17:128:18 | 62 | -| params_flow.rb:128:22:128:30 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:22:128:30 | * | params_flow.rb:128:22:128:30 | * | | params_flow.rb:128:22:128:30 | call to taint | params_flow.rb:128:22:128:30 | call to taint | +| params_flow.rb:128:22:128:30 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:128:22:128:30 | synthetic splat argument | params_flow.rb:128:22:128:30 | synthetic splat argument | | params_flow.rb:128:28:128:29 | 63 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:28:128:29 | 63 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:28:128:29 | 63 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:128:28:128:29 | 63 | params_flow.rb:128:22:128:30 | call to taint | | params_flow.rb:128:28:128:29 | 63 | params_flow.rb:128:28:128:29 | 63 | -| params_flow.rb:128:34:128:60 | * | params_flow.rb:128:34:128:60 | * | | params_flow.rb:128:34:128:60 | Array | params_flow.rb:128:34:128:60 | Array | | params_flow.rb:128:34:128:60 | call to [] | params_flow.rb:128:34:128:60 | call to [] | -| params_flow.rb:128:35:128:43 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:35:128:43 | * | params_flow.rb:128:35:128:43 | * | +| params_flow.rb:128:34:128:60 | synthetic splat argument | params_flow.rb:128:34:128:60 | call to [] | +| params_flow.rb:128:34:128:60 | synthetic splat argument | params_flow.rb:128:34:128:60 | synthetic splat argument | | params_flow.rb:128:35:128:43 | call to taint | params_flow.rb:128:35:128:43 | call to taint | +| params_flow.rb:128:35:128:43 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:128:35:128:43 | synthetic splat argument | params_flow.rb:128:35:128:43 | synthetic splat argument | | params_flow.rb:128:41:128:42 | 64 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:41:128:42 | 64 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:41:128:42 | 64 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:128:41:128:42 | 64 | params_flow.rb:128:35:128:43 | call to taint | | params_flow.rb:128:41:128:42 | 64 | params_flow.rb:128:41:128:42 | 64 | -| params_flow.rb:128:46:128:59 | * | params_flow.rb:128:46:128:59 | * | | params_flow.rb:128:46:128:59 | Array | params_flow.rb:128:46:128:59 | Array | | params_flow.rb:128:46:128:59 | call to [] | params_flow.rb:128:46:128:59 | call to [] | +| params_flow.rb:128:46:128:59 | synthetic splat argument | params_flow.rb:128:46:128:59 | call to [] | +| params_flow.rb:128:46:128:59 | synthetic splat argument | params_flow.rb:128:46:128:59 | synthetic splat argument | | params_flow.rb:128:47:128:47 | 0 | params_flow.rb:128:47:128:47 | 0 | -| params_flow.rb:128:50:128:58 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:128:50:128:58 | * | params_flow.rb:128:50:128:58 | * | | params_flow.rb:128:50:128:58 | call to taint | params_flow.rb:128:50:128:58 | call to taint | +| params_flow.rb:128:50:128:58 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:128:50:128:58 | synthetic splat argument | params_flow.rb:128:50:128:58 | synthetic splat argument | | params_flow.rb:128:56:128:57 | 65 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:56:128:57 | 65 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:128:56:128:57 | 65 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:128:56:128:57 | 65 | params_flow.rb:128:50:128:58 | call to taint | | params_flow.rb:128:56:128:57 | 65 | params_flow.rb:128:56:128:57 | 65 | | params_flow.rb:130:1:130:4 | args | params_flow.rb:130:1:130:4 | args | -| params_flow.rb:130:8:130:29 | * | params_flow.rb:130:8:130:29 | * | | params_flow.rb:130:8:130:29 | Array | params_flow.rb:130:8:130:29 | Array | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:5:10:5:10 | x | @@ -5411,8 +5397,17 @@ trackEnd | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:130:1:130:29 | ... = ... | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:130:8:130:29 | call to [] | | params_flow.rb:130:8:130:29 | call to [] | params_flow.rb:131:11:131:14 | args | -| params_flow.rb:130:9:130:17 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:9:130:17 | * | params_flow.rb:130:9:130:17 | * | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:83:14:83:14 | t | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:84:10:84:10 | t | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:130:1:130:4 | args | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:130:1:130:29 | ... = ... | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:130:8:130:29 | call to [] | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:130:8:130:29 | synthetic splat argument | +| params_flow.rb:130:8:130:29 | synthetic splat argument | params_flow.rb:131:11:131:14 | args | | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -5420,6 +5415,8 @@ trackEnd | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:83:14:83:14 | t | | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:84:10:84:10 | t | | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:130:9:130:17 | call to taint | +| params_flow.rb:130:9:130:17 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:130:9:130:17 | synthetic splat argument | params_flow.rb:130:9:130:17 | synthetic splat argument | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:2:5:2:5 | x | @@ -5431,8 +5428,6 @@ trackEnd | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:84:10:84:10 | t | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:130:9:130:17 | call to taint | | params_flow.rb:130:15:130:16 | 66 | params_flow.rb:130:15:130:16 | 66 | -| params_flow.rb:130:20:130:28 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:130:20:130:28 | * | params_flow.rb:130:20:130:28 | * | | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -5440,6 +5435,8 @@ trackEnd | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:83:17:83:17 | u | | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:85:10:85:10 | u | | params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:130:20:130:28 | call to taint | +| params_flow.rb:130:20:130:28 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:130:20:130:28 | synthetic splat argument | params_flow.rb:130:20:130:28 | synthetic splat argument | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:2:5:2:5 | x | @@ -5451,13 +5448,9 @@ trackEnd | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:85:10:85:10 | u | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:130:20:130:28 | call to taint | | params_flow.rb:130:26:130:27 | 67 | params_flow.rb:130:26:130:27 | 67 | -| params_flow.rb:131:1:131:46 | * | params_flow.rb:83:1:91:3 | synthetic *args | -| params_flow.rb:131:1:131:46 | * | params_flow.rb:131:1:131:46 | * | | params_flow.rb:131:1:131:46 | call to pos_many | params_flow.rb:131:1:131:46 | call to pos_many | -| params_flow.rb:131:10:131:14 | * ... | params_flow.rb:83:1:91:3 | synthetic *args | +| params_flow.rb:131:10:131:14 | * ... | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:131:10:131:14 | * ... | params_flow.rb:131:10:131:14 | * ... | -| params_flow.rb:131:17:131:25 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:131:17:131:25 | * | params_flow.rb:131:17:131:25 | * | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:6:10:6:10 | x | @@ -5465,6 +5458,8 @@ trackEnd | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:83:17:83:17 | u | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:85:10:85:10 | u | | params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:131:17:131:25 | call to taint | +| params_flow.rb:131:17:131:25 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:131:17:131:25 | synthetic splat argument | params_flow.rb:131:17:131:25 | synthetic splat argument | | params_flow.rb:131:23:131:24 | 68 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:131:23:131:24 | 68 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:131:23:131:24 | 68 | params_flow.rb:2:5:2:5 | x | @@ -5516,39 +5511,40 @@ trackEnd | params_flow.rb:133:14:133:18 | *args | params_flow.rb:133:15:133:18 | args | | params_flow.rb:133:14:133:18 | *args | params_flow.rb:134:10:134:13 | args | | params_flow.rb:133:15:133:18 | args | params_flow.rb:133:15:133:18 | args | -| params_flow.rb:134:5:134:16 | * | params_flow.rb:5:1:7:3 | synthetic *args | -| params_flow.rb:134:5:134:16 | * | params_flow.rb:134:5:134:16 | * | | params_flow.rb:134:5:134:16 | call to sink | params_flow.rb:134:5:134:16 | call to sink | | params_flow.rb:134:5:134:16 | call to sink | params_flow.rb:137:1:137:44 | call to splatall | -| params_flow.rb:134:10:134:16 | * | params_flow.rb:134:10:134:16 | * | +| params_flow.rb:134:5:134:16 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:134:5:134:16 | synthetic splat argument | params_flow.rb:134:5:134:16 | synthetic splat argument | | params_flow.rb:134:10:134:16 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:134:10:134:16 | ...[...] | params_flow.rb:5:10:5:10 | x | | params_flow.rb:134:10:134:16 | ...[...] | params_flow.rb:6:10:6:10 | x | | params_flow.rb:134:10:134:16 | ...[...] | params_flow.rb:134:10:134:16 | ...[...] | +| params_flow.rb:134:10:134:16 | synthetic splat argument | params_flow.rb:134:10:134:16 | synthetic splat argument | | params_flow.rb:134:15:134:15 | 1 | params_flow.rb:134:15:134:15 | 1 | | params_flow.rb:137:1:137:44 | call to splatall | params_flow.rb:137:1:137:44 | call to splatall | | params_flow.rb:137:10:137:43 | * ... | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:137:10:137:43 | * ... | params_flow.rb:133:15:133:18 | args | | params_flow.rb:137:10:137:43 | * ... | params_flow.rb:134:10:134:13 | args | | params_flow.rb:137:10:137:43 | * ... | params_flow.rb:137:10:137:43 | * ... | -| params_flow.rb:137:11:137:43 | * | params_flow.rb:137:11:137:43 | * | | params_flow.rb:137:11:137:43 | Array | params_flow.rb:137:11:137:43 | Array | | params_flow.rb:137:11:137:43 | call to [] | params_flow.rb:137:11:137:43 | call to [] | -| params_flow.rb:137:12:137:20 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:12:137:20 | * | params_flow.rb:137:12:137:20 | * | +| params_flow.rb:137:11:137:43 | synthetic splat argument | params_flow.rb:137:11:137:43 | call to [] | +| params_flow.rb:137:11:137:43 | synthetic splat argument | params_flow.rb:137:11:137:43 | synthetic splat argument | | params_flow.rb:137:12:137:20 | call to taint | params_flow.rb:137:12:137:20 | call to taint | +| params_flow.rb:137:12:137:20 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:137:12:137:20 | synthetic splat argument | params_flow.rb:137:12:137:20 | synthetic splat argument | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:137:18:137:19 | 69 | params_flow.rb:137:18:137:19 | 69 | -| params_flow.rb:137:23:137:31 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:23:137:31 | * | params_flow.rb:137:23:137:31 | * | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:5:10:5:10 | x | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:6:10:6:10 | x | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:134:10:134:16 | ...[...] | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:23:137:31 | call to taint | +| params_flow.rb:137:23:137:31 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:137:23:137:31 | synthetic splat argument | params_flow.rb:137:23:137:31 | synthetic splat argument | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:2:5:2:5 | x | @@ -5558,9 +5554,9 @@ trackEnd | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:134:10:134:16 | ...[...] | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:137:29:137:30 | 70 | params_flow.rb:137:29:137:30 | 70 | -| params_flow.rb:137:34:137:42 | * | params_flow.rb:1:1:3:3 | synthetic *args | -| params_flow.rb:137:34:137:42 | * | params_flow.rb:137:34:137:42 | * | | params_flow.rb:137:34:137:42 | call to taint | params_flow.rb:137:34:137:42 | call to taint | +| params_flow.rb:137:34:137:42 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:137:34:137:42 | synthetic splat argument | params_flow.rb:137:34:137:42 | synthetic splat argument | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:1:11:1:11 | x | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:2:5:2:5 | x | diff --git a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected index fddb517eee9..07a3bc07697 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected @@ -15,13 +15,17 @@ edges | params_flow.rb:25:12:25:13 | p1 | params_flow.rb:26:10:26:11 | p1 | | params_flow.rb:25:17:25:24 | **kwargs [element :p2] | params_flow.rb:28:11:28:16 | kwargs [element :p2] | | params_flow.rb:25:17:25:24 | **kwargs [element :p3] | params_flow.rb:29:11:29:16 | kwargs [element :p3] | +| params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p2] | params_flow.rb:28:11:28:16 | kwargs [hash-splat position :p2] | +| params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p3] | params_flow.rb:29:11:29:16 | kwargs [hash-splat position :p3] | | params_flow.rb:28:11:28:16 | kwargs [element :p2] | params_flow.rb:28:11:28:21 | ...[...] | +| params_flow.rb:28:11:28:16 | kwargs [hash-splat position :p2] | params_flow.rb:28:11:28:21 | ...[...] | | params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:28:10:28:22 | ( ... ) | | params_flow.rb:29:11:29:16 | kwargs [element :p3] | params_flow.rb:29:11:29:21 | ...[...] | +| params_flow.rb:29:11:29:16 | kwargs [hash-splat position :p3] | params_flow.rb:29:11:29:21 | ...[...] | | params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:29:10:29:22 | ( ... ) | | params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:25:12:25:13 | p1 | -| params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:25:17:25:24 | **kwargs [element :p2] | -| params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:25:17:25:24 | **kwargs [element :p3] | +| params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p2] | +| params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p3] | | params_flow.rb:34:1:34:4 | args [element :p3] | params_flow.rb:35:25:35:28 | args [element :p3] | | params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:34:1:34:4 | args [element :p3] | | params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:25:12:25:13 | p1 | @@ -42,9 +46,8 @@ edges | params_flow.rb:41:26:41:29 | args [element :p1] | params_flow.rb:41:24:41:29 | ** ... [element :p1] | | params_flow.rb:43:1:43:4 | args [element 0] | params_flow.rb:44:24:44:27 | args [element 0] | | params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:43:1:43:4 | args [element 0] | -| params_flow.rb:44:1:44:28 | *[1] | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:44:23:44:27 | * ... [element 0] | params_flow.rb:44:1:44:28 | *[1] | +| params_flow.rb:44:23:44:27 | * ... [element 0] | params_flow.rb:9:20:9:21 | p2 | | params_flow.rb:44:24:44:27 | args [element 0] | params_flow.rb:44:23:44:27 | * ... [element 0] | | params_flow.rb:46:1:46:4 | args [element 0] | params_flow.rb:47:13:47:16 | args [element 0] | | params_flow.rb:46:1:46:4 | args [element 1] | params_flow.rb:47:13:47:16 | args [element 1] | @@ -56,16 +59,17 @@ edges | params_flow.rb:47:13:47:16 | args [element 1] | params_flow.rb:47:12:47:16 | * ... [element 1] | | params_flow.rb:49:13:49:14 | p1 | params_flow.rb:50:10:50:11 | p1 | | params_flow.rb:49:17:49:24 | *posargs [element 0] | params_flow.rb:51:11:51:17 | posargs [element 0] | +| params_flow.rb:49:17:49:24 | *posargs [element 0] | params_flow.rb:51:11:51:17 | posargs [element 0] | +| params_flow.rb:51:11:51:17 | posargs [element 0] | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:51:11:51:17 | posargs [element 0] | params_flow.rb:51:11:51:20 | ...[...] | | params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:51:10:51:21 | ( ... ) | | params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:49:17:49:24 | *posargs [element 0] | | params_flow.rb:57:1:57:4 | args [element 0] | params_flow.rb:58:21:58:24 | args [element 0] | | params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:57:1:57:4 | args [element 0] | -| params_flow.rb:58:1:58:25 | *[1] | params_flow.rb:49:17:49:24 | *posargs [element 0] | | params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | | params_flow.rb:58:20:58:24 | * ... [element 0] | params_flow.rb:49:17:49:24 | *posargs [element 0] | -| params_flow.rb:58:20:58:24 | * ... [element 0] | params_flow.rb:58:1:58:25 | *[1] | +| params_flow.rb:58:20:58:24 | * ... [element 0] | params_flow.rb:49:17:49:24 | *posargs [element 0] | | params_flow.rb:58:21:58:24 | args [element 0] | params_flow.rb:58:20:58:24 | * ... [element 0] | | params_flow.rb:60:1:60:4 | args [element 0] | params_flow.rb:61:10:61:13 | args [element 0] | | params_flow.rb:60:1:60:4 | args [element 1] | params_flow.rb:61:10:61:13 | args [element 1] | @@ -90,21 +94,10 @@ edges | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:69:24:69:24 | w | | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:69:27:69:27 | r | | params_flow.rb:80:1:80:4 | args [element 0] | params_flow.rb:81:22:81:25 | args [element 0] | -| params_flow.rb:80:1:80:4 | args [element 2] | params_flow.rb:81:22:81:25 | args [element 2] | -| params_flow.rb:80:1:80:4 | args [element 3] | params_flow.rb:81:22:81:25 | args [element 3] | | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:80:1:80:4 | args [element 0] | -| params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:80:1:80:4 | args [element 2] | -| params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:80:1:80:4 | args [element 3] | -| params_flow.rb:81:1:81:37 | *[1] | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:81:1:81:37 | *[3] | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:81:1:81:37 | *[4] | params_flow.rb:69:27:69:27 | r | | params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:81:21:81:25 | * ... [element 0] | params_flow.rb:81:1:81:37 | *[1] | -| params_flow.rb:81:21:81:25 | * ... [element 2] | params_flow.rb:81:1:81:37 | *[3] | -| params_flow.rb:81:21:81:25 | * ... [element 3] | params_flow.rb:81:1:81:37 | *[4] | +| params_flow.rb:81:21:81:25 | * ... [element 0] | params_flow.rb:69:17:69:17 | y | | params_flow.rb:81:22:81:25 | args [element 0] | params_flow.rb:81:21:81:25 | * ... [element 0] | -| params_flow.rb:81:22:81:25 | args [element 2] | params_flow.rb:81:21:81:25 | * ... [element 2] | -| params_flow.rb:81:22:81:25 | args [element 3] | params_flow.rb:81:21:81:25 | * ... [element 3] | | params_flow.rb:83:14:83:14 | t | params_flow.rb:84:10:84:10 | t | | params_flow.rb:83:17:83:17 | u | params_flow.rb:85:10:85:10 | u | | params_flow.rb:83:20:83:20 | v | params_flow.rb:86:10:86:10 | v | @@ -119,37 +112,24 @@ edges | params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:93:1:93:4 | args [element 1] | | params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:93:1:93:4 | args [element 2] | | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:93:1:93:4 | args [element 3] | -| params_flow.rb:94:1:94:48 | *[2] | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:94:1:94:48 | *[3] | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:94:1:94:48 | *[4] | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:94:1:94:48 | *[5] | params_flow.rb:83:29:83:29 | y | | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:83:14:83:14 | t | | params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:94:32:94:36 | * ... [element 0] | params_flow.rb:94:1:94:48 | *[2] | -| params_flow.rb:94:32:94:36 | * ... [element 1] | params_flow.rb:94:1:94:48 | *[3] | -| params_flow.rb:94:32:94:36 | * ... [element 2] | params_flow.rb:94:1:94:48 | *[4] | -| params_flow.rb:94:32:94:36 | * ... [element 3] | params_flow.rb:94:1:94:48 | *[5] | +| params_flow.rb:94:32:94:36 | * ... [element 0] | params_flow.rb:83:20:83:20 | v | +| params_flow.rb:94:32:94:36 | * ... [element 1] | params_flow.rb:83:23:83:23 | w | +| params_flow.rb:94:32:94:36 | * ... [element 2] | params_flow.rb:83:26:83:26 | x | +| params_flow.rb:94:32:94:36 | * ... [element 3] | params_flow.rb:83:29:83:29 | y | | params_flow.rb:94:33:94:36 | args [element 0] | params_flow.rb:94:32:94:36 | * ... [element 0] | | params_flow.rb:94:33:94:36 | args [element 1] | params_flow.rb:94:32:94:36 | * ... [element 1] | | params_flow.rb:94:33:94:36 | args [element 2] | params_flow.rb:94:32:94:36 | * ... [element 2] | | params_flow.rb:94:33:94:36 | args [element 3] | params_flow.rb:94:32:94:36 | * ... [element 3] | | params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:96:1:96:88 | *[3] | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:1:96:88 | *[4] | params_flow.rb:69:27:69:27 | r | | params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:69:14:69:14 | x | | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:96:32:96:65 | * ... [element 1] | params_flow.rb:96:1:96:88 | *[3] | -| params_flow.rb:96:32:96:65 | * ... [element 2] | params_flow.rb:96:1:96:88 | *[4] | -| params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:96:32:96:65 | * ... [element 1] | -| params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:96:32:96:65 | * ... [element 2] | | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:69:24:69:24 | w | | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:69:27:69:27 | r | | params_flow.rb:98:19:98:19 | a | params_flow.rb:99:10:99:10 | a | | params_flow.rb:98:31:98:31 | b | params_flow.rb:102:10:102:10 | b | -| params_flow.rb:105:1:105:49 | *[2] | params_flow.rb:98:31:98:31 | b | | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:98:19:98:19 | a | -| params_flow.rb:105:26:105:48 | * ... [element 1] | params_flow.rb:105:1:105:49 | *[2] | -| params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:105:26:105:48 | * ... [element 1] | | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:98:19:98:19 | a | | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:98:31:98:31 | b | | params_flow.rb:108:37:108:37 | a | params_flow.rb:109:10:109:10 | a | @@ -197,12 +177,16 @@ nodes | params_flow.rb:25:12:25:13 | p1 | semmle.label | p1 | | params_flow.rb:25:17:25:24 | **kwargs [element :p2] | semmle.label | **kwargs [element :p2] | | params_flow.rb:25:17:25:24 | **kwargs [element :p3] | semmle.label | **kwargs [element :p3] | +| params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p2] | semmle.label | **kwargs [hash-splat position :p2] | +| params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p3] | semmle.label | **kwargs [hash-splat position :p3] | | params_flow.rb:26:10:26:11 | p1 | semmle.label | p1 | | params_flow.rb:28:10:28:22 | ( ... ) | semmle.label | ( ... ) | | params_flow.rb:28:11:28:16 | kwargs [element :p2] | semmle.label | kwargs [element :p2] | +| params_flow.rb:28:11:28:16 | kwargs [hash-splat position :p2] | semmle.label | kwargs [hash-splat position :p2] | | params_flow.rb:28:11:28:21 | ...[...] | semmle.label | ...[...] | | params_flow.rb:29:10:29:22 | ( ... ) | semmle.label | ( ... ) | | params_flow.rb:29:11:29:16 | kwargs [element :p3] | semmle.label | kwargs [element :p3] | +| params_flow.rb:29:11:29:16 | kwargs [hash-splat position :p3] | semmle.label | kwargs [hash-splat position :p3] | | params_flow.rb:29:11:29:21 | ...[...] | semmle.label | ...[...] | | params_flow.rb:33:12:33:19 | call to taint | semmle.label | call to taint | | params_flow.rb:33:26:33:34 | call to taint | semmle.label | call to taint | @@ -227,7 +211,6 @@ nodes | params_flow.rb:41:26:41:29 | args [element :p1] | semmle.label | args [element :p1] | | params_flow.rb:43:1:43:4 | args [element 0] | semmle.label | args [element 0] | | params_flow.rb:43:9:43:17 | call to taint | semmle.label | call to taint | -| params_flow.rb:44:1:44:28 | *[1] | semmle.label | *[1] | | params_flow.rb:44:12:44:20 | call to taint | semmle.label | call to taint | | params_flow.rb:44:23:44:27 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:44:24:44:27 | args [element 0] | semmle.label | args [element 0] | @@ -241,15 +224,16 @@ nodes | params_flow.rb:47:13:47:16 | args [element 1] | semmle.label | args [element 1] | | params_flow.rb:49:13:49:14 | p1 | semmle.label | p1 | | params_flow.rb:49:17:49:24 | *posargs [element 0] | semmle.label | *posargs [element 0] | +| params_flow.rb:49:17:49:24 | *posargs [element 0] | semmle.label | *posargs [element 0] | | params_flow.rb:50:10:50:11 | p1 | semmle.label | p1 | | params_flow.rb:51:10:51:21 | ( ... ) | semmle.label | ( ... ) | | params_flow.rb:51:11:51:17 | posargs [element 0] | semmle.label | posargs [element 0] | +| params_flow.rb:51:11:51:17 | posargs [element 0] | semmle.label | posargs [element 0] | | params_flow.rb:51:11:51:20 | ...[...] | semmle.label | ...[...] | | params_flow.rb:55:9:55:17 | call to taint | semmle.label | call to taint | | params_flow.rb:55:20:55:28 | call to taint | semmle.label | call to taint | | params_flow.rb:57:1:57:4 | args [element 0] | semmle.label | args [element 0] | | params_flow.rb:57:9:57:17 | call to taint | semmle.label | call to taint | -| params_flow.rb:58:1:58:25 | *[1] | semmle.label | *[1] | | params_flow.rb:58:9:58:17 | call to taint | semmle.label | call to taint | | params_flow.rb:58:20:58:24 | * ... [element 0] | semmle.label | * ... [element 0] | | params_flow.rb:58:21:58:24 | args [element 0] | semmle.label | args [element 0] | @@ -281,21 +265,10 @@ nodes | params_flow.rb:78:43:78:51 | call to taint | semmle.label | call to taint | | params_flow.rb:78:54:78:62 | call to taint | semmle.label | call to taint | | params_flow.rb:80:1:80:4 | args [element 0] | semmle.label | args [element 0] | -| params_flow.rb:80:1:80:4 | args [element 2] | semmle.label | args [element 2] | -| params_flow.rb:80:1:80:4 | args [element 3] | semmle.label | args [element 3] | | params_flow.rb:80:9:80:17 | call to taint | semmle.label | call to taint | -| params_flow.rb:80:31:80:39 | call to taint | semmle.label | call to taint | -| params_flow.rb:80:42:80:50 | call to taint | semmle.label | call to taint | -| params_flow.rb:81:1:81:37 | *[1] | semmle.label | *[1] | -| params_flow.rb:81:1:81:37 | *[3] | semmle.label | *[3] | -| params_flow.rb:81:1:81:37 | *[4] | semmle.label | *[4] | | params_flow.rb:81:10:81:18 | call to taint | semmle.label | call to taint | | params_flow.rb:81:21:81:25 | * ... [element 0] | semmle.label | * ... [element 0] | -| params_flow.rb:81:21:81:25 | * ... [element 2] | semmle.label | * ... [element 2] | -| params_flow.rb:81:21:81:25 | * ... [element 3] | semmle.label | * ... [element 3] | | params_flow.rb:81:22:81:25 | args [element 0] | semmle.label | args [element 0] | -| params_flow.rb:81:22:81:25 | args [element 2] | semmle.label | args [element 2] | -| params_flow.rb:81:22:81:25 | args [element 3] | semmle.label | args [element 3] | | params_flow.rb:83:14:83:14 | t | semmle.label | t | | params_flow.rb:83:17:83:17 | u | semmle.label | u | | params_flow.rb:83:20:83:20 | v | semmle.label | v | @@ -316,10 +289,6 @@ nodes | params_flow.rb:93:20:93:28 | call to taint | semmle.label | call to taint | | params_flow.rb:93:31:93:39 | call to taint | semmle.label | call to taint | | params_flow.rb:93:42:93:50 | call to taint | semmle.label | call to taint | -| params_flow.rb:94:1:94:48 | *[2] | semmle.label | *[2] | -| params_flow.rb:94:1:94:48 | *[3] | semmle.label | *[3] | -| params_flow.rb:94:1:94:48 | *[4] | semmle.label | *[4] | -| params_flow.rb:94:1:94:48 | *[5] | semmle.label | *[5] | | params_flow.rb:94:10:94:18 | call to taint | semmle.label | call to taint | | params_flow.rb:94:21:94:29 | call to taint | semmle.label | call to taint | | params_flow.rb:94:32:94:36 | * ... [element 0] | semmle.label | * ... [element 0] | @@ -331,24 +300,15 @@ nodes | params_flow.rb:94:33:94:36 | args [element 2] | semmle.label | args [element 2] | | params_flow.rb:94:33:94:36 | args [element 3] | semmle.label | args [element 3] | | params_flow.rb:94:39:94:47 | call to taint | semmle.label | call to taint | -| params_flow.rb:96:1:96:88 | *[3] | semmle.label | *[3] | -| params_flow.rb:96:1:96:88 | *[4] | semmle.label | *[4] | | params_flow.rb:96:10:96:18 | call to taint | semmle.label | call to taint | | params_flow.rb:96:21:96:29 | call to taint | semmle.label | call to taint | -| params_flow.rb:96:32:96:65 | * ... [element 1] | semmle.label | * ... [element 1] | -| params_flow.rb:96:32:96:65 | * ... [element 2] | semmle.label | * ... [element 2] | -| params_flow.rb:96:45:96:53 | call to taint | semmle.label | call to taint | -| params_flow.rb:96:56:96:64 | call to taint | semmle.label | call to taint | | params_flow.rb:96:68:96:76 | call to taint | semmle.label | call to taint | | params_flow.rb:96:79:96:87 | call to taint | semmle.label | call to taint | | params_flow.rb:98:19:98:19 | a | semmle.label | a | | params_flow.rb:98:31:98:31 | b | semmle.label | b | | params_flow.rb:99:10:99:10 | a | semmle.label | a | | params_flow.rb:102:10:102:10 | b | semmle.label | b | -| params_flow.rb:105:1:105:49 | *[2] | semmle.label | *[2] | | params_flow.rb:105:15:105:23 | call to taint | semmle.label | call to taint | -| params_flow.rb:105:26:105:48 | * ... [element 1] | semmle.label | * ... [element 1] | -| params_flow.rb:105:39:105:47 | call to taint | semmle.label | call to taint | | params_flow.rb:106:15:106:23 | call to taint | semmle.label | call to taint | | params_flow.rb:106:37:106:45 | call to taint | semmle.label | call to taint | | params_flow.rb:108:37:108:37 | a | semmle.label | a | @@ -418,12 +378,8 @@ subpaths | params_flow.rb:71:10:71:10 | y | params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:71:10:71:10 | y | $@ | params_flow.rb:80:9:80:17 | call to taint | call to taint | | params_flow.rb:71:10:71:10 | y | params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:71:10:71:10 | y | $@ | params_flow.rb:96:21:96:29 | call to taint | call to taint | | params_flow.rb:74:10:74:10 | w | params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:74:10:74:10 | w | $@ | params_flow.rb:78:43:78:51 | call to taint | call to taint | -| params_flow.rb:74:10:74:10 | w | params_flow.rb:80:31:80:39 | call to taint | params_flow.rb:74:10:74:10 | w | $@ | params_flow.rb:80:31:80:39 | call to taint | call to taint | -| params_flow.rb:74:10:74:10 | w | params_flow.rb:96:45:96:53 | call to taint | params_flow.rb:74:10:74:10 | w | $@ | params_flow.rb:96:45:96:53 | call to taint | call to taint | | params_flow.rb:74:10:74:10 | w | params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:74:10:74:10 | w | $@ | params_flow.rb:96:68:96:76 | call to taint | call to taint | | params_flow.rb:75:10:75:10 | r | params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:75:10:75:10 | r | $@ | params_flow.rb:78:54:78:62 | call to taint | call to taint | -| params_flow.rb:75:10:75:10 | r | params_flow.rb:80:42:80:50 | call to taint | params_flow.rb:75:10:75:10 | r | $@ | params_flow.rb:80:42:80:50 | call to taint | call to taint | -| params_flow.rb:75:10:75:10 | r | params_flow.rb:96:56:96:64 | call to taint | params_flow.rb:75:10:75:10 | r | $@ | params_flow.rb:96:56:96:64 | call to taint | call to taint | | params_flow.rb:75:10:75:10 | r | params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:75:10:75:10 | r | $@ | params_flow.rb:96:79:96:87 | call to taint | call to taint | | params_flow.rb:84:10:84:10 | t | params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:84:10:84:10 | t | $@ | params_flow.rb:94:10:94:18 | call to taint | call to taint | | params_flow.rb:84:10:84:10 | t | params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:84:10:84:10 | t | $@ | params_flow.rb:130:9:130:17 | call to taint | call to taint | @@ -437,7 +393,6 @@ subpaths | params_flow.rb:89:10:89:10 | y | params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:89:10:89:10 | y | $@ | params_flow.rb:93:42:93:50 | call to taint | call to taint | | params_flow.rb:99:10:99:10 | a | params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:99:10:99:10 | a | $@ | params_flow.rb:105:15:105:23 | call to taint | call to taint | | params_flow.rb:99:10:99:10 | a | params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:99:10:99:10 | a | $@ | params_flow.rb:106:15:106:23 | call to taint | call to taint | -| params_flow.rb:102:10:102:10 | b | params_flow.rb:105:39:105:47 | call to taint | params_flow.rb:102:10:102:10 | b | $@ | params_flow.rb:105:39:105:47 | call to taint | call to taint | | params_flow.rb:102:10:102:10 | b | params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:102:10:102:10 | b | $@ | params_flow.rb:106:37:106:45 | call to taint | call to taint | | params_flow.rb:109:10:109:10 | a | params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:109:10:109:10 | a | $@ | params_flow.rb:114:33:114:41 | call to taint | call to taint | | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:110:10:110:13 | ...[...] | $@ | params_flow.rb:114:44:114:52 | call to taint | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/params/params_flow.rb b/ruby/ql/test/library-tests/dataflow/params/params_flow.rb index fe179d4e119..c1b1da0563f 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/params/params_flow.rb @@ -71,8 +71,8 @@ def splatmid(x, y, *z, w, r) sink y # $ hasValueFlow=28 $ hasValueFlow=46 $ hasValueFlow=33 sink z[0] # MISSING: $ hasValueFlow=47 $ hasValueFlow=29 $ hasValueFlow=34 sink z[1] # $ MISSING: hasValueFlow=48 $ hasValueFlow=35 - sink w # $ hasValueFlow=30 $ hasValueFlow=50 $ MISSING: hasValueFlow=36 $ SPURIOUS: hasValueFlow=35 $ hasValueFlow=48 - sink r # $ hasValueFlow=31 $ hasValueFlow=51 $ MISSING: hasValueFlow=37 $ SPURIOUS: hasValueFlow=36 $ hasValueFlow=49 + sink w # $ hasValueFlow=30 $ hasValueFlow=50 $ MISSING: hasValueFlow=36 + sink r # $ hasValueFlow=31 $ hasValueFlow=51 $ MISSING: hasValueFlow=37 end splatmid(taint(27), taint(28), taint(29), taint(30), taint(31)) @@ -99,7 +99,7 @@ def splatmidsmall(a, *splats, b) sink a # $ hasValueFlow=52 $ hasValueFlow=55 sink splats[0] # $ MISSING: hasValueFlow=53 sink splats[1] - sink b # $ hasValueFlow=57 $ hasValueFlow=54 + sink b # $ hasValueFlow=57 $ MISSING: hasValueFlow=54 end splatmidsmall(taint(52), *[taint(53), taint(54)]) diff --git a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected index bdee5aaba8c..b8194f74f42 100644 --- a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected +++ b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected @@ -250,7 +250,7 @@ edges | summaries.rb:122:33:122:33 | [post] z | summaries.rb:125:6:125:6 | z | | summaries.rb:128:1:128:1 | [post] x | summaries.rb:129:6:129:6 | x | | summaries.rb:128:14:128:20 | tainted | summaries.rb:128:1:128:1 | [post] x | -| summaries.rb:131:16:131:22 | tainted | summaries.rb:131:1:131:23 | * | +| summaries.rb:131:16:131:22 | tainted | summaries.rb:131:1:131:23 | synthetic splat argument | | summaries.rb:157:14:160:3 | do ... end [captured tainted] | summaries.rb:158:15:158:21 | tainted | | summaries.rb:157:14:160:3 | do ... end [captured tainted] | summaries.rb:158:15:158:21 | tainted | nodes @@ -469,7 +469,7 @@ nodes | summaries.rb:128:1:128:1 | [post] x | semmle.label | [post] x | | summaries.rb:128:14:128:20 | tainted | semmle.label | tainted | | summaries.rb:129:6:129:6 | x | semmle.label | x | -| summaries.rb:131:1:131:23 | * | semmle.label | * | +| summaries.rb:131:1:131:23 | synthetic splat argument | semmle.label | synthetic splat argument | | summaries.rb:131:16:131:22 | tainted | semmle.label | tainted | | summaries.rb:131:16:131:22 | tainted | semmle.label | tainted | | summaries.rb:131:16:131:22 | tainted | semmle.label | tainted | @@ -584,7 +584,7 @@ invalidSpecComponent | summaries.rb:124:6:124:6 | y | summaries.rb:1:20:1:36 | call to source | summaries.rb:124:6:124:6 | y | $@ | summaries.rb:1:20:1:36 | call to source | call to source | | summaries.rb:125:6:125:6 | z | summaries.rb:1:20:1:36 | call to source | summaries.rb:125:6:125:6 | z | $@ | summaries.rb:1:20:1:36 | call to source | call to source | | summaries.rb:129:6:129:6 | x | summaries.rb:1:20:1:36 | call to source | summaries.rb:129:6:129:6 | x | $@ | summaries.rb:1:20:1:36 | call to source | call to source | -| summaries.rb:131:1:131:23 | * | summaries.rb:1:20:1:36 | call to source | summaries.rb:131:1:131:23 | * | $@ | summaries.rb:1:20:1:36 | call to source | call to source | +| summaries.rb:131:1:131:23 | synthetic splat argument | summaries.rb:1:20:1:36 | call to source | summaries.rb:131:1:131:23 | synthetic splat argument | $@ | summaries.rb:1:20:1:36 | call to source | call to source | | summaries.rb:131:16:131:22 | tainted | summaries.rb:1:20:1:36 | call to source | summaries.rb:131:16:131:22 | tainted | $@ | summaries.rb:1:20:1:36 | call to source | call to source | | summaries.rb:131:16:131:22 | tainted | summaries.rb:1:20:1:36 | call to source | summaries.rb:131:16:131:22 | tainted | $@ | summaries.rb:1:20:1:36 | call to source | call to source | | summaries.rb:132:21:132:27 | tainted | summaries.rb:1:20:1:36 | call to source | summaries.rb:132:21:132:27 | tainted | $@ | summaries.rb:1:20:1:36 | call to source | call to source | diff --git a/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected index fa224cf427b..ec9c67c2f52 100644 --- a/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/type-tracker/TypeTracker.expected @@ -7,19 +7,19 @@ track | type_tracker.rb:2:5:5:7 | field= | type tracker without call steps | type_tracker.rb:2:5:5:7 | field= | | type_tracker.rb:2:5:5:7 | self in field= | type tracker with call steps | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:2:5:5:7 | self in field= | type tracker without call steps | type_tracker.rb:2:5:5:7 | self in field= | -| type_tracker.rb:2:5:5:7 | synthetic *args | type tracker without call steps | type_tracker.rb:2:5:5:7 | synthetic *args | +| type_tracker.rb:2:5:5:7 | synthetic splat parameter | type tracker without call steps | type_tracker.rb:2:5:5:7 | synthetic splat parameter | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:3:14:3:23 | call to field | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:8:9:8:14 | @field | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:14:5:14:13 | call to field= | | type_tracker.rb:2:16:2:18 | val | type tracker without call steps | type_tracker.rb:15:10:15:18 | call to field | -| type_tracker.rb:2:16:2:18 | val | type tracker without call steps with content element 0 | type_tracker.rb:3:9:3:23 | * | -| type_tracker.rb:2:16:2:18 | val | type tracker without call steps with content element 0 | type_tracker.rb:15:5:15:18 | * | -| type_tracker.rb:3:9:3:23 | * | type tracker without call steps | type_tracker.rb:3:9:3:23 | * | +| type_tracker.rb:2:16:2:18 | val | type tracker without call steps with content splat position 0 | type_tracker.rb:3:9:3:23 | synthetic splat argument | +| type_tracker.rb:2:16:2:18 | val | type tracker without call steps with content splat position 0 | type_tracker.rb:15:5:15:18 | synthetic splat argument | | type_tracker.rb:3:9:3:23 | call to puts | type tracker without call steps | type_tracker.rb:3:9:3:23 | call to puts | +| type_tracker.rb:3:9:3:23 | synthetic splat argument | type tracker without call steps | type_tracker.rb:3:9:3:23 | synthetic splat argument | | type_tracker.rb:3:14:3:23 | call to field | type tracker without call steps | type_tracker.rb:3:14:3:23 | call to field | -| type_tracker.rb:3:14:3:23 | call to field | type tracker without call steps with content element 0 | type_tracker.rb:3:9:3:23 | * | +| type_tracker.rb:3:14:3:23 | call to field | type tracker without call steps with content splat position 0 | type_tracker.rb:3:9:3:23 | synthetic splat argument | | type_tracker.rb:4:9:4:14 | @field | type tracker without call steps | type_tracker.rb:4:9:4:14 | @field | | type_tracker.rb:7:5:9:7 | &block | type tracker without call steps | type_tracker.rb:7:5:9:7 | &block | | type_tracker.rb:7:5:9:7 | field | type tracker without call steps | type_tracker.rb:7:5:9:7 | field | @@ -27,8 +27,8 @@ track | type_tracker.rb:8:9:8:14 | @field | type tracker without call steps | type_tracker.rb:3:14:3:23 | call to field | | type_tracker.rb:8:9:8:14 | @field | type tracker without call steps | type_tracker.rb:8:9:8:14 | @field | | type_tracker.rb:8:9:8:14 | @field | type tracker without call steps | type_tracker.rb:15:10:15:18 | call to field | -| type_tracker.rb:8:9:8:14 | @field | type tracker without call steps with content element 0 | type_tracker.rb:3:9:3:23 | * | -| type_tracker.rb:8:9:8:14 | @field | type tracker without call steps with content element 0 | type_tracker.rb:15:5:15:18 | * | +| type_tracker.rb:8:9:8:14 | @field | type tracker without call steps with content splat position 0 | type_tracker.rb:3:9:3:23 | synthetic splat argument | +| type_tracker.rb:8:9:8:14 | @field | type tracker without call steps with content splat position 0 | type_tracker.rb:15:5:15:18 | synthetic splat argument | | type_tracker.rb:12:1:16:3 | &block | type tracker without call steps | type_tracker.rb:12:1:16:3 | &block | | type_tracker.rb:12:1:16:3 | m | type tracker without call steps | type_tracker.rb:12:1:16:3 | m | | type_tracker.rb:12:1:16:3 | self in m | type tracker without call steps | type_tracker.rb:12:1:16:3 | self in m | @@ -39,123 +39,123 @@ track | type_tracker.rb:13:11:13:23 | call to new | type tracker without call steps | type_tracker.rb:13:11:13:23 | call to new | | type_tracker.rb:14:5:14:7 | [post] var | type tracker with call steps | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:14:5:14:7 | [post] var | type tracker without call steps | type_tracker.rb:14:5:14:7 | [post] var | -| type_tracker.rb:14:5:14:13 | * | type tracker with call steps | type_tracker.rb:2:5:5:7 | synthetic *args | -| type_tracker.rb:14:5:14:13 | * | type tracker without call steps | type_tracker.rb:14:5:14:13 | * | | type_tracker.rb:14:5:14:13 | call to field= | type tracker without call steps | type_tracker.rb:14:5:14:13 | call to field= | +| type_tracker.rb:14:5:14:13 | synthetic splat argument | type tracker with call steps | type_tracker.rb:2:5:5:7 | synthetic splat parameter | +| type_tracker.rb:14:5:14:13 | synthetic splat argument | type tracker without call steps | type_tracker.rb:14:5:14:13 | synthetic splat argument | | type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps | type_tracker.rb:8:9:8:14 | @field | | type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps with content attribute field | type_tracker.rb:7:5:9:7 | self in field | -| type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps with content element 0 | type_tracker.rb:2:5:5:7 | synthetic *args | +| type_tracker.rb:14:17:14:23 | "hello" | type tracker with call steps with content splat position 0 | type_tracker.rb:2:5:5:7 | synthetic splat parameter | | type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps | type_tracker.rb:14:5:14:13 | call to field= | | type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps | type_tracker.rb:14:17:14:23 | "hello" | | type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps | type_tracker.rb:15:10:15:18 | call to field | | type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps with content attribute field | type_tracker.rb:14:5:14:7 | [post] var | -| type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps with content element 0 | type_tracker.rb:14:5:14:13 | * | -| type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps with content element 0 | type_tracker.rb:15:5:15:18 | * | +| type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps with content splat position 0 | type_tracker.rb:14:5:14:13 | synthetic splat argument | +| type_tracker.rb:14:17:14:23 | "hello" | type tracker without call steps with content splat position 0 | type_tracker.rb:15:5:15:18 | synthetic splat argument | | type_tracker.rb:14:17:14:23 | __synth__0 | type tracker without call steps | type_tracker.rb:14:17:14:23 | __synth__0 | -| type_tracker.rb:15:5:15:18 | * | type tracker without call steps | type_tracker.rb:15:5:15:18 | * | | type_tracker.rb:15:5:15:18 | call to puts | type tracker without call steps | type_tracker.rb:15:5:15:18 | call to puts | +| type_tracker.rb:15:5:15:18 | synthetic splat argument | type tracker without call steps | type_tracker.rb:15:5:15:18 | synthetic splat argument | | type_tracker.rb:15:10:15:18 | call to field | type tracker without call steps | type_tracker.rb:15:10:15:18 | call to field | -| type_tracker.rb:15:10:15:18 | call to field | type tracker without call steps with content element 0 | type_tracker.rb:15:5:15:18 | * | +| type_tracker.rb:15:10:15:18 | call to field | type tracker without call steps with content splat position 0 | type_tracker.rb:15:5:15:18 | synthetic splat argument | | type_tracker.rb:18:1:21:3 | &block | type tracker without call steps | type_tracker.rb:18:1:21:3 | &block | | type_tracker.rb:18:1:21:3 | positional | type tracker without call steps | type_tracker.rb:18:1:21:3 | positional | | type_tracker.rb:18:1:21:3 | self in positional | type tracker without call steps | type_tracker.rb:18:1:21:3 | self in positional | -| type_tracker.rb:18:1:21:3 | synthetic *args | type tracker without call steps | type_tracker.rb:18:1:21:3 | synthetic *args | +| type_tracker.rb:18:1:21:3 | synthetic splat parameter | type tracker without call steps | type_tracker.rb:18:1:21:3 | synthetic splat parameter | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps | type_tracker.rb:18:16:18:17 | p1 | -| type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps with content element 0 | type_tracker.rb:19:5:19:11 | * | +| type_tracker.rb:18:16:18:17 | p1 | type tracker without call steps with content splat position 0 | type_tracker.rb:19:5:19:11 | synthetic splat argument | | type_tracker.rb:18:20:18:21 | p2 | type tracker without call steps | type_tracker.rb:18:20:18:21 | p2 | | type_tracker.rb:18:20:18:21 | p2 | type tracker without call steps | type_tracker.rb:18:20:18:21 | p2 | -| type_tracker.rb:18:20:18:21 | p2 | type tracker without call steps with content element 0 | type_tracker.rb:20:5:20:11 | * | -| type_tracker.rb:19:5:19:11 | * | type tracker without call steps | type_tracker.rb:19:5:19:11 | * | +| type_tracker.rb:18:20:18:21 | p2 | type tracker without call steps with content splat position 0 | type_tracker.rb:20:5:20:11 | synthetic splat argument | | type_tracker.rb:19:5:19:11 | call to puts | type tracker without call steps | type_tracker.rb:19:5:19:11 | call to puts | -| type_tracker.rb:20:5:20:11 | * | type tracker without call steps | type_tracker.rb:20:5:20:11 | * | +| type_tracker.rb:19:5:19:11 | synthetic splat argument | type tracker without call steps | type_tracker.rb:19:5:19:11 | synthetic splat argument | | type_tracker.rb:20:5:20:11 | call to puts | type tracker without call steps | type_tracker.rb:20:5:20:11 | call to puts | | type_tracker.rb:20:5:20:11 | call to puts | type tracker without call steps | type_tracker.rb:23:1:23:16 | call to positional | -| type_tracker.rb:23:1:23:16 | * | type tracker with call steps | type_tracker.rb:18:1:21:3 | synthetic *args | -| type_tracker.rb:23:1:23:16 | * | type tracker without call steps | type_tracker.rb:23:1:23:16 | * | +| type_tracker.rb:20:5:20:11 | synthetic splat argument | type tracker without call steps | type_tracker.rb:20:5:20:11 | synthetic splat argument | | type_tracker.rb:23:1:23:16 | call to positional | type tracker without call steps | type_tracker.rb:23:1:23:16 | call to positional | +| type_tracker.rb:23:1:23:16 | synthetic splat argument | type tracker with call steps | type_tracker.rb:18:1:21:3 | synthetic splat parameter | +| type_tracker.rb:23:1:23:16 | synthetic splat argument | type tracker without call steps | type_tracker.rb:23:1:23:16 | synthetic splat argument | | type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps | type_tracker.rb:18:16:18:17 | p1 | -| type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps with content element 0 | type_tracker.rb:18:1:21:3 | synthetic *args | -| type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps with content element 0 | type_tracker.rb:19:5:19:11 | * | +| type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps with content splat position 0 | type_tracker.rb:18:1:21:3 | synthetic splat parameter | +| type_tracker.rb:23:12:23:12 | 1 | type tracker with call steps with content splat position 0 | type_tracker.rb:19:5:19:11 | synthetic splat argument | | type_tracker.rb:23:12:23:12 | 1 | type tracker without call steps | type_tracker.rb:23:12:23:12 | 1 | -| type_tracker.rb:23:12:23:12 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:23:1:23:16 | * | +| type_tracker.rb:23:12:23:12 | 1 | type tracker without call steps with content splat position 0 | type_tracker.rb:23:1:23:16 | synthetic splat argument | | type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps | type_tracker.rb:18:20:18:21 | p2 | -| type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps with content element 0 | type_tracker.rb:20:5:20:11 | * | -| type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps with content element 1 | type_tracker.rb:18:1:21:3 | synthetic *args | +| type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps with content splat position 0 | type_tracker.rb:20:5:20:11 | synthetic splat argument | +| type_tracker.rb:23:15:23:15 | 2 | type tracker with call steps with content splat position 1 | type_tracker.rb:18:1:21:3 | synthetic splat parameter | | type_tracker.rb:23:15:23:15 | 2 | type tracker without call steps | type_tracker.rb:23:15:23:15 | 2 | -| type_tracker.rb:23:15:23:15 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:23:1:23:16 | * | +| type_tracker.rb:23:15:23:15 | 2 | type tracker without call steps with content splat position 1 | type_tracker.rb:23:1:23:16 | synthetic splat argument | | type_tracker.rb:25:1:28:3 | &block | type tracker without call steps | type_tracker.rb:25:1:28:3 | &block | -| type_tracker.rb:25:1:28:3 | **kwargs | type tracker without call steps | type_tracker.rb:25:1:28:3 | **kwargs | | type_tracker.rb:25:1:28:3 | keyword | type tracker without call steps | type_tracker.rb:25:1:28:3 | keyword | | type_tracker.rb:25:1:28:3 | self in keyword | type tracker without call steps | type_tracker.rb:25:1:28:3 | self in keyword | +| type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | type tracker without call steps | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | | type_tracker.rb:25:13:25:14 | p1 | type tracker without call steps | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type tracker without call steps | type_tracker.rb:25:13:25:14 | p1 | -| type_tracker.rb:25:13:25:14 | p1 | type tracker without call steps with content element 0 | type_tracker.rb:26:5:26:11 | * | +| type_tracker.rb:25:13:25:14 | p1 | type tracker without call steps with content splat position 0 | type_tracker.rb:26:5:26:11 | synthetic splat argument | | type_tracker.rb:25:18:25:19 | p2 | type tracker without call steps | type_tracker.rb:25:18:25:19 | p2 | | type_tracker.rb:25:18:25:19 | p2 | type tracker without call steps | type_tracker.rb:25:18:25:19 | p2 | -| type_tracker.rb:25:18:25:19 | p2 | type tracker without call steps with content element 0 | type_tracker.rb:27:5:27:11 | * | -| type_tracker.rb:26:5:26:11 | * | type tracker without call steps | type_tracker.rb:26:5:26:11 | * | +| type_tracker.rb:25:18:25:19 | p2 | type tracker without call steps with content splat position 0 | type_tracker.rb:27:5:27:11 | synthetic splat argument | | type_tracker.rb:26:5:26:11 | call to puts | type tracker without call steps | type_tracker.rb:26:5:26:11 | call to puts | -| type_tracker.rb:27:5:27:11 | * | type tracker without call steps | type_tracker.rb:27:5:27:11 | * | +| type_tracker.rb:26:5:26:11 | synthetic splat argument | type tracker without call steps | type_tracker.rb:26:5:26:11 | synthetic splat argument | | type_tracker.rb:27:5:27:11 | call to puts | type tracker without call steps | type_tracker.rb:27:5:27:11 | call to puts | | type_tracker.rb:27:5:27:11 | call to puts | type tracker without call steps | type_tracker.rb:30:1:30:21 | call to keyword | | type_tracker.rb:27:5:27:11 | call to puts | type tracker without call steps | type_tracker.rb:31:1:31:21 | call to keyword | | type_tracker.rb:27:5:27:11 | call to puts | type tracker without call steps | type_tracker.rb:32:1:32:27 | call to keyword | -| type_tracker.rb:30:1:30:21 | ** | type tracker with call steps | type_tracker.rb:25:1:28:3 | **kwargs | -| type_tracker.rb:30:1:30:21 | ** | type tracker without call steps | type_tracker.rb:30:1:30:21 | ** | +| type_tracker.rb:27:5:27:11 | synthetic splat argument | type tracker without call steps | type_tracker.rb:27:5:27:11 | synthetic splat argument | | type_tracker.rb:30:1:30:21 | call to keyword | type tracker without call steps | type_tracker.rb:30:1:30:21 | call to keyword | +| type_tracker.rb:30:1:30:21 | synthetic hash-splat argument | type tracker with call steps | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:30:1:30:21 | synthetic hash-splat argument | type tracker without call steps | type_tracker.rb:30:1:30:21 | synthetic hash-splat argument | | type_tracker.rb:30:9:30:10 | :p1 | type tracker without call steps | type_tracker.rb:30:9:30:10 | :p1 | | type_tracker.rb:30:9:30:13 | Pair | type tracker without call steps | type_tracker.rb:30:9:30:13 | Pair | | type_tracker.rb:30:13:30:13 | 3 | type tracker with call steps | type_tracker.rb:25:13:25:14 | p1 | -| type_tracker.rb:30:13:30:13 | 3 | type tracker with call steps with content element 0 | type_tracker.rb:26:5:26:11 | * | -| type_tracker.rb:30:13:30:13 | 3 | type tracker with call steps with content element :p1 | type_tracker.rb:25:1:28:3 | **kwargs | +| type_tracker.rb:30:13:30:13 | 3 | type tracker with call steps with content hash-splat position :p1 | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:30:13:30:13 | 3 | type tracker with call steps with content splat position 0 | type_tracker.rb:26:5:26:11 | synthetic splat argument | | type_tracker.rb:30:13:30:13 | 3 | type tracker without call steps | type_tracker.rb:30:13:30:13 | 3 | -| type_tracker.rb:30:13:30:13 | 3 | type tracker without call steps with content element :p1 | type_tracker.rb:30:1:30:21 | ** | +| type_tracker.rb:30:13:30:13 | 3 | type tracker without call steps with content hash-splat position :p1 | type_tracker.rb:30:1:30:21 | synthetic hash-splat argument | | type_tracker.rb:30:16:30:17 | :p2 | type tracker without call steps | type_tracker.rb:30:16:30:17 | :p2 | | type_tracker.rb:30:16:30:20 | Pair | type tracker without call steps | type_tracker.rb:30:16:30:20 | Pair | | type_tracker.rb:30:20:30:20 | 4 | type tracker with call steps | type_tracker.rb:25:18:25:19 | p2 | -| type_tracker.rb:30:20:30:20 | 4 | type tracker with call steps with content element 0 | type_tracker.rb:27:5:27:11 | * | -| type_tracker.rb:30:20:30:20 | 4 | type tracker with call steps with content element :p2 | type_tracker.rb:25:1:28:3 | **kwargs | +| type_tracker.rb:30:20:30:20 | 4 | type tracker with call steps with content hash-splat position :p2 | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:30:20:30:20 | 4 | type tracker with call steps with content splat position 0 | type_tracker.rb:27:5:27:11 | synthetic splat argument | | type_tracker.rb:30:20:30:20 | 4 | type tracker without call steps | type_tracker.rb:30:20:30:20 | 4 | -| type_tracker.rb:30:20:30:20 | 4 | type tracker without call steps with content element :p2 | type_tracker.rb:30:1:30:21 | ** | -| type_tracker.rb:31:1:31:21 | ** | type tracker with call steps | type_tracker.rb:25:1:28:3 | **kwargs | -| type_tracker.rb:31:1:31:21 | ** | type tracker without call steps | type_tracker.rb:31:1:31:21 | ** | +| type_tracker.rb:30:20:30:20 | 4 | type tracker without call steps with content hash-splat position :p2 | type_tracker.rb:30:1:30:21 | synthetic hash-splat argument | | type_tracker.rb:31:1:31:21 | call to keyword | type tracker without call steps | type_tracker.rb:31:1:31:21 | call to keyword | +| type_tracker.rb:31:1:31:21 | synthetic hash-splat argument | type tracker with call steps | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:31:1:31:21 | synthetic hash-splat argument | type tracker without call steps | type_tracker.rb:31:1:31:21 | synthetic hash-splat argument | | type_tracker.rb:31:9:31:10 | :p2 | type tracker without call steps | type_tracker.rb:31:9:31:10 | :p2 | | type_tracker.rb:31:9:31:13 | Pair | type tracker without call steps | type_tracker.rb:31:9:31:13 | Pair | | type_tracker.rb:31:13:31:13 | 5 | type tracker with call steps | type_tracker.rb:25:18:25:19 | p2 | -| type_tracker.rb:31:13:31:13 | 5 | type tracker with call steps with content element 0 | type_tracker.rb:27:5:27:11 | * | -| type_tracker.rb:31:13:31:13 | 5 | type tracker with call steps with content element :p2 | type_tracker.rb:25:1:28:3 | **kwargs | +| type_tracker.rb:31:13:31:13 | 5 | type tracker with call steps with content hash-splat position :p2 | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:31:13:31:13 | 5 | type tracker with call steps with content splat position 0 | type_tracker.rb:27:5:27:11 | synthetic splat argument | | type_tracker.rb:31:13:31:13 | 5 | type tracker without call steps | type_tracker.rb:31:13:31:13 | 5 | -| type_tracker.rb:31:13:31:13 | 5 | type tracker without call steps with content element :p2 | type_tracker.rb:31:1:31:21 | ** | +| type_tracker.rb:31:13:31:13 | 5 | type tracker without call steps with content hash-splat position :p2 | type_tracker.rb:31:1:31:21 | synthetic hash-splat argument | | type_tracker.rb:31:16:31:17 | :p1 | type tracker without call steps | type_tracker.rb:31:16:31:17 | :p1 | | type_tracker.rb:31:16:31:20 | Pair | type tracker without call steps | type_tracker.rb:31:16:31:20 | Pair | | type_tracker.rb:31:20:31:20 | 6 | type tracker with call steps | type_tracker.rb:25:13:25:14 | p1 | -| type_tracker.rb:31:20:31:20 | 6 | type tracker with call steps with content element 0 | type_tracker.rb:26:5:26:11 | * | -| type_tracker.rb:31:20:31:20 | 6 | type tracker with call steps with content element :p1 | type_tracker.rb:25:1:28:3 | **kwargs | +| type_tracker.rb:31:20:31:20 | 6 | type tracker with call steps with content hash-splat position :p1 | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:31:20:31:20 | 6 | type tracker with call steps with content splat position 0 | type_tracker.rb:26:5:26:11 | synthetic splat argument | | type_tracker.rb:31:20:31:20 | 6 | type tracker without call steps | type_tracker.rb:31:20:31:20 | 6 | -| type_tracker.rb:31:20:31:20 | 6 | type tracker without call steps with content element :p1 | type_tracker.rb:31:1:31:21 | ** | -| type_tracker.rb:32:1:32:27 | ** | type tracker with call steps | type_tracker.rb:25:1:28:3 | **kwargs | -| type_tracker.rb:32:1:32:27 | ** | type tracker without call steps | type_tracker.rb:32:1:32:27 | ** | +| type_tracker.rb:31:20:31:20 | 6 | type tracker without call steps with content hash-splat position :p1 | type_tracker.rb:31:1:31:21 | synthetic hash-splat argument | | type_tracker.rb:32:1:32:27 | call to keyword | type tracker without call steps | type_tracker.rb:32:1:32:27 | call to keyword | +| type_tracker.rb:32:1:32:27 | synthetic hash-splat argument | type tracker with call steps | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:32:1:32:27 | synthetic hash-splat argument | type tracker without call steps | type_tracker.rb:32:1:32:27 | synthetic hash-splat argument | | type_tracker.rb:32:9:32:11 | :p2 | type tracker without call steps | type_tracker.rb:32:9:32:11 | :p2 | | type_tracker.rb:32:9:32:16 | Pair | type tracker without call steps | type_tracker.rb:32:9:32:16 | Pair | | type_tracker.rb:32:16:32:16 | 7 | type tracker with call steps | type_tracker.rb:25:18:25:19 | p2 | -| type_tracker.rb:32:16:32:16 | 7 | type tracker with call steps with content element 0 | type_tracker.rb:27:5:27:11 | * | -| type_tracker.rb:32:16:32:16 | 7 | type tracker with call steps with content element :p2 | type_tracker.rb:25:1:28:3 | **kwargs | +| type_tracker.rb:32:16:32:16 | 7 | type tracker with call steps with content hash-splat position :p2 | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:32:16:32:16 | 7 | type tracker with call steps with content splat position 0 | type_tracker.rb:27:5:27:11 | synthetic splat argument | | type_tracker.rb:32:16:32:16 | 7 | type tracker without call steps | type_tracker.rb:32:16:32:16 | 7 | -| type_tracker.rb:32:16:32:16 | 7 | type tracker without call steps with content element :p2 | type_tracker.rb:32:1:32:27 | ** | +| type_tracker.rb:32:16:32:16 | 7 | type tracker without call steps with content hash-splat position :p2 | type_tracker.rb:32:1:32:27 | synthetic hash-splat argument | | type_tracker.rb:32:19:32:21 | :p1 | type tracker without call steps | type_tracker.rb:32:19:32:21 | :p1 | | type_tracker.rb:32:19:32:26 | Pair | type tracker without call steps | type_tracker.rb:32:19:32:26 | Pair | | type_tracker.rb:32:26:32:26 | 8 | type tracker with call steps | type_tracker.rb:25:13:25:14 | p1 | -| type_tracker.rb:32:26:32:26 | 8 | type tracker with call steps with content element 0 | type_tracker.rb:26:5:26:11 | * | -| type_tracker.rb:32:26:32:26 | 8 | type tracker with call steps with content element :p1 | type_tracker.rb:25:1:28:3 | **kwargs | +| type_tracker.rb:32:26:32:26 | 8 | type tracker with call steps with content hash-splat position :p1 | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:32:26:32:26 | 8 | type tracker with call steps with content splat position 0 | type_tracker.rb:26:5:26:11 | synthetic splat argument | | type_tracker.rb:32:26:32:26 | 8 | type tracker without call steps | type_tracker.rb:32:26:32:26 | 8 | -| type_tracker.rb:32:26:32:26 | 8 | type tracker without call steps with content element :p1 | type_tracker.rb:32:1:32:27 | ** | +| type_tracker.rb:32:26:32:26 | 8 | type tracker without call steps with content hash-splat position :p1 | type_tracker.rb:32:1:32:27 | synthetic hash-splat argument | | type_tracker.rb:34:1:53:3 | &block | type tracker without call steps | type_tracker.rb:34:1:53:3 | &block | | type_tracker.rb:34:1:53:3 | self in throughArray | type tracker without call steps | type_tracker.rb:34:1:53:3 | self in throughArray | -| type_tracker.rb:34:1:53:3 | synthetic *args | type tracker without call steps | type_tracker.rb:34:1:53:3 | synthetic *args | +| type_tracker.rb:34:1:53:3 | synthetic splat parameter | type tracker without call steps | type_tracker.rb:34:1:53:3 | synthetic splat parameter | | type_tracker.rb:34:1:53:3 | throughArray | type tracker without call steps | type_tracker.rb:34:1:53:3 | throughArray | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:34:18:34:20 | obj | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:34:18:34:20 | obj | @@ -165,164 +165,169 @@ track | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element | type_tracker.rb:38:13:38:25 | call to [] | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element | type_tracker.rb:50:14:50:26 | call to [] | -| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 0 | type_tracker.rb:35:11:35:15 | * | -| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 0 or unknown | type_tracker.rb:35:11:35:15 | call to [] | +| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 0 | type_tracker.rb:35:11:35:15 | call to [] | +| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 0 | type_tracker.rb:35:11:35:15 | synthetic splat argument | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 0 or unknown | type_tracker.rb:42:14:42:26 | call to [] | | type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 0 or unknown | type_tracker.rb:46:14:46:26 | call to [] | -| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 1 | type_tracker.rb:39:5:39:12 | * | -| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 1 | type_tracker.rb:43:5:43:13 | * | -| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 1 | type_tracker.rb:47:5:47:13 | * | -| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content element 1 | type_tracker.rb:51:5:51:13 | * | +| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content splat position 1 | type_tracker.rb:39:5:39:12 | synthetic splat argument | +| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content splat position 1 | type_tracker.rb:43:5:43:13 | synthetic splat argument | +| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content splat position 1 | type_tracker.rb:47:5:47:13 | synthetic splat argument | +| type_tracker.rb:34:18:34:20 | obj | type tracker without call steps with content splat position 1 | type_tracker.rb:51:5:51:13 | synthetic splat argument | | type_tracker.rb:34:23:34:23 | y | type tracker without call steps | type_tracker.rb:34:23:34:23 | y | | type_tracker.rb:34:23:34:23 | y | type tracker without call steps | type_tracker.rb:34:23:34:23 | y | -| type_tracker.rb:34:23:34:23 | y | type tracker without call steps with content element 0 | type_tracker.rb:39:5:39:12 | * | -| type_tracker.rb:34:23:34:23 | y | type tracker without call steps with content element 0 | type_tracker.rb:44:5:44:13 | * | -| type_tracker.rb:34:23:34:23 | y | type tracker without call steps with content element 0 | type_tracker.rb:51:5:51:13 | * | +| type_tracker.rb:34:23:34:23 | y | type tracker without call steps with content splat position 0 | type_tracker.rb:39:5:39:12 | synthetic splat argument | +| type_tracker.rb:34:23:34:23 | y | type tracker without call steps with content splat position 0 | type_tracker.rb:44:5:44:13 | synthetic splat argument | +| type_tracker.rb:34:23:34:23 | y | type tracker without call steps with content splat position 0 | type_tracker.rb:51:5:51:13 | synthetic splat argument | | type_tracker.rb:34:26:34:26 | z | type tracker without call steps | type_tracker.rb:34:26:34:26 | z | | type_tracker.rb:34:26:34:26 | z | type tracker without call steps | type_tracker.rb:34:26:34:26 | z | -| type_tracker.rb:34:26:34:26 | z | type tracker without call steps with content element 0 | type_tracker.rb:52:5:52:13 | * | +| type_tracker.rb:34:26:34:26 | z | type tracker without call steps with content splat position 0 | type_tracker.rb:52:5:52:13 | synthetic splat argument | | type_tracker.rb:35:5:35:7 | tmp | type tracker without call steps | type_tracker.rb:35:5:35:7 | tmp | -| type_tracker.rb:35:11:35:15 | * | type tracker without call steps | type_tracker.rb:35:11:35:15 | * | | type_tracker.rb:35:11:35:15 | Array | type tracker without call steps | type_tracker.rb:35:11:35:15 | Array | | type_tracker.rb:35:11:35:15 | call to [] | type tracker without call steps | type_tracker.rb:35:11:35:15 | call to [] | -| type_tracker.rb:36:5:36:10 | * | type tracker without call steps | type_tracker.rb:36:5:36:10 | * | +| type_tracker.rb:35:11:35:15 | synthetic splat argument | type tracker without call steps | type_tracker.rb:35:11:35:15 | call to [] | +| type_tracker.rb:35:11:35:15 | synthetic splat argument | type tracker without call steps | type_tracker.rb:35:11:35:15 | synthetic splat argument | | type_tracker.rb:36:5:36:10 | ...[...] | type tracker without call steps | type_tracker.rb:36:5:36:10 | ...[...] | +| type_tracker.rb:36:5:36:10 | synthetic splat argument | type tracker without call steps | type_tracker.rb:36:5:36:10 | synthetic splat argument | | type_tracker.rb:36:9:36:9 | 0 | type tracker without call steps | type_tracker.rb:36:9:36:9 | 0 | -| type_tracker.rb:36:9:36:9 | 0 | type tracker without call steps with content element 0 | type_tracker.rb:36:5:36:10 | * | +| type_tracker.rb:36:9:36:9 | 0 | type tracker without call steps with content splat position 0 | type_tracker.rb:36:5:36:10 | synthetic splat argument | | type_tracker.rb:38:5:38:9 | array | type tracker without call steps | type_tracker.rb:38:5:38:9 | array | -| type_tracker.rb:38:13:38:25 | * | type tracker without call steps | type_tracker.rb:38:13:38:25 | * | | type_tracker.rb:38:13:38:25 | Array | type tracker without call steps | type_tracker.rb:38:13:38:25 | Array | | type_tracker.rb:38:13:38:25 | call to [] | type tracker without call steps | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:13:38:25 | synthetic splat argument | type tracker without call steps | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:13:38:25 | synthetic splat argument | type tracker without call steps | type_tracker.rb:38:13:38:25 | synthetic splat argument | | type_tracker.rb:38:14:38:14 | 1 | type tracker without call steps | type_tracker.rb:38:14:38:14 | 1 | | type_tracker.rb:38:14:38:14 | 1 | type tracker without call steps | type_tracker.rb:40:5:40:12 | ...[...] | -| type_tracker.rb:38:14:38:14 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:38:13:38:25 | * | -| type_tracker.rb:38:14:38:14 | 1 | type tracker without call steps with content element 0 or unknown | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:14:38:14 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:14:38:14 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:38:13:38:25 | synthetic splat argument | | type_tracker.rb:38:16:38:16 | 2 | type tracker without call steps | type_tracker.rb:38:16:38:16 | 2 | -| type_tracker.rb:38:16:38:16 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:38:13:38:25 | * | -| type_tracker.rb:38:16:38:16 | 2 | type tracker without call steps with content element 1 or unknown | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:16:38:16 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:16:38:16 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:38:13:38:25 | synthetic splat argument | | type_tracker.rb:38:18:38:18 | 3 | type tracker without call steps | type_tracker.rb:38:18:38:18 | 3 | -| type_tracker.rb:38:18:38:18 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:38:13:38:25 | * | -| type_tracker.rb:38:18:38:18 | 3 | type tracker without call steps with content element 2 or unknown | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:18:38:18 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:18:38:18 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:38:13:38:25 | synthetic splat argument | | type_tracker.rb:38:20:38:20 | 4 | type tracker without call steps | type_tracker.rb:38:20:38:20 | 4 | -| type_tracker.rb:38:20:38:20 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:38:13:38:25 | * | -| type_tracker.rb:38:20:38:20 | 4 | type tracker without call steps with content element 3 or unknown | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:20:38:20 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:20:38:20 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:38:13:38:25 | synthetic splat argument | | type_tracker.rb:38:22:38:22 | 5 | type tracker without call steps | type_tracker.rb:38:22:38:22 | 5 | -| type_tracker.rb:38:22:38:22 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:38:13:38:25 | * | -| type_tracker.rb:38:22:38:22 | 5 | type tracker without call steps with content element 4 or unknown | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:22:38:22 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:22:38:22 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:38:13:38:25 | synthetic splat argument | | type_tracker.rb:38:24:38:24 | 6 | type tracker without call steps | type_tracker.rb:38:24:38:24 | 6 | -| type_tracker.rb:38:24:38:24 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:38:13:38:25 | * | -| type_tracker.rb:38:24:38:24 | 6 | type tracker without call steps with content element 5 or unknown | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:24:38:24 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:24:38:24 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:38:13:38:25 | synthetic splat argument | | type_tracker.rb:39:5:39:9 | [post] array | type tracker without call steps | type_tracker.rb:39:5:39:9 | [post] array | -| type_tracker.rb:39:5:39:12 | * | type tracker without call steps | type_tracker.rb:39:5:39:12 | * | | type_tracker.rb:39:5:39:12 | call to []= | type tracker without call steps | type_tracker.rb:39:5:39:12 | call to []= | +| type_tracker.rb:39:5:39:12 | synthetic splat argument | type tracker without call steps | type_tracker.rb:39:5:39:12 | synthetic splat argument | | type_tracker.rb:39:16:39:18 | __synth__0 | type tracker without call steps | type_tracker.rb:39:16:39:18 | __synth__0 | -| type_tracker.rb:40:5:40:12 | * | type tracker without call steps | type_tracker.rb:40:5:40:12 | * | | type_tracker.rb:40:5:40:12 | ...[...] | type tracker without call steps | type_tracker.rb:40:5:40:12 | ...[...] | +| type_tracker.rb:40:5:40:12 | synthetic splat argument | type tracker without call steps | type_tracker.rb:40:5:40:12 | synthetic splat argument | | type_tracker.rb:40:11:40:11 | 0 | type tracker without call steps | type_tracker.rb:40:11:40:11 | 0 | -| type_tracker.rb:40:11:40:11 | 0 | type tracker without call steps with content element 0 | type_tracker.rb:40:5:40:12 | * | +| type_tracker.rb:40:11:40:11 | 0 | type tracker without call steps with content splat position 0 | type_tracker.rb:40:5:40:12 | synthetic splat argument | | type_tracker.rb:42:5:42:10 | array2 | type tracker without call steps | type_tracker.rb:42:5:42:10 | array2 | -| type_tracker.rb:42:14:42:26 | * | type tracker without call steps | type_tracker.rb:42:14:42:26 | * | | type_tracker.rb:42:14:42:26 | Array | type tracker without call steps | type_tracker.rb:42:14:42:26 | Array | | type_tracker.rb:42:14:42:26 | call to [] | type tracker without call steps | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:14:42:26 | synthetic splat argument | type tracker without call steps | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:14:42:26 | synthetic splat argument | type tracker without call steps | type_tracker.rb:42:14:42:26 | synthetic splat argument | | type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps | type_tracker.rb:42:15:42:15 | 1 | | type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:42:14:42:26 | * | -| type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps with content element 0 or unknown | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:15:42:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:42:14:42:26 | synthetic splat argument | | type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps | type_tracker.rb:42:17:42:17 | 2 | | type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:42:14:42:26 | * | -| type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps with content element 1 or unknown | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:17:42:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:42:14:42:26 | synthetic splat argument | | type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps | type_tracker.rb:42:19:42:19 | 3 | | type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:42:14:42:26 | * | -| type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps with content element 2 or unknown | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:19:42:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:42:14:42:26 | synthetic splat argument | | type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps | type_tracker.rb:42:21:42:21 | 4 | | type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:42:14:42:26 | * | -| type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps with content element 3 or unknown | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:21:42:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:42:14:42:26 | synthetic splat argument | | type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps | type_tracker.rb:42:23:42:23 | 5 | | type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:42:14:42:26 | * | -| type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps with content element 4 or unknown | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:23:42:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:42:14:42:26 | synthetic splat argument | | type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps | type_tracker.rb:42:25:42:25 | 6 | | type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | -| type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:42:14:42:26 | * | -| type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps with content element 5 or unknown | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:25:42:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:42:14:42:26 | synthetic splat argument | | type_tracker.rb:43:5:43:10 | [post] array2 | type tracker without call steps | type_tracker.rb:43:5:43:10 | [post] array2 | -| type_tracker.rb:43:5:43:13 | * | type tracker without call steps | type_tracker.rb:43:5:43:13 | * | | type_tracker.rb:43:5:43:13 | call to []= | type tracker without call steps | type_tracker.rb:43:5:43:13 | call to []= | +| type_tracker.rb:43:5:43:13 | synthetic splat argument | type tracker without call steps | type_tracker.rb:43:5:43:13 | synthetic splat argument | | type_tracker.rb:43:12:43:12 | 0 | type tracker without call steps | type_tracker.rb:43:12:43:12 | 0 | -| type_tracker.rb:43:12:43:12 | 0 | type tracker without call steps with content element 0 | type_tracker.rb:43:5:43:13 | * | +| type_tracker.rb:43:12:43:12 | 0 | type tracker without call steps with content splat position 0 | type_tracker.rb:43:5:43:13 | synthetic splat argument | | type_tracker.rb:43:17:43:19 | __synth__0 | type tracker without call steps | type_tracker.rb:43:17:43:19 | __synth__0 | -| type_tracker.rb:44:5:44:13 | * | type tracker without call steps | type_tracker.rb:44:5:44:13 | * | | type_tracker.rb:44:5:44:13 | ...[...] | type tracker without call steps | type_tracker.rb:44:5:44:13 | ...[...] | +| type_tracker.rb:44:5:44:13 | synthetic splat argument | type tracker without call steps | type_tracker.rb:44:5:44:13 | synthetic splat argument | | type_tracker.rb:46:5:46:10 | array3 | type tracker without call steps | type_tracker.rb:46:5:46:10 | array3 | -| type_tracker.rb:46:14:46:26 | * | type tracker without call steps | type_tracker.rb:46:14:46:26 | * | | type_tracker.rb:46:14:46:26 | Array | type tracker without call steps | type_tracker.rb:46:14:46:26 | Array | | type_tracker.rb:46:14:46:26 | call to [] | type tracker without call steps | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:14:46:26 | synthetic splat argument | type tracker without call steps | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:14:46:26 | synthetic splat argument | type tracker without call steps | type_tracker.rb:46:14:46:26 | synthetic splat argument | | type_tracker.rb:46:15:46:15 | 1 | type tracker without call steps | type_tracker.rb:46:15:46:15 | 1 | -| type_tracker.rb:46:15:46:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:46:14:46:26 | * | -| type_tracker.rb:46:15:46:15 | 1 | type tracker without call steps with content element 0 or unknown | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:15:46:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:15:46:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:46:14:46:26 | synthetic splat argument | | type_tracker.rb:46:17:46:17 | 2 | type tracker without call steps | type_tracker.rb:46:17:46:17 | 2 | | type_tracker.rb:46:17:46:17 | 2 | type tracker without call steps | type_tracker.rb:48:5:48:13 | ...[...] | -| type_tracker.rb:46:17:46:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:46:14:46:26 | * | -| type_tracker.rb:46:17:46:17 | 2 | type tracker without call steps with content element 1 or unknown | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:17:46:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:17:46:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:46:14:46:26 | synthetic splat argument | | type_tracker.rb:46:19:46:19 | 3 | type tracker without call steps | type_tracker.rb:46:19:46:19 | 3 | -| type_tracker.rb:46:19:46:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:46:14:46:26 | * | -| type_tracker.rb:46:19:46:19 | 3 | type tracker without call steps with content element 2 or unknown | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:19:46:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:19:46:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:46:14:46:26 | synthetic splat argument | | type_tracker.rb:46:21:46:21 | 4 | type tracker without call steps | type_tracker.rb:46:21:46:21 | 4 | -| type_tracker.rb:46:21:46:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:46:14:46:26 | * | -| type_tracker.rb:46:21:46:21 | 4 | type tracker without call steps with content element 3 or unknown | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:21:46:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:21:46:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:46:14:46:26 | synthetic splat argument | | type_tracker.rb:46:23:46:23 | 5 | type tracker without call steps | type_tracker.rb:46:23:46:23 | 5 | -| type_tracker.rb:46:23:46:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:46:14:46:26 | * | -| type_tracker.rb:46:23:46:23 | 5 | type tracker without call steps with content element 4 or unknown | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:23:46:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:23:46:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:46:14:46:26 | synthetic splat argument | | type_tracker.rb:46:25:46:25 | 6 | type tracker without call steps | type_tracker.rb:46:25:46:25 | 6 | -| type_tracker.rb:46:25:46:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:46:14:46:26 | * | -| type_tracker.rb:46:25:46:25 | 6 | type tracker without call steps with content element 5 or unknown | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:25:46:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:25:46:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:46:14:46:26 | synthetic splat argument | | type_tracker.rb:47:5:47:10 | [post] array3 | type tracker without call steps | type_tracker.rb:47:5:47:10 | [post] array3 | -| type_tracker.rb:47:5:47:13 | * | type tracker without call steps | type_tracker.rb:47:5:47:13 | * | | type_tracker.rb:47:5:47:13 | call to []= | type tracker without call steps | type_tracker.rb:47:5:47:13 | call to []= | +| type_tracker.rb:47:5:47:13 | synthetic splat argument | type tracker without call steps | type_tracker.rb:47:5:47:13 | synthetic splat argument | | type_tracker.rb:47:12:47:12 | 0 | type tracker without call steps | type_tracker.rb:47:12:47:12 | 0 | -| type_tracker.rb:47:12:47:12 | 0 | type tracker without call steps with content element 0 | type_tracker.rb:47:5:47:13 | * | +| type_tracker.rb:47:12:47:12 | 0 | type tracker without call steps with content splat position 0 | type_tracker.rb:47:5:47:13 | synthetic splat argument | | type_tracker.rb:47:17:47:19 | __synth__0 | type tracker without call steps | type_tracker.rb:47:17:47:19 | __synth__0 | -| type_tracker.rb:48:5:48:13 | * | type tracker without call steps | type_tracker.rb:48:5:48:13 | * | | type_tracker.rb:48:5:48:13 | ...[...] | type tracker without call steps | type_tracker.rb:48:5:48:13 | ...[...] | +| type_tracker.rb:48:5:48:13 | synthetic splat argument | type tracker without call steps | type_tracker.rb:48:5:48:13 | synthetic splat argument | | type_tracker.rb:48:12:48:12 | 1 | type tracker without call steps | type_tracker.rb:48:12:48:12 | 1 | -| type_tracker.rb:48:12:48:12 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:48:5:48:13 | * | +| type_tracker.rb:48:12:48:12 | 1 | type tracker without call steps with content splat position 0 | type_tracker.rb:48:5:48:13 | synthetic splat argument | | type_tracker.rb:50:5:50:10 | array4 | type tracker without call steps | type_tracker.rb:50:5:50:10 | array4 | -| type_tracker.rb:50:14:50:26 | * | type tracker without call steps | type_tracker.rb:50:14:50:26 | * | | type_tracker.rb:50:14:50:26 | Array | type tracker without call steps | type_tracker.rb:50:14:50:26 | Array | | type_tracker.rb:50:14:50:26 | call to [] | type tracker without call steps | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:14:50:26 | synthetic splat argument | type tracker without call steps | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:14:50:26 | synthetic splat argument | type tracker without call steps | type_tracker.rb:50:14:50:26 | synthetic splat argument | | type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps | type_tracker.rb:50:15:50:15 | 1 | | type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:50:14:50:26 | * | -| type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps with content element 0 or unknown | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:15:50:15 | 1 | type tracker without call steps with content element 0 | type_tracker.rb:50:14:50:26 | synthetic splat argument | | type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps | type_tracker.rb:50:17:50:17 | 2 | | type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:50:14:50:26 | * | -| type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps with content element 1 or unknown | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:17:50:17 | 2 | type tracker without call steps with content element 1 | type_tracker.rb:50:14:50:26 | synthetic splat argument | | type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps | type_tracker.rb:50:19:50:19 | 3 | | type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:50:14:50:26 | * | -| type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps with content element 2 or unknown | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:19:50:19 | 3 | type tracker without call steps with content element 2 | type_tracker.rb:50:14:50:26 | synthetic splat argument | | type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps | type_tracker.rb:50:21:50:21 | 4 | | type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:50:14:50:26 | * | -| type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps with content element 3 or unknown | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:21:50:21 | 4 | type tracker without call steps with content element 3 | type_tracker.rb:50:14:50:26 | synthetic splat argument | | type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps | type_tracker.rb:50:23:50:23 | 5 | | type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:50:14:50:26 | * | -| type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps with content element 4 or unknown | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:23:50:23 | 5 | type tracker without call steps with content element 4 | type_tracker.rb:50:14:50:26 | synthetic splat argument | | type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps | type_tracker.rb:50:25:50:25 | 6 | | type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | -| type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:50:14:50:26 | * | -| type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps with content element 5 or unknown | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:25:50:25 | 6 | type tracker without call steps with content element 5 | type_tracker.rb:50:14:50:26 | synthetic splat argument | | type_tracker.rb:51:5:51:10 | [post] array4 | type tracker without call steps | type_tracker.rb:51:5:51:10 | [post] array4 | -| type_tracker.rb:51:5:51:13 | * | type tracker without call steps | type_tracker.rb:51:5:51:13 | * | | type_tracker.rb:51:5:51:13 | call to []= | type tracker without call steps | type_tracker.rb:51:5:51:13 | call to []= | +| type_tracker.rb:51:5:51:13 | synthetic splat argument | type tracker without call steps | type_tracker.rb:51:5:51:13 | synthetic splat argument | | type_tracker.rb:51:17:51:19 | __synth__0 | type tracker without call steps | type_tracker.rb:51:17:51:19 | __synth__0 | -| type_tracker.rb:52:5:52:13 | * | type tracker without call steps | type_tracker.rb:52:5:52:13 | * | | type_tracker.rb:52:5:52:13 | ...[...] | type tracker without call steps | type_tracker.rb:52:5:52:13 | ...[...] | +| type_tracker.rb:52:5:52:13 | synthetic splat argument | type tracker without call steps | type_tracker.rb:52:5:52:13 | synthetic splat argument | trackEnd | type_tracker.rb:1:1:10:3 | self (Container) | type_tracker.rb:1:1:10:3 | self (Container) | | type_tracker.rb:1:1:53:4 | self (type_tracker.rb) | type_tracker.rb:1:1:53:4 | self (type_tracker.rb) | @@ -348,7 +353,7 @@ trackEnd | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:7:5:9:7 | self (field) | | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:7:5:9:7 | self in field | | type_tracker.rb:2:5:5:7 | self in field= | type_tracker.rb:8:9:8:14 | self | -| type_tracker.rb:2:5:5:7 | synthetic *args | type_tracker.rb:2:5:5:7 | synthetic *args | +| type_tracker.rb:2:5:5:7 | synthetic splat parameter | type_tracker.rb:2:5:5:7 | synthetic splat parameter | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:2:16:2:18 | val | @@ -358,8 +363,8 @@ trackEnd | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:8:9:8:14 | @field | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:14:5:14:13 | call to field= | | type_tracker.rb:2:16:2:18 | val | type_tracker.rb:15:10:15:18 | call to field | -| type_tracker.rb:3:9:3:23 | * | type_tracker.rb:3:9:3:23 | * | | type_tracker.rb:3:9:3:23 | call to puts | type_tracker.rb:3:9:3:23 | call to puts | +| type_tracker.rb:3:9:3:23 | synthetic splat argument | type_tracker.rb:3:9:3:23 | synthetic splat argument | | type_tracker.rb:3:14:3:23 | call to field | type_tracker.rb:3:14:3:23 | call to field | | type_tracker.rb:4:9:4:14 | @field | type_tracker.rb:4:9:4:14 | @field | | type_tracker.rb:7:5:9:7 | &block | type_tracker.rb:7:5:9:7 | &block | @@ -396,9 +401,9 @@ trackEnd | type_tracker.rb:14:5:14:7 | [post] var | type_tracker.rb:8:9:8:14 | self | | type_tracker.rb:14:5:14:7 | [post] var | type_tracker.rb:14:5:14:7 | [post] var | | type_tracker.rb:14:5:14:7 | [post] var | type_tracker.rb:15:10:15:12 | var | -| type_tracker.rb:14:5:14:13 | * | type_tracker.rb:2:5:5:7 | synthetic *args | -| type_tracker.rb:14:5:14:13 | * | type_tracker.rb:14:5:14:13 | * | | type_tracker.rb:14:5:14:13 | call to field= | type_tracker.rb:14:5:14:13 | call to field= | +| type_tracker.rb:14:5:14:13 | synthetic splat argument | type_tracker.rb:2:5:5:7 | synthetic splat parameter | +| type_tracker.rb:14:5:14:13 | synthetic splat argument | type_tracker.rb:14:5:14:13 | synthetic splat argument | | type_tracker.rb:14:17:14:23 | "hello" | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:14:17:14:23 | "hello" | type_tracker.rb:2:16:2:18 | val | | type_tracker.rb:14:17:14:23 | "hello" | type_tracker.rb:4:9:4:20 | ... = ... | @@ -412,8 +417,8 @@ trackEnd | type_tracker.rb:14:17:14:23 | "hello" | type_tracker.rb:14:17:14:23 | __synth__0 | | type_tracker.rb:14:17:14:23 | "hello" | type_tracker.rb:15:10:15:18 | call to field | | type_tracker.rb:14:17:14:23 | __synth__0 | type_tracker.rb:14:17:14:23 | __synth__0 | -| type_tracker.rb:15:5:15:18 | * | type_tracker.rb:15:5:15:18 | * | | type_tracker.rb:15:5:15:18 | call to puts | type_tracker.rb:15:5:15:18 | call to puts | +| type_tracker.rb:15:5:15:18 | synthetic splat argument | type_tracker.rb:15:5:15:18 | synthetic splat argument | | type_tracker.rb:15:10:15:18 | call to field | type_tracker.rb:15:10:15:18 | call to field | | type_tracker.rb:18:1:21:3 | &block | type_tracker.rb:18:1:21:3 | &block | | type_tracker.rb:18:1:21:3 | positional | type_tracker.rb:18:1:21:3 | positional | @@ -421,7 +426,7 @@ trackEnd | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:18:1:21:3 | self in positional | | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:19:5:19:11 | self | | type_tracker.rb:18:1:21:3 | self in positional | type_tracker.rb:20:5:20:11 | self | -| type_tracker.rb:18:1:21:3 | synthetic *args | type_tracker.rb:18:1:21:3 | synthetic *args | +| type_tracker.rb:18:1:21:3 | synthetic splat parameter | type_tracker.rb:18:1:21:3 | synthetic splat parameter | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:18:16:18:17 | p1 | type_tracker.rb:18:16:18:17 | p1 | @@ -430,14 +435,14 @@ trackEnd | type_tracker.rb:18:20:18:21 | p2 | type_tracker.rb:18:20:18:21 | p2 | | type_tracker.rb:18:20:18:21 | p2 | type_tracker.rb:18:20:18:21 | p2 | | type_tracker.rb:18:20:18:21 | p2 | type_tracker.rb:20:10:20:11 | p2 | -| type_tracker.rb:19:5:19:11 | * | type_tracker.rb:19:5:19:11 | * | | type_tracker.rb:19:5:19:11 | call to puts | type_tracker.rb:19:5:19:11 | call to puts | -| type_tracker.rb:20:5:20:11 | * | type_tracker.rb:20:5:20:11 | * | +| type_tracker.rb:19:5:19:11 | synthetic splat argument | type_tracker.rb:19:5:19:11 | synthetic splat argument | | type_tracker.rb:20:5:20:11 | call to puts | type_tracker.rb:20:5:20:11 | call to puts | | type_tracker.rb:20:5:20:11 | call to puts | type_tracker.rb:23:1:23:16 | call to positional | -| type_tracker.rb:23:1:23:16 | * | type_tracker.rb:18:1:21:3 | synthetic *args | -| type_tracker.rb:23:1:23:16 | * | type_tracker.rb:23:1:23:16 | * | +| type_tracker.rb:20:5:20:11 | synthetic splat argument | type_tracker.rb:20:5:20:11 | synthetic splat argument | | type_tracker.rb:23:1:23:16 | call to positional | type_tracker.rb:23:1:23:16 | call to positional | +| type_tracker.rb:23:1:23:16 | synthetic splat argument | type_tracker.rb:18:1:21:3 | synthetic splat parameter | +| type_tracker.rb:23:1:23:16 | synthetic splat argument | type_tracker.rb:23:1:23:16 | synthetic splat argument | | type_tracker.rb:23:12:23:12 | 1 | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:23:12:23:12 | 1 | type_tracker.rb:18:16:18:17 | p1 | | type_tracker.rb:23:12:23:12 | 1 | type_tracker.rb:19:10:19:11 | p1 | @@ -447,12 +452,12 @@ trackEnd | type_tracker.rb:23:15:23:15 | 2 | type_tracker.rb:20:10:20:11 | p2 | | type_tracker.rb:23:15:23:15 | 2 | type_tracker.rb:23:15:23:15 | 2 | | type_tracker.rb:25:1:28:3 | &block | type_tracker.rb:25:1:28:3 | &block | -| type_tracker.rb:25:1:28:3 | **kwargs | type_tracker.rb:25:1:28:3 | **kwargs | | type_tracker.rb:25:1:28:3 | keyword | type_tracker.rb:25:1:28:3 | keyword | | type_tracker.rb:25:1:28:3 | self in keyword | type_tracker.rb:25:1:28:3 | self (keyword) | | type_tracker.rb:25:1:28:3 | self in keyword | type_tracker.rb:25:1:28:3 | self in keyword | | type_tracker.rb:25:1:28:3 | self in keyword | type_tracker.rb:26:5:26:11 | self | | type_tracker.rb:25:1:28:3 | self in keyword | type_tracker.rb:27:5:27:11 | self | +| type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | | type_tracker.rb:25:13:25:14 | p1 | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:25:13:25:14 | p1 | type_tracker.rb:25:13:25:14 | p1 | @@ -461,16 +466,16 @@ trackEnd | type_tracker.rb:25:18:25:19 | p2 | type_tracker.rb:25:18:25:19 | p2 | | type_tracker.rb:25:18:25:19 | p2 | type_tracker.rb:25:18:25:19 | p2 | | type_tracker.rb:25:18:25:19 | p2 | type_tracker.rb:27:10:27:11 | p2 | -| type_tracker.rb:26:5:26:11 | * | type_tracker.rb:26:5:26:11 | * | | type_tracker.rb:26:5:26:11 | call to puts | type_tracker.rb:26:5:26:11 | call to puts | -| type_tracker.rb:27:5:27:11 | * | type_tracker.rb:27:5:27:11 | * | +| type_tracker.rb:26:5:26:11 | synthetic splat argument | type_tracker.rb:26:5:26:11 | synthetic splat argument | | type_tracker.rb:27:5:27:11 | call to puts | type_tracker.rb:27:5:27:11 | call to puts | | type_tracker.rb:27:5:27:11 | call to puts | type_tracker.rb:30:1:30:21 | call to keyword | | type_tracker.rb:27:5:27:11 | call to puts | type_tracker.rb:31:1:31:21 | call to keyword | | type_tracker.rb:27:5:27:11 | call to puts | type_tracker.rb:32:1:32:27 | call to keyword | -| type_tracker.rb:30:1:30:21 | ** | type_tracker.rb:25:1:28:3 | **kwargs | -| type_tracker.rb:30:1:30:21 | ** | type_tracker.rb:30:1:30:21 | ** | +| type_tracker.rb:27:5:27:11 | synthetic splat argument | type_tracker.rb:27:5:27:11 | synthetic splat argument | | type_tracker.rb:30:1:30:21 | call to keyword | type_tracker.rb:30:1:30:21 | call to keyword | +| type_tracker.rb:30:1:30:21 | synthetic hash-splat argument | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:30:1:30:21 | synthetic hash-splat argument | type_tracker.rb:30:1:30:21 | synthetic hash-splat argument | | type_tracker.rb:30:9:30:10 | :p1 | type_tracker.rb:30:9:30:10 | :p1 | | type_tracker.rb:30:9:30:13 | Pair | type_tracker.rb:30:9:30:13 | Pair | | type_tracker.rb:30:13:30:13 | 3 | type_tracker.rb:25:13:25:14 | p1 | @@ -483,9 +488,9 @@ trackEnd | type_tracker.rb:30:20:30:20 | 4 | type_tracker.rb:25:18:25:19 | p2 | | type_tracker.rb:30:20:30:20 | 4 | type_tracker.rb:27:10:27:11 | p2 | | type_tracker.rb:30:20:30:20 | 4 | type_tracker.rb:30:20:30:20 | 4 | -| type_tracker.rb:31:1:31:21 | ** | type_tracker.rb:25:1:28:3 | **kwargs | -| type_tracker.rb:31:1:31:21 | ** | type_tracker.rb:31:1:31:21 | ** | | type_tracker.rb:31:1:31:21 | call to keyword | type_tracker.rb:31:1:31:21 | call to keyword | +| type_tracker.rb:31:1:31:21 | synthetic hash-splat argument | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:31:1:31:21 | synthetic hash-splat argument | type_tracker.rb:31:1:31:21 | synthetic hash-splat argument | | type_tracker.rb:31:9:31:10 | :p2 | type_tracker.rb:31:9:31:10 | :p2 | | type_tracker.rb:31:9:31:13 | Pair | type_tracker.rb:31:9:31:13 | Pair | | type_tracker.rb:31:13:31:13 | 5 | type_tracker.rb:25:18:25:19 | p2 | @@ -498,9 +503,9 @@ trackEnd | type_tracker.rb:31:20:31:20 | 6 | type_tracker.rb:25:13:25:14 | p1 | | type_tracker.rb:31:20:31:20 | 6 | type_tracker.rb:26:10:26:11 | p1 | | type_tracker.rb:31:20:31:20 | 6 | type_tracker.rb:31:20:31:20 | 6 | -| type_tracker.rb:32:1:32:27 | ** | type_tracker.rb:25:1:28:3 | **kwargs | -| type_tracker.rb:32:1:32:27 | ** | type_tracker.rb:32:1:32:27 | ** | | type_tracker.rb:32:1:32:27 | call to keyword | type_tracker.rb:32:1:32:27 | call to keyword | +| type_tracker.rb:32:1:32:27 | synthetic hash-splat argument | type_tracker.rb:25:1:28:3 | synthetic hash-splat parameter | +| type_tracker.rb:32:1:32:27 | synthetic hash-splat argument | type_tracker.rb:32:1:32:27 | synthetic hash-splat argument | | type_tracker.rb:32:9:32:11 | :p2 | type_tracker.rb:32:9:32:11 | :p2 | | type_tracker.rb:32:9:32:16 | Pair | type_tracker.rb:32:9:32:16 | Pair | | type_tracker.rb:32:16:32:16 | 7 | type_tracker.rb:25:18:25:19 | p2 | @@ -515,7 +520,7 @@ trackEnd | type_tracker.rb:32:26:32:26 | 8 | type_tracker.rb:32:26:32:26 | 8 | | type_tracker.rb:34:1:53:3 | &block | type_tracker.rb:34:1:53:3 | &block | | type_tracker.rb:34:1:53:3 | self in throughArray | type_tracker.rb:34:1:53:3 | self in throughArray | -| type_tracker.rb:34:1:53:3 | synthetic *args | type_tracker.rb:34:1:53:3 | synthetic *args | +| type_tracker.rb:34:1:53:3 | synthetic splat parameter | type_tracker.rb:34:1:53:3 | synthetic splat parameter | | type_tracker.rb:34:1:53:3 | throughArray | type_tracker.rb:34:1:53:3 | throughArray | | type_tracker.rb:34:18:34:20 | obj | type_tracker.rb:34:18:34:20 | obj | | type_tracker.rb:34:18:34:20 | obj | type_tracker.rb:34:18:34:20 | obj | @@ -556,23 +561,32 @@ trackEnd | type_tracker.rb:34:26:34:26 | z | type_tracker.rb:34:26:34:26 | z | | type_tracker.rb:34:26:34:26 | z | type_tracker.rb:52:12:52:12 | z | | type_tracker.rb:35:5:35:7 | tmp | type_tracker.rb:35:5:35:7 | tmp | -| type_tracker.rb:35:11:35:15 | * | type_tracker.rb:35:11:35:15 | * | | type_tracker.rb:35:11:35:15 | Array | type_tracker.rb:35:11:35:15 | Array | | type_tracker.rb:35:11:35:15 | call to [] | type_tracker.rb:35:5:35:7 | tmp | | type_tracker.rb:35:11:35:15 | call to [] | type_tracker.rb:35:5:35:15 | ... = ... | | type_tracker.rb:35:11:35:15 | call to [] | type_tracker.rb:35:11:35:15 | call to [] | | type_tracker.rb:35:11:35:15 | call to [] | type_tracker.rb:36:5:36:7 | tmp | -| type_tracker.rb:36:5:36:10 | * | type_tracker.rb:36:5:36:10 | * | +| type_tracker.rb:35:11:35:15 | synthetic splat argument | type_tracker.rb:35:5:35:7 | tmp | +| type_tracker.rb:35:11:35:15 | synthetic splat argument | type_tracker.rb:35:5:35:15 | ... = ... | +| type_tracker.rb:35:11:35:15 | synthetic splat argument | type_tracker.rb:35:11:35:15 | call to [] | +| type_tracker.rb:35:11:35:15 | synthetic splat argument | type_tracker.rb:35:11:35:15 | synthetic splat argument | +| type_tracker.rb:35:11:35:15 | synthetic splat argument | type_tracker.rb:36:5:36:7 | tmp | | type_tracker.rb:36:5:36:10 | ...[...] | type_tracker.rb:36:5:36:10 | ...[...] | +| type_tracker.rb:36:5:36:10 | synthetic splat argument | type_tracker.rb:36:5:36:10 | synthetic splat argument | | type_tracker.rb:36:9:36:9 | 0 | type_tracker.rb:36:9:36:9 | 0 | | type_tracker.rb:38:5:38:9 | array | type_tracker.rb:38:5:38:9 | array | -| type_tracker.rb:38:13:38:25 | * | type_tracker.rb:38:13:38:25 | * | | type_tracker.rb:38:13:38:25 | Array | type_tracker.rb:38:13:38:25 | Array | | type_tracker.rb:38:13:38:25 | call to [] | type_tracker.rb:38:5:38:9 | array | | type_tracker.rb:38:13:38:25 | call to [] | type_tracker.rb:38:5:38:25 | ... = ... | | type_tracker.rb:38:13:38:25 | call to [] | type_tracker.rb:38:13:38:25 | call to [] | | type_tracker.rb:38:13:38:25 | call to [] | type_tracker.rb:39:5:39:9 | array | | type_tracker.rb:38:13:38:25 | call to [] | type_tracker.rb:40:5:40:9 | array | +| type_tracker.rb:38:13:38:25 | synthetic splat argument | type_tracker.rb:38:5:38:9 | array | +| type_tracker.rb:38:13:38:25 | synthetic splat argument | type_tracker.rb:38:5:38:25 | ... = ... | +| type_tracker.rb:38:13:38:25 | synthetic splat argument | type_tracker.rb:38:13:38:25 | call to [] | +| type_tracker.rb:38:13:38:25 | synthetic splat argument | type_tracker.rb:38:13:38:25 | synthetic splat argument | +| type_tracker.rb:38:13:38:25 | synthetic splat argument | type_tracker.rb:39:5:39:9 | array | +| type_tracker.rb:38:13:38:25 | synthetic splat argument | type_tracker.rb:40:5:40:9 | array | | type_tracker.rb:38:14:38:14 | 1 | type_tracker.rb:38:14:38:14 | 1 | | type_tracker.rb:38:14:38:14 | 1 | type_tracker.rb:40:5:40:12 | ...[...] | | type_tracker.rb:38:16:38:16 | 2 | type_tracker.rb:38:16:38:16 | 2 | @@ -582,20 +596,25 @@ trackEnd | type_tracker.rb:38:24:38:24 | 6 | type_tracker.rb:38:24:38:24 | 6 | | type_tracker.rb:39:5:39:9 | [post] array | type_tracker.rb:39:5:39:9 | [post] array | | type_tracker.rb:39:5:39:9 | [post] array | type_tracker.rb:40:5:40:9 | array | -| type_tracker.rb:39:5:39:12 | * | type_tracker.rb:39:5:39:12 | * | | type_tracker.rb:39:5:39:12 | call to []= | type_tracker.rb:39:5:39:12 | call to []= | +| type_tracker.rb:39:5:39:12 | synthetic splat argument | type_tracker.rb:39:5:39:12 | synthetic splat argument | | type_tracker.rb:39:16:39:18 | __synth__0 | type_tracker.rb:39:16:39:18 | __synth__0 | -| type_tracker.rb:40:5:40:12 | * | type_tracker.rb:40:5:40:12 | * | | type_tracker.rb:40:5:40:12 | ...[...] | type_tracker.rb:40:5:40:12 | ...[...] | +| type_tracker.rb:40:5:40:12 | synthetic splat argument | type_tracker.rb:40:5:40:12 | synthetic splat argument | | type_tracker.rb:40:11:40:11 | 0 | type_tracker.rb:40:11:40:11 | 0 | | type_tracker.rb:42:5:42:10 | array2 | type_tracker.rb:42:5:42:10 | array2 | -| type_tracker.rb:42:14:42:26 | * | type_tracker.rb:42:14:42:26 | * | | type_tracker.rb:42:14:42:26 | Array | type_tracker.rb:42:14:42:26 | Array | | type_tracker.rb:42:14:42:26 | call to [] | type_tracker.rb:42:5:42:10 | array2 | | type_tracker.rb:42:14:42:26 | call to [] | type_tracker.rb:42:5:42:26 | ... = ... | | type_tracker.rb:42:14:42:26 | call to [] | type_tracker.rb:42:14:42:26 | call to [] | | type_tracker.rb:42:14:42:26 | call to [] | type_tracker.rb:43:5:43:10 | array2 | | type_tracker.rb:42:14:42:26 | call to [] | type_tracker.rb:44:5:44:10 | array2 | +| type_tracker.rb:42:14:42:26 | synthetic splat argument | type_tracker.rb:42:5:42:10 | array2 | +| type_tracker.rb:42:14:42:26 | synthetic splat argument | type_tracker.rb:42:5:42:26 | ... = ... | +| type_tracker.rb:42:14:42:26 | synthetic splat argument | type_tracker.rb:42:14:42:26 | call to [] | +| type_tracker.rb:42:14:42:26 | synthetic splat argument | type_tracker.rb:42:14:42:26 | synthetic splat argument | +| type_tracker.rb:42:14:42:26 | synthetic splat argument | type_tracker.rb:43:5:43:10 | array2 | +| type_tracker.rb:42:14:42:26 | synthetic splat argument | type_tracker.rb:44:5:44:10 | array2 | | type_tracker.rb:42:15:42:15 | 1 | type_tracker.rb:42:15:42:15 | 1 | | type_tracker.rb:42:15:42:15 | 1 | type_tracker.rb:44:5:44:13 | ...[...] | | type_tracker.rb:42:17:42:17 | 2 | type_tracker.rb:42:17:42:17 | 2 | @@ -610,20 +629,25 @@ trackEnd | type_tracker.rb:42:25:42:25 | 6 | type_tracker.rb:44:5:44:13 | ...[...] | | type_tracker.rb:43:5:43:10 | [post] array2 | type_tracker.rb:43:5:43:10 | [post] array2 | | type_tracker.rb:43:5:43:10 | [post] array2 | type_tracker.rb:44:5:44:10 | array2 | -| type_tracker.rb:43:5:43:13 | * | type_tracker.rb:43:5:43:13 | * | | type_tracker.rb:43:5:43:13 | call to []= | type_tracker.rb:43:5:43:13 | call to []= | +| type_tracker.rb:43:5:43:13 | synthetic splat argument | type_tracker.rb:43:5:43:13 | synthetic splat argument | | type_tracker.rb:43:12:43:12 | 0 | type_tracker.rb:43:12:43:12 | 0 | | type_tracker.rb:43:17:43:19 | __synth__0 | type_tracker.rb:43:17:43:19 | __synth__0 | -| type_tracker.rb:44:5:44:13 | * | type_tracker.rb:44:5:44:13 | * | | type_tracker.rb:44:5:44:13 | ...[...] | type_tracker.rb:44:5:44:13 | ...[...] | +| type_tracker.rb:44:5:44:13 | synthetic splat argument | type_tracker.rb:44:5:44:13 | synthetic splat argument | | type_tracker.rb:46:5:46:10 | array3 | type_tracker.rb:46:5:46:10 | array3 | -| type_tracker.rb:46:14:46:26 | * | type_tracker.rb:46:14:46:26 | * | | type_tracker.rb:46:14:46:26 | Array | type_tracker.rb:46:14:46:26 | Array | | type_tracker.rb:46:14:46:26 | call to [] | type_tracker.rb:46:5:46:10 | array3 | | type_tracker.rb:46:14:46:26 | call to [] | type_tracker.rb:46:5:46:26 | ... = ... | | type_tracker.rb:46:14:46:26 | call to [] | type_tracker.rb:46:14:46:26 | call to [] | | type_tracker.rb:46:14:46:26 | call to [] | type_tracker.rb:47:5:47:10 | array3 | | type_tracker.rb:46:14:46:26 | call to [] | type_tracker.rb:48:5:48:10 | array3 | +| type_tracker.rb:46:14:46:26 | synthetic splat argument | type_tracker.rb:46:5:46:10 | array3 | +| type_tracker.rb:46:14:46:26 | synthetic splat argument | type_tracker.rb:46:5:46:26 | ... = ... | +| type_tracker.rb:46:14:46:26 | synthetic splat argument | type_tracker.rb:46:14:46:26 | call to [] | +| type_tracker.rb:46:14:46:26 | synthetic splat argument | type_tracker.rb:46:14:46:26 | synthetic splat argument | +| type_tracker.rb:46:14:46:26 | synthetic splat argument | type_tracker.rb:47:5:47:10 | array3 | +| type_tracker.rb:46:14:46:26 | synthetic splat argument | type_tracker.rb:48:5:48:10 | array3 | | type_tracker.rb:46:15:46:15 | 1 | type_tracker.rb:46:15:46:15 | 1 | | type_tracker.rb:46:17:46:17 | 2 | type_tracker.rb:46:17:46:17 | 2 | | type_tracker.rb:46:17:46:17 | 2 | type_tracker.rb:48:5:48:13 | ...[...] | @@ -633,21 +657,26 @@ trackEnd | type_tracker.rb:46:25:46:25 | 6 | type_tracker.rb:46:25:46:25 | 6 | | type_tracker.rb:47:5:47:10 | [post] array3 | type_tracker.rb:47:5:47:10 | [post] array3 | | type_tracker.rb:47:5:47:10 | [post] array3 | type_tracker.rb:48:5:48:10 | array3 | -| type_tracker.rb:47:5:47:13 | * | type_tracker.rb:47:5:47:13 | * | | type_tracker.rb:47:5:47:13 | call to []= | type_tracker.rb:47:5:47:13 | call to []= | +| type_tracker.rb:47:5:47:13 | synthetic splat argument | type_tracker.rb:47:5:47:13 | synthetic splat argument | | type_tracker.rb:47:12:47:12 | 0 | type_tracker.rb:47:12:47:12 | 0 | | type_tracker.rb:47:17:47:19 | __synth__0 | type_tracker.rb:47:17:47:19 | __synth__0 | -| type_tracker.rb:48:5:48:13 | * | type_tracker.rb:48:5:48:13 | * | | type_tracker.rb:48:5:48:13 | ...[...] | type_tracker.rb:48:5:48:13 | ...[...] | +| type_tracker.rb:48:5:48:13 | synthetic splat argument | type_tracker.rb:48:5:48:13 | synthetic splat argument | | type_tracker.rb:48:12:48:12 | 1 | type_tracker.rb:48:12:48:12 | 1 | | type_tracker.rb:50:5:50:10 | array4 | type_tracker.rb:50:5:50:10 | array4 | -| type_tracker.rb:50:14:50:26 | * | type_tracker.rb:50:14:50:26 | * | | type_tracker.rb:50:14:50:26 | Array | type_tracker.rb:50:14:50:26 | Array | | type_tracker.rb:50:14:50:26 | call to [] | type_tracker.rb:50:5:50:10 | array4 | | type_tracker.rb:50:14:50:26 | call to [] | type_tracker.rb:50:5:50:26 | ... = ... | | type_tracker.rb:50:14:50:26 | call to [] | type_tracker.rb:50:14:50:26 | call to [] | | type_tracker.rb:50:14:50:26 | call to [] | type_tracker.rb:51:5:51:10 | array4 | | type_tracker.rb:50:14:50:26 | call to [] | type_tracker.rb:52:5:52:10 | array4 | +| type_tracker.rb:50:14:50:26 | synthetic splat argument | type_tracker.rb:50:5:50:10 | array4 | +| type_tracker.rb:50:14:50:26 | synthetic splat argument | type_tracker.rb:50:5:50:26 | ... = ... | +| type_tracker.rb:50:14:50:26 | synthetic splat argument | type_tracker.rb:50:14:50:26 | call to [] | +| type_tracker.rb:50:14:50:26 | synthetic splat argument | type_tracker.rb:50:14:50:26 | synthetic splat argument | +| type_tracker.rb:50:14:50:26 | synthetic splat argument | type_tracker.rb:51:5:51:10 | array4 | +| type_tracker.rb:50:14:50:26 | synthetic splat argument | type_tracker.rb:52:5:52:10 | array4 | | type_tracker.rb:50:15:50:15 | 1 | type_tracker.rb:50:15:50:15 | 1 | | type_tracker.rb:50:15:50:15 | 1 | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:50:17:50:17 | 2 | type_tracker.rb:50:17:50:17 | 2 | @@ -662,10 +691,10 @@ trackEnd | type_tracker.rb:50:25:50:25 | 6 | type_tracker.rb:52:5:52:13 | ...[...] | | type_tracker.rb:51:5:51:10 | [post] array4 | type_tracker.rb:51:5:51:10 | [post] array4 | | type_tracker.rb:51:5:51:10 | [post] array4 | type_tracker.rb:52:5:52:10 | array4 | -| type_tracker.rb:51:5:51:13 | * | type_tracker.rb:51:5:51:13 | * | | type_tracker.rb:51:5:51:13 | call to []= | type_tracker.rb:51:5:51:13 | call to []= | +| type_tracker.rb:51:5:51:13 | synthetic splat argument | type_tracker.rb:51:5:51:13 | synthetic splat argument | | type_tracker.rb:51:17:51:19 | __synth__0 | type_tracker.rb:51:17:51:19 | __synth__0 | -| type_tracker.rb:52:5:52:13 | * | type_tracker.rb:52:5:52:13 | * | | type_tracker.rb:52:5:52:13 | ...[...] | type_tracker.rb:52:5:52:13 | ...[...] | +| type_tracker.rb:52:5:52:13 | synthetic splat argument | type_tracker.rb:52:5:52:13 | synthetic splat argument | forwardButNoBackwardFlow backwardButNoForwardFlow diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected index 26bf3db4028..a0349ec9ee3 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected +++ b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected @@ -71,21 +71,21 @@ edges | params_flow.rb:107:10:107:33 | call to values_at [element 0] | params_flow.rb:107:10:107:33 | call to values_at | | params_flow.rb:107:10:107:33 | call to values_at [element 1] | params_flow.rb:107:10:107:33 | call to values_at | | params_flow.rb:111:10:111:15 | call to params | params_flow.rb:111:10:111:29 | call to merge | -| params_flow.rb:112:10:112:29 | call to merge [element 0] | params_flow.rb:112:10:112:29 | call to merge | +| params_flow.rb:112:10:112:29 | call to merge [splat position 0] | params_flow.rb:112:10:112:29 | call to merge | | params_flow.rb:112:23:112:28 | call to params | params_flow.rb:112:10:112:29 | call to merge | -| params_flow.rb:112:23:112:28 | call to params | params_flow.rb:112:10:112:29 | call to merge [element 0] | +| params_flow.rb:112:23:112:28 | call to params | params_flow.rb:112:10:112:29 | call to merge [splat position 0] | | params_flow.rb:116:10:116:15 | call to params | params_flow.rb:116:10:116:37 | call to reverse_merge | | params_flow.rb:117:31:117:36 | call to params | params_flow.rb:117:10:117:37 | call to reverse_merge | | params_flow.rb:121:10:121:15 | call to params | params_flow.rb:121:10:121:43 | call to with_defaults | | params_flow.rb:122:31:122:36 | call to params | params_flow.rb:122:10:122:37 | call to with_defaults | | params_flow.rb:126:10:126:15 | call to params | params_flow.rb:126:10:126:30 | call to merge! | -| params_flow.rb:127:10:127:30 | call to merge! [element 0] | params_flow.rb:127:10:127:30 | call to merge! | +| params_flow.rb:127:10:127:30 | call to merge! [splat position 0] | params_flow.rb:127:10:127:30 | call to merge! | | params_flow.rb:127:24:127:29 | call to params | params_flow.rb:127:10:127:30 | call to merge! | -| params_flow.rb:127:24:127:29 | call to params | params_flow.rb:127:10:127:30 | call to merge! [element 0] | +| params_flow.rb:127:24:127:29 | call to params | params_flow.rb:127:10:127:30 | call to merge! [splat position 0] | | params_flow.rb:130:5:130:5 | [post] p | params_flow.rb:131:10:131:10 | p | -| params_flow.rb:130:5:130:5 | [post] p [element 0] | params_flow.rb:131:10:131:10 | p | +| params_flow.rb:130:5:130:5 | [post] p [splat position 0] | params_flow.rb:131:10:131:10 | p | | params_flow.rb:130:14:130:19 | call to params | params_flow.rb:130:5:130:5 | [post] p | -| params_flow.rb:130:14:130:19 | call to params | params_flow.rb:130:5:130:5 | [post] p [element 0] | +| params_flow.rb:130:14:130:19 | call to params | params_flow.rb:130:5:130:5 | [post] p [splat position 0] | | params_flow.rb:135:10:135:15 | call to params | params_flow.rb:135:10:135:38 | call to reverse_merge! | | params_flow.rb:136:32:136:37 | call to params | params_flow.rb:136:10:136:38 | call to reverse_merge! | | params_flow.rb:139:5:139:5 | [post] p | params_flow.rb:140:10:140:10 | p | @@ -198,7 +198,7 @@ nodes | params_flow.rb:111:10:111:15 | call to params | semmle.label | call to params | | params_flow.rb:111:10:111:29 | call to merge | semmle.label | call to merge | | params_flow.rb:112:10:112:29 | call to merge | semmle.label | call to merge | -| params_flow.rb:112:10:112:29 | call to merge [element 0] | semmle.label | call to merge [element 0] | +| params_flow.rb:112:10:112:29 | call to merge [splat position 0] | semmle.label | call to merge [splat position 0] | | params_flow.rb:112:23:112:28 | call to params | semmle.label | call to params | | params_flow.rb:116:10:116:15 | call to params | semmle.label | call to params | | params_flow.rb:116:10:116:37 | call to reverse_merge | semmle.label | call to reverse_merge | @@ -211,10 +211,10 @@ nodes | params_flow.rb:126:10:126:15 | call to params | semmle.label | call to params | | params_flow.rb:126:10:126:30 | call to merge! | semmle.label | call to merge! | | params_flow.rb:127:10:127:30 | call to merge! | semmle.label | call to merge! | -| params_flow.rb:127:10:127:30 | call to merge! [element 0] | semmle.label | call to merge! [element 0] | +| params_flow.rb:127:10:127:30 | call to merge! [splat position 0] | semmle.label | call to merge! [splat position 0] | | params_flow.rb:127:24:127:29 | call to params | semmle.label | call to params | | params_flow.rb:130:5:130:5 | [post] p | semmle.label | [post] p | -| params_flow.rb:130:5:130:5 | [post] p [element 0] | semmle.label | [post] p [element 0] | +| params_flow.rb:130:5:130:5 | [post] p [splat position 0] | semmle.label | [post] p [splat position 0] | | params_flow.rb:130:14:130:19 | call to params | semmle.label | call to params | | params_flow.rb:131:10:131:10 | p | semmle.label | p | | params_flow.rb:135:10:135:15 | call to params | semmle.label | call to params | From ff35f9fb8cd9c49de9b2a8765f4b8c8f75c433c3 Mon Sep 17 00:00:00 2001 From: Taus Date: Wed, 27 Sep 2023 12:29:07 +0000 Subject: [PATCH 691/788] Shared: Clean up `NodeInfo` in shared extractor I was perusing the shared extractor the other day, when I came across the `NodeInfo` struct. I noticed that the `fields` and `subtypes` fields on this struct had two seemingly identical ways of expressing the same thing: `None` and `Some(empty)` (where `empty` is respectively the empty map and the empty vector). As far as I can tell, there's no semantic difference in either case, so we can just elide the option type entirely and use the empty value directly. This has the nice side-effect of cleaning up some of the other code. --- .../tree-sitter-extractor/src/node_types.rs | 38 +++++++++---------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/shared/tree-sitter-extractor/src/node_types.rs b/shared/tree-sitter-extractor/src/node_types.rs index b4135c80175..05c69f45210 100644 --- a/shared/tree-sitter-extractor/src/node_types.rs +++ b/shared/tree-sitter-extractor/src/node_types.rs @@ -114,10 +114,7 @@ pub fn convert_nodes(prefix: &str, nodes: &[NodeInfo]) -> NodeTypeMap { // First, find all the token kinds for node in nodes { - if node.subtypes.is_none() - && node.fields.as_ref().map_or(0, |x| x.len()) == 0 - && node.children.is_none() - { + if node.subtypes.is_empty() && node.fields.is_empty() && node.children.is_none() { let type_name = TypeName { kind: node.kind.clone(), named: node.named, @@ -131,7 +128,8 @@ pub fn convert_nodes(prefix: &str, nodes: &[NodeInfo]) -> NodeTypeMap { let dbscheme_name = escape_name(flattened_name); let ql_class_name = dbscheme_name_to_class_name(&dbscheme_name); let dbscheme_name = format!("{}_{}", prefix, &dbscheme_name); - if let Some(subtypes) = &node.subtypes { + let subtypes = &node.subtypes; + if !subtypes.is_empty() { // It's a tree-sitter supertype node, for which we create a union // type. entries.insert( @@ -147,7 +145,7 @@ pub fn convert_nodes(prefix: &str, nodes: &[NodeInfo]) -> NodeTypeMap { }, }, ); - } else if node.fields.as_ref().map_or(0, |x| x.len()) == 0 && node.children.is_none() { + } else if node.fields.is_empty() && node.children.is_none() { // Token kind, handled above. } else { // It's a product type, defined by a table. @@ -162,17 +160,15 @@ pub fn convert_nodes(prefix: &str, nodes: &[NodeInfo]) -> NodeTypeMap { // If the type also has fields or children, then we create either // auxiliary tables or columns in the defining table for them. - if let Some(node_fields) = &node.fields { - for (field_name, field_info) in node_fields { - add_field( - prefix, - &type_name, - Some(field_name.to_string()), - field_info, - &mut fields, - &token_kinds, - ); - } + for (field_name, field_info) in &node.fields { + add_field( + prefix, + &type_name, + Some(field_name.to_string()), + field_info, + &mut fields, + &token_kinds, + ); } if let Some(children) = &node.children { // Treat children as if they were a field called 'child'. @@ -301,12 +297,12 @@ pub struct NodeInfo { #[serde(rename = "type")] pub kind: String, pub named: bool, - #[serde(skip_serializing_if = "Option::is_none")] - pub fields: Option>, + #[serde(skip_serializing_if = "BTreeMap::is_empty", default)] + pub fields: BTreeMap, #[serde(skip_serializing_if = "Option::is_none")] pub children: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub subtypes: Option>, + #[serde(skip_serializing_if = "Vec::is_empty", default)] + pub subtypes: Vec, } #[derive(Deserialize)] From 6d6cdf89cea6dfa980748d78953b6e3080217eee Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 27 Sep 2023 12:59:41 +0200 Subject: [PATCH 692/788] Java: add a failing test for stateful in/out barriers --- .../dataflow/inoutbarriers/test.expected | 5 ++ .../dataflow/inoutbarriers/test.ql | 60 +++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/java/ql/test/library-tests/dataflow/inoutbarriers/test.expected b/java/ql/test/library-tests/dataflow/inoutbarriers/test.expected index b219a8c5048..f29b4ab9648 100644 --- a/java/ql/test/library-tests/dataflow/inoutbarriers/test.expected +++ b/java/ql/test/library-tests/dataflow/inoutbarriers/test.expected @@ -1,3 +1,8 @@ +inconsistentFlow +| A.java:9:16:9:19 | fsrc | A.java:15:10:15:10 | s | spurious state-flow in configuration sinkbarrier | +| A.java:12:9:12:14 | src(...) | A.java:15:10:15:10 | s | spurious state-flow in configuration both | +| A.java:12:9:12:14 | src(...) | A.java:15:10:15:10 | s | spurious state-flow in configuration sinkbarrier | +#select | A.java:9:16:9:19 | fsrc | A.java:13:10:13:10 | s | nobarrier, sinkbarrier | | A.java:9:16:9:19 | fsrc | A.java:15:10:15:10 | s | nobarrier | | A.java:10:10:10:13 | fsrc | A.java:10:10:10:13 | fsrc | both, nobarrier, sinkbarrier, srcbarrier | diff --git a/java/ql/test/library-tests/dataflow/inoutbarriers/test.ql b/java/ql/test/library-tests/dataflow/inoutbarriers/test.ql index 7635dae3820..f6e6afdedec 100644 --- a/java/ql/test/library-tests/dataflow/inoutbarriers/test.ql +++ b/java/ql/test/library-tests/dataflow/inoutbarriers/test.ql @@ -46,6 +46,46 @@ module Conf4 implements ConfigSig { predicate isBarrierOut(Node n) { sink0(n) } } +module StateConf1 implements StateConfigSig { + class FlowState = Unit; + + predicate isSource(Node n, FlowState state) { src0(n) and exists(state) } + + predicate isSink(Node n, FlowState state) { sink0(n) and exists(state) } +} + +module StateConf2 implements StateConfigSig { + class FlowState = Unit; + + predicate isSource(Node n, FlowState state) { src0(n) and exists(state) } + + predicate isSink(Node n, FlowState state) { sink0(n) and exists(state) } + + predicate isBarrierIn(Node n, FlowState state) { isSource(n, state) } +} + +module StateConf3 implements StateConfigSig { + class FlowState = Unit; + + predicate isSource(Node n, FlowState state) { src0(n) and exists(state) } + + predicate isSink(Node n, FlowState state) { sink0(n) and exists(state) } + + predicate isBarrierOut(Node n, FlowState state) { isSink(n, state) } +} + +module StateConf4 implements StateConfigSig { + class FlowState = Unit; + + predicate isSource(Node n, FlowState state) { src0(n) and exists(state) } + + predicate isSink(Node n, FlowState state) { sink0(n) and exists(state) } + + predicate isBarrierIn(Node n, FlowState state) { isSource(n, state) } + + predicate isBarrierOut(Node n, FlowState state) { isSink(n, state) } +} + predicate flow(Node src, Node sink, string s) { Global::flow(src, sink) and s = "nobarrier" or @@ -56,6 +96,26 @@ predicate flow(Node src, Node sink, string s) { Global::flow(src, sink) and s = "both" } +predicate stateFlow(Node src, Node sink, string s) { + GlobalWithState::flow(src, sink) and s = "nobarrier" + or + GlobalWithState::flow(src, sink) and s = "srcbarrier" + or + GlobalWithState::flow(src, sink) and s = "sinkbarrier" + or + GlobalWithState::flow(src, sink) and s = "both" +} + +query predicate inconsistentFlow(Node src, Node sink, string message) { + exists(string kind | + (flow(src, sink, kind) and not stateFlow(src, sink, kind)) and + message = "missing state-flow in configuration " + kind + or + (not flow(src, sink, kind) and stateFlow(src, sink, kind)) and + message = "spurious state-flow in configuration " + kind + ) +} + from Node src, Node sink, string s where flow(src, sink, _) and s = concat(any(string s0 | flow(src, sink, s0)), ", ") select src, sink, s From 6792592a15172ffc3ba17e0fe825b0ad917ca3f5 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 27 Sep 2023 11:23:37 +0200 Subject: [PATCH 693/788] Shared: add late checks for stateful in/out barriers --- .../dataflow/inoutbarriers/test.expected | 3 -- .../codeql/dataflow/internal/DataFlowImpl.qll | 43 +++++++++++++------ 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/java/ql/test/library-tests/dataflow/inoutbarriers/test.expected b/java/ql/test/library-tests/dataflow/inoutbarriers/test.expected index f29b4ab9648..de785df0a1d 100644 --- a/java/ql/test/library-tests/dataflow/inoutbarriers/test.expected +++ b/java/ql/test/library-tests/dataflow/inoutbarriers/test.expected @@ -1,7 +1,4 @@ inconsistentFlow -| A.java:9:16:9:19 | fsrc | A.java:15:10:15:10 | s | spurious state-flow in configuration sinkbarrier | -| A.java:12:9:12:14 | src(...) | A.java:15:10:15:10 | s | spurious state-flow in configuration both | -| A.java:12:9:12:14 | src(...) | A.java:15:10:15:10 | s | spurious state-flow in configuration sinkbarrier | #select | A.java:9:16:9:19 | fsrc | A.java:13:10:13:10 | s | nobarrier, sinkbarrier | | A.java:9:16:9:19 | fsrc | A.java:15:10:15:10 | s | nobarrier | diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 529b7c793ee..4424f408b32 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -230,6 +230,7 @@ module MakeImpl { ) } + pragma[nomagic] private predicate inBarrier(NodeEx node, FlowState state) { exists(Node n | node.asNode() = n and @@ -249,6 +250,7 @@ module MakeImpl { ) } + pragma[nomagic] private predicate outBarrier(NodeEx node, FlowState state) { exists(Node n | node.asNode() = n and @@ -2518,6 +2520,7 @@ module MakeImpl { LocalCallContext cc ) { not isUnreachableInCall1(node2, cc) and + not inBarrier(node2, state) and ( localFlowEntry(node1, pragma[only_bind_into](state)) and ( @@ -2532,11 +2535,13 @@ module MakeImpl { ) and node1 != node2 and cc.relevantFor(node1.getEnclosingCallable()) and - not isUnreachableInCall1(node1, cc) + not isUnreachableInCall1(node1, cc) and + not outBarrier(node1, state) or exists(NodeEx mid | localFlowStepPlus(node1, pragma[only_bind_into](state), mid, preservesValue, t, cc) and localFlowStepNodeCand1(mid, node2) and + not outBarrier(mid, state) and not mid instanceof FlowCheckNode and Stage2::revFlow(node2, pragma[only_bind_into](state)) ) @@ -2544,6 +2549,7 @@ module MakeImpl { exists(NodeEx mid | localFlowStepPlus(node1, state, mid, _, _, cc) and additionalLocalFlowStepNodeCand2(mid, state, node2, state) and + not outBarrier(mid, state) and not mid instanceof FlowCheckNode and preservesValue = false and t = node2.getDataFlowType() @@ -3610,11 +3616,14 @@ module MakeImpl { } override PathNodeImpl getASuccessorImpl() { - // an intermediate step to another intermediate node - result = this.getSuccMid() - or - // a final step to a sink - result = this.getSuccMid().projectToSink() + not outBarrier(node, state) and + ( + // an intermediate step to another intermediate node + result = this.getSuccMid() + or + // a final step to a sink + result = this.getSuccMid().projectToSink() + ) } override predicate isSource() { @@ -3740,7 +3749,8 @@ module MakeImpl { exists(DataFlowType t0 | pathStep0(mid, node, state, cc, sc, t0, ap) and Stage5::revFlow(node, state, ap.getApprox()) and - strengthenType(node, t0, t) + strengthenType(node, t0, t) and + not inBarrier(node, state) ) } @@ -3838,11 +3848,15 @@ module MakeImpl { PathNodeMid mid, ReturnPosition pos, FlowState state, CallContext innercc, AccessPathApprox apa ) { - pos = mid.getNodeEx().(RetNodeEx).getReturnPosition() and - state = mid.getState() and - innercc = mid.getCallContext() and - innercc instanceof CallContextNoCall and - apa = mid.getAp().getApprox() + exists(RetNodeEx retNode | + retNode = mid.getNodeEx() and + pos = retNode.getReturnPosition() and + state = mid.getState() and + not outBarrier(retNode, state) and + innercc = mid.getCallContext() and + innercc instanceof CallContextNoCall and + apa = mid.getAp().getApprox() + ) } pragma[nomagic] @@ -3874,7 +3888,8 @@ module MakeImpl { private predicate pathOutOfCallable(PathNodeMid mid, NodeEx out, FlowState state, CallContext cc) { exists(ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa | pathOutOfCallable1(mid, call, kind, state, cc, apa) and - out = getAnOutNodeFlow(kind, call, apa) + out = getAnOutNodeFlow(kind, call, apa) and + not inBarrier(out, state) ) } @@ -3888,6 +3903,7 @@ module MakeImpl { ) { exists(ArgNodeEx arg, ArgumentPosition apos | pathNode(mid, arg, state, cc, _, t, ap, _) and + not outBarrier(arg, state) and arg.asNode().(ArgNode).argumentOf(call, apos) and apa = ap.getApprox() and parameterMatch(ppos, apos) @@ -3930,6 +3946,7 @@ module MakeImpl { exists(ParameterPosition pos, DataFlowCallable callable, DataFlowType t, AccessPath ap | pathIntoCallable0(mid, callable, pos, state, outercc, call, t, ap) and p.isParameterOf(callable, pos) and + not inBarrier(p, state) and ( sc = TSummaryCtxSome(p, state, t, ap) or From ba1f8766aac42cf6eaaeb33670bf30ed6ded0833 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 27 Sep 2023 14:37:50 +0200 Subject: [PATCH 694/788] Shared: update PartialPathNode accordingly --- shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 4424f408b32..647370c4677 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -4436,6 +4436,7 @@ module MakeImpl { ) and not fullBarrier(node) and not stateBarrier(node, state) and + not outBarrier(node, state) and distSink(node.getEnclosingCallable()) <= explorationLimit() } @@ -4456,6 +4457,7 @@ module MakeImpl { partialPathStep0(mid, node, state, cc, sc1, sc2, sc3, sc4, t0, ap) and not fullBarrier(node) and not stateBarrier(node, state) and + not inBarrier(node, state) and not clearsContentEx(node, ap.getHead()) and ( notExpectsContent(node) or @@ -4595,6 +4597,7 @@ module MakeImpl { PartialAccessPath getAp() { result = ap } override PartialPathNodeFwd getASuccessor() { + not outBarrier(node, state) and partialPathStep(this, result.getNodeEx(), result.getState(), result.getCallContext(), result.getSummaryCtx1(), result.getSummaryCtx2(), result.getSummaryCtx3(), result.getSummaryCtx4(), result.getType(), result.getAp()) @@ -4634,6 +4637,7 @@ module MakeImpl { PartialAccessPath getAp() { result = ap } override PartialPathNodeRev getASuccessor() { + not inBarrier(node, state) and revPartialPathStep(result, this.getNodeEx(), this.getState(), this.getSummaryCtx1(), this.getSummaryCtx2(), this.getSummaryCtx3(), this.getAp()) } From cb1647cd023dd03cea0c5e560d9df83a8c526c59 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 27 Sep 2023 15:35:48 +0200 Subject: [PATCH 695/788] C#: Disable unit tests (need to fix line ending issues). --- .../Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs | 1 - csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs index f12b8c200ed..1f09705721b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs @@ -83,4 +83,3 @@ public static class StubGenerator } } } - diff --git a/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs index a702d56c21d..39964a22fe7 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs @@ -13,7 +13,7 @@ namespace Semmle.Extraction.Tests; /// public class StubGeneratorTests { - [Fact] + // [Fact] public void StubGeneratorFieldTest() { // Setup @@ -36,7 +36,7 @@ public const string MyField2 = default; Assert.Equal(expected, stub); } - [Fact] + // [Fact] public void StubGeneratorMethodTest() { // Setup From f12e45b2438b4d992261d984a9aa9b8c2476f1d5 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 10 Aug 2023 11:46:57 +0100 Subject: [PATCH 696/788] Swift: Delete the specific description, debugDescription models. --- .../swift/frameworks/StandardLibrary/FilePath.qll | 6 +----- .../swift/frameworks/StandardLibrary/String.qll | 15 +++++++-------- .../dataflow/taint/libraries/files.swift | 4 ++-- .../dataflow/taint/libraries/string.swift | 4 ++-- 4 files changed, 12 insertions(+), 17 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/FilePath.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/FilePath.qll index 61223cf647a..c1e82a1522c 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/FilePath.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/FilePath.qll @@ -61,11 +61,7 @@ private class FilePathFieldsInheritTaint extends TaintInheritingContent, FilePathFieldsInheritTaint() { exists(FieldDecl f | this.getField() = f | f.getEnclosingDecl().asNominalTypeDecl() instanceof FilePath and - f.getName() = - [ - "description", "debugDescription", "components", "extension", "lastComponent", "root", - "stem", "string" - ] + f.getName() = ["components", "extension", "lastComponent", "root", "stem", "string"] ) } } diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll index 612ddc82ac2..f9b29f8c122 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll @@ -131,8 +131,8 @@ private class StringSummaries extends SummaryModelCsv { } /** - * A content implying that, if a `String` is tainted, then many of its fields are - * tainted. This also includes fields declared in `StringProtocol`. + * A content implying that, if a `String`, `StringProtocol` or related class is tainted, then many + * of its fields are tainted. */ private class StringFieldsInheritTaint extends TaintInheritingContent, DataFlow::Content::FieldContent @@ -141,12 +141,11 @@ private class StringFieldsInheritTaint extends TaintInheritingContent, this.getField() .hasQualifiedName(["String", "StringProtocol"], [ - "unicodeScalars", "utf8", "utf16", "lazy", "utf8CString", "description", - "debugDescription", "dataValue", "identifierValue", "capitalized", - "localizedCapitalized", "localizedLowercase", "localizedUppercase", - "decomposedStringWithCanonicalMapping", "decomposedStringWithCompatibilityMapping", - "precomposedStringWithCanonicalMapping", "precomposedStringWithCompatibilityMapping", - "removingPercentEncoding" + "unicodeScalars", "utf8", "utf16", "lazy", "utf8CString", "dataValue", + "identifierValue", "capitalized", "localizedCapitalized", "localizedLowercase", + "localizedUppercase", "decomposedStringWithCanonicalMapping", + "decomposedStringWithCompatibilityMapping", "precomposedStringWithCanonicalMapping", + "precomposedStringWithCompatibilityMapping", "removingPercentEncoding" ]) } } diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/files.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/files.swift index c8f79677c60..867a70ff40c 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/files.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/files.swift @@ -184,8 +184,8 @@ func test_files(e1: Encoder) { // --- FilePath member variables --- - sink(string: tainted.description) // $ tainted=133 - sink(string: tainted.debugDescription) // $ tainted=133 + sink(string: tainted.description) // $ MISSING: tainted=133 + sink(string: tainted.debugDescription) // $ MISSING: tainted=133 sink(string: tainted.extension!) // $ tainted=133 sink(string: tainted.stem!) // $ tainted=133 sink(string: tainted.string) // $ tainted=133 diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift index 96447b9431e..c6231b995c4 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift @@ -272,9 +272,9 @@ func taintThroughSimpleStringOperations() { sink(arg: [tainted, tainted].joined()) // $ MISSING: tainted=217 sink(arg: clean.description) - sink(arg: tainted.description) // $ tainted=217 + sink(arg: tainted.description) // $ MISSING: tainted=217 sink(arg: clean.debugDescription) - sink(arg: tainted.debugDescription) // $ tainted=217 + sink(arg: tainted.debugDescription) // $ MISSING: tainted=217 sink(arg: clean.utf8) sink(arg: tainted.utf8) // $ tainted=217 sink(arg: clean.utf16) From 086002f7cb29c4986813ba032a089f551738781a Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 20 Sep 2023 17:41:10 +0100 Subject: [PATCH 697/788] Swift: Add a general model for description, debugDescription. --- .../swift/frameworks/StandardLibrary/String.qll | 15 +++++++++++++++ .../dataflow/taint/libraries/string.swift | 6 +++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll index f9b29f8c122..5f0928f4332 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll @@ -147,5 +147,20 @@ private class StringFieldsInheritTaint extends TaintInheritingContent, "decomposedStringWithCompatibilityMapping", "precomposedStringWithCanonicalMapping", "precomposedStringWithCompatibilityMapping", "removingPercentEncoding" ]) + or + exists(FieldDecl fieldDecl, Decl declaringDecl, TypeDecl namedTypeDecl | + ( + ( + namedTypeDecl.getFullName() = "CustomStringConvertible" and + fieldDecl.getName() = "description" + ) or ( + namedTypeDecl.getFullName() = "CustomDebugStringConvertible" and + fieldDecl.getName() = "debugDescription" + ) + ) and + declaringDecl.getAMember() = fieldDecl and + declaringDecl.asNominalTypeDecl() = namedTypeDecl.getADerivedTypeDecl*() and + this.getField() = fieldDecl + ) } } diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift index c6231b995c4..5a4f6ce20c0 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/string.swift @@ -272,9 +272,9 @@ func taintThroughSimpleStringOperations() { sink(arg: [tainted, tainted].joined()) // $ MISSING: tainted=217 sink(arg: clean.description) - sink(arg: tainted.description) // $ MISSING: tainted=217 + sink(arg: tainted.description) // $ tainted=217 sink(arg: clean.debugDescription) - sink(arg: tainted.debugDescription) // $ MISSING: tainted=217 + sink(arg: tainted.debugDescription) // $ tainted=217 sink(arg: clean.utf8) sink(arg: tainted.utf8) // $ tainted=217 sink(arg: clean.utf16) @@ -584,7 +584,7 @@ func taintedThroughConversion() { sink(arg: String(0)) sink(arg: String(source())) // $ tainted=585 sink(arg: Int(0).description) - sink(arg: source().description) // $ MISSING: tainted=587 + sink(arg: source().description) // $ tainted=587 sink(arg: String(describing: 0)) sink(arg: String(describing: source())) // $ tainted=589 From 6a2911ae013d9a137a2867a6a40e21c34d9d469e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 21 Sep 2023 08:49:24 +0100 Subject: [PATCH 698/788] Swift: Make the tests more accurate. --- .../test/library-tests/dataflow/taint/libraries/files.swift | 6 +++--- .../test/library-tests/dataflow/taint/libraries/url.swift | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/files.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/files.swift index 867a70ff40c..f4c40a08a85 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/files.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/files.swift @@ -9,7 +9,7 @@ enum CInterop { typealias PlatformChar = CInterop.Char } -struct FilePath { +struct FilePath : CustomStringConvertible, CustomDebugStringConvertible { struct Component { init?(_ string: String) { } @@ -184,8 +184,8 @@ func test_files(e1: Encoder) { // --- FilePath member variables --- - sink(string: tainted.description) // $ MISSING: tainted=133 - sink(string: tainted.debugDescription) // $ MISSING: tainted=133 + sink(string: tainted.description) // $ tainted=133 + sink(string: tainted.debugDescription) // $ tainted=133 sink(string: tainted.extension!) // $ tainted=133 sink(string: tainted.stem!) // $ tainted=133 sink(string: tainted.string) // $ tainted=133 diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/url.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/url.swift index d45bdd905b2..694e98c8132 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/url.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/url.swift @@ -154,7 +154,7 @@ struct URLResource { let subdirectory: String? } -struct URLRequest { +struct URLRequest : CustomStringConvertible, CustomDebugStringConvertible { enum CachePolicy { case none } enum NetworkServiceType { case none } enum Attribution { case none } @@ -463,9 +463,9 @@ func taintThroughUrlRequest() { sink(any: clean.attribution) sink(any: tainted.attribution) sink(any: clean.description) - sink(any: tainted.description) + sink(any: tainted.description) // $ tainted=431 sink(any: clean.debugDescription) - sink(any: tainted.debugDescription) + sink(any: tainted.debugDescription) // $ tainted=431 sink(any: clean.customMirror) sink(any: tainted.customMirror) sink(any: clean.hashValue) From b6f0160760cc10f66fd9de31134307dc9a82f4e4 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Sep 2023 16:52:26 +0100 Subject: [PATCH 699/788] Swift: Effect on recently added tests. --- .../library-tests/dataflow/taint/core/LocalTaint.expected | 4 ++++ .../test/library-tests/dataflow/taint/core/Taint.expected | 8 ++++++++ .../library-tests/dataflow/taint/core/conversions.swift | 4 ++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index 5e79d814f8c..58baafd5bd9 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -89,8 +89,10 @@ | conversions.swift:90:12:90:12 | [post] ms1 | conversions.swift:91:12:91:12 | ms1 | | conversions.swift:90:12:90:12 | ms1 | conversions.swift:91:12:91:12 | ms1 | | conversions.swift:91:12:91:12 | [post] ms1 | conversions.swift:92:12:92:12 | ms1 | +| conversions.swift:91:12:91:12 | ms1 | conversions.swift:91:12:91:16 | .description | | conversions.swift:91:12:91:12 | ms1 | conversions.swift:92:12:92:12 | ms1 | | conversions.swift:92:12:92:12 | [post] ms1 | conversions.swift:93:12:93:12 | ms1 | +| conversions.swift:92:12:92:12 | ms1 | conversions.swift:92:12:92:16 | .debugDescription | | conversions.swift:92:12:92:12 | ms1 | conversions.swift:93:12:93:12 | ms1 | | conversions.swift:95:6:95:6 | SSA def(ms2) | conversions.swift:96:12:96:12 | ms2 | | conversions.swift:95:6:95:6 | ms2 | conversions.swift:95:6:95:6 | SSA def(ms2) | @@ -100,8 +102,10 @@ | conversions.swift:96:12:96:12 | [post] ms2 | conversions.swift:97:12:97:12 | ms2 | | conversions.swift:96:12:96:12 | ms2 | conversions.swift:97:12:97:12 | ms2 | | conversions.swift:97:12:97:12 | [post] ms2 | conversions.swift:98:12:98:12 | ms2 | +| conversions.swift:97:12:97:12 | ms2 | conversions.swift:97:12:97:16 | .description | | conversions.swift:97:12:97:12 | ms2 | conversions.swift:98:12:98:12 | ms2 | | conversions.swift:98:12:98:12 | [post] ms2 | conversions.swift:99:12:99:12 | ms2 | +| conversions.swift:98:12:98:12 | ms2 | conversions.swift:98:12:98:16 | .debugDescription | | conversions.swift:98:12:98:12 | ms2 | conversions.swift:99:12:99:12 | ms2 | | conversions.swift:103:6:103:6 | SSA def(parent) | conversions.swift:104:12:104:12 | parent | | conversions.swift:103:6:103:6 | parent | conversions.swift:103:6:103:6 | SSA def(parent) | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 0664ab8863d..099a3cdfbdb 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -47,8 +47,12 @@ edges | conversions.swift:87:19:87:32 | call to sourceString() | conversions.swift:87:12:87:33 | call to String.init(_:) | | conversions.swift:95:12:95:35 | call to MyString.init(_:) | conversions.swift:95:12:95:35 | call to MyString.init(_:) [some:0] | | conversions.swift:95:12:95:35 | call to MyString.init(_:) | conversions.swift:96:12:96:12 | ms2 | +| conversions.swift:95:12:95:35 | call to MyString.init(_:) | conversions.swift:97:12:97:16 | .description | +| conversions.swift:95:12:95:35 | call to MyString.init(_:) | conversions.swift:98:12:98:16 | .debugDescription | | conversions.swift:95:12:95:35 | call to MyString.init(_:) [some:0] | conversions.swift:95:12:95:36 | ...! | | conversions.swift:95:12:95:36 | ...! | conversions.swift:96:12:96:12 | ms2 | +| conversions.swift:95:12:95:36 | ...! | conversions.swift:97:12:97:16 | .description | +| conversions.swift:95:12:95:36 | ...! | conversions.swift:98:12:98:16 | .debugDescription | | conversions.swift:95:21:95:34 | call to sourceString() | conversions.swift:95:12:95:35 | call to MyString.init(_:) | | conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:104:12:104:12 | parent | | conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:105:12:105:12 | parent | @@ -223,6 +227,8 @@ nodes | conversions.swift:95:12:95:36 | ...! | semmle.label | ...! | | conversions.swift:95:21:95:34 | call to sourceString() | semmle.label | call to sourceString() | | conversions.swift:96:12:96:12 | ms2 | semmle.label | ms2 | +| conversions.swift:97:12:97:16 | .description | semmle.label | .description | +| conversions.swift:98:12:98:16 | .debugDescription | semmle.label | .debugDescription | | conversions.swift:103:31:103:44 | call to sourceString() | semmle.label | call to sourceString() | | conversions.swift:104:12:104:12 | parent | semmle.label | parent | | conversions.swift:105:12:105:12 | parent | semmle.label | parent | @@ -395,6 +401,8 @@ subpaths | conversions.swift:86:12:86:25 | call to sourceString() | conversions.swift:86:12:86:25 | call to sourceString() | conversions.swift:86:12:86:25 | call to sourceString() | result | | conversions.swift:87:12:87:33 | call to String.init(_:) | conversions.swift:87:19:87:32 | call to sourceString() | conversions.swift:87:12:87:33 | call to String.init(_:) | result | | conversions.swift:96:12:96:12 | ms2 | conversions.swift:95:21:95:34 | call to sourceString() | conversions.swift:96:12:96:12 | ms2 | result | +| conversions.swift:97:12:97:16 | .description | conversions.swift:95:21:95:34 | call to sourceString() | conversions.swift:97:12:97:16 | .description | result | +| conversions.swift:98:12:98:16 | .debugDescription | conversions.swift:95:21:95:34 | call to sourceString() | conversions.swift:98:12:98:16 | .debugDescription | result | | conversions.swift:104:12:104:12 | parent | conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:104:12:104:12 | parent | result | | conversions.swift:105:12:105:12 | parent | conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:105:12:105:12 | parent | result | | conversions.swift:108:12:108:12 | v3 | conversions.swift:103:31:103:44 | call to sourceString() | conversions.swift:108:12:108:12 | v3 | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift index e24c8347251..e08a1e84fc6 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift @@ -94,8 +94,8 @@ func testConversions() { let ms2 = MyString(sourceString())! sink(arg: ms2) // $ tainted=95 - sink(arg: ms2.description) // $ MISSING: tainted= - sink(arg: ms2.debugDescription) // $ MISSING: tainted= + sink(arg: ms2.description) // $ tainted=95 + sink(arg: ms2.debugDescription) // $ tainted=95 sink(arg: ms2.clean) // --- From e6dc4d324f386bd6e201ebd60b58a86552d88286 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Sep 2023 16:58:59 +0100 Subject: [PATCH 700/788] Swift: Change note. --- swift/ql/lib/change-notes/2023-09-27-debugdesc.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 swift/ql/lib/change-notes/2023-09-27-debugdesc.md diff --git a/swift/ql/lib/change-notes/2023-09-27-debugdesc.md b/swift/ql/lib/change-notes/2023-09-27-debugdesc.md new file mode 100644 index 00000000000..41416a92124 --- /dev/null +++ b/swift/ql/lib/change-notes/2023-09-27-debugdesc.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- + +* Modelled `CustomStringConvertible.description` and `CustomDebugStringConvertible.debugDescription`, replacing ad-hoc models of these properties on derived classes. From ee9873fdce687a93ddcac8d21f333a3f1482980a Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Wed, 27 Sep 2023 13:16:58 -0400 Subject: [PATCH 701/788] add kotlin to Java language guides --- ...-classes-for-working-with-java-programs.rst | 2 +- .../annotations-in-java.rst | 12 +++++++----- .../codeql-language-guides/codeql-for-java.rst | 10 +++++----- .../codeql-library-for-java.rst | 2 ++ .../customizing-library-models-for-java.rst | 18 ++++++++++-------- docs/codeql/codeql-language-guides/javadoc.rst | 4 +++- .../navigating-the-call-graph.rst | 4 ++-- .../overflow-prone-comparisons-in-java.rst | 6 ++++-- .../codeql-language-guides/types-in-java.rst | 6 ++++-- .../working-with-source-locations.rst | 6 ++++-- 10 files changed, 42 insertions(+), 28 deletions(-) diff --git a/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst b/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst index 40af6084c19..286d6bc6a7a 100644 --- a/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst +++ b/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst @@ -1,6 +1,6 @@ .. _abstract-syntax-tree-classes-for-working-with-java-programs: -Abstract syntax tree classes for working with Java programs +Abstract syntax tree classes for working with Java and Kotlin programs =========================================================== CodeQL has a large selection of classes for representing the abstract syntax tree of Java and Kotlin programs. diff --git a/docs/codeql/codeql-language-guides/annotations-in-java.rst b/docs/codeql/codeql-language-guides/annotations-in-java.rst index 423f6c708fc..d0cd7e6bd8d 100644 --- a/docs/codeql/codeql-language-guides/annotations-in-java.rst +++ b/docs/codeql/codeql-language-guides/annotations-in-java.rst @@ -1,9 +1,11 @@ .. _annotations-in-java: -Annotations in Java +Annotations in Java and Kotlin =================== -CodeQL databases of Java projects contain information about all annotations attached to program elements. +CodeQL databases of Java/Kotlin projects contain information about all annotations attached to program elements. + +.. include:: ../reusables/kotlin-beta-note.rst About working with annotations ------------------------------ @@ -15,7 +17,7 @@ Annotations are represented by these CodeQL classes: - The class ``AnnotationElement`` represents an annotation element, that is, a member of an annotation type. - The class ``Annotation`` represents an annotation such as ``@Override``; annotation values can be accessed through member predicate ``getValue``. -For example, the Java standard library defines an annotation ``SuppressWarnings`` that instructs the compiler not to emit certain kinds of warnings: +For example, the Java/Kotlin standard library defines an annotation ``SuppressWarnings`` that instructs the compiler not to emit certain kinds of warnings: .. code-block:: java @@ -101,7 +103,7 @@ As a first step, let's write a query that finds all ``@Override`` annotations. A where ann.getType().hasQualifiedName("java.lang", "Override") select ann -As always, it is a good idea to try this query on a CodeQL database for a Java project to make sure it actually produces some results. On the earlier example, it should find the annotation on ``Sub1.m``. Next, we encapsulate the concept of an ``@Override`` annotation as a CodeQL class: +As always, it is a good idea to try this query on a CodeQL database for a Java/Kotlin project to make sure it actually produces some results. On the earlier example, it should find the annotation on ``Sub1.m``. Next, we encapsulate the concept of an ``@Override`` annotation as a CodeQL class: :: @@ -185,7 +187,7 @@ For more information about the class ``Call``, see ":doc:`Navigating the call gr Improvements ~~~~~~~~~~~~ -The Java standard library provides another annotation type ``java.lang.SupressWarnings`` that can be used to suppress certain categories of warnings. In particular, it can be used to turn off warnings about calls to deprecated methods. Therefore, it makes sense to improve our query to ignore calls to deprecated methods from inside methods that are marked with ``@SuppressWarnings("deprecation")``. +The Java/Kotlin standard library provides another annotation type ``java.lang.SupressWarnings`` that can be used to suppress certain categories of warnings. In particular, it can be used to turn off warnings about calls to deprecated methods. Therefore, it makes sense to improve our query to ignore calls to deprecated methods from inside methods that are marked with ``@SuppressWarnings("deprecation")``. For instance, consider this slightly updated example: diff --git a/docs/codeql/codeql-language-guides/codeql-for-java.rst b/docs/codeql/codeql-language-guides/codeql-for-java.rst index 4c63faea1d9..13fa4c92625 100644 --- a/docs/codeql/codeql-language-guides/codeql-for-java.rst +++ b/docs/codeql/codeql-language-guides/codeql-for-java.rst @@ -32,16 +32,16 @@ Experiment and learn how to write effective and efficient queries for CodeQL dat - :doc:`Analyzing data flow in Java and Kotlin `: You can use CodeQL to track the flow of data through a Java/Kotlin program to its use. -- :doc:`Java types `: You can use CodeQL to find out information about data types used in Java code. This allows you to write queries to identify specific type-related issues. +- :doc:`Java and Kotlin types `: You can use CodeQL to find out information about data types used in Java/Kotlin code. This allows you to write queries to identify specific type-related issues. -- :doc:`Overflow-prone comparisons in Java `: You can use CodeQL to check for comparisons in Java code where one side of the comparison is prone to overflow. +- :doc:`Overflow-prone comparisons in Java and Kotlin `: You can use CodeQL to check for comparisons in Java/Kotlin code where one side of the comparison is prone to overflow. - :doc:`Navigating the call graph `: CodeQL has classes for identifying code that calls other code, and code that can be called from elsewhere. This allows you to find, for example, methods that are never used. -- :doc:`Annotations in Java `: CodeQL databases of Java projects contain information about all annotations attached to program elements. +- :doc:`Annotations in Java and Kotlin `: CodeQL databases of Java/Kotlin projects contain information about all annotations attached to program elements. -- :doc:`Javadoc `: You can use CodeQL to find errors in Javadoc comments in Java code. +- :doc:`Javadoc `: You can use CodeQL to find errors in Javadoc comments in Java/Kotlin code. -- :doc:`Working with source locations `: You can use the location of entities within Java code to look for potential errors. Locations allow you to deduce the presence, or absence, of white space which, in some cases, may indicate a problem. +- :doc:`Working with source locations `: You can use the location of entities within Java/Kotlin code to look for potential errors. Locations allow you to deduce the presence, or absence, of white space which, in some cases, may indicate a problem. - :doc:`Abstract syntax tree classes for working with Java and Kotlin programs `: CodeQL has a large selection of classes for representing the abstract syntax tree of Java/Kotlin programs. diff --git a/docs/codeql/codeql-language-guides/codeql-library-for-java.rst b/docs/codeql/codeql-language-guides/codeql-library-for-java.rst index 1dd1c99b012..c122ab5f7e3 100644 --- a/docs/codeql/codeql-language-guides/codeql-library-for-java.rst +++ b/docs/codeql/codeql-language-guides/codeql-library-for-java.rst @@ -5,6 +5,8 @@ CodeQL library for Java and Kotlin When you're analyzing a Java/Kotlin program, you can make use of the large collection of classes in the CodeQL library for Java/Kotlin. +.. include:: ../reusables/kotlin-beta-note.rst + About the CodeQL library for Java and Kotlin -------------------------------------------- diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst index 707ae531fc1..1bc0149e3dd 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst @@ -3,12 +3,14 @@ :orphan: :nosearch: -Customizing Library Models for Java +Customizing Library Models for Java and Kotlin =================================== .. include:: ../reusables/beta-note-customizing-library-models.rst -The Java analysis can be customized by adding library models (summaries, sinks and sources) in data extension files. +.. include:: ../reusables/kotlin-beta-note.rst + +The Java/Kotlin analysis can be customized by adding library models (summaries, sinks and sources) in data extension files. A model is a definition of a behavior of a library element, such as a method, that is used to improve the data flow analysis precision by identifying more results. Most of the security related queries are taint tracking queries that try to find paths from a source of untrusted input to a sink that represents a vulnerability. Sources are the starting points of a taint tracking data flow analysis, and sinks are the end points of a taint tracking data flow analysis. @@ -30,7 +32,7 @@ A data extension file for Java is a YAML file in the form: Data extensions contribute to the extensible predicates defined in the CodeQL library. For more information on how to define data extensions and extensible predicates as well as how to wire them up, see the :ref:`data-extensions` documentation. -The CodeQL library for Java exposes the following extensible predicates: +The CodeQL library for Java/Kotlin exposes the following extensible predicates: - **sourceModel**\(package, type, subtypes, name, signature, ext, output, kind, provenance). This is used for **source** models. - **sinkModel**\(package, type, subtypes, name, signature, ext, input, kind, provenance). This is used for **sink** models. @@ -48,7 +50,7 @@ Example: Taint sink in the **java.sql** package In this example we will show how to model the argument of the **execute** method as a SQL injection sink. This is the **execute** method in the **Statement** class, which is located in the **java.sql** package. -Note that this sink is already added to the CodeQL Java analysis. +Note that this sink is already added to the CodeQL Java/Kotlin analysis. .. code-block:: java @@ -89,7 +91,7 @@ Example: Taint source from the **java.net** package ---------------------------------------------------- In this example we show how to model the return value from the **getInputStream** method as a **remote** source. This is the **getInputStream** method in the **Socket** class, which is located in the **java.net** package. -Note that this source is already added to the CodeQL Java analysis. +Note that this source is already added to the CodeQL Java/Kotlin analysis. .. code-block:: java @@ -130,7 +132,7 @@ Example: Add flow through the **concat** method ------------------------------------------------ In this example we show how to model flow through a method for a simple case. This pattern covers many of the cases where we need to define flow through a method. -Note that the flow through the **concat** method is already added to the CodeQL Java analysis. +Note that the flow through the **concat** method is already added to the CodeQL Java/Kotlin analysis. .. code-block:: java @@ -178,7 +180,7 @@ Example: Add flow through the **map** method --------------------------------------------- In this example, we will see a more complex example of modeling flow through a method. This pattern shows how to model flow through higher order methods and collection types. -Note that the flow through the **map** method is already added to the CodeQL Java analysis. +Note that the flow through the **map** method is already added to the CodeQL Java/Kotlin analysis. .. code-block:: java @@ -238,7 +240,7 @@ Example: Add a **neutral** method ---------------------------------- In this example we will show how to model the **now** method as being neutral with respect to flow. A neutral model is used to define that there is no flow through a method. -Note that the neutral model for the **now** method is already added to the CodeQL Java analysis. +Note that the neutral model for the **now** method is already added to the CodeQL Java/Kotlin analysis. .. code-block:: java diff --git a/docs/codeql/codeql-language-guides/javadoc.rst b/docs/codeql/codeql-language-guides/javadoc.rst index c1bce79a0a2..0b18e97373e 100644 --- a/docs/codeql/codeql-language-guides/javadoc.rst +++ b/docs/codeql/codeql-language-guides/javadoc.rst @@ -3,7 +3,9 @@ Javadoc ======= -You can use CodeQL to find errors in Javadoc comments in Java code. +You can use CodeQL to find errors in Javadoc comments in Java/Kotlin code. + +.. include:: ../reusables/kotlin-beta-note.rst About analyzing Javadoc ----------------------- diff --git a/docs/codeql/codeql-language-guides/navigating-the-call-graph.rst b/docs/codeql/codeql-language-guides/navigating-the-call-graph.rst index 6db902ea4b8..6e1b443f96b 100644 --- a/docs/codeql/codeql-language-guides/navigating-the-call-graph.rst +++ b/docs/codeql/codeql-language-guides/navigating-the-call-graph.rst @@ -8,7 +8,7 @@ CodeQL has classes for identifying code that calls other code, and code that can Call graph classes ------------------ -The CodeQL library for Java provides two abstract classes for representing a program's call graph: ``Callable`` and ``Call``. The former is simply the common superclass of ``Method`` and ``Constructor``, the latter is a common superclass of ``MethodAccess``, ``ClassInstanceExpression``, ``ThisConstructorInvocationStmt`` and ``SuperConstructorInvocationStmt``. Simply put, a ``Callable`` is something that can be invoked, and a ``Call`` is something that invokes a ``Callable``. +The CodeQL library for Java/Kotlin provides two abstract classes for representing a program's call graph: ``Callable`` and ``Call``. The former is simply the common superclass of ``Method`` and ``Constructor``, the latter is a common superclass of ``MethodAccess``, ``ClassInstanceExpression``, ``ThisConstructorInvocationStmt`` and ``SuperConstructorInvocationStmt``. Simply put, a ``Callable`` is something that can be invoked, and a ``Call`` is something that invokes a ``Callable``. For example, in the following program all callables and calls have been annotated with comments: @@ -88,7 +88,7 @@ This simple query typically returns a large number of results. We have to use ``polyCalls`` instead of ``calls`` here: we want to be reasonably sure that ``callee`` is not called, either directly or via overriding. -Running this query on a typical Java project results in lots of hits in the Java standard library. This makes sense, since no single client program uses every method of the standard library. More generally, we may want to exclude methods and constructors from compiled libraries. We can use the predicate ``fromSource`` to check whether a compilation unit is a source file, and refine our query: +Running this query on a typical Java/Kotlin project results in lots of hits in the Java/Kotlin standard library. This makes sense, since no single client program uses every method of the standard library. More generally, we may want to exclude methods and constructors from compiled libraries. We can use the predicate ``fromSource`` to check whether a compilation unit is a source file, and refine our query: .. code-block:: ql diff --git a/docs/codeql/codeql-language-guides/overflow-prone-comparisons-in-java.rst b/docs/codeql/codeql-language-guides/overflow-prone-comparisons-in-java.rst index 53c36c7f786..44072c5fbf2 100644 --- a/docs/codeql/codeql-language-guides/overflow-prone-comparisons-in-java.rst +++ b/docs/codeql/codeql-language-guides/overflow-prone-comparisons-in-java.rst @@ -1,9 +1,11 @@ .. _overflow-prone-comparisons-in-java: -Overflow-prone comparisons in Java +Overflow-prone comparisons in Java and Kotlin ================================== -You can use CodeQL to check for comparisons in Java code where one side of the comparison is prone to overflow. +You can use CodeQL to check for comparisons in Java/Kotlin code where one side of the comparison is prone to overflow. + +.. include:: ../reusables/kotlin-beta-note.rst About this article ------------------ diff --git a/docs/codeql/codeql-language-guides/types-in-java.rst b/docs/codeql/codeql-language-guides/types-in-java.rst index 3bb1c59fed7..0756460909f 100644 --- a/docs/codeql/codeql-language-guides/types-in-java.rst +++ b/docs/codeql/codeql-language-guides/types-in-java.rst @@ -1,9 +1,11 @@ .. _types-in-java: -Types in Java +Types in Java and Kotlin ============= -You can use CodeQL to find out information about data types used in Java code. This allows you to write queries to identify specific type-related issues. +You can use CodeQL to find out information about data types used in Java/Kotlin code. This allows you to write queries to identify specific type-related issues. + +.. include:: ../reusables/kotlin-beta-note.rst About working with Java types ----------------------------- diff --git a/docs/codeql/codeql-language-guides/working-with-source-locations.rst b/docs/codeql/codeql-language-guides/working-with-source-locations.rst index 90cc5f17849..350e38097ab 100644 --- a/docs/codeql/codeql-language-guides/working-with-source-locations.rst +++ b/docs/codeql/codeql-language-guides/working-with-source-locations.rst @@ -3,7 +3,9 @@ Working with source locations ============================= -You can use the location of entities within Java code to look for potential errors. Locations allow you to deduce the presence, or absence, of white space which, in some cases, may indicate a problem. +You can use the location of entities within Java/Kotlin code to look for potential errors. Locations allow you to deduce the presence, or absence, of white space which, in some cases, may indicate a problem. + +.. include:: ../reusables/kotlin-beta-note.rst About source locations ---------------------- @@ -175,7 +177,7 @@ Now we can extend our query to discard results where the outer and the inner exp wsinner > wsouter select outer, "Whitespace around nested operators contradicts precedence." -Notice that we again use ``getOp``, this time to determine whether two binary expressions have the same operator. Running our improved query now finds the Java standard library bug described in the Overview. It also flags up the following suspicious code in `Hadoop HBase `__: +Notice that we again use ``getOp``, this time to determine whether two binary expressions have the same operator. Running our improved query now finds the Java/Kotlin standard library bug described in the Overview. It also flags up the following suspicious code in `Hadoop HBase `__: .. code-block:: java From 9f1332bdb209949121c230b1cf1dab0f9aaed86f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Sep 2023 18:17:40 +0100 Subject: [PATCH 702/788] Swift: Add a summary query for query sinks. --- swift/ql/src/queries/Summary/QuerySinks.ql | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 swift/ql/src/queries/Summary/QuerySinks.ql diff --git a/swift/ql/src/queries/Summary/QuerySinks.ql b/swift/ql/src/queries/Summary/QuerySinks.ql new file mode 100644 index 00000000000..a86b64f26b6 --- /dev/null +++ b/swift/ql/src/queries/Summary/QuerySinks.ql @@ -0,0 +1,84 @@ +/** + * @name Query Sinks + * @description List all query sinks found in the database. Query sinks are + * potential results depending on what data flows to them and + * other context. + * @kind problem + * @problem.severity info + * @id swift/summary/query-sinks + * @tags summary + */ + +/* + * Most queries compute data flow to one of the following sinks: + * - custom per-query sinks (listed by this query, `swift/summary/query-sinks`). + * - regular expression evaluation (see `swift/summary/regex-evals`). + */ + +import swift +import codeql.swift.dataflow.DataFlow +import codeql.swift.security.PathInjectionQuery +import codeql.swift.security.UnsafeWebViewFetchQuery +import codeql.swift.security.SqlInjectionQuery +import codeql.swift.security.UnsafeJsEvalQuery +import codeql.swift.security.UncontrolledFormatStringQuery +import codeql.swift.security.StringLengthConflationQuery +import codeql.swift.security.ConstantPasswordQuery +import codeql.swift.security.CleartextStorageDatabaseQuery +import codeql.swift.security.CleartextTransmissionQuery +import codeql.swift.security.CleartextLoggingQuery +import codeql.swift.security.CleartextStoragePreferencesQuery +import codeql.swift.security.HardcodedEncryptionKeyQuery +import codeql.swift.security.ECBEncryptionQuery +import codeql.swift.security.WeakSensitiveDataHashingQuery +import codeql.swift.security.XXEQuery +import codeql.swift.security.InsecureTLSQuery +import codeql.swift.security.ConstantSaltQuery +import codeql.swift.security.InsufficientHashIterationsQuery +import codeql.swift.security.PredicateInjectionQuery +import codeql.swift.security.StaticInitializationVectorQuery + +string queryForSink(DataFlow::Node sink) { + PathInjectionConfig::isSink(sink) and result = "swift/path-injection" + or + UnsafeWebViewFetchConfig::isSink(sink) and result = "swift/unsafe-webview-fetch" + or + SqlInjectionConfig::isSink(sink) and result = "swift/sql-injection" + or + UnsafeJsEvalConfig::isSink(sink) and result = "swift/unsafe-js-eval" + or + TaintedFormatConfig::isSink(sink) and result = "swift/uncontrolled-format-string" + or + StringLengthConflationConfig::isSink(sink) and result = "swift/string-length-conflation" + or + ConstantPasswordConfig::isSink(sink) and result = "swift/constant-password" + or + CleartextStorageDatabaseConfig::isSink(sink) and result = "swift/cleartext-storage-database" + or + CleartextTransmissionConfig::isSink(sink) and result = "swift/cleartext-transmission" + or + CleartextLoggingConfig::isSink(sink) and result = "swift/cleartext-logging" + or + CleartextStoragePreferencesConfig::isSink(sink) and result = "swift/cleartext-storage-preferences" + or + HardcodedKeyConfig::isSink(sink) and result = "swift/hardcoded-key" + or + EcbEncryptionConfig::isSink(sink) and result = "swift/ecb-encryption" + or + WeakHashingConfig::isSink(sink) and result = "swift/weak-sensitive-data-hashing" + or + XxeConfig::isSink(sink) and result = "swift/xxe" + or + InsecureTlsConfig::isSink(sink) and result = "swift/insecure-tls" + or + ConstantSaltConfig::isSink(sink) and result = "swift/constant-salt" + or + InsufficientHashIterationsConfig::isSink(sink) and result = "swift/insufficient-hash-iterations" + or + PredicateInjectionConfig::isSink(sink) and result = "swift/predicate-injection" + or + StaticInitializationVectorConfig::isSink(sink) and result = "swift/static-initialization-vector" +} + +from DataFlow::Node n +select n, "Sink for " + queryForSink(n) From ee83ad730b7e0faa6b79c442b4175d369544672e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Sep 2023 18:13:23 +0100 Subject: [PATCH 703/788] Swift: Add a summary query for regex evals. --- swift/ql/src/queries/Summary/RegexEvals.ql | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 swift/ql/src/queries/Summary/RegexEvals.ql diff --git a/swift/ql/src/queries/Summary/RegexEvals.ql b/swift/ql/src/queries/Summary/RegexEvals.ql new file mode 100644 index 00000000000..30c68e3b13a --- /dev/null +++ b/swift/ql/src/queries/Summary/RegexEvals.ql @@ -0,0 +1,15 @@ +/** + * @name Regular Expression Evaluations + * @description List all regular expression evaluations found in the database. + * @kind problem + * @problem.severity info + * @id swift/summary/regex-evals + * @tags summary + */ + +import swift +import codeql.swift.regex.Regex + +from RegexEval e +select e, + "Regular expression evaluation with " + count(e.getARegex()).toString() + " associated regex(s)" From ec573bdda85d99871cc408db306b91b3b7c61cb4 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Sep 2023 18:22:48 +0100 Subject: [PATCH 704/788] Swift: Clean up and improve consistency. --- swift/ql/src/queries/Summary/FlowSources.ql | 12 ++++++++++-- swift/ql/src/queries/Summary/SummaryStats.ql | 5 ++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/swift/ql/src/queries/Summary/FlowSources.ql b/swift/ql/src/queries/Summary/FlowSources.ql index 04c08aa468e..f0c610080bd 100644 --- a/swift/ql/src/queries/Summary/FlowSources.ql +++ b/swift/ql/src/queries/Summary/FlowSources.ql @@ -9,13 +9,21 @@ * @tags summary */ +/* + * Most queries compute data flow from one of the following sources: + * - flow sources (listed by this query, `swift/summary/flow-sources`). + * - sensitive expressions (see `swift/summary/sensitive-expressions`). + * - constant values. + * - custom per-query sources. + */ + import swift import codeql.swift.dataflow.FlowSources string sourceClass(FlowSource s) { - s instanceof LocalFlowSource and result = "LocalFlowSource" + s instanceof LocalFlowSource and result = "Local flow source" or - s instanceof RemoteFlowSource and result = "RemoteFlowSource" + s instanceof RemoteFlowSource and result = "Remote flow source" } from FlowSource s diff --git a/swift/ql/src/queries/Summary/SummaryStats.ql b/swift/ql/src/queries/Summary/SummaryStats.ql index 49710791af8..d652cc37996 100644 --- a/swift/ql/src/queries/Summary/SummaryStats.ql +++ b/swift/ql/src/queries/Summary/SummaryStats.ql @@ -1,5 +1,5 @@ /** - * @name Summary statistics + * @name Summary Statistics * @description A table of summary statistics about a database. * @kind table * @id swift/summary/summary-statistics @@ -59,6 +59,9 @@ predicate statistic(string what, string value) { what = "Taint reach (per million nodes)" and value = taintReach().toString() or what = "Regular expression evals" and value = count(RegexEval e).toString() + or + what = "Regular expression evals with associated regex" and + value = count(RegexEval e | exists(e.getARegex())).toString() } from string what, string value From 87696e58ab2b9bf1104962faa7ab607a0f86413f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Sep 2023 18:28:07 +0100 Subject: [PATCH 705/788] Swift: Break the 'taint reach' metric off into its own query (it's expensive to compute). --- swift/ql/src/queries/Summary/SummaryStats.ql | 30 ------------ swift/ql/src/queries/Summary/TaintReach.ql | 48 ++++++++++++++++++++ 2 files changed, 48 insertions(+), 30 deletions(-) create mode 100644 swift/ql/src/queries/Summary/TaintReach.ql diff --git a/swift/ql/src/queries/Summary/SummaryStats.ql b/swift/ql/src/queries/Summary/SummaryStats.ql index d652cc37996..aab8cf6610d 100644 --- a/swift/ql/src/queries/Summary/SummaryStats.ql +++ b/swift/ql/src/queries/Summary/SummaryStats.ql @@ -9,32 +9,8 @@ import swift import codeql.swift.dataflow.FlowSources import codeql.swift.security.SensitiveExprs -import codeql.swift.dataflow.DataFlow -import codeql.swift.dataflow.TaintTracking import codeql.swift.regex.Regex -/** - * A taint configuration for tainted data reaching any node. - */ -module TaintReachConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node node) { node instanceof FlowSource } - - predicate isSink(DataFlow::Node node) { any() } -} - -module TaintReachFlow = TaintTracking::Global; - -/** - * Gets the total number of dataflow nodes that taint reaches (from any source). - */ -int taintedNodesCount() { result = count(DataFlow::Node n | TaintReachFlow::flowTo(n)) } - -/** - * Gets the proportion of dataflow nodes that taint reaches (from any source), - * expressed as a count per million nodes. - */ -float taintReach() { result = (taintedNodesCount() * 1000000.0) / count(DataFlow::Node n) } - predicate statistic(string what, string value) { what = "Files" and value = count(File f).toString() or @@ -52,12 +28,6 @@ predicate statistic(string what, string value) { or what = "Sensitive expressions" and value = count(SensitiveExpr e).toString() or - what = "Dataflow nodes (total)" and value = count(DataFlow::Node n).toString() - or - what = "Dataflow nodes (tainted)" and value = taintedNodesCount().toString() - or - what = "Taint reach (per million nodes)" and value = taintReach().toString() - or what = "Regular expression evals" and value = count(RegexEval e).toString() or what = "Regular expression evals with associated regex" and diff --git a/swift/ql/src/queries/Summary/TaintReach.ql b/swift/ql/src/queries/Summary/TaintReach.ql new file mode 100644 index 00000000000..b6fc1e57fb9 --- /dev/null +++ b/swift/ql/src/queries/Summary/TaintReach.ql @@ -0,0 +1,48 @@ +/** + * @name Taint Reach + * @description Calculates 'taint reach', a measure of how much of a database + * is reached from flow sources, via taint flow. This can be + * expensive to compute on large databases. + * @kind table + * @id swift/summary/taint-reach + * @tags summary + */ + +import swift +import codeql.swift.dataflow.FlowSources +import codeql.swift.dataflow.DataFlow +import codeql.swift.dataflow.TaintTracking + +/** + * A taint configuration for tainted data reaching any node. + */ +module TaintReachConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node node) { node instanceof FlowSource } + + predicate isSink(DataFlow::Node node) { any() } +} + +module TaintReachFlow = TaintTracking::Global; + +/** + * Gets the total number of dataflow nodes that taint reaches (from any source). + */ +int taintedNodesCount() { result = count(DataFlow::Node n | TaintReachFlow::flowTo(n)) } + +/** + * Gets the proportion of dataflow nodes that taint reaches (from any source), + * expressed as a count per million nodes. + */ +float taintReach() { result = (taintedNodesCount() * 1000000.0) / count(DataFlow::Node n) } + +predicate statistic(string what, string value) { + what = "Dataflow nodes (total)" and value = count(DataFlow::Node n).toString() + or + what = "Dataflow nodes (tainted)" and value = taintedNodesCount().toString() + or + what = "Taint reach (per million nodes)" and value = taintReach().toString() +} + +from string what, string value +where statistic(what, value) +select what, value From 2860c0c0d42fe58a8427ca06387cf8022196318a Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Wed, 27 Sep 2023 18:42:26 +0100 Subject: [PATCH 706/788] CPP: Move test into correct file. --- .../query-tests/Critical/MemoryFreed/MemoryFreed.expected | 2 +- .../Critical/MemoryFreed/MemoryMayNotBeFreed.expected | 2 +- cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp | 6 ------ cpp/ql/test/query-tests/Critical/MemoryFreed/test_free.cpp | 6 ++++++ 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected index 26424477fcb..141b7091d19 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected @@ -26,7 +26,6 @@ | test.cpp:128:15:128:16 | v4 | | test.cpp:185:10:185:12 | cpy | | test.cpp:199:10:199:12 | cpy | -| test.cpp:205:7:205:11 | ... = ... | | test_free.cpp:11:10:11:10 | a | | test_free.cpp:14:10:14:10 | a | | test_free.cpp:16:10:16:10 | a | @@ -97,6 +96,7 @@ | test_free.cpp:255:10:255:10 | p | | test_free.cpp:260:9:260:9 | p | | test_free.cpp:263:12:263:12 | p | +| test_free.cpp:269:7:269:11 | ... = ... | | virtual.cpp:18:10:18:10 | a | | virtual.cpp:19:10:19:10 | c | | virtual.cpp:38:10:38:10 | b | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryMayNotBeFreed.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryMayNotBeFreed.expected index 01c81db9c3b..91bb79e6852 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryMayNotBeFreed.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryMayNotBeFreed.expected @@ -1,2 +1,2 @@ -| test.cpp:203:12:203:17 | call to malloc | This memory allocation may not be released at $@. | test.cpp:206:1:206:1 | return ... | this exit point | | test_free.cpp:36:22:36:35 | ... = ... | This memory allocation may not be released at $@. | test_free.cpp:38:1:38:1 | return ... | this exit point | +| test_free.cpp:267:12:267:17 | call to malloc | This memory allocation may not be released at $@. | test_free.cpp:270:1:270:1 | return ... | this exit point | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp b/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp index 4cee840a062..4f05f9d4954 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp @@ -198,9 +198,3 @@ void test_strndupa_dealloc() { char *cpy = strndupa(msg, 4); free(cpy); // BAD [NOT DETECTED] } - -void test_free_malloc() { - void *a = malloc(10); - void *b; - free(b = a); -} \ No newline at end of file diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/test_free.cpp b/cpp/ql/test/query-tests/Critical/MemoryFreed/test_free.cpp index 82af587c8ee..b9ea0ec6fbf 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/test_free.cpp +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/test_free.cpp @@ -261,4 +261,10 @@ void test_ref_delete(int *&p) { p = new int; use(p); // GOOD delete p; // GOOD +} + +void test_free_assign() { + void *a = malloc(10); + void *b; + free(b = a); // GOOD } \ No newline at end of file From 98b2ef0a2fa6092f7656d3913ec1457be5b864e8 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Sep 2023 19:09:23 +0100 Subject: [PATCH 707/788] Swift: Autoformat. --- .../swift/frameworks/StandardLibrary/String.qll | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll index 5f0928f4332..6a1c6ef40e6 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/String.qll @@ -150,13 +150,11 @@ private class StringFieldsInheritTaint extends TaintInheritingContent, or exists(FieldDecl fieldDecl, Decl declaringDecl, TypeDecl namedTypeDecl | ( - ( - namedTypeDecl.getFullName() = "CustomStringConvertible" and - fieldDecl.getName() = "description" - ) or ( - namedTypeDecl.getFullName() = "CustomDebugStringConvertible" and - fieldDecl.getName() = "debugDescription" - ) + namedTypeDecl.getFullName() = "CustomStringConvertible" and + fieldDecl.getName() = "description" + or + namedTypeDecl.getFullName() = "CustomDebugStringConvertible" and + fieldDecl.getName() = "debugDescription" ) and declaringDecl.getAMember() = fieldDecl and declaringDecl.asNominalTypeDecl() = namedTypeDecl.getADerivedTypeDecl*() and From e4e4c5be61a582d528cfc530ed7a2ecb36192ca7 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Sep 2023 19:12:04 +0100 Subject: [PATCH 708/788] Swift: Make QL-for-QL happy. --- swift/ql/src/queries/Summary/RegexEvals.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/src/queries/Summary/RegexEvals.ql b/swift/ql/src/queries/Summary/RegexEvals.ql index 30c68e3b13a..47c974ebefb 100644 --- a/swift/ql/src/queries/Summary/RegexEvals.ql +++ b/swift/ql/src/queries/Summary/RegexEvals.ql @@ -12,4 +12,4 @@ import codeql.swift.regex.Regex from RegexEval e select e, - "Regular expression evaluation with " + count(e.getARegex()).toString() + " associated regex(s)" + "Regular expression evaluation with " + count(e.getARegex()).toString() + " associated regex(s)." From deb47e34b8e5c840fdf4c31a0b975f06cdbb18ea Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Wed, 27 Sep 2023 15:01:42 -0400 Subject: [PATCH 709/788] fix underlines --- ...tract-syntax-tree-classes-for-working-with-java-programs.rst | 2 +- .../customizing-library-models-for-java.rst | 2 +- .../overflow-prone-comparisons-in-java.rst | 2 +- docs/codeql/codeql-language-guides/types-in-java.rst | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst b/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst index 286d6bc6a7a..f903b538926 100644 --- a/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst +++ b/docs/codeql/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.rst @@ -1,7 +1,7 @@ .. _abstract-syntax-tree-classes-for-working-with-java-programs: Abstract syntax tree classes for working with Java and Kotlin programs -=========================================================== +====================================================================== CodeQL has a large selection of classes for representing the abstract syntax tree of Java and Kotlin programs. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst index 1bc0149e3dd..87304d779c8 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst @@ -4,7 +4,7 @@ :nosearch: Customizing Library Models for Java and Kotlin -=================================== +============================================== .. include:: ../reusables/beta-note-customizing-library-models.rst diff --git a/docs/codeql/codeql-language-guides/overflow-prone-comparisons-in-java.rst b/docs/codeql/codeql-language-guides/overflow-prone-comparisons-in-java.rst index 44072c5fbf2..a667c670fbe 100644 --- a/docs/codeql/codeql-language-guides/overflow-prone-comparisons-in-java.rst +++ b/docs/codeql/codeql-language-guides/overflow-prone-comparisons-in-java.rst @@ -1,7 +1,7 @@ .. _overflow-prone-comparisons-in-java: Overflow-prone comparisons in Java and Kotlin -================================== +============================================= You can use CodeQL to check for comparisons in Java/Kotlin code where one side of the comparison is prone to overflow. diff --git a/docs/codeql/codeql-language-guides/types-in-java.rst b/docs/codeql/codeql-language-guides/types-in-java.rst index 0756460909f..733a177c65b 100644 --- a/docs/codeql/codeql-language-guides/types-in-java.rst +++ b/docs/codeql/codeql-language-guides/types-in-java.rst @@ -1,7 +1,7 @@ .. _types-in-java: Types in Java and Kotlin -============= +======================== You can use CodeQL to find out information about data types used in Java/Kotlin code. This allows you to write queries to identify specific type-related issues. From 9609cafab41ee4459a439c37d275da6e788b14f0 Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Wed, 27 Sep 2023 16:27:32 -0400 Subject: [PATCH 710/788] Update annotations-in-java.rst --- docs/codeql/codeql-language-guides/annotations-in-java.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/annotations-in-java.rst b/docs/codeql/codeql-language-guides/annotations-in-java.rst index d0cd7e6bd8d..083cf471ef8 100644 --- a/docs/codeql/codeql-language-guides/annotations-in-java.rst +++ b/docs/codeql/codeql-language-guides/annotations-in-java.rst @@ -1,7 +1,7 @@ .. _annotations-in-java: Annotations in Java and Kotlin -=================== +============================== CodeQL databases of Java/Kotlin projects contain information about all annotations attached to program elements. From 653844cc46b47b0526866bab2c026bf29febed6e Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 26 Sep 2023 10:31:14 +0200 Subject: [PATCH 711/788] Java: Use shared FileSystem library. --- java/ql/lib/semmle/code/FileSystem.qll | 193 ++++--------------------- 1 file changed, 27 insertions(+), 166 deletions(-) diff --git a/java/ql/lib/semmle/code/FileSystem.qll b/java/ql/lib/semmle/code/FileSystem.qll index 115cc96d791..a7c38b41ca5 100644 --- a/java/ql/lib/semmle/code/FileSystem.qll +++ b/java/ql/lib/semmle/code/FileSystem.qll @@ -1,171 +1,37 @@ /** Provides classes for working with files and folders. */ import Location +private import codeql.util.FileSystem + +private module Input implements InputSig { + abstract class ContainerBase extends @container { + abstract string getAbsolutePath(); + + ContainerBase getParentContainer() { containerparent(result, this) } + + string toString() { result = this.getAbsolutePath() } + } + + class FolderBase extends ContainerBase, @folder { + override string getAbsolutePath() { folders(this, result) } + } + + class FileBase extends ContainerBase, @file { + override string getAbsolutePath() { files(this, result) } + } + + predicate hasSourceLocationPrefix = sourceLocationPrefix/1; +} + +private module Impl = Make; /** A file or folder. */ -class Container extends @container, Top { - /** - * Gets the absolute, canonical path of this container, using forward slashes - * as path separator. - * - * The path starts with a _root prefix_ followed by zero or more _path - * segments_ separated by forward slashes. - * - * The root prefix is of one of the following forms: - * - * 1. A single forward slash `/` (Unix-style) - * 2. An upper-case drive letter followed by a colon and a forward slash, - * such as `C:/` (Windows-style) - * 3. Two forward slashes, a computer name, and then another forward slash, - * such as `//FileServer/` (UNC-style) - * - * Path segments are never empty (that is, absolute paths never contain two - * contiguous slashes, except as part of a UNC-style root prefix). Also, path - * segments never contain forward slashes, and no path segment is of the - * form `.` (one dot) or `..` (two dots). - * - * Note that an absolute path never ends with a forward slash, except if it is - * a bare root prefix, that is, the path has no path segments. A container - * whose absolute path has no segments is always a `Folder`, not a `File`. - */ - abstract string getAbsolutePath(); - - /** - * Gets a URL representing the location of this container. - * - * For more information see [Providing URLs](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/#providing-urls). - */ - abstract string getURL(); - - /** - * Gets the relative path of this file or folder from the root folder of the - * analyzed source location. The relative path of the root folder itself is - * the empty string. - * - * This has no result if the container is outside the source root, that is, - * if the root folder is not a reflexive, transitive parent of this container. - */ - string getRelativePath() { - exists(string absPath, string pref | - absPath = this.getAbsolutePath() and sourceLocationPrefix(pref) - | - absPath = pref and result = "" - or - absPath = pref.regexpReplaceAll("/$", "") + "/" + result and - not result.matches("/%") - ) - } - - /** - * Gets the base name of this container including extension, that is, the last - * segment of its absolute path, or the empty string if it has no segments. - * - * Here are some examples of absolute paths and the corresponding base names - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - * - *
    Absolute pathBase name
    "/tmp/tst.java""tst.java"
    "C:/Program Files (x86)""Program Files (x86)"
    "/"""
    "C:/"""
    "D:/"""
    "//FileServer/"""
    - */ - string getBaseName() { - result = this.getAbsolutePath().regexpCapture(".*/(([^/]*?)(?:\\.([^.]*))?)", 1) - } - - /** - * Gets the extension of this container, that is, the suffix of its base name - * after the last dot character, if any. - * - * In particular, - * - * - if the name does not include a dot, there is no extension, so this - * predicate has no result; - * - if the name ends in a dot, the extension is the empty string; - * - if the name contains multiple dots, the extension follows the last dot. - * - * Here are some examples of absolute paths and the corresponding extensions - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathExtension
    "/tmp/tst.java""java"
    "/tmp/.classpath""classpath"
    "/bin/bash"not defined
    "/tmp/tst2."""
    "/tmp/x.tar.gz""gz"
    - */ - string getExtension() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(\\.([^.]*))?", 3) - } - - /** - * Gets the stem of this container, that is, the prefix of its base name up to - * (but not including) the last dot character if there is one, or the entire - * base name if there is not. - * - * Here are some examples of absolute paths and the corresponding stems - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathStem
    "/tmp/tst.java""tst"
    "/tmp/.classpath"""
    "/bin/bash""bash"
    "/tmp/tst2.""tst2"
    "/tmp/x.tar.gz""x.tar"
    - */ - string getStem() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(?:\\.([^.]*))?", 1) - } - - /** Gets the parent container of this file or folder, if any. */ - Container getParentContainer() { containerparent(result, this) } - - /** Gets a file or sub-folder in this container. */ - Container getAChildContainer() { this = result.getParentContainer() } - - /** Gets a file in this container. */ - File getAFile() { result = this.getAChildContainer() } - - /** Gets the file in this container that has the given `baseName`, if any. */ - File getFile(string baseName) { - result = this.getAFile() and - result.getBaseName() = baseName - } - - /** Gets a sub-folder in this container. */ - Folder getAFolder() { result = this.getAChildContainer() } - - /** Gets the sub-folder in this container that has the given `baseName`, if any. */ - Folder getFolder(string baseName) { - result = this.getAFolder() and - result.getBaseName() = baseName - } - - /** - * Gets a textual representation of this container. - * - * The default implementation gets the absolute path to the container, but subclasses may override - * to provide a different result. To get the absolute path of any `Container`, call - * `Container.getAbsolutePath()` directly. - */ - override string toString() { result = this.getAbsolutePath() } +class Container extends Impl::Container, Top { + override string toString() { result = Impl::Container.super.toString() } } /** A folder. */ -class Folder extends Container, @folder { - override string getAbsolutePath() { folders(this, result) } - - /** Gets the URL of this folder. */ - override string getURL() { result = "folder://" + this.getAbsolutePath() } - +class Folder extends Container, Impl::Folder { override string getAPrimaryQlClass() { result = "Folder" } } @@ -174,12 +40,7 @@ class Folder extends Container, @folder { * * Note that `File` extends `Container` as it may be a `jar` file. */ -class File extends Container, @file { - override string getAbsolutePath() { files(this, result) } - - /** Gets the URL of this file. */ - override string getURL() { result = "file://" + this.getAbsolutePath() + ":0:0:0:0" } - +class File extends Container, Impl::File { override string getAPrimaryQlClass() { result = "File" } /** Holds if this is a (Java or Kotlin) source file. */ From 2548939849094d76272c6a6f62de19642cb51cde Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 26 Sep 2023 10:50:45 +0200 Subject: [PATCH 712/788] C++: Use shared FileSystem library. --- cpp/ql/lib/semmle/code/cpp/File.qll | 182 +++++----------------------- 1 file changed, 29 insertions(+), 153 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/File.qll b/cpp/ql/lib/semmle/code/cpp/File.qll index bac9b66965e..55ecd2b46e3 100644 --- a/cpp/ql/lib/semmle/code/cpp/File.qll +++ b/cpp/ql/lib/semmle/code/cpp/File.qll @@ -5,155 +5,35 @@ import semmle.code.cpp.Element import semmle.code.cpp.Declaration import semmle.code.cpp.metrics.MetricFile +private import codeql.util.FileSystem + +private module Input implements InputSig { + abstract class ContainerBase extends @container { + abstract string getAbsolutePath(); + + ContainerBase getParentContainer() { + containerparent(unresolveElement(result), underlyingElement(this)) + } + + string toString() { result = this.getAbsolutePath() } + } + + class FolderBase extends ContainerBase, @folder { + override string getAbsolutePath() { folders(underlyingElement(this), result) } + } + + class FileBase extends ContainerBase, @file { + override string getAbsolutePath() { files(underlyingElement(this), result) } + } + + predicate hasSourceLocationPrefix = sourceLocationPrefix/1; +} + +private module Impl = Make; /** A file or folder. */ -class Container extends Locatable, @container { - /** - * Gets the absolute, canonical path of this container, using forward slashes - * as path separator. - * - * The path starts with a _root prefix_ followed by zero or more _path - * segments_ separated by forward slashes. - * - * The root prefix is of one of the following forms: - * - * 1. A single forward slash `/` (Unix-style) - * 2. An upper-case drive letter followed by a colon and a forward slash, - * such as `C:/` (Windows-style) - * 3. Two forward slashes, a computer name, and then another forward slash, - * such as `//FileServer/` (UNC-style) - * - * Path segments are never empty (that is, absolute paths never contain two - * contiguous slashes, except as part of a UNC-style root prefix). Also, path - * segments never contain forward slashes, and no path segment is of the - * form `.` (one dot) or `..` (two dots). - * - * Note that an absolute path never ends with a forward slash, except if it is - * a bare root prefix, that is, the path has no path segments. A container - * whose absolute path has no segments is always a `Folder`, not a `File`. - */ - string getAbsolutePath() { none() } // overridden by subclasses - - /** - * Gets the relative path of this file or folder from the root folder of the - * analyzed source location. The relative path of the root folder itself is - * the empty string. - * - * This has no result if the container is outside the source root, that is, - * if the root folder is not a reflexive, transitive parent of this container. - */ - string getRelativePath() { - exists(string absPath, string pref | - absPath = this.getAbsolutePath() and sourceLocationPrefix(pref) - | - absPath = pref and result = "" - or - absPath = pref.regexpReplaceAll("/$", "") + "/" + result and - not result.matches("/%") - ) - } - - /** - * Gets the base name of this container including extension, that is, the last - * segment of its absolute path, or the empty string if it has no segments. - * - * Here are some examples of absolute paths and the corresponding base names - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - * - *
    Absolute pathBase name
    "/tmp/tst.js""tst.js"
    "C:/Program Files (x86)""Program Files (x86)"
    "/"""
    "C:/"""
    "D:/"""
    "//FileServer/"""
    - */ - string getBaseName() { - result = this.getAbsolutePath().regexpCapture(".*/(([^/]*?)(?:\\.([^.]*))?)", 1) - } - - /** - * Gets the extension of this container, that is, the suffix of its base name - * after the last dot character, if any. - * - * In particular, - * - * - if the name does not include a dot, there is no extension, so this - * predicate has no result; - * - if the name ends in a dot, the extension is the empty string; - * - if the name contains multiple dots, the extension follows the last dot. - * - * Here are some examples of absolute paths and the corresponding extensions - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathExtension
    "/tmp/tst.js""js"
    "/tmp/.classpath""classpath"
    "/bin/bash"not defined
    "/tmp/tst2."""
    "/tmp/x.tar.gz""gz"
    - */ - string getExtension() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(\\.([^.]*))?", 3) - } - - /** - * Gets the stem of this container, that is, the prefix of its base name up to - * (but not including) the last dot character if there is one, or the entire - * base name if there is not. - * - * Here are some examples of absolute paths and the corresponding stems - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathStem
    "/tmp/tst.js""tst"
    "/tmp/.classpath"""
    "/bin/bash""bash"
    "/tmp/tst2.""tst2"
    "/tmp/x.tar.gz""x.tar"
    - */ - string getStem() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(?:\\.([^.]*))?", 1) - } - - /** Gets the parent container of this file or folder, if any. */ - Container getParentContainer() { - containerparent(unresolveElement(result), underlyingElement(this)) - } - - /** Gets a file or sub-folder in this container. */ - Container getAChildContainer() { this = result.getParentContainer() } - - /** Gets a file in this container. */ - File getAFile() { result = this.getAChildContainer() } - - /** Gets the file in this container that has the given `baseName`, if any. */ - File getFile(string baseName) { - result = this.getAFile() and - result.getBaseName() = baseName - } - - /** Gets a sub-folder in this container. */ - Folder getAFolder() { result = this.getAChildContainer() } - - /** Gets the sub-folder in this container that has the given `baseName`, if any. */ - Folder getFolder(string baseName) { - result = this.getAFolder() and - result.getBaseName() = baseName - } - - /** - * Gets a textual representation of the path of this container. - * - * This is the absolute path of the container. - */ - override string toString() { result = this.getAbsolutePath() } +class Container extends Locatable, Impl::Container { + override string toString() { result = Impl::Container.super.toString() } } /** @@ -166,9 +46,7 @@ class Container extends Locatable, @container { * * To get the full path, use `getAbsolutePath`. */ -class Folder extends Container, @folder { - override string getAbsolutePath() { folders(underlyingElement(this), result) } - +class Folder extends Container, Impl::Folder { override Location getLocation() { result.getContainer() = this and result.hasLocationInfo(_, 0, 0, 0, 0) @@ -189,9 +67,7 @@ class Folder extends Container, @folder { * The base name further decomposes into the _stem_ and _extension_ -- see * `getStem` and `getExtension`. To get the full path, use `getAbsolutePath`. */ -class File extends Container, @file { - override string getAbsolutePath() { files(underlyingElement(this), result) } - +class File extends Container, Impl::File { override string getAPrimaryQlClass() { result = "File" } override Location getLocation() { From a08fe5b8b1e32b02ffa908b16f4419acbb1240d1 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 26 Sep 2023 11:04:55 +0200 Subject: [PATCH 713/788] Go: Use shared FileSystem library. --- go/ql/lib/semmle/go/Files.qll | 176 ++++------------------------------ 1 file changed, 18 insertions(+), 158 deletions(-) diff --git a/go/ql/lib/semmle/go/Files.qll b/go/ql/lib/semmle/go/Files.qll index 11d7d337a41..64b5caf7f46 100644 --- a/go/ql/lib/semmle/go/Files.qll +++ b/go/ql/lib/semmle/go/Files.qll @@ -1,166 +1,34 @@ /** Provides classes for working with files and folders. */ import go +private import codeql.util.FileSystem -/** A file or folder. */ -abstract class Container extends @container { - /** - * Gets the absolute, canonical path of this container, using forward slashes - * as path separator. - * - * The path starts with a _root prefix_ followed by zero or more _path - * segments_ separated by forward slashes. - * - * The root prefix is of one of the following forms: - * - * 1. A single forward slash `/` (Unix-style) - * 2. An upper-case drive letter followed by a colon and a forward slash, - * such as `C:/` (Windows-style) - * 3. Two forward slashes, a computer name, and then another forward slash, - * such as `//FileServer/` (UNC-style) - * - * Path segments are never empty (that is, absolute paths never contain two - * contiguous slashes, except as part of a UNC-style root prefix). Also, path - * segments never contain forward slashes, and no path segment is of the - * form `.` (one dot) or `..` (two dots). - * - * Note that an absolute path never ends with a forward slash, except if it is - * a bare root prefix, that is, the path has no path segments. A container - * whose absolute path has no segments is always a `Folder`, not a `File`. - */ - abstract string getAbsolutePath(); +private module Input implements InputSig { + abstract class ContainerBase extends @container { + abstract string getAbsolutePath(); - /** - * Gets a URL representing the location of this container. - * - * For more information see https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/#providing-urls. - */ - abstract string getURL(); + ContainerBase getParentContainer() { containerparent(result, this) } - /** - * Gets the relative path of this file or folder from the root folder of the - * analyzed source location. The relative path of the root folder itself is - * the empty string. - * - * This has no result if the container is outside the source root, that is, - * if the root folder is not a reflexive, transitive parent of this container. - */ - string getRelativePath() { - exists(string absPath, string pref | - absPath = this.getAbsolutePath() and sourceLocationPrefix(pref) - | - absPath = pref and result = "" - or - absPath = pref.regexpReplaceAll("/$", "") + "/" + result and - not result.matches("/%") - ) + string toString() { result = this.getAbsolutePath() } } - /** - * Gets the base name of this container including extension, that is, the last - * segment of its absolute path, or the empty string if it has no segments. - * - * Here are some examples of absolute paths and the corresponding base names - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - * - *
    Absolute pathBase name
    "/tmp/tst.go""tst.go"
    "C:/Program Files (x86)""Program Files (x86)"
    "/"""
    "C:/"""
    "D:/"""
    "//FileServer/"""
    - */ - string getBaseName() { - result = this.getAbsolutePath().regexpCapture(".*/(([^/]*?)(?:\\.([^.]*))?)", 1) + class FolderBase extends ContainerBase, @folder { + override string getAbsolutePath() { folders(this, result) } } - /** - * Gets the extension of this container, that is, the suffix of its base name - * after the last dot character, if any. - * - * In particular, - * - * - if the name does not include a dot, there is no extension, so this - * predicate has no result; - * - if the name ends in a dot, the extension is the empty string; - * - if the name contains multiple dots, the extension follows the last dot. - * - * Here are some examples of absolute paths and the corresponding extensions - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathExtension
    "/tmp/tst.go""go"
    "/tmp/.classpath""classpath"
    "/bin/bash"not defined
    "/tmp/tst2."""
    "/tmp/x.tar.gz""gz"
    - */ - string getExtension() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(\\.([^.]*))?", 3) + class FileBase extends ContainerBase, @file { + override string getAbsolutePath() { files(this, result) } } - /** - * Gets the stem of this container, that is, the prefix of its base name up to - * (but not including) the last dot character if there is one, or the entire - * base name if there is not. - * - * Here are some examples of absolute paths and the corresponding stems - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathStem
    "/tmp/tst.go""tst"
    "/tmp/.classpath"""
    "/bin/bash""bash"
    "/tmp/tst2.""tst2"
    "/tmp/x.tar.gz""x.tar"
    - */ - string getStem() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(?:\\.([^.]*))?", 1) - } - - /** Gets the parent container of this file or folder, if any. */ - Container getParentContainer() { containerparent(result, this) } - - /** Gets a file or sub-folder in this container. */ - Container getAChildContainer() { this = result.getParentContainer() } - - /** Gets a file in this container. */ - File getAFile() { result = this.getAChildContainer() } - - /** Gets the file in this container that has the given `baseName`, if any. */ - File getFile(string baseName) { - result = this.getAFile() and - result.getBaseName() = baseName - } - - /** Gets a sub-folder in this container. */ - Folder getAFolder() { result = this.getAChildContainer() } - - /** Gets the sub-folder in this container that has the given `baseName`, if any. */ - Folder getFolder(string baseName) { - result = this.getAFolder() and - result.getBaseName() = baseName - } - - /** - * Gets a textual representation of the path of this container. - * - * This is the absolute path of the container. - */ - string toString() { result = this.getAbsolutePath() } + predicate hasSourceLocationPrefix = sourceLocationPrefix/1; } -/** A folder. */ -class Folder extends Container, @folder { - override string getAbsolutePath() { folders(this, result) } +private module Impl = Make; +class Container = Impl::Container; + +/** A folder. */ +class Folder extends Container, Impl::Folder { /** Gets the file or subfolder in this folder that has the given `name`, if any. */ Container getChildContainer(string name) { result = this.getAChildContainer() and @@ -176,19 +44,14 @@ class Folder extends Container, @folder { /** Gets a subfolder contained in this folder. */ Folder getASubFolder() { result = this.getAChildContainer() } - - /** Gets the URL of this folder. */ - override string getURL() { result = "folder://" + this.getAbsolutePath() } } /** A file, including files that have not been extracted but are referred to as locations for errors. */ -class ExtractedOrExternalFile extends Container, @file, Documentable, ExprParent, GoModExprParent, - DeclParent, ScopeNode +class ExtractedOrExternalFile extends Container, Impl::File, Documentable, ExprParent, + GoModExprParent, DeclParent, ScopeNode { override Location getLocation() { has_location(this, result) } - override string getAbsolutePath() { files(this, result) } - /** Gets the number of lines in this file. */ int getNumberOfLines() { numlines(this, result, _, _) } @@ -246,9 +109,6 @@ class ExtractedOrExternalFile extends Container, @file, Documentable, ExprParent override string toString() { result = Container.super.toString() } - /** Gets the URL of this file. */ - override string getURL() { result = "file://" + this.getAbsolutePath() + ":0:0:0:0" } - /** Gets the `i`th child comment group. */ CommentGroup getCommentGroup(int i) { comment_groups(result, this, i) } From 73521ca16bcc4548202865bae73a882cf9cb2512 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 26 Sep 2023 11:44:32 +0200 Subject: [PATCH 714/788] Python: Use shared FileSystem library. --- python/ql/lib/semmle/python/Files.qll | 193 ++++---------------------- 1 file changed, 30 insertions(+), 163 deletions(-) diff --git a/python/ql/lib/semmle/python/Files.qll b/python/ql/lib/semmle/python/Files.qll index 059a0d72b28..5340a3fdc43 100644 --- a/python/ql/lib/semmle/python/Files.qll +++ b/python/ql/lib/semmle/python/Files.qll @@ -1,7 +1,32 @@ +/** Provides classes for working with files and folders. */ + import python +private import codeql.util.FileSystem + +private module Input implements InputSig { + abstract class ContainerBase extends @container { + abstract string getAbsolutePath(); + + ContainerBase getParentContainer() { containerparent(result, this) } + + string toString() { result = this.getAbsolutePath() } + } + + class FolderBase extends ContainerBase, @folder { + override string getAbsolutePath() { folders(this, result) } + } + + class FileBase extends ContainerBase, @file { + override string getAbsolutePath() { files(this, result) } + } + + predicate hasSourceLocationPrefix = sourceLocationPrefix/1; +} + +private module Impl = Make; /** A file */ -class File extends Container, @file { +class File extends Container, Impl::File { /** * Holds if this element is at the specified location. * The location spans column `startcolumn` of line `startline` to @@ -45,11 +70,6 @@ class File extends Container, @file { ) } - override string getAbsolutePath() { files(this, result) } - - /** Gets the URL of this file. */ - override string getURL() { result = "file://" + this.getAbsolutePath() + ":0:0:0:0" } - override Container getImportRoot(int n) { /* File stem must be a legal Python identifier */ this.getStem().regexpMatch("[^\\d\\W]\\w*") and @@ -108,7 +128,7 @@ private predicate occupied_line(File f, int n) { } /** A folder (directory) */ -class Folder extends Container, @folder { +class Folder extends Container, Impl::Folder { /** * Holds if this element is at the specified location. * The location spans column `startcolumn` of line `startline` to @@ -126,11 +146,6 @@ class Folder extends Container, @folder { endcolumn = 0 } - override string getAbsolutePath() { folders(this, result) } - - /** Gets the URL of this folder. */ - override string getURL() { result = "folder://" + this.getAbsolutePath() } - override Container getImportRoot(int n) { this.isImportRoot(n) and result = this or @@ -144,34 +159,8 @@ class Folder extends Container, @folder { * A container is an abstract representation of a file system object that can * hold elements of interest. */ -abstract class Container extends @container { - Container getParent() { containerparent(result, this) } - - /** - * Gets a textual representation of the path of this container. - * - * This is the absolute path of the container. - */ - string toString() { result = this.getAbsolutePath() } - - /** - * Gets the relative path of this file or folder from the root folder of the - * analyzed source location. The relative path of the root folder itself is - * the empty string. - * - * This has no result if the container is outside the source root, that is, - * if the root folder is not a reflexive, transitive parent of this container. - */ - string getRelativePath() { - exists(string absPath, string pref | - absPath = this.getAbsolutePath() and sourceLocationPrefix(pref) - | - absPath = pref and result = "" - or - absPath = pref.regexpReplaceAll("/$", "") + "/" + result and - not result.matches("/%") - ) - } +class Container extends Impl::Container { + Container getParent() { result = this.getParentContainer() } /** Whether this file or folder is part of the standard library */ predicate inStdlib() { this.inStdlib(_, _) } @@ -187,135 +176,13 @@ abstract class Container extends @container { ) } - /* Standard cross-language API */ - /** Gets a file or sub-folder in this container. */ - Container getAChildContainer() { containerparent(this, result) } - - /** Gets a file in this container. */ - File getAFile() { result = this.getAChildContainer() } - - /** Gets a sub-folder in this container. */ - Folder getAFolder() { result = this.getAChildContainer() } - - /** - * Gets the absolute, canonical path of this container, using forward slashes - * as path separator. - * - * The path starts with a _root prefix_ followed by zero or more _path - * segments_ separated by forward slashes. - * - * The root prefix is of one of the following forms: - * - * 1. A single forward slash `/` (Unix-style) - * 2. An upper-case drive letter followed by a colon and a forward slash, - * such as `C:/` (Windows-style) - * 3. Two forward slashes, a computer name, and then another forward slash, - * such as `//FileServer/` (UNC-style) - * - * Path segments are never empty (that is, absolute paths never contain two - * contiguous slashes, except as part of a UNC-style root prefix). Also, path - * segments never contain forward slashes, and no path segment is of the - * form `.` (one dot) or `..` (two dots). - * - * Note that an absolute path never ends with a forward slash, except if it is - * a bare root prefix, that is, the path has no path segments. A container - * whose absolute path has no segments is always a `Folder`, not a `File`. - */ - abstract string getAbsolutePath(); - - /** - * Gets the base name of this container including extension, that is, the last - * segment of its absolute path, or the empty string if it has no segments. - * - * Here are some examples of absolute paths and the corresponding base names - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - * - *
    Absolute pathBase name
    "/tmp/tst.py""tst.py"
    "C:/Program Files (x86)""Program Files (x86)"
    "/"""
    "C:/"""
    "D:/"""
    "//FileServer/"""
    - */ - string getBaseName() { - result = this.getAbsolutePath().regexpCapture(".*/(([^/]*?)(?:\\.([^.]*))?)", 1) - } - - /** - * Gets the extension of this container, that is, the suffix of its base name - * after the last dot character, if any. - * - * In particular, - * - * - if the name does not include a dot, there is no extension, so this - * predicate has no result; - * - if the name ends in a dot, the extension is the empty string; - * - if the name contains multiple dots, the extension follows the last dot. - * - * Here are some examples of absolute paths and the corresponding extensions - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathExtension
    "/tmp/tst.py""py"
    "/tmp/.gitignore""gitignore"
    "/bin/bash"not defined
    "/tmp/tst2."""
    "/tmp/x.tar.gz""gz"
    - */ - string getExtension() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(\\.([^.]*))?", 3) - } - - /** - * Gets the stem of this container, that is, the prefix of its base name up to - * (but not including) the last dot character if there is one, or the entire - * base name if there is not. - * - * Here are some examples of absolute paths and the corresponding stems - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathStem
    "/tmp/tst.py""tst"
    "/tmp/.gitignore"""
    "/bin/bash""bash"
    "/tmp/tst2.""tst2"
    "/tmp/x.tar.gz""x.tar"
    - */ - string getStem() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(?:\\.([^.]*))?", 1) - } - - File getFile(string baseName) { - result = this.getAFile() and - result.getBaseName() = baseName - } - - Folder getFolder(string baseName) { - result = this.getAFolder() and - result.getBaseName() = baseName - } - - Container getParentContainer() { this = result.getAChildContainer() } + override Container getParentContainer() { result = super.getParentContainer() } Container getChildContainer(string baseName) { result = this.getAChildContainer() and result.getBaseName() = baseName } - /** - * Gets a URL representing the location of this container. - * - * For more information see [Providing URLs](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/#providing-urls). - */ - abstract string getURL(); - /** Holds if this folder is on the import path. */ predicate isImportRoot() { this.isImportRoot(_) } From 7bc0c54a41057502f96bedab9269ff97dcac7df5 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 26 Sep 2023 11:51:32 +0200 Subject: [PATCH 715/788] QL: Use shared FileSystem library. --- ql/ql/src/codeql/files/FileSystem.qll | 173 +++----------------------- 1 file changed, 16 insertions(+), 157 deletions(-) diff --git a/ql/ql/src/codeql/files/FileSystem.qll b/ql/ql/src/codeql/files/FileSystem.qll index ed817ae9368..738241a402f 100644 --- a/ql/ql/src/codeql/files/FileSystem.qll +++ b/ql/ql/src/codeql/files/FileSystem.qll @@ -2,177 +2,36 @@ private import codeql_ql.ast.internal.TreeSitter private import codeql.Locations +private import codeql.util.FileSystem -/** A file or folder. */ -abstract class Container extends @container { - /** Gets a file or sub-folder in this container. */ - Container getAChildContainer() { this = result.getParentContainer() } +private module Input implements InputSig { + abstract class ContainerBase extends @container { + abstract string getAbsolutePath(); - /** Gets a file in this container. */ - File getAFile() { result = this.getAChildContainer() } + ContainerBase getParentContainer() { containerparent(result, this) } - /** Gets a sub-folder in this container. */ - Folder getAFolder() { result = this.getAChildContainer() } - - /** - * Gets the absolute, canonical path of this container, using forward slashes - * as path separator. - * - * The path starts with a _root prefix_ followed by zero or more _path - * segments_ separated by forward slashes. - * - * The root prefix is of one of the following forms: - * - * 1. A single forward slash `/` (Unix-style) - * 2. An upper-case drive letter followed by a colon and a forward slash, - * such as `C:/` (Windows-style) - * 3. Two forward slashes, a computer name, and then another forward slash, - * such as `//FileServer/` (UNC-style) - * - * Path segments are never empty (that is, absolute paths never contain two - * contiguous slashes, except as part of a UNC-style root prefix). Also, path - * segments never contain forward slashes, and no path segment is of the - * form `.` (one dot) or `..` (two dots). - * - * Note that an absolute path never ends with a forward slash, except if it is - * a bare root prefix, that is, the path has no path segments. A container - * whose absolute path has no segments is always a `Folder`, not a `File`. - */ - abstract string getAbsolutePath(); - - /** - * Gets the base name of this container including extension, that is, the last - * segment of its absolute path, or the empty string if it has no segments. - * - * Here are some examples of absolute paths and the corresponding base names - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - * - *
    Absolute pathBase name
    "/tmp/tst.go""tst.go"
    "C:/Program Files (x86)""Program Files (x86)"
    "/"""
    "C:/"""
    "D:/"""
    "//FileServer/"""
    - */ - string getBaseName() { - result = this.getAbsolutePath().regexpCapture(".*/(([^/]*?)(?:\\.([^.]*))?)", 1) + string toString() { result = this.getAbsolutePath() } } - /** - * Gets the extension of this container, that is, the suffix of its base name - * after the last dot character, if any. - * - * In particular, - * - * - if the name does not include a dot, there is no extension, so this - * predicate has no result; - * - if the name ends in a dot, the extension is the empty string; - * - if the name contains multiple dots, the extension follows the last dot. - * - * Here are some examples of absolute paths and the corresponding extensions - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathExtension
    "/tmp/tst.go""go"
    "/tmp/.classpath""classpath"
    "/bin/bash"not defined
    "/tmp/tst2."""
    "/tmp/x.tar.gz""gz"
    - */ - string getExtension() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(\\.([^.]*))?", 3) + class FolderBase extends ContainerBase, @folder { + override string getAbsolutePath() { folders(this, result) } } - /** Gets the file in this container that has the given `baseName`, if any. */ - File getFile(string baseName) { - result = this.getAFile() and - result.getBaseName() = baseName + class FileBase extends ContainerBase, @file { + override string getAbsolutePath() { files(this, result) } } - /** Gets the sub-folder in this container that has the given `baseName`, if any. */ - Folder getFolder(string baseName) { - result = this.getAFolder() and - result.getBaseName() = baseName - } - - /** Gets the parent container of this file or folder, if any. */ - Container getParentContainer() { containerparent(result, this) } - - /** - * Gets the relative path of this file or folder from the root folder of the - * analyzed source location. The relative path of the root folder itself is - * the empty string. - * - * This has no result if the container is outside the source root, that is, - * if the root folder is not a reflexive, transitive parent of this container. - */ - string getRelativePath() { - exists(string absPath, string pref | - absPath = this.getAbsolutePath() and sourceLocationPrefix(pref) - | - absPath = pref and result = "" - or - absPath = pref.regexpReplaceAll("/$", "") + "/" + result and - not result.matches("/%") - ) - } - - /** - * Gets the stem of this container, that is, the prefix of its base name up to - * (but not including) the last dot character if there is one, or the entire - * base name if there is not. - * - * Here are some examples of absolute paths and the corresponding stems - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathStem
    "/tmp/tst.go""tst"
    "/tmp/.classpath"""
    "/bin/bash""bash"
    "/tmp/tst2.""tst2"
    "/tmp/x.tar.gz""x.tar"
    - */ - string getStem() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(?:\\.([^.]*))?", 1) - } - - /** - * Gets a URL representing the location of this container. - * - * For more information see https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/#providing-urls. - */ - abstract string getURL(); - - /** - * Gets a textual representation of the path of this container. - * - * This is the absolute path of the container. - */ - string toString() { result = this.getAbsolutePath() } + predicate hasSourceLocationPrefix = sourceLocationPrefix/1; } -/** A folder. */ -class Folder extends Container, @folder { - override string getAbsolutePath() { folders(this, result) } +private module Impl = Make; - /** Gets the URL of this folder. */ - override string getURL() { result = "folder://" + this.getAbsolutePath() } -} +class Container = Impl::Container; + +class Folder = Impl::Folder; /** A file. */ -class File extends Container, @file { - override string getAbsolutePath() { files(this, result) } - - /** Gets the URL of this file. */ - override string getURL() { result = "file://" + this.getAbsolutePath() + ":0:0:0:0" } - +class File extends Container, Impl::File { /** Gets a token in this file. */ private QL::Token getAToken() { result.getLocation().getFile() = this } From 855c89667d215accc19cb5eb8dcd88648b3de476 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 26 Sep 2023 13:49:55 +0200 Subject: [PATCH 716/788] JavaScript: Use shared FileSystem library. --- javascript/ql/lib/semmle/javascript/Files.qll | 174 ++---------------- 1 file changed, 17 insertions(+), 157 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/Files.qll b/javascript/ql/lib/semmle/javascript/Files.qll index d2db71ed73f..b384febb9a1 100644 --- a/javascript/ql/lib/semmle/javascript/Files.qll +++ b/javascript/ql/lib/semmle/javascript/Files.qll @@ -2,166 +2,34 @@ import javascript private import NodeModuleResolutionImpl +private import codeql.util.FileSystem -/** A file or folder. */ -abstract class Container extends @container { - /** - * Gets the absolute, canonical path of this container, using forward slashes - * as path separator. - * - * The path starts with a _root prefix_ followed by zero or more _path - * segments_ separated by forward slashes. - * - * The root prefix is of one of the following forms: - * - * 1. A single forward slash `/` (Unix-style) - * 2. An upper-case drive letter followed by a colon and a forward slash, - * such as `C:/` (Windows-style) - * 3. Two forward slashes, a computer name, and then another forward slash, - * such as `//FileServer/` (UNC-style) - * - * Path segments are never empty (that is, absolute paths never contain two - * contiguous slashes, except as part of a UNC-style root prefix). Also, path - * segments never contain forward slashes, and no path segment is of the - * form `.` (one dot) or `..` (two dots). - * - * Note that an absolute path never ends with a forward slash, except if it is - * a bare root prefix, that is, the path has no path segments. A container - * whose absolute path has no segments is always a `Folder`, not a `File`. - */ - abstract string getAbsolutePath(); +private module FsInput implements InputSig { + abstract class ContainerBase extends @container { + abstract string getAbsolutePath(); - /** - * Gets a URL representing the location of this container. - * - * For more information see [Providing URLs](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/#providing-urls). - */ - abstract string getURL(); + ContainerBase getParentContainer() { containerparent(result, this) } - /** - * Gets the relative path of this file or folder from the root folder of the - * analyzed source location. The relative path of the root folder itself is - * the empty string. - * - * This has no result if the container is outside the source root, that is, - * if the root folder is not a reflexive, transitive parent of this container. - */ - string getRelativePath() { - exists(string absPath, string pref | - absPath = this.getAbsolutePath() and sourceLocationPrefix(pref) - | - absPath = pref and result = "" - or - absPath = pref.regexpReplaceAll("/$", "") + "/" + result and - not result.matches("/%") - ) + string toString() { result = this.getAbsolutePath() } } - /** - * Gets the base name of this container including extension, that is, the last - * segment of its absolute path, or the empty string if it has no segments. - * - * Here are some examples of absolute paths and the corresponding base names - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - * - *
    Absolute pathBase name
    "/tmp/tst.js""tst.js"
    "C:/Program Files (x86)""Program Files (x86)"
    "/"""
    "C:/"""
    "D:/"""
    "//FileServer/"""
    - */ - string getBaseName() { - result = this.getAbsolutePath().regexpCapture(".*/(([^/]*?)(\\.([^.]*))?)", 1) + class FolderBase extends ContainerBase, @folder { + override string getAbsolutePath() { folders(this, result) } } - /** - * Gets the extension of this container, that is, the suffix of its base name - * after the last dot character, if any. - * - * In particular, - * - * - if the name does not include a dot, there is no extension, so this - * predicate has no result; - * - if the name ends in a dot, the extension is the empty string; - * - if the name contains multiple dots, the extension follows the last dot. - * - * Here are some examples of absolute paths and the corresponding extensions - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathExtension
    "/tmp/tst.js""js"
    "/tmp/.classpath""classpath"
    "/bin/bash"not defined
    "/tmp/tst2."""
    "/tmp/x.tar.gz""gz"
    - */ - string getExtension() { - result = this.getAbsolutePath().regexpCapture(".*/(([^/]*?)(\\.([^.]*))?)", 4) + class FileBase extends ContainerBase, @file { + override string getAbsolutePath() { files(this, result) } } - /** - * Gets the stem of this container, that is, the prefix of its base name up to - * (but not including) the last dot character if there is one, or the entire - * base name if there is not. - * - * Here are some examples of absolute paths and the corresponding stems - * (surrounded with quotes to avoid ambiguity): - * - * - * - * - * - * - * - * - *
    Absolute pathStem
    "/tmp/tst.js""tst"
    "/tmp/.classpath"""
    "/bin/bash""bash"
    "/tmp/tst2.""tst2"
    "/tmp/x.tar.gz""x.tar"
    - */ - string getStem() { - result = this.getAbsolutePath().regexpCapture(".*/(([^/]*?)(\\.([^.]*))?)", 2) - } - - /** Gets the parent container of this file or folder, if any. */ - Container getParentContainer() { containerparent(result, this) } - - /** Gets a file or sub-folder in this container. */ - Container getAChildContainer() { this = result.getParentContainer() } - - /** Gets a file in this container. */ - File getAFile() { result = this.getAChildContainer() } - - /** Gets the file in this container that has the given `baseName`, if any. */ - File getFile(string baseName) { - result = this.getAFile() and - result.getBaseName() = baseName - } - - /** Gets a sub-folder in this container. */ - Folder getAFolder() { result = this.getAChildContainer() } - - /** Gets the sub-folder in this container that has the given `baseName`, if any. */ - Folder getFolder(string baseName) { - result = this.getAFolder() and - result.getBaseName() = baseName - } - - /** - * Gets a textual representation of the path of this container. - * - * This is the absolute path of the container. - */ - string toString() { result = this.getAbsolutePath() } + predicate hasSourceLocationPrefix = sourceLocationPrefix/1; } -/** A folder. */ -class Folder extends Container, @folder { - override string getAbsolutePath() { folders(this, result) } +private module Impl = Make; +class Container = Impl::Container; + +/** A folder. */ +class Folder extends Container, Impl::Folder { /** Gets the file or subfolder in this folder that has the given `name`, if any. */ Container getChildContainer(string name) { result = this.getAChildContainer() and @@ -206,13 +74,10 @@ class Folder extends Container, @folder { /** Gets a subfolder contained in this folder. */ Folder getASubFolder() { result = this.getAChildContainer() } - - /** Gets the URL of this folder. */ - override string getURL() { result = "folder://" + this.getAbsolutePath() } } /** A file. */ -class File extends Container, @file { +class File extends Container, Impl::File { /** * Gets the location of this file. * @@ -220,8 +85,6 @@ class File extends Container, @file { */ Location getLocation() { hasLocation(this, result) } - override string getAbsolutePath() { files(this, result) } - /** Gets the number of lines in this file. */ int getNumberOfLines() { result = sum(int loc | numlines(this, loc, _, _) | loc) } @@ -234,9 +97,6 @@ class File extends Container, @file { /** Gets a toplevel piece of JavaScript code in this file. */ TopLevel getATopLevel() { result.getFile() = this } - /** Gets the URL of this file. */ - override string getURL() { result = "file://" + this.getAbsolutePath() + ":0:0:0:0" } - /** * Holds if line number `lineno` of this file is indented to depth `d` * using character `c`. From 68d05eb342be3c62e48d2844bd571d6526491b9d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 26 Sep 2023 13:50:35 +0200 Subject: [PATCH 717/788] Ruby: Minor simplification. --- ruby/ql/lib/codeql/files/FileSystem.qll | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ruby/ql/lib/codeql/files/FileSystem.qll b/ruby/ql/lib/codeql/files/FileSystem.qll index f6a5f959287..528dde52fd9 100644 --- a/ruby/ql/lib/codeql/files/FileSystem.qll +++ b/ruby/ql/lib/codeql/files/FileSystem.qll @@ -27,8 +27,7 @@ private module Impl = Make; class Container = Impl::Container; -/** A folder. */ -class Folder extends Container, Impl::Folder { } +class Folder = Impl::Folder; /** A file. */ class File extends Container, Impl::File { From 20cbab9e8f2c8ed495653a484fe87a1ec26eceb8 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 26 Sep 2023 13:51:12 +0200 Subject: [PATCH 718/788] C#: Minor simplification. --- csharp/ql/lib/semmle/code/csharp/File.qll | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/File.qll b/csharp/ql/lib/semmle/code/csharp/File.qll index 79406aec2f6..320d6e4c5d9 100644 --- a/csharp/ql/lib/semmle/code/csharp/File.qll +++ b/csharp/ql/lib/semmle/code/csharp/File.qll @@ -29,8 +29,7 @@ private module Impl = Make; class Container = Impl::Container; -/** A folder. */ -class Folder extends Container, Impl::Folder { } +class Folder = Impl::Folder; bindingset[flag] private predicate fileHasExtractionFlag(File f, int flag) { From cfd08f23a51dfb1bebb2f0a7a1557a7e9fbf20a9 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 26 Sep 2023 14:02:38 +0200 Subject: [PATCH 719/788] FileSystem: Fix qldoc. --- shared/util/codeql/util/FileSystem.qll | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/shared/util/codeql/util/FileSystem.qll b/shared/util/codeql/util/FileSystem.qll index f685cf9c3e3..d4eae6f33e4 100644 --- a/shared/util/codeql/util/FileSystem.qll +++ b/shared/util/codeql/util/FileSystem.qll @@ -11,11 +11,15 @@ signature module InputSig { /** * Gets the absolute path of this container. * - * Typically `containerparent(result, this)`. + * Typically `folders(this, result) or files(this, result)`. */ string getAbsolutePath(); - /** Gets the parent container of this container, if any. */ + /** + * Gets the parent container of this container, if any. + * + * Typically `containerparent(result, this)`. + */ ContainerBase getParentContainer(); } From 80f00bcb0bee0a00afb6e2a7f3f2a729821558af Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 26 Sep 2023 14:03:03 +0200 Subject: [PATCH 720/788] FileSystem: Improve regex by only matching once instead of 3x. --- shared/util/codeql/util/FileSystem.qll | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/shared/util/codeql/util/FileSystem.qll b/shared/util/codeql/util/FileSystem.qll index d4eae6f33e4..e742ad87c40 100644 --- a/shared/util/codeql/util/FileSystem.qll +++ b/shared/util/codeql/util/FileSystem.qll @@ -84,6 +84,17 @@ module Make { */ string getAbsolutePath() { result = super.getAbsolutePath() } + /** + * Holds if either, + * - `part` is the base name of this container and `i = 1`, or + * - `part` is the stem of this container and `i = 2`, or + * - `part` is the extension of this container and `i = 3`. + */ + cached + private predicate splitAbsolutePath(string part, int i) { + part = this.getAbsolutePath().regexpCapture(".*/(([^/]*?)(?:\\.([^.]*))?)", i) + } + /** * Gets the base name of this container including extension, that is, the last * segment of its absolute path, or the empty string if it has no segments. @@ -101,9 +112,7 @@ module Make { * "//FileServer/""" * */ - string getBaseName() { - result = this.getAbsolutePath().regexpCapture(".*/(([^/]*?)(?:\\.([^.]*))?)", 1) - } + string getBaseName() { this.splitAbsolutePath(result, 1) } /** * Gets the extension of this container, that is, the suffix of its base name @@ -128,9 +137,7 @@ module Make { * "/tmp/x.tar.gz""gz" * */ - string getExtension() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(\\.([^.]*))?", 3) - } + string getExtension() { this.splitAbsolutePath(result, 3) } /** Gets the file in this container that has the given `baseName`, if any. */ File getFile(string baseName) { @@ -183,9 +190,7 @@ module Make { * "/tmp/x.tar.gz""x.tar" * */ - string getStem() { - result = this.getAbsolutePath().regexpCapture(".*/([^/]*?)(?:\\.([^.]*))?", 1) - } + string getStem() { this.splitAbsolutePath(result, 2) } /** * Gets a URL representing the location of this container. From 8e9ca7bc26f6df3f7086bb7fab8517503ccad0e0 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 28 Sep 2023 08:31:45 +0100 Subject: [PATCH 721/788] Swift: Improve RegexEvals.ql and summary regex reporting. --- swift/ql/src/queries/Summary/RegexEvals.ql | 11 ++++++++--- swift/ql/src/queries/Summary/SummaryStats.ql | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/swift/ql/src/queries/Summary/RegexEvals.ql b/swift/ql/src/queries/Summary/RegexEvals.ql index 47c974ebefb..5ce27689458 100644 --- a/swift/ql/src/queries/Summary/RegexEvals.ql +++ b/swift/ql/src/queries/Summary/RegexEvals.ql @@ -10,6 +10,11 @@ import swift import codeql.swift.regex.Regex -from RegexEval e -select e, - "Regular expression evaluation with " + count(e.getARegex()).toString() + " associated regex(s)." +from RegexEval e, string message, Expr regex +where + message = "Regular expression evaluation with source $@." and regex = e.getARegex() + or + message = "Regular expression evaluation with no identified source." and + not exists(e.getARegex()) and + regex = e +select e, message, regex, regex.toString() diff --git a/swift/ql/src/queries/Summary/SummaryStats.ql b/swift/ql/src/queries/Summary/SummaryStats.ql index aab8cf6610d..3f72785afbc 100644 --- a/swift/ql/src/queries/Summary/SummaryStats.ql +++ b/swift/ql/src/queries/Summary/SummaryStats.ql @@ -30,8 +30,8 @@ predicate statistic(string what, string value) { or what = "Regular expression evals" and value = count(RegexEval e).toString() or - what = "Regular expression evals with associated regex" and - value = count(RegexEval e | exists(e.getARegex())).toString() + what = "Regular expressions evaluated" and + value = count(RegexEval e | | e.getARegex()).toString() } from string what, string value From 3f3c662a7dd83522cfe024c80c036a45fcee1eeb Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Thu, 28 Sep 2023 10:51:36 +0200 Subject: [PATCH 722/788] C#: Fix parentheses in model editor queries The MaD format and the Java model editor queries use parentheses around the method parameter types, but `parameterQualifiedTypeNamesToString` returns the parameter types without parentheses. This adds the parentheses to the result of `getParameterTypes` to ensure consistency between the Java and C# queries. --- .../ql/src/utils/modeleditor/ModelEditor.qll | 2 +- .../ApplicationModeEndpoints.expected | 28 +++++++-------- .../FrameworkModeEndpoints.expected | 36 +++++++++---------- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/csharp/ql/src/utils/modeleditor/ModelEditor.qll b/csharp/ql/src/utils/modeleditor/ModelEditor.qll index e7557c9ca87..eca9e4807dd 100644 --- a/csharp/ql/src/utils/modeleditor/ModelEditor.qll +++ b/csharp/ql/src/utils/modeleditor/ModelEditor.qll @@ -40,7 +40,7 @@ class Endpoint extends Callable { * Gets the parameter types of this endpoint. */ bindingset[this] - string getParameterTypes() { result = parameterQualifiedTypeNamesToString(this) } + string getParameterTypes() { result = "(" + parameterQualifiedTypeNamesToString(this) + ")" } private string getDllName() { result = this.getLocation().(Assembly).getName() } diff --git a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected index 2e6b2590341..7722da718a3 100644 --- a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected +++ b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected @@ -1,14 +1,14 @@ -| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:19:9:19:51 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | | true | System.Console | 7.0.0.0 | source | source | -| PublicClass.cs:24:9:24:46 | call to method Write | System | Console | Write | System.Object | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:24:23:24:45 | access to property BackgroundColor | System | Console | get_BackgroundColor | | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:25:9:25:31 | access to property ForegroundColor | System | Console | set_ForegroundColor | System.ConsoleColor | true | System.Console | 7.0.0.0 | neutral | source | -| PublicClass.cs:30:9:30:30 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | -| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | System.Object | true | System.Console | 7.0.0.0 | neutral | source | -| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | System.Object | true | System.Console | 7.0.0.0 | neutral | source | -| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | -| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | System.String | true | System.Console | 7.0.0.0 | neutral | source | +| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:19:9:19:51 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | () | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | () | true | System.Console | 7.0.0.0 | source | source | +| PublicClass.cs:24:9:24:46 | call to method Write | System | Console | Write | (System.Object) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:24:23:24:45 | access to property BackgroundColor | System | Console | get_BackgroundColor | () | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:25:9:25:31 | access to property ForegroundColor | System | Console | set_ForegroundColor | (System.ConsoleColor) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicClass.cs:30:9:30:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | (System.Object) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | (System.Object) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 7.0.0.0 | neutral | source | +| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 7.0.0.0 | neutral | source | diff --git a/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected b/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected index 6a46410d0a9..ca26040aadc 100644 --- a/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected +++ b/csharp/ql/test/utils/modeleditor/FrameworkModeEndpoints.expected @@ -1,18 +1,18 @@ -| PublicClass.cs:7:17:7:21 | stuff | GitHub.CodeQL | PublicClass | stuff | System.String | false | PublicClass.cs | | -| PublicClass.cs:12:24:12:34 | staticStuff | GitHub.CodeQL | PublicClass | staticStuff | System.String | false | PublicClass.cs | | -| PublicClass.cs:17:20:17:33 | protectedStuff | GitHub.CodeQL | PublicClass | protectedStuff | System.String | false | PublicClass.cs | | -| PublicClass.cs:33:45:33:47 | get_PublicProperty | GitHub.CodeQL | PublicClass | get_PublicProperty | | false | PublicClass.cs | | -| PublicClass.cs:33:50:33:52 | set_PublicProperty | GitHub.CodeQL | PublicClass | set_PublicProperty | System.String | false | PublicClass.cs | | -| PublicClass.cs:35:19:35:30 | summaryStuff | GitHub.CodeQL | PublicClass | summaryStuff | System.String | true | PublicClass.cs | summary | -| PublicClass.cs:40:19:40:29 | sourceStuff | GitHub.CodeQL | PublicClass | sourceStuff | | true | PublicClass.cs | source | -| PublicClass.cs:45:17:45:25 | sinkStuff | GitHub.CodeQL | PublicClass | sinkStuff | System.String | true | PublicClass.cs | sink | -| PublicClass.cs:50:17:50:28 | neutralStuff | GitHub.CodeQL | PublicClass | neutralStuff | System.String | true | PublicClass.cs | neutral | -| PublicGenericClass.cs:7:17:7:21 | stuff | GitHub.CodeQL | PublicGenericClass<,> | stuff | T | false | PublicGenericClass.cs | | -| PublicGenericClass.cs:12:17:12:26 | stuff2<> | GitHub.CodeQL | PublicGenericClass<,> | stuff2<> | T2 | false | PublicGenericClass.cs | | -| PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL | PublicGenericInterface<> | stuff | T | false | PublicGenericInterface.cs | | -| PublicGenericInterface.cs:9:10:9:19 | stuff2<> | GitHub.CodeQL | PublicGenericInterface<> | stuff2<> | T2 | false | PublicGenericInterface.cs | | -| PublicGenericInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL | PublicGenericInterface<> | staticStuff | System.String | false | PublicGenericInterface.cs | | -| PublicInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL | PublicInterface | stuff | System.String | false | PublicInterface.cs | | -| PublicInterface.cs:9:29:9:31 | get_PublicProperty | GitHub.CodeQL | PublicInterface | get_PublicProperty | | false | PublicInterface.cs | | -| PublicInterface.cs:9:34:9:36 | set_PublicProperty | GitHub.CodeQL | PublicInterface | set_PublicProperty | System.String | false | PublicInterface.cs | | -| PublicInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL | PublicInterface | staticStuff | System.String | false | PublicInterface.cs | | +| PublicClass.cs:7:17:7:21 | stuff | GitHub.CodeQL | PublicClass | stuff | (System.String) | false | PublicClass.cs | | +| PublicClass.cs:12:24:12:34 | staticStuff | GitHub.CodeQL | PublicClass | staticStuff | (System.String) | false | PublicClass.cs | | +| PublicClass.cs:17:20:17:33 | protectedStuff | GitHub.CodeQL | PublicClass | protectedStuff | (System.String) | false | PublicClass.cs | | +| PublicClass.cs:33:45:33:47 | get_PublicProperty | GitHub.CodeQL | PublicClass | get_PublicProperty | () | false | PublicClass.cs | | +| PublicClass.cs:33:50:33:52 | set_PublicProperty | GitHub.CodeQL | PublicClass | set_PublicProperty | (System.String) | false | PublicClass.cs | | +| PublicClass.cs:35:19:35:30 | summaryStuff | GitHub.CodeQL | PublicClass | summaryStuff | (System.String) | true | PublicClass.cs | summary | +| PublicClass.cs:40:19:40:29 | sourceStuff | GitHub.CodeQL | PublicClass | sourceStuff | () | true | PublicClass.cs | source | +| PublicClass.cs:45:17:45:25 | sinkStuff | GitHub.CodeQL | PublicClass | sinkStuff | (System.String) | true | PublicClass.cs | sink | +| PublicClass.cs:50:17:50:28 | neutralStuff | GitHub.CodeQL | PublicClass | neutralStuff | (System.String) | true | PublicClass.cs | neutral | +| PublicGenericClass.cs:7:17:7:21 | stuff | GitHub.CodeQL | PublicGenericClass<,> | stuff | (T) | false | PublicGenericClass.cs | | +| PublicGenericClass.cs:12:17:12:26 | stuff2<> | GitHub.CodeQL | PublicGenericClass<,> | stuff2<> | (T2) | false | PublicGenericClass.cs | | +| PublicGenericInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL | PublicGenericInterface<> | stuff | (T) | false | PublicGenericInterface.cs | | +| PublicGenericInterface.cs:9:10:9:19 | stuff2<> | GitHub.CodeQL | PublicGenericInterface<> | stuff2<> | (T2) | false | PublicGenericInterface.cs | | +| PublicGenericInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL | PublicGenericInterface<> | staticStuff | (System.String) | false | PublicGenericInterface.cs | | +| PublicInterface.cs:7:10:7:14 | stuff | GitHub.CodeQL | PublicInterface | stuff | (System.String) | false | PublicInterface.cs | | +| PublicInterface.cs:9:29:9:31 | get_PublicProperty | GitHub.CodeQL | PublicInterface | get_PublicProperty | () | false | PublicInterface.cs | | +| PublicInterface.cs:9:34:9:36 | set_PublicProperty | GitHub.CodeQL | PublicInterface | set_PublicProperty | (System.String) | false | PublicInterface.cs | | +| PublicInterface.cs:11:17:11:27 | staticStuff | GitHub.CodeQL | PublicInterface | staticStuff | (System.String) | false | PublicInterface.cs | | From 8156fa9a4df09b00c46981d93a8e66b2054c8a5d Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 28 Sep 2023 11:47:10 +0200 Subject: [PATCH 723/788] Apply naming suggestions from code review Co-authored-by: Rasmus Wriedt Larsen --- python/ql/lib/semmle/python/Concepts.qll | 6 +++--- .../semmle/python/security/dataflow/NoSQLInjectionQuery.qll | 4 ++-- .../Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/python/ql/lib/semmle/python/Concepts.qll b/python/ql/lib/semmle/python/Concepts.qll index 5966000583c..f3dcddf3bfd 100644 --- a/python/ql/lib/semmle/python/Concepts.qll +++ b/python/ql/lib/semmle/python/Concepts.qll @@ -378,13 +378,13 @@ module SqlExecution { } } -/** Provides a class for modeling NoSql execution APIs. */ +/** Provides a class for modeling NoSQL execution APIs. */ module NoSqlExecution { /** * A data-flow node that executes NoSQL queries. * * Extend this class to model new APIs. If you want to refine existing API models, - * extend `NoSQLQuery` instead. + * extend `NoSqlExecution` instead. */ abstract class Range extends DataFlow::Node { /** Gets the argument that specifies the NoSql query to be executed. */ @@ -402,7 +402,7 @@ module NoSqlExecution { * A data-flow node that executes NoSQL queries. * * Extend this class to refine existing API models. If you want to model new APIs, - * extend `NoSQLQuery::Range` instead. + * extend `NoSqlExecution::Range` instead. */ class NoSqlExecution extends DataFlow::Node instanceof NoSqlExecution::Range { /** Gets the argument that specifies the NoSql query to be executed. */ diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll index 8c6f06949d6..19e39586037 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll @@ -11,7 +11,7 @@ private import NoSQLInjectionCustomizations::NoSqlInjection as C /** * A taint-tracking configuration for detecting NoSQL injection vulnerabilities. */ -module NoSQLInjectionConfig implements DataFlow::StateConfigSig { +module NoSqlInjectionConfig implements DataFlow::StateConfigSig { class FlowState = C::FlowState; predicate isSource(DataFlow::Node source, FlowState state) { @@ -57,4 +57,4 @@ module NoSQLInjectionConfig implements DataFlow::StateConfigSig { } } -module Flow = TaintTracking::GlobalWithState; +module NoSqlInjectionFlow = TaintTracking::GlobalWithState; diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql index e71c10b3d56..79c28c399f3 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python import experimental.dataflow.TestUtil.DataflowQueryTest import semmle.python.security.dataflow.NoSQLInjectionQuery -import FromTaintTrackingStateConfig +import FromTaintTrackingStateConfig From 37a4f356509446ebf410eea1f93204ee7c595b43 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 28 Sep 2023 11:49:42 +0200 Subject: [PATCH 724/788] Python: further rename --- .../semmle/python/security/dataflow/NoSQLInjectionQuery.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll index 19e39586037..12bc207c662 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll @@ -22,8 +22,8 @@ module NoSqlInjectionConfig implements DataFlow::StateConfigSig { state instanceof C::DictInput } - predicate isSink(DataFlow::Node source, FlowState state) { - source instanceof C::StringSink and + predicate isSink(DataFlow::Node sink, FlowState state) { + sink instanceof C::StringSink and ( state instanceof C::StringInput or @@ -31,7 +31,7 @@ module NoSqlInjectionConfig implements DataFlow::StateConfigSig { state instanceof C::DictInput ) or - source instanceof C::DictSink and + sink instanceof C::DictSink and state instanceof C::DictInput } From 3fb579eaffa56233f1ff03313dde1bbc2f81cba4 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 28 Sep 2023 12:14:12 +0200 Subject: [PATCH 725/788] Python: add test for type tracking --- .../CWE-943-NoSqlInjection/pymongo_test.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/pymongo_test.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/pymongo_test.py index 3dd667a3f2d..69377260715 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/pymongo_test.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/pymongo_test.py @@ -43,5 +43,24 @@ def bad3(): cursor = collection.find_one({"$where": f"this._id == '${event_id}'"}) #$ result=BAD +@app.route("/bad4") +def bad4(): + client = MongoClient("localhost", 27017, maxPoolSize=50) + db = client.get_database(name="localhost") + collection = db.get_collection("collection") + + decoded = json.loads(request.args['event_id']) + + search = { + "body": decoded, + "args": [ "$event_id" ], + "lang": "js" + } + collection.find_one({'$expr': {'$function': search}}) # $ result=BAD + + collection.find_one({'$expr': {'$function': decoded}}) # $ result=BAD + collection.find_one({'$expr': decoded}) # $ result=BAD + collection.find_one(decoded) # $ result=BAD + if __name__ == "__main__": app.run(debug=True) From d90630aa66e8fffcaee61366e4adbf2de34a96d2 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 28 Sep 2023 12:34:10 +0200 Subject: [PATCH 726/788] Python: fix query file --- python/ql/src/Security/CWE-943/NoSQLInjection.ql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/ql/src/Security/CWE-943/NoSQLInjection.ql b/python/ql/src/Security/CWE-943/NoSQLInjection.ql index fd588f009f0..0b9ac2139e7 100644 --- a/python/ql/src/Security/CWE-943/NoSQLInjection.ql +++ b/python/ql/src/Security/CWE-943/NoSQLInjection.ql @@ -4,17 +4,17 @@ * malicious NoSQL code by the user. * @kind path-problem * @problem.severity error + * @security-severity 8.8 * @id py/nosql-injection * @tags security - * experimental * external/cwe/cwe-943 */ import python import semmle.python.security.dataflow.NoSQLInjectionQuery -import Flow::PathGraph +import NoSqlInjectionFlow::PathGraph -from Flow::PathNode source, Flow::PathNode sink -where Flow::flowPath(source, sink) +from NoSqlInjectionFlow::PathNode source, NoSqlInjectionFlow::PathNode sink +where NoSqlInjectionFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This NoSQL query contains an unsanitized $@.", source, "user-provided value" From c2b63830f1688fe352ab6764b7c7d3375f842326 Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 28 Sep 2023 12:40:37 +0200 Subject: [PATCH 727/788] Apply suggestions from code review Claim conversions do not execute inputs in order to remove interaction with `py/unsafe-deserialization`. Co-authored-by: Rasmus Wriedt Larsen --- python/ql/lib/semmle/python/frameworks/NoSQL.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/NoSQL.qll b/python/ql/lib/semmle/python/frameworks/NoSQL.qll index 9365dfa45e2..55c60138ff7 100644 --- a/python/ql/lib/semmle/python/frameworks/NoSQL.qll +++ b/python/ql/lib/semmle/python/frameworks/NoSQL.qll @@ -170,7 +170,7 @@ private module NoSql { override string getFormat() { result = "NoSQL" } - override predicate mayExecuteInput() { any() } + override predicate mayExecuteInput() { none() } } /** @@ -200,7 +200,7 @@ private module NoSql { override string getFormat() { result = "NoSQL" } - override predicate mayExecuteInput() { any() } + override predicate mayExecuteInput() { none() } } /** From 9682c8218afbff12acb757d6c23cbfa032879cb4 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 28 Sep 2023 12:50:36 +0200 Subject: [PATCH 728/788] Python: rename file --- python/ql/lib/semmle/python/Frameworks.qll | 2 +- .../ql/lib/semmle/python/frameworks/{NoSQL.qll => PyMongo.qll} | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) rename python/ql/lib/semmle/python/frameworks/{NoSQL.qll => PyMongo.qll} (98%) diff --git a/python/ql/lib/semmle/python/Frameworks.qll b/python/ql/lib/semmle/python/Frameworks.qll index 171918349c6..b9452e5d4dd 100644 --- a/python/ql/lib/semmle/python/Frameworks.qll +++ b/python/ql/lib/semmle/python/Frameworks.qll @@ -36,13 +36,13 @@ private import semmle.python.frameworks.MarkupSafe private import semmle.python.frameworks.Multidict private import semmle.python.frameworks.Mysql private import semmle.python.frameworks.MySQLdb -private import semmle.python.frameworks.NoSQL private import semmle.python.frameworks.Oracledb private import semmle.python.frameworks.Peewee private import semmle.python.frameworks.Phoenixdb private import semmle.python.frameworks.Psycopg2 private import semmle.python.frameworks.Pycurl private import semmle.python.frameworks.Pydantic +private import semmle.python.frameworks.PyMongo private import semmle.python.frameworks.Pymssql private import semmle.python.frameworks.PyMySQL private import semmle.python.frameworks.Pyodbc diff --git a/python/ql/lib/semmle/python/frameworks/NoSQL.qll b/python/ql/lib/semmle/python/frameworks/PyMongo.qll similarity index 98% rename from python/ql/lib/semmle/python/frameworks/NoSQL.qll rename to python/ql/lib/semmle/python/frameworks/PyMongo.qll index 55c60138ff7..360389ac462 100644 --- a/python/ql/lib/semmle/python/frameworks/NoSQL.qll +++ b/python/ql/lib/semmle/python/frameworks/PyMongo.qll @@ -1,6 +1,5 @@ /** - * Provides classes modeling security-relevant aspects of the standard libraries. - * Note: some modeling is done internally in the dataflow/taint tracking implementation. + * Provides classes modeling security-relevant aspects of the PyMongo bindings. */ private import python From 2a739b3b7a04bdbd40331b2fd5e4c2c2f043819d Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 28 Sep 2023 12:51:11 +0200 Subject: [PATCH 729/788] Python: rename module --- python/ql/lib/semmle/python/frameworks/PyMongo.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/frameworks/PyMongo.qll b/python/ql/lib/semmle/python/frameworks/PyMongo.qll index 360389ac462..c3f38169d01 100644 --- a/python/ql/lib/semmle/python/frameworks/PyMongo.qll +++ b/python/ql/lib/semmle/python/frameworks/PyMongo.qll @@ -9,7 +9,7 @@ private import semmle.python.dataflow.new.RemoteFlowSources private import semmle.python.Concepts private import semmle.python.ApiGraphs -private module NoSql { +private module PyMongo { // API Nodes returning `Mongo` instances. /** Gets a reference to `pymongo.MongoClient` */ private API::Node pyMongo() { From eb1be08bce7ce353a9455359fcf54e6d58724898 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 28 Sep 2023 12:52:56 +0200 Subject: [PATCH 730/788] Python: split modelling --- .../ql/lib/semmle/python/frameworks/BSon.qll | 29 +++++++++++++++++++ .../lib/semmle/python/frameworks/PyMongo.qll | 19 ------------ 2 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 python/ql/lib/semmle/python/frameworks/BSon.qll diff --git a/python/ql/lib/semmle/python/frameworks/BSon.qll b/python/ql/lib/semmle/python/frameworks/BSon.qll new file mode 100644 index 00000000000..aa8b1c58288 --- /dev/null +++ b/python/ql/lib/semmle/python/frameworks/BSon.qll @@ -0,0 +1,29 @@ +/** + * Provides classes modeling security-relevant aspects of the PyMongo bindings. + */ + +private import python +private import semmle.python.dataflow.new.DataFlow +private import semmle.python.Concepts +private import semmle.python.ApiGraphs + +module BSon { + /** + * ObjectId returns a string representing an id. + * If at any time ObjectId can't parse it's input (like when a tainted dict in passed in), + * then ObjectId will throw an error preventing the query from running. + */ + private class BsonObjectIdCall extends DataFlow::CallCfgNode, NoSqlSanitizer::Range { + BsonObjectIdCall() { + exists(API::Node mod | + mod = API::moduleImport("bson") + or + mod = API::moduleImport("bson").getMember(["objectid", "json_util"]) + | + this = mod.getMember("ObjectId").getACall() + ) + } + + override DataFlow::Node getAnInput() { result = this.getArg(0) } + } +} diff --git a/python/ql/lib/semmle/python/frameworks/PyMongo.qll b/python/ql/lib/semmle/python/frameworks/PyMongo.qll index c3f38169d01..2c3d6195a5f 100644 --- a/python/ql/lib/semmle/python/frameworks/PyMongo.qll +++ b/python/ql/lib/semmle/python/frameworks/PyMongo.qll @@ -274,25 +274,6 @@ private module PyMongo { override DataFlow::Node getAnInput() { result = this.getArg(0) } } - /** - * ObjectId returns a string representing an id. - * If at any time ObjectId can't parse it's input (like when a tainted dict in passed in), - * then ObjectId will throw an error preventing the query from running. - */ - private class BsonObjectIdCall extends DataFlow::CallCfgNode, NoSqlSanitizer::Range { - BsonObjectIdCall() { - exists(API::Node mod | - mod = API::moduleImport("bson") - or - mod = API::moduleImport("bson").getMember(["objectid", "json_util"]) - | - this = mod.getMember("ObjectId").getACall() - ) - } - - override DataFlow::Node getAnInput() { result = this.getArg(0) } - } - /** * An equality operator can protect against dictionary interpretation. * For instance, in `{'password': {"$eq": password} }`, if a dictionary is injected into From 261ae4ea4d631de4a60b84d737feccdac2ba8115 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Thu, 28 Sep 2023 12:08:25 +0100 Subject: [PATCH 731/788] Kotlin: Handle IrExternalPackageFragment properly for more external entities --- .../src/main/kotlin/KotlinUsesExtractor.kt | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index 6c7835b4f4b..1f11f418c3d 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -298,9 +298,23 @@ open class KotlinUsesExtractor( } } + private fun extractParentExternalClassLater(d: IrDeclaration) { + val p = d.parent + when (p) { + is IrClass -> extractExternalClassLater(p) + is IrExternalPackageFragment -> { + // The parent is a (multi)file class. We don't need + // extract it separately. + } + else -> { + logger.warn("Unexpected parent type ${p.javaClass} for external file class member") + } + } + } + private fun extractPropertyLaterIfExternalFileMember(p: IrProperty) { if (isExternalFileClassMember(p)) { - extractExternalClassLater(p.parentAsClass) + extractParentExternalClassLater(p) val signature = getTrapFileSignature(p) dependencyCollector?.addDependency(p, signature) externalClassExtractor.extractLater(p, signature) @@ -309,7 +323,7 @@ open class KotlinUsesExtractor( private fun extractFieldLaterIfExternalFileMember(f: IrField) { if (isExternalFileClassMember(f)) { - extractExternalClassLater(f.parentAsClass) + extractParentExternalClassLater(f) val signature = getTrapFileSignature(f) dependencyCollector?.addDependency(f, signature) externalClassExtractor.extractLater(f, signature) @@ -318,17 +332,7 @@ open class KotlinUsesExtractor( private fun extractFunctionLaterIfExternalFileMember(f: IrFunction) { if (isExternalFileClassMember(f)) { - val p = f.parent - when (p) { - is IrClass -> extractExternalClassLater(p) - is IrExternalPackageFragment -> { - // The parent is a (multi)file class. We don't need - // extract it separately. - } - else -> { - logger.warn("Unexpected parent type ${p.javaClass} for external file class member") - } - } + extractParentExternalClassLater(f) (f as? IrSimpleFunction)?.correspondingPropertySymbol?.let { extractPropertyLaterIfExternalFileMember(it.owner) // No need to extract the function specifically, as the property's From 2a7b59328583f98e0aeaca885d8e6b762cf97e12 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 28 Sep 2023 13:35:29 +0200 Subject: [PATCH 732/788] Python: Fix QL alerts --- .../ql/lib/semmle/python/frameworks/BSon.qll | 2 +- .../lib/semmle/python/frameworks/PyMongo.qll | 44 ++++++++++--------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/BSon.qll b/python/ql/lib/semmle/python/frameworks/BSon.qll index aa8b1c58288..05bfb108cc7 100644 --- a/python/ql/lib/semmle/python/frameworks/BSon.qll +++ b/python/ql/lib/semmle/python/frameworks/BSon.qll @@ -7,7 +7,7 @@ private import semmle.python.dataflow.new.DataFlow private import semmle.python.Concepts private import semmle.python.ApiGraphs -module BSon { +private module BSon { /** * ObjectId returns a string representing an id. * If at any time ObjectId can't parse it's input (like when a tainted dict in passed in), diff --git a/python/ql/lib/semmle/python/frameworks/PyMongo.qll b/python/ql/lib/semmle/python/frameworks/PyMongo.qll index 2c3d6195a5f..bdc120c3b59 100644 --- a/python/ql/lib/semmle/python/frameworks/PyMongo.qll +++ b/python/ql/lib/semmle/python/frameworks/PyMongo.qll @@ -144,7 +144,7 @@ private module PyMongo { private class MongoMapReduceQuery extends API::CallNode, NoSqlExecution::Range { MongoMapReduceQuery() { this = mongoCollection().getMember("map_reduce").getACall() } - override DataFlow::Node getQuery() { result in [this.getArgByName("query")] } + override DataFlow::Node getQuery() { result = this.getArgByName("query") } override predicate interpretsDict() { any() } @@ -178,19 +178,20 @@ private module PyMongo { * See https://www.mongodb.com/docs/manual/reference/operator/aggregation/function/#mongodb-expression-exp.-function */ private class FunctionQueryOperator extends DataFlow::Node, Decoding::Range { - API::Node dictionary; DataFlow::Node query; FunctionQueryOperator() { - dictionary = - mongoCollection() - .getMember(mongoCollectionMethodName()) - .getACall() - .getParameter(0) - .getASubscript*() - .getSubscript("$function") and - query = dictionary.getSubscript("body").asSink() and - this = dictionary.asSink() + exists(API::Node dictionary | + dictionary = + mongoCollection() + .getMember(mongoCollectionMethodName()) + .getACall() + .getParameter(0) + .getASubscript*() + .getSubscript("$function") and + query = dictionary.getSubscript("body").asSink() and + this = dictionary.asSink() + ) } override DataFlow::Node getAnInput() { result = query } @@ -208,19 +209,20 @@ private module PyMongo { * See https://www.mongodb.com/docs/manual/reference/operator/aggregation/accumulator/#mongodb-group-grp.-accumulator */ private class AccumulatorQueryOperator extends DataFlow::Node, Decoding::Range { - API::Node dictionary; DataFlow::Node query; AccumulatorQueryOperator() { - dictionary = - mongoCollection() - .getMember("aggregate") - .getACall() - .getParameter(0) - .getASubscript*() - .getSubscript("$accumulator") and - query = dictionary.getSubscript(["init", "accumulate", "merge", "finalize"]).asSink() and - this = dictionary.asSink() + exists(API::Node dictionary | + dictionary = + mongoCollection() + .getMember("aggregate") + .getACall() + .getParameter(0) + .getASubscript*() + .getSubscript("$accumulator") and + query = dictionary.getSubscript(["init", "accumulate", "merge", "finalize"]).asSink() and + this = dictionary.asSink() + ) } override DataFlow::Node getAnInput() { result = query } From a8e0023f390a53d6f17b55ab2e29d6f31670f113 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 28 Sep 2023 13:42:33 +0200 Subject: [PATCH 733/788] Python: forgot to list framework --- python/ql/lib/semmle/python/Frameworks.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/python/ql/lib/semmle/python/Frameworks.qll b/python/ql/lib/semmle/python/Frameworks.qll index b9452e5d4dd..ff0650fcda0 100644 --- a/python/ql/lib/semmle/python/Frameworks.qll +++ b/python/ql/lib/semmle/python/Frameworks.qll @@ -10,6 +10,7 @@ private import semmle.python.frameworks.Aiomysql private import semmle.python.frameworks.Aiosqlite private import semmle.python.frameworks.Aiopg private import semmle.python.frameworks.Asyncpg +private import semmle.python.frameworks.BSon private import semmle.python.frameworks.CassandraDriver private import semmle.python.frameworks.ClickhouseDriver private import semmle.python.frameworks.Cryptodome From 922a4e8ddfe29c92f3cc7642fe96282a6c3eb500 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 28 Sep 2023 14:15:56 +0200 Subject: [PATCH 734/788] Java: Add failing test --- .../library-tests/guards12/PrintAst.expected | 21 +++++++++++++++++-- java/ql/test/library-tests/guards12/Test.java | 7 +++++++ .../library-tests/guards12/guard.expected | 1 + 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/java/ql/test/library-tests/guards12/PrintAst.expected b/java/ql/test/library-tests/guards12/PrintAst.expected index 1df3423239b..a8a96261ec0 100644 --- a/java/ql/test/library-tests/guards12/PrintAst.expected +++ b/java/ql/test/library-tests/guards12/PrintAst.expected @@ -19,5 +19,22 @@ Test.java: # 5| 1: [ConstCase] case ... # 5| -1: [IntegerLiteral] 2 # 5| 0: [StringLiteral] "c" -# 6| 2: [DefaultCase] default -# 6| -1: [IntegerLiteral] 3 +# 6| 2: [ConstCase] case ... +# 6| -1: [IntegerLiteral] 2 +# 6| 0: [StringLiteral] "d" +# 7| 3: [DefaultCase] default +# 7| -1: [IntegerLiteral] 3 +# 9| 1: [SwitchStmt] switch (...) +# 9| -1: [VarAccess] s +# 10| 0: [ConstCase] case ... +# 10| -1: [BlockStmt] { ... } +# 10| 0: [StringLiteral] "a" +# 10| 1: [StringLiteral] "b" +# 11| 1: [ConstCase] case ... +# 11| -1: [BlockStmt] { ... } +# 11| 0: [StringLiteral] "c" +# 12| 2: [ConstCase] case ... +# 12| -1: [BlockStmt] { ... } +# 12| 0: [StringLiteral] "d" +# 13| 3: [DefaultCase] default +# 13| -1: [BlockStmt] { ... } diff --git a/java/ql/test/library-tests/guards12/Test.java b/java/ql/test/library-tests/guards12/Test.java index 03ccc92d245..3ce8f6f4828 100644 --- a/java/ql/test/library-tests/guards12/Test.java +++ b/java/ql/test/library-tests/guards12/Test.java @@ -3,7 +3,14 @@ class Test { int x = switch(s) { case "a", "b" -> 1; case "c" -> 2; + case "d" -> 2; default -> 3; }; + switch (s) { + case "a", "b" -> { } + case "c" -> { } + case "d" -> { } + default -> { } + } } } diff --git a/java/ql/test/library-tests/guards12/guard.expected b/java/ql/test/library-tests/guards12/guard.expected index 4befc404376..5d0c35af1c6 100644 --- a/java/ql/test/library-tests/guards12/guard.expected +++ b/java/ql/test/library-tests/guards12/guard.expected @@ -1 +1,2 @@ | Test.java:5:7:5:17 | case ... | Test.java:3:20:3:20 | s | Test.java:5:12:5:14 | "c" | true | true | Test.java:5:7:5:17 | case ... | +| Test.java:6:7:6:17 | case ... | Test.java:3:20:3:20 | s | Test.java:6:12:6:14 | "d" | true | true | Test.java:6:7:6:17 | case ... | From 917a15647eaad2f0e2c59e41e2bc3b3f72e52834 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 28 Sep 2023 14:19:36 +0200 Subject: [PATCH 735/788] Java: Fix CFG for rule statements. --- java/ql/lib/semmle/code/java/ControlFlowGraph.qll | 8 +++++++- java/ql/test/library-tests/guards12/guard.expected | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index 1ca3732ee93..6b3795df2b0 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -871,7 +871,13 @@ private module ControlFlowGraphImpl { ) or // the last node in a case rule is the last node in the right-hand side - last(n.(SwitchCase).getRuleStatement(), last, completion) + // if the rhs is a statement we wrap the completion as a break + exists(Completion caseCompletion | + last(n.(SwitchCase).getRuleStatement(), last, caseCompletion) and + if caseCompletion instanceof NormalOrBooleanCompletion + then completion = anonymousBreakCompletion() + else completion = caseCompletion + ) or // ...and if the rhs is an expression we wrap the completion as a yield exists(Completion caseCompletion | diff --git a/java/ql/test/library-tests/guards12/guard.expected b/java/ql/test/library-tests/guards12/guard.expected index 5d0c35af1c6..c0ee0fd5f3e 100644 --- a/java/ql/test/library-tests/guards12/guard.expected +++ b/java/ql/test/library-tests/guards12/guard.expected @@ -1,2 +1,6 @@ | Test.java:5:7:5:17 | case ... | Test.java:3:20:3:20 | s | Test.java:5:12:5:14 | "c" | true | true | Test.java:5:7:5:17 | case ... | | Test.java:6:7:6:17 | case ... | Test.java:3:20:3:20 | s | Test.java:6:12:6:14 | "d" | true | true | Test.java:6:7:6:17 | case ... | +| Test.java:11:7:11:17 | case ... | Test.java:9:13:9:13 | s | Test.java:11:12:11:14 | "c" | true | false | Test.java:13:7:13:16 | default | +| Test.java:11:7:11:17 | case ... | Test.java:9:13:9:13 | s | Test.java:11:12:11:14 | "c" | true | true | Test.java:11:7:11:17 | case ... | +| Test.java:12:7:12:17 | case ... | Test.java:9:13:9:13 | s | Test.java:12:12:12:14 | "d" | true | false | Test.java:13:7:13:16 | default | +| Test.java:12:7:12:17 | case ... | Test.java:9:13:9:13 | s | Test.java:12:12:12:14 | "d" | true | true | Test.java:12:7:12:17 | case ... | From d5b64c5ff2abe8565c14f4dd4939ab0d99a81b04 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 28 Sep 2023 14:20:30 +0200 Subject: [PATCH 736/788] Python: update test expectations --- .../NoSqlInjection.expected | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected index 0eae28cecc1..448196bff3a 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected @@ -86,6 +86,7 @@ edges | pymongo_test.py:1:26:1:32 | GSSA Variable request | pymongo_test.py:12:21:12:27 | ControlFlowNode for request | | pymongo_test.py:1:26:1:32 | GSSA Variable request | pymongo_test.py:29:27:29:33 | ControlFlowNode for request | | pymongo_test.py:1:26:1:32 | GSSA Variable request | pymongo_test.py:39:27:39:33 | ControlFlowNode for request | +| pymongo_test.py:1:26:1:32 | GSSA Variable request | pymongo_test.py:52:26:52:32 | ControlFlowNode for request | | pymongo_test.py:12:5:12:17 | SSA variable unsafe_search | pymongo_test.py:13:30:13:42 | ControlFlowNode for unsafe_search | | pymongo_test.py:12:21:12:27 | ControlFlowNode for request | pymongo_test.py:12:5:12:17 | SSA variable unsafe_search | | pymongo_test.py:13:5:13:15 | SSA variable json_search | pymongo_test.py:15:42:15:62 | ControlFlowNode for Dict | @@ -101,6 +102,17 @@ edges | pymongo_test.py:39:27:39:33 | ControlFlowNode for request | pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | | pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | pymongo_test.py:39:16:39:51 | ControlFlowNode for Attribute() | | pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | +| pymongo_test.py:52:5:52:11 | SSA variable decoded | pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | +| pymongo_test.py:52:15:52:50 | ControlFlowNode for Attribute() | pymongo_test.py:52:5:52:11 | SSA variable decoded | +| pymongo_test.py:52:26:52:32 | ControlFlowNode for request | pymongo_test.py:52:26:52:49 | ControlFlowNode for Subscript | +| pymongo_test.py:52:26:52:49 | ControlFlowNode for Subscript | pymongo_test.py:52:15:52:50 | ControlFlowNode for Attribute() | +| pymongo_test.py:54:5:54:10 | SSA variable search | pymongo_test.py:59:49:59:54 | ControlFlowNode for search | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:54:5:54:10 | SSA variable search | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:59:49:59:54 | ControlFlowNode for search | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:61:25:61:57 | ControlFlowNode for Dict | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:62:25:62:42 | ControlFlowNode for Dict | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:63:25:63:31 | ControlFlowNode for decoded | +| pymongo_test.py:59:49:59:54 | ControlFlowNode for search | pymongo_test.py:59:25:59:56 | ControlFlowNode for Dict | nodes | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | PoC/server.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | @@ -209,6 +221,17 @@ nodes | pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | | pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | semmle.label | ControlFlowNode for Fstring | +| pymongo_test.py:52:5:52:11 | SSA variable decoded | semmle.label | SSA variable decoded | +| pymongo_test.py:52:15:52:50 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| pymongo_test.py:52:26:52:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| pymongo_test.py:52:26:52:49 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | +| pymongo_test.py:54:5:54:10 | SSA variable search | semmle.label | SSA variable search | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | semmle.label | ControlFlowNode for decoded | +| pymongo_test.py:59:25:59:56 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| pymongo_test.py:59:49:59:54 | ControlFlowNode for search | semmle.label | ControlFlowNode for search | +| pymongo_test.py:61:25:61:57 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| pymongo_test.py:62:25:62:42 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| pymongo_test.py:63:25:63:31 | ControlFlowNode for decoded | semmle.label | ControlFlowNode for decoded | subpaths #select | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | @@ -228,3 +251,7 @@ subpaths | pymongo_test.py:15:42:15:62 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:15:42:15:62 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| pymongo_test.py:59:25:59:56 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:59:25:59:56 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| pymongo_test.py:61:25:61:57 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:61:25:61:57 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| pymongo_test.py:62:25:62:42 | ControlFlowNode for Dict | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:62:25:62:42 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| pymongo_test.py:63:25:63:31 | ControlFlowNode for decoded | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:63:25:63:31 | ControlFlowNode for decoded | This NoSQL query contains an unsanitized $@. | pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | From 94556078f150aa03deb90076d20dc23faf24ea31 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 28 Sep 2023 14:21:04 +0200 Subject: [PATCH 737/788] Java: Add guards logic for SwitchExpr default cases. --- .../lib/semmle/code/java/controlflow/internal/GuardsLogic.qll | 2 ++ java/ql/test/library-tests/guards12/guard.expected | 2 ++ 2 files changed, 4 insertions(+) diff --git a/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll b/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll index e666143c8d3..bc49f1d3a77 100644 --- a/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll +++ b/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll @@ -57,6 +57,8 @@ predicate implies_v1(Guard g1, boolean b1, Guard g2, boolean b2) { or g1.(DefaultCase).getSwitch().getAConstCase() = g2 and b1 = true and b2 = false or + g1.(DefaultCase).getSwitchExpr().getAConstCase() = g2 and b1 = true and b2 = false + or exists(MethodAccess check, int argIndex | check = g1 | conditionCheckArgument(check, argIndex, _) and g2 = check.getArgument(argIndex) and diff --git a/java/ql/test/library-tests/guards12/guard.expected b/java/ql/test/library-tests/guards12/guard.expected index c0ee0fd5f3e..71d1818f29c 100644 --- a/java/ql/test/library-tests/guards12/guard.expected +++ b/java/ql/test/library-tests/guards12/guard.expected @@ -1,4 +1,6 @@ +| Test.java:5:7:5:17 | case ... | Test.java:3:20:3:20 | s | Test.java:5:12:5:14 | "c" | true | false | Test.java:7:7:7:16 | default | | Test.java:5:7:5:17 | case ... | Test.java:3:20:3:20 | s | Test.java:5:12:5:14 | "c" | true | true | Test.java:5:7:5:17 | case ... | +| Test.java:6:7:6:17 | case ... | Test.java:3:20:3:20 | s | Test.java:6:12:6:14 | "d" | true | false | Test.java:7:7:7:16 | default | | Test.java:6:7:6:17 | case ... | Test.java:3:20:3:20 | s | Test.java:6:12:6:14 | "d" | true | true | Test.java:6:7:6:17 | case ... | | Test.java:11:7:11:17 | case ... | Test.java:9:13:9:13 | s | Test.java:11:12:11:14 | "c" | true | false | Test.java:13:7:13:16 | default | | Test.java:11:7:11:17 | case ... | Test.java:9:13:9:13 | s | Test.java:11:12:11:14 | "c" | true | true | Test.java:11:7:11:17 | case ... | From 3043633d9c16a9eb1cf0aab3249d38430a062ad6 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 28 Sep 2023 14:24:49 +0200 Subject: [PATCH 738/788] Python: Some renaming of flow states --- .../dataflow/NoSQLInjectionCustomizations.qll | 49 ++++++++++++------- .../security/dataflow/NoSQLInjectionQuery.qll | 21 ++++---- 2 files changed, 42 insertions(+), 28 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll index 6026ae01f07..f516a61e0af 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll @@ -17,7 +17,7 @@ import semmle.python.Concepts module NoSqlInjection { private newtype TFlowState = TStringInput() or - TDictInput() + TInterpretedStringInput() /** A flow state, tracking the structure of the input. */ abstract class FlowState extends TFlowState { @@ -30,29 +30,33 @@ module NoSqlInjection { override string toString() { result = "StringInput" } } - /** A state where input is a dictionary. */ - class DictInput extends FlowState, TDictInput { - override string toString() { result = "DictInput" } + /** + * A state where input is a string that has been interpreted. + * For instance, it could have been turned into a dictionary, + * or evaluated as javascript code. + */ + class InterpretedStringInput extends FlowState, TInterpretedStringInput { + override string toString() { result = "InterpretedStringInput" } } /** A source allowing string inputs. */ abstract class StringSource extends DataFlow::Node { } - /** A source allowing dictionary inputs. */ - abstract class DictSource extends DataFlow::Node { } + /** A source of interpreted strings. */ + abstract class InterpretedStringSource extends DataFlow::Node { } /** A sink vulnerable to user controlled strings. */ abstract class StringSink extends DataFlow::Node { } - /** A sink vulnerable to user controlled dictionaries. */ - abstract class DictSink extends DataFlow::Node { } + /** A sink vulnerable to user controlled interpreted strings. */ + abstract class InterpretedStringSink extends DataFlow::Node { } - /** A data flow node where a string is converted into a dictionary. */ - abstract class StringToDictConversion extends DataFlow::Node { - /** Gets the argument that specifies the string to be converted. */ + /** A data flow node where a string is being interpreted. */ + abstract class StringInterpretation extends DataFlow::Node { + /** Gets the argument that specifies the string to be interpreted. */ abstract DataFlow::Node getAnInput(); - /** Gets the resulting dictionary. */ + /** Gets the result of interpreting the string. */ abstract DataFlow::Node getOutput(); } @@ -68,14 +72,23 @@ module NoSqlInjection { } } - /** A NoSQL query that is vulnerable to user controlled dictionaries. */ - class NoSqlExecutionAsDictSink extends DictSink { - NoSqlExecutionAsDictSink() { this = any(NoSqlExecution noSqlExecution).getQuery() } + /** A NoSQL query that is vulnerable to user controlled InterpretedStringionaries. */ + class NoSqlExecutionAsInterpretedStringSink extends InterpretedStringSink { + NoSqlExecutionAsInterpretedStringSink() { this = any(NoSqlExecution noSqlExecution).getQuery() } } - /** A JSON decoding converts a string to a dictionary. */ - class JsonDecoding extends Decoding, StringToDictConversion { - JsonDecoding() { this.getFormat() in ["JSON", "NoSQL"] } + /** A JSON decoding converts a string to a Dictionary. */ + class JsonDecoding extends Decoding, StringInterpretation { + JsonDecoding() { this.getFormat() = "JSON" } + + override DataFlow::Node getAnInput() { result = Decoding.super.getAnInput() } + + override DataFlow::Node getOutput() { result = Decoding.super.getOutput() } + } + + /** A NoSQL decoding interprets a string. */ + class NoSqlDecoding extends Decoding, StringInterpretation { + NoSqlDecoding() { this.getFormat() = "NoSQL" } override DataFlow::Node getAnInput() { result = Decoding.super.getAnInput() } diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll index 12bc207c662..2e8e827b55c 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll @@ -18,8 +18,8 @@ module NoSqlInjectionConfig implements DataFlow::StateConfigSig { source instanceof C::StringSource and state instanceof C::StringInput or - source instanceof C::DictSource and - state instanceof C::DictInput + source instanceof C::InterpretedStringSource and + state instanceof C::InterpretedStringInput } predicate isSink(DataFlow::Node sink, FlowState state) { @@ -27,29 +27,30 @@ module NoSqlInjectionConfig implements DataFlow::StateConfigSig { ( state instanceof C::StringInput or - // since dictionaries can encode strings - state instanceof C::DictInput + // since InterpretedStrings can include strings, + // e.g. JSON objects can encode strings. + state instanceof C::InterpretedStringInput ) or - sink instanceof C::DictSink and - state instanceof C::DictInput + sink instanceof C::InterpretedStringSink and + state instanceof C::InterpretedStringInput } predicate isBarrier(DataFlow::Node node, FlowState state) { - // Block `StringInput` paths here, since they change state to `DictInput` - exists(C::StringToDictConversion c | node = c.getOutput()) and + // Block `StringInput` paths here, since they change state to `InterpretedStringInput` + exists(C::StringInterpretation c | node = c.getOutput()) and state instanceof C::StringInput } predicate isAdditionalFlowStep( DataFlow::Node nodeFrom, FlowState stateFrom, DataFlow::Node nodeTo, FlowState stateTo ) { - exists(C::StringToDictConversion c | + exists(C::StringInterpretation c | nodeFrom = c.getAnInput() and nodeTo = c.getOutput() ) and stateFrom instanceof C::StringInput and - stateTo instanceof C::DictInput + stateTo instanceof C::InterpretedStringInput } predicate isBarrier(DataFlow::Node node) { From 15e109879107f7d8fa3f560b63c8fe378cf041cf Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 28 Sep 2023 14:28:24 +0200 Subject: [PATCH 739/788] Java: Add change note. --- .../ql/lib/change-notes/2023-09-28-case-rule-stmt-cfg-fix.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 java/ql/lib/change-notes/2023-09-28-case-rule-stmt-cfg-fix.md diff --git a/java/ql/lib/change-notes/2023-09-28-case-rule-stmt-cfg-fix.md b/java/ql/lib/change-notes/2023-09-28-case-rule-stmt-cfg-fix.md new file mode 100644 index 00000000000..5e99335aba7 --- /dev/null +++ b/java/ql/lib/change-notes/2023-09-28-case-rule-stmt-cfg-fix.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* Fixed a control-flow bug where case rule statements would incorrectly include a fall-through edge. +* Added support for default cases as proper guards in switch expressions to match switch statements. From 5db283e86af7d854e568aceb9d459abb956a69e7 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Thu, 28 Sep 2023 14:26:02 +0100 Subject: [PATCH 740/788] Kotlin: Fix comment --- java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index 1f11f418c3d..e0906acecf7 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -303,7 +303,7 @@ open class KotlinUsesExtractor( when (p) { is IrClass -> extractExternalClassLater(p) is IrExternalPackageFragment -> { - // The parent is a (multi)file class. We don't need + // The parent is a (multi)file class. We don't need to // extract it separately. } else -> { From e9482fb096f62a014c6dccad15b280efd8ce1e99 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Thu, 28 Sep 2023 14:59:21 +0100 Subject: [PATCH 741/788] Kotlin: Differentiate 2 error messages --- java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt | 2 +- java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index ed3298e6caa..0bfccb5637e 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -2395,7 +2395,7 @@ open class KotlinFileExtractor( // This is in a file class. val fqName = getFileClassFqName(target) if (fqName == null) { - logger.error("Can't get FqName for element in external package fragment ${target.javaClass}") + logger.error("Can't get FqName for static type access qualifier in external package fragment ${target.javaClass}") } else { extractTypeAccess(useFileClassType(fqName), locId, parentExpr, -1, enclosingCallable, enclosingStmt) } diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index 6c7835b4f4b..6b9f8fadbf5 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -820,7 +820,7 @@ open class KotlinUsesExtractor( // This is in a file class. val fqName = getFileClassFqName(d) if (fqName == null) { - logger.error("Can't get FqName for element in external package fragment ${d.javaClass}") + logger.error("Can't get FqName for declaration in external package fragment ${d.javaClass}") return null } return extractFileClass(fqName) From fdbc55302933c7c56f42ce19cc038dc294744496 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Thu, 28 Sep 2023 16:17:44 +0200 Subject: [PATCH 742/788] Java: Automodel Framework mode: no longer skip non-public methods --- .../src/AutomodelFrameworkModeCharacteristics.qll | 11 ----------- .../AutomodelFrameworkModeExtractCandidates.expected | 5 +++++ .../com/github/codeql/test/PublicClass.java | 2 +- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll index ac0dfa1e5db..222c9344339 100644 --- a/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll +++ b/java/ql/automodel/src/AutomodelFrameworkModeCharacteristics.qll @@ -354,14 +354,3 @@ private class NotAModelApi extends CharacteristicsImpl::UninterestingToModelChar not e.getEnclosingCallable() instanceof ModelExclusions::ModelApi } } - -/** - * A negative characteristic that filters out non-public methods. Non-public methods are not interesting to include in - * the standard Java modeling, because they cannot be called from outside the package. - */ -private class NonPublicMethodCharacteristic extends CharacteristicsImpl::UninterestingToModelCharacteristic -{ - NonPublicMethodCharacteristic() { this = "non-public method" } - - override predicate appliesToEndpoint(Endpoint e) { not e.getEnclosingCallable().isPublic() } -} diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected index 6b511b1ced4..2bb9b2edb25 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/AutomodelFrameworkModeExtractCandidates.expected @@ -5,6 +5,11 @@ | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:4:21:4:30 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | MethodDoc | com/github/codeql/test/PublicClass.java:8:22:8:32 | staticStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:8:34:8:43 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://false:1:1:1:1 | false | subtypes | file://staticStuff:1:1:1:1 | staticStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:13:18:13:31 | nonPublicStuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:13:18:13:31 | nonPublicStuff | MethodDoc | com/github/codeql/test/PublicClass.java:13:18:13:31 | nonPublicStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://nonPublicStuff:1:1:1:1 | nonPublicStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://Parameter[this]:1:1:1:1 | Parameter[this] | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicClass.java:13:18:13:31 | nonPublicStuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:13:18:13:31 | nonPublicStuff | MethodDoc | com/github/codeql/test/PublicClass.java:13:18:13:31 | nonPublicStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://nonPublicStuff:1:1:1:1 | nonPublicStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicClass.java:13:18:13:31 | nonPublicStuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:13:18:13:31 | nonPublicStuff | MethodDoc | com/github/codeql/test/PublicClass.java:13:18:13:31 | nonPublicStuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://nonPublicStuff:1:1:1:1 | nonPublicStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | +| com/github/codeql/test/PublicClass.java:13:33:13:42 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:13:33:13:42 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:13:33:13:42 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://nonPublicStuff:1:1:1:1 | nonPublicStuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://Parameter[0]:1:1:1:1 | Parameter[0] | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | +| com/github/codeql/test/PublicClass.java:13:33:13:42 | arg | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicClass.java:13:33:13:42 | arg | MethodDoc | com/github/codeql/test/PublicClass.java:13:33:13:42 | arg | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicClass:1:1:1:1 | PublicClass | type | file://true:1:1:1:1 | true | subtypes | file://nonPublicStuff:1:1:1:1 | nonPublicStuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[0]:1:1:1:1 | Argument[0] | input | file://:1:1:1:1 | | output | file://arg:1:1:1:1 | arg | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://Parameter[this]:1:1:1:1 | Parameter[this] | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://:1:1:1:1 | | input | file://ReturnValue:1:1:1:1 | ReturnValue | output | file://:1:1:1:1 | | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sourceModel:1:1:1:1 | sourceModel | extensibleType | | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | Related locations: $@, $@.\nmetadata: $@, $@, $@, $@, $@, $@, $@, $@, $@, $@. | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | MethodDoc | com/github/codeql/test/PublicInterface.java:4:17:4:21 | stuff | ClassDoc | file://com.github.codeql.test:1:1:1:1 | com.github.codeql.test | package | file://PublicInterface:1:1:1:1 | PublicInterface | type | file://true:1:1:1:1 | true | subtypes | file://stuff:1:1:1:1 | stuff | name | file://(String):1:1:1:1 | (String) | signature | file://Argument[this]:1:1:1:1 | Argument[this] | input | file://:1:1:1:1 | | output | file://this:1:1:1:1 | this | parameterName | file://:1:1:1:1 | | alreadyAiModeled | file://sinkModel:1:1:1:1 | sinkModel | extensibleType | diff --git a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java index b595b2469bd..49613d6d361 100644 --- a/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java +++ b/java/ql/automodel/test/AutomodelFrameworkModeExtraction/com/github/codeql/test/PublicClass.java @@ -9,7 +9,7 @@ public class PublicClass { System.out.println(arg); } // method staticStuff is a candidate source - // `arg` and `this` are not a candidate because the method is not public: + // `arg` and `this` are candidates because the method is protected (may be called from downstream repositories). The return value is a candidate source for the same reason. protected void nonPublicStuff(String arg) { System.out.println(arg); } From 6b0ae0f31288d063ceff0538fbd3fd6ea9129a60 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Wed, 27 Sep 2023 18:42:45 +0100 Subject: [PATCH 743/788] CPP: Remove unned argument from use-after-free --- cpp/ql/src/Critical/UseAfterFree.ql | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/cpp/ql/src/Critical/UseAfterFree.ql b/cpp/ql/src/Critical/UseAfterFree.ql index 61599544844..57522a0365c 100644 --- a/cpp/ql/src/Critical/UseAfterFree.ql +++ b/cpp/ql/src/Critical/UseAfterFree.ql @@ -29,9 +29,8 @@ private predicate externalCallNeverDereferences(FormattingFunctionCall call, int ) } -predicate isUse0(DataFlow::Node n, Expr e) { - e = n.asExpr() and - not isFree(n, _, _) and +predicate isUse0(Expr e) { + not isFree(_, e, _) and ( e = any(PointerDereferenceExpr pde).getOperand() or @@ -57,7 +56,7 @@ module ParameterSinks { import semmle.code.cpp.ir.ValueNumbering predicate flowsToUse(DataFlow::Node n) { - isUse0(n, _) + isUse0(n.asExpr()) or exists(DataFlow::Node succ | flowsToUse(succ) and @@ -90,7 +89,7 @@ module ParameterSinks { ) { pragma[only_bind_out](source.asParameter()) = pragma[only_bind_out](init.getParameter()) and paramToUse(source, sink) and - isUse0(sink, _) + isUse0(sink.asExpr()) } private InitializeParameterInstruction getAnAlwaysDereferencedParameter0() { @@ -139,7 +138,7 @@ module IsUse { private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplCommon predicate isUse(DataFlow::Node n, Expr e) { - isUse0(n, e) + isUse0(e) and n.asExpr() = e or exists(CallInstruction call, InitializeParameterInstruction init | n.asOperand().getDef().getUnconvertedResultExpression() = e and From e42741e8ed67b25c4c0dba9d1cff69c401aa0d21 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 28 Sep 2023 11:36:27 +0200 Subject: [PATCH 744/788] C#: Also run extractor unit tests on a windows runner. --- .github/workflows/csharp-qltest.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/csharp-qltest.yml b/.github/workflows/csharp-qltest.yml index 903a2690a8b..a6bca4be2b0 100644 --- a/.github/workflows/csharp-qltest.yml +++ b/.github/workflows/csharp-qltest.yml @@ -65,7 +65,10 @@ jobs: env: GITHUB_TOKEN: ${{ github.token }} unit-tests: - runs-on: ubuntu-latest + strategy: + matrix: + os: [ubuntu-latest, windows-2019] + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Setup dotnet From 086588982e4a03592337263d2a2c0ae177dbd5b2 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 29 Sep 2023 09:28:26 +0200 Subject: [PATCH 745/788] C#: Ensure that always use the same newline symbol for stub generation. --- .../Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs | 2 +- csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs index 1f09705721b..32ae6d25161 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs @@ -68,7 +68,7 @@ public static class StubGenerator var stubPath = FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")); stubPaths.Add(stubPath); using var fileStream = new FileStream(stubPath, FileMode.Create, FileAccess.Write); - using var writer = new StreamWriter(fileStream, new UTF8Encoding(false)); + using var writer = new StreamWriter(fileStream, new UTF8Encoding(false)) { NewLine = "\n" }; var visitor = new StubVisitor(writer, relevantSymbol); diff --git a/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs index 39964a22fe7..74d36de253c 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs @@ -61,7 +61,7 @@ public int M1(string arg1) => throw null; var st = CSharpSyntaxTree.ParseText(source); var compilation = CSharpCompilation.Create(null, new[] { st }); var sb = new StringBuilder(); - var visitor = new StubVisitor(new StringWriter(sb), new RelevantSymbolStub()); + var visitor = new StubVisitor(new StringWriter(sb) { NewLine = "\n" }, new RelevantSymbolStub()); compilation.GlobalNamespace.Accept(visitor); return sb.ToString(); } From 3fd083b2496fa5cf5b2c4fbc97eda46a1c07a0a4 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 28 Sep 2023 11:43:16 +0200 Subject: [PATCH 746/788] C#: Enable the stub generator tests. --- csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs b/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs index 74d36de253c..598ff77ca25 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/StubGenerator.cs @@ -13,7 +13,7 @@ namespace Semmle.Extraction.Tests; /// public class StubGeneratorTests { - // [Fact] + [Fact] public void StubGeneratorFieldTest() { // Setup @@ -36,7 +36,7 @@ public const string MyField2 = default; Assert.Equal(expected, stub); } - // [Fact] + [Fact] public void StubGeneratorMethodTest() { // Setup From c25113ae46de0b7bdac8929158dd135eaa1bf26e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 28 Sep 2023 12:58:41 +0200 Subject: [PATCH 747/788] C#: Execute tests via the bash shell to ensure that we stop on error. --- .github/workflows/csharp-qltest.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/csharp-qltest.yml b/.github/workflows/csharp-qltest.yml index a6bca4be2b0..2b2ead07e17 100644 --- a/.github/workflows/csharp-qltest.yml +++ b/.github/workflows/csharp-qltest.yml @@ -81,6 +81,7 @@ jobs: dotnet test -p:RuntimeFrameworkVersion=7.0.2 extractor/Semmle.Extraction.Tests dotnet test -p:RuntimeFrameworkVersion=7.0.2 autobuilder/Semmle.Autobuild.CSharp.Tests dotnet test -p:RuntimeFrameworkVersion=7.0.2 "${{ github.workspace }}/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests" + shell: bash stubgentest: runs-on: ubuntu-latest steps: From 2e028a41eeff2517574345e4a0d5963d93ab68e1 Mon Sep 17 00:00:00 2001 From: yoff Date: Fri, 29 Sep 2023 11:32:51 +0200 Subject: [PATCH 748/788] Apply suggestions from code review Co-authored-by: Rasmus Wriedt Larsen --- python/ql/lib/semmle/python/frameworks/BSon.qll | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/frameworks/BSon.qll b/python/ql/lib/semmle/python/frameworks/BSon.qll index 05bfb108cc7..4888c7786c0 100644 --- a/python/ql/lib/semmle/python/frameworks/BSon.qll +++ b/python/ql/lib/semmle/python/frameworks/BSon.qll @@ -1,5 +1,8 @@ /** - * Provides classes modeling security-relevant aspects of the PyMongo bindings. + * Provides classes modeling security-relevant aspects of the `bson` PyPI package. + * See + * - https://pypi.org/project/bson/ + * - https://github.com/py-bson/bson */ private import python @@ -7,6 +10,12 @@ private import semmle.python.dataflow.new.DataFlow private import semmle.python.Concepts private import semmle.python.ApiGraphs +/** + * Provides models for the `bson` PyPI package. + * See + * - https://pypi.org/project/bson/ + * - https://github.com/py-bson/bson + */ private module BSon { /** * ObjectId returns a string representing an id. From 74d6f37467d976d60f3f15dcd3605a692389b1bf Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Fri, 29 Sep 2023 11:28:17 +0200 Subject: [PATCH 749/788] Python: update meta query `TaintSinks` --- python/ql/src/meta/alerts/TaintSinks.ql | 1 + 1 file changed, 1 insertion(+) diff --git a/python/ql/src/meta/alerts/TaintSinks.ql b/python/ql/src/meta/alerts/TaintSinks.ql index 634ef18f129..193cdac6171 100644 --- a/python/ql/src/meta/alerts/TaintSinks.ql +++ b/python/ql/src/meta/alerts/TaintSinks.ql @@ -17,6 +17,7 @@ import semmle.python.security.dataflow.CodeInjectionCustomizations import semmle.python.security.dataflow.CommandInjectionCustomizations import semmle.python.security.dataflow.LdapInjectionCustomizations import semmle.python.security.dataflow.LogInjectionCustomizations +import semmle.python.security.dataflow.NoSQLInjectionCustomizations import semmle.python.security.dataflow.PathInjectionCustomizations import semmle.python.security.dataflow.PolynomialReDoSCustomizations import semmle.python.security.dataflow.ReflectedXSSCustomizations From 2d845e3e55899e75e3016454453f61a9c3f6434c Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Fri, 29 Sep 2023 12:01:41 +0200 Subject: [PATCH 750/788] Python: nicer paths turn "the long jump" that would end up straight at the argument into a short jump that ends up at the dictionary being written to. Dataflow takes care of the rest of the path. --- .../lib/semmle/python/frameworks/PyMongo.qll | 6 ++--- .../NoSqlInjection.expected | 25 +++++++++++-------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/PyMongo.qll b/python/ql/lib/semmle/python/frameworks/PyMongo.qll index bdc120c3b59..27c40f1e1c6 100644 --- a/python/ql/lib/semmle/python/frameworks/PyMongo.qll +++ b/python/ql/lib/semmle/python/frameworks/PyMongo.qll @@ -160,7 +160,7 @@ private module PyMongo { dictionary = mongoCollection().getMember(mongoCollectionMethodName()).getACall().getParameter(0) and query = dictionary.getSubscript("$where").asSink() and - this = dictionary.asSink() + this = dictionary.getAValueReachingSink() } override DataFlow::Node getAnInput() { result = query } @@ -190,7 +190,7 @@ private module PyMongo { .getASubscript*() .getSubscript("$function") and query = dictionary.getSubscript("body").asSink() and - this = dictionary.asSink() + this = dictionary.getAValueReachingSink() ) } @@ -221,7 +221,7 @@ private module PyMongo { .getASubscript*() .getSubscript("$accumulator") and query = dictionary.getSubscript(["init", "accumulate", "merge", "finalize"]).asSink() and - this = dictionary.asSink() + this = dictionary.getAValueReachingSink() ) } diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected index 448196bff3a..beaa85d5312 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected @@ -15,13 +15,15 @@ edges | PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | | PoC/server.py:51:5:51:10 | SSA variable author | PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | | PoC/server.py:51:14:51:20 | ControlFlowNode for request | PoC/server.py:51:5:51:10 | SSA variable author | -| PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | PoC/server.py:60:51:60:56 | ControlFlowNode for search | -| PoC/server.py:60:51:60:56 | ControlFlowNode for search | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | +| PoC/server.py:52:5:52:10 | SSA variable search | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | +| PoC/server.py:52:14:56:5 | ControlFlowNode for Dict | PoC/server.py:52:5:52:10 | SSA variable search | +| PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | PoC/server.py:52:14:56:5 | ControlFlowNode for Dict | | PoC/server.py:76:5:76:10 | SSA variable author | PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | | PoC/server.py:76:14:76:20 | ControlFlowNode for request | PoC/server.py:76:5:76:10 | SSA variable author | -| PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | PoC/server.py:85:37:85:47 | ControlFlowNode for accumulator | +| PoC/server.py:77:5:77:15 | SSA variable accumulator | PoC/server.py:83:5:83:9 | SSA variable group | +| PoC/server.py:77:19:82:5 | ControlFlowNode for Dict | PoC/server.py:77:5:77:15 | SSA variable accumulator | +| PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | PoC/server.py:77:19:82:5 | ControlFlowNode for Dict | | PoC/server.py:83:5:83:9 | SSA variable group | PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | -| PoC/server.py:85:37:85:47 | ControlFlowNode for accumulator | PoC/server.py:83:5:83:9 | SSA variable group | | PoC/server.py:96:5:96:10 | SSA variable author | PoC/server.py:97:5:97:10 | SSA variable mapper | | PoC/server.py:96:14:96:20 | ControlFlowNode for request | PoC/server.py:96:5:96:10 | SSA variable author | | PoC/server.py:97:5:97:10 | SSA variable mapper | PoC/server.py:100:9:100:14 | ControlFlowNode for mapper | @@ -106,13 +108,12 @@ edges | pymongo_test.py:52:15:52:50 | ControlFlowNode for Attribute() | pymongo_test.py:52:5:52:11 | SSA variable decoded | | pymongo_test.py:52:26:52:32 | ControlFlowNode for request | pymongo_test.py:52:26:52:49 | ControlFlowNode for Subscript | | pymongo_test.py:52:26:52:49 | ControlFlowNode for Subscript | pymongo_test.py:52:15:52:50 | ControlFlowNode for Attribute() | -| pymongo_test.py:54:5:54:10 | SSA variable search | pymongo_test.py:59:49:59:54 | ControlFlowNode for search | -| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:54:5:54:10 | SSA variable search | -| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:59:49:59:54 | ControlFlowNode for search | +| pymongo_test.py:54:5:54:10 | SSA variable search | pymongo_test.py:59:25:59:56 | ControlFlowNode for Dict | +| pymongo_test.py:54:14:58:5 | ControlFlowNode for Dict | pymongo_test.py:54:5:54:10 | SSA variable search | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:54:14:58:5 | ControlFlowNode for Dict | | pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:61:25:61:57 | ControlFlowNode for Dict | | pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:62:25:62:42 | ControlFlowNode for Dict | | pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:63:25:63:31 | ControlFlowNode for decoded | -| pymongo_test.py:59:49:59:54 | ControlFlowNode for search | pymongo_test.py:59:25:59:56 | ControlFlowNode for Dict | nodes | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | PoC/server.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | @@ -128,14 +129,16 @@ nodes | PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | | PoC/server.py:51:5:51:10 | SSA variable author | semmle.label | SSA variable author | | PoC/server.py:51:14:51:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:52:5:52:10 | SSA variable search | semmle.label | SSA variable search | +| PoC/server.py:52:14:56:5 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | | PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | -| PoC/server.py:60:51:60:56 | ControlFlowNode for search | semmle.label | ControlFlowNode for search | | PoC/server.py:76:5:76:10 | SSA variable author | semmle.label | SSA variable author | | PoC/server.py:76:14:76:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:77:5:77:15 | SSA variable accumulator | semmle.label | SSA variable accumulator | +| PoC/server.py:77:19:82:5 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | | PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | | PoC/server.py:83:5:83:9 | SSA variable group | semmle.label | SSA variable group | -| PoC/server.py:85:37:85:47 | ControlFlowNode for accumulator | semmle.label | ControlFlowNode for accumulator | | PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | | PoC/server.py:96:5:96:10 | SSA variable author | semmle.label | SSA variable author | | PoC/server.py:96:14:96:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | @@ -226,9 +229,9 @@ nodes | pymongo_test.py:52:26:52:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | pymongo_test.py:52:26:52:49 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | | pymongo_test.py:54:5:54:10 | SSA variable search | semmle.label | SSA variable search | +| pymongo_test.py:54:14:58:5 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | | pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | semmle.label | ControlFlowNode for decoded | | pymongo_test.py:59:25:59:56 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | -| pymongo_test.py:59:49:59:54 | ControlFlowNode for search | semmle.label | ControlFlowNode for search | | pymongo_test.py:61:25:61:57 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | | pymongo_test.py:62:25:62:42 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | | pymongo_test.py:63:25:63:31 | ControlFlowNode for decoded | semmle.label | ControlFlowNode for decoded | From e1708054a46c460bc45a98e856c7ad654ca39ee4 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Fri, 29 Sep 2023 12:06:51 +0200 Subject: [PATCH 751/788] Python: fix QL alert --- python/ql/lib/semmle/python/frameworks/PyMongo.qll | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/PyMongo.qll b/python/ql/lib/semmle/python/frameworks/PyMongo.qll index 27c40f1e1c6..148cb074a10 100644 --- a/python/ql/lib/semmle/python/frameworks/PyMongo.qll +++ b/python/ql/lib/semmle/python/frameworks/PyMongo.qll @@ -153,14 +153,15 @@ private module PyMongo { /** The `$where` query operator executes a string as JavaScript. */ private class WhereQueryOperator extends DataFlow::Node, Decoding::Range { - API::Node dictionary; DataFlow::Node query; WhereQueryOperator() { - dictionary = - mongoCollection().getMember(mongoCollectionMethodName()).getACall().getParameter(0) and - query = dictionary.getSubscript("$where").asSink() and - this = dictionary.getAValueReachingSink() + exists(API::Node dictionary | + dictionary = + mongoCollection().getMember(mongoCollectionMethodName()).getACall().getParameter(0) and + query = dictionary.getSubscript("$where").asSink() and + this = dictionary.getAValueReachingSink() + ) } override DataFlow::Node getAnInput() { result = query } From f3a01612e84e8d5a5fcc51526ff0f41ab26967dc Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Fri, 29 Sep 2023 13:23:36 +0200 Subject: [PATCH 752/788] Python: rename flow states Close to being a revert of https://github.com/github/codeql/pull/14070/commits/3043633d9c16a9eb1cf0aab3249d38430a062ad6 but with slightly shorter names and added comments. --- .../dataflow/NoSQLInjectionCustomizations.qll | 55 ++++++++++--------- .../security/dataflow/NoSQLInjectionQuery.qll | 28 +++++----- 2 files changed, 43 insertions(+), 40 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll index f516a61e0af..a07d3caf823 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll @@ -16,47 +16,50 @@ import semmle.python.Concepts */ module NoSqlInjection { private newtype TFlowState = - TStringInput() or - TInterpretedStringInput() + TString() or + TDict() - /** A flow state, tracking the structure of the input. */ + /** A flow state, tracking the structure of the data. */ abstract class FlowState extends TFlowState { /** Gets a textual representation of this element. */ abstract string toString(); } - /** A state where input is only a string. */ - class StringInput extends FlowState, TStringInput { - override string toString() { result = "StringInput" } + /** A state where the tracked data is only a string. */ + class String extends FlowState, TString { + override string toString() { result = "String" } } /** - * A state where input is a string that has been interpreted. - * For instance, it could have been turned into a dictionary, - * or evaluated as javascript code. + * A state where the tracked data has been converted to + * a dictionary. + * + * We include cases where data represent JSON objects, so + * it could actually still be just a string. It could + * also contain query operators, or even JavaScript code. */ - class InterpretedStringInput extends FlowState, TInterpretedStringInput { - override string toString() { result = "InterpretedStringInput" } + class Dict extends FlowState, TDict { + override string toString() { result = "Dict" } } /** A source allowing string inputs. */ abstract class StringSource extends DataFlow::Node { } - /** A source of interpreted strings. */ - abstract class InterpretedStringSource extends DataFlow::Node { } + /** A source of allowing dictionaries. */ + abstract class DictSource extends DataFlow::Node { } /** A sink vulnerable to user controlled strings. */ abstract class StringSink extends DataFlow::Node { } - /** A sink vulnerable to user controlled interpreted strings. */ - abstract class InterpretedStringSink extends DataFlow::Node { } + /** A sink vulnerable to user controlled dictionaries. */ + abstract class DictSink extends DataFlow::Node { } - /** A data flow node where a string is being interpreted. */ - abstract class StringInterpretation extends DataFlow::Node { - /** Gets the argument that specifies the string to be interpreted. */ + /** A data flow node where a string is converted into a dictionary. */ + abstract class StringToDictConversion extends DataFlow::Node { + /** Gets the argument that specifies the string to be converted. */ abstract DataFlow::Node getAnInput(); - /** Gets the result of interpreting the string. */ + /** Gets the resulting dictionary. */ abstract DataFlow::Node getOutput(); } @@ -72,13 +75,13 @@ module NoSqlInjection { } } - /** A NoSQL query that is vulnerable to user controlled InterpretedStringionaries. */ - class NoSqlExecutionAsInterpretedStringSink extends InterpretedStringSink { - NoSqlExecutionAsInterpretedStringSink() { this = any(NoSqlExecution noSqlExecution).getQuery() } + /** A NoSQL query that is vulnerable to user controlled dictionaries. */ + class NoSqlExecutionAsDictSink extends DictSink { + NoSqlExecutionAsDictSink() { this = any(NoSqlExecution noSqlExecution).getQuery() } } - /** A JSON decoding converts a string to a Dictionary. */ - class JsonDecoding extends Decoding, StringInterpretation { + /** A JSON decoding converts a string to a dictionary. */ + class JsonDecoding extends Decoding, StringToDictConversion { JsonDecoding() { this.getFormat() = "JSON" } override DataFlow::Node getAnInput() { result = Decoding.super.getAnInput() } @@ -86,8 +89,8 @@ module NoSqlInjection { override DataFlow::Node getOutput() { result = Decoding.super.getOutput() } } - /** A NoSQL decoding interprets a string. */ - class NoSqlDecoding extends Decoding, StringInterpretation { + /** A NoSQL decoding interprets a string as a dictionary. */ + class NoSqlDecoding extends Decoding, StringToDictConversion { NoSqlDecoding() { this.getFormat() = "NoSQL" } override DataFlow::Node getAnInput() { result = Decoding.super.getAnInput() } diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll index 2e8e827b55c..790b1785f7a 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll @@ -16,41 +16,41 @@ module NoSqlInjectionConfig implements DataFlow::StateConfigSig { predicate isSource(DataFlow::Node source, FlowState state) { source instanceof C::StringSource and - state instanceof C::StringInput + state instanceof C::String or - source instanceof C::InterpretedStringSource and - state instanceof C::InterpretedStringInput + source instanceof C::DictSource and + state instanceof C::Dict } predicate isSink(DataFlow::Node sink, FlowState state) { sink instanceof C::StringSink and ( - state instanceof C::StringInput + state instanceof C::String or - // since InterpretedStrings can include strings, + // since Dicts can include strings, // e.g. JSON objects can encode strings. - state instanceof C::InterpretedStringInput + state instanceof C::Dict ) or - sink instanceof C::InterpretedStringSink and - state instanceof C::InterpretedStringInput + sink instanceof C::DictSink and + state instanceof C::Dict } predicate isBarrier(DataFlow::Node node, FlowState state) { - // Block `StringInput` paths here, since they change state to `InterpretedStringInput` - exists(C::StringInterpretation c | node = c.getOutput()) and - state instanceof C::StringInput + // Block `String` paths here, since they change state to `Dict` + exists(C::StringToDictConversion c | node = c.getOutput()) and + state instanceof C::String } predicate isAdditionalFlowStep( DataFlow::Node nodeFrom, FlowState stateFrom, DataFlow::Node nodeTo, FlowState stateTo ) { - exists(C::StringInterpretation c | + exists(C::StringToDictConversion c | nodeFrom = c.getAnInput() and nodeTo = c.getOutput() ) and - stateFrom instanceof C::StringInput and - stateTo instanceof C::InterpretedStringInput + stateFrom instanceof C::String and + stateTo instanceof C::Dict } predicate isBarrier(DataFlow::Node node) { From 97696680e67e6de2ff83a754adf1236adf5571d4 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Fri, 29 Sep 2023 13:45:23 +0200 Subject: [PATCH 753/788] Python: require dict sinks be dangerous. --- .../security/dataflow/NoSQLInjectionCustomizations.qll | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll index a07d3caf823..d708081a7f5 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll @@ -77,7 +77,11 @@ module NoSqlInjection { /** A NoSQL query that is vulnerable to user controlled dictionaries. */ class NoSqlExecutionAsDictSink extends DictSink { - NoSqlExecutionAsDictSink() { this = any(NoSqlExecution noSqlExecution).getQuery() } + NoSqlExecutionAsDictSink() { + exists(NoSqlExecution noSqlExecution | this = noSqlExecution.getQuery() | + noSqlExecution.interpretsDict() + ) + } } /** A JSON decoding converts a string to a dictionary. */ From 16e1a00e882a4b85f06255a5726c218fb506f769 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 29 Sep 2023 13:16:30 +0200 Subject: [PATCH 754/788] Python: NoSQLInjection -> NoSqlInjection --- ...ctionCustomizations.qll => NoSqlInjectionCustomizations.qll} | 0 .../{NoSQLInjectionQuery.qll => NoSqlInjectionQuery.qll} | 2 +- .../CWE-943/{NoSQLInjection.qhelp => NoSqlInjection.qhelp} | 0 .../Security/CWE-943/{NoSQLInjection.ql => NoSqlInjection.ql} | 2 +- python/ql/src/meta/alerts/TaintSinks.ql | 2 +- .../Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql | 2 +- .../Security/CWE-943-NoSqlInjection/NoSqlInjection.qlref | 2 +- 7 files changed, 5 insertions(+), 5 deletions(-) rename python/ql/lib/semmle/python/security/dataflow/{NoSQLInjectionCustomizations.qll => NoSqlInjectionCustomizations.qll} (100%) rename python/ql/lib/semmle/python/security/dataflow/{NoSQLInjectionQuery.qll => NoSqlInjectionQuery.qll} (96%) rename python/ql/src/Security/CWE-943/{NoSQLInjection.qhelp => NoSqlInjection.qhelp} (100%) rename python/ql/src/Security/CWE-943/{NoSQLInjection.ql => NoSqlInjection.ql} (91%) diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/NoSqlInjectionCustomizations.qll similarity index 100% rename from python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionCustomizations.qll rename to python/ql/lib/semmle/python/security/dataflow/NoSqlInjectionCustomizations.qll diff --git a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/NoSqlInjectionQuery.qll similarity index 96% rename from python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll rename to python/ql/lib/semmle/python/security/dataflow/NoSqlInjectionQuery.qll index 790b1785f7a..5b0daacb737 100644 --- a/python/ql/lib/semmle/python/security/dataflow/NoSQLInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/NoSqlInjectionQuery.qll @@ -6,7 +6,7 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import semmle.python.Concepts -private import NoSQLInjectionCustomizations::NoSqlInjection as C +private import NoSqlInjectionCustomizations::NoSqlInjection as C /** * A taint-tracking configuration for detecting NoSQL injection vulnerabilities. diff --git a/python/ql/src/Security/CWE-943/NoSQLInjection.qhelp b/python/ql/src/Security/CWE-943/NoSqlInjection.qhelp similarity index 100% rename from python/ql/src/Security/CWE-943/NoSQLInjection.qhelp rename to python/ql/src/Security/CWE-943/NoSqlInjection.qhelp diff --git a/python/ql/src/Security/CWE-943/NoSQLInjection.ql b/python/ql/src/Security/CWE-943/NoSqlInjection.ql similarity index 91% rename from python/ql/src/Security/CWE-943/NoSQLInjection.ql rename to python/ql/src/Security/CWE-943/NoSqlInjection.ql index 0b9ac2139e7..b559159055f 100644 --- a/python/ql/src/Security/CWE-943/NoSQLInjection.ql +++ b/python/ql/src/Security/CWE-943/NoSqlInjection.ql @@ -11,7 +11,7 @@ */ import python -import semmle.python.security.dataflow.NoSQLInjectionQuery +import semmle.python.security.dataflow.NoSqlInjectionQuery import NoSqlInjectionFlow::PathGraph from NoSqlInjectionFlow::PathNode source, NoSqlInjectionFlow::PathNode sink diff --git a/python/ql/src/meta/alerts/TaintSinks.ql b/python/ql/src/meta/alerts/TaintSinks.ql index 193cdac6171..0930da28451 100644 --- a/python/ql/src/meta/alerts/TaintSinks.ql +++ b/python/ql/src/meta/alerts/TaintSinks.ql @@ -17,7 +17,7 @@ import semmle.python.security.dataflow.CodeInjectionCustomizations import semmle.python.security.dataflow.CommandInjectionCustomizations import semmle.python.security.dataflow.LdapInjectionCustomizations import semmle.python.security.dataflow.LogInjectionCustomizations -import semmle.python.security.dataflow.NoSQLInjectionCustomizations +import semmle.python.security.dataflow.NoSqlInjectionCustomizations import semmle.python.security.dataflow.PathInjectionCustomizations import semmle.python.security.dataflow.PolynomialReDoSCustomizations import semmle.python.security.dataflow.ReflectedXSSCustomizations diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql index 79c28c399f3..b665aefd6fb 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python import experimental.dataflow.TestUtil.DataflowQueryTest -import semmle.python.security.dataflow.NoSQLInjectionQuery +import semmle.python.security.dataflow.NoSqlInjectionQuery import FromTaintTrackingStateConfig diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.qlref b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.qlref index a3f577c4cdc..4bc8c29a104 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.qlref +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.qlref @@ -1 +1 @@ -Security/CWE-943/NoSQLInjection.ql +Security/CWE-943/NoSqlInjection.ql From d7ad5a0f2314d0b351c9656cd49f5e5762fc4ef1 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 29 Sep 2023 13:16:50 +0200 Subject: [PATCH 755/788] Python: List NoSQL injection sinks --- python/ql/src/meta/alerts/TaintSinks.ql | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/python/ql/src/meta/alerts/TaintSinks.ql b/python/ql/src/meta/alerts/TaintSinks.ql index 0930da28451..55d88f8c359 100644 --- a/python/ql/src/meta/alerts/TaintSinks.ql +++ b/python/ql/src/meta/alerts/TaintSinks.ql @@ -58,6 +58,10 @@ DataFlow::Node relevantTaintSink(string kind) { or kind = "RegexInjection" and result instanceof RegexInjection::Sink or + kind = "NoSqlInjection (string sink)" and result instanceof NoSqlInjection::StringSink + or + kind = "NoSqlInjection (dict sink)" and result instanceof NoSqlInjection::DictSink + or kind = "ServerSideRequestForgery" and result instanceof ServerSideRequestForgery::Sink or kind = "SqlInjection" and result instanceof SqlInjection::Sink From 3676262313dd6520d1127bee806a82e77a63fa20 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 29 Sep 2023 13:35:14 +0200 Subject: [PATCH 756/788] Python: Clean trailing whitespace --- .../Security/CWE-943-NoSqlInjection/mongoengine_bad.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_bad.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_bad.py index 4367f9e1ff7..8dcedda62a2 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_bad.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/mongoengine_bad.py @@ -18,7 +18,7 @@ def connect_find(): unsafe_search = request.args['search'] json_search = json.loads(unsafe_search) - db = me.connect('mydb') + db = me.connect('mydb') return db.movie.find({'name': json_search}) #$ result=BAD @app.route("/connection_connect_find") @@ -57,7 +57,7 @@ def subscript_find(): unsafe_search = request.args['search'] json_search = json.loads(unsafe_search) - db = me.connect('mydb') + db = me.connect('mydb') return db['movie'].find({'name': json_search}) #$ result=BAD # if __name__ == "__main__": From d6d13f84a99c149180f24dfdd2d4a09039cd6dd0 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 29 Sep 2023 13:50:34 +0200 Subject: [PATCH 757/788] Python: -> NoSQL in QLDocs --- python/ql/lib/semmle/python/Concepts.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/semmle/python/Concepts.qll b/python/ql/lib/semmle/python/Concepts.qll index f3dcddf3bfd..81c7bd2990e 100644 --- a/python/ql/lib/semmle/python/Concepts.qll +++ b/python/ql/lib/semmle/python/Concepts.qll @@ -387,7 +387,7 @@ module NoSqlExecution { * extend `NoSqlExecution` instead. */ abstract class Range extends DataFlow::Node { - /** Gets the argument that specifies the NoSql query to be executed. */ + /** Gets the argument that specifies the NoSQL query to be executed. */ abstract DataFlow::Node getQuery(); /** Holds if this query will unpack/interpret a dictionary */ @@ -405,7 +405,7 @@ module NoSqlExecution { * extend `NoSqlExecution::Range` instead. */ class NoSqlExecution extends DataFlow::Node instanceof NoSqlExecution::Range { - /** Gets the argument that specifies the NoSql query to be executed. */ + /** Gets the argument that specifies the NoSQL query to be executed. */ DataFlow::Node getQuery() { result = super.getQuery() } /** Holds if this query will unpack/interpret a dictionary */ From 9b73bbfc31cab1c8d605a151a6d3449bd9d98568 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 29 Sep 2023 13:51:55 +0200 Subject: [PATCH 758/788] Python: Add keyword argument support and a fair bit of refactoring --- .../lib/semmle/python/frameworks/PyMongo.qll | 35 +++---- .../NoSqlInjection.expected | 98 ++++++++++--------- .../CWE-943-NoSqlInjection/PoC/server.py | 2 + 3 files changed, 72 insertions(+), 63 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/PyMongo.qll b/python/ql/lib/semmle/python/frameworks/PyMongo.qll index 148cb074a10..de36f2ebcec 100644 --- a/python/ql/lib/semmle/python/frameworks/PyMongo.qll +++ b/python/ql/lib/semmle/python/frameworks/PyMongo.qll @@ -109,22 +109,34 @@ private module PyMongo { * * `mongo.db.user.find({'name': safe_search})` would be a collection method call. */ - private class MongoCollectionCall extends DataFlow::CallCfgNode, NoSqlExecution::Range { + private class MongoCollectionCall extends API::CallNode, NoSqlExecution::Range { MongoCollectionCall() { this = mongoCollection().getMember(mongoCollectionMethodName()).getACall() } - override DataFlow::Node getQuery() { result = this.getArg(0) } + /** Gets the argument that specifies the NoSQL query to be executed, as an API::node */ + pragma[inline] + API::Node getQueryAsApiNode() { + // 'filter' is allowed keyword in pymongo, see https://pymongo.readthedocs.io/en/stable/api/pymongo/collection.html#pymongo.collection.Collection.find + result = this.getParameter(0, "filter") + } + + override DataFlow::Node getQuery() { result = this.getQueryAsApiNode().asSink() } override predicate interpretsDict() { any() } override predicate vulnerableToStrings() { none() } } + /** + * See https://pymongo.readthedocs.io/en/stable/api/pymongo/collection.html#pymongo.collection.Collection.aggregate + */ private class MongoCollectionAggregation extends API::CallNode, NoSqlExecution::Range { MongoCollectionAggregation() { this = mongoCollection().getMember("aggregate").getACall() } - override DataFlow::Node getQuery() { result = this.getParameter(0).getASubscript().asSink() } + override DataFlow::Node getQuery() { + result = this.getParameter(0, "pipeline").getASubscript().asSink() + } override predicate interpretsDict() { any() } @@ -157,8 +169,7 @@ private module PyMongo { WhereQueryOperator() { exists(API::Node dictionary | - dictionary = - mongoCollection().getMember(mongoCollectionMethodName()).getACall().getParameter(0) and + dictionary = any(MongoCollectionCall c).getQueryAsApiNode() and query = dictionary.getSubscript("$where").asSink() and this = dictionary.getAValueReachingSink() ) @@ -184,12 +195,7 @@ private module PyMongo { FunctionQueryOperator() { exists(API::Node dictionary | dictionary = - mongoCollection() - .getMember(mongoCollectionMethodName()) - .getACall() - .getParameter(0) - .getASubscript*() - .getSubscript("$function") and + any(MongoCollectionCall c).getQueryAsApiNode().getASubscript*().getSubscript("$function") and query = dictionary.getSubscript("body").asSink() and this = dictionary.getAValueReachingSink() ) @@ -285,12 +291,7 @@ private module PyMongo { private class EqualityOperator extends DataFlow::Node, NoSqlSanitizer::Range { EqualityOperator() { this = - mongoCollection() - .getMember(mongoCollectionMethodName()) - .getParameter(0) - .getASubscript*() - .getSubscript("$eq") - .asSink() + any(MongoCollectionCall c).getQueryAsApiNode().getASubscript*().getSubscript("$eq").asSink() } override DataFlow::Node getAnInput() { result = this } diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected index beaa85d5312..c1b5889d02b 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected @@ -1,32 +1,34 @@ edges | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:1:26:1:32 | GSSA Variable request | | PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:26:21:26:27 | ControlFlowNode for request | -| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:42:14:42:20 | ControlFlowNode for request | -| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:51:14:51:20 | ControlFlowNode for request | -| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:76:14:76:20 | ControlFlowNode for request | -| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:96:14:96:20 | ControlFlowNode for request | +| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:43:14:43:20 | ControlFlowNode for request | +| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:52:14:52:20 | ControlFlowNode for request | +| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:77:14:77:20 | ControlFlowNode for request | +| PoC/server.py:1:26:1:32 | GSSA Variable request | PoC/server.py:98:14:98:20 | ControlFlowNode for request | | PoC/server.py:26:5:26:17 | SSA variable author_string | PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | | PoC/server.py:26:21:26:27 | ControlFlowNode for request | PoC/server.py:26:5:26:17 | SSA variable author_string | | PoC/server.py:27:5:27:10 | SSA variable author | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | +| PoC/server.py:27:5:27:10 | SSA variable author | PoC/server.py:31:34:31:51 | ControlFlowNode for Dict | | PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | PoC/server.py:27:5:27:10 | SSA variable author | | PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | -| PoC/server.py:42:5:42:10 | SSA variable author | PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | -| PoC/server.py:42:14:42:20 | ControlFlowNode for request | PoC/server.py:42:5:42:10 | SSA variable author | -| PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | -| PoC/server.py:51:5:51:10 | SSA variable author | PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | -| PoC/server.py:51:14:51:20 | ControlFlowNode for request | PoC/server.py:51:5:51:10 | SSA variable author | -| PoC/server.py:52:5:52:10 | SSA variable search | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | -| PoC/server.py:52:14:56:5 | ControlFlowNode for Dict | PoC/server.py:52:5:52:10 | SSA variable search | -| PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | PoC/server.py:52:14:56:5 | ControlFlowNode for Dict | -| PoC/server.py:76:5:76:10 | SSA variable author | PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | -| PoC/server.py:76:14:76:20 | ControlFlowNode for request | PoC/server.py:76:5:76:10 | SSA variable author | -| PoC/server.py:77:5:77:15 | SSA variable accumulator | PoC/server.py:83:5:83:9 | SSA variable group | -| PoC/server.py:77:19:82:5 | ControlFlowNode for Dict | PoC/server.py:77:5:77:15 | SSA variable accumulator | -| PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | PoC/server.py:77:19:82:5 | ControlFlowNode for Dict | -| PoC/server.py:83:5:83:9 | SSA variable group | PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | -| PoC/server.py:96:5:96:10 | SSA variable author | PoC/server.py:97:5:97:10 | SSA variable mapper | -| PoC/server.py:96:14:96:20 | ControlFlowNode for request | PoC/server.py:96:5:96:10 | SSA variable author | -| PoC/server.py:97:5:97:10 | SSA variable mapper | PoC/server.py:100:9:100:14 | ControlFlowNode for mapper | +| PoC/server.py:43:5:43:10 | SSA variable author | PoC/server.py:47:38:47:67 | ControlFlowNode for BinaryExpr | +| PoC/server.py:43:14:43:20 | ControlFlowNode for request | PoC/server.py:43:5:43:10 | SSA variable author | +| PoC/server.py:47:38:47:67 | ControlFlowNode for BinaryExpr | PoC/server.py:47:27:47:68 | ControlFlowNode for Dict | +| PoC/server.py:52:5:52:10 | SSA variable author | PoC/server.py:54:17:54:70 | ControlFlowNode for BinaryExpr | +| PoC/server.py:52:14:52:20 | ControlFlowNode for request | PoC/server.py:52:5:52:10 | SSA variable author | +| PoC/server.py:53:5:53:10 | SSA variable search | PoC/server.py:61:27:61:58 | ControlFlowNode for Dict | +| PoC/server.py:53:14:57:5 | ControlFlowNode for Dict | PoC/server.py:53:5:53:10 | SSA variable search | +| PoC/server.py:54:17:54:70 | ControlFlowNode for BinaryExpr | PoC/server.py:53:14:57:5 | ControlFlowNode for Dict | +| PoC/server.py:77:5:77:10 | SSA variable author | PoC/server.py:80:23:80:101 | ControlFlowNode for BinaryExpr | +| PoC/server.py:77:14:77:20 | ControlFlowNode for request | PoC/server.py:77:5:77:10 | SSA variable author | +| PoC/server.py:78:5:78:15 | SSA variable accumulator | PoC/server.py:84:5:84:9 | SSA variable group | +| PoC/server.py:78:19:83:5 | ControlFlowNode for Dict | PoC/server.py:78:5:78:15 | SSA variable accumulator | +| PoC/server.py:80:23:80:101 | ControlFlowNode for BinaryExpr | PoC/server.py:78:19:83:5 | ControlFlowNode for Dict | +| PoC/server.py:84:5:84:9 | SSA variable group | PoC/server.py:91:29:91:47 | ControlFlowNode for Dict | +| PoC/server.py:84:5:84:9 | SSA variable group | PoC/server.py:92:38:92:56 | ControlFlowNode for Dict | +| PoC/server.py:98:5:98:10 | SSA variable author | PoC/server.py:99:5:99:10 | SSA variable mapper | +| PoC/server.py:98:14:98:20 | ControlFlowNode for request | PoC/server.py:98:5:98:10 | SSA variable author | +| PoC/server.py:99:5:99:10 | SSA variable mapper | PoC/server.py:102:9:102:14 | ControlFlowNode for mapper | | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | flask_mongoengine_bad.py:19:21:19:27 | ControlFlowNode for request | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | flask_mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | @@ -123,27 +125,29 @@ nodes | PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | semmle.label | ControlFlowNode for author_string | | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | -| PoC/server.py:42:5:42:10 | SSA variable author | semmle.label | SSA variable author | -| PoC/server.py:42:14:42:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | -| PoC/server.py:46:38:46:67 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | -| PoC/server.py:51:5:51:10 | SSA variable author | semmle.label | SSA variable author | -| PoC/server.py:51:14:51:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| PoC/server.py:52:5:52:10 | SSA variable search | semmle.label | SSA variable search | -| PoC/server.py:52:14:56:5 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | -| PoC/server.py:53:17:53:70 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | -| PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | -| PoC/server.py:76:5:76:10 | SSA variable author | semmle.label | SSA variable author | -| PoC/server.py:76:14:76:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| PoC/server.py:77:5:77:15 | SSA variable accumulator | semmle.label | SSA variable accumulator | -| PoC/server.py:77:19:82:5 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | -| PoC/server.py:79:23:79:101 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | -| PoC/server.py:83:5:83:9 | SSA variable group | semmle.label | SSA variable group | -| PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | -| PoC/server.py:96:5:96:10 | SSA variable author | semmle.label | SSA variable author | -| PoC/server.py:96:14:96:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| PoC/server.py:97:5:97:10 | SSA variable mapper | semmle.label | SSA variable mapper | -| PoC/server.py:100:9:100:14 | ControlFlowNode for mapper | semmle.label | ControlFlowNode for mapper | +| PoC/server.py:31:34:31:51 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:43:5:43:10 | SSA variable author | semmle.label | SSA variable author | +| PoC/server.py:43:14:43:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:47:27:47:68 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:47:38:47:67 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | +| PoC/server.py:52:5:52:10 | SSA variable author | semmle.label | SSA variable author | +| PoC/server.py:52:14:52:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:53:5:53:10 | SSA variable search | semmle.label | SSA variable search | +| PoC/server.py:53:14:57:5 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:54:17:54:70 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | +| PoC/server.py:61:27:61:58 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:77:5:77:10 | SSA variable author | semmle.label | SSA variable author | +| PoC/server.py:77:14:77:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:78:5:78:15 | SSA variable accumulator | semmle.label | SSA variable accumulator | +| PoC/server.py:78:19:83:5 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:80:23:80:101 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | +| PoC/server.py:84:5:84:9 | SSA variable group | semmle.label | SSA variable group | +| PoC/server.py:91:29:91:47 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:92:38:92:56 | ControlFlowNode for Dict | semmle.label | ControlFlowNode for Dict | +| PoC/server.py:98:5:98:10 | SSA variable author | semmle.label | SSA variable author | +| PoC/server.py:98:14:98:20 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| PoC/server.py:99:5:99:10 | SSA variable mapper | semmle.label | SSA variable mapper | +| PoC/server.py:102:9:102:14 | ControlFlowNode for mapper | semmle.label | ControlFlowNode for mapper | | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | flask_mongoengine_bad.py:1:26:1:32 | GSSA Variable request | semmle.label | GSSA Variable request | | flask_mongoengine_bad.py:19:5:19:17 | SSA variable unsafe_search | semmle.label | SSA variable unsafe_search | @@ -238,10 +242,12 @@ nodes subpaths #select | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | -| PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:46:27:46:68 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | -| PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:60:27:60:58 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | -| PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:90:29:90:47 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | -| PoC/server.py:100:9:100:14 | ControlFlowNode for mapper | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:100:9:100:14 | ControlFlowNode for mapper | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:31:34:31:51 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:31:34:31:51 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:47:27:47:68 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:47:27:47:68 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:61:27:61:58 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:61:27:61:58 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:91:29:91:47 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:91:29:91:47 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:92:38:92:56 | ControlFlowNode for Dict | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:92:38:92:56 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| PoC/server.py:102:9:102:14 | ControlFlowNode for mapper | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:102:9:102:14 | ControlFlowNode for mapper | This NoSQL query contains an unsanitized $@. | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | This NoSQL query contains an unsanitized $@. | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | This NoSQL query contains an unsanitized $@. | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py index 893d972baad..956d6c921ca 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/PoC/server.py @@ -28,6 +28,7 @@ def as_dict(): # Use {"$ne": 1} as author # Found by http://127.0.0.1:5000/dict?author={%22$ne%22:1} post = posts.find_one({'author': author}) # $ result=BAD + post = posts.find_one(filter={'author': author}) # $ result=BAD return show_post(post, author) @app.route('/dictHardened', methods=['GET']) @@ -88,6 +89,7 @@ def by_group(): # making the query `this.author === "" | "a" === "a"` # Found by http://127.0.0.1:5000/byGroup?author=%22%20|%20%22a%22%20===%20%22a post = posts.aggregate([{ "$group": group }]).next() # $ result=BAD + post = posts.aggregate(pipeline=[{ "$group": group }]).next() # $ result=BAD return show_post(post, author) # works with pymongo 3.9, `map_reduce` is removed in pymongo 4.0 From eb9b32473e7546374c9d9bf509bb665b2b91749e Mon Sep 17 00:00:00 2001 From: Mathew Payne Date: Fri, 29 Sep 2023 14:26:39 +0100 Subject: [PATCH 759/788] Add support for ModelViewSet functions --- python/ql/lib/semmle/python/frameworks/RestFramework.qll | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/frameworks/RestFramework.qll b/python/ql/lib/semmle/python/frameworks/RestFramework.qll index 23b32946e31..49eb3cbe7e6 100644 --- a/python/ql/lib/semmle/python/frameworks/RestFramework.qll +++ b/python/ql/lib/semmle/python/frameworks/RestFramework.qll @@ -131,7 +131,10 @@ private module RestFramework { "initial", "http_method_not_allowed", "permission_denied", "throttled", "get_authenticate_header", "perform_content_negotiation", "perform_authentication", "check_permissions", "check_object_permissions", "check_throttles", "determine_version", - "initialize_request", "finalize_response", "dispatch", "options" + "initialize_request", "finalize_response", "dispatch", "options", + // ModelViewSet + // https://github.com/encode/django-rest-framework/blob/master/rest_framework/viewsets.py + "create", "retrieve", "update", "partial_update", "destroy", "list" ] } } From 19c93b0228865772bdfb8ed21d2a13d9dc7d2e40 Mon Sep 17 00:00:00 2001 From: Mathew Payne Date: Fri, 29 Sep 2023 14:41:57 +0100 Subject: [PATCH 760/788] Add RestFramework tests --- .../frameworks/rest_framework/testapp/urls.py | 1 + .../rest_framework/testapp/views.py | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/python/ql/test/library-tests/frameworks/rest_framework/testapp/urls.py b/python/ql/test/library-tests/frameworks/rest_framework/testapp/urls.py index 856e8e031bb..98b2c6c48a0 100644 --- a/python/ql/test/library-tests/frameworks/rest_framework/testapp/urls.py +++ b/python/ql/test/library-tests/frameworks/rest_framework/testapp/urls.py @@ -15,4 +15,5 @@ urlpatterns = [ path("function-based-view/", views.function_based_view), # $routeSetup="function-based-view/" path("cookie-test/", views.cookie_test), # $routeSetup="function-based-view/" path("exception-test/", views.exception_test), # $routeSetup="exception-test/" + path("viewset-entrypoints-test/", views.EntrypointViewSet.as_view()) # $routeSetup="viewset-entrypoints-test/" ] diff --git a/python/ql/test/library-tests/frameworks/rest_framework/testapp/views.py b/python/ql/test/library-tests/frameworks/rest_framework/testapp/views.py index 47e304f9f7b..d4b39f954f4 100644 --- a/python/ql/test/library-tests/frameworks/rest_framework/testapp/views.py +++ b/python/ql/test/library-tests/frameworks/rest_framework/testapp/views.py @@ -19,6 +19,28 @@ class BarViewSet(viewsets.ModelViewSet): queryset = Bar.objects.all() serializer_class = BarSerializer +class EntrypointViewSet(viewsets.ModelViewSet): + queryset = Bar.objects.all() + serializer_class = BarSerializer + + def create(self, request, *args, **kwargs): + return Response("create") + + def retrieve(self, request, *args, **kwargs): + return Response("retrieve") + + def update(self, request, *args, **kwargs): + return Response("update") + + def partial_update(self, request, *args, **kwargs): + return Response("partial_update") + + def destroy(self, request, *args, **kwargs): + return Response("destroy") + + def list(self, request, *args, **kwargs): + return Response("list") + # class based view # see https://www.django-rest-framework.org/api-guide/views/#class-based-views From 41bb8377d962b33eac4a85fe926139fe10348a6b Mon Sep 17 00:00:00 2001 From: Mathew Payne Date: Fri, 29 Sep 2023 14:44:36 +0100 Subject: [PATCH 761/788] Add change notes --- .../2023-09-29-django-restframework-improvements.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 python/ql/lib/change-notes/2023-09-29-django-restframework-improvements.md diff --git a/python/ql/lib/change-notes/2023-09-29-django-restframework-improvements.md b/python/ql/lib/change-notes/2023-09-29-django-restframework-improvements.md new file mode 100644 index 00000000000..cf0c93fca2b --- /dev/null +++ b/python/ql/lib/change-notes/2023-09-29-django-restframework-improvements.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Django Rest Framework better handles custom `ModelViewSet` classes functions \ No newline at end of file From 925d8e21cece93420df9513c6f054d5a8709dd4c Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Fri, 29 Sep 2023 09:45:34 -0400 Subject: [PATCH 762/788] Apply suggestions from code review Co-authored-by: Felicity Chapman --- docs/codeql/query-help/java.rst | 2 +- docs/codeql/query-help/javascript.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/codeql/query-help/java.rst b/docs/codeql/query-help/java.rst index 2348dbb2423..7a6a4b73f6e 100644 --- a/docs/codeql/query-help/java.rst +++ b/docs/codeql/query-help/java.rst @@ -1,5 +1,5 @@ CodeQL query help for Java and Kotlin -========================== +===================================== .. include:: ../reusables/query-help-overview.rst diff --git a/docs/codeql/query-help/javascript.rst b/docs/codeql/query-help/javascript.rst index 5ca017050cd..88c45788dd1 100644 --- a/docs/codeql/query-help/javascript.rst +++ b/docs/codeql/query-help/javascript.rst @@ -1,5 +1,5 @@ CodeQL query help for JavaScript and TypeScript -================================ +=============================================== .. include:: ../reusables/query-help-overview.rst From c0653adc85573640a2d118f27b26e45fe95c7a70 Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Fri, 29 Sep 2023 09:57:48 -0400 Subject: [PATCH 763/788] remove trailing space --- .../customizing-library-models-for-java.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst index 87304d779c8..cbd8d6c1fad 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java.rst @@ -3,7 +3,7 @@ :orphan: :nosearch: -Customizing Library Models for Java and Kotlin +Customizing Library Models for Java and Kotlin ============================================== .. include:: ../reusables/beta-note-customizing-library-models.rst From b6b554f384edd25bdd47e22b2c30920a391917ad Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Fri, 29 Sep 2023 10:07:22 -0400 Subject: [PATCH 764/788] Apply suggestions from code review Co-authored-by: Henry Mercer --- docs/codeql/codeql-language-guides/javadoc.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/codeql/codeql-language-guides/javadoc.rst b/docs/codeql/codeql-language-guides/javadoc.rst index 0b18e97373e..c1bce79a0a2 100644 --- a/docs/codeql/codeql-language-guides/javadoc.rst +++ b/docs/codeql/codeql-language-guides/javadoc.rst @@ -3,9 +3,7 @@ Javadoc ======= -You can use CodeQL to find errors in Javadoc comments in Java/Kotlin code. - -.. include:: ../reusables/kotlin-beta-note.rst +You can use CodeQL to find errors in Javadoc comments in Java code. About analyzing Javadoc ----------------------- From 3162033d56228a2864bfed5da7ab31dad532621f Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 29 Sep 2023 16:21:04 +0200 Subject: [PATCH 765/788] Python: Make tests run for django rest framework --- .../rest_framework/ConceptsTest.expected | 2 +- .../frameworks/rest_framework/ConceptsTest.ql | 6 +++ .../frameworks/rest_framework/options | 1 + .../frameworks/rest_framework/taint_test.py | 4 +- .../frameworks/rest_framework/testapp/urls.py | 14 ++--- .../rest_framework/testapp/views.py | 54 +++++++++---------- 6 files changed, 44 insertions(+), 37 deletions(-) create mode 100644 python/ql/test/library-tests/frameworks/rest_framework/options diff --git a/python/ql/test/library-tests/frameworks/rest_framework/ConceptsTest.expected b/python/ql/test/library-tests/frameworks/rest_framework/ConceptsTest.expected index 48de9172b36..8ec8033d086 100644 --- a/python/ql/test/library-tests/frameworks/rest_framework/ConceptsTest.expected +++ b/python/ql/test/library-tests/frameworks/rest_framework/ConceptsTest.expected @@ -1,2 +1,2 @@ -failures testFailures +failures diff --git a/python/ql/test/library-tests/frameworks/rest_framework/ConceptsTest.ql b/python/ql/test/library-tests/frameworks/rest_framework/ConceptsTest.ql index b557a0bccb6..c379783c55e 100644 --- a/python/ql/test/library-tests/frameworks/rest_framework/ConceptsTest.ql +++ b/python/ql/test/library-tests/frameworks/rest_framework/ConceptsTest.ql @@ -1,2 +1,8 @@ import python import experimental.meta.ConceptsTest + +class DedicatedTest extends DedicatedResponseTest { + DedicatedTest() { this = "response_test.py" } + + override predicate isDedicatedFile(File file) { file.getShortName() = this } +} diff --git a/python/ql/test/library-tests/frameworks/rest_framework/options b/python/ql/test/library-tests/frameworks/rest_framework/options new file mode 100644 index 00000000000..126071f32b6 --- /dev/null +++ b/python/ql/test/library-tests/frameworks/rest_framework/options @@ -0,0 +1 @@ +semmle-extractor-options: --max-import-depth=1 -r testapp diff --git a/python/ql/test/library-tests/frameworks/rest_framework/taint_test.py b/python/ql/test/library-tests/frameworks/rest_framework/taint_test.py index 4a22e03b563..ff30b00ca99 100644 --- a/python/ql/test/library-tests/frameworks/rest_framework/taint_test.py +++ b/python/ql/test/library-tests/frameworks/rest_framework/taint_test.py @@ -81,7 +81,7 @@ def test_taint(request: Request, routed_param): # $ requestHandler routedParamet ) ensure_not_tainted(request.user.password) - return Response("ok") # $ HttpResponse responseBody="ok" + return Response("ok") # $ HttpResponse # class based view @@ -105,7 +105,7 @@ class MyClass(APIView): # same as for standard Django view ensure_tainted(self.args, self.kwargs) # $ tainted - return Response("ok") # $ HttpResponse responseBody="ok" + return Response("ok") # $ HttpResponse diff --git a/python/ql/test/library-tests/frameworks/rest_framework/testapp/urls.py b/python/ql/test/library-tests/frameworks/rest_framework/testapp/urls.py index 98b2c6c48a0..23b90ef7b39 100644 --- a/python/ql/test/library-tests/frameworks/rest_framework/testapp/urls.py +++ b/python/ql/test/library-tests/frameworks/rest_framework/testapp/urls.py @@ -9,11 +9,11 @@ router.register(r"foos", views.FooViewSet) router.register(r"bars", views.BarViewSet) urlpatterns = [ - path("", include(router.urls)), - path("api-auth/", include("rest_framework.urls", namespace="rest_framework")), - path("class-based-view/", views.MyClass.as_view()), # $routeSetup="lcass-based-view/" - path("function-based-view/", views.function_based_view), # $routeSetup="function-based-view/" - path("cookie-test/", views.cookie_test), # $routeSetup="function-based-view/" - path("exception-test/", views.exception_test), # $routeSetup="exception-test/" - path("viewset-entrypoints-test/", views.EntrypointViewSet.as_view()) # $routeSetup="viewset-entrypoints-test/" + path("", include(router.urls)), # $ routeSetup="" + path("api-auth/", include("rest_framework.urls", namespace="rest_framework")), # $ routeSetup="api-auth/" + path("class-based-view/", views.MyClass.as_view()), # $ routeSetup="class-based-view/" + path("function-based-view/", views.function_based_view), # $ routeSetup="function-based-view/" + path("cookie-test/", views.cookie_test), # $ routeSetup="cookie-test/" + path("exception-test/", views.exception_test), # $ routeSetup="exception-test/" + path("viewset-entrypoints-test/", views.EntrypointViewSet.as_view()) # $ routeSetup="viewset-entrypoints-test/" ] diff --git a/python/ql/test/library-tests/frameworks/rest_framework/testapp/views.py b/python/ql/test/library-tests/frameworks/rest_framework/testapp/views.py index d4b39f954f4..6affb5dac4b 100644 --- a/python/ql/test/library-tests/frameworks/rest_framework/testapp/views.py +++ b/python/ql/test/library-tests/frameworks/rest_framework/testapp/views.py @@ -23,37 +23,37 @@ class EntrypointViewSet(viewsets.ModelViewSet): queryset = Bar.objects.all() serializer_class = BarSerializer - def create(self, request, *args, **kwargs): - return Response("create") + def create(self, request, *args, **kwargs): # $ requestHandler + return Response("create") # $ HttpResponse - def retrieve(self, request, *args, **kwargs): - return Response("retrieve") + def retrieve(self, request, *args, **kwargs): # $ requestHandler + return Response("retrieve") # $ HttpResponse - def update(self, request, *args, **kwargs): - return Response("update") - - def partial_update(self, request, *args, **kwargs): - return Response("partial_update") - - def destroy(self, request, *args, **kwargs): - return Response("destroy") - - def list(self, request, *args, **kwargs): - return Response("list") + def update(self, request, *args, **kwargs): # $ requestHandler + return Response("update") # $ HttpResponse + + def partial_update(self, request, *args, **kwargs): # $ requestHandler + return Response("partial_update") # $ HttpResponse + + def destroy(self, request, *args, **kwargs): # $ requestHandler + return Response("destroy") # $ HttpResponse + + def list(self, request, *args, **kwargs): # $ requestHandler + return Response("list") # $ HttpResponse # class based view # see https://www.django-rest-framework.org/api-guide/views/#class-based-views class MyClass(APIView): - def initial(self, request, *args, **kwargs): + def initial(self, request, *args, **kwargs): # $ requestHandler # this method will be called before processing any request super().initial(request, *args, **kwargs) - def get(self, request): - return Response("GET request") + def get(self, request): # $ requestHandler + return Response("GET request") # $ HttpResponse - def post(self, request): - return Response("POST request") + def post(self, request): # $ requestHandler + return Response("POST request") # $ HttpResponse # function based view @@ -61,21 +61,21 @@ class MyClass(APIView): @api_view(["GET", "POST"]) -def function_based_view(request: Request): - return Response({"message": "Hello, world!"}) +def function_based_view(request: Request): # $ requestHandler + return Response({"message": "Hello, world!"}) # $ HttpResponse @api_view(["GET", "POST"]) -def cookie_test(request: Request): - resp = Response("wat") +def cookie_test(request: Request): # $ requestHandler + resp = Response("wat") # $ HttpResponse resp.set_cookie("key", "value") # $ CookieWrite CookieName="key" CookieValue="value" - resp.set_cookie(key="key4", value="value") # $ CookieWrite CookieName="key" CookieValue="value" + resp.set_cookie(key="key4", value="value") # $ CookieWrite CookieName="key4" CookieValue="value" resp.headers["Set-Cookie"] = "key2=value2" # $ MISSING: CookieWrite CookieRawHeader="key2=value2" resp.cookies["key3"] = "value3" # $ CookieWrite CookieName="key3" CookieValue="value3" return resp @api_view(["GET", "POST"]) -def exception_test(request: Request): +def exception_test(request: Request): # $ requestHandler # see https://www.django-rest-framework.org/api-guide/exceptions/ # note: `code details` not exposed by default - raise APIException("exception details", "code details") + raise APIException("exception details", "code details") # $ HttpResponse From f29063bca37874c8fcdee4aa9e96e5872218439f Mon Sep 17 00:00:00 2001 From: Sarita Iyer <66540150+saritai@users.noreply.github.com> Date: Fri, 29 Sep 2023 10:44:27 -0400 Subject: [PATCH 766/788] Update codeql-for-java.rst --- docs/codeql/codeql-language-guides/codeql-for-java.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/codeql-for-java.rst b/docs/codeql/codeql-language-guides/codeql-for-java.rst index 13fa4c92625..97f212ac64b 100644 --- a/docs/codeql/codeql-language-guides/codeql-for-java.rst +++ b/docs/codeql/codeql-language-guides/codeql-for-java.rst @@ -40,7 +40,7 @@ Experiment and learn how to write effective and efficient queries for CodeQL dat - :doc:`Annotations in Java and Kotlin `: CodeQL databases of Java/Kotlin projects contain information about all annotations attached to program elements. -- :doc:`Javadoc `: You can use CodeQL to find errors in Javadoc comments in Java/Kotlin code. +- :doc:`Javadoc `: You can use CodeQL to find errors in Javadoc comments in Java code. - :doc:`Working with source locations `: You can use the location of entities within Java/Kotlin code to look for potential errors. Locations allow you to deduce the presence, or absence, of white space which, in some cases, may indicate a problem. From cf98b84279138341bf585eddf1d2fc4c53df8e42 Mon Sep 17 00:00:00 2001 From: Aditya Sharad <6874315+adityasharad@users.noreply.github.com> Date: Fri, 29 Sep 2023 15:19:45 -0700 Subject: [PATCH 767/788] ATM/JS: Remove test workflow These queries are deprecated, and upcoming nightly CLIs will no longer support their experimental functionality. To avoid test breakage, remove this workflow. The code and tests can be cleaned up as future follow-up. --- .github/workflows/js-ml-tests.yml | 65 ------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 .github/workflows/js-ml-tests.yml diff --git a/.github/workflows/js-ml-tests.yml b/.github/workflows/js-ml-tests.yml deleted file mode 100644 index 866ca14053e..00000000000 --- a/.github/workflows/js-ml-tests.yml +++ /dev/null @@ -1,65 +0,0 @@ -name: JS ML-powered queries tests - -on: - push: - paths: - - "javascript/ql/experimental/adaptivethreatmodeling/**" - - .github/workflows/js-ml-tests.yml - - .github/actions/fetch-codeql/action.yml - - codeql-workspace.yml - branches: - - main - - "rc/*" - pull_request: - paths: - - "javascript/ql/experimental/adaptivethreatmodeling/**" - - .github/workflows/js-ml-tests.yml - - .github/actions/fetch-codeql/action.yml - - codeql-workspace.yml - workflow_dispatch: - -defaults: - run: - working-directory: javascript/ql/experimental/adaptivethreatmodeling - -jobs: - qltest: - name: Test QL - runs-on: ubuntu-latest-xl - steps: - - uses: actions/checkout@v4 - - - uses: ./.github/actions/fetch-codeql - - - name: Install pack dependencies - run: | - for pack in modelbuilding src test; do - codeql pack install --mode verify -- "${pack}" - done - - - name: Cache compilation cache - id: query-cache - uses: ./.github/actions/cache-query-compilation - with: - key: js-ml-test - - - name: Check QL compilation - run: | - codeql query compile \ - --check-only \ - --ram 50000 \ - --additional-packs "${{ github.workspace }}" \ - --threads=0 \ - --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" \ - -- \ - lib modelbuilding src - - - name: Run QL tests - run: | - codeql test run \ - --threads=0 \ - --ram 50000 \ - --additional-packs "${{ github.workspace }}" \ - --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" \ - -- \ - test \ No newline at end of file From a86b0105040d3d0d1112dcc39618e210b4c1d49c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Oct 2023 03:33:25 +0000 Subject: [PATCH 768/788] Bump regex from 1.9.5 to 1.9.6 in /ql Bumps [regex](https://github.com/rust-lang/regex) from 1.9.5 to 1.9.6. - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/compare/1.9.5...1.9.6) --- updated-dependencies: - dependency-name: regex dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- ql/Cargo.lock | Bin 32175 -> 32175 bytes ql/buramu/Cargo.toml | 2 +- ql/extractor/Cargo.toml | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ql/Cargo.lock b/ql/Cargo.lock index 1bae58542a075958323dbb746d07229facc66116..fc2ac553d7a1243909e37f9961bcd161fadbe0f7 100644 GIT binary patch delta 186 zcmWN}y9ok85P)GW63jhY5KLy@yU|5HG7&47*_*)@%N9kNagsqX0%ZM#R9mFOf}JWo|9kBwEY{8K9D3KU4z6Ui#dMh=r70 MZSvpe@5^oxe^5+0HUIzs diff --git a/ql/buramu/Cargo.toml b/ql/buramu/Cargo.toml index 8d922bd032b..e34e1a17f2a 100644 --- a/ql/buramu/Cargo.toml +++ b/ql/buramu/Cargo.toml @@ -9,4 +9,4 @@ edition = "2018" lazy_static = "1.4.0" chrono = "0.4.31" rayon = "1.8.0" -regex = "1.9.5" +regex = "1.9.6" diff --git a/ql/extractor/Cargo.toml b/ql/extractor/Cargo.toml index 47f3016e86f..d88c365dcd9 100644 --- a/ql/extractor/Cargo.toml +++ b/ql/extractor/Cargo.toml @@ -16,5 +16,5 @@ clap = { version = "4.2", features = ["derive"] } tracing = "0.1" tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } rayon = "1.8.0" -regex = "1.9.5" +regex = "1.9.6" codeql-extractor = { path = "../../shared/tree-sitter-extractor" } From 4fa93a077cabcf2e757642a39ef2d5d381ffcc92 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 2 Oct 2023 09:02:53 +0200 Subject: [PATCH 769/788] Address review comments --- .../codeql/dataflow/internal/DataFlowImpl.qll | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 171f943a25a..8e71a5b851c 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1327,7 +1327,7 @@ module MakeImpl { ) or // flow out of a callable - fwdFlowOut(node, state, cc, summaryCtx, argT, argAp, t, ap, apa) + fwdFlowOut(_, _, node, state, cc, summaryCtx, argT, argAp, t, ap, apa) or // flow through a callable exists( @@ -1633,14 +1633,6 @@ module MakeImpl { ) } - pragma[nomagic] - private predicate fwdFlowOut( - NodeEx out, FlowState state, CcNoCall outercc, ParamNodeOption summaryCtx, TypOption argT, - ApOption argAp, Typ t, Ap ap, ApApprox apa - ) { - fwdFlowOut(_, _, out, state, outercc, summaryCtx, argT, argAp, t, ap, apa) - } - private module FwdTypeFlowInput implements TypeFlowInput { predicate enableTypeFlow = Param::enableTypeFlow/0; @@ -1654,7 +1646,7 @@ module MakeImpl { pragma[nomagic] private predicate dataFlowTakenCallEdgeIn0( - DataFlowCall call, DataFlowCallable c, ParamNodeEx p, FlowState state, Cc innercc, + DataFlowCall call, DataFlowCallable c, ParamNodeEx p, FlowState state, CcCall innercc, Typ t, Ap ap, boolean cc ) { FwdFlowIn::fwdFlowIn(call, c, p, state, _, innercc, _, _, _, t, From de45a9b137c738277e66d59b3fefeef95f52322b Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Mon, 2 Oct 2023 12:48:58 +0200 Subject: [PATCH 770/788] C#: Extract compilation DB entity in standalone mode --- .../DependencyManager.cs | 18 +----- .../Extractor.cs | 57 ++++++++++++------- .../Entities/Assembly.cs | 4 +- .../Entities/Attribute.cs | 5 +- .../Entities/CachedSymbol.cs | 2 +- .../PreprocessorDirective.cs | 7 +-- .../Entities/Types/NamedType.cs | 2 +- .../Extractor/Analyser.cs | 31 ++++++++++ .../Extractor/Extractor.cs | 4 +- .../Extractor}/StandaloneAnalyser.cs | 8 ++- .../Extractor/TracingAnalyser.cs | 38 +------------ .../Populators/TypeContainerVisitor.cs | 3 - .../Semmle.Extraction/Extractor/Extractor.cs | 4 +- .../Extractor/StandaloneExtractor.cs | 2 +- .../Extractor/TracingExtractor.cs | 4 +- csharp/extractor/Semmle.Util/FileUtils.cs | 32 +++++++++++ 16 files changed, 120 insertions(+), 101 deletions(-) rename csharp/extractor/{Semmle.Extraction.CSharp.Standalone => Semmle.Extraction.CSharp/Extractor}/StandaloneAnalyser.cs (71%) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 95b6cf57b9a..e4961c50661 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -60,7 +60,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching this.progressMonitor.FindingFiles(srcDir); packageDirectory = new TemporaryDirectory(ComputeTempDirectory(sourceDir.FullName)); - tempWorkingDirectory = new TemporaryDirectory(GetTemporaryWorkingDirectory(out cleanupTempWorkingDirectory)); + tempWorkingDirectory = new TemporaryDirectory(FileUtils.GetTemporaryWorkingDirectory(out cleanupTempWorkingDirectory)); var allFiles = GetAllFiles(); var binaryFileExtensions = new HashSet(new[] { ".dll", ".exe" }); // TODO: add more binary file extensions. @@ -286,22 +286,6 @@ namespace Semmle.Extraction.CSharp.DependencyFetching return Path.Combine(Path.GetTempPath(), "GitHub", "packages", sb.ToString()); } - private static string GetTemporaryWorkingDirectory(out bool cleanupTempWorkingDirectory) - { - cleanupTempWorkingDirectory = false; - var tempFolder = EnvironmentVariables.GetScratchDirectory(); - - if (string.IsNullOrEmpty(tempFolder)) - { - var tempPath = Path.GetTempPath(); - var name = Guid.NewGuid().ToString("N").ToUpper(); - tempFolder = Path.Combine(tempPath, "GitHub", name); - cleanupTempWorkingDirectory = true; - } - - return tempFolder; - } - /// /// Creates a temporary directory with the given subfolder name. /// The created directory might be inside the repo folder, and it is deleted when the object is disposed. diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Extractor.cs b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Extractor.cs index 0724ad88dfd..47ae7f92986 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Extractor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Extractor.cs @@ -30,29 +30,46 @@ namespace Semmle.Extraction.CSharp.Standalone IProgressMonitor progressMonitor, Stopwatch stopwatch) { - CSharp.Extractor.Analyse(stopwatch, analyser, options, - references => GetResolvedReferencesStandalone(referencePaths, references), - (analyser, syntaxTrees) => CSharp.Extractor.ReadSyntaxTrees(sources, analyser, null, null, syntaxTrees), - (syntaxTrees, references) => CSharpCompilation.Create( - "csharp.dll", syntaxTrees, references, new CSharpCompilationOptions(OutputKind.ConsoleApplication, allowUnsafe: true) - ), - (compilation, options) => analyser.Initialize(compilation, options), - () => { }, - _ => { }, - () => + var output = FileUtils.CreateTemporaryFile(".dll", out var shouldCleanUpContainingFolder); + + try + { + CSharp.Extractor.Analyse(stopwatch, analyser, options, + references => GetResolvedReferencesStandalone(referencePaths, references), + (analyser, syntaxTrees) => CSharp.Extractor.ReadSyntaxTrees(sources, analyser, null, null, syntaxTrees), + (syntaxTrees, references) => CSharpCompilation.Create( + output.Name, syntaxTrees, references, new CSharpCompilationOptions(OutputKind.ConsoleApplication, allowUnsafe: true) + ), + (compilation, options) => analyser.Initialize(output.FullName, compilation, options), + _ => { }, + () => + { + foreach (var type in analyser.MissingNamespaces) + { + progressMonitor.MissingNamespace(type); + } + + foreach (var type in analyser.MissingTypes) + { + progressMonitor.MissingType(type); + } + + progressMonitor.MissingSummary(analyser.MissingTypes.Count(), analyser.MissingNamespaces.Count()); + }); + } + finally + { + try { - foreach (var type in analyser.MissingNamespaces) + FileUtils.TryDelete(output.FullName); + if (shouldCleanUpContainingFolder) { - progressMonitor.MissingNamespace(type); + output.Directory?.Delete(true); } - - foreach (var type in analyser.MissingTypes) - { - progressMonitor.MissingType(type); - } - - progressMonitor.MissingSummary(analyser.MissingTypes.Count(), analyser.MissingNamespaces.Count()); - }); + } + catch + { } + } } private static void ExtractStandalone( diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Assembly.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Assembly.cs index 3a326a5c019..a997b7129df 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Assembly.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Assembly.cs @@ -16,7 +16,7 @@ namespace Semmle.Extraction.CSharp.Entities if (init is null) { // This is the output assembly - assemblyPath = ((TracingExtractor)cx.Extractor).OutputPath; + assemblyPath = cx.Extractor.OutputPath; assembly = cx.Compilation.Assembly; } else @@ -63,8 +63,6 @@ namespace Semmle.Extraction.CSharp.Entities public static Assembly CreateOutputAssembly(Context cx) { - if (cx.Extractor.Mode.HasFlag(ExtractorMode.Standalone)) - throw new InternalError("Attempting to create the output assembly in standalone extraction mode"); return AssemblyConstructorFactory.Instance.CreateEntity(cx, outputAssemblyCacheKey, null); } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Attribute.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Attribute.cs index 4d5eb76f57d..d0130385f42 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Attribute.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Attribute.cs @@ -63,10 +63,7 @@ namespace Semmle.Extraction.CSharp.Entities if (attributeSyntax is not null) { - if (!Context.Extractor.Mode.HasFlag(ExtractorMode.Standalone)) - { - trapFile.attribute_location(this, Assembly.CreateOutputAssembly(Context)); - } + trapFile.attribute_location(this, Assembly.CreateOutputAssembly(Context)); TypeMention.Create(Context, attributeSyntax.Name, this, type); } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/CachedSymbol.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/CachedSymbol.cs index 1b56a72a87d..cc8357ee4ca 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/CachedSymbol.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/CachedSymbol.cs @@ -97,7 +97,7 @@ namespace Semmle.Extraction.CSharp.Entities { // Some built in operators lack locations, so loc is null. yield return Context.CreateLocation(ReportingLocation); - if (!Context.Extractor.Mode.HasFlag(ExtractorMode.Standalone) && loc.Kind == LocationKind.SourceFile) + if (loc.Kind == LocationKind.SourceFile) yield return Assembly.CreateOutputAssembly(Context); } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/PreprocessorDirectives/PreprocessorDirective.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/PreprocessorDirectives/PreprocessorDirective.cs index 68783da51db..da39613e124 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/PreprocessorDirectives/PreprocessorDirective.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/PreprocessorDirectives/PreprocessorDirective.cs @@ -15,11 +15,8 @@ namespace Semmle.Extraction.CSharp.Entities trapFile.preprocessor_directive_active(this, Symbol.IsActive); trapFile.preprocessor_directive_location(this, Context.CreateLocation(ReportingLocation)); - if (!Context.Extractor.Mode.HasFlag(ExtractorMode.Standalone)) - { - var compilation = Compilation.Create(Context); - trapFile.preprocessor_directive_compilation(this, compilation); - } + var compilation = Compilation.Create(Context); + trapFile.preprocessor_directive_compilation(this, compilation); } protected abstract void PopulatePreprocessor(TextWriter trapFile); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs index e2dafc4df37..93a9add36c4 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs @@ -108,7 +108,7 @@ namespace Semmle.Extraction.CSharp.Entities foreach (var l in GetLocations(Symbol)) yield return Context.CreateLocation(l); - if (!Context.Extractor.Mode.HasFlag(ExtractorMode.Standalone) && Symbol.DeclaringSyntaxReferences.Any()) + if (Symbol.DeclaringSyntaxReferences.Any()) yield return Assembly.CreateOutputAssembly(Context); } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Analyser.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Analyser.cs index 5f9c281bdf7..69fa75d8b2c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Analyser.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Analyser.cs @@ -19,6 +19,8 @@ namespace Semmle.Extraction.CSharp protected Extraction.Extractor? extractor; protected CSharpCompilation? compilation; protected CommonOptions? options; + private protected Entities.Compilation? compilationEntity; + private IDisposable? compilationTrapFile; private readonly object progressMutex = new object(); @@ -226,8 +228,35 @@ namespace Semmle.Extraction.CSharp } } + private void DoAnalyseCompilation() + { + try + { + var assemblyPath = extractor.OutputPath; + var transformedAssemblyPath = PathTransformer.Transform(assemblyPath); + var assembly = compilation.Assembly; + var trapWriter = transformedAssemblyPath.CreateTrapWriter(Logger, options.TrapCompression, discardDuplicates: false); + compilationTrapFile = trapWriter; // Dispose later + var cx = new Context(extractor, compilation.Clone(), trapWriter, new AssemblyScope(assembly, assemblyPath), addAssemblyTrapPrefix); + + compilationEntity = Entities.Compilation.Create(cx); + } + catch (Exception ex) // lgtm[cs/catch-of-all-exceptions] + { + Logger.Log(Severity.Error, " Unhandled exception analyzing {0}: {1}", "compilation", ex); + } + } + #nullable restore warnings + /// + /// Extracts compilation-wide entities, such as compilations and compiler diagnostics. + /// + public void AnalyseCompilation() + { + extractionTasks.Add(() => DoAnalyseCompilation()); + } + private static bool FileIsUpToDate(string src, string dest) { return File.Exists(dest) && @@ -275,6 +304,8 @@ namespace Semmle.Extraction.CSharp Logger.Log(Severity.Info, "EXTRACTION SUCCEEDED in {0}", stopWatch.Elapsed); Logger.Dispose(); + + compilationTrapFile?.Dispose(); } /// diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs index 33674808f90..5d5bc5860f4 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs @@ -302,7 +302,6 @@ namespace Semmle.Extraction.CSharp Func, IEnumerable> getSyntaxTreeTasks, Func, IEnumerable, CSharpCompilation> getCompilation, Action initializeAnalyser, - Action analyseCompilation, Action logPerformance, Action postProcess) { @@ -332,7 +331,7 @@ namespace Semmle.Extraction.CSharp var compilation = getCompilation(syntaxTrees, references); initializeAnalyser(compilation, options); - analyseCompilation(); + analyser.AnalyseCompilation(); analyser.AnalyseReferences(); foreach (var tree in compilation.SyntaxTrees) @@ -416,7 +415,6 @@ namespace Semmle.Extraction.CSharp ); }, (compilation, options) => analyser.EndInitialize(compilerArguments, options, compilation), - () => analyser.AnalyseCompilation(), performance => analyser.LogPerformance(performance), () => { }); } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/StandaloneAnalyser.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/StandaloneAnalyser.cs similarity index 71% rename from csharp/extractor/Semmle.Extraction.CSharp.Standalone/StandaloneAnalyser.cs rename to csharp/extractor/Semmle.Extraction.CSharp/Extractor/StandaloneAnalyser.cs index ddc9b60085b..3ae7b8a1d0e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/StandaloneAnalyser.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/StandaloneAnalyser.cs @@ -1,4 +1,6 @@ +using System; using System.Collections.Generic; +using System.IO; using Microsoft.CodeAnalysis.CSharp; using Semmle.Util.Logging; @@ -11,13 +13,15 @@ namespace Semmle.Extraction.CSharp { } - public void Initialize(CSharpCompilation compilationIn, CommonOptions options) + public void Initialize(string outputPath, CSharpCompilation compilationIn, CommonOptions options) { compilation = compilationIn; - extractor = new StandaloneExtractor(Logger, PathTransformer, options); + extractor = new StandaloneExtractor(outputPath, Logger, PathTransformer, options); this.options = options; LogExtractorInfo(Extraction.Extractor.Version); SetReferencePaths(); + + Entities.Compilation.Settings = (Directory.GetCurrentDirectory(), Array.Empty()); } #nullable disable warnings diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/TracingAnalyser.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/TracingAnalyser.cs index 27eeb58e536..c6c8cb0f7aa 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/TracingAnalyser.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/TracingAnalyser.cs @@ -9,11 +9,8 @@ using Semmle.Util.Logging; namespace Semmle.Extraction.CSharp { - public class TracingAnalyser : Analyser, IDisposable + public class TracingAnalyser : Analyser { - private Entities.Compilation? compilationEntity; - private IDisposable? compilationTrapFile; - private bool init; public TracingAnalyser(IProgressMonitor pm, ILogger logger, bool addAssemblyTrapPrefix, PathTransformer pathTransformer) @@ -55,20 +52,6 @@ namespace Semmle.Extraction.CSharp CompilationErrors += FilteredDiagnostics.Count(); } - public override void Dispose() - { - compilationTrapFile?.Dispose(); - base.Dispose(); - } - - /// - /// Extracts compilation-wide entities, such as compilations and compiler diagnostics. - /// - public void AnalyseCompilation() - { - extractionTasks.Add(() => DoAnalyseCompilation()); - } - /// /// Logs information about the extractor, as well as the arguments to Roslyn. /// @@ -193,25 +176,6 @@ namespace Semmle.Extraction.CSharp } } - private void DoAnalyseCompilation() - { - try - { - var assemblyPath = ((TracingExtractor?)extractor).OutputPath; - var transformedAssemblyPath = PathTransformer.Transform(assemblyPath); - var assembly = compilation.Assembly; - var trapWriter = transformedAssemblyPath.CreateTrapWriter(Logger, options.TrapCompression, discardDuplicates: false); - compilationTrapFile = trapWriter; // Dispose later - var cx = new Context(extractor, compilation.Clone(), trapWriter, new AssemblyScope(assembly, assemblyPath), addAssemblyTrapPrefix); - - compilationEntity = Entities.Compilation.Create(cx); - } - catch (Exception ex) // lgtm[cs/catch-of-all-exceptions] - { - Logger.Log(Severity.Error, " Unhandled exception analyzing {0}: {1}", "compilation", ex); - } - } - public void LogPerformance(Entities.PerformanceMetrics p) => compilationEntity.PopulatePerformance(p); #nullable restore warnings diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Populators/TypeContainerVisitor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Populators/TypeContainerVisitor.cs index 8ffd5df256c..2bd5a9f4e03 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Populators/TypeContainerVisitor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Populators/TypeContainerVisitor.cs @@ -82,9 +82,6 @@ namespace Semmle.Extraction.CSharp.Populators public override void VisitAttributeList(AttributeListSyntax node) { - if (Cx.Extractor.Mode.HasFlag(ExtractorMode.Standalone)) - return; - var outputAssembly = Assembly.CreateOutputAssembly(Cx); var kind = node.Target?.Identifier.Kind() switch { diff --git a/csharp/extractor/Semmle.Extraction/Extractor/Extractor.cs b/csharp/extractor/Semmle.Extraction/Extractor/Extractor.cs index b16022181df..e4284f97cfd 100644 --- a/csharp/extractor/Semmle.Extraction/Extractor/Extractor.cs +++ b/csharp/extractor/Semmle.Extraction/Extractor/Extractor.cs @@ -9,14 +9,16 @@ namespace Semmle.Extraction public abstract class Extractor { public abstract ExtractorMode Mode { get; } + public string OutputPath { get; } /// /// Creates a new extractor instance for one compilation unit. /// /// The object used for logging. /// The object used for path transformations. - protected Extractor(ILogger logger, PathTransformer pathTransformer) + protected Extractor(string outputPath, ILogger logger, PathTransformer pathTransformer) { + OutputPath = outputPath; Logger = logger; PathTransformer = pathTransformer; } diff --git a/csharp/extractor/Semmle.Extraction/Extractor/StandaloneExtractor.cs b/csharp/extractor/Semmle.Extraction/Extractor/StandaloneExtractor.cs index 4244e34795a..d9f8725a1e2 100644 --- a/csharp/extractor/Semmle.Extraction/Extractor/StandaloneExtractor.cs +++ b/csharp/extractor/Semmle.Extraction/Extractor/StandaloneExtractor.cs @@ -11,7 +11,7 @@ namespace Semmle.Extraction /// /// The object used for logging. /// The object used for path transformations. - public StandaloneExtractor(ILogger logger, PathTransformer pathTransformer, CommonOptions options) : base(logger, pathTransformer) + public StandaloneExtractor(string outputPath, ILogger logger, PathTransformer pathTransformer, CommonOptions options) : base(outputPath, logger, pathTransformer) { Mode = ExtractorMode.Standalone; if (options.QlTest) diff --git a/csharp/extractor/Semmle.Extraction/Extractor/TracingExtractor.cs b/csharp/extractor/Semmle.Extraction/Extractor/TracingExtractor.cs index d43dd891bbe..dadda4c8488 100644 --- a/csharp/extractor/Semmle.Extraction/Extractor/TracingExtractor.cs +++ b/csharp/extractor/Semmle.Extraction/Extractor/TracingExtractor.cs @@ -5,7 +5,6 @@ namespace Semmle.Extraction public class TracingExtractor : Extractor { public override ExtractorMode Mode { get; } - public string OutputPath { get; } /// /// Creates a new extractor instance for one compilation unit. @@ -13,9 +12,8 @@ namespace Semmle.Extraction /// The name of the output DLL/EXE, or null if not specified (standalone extraction). /// The object used for logging. /// The object used for path transformations. - public TracingExtractor(string outputPath, ILogger logger, PathTransformer pathTransformer, CommonOptions options) : base(logger, pathTransformer) + public TracingExtractor(string outputPath, ILogger logger, PathTransformer pathTransformer, CommonOptions options) : base(outputPath, logger, pathTransformer) { - OutputPath = outputPath; Mode = ExtractorMode.None; if (options.QlTest) { diff --git a/csharp/extractor/Semmle.Util/FileUtils.cs b/csharp/extractor/Semmle.Util/FileUtils.cs index ad8cb6cbec3..4d21bf3fde8 100644 --- a/csharp/extractor/Semmle.Util/FileUtils.cs +++ b/csharp/extractor/Semmle.Util/FileUtils.cs @@ -143,5 +143,37 @@ namespace Semmle.Util } return nested; } + + public static string GetTemporaryWorkingDirectory(out bool shouldCleanUp) + { + shouldCleanUp = false; + var tempFolder = EnvironmentVariables.GetScratchDirectory(); + + if (string.IsNullOrEmpty(tempFolder)) + { + var tempPath = Path.GetTempPath(); + var name = Guid.NewGuid().ToString("N").ToUpper(); + tempFolder = Path.Combine(tempPath, "GitHub", name); + shouldCleanUp = true; + } + + return tempFolder; + } + + public static FileInfo CreateTemporaryFile(string extension, out bool shouldCleanUpContainingFolder) + { + var tempFolder = GetTemporaryWorkingDirectory(out shouldCleanUpContainingFolder); + Directory.CreateDirectory(tempFolder); + string outputPath; + do + { + outputPath = Path.Combine(tempFolder, Path.GetRandomFileName() + extension); + } + while (File.Exists(outputPath)); + + File.Create(outputPath); + + return new FileInfo(outputPath); + } } } From b2514b3c69a3ddb5d0732d3e717b3eb019c06cad Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Mon, 2 Oct 2023 13:35:16 +0200 Subject: [PATCH 771/788] Adjust expected test output --- .../DiagnosticsAndErrors.expected | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/csharp/ql/test/library-tests/standalone/errorrecovery/DiagnosticsAndErrors.expected b/csharp/ql/test/library-tests/standalone/errorrecovery/DiagnosticsAndErrors.expected index d9d0da247be..125535c32e6 100644 --- a/csharp/ql/test/library-tests/standalone/errorrecovery/DiagnosticsAndErrors.expected +++ b/csharp/ql/test/library-tests/standalone/errorrecovery/DiagnosticsAndErrors.expected @@ -1,4 +1,35 @@ compilationMessages +| errors.cs:6:1:6:22 | CS8019: Unnecessary using directive. | +| errors.cs:6:7:6:21 | CS0246: The type or namespace name 'NoSuchAssembly1' could not be found (are you missing a using directive or an assembly reference?) | +| errors.cs:7:1:7:41 | CS8019: Unnecessary using directive. | +| errors.cs:7:14:7:28 | CS0246: The type or namespace name 'NoSuchAssembly2' could not be found (are you missing a using directive or an assembly reference?) | +| errors.cs:16:9:16:17 | CS0246: The type or namespace name 'ErrorType' could not be found (are you missing a using directive or an assembly reference?) | +| errors.cs:16:19:16:20 | CS0649: Field 'C1.f1' is never assigned to, and will always have its default value null | +| errors.cs:25:18:25:17 | CS1002: ; expected | +| errors.cs:30:3:30:3 | CS1022: Type or namespace definition, or end-of-file expected | +| errors.cs:33:9:33:10 | CS0101: The namespace 'ErrorRecovery' already contains a definition for 'C1' | +| errors.cs:50:12:50:13 | CS0169: The field 'C2.c1' is never used | +| errors.cs:51:21:51:22 | CS1729: 'C2' does not contain a constructor that takes 1 arguments | +| errors.cs:53:9:53:17 | CS0246: The type or namespace name 'ErrorType' could not be found (are you missing a using directive or an assembly reference?) | +| errors.cs:53:21:53:29 | CS0246: The type or namespace name 'ErrorType' could not be found (are you missing a using directive or an assembly reference?) | +| errors.cs:59:21:59:20 | CS1026: ) expected | +| errors.cs:67:22:67:22 | CS0621: 'C3.M()': virtual or abstract members cannot be private | +| errors.cs:72:22:72:22 | CS0621: 'C4.M(int, string, bool, bool)': virtual or abstract members cannot be private | +| errors.cs:74:17:74:17 | CS0219: The variable 'x' is assigned but its value is never used | +| errors.cs:75:17:75:17 | CS0128: A local variable or function named 'x' is already defined in this scope | +| errors.cs:79:11:79:12 | CS0263: Partial declarations of 'C5' must not specify different base classes | +| errors.cs:82:13:82:13 | CS0414: The field 'C5.F' is assigned but its value is never used | +| errors.cs:83:23:83:23 | CS0547: 'C5.M': property or indexer cannot have void type | +| errors.cs:83:23:83:23 | CS0548: 'C5.M': property or indexer must have at least one accessor | +| errors.cs:83:23:83:23 | CS0621: 'C5.M': virtual or abstract members cannot be private | +| errors.cs:86:11:86:12 | CS0101: The namespace 'ErrorRecovery' already contains a definition for 'C5' | +| errors.cs:89:13:89:13 | CS0414: The field 'C5.F' is assigned but its value is never used | +| errors.cs:90:22:90:22 | CS0547: 'C5.M': property or indexer cannot have void type | +| errors.cs:90:22:90:22 | CS0548: 'C5.M': property or indexer must have at least one accessor | +| errors.cs:90:22:90:22 | CS0621: 'C5.M': virtual or abstract members cannot be private | +| errors.cs:91:45:91:45 | CS0103: The name 'x' does not exist in the current context | +| errors.cs:92:45:92:45 | CS0103: The name 'y' does not exist in the current context | +| file://:0:0:0:0 | CS5001: Program does not contain a static 'Main' method suitable for an entry point | extractorMessages | errors.cs:6:1:6:22 | Namespace not found | | errors.cs:22:31:22:32 | Failed to determine type | From f3c5c01ec52f2774771ddc9be34e1ca6c3dafef7 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 2 Oct 2023 17:29:10 +0100 Subject: [PATCH 772/788] Kotlin: Drop support for 1.4.32 We never claimed to support anything < 1.5.0, and compiling with -language-version 1.4 fails as it's not meant to support sealed classes. If we build 1.4.32 with -language-version 1.5 using a 2.0 compiler, then the resulting plugin also fails. --- java/kotlin-extractor/kotlin_plugin_versions.py | 2 +- .../{v_1_4_32 => v_1_5_0}/CommentExtractorLighterAST.kt | 0 .../versions/{v_1_4_32 => v_1_5_0}/ExperimentalCompilerApi.kt | 0 .../kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/FileEntry.kt | 0 .../kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/Functions.kt | 0 .../utils/versions/{v_1_4_32 => v_1_5_0}/IrSymbolInternals.kt | 0 .../versions/{v_1_4_32 => v_1_5_0}/IsUnderscoreParameter.kt | 0 .../versions/{v_1_4_32 => v_1_5_0}/Kotlin2ComponentRegistrar.kt | 0 .../main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/Psi2Ir.kt | 0 .../utils/versions/{v_1_4_32 => v_1_5_0}/ReferenceEntity.kt | 0 .../utils/versions/{v_1_4_32 => v_1_5_0}/SyntheticBodyKind.kt | 0 .../main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/Types.kt | 0 .../main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/UsesK2.kt | 0 .../{v_1_4_32 => v_1_5_0}/allOverriddenIncludingSelf.kt | 0 .../utils/versions/{v_1_4_32 => v_1_5_0}/annotationType.kt | 0 .../main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/copyTo.kt | 0 .../createImplicitParameterDeclarationWithWrappedDescriptor.kt | 0 .../utils/versions/{v_1_4_32 => v_1_5_0}/getFileClassFqName.kt | 0 .../utils/versions/{v_1_4_32 => v_1_5_0}/getKotlinType.kt | 0 .../utils/versions/{v_1_4_32 => v_1_5_0}/packageFqName.kt | 0 .../utils/versions/{v_1_4_32 => v_1_5_0}/withHasQuestionMark.kt | 0 21 files changed, 1 insertion(+), 1 deletion(-) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/CommentExtractorLighterAST.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/ExperimentalCompilerApi.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/FileEntry.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/Functions.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/IrSymbolInternals.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/IsUnderscoreParameter.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/Kotlin2ComponentRegistrar.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/Psi2Ir.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/ReferenceEntity.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/SyntheticBodyKind.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/Types.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/UsesK2.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/allOverriddenIncludingSelf.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/annotationType.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/copyTo.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/createImplicitParameterDeclarationWithWrappedDescriptor.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/getFileClassFqName.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/getKotlinType.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/packageFqName.kt (100%) rename java/kotlin-extractor/src/main/kotlin/utils/versions/{v_1_4_32 => v_1_5_0}/withHasQuestionMark.kt (100%) diff --git a/java/kotlin-extractor/kotlin_plugin_versions.py b/java/kotlin-extractor/kotlin_plugin_versions.py index e783caf4efe..1cf8a9cb0d8 100755 --- a/java/kotlin-extractor/kotlin_plugin_versions.py +++ b/java/kotlin-extractor/kotlin_plugin_versions.py @@ -24,7 +24,7 @@ def version_string_to_tuple(version): # Version number used by CI. ci_version = '1.9.0' -many_versions = [ '1.4.32', '1.5.0', '1.5.10', '1.5.20', '1.5.30', '1.6.0', '1.6.20', '1.7.0', '1.7.20', '1.8.0', '1.9.0-Beta', '1.9.20-Beta' ] +many_versions = [ '1.5.0', '1.5.10', '1.5.20', '1.5.30', '1.6.0', '1.6.20', '1.7.0', '1.7.20', '1.8.0', '1.9.0-Beta', '1.9.20-Beta' ] many_versions_tuples = [version_string_to_tuple(v) for v in many_versions] diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/CommentExtractorLighterAST.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/CommentExtractorLighterAST.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/CommentExtractorLighterAST.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/CommentExtractorLighterAST.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/ExperimentalCompilerApi.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/ExperimentalCompilerApi.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/ExperimentalCompilerApi.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/ExperimentalCompilerApi.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/FileEntry.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/FileEntry.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/FileEntry.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/FileEntry.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Functions.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Functions.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Functions.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Functions.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/IrSymbolInternals.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrSymbolInternals.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/IrSymbolInternals.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrSymbolInternals.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IsUnderscoreParameter.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/IsUnderscoreParameter.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IsUnderscoreParameter.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Kotlin2ComponentRegistrar.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Kotlin2ComponentRegistrar.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Kotlin2ComponentRegistrar.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Kotlin2ComponentRegistrar.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Psi2Ir.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/ReferenceEntity.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/ReferenceEntity.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/ReferenceEntity.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/ReferenceEntity.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/SyntheticBodyKind.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/SyntheticBodyKind.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/SyntheticBodyKind.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/SyntheticBodyKind.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Types.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Types.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/Types.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Types.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/UsesK2.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/UsesK2.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/UsesK2.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/UsesK2.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/allOverriddenIncludingSelf.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/allOverriddenIncludingSelf.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/allOverriddenIncludingSelf.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/allOverriddenIncludingSelf.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/annotationType.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/annotationType.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/annotationType.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/annotationType.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/copyTo.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/copyTo.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/copyTo.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/copyTo.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/createImplicitParameterDeclarationWithWrappedDescriptor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/createImplicitParameterDeclarationWithWrappedDescriptor.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/createImplicitParameterDeclarationWithWrappedDescriptor.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/createImplicitParameterDeclarationWithWrappedDescriptor.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/getFileClassFqName.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getFileClassFqName.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/getFileClassFqName.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getFileClassFqName.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/getKotlinType.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getKotlinType.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/getKotlinType.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getKotlinType.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/packageFqName.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/packageFqName.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/packageFqName.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/packageFqName.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/withHasQuestionMark.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/withHasQuestionMark.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/withHasQuestionMark.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/withHasQuestionMark.kt From 513a39f0b4ef47fcee7effea337234971d7ca144 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 2 Oct 2023 18:14:01 +0100 Subject: [PATCH 773/788] Kotlin: Specify language versino when compiling for old compilers Otherwise builds with Kotlin 2 won't work with older compilers. --- java/kotlin-extractor/build.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/java/kotlin-extractor/build.py b/java/kotlin-extractor/build.py index c639209a930..752a436218f 100755 --- a/java/kotlin-extractor/build.py +++ b/java/kotlin-extractor/build.py @@ -87,7 +87,7 @@ def write_arg_file(arg_file, args): raise Exception('Single quote in argument: ' + arg) f.write("'" + arg.replace('\\', '/') + "'\n") -def compile_to_dir(build_dir, srcs, classpath, java_classpath, output): +def compile_to_dir(build_dir, srcs, language_version, classpath, java_classpath, output): # Use kotlinc to compile .kt files: kotlin_arg_file = build_dir + '/kotlin.args' kotlin_args = ['-Werror', @@ -95,6 +95,8 @@ def compile_to_dir(build_dir, srcs, classpath, java_classpath, output): '-opt-in=org.jetbrains.kotlin.ir.symbols.IrSymbolInternals', '-d', output, '-module-name', 'codeql-kotlin-extractor', + '-Xsuppress-version-warnings', + '-language-version', language_version, '-no-reflect', '-no-stdlib', '-jvm-target', '1.8', '-classpath', classpath] + srcs @@ -114,14 +116,14 @@ def compile_to_dir(build_dir, srcs, classpath, java_classpath, output): run_process([javac, '@' + java_arg_file]) -def compile_to_jar(build_dir, tmp_src_dir, srcs, classpath, java_classpath, output): +def compile_to_jar(build_dir, tmp_src_dir, srcs, language_version, classpath, java_classpath, output): class_dir = build_dir + '/classes' if os.path.exists(class_dir): shutil.rmtree(class_dir) os.makedirs(class_dir) - compile_to_dir(build_dir, srcs, classpath, java_classpath, class_dir) + compile_to_dir(build_dir, srcs, language_version, classpath, java_classpath, class_dir) run_process(['jar', 'cf', output, '-C', class_dir, '.', @@ -192,6 +194,8 @@ def compile(jars, java_jars, dependency_folder, transform_to_embeddable, output, # copy and overwrite files from the version folder to the include folder shutil.copytree(d, include_version_folder, dirs_exist_ok=True) + language_version = str(parsed_current_version[0]) + '.' + str(parsed_current_version[1]) + # remove all version folders: shutil.rmtree(tmp_src_dir + '/main/kotlin/utils/versions') @@ -199,7 +203,7 @@ def compile(jars, java_jars, dependency_folder, transform_to_embeddable, output, transform_to_embeddable(srcs) - compile_to_jar(build_dir, tmp_src_dir, srcs, classpath, java_classpath, output) + compile_to_jar(build_dir, tmp_src_dir, srcs, language_version, classpath, java_classpath, output) shutil.rmtree(tmp_src_dir) From 27bdee8058f6c5b0ad1132635b4413e565c2573e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 14 Aug 2023 19:17:19 +0100 Subject: [PATCH 774/788] Swift: Replace additional taint step with implict read. Now that we have array content, this is a more principled approach than having a special case data step. --- .../security/CommandInjectionExtensions.qll | 13 - .../swift/security/CommandInjectionQuery.qll | 6 + .../CWE-078/CommandInjection.expected | 237 ++++++++++-------- 3 files changed, 137 insertions(+), 119 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll index 5d78e82e76d..b1fd734440b 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll @@ -29,19 +29,6 @@ class CommandInjectionAdditionalFlowStep extends Unit { abstract predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo); } -/** - * An additional taint step for command injection vulnerabilities. - */ -private class CommandInjectionArrayAdditionalFlowStep extends CommandInjectionAdditionalFlowStep { - override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { - // needed until we have proper content flow through arrays. - exists(ArrayExpr arr | - nodeFrom.asExpr() = arr.getAnElement() and - nodeTo.asExpr() = arr - ) - } -} - /** * A sink defined in a CSV model. */ diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll index 10dbc137726..df989b1c14a 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll @@ -23,6 +23,12 @@ module CommandInjectionConfig implements DataFlow::ConfigSig { predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { any(CommandInjectionAdditionalFlowStep s).step(nodeFrom, nodeTo) } + + predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c) { + // flow out from array elements of at the sink, for example in `task.arguments = [tainted]`. + isSink(node) and + c.getAReadContent() instanceof DataFlow::Content::ArrayContent + } } /** diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index 5d4c4a63b58..1017c5487a1 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -5,18 +5,18 @@ edges | CommandInjection.swift:69:8:69:12 | let ...? [some:0, some:0] | CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | | CommandInjection.swift:69:8:69:12 | let ...? [some:0] | CommandInjection.swift:69:12:69:12 | userControlledString | | CommandInjection.swift:69:12:69:12 | userControlledString | CommandInjection.swift:75:27:75:27 | userControlledString | -| CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | +| CommandInjection.swift:69:12:69:12 | userControlledString | CommandInjection.swift:78:43:78:43 | userControlledString | +| CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:75:27:75:27 | userControlledString | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:78:43:78:43 | userControlledString | | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | CommandInjection.swift:69:8:69:12 | let ...? [some:0, some:0] | | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:69:8:69:12 | let ...? [some:0] | | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | -| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | -| CommandInjection.swift:75:2:75:2 | [post] task1 [arguments] | CommandInjection.swift:75:2:75:2 | [post] task1 | -| CommandInjection.swift:75:20:75:47 | [...] | CommandInjection.swift:75:2:75:2 | [post] task1 [arguments] | -| CommandInjection.swift:75:27:75:27 | userControlledString | CommandInjection.swift:75:20:75:47 | [...] | -| CommandInjection.swift:75:27:75:27 | userControlledString | CommandInjection.swift:78:43:78:43 | userControlledString | -| CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | +| CommandInjection.swift:75:2:75:2 | [post] task1 [arguments, Collection element] | CommandInjection.swift:75:2:75:2 | [post] task1 | +| CommandInjection.swift:75:20:75:47 | [...] [Collection element] | CommandInjection.swift:75:2:75:2 | [post] task1 [arguments, Collection element] | +| CommandInjection.swift:75:27:75:27 | userControlledString | CommandInjection.swift:75:20:75:47 | [...] [Collection element] | | CommandInjection.swift:78:5:78:9 | let ...? [some:0] | CommandInjection.swift:78:9:78:9 | validatedString | | CommandInjection.swift:78:9:78:9 | validatedString | CommandInjection.swift:81:31:81:31 | validatedString | | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) | CommandInjection.swift:81:31:81:31 | validatedString | @@ -26,104 +26,128 @@ edges | CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:58:22:58:33 | command [some:0] | | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | -| CommandInjection.swift:81:6:81:6 | [post] task2 [arguments] | CommandInjection.swift:81:6:81:6 | [post] task2 | -| CommandInjection.swift:81:24:81:46 | [...] | CommandInjection.swift:81:6:81:6 | [post] task2 [arguments] | -| CommandInjection.swift:81:31:81:31 | validatedString | CommandInjection.swift:81:24:81:46 | [...] | +| CommandInjection.swift:81:6:81:6 | [post] task2 [arguments, Collection element] | CommandInjection.swift:81:6:81:6 | [post] task2 | +| CommandInjection.swift:81:24:81:46 | [...] [Collection element] | CommandInjection.swift:81:6:81:6 | [post] task2 [arguments, Collection element] | +| CommandInjection.swift:81:31:81:31 | validatedString | CommandInjection.swift:81:24:81:46 | [...] [Collection element] | | CommandInjection.swift:99:8:99:12 | let ...? [some:0] | CommandInjection.swift:99:12:99:12 | userControlledString | | CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:114:36:114:36 | userControlledString | | CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:115:28:115:28 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:119:45:119:45 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:120:28:120:36 | ... .+(_:_:) ... | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:124:46:124:46 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:125:22:125:22 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:132:24:132:24 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:142:42:142:42 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:143:75:143:75 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:146:35:146:35 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:147:70:147:70 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:152:53:152:53 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:155:52:155:52 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:156:33:156:33 | userControlledString | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:158:57:158:57 | userControlledString | | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:114:36:114:36 | userControlledString | | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:115:28:115:28 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:119:45:119:45 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:120:28:120:36 | ... .+(_:_:) ... | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:124:46:124:46 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:125:22:125:22 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:132:24:132:24 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:142:42:142:42 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:143:75:143:75 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:146:35:146:35 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:147:70:147:70 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:152:53:152:53 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:155:52:155:52 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:156:33:156:33 | userControlledString | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:158:57:158:57 | userControlledString | | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:99:8:99:12 | let ...? [some:0] | | CommandInjection.swift:114:2:114:2 | [post] task3 [executableURL] | CommandInjection.swift:114:2:114:2 | [post] task3 | | CommandInjection.swift:114:24:114:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:114:24:114:57 | ...! | | CommandInjection.swift:114:24:114:57 | ...! | CommandInjection.swift:114:2:114:2 | [post] task3 [executableURL] | | CommandInjection.swift:114:36:114:36 | userControlledString | CommandInjection.swift:114:24:114:56 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:115:2:115:2 | [post] task3 [arguments] | CommandInjection.swift:115:2:115:2 | [post] task3 | -| CommandInjection.swift:115:20:115:48 | [...] | CommandInjection.swift:115:2:115:2 | [post] task3 [arguments] | -| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:115:20:115:48 | [...] | -| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:119:45:119:45 | userControlledString | -| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:120:28:120:36 | ... .+(_:_:) ... | -| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:124:46:124:46 | userControlledString | -| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:125:22:125:22 | userControlledString | +| CommandInjection.swift:115:2:115:2 | [post] task3 [arguments, Collection element] | CommandInjection.swift:115:2:115:2 | [post] task3 | +| CommandInjection.swift:115:20:115:48 | [...] [Collection element] | CommandInjection.swift:115:2:115:2 | [post] task3 [arguments, Collection element] | +| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:115:20:115:48 | [...] [Collection element] | | CommandInjection.swift:119:2:119:2 | [post] task4 [executableURL] | CommandInjection.swift:119:2:119:2 | [post] task4 | | CommandInjection.swift:119:24:119:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:119:2:119:2 | [post] task4 [executableURL] | | CommandInjection.swift:119:45:119:45 | userControlledString | CommandInjection.swift:119:24:119:65 | call to URL.init(fileURLWithPath:) | -| CommandInjection.swift:120:2:120:2 | [post] task4 [arguments] | CommandInjection.swift:120:2:120:2 | [post] task4 | -| CommandInjection.swift:120:20:120:56 | [...] | CommandInjection.swift:120:2:120:2 | [post] task4 [arguments] | -| CommandInjection.swift:120:28:120:36 | ... .+(_:_:) ... | CommandInjection.swift:120:20:120:56 | [...] | +| CommandInjection.swift:120:2:120:2 | [post] task4 [arguments, Collection element] | CommandInjection.swift:120:2:120:2 | [post] task4 | +| CommandInjection.swift:120:20:120:56 | [...] [Collection element] | CommandInjection.swift:120:2:120:2 | [post] task4 [arguments, Collection element] | +| CommandInjection.swift:120:28:120:36 | ... .+(_:_:) ... | CommandInjection.swift:120:20:120:56 | [...] [Collection element] | | CommandInjection.swift:124:2:124:7 | [post] ...? [executableURL] | CommandInjection.swift:124:2:124:7 | [post] ...? | | CommandInjection.swift:124:25:124:66 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:124:2:124:7 | [post] ...? [executableURL] | | CommandInjection.swift:124:46:124:46 | userControlledString | CommandInjection.swift:124:25:124:66 | call to URL.init(fileURLWithPath:) | -| CommandInjection.swift:125:2:125:7 | [post] ...? [arguments] | CommandInjection.swift:125:2:125:7 | [post] ...? | -| CommandInjection.swift:125:21:125:42 | [...] | CommandInjection.swift:125:2:125:7 | [post] ...? [arguments] | -| CommandInjection.swift:125:22:125:22 | userControlledString | CommandInjection.swift:125:21:125:42 | [...] | -| CommandInjection.swift:125:22:125:22 | userControlledString | CommandInjection.swift:130:21:130:21 | userControlledString | -| CommandInjection.swift:130:21:130:21 | userControlledString | CommandInjection.swift:131:22:131:22 | userControlledString | -| CommandInjection.swift:131:22:131:22 | userControlledString | CommandInjection.swift:142:42:142:42 | userControlledString | -| CommandInjection.swift:131:22:131:22 | userControlledString | CommandInjection.swift:143:75:143:75 | userControlledString | -| CommandInjection.swift:143:75:143:75 | userControlledString | CommandInjection.swift:143:67:143:95 | [...] | -| CommandInjection.swift:143:75:143:75 | userControlledString | CommandInjection.swift:146:35:146:35 | userControlledString | -| CommandInjection.swift:143:75:143:75 | userControlledString | CommandInjection.swift:147:70:147:70 | userControlledString | +| CommandInjection.swift:125:2:125:7 | [post] ...? [arguments, Collection element] | CommandInjection.swift:125:2:125:7 | [post] ...? | +| CommandInjection.swift:125:21:125:42 | [...] [Collection element] | CommandInjection.swift:125:2:125:7 | [post] ...? [arguments, Collection element] | +| CommandInjection.swift:125:22:125:22 | userControlledString | CommandInjection.swift:125:21:125:42 | [...] [Collection element] | +| CommandInjection.swift:132:24:132:24 | userControlledString | CommandInjection.swift:142:42:142:42 | userControlledString | +| CommandInjection.swift:132:24:132:24 | userControlledString | CommandInjection.swift:143:75:143:75 | userControlledString | +| CommandInjection.swift:132:24:132:24 | userControlledString | CommandInjection.swift:146:35:146:35 | userControlledString | +| CommandInjection.swift:132:24:132:24 | userControlledString | CommandInjection.swift:147:70:147:70 | userControlledString | +| CommandInjection.swift:132:24:132:24 | userControlledString | CommandInjection.swift:152:53:152:53 | userControlledString | +| CommandInjection.swift:132:24:132:24 | userControlledString | CommandInjection.swift:155:52:155:52 | userControlledString | +| CommandInjection.swift:132:24:132:24 | userControlledString | CommandInjection.swift:156:33:156:33 | userControlledString | +| CommandInjection.swift:132:24:132:24 | userControlledString | CommandInjection.swift:158:57:158:57 | userControlledString | +| CommandInjection.swift:143:67:143:95 | [...] [Collection element] | CommandInjection.swift:143:67:143:95 | [...] | +| CommandInjection.swift:143:75:143:75 | userControlledString | CommandInjection.swift:143:67:143:95 | [...] [Collection element] | | CommandInjection.swift:146:23:146:55 | call to URL.init(string:) [some:0] | CommandInjection.swift:146:23:146:56 | ...! | | CommandInjection.swift:146:35:146:35 | userControlledString | CommandInjection.swift:146:23:146:55 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:147:70:147:70 | userControlledString | CommandInjection.swift:147:62:147:90 | [...] | -| CommandInjection.swift:147:70:147:70 | userControlledString | CommandInjection.swift:152:53:152:53 | userControlledString | -| CommandInjection.swift:147:70:147:70 | userControlledString | CommandInjection.swift:155:52:155:52 | userControlledString | -| CommandInjection.swift:147:70:147:70 | userControlledString | CommandInjection.swift:156:33:156:33 | userControlledString | +| CommandInjection.swift:147:62:147:90 | [...] [Collection element] | CommandInjection.swift:147:62:147:90 | [...] | +| CommandInjection.swift:147:70:147:70 | userControlledString | CommandInjection.swift:147:62:147:90 | [...] [Collection element] | | CommandInjection.swift:152:41:152:73 | call to URL.init(string:) [some:0] | CommandInjection.swift:152:41:152:74 | ...! | | CommandInjection.swift:152:53:152:53 | userControlledString | CommandInjection.swift:152:41:152:73 | call to URL.init(string:) [some:0] | | CommandInjection.swift:155:40:155:72 | call to URL.init(string:) [some:0] | CommandInjection.swift:155:40:155:73 | ...! | | CommandInjection.swift:155:40:155:72 | call to URL.init(string:) [some:0] | CommandInjection.swift:155:40:155:73 | ...! | | CommandInjection.swift:155:40:155:73 | ...! | file://:0:0:0:0 | url | | CommandInjection.swift:155:52:155:52 | userControlledString | CommandInjection.swift:155:40:155:72 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:156:33:156:33 | userControlledString | CommandInjection.swift:156:32:156:53 | [...] | -| CommandInjection.swift:156:33:156:33 | userControlledString | CommandInjection.swift:158:57:158:57 | userControlledString | +| CommandInjection.swift:156:32:156:53 | [...] [Collection element] | CommandInjection.swift:156:32:156:53 | [...] | +| CommandInjection.swift:156:33:156:33 | userControlledString | CommandInjection.swift:156:32:156:53 | [...] [Collection element] | | CommandInjection.swift:158:45:158:77 | call to URL.init(string:) [some:0] | CommandInjection.swift:158:45:158:78 | ...! | | CommandInjection.swift:158:45:158:77 | call to URL.init(string:) [some:0] | CommandInjection.swift:158:45:158:78 | ...! | | CommandInjection.swift:158:45:158:78 | ...! | file://:0:0:0:0 | url | | CommandInjection.swift:158:57:158:57 | userControlledString | CommandInjection.swift:158:45:158:77 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:172:3:172:3 | newValue | CommandInjection.swift:173:19:173:19 | newValue | -| CommandInjection.swift:172:3:172:3 | newValue | CommandInjection.swift:174:20:174:20 | newValue | -| CommandInjection.swift:172:3:172:3 | newValue | CommandInjection.swift:175:19:175:19 | newValue | -| CommandInjection.swift:173:4:173:4 | [post] getter for .p1 [arguments] | CommandInjection.swift:173:4:173:4 | [post] getter for .p1 | -| CommandInjection.swift:173:19:173:19 | newValue | CommandInjection.swift:173:4:173:4 | [post] getter for .p1 [arguments] | -| CommandInjection.swift:174:4:174:6 | [post] ...! [arguments] | CommandInjection.swift:174:4:174:6 | [post] ...! | -| CommandInjection.swift:174:20:174:20 | newValue | CommandInjection.swift:174:4:174:6 | [post] ...! [arguments] | -| CommandInjection.swift:175:4:175:4 | [post] ...! [arguments] | CommandInjection.swift:175:4:175:4 | [post] ...! | -| CommandInjection.swift:175:19:175:19 | newValue | CommandInjection.swift:175:4:175:4 | [post] ...! [arguments] | +| CommandInjection.swift:172:3:172:3 | newValue [Collection element] | CommandInjection.swift:173:19:173:19 | newValue [Collection element] | +| CommandInjection.swift:172:3:172:3 | newValue [Collection element] | CommandInjection.swift:174:20:174:20 | newValue [Collection element] | +| CommandInjection.swift:172:3:172:3 | newValue [Collection element] | CommandInjection.swift:175:19:175:19 | newValue [Collection element] | +| CommandInjection.swift:173:4:173:4 | [post] getter for .p1 [arguments, Collection element] | CommandInjection.swift:173:4:173:4 | [post] getter for .p1 | +| CommandInjection.swift:173:19:173:19 | newValue [Collection element] | CommandInjection.swift:173:4:173:4 | [post] getter for .p1 [arguments, Collection element] | +| CommandInjection.swift:174:4:174:6 | [post] ...! [arguments, Collection element] | CommandInjection.swift:174:4:174:6 | [post] ...! | +| CommandInjection.swift:174:20:174:20 | newValue [Collection element] | CommandInjection.swift:174:4:174:6 | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:175:4:175:4 | [post] ...! [arguments, Collection element] | CommandInjection.swift:175:4:175:4 | [post] ...! | +| CommandInjection.swift:175:19:175:19 | newValue [Collection element] | CommandInjection.swift:175:4:175:4 | [post] ...! [arguments, Collection element] | | CommandInjection.swift:180:9:180:13 | let ...? [some:0] | CommandInjection.swift:180:13:180:13 | userControlledString | | CommandInjection.swift:180:13:180:13 | userControlledString | CommandInjection.swift:184:19:184:19 | userControlledString | +| CommandInjection.swift:180:13:180:13 | userControlledString | CommandInjection.swift:190:31:190:31 | userControlledString | | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:184:19:184:19 | userControlledString | +| CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | CommandInjection.swift:190:31:190:31 | userControlledString | | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:180:9:180:13 | let ...? [some:0] | -| CommandInjection.swift:184:18:184:39 | [...] | CommandInjection.swift:186:18:186:18 | tainted1 | -| CommandInjection.swift:184:18:184:39 | [...] | CommandInjection.swift:187:19:187:19 | tainted1 | -| CommandInjection.swift:184:18:184:39 | [...] | CommandInjection.swift:188:18:188:18 | tainted1 | -| CommandInjection.swift:184:19:184:19 | userControlledString | CommandInjection.swift:184:18:184:39 | [...] | -| CommandInjection.swift:184:19:184:19 | userControlledString | CommandInjection.swift:190:31:190:31 | userControlledString | -| CommandInjection.swift:186:3:186:3 | [post] getter for .p1 [arguments] | CommandInjection.swift:186:3:186:3 | [post] getter for .p1 | -| CommandInjection.swift:186:18:186:18 | tainted1 | CommandInjection.swift:186:3:186:3 | [post] getter for .p1 [arguments] | -| CommandInjection.swift:186:18:186:18 | tainted1 | CommandInjection.swift:187:19:187:19 | tainted1 | -| CommandInjection.swift:186:18:186:18 | tainted1 | CommandInjection.swift:188:18:188:18 | tainted1 | -| CommandInjection.swift:187:3:187:5 | [post] ...! [arguments] | CommandInjection.swift:187:3:187:5 | [post] ...! | -| CommandInjection.swift:187:19:187:19 | tainted1 | CommandInjection.swift:187:3:187:5 | [post] ...! [arguments] | -| CommandInjection.swift:187:19:187:19 | tainted1 | CommandInjection.swift:188:18:188:18 | tainted1 | -| CommandInjection.swift:188:3:188:3 | [post] ...! [arguments] | CommandInjection.swift:188:3:188:3 | [post] ...! | -| CommandInjection.swift:188:18:188:18 | tainted1 | CommandInjection.swift:188:3:188:3 | [post] ...! [arguments] | -| CommandInjection.swift:190:30:190:51 | [...] | CommandInjection.swift:192:18:192:18 | tainted2 | -| CommandInjection.swift:190:30:190:51 | [...] | CommandInjection.swift:193:19:193:19 | tainted2 | -| CommandInjection.swift:190:30:190:51 | [...] | CommandInjection.swift:194:18:194:18 | tainted2 | -| CommandInjection.swift:190:30:190:51 | [...] | CommandInjection.swift:196:13:196:13 | tainted2 | -| CommandInjection.swift:190:31:190:31 | userControlledString | CommandInjection.swift:190:30:190:51 | [...] | -| CommandInjection.swift:192:3:192:3 | [post] getter for .p1 [arguments] | CommandInjection.swift:192:3:192:3 | [post] getter for .p1 | -| CommandInjection.swift:192:18:192:18 | tainted2 | CommandInjection.swift:192:3:192:3 | [post] getter for .p1 [arguments] | -| CommandInjection.swift:193:3:193:5 | [post] ...! [arguments] | CommandInjection.swift:193:3:193:5 | [post] ...! | -| CommandInjection.swift:193:19:193:19 | tainted2 | CommandInjection.swift:193:3:193:5 | [post] ...! [arguments] | -| CommandInjection.swift:194:3:194:3 | [post] ...! [arguments] | CommandInjection.swift:194:3:194:3 | [post] ...! | -| CommandInjection.swift:194:18:194:18 | tainted2 | CommandInjection.swift:194:3:194:3 | [post] ...! [arguments] | -| CommandInjection.swift:196:13:196:13 | tainted2 | CommandInjection.swift:172:3:172:3 | newValue | +| CommandInjection.swift:184:18:184:39 | [...] [Collection element] | CommandInjection.swift:186:18:186:18 | tainted1 [Collection element] | +| CommandInjection.swift:184:18:184:39 | [...] [Collection element] | CommandInjection.swift:187:19:187:19 | tainted1 [Collection element] | +| CommandInjection.swift:184:18:184:39 | [...] [Collection element] | CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | +| CommandInjection.swift:184:19:184:19 | userControlledString | CommandInjection.swift:184:18:184:39 | [...] [Collection element] | +| CommandInjection.swift:186:3:186:3 | [post] getter for .p1 [arguments, Collection element] | CommandInjection.swift:186:3:186:3 | [post] getter for .p1 | +| CommandInjection.swift:186:18:186:18 | tainted1 [Collection element] | CommandInjection.swift:186:3:186:3 | [post] getter for .p1 [arguments, Collection element] | +| CommandInjection.swift:186:18:186:18 | tainted1 [Collection element] | CommandInjection.swift:187:19:187:19 | tainted1 [Collection element] | +| CommandInjection.swift:186:18:186:18 | tainted1 [Collection element] | CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | +| CommandInjection.swift:187:3:187:5 | [post] ...! [arguments, Collection element] | CommandInjection.swift:187:3:187:5 | [post] ...! | +| CommandInjection.swift:187:19:187:19 | tainted1 [Collection element] | CommandInjection.swift:187:3:187:5 | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:187:19:187:19 | tainted1 [Collection element] | CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | +| CommandInjection.swift:188:3:188:3 | [post] ...! [arguments, Collection element] | CommandInjection.swift:188:3:188:3 | [post] ...! | +| CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | CommandInjection.swift:188:3:188:3 | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:190:30:190:51 | [...] [Collection element] | CommandInjection.swift:192:18:192:18 | tainted2 [Collection element] | +| CommandInjection.swift:190:30:190:51 | [...] [Collection element] | CommandInjection.swift:193:19:193:19 | tainted2 [Collection element] | +| CommandInjection.swift:190:30:190:51 | [...] [Collection element] | CommandInjection.swift:194:18:194:18 | tainted2 [Collection element] | +| CommandInjection.swift:190:30:190:51 | [...] [Collection element] | CommandInjection.swift:196:13:196:13 | tainted2 [Collection element] | +| CommandInjection.swift:190:31:190:31 | userControlledString | CommandInjection.swift:190:30:190:51 | [...] [Collection element] | +| CommandInjection.swift:192:3:192:3 | [post] getter for .p1 [arguments, Collection element] | CommandInjection.swift:192:3:192:3 | [post] getter for .p1 | +| CommandInjection.swift:192:18:192:18 | tainted2 [Collection element] | CommandInjection.swift:192:3:192:3 | [post] getter for .p1 [arguments, Collection element] | +| CommandInjection.swift:193:3:193:5 | [post] ...! [arguments, Collection element] | CommandInjection.swift:193:3:193:5 | [post] ...! | +| CommandInjection.swift:193:19:193:19 | tainted2 [Collection element] | CommandInjection.swift:193:3:193:5 | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:194:3:194:3 | [post] ...! [arguments, Collection element] | CommandInjection.swift:194:3:194:3 | [post] ...! | +| CommandInjection.swift:194:18:194:18 | tainted2 [Collection element] | CommandInjection.swift:194:3:194:3 | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:196:13:196:13 | tainted2 [Collection element] | CommandInjection.swift:172:3:172:3 | newValue [Collection element] | | file://:0:0:0:0 | url | file://:0:0:0:0 | url | | file://:0:0:0:0 | url | file://:0:0:0:0 | url | nodes @@ -140,10 +164,9 @@ nodes | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | semmle.label | call to String.init(contentsOf:) [some:0, some:0] | | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | | CommandInjection.swift:75:2:75:2 | [post] task1 | semmle.label | [post] task1 | -| CommandInjection.swift:75:2:75:2 | [post] task1 [arguments] | semmle.label | [post] task1 [arguments] | -| CommandInjection.swift:75:20:75:47 | [...] | semmle.label | [...] | +| CommandInjection.swift:75:2:75:2 | [post] task1 [arguments, Collection element] | semmle.label | [post] task1 [arguments, Collection element] | +| CommandInjection.swift:75:20:75:47 | [...] [Collection element] | semmle.label | [...] [Collection element] | | CommandInjection.swift:75:27:75:27 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:75:27:75:27 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | | CommandInjection.swift:78:5:78:9 | let ...? [some:0] | semmle.label | let ...? [some:0] | | CommandInjection.swift:78:9:78:9 | validatedString | semmle.label | validatedString | | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) | semmle.label | call to validateCommand(_:) | @@ -151,8 +174,8 @@ nodes | CommandInjection.swift:78:43:78:43 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | semmle.label | userControlledString [some:0] | | CommandInjection.swift:81:6:81:6 | [post] task2 | semmle.label | [post] task2 | -| CommandInjection.swift:81:6:81:6 | [post] task2 [arguments] | semmle.label | [post] task2 [arguments] | -| CommandInjection.swift:81:24:81:46 | [...] | semmle.label | [...] | +| CommandInjection.swift:81:6:81:6 | [post] task2 [arguments, Collection element] | semmle.label | [post] task2 [arguments, Collection element] | +| CommandInjection.swift:81:24:81:46 | [...] [Collection element] | semmle.label | [...] [Collection element] | | CommandInjection.swift:81:31:81:31 | validatedString | semmle.label | validatedString | | CommandInjection.swift:99:8:99:12 | let ...? [some:0] | semmle.label | let ...? [some:0] | | CommandInjection.swift:99:12:99:12 | userControlledString | semmle.label | userControlledString | @@ -164,34 +187,35 @@ nodes | CommandInjection.swift:114:24:114:57 | ...! | semmle.label | ...! | | CommandInjection.swift:114:36:114:36 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:115:2:115:2 | [post] task3 | semmle.label | [post] task3 | -| CommandInjection.swift:115:2:115:2 | [post] task3 [arguments] | semmle.label | [post] task3 [arguments] | -| CommandInjection.swift:115:20:115:48 | [...] | semmle.label | [...] | +| CommandInjection.swift:115:2:115:2 | [post] task3 [arguments, Collection element] | semmle.label | [post] task3 [arguments, Collection element] | +| CommandInjection.swift:115:20:115:48 | [...] [Collection element] | semmle.label | [...] [Collection element] | | CommandInjection.swift:115:28:115:28 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:119:2:119:2 | [post] task4 | semmle.label | [post] task4 | | CommandInjection.swift:119:2:119:2 | [post] task4 [executableURL] | semmle.label | [post] task4 [executableURL] | | CommandInjection.swift:119:24:119:65 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | | CommandInjection.swift:119:45:119:45 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:120:2:120:2 | [post] task4 | semmle.label | [post] task4 | -| CommandInjection.swift:120:2:120:2 | [post] task4 [arguments] | semmle.label | [post] task4 [arguments] | -| CommandInjection.swift:120:20:120:56 | [...] | semmle.label | [...] | +| CommandInjection.swift:120:2:120:2 | [post] task4 [arguments, Collection element] | semmle.label | [post] task4 [arguments, Collection element] | +| CommandInjection.swift:120:20:120:56 | [...] [Collection element] | semmle.label | [...] [Collection element] | | CommandInjection.swift:120:28:120:36 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | | CommandInjection.swift:124:2:124:7 | [post] ...? | semmle.label | [post] ...? | | CommandInjection.swift:124:2:124:7 | [post] ...? [executableURL] | semmle.label | [post] ...? [executableURL] | | CommandInjection.swift:124:25:124:66 | call to URL.init(fileURLWithPath:) | semmle.label | call to URL.init(fileURLWithPath:) | | CommandInjection.swift:124:46:124:46 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:125:2:125:7 | [post] ...? | semmle.label | [post] ...? | -| CommandInjection.swift:125:2:125:7 | [post] ...? [arguments] | semmle.label | [post] ...? [arguments] | -| CommandInjection.swift:125:21:125:42 | [...] | semmle.label | [...] | +| CommandInjection.swift:125:2:125:7 | [post] ...? [arguments, Collection element] | semmle.label | [post] ...? [arguments, Collection element] | +| CommandInjection.swift:125:21:125:42 | [...] [Collection element] | semmle.label | [...] [Collection element] | | CommandInjection.swift:125:22:125:22 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:130:21:130:21 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:131:22:131:22 | userControlledString | semmle.label | userControlledString | +| CommandInjection.swift:132:24:132:24 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:142:42:142:42 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:143:67:143:95 | [...] | semmle.label | [...] | +| CommandInjection.swift:143:67:143:95 | [...] [Collection element] | semmle.label | [...] [Collection element] | | CommandInjection.swift:143:75:143:75 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:146:23:146:55 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | CommandInjection.swift:146:23:146:56 | ...! | semmle.label | ...! | | CommandInjection.swift:146:35:146:35 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:147:62:147:90 | [...] | semmle.label | [...] | +| CommandInjection.swift:147:62:147:90 | [...] [Collection element] | semmle.label | [...] [Collection element] | | CommandInjection.swift:147:70:147:70 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:152:41:152:73 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | CommandInjection.swift:152:41:152:74 | ...! | semmle.label | ...! | @@ -201,48 +225,49 @@ nodes | CommandInjection.swift:155:40:155:73 | ...! | semmle.label | ...! | | CommandInjection.swift:155:52:155:52 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:156:32:156:53 | [...] | semmle.label | [...] | +| CommandInjection.swift:156:32:156:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | CommandInjection.swift:156:33:156:33 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:158:45:158:77 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | | CommandInjection.swift:158:45:158:78 | ...! | semmle.label | ...! | | CommandInjection.swift:158:45:158:78 | ...! | semmle.label | ...! | | CommandInjection.swift:158:57:158:57 | userControlledString | semmle.label | userControlledString | -| CommandInjection.swift:172:3:172:3 | newValue | semmle.label | newValue | +| CommandInjection.swift:172:3:172:3 | newValue [Collection element] | semmle.label | newValue [Collection element] | | CommandInjection.swift:173:4:173:4 | [post] getter for .p1 | semmle.label | [post] getter for .p1 | -| CommandInjection.swift:173:4:173:4 | [post] getter for .p1 [arguments] | semmle.label | [post] getter for .p1 [arguments] | -| CommandInjection.swift:173:19:173:19 | newValue | semmle.label | newValue | +| CommandInjection.swift:173:4:173:4 | [post] getter for .p1 [arguments, Collection element] | semmle.label | [post] getter for .p1 [arguments, Collection element] | +| CommandInjection.swift:173:19:173:19 | newValue [Collection element] | semmle.label | newValue [Collection element] | | CommandInjection.swift:174:4:174:6 | [post] ...! | semmle.label | [post] ...! | -| CommandInjection.swift:174:4:174:6 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | -| CommandInjection.swift:174:20:174:20 | newValue | semmle.label | newValue | +| CommandInjection.swift:174:4:174:6 | [post] ...! [arguments, Collection element] | semmle.label | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:174:20:174:20 | newValue [Collection element] | semmle.label | newValue [Collection element] | | CommandInjection.swift:175:4:175:4 | [post] ...! | semmle.label | [post] ...! | -| CommandInjection.swift:175:4:175:4 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | -| CommandInjection.swift:175:19:175:19 | newValue | semmle.label | newValue | +| CommandInjection.swift:175:4:175:4 | [post] ...! [arguments, Collection element] | semmle.label | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:175:19:175:19 | newValue [Collection element] | semmle.label | newValue [Collection element] | | CommandInjection.swift:180:9:180:13 | let ...? [some:0] | semmle.label | let ...? [some:0] | | CommandInjection.swift:180:13:180:13 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | CommandInjection.swift:180:41:180:95 | call to String.init(contentsOf:) [some:0] | semmle.label | call to String.init(contentsOf:) [some:0] | -| CommandInjection.swift:184:18:184:39 | [...] | semmle.label | [...] | +| CommandInjection.swift:184:18:184:39 | [...] [Collection element] | semmle.label | [...] [Collection element] | | CommandInjection.swift:184:19:184:19 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:186:3:186:3 | [post] getter for .p1 | semmle.label | [post] getter for .p1 | -| CommandInjection.swift:186:3:186:3 | [post] getter for .p1 [arguments] | semmle.label | [post] getter for .p1 [arguments] | -| CommandInjection.swift:186:18:186:18 | tainted1 | semmle.label | tainted1 | +| CommandInjection.swift:186:3:186:3 | [post] getter for .p1 [arguments, Collection element] | semmle.label | [post] getter for .p1 [arguments, Collection element] | +| CommandInjection.swift:186:18:186:18 | tainted1 [Collection element] | semmle.label | tainted1 [Collection element] | | CommandInjection.swift:187:3:187:5 | [post] ...! | semmle.label | [post] ...! | -| CommandInjection.swift:187:3:187:5 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | -| CommandInjection.swift:187:19:187:19 | tainted1 | semmle.label | tainted1 | +| CommandInjection.swift:187:3:187:5 | [post] ...! [arguments, Collection element] | semmle.label | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:187:19:187:19 | tainted1 [Collection element] | semmle.label | tainted1 [Collection element] | | CommandInjection.swift:188:3:188:3 | [post] ...! | semmle.label | [post] ...! | -| CommandInjection.swift:188:3:188:3 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | -| CommandInjection.swift:188:18:188:18 | tainted1 | semmle.label | tainted1 | -| CommandInjection.swift:190:30:190:51 | [...] | semmle.label | [...] | +| CommandInjection.swift:188:3:188:3 | [post] ...! [arguments, Collection element] | semmle.label | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | semmle.label | tainted1 [Collection element] | +| CommandInjection.swift:190:30:190:51 | [...] [Collection element] | semmle.label | [...] [Collection element] | | CommandInjection.swift:190:31:190:31 | userControlledString | semmle.label | userControlledString | | CommandInjection.swift:192:3:192:3 | [post] getter for .p1 | semmle.label | [post] getter for .p1 | -| CommandInjection.swift:192:3:192:3 | [post] getter for .p1 [arguments] | semmle.label | [post] getter for .p1 [arguments] | -| CommandInjection.swift:192:18:192:18 | tainted2 | semmle.label | tainted2 | +| CommandInjection.swift:192:3:192:3 | [post] getter for .p1 [arguments, Collection element] | semmle.label | [post] getter for .p1 [arguments, Collection element] | +| CommandInjection.swift:192:18:192:18 | tainted2 [Collection element] | semmle.label | tainted2 [Collection element] | | CommandInjection.swift:193:3:193:5 | [post] ...! | semmle.label | [post] ...! | -| CommandInjection.swift:193:3:193:5 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | -| CommandInjection.swift:193:19:193:19 | tainted2 | semmle.label | tainted2 | +| CommandInjection.swift:193:3:193:5 | [post] ...! [arguments, Collection element] | semmle.label | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:193:19:193:19 | tainted2 [Collection element] | semmle.label | tainted2 [Collection element] | | CommandInjection.swift:194:3:194:3 | [post] ...! | semmle.label | [post] ...! | -| CommandInjection.swift:194:3:194:3 | [post] ...! [arguments] | semmle.label | [post] ...! [arguments] | -| CommandInjection.swift:194:18:194:18 | tainted2 | semmle.label | tainted2 | -| CommandInjection.swift:196:13:196:13 | tainted2 | semmle.label | tainted2 | +| CommandInjection.swift:194:3:194:3 | [post] ...! [arguments, Collection element] | semmle.label | [post] ...! [arguments, Collection element] | +| CommandInjection.swift:194:18:194:18 | tainted2 [Collection element] | semmle.label | tainted2 [Collection element] | +| CommandInjection.swift:196:13:196:13 | tainted2 [Collection element] | semmle.label | tainted2 [Collection element] | | file://:0:0:0:0 | url | semmle.label | url | | file://:0:0:0:0 | url | semmle.label | url | | file://:0:0:0:0 | url | semmle.label | url | From 81b358a7113a2eaa107df328cf44477bc0660fcc Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 14 Aug 2023 17:15:55 +0100 Subject: [PATCH 775/788] Swift: Replace a similar additional taint step in another query. --- .../CleartextStorageDatabaseExtensions.qll | 8 +- .../CleartextStorageDatabaseQuery.qll | 5 + .../CWE-311/CleartextStorageDatabase.expected | 204 +++++++++++++----- 3 files changed, 159 insertions(+), 58 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll index 8d1c1ccd4b0..4ae0c369ef2 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseExtensions.qll @@ -128,15 +128,9 @@ private class CleartextStorageDatabaseDefaultBarrier extends CleartextStorageDat /** * An additional taint step for cleartext database storage vulnerabilities. */ -private class CleartextStorageDatabaseArrayAdditionalFlowStep extends CleartextStorageDatabaseAdditionalFlowStep +private class CleartextStorageDatabaseFieldsAdditionalFlowStep extends CleartextStorageDatabaseAdditionalFlowStep { override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { - // needed until we have proper content flow through arrays. - exists(ArrayExpr arr | - nodeFrom.asExpr() = arr.getAnElement() and - nodeTo.asExpr() = arr - ) - or // if an object is sensitive, its fields are always sensitive // (this is needed because the sensitive data sources are in a sense // approximate; for example we might identify `passwordBox` as a source, diff --git a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll index 9432887db9d..2cb8c1ef164 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll @@ -39,6 +39,11 @@ module CleartextStorageDatabaseConfig implements DataFlow::ConfigSig { cx.asNominalTypeDecl() = d and c.getAReadContent().(DataFlow::Content::FieldContent).getField() = cx.getAMember() ) + or + // flow out from array elements of at the sink, + // for example in `database.allStatements(sql: "", arguments: [sensitive])`. + isSink(node) and + c.getAReadContent() instanceof DataFlow::Content::ArrayContent } } diff --git a/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected b/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected index 50925efb7f1..d2219e02fd3 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected +++ b/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected @@ -114,57 +114,108 @@ edges | testCoreData.swift:91:10:91:10 | passwd | testCoreData.swift:95:15:95:15 | x | | testCoreData.swift:92:10:92:10 | passwd | testCoreData.swift:96:15:96:15 | y | | testCoreData.swift:93:10:93:10 | passwd | testCoreData.swift:97:15:97:15 | z | -| testGRDB.swift:73:57:73:57 | password | testGRDB.swift:73:56:73:65 | [...] | -| testGRDB.swift:76:43:76:43 | password | testGRDB.swift:76:42:76:51 | [...] | -| testGRDB.swift:81:45:81:45 | password | testGRDB.swift:81:44:81:53 | [...] | -| testGRDB.swift:83:45:83:45 | password | testGRDB.swift:83:44:83:53 | [...] | -| testGRDB.swift:85:45:85:45 | password | testGRDB.swift:85:44:85:53 | [...] | -| testGRDB.swift:87:45:87:45 | password | testGRDB.swift:87:44:87:53 | [...] | -| testGRDB.swift:92:38:92:38 | password | testGRDB.swift:92:37:92:46 | [...] | -| testGRDB.swift:95:37:95:37 | password | testGRDB.swift:95:36:95:45 | [...] | -| testGRDB.swift:100:73:100:73 | password | testGRDB.swift:100:72:100:81 | [...] | -| testGRDB.swift:101:73:101:73 | password | testGRDB.swift:101:72:101:81 | [...] | -| testGRDB.swift:107:53:107:53 | password | testGRDB.swift:107:52:107:61 | [...] | -| testGRDB.swift:109:53:109:53 | password | testGRDB.swift:109:52:109:61 | [...] | -| testGRDB.swift:111:52:111:52 | password | testGRDB.swift:111:51:111:60 | [...] | -| testGRDB.swift:116:48:116:48 | password | testGRDB.swift:116:47:116:56 | [...] | -| testGRDB.swift:118:48:118:48 | password | testGRDB.swift:118:47:118:56 | [...] | -| testGRDB.swift:121:45:121:45 | password | testGRDB.swift:121:44:121:53 | [...] | -| testGRDB.swift:123:45:123:45 | password | testGRDB.swift:123:44:123:53 | [...] | -| testGRDB.swift:126:45:126:45 | password | testGRDB.swift:126:44:126:53 | [...] | -| testGRDB.swift:128:45:128:45 | password | testGRDB.swift:128:44:128:53 | [...] | -| testGRDB.swift:131:45:131:45 | password | testGRDB.swift:131:44:131:53 | [...] | -| testGRDB.swift:133:45:133:45 | password | testGRDB.swift:133:44:133:53 | [...] | -| testGRDB.swift:138:69:138:69 | password | testGRDB.swift:138:68:138:77 | [...] | -| testGRDB.swift:140:69:140:69 | password | testGRDB.swift:140:68:140:77 | [...] | -| testGRDB.swift:143:66:143:66 | password | testGRDB.swift:143:65:143:74 | [...] | -| testGRDB.swift:145:66:145:66 | password | testGRDB.swift:145:65:145:74 | [...] | -| testGRDB.swift:148:66:148:66 | password | testGRDB.swift:148:65:148:74 | [...] | -| testGRDB.swift:150:66:150:66 | password | testGRDB.swift:150:65:150:74 | [...] | -| testGRDB.swift:153:66:153:66 | password | testGRDB.swift:153:65:153:74 | [...] | -| testGRDB.swift:155:66:155:66 | password | testGRDB.swift:155:65:155:74 | [...] | -| testGRDB.swift:160:60:160:60 | password | testGRDB.swift:160:59:160:68 | [...] | -| testGRDB.swift:161:51:161:51 | password | testGRDB.swift:161:50:161:59 | [...] | -| testGRDB.swift:164:60:164:60 | password | testGRDB.swift:164:59:164:68 | [...] | -| testGRDB.swift:165:51:165:51 | password | testGRDB.swift:165:50:165:59 | [...] | -| testGRDB.swift:169:57:169:57 | password | testGRDB.swift:169:56:169:65 | [...] | -| testGRDB.swift:170:48:170:48 | password | testGRDB.swift:170:47:170:56 | [...] | -| testGRDB.swift:173:57:173:57 | password | testGRDB.swift:173:56:173:65 | [...] | -| testGRDB.swift:174:48:174:48 | password | testGRDB.swift:174:47:174:56 | [...] | -| testGRDB.swift:178:57:178:57 | password | testGRDB.swift:178:56:178:65 | [...] | -| testGRDB.swift:179:48:179:48 | password | testGRDB.swift:179:47:179:56 | [...] | -| testGRDB.swift:182:57:182:57 | password | testGRDB.swift:182:56:182:65 | [...] | -| testGRDB.swift:183:48:183:48 | password | testGRDB.swift:183:47:183:56 | [...] | -| testGRDB.swift:187:57:187:57 | password | testGRDB.swift:187:56:187:65 | [...] | -| testGRDB.swift:188:48:188:48 | password | testGRDB.swift:188:47:188:56 | [...] | -| testGRDB.swift:191:57:191:57 | password | testGRDB.swift:191:56:191:65 | [...] | -| testGRDB.swift:192:48:192:48 | password | testGRDB.swift:192:47:192:56 | [...] | -| testGRDB.swift:198:30:198:30 | password | testGRDB.swift:198:29:198:38 | [...] | -| testGRDB.swift:201:24:201:24 | password | testGRDB.swift:201:23:201:32 | [...] | -| testGRDB.swift:206:67:206:67 | password | testGRDB.swift:206:66:206:75 | [...] | -| testGRDB.swift:208:81:208:81 | password | testGRDB.swift:208:80:208:89 | [...] | -| testGRDB.swift:210:85:210:85 | password | testGRDB.swift:210:84:210:93 | [...] | -| testGRDB.swift:212:99:212:99 | password | testGRDB.swift:212:98:212:107 | [...] | +| testGRDB.swift:73:56:73:65 | [...] [Array element] | testGRDB.swift:73:56:73:65 | [...] | +| testGRDB.swift:73:57:73:57 | password | testGRDB.swift:73:56:73:65 | [...] [Array element] | +| testGRDB.swift:76:42:76:51 | [...] [Array element] | testGRDB.swift:76:42:76:51 | [...] | +| testGRDB.swift:76:43:76:43 | password | testGRDB.swift:76:42:76:51 | [...] [Array element] | +| testGRDB.swift:81:44:81:53 | [...] [Array element] | testGRDB.swift:81:44:81:53 | [...] | +| testGRDB.swift:81:45:81:45 | password | testGRDB.swift:81:44:81:53 | [...] [Array element] | +| testGRDB.swift:83:44:83:53 | [...] [Array element] | testGRDB.swift:83:44:83:53 | [...] | +| testGRDB.swift:83:45:83:45 | password | testGRDB.swift:83:44:83:53 | [...] [Array element] | +| testGRDB.swift:85:44:85:53 | [...] [Array element] | testGRDB.swift:85:44:85:53 | [...] | +| testGRDB.swift:85:45:85:45 | password | testGRDB.swift:85:44:85:53 | [...] [Array element] | +| testGRDB.swift:87:44:87:53 | [...] [Array element] | testGRDB.swift:87:44:87:53 | [...] | +| testGRDB.swift:87:45:87:45 | password | testGRDB.swift:87:44:87:53 | [...] [Array element] | +| testGRDB.swift:92:37:92:46 | [...] [Array element] | testGRDB.swift:92:37:92:46 | [...] | +| testGRDB.swift:92:38:92:38 | password | testGRDB.swift:92:37:92:46 | [...] [Array element] | +| testGRDB.swift:95:36:95:45 | [...] [Array element] | testGRDB.swift:95:36:95:45 | [...] | +| testGRDB.swift:95:37:95:37 | password | testGRDB.swift:95:36:95:45 | [...] [Array element] | +| testGRDB.swift:100:72:100:81 | [...] [Array element] | testGRDB.swift:100:72:100:81 | [...] | +| testGRDB.swift:100:73:100:73 | password | testGRDB.swift:100:72:100:81 | [...] [Array element] | +| testGRDB.swift:101:72:101:81 | [...] [Array element] | testGRDB.swift:101:72:101:81 | [...] | +| testGRDB.swift:101:73:101:73 | password | testGRDB.swift:101:72:101:81 | [...] [Array element] | +| testGRDB.swift:107:52:107:61 | [...] [Array element] | testGRDB.swift:107:52:107:61 | [...] | +| testGRDB.swift:107:53:107:53 | password | testGRDB.swift:107:52:107:61 | [...] [Array element] | +| testGRDB.swift:109:52:109:61 | [...] [Array element] | testGRDB.swift:109:52:109:61 | [...] | +| testGRDB.swift:109:53:109:53 | password | testGRDB.swift:109:52:109:61 | [...] [Array element] | +| testGRDB.swift:111:51:111:60 | [...] [Array element] | testGRDB.swift:111:51:111:60 | [...] | +| testGRDB.swift:111:52:111:52 | password | testGRDB.swift:111:51:111:60 | [...] [Array element] | +| testGRDB.swift:116:47:116:56 | [...] [Array element] | testGRDB.swift:116:47:116:56 | [...] | +| testGRDB.swift:116:48:116:48 | password | testGRDB.swift:116:47:116:56 | [...] [Array element] | +| testGRDB.swift:118:47:118:56 | [...] [Array element] | testGRDB.swift:118:47:118:56 | [...] | +| testGRDB.swift:118:48:118:48 | password | testGRDB.swift:118:47:118:56 | [...] [Array element] | +| testGRDB.swift:121:44:121:53 | [...] [Array element] | testGRDB.swift:121:44:121:53 | [...] | +| testGRDB.swift:121:45:121:45 | password | testGRDB.swift:121:44:121:53 | [...] [Array element] | +| testGRDB.swift:123:44:123:53 | [...] [Array element] | testGRDB.swift:123:44:123:53 | [...] | +| testGRDB.swift:123:45:123:45 | password | testGRDB.swift:123:44:123:53 | [...] [Array element] | +| testGRDB.swift:126:44:126:53 | [...] [Array element] | testGRDB.swift:126:44:126:53 | [...] | +| testGRDB.swift:126:45:126:45 | password | testGRDB.swift:126:44:126:53 | [...] [Array element] | +| testGRDB.swift:128:44:128:53 | [...] [Array element] | testGRDB.swift:128:44:128:53 | [...] | +| testGRDB.swift:128:45:128:45 | password | testGRDB.swift:128:44:128:53 | [...] [Array element] | +| testGRDB.swift:131:44:131:53 | [...] [Array element] | testGRDB.swift:131:44:131:53 | [...] | +| testGRDB.swift:131:45:131:45 | password | testGRDB.swift:131:44:131:53 | [...] [Array element] | +| testGRDB.swift:133:44:133:53 | [...] [Array element] | testGRDB.swift:133:44:133:53 | [...] | +| testGRDB.swift:133:45:133:45 | password | testGRDB.swift:133:44:133:53 | [...] [Array element] | +| testGRDB.swift:138:68:138:77 | [...] [Array element] | testGRDB.swift:138:68:138:77 | [...] | +| testGRDB.swift:138:69:138:69 | password | testGRDB.swift:138:68:138:77 | [...] [Array element] | +| testGRDB.swift:140:68:140:77 | [...] [Array element] | testGRDB.swift:140:68:140:77 | [...] | +| testGRDB.swift:140:69:140:69 | password | testGRDB.swift:140:68:140:77 | [...] [Array element] | +| testGRDB.swift:143:65:143:74 | [...] [Array element] | testGRDB.swift:143:65:143:74 | [...] | +| testGRDB.swift:143:66:143:66 | password | testGRDB.swift:143:65:143:74 | [...] [Array element] | +| testGRDB.swift:145:65:145:74 | [...] [Array element] | testGRDB.swift:145:65:145:74 | [...] | +| testGRDB.swift:145:66:145:66 | password | testGRDB.swift:145:65:145:74 | [...] [Array element] | +| testGRDB.swift:148:65:148:74 | [...] [Array element] | testGRDB.swift:148:65:148:74 | [...] | +| testGRDB.swift:148:66:148:66 | password | testGRDB.swift:148:65:148:74 | [...] [Array element] | +| testGRDB.swift:150:65:150:74 | [...] [Array element] | testGRDB.swift:150:65:150:74 | [...] | +| testGRDB.swift:150:66:150:66 | password | testGRDB.swift:150:65:150:74 | [...] [Array element] | +| testGRDB.swift:153:65:153:74 | [...] [Array element] | testGRDB.swift:153:65:153:74 | [...] | +| testGRDB.swift:153:66:153:66 | password | testGRDB.swift:153:65:153:74 | [...] [Array element] | +| testGRDB.swift:155:65:155:74 | [...] [Array element] | testGRDB.swift:155:65:155:74 | [...] | +| testGRDB.swift:155:66:155:66 | password | testGRDB.swift:155:65:155:74 | [...] [Array element] | +| testGRDB.swift:160:59:160:68 | [...] [Array element] | testGRDB.swift:160:59:160:68 | [...] | +| testGRDB.swift:160:60:160:60 | password | testGRDB.swift:160:59:160:68 | [...] [Array element] | +| testGRDB.swift:161:50:161:59 | [...] [Array element] | testGRDB.swift:161:50:161:59 | [...] | +| testGRDB.swift:161:51:161:51 | password | testGRDB.swift:161:50:161:59 | [...] [Array element] | +| testGRDB.swift:164:59:164:68 | [...] [Array element] | testGRDB.swift:164:59:164:68 | [...] | +| testGRDB.swift:164:60:164:60 | password | testGRDB.swift:164:59:164:68 | [...] [Array element] | +| testGRDB.swift:165:50:165:59 | [...] [Array element] | testGRDB.swift:165:50:165:59 | [...] | +| testGRDB.swift:165:51:165:51 | password | testGRDB.swift:165:50:165:59 | [...] [Array element] | +| testGRDB.swift:169:56:169:65 | [...] [Array element] | testGRDB.swift:169:56:169:65 | [...] | +| testGRDB.swift:169:57:169:57 | password | testGRDB.swift:169:56:169:65 | [...] [Array element] | +| testGRDB.swift:170:47:170:56 | [...] [Array element] | testGRDB.swift:170:47:170:56 | [...] | +| testGRDB.swift:170:48:170:48 | password | testGRDB.swift:170:47:170:56 | [...] [Array element] | +| testGRDB.swift:173:56:173:65 | [...] [Array element] | testGRDB.swift:173:56:173:65 | [...] | +| testGRDB.swift:173:57:173:57 | password | testGRDB.swift:173:56:173:65 | [...] [Array element] | +| testGRDB.swift:174:47:174:56 | [...] [Array element] | testGRDB.swift:174:47:174:56 | [...] | +| testGRDB.swift:174:48:174:48 | password | testGRDB.swift:174:47:174:56 | [...] [Array element] | +| testGRDB.swift:178:56:178:65 | [...] [Array element] | testGRDB.swift:178:56:178:65 | [...] | +| testGRDB.swift:178:57:178:57 | password | testGRDB.swift:178:56:178:65 | [...] [Array element] | +| testGRDB.swift:179:47:179:56 | [...] [Array element] | testGRDB.swift:179:47:179:56 | [...] | +| testGRDB.swift:179:48:179:48 | password | testGRDB.swift:179:47:179:56 | [...] [Array element] | +| testGRDB.swift:182:56:182:65 | [...] [Array element] | testGRDB.swift:182:56:182:65 | [...] | +| testGRDB.swift:182:57:182:57 | password | testGRDB.swift:182:56:182:65 | [...] [Array element] | +| testGRDB.swift:183:47:183:56 | [...] [Array element] | testGRDB.swift:183:47:183:56 | [...] | +| testGRDB.swift:183:48:183:48 | password | testGRDB.swift:183:47:183:56 | [...] [Array element] | +| testGRDB.swift:187:56:187:65 | [...] [Array element] | testGRDB.swift:187:56:187:65 | [...] | +| testGRDB.swift:187:57:187:57 | password | testGRDB.swift:187:56:187:65 | [...] [Array element] | +| testGRDB.swift:188:47:188:56 | [...] [Array element] | testGRDB.swift:188:47:188:56 | [...] | +| testGRDB.swift:188:48:188:48 | password | testGRDB.swift:188:47:188:56 | [...] [Array element] | +| testGRDB.swift:191:56:191:65 | [...] [Array element] | testGRDB.swift:191:56:191:65 | [...] | +| testGRDB.swift:191:57:191:57 | password | testGRDB.swift:191:56:191:65 | [...] [Array element] | +| testGRDB.swift:192:47:192:56 | [...] [Array element] | testGRDB.swift:192:47:192:56 | [...] | +| testGRDB.swift:192:48:192:48 | password | testGRDB.swift:192:47:192:56 | [...] [Array element] | +| testGRDB.swift:198:29:198:38 | [...] [Array element] | testGRDB.swift:198:29:198:38 | [...] | +| testGRDB.swift:198:30:198:30 | password | testGRDB.swift:198:29:198:38 | [...] [Array element] | +| testGRDB.swift:201:23:201:32 | [...] [Array element] | testGRDB.swift:201:23:201:32 | [...] | +| testGRDB.swift:201:24:201:24 | password | testGRDB.swift:201:23:201:32 | [...] [Array element] | +| testGRDB.swift:206:66:206:75 | [...] [Array element] | testGRDB.swift:206:66:206:75 | [...] | +| testGRDB.swift:206:67:206:67 | password | testGRDB.swift:206:66:206:75 | [...] [Array element] | +| testGRDB.swift:208:80:208:89 | [...] [Array element] | testGRDB.swift:208:80:208:89 | [...] | +| testGRDB.swift:208:81:208:81 | password | testGRDB.swift:208:80:208:89 | [...] [Array element] | +| testGRDB.swift:210:84:210:93 | [...] [Array element] | testGRDB.swift:210:84:210:93 | [...] | +| testGRDB.swift:210:85:210:85 | password | testGRDB.swift:210:84:210:93 | [...] [Array element] | +| testGRDB.swift:212:98:212:107 | [...] [Array element] | testGRDB.swift:212:98:212:107 | [...] | +| testGRDB.swift:212:99:212:99 | password | testGRDB.swift:212:98:212:107 | [...] [Array element] | | testRealm.swift:27:6:27:6 | value | file://:0:0:0:0 | value | | testRealm.swift:34:6:34:6 | value | file://:0:0:0:0 | value | | testRealm.swift:41:2:41:2 | [post] a [data] | testRealm.swift:41:2:41:2 | [post] a | @@ -326,106 +377,157 @@ nodes | testCoreData.swift:96:15:96:15 | y | semmle.label | y | | testCoreData.swift:97:15:97:15 | z | semmle.label | z | | testGRDB.swift:73:56:73:65 | [...] | semmle.label | [...] | +| testGRDB.swift:73:56:73:65 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:73:57:73:57 | password | semmle.label | password | | testGRDB.swift:76:42:76:51 | [...] | semmle.label | [...] | +| testGRDB.swift:76:42:76:51 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:76:43:76:43 | password | semmle.label | password | | testGRDB.swift:81:44:81:53 | [...] | semmle.label | [...] | +| testGRDB.swift:81:44:81:53 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:81:45:81:45 | password | semmle.label | password | | testGRDB.swift:83:44:83:53 | [...] | semmle.label | [...] | +| testGRDB.swift:83:44:83:53 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:83:45:83:45 | password | semmle.label | password | | testGRDB.swift:85:44:85:53 | [...] | semmle.label | [...] | +| testGRDB.swift:85:44:85:53 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:85:45:85:45 | password | semmle.label | password | | testGRDB.swift:87:44:87:53 | [...] | semmle.label | [...] | +| testGRDB.swift:87:44:87:53 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:87:45:87:45 | password | semmle.label | password | | testGRDB.swift:92:37:92:46 | [...] | semmle.label | [...] | +| testGRDB.swift:92:37:92:46 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:92:38:92:38 | password | semmle.label | password | | testGRDB.swift:95:36:95:45 | [...] | semmle.label | [...] | +| testGRDB.swift:95:36:95:45 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:95:37:95:37 | password | semmle.label | password | | testGRDB.swift:100:72:100:81 | [...] | semmle.label | [...] | +| testGRDB.swift:100:72:100:81 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:100:73:100:73 | password | semmle.label | password | | testGRDB.swift:101:72:101:81 | [...] | semmle.label | [...] | +| testGRDB.swift:101:72:101:81 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:101:73:101:73 | password | semmle.label | password | | testGRDB.swift:107:52:107:61 | [...] | semmle.label | [...] | +| testGRDB.swift:107:52:107:61 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:107:53:107:53 | password | semmle.label | password | | testGRDB.swift:109:52:109:61 | [...] | semmle.label | [...] | +| testGRDB.swift:109:52:109:61 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:109:53:109:53 | password | semmle.label | password | | testGRDB.swift:111:51:111:60 | [...] | semmle.label | [...] | +| testGRDB.swift:111:51:111:60 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:111:52:111:52 | password | semmle.label | password | | testGRDB.swift:116:47:116:56 | [...] | semmle.label | [...] | +| testGRDB.swift:116:47:116:56 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:116:48:116:48 | password | semmle.label | password | | testGRDB.swift:118:47:118:56 | [...] | semmle.label | [...] | +| testGRDB.swift:118:47:118:56 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:118:48:118:48 | password | semmle.label | password | | testGRDB.swift:121:44:121:53 | [...] | semmle.label | [...] | +| testGRDB.swift:121:44:121:53 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:121:45:121:45 | password | semmle.label | password | | testGRDB.swift:123:44:123:53 | [...] | semmle.label | [...] | +| testGRDB.swift:123:44:123:53 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:123:45:123:45 | password | semmle.label | password | | testGRDB.swift:126:44:126:53 | [...] | semmle.label | [...] | +| testGRDB.swift:126:44:126:53 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:126:45:126:45 | password | semmle.label | password | | testGRDB.swift:128:44:128:53 | [...] | semmle.label | [...] | +| testGRDB.swift:128:44:128:53 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:128:45:128:45 | password | semmle.label | password | | testGRDB.swift:131:44:131:53 | [...] | semmle.label | [...] | +| testGRDB.swift:131:44:131:53 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:131:45:131:45 | password | semmle.label | password | | testGRDB.swift:133:44:133:53 | [...] | semmle.label | [...] | +| testGRDB.swift:133:44:133:53 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:133:45:133:45 | password | semmle.label | password | | testGRDB.swift:138:68:138:77 | [...] | semmle.label | [...] | +| testGRDB.swift:138:68:138:77 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:138:69:138:69 | password | semmle.label | password | | testGRDB.swift:140:68:140:77 | [...] | semmle.label | [...] | +| testGRDB.swift:140:68:140:77 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:140:69:140:69 | password | semmle.label | password | | testGRDB.swift:143:65:143:74 | [...] | semmle.label | [...] | +| testGRDB.swift:143:65:143:74 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:143:66:143:66 | password | semmle.label | password | | testGRDB.swift:145:65:145:74 | [...] | semmle.label | [...] | +| testGRDB.swift:145:65:145:74 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:145:66:145:66 | password | semmle.label | password | | testGRDB.swift:148:65:148:74 | [...] | semmle.label | [...] | +| testGRDB.swift:148:65:148:74 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:148:66:148:66 | password | semmle.label | password | | testGRDB.swift:150:65:150:74 | [...] | semmle.label | [...] | +| testGRDB.swift:150:65:150:74 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:150:66:150:66 | password | semmle.label | password | | testGRDB.swift:153:65:153:74 | [...] | semmle.label | [...] | +| testGRDB.swift:153:65:153:74 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:153:66:153:66 | password | semmle.label | password | | testGRDB.swift:155:65:155:74 | [...] | semmle.label | [...] | +| testGRDB.swift:155:65:155:74 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:155:66:155:66 | password | semmle.label | password | | testGRDB.swift:160:59:160:68 | [...] | semmle.label | [...] | +| testGRDB.swift:160:59:160:68 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:160:60:160:60 | password | semmle.label | password | | testGRDB.swift:161:50:161:59 | [...] | semmle.label | [...] | +| testGRDB.swift:161:50:161:59 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:161:51:161:51 | password | semmle.label | password | | testGRDB.swift:164:59:164:68 | [...] | semmle.label | [...] | +| testGRDB.swift:164:59:164:68 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:164:60:164:60 | password | semmle.label | password | | testGRDB.swift:165:50:165:59 | [...] | semmle.label | [...] | +| testGRDB.swift:165:50:165:59 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:165:51:165:51 | password | semmle.label | password | | testGRDB.swift:169:56:169:65 | [...] | semmle.label | [...] | +| testGRDB.swift:169:56:169:65 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:169:57:169:57 | password | semmle.label | password | | testGRDB.swift:170:47:170:56 | [...] | semmle.label | [...] | +| testGRDB.swift:170:47:170:56 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:170:48:170:48 | password | semmle.label | password | | testGRDB.swift:173:56:173:65 | [...] | semmle.label | [...] | +| testGRDB.swift:173:56:173:65 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:173:57:173:57 | password | semmle.label | password | | testGRDB.swift:174:47:174:56 | [...] | semmle.label | [...] | +| testGRDB.swift:174:47:174:56 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:174:48:174:48 | password | semmle.label | password | | testGRDB.swift:178:56:178:65 | [...] | semmle.label | [...] | +| testGRDB.swift:178:56:178:65 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:178:57:178:57 | password | semmle.label | password | | testGRDB.swift:179:47:179:56 | [...] | semmle.label | [...] | +| testGRDB.swift:179:47:179:56 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:179:48:179:48 | password | semmle.label | password | | testGRDB.swift:182:56:182:65 | [...] | semmle.label | [...] | +| testGRDB.swift:182:56:182:65 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:182:57:182:57 | password | semmle.label | password | | testGRDB.swift:183:47:183:56 | [...] | semmle.label | [...] | +| testGRDB.swift:183:47:183:56 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:183:48:183:48 | password | semmle.label | password | | testGRDB.swift:187:56:187:65 | [...] | semmle.label | [...] | +| testGRDB.swift:187:56:187:65 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:187:57:187:57 | password | semmle.label | password | | testGRDB.swift:188:47:188:56 | [...] | semmle.label | [...] | +| testGRDB.swift:188:47:188:56 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:188:48:188:48 | password | semmle.label | password | | testGRDB.swift:191:56:191:65 | [...] | semmle.label | [...] | +| testGRDB.swift:191:56:191:65 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:191:57:191:57 | password | semmle.label | password | | testGRDB.swift:192:47:192:56 | [...] | semmle.label | [...] | +| testGRDB.swift:192:47:192:56 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:192:48:192:48 | password | semmle.label | password | | testGRDB.swift:198:29:198:38 | [...] | semmle.label | [...] | +| testGRDB.swift:198:29:198:38 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:198:30:198:30 | password | semmle.label | password | | testGRDB.swift:201:23:201:32 | [...] | semmle.label | [...] | +| testGRDB.swift:201:23:201:32 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:201:24:201:24 | password | semmle.label | password | | testGRDB.swift:206:66:206:75 | [...] | semmle.label | [...] | +| testGRDB.swift:206:66:206:75 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:206:67:206:67 | password | semmle.label | password | | testGRDB.swift:208:80:208:89 | [...] | semmle.label | [...] | +| testGRDB.swift:208:80:208:89 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:208:81:208:81 | password | semmle.label | password | | testGRDB.swift:210:84:210:93 | [...] | semmle.label | [...] | +| testGRDB.swift:210:84:210:93 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:210:85:210:85 | password | semmle.label | password | | testGRDB.swift:212:98:212:107 | [...] | semmle.label | [...] | +| testGRDB.swift:212:98:212:107 | [...] [Array element] | semmle.label | [...] [Array element] | | testGRDB.swift:212:99:212:99 | password | semmle.label | password | | testRealm.swift:27:6:27:6 | value | semmle.label | value | | testRealm.swift:34:6:34:6 | value | semmle.label | value | From bbd3c66d5a3ec712fbd6f5473ee38d2354456524 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 2 Oct 2023 20:30:24 +0100 Subject: [PATCH 776/788] Swift: Update for CollectionContent. --- .../CleartextStorageDatabaseQuery.qll | 2 +- .../swift/security/CommandInjectionQuery.qll | 2 +- .../CWE-311/CleartextStorageDatabase.expected | 306 +++++++++--------- 3 files changed, 155 insertions(+), 155 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll index 2cb8c1ef164..6d718500d27 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll @@ -43,7 +43,7 @@ module CleartextStorageDatabaseConfig implements DataFlow::ConfigSig { // flow out from array elements of at the sink, // for example in `database.allStatements(sql: "", arguments: [sensitive])`. isSink(node) and - c.getAReadContent() instanceof DataFlow::Content::ArrayContent + c.getAReadContent() instanceof DataFlow::Content::CollectionContent } } diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll index df989b1c14a..c99332038b4 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionQuery.qll @@ -27,7 +27,7 @@ module CommandInjectionConfig implements DataFlow::ConfigSig { predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c) { // flow out from array elements of at the sink, for example in `task.arguments = [tainted]`. isSink(node) and - c.getAReadContent() instanceof DataFlow::Content::ArrayContent + c.getAReadContent() instanceof DataFlow::Content::CollectionContent } } diff --git a/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected b/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected index d2219e02fd3..db40063dbab 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected +++ b/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected @@ -114,108 +114,108 @@ edges | testCoreData.swift:91:10:91:10 | passwd | testCoreData.swift:95:15:95:15 | x | | testCoreData.swift:92:10:92:10 | passwd | testCoreData.swift:96:15:96:15 | y | | testCoreData.swift:93:10:93:10 | passwd | testCoreData.swift:97:15:97:15 | z | -| testGRDB.swift:73:56:73:65 | [...] [Array element] | testGRDB.swift:73:56:73:65 | [...] | -| testGRDB.swift:73:57:73:57 | password | testGRDB.swift:73:56:73:65 | [...] [Array element] | -| testGRDB.swift:76:42:76:51 | [...] [Array element] | testGRDB.swift:76:42:76:51 | [...] | -| testGRDB.swift:76:43:76:43 | password | testGRDB.swift:76:42:76:51 | [...] [Array element] | -| testGRDB.swift:81:44:81:53 | [...] [Array element] | testGRDB.swift:81:44:81:53 | [...] | -| testGRDB.swift:81:45:81:45 | password | testGRDB.swift:81:44:81:53 | [...] [Array element] | -| testGRDB.swift:83:44:83:53 | [...] [Array element] | testGRDB.swift:83:44:83:53 | [...] | -| testGRDB.swift:83:45:83:45 | password | testGRDB.swift:83:44:83:53 | [...] [Array element] | -| testGRDB.swift:85:44:85:53 | [...] [Array element] | testGRDB.swift:85:44:85:53 | [...] | -| testGRDB.swift:85:45:85:45 | password | testGRDB.swift:85:44:85:53 | [...] [Array element] | -| testGRDB.swift:87:44:87:53 | [...] [Array element] | testGRDB.swift:87:44:87:53 | [...] | -| testGRDB.swift:87:45:87:45 | password | testGRDB.swift:87:44:87:53 | [...] [Array element] | -| testGRDB.swift:92:37:92:46 | [...] [Array element] | testGRDB.swift:92:37:92:46 | [...] | -| testGRDB.swift:92:38:92:38 | password | testGRDB.swift:92:37:92:46 | [...] [Array element] | -| testGRDB.swift:95:36:95:45 | [...] [Array element] | testGRDB.swift:95:36:95:45 | [...] | -| testGRDB.swift:95:37:95:37 | password | testGRDB.swift:95:36:95:45 | [...] [Array element] | -| testGRDB.swift:100:72:100:81 | [...] [Array element] | testGRDB.swift:100:72:100:81 | [...] | -| testGRDB.swift:100:73:100:73 | password | testGRDB.swift:100:72:100:81 | [...] [Array element] | -| testGRDB.swift:101:72:101:81 | [...] [Array element] | testGRDB.swift:101:72:101:81 | [...] | -| testGRDB.swift:101:73:101:73 | password | testGRDB.swift:101:72:101:81 | [...] [Array element] | -| testGRDB.swift:107:52:107:61 | [...] [Array element] | testGRDB.swift:107:52:107:61 | [...] | -| testGRDB.swift:107:53:107:53 | password | testGRDB.swift:107:52:107:61 | [...] [Array element] | -| testGRDB.swift:109:52:109:61 | [...] [Array element] | testGRDB.swift:109:52:109:61 | [...] | -| testGRDB.swift:109:53:109:53 | password | testGRDB.swift:109:52:109:61 | [...] [Array element] | -| testGRDB.swift:111:51:111:60 | [...] [Array element] | testGRDB.swift:111:51:111:60 | [...] | -| testGRDB.swift:111:52:111:52 | password | testGRDB.swift:111:51:111:60 | [...] [Array element] | -| testGRDB.swift:116:47:116:56 | [...] [Array element] | testGRDB.swift:116:47:116:56 | [...] | -| testGRDB.swift:116:48:116:48 | password | testGRDB.swift:116:47:116:56 | [...] [Array element] | -| testGRDB.swift:118:47:118:56 | [...] [Array element] | testGRDB.swift:118:47:118:56 | [...] | -| testGRDB.swift:118:48:118:48 | password | testGRDB.swift:118:47:118:56 | [...] [Array element] | -| testGRDB.swift:121:44:121:53 | [...] [Array element] | testGRDB.swift:121:44:121:53 | [...] | -| testGRDB.swift:121:45:121:45 | password | testGRDB.swift:121:44:121:53 | [...] [Array element] | -| testGRDB.swift:123:44:123:53 | [...] [Array element] | testGRDB.swift:123:44:123:53 | [...] | -| testGRDB.swift:123:45:123:45 | password | testGRDB.swift:123:44:123:53 | [...] [Array element] | -| testGRDB.swift:126:44:126:53 | [...] [Array element] | testGRDB.swift:126:44:126:53 | [...] | -| testGRDB.swift:126:45:126:45 | password | testGRDB.swift:126:44:126:53 | [...] [Array element] | -| testGRDB.swift:128:44:128:53 | [...] [Array element] | testGRDB.swift:128:44:128:53 | [...] | -| testGRDB.swift:128:45:128:45 | password | testGRDB.swift:128:44:128:53 | [...] [Array element] | -| testGRDB.swift:131:44:131:53 | [...] [Array element] | testGRDB.swift:131:44:131:53 | [...] | -| testGRDB.swift:131:45:131:45 | password | testGRDB.swift:131:44:131:53 | [...] [Array element] | -| testGRDB.swift:133:44:133:53 | [...] [Array element] | testGRDB.swift:133:44:133:53 | [...] | -| testGRDB.swift:133:45:133:45 | password | testGRDB.swift:133:44:133:53 | [...] [Array element] | -| testGRDB.swift:138:68:138:77 | [...] [Array element] | testGRDB.swift:138:68:138:77 | [...] | -| testGRDB.swift:138:69:138:69 | password | testGRDB.swift:138:68:138:77 | [...] [Array element] | -| testGRDB.swift:140:68:140:77 | [...] [Array element] | testGRDB.swift:140:68:140:77 | [...] | -| testGRDB.swift:140:69:140:69 | password | testGRDB.swift:140:68:140:77 | [...] [Array element] | -| testGRDB.swift:143:65:143:74 | [...] [Array element] | testGRDB.swift:143:65:143:74 | [...] | -| testGRDB.swift:143:66:143:66 | password | testGRDB.swift:143:65:143:74 | [...] [Array element] | -| testGRDB.swift:145:65:145:74 | [...] [Array element] | testGRDB.swift:145:65:145:74 | [...] | -| testGRDB.swift:145:66:145:66 | password | testGRDB.swift:145:65:145:74 | [...] [Array element] | -| testGRDB.swift:148:65:148:74 | [...] [Array element] | testGRDB.swift:148:65:148:74 | [...] | -| testGRDB.swift:148:66:148:66 | password | testGRDB.swift:148:65:148:74 | [...] [Array element] | -| testGRDB.swift:150:65:150:74 | [...] [Array element] | testGRDB.swift:150:65:150:74 | [...] | -| testGRDB.swift:150:66:150:66 | password | testGRDB.swift:150:65:150:74 | [...] [Array element] | -| testGRDB.swift:153:65:153:74 | [...] [Array element] | testGRDB.swift:153:65:153:74 | [...] | -| testGRDB.swift:153:66:153:66 | password | testGRDB.swift:153:65:153:74 | [...] [Array element] | -| testGRDB.swift:155:65:155:74 | [...] [Array element] | testGRDB.swift:155:65:155:74 | [...] | -| testGRDB.swift:155:66:155:66 | password | testGRDB.swift:155:65:155:74 | [...] [Array element] | -| testGRDB.swift:160:59:160:68 | [...] [Array element] | testGRDB.swift:160:59:160:68 | [...] | -| testGRDB.swift:160:60:160:60 | password | testGRDB.swift:160:59:160:68 | [...] [Array element] | -| testGRDB.swift:161:50:161:59 | [...] [Array element] | testGRDB.swift:161:50:161:59 | [...] | -| testGRDB.swift:161:51:161:51 | password | testGRDB.swift:161:50:161:59 | [...] [Array element] | -| testGRDB.swift:164:59:164:68 | [...] [Array element] | testGRDB.swift:164:59:164:68 | [...] | -| testGRDB.swift:164:60:164:60 | password | testGRDB.swift:164:59:164:68 | [...] [Array element] | -| testGRDB.swift:165:50:165:59 | [...] [Array element] | testGRDB.swift:165:50:165:59 | [...] | -| testGRDB.swift:165:51:165:51 | password | testGRDB.swift:165:50:165:59 | [...] [Array element] | -| testGRDB.swift:169:56:169:65 | [...] [Array element] | testGRDB.swift:169:56:169:65 | [...] | -| testGRDB.swift:169:57:169:57 | password | testGRDB.swift:169:56:169:65 | [...] [Array element] | -| testGRDB.swift:170:47:170:56 | [...] [Array element] | testGRDB.swift:170:47:170:56 | [...] | -| testGRDB.swift:170:48:170:48 | password | testGRDB.swift:170:47:170:56 | [...] [Array element] | -| testGRDB.swift:173:56:173:65 | [...] [Array element] | testGRDB.swift:173:56:173:65 | [...] | -| testGRDB.swift:173:57:173:57 | password | testGRDB.swift:173:56:173:65 | [...] [Array element] | -| testGRDB.swift:174:47:174:56 | [...] [Array element] | testGRDB.swift:174:47:174:56 | [...] | -| testGRDB.swift:174:48:174:48 | password | testGRDB.swift:174:47:174:56 | [...] [Array element] | -| testGRDB.swift:178:56:178:65 | [...] [Array element] | testGRDB.swift:178:56:178:65 | [...] | -| testGRDB.swift:178:57:178:57 | password | testGRDB.swift:178:56:178:65 | [...] [Array element] | -| testGRDB.swift:179:47:179:56 | [...] [Array element] | testGRDB.swift:179:47:179:56 | [...] | -| testGRDB.swift:179:48:179:48 | password | testGRDB.swift:179:47:179:56 | [...] [Array element] | -| testGRDB.swift:182:56:182:65 | [...] [Array element] | testGRDB.swift:182:56:182:65 | [...] | -| testGRDB.swift:182:57:182:57 | password | testGRDB.swift:182:56:182:65 | [...] [Array element] | -| testGRDB.swift:183:47:183:56 | [...] [Array element] | testGRDB.swift:183:47:183:56 | [...] | -| testGRDB.swift:183:48:183:48 | password | testGRDB.swift:183:47:183:56 | [...] [Array element] | -| testGRDB.swift:187:56:187:65 | [...] [Array element] | testGRDB.swift:187:56:187:65 | [...] | -| testGRDB.swift:187:57:187:57 | password | testGRDB.swift:187:56:187:65 | [...] [Array element] | -| testGRDB.swift:188:47:188:56 | [...] [Array element] | testGRDB.swift:188:47:188:56 | [...] | -| testGRDB.swift:188:48:188:48 | password | testGRDB.swift:188:47:188:56 | [...] [Array element] | -| testGRDB.swift:191:56:191:65 | [...] [Array element] | testGRDB.swift:191:56:191:65 | [...] | -| testGRDB.swift:191:57:191:57 | password | testGRDB.swift:191:56:191:65 | [...] [Array element] | -| testGRDB.swift:192:47:192:56 | [...] [Array element] | testGRDB.swift:192:47:192:56 | [...] | -| testGRDB.swift:192:48:192:48 | password | testGRDB.swift:192:47:192:56 | [...] [Array element] | -| testGRDB.swift:198:29:198:38 | [...] [Array element] | testGRDB.swift:198:29:198:38 | [...] | -| testGRDB.swift:198:30:198:30 | password | testGRDB.swift:198:29:198:38 | [...] [Array element] | -| testGRDB.swift:201:23:201:32 | [...] [Array element] | testGRDB.swift:201:23:201:32 | [...] | -| testGRDB.swift:201:24:201:24 | password | testGRDB.swift:201:23:201:32 | [...] [Array element] | -| testGRDB.swift:206:66:206:75 | [...] [Array element] | testGRDB.swift:206:66:206:75 | [...] | -| testGRDB.swift:206:67:206:67 | password | testGRDB.swift:206:66:206:75 | [...] [Array element] | -| testGRDB.swift:208:80:208:89 | [...] [Array element] | testGRDB.swift:208:80:208:89 | [...] | -| testGRDB.swift:208:81:208:81 | password | testGRDB.swift:208:80:208:89 | [...] [Array element] | -| testGRDB.swift:210:84:210:93 | [...] [Array element] | testGRDB.swift:210:84:210:93 | [...] | -| testGRDB.swift:210:85:210:85 | password | testGRDB.swift:210:84:210:93 | [...] [Array element] | -| testGRDB.swift:212:98:212:107 | [...] [Array element] | testGRDB.swift:212:98:212:107 | [...] | -| testGRDB.swift:212:99:212:99 | password | testGRDB.swift:212:98:212:107 | [...] [Array element] | +| testGRDB.swift:73:56:73:65 | [...] [Collection element] | testGRDB.swift:73:56:73:65 | [...] | +| testGRDB.swift:73:57:73:57 | password | testGRDB.swift:73:56:73:65 | [...] [Collection element] | +| testGRDB.swift:76:42:76:51 | [...] [Collection element] | testGRDB.swift:76:42:76:51 | [...] | +| testGRDB.swift:76:43:76:43 | password | testGRDB.swift:76:42:76:51 | [...] [Collection element] | +| testGRDB.swift:81:44:81:53 | [...] [Collection element] | testGRDB.swift:81:44:81:53 | [...] | +| testGRDB.swift:81:45:81:45 | password | testGRDB.swift:81:44:81:53 | [...] [Collection element] | +| testGRDB.swift:83:44:83:53 | [...] [Collection element] | testGRDB.swift:83:44:83:53 | [...] | +| testGRDB.swift:83:45:83:45 | password | testGRDB.swift:83:44:83:53 | [...] [Collection element] | +| testGRDB.swift:85:44:85:53 | [...] [Collection element] | testGRDB.swift:85:44:85:53 | [...] | +| testGRDB.swift:85:45:85:45 | password | testGRDB.swift:85:44:85:53 | [...] [Collection element] | +| testGRDB.swift:87:44:87:53 | [...] [Collection element] | testGRDB.swift:87:44:87:53 | [...] | +| testGRDB.swift:87:45:87:45 | password | testGRDB.swift:87:44:87:53 | [...] [Collection element] | +| testGRDB.swift:92:37:92:46 | [...] [Collection element] | testGRDB.swift:92:37:92:46 | [...] | +| testGRDB.swift:92:38:92:38 | password | testGRDB.swift:92:37:92:46 | [...] [Collection element] | +| testGRDB.swift:95:36:95:45 | [...] [Collection element] | testGRDB.swift:95:36:95:45 | [...] | +| testGRDB.swift:95:37:95:37 | password | testGRDB.swift:95:36:95:45 | [...] [Collection element] | +| testGRDB.swift:100:72:100:81 | [...] [Collection element] | testGRDB.swift:100:72:100:81 | [...] | +| testGRDB.swift:100:73:100:73 | password | testGRDB.swift:100:72:100:81 | [...] [Collection element] | +| testGRDB.swift:101:72:101:81 | [...] [Collection element] | testGRDB.swift:101:72:101:81 | [...] | +| testGRDB.swift:101:73:101:73 | password | testGRDB.swift:101:72:101:81 | [...] [Collection element] | +| testGRDB.swift:107:52:107:61 | [...] [Collection element] | testGRDB.swift:107:52:107:61 | [...] | +| testGRDB.swift:107:53:107:53 | password | testGRDB.swift:107:52:107:61 | [...] [Collection element] | +| testGRDB.swift:109:52:109:61 | [...] [Collection element] | testGRDB.swift:109:52:109:61 | [...] | +| testGRDB.swift:109:53:109:53 | password | testGRDB.swift:109:52:109:61 | [...] [Collection element] | +| testGRDB.swift:111:51:111:60 | [...] [Collection element] | testGRDB.swift:111:51:111:60 | [...] | +| testGRDB.swift:111:52:111:52 | password | testGRDB.swift:111:51:111:60 | [...] [Collection element] | +| testGRDB.swift:116:47:116:56 | [...] [Collection element] | testGRDB.swift:116:47:116:56 | [...] | +| testGRDB.swift:116:48:116:48 | password | testGRDB.swift:116:47:116:56 | [...] [Collection element] | +| testGRDB.swift:118:47:118:56 | [...] [Collection element] | testGRDB.swift:118:47:118:56 | [...] | +| testGRDB.swift:118:48:118:48 | password | testGRDB.swift:118:47:118:56 | [...] [Collection element] | +| testGRDB.swift:121:44:121:53 | [...] [Collection element] | testGRDB.swift:121:44:121:53 | [...] | +| testGRDB.swift:121:45:121:45 | password | testGRDB.swift:121:44:121:53 | [...] [Collection element] | +| testGRDB.swift:123:44:123:53 | [...] [Collection element] | testGRDB.swift:123:44:123:53 | [...] | +| testGRDB.swift:123:45:123:45 | password | testGRDB.swift:123:44:123:53 | [...] [Collection element] | +| testGRDB.swift:126:44:126:53 | [...] [Collection element] | testGRDB.swift:126:44:126:53 | [...] | +| testGRDB.swift:126:45:126:45 | password | testGRDB.swift:126:44:126:53 | [...] [Collection element] | +| testGRDB.swift:128:44:128:53 | [...] [Collection element] | testGRDB.swift:128:44:128:53 | [...] | +| testGRDB.swift:128:45:128:45 | password | testGRDB.swift:128:44:128:53 | [...] [Collection element] | +| testGRDB.swift:131:44:131:53 | [...] [Collection element] | testGRDB.swift:131:44:131:53 | [...] | +| testGRDB.swift:131:45:131:45 | password | testGRDB.swift:131:44:131:53 | [...] [Collection element] | +| testGRDB.swift:133:44:133:53 | [...] [Collection element] | testGRDB.swift:133:44:133:53 | [...] | +| testGRDB.swift:133:45:133:45 | password | testGRDB.swift:133:44:133:53 | [...] [Collection element] | +| testGRDB.swift:138:68:138:77 | [...] [Collection element] | testGRDB.swift:138:68:138:77 | [...] | +| testGRDB.swift:138:69:138:69 | password | testGRDB.swift:138:68:138:77 | [...] [Collection element] | +| testGRDB.swift:140:68:140:77 | [...] [Collection element] | testGRDB.swift:140:68:140:77 | [...] | +| testGRDB.swift:140:69:140:69 | password | testGRDB.swift:140:68:140:77 | [...] [Collection element] | +| testGRDB.swift:143:65:143:74 | [...] [Collection element] | testGRDB.swift:143:65:143:74 | [...] | +| testGRDB.swift:143:66:143:66 | password | testGRDB.swift:143:65:143:74 | [...] [Collection element] | +| testGRDB.swift:145:65:145:74 | [...] [Collection element] | testGRDB.swift:145:65:145:74 | [...] | +| testGRDB.swift:145:66:145:66 | password | testGRDB.swift:145:65:145:74 | [...] [Collection element] | +| testGRDB.swift:148:65:148:74 | [...] [Collection element] | testGRDB.swift:148:65:148:74 | [...] | +| testGRDB.swift:148:66:148:66 | password | testGRDB.swift:148:65:148:74 | [...] [Collection element] | +| testGRDB.swift:150:65:150:74 | [...] [Collection element] | testGRDB.swift:150:65:150:74 | [...] | +| testGRDB.swift:150:66:150:66 | password | testGRDB.swift:150:65:150:74 | [...] [Collection element] | +| testGRDB.swift:153:65:153:74 | [...] [Collection element] | testGRDB.swift:153:65:153:74 | [...] | +| testGRDB.swift:153:66:153:66 | password | testGRDB.swift:153:65:153:74 | [...] [Collection element] | +| testGRDB.swift:155:65:155:74 | [...] [Collection element] | testGRDB.swift:155:65:155:74 | [...] | +| testGRDB.swift:155:66:155:66 | password | testGRDB.swift:155:65:155:74 | [...] [Collection element] | +| testGRDB.swift:160:59:160:68 | [...] [Collection element] | testGRDB.swift:160:59:160:68 | [...] | +| testGRDB.swift:160:60:160:60 | password | testGRDB.swift:160:59:160:68 | [...] [Collection element] | +| testGRDB.swift:161:50:161:59 | [...] [Collection element] | testGRDB.swift:161:50:161:59 | [...] | +| testGRDB.swift:161:51:161:51 | password | testGRDB.swift:161:50:161:59 | [...] [Collection element] | +| testGRDB.swift:164:59:164:68 | [...] [Collection element] | testGRDB.swift:164:59:164:68 | [...] | +| testGRDB.swift:164:60:164:60 | password | testGRDB.swift:164:59:164:68 | [...] [Collection element] | +| testGRDB.swift:165:50:165:59 | [...] [Collection element] | testGRDB.swift:165:50:165:59 | [...] | +| testGRDB.swift:165:51:165:51 | password | testGRDB.swift:165:50:165:59 | [...] [Collection element] | +| testGRDB.swift:169:56:169:65 | [...] [Collection element] | testGRDB.swift:169:56:169:65 | [...] | +| testGRDB.swift:169:57:169:57 | password | testGRDB.swift:169:56:169:65 | [...] [Collection element] | +| testGRDB.swift:170:47:170:56 | [...] [Collection element] | testGRDB.swift:170:47:170:56 | [...] | +| testGRDB.swift:170:48:170:48 | password | testGRDB.swift:170:47:170:56 | [...] [Collection element] | +| testGRDB.swift:173:56:173:65 | [...] [Collection element] | testGRDB.swift:173:56:173:65 | [...] | +| testGRDB.swift:173:57:173:57 | password | testGRDB.swift:173:56:173:65 | [...] [Collection element] | +| testGRDB.swift:174:47:174:56 | [...] [Collection element] | testGRDB.swift:174:47:174:56 | [...] | +| testGRDB.swift:174:48:174:48 | password | testGRDB.swift:174:47:174:56 | [...] [Collection element] | +| testGRDB.swift:178:56:178:65 | [...] [Collection element] | testGRDB.swift:178:56:178:65 | [...] | +| testGRDB.swift:178:57:178:57 | password | testGRDB.swift:178:56:178:65 | [...] [Collection element] | +| testGRDB.swift:179:47:179:56 | [...] [Collection element] | testGRDB.swift:179:47:179:56 | [...] | +| testGRDB.swift:179:48:179:48 | password | testGRDB.swift:179:47:179:56 | [...] [Collection element] | +| testGRDB.swift:182:56:182:65 | [...] [Collection element] | testGRDB.swift:182:56:182:65 | [...] | +| testGRDB.swift:182:57:182:57 | password | testGRDB.swift:182:56:182:65 | [...] [Collection element] | +| testGRDB.swift:183:47:183:56 | [...] [Collection element] | testGRDB.swift:183:47:183:56 | [...] | +| testGRDB.swift:183:48:183:48 | password | testGRDB.swift:183:47:183:56 | [...] [Collection element] | +| testGRDB.swift:187:56:187:65 | [...] [Collection element] | testGRDB.swift:187:56:187:65 | [...] | +| testGRDB.swift:187:57:187:57 | password | testGRDB.swift:187:56:187:65 | [...] [Collection element] | +| testGRDB.swift:188:47:188:56 | [...] [Collection element] | testGRDB.swift:188:47:188:56 | [...] | +| testGRDB.swift:188:48:188:48 | password | testGRDB.swift:188:47:188:56 | [...] [Collection element] | +| testGRDB.swift:191:56:191:65 | [...] [Collection element] | testGRDB.swift:191:56:191:65 | [...] | +| testGRDB.swift:191:57:191:57 | password | testGRDB.swift:191:56:191:65 | [...] [Collection element] | +| testGRDB.swift:192:47:192:56 | [...] [Collection element] | testGRDB.swift:192:47:192:56 | [...] | +| testGRDB.swift:192:48:192:48 | password | testGRDB.swift:192:47:192:56 | [...] [Collection element] | +| testGRDB.swift:198:29:198:38 | [...] [Collection element] | testGRDB.swift:198:29:198:38 | [...] | +| testGRDB.swift:198:30:198:30 | password | testGRDB.swift:198:29:198:38 | [...] [Collection element] | +| testGRDB.swift:201:23:201:32 | [...] [Collection element] | testGRDB.swift:201:23:201:32 | [...] | +| testGRDB.swift:201:24:201:24 | password | testGRDB.swift:201:23:201:32 | [...] [Collection element] | +| testGRDB.swift:206:66:206:75 | [...] [Collection element] | testGRDB.swift:206:66:206:75 | [...] | +| testGRDB.swift:206:67:206:67 | password | testGRDB.swift:206:66:206:75 | [...] [Collection element] | +| testGRDB.swift:208:80:208:89 | [...] [Collection element] | testGRDB.swift:208:80:208:89 | [...] | +| testGRDB.swift:208:81:208:81 | password | testGRDB.swift:208:80:208:89 | [...] [Collection element] | +| testGRDB.swift:210:84:210:93 | [...] [Collection element] | testGRDB.swift:210:84:210:93 | [...] | +| testGRDB.swift:210:85:210:85 | password | testGRDB.swift:210:84:210:93 | [...] [Collection element] | +| testGRDB.swift:212:98:212:107 | [...] [Collection element] | testGRDB.swift:212:98:212:107 | [...] | +| testGRDB.swift:212:99:212:99 | password | testGRDB.swift:212:98:212:107 | [...] [Collection element] | | testRealm.swift:27:6:27:6 | value | file://:0:0:0:0 | value | | testRealm.swift:34:6:34:6 | value | file://:0:0:0:0 | value | | testRealm.swift:41:2:41:2 | [post] a [data] | testRealm.swift:41:2:41:2 | [post] a | @@ -377,157 +377,157 @@ nodes | testCoreData.swift:96:15:96:15 | y | semmle.label | y | | testCoreData.swift:97:15:97:15 | z | semmle.label | z | | testGRDB.swift:73:56:73:65 | [...] | semmle.label | [...] | -| testGRDB.swift:73:56:73:65 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:73:56:73:65 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:73:57:73:57 | password | semmle.label | password | | testGRDB.swift:76:42:76:51 | [...] | semmle.label | [...] | -| testGRDB.swift:76:42:76:51 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:76:42:76:51 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:76:43:76:43 | password | semmle.label | password | | testGRDB.swift:81:44:81:53 | [...] | semmle.label | [...] | -| testGRDB.swift:81:44:81:53 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:81:44:81:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:81:45:81:45 | password | semmle.label | password | | testGRDB.swift:83:44:83:53 | [...] | semmle.label | [...] | -| testGRDB.swift:83:44:83:53 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:83:44:83:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:83:45:83:45 | password | semmle.label | password | | testGRDB.swift:85:44:85:53 | [...] | semmle.label | [...] | -| testGRDB.swift:85:44:85:53 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:85:44:85:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:85:45:85:45 | password | semmle.label | password | | testGRDB.swift:87:44:87:53 | [...] | semmle.label | [...] | -| testGRDB.swift:87:44:87:53 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:87:44:87:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:87:45:87:45 | password | semmle.label | password | | testGRDB.swift:92:37:92:46 | [...] | semmle.label | [...] | -| testGRDB.swift:92:37:92:46 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:92:37:92:46 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:92:38:92:38 | password | semmle.label | password | | testGRDB.swift:95:36:95:45 | [...] | semmle.label | [...] | -| testGRDB.swift:95:36:95:45 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:95:36:95:45 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:95:37:95:37 | password | semmle.label | password | | testGRDB.swift:100:72:100:81 | [...] | semmle.label | [...] | -| testGRDB.swift:100:72:100:81 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:100:72:100:81 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:100:73:100:73 | password | semmle.label | password | | testGRDB.swift:101:72:101:81 | [...] | semmle.label | [...] | -| testGRDB.swift:101:72:101:81 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:101:72:101:81 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:101:73:101:73 | password | semmle.label | password | | testGRDB.swift:107:52:107:61 | [...] | semmle.label | [...] | -| testGRDB.swift:107:52:107:61 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:107:52:107:61 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:107:53:107:53 | password | semmle.label | password | | testGRDB.swift:109:52:109:61 | [...] | semmle.label | [...] | -| testGRDB.swift:109:52:109:61 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:109:52:109:61 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:109:53:109:53 | password | semmle.label | password | | testGRDB.swift:111:51:111:60 | [...] | semmle.label | [...] | -| testGRDB.swift:111:51:111:60 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:111:51:111:60 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:111:52:111:52 | password | semmle.label | password | | testGRDB.swift:116:47:116:56 | [...] | semmle.label | [...] | -| testGRDB.swift:116:47:116:56 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:116:47:116:56 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:116:48:116:48 | password | semmle.label | password | | testGRDB.swift:118:47:118:56 | [...] | semmle.label | [...] | -| testGRDB.swift:118:47:118:56 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:118:47:118:56 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:118:48:118:48 | password | semmle.label | password | | testGRDB.swift:121:44:121:53 | [...] | semmle.label | [...] | -| testGRDB.swift:121:44:121:53 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:121:44:121:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:121:45:121:45 | password | semmle.label | password | | testGRDB.swift:123:44:123:53 | [...] | semmle.label | [...] | -| testGRDB.swift:123:44:123:53 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:123:44:123:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:123:45:123:45 | password | semmle.label | password | | testGRDB.swift:126:44:126:53 | [...] | semmle.label | [...] | -| testGRDB.swift:126:44:126:53 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:126:44:126:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:126:45:126:45 | password | semmle.label | password | | testGRDB.swift:128:44:128:53 | [...] | semmle.label | [...] | -| testGRDB.swift:128:44:128:53 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:128:44:128:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:128:45:128:45 | password | semmle.label | password | | testGRDB.swift:131:44:131:53 | [...] | semmle.label | [...] | -| testGRDB.swift:131:44:131:53 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:131:44:131:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:131:45:131:45 | password | semmle.label | password | | testGRDB.swift:133:44:133:53 | [...] | semmle.label | [...] | -| testGRDB.swift:133:44:133:53 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:133:44:133:53 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:133:45:133:45 | password | semmle.label | password | | testGRDB.swift:138:68:138:77 | [...] | semmle.label | [...] | -| testGRDB.swift:138:68:138:77 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:138:68:138:77 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:138:69:138:69 | password | semmle.label | password | | testGRDB.swift:140:68:140:77 | [...] | semmle.label | [...] | -| testGRDB.swift:140:68:140:77 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:140:68:140:77 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:140:69:140:69 | password | semmle.label | password | | testGRDB.swift:143:65:143:74 | [...] | semmle.label | [...] | -| testGRDB.swift:143:65:143:74 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:143:65:143:74 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:143:66:143:66 | password | semmle.label | password | | testGRDB.swift:145:65:145:74 | [...] | semmle.label | [...] | -| testGRDB.swift:145:65:145:74 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:145:65:145:74 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:145:66:145:66 | password | semmle.label | password | | testGRDB.swift:148:65:148:74 | [...] | semmle.label | [...] | -| testGRDB.swift:148:65:148:74 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:148:65:148:74 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:148:66:148:66 | password | semmle.label | password | | testGRDB.swift:150:65:150:74 | [...] | semmle.label | [...] | -| testGRDB.swift:150:65:150:74 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:150:65:150:74 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:150:66:150:66 | password | semmle.label | password | | testGRDB.swift:153:65:153:74 | [...] | semmle.label | [...] | -| testGRDB.swift:153:65:153:74 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:153:65:153:74 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:153:66:153:66 | password | semmle.label | password | | testGRDB.swift:155:65:155:74 | [...] | semmle.label | [...] | -| testGRDB.swift:155:65:155:74 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:155:65:155:74 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:155:66:155:66 | password | semmle.label | password | | testGRDB.swift:160:59:160:68 | [...] | semmle.label | [...] | -| testGRDB.swift:160:59:160:68 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:160:59:160:68 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:160:60:160:60 | password | semmle.label | password | | testGRDB.swift:161:50:161:59 | [...] | semmle.label | [...] | -| testGRDB.swift:161:50:161:59 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:161:50:161:59 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:161:51:161:51 | password | semmle.label | password | | testGRDB.swift:164:59:164:68 | [...] | semmle.label | [...] | -| testGRDB.swift:164:59:164:68 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:164:59:164:68 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:164:60:164:60 | password | semmle.label | password | | testGRDB.swift:165:50:165:59 | [...] | semmle.label | [...] | -| testGRDB.swift:165:50:165:59 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:165:50:165:59 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:165:51:165:51 | password | semmle.label | password | | testGRDB.swift:169:56:169:65 | [...] | semmle.label | [...] | -| testGRDB.swift:169:56:169:65 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:169:56:169:65 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:169:57:169:57 | password | semmle.label | password | | testGRDB.swift:170:47:170:56 | [...] | semmle.label | [...] | -| testGRDB.swift:170:47:170:56 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:170:47:170:56 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:170:48:170:48 | password | semmle.label | password | | testGRDB.swift:173:56:173:65 | [...] | semmle.label | [...] | -| testGRDB.swift:173:56:173:65 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:173:56:173:65 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:173:57:173:57 | password | semmle.label | password | | testGRDB.swift:174:47:174:56 | [...] | semmle.label | [...] | -| testGRDB.swift:174:47:174:56 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:174:47:174:56 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:174:48:174:48 | password | semmle.label | password | | testGRDB.swift:178:56:178:65 | [...] | semmle.label | [...] | -| testGRDB.swift:178:56:178:65 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:178:56:178:65 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:178:57:178:57 | password | semmle.label | password | | testGRDB.swift:179:47:179:56 | [...] | semmle.label | [...] | -| testGRDB.swift:179:47:179:56 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:179:47:179:56 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:179:48:179:48 | password | semmle.label | password | | testGRDB.swift:182:56:182:65 | [...] | semmle.label | [...] | -| testGRDB.swift:182:56:182:65 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:182:56:182:65 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:182:57:182:57 | password | semmle.label | password | | testGRDB.swift:183:47:183:56 | [...] | semmle.label | [...] | -| testGRDB.swift:183:47:183:56 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:183:47:183:56 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:183:48:183:48 | password | semmle.label | password | | testGRDB.swift:187:56:187:65 | [...] | semmle.label | [...] | -| testGRDB.swift:187:56:187:65 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:187:56:187:65 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:187:57:187:57 | password | semmle.label | password | | testGRDB.swift:188:47:188:56 | [...] | semmle.label | [...] | -| testGRDB.swift:188:47:188:56 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:188:47:188:56 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:188:48:188:48 | password | semmle.label | password | | testGRDB.swift:191:56:191:65 | [...] | semmle.label | [...] | -| testGRDB.swift:191:56:191:65 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:191:56:191:65 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:191:57:191:57 | password | semmle.label | password | | testGRDB.swift:192:47:192:56 | [...] | semmle.label | [...] | -| testGRDB.swift:192:47:192:56 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:192:47:192:56 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:192:48:192:48 | password | semmle.label | password | | testGRDB.swift:198:29:198:38 | [...] | semmle.label | [...] | -| testGRDB.swift:198:29:198:38 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:198:29:198:38 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:198:30:198:30 | password | semmle.label | password | | testGRDB.swift:201:23:201:32 | [...] | semmle.label | [...] | -| testGRDB.swift:201:23:201:32 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:201:23:201:32 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:201:24:201:24 | password | semmle.label | password | | testGRDB.swift:206:66:206:75 | [...] | semmle.label | [...] | -| testGRDB.swift:206:66:206:75 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:206:66:206:75 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:206:67:206:67 | password | semmle.label | password | | testGRDB.swift:208:80:208:89 | [...] | semmle.label | [...] | -| testGRDB.swift:208:80:208:89 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:208:80:208:89 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:208:81:208:81 | password | semmle.label | password | | testGRDB.swift:210:84:210:93 | [...] | semmle.label | [...] | -| testGRDB.swift:210:84:210:93 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:210:84:210:93 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:210:85:210:85 | password | semmle.label | password | | testGRDB.swift:212:98:212:107 | [...] | semmle.label | [...] | -| testGRDB.swift:212:98:212:107 | [...] [Array element] | semmle.label | [...] [Array element] | +| testGRDB.swift:212:98:212:107 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:212:99:212:99 | password | semmle.label | password | | testRealm.swift:27:6:27:6 | value | semmle.label | value | | testRealm.swift:34:6:34:6 | value | semmle.label | value | From 9a112dde66f9f259117c42bdde4eb74eb8fff27c Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 19 Sep 2023 14:13:33 +0200 Subject: [PATCH 777/788] Java: Introduce a class of dataflow nodes for the threat modeling. --- .../dataflow/ExternalFlowConfiguration.qll | 2 +- .../semmle/code/java/dataflow/FlowSources.qll | 29 +++++++++++++++++++ .../dataflow/threat-models/threat-models1.ql | 2 +- .../dataflow/threat-models/threat-models2.ql | 2 +- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlowConfiguration.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlowConfiguration.qll index a3bd7d158c2..0331da2477f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlowConfiguration.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlowConfiguration.qll @@ -26,6 +26,6 @@ private string getChildThreatModel(string group) { threatModelGrouping(result, g * Holds if the source model kind `kind` is relevant for generic queries * under the current threat model configuration. */ -predicate sourceModelKindConfig(string kind) { +predicate currentThreatModel(string kind) { exists(string group | supportedThreatModels(group) and kind = getChildThreatModel*(group)) } diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll index 26f29076efc..ec4df42fbfb 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll @@ -29,6 +29,35 @@ import semmle.code.java.frameworks.struts.StrutsActions import semmle.code.java.frameworks.Thrift import semmle.code.java.frameworks.javaee.jsf.JSFRenderer private import semmle.code.java.dataflow.ExternalFlow +private import semmle.code.java.dataflow.ExternalFlowConfiguration + +/** + * A data flow source. + */ +abstract class SourceNode extends DataFlow::Node { + /** + * Gets a string that represents the source kind with respect to threat modeling. + */ + abstract string getThreatModel(); +} + +/** + * A class of data flow sources that respects the + * current threat model configuration. + */ +class ThreatModelFlowSource extends DataFlow::Node { + ThreatModelFlowSource() { + // Expansive threat model. + currentThreatModel("all") and + (this instanceof SourceNode or sourceNode(this, _)) + or + exists(string kind | + // Specific threat model. + currentThreatModel(kind) and + (this.(SourceNode).getThreatModel() = kind or sourceNode(this, kind)) + ) + } +} /** A data flow source of remote user input. */ abstract class RemoteFlowSource extends DataFlow::Node { diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models1.ql b/java/ql/test/library-tests/dataflow/threat-models/threat-models1.ql index 11371a749dd..dd8ed512f52 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models1.ql +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models1.ql @@ -1,5 +1,5 @@ import semmle.code.java.dataflow.ExternalFlowConfiguration as ExternalFlowConfiguration query predicate supportedThreatModels(string kind) { - ExternalFlowConfiguration::sourceModelKindConfig(kind) + ExternalFlowConfiguration::currentThreatModel(kind) } diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models2.ql b/java/ql/test/library-tests/dataflow/threat-models/threat-models2.ql index 11371a749dd..dd8ed512f52 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models2.ql +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models2.ql @@ -1,5 +1,5 @@ import semmle.code.java.dataflow.ExternalFlowConfiguration as ExternalFlowConfiguration query predicate supportedThreatModels(string kind) { - ExternalFlowConfiguration::sourceModelKindConfig(kind) + ExternalFlowConfiguration::currentThreatModel(kind) } From 2055d5492ce60be40ddb65930c5560ce58603b22 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 19 Sep 2023 15:40:39 +0200 Subject: [PATCH 778/788] Java: Let RemoteFlowSource and LocalUserInput extends SourceNode and fine grain the LocalUserInput threat models. --- .../semmle/code/java/dataflow/FlowSources.qll | 65 ++++++++++++++++--- .../code/java/frameworks/hudson/Hudson.qll | 2 + 2 files changed, 58 insertions(+), 9 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll index ec4df42fbfb..44bd52947da 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll @@ -60,9 +60,11 @@ class ThreatModelFlowSource extends DataFlow::Node { } /** A data flow source of remote user input. */ -abstract class RemoteFlowSource extends DataFlow::Node { +abstract class RemoteFlowSource extends SourceNode { /** Gets a string that describes the type of this remote flow source. */ abstract string getSourceType(); + + override string getThreatModel() { result = "remote" } } /** @@ -204,14 +206,47 @@ abstract class UserInput extends DataFlow::Node { } private class RemoteUserInput extends UserInput instanceof RemoteFlowSource { } /** A node with input that may be controlled by a local user. */ -abstract class LocalUserInput extends UserInput { } +abstract class LocalUserInput extends UserInput, SourceNode { + override string getThreatModel() { result = "local" } +} /** + * DEPRECATED: Use the threat models feature. + * That is, use `ThreatModelFlowSource` as the class of nodes for sources + * and set up the threat model configuration to filter source nodes. + * Alternatively, use `getThreatModel` to filter nodes to create the + * class of nodes you need. + * * A node with input from the local environment, such as files, standard in, * environment variables, and main method parameters. */ -class EnvInput extends LocalUserInput { +deprecated class EnvInput extends DataFlow::Node { EnvInput() { + this instanceof EnvironmentInput or + this instanceof CliInput or + this instanceof FileInput + } +} + +/** + * A node with input from the local environment, such as + * environment variables. + */ +private class EnvironmentInput extends LocalUserInput { + EnvironmentInput() { + // Results from various specific methods. + this.asExpr().(MethodAccess).getMethod() instanceof EnvReadMethod + } + + override string getThreatModel() { result = "environment" } +} + +/** + * A node with input from the command line, such as standard in + * and main method parameters. + */ +private class CliInput extends LocalUserInput { + CliInput() { // Parameters to a main method. exists(MainMethod main | this.asParameter() = main.getParameter(0)) or @@ -220,23 +255,35 @@ class EnvInput extends LocalUserInput { f.getAnAnnotation().getType().getQualifiedName() = "org.kohsuke.args4j.Argument" ) or - // Results from various specific methods. - this.asExpr().(MethodAccess).getMethod() instanceof EnvReadMethod - or // Access to `System.in`. exists(Field f | this.asExpr() = f.getAnAccess() | f instanceof SystemIn) - or + } + + override string getThreatModel() { result = "cli" } +} + +/** + * A node with input from the local environment, such as files. + */ +private class FileInput extends LocalUserInput { + FileInput() { // Access to files. this.asExpr() .(ConstructorCall) .getConstructedType() .hasQualifiedName("java.io", "FileInputStream") } + + override string getThreatModel() { result = "file" } } -/** A node with input from a database. */ -class DatabaseInput extends LocalUserInput { +/** + * A node with input from a database. + */ +private class DatabaseInput extends LocalUserInput { DatabaseInput() { this.asExpr().(MethodAccess).getMethod() instanceof ResultSetGetStringMethod } + + override string getThreatModel() { result = "database" } } /** A method that reads from the environment, such as `System.getProperty` or `System.getenv`. */ diff --git a/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll b/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll index c283c23a046..bca080ef7b9 100644 --- a/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll +++ b/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll @@ -24,6 +24,8 @@ private class FilePathRead extends LocalUserInput { "readToString" ]) } + + override string getThreatModel() { result = "file" } } private class HudsonUtilXssSanitizer extends XssSanitizer { From 537965c0e8444646793fee127c08e9910efeeff1 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 27 Sep 2023 15:29:59 +0200 Subject: [PATCH 779/788] Java: Add some testfiles. --- .../dataflow/threat-models/Empty.java | 1 - .../dataflow/threat-models/Test.java | 72 +++++++++++++++++++ .../dataflow/threat-models/TestSources.java | 9 +++ 3 files changed, 81 insertions(+), 1 deletion(-) delete mode 100644 java/ql/test/library-tests/dataflow/threat-models/Empty.java create mode 100644 java/ql/test/library-tests/dataflow/threat-models/Test.java create mode 100644 java/ql/test/library-tests/dataflow/threat-models/TestSources.java diff --git a/java/ql/test/library-tests/dataflow/threat-models/Empty.java b/java/ql/test/library-tests/dataflow/threat-models/Empty.java deleted file mode 100644 index 5be35d3d2db..00000000000 --- a/java/ql/test/library-tests/dataflow/threat-models/Empty.java +++ /dev/null @@ -1 +0,0 @@ -class Empty { } diff --git a/java/ql/test/library-tests/dataflow/threat-models/Test.java b/java/ql/test/library-tests/dataflow/threat-models/Test.java new file mode 100644 index 00000000000..6faffc18f03 --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/Test.java @@ -0,0 +1,72 @@ +import java.sql.*; +import java.net.*; +import java.util.logging.*; +import java.nio.charset.StandardCharsets; +import testlib.TestSources; + +class Test { + private TestSources sources = new TestSources(); + + private String byteToString(byte[] data) { + return new String(data, StandardCharsets.UTF_8); + } + + public void M1(Statement handle) throws Exception { + // Only a source if "remote" is a selected threat model. + // This is included in the "default" threat model. + Socket sock = new Socket("localhost", 1234); + byte[] data = new byte[1024]; + sock.getInputStream().read(data); + + // Logging sink + Logger.getLogger("foo").severe(byteToString(data)); + + // SQL sink + handle.executeUpdate("INSERT INTO foo VALUES ('" + byteToString(data) + "')"); + } + + public void M2(Statement handle) throws Exception { + // Only a source if "database" is a selected threat model. + String result = sources.executeQuery("SELECT * FROM foo"); + + // SQL sink + handle.executeUpdate("INSERT INTO foo VALUES ('" + result + "')"); + + // Logging sink + Logger.getLogger("foo").severe(result); + } + + public void M3(Statement handle) throws Exception { + // Only a source if "environment" is a selected threat model. + String result = sources.readEnv("MY_ENV_VAR"); + + // SQL sink + handle.executeUpdate("INSERT INTO foo VALUES ('" + result + "')"); + + // Logging sink + Logger.getLogger("foo").severe(result); + } + + public void M4(Statement handle) throws Exception { + // Only a source if "custom" is a selected threat model. + String result = sources.getCustom("custom"); + + // SQL sink + handle.executeUpdate("INSERT INTO foo VALUES ('" + result + "')"); + + // Logging sink + Logger.getLogger("foo").severe(result); + } + + public void M5(Statement handle) throws Exception { + // Only a source if "cli" is a selected threat model. + byte[] data = new byte[1024]; + System.in.read(data); + + // SQL sink + handle.executeUpdate("INSERT INTO foo VALUES ('" + byteToString(data) + "')"); + + // Logging sink + Logger.getLogger("foo").severe(byteToString(data)); + } +} diff --git a/java/ql/test/library-tests/dataflow/threat-models/TestSources.java b/java/ql/test/library-tests/dataflow/threat-models/TestSources.java new file mode 100644 index 00000000000..416357b8852 --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/TestSources.java @@ -0,0 +1,9 @@ +package testlib; + +public class TestSources { + public String executeQuery(String query) { return null; } + + public String readEnv(String env) { return null; } + + public String getCustom(String s) { return null;} +} From 5c700afa271fea688dc6e8f90fa128167f75dad8 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 28 Sep 2023 09:37:23 +0200 Subject: [PATCH 780/788] Java: Add some threat model dataflow tests. --- .../dataflow/threat-models/Test.qll | 13 ++++ .../threat-models-flowtest1.expected | 28 ++++++++ .../threat-models-flowtest1.ext.yml | 14 ++++ .../threat-models/threat-models-flowtest1.ql | 10 +++ .../threat-models-flowtest2.expected | 35 ++++++++++ .../threat-models-flowtest2.ext.yml | 15 ++++ .../threat-models/threat-models-flowtest2.ql | 11 +++ .../threat-models-flowtest3.expected | 61 +++++++++++++++++ .../threat-models-flowtest3.ext.yml | 15 ++++ .../threat-models/threat-models-flowtest3.ql | 11 +++ .../threat-models-flowtest4.expected | 68 +++++++++++++++++++ .../threat-models-flowtest4.ext.yml | 15 ++++ .../threat-models/threat-models-flowtest4.ql | 10 +++ .../threat-models-flowtest5.expected | 54 +++++++++++++++ .../threat-models-flowtest5.ext.yml | 16 +++++ .../threat-models/threat-models-flowtest5.ql | 11 +++ 16 files changed, 387 insertions(+) create mode 100644 java/ql/test/library-tests/dataflow/threat-models/Test.qll create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.ext.yml create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.ql create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.ext.yml create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.ql create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.ext.yml create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.ql create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.ext.yml create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.ql create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ext.yml create mode 100644 java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ql diff --git a/java/ql/test/library-tests/dataflow/threat-models/Test.qll b/java/ql/test/library-tests/dataflow/threat-models/Test.qll new file mode 100644 index 00000000000..a0d85680270 --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/Test.qll @@ -0,0 +1,13 @@ +private import java +private import semmle.code.java.dataflow.DataFlow +private import semmle.code.java.dataflow.ExternalFlow +private import semmle.code.java.dataflow.FlowSources +private import semmle.code.java.dataflow.TaintTracking + +private module ThreatModelConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof ThreatModelFlowSource } + + predicate isSink(DataFlow::Node sink) { sinkNode(sink, _) } +} + +module ThreatModel = TaintTracking::Global; diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected new file mode 100644 index 00000000000..9dbde2c728d --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected @@ -0,0 +1,28 @@ +edges +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | +nodes +| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | +| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | +| Test.java:11:23:11:26 | data : byte[] | semmle.label | data : byte[] | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| Test.java:19:32:19:35 | data [post update] : byte[] | semmle.label | data [post update] : byte[] | +| Test.java:22:36:22:53 | byteToString(...) | semmle.label | byteToString(...) | +| Test.java:22:49:22:52 | data : byte[] | semmle.label | data : byte[] | +| Test.java:25:26:25:80 | ... + ... | semmle.label | ... + ... | +| Test.java:25:56:25:73 | byteToString(...) : String | semmle.label | byteToString(...) : String | +| Test.java:25:69:25:72 | data : byte[] | semmle.label | data : byte[] | +subpaths +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:25:56:25:73 | byteToString(...) : String | +#select +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:25:26:25:80 | ... + ... | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.ext.yml b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.ext.yml new file mode 100644 index 00000000000..4cd172bd5f4 --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.ext.yml @@ -0,0 +1,14 @@ +extensions: + + - addsTo: + pack: codeql/java-all + extensible: supportedThreatModels + data: [] + + - addsTo: + pack: codeql/java-all + extensible: sourceModel + data: + - ["testlib", "TestSources", False, "executeQuery", "(String)", "", "ReturnValue", "database", "manual"] + - ["testlib", "TestSources", False, "readEnv", "(String)", "", "ReturnValue", "environment", "manual"] + - ["testlib", "TestSources", False, "getCustom", "(String)", "", "ReturnValue", "custom", "manual"] diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.ql b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.ql new file mode 100644 index 00000000000..02205d61baa --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.ql @@ -0,0 +1,10 @@ +/** + * This is a dataflow test using the "default" threat model. + */ + +import Test +import ThreatModel::PathGraph + +from ThreatModel::PathNode source, ThreatModel::PathNode sink +where ThreatModel::flowPath(source, sink) +select source, sink diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected new file mode 100644 index 00000000000..69fad09766d --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected @@ -0,0 +1,35 @@ +edges +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | +nodes +| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | +| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | +| Test.java:11:23:11:26 | data : byte[] | semmle.label | data : byte[] | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| Test.java:19:32:19:35 | data [post update] : byte[] | semmle.label | data [post update] : byte[] | +| Test.java:22:36:22:53 | byteToString(...) | semmle.label | byteToString(...) | +| Test.java:22:49:22:52 | data : byte[] | semmle.label | data : byte[] | +| Test.java:25:26:25:80 | ... + ... | semmle.label | ... + ... | +| Test.java:25:56:25:73 | byteToString(...) : String | semmle.label | byteToString(...) : String | +| Test.java:25:69:25:72 | data : byte[] | semmle.label | data : byte[] | +| Test.java:30:21:30:61 | executeQuery(...) : String | semmle.label | executeQuery(...) : String | +| Test.java:33:26:33:68 | ... + ... | semmle.label | ... + ... | +| Test.java:36:36:36:41 | result | semmle.label | result | +subpaths +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:25:56:25:73 | byteToString(...) : String | +#select +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:25:26:25:80 | ... + ... | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.ext.yml b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.ext.yml new file mode 100644 index 00000000000..f8cad9eff2f --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.ext.yml @@ -0,0 +1,15 @@ +extensions: + + - addsTo: + pack: codeql/java-all + extensible: supportedThreatModels + data: + - ["database"] + + - addsTo: + pack: codeql/java-all + extensible: sourceModel + data: + - ["testlib", "TestSources", False, "executeQuery", "(String)", "", "ReturnValue", "database", "manual"] + - ["testlib", "TestSources", False, "readEnv", "(String)", "", "ReturnValue", "environment", "manual"] + - ["testlib", "TestSources", False, "getCustom", "(String)", "", "ReturnValue", "custom", "manual"] diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.ql b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.ql new file mode 100644 index 00000000000..e312a90e981 --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.ql @@ -0,0 +1,11 @@ +/** + * This is a dataflow test using the "default" threat model with the + * addition of "database". + */ + +import Test +import ThreatModel::PathGraph + +from ThreatModel::PathNode source, ThreatModel::PathNode sink +where ThreatModel::flowPath(source, sink) +select source, sink diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected new file mode 100644 index 00000000000..35b2d7049a2 --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected @@ -0,0 +1,61 @@ +edges +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | +| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | +| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | +| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | +nodes +| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | +| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | +| Test.java:11:23:11:26 | data : byte[] | semmle.label | data : byte[] | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| Test.java:19:32:19:35 | data [post update] : byte[] | semmle.label | data [post update] : byte[] | +| Test.java:22:36:22:53 | byteToString(...) | semmle.label | byteToString(...) | +| Test.java:22:49:22:52 | data : byte[] | semmle.label | data : byte[] | +| Test.java:25:26:25:80 | ... + ... | semmle.label | ... + ... | +| Test.java:25:56:25:73 | byteToString(...) : String | semmle.label | byteToString(...) : String | +| Test.java:25:69:25:72 | data : byte[] | semmle.label | data : byte[] | +| Test.java:30:21:30:61 | executeQuery(...) : String | semmle.label | executeQuery(...) : String | +| Test.java:33:26:33:68 | ... + ... | semmle.label | ... + ... | +| Test.java:36:36:36:41 | result | semmle.label | result | +| Test.java:41:21:41:49 | readEnv(...) : String | semmle.label | readEnv(...) : String | +| Test.java:44:26:44:68 | ... + ... | semmle.label | ... + ... | +| Test.java:47:36:47:41 | result | semmle.label | result | +| Test.java:64:5:64:13 | System.in : InputStream | semmle.label | System.in : InputStream | +| Test.java:64:20:64:23 | data [post update] : byte[] | semmle.label | data [post update] : byte[] | +| Test.java:67:26:67:80 | ... + ... | semmle.label | ... + ... | +| Test.java:67:56:67:73 | byteToString(...) : String | semmle.label | byteToString(...) : String | +| Test.java:67:69:67:72 | data : byte[] | semmle.label | data : byte[] | +| Test.java:70:36:70:53 | byteToString(...) | semmle.label | byteToString(...) | +| Test.java:70:49:70:52 | data : byte[] | semmle.label | data : byte[] | +subpaths +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:25:56:25:73 | byteToString(...) : String | +| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:67:56:67:73 | byteToString(...) : String | +| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:70:36:70:53 | byteToString(...) | +#select +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:25:26:25:80 | ... + ... | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:67:26:67:80 | ... + ... | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:70:36:70:53 | byteToString(...) | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.ext.yml b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.ext.yml new file mode 100644 index 00000000000..f7a5a63530a --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.ext.yml @@ -0,0 +1,15 @@ +extensions: + + - addsTo: + pack: codeql/java-all + extensible: supportedThreatModels + data: + - ["local"] + + - addsTo: + pack: codeql/java-all + extensible: sourceModel + data: + - ["testlib", "TestSources", False, "executeQuery", "(String)", "", "ReturnValue", "database", "manual"] + - ["testlib", "TestSources", False, "readEnv", "(String)", "", "ReturnValue", "environment", "manual"] + - ["testlib", "TestSources", False, "getCustom", "(String)", "", "ReturnValue", "custom", "manual"] diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.ql b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.ql new file mode 100644 index 00000000000..6d562e588bf --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.ql @@ -0,0 +1,11 @@ +/** + * This is a dataflow test using the "default" threat model with the + * addition of the threat model group "local". + */ + +import Test +import ThreatModel::PathGraph + +from ThreatModel::PathNode source, ThreatModel::PathNode sink +where ThreatModel::flowPath(source, sink) +select source, sink diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected new file mode 100644 index 00000000000..44f01c1485e --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected @@ -0,0 +1,68 @@ +edges +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | +| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:55:26:55:68 | ... + ... | +| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:58:36:58:41 | result | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | +| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | +| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | +| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | +nodes +| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | +| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | +| Test.java:11:23:11:26 | data : byte[] | semmle.label | data : byte[] | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| Test.java:19:32:19:35 | data [post update] : byte[] | semmle.label | data [post update] : byte[] | +| Test.java:22:36:22:53 | byteToString(...) | semmle.label | byteToString(...) | +| Test.java:22:49:22:52 | data : byte[] | semmle.label | data : byte[] | +| Test.java:25:26:25:80 | ... + ... | semmle.label | ... + ... | +| Test.java:25:56:25:73 | byteToString(...) : String | semmle.label | byteToString(...) : String | +| Test.java:25:69:25:72 | data : byte[] | semmle.label | data : byte[] | +| Test.java:30:21:30:61 | executeQuery(...) : String | semmle.label | executeQuery(...) : String | +| Test.java:33:26:33:68 | ... + ... | semmle.label | ... + ... | +| Test.java:36:36:36:41 | result | semmle.label | result | +| Test.java:41:21:41:49 | readEnv(...) : String | semmle.label | readEnv(...) : String | +| Test.java:44:26:44:68 | ... + ... | semmle.label | ... + ... | +| Test.java:47:36:47:41 | result | semmle.label | result | +| Test.java:52:21:52:47 | getCustom(...) : String | semmle.label | getCustom(...) : String | +| Test.java:55:26:55:68 | ... + ... | semmle.label | ... + ... | +| Test.java:58:36:58:41 | result | semmle.label | result | +| Test.java:64:5:64:13 | System.in : InputStream | semmle.label | System.in : InputStream | +| Test.java:64:20:64:23 | data [post update] : byte[] | semmle.label | data [post update] : byte[] | +| Test.java:67:26:67:80 | ... + ... | semmle.label | ... + ... | +| Test.java:67:56:67:73 | byteToString(...) : String | semmle.label | byteToString(...) : String | +| Test.java:67:69:67:72 | data : byte[] | semmle.label | data : byte[] | +| Test.java:70:36:70:53 | byteToString(...) | semmle.label | byteToString(...) | +| Test.java:70:49:70:52 | data : byte[] | semmle.label | data : byte[] | +subpaths +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:25:56:25:73 | byteToString(...) : String | +| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:67:56:67:73 | byteToString(...) : String | +| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:70:36:70:53 | byteToString(...) | +#select +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:25:26:25:80 | ... + ... | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | +| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:55:26:55:68 | ... + ... | +| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:58:36:58:41 | result | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:67:26:67:80 | ... + ... | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:70:36:70:53 | byteToString(...) | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.ext.yml b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.ext.yml new file mode 100644 index 00000000000..4ce73dff484 --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.ext.yml @@ -0,0 +1,15 @@ +extensions: + + - addsTo: + pack: codeql/java-all + extensible: supportedThreatModels + data: + - ["all"] + + - addsTo: + pack: codeql/java-all + extensible: sourceModel + data: + - ["testlib", "TestSources", False, "executeQuery", "(String)", "", "ReturnValue", "database", "manual"] + - ["testlib", "TestSources", False, "readEnv", "(String)", "", "ReturnValue", "environment", "manual"] + - ["testlib", "TestSources", False, "getCustom", "(String)", "", "ReturnValue", "custom", "manual"] diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.ql b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.ql new file mode 100644 index 00000000000..7694ddb66fd --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.ql @@ -0,0 +1,10 @@ +/** + * This is a dataflow test using "all" threat models. + */ + +import Test +import ThreatModel::PathGraph + +from ThreatModel::PathNode source, ThreatModel::PathNode sink +where ThreatModel::flowPath(source, sink) +select source, sink diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected new file mode 100644 index 00000000000..d535ba38f98 --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected @@ -0,0 +1,54 @@ +edges +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | +| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | +| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | +| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | +| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | +nodes +| Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | +| Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | +| Test.java:11:23:11:26 | data : byte[] | semmle.label | data : byte[] | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| Test.java:19:32:19:35 | data [post update] : byte[] | semmle.label | data [post update] : byte[] | +| Test.java:22:36:22:53 | byteToString(...) | semmle.label | byteToString(...) | +| Test.java:22:49:22:52 | data : byte[] | semmle.label | data : byte[] | +| Test.java:25:26:25:80 | ... + ... | semmle.label | ... + ... | +| Test.java:25:56:25:73 | byteToString(...) : String | semmle.label | byteToString(...) : String | +| Test.java:25:69:25:72 | data : byte[] | semmle.label | data : byte[] | +| Test.java:41:21:41:49 | readEnv(...) : String | semmle.label | readEnv(...) : String | +| Test.java:44:26:44:68 | ... + ... | semmle.label | ... + ... | +| Test.java:47:36:47:41 | result | semmle.label | result | +| Test.java:64:5:64:13 | System.in : InputStream | semmle.label | System.in : InputStream | +| Test.java:64:20:64:23 | data [post update] : byte[] | semmle.label | data [post update] : byte[] | +| Test.java:67:26:67:80 | ... + ... | semmle.label | ... + ... | +| Test.java:67:56:67:73 | byteToString(...) : String | semmle.label | byteToString(...) : String | +| Test.java:67:69:67:72 | data : byte[] | semmle.label | data : byte[] | +| Test.java:70:36:70:53 | byteToString(...) | semmle.label | byteToString(...) | +| Test.java:70:49:70:52 | data : byte[] | semmle.label | data : byte[] | +subpaths +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:25:56:25:73 | byteToString(...) : String | +| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:67:56:67:73 | byteToString(...) : String | +| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | Test.java:70:36:70:53 | byteToString(...) | +#select +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:22:36:22:53 | byteToString(...) | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:25:26:25:80 | ... + ... | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:67:26:67:80 | ... + ... | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:70:36:70:53 | byteToString(...) | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ext.yml b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ext.yml new file mode 100644 index 00000000000..7acb0707eec --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ext.yml @@ -0,0 +1,16 @@ +extensions: + + - addsTo: + pack: codeql/java-all + extensible: supportedThreatModels + data: + - ["environment"] + - ["cli"] + + - addsTo: + pack: codeql/java-all + extensible: sourceModel + data: + - ["testlib", "TestSources", False, "executeQuery", "(String)", "", "ReturnValue", "database", "manual"] + - ["testlib", "TestSources", False, "readEnv", "(String)", "", "ReturnValue", "environment", "manual"] + - ["testlib", "TestSources", False, "getCustom", "(String)", "", "ReturnValue", "custom", "manual"] diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ql b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ql new file mode 100644 index 00000000000..670939cbaf8 --- /dev/null +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ql @@ -0,0 +1,11 @@ +/** + * This is a dataflow test using the "default" threat model with the + * addition of "environment" and "cli". + */ + +import Test +import ThreatModel::PathGraph + +from ThreatModel::PathNode source, ThreatModel::PathNode sink +where ThreatModel::flowPath(source, sink) +select source, sink From 5b949b19f779554cf32692b441e9188a3de7a608 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 28 Sep 2023 10:52:05 +0200 Subject: [PATCH 781/788] Java: Cleanup threat model taxanomy to align with the EDR. --- .../ext/threatmodels/threat-model-grouping.model.yml | 11 +++++------ java/ql/lib/semmle/code/java/dataflow/FlowSources.qll | 2 +- .../library-tests/dataflow/threat-models/Test.java | 2 +- .../threat-models/threat-models-flowtest5.ext.yml | 2 +- .../dataflow/threat-models/threat-models-flowtest5.ql | 2 +- .../dataflow/threat-models/threat-models1.expected | 1 - .../dataflow/threat-models/threat-models2.expected | 3 +-- 7 files changed, 10 insertions(+), 13 deletions(-) diff --git a/java/ql/lib/ext/threatmodels/threat-model-grouping.model.yml b/java/ql/lib/ext/threatmodels/threat-model-grouping.model.yml index 2b85b258b57..1eb334b67e7 100644 --- a/java/ql/lib/ext/threatmodels/threat-model-grouping.model.yml +++ b/java/ql/lib/ext/threatmodels/threat-model-grouping.model.yml @@ -6,11 +6,6 @@ extensions: data: # Default threat model - ["remote", "default"] - - ["uri-path", "default"] - - # Android threat models - - ["android-external-storage-dir", "android"] - - ["contentprovider", "android"] # Remote threat models - ["request", "remote"] @@ -18,6 +13,10 @@ extensions: # Local threat models - ["database", "local"] - - ["cli", "local"] + - ["commandargs", "local"] - ["environment", "local"] - ["file", "local"] + + # Android threat models + - ["android-external-storage-dir", "android"] + - ["contentprovider", "android"] diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll index 44bd52947da..95534eab8f1 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll @@ -259,7 +259,7 @@ private class CliInput extends LocalUserInput { exists(Field f | this.asExpr() = f.getAnAccess() | f instanceof SystemIn) } - override string getThreatModel() { result = "cli" } + override string getThreatModel() { result = "commandargs" } } /** diff --git a/java/ql/test/library-tests/dataflow/threat-models/Test.java b/java/ql/test/library-tests/dataflow/threat-models/Test.java index 6faffc18f03..37b67d8ce86 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/Test.java +++ b/java/ql/test/library-tests/dataflow/threat-models/Test.java @@ -59,7 +59,7 @@ class Test { } public void M5(Statement handle) throws Exception { - // Only a source if "cli" is a selected threat model. + // Only a source if "commandargs" is a selected threat model. byte[] data = new byte[1024]; System.in.read(data); diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ext.yml b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ext.yml index 7acb0707eec..9b6a3831713 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ext.yml +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ext.yml @@ -5,7 +5,7 @@ extensions: extensible: supportedThreatModels data: - ["environment"] - - ["cli"] + - ["commandargs"] - addsTo: pack: codeql/java-all diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ql b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ql index 670939cbaf8..4ffe24cc9b7 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ql +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.ql @@ -1,6 +1,6 @@ /** * This is a dataflow test using the "default" threat model with the - * addition of "environment" and "cli". + * addition of "environment" and "commandargs". */ import Test diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models1.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models1.expected index d538019ccb7..c471a7cc912 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models1.expected +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models1.expected @@ -2,4 +2,3 @@ | remote | | request | | response | -| uri-path | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models2.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models2.expected index 809a018e98e..395951c3b47 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models2.expected +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models2.expected @@ -1,4 +1,4 @@ -| cli | +| commandargs | | database | | default | | environment | @@ -7,4 +7,3 @@ | remote | | request | | response | -| uri-path | From 7084dc1a8868b654bc0d5cbbacae05c207948bba Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 3 Oct 2023 09:22:47 +0200 Subject: [PATCH 782/788] C++: Promote 'cpp/use-after-free' and 'cpp/double-free' to Code Scanning. --- cpp/ql/src/Critical/DoubleFree.ql | 2 +- cpp/ql/src/Critical/UseAfterFree.ql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/src/Critical/DoubleFree.ql b/cpp/ql/src/Critical/DoubleFree.ql index 734e32ea75f..cce1cc62849 100644 --- a/cpp/ql/src/Critical/DoubleFree.ql +++ b/cpp/ql/src/Critical/DoubleFree.ql @@ -2,7 +2,7 @@ * @name Potential double free * @description Freeing a resource more than once can lead to undefined behavior and cause memory corruption. * @kind path-problem - * @precision medium + * @precision high * @id cpp/double-free * @problem.severity warning * @security-severity 9.3 diff --git a/cpp/ql/src/Critical/UseAfterFree.ql b/cpp/ql/src/Critical/UseAfterFree.ql index 57522a0365c..51818ca5334 100644 --- a/cpp/ql/src/Critical/UseAfterFree.ql +++ b/cpp/ql/src/Critical/UseAfterFree.ql @@ -2,7 +2,7 @@ * @name Potential use after free * @description An allocated memory block is used after it has been freed. Behavior in such cases is undefined and can cause memory corruption. * @kind path-problem - * @precision medium + * @precision high * @id cpp/use-after-free * @problem.severity warning * @security-severity 9.3 From b6ed9ccfdaf34f8e4e6a5a55737bcee2e3ca8b44 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 3 Oct 2023 09:33:40 +0200 Subject: [PATCH 783/788] C++: Add change notes. --- cpp/ql/src/change-notes/2023-10-03-double-free.md | 4 ++++ cpp/ql/src/change-notes/2023-10-03-use-after-free.md | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 cpp/ql/src/change-notes/2023-10-03-double-free.md create mode 100644 cpp/ql/src/change-notes/2023-10-03-use-after-free.md diff --git a/cpp/ql/src/change-notes/2023-10-03-double-free.md b/cpp/ql/src/change-notes/2023-10-03-double-free.md new file mode 100644 index 00000000000..ebe6674320d --- /dev/null +++ b/cpp/ql/src/change-notes/2023-10-03-double-free.md @@ -0,0 +1,4 @@ +--- +category: queryMetadata +--- +* The `cpp/double-free` query has been further improved to reduce false positives and its precision has been increased from `medium` to `high`. \ No newline at end of file diff --git a/cpp/ql/src/change-notes/2023-10-03-use-after-free.md b/cpp/ql/src/change-notes/2023-10-03-use-after-free.md new file mode 100644 index 00000000000..6c1165edb34 --- /dev/null +++ b/cpp/ql/src/change-notes/2023-10-03-use-after-free.md @@ -0,0 +1,4 @@ +--- +category: queryMetadata +--- +* The `cpp/use-after-free` query has been further improved to reduce false positives and its precision has been increased from `medium` to `high`. \ No newline at end of file From fcbd301de86004db2cab521f55e29b01cb40efe4 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 3 Oct 2023 10:36:45 +0200 Subject: [PATCH 784/788] Java: Address review comments. --- .../lib/semmle/code/java/dataflow/FlowSources.qll | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll index 95534eab8f1..8db7917779a 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll @@ -278,10 +278,21 @@ private class FileInput extends LocalUserInput { } /** + * DEPRECATED: Use the threat models feature. + * That is, use `ThreatModelFlowSource` as the class of nodes for sources + * and set up the threat model configuration to filter source nodes. + * Alternatively, use `getThreatModel` to filter nodes to create the + * class of nodes you need. + * * A node with input from a database. */ -private class DatabaseInput extends LocalUserInput { - DatabaseInput() { this.asExpr().(MethodAccess).getMethod() instanceof ResultSetGetStringMethod } +deprecated class DatabaseInput = DbInput; + +/** + * A node with input from a database. + */ +private class DbInput extends LocalUserInput { + DbInput() { this.asExpr().(MethodAccess).getMethod() instanceof ResultSetGetStringMethod } override string getThreatModel() { result = "database" } } From da92da2204d8eb793a45444c87fa3c7a808d9299 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Tue, 3 Oct 2023 16:31:23 +0100 Subject: [PATCH 785/788] Bump minor versions of packs we regularly release --- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 10 +++++----- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 8 ++++---- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 10 +++++----- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 4 ++-- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 4 ++-- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 4 ++-- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 4 ++-- ql/ql/src/qlpack.yml | 6 ++++-- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 4 ++-- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/qlpack.yml | 4 ++-- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 5 +++-- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 4 ++-- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 30 files changed, 53 insertions(+), 50 deletions(-) diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index d1469e24fa5..0a60a2153e9 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.9.4-dev +version: 0.10.0-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 785271a7454..88e5026c939 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,12 +1,12 @@ name: codeql/cpp-queries -version: 0.7.6-dev -groups: +version: 0.8.0-dev +groups: - cpp - queries dependencies: - codeql/cpp-all: ${workspace} - codeql/suite-helpers: ${workspace} - codeql/util: ${workspace} + codeql/cpp-all: ${workspace} + codeql/suite-helpers: ${workspace} + codeql/util: ${workspace} suites: codeql-suites extractor: cpp defaultSuiteFile: codeql-suites/cpp-code-scanning.qls diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index f27f54c8e23..8d400fbbaa4 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,9 +1,9 @@ name: codeql/csharp-solorigate-all -version: 1.6.6-dev +version: 1.7.0-dev groups: - - csharp - - solorigate + - csharp + - solorigate library: true dependencies: - codeql/csharp-all: ${workspace} + codeql/csharp-all: ${workspace} warnOnImplicitThis: true diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 718c84a66de..ddf6820236f 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,10 +1,10 @@ name: codeql/csharp-solorigate-queries -version: 1.6.6-dev +version: 1.7.0-dev groups: - - csharp - - solorigate + - csharp + - solorigate defaultSuiteFile: codeql-suites/solorigate.qls dependencies: - codeql/csharp-all: ${workspace} - codeql/csharp-solorigate-all: ${workspace} + codeql/csharp-all: ${workspace} + codeql/csharp-solorigate-all: ${workspace} warnOnImplicitThis: true diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 10e94f2e69f..1f96818bb7f 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.7.6-dev +version: 0.8.0-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 70110b90b07..7690ae016fc 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,6 +1,6 @@ name: codeql/csharp-queries -version: 0.7.6-dev -groups: +version: 0.8.0-dev +groups: - csharp - queries suites: codeql-suites diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index ff7976ed425..cdacb07367d 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.6.6-dev +version: 0.7.0-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 91b210245e7..8a187f1080e 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.6.6-dev +version: 0.7.0-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 09f5b00eefe..df095807bd5 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.7.6-dev +version: 0.8.0-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 93f9595e72e..f09f03cb987 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,6 +1,6 @@ name: codeql/java-queries -version: 0.7.6-dev -groups: +version: 0.8.0-dev +groups: - java - queries suites: codeql-suites diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index d2467d48ad1..2b5b69eccf9 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.7.6-dev +version: 0.8.0-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 64fe425b70d..831f4e9aa57 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,6 +1,6 @@ name: codeql/javascript-queries -version: 0.7.6-dev -groups: +version: 0.8.0-dev +groups: - javascript - queries suites: codeql-suites diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index c88ef654f92..820c1bfc571 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.6.6-dev +version: 0.7.0-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index e962a60573a..9f2da148abf 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.10.6-dev +version: 0.11.0-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 970db8a598e..7790d40858b 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,6 +1,6 @@ name: codeql/python-queries -version: 0.8.6-dev -groups: +version: 0.9.0-dev +groups: - python - queries dependencies: diff --git a/ql/ql/src/qlpack.yml b/ql/ql/src/qlpack.yml index 68991ef1c20..8169a097135 100644 --- a/ql/ql/src/qlpack.yml +++ b/ql/ql/src/qlpack.yml @@ -1,6 +1,8 @@ name: codeql/ql -version: 0.0.0 -groups: [ql, queries] +version: 0.1.0-dev +groups: + - ql + - queries dbscheme: ql.dbscheme suites: codeql-suites defaultSuiteFile: codeql-suites/ql-code-scanning.qls diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 02d99493d03..d90c77225c7 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.7.6-dev +version: 0.8.0-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 3718a3c7563..86ea5c3b18d 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,6 +1,6 @@ name: codeql/ruby-queries -version: 0.7.6-dev -groups: +version: 0.8.0-dev +groups: - ruby - queries suites: codeql-suites diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index c4242a69317..075a5632883 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.0.5-dev +version: 0.1.0-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index d16bba8a97b..3ed09bbbbd9 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.0.5-dev +version: 0.1.0-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 11ab6bf34db..df8815691e0 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,6 +1,6 @@ name: codeql/mad -version: 0.1.6-dev +version: 0.2.0-dev groups: shared library: true -dependencies: +dependencies: null warnOnImplicitThis: true diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 9e0cfd4d3a5..a844c6216f0 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.1.6-dev +version: 0.2.0-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index a3826b28cb3..767b1489707 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.1.6-dev +version: 0.2.0-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index c37770a1d37..7e247846603 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,6 +1,7 @@ name: codeql/tutorial -description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 0.1.6-dev +description: Library for the CodeQL detective tutorials, helping new users learn to + write CodeQL queries. +version: 0.2.0-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 4cb45c66292..ab480563399 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.1.6-dev +version: 0.2.0-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index a990f517346..1d226cca2df 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.1.6-dev +version: 0.2.0-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 1ba74dbe554..56e7751a8da 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,6 +1,6 @@ name: codeql/util -version: 0.1.6-dev +version: 0.2.0-dev groups: shared library: true -dependencies: +dependencies: null warnOnImplicitThis: true diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index ebca3f050c1..efef7197a42 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.1.6-dev +version: 0.2.0-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index a53253fd065..22634a94637 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.2.6-dev +version: 0.3.0-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 414c836aba7..6649542b2c5 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.2.6-dev +version: 0.3.0-dev groups: - swift - queries From ecd8561104fb8d389de15b5a1762e87c1c62f2f4 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 4 Oct 2023 09:19:55 +0200 Subject: [PATCH 786/788] C#: Undo poor mans quoting fix as it conflicts with the permanent solution. --- csharp/tools/tracing-config.lua | 4 ---- 1 file changed, 4 deletions(-) diff --git a/csharp/tools/tracing-config.lua b/csharp/tools/tracing-config.lua index 6abcaaba771..bfc146b76ea 100644 --- a/csharp/tools/tracing-config.lua +++ b/csharp/tools/tracing-config.lua @@ -102,10 +102,6 @@ function RegisterExtractorPack(id) dotnetRunNeedsSeparator = false dotnetRunInjectionIndex = i end - -- if we encounter a whitespace, we explicitly need to quote the argument. - if OperatingSystem == 'windows' and arg:match('%s') then - argv[i] = '"' .. arg .. '"' - end end if match then local injections = { '-p:UseSharedCompilation=false', '-p:EmitCompilerGeneratedFiles=true' } From 9fe993bec34d4ffe177f8bec3206b3e6019baef7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 4 Oct 2023 14:15:27 +0000 Subject: [PATCH 787/788] Release preparation for version 2.15.0 --- cpp/ql/lib/CHANGELOG.md | 10 +++++++ ...-06-as-defining-argument-off-by-one-fix.md | 4 --- .../2023-09-07-return-from-end.md | 5 ---- .../2023-09-08-more-unreachble.md | 5 ---- cpp/ql/lib/change-notes/released/0.10.0.md | 9 ++++++ cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 13 +++++++++ .../2023-09-06-deduplicated-results.md | 4 --- .../2023-09-08-unreachble-edges.md | 5 ---- .../change-notes/2023-10-03-double-free.md | 4 --- .../change-notes/2023-10-03-use-after-free.md | 4 --- cpp/ql/src/change-notes/released/0.8.0.md | 12 ++++++++ cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- .../ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 +++ .../lib/change-notes/released/1.7.0.md | 3 ++ .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- .../ql/campaigns/Solorigate/src/CHANGELOG.md | 4 +++ .../src/change-notes/released/1.7.0.md | 3 ++ .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 4 +++ csharp/ql/lib/change-notes/released/0.8.0.md | 3 ++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 6 ++++ .../0.8.0.md} | 9 +++--- csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 6 ++++ ...23-09-12-add-int&bool-sanitizer-for-sql.md | 4 --- go/ql/lib/change-notes/released/0.7.0.md | 5 ++++ go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 +++ go/ql/src/change-notes/released/0.7.0.md | 3 ++ go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/automodel/src/CHANGELOG.md | 4 +++ .../src/change-notes/released/0.0.5.md | 3 ++ java/ql/automodel/src/codeql-pack.release.yml | 2 +- java/ql/automodel/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 18 ++++++++++++ .../2023-07-20-regex-parse-modes.md | 4 --- .../2023-08-23-apache-cxf-models.md | 4 --- .../change-notes/2023-09-12-kotlin-1.9.20.md | 4 --- .../2023-09-12-regex-mode-flag-groups.md | 4 --- .../2023-09-19-arithexpr-assignop.md | 4 --- .../2023-09-28-case-rule-stmt-cfg-fix.md | 5 ---- java/ql/lib/change-notes/released/0.8.0.md | 17 +++++++++++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 4 +++ java/ql/src/change-notes/released/0.8.0.md | 3 ++ java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 +++ .../ql/lib/change-notes/released/0.8.0.md | 3 ++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 4 +++ .../ql/src/change-notes/released/0.8.0.md | 3 ++ javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 +++ .../change-notes/released/0.7.0.md | 3 ++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 11 +++++++ .../change-notes/2023-09-22-regex-prefix.md | 4 --- ...3-09-26-regex-locations-in-string-parts.md | 4 --- ...09-29-django-restframework-improvements.md | 4 --- python/ql/lib/change-notes/released/0.11.0.md | 10 +++++++ python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 11 +++++++ .../2023-09-05-asyncio-cmdi-sinks.md | 4 --- .../2023-09-13-django-url-allowed-host.md | 4 --- ...23-09-18-promoted-nosql-injection-query.md | 4 --- python/ql/src/change-notes/released/0.9.0.md | 10 +++++++ python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 6 ++++ .../2023-08-23-variable-capture-flow.md | 4 --- ruby/ql/lib/change-notes/released/0.8.0.md | 5 ++++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 6 ++++ .../0.8.0.md} | 7 +++-- ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 +++ .../change-notes/released/0.1.0.md | 3 ++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 10 +++++++ .../2023-09-26-inout-barrier-flow-state.md | 4 --- .../0.1.0.md} | 11 +++++-- shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 +++ shared/mad/change-notes/released/0.2.0.md | 3 ++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 +++ shared/regex/change-notes/released/0.2.0.md | 3 ++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 +++ shared/ssa/change-notes/released/0.2.0.md | 3 ++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 +++ .../tutorial/change-notes/released/0.2.0.md | 3 ++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 +++ .../change-notes/released/0.2.0.md | 3 ++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 +++ shared/typos/change-notes/released/0.2.0.md | 3 ++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 +++ shared/util/change-notes/released/0.2.0.md | 3 ++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 +++ shared/yaml/change-notes/released/0.2.0.md | 3 ++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 29 +++++++++++++++++++ .../change-notes/2023-08-10-numeric-models.md | 5 ---- .../2023-08-11-dictionary-flow.md | 4 --- .../ql/lib/change-notes/2023-08-16-varargs.md | 5 ---- .../change-notes/2023-09-12-keypath-writes.md | 5 ---- .../2023-09-12-regex-mode-flag-groups.md | 4 --- .../2023-09-13-array-content-unification.md | 5 ---- .../2023-09-14-rename-base-types.md | 5 ---- .../2023-09-18-get-a-base-type.md | 9 ------ .../2023-09-26-regex-mode-flags.md | 4 --- .../lib/change-notes/2023-09-27-debugdesc.md | 5 ---- .../lib/change-notes/2023-09-29-nsstring.md | 5 ---- swift/ql/lib/change-notes/released/0.3.0.md | 28 ++++++++++++++++++ swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 9 ++++++ .../2023-05-23-path-injection-sinks.md | 4 --- .../2023-08-16-cleartext-logging.md | 5 ---- .../src/change-notes/2023-09-12-cleartext.md | 5 ---- .../0.3.0.md} | 10 +++++-- swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 156 files changed, 441 insertions(+), 235 deletions(-) delete mode 100644 cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md delete mode 100644 cpp/ql/lib/change-notes/2023-09-07-return-from-end.md delete mode 100644 cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md create mode 100644 cpp/ql/lib/change-notes/released/0.10.0.md delete mode 100644 cpp/ql/src/change-notes/2023-09-06-deduplicated-results.md delete mode 100644 cpp/ql/src/change-notes/2023-09-08-unreachble-edges.md delete mode 100644 cpp/ql/src/change-notes/2023-10-03-double-free.md delete mode 100644 cpp/ql/src/change-notes/2023-10-03-use-after-free.md create mode 100644 cpp/ql/src/change-notes/released/0.8.0.md create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.0.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.0.md create mode 100644 csharp/ql/lib/change-notes/released/0.8.0.md rename csharp/ql/src/change-notes/{2023-08-21-insecure-direct-object-reference.md => released/0.8.0.md} (69%) delete mode 100644 go/ql/lib/change-notes/2023-09-12-add-int&bool-sanitizer-for-sql.md create mode 100644 go/ql/lib/change-notes/released/0.7.0.md create mode 100644 go/ql/src/change-notes/released/0.7.0.md create mode 100644 java/ql/automodel/src/change-notes/released/0.0.5.md delete mode 100644 java/ql/lib/change-notes/2023-07-20-regex-parse-modes.md delete mode 100644 java/ql/lib/change-notes/2023-08-23-apache-cxf-models.md delete mode 100644 java/ql/lib/change-notes/2023-09-12-kotlin-1.9.20.md delete mode 100644 java/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md delete mode 100644 java/ql/lib/change-notes/2023-09-19-arithexpr-assignop.md delete mode 100644 java/ql/lib/change-notes/2023-09-28-case-rule-stmt-cfg-fix.md create mode 100644 java/ql/lib/change-notes/released/0.8.0.md create mode 100644 java/ql/src/change-notes/released/0.8.0.md create mode 100644 javascript/ql/lib/change-notes/released/0.8.0.md create mode 100644 javascript/ql/src/change-notes/released/0.8.0.md create mode 100644 misc/suite-helpers/change-notes/released/0.7.0.md delete mode 100644 python/ql/lib/change-notes/2023-09-22-regex-prefix.md delete mode 100644 python/ql/lib/change-notes/2023-09-26-regex-locations-in-string-parts.md delete mode 100644 python/ql/lib/change-notes/2023-09-29-django-restframework-improvements.md create mode 100644 python/ql/lib/change-notes/released/0.11.0.md delete mode 100644 python/ql/src/change-notes/2023-09-05-asyncio-cmdi-sinks.md delete mode 100644 python/ql/src/change-notes/2023-09-13-django-url-allowed-host.md delete mode 100644 python/ql/src/change-notes/2023-09-18-promoted-nosql-injection-query.md create mode 100644 python/ql/src/change-notes/released/0.9.0.md delete mode 100644 ruby/ql/lib/change-notes/2023-08-23-variable-capture-flow.md create mode 100644 ruby/ql/lib/change-notes/released/0.8.0.md rename ruby/ql/src/change-notes/{2023-09-03-use-new-dataflow-api.md => released/0.8.0.md} (55%) create mode 100644 shared/controlflow/change-notes/released/0.1.0.md delete mode 100644 shared/dataflow/change-notes/2023-09-26-inout-barrier-flow-state.md rename shared/dataflow/change-notes/{2023-09-12-typeflow.md => released/0.1.0.md} (60%) create mode 100644 shared/mad/change-notes/released/0.2.0.md create mode 100644 shared/regex/change-notes/released/0.2.0.md create mode 100644 shared/ssa/change-notes/released/0.2.0.md create mode 100644 shared/tutorial/change-notes/released/0.2.0.md create mode 100644 shared/typetracking/change-notes/released/0.2.0.md create mode 100644 shared/typos/change-notes/released/0.2.0.md create mode 100644 shared/util/change-notes/released/0.2.0.md create mode 100644 shared/yaml/change-notes/released/0.2.0.md delete mode 100644 swift/ql/lib/change-notes/2023-08-10-numeric-models.md delete mode 100644 swift/ql/lib/change-notes/2023-08-11-dictionary-flow.md delete mode 100644 swift/ql/lib/change-notes/2023-08-16-varargs.md delete mode 100644 swift/ql/lib/change-notes/2023-09-12-keypath-writes.md delete mode 100644 swift/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md delete mode 100644 swift/ql/lib/change-notes/2023-09-13-array-content-unification.md delete mode 100644 swift/ql/lib/change-notes/2023-09-14-rename-base-types.md delete mode 100644 swift/ql/lib/change-notes/2023-09-18-get-a-base-type.md delete mode 100644 swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md delete mode 100644 swift/ql/lib/change-notes/2023-09-27-debugdesc.md delete mode 100644 swift/ql/lib/change-notes/2023-09-29-nsstring.md create mode 100644 swift/ql/lib/change-notes/released/0.3.0.md delete mode 100644 swift/ql/src/change-notes/2023-05-23-path-injection-sinks.md delete mode 100644 swift/ql/src/change-notes/2023-08-16-cleartext-logging.md delete mode 100644 swift/ql/src/change-notes/2023-09-12-cleartext.md rename swift/ql/src/change-notes/{2023-09-19-numeric-barriers.md => released/0.3.0.md} (52%) diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 98666dfbbdb..827d7ded490 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.10.0 + +### Minor Analysis Improvements + +* Functions that do not return due to calling functions that don't return (e.g. `exit`) are now detected as + non-returning in the IR and dataflow. +* Treat functions that reach the end of the function as returning in the IR. + They used to be treated as unreachable but it is allowed in C. +* The `DataFlow::asDefiningArgument` predicate now takes its argument from the range starting at `1` instead of `2`. Queries that depend on the single-parameter version of `DataFlow::asDefiningArgument` should have their arguments updated accordingly. + ## 0.9.3 No user-facing changes. diff --git a/cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md b/cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md deleted file mode 100644 index 11c3b736682..00000000000 --- a/cpp/ql/lib/change-notes/2023-09-06-as-defining-argument-off-by-one-fix.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `DataFlow::asDefiningArgument` predicate now takes its argument from the range starting at `1` instead of `2`. Queries that depend on the single-parameter version of `DataFlow::asDefiningArgument` should have their arguments updated accordingly. diff --git a/cpp/ql/lib/change-notes/2023-09-07-return-from-end.md b/cpp/ql/lib/change-notes/2023-09-07-return-from-end.md deleted file mode 100644 index 8f1b8e9be88..00000000000 --- a/cpp/ql/lib/change-notes/2023-09-07-return-from-end.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* Treat functions that reach the end of the function as returning in the IR. - They used to be treated as unreachable but it is allowed in C. \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md b/cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md deleted file mode 100644 index 6b2fff3d176..00000000000 --- a/cpp/ql/lib/change-notes/2023-09-08-more-unreachble.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* Functions that do not return due to calling functions that don't return (e.g. `exit`) are now detected as - non-returning in the IR and dataflow. \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/released/0.10.0.md b/cpp/ql/lib/change-notes/released/0.10.0.md new file mode 100644 index 00000000000..9c4b95e37e0 --- /dev/null +++ b/cpp/ql/lib/change-notes/released/0.10.0.md @@ -0,0 +1,9 @@ +## 0.10.0 + +### Minor Analysis Improvements + +* Functions that do not return due to calling functions that don't return (e.g. `exit`) are now detected as + non-returning in the IR and dataflow. +* Treat functions that reach the end of the function as returning in the IR. + They used to be treated as unreachable but it is allowed in C. +* The `DataFlow::asDefiningArgument` predicate now takes its argument from the range starting at `1` instead of `2`. Queries that depend on the single-parameter version of `DataFlow::asDefiningArgument` should have their arguments updated accordingly. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 7af7247cbb0..b21db623245 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.3 +lastReleaseVersion: 0.10.0 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 0a60a2153e9..7eabe585fa8 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.10.0-dev +version: 0.10.0 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 700c0e331dd..cf5256e244d 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,16 @@ +## 0.8.0 + +### Query Metadata Changes + +* The `cpp/double-free` query has been further improved to reduce false positives and its precision has been increased from `medium` to `high`. +* The `cpp/use-after-free` query has been further improved to reduce false positives and its precision has been increased from `medium` to `high`. + +### Minor Analysis Improvements + +* The queries `cpp/double-free` and `cpp/use-after-free` find fewer false positives + in cases where a non-returning function is called. +* The number of duplicated dataflow paths reported by queries has been significantly reduced. + ## 0.7.5 No user-facing changes. diff --git a/cpp/ql/src/change-notes/2023-09-06-deduplicated-results.md b/cpp/ql/src/change-notes/2023-09-06-deduplicated-results.md deleted file mode 100644 index e8a2160f4c2..00000000000 --- a/cpp/ql/src/change-notes/2023-09-06-deduplicated-results.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The number of duplicated dataflow paths reported by queries has been significantly reduced. \ No newline at end of file diff --git a/cpp/ql/src/change-notes/2023-09-08-unreachble-edges.md b/cpp/ql/src/change-notes/2023-09-08-unreachble-edges.md deleted file mode 100644 index 1839120619b..00000000000 --- a/cpp/ql/src/change-notes/2023-09-08-unreachble-edges.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* The queries `cpp/double-free` and `cpp/use-after-free` find fewer false positives - in cases where a non-returning function is called. \ No newline at end of file diff --git a/cpp/ql/src/change-notes/2023-10-03-double-free.md b/cpp/ql/src/change-notes/2023-10-03-double-free.md deleted file mode 100644 index ebe6674320d..00000000000 --- a/cpp/ql/src/change-notes/2023-10-03-double-free.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* The `cpp/double-free` query has been further improved to reduce false positives and its precision has been increased from `medium` to `high`. \ No newline at end of file diff --git a/cpp/ql/src/change-notes/2023-10-03-use-after-free.md b/cpp/ql/src/change-notes/2023-10-03-use-after-free.md deleted file mode 100644 index 6c1165edb34..00000000000 --- a/cpp/ql/src/change-notes/2023-10-03-use-after-free.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* The `cpp/use-after-free` query has been further improved to reduce false positives and its precision has been increased from `medium` to `high`. \ No newline at end of file diff --git a/cpp/ql/src/change-notes/released/0.8.0.md b/cpp/ql/src/change-notes/released/0.8.0.md new file mode 100644 index 00000000000..664e8760f48 --- /dev/null +++ b/cpp/ql/src/change-notes/released/0.8.0.md @@ -0,0 +1,12 @@ +## 0.8.0 + +### Query Metadata Changes + +* The `cpp/double-free` query has been further improved to reduce false positives and its precision has been increased from `medium` to `high`. +* The `cpp/use-after-free` query has been further improved to reduce false positives and its precision has been increased from `medium` to `high`. + +### Minor Analysis Improvements + +* The queries `cpp/double-free` and `cpp/use-after-free` find fewer false positives + in cases where a non-returning function is called. +* The number of duplicated dataflow paths reported by queries has been significantly reduced. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index b5108ee0bda..37eab3197dc 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.5 +lastReleaseVersion: 0.8.0 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 88e5026c939..9bdad36cc46 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.8.0-dev +version: 0.8.0 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index cc79b182da6..61606368e4c 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.0 + +No user-facing changes. + ## 1.6.5 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.0.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.0.md new file mode 100644 index 00000000000..07492eebff7 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.0.md @@ -0,0 +1,3 @@ +## 1.7.0 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 03153270557..d1184cc6750 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.5 +lastReleaseVersion: 1.7.0 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 8d400fbbaa4..7f888b9458a 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.0-dev +version: 1.7.0 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index cc79b182da6..61606368e4c 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.0 + +No user-facing changes. + ## 1.6.5 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.0.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.0.md new file mode 100644 index 00000000000..07492eebff7 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.0.md @@ -0,0 +1,3 @@ +## 1.7.0 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 03153270557..d1184cc6750 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.5 +lastReleaseVersion: 1.7.0 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index ddf6820236f..1364ecc5b30 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.0-dev +version: 1.7.0 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 1d2703e856e..de8d30425f7 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.0 + +No user-facing changes. + ## 0.7.5 No user-facing changes. diff --git a/csharp/ql/lib/change-notes/released/0.8.0.md b/csharp/ql/lib/change-notes/released/0.8.0.md new file mode 100644 index 00000000000..16ea5f60373 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/0.8.0.md @@ -0,0 +1,3 @@ +## 0.8.0 + +No user-facing changes. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index b5108ee0bda..37eab3197dc 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.5 +lastReleaseVersion: 0.8.0 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 1f96818bb7f..77cf000182e 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.8.0-dev +version: 0.8.0 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index d391679c5df..4b03f57bd9e 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.8.0 + +### New Queries + +* Added a new query, `cs/web/insecure-direct-object-reference`, to find instances of missing authorization checks for resources selected by an ID parameter. + ## 0.7.5 No user-facing changes. diff --git a/csharp/ql/src/change-notes/2023-08-21-insecure-direct-object-reference.md b/csharp/ql/src/change-notes/released/0.8.0.md similarity index 69% rename from csharp/ql/src/change-notes/2023-08-21-insecure-direct-object-reference.md rename to csharp/ql/src/change-notes/released/0.8.0.md index edbb1134739..caef33b6a93 100644 --- a/csharp/ql/src/change-notes/2023-08-21-insecure-direct-object-reference.md +++ b/csharp/ql/src/change-notes/released/0.8.0.md @@ -1,4 +1,5 @@ ---- -category: newQuery ---- -* Added a new query, `cs/web/insecure-direct-object-reference`, to find instances of missing authorization checks for resources selected by an ID parameter. \ No newline at end of file +## 0.8.0 + +### New Queries + +* Added a new query, `cs/web/insecure-direct-object-reference`, to find instances of missing authorization checks for resources selected by an ID parameter. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index b5108ee0bda..37eab3197dc 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.5 +lastReleaseVersion: 0.8.0 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 7690ae016fc..3e9b759fdac 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.8.0-dev +version: 0.8.0 groups: - csharp - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index fba37b581ac..5b4530cd2a9 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.7.0 + +### Minor Analysis Improvements + +* Added Numeric and Boolean types to SQL injection sanitzers. + ## 0.6.5 No user-facing changes. diff --git a/go/ql/lib/change-notes/2023-09-12-add-int&bool-sanitizer-for-sql.md b/go/ql/lib/change-notes/2023-09-12-add-int&bool-sanitizer-for-sql.md deleted file mode 100644 index 26751edf2fe..00000000000 --- a/go/ql/lib/change-notes/2023-09-12-add-int&bool-sanitizer-for-sql.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added Numeric and Boolean types to SQL injection sanitzers. \ No newline at end of file diff --git a/go/ql/lib/change-notes/released/0.7.0.md b/go/ql/lib/change-notes/released/0.7.0.md new file mode 100644 index 00000000000..6df2bd55237 --- /dev/null +++ b/go/ql/lib/change-notes/released/0.7.0.md @@ -0,0 +1,5 @@ +## 0.7.0 + +### Minor Analysis Improvements + +* Added Numeric and Boolean types to SQL injection sanitzers. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 86780fb6148..c761f3e7ab4 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.5 +lastReleaseVersion: 0.7.0 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index cdacb07367d..596fddbb443 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.7.0-dev +version: 0.7.0 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 4b7c6babedc..0e1e2c03097 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.0 + +No user-facing changes. + ## 0.6.5 No user-facing changes. diff --git a/go/ql/src/change-notes/released/0.7.0.md b/go/ql/src/change-notes/released/0.7.0.md new file mode 100644 index 00000000000..80d3864a0f9 --- /dev/null +++ b/go/ql/src/change-notes/released/0.7.0.md @@ -0,0 +1,3 @@ +## 0.7.0 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 86780fb6148..c761f3e7ab4 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.5 +lastReleaseVersion: 0.7.0 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 8a187f1080e..087af0984ba 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.7.0-dev +version: 0.7.0 groups: - go - queries diff --git a/java/ql/automodel/src/CHANGELOG.md b/java/ql/automodel/src/CHANGELOG.md index a78acd76960..ee2610f9bd6 100644 --- a/java/ql/automodel/src/CHANGELOG.md +++ b/java/ql/automodel/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.5 + +No user-facing changes. + ## 0.0.4 No user-facing changes. diff --git a/java/ql/automodel/src/change-notes/released/0.0.5.md b/java/ql/automodel/src/change-notes/released/0.0.5.md new file mode 100644 index 00000000000..766ec2723b5 --- /dev/null +++ b/java/ql/automodel/src/change-notes/released/0.0.5.md @@ -0,0 +1,3 @@ +## 0.0.5 + +No user-facing changes. diff --git a/java/ql/automodel/src/codeql-pack.release.yml b/java/ql/automodel/src/codeql-pack.release.yml index ec411a674bc..bb45a1ab018 100644 --- a/java/ql/automodel/src/codeql-pack.release.yml +++ b/java/ql/automodel/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.4 +lastReleaseVersion: 0.0.5 diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index d41368cab93..12786005dc1 100644 --- a/java/ql/automodel/src/qlpack.yml +++ b/java/ql/automodel/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-automodel-queries -version: 0.0.5-dev +version: 0.0.5 groups: - java - automodel diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index c5d72b19501..34b1f5487a9 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,21 @@ +## 0.8.0 + +### New Features + +* Kotlin versions up to 1.9.20 are now supported. + +### Minor Analysis Improvements + +* Fixed a control-flow bug where case rule statements would incorrectly include a fall-through edge. +* Added support for default cases as proper guards in switch expressions to match switch statements. +* Improved the class `ArithExpr` of the `Overflow.qll` module to also include compound operators. Because of this, new alerts may be raised in queries related to overflows/underflows. +* Added new dataflow models for the Apache CXF framework. +* Regular expressions containing multiple parse mode flags are now interpretted correctly. For example `"(?is)abc.*"` with both the `i` and `s` flags. + +### Bug Fixes + +* The regular expressions library no longer incorrectly matches mode flag characters against the input. + ## 0.7.5 No user-facing changes. diff --git a/java/ql/lib/change-notes/2023-07-20-regex-parse-modes.md b/java/ql/lib/change-notes/2023-07-20-regex-parse-modes.md deleted file mode 100644 index 2d676227491..00000000000 --- a/java/ql/lib/change-notes/2023-07-20-regex-parse-modes.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Regular expressions containing multiple parse mode flags are now interpretted correctly. For example `"(?is)abc.*"` with both the `i` and `s` flags. diff --git a/java/ql/lib/change-notes/2023-08-23-apache-cxf-models.md b/java/ql/lib/change-notes/2023-08-23-apache-cxf-models.md deleted file mode 100644 index fbd0fef3b7f..00000000000 --- a/java/ql/lib/change-notes/2023-08-23-apache-cxf-models.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added new dataflow models for the Apache CXF framework. diff --git a/java/ql/lib/change-notes/2023-09-12-kotlin-1.9.20.md b/java/ql/lib/change-notes/2023-09-12-kotlin-1.9.20.md deleted file mode 100644 index 275c72fdf6b..00000000000 --- a/java/ql/lib/change-notes/2023-09-12-kotlin-1.9.20.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Kotlin versions up to 1.9.20 are now supported. diff --git a/java/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md b/java/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md deleted file mode 100644 index d13350726a8..00000000000 --- a/java/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* The regular expressions library no longer incorrectly matches mode flag characters against the input. diff --git a/java/ql/lib/change-notes/2023-09-19-arithexpr-assignop.md b/java/ql/lib/change-notes/2023-09-19-arithexpr-assignop.md deleted file mode 100644 index 38901500226..00000000000 --- a/java/ql/lib/change-notes/2023-09-19-arithexpr-assignop.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Improved the class `ArithExpr` of the `Overflow.qll` module to also include compound operators. Because of this, new alerts may be raised in queries related to overflows/underflows. diff --git a/java/ql/lib/change-notes/2023-09-28-case-rule-stmt-cfg-fix.md b/java/ql/lib/change-notes/2023-09-28-case-rule-stmt-cfg-fix.md deleted file mode 100644 index 5e99335aba7..00000000000 --- a/java/ql/lib/change-notes/2023-09-28-case-rule-stmt-cfg-fix.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed a control-flow bug where case rule statements would incorrectly include a fall-through edge. -* Added support for default cases as proper guards in switch expressions to match switch statements. diff --git a/java/ql/lib/change-notes/released/0.8.0.md b/java/ql/lib/change-notes/released/0.8.0.md new file mode 100644 index 00000000000..16f020fa7df --- /dev/null +++ b/java/ql/lib/change-notes/released/0.8.0.md @@ -0,0 +1,17 @@ +## 0.8.0 + +### New Features + +* Kotlin versions up to 1.9.20 are now supported. + +### Minor Analysis Improvements + +* Fixed a control-flow bug where case rule statements would incorrectly include a fall-through edge. +* Added support for default cases as proper guards in switch expressions to match switch statements. +* Improved the class `ArithExpr` of the `Overflow.qll` module to also include compound operators. Because of this, new alerts may be raised in queries related to overflows/underflows. +* Added new dataflow models for the Apache CXF framework. +* Regular expressions containing multiple parse mode flags are now interpretted correctly. For example `"(?is)abc.*"` with both the `i` and `s` flags. + +### Bug Fixes + +* The regular expressions library no longer incorrectly matches mode flag characters against the input. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index b5108ee0bda..37eab3197dc 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.5 +lastReleaseVersion: 0.8.0 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index df095807bd5..32d6741f829 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.8.0-dev +version: 0.8.0 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 956a81d7802..ea706bfd055 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.0 + +No user-facing changes. + ## 0.7.5 No user-facing changes. diff --git a/java/ql/src/change-notes/released/0.8.0.md b/java/ql/src/change-notes/released/0.8.0.md new file mode 100644 index 00000000000..16ea5f60373 --- /dev/null +++ b/java/ql/src/change-notes/released/0.8.0.md @@ -0,0 +1,3 @@ +## 0.8.0 + +No user-facing changes. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index b5108ee0bda..37eab3197dc 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.5 +lastReleaseVersion: 0.8.0 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index f09f03cb987..c95a7deccac 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.8.0-dev +version: 0.8.0 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 022aebbd693..f1aac73b577 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.0 + +No user-facing changes. + ## 0.7.5 No user-facing changes. diff --git a/javascript/ql/lib/change-notes/released/0.8.0.md b/javascript/ql/lib/change-notes/released/0.8.0.md new file mode 100644 index 00000000000..16ea5f60373 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/0.8.0.md @@ -0,0 +1,3 @@ +## 0.8.0 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index b5108ee0bda..37eab3197dc 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.5 +lastReleaseVersion: 0.8.0 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 2b5b69eccf9..9be13574db5 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.8.0-dev +version: 0.8.0 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index c67be888c57..8c0e3b427e9 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.0 + +No user-facing changes. + ## 0.7.5 ### Bug Fixes diff --git a/javascript/ql/src/change-notes/released/0.8.0.md b/javascript/ql/src/change-notes/released/0.8.0.md new file mode 100644 index 00000000000..16ea5f60373 --- /dev/null +++ b/javascript/ql/src/change-notes/released/0.8.0.md @@ -0,0 +1,3 @@ +## 0.8.0 + +No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index b5108ee0bda..37eab3197dc 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.5 +lastReleaseVersion: 0.8.0 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 831f4e9aa57..d1af553f05e 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.8.0-dev +version: 0.8.0 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 9435d172e6f..7467add73ba 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.0 + +No user-facing changes. + ## 0.6.5 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/0.7.0.md b/misc/suite-helpers/change-notes/released/0.7.0.md new file mode 100644 index 00000000000..80d3864a0f9 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/0.7.0.md @@ -0,0 +1,3 @@ +## 0.7.0 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 86780fb6148..c761f3e7ab4 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.5 +lastReleaseVersion: 0.7.0 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 820c1bfc571..696cb8eac32 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.7.0-dev +version: 0.7.0 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 0f7d9c29975..63030992999 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.11.0 + +### Minor Analysis Improvements + +* Django Rest Framework better handles custom `ModelViewSet` classes functions +* Regular expression fragments residing inside implicitly concatenated strings now have better location information. + +### Bug Fixes + +* Subterms of regular expressions encoded as single-line string literals now have better source-location information. + ## 0.10.5 No user-facing changes. diff --git a/python/ql/lib/change-notes/2023-09-22-regex-prefix.md b/python/ql/lib/change-notes/2023-09-22-regex-prefix.md deleted file mode 100644 index 20affaaab4e..00000000000 --- a/python/ql/lib/change-notes/2023-09-22-regex-prefix.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Subterms of regular expressions encoded as single-line string literals now have better source-location information. \ No newline at end of file diff --git a/python/ql/lib/change-notes/2023-09-26-regex-locations-in-string-parts.md b/python/ql/lib/change-notes/2023-09-26-regex-locations-in-string-parts.md deleted file mode 100644 index 32bdc1db15c..00000000000 --- a/python/ql/lib/change-notes/2023-09-26-regex-locations-in-string-parts.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Regular expression fragments residing inside implicitly concatenated strings now have better location information. diff --git a/python/ql/lib/change-notes/2023-09-29-django-restframework-improvements.md b/python/ql/lib/change-notes/2023-09-29-django-restframework-improvements.md deleted file mode 100644 index cf0c93fca2b..00000000000 --- a/python/ql/lib/change-notes/2023-09-29-django-restframework-improvements.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Django Rest Framework better handles custom `ModelViewSet` classes functions \ No newline at end of file diff --git a/python/ql/lib/change-notes/released/0.11.0.md b/python/ql/lib/change-notes/released/0.11.0.md new file mode 100644 index 00000000000..bf689298b4c --- /dev/null +++ b/python/ql/lib/change-notes/released/0.11.0.md @@ -0,0 +1,10 @@ +## 0.11.0 + +### Minor Analysis Improvements + +* Django Rest Framework better handles custom `ModelViewSet` classes functions +* Regular expression fragments residing inside implicitly concatenated strings now have better location information. + +### Bug Fixes + +* Subterms of regular expressions encoded as single-line string literals now have better source-location information. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 2e5e2af8307..fce68697d68 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.10.5 +lastReleaseVersion: 0.11.0 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 9f2da148abf..272b8418d7c 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.11.0-dev +version: 0.11.0 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index ca2dfaae546..230f54ce645 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.9.0 + +### New Queries + +* The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now available in the default security suite. + +### Minor Analysis Improvements + +* Improved _URL redirection from remote source_ (`py/url-redirection`) query to not alert when URL has been checked with `django.utils.http. url_has_allowed_host_and_scheme`. +* Extended the `py/command-line-injection` query with sinks from Python's `asyncio` module. + ## 0.8.5 No user-facing changes. diff --git a/python/ql/src/change-notes/2023-09-05-asyncio-cmdi-sinks.md b/python/ql/src/change-notes/2023-09-05-asyncio-cmdi-sinks.md deleted file mode 100644 index 6a05b201d6b..00000000000 --- a/python/ql/src/change-notes/2023-09-05-asyncio-cmdi-sinks.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Extended the `py/command-line-injection` query with sinks from Python's `asyncio` module. diff --git a/python/ql/src/change-notes/2023-09-13-django-url-allowed-host.md b/python/ql/src/change-notes/2023-09-13-django-url-allowed-host.md deleted file mode 100644 index 3ba166559d2..00000000000 --- a/python/ql/src/change-notes/2023-09-13-django-url-allowed-host.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Improved _URL redirection from remote source_ (`py/url-redirection`) query to not alert when URL has been checked with `django.utils.http. url_has_allowed_host_and_scheme`. diff --git a/python/ql/src/change-notes/2023-09-18-promoted-nosql-injection-query.md b/python/ql/src/change-notes/2023-09-18-promoted-nosql-injection-query.md deleted file mode 100644 index 2b30fd492d5..00000000000 --- a/python/ql/src/change-notes/2023-09-18-promoted-nosql-injection-query.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: newQuery ---- -* The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now available in the default security suite. diff --git a/python/ql/src/change-notes/released/0.9.0.md b/python/ql/src/change-notes/released/0.9.0.md new file mode 100644 index 00000000000..12e30a0f838 --- /dev/null +++ b/python/ql/src/change-notes/released/0.9.0.md @@ -0,0 +1,10 @@ +## 0.9.0 + +### New Queries + +* The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now available in the default security suite. + +### Minor Analysis Improvements + +* Improved _URL redirection from remote source_ (`py/url-redirection`) query to not alert when URL has been checked with `django.utils.http. url_has_allowed_host_and_scheme`. +* Extended the `py/command-line-injection` query with sinks from Python's `asyncio` module. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index cbe6bc6b7c6..8b9fc185202 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.5 +lastReleaseVersion: 0.9.0 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 7790d40858b..c4ad3ab3328 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.9.0-dev +version: 0.9.0 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 60cc08a923d..f44809f63d2 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.8.0 + +### Major Analysis Improvements + +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. + ## 0.7.5 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/2023-08-23-variable-capture-flow.md b/ruby/ql/lib/change-notes/2023-08-23-variable-capture-flow.md deleted file mode 100644 index 66ab65083dc..00000000000 --- a/ruby/ql/lib/change-notes/2023-08-23-variable-capture-flow.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/released/0.8.0.md b/ruby/ql/lib/change-notes/released/0.8.0.md new file mode 100644 index 00000000000..a139654ebbe --- /dev/null +++ b/ruby/ql/lib/change-notes/released/0.8.0.md @@ -0,0 +1,5 @@ +## 0.8.0 + +### Major Analysis Improvements + +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index b5108ee0bda..37eab3197dc 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.5 +lastReleaseVersion: 0.8.0 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index d90c77225c7..e14ffb64092 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.8.0-dev +version: 0.8.0 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index f69f774d171..6694814c95f 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.8.0 + +### Minor Analysis Improvements + +* Built-in Ruby queries now use the new DataFlow API. + ## 0.7.5 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2023-09-03-use-new-dataflow-api.md b/ruby/ql/src/change-notes/released/0.8.0.md similarity index 55% rename from ruby/ql/src/change-notes/2023-09-03-use-new-dataflow-api.md rename to ruby/ql/src/change-notes/released/0.8.0.md index 2cde6336ae4..14b7dd8b830 100644 --- a/ruby/ql/src/change-notes/2023-09-03-use-new-dataflow-api.md +++ b/ruby/ql/src/change-notes/released/0.8.0.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 0.8.0 + +### Minor Analysis Improvements + * Built-in Ruby queries now use the new DataFlow API. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index b5108ee0bda..37eab3197dc 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.5 +lastReleaseVersion: 0.8.0 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 86ea5c3b18d..a6f51d02bd1 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.8.0-dev +version: 0.8.0 groups: - ruby - queries diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index 3370a04b28c..1a5a17a4456 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.0 + +No user-facing changes. + ## 0.0.4 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/0.1.0.md b/shared/controlflow/change-notes/released/0.1.0.md new file mode 100644 index 00000000000..7b4d4fc699c --- /dev/null +++ b/shared/controlflow/change-notes/released/0.1.0.md @@ -0,0 +1,3 @@ +## 0.1.0 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index ec411a674bc..2e08f40f6aa 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.4 +lastReleaseVersion: 0.1.0 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 075a5632883..2e6d396ba4e 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.1.0-dev +version: 0.1.0 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index e18f52c0237..e72f0484bcb 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.1.0 + +### Major Analysis Improvements + +* Added support for type-based call edge pruning. This removes data flow call edges that are incompatible with the set of flow paths that reach it based on type information. This improves dispatch precision for constructs like lambdas, `Object.toString()` calls, and the visitor pattern. For now this is only enabled for Java and C#. + +### Minor Analysis Improvements + +* The `isBarrierIn` and `isBarrierOut` predicates in `DataFlow::StateConfigSig` now have overloaded variants that block a specific `FlowState`. + ## 0.0.4 No user-facing changes. diff --git a/shared/dataflow/change-notes/2023-09-26-inout-barrier-flow-state.md b/shared/dataflow/change-notes/2023-09-26-inout-barrier-flow-state.md deleted file mode 100644 index c7ea9638ee8..00000000000 --- a/shared/dataflow/change-notes/2023-09-26-inout-barrier-flow-state.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `isBarrierIn` and `isBarrierOut` predicates in `DataFlow::StateConfigSig` now have overloaded variants that block a specific `FlowState`. diff --git a/shared/dataflow/change-notes/2023-09-12-typeflow.md b/shared/dataflow/change-notes/released/0.1.0.md similarity index 60% rename from shared/dataflow/change-notes/2023-09-12-typeflow.md rename to shared/dataflow/change-notes/released/0.1.0.md index e5f01035478..df05aff26c5 100644 --- a/shared/dataflow/change-notes/2023-09-12-typeflow.md +++ b/shared/dataflow/change-notes/released/0.1.0.md @@ -1,4 +1,9 @@ ---- -category: majorAnalysis ---- +## 0.1.0 + +### Major Analysis Improvements + * Added support for type-based call edge pruning. This removes data flow call edges that are incompatible with the set of flow paths that reach it based on type information. This improves dispatch precision for constructs like lambdas, `Object.toString()` calls, and the visitor pattern. For now this is only enabled for Java and C#. + +### Minor Analysis Improvements + +* The `isBarrierIn` and `isBarrierOut` predicates in `DataFlow::StateConfigSig` now have overloaded variants that block a specific `FlowState`. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index ec411a674bc..2e08f40f6aa 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.4 +lastReleaseVersion: 0.1.0 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 3ed09bbbbd9..e751fef6b14 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.1.0-dev +version: 0.1.0 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 85c1fc61056..0df0d4f14e3 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.0 + +No user-facing changes. + ## 0.1.5 No user-facing changes. diff --git a/shared/mad/change-notes/released/0.2.0.md b/shared/mad/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..eb192b7a61b --- /dev/null +++ b/shared/mad/change-notes/released/0.2.0.md @@ -0,0 +1,3 @@ +## 0.2.0 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index 157cff8108d..5274e27ed52 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.5 +lastReleaseVersion: 0.2.0 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index df8815691e0..5e427add5a5 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 0.2.0-dev +version: 0.2.0 groups: shared library: true dependencies: null diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index 52d8a94f585..9dc3e22056f 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.0 + +No user-facing changes. + ## 0.1.5 No user-facing changes. diff --git a/shared/regex/change-notes/released/0.2.0.md b/shared/regex/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..eb192b7a61b --- /dev/null +++ b/shared/regex/change-notes/released/0.2.0.md @@ -0,0 +1,3 @@ +## 0.2.0 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index 157cff8108d..5274e27ed52 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.5 +lastReleaseVersion: 0.2.0 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index a844c6216f0..456b7242bbe 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.2.0-dev +version: 0.2.0 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index c9857f9ad97..19312140989 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.0 + +No user-facing changes. + ## 0.1.5 No user-facing changes. diff --git a/shared/ssa/change-notes/released/0.2.0.md b/shared/ssa/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..eb192b7a61b --- /dev/null +++ b/shared/ssa/change-notes/released/0.2.0.md @@ -0,0 +1,3 @@ +## 0.2.0 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 157cff8108d..5274e27ed52 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.5 +lastReleaseVersion: 0.2.0 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 767b1489707..05e1e783ebb 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.2.0-dev +version: 0.2.0 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 9466e4c6a08..e1eddb1ead0 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.0 + +No user-facing changes. + ## 0.1.5 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/0.2.0.md b/shared/tutorial/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..eb192b7a61b --- /dev/null +++ b/shared/tutorial/change-notes/released/0.2.0.md @@ -0,0 +1,3 @@ +## 0.2.0 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index 157cff8108d..5274e27ed52 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.5 +lastReleaseVersion: 0.2.0 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 7e247846603..cf03db4f2dc 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 0.2.0-dev +version: 0.2.0 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 30f8294e16a..37615bfd8d4 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.0 + +No user-facing changes. + ## 0.1.5 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/0.2.0.md b/shared/typetracking/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..eb192b7a61b --- /dev/null +++ b/shared/typetracking/change-notes/released/0.2.0.md @@ -0,0 +1,3 @@ +## 0.2.0 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index 157cff8108d..5274e27ed52 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.5 +lastReleaseVersion: 0.2.0 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index ab480563399..0224995750d 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.2.0-dev +version: 0.2.0 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 73d10ecca5b..d77fa94eb25 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.0 + +No user-facing changes. + ## 0.1.5 No user-facing changes. diff --git a/shared/typos/change-notes/released/0.2.0.md b/shared/typos/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..eb192b7a61b --- /dev/null +++ b/shared/typos/change-notes/released/0.2.0.md @@ -0,0 +1,3 @@ +## 0.2.0 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index 157cff8108d..5274e27ed52 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.5 +lastReleaseVersion: 0.2.0 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 1d226cca2df..690127e7968 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.2.0-dev +version: 0.2.0 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 5d4ee4dd27f..02134dcfd4f 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.0 + +No user-facing changes. + ## 0.1.5 No user-facing changes. diff --git a/shared/util/change-notes/released/0.2.0.md b/shared/util/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..eb192b7a61b --- /dev/null +++ b/shared/util/change-notes/released/0.2.0.md @@ -0,0 +1,3 @@ +## 0.2.0 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index 157cff8108d..5274e27ed52 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.5 +lastReleaseVersion: 0.2.0 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 56e7751a8da..4dbdef82dbc 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.2.0-dev +version: 0.2.0 groups: shared library: true dependencies: null diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index b6247037fd4..4e844168d15 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.0 + +No user-facing changes. + ## 0.1.5 No user-facing changes. diff --git a/shared/yaml/change-notes/released/0.2.0.md b/shared/yaml/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..eb192b7a61b --- /dev/null +++ b/shared/yaml/change-notes/released/0.2.0.md @@ -0,0 +1,3 @@ +## 0.2.0 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index 157cff8108d..5274e27ed52 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.5 +lastReleaseVersion: 0.2.0 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index efef7197a42..5fb05420a3f 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.2.0-dev +version: 0.2.0 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index e159bf2fbfc..6011d2aa60d 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,32 @@ +## 0.3.0 + +### Deprecated APIs + +* The `ArrayContent` type in the data flow library has been deprecated and made an alias for the `CollectionContent` type, to better reflect the hierarchy of the Swift standard library. Uses of `ArrayElement` in model files will be interpreted as referring to `CollectionContent`. + +### Major Analysis Improvements + +* The predicates `getABaseType`, `getABaseTypeDecl`, `getADerivedType` and `getADerivedTypeDecl` on `Type` and `TypeDecl` now behave more usefully and consistently. They now explore through type aliases used in base class declarations, and include protocols added in extensions. + +To examine base class declarations at a low level without these enhancements, use `TypeDecl.getInheritedType`. + +`Type.getABaseType` (only) previously resolved a type alias it was called directly on. This behaviour no longer exists. To find any base type of a type that could be an alias, the construct `Type.getUnderlyingType().getABaseType*()` is recommended. + +### Minor Analysis Improvements + +* Modelled varargs function in `NSString` more accurately. +* Modelled `CustomStringConvertible.description` and `CustomDebugStringConvertible.debugDescription`, replacing ad-hoc models of these properties on derived classes. +* The regular expressions library now accepts a wider range of mode flags in a regular expression mode flag group (such as `(?u)`). The `(?w`) flag has been renamed from "UNICODE" to "UNICODEBOUNDARY", and the `(?u)` flag is called "UNICODE" in the libraries. +* Renamed `TypeDecl.getBaseType/1` to `getInheritedType`. +* Flow through writes via keypaths is now supported by the data flow library. +* Added flow through variadic arguments, and the `getVaList` function. +* Added flow steps through `Dictionary` keys and values. +* Added taint models for `Numeric` conversions. + +### Bug Fixes + +* The regular expressions library no longer incorrectly matches mode flag characters against the input. + ## 0.2.5 No user-facing changes. diff --git a/swift/ql/lib/change-notes/2023-08-10-numeric-models.md b/swift/ql/lib/change-notes/2023-08-10-numeric-models.md deleted file mode 100644 index 85812d99c10..00000000000 --- a/swift/ql/lib/change-notes/2023-08-10-numeric-models.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- - -* Added taint models for `Numeric` conversions. diff --git a/swift/ql/lib/change-notes/2023-08-11-dictionary-flow.md b/swift/ql/lib/change-notes/2023-08-11-dictionary-flow.md deleted file mode 100644 index 6496777f9e5..00000000000 --- a/swift/ql/lib/change-notes/2023-08-11-dictionary-flow.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added flow steps through `Dictionary` keys and values. diff --git a/swift/ql/lib/change-notes/2023-08-16-varargs.md b/swift/ql/lib/change-notes/2023-08-16-varargs.md deleted file mode 100644 index 324c43f3e21..00000000000 --- a/swift/ql/lib/change-notes/2023-08-16-varargs.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- - -* Added flow through variadic arguments, and the `getVaList` function. diff --git a/swift/ql/lib/change-notes/2023-09-12-keypath-writes.md b/swift/ql/lib/change-notes/2023-09-12-keypath-writes.md deleted file mode 100644 index 5d0c97e47e3..00000000000 --- a/swift/ql/lib/change-notes/2023-09-12-keypath-writes.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- - -* Flow through writes via keypaths is now supported by the data flow library. diff --git a/swift/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md b/swift/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md deleted file mode 100644 index d13350726a8..00000000000 --- a/swift/ql/lib/change-notes/2023-09-12-regex-mode-flag-groups.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* The regular expressions library no longer incorrectly matches mode flag characters against the input. diff --git a/swift/ql/lib/change-notes/2023-09-13-array-content-unification.md b/swift/ql/lib/change-notes/2023-09-13-array-content-unification.md deleted file mode 100644 index 4185581839d..00000000000 --- a/swift/ql/lib/change-notes/2023-09-13-array-content-unification.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: deprecated ---- - -* The `ArrayContent` type in the data flow library has been deprecated and made an alias for the `CollectionContent` type, to better reflect the hierarchy of the Swift standard library. Uses of `ArrayElement` in model files will be interpreted as referring to `CollectionContent`. diff --git a/swift/ql/lib/change-notes/2023-09-14-rename-base-types.md b/swift/ql/lib/change-notes/2023-09-14-rename-base-types.md deleted file mode 100644 index c0f7d24f8e5..00000000000 --- a/swift/ql/lib/change-notes/2023-09-14-rename-base-types.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- - -* Renamed `TypeDecl.getBaseType/1` to `getInheritedType`. diff --git a/swift/ql/lib/change-notes/2023-09-18-get-a-base-type.md b/swift/ql/lib/change-notes/2023-09-18-get-a-base-type.md deleted file mode 100644 index 482b8346b64..00000000000 --- a/swift/ql/lib/change-notes/2023-09-18-get-a-base-type.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -category: majorAnalysis ---- - -* The predicates `getABaseType`, `getABaseTypeDecl`, `getADerivedType` and `getADerivedTypeDecl` on `Type` and `TypeDecl` now behave more usefully and consistently. They now explore through type aliases used in base class declarations, and include protocols added in extensions. - -To examine base class declarations at a low level without these enhancements, use `TypeDecl.getInheritedType`. - -`Type.getABaseType` (only) previously resolved a type alias it was called directly on. This behaviour no longer exists. To find any base type of a type that could be an alias, the construct `Type.getUnderlyingType().getABaseType*()` is recommended. diff --git a/swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md b/swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md deleted file mode 100644 index f55bfe567a6..00000000000 --- a/swift/ql/lib/change-notes/2023-09-26-regex-mode-flags.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The regular expressions library now accepts a wider range of mode flags in a regular expression mode flag group (such as `(?u)`). The `(?w`) flag has been renamed from "UNICODE" to "UNICODEBOUNDARY", and the `(?u)` flag is called "UNICODE" in the libraries. diff --git a/swift/ql/lib/change-notes/2023-09-27-debugdesc.md b/swift/ql/lib/change-notes/2023-09-27-debugdesc.md deleted file mode 100644 index 41416a92124..00000000000 --- a/swift/ql/lib/change-notes/2023-09-27-debugdesc.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- - -* Modelled `CustomStringConvertible.description` and `CustomDebugStringConvertible.debugDescription`, replacing ad-hoc models of these properties on derived classes. diff --git a/swift/ql/lib/change-notes/2023-09-29-nsstring.md b/swift/ql/lib/change-notes/2023-09-29-nsstring.md deleted file mode 100644 index b1c80653226..00000000000 --- a/swift/ql/lib/change-notes/2023-09-29-nsstring.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- - -* Modelled varargs function in `NSString` more accurately. diff --git a/swift/ql/lib/change-notes/released/0.3.0.md b/swift/ql/lib/change-notes/released/0.3.0.md new file mode 100644 index 00000000000..606afb574dc --- /dev/null +++ b/swift/ql/lib/change-notes/released/0.3.0.md @@ -0,0 +1,28 @@ +## 0.3.0 + +### Deprecated APIs + +* The `ArrayContent` type in the data flow library has been deprecated and made an alias for the `CollectionContent` type, to better reflect the hierarchy of the Swift standard library. Uses of `ArrayElement` in model files will be interpreted as referring to `CollectionContent`. + +### Major Analysis Improvements + +* The predicates `getABaseType`, `getABaseTypeDecl`, `getADerivedType` and `getADerivedTypeDecl` on `Type` and `TypeDecl` now behave more usefully and consistently. They now explore through type aliases used in base class declarations, and include protocols added in extensions. + +To examine base class declarations at a low level without these enhancements, use `TypeDecl.getInheritedType`. + +`Type.getABaseType` (only) previously resolved a type alias it was called directly on. This behaviour no longer exists. To find any base type of a type that could be an alias, the construct `Type.getUnderlyingType().getABaseType*()` is recommended. + +### Minor Analysis Improvements + +* Modelled varargs function in `NSString` more accurately. +* Modelled `CustomStringConvertible.description` and `CustomDebugStringConvertible.debugDescription`, replacing ad-hoc models of these properties on derived classes. +* The regular expressions library now accepts a wider range of mode flags in a regular expression mode flag group (such as `(?u)`). The `(?w`) flag has been renamed from "UNICODE" to "UNICODEBOUNDARY", and the `(?u)` flag is called "UNICODE" in the libraries. +* Renamed `TypeDecl.getBaseType/1` to `getInheritedType`. +* Flow through writes via keypaths is now supported by the data flow library. +* Added flow through variadic arguments, and the `getVaList` function. +* Added flow steps through `Dictionary` keys and values. +* Added taint models for `Numeric` conversions. + +### Bug Fixes + +* The regular expressions library no longer incorrectly matches mode flag characters against the input. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 211454ed306..95f6e3a0ba6 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.5 +lastReleaseVersion: 0.3.0 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 22634a94637..b210ae8d572 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.3.0-dev +version: 0.3.0 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index 18a68d6c875..492dfbf8bb9 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.3.0 + +### Minor Analysis Improvements + +* Adder barriers for numeric type values to the injection-like queries, to reduce false positive results where the user input that can be injected is constrainted to a numerical value. The queries updated by this change are: "Predicate built from user-controlled sources" (`swift/predicate-injection`), "Database query built from user-controlled sources" (`swift/sql-injection`), "Uncontrolled format string" (`swift/uncontrolled-format-string`), "JavaScript Injection" (`swift/unsafe-js-eval`) and "Regular expression injection" (`swift/regex-injection`). +* Added additional taint steps to the `swift/cleartext-transmission`, `swift/cleartext-logging` and `swift/cleartext-storage-preferences` queries to identify data within sensitive containers. This is similar to an existing additional taint step in the `swift/cleartext-storage-database` query. +* Added new logging sinks to the `swift/cleartext-logging` query. +* Added sqlite3 and SQLite.swift path injection sinks for the `swift/path-injection` query. + ## 0.2.5 No user-facing changes. diff --git a/swift/ql/src/change-notes/2023-05-23-path-injection-sinks.md b/swift/ql/src/change-notes/2023-05-23-path-injection-sinks.md deleted file mode 100644 index 609041d2e75..00000000000 --- a/swift/ql/src/change-notes/2023-05-23-path-injection-sinks.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added sqlite3 and SQLite.swift path injection sinks for the `swift/path-injection` query. \ No newline at end of file diff --git a/swift/ql/src/change-notes/2023-08-16-cleartext-logging.md b/swift/ql/src/change-notes/2023-08-16-cleartext-logging.md deleted file mode 100644 index 4462b378dd4..00000000000 --- a/swift/ql/src/change-notes/2023-08-16-cleartext-logging.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- - -* Added new logging sinks to the `swift/cleartext-logging` query. diff --git a/swift/ql/src/change-notes/2023-09-12-cleartext.md b/swift/ql/src/change-notes/2023-09-12-cleartext.md deleted file mode 100644 index 312ab00ca0b..00000000000 --- a/swift/ql/src/change-notes/2023-09-12-cleartext.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- - -* Added additional taint steps to the `swift/cleartext-transmission`, `swift/cleartext-logging` and `swift/cleartext-storage-preferences` queries to identify data within sensitive containers. This is similar to an existing additional taint step in the `swift/cleartext-storage-database` query. diff --git a/swift/ql/src/change-notes/2023-09-19-numeric-barriers.md b/swift/ql/src/change-notes/released/0.3.0.md similarity index 52% rename from swift/ql/src/change-notes/2023-09-19-numeric-barriers.md rename to swift/ql/src/change-notes/released/0.3.0.md index 0fd9989afe1..cf67625e164 100644 --- a/swift/ql/src/change-notes/2023-09-19-numeric-barriers.md +++ b/swift/ql/src/change-notes/released/0.3.0.md @@ -1,4 +1,8 @@ ---- -category: minorAnalysis ---- +## 0.3.0 + +### Minor Analysis Improvements + * Adder barriers for numeric type values to the injection-like queries, to reduce false positive results where the user input that can be injected is constrainted to a numerical value. The queries updated by this change are: "Predicate built from user-controlled sources" (`swift/predicate-injection`), "Database query built from user-controlled sources" (`swift/sql-injection`), "Uncontrolled format string" (`swift/uncontrolled-format-string`), "JavaScript Injection" (`swift/unsafe-js-eval`) and "Regular expression injection" (`swift/regex-injection`). +* Added additional taint steps to the `swift/cleartext-transmission`, `swift/cleartext-logging` and `swift/cleartext-storage-preferences` queries to identify data within sensitive containers. This is similar to an existing additional taint step in the `swift/cleartext-storage-database` query. +* Added new logging sinks to the `swift/cleartext-logging` query. +* Added sqlite3 and SQLite.swift path injection sinks for the `swift/path-injection` query. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 211454ed306..95f6e3a0ba6 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.5 +lastReleaseVersion: 0.3.0 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 6649542b2c5..7f499e58f43 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.3.0-dev +version: 0.3.0 groups: - swift - queries From 2f39ab1977f6f952e7d852f88c13577f81c268fd Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 5 Oct 2023 13:28:55 +0200 Subject: [PATCH 788/788] C++: Project away 'why' to prevent tuple duplication in 'Buffer.qll'. --- cpp/ql/lib/semmle/code/cpp/commons/Buffer.qll | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/commons/Buffer.qll b/cpp/ql/lib/semmle/code/cpp/commons/Buffer.qll index 1c557af797e..6bf7764d7e9 100644 --- a/cpp/ql/lib/semmle/code/cpp/commons/Buffer.qll +++ b/cpp/ql/lib/semmle/code/cpp/commons/Buffer.qll @@ -73,6 +73,10 @@ private int isSource(Expr bufferExpr, Element why) { ) } +/** Same as `getBufferSize`, but with the `why` column projected away to prevent large duplications. */ +pragma[nomagic] +int getBufferSizeProj(Expr bufferExpr) { result = getBufferSize(bufferExpr, _) } + /** * Get the size in bytes of the buffer pointed to by an expression (if this can be determined). */ @@ -87,7 +91,7 @@ int getBufferSize(Expr bufferExpr, Element why) { why = bufferVar and parentPtr = bufferExpr.(VariableAccess).getQualifier() and parentPtr.getTarget().getUnspecifiedType().(PointerType).getBaseType() = parentClass and - result = getBufferSize(parentPtr, _) + bufferSize - parentClass.getSize() + result = getBufferSizeProj(parentPtr) + bufferSize - parentClass.getSize() | if exists(bufferVar.getType().getSize()) then bufferSize = bufferVar.getType().getSize() @@ -95,7 +99,6 @@ int getBufferSize(Expr bufferExpr, Element why) { ) or // dataflow (all sources must be the same size) - result = unique(Expr def | DataFlow::localExprFlowStep(def, bufferExpr) | getBufferSize(def, _)) and - // find reason + result = unique(Expr def | DataFlow::localExprFlowStep(def, bufferExpr) | getBufferSizeProj(def)) and exists(Expr def | DataFlow::localExprFlowStep(def, bufferExpr) | exists(getBufferSize(def, why))) }